![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Параллельные команды – могут выполняться в конвейере одновременно, без приостановок, полагаясь на отсутствие структурных конфликтов. Взаимозависимые команды не являются параллельными. Виды параллелизма:
- программный параллелизм:
Условие существования: команды в последовательности независимы и могут выполняться параллельно. Степень параллелизма: зависит от частоты появления в программе фрагментов, содержащих взаимозависимые команды. Факторы ILP:
- архитектура набора команд;
- специфика приложения;
- операционная латентность – время, до истечения которого результат операции недоступен для использования в качестве операнда в последующих командах.
- аппаратный параллелизм:
Условие существования: способность процессора извлечь преимущества из параллелизма уровня команд. Степень параллелизма определяется:
- количеством команд, которые процессор может извлечь и выполнить одновременно (количеством параллельных конвейеров);
- быстродействием и функциональностью механизма выявления независимых команд.
Механизмы выявления: упорядочивание команд в программе при их запуске; политики запуска.
VLIW-архитектура:
VLIW-компьютеры (Very Long Instruction Word, архитектура с очень длинным командным словом):
- выдача на выполнение фиксированного количества команд, сформатированных как:
= одна «длинная» команда;
= пакет команд фиксированного формата;
- планирование исключительно компилятором.
Планирование вычислений полностью реализуется программным обеспечением. Функции «интеллектуального» компилятора:
- поиск в программе независимых инструкций;
- группирование найденных инструкций в «очень длинные» командные слова («метаинструкции» длиной 256-1024 бит).
Формат инструкции:
- длина – 256 бит;
- 8 операционных полей, каждое из которых:
= выполняет традиционную трехоперандную RISC-подобную инструкцию;
= непосредственно управляет специфическим функциональным блоком при простом декодировании;
= имеет небольшую длину.
Проблемы VLIW-архитектуры:
- зависимость компилятора от микроархитектуры. Решение – генерация промежуточного кода и его трансляция в машинно-зависимый формат на каждом конкретном устройству;
- реакция программ на непредусмотренные в процессе компиляции динамические ситуации неизвестна.
90. Суперскалярные компьютеры: принципы построения, структура процессора.
Суть: выявление взаимозависимостей машинных команд – посредством специального аппаратного решения.
Особенности:
- команды должны быть независимыми и удовлетворять некоторым ограничениям, например таким, что в каждом такте не может выдаваться более одной команды обращения к памяти;
- если какая-либо команда в потоке команд является логически зависимой или не удовлетворяет критериям выдачи, на выполнение будут выданы только команды, предшествующие данной;
- скорость выдачи команд является переменной (отличие от VLIW-машин).
Структура суперскалярного процессора:
Блок выборки команд:
- извлекает команды из основной памяти через кэш-память команд;
- хранит несколько значений счетчика команд и обрабатывает команды условного перехода.
Блок декодирования: расшифровывает код операции, содержащийся в извлеченных из кэш-памяти командах. В некоторых процессорах блоки выборки и декодирования совмещены.
Блоки диспетчеризации и распределения:
- взаимодействуют между собой, выполняя функцию контроллера трафика;
- хранят очереди декодированных команд.
Очередь блока распределения часто рассредоточивается по несколько самостоятельным буферам – накопителям команд. Каждый накопитель команд связан со своим функциональным блоком (ФБ). Если в процессоре используется несколько однотипных ФБ, то им придается общий накопитель.
Блок диспетчеризации также хранит список свободных функциональных блоков – табло (Scoreboard). Блок диспетчеризации извлекает команды из своей очереди, считывает из памяти или регистров операнды этих команд, после чего, в зависимости от состояния табло, помещает команды и значения операндов в очередь распределения.
Эта операция называется выдачей команд. Блок распределения в каждом цикле проверяет каждую команду в своих очередях на наличие всех необходимых для ее выполнения операндов и при положительном ответе начинает выполнение таких команд в соответствующем функциональном блоке.
Блок исполнения: набор функциональных блоков.
Блок обновления состояния: запись и анализ результата команды, исполнение которой завершено; учет полученного результата для команд в очередях распределения, где он выступает в качестве одного из операндов.
Дата публикования: 2015-01-24; Прочитано: 612 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!