Fall 2002, Computer Organization, Assignment 3
Section 02: Due Monday 11/18 at the start of class
Type all the answers. Hand in a printout. Upload the assignment via
the web: Submitting
Homework Online.
-
(2) What is the Micro Assembly Language (MAL) instruction for this hex
microinstruction?
4413F2108
-
(2) What is the hex microinstruction for this Micro Assembly Language (MAL)
instruction?
MAR = SP = SP + 1; wr; fetch; goto(0x13D)
-
(2) Explain how it is possible that the
goto(MBR)
in instruction
two has the MBR from the fetch in instruction one, but that MDR in
instruction 4 is not the value from the read in instruction three.
INST1: PC = PC + 1; fetch
INST2: PC = PC + 1; fetch; goto(MBR)
INST3: MAR = SP - 1; rd
INST4: H = MDR
-
(1) What would be the byte code for the instruction:
GOTO -45
-
(1) The PC and the MAR both hold addresses. There is a difference between
how these addresses are used in their respective caches. Explain the difference.
-
(2) Translate the following statement into IJVM symbolic instructions (like
IADD, BIPUSH, etc). Use reasonable values for I, J, and K. Assume that the
offset of CALCULATE in the constant pool is 0x1234. Since we are not implementing
object oriented calls, assume that this (the pointer to the current
object) is 0 (NULL).
K = CALCULATE(I, J);
-
(1) Explain how a large PLA could be used instead of a ROM to implement the
control store. Assume the PLA is as big as you need it to be.
-
(3) IJVM versus JVM
-
In the IJVM, the first instruction for DUP is at 0x59 in the ROM. Why can't
the second instruction for DUP be at address 0x60 in our IJVM?
-
Assuming that the full JVM has 256 op codes, what can you surmise
about the size of the ROM in the full JVM. Explain your answer.
-
Assuming that the full JVM has 256 op codes, what might be a plausible
address for the address of Main1 in the ROM?
-
(2) Write the microcode for an IFLE instruction. It pops the top operand
from the stack and branches if the top operand is less than or equal to zero.
Remember that the ALU sets the condition codes during every instruction.
Be sure that your jump addresses are consistent within IFLE and within the
remaining microinstructions.
-
(2) Implement
WIDE IINC
. It is just like IINC
except
that both the varnum and the constant are 16 bits.
-
(2) There are four improvements from MIC-1 to MIC-2: a) 3 bus architecture,
b) instruction fetch unit handles the PC, c) access to 16-bit operands
and d) merging the interpreter loop. INVOKEVIRTUAL in MIC-1 has 22 lines
of code, it has 11 lines of code in MIC-2. There are three types of changes:
sequences of instructions are grouped into one instruction; instructions
are removed, instructions are changed. For the MIC-1 INVOKEVIRTUAL command,
indicate which instructions are removed, which are grouped,
and which are changed. For each, indicate the improvement(s) that
allowed the alteration. If they are grouped, indicate which instructions
are grouped together.