ee321 chap04 control unit -...

49
EE321 Computer Architecture Chap 04: Control Unit Chap. 04: Control Unit Dr. Abdelhakim Khouas Email : akhouas@hotmail.com ab khouas@univ boumerdes dz ab.khouas@univ-boumerdes.dz IGEE (ex. INELEC) University M’hamed Bougara of Boumerdes

Upload: others

Post on 13-Aug-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

EE321Computer ArchitectureChap 04: Control UnitChap. 04: Control Unit

Dr. Abdelhakim KhouasEmail : [email protected]

ab khouas@univ boumerdes [email protected] (ex. INELEC)

University M’hamed Bougara of Boumerdes

Page 2: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

Course chapters

1. Review of Digital Design1. Review of Digital Design2. Top Level of Computer3 Central Processing Unit (CPU)3. Central Processing Unit (CPU)4. Control Unit5 M5. Memory6. Instruction Set and Addressing Modes

EE321 - Chap. 04 – Control Unit © A. Khouas1

Page 3: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

Lecture Objectives

Understand function and design of the control unit

Micro-operationsMicro-operationsControl unit functionControl unit implementations

Hardwired implementationMicroprogrammed implementation

EE321 - Chap. 04 – Control Unit © A. Khouas2

Page 4: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

Lecture Outline

1. CPU Function Review 2 Micro-operations2. Micro-operations3. Control Unit4 H d i d I l t ti4. Hardwired Implementation5. Microprogrammed Control

1. Basic Concepts2. Implementation3. Microinstructions

EE321 - Chap. 04 – Control Unit © A. Khouas3

Page 5: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

Readings

TextbookComputer Organization and Structure,

Designing for Performance, By William Stallings, 8th edition

SectionsSectionsChapter 15, sections: 3.1 to 3.3Chapter 16, sections: 16.1

EE321 - Chap. 04 – Control Unit © A. Khouas4

Page 6: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

1. CPU Function Review

CPU internalCPU internal structure

EE321 - Chap. 04 – Control Unit © A. Khouas5

Page 7: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

1. CPU Function Review

CPU FunctionCPU FunctionWe have already seen that:

The execution of a program consists of the sequential execution of instructionsThe execution of an instruction involves the execution of a sequence of cycles: fetch, decode, q y , ,and executeEach cycle contains many smaller cycles (states)Each cycle contains many smaller cycles (states) such as: read instruction, data operation, operand save, … etc.

EE321 - Chap. 04 – Control Unit © A. Khouas

save, … etc.

6

Page 8: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

DefinitionDefinitionMicro-operations (MO) are the atomic operations

(smaller steps) of a processor that are executed in(smaller steps) of a processor that are executed in one clock cycle

Each instruction cycle (fetch, decode, execute, y ( , , ,interrupt) is composed of a set of micro-

ti th t f d i ioperations that are performed in a precise time sequence

EE321 - Chap. 04 – Control Unit © A. Khouas

q

7

Page 9: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

EE321 - Chap. 04 – Control Unit © A. Khouas8

Constituent Elements of a Program Execution

Page 10: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

Examples:Examples: For all instructions

Fetch Cycle: 3 steps and 4 micro-operationst1: MAR <-- PCt2: MBR <-- memory

PC <-- PC+I (I is the instruction length)t3: IR <-- MBR

t1, t2, and t3 are time unit (i.e. one or more clock cycles)

EE321 - Chap. 04 – Control Unit © A. Khouas9

Page 11: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

Micro-operations groupingMicro operations groupingTo save time, some micro-operations that do not

interfere can be executed during same time unitinterfere can be executed during same time unit, following two simple rules:The proper sequence of events must be followedThe proper sequence of events must be followed (e.g. set MAR register before writing or reading MBR)MBR)Conflicts must be avoided

should not attempt to read to and write from the sameshould not attempt to read to and write from the same register in one time unitIf internal data bus, should not use the same data bus

EE321 - Chap. 04 – Control Unit © A. Khouas

,

10

Page 12: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

Micro-operations groupingp g p gFor fetch cycle, the 3rd micro-operation could have been grouped with the 4th micro-operationbeen grouped with the 4 micro operation

t1: MAR <-- PCt2: MBR < memoryt2: MBR <-- memoryt3: IR <-- MBR

PC < PC+I (I is the instruction length)PC <-- PC+I (I is the instruction length)

EE321 - Chap. 04 – Control Unit © A. Khouas11

Page 13: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

Examples: Direct add operationExamples: Direct add operationADD R1, (X) ; R1 <= R1 + [X]

R1 : General purpose register used as accumulatorX : Second operand (address)[X]: content of memory location XMBR is connected to ALU

Execution Cycle:t1: MAR <-- IR (X) ( )t2: MBR <-- memoryt3: R1 <-- R1 + MBR

EE321 - Chap. 04 – Control Unit © A. Khouas12

Page 14: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

Examples: Immediate operationADI R1, X ; R1 <= R1 + X

R1 : General purpose register used as accumulatorR1 : General purpose register used as accumulatorX : Second operand (immediate value)MBR is connected to ALUMBR is connected to ALU

Execution Cycle:T1 R1 R1 MBR(X)T1: R1 <-- R1 + MBR(X)

EE321 - Chap. 04 – Control Unit © A. Khouas13

Page 15: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

Examples:Examples: ISZ (X) ; Increment [X] and skip the next

f [ ] h dd f hinstruction if [X]=zero, X is the address of the operand Execution Cycle:

t11: MAR ← IR(X)t2t: MBR ← Memory t33: MBR ← MBR + 1 t4: Memory ← MBR

If (MBR = 0) then (PC ← PC + 1)

EE321 - Chap. 04 – Control Unit © A. Khouas

( ) ( )

14

Page 16: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

Examples:Examples: Interrupt Cycle:

t11: MBR ← PC t22: MAR ← Save_Address

PC ← Routine_Addresst33: Memory ← MBR

EE321 - Chap. 04 – Control Unit © A. Khouas15

Page 17: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

Examples:Examples: Indirect Operation: ADIN A, ((X)) ; A = A + [[X]]

Indirect Cyclet11: MAR ← IR(X)t22: MBR ← memory ([X]) T3: IR(Address) ← MBR

Execute Cyclet33: MAR ← IR(X)t33: MAR IR(X)t4: MBR <-- memory ([[X]])t5: A <-- A + MBR

EE321 - Chap. 04 – Control Unit © A. Khouas

t5: A < A + MBR

16

Page 18: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

START

YFetchCycle

IndirectCycleIndirect?

Yes

NNo

Execute Cycle

InterruptCycleInterrupt?

Yes

Fl h f i i l

No

EE321 - Chap. 04 – Control Unit © A. Khouas17

Flowchart for instruction cycle

Page 19: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

Instruction cycle codeInstruction cycle codeWe have four cycles: fetch, indirect, execute, and i t tinterruptWe can use 2-bit register ICC (Instruction Cycle Code) to code the cycles

ICC = 00: FetchICC = 01: Indirect ICC = 10: ExecuteICC = 11: Interrupt

At he end of each cycle, ICC is set appropriately

EE321 - Chap. 04 – Control Unit © A. Khouas

At he end of each cycle, ICC is set appropriately

18

Page 20: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

2. Micro-operation

Fl h f i i l i ICC

EE321 - Chap. 04 – Control Unit © A. Khouas19

Flowchart for instruction cycle using ICC

Page 21: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

3. Control Unit

The control unit controls the execution of each f h i i lstep of the instruction cycle

The control unit of a CPU performs two tasks:The control unit of a CPU performs two tasks: 1. It causes the processor to step through a series

of MO in the proper sequence2. It generates the control signals that cause the g g

execution of each MO

EE321 - Chap. 04 – Control Unit © A. Khouas20

Page 22: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

3. Control Unit

EE321 - Chap. 04 – Control Unit © A. Khouas21

Control Unit Model

Page 23: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

3. Control Unit

Inputs:Inputs:Clock: The control unit causes one micro-operation (or a set of simultaneous micro operations) to bea set of simultaneous micro-operations) to be performed for each clock pulse. Also known as the processor cycle time, or the clock cycle timeprocessor cycle time, or the clock cycle timeIR: The code of the inst. is used to determine which micro-operations to perform during the execute cyclep p g yFlags: These are needed by the control unit to determine the status of the processor and the outcome of previous ALU operationsControl signals from control bus

EE321 - Chap. 04 – Control Unit © A. Khouas22

Page 24: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

3. Control Unit

Outputs:Control signals within the processor: These are twoControl signals within the processor: These are two types:

Signals that cause data movement (register to another)Signals that cause data movement (register to another)Signals that activate specific ALU functions

Control signals to control bus: These are also ofControl signals to control bus: These are also of two types:

t l i l t ( d)control signals to memory (e.g. memory read)control signals to the I/O modules

EE321 - Chap. 04 – Control Unit © A. Khouas23

Page 25: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

3. Control Unit

Example Control Signal Sequence: MAR <- (PC)

Control unit activates signal to open gates between PC and MAR

MBR <- (memory)Open gates between MAR and address busMemory read control signalOpen gates between data bus and MBR

EE321 - Chap. 04 – Control Unit © A. Khouas

Page 26: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

3. Control Unit

Data Paths and Control signals: CPU with single accumulator

EE321 - Chap. 04 – Control Unit © A. Khouas25

Data Paths and Control signals: CPU with single accumulatorSource: Computer Organization and Architecture, by W. Stallings

Page 27: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

3. Control Unit

l lControl SignalsThe terminations of the control signals are labeledThe terminations of the control signals are labeled Ci and indicated by a circleThe control unit receives inputs from the clock IRThe control unit receives inputs from the clock, IR, and flagsWith h l k l th t l it d ll fWith each clock cycle, the control unit reads all of its inputs and emits a set of control signals Ci to open/close the gates bet een the diffe ent pa tsopen/close the gates between the different parts of the processor to control data transfer

EE321 - Chap. 04 – Control Unit © A. Khouas26

Page 28: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

3. Control Unit

Control Signals: examplesControl Signals: examplesFetch Cycle:

Micro-operation Active signals Micro-inst.t1: MAR <-- PC C3 00...00100t2: MBR <-- memory C5, RD

10...10000PC <-- PC+1

t3: IR <-- MBR C4 00...01000

RD: Read control signal to bus

EE321 - Chap. 04 – Control Unit © A. Khouas27

g

Page 29: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

3. Control Unit

Control Signals: examplesControl Signals: examplesInterrupt Cycle:

Micro-operation Active signals Micro-inst.t11: MBR ← PC C1 00...00001t22: MAR ← Save_Address

PC ← Routine_Addresst33: Memory ← MBR C12, WR

101...0000

WR: Write control signal to bus

EE321 - Chap. 04 – Control Unit © A. Khouas28

g

Page 30: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

3. Control Unit

Micro-operations for ADD AC,X instruction: 5 clock cycles.

Control signals: AC: AccumulatorX : Address

Control signals: CPU with internal data bus

EE321 - Chap. 04 – Control Unit © A. Khouas29

Source: Computer Organization and Architecture, by W. Stallings

Page 31: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

3. Control Unit

We have discussed the control unit in terms of its inputs output and functions For theits inputs, output, and functions. For the implementation, a wide variety of techniques have been used. Most of these fall into one of t t itwo categories:

Hardwired implementationHardwired implementationMicroprogrammed implementation

EE321 - Chap. 04 – Control Unit © A. Khouas30

Page 32: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

4. Hardwired Implementation

EE321 - Chap. 04 – Control Unit © A. Khouas31

Control Unit with Decoded inputs

Page 33: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

4. Hardwired Implementation

Control unit is viewed as a state machine circuit, and can be implemented using standard digitaland can be implemented using standard digital logic techniques

For each control signal, we derive a Boolean expression as a function of the inputs and theexpression as a function of the inputs and the current stateDecoder is used to generate unique logic signal forDecoder is used to generate unique logic signal for each opcode

EE321 - Chap. 04 – Control Unit © A. Khouas32

Page 34: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

4. Hardwired Implementation

Example: Let us consider a control signal C5 thatExample: Let us consider a control signal C5 that causes data to be read from the external data bus into the MBR (MBR<-- Memory)

We assume two new control signal P and Q that have the following interpretation:

PQ = 00 Fetch CyclePQ = 01 Indirect CyclePQ = 10 Execute CyclePQ = 11 Interrupt Cycle

EE321 - Chap. 04 – Control Unit © A. Khouas33

Page 35: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

4. Hardwired Implementation

EE321 - Chap. 04 – Control Unit © A. Khouas34

Micro-operations and control signals

Page 36: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

4. Hardwired Implementation

Example: The control signal C5 will be asserted during the second time unit of the fetch and interrupt cycles, p y ,so the Boolean expression of control signal C5 is:

5C PQT PQT+

If we assume C5 is also needed during the execute 2 25C PQT PQT= +

cycle of three instructions that read from memory: LDA, ADD, and AND, then C5 is given by:

2 2 25 ( )C PQT PQT PQT LDD ADD AND= + + + +

EE321 - Chap. 04 – Control Unit © A. Khouas35

Page 37: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

4. Hardwired Implementation

Example: Signal C4 (IR <-- MBR)Th t l i l C4 ill b t d d i thThe control signal C4 will be asserted during the third time unit of the fetch and indirect cycles, so th B l i f t l i l C4 ithe Boolean expression of control signal C4 is:

4C PQT PQT3 34C PQT PQT= +

EE321 - Chap. 04 – Control Unit © A. Khouas36

Page 38: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

4. Hardwired Implementation

Main advantagesMain advantagesHigh(er) speed operationSmaller implementations (component counts)

Main disadvantagesMain disadvantagesInflexible design

d f h d b h d dModifications to the design can be hard to do

Difficult to add new instructionsComplex sequencing & micro-operation logicDifficult to design and test

EE321 - Chap. 04 – Control Unit © A. Khouas

Difficult to design and test

37

Page 39: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

5. Microprogrammed Control

An alternative to a hardwired control unit is a microprogrammed control unit

Control unit is specified by a microprogramControl unit is specified by a microprogramMicroprogram (firmware) consists of a sequence of

i i t ti (MI)microinstructions (MI)Each MI specify a micro-operation and is very simple

EE321 - Chap. 04 – Control Unit © A. Khouas38

Page 40: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

5. Microprogrammed Control

ImplementationTh t l it l t t f t lThe control unit only generate a set of control

signals, each control signal is on or offIn horizontal MI, each bit represents one control signalWe put each MI in a memory with unique addressAdd to the MI an address to specify the nextAdd to the MI an address to specify the next micro-instruction, depending on conditions

EE321 - Chap. 04 – Control Unit © A. Khouas39

Page 41: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

5. Microprogrammed Control

Horizontal MI format

EE321 - Chap. 04 – Control Unit © A. Khouas40

Source: Computer Organization and Architecture, by W. Stallings

Page 42: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

5. Microprogrammed Control

Horizontal MI formatA code is used for each action to be performedCondition branch fieldCondition branch fieldAddress of the next MI if branchN d f i i t ti d dNo need for microinstruction decoderBigger (more bits) microinstruction and control memory

EE321 - Chap. 04 – Control Unit © A. Khouas41

Source: Computer Organization and Architecture, by W. Stallings

Page 43: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

5. Microprogrammed Control

Vertical MI format C diti b h fi ldCondition branch fieldAddress of the next MI if branchNeed for microinstruction decoder to generate control signals Vertical gSmaller control memory microinstruction

format

EE321 - Chap. 04 – Control Unit © A. Khouas42

Source: Computer Organization and Architecture, by W. Stallings

Page 44: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

5. Microprogrammed Control

EE321 - Chap. 04 – Control Unit © A. Khouas43

Organization of Control Memory

Page 45: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

5. Microprogrammed Control

d f llMI is interpreted as follows:i. To execute this MI, turn on/off all the controli. To execute this MI, turn on/off all the control

signals, the resulting control signals will cause one or more micro-operations to be performedone or more micro operations to be performed

ii. If the condition indicated by the condition bits is: false execute the next microinstruction infalse, execute the next microinstruction in sequence

iii If it is t e the ne t mic oinst ction to beiii. If it is true, the next microinstruction to be executed is indicated in the address field

EE321 - Chap. 04 – Control Unit © A. Khouas44

Page 46: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

5. Microprogrammed Control

This decoder is only This decoder is only used for vertical microinstruction

Functioning of Microprogrammed Control Unit

EE321 - Chap. 04 – Control Unit © A. Khouas45

Page 47: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

5. Microprogrammed Control

The control unit functions as follow:The control unit functions as follow:To execute an instruction, the sequencing logic unit issues a READ command to the control memoryThe control word is read into the control buffer registerThe content of the control buffer register generates control signals and next address information for the sequencing logic unitThe sequencing logic unit loads a new address into the control address register based on the next-address information and the ALU flags

EE321 - Chap. 04 – Control Unit © A. Khouas46

Page 48: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

5. Microprogrammed Control

Next address decisionNext address decisionDepending on ALU flags and control buffer register,

one of the three following decision is made:one of the three following decision is made:1. Add 1 to control address register

Add 1 to control address registerAdd 1 to control address register2. Jump to new routine based on jump

microinstructionmicroinstructionLoad control address register with address field of control buffer registerg

3. Jump to machine instruction routineLoad control address register based on opcode in IR

EE321 - Chap. 04 – Control Unit © A. Khouas

Load control address register based on opcode in IR

47

Page 49: ee321 chap04 Control Unit - akhouas.univ-boumerdes.dzakhouas.univ-boumerdes.dz/ee321/ee321_chap04_Control_Unit.pdf · EE321 Computer Architecture Chap. 04: Control UnitControl Unit

Summary

Micro operationMicro-operation

Control Unit FunctionControl Unit FunctionInputsO t tOutputsControl signals

Control Unit Implementationd d lHardwired implementation

Microprogrammed Control

EE321 - Chap. 04 – Control Unit © A. Khouas48