MOESI_hammer: fixed bug with single cpu + flushes, then modified the regression tester to check this functionality
This commit is contained in:
parent
0a9f4b950f
commit
f050ebe3a8
2 changed files with 10 additions and 4 deletions
|
@ -493,7 +493,7 @@ machine(Directory, "AMD Hammer-like protocol")
|
||||||
|
|
||||||
action(oc_sendBlockAck, "oc", desc="Send block ack to the owner") {
|
action(oc_sendBlockAck, "oc", desc="Send block ack to the owner") {
|
||||||
peek(requestQueue_in, RequestMsg) {
|
peek(requestQueue_in, RequestMsg) {
|
||||||
if ((probe_filter_enabled || full_bit_dir_enabled) && (in_msg.Requestor == cache_entry.Owner)) {
|
if (((probe_filter_enabled || full_bit_dir_enabled) && (in_msg.Requestor == cache_entry.Owner)) || machineCount(MachineType:L1Cache) == 1) {
|
||||||
enqueue(forwardNetwork_out, RequestMsg, latency=memory_controller_latency) {
|
enqueue(forwardNetwork_out, RequestMsg, latency=memory_controller_latency) {
|
||||||
out_msg.Address := address;
|
out_msg.Address := address;
|
||||||
out_msg.Type := CoherenceRequestType:BLOCK_ACK;
|
out_msg.Type := CoherenceRequestType:BLOCK_ACK;
|
||||||
|
@ -1033,7 +1033,7 @@ machine(Directory, "AMD Hammer-like protocol")
|
||||||
}
|
}
|
||||||
|
|
||||||
action(nofc_forwardRequestConditionalOwner, "nofc", desc="Forward request to one or more nodes if the requestor is not the owner") {
|
action(nofc_forwardRequestConditionalOwner, "nofc", desc="Forward request to one or more nodes if the requestor is not the owner") {
|
||||||
assert(machineCount(MachineType:L1Cache) > 1);
|
if (machineCount(MachineType:L1Cache) > 1) {
|
||||||
|
|
||||||
if (probe_filter_enabled || full_bit_dir_enabled) {
|
if (probe_filter_enabled || full_bit_dir_enabled) {
|
||||||
peek(requestQueue_in, RequestMsg) {
|
peek(requestQueue_in, RequestMsg) {
|
||||||
|
@ -1065,7 +1065,7 @@ machine(Directory, "AMD Hammer-like protocol")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
action(f_forwardWriteFromDma, "fw", desc="Forward requests") {
|
action(f_forwardWriteFromDma, "fw", desc="Forward requests") {
|
||||||
|
|
|
@ -65,10 +65,16 @@ options.l1i_assoc=2
|
||||||
options.l2_assoc=2
|
options.l2_assoc=2
|
||||||
options.l3_assoc=2
|
options.l3_assoc=2
|
||||||
|
|
||||||
|
# Turn on flush check for the hammer protocol
|
||||||
|
check_flush = False
|
||||||
|
if buildEnv['PROTOCOL'] == 'MOESI_hammer':
|
||||||
|
check_flush = True
|
||||||
|
|
||||||
#
|
#
|
||||||
# create the tester and system, including ruby
|
# create the tester and system, including ruby
|
||||||
#
|
#
|
||||||
tester = RubyTester(checks_to_complete = 100, wakeup_frequency = 10)
|
tester = RubyTester(check_flush = check_flush, checks_to_complete = 100,
|
||||||
|
wakeup_frequency = 10)
|
||||||
|
|
||||||
system = System(tester = tester, physmem = SimpleMemory())
|
system = System(tester = tester, physmem = SimpleMemory())
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue