تعيين عناوين الذاكرة للوحدات الفعلية في Windows XP

StackOverflow https://stackoverflow.com/questions/2682624

سؤال

أخطط لتشغيل Windows XP 32 بت على محطة عمل مع معالجات مزدوجة ، استنادًا إلى الهندسة المعمارية الدقيقة من Intel ، وذاكرة RAM Triple Channel. على الرغم من أن XP يقتصر على 4 جيجابايت من ذاكرة الوصول العشوائي ، إلا أن فهمي هو أنه سيعمل بأكثر من 4 جيجابايت مثبتة ، ولكنه سيعرض فقط 4 جيجابايت (أو أقل قليلاً).

سؤالي هو: على افتراض أن 6 غيغابايت من ذاكرة الوصول العشوائي مثبتة بستة وحدات 1 جيجابايت ، أي ما الفعلي 4 غيغابايت سوف ينظم Windows بالفعل في مساحة عنوانه؟

خاصه:

  • هل ستستخدم جميع الوحدات النمطية الست 1 جيجابايت ، مستفيدة من جميع قنوات الذاكرة؟ (تخميني نعم ، وأن التعيين إلى الوحدات الفردية داخل مجموعة يحدث في الأجهزة.)

  • هل سيخطط 2 جيجابايت من مساحة العنوان لكل من العقدتين NUMA (لأن كل معالج يحتوي على واجهة ذاكرة خاصة به) ، أم هل سيحصل معالج واحد على وصول سريع إلى 3 جيجابايت من ذاكرة الوصول العشوائي ، بينما يحتوي الآخر على 1 جيجابايت فقط؟

شكرًا!

هل كانت مفيدة؟

المحلول

تم الرد على هذا السؤال في Superuser. نظرًا لعدم وجود ردود أخرى هنا ، فأنا أرد على سؤالي حتى يمكن العثور على المعلومات ذات الصلة بسهولة.

منذ طرح السؤال ، صادفت أيضًا منشور المدونة هذا بقلم مارك روسينوفيتش ، يشرح كيف يتعامل ويندوز إكس بي كومينيل مع الذاكرة.

في الختام ، يبدو أن ما يحدث هو أن kernel ، على الرغم من أنه يدرك PAE ، فإن جميع عناوين الذاكرة المادية بدني سيتم استخدام 4 غيغابايت من ذاكرة الوصول العشوائي. هذا بدوره يتم تعيينه بواسطة الأجهزة إلى وحدات الذاكرة ، ويتوافق مع مجمل الوحدة الثلاثة الأولى (3 غيغابايت في المجموع) ، وثلث الثلاثي الثاني (تنتشر عبر جميع وحداتها الثلاثة - 1 جيجابايت في المجموع) .

وبالتالي ، سيتم استغلال جميع قنوات الذاكرة ، ولكن لن يتم توازن كمية الذاكرة بين عقد NUMA.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top