تشغيل التعليمات البرمجية على المعالجات المختلفة (التجمع إلى x86)

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

سؤال

في الوضع الحقيقي على x86 و ما الإرشادات سوف تحتاج إلى استخدامها لتشغيل التعليمات البرمجية على معالج مختلف، في نظام متعدد المعالجات؟

و(أنا أكتب بعض التعليمات البرمجية قبل التمهيد في المجمع الذي يحتاج إلى وضع بعض سجلات وحدة المعالجة المركزية، والقيام بذلك على كل وحدة المعالجة المركزية في النظام، قبل بدء نظام التشغيل الفعلية).

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

المحلول

وبحيث يكون لديك قائمة بذاتها (قلت "ما قبل التمهيد") برنامج، مثل الإقلاع، يعمل في الوضع الحقيقي؟ وهذا هو على PeeCee مع BIOS المعتاد؟

في هذه الحالة لديك فقط تشغيل وحدة المعالجة المركزية واحدة. من أجل تدور المتابعة وحدات المعالجة المركزية الأخرى لنظام التشغيل وعادة تنفيذ ما يسمى <م> خوارزمية بدء التشغيل العالمية الذي غني عن مثل هذا:

BSP sends AP an INIT IPI
BSP DELAYs (10mSec)
If (APIC_VERSION is not an 82489DX) {
  BSP sends AP a STARTUP IPI
  BSP DELAYs (200μSEC)
  BSP sends AP a STARTUP IPI
  BSP DELAYs (200μSEC)
}
BSP verifies synchronization with executing AP

ووBSP هو المعالج التمهيد. وAP هو معالج التطبيقات. والمعهد الدولي للصحافة هو المقاطعة بين المعالج. من أجل القيام IPI، تحتاج إلى تمكين APIC، وحدة تحكم تمديد المقاطعة إلى بنية PC التي لم يتم تمكين في تمهيد. هذا هو السبب في رمز يشعر بالقلق حول أي نوع من نسخة ICU كان يعمل. كل هذا هو عميق إلى حد ما السحر النواة. كنت قد تحاول النظر إلى لينكس، نت بي، أو غيرها * BSD الشفرة المصدرية للحصول على مثال، لكنها لن تكون سهلة القراءة. إذا كنت الفوز حقا، قد تجد نواة صغيرة أو برنامج مستقل اختبار SMP هناك في مكان ما.

لمزيد من المعلومات، راجع إنتل المعالجات مواصفات .

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