وحدة إدارة الذاكرة


وحدة إدارة الذاكرة ( MMU )، والتي تسمى أحيانًا وحدة إدارة الذاكرة المصفحة ( PMMU )، [ 1 ] هي وحدة أجهزة كمبيوتر تقوم بفحص جميع المراجع إلى الذاكرة ، وترجمة عناوين الذاكرة المشار إليها، والمعروفة باسم عناوين الذاكرة الافتراضية ، إلى عناوين فعلية في الذاكرة الرئيسية .
في الأنظمة الحديثة، تمتلك البرامج عادةً عناوين تصل إلى الحد الأقصى النظري لذاكرة بنية الحاسوب ، وهو 32 أو 64 بت. تقوم وحدة إدارة الذاكرة (MMU) بتوزيع عناوين كل برنامج على مناطق منفصلة في الذاكرة الفعلية، والتي عادةً ما تكون أصغر بكثير من الحد الأقصى النظري. هذا ممكن لأن البرامج نادرًا ما تستخدم كميات كبيرة من الذاكرة في وقت واحد.
تعمل معظم أنظمة التشغيل الحديثة بالتنسيق مع وحدة إدارة الذاكرة (MMU) لتوفير دعم الذاكرة الافتراضية . تتتبع وحدة إدارة الذاكرة استخدام الذاكرة في كتل ثابتة الحجم تُعرف بالصفحات . إذا أشار برنامج إلى موقع في صفحة غير موجود في الذاكرة الفعلية، تُرسل وحدة إدارة الذاكرة مقاطعة إلى نظام التشغيل . يختار نظام التشغيل كتلة أقل استخدامًا في الذاكرة، ويكتبها إلى وحدة تخزين احتياطية ، مثل القرص الصلب إذا تم تعديلها منذ قراءتها، ثم يقرأ الصفحة من وحدة التخزين الاحتياطية إلى تلك الكتلة، ويُهيئ وحدة إدارة الذاكرة لربط الكتلة بالصفحة المطلوبة أصلاً حتى يتمكن البرنامج من استخدامها. يُعرف هذا باسم الترحيل عند الطلب . بعض أنظمة التشغيل الأبسط التي تعمل في الوقت الحقيقي لا تدعم الذاكرة الافتراضية ولا تحتاج إلى وحدة إدارة الذاكرة، ولكنها لا تزال بحاجة إلى وحدة حماية ذاكرة مادية .
توفر وحدات إدارة الذاكرة (MMUs) بشكل عام حماية للذاكرة لمنع محاولات البرنامج للوصول إلى الذاكرة التي لم يطلبها مسبقًا، مما يمنع البرنامج الضار أو المسيء من تعديل أو قراءة البيانات التي تخص برنامجًا آخر.
في بعض تصميمات المعالجات الدقيقة المبكرة، كانت إدارة الذاكرة تتم بواسطة دائرة متكاملة منفصلة ، مثل VLSI Technology VI475 (1986)، و Motorola 68851 (1984) المستخدمة مع معالج Motorola 68020 في جهاز Macintosh II ، أو Z8010 [ 2 ] وZ8015 (1985) [ 3 ] [ 4 ] المستخدمة مع عائلة معالجات Zilog Z8000 . أما المعالجات الدقيقة اللاحقة (مثل Motorola 68030 و Zilog Z280 ) فقد وضعت وحدة إدارة الذاكرة (MMU) مع المعالج المركزي (CPU) على نفس الدائرة المتكاملة، كما هو الحال في معالج Intel 80286 والمعالجات الدقيقة x86 اللاحقة .
استخدمت بعض الأنظمة المبكرة، وخاصة الأنظمة ذات 8 بت ، وحدات إدارة الذاكرة البسيطة للغاية لإجراء تبديل البنوك .
أنواع ترجمة العناوين
استخدمت الأنظمة المبكرة نظام العنونة الأساسية والحدودية الذي تطور لاحقًا إلى التجزئة ، أو استخدمت مجموعة ثابتة من الكتل بدلًا من تحميلها عند الطلب. ويكمن الفرق بين هذين النهجين في حجم كتلة الذاكرة المتجاورة؛ إذ تقسم الأنظمة ذات الصفحات الذاكرة الرئيسية إلى سلسلة من الكتل متساوية الحجم، بينما تسمح الأنظمة المجزأة عمومًا بأحجام متغيرة. [ 5 ]
الترجمة المجزأة
في الترجمة المجزأة، يحتوي عنوان الذاكرة على رقم المقطع وموقعه داخل المقطع. تتميز المقاطع بأطوال متغيرة، وقد ترتبط بها صلاحيات مثل القراءة والكتابة والتنفيذ. [ 6 ] يُحمّل المقطع في منطقة متجاورة من الذاكرة الفعلية. عادةً، يُستخدم رقم المقطع كمؤشر في جدول المقاطع ؛ حيث يحتوي كل مدخل في هذا الجدول على عنوان منطقة الذاكرة الفعلية، وطول المقطع، ومعلومات أخرى مثل علامات الصلاحيات.
يتميز هذا الأسلوب بالبساطة؛ حيث أن كتل الذاكرة متصلة، وبالتالي لا يلزم تخزين سوى القيمتين الأساسيتين والحد لأغراض التعيين.
من عيوب هذا الأسلوب أنه يؤدي إلى ظاهرة تُعرف بالتجزئة الخارجية . تحدث هذه الظاهرة عند تحرير مساحات الذاكرة المخصصة، ولكنها غير متجاورة. في هذه الحالة، قد تتوفر مساحة كافية من الذاكرة لمعالجة طلب ما، ولكنها موزعة ولا يمكن تخصيصها لجزء واحد. في الأنظمة التي تبدأ فيها البرامج وتتوقف بمرور الوقت، قد يؤدي ذلك في النهاية إلى تجزئة الذاكرة بشكل كبير وعدم وجود كتل كبيرة متبقية؛ في هذه الحالة، يجب نقل الأجزاء في الذاكرة، وتعديل إدخالات جدول الأجزاء الخاصة بها لتعكس العنوان الفيزيائي الجديد، وذلك لتوفير مساحة متجاورة كبيرة بما يكفي لجزء متاح.
تحتوي بعض طرازات الحاسوب المصغر PDP-11 ذي 16 بت على وحدة إدارة ذاكرة مجزأة مزودة بمجموعة من سجلات عناوين الصفحات (PARs) وسجلات وصف الصفحات (PDRs)؛ حيث تقوم هذه الوحدة بربط عنوان افتراضي 16 بت بعنوان فعلي 18 بت. أما جهاز PDP-11/70 فيقوم بتوسيع ذلك لإنتاج عنوان فعلي 22 بت. [ 7 ]
كان التجزئة مستخدمًا على نطاق واسع في منصات الحواسيب الصغيرة في الثمانينيات. ومن بين وحدات إدارة الذاكرة التي استخدمت هذا المفهوم موتورولا 68451 [ 5 ] وزيلوغ Z8010 ، ولكن هناك العديد من الأمثلة الأخرى.
توفر معالجات Intel 8086 و Intel 8088 و Intel 80186 و Intel 80188 تجزئة ذاكرة بدائية، ولا توفر أي حماية للذاكرة . (كل بايت من كل مقطع متاح دائمًا لأي برنامج). تسمح سجلات المقاطع ذات 16 بت بإنشاء 65,536 مقطعًا؛ يبدأ كل مقطع عند إزاحة ثابتة تساوي 16 ضعف رقم المقطع؛ ودقة عنوان بداية المقطع هي 16 بايت. يمنح كل مقطع إمكانية الوصول للقراءة والكتابة إلى 64 كيلوبايت (65,536 بايت) من مساحة العناوين (يتم تحديد هذا الحد بواسطة سجلات PC و SP ذات 16 بت؛ ولا يقوم المعالج بفحص الحدود). عند تجاوز قيمة الإزاحة + العنوان 0xFFFFF، يتم الالتفاف إلى 0x00000. يتداخل كل مقطع بحجم 64 كيلوبايت مع المقاطع الـ 4,095 التالية؛ ويمكن تمثيل كل عنوان فعلي بـ 4,096 زوجًا من المقطع والإزاحة. لا يمكن لهذا النظام معالجة سوى 1 ميجابايت (1024 كيلوبايت) من الذاكرة الفعلية (ووحدات الإدخال/الإخراج المُخصصة للذاكرة). ( يمكن إضافة ذاكرة موسعة اختيارية عبر وحدات تخزين إضافية ، مع إمكانية التحكم البرمجي). أما معالجات x86 اللاحقة ، بدءًا من معالج Intel 80286 ، فقد دعمت التعيين المُجزأ الحقيقي، باستخدام جدول القطاعات.
ترجمة مُقسّمة إلى صفحات

في الترجمة المُجزأة، تُقسّم مساحة العناوين (نطاق العناوين التي يستخدمها المعالج) إلى صفحات ، لكل منها حجمٌ يُساوي قوة العدد 2، وعادةً ما يكون بضعة كيلوبايتات ، ولكن قد تكون أكبر بكثير. تُشير البرامج إلى الذاكرة باستخدام حجم العنوان الطبيعي للجهاز، والذي يكون عادةً 32 أو 64 بت في الأنظمة الحديثة. تبقى البتات السفلية من العنوان (الإزاحة داخل الصفحة) دون تغيير. أما البتات العلوية من العنوان فهي أرقام الصفحات الافتراضية. [ 9 ]
تستخدم معظم وحدات إدارة الذاكرة (MMUs) جدولًا للعناصر في الذاكرة يُسمى جدول الصفحات ، يحتوي على مدخل واحد في جدول الصفحات (PTE) لكل صفحة افتراضية، لربط أرقام الصفحات الافتراضية بأرقام الصفحات الفعلية في الذاكرة الرئيسية. غالبًا ما تُستخدم جداول الصفحات متعددة المستويات لتقليل حجم جدول الصفحات. يُطلق على ذاكرة التخزين المؤقت الترابطية لمدخلات الصفحات اسم مخزن البحث الجانبي للترجمة (TLB)، وتُستخدم لتجنب الحاجة إلى الوصول إلى الذاكرة الرئيسية في كل مرة يتم فيها ربط عنوان افتراضي. [ 5 ]
قد تحتوي وحدات إدارة الذاكرة الأخرى على مصفوفة ذاكرة خاصة، [ 10 ] ومجموعة من السجلات، [ 11 ] أو مصفوفة من مستوى واحد أو أكثر من ذاكرة الوصول العشوائي الثابتة [ 12 ] لتخزين مجموعة من معلومات التعيين.
تقوم وحدة إدارة الذاكرة (MMU) بتقسيم العنوان الظاهري إلى رقم صفحة ظاهري وإزاحة داخل الصفحة. يُستخدم رقم الصفحة الظاهري لاختيار مدخل جدول الصفحات؛ إذا تم العثور على مدخل جدول الصفحات وكانت الصفحة مُعلَّمة بأنها موجودة في الذاكرة، يتم دمج رقم الصفحة الفعلي في مدخل جدول الصفحات مع الإزاحة لإنشاء العنوان الفعلي المقابل للعنوان الظاهري. [ 9 ]
يمكن استخدام رقم الصفحة الافتراضي مباشرة كمؤشر في جدول الصفحات أو معلومات التعيين الأخرى، أو يمكن تقسيمه بشكل أكبر، حيث تُستخدم البتات في مستوى معين كمؤشر في جدول من الجداول ذات المستوى الأدنى والتي تُستخدم فيها البتات في المستوى التالي كمؤشر، مع مستويين أو أكثر من الفهرسة.
إحدى مشكلات الترجمة المُجزأة هي أنه مع توسع مساحة العناوين الافتراضية، يزداد حجم الذاكرة اللازمة لتخزين التعيين. على سبيل المثال، في معالج 68020، يبلغ عرض العناوين 32 بت، ما يعني أن رقم الصفحة الافتراضية لحجم صفحة 8 كيلوبايت هو أعلى 19 بت من العنوان، وبالتالي يبلغ حجم جدول الصفحات أحادي المستوى 512 كيلوبايت. [ 5 ] في ثمانينيات القرن الماضي، بالنسبة لجدول صفحات موجود في الذاكرة، قد يُمثل هذا جزءًا كبيرًا من الذاكرة الرئيسية للجهاز، وبالنسبة لوحدة إدارة الذاكرة التي تُخزن خريطة الصفحات في ذاكرة الوصول العشوائي الثابتة (SRAM)، قد يتطلب ذلك كمية كبيرة من ذاكرة الوصول العشوائي الثابتة. يُمكن تقليل هذه المشكلة بزيادة حجم الصفحات، مثلاً 64 كيلوبايت بدلاً من 8. حينها، يستخدم فهرس الصفحة 16 بت، ويصبح حجم جدول الصفحات الناتج 64 كيلوبايت، وهو حجم أسهل في التعامل. يؤدي الانتقال إلى حجم صفحة أكبر إلى المشكلة الثانية: زيادة التجزئة الداخلية. سيتم تخصيص كتل كبيرة لبرنامج يقوم بإنشاء سلسلة من الطلبات لكتل صغيرة، مما يؤدي إلى إهدار كميات كبيرة من الذاكرة. [ 5 ]
إذا كانت مساحة العناوين متفرقة، بحيث لا يتم تخصيص جميع مناطقها، فيمكن تقليل المشكلة باستخدام جدول صفحات متعدد المستويات أو خريطة ذاكرة الوصول العشوائي الثابتة، وعدم تخصيص جميع إدخالات جدول الصفحات التي ستكون مطلوبة لمنطقة فارغة.
تم استخدام أسلوب الترجمة على صفحات على نطاق واسع بواسطة وحدات إدارة الذاكرة للمعالجات الدقيقة في السبعينيات والثمانينيات، بما في ذلك 68851 الخاص بـ 68020 ووحدة إدارة الذاكرة المدمجة في 68030 ، و Z8015 الخاص بـ Zilog Z8000 ، و NS16082 الخاص بسلسلة NS32000 .
قد يتضمن إدخال جدول الصفحات أو معلومات أخرى خاصة بكل صفحة معلومات حول ما إذا كانت الصفحة قد كُتبت إليها ( بت التعديل )، ومتى تم استخدامها آخر مرة ( بت الوصول ، لخوارزمية استبدال الصفحات الأقل استخدامًا مؤخرًا (LRU) )، ونوع العمليات ( وضع المستخدم أو وضع المشرف ) التي يمكنها قراءتها وكتابتها، وما إذا كان ينبغي تخزينها مؤقتًا . [ 13 ]
أحيانًا، يمنع إدخال جدول الصفحات أو معلومات أخرى خاصة بكل صفحة الوصول إلى صفحة افتراضية معينة، ربما لعدم تخصيص ذاكرة وصول عشوائي (RAM) فعلية لتلك الصفحة. في هذه الحالة، تُشير وحدة إدارة الذاكرة (MMU) إلى وجود خطأ في الصفحة إلى وحدة المعالجة المركزية (CPU). ثم يتعامل نظام التشغيل مع الموقف، ربما بمحاولة إيجاد إطار ذاكرة RAM فارغ وإعداد خريطة الصفحات لربطه بالعنوان الافتراضي المطلوب. إذا لم تكن هناك ذاكرة RAM متاحة، فقد يكون من الضروري اختيار صفحة موجودة (تُعرف بالصفحة المتأثرة )، باستخدام خوارزمية استبدال ، وحفظها على القرص (عملية تُسمى الترحيل ). مع بعض وحدات إدارة الذاكرة، قد يكون هناك أيضًا نقص في مداخل جدول الصفحات (PTEs)، وفي هذه الحالة سيتعين على نظام التشغيل تحرير أحدها للربط الجديد. [ 13 ] [ 9 ]
قد تقوم وحدة إدارة الذاكرة (MMU) أيضًا بتوليد حالات خطأ الوصول غير القانوني أو أخطاء الصفحة غير الصالحة عند الوصول غير القانوني أو غير الموجود للذاكرة، على التوالي، مما يؤدي إلى خطأ تجزئة أو حالات خطأ ناقل عند معالجتها بواسطة نظام التشغيل.
يُخفف نظام الترجمة المُجزأة من مشكلة التجزئة الخارجية للذاكرة. فبعد تخصيص كتل الذاكرة وتحريرها، قد تصبح الذاكرة الحرة مُجزأة (غير متصلة)، بحيث تكون أكبر كتلة متصلة من الذاكرة الحرة أصغر بكثير من إجمالي حجمها. أما في الذاكرة الافتراضية، فيمكن ربط نطاق متصل من العناوين الافتراضية بعدة كتل غير متصلة من الذاكرة الفعلية؛ ويُعد هذا التخصيص غير المتصل أحد مزايا التجزئة . [ 13 ] [ 9 ]
مع ذلك، تُسبب الترجمة المُجزأة مشكلة أخرى، وهي التجزئة الداخلية . يحدث هذا عندما يطلب برنامجٌ ما كتلةً من الذاكرة لا تتطابق تمامًا مع صفحة مُحددة، على سبيل المثال، إذا طلب برنامجٌ ما مخزنًا مؤقتًا بحجم 1 كيلوبايت لإجراء عمليات على الملفات. في هذه الحالة، ينتج عن الطلب تخصيص صفحة كاملة، مع أنه لن يُستخدم منها سوى 1 كيلوبايت فقط؛ وإذا كانت الصفحات أكبر من 1 كيلوبايت، فإن الجزء المتبقي منها يُهدر. إذا تم إجراء العديد من عمليات التخصيص الصغيرة من هذا النوع، فقد تُستهلك الذاكرة بالكامل حتى لو بقي جزء كبير منها فارغًا. [ 5 ]
التجزئة بالإضافة إلى الترقيم
استخدمت بعض الأنظمة، مثل GE 645 وما تلاه، كلاً من التجزئة والتقسيم إلى صفحات. فبدلاً من أن يحتوي جدول القطاعات على مدخلات لكل قطاع تُحدد عنوان القاعدة الفيزيائي وطول القطاع، فإنه يحتوي على مدخلات تُحدد عنوان القاعدة الفيزيائي لجدول صفحات القطاع، بالإضافة إلى طول القطاع. تُقسم الذاكرة الفيزيائية إلى صفحات ذات حجم ثابت، وتُستخدم نفس التقنيات المُستخدمة في تقسيم الصفحات حسب الطلب في تقسيم الصفحات والقطاعات معًا.
وحدة إدارة الذاكرة Signetics 68905 ، المصممة للمعالجات الدقيقة Motorola 68000 و 68010 و 68012 ، تدعم تجزئة الذاكرة وتقسيمها إلى صفحات. [ 14 ] أنتجت كل من Signetics و Philips نسخة من المعالج 68000 تجمع بين وحدة إدارة الذاكرة 68905 على نفس الشريحة المادية للمعالج، وهي 68070. [ 5 ]
فوائد
يمكن لوحدة إدارة الذاكرة (MMU) توفير حماية للذاكرة ، بحيث تؤدي محاولات البرامج للوصول إلى بيانات لا تملك صلاحية الوصول إليها أو تعديلها إلى فشل العملية؛ وهذا يكشف أخطاء البرامج ومحاولات الوصول المتعمدة إلى تلك البيانات أو تعديلها. عادةً، يخصص نظام التشغيل لكل برنامج مساحة عنوان افتراضية خاصة به. [ 9 ]
يمكن أيضًا استخدام وحدة إدارة الذاكرة (MMU) لتوسيع حجم العنوان الفعلي عندما يكون العنوان الظاهري صغيرًا جدًا. على سبيل المثال، كان لدى جهاز PDP-11 في الأصل عنوان 16 بت، مما جعله صغيرًا جدًا مع زيادة أحجام الذاكرة في سبعينيات القرن الماضي. تم حل هذه المشكلة بتوسيع ناقل الذاكرة الفعلي إلى 18 بت، واستخدام وحدة إدارة الذاكرة لإضافة بتين إضافيتين بناءً على منافذ أخرى على ناقل المعالج للإشارة إلى البرنامج الذي يقوم بالوصول إلى الذاكرة. [ 15 ]
وظائف أخرى متعلقة بالذاكرة لوحدة إدارة الذاكرة
تضمنت بعض وحدات إدارة الذاكرة (MMUs)، مثل Signetics 68905، وحدة تحكم لإدارة ذاكرة التخزين المؤقت للمعالج ، والتي تخزن البيانات التي تم الوصول إليها مؤخرًا في ذاكرة فائقة السرعة، مما يقلل الحاجة إلى الاتصال بالذاكرة الرئيسية الأبطأ. [ 14 ] في بعض التطبيقات، تكون وحدات إدارة الذاكرة مسؤولة أيضًا عن إدارة ناقل البيانات ، حيث تتحكم في الوصول إلى ناقل الذاكرة بين أجزاء الحاسوب المختلفة التي ترغب في الوصول إليه.
وحدات إدارة المعلومات الطبية
تتجاوز الأجهزة التي تُجري الوصول المباشر إلى الذاكرة وحدة إدارة الذاكرة (MMU) الخاصة بوحدة المعالجة المركزية (CPU) بشكل كامل. تسمح بعض أنظمة الإدخال/الإخراج لأجهزة الوصول المباشر إلى الذاكرة (DMA) باستخدام العناوين الفيزيائية للقراءة أو الكتابة مباشرةً في أي مكان في ذاكرة الوصول العشوائي (RAM) الفيزيائية دون أي قيود. بينما تحتوي أنظمة إدخال/إخراج أخرى على وحدة إدارة ذاكرة منفصلة تُسمى وحدة إدارة ذاكرة الإدخال/الإخراج (IOMMU)، والتي يمكن برمجتها بواسطة نظام التشغيل لترجمة عناوين الأجهزة من أجهزة الوصول المباشر إلى الذاكرة (DMA) إلى صفحات فيزيائية محددة ومحدودة يختارها نظام التشغيل. ويمكن استخدام وحدة إدارة ذاكرة الإدخال/الإخراج (IOMMU) لحجب هجمات الوصول المباشر إلى الذاكرة (DMA) .
أمثلة
تقسم معظم الأنظمة الحديثة الذاكرة إلى صفحات يتراوح حجمها بين 4 و64 كيلوبايت ، وغالبًا ما تدعم استخدام ما يُسمى بالصفحات الضخمة بحجم 2 ميجابايت أو 1 جيجابايت (كلا الحجمين متاحان في كثير من الأحيان). تُخزَّن ترجمات الصفحات مؤقتًا في مخزن مؤقت للترجمة (TLB). بعض الأنظمة، وخاصةً تصميمات RISC القديمة ، تلجأ إلى نظام التشغيل عند عدم العثور على ترجمة الصفحة في مخزن الترجمة المؤقت. تستخدم معظم الأنظمة مُتتبعًا شجريًا قائمًا على الأجهزة. تسمح معظم الأنظمة بتعطيل وحدة إدارة الذاكرة (MMU)، لكن بعضها يُعطِّلها عند اللجوء إلى نظام التشغيل.
نظام IBM System/360 طراز 67، ونظام IBM System/370، والأنظمة اللاحقة
تضمن نظام IBM System/360 موديل 67 ، الذي طُرح في أغسطس 1965، وحدة إدارة ذاكرة تُسمى صندوق ترجمة العناوين الديناميكية (DAT). [ 16 ] [ 17 ] وتتميز هذه الوحدة بخاصية فريدة تتمثل في تخزين البتات التي تم الوصول إليها والبتات المُعدَّلة خارج جدول الصفحات (إلى جانب مفتاح الحماية ذي الأربع بتات لجميع معالجات S/360). وتشير هذه البتات إلى الذاكرة الفعلية بدلاً من الذاكرة الافتراضية، ويتم الوصول إليها بواسطة تعليمات خاصة. [ 17 ] يُقلل هذا من العبء على نظام التشغيل، الذي كان سيحتاج لولا ذلك إلى نقل البتات التي تم الوصول إليها والبتات المُعدَّلة من جداول الصفحات إلى بنية بيانات أكثر ارتباطًا بالذاكرة الفعلية. وهذا يُسهّل عملية المحاكاة الافتراضية على مستوى نظام التشغيل ، والتي سُميت لاحقًا بالمحاكاة الافتراضية الجزئية .
ابتداءً من أغسطس 1972، امتلك نظام IBM System/370 وحدة إدارة ذاكرة (MMU) مماثلة، على الرغم من أنها كانت تدعم في البداية مساحة عناوين افتراضية 24 بت فقط، بدلاً من مساحة العناوين الافتراضية 32 بت في نظام System/360 Model 67. كما أنها تخزن البتات التي تم الوصول إليها والبتات المُعدَّلة خارج جدول الصفحات. في أوائل عام 1983، وسّعت بنية System/370-XA مساحة العناوين الافتراضية إلى 31 بت، وفي عام 2000، تم تقديم بنية z/Architecture ذات 64 بت ، مع توسيع مساحة العناوين إلى 64 بت؛ وتستمر هذه البنية في تخزين البتات التي تم الوصول إليها والبتات المُعدَّلة خارج جدول الصفحات.
فاكس
تبلغ مساحة صفحات VAX 512 بايت، [ 18 ] : 199 ، وهي مساحة صغيرة جدًا. قد يتعامل نظام التشغيل مع عدة صفحات كما لو كانت صفحة واحدة أكبر. على سبيل المثال، يجمع نظام Linux على VAX ثماني صفحات معًا. وبالتالي، يُنظر إلى النظام على أنه يحتوي على صفحات بحجم 4 كيلوبايت . يقسم VAX الذاكرة إلى أربع مناطق ثابتة الغرض، كل منها بحجم 1 جيجابايت . وهي: [ 18 ] : 200-201
- مساحة P0
- تُستخدم للذاكرة العامة لكل عملية مثل الأكوام.
- مساحة P1
- (أو مساحة التحكم) التي تكون أيضًا لكل عملية وتستخدم عادة للمشرف، والتنفيذي، والنواة ، ومكدسات المستخدم ، وهياكل التحكم الأخرى لكل عملية التي يديرها نظام التشغيل.
- مساحة S0
- (أو مساحة النظام) وهي مساحة عامة لجميع العمليات وتخزن رمز نظام التشغيل والبيانات، سواء كانت صفحات أم لا، بما في ذلك جداول الصفحات.
- مساحة S1
- وهو غير مستخدم و"محجوز للنشر الرقمي ". [ 18 ] : 200-201
جداول الصفحات عبارة عن مصفوفات خطية كبيرة. [ 18 ] : 209-215 عادةً، يُعدّ هذا تبذيرًا كبيرًا للمساحة عند استخدام العناوين في طرفي النطاق الممكن، ولكن جداول الصفحات لمساحتي P0 وP1 تُخزّن في مساحة S0 المُرقّمة. [ 18 ] : 211-212 وبالتالي، يوجد فعليًا هيكل شجري ثنائي المستوى ، مما يسمح للتطبيقات بالحصول على تخطيط ذاكرة متفرق دون إهدار مساحة كبيرة على إدخالات جداول الصفحات غير المستخدمة. على عكس إدخالات جداول الصفحات في معظم وحدات إدارة الذاكرة (MMUs)، تفتقر إدخالات جداول الصفحات في وحدة إدارة الذاكرة VAX إلى بت الوصول . [ 18 ] : 203-205 يجب على أنظمة التشغيل التي تُطبّق الترحيل إيجاد طريقة ما لمحاكاة بت الوصول لكي تعمل بكفاءة. عادةً، يقوم نظام التشغيل بإلغاء تعيين الصفحات دوريًا بحيث يمكن استخدام أخطاء عدم وجود الصفحة للسماح لنظام التشغيل بتعيين بت الوصول.
ذراع
تُطبّق معالجات التطبيقات المبنية على معمارية ARM وحدة إدارة الذاكرة (MMU) المُعرّفة بواسطة بنية نظام الذاكرة الافتراضية (VMSA) الخاصة بـ ARM. تُعرّف البنية الحالية جداول صفحات (PTEs) لوصف صفحات بحجم 4 كيلوبايت و 64 كيلوبايت ، وأقسام بحجم 1 ميجابايت ، وأقسام فائقة بحجم 16 ميجابايت ؛ كما عرّفت الإصدارات القديمة صفحة صغيرة بحجم 1 كيلوبايت . تستخدم ARM جدول صفحات ثنائي المستوى عند استخدام صفحات بحجم 4 كيلوبايت و 64 كيلوبايت ، أو جدول صفحات أحادي المستوى فقط لأقسام بحجم 1 ميجابايت وأقسام بحجم 16 ميجابايت .
تُجرى تحديثات TLB تلقائيًا بواسطة وحدة معالجة جداول الصفحات. تتضمن جداول الصفحات (PTEs) أذونات الوصول للقراءة/الكتابة بناءً على الامتياز، ومعلومات قابلية التخزين المؤقت، وبت NX ، وبت غير آمن. [ 19 ]
دي إي سي ألفا
تقسم معالجات DEC Alpha الذاكرة إلى 8 كيلوبايت ، أو 16 كيلوبايت ، أو 32 كيلوبايت ، أو 64 كيلوبايت ؛ ويعتمد حجم الصفحة على المعالج. [ 20 ] : 3-2 [ 21 ] : 3-2 صفحة. بعد حدوث خطأ في ذاكرة الترجمة السريعة (TLB)، يقوم رمز الآلة الخاص بالبرنامج الثابت منخفض المستوى (المسمى هنا PALcode ) بفحص جدول الصفحات.
يستخدم كل من OpenVMS AXP PALcode و DEC OSF/1 PALcode جدول صفحات مُهيكل على شكل شجرة ثلاثية المستويات. تُقسّم العناوين إلى مجموعة بتات غير مستخدمة (تحمل نفس قيمة البت العلوي للفهرس في المستوى الجذري للشجرة)، ومجموعة بتات لفهرسة المستوى الجذري، ومجموعة بتات لفهرسة المستوى الأوسط، ومجموعة بتات لفهرسة المستوى الطرفي، وبتات متبقية تُمرر إلى العنوان الفعلي دون تعديل، مُفهرسةً بايتًا داخل الصفحة. تعتمد أحجام الحقول على حجم الصفحة؛ وتكون جميع حقول فهرس الشجرة الثلاثة متساوية الحجم. [ 20 ] : 3-2–3-3 [ 21 ] : 3-1–3-2 يدعم OpenVMS AXP PALcode بتات أذونات القراءة والكتابة الكاملة لأوضاع المستخدم، والمشرف، والتنفيذي، والنواة، كما يدعم أيضًا بتات الخطأ عند القراءة/الكتابة/التنفيذ. [ 20 ] : 3-3-3-6 يدعم كود DEC OSF/1 PALcode بتات أذونات القراءة والكتابة الكاملة لوضعي المستخدم والنواة، كما يدعم أيضًا معالجة الأخطاء في بتات القراءة/الكتابة/التنفيذ. [ 21 ] : (II-B) 3-3-3-6
يمكن لـ Windows NT AXP PALcode تصفح جدول صفحات أحادي المستوى في مساحة عناوين افتراضية، أو جدول صفحات ثنائي المستوى في مساحة عناوين فعلية. يتم تجاهل أعلى 32 بت من العنوان. بالنسبة لجدول الصفحات أحادي المستوى، تُقسّم العناوين إلى مجموعة بتات لفهرسة جدول الصفحات، والبتات المتبقية التي تمر عبر العنوان الفعلي دون تعديل، مُفهرسةً بايتًا داخل الصفحة. أما بالنسبة لجدول الصفحات ثنائي المستوى، فتُقسّم العناوين إلى مجموعة بتات لفهرسة المستوى الجذري للشجرة، ومجموعة بتات لفهرسة المستوى الأعلى للشجرة، ومجموعة بتات لفهرسة مستوى الأوراق للشجرة، والبتات المتبقية التي تمر عبر العنوان الفعلي دون تعديل، مُفهرسةً بايتًا داخل الصفحة. تعتمد أحجام الحقول على حجم الصفحة. [ 22 ] : 3-2–3-4 يدعم Windows NT AXP PALcode إمكانية الوصول إلى الصفحة من وضع النواة فقط، أو من وضع المستخدم ووضع النواة، كما يدعم بت خطأ الكتابة. [ 22 ] : 3-5
نظام MIPS
يدعم معمارية MIPS من مدخل واحد إلى 64 مدخلاً في ذاكرة الترجمة السريعة (TLB). يمكن ضبط عدد مداخل TLB أثناء تهيئة وحدة المعالجة المركزية قبل عملية التوليف. مداخل TLB ثنائية. يربط كل مدخل TLB رقم صفحة افتراضية (VPN2) بأحد رقمي إطار صفحة (PFN0 أو PFN1)، وذلك بناءً على البت الأقل أهمية في العنوان الافتراضي الذي لا يُعد جزءًا من قناع الصفحة . لا يُخزن هذا البت وبتات قناع الصفحة في VPN2. لكل مدخل TLB حجم صفحة خاص به، والذي يمكن أن يكون أي قيمة من 1 كيلوبايت إلى 256 ميجابايت بمضاعفات العدد 4. يحتوي كل PFN في مدخل TLB على سمة تخزين مؤقت، وبت حالة "مُعدَّل"، وبت حالة "صالح". يحتوي VPN2 على بت حالة عام ومعرّف مُعيَّن من نظام التشغيل، والذي يشارك في مطابقة عنوان TLB الافتراضي إذا تم ضبط بت الحالة العام على الصفر. يخزن PFN العنوان الفعلي بدون بتات قناع الصفحة.
يُنشأ استثناء إعادة تعبئة ذاكرة الترجمة السريعة (TLB) عندما لا توجد أي مدخلات في ذاكرة الترجمة السريعة تطابق العنوان الظاهري المُعيّن. ويُنشأ استثناء عدم صلاحية ذاكرة الترجمة السريعة عندما يكون هناك تطابق، ولكن المدخل مُعلّم بأنه غير صالح. ويُنشأ استثناء تعديل ذاكرة الترجمة السريعة عندما تشير تعليمة تخزين إلى عنوان مُعيّن ولم يتم تعيين حالة التغيير للمدخل المطابق. إذا حدث استثناء ذاكرة الترجمة السريعة أثناء معالجة استثناء ذاكرة الترجمة السريعة، أو استثناء خطأ مزدوج في ذاكرة الترجمة السريعة، فسيتم توجيهه إلى معالج الاستثناءات الخاص به .
يدعم كل من MIPS32 و MIPS32r2 مساحة عناوين افتراضية تصل إلى 32 بت، ومساحة عناوين فعلية تصل إلى 36 بت. بينما يدعم MIPS64 مساحة عناوين افتراضية تصل إلى 64 بت، ومساحة عناوين فعلية تصل إلى 59 بت.
صن إم إم يو
يُعدّ جهاز Sun-1 الأصلي حاسوبًا أحادي اللوحة مبنيًا حول معالج Motorola 68000 الدقيق ، وقد طُرح في عام 1982. يحتوي على وحدة إدارة الذاكرة Sun 1 الأصلية التي توفر ترجمة العناوين، وحماية الذاكرة، ومشاركة الذاكرة، وتخصيصها لعمليات متعددة تعمل على وحدة المعالجة المركزية. يتم الوصول إلى جميع موارد وحدة المعالجة المركزية من ذاكرة الوصول العشوائي (RAM) الخاصة المدمجة، وذاكرة Multibus الخارجية، ووحدات الإدخال/الإخراج المدمجة ، ووحدات إدخال/إخراج Multibus، عبر وحدة إدارة الذاكرة (MMU)، حيث تتم ترجمة العناوين وحمايتها بشكل موحد. تُنفذ وحدة إدارة الذاكرة (MMU) برمجيًا على لوحة وحدة المعالجة المركزية.
تتكون وحدة إدارة الذاكرة (MMU) من سجل سياق، وخريطة قطاعات ، وخريطة صفحات. تُترجم العناوين الافتراضية من وحدة المعالجة المركزية (CPU) إلى عناوين وسيطة بواسطة خريطة القطاعات، والتي بدورها تُترجم إلى عناوين فيزيائية بواسطة خريطة الصفحات. يبلغ حجم الصفحة 2 كيلوبايت ، وحجم القطاع 32 كيلوبايت ، مما ينتج عنه 16 صفحة لكل قطاع. يمكن تعيين ما يصل إلى 16 سياقًا في وقت واحد. تبلغ مساحة العنوان المنطقي القصوى للسياق 1024 صفحة أو 2 ميجابايت. كما يبلغ الحد الأقصى للعنوان الفيزيائي الذي يمكن تعيينه في وقت واحد 2 ميجابايت أيضًا .
يُعدّ سجل السياق بالغ الأهمية في أنظمة التشغيل متعددة المهام، إذ يسمح لوحدة المعالجة المركزية بالتبديل بين العمليات دون إعادة تحميل جميع معلومات حالة الترجمة. يستطيع سجل السياق ذو الأربع بتات التبديل بين 16 قسمًا من خريطة القطاعات تحت إشراف المشرف، مما يُتيح تعيين 16 سياقًا في آنٍ واحد. لكل سياق مساحة عنوان افتراضية خاصة به. ويمكن توفير مشاركة مساحة العنوان الافتراضية والتواصل بين السياقات من خلال كتابة القيم نفسها في خرائط القطاعات أو الصفحات الخاصة بالسياقات المختلفة. ويمكن التعامل مع سياقات إضافية من خلال اعتبار خريطة القطاعات بمثابة ذاكرة تخزين مؤقتة للسياقات، واستبدال السياقات القديمة وفقًا لترتيب استخدامها.
لا يُميّز سجل السياق بين حالتي المستخدم والمشرف. ولا تُبدّل المقاطعات والمصائد السياقات، مما يستلزم أن تُعيّن جميع متجهات المقاطعة الصالحة دائمًا في الصفحة 0 من السياق، بالإضافة إلى مكدس المشرف الصالح. [ 23 ]
تتشابه محطات عمل Sun-2؛ فهي مبنية حول معالج Motorola 68010 الدقيق، وتحتوي على وحدة إدارة ذاكرة مماثلة، بصفحات سعة 2 كيلوبايت وقطاعات سعة 32 كيلوبايت . يحتوي سجل السياق على سياق نظام ثلاثي البتات يُستخدم في حالة المشرف، وسياق مستخدم ثلاثي البتات يُستخدم في حالة المستخدم. [ 24 ]
تعتمد محطات عمل Sun -3 ، باستثناء Sun-3/80 وSun-3/460 وSun-3/470 وSun-3/480، على معالج Motorola 68020 ، وتحتوي على وحدة إدارة ذاكرة مماثلة. وقد زاد حجم الصفحة إلى 8 كيلوبايت . (أما الطرازات الأحدث فتعتمد على معالج Motorola 68030 وتستخدم وحدة إدارة الذاكرة المدمجة في شريحة 68030).
تم تصميم محطات العمل Sun-4 حول معالجات SPARC الدقيقة المختلفة ، وتحتوي على وحدة إدارة ذاكرة مماثلة لتلك الموجودة في محطات العمل Sun-3.
باور بي سي
في معالجات PowerPC ، تكون صفحات G1 وG2 وG3 وG4 عادةً بحجم 4 كيلوبايت . بعد حدوث خطأ في ذاكرة الترجمة (TLB)، تبدأ وحدة إدارة الذاكرة (MMU) القياسية في معالجات PowerPC عمليتي بحث متزامنتين. تحاول إحدى العمليتين مطابقة العنوان مع أحد سجلات ترجمة عناوين كتل البيانات (DBAT) الأربعة أو الثمانية، أو سجلات ترجمة عناوين كتل التعليمات (IBAT) الأربعة أو الثمانية، حسب الحاجة. يمكن لسجلات BAT تعيين أجزاء خطية من الذاكرة يصل حجمها إلى 256 ميجابايت ، وتستخدمها أنظمة التشغيل عادةً لتعيين أجزاء كبيرة من مساحة العناوين لاستخدام نواة نظام التشغيل. إذا نجحت عملية البحث في سجل BAT، يتم إيقاف عملية البحث الأخرى وتجاهلها.
أما عملية البحث الأخرى، غير المدعومة مباشرةً من جميع المعالجات في هذه العائلة، فتتم عبر ما يُسمى بجدول الصفحات المعكوس ، والذي يعمل كامتداد خارجي مُجزأ لجدول ترجمة العناوين (TLB). في البداية، تُستخدم البتات الأربع العليا من العنوان لاختيار أحد سجلات القطاعات الستة عشر . ثم تُستبدل هذه البتات الأربع بـ 24 بتًا من سجل القطاع، مما يُنتج عنوانًا من 52 بتًا. يسمح استخدام سجلات القطاعات لعدة عمليات بمشاركة جدول التجزئة نفسه .
يتم حساب قيمة التجزئة للعنوان ذي 52 بت، ثم يُستخدم كمؤشر في جدول البيانات الخارجي. هناك، يتم فحص مجموعة من إدخالات الجدول المكونة من ثماني صفحات بحثًا عن إدخال مطابق. إذا لم يتم العثور على أي تطابق بسبب كثرة تصادمات التجزئة ، يُعيد المعالج المحاولة باستخدام دالة تجزئة مختلفة قليلاً . إذا فشلت هذه المحاولة أيضًا، ينتقل المعالج إلى نظام التشغيل (مع تعطيل وحدة إدارة الذاكرة) لحل المشكلة. يحتاج نظام التشغيل إلى حذف إدخال من جدول التجزئة لإفساح المجال لإدخال جديد. قد يُنشئ نظام التشغيل الإدخال الجديد من جدول صفحات شجري أكثر اعتيادية أو من هياكل بيانات لكل عملية تعيين، والتي من المرجح أن تكون أبطأ وأكثر كفاءة في استخدام المساحة. يتوفر دعم التحكم في عدم التنفيذ في سجلات القطاعات، مما يؤدي إلى دقة تصل إلى 256 ميجابايت .
تتمثل إحدى المشكلات الرئيسية في هذا التصميم في ضعف تجاور البيانات في ذاكرة التخزين المؤقت، والناجم عن دالة التجزئة. تتجنب التصاميم القائمة على الشجرة هذه المشكلة بوضع مدخلات جدول الصفحات للصفحات المتجاورة في مواقع متجاورة. قد يُقلل نظام التشغيل الذي يعمل على معالج PowerPC من حجم جدول التجزئة للتخفيف من هذه المشكلة.
كما أن إزالة إدخالات جدول الصفحات من عملية ما عمليةٌ بطيئةٌ نوعًا ما. قد يتجنب نظام التشغيل إعادة استخدام قيم المقاطع لتأجيل هذه العملية، أو قد يختار تحمل هدر الذاكرة المرتبط بجداول التجزئة لكل عملية. لا تبحث رقاقات G1 عن إدخالات جدول الصفحات، لكنها تُنشئ التجزئة، على افتراض أن نظام التشغيل سيبحث في جدول التجزئة القياسي برمجيًا. يمكن لنظام التشغيل الكتابة إلى ذاكرة الترجمة السريعة (TLB). تستخدم رقاقات G2 وG3 وأوائل G4 مكونات مادية للبحث في جدول التجزئة. تسمح أحدث الرقاقات لنظام التشغيل باختيار أي من الطريقتين. في الرقاقات التي تجعل هذا الأمر اختياريًا أو لا تدعمه على الإطلاق، قد يختار نظام التشغيل استخدام جدول صفحات قائم على الشجرة حصريًا.
x86
لقد تطورت بنية x86 على مدى فترة طويلة مع الحفاظ على توافق كامل مع البرامج، حتى مع نظام التشغيل. ولذلك، فإن وحدة إدارة الذاكرة (MMU) معقدة للغاية، وتتضمن العديد من أوضاع التشغيل الممكنة.
لا تحتوي المعالجات 8086 / 8088 و 80186 / 80188 على وحدة إدارة ذاكرة؛ فهي تدعم التجزئة، ولكن فقط لدعم ذاكرة فعلية أكبر مما يمكن أن يدعمه عنوان 16 بت، حيث يتم ضرب رقم المقطع، في سجل المقطع، في 16 وإضافته إلى إزاحة المقطع لتوليد عنوان فعلي.
أضاف المعالج 80286 وحدة إدارة الذاكرة (MMU) التي تدعم التجزئة، ولكن ليس الترحيل. عند تفعيل التجزئة بتشغيل الوضع المحمي ، يعمل رقم المقطع كمؤشر في جدول مُعرّفات المقاطع ؛ يحتوي مُعرّف المقطع على عنوان فعلي أساسي، وطول المقطع، وبت وجود للإشارة إلى ما إذا كان المقطع موجودًا حاليًا في الذاكرة، وبتات الأذونات، وبتات التحكم. إذا كان الإزاحة في المقطع ضمن الحدود المحددة بواسطة مُعرّف المقطع، تُضاف هذه الإزاحة إلى العنوان الفعلي الأساسي لتوليد عنوان فعلي.
يدعم المعالج 80386 ، الذي قدم إصدار IA-32 ذو 32 بت من معمارية x86، والمعالجات اللاحقة من نفس النوع، تجزئة الذاكرة وتقسيمها إلى صفحات. عند تفعيل تقسيم الذاكرة، يكون العنوان الأساسي في واصف المقطع عنوانًا في مساحة عناوين خطية مقسمة إلى صفحات بحجم 4 كيلوبايت ، وعند إضافته إلى الإزاحة في المقطع، يكون العنوان الناتج عنوانًا خطيًا في مساحة العناوين تلك. في معمارية IA-32، يُخفى هذا العنوان بحيث لا يتجاوز 32 بت. يمكن البحث عن النتيجة عبر جدول صفحات ذي بنية شجرية، حيث تُقسم بتات العنوان كما يلي: 10 بتات لفرع الشجرة، و10 بتات لأوراق الفرع، وتُنسخ البتات الـ 12 الأدنى مباشرةً إلى النتيجة.
لا تُستخدم سجلات القطاعات، التي كانت تُستخدم في وحدات المعالجة المركزية ما قبل 80386 لتوسيع مساحة العناوين، في أنظمة التشغيل الحديثة، باستثناء واحد رئيسي: الوصول إلى بيانات خاصة بالخيوط للتطبيقات أو بيانات خاصة بوحدة المعالجة المركزية لنواة نظام التشغيل، ويتم ذلك باستخدام سجلات القطاعات FS وGS بشكل صريح. يتضمن كل وصول إلى الذاكرة استخدام سجل قطاع، يتم اختياره وفقًا للتعليمات البرمجية قيد التنفيذ. باستثناء استخدام FS أو GS، يضمن نظام التشغيل أن يكون الإزاحة صفرًا. قد تحد بعض أنظمة التشغيل، مثل OpenBSD بميزة W^X ، وLinux بتصحيحات Exec Shield أو PaX ، من طول مقطع التعليمات البرمجية، كما هو محدد بواسطة سجل CS، لمنع تنفيذ التعليمات البرمجية في المناطق القابلة للتعديل من مساحة العناوين.
أتاحت التعديلات الطفيفة على وحدة إدارة الذاكرة (MMU) التي طُرحت مع معالج بنتيوم إمكانية إنشاء صفحات كبيرة جدًا بحجم 4 ميجابايت ، وذلك بتجاوز المستوى الأدنى من الشجرة (مما يترك 10 بتات لفهرسة المستوى الأول من تسلسل الصفحات، بينما تُنسخ البتات المتبقية (10+12 بت) مباشرةً إلى النتيجة). كما أتاحت التعديلات الطفيفة على وحدة إدارة الذاكرة (MMU) التي طُرحت مع معالج بنتيوم برو ميزة امتداد العنوان الفيزيائي (PAE)، مما مكّن من استخدام عناوين فيزيائية بحجم 36 بت، مع 2+9+9 بتات لجداول الصفحات ثلاثية المستويات، ونسخ البتات الـ 12 الأدنى مباشرةً إلى النتيجة. وتتوفر أيضًا صفحات كبيرة ( 2 ميجابايت ) بتجاوز المستوى الأدنى من الشجرة (مما ينتج عنه 2+9 بتات لتسلسل جداول ثنائي المستويات، ونسخ البتات الـ 9+12 الأدنى مباشرةً). بالإضافة إلى ذلك، سمح جدول سمات الصفحة بتحديد إمكانية التخزين المؤقت من خلال البحث عن بعض البتات العليا في جدول صغير على وحدة المعالجة المركزية.
كان دعم عدم التنفيذ متاحًا في الأصل على أساس كل مقطع على حدة، مما جعل استخدامه صعبًا للغاية. توفر معالجات x86 الأحدث بت NX (بت عدم التنفيذ) لكل صفحة في وضع PAE. تحاكي آليات W^X و Exec Shield و PaX المذكورة أعلاه دعم عدم التنفيذ لكل صفحة على الأجهزة المزودة بمعالجات x86 التي تفتقر إلى بت NX، وذلك عن طريق تحديد طول مقطع التعليمات البرمجية، مما يؤدي إلى انخفاض في الأداء وتقليل مساحة العناوين المتاحة.

تُزيل معمارية x86-64 ، وهي نسخة 64 بت من معمارية x86، التجزئة بشكل شبه كامل لصالح نموذج الذاكرة المسطحة المستخدم في معظم أنظمة التشغيل للمعالجات 386 أو أحدث. في الوضع الطويل، يتم تجاهل جميع إزاحات القطاعات، باستثناء قطاعي FS وGS؛ وتكون العناوين الخطية 64 بت بدلاً من 32 بت، مع كون البتات الـ 48 الأدنى من العنوان ذات أهمية. عند استخدامها مع صفحات بحجم 4 كيلوبايت ، تحتوي شجرة جدول الصفحات على أربعة مستويات بدلاً من ثلاثة، للتعامل مع العناوين الخطية الأكبر؛ في بعض معالجات x86-64 الأحدث، يمكن تفعيل مستوى خامس لجدول الصفحات ، لدعم العناوين الخطية 57 بت. في جميع مستويات جدول الصفحات، يتضمن إدخال جدول الصفحات بت NX.
تُقسّم العناوين الخطية ذات 48 بت كما يلي: 16 بت غير مستخدمة، وتسعة بتات لكل مستوى من مستويات الشجرة الأربعة (ليصبح المجموع 36 بتًا)، وتُنسخ البتات الـ 12 الأدنى مباشرةً إلى النتيجة. مع صفحات بحجم 2 ميجابايت ، يوجد ثلاثة مستويات فقط من جدول الصفحات، بإجمالي 27 بتًا مستخدمة في الترحيل و21 بتًا للإزاحة. تدعم بعض وحدات المعالجة المركزية الأحدث أيضًا صفحة بحجم 1 جيجابايت مع مستويين من الترحيل و 30 بتًا للإزاحة. [ 25 ] يمكن استخدام CPUID لتحديد ما إذا كانت صفحات بحجم 1 جيجابايت مدعومة.
في الحالات الثلاث، يجب أن تكون أعلى 16 بتًا مساوية للبت 48، أو بعبارة أخرى، يتم تمديد إشارة أدنى 48 بتًا لتتوافق مع البتات الأعلى. ويتم ذلك للسماح بتوسيع نطاق العنونة بشكل أكبر، دون المساس بالتوافق مع الإصدارات السابقة.
تُقسّم العناوين الخطية ذات 57 بتًا كما يلي: 7 بتات غير مستخدمة، و9 بتات لكل مستوى من مستويات الشجرة الخمسة (ليصبح المجموع 45 بتًا)، و12 بتًا الأدنى تُنسخ مباشرةً إلى النتيجة. تُمدد البتات الـ 57 الأدنى بإشارة. [ 26 ]
البدائل
أنظمة Burroughs B5000 series، وB6x00/B7x00/B5900/A-series/Unisys MCP
كان جهاز Burroughs B5000، الذي طُرح عام 1961، أول نظام تجاري يدعم الذاكرة الافتراضية (بعد Atlas )، ولا يحتاج إلى وحدة إدارة ذاكرة خارجية. [ 27 ] يوفر جهاز B5000، وخلفاؤه وصولًا إلى أنظمة Unisys ClearPath MCP (Libra) الحالية، وظيفتي وحدة إدارة الذاكرة - عناوين الذاكرة الافتراضية وحماية الذاكرة - من خلال نهج معماري مختلف. فبدلًا من إضافة ذاكرة افتراضية إلى معالج غير مصمم لها، تُدمج في التصميم الأساسي للمعالج/النظام، ما يُغني عن الحاجة إلى وحدة خارجية لإضافة وظائف ترجمة العناوين أو التحقق من الحدود، وهو ما يُحقق مستوىً غير مسبوق من أمان الذاكرة.
أولًا، في عملية تعيين عناوين الذاكرة الافتراضية، وبدلًا من الحاجة إلى وحدة إدارة الذاكرة (MMU)، تعتمد هذه الأجهزة على الواصفات . [ 28 ] [ 29 ] يشير البت العلوي من كلمة ذاكرة ذات 48 بت في أنظمة سلسلة Burroughs B5000 إلى ما إذا كانت الكلمة بيانات مستخدم أو كلمة واصف/تحكم؛ وكانت الواصفات للقراءة فقط من قِبل عمليات المستخدم، ولا يمكن تحديثها إلا بواسطة النظام (الأجهزة أو نظام التشغيل). تحتوي كلمات الذاكرة في أنظمة B6x00/B7x00/B5900/A-series/Unisys MCP على 48 بت بيانات و3 بتات علامات (وتحتوي الأنظمة اللاحقة حتى الحالية على 4 بتات علامات). الكلمات التي تحمل علامة فردية تكون للقراءة فقط من قِبل عمليات المستخدم - تحمل الواصفات علامة 5، بينما تحمل كلمات الترميز علامة 3.
يُخصَّص لكل كتلة ذاكرة مُحدَّدة مُعرِّف رئيسي يتضمن خصائص الكتلة - العنوان الفيزيائي، والحجم، وما إذا كانت موجودة في الذاكرة الرئيسية أم لا؛ وفي هذه الحالة، عند الوصول الأول، يجب تخصيص الكتلة، أو إذا كان لها عنوان، فهو عنوان في وحدة تخزين ثانوية ويجب تحميله إلى الذاكرة الرئيسية. تتم جميع عمليات الرجوع إلى التعليمات البرمجية والبيانات باستخدام مُعرِّف. عند تقديم طلب للوصول إلى الكتلة للقراءة أو الكتابة، يتحقق الجهاز من وجودها عبر بت الوجود (pbit) في المُعرِّف.
يشير بت pbit [ 30 ] الذي قيمته 1 إلى وجود الكتلة. في هذه الحالة، يمكن الوصول إلى الكتلة عبر عنوان الذاكرة الرئيسية الفعلي في الواصف. إذا كان بت pbit يساوي صفرًا، يتم توليد مقاطعة pbit [ 31 ] لوحدة التحكم في الذاكرة (MCP ) (نظام التشغيل) لتفعيل الكتلة. إذا كان حقل العنوان يساوي صفرًا، فهذا هو أول وصول إلى هذه الكتلة، ويتم تخصيصها (بت pbit ابتدائي). إذا كان حقل العنوان غير صفري، فهو عنوان قرص للكتلة، والتي تم تحميلها مسبقًا - يتم جلب الكتلة من القرص، ويتم تعيين بت pbit إلى واحد، ويتم تحديث عنوان الذاكرة الفعلية للإشارة إلى الكتلة في الذاكرة. هذا يجعل الواصفات مكافئة لإدخال جدول الصفحات في نظام وحدة إدارة الذاكرة (MMU)، ولكن الواصفات لا تعتمد على جدول.
لذا، تتم جميع عمليات تخصيص الذاكرة تلقائيًا بالكامل (إحدى سمات الأنظمة الحديثة [ 32 ] )، ولا توجد طريقة أخرى لتخصيص الكتل سوى هذه الآلية. لا توجد استدعاءات مثل malloc أو dealloc، حيث يتم تخصيص كتل الذاكرة تلقائيًا عند مقاطعة بتات البت أو يتم تجاهلها. كما أن هذه الآلية كسولة ، إذ لا يتم تخصيص أي كتلة إلا عند الحاجة إليها. عندما تقترب الذاكرة من الامتلاء، يقوم معالج التحكم في الذاكرة (MCP) بفحص مجموعة العمل، محاولًا ضغطها (لأن النظام مُجزأ وليس مُصفحًا)، وإلغاء تخصيص المقاطع للقراءة فقط (مثل مقاطع التعليمات البرمجية التي يمكن استعادتها من نسختها الأصلية)، وكحل أخير، يقوم بنقل مقاطع البيانات المُحدثة إلى القرص.
تتمثل إحدى الطرق الأخرى التي توفر بها هذه الأنظمة وظيفة وحدة إدارة الذاكرة (MMU) في الحماية. بما أن جميع عمليات الوصول تتم عبر المُعرِّف، يمكن للأجهزة التحقق من أن جميع عمليات الوصول ضمن الحدود المسموح بها، وفي حالة الكتابة، من أن العملية لديها إذن الكتابة. نظام MCP آمن بطبيعته، وبالتالي لا يحتاج إلى وحدة إدارة الذاكرة (MMU) لتوفير هذا المستوى من حماية الذاكرة.
يمكن مشاركة الكتل بين العمليات عبر مُعرّفات النسخ في مكدسات العمليات (المكدس هو بنية نظام خاصة تُمثل حالة تنفيذ العملية). وبالتالي، قد تتمتع بعض العمليات بصلاحية الكتابة، بينما لا تتمتع بها عمليات أخرى. مقاطع التعليمات البرمجية للقراءة فقط، وبالتالي قابلة لإعادة الدخول ومُشتركة بين العمليات. تحتوي مُعرّفات النسخ على حقل عنوان بطول 20 بت يُحدد فهرس المُعرّف الرئيسي في مصفوفة المُعرّفات الرئيسية. يُتيح هذا أيضًا آلية اتصال بين العمليات (IPC) فعّالة وآمنة للغاية. يُمكن نقل الكتل بسهولة، حيث لا يلزم سوى تحديث المُعرّف الرئيسي عند تغيير حالة الكتلة.
جانب آخر هو الأداء - هل توفر الأنظمة القائمة على وحدة إدارة الذاكرة (MMU) أداءً أفضل أم الأنظمة غير القائمة عليها؟ يمكن تنفيذ أنظمة MCP على أجهزة قياسية مزودة بوحدة إدارة الذاكرة (مثل جهاز كمبيوتر شخصي عادي). حتى لو استخدم تنفيذ النظام وحدة إدارة الذاكرة بطريقة ما، فلن يكون ذلك مرئيًا على مستوى MCP.
تغيير البنك
استُخدمت تقنية بسيطة تُسمى تبديل البنوك على نطاق واسع في المعالجات الدقيقة المبكرة ذات 8 بت ، مثل MOS 6502. فعلى سبيل المثال، كانت وحدة إدارة الذاكرة (MMU) في جهاز أتاري تُضيف بتات إضافية على ناقل العناوين للاختيار بين عدة بنوك من ذاكرة الوصول العشوائي الديناميكية (DRAM) بناءً على الشريحة النشطة حاليًا، والتي عادةً ما تكون وحدة المعالجة المركزية (CPU) أو وحدة التحكم في الذاكرة (ANTIC) . وقد استُخدمت هذه التقنية لتوسيع الذاكرة المتاحة في جهاز أتاري 130XE إلى 128 كيلوبايت. [ 33 ] واستخدم جهاز كومودور 128 نهجًا مشابهًا.
انظر أيضاً
مراجع
- ↑ وحدة إدارة الذاكرة في قاموس الحوسبة المجاني على الإنترنت
- ↑ "مواصفات منتج وحدة إدارة الذاكرة Z8010 Z8000 MMU" (ملف PDF) . زيلوج . أبريل 1985.
- ↑ "كتاب بيانات 1983/84" (ملف PDF) . زيلوغ. الصفحات 215-234 . تاريخ الاسترجاع : 27-04-2021 .
- ↑ شميدت، ستيفن (أبريل 1983). "الذاكرة الافتراضية للحواسيب الصغيرة" . بايت . المجلد 8، العدد 4. الصفحات 234-235 .
- 1 2 3 4 5 6 7 زهر، جريج (نوفمبر 1986). "وحدات إدارة الذاكرة لبنية 68000" (ملف PDF) . بايت . الصفحات 127-135 . مؤرشف من الأصل (ملف PDF) بتاريخ 2020-05-02.
- ↑ جلاسر، إدوارد ل.؛ كولور، جون ف.؛ أوليفر، جي إيه (1965). تصميم نظام حاسوب لتطبيقات المشاركة الزمنية . مؤتمر الحاسوب المشترك لخريف 1965.
- ↑ "6". دليل معالج PDP-11/70 (ملف PDF) . ديسمبر 1977.
- ↑ تانينباوم، أندرو س. (2009). أنظمة التشغيل الحديثة . أبر سادل ريفر (نيوجيرسي): برنتيس هول. ISBN 978-0-13-600663-3.
- 1 2 3 4 5 فرانك أويدا (2009). "المحاضرة 7: إدارة الذاكرة" (ملف PDF) . CSE 120: مبادئ أنظمة التشغيل . جامعة كاليفورنيا في سان دييغو . تاريخ الاسترجاع: 4 ديسمبر 2013 .
- ↑ دليل مرجعي لمعالج Spectra 70 70/46 (ملف PDF) . شركة RCA . مارس 1968. الصفحات 5-6 ، 12-13 . تم الاطلاع عليه بتاريخ 15 أغسطس 2013 .
- ↑ دليل مرجعي، حاسوب SDS 940 (ملف PDF) . أنظمة البيانات العلمية . 1966. الصفحات 8-10 .
- ↑ دليل هندسة الأجهزة للوحة المعالج المركزي 2060 (ملف PDF) . شركة صن مايكروسيستمز . 10 مايو 1987. الصفحات 121-129 .
- 1 2 3 تستند هذه المقالة إلى مواد مأخوذة من Memory+management+unit في قاموس الحوسبة المجاني على الإنترنت قبل 1 نوفمبر 2008 وتم دمجها بموجب شروط "إعادة الترخيص" الخاصة بـ GFDL ، الإصدار 1.3 أو أحدث.
- 1 2 دليل بيانات المعالج الدقيق 1986 (PDF) . سيجنيتكس . الصفحات 2-568 – 2-598 .
- ↑ بيل، جوردون. "نظرة استرجاعية على ما تعلمناه من جهاز PDP-11" .
- ↑ "أرشيفات IBM: تواريخ وخصائص System/360" . 03.ibm.com . 23 يناير 2003. مؤرشف من الأصل في 16 يناير 2005. تم الاطلاع عليه بتاريخ 3 مايو 2017 .
- 1 2 "الخصائص الوظيفية لنظام IBM System/360 طراز 67، الطبعة الثالثة" (ملف PDF) . فبراير 1972. GA27-2719-2 . تم الاطلاع عليه بتاريخ 29 أكتوبر 2021 .
- 1 2 3 4 5 6 "الفصل 4: إدارة الذاكرة". دليل مرجعي لهندسة VAX (ملف PDF) . شركة ديجيتال إكويبمنت . 1987. ISBN 0-932376-86-X. EY-3459E-DP.
- ↑ "دليل المرجع التقني لمعالج Cortex-A8" (ملف PDF) . Infoventer.arm.com . تاريخ الاسترجاع: 3 مايو 2017 .
- 1 2 3 "الجزء الثاني-أ / برنامج OpenVMS AXP". بنية Alpha AXP (ملف PDF) (الطبعة الثانية ). دار النشر الرقمية . 1995. ISBN 1-55558-145-5. EY-TI32E-DP.
- 1 2 3 "الجزء الثاني-ب / برنامج DEC OSF/1". بنية ألفا AXP (ملف PDF) (الطبعة الثانية ). دار النشر الرقمية . 1995. ISBN 1-55558-145-5. EY-TI32E-DP.
- 1 2 "الجزء الثاني-ج / برنامج ويندوز إن تي إيه إكس بي". بنية ألفا إيه إكس بي (ملف PDF) (الطبعة الثانية ). دار النشر الرقمية . 1995. ISBN 1-55558-145-5. EY-TI32E-DP.
- ↑ دليل مستخدم لوحة Sun 68000، شركة Sun Microsystems، فبراير 1983، الإصدار B
- ↑ "دليل بنية Sun-2" (ملف PDF) . شركة Sun Microsystems . 15 ديسمبر 1983. الصفحات 9-12 .
- ↑ "دليل مبرمج معمارية AMD64، المجلد 2: برمجة النظام" (ملف PDF) . مارس 2017. تاريخ الاسترجاع : 5 ديسمبر 2017 .
- ↑ "ورقة بيضاء حول نظام الترحيل ذي الخمسة مستويات ونظام EPT ذي الخمسة مستويات" . إنتل . تم الاطلاع بتاريخ 2026-04-05 .
- ↑ تانينباوم، أندرو س.؛ هيردر، جوريت ن.؛ بوس، هربرت (مايو 2006). "هل يُمكننا جعل أنظمة التشغيل موثوقة وآمنة؟" . مجلة الكمبيوتر . 39 (5): 44-51 . Bibcode : 2006Compr..39e..44T . CiteSeerX 10.1.1.112.3028 . doi : 10.1109/MC.2006.156 . S2CID 99779 .
- ↑ "الوصف" (ملف PDF) . Bitsavers .
- ↑ "وصف يونيسيس" . يونيسيس .
- ↑ "Pbits" . Unisys .
- ↑ "مقاطعة Pbit" . يونيسيس .
- ↑ دانيال إتش إتش إنجلز (أغسطس 1981). "مبادئ التصميم وراء لغة سمول توك" . مجلة بايت . مؤرشف من الأصل بتاريخ 27-09-2007.
- ↑ وحدة التحكم بالذاكرة (MCU)، فريدي (تقرير فني). أتاري. 1983.
- وحدات المعالجة المركزية
- الدوائر الرقمية
- إدارة الذاكرة
- الذاكرة الافتراضية
