Lecture 2
Lecture 2
Lecture 2
MICROOPERATIONS
1
SIMPLE DIGITAL SYSTEMS
2
Register Transfer Language
MICROOPERATIONS (1)
3
Register Transfer Language
MICROOPERATION (2)
Registers ALU
(R) (f) 1 clock cycle
R f(R, R)
- Microoperations set
5
Register Transfer Language
6
Register Transfer Language
7
Register Transfer Language
DESIGNATION OF REGISTERS
8
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
9
Register Transfer
REGISTER TRANSFER
R2 R1
10
Register Transfer
REGISTER TRANSFER
11
Register Transfer
CONTROL FUNCTIONS
12
Register Transfer
13
Register Transfer
SIMULTANEOUS OPERATIONS
P: R3 R5, R2 R1
14
Register Transfer
15
Register Transfer
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
MUX1 MUX2 MUX3 MUX3
x
select
y
4-line bus
17
Multiplexer
The figure shows the construction of a bus system for four 4-
bit registers.
The multiplexer select the source register whose binary
information is placed on the bus.
The bus consists of 4 (4 x 1) multiplexers each having data
inputs 0 through 3 and two selection inputs, x and y.
The output 1 of register A is connected to input 0 of MUX 1
b/c this input is labeled A1.
The bit in the same significant position in each register are
connected to the data inputs of one multiplexer to form one
line of the bus.
→The MUX 1 multiplexes the four 0 bits of the registers,
MUX 2 multiplexes the four 1 bits of the registers…..
18
Multiplexer cont…
The two selection lines X and Y are connected to the
selection inputs of all multiplexers.
The selection lines choose the four bits of one register and
transfer them into the four-line common bus. When xy=00,
the 0 data inputs of all 4 MUX are selected and applied to the
outputs that form the bus.
→This cause the bus lines to receive the content of
register A since the outputs of this register are connected to
the 0 data inputs of the multiplexers.
X Y Register selected
19
Multiplexer cont…
In general, a bus system will multiplex K registers of n
bits each to produce an n-line common bus.
The number of MUXs needed to construct the bus is
equal to n, the number of bits in each register.
The size of each multiplexer must be K x 1, since it
multiplexes k data lines.
20
Bus and Memory Transfers
R2 R1
or
BUS R1, R2 BUS
21
End
22
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
23
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
24
Bus and Memory Transfers
MEMORY READ
25
Bus and Memory Transfers
MEMORY WRITE
M[MAR] R1
26
Bus and Memory Transfers
27
Arithmetic Microoperations
MICROOPERATIONS
28
Arithmetic 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
30
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
32
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
34
Logic Microoperations
– Selective-set AA+B
– Selective-complement AAB
– Selective-clear A A • B’
– Mask (Delete) AA•B
– Clear AAB
– Insert A (A • B) + C
– Compare AAB
– ...
35
Logic Microoperations
SELECTIVE SET
1100 At
1010 B
1110 At+1 (A A + B)
36
Logic Microoperations
SELECTIVE COMPLEMENT
1100 At
1010 B
0110 At+1 (A A B)
37
Logic Microoperations
SELECTIVE CLEAR
1100 At
1010 B
0100 At+1 (A A B’)
38
Logic Microoperations
MASK OPERATION
1100 At
1010 B
1000 At+1 (A A B)
39
Logic Microoperations
CLEAR OPERATION
1100 At
1010 B
0100 At+1 (A A B)
40
Logic Microoperations
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)
41
Shift Microoperations
42
Shift Microoperations
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.
45
Shift Microoperations
ARITHMETIC SHIFT
• An left arithmetic shift operation must be checked for the
overflow
0
sign
bit
46
Cont…
• An arithmetic shift shifts a signed binary number to the left or
right.
47
Shift Microoperations
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)
48
Shift Microoperations
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
50