Fall 2006 1 EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Computer Organization Lecture 8 Detailed MIPS datapath Timing overview.

Slides:



Advertisements
Similar presentations
CS/COE1541: Introduction to Computer Architecture Datapath and Control Review Sangyeun Cho Computer Science Department University of Pittsburgh.
Advertisements

Adding the Jump Instruction
Fall EE 333 Lillevik480f05-a2 University of Portland School of Engineering EE 333 Exam 2 November 10, 2005 Instructions 1.Print your name, student.
1 Datapath and Control (Multicycle datapath) CDA 3101 Discussion Section 11.
CIS 314 Fall 2005 MIPS Datapath (Single Cycle and Multi-Cycle)
Fall EE 333 Lillevik333f06-a1 University of Portland School of Engineering EE 333 Exam 1 September 28, 2006 Instructions 1.Print your name, student.
331 W08.1Spring :332:331 Computer Architecture and Assembly Language Spring 2006 Week 8: Datapath Design [Adapted from Dave Patterson’s UCB CS152.
The Processor: Datapath & Control
1  1998 Morgan Kaufmann Publishers Chapter Five The Processor: Datapath and Control.
Fall 2007 MIPS Datapath (Single Cycle and Multi-Cycle)
Lec 17 Nov 2 Chapter 4 – CPU design data path design control logic design single-cycle CPU performance limitations of single cycle CPU multi-cycle CPU.
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 ( )
The Processor 2 Andreas Klappenecker CPSC321 Computer Architecture.
Chapter Five The Processor: Datapath and Control.
331 W10.1Spring :332:331 Computer Architecture and Assembly Language Spring 2005 Week 10 Building a Multi-Cycle Datapath [Adapted from Dave Patterson’s.
Processor I CPSC 321 Andreas Klappenecker. Midterm 1 Thursday, October 7, during the regular class time Covers all material up to that point History MIPS.
The Processor Data Path & Control Chapter 5 Part 1 - Introduction and Single Clock Cycle Design N. Guydosh 2/29/04.
Dr. Iyad F. Jafar Basic MIPS Architecture: Multi-Cycle Datapath and Control.
Fall EE 333 Lillevik 333f06-l7 University of Portland School of Engineering Computer Organization Lecture 7 ALU design MIPS data path.
COSC 3430 L08 Basic MIPS Architecture.1 COSC 3430 Computer Architecture Lecture 08 Processors Single cycle Datapath PH 3: Sections
Lec 15Systems Architecture1 Systems Architecture Lecture 15: A Simple Implementation of MIPS Jeremy R. Johnson Anatole D. Ruslanov William M. Mongan Some.
Fall EE 333 Lillevik 333f06-l17 University of Portland School of Engineering Computer Organization Lecture 17 Controller design Microprogramming.
ECE 445 – Computer Organization
Fall EE 333 Lillevik 333f06-l13 University of Portland School of Engineering Computer Organization Lecture 13 Controller implementations Register.
CDA 3101 Fall 2013 Introduction to Computer Organization
CDA 3101 Fall 2013 Introduction to Computer Organization Multicycle Datapath 9 October 2013.
1. Building A CPU  We’ve built a small ALU l Add, Subtract, SLT, And, Or l Could figure out Multiply and Divide  What about the rest l How do.
Fall EE 333 Lillevik 333f06-l18 University of Portland School of Engineering Computer Organization Lecture 18 IF, ID, R-type microprogramming Exam.
CPU Overview Computer Organization II 1 February 2009 © McQuain & Ribbens Introduction CPU performance factors – Instruction count n Determined.
ECE-C355 Computer Structures Winter 2008 The MIPS Datapath Slides have been adapted from Prof. Mary Jane Irwin ( )
Datapath and Control AddressInstruction Memory Write Data Reg Addr Register File ALU Data Memory Address Write Data Read Data PC Read Data Read Data.
Datapath and Control AddressInstruction Memory Write Data Reg Addr Register File ALU Data Memory Address Write Data Read Data PC Read Data Read Data.
Datapath and Control AddressInstruction Memory Write Data Reg Addr Register File ALU Data Memory Address Write Data Read Data PC Read Data Read Data.
COM181 Computer Hardware Lecture 6: The MIPs CPU.
MIPS Processor.
1 CS/COE0447 Computer Organization & Assembly Language Chapter 5 Part 3.
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:
Design a MIPS Processor (II)
CS Computer Architecture Week 10: Single Cycle Implementation
Multi-Cycle Datapath and Control
CS161 – Design and Architecture of Computer Systems
IT 251 Computer Organization and Architecture
Introduction CPU performance factors
/ Computer Architecture and Design
Morgan Kaufmann Publishers
Multi-Cycle CPU.
Basic MIPS Architecture
Processor (I).
CS/COE0447 Computer Organization & Assembly Language
Design of the Control Unit for Single-Cycle Instruction Execution
COSC 2021: Computer Organization Instructor: Dr. Amir Asif
CSCI206 - Computer Organization & Programming
CSCE 212 Chapter 5 The Processor: Datapath and Control
Single-Cycle CPU DataPath.
Design of the Control Unit for One-cycle Instruction Execution
A Multiple Clock Cycle Instruction Implementation
MIPS Processor.
Morgan Kaufmann Publishers The Processor
Rocky K. C. Chang 6 November 2017
The Processor Lecture 3.2: Building a Datapath with Control
Vishwani D. Agrawal James J. Danaher Professor
COMS 361 Computer Organization
COSC 2021: Computer Organization Instructor: Dr. Amir Asif
COSC 2021: Computer Organization Instructor: Dr. Amir Asif
Processor: Multi-Cycle Datapath & Control
The Processor: Datapath & Control.
COMS 361 Computer Organization
MIPS Processor.
Presentation transcript:

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Computer Organization Lecture 8 Detailed MIPS datapath Timing overview

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Project 2 overview Sixteen-bit ALU Use four LS181 plus some other logic Arithmetic: +, - Logical: –and, or –shift left, shift right

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Project 2 hints Use four LS181’s ALU Design shifter circuits Use muxes to select between ALU and shifters Design combinational logic to control muxes: consider a ROM

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Project 2 questions?

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering MIPS datapath overview Instruction read from memory Registers selected for operation ALU performs function Result written to register

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Shift register review

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Shift register operation Clock & Reset connected/bused to each flip-flop With Sin = 1, data moves left-to-right on each clock edge (1000, 1100, 1110, 1111) We could modify the design –32-bit shift register –Add combinational logic between flip-flops

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering MIPS datapath Information moves left-to-right

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Key elements of datapath Shared memory: instructions and data Single ALU –PC increment by 4 –Functions: +, -, and, or, etc. –Determines effective & branch/jump addresses Temporary registers: hold data between clock edges (like shift register does)

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering New temporary registers Instruction (IR): holds current instruction Memory data (MDR): holds data read from memory A, B: holds data from register file ALUout: holds ALU output (Project 2) Note: All of these are D-type flip-flops

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering MIPS datapath Data travels left-to-right on each clock edge Clock Driver Clock 1 Clock 2 Clock 3 Clock 4 Clock 5

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Example timing Instruction fetch Instruction decode, register read Execution Memory access Register write Instructions vary from 3 – 5 clocks

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Complete the table? Instruction Total Clocks Clock add $1, $2, $34xxxx beq $1, $2, label4xxx lw $1, offset ($2)5xxxxx sub $1, $2, $34xxxx sw $1, offset ($2)4xxxx j label3xxx 1 = Instruction Fetch 2 = Decode & Register Read 3 = Execution 4 = Memory Access 5 = Register Write

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Datapath organization detail Five muxes select between various sources

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Muxes added 1.Address for memory: PC or ALU 2.Write register: rs or rt 3.Write data: memory, ALU 4.ALU first operand: PC, Register 1 5.ALU second operand: Register 2, 0x4, sign extended, sign extended shifted 2

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Timing parameters D flip-flop has setup and propagation delays t su t prop D input Clock Q output Q Q D C

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Synchronous logic Clock period > T prop + T comb + T set Edge-triggered logic Register

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Find the F max ? Mem = 20 ns; Reg = 15 ns; ALU = 55 ns Assume: mem, reg, ALU dominant terms

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Now add controller signals

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering What do these signals do? SignalFunction? IorDControls address of memory: PC, ALU MemReadPuts memory in read mode MemWritePuts memory in write mode IRWriteWrite data to instruction register RegDstRs or rt for register write data RegWritePuts registers in write mode

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering What do these signals do? SignalFunction? ALUSrcAData for A input of ALU ALUOpFunction code for ALU ALUSrcBData for B input of ALU MemtoRegData for the register write: memory, ALU

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Branch and jump additions Next PC value, three possible sources –PC+4: ALU output –Branch target: ALUout register –Jump address: concatenation of PC 31-28, IR 25-0 shifted left 2, two lsb of zero PC write control –PCWrite: unconditional (increments, jump) –PCWriteCond: conditional write for branch

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Complete datapath new

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Datapath and controller Controller Input

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Complete the table? Instruction Total Clocks Clock add $1, $2, $34xxxx beq $1, $2, label3xxx lw $1, offset ($2)5xxxxx sub $1, $2, $33xxxx sw $1, offset ($2)4xxxx j label3xxx 1 = Instruction Fetch 2 = Decode & Register Read 3 = Execution 4 = Memory Access 5 = Register Write

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering Find the F max ? Mem = 20 ns;Reg = 15 ns; ALU = 55 ns F max = 1/55ns = 18.1 MHz Assume: mem, reg, ALU dominant terms 20 ns 15 ns 55 ns

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering What do these signals do? SignalFunction? IorDControls address of memory: PC, ALU MemReadPuts memory in read mode MemWriteData written to memory IRWriteData written to IR RegDstSelects rs or rt for register write RegWriteData written to register file

Fall EE 333 Lillevik 333f06-l8 University of Portland School of Engineering What do these signals do? SignalFunction? ALUSrcADetermines ALU first operand ALUOpDefines ALU function (+, -, etc.) ALUSrcBDetermines ALU second operand MemtoRegMemory or ALU is data for register write