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

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

כלומר הפונקציה שלנו מקבלת מספר דף ברוחב 3 ביטים
והתוצאה היא מספר, שנקרא לו מספר דף פיזי,
בן 5 ביטים:
ppn = f(vpn).
לכן נצטרך ווקטור בין 8 כניסות ונראה ש-2 בתים יספיקו לכל כניסה. כלומר התקורה שלנו עבור תוכנית של 64KB היא 16 בתים.
כמובן, התשלום הוא שכבר איננו יכולים לשים כל בית של התוכנית בכל בית בזכרון הפיזי. אנו עובדים בסוג של רציפות למקוטעין. אנחנו יכולים לטעון רצפים של 8KB לרצפים של 8KB פיזיים.
כלומר דף וירטואלי יכול להיטען לכל דף פיזי שהוא. הורדנו את רמת הדיוק של הפונקציה ועל-ידי כך הקטנו באופן דרסטי את גודל טבלת התרגום.