Carmi Merimovich

כרמי מרימוביץ

אתר אישי

כתובת וירטואלית 16, כתובת פיזית 18, גודל דף 8KB

כתובת וירטואלית נראית כך:
16 bit virtua address

גודל דף הוא 8KB ולכן שדה ההיסט ברוחב 13 ביטים (213=8192=8K). ולכן יש שלושה ביטים בשדה מספר דף וירטואלי.
16 bit virtua address parts

כיון שגודל דף וירטואלי וגודל דף פיזי שווים, כתובת פיזית נראית כלהלן:
18 bit physical address

כיון שרוחב ה-vpn הוא 3 ביטים, בטבלת התירגום יש לכל היותר 8 מקומות. מספר זה קטן מספיק כדי שיהיו 8 אוגרים בתוך ה-mmu שיכילו את המידע. שימור לב שהמשמעות של אוגרים ב-mmu היא שבזמן החלפת הקשר על מערכת ההפעלה לדאוג להטעין להם ערכים מתאימים. בדרך כלל לא צריך לשמור את התוכן שלהם כי המידע זמין למערכת ההפעלה ממקורותיה. העובדה שיש צורך להטעין את האוגרים בזמן החלפת הקשר אומרת שאם יש מספר "גדול מדי" של אכניסות בטבלת התירגום אזי הטבלה צריכה להיות בזכרון ולא באוגרים בתוך ה-mmu. במקרה כזה ב-mmu יהיה אוגר שמכיל את כתובת תחילת טבלת התרגום. כמובן שבמצב כזה יש גישות עודפות לזכרון ובכך נטפל בהמשך.

בכל כניסה צריך מקום ל-5 ביטים עבור ppn ודגלים. שני בתים (16 ביטים) נשמע סביר למדי עבור גודל כניסה בנסיבות כאלו. נניח שכניסה בטהלת התרגום נראית כך:
Page table entry

נניח שהערכים בטבלהׂ (בהקסה) הם כלהלן

F801
F001
E801
E001
D801
D001
C801
C001
לאיזו כתובת פיזית תתורגם הכתובת הוירטואלית F713? ובכן, נפרק את הכתובת בבינרית לפי השדות.

F713 parts

השדה vpn מכיל 7. נפרק את כניסה 7 של הטבלה, שתוכנה C0001, לפי השדות:
C0001 parts

ה-valid בכניסה 7 הוא אמת. לכן לשדה ppn, שערכו 11000, יש משמעות והוא יחליף את ה-vpn.
31713 parts

ובהקסה הכתובת הפיזית היא 31713.