This tool has been developed to compute and explain how
Dynamic Scheduling is obtained using the Tomasulo's Algorithm for a given
set of instructions entered by the user.
ELEMENTS OF THE TOOL
The interface to the tool has the following elements:
- HELP link: This link redirects the user to this Help page giving
a general description about how to use this tool and how the algorithm
- Number of Instructions: A text box to enter the number of
instructions to be processed. The number should be between 1-10.
- Space to Enter the Instructions to be processed. Drop down boxes
have been provided to select the required instruction. Each drop down box is
followed by three text boxes to enter the information relevant to each
The user should enter register names beginning
with a 'F' or 'f' and the register numbers between 0-31.The user should
enter only that many number of complete instructions as entered by
him/her in the element number 2 (Number of Instructions).The tool flashes an
error message in conditions where the user does not meet the above
requirements. The first of the three text box is for the destination register and the remaining for source registers.
For load or store instructions integer registers (starting with 'R' or 'r') or integer values are accepted
- Space to Enter the number of Execution Cycles taken by each
functional unit. This values should be greater than zero or retained as the
- Space to Enter the number of Reservation stations and load-store buffers for different
functional units. This values should be greater than zero or retained as the
- Two Radio buttons have been provided for the user to select the
type of result required.
- End Output: gives the final output tables when the set of
instructions have been completely processed.
- Step by Step Output: depicts the outputs for all those clock
cycles where an instruction is completed or enters a new phase (Issue/Read
- Submit/Next button to get the output when the instrucions have been
entered and the type of output required is selected. In case of Step by Step
Output selection, this button acts a Next button giving the outputs for
subsequent clock cycles.
- Next Significant Cycle button allows a user to move to the cycle in which some visible action occurs.
THEOROTICAL CONCEPTS ABOUT DYNAMIC
A simple statically scheduled pipeline fetches an
instruction and issues it, unless there was a data dependence between an
instruction already in the pipeline and the fetched instruction that cannot be
hidden with bypassing or forwarding. If there is a data dependence that cannot
be hidden, then the hazard detection hardware stalls the pipeline (starting
with the instruction that uses the result). No new instructions are fetched or
issued until the dependence is cleared.
The major limitation of the
simple pipelining techniques is that they all use In-Order Instruction
Issue and Execution. If say instruction j depends on a long running
instruction i, currently in execution in the pipeline, then all
instructions after j must be stalled until i is finished and
j can execute.
Dynamic Scheduling: is the technique in
which the hardware rearranges the instruction execution to reduce the stalls
while maintaining data flow and exception behaviour. The Issue process
is separated into two parts: checking for any structural hazards and waiting
for the absence of a data hazard. We can check for structural hazard when we
issue the instruction; thus, we still use In-Order Instruction Issue,
but we want an instruction to begin execution as soon as its data operand is
available. Thus, this pipeline does Out-Of-Order Execution, which
implies Out-Of-Order Completion.