Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архитектура ЭВМ и систем (конспект лекций).doc
Скачиваний:
190
Добавлен:
29.03.2015
Размер:
1.19 Mб
Скачать

Исполнение команд

После формирования для каждой команды упорядоченных троек, со­стоящих из кода операции, физических операндов - источника и результа­та, и размещения их в буферах, наступает фаза динамической проверки готовности значений операндов для исполнения команды.

В идеале команда готова к исполнению, как только готовы ее входные операнды. Однако есть ряд ограничений, связанных с доступностью фи­зических ресурсов, таких как исполнительные устройства, коммутаторы и порты регистровых файлов (или переупорядочивающего буфера). Для организации окна исполнения используются различные методы: одной очереди, многих очередей или метод резервирующей станции.

Если имеется одна очередь, то переименование регистров не требуется, так как доступность значений операндов может отмечаться битом резерви­рования, сопоставленным каждому регистру. Регистр резервируется, когда модифицирующая его команда назначается на исполнение. И регистр освобождается, когда заканчивается исполнение команды. Если для команды ре­сурсы не были зарезервированы, то она приостанавливает свое исполнение.

В методе многих очередей каждая очередь организуется для команд одного типа. Например, очередь команд с плавающей точкой или очередь команд работы с памятью.

Третий метод предполагает использование резервирующей станции, со­стоящей из совокупности элементов, каждый из которых содержит позиции для размещения кода операции, наименования первого операнда, самого первого операнда, признака доступности первого операнда, наименования второго операнда, самого второго операнда, признака доступности второ­го операнда и наименования регистра результата. Когда команда заверша­ет исполнение и вырабатывает результат, то наименование результата срав­нивается с наименованиями операндов в резервирующей станции.

Если в резервирующей станции обнаруживается команда, ждущая этого результата, то данные записываются в соответствующую позицию и уста­навливается признак их доступности. Когда у команды доступны все опе­ранды, инициируется ее исполнение. Резервирующая станция следит за дос­тупностью операндов. Когда команда при диспетчеризации попадает в ре­зервирующую станцию, все готовые операнды из регистрового файла пере­писываются в поля этой команды. Когда все операнды готовы, команда исполняется. Иногда резервирующая станция содержит не сами операнды, а указатели на них в регистровом файле или переупорядочивающем буфере.

Работа с памятью

Для вычисления адреса памяти, как правило, требуется, по крайней мере, одно сложение. После вычисления адреса может понадобиться его преобразо­вание в физический адрес, осуществляемое буфером трансляции адресов (TLB).

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

Завершение выполнения команды

Завершающей фазой исполнения команды является фаза изменения состоя­ния процессора в соответствии с выполненной командой. Назначение этой фазы - сохранение последовательной модели исполнения программы, при реальном параллельном выполнении отдельных команд и условном выполнении команд ветвления. Для изменения состояния процессора применяются два основных спо­соба, причем оба основаны на использовании двух состояний: состояния, изме­ненного в результате операции, и состояния, требуемого для восстановления.

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

Второй способ предполагает рассмотрение логического (архитектурно­го) и физического состояния процессора. Физическое состояние изменяется немедленно по завершении очередной команды. Архитектурное состояние из­меняется тогда, когда ясен результат условно выполненных команд. Для реа­лизации этого способа используется переупорядочивающий буфер: результа­ты из буфера отправляются в файл архитектурных регистров и память.

В переупорядочивающем буфере для каждой команды содержится со­ответствующее ей значение счетчика команд и значения других регистров, которые необходимы для корректного обслуживания прерываний.

Основные компоненты суперскалярного микро­процессора: функциональные модули - выполнения операций с плаваю­щей (FPU) и фиксированной (ALU) точкой, устройство загрузки/сохране­ния, файлы регистров, раздельная кэш-память команд и данных, а также вспомогательные модули, обеспечивающие динамическое планирование вычислительного процесса - устройство связи с кэш-памятью 2-го уровня, блок переупорядочивания команд и блок предварительной дешифрации.