1 / 33

Department of Computer and IT Engineering University of Kurdistan Pipelining (Multi-Cycle)

Department of Computer and IT Engineering University of Kurdistan Pipelining (Multi-Cycle) By: Dr. Alireza Abdollahpouri. Pipelined MIPS processor. Any instruction set can be implemented in many different ways. MIPS ISA. Pipelined. Single Cycle. Multi-Cycle. Short CPI Long CCT.

braima
Download Presentation

Department of Computer and IT Engineering University of Kurdistan Pipelining (Multi-Cycle)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

  5. A B C D لباسشويي به صورت متوالي 6 PM Midnight 7 8 9 11 10 در انجام متوالي اعمال مذكور 6 ساعت براي كار چهار نفر طول ميكشد. Time 30 40 20 30 40 20 30 40 20 30 40 20 T a s k O r d e r 5

  6. 30 40 40 40 40 20 A B C D لباسشويي به صورت خط لوله اي 6 PM Midnight 8 11 10 9 7 انجام اعمال مذكور به صورت خط لوله اي 3.5 ساعت براي كار چهار نفر طول ميكشد. Time T a s k O r d e r 6

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

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

  9. 30 40 40 40 40 20 A B C D نكاتي در مورد پردازش خط لوله اي • پردازش خط لوله اي يك كار خاص را سريعتر نميكند، بلكه توان عملياتي كل را بهبود ميبخشد. • سرعت خط لوله توسط كندترين مرحله محدود ميگردد. • با استفاده از منابع مختلف چند كار همزمان باهم اجرا ميشوند. • در حالت ايده آل، تسريع به تعداد مراحل خط لوله است. • مراحل نامتعادل (با زمان اجراي نامساوي) سرعت و كارايي خط لوله را كاهش ميدهد. • زماني كه براي پر كردن و خالي كردن خط لوله صرف ميشود نيز باعث كاهش سرعت خط لوله ميگردد. 6 PM 7 8 9 Time T a s k O r d e r 9

  10. Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 lw Ifetch Reg/Dec Exec Mem Wr پنج مرحله سيكل دستورالعمل • 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 10

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

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

  13. Reg Reg Reg Reg Reg Reg Reg Reg Ifetch Ifetch Ifetch Ifetch DMem DMem DMem DMem ALU ALU ALU ALU Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 تجسم خط لوله Time (clock cycles) I n s t r. O r d e r 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. Reg Reg Reg Reg Reg Reg Reg Reg Reg Reg Ifetch Ifetch Ifetch Ifetch DMem DMem DMem DMem ALU ALU ALU ALU ALU Reading data from memory Reading instruction from memory One Memory Port/ Structural Hazards Time (clock cycles) Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 I n s t r. O r d e r Load DMem Instr 1 Instr 2 Instr 3 Ifetch Instr 4 15

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

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

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

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

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

  21. سه نوع Data Hazard • Read After Write (RAW)InstrJ tries to read operand before InstrI 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

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

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

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

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

  26. 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 SW d,Rd 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 SW d,Rd 26

  27. Reg Reg Reg Reg Reg Reg Reg Reg Reg Reg ALU ALU ALU ALU ALU Ifetch Ifetch Ifetch Ifetch Ifetch DMem DMem DMem DMem DMem 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 Control Hazard on Branches - Three Stage Stall 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 Implementation: Cycle 1 Cycle 2 Clk lw sw Waste Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10 Clk lw sw R-type IFetch Dec Exec Mem WB IFetch Dec Exec Mem IFetch Pipeline Implementation: IFetch Dec Exec Mem WB lw IFetch Dec Exec Mem WB sw IFetch Dec Exec Mem WB R-type Single Cycle, Mult-Cycle, vs. Pipeline Multiple Cycle Implementation:

  33. Questions

More Related