Schnizo associates a tag with every instruction. This tag carries information that is later required in the writeback stage. During superscalar loop execution, the tag is also used to forward the slot ID of the producer slot together with the computed result.
In configurations with a large number of slots, the number of bits required to encode this information exceeds the capacity of instr_tag_t. In such cases, the tag width passed through the functional unit must be extended.
For most functional units, this is already handled by defining dedicated tag and issue request types in schnizo_fu_stage.sv that support the extended tag width. For example, the FPU uses a specialized request type:
However, for the LSU this extension was overlooked. The LSU still uses the standard issue_req_t, which is typically used for functional units without a reservation station:
Schnizo associates a tag with every instruction. This tag carries information that is later required in the writeback stage. During superscalar loop execution, the tag is also used to forward the slot ID of the producer slot together with the computed result.
In configurations with a large number of slots, the number of bits required to encode this information exceeds the capacity of instr_tag_t. In such cases, the tag width passed through the functional unit must be extended.
For most functional units, this is already handled by defining dedicated tag and issue request types in schnizo_fu_stage.sv that support the extended tag width. For example, the FPU uses a specialized request type:
However, for the LSU this extension was overlooked. The LSU still uses the standard issue_req_t, which is typically used for functional units without a reservation station: