mem-ruby: fix data state for partial WU
When receiving data from a WriteUniquePtl we were wrongfully clearing the data valid flag. JIRA: https://gem5.atlassian.net/browse/GEM5-1195 Change-Id: I5c17433f1cfb706e443a0169a9f0e99ff5c1fcc0 Signed-off-by: Tiago Mück <tiago.muck@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/59989 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Maintainer: Jason Lowe-Power <power.jg@gmail.com>
This commit is contained in:
@@ -1934,7 +1934,12 @@ action(UpdateDataState_FromWUDataResp, desc="") {
|
||||
peek(datInPort, CHIDataMsg) {
|
||||
assert(in_msg.type == CHIDataType:NCBWrData);
|
||||
tbe.dataDirty := true;
|
||||
tbe.dataValid := tbe.accSize == blockSize;
|
||||
if (tbe.reqType == CHIRequestType:WriteUniquePtl) {
|
||||
// we are just updating any valid data we already had
|
||||
tbe.dataValid := tbe.dataValid || (tbe.accSize == blockSize);
|
||||
} else {
|
||||
tbe.dataValid := tbe.accSize == blockSize;
|
||||
}
|
||||
}
|
||||
}
|
||||
printTBEState(tbe);
|
||||
|
||||
Reference in New Issue
Block a user