MICROPROGRAMMED CONTROL

Similar documents
MICROPROGRAMMED CONTROL

MICROPROGRAMMED CONTROL

Nanostorage and Nanoprogram

Control Unit Implementation Hardwired Memory

MICROPROGRAMMED CONTROL:-

Blog -

Computer Architecture Programming the Basic Computer

Chapter 3 : Control Unit

Chap. 7 Microprogrammed Control(Control Unit)

Fig: Computer memory with Program, data, and Stack. Blog - NEC (Autonomous) 1

MICROPROGRAMMED CONTROL

Computer Organization and Architecture

Computer Architecture

Computer Organization Control Unit. Department of Computer Science Missouri University of Science & Technology

BASIC COMPUTER ORGANIZATION AND DESIGN

Chapter 5. Computer Architecture Organization and Design. Computer System Architecture Database Lab, SANGJI University

BASIC COMPUTER ORGANIZATION AND DESIGN

CHAPTER 5 Basic Organization and Design Outline Instruction Codes Computer Registers Computer Instructions Timing and Control Instruction Cycle

Class Notes. Dr.C.N.Zhang. Department of Computer Science. University of Regina. Regina, SK, Canada, S4S 0A2

Basic Computer Organization - Designing your first computer. Acknowledgment: Most of the slides are adapted from Prof. Hyunsoo Yoon s slides.

5-1 Instruction Codes

Faculty of Engineering Systems & Biomedical Dept. First Year Cairo University Sheet 6 Computer I

THE MICROPROCESSOR Von Neumann s Architecture Model

UNIT:2 BASIC COMPUTER ORGANIZATION AND DESIGN

BASIC COMPUTER ORGANIZATION AND DESIGN

COMPUTER ORGANIZATION AND ARCHITECTURE

COMPUTER ORGANIZATION

csitnepal Unit 3 Basic Computer Organization and Design

Chapter 05: Basic Processing Units Control Unit Design. Lesson 15: Microinstructions

Computer Organization (Autonomous)

Computer Organization and Design

Basic Computer Organization and Design Part 2/3

Computer Architecture

Chapter 05: Basic Processing Units Control Unit Design Organization. Lesson 14: Microprogrammed Control

Blog -

CHAPTER SIX BASIC COMPUTER ORGANIZATION AND DESIGN

CHETTINAD COLLEGE OF ENGINEERING AND TECHNOLOGY COMPUTER ARCHITECURE- III YEAR EEE-6 TH SEMESTER 16 MARKS QUESTION BANK UNIT-1

Micro-Operations. execution of a sequence of steps, i.e., cycles

There are four registers involved in the fetch cycle: MAR, MBR, PC, and IR.

Controller Implementation--Part II

Chapter 16. Control Unit Operation. Yonsei University

REGISTER TRANSFER LANGUAGE

COMPUTER ARCHITECTURE AND ORGANIZATION Register Transfer and Micro-operations 1. Introduction A digital system is an interconnection of digital

Computer Architecture and Organization: L06: Instruction Cycle

Register Transfer and Micro-operations

CHAPTER 8: Central Processing Unit (CPU)

SCRAM Introduction. Philipp Koehn. 19 February 2018

Advanced Parallel Architecture Lesson 3. Annalisa Massini /2015

C.P.U Organization. Memory Unit. Central Processing Unit (C.P.U) Input-Output Processor (IOP) Figure (1) Digital Computer Block Diagram

Lecture 11: Control Unit and Instruction Encoding

CHAPTER 4: Register Transfer Language and Microoperations

Module 5 - CPU Design

UNIT-III REGISTER TRANSFER LANGUAGE AND DESIGN OF CONTROL UNIT

Unit II Basic Computer Organization

Micro-programmed Control Ch 15

Machine Instructions vs. Micro-instructions. Micro-programmed Control Ch 15. Machine Instructions vs. Micro-instructions (2) Hardwired Control (4)

Computer Logic II CCE 2010

Basic Processing Unit: Some Fundamental Concepts, Execution of a. Complete Instruction, Multiple Bus Organization, Hard-wired Control,

Micro-programmed Control Ch 15

For Example: P: LOAD 5 R0. The command given here is used to load a data 5 to the register R0.

Processing Unit CS206T

omputer Design Concept adao Nakamura

TYPES OF INTERRUPTS: -

UNIT - V MEMORY P.VIDYA SAGAR ( ASSOCIATE PROFESSOR) Department of Electronics and Communication Engineering, VBIT

Micro-programmed Control Ch 17

Programmable machines

Digital System Design Using Verilog. - Processing Unit Design

Hardwired Control (4) Micro-programmed Control Ch 17. Micro-programmed Control (3) Machine Instructions vs. Micro-instructions

JNTUWORLD. 1. Discuss in detail inter processor arbitration logics and procedures with necessary diagrams? [15]

REGISTER TRANSFER AND MICROOPERATIONS

Page 521 CPSC 5155 Last Revised July 9, 2011 Copyright 2011 by Edward L. Bosworth, Ph.D. All rights reserved.


Lecture1: introduction. Outline: History overview Central processing unite Register set Special purpose address registers Datapath Control unit

TABLE 8-1. Control Signals for Binary Multiplier. Load. MUL0 Q 0 CAQ sr CAQ. Shift_dec. C out. Load LOADQ. CAQ sr CAQ. Shift_dec P P 1.

Chapter 14 Design of the Central Processing Unit

Programming Level A.R. Hurson Department of Computer Science Missouri University of Science & Technology Rolla, Missouri

Microprogramming is a technique to implement the control system of a CPU using a control store to hold the microoperations.

Combinational and sequential circuits (learned in Chapters 1 and 2) can be used to create simple digital systems.

TYPICAL QUESTIONS & ANSWERS

IAS Computer. Instructions

Processing Unit. Unit II

Advanced Computer Architecture

Computer Organization (Autonomous)


REGISTER TRANSFER AND MICROOPERATIONS

CS 2461: Computer Architecture I

UNIT-II. Part-2: CENTRAL PROCESSING UNIT

Midterm Examination # 2 Wednesday, March 18, Duration of examination: 75 minutes

CS 265. Computer Architecture. Wei Lu, Ph.D., P.Eng.

Basic Processing Unit (Chapter 7)

Chapter 17. Microprogrammed Control. Yonsei University

8-1. Fig. 8-1 ASM Chart Elements 2001 Prentice Hall, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 2e, Updated.

EECS150. Implement of Processor FSMs

M. Sc (CS) (II Semester) Examination, Subject: Computer System Architecture Paper Code: M.Sc-CS-203. Time: Three Hours] [Maximum Marks: 60

CC 311- Computer Architecture. The Processor - Control

William Stallings Computer Organization and Architecture

PSIM: Processor SIMulator (version 4.2)

PESIT Bangalore South Campus

Chapter 4. MARIE: An Introduction to a Simple Computer 4.8 MARIE 4.8 MARIE A Discussion on Decoding

Chapter 20 - Microprogrammed Control (9 th edition)

Transcription:

1 MICROPROGRAMMED CONTROL Control Memory Sequencing Microinstructions Microprogram Example Design of Control nit Microinstruction Format Nanostorage and Nanoprogram

2 Implementation of Control nit COMPARISON OF CONTROL NIT IMPLEMENTATIONS Control nit Implementation Combinational Logic Circuits (Hard-wired) Memory Control Data I R Status F/Fs Control nit's State Timing State Ins. Cycle State Combinational Logic Circuits Control Points CP Microprogram M e m o r y Control Data I R Status F/Fs Next Address Generation Logic C S A R Control Storage ( -program memory) C S D R } D C P s CP

3 TERMINOLOGY Microprogram / Microcode (corresponding to one CP instruction) - Consists of microinstructions - Program stored in memory that generates all control signals required to execute the instruction set correctly Microinstruction - Contains a control word and a sequencing word Control Word - All control information required for one clock cycle Sequencing Word - Information needed to decide the next microinstruction address Control Memory (Control Storage: CS) - Storage for microprogram. Generally ROM Writeable Control Memory (Writeable Control Storage:WCS) - CS whose contents can be modified -> microprogram -> Instruction set Dynamic Microprogramming - Computer system whose control unit is implemented with a microprogram in WCS - Microprogram can be changed by a system programmer or a user

4 TERMINOLOGY Sequencer (Microprogram Sequencer) A Microprogram Control nit that determines the Microinstruction Address to be executed in the next clock cycle Sequencing Capabilities Required in a Control Storage - Incrementing of the control address register - nconditional and conditional branches - A mapping process from the bits of the machine instruction to an address for control memory - A facility for subroutine call and return

5 MICROINSTRCTION SEQENCING Sequencing Instruction code Mapping logic Status bits Branch logic MX select Multiplexers Control address register (CAR) Subroutine register (SBR) Incrementer Control memory (ROM) select a status bit Branch address Microoperations

6 CONDITIONAL BRANCH Sequencing Conditional Branch If Condition is true, then Branch (address from the next address field of the current microinstruction) else Fall Through Conditions to Test: O(overflow), N(negative), Z(zero), C(carry), etc. nconditional Branch Fixing the value of one status bit at the input of the multiplexer to 1

7 MAPPING OF INSTRCTIONS Sequencing Direct Mapping OP-codes of Instructions ADD 0000 AND 0001 LDA 0010 STA 0011 BN 0100. Address 0000 0001 0010 0011 0100 ADD Routine AND Routine LDA Routine STA Routine BN Routine Control Storage Mapping Bits 10 xxxx 010 Address 10 0000 010 ADD Routine 10 0001 010 AND Routine 10 0010 010 LDA Routine 10 0011 010 STA Routine 10 0100 010 BN Routine

8 MAPPING OF INSTRCTIONS TO MICROROTINES Sequencing Mapping from the OP-code of an instruction to the address of the Microinstruction which is the starting microinstruction of its execution microprogram Machine Instruction Mapping bits Microinstruction address OP-code 1 0 1 1 Address 0 x x x x 0 0 0 1 0 1 1 0 0 Mapping function implemented by ROM or PLA OP-code Mapping memory (ROM or PLA) Control address register Control Memory

MICROPROGRAM Computer Configuration 9 EXAMPLE Microprogram MX 10 0 AR 10 0 PC Address Memory 2048 x 16 MX 6 0 SBR 6 0 CAR 15 0 DR Control memory 128 x 20 Control unit Arithmetic logic and shift unit 15 0 AC

10 MACHINE INSTRCTION FORMAT Microprogram Machine instruction format 15 14 11 10 I Opcode Address 0 Sample machine instructions Symbol OP-code Description ADD 0000 AC AC + M[EA] BRANCH 0001 if (AC < 0) then (PC EA) STORE 0010 M[EA] AC EXCHANGE 0011 AC M[EA], M[EA] AC EA is the effective address Microinstruction Format 3 3 3 2 2 7 F1 F2 F3 CD BR AD F1, F2, F3: Microoperation fields CD: Condition for branching BR: Branch field AD: Address field

11 Microprogram MICROINSTRCTION FIELD DESCRIPTIONS - F1,F2,F3 F1 Microoperation Symbol 000 None NOP 001 AC AC + DR ADD 010 AC 0 CLRAC 011 AC AC + 1 INCAC 100 AC DR DRTAC 101 AR DR(0-10) DRTAR 110 AR PC PCTAR 111 M[AR] DR WRITE F2 Microoperation Symbol 000 None NOP 001 AC AC - DR SB 010 AC AC DR OR 011 AC AC DR AND 100 DR M[AR] READ 101 DR AC ACTDR 110 DR DR + 1 INCDR 111 DR(0-10) PC PCTDR F3 Microoperation Symbol 000 None NOP 001 AC AC DR XOR 010 AC AC COM 011 AC shl AC SHL 100 AC shr AC SHR 101 PC PC + 1 INCPC 110 PC AR ARTPC 111 Reserved

12 Microprogram MICROINSTRCTION FIELD DESCRIPTIONS - CD, BR CD Condition Symbol Comments 00 Always = 1 nconditional branch 01 DR(15) I Indirect address bit 10 AC(15) S Sign bit of AC 11 AC = 0 Z Zero value in AC BR Symbol Function 00 CAR AD if condition = 1 CAR CAR + 1 if condition = 0 01 CALL CAR AD, SBR CAR + 1 if condition = 1 CAR CAR + 1 if condition = 0 10 RET CAR SBR (Return from subroutine) 11 MAP CAR(2-5) DR(11-14), CAR(0,1,6) 0

13 SYMBOLIC MICROINSTRCTIONS Microprogram Symbols are used in microinstructions as in assembly language A symbolic microprogram can be translated into its binary equivalent by a microprogram assembler. Sample Format five fields: Label: label; micro-ops; CD; BR; AD may be empty or may specify a symbolic address terminated with a colon Micro-ops: consists of one, two, or three symbols separated by commas CD: one of {, I, S, Z}, where : nconditional Branch I: Indirect address bit S: Sign of AC Z: Zero value in AC BR: AD: one of {, CALL, RET, MAP} one of {Symbolic address, NEXT, empty}

14 Microprogram SYMBOLIC MICROPROGRAM - FETCH ROTINE During FETCH, Read an instruction from memory and decode the instruction and update PC Sequence of microoperations in the fetch cycle: AR PC DR M[AR], PC PC + 1 AR DR(0-10), CAR(2-5) DR(11-14), CAR(0,1,6) 0 Symbolic microprogram for the fetch cycle: FETCH: ORG 64 PCTAR READ, INCPC DRTAR NEXT NEXT MAP Binary equivalents translated by an assembler Binary address F1 F2 F3 CD BR AD 1000000 110 000 000 00 00 1000001 1000001 000 100 101 00 00 1000010 1000010 101 000 000 00 11 0000000

15 SYMBOLIC MICROPROGRAM Microprogram Control Storage: 128 20-bit words The first 64 words: Routines for the 16 machine instructions (as 4 bits in op code field) The last 64 words: sed for other purpose (e.g., fetch routine and other subroutines) Mapping: OP-code XXXX into 0XXXX00, the first address for the 16 routines are 0(0 0000 00), 4(0 0001 00), 8, 12, 16, 20,..., 60 Partial Symbolic Microprogram Label Microops CD BR AD ADD: ORG 0 NOP READ ADD I CALL INDRCT NEXT FETCH BRANCH: OVER: ORG 4 NOP NOP NOP ARTPC S I CALL OVER FETCH INDRCT FETCH STORE: EXCHANGE: FETCH: INDRCT: ORG 8 NOP ACTDR WRITE ORG 12 NOP READ ACTDR, DRTAC WRITE ORG 64 PCTAR READ, INCPC DRTAR READ DRTAR I I CALL CALL MAP RET INDRCT NEXT FETCH INDRCT NEXT NEXT FETCH NEXT NEXT NEXT INDRCT: when I=1, say, for ADD at 0 address, and to get Effective Address of data a branch to INDRCT (a subroutine) occurs and SBR return address ( 1 in this case). RET from subroutine INDRCT CAR SBR

16 BINARY MICROPROGRAM Microprogram Address Binary Microinstruction Micro Routine Decimal Binary F1 F2 F3 CD BR AD ADD 0 0000000 000 000 000 01 01 1000011 1 0000001 000 100 000 00 00 0000010 2 0000010 001 000 000 00 00 1000000 3 0000011 000 000 000 00 00 1000000 BRANCH 4 0000100 000 000 000 10 00 0000110 5 0000101 000 000 000 00 00 1000000 6 0000110 000 000 000 01 01 1000011 7 0000111 000 000 110 00 00 1000000 STORE 8 0001000 000 000 000 01 01 1000011 9 0001001 000 101 000 00 00 0001010 10 0001010 111 000 000 00 00 1000000 11 0001011 000 000 000 00 00 1000000 EXCHANGE 12 0001100 000 000 000 01 01 1000011 13 0001101 001 000 000 00 00 0001110 14 0001110 100 101 000 00 00 0001111 15 0001111 111 000 000 00 00 1000000 FETCH 64 1000000 110 000 000 00 00 1000001 65 1000001 000 100 101 00 00 1000010 66 1000010 101 000 000 00 11 0000000 INDRCT 67 1000011 000 100 000 00 00 1000100 68 1000100 101 000 000 00 10 0000000 This microprogram can be implemented using ROM

PCTAR DRTAR Microprogrammed Control 17 DESIGN OF CONTROL NIT - DECODING MICROOPERATIONAL FIELDS- Design of Control nit F1 microoperation fields F2 F3 3 x 8 decoder 7 6 5 4 3 2 1 0 DRTAC ADD From PC 3 x 8 decoder 7 6 5 4 3 2 1 0 From DR(0-10) AND Load 3 x 8 decoder 7 6 5 4 3 2 1 0 Arithmetic logic and shift unit AC AC DR Few functions are shown as outputs of 3 decoders Note: Instead of using gates to generate control signals for ADD, AND, and DRTAC these will become now outputs of MX Select 0 1 Multiplexers Load AR Clock

S 1 S 0 Address Source 00 CAR + 1, In-Line 01 SBR RETRN 10 CS(AD), Branch or CALL 11 MAP 18 MICROPROGRAM SEQENCER - NEXT MICROINSTRCTION ADDRESS LOGIC - Address source selection External (MAP) 3 2 1 0 S S 1 0 Branch, CALL Address MX1 RETRN form Subroutine In-Line SBR Incrementer L Subroutine CALL Design of Control nit Clock CAR Control Storage MX-1 selects an address from one of four sources and routes it into a CAR - In-Line Sequencing CAR + 1 - Branch, Subroutine Call CS(AD) - Return from Subroutine Output of SBR - New Machine instruction MAP

19 MICROPROGRAM SEQENCER - CONDITION AND BRANCH CONTROL - Design of Control nit From CP 1 I S Z MX2 Select Test BR field of CS T I 0 I 1 Input logic L L(load SBR with PC) for subroutine Call S 0 for next address S 1 selection CD Field of CS Input Logic I 0 I 1 T Meaning Source of Address S 1 S 0 L 000 In-Line CAR+1 00 0 001 CS(AD) 10 0 010 In-Line CAR+1 00 0 011 CALL CS(AD) and SBR <- CAR+1 10 1 10x RET SBR 01 0 11x MAP DR(11-14) 11 0 S 0 = I 0 S 1 = I 0 I 1 + I 0 T L = I 0 I 1 T

20 Design of Control nit MICROPROGRAM SEQENCER External (MAP) I I 0 T Input logic L 3 2 1 0 S 1 1 S 0 MX1 SBR Load 1 I SZ MX2 Test Incrementer Select Clock CAR Control memory Microops CD BR AD......