Computer Architecture 2
Computer Architecture 2
Unit 2
Third Stage
Memory
4096 x 16
15 12 11 0
Opcode Address
Instructions
(program)
Instruction Format
15 0 Operand
Binary Operand (data)
Processor Register
(accumulator or AC)
Stored Program Organization
The simplest way to organize a computer is to have one processor register(AC) and an
instruction code format with two parts.
The first part specifies the operation (opcode) to be performed and the second specifies an address
(operand).
The memory address tells the control where to find an operand in memory.
This operand is read from memory and used as the data to be operated on together with the
data stored in the processor register.
Instructions are stored in one section of memory and data in another.
For a memory unit with 4096 words, we need 12 bits to specify an address since 212 = 4096.
If we store each instruction code in one 16-bit memory word, we have available four bits for
operation code (opcode) to specify one out of 16 possible operations, and 12 bits to specify
the address of an operand.
The control reads a 16-bit instruction from the program portion of memory.
It then executes the operation specified by the operation code.
Instruction format of basic computer
Instruction Format
15 14 12 11 0
I Opcode Address
0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1
Add Instruction – ADD 457
Direct & Indirect Addressing of Memory
Memory Memory
If the second part of an
instruction format specifies the
22 0 ADD 457 35 1 ADD 300 address of an operand, the
instruction is said to have a
direct address.
300 1350
In Indirect address, the bits in
457 Operand the second part of the
1350 Operand instruction designate an
address of a memory word in
which the address of the
operand is found.
+ +
AC AC
Direct & Indirect Addressing of Memory
15 14 12 11 0 15 14 12 11 0
22 0 ADD 457 35 1 ADD 300
A direct address instruction is placed at The instruction in address 35 has a mode bit
address 22 in memory. I = 1, recognized as an indirect address
The I bit is 0, so the instruction is recognized instruction.
as a direct address instruction. The address part is the binary equivalent of
The opcode specifies an ADD instruction, 300.
and the address part is the binary equivalent The control goes to address 300 to find the
of 457. address of the operand.
The control finds the operand in memory at The address of the operand in this case is
address 457 and adds it to the content of 1350.
AC. The operand found in address 1350 is then
added to the content of AC.
Computer Registers
Section - 2
Computer Registers
11 0 15 0
Program Counter(12) Accumulator(16)
PC Holds address of instruction AC Processor register
11 0 7 0
Address Register(12) Output Register(8)
AR Holds address for memory OUTR Holds output character
15 0 7 0
Instruction Register(16) Input Register(8)
IR Holds instruction code INPR Holds input character
15 0
TR Temporary Register(16) Memory
Holds temporary data
4096 words
15 0
Data Register(16)
16 bits per word
DR Holds memory operand
1 S2
Common Bus
0 S1 Bus
Memory 0 S0
4096 x 16 7
System of
Address
WriteAR
Read
AR 1
Basic PC
LD INR CLR
PC 2
Computer AC
DR
LD INR CLR
DR 3
1 LD INR CLR
Adder E AC
AC 4
& Logic
LD INR CLR
INPR
INPR
DR AC IR
IR 5
LD
AC DR TR
TR 6
OUTR
LD INR CLR
OUTR
Clock
LD
AC
Computer Instructions
Section - 3
Types of Computer Instructions
1. Memory Reference Instruction
15 14 12 11 0
I Opcode Address
01 01 01 01 Address
0 1 1 1 10 10 01 10 01 10 01 0 0 0 0 0
15 14 13 12 11 0
0 1 1 1 Register Operation
0 1 1 1 0 0 0 0 0 0 0 10 01 10 01 10
1 1 1 1 10 01 10 01 10 01 0 0 0 0 0 0
Clock
𝑇0
𝑇1
𝑇2
𝑇3
𝑇4
𝐷3
CLR SC
Control Unit
SC is incremented with every positive clock transition, unless its CLR input is active.
This procedures the sequence of timing signals T0, T1, T2, T3 and T4, and so on. If SC is not
cleared, the timing signals will continue with T5, T6, up to T15 and back to T0.
The last three waveforms shows how SC is cleared when D3T4 = 1.
Output D3 from the operation decoder becomes active at the end of timing signal T2.
When timing signal T4 becomes active, the output of the AND gate that implements the control
function D3T4 becomes active.
This signal is applied to the CLR input of SC.
On the next positive clock transition the counter is cleared to 0.
This causes the timing signal T0 to become active instead of T5 that would have been active if
SC were incremented instead of cleared.
Instruction Cycle
Section - 5
Instruction Cycle
A program residing in the memory unit of Fetch & Decode
the computer consists of a sequence of PC is loaded with the address of the first
instructions. In the basic computer each instruction in the program.
instruction cycle consists of the following The micro-operations for fetch and decode phases
phases: are as follows:
1. Fetch an instruction from memory. • 𝑇0 ∶ 𝐴𝑅 ← 𝑃𝐶
2. Decode the instruction. • 𝑇1 ∶ 𝐼𝑅 ← 𝑀 𝐴𝑅 , 𝑃𝐶 ← 𝑃𝐶 + 1
3. Read the effective address from memory if • 𝑇2 ∶ 𝐷0 , … , 𝐷7 ← 𝐷𝑒𝑐𝑜𝑑𝑒 𝐼𝑅 12 − 14 , 𝐴𝑅 ← 𝐼𝑅 0 − 11
the instruction has an indirect address. , 𝐼 ← 𝐼𝑅(15)
4. Execute the instruction. Determine the type of instruction
After step 4, the control goes back to step During time 𝑇3 , the control unit determines the type of
1 to fetch, decode and execute the next instruction i.e. Memory reference, Register reference or
Input-Output instruction.
instruction. If 𝐷7 = 1 then instruction must be register reference or
This process continues unless a HALT input-output else memory reference instruction.
instruction is encountered.
Start
SC ← 0
𝑇0
AR ← PC
𝑇1
IR ← M[AR], PC ← PC + 1
𝑇2
Decode operation code in IR(12-14)
AR ← IR(0-11), I ← IR(15)
𝑇3 𝑇3 𝑇3 𝑇3
Execute Execute
input-output register-reference AR ← M[AR] Nothing
instruction instruction
SC ← 0 SC ← 0
Execute
memory-reference
instruction
SC ← 0
Memory-Reference Instructions
Section - 6
Memory Reference Instructions
1. AND: AND to AC
This is an instruction that performs the AND logic operation on pairs of bits in AC and the
memory word specified by the effective address. The result of the operation is transferred to
AC.
D0T4: DR M[AR]
D0T5: AC AC DR, SC 0
2. ADD: ADD to AC
This instruction adds the content of the memory word specified by the effective address to
the value of AC. The sum is transferred into AC and the output carry Cout is transferred to the
E (extended accumulator) flip-flop.
D1T4: DR M[AR]
D1T5: AC AC + DR, E Cout, SC 0
Memory Reference Instructions
3. LDA: Load to AC
This instruction transfers the memory word specified by the effective address to AC.
D2T4: DR M[AR]
D2T5: AC DR, SC 0
4. STA: Store AC
This instruction stores the content of AC into the memory word specified by the effective
address.
D3T4: M[AR] AC, SC 0
Memory Reference Instructions
5. BUN: Branch Unconditionally
This instruction transfers the program to instruction specified by the effective address. The
BUN instruction allows the programmer to specify an instruction out of sequence and the
program branches (or jumps) unconditionally.
D4T4: PC AR, SC 0
AR = 135 135 21
136 PC = 136
Subroutine Subroutine
D6T4: DR M[AR]
D6T5: DR DR + 1
D6T6: M[AR] DR, if (DR = 0) then (PC PC + 1), SC 0
Register Reference Instruction
D7I’T3 = r (common to all register reference instructions)
IR(i) = Bi [bit in IR(0-11) that specifies the operation]
CLA rB11 AC ← 0 Clear AC
CLE rB10 E ← 0 Clear E
CMA rB9 AC ← AC’ Complement AC
CME rB8 E ← E’ Complement E
CIR rB7 AC ← shr AC, AC(15) ← E, E ← AC(0) Circulate right
CIL rB6 AC ← shl AC, AC(0) ← E, E ← AC(15) Circulate left
INC rB5 AC ← AC + 1 Increment AC
SPA rB4 If (AC(15) = 0) then (PC ← PC + 1) Skip if AC is positive
SNA rB3 If (AC(15) = 1) then (PC ← PC + 1) Skip if AC is negative
SZA rB2 If (AC = 0) then (PC ← PC + 1) Skip if AC is zero
SZE rB1 If (E = 0) then (PC ← PC + 1) Skip if E is zero
HLT rB0 S ← 0 (S is a start-stop flip-flop) Halt Computer
Input-output and Interrupt
Section - 7
Input-Output of basic computer
Receiver
Printer OUTR
Interface
AC
Transmitter
Keyboard INPR
Interface
FGI =0 =1
Input-Output of basic computer
A computer can serve no useful purpose unless it communicates with the external
environment.
To exhibit the most basic requirements for input and output communication, we will use a
terminal unit with a keyboard and printer.
The terminal sends and receives serial information and each quantity of information has eight
bits of an alphanumeric code.
The serial information from the keyboard is shifted into the input register INPR.
The serial information for the printer is stored in the output register OUTR.
These two registers communicate with a communication interface serially and with the AC in
parallel.
Process of input & output information transfer
Input Transfer Output Transfer
Initially, the input flag FGI is cleared to 0. The output register OUTR works similarly but
When a key is struck in the keyboard, an 8-bit the direction of information flow is reversed.
alphanumeric code is shifted into INPR and Initially, the output flag FGO is set to 1. The
the input flag FGI is set to 1. computer checks the flag bit; if it is 1, the
As long as the flag is set, the information in information from AC is transferred in parallel
INPR cannot be changed by striking another to OUTR and FGO is cleared to 0. The output
key. The computer checks the flag bit; if it is device accepts the coded information, prints
1, the information from INPR is transferred in the corresponding character, and when the
parallel into AC and FGI is cleared to 0. operation is completed, it sets FGO to 1.
Once the flag is cleared, new information can The computer does not load a new character
be shifted into INPR by striking another key. into OUTR when FGO is 0 because this
condition indicates that the output device is
in the process of printing the character.
Input-Output Instruction
D7IT3 = p (common to all input-output instructions)
IR(i) = Bi [bit in IR(6-11) that specifies the operation]
INP pB11 AC(0-7) ← INPR, FGI ← 0 Input Character
OUT pB10 OUTR ← AC(0-7), FGO ← 0 Output Character
SKI pB9 If (FGI = 1) then (PC ← PC + 1) Skip on input flag
SKO pB8 If (FGO = 1) then (PC ← PC + 1) Skip on output flag
ION pB7 IEN ← 1 Interrupt enable on
IOF pB6 IEN ← 0 Interrupt enable off
Interrupt Cycle
0 0 256
1 0 BUN 1120 PC = 1 0 BUN 1120
255 255
PC = 256 256
Main Program Main Program
1120 1120
I/O program I/O program
1 BUN 0 1 BUN 0
𝑅′𝑇0 𝑅𝑇0
AR ← PC AR ← 0, TR ← PC
𝑅′𝑇1 𝑅𝑇1
IR ← M[AR], PC ← PC + 1 M[AR] ← TR, PC ← 0
𝑅′𝑇2 𝑅𝑇2
Decode operation code in IR(12-14) PC ← PC + 1, IEN ←
AR ← IR(0-11), I ← IR(15) 0, R ← 0, SC ← 0
𝑇3 𝑇3 𝑇3 𝑇3
Execute input- Execute AR ← M[AR] Nothing
output register-reference
instruction instruction
SC ← 0 SC ← 0
Execute
memory-reference
instruction
SC ← 0
Design of Accumulator Unit
Section - 9
Design of Accumulator Logic
In order to design the logic associated with AC, it is necessary to extract all the statements that
change the content of AC.
16
16 Adder and logic 16 Accumulator register 16
From DR
circuit (AC) To bus
8
From INPR
LD INR CLR
Clock
Control gates
Design of Accumulator Logic
Gate structure for controlling LD, INR and CLR of AC
D0 AND
T5 16 16
AC
D1 ADD From To bus
Adder &
D2 DR Logic LD INR CLR
T5
Clock
p
B11 INPR
r CMA
B9
SHR
B7
SHL
B6
INC
B5
CLR
B11
Questions Asked in GTU Exam
Section - 10
Questions asked in GTU exam
1. Write a detailed note on instruction cycle with neat diagrams.
2. Explain control unit of basic computer and its working with diagram.
3. For the basic computer explain following instructions
1. LDA
2. ADD
3. AND
4. CLA
4. Draw and explain flowchart for interrupt cycle.
5. For the basic computer explain following instructions
1. BUN
2. BSA
3. CIL
4. SZE
6. Explain how Input/Output can be performed using interrupts.
7. State the differences between hardwired control and microprogrammed control.
Questions asked in GTU exam
8. A computer uses a memory unit with 256K words of 32 bits each. A binary instruction code is
stored in one word of memory. The instruction has four parts: an indirect bit, an operation
code, a register code part to specify one of 64 registers, and an address part. 1) How many
bits are there in operation code, the register code part, and the address part? 2) Draw the
instruction word format and indicate the number of bits in each part. 3) How many bits are
there in the data and address inputs of the memory?
9. Draw and explain basic computer instruction formats.
10. Differentiate MRI and non-MRI.
11. Explain Direct and Indirect Addressing.
12. Give an example of register transfer of data through accumulator.
13. What is Interrupt? How it is useful for a system?
14. Explain CLA, ISZ, INP instruction.
15. Explain seven register common bus system.
Questions asked in GTU exam
16. Explain with clear diagram, how data can be input to the computer using INP instruction.
17. What is a Program Counter?
18. What is an Accumulator?
19. What is an Instruction Register?
20. What do you understand by Memory Address?
21. What is a Carry Flag?
22. Explain Instruction Fetch.
23. Explain Instruction Decode.
24. Enlist major components of CPU.
25. Effective address.