23--MARIE-08--Microcode, Interrupts

23--MARIE-08--Microcode, Interrupts - MARIE microcode

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon
MARIE microcode Consider the MARIE instruction set. We have developed all of the register-transfer instructions to  implement the MARIE instruction set. There are 22 unique register-transfer instructions. Our authors also  add two more: NOP If IR[15-12] = MicroOp2[4-1], branch to Dest If we were to list all of the micro-instructions that are used to implement the MARIE instruction set, we  would get the following list: Slide 66 in Chapter 4 PowerPoint: This list includes all 22 unique MARIE microinstructions plus two others (the first one 00000 and the last  one 10111). We can assign a  unique number  to each micro-instruction, and use those numbers to create a micro- code instruction set for MARIE. Because some micro-instructions can be done in parallel (on the same tick of the clock), we will allow for  two micro-operations to be carried out on each tick of the clock. Since we need 5 bits to designate a  single micro-operation, we will need 10 bits to designate two micro-operations. We also will use a "destination" field to indicate the address of the next instruction. However, rather than  having each micro-instruction indicate the address of the next micro-instruction (as in the Smotherman  example), the author uses another 1-bit field to indicate whether a jump is to take place or not. If the  "jump" bit is 1, the address in the address field will be used to fetch the next micro-instruction. If the  "Jump" bit is 0, we will simply advance to the next instruction. How wide does the "destination" field need  to be? It depends on how many micro-instructions are needed to implement the entire MARIE instruction  set. The entire MARIE instruction set can be implemented in fewer than 128 micro-instructions. So we will  need 7 bits for the destination address. 
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
So our micro-instruction format looks like this: MicroOp1 MicroOp2 Jump Dest 17-13 12-8 7 6-0 xxxxx xxxxx x xxxxxxx The first part of the MARIE micro-program looks like this.  See slide 67 of Chapter 4 PowerPoint, page 222 of text: However, the authors cheated – they used the register-transfer notation instead of the binary numbers. What the first few lines should  look like is this: Address MicroOp1 MicroOp2 Jump Dest 0000000 01001 00000 0 0000000 0000001 00101 00000 0 0000000 0000010 10000 00000 0 0000000 0000011 00111 00000 0 0000000 0000100 10111 00000 1 0100000 0000101 10111 00010 1 0100111 (Load) 0000110 10111 00100 1 0101010 (Store) 0000111 10111 00110 1 0101100 (Add) 0001000 10111 01000 1 0101111
Background image of page 2
Note that having 16 compare instructions in a row is ridiculous. This would have an enormous impact on  the speed of the machine! The method used by Smotherman makes much more sense. Another 
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 4
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 7

23--MARIE-08--Microcode, Interrupts - MARIE microcode

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online