Transcript Pipeline
מדדים לביצועי מערכת ספרתית • זמן שעובר מתחילת חישוב ועד סופו – השהיהLatency , – הרחבה של Propagation Delayלמערכות כלליות • קצב החישוב – מספר החישובים שניתן לעשות ביחידת זמן – ספיקהThroughput , 1 October 2013 דוגמה להשהיה במימושים סדרתי וצירופי • המשימה :חיבור Nמספרים • מימוש סדרתי out Reg – על-ידי מסכם יחיד ורגיסטר – זמן לחיבור יחיד t0 t0 – זמן כוללN×t0 : + – זמן כולל (N/2 + 1)× t0 + + + – עץ מסכמים בינארי – "עומק"העץ ~ log2N – זמן כולל ~ log2(N)×t0 2 S + • שני ערוצים מקבילים • מימוש צירופי in + + October 2013 ספיקה – Throughput • מהו ה Throughput-של מערכת חישוב צירופית? • דוגמה :עץ המסכמים – ההשהיה ~ log2(N)×t0 – רק לאחר סיום החישוב ניתן לספק נתונים חדשים – לכן מספר קבוצות הנתונים ליחידת זמן: 1 1 Latency log 2 ( N ) t0 3 Throughput October 2013 אבטלת חמרה • בעץ המסכמים ,לאחר זמן t0 השלב הראשון בעץ לא עושה דבר. + + + • האם ניתן לנצל טוב יותר את החמרה ? • כן ,אם: + – יש לבצע הרבה חישובים זהים על נתונים שונים – ניתן לקבוע כרצוננו את קצב הגעת הנתונים • כיצד? לאחר זמן t0נכניס נתונים חדשים • בעיה :עץ המסכמים צירופי – אסור לשנות את כניסותיו עד לסיום החישוב הכולל 4 + + + אדום ממאמץ+ : October 2013 שיפור ספיקה בעזרת Pipeline • פתרון" :נלכוד" את תוצאות הביניים באוגרים (רגיסטרים) ,ואז נוכל לשנות את הכניסה לפני שנגמר החישוב כולו. + + + + + + + • לתהליך בו חישוב טורי עובד בו זמנית על מספר חישובים קוראים ( Pipelineצינור) 5 October 2013 Bubble Sort A H B L How many comparators? n n 1 n 2 i n i1 2 } October 2013 6 Combinational Sorter A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L 8 numbers What is the longest path a signal may travel? How often it can occur? October 2013 A B H L 2n - 3 Never! 7 If there exist positive constants c1 and c2 such that c1 f n g n c2 f n n , g n is of order f n , g n f n. The delay of the sorter is n. Its throughput is 1 n . Though circuits are working in parallel, a new problem cannot be entered into the sorter before the former one has completed and all signals are stable. To improve performance we may try pipeline. October 2013 8 Pipelined Sorter A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L A B H L October 2013 A B H L 9 Does latency improve? The delay in a column (stage) is Θ(n), since a number can bubble from bottom to top. This defines the clock cycle. Θ(n) clock cycles are required to complete sorting. Latency got worsen to Θ(n2)! October 2013 Throughput still Θ(1/n) 10 How can it be improved? Compute in successive clock cycles rather than in one Delay per stage is Θ(1) Throughput is Θ(1) Latency is Θ(n) (2n-3) A H B L A H B L A H B L A H B L A H B L October 2013 A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L A H B L 11 Here is more improvement. Same number of comparisons but latency is n rather than 2n-3. Throughput is Θ(1). Here is another idea: structure repeats itself. A B A B H L A B A B A B H L October 2013 A B A B A B H L A B A B A B A B A B H L H L A B H L A B H L H L H L A B A B H L H L H L H L H L H L H L H L H L H L A B A B A B A B H L H L H L H L H L A B A B A B A B A B A B H L H L A B H L H L 12 A H B L A H B L A H B L Hardware size and throughput trade-off. Data will round n/2 times and will be sorted. A H B L A H B L Hardware is Θ(n) compared to Θ(n2) Latency Θ(n) - unchanged A H B L A H B L Throughput is Θ(1/n) compared to Θ(1) October 2013 13 תזמון Pipeline • נבחר מחזור שעון t0 • תוצאה חדשה מוצאת בכל מחזור • ניצולת מכסימלית + b e g a + f + c d 14 + + + + October 2013 קדימויות בPipeline- • איך משנה תוספת האוגרים את גרף הקדימויות? • הוספת הרגיסטרים מבטלת את דרישת הקדימויות הקריטית 15 October 2013 שתי אנלוגיות מועילות • קו ייצור (הומצא ע"י הנרי פורד לפני 100שנים) – קיימות מספר תחנות בקו – בכל תחנה עושים פעולה שונה ,שהיא חלק מהעיבוד – הקו עובד בו-זמנית על מוצרים רבים • גלי ים – תנועה מתמדת – הגל מתחיל לפני שהקודם לו הגיע לחוף 16 October 2013 תכנון יחידת Pipeline • תכנון אינטואיטיבי: – תכנן מעגל צירופי – הוסף אוגרים במקומות הדרושים עד להשגת ספיקה מכסימלית • בעיה אפשרית :חוסר איזון A • דוגמה :חיבור 3מספרים – נקבל x1+y1+z2 B S x S y z 17 October 2013 תכנון שיטתי של Pipeline • הגדרהK - Pipeline : – מעגל לוגי ללא משוב – כולל רכיבים צירופיים ואוגרים – כל מסלול מכניסה ליציאה כולל בדיוק Kאוגרים • מיועד למנוע את חוסר האיזון שראינו בדוגמה • דוגמה :מעגל צירופי הוא 0-Pipeline • תהליך התכנון השיטתי: – נתחיל ממעגל צירופי ()0-Pipeline – נוסיף אוגרים לפי שני החוקים להלן ,שישמרו את ה- Pipelineנכון תמיד 18 October 2013 חוק ראשון :הוספת אוגרים (רגיסטרים) • הוסף אוגר לכל יציאה של המערכת • החישוב אינו משתנה • התוצאה מתעכבת במחזור שעון אחד (K+1)-Pipe 19 K-Pipe October 2013 חוק שניRetiming : • הורד אוגר מכל יציאה והוסף אוגר לכל כניסה • ניתן ליישום למערכת שלמה או לרכיב אחד בתוכה • תוצאה: – הרכיב Aעושה בדיוק אותו חישוב על אותם נתונים, אבל מאוחר יותר – ההשהיה (מדודה במחזורי שעון) מכל כניסה לכל יציאה של המערכת נשארת זהה A K-Pipe 20 A K-Pipe October 2013 Pipelineתקני • נשתמש רק ביחידות בסיסיות הכוללות: – רכיבים צירופיים – אוגרים A 21 October 2013 תזמון Pipeline • Pipelineהוא מערכת סדרתית לכל דבר • מחזור השעון נקבע לפי התנאי שבכל מסלול מאוגר לאוגר יתקיים: • )TCLK Tpcq(DFF)+Tpd(CL)+Tsu(DFF • צריך גם לוודא שמתקיימים תנאי HOLD A B C 22 October 2013 דוגמה • ננסה למצוא Throughputמכסימלי ו Latency -מינימלי • • 23 שימוש ב pipeline -משפר Throughputאבל לא ! Latency אם מוסיפים את tPD, tSETUPשל האוגרים ההשהיה אפילו גדלה במקצת October 2013 דרך חליפית ליישום החוקים • צייר את כל חתכי ()cuts גרף זרימת הנתונים. 1 • הצב רגיסטר בכל חציית חץ. ה pipeline-המתקבל יהיה תמיד חוקי. 24 2 1 October 2013 ביקור נוסף בדוגמה 2 1 2 1 + 1 1 1 2 2 1 - 1 25 + 1 Example Each component is marked with its propagation delay; contamination delays are zero for all. What is the latency and throughput? Latency: longest path from X to C(X) =1 + 30 + 20 + 2 = 53 Throughput: 1/latency = 1/53 October 2013 26 Place the smallest number of registers so as to maximize its throughput. Place a register on the output. Throughput:1/(max pipeline stage delay) = 1/30 Latency: (1/throughput)*(number of pipeline stages) = 30 * 3 = 90 October 2013 27 Throughput: 1/20 ; Latency: 20 * 4 = 80 October 2013 28