Deleted Added
sdiff udiff text old ( 10286:e95a0ab1d368 ) new ( 10287:4966471a1ba1 )
full compact
1/*
2 * Copyright (c) 2012-2014 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 48 unchanged lines hidden (view full) ---

57#include "enums/MemSched.hh"
58#include "enums/PageManage.hh"
59#include "mem/abstract_mem.hh"
60#include "mem/qport.hh"
61#include "params/DRAMCtrl.hh"
62#include "sim/eventq.hh"
63
64/**
65 * The DRAM controller is a single-channel memory controller capturing
66 * the most important timing constraints associated with a
67 * contemporary DRAM. For multi-channel memory systems, the controller
68 * is combined with a crossbar model, with the channel address
69 * interleaving taking part in the crossbar.
70 *
71 * As a basic design principle, this controller
72 * model is not cycle callable, but instead uses events to: 1) decide
73 * when new decisions can be made, 2) when resources become available,
74 * 3) when things are to be considered done, and 4) when to send
75 * things back. Through these simple principles, the model delivers
76 * high performance, and lots of flexibility, allowing users to
77 * evaluate the system impact of a wide range of memory technologies,
78 * such as DDR3/4, LPDDR2/3/4, WideIO1/2, HBM and HMC.
79 *
80 * For more details, please see Hansson et al, "Simulating DRAM
81 * controllers for future system architecture exploration",
82 * Proc. ISPASS, 2014. If you use this model as part of your research
83 * please cite the paper.
84 */
85class DRAMCtrl : public AbstractMemory
86{
87
88 private:
89
90 // For now, make use of a queued slave port to avoid dealing with
91 // flow control for the responses being sent back

--- 604 unchanged lines hidden ---