Testing Methodology

 

The software is extensively tested for different possible combinations to execute static scheduling with forwarding and without forwarding, and dynamic scheduling – tomasulo and scoreboarding by changing various configuration parameters. The testing methodology was divided into various phases to test each configuration parameter set and all other parameters were set fixed during testing of particular configuration parameter set. Finally, various combinations between different configuration parameter set were also tested.

 

Following is the one of the MIPS instruction set which was used for testing different parameters:

 

  1. LD F0, R0, 1
  2. LD F1, R1, 2
  3. ADD F2, F0, F1
  4. ADD F3, F1, F2
  5. SUB F4, F0, F1
  6. MULTIPLY F4, F4, F3
  7. DIVIDE F3, F2, F4
  8. SD F2, R0, 1
  9. SD F4, R1, 2

 

Default configuration

Number of cycle to execute:

Function

Number of cycles

LD/SD 1
ADD/SUB 2
MULTIPLY 3
DIVIDE 5

 

Number of functional units:

Functional Units

Number of units

LD/SD 1
ADD/SUB 1
MULTIPLY 1
DIVIDE 1

 

Number of reservation stations (only for Tomasulo):

Functional Units

Number of reservation stations

LD/SD 2
ADD/SUB 2
MULTIPLY 2
DIVIDE 2

 

Pipeline functional units:

Functional Units

Pipeline

LD/SD Yes
ADD/SUB Yes
MULTIPLY Yes
DIVIDE Yes

 

Scheduling algorithms:

Scheduling algorithms

Selected

Static Scheduling - With forwarding True
Static Scheduling - Without forwarding False
Dynamic Scheduling - Tomasulo False
Dynamic Scheduling - Scoreboarding False

 

 

Phase 1: Testing configuration parameter “number of cycles to execute different functional units”

Function for which number of cycle is changed Instructions affected Hazards
LD/SD Instr 1 and Instr 2 Structural hazards
ADD/SUB Instr 3 and Instr 4 Data  (RAW) and Structural hazards
MULTIPLY Instr 6 and Instr 7 Data hazard (WAR)
DIVIDE Instr 7 and Instr 8 Data hazard (WAW)

 

Phase 2: Testing configuration parameter “number of functional units”

Number of functional units changed Instructions affected Hazards
LD/SD Instr 1 and Instr 2 Structural hazards
ADD/SUB Instr 3, Instr 4 and Instr 5 Structural hazards

 

Phase 3: Testing configuration parameter “number of reservation stations for tomasulo”

Number of functional units changed Instructions affected Hazards
LD/SD Instr 1 and Instr 2 Structural hazards
ADD/SUB Instr 3, Instr 4 and Instr 5 Structural hazards

 

Phase 4: Testing configuration parameter “pipeline functional units”

 

Function for which number of cycle is changed Instructions affected Hazards
LD/SD Instr 8 and Instr 9 Structural hazards
ADD/SUB Instr 4 and Instr 5 Structural hazards
MULTIPLY Instr 5 and Instr 6 Data hazard (WAW, RAW)
DIVIDE Instr 6 and Instr 7 Data hazard (WAR)

 

Phase 5: Various combination of configuration parameter.

Testing configuration parameters from Phase 1 to Phase 4 was combined together to have more than 1 changes in different configuration set.

 

All these phases bring data and structural hazards among the input MIPS instruction set which add stall cycles during the execution phase. The stall cycles were tested to verify its occurrence.

 

 

BUGS

If you find any bugs, please report it to Niranjan <nniranja@ecs.umass.edu>