You are on page 1of 21

‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬

‫מבנה מחשבים (‪)046267‬‬


‫סמסטר אביב תשפ"א‬
‫מבחן מסכם מועד א'‬
‫‪ 7‬יולי ‪2021‬‬

‫פרופ' פרדי גבאי‬ ‫מרצה‪:‬‬


‫בן פרח‪ ,‬לינה מדלג'‪.‬‬ ‫מתרגלים‪:‬‬

‫משך הבחינה‪ :‬שלוש שעות‪.‬‬ ‫▪‬


‫יש לכתוב את התשובות בטופס הבחינה בלבד ובמקום המיועד לתשובה‪.‬‬ ‫▪‬
‫במידה וחסר מקום לכתיבת התשובה‪ ,‬ניתן לכתוב גם בצידו השני של הדף עם הפניה מתאימה‬ ‫▪‬
‫מהמקום המיועד לתשובה‪.‬‬
‫כִּ תבו בקיצור ככל האפשר‪ .‬יש לנמק כל תשובה‪.‬‬ ‫▪‬
‫אסור כל חומר עזר פרט למחשבון מדעי (לא גרפי)‪.‬‬ ‫▪‬
‫אין להשתמש בעיפרון‪ ,‬ואין להשתמש בעט אדום‪.‬‬ ‫▪‬
‫המבחן כולל ‪ 4‬שאלות‪ .‬יש לענות על כולן‪.‬‬ ‫▪‬
‫ִּבדקו שבטופס שבידכם יש ‪ 21‬עמודים כולל עמוד זה‪.‬‬ ‫▪‬
‫לנוחיותכם‪ ,‬בעמוד ‪ 21‬ישנו נספח עם רשימת קיצורים ומונחים‪.‬‬ ‫▪‬
‫במידה ואינכם יודעים את התשובה‪ ,‬ניתן לסמן "לא יודע‪/‬ת" על גבי הסעיף ולקבל ‪ 20%‬מניקוד‬ ‫▪‬
‫השאלה‪.‬‬

‫‪/ 25‬‬ ‫שאלה ‪1‬‬


‫‪/ 25‬‬ ‫שאלה ‪2‬‬
‫‪/ 25‬‬ ‫שאלה ‪3‬‬
‫‪/ 25‬‬ ‫שאלה ‪4‬‬
‫‪/100‬‬ ‫ציון סופי‬

‫‪1‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫שאלה ‪ 25( Branch Predictor – 1‬נק')‬

‫נתון מעבד עם צינור בעל ‪ N‬שלבים‪ .‬ה‪ Branch Resolution-‬נמצא בשלב מספר ‪.R‬‬
‫המעבד עושה שימוש בחזאי קפיצות מסוג ‪ 2-Level BTB‬בעל היסטוריה לוקאלית ומכונות מצבים‬
‫פרטיות (לוקאליות) עם הנתונים הבאים‪:‬‬
‫‪ .1‬החזאי מאורגן כטבלה של ‪ K-way-set-associative‬עם ‪.S sets‬‬
‫‪ .2‬רגיסטרי ההיסטוריה הלוקאליים (פרטיים) ‪ BHR‬באורך ‪ H‬ביטים כל אחד‪.‬‬
‫‪ .3‬אוסף מכונות מצבים לוקאליות מסוג ‪ 2-bit saturated counter‬המאותחלות ב‪( WT-‬מצב ‪.)10‬‬
‫‪ .4‬פקודות קפיצה תוקצנה ל‪ BTB -‬לאחר שההכרעה שלהן התבררה כ‪ .TAKEN -‬במקרה של‬
‫‪ BTB MISS‬החיזוי הוא ‪.NOT-TAKEN‬‬

‫הנחות‪:‬‬
‫ניתן להתעלם מ ‪ data hazards‬או ‪. structural hazards‬‬ ‫•‬
‫‪.CPIideal=1‬‬ ‫•‬
‫טבלאות החזאי ריקות לפני ביצוע התוכניות‪.‬‬ ‫•‬
‫אורך פקודה הינו ‪ 4‬בתים וכל הפקודות מיושרות בזיכרון‪.‬‬ ‫•‬

‫א‪ 5( .‬נקודות) עבור פקודת קפיצה מסוימת מתקבלת סדרת ההכרעות המופיעה בטבלה הנתונה‪ .‬מלאו‬
‫את הטבלה עבור כל הכרעה על פי הסדרה הנתונה‪.‬‬

‫עבור סעיף זה בלבד נתון כי‪:‬‬


‫• ‪.H=4‬‬
‫• פקודת הקפיצה נמצאת ב‪ BTB-‬לפני ובמהלך כל סדרת ההכרעות‪.‬‬
‫• לפני סדרת ההכרעות הנתונה להלן‪ ,‬ה‪ BHR-‬של הפקודה מכיל רק הכרעות ‪.TAKEN‬‬

‫מספר‬ ‫ההכרעה‬ ‫‪ BHR‬לפני‬ ‫מצב המכונה‬ ‫חיזוי נכון ‪/‬‬


‫ההכרעה‬ ‫ההכרעה‬ ‫המתאימה לפני‬ ‫לא נכון‬
‫ההכרעה‬

‫‪1‬‬ ‫‪NT‬‬
‫‪2‬‬ ‫‪NT‬‬
‫‪3‬‬ ‫‪T‬‬
‫‪4‬‬ ‫‪T‬‬
‫‪5‬‬ ‫‪NT‬‬
‫‪6‬‬ ‫‪NT‬‬
‫‪7‬‬ ‫‪T‬‬
‫‪8‬‬ ‫‪NT‬‬
‫‪9‬‬ ‫‪NT‬‬
‫‪10‬‬ ‫‪T‬‬

‫‪2‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫ב‪ 2( .‬נקודות) בסעיף זה נתונה תוכנית עם פילוג הפקודות הדינמי‪:‬‬
‫‪TYPE‬‬ ‫‪%‬‬
‫‪ALU‬‬ ‫‪35‬‬
‫‪MEM‬‬ ‫‪45‬‬
‫‪Br Taken‬‬ ‫‪10‬‬
‫‪Br Not Taken‬‬ ‫‪10‬‬

‫נתון כי שיעור ההחטאה הממוצע של החזאי הוא ‪ .P‬חשבו את ה‪ CPI -‬של המעבד‪.‬‬
‫(הניחו שה‪ instruction count-‬גדול מאוד ביחס ל‪.)N -‬‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫החל מסעיף זה נתון כי מוסיפים למעבד מנגנון לחיזוי לולאות כמתואר להלן‪:‬‬
‫לכל כניסה ב‪ BTB-‬מוסיפים שדה שיסומן כ‪.loop_taken -‬‬ ‫•‬
‫לאחר הכרעת פקודת הקפיצה וכאשר היא מוכנסת אל ה‪ ,BTB-‬אם כתובת היעד קטנה מה‪PC-‬‬ ‫•‬
‫של פקודת הקפיצה‪ ,‬הפקודה תוכנס עם ‪ ,loop_taken =1‬אחרת ‪.loop_taken=0‬‬
‫בשלב בו מתבצע החיזוי‪ ,‬עבור פקודות עם ‪ ,loop_taken=1‬חיזוי הפקודה יהיה תמיד ‪.Taken‬‬ ‫•‬
‫בכל מקרה עדכון ה‪ BHR -‬ומכונות המצבים ממשיך להתבצע כרגיל‪ .‬בנוסף‪ ,‬אין שינוי במנגנון‬ ‫•‬
‫חיזוי כתובת יעד הקפיצה )‪.(target address‬‬
‫נתון קטע הקוד הבא עבור כל יתר סעיפי השאלה‪:‬‬

‫‪ADDRESS‬‬ ‫‪INSTRUCTION‬‬
‫‪0x1000‬‬ ‫‪LABEL1: BEQ R3, R0, LABEL2 //always TAKEN‬‬
‫‪..‬‬ ‫‪..‬‬
‫‪0x1010‬‬ ‫‪LABEL2: ADDI R1, R1, #1‬‬
‫‪..‬‬ ‫‪..‬‬
‫‪0x1020‬‬ ‫‪ADD R2, R0, R0‬‬
‫‪0x1024‬‬ ‫‪BNEQ R1, R4, LABEL2‬‬
‫‪0x1028‬‬ ‫‪ADDI R2, R2, #1‬‬
‫‪0X102C‬‬ ‫‪ADDI R1, R0, R0‬‬
‫‪..‬‬ ‫‪..‬‬
‫‪0X103C‬‬ ‫‪BNEQ R2, R4, LABEL1‬‬
‫הנחות‪:‬‬
‫‪ R1, R3‬מאותחלים ל‪ R4 .0 -‬מאותחל ל‪ R0 .10-‬מכיל תמיד ‪.0‬‬ ‫•‬
‫בקטע הקוד במסומן ב‪ .. -‬אין פקודות קפיצה ואין שימוש ברגיסטרים ‪.R1, R2, R3, R4‬‬ ‫•‬

‫‪3‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫ג‪ 4( .‬נקודות) עבור ‪.S=64, K=2‬‬
‫לכל אחת מפקודות הקפיצה חשבו את התקורה הכוללת (במחזורי שעון)‪ .‬פרטו את אופן החישוב‪.‬‬
‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫ד‪ 4( .‬נקודות) עבור ‪ S=64, K=2‬הוצע להשוות טבלה זו לכל אחת מהחלופות הנתונות להלן‪ .‬תארו‬

‫בצורה איכותית כיצד שינוי כזה ישפיע (גדל‪ ,‬קטן‪ ,‬לא משתנה) על ‪ Miss Prediction Rate‬ועל ה‪BTB -‬‬

‫‪ Hit Rate‬של התוכנית הנתונה?‬

‫חלופה ‪ 4-way-set-associative )1‬עם ‪16 sets‬‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫חלופה ‪ direct mapped )2‬עם ‪128 sets‬‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫‪4‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫החל מסעיף הבא הניחו כי‪.S=64, K=4 :‬‬

‫ה‪ 5( .‬נקודות) מהו ‪ H‬המינימלי אשר לאחר שהחזאי מגיע למצב יציב יוביל לריצה עם מינימום חיזויים‬

‫שגויים?‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫ו‪ 5( .‬נקודות) בסעיף זה מציעים חלופה של שימוש בהיסטוריה גלובלית באורך ‪ 3‬ביטים ומכונות מצבים‬

‫גלובליות‪ .‬אין שינוי ביתר נתוני ה‪ BTB -‬ומנגנון חיזוי הלולאות‪.‬‬

‫חשבו את ‪ Miss Prediction Rate‬לכלל פקודות הקפיצה בתכנית‪.‬‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫‪5‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫שאלה ‪ Cache – 2‬וזיכרון וירטואלי (‪ 25‬נק')‬

‫נתון מעבד בעל היררכית הזיכרון הבאה‪:‬‬

‫‪Cache‬‬ ‫•‬
‫גודל זיכרון המטמון הוא ‪.16 KBytes‬‬ ‫‪o‬‬
‫גודל הבלוק הוא ‪.64 Bytes‬‬ ‫‪o‬‬
‫‪.4-way set associative‬‬ ‫‪o‬‬
‫מדיניות פנוי ‪.LRU‬‬ ‫‪o‬‬
‫‪Write-allocate‬‬ ‫‪o‬‬
‫‪. physically-indexed physically-tagged‬‬ ‫‪o‬‬
‫זמן גישה ‪ 𝑇1‬במחזורי שעון‪.‬‬ ‫‪o‬‬

‫‪TLB‬‬ ‫•‬
‫‪.Fully associative‬‬ ‫‪o‬‬
‫מדיניות פנוי ‪.LRU‬‬ ‫‪o‬‬
‫גישה ל‪ TLB-‬נעשית במקביל ל‪.cache-‬‬ ‫‪o‬‬
‫זמן גישה ‪ 𝑇2‬במחזורי שעון‪.‬‬ ‫‪o‬‬

‫‪Main Memory‬‬ ‫•‬


‫‪.2-level hierarchical page table o‬‬
‫‪ o‬גודל כל כניסה בטבלאות התרגום הינה ‪ 4‬בתים‪.‬‬
‫‪ o‬גודל כל טבלה כגודל דף‪.‬‬
‫‪ o‬מדיניות פנוי ‪.FIFO‬‬
‫‪ o‬זמן גישה במחזורי שעון לכל יחידת מידע הינו ‪.𝑇3‬‬
‫נתונים‪:‬‬
‫מערכת הזיכרון פועלת עפ"י עקרון ההכלה (‪.)Inclusive‬‬ ‫•‬
‫כתובת וירטאולית בגודל ‪ 32‬סיביות‪.‬‬ ‫•‬
‫כתובת פיזית בגודל ‪ 32‬סיביות‪.‬‬ ‫•‬
‫נתייחס אך ורק לגישות הקשורות לנתונים ונתעלם מגישות לקוד‪.‬‬ ‫•‬
‫גודל דף )‪ (page‬שווה לגודל מסגרת )‪.(frame‬‬ ‫•‬
‫ה‪ page walker-‬ניגש ישירות לזיכרון‪.‬‬ ‫•‬
‫כל הזיכרונות עובדים עם אותו שעון‪.‬‬ ‫•‬
‫מבנה הכתובות הוירטואלית הוא‪:‬‬ ‫•‬

‫‪31‬‬ ‫‪0‬‬
‫‪DIR‬‬ ‫‪TABLE‬‬ ‫‪Page offset‬‬

‫‪6‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫א‪ 3( .‬נק׳) מהם גדלי השדות ‪ DIR, TABLE‬ו‪ Page offset-‬בכתובת הוירטאלית?‬

‫_______‪Page offset:‬‬ ‫_______‪TABLE:‬‬ ‫________‪DIR:‬‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫נתון קטע הקוד הבא‪:‬‬


‫‪Int8 A[1048576]; //sizeof(int8)=1 bytes, 1048576 = 2^20‬‬
‫‪Int B[1048576]; //sizeof(int)=4 bytes, 1048576 = 2^20‬‬

‫;‪Int sum = 0‬‬


‫{) ‪for( int i = 0 ; i < 1048576; i++‬‬
‫)‪if (A[i] > 0‬‬
‫;]‪sum = sum + B[i‬‬
‫}‬

‫כל המשתנים‪ ,‬פרט למערכים ‪ A‬ו‪ ,B-‬ממופים לרגיסטרים (פרט לגישות למערכים ‪ A‬ו‪ B-‬אין גישות נוספות‬
‫של נתונים לזיכרון)‪.‬‬

‫ב‪ 2( .‬נק׳) הסבירו כיצד תכונת הלוקאליות באה לידי ביטוי בתכנית הנתונה? התייחסו בתשובתכם לסוגי‬
‫הלוקאליות השונים ‪.‬‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫‪7‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫ג‪ 5( .‬נק׳) מהו מספר הטבלאות המקסימאלי הדרוש כדי לנהל את התרגום למערכים ‪ A‬ו‪?B-‬‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫ד‪ .‬עבור סעיף זה הניחו‪:‬‬


‫המערכים ‪ A‬ו‪ B-‬ממופים לדפים שונים ומשתמשים בטבלאות דפים שונות‪.‬‬ ‫•‬
‫המערכים ‪ A‬ו‪ B-‬מיושרים לדפים בזיכרון‪.‬‬ ‫•‬
‫המעבד יכול לבצע גישה יחידה לזיכרון בכל רגע נתון‪ .‬עד שגישה לזיכרון לא הסתיימה לא ניתן‬ ‫•‬
‫להתחיל גישה חדשה לזיכרון‪.‬‬
‫‪1 , 𝑖 𝑚𝑜𝑑 𝑥 = 0‬‬
‫{ = ]𝑖[𝐴 עבור ‪ x‬מסוים‪ ,‬הניחו כי ערכו של ‪ x‬הוא חזקה חיובית כלשהי של ‪.2‬‬ ‫•‬
‫𝑒𝑠𝑙𝑒 ‪0 ,‬‬
‫(כלומר‪ ,‬כל ‪ x‬תאים‪ ,‬המערך ‪ A‬מקבל את הערך ‪ 1‬וכל שאר התאים הם ‪.)0‬‬

‫דוגמא‪ :‬עבור ‪ ,x=4‬המערך ‪ A‬יהיה בעל הערכים הבאים‪:‬‬


‫‪i‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪2‬‬ ‫‪3‬‬ ‫‪4‬‬ ‫‪5‬‬ ‫‪6‬‬ ‫‪7‬‬ ‫‪8‬‬ ‫‪9‬‬ ‫…‬
‫]‪A[i‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫…‬

‫רשמו את תשובתכם כתלות בנתוני השאלה ו‪.x-‬‬

‫‪8‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫‪ 5( .1‬נק') מה הוא ה‪ cache miss rate-‬עבור הגישות למערך ‪ B‬בלבד?‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫‪ 5( .2‬נק') חשבו את זמן הגישה הממוצע לזיכרון עבור גישות למערך ‪.A‬‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫‪9‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫‪ 5( .3‬נק') חשבו את זמן הגישה הממוצע לזיכרון עבור גישות למערך ‪.B‬‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫______________________________________________________________________‬

‫‪10‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫שאלה ‪ 25( Instruction Level Parallelism - 3‬נק')‪:‬‬
‫נתונה התכנית באסמבלי דמוי ‪ MIPS‬הבאה‪:‬‬

‫‪1.‬‬ ‫)‪LW r2 0(r8‬‬


‫‪2.‬‬ ‫‪LOOP:‬‬ ‫)‪LW r2 0(r2‬‬
‫‪3.‬‬ ‫‪BEQ r2 r0 CASE0‬‬
‫‪4.‬‬ ‫‪ADDI r4 r4 1‬‬
‫‪5.‬‬ ‫‪JUMP NEXT‬‬
‫‪6.‬‬ ‫‪CASE0:‬‬ ‫‪ADDI r8 r8 4‬‬
‫‪7.‬‬ ‫)‪LW r2 0(r8‬‬
‫‪8.‬‬ ‫‪NEXT:‬‬ ‫‪SUBI r3 r3 1‬‬
‫‪9.‬‬ ‫‪BNE r3 r0 LOOP‬‬

‫ערכי אתחול הרגיסטרים נתונים להלן‪:‬‬


‫• ‪ r0‬הינו תמיד ‪0‬‬
‫• ‪ r8‬מאותחל עם ערך כלשהו‬
‫• ‪ r3‬מאותחל עם ערך ‪K‬‬
‫• ‪ r4‬מאותחל עם ערך ‪.0‬‬

‫א‪ 5( .‬נק') עבור ‪ K=1‬רשמו בטבלה הבאה עבור כל פקודה בתכנית את מספרי הפקודות שהיא‬
‫תלויה בהן בכל אחד מסוגי התלויות‪ .‬אם אין תלות מסוג מסוים‪ ,‬השאירו את המשבצת ריקה‪.‬‬

‫‪RAW‬‬ ‫‪WAR‬‬ ‫‪WAW‬‬


‫)‪1. LW r2 0(r8‬‬

‫)‪2. LW r2 0(r2‬‬

‫‪3. BEQ r2 r0 CASE0‬‬

‫‪4. ADDI r4 r4 1‬‬

‫‪5. JUMP NEXT‬‬

‫‪6. ADDI r8 r8 4‬‬

‫)‪7. LW r2 0(r8‬‬

‫‪8. SUBI r3 r3 1‬‬

‫‪9. BNE r3 r0 LOOP‬‬

‫‪11‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫ב‪ 8( .‬נק') נתון כי התכנית רצה על מעבד ‪ Super-scalar‬מסוג ‪ .OOO‬הניחו כי‪:‬‬
‫• רוחב ה‪ ISSUE ,DECODE ,FETCH-‬ו‪ COMMIT-‬הינם ‪4‬‬
‫• גודל ה‪ RS-‬לא מוגבל‬
‫• חזאי קפיצות מושלם‬
‫• מספר הרגיסטרים הפיזיים לא מוגבל‪ ,‬וה‪ RAT-‬מאפשר מיפוי לכולם‬
‫• מספר יחידות הביצוע בשלב ה‪ EX -‬הוא‪:‬‬
‫‪ 1 -‬יחידות ביצוע ל‪ : load/store -‬מבצעת פקודות גישה לזיכרון במחזור שעון‬
‫אחד‪ ,‬כולל חישוב הכתובת‪.‬‬
‫‪ 4 -‬יחידות ‪ : ALU‬מבצעת פעולות חיבור‪/‬חיסור‪/‬כפל‪/‬קפיצה במחזור שעון אחד‪.‬‬
‫• פקודה יכולה להתבצע ברגע שכל המידע עבורה מוכן ב‪.RS-‬‬
‫• מערכת הזיכרון מאפשרת עד גישה אחת בו זמנית בכל מחזור שעון‪ .‬בנוסף נתון שמערכת‬
‫הזיכרון הינה ‪ non-blocking‬כך שאם נשלחות פעולות גישה מסוימת לזיכרון בזמן נתון‪,‬‬
‫אז במחזור השעון הבא יחידת ה‪ load/store-‬יכולה לשלוח את הגישה הבאה לזיכרון‪.‬‬
‫• זמן גישה לזיכרון הנתונים הוא ‪ T‬מחזורי שעון בנוסף על ביצוע פקודת הגישה עצמה‪.‬‬
‫• קיים מנגנון ‪ Forwarding‬של ערכי רגיסטרים ישיר מסיום ביצוע של כל פקודה לכל פקודה‬
‫הממתינה ב‪.RS-‬‬
‫• פקודות המסיימות ביצוע עוברות ל‪ ROB -‬ומבצעות ‪ COMMIT‬על פי הכללים הנדרשים‬
‫לביצוע הנכון של התוכנית‪.‬‬
‫• גודל ה‪ ROB-‬אינו מוגבל‪.‬‬

‫עבור סעיף זה הניחו כי ‪ T=1 ,K=2‬והכרעת הקפיצה בפקודה ‪ 3‬היא ‪ TAKEN‬ו‪NOT TAKEN-‬‬
‫לסירוגין (ההכרעה הראשונה היא ‪.)TAKEN‬‬

‫מלאו את הטבלה בעמוד הבא המתארת את ריצת התוכנית במעבד כאשר בכל שורה יש לציין‬
‫אילו פקודות נמצאות באיזה מחלקי המעבד המופיעים בכותרת באותו מחזור שעון המתאים‬
‫לשורה‪.‬‬
‫אנא ציינו את הפקודות באיטרציה השנייה של הלולאה במספר הפקודה עם גרש (')‪ .‬כלומר‪,‬‬
‫פקודה ‪ 7‬באיטרציה השנייה תסומן כ‪.'7-‬‬
‫הטור ‪ ROB@Done‬מתייחס לפקודות שסיימו ביצוע וממתינות ל‪ COMMIT-‬כמפורט לעיל‪.‬‬
‫פקודות שב‪ ROB-‬אך טרם סיימו ביצוע אמורות להופיע באחד מהטורים האחרים בטבלה‪.‬‬
‫*שימו‪-‬לב כי בטבלה עשויות להיות יותר שורות משנדרש לסיום הביצוע‪.‬‬

‫‪12‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫‪Clock‬‬ ‫‪EXE‬‬ ‫‪Done‬‬
‫‪IF‬‬ ‫‪ID‬‬ ‫‪RS‬‬ ‫‪COMMIT‬‬
‫‪Cycle #‬‬ ‫‪ALU‬‬ ‫‪LD/ST‬‬ ‫‪@ROB‬‬
‫‪1‬‬

‫‪2‬‬

‫‪3‬‬

‫‪4‬‬

‫‪5‬‬

‫‪6‬‬

‫‪7‬‬

‫‪8‬‬

‫‪9‬‬

‫‪10‬‬

‫‪11‬‬

‫‪12‬‬

‫‪13‬‬

‫‪14‬‬

‫‪15‬‬

‫‪16‬‬

‫‪17‬‬

‫‪18‬‬

‫‪13‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫ג‪ 4( .‬נק') עבור סעיף זה הניחו ‪ K‬גדול מאוד‪ T=1 ,‬והכרעת פקודה ‪ 3‬היא תמיד ‪,NOT TAKEN‬‬
‫מה ה‪ IPC-‬של המעבד הנתון עבור התכנית הנתונה? בטאו את תשובתכם בעזרת נתוני‬
‫השאלה‪.‬‬
‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫ד‪ 4( .‬נק') חיזרו על סעיף ג' כאשר הכרעת פקודה ‪ 3‬היא תמיד ‪.TAKEN‬‬
‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫‪14‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫ה‪ 4( .‬נק') עבור ‪ T>0‬ו‪ K-‬גדול מאוד‪ ,‬מה גודל ה‪ ROB-‬המינימאלי התומך בביצועים מיטביים‬
‫של המעבד עבור התכנית הנתונה? בטאו את תשובתכם בעזרת נתוני השאלה‪.‬‬
‫________________________________________________________________‬
‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫‪15‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫שאלה ‪ 25( Multithreading - 4‬נק')‬

‫נתון מעבד ‪ In Order‬מסוג )‪:Switch on Event (SoE‬‬


‫• למעבד יש ליבה יחידה‬
‫• למעבד ‪ 4‬שלבי צינור‪IF, ID, Ex/Mem, Wb :‬‬
‫• רוחב כל שלב בצינור הינו ‪1‬‬
‫• למעבד זיכרונות מטמון עם ‪hit rate = 100%‬‬
‫• חזאי קפיצות מושלם‬
‫• בשלב ה‪ Ex/Mem -‬נעשה הביצוע של פקודות‪ .‬עבור פקודות ‪ load/store‬מתבצעת הגישה‬
‫לזיכרון‪.‬‬
‫• המעבד תומך בכל ‪ forwarding‬אפשרי‪.‬‬
‫• ‪CPIideal =1‬‬
‫• המעבד מחובר לרשת תקשורת באמצעות בקר רשת כמתואר בציור להלן‪:‬‬

‫תור בקשות יוצאות ‪OutQ‬‬

‫מעבד ‪SoE‬‬ ‫בקר רשת‬


‫תור בקשות חוזרות ‪InQ‬‬

‫‪ o‬כשהמעבד נדרש לקרוא מידע מרשת התקשורת‪ ,‬המעבד כותב את פרטי הבקשה לתור‬
‫בקשות יוצאות )‪ (OutQ‬של בקר הרשת‪.‬‬
‫‪ o‬בקר הרשת מבצע את המשימות בתור על פי הסדר‪.‬‬
‫‪ o‬לאחר סיום הטיפול בבקשה על ידי הבקר‪ ,‬המידע הנקרא מרשת התקשורת נכתב על‬
‫ידי הבקר לתור בקשות חוזרות )‪.(InQ‬‬
‫‪ o‬שני התורים לעיל ממופים למרחב הזיכרון של מעבד ה‪ ,SoE -‬כך שכתיבה וקריאה‬
‫מהתורים נעשית על ידי פקודות ‪ store‬ו‪ load -‬בהתאמה‪.‬‬
‫‪ o‬הטיפול בבקשות על ידי בקר הרשת נעשה בצורה מצונרת (כוללת גם את זמני הקריאה‬
‫והכתיבה לתורים)‪:‬‬
‫‪ o‬משך זמן טיפול בבקשת קריאה מרשת התקשורת הוא ‪ TN‬מחזורי שעון‪ .‬זמן זה‬
‫איננו כולל את זמן ההמתנה בתורים‪.‬‬
‫‪ o‬ה‪( throughput -‬תפוקה) הינה ‪( 1/Tr‬כל ‪ Tr‬מחזורי שעון מסתיים טיפול‬
‫בבקשה)‪.‬‬
‫נתון כי המעבד מבצע החלפה בין החוטים בכל פעם שהמעבד נדרש לקרוא מידע מרשת‬ ‫•‬
‫התקשורת באמצעות הבקר‪.‬‬
‫כל עוד לא נאמר אחרת הניחו שזמני החלפת החוטים וכן זמן ריקון ומילוי הצינור הם אפסיים‪.‬‬ ‫•‬
‫לאחר סיום הטיפול בבקשה על ידי הבקר המעבד יוכל להחזיר את החוט לריצה מהמקום בו‬ ‫•‬
‫הופסק‪.‬‬

‫‪16‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫על המעבד מריצים את החוט הנתון להלן‪:‬‬

‫‪L1:‬‬ ‫‪LW‬‬ ‫)‪r1, A(r11‬‬ ‫]‪// Read request from Mem[r11+A‬‬


‫‪SW‬‬ ‫‪r1, OutQ(r12) // Write request into OutQ‬‬
‫‪------------------------------------------‬‬
‫‪Thread Switch‬‬ ‫החלפת חוטים ‪-‬‬
‫‪------------------------------------------‬‬
‫‪LD‬‬ ‫)‪r3, InQ(r13‬‬ ‫‪// Read returned data from InQ‬‬
‫‪SW‬‬ ‫)‪r3, B(r14‬‬ ‫]‪// Write data into Mem[B+r14‬‬
‫‪Addi r11, r11, 4‬‬ ‫‪// r11= r11+4‬‬
‫‪Addi r12, r12, 4‬‬ ‫‪// r12= r12+4‬‬
‫‪Addi r13, r13, 4‬‬ ‫‪// r13= r13+4‬‬
‫‪Addi r14, r14, 4‬‬ ‫‪// r14= r14+4‬‬
‫‪Addi r4, r4, 1‬‬ ‫‪// r4=r4+1‬‬
‫‪Bneq r4, r5, L1‬‬ ‫‪// if r4!=N go to L1‬‬

‫הניחו‪:‬‬
‫ערכיהם ההתחלתיים של הרגיסטרים ‪ r11, r12, r13, r14‬מאותחלים לפני הקריאה לחוטים‪.‬‬ ‫•‬
‫‪ r4‬מאותחל ל‪ ,0-‬ו‪ r5 -‬מאותחל לערך קבוע ‪.N‬‬
‫קיים מספר אינסופי של חוטים שהתכנה נדרשת להריץ מהחוט הנתון לעיל‪ .‬כל חוט אינו תלוי‬ ‫•‬
‫בחוט אחר‪.‬‬
‫כל חוט עובד על מערכים שונים בזיכרון‪.‬‬ ‫•‬

‫א‪ 7( .‬נק') חשבו עבור חוט יחיד מה יהיה זמן הביצוע במחזורי שעון של קטע הקוד הנתון לעיל‪ .‬בטאו‬
‫תשובתכם באמצעות ‪ N‬ופרמטרים הנתונים בשאלה‪.‬‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫‪17‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫ב‪ 6( .‬נק') עבור ‪ N=1‬מה מספר החוטים המינימלי שיביא לביצועים מעבד מיטביים? מה יהיה ה‪?CPIMT -‬‬
‫מה תהיה התפוקה הממוצעת של בקר הרשת? ‪ -‬נמק‪/‬י בקצרה עבור המקרים הבאים‪:‬‬

‫‪TE‬‬ ‫‪Tr‬‬ ‫תפוקת בקר הרשת‬ ‫‪CPIMT‬‬ ‫מספר חוטים מינימלי‬


‫‪10‬‬ ‫‪1‬‬
‫‪10‬‬ ‫‪2‬‬
‫‪10‬‬ ‫‪4‬‬

‫מספר חוטים מינימלי‪_________________________________________________ :‬‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫‪___________________________________________________________ CPIMT‬‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫תפוקת בקר הרשת‪__________________________________________________ :‬‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫‪18‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫ג‪ 6( .‬נק') חיזרו על סעיף ב׳ כאשר הפעם יש להביא לביצועים מיטביים של בקר הרשת‪.‬‬

‫‪TE‬‬ ‫‪Tr‬‬ ‫תפוקת בקר הרשת‬ ‫‪CPIMT‬‬ ‫מספר חוטים מינימלי‬


‫‪10‬‬ ‫‪1‬‬
‫‪10‬‬ ‫‪2‬‬
‫‪10‬‬ ‫‪4‬‬

‫מספר חוטים מינימלי‪________________________________________________ :‬‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫‪___________________________________________________________ CPIMT‬‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫תפוקת בקר הרשת‪__________________________________________________ :‬‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫‪19‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫ד‪ 6( .‬נק') חיזרט על סעיף ב׳ עבור ‪ N‬גדול מאוד‪.‬‬

‫‪TE‬‬ ‫‪Tr‬‬ ‫תפוקת בקר הרשת‬ ‫‪CPIMT‬‬ ‫מספר חוטים מינימלי‬


‫‪10‬‬ ‫‪1‬‬
‫‪10‬‬ ‫‪2‬‬
‫‪10‬‬ ‫‪4‬‬

‫מספר חוטים מינימלי‪_________________________________________________ :‬‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫‪___________________________________________________________ CPIMT‬‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫תפוקת בקר הרשת‪__________________________________________________ :‬‬

‫________________________________________________________________‬

‫________________________________________________________________‬
‫________________________________________________________________‬

‫________________________________________________________________‬

‫________________________________________________________________‬

‫‪20‬‬

‫אביב תשפ"א – מועד א'‬ ‫מבנה מחשבים (‪)046267‬‬ ‫הטכניון ‪ -‬מכון טכנולוגי לישראל‬
‫נספח – רשימת מונחים‬

ALU Arithmetic Logic Unit


CMP Chip Multi-Processor
CPI Cycles Per Instruction
FPU Floating Point Unit
IDQ Instruction Decode Queue
ILP Instruction Level Parallelism
IPC Instructions Per Cycle
LRU Least Recently Used
MIMD Multiple Instruction Multiple Data
MISD Multiple Instruction Single Data
MOB Memory Ordering Buffer
MRU Most Recently Used
MT Multi-Threading
OOOE Out Of Order Execution
PDP Page Directory Pointer
PMH Page Miss Handler
PML4 Page Map Level 4
PTE Page Table Entry
RAT Register Alias Table
RAW Read After Write
ROB Re-Order Buffer
RS Reservation Station
SIMD Single Instruction Multiple Data
SISD Single Instruction Single Data
SMT Simultaneous Multi-Threading
SOE Switch On Event
STLB Secondary TLB
TLB Translation Lookaside Buffer
WAR Write After Read
WAW Write After Write

21

'‫אביב תשפ"א – מועד א‬ )046267( ‫מבנה מחשבים‬ ‫ מכון טכנולוגי לישראל‬- ‫הטכניון‬

You might also like