Четверг, 03.07.2025, 19:50
Главная Регистрация RSS
Приветствую Вас, Гость
Меню сайта
Категории раздела
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Information Technologies (IT) » HardWare

Энциклопедия процессорных терминов-Общее устройство конвейера

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


 stage, стадия — одна из нескольких частей конвейера. Как правило, за 1 такт выполняет одно или несколько действий в одном блоке, передаёт результат в следующую стадию и принимает результат предыдущей.


 way («путь») — в конвейере: магистраль для прохождения одного потока команд или мопов. Число путей применяется ко всему конвейеру и ограничивает максимальную величину суперскалярности, хотя между некоторыми смежными стадиями число путей может быть больше.


 superscalar, суперскалярный (-ность) — многопутный конвейер, обрабатывающий более однойкоманды за такт, или процессор, обладающий ядром(ами) с таким конвейером, или микроархитектура, описывающая такой конвейер.


 µop, mop, микрооперация, моп — RISC-подобная команда во внутреннем формате ЦП, исполняющая элементарную операцию. Команды CISC-ЦП переводятся в мопы в декодере, причём каждая простая команда транслируется в 1 моп, а сложная декодируется в несколько. RISC-процессорам декодер не нужен, т. к. имея простой формат команд, их можно исполнить непосредственно. Т. к. одна CISC-команда порождает в среднем более одного мопа, а число путей конвейера до и после декодера чаще всего одинаково, это задаёт дисбаланс в нагрузке на стадии. Для его исправления применяются микрослияние и макрослияние.


 microfusion, микрослияние — возможность одним мопом закодировать более одной операции, чтобы уменьшить нагрузку на конвейер для некоторых относительно сложных команд. Чаще всего кодируется одна вычислительная операция и один связанный с ней доступ в память. Слитые мопы разделяются на два отдельных перед исполнением в тылу.


 macrofusion, макрослияние — надстройка над микрослиянием, позволяющая одним мопом закодировать две (редко больше) команды, чтобы увеличить значение IPC. Варианты сливаемых команд:

  • сравнение + условный переход;
  • меняющая флаги арифметическая команда + условный переход;
  • копирование «регистр–регистр» + вычислительная команда с регистром-модификандом;
  • ноп (иногда — несколько нопов) + любая другая команда;
  • умножение + сложение или умножение + вычитание (пока не реализовано).

Из-за фиксированного размера мопа на операнды пары команд накладываются ограничения: не более одного доступа в память, не более одного непосредственного операнда (иногда не допускается вовсе) и т. п.


 front-end («передняя часть»), фронт конвейера — часть конвейера, читающая и обрабатывающаякоманды, подготавливая их для исполнения в «тылу» в виде мопов.


 back-end («задняя часть»), тыл конвейера — часть конвейера, обрабатывающая данные исполнением мопов от «фронта».


 in-order, поочерёдный — о последовательной обработке или исполнении команд и мопов в указанном программой порядке. Фронт конвейера всегда обрабатывает команды упорядоченно.


 OoO (out-of-order), внеочередной — об исполнении мопов в порядке, наиболее удобном процессору в данный момент. Применяется к тылу конвейера: отдельно к исполнительной части (OoOE) и доступу в память (memory disambiguation). Требует наличия аппаратной структуры, хранящей оригинальный порядок мопов (исходя из последовательности породивших их команд) для их поочерёдной отставки.


 OoOE (out-of-order execution), внеочередное исполнение — концепция внеочерёдности, применяемой при исполнении мопов: моп запускается на выполнение, когда готовы все его операнды и целевое ФУ, даже если декодированные до него мопы ещё не исполнены.


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


 SMT (simultaneous multithreading: одновременная многопоточность) — одновременное исполнениеконвейером одного ядра нескольких потоков для минимизации простоев стадий.


 HT (HyperThreading), гиперпоточность — «тонкая» версия SMT в ЦП Intel: каждый такт каждая стадияконвейера или их группа выбирает один из двух потоков команд или мопов, исходя из готовности ресурсов для каждого из них.


 MCMT (multicluster multithreading: многокластерная многопоточность) — ускоряющее производительность решение AMD, промежуточное между SMP и SMT: исполняющий два потока конвейерделится на кластеры по несколько стадий каждый, причём одни разделяют свои ресурсы между потоками (как в SMP), а другие выделяются монопольно (как в SMT).


 IPC (instructions per clock), команд за такт — мера производительности конвейера, егоисполнительной стадии или отдельного ФУ. Пиковая величина IPC измеряется при выполнении потока команд или мопов, независимых друг от друга по данным, что позволяет по возможности осуществить их одновременное исполнение.


 CPI (clocks per instruction: тактов на команду) — величина, обратная IPC. Применяется для удобства, когда IPC<1.


 OPC (operations per clock), операций за такт — величина, аналогичная IPC, но замеряющая операцииисполняемых команд или мопов. При вычислении пиковой величины OPC конвейера, как правило, учитываются лишь вычислительные команды.


 FLOPS (float operations per second: вещественных операций в секунду) — произведение максимальной устоявшейся частоты процессора на величину OPC для вещественных вычислительных команд. Применяется к ядру, а при умножении на число ядер — ко всему процессору, являясь в этом случае одной из его главных скоростных характеристик.


 latency, латентность, задержка — число тактов между подачей команды и завершением её исполнения. Применяется для описания «хронологической длины» конвейера (близка к числу стадий) и длительностей исполнения команды в ФУ или доступа в кэш или память.


 throughput, пропуск, ПС (пропускная способность) — о командах: обратная пропускная способность — значение CPI для отдельного ФУ и исполняемого в нём мопа, либо для всей исполнительной стадииконвейера. ФУ с пропуском в 1 CPI является полноконвейерным, т. е. принимающим на исполнение новый моп каждый такт, при том, что задержка может быть более 1 такта. ФУ с пропуском, (почти) равным задержке, является неконвейерным.

О кэше, памяти и соединяющих их с ядром шинах данных: прямая пропускная способность в байтах/такт или байтах/секунду. Пиковая ПС является произведением разрядности шины, числа передаваемых каждой линией битов/такт и (для Б/c) частоты. Фактическая ПС часто намного меньше пиковой.

Категория: HardWare | Добавил: Tual (26.02.2011)
Просмотров: 691 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]