Functional Accesses: Update states to support Broadcast/Snooping protocols.
authorLisa Hsu <Lisa.Hsu@amd.com>
Thu, 1 Sep 2011 18:41:44 +0000 (11:41 -0700)
committerLisa Hsu <Lisa.Hsu@amd.com>
Thu, 1 Sep 2011 18:41:44 +0000 (11:41 -0700)
commitae12ae30239a4d62bdb7e88f0d9f7be613fa1005
treec94eca59c43aa6e8c0f91f094a4df7a66b1624c5
parentebda5c14a57d4c140e664b6f9c31dae9a94552aa
Functional Accesses: Update states to support Broadcast/Snooping protocols.

In the current implementation of Functional Accesses, it's very hard to
implement broadcast or snooping protocols where the memory has no idea if it
has exclusive access to a cache block or not. Without this knowledge, making
sure the RW vs. RO permissions are right are next to impossible. So we add a
new state called Backing_Store to enable the conveyance that this is the backup
storage for a block, so that it can be written if it is the only possibly RW
block in the system, or written even if there is another RW block in the
system, without causing problems.

Also, a small change to actually set the m_name field for each Controller so
that debugging can be easier. Now you can access a controller's name just by
controller->getName().
src/mem/protocol/RubySlicc_Exports.sm
src/mem/ruby/system/RubyPort.cc
src/mem/slicc/symbols/StateMachine.py