Non-pipelined Multicycle processors
|
|
- Edwin Jenkins
- 5 years ago
- Views:
Transcription
1 Non-pipelined Multicycle processors Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology Code for the lecture is available on the course website under the code tab March 22, L12-1
2 Single-Cycle RISC Processor As an illustrative example, we use a subset of RISC-V 32-bit ISA. Register File 2 read & 1 write ports PC Decode Execute Inst Memory separate Instruction & Data memories Data Memory Datapath (arrows in this diagram) are derived automatically from a high-level rule-based description March 22, L12-2
3 Single Cycle Implementation module mkproc(empty); Reg#(Word) pc <- mkreg(0); RFile2R1W rf <- mkrfile2r1w; MagicMemory imem <- mkmagicmemory; MagicMemory dmem <- mkmagicmemory; instantiate the state rule doproc; let inst <- imem.req(memreq{op:ld, addr:pc, data:?}); let dinst = decode(inst); // dinst fields: itype, alufunc, brfunc, dst, rs1, rs2, imm let rval1 = rf.rd1(dinst.rs1); read the let rval2 = rf.rd2(dinst.rs2); register file let einst = execute(dinst, rval1, rval2, pc); // einst fields: itype, rd, data, addr, nextpc updatestate(einst, pc, rf, dmem); endrule endmodule actions to update the processor state extract the fields produces values needed to update the processor state March 22, L12-3
4 Processor Interface For testing, our processor is connected to a host computer* which can read and write the memory of our processor directly Our processor s memory is preloaded with program and data; it always start at pc=0 When the program terminates it writes a 0 in a predetermined place and stops the simulation If the program hits an illegal or unsupported instruction, it dumps the processor state and stops the simulation Consequently the processor interface has no methods, ie, it s interface is Empty! *In a simulation environment the host computer is the same computer on which the simulator runs March 22, L12-4
5 Understanding generated hardware dinst rs1 rs2 RF rval1 rval2 ALU constant Not all instructions have both rs1 and rs2 fields but there is no harm/cost in reading unused registers; we never use results of undefined fields let rval1 = rf.rd1(dinst.rs1); let rval2 = rf.rd2(dinst.rs2); When the same function is called with two different arguments, a mux is generated automatically How expensive is a mux? Area is proportional to the number of bits March 22, L12-5
6 Understanding generated hardware - continued function ExecInst execute( DecodedInst dinst, Word rval1, Word rval2, Word pc ); // extract from dinst: itype, alufunc, brfunc, imm // initialize einst and its fields: data, nextpc, addr to? case (itype) matches OP: begin data = alu(rval1, rval2, alufunc); nextpc = pc+4; end OPIMM: begin data = alu(rval1, imm, alufunc); nextpc = pc+4; end BRANCH: begin nextpc = alubr(rval1, rval2, brfunc)? pc+imm : pc+4; end LUI: begin data = imm; nextpc = pc+4; end JAL: begin data = pc+4; nextpc = pc+imm; end JALR: begin data = pc+4; nextpc = (rval1+imm) & ~1; end LOAD: begin addr = rval1+imm; nextpc = pc+4; end STORE: begin addr = rval1+imm; data = rval2; endcase endfunction nextpc = pc+4; end // assign to einst; We could use the alu for this addition Reuse alu? March 22, L12-6
7 Reusing combinational logic case (itype) matches OP: data = alu(rval1, rval2, alufunc); OPIMM: data = alu(rval1, imm, alufunc);... The two uses of alu are mutually exclusive, and the BSV compiler/backend tools actually share the same alu circuit. (However, one can t be sure of such things) There are ways of forcing the alu reuse by turning into the method call of a module... Reuse is not necessarily a good idea because it prevents specialization The circuit for pc+4 has a lot fewer gates than the circuit for pc+imm Generally we won t concern ourselves with the sharing of combinational circuits March 22, L12-7
8 Plan Structural hazards and Princeton architecture Realistic req/resp memory system Multicycle processor with a realistic memory Multicycle functional units March 22, L12-8
9 Princeton Architecture instructions and data reside in the same memory Memory instructions can t be executed in one cycle! Register File PC Decode Execute Inst Memory Data Memory Such resource conflicts are known as structural hazards and require multicycle implementation Usually extra registers are required to hold values between cycles March 22, L12-9
10 Princeton Architecture introduce intermediate state state Register File PC f2d Decode Execute Magic Memory Insert f2d register to hold the fetched instruction Every instruction takes two cycles: Fetch followed by Execute A one bit register to record the state of the instruction March 22, L12-10
11 Princeton Architecture Two-cycle typedef enum {Fetch, Execute} State deriving (Bits, Eq); module mkprocprincetontwocycle(empty); // instantiate pc, rf, magic mem Reg#(Word) f2d <- mkregu; Reg#(State) state <- mkreg(fetch); rule dofetch (state == Fetch); let inst <- mem.req(memreq{op: Ld, addr: pc, data:?}); f2d <= inst; state <= Execute; endrule rule doexecute (state == Execute); // decode, execute, updatestate state <= Fetch; endrule endmodule If state is Fetch then fetch the instruction and put it in f2d, and change the state to Execute If state is Execute then execute the instruction in f2d, and change the state to Fetch March 22, L12-11
12 doexecute rule reexamined rule doexecute(state == Execute); let inst = f2d; let dinst = decode(inst); let rval1 = rf.rd1(dinst.rs1); let rval2 = rf.rd2(dinst.rs2); let einst = execute(dinst, rval1, rval2, pc); updatestate(einst, pc, rf, mem); state <= Fetch; endrule Execution of all the instructions except the load and store instructions could be completed in the Fetch-cycle itself, if we wanted (no structural hazard) March 22, L12-12
13 Princeton Architecture where only memory instructions take two cycles rule dofetch (state == FetchExecute); let inst <- mem.req(memreq{op: Ld, addr: pc, data:?}); let dinst = decode(inst); let rval1 = rf.rd1(dinst.rs1); //similarly rval2 let einst = execute(dinst, rval1, rval2, pc); if (einst.itype==ld) //Load or Store... begin (einst.itype==st) begin e2m <= einst; state <= MemoryAccess; end else begin if (isvalid(rd)) rf.wr(frommaybe(?,rd), data); Save the executed instruction state in e2m register pc <= einst.nextpc; No memory operation state <= FetchExecute; end endrule rule domemoryaccess (state == MemoryAccess); updatestate(e2m, pc, rf, mem) state <= FetchExecute; endrule March 22, L12-13
14 Performance implications Suppose f fraction of N executed instructions are memory access instructions Two-cycle Princeton architecture will take 2N cycles How many cycles will the variable-cycle Princeton architecture take? f*2*n + (1-f)*N = (1+f)*N However, cycle counts in not the whole story as far as the performance is concerned More to come later March 22, L12-14
15 req resp Realistic Memory Interface Request/Response methods op address data(store) en rdy memory data (load) en rdy No response for Stores; Load responses come back in the requested order interface Memory; method Action req(memreq req); method ActionValue#(Word) resp(); endinterface typedef struct {MemOp op; Word addr; Word data;} MemReq deriving(bits, Eq); typedef enum {Ld, St} MemOp deriving(bits, Eq); m.req(memreq{op:ld, addr:a, data:?}); m.req(memreq{op:st, addr:a, data:v}); let data <- m.resp(); March 22, L12-15
16 req resp Princeton architecture with a realistic memory state Register File PC Decode Execute Memory With request/response memory even instruction fetch cannot be completed in one cycle Instruction fetch must be split into two rules send request and receive response Need registers to hold the state of a partially executed instruction March 22, L12-16
17 Processor with realistic memory module mkprocprincetonmulticycle(empty); // instantiate registers to hold the state of a partially executed instruction rule dofetch(state == Fetch); // initiate instruction fetch; go to Execute rule doexecute(state == Execute); // execute all instructions except memory instructions; go to Fetch // initiate memory access; go to LoadWait rule doloadwait(state == LoadWait); // wait for the load value, update rf, go to Fetch endmodule Lab 5 March 22, L12-17
18 req resp Multicycle ALU s multicycle or floating point ALU operations state Register File PC Decode Execute Memory Multicycle ALU s can be viewed as request/response modules Instructions can be further classified after decoding as simple 1 cycle, multicycle (e.g., multiply) or memory access March 22, L12-18
19 Processor with realistic memory and multicycle ALUs module mkprocmulticycle(empty); // instantiate registers to hold the state of a partially executed instruction rule dofetch(state == Fetch); //initiate instruction fetch; go to Execute rule doexecute(state == Execute); // execute all instructions except memory and multicycle instructions; go to Fetch // initiate memory access; go to LoadWait // initiate multicycle instruction; go to MCWait rule doloadwait(state == LoadWait); // wait for the load value, update rf, go to Fetch rule domcwait(state == MCWait); // wait for MC value, update rf, go to Fetch endmodule Lab 5 March 22, L12-19
20 req resp Clock speed state Register File PC Decode Execute Memory Clock speed depends upon the longest combinational path between two state elements. Thus, in a single cycle implementation t Clock > t M + t DEC + t RF + t ALU + t M + t WB Clock in a two-cycle implementation may be faster t Clock > max {t M, (t DEC + t RF + t ALU + t M + t WB )} However, this may not improve the performance because now some instructions will take two cycles to execute March 22, L12-20
21 Cycle counts Different instructions take different number of cycles in our designs Depending upon the type of opcode, an instruction has to go through 1 to 4 processor-rule firings The number of cycles between processor-rule firings is indeterminate and depends on how quickly the memory responds or a multicycle functional unit completes its work for the input data Next we will study how memory systems are organized internally March 22, L12-21
Multicycle processors. Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology
Multicycle processors Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology L12-1 Single-Cycle RISC Processor As an illustrative example, we use a subset of RISC-V
More informationMulticycle processors. Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology
Multicycle processors Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology L14-1 Single-Cycle RISC Processor As an illustrative example, we use a subset of RISC-V
More informationControl Unit. Main Memory. control. status. address instructions. address data. Internal storage Datapath
control Internal storage Datapath status Control Unit address data address instructions Main Memory March 20, 2018 http://csg.csail.mit.edu/6.s084 L11-1 Our interpreter is a Single-Cycle RISC-V Processor
More informationImplementing RISC-V Interpreter in Hardware
Implementing RISC-V Interpreter in Hardware Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology October 16, 2018 MIT 6.004 Fall 2018 L11-1 Instruction interpreter
More information6.004 Recitation Problems L13 RISC-V Interpreter
6.004 Recitation Problems L13 RISC-V Interpreter Refer to the 6.004 ISA Reference Tables (Website > Resources) for details about each instruction. RISC-V Interpreter: Components Register File typedef Bit#(32)
More information6.004 Recitation Problems L11 RISC-V Interpreter
6.004 Recitation Problems L11 RISC-V Interpreter Refer to the 6.004 ISA Reference Tables (Website > Resources) for details about each instruction. New Bluespec Constructs: Maybe Types // Maybe#() is a
More information6.004 Recitation Problems L13 RISC-V Interpreter
6.004 Recitation Problems L13 RISC-V Interpreter Refer to the 6.004 ISA Reference Tables (Website > Resources) for details about each instruction. RISC-V Interpreter: Components Register File typedef Bit#(32)
More information6.004 Recitation Problems L11 RISC-V Interpreter
6.004 Recitation Problems L11 RISC-V Interpreter Refer to the 6.004 ISA Reference Tables (Website > Resources) for details about each instruction. New Bluespec Constructs: Maybe Types // Maybe#() is a
More information1 /18 2 /16 3 /18 4 /26 5 /22
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 6.004 Computation Structures Fall 2018 Quiz #2 1 /18 2 /16 3 /18 4 /26 5 /22
More information1 /18 2 /16 3 /18 4 /26 5 /22
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 6.004 Computation Structures Fall 2018 Quiz #2 1 /18 2 /16 3 /18 4 /26 5 /22
More informationNon-Pipelined Processors - 2
Constructive Computer Architecture: Non-Pipelined Processors - 2 Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology October 4, 2017 http://csg.csail.mit.edu/6.175
More information1 /15 2 /20 3 /20 4 /25 5 /20
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 6.S084 Computation Structures Spring 2018 1 /15 2 /20 3 /20 4 /25 5 /20 Quiz
More informationVirtual Memory and Interrupts
Constructive Computer Architecture Virtual Memory and Interrupts Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology November 13, 2015 http://csg.csail.mit.edu/6.175
More information1 /20 2 /18 3 /20 4 /18 5 /24
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 6.S084 Computation Structures Spring 2018 1 /20 2 /18 3 /20 4 /18 5 /24 Practice
More information1 /20 2 /18 3 /20 4 /18 5 /24
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 6.S084 Computation Structures Spring 2018 1 /20 2 /18 3 /20 4 /18 5 /24 Practice
More informationNon-Pipelined Processors
Constructive Computer Architecture: Non-Pipelined Processors Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology September 29, 2014 http://csg.csail.mit.edu/6.175
More informationNon-Pipelined Processors
Constructive Computer Architecture: Non-Pipelined Processors Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology L10-1 Single-Cycle RISC Processor As an illustrative
More informationModeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
Modeling Processors Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L07-1 The Plan Non-pipelined processor Two-stage synchronous pipeline Two-stage asynchronous
More informationModeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
Modeling Processors Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L08-1 Instruction set typedef enum {R0;R1;R2; ;R31} RName; typedef union tagged { struct
More informationModeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
Modeling Processors Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L07-1 Instruction set typedef enum {R0;R1;R2; ;R31} RName; typedef union tagged { struct
More informationInterrupts/Exceptions/Faults
Constructive Computer Architecture Interrupts/Exceptions/Faults Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology November 6, 2013 http://csg.csail.mit.edu/6.s195
More informationMemory System Implementation
Memory System Implementation Silvina Hanono Wachman Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L14-1 Best Wishes from Japan October 25, 2018 MIT 6.004 Fall 2018
More informationBypassing and EHRs. Arvind Computer Science and Artificial Intelligence Laboratory M.I.T. L23-1
Bypassing and EHRs Arvind Computer Science and Artificial Intelligence Laboratory M.I.T. L23-1 Bypassing F D RF bypass E/WB Bypassing is a technique to reduce the number of stalls (that is, the number
More informationNeed for a scheduler. Concurrent rule execution. L17/L18 Review- Rule Scheduling
L17/L18 Review- Rule Scheduling Conflict Matri (CM) BSV compiler generates the pairwise conflict information Eample 1 rule ra;
More informationModular Refinement. Successive refinement & Modular Structure
Modular Refinement Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L09-1 Successive refinement & Modular Structure pc rf fetch decode execute memory writeback
More informationModular Refinement - 2. Successive refinement & Modular Structure
Modular Refinement - 2 Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L10-1 Successive refinement & Modular Structure pc rf fetch decode execute memory writeback
More informationComplex Pipelines and Branch Prediction
Complex Pipelines and Branch Prediction Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T. L22-1 Processor Performance Time Program Instructions Program Cycles Instruction CPI Time Cycle
More informationBluespec-5: Modeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
Bluespec-5: Modeling Processors (revised after the lecture) Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology Based on material prepared by Bluespec Inc, January
More informationBluespec-5: Modeling Processors. Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
Bluespec-5: Modeling Processors Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology Based on material prepared by Bluespec Inc, January 2005 L12-1 Some New Types
More informationPipelined RISC-V Processors
Due date: Tuesday November 20th 11:59:59pm EST Getting started: To create your initial Lab 7 repository, please visit the repository creation page at https://6004.mit.edu/web/fall18/user/labs/lab7. Once
More informationBluespec SystemVerilog TM Training. Lecture 05: Rules. Copyright Bluespec, Inc., Lecture 05: Rules
Bluespec SystemVerilog Training Copyright Bluespec, Inc., 2005-2008 Rules: conditions, actions Rule Untimed Semantics Non-determinism Functional correctness: atomicity, invariants Examples Performance
More informationOperating Systems and Interrupts/Exceptions
Operating Systems and Interrupts/Exceptions Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology Code for the lecture is available on the course website under the
More informationData Hazards in Pipelined Processors
Data Hazards in Pipelined Processors Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology March 13, 2013 http://csg.csail.mit.edu/6.375 L11-1 A different 2-Stage
More informationIntroduction to Pipelining. Silvina Hanono Wachman Computer Science & Artificial Intelligence Lab M.I.T.
Introduction to Pipelining Silvina Hanono Wachman Computer Science & Artificial Intelligence Lab M.I.T. L15-1 Performance Measures Two metrics of interest when designing a system: 1. Latency: The delay
More informationEECS 151/251A Fall 2017 Digital Design and Integrated Circuits. Instructor: John Wawrzynek and Nicholas Weaver. Lecture 13 EE141
EECS 151/251A Fall 2017 Digital Design and Integrated Circuits Instructor: John Wawrzynek and Nicholas Weaver Lecture 13 Project Introduction You will design and optimize a RISC-V processor Phase 1: Design
More informationEECS150 - Digital Design Lecture 10- CPU Microarchitecture. Processor Microarchitecture Introduction
EECS150 - Digital Design Lecture 10- CPU Microarchitecture Feb 18, 2010 John Wawrzynek Spring 2010 EECS150 - Lec10-cpu Page 1 Processor Microarchitecture Introduction Microarchitecture: how to implement
More informationElastic Pipelines: Concurrency Issues
Elastic Pipelines: Concurrency Issues Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L09-1 Inelastic vs Elastic Pipelines In a Inelastic pipeline: pp typically
More informationProcessor (I) - datapath & control. Hwansoo Han
Processor (I) - datapath & control Hwansoo Han Introduction CPU performance factors Instruction count - Determined by ISA and compiler CPI and Cycle time - Determined by CPU hardware We will examine two
More informationChapter 4. The Processor
Chapter 4 The Processor Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle time Determined by CPU hardware 4.1 Introduction We will examine two MIPS implementations
More information6.823 Computer System Architecture Datapath for DLX Problem Set #2
6.823 Computer System Architecture Datapath for DLX Problem Set #2 Spring 2002 Students are allowed to collaborate in groups of up to 3 people. A group hands in only one copy of the solution to a problem
More informationCS 152, Spring 2011 Section 2
CS 152, Spring 2011 Section 2 Christopher Celio University of California, Berkeley About Me Christopher Celio celio @ eecs Office Hours: Tuesday 1-2pm, 751 Soda Agenda Q&A on HW1, Lab 1 Pipelining Questions
More informationEC 513 Computer Architecture
EC 513 Computer Architecture Single-cycle ISA Implementation Prof. Michel A. Kinsy Computer System View Processor Applications Compiler Firmware ISA Memory organization Digital Design Circuit Design Operating
More informationInstruction Level Parallelism. Appendix C and Chapter 3, HP5e
Instruction Level Parallelism Appendix C and Chapter 3, HP5e Outline Pipelining, Hazards Branch prediction Static and Dynamic Scheduling Speculation Compiler techniques, VLIW Limits of ILP. Implementation
More informationThe Processor. Z. Jerry Shi Department of Computer Science and Engineering University of Connecticut. CSE3666: Introduction to Computer Architecture
The Processor Z. Jerry Shi Department of Computer Science and Engineering University of Connecticut CSE3666: Introduction to Computer Architecture Introduction CPU performance factors Instruction count
More informationEECS 151/251 FPGA Project Report
EECS 151/251 FPGA Project Report GSI: Vighnesh Iyer Team Number: 6 Partners: Ashwinlal Sreelal and Zhixin Alice Ye Due Date: Dec 9, 2016 Part I: Project Description The aims of this project were to develop
More informationContributors to the course material
Constructive Computer Architecture: Data Hazards in Pipelined Processors Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology October 11, 2013 http://csg.csail.mit.edu/6.s195
More informationLecture 4 - Pipelining
CS 152 Computer Architecture and Engineering Lecture 4 - Pipelining John Wawrzynek Electrical Engineering and Computer Sciences University of California at Berkeley http://www.eecs.berkeley.edu/~johnw
More informationEECS150 - Digital Design Lecture 9- CPU Microarchitecture. Watson: Jeopardy-playing Computer
EECS150 - Digital Design Lecture 9- CPU Microarchitecture Feb 15, 2011 John Wawrzynek Spring 2011 EECS150 - Lec09-cpu Page 1 Watson: Jeopardy-playing Computer Watson is made up of a cluster of ninety IBM
More informationRealistic Memories and Caches
Realistic Memories and Caches Li-Shiuan Peh Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology L13-1 Three-Stage SMIPS Epoch Register File stall? PC +4 fr Decode Execute
More informationPipelining. CSC Friday, November 6, 2015
Pipelining CSC 211.01 Friday, November 6, 2015 Performance Issues Longest delay determines clock period Critical path: load instruction Instruction memory register file ALU data memory register file Not
More informationECE 313 Computer Organization FINAL EXAM December 13, 2000
This exam is open book and open notes. You have until 11:00AM. Credit for problems requiring calculation will be given only if you show your work. 1. Floating Point Representation / MIPS Assembly Language
More informationCS152 Computer Architecture and Engineering March 13, 2008 Out of Order Execution and Branch Prediction Assigned March 13 Problem Set #4 Due March 25
CS152 Computer Architecture and Engineering March 13, 2008 Out of Order Execution and Branch Prediction Assigned March 13 Problem Set #4 Due March 25 http://inst.eecs.berkeley.edu/~cs152/sp08 The problem
More informationElastic Pipelines: Concurrency Issues
Elastic Pipelines: Concurrency Issues Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology L08-1 Inelastic vs Elastic Pipelines In a Inelastic pipeline: pp typically
More informationArvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology
Constructive Computer Architecture: Data Hazards in Pipelined Processors Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology January 2, 2014 http://csg.csail.mit.edu/6.s195/cdac
More information6.175: Constructive Computer Architecture. Tutorial 3 RISC-V and Debugging. Oct 14, 2016
6.175: Constructive Computer Architecture Tutorial 3 RISC-V and Debugging Quan Nguyen (Moonlights as an amateur instruction set evangelist) T02-1 Outline RISC-V processor (from lab 5 onwards) Debugging
More informationConstructive Computer Architecture Tutorial 7: SMIPS Epochs. Andy Wright TA. October 7,
Constructive Computer Architecture Tutorial 7: SMIPS Epochs Andy Wright 6.7 TA T0- drecirect erecirect N-Stage pipeline: Two predictors f fdepoch redirect depoch redirect d miss pred? miss pred? Fetch
More informationCS3350B Computer Architecture Winter 2015
CS3350B Computer Architecture Winter 2015 Lecture 5.5: Single-Cycle CPU Datapath Design Marc Moreno Maza www.csd.uwo.ca/courses/cs3350b [Adapted from lectures on Computer Organization and Design, Patterson
More informationMaterials: 1. Projectable Version of Diagrams 2. MIPS Simulation 3. Code for Lab 5 - part 1 to demonstrate using microprogramming
CS311 Lecture: CPU Control: Hardwired control and Microprogrammed Control Last revised October 18, 2007 Objectives: 1. To explain the concept of a control word 2. To show how control words can be generated
More informationBranch Prediction: Direction Predictors
Constructive Computer Architecture: Branch Prediction: Direction Predictors Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology October 27, 2014 http://csg.csail.mit.edu/6.175
More information3/12/2014. Single Cycle (Review) CSE 2021: Computer Organization. Single Cycle with Jump. Multi-Cycle Implementation. Why Multi-Cycle?
CSE 2021: Computer Organization Single Cycle (Review) Lecture-10b CPU Design : Pipelining-1 Overview, Datapath and control Shakil M. Khan 2 Single Cycle with Jump Multi-Cycle Implementation Instruction:
More informationCS152 Computer Architecture and Engineering. Complex Pipelines
CS152 Computer Architecture and Engineering Complex Pipelines Assigned March 6 Problem Set #3 Due March 20 http://inst.eecs.berkeley.edu/~cs152/sp12 The problem sets are intended to help you learn the
More informationSimple Instruction Pipelining
Simple Instruction Pipelining Krste Asanovic Laboratory for Computer Science Massachusetts Institute of Technology Processor Performance Equation Time = Instructions * Cycles * Time Program Program Instruction
More informationThe overall datapath for RT, lw,sw beq instrucution
Designing The Main Control Unit: Remember the three instruction classes {R-type, Memory, Branch}: a) R-type : Op rs rt rd shamt funct 1.src 2.src dest. 31-26 25-21 20-16 15-11 10-6 5-0 a) Memory : Op rs
More informationMaterials: 1. Projectable Version of Diagrams 2. MIPS Simulation 3. Code for Lab 5 - part 1 to demonstrate using microprogramming
CPS311 Lecture: CPU Control: Hardwired control and Microprogrammed Control Last revised October 23, 2015 Objectives: 1. To explain the concept of a control word 2. To show how control words can be generated
More informationLecture Topics. Announcements. Today: Single-Cycle Processors (P&H ) Next: continued. Milestone #3 (due 2/9) Milestone #4 (due 2/23)
Lecture Topics Today: Single-Cycle Processors (P&H 4.1-4.4) Next: continued 1 Announcements Milestone #3 (due 2/9) Milestone #4 (due 2/23) Exam #1 (Wednesday, 2/15) 2 1 Exam #1 Wednesday, 2/15 (3:00-4:20
More informationChapter 4. The Processor. Computer Architecture and IC Design Lab
Chapter 4 The Processor Introduction CPU performance factors CPI Clock Cycle Time Instruction count Determined by ISA and compiler CPI and Cycle time Determined by CPU hardware We will examine two MIPS
More informationRISC Pipeline. Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University. See: P&H Chapter 4.6
RISC Pipeline Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University See: P&H Chapter 4.6 A Processor memory inst register file alu PC +4 +4 new pc offset target imm control extend =? cmp
More informationChapter 4. The Processor
Chapter 4 The Processor Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle time Determined by CPU hardware We will examine two MIPS implementations A simplified
More informationBluespec for a Pipelined SMIPSv2 Processor
Bluespec for a Pipelined SMIPSv2 Processor 6.375 Laboratory 2 February 14, 2008 The second laboratory assignment is to implement a pipelined SMIPSv2 in Bluespec SystemVerilog. As with Lab One, your deliverables
More informationComputer Architecture
Lecture 3: Pipelining Iakovos Mavroidis Computer Science Department University of Crete 1 Previous Lecture Measurements and metrics : Performance, Cost, Dependability, Power Guidelines and principles in
More informationCombinational circuits
omputer Architecture: A onstructive Approach Sequential ircuits Arvind omputer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology Revised February 21, 212 (Slides from #16 onwards)
More informationThe MIPS Processor Datapath
The MIPS Processor Datapath Module Outline MIPS datapath implementation Register File, Instruction memory, Data memory Instruction interpretation and execution. Combinational control Assignment: Datapath
More informationDepartment of Computer and IT Engineering University of Kurdistan. Computer Architecture Pipelining. By: Dr. Alireza Abdollahpouri
Department of Computer and IT Engineering University of Kurdistan Computer Architecture Pipelining By: Dr. Alireza Abdollahpouri Pipelined MIPS processor Any instruction set can be implemented in many
More informationConstructive Computer Architecture. Combinational ALU. Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology
Constructive Computer Architecture Combinational ALU Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology September 11, 2017 ht://csg.csail.mit.edu/6.175 L03-1 Outline
More informationVery Simple MIPS Implementation
06 1 MIPS Pipelined Implementation 06 1 line: (In this set.) Unpipelined Implementation. (Diagram only.) Pipelined MIPS Implementations: Hardware, notation, hazards. Dependency Definitions. Hazards: Definitions,
More informationare Softw Instruction Set Architecture Microarchitecture are rdw
Program, Application Software Programming Language Compiler/Interpreter Operating System Instruction Set Architecture Hardware Microarchitecture Digital Logic Devices (transistors, etc.) Solid-State Physics
More informationComputer Systems Architecture Spring 2016
Computer Systems Architecture Spring 2016 Lecture 01: Introduction Shuai Wang Department of Computer Science and Technology Nanjing University [Adapted from Computer Architecture: A Quantitative Approach,
More informationChapter 4. The Processor
Chapter 4 The Processor Introduction CPU performance factors Instruction count Determined by ISA and compiler CPI and Cycle time Determined by CPU hardware We will examine two MIPS implementations A simplified
More informationAppendix C: Pipelining: Basic and Intermediate Concepts
Appendix C: Pipelining: Basic and Intermediate Concepts Key ideas and simple pipeline (Section C.1) Hazards (Sections C.2 and C.3) Structural hazards Data hazards Control hazards Exceptions (Section C.4)
More informationThe Processor: Datapath and Control. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
The Processor: Datapath and Control Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Introduction CPU performance factors Instruction count Determined
More informationCOSC 6385 Computer Architecture - Pipelining
COSC 6385 Computer Architecture - Pipelining Fall 2006 Some of the slides are based on a lecture by David Culler, Instruction Set Architecture Relevant features for distinguishing ISA s Internal storage
More information(Basic) Processor Pipeline
(Basic) Processor Pipeline Nima Honarmand Generic Instruction Life Cycle Logical steps in processing an instruction: Instruction Fetch (IF_STEP) Instruction Decode (ID_STEP) Operand Fetch (OF_STEP) Might
More informationCMSC 411 Computer Systems Architecture Lecture 6 Basic Pipelining 3. Complications With Long Instructions
CMSC 411 Computer Systems Architecture Lecture 6 Basic Pipelining 3 Long Instructions & MIPS Case Study Complications With Long Instructions So far, all MIPS instructions take 5 cycles But haven't talked
More information6.175: Constructive Computer Architecture. Tutorial 5 Epochs, Debugging, and Caches
6.175: Constructive Computer Architecture Tutorial 5 Epochs, Debugging, and Caches Quan Nguyen (Troubled by the two biggest problems in computer science and Comic Sans) T05-1 Agenda Epochs: a review Debugging
More informationECE232: Hardware Organization and Design
ECE232: Hardware Organization and Design Lecture 14: One Cycle MIPs Datapath Adapted from Computer Organization and Design, Patterson & Hennessy, UCB R-Format Instructions Read two register operands Perform
More informationConstructive Computer Architecture. Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology
Constructive Computer Architecture Caches-2 Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology L18-1 Cache Interface req memreq mshr mreqq DRAM or Processor next
More informationThe Processor (1) Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University
The Processor (1) Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu EEE3050: Theory on Computer Architectures, Spring 2017, Jinkyu Jeong (jinkyu@skku.edu)
More informationSuccessive refinement & Modular Structure. Bluespec-8: Modules and Interfaces. Designing a 2-Stage Processor with GAA. A 2-Stage Processor in RTL
Bluespec-8: Modules and Interfaces Successive refinement & Modular Structure rf fetch decode memory writeback Arvind Computer Science & Artificial Intelligence Lab Massachusetts Institute of Technology
More informationECE 486/586. Computer Architecture. Lecture # 7
ECE 486/586 Computer Architecture Lecture # 7 Spring 2015 Portland State University Lecture Topics Instruction Set Principles Instruction Encoding Role of Compilers The MIPS Architecture Reference: Appendix
More informationDepartment of Electrical Engineering and Computer Sciences Fall 2003 Instructor: Dave Patterson CS 152 Exam #1. Personal Information
University of California, Berkeley College of Engineering Department of Electrical Engineering and Computer Sciences Fall 2003 Instructor: Dave Patterson 2003-10-8 CS 152 Exam #1 Personal Information First
More informationECSE 425 Lecture 6: Pipelining
ECSE 425 Lecture 6: Pipelining H&P, Appendix A Vu, Meyer Textbook figures 2007 Elsevier Science Last Time Processor Performance EquaQon System performance Benchmarks 2 Today Pipelining Basics RISC InstrucQon
More informationCS31001 COMPUTER ORGANIZATION AND ARCHITECTURE
CS31001 COMPUTER ORGANIZATION AND ARCHITECTURE Debdeep Mukhopadhyay, CSE, IIT Kharagpur Instruction Execution Steps: The Multi Cycle Circuit 1 The Micro Mips ISA The Instruction Format op rs rt rd sh fn
More informationThe University of Michigan - Department of EECS EECS 370 Introduction to Computer Architecture Midterm Exam 2 solutions April 5, 2011
1. Performance Principles [5 pts] The University of Michigan - Department of EECS EECS 370 Introduction to Computer Architecture Midterm Exam 2 solutions April 5, 2011 For each of the following comparisons,
More informationECE 353 Lab 3. (A) To gain further practice in writing C programs, this time of a more advanced nature than seen before.
ECE 353 Lab 3 Motivation: The purpose of this lab is threefold: (A) To gain further practice in writing C programs, this time of a more advanced nature than seen before. (B) To reinforce what you learned
More informationCS 61C: Great Ideas in Computer Architecture. Lecture 13: Pipelining. Krste Asanović & Randy Katz
CS 61C: Great Ideas in Computer Architecture Lecture 13: Pipelining Krste Asanović & Randy Katz http://inst.eecs.berkeley.edu/~cs61c/fa17 RISC-V Pipeline Pipeline Control Hazards Structural Data R-type
More informationReview: Abstract Implementation View
Review: Abstract Implementation View Split memory (Harvard) model - single cycle operation Simplified to contain only the instructions: memory-reference instructions: lw, sw arithmetic-logical instructions:
More informationEI338: Computer Systems and Engineering (Computer Architecture & Operating Systems)
EI338: Computer Systems and Engineering (Computer Architecture & Operating Systems) Chentao Wu 吴晨涛 Associate Professor Dept. of Computer Science and Engineering Shanghai Jiao Tong University SEIEE Building
More informationCS 61C: Great Ideas in Computer Architecture (Machine Structures) Caches Part 3
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Caches Part 3 Instructors: Krste Asanović & Randy H. Katz http://inst.eecs.berkeley.edu/~cs61c/ 10/19/17 Fall 2017 - Lecture #16 1 Parallel
More informationPipelining and Exploiting Instruction-Level Parallelism (ILP)
Pipelining and Exploiting Instruction-Level Parallelism (ILP) Pipelining and Instruction-Level Parallelism (ILP). Definition of basic instruction block Increasing Instruction-Level Parallelism (ILP) &
More informationCOMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 4. The Processor
COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition Chapter 4 The Processor COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface 5 th Edition The Processor - Introduction
More information