summaryrefslogtreecommitdiff
path: root/src/mem/protocol
diff options
context:
space:
mode:
authorLisa Hsu <Lisa.Hsu@amd.com>2011-03-31 17:17:57 -0700
committerLisa Hsu <Lisa.Hsu@amd.com>2011-03-31 17:17:57 -0700
commit322b9ca2c5b0465db7086abdc6eadca061932575 (patch)
treeb14837962707de7b90b95c0b0a7b09ffa1988847 /src/mem/protocol
parent06fcaf9104cefe5a2c0062b9357dae46bfd9992a (diff)
downloadgem5-322b9ca2c5b0465db7086abdc6eadca061932575.tar.xz
Ruby: Add new object called WireBuffer to mimic a Wire.
This is a substitute for MessageBuffers between controllers where you don't want messages to actually go through the Network, because requests/responses can always get reordered wrt to one another (even if you turn off Randomization and turn on Ordered) because you are, after all, going through a network with contention. For systems where you model multiple controllers that are very tightly coupled and do not actually go through a network, it is a pain to have to write a coherence protocol to account for mixed up request/response orderings despite the fact that it's completely unrealistic. This is *not* meant as a substitute for real MessageBuffers when messages do in fact go over a network.
Diffstat (limited to 'src/mem/protocol')
-rw-r--r--src/mem/protocol/RubySlicc_Types.sm4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mem/protocol/RubySlicc_Types.sm b/src/mem/protocol/RubySlicc_Types.sm
index add3d979b..7d444ab57 100644
--- a/src/mem/protocol/RubySlicc_Types.sm
+++ b/src/mem/protocol/RubySlicc_Types.sm
@@ -146,6 +146,10 @@ structure (CacheMemory, external = "yes") {
void setMRU(Address);
}
+structure (WireBuffer, inport="yes", outport="yes", external = "yes") {
+
+}
+
structure (MemoryControl, inport="yes", outport="yes", external = "yes") {
}