summaryrefslogtreecommitdiff
path: root/src/mem/SimpleDRAM.py
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2014-03-23 11:12:03 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2014-03-23 11:12:03 -0400
commit116985d661f6383bf2b61fa9b9d3df96e52fdb6d (patch)
treeb4442e976e3ab715c51ec4560a2a72959a91c385 /src/mem/SimpleDRAM.py
parent6557741311f28f718cc33f9abde36d7e51f3585c (diff)
downloadgem5-116985d661f6383bf2b61fa9b9d3df96e52fdb6d.tar.xz
mem: Limit the accesses to a page before forcing a precharge
This patch adds a basic starvation-prevention mechanism where a DRAM page is forced to close after a certain number of accesses. The limit is combined with the open and open-adaptive page policy and if reached causes an auto-precharge.
Diffstat (limited to 'src/mem/SimpleDRAM.py')
-rw-r--r--src/mem/SimpleDRAM.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mem/SimpleDRAM.py b/src/mem/SimpleDRAM.py
index 1f44888e7..a72bd518c 100644
--- a/src/mem/SimpleDRAM.py
+++ b/src/mem/SimpleDRAM.py
@@ -90,6 +90,10 @@ class SimpleDRAM(AbstractMemory):
addr_mapping = Param.AddrMap('RoRaBaChCo', "Address mapping policy")
page_policy = Param.PageManage('open', "Page closure management policy")
+ # enforce a limit on the number of accesses per row
+ max_accesses_per_row = Param.Unsigned(16, "Max accesses per row before "
+ "closing");
+
# pipeline latency of the controller and PHY, split into a
# frontend part and a backend part, with reads and writes serviced
# by the queues only seeing the frontend contribution, and reads