Computer Organization & Architecture
Computer Organization & Architecture
Index
• About Course
• Organization & Architecture.
• Register Transfer & Microoperations.
• Basic Computer Organization & Design
• Programming the basic computer
• ALU
• Control Unit
• Memory
• Input/ Output organization
• Pipelining organization
• Multiprocessors
Register Transfer & -operations 3
• Organization: Computer Organization refers to the operational units and their interconnections that
realize the architectural specifications.
• Examples of architectural attributes include the instruction set, the number of bits used to represent
various data types (e.g., number, character), I/O mechanisms and techniques for addressing memory.
• Organizational attributes include those hardware details transparent to the programmer, such as
control signals, interfaces between the computer and peripherals and memory technology used.
• For example, it is an architectural design issue whether a computer will have a multiply instruction.
It is an organizational issue whether that instruction will be implemented by a special multiply unit
or by a mechanism that makes repeated use of the add unit of the system. The organizational decision
may be based on the anticipated frequency of use of the multiply instruction, the relative speed of the
two approaches, and the cost and physical size of a special multiply unit.
• 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 & -operations 6 Register Transfer Language
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
Register Transfer & -operations 12 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 & -operations 13 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 & -operations 15 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
Load
Transfer occurs here
• The same clock controls the circuits that generate the control function
and the destination register (Reason: Page 51)
• Registers are assumed to use positive-edge-triggered flip-flops
Register Transfer & -operations 17 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
Register Transfer & -operations 21 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
Register Transfer & -operations 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 = 2m words. It needs the
following
– n data input lines data input lines
– n data output lines
n
– m address lines
– A Read control line address lines
– A Write control line m
RAM
Read
unit
Write
n
data output lines
Register Transfer & -operations 24 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
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 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
Register Transfer & -operations 31 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 FA D3
S0
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
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
Register Transfer & -operations 35 Logic Microoperations
– Selective-set AA+B
– Selective-complement AAB
– Selective-clear A A • B’
– Mask (Delete) AA•B
– Insert A (A • B) + C
– Compare AAB
– ...
Register Transfer & -operations 36 Logic Microoperations
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)
Register Transfer & -operations 41 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)
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
MUX H1
0
A2 1
A3
S
MUX H2
0
1
S
MUX H3
0
1
Serial
input (IL)
Register Transfer & -operations 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
References
• M. Morris Mano, Computer System Architecture, 3rd Edition, Pearson.
• William Stallings, Computer Organization and Architecture, 8th Edition, Pearson.
• (PPts Compiled by Prof. Mitul. K. Patil)