You are on page 1of 22

CENTRAL PROCESSING UNIT

• A unit or component that is used for data process and


converting it into meaningful information.
• CPU is known as the brain of the computer.

Major components of CPU


There are four major components of CPU-:
1.) Storage components
❖ Registers-: -A registers is one of a small set of
data holding places that are part of a
computer processor.
❖ Flip-Flops-: -Capable of storing one bit of
information.
2.) Execution (processing) components
❖ ALU(Arithmetic logic unit-: -Arithmetic
calculations, logic computations, shifts
rotates.
.3) Transfer components
❖ BUS-: - The devices are connected together
by a communication channel called a bus.
4.) Control components
❖ Control unit-: - The control unit is like that
part of human brain that control all the
operation perform by each part of bod
GENERAL REGISTER ORGANIZATION
1) 2 MUX – select one of 7 registers or external data input by
SELA and SELB.
2) BUS A and BUS B – forms the inputs to a common ALU.
3) ALU – OPR determine the arithmetic or logic
microoperation.
The result of the microoperation is available for external
data output and also goes out into the input of all the
instructions.
4) 3*8 decoder – select the register (by SLD) that receives the
information from the ALU.

OPERATION OF CONTROL UNIT.

The control unit that operates the CPU BUS system


directs the information flow through the registers and
ALU by selecting the various component sin the system.
For example-:
R1 <- R2 +R3

The control must provide binary selection variables to the


following selector inputs-:
[1] MUX A selector (SELA): BUS A R2:
To place the content of R2 into BUS A.
[2] MUX B selector (SELB): BUS B R3: To place the content
of R3 into BUS B.
[3] ALU operation selector (OPR):
To provide the arithmetic addition.
[4] Decoder destination selector (SELD):
To transfer the content of the output BUS into R1.

CONTROL WORD
✓ There are 14 binary selection inputs in the unit, and their
combined value specifies control word.
✓ It consists of four fields.
3 3 3 5
SEL A SEL B SEL D OPR

✓ Three fields contain three bits each, and one field has five
bits.
✓ The three bits of SEL A select a source register for the A
input of the ALU.
✓ The three bits of SEL B select a register for the B input of
the ALU.
✓ The three bits of SEL D select a destination register using
the decoder and its seven loads output.
✓ The five bits of OPR select one of the operations in the
ALU.
✓ The 14- bit control word when applied to the selection
inputs specify a particular microoperation.

Encoding of register selection field


BINARY CODE SEL A SEL B SEL D
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

Encoding of ALU operations


OPR select Operation Symbol
00000 Transfer A TSFA
00001 Increment A INCA
00010 Add A+B ADD
00101 Subtract A-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
Examples of microoperations for the CPU
Microoperations SEL A SEL B SEL D OPR CONTROLWORD
R1 <- R2-R3 R2 R3 R1 SUB 010 011 001 00101
R4 <- R4 OR R3 R4 R5 R4 OR 100 101 100 01010
R6 <- R6+1 R6 - R6 INCA 110 000 110 00001
R7 <-R1 R1 - R7 TSFA 001 000 111 00000
OUTPUT <- R2 R2 - NONE TSFA 010 000 000 00000
OUTPUT<-INPUT INPUT - NONE TSFA 000 000 000 00000
R4 <- Shl R4 R4 - R4 SHLA 100 000 100 11000
R5 <- 0 R5 R5 R5 XOR 101 101 101 01100

The control word for y=the given microoperation can be


derived from the selection variables.
For example, the subtract microoperation given by the
statement.
R1 <- R2-R3
specifies R2 for the A input of the ALU, R3 for the B input of
the ALU, R1 for the destination register and an ALU operation
to subtract A – B.
The binary control for the subtract microoperation is
010 011 001 00101 and is obtained as follows.
Field SEL A SEL B SEL D OPR
Symbol R2 R3 R1 SUB
Control word 010 011 001 00101

STACK ORGANISATION
Stack
❖ A storage device that stores information in
such a manner that the item stored last is the
first item received.
❖ Also called last-in-first out(LIFO)list.
❖ The stack is a memory unit with an address
register called a stack pointer (SP), which
always points at the top element in the stack.
❖ The two operations of a stack are the insertion
(PUSH) and deletion (POP) of elements.
❖ PUSH operation increments the SP.
❖ POP operation decrement the SP.

REGISTER STACK
❖ A stack can be placed in a portion of a large memory or it
can be organized as a collection of finite number of
registers.
❖ The organisation of a 64-word register stack.
❖ The stack pointer register (SP) contains a binary number
whose value is equal to the address of the word that is
currently on top of the stack.
❖ Three items are placed in the stack: A, B and C in that
order.
❖ Item C is on top of the stack so that the content of SP is
now 3.
❖ The stack is popped by reading the memory word at
address 3 and decrementing the content of SP.
❖ Item B is now on the top of the stack since SP holds
address 2.
❖ To insert a new item , the stack is pushed by incrementing
SP.
ADDRESS
FULL EMPTY
63

3
SP C
2
B
1
A
0

DR

❖ In a 64-word stack, the stack pointer contains 6 bit


because 2^6 = 64.
❖ Since SP has only 6 bits.
❖ When 63 is incremented by 1, the result is 0 since
111111+1= 1000000 in binary, but SP can accommodate
only the six least significant bits.
❖ Similarly, when 000000 is decremented by 1, the result is
111111.
❖ The one bit register FULL is set to 1 when the stack is full,
the one bit register EMPTY set to 1 when the stack is
empty of items.
❖ DR is the data register that holds the binary data to be
written into or read out of the stack.
M[SP] <- DR Write item on top of the stack

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

EMPTY <- 0 Mark the stack not empty

MEMORY STACK
❖ A stack can exist as a stand-alone.
❖ Stack can be implemented in a random-access memory
(RAM) attached to a CPU.
❖ The implementation of a stack in the CPU is done by
assigning a portion of memory to a stack operation and
using a processor register as a stack pointer.
❖ A portion of computer memory divided into three
segments: program, data and stack.
❖ The program counter PC points at the address of the next
instruction in the program.
❖ The address register (AR) points at an array of data.
❖ The stack pointer SP points at the top of the stack.
❖ The three register are connected to a common address
bus, and either one can provide an address for memory.
❖ PC is used during the phase to read an instruction.
❖ AR is used during the execute phase to read operand.
❖ SP is used to push or pop items into or from the stack.
Memory unit address

Program 1000
PC
(instructions)

AR

Data 2000
(operands)

stack 3000

3997

SP 3998

3999

4000

4001

DR

Example :
The items in the stack communicate with a data register. A
new item is inserted with the push operation as follows:
- PUSH: SP SP - 1

M[SP] DR
The stack pointer is decremented so that it points at the
address of the next word. A memory write operation inserts
the word from DR into the top of the stack. A new item is
deleted with a pop operation as follows:
- POP: DR M[SP]

SP SP + 1

INFIX TO POSTFIX

❖ A stack organisation is very effective for evaluating


arithmetic expressions.
❖ The common arithmetic expressions are written in

infix notation, with each operator written between


the operands.
A*B+C*D
❖ That the arithmetic operation can be represented in
prefix notation. These representation, often
referred to as polish notation, place sthe operator
before the operands.
❖ The postfix notation referred to as reverse polish
notation (RPN), places the operator after the
operands.
❖ Examples –
A+B INFIX NOTATION
+AB PREFIX OR POLISH NOTATION
AB+ POSTFIX OR REVERSE POLISH NOTATION

The reverse polish notation is in a form suitable for


stack manipulation. A*B+C*D
The expression written in reverse polish notation as
AB*CD*+.

A*B+C*D

SYMBOL SCANNED STACK POSTFIX DESCRIPTION


EXPRESSION
1 ( ( START
2 A ( A
3 * (* A
4 B (* AB
‘*’ Is at higher
5 + (+ AB* precedence than ‘+’
6 C (+ AB*C
7 * (+ AB*C
8 D (+ AB*CD
9 ) EMPTY AB*CD*+ END
(A+B) * [C*(D+E) + F]
SYMBOL SCANNED STACK POSTFIXEXPRESSION DESCRIPTION
First perform the
1 ( ( arithmetic inside the
parentheses(A+B)
2 A ( A
3 + (+ A
4 B (+ AB
5 ) AB+
After (A+B) , (D+E)
6 ( ( AB+ perform because it is in
parentheses.
7 D ( AB+D
8 + (+ AB+D
9 E (+ AB+DE
10 ) AB+DE+
Next we perform the
11 [ [ expression inside the
square brackets.
12 C [ AB+DE+C
13 * [* AB+DE+C
Precedence of ‘*’ is
14 + [+ AB+DE+C* higher than ‘+’
15 F [+ AB+DE+C*F
16 ] AB+DE+C*F+
Multiplication of two
17 * * AB+DE+C*F+* terms between the
parentheses and
brackets.
(3*4) + (5*6)
SYMBOL SCANNED STACK POSTFIXEXPRESSION DESCRIPTION
1 ( (
2 3 ( 3
3 * (* 3
4 4 (* 34
5 ) 34*
6 + + 34*
7 ( +( 34*
8 5 +( 34*5
9 * +(* 34*5
10 6 +(* 34*56
11 ) + 34*56*
12 + 34*56*+

6
4 5 5 30
12 42
3 12 12 12
22
(5-2) * {9+8(3-2)}
SYMBOL SCANNED STACKS POSTFIXEXPRESSION DESCRIPTION
First perform the
1 ( ( arithmetic inside the
parentheses (5-2)

2 5 ( 5
3 - (- 5
4 2 (- 52
5 ) 52-
After (5-2) , (3-2) perform
6 ( ( because it is in
parentheses.

7 3 ( 52-3
8 - (- 52-3
9 2 (- 52-32
10 ) 52-32-
Next we perform the
11 { { 52-32- expression inside the
LARGE BRACKET brackets.

12 9 { 52-32-9
13 + {+ 52-32-9
14 8 {+ 52-32-98
15 } 52-32-98+
16 * * 52-32-98+*
INSTRUCTION FORMAT
❖ The format of an instruction is usually depicted in a
rectangular box.
❖ An instruction is normally made up of a combination of
an operation code and sum way of specifying an
operand, most commonly by its location or address in
memory.
❖ An operation code field that specifies the operation to
be performed.
❖ An address field that designates a memory address or a
processor register.
❖ A mode field that that specifies the way the operand.

The number of address fields in the instruction format


depends on the internal organization of CPU.
- The three most common CPU organizations:
1. Single accumulator organisation:
All operations are performed with an implied accumulator
register. The instruction format in this type of computer uses
one address field. For example the instruction that specifies
an arithmetic addition is defined by an assembly language
instruction as
ADD X
Where X is the address of the operand the add instruction in
this case results in the operation AC <- AC+M[X]. AC is the
accumulator register and M[X] symbolises the memory word
located at address X.

2. General register organisation


General register-type computers employ two or three
address field in their instruction format. Each address field
may specify a processor register or a memory word. An
instruction symbolized by
ADD R1, X
Would specify the operation R1<-R1+M[X].
It has two an address field, one for register R1 and the other
for the memory address X.

3. Stack organisation
Computers with stack organisation would have PUSH and
POP instruction which require an address field. Thus, the
instruction
PUSH X
will push the word at address X to the top of the stack the
stack pointer is updated automatically. Operation-type
instruction do not need an address field in stack organised
computers. This is because the operation is performed on the
two items that are on top of the stack. The instruction in a
stack computer consist of an operation code only with no
address field.
Three address instruction
❖ Memory addresses for the two operands and one
destination need to be specified.
❖ It is also called general register organization.
❖ Instruction-
ADD R1, A, B R1<-M[A]+M[B]
ADD R2, C, D R2<-M[C]+M[D]
MUL X, R1, R2 M[X]<-R1*R2
❖ It is assumed that the computer has two processor
registers, R1 and R2. The symbol M[A] denotes the
operand at memory address symbolized by A.

Two address instruction


❖ Two address register or two memory locations are
specified.
❖ Assumes that the destination address same as that of the
first operand.
❖ Instruction: ADD R1, R2
R1<-R1+ R2
The program to evaluate X = (A+B)*(C+D) is as
follows:
MOV R1, A R1<-M[A]
ADD R1, B R1<-R1+M[B]
MOV R2, C R2<-M[C]
ADD R2, D R2<-R2[MD]
MUL R1, R2 R1<-R1*R2
MOV X, R1 M[X]<-R1
The MOV instructions moves or transfers the operand to and from memory
and processor registers.
One address instruction
❖ One address can be a register name or memory address.
❖ Single accumulator for organisation.
❖ It uses accumulator AC register for all data manipulation.
❖ Instruction: ADD X
❖ Microoperation: AC<-AC+M[X]
EVALUATE: The program to evaluate X = (A+B) * (C+D) is as
follows:
LOAD A AC<-M[A]
ADD B AC<-AC+M[B]
STORE T M[T]<-AC
LOAD C AC<-M[C]
ADD D AC<-AC+M[D]
MUL T AC<-AC*M[T]
STORE X M[X]<-AC
All operation are done between the AC register and a
memory operand. T is the address of a temporary memory
location required for storing the intermediate result.

Zero address instructions


❖ Stack is used. Arithmetic operation pops two operands
from the stack and pushes the result.
❖ Also called stack organisation.
❖ Evaluate X = (A+B) * (C+D) is as follows:
PUSH A TOS<-A
PUSH B TOS<-B
ADD TOS<-(A+B)
PUSH C TOS<-C
PUSH D TOS<-D
ADD TOS<-(C+D)
MUL TOS<-(C+D) * (A+B)
POP X M[X]<-TOS
A stack organised computer does use an address field for
the instruction ADD and MUL.
To evaluate arithmetic expression in a stack computer, it is
necessary to convert the expression reverse polish
notation. The name ‘zero address’ is given to this type of
computer because of the absence of an address field in the
computational instruction.

ADDRESSING MODE
The operation field of an instruction specifies the operation
to be performed. And this operation must be performed on
some data.
So each instruction need to specify data on which the
operation is to be performed. But the operand(data) may be
in accumulator, general purpose register or at some specified
memory location.
So, appropriate location (address) of data is need to be
specified.
In computer, there are various ways of specifying the address
of data.
These various ways of specifying the address of data are
known as “Addressing Modes”.

Addressing Modes Advantage:


Now, in addition to this, the two most prominent reason of
why addressing modes are so important are:
1. the way the operand data are chosen during program
execution is dependent on the addressing mode of the
instruction.
2. The address field (or fields) in a typical instruction format
are relatively small and sometimes we would like to be able
to reference a large range of locations, so here to achieve
this objective i.e., to fit this large range of location in address
field, a variety of addressing techniques has been employed.
As they reduce the number of field in the addressing field of
the instruction. Thus, Addressing Modes are very vital in
Instruction Set Architecture (ISA).
Notation for Addressing modes are:
A= Contents of an address field in the instruction.
R= Contents of an address field in the instruction that
refers to a register.
EA= Effective Address (Actual address) of location
containing the referenced operand.
(X)= Contents of memory location x or register X.

You might also like