Microprogrammed Control Group II Presentation Presented by: Baksh, Zerar Brunings, Alberto Fortin, Jose Enrique Rodriguez, Yosvany Li, Jiewen Sanchez, Michel July 01, 2010 Introduction • The control unit can be implemented by hardware or software • M.V. Wilkes proposed to program the control unit with software rather than hardware Control Unit Design Must include logic: • For sequencing through micro operations • For executing micro operations • For interpreting opcodes • For making decisions based on ALU flags Control Unit Design Control Unit Organization Microinstruction Formats Wilkes Control • Wilkes first proposed the use of micro programmed control unit in 1951 • Matrix partially filled with diodes • During cycle, one row activated ▫ Generates signals where diode present ▫ First part of row generates control ▫ Second generates address for next cycle Wilkes's Microprogrammed Control Unit The processor of the hypothetical machine includes • A)Multiplicand • B)Accumulator(least significant half) • C)Accumulator(most significant half) • D)Shift Register In addition, there are thee registers and two 1-bit flags accessible only to the control unit, they are: • E)Serves as both MAR and temporary storage • F)Program Counter • G)Another temporary register, used for counting. Advantages and Disadvantages of Microprogramming • Simplifies design of control unit ▫ Cheaper ▫ Less error-prone • Slower than a hardwired unit of comparable technology Microinstruction Sequencing • The two basic tasks performed by a microprogrammed control unit are: ▫ Microinstruction sequencing ▫ Microinstruction execution • The microinstruction sequencing gets the next microinstruction from the control memory and the microinstruction execution generates the control signal needed to execute the microinstruction. Design Considerations • Both previous mentioned tasks have to be considered in designing a control unit. Concerns such as minimizing the size of the control memory and fast executions of microinstructions have to be taken in consideration as well. Design Considerations • In executing a microprogram the address of the next microinstruction to be executed is in one of these categories: ▫ Determined by instruction register ▫ Next sequential address( most common in most designs) ▫ Branch Sequencing Techniques • Based on the current microinstruction, condition flags, and the contents of the IR, a control memory address must be generated for the next microinstruction which can be accomplished by using different techniques such as: ▫ Two address field ▫ Single address field ▫ Variable format Fig 2. Single Address Field Fig 3. Variable Field. Sequencing Techniques • The simplest approach is the two-address approach although it requires more bits in the microinstruction. Address Generation • There are other ways in which the next address can be derived or computed. The following are different address generation techniques. They’re divided into different techniques in which the address can be available in the microinstruction. • Explicit ▫ Two Field ▫ Unconditional branch ▫ Conditional branch • Implicit ▫ Mapping ▫ Addition ▫ Residual control Address Generation • Using either a single address field or a variable format, different branch instructions can be implemented. For example, a conditional branch depends on ▫ ALU flags ▫ Parts of a selected register such as the sign bit ▫ Status bits inside the control unit LSI-11 Microinstruction Sequencing • The LSI-11 is a microcomputer version of a PDP11, with its main components of the system all on the same board. Its implemented using a microprogrammed control unit known as the SEBE76, and takes use of a 22-bit microinstruction and control memory of 2K 22-bit words. LSI-11 Microinstruction Sequencing • The LSI-11 is determined in 5 Ways ▫ ▫ ▫ ▫ ▫ Next sequential address Opcode Mapping Subroutine facility Interrupt testing Branch Microinstruction Execution • The cycle is the basic event on a microprogrammed processor • Each cycle made up of two parts: ▫ Fetch Determined by the generation of a microinstruction address ▫ Execute Execution • Effect is to generate control signals • Some signals control points internal to processor • Rest go to external control bus or other external interface • The address of the next microinstruction is determined as an incidental function Control Unit Organization A Taxonomy of Microinstructions • Vertical / Horizontal ▫ Vertical: range of 16 to 40 bits ▫ Horizontal: range of 40 to 100 bits • Packed / unpacked ▫ Relates to the degree of identification between a given control task and specific microinstruction bits • Hard / soft microprogramming • Direct / indirect encoding Improvements Over Wilkes • Each bit directly produced a control signal or directly produced one bit of the next addressing • Possible using fewer microinstruction bits for more complex sequencing schemes • The schemes require a more complex sequencing logic module • Control word bits can be saved by encoding control information and subsequently decoding it to produce control signals How to Encode • K different internal and external control signals • Wilkes’s: ▫ K bits dedicated ▫ 2K control signals during any instruction cycle • Not all used ▫ ▫ ▫ ▫ Two sources cannot be gated to same destination Register cannot be source and destination Only one pattern presented to ALU at a time Only one pattern presented to external control bus at a time • Require Q < 2K which can be encoded with log2Q < K bits • Not done ▫ As difficult to program as pure decoded (Wilkes) scheme ▫ Requires complex slow control logic module • Compromises ▫ More bits than necessary used ▫ Some combinations that are physically allowable are not possible to encode Specific Encoding Techniques • • • • Microinstruction organized as set of fields Each field contains code Activates one or more control signals Organize format into independent fields ▫ Field depicts set of actions (pattern of control signals) ▫ Actions from different fields can occur simultaneously • Alternative actions that can be specified by a field are mutually exclusive ▫ Only one action specified for field could occur at a time Microinstruction Encoding Direct Encoding Microinstruction Encoding Indirect Encoding Questions • In what the two formats can a microinstruction be implemented? • What are the two ways to implement the control unit? • What are the basic two tasks performed by the microprogrammed control unit? • What are some of the sequencing techniques? • What are two of the main address generation techniques? • Each cycle is made up with which two parts? • Encoding techniques?