Lab 3 MIPS Arithmethic Instructions¶
Assignment 1¶
Workout a binary (!) multiplication of 0x59 and 0x14. Give the complete multiplication, not just the answer.
Workout the following binary division: 35 (base 10) / 8 (base 10). Show all steps of the binary division. Use a binary point notation.
Workout a single precision IEEE notation for the division result. Do the same for a double precision.
Assignment 2¶
Use the singlecycle architecture of the previous lab in the SIM-PL executer. Write a short assembly program which multiplies two integers using the MULT statement. How can you retrieve the result? Look up the statements for this.
Write a program which implements figure 3.5 of Patterson and Hennessy.
Compare the CPI of both programs
Assignment 3¶
Use the multiplier component (Multiplier.sim-pl) of Multiplier.zip. Open this component in the executer (use File-> New to open the file for some java distributions). Open in the program window the Multiplier.sal file.
Investigate the component by changing multiplicand and multiplier. Note that he values have a different base.
What can you say about the CPI on one multiply instruction?
if the SingleCycle architecture of the previous lab would be extended with this hardware multiplier as a block near the ALU what will it mean for control lines and datalines?
What is the effect on the Cycle time of the architecture extension?
Lookup the opcode/func fields for the MULT instruction. Describe how to produce a controlbit to select the multiplier.
ALU and multiplier share the same datapath to the register file. Describe how you would solve this.