162
ножение. Alpha 21164 имеет по 32 регистра для операций с фик-
сированной и плавающей точками.
Как и в более ранних микропроцессорах Alpha, в Alpha
21164 интенсивно используется конвейеризация. Первые четыре
этапа выполнения команды являются общими для всех операций
и выполняются в модуле инструкций. Это – предвыборка ко-
манды, переход, определение, проверка/подача команды. Блок
целочисленных операций добавляет к обработке команд еще три
этапа (выполнение 1, выполнение 2 и обратную запись), а блок
операций с плавающей точкой – еще пять (доступ к регистрам с
плавающей точкой, выполнение операции с плавающей точкой
1, выполнение операции с плавающей точкой 2, выполнение
операции с плавающей точкой 3, обратная запись).
В микропроцессоре Alpha 21164, в отличие от предыдущих
моделей, блок выполнения обновляет регистры непосредствен-
но, ему не требуется сложный механизм отслеживания команд,
обеспечивающий обновление регистров в нужном порядке. Что-
бы избежать потерь производительности из-за ожидания завер-
шения команд, Alpha 21164 предусматривает обходные пути,
благодаря которым операнды становятся доступными еще до за-
вершения команды. Это аналогично методам посылки данных с
упреждением, применяемым в других микропроцессорах.
Помимо раздельных кэш-памятей первого уровня со сквоз-
ной записью (write through), на кристалле выполнен общий час-
тично ассоциативный кэш второго уровня с обратной записью
(write back) емкостью 96 Кб. На кристалле расположен также
контроллер кэш-памяти третьего уровня, позволяющий работать
как в синхронном, так и в асинхронном режиме.
Для предсказания ветвлений используется таблица, связан-
ная с кэшем команд. Для каждой команды в кэше имеется эле-
мент таблицы, содержащий историю ветвлений, в элементе таб-
лицы используется двухбитовый счетчик. Предсказывается
только один переход. Если при попытке выполнить команду пе-
рехода не определено истинное направление перехода предыду-
щей команды перехода, то выполнение следующей команды
ветвления задерживается.