Chapter One Introduction to Pipelined Processors.

Slides:



Advertisements
Similar presentations
PipelineCSCE430/830 Pipeline: Introduction CSCE430/830 Computer Architecture Lecturer: Prof. Hong Jiang Courtesy of Prof. Yifeng Zhu, U of Maine Fall,
Advertisements

OMSE 510: Computing Foundations 4: The CPU!
Lecture Objectives: 1)Define pipelining 2)Calculate the speedup achieved by pipelining for a given number of instructions. 3)Define how pipelining improves.
CMPT 334 Computer Organization
Pipelining I Topics Pipelining principles Pipeline overheads Pipeline registers and stages Systems I.
Pipeline and Vector Processing (Chapter2 and Appendix A)
Chapter 8. Pipelining.
Review: Pipelining. Pipelining Laundry Example Ann, Brian, Cathy, Dave each have one load of clothes to wash, dry, and fold Washer takes 30 minutes Dryer.
Pipelining I (1) Fall 2005 Lecture 18: Pipelining I.
Pipelining Hwanmo Sung CS147 Presentation Professor Sin-Min Lee.
EECS 318 CAD Computer Aided Design LECTURE 2: DSP Architectures Instructor: Francis G. Wolff Case Western Reserve University This presentation.
Goal: Describe Pipelining
Computer Architecture
CS252/Patterson Lec 1.1 1/17/01 Pipelining: Its Natural! Laundry Example Ann, Brian, Cathy, Dave each have one load of clothes to wash, dry, and fold Washer.
Chapter Six 1.
Computer Organization
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania Computer Organization Pipelined Processor Design 1.
Pipelining Andreas Klappenecker CPSC321 Computer Architecture.
CS430 – Computer Architecture Introduction to Pipelined Execution
1 COMP 206: Computer Architecture and Implementation Montek Singh Mon., Sep 9, 2002 Topic: Pipelining Basics.
1 Atanasoff–Berry Computer, built by Professor John Vincent Atanasoff and grad student Clifford Berry in the basement of the physics building at Iowa State.
CS 61C L30 Introduction to Pipelined Execution (1) Garcia, Fall 2004 © UCB Lecturer PSOE Dan Garcia inst.eecs.berkeley.edu/~cs61c.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE Computer Organization Lecture 17 - Pipelined.
Introduction to Pipelining Rabi Mahapatra Adapted from the lecture notes of Dr. John Kubiatowicz (UC Berkeley)
Parallelism Processing more than one instruction at a time. Pipelining
Pipeline And Vector Processing. Parallel Processing The purpose of parallel processing is to speed up the computer processing capability and increase.
9.2 Pipelining Suppose we want to perform the combined multiply and add operations with a stream of numbers: A i * B i + C i for i =1,2,3,…,7.
CS1104: Computer Organisation School of Computing National University of Singapore.
Lecture 05: Pipelining Basics & Hazards Kai Bu
Integrated Circuits Costs
B 0000 Pipelining ENGR xD52 Eric VanWyk Fall
Lecture 8: Processors, Introduction EEN 312: Processors: Hardware, Software, and Interfacing Department of Electrical and Computer Engineering Spring 2014,
Parallel architecture Technique. Pipelining Processor Pipelining is a technique of decomposing a sequential process into sub-processes, with each sub-process.
Analogy: Gotta Do Laundry
ECE 456 Computer Architecture Lecture #14 – CPU (III) Instruction Cycle & Pipelining Instructor: Dr. Honggang Wang Fall 2013.
Principles of Linear Pipelining. In pipelining, we divide a task into set of subtasks. The precedence relation of a set of subtasks {T 1, T 2,…, T k }
ECE 232 L18.Pipeline.1 Adapted from Patterson 97 ©UCBCopyright 1998 Morgan Kaufmann Publishers ECE 232 Hardware Organization and Design Lecture 18 Pipelining.
Processor Architecture
Chapter One Introduction to Pipelined Processors

CSIE30300 Computer Architecture Unit 04: Basic MIPS Pipelining Hsin-Chou Chi [Adapted from material by and
Pipelining Example Laundry Example: Three Stages
Chapter One Introduction to Pipelined Processors
Principles of Linear Pipelining
Lecture 9. MIPS Processor Design – Pipelined Processor Design #1 Prof. Taeweon Suh Computer Science Education Korea University 2010 R&E Computer System.
Speedup Speedup is defined as Speedup = Time taken for a given computation by a non-pipelined functional unit Time taken for the same computation by a.
CS 141 ChienMay 3, 1999 Concepts in Pipelining u Last Time –Midterm Exam, Grading in progress u Today –Concepts in Pipelining u Reminders/Announcements.
Chapter One Introduction to Pipelined Processors.
Lecture 4. Sequential Logic #3 Prof. Taeweon Suh Computer Science & Engineering Korea University COSE221, COMP211 Logic Design.
CPU (Central Processing Unit). The CPU is the brain of the computer. Sometimes referred to simply as the processor or central processor, the CPU is where.
Lecture 3. Performance Prof. Taeweon Suh Computer Science & Engineering Korea University COSE222, COMP212, CYDF210 Computer Architecture.
DICCD Class-08. Parallel processing A parallel processing system is able to perform concurrent data processing to achieve faster execution time The system.
Lecture 18: Pipelining I.
Pipelines An overview of pipelining
Review: Instruction Set Evolution
Performance of Single-cycle Design
CMSC 611: Advanced Computer Architecture
Chapter One Introduction to Pipelined Processors
ECE232: Hardware Organization and Design
Introduction to Parallel Processing
Chapter 4 The Processor Part 2
Lecturer: Alan Christopher
Serial versus Pipelined Execution
An Introduction to pipelining
Chapter 8. Pipelining.
8086 processor.
Pipelining Appendix A and Chapter 3.
A relevant question Assuming you’ve got: One washer (takes 30 minutes)
Pipelining.
Presentation transcript:

Chapter One Introduction to Pipelined Processors

Pipelining It is a technique of decomposing a sequential process into sub-operations which can be executed in a special dedicated segment that operates concurrently with all other segments It improves processor performance by overlapping the execution of multiple instructions

Example

Pipelining: Its Natural! Laundry Example Ann, Brian, Cathy, Dave each have one load of clothes to wash, dry, and fold Washer takes 30 minutes Dryer takes 40 minutes Folder takes 20 minutes ABCD

Sequential Laundry Sequential laundry takes 6 hours for 4 loads If they knew pipelining, how fast their laundry would be? ABCD PM Midnight TaskOrderTaskOrder Time

Pipelined Laundry starts work ASAP Pipelined laundry takes 3.5 hours for 4 loads ABCD 6 PM Midnight TaskOrderTaskOrder Time

Observations on Pipeline Processing It works well if time taken by each stage is nearly the same – If this time is T seconds, then the pipeline produces output at every T seconds – If time taken by each stage varies, then the slower stage becomes a bottleneck in the progress

Suppose each stage takes 30 minutes Time to wash, dry, and fold one load is still the same (90 minutes) Then the work will get over in 3 hours Pipelined Laundry Time 6 PM A PM B 30 C D

Pipelined Laundry Here 40 minutes takes over the pipeline cycle ABCD 6 PM Midnight TaskOrderTaskOrder Time

Example for pipeline in computer Consider that the process of execution of an instruction involves four major steps: 1.Instruction Fetch (IF): from main memory 2.Instruction Decoding (ID): which identifies the operation to be performed 3.Operand Fetch(OF): if needed in execution 4.Execution(EX): of the decoded arithmetic/logic operation

Example for pipeline in computer In a non-pipelined computer, these four steps must be completed before the next instruction can be issued

Example for pipeline in computer In a pipelined computer, successive stages are executed in an overlapped fashion

Example for pipeline in computer Theoretically a k-stage linear pipeline could be k-times faster. But this ideal speedup cannot be achieved due to factors like : – Data dependency – Branch and Interrupts

Principles of Linear Pipelining

In pipelining, we divide a task into set of subtasks. The precedence relation of a set of subtasks {T 1, T 2,…, T k } for a given task T implies that the same task T j cannot start until some earlier task T i finishes. The interdependencies of all subtasks form the precedence graph.

Principles of Linear Pipelining With a linear precedence relation, task T j cannot start until earlier subtasks { T i } for all (i < j) finish. A linear pipeline can process subtasks with a linear precedence graph.

Principles of Linear Pipelining A pipeline which can process successive subtasks if Subtasks have linear precedence order Each subtasks take nearly same time to complete

Basic Linear Pipeline L: latches, interface between different stages of pipeline S1, S2, etc. : pipeline stages

Basic Linear Pipeline It consists of cascade of processing stages. Stages : Pure combinational circuits performing arithmetic or logic operations over the data flowing through the pipe. Stages are separated by high speed interface latches. Latches : Fast Registers holding intermediate results between stages Information Flow are under the control of common clock applied to all latches

Basic Linear Pipeline L: latches, interface between different stages of pipeline S1, S2, etc. : pipeline stages

Basic Linear Pipeline The flow of data in a linear pipeline having four stages for the evaluation of a function on five inputs is as shown below:

Basic Linear Pipeline The vertical axis represents four stages The horizontal axis represents time in units of clock period of the pipeline.

Clock Period (τ) for the pipeline Let τ i be the time delay of the circuitry S i and t 1 be time delay of latch. Then the clock period of a linear pipeline is defined by The reciprocal of clock period is called clock frequency (f = 1/τ) of a pipeline processor.

Performance of a linear pipeline Consider a linear pipeline with k stages. Let T be the clock period and the pipeline is initially empty. Starting at any time, let us feed n inputs and wait till the results come out of the pipeline. First input takes k periods and the remaining (n-1) inputs come one after the another in successive clock periods. Thus the computation time for the pipeline T p is T p = kT+(n-1)T = [k+(n-1)]T

Performance of a linear pipeline For example if the linear pipeline have four stages with five inputs. Tp = [k+(n-1)]T = [4+4]T = 8T

Performance Parameters The various performance parameters of pipeline are : 1.Speed-up 2.Throughput 3.Efficiency

Speedup Speedup is defined as Speedup = Time taken for a given computation by a non-pipelined functional unit Time taken for the same computation by a pipelined version Assume a function of k stages of equal complexity which takes the same amount of time T. Non-pipelined function will take kT time for one input. Then Speedup = nkT/(k+n-1)T = nk/(k+n-1)