Professional Documents
Culture Documents
Chapter 1
REGISTER TRANSFER
AND MICROOPERATIONS
Register Transfer
Arithmetic Microoperations
Logic Microoperations
Shift Microoperations
p
Typically,
What operations
p are performed
p on the data in the registers
g
What information is passed between registers
MICROOPERATIONS (1)
MICROOPERATION (2)
R f(R, R)
- Microoperations set
DESIGNATION OF REGISTERS
MAR
Registers may also be represented showing the bits of data they contain
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
R2 R1
REGISTER TRANSFER
R3 R5
Implies
p that the digital
g system
y has
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
Digital Logic
Circuits
Register C
Viewing a computer, or any digital system, in this way is
called the register transfer level
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
systems, this is often done via a control signal,
signal called
a control function
If the signal is 1, the action takes place
This is represented as:
P: R2 R1
Load
T
Transfer
f occurs here
h
The same clock controls the circuits that generate the control function
and the destination register
g
Registers are assumed to use positive-edge-triggered flip-flops
SIMULTANEOUS OPERATIONS
P: R3 R5, MAR IR
CONNECTING REGISTRS
Bus lines
X Y Register selected
B1 C1 D 1 B2 C2 D 2 B3 C3 D 3 B4 C4 D 4
0 0 A
0 1 B
0 0 0 0
1 0 C 4 x1 4 x1 4 x1 4 x1
MUX MUX MUX MUX
1 1 D
x
select
y
4-line bus
Question
For register
g R0 to R63 in a 16 bit system:
y
What is the MUX size we use?
How many MUX we need?
How many y select bit?
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
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
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
M
Memory Read
AR
unit Write
MEMORY READ
The transfer of information from a memory word to the
outside environment is called read operation.
To read a value from a location in memory and load it into
a register,
i t the
th register
i t transfer
t f language
l notation
t ti looks
l k
like this:
R1 M[MAR]
MEMORY WRITE
The transfer of new information to be stored in to
memory is called write operation.
To write a value from a register to a location in memory
l k like
looks lik thi
this in
i register
i t transfer
t f language:
l
M[MAR] R1
MICROOPERATIONS
Computer
p system
y microoperations
p are of four types:
yp
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
FA C3 FA C2 FA C1 FA C0
C4 S3 S2 S1 S0
Binary
y 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 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
f l for
f bit manipulations
i l ti on binary
bi data
d t
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
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
Selective-set AA+B
Selective-complement AAB
Selective-clear
Selective clear AAB B
Mask (Delete) AAB
Clear AAB
Insert A (A B) + C
Compare AAB
...
SELECTIVE SET
1100 At
1010 B
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
operation, the bit pattern in B is used to clear
certain bits in A
1100 At
1010 B
1000 At+1 (A A B)
CLEAR OPERATION
In a clear operation
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
1100 At
1010 B
0110 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
E ample
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)
( )
SHIFT MICROOPERATIONS
There are three types of shifts
Logical shift
Circular shift
Arithmetic shift
What differentiates them is the information that goes into
the serial input
LOGICAL SHIFT
In a logical shift the serial input to the shift is a 0.
g logical
A right g shift operation:
0
CIRCULAR SHIFT
IIn a circular
i l shift
hift th
the serial
i l input
i t is
i the
th bit that
th t is
i shifted
hift d outt off
the other end of the register.
ARITHMETIC SHIFT
An arithmetic shift is meant for signed binary numbers
(integer)
An arithmetic left shift multiplies a signed number by two
An arithmetic right shift divides a signed number by two
The main distinction of an arithmetic shift is that it must keep
the sign of the number the same as it performs the
multiplication
lti li ti or division
di i i
ARITHMETIC SHIFT
An left arithmetic shift operation must be checked for the
overflow
0
sign
bit
In
I a RTL,
RTL the
th following
f ll i notation
t ti is
i used
d
ashl for an arithmetic shift left
ashr for an arithmetic shift right
Examples:
p
R2 ashr R2
R3 ashl R3
S
MUX H0
0
1
A0
A1 S
MUX H1
0
A2 1
A3
S
MUX H2
0
1
S
MUX H3
0
1
Serial
input (IL)
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