HLT (x86 нұсқауы) - HLT (x86 instruction)

Ішінде x86 компьютерлік архитектура, HLT (тоқтату) - бұл құрастыру тілі тоқтататын нұсқаулық Орталық процессор (CPU) келесі сыртқыға дейін үзу жұмыстан шығарылды.[1] Үзілістер - бұл аппараттық құрылғылардың процессорға реакция беруі керек оқиға туралы ескертетін сигналдар. Мысалы, аппараттық таймерлер үзілістерді белгілі бір уақыт аралығында орталық процессорға жібереді.

The HLT нұсқауды операциялық жүйе жедел жұмыс жасалмаған кезде және жүйе оған енеді бос күй. Жылы Windows NT мысалы, бұл нұсқаулық «Жүйені күту процесі X86 процессорларында опкод туралы HLT болып табылады 0xF4.

X86-дағы тарих

8086 жылдан бастап барлық x86 процессорлары болды HLT нұсқаулық, бірақ оны қолданған жоқ MS-DOS 6.0 дейін[2] және шығарылғанға дейін электр энергиясын тұтынуды азайтуға арналған емес Intel DX4 процессоры 1994 ж. MS-DOS 6.0 орнатуға болатын POWER.EXE ұсынды CONFIG.SYS Microsoft тестілерінде ол 5% үнемдеді.[3] Алғашқы 100 МГц DX чиптерінің кейбіреулері HLT күйінде болды, бұл оны жасаушыларға түрткі болды Linux осы чиптерде жұмыс істеген кезде қолдануға болатын «жоқ-hlt» нұсқасын енгізу үшін,[4] бірақ бұл кейінгі чиптерде түзетілді.

Содан бері Intel қосымша процессорлар туралы нұсқауларды енгізді. Оларға мыналар жатады:

  • КІДІРТУ жылы SSE2 айналдыру циклына арналған. Пайдаланушылар кеңістігі үшін қол жетімді (төмен деңгейдегі сақиналар).
  • МОНИТОР/MWAIT жылы SSE3 ағындарды синхрондау үшін.
  • TPAUSE (уақытша үзіліс) және UMONITOR/УМВЕЙТ (пайдаланушылар кеңістігі мониторы / mwait). Қолданушылар кеңістігі үшін қол жетімді.

Процесс

Әрбір дерлік заманауи процессор нұсқаулар жинағы нұсқауды немесе ұйқы режимін қамтиды, ол процессорды көп жұмыс қажет болғанша тоқтатады. Ажыратумен басқарылатын процессорларда бұл нұсқаулық процессорды сыртқы үзіліс алғанға дейін тоқтатады. Көптеген архитектураларда мұндай нұсқауды орындау процессорға қуат пен жылу шығынын едәуір азайтуға мүмкіндік береді, сондықтан оны әдетте оның орнына қолданады бос күту ұйықтауға және бос жүруге арналған.

Операциялық жүйелерде қолдану

Шығарылғаннан бері HLT нұсқаулық қажет қоңырау 0 қол жетімділік, оны тек сияқты артықшылықты жүйелік бағдарламалық жасақтама басқара алады ядро. Осыған байланысты, көбінесе қолданбалы бағдарламалаудың ең жақсы тәжірибесі қолданбалы бағдарламалау интерфейсі (API), мысалы, Linux сияқты жұмыс істеу мүмкін болмаған кезде, осы мақсат үшін ұсынылған sched_yield ().[5] Бұл процессорды «беру» деп аталады. Бұл мүмкіндік береді операциялық жүйенің жоспарлаушысы басқа процестерді басқаруға болатындығын шешу; егер олай болмаса, ол әдетте электр қуатын пайдалануды қысқарту туралы HLT нұсқауын шығарады.

Сондай-ақ қараңыз

Пайдаланылған әдебиеттер

  1. ^ «Intel 64 және IA-32 Architectures бағдарламалық жасақтамасын әзірлеушіге арналған нұсқаулық: нұсқаулық жиынтығы A-Z» (PDF). Алынған 2012-03-01.
  2. ^ «Неге DOS виртуалды компьютерде 100% процессорды қолданады?». microsoft.com. Алынған 18 қараша 2018.
  3. ^ «POWER.EXE және Advanced Power Management (APM) қолдау». Архивтелген түпнұсқа 2014-09-27. Алынған 2015-09-27.
  4. ^ «Linux BootPrompt-HowTo». www.faqs.org. Алынған 18 қараша 2018.
  5. ^ «sched_yield (2) - Linux нұсқаулығы беті». Алынған 2020-09-02.