– © Dima Elenbogen :43 להזכירכם ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק הזמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. בעזרת pipeline טהור התחלנו לפתור סוג חדש של בעיות: הפעלת אלגוריתם פשוט על הרבה קלטים המגיעים ברצף אחד אחרי השני. במערכות כאלה הגדרנו 2 מדדים:
– © Dima Elenbogen :43 דוגמה פשוטה
– © Dima Elenbogen :43 מסקנה : קלט קודם כל נקלט ברגיסטר מבוא דוגמה פשוטה (במילים אחרות)
– © Dima Elenbogen :43 פיתרון ראשוני: Pipeline טהור מסקנה : קלט קודם כל נקלט ברגיסטר מבוא
Latency = _________ T cycle = _________ Throughput = _________ – © Dima Elenbogen :43 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. ביצועי Pipeline טהור
Latency = _________ T cycle = T pd (A) + T pd (FF) Throughput = _________ – © Dima Elenbogen :43 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. ביצועי Pipeline טהור
Latency = _________ T cycle = T pd (A) + T pd (FF) Throughput = _________ – © Dima Elenbogen :43 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. זניח ביצועי Pipeline טהור
Latency = _________ T cycle = T pd (A) Throughput = 1/ T cycle = 1/T pd (A) = 1/30 ns – © Dima Elenbogen :43 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. ביצועי Pipeline טהור
Latency = T cycle = T pd (A) T cycle = T pd (A) Throughput = 1/ T cycle = 1/T pd (A) = 1/30 ns – © Dima Elenbogen :43 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. אבל ניתן להשיג ספיקה גדולה יותר!..
– © Dima Elenbogen :43 אם נשתמש בכל 3 היחידות החישוביות שברשותנו
– © Dima Elenbogen :43 חיווט ישיר אסור בהחלט!
– © Dima Elenbogen :43 חייבים בורר
– © Dima Elenbogen :43 הפיתרון מבוסס על הפרשי פזות של החישובים המקביליים ועל מניעת אבטלה ביחידות החישוביות
מהו אופן הפעולה כאן ? מהי השפעת העובדה שהבורר אינו אדיש ? – © Dima Elenbogen :43 ביצועי המערכת 4 4
מה השתפר לנו ? – © Dima Elenbogen : המערכת כאשר הבורר אדיש
– © Dima Elenbogen :43 Thhroughput gen ו - τ ספיקה כללית של המערכת (Throughput gen ) כמה חישובים מסוגלת המערכת לבצע ביחידת זמן או במילים אחרות קצב הגעת קלטים או במילים אחרות קצב הוצאת קלטים נגדיר τ כפרק זמן שחולף בין 2 קלטים עוקבים או במילים אחרות כפרק זמן שחולף בין 2 פלטים עוקבים τ = 1 / Throughput gen
Latency= Throughput gen = T cycle = חיבור במקביל טהור – © Dima Elenbogen :43 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. ביצועי מערכת מקבילית כללית 1 2 3
חיבור במקביל טהור – © Dima Elenbogen :43 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. ספיקת המערכת המקבילית Latency = Throughput gen ≤ Σ {Throughput i } = Σ {1/Tpd i } T cycle = 1 2 3
Latency = depends on our design of the controller and T cycle Throughput gen ≤ Σ {Throughput i } = Σ {1/Tpd i } T cycle = חיבור במקביל טהור – © Dima Elenbogen :43 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. Latencyבמערכת המקבילית 1 2 3
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 ℕ ) חיבור במקביל טהור – © Dima Elenbogen :43 ספיקה (Throughput)כמה חישובים מסוגלת המערכת לבצע ביחידת זמן. עיכוב (Latency)פרק זמן העובר מהרגע שבו התקבל הקלט עד הרגע שבו מופיע הפלט המתאים לקלט ההוא. קביעת זמן מחזור לשם השגת הספיקה המירבית 1 2 3
– © Dima Elenbogen :43 דוגמה 2
– © Dima Elenbogen :43 ניסיון I כיצד היינו משנים את מסלול הנתונים אלמלא הבורר היה אדיש ?
– © Dima Elenbogen :43 ספיקה וזמן מחזור לניסיון I Throughput gen ≤ Σ {Throughput i } = Σ {1/Tpd i } = ⅓ + ⅙ = ½ τ = 1 / ½ = 2ns T cycle = CD {Tpd i, τ } = CD {3, 6, 2} = 1
– © Dima Elenbogen :43 בעית ניסיון I בעיה:ה-latencies ב-2 האפיקים לא מאוזנים. סדר הוצאת הפלטים עלול להתבלגן. כיצד נעכב את האפיק הקל? מה הבעיה כאן ?
– © Dima Elenbogen :43 ניסיון II האם איזנו את ה-latencies? האם מותר להוסיף עוד רגיסטר עיכוב לאפיק הקל? מאזן את ה - Latencies
– © Dima Elenbogen :43 מסלול הנתונים הסופי מה הספיקה המירבית הניתנת להשגה? מהו זמן המחזור המאפשר זאת? מה יהיה ה-latency?
– © Dima Elenbogen :43 ביצועי הסלול הנתונים (שאיפתנו) 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
– © Dima Elenbogen :43 תכנון בקר עדיין לא מובטח לנו שהמערכת תעמוד בספיקה המירבית. אנו חייבים לדאוג בבקר לכך שלא תהיה אבטלה ביחידות החישוביות. כמה מצבים יהיו בבקר?
– © Dima Elenbogen :43 N states כמה מצבים יהיו בבקר? t {Tpd i, τ }. N states * T cycle / t ℕ N states = CM {Tpd i, τ } / T cycle
– © Dima Elenbogen :43 N states בדוגמה 2 כמה מצבים יהיו בבקר? N states = CM {Tpd i, τ } / T cycle = CM {3, 6, 2} / 1 = 6
– © Dima Elenbogen :43 תכנון בקר
– © Dima Elenbogen :43 תכנון בקר: האפיק הכבד ld6 עדיף להתחיל מהמסלול הכבד מאחר ואין בו רגיסטרי עיכוב.
– © Dima Elenbogen :43 תכנון בקר: האפיק הכבד (המשך) ld6 sel = 1
– © Dima Elenbogen :43 תכנון בקר: הפלטים בקצב אחיד ld6 sel = 1 Throughput gen = חישוב 1 ב -2ns sel = 0
– © Dima Elenbogen :43 תכנון בקר: latencies מאוזנים בכל אפיק ld6 sel = 1 Latency = 6ns על פי האפיק הכבד ld1 sel = 0 ld1 sel = 0
– © Dima Elenbogen :43 תכנון בקר: האפיק הקל ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2
– © Dima Elenbogen :43 תכנון בקר: האפיק הקל ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2 A’ מוכנה לקבל נתון חדש כל 3ns
– © Dima Elenbogen :43 תכנון בקר: האפיק הקל (המשך) ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2 ld3 ld2 ld3
– © Dima Elenbogen :43 הבקר מוכן ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2 ld3 ld2 ld3
– © Dima Elenbogen :43 אימות הבקר ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2 ld3 ld2 ld3 כמובן עליכם לוודא ש : הקלטים נקלטים בקצב אחיד הפלטים מוּצאים באותו הקצב זמן חישוב זהה לכל קלט ( למרות שעל פי הדרישות הללו בנינו את מעכת )
– © Dima Elenbogen :43 אימות הבקר (המשך) ld6 sel = 1 ld1 sel = 0 ld1 sel = 0 ld2 ld3 ld2 ld3 ובנוסף עליכם לוודא ש : שום נתון או תוצאת בייניים לא הולך לאיבוד ( לא נדרס ) כל תוצאת בייניים אכן מספיקה להיחשב לפני עידכון רגיסטר היעד שלה. כלומר, לוודא שכאשר מעדכנים רגיסטר אזיי : הערך הקודם שלו מתקדם ( או כבר התקדם ) ליעד הבא ( לרבות אחרי חישוב ) אם הוא מקבל ערך מיחידה חישובית, אז היא כרגע סיימה את החישוב.
– © Dima Elenbogen :43 עבודה עצמית: פונקציות מורכבות כעת אתם מסוגלים לבנות 2 תתי-מערכות בסיסיות המחשבות פונקציות פשוטות A(x) ו-B(x) בהתאמה: אתם יכולים ליצור מערכת שתחשב פונקציה מורכבת ƒ(x) = B(A(x)). לשם עליכם לחשוב בגישה pipeline-ית ולשרשר את תתי-המערכות הבסיסיות B1B1 B2B2 B3B3 A B
– © Dima Elenbogen :43 עבודה עצמית: פונקציות מורכבות f(x) = B(A(x)) שירשור תתי-המערכות הבסיסיות: B1B1 B2B2 B3B3 A B האם נרשה אבטלה בחלק מהיחידות החישוביות? אם כן, מתי ואיפה? מהי הספיקה הגבוהה ביותר של המערכת המשורשרת? מה צריך להיות זמן מחזור על מנת שהספיקה הנ''ל תושג? כמה מצבים יהיו בבקר המנהל את המערכת המשורשרת?