Consider the following MIPS code:
add $t3,$t2,$t1
lw $t4,0($t3)
sw $t7,0($t3)
add $t6,$t2,$t8
addi $t3,$t5,4
(a) Draw a general pipeline diagram from CC1 to CC5
(b) Can you identify the type of hazard in pipeline for executing the code?
(c) What is the solution to the hazard? If NOP (noop or bubbles) have to be inserted to avoid hazard, where will you put them?
(d) Put the code into the MIPS simulator and observe your findings. You may want to load your own numbers into the registers to see better register contents. (a) Provide contents of registers by printing or using screen print to demonstrate the contents after each instruction execution. (b) Provide your .asm file.
Answer:-
Consider 5 stage pipeline with the following stages:
IF, ID, OF, EX and WB
The type of hazard is RAW (read after write) and CONTROL hazard. Wherever the hazard occurs, NOOP is inserted.
Consider the following MIPS code: add $t3,$t2,$t1 lw $t4,0($t3) sw $t7,0($t3) add $t6,$t2,$t8 addi $t3,$t5,4 (a)...
The following MIPS program is to be run on a MIPS pipeline processor of 5 stages (IF-ID-EX-MEM-WB). Work out and diagram the optimal pipeline schedule using full forwarding from EX or MEM stages to any other stage, Draw the pipeline execution diagram for this code and then compute the pipeline CPI: addi $t6, $t6, 10 sub $t5, $t6, $t4 srl $t5, $t5, 2 sw $t5, 20($t5) lw $t2, 0($t6) add $t7, $t2, $t3 beq $t5, $t7, End
1. Given the following instruction sequence for the MIPS processor with the standard 5 stage pipeline $10, S0. 4 addi lw S2.0(S10) add sw S2,4(510) $2, $2, $2 Show the data dependences between the instructions above by drawing arrows between dependent instructions (only show true/data dependencies). a. Assuming forwarding support, in what cycle would the store instruction write back to memory? Show the cycle by cycle execution of the instructions as they execute in the pipeline. Also, show any stalls...
We have the following sequence of instructions in MIPS lw $t4, 4($s1) or $t1, $t2, $t3 or $t2, $t1, $t4 or $t1, $t1, $t2 1) Indicate any hazards and what the hazard types are. 2) Assume there is no forwarding in this pipelined processor and each stage takes 1 cycle. Draw the pipeline chart and calculate how many cycles are consumed 3) Assume there is forwarding in this pipelined processor and each stage takes 1 cycle. Draw the pipeline chart...
Question 4) (12 Marks) This question is based on the MIPS assembly code shown below. data the Array: space 160 main: li $t6, 1 li $17, 4. sw $17, the Array($0) sw $17, theArray($17) li $t0, 8 loop: addi $t3, $t0, -8 addi $t4, $t0, -4 lw 1, the Array($t3) lw $12, the Array(St4) add $15, $t1, $t2 sw $15, theArray($to) addi $t0, $t0, 4 blt $t0, 160, loop jr Sra. Question 4 Assembly code a) what is the contents...
We’re executing the following instruction sequences on a 5-stage MIPS pipeline. Add R8, R9, R10 Lw R14, 0x0020(R12) Or R16, R9, R10 Sw R12, 0x0020(R10) Addi R20, R21, 5 (1) At cycle 5, what action (add, sub, and, or) is ALU performing? (2) At cycle 5, what is the action (read, write, no action) of DM? (3) At cycle 5, which registers are being read out? (4) What is the speedup comparing with the unpipelined execution of the same instruction...
We’re executing the following instruction sequences on a 5-stage MIPS pipeline. Add R8, R9, R10 Lw R14, 0x0020(R12) Or R16, R9, R10 Sw R12, 0x0020(R10) Addi R20, R21, 5 (1) At cycle 5, what action (add, sub, and, or) is ALU performing? (2) At cycle 5, what is the action (read, write, no action) of DM? (3) At cycle 5, which registers are being read out? (4) What is the speedup comparing with the unpipelined execution of the same instruction...
Give Hex code for the MIPS instruction add $t1, $t2, $t3
The following MIPS assembly code contains a mistake that violates the MIPS convention in terms of using stack for storing/protecting registers. What is the mistake and how should it be fixed? Correct the corresponding lines in the code. For the corrected code, sketch the stack frame contents at the time when the instruction ‘move $s1, $a1’ is being executed. f: addi $sp, $sp, 12 sw $ra, 8($sp) sw $s1, 4($sp) sw $s0, 0($sp) move $s0, $a0 move $s1, $a1 #...
1. Suppose we have a 5-stage pipeline CPU and run the following instructions: or $tl, $t2, $t3 or $t2, $tl, $t4 or $tl, $tl, $t2 1.1. What dependencies are there in the code? 1.2. Suppose there is no forwarding. What hazard may happen? Draw the pipeline diagram and insert stall (nop) to prevent these hazard. 1.3. If the pipeline has full forwarding. Are there still hazard? If so, draw the pipeline diagram and insert stall (nop) to prevent the hazard....
You may not need as many lines 5: add, sub, addi, j, beq, bne, lw, sw. as we provide space for (4 pts) Write a MIPS program starting at address 20 that writes a value of 488 to register $7. Next, you will test if register $10 is equal to register $7. If the values are equal, continue execution at address 48; otherwise set the value in register $7 to $10 $21 (contents of register $10 subtract contents of register...