chapter 5 basic organization and design - … · 04/09/2016 · chapter 5 basic organization and...

64
1 CS 224: Computer Organization S.KHABET CHAPTER 5 Basic Organization and Design Outline Instruction Codes Computer Registers Computer Instructions Timing and Control Instruction Cycle Memory Reference Instructions Input-Output and Interrupt Complete Computer Description Design of Basic Computer Design of Accumulator Logic

Upload: trinhnhu

Post on 05-Aug-2018

232 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

1

CS 224: Computer Organization

S.KHABET

CHAPTER 5

Basic Organization and DesignOutline

• Instruction Codes

• Computer Registers

• Computer Instructions

• Timing and Control

• Instruction Cycle

• Memory Reference Instructions

• Input-Output and Interrupt

• Complete Computer Description

• Design of Basic Computer

• Design of Accumulator Logic

Page 2: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

2

Introduction

Every different processor type has its own design (different registers,

buses, micro-operations, machine instructions, etc)

Modern processor is a very complex device. It contains

Many registers

Multiple arithmetic units, for both integer and floating point calculations

The ability to pipeline several consecutive instructions to speed execution

Etc.

However, to understand how processors work, we will start with a

simplified processor model

This is similar to what real processors were like ~25 years ago

M. Morris Mano introduces a simple processor model he calls the Basic

Computer

We will use this to introduce processor organization and the

relationship of the RTL model to the higher level computer processor

Page 3: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

3

The Basic Computer

The Basic Computer has two

components,

a processor and

a memory

The memory has 4096 words in it.

4096 = 212, so it takes 12 bits to

select a word in memory

Each word is 16 bits long

CPU

4095

RAM

0

015

Page 4: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

4

Instruction Codes

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

The instructions of a program, along with any needed data are

stored in memory

The CPU reads the next instruction from memory and placed it

in an Instruction Register (IR)

Control circuitry in control unit then translates the instruction

into the sequence of micro-operations necessary to implement it.

There are many variations for arranging binary code of instructions.

Each computer has its own particular instruction code format.

Page 5: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

5

Instruction Format

A computer instruction is often divided into two parts (fields)

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

Opcode AddressInstruction Format

15 14 120

I

11

Addressing mode

Page 6: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

6

Instruction Code

An instruction code is divided into two parts:

1. Operation code:

An operation is a part of an instruction.

A group of bits that define the operation.

Example: addition, subtraction, shift…

The number of bits required for the operation code

depend on the total number of operations.

The operation code consists of n bits if there is 2n possible

operations (or less).

When the operation decoded by the control unit a

sequence of control signal are issued to perform the right

microoperations necessary for the operation.

Page 7: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

7

Instruction Codes

2. Operand

The operation is performed on data stored in memory or

register.

The operand part of an instruction specifies the location of

this data.

It must also specify the location where the result must be

stored.

Memory words can be specified in instruction codes by their

address

Processor registers can be specified by assigning a number to

each register.

Page 8: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

8

Instruction Codes

Stored Program Organization:

Instructions are stored in one section of memory and data in the

other.

Instructions (program)

Operands (data)

Address Opcode

15 12 11 0

Binary Operand

015

Accumulator AC (Processor register)

Page 9: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

9

Addressing Modes(1)

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)

Address where an operand is physically located

Page 10: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

10

Addressing Modes(2)

0 ADD 45722

Operand457

1 ADD 30035

1350

300

Operand1350

+

AC

+

AC

Direct addressing Indirect addressing

Page 11: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

11

Processor Registers (1)

A processor has many registers to hold instructions, addresses, data,

etc

The processor has a register, the Program Counter (PC) that holds the

memory address of the next instruction to get

Since the memory in the Basic Computer only has 4096 locations,

the PC only needs 12 bits

In a direct or indirect addressing, the processor needs to keep track

of what locations in memory it is addressing. The Address Register (AR)

is used for this

The AR is a 12 bit register in the Basic Computer

When an operand is found, using either direct or indirect addressing,

it is placed in the Data Register (DR). The processor then uses this

value as data for its operation

The Basic Computer has a single general purpose register –

the Accumulator (AC)

Page 12: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

12

Processor Registers (2)

The significance of a general purpose register is that it can be

referred to in instructions

e.g. load AC with the contents of a specific memory location;

store the contents of AC into a specified memory location

Often a processor will need a scratch register to store intermediate

results or other temporary data; in the Basic Computer this is the

Temporary Register (TR)

The Basic Computer uses a very simple model of input/output

(I/O) operations

The Input Register (INPR) holds an 8 bit character gotten from

an input device

The Output Register (OUTR) holds an 8 bit character to be send

to an output device

Page 13: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

13

Basic Computer Registers (1)

Registers in the Basic Computer

11 0

PC

15 0

IR

15 0

TR

7 0

OUTR

15 0

DR

15 0

AC

11 0

AR

INPR

0 7

Memory 4096 x 16

CPU

Page 14: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

14

Basic Computer Registers(2)

List of Basic Computer Registers

DR (Data Register) 16 Holds memory operand

AR (Address Register) 12 Holds address for memory

AC (Accumulator) 16 Processor register

IR (Instruction Register) 16 Holds instruction code

PC (Program Counter) 12 Holds address of instruction

TR (Temporary Register) 16 Holds temporary data

INPR (Input Register) 8 Holds input character

OUTR (Output Register) 8 Holds output character

Page 15: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

15

Common Bus System(1)

The basic computer has eight registers, a memory unit, and

a control unit.

Paths must be provided to transfer information from one

register to another and between memory and registers

A more efficient scheme for transferring information in a

system with many registers is to use a common bus.

Page 16: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

16

Common Bus System(2)

Bus

s1 s2s0

16-bit common bus

ClockLD

LD

LD

INR

OUTR

IR

INPR

LD INR CLR

LD INR CLR

LD INR CLR

LD INR CLR

WRITE

Address

ALUE

DR

PC

AR

CLR

7

1

2

3

4

5

6

AC

READ

Memory Unit

4096x16

TR

Page 17: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

17

Common Bus System(3)

AR

PC

DR

L I C

L I C

L I C

AC

L I C

ALU

IR

L

TR

L I C

OUTR L

INPR

Address

Read

Write

16-bit Common Bus

7 1 2 3 4 5 6

S0

S1 S2

L : LoadI : IncrementC : Clear

Memory

4096x16 E

Page 18: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

18

Common Bus System (4)

Three control lines, S2, S1, and S0 control which register the bus

selects as its input

Either one of the registers will have its load signal activated,

or the memory will have its write signal activated

Will determine where the data from the bus gets loaded

0 0 0 x0 0 1 AR0 1 0 PC0 1 1 DR1 0 0 AC1 0 1 IR1 1 0 TR1 1 1 Memory

S2 S1 S0 Register

Page 19: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

19

Common Bus System (5)

The 12-bit registers, AR and PC, have 0’s loaded onto the bus in

the high order 4 bit positions

The 8-bit registers OUTR and INPR communicate with a low

order 8 bits on the bus

12 least significant bits

12 bits

Page 20: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

20

Basic Computer Instructions (1)

Three Instruction Code Formats

15 14

12 11 0

I Op-Code Address

Memory-Reference Instructions (OP-Code = 000 ~ 110)

Register-Reference Instructions (OP-Code = 111, I = 0)

Input-Output Instructions (OP-Code =111, I = 1)

15 12 11

0

Register operation0 1 1 1

15 12 11 0

I/O operation1 1 1 1

Page 21: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

21

Basic Computer Instructions (2)Hex Code

Symbol I = 0 I = 1 Description

AND 0xxx 8xxx And memory word to AC

ADD 1xxx 9xxx Add memory word to AC

LDA 2xxx Axxx Load memory word to AC

STA 3xxx Bxxx Store content of AC in memory

BUN 4xxx Cxxx Branch unconditionally

BSA 5xxx Dxxx Branch and Save return address

ISZ 6xxx Exxx Increment and skip if zero

CLA 7800 Clear AC

CLE 7400 Clear E

CMA 7200 Complement AC

CME 7100 Complement E

CIR 7080 Circulate right AC and E

CIL 7040 Circulate left AC and E

INC 7020 Increment AC

SPA 7010 Skip next instruction if AC positive

SNA 7008 Skip next instruction if AC negative

SZA 7004 Skip next instruction if AC zero

SZE 7002 Skip next instruction if E is 0

HLT 7001 Halt computer

INP F800 Input character to AC

OUT F400 Output character from AC

SKI F200 Skip on input flag

SKO F100 Skip on output flag

ION F080 Interrupt On

IOF F040 Interrupt Off

Memory-Reference Instructions (OP-Code = 000 ~ 110)I=0 : 0xxx ~ 6xxx, I=1: 8xxx ~Exxx

Register-Reference Instructions

(OP-Code = 111, I = 0)7xxx (7800 ~ 7001)

Input-Output Instructions

(OP-Code =111, I = 1)Fxxx(F800 ~ F040)

Page 22: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

22

Instruction Set Completeness

A computer should have a set of instructions so that the user can construct machine language programs to evaluate any function that is known to be computable.

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

Page 23: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

23

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

We will consider a hardwired implementation of the control unit for the Basic Computer

Page 24: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

24

Timing and Control

Instruction register (IR)15 14 13 12 11 - 0

3 x 8decoder

7 6 5 4 3 2 1 0

I

D 0

15 14 . . . . 2 1 0

4 x 16decoder

4-bitsequence

counter(SC)

Increment (INR)

Clear (CLR)

Clock

Other inputs

Controlsignals

D

T

T

7

15

0

CombinationalControl

logic

Control unit of Basic Computer

Page 25: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

25

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

Clock

T0 T1 T2 T3 T4 T0

T0

T1

T2

T3

T4

D3

CLR SC

Page 26: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

26

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

Note : Every different processor has its own (different) instruction cycle

Instruction Cycle

Page 27: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

27

T0: Since only AR is connected to the address inputs of memory,

the address of instruction is transferred from PC to AR.

1. Place the content of PC onto the bus by making the bus selection

inputs S2S1S0 = 010.

2. Transfer the content of the bus to AR by enabling

the LD input of AR ( AR PC).

T0: Address transfer between PC and AR

Page 28: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

28

T1: The instruction read from

memory is placed in IR. At the same

time, PC is incremented to the address

of the next instruction.

1. Enable ‘read input’ of the memory.

2. Place the content of memory onto the bus

using the bus selection inputs S2S1S0 = 111.

(Note that the address lines are always

connected to AR, and the next instruction

address has been already placed in AR.)

3. Transfer the content of the bus to IR by

enabling LD input to IR

(IR M[AR]).

4. Increment PC by enabling the INR input of

PC ( PC PC + 1 ).

T1: Data transfer between Memory and IR

Page 29: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

29

Decoding at T2

T2: The operation code in IR is

decoded; the indirect bit is

transferred to I; the address part

of the instruction is transferred to

AR.

Page 30: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

30

Fetch and Decode Summary

S2

S1

S0

Bus

7Memoryunit

AddressRead

AR

LD

PC

INR

IR

LD Clock

1

2

5

Common bus

T1

T0

T0: AR PC (S0S1S2 = 010, T0 =1)

T1: IR M [AR], PC PC + 1 (S0S1S2 = 111, T1=1)T2: D0, . . . , D7 Decode IR (12-14), AR IR(0-11), I IR(15)

Page 31: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

31

Determine the Type of Instruction

At T3, microoperations which take place depend on the type of instruction. The four different paths are symbolized as follows,

When D7`T3 = 1 (At T3 & IR(12-14) ¹ 111), the execution of memory-reference instructions takes place with the next timing variable T4.

Control function Microoperation

D7`IT3: AR M[AR], indirect memory transfer

D7`I`T3: Nothing, direct memory transfer

D7I`T3: Execute a register-reference instruction

D7IT3: Execute an I/O instruction

Page 32: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

32

Flowchart for Fetch and Decode phases

= 0 (direct)

StartSC 0

AR PCT0

IR M[AR], PC PC + 1

T1

AR IR(0-11), I IR(15)

Decode Opcode in IR(12-14),

T2

D7= 0 (Memory-reference)(Register or I/O) = 1

II

Executeregister-reference

instruction

SC 0

Executeinput-outputinstruction

SC 0

M[AR]AR Nothing

= 0 (register)(I/O) = 1 (indirect) = 1

T3 T3 T3 T3

Executememory-reference

instruction

SC 0

T4

Page 33: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

33

Register Reference Instructions (1)

Register Reference Instructions are identified when

D7 = 1, I = 0

Register Ref. Instr. is specified in b0 ~ b11 of IR

Execution starts with timing signal T3

Page 34: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

34

Register Reference Instructions (2)

r = D7 IT3 => Register Reference Instruction

IR(i) = Bi [bit in IR(0-11) that specifies the operation]

r: SC 0CLA rB11: AC 0CLE rB10: E 0CMA 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 + 1SPA 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)

Page 35: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

35

Register Reference Instructions: Example (1)

7040 (in hexadecimal).

In binary : 0111 0000 0100 0000 (CIL)

D7I’ T3= r

Register Transfer

Statement

IR AC DR PC AR M[AR] E

Initial Values 1200 0001 00C7 035 200 0400 0

R’T0: AR PC ---- ---- ---- ---

-

035 7040 ---

R’T1: IR M[AR] ,

PC PC+1

7040 ---- ---- 036 --- ---- ---

R’T2: AR IR(0-11),

I IR(15)

---- ---- ---- --- 040 0400 ---

rB6: AC shl AC,

AC(0) E,

E AC(15)

---- 0002 ---- --- --- ---- 0

---- : means the same with previous value

Page 36: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

36

Register Reference Instructions: Example (2)

7100 (in hexadecimal),

In binary this is equivalent to: 0111 0001 0000 0000

(CME Complement E)

7010 (Bi=bit in position i =4)

in binary 0111 0000 0001 0000 (SPA skip if positive)

Page 37: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

37

Memory Reference Instructions (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

SymbolOperationDecoder 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] ACBUN D4 PC ARBSA D5 M[AR] PC, PC AR + 1ISZ D6 M[AR] M[AR] + 1, if M[AR] + 1 = 0 then PC PC+1

Page 38: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

38

Memory Reference Instructions (2)

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 Cout, SC 0 Add to AC andstore carry in E

LDA: Load to AC

D2T4: DR M[AR]

D2T5: AC DR, SC 0

STA: Store AC

D3T4: M[AR] AC, SC 0

Page 39: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

39

Memory Reference Instructions (3)

BUN: Branch unconditionally. Transfers the program to the

instruction specified by AR. (Note that the branch target must be

in AR beforehand.)

D4T4: PC AR, SC 0

BSA: Branch and Save Return Address. This instruction is useful

for branching to a position of the program called a subprogram

BSA: Branch to address AR and save PC address.

BSA is used to implement a subroutine call. The indirect BUN

instruction at the end of the subroutine performs the

subroutine return.

D5T4: M[AR] PC, AR AR + 1

D5T5: PC AR, SC 0

Page 40: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

40

Memory Reference Instructions (4)Memory, PC after execution

21

0 BSA 135

Next instruction

Subroutine

20

PC = 21

AR = 135

136

1 BUN 135

Memory, PC, AR at time T4

0 BSA 135Next instruction

Subroutine

20

21

135

PC = 136

1 BUN 135

Memory Memory

BSA: Branch and Save Return Address

M[AR] PC, PC AR + 1

BSA:

D5T4: M[AR] PC, AR AR + 1

D5T5: PC AR, SC 0

Page 41: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

41

Memory Reference Instructions (5)

ISZ: Increment and skip if zero.

Programmer usually stores a negative number in the memory

word (in two’s complement form).

As this negative number is repeatedly incremented by one, it

eventually reaches zero. At that time PC is incremented by one

in order to skip the next instruction.

Increment:

M[AR] M[AR] + 1, if (M[AR] + 1 = 0) then PC PC + 1

Increment and skip if zero requires 3 cycles.

D6T4: DR M[AR]

D6T5: DR DR + 1

D6T6: M[AR] DR, if DR=0 then PC PC + 1, SC 0

Page 42: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

42

Memory-reference instruction

DR M[AR] DR M[AR] DR M[AR] M[AR] ACSC 0

AND ADD LDA STA

AC AC DR

SC 0

AC AC + DR

E CoutSC 0

AC DRSC 0

D0T4 D1 T4 D2T4 D3 T4

D0T5D1T5 D2T5

PC AR

SC 0

M[AR] PC

AR AR + 1

DR M[AR]

BUN BSA ISZ

D4T4 D5T4 D6T4

DR DR + 1

D5T5 D6T5

PC AR

SC 0

M[AR] DRIf (DR = 0)then (PC PC + 1)SC 0

D6T6

Flowchart for Memory Reference Instructions

Page 43: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

43

Memory Reference Instructions: Example

Register Transfer Statement IR AC DR PC AR M[AR] E

Initial Values 1200 8000 00C7 036 080 unknow 1

R’T0: AR PC ---- ---- ---- --- 036 0200 ---

R’T1: IR M[AR] ,

PC PC+1

0200 ---- ---- 037 ---- ---- ---

R’T2: AR IR(0-11) ---- ---- ---- --- 200 0400 ---

T3: nothing ---- ---- ---- --- ---- ---- ---

D0T4: DR M[AR] ---- ----

0400

--- ---- ---- ---

D0T5: AC AC ˆ DR,

SC 0

---- 0000 ---- --- ---- ---- ---

---- : means the same with previous value

0200 (in hexadecimal).

In binary this is equivalent to: 0000 0010 0000 0000 (AND)

Page 44: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

44

Input/Output and Interrupt (1)

Input-Output Configuration

The terminal sends and receives serial information

The serial info. from the keyboard is shifted into INPR

The serial info. for the printer is stored in the OUTR

INPR and OUTR communicate with the terminal serially and with the AC in parallel.

The flags are needed to synchronize the timing difference between I/O device and the computer

Input-outputterminal

Serialcommunication

interface

Computerregisters andflip-flops

Printer

Keyboard

Receiverinterface

Transmitterinterface

FGOOUTR

AC

INPR FGI

Serial Communications PathParallel Communications Path

INPR Input register - 8 bitsOUTR Output register - 8 bitsFGI Input flag - 1 bitFGO Output flag - 1 bitIEN Interrupt enable - 1 bit

Page 45: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

45

Input/Output and Interrupt (2)

Input Flag (FGI), Output Flag (FGO)

FGI : set when INPR has information, clear when INPR is empty

FGO : set when operation is completed, clear when output device is active (for example a printer is in the process of printing)

Page 46: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

46

Program Controlled Data Transfer (1)

FGI=1 new information in the input device

FGI=0 computer accepte new information

from INPR

CPU:

/* Input, Initially FGI = 0 */

loop: If FGI = 0 go to loop

AC INPR, FGI 0

/* Output, Initially FGO = 1 */

loop: If FGO = 0 go to loop

OUTR AC, FGO 0

Start Input

FGI 0

FGI=0

AC INPR

MoreCharacter

END

yes

no

FGI=0

yes

no

Page 47: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

47

Program Controlled Data Transfer (2)

FGO =1 output device ready then information transmitted to it.

FGO = 0 output device busy

I/O Device:

/* Input */

loop: If FGI = 1 go to loop

INPR new data, FGI 1

/* Output */

loop: If FGO = 1 go to loop

consume OUTR, FGO 1

Start Output

FGO 0

FGO=0

MoreCharacter

END

OUTR AC

AC Data

yes

no

FGO=1

yes

no

Page 48: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

48

D7IT3 = p (common to all input-output instructions)

IR(i) = Bi (i = 6, 7, 8, 9, 10, 11)

p: SC 0 Clear SCINP pB11: AC(0-7) INPR, FGI 0 Input char. to ACOUT pB10: OUTR AC(0-7), FGO 0 Output char. from ACSKI pB9: if(FGI = 1) then (PC PC + 1) Skip on input flagSKO pB8: if(FGO = 1) then (PC PC + 1) Skip on output flagION pB7: IEN 1 Interrupt enable onIOF pB6: IEN 0 Interrupt enable off

Input/Output Instructions

Page 49: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

49

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

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.

IEN (Interrupt-enable flip-flop)

can be set and cleared by instructions interrupt enable on (ION ), and IOF

when cleared, the computer cannot be interrupted

Page 50: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

50

Interrupt Cycle

The interrupt cycle is a HW implementation of a branch and save return address operation.

At the beginning of the next instruction cycle, the instruction that is read from memory is in address 1.

At memory address 1, the programmer must store a branch instruction that sends the control to an interrupt service routine

The instruction that returns the control to the original program is "indirect BUN 0"

Page 51: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

51

R

Fetch and decode

instruction

Executeinstruction

FGI

FGO

IEN

IEN 0

R 0

Store return address

in location 0

M[0] PC

Branch to location 1PC 1

R 1

=0 =1

=0

=0

=0

=1

=1

=1

Instruction cycle Interrupt cycle

ffInterrupt R

1:))(('2'

1

'

0

RFGOFGIIENTTT

Flowchart for Interrupt Cycle

Page 52: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

52

Register Transfer Microoperations in Interrupt Cycle

Register Transfer Statements for Interrupt Cycle R FF 1 if IEN (FGI + FGO)T0T1T2

T0T1T2 (IEN)(FGI + FGO): R 1

The fetch and decode phases of the instruction cycle must be modified Replace T0, T1, T2 with R'T0, R'T1, R'T2

The interrupt cycle :

After interrupt cycle

0 BUN 1120

0

1

PC = 256255

1 BUN 0

Before interrupt

MainProgram

1120

I/OProgram

0 BUN 1120

0

PC = 1

256255

1 BUN 0

Memory

MainProgram

1120

I/OProgram

256

Save Return

Address(PC) at 0

0,0,0,1:

0,][:

,0:

2

1

0

SCRIENPCPCRT

PCTRARMRT

PCTRARRT

Jump to 1(PC=1)

Page 53: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

53

Further Questions on Interrupt

How can the CPU recognize the device requesting an interrupt ?

Since different devices are likely to require different interrupt

service routines, how can the CPU obtain the starting address of

the appropriate routine in each case ?

Should any device be allowed to interrupt the CPU while another

interrupt is being serviced ?

How can the situation be handled when two or more interrupt

requests occur simultaneously ?

Page 54: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

54

Complete Computer Description: Flowchart of Operations

(I/O ) 1 = = 0 (Register) (Indir) 1 = = 0 (Dir)

startSC 0, IEN 0, R 0

R

AR PC

R’T0

IR M[AR], PC PC + 1

R’T1

AR IR(0~11), I IR(15)D0...D7 Decode IR(12 ~ 14)

R’T2

AR 0, TR PC

RT0

M[AR] TR, PC 0

RT1

PC PC + 1, IEN 0R 0, SC 0

RT2

D7

I I

ExecuteI/O

Instruction

ExecuteRR

Instruction

AR <- M[AR] Idle

D7IT3 D7I’T3 D7’IT3 D7’I’T3

Execute MRInstruction

(Instruction Cycle) 0 = = 1 (Interrupt Cycle)

(Register or I/O) 1 = = 0 (Memory Ref)

D7’T4

Page 55: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

55

Fetch

Decode

IndirectInterrupt

Memory-ReferenceAND

ADD

LDA

STABUNBSA

ISZ

RT0: RT1:RT2:

D7IT3:

RT0:RT1:RT2:

D0T4:D0T5:D1T4:D1T5:D2T4:D2T5:D3T4:D4T4:D5T4:D5T5:D6T4:D6T5:D6T6:

AR PCIR M[AR], PC PC + 1D0, ..., D7 Decode IR(12 ~ 14),

AR IR(0 ~ 11), I IR(15)AR M[AR]

R 1AR 0, TR PCM[AR] TR, PC 0PC PC + 1, IEN 0, R 0, SC 0

DR M[AR]AC AC DR, SC 0DR M[AR]AC AC + DR, E Cout, SC 0DR M[AR]AC DR, SC 0M[AR] AC, SC 0PC AR, SC 0M[AR] PC, AR AR + 1PC AR, SC 0DR M[AR]DR DR + 1M[AR] DR, if(DR=0) then (PC PC + 1), SC 0

T0T1T2(IEN)(FGI + FGO):

Complete Computer Description Microoperations (1)

Page 56: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

56

Register-Reference

CLACLECMACMECIRCILINCSPASNASZASZEHLT

Input-Output

INPOUTSKISKOIONIOF

D7IT3 = rIR(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:

(Common to all register-reference instr)(i = 0,1,2, ..., 11)SC 0AC 0E 0AC ACE EAC shr AC, AC(15) E, E AC(0)AC shl AC, AC(0) E, E AC(15)AC AC + 1If(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

(Common to all input-output instructions)(i = 6,7,8,9,10,11)SC 0AC(0-7) INPR, FGI 0OUTR AC(0-7), FGO 0If(FGI=1) then (PC PC + 1)If(FGO=1) then (PC PC + 1)IEN 1IEN 0

Complete Computer Description Microoperations(2)

Page 57: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

57

Design of Basic Computer

Hardware Components of Basic Computer

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

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

Page 58: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

58

Control of Registers and Memory

Address Register: AR

Scan all of the register transfer statements that change the content of AR:

LD (AR) = R'T0 + R'T2 + D'7IT3

CLR (AR) = RT0INR (AR) = D5T4

R’T0: AR PC LD (AR)R’T2: AR IR(0-11) LD (AR)D’7IT3: AR M[AR] LD (AR)RT0: AR 0 CLR (AR)D5T4: AR AR + 1 INR (AR)

AR

LD

INR

CLR

Clock

To bus12

From bus12

D'

I

TT

R

T

D5

T

7

32

0

4

Page 59: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

59

Control of Flags

IEN: Interrupt Enable Flag

pB7: IEN ← 1 (I/O Instruction)

pB6: IEN ← 0 (I/O Instruction)

RT2: IEN ← 0 (Interrupt)

p = D7IT3 (Input/Output Instruction)

D

I

T3

7

J

K

Q IEN

p

B7

B6

T2

R

Page 60: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

60

For AR D4T4: PC ARD5T5: PC AR

x1 = D4T4 + D5T5

x1

x2

x3

x4

x5

x6

x7

Encoder

S2

S1

S0

Multiplexer

bus select

inputs

x1 x2 x3 x4 x5 x6 x7 S2 S1 S0selectedregister

0 0 0 0 0 0 0 0 0 0 none1 0 0 0 0 0 0 0 0 1 AR0 1 0 0 0 0 0 0 1 0 PC0 0 1 0 0 0 0 0 1 1 DR0 0 0 1 0 0 0 1 0 0 AC0 0 0 0 1 0 0 1 0 1 IR0 0 0 0 0 1 0 1 1 0 TR0 0 0 0 0 0 1 1 1 1 Memory

Control of Common Bus

Page 61: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

61

Design of Accumulator Logic

Circuits associated with AC 16

16

8

Adder and

logic

circuit

16ACFrom DR

From INPR

Control

gates

LD INR CLR

16

To bus

Clock

All the statements that change AC

D0T5: AC AC DR AND with DRD1T5: AC AC + DR Add with DRD2T5: AC DR Transfer from DRpB11: AC(0-7) INPR Transfer from INPRrB9: AC AC ComplementrB7 : AC shr AC, AC(15) E Shift rightrB6 : AC shl AC, AC(0) E Shift leftrB11 : AC 0 ClearrB5 : AC AC + 1 Increment

Page 62: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

62

Gate structures for controlling the LD, INR, and CLR of AC

AC

LD

INR

CLR

Clock

To bus16From Adder

and Logic

16

AND

ADD

DR

INPR

COM

SHR

SHL

INC

CLR

D 0

D 1

D 2

B 11

B 9

B 7

B 6

B 5

B 11

r

p

T 5

T 5

Control of AC Register

Page 63: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

63

One stage of Adder and Logic circuit

AND

ADD

DR

INPR

COM

SHR

SHL

J

K

Q

AC(i)

LD

FA

C

C

FromINPR

bit(i)

DR(i)AC(i)

AC(i+1)

AC(i-1)

i

i

i+1

I

ALU (Adder and Logic Circuit)

Page 64: CHAPTER 5 Basic Organization and Design - … · 04/09/2016 · CHAPTER 5 Basic Organization and Design Outline ... •Design of Basic Computer ... M. Morris Mano introduces a simple

64

Announcements

Readings

Chapter 5 of the textbook: Computer System Architecture,

M. Mano

5-3, 5-4, 5-6, 5-9, 5-10, 5-11, 5-12, 5-15, 5-16, 5-17, 5-18