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
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

BOL SCANNED STACK POSTFIX DESCRIPTION


EXPRESSION
( ( START
A ( A
* (* A
B (* AB
‘*’ Is at higher
+ (+ AB* precedence than ‘+’
C (+ AB*C
* (+ AB*C
D (+ AB*CD
) EMPTY AB*CD*+ END
(A+B) * [C*(D+E) + F]
BOL SCANNED STACK POSTFIXEXPRESSION DESCRIPTION
First perform the
( ( arithmetic inside the
parentheses(A+B)
A ( A
+ (+ A
B (+ AB
) AB+
After (A+B) , (D+E)
( ( AB+ perform because it is in
parentheses.
D ( AB+D
+ (+ AB+D
E (+ AB+DE
) AB+DE+
Next we perform the
[ [ expression inside the
square brackets.
C [ AB+DE+C
* [* AB+DE+C
Precedence of ‘*’ is
+ [+ AB+DE+C* higher than ‘+’
F [+ AB+DE+C*F
] AB+DE+C*F+
Multiplication of two
* * AB+DE+C*F+* terms between the
parentheses and
brackets.

(3*4) + (5*6)
MBOL SCANNED STACK POSTFIXEXPRESSION DESCRIPTION
( (
3 ( 3
* (* 3
4 (* 34
) 34*
+ + 34*
( +( 34*
5 +( 34*5
* +(* 34*5
6 +(* 34*56
) + 34*56*
+ 34*56*+

6
4 5 5 30
12 42
3 12 12 12
22

(5-2) * {9+8(3-2)}
OL SCANNED STACKS POSTFIXEXPRESSION DESCRIPTION
First perform the
( ( arithmetic inside the
parentheses (5-2)

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

3 ( 52-3
- (- 52-3
2 (- 52-32
) 52-32-
Next we perform the
{ { 52-32- expression inside the
LARGE BRACKET brackets.

9 { 52-32-9
+ {+ 52-32-9
8 {+ 52-32-98
} 52-32-98+
* * 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