-
Notifications
You must be signed in to change notification settings - Fork 139
Rearrange data bypass to have Decode stage #823
Comments
In a nutshell, I implemented this port to avoid using Decode stage in the RegisterStage class. Disadvantages:
|
I suppose that's partly true. On Decode stage (at the current implementation), we read the registers; and that may be considered as a part of execution pipeline. If we split the stage into two parts, we would get Decode stage and Allocation stage here, and register read would stay at Allocation.
I generally prefer unit tests to be verbose :-). db.trace_new_instr( load); // load is in Decode stage now
db.update(); // load has been moved to the first execution stage (EXE_0)
CHECK( db.is_stall( add)); // stall (src is not ready + retirement at the same time) Do I understand correctly that |
Yes |
mipt-mips/simulator/modules/decode/decode.cpp
Line 64 in 2d39e1d
@denislos Why do we need that backward port?
EDIT: Discussion below proposes that backward port may be removed by adding the Decode stage into the bypass module.
For description of bypasses implementation, check our Wiki page: https://github.com/MIPT-ILab/mipt-mips/wiki/Data-Bypass-and-Scoreboard
The text was updated successfully, but these errors were encountered: