Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer...

70
Computer Organization and Architecture Dr Binu P Chacko Associate Professor Department of Computer Science Department of Computer Science Prajyoti Niketan College, Pudukad, THRISSUR

Transcript of Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer...

Page 1: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Computer Organization and ArchitectureDr Binu P ChackoAssociate Professor

Department of Computer ScienceDepartment of Computer SciencePrajyoti Niketan College, Pudukad, THRISSUR

Page 2: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Instruction CodesInstruction Codes• Computer organization is defined by its internal registers, timing 

and control structure, and the set of instructions that it uses• A computer is capable of executing various micro‐operations, and 

can be instructed as to what specific sequence of operations it must performA t i t ti i bi d th t ifi f• A computer instruction is a binary code that specifies a sequence of micro‐operations for the computer

• Computer reads each instruction from memory and places it in a control register The control then interprets the binary code of thecontrol register. The control then interprets the binary code of the instruction and proceeds to execute it by issuing a sequence of micro‐operations needed for the h/w implementation of the operation

• Stored program concept: ability to store and execute instructions• Instruction code = opcode + operands• The number of bits required for the operation code depends on the 

t t l b f ti il bl i th ttotal number of operations available in the computer

Page 3: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Stored Program OrganizationStored Program OrganizationOpcode Address 

0111215Memory4096 x 16

Instructions(program)

4096 x 16Instruction format

Operands(data)015

Binary operand

Processor register(accumulator or AC)

Page 4: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Indirect AddressIndirect AddressI Opcode Address 

15 14 12 11 0

Instruction format

0 ADD 45722

Memory

1 ADD 30035

Memory

Operand457 1350300

Operand1350

+

AC

+

ACDirect address

Indirect address•Effective address 457, 1350

Page 5: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Computer RegistersComputer RegistersRegister symbol

No of bits Register name Function

DRARACIR

16121616

Data registerAddress registerAccumulatorI i i

Holds memory operandHolds address for memoryProcessor registerH ld i i dIR

PCTRINPR

1612168

Instruction registerProgram counterTemporary registerInput register

Holds instruction codeHolds address of instructionHolds temporary data during processingHolds 8 bit character from an I/P device

OUTR 8p g

Output register/

Holds 8 bit character for an O/P device

Page 6: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

emSyste

Bus S

mon

 Co

mm

C

Page 7: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Computer InstructionsComputer Instructions

• Instruction code formatsInstruction code formats

1 Opcode Address 15 14 12 11 0

Memory – reference instruction

0    1   1    1 Register operation Register – reference instruction

1    1    1 1 I/O operation Input – output instruction

S b l D i tiSymbol Description

INPOUTSKI

Input character to ACOutput character from ACSkip on input flagSKI

SKOIONIOF

Skip on input flagSkip on output flagInterrupt onInterrupt off

Page 8: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

ContSymbol Description Cont…ANDADDLDASTA

AND memory word to ACADD memory word to ACLoad memory word to ACS f AC iSTA

BUNBSAISZ

Store content of AC in memoryBranch unconditionallyBranch and save return addressIncrement and skip if zerop

CLACLECMA

Clear ACClear EComplement AC

CMECIRCILINC

Complement ECirculate right AC and ECirculate left AC and EIncrement ACINC

SPASNASZA

Increment ACSkip next instruction if AC positiveSkip next instruction if AC negativeSkip next instruction if AC zerok fSZE

HLTSkip next instruction if E zeroHalt computer

Page 9: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…

Instructions are categorized intoInstructions are categorized into• Arithmetic, logical, and shift instructions

i f i i f i d• Instructions for moving information to and from memory and processor registers

• Program control instructions together with instructions that check status conditions

• Input and output instructions

Page 10: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Timing and ControlTiming and Control• Timing for all registers is controlled by a master clock generator

• Control signals are generated in the control unit• Two types of control organization: hardwired control• Two types of control organization: hardwired control and microprogrammed control

• Hardwired organization: control logic is implemented ith t fli fl d d d th di it lwith gates, flip‐flops, decoders, and other digital 

circuits• Microprogrammed organization: control information is p g gstored in a control memory. This memory is programmed to initiate the required sequence of microoperationsp

Page 11: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Control UnitControl Unit

Page 12: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Control Timing SignalControl Timing Signal

• D₃T₄: SC <‐ 0D₃T₄: SC < 0

Page 13: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Instruction CycleInstruction Cycle• Fetch the instruction from the memory• Decode the instruction• Read effective address from memory if the instruction has an 

indirect addressh• Execute the instruction

• Fetch and decode: Initially PC is loaded with address of the first instruction. SC is cleared to 0. After each clock pulse, SC is incremented by 1 so that timing signals go through the sequenceincremented by 1 so that timing signals go through the sequence T₀, T₁, T₂, and so on.

• microoperationsT₀ : AR <‐ PCT₀ : AR < PCT₁ : IR <‐M[AR], PC <‐ PC + 1T₂ : D₀, …, D₇ <‐ Decode IR(12 – 14), AR <‐ IR(0 – 11), I <‐ IR(15)

Page 14: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer
Page 15: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

• Determine theDetermine the type of instruction in T₃instruction in T₃

Page 16: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

• Register‐reference instructions use bits 0 to 11 t if f th 12 i t tito specify one of the 12 instructions

• These instructions are executed in T₃

Page 17: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Memory Reference InstructionsMemory Reference Instructions

• Execution starts at T₄Execution starts at T₄

Page 18: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…• AND to ACD₀T₄ : DR <‐M[AR]D₀T₅ : AC <‐ AC Λ DR, SC <‐ 0• ADD to ACD₁T₄ : DR <‐M[AR]D₁T₄ : DR <‐M[AR]D₁T₅ : AC <‐ AC + DR, E <‐ Cout, SC <‐ 0• Output carry Cout is transferred to E (extended accumulator) 

fli flflip flop• LDAD₂T₄ : DR <‐M[AR]D₂T₅ : AC <‐ DR, SC <‐ 0• STAD T : M[AR] < AC SC < 0D₃T₄ : M[AR] <‐ AC, SC <‐ 0

Page 19: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…

• BUN0       BSA         135

Next instruction2021

Memory

D₄T₄ : PC <‐ AR, SC <‐ 0• BSA

Next instruction

D₅T₄ : M[AR] <‐ PC, AR <‐ AR + 1D₅T₅ : PC <‐ AR, SC <‐ 0

21

Subroutine135136

• ISZD₆T₄ : DR <‐M[AR]D T DR DR 1

1        BUN         135

D₆T₅ : DR <‐ DR + 1D₆T₆ : M[AR] <‐ DR, if (DR = 0) then (PC <‐ PC + 1), SC <‐ 0SC < 0

Page 20: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer
Page 21: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

I/O ConfigurationI/O terminal Serial communication

interfaceComputer registersAnd flip flops

FGO

Printer Receiver interface OUTR

AC

INPRTransmitter fKeyboard

• Initially FGI is cleared to 0. When a key is struck in the keyboard, 8‐

INPRinterfaceKeyboard

FGIy y y ,

bit alphanumeric code is shifted into INPR and FGI is set to 1. Then, the information from INPR is transferred in parallel to AC and FGI is cleared to 0I iti ll FGO i t t 1 Th i f ti f AC i t f d i• Initially FGO is set to 1. The information from AC is transferred in parallel to OUTR and FGO is cleared to 0. Printer accepts the information and prints it, and then sets FGO to 1 

Page 22: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

I/O InstructionsI/O InstructionsD₇IT₃ = p (common to all I/O instructions)IR(i) = Bᵢ [bit in IR(6 – 11) that specifies the instruction)

p SC <‐ 0 Clear SC

INP pB₁₁ AC(0 – 7) <‐ INPR, FGI <‐ 0 Input character

OUT pB₁₀ OUTR <‐ AC(0 – 7), FGO <‐ 0 Output character

SKI pB₉ If (FGI = 1) then (PC <‐ PC + 1) Skip on input flag

SKO pB If (FGO = 1) then (PC < PC + 1) Skip on output flagSKO pB₈ If (FGO = 1) then (PC <‐ PC + 1) Skip on output flag

ION pB₇ IEN <‐ 1 Interrupt enable on

IOF pB₆ IEN <‐ 0 Interrupt enable off

I/O instructions are used to transfer data to and from AC, to check flag bits and for controlling the interrupt facility

Page 23: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

ycle

upt C

terru

Int

Page 24: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Memory

0 256

Memory

0Cont…0 BUN     1120

main program1

255PC = 256

0 BUN     1120

main programPC = 1

255256

I/O program

PC = 256

1120 I/O program

256

1120

1      BUN      0 1      BUN      0

Before interrupt After interrupt

Condition for setting flip flop R to 1 RT₀:    AR <‐ 0,  TR <‐ PCRT M[AR] TR PC 0

Register transfer statements

T₀’T₁’T₂’(IEN)(FGI + FGO):    R <‐ 1 RT₁:    M[AR] <‐ TR,   PC <‐ 0RT₂:    PC <‐ PC + 1,   IEN <‐ 0,  R <‐ 0,  SC <‐ 0

Page 25: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

ComputerComputer Components• Memory unit• Registers: AR, PC, DR, 

AC, IR, TR, OUTR, INPR, SCSC

• Flip‐flops: I, S, E, R, IEN, FGI, FGO

• Decoders: 3 x 8• Decoders: 3 x 8 operation decoder, 4 x 16 timing decoder

• 16 bit common bus• Control logic gates• Adder and logic circuit

Page 26: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

• aaaa

Page 27: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

• ssss

Page 28: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Control of RegistersControl of RegistersStatements that change the contents of ARR’T₀: AR <‐ PCR’T₂: AR <‐ IR(0‐11)D₇’IT₃: AR <‐M[AR]RT₀: AR <‐ 0D₅T₄: AR <‐ AR + 1Control I/P of registers LD(AR) = R’T₀ + R’T₂ + D₇’IT₃CLR(AR) = RT₀INR(AR) = D₅T₄Read I/P MemoryRead = R’T₁ + D₇’IT₃ + (D₀ + D ₁+ D₂ + D₆)T₄( )

Page 29: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Control of Common BusControl of Common BusEncoder for bus selection circuit

Inputs Outputs  Register selected for bus

x₁ x₂ x₃ x₄ x₅ x₆ x₇ S₂ S₁ S₀

0 0 0 0 0 0 0 0 0 0 None

1 0 0 0 0 0 0 0 0 1 AR

0 1 0 0 0 0 0 0 1 0 PC

0 0 1 0 0 0 0 0 1 1 DR

0 0 0 1 0 0 0 1 0 0 AC

0 0 0 0 1 0 0 1 0 1 IR0 0 0 0 1 0 0 1 0 1 IR

0 0 0 0 0 1 0 1 1 0 TR

0 0 0 0 0 0 1 1 1 1 Memory

Page 30: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Control of Flip‐flopsControl of Flip flops

pB₇: IEN <‐ 1pB₇: IEN < 1pB₆: IEN <‐ 0

0RT₂: IEN <‐ 0where p = D₇IT₃ and B₆ and B₇ are bits 6 and 7 of IR

Page 31: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…Boolean functions for the encoderS₀ = x₁ + x₃ + x₅ + x₇S₁ = x₂ + x₃ + x₆ + x₇S₂ = x₄ + x₅ + x₆ + x₇Logic that makes x₁ = 1 (statements that 

have AR as source)D₄T₄ : PC <‐ AR Multiplexer S₂

x₁x₂x₃

Encoder for bus selection inputs

D₅T₅ : PC <‐ ARBoolean function for x₁x₁ = D₄T₄ + D₅T₅

Encoder  bus select inputsS₀

S₁₂₃

x₄x₅x₆x₇

Boolean function for x₇ (same as memory read)

x₇ = R’T₁ + D₇’IT₃ + (D₀ + D ₁+ D₂ + D₆)T₄

Page 32: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Design of Accumulator LogicDesign of Accumulator LogicRegister transfer statementsrB₁₁ : AC <‐ 0D₀T₅ : AC <‐ AC Ʌ DR rB₉ : AC <‐ AC‐₀ ₅ ₉D₁T₅ : AC <‐ AC + DR   rB₇ : AC <‐ shr AC, AC(15) <‐ ED₂T₅ : AC <‐ DR rB₆ : AC <‐ shl AC, AC(0) <‐ EpB AC(0 7) < INPR rB AC < AC + 1pB₁₁ : AC(0‐7) <‐ INPR rB₅ : AC <‐ AC + 1

Page 33: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer
Page 34: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Adder & Logic Circuit• Adder & logic circuit is divided into 16 stages, with each state corr: to one 

bit f ACbit of AC• When LD is enabled, 16 inputs Iᵢ (i = 0, 1, …, 15) are transferred to AC(0‐15)• Inputs of the gates with symbolic names come from the outputs of gates 

marked with the same symbolic name in Fig 5.21marked with the same symbolic name in Fig 5.21

Page 35: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Microprogrammed controlMicroprogrammed control• Function of a CU is to initiate a sequence of microoperationsMethods of implementing a CU• Hardwired control: control signals are generated by hardware• Use of fixed instructions, fixed logic blocks of and/or arrays, 

d d dencoder, decoder• High speed operation, expensive, relatively complex, no flexibility• E.g. Intel 8085, Motorola 6802, Zilog 80, RISC CPUs• Microprogrammed control: A CU whose binary control variables are 

stored in memory. An elegant and systematic method for controlling the microoperation sequences

• The control function that specifies a microoperation is a binary• The control function that specifies a microoperation is a binary variable. Control variables are represented by control words. Each word in control memory (part of CU) contains a microinstruction. A sequence of microinstructions constitutes a microprogram

• E.g. Intel 8080, Motorola 68000, CISC CPUs

Page 36: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…• Dynamic microprogramming permits a microprogram to be loaded 

from a magnetic diskh hi i i i i i i f i i i• Each machine instruction initiates a series of microinstructions

• Microinstructions generate microoperations to fetch the instruction from main memory; to evaluate effective address, to execute the operation specified by the instruction and to return control to theoperation specified by the instruction, and to return control to the fetch phase to repeat the cycle for the next instruction

• Microinstruction contains bits for initiating microoperations and bits that determine the address sequence for the control memoryq y

• Functions of microprogram sequencer : increment CAR by 1, load CAR with an address from control memory, transfer an external address, or load an initial address to start the control operations

( )• CAR (also called pipeline register) allows the execution of microoperations simultaneously with the generation of the next microinstruction

• Adv : The H/W configuration need not be changed for different• Adv : The H/W configuration need not be changed for different operations; instead specify a different set of microinstructions for control memory

Page 37: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Address sequencingsequencing•Microinstructions are stored in groups (routine)

•Each computer instruction has its own microprogram routine to generate microoperations that execute the instruction•An initial address is loaded into CAR when power is on This address is the address of•An initial address is loaded into CAR when power is on. This address is the address of the first microinstruction that activates the instruction fetch routine. The fetch routine may be sequenced by incrementing CAR. At the end of the fetch routine, instruction is in IRinstruction is in IR•Determine effective address of the operand – addressing modes. This routine can be reached through a branch microinstruction, which is conditioned on the status of mode bits of the instruction. When this routine is completed, address of the p ,operand is in MAR•Generate microoperations to execute the instruction. Mapping – a rule thattransforms the instruction code into a control memory address. Microprograms that employ subroutines will Require an external register for storing the return address•At the end of the execution of the instruction, return to fetch routine by executing an unconditional branch instruction

Page 38: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

ss

Page 39: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…• Branch logic : Test the specified condition and branch to the 

i di t d dd if th diti i t th i CAR iindicated address if the condition is met; otherwise, CAR is incremented

• Status bits together with branch address in the microinstruction control the conditional branch decisions generated in the branchcontrol the conditional branch decisions generated in the branch logic

• 3 bits in the microinstruction are used to specify any one of 8 status bit conditions. These bits provide selection variables for the multiplexer. If the selected status bit is in 1 state, o/p of the multiplexer is 1; otherwise 0. o/p 1 generates a control signal to transfer the branch address from the microinstruction into CAR. o/p 0 causes CAR to be incremented0 causes CAR to be incremented

• Status bits provide information such as carry out of an adder, sign bit of a number, mode bits of an instruction, and input/output status conditions

Page 40: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Mapping of InstructionMapping of Instruction• 4 bit operation code should be converted into a 7 bit address for 

th t l t i i 128 dthe control memory containing 128 words• For each computer instruction, a microprogram routine may contain 

four microinstructions. If the routine needs more than 4 microinstructions it can use addresses 1000000 through 1111111microinstructions, it can use addresses 1000000 through 1111111. If it uses fewer than four microinstructions, the unused memory locations would be available for other routines

• Subroutine: Microinstructions can be saved by employing subroutines that use common sections of microcode. E.g. sequence of microoperations needed to generate effective address of the operand

ddopcode0  1  1  1 addressComputer instruction

Mapping bits    0  x  x x x 0  0

0  1  0  1  1  0  0Microinstruction address

Page 41: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer
Page 42: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Computer ConfigurationComputer Configuration

• Transfer of information among registers in theTransfer of information among registers in the processor is done through MUX

• DR <‐ AC, PC or memoryDR  AC, PC or memory• AR <‐ PC or DR• PC <‐ AR• PC <‐ AR• AC <‐ ALU <‐ AC, DRM i it dd f AR• Memory receives its address from AR

• DR  Memory

Page 43: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

F3 Microoperation Symbol

000 None NOP

microinstruction :   000 100 101•Two or more conflicting microoperationscannot be specified

MicroprogramMicroinstruction format

001010011100

AC <‐ AC   DRAC <‐ ACAC <‐ shl AC AC <‐ shr AC

XORCOMSHLSHR

cannot be specified

Microinstruction format

F1(3) F2(3) F3(3) CD(2) BR(2) AD(7)

Condition for branching Address field100101110111

AC <‐ shr ACPC <‐ PC + 1PC <‐ ARReserved

SHRINCPCARTPC

• No more than 3 microoperations can be chosen for a microinstruction

Microoperation fields Branch field

microinstructionF1 Microoperation Symbol

000001

NoneAC <‐ AC+ DR

NOPADD

F2 Microoperation Symbol

000001

NoneAC <‐ AC‐ DR

NOPSUB001

010011100101

AC  AC  DRAC <‐ 0AC <‐ AC + 1AC <‐ DRAR DR (0 10)

ADDCLRACINCACDRTACDRTAR

001010011100101

AC  AC DRAC <‐ AC Ѵ DRAC <‐ AC Λ DRDR <‐M[AR]DR AC

SUBORANDREADACTDR101

110111

AR <‐ DR (0 – 10)AR <‐ PCM[AR] <‐ DR

DRTARPCTARWRITE

101110111

DR <‐ ACDR <‐ DR + 1DR (0 – 10) <‐ PC

ACTDRINCDRPCTDR

Page 44: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…CD Condition Symbol Comments

0001

Always = 1DR (15)

UI

Unconditional branchI di dd bi Cont…01

1011

DR (15)AC (15)AC = 0

ISZ

Indirect address bitSign bit of ACZero value in AC

•CD is used in conjunction with BR

BR Symbol Function

00 JMP CAR <‐ AD if condition = 100

01

JMP

CALL

CAR <‐ AD if condition = 1CAR <‐ CAR + 1 if condition = 0CAR <‐ AD, SBR <‐ CAR + 1 if condition = 1CAR <‐ CAR + 1 if condition = 0

1011

RETMAP

CAR <‐ SBR (Return from subroutine)CAR (2 – 5) <‐ DR (11 ‐14), CAR (0, 1, 6) <‐ 0

•BR is used in conjunction with AD•JMP and CALL instructions depend on CD•RET and MAP are independent of CD and AD•A symbolic (assembly language) microprogram is created using Symbols in the above tables•A symbolic microinstruction is divided into five fields: label microoperations CD BR and ADA symbolic microinstruction is divided into five fields: label, microoperations, CD, BR and AD•Microoperations field consists of one, two or three symbols separated by commas. There may be no more than one symbol from each F field•AD specifies the address in 3 ways‐1. With symbolic address 2. NEXT 3. left empty for RET or MAP

Page 45: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…• Microinstructions for fetch routineAR <‐ PC Cont…AR <‐ PCDR <‐M[AR], PC <‐ PC + 1AR <‐ DR(0 – 10), CAR(2 – 5) <‐ DR(11 – 14), CAR(0, 1, 6) <‐ 0

• Symbolic microprogramORG 64ORG 64

FETCH: PCTAR U JMP NEXTREAD,  INCPC U JMP NEXTDRTAR U MAP

• Binary microprogramBinaryaddress

F1 F2 F3 CD BR AD

1000000 110 000 000 00 00 100000110000011000010

000101

100000

101000

0000

0011

10000100000000

Page 46: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Symbolic Microprogram (Partial)

Label Microoperations CD BR AD

ORG 0 Cont…ADD:

ORG 0NOPREADADD

IUU

CALLJMPJMP

INDRCTNEXTFETCH

BRANCH:ORG 4NOPNOP

SU

JMPJMP

OVERFETCH

OVER: NOPARTPC

ORG 8

IU

CALLJMP

INDRCTFETCH

STORE:ORG 8NOPACTDRWRITE

IUU

CALLJMPJMP

INDRCTNEXTFETCH

EXCHANGE:ORG 12NOPREAD

IU

CALLJMP

INDRCTNEXTREAD

ACTDR, DRTACWRITE

UUU

JMPJMPJMP

NEXTNEXTFETCH

Page 47: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…

FETCH:ORG 64PCTAR U JMP NEXTFETCH:

INDRCT:

PCTARREAD, INCPCDRTARREADDRTAR

UUUUU

JMPJMPMAPJMPRET

NEXTNEXT

NEXTDRTAR U RET

•The various fields in microinstruction format provide control bits to initiateThe various fields in microinstruction format provide control bits to initiate microoperations in the system. Each field requires a decoder to produce thecorresponding control signals 

Page 48: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

itol Un

ontro

of Co

sign o

Des

Page 49: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Microprogram SequencerMicroprogram Sequencer• Basic components of μp CU: control memory, circuits that select 

next address• The address selection part is called microprogram sequencer• The address selection part is called microprogram sequencer• Purpose: To present an address to the CM so that a MI may be read 

and executed• The next address logic of the sequencer determines the specific• The next address logic of the sequencer determines the specific 

address source to be loaded into CAR. The choice of address source is guided by the next address information bits that the sequencer receives from the present MI

• CD field of MI selects one of the status bits in MUX2. If this bit is 1, T (test) variable is 1; otherwise 0

• T value together with 2 bits of BR field will go to input logic circuit. The input logic will determine the type of operations (incrementThe input logic will determine the type of operations (increment, branch or jump, call and return from subroutine, load an external address, push or pop the stack, and other address sequencing operations) that are available in the unit

• A sequencer will have a register stack of about 4 to 8 levels deep. So a number of subroutines can be active at the same time

Page 50: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer
Page 51: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…• Boolean functions for input logic circuitS₁ = I₁S₀ = I₁I₀ + I₁’TL = I₁’I₀T

Input logic truth table

BR field Input MUX 1 Load SBR

I₁ I₀ T S₁ S₀ L

0 0 0 0 0 0 0 0

0 0 0 0 1 0 1 0

0 1 0 1 0 0 0 0

0 1 0 1 1 1 1 10 1 0 1 1 1 1 1

1 0 1 0 X 1 0 0

1 1 1 1 X 1 1 0

Page 52: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

CPUCPU

Page 53: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont• R1 <‐ R2 – R3 Cont…R1  R2  R3Field : SELA SELB SELD OPRS b l R2 R3 R1 SUBSymbol : R2 R3 R1 SUBControl word  : 010 011 001 00101

ALU operations

OPR Operation Symbol

00000 Transfer A TSFA00000000010001000101

Transfer AIncrement AAdd A + BSubtract A ‐ B

TSFAINCAADDSUB

00110010000101001100

Decrement AAND A and BOR A and BXOR A and B

DECAANDORXOR01100

011101000011000

XOR A and BComplement AShift right AShift left A

XORCOMASHRASHLA

Page 54: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…

Page 55: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Stack OrganisationStack Organisation• Stack works on LIFO basis• SP always points at the top item in the stack

SP i 6 biFULL EMTY

• SP contains 6 bits• FULL is set when stack is full, and EMTY is 

set when stack is emptyDR h ld th d t t b itt i t d

63Address 

• DR holds the data to be written into or read out of the stack

• Push: SP <‐ SP + 1M[SP] < DR 4M[SP] <‐ DRIf (SP = 0) then FULL <‐ 1EMTY <‐ 0

• First item is stored at location 1 and the last

C

B 23

4SP

• First item is stored at location 1, and the last item at 0

• Pop: DR <‐M[SP]SP < SP – 1

A

0

1

SP <‐ SP – 1If (SP = 0) then EMTY <‐ 1FULL <‐ 0

DR

64 word register stack

Page 56: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont… Memory unitCont…• Push: SP <‐ SP – 1

Program(instructions)

PC

AR

1000

M[SP] <‐ DR• Pop:  DR <‐M[SP]

SP <‐ SP + 1

Data(operands)

k

AR 2000

3000• Two registers are used to check the limits of the stack

• Stack organisation is very effective for l ti ith ti i

Stack 3000

3997

evaluating arithmetic expressions• Reverse polish notation (postfix) is 

suitable for stack manipulationInfix: A * B + C * D

SP 39983999

4000Infix:  A * B + C * DPostfix: AB * CD *+ DR

Page 57: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Instruction FormatsInstruction Formats• Consists of opcode field, address field and mode fieldCPU organisations• Single accumulator organization• ADD X AC <‐ AC + M[X]• ADD X AC <‐ AC + M[X]• General register organisation• ADD R1, R2, R3 R1 <‐ R2 + R3• ADD R1, R2 R1 <‐ R1 + R2• ADD R1, X R1 <‐ R1 + M[X]• Stack orgaisationStack orgaisation• PUSH X• ADD

Page 58: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…• X = (A + B) * (C + D)• Three address instructions• 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• Computer : Cyber 170• Two address instruction• MOV R1, A R1 <‐M[A]• ADD R1, B R1 <‐ R1 + M[B]• MOV R2, C R2 <‐M[C], [ ]• ADD R2, D R1 <‐ R2 + M[D]• MUL R1, R2 R1 <‐ R1 * R2• MOV X, R1 M[X] <‐ R1, [ ]

Page 59: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…• One address instruction Cont…• 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]

RISC instructionLOAD R1, A R1 <‐M[A][ ]

• STORE X M[X] <‐ AC• Zero address instruction• PUSH A TOS <‐ A

LOAD R2, B R2 <‐M[B]LOAD R3, C R3 <‐M[C]LOAD R4, D R4 <‐M[D]

• PUSH B TOS <‐ B• ADD TOS <‐ (A + B)• PUSH C TOS <‐ C

ADD R1, R1, R2 R1 <‐ R1 + R2ADD R3, R3, R4 R3 <‐ R3 + R4MUL R1, R1, R3 R1 <‐ R1 * R3STORE X R1 M[X] < R1PUSH C TOS < C

• PUSH D TOS <‐ D• ADD TOS <‐ (C + D)• MUL TOS <‐ (C + D) * (A + B)

STORE X, R1 M[X] <‐ R1

MUL TOS < (C + D)   (A + B)• POP X M[X] <‐ TOS

Page 60: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Addressing ModesAddressing Modes• Instruction cycle• Fetch the instruction from the memory: PC points towards the 

address of the next instruction to be executed• Decode the instruction: Determine the operation to be performed, 

addressing mode of the instruction and the location of theaddressing mode of the instruction, and the location of the operands

• Execute the instruction• Implied mode: operands are implicit in the instructions• Implied mode: operands are implicit in the instructions• E.g. complement accumulator, zero address instructions• Immediate mode: operand is specified in the instruction itself• Register mode: operands are in registers• Register mode: operands are in registers• Register indirect mode: address of the operand is in register• Autoincrement or autodecrement mode: register is incremented or 

decremented after its value is used to access the memorydecremented after its value is used to access the memory

Page 61: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…• Direct address mode: address is specified in the instruction

• Indirect address mode: address of the effective address is given in the instructionis given in the instruction

• Relative address mode: effective address = address part of the instruction + content of PCI d d dd i d ff ti dd dd• Indexed addressing mode: effective address = address part of the instruction + content of index register

• Base register addressing mode: effective address = g gaddress part of the instruction + content of base register

• E g Load AC with a valueE.g Load AC with a value

Page 62: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Computer InstructionsComputer Instructions

• Data transfer InstructionsData transfer InstructionsName Mnemonics

Load LDLoad LD

Store ST

Move MOV

Exchange XCH

Input IN

Output OUT

Push PUSH

Pop POP

Page 63: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Data Manipulation InstructionsData Manipulation Instructions

• ADDI : add two binary integersADDI : add two binary integers• ADDF : add two floating point numbers

dd d i l b i C• ADDD : add two decimal numbers in BCDName  Mnemonic

Increment INCIncrementDecrementAddSubtract

INCDECADDSUB

MultiplyDivideAdd with carrySubtract with borrow

MULDIVADDCSUBBSubtract with borrow

Negate (2’s complement)SUBBNEG

Page 64: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…

• Logical and bit manipulation instructionsLogical and bit manipulation instructions

Name Mnemonic

Cl CLRClearComplementANDOR

CLRCOMANDOR

Exclusive‐ORClear carrySet carryComplement carry

XORCLRCSETCCOMCComplement carry

Enable interruptDisable interrupt

COMCEIDI

Page 65: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…

• Shift instructionsShift instructionsOP REG TYPE RL COUNTName Mnemonic

Logical shift rightLogical shift left

SHRSHL

Arithmetic shift rightArithmetic shift leftRotate rightRotate left

SHRASHLARORROLRotate left

Rotate right through carryRotate left through carry

ROLRORCROLC

Page 66: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Program ControlProgram Control• Instructions may alter the flow of control• Conditional and unconditional branch and jump 

instructions• SKP (zero address) instruction skips the next instructionSKP (zero address) instruction skips the next instruction• Certain status bits are set as a result of compare and test 

(performs logical AND) operations

Name Mnemonic

BranchJump

BRJMPJump

SkipCallReturnC (b bt ti )

JMPSKPCALLRETCMPCompare (by subtraction)

Test (by ANDing)CMPTST

Page 67: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…

• Status bits : Carry Sign Zero oVerflowStatus bits : Carry, Sign, Zero, oVerflow

Page 68: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Mnemonic Branch condition Tested condition

BZBNZ

Branch if zeroBranch if not zero

Z = 1Z = 0 Cont…BC

BNCBPBM

Branch if carryBranch if no carryBranch if plusBranch if minus

C = 1C = 0S = 0S = 1BM

BVBNV

Branch if minusBranch if overflowBranch if no overflow

S   1V = 1V = 0

Unsigned compare conditions (A – B)

ConditionalBranchinstructionsg p ( )

BHIBHEBLO

Branch if higherBranch if higher or equalBranch if lower

A > BA ≥ BA < B

instructions

BLOEBEBNE

Branch if lower or equalBranch if equalBranch if not equal

A ≤ BA = BA ≠ B

Si d diti (A B)Signed compare conditions (A – B)

BGTBGEBLT

Branch if greater thanBranch if greater or equalBranch if less than

A > BA ≥ BA < BBLT

BLEBEBNE

Branch if less thanBranch if less or equalBranch if equalBranch if not equal

A < BA ≤ BA = BA ≠ B

Page 69: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Cont…Cont…

• Microoperations in a subroutine callMicrooperations in a subroutine callSP <‐ SP – 1[S ] CM[SP] <‐ PC

PC <‐ effective address• Microoperations in a return statementPC <‐M[SP]PC < M[SP]SP <‐ SP + 1

Page 70: Computer Organization and Architectureprajyotiniketan.edu.in/files/content/COA.pdf · Computer Organization and Architecture Dr BinuP Chacko Associate Professor Department of Computer

Interrupt• Program interrupt: refers to the transfer of program control from a 

currently running program to another service program as a result of an external or internal request Interrupt

• Interrupt procedure: interrupt is usually initiated by an external or internal signal

• Address of the interrupt service program is determined by the h/w• Interrupt procedure stores all the information necessary to define 

the state of the CPU• Content of program counter, registers and certain status conditions• PSW (stored in a register) : collection of all status bit conditions. It 

includes status bits from the last ALU operation, interrupts that are allowed to occur, whether the CPU is in supervisor or user mode

Types of InterruptsTypes of Interrupts• External interrupts : come from I/O devices,  from a timing device, 

from a circuit monitoring the power supply, or from any other external source

• Internal interrupts (traps) : arise from illegal or erroneous use of an instruction or date. E.g. register overflow, stack overflow, divide by zero, invalid opcode, protection violation

• Software interrupt : programmer initiates the interrupt by executing a special call instruction. It is used to switch from user mode to supervisor mode