Review: MIPS Addressing Modes/Instruction Formats



Similar documents
Reduced Instruction Set Computer (RISC)

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

Instruction Set Architecture

Computer organization

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

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

Computer Organization and Components

Introduction to MIPS Assembly Programming

Typy danych. Data types: Literals:

Instruction Set Design

Design of Pipelined MIPS Processor. Sept. 24 & 26, 1997

Translating C code to MIPS

Stack machines The MIPS assembly language A simple source language Stack-machine implementation of the simple language Readings:

CSE 141 Introduction to Computer Architecture Summer Session I, Lecture 1 Introduction. Pramod V. Argade June 27, 2005

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

Assembly Language Programming

Pipeline Hazards. Structure hazard Data hazard. ComputerArchitecture_PipelineHazard1

Introducción. Diseño de sistemas digitales.1

Instruction Set Architecture (ISA) Design. Classification Categories

More MIPS: Recursion. Computer Science 104 Lecture 9

MIPS Assembly Code Layout

Lecture Outline. Stack machines The MIPS assembly language. Code Generation (I)

Chapter 9 Computer Design Basics!

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

Computer Organization and Architecture

Instruction Set Architecture (ISA)

Instruction Set Architecture

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

Winter 2002 MID-SESSION TEST Friday, March 1 6:30 to 8:00pm

Intel 8086 architecture

A SystemC Transaction Level Model for the MIPS R3000 Processor

Design of Digital Circuits (SS16)

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

A single register, called the accumulator, stores the. operand before the operation, and stores the result. Add y # add y from memory to the acc

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

Generating MIF files

MIPS Assembler and Simulator

EECS 427 RISC PROCESSOR

CPU Organization and Assembly Language

Computer Systems Architecture

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

COMP 303 MIPS Processor Design Project 4: MIPS Processor Due Date: 11 December :59

SMIPS Processor Specification

612 CHAPTER 11 PROCESSOR FAMILIES (Corrisponde al cap Famiglie di processori) PROBLEMS

Microprocessor & Assembly Language

MICROPROCESSOR AND MICROCOMPUTER BASICS

CS352H: Computer Systems Architecture

In the Beginning The first ISA appears on the IBM System 360 In the good old days

Overview. CISC Developments. RISC Designs. CISC Designs. VAX: Addressing Modes. Digital VAX

Lecture 7: Machine-Level Programming I: Basics Mohamed Zahran (aka Z)

Execution Cycle. Pipelining. IF and ID Stages. Simple MIPS Instruction Formats

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

Systems I: Computer Organization and Architecture

EE361: Digital Computer Organization Course Syllabus

THUMB Instruction Set

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

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:

EC 362 Problem Set #2

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

WAR: Write After Read

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

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

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

The 104 Duke_ACC Machine

5 MIPS Assembly Language

Sequential Logic. (Materials taken from: Principles of Computer Hardware by Alan Clements )

Syscall 5. Erik Jonsson School of Engineering and Computer Science. The University of Texas at Dallas

Property of ISA vs. Uarch?

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

Computer Architecture Lecture 3: ISA Tradeoffs. Prof. Onur Mutlu Carnegie Mellon University Spring 2013, 1/18/2013

Memory Elements. Combinational logic cannot remember

PART B QUESTIONS AND ANSWERS UNIT I

PROBLEMS (Cap. 4 - Istruzioni macchina)

The Operating System and the Kernel

Chapter 4 Lecture 5 The Microarchitecture Level Integer JAVA Virtual Machine

Lecture 3 Addressing Modes, Instruction Samples, Machine Code, Instruction Execution Cycle

A FPGA Implementation of a MIPS RISC Processor for Computer Architecture Education

MACHINE ARCHITECTURE & LANGUAGE

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

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

Instruction Set Reference

An Introduction to Assembly Programming with the ARM 32-bit Processor Family

CHAPTER 7: The CPU and Memory

An Introduction to the ARM 7 Architecture

CHAPTER 4 MARIE: An Introduction to a Simple Computer

CS 61C: Great Ideas in Computer Architecture Finite State Machines. Machine Interpreta4on

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

İSTANBUL AYDIN UNIVERSITY

Processor Architectures

Chapter 7D The Java Virtual Machine

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

16-bit ALU, Register File and Memory Write Interface

TIMING DIAGRAM O 8085

Chapter 2 Logic Gates and Introduction to Computer Architecture

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

SIM-PL: Software for teaching computer hardware at secondary schools in the Netherlands


Transcription:

Review: Addressing Modes Addressing mode Example Meaning Register Add R4,R3 R4 R4+R3 Immediate Add R4,#3 R4 R4+3 Displacement Add R4,1(R1) R4 R4+Mem[1+R1] Register indirect Add R4,(R1) R4 R4+Mem[R1] Indexed / Base Add R3,(R1+R2) R3 R3+Mem[R1+R2] Direct or absolute Add R1,(11) R1 R1+Mem[11] indirect Add R1,@(R3) R1 R1+Mem[Mem[R3]] Auto-increment Add R1,(R2)+ R1 R1+Mem[R2]; R2 R2+d Auto-decrement Add R1, (R2) R2 R2 d; R1 R1+Mem[R2] Scaled Add R1,1(R2)[R3] R1 R1+Mem[1+R2+R3*d] ECE 2 L3 InstructionSet4 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Review: MIPS Addressing Modes/Instruction Formats All instructions are -bit wide Register (direct) op rs rt rd register Immediate op rs rt immed Base+index op rs rt immed register + PC-relative op rs rt immed PC + Register Indirect? ECE 2 L3 InstructionSet6 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

MIPS: Software conventions for registers R $zero constant R1 $at reserved for assembler R2 $v value registers & R3 $v1 function results R4 $a arguments R5 $a1 R6 $a2 R7 $a3 R8 $t temporary: caller saves (callee can clobber) R15 $t7 R $s callee saves R23 $s7 R24 $t8 temporary (cont d) R25 $t9 R26 $k reserved for OS kernel R27 $k1 R28 $gp pointer to global area R29 $sp Stack pointer R3 $fp Frame pointer R $ra return Address ECE 2 L3 InstructionSet19 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers MIPS data transfer instructions Instruction Comment sw 5($r4), $r3 Store word sh 52($r2), $r3 Store half sb 41($r3), $r2 Store byte lw $r1, 3($r2) Load word lh $r1, 4($r3) Load halfword lhu $r1, 4($r3) Load halfword unsigned lb $r1, 4($r3) Load byte lbu $r1, 4($r3) Load byte unsigned lui $r1, 4 Load Upper Immediate ( bits shifted left by ) LUI $r5 $r5 ECE 2 L3 InstructionSet2 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

Loading large numbers Pseudo-instruction li $t, big: load -bit constant lui $t, upper ori $t, $t, lower # $t[:] upper # $t ($t Or [extlower]) Or upper 15 lower $to: upper lower -bit constant ECE 2 L3 InstructionSet21 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Processor Design Basics: Outline Design a processor: step-by-step Requirements of the Instruction Set Components and clocking Assembling an adequate path Controlling the path ECE 2 L3 InstructionSet Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

The Big Picture: The Performance Perspective Performance of a machine is determined by: Instruction count Clock cycle time Clock cycles per instruction Processor design (datapath and control) will determine: Clock cycle time CPI Clock cycles per instruction Today: Inst Count Single cycle processor: - Advantage: One clock cycle per instruction - Disadvantage: long cycle time Cycle Time ECE 2 L3 InstructionSet Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers How to Design a Processor: step-by-step 1 Analyze instruction set => datapath requirements the meaning of each instruction is given by the register transfers datapath must include storage element for ISA registers - possibly more datapath must support each register transfer 2 Select set of datapath components and establish clocking methodology 3 Assemble datapath meeting the requirements 4 Analyze implementation of each instruction to determine setting of control points that effects the register transfer 5 Assemble the control logic ECE 2 L3 InstructionSet33 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

The MIPS Instruction Formats All MIPS instructions are bits long The three instruction formats: 26 21 11 6 R-type op 6 bits rs 5 bits rt 5 bits rd 5 bits shamt 5 bits funct 6 bits I-type 26 21 op rs rt immediate 6 bits 5 bits 5 bits bits J-type 26 op target address 6 bits 26 bits The different fields are: op: operation of the instruction rs, rt, rd: the source and destination register specifiers shamt: shift amount funct: selects the variant of the operation in the op field address / immediate: address offset or immediate value target address: target address of the jump instruction ECE 2 L3 InstructionSet34 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Step 1a: The MIPS-light Subset ADD and SUB addu rd, rs, rt subu rd, rs, rt OR Immediate: ori rt, rs, imm LOAD and STORE Word lw rt, rs, imm sw rt, rs, imm BRANCH: beq rs, rt, imm 26 21 11 6 op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 26 21 op rs rt immediate 6 bits 5 bits 5 bits bits 26 21 op rs rt immediate 6 bits 5 bits 5 bits bits 26 21 op rs rt immediate 6 bits 5 bits 5 bits bits ECE 2 L3 InstructionSet35 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

Logical Register Transfers RTL gives the meaning of the instructions All start by fetching the instruction op rs rt rd shamt funct = MEM[ PC ] op rs rt Imm = MEM[ PC ] inst Register Transfers ADDU R[rd] < R[rs] + R[rt]; PC < PC + 4 SUBU R[rd] < R[rs] R[rt]; PC < PC + 4 ORi R[rt] < R[rs] + zero_ext(imm); PC < PC + 4 LOAD R[rt] < MEM[ R[rs] + sign_ext(imm)]; PC < PC + 4 STORE MEM[ R[rs] + sign_ext(imm) ] < R[rt]; PC < PC + 4 BEQ if ( R[rs] == R[rt] ) then PC < PC + sign_ext(imm)] else PC < PC + 4 ECE 2 L3 InstructionSet36 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Step 1: Requirements of the Instruction Set instruction & data Registers ( x ) read RS read RT Write RT or RD PC Extender Add and Sub register or extended immediate Add 4 or extended immediate to PC ECE 2 L3 InstructionSet37 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

Step 2: Components of the path Combinational Elements Storage Elements Clocking methodology ECE 2 L3 InstructionSet38 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Combinational Logic Elements (Basic Building Blocks) Adder A B CarryIn Adder Sum Carry MUX Selec t A Y B MUX A B O P Result ECE 2 L3 InstructionSet39 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

Storage Element: Register (Basic Building Block) Register Write Enable Similar to the D Flip Flop except In Out - N-bit input and output N N - Write Enable input Write Enable: - negated (): Out will not change - asserted (1): Out will become In ECE 2 L3 InstructionSet4 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Storage Element: Register File Register File consists of registers: Two -bit output buses: and busb One -bit input bus: Register is selected by: RA (number) selects the register to put on (data) RB (number) selects the register to put on busb (data) RW (number) selects the register to be written via (data) when Write Enable is 1 Clock input (CLK) Write Enable RWRARB 5 5 5 -bit Registers The CLK input is a factor ONLY during write operation During read operation, behaves as a combinational logic block: - RA or RB valid => or busb valid after access time busb ECE 2 L3 InstructionSet41 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

Storage Element: Idealized (idealized) One input bus: In One output bus: Out word is selected by: Address selects the word to put on Out Write Enable = 1: address selects the memory word to be written via the In bus Clock input (CLK) Write Enable Address In Out The CLK input is a factor ONLY during write operation During read operation, behaves as a combinational logic block: - Address valid => Out valid after access time ECE 2 L3 InstructionSet42 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Clocking Methodology Setup Hold Don t Care Setup Hold All storage elements are clocked by the same clock edge Cycle Time = CLK-to-Q + Longest Delay Path + Setup + Clock Skew (CLK-to-Q + Shortest Delay Path - Clock Skew) > Hold Time ECE 2 L3 InstructionSet43 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

Step 3 Register Transfer Requirements > path Assembly Instruction Fetch Read Operands and Execute Operation ECE 2 L3 InstructionSet44 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers 3a: Overview of the Instruction Fetch Unit The common RTL operations Fetch the Instruction: mem[pc] Update the program counter: - Sequential Code: PC <- PC + 4 - Branch and Jump: PC <- something else PC Next Address Logic Address Instruction Instruction Word ECE 2 L3 InstructionSet45 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

3b: Add & Subtract R[rd] <- R[rs] op R[rt] Example: addu rd, rs, rt Ra, Rb, and Rw come from instruction s rs, rt, and rd fields ctr and RegWr: control logic after decoding the instruction 26 21 11 6 op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits RegWr Rd Rs 5 5 5 Rt -bit Registers busb ctr Result ECE 2 L3 InstructionSet46 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Register-Register Timing PC Rs, Rt, Rd, Op, Func ctr RegWr, B Old Value -to-q New Value Old Value Old Value Old Value Old Value Old Value Instruction Access Time New Value Delay through Control Logic New Value New Value Register File Access Time New Value Delay New Value RegWr Rd Rs Rt 5 5 5 -bit Registers busb ctr Result Register Write Occurs Here ECE 2 L3 InstructionSet47 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

3c: Logical Operations with Immediate R[rt] <- R[rs] op ZeroExt[imm] ] bits Rd Rt RegDst Rs RegWr ctr 5 5 5 imm -bit Registers 26 op rs rt immediate busb ZeroExt 21 6 bits 5 bits 5 bits rd? bits 15 Src Result 11 immediate bits ECE 2 L3 InstructionSet48 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers 3d: Load Operations R[rt] <- Mem[R[rs] + SignExt[imm]] Example: lw rt, rs, imm 26 21 11 op rs rt immediate 6 bits 5 bits 5 bits rd bits Rd Rt RegDst Rs RegWr 5 5 5 imm -bit Registers busb Extender Src ctr In MemWr WrEn Adr W_Src ExtOp ECE 2 L3 InstructionSet49 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

3e: Store Operations Mem[ R[rs] + SignExt[imm] <- R[rt] ] Example: sw rt, rs, imm 26 21 op rs rt immediate 6 bits 5 bits 5 bits bits RegDst Rd Rt RegWr 5 5 imm Rs Rt 5 -bit Registers busb Extender ctr In MemWr WrEn Adr W_Src ExtOp Src ECE 2 L3 InstructionSet5 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers 3f: The Branch Instruction 26 21 op rs rt immediate 6 bits 5 bits 5 bits bits beq rs, rt, imm mem[pc] Fetch the instruction from memory Equal <- R[rs] == R[rt] Calculate the branch condition if (COND eq ) Calculate the next instruction s address - PC <- PC + 4 + ( SignExt(imm) x 4 ) else - PC <- PC + 4 ECE 2 L3 InstructionSet51 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

path for Branch Operations beq rs, rt, imm path generates condition (equal) 26 21 op rs rt immediate 6 bits 5 bits 5 bits bits Inst Address Cond 4 imm PC Ext npc_sel Adder Adder PC Rs Rt RegWr 5 5 5 -bit Registers busb Equal? ECE 2 L3 InstructionSet52 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Putting it All Together: A Single Cycle path Inst Adr <:15> <11:15> <:2> <21:25> Rs Rt Rd Imm Instruction<:> imm 4 PC Ext Adder Adder npc_sel PC RegDst Rd Rt Equal 1 RegWr Rs Rt 5 5 5 -bit Registers busb imm Extender 1 ctr = MemWr WrEn Adr In MemtoReg 1 ExtOp Src ECE 2 L3 InstructionSet53 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

An Abstract View of the Critical Path Register file and ideal memory: Next Address The CLK input is a factor ONLY during write operation During read operation, behave as combinational logic: - Address valid => Output valid after access time Ideal Instruction Instruction Address PC Rd 5 Instruction Rs 5 Rt 5 -bit Registers Imm A B Critical Path (Load Operation) = PC s -to-q + Instruction s Access Time + Register File s Access Time + to Perform a -bit Add + Access Time + Setup Time for Register File Write + Clock Skew Address In Ideal ECE 2 L3 InstructionSet54 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Step 4: Given path: RTL -> Control Instruction<:> Inst Adr Op <21:25> <21:25> Fun Rt <:15> <11:15> <:2> Rs Rd Imm Control npc_selregwr RegDst ExtOp Src ctr MemWr MemtoReg Equal DATA PATH ECE 2 L3 InstructionSet55 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

Meaning of the Control Signals (see slide 28) Rs, Rt, Rd and Imed hardwired into datapath npc_sel: => PC < PC + 4; 1 => PC < PC + 4 + SignExt(Im) npc_sel Inst Adr 4 imm PC Ext Adder Adder PC ECE 2 L3 InstructionSet56 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Meaning of the Control Signals (see slide 28) ExtOp: zero, sign src: immed => regb; 1 => ctr: add, sub, or RegDst Rd Rt Equal 1 RegWr Rs Rt 5 5 5 -bit Registers busb imm Extender MemWr: write memory MemtoReg: 1 => Mem RegDst: => rt ; 1 => rd RegWr: write dest register ctr MemWr MemtoReg 1 = WrEn Adr In 1 ExtOp Src ECE 2 L3 InstructionSet57 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

Control Signals inst Register Transfer ADD R[rd] < R[rs] + R[rt]; PC < PC + 4 src = RegB, ctr = add, RegDst = rd, RegWr, npc_sel = +4 SUB R[rd] < R[rs] R[rt]; PC < PC + 4 src =, Extop =, ctr =, RegDst =, RegWr(?), MemtoReg(?), MemWr(?), npc_sel = ORi R[rt] < R[rs] + zero_ext(imm); PC < PC + 4 src =, Extop =, ctr =, RegDst =, RegWr(?), MemtoReg(?), MemWr(?), npc_sel = LOAD R[rt] < MEM[ R[rs] + sign_ext(imm)]; PC < PC + 4 src =, Extop =, ctr =, RegDst =, RegWr(?), MemtoReg(?), MemWr(?), npc_sel = STORE MEM[ R[rs] + sign_ext(imm)] < R[rs]; PC < PC + 4 src =, Extop =, ctr =, RegDst =, RegWr(?), MemtoReg(?), MemWr(?), npc_sel = BEQ if ( R[rs] == R[rt] ) then PC < PC + sign_ext(imm)] else PC < PC + 4 src =, Extop =, ctr =, RegDst =, RegWr(?), MemtoReg(?), MemWr(?), npc_sel = ECE 2 L3 InstructionSet58 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Step 5: Logic for each control signal npc_sel <= if (OP == BEQ) then EQUAL else src <= if (OP == ) then regb else immed ctr <= if (OP == ) then funct elseif (OP == ORi) then OR elseif (OP == BEQ) then sub else add ExtOp <= MemWr <= MemtoReg<= RegWr: <= RegDst: <= ECE 2 L3 InstructionSet6 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

Example: Load Instruction Inst Adr <:15> <11:15> <:2> <21:25> Rs Rt Rd Imm Instruction<:> imm 4 PC Ext Adder Adder npc_sel +4 PC RegDst ct MemWr MemtoReg rt Rd Rt Equal radd 1 Rs Rt RegWr 5 5 5 = -bit Registers busb WrEn Adr 1 1 In imm sign ext ECE 2 L3 InstructionSet62 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Extender ExtOp Src An Abstract View of the Implementation Next Address Ideal Instruction Instruction Address PC Rd 5 Instruction Rs 5 Rt 5 -bit Registers Logical vs Physical Structure A B Control Control Signals path Conditions Address In Ideal Out ECE 2 L3 InstructionSet63 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers

A Real MIPS path (CNS T) ECE 2 L3 InstructionSet64 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers Summary 5 steps to design a processor 1 Analyze instruction set => datapath requirements 2 Select set of datapath components & establish clock methodology 3 Assemble datapath meeting the requirements 4 Analyze implementation of each instruction to determine setting of control points that effects the register transfer 5 Assemble the control logic MIPS makes it easier Instructions same size Source registers always in same place Immediates same size, location Operations always on registers/immediates Single cycle datapath => CPI=1, CCT => long Next time: implementing control ECE 2 L3 InstructionSet65 Adapted from Patterson 97 UCB Copyright 1998 Morgan Kaufmann Publishers