پردازنده mips پایپ لاین کتاب patterson & henessi amirkabir university of...

62
ده ن رداز پMIPS ن ی لا پ ی ا ن اب ت کPatterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Post on 20-Dec-2015

221 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

MIPS پردازنده

الین پایپ

کتاب Patterson & Henessi

Amirkabir University of TechnologyComputer Engineering & Information Technology Department

Page 2: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

الین پایپPipelining ریزتر عملیات به ترتیبی فرایند یک تجزیه از است عبارت

همزمان بصورت اختصاصی بخش یک بوسیله بتوان را یک هر بنحویکهداد انجام

قسمت به و داده انجام داده روی را خاصی کار الین ازپایپ قسمت هر . در نتیجه شد رد قسمتها همه از داده که وقتی میدهد تحویل بعدی

. بود خواهد آماده الین پایپ خروجی. است شده گرفته اتومبیل مونتاژ خط از عمل این نام مدارترکیبی یک و رجیستر یک شامل میتواند الین پایپ از قسمت هر

آن. روی را الزم عمل ومدارترکیبی میدارد نگه را داده رجیستر باشد. شود بعدی قسمت رجیستر تحویل بعد کالک در تا میدهد انجام

رجیستر

مدار

رجیستر

مدار

رجیستر

مدار

رجیستر

مدارinput

clock

Page 3: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

الین پایپ از مثالی . دهیم انجام ها داده از ای دنباله روی بر را وضرب جمع عمل میخواهیم

Ai=Bi+Ci for i=1,2,3,..,7 . داد انجام الین پایپ از قسمت یک در میتوان را عمل هر

T1: R1 Ai , R2Bi T2: R3 R1*R2 , R4Ci T3: R5 R3+R4

R1 R2

Multiplier

R3 R4

Adder

R5

Ai Bi

Page 4: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

الین پایپ

را عمل یک بتوان باید مناسب کارآیی داشتن برایلحاظ ) از یکسان تقریبا پیچیدگی با اجزائی به

. ) نمود تقسیم اجرا زمان

Page 5: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

time-spaceنمودار

نمودار با میتوان را الین پایپ time-spaceعملکرد . داد نشان

به کار یک برای kاگر باشد شده تقسیم قسمتبه nانجام نیاز خواهیم )k+)n-1عمل نیاز پالس

داشت.1 2 3 4 5 6 7 8 9

T1 T2 T3 T4 T5 T6

T1 T2 T3 T4 T5 T6

T1 T2 T3 T4 T5 T6

T1 T2 T3 T4 T5 T6

1

2

3

4

Segment

Page 6: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

time-spaceنمودار

سرعت افزایش مقدار تئوری لحاظ kاز. بود برابرخواهد

: کرد کار سرعت این با همیشه نمیتوان درعمل اما داشته متفاوتی زمان است ممکن مختلف های قسمت

آنها. ترین کند اساس بر کالک صورت دراین باشندمیشود تنظیم

رجیسترهائی الین پایپ بصورت سیستم یک طراحی باالزم عادی حالت در که میشود اضافه سیستم به

نیستند.

Page 7: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

دستورالعمل الین پایپ

حال در دستور یک حالیکه در الین پایپ نوع این در . میشوند خوانده حافظه از بعدی دستورات اجراست

. اینکار برای میشود اجرا و واکشی همزمانی باعث اینکاراجرا و واکشی برای مجزا دوواحد دارای باید کامپیوتر

باشد. بافر یک از میتوان واکشی واحد . FIFOبرای نمود استفاده باشد نداشته حافظه به نیازی اجرا واحد که زمان هر در

بافر در و خوانده حافظه از را دستورات واکشی واحد . اینعمل میدهد . instruction prefetchقرار میشود نامیده

اجرا واحد

دستورات صف

Page 8: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

دستورالعمل الین پایپ

الین پایپ نوع این با باشند مساوی اجرا و واکشی زمان اگر . چنین عمل در اما میشود برابر دو دستورات اجرای سرعت

: . زیرا افتد نمی اتفاقی واحد لذا است واکشی زمان از بیشتر معموال اجرا زمان

. کند صبر اجرا شدن تمام تا است مجبور واکشی اجرای توالی تا میشود باعث شرطی انشعاب دستورات وجود

مقصد وآدرس شرط شدن معلوم با و خورده بهم دستوراتدورریخته را بافر دستورات تمامی میشود مجبور واکشی واحد . مجبور اجرا واحد حالت این در کند شروع را واکشی مجددا و

. کند صبر دستور واکشی تا است. داشت خواهد مشابهی تاثیر هم وقفه دادن رخ

Page 9: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

الین پایپ

: باشد موثر الین پایپ اینکه برای. باشند یکسان طول دارای باید دستورات همه باشد محدود دستورات فرمت دستورات به محدود حافظه به باشد storeو loadدسترسی

: میکنند مشکل را الین پایپ زیر موارد structural hazards: suppose we had only one memory control hazards: need to worry about branch

instructions data hazards: an instruction depends on a previous

instruction

Page 10: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

دستورات مختلف MIPSمراحل

در میتوان را دستورات پردازنده این انجام 5در زیر مرحلهداد:

IFetch: Fetch Instruction, Increment PCDecode Instruction, Read RegistersExecute:

Mem-ref: Calculate Address Arith-log: Perform Operation

Memory: Load: Read Data from Memory Store: Write Data to Memory

Write Back: Write Data to Register

Page 11: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

: دستورات واکشی اول مرحله

: میشود انجام زیر عملیات مرحله این در از استفاده شده PCبا خوانده حافظه از دستور

در .IRو میگیرد قرارPC اندازه آدرس 4به تا یابد می افزایش واحد

. شود تعیین بعدی دستور

IR Memory[PC] NPC PC + 4

Page 12: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

: دستورات دیکد دوم مرحلهرجیسترها مقادیر وخواندن

رجیسترهای به که دستوراتی نیاز rt , rsدر. میشود خوانده رجیسترفایل از آنها مقدار دارند

محاسبه مقصد آدرس انشعاب دستورات برایمیشود.

A Reg[IR[25-21]] B Reg[IR[20-16]] IMM SE(Reg[IR[15-0]])

Page 13: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

است ممکن دستورالعمل نوع به ALUبسته: دهد انجام را زیر اعمال از یکی

Memory Reference:ALUOut A + Imm

R-type:ALUOut A func BALUOut A op Imm

Branch:ALUOut NPC+ImmCond (A op 0)

اجرا: 3مرحله

Page 14: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

حافظه: 4مرحله به دسترسیتعیین PCو

مقدارPC پر آن جدید مقدار با دستورات همه برایمیشود.

PC NPC دستوراتLoad ,Store. پیدامیکنند دسترسی حافظه به

MemoryMDR Memory[ALUOut];

orMemory[ALUOut] B;

Branchif )cond( PC ALUOut

Page 15: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

در: 5مرحله نتایج نوشتنرجیسترها

R-type instructions finish

Reg[IR[15-11]] ALUOut;

or Reg[IR[20-16]] ALUOut;Load instruction

Reg[IR[20-16]] MDR;

Page 16: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

الین پایپ در دستور اجرای

از باید دستورات . 5همه کنند عبور فوق مرحلهالزم دستورات همه برای فوق مراحل همه ازآنجائیکه

موارد برخی در عملی stageنیست انجام بدون ها. میکنند منتقل خروجی به را ورودی

IFtch Dcd Exec Mem WB

IFtch Dcd Exec Mem WB

IFtch Dcd Exec Mem WB

IFtch Dcd Exec Mem WB

IFtch Dcd Exec Mem WB

IFtch Dcd Exec Mem WB

Time

Page 17: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Basic Idea

What do we need to add to actually split the datapath into stages?

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Instruction

Mux

0

1

Add

PC

0Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

ReaddataAddress

Datamemory

1

ALUresult

Mux

ALUZero

IF: Instruction fetch ID: Instruction decode/register file read

EX: Execute/address calculation

MEM: Memory access WB: Write back

Page 18: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

الین پایپ رجیسترهای

: میشود داده قرار رجیستری مرحله هر بین در بعدی و قبل مرحله دو نام اساس بر رجیسترها این نامگذاری

تولید. های داده رجیستر است این در مرحله یک در شدهمیشود داده . قرار شود منتقل بعدی مرحله به تا

Example: IF/ID register gets

instruction PC+4

مرحله از . WBبعد در نتایح زیرا باشد نمی رجیستر به نیازی . مورد مراحل بین در خود که اند شده نوشته فایل رجیستر

. گرفت خواهند قرار استفاده

Page 19: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Pipelined Datapath

Can you find a problem even if there are no dependencies? What instructions can we execute to manifest the problem?

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Inst

ruct

ion

IF/ID EX/MEM MEM/WB

Mux

0

1

Add

PC

0Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

1

ALUresult

Mux

ALUZero

ID/EX

Datamemory

Address

Page 20: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Corrected Datapath

Instructionmemory

Address

4

32

0

Add Addresult

Shiftleft 2

Inst

ruct

ion

IF/ID EX/MEM MEM/WB

Mux

0

1

Add

PC

0

Address

Writedata

Mux

1Registers

Readdata 1

Readdata 2

Readregister 1

Readregister 2

16Sign

extend

Writeregister

Writedata

Readdata

Datamemory

1

ALUresult

Mux

ALUZero

ID/EX

Page 21: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Pipeline Control

PC

Instructionmemory

Address

Inst

ruct

ion

Instruction[20– 16]

MemtoReg

ALUOp

Branch

RegDst

ALUSrc

4

16 32Instruction[15– 0]

0

0Registers

Writeregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Mux

1Write

data

Read

data Mux

1

ALUcontrol

RegWrite

MemRead

Instruction[15– 11]

6

IF/ID ID/EX EX/MEM MEM/WB

MemWrite

Address

Datamemory

PCSrc

Zero

AddAdd

result

Shiftleft 2

ALUresult

ALU

Zero

Add

0

1

Mux

0

1

Mux

Page 22: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

به ای مرحله از داده نظیر نیز کنترلی سیگنالهاییابند می انتقال دیگر مرحله

Pipeline Control

Execution/Address Calculation stage control lines

Memory access stage control lines

Write-back stage control

lines

InstructionReg Dst

ALU Op1

ALU Op0

ALU Src Branch

Mem Read

Mem Write

Reg write

Mem to Reg

R-format 1 1 0 0 0 0 0 1 0lw 0 0 0 1 0 1 0 1 1sw X 0 0 1 0 0 1 0 Xbeq X 0 1 0 1 0 0 0 X

Control

EX

M

WB

M

WB

WB

IF/ID ID/EX EX/MEM MEM/WB

Instruction

Page 23: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Datapath with Control

PC

Instructionmemory

Inst

ruct

ion

Add

Instruction[20– 16]

Mem

toR

eg

ALUOp

Branch

RegDst

ALUSrc

4

16 32Instruction[15– 0]

0

0

Mux

0

1

Add Addresult

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Signextend

Mux

1

ALUresult

Zero

Writedata

Readdata

Mux

1

ALUcontrol

Shiftleft 2

RegW

rite

MemRead

Control

ALU

Instruction[15– 11]

6

EX

M

WB

M

WB

WBIF/ID

PCSrc

ID/EX

EX/MEM

MEM/WB

Mux

0

1

Mem

Writ

e

AddressData

memory

Address

Page 24: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

الین پایپ گرافیک نمایش

IM Reg DM Reg

IM Reg DM Reg

CC 1 CC 2 CC 3 CC 4 CC 5 CC 6

Time )in clock cycles(

lw $10, 20)$1(

Programexecutionorder)in instructions(

sub $11, $2, $3

ALU

ALU

Page 25: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Instr.

Order

Load

Add

Store

Sub

Or

I$

Time )clock cycles(

I$

AL

U

Reg

Reg

I$

D$

AL

U

AL

U

Reg

D$

Reg

I$

D$

RegA

LU

Reg Reg

Reg

D$

Reg

D$

AL

U

)In Reg, right half highlight read, left half write(

Reg

I$

الین پایپ گرافیک نمایش

Page 26: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

الین پایپ نمودار

1 2 3 4 5 6 7 8 9i IF ID EX MEM WB i+1 IF ID EX MEM WB i+2 IF ID EX MEM WB i+3 IF ID EX MEM WB i+4 IF ID EX MEM WB

پائین به باال از عمودی بصورت دستورات دنباله. میشود داده نشان

راست به چپ از افقی بصورت زمانی سیکلهای. میشود داده نشان

دارای باید داستور اگر 5هر حتی باشد مرحله. باشد نداشته آن به نیازی

Page 27: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

پایپ از حاصله سرعت افزایشالین

: باشد زیر بصورت مراحل از یک هر زمان کنید فرضFive steps, take 50, 50, 60, 50, 50 ns respectively

در دستور یک اجرای برای نتیجه به Unpipelined MIPSدر260ns. داشت خواهیم نیاز

ها رجیستر افزودن طوالنی 5nsاگر باشد کرده اضافه تاخیر: داشت خواهد الزم با برابر زمانی مرحله ترین

60 + 5 = 65ns/stage یک در نتیجه دستور Pipelined Mipsدر هر 65nsاجرای

. کشید خواهد طول

Speedup = 260/65 = 4x improvement

Page 28: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Speed Up Equation for Pipelining

pipelined

unpiplined

TimeCycle

TimeCycle

Piped CPI

Unpiped CPI Speedup

Avg. instruction time with pipelining

Avg. Instruction time without pipelining

Pipeline Speedup

Page 29: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Speed Up Equation for Pipelining

pipelined

dunpipeline

TimeCycle

TimeCycle

CPI stall Pipeline CPI Idealdepth Pipeline CPI Ideal

Speedup

pipelined

dunpipeline

TimeCycle

TimeCycle

CPI stall Pipeline 1depth Pipeline

Speedup

Instper cycles Stall Average CPI Ideal CPIpipelined

For simple RISC pipeline, CPI = 1:

Pipeline Depth

Unpiped CPI Ideal CPI

Page 30: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

سرعت افزایش هزینه

مراحل اجرای زمان تقریبی ساختن یکساناست سختی کار

بین نمیتوان را افزاری سخت های بلوکسخت از باید و گذاشت اشتراک به مراحل

. کرد استفاده اضافی افزار

Page 31: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

الین پایپ طول تاثیر

آن کارائی شود بیشتر الین پایپ طول چه هربدنبال را زیر مسایل امر این ولی میشود بیشتر

: آورد خواهد نتیجه در و تاخیر بروز باعث قطعات بین داده انتقال

. میشود اجرا زمان شدن طوالنی تر پیچیده کنترل واحد میشوند بیشتر ها واحد چه هر

میشود.

Page 32: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Pipeline Hazards

میتواند زیر برخوردهای بروز الین پایپ یک در: گردد کارائی کاهش باعث

منابع در : resource conflictبرخورد ای داده : Data Dependencyوابستگی انشعاب از ناشی : Branch difficultiesمشکالت

Page 33: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

منابع در resourceبرخوردconflict :

Structural Hazards برخو نوع واحد راین دو که آید می بوجود وقتی د

هم پیدا زبطور دسترسی حافظه به بخواهند مانکنند.

حافظه دو اختصاص با برخورد این مواقع بعضی در. میشود حل داده و دستور برای جداگانه

شدن آزاد تا دستورات اجرای اینصورت غیر درافتاد خواهد تاخیر به منابع

Page 34: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Read same memory twice in same clock cycle

I$

Load

Instr 1

Instr 2

Instr 3

Instr 4A

LU I$ Reg D$ Reg

AL

U I$ Reg D$ Reg

AL

U I$ Reg D$ RegA

LUReg D$ Reg

AL

U I$ Reg D$ Reg

Instr.

Order

Time (clock cycles)

Structural Hazard Single Memory

Page 35: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Structural Hazard Single Memory

: حل راه حافظه کنار در داده برای مجزا حافظه یک کردن اضافه

. اینکار میتوان اما است هزینه پر کاری دستورات برای ای: کرد عملی ابتکاری با را

دوcache : برای یکی میشود اضافه سیستم به یک سطح. داده برای دیگری و دستورات

دارد نیاز ای پیچیده کنترل مدار به اینکار having two Level 1 Caches

have both an L1 Instruction Cache and an L1 Data Cache

Page 36: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

ای داده : Data Hazardوابستگی

نتیجه به دستور یک اجرای که آید می بوجود وقتیبستگی است نشده آماده هنوز که قبلی دستور

باشد داشته    1 2 3 4 5 6 7 8 9

ADD R1, R2, R3 IF ID EX MEM WB        

SUB R4, R5, R1   IF IDsub EX MEM WB      

AND R6, R1, R7     IF IDand EX MEM WB    

OR R8, R1, R9        IF IDor EX MEM WB  

XOR R10,R1,R11         IF IDxor EX MEM WB

IF: Instruction fetchID: Instruction decode/register readEX: ExecuteMEM: Memory accessWB: Write Back results in register

Data Hazard

از: بعد دستورات تمام .ADDمثال دارند نیاز آن نتیجه به

Page 37: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Pipeline Stall

شرایط باشد نشده اندیشیده حلی راه صورتیکه در. شد خواهند الین پایپ توقف باعث فوق

نام به افزاری وظیفه Hardware interlockسختتاخیر ایجاد با و داشته عهده بر را برخورد تشخیص

حل را مشکل بعدی دستورات اجرای در الزممیکند.

    1 2 3 4 5 6 7 8 9

ADD R1, R2, R3 IF ID EX MEM WB        

SUB R4, R5, R1   IF stall stall IDsub EX MEM  WB  

AND R6, R1, R7     stall stall IF IDand EX MEM  WB

Page 38: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Hazard Detection Unit

Stall by letting an instruction that won’t write anything go forward

PCInstruction

memory

Registers

Mux

Mux

Mux

Control

ALU

EX

M

WB

M

WB

WB

ID/EX

EX/MEM

MEM/WB

Datamemory

Mux

Hazarddetection

unit

Forwardingunit

0

Mux

IF/ID

Inst

ruct

ion

ID/EX.MemRead

IF/I

DW

rite

PC

Wri

te

ID/EX.RegisterRt

IF/ID.RegisterRd

IF/ID.RegisterRt

IF/ID.RegisterRt

IF/ID.RegisterRs

RtRs

Rd

Rt EX/MEM.RegisterRd

MEM/WB.RegisterRd

Page 39: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

کردن NOPاضافه

با میتوان کامپایلر توسط ای داده وابستگی تشخیص صورت درالین NOP افزودن پایپ توقف از مربوطه دستورات بین در

کرد .جلوگیری

MEM

2 3 4 5 6

ID EX WB

71

IF

IF ID EX MEM

8

WB

ANOP

NOP

B

Register file design: D1: A writes into register $1 in first-half of cycle 5 and B reads it in second half

A : add $1, $2, $3B : add $4, $1, $5

Page 40: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Operand Forwarding مقدار چه اگر که میشویم متوجه فوق مثال در دقت کمی هنوز R1با

مرحله خروجی WBدر در مقدار این اما است نشده نوشته ALUهنوزمرحله خروجی . EXیعنی داشته وجود مداری اگر نتیجه در است موجود

مرحله خروجی از مسیری ایجاد با دهد، تشخیص را امر این که EXباشدورودی وقوع ALUبه از .Data Hazardمیتوان کرد جلوگیری

    1 2 3 4 5 6 7

ADD R1, R2, R3 IF ID EXadd MEMadd WB    

SUB R4, R5, R1   IF ID EXsub MEM WB  

AND R6, R1, R7     IF ID EXand MEM WB

مرحله : دو انجام با دو Operand Forwardingمثال داشتن به نیاز کهورودی به جدید .ALUمسیر شد الین پایپ توقف مانع میتوان است

Page 41: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Operand Forwarding

الین پایپ توقف جز ای چاره زیر مثال مورد درنداریم

1 2 3 4 5  6  7  8  9

LW R1,)R0( IF ID EX MEM WB        

SUB R4, R1, R5   IF ID  stall EXsub MEM WB    

AND R6, R1 R7     IF stall ID EX MEM WB   

OR R8, R1, R9       stall IF ID EX MEM WB

Page 42: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Forwarding Logic

A pipeline register contains destination register and write data

A pipeline register upstream contains the same register as source

Forwarding source: ALU output, data memory output

Forwarding target: ALU input, data memory input, zero detection unit input

Many different cases can arise

Page 43: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

HW Change for Forwarding

MEM

/WR

ID/E

X

EX

/MEM

DataMemory

ALU

mux

mux

Registe

rs

NextPC

Immediate

mux

Page 44: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Forwarding Unit for R-R Type Instruction

PC

IF EXID MEM WB

MUX

MUX

Forwarding Unit

Page 45: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Forwarding

PCInstruction

memory

Registers

Mux

Mux

Control

ALU

EX

M

WB

M

WB

WB

ID/EX

EX/MEM

MEM/WB

Datamemory

Mux

Forwardingunit

IF/ID

Inst

ruct

ion

Mux

RdEX/MEM.RegisterRd

MEM/WB.RegisterRd

Rt

Rt

Rs

IF/ID.RegisterRd

IF/ID.RegisterRt

IF/ID.RegisterRt

IF/ID.RegisterRs

Page 46: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

مرحله دو با کالک از استفاده

مثال دستور Data Hazard زیر در از ADDو ORناشیدر رجیستر در نوشتن که نمود حل صورت این به میتوان را

خواند و کالک اول بیافتد ننیمه اتفاق دوم نیمه در آن از

    1 2 3 4 5 6 7 8 9

ADD R1, R2, R3 IF ID EX MEM WB        

SUB R4, R5, R1   IF IDsub EX MEM WB      

AND R6, R1, R7     IF IDand EX MEM WB    

OR R8, R1, R9        IF IDor EX MEM WB  

XOR R10,R1,R11         IF IDxor EX MEM WB

Page 47: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

کامپایلر کمک

های پردازنده برخورد RISCدر مشکل حل براینام با روشی از استفاده delayed loadدستورات

برخورد تشخیص وظیفه کامپایلر آن در که میشودایجاد مانع دستورات جابحائی با و داشته برعهده را

میگردد برخورد

Page 48: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

  1 2 3 4 5 6  7  8  9  10 11 12  13  14  15  16 17 18

LW Rb, bIF

ID EX M WB                          

LW Rc, c   IF ID EX M WB                        

Add Ra,Rb, Rc

    IF ID stall EX M WB                     

SW Ra, a

      IF  stall ID EX M WB                   

LW Rf, f         stall IF ID EX M WB                 

Sub Rd, Ra, Rf

            IF ID stall EX M  WB             

SW Rd, d

              IF stall ID EX M WB           

LW Rg, g                 stall IF ID EX M WB         

LW Rh, h                     IF ID EX MWB 

     

Sub Re, Rg, Rh

                      IF ID stall EX  MWB

 

SW Re, e

                        IF stall ID EX M WB

توقف

مثال

Page 49: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

شود الین پایپ توقف مانع دستورات جایجائی با میتواند کامپایلر

Instruction

1 2 3 4 5 6  7  8  9  10  11  12  13  14  15  Explanation

LW Rb, b IF ID EX M WB                      

LW Rc, c   IF ID EX M WB                    

LW Rf, f     IF ID EX M WB                  

Add Ra, Rb, Rc

      IF  ID  EX M WB              Rb read in second half of ID; Rc forwarded

SW Ra, a         IF ID EX M WB             Ra forwarded

Sub Rd, Ra, Rf

          IF ID EX M WB          Rf read in second half of ID; Ra forwarded

LW Rg, g             IF ID EX M WB          

LW Rh, h               IF ID EX M WB        

SW Rd, d                 IF ID EX M WB    Rd read in second half of ID;

Sub Re, Rg, Rh

                  IF ID EX M WB  Rg read in second half of ID; Rh forwarded

SW Re, e                     IF ID EX M WB Re forwarded

Page 50: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

دستورات جابجائیLW Rb, b

LW Rc, c

Add Ra,Rb, Rc

SW Ra, a

LW Rf, f

Sub Rd, Ra, Rf

SW Rd, d

LW Rg, g

LW Rh, h

Sub Re, Rg, Rh

SW Re, e

LW Rb, b

LW Rc, c

LW Rf, f

Add Ra, Rb, Rc

SW Ra, a

Sub Rd, Ra, Rf

LW Rg, g

LW Rh, h

SW Rd, d

Sub Re, Rg, Rh

SW Re, e

Page 51: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

انشعاب از ناشی مشکالت Branch difficulties :

Control Hazards در موجود دستورات از الین پایپ عادی حالت در

صورت در میشود، پر حافظه متوالی های خانهمقدار باید انشعاب، دستور مقصد PCوجود با

جدیدی محل از دستورات و شده پر نظر مورد. شوند اجرا

از جلوگیری برای مختلفی افزاری سخت روشهایدارد وجود برخورد نوع این

Page 52: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

الین پایپ توقف

دستور تشخیص محض به که است این راه یکپایپ انشعاب مقصد شدن مشخص تا انشعاب

. کنیم متوقف را الین این انشعاب دستورات تکرار فراوانی به توجه با

تا را الین پایپ کارائی میتواند کاهش 50کار دردهد.

Branch IF ID EX MEM WB          

Branch successor

  IF(stall) stall stall IF ID EX MEM WB  

Branch successor+1

          IF ID EX MEM WB

Page 53: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Flushing Instructions

PCInstruction

memory

4

Registers

Mux

Mux

Mux

ALU

EX

M

WB

M

WB

WB

ID/EX

0

EX/MEM

MEM/WB

Datamemory

Mux

Hazarddetection

unit

Forwardingunit

IF.Flush

IF/ID

Signextend

Control

Mux

=

Shiftleft 2

Mux

Page 54: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Branch Prediction . الین پایپ در باشد داشته حالت دو میتواند شرطی انشعاب دستور یک نتیجه

زودتر را انشعاب شرط کردن چک عمل افزار سخت کردن اضافه با میتوانمرحله در . IDمثال مقصد با زودتر الین پایپ نیاز صورت در درنتیجه داد انجام

. میشود پر انشعاب

Untaken Branch Instr

IF ID EX MEM WB    

Instr i+1   IF ID EX MEM WB   

Instr i+2     IF ID EX MEM WB

Taken Branch Instr

IF ID EX MEM WB      

Instr i+1   IF idle idle idle idle    

Branch target

    IF ID EX MEM WB  

Branch target+1

      IF ID EX MEM WB

Page 55: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Delayed Branch های پردازنده تشخیص RISCدر انشعاب دستور کامپایلر بکمک

عمل که میشوند جابجا طوری ماشین زبان دستورات و شده داده . کردن جابجا امکان که صورتی در نشود متوقف الین پایپ

دستور نباشد، .NOOPدستورات میشود اضافه: شوند: جابجا کامپایلر توسط میتواند زیر دستورات اجرای مثال

loop: LW R1, 0)R(

ADDI R1,R1,#1

SW R1, 0)R2(

ADDI R2, R2, #4

SUB R4, R3, R2

BENZ R4, loop

Page 56: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

از استفاده صورت در الین بصورت forwardingپایپ ی بعد دستور واکشی وبود خواهد زیر

1 2 3 4 5 6 7 8

l: LW R1,0)R2( IF ID EX ME WB            

ADDI R1,R1,#1    IF ID stall EX ME WB        

SW R1, 0)R2(     IF stall ID EX ME WB      

ADDI R2,R2,#4         IF ID EX ME WB    

SUB R2,R3,R2           IF ID EX ME WB  

BENZ R4, l             IF ID EX ME WB

  if not taken               IF idle idle idle

  l: (if taken)                 IF

Page 57: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

1 2 3 4 5 6

l: LW R1,0)R2( IF ID EX ME WB          

ADDI R2,R2,#4   IF ID EX ME WB        

SUB R4,R3,R2     IF ID EX ME WB      

ADDI R1,R1,#1       IF ID EX ME WB    

BENZ R4, l         IF ID EX ME WB  

SW R1, 0)R2(           IF ID EX ME WB

                IF        

از استفاده صورت وجابجائی Branch Delayدریاید می در زیر بصورت الین پایپ دستورات

Page 58: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Branch target buffer

حافظه یک الین پایپ واکشی بخش به روش این درانشعاب، به مربوط دستورات که میشود اضافه سریع

. میگردند ذخیره آن در و شده جستجو حافظه این انشعاب دستور مشاهده با

این از نظر مورد دستور ، شدن یافت صورت در. میگردد اجرا حافظه

که روش این از نوعی نامیده loop bufferدردر مربوطه دستورات کل حلقه یک تشخیص میشود،با. میشود استفاده محل این از و شده ذخیره حافظه این

Page 59: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Important Pipeline Characteristics

Latency Time it takes an instruction to go through the

pipe Latency = # stages * stage-delay Dominant feature if there are a lot of

exceptions… Throughput

Determined by the rate at which instructions can start/finish

Dominant feature if there are few exceptions

Page 60: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Improving Performance

Try and avoid stalls! E.g., reorder these instructions:

lw $t0, 0($t1)lw $t2, 4($t1)sw $t2, 0($t1)sw $t0, 4($t1)

Add a “branch delay slot” the next instruction after a branch is always executed rely on compiler to “fill” the slot with something useful

Superscalar: start more than one instruction in the same cycle

Page 61: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Dynamic Scheduling

The hardware performs the “scheduling” hardware tries to find instructions to execute out of order execution is possible speculative execution and dynamic branch prediction

All modern processors are very complicated DEC Alpha 21264: 9 stage pipeline PowerPC and Pentium: branch history table Compiler technology important

Page 62: پردازنده MIPS پایپ لاین  کتاب Patterson & Henessi Amirkabir University of Technology Computer Engineering & Information Technology Department

Single Cycle, Multiple Cycle, vs. Pipeline

Clk

Cycle 1

Multiple Cycle Implementation:

Ifetch Reg Exec Mem Wr

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

Load Ifetch Reg Exec Mem Wr

Ifetch Reg Exec MemLoad Store

Pipeline Implementation:

Ifetch Reg Exec Mem WrStore

Clk

Single Cycle Implementation:

Load Store Waste

IfetchR-type

Ifetch Reg Exec Mem WrR-type

Cycle 1 Cycle 2