Help Page


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:
  1. 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 works.

  2. Number of Instructions: A text box to enter the number of instructions to be processed. The number should be between 1-10.

  3. 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 instruction selected.
    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

  4. Space to Enter the number of Execution Cycles taken by each functional unit. This values should be greater than zero or retained as the default values.

  5. 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 default values.

  6. 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 Operation/Execution/Write Result).
    • 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 SCHEDULING

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.