Timing and Control Instruction Cycle Memory Reference Instructions Input-Output and Interrupt Complete Computer Description
Timing and Control Instruction Cycle Memory Reference Instructions Input-Output and Interrupt Complete Computer Description
Timing and Control Instruction Cycle Memory Reference Instructions Input-Output and Interrupt Complete Computer Description
Lecture 11
Overview
Instruction Codes
Computer Registers
Computer Instructions
Timing and Control
Instruction Cycle
Memory Reference
Instructions
Input-Output and Interrupt
Complete
CSE 211, Computer Organization
and Computer
Architecture
Introduction
Basic Computer
CPU
RAM
0
15
40
95
Instruction
Program
A sequence of (machine) instructions
(Machine) Instruction
A group of bits that tell the computer to perform a
specific operation (a sequence of micro-operation)
The instructions of a program, along with any needed
data are stored in memory
The CPU reads the next instruction from memory
It is placed in an Instruction Register (IR)
Control circuitry in control unit then translates the
instruction into the sequence of microoperations
necessary to implement it
Instruction Format
Addressing
mode
Addressing Mode
457
0 ADD
457
35 1 ADD
300
300
1350
1350
Operand
Operand
AC
AC
Processor Register
Processor Register
11
Processor Register
PC
11
Memory
4096 x 16
AR
15
IR
CPU
15
15
TR
7
OUTR
DR
7
15
INPR
AC
List of BC Registers
DR
AR
AC
IR
PC
TR
INPR
OUTR
16
12
16
12
16
8
8
Data Register
Holds memory operand
Address Register
Holds address for memory
Accumulator
Processor register
16
Instruction Register
Holds instruction cod
Program Counter
Holds address of instruction
Temporary Register
Holds temporary data
Input Register
Holds input character
Output Register
Holds output character
12
13
Bus
7
Address
Read
AR
LD INR CLR
PC
LD INR CLR
DR
LD
E
INR
3
CLR
AC
ALU
LD
INR
4
CLR
INPR
IR
TR
LD
LD INR
OUTR
LD
CLR
Cloc
k
14
S1 S0 Register
0 0x
0 1 AR
1 0 PC
1 1 DR
0 0 AC
0 1 IR
1 0 TR
1 1 Memory
15
14 12 11
Opcode
0
Address
12 11
Register operation
1 1
3. Input-Output Instructions
15
1
12 11
1 1
(OP-code =111, I = 1)
0
I/O operation
16
Hex Code
I=0
I=1
0xxx 8xxx
1xxx 9xxx
2xxx Axxx
3xxx Bxxx
4xxx Cxxx
5xxx
Dxxx
6xxx
Exxx
Description
AND memory word to AC
Add memory word to AC
Load AC from memory
Store content of AC into memory
Branch unconditionally
Branch and save return address
Increment and skip if zero
CLA
CLE
CMA
CME
CIR
CIL
INC
SPA
SNA
SZA
SZE
HLT
7800
7400
7200
7100
7080
7040
7020
7010
7008
7004
7002
7001
Clear AC
Clear E
Complement AC
Complement E
Circulate right AC and E
Circulate left AC and E
Increment AC
Skip next instr. if AC is positive
Skip next instr. if AC is negative
Skip next instr. if AC is zero
Skip next instr. if E is zero
Halt computer
INP
OUT
SKI
SKO
ION
IOF
F800
F400
F200
F100
F080
F040
Input character to AC
Output character from AC
Skip on input flag
Skip on output flag
Interrupt on
Interrupt off
17
Transfer Instructions
- Data transfers between the main memory and the processor registers
- LDA, STA
Control Instructions
- Program sequencing and control
- BUN, BSA, ISZ
Input/output Instructions
- Input and output
- INP, OUT
18
Control Unit
Microprogrammed Control
A control memory on the processor contains microprograms that
activate the necessary control signals
19
15
Other inputs
3x8
decoder
7 6543 210
D0
Combinational
Control
logic
D7
T15
T0
15 14 . . . . 2 1 0
4 x 16
decoder
4-bit
sequence
counter
(SC)
Increment (INR)
Clear (CLR)
Clock
Control
signals
20
Timing Signals
Clock
T0
D3T4: SC 0
T1
T2
T3
T0
T1
T2
T3
T4
D3
CLR
SC
T4
T0
21
Instruction Cycle
Note: Every different processor has its own (different) instruction cycle
22
T1
S2
T0
S1
Bus
S0
Memory
unit
7
Address
Read
AR
LD
PC
INR
IR
LD
5
Clock
Common bus
23
AR
<-- PC
T0
T1
IR <-- M[AR],
PC <-- PC + 1
T2
(Register or I/O) = 1
(I/O) = 1
I
D7
= 0 (register)
T3
Execute
input-output
instruction
SC <-- 0
= 0 (Memory-reference)
T3
Execute
register-reference
instruction
SC <-- 0
= 0 (direct)
(indirect) = 1
I
T3
AR <-- M[AR]
T3
Nothing
Execute
memory-reference
instruction
SC <-- 0
T4
24
D'7IT3: AR M[AR]
D'7I'T3: Nothing
D7I'T3:Execute a register-reference
instr.
D7IT3: Execute an input-output instr.
25
r:
rB11:
rB10:
rB9:
rB8:
rB7:
rB6:
rB5:
rB4:
rB3:
rB2:
rB1:
rB0:
SC 0
AC 0
E0
AC AC
E E
AC shr AC, AC(15) E, E AC(0)
AC shl AC, AC(0) E, E AC(15)
AC AC + 1
if (AC(15) = 0) then (PC PC+1)
if (AC(15) = 1) then (PC PC+1)
if (AC = 0) then (PC PC+1)
if (E = 0) then (PC PC+1)
S 0 (S is a start-stop flip-flop)
26
Symbol
AND
ADD
LDA
STA
BUN
BSA
ISZ
Operation
Decoder
D0
D1
D2
D3
D4
D5
D6
Symbolic Description
AC AC M[AR]
AC AC + M[AR], E Cout
AC M[AR]
M[AR] AC
PC AR
M[AR] PC, PC AR + 1
M[AR] M[AR] + 1, if M[AR] + 1 = 0 then PC PC+1
- The effective address of the instruction is in AR and was placed there during
timing signal T2 when I = 0, or during timing signal T3 when I = 1
- Memory cycle is assumed to be short enough to complete in a CPU cycle
- The execution of MR instruction starts with T4
AND to AC
D0T4:
D0T5:
ADD to AC
D1T4:
D1T5:
DR M[AR]
AC AC DR, SC 0
Read operand
AND with AC
DR M[AR]
AC AC + DR, E Cout, SC 0
Read operand
Add to AC and store carry in E
27
LDA: Load to AC
D2T4:
DR M[AR]
D2T5:
AC DR, SC 0
STA: Store AC
D3T4:
M[AR] AC, SC 0
BUN: Branch Unconditionally
D4T4:
PC AR, SC 0
BSA: Branch and Save Return Address
M[AR] PC, PC AR + 1
Memory, PC, AR at time T4
20
PC = 21
BSA
135
Next instruction
AR = 135
136
Subroutine
BUN
21
Next instruction
135
21
135
Subroutine
PC = 136
135
BSA
BUN
135
28
BSA:
29
ADD
D0T 4
DR M[AR]
D1T 4
DR M[AR]
D 0T 5
AC AC DR
SC 0
BUN
AC AC + DR
E Cout
SC 0
BSA
M[AR] PC
AR AR + 1
D 5T 5
D 3T 4
M[AR] AC
SC 0
DR M[AR]
D2T 5
AC DR
SC 0
ISZ
D 5T 4
PC AR
SC 0
STA
D2T 4
D 1T 5
D 4T 4
PC AR
SC 0
LDA
D6T 4
DR M[AR]
D6T 5
DR DR + 1
D 6T 6
M[AR] DR
If (DR = 0)
then (PC PC + 1)
SC 0
30
Serial
communication
interface
Receiver
interface
Computer
registers and
flip-flops
OUTR
FGO
AC
INPR
OUTR
FGI
FGO
IEN
Keyboard
Transmitter
interface
INPR
FGI
31
Input/Output Instructions
D7IT3 = p
IR(i) = Bi, i = 6, , 11
INP
OUT
SKI
SKO
ION
IOF
p:
pB11:
pB10:
pB9:
pB8:
pB7:
pB6:
SC 0
AC(0-7) INPR, FGI 0
OUTR AC(0-7), FGO 0
if(FGI = 1) then (PC PC + 1)
if(FGO = 1) then (PC PC + 1)
IEN 1
IEN 0
Clear SC
Input char. to AC
Output char. from AC
Skip on input flag
Skip on output flag
Interrupt enable on
Interrupt enable off
32
- Open communication only when some data has to be passed --> interrupt.
- The I/O interface, instead of the CPU, monitors the I/O device.
- When the interface founds that the I/O device is ready for data transfer,
it generates an interrupt request to the CPU
- Upon detecting an interrupt, the CPU stops momentarily the task
it is doing, branches to the service routine to process the data
transfer, and then returns to the task it was performing.
33
Instruction cycle
IEN
=1
=1
=1
Interrupt cycle
Execute
instructions
=0
INPR
OUTR
FGI
FGO
IEN
Branch to location 1
PC 1
FGI
=0
=1
FGO
IEN 0
R0
=0
R1
34
BUN
1120
Main
Program
255
PC = 256
0
PC = 1
256
0
I/O
Program
1
BUN
1120
Main
Program
255
256
1120
1120
BUN
I/O
Program
0
BUN
M[AR] TR, PC 0
RT2:
PC PC + 1, IEN 0, R 0, SC 0
35
=1(Interrupt
Cycle)
RT0
RT0
AR PC
AR 0, TR PC
RT1
IR M[AR], PC PC + 1
RT1
M[AR] TR, PC 0
RT2
RT2
AR IR(0~11), I IR(15)
D0...D7 Decode IR(12 ~ 14)
=1(Register or I/O)
=1 (I/O)
D7IT3
Execute
I/O
Instruction
=0 (Register)
D 7IT3
Execute
RR
Instruction
PC PC + 1, IEN 0
R 0, SC 0
=0(Memory Ref)
D7
=1(Indir)
=0(Dir)
D7IT3
AR <- M[AR]
D7IT3
Execute MR
Instruction
INPR
OUTR
FGI
FGO
IEN
Idle
D7T4
36
Fetch
Decode
Indirect
Interrupt
Memory-Reference
AND
ADD
LDA
STA
BUN
BSA
ISZ
RT0:
RT1:
RT2:
D7IT3:
RT0:
RT1:
RT2:
D0T4:
D0T5:
D1T4:
D1T5:
D2T4:
D2T5:
D3T4:
D4T4:
D5T4:
D5T5:
D6T4:
D6T5:
D6T6:
AR PC
IR M[AR], PC PC + 1
D0, ..., D7 Decode IR(12 ~ 14),
AR IR(0 ~ 11), I IR(15)
AR M[AR]
R1
AR 0, TR PC
M[AR] TR, PC 0
PC PC + 1, IEN 0, R 0, SC 0
DR M[AR]
AC AC DR, SC 0
DR M[AR]
AC AC + DR, E Cout, SC 0
DR M[AR]
AC DR, SC 0
M[AR] AC, SC 0
PC AR, SC 0
M[AR] PC, AR AR + 1
PC AR, SC 0
DR M[AR]
DR DR + 1
M[AR] DR, if(DR=0) then (PC PC + 1),
SC 0
37
Register-Reference
CLA
CLE
CMA
CME
CIR
CIL
INC
SPA
SNA
SZA
SZE
HLT
Input-Output
INP
OUT
SKI
SKO
ION
IOF
D7IT3 = r
IR(i) = Bi
r:
rB11:
rB10:
rB9:
rB8:
rB7:
rB6:
rB5:
rB4:
rB3:
rB2:
rB1:
rB0:
D7IT3 = p
IR(i) = Bi
p:
pB11:
pB10:
pB9:
pB8:
pB7:
pB6:
38
Hardware Components of BC
A memory unit: 4096 x 16.
Registers:
AR, PC, DR, AC, IR, TR, OUTR, INPR, and SC
Flip-Flops(Status):
I, S, E, R, IEN, FGI, and FGO
Decoders:
a 3x8 Opcode decoder
a 4x16 timing decoder
Common bus: 16 bits
Control logic gates:
Adder and Logic circuit: Connected to AC
Control Logic Gates
- Input Controls of the nine registers
- Read and Write Controls of memory
- Set, Clear, or Complement Controls of the flip-flops
- S2, S1, S0 Controls to select a register for the bus
- AC, and Adder and Logic circuit