Register transfer & microoperations moris mano ch 04

17
1 Register Transfer & -operations Computer Organization Computer Architectures Lab REGISTER TRANSFER AND MICROOPERATIONS • Register Transfer Language • Register Transfer • Bus and Memory Transfers • Arithmetic Microoperations • Logic Microoperations • Shift Microoperations • Arithmetic Logic Shift Unit

Transcript of Register transfer & microoperations moris mano ch 04

Page 1: Register transfer & microoperations    moris mano ch 04

1Register Transfer & -operations

Computer Organization Computer Architectures Lab

REGISTER TRANSFER AND MICROOPERATIONS

• Register Transfer Language

• Register Transfer

• Bus and Memory Transfers

• Arithmetic Microoperations

• Logic Microoperations

• Shift Microoperations

• Arithmetic Logic Shift Unit

Page 2: Register transfer & microoperations    moris mano ch 04

2Register Transfer & -operations

Computer Organization Computer Architectures Lab

MICROOPERATION

An elementary operation performed during one clock pulse, on the information stored in one or more registers

R f(R, R)

f: shift, count, clear, load, add,...

ALU(f)

Registers(R)

1 clock cycle

Register Transfer Language

Page 3: Register transfer & microoperations    moris mano ch 04

3Register Transfer & -operations

Computer Organization Computer Architectures Lab

REGISTER TRANSFER LANGUAGE

- Set of registers and their functions- Microoperations Set Set of allowable microoperations provided by the organization of the computer- Control signals that initiate the sequence of microoperations

----> Register transfer language- A symbolic language - A convenient tool for describing the internal organization of digital computers- Can also be used to facilitate the design process of digital systems.

Definition of the (internal) organization of a computer

For any function of the computer, a sequence ofmicrooperations is used to describe it

Register Transfer Language

Page 4: Register transfer & microoperations    moris mano ch 04

4Register Transfer & -operations

Computer Organization Computer Architectures Lab

REGISTER TRANSFER

R1 Register

Numbering of bits

Showing individual bits

SubfieldsPC(H) PC(L)

15 8 7 0

- a register - portion of a register - a bit of a register

Common ways of drawing the block diagram of a register

A simultaneous transfer of all bits from the source to the destination register, during one clock pulse

R2 R1

A binary condition(p=1) which determines when the transfer is to occur

If (p=1) then (R2 R1)

P: R2 R1

7 6 5 4 3 2 1 0

R215 0

Designation of a register

Representation of a transfer(parallel)

Representation of a controlled(conditional) transfer

Register Transfer

Page 5: Register transfer & microoperations    moris mano ch 04

5Register Transfer & -operations

Computer Organization Computer Architectures Lab

HARDWARE IMPLEMENTATION OF CONTROLLED TRANSFERS

Basic Symbols for Register Transfers

Implementation of controlled transfer P: R2 R1

Block diagram

Timing diagram

Clock

Capital letters Denotes a register MAR, R2and numerals Parentheses ( ) Denotes a part of a register R2(0-7), R2(L)

Arrow Denotes transfer of information R2 R1Colon : Denotes termination of control function P:Comma , Separates two micro-operations A B, B A

Symbols Description Meaning

Register Transfer

Transfer occurs here

R2

R1

Control Circuit

LoadP

n

Clock

Load

t t+1

Page 6: Register transfer & microoperations    moris mano ch 04

6Register Transfer & -operations

Computer Organization Computer Architectures Lab

BUS AND MEMORY TRANSFER

Bus is a path(of a group of wires) over which information is transferred, from any of several sources to any of several destinations.

From a register to bus: BUS <- R

1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4Register A Register B Register C Register D

B C D1 1 1

4 x1MUX

B C D2 2 2

4 x1MUX

B C D3 3 3

4 x1MUX

B C D4 4 4

4 x1MUX

4-line bus

xy

select

0 0 0 0

Register A Register B Register C Register D

Bus lines

Bus and Memory Transfers

Page 7: Register transfer & microoperations    moris mano ch 04

7Register Transfer & -operations

Computer Organization Computer Architectures Lab

TRANSFER FROM BUS TO A DESTINATION REGISTER

Three-State Bus Buffers

Bus line with three-state buffers

Reg. R0 Reg. R1 Reg. R2 Reg. R3

Bus lines

2 x 4Decoder

Load

D0 D1 D2 D3zw

Select E (enable)

Output Y=A if C=1High-impedence if C=0Normal input A

Control input C

SelectEnable

0123

S0S1

A0B0C0D0

Bus line for bit 0

Bus and Memory Transfers

Page 8: Register transfer & microoperations    moris mano ch 04

8Register Transfer & -operations

Computer Organization Computer Architectures Lab

MEMORY TRANSFERS

Summary of Register Transfer Microoperations

AR Memoryunit

Read

Write

DR

Memory read micro-op: DR M ( DR M[AR] ) Memory write micro-op: M DR ( M[AR] DR )

Bus and Memory Transfers

A B Transfer content of reg. B into reg. AAR DR(AD) Transfer content of AD portion of reg. DR into reg. ARA constant Transfer a binary constant into reg. AABUS R1, Transfer content of R1 into bus A and, at the same time, R2 ABUS transfer content of bus A into R2 AR Address registerDR Data registerM[R] Memory word specified by reg. RM Equivalent to M[AR]DR M Memory read operation: transfers content of memory word specified by AR into DRM DR Memory write operation: transfers content of DR into memory word specified by AR

Page 9: Register transfer & microoperations    moris mano ch 04

9Register Transfer & -operations

Computer Organization Computer Architectures Lab

ARITHMETIC MICROOPERATIONS

* Summary of Arithmetic Micro-Operations

Four types of microoperations- Register transfer microoperations- Arithmetic microoperations- Logic microoperations- Shift microoperations

Arithmetic Microoperations

R3 R1 + R2 Contents of R1 plus R2 transferred to R3R3 R1 - R2 Contents of R1 minus R2 transferred to R3R2 R2’ Complement the contents of R2 R2 R2’+ 1 2's complement the contents of R2 (negate)R3 R1 + R2’+ 1 subtractionR1 R1 + 1 IncrementR1 R1 - 1 Decrement

Page 10: Register transfer & microoperations    moris mano ch 04

10Register Transfer & -operations

Computer Organization Computer Architectures Lab

BINARY ADDER

FA

B0 A0

S0

C0FA

B1 A1

S1

C1FA

B2 A2

S2

C2FA

B3 A3

S3

C3

C4

Binary Adder-Subtractor

FA

B0 A0

S0

C0C1FA

B1 A1

S1

C2FA

B2 A2

S2

C3FA

B3 A3

S3C4

M

Binary Incrementer

HAx y

C S

A0 1

S0

HAx y

C S

A1

S1

HAx y

C S

A2

S2

HAx y

C S

A3

S3C4

Binary Adder

Arithmetic Microoperations

Page 11: Register transfer & microoperations    moris mano ch 04

11Register Transfer & -operations

Computer Organization Computer Architectures Lab

ARITHMETIC CIRCUIT

S1S00123

4x1MUX

X0

Y0

C0

C1D0FA

S1S00123

4x1MUX

X1

Y1

C1

C2D1FA

S1S00123

4x1MUX

X2

Y2

C2

C3D2FA

S1S00123

4x1MUX

X3

Y3

C3

C4D3FA

Cout

A0

B0

A1

B1

A2

B2

A3

B3

0 1

S0S1Cin

S1 S0 Cin Y Output Microoperation0 0 0 B D = A + B Add0 0 1 B D = A + B + 1 Add with carry0 1 0 B’ D = A + B’ Subtract with borrow0 1 1 B’ D = A + B’+ 1 Subtract1 0 0 0 D = A Transfer A 1 0 1 0 D = A + 1 Increment A1 1 0 1 D = A - 1 Decrement A1 1 1 1 D = A Transfer A

Arithmetic Microoperations

Page 12: Register transfer & microoperations    moris mano ch 04

12Register Transfer & -operations

Computer Organization Computer Architectures Lab

LOGIC MICROOPERATIONS

Specify binary operations on the strings of bits in registers. - useful for bit manipulations on binary data AND: Mask out certain group of bits OR : Merge binary or character data

- useful for making logical decisions based on the bit value

Logic Microoperations

ApplicationsManipulating individual bits or a field(portion) of a word in a register

- Selective-set A + B- Selective-complement A B- Selective-clear A • B- Mask (Delete) A • B- Insert (A • B) + C- Compare A B- Packing (A • B) + C- Unpacking A • B

Page 13: Register transfer & microoperations    moris mano ch 04

13Register Transfer & -operations

Computer Organization Computer Architectures Lab

LIST OF LOGIC MICROOPERATIONS• List of Logic Micro-Operations - 16 different logic operations with 2 binary vars. - n binary vars -> functions2 2 n

• Truth tables for 16 functions of 2 variables and the corresponding 16 logic micro-operations

BooleanFunction

Micro-Operations Namex 0 0 1 1

y 0 1 0 1

Logic Microoperations

0 0 0 0 F0 = 0 F 0 Clear0 0 0 1 F1 = xy F A B AND0 0 1 0 F2 = xy' F A B’0 0 1 1 F3 = x F A Transfer A0 1 0 0 F4 = x'y F A’ B0 1 0 1 F5 = y F B Transfer B0 1 1 0 F6 = x y F A B Exclusive-OR0 1 1 1 F7 = x + y F A B OR1 0 0 0 F8 = (x + y)' F A B)’ NOR1 0 0 1 F9 = (x y)' F (A B)’ Exclusive-NOR1 0 1 0 F10 = y' F B’ Complement B1 0 1 1 F11 = x + y' F A B1 1 0 0 F12 = x' F A’ Complement A1 1 0 1 F13 = x' + y F A’ B1 1 1 0 F14 = (xy)' F (A B)’ NAND1 1 1 1 F15 = 1 F all 1's Set to all 1's

Page 14: Register transfer & microoperations    moris mano ch 04

14Register Transfer & -operations

Computer Organization Computer Architectures Lab

HARDWARE IMPLEMENTATION OF LOGIC MICROOPERATIONS

0 0 F = A B AND0 1 F = AB OR1 0 F = A B XOR1 1 F = A’ Complement

S1 S0 Output -operation Function table

Logic Microoperations

BA

SS

F

10

i

ii 0

1

2

3

4 X 1MUX

Select

Page 15: Register transfer & microoperations    moris mano ch 04

15Register Transfer & -operations

Computer Organization Computer Architectures Lab

SHIFT MICROOPERATIONS

- Logical shift : shift in a 0 into the extreme flip-flop - Circular shift : circulates the bits of the register around the two ends - Arithmetic shift : shifts a signed number (shift with sign extension) Left shift -> multiplied by 2 Right shift -> divided by 2

Arithmetic shifts for signed binary numbers

Shift Micro-Operations

- Arithmetic shift-left Overflow V = Rn-1 Rn-2

- Arithmetic shift-right

Shift Microoperations

Symbol DescriptionR shl R Shift-left register RR shr R Shift-right register RR cil R Circular shift-left register RR cir R Circular right-shift register RR ashl R Arithmetic shift-left register RR ashr R Arithmetic shift-right register R

Shifts

Rn-1 Rn-2 R1 R0

Signbit

Page 16: Register transfer & microoperations    moris mano ch 04

16Register Transfer & -operations

Computer Organization Computer Architectures Lab

HARDWARE IMPLEMENTATION OF SHIFT MICROOPERATIONSShift Microoperations

S01

H0MUX

S01

H1MUX

S01

H2MUX

S01

H3MUX

Select 0 for shift right (down) 1 for shift left (up)Serial

input (IR)

A0

A1

A2

A3

Serialinput (IL)

Page 17: Register transfer & microoperations    moris mano ch 04

17Register Transfer & -operations

Computer Organization Computer Architectures Lab

ARITHMETIC LOGIC SHIFT UNIT

S3 S2 S1 S0 Cin Operation Function0 0 0 0 0 F = A Transfer A0 0 0 0 1 F = A + 1 Increment A0 0 0 1 0 F = A + B Addition0 0 0 1 1 F = A + B + 1 Add with carry0 0 1 0 0 F = A + B’ Subtract with borrow0 0 1 0 1 F = A + B’+ 1 Subtraction0 0 1 1 0 F = A - 1 Decrement A0 0 1 1 1 F = A TransferA0 1 0 0 X F = A B AND0 1 0 1 X F = A B OR0 1 1 0 X F = A B XOR0 1 1 1 X F = A’ Complement A1 0 X X X F = shr A Shift right A into F1 1 X X X F = shl A Shift left A into F

Shift Microoperations

ArithmeticCircuit

LogicCircuit

C

C 4 x 1MUX

Select

0123

F

S3S2S1S0

BA

i

A

D

A

E

shrshl

i+1 i

ii

i+1i-1

i

i