Благодаря применению шаблонов по сравнению с RISC-архитектурой удаляются соответствующие декодеры. Кроме того, применение шаблонов позволяет упростить аппаратуру распределяющего коммутатора, т.к. некоторые типы «маршрутизации» команд в принципе невозможны.
Использование в IA-64 стекирования регистров и вращения регистров требует наличия аппаратуры, отображающей виртуальные номера регистров в физические, что осуществляется на стадии REN. Для этого Itanium имеет набор сумматоров и мультиплексоров. Так, логика стекирования требует только одного 7-разрядного сумматора, а всего требуется 98 сумматоров и 42 мультиплексора, которые занимают площадь менее 0,25 кв. мм.
Для автоматического сохранения/восстановления регистров в памяти при «переполнении/переизбытке» стека работает аппаратура RSE (Register Stack Engine). Она просто приостанавливает выполнение команд, ждущих соответствующие регистры; перезаполнение конвейера при этом не требуется.
Архитектура IA-64 характеризуется очень большими емкостями файлов регистров. Файл регистров общего назначения GR в IA-64 имеет емкость 128 строк. В Itanium он имеет 8 портов чтения и 6 портов записи. Эти порты позволяют поддерживать одновременно 2 Моперации и 2 I-операции за такт. Файл регистров с плавающей запятой FR имеет ту же емкость и обеспечивает одновременную работу двух М-операций и двух команд FMAC («умножить-и-сложить»). Наконец, PRF - файл однобитных регистров-предикатов (их всего 64) имеет 15 портов чтения и 11 портов записи.
Эффективность работы функциональных устройств увеличена за счет возможности прямой подачи результата выполнения на вход другой команды, минуя запись в регистры (техника «scoreboard»). Другая важнейшая особенность Itanium - неблокирующийся кэш. В результате конвейер встает только тогда и там, когда и где требуется реально отсутствующие данные, и возобновляет свою работу, как только они станут доступны.
«Целочисленное исполнительное ядро» имеет 4 порта - 2 порта памяти и 2 собственно целочисленных порта. Все 4 порта могут выдавать на выполнение арифметические команды, команды сдвига, логические команды, команды сравнения и большинство целочисленных мультимедийных портов SIMD.
М-порты могут также «выполнять» команды загрузки регистров/записи в память, а Iпорты - более редкие целочисленные команды: проверку бит, поиск нулевого байта и некоторые виды сдвигов.
Условные переходы могут выполняться на стадии DET, что требует возможности чтения сразу трех предикатов.
Поскольку предикаты генерируются исполнительным ядром микропроцессора, и могут использоваться почти сразу в последующих командах, требуется их по возможности быстрая доставка в аппаратуру, которая будет использовать их. Для повышения эффективности работы с предикатами в Itanium предусмотрена возможность их применения «на лету». Для этого кроме файла PRF используется файл спекулятивных предикатных регистров SPRF, и как только предикат рассчитан, его значение помещается в SPRF, откуда оно может сразу использоваться.
Обновление «архитектурного» файла PRF (чтение из которого происходит на более ранней стадии конвейера) осуществляется позднее.
Особый интерес представляет собой и аппаратная реализация в Itanium спекулятивного выполнения и обработки отложенных прерываний, что предусмотрено архитектурой IA-64.
Функциональные устройства с плавающей запятой (FPU) предполагают возможность работы с 82-разрядным представлением. Это обеспечивает, в частности, форматы чисел с плавающей запятой одинарной, двойной и расширенной точности. Некоторым базовым примитивом FPU можно считать команды FMAC, которые выполняются соответствующими FMAC-устройствами. Таких устройств в Itanium два, и каждая FMAC-команда за такт выполняет две операции с плавающей запятой двойной точности - умножение и сложение.
В результате Itamium имеет пиковую производительность в 4 операции
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.