14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture...

35
Rev. (2008-09) by Luciano Gu alà 1 14 - William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    213
  • download

    0

Transcript of 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture...

Page 1: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 114 -

William Stallings Computer Organization and Architecture

Chapter 16Control Unit Operations

Page 2: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 214 -

Execution of the Instruction Cycle

• It has many elementary phases, each executed in a single clock cycle

• In each phase only very simple operations (called micro-operations) are executed: Move contents between registers (internals, interface

with ALU, interface with memory) Activate devices (ALU, memory)

• Micro-operations are the CPU atomic operations, hence define its low-level behaviour

• A micro-operation is the set of actions (data flows and controls) that can be completed in a single clock cycle

Page 3: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 314 -

Constituent Elements of Program Execution

Page 4: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 414 -

Sequence of micro-operations for instruction fetch

• t1: MAR <- (PC) <DF1 >• t2: MBR <- (memory) <DF2 DF3 DF4 DF5 >

PC <- (PC) +1 <DF7 > • t3: IR <- (MBR) <DF6 >

(each ti is a clock cycle, i.e. an atomic time unit)

An alternative organization• t1: MAR <- (PC)• t2: MBR <- (memory)• t3: PC <- (PC) +1

IR <- (MBR)

IR MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program Counter

PC2

3

3

4

4

5

1

6

7

IR MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program Counter

PC2

3

3

4

4

5

1

6

7

Page 5: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 514 -

Rules for micro-operation sequencing

• Proper precedence must be observed MAR <- (PC) must precede MBR <- (memory)

• Conflicts must be avoided Must not read & write same register at same time MBR <- (memory) & IR <- (MBR) must not be in

same cycle

• Also: PC <- (PC) +1 involves addition Depending on the kind of ALU may need

additional micro-operations, hence it may be better to have it in t2

Page 6: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 614 -

Sequence of micro-operations for direct addressing

• t1: MAR <- (IRaddress) <DF1 >

• t2: MBR <- (memory) <DF2 DF3 DF4 DF5

>

IR MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program Counter

2

3

3

4

4

5

1

IR MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program Counter

2

3

3

4

4

5

1

Page 7: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 714 -

Sequence of micro-operations for register indirect addressing

• t1: MAR <- ((IRregister-address)) <DF1 DF2 >

• t2: MBR <- (memory) <DF3 DF4 DF5 DF6 >

IR MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program Counter

Registers

3

4

4

5

5

6

1

1

2

IR MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program Counter

Registers

3

4

4

5

5

6

1

1

2

Page 8: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 814 -

Sequence of micro-operations for indirect addressing

• t1: MAR <- (IRaddress) <DF1 >• t2: MBR <- (memory) <DF2 DF3 DF4 DF5 >• t3: MAR <- (MBR) <DF6 >• t4: MBR <- (memory) <DF7 DF8 DF9 DF10 >

MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program Counter

2 - 7

3 - 8

3 - 8

4 - 9

4 - 9

5 - 10

1

IR

6

MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program Counter

2 - 7

3 - 8

3 - 8

4 - 9

4 - 9

5 - 10

1

IR

6

Page 9: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 914 -

Sequence of micro-operations for relative addressing

• t1: MAR <- (IRaddress) + (PC) <DF1 DF2 DF3 DF4 >

• t2: MBR <- (memory) <DF5 DF6 DF7 DF8 >

IR MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program CounterALU = Arithmetic Logic Unit

ALU

PC

5

6

6

7

7

8

1

2

3

4

IR MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program CounterALU = Arithmetic Logic Unit

ALU

PC

5

6

6

7

7

8

1

2

3

4

Page 10: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 1014 -

Sequence of micro-operations for base and indexed addressing

• t1: MAR <- ((IRregister-address)) + (IRaddress)<DF1 DF2 DF3 DF4

DF5 >

• t2: MBR <- (memory) <DF6 DF7 DF8 DF9 >

IR MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program CounterALU = Arithmetic Logic Unit

Registers

1

1

2

3

5

ALU

4

6

7

7

8

8

9

IR MBR

ControlUnit

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program CounterALU = Arithmetic Logic Unit

Registers

1

1

2

3

5

ALU

4

6

7

7

8

8

9

Page 11: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 1114 -

Sequence of micro-operations for combination of displacement and indirect addressing

• Try them yourself !

Page 12: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 1214 -

Sequence of micro-operations for interrupt handling

• t1: MBR <- (PC) <DF1a >

MAR <- (Stack-Pointer) <DF1b>• t2: Memory <- (MBR) <DF1c DF1d

DF1e >• t3: MAR <- Interrupt_Code <DF2a >• t4: MBR <- (Memory) <DF2b DF2c

DF2d DF2e >• t5: PC <- (MBR) <DF2f >

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program Counter

Registers

PC

ControlUnit

MBR

1b

1a

1b

1c - 2b

1c

1d - 2c

1d - 2c

1e

1e - 2d

2a

2d

2e2f

MAR

DataBus

AddressBus

ControlBus

Memory

CPU

MAR = Memory Address RegisterMBR = Memory Buffer RegisterIR = Instruction RegisterPC = Program Counter

Registers

PC

ControlUnit

MBR

1b

1a

1b

1c - 2b

1c

1d - 2c

1d - 2c

1e

1e - 2d

2a

2d

2e2f

Page 13: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 1314 -

Micro-operation sequencing for the execution phase (1)

• Different for each instruction

• MUL R1 X - multiply the contents of location X to Register 1 and store result in Register 1 and 2

Assuming that content of cell at address X is in MBR after the operand fetch phase:

t1: ALU <- (R1) * (MBR)

t2: R1 <- (ALU)low

R2 <- (ALU)high

Page 14: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 1414 -

Micro-operation sequencing for the execution phase (2)

• ISZ X - increment memory cell X and skip if it’s zero

Assuming that content of cell at address X is in MBR after the operand fetch phase:

t1: MBR <- (MBR) + 1

t2: memory <- (MBR)

IF (MBR) == 0 THEN PC <- (PC) + 1

• Note: IF-THEN is a single micro-operation

Page 15: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 1514 -

Micro-operation sequencing for the execution phase (3)

• PPJ X - Save in stack the return address and jump to address X t1: MBR <- (PC)

MAR <- (SP) t2: memory <- (MBR)

SP <- (SP) + 1PC <- (IRaddress)

Page 16: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 1614 -

A simplified flow diagram for the execution of instruction cycle

Interrupt

enabled?

Executeinterrupt handling micro-ops

Opcode?

ICC?

Indirectaddressing?

Fetchinstruction

Executeindirect

addressingmicro-ops

ICC = 10

ICC = 01

ICC = 10ICC = 00ICC = 11

ICC = 00

Execute micro-opsfor the given opcode

11 (Interrupt) 00 (Fetch)

01 (Indirect Addressing)10 (Execution)

ICC = Instruction Cycle Code

YesNo

Fetchdata

Yes No

Page 17: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 1714 -

Constituent Elements of Program Execution

Page 18: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 1814 -

Functions of Control Unit

• Sequencing Causing the CPU to step through a series of

micro-operations

• Execution Causing the execution of each micro-op

• ALL THESE ACTIONS are performed by means of Control Signals

Page 19: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 1914 -

A simplified data flow diagram of a Control Unit

ControlUnit

InstructionRegister

Control B

us

Control Signals

Control Signals

Signals internal to CPU

Clock

Flags

Page 20: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 2014 -

Input Signals

• Clock One micro-op (or set of parallel ops) per clock cycle Different signals are needed for different steps

• Instruction register Op-code for current instruction Determines which micro-instructions are performed

• Flags State of CPU Results of previous operations

• Control Bus Interrupts Acknowledgments

Page 21: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 2114 -

Output Signals

• To other CPU components For data movement To activate specific functions

• To the Control Bus To control memory To control I/O modules

• Output signals from the control unit make all micro-operations happen

Page 22: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 2214 -

Example of Control Signal use in a simplified schema of a CPU

MBR

MAR

C5

C12

C0

PC IR

AC

ControlUnit

ALU

C11

C9C7

C10

C6

C4

C13

C3C1

C2

C8

Clock

…Control signals Cx

Flags

CxThe flow of data is

enabled when the Control Signal x is enabled

…Control signals Cx

C14

C15

C16 Decod.

Page 23: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 2314 -

Example of Control Signal Sequence – Direct Addressing

t1: MAR <- (IRaddress) t2: MBR <- (memory)

C16C0, C5, CR

CR: Read Enable

Page 24: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 2414 -

Example of Control Signal Sequence – Instruction Fetch

t1: MAR <- (PC) t2: MBR <- (memory) PC <- (PC) + 1t3: IR <- (MBR)

NOTE that:In the simple schema shown there is no direct data path from ALU to PC hence the micro-op has to be split into three micro-ops (ALU has internally an output buffer to store result)

t1: MAR <- (PC) t2: MBR <- (memory) ALU <- (PC) + 1t3: IR <- (MBR) AC <- (ALU)t4: PC <- (AC)

C2C5, C0, CRC14, CA1,…,CAkC4C9C15

Page 25: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 2514 -

Example of Control Signal Sequence - Indirect Addressing

• t1: MAR <- (IRaddress) CU activates C16 to open gate between IR and MAR

• t2: MBR <- (memory) CU act. C0 to open gate between MAR and address bus CU act. the memory read control signal (CR) CU act. C5 to open gate between data bus and MBR

• t3: MAR <- (MBR) CU activates C8 to open gate between MBR and MAR

• t4: MBR <- (memory) CU activates C0, CR and C5 as above

Page 26: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 2614 -

Other Examples of Control Signal Sequence

• Relative Addressing

• Try it yourself !

Page 27: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 2714 -

Limitations

• The simplified schema of a CPU’s does not show registers, hence we cannot show Register addressing Register indirect addressing Base addressing Indexed addressing Combination of displacement and indirect

addressing

Try adding to the simplified schema one or more of the above addressing modalities and derive the required micro-operations!

Page 28: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 2814 -

Internal Organization of CPU

• Usually a single internal bus less complex then having direct data paths

between registers and ALU

• Gates control movement of data onto and off the internal bus

• Control signals control also data transfer to and from external systems bus

• Temporary registers in input to ALU are now needed for proper operation of ALU

Page 29: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 2914 -

Internal bus

t1: MAR <- (IRaddress) t2: MBR <- (memory)t3: Y <- (MBR)t4: Z <- (AC) + (Y)t5: AC <- (Z)

Add X meaning: Acc <- (Acc) + (X)

Page 30: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 3014 -

Hardwired Implementation (1)

• Consider the control unit as a combinational circuit Outputs of the circuit are the control signals Inputs of the circuit are status signal for ICC and

opcode bits For each configuration of inputs produce a proper

output That is, the activation of a given control signal Cn

has to happen when this condition is true OR this condition is true OR …

Page 31: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 3114 -

A simplified data flow diagram of a Control Unit for the hardwired implementation

ControlUnit

InstructionRegister

Control B

us

Control Signals

Control Signals

Signals internal to CPU

Clock

Flags

clocks for

mOPs

t1

tn

Decoder

…OC1 OCm

Page 32: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 3214 -

A simplified flow diagram for the execution of instruction cycle

Interrupt

enabled?

Executeinterrupt handling micro-ops

Opcode?

ICC?

Indirectaddressing?

FetchinstructionExecute

indirectaddressing

micro-ops: one more fetch

ICC = 10

ICC = 01

ICC = 10ICC = 00ICC = 11

ICC = 00

Execute micro-opsfor the given opcode

11 (Interrupt) 00 (Fetch)

01 (Indirect Addressing)10 (Execution)

ICC = Instruction Cycle Code

YesNo

Fetchdata

Yes No

Page 33: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 3314 -

t1: MAR <- (PC) t2: MBR <- (memory) ALU <- (PC) + 1t3: IR <- (MBR) AC <- (ALU)t4: PC <- (AC)

C2C5, C0, CRC14, CA1,…,CAkC4C9C15

t5: MAR <- (IRaddress) t6: MBR <- (memory)

C16C0, C5, CR

t1: MAR <- (MBR) t2: MBR <- (memory)

C16C0, C5, CR

t1: MBR <- (PC) MAR <- (SP)t2: Memory <- (MBR)t3: MAR <- Interrupt-codet4: MBR <- (Memory)t5: PC <- (MBR)

C1

C12,C0,CW

C5,C0,CRC3

Instruction fetch

OF: direct addressing

Interrupt

OF: indirect addressing

Page 34: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 3414 -

Hardwired Implementation (2)

• Example: Control signals P and Q code ICC: then fetch is coded

by P’Q’, indirect by P’Q, execute by PQ’, and interrupt by PQ

Opcode bits are further control signals Boolean expression activating C5 in the simplified

schema of a CPU:C5 = P’Q’(t2+t6)+ P’Qt2 + PQt4 +PQ’B

• where B is the boolean expression representing, for all opcodes activating C5, all micro-operations actually activating it

• E.g.: if C5 is activated by opcode 3 during t2 and t4 and by opcode 7 during t3 and t4 then B is: OC3(t2+t4)+OC7(t3+t4)

Page 35: 14 - Rev. (2008-09) by Luciano Gualà1 William Stallings Computer Organization and Architecture Chapter 16 Control Unit Operations.

Rev. (2008-09) by Luciano Gualà 3514 -

Problems with the Hardwired Implementation

• Complex sequencing & micro-operation logic

• Difficult to design and test• Inflexible design• Difficult to add new instruction