Страница: 5/11
пользователя.
Устройство диспетчирования/выполнения является "беспорядоч-
ным" устройством, которое воспринимает поток данных и планирует
выполнение микрокоманд с учетом зависимостей по данным и доступ-
ности ресурсов, а также временно сохраняет результаты опережающе-
го выполнения в пуле команд.
Устройство отката - "упорядоченное" устройство, которое зна-
ет, как и когда завершить выполнение команды, то есть перевести
временные результаты опережающего выполнения в постоянное состоя-
ние вычислительной системы.
Интерфейс шины является "частично упорядоченным" устройс-
твом, отвечающим за связь трех вышеупомянутых устройств с внешним
миром. Интерфейс шины взаимодействует непосредственно с кэшем
2-го уровня и поддерживает до 4 параллельных обращений к кэшу.
Интерфейс шины также управляет обменом данными с основной па-
мятью, который происходит с использованием протокола MESI [1].
2Устройство выборки/декодирования
Структура этого устройства приведена на рисунке 3.
Команды из кэша команд могут быть быстро выбраны для после-
дующей обработки. Указатель на следующую команду - это индекс кэ-
ша команд, содержимое которого определяется буфером переходов,
состоянием процессора и сообщениями о неправильном предсказании
перехода, поступающими из устройства выполнения целых команд. Бу-
фер переходов с 512 входами использует расширение алгоритма Йе
(Yeh), которое обеспечивает более чем 90-процентную точность
предсказания переходов.
Предположим, что ничего исключительного не происходит и что
- 8 -
буфер переходов в своих предсказаниях оказался прав (в P6 предус-
мотрены эффективные действия в случае неправильного предсказания
перехода).
Кэш команд выбирает строку кэша, соответствующую индексу в
указателе на следующую команду, и следующую за ней строку, после
чего передает 16 выровненных байтов декодеру. Две строки считыва-
ются из-за того, что команды в архитектуре Intel выровнены по
границе байта, и поэтому может происходить передача управления на
середину или конец строки кэша. Выполнение этой ступени конвейера
занимает три такта, включая время, необходимое для вращения пред-
выбранных байтов и их подачи на декодеры команд. Начало и конец
команд помечаются.
Три параллельных декодера принимают поток отмеченных байтов
и обрабатывают их, отыскивая и декодируя содержащиеся в потоке
команды. Декодер преобразует команды архитектуры Intel в микроко-
манды-триады (два операнда, один результат). Большинство команд
архитектуры Intel преобразуются в одну микрокоманду, некоторые
требуют четырех микрокоманд, а сложные команды требуют обращения
к микрокоду, представляющему из себя набор заранее составленных
последовательностей микрокоманд. Некоторые команды, так называе-
мые байт-префиксы, модифицируют следующую за ними команду, что
также усложняет работу декодера. Микрокоманды ставятся в очередь,
посылаются в таблицу псевдонимов регистров, где ссылки на логи-
ческие регистры преобразуются в ссылки на физические регистры P6,
после чего каждая из микрокоманд вместе с дополнительной информа-
цией о ее состоянии (статусе) посылается в пул команд. Пул команд
реализован в виде массива контекстно-адресуемой памяти, называе-
мого также буфером переупорядочивания.
В этой точке заканчивается "упорядоченная" часть конвейера.
2Устройство диспетчирования/выполнения
Устройство диспетчирования выбирает микрокоманды из пула ко-
манд в зависимости от их статуса. Под статусом мы будем понимать
информацию о доступности операндов микрокоманды и наличии необхо-
димых для ее выполнения вычислительных ресурсов. Если статус мик-
рокоманды показывает, что ее операнды уже вычислены и доступны, а
необходимое для ее выполнения вычислительное устройство (ресурс)
также доступно, то устройство диспетчирования выбирает микроко-
манду из пула команд и направляет ее на устройство для выполне-
ния. Результаты выполнения микрокоманды возвращаются в пул.
Взаимодействие с вычислительными ресурсами происходит через
пятипортовую распределительную станцию. Структура устройства дис-
петчирования/выполнения показана на рисунке 4.
P6 может запускать на выполнение до 5 микрокоманд за такт,
по одной на каждый порт. Средняя длительно поддерживаемая про-
Реферат опубликован: 5/02/2009