cpu-o3: Stop using RenameMap::numFreeEntries
The method is extracting the minimum number of [1] non-zero free registers/entries across all register classes. This means that if we have saturated all register storage for a particular class, renaming will stop as a whole. I believe it does make sense to keep renaming and only block renaming in case an instruction requiring the particular register type is encountered. This would happen with the Rename::renameInsts method [1]: https://github.com/gem5/gem5/blob/stable/src/cpu/o3/rename_map.hh#L269 [2]: https://github.com/gem5/gem5/blob/stable/src/cpu/o3/rename.cc#L662 Change-Id: I932826a77a5c0b2e05d8fdcab0e6ca13cf0e3d23 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
This commit is contained in:
@@ -1225,9 +1225,6 @@ Rename::checkStall(ThreadID tid)
|
||||
} else if (calcFreeLQEntries(tid) <= 0 && calcFreeSQEntries(tid) <= 0) {
|
||||
DPRINTF(Rename,"[tid:%i] Stall: LSQ has 0 free entries.\n", tid);
|
||||
ret_val = true;
|
||||
} else if (renameMap[tid]->numFreeEntries() <= 0) {
|
||||
DPRINTF(Rename,"[tid:%i] Stall: RenameMap has 0 free entries.\n", tid);
|
||||
ret_val = true;
|
||||
} else if (renameStatus[tid] == SerializeStall &&
|
||||
(!emptyROB[tid] || instsInProgress[tid])) {
|
||||
DPRINTF(Rename,"[tid:%i] Stall: Serialize stall and ROB is not "
|
||||
|
||||
Reference in New Issue
Block a user