diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2014-08-26 10:13:03 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2014-08-26 10:13:03 -0400 |
commit | 3efabb4b2f59526e35b647aa16ffc1124e002924 (patch) | |
tree | ecaa52da960095916b1b4bc84138302460acff60 /src/mem/dram_ctrl.hh | |
parent | 56b7796e0d46f6296633b18e0eede042ab7cebc6 (diff) | |
download | gem5-3efabb4b2f59526e35b647aa16ffc1124e002924.tar.xz |
mem: Update DRAM controller comments
Update comments and add a reference for more information.
Diffstat (limited to 'src/mem/dram_ctrl.hh')
-rw-r--r-- | src/mem/dram_ctrl.hh | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/src/mem/dram_ctrl.hh b/src/mem/dram_ctrl.hh index fc1a6115b..ef8b47a2e 100644 --- a/src/mem/dram_ctrl.hh +++ b/src/mem/dram_ctrl.hh @@ -62,23 +62,25 @@ #include "sim/eventq.hh" /** - * The DRAM controller is a basic single-channel memory controller - * aiming to mimic a high-level DRAM controller and the most important - * timing constraints associated with the DRAM. The focus is really on - * modelling the impact on the system rather than the DRAM itself, - * hence the focus is on the controller model and not on the - * memory. By adhering to the correct timing constraints, ultimately - * there is no need for a memory model in addition to the controller - * model. + * The DRAM controller is a single-channel memory controller capturing + * the most important timing constraints associated with a + * contemporary DRAM. For multi-channel memory systems, the controller + * is combined with a crossbar model, with the channel address + * interleaving taking part in the crossbar. * - * As a basic design principle, this controller is not cycle callable, - * but instead uses events to decide when new decisions can be made, - * when resources become available, when things are to be considered - * done, and when to send things back. Through these simple - * principles, we achieve a performant model that is not - * cycle-accurate, but enables us to evaluate the system impact of a - * wide range of memory technologies, and also collect statistics - * about the use of the memory. + * As a basic design principle, this controller + * model is not cycle callable, but instead uses events to: 1) decide + * when new decisions can be made, 2) when resources become available, + * 3) when things are to be considered done, and 4) when to send + * things back. Through these simple principles, the model delivers + * high performance, and lots of flexibility, allowing users to + * evaluate the system impact of a wide range of memory technologies, + * such as DDR3/4, LPDDR2/3/4, WideIO1/2, HBM and HMC. + * + * For more details, please see Hansson et al, "Simulating DRAM + * controllers for future system architecture exploration", + * Proc. ISPASS, 2014. If you use this model as part of your research + * please cite the paper. */ class DRAMCtrl : public AbstractMemory { |