Alpha 21464 — это незавершённый микропроцессор , реализующий архитектуру набора инструкций Alpha (ISA), разработанную Digital Equipment Corporation , а затем Compaq после приобретения Digital. Микропроцессор также был известен как EV8 (кодовое название Araña ). Планировавшийся к выпуску в 2004 году, он был отменён 25 июня 2001 года, когда Compaq объявила, что Alpha будет постепенно выведена из эксплуатации в пользу Itanium к 2004 году. Когда он был отменён, Alpha 21464 находился на поздней стадии разработки, но не был завершён . [1] [2]
Истоки 21464 начались в середине 1990-х годов, когда ученый-компьютерщик Джоэл Эмер был вдохновлен исследованиями Дина Туллсена по одновременной многопоточности (SMT) в Университете Вашингтона . Эмер исследовал технологию в конце 1990-х годов и начал продвигать ее, как только убедился в ее ценности. Compaq сделала заявление о том, что следующий микропроцессор Alpha будет использовать SMT в октябре 1999 года на Microprocessor Forum 1999. [3] В то время ожидалось, что системы, использующие Alpha 21464, будут поставляться в 2003 году. [3]
Микропроцессор представлял собой восьмивыпускную суперскалярную конструкцию с внеочередным выполнением , четырехходовым SMT и глубоким конвейером . Он извлекает 16 инструкций из двухстороннего ассоциативного кэша инструкций объемом 64 КБ. Затем предсказатель ветвлений выбирал «хорошие» инструкции и вводил их в схлопывающийся буфер. (Это позволяло получить полосу пропускания выборки до 16 инструкций за цикл в зависимости от плотности принятых ветвлений.) Интерфейс имел значительно больше стадий, чем предыдущая реализация Alpha, и в результате 21464 имел значительный минимальный штраф за неправильное предсказание ветвлений в 14 циклов. [1] Микропроцессор использовал усовершенствованный алгоритм предсказания ветвлений , чтобы минимизировать эти дорогостоящие штрафы.
Реализация SMT потребовала репликации определенных ресурсов, таких как счетчик программ . Вместо одного счетчика программ было четыре счетчика программ, по одному на каждый поток. Однако для поддержки SMT требовалось расширить очень мало логики после интерфейса. Регистровый файл содержал 512 записей, но его размер определялся максимальным числом выполняемых инструкций, а не SMT. Доступ к регистровому файлу требовал трех этапов конвейера из-за физического размера схемы. До восьми инструкций из четырех потоков можно было направить на восемь целочисленных и четыре плавающих исполнительных устройства за каждый цикл. 21464 имел кэш данных объемом 64 КБ (Dcache), организованный в виде восьми банков для поддержки двойного портирования. Это поддерживалось встроенным в кристалл 3 МБ шестиканальным ассоциативным унифицированным вторичным кэшем (Scache).
Целочисленный блок выполнения использовал новую структуру: кэш регистров. Кэш регистров не предназначался для смягчения трехтактовой задержки файла регистров (как утверждалось в некоторых отчетах), а для уменьшения сложности управления обходом операндов. Кэш регистров хранил все результаты, полученные ALU и конвейерами загрузки для предыдущих N циклов. (N было около 8.) Структура кэша регистров была архитектурным переименованием того, что предыдущие процессоры реализовали как распределенный мультиплексор.
Интерфейс системы был похож на интерфейс Alpha 21364. Имелись интегрированные контроллеры памяти , которые обеспечивали десять каналов RDRAM . Многопроцессорность облегчалась маршрутизатором , который обеспечивал связи с другими 21464, и архитектурно поддерживал 512-канальную многопроцессорность без связующей логики .
Он должен был быть реализован в 0,125 мкм (иногда называемом 0,13 мкм) комплементарном металл-оксид-полупроводник (CMOS) процессе с семью слоями медных соединений , частично обедненным кремнием-на-изоляторе (PD-SOI) и диэлектриком с низким K. Количество транзисторов оценивалось в 250 миллионов, а размер кристалла оценивался в 420 мм 2 . [2] [4]
Tarantula — кодовое название расширения рассматриваемой архитектуры Alpha и производной от Alpha 21464, которая реализовала вышеупомянутое расширение. Оно было отменено еще в процессе разработки, до начала работ по внедрению и до завершения 21464. Расширение должно было предоставить Alpha возможность векторной обработки. Оно определяло тридцать два векторных регистра размером 64 на 128 бит (8192 бит или 1 КБ), приблизительно 50 векторных инструкций и неопределенное количество инструкций для перемещения данных в векторные регистры и из них. Другие кандидаты на продолжение EV8 включали многоядерную конструкцию с двумя ядрами EV8 и рабочей частотой 4,0 ГГц. [ необходима цитата ]