09.02.2014 Views

Hardware Flowchart - SERC - Indian Institute of Science

Hardware Flowchart - SERC - Indian Institute of Science

Hardware Flowchart - SERC - Indian Institute of Science

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CISC Processor Design<br />

<strong>Hardware</strong> <strong>Flowchart</strong><br />

Virendra Singh<br />

<strong>Indian</strong> <strong>Institute</strong> <strong>of</strong> <strong>Science</strong><br />

Bangalore<br />

virendra@computer.org<br />

Computer<br />

Design<br />

Laboratory<br />

& Test<br />

Advance Computer Architecture


Processor - Block Diagram<br />

Clock-Phase Reset & Power-On Logic<br />

Generator<br />

Bus Controller<br />

Interrupt Logic<br />

Control<br />

Store<br />

Next State<br />

Control<br />

Branch Control<br />

unit<br />

IR<br />

Decoder<br />

Encoded Control Word Fields<br />

Control Word Decoder<br />

Decoded d Datapath Control<br />

Instruction<br />

Prefetch<br />

Register<br />

Address<br />

Out Reg.<br />

PC R0 R1<br />

Internal A Bus<br />

Rn Shifter ALU<br />

Internal B Bus<br />

Datapath<br />

Data<br />

Reg.<br />

Advance Computer Architecture 2<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


<strong>Hardware</strong> <strong>Flowchart</strong><br />

<strong>Hardware</strong> <strong>Flowchart</strong><br />

‣ Tells us how to get from the architecture to the<br />

implementation<br />

i<br />

‣ Links programmer’s (external) model and the<br />

hardware (internal) implementation<br />

‣ Specify exactly how commands from the<br />

instruction set are carried out using Datapath<br />

Advance Computer Architecture 3<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


<strong>Hardware</strong> <strong>Flowchart</strong><br />

Pre-requisites: ii<br />

Instruction set summary<br />

‣ Instruction Format<br />

‣ Operations<br />

‣ Addressing modes<br />

‣ Registers<br />

Datapath<br />

‣ Programmer’s register set<br />

‣ Additional registers<br />

‣ ALU and any special<br />

functional units<br />

‣ Internal data paths<br />

‣ Rules <strong>of</strong> operation<br />

• Datapath will evolve<br />

Advance Computer Architecture 4<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Development <strong>of</strong><br />

Implementation<br />

Clock Phase<br />

Generator<br />

Datapath<br />

‣ The architecture<br />

t<br />

specification is the only<br />

input<br />

‣ Begin with a guess <strong>of</strong><br />

Datapath<br />

‣ Do flowchart for the<br />

instructions<br />

‣ This modifies and<br />

refines the Datapath<br />

and develops the<br />

control store and<br />

control strategy<br />

‣ The final Datapath is<br />

derived output<br />

Advance Computer Architecture 5<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Development <strong>of</strong><br />

Implementation<br />

Clock Phase<br />

Generator<br />

Control<br />

Store<br />

Control Word<br />

‣ Once flowcharts are<br />

fairly complete, derive<br />

the control word<br />

format using the<br />

flowchart states<br />

‣ When the flowcharts<br />

are complete, so is<br />

the Datapath<br />

‣ Control word format<br />

is derived output<br />

Datapath<br />

Advance Computer Architecture 6<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Development <strong>of</strong><br />

Implementation<br />

Clock Phase<br />

Generator<br />

Control<br />

Store<br />

‣ After defining control<br />

word format, you<br />

assign bit patterns to<br />

the control fields in a<br />

way that minimizes<br />

control word decoders<br />

between the control<br />

store and the<br />

Datapath<br />

Control Word Decoder<br />

Datapath<br />

Advance Computer Architecture 7<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Development <strong>of</strong><br />

Implementation<br />

Clock Phase<br />

Generator<br />

Control<br />

Store<br />

Instruction<br />

Decoder<br />

‣ Instruction decoders<br />

are defined the<br />

flowcharts and the<br />

architecture<br />

specification<br />

Control Word Decoder<br />

Datapath<br />

Advance Computer Architecture 8<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Development <strong>of</strong><br />

Implementation<br />

Clock Phase<br />

Generator<br />

Control<br />

Store<br />

Bus Controller<br />

Instruction<br />

Decoder<br />

‣ Completed flowchars,<br />

control word format,<br />

and the initial bus<br />

specification defines<br />

the bus controller<br />

Control Word Decoder<br />

Datapath<br />

Advance Computer Architecture 9<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Development <strong>of</strong><br />

Implementation<br />

Clock Phase<br />

Generator<br />

Control<br />

Store<br />

Control Word Decoder<br />

State<br />

Sequencer<br />

Datapath<br />

Bus Controller<br />

Instruction<br />

Decoder<br />

‣ Last is the logic <strong>of</strong> the<br />

state sequencer, the<br />

part <strong>of</strong> the chip that<br />

says what to do next<br />

(where is the next<br />

control word?)<br />

‣ Once every thing<br />

around it is defined,<br />

you build exactly<br />

what you need! (The<br />

state sequencer is<br />

derived output)<br />

Advance Computer Architecture 10<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


<strong>Flowchart</strong> Objective<br />

<strong>Flowchart</strong> Objective<br />

‣ Limit controller size to some fraction <strong>of</strong> chip area<br />

‣ Make CPU as fast as possible<br />

‣ Complete the project as early as possible<br />

‣ Make the flowcharts easy to translate into<br />

hardware<br />

Advance Computer Architecture 11<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


MIN Instruction ti Set<br />

Instruction Format<br />

First Word<br />

Op-code Rx Mode Ry<br />

Operation First Second First<br />

Code<br />

Operand<br />

Register<br />

Second Word<br />

Operand<br />

Address<br />

Mode<br />

Displacement<br />

st<br />

Operand<br />

Register<br />

Optional, depending on second operand address mode<br />

Programmer’s<br />

Register Set<br />

R0<br />

R1<br />

R2<br />

.<br />

.<br />

.<br />

Rn<br />

Advance Computer Architecture 12<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


MIN Instruction ti Set<br />

MIN Instruction Set<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

ADD<br />

AND<br />

BZ – Branch if zero bit is set. (Register Indirect only)<br />

LOAD – Second operand is source and Rx is destination<br />

POP – Postincrement with register indirect only<br />

PUSH – Predecrement with register indirect only<br />

STORE<br />

SUB<br />

TEST<br />

Advance Computer Architecture 13<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


MIN Instruction ti Set<br />

Second Operand Address<br />

Mode<br />

Second Operand<br />

Address Mode<br />

Ry<br />

First Operand<br />

Register<br />

Address Modes<br />

‣ AB - Base (Ry) plus displacement (second instruction<br />

word) is an operand address<br />

‣ AI – Register indirect. Ry holds an operand address<br />

‣ AR – Register direct: The result is stored in Ry. For two<br />

operand dinstructions, ti Ry also is an operand source<br />

Advance Computer Architecture 14<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


MIN Datapath<br />

th<br />

IRE<br />

IRF<br />

Internal A Bus<br />

DO<br />

AO PC T2 R0 R1 Rn T1 ALU<br />

k<br />

Internal B Bus<br />

DI<br />

External Address<br />

Bus (EAB)<br />

External Data<br />

Bus (EDB)<br />

Advance Computer Architecture 15<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


MIN Datapath<br />

th<br />

Rules <strong>of</strong> Operation<br />

1. A transfer from source to bus to destination takes one state time<br />

2. A source can drive up to three destination loads<br />

3. Inputs to the ALU are from A (internal) bus and either k (values 0,<br />

+1, -1) or the B (internal) bus<br />

4. When ALU is destination. Ti is automatically loaded from the ALU<br />

output<br />

5. A transfer to AO activates the on-chip external bus controller. This<br />

bus controller postpones the next state until the external transfer<br />

is complete.<br />

Advance Computer Architecture 16<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


<strong>Flowchart</strong>s<br />

ADD RX AR RY<br />

ADD RX AI (RY)<br />

Register-to-Register<br />

Register-to-Memory<br />

R → R ADD R → M ADD<br />

rx → a → alu<br />

ry → b → alu<br />

edb → di<br />

ry → b → ao<br />

State<br />

t1 → b → ry<br />

di → b → alu<br />

rx → a → alu<br />

Sequence<br />

IRE<br />

Internal<br />

AO PC T2 R0 R1 A Bus<br />

Rn T1 ALU<br />

Internal<br />

B Bus<br />

IRF<br />

DO<br />

k<br />

DI<br />

ry → b → ao<br />

t1 → a → do<br />

Advance Computer Architecture 17<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


<strong>Flowchart</strong>s<br />

ADD RX AR RY<br />

Register-to-Register<br />

R → R<br />

edb → if irf<br />

pc → b → ao<br />

rx → a → alu<br />

ry → b → alu<br />

t1 → b → ry<br />

pc → a → alu<br />

+1 → alu<br />

t1 → b → pc<br />

ADD<br />

ADD RX AI (RY)<br />

Register-to-Memory<br />

R → M ADD<br />

edb → irf<br />

pc → b → ao<br />

edb → di<br />

ry → b → ao<br />

di → b → alu<br />

rx → a → alu<br />

ry → b → ao<br />

t1 → a → do<br />

pc → a → alu<br />

+1 → alu<br />

t1 → b → pc<br />

‣ Execution<br />

Speed<br />

Advance Computer Architecture 18<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


MIN Datapath<br />

th<br />

IRE<br />

IRF<br />

Internal A Bus<br />

DO<br />

AO PC T2 R0 R1 Rn T1 ALU<br />

k<br />

Internal B Bus<br />

DI<br />

External Address<br />

Bus (EAB)<br />

External Data<br />

Bus (EDB)<br />

Advance Computer Architecture 19


Level 1 <strong>Flowchart</strong> - ADD<br />

ADD RX AR RY<br />

Register-to-Register<br />

R → R<br />

ADD<br />

rx → a → alu<br />

ry → b → alu<br />

edb → irf<br />

pc → b → ao<br />

pc → a → alu<br />

+1 → alu<br />

t1 → b → ry<br />

irf → ire<br />

t1 → b → pc<br />

IRE<br />

IRF<br />

Operation<br />

tasks<br />

Housekeeping<br />

tasks<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

Internal<br />

B Bus<br />

(EAB)<br />

DO<br />

k<br />

DI<br />

(EDB)<br />

Advance Computer Architecture 20


Level 2 <strong>Flowchart</strong> - ADD<br />

R → R<br />

ADD RX AR RY<br />

Register-to-Register<br />

rx → a → alu<br />

ry → b → alu<br />

t1 → b → ry<br />

ADD<br />

edb → irf<br />

pc → b → ao<br />

pc → a → alu<br />

+1 → alu<br />

irf → ire<br />

t1 → b → pc<br />

R → R<br />

rx → a → alu<br />

ry → b → alu<br />

ADD<br />

edb → irf<br />

pc → a → alu, ao<br />

t1 → b → ry<br />

+1 → alu<br />

irf → ire<br />

t1 → b → pc<br />

Merger<br />

• Speed<br />

• Identical states<br />

Advance Computer Architecture 21


Level 2 <strong>Flowchart</strong> - ADD<br />

ADD RX AI (RY)<br />

R → M ADD<br />

Register-to-Memory<br />

edb → irf<br />

R → M ADD<br />

pc → a → alu, ao<br />

edb → di<br />

edb → irf<br />

+1 → alu<br />

ry → b → ao<br />

di → b → alu<br />

rx → a → alu<br />

pc → b → ao<br />

pc → a → alu<br />

+1 → alu<br />

edb → di<br />

ry → b → ao<br />

t1 → a → pc<br />

ry → b → ao<br />

t1 → a → do<br />

Internal<br />

AO PC R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

irf → ire<br />

t1 → b → pc<br />

IRE<br />

k<br />

IRF<br />

DO<br />

DI<br />

(EDB)<br />

di → b → alu<br />

rx → a → alu<br />

t1 → a → do<br />

ry → b → ao<br />

irf → ire<br />

Advance Computer Architecture<br />

22


Level 2 <strong>Flowchart</strong> - ADD<br />

ADD RX AI (RY)<br />

Register-to-Memory<br />

R → M ADD<br />

edb → di<br />

ry → b → ao<br />

di → b → alu<br />

rx → a → alu<br />

ry → b → ao<br />

t1 → a → do<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

R → M<br />

di → b → alu<br />

rx → a → alu<br />

irf → ire<br />

t1 → a → do<br />

t2 → b → ao<br />

ADD<br />

edb → irf<br />

edb → irf<br />

pc → a → alu, ao<br />

pc → b → ao<br />

+1 → alu<br />

pc → a → alu<br />

edb → di<br />

+1 → alu<br />

ry → b → ao, t2<br />

t1 → a → pc<br />

irf → ire<br />

t1 → b → pc<br />

IRE<br />

k<br />

IRF<br />

DO<br />

DI<br />

(EDB)<br />

Advance Computer Architecture<br />

23


Level 2 <strong>Flowchart</strong> - ADD<br />

ADD RX AR RY<br />

Register-to-Register<br />

R → R ADD<br />

rx → a → alu<br />

when AO is connected<br />

ry → b → alu<br />

to B (internal) bus only<br />

edb → irf<br />

pc → b → ao<br />

Do level2 flowchart <strong>of</strong> the fastest<br />

instruction<br />

t1 → a → ry<br />

Point out inadequacy in Datapath<br />

pc → a → alu<br />

+1 → alu<br />

IRE<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

k<br />

IRF<br />

DO<br />

DI<br />

(EDB)<br />

irf → ire<br />

t1 → b → pc<br />

Advance Computer Architecture<br />

24


<strong>Flowchart</strong><br />

<strong>Flowchart</strong><br />

‣ How many sequences?<br />

‣ Motorola 68000 (14 address modes and 50<br />

instruction types)<br />

Control Word Sequence<br />

‣ Address Mode Sequence<br />

‣ Calculate address (may or may not include operand fetch)<br />

‣ Execution Sequence<br />

‣ Completes the execution (after address mode sequence)<br />

Advance Computer Architecture<br />

25


Control Word Sequence<br />

Address Mode Sequence<br />

‣ Can be shared for different instructions<br />

‣ Calculate l the operand address<br />

‣ Fetch the operand<br />

‣ Place the operand in DIN<br />

Execution Sequence<br />

‣ Address mode sequences can be shared<br />

‣ Find the operand in DIN<br />

‣ Execute the instruction (without knowing how the address<br />

was calculated etc..)<br />

Advance Computer Architecture<br />

26


Level1 <strong>Flowchart</strong><br />

Level1 <strong>Flowchart</strong><br />

‣ At the beginning <strong>of</strong> instruction execution, IRE is<br />

assumed to contain the current instruction<br />

i<br />

‣ Instruction execution begins with the address<br />

mode sequence<br />

‣ The execution sequences for Register-to-<br />

Register instructions cannot be shared<br />

‣ The execution sequences for standard dual<br />

operand instructions are identical<br />

Advance Computer Architecture<br />

27


Level 1 <strong>Flowchart</strong>-<br />

Address Mode Sequences<br />

Base Plus Displacement<br />

Register Indirect<br />

edb → di<br />

pc → a → alu, ao<br />

+1 → alu<br />

edb → di<br />

ry → b → ao, t2<br />

t1 → a → pc<br />

di → b → alu<br />

ry → a → alu<br />

edb → di<br />

t1 → b → ao, t2<br />

Advance Computer Architecture<br />

IRE<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

28<br />

IRF<br />

DO<br />

k<br />

DI<br />

(EDB)


Level 1 <strong>Flowchart</strong>-<br />

Address Mode Sequences<br />

Branch Instruction<br />

ti<br />

edb → irf<br />

ry → a → alu, ao<br />

+1 → alu<br />

IRE<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

IRF<br />

DO<br />

k<br />

DI<br />

(EDB)<br />

Z = 1 (Branch)<br />

irf → ire<br />

t1 → b → pc<br />

Z = 0 (no branch)<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → b → pc<br />

Advance Computer Architecture<br />

29


Level 1 <strong>Flowchart</strong> -<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

LOAD<br />

di → b → rx, t2<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

STORE<br />

rx → a → alu, do<br />

edb → if irf<br />

t2 → b → ao pc → a → alu, ao<br />

0 → alu +1 → alu<br />

t2 → a → alu<br />

0 → alu<br />

irf → ire<br />

t1 → b → pc<br />

irf → ire<br />

t1 → b → pc<br />

IRE<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

IRF<br />

DO<br />

k<br />

DI<br />

(EDB)<br />

Advance Computer Architecture<br />

30


Level 1 <strong>Flowchart</strong> -<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

di → b → alu<br />

rx → a → alu<br />

ADD<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

di → b → alu<br />

rx → a → alu<br />

SUB<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

t1 → a → do<br />

t2 → b → ao<br />

irf → ire<br />

t1 → b → pc<br />

t1 → a → do<br />

t2 → b → ao<br />

irf → ire<br />

t1 → b → pc<br />

IRE<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

IRF<br />

DO<br />

k<br />

DI<br />

(EDB)<br />

Advance Computer Architecture<br />

31


Level 1 <strong>Flowchart</strong> -<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

di → b → alu<br />

rx → a → alu<br />

AND<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

di → b → t2<br />

TEST<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

t1 → a → do<br />

t2 → b → ao<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

irf → ire<br />

t1 → b → pc<br />

IRE<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

IRF<br />

DO<br />

k<br />

DI<br />

(EDB)<br />

Advance Computer Architecture<br />

32


Level 1 <strong>Flowchart</strong> -<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

LOAD<br />

ry → a → alu,rx<br />

0 → alu<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → a → pc<br />

rx → a → alu, ry<br />

0 → alu<br />

STORE<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → a → pc<br />

IRE<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

IRF<br />

DO<br />

k<br />

DI<br />

(EDB)<br />

Advance Computer Architecture<br />

33


Level 1 <strong>Flowchart</strong> -<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

rx → a → alu<br />

ry → b → alu<br />

ADD<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

rx → a → alu<br />

ry → b → alu<br />

SUB<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

t1 → a → ry<br />

irf → ire<br />

t1 → a → pc<br />

t1 → a → ry<br />

irf → ire<br />

t1 → a → pc<br />

IRE<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

IRF<br />

DO<br />

k<br />

DI<br />

(EDB)<br />

Advance Computer Architecture<br />

34


Level 1 <strong>Flowchart</strong> -<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

POP<br />

edb → di<br />

ry → a → alu, ao<br />

+1 → alu<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

ry → a → alu<br />

-1 → alu<br />

PUSH<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

di → b → rx<br />

t1 → a → ry<br />

irf → ire<br />

t1 → a → pc<br />

rx → a → do<br />

t1 → b → ao, ry<br />

irf → ire<br />

t1 → a → pc<br />

IRE<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

IRF<br />

DO<br />

k<br />

DI<br />

(EDB)<br />

Advance Computer Architecture<br />

35


Merged Level 1 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Base Plus Displacement<br />

Register Indirect<br />

edb → di<br />

pc → a → alu, ao<br />

+1 → alu<br />

t1 → a → pc<br />

di → b → alu<br />

ry → a → alu<br />

abdm1<br />

abdm2<br />

abdm3<br />

edb → di<br />

ry → b → ao, t2<br />

adrm1<br />

edb → di<br />

Internal<br />

A Bus<br />

t1 → b → ao, t2<br />

AO PC T2 R0 R1 Rn T1 ALU<br />

abdm4<br />

(EAB)<br />

Advance Computer Architecture<br />

Internal<br />

B Bus<br />

36<br />

IRE<br />

k<br />

IRF<br />

DO<br />

DI<br />

(EDB)


Merged Level 1 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Branch Instruction<br />

ti<br />

edb → irf<br />

ry → a → alu, ao<br />

+1 → alu<br />

brzz1<br />

IRE<br />

Internal<br />

AO PC T2 R0 R1<br />

A Bus<br />

Rn T1 ALU<br />

(EAB)<br />

Internal<br />

B Bus<br />

IRF<br />

DO<br />

k<br />

DI<br />

(EDB)<br />

Z = 1 (Branch)<br />

irf → ire<br />

t1 → b → pc<br />

brzz2<br />

Z = 0 (no branch)<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

brzz3<br />

irf → ire<br />

t1 → b → pc<br />

brzz4<br />

Advance Computer Architecture<br />

37


Merged Level 1 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

LOAD<br />

di → b → rx, t2<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

LOAD<br />

di → b → rx, t2<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

t2 → a → alu<br />

0 → alu<br />

irf → ire<br />

t1 → b → pc<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

ldrm1<br />

ldrm2<br />

Advance Computer Architecture<br />

38


Merged Level 1 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

STORE<br />

STORE<br />

rx → a → alu, do<br />

edb → if irf<br />

t2 → b → ao pc → a → alu, ao<br />

0 → alu +1 → alu<br />

rx → a → alu, do<br />

t2 → b → ao<br />

0 → alu<br />

strm1<br />

irf → ire<br />

t1 → b → pc<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

strm2<br />

irf → ire<br />

t1 → b → pc<br />

strm3<br />

Advance Computer Architecture<br />

39<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 1 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

ADD, AND, SUB<br />

di → b → alu<br />

rx → a → alu<br />

t1 → a → do<br />

t2 → b → ao<br />

ADD<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → b → pc<br />

di → b → alu<br />

rx → a → alu<br />

t1 → a → do<br />

t2 → b → ao<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → b → pc<br />

oprm1<br />

oprm2<br />

oprm3<br />

oprm4<br />

Advance Computer Architecture<br />

40<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 1 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

di → b → t2<br />

t2 → a → alu<br />

0 → alu<br />

TEST<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → b → pc<br />

TEST<br />

di → b → t2<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

test1<br />

test2<br />

Advance Computer Architecture<br />

41<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 1 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

LOAD<br />

ry → a → alu,rx<br />

0 → alu<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → a → pc<br />

LOAD<br />

edb → irf<br />

pc → a → alu, ao<br />

ry → a → rx, t2<br />

+1 → alu<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

ldrr1<br />

ldrr2<br />

Advance Computer Architecture<br />

42<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 1 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register and special instructions<br />

STORE<br />

STORE<br />

rx → a → alu, ry<br />

0 → alu<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → a → pc<br />

edb → irf<br />

pc → a → alu, ao<br />

rx → b → ry, t2<br />

+1 → alu<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

strr1<br />

strr2<br />

Advance Computer Architecture<br />

43<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 1 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

rx → a → alu<br />

ry → b → alu<br />

t1 → a → ry<br />

ADD<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → a → pc<br />

ADD, SUB, AND<br />

rx → a → alu<br />

ry → b → alu<br />

edb → irf<br />

pc → a → alu, ao<br />

t1 → a → ry<br />

+1 → alu<br />

oprr1<br />

oprr2<br />

irf → ire<br />

t1 → a → pc<br />

oprr3<br />

Advance Computer Architecture<br />

44<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 1 <strong>Flowchart</strong> -<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

POP<br />

edb → di<br />

ry → a → alu, ao<br />

+1 → alu<br />

di → b → rx<br />

t1 → a → ry<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → a → pc<br />

POP<br />

edb → di<br />

ry → a → alu, ao<br />

+1 → alu<br />

di → b → rx<br />

t1 → a → ry<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → a → pc<br />

popr1<br />

popr2<br />

popr3<br />

popr4<br />

Advance Computer Architecture<br />

45<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 1 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

PUSH<br />

PUSH<br />

ry → a → alu<br />

-1 → alu<br />

edb → irf<br />

push1<br />

ry → a → alu<br />

pc → a → alu, ao<br />

-1 → alu<br />

rx → a → do<br />

+1 → alu<br />

t1 → b → ao, ry<br />

push2<br />

rx → a → do<br />

t1 → b → ao, ry<br />

irf → ire<br />

t1 → a → pc<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

irf → ire<br />

t1 → a → pc<br />

push3<br />

push4<br />

Advance Computer Architecture<br />

46<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>s<br />

Format for Level 2 flowchart state ‣ DR – Data Read<br />

‣ DW – Data Write<br />

Label A<br />

Label B<br />

‣ IR - Instruction Read<br />

Access Type ‣ NA – No aceess<br />

State ID<br />

Tasks<br />

Synonym<br />

ALU and CC •S–Set<br />

Duplicates •N–Not set<br />

Page and Loc<br />

•X–Don’t care<br />

Acess<br />

Next State • BC – Branch conditionally<br />

Width<br />

• IB – Instruction branch<br />

• SB – Sequence branch<br />

• StateID – Direct branch<br />

Advance Computer Architecture<br />

47<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Base Plus Displacement<br />

(RY+d)@<br />

edb → di<br />

pc → a → alu, ao<br />

+1 → alu<br />

ir<br />

add-n<br />

di → b → alu<br />

ry → a → alu<br />

na<br />

add-n<br />

abdm1<br />

t1 → a → pc<br />

abdm2<br />

na<br />

x-n<br />

abdm3<br />

edb → di<br />

t1 → b → ao, t2<br />

abdm4<br />

dr<br />

x-n<br />

abdm2<br />

abdm3<br />

abdm4<br />

sb<br />

Advance Computer Architecture<br />

48<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Register Indirect<br />

RY@<br />

edb → di<br />

ry → b → ao, t2<br />

adrm1<br />

dr<br />

x-n<br />

sb<br />

Advance Computer Architecture<br />

49<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Branch Instruction<br />

edb → irf<br />

ry → a → alu, ao<br />

+1 → alu<br />

brzz1<br />

ir<br />

add-n<br />

bc<br />

Z = 0 (no branch)<br />

Z = 1 (Branch)<br />

na<br />

irf → ire<br />

x-n<br />

t1 → b → pc<br />

brzz2<br />

ib<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

brzz3<br />

irf → ire<br />

t1 → b → pc<br />

ir<br />

add-n<br />

brzz4<br />

na<br />

x-n<br />

Advance Computer Architecture<br />

brzz4<br />

50<br />

ib


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

Mem → RX<br />

di → b → rx, t2<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

ldrm1<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

ldrm2<br />

LOAD<br />

ir<br />

add-x<br />

ldrm2<br />

na<br />

add-s<br />

ib<br />

Advance Computer Architecture<br />

51<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

RX → Mem<br />

rx → a → alu, do<br />

t2 → b → ao<br />

0 → alu<br />

STORE<br />

dw<br />

add-s<br />

strm1<br />

strm2<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

ir<br />

add-n<br />

irf → ire<br />

t1 → b → pc<br />

strm3<br />

na<br />

x-n<br />

ib<br />

strm2<br />

strm3<br />

Advance Computer Architecture<br />

52<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

RX OP Mem → Mem<br />

ADD, AND, SUB<br />

di → b → alu<br />

rx → a → alu<br />

na<br />

op-s<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

ir<br />

add-n<br />

oprm1 oprm2 oprm3 oprm3<br />

t1 → a → do<br />

t2 → b → ao<br />

dw<br />

x-s<br />

irf → ire<br />

t1 → b → pc<br />

oprm2 oprm3 oprm4 ib<br />

na<br />

x-n<br />

Advance Computer Architecture<br />

53<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

Mem → ALU TEST<br />

di → b → t2<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

test1<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

test2<br />

ir<br />

add-x<br />

test2<br />

na<br />

add-s<br />

ib<br />

Advance Computer Architecture<br />

54<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

RX OP RY → RY<br />

ADD, SUB, AND<br />

rx → a → alu<br />

ry → b → alu<br />

na<br />

op-s<br />

irf → ire<br />

t1 → a → pc<br />

na<br />

x-n<br />

oprr1<br />

oprr2<br />

edb → irf<br />

pc → a → alu, ao<br />

t1 → a → ry<br />

+1 → alu<br />

ir<br />

add-n<br />

oprr3<br />

ib<br />

oprr2<br />

oprr3<br />

Advance Computer Architecture<br />

55<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

RX → RY<br />

edb → irf<br />

pc → a → alu, ao<br />

ry → a → rx, t2<br />

+1 → alu<br />

ldrr1<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

LOAD<br />

ir<br />

add-x<br />

ldrr2<br />

na<br />

add-s<br />

RX → RY<br />

edb → irf<br />

pc → a → alu, ao<br />

rx → b → ry, t2<br />

+1 → alu<br />

strr1<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

STORE<br />

ir<br />

add-x<br />

strr2<br />

na<br />

add-s<br />

ldrr2 ib strr2 ib<br />

Advance Computer Architecture<br />

56<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

RY@ → RX<br />

RY+1 → RY<br />

edb → di<br />

ry → a → alu, ao<br />

+1 → alu POP<br />

dr<br />

add-n<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

ir<br />

add-n<br />

popr1 popr2 popr3 popr4<br />

di → b → rx<br />

t1 → a → ry<br />

na<br />

x-n<br />

irf → ire<br />

t1 → a → pc<br />

popr2 popr3 popr4 ib<br />

na<br />

x-n<br />

Advance Computer Architecture<br />

57<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Base Plus Displacement<br />

(RY+d)@<br />

edb → di<br />

pc → a → alu, ao<br />

+1 → alu<br />

ir<br />

add-n<br />

di → b → alu<br />

ry → a → alu<br />

na<br />

add-n<br />

abdm1<br />

t1 → a → pc<br />

abdm2<br />

na<br />

x-n<br />

abdm3<br />

edb → di<br />

t1 → b → ao, t2<br />

abdm4<br />

dr<br />

x-n<br />

abdm2<br />

abdm3<br />

abdm4<br />

sb<br />

Advance Computer Architecture<br />

58<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Register Indirect<br />

RY@<br />

edb → di<br />

ry → b → ao, t2<br />

adrm1<br />

dr<br />

x-n<br />

sb<br />

Advance Computer Architecture<br />

59<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Branch Instruction<br />

edb → irf<br />

ry → a → alu, ao<br />

+1 → alu<br />

brzz1<br />

ir<br />

add-n<br />

bc<br />

Z = 0 (no branch)<br />

Z = 1 (Branch)<br />

na<br />

irf → ire<br />

x-n<br />

t1 → b → pc<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

brzz3<br />

ir<br />

add-n<br />

brzz2<br />

brzz2<br />

ib<br />

Advance Computer Architecture<br />

60<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

Mem → RX<br />

di → b → rx, t2<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

LOAD<br />

ir<br />

add-x<br />

Mem → RX<br />

rx → a → alu, do<br />

t2 → b → ao<br />

0 → alu<br />

STORE<br />

dw<br />

add-s<br />

ldrm1<br />

ldrm2<br />

strm1<br />

brzz3<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

na<br />

add-s<br />

ldrm2<br />

ib<br />

Advance Computer Architecture<br />

61<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

RX OP Mem → Mem<br />

di → b → alu<br />

rx → a → alu<br />

ADD, AND, SUB<br />

na<br />

op-s<br />

oprm1<br />

oprm2<br />

t1 → a → do<br />

t2 → b → ao<br />

dw<br />

x-s<br />

Mem → ALU<br />

di → b → t2<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

test1<br />

TEST<br />

ir<br />

add-x<br />

ldrm2<br />

oprm2<br />

brzz3<br />

Advance Computer Architecture<br />

62<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

RX → RY<br />

LOAD<br />

RX OP RY → RY ADD, SUB, AND<br />

edb → irf<br />

ir<br />

na<br />

rx → a → alu<br />

pc → a → alu, ao<br />

add-x<br />

op-s<br />

ry → b → alu<br />

ry → a → rx, t2<br />

+1 → alu<br />

oprr1 oprr2 ldrr1 ldrm2<br />

edb → irf<br />

pc → a → alu, ao<br />

t1 → a → ry<br />

+1 → alu<br />

oprr2<br />

ir<br />

add-n<br />

brzz2<br />

RX → RY<br />

edb → irf<br />

pc → a → alu, ao<br />

rx → b → ry, t2<br />

+1 → alu<br />

STORE<br />

ir<br />

add-x<br />

strr1<br />

ldrm2<br />

Advance Computer Architecture<br />

63<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

RY@ → RX<br />

RY+1 → RY<br />

edb → di<br />

ry → a → alu, ao<br />

+1 → alu<br />

POP<br />

dr<br />

add-n<br />

RY-1 → RY<br />

RY@ → RX<br />

ry → a → alu<br />

-1 → alu<br />

PUSH<br />

na<br />

add-n<br />

popr1<br />

di → b → rx<br />

t1 → a → ry<br />

popr2<br />

na<br />

x-n<br />

push1<br />

rx → a → do<br />

t1 → b → ao, ry<br />

push2<br />

dw<br />

x-n<br />

popr2 brzz3 push2 brzz3<br />

Advance Computer Architecture<br />

64<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Processor Block Diagram<br />

Control<br />

Store<br />

Next<br />

State<br />

Control<br />

IB<br />

SB<br />

BC<br />

DB<br />

Instruction<br />

Decoder<br />

Control Word<br />

Register<br />

OP TY NA<br />

Control Fields (dynamic)<br />

Branch<br />

Control<br />

Control word<br />

Decoders<br />

Control Fields<br />

(Static)<br />

IRE<br />

Control lines<br />

Condition<br />

Codes<br />

IRF<br />

Datapath<br />

Advance Computer Architecture<br />

65<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>s<br />

Format for Level 2 flowchart state ‣ DR – Data Read<br />

‣ DW – Data Write<br />

Label A<br />

Label B<br />

‣ IR - Instruction Read<br />

Access Type ‣ NA – No aceess<br />

State ID<br />

Tasks<br />

Synonym<br />

ALU and CC •S–Set<br />

Duplicates •N–Not set<br />

Page and Loc<br />

•X–Don’t care<br />

Acess<br />

Next State • BC – Branch conditionally<br />

Width<br />

• IB – Instruction branch<br />

• SB – Sequence branch<br />

• StateID – Direct branch<br />

Advance Computer Architecture<br />

66<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Base Plus Displacement<br />

(RY+d)@<br />

edb → di<br />

pc → a → alu, ao<br />

+1 → alu<br />

ir<br />

add-n<br />

di → b → alu<br />

ry → a → alu<br />

na<br />

add-n<br />

abdm1<br />

t1 → a → pc<br />

abdm2<br />

na<br />

x-n<br />

abdm3<br />

edb → di<br />

t1 → b → ao, t2<br />

abdm4<br />

dr<br />

x-n<br />

abdm2<br />

abdm3<br />

abdm4<br />

sb<br />

Advance Computer Architecture<br />

67<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Register Indirect<br />

RY@<br />

edb → di<br />

ry → b → ao, t2<br />

adrm1<br />

dr<br />

x-n<br />

sb<br />

Advance Computer Architecture<br />

68<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Branch Instruction<br />

edb → irf<br />

ry → a → alu, ao<br />

+1 → alu<br />

brzz1<br />

ir<br />

add-n<br />

bc<br />

Z = 0 (no branch)<br />

Z = 1 (Branch)<br />

na<br />

irf → ire<br />

x-n<br />

t1 → b → pc<br />

brzz2<br />

ib<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

brzz3<br />

irf → ire<br />

t1 → b → pc<br />

ir<br />

add-n<br />

brzz4<br />

na<br />

x-n<br />

Advance Computer Architecture<br />

brzz4<br />

69<br />

ib


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

Mem → RX<br />

di → b → rx, t2<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

ldrm1<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

ldrm2<br />

LOAD<br />

ir<br />

add-x<br />

ldrm2<br />

na<br />

add-s<br />

ib<br />

Advance Computer Architecture<br />

70<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

RX → Mem<br />

rx → a → alu, do<br />

t2 → b → ao<br />

0 → alu<br />

STORE<br />

dw<br />

add-s<br />

strm1<br />

strm2<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

ir<br />

add-n<br />

irf → ire<br />

t1 → b → pc<br />

strm3<br />

na<br />

x-n<br />

ib<br />

strm2<br />

strm3<br />

Advance Computer Architecture<br />

71<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

RX OP Mem → Mem<br />

ADD, AND, SUB<br />

di → b → alu<br />

rx → a → alu<br />

na<br />

op-s<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

ir<br />

add-n<br />

oprm1 oprm2 oprm3 oprm3<br />

t1 → a → do<br />

t2 → b → ao<br />

dw<br />

x-s<br />

irf → ire<br />

t1 → b → pc<br />

oprm2 oprm3 oprm4 ib<br />

na<br />

x-n<br />

Advance Computer Architecture<br />

72<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

Mem → ALU TEST<br />

di → b → t2<br />

edb → if irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

test1<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

test2<br />

ir<br />

add-x<br />

test2<br />

na<br />

add-s<br />

ib<br />

Advance Computer Architecture<br />

73<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

RX OP RY → RY<br />

ADD, SUB, AND<br />

rx → a → alu<br />

ry → b → alu<br />

na<br />

op-s<br />

irf → ire<br />

t1 → a → pc<br />

na<br />

x-n<br />

oprr1<br />

oprr2<br />

edb → irf<br />

pc → a → alu, ao<br />

t1 → a → ry<br />

+1 → alu<br />

ir<br />

add-n<br />

oprr3<br />

ib<br />

oprr2<br />

oprr3<br />

Advance Computer Architecture<br />

74<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

RX → RY<br />

edb → irf<br />

pc → a → alu, ao<br />

ry → a → rx, t2<br />

+1 → alu<br />

ldrr1<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

LOAD<br />

ir<br />

add-x<br />

ldrr2<br />

na<br />

add-s<br />

RX → RY<br />

edb → irf<br />

pc → a → alu, ao<br />

rx → b → ry, t2<br />

+1 → alu<br />

strr1<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

STORE<br />

ir<br />

add-x<br />

strr2<br />

na<br />

add-s<br />

ldrr2 ib strr2 ib<br />

Advance Computer Architecture<br />

75<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

RY@ → RX<br />

RY+1 → RY<br />

edb → di<br />

ry → a → alu, ao<br />

+1 → alu POP<br />

dr<br />

add-n<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

ir<br />

add-n<br />

popr1 popr2 popr3 popr4<br />

di → b → rx<br />

t1 → a → ry<br />

na<br />

x-n<br />

irf → ire<br />

t1 → a → pc<br />

popr2 popr3 popr4 ib<br />

na<br />

x-n<br />

Advance Computer Architecture<br />

76<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Base Plus Displacement<br />

(RY+d)@<br />

edb → di<br />

pc → a → alu, ao<br />

+1 → alu<br />

ir<br />

add-n<br />

di → b → alu<br />

ry → a → alu<br />

na<br />

add-n<br />

abdm1<br />

t1 → a → pc<br />

abdm2<br />

na<br />

x-n<br />

abdm3<br />

edb → di<br />

t1 → b → ao, t2<br />

abdm4<br />

dr<br />

x-n<br />

abdm2<br />

abdm3<br />

abdm4<br />

sb<br />

Advance Computer Architecture<br />

77<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Register Indirect<br />

RY@<br />

edb → di<br />

ry → b → ao, t2<br />

adrm1<br />

dr<br />

x-n<br />

sb<br />

Advance Computer Architecture<br />

78<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Address Mode Sequences<br />

Branch Instruction<br />

edb → irf<br />

ry → a → alu, ao<br />

+1 → alu<br />

brzz1<br />

ir<br />

add-n<br />

bc<br />

Z = 0 (no branch)<br />

Z = 1 (Branch)<br />

na<br />

irf → ire<br />

x-n<br />

t1 → b → pc<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

brzz3<br />

ir<br />

add-n<br />

brzz2<br />

brzz2<br />

ib<br />

Advance Computer Architecture<br />

79<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

Mem → RX<br />

di → b → rx, t2<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

LOAD<br />

ir<br />

add-x<br />

Mem → RX<br />

rx → a → alu, do<br />

t2 → b → ao<br />

0 → alu<br />

STORE<br />

dw<br />

add-s<br />

ldrm1<br />

ldrm2<br />

strm1<br />

brzz3<br />

irf → ire<br />

t1 → b → pc<br />

t2 → a → alu<br />

0 → alu<br />

na<br />

add-s<br />

ldrm2<br />

ib<br />

Advance Computer Architecture<br />

80<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences with memory operand reference<br />

RX OP Mem → Mem<br />

di → b → alu<br />

rx → a → alu<br />

ADD, AND, SUB<br />

na<br />

op-s<br />

oprm1<br />

oprm2<br />

t1 → a → do<br />

t2 → b → ao<br />

dw<br />

x-s<br />

Mem → ALU<br />

di → b → t2<br />

edb → irf<br />

pc → a → alu, ao<br />

+1 → alu<br />

test1<br />

TEST<br />

ir<br />

add-x<br />

ldrm2<br />

oprm2<br />

brzz3<br />

Advance Computer Architecture<br />

81<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

RX → RY<br />

LOAD<br />

RX OP RY → RY ADD, SUB, AND<br />

edb → irf<br />

ir<br />

na<br />

rx → a → alu<br />

pc → a → alu, ao<br />

add-x<br />

op-s<br />

ry → b → alu<br />

ry → a → rx, t2<br />

+1 → alu<br />

oprr1 oprr2 ldrr1 ldrm2<br />

edb → irf<br />

pc → a → alu, ao<br />

t1 → a → ry<br />

+1 → alu<br />

oprr2<br />

ir<br />

add-n<br />

brzz2<br />

RX → RY<br />

edb → irf<br />

pc → a → alu, ao<br />

rx → b → ry, t2<br />

+1 → alu<br />

STORE<br />

ir<br />

add-x<br />

strr1<br />

ldrm2<br />

Advance Computer Architecture<br />

82<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Merged Level 2 <strong>Flowchart</strong>:<br />

Execution Sequences<br />

Execution sequences for Register-to-Register to and special instructions<br />

RY@ → RX<br />

RY+1 → RY<br />

edb → di<br />

ry → a → alu, ao<br />

+1 → alu<br />

POP<br />

dr<br />

add-n<br />

RY-1 → RY<br />

RY@ → RX<br />

ry → a → alu<br />

-1 → alu<br />

PUSH<br />

na<br />

add-n<br />

popr1<br />

di → b → rx<br />

t1 → a → ry<br />

popr2<br />

na<br />

x-n<br />

push1<br />

rx → a → do<br />

t1 → b → ao, ry<br />

push2<br />

dw<br />

x-n<br />

popr2 brzz3 push2 brzz3<br />

Advance Computer Architecture<br />

83<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Processor Block Diagram<br />

Control<br />

Store<br />

Next<br />

State<br />

Control<br />

IB<br />

SB<br />

BC<br />

DB<br />

Instruction<br />

Decoder<br />

Control Word<br />

Register<br />

OP TY NA<br />

Control Fields (dynamic)<br />

Branch<br />

Control<br />

Control word<br />

Decoders<br />

Control Fields<br />

(Static)<br />

IRE<br />

Control lines<br />

Condition<br />

Codes<br />

IRF<br />

Datapath<br />

Advance Computer Architecture<br />

84<br />

Computer<br />

Design<br />

Laboratory<br />

& Test


Thank You<br />

Advance Computer Architecture 85<br />

Computer<br />

Design<br />

Laboratory<br />

& Test

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!