הטכניון – מכון טכנולוגי לישראל הפקולטה למדעי המחשב תאריך הגשה19/12/2015 : הוראות הגשה :ההגשה בזוגות .הוסיפו שמות ,ת.ז ,.אי-מייל ,תא אליו יש להחזיר את התרגיל ואת תשובותיכם לתרגיל ,הדפיסו והגישו לתא הקורס בקומה .1עבור הגשות באיחור יש להגיש לתא של אנדריי בקומה . 2 מבנה מחשבים ספרתיים – תרגיל יבש 2 שאלה - 1זיכרון מטמון נתון מעבד עם שתי רמות זיכרון מטמון .עיקרון ההכלה לא מתקיים. :L1גודל שורה ,4 -way set associative , byte 64גודל , 16KBמדיניות כתיבה write back מדיניות , write allocateמדיניות פינוי . LRU : L2גודל שורה ,2 -way set associative , byte 64גודל , 64KBמדיניות כתיבה ,write back מדיניות ,write allocateמדיניות פינוי . LRU גודל הכתובת 32ביט. א .מהו מבנה הכתובת של המטמון הנ"ל? ב .מהו גודל ה( tag directory -הסיביות אשר צריך לשמור כדי לנהל את המטמון) עבור כל אחד מהמטמונים? מריצים את התוכנית הבאה על המעבד: הנחות: *המשתנים I,j,sוכן המצביע למערך שמורים ברגיסטרים. *המספרים בתוכנית הם בבסיס דצימלי. *המטמון ריק בתחילת התוכנית. *המערך arrמתחיל בכתובת ( H1440בסיס הקסדצימלי). *גודל משתנה מסוג INTEGERהוא 4בתים ג .לאיזה setב L1-ייכנס האיבר ה( 18 -בבסיס דצימלי) של המערך? ד .מהו ה hit rate-ב L1-עבור הלולאה הראשונה? ה .מהו ה hit rate -ב L1 -עבור הלולאה השנייה ? ו .ללא קשר לסעיפים הקודמים ,הציעו סדרת פניות לזיכרון כך שתתרחש בסופה פגיעה ב- L1והחטאה ב . L2 -הניחו כי בתחילת סדרת הגישות הנ"ל המטמונים ריקים .הסבירו את תשובתכם. שאלה –2חיזוי קפיצות נתונה תוכנית: MOV R4,#3 DEC R4 MOV R1,#5 … … DEC R1 BNE R1,R0,L1 לולאה של 5איטרציות. MOV R2,#3 DEC R2 לולאה של 3איטרציות. BNE R2,R0,L2 לולאה של 3 איטרציות. MOV R3,#2 … DEC R3 BNE R3,R0,L3 לולאה של 2איטרציות. BNE R4,R0,L4 0 4 L4 ….. 16 20 L1 24 28 32 B1: ….. 56 60 L2 64 ... 68 B2: ….. 84 88 L3 92 96 B3: ….. 132 B4: (המספרים בעמודה הראשונה הם כתובות של הוראות והם עשרוניים). שים לב :ההוראות הן ,alignedכלומר כתובת הוראה היא כפולה של .4 ההוראות שאינן מפורטות לא פונות לרגיסטרים R1,R2,R3,R4ולא מבצעות .Branchלהזכירכם ,ערך של R0תמיד .0אורך כתובת של הוראה הוא 4בתים. התוכנית רצה על מעבד דוגמת MIPSשנלמד בכיתה ,למעבד 5שלבים ( ,)IF,ID,EX,MEM,WBהוא עובד בשיטת in-orderופקודות branchמוכרעות בשלב .MEM (תזכורת :הכרעה ב MEMמשמע הפסד של 3מחזורי שעון בשגיאת חיזוי). במערכת קיים מנגנון חיזוי המשתמש ב.BTB- משתמשים במכונת חיזוי הבאה לכל אחד מה-Branch -ים: NT 00 SNT NT 10 WT 01 WNT Taken Taken Not Taken Initial NT 11 ST Taken Taken לפני ריצת התכנית BTBריק .אם הוראת Branchלא נמצאת ב ,BTB-מצב החיזוי מאותחל ל ,Weakly Not Taken-ומעודכן לאחר מכן בהתאם לתוצאת אותה הוראת .branch מבנה כניסת :BTB מצב חיזוי כתובת קפיצה Tag ישנן 2קונפיגורציות של :BTB direct mapped :BTB1עם 8כניסות fully associative :BTB2עם 3כניסות. שדה ה( set-אם יש כזה) מתחיל בסיבית ( 2השלישית מימין) והוא רצוף. מדיניות הפינוי היא ( MRUהשורה שהיתה ” “most recently usedמתפנה אם צריך להחליף שורה). א) עבור כל BTBהסבר כמה החטאות ייווצרו במהלך האיטרציה הראשונה של B4וכמה במהלך השנייה והשלישית( – .שים לב שיש 3אטרציות ל .)B4 בנוסף תארו את תוכן BTB1ו – BTB2בסוף כל לולאה. ב) נתון ש BTB2-מספק את ערך החיזוי שלו בשלב ה: ID-אם מתברר שהחיזוי הוא takenאזי עושים flush לפקודה שנכנסה .ואילו BTB1בשלב ה .IF-הנח שהקוד והנתונים נמצאים כולם במטמון וכן אין context switchאו קריאות לפונקציות במהלך הריצה .איזה BTBייתן את הביצועים הטובים ביותר (מבחינת זמן ביצוע)?
© Copyright 2024