מבנה מחשבים ספרתיים

מסמכים קשורים
מבנה מחשבים ספרתיים

הטכניון מכון טכנולוגי לישראל הפקולטה למדעי המחשב הוראות הגשה: ההגשה בזוגות. הוסיפו שמות, ת.ז., אי-מייל, תא אליו יש להחזיר את התרגיל ואת תשובותיכם לתרג

Disclaimer מסמך זה הינו סיכום און-ליין של השיעור ולא עבר עריכה כלל. מצאת טעות? שלח/י לי מייל ואתקן: 07/05/2009 קורס: מערכות ה

שבוע 4 סינטקס של HACK ASSEMBLY ניתן להשתמש בשלושה אוגרים בלבד:,A,D,M כולם בעלי 16 ביטים. M אינו אוגר ישיר- הוא מסמן את האוגר של ה RAM שאנחנו מצביעים ע

PowerPoint Presentation

פתרון מוצע לבחינת מה"ט ב_שפת c מועד ב אביב תשע"ט, אפריל 2019 מחברת: גב' זהבה לביא, מכללת אורט רחובות שאלה מספר 1 מוגדרת מחרוזת המורכבת מהספרות 0 עד 9.

Microsoft Word - moed_A_sol.doc

מהוא לתכנות ב- JAVA מעבדה 3

אוניברסיטת בן גוריון בנגב תאריך המבחן: שם המרצה: מר אלכסנדר שקולניק, בשפת JAVA מבחן ב: מבוא לתכנות מס' הקורס : מיועד לתלמידי : הנד

מצגת של PowerPoint

מבוא לאסמבלי

Homework Dry 3

מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אי

שעור 6

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

מבוא למדעי המחשב

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

áñéñ åîéîã (ñéåí)

סדנת תכנות ב C/C++

מיכפל

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

Slide 1

PowerPoint Presentation

מבנים בדידים וקומבינטוריקה סמסטר אביב תשע"ט מספרי רמזי תרגול 11 הגדרה: (t R = R(s, הוא המספר הטבעי הקטן ביותר כך שבכל צביעה של צלעות הגרף וכחול(, קיים

מבוא לתכנות ב- JAVA תרגול 7

בקרים מתוכנתים – PLC

Microsoft Word - tips and tricks - wave 5.doc

מערכות הפעלה קורס מס'

מבוא למדעי המחשב

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

המשימה תרגול מס' 5: קלט-פלט במערכות הפעלה שונות יש סימונים שונים עבור ירידת שורה :)newline( ב- UNIX/Linux )Line Feed( \n ב- Windows )Carriage Return +

Microsoft Word B

PRESENTATION NAME

תוכן העניינים

מטלת מנחה (ממ"ן) 11 הקורס: חשבון אינפיניטסימלי II חומר הלימוד למטלה: יחידות 2,1 4 מספר השאלות: 7 משקל המטלה: נקודות סמסטר: ב 2007 מו

שאלהIgal : מערכים דו מימדיים רקורסיה:

הגנה - שקפי תרגול

התגוננות בפני כוחות האופל

Slide 1

הגשה תוך שבוע בשעת התרגול

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

בחן במערכות הפעלה

מצגת של PowerPoint

Microsoft PowerPoint - T-10.ppt [Compatibility Mode]

תרגול מס' 1

יוםראשון, 02 ליולי 2014 סמסטר סוף מבחן )236703( עצמים מונחה תכנות - א' מועד 2014, אביב סמסטר קמחי יחיאל ד"ר מרצה: מסינג מיטל עבדאלקאדר, כרם גלעד, ערן

חלק א' – הקדמה

מבוא למדעי המחשב

פייתון

חוקי הדרך בים מבוא על מנת שנדע את חוקי הדרך בים עלינו להיות בקיאים בתקנות הבינלאומיות המגדירות את חוקי התעבורה בים. כלי שייט בים מסמנים את עצמם בסימני

יום עיון עורכי בקשות להיתרים

תרגול 3 - מערכים

מבוא למדעי המחשב

טבלת חישוב ציוני איכות מנהלי פרויקטים.pdf

Slide 1

Microsoft Word - Cosmic CAL Part 2 Hebrew Final

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י

תנו לשמש לעבוד בשבילכם

Slide 1

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

Slide 1

Microsoft PowerPoint - lec10.ppt

תוכן העניינים

Microsoft PowerPoint - Lecture1

תכנון אלגוריתמים עבודת בית 4: תכנון אלגוריתמים תאריך הגשה: 02: , בצהריים,תא מספר 66 בקומת כניסה של בניין 003 מתרגל אחראי: אורי 0

פרויקט "רמזור" של קרן אביטל בס "ד מערך שיעור בנושא: "פונקציה" טליה קיפניס והדסה ערמי, מאולפנת צביה פרטים מקדימים על מערך השיעור: השיעור מהווה מבוא לנו

חשבון אינפיניטסימלי מתקדם 1

PowerPoint Presentation

Microsoft Word - Summary

שאלהIgal : מערכים דו מימדיים רקורסיה:

מקביליות

<4D F736F F D20F9E9F2E5F820F1E9EEF0E920E7ECE5F7E4>

הטכניון – מכון טכנולוגי לישראל

YLA Crochet Along פרויקט לסרוג יחד YLA חלק 6 בחלק 6 של לסרוג יחד זה נהפוך את שני העיגולים האחרונים לריבועים ונחבר את ארבעת הריבועים יחד לריבוע אחד גדו

Intel Paging & Page Table Exploitation on Windows מאת יובל עטיה הקדמה בשנת 1985, המעבד i386 של Intel יצא לעולם, והיה המעבד הראשון של Intel שתמך בפקודו

Slide 1

מרצים יקרים, אתר המכללה מאפשר למרצי המכללה להזין את פרטיהם וקורות חייהם. זאת בדומה לאתרים מקבילים של מוסדות אקדמיים בארץ ובעולם. עמודי המרצים נועדו לא

אוניברסיטת בן גוריון בנגב תאריך המבחן: שקולניק אלכסנדר שם המרצה: מר בשפת JAVA מבוא לתכנות מבחן ב: מס' הקורס : הנדסת תעשיה וניהול מ

הטכניון מכון טכנולוגי לישראל אלגוריתמים 1 )443432( סמסטר חורף הפקולטה למדעי המחשב תרגול 9 מסלולים קלים ביותר תרגיל APSP - 1 עד כה דנו באלגור

Microsoft PowerPoint - meli-iso.ppt

Slide 1

Titre du document en police Sodexo

מצגת מבנה וטבלה מתוקן [לקריאה בלבד]

פתרון מבחן במיקרו בקרים תשעו

Microsoft Word - Environment-Feb2009.doc

Slide 1

תוכן העניינים: פרק צמצומים ומימושים של פונקציות בוליאניות... 2 צמצומים של פונקציות באמצעות מפת קרנו:...2 שאלות:... 2 תשובות סופיות:... 4 צמצום

תכנות מונחה עצמים א' – תש"ע

תרגיל 5-1

תרגיל 9 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. תהי L השפה בעלת סימן פונקצייה דו מקומי G, סימן פונקציה חד מקומי T, סימן יחס תלת מקומי.c, d וקבועים L

Slide 1

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

מערכות הפעלה, סמסטר ב' אריאל סטולרמן סיכומים לקורס מערכות הפעלה פרופ' יחזקאל ישורון, סמסטר ב' 2009 פרק 1: מבוא: 1.1 הגנה על חומרה: חשיבו

בחן במערכות הפעלה

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

Microsoft Word - tik latalmid-final

תמליל:

זיכרון מטמון 2 מבנה מחשבים ספרתיים 234267 1

כיצד נבחר את גודל המטמון? מצד אחד, נרצה מטמון גדול כמה שיותר כדי לקבל שיפור ב-.hit rate מצד שני, כאשר המטמון גדול מדי, הוא צורך אנרגיה רבה וזמן הגישה עלול להיות ארוך באופן משמעותי. כיצד נוכל לשלב בין הצורך למטמון גדול למטמון זריז? 2

הפתרון: הירארכיית זיכרון המעבד מכיל מספר רמות של מטמון. המטמון ברמה הראשונה )L1( הוא מטמון קטן ומהיר. זמן הגישה ל- L1 הוא מחזורי שעון בודדים. הרמות הגבוהות מכילות מטמונים גדולים יותר ובעלי זמן גישה איטי יותר. L1 Cache L2 Cache L3 Cache ulti level Cache ain emory 3

כאשר ניגש למידע בזיכרון, הירארכיית זיכרון ניגש תחילה ל- L1. במקרה של פגיעה, משתמשים בנתון שב- L1. בהחטאה, נעביר את בקשת הגישה לרמה מעל.) L2 ( עבור כל החטאה ניגש לרמה גבוהה יותר עד שבסופו של דבר ניגש לזיכרון עצמו. L1 Cache L2 Cache L3 Cache ulti level Cache ain emory 4

שאלה 1 :cache במחשב C123 הותקנה היררכית זיכרון המכילה 3 רמות של L1 Cache L2 Cache L3 Cache ulti level Cache ain emory 5 ה- CPU יזם קריאה מכתובת m. בקשה זאת גררה שרשרת ארועים בשלושת המטמונים. אילו מהאירועים הבאים אפשריים, אילו לא ולמה? כל האירועים מתוארים לפי סדר: קודם ב- L1 אח"כ L2 ובסוף ב- L3. =iss =it ומשבצת ריקה מסמלת שלא קרה דבר )כלומר לא בוצעה פניה למטמון הזה).

אפשרי? נימוק L3 L2 L1 לא לא אחרי אחרי ברמה מסויימת ברמה מסויימת לא פונים לרמה שמתחתיה. לא פונים לרמה שמתחתיה. hit hit כן המידע נמצא ברמה השנייה לא הפנייה לרמות עפ"י סדר. חייבים לעבור דרך L1. כן המידע נמצא ברמה הראשונה כן המידע נמצא רק בזכרון הראשי אחרי לא ברמה מסויימת לא פונים לרמה שמתחתיה. hit לא כן אחרי hit לא פונים לרמות שמתחת. המידע נמצא ברמה השלישית L2 ו- L1 לא חסרה פניה לרמה L3 אחרי ההחטאות ברמות לא הפנייה לרמות עפ"י סדר. חייבים לעבור דרך L2. 6

אפשרי? נימוק L3 L2 L1 לא לא אחרי אחרי ברמה מסויימת ברמה מסויימת לא פונים לרמה שמתחתיה. לא פונים לרמה שמתחתיה. hit hit כן המידע נמצא ברמה השנייה לא הפנייה לרמות עפ"י סדר. חייבים לעבור דרך L1. כן המידע נמצא ברמה הראשונה כן המידע נמצא רק בזכרון הראשי אחרי לא ברמה מסויימת לא פונים לרמה שמתחתיה. hit לא כן אחרי hit לא פונים לרמות שמתחת. המידע נמצא ברמה השלישית L2 ו- L1 לא חסרה פניה לרמה L3 אחרי ההחטאות ברמות לא הפנייה לרמות עפ"י סדר. חייבים לעבור דרך L2. 7

בחינה מחדש: מדיניות עדכון למטמון Write back בזמן כתיבה נרשום רק לרמה הדרושה. העדכון לשאר הרמות יבוצע כאשר הנתון ייזרק מהמטמון. L1 כתיבה D D פינוי מקום לנתון אחר L2 D D הציור עבור מטמון associative(,fully 2 מילים בבלוק( בעל שתי רמות שפועלות במדיניות כתיבה.write back Write through בזמן כתיבה נרשום את הערך החדש של הנתון גם לרמה שמתחתיו. כאשר הנתון ייזרק מהמטמון, אין צורך לעדכן את הרמה שמתחתיו. L1 פינוי מקום כתיבה לנתון אחר L2 הציור עבור מטמון associative(,fully 2 מילים בבלוק( בעל שתי רמות שפועלות במדיניות כתיבה.write through 8

Write iss בחינה מחדש -מדיניות כתיבה : Write allocate במקרה של החטאה מורידים לרמה שמתחת בקשה להבאת הבלוק. טרם הבאת הבלוק מהרמה התחתונה מפנים את המקום המתאים )מבחינת set ומדיניות החלפה(. L1 בקשת כתיבה, החטאה ופינוי מקום I I הבאת הבלוק וכתיבה D L2 No Write allocate במקרה של החטאה מורידים לרמה שמתחת את בקשת הכתיבה עצמה. אין הבאה של הבלוק לרמה הנדרשת. בקשת כתיבה מרמה 1 לרמה 2, פגיעה בקשת כתיבה לרמה 1, החטאה L1 L2 D הציור עבור מטמון associative(,fully 2 מילים בבלוק( בעל שתי רמות שפועלות במדיניות כתיבה write back 9

עקרון ההכלה במטמון ההיררכי שעובד לפי עקרון ההכלה כל רמה של הזיכרון ההיררכי מכילה את כל הנתונים שנמצאים ברמה שמעליה. הדבר נועד ע"מ לפשט את הפרוטוקולים של התקשורת בין רמה לרמה. העיקרון לא מתקיים בכל המעבדים. L1 Cache L2 Cache L3 Cache ulti level Cache ain emory 10

עקרון ההכלה כדי לוודא שעיקרון ההכלה מתקיים,כל פינוי של שורת מטמון מרמה נמוכה )L2 או ) L3 יגרור פינוי של אותה השורה גם מהמרמות הגבוהות יותר. L1 Cache L2 Cache L3 Cache ulti level Cache ain emory 11

שאלה 2 נתונה מערכת פנטיום עם L2 cache כך שעיקרון ההכלה מתקיים. בכל אחד מהמקרים הבאים סמן האם L2 מועיל או לא, ונמק. 1. שתי רמות המטמון באותו גודל. 2. זמן הגישה לשתי רמות המטמון זהה, L2 גדול מ- L1. 3. זמן הגישה ל- L2 ולזיכרון הראשי זהה. 1. לא מועיל. אין תועלת ב- L2, כי לפי עקרון ההכלה התוכן של L1 מוכל ב- L2. ולכן כל מה שנמצא ב- L2 נמצא גם ב- L1 )ולכן לא נצטרך לקרוא או לכתוב כלום מ- L2( וכל מה שלא נמצא ב- L1 גם לא נמצא ב- L2, )ולכן לא נצטרך לחפש כלום ב- L2( 2. מועיל. יש תועלת ב- L2 כי הוא גדול יותר. היות וזמן הגישה זהה, נעדיף לקרוא ישר מ- L2 ולכן דווקא L1 אינו מועיל לביצועי המערכת. 3. לא מועיל. L2 מיותר כי ניתן לגשת לזיכרון הראשי באותה מהירות וללא חשש להחטאה. 12

עיקרון ההכלה נתון מטמון בעל 3 רמות מטמון השומר על עיקרון ההכלה עם העברת בקשת קריאת תוכן כתובת m נוצרה במטמונים שרשרת אירועים במהלכה נדרש מטמון L3 לפנות אחת מהשורות שלו אל הזכרון הראשי הנח שלכל המטמונים אותו גודל שורה וכולם מאורגנים ב-.K-way כמו כן הנח שכל המטמונים היו מלאים בעת בקשת הקריאה. מה היה המצב בהיררכיית המטמונים שהוביל לצורך בהחלפת שורה ב- L3? תשובה: אם יש צורך להחליף שורה ב- L3 מכאן שהיו 3 החטאות בכל שלוש הרמות של המטמון. 13

עיקרון ההכלה Snoop - snoop the caches above when an entry is victimized in order to keep inclusion במקרה שרמת מטמון מסויימת רוצה למחוק נתון מסוים היא "מסתכלת" על הדרגה שמעל ובודקת האם הנתון נמצא גם שם, כן יש למחוק אותו קודם כדי לשמור על עקרון ההכלה. ואם נתאר )באופן איכותי( את שהתרחש מרגע גילוי הצורך בהחלפת השורה ב- L3 ועד התייצבות תוכן היררכיית הזיכרון ומסירת תוכן כתובת m למעבד. כל המטמונים עובדים לפי מדיניות,write-back מדיניות LRU ושומרים על עקרון ההכלה. 14

read miss read miss read miss L1 מזהה L2 מזהה L3 מזהה Snoops:.1.2.3.4 עיקרון ההכלה ומבקש את הנתון ממטמון L2 ומבקש את הנתון ממטמון L3 ובוחר שורה להחלפה מבצע snoop אל L2 כדי לבדוק אם עותק של שורה זאת נמצא אצלו אם יש עותק של השורה המוחלפת ב-,L2 L2 מבצע snoop אל L1 אם יש עותק של השורה המוחלפת ב- L1: אם העותק במצב (modified), L1 כותב אותו אל L2. בכל מקרה, L1 מסמן את השורה הנ"ל כפנוייה )מצב I(. Invalid אם יש עותק של השורה המוחלפת ב- :L2 אם העותק במצב (modified), L2 כותב אותו אל L3. בכל מקרה, L2 מסמן את השורה הנ"ל כפנוייה )מצב I(. Invalid אם השורה המתפנה מ- L3 היא במצב L3, כותב אותה לזכרון הראשי ומסמן את השורה הזאת כפנויה )מצב I(..7 15

עיקרון ההכלה L3 קורא את השורה הנדרשת )החדשה( מהזכרון הראשי ומעדכן.LRU במידה ויש מקום פנוי ב- L2 ב- set הרלוונטי, L2 קורא את השורה הנדרשת מ- L3 אל אחת השורות הפנויות ב- set המתאים ומעדכן.LRU במידה ואין מקום פנוי, L2 בוחר שורה לפנות, מבצע & snoop לרמה L2 כתיבה של המידע מרמה L1 )כולל L1 ל- Invalidate במקרה של,)dirty ורושם את המידע לרמה L3 במידה והשורה הנ"ל מסומנת אצלו כ-.dirty לאחר שפונה מקום מתאים, הנתון נכתב ל- L2, ומעודכן.LRU במידה ויש מקום מתאים ב- L1 L1, קורא את השורה הנדרשת מ- L2 אל אחת השורות הפנויות ב- set המתאים ומעדכן.LRU במידה ואין מקום מתאים, מפונה אחת השורות )נכתבת לרמה L2 במידה ובמצב,)dirty מעתיק את הנתון מרמה L2 ומעדכן.LRU.8.9.10 16

L1 L2 L3 : read miss Rd Request : read miss Rd Request : read miss Rd Req Snoop Request Select victim: P Snoop P IT P dirty? no Yes: Wr Req Snoop P P dirty? no P IT Yes: Wr Req P dirty no? Yes: Wr Req Invalidate P Invalidate P Invalidate P Update P Free entry yes Fill Fill Data Snoop X victim: X X dirty? Fill Data Update LRU Snoop + Fill &Update LRU Fill &Update LRU 17

שאלה 3 נתון מטמון בעל 3 רמות השומר על עיקרון ההכלה. מטמונים L2 ו- L3 פועלים בעת write miss במדיניות no write allocate )כלומר, במקרה של החטאה בקשת הכתיבה מועברת לרמה הבאה(. בשלב מסויים בצע המעבד כתיבה לכתובת n. בקשה זו גררה שרשרת ארועים בהיררכיית הזכרון אשר נפתחה ב- write miss במטמון L1 ובמהלכה )של שרשרת הארועים( פונתה שורה ממטמון L3. שאלה: מהי מדיניות הmiss - write של מטמון L1? תשובה: מדיניות write miss של L1 היא,write allocate אחרת לא היה צורך לקרוא שורות למטמון ולפנות שורה מ- L3. )הוכחה על דרך השלילה( שאלה: האם יתכן שיתרחש במעבד אירוע מסוג L2? write miss אם כן באילו סיטואציות? תשובה: לא. עקב עקרון ההכלה לא יתכן write miss באחת הרמות התחתונות בלי שיהיה write miss ב- L1. כל write miss ב- L1 שהוא write allocate גורר בקשת קריאה )כלומר write מכיוון שאנחנו שומרים על עקרון ההכלה, לא יתכן אל L2, L1 - מ( line fill.l2 ב- miss בגלל ש L1 במדיניות write-allocate וע"ס עקרון ההכלה אין משמעות לעובדה ש-.write miss מכיוון שלא יתכן בהם no-write-allocate במדיניות L3 ו- L2 18

שאלה 4 נתון מעבד בעל שתי רמות מטמון. גודל הכתובת 32 ביט. גודל שורת מטמון עבור 2 המטמונים הוא. bytes 32 מדיניות הכתיבה עבור שני המטמונים היא Write back מדיניות הפינוי עבור שני המטמונים היא. LRU עקרון ההכלה מתקיים. מטמון L1 הוא 2-way set associative וגודלו.1KB מטמון L2 הוא 2-way set associative וגודלו. 4KB 19

שאלה 4 Int arr[512]; Int S=0; For (int i=0; i<2; i++) { for (int j=0; j<512; j++) s+=arr[j]; } מריצים את התוכנית הבאה: הנחות: *המשתנים S,i,j והמצביע arr שמורים ברגיסטרים. *גודל משתנה מסוג Integer הוא 4 בתים. *המטמון ריק בתחילת התוכנית. *המערך מיושר לזיכרון. 20

שאלה 4 Int arr[512]; Int S=0; For (int i=0; i<2; i++) { for (int j=0; j<512; j++) s+=arr[j]; } א.מהו אחוז הפגיעה עבור? L1 L1 : block size 32 bytes,1kb data size, LRU replacement policy אנו עוברים על המערך פעמיים:. באיטרציה הראשונה של הלולאה החיצונית, נפספס במטמון רק כאשר נקרא בלוק חדש. מכיוון שגודל שורת מטמון הוא Byte 32 וגודל משתנה integer הוא 4 בתים, נכנסים 8 איברים בבלוק. אנו מפספסים רק בגישה 1 על כל 8 גישות ולכן ה- R הוא 7/8 21

שאלה 4 Int arr[512]; Int S=0; For (int i=0; i<2; i++) { for (int j=0; j<512; j++) s+=arr[j]; } א.מהו אחוז הפגיעה עבור? L1 L1 : block size 32 bytes,1kb data size, LRU replacement policy בתחילת האיטרציה השנייה, המטמון יכיל רק את החצי השני של המערך )איברים ) 256-511 בגלל שמדיניות הפינוי היא. LRU כך שיהיו לנו החטאות עבור כל גישה ראשונה הבלוקים שמכילים את התאים. 0-255 בנוסף, כאשר ניגש לתא 256 בפעם השנייה יכיל המטמון רק את איברים 0-255 ולכן נחטיא כל פעם שניגש לבלוק חדש גם עבור חלק המעבר השני. לכן ה- R באיטרציה השנייה ועבור התוכנית כולה ה- R הוא. 7/8 22

שאלה 4 Int arr[512]; Int S=0; For (int i=0; i<2; i++) { for (int j=0; j<512; j++) s+=arr[j]; } א.מהו אחוז הפגיעה עבור? L2 L1 : block size 32 bytes,1kb data size, LRU replacement policy. אחוז הפגיעה עבור L2 מוגדר כאחוז הבקשות הגישה לזיכרון ב- L2 בהן מתרחשת פגיעה. כלומר, נתייחס רק לבקשות בהן ישנה החטאה ב- L1. באיטרציה הראשונה, ניגש למטמון רק במעבר בין בלוקים. מכיוון ש- L2 ריק בתחילת הריצה, תמיד נחטיא. לכן עבור הגישה הראשונה ה- R הוא 0 L2 גדול מספיק כדי להכיל את המערך כולו, לכן באיטרציה השנייה תהיה פגיעה בכל גישה ל-. L2 לכן סה"כ ה- R של L2 הוא ½. 23

שאלה 4 ג. מוסיפים רמת מטמון נוספת, L3 בגודל של 8B זיכרון. זמן הגישה ל- L3 הוא כמחצית מזמן הגישה לזיכרון. כיצד הוספת L3 תשפיע על ביצועי התוכנית )בהנחה שהוא ריק בתחילת ריצתה(? נשים לב שהחטאות היחידות שיש בקוד עבור L2 הן החטאות מסוג.compulsory יהיו לנו רק החטאות L3 כך שב-,compulsory לכן, לא קיבלנו שיפור בביצועים. לעומת זאת, החטאות ב- L2 הן יקרות יותר, מכיוון שעכשיו נבצע גישה נוספת ל- L3 )שבהכרח תהיה החטאה בתוכנית הנ"ל( לפני שניגש לזיכרון עצמו. לכן, הדבר יפגע בביצועי התוכנית. 24

שאלה 5 להלן תוכנית לחישוב ממוצע ציונים: sum = 0; for (i = 0; i < NU_STUDENTS; i++) { sum += grades[i]; } average = sum / NU_STUDENTS; כל איבר במערך grades הוא בגודל 4 בתים. גודל שורה ב- cache L1 היא 16 בתים. הזמן הדרוש להבאת שורה מהזיכרון הוא 32. cycle נדרש לתכנן מערכת Prefetch בחומרה שתשפר את ה- rate hit ב- L1 יש להתייחס הן לאלגוריתם המערכת המוצעת והן לתזמון המערכת. 25

שאלה 5 תשובה: מערכת Prefetch יעילה צריכה להוציא בקשה להבאת שורת Cache בתזמון כזה שכאשר תגיע הבקשה )Demand( לאותה שורה היא כבר תהיה ב.Cache במקרה שלנו דרושים 32 מחזורי שעון כדי להביא שורה ל Cache ולכן צריך לתזמן את המערכת ה- Prefetch כך שנייצר בקשה לכתובת המתאימה 32 מחזורי שעון לפני שהתכנית מגיעה לבקש את הכתובת. נשתמש באלגוריתם.Stride המערך, בכל גישה לשורה n כיוון שבכל שורה ישנם 4 איברים של יש ליצר בקשת Preftech לשורה 8+n. כך נבטיח הגעת הנתונים ל Cache ידי התוכנית. בתזמון מתאים לפני שהם ידרשו על 26