Professional Documents
Culture Documents
Chapter Five Register Transfer and Microoperations: Computer Architecture
Chapter Five Register Transfer and Microoperations: Computer Architecture
CHAPTER FIVE
REGISTER TRANSFER
AND MICROOPERATIONS
1-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
The n-bit of the register are numbered in sequence from 0 in the rightmost
position and increasing the numbers toward the left. Figure 5.1 shows
different forms of register representation.
Figure 5.1
Some basic symbols for register transfer are shown in table 5.1.
2-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Table 5.1
3-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Figure 5.2 shows the block diagram that explains the transfer of
information from register R1 to R2 providing that the control function P
= 1.
The n outputs of register R1 are connected to the n inputs of register R2.
Register R2 has a load input that is activated by the control variable P.
Here; it is assumed that the control variable is synchronized with the
same clock as the one applied to the register. The timing diagram shows
P which activated in the control section by the rising edge of a clock pulse
at time t. The next positive transition of the clock at time t+1 finds the load
input active and the data inputs of R2 are then loaded into the register in
parallel. P may go back to 0 at time t+1; otherwise, the transfer will occur
with every clock pulse transition while P remains active.
Figure 5.2
Figure 5.3
In general, a bus system will multiplex k registers of n bits each to
produce an n-line common bus.
5-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Figure 5.4
Table 5.3
Control Input Normal Input Gate Output
C A X
0 0 High Impedance
0 1 High Impedance
1 0 0
1 1 1
Figure 5.5 shows a single bus line using three-state buffers. A single
bus line is formed by connecting together the outputs of the four
6-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
buffers. The control inputs to the buffers determine which of the four
normal inputs will communicate with the bus line.
To insure that no more than one control input is active at any given
time, a 2*4 decoder is used as shown in the diagram. When the enable
input of the decoder is 0, all of its four outputs are 0, and the bus line
is in a high-impedance state because all four buffers are disabled.
When the enable input is active, one of the three-state buffers will be
active, depending on the binary value in the select inputs of the
decoder. Circuit shown in figure 5.5 can replace one multiplexer in
figure 5.3.
Figure 5.5
7-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Memory Transfer
There are two main operations concerning memory transfers, these are:
DR ← M [AR]
M [AR] ← DR
2. Arithmetic Microoperations
The basic Arithmetic Microoperations are:
a. Addition Microoperation.
b. Subtraction Microoperation.
c. Increment Microoperation.
d. Decrement Microoperation.
e. Shift Microoperation.
Table 5.4
Symbolic
description
Designation
R3 R1 + R2 Contents of R1 plus R2 transferred to R3
R3 R1 − R2 Contents of R1 minus R2 transferred to R3
Complement the contents of R2
R2 R2 (1's complement)
R2 R2 + 1 2's complement the contents of R2 (negate)
R1 plus the 2's complement of R2 transferred
R3 R1 + R2 + 1 to R3 (subtraction)
R1 R1 + 1 Increment the contents of R1 by 1
R1 R1 − 1 Decrement the contents of R1 by 1
The arithmetic Multiply and Divide operations are not included in the
table above since in most computers, the multiplication operation is
implemented with a sequence of add and shift microoperations,
while the division operation is implemented with a sequence of
subtract and shift microoperations.
9-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
b. Arithmetic microoperation R3 R1 − R2
Normally this Arithmetic Microoperation is implemented
through complementation and addition instead of using the
minus operator.
Binary Adder
Figure 5.6 shows a 4-bit binary adder. This adder is constructed with
4 full-adders connected in cascade, with the output carry from one full-
adder connected to the input carry of the next full-adder. The
corresponding augend bits of A and the addend bits of B are the two
inputs to the successive full-adders. The input carry to the binary
adder is C0 and the output carry is C4. The S outputs of the full-adders
generate the required sum bits.
Figure 5.6
10-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Binary Adder-Subtractor
Figure 5.7 shows a 4-bit Adder-Subtractor logical circuit. The circuit
combines both addition and subtraction operations. The circuit differs
from the 4-bit binary adder shown in figure 5.6 by including an
exclusive-OR gate which receives input M and one of the inputs (B)
with each full-adder. The mode input M controls the operation of the
circuit as follows:
1. For M = 0
The circuit is an adder, since we have B 0 = B . The full-adders
receive the value of B, the input carry C0 is 0, and the circuit
performs the addition of A to B (i.e. A+B).
2. For M = 1
The circuit becomes a Subtractor, since we have B 1 = B . The full-
adders receive the value of B , the input carry C0 is 1. The B inputs
are all complemented and a 1 is added through the input carry. The
circuit performs the addition of A to 2's complement of B.
Note.
1. For signed numbers, the result is A – B provided that there
is no overflow.
2. For unsigned numbers, the result is A – B for A ≥ B, and the
2's complement of ( B – A ) for A < B.
Figure 5.7
11-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Binary Incremental
Figure 5.8 shows a 4-bit Combinational Circuit Incrementer. Simply
this logic circuit is implemented by means of half-adders connected in
cascade. One of the inputs to the least significant half-adder is
connected to logic 1 and the other input connected to the least
significant bit of the number to be incremented. The circuit receives
the four bits A0 to A3, adds 1 to it, and generates the incremented
output in S0 to S3. The output carry C4 will be 1 only after incrementing
binary number 1111. This also causes output S0 to S3 to go to 0 (i.e.
0000).
The circuit shown in figure 5.8 can be extended to an n-bit binary
Incrementer by extending the diagram to include n half-adders. Keep
in mind that the least significant bit must have one input connected to
logic 1.
Figure 5.8
Arithmetic Circuit
Figure 5.9 shows a 4-bit arithmetic circuit. The circuit has four full-
adders and four multiplexers for choosing different operations. There
are two 4-bit inputs A and B and a 4-bit output D. the 4 inputs from A
connected directly to the X inputs of the binary adder, while the other
4 inputs from B and their complements are connected to two of the
data inputs of the multiplexers. The remaining two inputs of the
multiplexers are connected to logic 0 and logic 1.
The two selection inputs, S1 & S0 controls the operation of the four
multiplexers. The input carry Cin is connected to the input of the full-
adder FA0, while the other carries are connected from one stage to
the next.
The output of the binary adder s is calculated from the following
arithmetic sum:
D = A + Y + Cin … (5.1)
12-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Select Output
Input
S1 S0 D=A+Y+ Type of microoperation
Y
Cin Cin
0 0 0 B D = A+ B Add without Carry
0 0 1 B D = A + B +1 Add with Carry
Subtract with Borrow
0 1 0 B D = A+ B (i.e. D = A – B – 1)
Subtraction of B from A
0 1 1 B D = A + B +1 (i.e. A plus 2's Complement of B)
Transfer from input A to output
1 0 0 0 D=A D
1 0 1 0 D = A +1 Increment A by 1
1 1 0 1 D = A −1 Decrement A by 1
Transfer from input A to output
1 1 1 1 D=A D
13-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Figure 5.9
5.5. Logic Microoperations
Logic microoperations specify binary operations for string of bits stored
in registers. These operations consider each bit of the register separately
and treat them as binary variables.
(1) P : R1 R1 R 2
14-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
1001 Content of R1
1101 Content of R2
0100 Content of R1 after P = 1
(2) P + Q : R1 R 2 + R3, R 4 R5 R6
15-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
1. Logical Shift.
A logical shift transfers 0 through the serial input. The symbol shl
stands for logical shift-left, while shr stands for logical shift-right.
Examples
(1) R ← shl R
This microoperation, shift to the left one bit the contents of
register R. The bit transferred to the end position through the
serial input is assumed to be 0.
(2) R ← shr R
16-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
2. Circular Shift.
The circular shift circulates the bits of the register around the two
ends without loss of information. This is accomplished by connecting
the serial output of the shift register to its serial input. The symbol cil
stands for circular shift-left, while cir stands for circular shift-right.
Examples
(1) R ← cil R
This microoperation circulates to the left one bit the contents
of register R. No bit transferred to any end positions of the
specified register.
(2) R ← cir R
This microoperation circulates to the right one bit the contents
of register R. No bit transferred to any end positions of the
specified register.
3. Arithmetic Shift.
Arithmetic Shift Microoperations shift a signed binary number to the
left (multiplies the signed binary number by 2) or to the right (divides
the signed binary number by 2).
Arithmetic shifts must leave the sign bit unchanged because the sign
of the number remains the same when the number is multiplied or
divide by 2.
For signed binary numbers, the left bit in a register holds the sign
bit (0 for positive and 1 for negative), and the remaining bits hold the
number magnitude. Negative numbers are in 2's complement
form.
Figure 5.11 shows a typical register of n bits, where bit R n-1 in the
leftmost position holds the sign bit, and Rn-2 is the most significant bit
of the number with R0 the least significant bit.
17-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Figure 5.11
18-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Figure 5.12
Table 5.7
19-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
For an n-bit ALU, the circuit of figure 5.13 must be repeated n times. The
output carry Ci+1 of a given arithmetic stage must be connected to the
input carry Ci of the next stage in sequence.
The input carry to the first stage is the input carry C in, which provides a
selection variable for the arithmetic operations.
The circuit shown in the figure provides eight arithmetic operation, four
logic operations, and two shift operations. The operations are selected
according to the variables S3, S2, S1, S0, and Cin. The input carry Cin used
for selecting arithmetic operations only.
Table 5.8 lists the fourteen operations of the ALU. When S3S2 = 00, the
first eight arithmetic operations are selected. For S3S2 = 01, the next four
logic operations are selected. The input carry has no effect during the
logic operations and is marked with don't-care x's. The last two
operations are shift operations and are selected with S3S2 = 10 and 11.
The other three selection inputs have no effect on the shift.
20-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Figure 5.13
21-22
Computer Architecture
Chapter Five Register Transfer and Microoperations
Table 5.8
Operation Select
Operation Function
S3 S2 S1 S0 Cin
0 0 0 0 0 F =A Transfer A
0 0 0 0 1 F = A +1 Increment A
0 0 0 1 0 F = A+ B Addition
0 0 0 1 1 F = A + B +1 Add with carry
0 0 1 0 0 F = A+ B Subtract with borrow
0 0 1 0 1 F = A + B +1 Subtraction
0 0 1 1 0 F = A −1 Decrement A
0 0 1 1 1 F =A Transfer A
0 1 0 0 x F = A B AND
0 1 0 1 x F = A B OR
0 1 1 0 x F = A B XOR
0 1 1 1 x F=A Complement A
1 0 x x x F = shr A Shift right A into F
1 1 x x x F = shl A Shift left A into F
22-22