נסמן את הכתובת שמגיעה מהמעבד ב-va ואת הכתובת שמוציא ה-mmu ב-pa. נסמן את התרגום שעושה ה-mmu על-ידי pa=f(va).
כמובן שתוכניות שונות שרצות במקביל תצטרכנה פונקציה f שונה. וה-mmu צריך לספק מנגנון כללי מספיק כדי שמערכות ההפעלה תוכלנה לעבוד בגמישות מספקת. הדרך הכללית ביותר לממש פונקציה היא בעזרת ווקטור. כלומר ה-mmu ישתמש ב-va כאינדקס לווקטור אותו תבנה מערכת ההפעלה.
לדוגמא, נניח מעבד בו רוחב כתובת וירטואלית הוא 16-ביטים ורוחב כתובת פיזית 18-ביטים. אזי ילכל תוכנית מערכת ההפעלה תבנה ווקטור באורך 216 כשבכל תא בווקטור יש מקום לפחות ל-18 ביטים. למעשה נצטרך עוד כמה ביטים בשביל דגלים. הדגל הכי חשוב נקרא Valid. הרי לא כל תוכנית תתפוס את כל 216 הכתובות...
כיון שהשימוש בווקטור הזה נפוץ ביותר, הגישה חייבת להיות יעילה. גישה לאיבר כלשהו של ווקטור צורכת בעיקרון הכפלה שזו פעולה יקרה. אפשר להפוך אותה להזזה עבור כפל בחזרות של 2. ולכן במקרה שלנו סביר שמתכנני החומרה יקחו 4 בתים כגודל כניסה בווקטור.
שיטה זו מאפשרת למערכת ההפעלה להטעין כל בית של התוכנית לכל בית בזכרון הראשי! מאוד מאוד גמיש. הבעיה היא בכמות הזכרון שהווקטור הנ"ל, שנקרא טבלת התרגום צורך.
בדוגמא שלנו מדובר 216×4B = 218B = 256KB. כלומר, כל תוכנית יכולה להשתמש בעד 64KB זכרון, אבל כדי לתמוך בזכרון פיזי לא רציף תהיה לנו תקורה של 256KB. זה כמובן לא סביר בעליל.
ולכן עלנו למצוא שיטה שיש לה את היתרון של שיטת טבלת התירגום, אך ללא התקורה העצומה.