Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Параллелизм уровня команд. Концепция VLIW-архитектуры



Параллельные команды – могут выполняться в конвейере одновременно, без приостановок, полагаясь на отсутствие структурных конфликтов. Взаимозависимые команды не являются параллельными. Виды параллелизма:

- программный параллелизм:

Условие существования: команды в последовательности независимы и могут выполняться параллельно. Степень параллелизма: зависит от частоты появления в программе фрагментов, содержащих взаимозависимые команды. Факторы ILP:

- архитектура набора команд;

- специфика приложения;

- операционная латентность – время, до истечения которого результат операции недоступен для использования в качестве операнда в последующих командах.

- аппаратный параллелизм:

Условие существования: способность процессора извлечь преимущества из параллелизма уровня команд. Степень параллелизма определяется:

- количеством команд, которые процессор может извлечь и выполнить одновременно (количеством параллельных конвейеров);

- быстродействием и функциональностью механизма выявления независимых команд.

Механизмы выявления: упорядочивание команд в программе при их запуске; политики запуска.

VLIW-архитектура:

VLIW-компьютеры (Very Long Instruction Word, архитектура с очень длинным командным словом):

- выдача на выполнение фиксированного количества команд, сформатированных как:

= одна «длинная» команда;

= пакет команд фиксированного формата;

- планирование исключительно компилятором.

Планирование вычислений полностью реализуется программным обеспечением. Функции «интеллектуального» компилятора:

- поиск в программе независимых инструкций;

- группирование найденных инструкций в «очень длинные» командные слова («метаинструкции» длиной 256-1024 бит).

Формат инструкции:

- длина – 256 бит;

- 8 операционных полей, каждое из которых:

= выполняет традиционную трехоперандную RISC-подобную инструкцию;

= непосредственно управляет специфическим функциональным блоком при простом декодировании;

= имеет небольшую длину.

Проблемы VLIW-архитектуры:

- зависимость компилятора от микроархитектуры. Решение – генерация промежуточного кода и его трансляция в машинно-зависимый формат на каждом конкретном устройству;

- реакция программ на непредусмотренные в процессе компиляции динамические ситуации неизвестна.

90. Суперскалярные компьютеры: принципы построения, структура процессора.

Суть: выявление взаимозависимостей машинных команд – посредством специального аппаратного решения.

Особенности:

- команды должны быть независимыми и удовлетворять некоторым ограничениям, например таким, что в каждом такте не может выдаваться более одной команды обращения к памяти;

- если какая-либо команда в потоке команд является логически зависимой или не удовлетворяет критериям выдачи, на выполнение будут выданы только команды, предшествующие данной;

- скорость выдачи команд является переменной (отличие от VLIW-машин).

Структура суперскалярного процессора:

Блок выборки команд:

- извлекает команды из основной памяти через кэш-память команд;

- хранит несколько значений счетчика команд и обрабатывает команды условного перехода.

Блок декодирования: расшифровывает код операции, содержащийся в извлеченных из кэш-памяти командах. В некоторых процессорах блоки выборки и декодирования совмещены.

Блоки диспетчеризации и распределения:

- взаимодействуют между собой, выполняя функцию контроллера трафика;

- хранят очереди декодированных команд.

Очередь блока распределения часто рассредоточивается по несколько самостоятельным буферам – накопителям команд. Каждый накопитель команд связан со своим функциональным блоком (ФБ). Если в процессоре используется несколько однотипных ФБ, то им придается общий накопитель.

Блок диспетчеризации также хранит список свободных функциональных блоков – табло (Scoreboard). Блок диспетчеризации извлекает команды из своей очереди, считывает из памяти или регистров операнды этих команд, после чего, в зависимости от состояния табло, помещает команды и значения операндов в очередь распределения.

Эта операция называется выдачей команд. Блок распределения в каждом цикле проверяет каждую команду в своих очередях на наличие всех необходимых для ее выполнения операндов и при положительном ответе начинает выполнение таких команд в соответствующем функциональном блоке.

Блок исполнения: набор функциональных блоков.

Блок обновления состояния: запись и анализ результата команды, исполнение которой завершено; учет полученного результата для команд в очередях распределения, где он выступает в качестве одного из операндов.





Дата публикования: 2015-01-24; Прочитано: 592 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.013 с)...