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

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

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

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

PowerPoint Presentation

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

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

מבוא לאסמבלי

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

Homework Dry 3

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

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

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

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

שעור 6

Slide 1

תרגול מס' 1

PowerPoint Presentation

מבחן סוף סמסטר מועד ב 28/10/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, גדי אלכסנדרוביץ הוראות: א. בטופס המבחן 6 עמודים (כולל דף זה) ו

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

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

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

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

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

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

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

Microsoft Word B

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

מספר נבחן / תשס"ג סמסטר א' מועד א' תאריך: שעה: 13:00 משך הבחינה: 2.5 שעות בחינה בקורס: מבחנים והערכה א' מרצה: ד"ר אבי אללוף חומר עזר

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

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

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

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

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

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

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

BIG DATA תיאור הקורס המונח Big Data הולך וצובר תאוצה בשנים האחרונות, הוא הופך למגמה רווחת בתעשייה. המשמעות הפרקטית של המונח Big Data הינה טכנולוגיות נ

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

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

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

תרגיל בית מספר 1#

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

פייתון

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

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

Microsoft PowerPoint - Lecture1

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

Slide 1

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

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

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

Microsoft Word - Ass1Bgu2019b_java docx

Slide 1

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

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

Microsoft Word - Document1

PowerPoint Presentation

מקביליות

PowerPoint Presentation

תרגול 1

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

Microsoft Word - Summary

PowerPoint Presentation

Slide 1

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

תכנון אלגוריתמים, אביב 1021, תרגול מס' 4 תכנון דינאמי תכנון דינאמי בתרגול זה נדון בבעיית הכפלת סדרת מטריצות (16.1.(CLR ראשית נראה דוגמא: דוגמא: תהינה

HTML - Hipper Text Makeup Language

מצגת של PowerPoint

Slide 1

SF4604MCNR Dolce Stil Novo תנור קומפקטי משולב מיקרוגל זכוכית שחורה EAN13: רכיבים בגימור נחושת פונקציות בישול 13 פונקציית ניקוי פירוליטי

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

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

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

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

מצגת של PowerPoint

התאחדות מגדלי בקר בישראל ISRAEL CATTLE BREEDER S ASSOCIATION 12 באוגוסט, 2018 דוח מנכ"ל ימי קרב ומתיחות בעוטף עזה מלחמת ההתשה הנערכת ברחבי הדרום כבר מ

Limit

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

ייבוא וייצוא של קבצי אקסל וטקסט

PowerPoint Presentation

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

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

שקופית 1

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

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

מיכפל

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

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

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

Microsoft PowerPoint - meli-iso.ppt

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

עמוד 1 מתוך 5 יוחאי אלדור, סטטיסטיקאי סטטיסטיקה תיאורית + לוחות שכיחות בדידים/רציפים בגדול מקצוע הסטטיסטיקה נחלק ל- 2 תחומים עיקריים- סטט

החינוך הגופני בבית הספר מה רצוי ? מהו מקומה ש המכללה?

Comp. Arch. Lecture 1

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

Microsoft Word - אלגברה מעורב 2.doc

תמליל:

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

הבעיה מהירות הגישה לזיכרון איטית ביחס לביצועי המעבד )עד פי (, ככל שהזיכרון גדול יותר הגישה אליו איטית יותר. ביצועי המעבד נפגעים משמעותית אם בכל קריאה מהזיכרון יש להמתין )ולהשבית את המעבד( מספר רב של מחזורי שעון. הפתרון החזקת עותק חלקי של הזכרון יהיה קצר בהרבה. "קרוב" למעבד כך שזמן הגישה אליו 2

למה הפתרון הזה טוב? מקומיות בזמן אם ניגשנו לאובייקט מסויים, סביר להניח שניגש אליו שוב בקרוב. אנו מבלים 9% מהזמן ב- % מהקוד בעקר עקב לולאות בהן קוראים אותה שורה מספר פעמים. משתנים מסוימים מעודכנים פעם אחר פעם. לדוגמא מיון. גם מקומיות במקום אם ניגשנו לאובייקט מסויים, סביר להניח שניגש לאובייקטים סמוכים אליו. קטעי קוד, סביר מאד שנצטרך גם את הפקודה הבאה ואילו שאחריה. נתונים אם קראנו )או כתבנו( ממקום אחד במערך סביר להניח שנקרא )או נכתוב( את סביבתו. תזכורת לחוק אמדל עדיף לשפר את מה שקורה רוב הזמן! 3

פגיעה )Hit( החטאה הנתון מופיע ברמת הזכרון. )iss( טרמינולוגיה הנתון לא מופיע ברמת הזיכרון ולכן צריך להביאו מרמה נמוכה יותר. יחס פגיעה rate( )hit אחוז הפגיעות מתוך סה"כ הגישות לזכרון. iss rate = hit rate בלוק הזכרון המרכזי מחולק לבלוקים של מספר בתים. בכל פעם שנצטרך להעתיק בית למטמון נעתיק את כל הבלוק בו הוא נמצא. 4

Fully associative Organization מספר זיהוי( ולמיקום המידע. נחלק את שדה כתובת המידע למספר הבלוק ( בתוך הבלוק.)offset( 3 Tag = Block# ו- תוכן הבלוק. 4 Line Offset 2. המטמון יהיה בנוי כטבלה של מספר הבלוק Tag Array Tag array Line כל בלוק בזכרון יכול להכנס לכל שורה במטמון. 5

Fully associative Organization 3 Address Fields 4 Tag = Block# Line Offset Tag Array Tag = = Line array = 3 Hit\iss data 6

Fully associative Organization Block Block 2 כל בלוק בזכרון יכול להתמפות לכל שורה במטמון. Block m Tag Array Tag array Line : : Block n יתרון: Rate Hit גבוה. חסרון: מימוש ההשוואה המקבילית קשה ויקר. 7

מדיניות פינוי במטמון יהיו הרבה פחות שורות מאשר בלוקים בזכרון הראשי כאשר יש צורך להביא בלוק נוסף למטמון יהיה צורך לזרוק את אחד הבלוקים הקודמים. יש מספר אפשרויות לבחור מי יהיה הבלוק שייזרק: LRU - least recently used. הבלוק שזמן רב ביותר לא השתמשנו בו )לקריאה או לכתיבה(. LR - least recently modified.2 הבלוק שזמן רב ביותר לא כתבנו אליו. Random.3 בחירה אקראית לחלוטין. 8

Direct apping Organization. נחלק את שדה כתובת המידע למיקום המידע בתוך הבלוק )offset( ואת מספר הבלוק נחלק למיקום במטמון )set( ולמספר זיהוי.() Block number 3 8 7 5 4 Tag Set Line Offset 2. המטמון יהיה בנוי כטבלה של מספר הבלוק ו- תוכן הבלוק. Tag Line Set# Tag Array Cache storage ההבדל ממבנה של fully associative cache הוא שהפעם לכל שורה במטמון יש מספר מזהה.set 9

Direct apping Organization 3. מציאת הנתון: א. נמצא את השורה המתאימה עפ"י ה- set כאינדקס במערך. ב. נשווה את ה- של הכתובת עם ה- של השורה במטמון אליה הצביע ה-.set במידה ויש התאמה הבלוק המבוקש נמצא במטמון. אחרת יש החטאה וצריך להביא את הבלוק. ג. במידה והנתון נמצא במטמון, ניגש ל- byte המתאים בשורה עפ"י שדה ה-.disp Block number 3 3 5 4 Tag Set Line Offset Tag Line Set# 2 9 =52 sets Tag Array 3 Cache storage

Direct apping Organization כל שורה בזכרון יכולה להמצא בשורה אחת במטמון. Cache Size Cache Size block (set = ) block 2 (set = ) block 4 (set = ) block 6 (set = ).... Set# שימו לב שאין צורך במדיניות פינוי! Cache Size block 4n (set = ) block 4n+2 (set = ) יתרון: קל למימוש וזול חסרון: miss rate גבוה שנובע משיטת המיפוי המאפשרת מיפוי של מספר כתובות )בעלות סיביות set זהות( לאותה שורה במטמון.

2 way set associative Organization. באופן זהה ל- direct mapping נחלק את שדה כתובת המידע למיקום המידע בתוך הבלוק )offset( ואת מספר הבלוק נחלק למיקום במטמון )set( ולמספר זיהוי.() Block number 3 6 5 4 Tag Set Line Offset 2. המטמון יהיה בנוי כשתי טבלאות של מספר הבלוק ו- תוכן הבלוק. WAY WAY Tag Line Tag Line Set# Tag Array Cache storage Tag Array Cache storage ההבדל ממבנה של כמו direct mapping,ways הוא שהפעם יש שני direct mapping כאשר הנתון יכול להמצא בכל אחד מהם. כל אחד בנוי 2

2 way set associative Organization 3. מציאת הנתון: א. נמצא את השורה המתאימה עפ"י ה- set כאינדקס במערך. ב. נשווה את ה- של הכתובת הדרושה עם ה- של השורה במטמון אליה הצביע ה- set בכל אחד מה-.ways במידה ויש התאמה הבלוק המבוקש נמצא במטמון. אחרת יש החטאה וצריך להביא את הבלוק. ג. במידה והנתון נמצא במטמון, ניגש ל- byte המתאים בשורה עפ"י שדה ה-.disp 3 6 5 4 Tag Set Line Offset Way Way Tag Tag Set# Set# = = UX Out Hit/iss 3

2 way set associative Organization Cache Size (set = ) 2 (set = ) כל שורה בזכרון יכולה להמצא בשורה אחת במטמון באחד משני ה-.ways ע"מ לממש LRU מספיק ביט אחד לכל.set Cache Size 4 (set = ) 6 (set = ).... Set# WAY WAY Set# Cache Size 4n (set = ) 4n+2 (set = ) יתרון / חסרון: השיטה של k-ways מהווה פשרה סבירה, אופטימלית בביצועים. 4

K way set associative Organization 4 בתים נניח מטמון בעל קיבולת של 8 בלוקים )DATA( כ"א ואסוציאטיביות משתנה Set# way set associative (direct mapping) Set# WAY 2 way set associative WAY 3 5 4 2 3 4 3 2 Tag Set Line Offset Tag Set Line Offset 5

K way set associative Organization (II) 4 way set associative Set# WAY WAY WAY 2 WAY 3 3 3 2 Tag Set Line Offset WAY WAY 8 way set associative... WAY 7 3 2 Tag Line Offset זהו בעצם fully associative mapping רק מצוייר לרוחב... 6

K way set associative Organization (III) data משתנה נניח מטמון בעל אסוציאטיביות של 4 ונפח WAY WAY WAY 2 WAY 3 בלוקים 4 3 2 Tag Line Offset 8 בלוקים Set# WAY WAY WAY 2 WAY 3 3 3 2 Tag Set Line Offset 7

K way set associative Organization (IV) 6 בלוקים Set# WAY WAY WAY 2 WAY 3 3 4 3 2 Tag Set Line Offset 32 בלוקים Set# WAY WAY WAY 2 WAY 3 3 5 4 2 Tag Set Line Offset 8

עדכון למטמון: Write Back נניח שיש צורך לעדכן נתון מסויים. במידה והנתון נמצא במטמון, כותבים את הערך החדש לבלוק המתאים במטמון. נותרת השאלה מתי נעדכן את הערך השמור בזיכרון הראשי. הדבר תלוי במדיניות הכתיבה. במדיניות WB,בזמן כתיבה נכתוב רק למטמון. העדכון לזיכרון יבוצע כאשר הנתון ייזרק מהמטמון. על מנת לממש מדיניות זאת לכל בלוק תשמר סיבית מיוחדת dirty שתהווה אינדיקציה האם הבלוק עודכן וטרם נכתב לרמת זכרון נמוכה יותר. כאשר נתבקש לפנות בלוק מסוים, נעדכן בלוק זה ברמת הזכרון הנמוכה יותר במידה וסיבית ה- dirty דולקת. בכל עדכון נצטרך לעדכן את כל הבלוק מכיוון שסיבית ה- ולא עבור byte מסויים. dirty מוחזקת עבור הבלוק כולו L כתיבה D D פינוי מקום לנתון אחר E D D הציור עבור מטמון associative(,fully 2 מילים בבלוק( בעל רמה אחת שפועלות במדיניות כתיבה.writeback 9

עדכון למטמון: Write Through מדיניות כתיבה נוספת היא מדיניות Write through בזמן כתיבה נכתוב את הערך החדש של הנתון גם למטמון וגם לזיכרון כאשר הנתון ייזרק מהמטמון, אין צורך לעדכן את הזיכרון. L פינוי מקום כתיבה לנתון אחר E הציור עבור מטמון associative(,fully 2 בתים בבלוק( בעל רמה אחת שפועל במדיניות כתיבה.write through שימו לב! בשיטת write through אין צורך בסיבית dirty )למה?( סיבית סטטוס נוספת שנמצאת עבור כל בלוק במטמון )בד"כ ללא קשר למדיניות( היא סיבית.Valid בלוק שנמצא במצב )Invalid( I הוא בלוק שבו המידע שנמצא בשורת ה- data אינו משקף את המידע שנמצא בבלוק בעל מתאים ברמות נמוכות יותר. 2

כתיבה למטמון Allocate: Write נניח שיש צורך לעדכן נתון מסויים שלא נמצא במטמון כתיבה. ישנן שתי אפשרויות עיקריות לטיפול במקרה זה:, מצב זה נקראת החטאת set Write allocate במקרה של החטאה שולחים לזיכרון בקשה להבאת הבלוק. טרם הבאת הבלוק מהרמה התחתונה מפנים את המקום המתאים ומדיניות החלפה(. )מבחינת L בקשת כתיבה, החטאה ופינוי מקום I I הבאת הבלוק וכתיבה D E הציור עבור מטמון associative(,fully 2 בתים בבלוק( ומדיניות write miss של.Write allocate בעל רמה אחת שפועל במדיניות כתיבה writeback 2

כתיבה למטמון: No Write Allocate מדיניות נוספת למצב של החטאת כתיבה היא No Write allocate במקרה של החטאה מורידים לזיכרון את בקשת הכתיבה עצמה. אין הבאה של הבלוק לרמה הנדרשת. L L2 בקשת כתיבה מרמה לרמה 2, פגיעה בקשת כתיבה לרמה, החטאה הציור עבור מטמון associative(,fully 2 בתים בבלוק( בעל שתי רמות שפועלות במדיניות כתיבה write through ומדיניות write miss של No Write allocate ברמה הראשונה. 22

סוגי החטאות Compulsory הבלוק לא היה מעולם בשימוש עד עכשיו, בהכרח הוא לא יימצא במטמו miss) (cold fully הבלוק כבר היה בשימוש אך היות והמטמון אינו Conflict associative בלוק אחר תפס את מקומו. - LRU policy and mapping affects conflict misses Capacity הבלוק כבר היה בשימוש אך היות ומאז נקראו יותר בלוקים ממה שהמטמון היה יכול להכיל, בלוק אחר תפס את מקומו. גם אם המטמון היה fully-associative הייתה נוצרת כאן החטאה. - Associativity can t help 23

דוגמא נתון מטמון 2-way set associative במדיניות פינוי. LRU הכתובת מחולקת באופן הבא, Tag Set offset 29 5 4 2 למטמון הנתון נשלחה סדרת הכתובות הבאה )גישה לבתים(: Addresses: 5 7 4 36 8 6 4 2 36 2 68 5 7 בהנחה שמדיניות הפינוי היא LRU והמטמון מלא ב- data של בלוקים שאינם מופיעים בסדרה דלעיל מצא: כמה החטאות יווצרו? מה מכיל המטמון בתום הסדרה )קרי אילו בלוקים בכל?)set כדי לפתור את השאלה נצטרך לחשב לאיזה set במטמון נכניס את הבלוק המבוקש מהזכרון הראשי. את שדה ה- set ניתן לחשב לפי Set = floor(address / line length) mod (lines per way) הסבר: חלוקת הכתובת ב- 4 )אורך השורה( תוריד את שדה ה-,offset וביצוע mod8 יתן את שלושת סיביות ה- LSB של מספר הבלוק שהן בעצם ה-.set 24

Way /LRU Hit/ miss set כתובת נימוק / עפ"י הנתון השורה לא נמצאת 5 / בפקודה הקודמת הבאנו שורה שמכילה גם את כתובת 7 )וגם את 4 ו- 6( H 7 2 / עפ"י הנתון השורה לא נמצאת 3 / הנתון הובא ב- H 4 4 / הנתון לא נמצא. היות וכבר הובא נתון בעל (set= ב- (, =.way 36 5 / עפ"י הנתון השורה לא נמצאת 2 8 6 בפעם האחרונה בה קבלנו = set השורה הובאה ל- way ולכן עפ"י LRU צריך לפנות את.way / 3 7 אמנם השורה המכילה את כתובת 6 הובאה כבר ב- )2( אבל ב- )7( החלפנו אותה בשורה חדשה ולכן החטאה. בפעם האחרונה בה קבלנו = set השורה הובאה ל- way ולכן עפ"י LRU צריך לפנות את.way / 6 8 / ב- )8( שוב הבאנו את השורה של 4-7 H 4 9 / עפ"י הנתון השורה לא נמצאת 3 2 בפעם האחרונה בה קבלנו = set השורה הובאה ל- way ולכן עפ"י LRU צריך לפנות את.way / 36 / הנתון כבר הובא ב- )(. H 3 2 2 בפעם האחרונה בה קבלנו = set השורה הובאה ל- way ולכן עפ"י LRU צריך לפנות את.way / 2 68 3 אמנם השורה המכילה את כתובת 5 הובאה שוב ב- )8( אבל ב- )3( החלפנו אותה בשורה חדשה ולכן החטאה. בפעם האחרונה בה קבלנו = set השורה הובאה ל- way ולכן עפ"י LRU צריך לפנות את.way / 5 4 / ב- )4( שוב הבאנו את השורה של 4-7 H 7 5

Way /LRU Hit/ miss set כתובת נימוק / עפ"י הנתון השורה לא נמצאת 5 / בפקודה הקודמת הבאנו שורה שמכילה גם את כתובת 7 )וגם את 4 ו- 6( H 7 2 / עפ"י הנתון השורה לא נמצאת 3 / הנתון הובא ב- H 4 4 / הנתון לא נמצא. היות וכבר הובא נתון בעל (set= ב- (, =.way 36 5 / עפ"י הנתון השורה לא נמצאת 2 8 6 בפעם האחרונה בה קבלנו = set השורה הובאה ל- way ולכן עפ"י LRU צריך לפנות את.way / 3 7 אמנם השורה המכילה את כתובת 6 הובאה כבר ב- )2( אבל ב- )7( החלפנו אותה בשורה חדשה ולכן החטאה. בפעם האחרונה בה קבלנו = set השורה הובאה ל- way ולכן עפ"י LRU צריך לפנות את.way / 6 8 / ב- )8( שוב הבאנו את השורה של 4-7 H 4 9 / עפ"י הנתון השורה לא נמצאת 3 2 בפעם האחרונה בה קבלנו = set השורה הובאה ל- way ולכן עפ"י LRU צריך לפנות את.way / 36 / הנתון כבר הובא ב- )(. H 3 2 2 בפעם האחרונה בה קבלנו = set השורה הובאה ל- way ולכן עפ"י LRU צריך לפנות את.way / 2 68 3 אמנם השורה המכילה את כתובת 5 הובאה שוב ב- )8( אבל ב- )3( החלפנו אותה בשורה חדשה ולכן החטאה. בפעם האחרונה בה קבלנו = set השורה הובאה ל- way ולכן עפ"י LRU צריך לפנות את.way / 5 4 / ב- )4( שוב הבאנו את השורה של 4-7 H 7 5

int array[24]; שאלה לפניך קטע הקוד הבא, המשמש לאתחול מערך: for ( int i= ; i<24 ; i++ ) array[i] = ; הנחות:. המשתנה i והמצביע array מאוחסנים ברגיסטרים. 2. משתנה מסוג int תופס 4 בתים בזיכרון,הוא aligned )מיושר( בזיכרון. המערך מיושר אף הוא יחסית לשורת מטמון )מתחיל בכתובת שהיא כפולה של ) 6 3. למערכת זיכרון מטמון נפרד לקוד, לנתונים וכן TLB 4. גודל מטמון הנתונים KB )עבור )data והוא מאורגן בשיטת 4, way-set-associative גודל כל בלוק 6 בתים, מדיניות כתיבה,write through מדיניות write-allocate ומדיניות פינוי.random 5. ניתן להניח כי לא מתבצעת החלפת תהליכים במהלך ריצת התוכנית. 6. גודל כתובת 32 ביט. - I, array in register - int is 4 bytes (aligned) - icache: - dcache: KB 4 way set associative 6B block - write through write allocate - Random - 32 Bit address 27

שאלה : size Cache directory א. כמה סיביות בסה"כ מכיל ה- directory cache של מטמון הנתונים? cache size 2 # blocks 2 4 block size 2 6 # blocks 2 4 # sets 2 sets 2 # ways 2 6 blocks WAY WAY 3 Tag Line Tag Line Tag Array Cache storage Tag Array Cache storage - 6 byte blocks : 4 bits, 2 4 sets : 4 bits = 32 8 = 24 bits ה- cache directory מכיל את 24 סיביות ה- וסיבית valid )אין סיבית modified כי המדיניות היא write-through ואין סיבית LRU כי מדיניות הפינוי היא.)Random מכיוון שמדובר ב- 4 way cache כשבכל way יש,sets 6 גודל ה- cache directory הוא: Cache Directory Size = ( 24 + ) * 4 * 6 = 6 Valid ways sets 28

int array[24]; for ( int i= ; i<24 ; i++ ) array[i] = ; שאלה misses: how many - 6 sets / 4 ways = KB ב. נתון כי בתחילת הרצת קטע הקוד מטמון הנתונים ריק. מהו מספר ה- cache misses המקסימאלי שאירעו במטמון הנתונים במהלך ריצת קטע הקוד? כל int תופס בזיכרון 4 בתים, לכן יש צורך לעבור על = 24*4 496 בתים באופן רציף. מספר ה- misses יהיה כמספר הבלוקים שתופס המערך במטמון. לכן ה- miss rate עבור הקוד הזה יהיה..25 2 array size 2 8 2 blocks 256 misses 4 block size 2 29

שאלה: how many misses ג. כיצד הייתה משתנה תשובתך לסעיף ב' אם משתנים מסוג integer לא היו מיושרים) ) aligned בזיכרון? אם המערך לא היה מיושר, אז הוא היה מוסט קדימה או אחורה במספר בתים, ואז מספר הבלוקים שהמערך תופס וההחטאות הוא 257=256+. 3

)6( שאלה ב' ד. איזה עיקרון )בהקשר של זיכרון מטמון( בא לידי ביטוי בקטע הקוד?. עיקרון אי הוודאות. 2. עיקרון הלוקאליות במקום. 3. עיקרון הלוקאליות בזמן. 4. עיקרון הלוקאליות במקום ועיקרון הלוקאליות בזמן. 5. אף אחת מתשובות 4- עיקרון הלוקאליות במקום בא לידי ביטוי בקטע קוד זה, כיוון שהמערך יושב בזיכרון בצורה רציפה ולכן בכל פעם שניגשנו לבלוק מסוים חסכנו החטאה ל- int -ים באותו בלוק. עיקרון הלוקאליות בזמן לא בא לידי ביטוי מכיוון שניגשנו לכל נתון פעם אחת בלבד. What about i when it comes from the memory? - locality in time for i 3

שאלה ה.מהו מספר הבלוקים המקסימאלי שיועברו מהזיכרון הראשי למטמון הנתונים )עבור הרצה יחידה של קטע הקוד( אם נתון כעת, כי משתנה i יושב בכתובת פיזית x בזיכרון )ולא ברגיסטר( וכן מדיניות? no write allocate - Number of blocks copied from memory to cache? בביצוע לולאת for אנו ניגשים לכל אחד מהמשתנים במערך לצורך כתיבה בלבד. המשתנה היחידי שנקרא הוא i )בבדיקת תנאי היציאה(. המטמון עובד במדיניות NO-write allocate ולכן בכל בקשות הכתיבה נעדכן רק את הזיכרון הראשי, והבלוק היחיד שיטען למטמון יהיה של משתנה i. הכתובת x יושבת מיושרת בזיכרון ולכן נטען בלוק אחד למטמון. ו.איזה סוגי החטאות יש בדוגמת הקוד הנתונה? מכיוון שאנו ניגשים לכל נתון פעם אחת בדיוק, אנו מחטיאים רק כאשר אנו ניגשים לבלוק בפעם הראשונה. לכן יש בקוד רק שגיאות compulsory 32

שאלה ו. עבור השינויים הבאים במטמון, כיצד הם ישפיעו על ה- HR בקוד הנתון? שינוי מדיניות הפינוי למדיניות מתקדמת יותר. הכפלת גודל המטמון כך שמספר הבלוקים יוכפל 2. הכפלת גודל המטמון כך שגודל הבלוק יוכפל 3. אנו ניגשים לכל נתון פעם אחת. לכן שינוים ו- 2 לא ישפיעו על ביצועי התוכנית. כמו שמנו לב סעיף קודם, יש בקוד רק החטאות מסוג. compulsory הכפלת גודל הבלוק תגרום לכך שתהיה החטאה רק פעם ב- 8 גישות למערך ולכן תשפר את ה-. HR 33

שאלה ב' )7( : LRU ח. תאר )בקצרה( שיטה למימוש מדיניות פינוי LRU במטמון הנתונים. על המימוש להיות חסכוני בזיכרון ככל הניתן )גם על חשבון יעילותו(. כמה סיביות יש להוסיף למטמון עבור המימוש שהצעת. - Implement an LRU how many bits? נממש LRU ברמת ה- set ע"י שמירת רשימה ובה ארבעה צמתים )אחד לכל,)way השומרת את סדר עדכון ה-.ways בכל גישה ל- way נעדכן את הסדר ברשימה כך שה- way בו השתמשנו לאחרונה יהיה האחרון ברשימה. )ways כדי לשמור את מספור ה- way נשתמש בשתי סיביות עבור כל way בסה"כ נוסיף למטמון 8=4*2 סיביות לכל.set )כי יש ארבעה ולכן Initial state: Hit way : Hit way 2: Hit way 3: RU Way LRU Way 34

שאלה ב' LRU : )7( ניתן לשפר את השיטה הקודמת באופן הבא: נשמור ברשימה רק שלושה צמתים: נשמיט את הצומת הממופה ל- way בו השתמשנו לאחרונה. בכל גישה ל- way הנמצא ברשימה, נוסיף לרשימה את ה way שהושמט ונוציא מהרשימה את ה- way אליו ניגשנו )הוא כרגע ה way בו השתמשנו לאחרונה(. בדרך זאת נוסיף למטמון 6=3*2 סיביות לכל.set Initial state: Hit way : RU Way LRU Way Hit way 2: Hit way 3: השיטה האופטימאלית )מבחינת חסכון במקום(: בכל רגע יש לנו תור ובו ארבעה.ways מספר האפשרויות בו יכול התור להימצא הוא = 24!4 מספיקות 5 סיביות )לכל )set כדי לקודד את כל המצבים. 35

II שאלה המטמון ה- 2 way הבא שובץ במחשב בו מרחב הזיכרון הפיסי מחולק לארבעה סגמנטים זרים שווים בגודלם ( B 256 כל אחד(, A B A B לפי סדר זה. למתכנן המטמון הוצבה דרישה לפיה לא ייוצר מצב שיותר מ- 5% מהמטמון יכיל כתובות של סגמנטי A או סגמנטי B ועם זאת תישמר שיטת.2way הצע דרך פשוטה ויעילה למימוש דרישה חדשה זו מה- cache והסבר את פעולתה. 29 5 4 3 2 Tag Set offset 36

שאלה 2. נשים לב כי ה- SB של כל סגמנט מוגדר באופן הבא:???.. A???.. B???.. A???.. B ספרת ה- 2 nd SB עבור סגמנטי A היא תמיד, ואילו עבור סגמנטי B היא תמיד נדאג למפות את המטמון כך שארבע השורות העליונות ימופו תמיד אך ורק לכתובות מסגמנטי A, ואילו ארבע בתחתונות לכתובות מסגמנטי B ע, "י שימוש בביט הנ"ל שנקרא לו ביט הסגמנט. תוצאה זאת נשיג באמצעות שינוי פונקציית המיפוי )שדה ה- )set במקום שיכיל את 3 סיביות LSB של מספר הבלוק,)mod8( נשתמש ב- שתי סיביות LSB בלבד ובסיסית הסגמנט. TTTTT TTTTT TTTTT TTTTT TTTTT SSS DD TSTTT TTTTT TTTTT TTTTT TTTTT TSS DD מיפוי ישן: מיפוי חדש: 37

)5( שאלה II Way LRU Way #set 2 3 68 69 7 7 4 5 6 7 8 9 2 2 3 4 5 3 4 5 6 7 Physical memory divided into 4 segments: A B A B (256B each 28 bit address) - A... (3 bit address) B. A. B. 5% of the cache for segments A 5% of the cache for segments B Solution: Change the mapping function so that the sets [:3] will contains data for segments A, and [4:7], data for segment B Original mapping: 29 5 4 3 2 Tag Set offset New mapping: 29 28 4 3 2 Set[2] Tag Set[:] offset 38