مخزن مؤقت للترجمة
في مجال الحوسبة وتصميم المعالجات ، يُعدّ مخزن الترجمة المؤقت ( TLB ) ذاكرة تخزين مؤقتة تخزن أحدث ترجمات عناوين الذاكرة الافتراضية إلى عناوين الذاكرة الفعلية . ويُستخدم لتقليل زمن الوصول إلى موقع ذاكرة المستخدم. [ 1 ] ويمكن تسميته أيضًا بذاكرة تخزين مؤقتة لترجمة العناوين. وهو جزء من وحدة إدارة الذاكرة (MMU) في الشريحة. قد يتواجد مخزن الترجمة المؤقت بين وحدة المعالجة المركزية وذاكرة التخزين المؤقت الخاصة بها ، أو بين ذاكرة التخزين المؤقت الخاصة بوحدة المعالجة المركزية والذاكرة الرئيسية، أو بين مستويات ذاكرة التخزين المؤقت متعددة المستويات. تحتوي غالبية معالجات أجهزة سطح المكتب وأجهزة الكمبيوتر المحمولة والخوادم على مخزن ترجمة مؤقت واحد أو أكثر ضمن مكونات إدارة الذاكرة، وهو موجود دائمًا تقريبًا في أي معالج يستخدم ذاكرة افتراضية مُجزأة أو مُصفحة .
يُنفَّذ مخزن الترجمة (TLB) أحيانًا كذاكرة قابلة للعنونة بالمحتوى (CAM). مفتاح البحث في ذاكرة CAM هو العنوان الظاهري، ونتيجة البحث هي عنوان فعلي . إذا كان العنوان المطلوب موجودًا في مخزن الترجمة، فإن بحث CAM يُسفر عن تطابق سريع، ويمكن استخدام العنوان الفعلي المُسترجع للوصول إلى الذاكرة. يُسمى هذا "نجاحًا في مخزن الترجمة". أما إذا لم يكن العنوان المطلوب موجودًا في مخزن الترجمة، فيُسمى "فشلًا"، وتستمر عملية الترجمة بالبحث في جدول الصفحات في عملية تُسمى " استعراض الصفحات" . يُعد استعراض الصفحات عمليةً تستغرق وقتًا أطول مقارنةً بسرعة المعالج، حيث يتضمن قراءة محتويات مواقع ذاكرة متعددة واستخدامها لحساب العنوان الفعلي. بعد تحديد العنوان الفعلي بواسطة استعراض الصفحات، يتم إدخال ربط العنوان الظاهري بالعنوان الفعلي في مخزن الترجمة. على سبيل المثال، يحتوي معالج PowerPC 604 على مخزن ترجمة ثنائي الاتجاه من نوع " مجموعة التجميع" لتحميل البيانات وتخزينها. [ 2 ] تحتوي بعض المعالجات على مخازن ترجمة مختلفة لعناوين التعليمات والبيانات.
ملخص

يحتوي مُترجم الترجمة السريعة (TLB) على عدد ثابت من الخانات التي تحتوي على مدخلات جدول الصفحات ومدخلات جدول القطاعات؛ تربط مدخلات جدول الصفحات العناوين الافتراضية بالعناوين الفيزيائية وعناوين الجداول الوسيطة، بينما تربط مدخلات جدول القطاعات العناوين الافتراضية بعناوين القطاعات وعناوين الجداول الوسيطة وعناوين جدول الصفحات. الذاكرة الافتراضية هي مساحة الذاكرة كما يراها أحد العمليات؛ غالبًا ما تُقسّم هذه المساحة إلى صفحات ذات حجم ثابت (في الذاكرة المُصفحة)، أو بشكل أقل شيوعًا إلى قطاعات ذات أحجام متغيرة (في الذاكرة المُجزأة). يحتفظ جدول الصفحات، الذي يُخزّن عادةً في الذاكرة الرئيسية ، بسجل لمواقع تخزين الصفحات الافتراضية في الذاكرة الفيزيائية. تستخدم هذه الطريقة عمليتي وصول إلى الذاكرة (واحدة لمدخل جدول الصفحات، وواحدة للبايت) للوصول إلى بايت. أولًا، يُبحث في جدول الصفحات عن رقم الإطار. ثانيًا، يُعطي رقم الإطار مع إزاحة الصفحة العنوان الفعلي. وبالتالي، فإن أي مخطط ذاكرة افتراضية مباشر سيؤدي إلى مضاعفة وقت الوصول إلى الذاكرة. لذلك، يُستخدم مُترجم الترجمة السريعة (TLB) لتقليل الوقت المستغرق للوصول إلى مواقع الذاكرة في طريقة جدول الصفحات. يُعد TLB ذاكرة تخزين مؤقتة لجدول الصفحات، وهو يمثل مجموعة فرعية فقط من محتويات جدول الصفحات.
بالرجوع إلى عناوين الذاكرة الفعلية، قد يقع مخزن الترجمة السريعة (TLB) بين وحدة المعالجة المركزية وذاكرة التخزين المؤقت الخاصة بها، أو بين ذاكرة التخزين المؤقت وذاكرة التخزين الرئيسية ، أو بين مستويات ذاكرة التخزين المؤقت متعددة المستويات. يحدد موقع المخزن ما إذا كانت ذاكرة التخزين المؤقت تستخدم عناوين فعلية أم افتراضية. إذا كانت ذاكرة التخزين المؤقت تستخدم عناوين افتراضية، تُرسل الطلبات مباشرةً من وحدة المعالجة المركزية إلى ذاكرة التخزين المؤقت، ولا يتم الوصول إلى مخزن الترجمة السريعة إلا في حالة عدم وجود البيانات المطلوبة في ذاكرة التخزين المؤقت. أما إذا كانت ذاكرة التخزين المؤقت تستخدم عناوين فعلية، فتقوم وحدة المعالجة المركزية بالبحث في مخزن الترجمة السريعة في كل عملية ذاكرة، ثم يُرسل العنوان الفعلي الناتج إلى ذاكرة التخزين المؤقت.
في بنية هارفارد أو بنية هارفارد المعدلة ، قد توجد مساحة عناوين افتراضية منفصلة أو أجهزة وصول إلى الذاكرة خاصة بالتعليمات والبيانات. وهذا قد يؤدي إلى وجود مخازن ترجمة منفصلة لكل نوع وصول، مخزن ترجمة التعليمات (ITLB) ومخزن ترجمة البيانات (DTLB). وقد تم إثبات فوائد عديدة لاستخدام مخازن ترجمة منفصلة للبيانات والتعليمات. [ 4 ]
يمكن استخدام ذاكرة الترجمة السريعة (TLB) كذاكرة تخزين مؤقتة سريعة للأجهزة. يوضح الشكل آلية عمل ذاكرة الترجمة السريعة. يتكون كل مدخل فيها من جزأين: علامة وقيمة. إذا تطابقت علامة العنوان الظاهري الوارد مع العلامة الموجودة في ذاكرة الترجمة السريعة، تُعاد القيمة المقابلة. ولأن البحث في ذاكرة الترجمة السريعة عادةً ما يكون جزءًا من مسار تنفيذ التعليمات، فإن عمليات البحث سريعة ولا تُؤثر بشكل ملحوظ على الأداء. مع ذلك، لكي تتمكن ذاكرة الترجمة السريعة من البحث ضمن مسار تنفيذ التعليمات، يجب أن تكون صغيرة الحجم.
من التحسينات الشائعة لذاكرة التخزين المؤقت ذات العناوين الفيزيائية إجراء بحث في جدول ترجمة العناوين (TLB) بالتوازي مع الوصول إلى ذاكرة التخزين المؤقت. عند كل مرجع للذاكرة الافتراضية، يتحقق النظام من جدول ترجمة العناوين (TLB) لمعرفة ما إذا كان رقم الصفحة موجودًا فيه. إذا كان موجودًا، فهذا يعني نجاح الوصول إلى TLB، ويتم إجراء الترجمة. يُعاد رقم الإطار ويُستخدم للوصول إلى الذاكرة. إذا لم يكن رقم الصفحة موجودًا في TLB، فيجب التحقق من جدول الصفحات. اعتمادًا على وحدة المعالجة المركزية، يمكن القيام بذلك تلقائيًا في النظام أو باستخدام مقاطعة لنظام التشغيل. عند الحصول على رقم الإطار، يمكن استخدامه للوصول إلى الذاكرة. بالإضافة إلى ذلك، نضيف رقم الصفحة ورقم الإطار إلى TLB، بحيث يتم العثور عليهما بسرعة عند المرجع التالي. إذا كان TLB ممتلئًا، فيجب اختيار كتلة مناسبة للاستبدال. هناك طرق استبدال مختلفة مثل الأقل استخدامًا مؤخرًا (LRU) والأول في الأول خارجًا (FIFO) وما إلى ذلك؛ راجع قسم ترجمة العناوين في مقالة ذاكرة التخزين المؤقت لمزيد من التفاصيل حول العناوين الافتراضية فيما يتعلق بذاكرة التخزين المؤقت وجداول ترجمة العناوين (TLB).
الآثار المترتبة على الأداء

يضطر المعالج إلى الوصول إلى الذاكرة الرئيسية في حالة عدم العثور على البيانات في ذاكرة التخزين المؤقت للتعليمات، أو ذاكرة التخزين المؤقت للبيانات، أو ذاكرة الترجمة السريعة (TLB). أما الحالة الثالثة (الأبسط) فهي عندما تكون المعلومات المطلوبة موجودة بالفعل في ذاكرة التخزين المؤقت، ولكن معلومات الترجمة من الذاكرة الافتراضية إلى الذاكرة الفعلية غير موجودة في ذاكرة الترجمة السريعة. جميع هذه الحالات بطيئة، نظرًا للحاجة إلى الوصول إلى مستوى أبطأ في التسلسل الهرمي للذاكرة، لذا فإن سلامة ذاكرة الترجمة السريعة أمر بالغ الأهمية. في الواقع، قد يكون عدم العثور على البيانات في ذاكرة الترجمة السريعة أكثر تكلفة من عدم العثور عليها في ذاكرة التخزين المؤقت للتعليمات أو ذاكرة التخزين المؤقت للبيانات، نظرًا للحاجة ليس فقط إلى تحميل البيانات من الذاكرة الرئيسية، بل أيضًا إلى استعراض الصفحات، مما يتطلب عدة عمليات وصول إلى الذاكرة.
يوضح المخطط الانسيابي المرفق آلية عمل ذاكرة الترجمة السريعة (TLB). في حال عدم العثور على الصفحة المطلوبة في ذاكرة الترجمة السريعة، يتحقق المعالج من جدول الصفحات بحثًا عن مدخل الصفحة. إذا كانت بتة التواجد مُفعّلة، فهذا يعني أن الصفحة موجودة في الذاكرة الرئيسية، ويمكن للمعالج استرجاع رقم الإطار من مدخل جدول الصفحات لتكوين العنوان الفيزيائي. [ 6 ] كما يقوم المعالج بتحديث ذاكرة الترجمة السريعة لتضمين مدخل جدول الصفحات الجديد. أخيرًا، إذا لم تكن بتة التواجد مُفعّلة، فهذا يعني أن الصفحة المطلوبة غير موجودة في الذاكرة الرئيسية، ويتم إصدار خطأ في الصفحة . عندئذٍ، يتم استدعاء مقاطعة خطأ الصفحة، والتي بدورها تُنفّذ روتين معالجة خطأ الصفحة.
إذا لم تتسع مجموعة عمل الصفحة في ذاكرة الترجمة السريعة (TLB)، فسيحدث تبادل متكرر للصفحات في ذاكرة الترجمة السريعة، حيث تتكرر حالات عدم العثور على الصفحة المطلوبة، وتحل كل صفحة مخزنة مؤقتًا محل صفحة ستُستخدم قريبًا، مما يؤدي إلى تدهور الأداء بنفس طريقة تبادل الصفحات في ذاكرة التخزين المؤقت للتعليمات أو البيانات. قد يحدث تبادل الصفحات في ذاكرة الترجمة السريعة حتى في حال عدم حدوث تبادل الصفحات في ذاكرة التخزين المؤقت للتعليمات أو البيانات ، لأن هذه البيانات تُخزن في وحدات مختلفة الأحجام. تُخزن التعليمات والبيانات في كتل صغيرة ( أسطر ذاكرة التخزين المؤقت )، وليس في صفحات كاملة، ولكن يتم البحث عن العناوين على مستوى الصفحة. وبالتالي، حتى لو كانت مجموعات عمل التعليمات والبيانات تتسع في ذاكرة التخزين المؤقت، فإذا كانت مجموعات العمل مجزأة عبر صفحات متعددة، فقد لا تتسع مجموعة عمل العناوين الافتراضية في ذاكرة الترجمة السريعة، مما يتسبب في تبادل الصفحات. لذلك، يتطلب تحديد الحجم المناسب لذاكرة الترجمة السريعة مراعاة ليس فقط حجم ذاكرة التخزين المؤقت للتعليمات والبيانات، ولكن أيضًا كيفية تجزئتها عبر صفحات متعددة.
مخازن مؤقتة متعددة
على غرار الذاكرة المخبئية، قد تحتوي ذاكرات الترجمة المؤقتة (TLBs) على مستويات متعددة. يمكن (ويُعتاد في الوقت الحاضر) تصميم وحدات المعالجة المركزية (CPUs) باستخدام عدة ذاكرات ترجمة مؤقتة، على سبيل المثال، ذاكرة ترجمة مؤقتة صغيرة من المستوى الأول (L1 TLB) (قد تكون ترابطية بالكامل) تتميز بسرعة فائقة، وذاكرة ترجمة مؤقتة أكبر من المستوى الثاني (L2 TLB) تتميز بسرعة أقل. عند استخدام ذاكرة ترجمة مؤقتة للتعليمات (ITLB) وذاكرة ترجمة مؤقتة للبيانات (DTLB)، يمكن أن تحتوي وحدة المعالجة المركزية على ثلاث (ITLB1، DTLB1، TLB2) أو أربع ذاكرات ترجمة مؤقتة.
على سبيل المثال، تحتوي بنية Nehalem الدقيقة من Intel على ذاكرة تخزين مؤقتة من المستوى الأول (L1 DTLB) ذات ترابط رباعي الاتجاهات، تضم 64 مدخلاً لصفحات بحجم 4 كيلوبايت و32 مدخلاً لصفحات بحجم 2/4 ميجابايت، وذاكرة تخزين مؤقتة من المستوى الأول (L1 ITLB) تضم 128 مدخلاً لصفحات بحجم 4 كيلوبايت باستخدام الترابط الرباعي، و14 مدخلاً ذات ترابط كامل لصفحات بحجم 2/4 ميجابايت (يتم تقسيم جزئي ذاكرة التخزين المؤقتة بشكل ثابت بين خيطين) [ 7 ] ، وذاكرة تخزين مؤقتة موحدة من المستوى الثاني (L2 TLB) تضم 512 مدخلاً لصفحات بحجم 4 كيلوبايت، [ 8 ] وكلاهما ذو ترابط رباعي الاتجاهات. [ 9 ]
قد تحتوي بعض ذاكرات الترجمة السريعة (TLBs) على أقسام منفصلة للصفحات الصغيرة والصفحات الكبيرة. على سبيل المثال، تفصل بنية Intel Skylake الدقيقة مداخل ذاكرة الترجمة السريعة للصفحات التي يبلغ حجمها 1 جيجابايت عن تلك الخاصة بالصفحات التي يبلغ حجمها 4 كيلوبايت/2 ميجابايت. [ 10 ]
معالجة أخطاء TLB
توجد ثلاث طرق للتعامل مع أخطاء TLB في البنى الحديثة:
- مع إدارة ذاكرة الترجمة السريعة (TLB) المُدارة بواسطة الأجهزة، يقوم المعالج المركزي (CPU) تلقائيًا بفحص جداول الصفحات (باستخدام سجل CR3 في معالجات x86 ، على سبيل المثال) للتحقق من وجود مدخل صالح في جدول الصفحات للعنوان الظاهري المُحدد. إذا وُجد مدخل، يتم جلبه إلى ذاكرة الترجمة السريعة، وتُعاد محاولة الوصول إليها: هذه المرة ينجح الوصول، ويمكن للبرنامج المتابعة بشكل طبيعي. إذا لم يجد المعالج المركزي أي مدخل صالح للعنوان الظاهري في جداول الصفحات، فإنه يُصدر استثناء خطأ في الصفحة ، والذي يجب على نظام التشغيل معالجته. تتضمن معالجة أخطاء الصفحات عادةً جلب البيانات المطلوبة إلى الذاكرة الفعلية، وإنشاء مدخل في جدول الصفحات لربط العنوان الظاهري المُسبب للخطأ بالعنوان الفعلي الصحيح، ثم استئناف البرنامج. مع ذاكرة الترجمة السريعة المُدارة بواسطة الأجهزة، يكون تنسيق مداخل ذاكرة الترجمة السريعة غير مرئي للبرامج، ويمكن أن يتغير من معالج مركزي إلى آخر دون التسبب في فقدان التوافق مع نظام التشغيل.
- في حالة إدارة ذاكرة الترجمة (TLB) بواسطة البرمجيات، يُولّد خطأ TLB استثناءً، ويتولى نظام التشغيل مسؤولية البحث في جداول الصفحات للعثور على المدخل المناسب. ثم يقوم النظام بتحميل المعلومات من هذا المدخل إلى ذاكرة الترجمة، ويعيد تشغيل البرنامج من التعليمة التي تسببت في الخطأ. وكما هو الحال مع إدارة ذاكرة الترجمة المادية، إذا لم يعثر نظام التشغيل على ترجمة صالحة في جداول الصفحات، فهذا يعني حدوث خطأ في الصفحة، ويتعين على النظام معالجته وفقًا لذلك. تحتوي مجموعات تعليمات وحدات المعالجة المركزية التي تُدير ذاكرة الترجمة بواسطة البرمجيات على تعليمات تسمح بتحميل المدخلات في أي خانة في ذاكرة الترجمة. ويُحدد تنسيق مدخل ذاكرة الترجمة كجزء من بنية مجموعة التعليمات (ISA). [ 11 ]
- في حالة إدارة ذاكرة الترجمة السريعة (TLB) بواسطة البرامج الثابتة، يؤدي أي خطأ في ذاكرة الترجمة السريعة إلى تنبيه البرامج الثابتة للنظام، المسؤولة عن فحص جداول الصفحات والعثور على المدخل المناسب، على غرار ما يفعله معالج أخطاء ذاكرة الترجمة السريعة في حالة إدارتها بواسطة البرامج. في حالة إدارة ذاكرة الترجمة السريعة بواسطة البرامج الثابتة، لا يكون تنسيق مداخل ذاكرة الترجمة السريعة مرئيًا لبرامج النظام، ويمكن أن يتغير من وحدة معالجة مركزية إلى أخرى دون التأثير على توافق نظام التشغيل.
تحدد بنية MIPS ذاكرة الترجمة السريعة (TLB) التي تتم إدارتها بواسطة البرمجيات. [ 12 ]
تسمح بنية SPARC V9 بتنفيذ SPARC V9 بدون وحدة إدارة الذاكرة (MMU)، أو بوحدة إدارة الذاكرة مع ذاكرة ترجمة العناوين (TLB) مُدارة برمجياً، أو بوحدة إدارة الذاكرة مع ذاكرة ترجمة العناوين (TLB) مُدارة عتادياً، [ 13 ] وتحدد بنية UltraSPARC لعام 2005 ذاكرة ترجمة العناوين (TLB) مُدارة برمجياً. [ 14 ]
توفر بنية إيتانيوم خيار استخدام ذاكرات الترجمة السريعة (TLBs) المُدارة بواسطة البرامج أو الأجهزة. [ 15 ]
تعتمد بنية ألفا على ذاكرة ترجمة العناوين (TLB) المُدارة بواسطة البرامج الثابتة، حيث يوجد رمز معالجة أخطاء TLB في PALcode ، وليس في نظام التشغيل. ولأن PALcode الخاص بالمعالج قد يكون خاصًا به وبنظام التشغيل، فإن هذا يسمح لإصدارات مختلفة من PALcode بتنفيذ تنسيقات مختلفة لجداول الصفحات لأنظمة التشغيل المختلفة، دون الحاجة إلى تحديد تنسيق TLB والتعليمات اللازمة للتحكم فيه من قِبل البنية. [ 16 ]
نموذج TLB
هذه هي مستويات الأداء النموذجية لـ TLB: [ 17 ]
- الحجم: 12 بت - 4096 مدخلاً
- زمن الوصول: 0.5 - 1 دورة ساعة
- عقوبة الإخفاق: من 10 إلى 100 دورة ساعة
- معدل الخطأ: 0.01 - 1% (20-40% للتطبيقات المتفرقة/الرسومية)
يُعرَّف متوسط معدل دورة الذاكرة الفعال على النحو التالي:دورات، حيثيمثل عدد الدورات المطلوبة لقراءة الذاكرة،هو معدل الخطأ، ويمثل زمن الوصول بالوحدات الزمنية. إذا استغرقت عملية الوصول إلى ذاكرة الترجمة (TLB) دورة ساعة واحدة، واستغرقت عملية عدم الوصول 30 دورة ساعة، واستغرقت عملية قراءة الذاكرة 30 دورة ساعة، وكان معدل عدم الوصول 1%، فإن معدل دورة الذاكرة الفعلي هو متوسط(31.29 دورة ساعة لكل عملية وصول إلى الذاكرة). [ 18 ]
مفتاح مساحة العنوان
عند تبديل مساحة العناوين، كما يحدث عند تبديل السياق بين العمليات (وليس بين الخيوط)، قد تصبح بعض إدخالات ذاكرة الترجمة السريعة (TLB) غير صالحة، نظرًا لاختلاف الربط بين الذاكرة الافتراضية والذاكرة الفعلية. أبسط استراتيجية للتعامل مع هذه المشكلة هي مسح ذاكرة الترجمة السريعة بالكامل. هذا يعني أنه بعد التبديل، ستكون ذاكرة الترجمة السريعة فارغة، وأي محاولة للوصول إلى الذاكرة ستفشل، لذا سيستغرق الأمر بعض الوقت قبل أن تعود الأمور إلى سرعتها الكاملة. تستخدم وحدات المعالجة المركزية الأحدث استراتيجيات أكثر فعالية لتحديد العملية التي ينتمي إليها كل إدخال. هذا يعني أنه إذا عملت عملية ثانية لفترة قصيرة فقط ثم عادت إلى العملية الأولى، فقد تظل ذاكرة الترجمة السريعة تحتوي على إدخالات صالحة، مما يوفر الوقت اللازم لإعادة تحميلها. [ 19 ]
تتجنب استراتيجيات أخرى مسح ذاكرة الترجمة السريعة (TLB) عند تبديل السياق: (أ) يستخدم نظام التشغيل ذو مساحة العنوان الواحدة نفس التعيين من العنوان الافتراضي إلى العنوان الفعلي لجميع العمليات. (ب) تحتوي بعض وحدات المعالجة المركزية على سجل معرف العملية، ويستخدم الجهاز إدخالات ذاكرة الترجمة السريعة (TLB) فقط إذا تطابقت مع معرف العملية الحالي.
على سبيل المثال، في معالج Alpha 21264 ، يُوسَم كل مدخل في ذاكرة الترجمة (TLB) برقم مساحة عنوان (ASN)، وتُعتبر مداخل TLB التي يتطابق رقم مساحة عنوانها مع المهمة الحالية فقط صالحة. وفي مثال آخر، في معالج Intel Pentium Pro ، يمكن استخدام علامة التمكين العامة للصفحة (PGE) في المسجل CR4 والعلامة العامة (G) لمدخل دليل الصفحات أو جدول الصفحات لمنع إبطال الصفحات المستخدمة بكثرة تلقائيًا في ذاكرة الترجمة عند تبديل المهام أو تحميل المسجل CR3. ومنذ عام 2010، تدعم معالجات Intel 64 ذات بنية Westmere الدقيقة أيضًا مُعرّفات سياق العملية (PCIDs) ذات 12 بت ، مما يسمح بالاحتفاظ بمداخل TLB لمساحات عناوين خطية متعددة، حيث تُستخدم فقط تلك التي تتطابق مع مُعرّف سياق العملية الحالي لترجمة العناوين. [ 20 ] [ 21 ]
بينما يُعدّ مسح ذاكرة الترجمة (TLB) بشكل انتقائي خيارًا متاحًا في ذاكرات الترجمة المُدارة برمجيًا، فإن الخيار الوحيد في بعض ذاكرات الترجمة المادية (مثل ذاكرة الترجمة في معالج Intel 80386 ) هو مسح ذاكرة الترجمة بالكامل عند تبديل مساحة العناوين. في المقابل، تسمح ذاكرات الترجمة المادية الأخرى (مثل ذاكرة الترجمة في معالجات Intel 80486 والمعالجات اللاحقة من نوع x86، وذاكرة الترجمة في معالجات ARM ) بمسح إدخالات فردية من ذاكرة الترجمة مُفهرسة حسب العنوان الظاهري.
يُعدّ تفريغ ذاكرة الترجمة (TLB) آلية أمان مهمة لعزل الذاكرة بين العمليات، لضمان عدم تمكّن أي عملية من الوصول إلى البيانات المخزنة في صفحات ذاكرة عملية أخرى. ويكتسب عزل الذاكرة أهمية خاصة أثناء عمليات التبديل بين عملية نواة نظام التشغيل ذات الامتيازات وعمليات المستخدم، كما برز ذلك جليًا في ثغرة Meltdown الأمنية. وتعتمد استراتيجيات التخفيف، مثل عزل جدول صفحات النواة (KPTI)، اعتمادًا كبيرًا على عمليات تفريغ ذاكرة الترجمة (TLB) التي تؤثر على الأداء، وتستفيد بشكل كبير من إدارة إدخالات ذاكرة الترجمة (TLB) الانتقائية المدعومة بالأجهزة، مثل PCID. [ 22 ]
المحاكاة الافتراضية وذاكرة الترجمة السريعة x86
مع ظهور تقنية المحاكاة الافتراضية لدمج الخوادم، بُذلت جهود كبيرة لتسهيل محاكاة بنية x86 افتراضياً وضمان أداء أفضل للأجهزة الافتراضية على أجهزة x86. [ 23 ] [ 24 ]
عادةً، لا ترتبط المدخلات في ذاكرة الترجمة السريعة (TLB) لمعالجات x86 بمساحة عناوين محددة، بل تشير ضمنيًا إلى مساحة العناوين الحالية. لذا، في كل مرة يحدث فيها تغيير في مساحة العناوين، مثل تبديل السياق، يجب مسح ذاكرة الترجمة السريعة بالكامل. يُعدّ الاحتفاظ بعلامة تربط كل مدخل في ذاكرة الترجمة السريعة بمساحة عناوين في البرمجيات، ومقارنة هذه العلامة أثناء البحث في ذاكرة الترجمة السريعة ومسحها، عمليةً مكلفةً للغاية، خاصةً وأن ذاكرة الترجمة السريعة لمعالجات x86 مصممة للعمل بزمن استجابة منخفض جدًا وبشكل كامل في الأجهزة. في عام 2008، قدمت كل من إنتل ( Nehalem ) [ 25 ] و AMD ( SVM ) [ 26 ] علامات كجزء من مدخل ذاكرة الترجمة السريعة، ووحدات أجهزة مخصصة للتحقق من العلامة أثناء البحث. لم تستخدم جميع أنظمة التشغيل هذه العلامات بشكل كامل على الفور، لكن لينكس 4.14 بدأ باستخدامها لتحديد مساحات العناوين المستخدمة مؤخرًا، نظرًا لأن معرّفات PCID ذات 12 بت (4095 قيمة مختلفة) غير كافية لجميع المهام التي تعمل على وحدة معالجة مركزية معينة. [ 27 ]
انظر أيضاً
مراجع
- ↑ أرباتشي-دوسو، رمزي ح.؛ أرباتشي-دوسو، أندريا س. (2014)، أنظمة التشغيل: ثلاثة أجزاء سهلة [ الفصل: ترجمات أسرع (TLBs) ] (ملف PDF) ، كتب أرباتشي-دوسو
- ↑ س. بيتر سونغ؛ مارفن دينمان؛ جو تشانغ (أكتوبر 1994). "معالج PowerPC 604 RISC" (ملف PDF) . IEEE Micro . 14 (5): 13–14 . doi : 10.1109/MM.1994.363071 . S2CID 11603864. مؤرشف من النسخة الأصلية (ملف PDF) في 1 يونيو 2016.
- ↑ سيلبرشاتز، أبراهام؛ جالفين، بيتر ب.؛ غاني، جريج (2009). مفاهيم أنظمة التشغيل . الولايات المتحدة الأمريكية: جون وايلي وأولاده، المحدودة. ISBN 978-0-470-12872-5.
- ↑ تشين، ج. برادلي؛ بورغ، أنيتا؛ جوبي، نورمان ب. (1992). "دراسة قائمة على المحاكاة لأداء ذاكرة الترجمة السريعة" . أخبار هندسة الحاسوب من ACM SIGARCH . 20 (2): 114-123 . doi : 10.1145/146628.139708 .
- ↑ ستالينغز، ويليام (2014). أنظمة التشغيل: المبادئ الداخلية والتصميم . الولايات المتحدة الأمريكية: بيرسون. ISBN 978-0133805918.
- ↑ سوليهين، يان (2016). أساسيات بنية المعالجات متعددة النوى المتوازية . بوكا راتون، فلوريدا: مجموعة تايلور وفرانسيس. ISBN 978-0-9841630-0-7.
- ↑ "نظرة من الداخل على معالج نيهاليم: معالج ونظام إنتل المستقبلي" . تقنيات العالم الحقيقي. 2 أبريل 2008.
- ↑ "معالج Intel Core i7 (Nehalem): بنية من AMD؟" . موقع Tom's Hardware . 14 أكتوبر 2008. تم الاطلاع عليه بتاريخ 24 نوفمبر 2010 .
- ↑ "نظرة داخلية على معالج نيهاليم: معالج ونظام إنتل المستقبلي" . تقنيات العالم الحقيقي. 2 أبريل 2008. تم الاطلاع عليه بتاريخ 24 نوفمبر 2010 .
- ^ سرينيفاس، سوريش. باوار، أوتام. أريبوكي، دوني؛ مانسيو، كاتالين؛ شولهوف، غابرييل؛ براساد ، أرافيندا (1 نوفمبر 2019). "مخطط تحسين أداء وقت التشغيل: تحسين بنية Intel® باستخدام صفحات الأكواد الكبيرة" . تم الاسترجاع في 22 أكتوبر 2022 .
- ↑ ج. سميث و ر. ناير. الآلات الافتراضية: منصات متعددة الاستخدامات للأنظمة والعمليات (سلسلة مورغان كوفمان في هندسة وتصميم الحاسوب). دار نشر مورغان كوفمان، 2005.
- ↑ ويلش، مات. "معمارية MIPS r2000/r3000" . مؤرشف من الأصل في 14 أكتوبر 2008. تم الاسترجاع في 16 نوفمبر 2008.
في حال عدم العثور على مدخل TLB مطابق، يحدث استثناء TLB miss
. - ↑ SPARC International, Inc. دليل هندسة SPARC، الإصدار 9. PTR Prentice Hall .
- ↑ شركة صن مايكروسيستمز . بنية UltraSPARC 2005. المسودة D0.9.2، 19 يونيو 2008. شركة صن مايكروسيستمز.
- ↑ الذاكرة الافتراضية في نواة IA-64 > مخزن البحث عن الترجمة .
- ↑ شركة كومباك للحواسيب . دليل بنية ألفا (ملف PDF) . الإصدار 4. شركة كومباك للحواسيب. مؤرشف من الأصل (ملف PDF) بتاريخ 9 أكتوبر 2014. تم الاطلاع عليه بتاريخ 1 ديسمبر 2010 .
- ↑ ديفيد أ. باترسون؛ جون ل. هينيسي (2009). تنظيم وتصميم الحاسوب. واجهة الأجهزة/البرمجيات. الطبعة الرابعة . بيرلينجتون، ماساتشوستس 01803، الولايات المتحدة الأمريكية: دار مورغان كوفمان للنشر. ص 503. ISBN 978-0-12-374493-7.
{{cite book}}: CS1 maint: location ( link ) - ↑ "مخزن البحث الجانبي للترجمة (TLB) في الترحيل" . GeeksforGeeks . 26 فبراير 2019. تم الاطلاع عليه في 10 فبراير 2021 .
- ↑ أولريش دريبر (9 أكتوبر 2014). "الذاكرة الجزء 3: الذاكرة الافتراضية" . LWN.net .
- ↑ ديفيد كانتر (17 مارس 2010). "وصول ويستمير" . ريل وورلد تك . تم الاسترجاع في 6 يناير 2018 .
- ↑ شركة إنتل (2017). "4.10.1 مُعرّفات سياق العملية (PCIDs)". دليل مطوري البرامج لبنيتي إنتل 64 و IA-32 (ملف PDF) . المجلد 3أ: دليل برمجة النظام، الجزء 1.
- ↑ جيل تين (8 يناير 2018). "يُعدّ PCID الآن ميزةً بالغة الأهمية للأداء والأمان على معالجات x86" . تم الاطلاع عليه بتاريخ 23 مارس 2018 .
- ^ د. ابرامسون. جي جاكسون؛ إس موثراسانالور؛ جي نيجر؛ جي ريجنير؛ ر. سانكاران؛ I. شويناس؛ ر. أوليج؛ ب. فيمبو؛ جيه ويجيرت. “تقنية المحاكاة الافتراضية من Intel للإدخال/الإخراج الموجه”. مجلة إنتل للتكنولوجيا . 10 (3): 179 – 192.
- ↑ شركة أدفانسد مايكرو ديفايسز. دليل مرجعي لبنية الآلة الافتراضية الآمنة من AMD. أدفانسد مايكرو ديفايسز، 2008.
- ↑ جي. نايجر؛ أ. سانتوني؛ ف. ليونج؛ د. رودجرز؛ ر. أوليغ. "تقنية المحاكاة الافتراضية من إنتل: دعم الأجهزة لمحاكاة افتراضية فعالة للمعالج". مجلة إنتل للتكنولوجيا . 10 (3).
- ↑ شركة أدفانسد مايكرو ديفايسز.دليل مرجعي لبنية الآلة الافتراضية الآمنة من AMD . أدفانسد مايكرو ديفايسز، 2008.
- ↑ "مدخلات TLB طويلة الأمد مع PCID" . Kernelnewbies . 30 ديسمبر 2017. تم الاطلاع عليه في 31 يوليو 2023 .
روابط خارجية
- الذاكرة الافتراضية
- ذاكرة الحاسوب
- وحدات المعالجة المركزية
- إدارة الذاكرة
