1 / 29

Department of Computer and IT Engineering University of Kurdistan Computer Architecture

Department of Computer and IT Engineering University of Kurdistan Computer Architecture Pipeline Processing By: Dr. Alireza Abdollahpouri. مفهوم پردازش خط لوله اي. A. B. C. D. مثال: شستن لباسها

jubal
Download Presentation

Department of Computer and IT Engineering University of Kurdistan Computer Architecture

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 Computer Architecture Pipeline Processing By: Dr. AlirezaAbdollahpouri

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

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

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

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

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

  7. نكاتي در مورد پردازش خط لوله اي 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

  8. پنج مرحله سيكل دستورالعمل 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

  9. پنج مرحله مسير داده پردازنده DLX Adder 4 Address Inst ALU Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc Memory Access Write Back Next PC MUX Next SEQ PC Zero? RS1 Reg File MUX RS2 Memory Data Memory L M D RD MUX MUX Sign Extend Imm WB Data

  10. پنج مرحله مسير داده پردازنده DLX MEM/WB ID/EX EX/MEM IF/ID Adder 4 Address ALU Instruction Fetch Execute Addr. Calc Memory Access Instr. Decode Reg. Fetch Write Back Next PC MUX Next SEQ PC Next SEQ PC Zero? RS1 Reg File MUX Memory RS2 Data Memory MUX MUX Sign Extend WB Data Imm RD RD RD

  11. تجسم خط لوله 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

  12. مشكلاتي كه در پردازش خط لوله اي بوجود مي آيد • 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).

  13. One Memory Port/ Structural Hazards Reg Reg Reg Reg Reg Reg Reg Reg Reg Reg Ifetch Ifetch Ifetch Ifetch DMem DMem DMem DMem ALU ALU ALU ALU ALU 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

  14. One Memory Port/ Structural Hazards Reg Reg Reg Reg Reg Reg Reg Reg Ifetch Ifetch Ifetch Ifetch DMem DMem DMem ALU ALU ALU ALU Bubble Bubble Bubble Bubble Bubble 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

  15. Data Hazard on r1 add r1, r2, r3 sub r4, r1, r3 and r6, r1, r7 or r8, r1, r9 xor r10, r1, r11

  16. Data Hazard on r1: Im ALU Im ALU Im Dm Reg Reg ALU وابستگيهاي رو به عقب در زمان Time (clock cycles) IF ID/RF EX MEM WB add r1,r2,r3 Reg Reg ALU Im Dm I n s t r. O r d e r sub r4,r1,r3 Dm Reg Reg Dm Reg Reg and r6,r1,r7 Im Dm Reg Reg or r8,r1,r9 ALU xor r10,r1,r11

  17. روش Forwarding براي حل مشكل Data Hazard Im ALU Im ALU Im Dm Reg Reg ALU • نتيجه يك مرحله را به محض آماده شدن به جلو برانيم Time (clock cycles) IF ID/RF EX MEM WB add r1,r2,r3 Reg Reg ALU Im Dm I n s t r. O r d e r sub r4,r1,r3 Dm Reg Reg Dm Reg Reg and r6,r1,r7 Im Dm Reg Reg or r8,r1,r9 ALU xor r10,r1,r11

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

  19. سه نوع 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

  20. سه نوع Data Hazard I: sub r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7 • 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”.

  21. سه نوع Data Hazard I: sub r1,r4,r3 J: add r1,r2,r3 K: mul r6,r1,r7 • 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”.

  22. Data Hazard حتي با استفاده از Forwarding Reg Reg Reg Reg Reg Reg Reg Reg ALU Ifetch Ifetch Ifetch Ifetch DMem DMem DMem DMem ALU ALU ALU lwr1, 0(r2) I n s t r. O r d e r sub r4,r1,r6 and r6,r1,r7 or r8,r1,r9 Time (clock cycles)

  23. Data Hazard حتي با استفاده از Forwarding Reg Reg Reg Ifetch Ifetch Ifetch Ifetch DMem ALU Bubble ALU ALU Reg Reg DMem DMem Bubble Reg Reg Time (clock cycles) I n s t r. O r d e r lwr1, 0(r2) sub r4,r1,r6 and r6,r1,r7 Bubble ALU DMem or r8,r1,r9

  24. Software Scheduling to Avoid Load Hazards 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 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

  25. Control Hazard on Branches - Three Stage Stall 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

  26. 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

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

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

  29. 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

More Related