COA_UNIT-1
COA_UNIT-1
COA_UNIT-1
Unit – 1
1
REGISTER TRANSFER AND MICROOPERATIONS
• Register Transfer
• Arithmetic Microoperations
• Logic Microoperations
• Shift Microoperations
• Typically,
– What operations are performed on the data in the registers
– What information is passed between registers
Register Transfer Language
MICROOPERATIONS (1)
MICROOPERATION (2)
Registers ALU
(R) (f) 1 clock cycle
R f(R, R)
f: shift, load, clear, increment, add, subtract, complement,
and, or, xor, …
Register Transfer Language
- Microoperations set
DESIGNATION OF REGISTERS
MAR
– Registers may also be represented showing the bits of data they contain
Register Transfer Language
DESIGNATION OF REGISTERS
• Designation of a register
- a register
- portion of a register
- a bit of a register
15 0 15 8 7 0
R2 PC(H) PC(L)
Numbering of bits Subfields
Register Transfer
REGISTER TRANSFER
R2 R1
REGISTER TRANSFER
R3 R5
– the data lines from the source register (R5) to the destination
register (R3)
– Parallel load in the destination register (R3)
– Control lines to perform the action
Register Transfer
CONTROL FUNCTIONS
• Often actions need to only occur if a certain condition is true
• This is similar to an “if” statement in a programming language
• In digital systems, this is often done via a control signal, called
a control function
– If the signal is 1, the action takes place
• This is represented as:
P: R2 R1
t t+1
Timing diagram
Clock
Load
Transfer occurs here
• The same clock controls the circuits that generate the control function
and the destination register
• Registers are assumed to use positive-edge-triggered flip-flops
Register Transfer
SIMULTANEOUS OPERATIONS
P: R3 R5, MAR IR
CONNECTING REGISTRS
Bus lines
B1 C1 D 1 B2 C2 D 2 B3 C3 D 3 B4 C 4 D 4
0 0 0 0
4 x1 4 x1 4 x1 4 x1
MUX MUX MUX MUX
x
select
y
4-line bus
Bus and Memory Transfers
Load
Reg. R0 Reg. R1 Reg. R2 Reg. R3
D 0 D1 D2 D 3
z E (enable)
Select 2x4
w
Decoder
S0 0
Select 1
S1 2
Enable 3
Bus and Memory Transfers
MEMORY (RAM)
• Memory (RAM) can be thought as a sequential circuits
containing some number of registers
• These registers hold the words of memory
• Each of the r registers is indicated by an address
• These addresses range from 0 to r-1
• Each register (word) can hold n bits of data
• Assume the RAM contains r = 2k words. It needs the
following
– n data input lines data input lines
– n data output lines
n
– k address lines
– A Read control line address lines
– A Write control line k
RAM
Read
unit
Write
n
data output lines
Bus and Memory Transfers
MEMORY TRANSFER
• Collectively, the memory is viewed at the register level as
a device, M.
• Since it contains multiple locations, we must specify
which address in memory we will be using
• This is done by indexing memory references
MEMORY READ
MEMORY WRITE
M[MAR] R1
MICROOPERATIONS
ARITHMETIC MICROOPERATIONS
• The basic arithmetic microoperations are
– Addition
– Subtraction
– Increment
– Decrement
C4 S3 S2 S1 S0
Binary Adder-Subtractor
B3 A3 B2 A2 B1 A1 B0 A0
C3 C2 C1 C0
FA FA FA FA
C4 S3 S2 S1 S0
Binary Incrementer
A3 A2 A1 A0 1
x y x y x y x y
HA HA HA HA
C S C S C S C S
C4 S3 S2 S1 S0
Arithmetic Microoperations
ARITHMETIC CIRCUIT
Cin
S1
S0
A0 X0 C0
S1 D0
S0 FA
B0 0 4x1 Y0 C1
1 MUX
2
3
A1 X1 C1
S1 FA D1
S0
B1 0 4x1 Y1 C2
1 MUX
2
3
A2 X2 C2
S1 FA D2
S0
B2 0 4x1 Y2 C3
1 MUX
2
3
A3 X3 C3
S1 D3
S0 FA
B3 0 4x1 Y3 C4
1 MUX
2
3 Cout
0 1
LOGIC MICROOPERATIONS
• Specify binary operations on the strings of bits in registers
– Logic microoperations are bit-wise operations, i.e., they work on the
individual bits of data
– useful for bit manipulations on binary data
– useful for making logical decisions based on the bit value
• There are, in principle, 16 different logic functions that can
be defined over two binary input variables
A B F0 F1 F2 … F13 F14 F15
0 0 0 0 0 … 1 1 1
0 1 0 0 0 … 1 1 1
1 0 0 0 1 … 0 1 1
1 1 0 1 0 … 1 0 1
LOGIC MICROOPERATIONS
• For example, the exclusive-OR microoperation with the contents of two
registers R1 and R2 is symbolized by the statement P: R1 ← R1 ⊕ R2
• The content of R1, after the execution of the microoperation, is equal to the
bit-by-bit exclusive-OR operation on pairs of bits in R2 and previous values of
R1.
• The logic microoperations are seldom used in scientific computations, but they
are very useful for bit manipulation of binary data and for making logical
decisions.
Logic Microoperations
Ai
0
Bi
1
4X1 Fi
MUX
2
3 Select
S1
S0
Function table
S1 S0 Output -operation
0 0 F=AB AND
0 1 F = AB OR
1 0 F=AB XOR
1 1 F = A’ Complement
Logic Microoperations
HARDWARE IMPLEMENTATION OF LOGIC MICROOPERATIONS
• Figure (Previous Slide) shows one stage of a circuit that generates the four
basic logic microoperations.
• It consists of four gates and a multiplexer. Each of the four logic operations is
generated through a gate that performs the required logic.
• The outputs of the gates are applied to the data inputs of the multiplexer. The two
selection inputs S1 and S0 choose one of the data inputs of the multiplexer and direct
its value to the output.
• The diagram shows one typical stage with subscript i. For a logic circuit with n
bits, the diagram must be repeated n times for i = 0, 1, 2, ... , n - 1.
• The selection variables are applied to all stages. The function table in Fig. lists the
logic microoperations obtained for each combination of the selection variables.
Logic Microoperations
– Selective-set AA+B
– Selective-complement AAB
– Selective-clear A A • B’
– Mask AA•B
– Clear AAB
– Insert A (A • B) + C
– Compare AAB
– ...
Logic Microoperations
SELECTIVE SET
1100 At
1010 B (logic operand)
1110 At+1 (A A + B)
SELECTIVE COMPLEMENT
1100 At
1010 B
0110 At+1 (A A B)
SELECTIVE CLEAR
1100 At
1010 B
0100 At+1 (A A B’)
MASK OPERATION
• In a mask operation, the bit pattern in B is used to clear certain
bits in A
1100 At
1010 B
1000 At+1 (A A B)
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
– Example
» Suppose you wanted to introduce 1010 into the low order
four bits of A: 1101 1000 1011 0001 A (Original)
1101 1000 1011 1010 A (Desired)
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
Shift Microoperations
• Shift microoperations are used for serial transfer of data. They are also
used in conjunction with arithmetic, logic, and other data-processing
operations.
• The contents of a register can be shifted to the left or the right. At the same
time that the bits are shifted, the first flip-flop receives its binary information
from the serial input.
• During a shift-left operation the serial input transfers a bit into the rightmost
position.
• During a shift-right operation the serial input transfers a bit into the leftmost
position.
• The information transferred through the serial input determines the type of
shift.
LOGICAL SHIFT
• In a logical shift the serial input to the shift is a 0.
CIRCULAR SHIFT
• In a circular shift the serial input is the bit that is shifted out
of the other end of the register.
• The leftmost bit in a register holds the sign bit, and the
remaining bits hold the number.
• Bit Rn-1 in the leftmost position holds the sign bit. Rn-2 is the most
significant bit of the number and R0 is the least significant bit.
Arithmetic Shift
ARITHMETIC SHIFT
• An left arithmetic shift operation must be checked for the
overflow
0
sign
bit
• The arithmetic, logic, and shift circuits can be combined into one ALU with
common selection variables.
• One stage of an arithmetic logic shift unit (ALU) is shown in Fig. (next
slide. The subscript i designates a typical stage that is a part of Circuit.
• Inputs Ai and Bi are applied to both the arithmetic and logic units.
ARITHMETIC LOGIC SHIFT UNIT (ALU)
• The data in the multiplexer are selected with inputs S3 and S2.
• The other two data inputs to the multiplexer receive inputs Ai-1 for the shift-
right operation and Ai+1 for the shift-left operation.
• The first eight are arithmetic operations and are selected with S 3S2 = 00. The
next four are logic operations and are selected with S 3S2 = 01. The last two
operations are shift operations and are selected with S3S2 = 10 and 11.
ALU
Arithmetic D i
Circuit
Select
Ci+1
0 4x1 Fi
1 MUX
2
3
Ei
Logic
Bi Circuit
Ai
Ai-1 shr
Ai+1 shl