CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Krste Asanovic Electrical Engineering and Computer Sciences University of California.

Slides:



Advertisements
Similar presentations
© Krste Asanovic, 2014CS252, Spring 2014, Lecture 5 CS252 Graduate Computer Architecture Spring 2014 Lecture 5: Out-of-Order Processing Krste Asanovic.
Advertisements

ISA Issues; Performance Considerations. Testing / System Verilog: ECE385.
1 Lecture 3: Instruction Set Architecture ISA types, register usage, memory addressing, endian and alignment, quantitative evaluation.
CS1104: Computer Organisation School of Computing National University of Singapore.
Computer Organization and Architecture
Computer Organization and Architecture
Multi-cycle Implementations Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology January 13, 2012L6-1
CSE 490/590, Spring 2011 CSE 490/590 Computer Architecture Complex Pipelining I Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 490/590, Spring 2011 CSE 490/590 Computer Architecture Pipelining III Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 490/590, Spring 2011 CSE 490/590 Computer Architecture MIPS Review & Pipelining I Steve Ko Computer Sciences and Engineering University at Buffalo.
CSE 490/590, Spring 2011 CSE 490/590 Computer Architecture ISAs and MIPS Steve Ko Computer Sciences and Engineering University at Buffalo.
CS 152 Computer Architecture and Engineering Lecture 4 - Pipelining Krste Asanovic Electrical Engineering and Computer Sciences University of California.
The Processor: Datapath & Control
Mary Jane Irwin ( ) [Adapted from Computer Organization and Design,
COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) Lecturer: Hui Wu Session.
ENEE350 Ankur Srivastava University of Maryland, College Park Based on Slides from Mary Jane Irwin ( )
Chapter 5 The Processor: Datapath and Control Basic MIPS Architecture Homework 2 due October 28 th. Project Designs due October 28 th. Project Reports.
January 26, 2011CS152, Spring 2011 CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Krste Asanovic Electrical Engineering and.
January 26, 2010CS152, Spring 2010 CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Krste Asanovic Electrical Engineering and.
Levels in Processor Design
January 31, 2011CS152, Spring 2011 CS 152 Computer Architecture and Engineering Lecture 4 - Pipelining Krste Asanovic Electrical Engineering and Computer.
Computer ArchitectureFall 2007 © October 3rd, 2007 Majd F. Sakr CS-447– Computer Architecture.
ENEE350 Ankur Srivastava University of Maryland, College Park Based on Slides from Mary Jane Irwin ( )
CPEN Digital System Design Chapter 10 – Instruction SET Architecture (ISA) © Logic and Computer Design Fundamentals, 4 rd Ed., Mano Prentice Hall.
CS 152 Computer Architecture and Engineering Lecture 4 - Pipelining Krste Asanovic Electrical Engineering and Computer Sciences University of California.
Chapter 4 Sections 4.1 – 4.4 Appendix D.1 and D.2 Dr. Iyad F. Jafar Basic MIPS Architecture: Single-Cycle Datapath and Control.
January 26, 2012CS152, Spring 2012 CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Krste Asanovic Electrical Engineering and.
Asanovic/Devadas Spring Simple Instruction Pipelining Krste Asanovic Laboratory for Computer Science Massachusetts Institute of Technology.
Asanovic/Devadas Spring Microprogramming Krste Asanovic Laboratory for Computer Science Massachusetts Institute of Technology.
Chapter 1 An Introduction to Processor Design 부산대학교 컴퓨터공학과.
COSC 3430 L08 Basic MIPS Architecture.1 COSC 3430 Computer Architecture Lecture 08 Processors Single cycle Datapath PH 3: Sections
1 Instruction Set Architecture (ISA) Alexander Titov 10/20/2012.
Lec 15Systems Architecture1 Systems Architecture Lecture 15: A Simple Implementation of MIPS Jeremy R. Johnson Anatole D. Ruslanov William M. Mongan Some.
CSE 340 Computer Architecture Summer 2014 Basic MIPS Pipelining Review.
Gary MarsdenSlide 1University of Cape Town Chapter 5 - The Processor  Machine Performance factors –Instruction Count, Clock cycle time, Clock cycles per.
CS.305 Computer Architecture Enhancing Performance with Pipelining Adapted from Computer Organization and Design, Patterson & Hennessy, © 2005, and from.
Electrical and Computer Engineering University of Cyprus LAB 2: MIPS.
1/29/2013 CS152, Spring 2013 CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Krste Asanovic Electrical Engineering and Computer.
Datapath and Control Unit Design
© Krste Asanovic, 2015CS252, Fall 2015, Lecture 3 CS252 Graduate Computer Architecture Fall 2015 Lecture 3: CISC versus RISC Krste Asanovic
Microarchitecture. Outline Architecture vs. Microarchitecture Components MIPS Datapath 1.
Oct. 18, 2000Machine Organization1 Machine Organization (CS 570) Lecture 4: Pipelining * Jeremy R. Johnson Wed. Oct. 18, 2000 *This lecture was derived.
ECE-C355 Computer Structures Winter 2008 The MIPS Datapath Slides have been adapted from Prof. Mary Jane Irwin ( )
1/27/2016 CS152, Spring 2016 CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Dr. George Michelogiannakis EECS, University of.
Chapter 4 From: Dr. Iyad F. Jafar Basic MIPS Architecture: Multi-Cycle Datapath and Control.
Computer Architecture Lecture 6.  Our implementation of the MIPS is simplified memory-reference instructions: lw, sw arithmetic-logical instructions:
CS161 – Design and Architecture of Computer Systems
Electrical and Computer Engineering University of Cyprus
CS252 Graduate Computer Architecture Fall 2015 Lecture 5: Out-of-Order Processing Krste Asanovic
Krste Asanovic Electrical Engineering and Computer Sciences
ELEN 468 Advanced Logic Design
Prof. Sirer CS 316 Cornell University
CS 152 Computer Architecture and Engineering Lecture 4 - Pipelining
CS 152 Computer Architecture and Engineering Lecture 4 - Pipelining
Levels in Processor Design
Rocky K. C. Chang 6 November 2017
COMS 361 Computer Organization
COSC 2021: Computer Organization Instructor: Dr. Amir Asif
Processor: Multi-Cycle Datapath & Control
Prof. Sirer CS 316 Cornell University
Introduction to Microprocessor Programming
Multi-Cycle Datapath Lecture notes from MKP, H. H. Lee and S. Yalamanchili.
Computer Architecture
The Processor: Datapath & Control.
Processor: Datapath and Control
Presentation transcript:

CS 152 Computer Architecture and Engineering Lecture 3 - From CISC to RISC Krste Asanovic Electrical Engineering and Computer Sciences University of California at Berkeley

1/31/2008CS152-Spring’08 2 Last Time in Lecture 2 Stack machines popular to simplify High-Level Language (HLL) implementation –Algol-68 & Burroughs B5000, Forth machines, Occam & Transputers, Java VMs & Java Interpreters General-purpose register machines provide greater efficiency with better compiler technology (or assembly coding) –Compilers can explicity manage fastest level of memory hierarchy (registers) Microcoding was a straightforward way to implement simple machines with low gate count –But also allowed arbitrary instruction complexity as microcode stores grew –Makes most sense when fast read-only memory (ROM) significantly faster than read-write memory (RAM)

1/31/2008CS152-Spring’08 3 Microprogramming thrived in the Seventies Significantly faster ROMs than DRAMs/core were available For complex instruction sets (CISC), datapath and controller were cheaper and simpler New instructions, e.g., floating point, could be supported without datapath modifications Fixing bugs in the controller was easier ISA compatibility across various models could be achieved easily and cheaply Except for the cheapest and fastest machines, all computers were microprogrammed

1/31/2008CS152-Spring’08 4 Writable Control Store (WCS) Implement control store in RAM not ROM –MOS SRAM memories now became almost as fast as control store (core memories/DRAMs were 2-10x slower) –Bug-free microprograms difficult to write User-WCS provided as option on several minicomputers –Allowed users to change microcode for each processor User-WCS failed –Little or no programming tools support –Difficult to fit software into small space –Microcode control tailored to original ISA, less useful for others –Large WCS part of processor state - expensive context switches –Protection difficult if user can change microcode –Virtual memory required restartable microcode

1/31/2008CS152-Spring’08 5 Microprogramming: early Eighties Evolution bred more complex micro-machines –CISC ISAs led to need for subroutine and call stacks in µcode –Need for fixing bugs in control programs was in conflict with read-only nature of µROM –--> WCS (B1700, QMachine, Intel i432, …) With the advent of VLSI technology assumptions about ROM & RAM speed became invalid -> more complexity Better compilers made complex instructions less important Use of numerous micro-architectural innovations, e.g., pipelining, caches and buffers, made multiple-cycle execution of reg-reg instructions unattractive

1/31/2008CS152-Spring’08 6 Microprogramming in Modern Usage Microprogramming is far from extinct Played a crucial role in micros of the Eighties DEC uVAX, Motorola 68K series, Intel 386 and 486 Microcode pays an assisting role in most modern micros (AMD Athlon, Intel Core 2 Duo, IBM PowerPC) Most instructions are executed directly, i.e., with hard-wired control Infrequently-used and/or complicated instructions invoke the microcode engine Patchable microcode common for post-fabrication bug fixes, e.g. Intel Pentiums load µcode patches at bootup

1/31/2008CS152-Spring’08 7 From CISC to RISC Use fast RAM to build fast instruction cache of user- visible instructions, not fixed hardware microroutines –Can change contents of fast instruction memory to fit what application needs right now Use simple ISA to enable hardwired pipelined implementation –Most compiled code only used a few of the available CISC instructions –Simpler encoding allowed pipelined implementations Further benefit with integration –In early ‘80s, can fit 32-bit datapath + small caches on a single chip –No chip crossings in common case allows faster operation

1/31/2008CS152-Spring’08 8 Horizontal vs Vertical  Code Horizontal  code has wider  instructions –Multiple parallel operations per  instruction –Fewer steps per macroinstruction –Sparser encoding  more bits Vertical  code has narrower  instructions –Typically a single datapath operation per  instruction –separate  instruction for branches –More steps to per macroinstruction –More compact  less bits Nanocoding –Tries to combine best of horizontal and vertical  code # Instructions Bits per Instruction

1/31/2008CS152-Spring’08 9 Nanocoding MC68000 had 17-bit  code containing either 10-bit  jump or 9-bit nanoinstruction pointer –Nanoinstructions were 68 bits wide, decoded to give 196 control signals code ROM nanoaddress code next-state address PC (state) nanoinstruction ROM data Exploits recurring control signal patterns in code, e.g., ALU 0 A  Reg[rs]... ALUi 0 A  Reg[rs]... User PC Inst. Cache Hardwired Decode

1/31/2008CS152-Spring’08 10 CDC 6600 Seymour Cray, 1964 A fast pipelined machine with 60-bit words Ten functional units - Floating Point: adder, multiplier, divider - Integer: adder, multiplier... Hardwired control (no microcoding) Dynamic scheduling of instructions using a scoreboard Ten Peripheral Processors for Input/Output - a fast time-shared 12-bit integer ALU Very fast clock, 10MHz Novel freon-based technology for cooling

1/31/2008CS152-Spring’08 11 CDC 6600: Datapath Address Regs Index Regs 8 x 18-bit 8 x 18-bit Operand Regs 8 x 60-bit Inst. Stack 8 x 60-bit IR 10 Functional Units Central Memory 128K words, 32 banks, 1  s cycle result addr result operand addr

1/31/2008CS152-Spring’08 12 Separate instructions to manipulate three types of reg. 860-bit data registers (X) 818-bit address registers (A) 818-bit index registers (B) All arithmetic and logic instructions are reg-to-reg Only Load and Store instructions refer to memory! Touching address registers 1 to 5 initiates a load 6 to 7 initiates a store - very useful for vector operations opcode i j k Ri   (Rj) op (Rk) CDC 6600: A Load/Store Architecture opcode i j disp Ri M[(Rj) + disp]

1/31/2008CS152-Spring’08 13 CDC6600: Vector Addition B0  - n loop:JZE B0, exit A0  B0 + a0load X0 A1  B0 + b0 load X1 X6  X0 + X1 A6  B0 + c0 store X6 B0  B0 + 1 jump loop Ai = address register Bi = index register Xi = data register

1/31/2008CS152-Spring’08 14 CDC6600 ISA designed to simplify high-performance implementation Use of three-address, register-register ALU instructions simplifies pipelined implementation –No implicit dependencies between inputs and outputs Decoupling setting of address register (Ar) from retrieving value from data register (Xr) simplifies providing multiple outstanding memory accesses –Software can schedule load of address register before use of value –Can interleave independent instructions inbetween CDC6600 has multiple parallel but unpipelined functional units –E.g., 2 separate multipl Follow-on machine CDC7600 used pipelined functional units –Foreshadows later RISC designs

1/31/2008CS152-Spring’08 15 Instruction Set Architecture (ISA) versus Implementation ISA is the hardware/software interface –Defines set of programmer visible state –Defines instruction format (bit encoding) and instruction semantics –Examples: MIPS, x86, IBM 360, JVM Many possible implementations of one ISA –360 implementations: model 30 (c. 1964), z990 (c. 2004) –x86 implementations: 8086 (c. 1978), 80186, 286, 386, 486, Pentium, Pentium Pro, Pentium-4 (c. 2000), AMD Athlon, Transmeta Crusoe, SoftPC –MIPS implementations: R2000, R4000, R10000,... –JVM: HotSpot, PicoJava, ARM Jazelle,...

1/31/2008CS152-Spring’08 16 “Iron Law” of Processor Performance Time = Instructions Cycles Time Program Program * Instruction * Cycle –Instructions per program depends on source code, compiler technology, and ISA –Cycles per instructions (CPI) depends upon the ISA and the microarchitecture –Time per cycle depends upon the microarchitecture and the base technology MicroarchitectureCPIcycle time Microcoded>1short Single-cycle unpipelined1long Pipelined1short this lecture

1/31/2008CS152-Spring’08 Hardware Elements Combinational circuits –Mux, Decoder, ALU,... Synchronous state elements –Flipflop, Register, Register file, SRAM, DRAM Edge-triggered: Data is sampled at the rising edge Clk D Q En ff Q D Clk En OpSelect - Add, Sub,... - And, Or, Xor, Not,... - GT, LT, EQ, Zero,... Result Comp? A B ALU Sel O A 0 A 1 A n-1 Mux... lg(n) A Decoder... O 0 O 1 O n-1 lg(n)

1/31/2008CS152-Spring’08 18 Register Files ReadData1 ReadSel1 ReadSel2 WriteSel Register file 2R+1W ReadData2 WriteData WEClock rd1 rs1 rs2 ws wd rd2 we Reads are combinational ff Q0Q0 D0D0 Clk En ff Q1Q1 D1D1 Q2Q2 D2D2 Q n-1 D n-1... register

1/31/2008CS152-Spring’08 19 Register File Implementation reg 31 wsclk reg 1 wd we rs1 rd1 rd2 reg 0 … 32 … 5 … rs2 5 5 Register files with a large number of ports are difficult to design –Almost all MIPS instructions have exactly 2 register source operands –Intel’s Itanium, GPR File has 128 registers with 8 read ports and 4 write ports!!!

1/31/2008CS152-Spring’08 20 A Simple Memory Model MAGIC RAM ReadData WriteData Address WriteEnable Clock Reads and writes are always completed in one cycle a Read can be done any time (i.e. combinational) a Write is performed at the rising clock edge if it is enabled  the write address and data must be stable at the clock edge Later in the course we will present a more realistic model of memory

1/31/2008CS152-Spring’08 21 CS152 Administrivia Krste, no office hours this Monday (ISSCC) - for alternate time Henry office hours, location? –9:30-10:30AM Mondays –2:00-3:00PM Fridays First lab and problem sets coming out soon (by Tuesday’s class)

1/31/2008CS152-Spring’08 22 Implementing MIPS: Single-cycle per instruction datapath & control logic

1/31/2008CS152-Spring’08 23 The MIPS ISA Processor State bit GPRs, R0 always contains a 0 32 single precision FPRs, may also be viewed as 16 double precision FPRs FP status register, used for FP compares & exceptions PC, the program counter some other special registers Data types 8-bit byte, 16-bit half word 32-bit word for integers 32-bit word for single precision floating point 64-bit word for double precision floating point Load/Store style instruction set data addressing modes- immediate & indexed branch addressing modes- PC relative & register indirect Byte addressable memory- big endian mode All instructions are 32 bits

1/31/2008CS152-Spring’08 24 Instruction Execution Execution of an instruction involves 1. instruction fetch 2. decode and register fetch 3. ALU operation 4. memory operation (optional) 5. write back and the computation of the address of the next instruction

1/31/2008CS152-Spring’08 25 Datapath: Reg-Reg ALU Instructions RegWrite Timing? rsrt rd 0 func rd  (rs) func (rt) x4 Add clk addr inst Inst. Memory PC inst OpCode z ALU Control RegWrite clk rd1 GPRs rs1 rs2 ws wd rd2 we

1/31/2008CS152-Spring’08 26 Datapath: Reg-Imm ALU Instructions opcode rsrt immediate rt  (rs) op immediate Imm Ext ExtSel inst OpCode 0x4 Add clk addr inst Inst. Memory PC z ALU RegWrite clk rd1 GPRs rs1 rs2 ws wd rd2 we inst ALU Control

1/31/2008CS152-Spring’08 27 Conflicts in Merging Datapath Imm Ext ExtSel OpCode 0x4 Add clk addr inst Inst. Memory PC z ALU RegWrite clk rd1 GPRs rs1 rs2 ws wd rd2 we inst ALU Control inst opcode rsrt immediate rt  (rs) op immediate rsrt rd 0 func rd  (rs) func (rt) Introduce muxes

1/31/2008CS152-Spring’08 28 Datapath for ALU Instructions, opcode rsrt immediate rt  (rs) op immediate rsrt rd 0 func rd  (rs) func (rt) BSrc Reg / Imm RegDst rt / rd Imm Ext ExtSel OpCode 0x4 Add clk addr inst Inst. Memory PC z ALU RegWrite clk rd1 GPRs rs1 rs2 ws wd rd2 we OpSel ALU Control

1/31/2008CS152-Spring’08 29 Datapath for Memory Instructions Should program and data memory be separate? Harvard style: separate (Aiken and Mark 1 influence) - read-only program memory - read/write data memory - Note: Somehow there must be a way to load the program memory Princeton style: the same (von Neumann’s influence) - single read/write memory for program and data - Note: A Load or Store instruction requires accessing the memory more than once during its execution

1/31/2008CS152-Spring’08 30 Load/Store Instructions: Harvard Datapath WBSrc ALU / Mem rs is the base register rt is the destination of a Load or the source for a Store addressing mode opcode rsrt displacement (rs) + displacement RegDst BSrc “base” disp ExtSelOpCodeOpSel ALU Control z ALU 0x4 Add clk addr inst Inst. Memory PC RegWrite clk rd1 GPRs rs1 rs2 ws wd rd2 we Imm Ext clk MemWrite addr wdata rdata Data Memory we

1/31/2008CS152-Spring’08 31 MIPS Control Instructions Conditional (on GPR) PC-relative branch Unconditional register-indirect jumps Unconditional absolute jumps PC-relative branches add offset4 to PC+4 to calculate the target address (offset is in words): 128 KB range Absolute jumps append target4 to PC to calculate the target address: 256 MB range jump-&-link stores PC+4 into the link register (R31) All Control Transfers are delayed by 1 instruction we will worry about the branch delay slot later opcode rs offset BEQZ, BNEZ 6 26 opcode targetJ, JAL opcode rsJR, JALR

1/31/2008CS152-Spring’08 32 Conditional Branches (BEQZ, BNEZ) 0x4 Add PCSrc clk WBSrcMemWrite addr wdata rdata Data Memory we RegDst BSrc ExtSelOpCode z OpSel clk zero? clk addr inst Inst. Memory PC rd1 GPRs rs1 rs2 ws wd rd2 we Imm Ext ALU Control Add br pc+4 RegWrite

1/31/2008CS152-Spring’08 33 Register-Indirect Jumps (JR) 0x4 RegWrite Add clk WBSrcMemWrite addr wdata rdata Data Memory we RegDst BSrc ExtSelOpCode z OpSel clk zero? clk addr inst Inst. Memory PC rd1 GPRs rs1 rs2 ws wd rd2 we Imm Ext ALU Control PCSrc br pc+4 rind

1/31/2008CS152-Spring’08 34 Register-Indirect Jump-&-Link (JALR) 0x4 RegWrite Add clk WBSrcMemWrite addr wdata rdata Data Memory we RegDst BSrc ExtSelOpCode z OpSel clk zero? clk addr inst Inst. Memory PC rd1 GPRs rs1 rs2 ws wd rd2 we Imm Ext ALU Control 31 PCSrc br pc+4 rind

1/31/2008CS152-Spring’08 35 Absolute Jumps (J, JAL) 0x4 RegWrite Add clk WBSrcMemWrite addr wdata rdata Data Memory we RegDst BSrc ExtSelOpCode z OpSel clk zero? clk addr inst Inst. Memory PC rd1 GPRs rs1 rs2 ws wd rd2 we Imm Ext ALU Control 31 PCSrc br pc+4 rind jabs

1/31/2008CS152-Spring’08 36 Harvard-Style Datapath for MIPS 0x4 RegWrite Add clk WBSrcMemWrite addr wdata rdata Data Memory we RegDst BSrc ExtSelOpCode z OpSel clk zero? clk addr inst Inst. Memory PC rd1 GPRs rs1 rs2 ws wd rd2 we Imm Ext ALU Control 31 PCSrc br rind jabs pc+4

1/31/2008CS152-Spring’08 37 Hardwired Control is pure Combinational Logic combinational logic op code zero? ExtSel BSrc OpSel MemWrite WBSrc RegDst RegWrite PCSrc

1/31/2008CS152-Spring’08 38 ALU Control & Immediate Extension Inst (Opcode) Decode Map Inst (Func) ALUop 0? + OpSel ( Func, Op, +, 0? ) ExtSel ( sExt 16, uExt 16, High 16 )

1/31/2008CS152-Spring’08 39 OpcodeExtSelBSrcOpSelMemWRegWWBSrcRegDstPCSrc ALU ALUi ALUiu LW SW BEQZ z=0 BEQZ z=1 J JAL JR JALR Hardwired Control Table BSrc = Reg / ImmWBSrc = ALU / Mem / PC RegDst = rt / rd / R31PCSrc = pc+4 / br / rind / jabs ***noyesrindPC R31 rind***no ** jabs ** * no yesPCR31 jabs * * * no ** pc+4sExt 16 *0?no ** brsExt 16 *0?no ** pc+4sExt 16 Imm+yesno** pc+4ImmOpnoyesALUrt pc+4*RegFuncnoyesALUrd sExt 16 ImmOppc+4noyesALUrt pc+4sExt 16 Imm+noyesMemrt uExt 16

1/31/2008CS152-Spring’08 40 Single-Cycle Hardwired Control: Harvard architecture We will assume clock period is sufficiently long for all of the following steps to be “completed”: 1. instruction fetch 2. decode and register fetch 3. ALU operation 4. data fetch if required 5. register write-back setup time   t C > t IFetch + t RFetch + t ALU + t DMem + t RWB At the rising edge of the following clock, the PC, the register file and the memory are updated

1/31/2008CS152-Spring’08 41 An Ideal Pipeline All objects go through the same stages No sharing of resources between any two stages Propagation delay through all pipeline stages is equal The scheduling of an object entering the pipeline is not affected by the objects in other stages stage 1 stage 2 stage 3 stage 4 These conditions generally hold for industrial assembly lines. But can an instruction pipeline satisfy the last condition?

1/31/2008CS152-Spring’08 42 Pipelined MIPS To pipeline MIPS: First build MIPS without pipelining with CPI=1 Next, add pipeline registers to reduce cycle time while maintaining CPI=1

1/31/2008CS152-Spring’08 43 Pipelined Datapath Clock period can be reduced by dividing the execution of an instruction into multiple cycles t C > max {t IM, t RF, t ALU, t DM, t RW } ( = t DM probably) However, CPI will increase unless instructions are pipelined write -back phase fetch phase execute phase decode & Reg-fetch phase memory phase addr wdata rdata Data Memory we ALU Imm Ext 0x4 Add addr rdata Inst. Memory rd1 GPRs rs1 rs2 ws wd rd2 we IR PC

1/31/2008CS152-Spring’08 44 How to divide the datapath into stages Suppose memory is significantly slower than other stages. In particular, suppose Since the slowest stage determines the clock, it may be possible to combine some stages without any loss of performance t IM = 10 units t DM = 10 units t ALU = 5 units t RF = 1 unit t RW = 1 unit

1/31/2008CS152-Spring’08 45 Alternative Pipelining t C > max {t IM, t RF, t ALU, t DM, t RW } = t DM t C > max {t IM, t RF +t ALU, t DM, t RW } = t DM Write-back stage takes much less time than other stages. Suppose we combined it with the memory phase t C > max {t IM, t RF +t ALU, t DM +t RW } = t DM + t RW increase the critical path by 10% write -back phase fetch phase execute phase decode & Reg-fetch phase memory phase addr wdata rdata Data Memory we ALU Imm Ext 0x4 Add addr rdata Inst. Memory rd1 GPRs rs1 rs2 ws wd rd2 we IR PC

1/31/2008CS152-Spring’08 46 Maximum Speedup by Pipelining 1. t IM t DM = 10, t ALU = 5, t RF = t RW = 1 4-stage pipeline Assumptions Unpipelined Pipelined Speedup t C t C It is possible to achieve higher speedup with more stages in the pipeline t IM =  t DM = t ALU = t RF = t RW = 5 4-stage pipeline 3. t IM =  t DM = t ALU = t RF = t RW = 5 5-stage pipeline

1/31/2008CS152-Spring’08 47 Summary Microcoding became less attractive as gap between RAM and ROM speeds reduced Complex instruction sets difficult to pipeline, so difficult to increase performance as gate count grew Iron-law explains architecture design space –Trade instruction/program, cycles/instruction, and time/cycle Load-Store RISC ISAs designed for efficient pipelined implementations –Very similar to vertical microcode, inspired by earlier Cray machines MIPS ISA will be used in class and problems, SPARC in lab (two very similar ISAs)

1/31/2008CS152-Spring’08 48 Acknowledgements These slides contain material developed and copyright by: –Arvind (MIT) –Krste Asanovic (MIT/UCB) –Joel Emer (Intel/MIT) –James Hoe (CMU) –John Kubiatowicz (UCB) –David Patterson (UCB) MIT material derived from course UCB material derived from course CS252