Microprogramming: Basic Idea

Microprogramming: Basic Idea

5-45 Chapter 5—Processor Design—Advanced Topics Microprogramming: Basic Idea • Recall control sequence for 1-bus SRC Step Concrete RTN Control Sequence T0 MA ← PC: C ← PC + 4; PCout, MAin, INC4, Cin, Read ← ← T1 MD M[MA]: PC C; Cout, PCin, Wait T2 IR ← MD; MDout, IRin ← T3 A R[rb]; Grb, Rout, Ain ← T4 C A + R[rc]; Grc, Rout, ADD, Cin ← T5 R[ra] C; Cout, Gra, Rin, End • Control unit job is to generate the sequence of control signals • How about building a computer to do this? Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-46 Chapter 5—Processor Design—Advanced Topics The Microcode Engine • A computer to generate control signals is much simpler than an ordinary computer • At the simplest, it just reads the control signals in order from a read-only memory • The memory is called the control store • A control store word, or microinstruction, contains a bit pattern telling which control signals are true in a specific step • The major issue is determining the order in which microinstructions are read Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-47 Chapter 5—Processor Design—Advanced Topics Fig 5.16 Block Diagram of Microcoded Control Unit Ck CCs Other IR Opcode PLA • Microinstruction has Sequencer (computes branch control, 2 start addr) External source n branch address, and control signal fields Increment 4–1 Mux n • Microprogram µPC counter can be set n from several sources to do the required Control sequencing store k n m µBranch µIR control Branch Control signals address PCout, etc. Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-48 Chapter 5—Processor Design—Advanced Topics Parts of the Microprogrammed Control Unit • Since the control signals are just read from memory, the main function is sequencing • This is reflected in the several ways the µPC can be loaded • Output of incrementer—µPC + 1 • PLA output—start address for a macroinstruction • Branch address from µinstruction • External source—say for exception or reset • Micro conditional branches can depend on condition codes, data path state, external signals, etc. Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-49 Chapter 5—Processor Design—Advanced Topics Contents of a Microinstruction Microinstruction format Branch control Control signals Branch address in in out out in PC C A End MA PC • Main component is list of 1/0 control signal values • There is a branch address in the control store • There are branch control bits to determine when to use the branch address and when to use µPC + 1 Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-50 Chapter 5—Processor Design—Advanced Topics Fig 5.17 The Control Store 0 µCode for instruction fetch • Common instruction a1 µCode for add fetch Microaddress sequence • Separate a2 µCode for br sequences for each (macro) instruction a3 µ Code for shr • Wide words 2n-1 m bits wide k µbranch c control n branch control bits signals addr. bits Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-51 Chapter 5—Processor Design—Advanced Topics Tbl 5.2 Control Signals for the . add Instruction 101 ••• 100011000011000000 102 ••• 010000100000100000 103 ••• 001000010000000000 200 ••• 0 0010000 1 000000 1 00 201 ••• 0 0000000011000 1 00 1 202 ••• 0 100000001000011 00 • Addresses 101–103 are the instruction fetch • Addresses 200–202 do the add • Change of µcontrol from 103 to 200 uses a kind of µbranch Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-52 Chapter 5—Processor Design—Advanced Topics Uses for µbranching in the Microprogrammed Control Unit (1) Branch to start of µcode for a specific inst. → (2) Conditional control signals, e.g. CON PCin (3) Looping on conditions, e.g. n ≠ 0 → ... Goto6 • Conditions will control µbranches instead of being ANDed with control signals • Microbranches are frequent and control store addresses are short, so it is reasonable to have a µbranch address field in every µ instruction Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-53 Chapter 5—Processor Design—Advanced Topics Illustration of µbranching Control Logic • We illustrate a µbranching control scheme by a machine having condition code bits N and Z • Branch control has 2 parts: (1) selecting the input applied to the µPC and (2) specifying whether this input or µPC + 1 is used • We allow 4 possible inputs to µPC • The incremented value µPC + 1 • The PLA lookup table for the start of a macroinstruction • An externally supplied address • The branch address field in the µinstruction word Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-54 Chapter 5—Processor Design—Advanced Topics Fig 5.18 Branching Controls in the Microcoded Control Unit ZN Sequencer PLA • 5 branch 2 External address conditions 2 • NotN 2 2 4–1 Mux • N 2 • NotZ Incr. µPC 2 Branch address • Z • Unconditional Control store • To 1 of 4 places • Next 0 0 0 0 0 0 0 Control signals 244 10 µinstruction 2 Mux control • PLA BrUn BrNotZ Mux Ctl Select • External BrZ 00 Increment µPc BrNotN 01 PLA address BrN 10 External address 11 Branch address • Branch address Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-55 Chapter 5—Processor Design—Advanced Topics Some Possible µbranches Using the Illustrated Logic (Refer to Tbl 5.3) . Cont r ol Branch Signals Address Branching act ion 00 0 0000 ••• XXX None—next instruct ion 01 1 0000 ••• XXX Branch to output of PLA 10 00100 ••• XXX Br if Z to Extern. Addr. 11 00001 ••• 300 Br if N to 300 (else next) 11 0001 0 0• • • 0 206 Br if N to 206 (else next) 11 1 0000 ••• 204 Br t o 20 4 • If the control signals are all zero, the µinstruction only does a test • Otherwise test is combined with data path activity Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-56 Chapter 5—Processor Design—Advanced Topics Horizontal versus Vertical Microcode Schemes • In horizontal microcode, each control signal is represented by a bit in the µinstruction • In vertical microcode, a set of true control signals is represented by a shorter code • The name horizontal implies fewer control store words of more bits per word • Vertical µcode only allows RTs in a step for which there is a vertical µinstruction code • Thus vertical µcode may take more control store words of fewer bits Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-57 Chapter 5—Processor Design—Advanced Topics Fig 5.19 A Somewhat Vertical Encoding ALU Register-out ops field field µIR F5 F8 4 3 4–16 decoder 3–8 decoder 16 ALU 7 Regout control control signals signals • Scheme would save (16 + 7) - (4 + 3) = 16 bits/word in the case illustrated Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-58 Chapter 5—Processor Design—Advanced Topics Fig 5.20 Completely Horizontal and Vertical Microcoding µPC Vertical control Horizontal store µPC control store PC C Inc4 MA Data in out n to 2n decoder path in PCout MAin Inc4 Cin Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-59 Chapter 5—Processor Design—Advanced Topics Saving Control Store Bits with Horizontal Microcode • Some control signals cannot possibly be true at the same time • One and only one ALU function can be selected • Only one register out gate can be true with a single bus • Memory read and write cannot be true at the same step • A set of m such signals can be encoded using log2m bits (log2(m + 1) to allow for no signal true) • The raw control signals can then be generated by a k to 2k decoder, where 2k ≥ m (or 2k ≥ m + 1) • This is a compromise between horizontal and vertical encoding Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-60 Chapter 5—Processor Design—Advanced Topics A Microprogrammed Control Unit for the 1-Bus SRC • Using the 1-bus SRC data path design gives a specific set of control signals • There are no condition codes, but data path signals CON and n = 0 will need to be tested • We will use µbranches BrCON, Brn = 0, and Brn ≠ 0 • We adopt the clocking logic of Fig. 4.14 • Logic for exception and reset signals is added to the microcode sequencer logic • Exception and reset are assumed to have been synchronized to the clock Computer Systems Design and Architecture by V. Heuring and H. Jordan © 1997 V. Heuring and H. Jordan 5-61 Chapter 5—Processor Design—Advanced Topics Tbl 5.4 The add Instruction .. Ot her Br Addr. Cont ro l Actions Addr. Signals 100 000000011 • • • XXX MA ← PC: C ← PC+4 ; 101 000000000 • • • XXX MD ← M[ MA] : PC ← C; • • • 102 011000000 XXX I R ← MD; µPC ← PLA ; • • • 200 00 0000000 XXX A ← R [rb ]; 201 00 0000000 • • • XXX C ← A + R[rc]; • • • 202 11 110000 0 100 R [ra] ← C: µPC ← 100; • Microbranching to the output of the PLA is shown at 102 • Microbranch to 100 at 202 starts next fetch Computer Systems Design and Architecture by V.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    22 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us