26.06.2015 Views

Computer Architecture and Organization Chapter 5 ... - IIUSA

Computer Architecture and Organization Chapter 5 ... - IIUSA

Computer Architecture and Organization Chapter 5 ... - IIUSA

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.

5-1 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong><br />

<strong>Organization</strong><br />

Miles Murdocca <strong>and</strong> Vincent Heuring<br />

<strong>Chapter</strong> 5 – Datapath<br />

<strong>and</strong> Control<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-2 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

<strong>Chapter</strong> Contents<br />

5.1 Basics of the Microarchitecture<br />

5.2 The Datapath<br />

5.3 The Control Section – Microprogrammed<br />

5.4 The Control Section – Hardwired<br />

5.5 Case Study: The VHDL Hardware Description Language<br />

5.6 Case Study: What Happens when a <strong>Computer</strong> Boots Up?<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-3 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

The Fetch-Execute Cycle<br />

• The steps that the control unit carries out in executing a<br />

program are:<br />

(1) Fetch the next instruction to be executed from memory.<br />

(2) Decode the opcode.<br />

(3) Read oper<strong>and</strong>(s) from main memory, if any.<br />

(4) Execute the instruction <strong>and</strong> store results, if any.<br />

(5) Go to step 1.<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-4 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

High Level View of Microarchitecture<br />

• The microarchitecture consists of the control unit <strong>and</strong> the<br />

programmer-visible registers, functional units such as the<br />

ALU, <strong>and</strong> any additional registers that may be required by<br />

the control unit.<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-5 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

A More Detailed View<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-6 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

ARC Instruction Subset<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-7 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

ARC Instruction Formats<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-8 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

ARC<br />

Datapath<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-9 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

ARC ALU Operations<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-10 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Block Diagram of ALU<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-11 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Gate-Level Layout of Barrel Shifter<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-12 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Truth Table for (Most of the) ALU LUTs<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-13 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Design of Register %r1<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-14 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Outputs to Control Unit from<br />

Register %ir<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-15 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Microarchitecture<br />

of<br />

the ARC<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-16 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Microword Format<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-17 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Settings for the COND Field of the<br />

Microword<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-18 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

DECODE Format for Microinstruction<br />

Address<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-19 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Timing Relationships for the Registers<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-20 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Partial<br />

ARC<br />

Microprogram<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-21 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Partial ARC<br />

Microprogram<br />

(cont’)<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-22 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Translating the Microprogram<br />

0: R[ir] ← AND(R[pc],R[pc]); READ;<br />

1: DECODE; /256-way jump according to opcode<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-23 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

• Decoding tree for<br />

branch instructions<br />

shows corresponding<br />

microprogram lines:<br />

Branch Decoding<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-24 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Assembled<br />

ARC<br />

Microprogram<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-25 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Assembled<br />

ARC<br />

Microprogram<br />

(cont’)<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-26 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Example: Add the subcc Instruction<br />

• Consider adding instruction subcc (subtract) to the ARC instruction set.<br />

subcc uses the Arithmetic format <strong>and</strong> op3 = 001100.<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-27 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Branch Table<br />

• A branch table for trap h<strong>and</strong>lers <strong>and</strong> interrupt service routines:<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-28 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Microprogramming vs.<br />

Nanoprogramming<br />

(a) Microprogramming,<br />

(b) nanoprogramming.<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-29 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Hardware Description Language<br />

• HDL sequence<br />

for a resettable<br />

modulo 4<br />

counter.<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-30 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Circuit Derived from HDL<br />

• Logic design for a modulo 4 counter described in HDL.<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-31 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

HDL for<br />

ARC<br />

• HDL description of<br />

the ARC control<br />

unit.<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-32 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

HDL for ARC (cont’)<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-33 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

HDL ARC<br />

Circuit<br />

• The hardwired<br />

control section of<br />

the ARC:<br />

generation of the<br />

control signals.<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-34 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

HDL ARC Circuit (cont’)<br />

• Hardwired<br />

control<br />

section of<br />

the ARC:<br />

signals from<br />

the data<br />

section of<br />

the control<br />

unit to the<br />

datapath.<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-35 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

Case Study: The VHDL Hardware<br />

Description Language<br />

• The majority function. a) truth table, b) AND-OR implementation, c)<br />

black box representation.<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-36 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

VHDL Specification<br />

Interface specification for the majority component<br />

-- Interface<br />

entity MAJORITY is<br />

port<br />

(A_IN, B_IN, C_IN: in BIT<br />

F_OUT: out BIT);<br />

end MAJORITY;<br />

Behavioral model for the majority component<br />

-- Body<br />

architecture LOGIC_SPEC of MAJORITY is<br />

begin<br />

-- compute the output using a Boolean expression<br />

F_OUT


5-37 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

VHDL Specification (cont’)<br />

-- Package declaration, in library WORK<br />

package LOGIC_GATES is<br />

component AND3<br />

port (A, B, C : in BIT; X : out BIT);<br />

end component;<br />

component OR4<br />

port (A, B, C, D : in BIT; X : out BIT);<br />

end component;<br />

component NOT1<br />

port (A : in BIT; X : out BIT);<br />

end component;<br />

-- Interface<br />

entity MAJORITY is<br />

port<br />

(A_IN, B_IN, C_IN: in BIT<br />

F_OUT: out BIT);<br />

end MAJORITY;<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring


5-38 <strong>Chapter</strong> 5 - Datapath <strong>and</strong> Control<br />

VHDL Specification (cont’)<br />

-- Body<br />

-- Uses components declared in package LOGIC_GATES<br />

-- in the WORK library<br />

-- import all the components in WORK.LOGIC_GATES<br />

use WORK.LOGIC_GATES.all<br />

architecture LOGIC_SPEC of MAJORITY is<br />

-- declare signals used internally in MAJORITY<br />

signal A_BAR, B_BAR, C_BAR, I1, I2, I3, I4: BIT;<br />

begin<br />

-- connect the logic gates<br />

NOT_1 : NOT1 port map (A_IN, A_BAR);<br />

NOT_2 : NOT1 port map (B_IN, B_BAR);<br />

NOT_3 : NOT1 port map (C_IN, C_BAR);<br />

AND_1 : AND3 port map (A_BAR, B_IN, C_IN, I1);<br />

AND_2 : AND3 port map (A_IN, B_BAR, C_IN, I2);<br />

AND_3 : AND3 port map (A_IN, B_IN, C_BAR, I3);<br />

AND_4 : AND3 port map (A_IN, B_IN, C_IN, I4);<br />

OR_1 : OR3 port map (I1, I2, I3, I4, F_OUT);<br />

end LOGIC_SPEC;<br />

<strong>Computer</strong> <strong>Architecture</strong> <strong>and</strong> <strong>Organization</strong> by M. Murdocca <strong>and</strong> V. Heuring<br />

© 2007 M. Murdocca <strong>and</strong> V. Heuring

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

Saved successfully!

Ooh no, something went wrong!