39
(C) Yohai Devir 234267 - November 2005 1 םםםם םםםםםם םםםםםםם234267 םםםםם םם'4 : םםםםם םםםםם םםםםם םם םםםםם םם םםםם םםםם, םםם םםםםםםםםם םם"ם םםםםם םםםםםם, םםםם םם, םםםםםם

(C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

  • View
    231

  • Download
    4

Embed Size (px)

Citation preview

Page 1: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 1

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

:4תרגול מס' זכרון מטמון

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

Page 2: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 2

הבעיה), ככל 1000מהירות הגישה לזיכרון איטית ביחס לביצועי המעבד (עד פי

שהזיכרון גדול יותר הגישה אליו איטית יותר.

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

הפתרוןהחזקת עותק חלקי של הזכרון "קרוב" למעבד כך שזמן הגישה אליו

יהיה קצר בהרבה.

Page 3: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 3

למה הפתרון הזה טוב? – אם ניגשנו לאובייקט מסויים, סביר להניח שניגש אליו שוב מקומיות בזמן

בקרוב.לדוגמא:

מהקוד – בעקר עקב לולאות בהן קוראים 10% מהזמן ב- 90%אנו מבלים אותה שורה מספר פעמים.

משתנים מסוימים מעודכנים פעם אחר פעם. לדוגמא – מיון.

– אם ניגשנו לאובייקט מסויים סביר להניח שניגש מקומיות במקוםלאובייקטים סמוכים אליו.

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

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

תזכורת לחוק אמדל – עדיף לשפר את מה שקורה רוב הזמן !

Page 4: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 4

טרמינולוגיה

( – הנתון מופיע ברמת הזכרון.Hitפגיעה )

( – הנתון לא מופיע ברמת הזיכרון ולכן Missהחטאה )צריך להביאו מרמה נמוכה יותר.

( אחוז הפגיעות מתוך סה"כ hit rateיחס פגיעה )הגישות לזכרון.

Miss rate = 1 – hit rateבלוק – הזכרון המרכזי מחולק לבלוקים של מספר

בתים. בכל פעם שנצטרך להעתיק בית למטמון נעתיק את כל הבלוק בו הוא נמצא.

Page 5: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 5

Fully associative Organization

Tag Line

Tag Array Data array

Tag = Block# Line Offset0431

– מספר זיהוי) ולמיקום המידע בתוך tag. נחלק את שדה כתובת המידע למספר הבלוק (1).offsetהבלוק (

.תוכן הבלוק ו- מספר הבלוק. המטמון יהיה בנוי כטבלה של 2

כל בלוק בזכרון יכול להכנס לכל שורה במטמון.

Page 6: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 6

Fully associative Organization

Tag LineTag Array

Tag = Block# Line Offset

Address Fields0431

Data array

031

==

=

Hit\Miss data

של הכתובת המבוקשת עם tag. מציאת המידע במטמון תהיה ע"י השוואה של שדה ה- 3. במידה והבלוק נמצא, הבית במקביל של הבלוקים שנמצאים במטמון tagשדה ה-

.offset \ displacementהמבוקש יימצא עפ"י שדה ה-

Page 7: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 7

Fully associative Organization

גבוה.Hit Rate יתרון:

חסרון: מימוש ההשוואה המקבילית קשה ויקר.

Tag Line

Tag Array Data array

Block 1

Block n

::

Block 2

Block m

כל בלוק בזכרון יכול להתמפות לכל שורה במטמון.

Page 8: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 8

מדיניות פינויבמטמון יהיו הרבה פחות שורות מאשר בלוקים בזכרון

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

לבחור מי יהיה הבלוק שייזרק:

.1LRU - least recently used הבלוק שזמן רב ביותר לא - השתמשנו בו (לקריאה או לכתיבה).

.2LRM - least recently modified הבלוק שזמן רב ביותר - לא כתבנו אליו.

.3Random.בחירה אקראית לחלוטין –

Page 9: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 9

Direct Mapping Organization) ואת מספר הבלוק offset. נחלק את שדה כתובת המידע למיקום המידע בתוך הבלוק (1

.)tag() ולמספר זיהוי setנחלק למיקום במטמון (

.תוכן הבלוק ו- מספר הבלוק. המטמון יהיה בנוי כטבלה של 2

Line

Tag Array

Tag

Set#

Cache storage

Tag Set Line Offset

04731 5Block number

הוא שהפעם לכל שורה במטמון יש fully associative cacheההבדל ממבנה של .setמספר מזהה –

8

Page 10: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 10

Direct Mapping Organization. מציאת הנתון:3

כאינדקס במערך. setא. נמצא את השורה המתאימה עפ"י ה- . set של השורה במטמון אליה הצביע ה- tag של הכתובת עם ה- tagב. נשווה את ה-

במידה ויש התאמה הבלוק המבוקש נמצא במטמון. אחרת יש החטאה וצריך להביא את הבלוק.

. disp המתאים בשורה עפ"י שדה ה- byteג. במידה והנתון נמצא במטמון, ניגש ל-

Line

Tag Array

Tag

Set#

Cache storage 031

Tag Set Line Offset

041331 5Block number

29 =

512 sets

Page 11: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 11

Direct Mapping Organization

CacheSize

.

.

.

.

CacheSize

CacheSize

block 2 (set = 10)

block 0 (set = 00)

block 6 (set = 10)

block 4 (set = 00)

block 4n+2 (set = 10)

block 4n (set = 00)

tag DataSet#

00011011

כל שורה בזכרון יכולה להמצא בשורה אחת במטמון.

שימו לב שאין צורך במדיניות פינוי!

יתרון: קל למימוש וזול. גבוה שנובע משיטת המיפוי miss rateחסרון:

המאפשרת מיפוי של מספר כתובות (בעלות זהות) לאותה שורה במטמון. set סיביות

Page 12: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 12

2 way set associative Organization

נחלק את שדה כתובת המידע למיקום המידע בתוך direct mapping. באופן זהה ל- 1.)tag() ולמספר זיהוי set) ואת מספר הבלוק נחלק למיקום במטמון (offsetהבלוק (

.תוכן הבלוק ו- מספר הבלוק טבלאות של כשתי. המטמון יהיה בנוי 2

Tag Set Line Offset

04631 5Block number

, כל אחד בנוי כמו ways הוא שהפעם יש שני direct mappingההבדל ממבנה של direct mapping.כאשר הנתון יכול להמצא בכל אחד מהם

Line

Tag Array

Tag

Set#

Cache storage

LineTag

Tag Array Cache storage

WAY 0 WAY 1

Page 13: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 13

2 way set associative Organization . מציאת הנתון:3

כאינדקס במערך. setא. נמצא את השורה המתאימה עפ"י ה- של השורה במטמון אליה הצביע ה- tag של הכתובת הדרושה עם ה- tagב. נשווה את ה-

set -בכל אחד מהways במידה ויש התאמה הבלוק המבוקש נמצא במטמון. אחרת .יש החטאה וצריך להביא את הבלוק.

. disp המתאים בשורה עפ"י שדה ה- byteג. במידה והנתון נמצא במטמון, ניגש ל-

Tag Set Line Offset04531

Way 0Tag

Set#

Data

Data Out

Way 1

=

Hit/Miss

=

Tag

Set#

Data

MUX

6

Page 14: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 14

2 way set associative Organization

CacheSize

.

.

.

.

CacheSize

CacheSize

2 (set = 10)

0 (set = 00)

6 (set = 10)

4 (set = 00)

4n+2 (set = 10)

4n (set = 00)

tag DataSet#00011011

כל שורה בזכרון יכולה להמצא בשורה אחת במטמון .waysבאחד משני ה-

.set מספיק ביט אחד לכל LRUע"מ לממש

מהווה k-waysיתרון / חסרון: השיטה של פשרה סבירה, אופטימלית בביצועים.

tag DataSet#

00011011

WAY 0 WAY 1

Page 15: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 15

K-way set associative Organization

בתים כ"א DATA( 4 בלוקים (8נניח מטמון בעל קיבולת של ואסוציאטיביות משתנה

tag DataSet#

00011011

WAY 0

1 way set associative )direct mapping(tag DataSet#

000001010011100101110111

tag DataWAY 1

2 way set associative

Tag Set Line Offset

01531 24

Tag Set Line Offset

01431 23

Page 16: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 16

K-way set associative Organization (II)

Set#01

tag DataWAY 0

4 way set associative

tag DataWAY 1

tag DataWAY 2

tag DataWAY 3

Tag Set Line Offset

01331 2

Tag Line Offset

0131 2

tag DataWAY 0

8 way set associative

tag DataWAY 1

tag DataWAY 7

. . .

רק מצוייר לרוחב...fully associative mappingזהו בעצם

tag Data

Page 17: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 17

K-way set associative Organization (III)

משתנהdata ונפח 4נניח מטמון בעל אסוציאטיביות של

tag DataWAY 0

בלוקים 4

tag DataWAY 1

tag DataWAY 2

tag DataWAY 3

Tag Line Offset

0131 2

Set#01

tag DataWAY 0

בלוקים 8

tag DataWAY 1

tag DataWAY 2

tag DataWAY 3

Tag Set Line Offset

01331 2

Page 18: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 18

K-way set associative Organization (IV)

Set#00011011

tag DataWAY 0

בלוקים 16

tag DataWAY 1

tag DataWAY 2

tag DataWAY 3

Tag Set Line Offset

01431 23

Set#000001010011100101110111

tag DataWAY 0

בלוקים 32

tag DataWAY 1

tag DataWAY 2

tag DataWAY 3

Tag Set Line Offset

01531 24

Page 19: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 19

מטמון היררכיעד כה דברנו על מבנה זכרון היררכי בעל מטמון יחיד (רגיסטרים – מטמון –

זכרון ראשי – דיסק). היות וישנם נתונים הנקראים בתכיפות רבה מאוד ונתונים שנקראים בתכיפות רבה אך נמוכה יותר, יש הגיון ביצירת מספר

) קטנה ומהירה L1היררכיות של זכרון מטמון, כאשר הרמה הראשונה (). במידה והנתון לא נמצא ברמה מסויימת, תשלח L2מהרמה שמתחתיה (

בקשת קריאה לרמה שמתחתיה.CPU

Registers

L1 Cache

L2 Cache

L3 Cache

Disk

Backup

Main Memory

Multi level

Cache

Page 20: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 20

עקרון ההכלה

במטמון ההיררכי שעובד לפי עקרון ההכלה כל רמה של הזכרון ההיררכי מכילה את כל הנתונים

שנמצאים ברמה שמעליה. הדבר נועד ע"מ לפשט את הפרוטוקולים של התקשורת בין רמה

לרמה. העקרון לא מתקיים בכל המעבדים.

Page 21: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 21

Iשאלה

רמות 3 הותקנה היררכית זיכרון המכילה C123במחשב , המשמרות את עקרון ההכלה, כמתואר cacheשל

CPUבשרטוט הבא:Registers

L1 Cache

L2 Cache

L3 Cache

Main Memory

. בקשה זאת גררה שרשרת ארועים בשלושת המטמונים. m יזם קריאה מכתובת CPUה-

אילו מהאירועים הבאים אפשריים, אילו לא ולמה?

L3. M=Miss H=Hit ובסוף ב- L2 אח"כ L1כל האירועים מתוארים לפי סדר: קודם ב- .(ומשבצת ריקה מסמלת שלא קרה דבר (כלומר לא בוצעה פניה למטמון הזה

Page 22: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 22

נימוק אפשרי? L3 L2 L1

H H H

M H

H M

H M

H

M M M

M H M

H H M

H M M

M M

H M

נימוק אפשרי? L3 L2 L1

לא ברמה מסויימת לא פונים לרמה שמתחתיה.hitאחרי H H H

ברמה מסויימת לא פונים לרמה שמתחתיה.hitאחרי בנוסף יש כאן סתירה לעקרון ההכלה.

לא M H

המידע נמצא ברמה השנייה כן H M

.L1הפנייה לרמות עפ"י סדר. חייבים לעבור דרך לא H M

המידע נמצא ברמה הראשונה כן H

המידע נמצא רק בזכרון הראשי כן M M M

ברמה מסויימת לא פונים לרמה שמתחתיה.hitאחרי בנוסף יש כאן סתירה לעקרון ההכלה.

לא M H M

לא לא פונים לרמות שמתחת.hitאחרי H H M

המידע נמצא ברמה השלישית כן H M M

L2 ו- L1 אחרי ההחטאות ברמות L3חסרה פניה לרמה לא M M

. L2הפנייה לרמות עפ"י סדר. חייבים לעבור דרך לא H M

Page 23: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 23

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

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

Write back בזמן כתיבה נרשום רק לרמה הדרושה. העדכון לשאר – הרמות יבוצע כאשר הנתון ייזרק מהמטמון. על מנת לבצע מדיניות

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

לפנות בלוק מסוים, נעדכן בלוק זה ברמת הזכרון הנמוכה יותר במידה דולקת. בכל עדכון נצטרך לעדכן את כל הבלוק מכיוון dirtyוסיבית ה-

מסויים.byte מוחזקת עבור הבלוק כולו ולא עבור dirtyשסיבית ה-

DDכתיבה

D D

פינוי מקום L1לנתון אחר

L2

.writeback מילים בבלוק) בעל שתי רמות שפועלות במדיניות כתיבה fully associative, 2הציור – עבור מטמון (

Page 24: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 24

(2כתיבה למטמון ) שנמצא נתון לעדכןמדיניות נוספת למקרה בו יש צורך

– בזמן כתיבה נרשום Write throughבמטמון היא מדיניות את הערך החדש של הנתון גם לרמה שמתחתיו. כאשר

הנתון ייזרק מהמטמון, אין צורך לעדכן את הרמה שמתחתיו.

שימו לב!

(למה ?)dirty אין צורך בסיבית write throughבשיטת

. בלוק Validסיבית סטטוס נוספת שנמצאת עבור כל בלוק במטמון (בד"כ ללא קשר למדיניות) היא סיבית אינו משקף את המידע שנמצא data הוא בלוק שבו המידע שנמצא בשורת ה- )I )Invalidשנמצא במצב

מתאים ברמות נמוכות יותר.tagבבלוק בעל

.write through בתים בבלוק) בעל שתי רמות שפועלות במדיניות כתיבה fully associative, 2הציור – עבור מטמון (

כתיבה פינוי מקום L1לנתון אחר

L2

Page 25: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 25

(3כתיבה למטמון )

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

עיקריות לטיפול במקרה זה:Write allocate במקרה של החטאה מורידים לרמה שמתחת –

בקשה להבאת הבלוק. טרם הבאת הבלוק מהרמה התחתונה ומדיניות החלפה(.setמפנים את המקום המתאים )מבחינת

I I

בקשת כתיבה, החטאה ופינוי מקום

Dהבאת הבלוק

L1וכתיבה

L2

ומדיניות writeback בתים בבלוק) בעל שתי רמות שפועלות במדיניות כתיבה fully associative, 2הציור – עבור מטמון (write miss של Write allocate.

Page 26: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 26

(4כתיבה למטמון )

מדיניות נוספת למצב של החטאת כתיבה היא No Write allocate במקרה של החטאה מורידים לרמה שמתחת –

את בקשת הכתיבה עצמה. אין הבאה של הבלוק לרמה הנדרשת.

בקשת כתיבה לרמה , החטאה1

L1

L2

write through בתים בבלוק) בעל שתי רמות שפועלות במדיניות כתיבה fully associative, 2הציור – עבור מטמון ( ברמה הראשונה.No Write allocate של write missומדיניות

בקשת כתיבה מרמה , פגיעה2לרמה 1

Page 27: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 27

I (2)שאלה רמות של זכרון מטמון ששומרות על 3תזכורת – מדובר במעבד עם

עקרון ההכלה.

נוצרה במטמונים שרשרת m תוכן כתובת קריאתעם העברת בקשת לפנות אחת מהשורות שלו אל L3אירועים במהלכה נדרש מטמון

הזכרון הראשי. הנח שלכל המטמונים אותו גודל שורה וכולם . כמו כן הנח שכל המטמונים היו מלאים בעת K-wayמאורגנים ב-

בקשת הקריאה.

מה היה המצב בהיררכיית המטמונים שהוביל לצורך בהחלפת ?L3שורה ב- 3 מכאן שהיו L3 אם יש צורך להחליף שורה ב- תשובה:

החטאות בכל שלוש הרמות של המטמון.

Page 28: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 28

I (3)שאלה Snoop במקרה שרמת מטמון מסויימת רוצה למחוק נתון מסוים -

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

L3תאר (באופן איכותי) את שהתרחש מרגע גילוי הצורך בהחלפת השורה ב- למעבד (קרי – mועד התייצבות תוכן היררכיית הזיכרון ומסירת תוכן כתובת

עד למאוחר שבין שני אירועים אלו). ניתן להניח שכל המטמונים עובדים לפי ושומרים על עקרון ההכלה.LRU, מדיניות write-backמדיניות

Page 29: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 29

I (4)שאלה .1L1 מזהה read missומבקש את הנתון ממטמון L2 ..2L2 מזהה read missומבקש את הנתון ממטמון L3 ..3L3 מזהה read miss ובוחר שורה להחלפה, מבצע snoop אל L2

כדי לבדוק אם עותק של שורה זאת נמצא אצלו..L1 אל snoop מבצע L2, L2אם יש עותק של השורה המוחלפת ב- 4.:L1אם יש עותק של השורה המוחלפת ב- 5.

.L2 כותב אותו אל M (modified), L1אם העותק במצב ).I – Invalid מסמן את השורה הנ"ל כפנוייה (מצב L1בכל מקרה,

:L2אם יש עותק של השורה המוחלפת ב- 1..L3 כותב אותו אל M (modified), L2אם העותק במצב

).I – Invalid מסמן את השורה הנ"ל כפנוייה (מצב L2בכל מקרה, כותב אותה לזכרון M, L3 היא במצב L3אם השורה המתפנה מ- 1.

).Iהראשי ומסמן את השורה הזאת כפנויה (מצב

Page 30: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 30

I (5)שאלה .8L3 קורא את השורה הנדרשת (החדשה) מהזכרון הראשי ומעדכן LRU. קורא את השורה L2 הרלוונטי, set ב- L2במידה ויש מקום פנוי ב-9.

המתאים ומעדכן set אל אחת השורות הפנויות ב- L3הנדרשת מ- LRU .

snoop & Invalidate בוחר שורה לפנות, מבצע L2במידה ואין מקום פנוי, במקרה של L2 לרמה L1 (כולל כתיבה של המידע מרמה L1ל-

dirty ורושם את המידע לרמה ,(L3 במידה והשורה הנ"ל מסומנת , L2. לאחר שפונה מקום מתאים, הנתון נכתב ל- dirtyאצלו כ- .LRUומעודכן

L2 קורא את השורה הנדרשת מ- L1, L1במידה ויש מקום מתאים ב- 8..LRU המתאים ומעדכן setאל אחת השורות הפנויות ב-

במידה L2במידה ואין מקום מתאים, מפונה אחת השורות (נכתבת לרמה .LRU ומעדכן L2), מעתיק את הנתון מרמה dirtyובמצב

Page 31: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 31

I (6)שאלה

מה היה ההבדל אם לא היה צריך לשמור על עקרון ההכלה?

.L1תשובה: היינו מבצעים קריאה ישירות למטמון

Page 32: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 32

I (7)שאלה כלומר, (no write allocate במדיניות write miss פועלים בעת L3 ו- L2נתון כי מטמונים

במקרה של החטאה בקשת הכתיבה מועברת לרמה הבאה).. בקשה זו גררה שרשרת ארועים בהיררכיית הזכרון nבשלב מסויים בצע המעבד כתיבה לכתובת

ובמהלכה (של שרשרת הארועים) פונתה שורה ממטמון L1 במטמון write missאשר נפתחה ב- L3.

?L1 של מטמון write missשאלה: מהי מדיניות ה-

, אחרת לא היה צורך לקרוא שורות write allocate היא L1 של write missתשובה: מדיניות . (הוכחה על דרך השלילה)L3למטמון ולפנות שורה מ-

? אם כן – באילו L2 write miss אירוע מסוג C123שאלה: האם יתכן שיתרחש במעבד סיטואציות?

תשובה: לא.

ב- write miss באחת הרמות התחתונות בלי שיהיה write missעקב עקרון ההכלה לא יתכן L1 כל .write miss -ב L1 שהוא write allocate גורר בקשת קריאה (כלומר line fill -מ (L1

.L2 ב- write miss, מכיוון שאנחנו שומרים על עקרון ההכלה, לא יתכן L2אל

L3 ו- L2 וע"ס עקרון ההכלה אין משמעות לעובדה ש- write-allocate במדיניות L1בגלל ש .write miss מכיוון שלא יתכן בהם no-write-allocateבמדיניות

Page 33: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 33

IIשאלה נתון מטמון בעל המאפיינים הבאים:

בתים.64( – data areaגודל ) 16מספר בלוקים –

סיביות.30אורך כתובת לגישה – .way set associative 2ארגון

.dirty ו- validלכל בלוק מוצמדות גם סיביות LRUמדיניות החלפת בלוקים –

א. כמה סה"כ סיביות זכרון מכיל המטמון?

Page 34: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 34

II (2)שאלה disp בתים. לכן שדה ה- 4 מכאן שכל בלוק הוא 16 בתים, ומספר הבלוקים הוא 64 הוא DATAה- גודל

סיביות.2יהיה בגודל של

8יש way בלוקים, מכאן שבכל16וידוע שבסה"כ יש , way set associative 2המטמון מאורגן בשיטת סיביות.3יהיה בגודל setשורות ולכן שדה ה-

סיביות.25= 2 – 3 – 30יהיה: tag ביט, ולכן גודל שדה ה- 30נתון כי אורך כתובת לגישה למטמון היא

. ובסה"כ:LRUע"מ לנהל מדיניות של set מספיק ביט יחיד לכלway set associative 2עבור

CacheSize = DataSize + (tag + valid + dirty) * #ofBlocks + LRUbits =

= 64*8 + (25 + 1 + 1) * 16 +8 = 952bit

V(1) M(1) Tag(25)

Data(32) LRU(1) V(1) M(1) Tag(25) Data(32) #set

0

1

2

3

4

5

6

7

Page 35: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 35

למטמון הנתון נשלחה סדרת הכתובות הבאה (גישה לבתים):

Addresses: 5 7 1 4 36 8 100 6 4 12 36 12 68 5 7

של בלוקים שאינם מופיעים בסדרה דלעיל מצא:data והמטמון מלא ב- LRUבהנחה שמדיניות הפינוי היא

כמה החטאות יווצרו?

)?setמה מכיל המטמון בתום הסדרה (קרי – אילו בלוקים בכל

II (3)שאלה מהי מדיניות הכתיבה ומדוע ניתן להניח כך?

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

מהמטמון.

במטמון נכניס את הבלוק המבוקש מהזכרון הראשי.setכדי לפתור את השאלה נצטרך לחשב לאיזה

ניתן לחשב לפיsetאת שדה ה-

Set = floor(ADDRESS / line length) mod (lines per way)

יתן את שלושת סיביות mod8, וביצוע disp (אורך השורה) תוריד את שדה ה- 4הסבר: חלוקת הכתובת ב- .set של מספר הבלוק שהן בעצם ה- LSBה-

Page 36: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 36

II (4)שאלה נימוק Wa

yHit/miss

set tag כתובת

עפ"י הנתון השורה לא נמצאת 0 m 1 0 5 1

)6 ו- 4 (וגם את 7בפקודה הקודמת הבאנו שורה שמכילה גם את כתובת 0 H 1 0 7 2

עפ"י הנתון השורה לא נמצאת 0 M 0 0 1 3

1הנתון הובא ב- 0 H 1 0 4 4

.way = 1), 1( ב- set=1הנתון לא נמצא. היות וכבר הובא נתון בעל 1 M 1 1 36 5

עפ"י הנתון השורה לא נמצאת 0 m 2 0 8 6

.way0 צריך לפנות את LRU ולכן עפ"י way1 השורה הובאה ל- set = 1בפעם האחרונה בה קבלנו 0 M 1 3 100 7

) החלפנו אותה בשורה חדשה ולכן החטאה. 7) אבל ב- (2 הובאה כבר ב- (6אמנם השורה המכילה את כתובת .way1 צריך לפנות את LRU ולכן עפ"י way0 השורה הובאה ל- set = 1בפעם האחרונה בה קבלנו

1 M 1 0 6 8

4-7) שוב הבאנו את השורה של 8ב- ( 0 H 1 0 4 9

עפ"י הנתון השורה לא נמצאת 0 M 3 0 12 10

.way0 צריך לפנות את LRU ולכן עפ"י way1 השורה הובאה ל- set = 1בפעם האחרונה בה קבלנו 0 M 1 1 36 11

).10הנתון כבר הובא ב- ( 0 H 3 0 12 12

.way1 צריך לפנות את LRU ולכן עפ"י way0 השורה הובאה ל- set = 1בפעם האחרונה בה קבלנו 1 M 1 2 68 13

) החלפנו אותה בשורה חדשה ולכן החטאה. 13) אבל ב- (8 הובאה שוב ב- (5אמנם השורה המכילה את כתובת .way1 צריך לפנות את LRU ולכן עפ"י way0 השורה הובאה ל- set = 1בפעם האחרונה בה קבלנו

0 M 1 0 5 14

4-7) שוב הבאנו את השורה של 14ב- ( 1 H 1 0 7 15

Page 37: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 37

II (5)שאלה החטאות10 פגיעות, 4סה"כ

LRU #set

0 0 1 2 3 0

68 69 70 71 0 4 5 6 7 1

0 8 9 10 11 2

0 12 13 14 15 3

4

5

6

7

Way 0Way 1

Page 38: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 38

II (6)שאלה המטמון דלעיל שובץ במחשב בו מרחב הזיכרון הפיסי מחולק לארבעה סגמנטים זרים שווים

לפי סדר זה.A0 B0 A1 B1 כל אחד), MB 256בגודלם (

מהמטמון יכיל כתובות של 50%למתכנן המטמון הוצבה דרישה לפיה לא ייוצר מצב שיותר מ- .2way ועם זאת תישמר שיטת B או סגמנטי Aסגמנטי

והסבר את פעולתה.cacheהצע דרך פשוטה ויעילה למימוש דרישה חדשה זו מה-

של כל סגמנט מוגדר באופן הבא:MSBנשים לב כי ה- A0???..00B0..???01A1???..10B1..???11

.1 היא תמיד B, ואילו עבור סגמנטי 0 היא תמיד A עבור סגמנטי 2nd MSBספרת ה- , Aנדאג למפות את המטמון כך שארבע השורות העליונות ימופו תמיד אך ורק לכתובות מסגמנטי

, ע"י שימוש בביט הנ"ל שנקרא לו ביט הסגמנט.Bואילו ארבע בתחתונות לכתובות מסגמנטי LSB סיביות 3) במקום שיכיל את setתוצאה זאת נשיג באמצעות שינוי פונקציית המיפוי (שדה ה-

בלבד ובסיסית הסגמנט.LSB), נשתמש ב- שתי סיביות mod8של מספר הבלוק (

DD SSS TTTTT TTTTT TTTTT TTTTT TTTTT מיפוי ישן:DD TSS TTTTT TTTTT TTTTT TTTTT TSTTT מיפוי חדש:

Page 39: (C) Yohai Devir234267 - November 20051 מבנה מחשבים ספרתיים 234267 תרגול מס ' 4: זכרון מטמון מבוסס על תרגול של מורן גביש, חלק

(C) Yohai Devir 234267 - November 2005 39

II (7)שאלה way 0 way 1

V1bit

M1bit

Tag25bit

Data32bit

LRU1bit

V1bit

M1bit

Tag25bit

Data32bit

#set

A 000

A 001

A 010

A 011

B 100

B 101

B 110

B 111