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