Микроархитектура микропроцессора Intel Pentium (P5)

Кристалл микропроцессора (МП) Р5 изготовлен по 0,8 микронной БиКМОП технологии с использованием комбинаций биполярных (для повышения быстродействия) и КМОП транзисторов (для уменьшения потребляемой мощности).

Исполнительные устройства (конвейеры) могут работать независимо друг от друга, каждый из двух конвейеров имеет свое целочисленное АЛУ (рис 1). Схемы генерации адресов и интерфейс с КЭШами, КЭШ-команд, буфер адресатов переходов, буферы предвыборки, отвечают за подачу команд в оба конвейера. Буфер адресатов переходов содержит текущие адреса переходов.

В состав устройства управления входит ПЗУ с микрокомандами, которое непосредственно управляет конвейерами и последовательностью управляющих операций. Для хранения текущих операндов селекторов сегментов памяти иинформации о состоянии МП предусмотрен регистровый

файл, содержащий 8 общих регистров, 6 сегментных регистров, 2 регистра состояния и управления.

Устройство операций с плавающей точкой (FPU) способно выполнять одну команду за 1 такт или две команды, если второй в данной паре будет команда обмена информацией. FPU имеет восьми ступенчатый конвейер, первые пять ступеней которого являются общими со ступенями конвейеров целочисленных операций. Исполнение команд может начинаться с выполнения целочисленных команд с последовательным переходом в конвейер FPU. FPU МП поддерживает операнды 32, 64, 80-разрядного формата.

Микроархитектура микропроцессора Intel Pentium (P5) - student2.ru

Рис 1. Структура микропроцессора Р5

В МП имеется 2 отдельных запоминающих КЭШ-устройства по 8Кб каждый – это исключает конфликты при одновременном запросе команд и данных. Длина строк КЭШа позволяет хранить восемь 32-разрядных слов в каждой строке. Внешняя шина содержит 32 линии адреса и 64 линии данных, хотя внутри обрабатываются только 32-разрядные данные.

Команды МП проходят через 5 ступеней конвейера:

1. предвыборка команд;

2. декодирование команд и определение возможности запустить на исполнение сразу две команды;

3. генерация адресов операндов;

4. выполнение (операции АЛУ и доступ к КЭШ памяти);

5. стадия обратной записи (завершение исполнения команд и возможное изменение состояния МП);

МП может выполнять любую команду семейства x86, включая все целочисленные и команды с плавающей точкой. В МП за это отвечает U-конвейер. V-конвейер выполняет простые целочисленные команды и некоторые команды с плавающей точкой. Конвейеры работают одновременно.

Когда команды запускаются парами, то сначала в U-конвейер выдается более сложная команда, а затем в V-конвейер поступает более простая. Парами могут запускаться команды, между которыми нет зависимостей по обращениям к регистрам, например:

1. пересылки: регистр – регистр, регистр – память, память – регистр;

2. операции АЛУ с непосредственным операндом, операндом в регистре или памяти;

3. команды инкрементировать – декрементировать, содержимое регистра и ячейки памяти;

4. команды вызовов и переходов в пределах одного кодового сегмента;

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

Команды с плавающей запятой не могут запускаться в паре с целочисленной командой.

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

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

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

Микропроцессор прогнозирует адреса переходов на основании предположения, что в данном случае направление будет таким же, как и в прошлый раз. Для этого на кристалле небольшой дополнительный КЭШ, называемый буфером адреса переходов (BTB).

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

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

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

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

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

Переход оказывается не предсказанным в двух случаях:

1. Совпадение с ВТВ произошло, но данный переход на самом деле выполнятся не должен;

2. Адрес не совпал с содержимым ВТВ, но в действительности этот переход должен выполнятся.

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

Наши рекомендации