Шпаргалка: Командный цикл процессора
Расшифровывает код операции, содержащийся в излеченной из кэша команде.
Накопители команд:
Каждый связан со своим функциональным блоком (ФБ) → число накопителей обычно равно числу ФБ;
Выступают в роли виртуальных функциональных устройств по отношению к блоку диспетчеризации;
В некоторых процессорах объединен в отдельную очередь.
Блок диспетчеризации также хранит список свободных ФБ – табло (Scoreboard). Блок диспетчеризации извлекает команды из своей очереди, считывает из памяти или регистров операнды этих команд, после чего табло помещает команды и значения операндов в очередь распределения.
Эта операция называется выдачей команд. Блок распределения в каждом цикле проверяет каждую команду на наличие операндов в соответствующем ФБ.
Блок исполнения:
Набор ФБ (операционные целочисленные умножения и сложения с плавающей запятой, доступа к памяти и т.п.).
Блок обновления состояния:
Запись и анализ результата команды, исполнение которой завершено.
34. Какие средства оптимизации могут использоваться в суперскалярных процессорах?
Особенностью системы оптимизации программ при выполнении на суперскалярных процессорах является наличие нескольких уровней оптимизации с применением как программных, так и аппаратных средств.
Отметим наличие двух механизмов процессора для повышения вычислительной эффективности программы: распараллеливания (один или несколько конвейеров) и оптимизации программы (переупорядочивание команд, переименование регистров, предсказание переходов и т.п.).
И если проблемы эффективности фазы оптимизации трансляторов внимание уделяется достаточно давно и много, проблема эффективности работы процессора также под контролем исследователей и производителей, то проблема исследования эффективности всей системы и отдельных ее частей применительно к конкретным алгоритмам и программам является практически неизученной.
35. Какое количество параллельных блоков реализуется на практике в суперскалярных процессорах?
практически достижимая степень параллелизма – 5-6;
Какие команды являются «спариваемыми»?
Команды являются спариваемыми, если:
Между ними не должно быть регистровых зависимостей типа «запись после чтения» или «чтение после записи»;
Ни одна из команд не может содержать одновременно смещение и непосредственный операнд;
36. Какие аппаратные средства требуются для реализации суперскалярного процессора?
Блок выборки команд:
извлекает команды из основной памяти через кэш-память команд;
хранит несколько значений счетчика команд и обрабатывает команды условного перехода.
Блок декодирования:
расшифровывает код операции, содержащийся в извлеченных из кэш-памяти командах.
В некоторых процессорах блоки выборки и декодирования совмещены.
Блоки диспетчеризации и распределения: