You are on page 1of 46

Chapter 3

Register Transfer and Microoperations

12/17/20 1
contents
• Register Transfer Language

• Register Transfer

• Bus and Memory Transfers

• Arithmetic Microoperations

• Logic Microoperations

• Shift Microoperations

12/17/20 2
Register Transfer Language (RTL)

• Digital systems are composed of modules that are constructed


from digital components, such as registers, decoders, arithmetic
elements, and control logic
• Combinational and sequential circuits can be used to create
simple digital systems.
• Modules are interconnected with common data and control paths
to form a digital computer system
• Digital Computer: Registers + Microoperations +
Hardware module + Control Functions
• The operations executed on data stored in registers are called
microoperations
Examples are shift, count, clear, and load
3
cont.

• The internal hardware organization of a digital


computer is defined by specifying:
• The set of registers it contains and their
function
• The sequence of micro operations performed
on the binary information stored in the
registers
• The control that initiates the sequence of
micro operations

12/17/20 4
cont.

Register Transfer Language (RTL) : a symbolic


notation to describe a set of micro operation transfers
among registers
•For any function of the computer, the register transfer
language can be used to describe the (sequence of)
microoperations
– Define symbols for various types of micro
operations,
– Describe the hardware that implements these micro
operations

12/17/20 5
cont..
 Registers are designated by capital letters, sometimes
followed by numbers (e.g., A, R13, IR)
 Often the names indicate function:
• MAR-memory address register (holds an address for a
memory unit)
• PC-program counter
• IR-instruction register

12/17/20 6
 Registers and their contents can be viewed and
represented in various ways
 Designation of a register:
 a register
 portion of a register
 a bit of a register

12/17/20 7
cont…
• Copying the contents of one register to another is a register
transfer. It indicated as R2 ← R1
• This statement denotes a transfer of the content of register R1
into register R2
• In this case the contents of register R2 are copied (loaded)
from register R1
• A simultaneous transfer of all bits from the source R1 to the
destination register R2, during one clock pulse
• Note that this is a non-destructive; i.e. the contents of R1 are
not altered by copying (loading) them to R2

12/17/20 8
cont.
• Control functions
• Conditional transfer occurs only under a control condition
• Often actions need to only occur if a certain condition is true
o This is similar to an “if” statement in a programming
language
o In digital systems, this is often done via a control signal,
called a control function
• If the transfer is to occur only under a predetermined control
condition, designate it by If (P = 1) then (R2 ← R1) or,
• P:R2← R1,
• where P is a control function that can be either 0 or 1

12/17/20 9
Cont.
Hardware implementation of a controlled transfer: P: R2 ← R1

Block diagram: Control P Load


R2 Clock
Circuit

R1

t t+1

Timing diagram
Clock
Synchronized
Load
with the clock
Transfer occurs here

12/17/20 10
cont.
Basic Symbols for Register Transfers
Symbol Description Examples
Letters & Denotes a register MAR, R2
numerals
Parenthesis ( ) Denotes a part of a R2(0-7), R2(L)
register
Arrow ← Denotes transfer of R2 ← R1
information
Comma , Separates two R2 ← R1, R1 ← R2
microoperations

12/17/20 11
Bus and Memory Transfers
• In a digital system with many registers, it is impractical to have data and control lines to directly allow
each register to be loaded with the contents of every possible other registers
• To completely connect n registers  n(n-1) lines
• Rather than connecting wires between all registers, a common bus is used
• A bus structure consists of a set of common lines, one for each bit of a register
• Control signals determine which register is selected by the bus during each transfer
• Multiplexers can be used to construct a common bus
• Multiplexers select the source register whose binary information is then placed on the bus. The select
lines are connected to the selection inputs of the multiplexers and choose the bits of one register

• •

12
12/17/20 13
Cont.
• The selection lines choose the four bits of one register and
transfer them in to the four line common bus.

12/17/20 14
Cont..
• The transfer of information from a bus into one of many
destination registers is done:
– By connecting the bus lines to the inputs of all destination
registers and then:
– activating the load control of the particular destination
register selected
• We write: R2 ← C to symbolize that the content of register C
is loaded into the register R2 using the common system bus
• It is equivalent to: BUS ←C, (select C)
R2 ←BUS (Load R2)

12/17/20 15
Memory Transfer
• Memory read : Transfer from memory

• Memory write : Transfer to memory

• It is necessary to specify the address of M when writing /reading memory

• Assume that the address of a memory unit is stored in a register called the
Address Register AR
• Lets represent a Data Register with DR, then:

• Read: DR ← M[AR]
• Write: M[AR] ← DR

12/17/20 16
Microoperations

• The microoperations most often encountered in digital


computers are classified into four categories:
– Register transfer microoperations

– Arithmetic microoperations (on numeric data stored in the


registers)
– Logic microoperations (bit manipulations on non-numeric
data)
– Shift microoperations
12/17/20 17
Arithmetic Microoperations

• The basic arithmetic microoperations are: addition,


subtraction, increment, and decrement
• Addition Microoperation:

R3 ←R1+R2
• Subtraction Microoperation: 1’s complement

R3 ←R1-R2 or : R3 ←R1+R2+1

12/17/20 18
cont....
• One’s Complement Microoperation:
R2 ←R2
• Two’s Complement Microoperation:
R2 ←R2+1
• Increment Microoperation:
R2 ←R2+1
• Decrement Microoperation:
R2 ←R2-1

12/17/20 19
A binary adder is a digital circuit that generates the
arithmetic sum of two binary numbers of any length
• A binary added is constructed with full-adder circuits
connected in cascade
• An n-bit binary adder requires n full-adders

12/17/20 20
The addition and subtraction operations can be combined
into one common circuit by including an XOR gate with
each full-adder

12/17/20 21
The above circuit can implement all of the following
operations

Operation Microoperation A B M S

Add R3  R1 + R2 R1 R2 0 R3

Subtract R3  R1 – R2 R1 R2 1 R3

2’s Comp R2  R2 + 1 0 R2 1 R2
Increment R1  R1 + 1 1 R1 0 R1

Decrement R1  R1 – 1 R1 0 1 R1

12/17/20 22
Cont..
• The mode input M controls the operation
• When M=0, the circuit is an adder and
• B 0=B and the input carry is 0, then A+B
• When M=1, the circuit becomes subtractor
B 1=B’ and the input carry is 1, then A plus 2’complement
of B

12/17/20 23
Binary Incrementer
• The increment microoperation adds one to a number in a
register
• This can be implemented by using a binary counter – every
time the count enable is active, the count is incremented by one
• If the increment is to be performed independent of a particular
register, then use half-adders connected in cascade

12/17/20 24
Logic Microoperations
Logic operations specify binary operations for strings of bits stored in
registers and treat each bit separately
These operations process the data in the registers bit-wise. i.e. bit
by bit.
• There are many possible logic operations.
• However, the following are the most common (and useful).
– Clear (set to 0) F  0
– AND FAB
– OR FAB
– XOR FAB
– NOT FA
– Set (set to 1) F1
12/17/20 25
cont.
Example:
the XOR of R1 and R2 is symbolized by
P: R1 ← R1 ⊕ R2 •
R1 = 1010 and R2 = 1100
Content of R1 1010
Content of R2 1100
Content of R1 0110 after P = 1

12/17/20 26
There are 16 different logic operations that can be performed with two
binary variables

n binary variables →22n functions

12/17/20 27
12/17/20 28
Applications of logic microoperations

 Logic microoperations can be used to manipulate individual bits or a


portions of a word in a register
 Consider the data in a register A. In another register, B, is bit data that
will be used to modify the contents of A

12/17/20 29
Selective set
In a selective set operation, the bit pattern in B is used to set certain
bits in A

If a bit in B is set to 1, that same position in A gets set to 1, otherwise


that bit in A keeps its previous value

Selective complement
In a selective complement operation, the bit pattern in B is used to
complement certain bits in A

If a bit in B is set to 1, that same position in A gets complemented from


its original value, otherwise it is unchanged
12/17/20 30
selective-clear
In a selective clear operation, the bit pattern in B is used to clear certain bits in A

 If a bit in B is set to 1, that same position in A gets set to 0, otherwise it is


unchanged

Mask operation

In a mask operation, the bit pattern in B is used to clear certain bits in A

If a bit in B is set to 0, that same position in A gets set to 0, otherwise it is


unchanged
12/17/20 31
Clear operation
In a clear operation, if the bits in the same
position in A and B are the same, they are
cleared in A, otherwise they are set in A

12/17/20 32
Insert operation
An insert operation is used to introduce a specific bit pattern into A register,
leaving the other bit positions unchanged
This is done as
–A mask operation to clear the desired bit positions, followed by
–An OR operation to introduce the new bits into the desired positions
E.g.: Suppose you wanted to introduce 1010 into the low order four bits of
A: 1101 1000 1011 0001A (Original)
1101 1000 1011 1010A (Desired)

12/17/20 33
Shift Microoperations
• Used for serial transfer of data
• Also used in conjunction with arithmetic, logic,
and other data-processing operations
• The contents of the register can be shifted to the
left or to the right
• As being shifted, the first flip-flop receives its
binary information from the serial input
• Three types of shift: Logical, Circular, and
Arithmetic
12/17/20 34
Shift Microoperations
Symbolic
designation Description
R ← shl R Shift-left register R
R ← shr R Shift-right register R
R ← cil R Circular shift-left register R
R ← cir R Circular shift-right register R
R ← ashl R Arithmetic shift-left R
R ← ashr R Arithmetic shift-right R

12/17/20 35
Shift operation

12/17/20 36
Logical Shifts
• A logical Shift transfers 0 through the
serial input (Zero inserted)

12/17/20 37
Circular Shifts (Rotate Operation)

• Circulates the bits of the register around the two


ends without loss of information
• A right circular shift operation:

12/17/20 38
Arithmetic Shifts
• Shifts a signed binary number to the left or right
• An arithmetic shift-left multiplies a signed binary
number by 2: ashl (00100): 01000
• An arithmetic shift-right divides the number by 2
ashr (00100) : 00010
• An overflow may occur in arithmetic shift-left, and
occurs when the sign bit is changed (sign
reversal)

12/17/20 39
Right arithmetic shift operation

12/17/20 40
Cont.
 Arithmetic shift right: Rn-1 remains unchanged;
 Rn-2 receives Rn-1, Rn-3 receives Rn-2, so on.
 For a negative number, 1 is shifted from the sign
bit to the right. A negative number is represented
by the 2’s complement. The sign bit remained
unchanged.

12/17/20 41
Cont.
 Arithmetic Shift Right :
 Example 1
0100 (4) 
0010 (2)
 Example 2
1010 (-6) 
1101 (-3)

12/17/20 42
Cont.
 Arithmetic Shift Left :
 Example 1
0010 (2) 
0100 (4)
 Example 2
1110 (-2) 
1100 (-4)

12/17/20 43
Cont.
 Arithmetic Shift Left :
 Example 3
0100 (4) 
1000 (overflow)
 Example 4
1010 (-6) 
0100 (overflow)

12/17/20 44
Shift Microoperations

• Example: Assume R1=11001110, then:


– Arithmetic shift right once : R1 = 11100111
– Arithmetic shift right twice : R1 = 11110011
– Arithmetic shift left once : R1 = 10011100
– Arithmetic shift left twice : R1 = 00111000
– Logical shift right once : R1 = 01100111
– Logical shift left once : R1 = 10011100
– Circular shift right once : R1 = 01100111
– Circular shift left once : R1 = 10011101
12/17/20 45
The end

12/17/20 46

You might also like