6Control Signal Sources ClockOne micro-instruction (or set of parallel micro-instructions) per clock cycleInstruction RegisterOp-code for current instructionDetermines which micro-instructions are performedFlagsState of CPUResults of previous operationsFrom Control BusInterrupts / Bus RequestsAcknowledgements
7Control Signals Outputs Within CPUCause data movementActivate specific functionsVia Main BusTo memoryTo I/O modules
15MIPS Data Paths with Generation of Control Signals Note: This figure does not show J (jump) type instruction Data Paths
16MIPs Pipelined Machine with Controls IF | ID | EX | MEM | WB(142 bits)(107 bits)(71 bits)(64 bits)
17Problems With Hard Wired Designs Sequencing & micro-operation logic gets complexDifficult to design, prototype, and testResultant design is inflexible, and difficult to build upon(Pipeline, multiple computation units, etc.)Adding new instructions requires major design and adds complexity quickly
18Micro-Programmed Control Chapter 17Micro-Programmed Control
19Example Simple Processor Micro-Programed Control
20Control Unit Organization The Control Memory contains sequences of microinstructions that provide the control signals to execute instruction cycles, e.g. Fetch, Indirect, Execute, and Interrupt.Tasks of Control Unit:Microinstruction sequencingMicroinstruction executionMay be expected to complete instruction execution in “1” clock cycle. How is this possible?
26Horizontal Micro-programming Wide control memory wordHigh degree of parallel operations possibleLittle encoding of control informationFaster
27Vertical Micro-programming Width can be much narrowerControl signals encoded into function codes – need to be decodedMore complex, more complicated to program, less flexibilityMore difficult to modifySlower
30Next Address DecisionDepending on ALU flags and control buffer register:Get next instructionAdd 1 to control address registerJump to new routine based on jump microinstructionLoad address field of control buffer register into control address registerJump to machine instruction routineLoad control address register based on opcode in IR
32Design Considerations Necessity of speedSize of MicroinstructionsAddress generationBranchesBoth conditional and unconditionalBased on current microinstruction, condition flags, contents of IRBased on format of address informationTwo address fieldsSingle address fieldVariable format
33Branch Control: Two Address Fields Branch based upon:Instruction OpcodeAddress 1Address 2Does require a wide microinstruction, but no address calculation is needed
34Branch Control: Single Address Field Branch based upon:Next instructionAddressOpcodeDoes require morecircuitry, e.g. adder
35Branch Control: Variable Format One bit determines microinstruction format:Control signal formatBranch formatDoes require even more circuitry, and is slowest.
36Advantages and Disadvantages of Microprogramming Simplifies design of control unitCheaper to designLess error-proneMuch easier to modifySupports having multiple versions / modelsDisadvantage:SlowerMore expensive to produce in quantities