Jump to content

HLT (инструкция x86)

(Перенаправлено из инструкции HLT )

В x86 компьютерной архитектуре HLT (остановка) — это инструкция языка ассемблера , которая останавливает центральный процессор (ЦП) до тех пор, пока не будет вызвано следующее внешнее прерывание . [ 1 ] Прерывания — это сигналы, отправляемые аппаратными устройствами в ЦП, предупреждающие его о том, что произошло событие, на которое он должен отреагировать. Например, аппаратные таймеры через определенные промежутки времени отправляют прерывания ЦП.

Большинство операционных систем выполняют HLT Инструкция, когда нет необходимости выполнять немедленную работу, переводя процессор в состояние ожидания . Например, в Windows NT эта инструкция выполняется в « Процессе простоя системы ». x86 опкод На процессорах HLT является 0xF4.

На процессорах ARM аналогичные инструкции WFI (Ждать прерывания) и WFE (Подождите события).

История на x86

[ редактировать ]

Все процессоры x86, начиная с 8086, имели HLT инструкция, но она не использовалась MS-DOS до версии 6.0. [ 2 ] и не был специально разработан для снижения энергопотребления до выпуска процессора Intel DX4 в 1994 году. MS-DOS 6.0 предоставляла файл POWER.EXE, который можно было установить в CONFIG.SYS , и в тестах Microsoft это позволило сэкономить 5%. [ 3 ] Некоторые из первых чипов DX с частотой 100 МГц имели ошибочное состояние HLT, что побудило разработчиков Linux реализовать опцию «no-hlt» для использования при работе на этих чипах. [ 4 ] но это было исправлено в более поздних чипах.

С тех пор Intel представила дополнительные инструкции по работе с процессором. К ним относятся:

  • PAUSE в SSE2 предназначен для спин-лупов. Доступно для пользовательского пространства (кольца с низким уровнем привилегий).
  • MONITOR/ MWAIT в SSE3 для синхронизации потоков.
  • TPAUSE (временная пауза) и UMONITOR/ UMWAIT (монитор пользовательского пространства/mwait). Доступно в пользовательском пространстве.

Почти каждый набор инструкций современного процессора включает в себя режим инструкций или спящий режим, который останавливает процессор до тех пор, пока не потребуется выполнить дополнительную работу. В процессорах, управляемых прерываниями, эта инструкция останавливает ЦП до тех пор, пока не будет получено внешнее прерывание. В большинстве архитектур выполнение такой инструкции позволяет процессору значительно снизить энергопотребление и тепловыделение, поэтому она обычно используется вместо ожидания перехода в режим сна и простоя. В большинстве процессоров остановка (вместо цикла) также уменьшает задержку следующего прерывания.

Использование в операционных системах

[ редактировать ]

С момента выпуска HLT Для инструкции требуется доступ к кольцу 0 , ее можно запускать только привилегированным системным программным обеспечением, таким как ядро . По этой причине при программировании приложений часто рекомендуется использовать интерфейс прикладного программирования (API), предоставляемый для этой цели операционной системой, когда больше невозможно выполнить работу, например, в Linux. sched_yield(). [ 5 ] Это называется «уступкой» процессора. операционной системы Это позволяет планировщику решать, работоспособны ли другие процессы; если не. Если каждый процесс находится в режиме сна или ожидания, он обычно выполняет инструкцию HLT, чтобы сократить энергопотребление до следующего аппаратного прерывания.

См. также

[ редактировать ]
  1. ^ «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32: Справочник по набору команд AZ» . Проверено 1 марта 2012 г.
  2. ^ «Почему DOS использует 100% процессорного времени под Virtual PC?» . microsoft.com . 20 декабря 2004 года . Проверено 18 ноября 2018 г.
  3. ^ «Поддержка POWER.EXE и Advanced Power Management (APM)» . Архивировано из оригинала 27 сентября 2014 г. Проверено 27 сентября 2015 г.
  4. ^ «Linux BootPrompt-HowTo» . www.faqs.org . Проверено 18 ноября 2018 г.
  5. ^ «sched_yield(2) — страница руководства Linux» . Проверено 2 сентября 2020 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: de570afdffeea190f25099b995923a7e__1723667340
URL1:https://arc.ask3.ru/arc/aa/de/7e/de570afdffeea190f25099b995923a7e.html
Заголовок, (Title) документа по адресу, URL1:
HLT (x86 instruction) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)