+ All Categories
Home > Documents > CHAPTER XI DATAPATH ELEMENTS - gatech.edu

CHAPTER XI DATAPATH ELEMENTS - gatech.edu

Date post: 05-Dec-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
21
R.M. Dansereau; v.1.0 INTRO. TO COMP. ENG. CHAPTER XI-1 DATAPATH ELEMENTS •CHAPTER XI CHAPTER XI DATAPATH ELEMENTS READ DATAPATH ELEMENTS FREE-DOC ON COURSE WEBPAGE
Transcript
Page 1: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-1

DATAPATH ELEMENTS

•CHAPTER XI

CHAPTER XI

DATAPATH ELEMENTS

READ DATAPATH ELEMENTS FREE-DOC ON COURSE WEBPAGE

Page 2: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-2

DATAPATH ELEMENTSINTRODUCTION

DATAPATH ELEMENTS

•DATAPATH ELEMENTS-INTRODUCTION

• So far we have discussed many small components and building

blocks.

• One final step in our building blocks before we can start to piece

together a microprocessor is various datapath elements.

• We have already discussed portions of these datapath elements in terms

of other components and building blocks.

• We will now consider some of these components and building blocks in

ways that will make the design of a microprocessor a little easier in the

next chapter.

Page 3: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-3

REGISTER FILESREGISTER LAYOUT

DATAPATH ELEMENTS

•DATAPATH ELEMENTS-INTRODUCTION

• A general register file with registers that are each -bits wide

is illustrated below.

• The and signals indicate which register to read/write, respectively.

m n× m n

Register 0

Register 1

Register m -1

DataOut

DataIn

nn

w0

w1

wm 1–

r1

rm 1–

r0

rk wj

Page 4: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-4

REGISTER FILESWRITE DECODER

DATAPATH ELEMENTS

•DATAPATH ELEMENTS•REGISTER FILES

-REGISTER LAYOUT

• For writing to a register, we include a write address with decoder.

• A given Write Address (with Write Enable = 1) selects which register, 0

through m - 1, to store the input from Data In.

Register 0

Register 1

Register m -1

DataOut

DataIn

nnw0

w1

wm 1–

Dec

od

er

01

m-1

WriteAddress

WriteEnable

r1

rm 1–

r0

Page 5: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-5

REGISTER FILESREAD DECODER

DATAPATH ELEMENTS

•DATAPATH ELEMENTS•REGISTER FILES

-REGISTER LAYOUT-WRITE DECODER

• For reading from a register, we include a read address with decoder.

• A given Read Address (with Read Enable = 1) selects which register, 0

through m - 1, to read from and output to Data Out.

• Could have multiple data outputs with multiple read address decoders.

Register 0

Register 1

Register m -1

DataOut

DataIn

nn

w0

w1

wm 1–

r0

r1

rm 1–

Dec

od

er

01

m-1

ReadAddress

ReadEnable

Page 6: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-6

REGISTER FILES32-BIT WORD, 32 REGISTERS

DATAPATH ELEMENTS

•REGISTER FILES-REGISTER LAYOUT-WRITE DECODER-READ DECODER

• For the upcoming datapath designs in the next chapter, we want to

have a 32x32 register file with one write input and two read outputs.

• Note: Two data outputs implemented with two read address decoders.

Zdi

Xdo

Ydo

Zwa Xra Yra

Zdi - Z data in

Xdo - X data out

Ydo - Y data out

Zwa - Z write address

Xra - X read address

Yra - Y read address

32

32

32

32x32register

file

5 5 5

rwe

rwe - register write enable

Clk

Page 7: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-7

ADDER/SUBTRACTORGENERAL UNIT DIAGRAM

DATAPATH ELEMENTS

•REGISTER FILES-WRITE DECODER-READ DECODER-32X32 REGISTER FILE

• An n-bit adder/subtractor unit is often illustrated as follows.

• This unit would have n full-adders internally.

adder/subtratorunit

A B

Fn

nn

a s⁄enable

Select eitheraddition (0)

or subtraction (1)

Enable unit (1)or disable unit (0)

Page 8: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-8

ADDER/SUBTRACTOROTHER UNIT SIGNALS

DATAPATH ELEMENTS

•REGISTER FILES•ADDER/SUBTRACTOR

-GENERAL UNIT DIAGRAM

• Other signals often included with an adder/subtractor are shown

below.

A B

Fn

nn

a s⁄enable

Cin

Carry-inor Borrow-in

Carry-outor Borrow-out

Cout

Flags- Overflow- Negative (F<0?)- Zero (F=0?)

Page 9: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-9

LOGICAL UNITINTRODUCTION

DATAPATH ELEMENTS

•REGISTER FILES•ADDER/SUBTRACTOR

-GENERAL UNIT DIAGRAM-OTHER UNIT SIGNALS

• A useful unit would be one that can take two n-bit inputs and perform

some logical operation between each of the bits to get an n-bit output.

• For example, given the 8-bit values 0001 1110 and 1001 1000, we might

want to find the bit-wise logical OR.

• Or similarly, the bit-wise logical AND of the two 8-bit values.

• These types of operations are often used for masking and setting bits.

0001 11101001 1000

1001 1110

bit-wiselogical OR

0001 11101001 1000

0001 1000

bit-wiselogical AND

Page 10: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-10

LOGICAL UNITGENERAL UNIT DIAGRAM

DATAPATH ELEMENTS

•REGISTER FILES•ADDER/SUBTRACTOR•LOGICAL UNIT

-INTRODUCTION

• Below is a general unit diagram for an n-bit logical unit.

• Logical operations, such as AND/OR/NOT/NAND/NOR/etc., are done for

each bit of and to form .

logicalunit

A B

Fn

nn

LFenable4

Enable unit (1)or disable unit (0)

Logical Function (LF)on 2 bits

A B F

Page 11: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-11

LOGICAL UNIT4-BIT LOGICAL FUNCTIONS (LF)

DATAPATH ELEMENTS

•ADDER/SUBTRACTOR•LOGICAL UNIT

-INTRODUCTION-GENERAL UNIT DIAGRAM

• Recall the possible logic functions for two bits, and .

• We can use the column Fn as the 4-bit LF input for the logical unit.

0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

A B

A B F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15

0 1AB A B+

A B⊕AB

A B+

A B B A

A B⊕Null IdentityInhibition Implication

Page 12: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-12

LOGICAL UNITBIT SLICE IMPLEMENTATION

DATAPATH ELEMENTS

•LOGICAL UNIT-INTRODUCTION-GENERAL UNIT DIAGRAM-4-BIT LOGICAL FUNCTIONS

• A number of internal implementations exist for the logical unit.

• The easiest is to use a 4-to-1 multiplexer for each bit as follows

4X1

MU

LTIP

LEX

ER

S1 S0

0

1

2

3

F

A B

LF0

LF1

LF2

LF3

E

Module Enable

Note: When you look ata design for each bit,

it is known as a

bit slice

Require n of theseto form our n-bit

logical unit.Take Fn columnfrom previous

slide as LF input

Page 13: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-13

LOGICAL UNITBIT SLICE IMPLEMENTATION

DATAPATH ELEMENTS

•LOGICAL UNIT-GENERAL UNIT DIAGRAM-4-BIT LOGICAL FUNCTIONS-BIT SLICE IMPLEMENTAT.

• The following are example LF inputs for a logical unit bit slice.

4X1

MU

LTIP

LEX

ER

S1 S0

0

1

2

3

F

A B

0

1

1

1

E

Module EnableORfunction

4X1

MU

LTIP

LEX

ER

S1 S0

0

1

2

3

F

A B

1

1

1

0

E

Module EnableNANDfunction

ABA B+

Page 14: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-14

SHIFT UNITINTRODUCTION

DATAPATH ELEMENTS

•LOGICAL UNIT-GENERAL UNIT DIAGRAM-4-BIT LOGICAL FUNCTIONS-BIT SLICE IMPLEMENTAT.

• We have already discussed the bulk about shift units in previous

chapters.

• As given in the Free-Doc, there are different types of shift units.

• Logical shift

• Arithmetic shift

• Circular shift (this is just a rotate unit)

• We want to discuss an implementation, the barrel shifter, that will be

useful in our single cycle datapath computer we will design next

chapter.

Page 15: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-15

SHIFT UNITGENERAL UNIT DIAGRAM

DATAPATH ELEMENTS

•LOGICAL UNIT•SHIFT UNIT

-INTRODUCTION

• Below is a general unit diagram for an n-bit shift unit.

• Notice that the n-bit value A will be shifted according to the distance

indicated with signed number B.

shiftunit

A B

Fn

1+log2nn

STenable2

Enable unit (1)or disable unit (0)

Shift type0 = logical1 = arithmetic2 = rotate

n-bit valueto shift

Distance of shift(signed #)+’ive = right-’ive = left

Page 16: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-16

SHIFT UNITP-SHIFTER BIT SLICE

DATAPATH ELEMENTS

•LOGICAL UNIT•SHIFT UNIT

-INTRODUCTION-GENERAL UNIT DIAGRAM

• Previously, we discussed the p-shifter but not its implementation.

• A p-shifter shifts the value to the left or right by p-bits.

• A bit slice view of a p-shifter for nth bit could be as follows.

• Notice that this can ONLY shift by p-bits. It is hardwired to shift p-bits.

4X1MULTIPLEXER

S1S0

0123

F

sd

An+p

E

Module E

nable

An-p An s0 = no shift1 = shift

d0 = left1 = right

Page 17: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-17

SHIFT UNIT2K-SHIFTER BIT SLICEDATAPATH ELEMENTS

•SHIFT UNIT-INTRODUCTION-GENERAL UNIT DIAGRAM-P-SHIFTER BIT SLICE

• A useful type of p-shifter is when p = 2k for some positive integer k.

• A 2k-shifter allows use to build a barrel shifter.

4X1MULTIPLEXER

S1S0

0123

F

sd

An+2k

EM

odule Enable

An-2k An s

0 = no shift1 = shift

d0 = left1 = right

Page 18: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-18

SHIFT UNITBARREL SHIFTER

DATAPATH ELEMENTS

•SHIFT UNIT-GENERAL UNIT DIAGRAM-P-SHIFTER BIT SLICE-2K-SHIFTER BIT SLICE

• We want to be able to shift a

vector by an arbitrary distance

instead of hardwired like the

p-shifter and 2k-shifter.

• The top level can shift A by n

bits, depending on sn.

• Subsequent levels can shift

result by n/2 bits, depending

on their input sq.

2n-shifter

21-shifter

20-shifter

F

A

snd

s0

s1

Page 19: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-19

SHIFT UNITSAMPLE BARREL SHIFTER

DATAPATH ELEMENTS

•SHIFT UNIT-P-SHIFTER BIT SLICE-2K-SHIFTER BIT SLICE-BARREL SHIFTER

• We will do some examples

with the following arbitrary

n-shifter on a 16-bit input.

• Note that this barrel shifter

can shift the input by 15 bits

in either direction.

23-shifter

21-shifter

20-shifter

F

A16

s3d

s0

s1

22-shifters2

16

16

16

16

Page 20: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-20

SHIFT UNITBARREL SHIFTER: EXAMPLE #1

DATAPATH ELEMENTS

•SHIFT UNIT-2K-SHIFTER BIT SLICE-BARREL SHIFTER-SAMPLE BARREL SHIFTER

• For example, consider the

input of

0000 0000 0000 0001

• If we want to shift this value

to the left by 13, we need

the input

d = 0

s = (s3s2s1s0) = 1101

• Note: This example is for a

logical shift.

23-shifter

21-shifter

20-shifter

0000 0000 0000 0001

s3=1d=0

s0=1

s1=0

22-shifters2=1

0010 0000 0000 0000

0000 0001 0000 0000

0001 0000 0000 0000

0001 0000 0000 0000

Page 21: CHAPTER XI DATAPATH ELEMENTS - gatech.edu

R.M. Dansereau; v.1.0

INTRO. TO COMP. ENG.CHAPTER XI-21

SHIFT UNITBARREL SHIFTER: EXAMPLE #2

DATAPATH ELEMENTS

•SHIFT UNIT-BARREL SHIFTER-SAMPLE BARREL SHIFTER-BARREL SHIFTER EX. #1

• As another example,

consider the input of

1001 0100 1110 0001

• If we want to shift this value

to the right by 6, we need

the input

d = 1

s = (s3s2s1s0) = 0110

• Note: This example is for a

logical shift.

23-shifter

21-shifter

20-shifter

1001 0100 1110 0001

s3=0d=1

s0=0

s1=1

22-shifters2=1

0000 0010 0101 0011

1001 0100 1110 0001

0000 1001 0100 1110

0000 0010 0101 0011


Recommended