הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב הוראות הגשה: ההגשה בזוגות. הוסיפו שמות, ת.ז., אי-מייל, תא אליו יש להחזיר את התרגיל ואת תשובותיכם לתרגיל, הדפיסו והגישו לתא הקורס בקומה. מבנה מחשבים ספרתיים תרגיל יבש 4( מעבד MIPS שאלה נקודות( נתייחס למעבד MIPS עם Forwarding, Hazard Detection Unit וחציית.RF יש להוסיף למעבד פקודה Loop Ri, Rj, Imm חדשה: המבצעת: Ri=Ri Imm; if (Ri!= ) then PC = PC + 4+ Rj הפקודה היא מטיפוס.IMMEDIATE קידוד הפקדה: אורך השדה [5:] [2:6] [25:2] [3:26] שדה Imm Rt Rs Opcode תפקיד השדה קבוע להפחתה ממשנה הלולאה (כפולה של 4( (Rj) מקור+יעד (Ri) Loop instruction א. פרט את החומרה הנוספת )רכיבים, קווי בקרה, קווי נתונים( הדרושה למימוש הפקודה על גבי השרטוט שבעמוד הבא. נסה להסתפק בשינויים קלים ככל האפשר. הקפד לא לפגוע בפונקציונליות של הפקודות הקיימות. הסבר את הפתרון בקצרה:
ב. תאר את שלבי הביצוע של הפקודה החדשה: EX MEM
PC 4 Address Add Instruction Instruction Memory IF/ID RegWrite Read reg Read reg 2 Write reg Write data [5-] [2-6] [5-] Read data Read data 2 Sign extend Shift left 2 RegDst x 2 A x 2 A ALU Src m ux + ALU Zero result Branch MemWrite Address Write Data PCSrc MemRead Read Data Data Memory MemtoReg m ux Instruction 6 32 Register File ID/EX EX/MEM MEM/ m ux m u m u m ux m ux
ד. תחת חומרת ה- bypass הסבר. שנלמדה בכיתה, האם יבוצע stall בין שתי פקודות Loop עוקבות? ה. כעת רוצים להוסיף למעבד פקודה אחרת: Loop Ri, (Rj), Imm המבצעת: Ri=Ri Imm if (Ri!= ) then PC = PC + 4+ Mem[Rj]; לאיזה שלב יש לדחות את עדכון ה- PC במקרה של taken branch לשנות את זמן המחזור )הנח כי אין חיזוי קפיצות(? הסבר., מבלי שיהיה צורך )i( בהנחה שללא taken branch למעבד יש,CPI=2 שאחת מכל 5 פקודות היא פקודת,branch ש- 6% מפקודות ה- branch הם,taken שעדכון ה- PC מבוצע באותו שלב עבור כל ה- branches taken ושמשתמשים בחיזוי,not taken מהו ה- CPI של המעבד? פרט את החישוב והסבר. )ii(
מוסיפים למעבד BTB בעל hit rate של 9%, הנותן חיזוי נכון ב- 8% מה- hits. הנח שמתוך % ה- branches שעבורם יש,BTB miss 3% הם.taken מהו ה- CPI של המעבד כעת? פרט את החישוב והסבר. )iii( שאלה 2 - שיקולים שונים בתכנון ה- cache )3 נקודות( את\אתה משמש כארכיטקט של בקר זיכרון מטמון Controller).(Cache הבקר משתמש בזיכרון Tag- Directory וזיכרון נתונים. עקב מגבלות שטח, גודל זיכרון ה- Tag-Directory חסום. מטרת שאלה זו להמליץ על ארגון מבנה ה- Cache )גודל אזור הנתונים, שיטת ארגון, מדיניות כתיבה,,)hit-ratio כך שיתן מכסימום ביצועים תוך שימוש בזיכרון TAG נתון. נתונים: מרחב כתובות : 32 ביט. אורך שורת מטמון : 32 בתים. מספר מכסימאלי )עקב מגבלות שטח( של ביטים בזיכרון : TAG 4 )דצימאלי( מדיניות פינוי )אם דרושה( : LRU הנחיות :
מס. כניסות ב- TAG-directory חייב להיות חזקה של 2. הנח שניתן לממש מנגנון LRU עבור 4-Way תוך שימוש ב 4 ביטים. א. אנו מעונינים ב-( ).Write-Back Cache הצע קונפיגורציה אפשרית )טובה ככל שתוכל( עבור : Direct Map 2-Way associative 4-Way associative כתוב נוסחה המבטאת את גודל זיכרון ה- TAG-directory כתלות במספר הביטים המוקצה לשדה ה-.set בטא נוסחה זו עבור שלושת צורות הארגון. מלא את הטבלא הבאה:
State LRU Total Directory / WT Total Data הערות מס ביטים ב- TAG מס ביטים ב- set ארגון Direct- Map 2-Way 4-Way איזה קונפיגורציה\יות עדיפה לדעתך )יכול להיות יותר מאחת( מבחינת hit ratio ומדוע?
ב. חזור על סעיף א' עבור מדיניות כתיבה (write through) WT וכן עבור מדיניות כתיבה, בסעיף זה הנח שמספר הביטים המכסימאלי הוא 37888 )דצימאלי(. מלא את הטבלה: State LRU Total Director y / WT Total Data הערות מס ביטים ב- TAG מס ביטים ב- set ארגון Direct-Map WT 2-Way WT 4-Way WT Direct-Map 2-Way 4-Way
איזה קונפיגורציה\יות עדיפה לדעתך )יכול להיות יותר מאחת( מבחינת hit ratio ומדוע? ג. בהנחה שבסעיף ב' היה חסר ביט בודד עבור כל כניסה ב Tag-directory עבור מימוש קונפיגורציה מסוימת, ובהנחה שניתן לשנות את גודל זיכרון הנתונים, הצע )והסבר( דרך אלטרנטיבית לממש קונפיגורציה זו תוך שמירה על : מספר כניסות ה directory מדיניות כתיבה עמידה במגבלות הזיכרון הפנימי
שאלה - 3 מדדים וחוק אמדל )3 נקודות( א. שינינו מעבד כלשהו באופן הבא: ההוראות שמטפלות Floating Point Divide ירוצו פי 2 יותר לאט ההוראות שמטפלות בחיבור\חיסור Floating Point ירוצו פי 3 יותר מהר פעולות גישה לזיכרון פי 2 יותר מהר פעולות חיבור/חיסור בשלמים פי.5 יותר לאט מבדיקה עבור תוכנית מבחן עולה ש: פעולות נקודה צפה תופסות 3% זמן מכלל תכנית המבחן. 2% מפעולות נקודה צפה הן חלוקה, והיתר חיבור\חיסור. פעולות זיכרון 25% פעולות חיבור/חיסור בשלמים 3% בכמה שיפרנו? האם השיפור כדאי? ב. נתונה מכונה CISC -ית, רוצים להוציא דגם משופר מבוסס RISC כך שהוראות מסובכות יפורקו )בפנים( למספר הוראת פשוטות כמו כן הצליחו במעבד החדש להשיג ביצוע הוראות חיבור\חיסור מאשר במעבד המקורי. מהרצת תוכנית מבחן התברר ש: הוראות חיבור\חיסור תופסות 6% מזמן ביצוע התכנית. מהירות פי 3 )במ"ש( זמן ביצוע הנותר: בחצי מזמן זה, קיבלנו האטה של 5%. בחצי השני אין שינוי לעומת זמן הביצוע המקורי. ב 4% פי כמה השתנה ה- CPI?
במידה וכל הגורמים האחרים בחישוב זמן ביצוע לא השתנו,האם קיבלנו שיפור או האטה בזמן ביצוע? ג.מהרצת תוכנית אחרת: מתברר כי מניין ההוראות בקוד הדינאמי גדל פי 3 תדר השעון לעומת זאת גדל פי 2 היחס בין הold CPI לnew CPI נשאר כמו בתוכנית המבחן מהו שיפור הביצועים, אם בכלל, עבור תוכנית המבחן הנתונה?