0% found this document useful (0 votes)
59 views36 pages

Control Unit Implemntation

The document discusses microprogrammed control unit implementation in a computer. It describes how a control unit can be implemented using a control memory containing microinstructions that generate control signals. It compares horizontal and vertical microprogramming approaches. Horizontal uses wide microinstructions for parallel operations while vertical uses encoded and narrower microinstructions. Design considerations include speed, microinstruction size, and address generation techniques like using one or two address fields or a variable format. Microprogramming simplifies control unit design but is slower and more expensive than hardwired approaches.

Uploaded by

baldevram.214
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views36 pages

Control Unit Implemntation

The document discusses microprogrammed control unit implementation in a computer. It describes how a control unit can be implemented using a control memory containing microinstructions that generate control signals. It compares horizontal and vertical microprogramming approaches. Horizontal uses wide microinstructions for parallel operations while vertical uses encoded and narrower microinstructions. Design considerations include speed, microinstruction size, and address generation techniques like using one or two address fields or a variable format. Microprogramming simplifies control unit design but is slower and more expensive than hardwired approaches.

Uploaded by

baldevram.214
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 36

Chapter 16

Control Unit Implemntation


A Basic Computer Model
Example Simple Processor & Data Paths
MIPS Data Paths with
Generation of Control Signals

Note:ThisfiguredoesnotshowJ(jump)type
instructionDataPaths
A Simple Computer & its Control Unit
Control Signal Sources

Clock
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 / Bus Requests
Acknowledgements
Control Signals Outputs

Within CPU
Cause data movement
Activate specific functions

Via Main Bus


To memory
To I/O modules
Control Signals
The Internal Bus ?
Example Simple Processor & Data Paths
Example Simple Processor & Data Paths
State Machine for Example Simple Processor

http://highered.mcgraw-hill.com/sites/dl/premium/0072467509/instructor/104653/figurec9.xls
Control Unit with Decoded Inputs
MIPS Instruction Formats
MIPS Data Paths with
Generation of Control Signals

Note:ThisfiguredoesnotshowJ(jump)type
instructionDataPaths
MIPs Pipelined Machine with Controls
IF | ID | EX | MEM | WB

(142bits)

(107bits)

(71bits)

(64bits)
Problems With Hard Wired Designs

Sequencing & micro-operation logic gets complex

Difficult to design, prototype, and test

Resultant design is inflexible, and difficult to build upon


(Pipeline, multiple computation units, etc.)

Adding new instructions requires major design and adds


complexity quickly
Chapter 17

Micro-Programmed Control
Example Simple Processor Micro-Programed Control
Control 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 sequencing
Microinstruction execution

May be expected to complete


instruction execution in 1 clock
cycle. How is this possible?
Recall: Micro-sequencing
Example of Control Memory Organization

Microinstructions:
Generate Control Signals
Provide Branching
Horizontal vs Vertical Microprogramming

Horizontal Microprogrammed or
Unpacked
Hard
Direct

Vertical Microprogrammed or
Packed
Soft
Indirect
Microinstruction Encoding - Direct Encoding
Microinstruction Encoding - Indirect Encoding
Horizontal Micro-programming

Wide control memory word

High degree of parallel operations possible

Little encoding of control information

Faster
Vertical Micro-programming

Width can be much narrower

Control signals encoded into function codes


need to be decoded

More complex, more complicated to program,


less flexibility

More difficult to modify

Slower
Typical Microinstruction Formats
Example Microprogramming Formats

MicroProgram Counter
Subroutines
Stack
Control Register (MicroProgram Format)
Next Address Decision

Depending on ALU flags and control buffer register:

Get next instruction


Add 1 to control address register

Jump to new routine based on jump microinstruction


Load address field of control buffer register into control address
register

Jump to machine instruction routine


Load control address register based on opcode in IR
Microprogrammed Control Unit
Design Considerations

Necessity of speed

Size of Microinstructions

Address generation
Branches
Both conditional and unconditional

Based on current microinstruction, condition flags,


contents of IR

Based on format of address information


+ Two address fields
+ Single address field
+ Variable format
Branch Control: Two Address Fields

Branch based upon:


Instruction Opcode
Address 1
Address 2

Does require a wide


microinstruction, but no
address calculation is needed
Branch Control: Single Address Field

Branch based upon:


Next instruction
Address
Opcode

Does require more


circuitry, e.g. adder
Branch Control: Variable Format

One bit determines


microinstruction
format:
Control signal format
Branch format

Does require even


more circuitry, and is
slowest.
Advantages and Disadvantages of
Microprogramming

Advantage:
Simplifies design of control unit
Cheaper to design
Less error-prone
Much easier to modify
Supports having multiple versions / models

Disadvantage:
Slower
More expensive to produce in quantities

You might also like