Transcript
Page 1: Single Cycle vs. Multiple Cycle

CSCI-365Computer Organization

Lecture

Note: Some slides and/or pictures in the following are adapted from: Computer Organization and Design, Patterson & Hennessy, ©2005

Page 2: Single Cycle vs. Multiple Cycle

Single Cycle vs. Multiple Cycle

Multiple Cycle Implementation:

Clk

Cycle 1

IF ID EX MEM WB

Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9Cycle 10

IF ID EX MEM

lw sw

IF

R-type

Clk

Single Cycle Implementation:

lw sw Waste

Cycle 1 Cycle 2

Page 3: Single Cycle vs. Multiple Cycle

General Definitions

• Latency: time to completely execute a certain

task

– E.g., time to read a sector from disk is disk access

time or disk latency

• Throughput: amount of work that can be done

over a period of time

Page 4: Single Cycle vs. Multiple Cycle

A Pipelined MIPS Processor

• Start the next instruction before the current one has

completed

– improves throughput

– instruction latency is not reduced

– clock cycle (pipeline stage time) limited by slowest stage

– for some instructions, some stages are wasted cycles

Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5

IF ID EX MEM WBlw

Cycle 7Cycle 6 Cycle 8

sw IF ID EX MEM WB

R-type IF ID EX MEM WB

Page 5: Single Cycle vs. Multiple Cycle

Single Cycle vs. Multiple Cycle vs. Pipelined

Multiple Cycle Implementation:

Clk

Cycle 1

IF ID EX MEM WB

Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9Cycle 10

IF ID EX MEM

lw sw

IF

R-type

Clk

Single Cycle Implementation:

lw sw Waste

Cycle 1 Cycle 2

lw IF ID EX MEM WB

Pipeline Implementation:

IF ID EX MEM WBsw

IF ID EX MEM WBR-type

Page 6: Single Cycle vs. Multiple Cycle

Theoretical Performance

• An ideal pipeline divides a task into k independent sequential

subtasks

– Each subtask requires 1 time unit to complete

– The task itself requires k time units to complete

• For n iterations of task, the execution times:

– With no pipelining: nk time units

– With pipelining: k + (n-1) time units

• Speedup of a k-stage pipeline is

– S = nk / [k+(n-1)] ==> k (for large n)

Page 7: Single Cycle vs. Multiple Cycle
Page 8: Single Cycle vs. Multiple Cycle
Page 9: Single Cycle vs. Multiple Cycle

Simplified MIPS Pipelined Datapath

Can you foresee any problems with these right-to-left flows?

Why are we duplicating some functional units?

Page 10: Single Cycle vs. Multiple Cycle

Pipeline registers

• Need registers between stages

– To hold information produced in previous cycle

Page 11: Single Cycle vs. Multiple Cycle

IF

Page 12: Single Cycle vs. Multiple Cycle

ID

Page 13: Single Cycle vs. Multiple Cycle

EX for Load

Page 14: Single Cycle vs. Multiple Cycle

MEM for Load

Page 15: Single Cycle vs. Multiple Cycle

WB for Load

Wrongregisternumber

There is a BUG here

Page 16: Single Cycle vs. Multiple Cycle

Corrected Datapath for Load


Top Related