Микропроцессоры Alpha 2106x. На сегодняшний день микропроцессоры Alpha являются наиболее производительными однокристальными устройствами, выпускаемыми серийно [8, 19].
Микропроцессоры Alpha являются хорошей иллюстрацией концепции Speed Daemon - достижения высокой производительности за счет увеличения тактовой частоты при относительно простой логике функционирования.
Архитектура микропроцессоров Alpha впервые была представлена в 1992 году на конференции ISSCC, а уже в 1993г. был выпущен первый из микропроцессоров - Alpha 21064 с тактовой частотой 20 МГц, выполненный по 0,75 мкм КМОП технологии с 4 слоями металлизации. Процессор содержал 1,68 млн. транзисторов на кристалле площадью 238 мм2.
Благодаря высокой тактовой частоте и высокой степени конвейеризации выполняемых операций (до 10 тактов на операцию) этот микропроцессор надолго занял лидирующее положение по производительности. Основной областью использования процессора явились высокопроизводительные рабочие станции и серверы.
Следующими в сентябре 1993 г. были выпущены микропроцессор Alpha 21066-166 МГц и 21068-66 МГц. Эти процессоры ориентированы на использование в более дешевых системах - рабочих станциях нижнего и среднего уровня. Архитектура ядра данных микропроцессоров аналогична Alpha 21064. На кристалле микропроцессоров Alpha 21066/21068 расположены контроллеры: ПДП, графический и шины РС1, что позволяет снизить стоимость и упростить построение систем на их основе.
Выпуск в октябре 1993 года микропроцессора Alpha 21064А с тактовой частотой 225 и 275 МГц еще более упрочил позиции микропроцессоров компании DEC, как лидеров в производительности.
Микропроцессор Alpha 21064 имеет 64-разрядную суперскалярную RISC-архитектуру с двумя исполнительными конвейерами. Микропроцессор может выполнять за один такт до двух команд с фиксированной и плавающей точкой или команду перехода. Блок предсказания перехода обеспечивает вероятность правильного прогноза 0,8.
Микропроцессор содержит на кристалле раздельные кэш-памяти команд и данных, каждый емкостью 16 Кбайт, 32 регистра с плавающей точкой и 32 регистра с фиксированной точкой. Кэш второго уровня - внешний, может составлять от 128 Кбайт до 16 Мбайт. Тактовая частота шины в системе может быть в 2,5 - 10 раз меньшей, чем частота работы микропроцессора. Ширина внешних шин адреса и данных составляет 43 и 128 битов соответственно.
В микропроцессорах Alpha 21064 не используется сложная логика переупорядочивания команд и переименования регистров. Обеспечение эффективной загрузки исполнительных устройств возлагается на компилятор.
Микропроцессор Alpha 21164. Следующим рекордным достижением DEC стал выпуск в сентябре 1994 года микропроцессора нового поколения Alpha 21164, с тактовыми частотами 266 и 300 МГц. Это был первый микропроцессор, имеющий производительность до 1,2 миллиарда операций в секунду. Применение новой технологии 0,5 мкм позволило разместить на кристалле площадью 298 кв. мм 9,3 млн. транзисторов.
Структура микропроцессора приведена на рис. 1.9.
Архитектура этого процессора максимально ориентирована на достижение высокой тактовой частоты.
По сравнению с предыдущим поколением, в Alpha 21164 вдвое увеличилось число исполнительных устройств, а число тактов, требуемых для выполнения команд, уменьшилось.
Четыре команды извлекаются одновременно из кэш-памяти команд, объемом 8 Кбайт и помещаются в один из двух буферов команд, каждый из которых в состоянии хранить четыре команды. Команды извлекаются из буфера в порядке, определяемом программой. Буфер должен быть полностью освобожден прежде, чем начнется использование другого буфера.
Это ограничивает пропускную способность выборки команд, однако значительно упрощает управление процессором.
Когда для команды готовы операнды (находятся в файле регистров или могут быть доступны на проходе между операционным устройством и регистровым файлом), команда передается на исполнение в соответствующий ей функциональный блок. Для обеспечения правильного исполнения прерываний процессор не меняет порядка исполнения команд: изменение значений регистров происходит в порядке, предписанном программой. За один такт процессор может исполнять до 4-х команд: две с фиксированной точкой, две - с плавающей. Блоки целочисленных операций не идентичны. Один из них может выполнять запоминание, сдвиги и целочисленное умножение, а другой, кроме общих целочисленных команд, обрабатывает условные переходы. Блоки выполнения операций с плавающей точкой также различаются. Блок FP+ выполняет конвейерное сложение, простое сложение, деление и условные переходы с плавающей точкой, а блок FPx - конвейерное и простое умножение. Alpha 21164 имеет по 32 регистра для операций с фиксированной и плавающей точкой.
Как и в более ранних микропроцессорах Alpha, в Aplha 21164 интенсивно используется конвейеризация. Первые 4 этапа выполнения команды являются общими для всех операций и выполняются в модуле инструкций. Это предвыборка команды, переход, определение, проверка/подача команды. Блок целочисленных операций добавляет к обработке команд еще 3 этапа (выполнение 1, выполнение 2 и обратную запись), а блок операций с плавающей точкой - еще 5 (доступ к регистрам с плавающей точкой, выполнение операции с плавающей точкой 1, выполнение операции с плавающей точкой 2, выполнение операции с плавающей точкой 3 и обратную запись).
В микропроцессоре Aplha 21164, в отличие от предыдущих моделей, блок выполнения обновляет регистры непосредственно. Ему не требуется сложный механизм отслеживания команд, обеспечивающий обновление регистров в нужном порядке. Чтобы избежать потерь производительности из-за ожидания завершения команд, Aplha 21164 предусматривает обходные пути, благодаря которым операнды становятся доступными еще до завершения команды. Это аналогично методам посылки данных с упреждением, применяемым в других микропроцессорах.
Помимо раздельных кэш-памятей первого уровня со сквозной записью (write-through), на кристалле выполнен общий частично ассоциативный кэш второго уровня с обратной записью (write-back) емкостью 96 Кбайт. На кристалле расположен также контроллер кэш-памяти третьего уровня, позволяющий работать как в синхронном, так и в асинхронном режиме.
Для предсказания ветвлений используется таблица, связанная с кэшем команд. Для каждой команды в кэш имеется элемент таблицы, содержащий историю ветвлений. В элементе таблицы используется двухбитовый счетчик. Предсказывается только один переход. Если при попытке выполнить команду перехода не определено истинное направление перехода предыдущей команды перехода, то выполнение следующей команды ветвления задерживается.
Кэш первого уровня может поддерживать некоторое число необработанных промахов. Процессор имеет шестиэлементный файл адресов необработанных промахов (MAF - miss addxess file), каждый элемент которого содержит адрес и регистр для загрузки при промахе. Если адреса промаха принадлежат одной строке кэш-памяти, то в MAF они рассматриваются как один элемент. Это позволяет накапливать в MAF больше шести промахов при обращении к кэшу (вплоть до 21).
Использование иерархии кэшей позволило увеличить интенсивность подкачки команд и данных из внешней памяти. Внешняя 128-разрядная шина данных процессора может работать с тактовой частотой в 1 - 15 раз меньшей.
В ноябре 1995 года был выпущен микропроцессор с тактовой частотой 333 МГц, а в марте 1996, с переходом на технологию 0,35 микрон, были представлены микропроцессоры Alpha 21164А с тактовыми частотами 366 и 400 МГц [39, 40].
Дальнейшее развитие микропроцессоров семейства характеризуем увеличением тактовой частоты (в июле 1996 выпущен Alpha 21164 с 500МГц, в марте 1997 - 600 МГц), резким снижением (почти в 2 раза) цены процессора, а также поиском путей адаптации архитектуры Alpha для использования в Windows NT системах.
Одна из последних разработок - микропроцессор Alpha 21164РС - призвана обеспечить проникновение микропроцессоров DEС в настольные системы, создавая тем самым конкуренцию процессорам компании Intel. Совместимость с системой команд х86 DEC обеспечивается с помощью программного транслятора двоичного кода DIGITAL FX!32. Отличиями Alpha 21164РС являются внешний кэш 2-го уровня, увеличенный до 16 Кбайт кэш команд, наличие блока MVI (Motion Video Instructions), который обеспечивает кодирование/декодирование в реальном времени данных в соответствии со стандартом MPEG-2.
Микропроцессор Alpha 21164РС выпускается для частот 400, 466, 533МГц и имеет производительность SPECint 95/SPECfp 95 - 10/13, 11/15 и 12/17 соответственно [39].