29 September 1997 – Subject To Change
Internal Architecture
2–21
Scheduling and Issuing Rules
Slotting
The slotting function in the IDU determines which instructions will be sent forward
to attempt to issue. The slotting function detects and removes all static functional
resource conflicts. The set of instructions output by the slotting function will issue if
no register or other dynamic resource conflict is detected in stage 3 of the pipeline.
The slotting algorithm follows:
Starting from the first (lowest addressed) valid instruction in the INT16 in stage
2 of the 21164PC IDU pipeline, attempt to assign that instruction to one of the
four pipelines (E0, E1, FA, FM). If it is an instruction that can issue in either E0
or E1, assign it to E0. However, if one of the following is true, assign it to E1:
•
E0 is not free and E1 is free.
•
The next integer instruction
1
in this INT16 can issue only in E0.
If the current instruction is one that can issue in either FA or FM, assign it to FA
unless FA is not free. If it is an FA-only instruction, it must be assigned to FA. If
it is an FM-only instruction, it must be assigned to FM. Mark the pipeline
selected by this process as taken and resume with the next sequential instruction.
Stop when an instruction cannot be allocated in an execution pipeline because
any pipeline it can use is already taken.
The slotting logic does not send instructions forward out of logical instruction order
because the 21164PC always issues instructions in order. The slotting logic also
enforces the special rules in the following list, stopping the slotting process when a
rule would be violated by allocating the next instruction an execution pipeline:
1
IEU pipeline 0.
2
IEU pipeline 1.
3
FEU add pipeline.
4
FEU multiply pipeline.
5
UNOP is LDQ_U R31,0(Rx).
1
In this context, an integer instruction is one that can issue in one or both of E0 or E1, but
not FA or FM.
FCPYS
FM or FA
CPYS, not including CPYSN or CPYSE
MISC
E0
RPCC, TRAPB
UNOP
None
UNOP
5
Table 2–8 Instruction Classes and Slotting
(Sheet 3 of 3)
Class Name Pipeline
Instruction List