Presentation is loading. Please wait.

Presentation is loading. Please wait.

Department of Computer and IT Engineering University of Kurdistan Pipelining (Multi-Cycle) By: Dr. Alireza Abdollahpouri.

Similar presentations


Presentation on theme: "Department of Computer and IT Engineering University of Kurdistan Pipelining (Multi-Cycle) By: Dr. Alireza Abdollahpouri."— Presentation transcript:

1 Department of Computer and IT Engineering University of Kurdistan Pipelining (Multi-Cycle) By: Dr. Alireza Abdollahpouri

2 Pipelined MIPS processor Any instruction set can be implemented in many different ways MIPS ISA Single CycleMulti-Cycle Pipelined Short CPI Long CCT Long CPI Short CCT Short CPI Short CCT 2

3 Getting the Best of Both Datapaths Single-cycle: Clock rate = 125 MHz CPI = 1 Multicycle: Clock rate = 500 MHz CPI  4 Pipelined: Clock rate = 500 MHz CPI  1 3

4 مفهوم پردازش خط لوله اي  مثال: شستن لباسها  Ali, Bahram, Cathy, Dara هر كدام مقداري لباس دارند كه مي خواهند بشورند، خشك كنند و اتو كنند.  عمل شستن 30 دقيقه طول مي كشد.  عمل خشك كردن 40 دقيقه طول مي كشد.  اتو زدن 20 دقيقه طول مي كشد. ABCD 4

5 لباسشويي به صورت متوالي در انجام متوالي اعمال مذكور 6 ساعت براي كار چهار نفر طول ميكشد. ABCD PM Midnight TaskOrderTaskOrder Time 5

6 لباسشويي به صورت خط لوله اي انجام اعمال مذكور به صورت خط لوله اي 3.5 ساعت براي كار چهار نفر طول ميكشد. ABCD 6 PM Midnight TaskOrderTaskOrder Time

7 مفهوم پايه  خط لوله : چندین دستورالعمل به طور همزمان در حال اجر هستند.  خط لوله به بخش ها یا قطعات تقسیم می شود.  چرخه ماشین بوسیله کندترین مرحله خط لوله معین می گردد.  معمولا چرخه ماشین = پالس ساعت 7

8 خط لوله ای کردن  اگر n تکلیف (Task) داشته باشیم که زمان اجرای هر کدام از آن ها برابر با t n باشد ( زمان انجام کل تکالیف = n*t n ) ، با فرض اینکه تعداد قطعات خط لوله k باشد و هر قطعه در t p انجام پذیر باشد ( پالس ساعت = t p ):  Task اول در k پالس (k*t p ) انجام می پذیرد.  Task های دیگر هر کدام در پالس زمانی بعدی ( یک پالس زمانی ) تکمیل خواهند شد، پس زمان لازم برای انجام (n-1) تکلیف دیگر برابر با (n- 1)*tp خواهد شد.  در نتیجه افزایش سرعت پردازش خط لوله نسبت به پردازش غیر خط لوله ای از فرمول زیر محاسبه می گردد : S = nt n / (k + n - 1)t p 8

9 نكاتي در مورد پردازش خط لوله اي  پردازش خط لوله اي يك كار خاص را سريعتر نميكند، بلكه توان عملياتي كل را بهبود ميبخشد.  سرعت خط لوله توسط كندترين مرحله محدود ميگردد.  با استفاده از منابع مختلف چند كار همزمان باهم اجرا ميشوند.  در حالت ايده آل، تسريع به تعداد مراحل خط لوله است.  مراحل نامتعادل (با زمان اجراي نامساوي) سرعت و كارايي خط لوله را كاهش ميدهد.  زماني كه براي پر كردن و خالي كردن خط لوله صرف ميشود نيز باعث كاهش سرعت خط لوله ميگردد. ABCD 6 PM 789 TaskOrderTaskOrder Time

10 پنج مرحله سيكل دستورالعمل  Ifetch: Instruction Fetch  Fetch the instruction from the Instruction Memory  Reg/Dec: Registers Fetch and Instruction Decode  Exec: Calculate the memory address  Mem: Read the data from the Data Memory  Wr: Write the data back to the register file Cycle 1Cycle 2Cycle 3Cycle 4Cycle 5 IfetchReg/DecExecMemWr lw 10

11 IF: Instruction Fetch ID Instr. Decode Reg. Read پنج مرحله مسير داده پردازنده MIPS MEM:Memory Access WB: Write Back EX: Execute Addr. Calc

12 رجیسترهای بین مراحل خط لوله  Need registers between stages  To hold information produced in previous cycle

13 تجسم خط لوله I n s t r. O r d e r Time (clock cycles) Reg ALU DMemIfetch Reg ALU DMemIfetch Reg ALU DMemIfetch Reg ALU DMemIfetch Reg Cycle 1Cycle 2Cycle 3Cycle 4Cycle 6Cycle 7Cycle 5 13

14 مشكلاتي كه در پردازش خط لوله اي بوجود مي آيد  Limits to pipelining: Hazards prevent next instruction from executing during its designated clock cycle  Structural hazards: HW cannot support this combination of instructions  Data hazards: Instruction depends on result of prior instruction still in the pipeline  Control hazards: Caused by delay between the fetching of instructions and decisions about changes in control flow (branches and jumps). 14

15 One Memory Port/ Structural Hazards I n s t r. O r d e r Time (clock cycles) Load Instr 1 Instr 2 Instr 3 Instr 4 Reg ALU DMem Ifetch Reg ALU DMemIfetch Reg ALU DMemIfetch Reg ALU DMem Ifetch Reg Cycle 1Cycle 2Cycle 3Cycle 4Cycle 6Cycle 7Cycle 5 Reg ALU DMemIfetch Reg 15 Reading data from memory Reading instruction from memory

16 One Memory Port/ Structural Hazards I n s t r. O r d e r Time (clock cycles) Load Instr 1 Instr 2 Stall Instr 3 Reg ALU DMem Ifetch Reg ALU DMemIfetch Reg ALU DMemIfetch Reg Cycle 1Cycle 2Cycle 3Cycle 4Cycle 6Cycle 7Cycle 5 Reg ALU DMemIfetch Reg Bubble 16

17 Data Hazard on $1 17 add $1,$3,$0 sub $4,$1,$5 and $6,$1,$7 xor $4,$1,$5 or $8,$1,$9

18 وابستگيهاي رو به عقب در زمان I n s t r. O r d e r Time (clock cycles) add $1,$3,$0 sub $4,$1,$3 and $6,$1,$7 or r$,$1,$9 xor $10,$1,$11 IF ID/RF EX MEMWB ALU Im Reg Dm Reg ALU Im Reg DmReg ALU Im Reg DmReg Im ALU Reg DmReg ALU Im Reg DmReg 18

19 نتيجه يك مرحله را به محض آماده شدن به جلو برانيم روش Forwarding براي حل مشكل Data Hazard I n s t r. O r d e r Time (clock cycles) ALU Im Reg Dm ALU Im Reg DmReg ALU Im Reg DmReg Im ALU Reg DmReg ALU Im Reg DmReg 19 IF ID/RF EX MEMWB add $1,$3,$0 sub $4,$1,$3 and $6,$1,$7 or r$,$1,$9 xor $10,$1,$11

20 تغييرات سخت افزاري براي پشتيباني ازForwarding MEM/WR ID/EX EX/MEM Data Memory ALU mux Registers NextPC Immediate mux 20

21  Read After Write (RAW) Instr J tries to read operand before Instr I writes it  Caused by a “Dependence” (in compiler nomenclature). This hazard results from an actual need for communication. I: add r1,r2,r3 J: sub r4,r1,r3 21 سه نوع Data Hazard

22  Write After Read (WAR) Instr J writes operand before Instr I reads it  Called an “anti-dependence” by compiler writers. This results from reuse of the name “r1”. I: sub r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7 22 سه نوع Data Hazard

23  Write After Write (WAW) Instr J writes operand before Instr I writes it.  Called an “output dependence” by compiler writers This also results from the reuse of name “r1”. I: sub r1,r4,r3 J: add r1,r2,r3 K: mul r6,r1,r7 23 سه نوع Data Hazard

24 Data Hazard حتي با استفاده از Forwarding 24

25 25 Data Hazard حتي با استفاده از Forwarding

26 Try producing fast code for a = b + c; d = e – f; assuming a, b, c, d,e, and f in memory. Slow code: LW Rb,b LW Rc,c ADD Ra,Rb,Rc SW a,Ra LW Re,e LW Rf,f SUB Rd,Re,Rf SWd,Rd Software Scheduling to Avoid Load Hazards Fast code: LW Rb,b LW Rc,c LW Re,e ADD Ra,Rb,Rc LW Rf,f SW a,Ra SUB Rd,Re,Rf SWd,Rd 26

27 Control Hazard on Branches - Three Stage Stall 10: beq r1,r3,36 14: and r2,r3,r5 18: or r6,r1,r7 22: add r8,r1,r9 36: xor r10,r1,r11 Reg ALU DMemIfetch Reg ALU DMemIfetch Reg ALU DMemIfetch Reg ALU DMemIfetch Reg ALU DMemIfetch Reg 27

28 Branch Stall Impact  If CPI = 1, 30% branch, Stall 3 cycles => new CPI = 1.9!  Two part solution:  Determine branch taken or not sooner, AND  Compute taken branch address earlier 28

29 Four Branch Hazard Alternatives 1: Stall until branch direction is clear 2: Predict Branch Not Taken 3: Predict Branch Taken 4: Delayed Branch 29

30 Superscalarابر عددي يا پردازش استفاده از چند خط لوله به صورت موازي 30

31 Summary : Control and Pipelining  Just overlap tasks; easy if tasks are independent  Speed Up  Pipeline Depth; if ideal CPI is 1, then:  Hazards limit performance on computers:  Structural: need more HW resources  Data (RAW,WAR,WAW): need forwarding, compiler scheduling  Control: Delayed branch, prediction 31

32 Single Cycle, Mult-Cycle, vs. Pipeline Multiple Cycle Implementation: Clk Cycle 1 IFetchDecExecMemWB Cycle 2Cycle 3Cycle 4Cycle 5Cycle 6Cycle 7Cycle 8Cycle 9Cycle 10 IFetchDecExecMem lwsw IFetch R-type lw IFetchDecExecMemWB Pipeline Implementation: IFetchDecExecMemWB sw IFetchDecExecMemWB R-type Clk Single Cycle Implementation: lwsw Waste Cycle 1Cycle 2

33 33 QuestionsQuestions


Download ppt "Department of Computer and IT Engineering University of Kurdistan Pipelining (Multi-Cycle) By: Dr. Alireza Abdollahpouri."

Similar presentations


Ads by Google