Carmi Merimovich

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

אתר אישי

פונקציה שעובדת על מספר דף

הפתרון שנאמץ יהיה שהפונקציה תעבוד רק על חלק מהכתובת הוירטואלית. חלק אחר יעבוד כמות שהוא. כלומר כתובת וירטואלית תחולק לשני חלקים. החלק הימני יקרא ההיסט והחלק השמאלי יקרא מספד דף ורטואלי (virtual page number). virtual address

דוגמא

נניח כתובת וירטואלית ברוחב 16-ביטים וכתובת פיזית ברוחב 18-ביטים. נניח ש-13 הביטים הימניים של הכתובת הוירטואלית עוברים כמו שהם לכתובת הפיזית.
virtual address 16 bits physical address 18 bits

כלומר הפונקציה שלנו מקבלת מספר דף ברוחב 3 ביטים והתוצאה היא מספר, שנקרא לו מספר דף פיזי, בן 5 ביטים: ppn = f(vpn).

לכן נצטרך ווקטור בין 8 כניסות ונראה ש-2 בתים יספיקו לכל כניסה. כלומר התקורה שלנו עבור תוכנית של 64KB היא 16 בתים.

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

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