HLT (تعليمات x86)

في بنية حاسوب x86 ، HLTتُعدّ تعليمة (halt) في لغة التجميع بمثابة تعليق لوحدة المعالجة المركزية (CPU) حتى يتم إطلاق مقاطعة خارجية أخرى. [ 1 ] المقاطعات هي إشارات تُرسلها الأجهزة إلى وحدة المعالجة المركزية لتنبيهها بوقوع حدث يستدعي رد فعل. على سبيل المثال، تُرسل مؤقتات الأجهزة مقاطعات إلى وحدة المعالجة المركزية على فترات منتظمة.

تُنفّذ معظم أنظمة التشغيلHLT تعليماتٍ عندما لا يكون هناك عملٌ فوريٌّ يجب القيام به، مما يضع المعالج في حالة خمول . في نظام التشغيل Windows NT ، على سبيل المثال، تُنفّذ هذه التعليمات في " عملية خمول النظام ". على معالجات x86، يكون رمز العملية HLTهو 0xF4.

في معالجات ARM، تكون التعليمات المماثلة هي WFI(انتظر المقاطعة) و WFE(انتظر الحدث).

تاريخ معالجات x86

جميع معالجات x86 بدءًا من معالج 8086 فصاعدًا كانت تحتوي على هذه التعليمات، ولكن نظام MS-DOSHLT لم يستخدمها قبل الإصدار 6.0 [ 2 ] ، ولم تُصمم خصيصًا لتقليل استهلاك الطاقة حتى إصدار معالج Intel DX4 عام 1994. وفّر نظام MS-DOS 6.0 ملف POWER.EXE يمكن تثبيته في ملف CONFIG.SYS ، وقد وفّر 5% من استهلاك الطاقة في اختبارات مايكروسوفت. [ 3 ] بعض رقائق DX الأولى بتردد 100 ميجاهرتز كانت تعاني من خلل في حالة HLT، مما دفع مطوري لينكس إلى إضافة خيار "no-hlt" لاستخدامه عند التشغيل على هذه الرقائق، [ 4 ] ولكن تم إصلاح هذا الخلل في الرقائق اللاحقة. 

وقد قدمت شركة إنتل منذ ذلك الحين تعليمات إضافية لتحسين أداء المعالج. وتشمل هذه التعليمات ما يلي:

  • PAUSEفي SSE2 مخصص لحلقات الدوران. متاح لمساحة المستخدم (حلقات ذات امتيازات منخفضة).
  • MONITOR/ MWAITفي SSE3 لمزامنة الخيوط.
  • TPAUSE(إيقاف مؤقت) و UMONITOR/ UMWAIT(مراقبة مساحة المستخدم/mwait). متاح لمساحة المستخدم.

المزايا

تتضمن معظم مجموعات تعليمات المعالجات الحديثة تعليمة أو وضع سكون يُوقف المعالج مؤقتًا حتى الحاجة إلى إنجاز المزيد من العمل. في المعالجات التي تعمل بنظام المقاطعات، تُوقف هذه التعليمة وحدة المعالجة المركزية حتى يتم استقبال مقاطعة خارجية. في معظم البنى، يُتيح تنفيذ هذه التعليمة للمعالج تقليل استهلاكه للطاقة وانبعاث الحرارة بشكل ملحوظ، ولذلك يُستخدم عادةً بدلًا من الانتظار النشط للدخول في وضع السكون أو الخمول. في المعالجات التي لا تحتوي على ذاكرة تخزين مؤقتة أو تحتوي على ذاكرة تخزين مؤقتة معطلة، يُقلل الإيقاف المؤقت من حركة البيانات على ناقل البيانات. في معظم المعالجات، يُقلل الإيقاف المؤقت (بدلًا من التكرار) أيضًا من زمن استجابة المقاطعة التالية.

الاستخدام في أنظمة التشغيل

بما أن إصدار هذه HLTالتعليمات يتطلب الوصول إلى مستوى الصلاحيات 0 ، فلا يمكن تنفيذها إلا بواسطة برامج النظام ذات الصلاحيات المميزة، مثل نواة النظام . ولهذا السبب، يُعد استخدام واجهة برمجة التطبيقات (API) التي يوفرها نظام التشغيل لهذا الغرض، كما هو الحال في لينكس، من أفضل الممارسات في برمجة التطبيقات عندما لا يكون هناك المزيد من العمل المطلوب sched_yield(). [ 5 ] يُشار إلى هذا بـ "إفساح المجال" للمعالج. يسمح هذا لمُجدول نظام التشغيل بتحديد ما إذا كانت العمليات الأخرى قابلة للتنفيذ؛ وإذا لم تكن كذلك، فإذا كانت جميع العمليات في حالة سكون أو انتظار، فسيتم عادةً تنفيذ تعليمة HLT لخفض استهلاك الطاقة حتى حدوث مقاطعة الأجهزة التالية.

انظر أيضاً

مراجع

  1. "دليل مطوري برامج معمارية Intel 64 و IA-32: مرجع مجموعة التعليمات AZ" . تم الاطلاع عليه بتاريخ 2012-03-01 .
  2. "لماذا يستخدم نظام DOS كامل موارد المعالج في بيئة Virtual PC؟" . microsoft.com . 20 ديسمبر 2004. تم الاطلاع عليه بتاريخ 18 نوفمبر 2018 .
  3. "دعم POWER.EXE وإدارة الطاقة المتقدمة (APM)" . مؤرشف من الأصل بتاريخ 27-09-2014 . تم الاطلاع عليه بتاريخ 27-09-2015 .
  4. "دليل استخدام موجه بدء تشغيل لينكس" . www.faqs.org . تم الاطلاع عليه بتاريخ 18 نوفمبر 2018 .
  5. "sched_yield(2) - صفحة دليل لينكس" . تم الاطلاع عليه بتاريخ 2020-09-02 .