Устройство диспетчирования/выполнения



Устройство диспетчирования выбирает микрокоманды из пула ко-манд в зависимости от их статуса. Под статусом мы будем понимать информацию о доступности операндов микрокоманды и наличии необхо-димых для ее выполнения вычислительных ресурсов. Если статус мик-рокоманды показывает, что ее операнды уже вычислены и доступны, а необходимое для ее выполнения вычислительное устройство (ресурс) также доступно, то устройство диспетчирования выбирает микроко-манду из пула команд и направляет ее на устройство для выполне-ния. Результаты выполнения микрокоманды возвращаются в пул.

Взаимодействие с вычислительными ресурсами происходит через

пятипортовую распределительную станцию. Структура устройства дис-

петчирования/выполнения показана на рисунке 4.

P6 может запускать на выполнение до 5 микрокоманд за такт,

по одной на каждый порт.  Средняя длительно поддерживаемая про-

пускная способность - 3 микрокоманды за такт. Процесс планирова-

ния выполнения микрокоманд является принципиально «беспорядоч-

ным»: момент направления микрокоманд на вычислительные ресурсы

определяется только потоками данных и доступностью ресурсов, без

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

программе.


· 9 -

 

Алгоритм, отвечающий за планирование выполнения микрокоманд,

является крайне важным для производительности процессора в целом.

Если в каждом такте для каждого ресурса готова к выполнению толь-

ко одна микрокоманда, то проблемы выбора не возникает. Но если

готовых к выполнению на данном ресурсе микрокоманд несколько, то

какую из них выбрать? Можно доверить выбор случаю. Можно приме-

нить алгоритм «первый пришел - первый обслужен». Идеальным был бы

выбор микрокоманды, выполнение которой привело бы к максимальному

сокращению графа потоков данных выполняемой программы. Однако

поскольку нет возможности определить такую микрокоманду в ходе

выполнения программы, используется алгоритм планирования, имити-

рующий модель «первый пришел - первый обслужен», предпочитая

смежное выполнение смежных микрокоманд.

Поскольку система команд Intel содержит множество команд пе-

рехода, многие микрокоманды также являются переходами. Алгоритм,

реализованный в буфере переходов, позволяет в большинстве случаев

правильно предсказать, состоится или не состоится переход, но

иногда он все же будет ошибаться. Рассмотрим для примера случай,

когда буфер переходов предсказывает переход назад в конце цикла:

до тех пор, пока условие выхода из цикла не выполняется, переход

будет предсказываться верно, однако когда это условие станет ис-

тинным, предсказание будет ошибочным.

Для исправления случаев неверного предсказания перехода при-

менен следующий подход. Микрокомандам перехода еще в упорядочен-

ной части конвейера ставятся в соответствие адрес следующей ко-

манды и предполагаемый адрес перехода. После вычисления перехода

реальная ситуация сравнивается с предсказанной. Если они совпада-

ют, то проделанная, исходя из предположения об исходе перехода,

работа оказывается полезной, так как соответствует реальному ходу

программы, а микрокоманда перехода удаляется из пула команд.

Если же допущена ошибка (переход был предсказан, но не прои-

зошел, или было предсказано отсутствие перехода, а в действитель-

ности он состоялся), то устройство выполнения переходов изменяет

статус всех микрокоманд, засланных в пул команд после команды пе-

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

направляется в буфер переходов, который перезапускает весь конве-

йер с нового адреса.

Устройство отката

Структура устройства отката изображена на рисунке 5.

Устройство отката также проверяет статус микрокоманд в пуле

команд: оно ищет микрокоманды, которые уже выполнены и могут быть

удалены из пула. Именно при удалении микрокоманды результаты ее

выполнения, хранящиеся в пуле команд, реально изменяют состояние

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

Устройство отката должно не только обнаруживать завершившиеся

микрокоманды, но и удалять их из пула команд таким образом, чтобы

изменение состояния вычислительной системы соответствовало перво-

начальному порядку команд в программе. При этом оно должно учиты-

вать и правильно обрабатывать прерывания, исключительные ситуа-

ции, неправильно предсказанные переходы и другие экстремальные


· 10 -

 

случаи.

Процесс отката занимает два такта. В первом такте устройство

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

команды; затем оно определяет, какие из этих микрокоманд могут

быть удалены из пула в соответствии с исходным порядком команд в

программе. Во втором такте результаты отката записываются в пул

команд и в регистровый файл отката. Устройство отката может обра-

ботать три микрокоманды за такт.

Интерфейс шины

Структура интерфейса шины изображена на рисунке 6.

Есть два типа обращений к памяти: чтение из памяти в регистр

и запись из регистра в память.

При чтении из памяти должны быть заданы адрес памяти, размер

блока считываемых данных и регистр-назначение. Команда чтения ко-

дируется одной микрокомандой.

При записи надо задать адрес памяти, размер блока записывае-

мых данных и сами данные. Поэтому команда записи кодируется двумя

микрокомандами: первая генерирует адрес, вторая готовит данные.

Эти микрокоманды планируются независимо и могут выполняться па-

раллельно; они могут переупорядочиваться в буфере записи.

Запись в память никогда не выполняется опережающим образом,

так как нет эффективного способа организации отката в случае не-

верного предсказания. Разные команды записи никогда не переупоря-

дочиваются друг относительно друга. Буфер записи инициирует за-

пись, только когда сформированы и адрес, и данные, и нет ожидаю-

щих выполнения более ранних команд записи.

При изучении вопроса о возможности и целесообразности переу-

порядочения доступа к памяти инженеры «Intel» пришли к следующим

выводам.

Команда записи не должна обгонять идущую впереди команду за-

писи, так как это может лишь незначительно увеличить производи-

тельность.

Можно запретить командам записи обгонять команды чтения из

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

водительности.

Запрет командам чтения обгонять другие команды чтения или

команды записи может повлечь существенные потери в производитель-

ности.

Поэтому была реализована архитектура подсистемы памяти, поз-

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

ды чтения. Буфер упорядочения памяти служит в качестве распреде-

лительной станции и буфера переупорядочивания. В нем хранятся от-

ложенные команды чтения и записи, и он осуществляет их повторное

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

или недоступность ресурсов) исчезает.

 

 


 

· 11 -

 

Вывод

Таким образом, реализованная в P6 комбинация таких архитек-турных методов, как улучшенное предсказание переходов (почти всегда правильно определяется предстоящая последовательность ко-манд), анализ потоков данных (определяется оптимальный порядок выполнения команд) и опережающее выполнение (предвиденная после-довательность команд выполняется без простоев в оптимальном по-рядке), позволила удвоить производительность по отношению к Pen-tium при использовании той же самой технологии производства. Эта комбинация методов называется динамическим выполнением.

В настоящее время «Intel» ведет разработку новой 0,35 мкм

технологии производства, что даст возможность выпускать процессо-

ры P6 с тактовой частотой ядра свыше 200 МГц.

.

· 12 -

 


Дата добавления: 2019-07-15; просмотров: 161; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!