Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_к_экзамену_АК_2009_10(теория).doc
Скачиваний:
25
Добавлен:
17.09.2019
Размер:
3.38 Mб
Скачать
  1. Суперскалярные компьютеры: принципы построения, структура процессора.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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