mem: Add HMC Timing Paramters
Review Request #2750 - Created April 28, 2015 and discarded
| Information | |
|---|---|
| omar naji | |
| gem5 | |
| Reviewers | |
| Default | |
A single HMC-2500 x32 model based on:
[1] DRAMSpec: a high-level DRAM bank modelling tool
developed at the University of Kaiserslautern. This high level tool
uses RC (resistance-capacitance) and CV (capacitance-voltage) models to
estimate the DRAM bank latency and power numbers.
[2] A Logic-base Interconnect for Supporting Near Memory Computation in the
Hybrid Memory Cube (E. Azarkhish et. al)
Assumed for the HMC model is a 30 nm technology node.
The modelled HMC consists of a 4 Gbit part with 4 layers connected with
TSVs. Each layer has 16 vaults and each vault consists of 2 banks per layer.
In order to be able to use the same controller used for 2D DRAM generations
for HMC, the following analogy is done:
Channel (DDR) => Vault (HMC)
device_size (DDR) => size of a single layer in a vault
ranks per channel (DDR) => number of layers
banks per rank (DDR) => banks per layer
devices per rank (DDR) => devices per layer ( 1 for HMC).
The parameters for which no input is available are inherited from the DDR3
configuration.
gem5 compiles. sweep.py runs
Good to see this patch.
As HMC spec lacks implementatin details, it is hard to model after a real HMC device.
-
src/mem/DRAMCtrl.py (Diff revision 1) -
Please mention this only defines DRAM to logic layer latency and does not include SerDes.
-
src/mem/DRAMCtrl.py (Diff revision 1) -
Did you mean 4GB? HMC v2 defines 4GB and 8GB devices. or may be you mean 4Gb per layer and a total size of 2GB? or just an array?
-
src/mem/DRAMCtrl.py (Diff revision 1) -
The reason behind this?
-
src/mem/DRAMCtrl.py (Diff revision 1) -
16 banks per vault. Am I missing something?
Can we not involve "layer" here? I mean it would be great if we could just abstract away layers in these parameters. -
src/mem/DRAMCtrl.py (Diff revision 1) -
reference please.
Great work. Thanks for the contribution!
-
src/mem/DRAMCtrl.py (Diff revision 1) -
I'd say this makes perfect sense given the terminology of vault => channel, and layer => rank, don't you think?
-
src/mem/DRAMCtrl.py (Diff revision 1) -
Each layer can be seen as a rank, so I would argue this is right.
-
src/mem/DRAMCtrl.py (Diff revision 1) -
I'd say this is a fair assumption for a highly optimised DRAM with low bank count per "rank".
-
src/mem/DRAMCtrl.py (Diff revision 2) -
I suspect this should go under Amin's line below, and thus not include the first paragraph.
-
src/mem/DRAMCtrl.py (Diff revision 4) -
No comma (sorry for nitpicking)
It would also be good to set some sensible defaults for the page policy, address mapping, read/write buffer size, and min_writes_per_switch.
Would be good to get this committed, preferably with the changes suggested.
