1 Chapter Five The Processor: Datapath and Control.

Slides:



Advertisements
Similar presentations
The Processor: Datapath & Control
Advertisements

1  1998 Morgan Kaufmann Publishers Chapter Five The Processor: Datapath and Control.
The Processor Data Path & Control Chapter 5 Part 2 - Multi-Clock Cycle Design N. Guydosh 2/29/04.
Chapter 5 The Processor: Datapath and Control Basic MIPS Architecture Homework 2 due October 28 th. Project Designs due October 28 th. Project Reports.
1 5.5 A Multicycle Implementation A single memory unit is used for both instructions and data. There is a single ALU, rather than an ALU and two adders.
Embedded Systems in Silicon TD5102 MIPS design Datapath and Control Henk Corporaal Technical University.
CSCE 212 Chapter 5 The Processor: Datapath and Control Instructor: Jason D. Bakos.
1 Chapter Five. 2 We're ready to look at an implementation of the MIPS Simplified to contain only: –memory-reference instructions: lw, sw –arithmetic-logical.
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.
ENEE350 Ankur Srivastava University of Maryland, College Park Based on Slides from Mary Jane Irwin ( )
Advanced Computer Architecture 5MD00 / 5Z033 MIPS Design data path and control Henk Corporaal TUEindhoven 2007.
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.
1 The Processor: Datapath and Control We will design a microprocessor that includes a subset of the MIPS instruction set: –Memory access: load/store word.
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.
CSE431 L05 Basic MIPS Architecture.1Irwin, PSU, 2005 CSE 431 Computer Architecture Fall 2005 Lecture 05: Basic MIPS Architecture Review Mary Jane Irwin.
Dr. Iyad F. Jafar Basic MIPS Architecture: Multi-Cycle Datapath and Control.
Computing Systems The Processor: Datapath and Control.
COSC 3430 L08 Basic MIPS Architecture.1 COSC 3430 Computer Architecture Lecture 08 Processors Single cycle Datapath PH 3: Sections
Computer Architecture Chapter 5 Fall 2005 Department of Computer Science Kent State University.
Lec 15Systems Architecture1 Systems Architecture Lecture 15: A Simple Implementation of MIPS Jeremy R. Johnson Anatole D. Ruslanov William M. Mongan Some.
Datapath and Control: MultiCycle Implementation. Performance of Single Cycle Machines °Assume following operation times: Memory units : 200 ps ALU and.
CPE232 Basic MIPS Architecture1 Computer Organization Multi-cycle Approach Dr. Iyad Jafar Adapted from Dr. Gheith Abandah slides
1 CS/COE0447 Computer Organization & Assembly Language Multi-Cycle Execution.
C HAPTER 5 T HE PROCESSOR : D ATAPATH AND C ONTROL M ULTICYCLE D ESIGN.
Computer Architecture and Design – ECEN 350 Part 6 [Some slides adapted from A. Sprintson, M. Irwin, D. Paterson and others]
Gary MarsdenSlide 1University of Cape Town Stages.
D ATA P ATH OF A PROCESSOR (MIPS) Module 1.1 : Elements of computer system UNIT 1.
1  2004 Morgan Kaufmann Publishers Chapter Five.
Multicycle Implementation
IT 251 Computer Organization and Architecture Multi Cycle CPU Datapath Chia-Chi Teng.
LECTURE 6 Multi-Cycle Datapath and Control. SINGLE-CYCLE IMPLEMENTATION As we’ve seen, single-cycle implementation, although easy to implement, could.
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.
Fall 2015, Sep ELEC / Lecture 5 1 ELEC / Computer Architecture and Design Fall 2015 Datapath and Control (Chapter.
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.
Chapter 4 From: Dr. Iyad F. Jafar Basic MIPS Architecture: Multi-Cycle Datapath and Control.
1 CS/COE0447 Computer Organization & Assembly Language Chapter 5 Part 3.
1 The final datapath. 2 Control  The control unit is responsible for setting all the control signals so that each instruction is executed properly. —The.
Computer Architecture Lecture 6.  Our implementation of the MIPS is simplified memory-reference instructions: lw, sw arithmetic-logical instructions:
Design a MIPS Processor (II)
Multi-Cycle Datapath and Control
CS161 – Design and Architecture of Computer Systems
IT 251 Computer Organization and Architecture
Chapter 5 The Processor: Datapath and Control
/ Computer Architecture and Design
Systems Architecture I
Multi-Cycle CPU.
Multi-Cycle CPU.
Basic MIPS Architecture
Processor (I).
CS/COE0447 Computer Organization & Assembly Language
Multiple Cycle Implementation of MIPS-Lite CPU
CSCE 212 Chapter 5 The Processor: Datapath and Control
Chapter Five The Processor: Datapath and Control
Multicycle Approach Break up the instructions into steps
The Multicycle Implementation
Chapter Five The Processor: Datapath and Control
The Multicycle Implementation
Systems Architecture I
Vishwani D. Agrawal James J. Danaher Professor
COSC 2021: Computer Organization Instructor: Dr. Amir Asif
Processor: Multi-Cycle Datapath & Control
Multi-Cycle Datapath Lecture notes from MKP, H. H. Lee and S. Yalamanchili.
Chapter Four The Processor: Datapath and Control
5.5 A Multicycle Implementation
Systems Architecture I
The Processor: Datapath & Control.
CS161 – Design and Architecture of Computer Systems
Presentation transcript:

1 Chapter Five The Processor: Datapath and Control

2 A Basic MIPS Implementation We're ready to look at an implementation of the MIPS Simplified to contain only: –memory-reference instructions: lw, sw –arithmetic-logical instructions: add, sub, and, or, slt –control flow instructions: beq, j Generic Implementation: –use the program counter (PC) to supply instruction address –get the instruction from memory –read registers –use the instruction to decide exactly what to do All instructions use the ALU after reading the registers Why? memory-reference? arithmetic? control flow? 5.1 Introduction

3 An Overview of the Implementation For most instructions: fetch instruction, fetch operands, execute, store. An abstract view of the implementation of the MIPS subset showing the major functional units and the major connections between them Missing Multiplexers, and some Control lines for read and write.

4 Continue The basic implementation of the MIPS subset including the necessary multiplexers and control lines. Single-cycle datapath (long cycle for every instruction. Multiple clock cycles for each instruction>

5 5.2 Logic Design Conventions Combinational elements & State elements State elements Unclocked vs. Clocked Clocks used in synchronous logic – when should an element that contains state be updated?

6 Clocking Methodology An edge triggered methodology Typical execution: –read contents of some state elements, –send values through some combinational logic –write results to one or more state elements

7 5.3 Building a Datapath We need functional units (datapath elements) for: 1.Fetching instructions and incrementing the PC. 2.Execute arithmetic-logical instructions: add, sub, and, or, and slt 3.Execute memory-reference instructions: lw, sw 4.Execute branch/jump instructions: beq, j 1.Fetching instructions and incrementing the PC.

8 Continue 2.Execute arithmetic-logical instructions: add, sub, and, or, and slt add $t1, $t2, $t3 # t1 = t2 + t3

9 Continue 3.Execute memory-reference instructions: lw, sw lw $t1, offset_value($t2) sw $t1, offset_value($t2)

10 4.Execute branch/jump instructions: beq, j beq $t1, $t2, offset

11 Creating a Single Datapath Sharing datapath elements Example: Show how to built a datapath for arithmetic-logical and memory reference instructions.

12 Continue Now we con combine all the pieces to make a simple datapath for the MIPS architecture:

A Simple Implementation Scheme The ALU Control

14 Designing the Main Control Unit

15 Continue

16 Continue

17 Finalizing the Control

18 Continue

19 Continue

20 Example: Implementing Jumps

21 Why a Single-Cycle Implementation Is Not Used Today Example: Performance of Single-Cycle Machines Calculate cycle time assuming negligible delays except: –memory (200ps), –ALU and adders (100ps), –register file access (50ps) Which of the following implementation would be faster: 1.When every instruction operates in 1 clock cycle of fixes length. 2.When every instruction executes in 1 clock cycle using a variable-length clock. To compare the performance, assume the following instruction mix: 25% loads 10% stores 45% ALU instructions 15% branches, and 5% jumps

22 Continue CPU clock cycle (option 1) = 600 ps. CPU clock cycle (option 2) = 400  45%  25%  10%  15%  5% = ps. Performance ratio = 45% ALU instructions 25% loads 10% stores 15% branches, and 5% jumps memory (200ps), ALU and adders (100ps), register file access (50ps)

A Multicycle Implementation A single memory unit is used for both instructions and data. There is a single ALU, rather than an ALU and two adders. One or more registers are added after every major functional unit.

24 Continue Replacing the three ALUs of the single-cycle by a single ALU means that the single ALU must accommodate all the inputs that used to go to the three different ALUs.

25 Continue

26 Continue

27 Continue

28 Breaking the Instruction Execution into Clock Cycles 1.Instruction fetch step IR <= Memory[PC]; PC <= PC + 4;

29 Breaking the Instruction Execution into Clock Cycles IR <= Memory[PC]; To do this, we need: MemRead  Assert IRWrite  Assert IorD  PC <= PC + 4; ALUSrcA  0 ALUSrcB  01 ALUOp  00 (for add) PCSource  00 PCWrite  set The increment of the PC and instruction memory access can occur in parallel, how?

30 Breaking the Instruction Execution into Clock Cycles 2.Instruction decode and register fetch step –Actions that are either applicable to all instructions –Or are not harmful A <= Reg[IR[25:21]]; B <= Reg[IR[20:16]]; ALUOut <= PC + (sign-extend(IR[15-0] << 2 );

31 A <= Reg[IR[25:21]]; B <= Reg[IR[20:16]]; Since A and B are overwritten on every cycle  Done ALUOut <= PC + (sign- extend(IR[15-0]<<2); This requires: ALUSrcA  0 ALUSrcB  11 ALUOp  00 (for add) branch target address will be stored in ALUOut. The register file access and computation of branch target occur in parallel.

32 Breaking the Instruction Execution into Clock Cycles 3.Execution, memory address computation, or branch completion Memory reference: ALUOut <= A + sign-extend(IR[15:0]); Arithmetic-logical instruction: ALUOut <= A op B; Branch: if (A == B) PC <= ALUOut; Jump: PC <= { PC[31:28], (IR[25:0], 2’b00) };

33 Memory reference: ALUOut <= A + sign-extend(IR[15:0]); ALUSrcA = 1 && ALUSrcB = 10 ALUOp = 00 Arithmetic-logical instruction: ALUOut <= A op B; ALUSrcA = 1 && ALUSrcB = 00 ALUOp = 10 Branch: if (A == B) PC <= ALUOut; ALUSrcA = 1 && ALUSrcB = 00 ALUOp = 01 (for subtraction) PCSource = 01 PCWriteCond is asserted Jump: PC <= { PC[31:28], (IR[25:0],2’b00) }; PCWrite is asserted PCSource = 10

34 Breaking the Instruction Execution into Clock Cycles 4.Memory access or R-type instruction completion step Memory reference: MDR <= Memory [ALUOut];  MemRead, IorD=1 or Memory [ALUOut] <= B;  MemWrite, IorD=1 Arithmetic-logical instruction (R-type): Reg[IR[15:11]] <= ALUOut;  RegDst=1,RegWrite, MemtoReg=0 5.Memory read completion step Load: Reg[IR[20:16]] <= MDR;  RegDst=0, RegWrite, MemtoReg=1

35 Breaking the Instruction Execution into Clock Cycles

36 Continue Summary of the steps taken to execute any instruction class

37 Defining the Control Two different techniques to specify the control: –Finite state machine –Microprogramming Example: CPI in a Multicycle CPU Using the SPECINT2000 instruction mix, which is: 25% load, 10% store, 11% branches, 2% jumps, and 52% ALU. What is the CPI, assuming that each state in the multicycle CPU requires 1 clock cycle? Answer: The number of clock cycles for each instruction class is the following:  Load: 5 25%  Stores: 410%  ALU instruction: 452%  Branches: 311%  Jumps: 32%

38 Example Continue The CPI is given by the following: is simply the instruction frequency for the instruction class i. We can therefore substitute to obtain: CPI = 0.25      3 = 4.12 This CPI is better than the worst-case CPI of 5.0 when all instructions take the same number of clock cycles.

39 Defining the Control (Continue)

40 Defining the Control (Continue) The complete finite state machine control

41 Defining the Control (Continue) Finite state machine controllers are typically implemented using a block of combinational logic and a register to hold the current state.

Exceptions Exceptions Interrupts Type of eventFrom where?MIPS terminology I/O device requestExternalInterrupt Invoke the operating system from user programInternalException Arithmetic overflowInternalException Using an undefined instructionInternalException Hardware malfunctionEitherException or interrupt

43 How Exception Are Handled To communicate the reason for an exception: 1.a status register ( called the Cause register) 2.vectored interrupts Exception typeException vector address (in hex) Undefined instructionC hex Arithmetic overflowC hex

44 How Control Checks for Exception Assume two possible exceptions:  Undefined instruction  Arithmetic overflow

45 Continue The multicycle datapath with the addition needed to implement exceptions

46 Continue The finite state machine with the additions to handle exception detection