Chapter 9 Computer Design Basics!



Similar documents
UNIVERSITY OF CALIFORNIA, DAVIS Department of Electrical and Computer Engineering. EEC180B Lab 7: MISP Processor Design Spring 1995

(Refer Slide Time: 00:01:16 min)

Central Processing Unit (CPU)

Systems I: Computer Organization and Architecture

Instruction Set Architecture. Datapath & Control. Instruction. LC-3 Overview: Memory and Registers. CIT 595 Spring 2010

MICROPROCESSOR AND MICROCOMPUTER BASICS

Computer organization

Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2

BASIC COMPUTER ORGANIZATION AND DESIGN

Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language

Review: MIPS Addressing Modes/Instruction Formats

Computer Architecture Lecture 2: Instruction Set Principles (Appendix A) Chih Wei Liu 劉 志 尉 National Chiao Tung University

Systems I: Computer Organization and Architecture

A s we saw in Chapter 4, a CPU contains three main sections: the register section,

PART B QUESTIONS AND ANSWERS UNIT I

EECS 427 RISC PROCESSOR

CPU Organisation and Operation

Computer Organization and Components

MICROPROCESSOR. Exclusive for IACE Students iacehyd.blogspot.in Ph: /422 Page 1

CPU Organization and Assembly Language

Let s put together a Manual Processor

Microprocessor & Assembly Language

Instruction Set Architecture. or How to talk to computers if you aren t in Star Trek

CHAPTER 4 MARIE: An Introduction to a Simple Computer

Summary of the MARIE Assembly Language

Notes on Assembly Language

Instruction Set Architecture

Memory unit. 2 k words. n bits per word

Instruction Set Architecture (ISA)

l C-Programming l A real computer language l Data Representation l Everything goes down to bits and bytes l Machine representation Language

Comp 255Q - 1M: Computer Organization Lab #3 - Machine Language Programs for the PDP-8

Combinational circuits

5 Combinatorial Components. 5.0 Full adder. Full subtractor

CHAPTER 7: The CPU and Memory

MACHINE ARCHITECTURE & LANGUAGE

ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies

what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?

The WIMP51: A Simple Processor and Visualization Tool to Introduce Undergraduates to Computer Organization

TIMING DIAGRAM O 8085

EE282 Computer Architecture and Organization Midterm Exam February 13, (Total Time = 120 minutes, Total Points = 100)

BCD (ASCII) Arithmetic. Where and Why is BCD used? Packed BCD, ASCII, Unpacked BCD. BCD Adjustment Instructions AAA. Example

1 Classical Universal Computer 3

Chapter 2 Topics. 2.1 Classification of Computers & Instructions 2.2 Classes of Instruction Sets 2.3 Informal Description of Simple RISC Computer, SRC

How It All Works. Other M68000 Updates. Basic Control Signals. Basic Control Signals

Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng

CSE 141L Computer Architecture Lab Fall Lecture 2

Chapter 5 Instructor's Manual

EC 362 Problem Set #2

Computer Organization and Architecture

CS:APP Chapter 4 Computer Architecture. Wrap-Up. William J. Taffe Plymouth State University. using the slides of

Instruction Set Design

The 104 Duke_ACC Machine

An Introduction to the ARM 7 Architecture

Programmer s Model = model of µc useful to view hardware during execution of software instructions

PROGRAMMABLE LOGIC CONTROLLERS Unit code: A/601/1625 QCF level: 4 Credit value: 15 OUTCOME 3 PART 1

M A S S A C H U S E T T S I N S T I T U T E O F T E C H N O L O G Y DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE

Central Processing Unit

CS101 Lecture 26: Low Level Programming. John Magee 30 July 2013 Some material copyright Jones and Bartlett. Overview/Questions

İSTANBUL AYDIN UNIVERSITY

Here is a diagram of a simple computer system: (this diagram will be the one needed for exams) CPU. cache

Solutions. Solution The values of the signals are as follows:

ARM Cortex-M3 Assembly Language

Memory Elements. Combinational logic cannot remember

EE 261 Introduction to Logic Circuits. Module #2 Number Systems

Chapter 2 Logic Gates and Introduction to Computer Architecture

Two-level logic using NAND gates

1 Computer hardware. Peripheral Bus device "B" Peripheral device. controller. Memory. Central Processing Unit (CPU)

================================================================

Q. Consider a dynamic instruction execution (an execution trace, in other words) that consists of repeats of code in this pattern:

Pipeline Hazards. Arvind Computer Science and Artificial Intelligence Laboratory M.I.T. Based on the material prepared by Arvind and Krste Asanovic

Central Processing Unit Simulation Version v2.5 (July 2005) Charles André University Nice-Sophia Antipolis

CS352H: Computer Systems Architecture

Chapter 10 Computer Design Basics

WEEK 8.1 Registers and Counters. ECE124 Digital Circuits and Systems Page 1

MACHINE INSTRUCTIONS AND PROGRAMS

Understanding Logic Design

OAMulator. Online One Address Machine emulator and OAMPL compiler.

LC-3 Assembly Language

EE360: Digital Design I Course Syllabus

Reduced Instruction Set Computer (RISC)

Chapter 7. Registers & Register Transfers. J.J. Shann. J. J. Shann

CSE2102 Digital Design II - Topics CSE Digital Design II

PROBLEMS #20,R0,R1 #$3A,R2,R4

Pipeline Hazards. Structure hazard Data hazard. ComputerArchitecture_PipelineHazard1

LSN 2 Computer Processors

Digital Design. Assoc. Prof. Dr. Berna Örs Yalçın

Outline. Lecture 3. Basics. Logical vs. physical memory physical memory. x86 byte ordering

Administrative Issues

The AVR Microcontroller and C Compiler Co-Design Dr. Gaute Myklebust ATMEL Corporation ATMEL Development Center, Trondheim, Norway

The Little Man Computer

X86-64 Architecture Guide

Unpacked BCD Arithmetic. BCD (ASCII) Arithmetic. Where and Why is BCD used? From the SQL Server Manual. Packed BCD, ASCII, Unpacked BCD

Addressing The problem. When & Where do we encounter Data? The concept of addressing data' in computations. The implications for our machine design(s)

ADS9850 Signal Generator Module

Chapter 4 Lecture 5 The Microarchitecture Level Integer JAVA Virtual Machine

Solution: start more than one instruction in the same clock cycle CPI < 1 (or IPC > 1, Instructions per Cycle) Two approaches:

CHAPTER IX REGISTER BLOCKS COUNTERS, SHIFT, AND ROTATE REGISTERS

Faculty of Engineering Student Number:

Binary Numbers. Binary Octal Hexadecimal

Transcription:

Logic and Computer Design Fundamentals Chapter 9 Computer Design Basics! Part 2 A Simple Computer! Charles Kime & Thomas Kaminski 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode)

Overview Part 1 Datapaths Part 2 A Simple Computer Instruction Set Architecture (ISA) Single-Cycle Hardwired Control PC Function Instruction Decoder Example Instruction Execution Part 3 Multiple Cycle Hardwired Control Chapter 9 Part 2 2

Instruction Set Architecture (ISA) for Simple Computer (SC) A programmable system uses a sequence of instructions to control its operation An typical instruction specifies: Operation to be performed Operands to use, and Where to place the result, or Which instruction to execute next Instructions are stored in RAM or ROM as a program The addresses for instructions in a computer are provided by a program counter (PC) that can Count up Load a new address based on an instruction and, optionally, status information Chapter 9 Part 2 3

Instruction Set Architecture (ISA) (continued) The PC and associated control logic are part of the Control Unit Executing an instruction - activating the necessary sequence of operations specified by the instruction Execution is controlled by the control unit and performed: In the datapath In the control unit In external hardware such as memory or input/ output Chapter 9 Part 2 4

ISA: Storage Resources The storage resources are "visible" to the programmer at the lowest software level (typically, machine or assembly language) Storage resources for the SC => Separate instruction and data memories imply "Harvard architecture" Done to permit use of single clock cycle per instruction implementation Due to use of "cache" in modern computer architectures, is a fairly realistic model Instruction memory 2 15 x! 16 Data memory 2 15 x! 16 Program counter (PC) Register file 8 x!16 Chapter 9 Part 2 5

ISA: Instruction Format A instruction consists of a bit vector The fields of an instruction are subvectors representing specific functions and having specific binary codes defined The format of an instruction defines the subvectors and their function An ISA usually contains multiple formats The SC ISA contains the three formats presented on the next slide Chapter 9 Part 2 6

ISA: Instruction Format 15 9 8 6 5 3 2 0 Opcode Destination register (DR) (a) Register (c) Jump and Branch Source register A (SA) The three formats are: Register, Immediate, and Jump and Branch All formats contain an Opcode field in bits 9 through 15. The Opcode specifies the operation to be performed Source register B (SB) 15 9 8 6 5 3 2 0 Opcode Destination register (DR) (b) Immediate Source register A (SA) Operand (OP) 15 9 8 6 5 3 2 0 Opcode Address (AD) (Left) Source register A (SA) Address (AD) (Right) More details on each format are provided on the next three slides Chapter 9 Part 2 7

ISA: Instruction Format (continued) 15 9 8 6 5 3 2 0 Opcode Destination register (DR) Source register A (SA) Source register B (SB) This format supports instructions represented by: R1 R2 + R3 R1 sl R2 (a) Register There are three 3-bit register fields: DR - specifies destination register (R1 in the examples) SA - specifies the A source register (R2 in the first example) SB - specifies the B source register (R3 in the first example and R2 in the second example) Why is R2 in the second example SB instead of SA? The source for the shifter in our datapath to be used in implementation is Bus B rather than Bus A Chapter 9 Part 2 8

ISA: Instruction Format (continued) 15 9 8 6 5 3 2 0 Opcode Destination register (DR) Source register A (SA) Operand (OP) (b) Immediate This format supports instructions described by: R1 R2 + 3 The B Source Register field is replaced by an Operand field OP which specifies a constant. The Operand: 3-bit constant Values from 0 to 7 The constant: Zero-fill (on the left of) the Operand to form 16-bit constant 16-bit representation for values 0 through 7 Chapter 9 Part 2 9

ISA: Instruction Format (continued) 15 9 8 6 5 3 2 0 Opcode Address (AD) (Left) Source register A (SA) Address (AD) (Right) (c) Jump and Branch This instruction supports changes in the sequence of instruction execution by adding an extended, 6-bit, signed 2s-complement address offset to the PC value The 6-bit Address (AD) field replaces the DR and SB fields Example: Suppose that a jump is specified by the Opcode and the PC contains 45 (0 0101101) and Address contains 12 (110100). Then the new PC value will be: 0 0101101 + (1 110100) = 0 0100001 (45 + ( 12) = 33) The SA field is retained to permit jumps and branches on N or Z based on the contents of Source register A Chapter 9 Part 2 10

ISA: Instruction Specifications The specifications provide: The name of the instruction The instruction's opcode A shorthand name for the opcode called a mnemonic A specification for the instruction format A register transfer description of the instruction, and A listing of the status bits that are meaningful during an instruction's execution (not used in the architectures defined in this chapter) Chapter 9 Part 2 11

ISA: Instruction Specifications (continued) TABLE 9-8 Instruction Specifications for the Simple C omputer Instruction Opcode Mnemonic Format Description Status Bits MoveA 0000000 MOVA R D, R A R[DR] R [SA ]* N, Z I ncrement 0000001 INC R D, R A R[DR] R [SA ] + 1* N, Z Add 0000010 ADD R D, R A, R B R[DR] R [SA ] + R [SB ]* N, Z Subtract 0000101 SUB R D, R A, R B R[DR] R [SA ] R [SB ]* N, Z D ecrement 0000110 DEC R D, R A R[DR] R [SA ] 1* N, Z AND 0001000 AND R D, R A, R B R[DR] R [SA ] R[SB]* N, Z O R 0001001 O R R D, R A, R B R[DR] R [SA ] R[SB]* N, Z E xclusive OR 0001010 XOR R D, R A, R B R[DR] R [SA ] R[SB]* N, Z NOT 0001011 NOT R D, R A R[DR] R [ SA ] * N, Z MoveB 0001100 MOV B R D, R B R[DR] R [SB ]* Shift R ight 0001101 SHR R D, R B R[DR] sr R [SB ]* Shift L eft 0001110 SHL R D, R B R[DR] sl R [SB ]* L oad I mmediate 1001100 LDI R D, OP R[DR] zf O P* A dd I mmediate 1000010 ADI R D, R A, OP R[DR] R [SA ] + zf O P* N, Z Load 0010000 L D R D, R A R[DR] M[SA ]* Store 0100000 ST RA, R B M[SA ] R [SB ]* B ranch on Z ero 1100000 BRZ RA, A D if (R [SA ] = 0) PC PC + sea D, N, Z if (R [SA ] 0) PC PC + 1 Branch on 1100001 BRN RA, A D if (R [SA ] < 0) PC PC + sea D, N, Z N egative if (R [SA ] 0) PC PC + 1 Jump 1110000 JMP R A PC R [SA ] * For all of these instructions, PC PC + 1 is also executedto prepare for the next cycle. Chapter 9 Part 2 12

ISA:Example Instructions and Data in Memory Memory Repr esentation of Instruc t ions and Data D eciimal Ad d r ess Mem o r y C ontents Dec i mal Op cod e Other F i elds Op eration 25 00001 01 001010011 5 (Subtract) DR:1, SA:2, SB:3 R1 R2 R3 35 0100 00 000 100101 32 (Store ) S A:4, SB:5 M[ R4] R5 45 10000 10 010111 011 66 (Add Im mediate) DR: 2, S A : 7, OP :3 R 2 R7 + 3 55 11000 00 101 110 100 96 (Branch on Z e ro ) AD: 44, SA:6 If R6 = 0, PC PC 20 70 000 0000001100000 Data = 192. Aft e r execution of instruction in 35, Data = 80. Chapter 9 Part 2 13

Single-Cycle Hardwired Control Based on the ISA defined, design a computer architecture to support the ISA The architecture is to fetch and execute each instruction in a single clock cycle The datapath from Figure 10-11 will be used The control unit will be defined as a part of the design The block diagram is shown on the next slide Chapter 9 Part 2 14

V C N Z Branch C ontrol PC E xtend IR(8:6) IR(2:0) Jump Address L P J B B C A ddress I nstruction memory I nstruction R W D A AA D R egister file A B BA I nstruction decoder IR(2:0) Z ero fill C onstant in 1 0 MUX B MB D A B A A A M B F S M D R W M W L P J B B C CONTR OL FS V C N Z BusA A Bus B F unction unit F B A ddress out D ata out MW D ata in A ddress D ata memory D ata out D ata in Bus D MD 0 1 MUX D DATA PA TH Chapter 9 Part 2 15

The Control Unit The Data Memory has been attached to the Address Out and Data Out and Data In lines of the Datapath. The MW input to the Data Memory is the Memory Write signal from the Control Unit. For convenience, the Instruction Memory, which is not usually a part of the Control Unit is shown within it. The Instruction Memory address input is provided by the PC and its instruction output feeds the Instruction Decoder. Zero-filled IR(2:0) becomes Constant In Extended IR(8:6) IR(2:0) and Bus A are address inputs to the PC. The PC is controlled by Branch Control logic Chapter 9 Part 2 16

PC Function PC function is based on instruction specifications involving jumps and branches taken from Slide 13: Branch on Zero BRZ if (R[ S A] = 0) PC PC + s e A D Branch on Negative BRN if (R[ S A] < 0) PC PC + s e A D J u mp JMP P C R[SA ] In addition to the above register transfers, the PC must also implement: PC PC + 1 The first two transfers above require addition to the PC of: Address Offset = Extended IR(8:6) IR(2:0) The third transfer requires that the PC be loaded with: Jump Address = Bus A = R[SA] The counting function of the PC requires addition to the PC of 1 Chapter 9 Part 2 17

PC Function (continued) Branch Control determines the PC transfers based on five of its inputs defined as follows: N,Z negative and zero status bits PL load enable for the PC JB Jump/Branch select: If JB = 1, Jump, else Branch BC Branch Condition select: If BC = 1, branch for N = 1, else branch for Z = 1. The above is summarize by the following table: PC Operation PL JB BC Count Up 0 X X Jump 1 1 X Branch on Negative (else Count Up) 1 0 1 Branch on Zero (else Count Up) 1 0 0 Sufficient information is provided here to design the PC Chapter 9 Part 2 18

Instruction Decoder The combinational instruction decoder converts the instruction into the signals necessary to control all parts of the computer during the single cycle execution The input is the 16-bit Instruction The outputs are control signals: Register file addresses DA, AA, and BA, Function Unit Select FS Multiplexer Select Controls MB and MD, Register file and Data Memory Write Controls RW and MW, and PC Controls PL, JB, and BC The register file outputs are simply pass-through signals: DA = DR, AA = SA, and BA = SB Determination of the remaining signals is more complex. Chapter 9 Part 2 19

Instruction Decoder (continued) The remaining control signals do not depend on the addresses, so must be a function of IR(13:9) Formulation requires examining relationships between the outputs and the opcodes given in Slides 12 and 13. Observe that for other than branches and jumps, FS = IR(12:9) This implies that the other control signals should depend as much as possible on IR(15:13) (which actually were assigned with decoding in mind!) To make some sense of this, we divide instructions into types as shown in the table on the next page Chapter 9 Part 2 20

Instruction Decoder (continued) T ruth T a ble for Instruction Decoder Logic Instruction Bits Contr ol W o r d Bits Instruction Function T ype 15 14 13 9 M B M D R W M W P L J B B C Function unit operations using registers 0 0 0 X 0 0 1 0 0 X X Memory read 0 0 1 X 0 1 1 0 0 X X Memory write 0 1 0 X 0 X 0 1 0 X X Function unit operations using register and constant 1 0 0 X 1 0 1 0 0 X X Conditional branch on zero (Z) 1 1 0 0 X X 0 0 1 0 0 Conditional branch on negative (N) 1 1 0 1 X X 0 0 1 0 1 Unconditional J ump 1 1 1 X X X 0 0 1 1 X Chapter 9 Part 2 21

Instruction Decoder (continued) The types are based on the blocks controlled and the seven signals to be generated; types can be divided into two groups: Datapath and Memory Control (First 4 types) PC Control (Last 3 types) In Datapath and Memory Control blocks controlled are considered: Mux B (1st and 4th types) Memory and Mux D (2nd and 3rd types) By assigning codes with no or only one 1 for these, implementation of MB, MD, RW and MW are simplified. In Control Unit more of a bit setting approach was used: Bit 15 = Bit 14 = 1 were assigned to generate PL Bit 13 values were assigned to generate JB. Bit 9 was use as BC which contradicts FS = 0000 needed for branches. To force FS(6) to 0 for branches, Bit 9 into FS(6) is disabled by PL. Also, useful bit correlations between values in the two groups were exploited in assigning the codes. Chapter 9 Part 2 22

Instruction Decoder (continued) The end result by use of the types, careful assignment of codes, and use of don't cares, yields very simple logic: This completes the design of most of the essential parts of the single-cycle simple computer Instruction Opcode DR SA SB 15 14 13 12 11 10 9 8 6 5 3 2 0 19 17 16 14 13 11 10 9 6 5 4 3 2 1 0 DA AA BA MB FS MD Control word RW MW PL JB BC Chapter 9 Part 2 23

T 9-11 Example Instruction Execution TABLE 9-11 Six Instructions for the Single-Cycle Computer Operation Code Symbolic Name Format Description Function MB MD RW MW PL JB BC 1000010 ADI Immediate Add immediate operand 0010000 LD Register Load memory content into register 0100000 ST Register Store register content in memory 0001110 SL Register Shift left R DR R SA zf I(2:0) R DR M R SA M R SA R SB R DR sl R SB 1 0 1 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 0001011 NOT Register Complement register 1100000 BRZ Jump/Branch If R[SA] = 0, branch to PC + se AD Decoding, control inputs and paths shown for ADI, LD and BRZ on next 6 slides 2008 Pearson Education, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 4e R DR R SA If R[SA] = 0, PC PC se AD If R[SA] 0, PC PC 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0 Chapter 9 Part 2 24

Decoding for ADI 1 0 0 0 0 1 0 Instruction Opcode DR SA SB 15 14 13 12 11 10 9 8 6 5 3 2 0 19 17 DA 16 14 AA 13 11 BA 10 MB 9 6 FS 5 MD 4 1 0 0 1 0 0 1 0 0 0 0 3 2 RW MW PL 1 JB 0 BC Control word Chapter 9 Part 2 25

V C N Z Branch Control PC IR(8:6) IR(2:0) Extend Control Inputs and Paths for ADI J L P B B C 0 0 0 Increment PC D A A B A A Address Instruction memory Instruction Instruction decoder M B Zero fill IR(2:0) F S M D W R W M P J B L B C 0 CONTROL 0 0 0 0 1 1 0 0 1 0 1 RW DA AA Constant in 0 0 1 0 FS V C N Z D Register file A B 1 0 MUX B Bus A Bus B A + Function unit F B BA MB 1 Address out Data out MW Data in Address Data in 0 Data memory Data out No Write 0 MD Bus D 0 MUX 1 D DATAPATH Chapter 9 Part 2 26

Decoding for LD 0 0 1 0 0 0 0 Instruction Opcode DR SA SB 15 14 13 12 11 10 9 8 6 5 3 2 0 19 17 DA 16 14 AA 13 11 BA 10 MB 9 6 FS 5 MD 4 0 0 0 0 0 1 1 0 0 1 0 3 2 RW MW PL 1 JB 0 BC Control word Chapter 9 Part 2 27

V C N Z Branch Control PC IR(8:6) IR(2:0) Extend Control Inputs and Paths for LD J L P B B C 0 1 0 Increment PC D A A B A A Address Instruction memory Instruction Instruction decoder M B Zero fill IR(2:0) F S M D W R W M P J B L B C 1 CONTROL 0 0 1 0 0 1 0 0 0 0 1 RW DA AA Constant in 0 0 0 0 FS V C N Z D Register file A B 1 0 MUX B Bus A Bus B A Function unit F B BA MB 0 Address out Data out MW Data in Address Data in 0 Data memory Data out No Write 1 MD Bus D 0 MUX 1 D DATAPATH Chapter 9 Part 2 28

Decoding for BRZ 1 1 0 0 0 0 0 Instruction Opcode DR SA SB 15 14 13 12 11 10 9 8 6 5 3 2 0 19 17 DA 16 14 AA 13 11 BA 10 MB 9 6 FS 5 MD 4 1 0 0 0 0 0 0 0 1 0 0 3 2 RW MW PL 1 JB 0 BC Control word Chapter 9 Part 2 29

V C N Z Branch Control J L P B B C 1 0 0 Branch on Z D A A B A A M B PC Address Instruction memory Instruction Instruction decoder Zero fill IR(2:0) F S M D W R W M P J B L B C 0 CONTROL 0 1 0 0 1 0 0 0 0 0 IR(8:6) IR(2:0) Extend 0 RW DA AA Constant in 0 0 0 0 FS V C N Z Control Inputs and Paths for BRZ No Write D Register file A B 1 0 MUX B Bus A Bus B A Function unit F B BA MB 1 Address out 0 Data out MW Data in Address Data memory Data out No Write Data in 0 MD Bus D 0 MUX 1 D DATAPATH Chapter 9 Part 2 30

Single-Cycle Computer Issues 9-17 Shortcoming of Single Cycle Design Complexity of instructions executable in a single cycle is limited Accessing both an instruction and data from a simple single memory impossible A long worst case delay path limits clock frequency and the rate of performing instructions Handling of Shortcomings The first two shortcomings can be handled by the multiple-cycle computer discussed here The third shortcoming is dealt with by using a technique called pipelining described in Chapter 12 PC Instruction memory Register file (Read) MUX B Function unit or Data memory MUX D 0.2 ns 4 ns 0.6 ns 0.2 ns 4 ns 0.2 ns 2008 Pearson Education, Inc. M. Morris Mano & Charles R. Kime LOGIC AND COMPUTER DESIGN FUNDAMENTALS, 4e Register file0.6 ns (Write) Chapter 9 Part 3 31

Multiple-Cycle Computer Converting the single-cycle computer into a multiple-cycle computer involves: Modifications to the datapath/memory Modification to the control unit Design of a multiple-cycle hardwired control The block diagram of the single-cycle SC architecture is given on the next slide for use in developing the multiple-cycle SC architecture Chapter 9 Part 3 32

Chapter 9 Part 3 33

Datapath Modifications Modifications appear on the next slide Use a single memory for both instructions and data Not essential to the multiple-cycle design, but done to illustrate the concept Requires new MUX M with control signal MM to select the instruction address from the PC or the data address Requires path from Memory Data Out to the instruction path in the control unit Chapter 9 Part 3 34

New Instruction Path Inst. & Data Address Mux Inst. & Data Memory Chapter 9 Part 3 35

Datapath Modifications (continued) To hold operands between cycles, need additional registers Add 8 temporary storage registers to the Register File Register File becomes 16 x 16 Addresses to Register File increase from 3 to 4 bits Register File addresses come from: The instruction for the Storage Resource registers (0 to 7) The control word for the Temporary Storage registers (8 to 15) The control word specifies the source for Register File addresses Add Register Address Logic to the Register File to select the register address sources Three new control fields for register address source selection and temporary storage addressing: DX, AX, BX Chapter 9 Part 3 36

Register Address Logic 16 x 16 Register File Inst. & Data Address Mux Chapter 9 Part 3 37

Control Unit Modifications Must hold instruction over the multiple cycles to draw on instruction information throughout instruction execution Requires an Instruction Register (IR) to hold the instruction Load control signal IL Requires the addition of a "hold" operation to the PC since it only counts up to obtain a new instruction New encoding for the PC operations uses 2 bits Chapter 9 Part 3 38

Add "hold" operation Instruction Register IR Chapter 9 Part 3 39

Sequential Control Design In order to control microoperations over multiple cycles, a Sequential Control replaces the Instruction Decoder Input: Opcode, Status Bits Output: Control Word (Modified Datapath Control part) Control State Next State: Control Word (New Sequencing Control part) Consists of (see next slide): Register to store the Control State Combinational Logic to generate the Control Word (both sequencing and datapath control parts) The Combinational Logic is quite complex so we assume that it is implemented by using a PLA or synthesized logic and focus on ASM level design Chapter 9 Part 3 40

Control State Register Combinational Control Logic New/ Modified Control Word Chapter 9 Part 3 41

Control Word 27 24 23 22 21 20 17 16 13 12 9 8 7 4 3 2 1 0 NS PS Sequencing I L Datapath part: fields DA, AA, and BA replaced by DX, AX, and BX, respectively, and field MM added If the MSB of a field is 0, e.g., AX = 0XXX, then AA is 0 concatenated with 3 bits obtained from the SA field in the IR If the MSB of a field is 1, e. g. AX = 1011, then AA = 1011 Sequencing part: IL controls the loading of the IR M DX AX BX FS B PS controls the operations of the PC Datapath NS gives the next state of the Control State register NS is 4 bits, the length of the Control State register - 16 states are viewed as adequate for this design M D R W M M M W Chapter 9 Part 3 42

Encoding for Datapath Control DX AX BX Code MB Code FS Code MD R W MM MW Code R [DR] R [SA] R [SB] 0 XXX Register 0 F A 0000 FnUt No write Address Out No write R 8 R 8 R 8 1000 Constant 1 F A + 1 0001 Data In Write PC Write 1 R 9 R 9 R 9 1001 F A + B 0010 R 10 R 10 R 10 1010 Unused 0011 R 11 R 11 R 11 1011 Unused 0100 R 12 R 12 R 12 1100 F A + B + 1 0101 R 13 R 13 R 13 1101 F A 1 0110 R 14 R 14 R 14 1110 Unused 0111 R 15 R 15 R 15 1111 F A ^ B 1000 F A v 1001 " B F A + B 1010 F A 1011 F B 1100 F sr B 1101 F sl B 1110 Unused 1111 0 Chapter 9 Part 3 43

Encoding for Sequencing Control NS PS IL Ne xt State Action Code Action Code Gives next state of Control State Register Hold PC 00 No load 0 Inc PC 01 Load IR 1 Branch 10 J ump 11 Chapter 9 Part 3 44

Terms of Use All (or portions) of this material 2008 by Pearson Education, Inc. Permission is given to incorporate this material or adaptations thereof into classroom presentations and handouts to instructors in courses adopting the latest edition of Logic and Computer Design Fundamentals as the course textbook. These materials or adaptations thereof are not to be sold or otherwise offered for consideration. This Terms of Use slide or page is to be included within the original materials or any adaptations thereof. Chapter 9 Part 2 45