234262 – © dima elenbogen 2009 4:11 להזכירכם ספיקה (throughput)כמה חישובים...
Post on 15-Jan-2016
229 views
TRANSCRIPT
234262 © – Dima Elenbogen 200909:34 AM
להזכירכם
כמה חישובים מסוגלת המערכת לבצע (Throughputספיקה )ביחידת זמן.
פרק הזמן העובר מהרגע שבו התקבל הקלט (Latencyעיכוב )עד הרגע שבו מופיע הפלט המתאים
לקלט ההוא.
טהור התחלנו לפתור סוג חדש של בעיות: pipelineבעזרת
הפעלת אלגוריתם פשוט על הרבה קלטים המגיעים ברצף
מדדים:2אחד אחרי השני. במערכות כאלה הגדרנו
234262 © – Dima Elenbogen 200909:34 AM
£°±ª®́ ³ ¡ ¨³ ´¥²¬̈ ´ ª ¦³ £� � � � �A(x) :´£®«ª£ §£¢¦±́ ² £«¦¬� � �
.. x1, x2, .., xi, .§¥́ ²£¡ ¦©́ ª £¡ °±�§£¬£�̈ �� � � � � � � �¦¥xi ¤³ ¨ ±́�¬¢±C . £¡£�
±́ ´ £ ¦¤£²°¢¦®� � � .£² ±̈ ² « £¡��°±�́ �°¦¤£²°¢¦®�� � � � � � � � � � � ,¦''ª¥´ ¡®¦�¬¢±�C² ¡ ¨¦³�. ¡� �
´¦¬ ´ £ ¦´¥²¬̈ ¦¬� � � �´£¦¨£«¥̈ ±£®«�!
§¥́ ³ ²� �3´ £®²£°´ £¡£� � � �A´ ´ ³ ¡ ¨� � � �A(x)¦³ ´¦ ¨ ¦´ ¨¥� � � � � �§£²² §£ª́ ¨§£²¢«£ ²� � � � �¦� .§£³ £� �Tpd(A) = 30ns¦³ ££ ³ ©̈ � � � .
.¡ £ª §£ £¥² ² ³� � �
?§´£ª ³ ´¥²¬̈ ´±£®«£ ¨� � � ? ¥£¬���¨� � � � � � �
דוגמה פשוטה
234262 © – Dima Elenbogen 200909:34 AM
מסקנה:קלט קודם כל
נקלט ברגיסטר מבוא
דוגמה פשוטה )במילים אחרות(£°±ª®́ ³ ¡ ¨³ ´¥²¬̈ ´ ª ¦³ £� � � � �A(x) :´£®«ª£ §£¢¦±́ ² £«¦¬� � �
.. x1, x2, .., xi, .§¥́ ²£¡ ¦©́ ª £¡ °±�§£¬£�̈ �� � � � � � � �
¦¥xi ¬¢±¤³ ¨ ±́�C £¡£�² « £¡��°±�́ �°¦¤£²°¢¦®�� � � � � � � � � ,¦''ª¥ . ±́ ´ £ ¦¤£²°¢¦®� � � .£² ±̈� �´ ¡®¦�¬¢±�C² ¡ ¨¦³�¡� �.
´¦¬ ´ £ ¦´¥²¬̈ ¦¬� � � �´£¦¨£«¥̈ ±£®«�!
§¥́ ³ ²� �3´ £®²£°´ £¡£� � � �A´ ´ ³ ¡ ¨� � � �A(x)¦³ ´¦ ¨ ¦´ ¨¥� � � � � � .§£³ £ ¦§£²²���§£ª́ �̈ §£²¢«£�²� � � � � � � �Tpd(A) = 30ns¦³ ££ ³ ©̈ � � � .
.¡ £ª §£ £¥² ² ³� � �
?§´£ª ³ ´¥²¬̈ ´±£®«£ ¨� � � ? ¥£¬���¨� � � � � � �
234262 © – Dima Elenbogen 200909:34 AM
טהור Pipeline פיתרון ראשוני:
מסקנה:קלט קודם כל
נקלט ברגיסטר מבוא
£°±ª®́ ³ ¡ ¨³ ´¥²¬̈ ´ ª ¦³ £� � � � �A(x) :´£®«ª£ §£¢¦±́ ² £«¦¬� � �
.. x1, x2, .., xi, .§¥́ ²£¡ ¦©́ ª £¡ °±�§£¬£�̈ �� � � � � � � �
¦¥xi ¬¢±¤³ ¨ ±́�C £¡£�² « £¡��°±�́ �°¦¤£²°¢¦®�� � � � � � � � � ,¦''ª¥ . ±́ ´ £ ¦¤£²°¢¦®� � � .£² ±̈� �´ ¡®¦�¬¢±�C² ¡ ¨¦³�¡� �.
´¦¬ ´ £ ¦´¥²¬̈ ¦¬� � � �´£¦¨£«¥̈ ±£®«�!
§¥́ ³ ²� �3´ £®²£°´ £¡£� � � �A´ ´ ³ ¡ ¨� � � �A(x)¦³ ´¦ ¨ ¦´ ¨¥� � � � � � .§£³ £ ¦§£²²���§£ª́ �̈ §£²¢«£�²� � � � � � � �Tpd(A) = 30ns¦³ ££ ³ ©̈ � � � .
.¡ £ª §£ £¥² ² ³� � �
?§´£ª ³ ´¥²¬̈ ´±£®«£ ¨� � � ? ¥£¬���¨� � � � � � �
Latency = _________
Tcycle = _________
Throughput = _________
234262 © – Dima Elenbogen 200909:34 AM
כמה חישובים מסוגלת המערכת לבצע ביחידת זמן.(Throughputספיקה ) •
פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו (Latencyעיכוב ) •הפלט המתאים לקלט ההוא.מופיע
טהור Pipeline ביצועי
Latency = _________
Tcycle = Tpd(A) + Tpd(FF)
Throughput = _________
234262 © – Dima Elenbogen 200909:34 AM
כמה חישובים מסוגלת המערכת לבצע ביחידת זמן.(Throughputספיקה ) •
פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו (Latencyעיכוב ) •הפלט המתאים לקלט ההוא.מופיע
טהור Pipeline ביצועי
234262 © – Dima Elenbogen 200909:34 AM
כמה חישובים מסוגלת המערכת לבצע ביחידת זמן.(Throughputספיקה ) •
פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו (Latencyעיכוב ) •הפלט המתאים לקלט ההוא.מופיע
זניח
טהור Pipeline ביצועי
Latency = _________
Tcycle = Tpd(A)
Throughput = 1/Tcycle = 1/Tpd(A) = 1/30 ns-1
234262 © – Dima Elenbogen 200909:34 AM
כמה חישובים מסוגלת המערכת לבצע ביחידת זמן.(Throughputספיקה ) •
פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו (Latencyעיכוב ) •הפלט המתאים לקלט ההוא.מופיע
טהור Pipeline ביצועי
Latency = Tcycle = Tpd(A)
Tcycle = Tpd(A)
Throughput = 1/Tcycle = 1/Tpd(A) = 1/30 ns-1
234262 © – Dima Elenbogen 200909:34 AM
כמה חישובים מסוגלת המערכת לבצע ביחידת זמן.(Throughputספיקה ) •
פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו (Latencyעיכוב ) •הפלט המתאים לקלט ההוא.מופיע
אבל ניתן להשיג ספיקה גדולה יותר!..
234262 © – Dima Elenbogen 200909:34 AM
היחידות החישוביות 3אם נשתמש בכל שברשותנו
234262 © – Dima Elenbogen 200909:34 AM
חיווט ישיר אסור בהחלט!
234262 © – Dima Elenbogen 200909:34 AM
חייבים בורר
234262 © – Dima Elenbogen 200909:34 AM
הפיתרון מבוסס על הפרשי פזות של החישובים המקביליים ועל מניעת אבטלה ביחידות
החישוביות
44
?מהו אופן הפעולה כאן?מהי השפעת העובדה שהבורר אינו אדיש
234262 © – Dima Elenbogen 200909:34 AM
ביצועי המערכת
?מה השתפר לנו
234262 © – Dima Elenbogen 200909:34 AM
33
המערכת כאשר הבורר אדיש
234262 © – Dima Elenbogen 200909:34 AM
Thhroughputgen-ו τ
(Throughputgenספיקה כללית של המערכת ) כמה חישובים מסוגלת המערכת לבצע ביחידת זמן •במילים אחרות קצב הגעת קלטים או •במילים אחרות קצב הוצאת קלטים או •
τנגדיר קלטים עוקבים2כפרק זמן שחולף בין • פלטים עוקבים2 או במילים אחרות כפרק זמן שחולף בין •
τ = 1 / Throughputgen
Latency =
Throughputgen =
Tcycle =
חיבור במקביל טהור
234262 © – Dima Elenbogen 200909:34 AM
כמה חישובים מסוגלת המערכת לבצע ביחידת זמן.(Throughputספיקה ) •
פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו (Latencyעיכוב ) •הפלט המתאים לקלט ההוא.מופיע
ביצועי מערכת מקבילית כללית
1
2
3
חיבור במקביל טהור
234262 © – Dima Elenbogen 200909:34 AM
כמה חישובים מסוגלת המערכת לבצע ביחידת זמן.(Throughputספיקה ) •
פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו (Latencyעיכוב ) •הפלט המתאים לקלט ההוא.מופיע
ספיקת המערכת המקבילית
Latency =Throughputgen ≤ Σ {Throughputi } = Σ {1/Tpdi } Tcycle =
1
2
3
Latency = depends on our design of the controller and Tcycle
Throughputgen ≤ Σ {Throughputi } = Σ {1/Tpdi } Tcycle =
חיבור במקביל טהור
234262 © – Dima Elenbogen 200909:34 AM
כמה חישובים מסוגלת המערכת לבצע ביחידת זמן.(Throughputספיקה ) •
פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו (Latencyעיכוב ) •הפלט המתאים לקלט ההוא.מופיע
Latencyבמערכת המקבילית
1
2
3
234262 © – Dima Elenbogen 200909:34 AM
Aiקביעת זמן מחזור מתוך מניעת אבטלה של
Tpd)Ai( = ki * Tcycle
Tpd)Ai(Tcycle
ℕ
חישובית יחידה בסמוך Aiכל ממש חישוב כל לסיים צריכה קטע כאשר Cלתחילת אז. עד מאבטלה להימנע כדי Tpd(FF)
זניח, כל חישוב צריך להסתיים ממש בסמוך לסוף מחזור. כל יחידה חישוביתAi.מקבלת נתון לחישוב היישר מתוך רגיסטר החישוב על החישוב, ביצוע תחילת בטרם אבטלה למנוע בכדי
, כלומר בתחילת המחזור. Aלהתחיל מייד עם סיום קטע לכן כל חישוב ביחידה Ai :צריך להימשך מספר שלם של מחזורים
1
2
3
234262 © – Dima Elenbogen 200909:34 AM
קביעת זמן מחזור מתוך מניעת אבטלת כלל המערכת נתון מגיע לרגיסטר הראשון בכל אפיק ממש בסמוך לקטעC.
להכיל צריך נתונים של עוקבות הגעות שתי בין האינטרוול לכן בתוכו כמות שלמה של מחזורים.
האינטרוול ההוא הינוτ:לכן
τ = kτ * Tcycle
τTcycle
ℕ1
2
3
234262 © – Dima Elenbogen 200909:34 AM
קביעת זמן מחזור
τTcycle
ℕTpd)Ai(Tcycle
ℕ
TTcyclecycle = CD {Tpd)A = CD {Tpd)Aii(, (, ττ}}
i.e. t{Tpd(Ai), τ} . t/Tcycle ℕ
מחלק משותף
בד''כ הגדול ביותר
)GCD(
ערך ממשי לאו דווקה
שלם
Latency = depends on our design of the controller and Tcycle
Throughputgen ≤ Σ {Throughputi } = Σ {1/Tpdi }
Tcycle = CD {Tpdi, τ} (i.e. t{Tpdi, τ} . t/Tcycle ℕ)
חיבור במקביל טהור
234262 © – Dima Elenbogen 200909:34 AM
כמה חישובים מסוגלת המערכת לבצע ביחידת זמן.(Throughputספיקה ) •
פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו (Latencyעיכוב ) •הפלט המתאים לקלט ההוא.מופיע
זמן מחזור השעון לשם השגת הספיקה המירבית
1
2
3
234262 © – Dima Elenbogen 200909:34 AM
£°±ª®́ ³ ¡ ¨³ ´¥²¬̈ ´ ª ¦³ £� � � � �A(x) :´£®«ª£ §£¢¦±́ ² £«¦¬� � �
.. x1, x2, .., xi, .§ ¥́ ²£¡ ¦©́ ª £¡ °±�§£¬£�̈ �� � � � � � � �¦¥xi ¬¢±¤³ ¨ ±́�C ² « £¡��°±�́ �°¦¤£²°¢¦®�� � � � � � � � � ,¦''ª¥ . £¡£�
±́ ´ £ ¦¤£²°¢¦®� � � .£² ±̈� �´ ¡®¦�¬¢±�C² ¡ ¨¦³�. ¡� �
´¦¬ ´ £ ¦´¥²¬̈ ¦¬� � � �´£¦¨£«¥̈ ±£®«�!
§¥́ ³ ²� �2´ £®²£°´ £¡£� � � � A’’ - �A’´ ´ ³ ¡ ¨� � � �A(x)´¦ ¨ ¦´ ¨¥� � � � � �.§£³ £ §£²² §£ª́ ¨§£²¢«£ ²¦³� � � � � � �
Tpd(A’) = 3ns Tpd(A’’) = 6ns
.¡ £ª §£ £¥² ² ³ ¦³ ££ ³ ©̈ � � � � � �
2דוגמה
234262 © – Dima Elenbogen 200909:34 AM
Iניסיון
?כיצד היינו משנים את מסלול הנתונים אלמלא הבורר היה אדיש
234262 © – Dima Elenbogen 200909:34 AM
Iספיקה וזמן מחזור לניסיון
Throughputgen ≤ Σ {Throughputi } = Σ {1/Tpdi } = ⅓ + ⅙ = ½
τ = 1 / ½ = 2ns
Tcycle = CD {Tpdi, τ} = CD {3, 6, 2} = 1
234262 © – Dima Elenbogen 200909:34 AM
Iבעית ניסיון
מה הבעיה
כאן?
234262 © – Dima Elenbogen 200909:34 AM
Iבעית ניסיון
האפיקים לא מאוזנים. סדר הוצאת 2 ב-latenciesה-בעיה:הפלטים עלול להתבלגן.
?כיצד נעכב את האפיק הקל
מה הבעיה
כאן?
234262 © – Dima Elenbogen 200909:34 AM
IIניסיון
-האם איזנו את ה latencies?
234262 © – Dima Elenbogen 200909:34 AM
IIניסיון
-כן איזנו את ה latencies??האם מותר להוסיף עוד רגיסטר עיכוב לאפיק הקל
מאזן את ה-
Latencies
234262 © – Dima Elenbogen 200909:34 AM
מסלול הנתונים הסופי
?מה הספיקה המירבית הניתנת להשגה ?מהו זמן המחזור המאפשר זאת -מה יהיה ה latency?
234262 © – Dima Elenbogen 200909:34 AM
ביצועי מסלול הנתונים )שאיפתנו(
Throughputgen ≤ Σ {Throughputi } = Σ {1/Tpdi } = ⅓ + ⅙ = ½
τ = 1 / ½ = 2ns
Tcycle = CD {Tpdi, τ} = CD {3, 6, 2} = 1
Latency = depends on our design of the controller
234262 © – Dima Elenbogen 200909:34 AM
תכנון בקר
עדיין לא מובטח לנו שהמערכת תעמוד בספיקה המירבית. אנו
חייבים לדאוג בבקר לכך שלא תהיה אבטלה ביחידות
החישוביות.
?כמה מצבים יהיו בבקר
234262 © – Dima Elenbogen 200909:34 AM
Nstatesקביעת
1
2
3
.מבנה הבקר יהיה חוג נמשכת החוג של מלאה הקפה
Nstates*Tcycle
במצב הקפה מתחילים אם אז המערכת, של מסויים לאותה הבאה בפעם כשחוזרים המערכת על ההתחלה, נקודת
לחזור לאותו המצב בדיוק. יחידה חישובית מספיקה תוך לכן
שלמה כמות לבצע החוג הקפת )Nstates*Tcycle = ni*Tpd)Aiשל חישובים ללא שארית:
Nstates
Tpd)Ai( / Tcycle
ℕ
234262 © – Dima Elenbogen 200909:34 AM
Nstatesקביעת
1
2
3
התחלנו אם דומים בשיקולים שבו Cאת הקפת החוג בקטע
אז למערכת, מגיע נתון נימצא שוב ההקפה בהשלמת
בנקודת קליטה של נתון אחר. עובר ההקפה במשך כלומר
האינטרוולים של שלם מספר של הגעות נתונים 2בין
):τעוקבים (
Nstates*Tcycle = nτ*τ
Nstates
τ / Tcycle
ℕ
234262 © – Dima Elenbogen 200909:34 AM
Nstatesקביעת
Nstates
τ / Tcycle
ℕNstates
Tpd)Ai( / Tcycle
ℕ
Nstates = CM { , }Tpd)Ai(Tcycle
τTcycle
כפולה משותפ
ת
234262 © – Dima Elenbogen 200909:34 AM
Nstates 2 בדוגמה
?כמה מצבים יהיו בבקר
Nstates = CM { , } =Tpd)Ai(Tcycle
τTcycle
= CM { , , } = 63ns1ns
6ns1ns
2ns1ns
234262 © – Dima Elenbogen 200909:34 AM
תכנון בקר
234262 © – Dima Elenbogen 200909:34 AM
תכנון בקר: האפיק הכבד
ld6
עדיף להתחיל מהמסלול הכבד מאחר ואין בו רגיסטרי
עיכוב.
234262 © – Dima Elenbogen 200909:34 AM
תכנון בקר: האפיק הכבד )המשך(
ld6sel = 1
234262 © – Dima Elenbogen 200909:34 AM
תכנון בקר: הפלטים בקצב אחיד
ld6sel = 1
Throughputgen =
2ns ב-1חישוב
sel = 0
sel = 0
234262 © – Dima Elenbogen 200909:34 AM
מאוזנים בכל אפיקlatenciesתכנון בקר:
ld6sel = 1
Latency = 6nsעל פי האפיק
הכבד
ld1sel = 0
ld1sel = 0
234262 © – Dima Elenbogen 200909:34 AM
תכנון בקר: האפיק הקל
ld6sel = 1
ld1sel = 0
ld1sel = 0
ld2
234262 © – Dima Elenbogen 200909:34 AM
תכנון בקר: האפיק הקל
ld6sel = 1
ld1sel = 0
ld1sel = 0
ld2
ld2
A’ מוכנה לקבל נתון חדש 3nsכל
234262 © – Dima Elenbogen 200909:34 AM
תכנון בקר: האפיק הקל )המשך(
ld6sel = 1
ld1sel = 0
ld1sel = 0
ld2ld3
ld2ld3
234262 © – Dima Elenbogen 200909:34 AM
הבקר מוכן
ld6sel = 1
ld1sel = 0
ld1sel = 0
ld2ld3
ld2ld3
234262 © – Dima Elenbogen 200909:34 AM
אימות הבקר
ld6sel = 1
ld1sel = 0
ld1sel = 0
ld2ld3
ld2ld3
כמובן עליכם לוודא :שהקלטים נקלטים •
בקצב אחידהפלטים מּוצאים •
באותו הקצבזמן חישוב זהה לכל •
קלט(למרות שעל פי
הדרישות הללו בנינו את מעכת)
234262 © – Dima Elenbogen 200909:34 AM
אימות הבקר )המשך(
ld6sel = 1
ld1sel = 0
ld1sel = 0
ld2ld3
ld2ld3
:ובנוסף עליכם לוודא ששום נתון או תוצאת בייניים לא •
הולך לאיבוד (לא נדרס) כל תוצאת בייניים אכן מספיקה •
להיחשב לפני עידכון רגיסטר היעד שלה.
שכאשר לוודאכלומר, מעדכנים רגיסטר
אזיי:הערך הקודם שלו •
מתקדם (או כבר התקדם) ליעד הבא
(לרבות אחרי חישוב)אם הוא מקבל ערך •
מיחידה חישובית, אז היא כרגע סיימה את
החישוב.
234262 © – Dima Elenbogen 200909:34 AM
עבודה עצמית: פונקציות מורכבות
תתי-מערכות בסיסיות המחשבות 2כעת אתם מסוגלים לבנות בהתאמה:B(x) ו-A(x)פונקציות פשוטות
= ƒ(x)אתם יכולים ליצור מערכת שתחשב פונקציה מורכבת B(A(x)) לשם עליכם לחשוב בגישה .pipeline ית ולשרשר את-
תתי-המערכות הבסיסיות
1
2
3
4
5
6
B1
B2
B3
A
B
234262 © – Dima Elenbogen 200909:34 AM
))f)x( = B)A)xעבודה עצמית: פונקציות מורכבות
שירשור תתי-המערכות הבסיסיות:
1
2
3
4
5
6
B1
B2
B3
A B
האם נרשה אבטלה בחלק מהיחידות החישוביות? אם כן, מתי
ואיפה?
?מהי הספיקה הגבוהה ביותר של המערכת המשורשרת
?מה צריך להיות זמן מחזור על מנת שהספיקה הנ''ל תושג
?כמה מצבים יהיו בבקר המנהל את המערכת המשורשרת