RSS    

   Реферат: Процессор пентиум

го выполнения в пуле команд.

Устройство отката - «упорядоченное» устройство, которое зна-

ет,  как и когда завершить выполнение команды,  то есть перевести

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

ние вычислительной системы.

Интерфейс шины  является  «частично  упорядоченным» устройс-

твом, отвечающим за связь трех вышеупомянутых устройств с внешним

миром.  Интерфейс  шины  взаимодействует  непосредственно с кэшем

2-го уровня и поддерживает до 4 параллельных  обращений  к  кэшу.

Интерфейс  шины  также  управляет  обменом данными с основной па-

мятью, который происходит с использованием протокола MESI [1].

2Устройство выборки/декодирования

Структура этого  устройства приведена на рисунке 3.

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

дующей обработки. Указатель на следующую команду - это индекс кэ-

ша  команд,  содержимое  которого определяется буфером переходов,

состоянием процессора и сообщениями о  неправильном  предсказании

перехода, поступающими из устройства выполнения целых команд. Бу-

фер переходов с 512 входами использует  расширение  алгоритма  Йе

(Yeh),  которое  обеспечивает  более  чем  90-процентную точность

предсказания переходов.

Предположим, что  ничего исключительного не происходит и что


·     8 -

буфер переходов в своих предсказаниях оказался прав (в P6 предус-

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

перехода).

Кэш команд  выбирает строку кэша,  соответствующую индексу в

указателе на следующую команду,  и следующую за ней строку, после

чего передает 16 выровненных байтов декодеру. Две строки считыва-

ются из-за того,  что команды в архитектуре  Intel  выровнены  по

границе байта, и поэтому может происходить передача управления на

середину или конец строки кэша. Выполнение этой ступени конвейера

занимает три такта, включая время, необходимое для вращения пред-

выбранных байтов и их подачи на декодеры команд.  Начало и  конец

команд помечаются.

Три параллельных декодера принимают поток отмеченных  байтов

и  обрабатывают  их,  отыскивая и декодируя содержащиеся в потоке

команды. Декодер преобразует команды архитектуры Intel в микроко-

манды-триады (два операнда,  один результат).  Большинство команд

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

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

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

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

мые байт-префиксы,  модифицируют следующую за ними  команду,  что

также усложняет работу декодера. Микрокоманды ставятся в очередь,

посылаются в таблицу псевдонимов регистров,  где ссылки на  логи-

ческие регистры преобразуются в ссылки на физические регистры P6,

после чего каждая из микрокоманд вместе с дополнительной информа-

цией о ее состоянии (статусе) посылается в пул команд. Пул команд

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

мого также буфером переупорядочивания.

В этой точке заканчивается «упорядоченная» часть конвейера.

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

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

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

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

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

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

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

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

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

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

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

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

программе.


·     9 -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


·     10 -

случаи.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Страницы: 1, 2, 3, 4, 5


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.