Энергия и энергетика сегодня

Процессоры семейства Intel

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

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

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

Устройство отката "упорядоченное" устройство, которое знает, как и когда завершить выполнение команды, то есть перевести временные результаты опережающего выполнения в постоянное состояние вычислительной системы.

Интерфейс шины является "частично упорядоченным" устройством, отвечающим за связь трех вышеупомянутых устройств с внешним миром. Интерфейс шины взаимодействует непосредственно с кэшем 2-го уровня и поддерживает до 4 параллельных обращений к кэшу.

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

Устройство выборки/декодированияСтруктура этого устройства приведена на рисунке 3.

Команды из кэша команд могут быть быстро выбраны для последующей обработки. Указатель на следующую команду - это индекс кэша команд, содержимое которого определяется буфером переходов, состоянием процессора и сообщениями о неправильном предсказании перехода, поступающими из устройства выполнения целых команд. Буфер переходов с 512 входами использует расширение алгоритма Йе (Yeh) , которое обеспечивает более чем 90-процентную точность предсказания переходов.

Предположим, что ничего исключительного не происходит и что буфер переходов в своих предсказаниях оказался прав (в P6 предусмотрены эффективные действия в случае неправильного предсказания перехода) .

Кэш команд выбирает строку кэша, соответствующую индексу в указателе на следующую команду, и следующую за ней строку, после чего передает 16 выровненных байтов декодеру. Две строки считываются из-за того, что команды в архитектуре Intel выровнены по границе байта, и поэтому может происходить передача управления на середину или конец строки кэша. Выполнение этой ступени конвейера занимает три такта, включая время, необходимое для вращения предвыбранных байтов и их подачи на декодеры команд. Начало и конец команд помечаются.

Три параллельных декодера принимают поток отмеченных байтов и обрабатывают их, отыскивая и декодируя содержащиеся в потоке команды. Декодер преобразует команды архитектуры Intel в микрокоманды-триады (два операнда, один результат) . Большинство команд архитектуры Intel преобразуются в одну микрокоманду, некоторые требуют четырех микрокоманд, а сложные команды требуют обращения к микрокоду, представляющему из себя набор заранее составленных последовательностей микрокоманд. Некоторые команды, так называемые байт-префиксы, модифицируют следующую за ними команду, что также усложняет работу декодера. Микрокоманды ставятся в очередь, посылаются в таблицу псевдонимов регистров, где ссылки на логические регистры преобразуются в ссылки на физические регистры P6, после чего каждая из микрокоманд вместе с дополнительной информацией о ее состоянии (статусе) посылается в пул команд. Пул команд реализован в виде массива контекстно-адресуемой памяти, называемого также буфером переупорядочивания.

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

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

Взаимодействие с вычислительными ресурсами происходит через пятипортовую распределительную станцию. Структура устройства диспетчирования/выполнения показана на рисунке 4.

P6 может запускать на выполнение до 5 микрокоманд за такт, по одной на каждый порт. Средняя длительно поддерживаемая пропускная способность микрокоманды за такт. Процесс планирования выполнения микрокоманд является принципиально "беспорядочным": момент направления микрокоманд на вычислительные ресурсы определяется только потоками данных и доступностью ресурсов, без какой бы то ни было связи с первоначальным порядком команд в программе.

Перейти на страницу: 1 2 3 4 5 6 7 8 9

Back to Top