Coa Unit 2 Part 2 Cpu
Coa Unit 2 Part 2 Cpu
• Introduction
• Stack Organization
• Instruction Formats
• Addressing Modes
• Program Control
What is CPU?
• The part of the computer that performs the bull of
data-processing operations is called the central
processing unit and is referred to as the CPU.
• The CPU is made up of three major parts,
» Register set, ALU, Control Unit
• The register set stores intermediate data used during
the execution of the instructions.
• The arithmetic logic unit (ALU) performs the required
microoperations for executing the instructions.
• The control unit supervises the transfer of
informatio.n among the registers and instructs the
ALU as to which operation to perform.
• Transfer Components
Bus
• Control Components
Control Unit Register
File ALU
Control Unit
PROCESSOR ORGANIZATION
• In general, most processors are organized in one of 3 ways
– Stack organization
» All operations are done using the hardware stack
» For example, an OR instruction will pop the two top elements from the
stack, do a logical OR on them, and push the result on the stack
REGISTERS
• In Basic Computer, there is only one general purpose register,
the Accumulator (AC)
• In modern CPUs, there are many general purpose registers
• It is advantageous to have many registers
– Transfer between registers within the processor are relatively fast
– Going “off the processor” to access memory is much slower
Clock Input
R1
R2
R3
R4
R5
R6
R7
Load
(7 lines)
SELA { MUX MUX } SELB
3x8 A bus B bus
decoder
SELD
OPR ALU
Output
ALU CONTROL
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
FULL EMPTY
Stack pointer 4
SP C 3
6 bits B 2
A 1
Push, Pop operations 0
DR
/* Initially, SP = 0, EMPTY = 1, FULL = 0 */
PUSH POP
SP SP + 1 DR M[SP]
M[SP] DR SP SP 1
If (SP = 0) then (FULL 1) If (SP = 0) then (EMPTY 1)
EMPTY 0 FULL 0
SP 3000
stack
3997
3998
3999
4000
4001
- A portion of memory is used as a stack with a Stack grows
processor register as a stack pointer In this direction
- PUSH: SP SP - 1
M[SP] DR
- POP: DR M[SP]
SP SP + 1
- Most computers do not provide hardware to check stack overflow (full
(3 * 4) + (5 * 6) 34*56*+
6
4 5 5 30
3 3 12 12 12 12 42
3 4 * 5 6 * +
INSTRUCTION FORMAT
• Instruction Fields
OP-code field - specifies the operation to be performed
Address field - designates memory address(es) or a processor register(s)
Mode field - determines how the address field is to be interpreted (to
get effective address or the operand)
Program to evaluate X = (A + B) * (C + D) :
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 */
• Two-Address Instructions
Program to evaluate X = (A + B) * (C + D) :
Addressing Modes
Opcode Operand
Computer Organization Computer Architectures Lab
Implied Addressing Mode
Central Processing Unit 19
Instruction
Opcode Address A
Memory
Operand
Effective Address= A
Computer Organization Computer Architectures Lab
Central Processing Unit 22
Opcode Address A
Memory
Pointer to operand
Operand
Instruction
Operand
Effective address=R
Computer Organization Computer Architectures Lab
Central Processing Unit 26
Instruction
Registers
Instruction
Registers
PROGRAM INTERRUPT
Types of Interrupts
External interrupts
External Interrupts initiated from the outside of CPU and Memory
- I/O Device → Data transfer request or Data transfer complete
- Timing Device → Timeout
- Power Failure
- Operator
Software Interrupts
Both External and Internal Interrupts are initiated by the computer HW.
Software Interrupts are initiated by the executing an instruction.
- Supervisor Call → Switching from a user mode to the supervisor mode
→ Allows to execute a certain class of operations
which are not allowed in the user mode
Computer Organization Computer Architectures Lab
Central Processing Unit 42 Program Control
INTERRUPT PROCEDURE
Interrupt Procedure and Subroutine Call
- The interrupt is usually initiated by an internal or
an external signal rather than from the execution of
an instruction (except for the software interrupt)