اچالتی (دستورالعمل اکس۸۶)
در معماری کامپیوتری HLT
x86 دستورالعمل زبان اسمبلی است که پردازش مرکزی (CPU) را متوقف میکند تا وقفه بعدی خارجی اجرا شود. وقفهها سیگنالهای فرستاده شده توسط دستگاههای سختافزاری هستندکه به CPU هشدار میدهد وقتی رویدادی رخ میدهد باید چه واکنشی نشان دهد. به عنوان مثال، تایمرهای سختافزاری فواصل زمانی منظم CPU را قطع میکنند.
دستور HLT
توسط سیستم عامل اجرا میشود زمانی که هیچ کار فوری برای انجام وجود ندارد و سیستم وارد حالت بیکار (idl) میشود. مثلاً در ویندوز NT، این دستورالعمل در فرایند بیکاری سیستم اجرا میشود. در پردازندههای x86، برای دستور کد HLT
از 0xF4
استفاده میشود.
تاریخچه x86
تمام پردازندههای x86 از ۸۰۸۶ تا به حال دستور HLT
داشتهاند، اما توسط MS-DOS قبل از ۶٫۰ استفاده نشده بود و بهطور خاص برای کاهش مصرف انرژی طراحی نشده بود تا پردازنده اینتل DX4 در سال ۱۹۹۴ وارد بازار شد. MS-DOS 6.0 یک فایل قابل اجرا با نام POWER که میتواند در CONFIG نصب شود را ارائه میدهد و در آزمایشهای مایکروسافت ۵٪ ذخیره انرژی داشتهاست. برخی از اولین تراشههای DX صد مگاهرتزی دارای حالت HLT غیر پایدار(stable) بود، و باعث میشد که برنامه نویسان لینوکس گزینهٔ NO-Halt برای استفاده در این تراشهها را به کار گیرند، اما این در تراشههای بعدی تغییر یافت.
پردازش
تقریباً هر دستورالعمل پردازشگر مدرن شامل دستورالعمل یا حالت خواب است که پردازنده را متوقف میکند تا کار بیشتری انجام شود. در پردازندههای شامل وقفه، این دستور CPU را متوقف میکند تا یک وقفه خارجی دریافت شود. در اکثر معماری، اجرای چنین دستورالعمل به پردازنده اجازه میدهد که میزان مصرف برق و خروجی گرما را بهطور قابل توجهی کاهش دهد، به همین دلیل معمولاً به جای بررسی هر لحظه ی(busy waiting) خواب و بیکار بودن پردازنده از آن استفاده میشود.
استفاده در سیستم عامل
از آنجا که صدور دستورالعمل HLT
نیازمند حلقه ۰ دسترسی است، میتوان آن را تنها با نرمافزار سیستمی که دارای اختیارات بالاست مانند هسته اجرا کرد. از این رو، اغلب در برنامهنویسی کاربردی رابط برنامهنویسی برنامه (API) برای این منظور توسط سیستم عامل ارائه شدهاست زمانی که هیچ کاری برای انجام نیست. این به عنوان «فرمان پذیری پردازشگر» نامیده میشود. این به برنامهریز سیستم عامل اجازه میدهد تا تصمیم بگیرد که آیا فرایندهای دیگرقابل اجرا هستند یا خیر. اگر نه، بهطور معمول دستورالعمل HLT را برای کاهش مصرف برق صادر میکند.
منابع
- ↑ "Intel 64 and IA-32 Architectures Software Developer's Manual: Instruction Set Reference A-Z" (PDF). Retrieved 2012-03-01.
- ↑ "Why does DOS use 100% CPU under Virtual PC?". microsoft.com. Retrieved 18 November 2018.
- ↑ "POWER.EXE and Advanced Power Management (APM) Support". Archived from the original on 27 September 2014. Retrieved 2015-09-27.
- ↑ "The Linux BootPrompt-HowTo". www.faqs.org. Retrieved 18 November 2018.