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