0% found this document useful (0 votes)
22 views47 pages

COA Unit 3

The document outlines the syllabus for a Computer Organization and Architecture course for B.Tech students, detailing five units covering topics such as register transfer, CPU organization, computer arithmetic, memory organization, and input-output organization. It includes course outcomes that emphasize understanding, application, and analysis of computer systems. The document also discusses various instruction formats and addressing modes relevant to computer architecture.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views47 pages

COA Unit 3

The document outlines the syllabus for a Computer Organization and Architecture course for B.Tech students, detailing five units covering topics such as register transfer, CPU organization, computer arithmetic, memory organization, and input-output organization. It includes course outcomes that emphasize understanding, application, and analysis of computer systems. The document also discusses various instruction formats and addressing modes relevant to computer architecture.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 47

Computer Organization and

Architecture

CSE, 2/4 B.Tech 1 sem


Credits: 3
Continuous Internal Evaluation : 30
Semester End Evaluation: 70
Total Marks: 100

Prerequisites: Introduction to Computers


Digital Logic Design
Computer Organization and Architecture
UNIT-1
Register Transfer and Micro-Operations: Register Transfer Language, Register Transfer,
memory Transfers, Bus construction with Multiplexers, Arithmetic Micro-operations, Logic
Micro-operations, Shift Micro-operations, Arithmetic Logic Shift Unit.
UNIT-2
Basic Computer Organization: Instruction codes, Computer Registers, Computer Instructions,
Timing and Control, Instruction Cycle, Memory-Reference Instructions, Input- Output and
Interrupt.
UNIT-3
Central Processing Unit: General registers Organization, Stack Organization, Instruction
Formats, Addressing Modes, Data Transfer and Manipulation, Program Control
UNIT-4
Computer Arithmetic: Introduction, Addition and Subtraction, Booth Multiplication Algorithm.
Memory Organization: Memory Hierarchy, Main Memory, Auxiliary memory, Associative
Memory, Cache Memory, Virtual Memory.
UNIT-5
Input-Output Organization: Peripheral Devices, Input-output Interface, Asynchronous Data
Transfer, Priority Interrupt, Direct Memory Access (DMA), Input-Output Processor.
Pipeline and Parallel Processing: Parallel processing, Pipelining, Arithmetic pipeline,
Instruction pipeline.
Course Outcomes
CO1: Understand the basic functional units of a
computer system and its organization (L2)

CO2: Apply appropriate instructions for processing


various types of computer operations (L3).

CO3: Apply various types of organizations on


registers (L3).

CO4: Analyze memory hierarchy, I/O


communication and pipelining (L4).

L1-remembering, L2-understanding, L3-applying, L4-analyzing, L5-evaluating, and L6-creating.


UNIT-3 CENTRAL PROCESSING UNIT

 General Register Organization


 Stack Organization
 Instruction Formats
 Addressing Modes
 Data Transfer and Manipulation
 Program Control

4
MAJOR COMPONENTS OF CPU
Performs the bulk of data-processing
operations is called the central processing
unit and is referred to as the CPU.
Storage Components: The register set
stores intermediate data used during the
execution of the instructions.
Registers
Flip-flops

Execution (Processing) Components:


Arithmetic Logic Unit (ALU):
Arithmetic calculations,
Logical computations,
Shifts/Rotates
Register
Set ALU
Transfer Components:
Bus

Control Components:
Control Unit
The control unit supervises the transfer of Control Unit
information among the registers and 5
instructs the ALU as to which operation to
perform.
GENERAL REGISTER ORGANIZATION

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
3 3 3 5
Control Word SELA SELB SELD OPR 6
OPERATION OF CONTROL UNIT
The control unit directs the information flow through ALU by:
- Selecting various Components in the system
- Selecting the Function of ALU
Example: R1 <- R2 + R3
[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 o f R 3 into bus B .
[3] ALU operation selector (OPR): ALU to ADDto provide the arithmetic addition A + B .
[4] Decoder destination selector (SELD): R1  Out Bus to transfer the content
o f the output bus into
3 3 3 5 R1.
Control Word SELA SELB SELD OPR

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

ALU CONTROL
OPR
Encoding of ALU operations 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 ALU Microoperations


Symbolic Designation
Microoperation SELA SELB SELD OPR Control Word
R1  R2 - R3 R2 R3 R1 SUB 010 011 001 00101
R4  R4  R5 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
8
Stack Organization
• Register Stack
• Memory Stack
• Reverse Polish Notation
• Evaluation of Arithmetic Expressions

9
REGISTER STACK ORGANIZATION
Stack
- Very useful feature for nested subroutines, nested loops control
- Also efficient for arithmetic expression evaluation
- Storage which can be accessed in LIFO
- Pointer: SP
- Only PUSH and POP operations are applicable
stack Address

Register Stack Flags 63

FULL EMPTY

Stack pointer 4
SP C 3
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 10
MEMORY STACK ORGANIZATION
1000
Program
Memory with Program, Data, PC (instructions)
and Stack Segments
Data
AR (operands)

SP 3000
stack
3997
3998
3999
4000
- A portion of memory is used as a stack with a 4001
processor register as a stack pointer DR

- 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 stack) or underflow(empty stack) 11
REVERSE POLISH NOTATION
Arithmetic Expressions: A + B
A+B Infix notation
+AB Prefix or Polish notation
AB+ Postfix or reverse Polish notation
- The reverse Polish notation is very suitable for stack
manipulation

Evaluation of Arithmetic Expressions


Any arithmetic expression can be expressed in parenthesis-free
Polish notation, including reverse Polish notation

(3 * 4) + (5 * 6)  34*56*+

6
4 5 5 30
3 3 12 12 12 12 42
3 4 * 5 6 * +

12
Worksheet-1
1.

2.

3.

13
Worksheet-1-Answers
1.

2.

3.

14
Worksheet-2

15
1.

2.

3.

4.

16
Instruction Format

INSTRUCTION FORMAT
Instruction Fields
OP-code field - specifies the operation to be performed
Address field - designates memory address(s) or a processor register(s)
Mode field - specifies the way the operand or the
effective address is determined 1. ZERO-ADDRESS INSTRUCTIONS
2. ONE-ADDRESS INSTRUCTIONS
The number of address fields in the instruction format 3. TWO-ADDRESS INSTRUCTIONS
4. THREE-ADDRESS INSTRUCTIONS
depends on the internal organization of CPU

- The three most common CPU organizations:


Single accumulator organization:
ADD X /* AC  AC + M[X] */
General register organization:
ADD R1, R2, R3 /* R1  R2 + R3 */
ADD R1, R2 /* R1  R1 + R2 */
MOV R1, R2 /* R1  R2 */
ADD R1, X /* R1  R1 + M[X] */
Stack organization:
PUSH X /* TOS  M[X] */
ADD
17
THREE, and TWO-ADDRESS INSTRUCTIONS
Three-Address Instructions:

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

- Results in short programs


- Instruction becomes long (many bits)

Two-Address Instructions:
Program to evaluate X = (A + B) * (C + D) :

MOV R1, A /* R1  M[A] */


ADD R1, B /* R1  R1 + M[B] */
MOV R2, C /* R2  M[C] */
ADD R2, D /* R2  R2 + M[D] */
MUL R1, R2 /* R1  R1 * R2 */
MOV X, R1 /* M[X]  R1 */
18
ONE, and ZERO-ADDRESS INSTRUCTIONS
One-Address Instructions:
- Use an implied AC register for all data manipulation
- Program to evaluate X = (A + B) * (C + D) :
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 */
Zero-Address Instructions:
- Can be found in a stack-organized computer
- Program to evaluate X = (A + B) * (C + D) :
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 */
19
Worksheet-3
1.

2.

20
Given:

Instruction Size=32 bit

Operand Size=12 bit

Instruction Format for 2 Address Instruction:

Number of 2 address instructions possible= 2^8=256

Number of 2 Address instructions available= 250

256–250=6 two Address instructions are free which can be used indicate the
given instruction is a 1 Address instruction.

So number of 1-Address instruction= 6*2^12=24576.


The above problem has been solved using
Expanding Opcode technique (i.e. length
21 of
opcode is not fixed).
cpe 252: Computer Organization 22
Addressing Modes
• Microprocessor executes the instructions stored in
memory (RAM).
• It executes one instruction at a time.
• Each of the instruction contains operations and
operands.
• Operation specifies the type of action to be performed.
• For example: ADD, SUB, MOV, INC, LOAD, STORE
• Operands are the data on which the operation is to be
performed.
• MOV B, A Here MOV is operation and (B & A) are
operands.
• ADD B Here ADD is operation and (B) is operand.
cpe 252: Computer Organization 23
• Operand can be place either in one of the
processor registeror in memory.
• There are different ways to get the operands.
• The way in which the operand is taken from
register or memory is named as addressing
mode.

cpe 252: Computer Organization 24


ADDRESSING MODES
 Specifies a rule for interpreting or modifying the address field of the
instruction (before the operand is actually referenced)
 The different ways of specifying the location of an operand in an
instruction are called as addressing modes
 Variety of addressing modes
- to give programming flexibility to the user
- to use the bits in the address field of the instruction efficiently
Types of addressing Modes:
1. Implied Mode
2. Immediate Mode
3. Register Mode
4. Register Indirect Mode
5. Auto-increment or Auto-decrement
6. Direct Address Mode
7. Indirect Addressing Mode
8. Relative Addressing Modes
9. Indexed Addressing Mode
10.Base Register Addressing Mode
11.Stack addressing 25
1. Implied Mode
• Address of the operands are specified implicitly in the
definition of the instruction
– No need to specify address in the instruction
– Opcode specifies the address of the operands
– EA = AC, or EA = Stack[SP], EA: Effective Address.

Examples :
CMA ( A A’ )
RAL
2. Immediate Addressing
• Operand is part of instruction
• Operand = address field, No need to specify address in the
instruction
• e.g. ADD 5
– Add 5 to contents of accumulator
– 5 is operand
• No memory reference to fetch data
• Fast to acquire an operand
• Limited range
The instruction having ‘I’
(Immediate) letter fall under this
category
Examples :
MVI C,25H
MVI M,7CH
LXI D,245EH
3. Register Addressing
Address specified in the instruction is the register address
• Data transfer between -Designated operand need to be in a register
- Shorter address than the memory address
Registers - Saving address field in the instruction
• Operand is held in register - Faster to acquire an operand than the memory addressing
- EA = IR(R) (IR(R): Register field of IR)
named in address filed
• EA = R
• Limited number of registers
• Very small address field needed
– Shorter instructions
– Faster instruction fetch
• No memory access
• Very fast execution
• Very limited address space
• Multiple registers helps
performance
– Requires good assembly
programming or compiler
writing
– N.B. C programming Examples :
• register int a; MOV A, R1
ADD A
4.Register Indirect Addressing

• Instruction specifies a register which contains the memory address of the operand
– Saving instruction bits since register address is shorter than the memory address
– Slower to acquire an operand than both the register addressing or memory
addressing
– EA = [IR(R)] ([x]: Content of x)
• EA = (R)
• Operand is in memory cell pointed to by contents of register R
• Large address space (2n)
• One fewer memory access than indirect addressing
5. Auto-increment or Auto-decrement
• A special case of indirect register mode
• The register whose number is included in the instruction code, contains
the address of the operand.
• When the address in the register is used to access memory, the value
in the register is incremented or decremented by 1 (after or before the
execution of the instruction), PC
• Autoincrement Mode = after operand addressing , the contents of
the register is incremented.
• Example : The register R4, the autoincrement mode is written as
(R4)+.
• Decrement Mode = before operand addressing, the contents of the
register is decrement.
• Example : The register R4, the autodecrement mode is written as
30
-
(R4).
6. Direct Address Mode

 Instruction specifies the memory address which can be used directly


to the physical memory
 Faster than the other memory addressing modes
 Too many bits are needed to specify the address for a large physical
memory space
 EA = IR(address), (IR(address): address field of IR), Effective address
(EA) = address field (A)
 Single memory reference to access data
 No additional calculations to work out effective address
31
 Limited address space
7. Indirect Addressing Mode

 Memory cell pointed to by address field contains the address of (pointer to) the
operand
 The address field of an instruction specifies the address of a memory location
that contains the address of the operand
 When the abbreviated address is used, large physical memory can be addressed
with a relatively small number of bits
 Slow to acquire an operand because of an additional memory access
 EA = M[IR(address)]
 Large address space
 2n where n = word length
 May be nested, multilevel, cascaded
 e.g. EA = (((A)))
 Draw the diagram yourself
 Multiple memory accesses to find operand 32
 Hence slower
EA = Displacement + CPU
Register

EA = A + (R), In this the address field holds


two values, A (which is the base value) and
R (that holds the displacement), or vice
versa.

33
8. Relative Addressing Modes
 A version of displacement addressing
 EA = A + (R), R = Program counter, PC, A = base value
 EA = A + (PC), i.e. get operand from A cells from current location
pointed to by PC c.f locality of reference & cache usage
 The Address fields of an instruction specifies the part of the address
PC Relative Addressing Mode (R = PC)
- EA = PC + IR (address)
- Address field of the instruction is short.
- Large physical memory can be accessed with a small number of
address bits.
- Advantage
- The relative addressing mode doesn’t require memory references.
- Disadvantage
34
- The relative addressing mode doesn’t have any disadvantages as
9. Indexed Addressing Mode
• The index addressing mode is pretty helpful whenever the instructions in a
program access an array or large ranges of memory addresses.
• The effective address, in such a mode, is generated when we add a constant
to the content of the register. The register content does not ever change.
• Example:
XR: Index Register:
EA = XR + IR(address)
- Advantage
- Using the index addressing mode, we get flexibility for specifying
several locations of the memory.
- Disadvantage
- It is very complex to implement the index addressing mode.
35
10. Base Register Addressing Mode
 A holds displacement
 R holds pointer to base address
 R may be explicit or implicit
 e.g. segment registers in 80x86
BAR: Base Address Register:
- EA = BAR + IR(address)

36
11. Stack Addressing
Operand is (implicitly) on top of stack
e.g.
ADD Pop top two items from stack and add

37
Worksheet-4
Address Memory
200 Load to AC Mode
LOAD A PC = 200 201 Address = 500
What is the content of A and 202 Next instruction
R1 = 400
EA of the following addressing
modes XR = 100
399 450
400 700

AC
500 800

600 900

Addressing Effective Content 702 325


Mode Address of AC
Direct address 500 /* AC  (500) */ 800
Immediate operand 800 300
Indirect address
Register
Register indirect
Autoincrement
Autodecrement
Relative address
Indexed address 38
Worksheet-4 Answer
Address Memory
200 Load to AC Mode
PC = 200 201 Address = 500
202 Next instruction
R1 = 400

399 450
XR = 100
400 700

AC
500 800

600 900
Addressing Effective Content
Mode Address of AC
Direct address 500 /* AC  (500) */ 800 702 325
Immediate operand - /* AC  500 */ 500
Indirect address 800 /* AC  ((500)) */ 300
Register - /* AC  R1 */ 400 800 300
Register indirect 400 /* AC  (R1) */ 700
Autoincrement 400 /* AC  (R1)+ */ 700
Autodecrement 399 /* AC  -(R) */ 450
Relative address 702 /* AC  (PC+500) */ 325
Indexed address 600 /* AC  (XR+500) */ 900

39
Instructions Set
Data Transfer Instructions
Data Manipulation Instructions
Arithmetic Instructions
Logical and Bit Manipulation Instructions
Shift Instructions
Program Control Instructions
DATA TRANSFER INSTRUCTIONS
Typical Data Transfer Instructions
Name Mnemonic
Load LD
Store ST
Move MOV
Exchange XCH
Input IN
Output OUT
Push PUSH
Pop POP
Data Transfer Instructions with Different Addressing Modes
Assembly
Mode Convention Register Transfer
Direct address LD ADR AC M[ADR]
Indirect address LD @ADR AC  M[M[ADR]]
Relative address LD $ADR AC  M[PC + ADR]
Immediate operand LD #NBR AC  NBR
Index addressing LD ADR(X) AC  M[ADR + XR]
Register LD R1 AC  R1
Register indirect LD (R1) AC  M[R1]
Autoincrement LD (R1)+ AC  M[R1], R1  R1 + 1
Autodecrement LD -(R1) R1  R1 - 1, AC  M[R1]
41
DATA MANIPULATION INSTRUCTIONS
Three Basic Types: Arithmetic instructions
Logical and bit manipulation instructions
Shift instructions
Arithmetic Instructions
Name Mnemonic
Increment INC
Decrement DEC
Add ADD
Subtract SUB
Multiply MUL
Divide DIV
Add with Carry ADDC
Subtract with Borrow SUBB
Negate(2’s Complement) NEG

Logical and Bit Manipulation Instructions Shift Instructions


Name Mnemonic Name Mnemonic
Clear CLR Logical shift right SHR
Complement COM Logical shift left SHL
AND AND Arithmetic shift right SHRA
OR OR Arithmetic shift left SHLA
Exclusive-OR XOR Rotate right ROR
Clear carry CLRC Rotate left ROL
Set carry SETC Rotate right thru carry RORC
Complement carry COMC Rotate left thru carry ROLC
Enable interrupt EI
Disable interrupt DI 42
PROGRAM CONTROL INSTRUCTIONS
+1
In-Line Sequencing
(Next instruction is fetched from the
PC next adjacent location in the memory)

Address from other source; Current Instruction, Stack, etc


Branch, Conditional Branch, Subroutine, etc
Program Control Instructions
Name Mnemonic
Branch BR
Jump JMP
Skip SKP
Call CALL * CMP and TST instructions do not retain their
Return RTN results of operations(- and AND, respectively).
Compare(by - ) CMP They only set or clear certain Flags.
Test (by AND) TST

Status Flag Circuit A B


8 8
c7
8-bit ALU
c8
F7 - F0
V Z S C
F7
Check for 8
zero output
F 43
CONDITIONAL BRANCH INSTRUCTIONS
Mnemonic Branch condition Tested condition
BZ Branch if zero Z=1
BNZ Branch if not zero Z=0
BC Branch if carry C=1
BNC Branch if no carry C=0
BP Branch if plus S=0
BM Branch if minus S=1
BV Branch if overflow V=1
BNV Branch if no overflow V=0
Unsigned compare conditions (A - B)
BHI Branch if higher A>B
BHE Branch if higher or equal AB
BLO Branch if lower A<B
BLOE Branch if lower or equal AB
BE Branch if equal A=B
BNE Branch if not equal AB
Signed compare conditions (A - B)
BGT Branch if greater than A>B
BGE Branch if greater or equal AB
BLT Branch if less than A<B
BLE Branch if less or equal AB
BE Branch if equal A=B
BNE Branch if not equal AB

44
SUBROUTINE CALL AND RETURN
SUBROUTINE CALL Call subroutine
Jump to subroutine
Branch to subroutine
Branch and save return address
Two Most Important Operations are Implied;

* Branch to the beginning of the Subroutine


- Same as the Branch or Conditional Branch

* Save the Return Address to get the address


of the location in the Calling Program upon
exit from the Subroutine
- Locations for storing Return Address: CALL
SP  SP - 1
• Fixed Location in the subroutine(Memory) M[SP]  PC
• Fixed Location in memory PC  EA
• In a processor Register
• In a memory stack RTN
- most efficient way PC  M[SP]
SP  SP + 1
45
PROGRAM
Types of Interrupts:
INTERRUPT
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

Internal interrupts (traps)


Internal Interrupts are caused by the currently running program
- Register, Stack Overflow
- Divide by zero
- OP-code Violation
- Protection Violation

Software Interrupts
Both External and Internal Interrupts are initiated by the computer Hardware.
Software Interrupts are initiated by texecuting 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

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

- The address of the interrupt service program is


determined by the hardware rather than from the
address field of an instruction

- An interrupt procedure usually stores all the


information necessary to define the state of CPU
rather than storing only the PC.

The state of the CPU is determined from;


Content of the PC
Content of all processor registers
Content of status bits
Many ways of saving the CPU state depending on the CPU architectures

47

You might also like