Jump to content

Микрооперация

(Перенаправлено с Micro-op fusion )

Высокоуровневая иллюстрация, показывающая разложение машинных инструкций на микрооперации, выполняемые во время типичных циклов выборки-декодирования-выполнения. [1] : 11 

В компьютерных процессорах центральных микрооперации (также известные как микрооперации или микроопс , исторически также называемые микрооперациями) [2] ) — это подробные инструкции низкого уровня, используемые в некоторых проектах для реализации сложных машинных инструкций (иногда называемые макроинструкциями ). в этом контексте [3] : 8–9 

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

Оптимизации

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

Различные формы микроопераций уже давно стали основой традиционных процедур микрокода, используемых для упрощения реализации конкретной конструкции ЦП или, возможно, просто для упорядочивания определенных многошаговых операций или режимов адресации. Совсем недавно µops стали использовать другим способом, чтобы позволить современным CISC- процессорам легче обрабатывать асинхронное параллельное и спекулятивное выполнение: как и в случае с традиционным микрокодом, для поиска подходящего µops выполняется один или несколько поисков в таблице (или эквивалентных). последовательность, основанная на кодировании и семантике машинной инструкции (этап декодирования или трансляции), однако вместо жестких последовательностей µop, управляющих ЦП непосредственно из ПЗУ микрокода , µops здесь динамически буферизуются для перепланирования перед выполнением. [4] : 6–7, 9–11 

Эта буферизация означает, что этапы выборки и декодирования могут быть более отделены от исполнительных блоков, чем это возможно в более традиционной микрокодированной (или жесткой) конструкции. Поскольку это обеспечивает определенную степень свободы в отношении порядка выполнения, это делает возможным некоторое извлечение параллелизма на уровне команд из обычной однопоточной программы (при условии, что зависимости проверяются и т. д.). Он открыт для дополнительного анализа и, следовательно, для изменения порядка последовательностей кода с целью динамической оптимизации отображения и планирования микроопераций на машинные ресурсы (такие как ALU , блоки загрузки/сохранения и т. д.). Поскольку это происходит на уровне µop, подоперации различных машинных (макро) инструкций могут часто смешиваться в определенной последовательности µop, образуя частично переупорядоченные машинные инструкции как прямое следствие неупорядоченной отправки микроинструкций из нескольких команд. макрокоманды. Однако это не то же самое, что слияние микроопераций , целью которого является то, что более сложная микроинструкция может заменить несколько более простых микроинструкций в определенных случаях, обычно для того, чтобы минимизировать изменения состояния и использование очереди и переупорядочить буферное пространство, тем самым снижая энергопотребление. Слияние микроопераций используется в некоторых современных конструкциях процессоров. [3] : 89–91, 105–106  [4] : 6–7, 9–15 

Оптимизация выполнения пошла еще дальше; процессоры не только преобразуют множество машинных инструкций в серию микроопераций, но и делают обратное, когда это необходимо; они объединяют определенные последовательности машинных инструкций (например, сравнение с последующим условным переходом) в более сложную микрооперацию, которая лучше соответствует модели выполнения и, следовательно, может выполняться быстрее или с меньшими затратами машинных ресурсов. Это также известно как слияние макроопераций . [3] : 106–107  [4] : 12–13 

Другой способ попытаться повысить производительность — кэшировать декодированные микрооперации в кэше микроопераций , чтобы в случае повторного выполнения той же макроинструкции процессор мог напрямую обращаться к декодированным микрооперациям из кэша вместо их декодирования. снова. Кэш трассировки выполнения , обнаруженный в микроархитектуре Intel NetBurst ( Pentium 4 ), является широко распространенным примером этого метода. [5] Размер этого кэша можно выразить в терминах того, сколько тысяч (или строго кратно 1024) микроопераций он может хранить: Kμops . [6]

  1. ^ Перейти обратно: а б «Организация и архитектура компьютера, Глава 15. Работа блока управления» (PDF) . umcs.maine.edu . 16 марта 2010 г. Проверено 29 декабря 2014 г.
  2. ^ Микросхемный компьютер FM1600B Ferranti Digital Systems (PDF) . Брэкнелл, Беркшир, Великобритания: Ferranti Limited , отдел цифровых систем. Октябрь 1968 г. [сентябрь 1968 г.]. Список ДСД 68/6. Архивировано (PDF) из оригинала 19 мая 2020 г. Проверено 19 мая 2020 г.
  3. ^ Перейти обратно: а б с Агнер Фог (19 февраля 2014 г.). «Микроархитектура процессоров Intel, AMD и VIA: руководство по оптимизации для программистов-сборщиков и производителей компиляторов» (PDF) . agner.org . Проверено 21 марта 2014 г.
  4. ^ Перейти обратно: а б с Майкл Э. Томадакис (17 марта 2011 г.). «Архитектура процессора Nehalem и платформ Nehalem-EP SMP» (PDF) . Техасский университет A&M. Архивировано из оригинала (PDF) 11 августа 2014 г. Проверено 21 марта 2014 г.
  5. ^ «Intel Pentium 4 1,4 ГГц и 1,5 ГГц» . АнандТех. 20 ноября 2000 г. Проверено 6 октября 2013 г.
  6. ^ Барух Соломон; Ави Мендельсон; Дорон Оренштейн; Йоав Альмог; Ронни Ронен (август 2001 г.). «Кэш микроопераций: интерфейс с поддержкой энергопотребления для ISA переменной длины» (PDF) . ISLPED'01: Материалы Международного симпозиума по маломощной электронике и дизайну 2001 г. (каталожный номер IEEE 01TH8581) . Интел . стр. 4–9. дои : 10.1109/LPE.2001.945363 . ISBN  1-58113-371-5 . S2CID   10934861 . Проверено 21 марта 2014 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c0dfd2ffe804b3c7eb6f2d79bf6038d2__1691686800
URL1:https://arc.ask3.ru/arc/aa/c0/d2/c0dfd2ffe804b3c7eb6f2d79bf6038d2.html
Заголовок, (Title) документа по адресу, URL1:
Micro-operation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)