The CPU Pipeline. MIPS R4000 Microprocessor User's Manual 43

Similar documents
ECE 4750 Computer Architecture, Fall 2017 T05 Integrating Processors and Memories

Instruction Pipelining Review

Predict Not Taken. Revisiting Branch Hazard Solutions. Filling the delay slot (e.g., in the compiler) Delayed Branch

LECTURE 10. Pipelining: Advanced ILP

Announcement. ECE475/ECE4420 Computer Architecture L4: Advanced Issues in Pipelining. Edward Suh Computer Systems Laboratory

Minimizing Data hazard Stalls by Forwarding Data Hazard Classification Data Hazards Present in Current MIPS Pipeline

CMCS Mohamed Younis CMCS 611, Advanced Computer Architecture 1

COMP 4211 Seminar Presentation

EKT 303 WEEK Pearson Education, Inc., Hoboken, NJ. All rights reserved.

6x86 PROCESSOR Superscalar, Superpipelined, Sixth-generation, x86 Compatible CPU

ENGN 2910A Homework 03 (140 points) Due Date: Oct 3rd 2013

EECS 322 Computer Architecture Superpipline and the Cache

2.5 Address Space. The IBM 6x86 CPU can directly address 64 KBytes of I/O space and 4 GBytes of physical memory (Figure 2-24).

There are different characteristics for exceptions. They are as follows:

c. What are the machine cycle times (in nanoseconds) of the non-pipelined and the pipelined implementations?

CISC 662 Graduate Computer Architecture Lecture 7 - Multi-cycles

MIPS Pipelining. Computer Organization Architectures for Embedded Computing. Wednesday 8 October 14

Instr. execution impl. view

Pipelining and Vector Processing

Appendix C. Authors: John Hennessy & David Patterson. Copyright 2011, Elsevier Inc. All rights Reserved. 1

ARM processor organization

Chapter 3. Pipelining. EE511 In-Cheol Park, KAIST

CISC 662 Graduate Computer Architecture Lecture 7 - Multi-cycles. Interrupts and Exceptions. Device Interrupt (Say, arrival of network message)

Processor Structure and Function

BOBCAT: AMD S LOW-POWER X86 PROCESSOR

EITF20: Computer Architecture Part2.2.1: Pipeline-1

Topics in computer architecture

This section covers the MIPS instruction set.

CMSC 411 Computer Systems Architecture Lecture 6 Basic Pipelining 3. Complications With Long Instructions

Complications with long instructions. CMSC 411 Computer Systems Architecture Lecture 6 Basic Pipelining 3. How slow is slow?

EITF20: Computer Architecture Part2.2.1: Pipeline-1

William Stallings Computer Organization and Architecture 10 th Edition Pearson Education, Inc., Hoboken, NJ. All rights reserved.

1. PowerPC 970MP Overview

Chapter 12. CPU Structure and Function. Yonsei University

LECTURE 3: THE PROCESSOR

COMPUTER ORGANIZATION AND DESIGN

Lecture 9: Case Study MIPS R4000 and Introduction to Advanced Pipelining Professor Randy H. Katz Computer Science 252 Spring 1996

COMPUTER ORGANIZATION AND DESI

EEC 483 Computer Organization

EITF20: Computer Architecture Part2.2.1: Pipeline-1

EE 457 Unit 8. Exceptions What Happens When Things Go Wrong

Processors. Young W. Lim. May 12, 2016

Processor Architecture V! Wrap-Up!

Full Datapath. Chapter 4 The Processor 2

POLITECNICO DI MILANO. Exception handling. Donatella Sciuto:

Lecture 7: Pipelining Contd. More pipelining complications: Interrupts and Exceptions

PowerPC 740 and 750

Pipelining. CSC Friday, November 6, 2015

ECE 486/586. Computer Architecture. Lecture # 12

What are Exceptions? EE 457 Unit 8. Exception Processing. Exception Examples 1. Exceptions What Happens When Things Go Wrong

Instruction Level Parallelism. Appendix C and Chapter 3, HP5e

Advanced d Instruction Level Parallelism. Computer Systems Laboratory Sungkyunkwan University

SECTION 8 EXCEPTION PROCESSING

Computer Systems Architecture I. CSE 560M Lecture 5 Prof. Patrick Crowley

Module 5: "MIPS R10000: A Case Study" Lecture 9: "MIPS R10000: A Case Study" MIPS R A case study in modern microarchitecture.

Instruction Level Parallelism. ILP, Loop level Parallelism Dependences, Hazards Speculation, Branch prediction

CMCS Mohamed Younis CMCS 611, Advanced Computer Architecture 1

Pipelined Processors. Ideal Pipelining. Example: FP Multiplier. 55:132/22C:160 Spring Jon Kuhl 1

ARM Processors for Embedded Applications

Limitations of Scalar Pipelines

Appendix C: Pipelining: Basic and Intermediate Concepts

Advanced Computer Architecture

ECE/CS 552: Pipeline Hazards

Hercules ARM Cortex -R4 System Architecture. Processor Overview

interaptiv Multiprocessing System Datasheet May 13, 2016

What is Pipelining? Time per instruction on unpipelined machine Number of pipe stages

Multi-cycle Instructions in the Pipeline (Floating Point)

Department of Computer and IT Engineering University of Kurdistan. Computer Architecture Pipelining. By: Dr. Alireza Abdollahpouri

Lecture 6 MIPS R4000 and Instruction Level Parallelism. Computer Architectures S

Lecture 5: Instruction Pipelining. Pipeline hazards. Sequential execution of an N-stage task: N Task 2

Dynamic Control Hazard Avoidance

Advanced Parallel Architecture Lessons 5 and 6. Annalisa Massini /2017

3/12/2014. Single Cycle (Review) CSE 2021: Computer Organization. Single Cycle with Jump. Multi-Cycle Implementation. Why Multi-Cycle?

The ARM10 Family of Advanced Microprocessor Cores

3 INSTRUCTION FLOW. Overview. Figure 3-0. Table 3-0. Listing 3-0.

Advanced issues in pipelining

Techniques for Mitigating Memory Latency Effects in the PA-8500 Processor. David Johnson Systems Technology Division Hewlett-Packard Company

MIPS R5000 Microprocessor. Technical Backgrounder. 32 kb I-cache and 32 kb D-cache, each 2-way set associative

CS:APP Chapter 4 Computer Architecture Wrap-Up Randal E. Bryant Carnegie Mellon University

The Processor: Instruction-Level Parallelism

Pipelining. Principles of pipelining. Simple pipelining. Structural Hazards. Data Hazards. Control Hazards. Interrupts. Multicycle operations

CS311 Lecture: Pipelining and Superscalar Architectures

Purpose This course provides an overview of the SH-2A 32-bit RISC CPU core built into newer microcontrollers in the popular SH-2 series

Hi Hsiao-Lung Chan, Ph.D. Dept Electrical Engineering Chang Gung University, Taiwan

COSC 6385 Computer Architecture - Pipelining (II)

Itanium 2 Processor Microarchitecture Overview

ELE 375 / COS 471 Final Exam Fall, 2001 Prof. Martonosi

Exception Handling. Precise Exception Handling. Exception Types. Exception Handling Terminology

14:332:331 Pipelined Datapath

Basic Pipelining Concepts

Unresolved data hazards. CS2504, Spring'2007 Dimitris Nikolopoulos

Cortex-A9 MPCore Software Development

Pipelining Analogy. Pipelined laundry: overlapping execution. Parallelism improves performance. Four loads: Non-stop: Speedup = 8/3.5 = 2.3.

Superscalar Processor

1 Hazards COMP2611 Fall 2015 Pipelined Processor

Complex Pipelining COE 501. Computer Architecture Prof. Muhamed Mudawar

Very short answer questions. "True" and "False" are considered short answers.

Advanced Instruction-Level Parallelism

CS252 Graduate Computer Architecture Lecture 5. Interrupt Controller CPU. Interrupts, Software Scheduling around Hazards February 1 st, 2012

Chapter 4. The Processor

Transcription:

The CPU Pipeline 3 This chapter describes the basic operation of the CPU pipeline, which includes descriptions of the delay instructions (instructions that follow a branch or load instruction in the pipeline), interruptions to the pipeline flow caused by interlocks and exceptions, and R4400 implementation of an uncached store buffer. The FPU pipeline is described in Chapter 6. MIPS R4000 Microprocessor User's Manual 43

Chapter 3 3.1 CPU Pipeline Operation The CPU has an eight-stage instruction pipeline; each stage takes one PCycle (one cycle of PClock, which runs at twice the frequency of MasterClock). Thus, the execution of each instruction takes at least eight PCycles (four MasterClock cycles). An instruction can take longer for example, if the required data is not in the cache, the data must be retrieved from main memory. Once the pipeline has been filled, eight instructions are executed simultaneously. Figure 3-1 shows the eight stages of the instruction pipeline; the next section describes the pipeline stages. PCycle MasterClock (8-Deep) Cycle Current CPU Cycle Figure 3-1 Instruction Pipeline Stages 44 MIPS R4000 Microprocessor User's Manual

The CPU Pipeline 3.2 CPU Pipeline Stages This section describes each of the eight pipeline stages: IF - Instruction Fetch, First Half IS - Instruction Fetch, Second Half RF - Register Fetch EX - Execution DF - Data Fetch, First Half DS - Data Fetch, Second Half TC - Tag Check WB - Write Back IF - Instruction Fetch, First Half During the IF stage, the following occurs: Branch logic selects an instruction address and the instruction cache fetch begins. The instruction translation lookaside buffer (ITLB) begins the virtual-to-physical address translation. IS - Instruction Fetch, Second Half During the IS stage, the instruction cache fetch and the virtual-to-physical address translation are completed. RF - Register Fetch During the RF stage, the following occurs: The instruction decoder (IDEC) decodes the instruction and checks for interlock conditions. The instruction cache tag is checked against the page frame number obtained from the ITLB. Any required operands are fetched from the register file. MIPS R4000 Microprocessor User's Manual 45

Chapter 3 EX - Execution During the EX stage, one of the following occurs: The arithmetic logic unit (ALU) performs the arithmetic or logical operation for register-to-register instructions. The ALU calculates the data virtual address for load and store instructions. The ALU determines whether the branch condition is true and calculates the virtual branch target address for branch instructions. DF - Data Fetch, First Half During the DF stage, one of the following occurs: The data cache fetch and the data virtual-to-physical translation begins for load and store instructions. The branch instruction address translation and translation lookaside buffer (TLB) update begins for branch instructions. No operations are performed during the DF, DS, and TC stages for register-to-register instructions. DS - Data Fetch, Second Half During the DS stage, one of the following occurs: The data cache fetch and data virtual-to-physical translation are completed for load and store instructions. The Shifter aligns data to its word or doubleword boundary. The branch instruction address translation and TLB update are completed for branch instructions. TC - Tag Check For load and store instructions, the cache performs the tag check during the TC stage. The physical address from the TLB is checked against the cache tag to determine if there is a hit or a miss. The TLB is described in Chapter 4. 46 MIPS R4000 Microprocessor User's Manual

The CPU Pipeline WB - Write Back For register-to-register instructions, the instruction result is written back to the register file during the WB stage. Branch instructions perform no operation during this stage. Figure 3-2 shows the activities occurring during each ALU pipeline stage, for load, store, and branch instructions. Clock Phase 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 Stage IFetch and Decode ALU Load/Store Branch IC1 IC2 ITLB1 ITLB2 ITC IDEC RF ALU WB DVA DC1 DC2 LSA JTLB1 JTLB2 DTC WB IVA IC1 Instruction cache access stage 1 IC2 Instruction cache access stage 2 ITLB1 Instruction address translation stage 1 ITLB2 Instruction address translation stage 2 ITC Instruction tag check IDEC Instruction decode RF Register operand fetch ALU Operation DVA Data virtual address calculation DC1 Data cache access stage 1 DC2 Data cache access stage 2 LSA Data load or store align JTLB1 Data/Instruction address translation stage 1 JTLB2 Data/Instruction address translation stage 2 DTC Data tag check IVA Instruction virtual address calculation WB Write back to register file Figure 3-2 CPU Pipeline Activities MIPS R4000 Microprocessor User's Manual 47

Chapter 3 3.3 Branch Delay The CPU pipeline has a branch delay of three cycles and a load delay of two cycles. The three-cycle branch delay is a result of the branch comparison logic operating during the EX pipeline stage of the branch, producing an instruction address that is available in the IF stage, four instructions later. Figure 3-3 illustrates the branch delay. branch three branch delay instructions target Branch Delay Figure 3-3 CPU Pipeline Branch Delay 3.4 Load Delay The completion of a load at the end of the DS pipeline stage produces an operand that is available for the EX pipeline stage of the third subsequent instruction. Figure 3-4 shows the load delay of two pipeline stages. load two load delay instructions f(load) Load Delay Figure 3-4 CPU Pipeline Load Delay 48 MIPS R4000 Microprocessor User's Manual

The CPU Pipeline 3.5 Interlock and Exception Handling Smooth pipeline flow is interrupted when cache misses or exceptions occur, or when data dependencies are detected. Interruptions handled using hardware, such as cache misses, are referred to as interlocks, while those that are handled using software are called exceptions. As shown in Figure 3-5, all interlock and exception conditions are collectively referred to as faults. Faults Software Hardware Exceptions Interlocks Stalls Slips Figure 3-5 Interlocks, Exceptions, and Faults There are two types of interlocks: stalls, which are resolved by halting the pipeline slips, which require one part of the pipeline to advance while another part of the pipeline is held static At each cycle, exception and interlock conditions are checked for all active instructions. Because each exception or interlock condition corresponds to a particular pipeline stage, a condition can be traced back to the particular instruction in the exception/interlock stage, as shown in Figure 3-6. For instance, an Illegal Instruction (II) exception is raised in the execution (EX) stage. Tables 3-1 and 3-2 describe the pipeline interlocks and exceptions listed in Figure 3-6. MIPS R4000 Microprocessor User's Manual 49

Chapter 3 Clock PCycle 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 State Pipeline Stage ITM ICM CPBE DCM Stall* SXT WA STI *MP stalls can occur at any stage; they are not associated with any instruction or pipe stage LDI MultB Slip DivB MDOne ShSlip FCBsy ITLB Intr OVF DTLB DBE IBE FPE TLBMod Watch IVACoh ExTrap DVACoh Exceptions II DECCErr BP NMI SC Reset CUn IECCErr Figure 3-6 Correspondence of Pipeline Stage to Interlock Condition 50 MIPS R4000 Microprocessor User's Manual

The CPU Pipeline Table 3-1 Pipeline Exceptions Exception ITLB Intr IBE IVACoh II BP SC CUn IECCErr OVF FPE ExTrap DTLB TLBMod DBE Watch DVACoh DECCErr NMI Reset Description Instruction Translation or Address Exception External Interrupt IBus Error IVA Coherent Illegal Instruction Breakpoint System Call Coprocessor Unusable Instruction ECC Error Integer Overflow FP Interrupt EX Stage Traps Data Translation or Address Exception TLB Modified Data Bus Error Memory Reference Address Compare DVA Coherent Data ECC Error Non-maskable Interrupt Reset MIPS R4000 Microprocessor User's Manual 51

Chapter 3 Table 3-2 Pipeline Interlocks Interlock ITM ICM CPBE SXT STI DCM WA LDI MultB DivB MDOne ShSlip FCBsy Description Instruction TLB Miss Instruction Cache Miss Coprocessor Possible Exception Integer Sign Extend Store Interlock Data Cache Miss Watch Address Exception Load Interlock Multiply Unit Busy Divide Unit Busy Mult/Div One Cycle Slip Var Shift or Shift > 32 bits FP Busy Exception Conditions When an exception condition occurs, the relevant instruction and all those that follow it in the pipeline are cancelled. Accordingly, any stall conditions and any later exception conditions that may have referenced this instruction are inhibited; there is no benefit in servicing stalls for a cancelled instruction. After instruction cancellation, a new instruction stream begins, starting execution at a predefined exception vector. System Control Coprocessor registers are loaded with information that identifies the type of exception and auxiliary information such as the virtual address at which translation exceptions occur. 52 MIPS R4000 Microprocessor User's Manual

The CPU Pipeline Stall Conditions Often, a stall condition is only detected after parts of the pipeline have advanced using incorrect data; this is called a pipeline overrun. When a stall condition is detected, all eight instructions each different stage of the pipeline are frozen at once. In this stalled state, no pipeline stages can advance until the interlock condition is resolved. Once the interlock is removed, the restart sequence begins two cycles before the pipeline resumes execution. The restart sequence reverses the pipeline overrun by inserting the correct information into the pipeline. Slip Conditions When a slip condition is detected, pipeline stages that must advance to resolve the dependency continue to be retired (completed), while dependent stages are held until the required data is available. External Stalls External stall is another class of interlocks. An external stall originates outside the processor and is not referenced to a particular pipeline stage. This interlock is not affected by exceptions. Interlock and Exception Timing To prevent interlock and exception handling from adversely affecting the processor cycle time, the R4000 processor uses both logic and circuit pipeline techniques to reduce critical timing paths. Interlock and exception handling have the following effects on the pipeline: In some cases, the processor pipeline must be backed up (reversed and started over again from a prior stage) to recover from interlocks. In some cases, interlocks are serviced for instructions that will be aborted, due to an exception. These two cases are discussed below. MIPS R4000 Microprocessor User's Manual 53

Chapter 3 Backing Up the Pipeline An example of pipeline back-up occurs in a data cache miss, in which the late detection of the miss causes a subsequent instruction to compute an incorrect result. When this occurs, not only must the cache miss be serviced but the EX stage of the dependent instruction must be re-executed before the pipeline can be restarted. Figure 3-7 illustrates this procedure; a minus ( ) after the pipeline stage descriptor (for instance, EX ) indicates the operation produced an incorrect result, while a plus (+) indicates the successful re-execution of that operation. Cycle Restart Load Run Run Run Run Run Run Run Stl Stl Stl Stl Stl Run Run Run Run Run Rst2 Rst1 IF IS RF EX DF DS TC DF DS TC WB IF IS RF EX DF DS DF DS TC WB ALU IF IS RF EX DF DF DS TC WB IF IS RF EX- RF EX+ DF DS TC WB Figure 3-7 Pipeline Overrun 54 MIPS R4000 Microprocessor User's Manual

The CPU Pipeline Aborting an Instruction Subsequent to an Interlock The interaction between an integer overflow and an instruction cache miss is an example of an interlock being serviced for an instruction that is subsequently aborted. In this case, pipelining the overflow exception handling into the DF stage allows an instruction cache miss to occur on the next immediate instruction. Figure 3-8 illustrates this; aborted instructions are indicated with an asterisk (*). Cycle Stall Restart ALU Run Run Run Run Stl Stl Stl Stl Stl Run Run Run Run Run Run Run InstrCacheMiss Rst2 Rst1 * OVF IF IS RF * ICM IF IS * IF * Figure 3-8 Instruction Cache Miss Even though the line brought in by the instruction cache could have been replaced by a line of the exception handler, no performance loss occurs, since the instruction cache miss would have been serviced anyway, after returning from the exception handler. Handling of the exception is done in this fashion because the frequency of an exception occurring is, by definition, relatively low. MIPS R4000 Microprocessor User's Manual 55

Chapter 3 Pipelining the Exception Handling Pipelining of interlock and exception handling is done by pipelining the logical resolution of possible fault conditions with the buffering and distributing of the pipeline control signals. In particular, a half clock period is provided for buffering and distributing the run control signal; during this time the logic evaluation to produce run for the next cycle begins. Figure 3-9 shows this process for a sequence of loads. Clock Phase 1 2 1 2 1 2 1 2 1 2 1 2 Load1: DF DS TC WB TagCk Resolve Buffer Load2: DF DS TC WB TagCk Resolve Buffer Load3: DF DS TC WB TagCk Resolve Buffer Figure 3-9 Pipelining of Interlock and Exception Handling 56 MIPS R4000 Microprocessor User's Manual

The CPU Pipeline The decision whether or not to advance the pipeline is derived from these three rules: All possible fault-causing events, such as cache misses, translation exceptions, load interlocks, etc., must be individually evaluated. The fault to be serviced is selected, based on a predefined priority as determined by the pipeline stage of the asserted faults. Pipeline advance control signals are buffered and distributed. Figure 3-10 illustrates this process. Clock Phase 1 2 1 2 1 2 1 2 Cycle Run Run Run Run Evaluate Resolve Buffer Evaluate Resolve Buffer Evaluate Resolve Buffer Figure 3-10 Pipeline Advance Decision MIPS R4000 Microprocessor User's Manual 57

Chapter 3 Special Cases In some instances, the pipeline control state machine is bypassed. This occurs due to performance considerations or to correctness considerations, which are described in the following sections. Performance Considerations A performance consideration occurs when there is a cache load miss. By bypassing the pipeline state machine, it is possible to eliminate up to two cycles of load miss latency. Two techniques, address acceleration and address prediction, increase performance. Address Acceleration Address acceleration bypasses a potential cache miss address. It is relatively straightforward to perform this bypass since sending the cache miss address to the secondary cache has no negative impact even if a subsequent exception nullifies the effect of this cache access. Power is wasted when the miss is inhibited by some fault, but this is a minor effect. Address Prediction Another technique used to reduce miss latency is the automatic increment and transmission of instruction miss addresses following an instruction cache miss. This form of latency reduction is called address prediction: the subsequent instruction miss address is predicted to be a simple increment of the previous miss address. Figure 3-11 shows a cache miss in which the cache miss address is changed based on the detection of the miss. Cycle Address Restart Run Run Run Run Run Run Run Stl Stl Stl Stl Stl Stl Stl Stl Run Cache Index Rst3 Rst2 Rst1 Load IF IS RF EX DF DS TC DF DS TC WB Correctness Considerations Figure 3-11 Load Address Bypassing An example in which bypassing is necessary to guarantee correctness is a cache write. 58 MIPS R4000 Microprocessor User's Manual

The CPU Pipeline 3.6 R4400 Processor Uncached Store Buffer The R4400 processor contains an uncached store buffer to improve the performance of uncached stores over that available from an R4000 processor. When an uncached store reaches the write-back (WB) stage in the CPU pipeline, the CPU must stall until the store is sent off-chip. In the R4400 processor, a single-entry buffer stores this uncached WB-stage data on the chip without stalling the pipeline. If a second uncached store reaches the WB stage in the R4400 processor before the first uncached store has been moved off-chip, the CPU stalls until the store buffer completes the first uncached store. To avoid this stall, the compiler can insert seven instruction cycles between the two uncached stores, as shown in Figure 3-12. A single instruction that requires seven cycles to complete could be used in place of the seven No Operation (NOP) instructions. SW R2, (r3) # uncached store NOP # NOP 1 NOP # NOP 2 NOP # NOP 3 NOP # NOP 4 NOP # NOP 5 NOP # NOP 6 NOP # NOP 7 SW R2, (R3) # uncached store Figure 3-12 Pipeline Sequence for Back-to-Back Uncached Stores If the two uncached stores execute within a loop, the two killed instructions which are part of the loop branch latency are included in the count of seven interpolated cycles. Figure 3-13 shows the four NOP instructions that need to be scheduled in this case. MIPS R4000 Microprocessor User's Manual 59

Chapter 3 Loop: SW R2, (R3) # uncached store NOP NOP NOP B Loop # branch to loop NOP killed # branch latency killed # branch latency Figure 3-13 Back-to-Back Uncached Stores in a Loop The timing requirements of the System interface govern the latency between uncached stores; back-to-back stores can be sent across the interface at a maximum rate of one store for every four external cycles. If the R4400 processor is programmed to run in divide-by-2 mode (for more information about divided clock, see the description of SClock in Chapter 10), an uncached store can occur every eight pipeline cycles. If a larger clock divisor is used, more pipeline cycles are required for each store. CAUTION: The R4000 processor always had a strongly-ordered execution; however, with the addition of the uncached store buffer in the R4400 there is a potential for out-of-order execution (described in the section of the same name in Chapter 11, and Uncached Loads or Stores in Chapter 12). 60 MIPS R4000 Microprocessor User's Manual