You are on page 1of 8

of CPU

Figure 8-1 Major components

choosing the hardware implementing the


tor
a task that in largepart involves
who programs the computer in machine o-

machine instructions. The


user
the memory structure
must be aware of the register set,
assembly language
the instructions, and the function that each-
the type of data supported by
instruction performs
carried out in Chaps. 5 and 7. Thi
Design examples of simple CPUs
are

describes the organization and architecture of the CPU with an empha-


chapter
We briefly describe how the registers
sis on the user's view of the computer.
communicate with the ALU through buses and explain the operation of the

memory stack. We then present the type


of instruction formats available, the
addressing modes used to retrieve data from memory, and typical instructions
commonly incorporated in computers. The last section presents the concept of
reduced instruction set computer (RISC).

8-2 General Register Organization


In the programming examples of Chap. 6, we have shown that memory
locations are needed for storing pointers, counters, return addresses, tempo-
rary results, and partial products during multiplication. Having to refer to
memory locations for such applications is time consuming because memory
access is the most
time-consuming operation in a computer. It is more conve
nient and more efficient to store these
intermediate values in processor regis
ters. When a large number of
efficient to connect them
registers are included in the CPU, it is m0s
nicate with each other not
through a common bus system. The registers commu
only for direct data transfers, but also while pertor
ing various microoperations. Hence it is necessary to
that can perform all the provide a common ui
arithmetic, logic, and shift microoperations in u
processor.
A bus organization for seven CPU 8-2. The
output of each register is connected to two registers
is shown in Fig.
buses A and B. The selection lines in multiplexers (MUX) to form the tw
each multiplexer select one the
input data for the
particular bus. The A and B buses form the register or a
inputs t
SECTION 8-2 General Register Organization 243
Clock
Input

R1
R2
R3

R4

R6

Load
(7 lines) SELA MUX MUX
E SELB

3 x8 A bus
B bus
decoder

TTT
SELD
Arithmetic logic unit
OPR
(ALU)

Output
(a) Block diagram

3 3 5
SELA SELB SELD OPR

b) Control word

ALU.
Figure 8-2 Register set with common
Processing Unit
APTIR LOHT Cental selected in the ALU # .
The operation
unit (ALU).
common
arithmetic logic that is to be pertormed. The rae
microoperation
mines the
arithmetic or logic data and also goes into the inp
is available for output trom the out
of the microoperation that receives the
intormation
put
The register
of all the registers. decoder. The decoder activates one of the register load
bus is selected by
a
between the data in
the output bus an
and
a transter path
inputs, thus providing
selected destination register.
the inputs of the CPUbus system
directs the information
control unit that operates the
The the v a r i o u s components in the
the registers and ALU by selecting
flow through
to perform the operation
system. For example,
R1-R2 R3

selection variables to the tollowing selector


the control must provide binary
inputs:

1. MUX A selector (SELA): to place the content of A R2 into bus

content of R3 into bus B.


2. MUX B selector (SELB): to place the
the arithmetic addition
3. ALU operation selector (OPR): to provide
A + B.
ALE
4. Decoder destination selector (SELD): to transfer the content of the
output bus into R1.

The four control selection variables are generated in the control unit and
must be available at the beginning of a clock cycle. The data from the two source
registerspropagate through the gates in the multiplexers and the ALU, to the
output bus, and into the inputs of the destination register, all during the cloc
cycle interval. Then, when the next clock transition occurs, the binary informa
tion from the output bus is transferred into R1. To achieve a fast response time,
the ALU is constructed with high-speed circuits. The buses are implemented
with multiplexers three-state shown in Sec. 4-3.
or
gates, as

Control Word
There 14
word
are
binary
selection inputs in the unit, and their combined
valu
specifies control word. The 14-bit control word is defined in
a
consists of four fields. Three fields Fig. 840
contain three bits each, and one
five bits. The three bits of
SELA select a source
fiela tt
ALU. The three bits of SELB register
select a register for the B
for the A
inputhe
three bits of SELD select a destination register using theinput of the
decoder and itThe n ALen
load outputs. The five bits of OPR
select one of the The
14-bit control word when
applied
to the
operations in the AL ar
selection inputs specify a
microoperation. part
The encoding of the register selections is 3-bit
specified in Table 8-1. The 3
eral hegister Lrganization
245
TABLE 8-1 Encoding of Register Selection Fields

Binary
Code SELA SELB SELD

000 Input Input None


001 R1 R1 R1
010 R2 R2 R2
011 R3 R3 R3
100 R4 R4 R4
101 R5 R5 R5
110 R6 R6 R6
111 R7 R7 R7

for
binary code listed in the first column of the table specifies the binaryandcode
SELD
each of the three fields. The register selected by fields SELA, SELB,
is the one whose decimal number is equivalent to the binary number in the
selects the
code. When SELA or SELB is 000, the corresponding multiplexer
is selected but
external input data. When SELD 000, no destination register
=

the contents of the output bus are available in the external output.
In addition, the CPU
The ALU provides arithmetic and logic operations.
The shifter may be placed in the input of the
must provide shift operations.
or at the output of the ALU to provide
ALU to provide a preshift capability,
some cases, the shift operations are included with
postshifting capability. In shift unit was designed in Sec. 4-7. The
the ALU. An arithmetic logic and in Table 4-8. The
is listed encoding of the ALU
function table for this ALU
taken from Sec. 4-7 and is specified in Table 8-2. The
operations for the CPU is
has five bits and each operation is designated with a symbolic
name.
OPR field

TABLE 8-2 Encoding of ALU Operations

OPR
Select Operation Symbol
00000 Transfer A TSFA
00001 Increment A INCA
00010 Add A + B ADD
00101 SubtractA - B SUB
00110 Decrement A DECA
01000 AND A and B AND
01010 OR A and B OR
01100 XOR A and B XOR
01110 Complement A COMA
10000 Shift right A SHRA
11000 Shift left A SHLA
SECTION 8-3 Stack Organization 247
of all 0's
(making the B field 000). A
exclusive-OR operation. This is becauseregister
x x
can be cleared to 0 with an
=
0.
It is
apparent from these examples that many other microoperatior.s can
be
generated in the CPU. The most efficient way to control words with
a
large number of bits is to store them in a memorygenerate
unit. A memory unit that
stores control words is referred to as
a control
control words from memory. By reading consecutive
memory, it is possible to initiate the desired ot
microoperations for the CPU. This type of control is referred to assequence
grammed control. A microprogrammed control unit is shown in Fig. 7-8. Themicropr0
binary control word for the CPU will come from the outputs of the control
memory marked "micro-ops."

8-3 Stack Organization


A useful feature that is included in the CPU of most computers is a stack or
last-in, first-out (LIFO) list. A stack is a storage device that stores information
in such a manner that the item stored last is the first item retrieved. The
operation of a stack can be compared to a stack of trays. The last tray placed
on top of the stack is the first to be taken off.
The stack in digital computers is essentially a memory unit with an
address register that can count only (after an initial value is loaded into it). The
ck pointer register that holds the address for the stack is called a stack pointer (SP) because
its value always points at the top item in the stack. Contrary to a stack of trays
where the tray itself may be taken out or inserted, the physical registers of a
stack are always available for reading or writing. It is the content of the word
that is inserted or deleted.
The two operations of a stack are the insertion and deletion of items. The
operation of insertion is called push (or push-down) because it can be thought
of deletion is called
of as the result of pushing a new item on top. The operation
because it can be thought of as the result of removing one item
pop (or pop-up)
Howeve, nothing is pushed or popped in a com-
so that the stack pops up.
or decrementing
puter stack. These operations are simulated by incrementing
the stack pointer register.

Register Stack
in a portion of a large memory o r it can organized
be as
A stack can be placed 8-3 shows
a collection
of a finite number of memory words o r registers. Figure
SP
of a 64-word register stack. The stack pointer register
the organization address of the word that
number whose value is equal to the
contains a binary in the stack: A, B, and
of the stack. Three items are placed
is currently on top that the content of SP is now
Item C is o n top of the stack so
C, in that order. reading the memory word
3. To remove the top popped by
stack is
item, the
Centtal Processing Unit
HAPTER EIGHT
Address

63

FULL EMTY

SP C

DR

Figure 8-3 Block diagram of a 64-word stacck.

at address 3 and decrementing the content of SP. Item B is now on top of the
stack since SP holds address 2. To insert a new item, the stack is pushed by
incrementing SP and writing a word in the next-higher location in the stack.
Note that item C has been read out but not physically removed. This does not
matter because when the stack is pushed, a new item is written in its place.
In a the stack pointer contains 6 bits because 2° 64.
64-word stack,
SP has only six bits, it cannot exceed a number
=
Since
greater than 63 (11ll
binary). When 63 isincremented by 1, the result is 0 sínce 111111 +1 = 100000
in binary, but SP can accommodate
only the six least significant bits. Similar
when 000000 is decremented by 1, the result is 111111. The one-bit regisi
FULLis set to 1 when the stack is full, and the one-bit register EMTY is ser
1 when the stack is
empty of items. DR is the data register that holds the binaiy
data to be written into or read
out of the stack.
Initially, SP is cleared to 0, EMTY is set to 1, and FULL is cleared
that SP points to the word at
address 0 and the stack is marked tot
full. If the stack is not full empty ana
(if FULL 0), a new item is inserted witn a
=

operation. The push operation is implemented with the P


microoperations: following sequen

SP-SP+1 Incremernt stack pointer


M[SP]-DR Write item on
top of the stack
SECTION 8-3 Stack Organization 249

If (SP 0) then (FULL-1) Check if stack is full

EMTY-0 Mark the stack not empty

The stack pointer is incremented so that it points to the address of the


next-higher word. A memory write operation inserts the word from DR into
the top of the stack. Note that SP holds the address of the top of the stack and
that M[SP] denotes the memory word specified by the address presently
available in SP. The first item stored in the stack is at address 1. The last item
set
is stored at address 0. If SP reaches 0, the stack is full of items, so FULL is
was in
to 1. This condition is reached if the top item prior to the last push
location 63 and, after incrementing SP, the last item is stored in location 0. Once
in the stack.
an item is stored in location 0, there are no more empty registers
If an item is written inthe the stack cannot be empty, so EMTY
stack, obviously
is cleared to 0.
A fiew item is deleted from the stack if the stack is not empty (if
of micro-
EMTY 0). The pop operation consists of the following sequence
operations:

DR-M[SP] Read item from the top of stack

SP-SP - 1 Decrement stack pointer

then (EMTY-1) Check if stack is empty


If (SP =
0)
Mark the stack not full
FULL-0
the stack into DR. The stack pointer is then
The top item is read from EMTY is set to
reaches zero, the stack is empty, so
decremented. If its value
reached if the item read was in
location 1. Once this item
1. This condition is
decremented and reaches the
value 0, which is the initial value
is read out, SP is then SP
that if a pop operation reads the item
trom location 0 and
of SP. Note which is equivalent to decimal 63. In
to 111l11,
is decremented, SP changes in address 0 receives the last item in the stack.
the word when
this configuration, will result if the stack is pushed
e r r o n e o u s operation
Note also that an
=
1.
when EMTY
FULL = 1 or popped

Memory Stack 8-3 o r can be implemented in


A stack can exist as a stand-alone unit as in Fig.
implementation of a stack
attached to a CPU. The
a random-access
memory
a portion of memory to a
stack operation and
in the CPU is done by
assigning 8-4 shows a portion of
as a stack pointer. Figure
using a processor register data, and stack.
into three segments: program,
computer memory
paYtitioned instruction in the
at the address of the next
counter PC points
The program AR points at an array of
data. The stack pointer
address register
program. The
TER EIGHT Central Processing Unit
Address
Memory unit

1000

C Programn
(instructions)

2000

AR
Data
operands)

3000

Stack
stack

3997

3998
SP
3999
4000

4001

DR

Figure 8-4 Computer memory with program, data, and stack segmentS

SP points at the top of the stack. The


three
registers are connected to a commo
address bus, and either one can sed
providean address for
memory. PC 15 us
during the fetch phase to read an instruction. AR is used during the execi
phase to read an operand. SP is used to push or pop items into or front the
stack.
As shown in Fig. 8-4,
the initial value of SP is 4001 and the stack groW
with decreasing addresses. Thus the first
item stored in the stack is at
4000, the second item is stored at address 3999, and the ada an
last address that c
be used for the stack is 3000. No
provisions are available for stack limit check>

You might also like