mem-ruby: This commit fixes MI_example protocol (#1236)

fix two bugs in MI_example-dir.sm:
1. Directory cannot handle DMA_READ & DMA_WRITE events in M_DRDI state.
2. Directory cannot handle PUTX_NotOwner events in {M_DWR, M_DRD,
M_DRDI, M_DWRI} state.

Github Issue: https://github.com/gem5/gem5/issues/1210

Change-Id: I52a9d674ce0688dcfbbcc2b583f17de95afdeb87
This commit is contained in:
hahaxxz
2024-06-18 03:45:11 +08:00
committed by GitHub
parent 500da4306b
commit fef6a97f93

View File

@@ -535,7 +535,7 @@ machine(MachineType:Directory, "Directory protocol")
z_recycleRequestQueue;
}
transition({IM, MI, ID, ID_W}, {DMA_READ, DMA_WRITE} ) {
transition({IM, MI, ID, ID_W, M_DRDI}, {DMA_READ, DMA_WRITE} ) {
y_recycleDMARequestQueue;
}
@@ -651,4 +651,9 @@ machine(MachineType:Directory, "Directory protocol")
b_sendWriteBackNack;
i_popIncomingRequestQueue;
}
transition({M_DWR, M_DRD, M_DRDI, M_DWRI}, PUTX_NotOwner) {
b_sendWriteBackNack;
i_popIncomingRequestQueue;
}
}