Exam ID: «Exam_ID»

1.             (10 points) Tell how the A, B, and C busses of the ARC processor are used during memory read, memory write, and ALU operations.

2.             (10 points) How does the ARC processor determine the address of the next instruction to be executed, and how does the control unit implement instructions that alter the normal sequential execution of instructions, such as branches, calls and jumps?

3.             (5 points) What is the purpose of the ARC %psr register?

4.             (25 points) Show all the connections to and from the flip-flops for bit positions 2 and 3 of registers 8 and 9 of the ARC processor.  Include connections to and from all busses, decoders and multiplexors.  Draw boxes instead of gates for the flip-flops and multiplexors. Show all tristate buffers used in these connections.  Label everything.  You do not have to show where the control signals for the decoders and multiplexors come from.

5.             (10 points) What does the acronym “ISA” stand for, and what does it refer to?  Define microarchitecture, and explain the relationship between a processor’s ISA and its microarchitecture.

6.             (10 points) Translate the following instructions into binary:

addcc            %r6, %r7, %r22

ld            %r22, 0x3E8, %r23

7.             (10 points) Assume the two instructions in Question 6 are executed in the order given, and assume that before the first instruction is executed register 6 contains 0x1000, register 7 contains 0x2000, register 22 contains 0x4000, and register 23 contains 0x8000.

A.      Which register’s value will change as a result of executing the first instruction, and what will be its new value?

  1. Which register’s value will change as a result of executing the second instruction, and where will its new value come from?  (Hint: there is no way to know from the information given what the actual value will be.)

8.             (10 points) Translate the following microinstructions into binary:

R[rd] ß andcc( R[rs1], R[temp0] ); goto 2047

R[temp0] ß add( R[rs1], R[rs2] ); if ( R[IR[13]] ) goto 1024

9.             (10 points) Translate the following control words from binary to symbolic form.  Then tell what each microinstruction does.

A.      000000 0 000000 0 000000 0 00 0101 111 00000000000

  1. 000000 1 000000 1 100000 0 10 1000 001 11111111111

_____________

Register

Number

%pc

32

%temp0

33

%temp3

36

%ir

37