Presentation is loading. Please wait.

Presentation is loading. Please wait.

234262 – © Dima Elenbogen 2009 4:11 להזכירכם ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק הזמן העובר מהרגע שבו התקבל.

Similar presentations


Presentation on theme: "234262 – © Dima Elenbogen 2009 4:11 להזכירכם ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק הזמן העובר מהרגע שבו התקבל."— Presentation transcript:

1 234262 – © Dima Elenbogen 2009 4:11 להזכירכם ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק הזמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. בעזרת pipeline טהור התחלנו לפתור סוג חדש של בעיות: הפעלת אלגוריתם פשוט על הרבה קלטים המגיעים ברצף אחד אחרי השני. במערכות כאלה הגדרנו 2 מדדים:

2 234262 – © Dima Elenbogen 2009 4:11 דוגמה פשוטה

3 234262 – © Dima Elenbogen 2009 4:11 מסקנה : קלט קודם כל נקלט ברגיסטר מבוא דוגמה פשוטה (במילים אחרות)

4 234262 – © Dima Elenbogen 2009 4:11 פיתרון ראשוני: Pipeline טהור מסקנה : קלט קודם כל נקלט ברגיסטר מבוא

5 Latency = _________ T cycle = _________ Throughput = _________ 234262 – © Dima Elenbogen 2009 4:11 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. ביצועי Pipeline טהור

6 Latency = _________ T cycle = T pd (A) + T pd (FF) Throughput = _________ 234262 – © Dima Elenbogen 2009 4:11 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. ביצועי Pipeline טהור

7 Latency = _________ T cycle = T pd (A) + T pd (FF) Throughput = _________ 234262 – © Dima Elenbogen 2009 4:11 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. זניח ביצועי Pipeline טהור

8 Latency = _________ T cycle = T pd (A) Throughput = 1/ T cycle = 1/T pd (A) = 1/30 ns -1 234262 – © Dima Elenbogen 2009 4:11 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. ביצועי Pipeline טהור

9 Latency = T cycle = T pd (A) T cycle = T pd (A) Throughput = 1/ T cycle = 1/T pd (A) = 1/30 ns -1 234262 – © Dima Elenbogen 2009 4:11 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. אבל ניתן להשיג ספיקה גדולה יותר!..

10 234262 – © Dima Elenbogen 2009 4:11 אם נשתמש בכל 3 היחידות החישוביות שברשותנו

11 234262 – © Dima Elenbogen 2009 4:11 חיווט ישיר אסור בהחלט!

12 234262 – © Dima Elenbogen 2009 4:11 חייבים בורר

13 234262 – © Dima Elenbogen 2009 4:11 הפיתרון מבוסס על הפרשי פזות של החישובים המקביליים ועל מניעת אבטלה ביחידות החישוביות

14 4 4  מהו אופן הפעולה כאן ?  מהי השפעת העובדה שהבורר אינו אדיש ? 234262 – © Dima Elenbogen 2009 4:11 ביצועי המערכת

15  מה השתפר לנו ? 234262 – © Dima Elenbogen 2009 4:11 3 3 המערכת כאשר הבורר אדיש

16 234262 – © Dima Elenbogen 2009 4:11 Thhroughput gen ו - τ ספיקה כללית של המערכת (Throughput gen ) כמה חישובים מסוגלת המערכת לבצע ביחידת זמן או במילים אחרות קצב הגעת קלטים או במילים אחרות קצב הוצאת קלטים נגדיר τ כפרק זמן שחולף בין 2 קלטים עוקבים או במילים אחרות כפרק זמן שחולף בין 2 פלטים עוקבים τ = 1 / Throughput gen

17 Latency= Throughput gen = T cycle = חיבור במקביל טהור 234262 – © Dima Elenbogen 2009 4:11 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. ביצועי מערכת מקבילית כללית 1 2 3

18 חיבור במקביל טהור 234262 – © Dima Elenbogen 2009 4:11 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. ספיקת המערכת המקבילית Latency = Throughput gen ≤ Σ {Throughput i } = Σ {1/Tpd i } T cycle = 1 2 3

19 Latency = depends on our design of the controller and T cycle Throughput gen ≤ Σ {Throughput i } = Σ {1/Tpd i } T cycle = חיבור במקביל טהור 234262 – © Dima Elenbogen 2009 4:11 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. Latencyבמערכת המקבילית 1 2 3

20 234262 – © Dima Elenbogen 2009 4:11 קביעת זמן מחזור מתוך מניעת אבטלה של A i T pd (A i ) = k i * T cycle T pd (A i ) T cycle ℕℕ כל יחידה חישובית A i צריכה לסיים כל חישוב ממש בסמוך לתחילת קטע C כדי להימנע מאבטלה עד אז. כאשר T pd (FF) זניח, כל חישוב צריך להסתיים ממש בסמוך לסוף מחזור. כל יחידה חישובית A i מקבלת נתון לחישוב היישר מתוך רגיסטר. בכדי למנוע אבטלה בטרם תחילת ביצוע החישוב, על החישוב להתחיל מייד עם סיום קטע A, כלומר בתחילת המחזור. לכן כל חישוב ביחידה A i צריך להימשך מספר שלם של מחזורים: 1 2 3

21 234262 – © Dima Elenbogen 2009 4:11 קביעת זמן מחזור מתוך מניעת אבטלת כלל המערכת נתון מגיע לרגיסטר הראשון בכל אפיק ממש בסמוך לקטע C. לכן האינטרוול בין שתי הגעות עוקבות של נתונים צריך להכיל בתוכו כמות שלמה של מחזורים. האינטרוול ההוא הינו τ לכן : τ = k τ * T cycle τ T cycle ℕℕ 1 2 3

22 234262 – © Dima Elenbogen 2009 4:11 קביעת זמן מחזור τ T cycle ℕℕ T pd (A i ) T cycle ℕℕ T cycle = CD {Tpd(A i ), τ } i.e.  t  {Tpd(A i ), τ }. t/T cycle  ℕ מחלק משותף בד '' כ הגדול ביותר (GCD) ערך ממשי לאו דווקה שלם

23 Latency = depends on our design of the controller and T cycle Throughput gen ≤ Σ {Throughput i } = Σ {1/Tpd i } T cycle = CD {Tpd i, τ } (i.e.  t  {Tpd i, τ }. t/T cycle  ℕ ) חיבור במקביל טהור 234262 – © Dima Elenbogen 2009 4:11 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. זמן מחזור השעון לשם השגת הספיקה המירבית 1 2 3

24 234262 – © Dima Elenbogen 2009 4:11 דוגמה 2

25 234262 – © Dima Elenbogen 2009 4:11 ניסיון I  כיצד היינו משנים את מסלול הנתונים אלמלא הבורר היה אדיש ?

26 234262 – © Dima Elenbogen 2009 4:11 ספיקה וזמן מחזור לניסיון I Throughput gen ≤ Σ {Throughput i } = Σ {1/Tpd i } = ⅓ + ⅙ = ½ τ = 1 / ½ = 2ns T cycle = CD {Tpd i, τ } = CD {3, 6, 2} = 1

27 234262 – © Dima Elenbogen 2009 4:11 בעית ניסיון I מה הבעיה כאן ?

28 234262 – © Dima Elenbogen 2009 4:11 בעית ניסיון I בעיה:ה-latencies ב-2 האפיקים לא מאוזנים. סדר הוצאת הפלטים עלול להתבלגן.  כיצד נעכב את האפיק הקל? מה הבעיה כאן ?

29 234262 – © Dima Elenbogen 2009 4:11 ניסיון II  האם איזנו את ה-latencies?

30 234262 – © Dima Elenbogen 2009 4:11 ניסיון II כן איזנו את ה-latencies?  האם מותר להוסיף עוד רגיסטר עיכוב לאפיק הקל? מאזן את ה - Latencies

31 234262 – © Dima Elenbogen 2009 4:11 מסלול הנתונים הסופי  מה הספיקה המירבית הניתנת להשגה?  מהו זמן המחזור המאפשר זאת?  מה יהיה ה-latency?

32 234262 – © Dima Elenbogen 2009 4:11 ביצועי מסלול הנתונים (שאיפתנו) Throughput gen ≤ Σ {Throughput i } = Σ {1/Tpd i } = ⅓ + ⅙ = ½ τ = 1 / ½ = 2ns T cycle = CD {Tpd i, τ } = CD {3, 6, 2} = 1 Latency = depends on our design of the controller

33 234262 – © Dima Elenbogen 2009 4:11 תכנון בקר עדיין לא מובטח לנו שהמערכת תעמוד בספיקה המירבית. אנו חייבים לדאוג בבקר לכך שלא תהיה אבטלה ביחידות החישוביות.  כמה מצבים יהיו בבקר?

34 234262 – © Dima Elenbogen 2009 4:11 קביעת N states 1 2 3 מבנה הבקר יהיה חוג. הקפה מלאה של החוג נמשכת N states *T cycle אם מתחילים הקפה במצב מסויים של המערכת, אז כשחוזרים בפעם הבאה לאותה נקודת ההתחלה, על המערכת לחזור לאותו המצב בדיוק. לכן יחידה חישובית מספיקה תוך הקפת החוג לבצע כמות שלמה של חישובים ללא שארית: N states *T cycle = n i *T pd (A i ) N states T pd (A i ) / T cycle ℕℕ

35 234262 – © Dima Elenbogen 2009 4:11 קביעת N states 1 2 3 בשיקולים דומים אם התחלנו את הקפת החוג בקטע C שבו נתון מגיע למערכת, אז בהשלמת ההקפה שוב נימצא בנקודת קליטה של נתון אחר. כלומר במשך ההקפה עובר מספר שלם של האינטרוולים בין הגעות של 2 נתונים עוקבים ( τ ): N states *T cycle = n τ * τ N states τ / T cycle ℕℕ

36 234262 – © Dima Elenbogen 2009 4:11 קביעת N states N states τ / T cycle ℕℕ N states T pd (A i ) / T cycle ℕℕ N states = CM {, } T pd (A i ) T cycle τ כפולה משותפת

37 234262 – © Dima Elenbogen 2009 4:11 N states 1 2 3 כמה מצבים יהיו בבקר?  t  {Tpd i, τ }. N states * T cycle / t  ℕ N states = CM {Tpd i, τ } / T cycle

38 234262 – © Dima Elenbogen 2009 4:11 N states בדוגמה 2 כמה מצבים יהיו בבקר? N states = CM {, } = T pd (A i ) T cycle τ = CM {,, } = 6 3ns 1ns 6ns 1ns 2ns 1ns

39 234262 – © Dima Elenbogen 2009 4:11 תכנון בקר

40 234262 – © Dima Elenbogen 2009 4:11 תכנון בקר: האפיק הכבד ld6 עדיף להתחיל מהמסלול הכבד מאחר ואין בו רגיסטרי עיכוב.

41 234262 – © Dima Elenbogen 2009 4:11 תכנון בקר: האפיק הכבד (המשך) ld6 sel = 1

42 234262 – © Dima Elenbogen 2009 4:11 תכנון בקר: הפלטים בקצב אחיד ld6 sel = 1 Throughput gen = חישוב 1 ב -2ns sel = 0

43 234262 – © Dima Elenbogen 2009 4:11 תכנון בקר: latencies מאוזנים בכל אפיק ld6 sel = 1 Latency = 6ns על פי האפיק הכבד ld1 sel = 0 ld1 sel = 0

44 234262 – © Dima Elenbogen 2009 4:11 תכנון בקר: האפיק הקל ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2

45 234262 – © Dima Elenbogen 2009 4:11 תכנון בקר: האפיק הקל ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2 A’ מוכנה לקבל נתון חדש כל 3ns

46 234262 – © Dima Elenbogen 2009 4:11 תכנון בקר: האפיק הקל (המשך) ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2 ld3 ld2 ld3

47 234262 – © Dima Elenbogen 2009 4:11 הבקר מוכן ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2 ld3 ld2 ld3

48 234262 – © Dima Elenbogen 2009 4:11 אימות הבקר ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2 ld3 ld2 ld3 כמובן עליכם לוודא ש : הקלטים נקלטים בקצב אחיד הפלטים מוּצאים באותו הקצב זמן חישוב זהה לכל קלט ( למרות שעל פי הדרישות הללו בנינו את מעכת )

49 234262 – © Dima Elenbogen 2009 4:11 אימות הבקר (המשך) ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2 ld3 ld2 ld3 ובנוסף עליכם לוודא ש : שום נתון או תוצאת בייניים לא הולך לאיבוד ( לא נדרס ) כל תוצאת בייניים אכן מספיקה להיחשב לפני עידכון רגיסטר היעד שלה. כלומר, לוודא שכאשר מעדכנים רגיסטר אזיי : הערך הקודם שלו מתקדם ( או כבר התקדם ) ליעד הבא ( לרבות אחרי חישוב ) אם הוא מקבל ערך מיחידה חישובית, אז היא כרגע סיימה את החישוב.

50 234262 – © Dima Elenbogen 2009 4:11 עבודה עצמית: פונקציות מורכבות כעת אתם מסוגלים לבנות 2 תתי-מערכות בסיסיות המחשבות פונקציות פשוטות A(x) ו-B(x) בהתאמה: אתם יכולים ליצור מערכת שתחשב פונקציה מורכבת ƒ(x) = B(A(x)). לשם עליכם לחשוב בגישה pipeline-ית ולשרשר את תתי-המערכות הבסיסיות 1 2 3 4 5 6 B1B1 B2B2 B3B3 A B

51 234262 – © Dima Elenbogen 2009 4:11 עבודה עצמית: פונקציות מורכבות f(x) = B(A(x)) שירשור תתי-המערכות הבסיסיות: 1 2 3 4 5 6 B1B1 B2B2 B3B3 A B  האם נרשה אבטלה בחלק מהיחידות החישוביות? אם כן, מתי ואיפה?  מהי הספיקה הגבוהה ביותר של המערכת המשורשרת?  מה צריך להיות זמן מחזור על מנת שהספיקה הנ''ל תושג?  כמה מצבים יהיו בבקר המנהל את המערכת המשורשרת?


Download ppt "234262 – © Dima Elenbogen 2009 4:11 להזכירכם ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק הזמן העובר מהרגע שבו התקבל."

Similar presentations


Ads by Google