changeset d1bb88080be4 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=d1bb88080be4
description:
        ruby: cleaned up access permission enum

diffstat:

 src/mem/protocol/MESI_CMP_directory-L2cache.sm     |   2 +-
 src/mem/protocol/RubySlicc_Exports.sm              |  20 +++++++++++++-------
 src/mem/ruby/slicc_interface/AbstractCacheEntry.cc |   3 +--
 src/mem/ruby/system/PerfectCacheMemory.hh          |   2 +-
 4 files changed, 16 insertions(+), 11 deletions(-)

diffs (68 lines):

diff -r bba14984f2ce -r d1bb88080be4 
src/mem/protocol/MESI_CMP_directory-L2cache.sm
--- a/src/mem/protocol/MESI_CMP_directory-L2cache.sm    Wed Feb 23 16:41:26 
2011 -0800
+++ b/src/mem/protocol/MESI_CMP_directory-L2cache.sm    Wed Feb 23 16:41:58 
2011 -0800
@@ -219,7 +219,7 @@
       } else if (state == State:M) {
         cache_entry.changePermission(AccessPermission:Read_Write);
       } else if (state == State:MT) {
-        cache_entry.changePermission(AccessPermission:Stale);
+        cache_entry.changePermission(AccessPermission:Invalid);
       } else {
         cache_entry.changePermission(AccessPermission:Busy);
       }
diff -r bba14984f2ce -r d1bb88080be4 src/mem/protocol/RubySlicc_Exports.sm
--- a/src/mem/protocol/RubySlicc_Exports.sm     Wed Feb 23 16:41:26 2011 -0800
+++ b/src/mem/protocol/RubySlicc_Exports.sm     Wed Feb 23 16:41:58 2011 -0800
@@ -47,14 +47,20 @@
 // Declarations of external types that are common to all protocols
 
 // AccessPermission
+// The following five states define the access permission of all memory blocks.
+// These permissions have multiple uses.  They coordinate locking and 
+// synchronization primitives, as well as enable functional accesses.
+// One should not need to add any additional permission values and it is very
+// risky to do so.
 enumeration(AccessPermission, desc="...", 
default="AccessPermission_NotPresent") {
-  Busy,       desc="No Read or Write";
-  Read_Only,  desc="Read Only";
-  Read_Write, desc="Read/Write";
-  Invalid,    desc="Invalid";
-  NotPresent, desc="NotPresent";
-  ReadUpgradingToWrite, desc="Read only, but trying to get Read/Write";
-  Stale,      desc="local L1 has a modified copy, assume L2 copy is stale 
data";
+  // Valid data
+  Read_Only,  desc="block is Read Only (modulo functional writes)";
+  Read_Write, desc="block is Read/Write";
+
+  // Invalid data
+  Invalid,    desc="block is in an Invalid base state";
+  NotPresent, desc="block is NotPresent";
+  Busy,       desc="block is in a transient state, currently invalid";
 }
 
 // TesterStatus
diff -r bba14984f2ce -r d1bb88080be4 
src/mem/ruby/slicc_interface/AbstractCacheEntry.cc
--- a/src/mem/ruby/slicc_interface/AbstractCacheEntry.cc        Wed Feb 23 
16:41:26 2011 -0800
+++ b/src/mem/ruby/slicc_interface/AbstractCacheEntry.cc        Wed Feb 23 
16:41:58 2011 -0800
@@ -50,8 +50,7 @@
 {
     m_Permission = new_perm;
     if ((new_perm == AccessPermission_Invalid) ||
-        (new_perm == AccessPermission_NotPresent) ||
-        (new_perm == AccessPermission_Stale)) {
+        (new_perm == AccessPermission_NotPresent)) {
         m_locked = -1;
     }
 }
diff -r bba14984f2ce -r d1bb88080be4 src/mem/ruby/system/PerfectCacheMemory.hh
--- a/src/mem/ruby/system/PerfectCacheMemory.hh Wed Feb 23 16:41:26 2011 -0800
+++ b/src/mem/ruby/system/PerfectCacheMemory.hh Wed Feb 23 16:41:58 2011 -0800
@@ -149,7 +149,7 @@
 PerfectCacheMemory<ENTRY>::allocate(const Address& address)
 {
     PerfectCacheLineState<ENTRY> line_state;
-    line_state.m_permission = AccessPermission_Busy;
+    line_state.m_permission = AccessPermission_Invalid;
     line_state.m_entry = ENTRY();
     m_map[line_address(address)] = line_state;
 }
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to