0% found this document useful (0 votes)
472 views4 pages

Mips Problems

This document contains sample questions and answers about MIPS assembly code. Question 1 asks to write MIPS code for some C code fragments involving conditional checks and a for loop. Question 2 asks to write MIPS code for a C for loop that iterates over arrays, and calculate instructions, memory references, and code size. Question 3 asks to calculate the effective CPI for MIPS using a figure showing average CPI measurements for different instruction types, given the instruction mix and branch taken percentages. The answers are not fully provided.

Uploaded by

newreillyo
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
472 views4 pages

Mips Problems

This document contains sample questions and answers about MIPS assembly code. Question 1 asks to write MIPS code for some C code fragments involving conditional checks and a for loop. Question 2 asks to write MIPS code for a C for loop that iterates over arrays, and calculate instructions, memory references, and code size. Question 3 asks to calculate the effective CPI for MIPS using a figure showing average CPI measurements for different instruction types, given the instruction mix and branch taken percentages. The answers are not fully provided.

Uploaded by

newreillyo
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

CMPE 470 MIPS TUTORIAL -1Fall 2011

Question 1
Write MIPS 64 code for next C fragments If (A == 200) B= 900;

If (A == 0 && B == 25) { i = A + B; } For (i=0; i < 10; i++) { A = A + 15; }

Assume A, B, and i correspond to memory locations: 1000, 1500, and 2000, respectively

Answer 1
PART 1 LD LI BNE LI SD SKIP: PART 2 LD LD BNE LI BNE R1, 1000(R0) R2, 1500(R0) R1, R0, SKIP R3, #25 R2, R2, SKIP R1, 1000(R0) R2, #200 R1, R2, SKIP R3, #900 R3, 1500(R0)

DADD R4, R1, R2 SD R4, 2000(R0) SKIP:

CMPE 470 MIPS TUTORIAL -1Fall 2011

PART 3

SOLVE IT IN HOME? HINTS WILL BE GIVEN IN LECTURE.

Question 2
Consider the following fragment of C code: For i=0; I<=100; i++( {A[i] = B[i] + C;} Assume that A and B are arrays of 64-bit integers, and C and I are 64-bit integers. Assume all data values and their addresses are kept in memory ( at locations 0, 5000, 1500, and 2000 for A, B, C, and I, respectively). Assume that values in registers are lost between iteration in the loop. Write MIPS64 code. How many instructions are required dynamically? How many memory-data references will be executed? What is the code size in bytes?

Answer 2
Program list will be as follow
Ex2-8 DADD R1, R0, R0 SW R1, 2000(R0) ; R0 =0; initialize i = 0 ; store i ; get value of i ; R2 = word offset of B[i] ; add base address of B to R2 ; load B[i] ; load C ; B[i] + C ; get value of i ; R2 = word offset of A[i]

Loop: LD R1, 2000(R0) DSLL R2, R1, #3 DADDI R3, R2, #5000 LD LD R4, 0(R3) R5, 1500(R0)

DADD R6, R4, R5 LD DSLL R1, 2000(R0) R2, R1, #3

CMPE 470 MIPS TUTORIAL -1Fall 2011

DADDI R7, R2, #0 SD R6, 0(R7) LD R1, 2000(R0) DADDI R1, R1, #1 SD R1, 2000(R0) LD R1, 2000(R0) DADDI R8, R1, #-101 BNEZ R8, loop

; add base address of A to R2 ; A[i] = B[i] + C ; get value of i ; increment i ; store i ; get value of i ; is counter at 101? ; if not 101 then repeat

Dynamic instructions = initialization instructions plus loop instructions times the number of iterations = 2 + (16 X 101) = 1618 Memory data reference is a count of load-store instructions = 0 + (8 X 101) = 808 Code size. Since MIPS instructions are 4 bytes in size then code size = 18 * 4 = 72 bytes

Question 3
Compute the effective CPI for MIPS using next Figure. Suppose we made the following measurements of average CPI for instructions: Instructions All ALU instructions Loads Stores Conditional branches Taken Not Taken Jumps Clock Cycles 1.0 1.4 ---2.0 1.5 1.2

Assume 60% of the conditional branches are taken. Assume other instructions not listed above as ALU. Average the instruction frequencies of gap and gcc to obtain the instruction mix?

CMPE 470 MIPS TUTORIAL -1Fall 2011

Answer 3
WILL BE SOLVED IN LECTURE.

You might also like