Microoperations

  • A computer executes a program consisting Each instruction is made up of shorter sub-cycles as fetch, indirect, execute cycle, interrupt.
  • Performance of each cycle has a number of shorter operations called micro-operations.
  • Called so because each step is very simple and does very little.
  • Thus micro-operations are functional atomic operation of CPU.
  • Hence events of any instruction cycle can be described as a sequence of micro-operations

            Fig 3-7: Constituent Elements of Program Execution

Steps leading to characterization of CU

  • Define basic elements of processor
  • Describe micro-operations processor performs
  • Determine functions control unit must perform

Types of Micro-operation

  • Transfer data between registers
  • Transfer data from register to external interface
  • Transfer data from external interface to register
  • Perform arithmetic/logical ops with register for i/p, o/p

Functions of Control Unit


  • Sequencing
  • Causing the CPU to step through a series of micro-operations
  • Execution
  • Causing the performance of each micro-op

These are done using Control Signals

               

                                                      Fig 3-8: Control Unit Layout

Inputs to Control Unit

  • Clock
    • CU causes one micro-instruction (or set of parallel micro-instructions) per clock cycle
  • Instruction register
    • Op-code for current instruction determines which micro-instructions are performed
  • Flags
    • State of CPU
    • Results of previous operations
  • From control bus
    • Interrupts
    • Acknowledgements

CU Outputs (Control Signals)

  • Within CPU(two types)
    • Cause data movement
    • Activate specific ALU functions
  • Via control bus(two types)
    • To memory
    • To I/O modules
  • Types of Control Signals
    • Those that activate an ALU
    • Those that activate a data path
    • Those that are signal on external system bus or other external interface.
  • All these are applied as binary i/p to individual logic gates

Hardwired Implementation

  • In this implementation, CU is essentially a combinational Its i/p signals are transformed into set of o/p logic signal which are control signals.
  • Control unit inputs
  • Flags and control bus
    • Each bit means something
  • Instruction register
    • Op-code causes different control signals for each different instruction
    • Unique logic for each op-code
    • Decoder takes encoded input and produces single output
    • Each decoder i/p will activate a single unique o/p
  • Clock
    • Repetitive sequence of pulses
    • Useful for measuring duration of micro-ops
    • Must be long enough to allow signal propagation along data paths and through processor circuitry
    • Different control signals at different times within instruction cycle
    • Need a counter as i/p to control unit with different control signals being used for t1, t2 etc.
    • At end of instruction cycle, counter is re-initialised

             

                                               Fig 3-9: Control Unit With Decoded Input

Implementation

  • For each control signal, a Boolean expression of that signal as a function of the inputs is derived
  • With that the combinatorial circuit is realized as control unit.

Problems With Hard Wired Designs

  • Complex sequencing & micro-operation logic
  • Difficult to design and test
  • Inflexible design
  • Difficult to add new instructions

Micro-programmed Implementation

  • An alternative to hardwired CU
  • Common in contemporary CISC processors
  • Use sequences of instructions to perform control operations performed by micro operations called micro-programming or firmware

                  Fig 3-10: Microprogrammed Control Unit

  • Set of microinsrurctions are stored in control memory
  • Control address register contains the address of the next microinstruction to be read
  • As it is read, it is transferred to control buffer register.
  • For horizontal micro instructions, reading a microinstruction is same as executing it.
  • Sequencing unit loads the control address register and issues a read command

CU functions as follows to execute an instruction:

  • Sequencing logic issues read command to control memory
  • Word whose address is in control address register is read into control buffer register.
  • Content of control buffer register generates control signals and next address instruction for the sequencing logic unit.
  • Sequencing logic unit loads new address into control address register depending upon the value of ALU flags, control buffer register.
  • One of following decision is made:
    • add 1 to control address register
    • load address from address field of control buffer register
    • load the control address register based on opcode in IR
  • Upper decoder translates the opcode of IR into control memory address
  • Lower decoder used for veritcal micro instructions.

Micro-instruction Types

  • Each micro-instruction specifies single or few micro-operations to be performed - vertical micro-programming.
  • Each micro-instruction specifies many different micro-operations to be performed in parallel - horizontal micro-programming

Horizontal Micro-programming

  • Wide memory word
  • High degree of parallel operations possible
  • Little encoding of control information

Vertical Micro-programming

  • Width is narrow
  • n control signals encoded into log2 n bits
  • Limited ability to express parallelism
  • Considerable encoding of control information requires external memory word decoder to identify the exact control line being manipulated