In this exercise we examine in detail how an instruction is executed in a single-cycle datapath. Problems in this exercise refer to a clock cycle in which the processor fetches the following instruction word:

10101100100001010000000000010100

Assume that the data memory is all zeros and that the processor’s registers have the following values at the beginning of the cycle in which the above instruction word is fetched:

R0 R1 R2 R3 R4 R5 R6 R8 R12 R31
0 1 -2 3 -4 5 -6 -8 -12 31

a, What are the outputs of the sign-extend and the jump "Shift-Left-2" (near the top of Figure 4.24) for this instruction word?

b, What are the values of ALU control unit’s inputs (ALUOp and Instruction operation) for this instruction?

c, What is the new PC address after this instruction is executed? Highlight the path through which this value is determined.

d, For the ALU and the two add units, what are their data input values?
e, What are the values of all inputs for the "Registers" unit?

Respuesta :

The answer & explanation for this question is given in the attachment below.

Ver imagen ammary456

Following are the responses to the given question:

Given instruction:

[tex]10101100100001010000000000010100[/tex]

For point A)

Sign extend and leap "shift left 2": The sign extend can be determined by taking the LSB 16 bits and expanding it to 32 bits.

Sign Extend

[tex]00000000000000000000000000010100[/tex]

A jump command "shift left 2" can be discovered by extracting the LSB 26 bit and shifting left by 2 bits.

Jump Shift Left 2

[tex]0010000101000000000001010000[/tex]

For point B)

ALU control units' inputs are as follows:

Its ALUop has two LSBs.

[tex]ALUop\\\\00[/tex]

The instructions are a 6 bit LSB instruction.

Instruction

[tex]010100[/tex]

For point C)

New PC address:

[tex]New PC Address \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Path \\\\ PC+4 \ \ \ \ \ \ \ \ PC \to Add (PC +4) \to Branch MUX \to Jump MUX \to PC[/tex]

For point D)

Input values:

[tex]ALU \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Add (PC+4) \ \ \ \ \ \ \ \ \ \ \ Add (Branch)[/tex]

[tex]In put \#1 \ \ \ In put \# 2 \ \ \ \ In put \# 1 \ \ \ In put \# 2 \ \ \ \ In put \# 1 \ \ \ In put \# 2\\\\[/tex]

[tex]-4 \ \ \ \ 20 \ \ \ \ \ \ PC \ \ \ \ 4 \ \ \ \ \ \ PC+4 \ \ \ \ 20*4[/tex]

For point E)

Calculating the inputs into the "Registers" units:

[tex]\text{Bits\ 25-21 specify the Read Reg#1} \\\\\text{Bits\ 20-16 specify the Read Reg#2}[/tex]

[tex]Read \ \ \ \ \ \ Read \\\\Reg\#1 \ \ \ \ \ \ Reg\#2 \ \ \ \ \ \ WriteReg \ \ \ \ \ \ WriteData\ \ \ \ \ \ RegWrite[/tex]

[tex]4 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 5 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ X \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ X \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0[/tex]

Learn more:

brainly.com/question/25222612