mem: hmc: minor fixes
This patch performs two minor fixes to DRAMCtrl.py and xbar.hh in favor of the HMC patch series. Committed by: Nilay Vaish <nilay@cs.wisc.edu>
This commit is contained in:
parent
7e3f670457
commit
845a10e330
2 changed files with 28 additions and 12 deletions
|
@ -12,6 +12,7 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 Amin Farmahini-Farahani
|
# Copyright (c) 2013 Amin Farmahini-Farahani
|
||||||
# Copyright (c) 2015 University of Kaiserslautern
|
# Copyright (c) 2015 University of Kaiserslautern
|
||||||
|
# Copyright (c) 2015 The University of Bologna
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -41,6 +42,7 @@
|
||||||
# Ani Udipi
|
# Ani Udipi
|
||||||
# Omar Naji
|
# Omar Naji
|
||||||
# Matthias Jung
|
# Matthias Jung
|
||||||
|
# Erfan Azarkhish
|
||||||
|
|
||||||
from m5.params import *
|
from m5.params import *
|
||||||
from AbstractMemory import *
|
from AbstractMemory import *
|
||||||
|
@ -382,8 +384,8 @@ class DDR3_1600_x64(DRAMCtrl):
|
||||||
# developed at the University of Kaiserslautern. This high level tool
|
# developed at the University of Kaiserslautern. This high level tool
|
||||||
# uses RC (resistance-capacitance) and CV (capacitance-voltage) models to
|
# uses RC (resistance-capacitance) and CV (capacitance-voltage) models to
|
||||||
# estimate the DRAM bank latency and power numbers.
|
# estimate the DRAM bank latency and power numbers.
|
||||||
# [2] A Logic-base Interconnect for Supporting Near Memory Computation in the
|
# [2] High performance AXI-4.0 based interconnect for extensible smart memory
|
||||||
# Hybrid Memory Cube (E. Azarkhish et. al)
|
# cubes (E. Azarkhish et. al)
|
||||||
# Assumed for the HMC model is a 30 nm technology node.
|
# Assumed for the HMC model is a 30 nm technology node.
|
||||||
# The modelled HMC consists of 4 Gbit layers which sum up to 2GB of memory (4
|
# The modelled HMC consists of 4 Gbit layers which sum up to 2GB of memory (4
|
||||||
# layers).
|
# layers).
|
||||||
|
@ -397,8 +399,8 @@ class DDR3_1600_x64(DRAMCtrl):
|
||||||
# devices per rank (DDR) => devices per layer ( 1 for HMC).
|
# devices per rank (DDR) => devices per layer ( 1 for HMC).
|
||||||
# The parameters for which no input is available are inherited from the DDR3
|
# The parameters for which no input is available are inherited from the DDR3
|
||||||
# configuration.
|
# configuration.
|
||||||
# This configuration includes the latencies from the DRAM to the logic layer of
|
# This configuration includes the latencies from the DRAM to the logic layer
|
||||||
# the HMC
|
# of the HMC
|
||||||
class HMC_2500_x32(DDR3_1600_x64):
|
class HMC_2500_x32(DDR3_1600_x64):
|
||||||
# size of device
|
# size of device
|
||||||
# two banks per device with each bank 4MB [2]
|
# two banks per device with each bank 4MB [2]
|
||||||
|
@ -441,7 +443,8 @@ class HMC_2500_x32(DDR3_1600_x64):
|
||||||
# cycles (Assumption)
|
# cycles (Assumption)
|
||||||
tRRD = '3.2ns'
|
tRRD = '3.2ns'
|
||||||
|
|
||||||
# activation limit is set to 0 since there are only 2 banks per vault layer.
|
# activation limit is set to 0 since there are only 2 banks per vault
|
||||||
|
# layer.
|
||||||
activation_limit = 0
|
activation_limit = 0
|
||||||
|
|
||||||
# Values using DRAMSpec HMC model [1]
|
# Values using DRAMSpec HMC model [1]
|
||||||
|
@ -449,20 +452,33 @@ class HMC_2500_x32(DDR3_1600_x64):
|
||||||
tWR = '8ns'
|
tWR = '8ns'
|
||||||
tRTP = '4.9ns'
|
tRTP = '4.9ns'
|
||||||
|
|
||||||
# Default different rank bus delay assumed to 1 CK for TSVs, @1250 MHz = 0.8
|
# Default different rank bus delay assumed to 1 CK for TSVs, @1250 MHz =
|
||||||
# ns (Assumption)
|
# 0.8 ns (Assumption)
|
||||||
tCS = '0.8ns'
|
tCS = '0.8ns'
|
||||||
|
|
||||||
# Value using DRAMSpec HMC model [1]
|
# Value using DRAMSpec HMC model [1]
|
||||||
tREFI = '3.9us'
|
tREFI = '3.9us'
|
||||||
|
|
||||||
# Set default controller parameters
|
# The default page policy in the vault controllers is simple closed page
|
||||||
page_policy = 'close'
|
# [2] nevertheless 'close' policy opens and closes the row multiple times
|
||||||
write_buffer_size = 8
|
# for bursts largers than 32Bytes. For this reason we use 'close_adaptive'
|
||||||
read_buffer_size = 8
|
page_policy = 'close_adaptive'
|
||||||
|
|
||||||
|
# RoCoRaBaCh resembles the default address mapping in HMC
|
||||||
addr_mapping = 'RoCoRaBaCh'
|
addr_mapping = 'RoCoRaBaCh'
|
||||||
min_writes_per_switch = 8
|
min_writes_per_switch = 8
|
||||||
|
|
||||||
|
# These parameters do not directly correlate with buffer_size in real
|
||||||
|
# hardware. Nevertheless, their value has been tuned to achieve a
|
||||||
|
# bandwidth similar to the cycle-accurate model in [2]
|
||||||
|
write_buffer_size = 32
|
||||||
|
read_buffer_size = 32
|
||||||
|
|
||||||
|
# The static latency of the vault controllers is estimated to be smaller
|
||||||
|
# than a full DRAM channel controller
|
||||||
|
static_backend_latency='4ns'
|
||||||
|
static_frontend_latency='4ns'
|
||||||
|
|
||||||
# A single DDR3-2133 x64 channel refining a selected subset of the
|
# A single DDR3-2133 x64 channel refining a selected subset of the
|
||||||
# options for the DDR-1600 configuration, based on the same DDR3-1600
|
# options for the DDR-1600 configuration, based on the same DDR3-1600
|
||||||
# 4 Gbit datasheet (Micron MT41J512M8). Most parameters are kept
|
# 4 Gbit datasheet (Micron MT41J512M8). Most parameters are kept
|
||||||
|
|
|
@ -340,7 +340,7 @@ class BaseXBar : public MemObject
|
||||||
*
|
*
|
||||||
* @param master_port_id id of the port that received the change
|
* @param master_port_id id of the port that received the change
|
||||||
*/
|
*/
|
||||||
void recvRangeChange(PortID master_port_id);
|
virtual void recvRangeChange(PortID master_port_id);
|
||||||
|
|
||||||
/** Find which port connected to this crossbar (if any) should be
|
/** Find which port connected to this crossbar (if any) should be
|
||||||
* given a packet with this address.
|
* given a packet with this address.
|
||||||
|
|
Loading…
Reference in a new issue