نطاق نوع الذاكرة المسجل
سجلات نطاق نوع الذاكرة ( MTRRs ) هي مجموعة من سجلات التحكم في القدرات الإضافية للمعالج ، والتي تُمكّن برامج النظام من التحكم في كيفية تخزين عمليات الوصول إلى نطاقات الذاكرة بواسطة وحدة المعالجة المركزية (CPU) مؤقتًا . وتستخدم هذه السجلات مجموعة من السجلات الخاصة بالطراز القابلة للبرمجة (MSRs)، وهي سجلات خاصة توفرها معظم وحدات المعالجة المركزية الحديثة. وتشمل أوضاع الوصول الممكنة إلى نطاقات الذاكرة: عدم التخزين المؤقت، والكتابة المباشرة ، ودمج الكتابة ، وحماية الكتابة، والكتابة المؤجلة . في وضع الكتابة المؤجلة، تُكتب البيانات إلى ذاكرة التخزين المؤقت لوحدة المعالجة المركزية ، وتُعلّم ذاكرة التخزين المؤقت بأنها غير مُحدّثة، بحيث تُكتب محتوياتها إلى الذاكرة لاحقًا.
تتيح تقنية دمج عمليات الكتابة على ناقل البيانات تجميع عمليات الكتابة في عملية نقل أكبر قبل إرسالها عبر الناقل، مما يسمح بكتابة أكثر كفاءة لموارد النظام مثل ذاكرة بطاقة الرسومات . غالبًا ما يؤدي هذا إلى زيادة سرعة عمليات كتابة الصور عدة مرات، على حساب فقدان دلالات القراءة/الكتابة التسلسلية البسيطة للذاكرة العادية. تسمح بتات إضافية متوفرة في بعض معمارية الحاسوب ، مثل AMD64 ، بتظليل محتويات ذاكرة القراءة فقط (ذاكرة القراءة فقط الظلية)، وتكوين عمليات الإدخال /الإخراج المُرتبطة بالذاكرة .
معدلات نقل البيانات في معالجات x86-PC
في أنظمة بنية x86 المبكرة، وخاصة عندما كانت ذاكرة التخزين المؤقت يتم توفيرها بواسطة رقائق منفصلة خارج حزمة وحدة المعالجة المركزية، كانت هذه الوظيفة يتم التحكم فيها بواسطة مجموعة الشرائح وتكوينها من خلال إعدادات BIOS .
عندما نُقلت ذاكرة التخزين المؤقت للمعالج إلى داخل وحدة المعالجة المركزية، طبّقت وحدات المعالجة المركزية سجلات ذاكرة مؤقتة ثابتة النطاق (MTRRs) تغطي أول ميغابايت من الذاكرة، وذلك للتوافق مع ما توفره أنظمة BIOS لأجهزة الكمبيوتر الشخصية في ذلك الوقت. تُستخدم هذه السجلات للتحكم في سياسة التخزين المؤقت اللازمة للوصول إلى بطاقة الرسومات (VGA) وجميع عمليات الوصول الأخرى إلى الذاكرة التي تتم أثناء تشغيل النظام في الوضع الحقيقي . أما بالنسبة للذاكرة التي تتجاوز 1 ميغابايت، فتُوفر وحدات المعالجة المركزية عددًا من سجلات الذاكرة المؤقتة متغيرة النطاق ، والتي يمكن وضعها بحرية، بل ويمكن أن تتداخل. يمكن استخدام هذه السجلات لضبط سياسة التخزين المؤقت لذاكرة الرسومات ونطاقات الذاكرة الأخرى التي تستخدمها أجهزة PCI .
يختلف عدد نقاط MTRR:
- تحتوي عائلة معالجات Intel P6 ( Pentium Pro و Pentium II ) وما بعدها على سجلات MTRR التي يمكن استخدامها للتحكم في الوصول إلى نطاقات الذاكرة. [ 1 ]
- The Cyrix6x86, 6x86MX and MII processors have Address Range Registers (ARRs) which provide similar functionality to MTRRs.
- The Centaur C6 WinChip has 8 MCRs, allowing write-combining.
- The VIACyrix III and VIA C3 CPUs offer 8 Intel-style MTRRs.
- The AMDAthlon family provide 8 Intel-style MTRRs.
- The AMDK6-2 (stepping 8 and above) and K6-III processors have two MTRRs.
The memory interface of AMD K8 CPUs supports "Extended fixed-range MTRR Type-Field Encodings" which allows one to specify whether accesses to certain address ranges are executed by accessing RAM through the Direct Connect Architecture or by executing memory-mapped I/O. This allows, for example, shadow RAM to be implemented by copying ROM contents into RAM.
Successor
Newer x86 CPUs support a more advanced technique called page attribute tables (PATs) that allow for per-page setting of these modes, instead of having a limited number of low-granularity registers to deal with modern memory sizes that can be as high as 64 GB even on a laptop, and several times that amount on a desktop system.
See also
References
- ↑"The Linux Gamers' HOWTO". tldp.org. Retrieved 2009-10-03.
- Details on how MTRRs work are described in the processor manuals from CPU vendors.
External links
- Speeding up graphics with MTRR includes explanation
- AMD64 Architecture Programmer's Manual Volume 2: System Programming (PDF)
- Intel 64 and IA-32 Architectures Software Developer's Manuals See Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide section 11.11 MEMORY TYPE RANGE REGISTERS (MTRRS)
- MTRRLFBE utility for DOS by RayeR - it can set caching modes for VGA and LFB memory range to significantly boost performance of DOS graphics apps. On modern Core 2 Duo PC with PCI-E VGA it can be 10-times faster when write combining is set.
- MTRR (Memory Type Range Register) control by Richard Gooch
- Digital registers
- Instruction processing
- X86 architecture
- X86 instructions
