summaryrefslogtreecommitdiff
path: root/src/mem/SimpleDRAM.py
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2013-11-01 11:56:26 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2013-11-01 11:56:26 -0400
commitbb572663cf1ba802492743f1196eb9eac4c20bea (patch)
tree7ff2e2901957bbdeb1b64c9aca453255706d22a9 /src/mem/SimpleDRAM.py
parentda6fd72f62578d0a981de8bb37dfb803d6c13f8a (diff)
downloadgem5-bb572663cf1ba802492743f1196eb9eac4c20bea.tar.xz
mem: Add a simple adaptive version of the open-page policy
This patch adds a basic adaptive version of the open-page policy that guides the decision to keep open or close by looking at the contents of the controller queues. If no row hits are found, and bank conflicts are present, then the row is closed by means of an auto precharge. This is a well-known technique that should improve performance in most use-cases.
Diffstat (limited to 'src/mem/SimpleDRAM.py')
-rw-r--r--src/mem/SimpleDRAM.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mem/SimpleDRAM.py b/src/mem/SimpleDRAM.py
index c450f8992..b16aa6003 100644
--- a/src/mem/SimpleDRAM.py
+++ b/src/mem/SimpleDRAM.py
@@ -53,8 +53,8 @@ class MemSched(Enum): vals = ['fcfs', 'frfcfs']
# open row. For a closed-page policy, CoRaBaCh maximises parallelism.
class AddrMap(Enum): vals = ['RaBaChCo', 'RaBaCoCh', 'CoRaBaCh']
-# Enum for the page policy, either open or close.
-class PageManage(Enum): vals = ['open', 'close']
+# Enum for the page policy, either open, open_adaptive or close.
+class PageManage(Enum): vals = ['open', 'open_adaptive', 'close']
# SimpleDRAM is a single-channel single-ported DRAM controller model
# that aims to model the most important system-level performance