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
i1
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