UNIT2.1-PPT
UNIT2.1-PPT
UNIT II
INSTRUCTION DESIGN
1
SYLLABUS
3
THE BASIC COMPUTER
15 0
4095
4
INSTRUCTIONS
• 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
5
STORED PROGRAM ORGANIZATION
Instruction Format
• A computer instruction is often divided into two parts
– An opcode (Operation Code) that specifies the operation for that
instruction
– An address that specifies the registers and/or locations in memory
to use for that operation
• In the Basic Computer, since the memory contains 4096 (= 212)
words, we needs 12 bit to specify which memory address this
instruction will use
• In the Basic Computer, bit 15 of the instruction specifies the
addressing mode (0: direct addressing, 1: indirect addressing)
• Since the memory words, and hence the instructions, are 16 bits
long, that leaves 3 bits for the instruction’s opcode
Instruction Format
15 14 12 11 0
I Opcode Address
6
Addressing
mode
ADDRESSING MODES
• The address field of an instruction can represent either
– Direct address: the address in memory of the data to use (the
address of the operand), (or)
– Indirect address: the address in memory of the address in memory of
the data to use
Effective Address (EA)
– The address, that can be directly used without modification to access
an operand for a computation-type instruction, or as the target address
for a branch-type instruction
7
COMPUTER REGISTERS
Registers in the Basic Computer
11 0
PC
Memory
11 0
4096 x 16
AR
15 0
IR
CPU
15 0 15 0
TR DR
7 0 7 0 15 0
OUTR INPR AC
List of BC Registers
DR 16 Data Register Holds memory operand
AR 12 Address Register Holds address for memory
AC 16 Accumulator Processor register
IR 16 Instruction Register Holds instruction code
PC 12 Program Counter Holds address of instruction
TR 16 Temporary Register Holds temporary data
INPR 8 Input Register Holds input character
8
OUTR 8 Output Register Holds output character
COMMON BUS SYSTEM
9
COMMON BUS SYSTEM
S2
S1 Bus
S0
Memory unit 7
4096 x 16
Address
Write Read
AR 1
LD INR CLR
PC 2
LD INR CLR
DR 3
LD INR CLR
E
ALU AC 4
LD INR CLR
INPR
IR 5
LD
TR 6
LD INR CLR
OUTR
Clock
LD 10
16-bit common bus
COMMON BUS SYSTEM
• Three control lines, S2, S1, and S0 control which register
the bus selects as its input S S S
2 Register
1 0
00 0 x
00 1 AR
01 0 PC
01 1 DR
10 0 AC
10 1 IR
11 0 TR
11 1 Memory
12
BASIC COMPUTER INSTRUCTIONS
Hex Code
Symbol Description
I=0I=1
BSA
ISZ
Instruction Types
Functional Instructions:
- Arithmetic, logic, and shift instructions
- ADD, CMA, INC, CIR, CIL, AND, CLA
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 14
CONTROL UNIT
• Control unit (CU) of a processor translates from machine
instructions to the control signals for the microoperations
that implement them
• Control units are implemented in one of two ways
• Hardwired Control
– CU is made up of sequential and combinational circuits to generate
the control signals
• Microprogrammed Control
– A control memory on the processor contains microprograms that
activate the necessary control signals
3x8
decoder
7654321
0
D0
I Combinational
D7 Control Control
signals
logic
T15
T0
15 14 . . . . 2 1 0
4 x 16
decoder
4-bit I
sequence n
counter
(SC) c
r
e
m 16
e
n
TIMING SIGNALS
- Generated by 4-bit sequence counter and 416 decoder
- The SC can be incremented or cleared.
-- Example: T0, T1, T2, T3, T4, T0, T1, . . .
Assume: At time T4, SC is cleared to 0 if decoder output D3 is
active.
D3T4: SC 0
T0 T1 T2 T3
T4 T0
Clock
T0
T1
T2
T3
T4
D3
CL R
SC
17
INSTRUCTION CYCLE
• In Basic Computer, a machine instruction is executed in the
following cycle:
1. Fetch an instruction from memory
2. Decode the instruction
3. Read the effective address from memory if the instruction
has an indirect address
4. Execute the instruction
• After an instruction is executed, the cycle starts again at
step 1, for the next instruction
T1
S2
T0
S1 Bus
S0
Memory
unit 7
Address
Read
AR 1
LD
PC 2
INR
IR 5
LD Clock
Common bus
19
DETERMINE THE TYPE OF INSTRUCTION
Start
SC
T0
AR PC
T1
IR M[AR], PC PC + 1
T2
Decode Opcode in IR(12-14),
AR IR(0-11), I IR(15)
(Register or I/O) = 1
= 0 (Memory-reference) D7
(I/O) = 1 = 0 (register) (indirect) = 1 = 0 (direct)
I I
T3 T3 T3 T3
Execute Execute AR M[AR] Nothing
input-output register-reference
instruction instructi
SC 0 on Execute T4
SC memory-reference
0 instructi
on
SC
0
D'7IT3: AR M[AR]
D'7I'T3: Nothing
D7I'T3: Execute a register-reference instr. 20
D7IT3: Execute an input-output instr.
REGISTER REFERENCE INSTRUCTIONS
Register Reference Instructions are identified when
- D7 = 1, I = 0
- Register Ref. Instr. is specified in b 0 -- b11 of IR
- Execution starts with timing signal T 3
r = D7 I T3=> Register Reference Instruction
Bi = IR(i) , i=0,1,2,...,11
r: SC 0
CLA rB11: AC 0
CLE rB10: E0
CMA rB9: AC AC’
CME rB8: E E’
CIR rB7: AC shr AC, AC(15) E, E AC(0)
CIL rB6: AC shl AC, AC(0) E, E AC(15)
INC rB5: AC AC + 1
SPA rB4: if (AC(15) = 0) then (PC PC+1)
SNA rB3: if (AC(15) = 1) then (PC PC+1)
SZA rB2: if (AC = 0) then (PC PC+1)
SZE rB1: if (E = 0) then (PC PC+1)
HLT rB0: S 0 (S is a start-stop flip-flop)
21
MEMORY REFERENCE INSTRUCTIONS
Operation
Symbol Decoder Symbolic Description
AND D0 AC AC M[AR]
ADD D1 AC AC + M[AR], E Cout
LDA D2 AC M[AR]
STA D3 M[AR] AC
BUN D4 PC AR
BSA D5 M[AR] PC, PC AR + 1
ISZ D6 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 T 2 when I = 0, or during timing signal T 3 when I = 1
- Memory cycle is assumed to be short enough to complete in a CPU cycle
- The execution of MR instruction starts with T 4
AND to AC
D0T4: DR M[AR] Read operand
D0T5: AC AC DR, SC 0 AND with AC
ADD to AC
D1T4: DR M[AR] Read operand
D1T5: AC AC + DR, E Add to AC and store carry in E
22
Cout , SC 0
MEMORY REFERENCE INSTRUCTIONS
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 +
20 0 BSA 135 20 0 BSA 135
1
PC = 21 Next instruction 21 Next instruction
Memory, PC after
AR = 135execution 135 21
136 Subroutine PC = 136 Subroutine
Memory
23
Memory
MEMORY REFERENCE
INSTRUCTIONS
BSA:
D5T4: M[AR] PC, AR AR + 1
D5T5: PC AR, SC 0
24
FLOWCHART FOR MEMORY REFERENCE
INSTRUCTIONS
Memory-reference instruction
D0 T4 D1 T 4 D2 T4
DR M[AR] DR M[AR] DR M[AR] M[AR] AC
D3 T 4 SC 0
D0 T5 D1 T 5 D2 T5
AC AC DR AC AC + DR AC DR
SC 0 E Cout SC 0
SC 0
D4 T4 D5 T 4 D6 T4
PC AR M[AR] PC DR M[AR]
SC 0 AR AR + 1
D5 T 5 D6 T5
PC AR DR DR + 1
SC 0
D6 T6
M[AR] DR
If (DR = 0)
25
then (PC PC + 1)
SC 0
INPUT-OUTPUT AND INTERRUPT
AC
Transmitter
Keyboard interface INPR FGI
INPR Input register - 8 bits
OUTR Output register - 8 bits Serial Communications Path
FGI Input flag - 1 bit Parallel Communications Path
FGO Output flag - 1 bit
IEN Interrupt enable - 1 bit
D7 IT3 = p
IR(i) = Bi, i = 6, …, 11
p: SC 0 Clear SC
INP pB11: AC(0-7) INPR, FGI 0 Input char. to AC
OUT pB10: OUTR AC(0-7), FGO 0 Output char. from AC
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
28
INTERRUPT INITIATED INPUT/OUTPUT
-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.
1120 1120
I/O I/O
Program Program
1 BUN 0 1 BUN 0
31