Lecture 4 Computer Organization
Lecture 4 Computer Organization
Organization
• Register Transfer
• Arithmetic Microoperations
• Logic Microoperations
• Shift Microoperations
3
Register Transfer & µ-operations 7
• Typically,
– What operations are performed on the data in the registers
– What information is passed between registers
Computer Organization
Register Transfer & µ-operations 9 Register Transfer Language
MICROOPERATIONS (1)
Computer Organization
Register Transfer & µ-operations 10 Register Transfer Language
MICROOPERATION (2)
R ← f(R, R)
f: shift, load, clear, increment, add, subtract, complement,
and, or, xor, …
Computer Organization Computer Architecture
Register Transfer & µ-operations 11 Register Transfer Language
- Microoperations set
Computer Organization
Register Transfer & µ-operations 12 Register Transfer Language
Computer Organization
Register Transfer & µ-operations 13 Register Transfer Language
Computer Organization
Register Transfer & µ-operations 14 Register Transfer Language
DESIGNATION OF REGISTERS
MAR
– Registers may also be represented showing the bits of data they contain
Computer Organization
Register Transfer & µ-operations 15 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
Computer Organization
Register Transfer & µ-operations 16 Register Transfer
REGISTER TRANSFER
R2 ← R1
Computer Organization
Register Transfer & µ-operations 17 Register Transfer
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
Computer Organization
Register Transfer & µ-operations 18 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
if (P = 1)
then
(R2 ← R1)
Computer Organization
Register Transfer & µ-operations Register Transfer
HARDWARE IMPLEMENTATION OF CONTROLLED TRANSFERS
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
15
Register Transfer & µ-operations Register Transfer
SIMULTANEOUS OPERATIONS
P: R3 ← R5, MAR ← IR
if (P = 1) then
(R3 ← R5)
(MAR ← IR)
16
Register Transfer & µ-operations Register Transfer
17
Register Transfer & µ-operations Register Transfer
CONNECTING REGISTRS
Bus lines
19
Register Transfer & µ-operations Bus and Memory Transfers
20
Register Transfer & µ-operations Bus and Memory Transfers
Load
Reg. R0 Reg. R1 Reg. R2 Reg. R3
D0 D1 D2 D 3
Select z 2x4 E (enable)
w
Decoder
if (C = 1) then
Three-State Bus Buffers (Y ← A)
Normal input A Output Y=A if C=1 else
High-impedence if C=0 Y ← Open-Circuit
Control input C
Bus line for bit 2
?
Bus line for bit 1
Bus line with three-state buffers
Bus line for bit 0
?
A0
B0
C0
D0
0
?
S0
Select S1 1
2
Enable 3
21
Register Transfer & µ-operations Bus and Memory Transfers
22
Register Transfer & µ-operations 26 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
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
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
FA C3 FA C2 FA C1 FA C0
C4 S3 S2 S1 S0
Binary Incrementer A 3 A 2 A 1 A 0 1
x y x y x y x y
H A H A H A H A
C S C S C S C S
C 4 S 3 S 2 S 1 S 0
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
1
4 X1 Fi
MUX
2
3 Select
S1
S0
Function table
S1 S0 Output µ-operation
0 0 F = A ∧B AND
0 1 F=A∨B OR
1 0 F = A ⊕B XOR
1 1 F = A’ Complement
– Selective-set A←A+B
– Selective-complement A←A⊕B
– Selective-clear A ← A • B’
– Mask (Delete) A←A•B
– Clear A←A⊕B
– Insert A ← (A • B) + C
– Compare A←A⊕B
– ...
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
1100 At
1010 B
1000 At+1 (A ← A ⋅ B)
CLEAR OPERATION
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
» 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.
CIRCULAR SHIFT
• In a circular shift the serial input is the bit that is shifted out of
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 or division
ARITHMETIC SHIFT
• An left arithmetic shift operation must be checked for the
overflow
0
sign
bit
S
MUX H0
0
1
A0
A1 S
H1
0 MUX
A2 1
A3
S
H2
0 MUX
1
S
H3
0 MUX
1
Serial
input (IL)
Arithmetic D i
Circuit
Select
Ci+1
0 4 x1 Fi
1 MUX
2
3
Logic Ei
Bi Circuit
Ai
Ai-1 shr
Ai+1 shl
49
References
50
Thank You
51