Alpha 21164 , также известный под кодовым названием EV5 , — это микропроцессор, разработанный и изготовленный компанией Digital Equipment Corporation , который реализовал архитектуру набора инструкций Alpha (ISA). Он был представлен в январе 1995 года, став преемником Alpha 21064A в качестве флагманского микропроцессора Digital. В 1998 году его сменил Alpha 21264 .
Первый кристалл Alpha 21164 был произведен в феврале 1994 года, и на нем успешно загружались операционные системы OpenVMS , Digital UNIX и Windows NT . Он был испытан в конце 1994 года и представлен в январе 1995 года на частоте 266 МГц. Версия на 300 МГц была представлена в марте 1995 года. Окончательный Alpha 21164, версия на 333 МГц, была анонсирована 2 октября 1995 года, доступная в количестве образцов. Alpha 21164 был заменен на Alpha 21164A в качестве флагманского микропроцессора Digital в 1996 году, когда версия на 400 МГц стала доступна в больших количествах.
Digital использовала Alpha 21164, работающую на различных тактовых частотах, в своих серверах AlphaServer , рабочих станциях AlphaStation . Digital также использовала Alpha 21164 в своих одноплатных компьютерах Alpha VME 5/352 и Alpha VME 5/480 и материнских платах AlphaPC 164 и AlphaPC 164LX . Партнер Alpha Cray Research использовал Alpha 21164 с частотой 300 МГц в своем суперкомпьютере T3E-600 . Третьи стороны, такие как DeskStation, также создавали рабочие станции с использованием Alpha 21164.
21164 продолжал лидировать по производительности с 275 МГц Alpha 21064A до появления Intel Pentium Pro в ноябре 1995 года, когда версия 200 МГц превзошла 300 МГц 21164 на наборе тестов SPECint95_base . 21164 сохранил свое лидерство по производительности с плавающей точкой. 333 МГц 21164, представленный в следующем году, превзошел Pentium Pro, но позже его превзошел MIPS Technologies R10000 , а затем Hewlett-Packard PA-8000 в том же году. [1]
Alpha 21164 — это четырехвыпускной суперскалярный микропроцессор, способный выдавать максимум четыре инструкции за такт четырем исполнительным устройствам: двум целочисленным и двум с плавающей точкой . Целочисленный конвейер состоит из семи этапов, а конвейер с плавающей точкой — из десяти этапов. 21164 реализовал 43-битный виртуальный адрес и 40-битный физический адрес . Таким образом, он мог адресовать 8 ТБ виртуальной памяти и 1 ТБ физической памяти .
Целочисленный блок состоял из двух целочисленных конвейеров и файла целочисленных регистров . Два конвейера, конвейер сложения и конвейер умножения, не идентичны, каждый отвечает за выполнение разных инструкций, хотя оба способны выполнять общие инструкции сложения, логики, загрузки, сравнения и условного перемещения. Конвейер умножения выполняет исключительно инструкции сдвига, сохранения и умножения (в неконвейерном умножителе). Конвейер сложения выполняет исключительно инструкции ветвления.
За исключением инструкций ветвления, условного перемещения и умножения, все остальные инструкции начинают и заканчивают выполнение на пятом этапе с задержкой в один цикл. Инструкции ветвления и условного перемещения выполняются на шестом этапе, поэтому их можно выдать с инструкцией сравнения, от результата которой они зависят.
Файл регистров целых чисел содержал сорок 64-битных регистров, из которых тридцать два определены архитектурой Alpha, а восемь предназначены для использования PALcode в качестве памяти scratchpad. Файл регистров имеет четыре порта чтения и два порта записи, равномерно распределенных между двумя конвейерами целых чисел. [2]
Плавающий блок состоял из двух конвейеров с плавающей точкой и файла регистра с плавающей точкой. Два конвейера не идентичны, один выполнял все инструкции с плавающей точкой, кроме умножения, а другой выполнял только инструкции умножения. Оба конвейера имеют четыре этапа. Неконвейерный делитель с плавающей точкой подключен к конвейеру сложения. Все инструкции с плавающей точкой, кроме деления, имеют задержку в четыре цикла. Деления имеют переменную задержку, которая зависит от того, выполняется ли операция над числами с плавающей точкой одинарной или двойной точности и числами. Включая накладные расходы, деления с одинарной точностью имеют задержку от 15 до 31 цикла, тогда как деления с двойной точностью имеют задержку от 22 до 60 циклов.
21164 имеет три уровня кэша , два на кристалле и один внешний и опциональный. Кэши и связанная с ними логика состояли из 7,2 миллионов транзисторов. [3]
Первичный кэш разделен на отдельные кэши для инструкций и данных, называемые I-кэшем и D-кэшем соответственно. Они имеют размер 8 КБ, прямое отображение и размер строки кэша 32 байта. D-кэш является двухпортовым для повышения производительности и реализован путем дублирования кэша дважды. Он использует политику записи через запись и политику выделения при чтении.
Вторичный кэш, известный как S-кэш, находится на кристалле и имеет емкость 96 КБ. Вторичный кэш на кристалле был необходим, поскольку 21164 требовал большей пропускной способности, чем мог предоставить внешний вторичный кэш, чтобы обеспечить его достаточным количеством инструкций и данных. [4] Кэш требовал двух циклов для доступа из-за его большой площади. Для повышения производительности кэш является конвейерным. Еще одним преимуществом вторичного кэша на кристалле было то, что его можно было легко реализовать как многоканальный кэш, и в результате кэш является трехканальным наборно-ассоциативным , предлагая улучшенные показатели попаданий, чем кэши с прямым отображением. [5] S-кэш из-за большой требуемой физической площади был реализован в двух половинах, которые примыкают к I-box, E-box, F-box и M-box. Это было сделано для того, чтобы кэш мог возвращать данные за два цикла.
Третичный кэш, известный как B-кэш, реализован с помощью внешних SRAM. B-кэш был необязательным, и некоторые системы, использующие Alpha 21164, не имели его. B-кэш мог иметь емкость от 1 до 64 МБ, меньшие емкости не поддерживались, поскольку они были бесполезны из-за S-кэша на кристалле. [6] Он имеет прямое отображение, использует политику обратной записи и политику выделения при записи. B-кэш управляется внешней интерфейсной логикой на кристалле, в отличие от 21064, которому требовался внешний контроллер кэша. B-кэш мог быть построен с помощью асинхронных или синхронных SRAM. Доступ к B-кэшу осуществляется через системную шину.
Внешний интерфейс представляет собой 128-битную системную шину. Системная шина работает на тактовой частоте, которая в 3–15 раз ниже внутренней тактовой частоты, или на 20–100 МГц при внутренней тактовой частоте 300 МГц. Тактовый сигнал системной шины генерируется микропроцессором.
Внутренняя тактовая частота генерируется путем деления внешнего тактового сигнала на два. Таким образом, Alpha 21164 требует внешнего тактового сигнала 600 МГц для Alpha 21164 с частотой 300 МГц.
Alpha 21164 содержит 9,3 миллиона транзисторов на кристалле размером 16,5 на 18,1 мм (299 мм 2 ), что близко к максимальным пределам процесса. Кристалл был изготовлен по пятому поколению комплементарного металл-оксид-полупроводник (КМОП) процесса Digital, CMOS-5, 0,50 мкм процесса с четырьмя уровнями алюминиевых межсоединений . [7] 21164 использовал 3,3- вольтовый (В) источник питания. Он рассеивал 46 Вт на 266 МГц, 51 Вт на 300 МГц, 56 Вт на 333 МГц.
Alpha 21164 упакован в 499-контактный керамический междоузлийный штыревой массив (IPGA) размером 57,40 на 57,40 мм. Корпус имел теплоотвод с двумя шпильками, к которым крепился радиатор .
Alpha 21164 был основой для дальнейшей разработки под кодовым названием EV56 . Он был представлен как Alpha 21164, но изначально был известен как Alpha 21164A . Он работал на тактовых частотах 366, 433, 500, 533, 566, 600 и 666 МГц. [8] [9] [10]
Впервые он был описан в октябре 1995 года на Microprocessor Forum. 13 ноября 1995 года Digital объявила, что образцы будут отправлены позже в этом месяце. Первая версия, работающая на частоте 366 МГц, была представлена в 1996 году. 8 июля 1996 года Digital объявила, что доступна версия на 433 МГц, а версия на 500 МГц находится в стадии производства с объемными партиями, которые должны были поступить в сентябре 1996 года. Версия на 433 МГц стоила 1492 доллара за единицу в количестве 1000 штук. Версия на 600 МГц была представлена 31 марта 1997 года и поставлялась в объемных партиях. Samsung Electronics подписала соглашение с Digital в июне 1996 года о втором источнике Alpha 21164A, и эта компания была единственной, кто изготовил модель на 666 МГц. Образцы с частотой от 366 до 500 МГц были представлены 11 ноября 1996 года, а массовая доступность началась в 1997 году. Alpha 21164A производилась на заводах Digital в Хадсоне (штат Массачусетс) и Samsung в Кихуэнге (Южная Корея) .
Пользователями Alpha 21164A были Cray Research, Digital, Network Appliance (теперь NetApp) и DeskStation. Cray Research использовала Alpha 21164A с частотой 450, 600 и 675 МГц в более поздних моделях своего суперкомпьютера T3E . Digital использовала Alpha 21164A, работающую на различных тактовых частотах, в своих AlphaServers , AlphaStations , рабочих станциях Celebris XL и Digital Personal Workstations . NetApp использовала Alpha 21164A с частотой 400, 500 и 600 МГц в своих системах хранения данных . DeskStation использовала Alpha 21164A в своих рабочих станциях Raptor Reflex.
Самым заметным изменением стало включение Byte Word Extensions (BWX), расширения архитектуры Alpha, разработанного для улучшения доступа к байтам и словам. Эти инструкции выполняются конвейером умножения. Alpha 21164A содержал 9,66 миллионов транзисторов на кристалле размером 14,4 мм на 14,5 мм, что составляет площадь кристалла 209 мм2 . [ 11] Digital изготовила кристалл в своем шестом поколении КМОП-процесса, CMOS-6, 0,35 мкм-процессе с четырьмя слоями межсоединений. Компания Samsung изготовила кристалл по своей 0,35-мкм технологии с четырьмя слоями межсоединений на основе 0,3-мкм технологии, разработанной в начале 1996 года. Alpha 21164A использовала источник питания 3,3 В, рассеивая 31,0 Вт при 366 МГц, 36,0 Вт при 433 МГц, 41,0 Вт при 500 МГц, 43,5 Вт при 533 МГц и 48,5 Вт при 600 МГц.
Alpha 21164PC , также известный как PCA56 , является недорогой версией Alpha 21164A, представленной 17 марта 1997 года. Микропроцессор был совместно разработан Digital и Mitsubishi Electric Corporation , и обе компании изготовили конструкцию. Mitsubishi позже приостановила соглашение о совместной разработке будущих микропроцессоров Alpha с Digital в начале 1998 года и прекратила производство Alpha 21164PC в середине 1998 года, уйдя с рынка Alpha из-за экономических условий на рынках компании. [12] [13]
Alpha 21164PC работал на тактовых частотах 400, 466 и 533 МГц. Основные изменения — отсутствие S-кэша, больший I-кэш и включение Motion Video Instructions (MVI), расширения архитектуры Alpha, которое ввело инструкции SIMD ( одна инструкция, несколько данных ) для повышения производительности кодирования MPEG . S-кэш был удален, чтобы уменьшить количество транзисторов, что уменьшило размер кристалла и, в свою очередь, стоимость. Емкость I-кэша была удвоена с 8 КБ до 16 КБ, чтобы компенсировать отсутствие S-кэша, поскольку Alpha 21164 полагалась на S-кэш для дополнения I-кэша, чтобы обеспечить достаточную пропускную способность для достижения адекватной производительности. Объем B-кэша был ограничен 512 КБ до 4 МБ, также поддерживались емкости 1 и 2 МБ. Микропроцессор использует 43-битный виртуальный адрес и 33-битный физический адрес.
Alpha 21164PC содержал 3,5 миллиона транзисторов на кристалле размером 8,65 на 16,28 мм, что составляет площадь кристалла 141 мм2 . Digital изготовила кристалл по той же технологии, что и Alpha 21164, CMOS- 5 . Alpha 21164PC был упакован в 413-контактный IPGA размером 49,78 на 49,78 мм. Он использовал источник питания 3,3 В, рассеивая 26,5 Вт при 400 МГц, 30,5 Вт при 466 МГц и 35,0 Вт при 533 МГц.
Alpha 21164PC использовался компанией Digital в материнской плате AlphaPC 164SX.
PCA57 , производная от PCA56, была разработана и изготовлена Samsung Electronics в 0,28 мкм CMOS-процессе. PCA57 был представлен в конце 1998 года и работал на тактовых частотах 533, 600 и 666 МГц. Улучшения микроархитектуры PCA56 включали удвоение емкости I-кэша и D-кэша: 32 КБ и 16 КБ соответственно. PCA57 содержал 5,7 миллиона транзисторов на кристалле размером 6,7 мм на 15 мм, для площади кристалла 101 мм2 . Он работал от источника питания 2,5 В и рассеивал 18 Вт на частоте 533 МГц, 20 Вт на частоте 600 МГц и 23 Вт на частоте 666 МГц.
PCA57 использовался компанией Digital в ее материнской плате AlphaPC 164RX.
Digital и VLSI Technology разработали чипсеты для 21164 и его производных. Digital также разработали специализированные интегральные схемы (ASIC) для использования в моделях высокого класса семейства AlphaServer, таких как AlphaServer 8200 и 8400.
21171, также известный как Alcor, был первым чипсетом для 21164, представленным в январе 1995 года вместе с поддерживаемым им микропроцессором. Он был разработан и изготовлен компанией Digital. 21171 представляет собой модернизированный DECchip 21071, модифицированный для поддержки нового протокола системной шины, используемого 21164. Он состоял из управляющей микросхемы, которая содержала контроллеры памяти и PCI, и четырех микросхем среза данных, которые соединяли 256-битную шину памяти и шину PCI с системной шиной. 21171 обеспечивает 64-битную шину PCI, работающую на частоте 33 МГц.
Модель 21172, также известная как Alcor2, представляла собой обновленную версию модели 21171, которая поддерживала модель 21164A.
Чипсет Pyxis, также известный как 21174, поддерживал микропроцессоры 21164A и 21164PC. В отличие от предыдущих чипсетов, он был разработан для недорогих систем. В результате это был одночиповый дизайн, упакованный в 474-контактный керамический шариковый массив (CBGA) вместо нескольких корпусов. [14] Впоследствии он использовался в чувствительных к стоимости приложениях, таких как рабочие станции начального уровня ( цифровые персональные рабочие станции a-Series ) и материнские платы, такие как AlphaPC 164LX и 164SX. Когда он был представлен, 21174 стоил 142 доллара США в партиях по 1000 штук. [15]
21174 содержит контроллер памяти и контроллер PCI. Контроллер памяти поддерживал до 512 МБ синхронной динамической памяти с произвольным доступом (SDRAM) и обращался к ней через 128-битную шину памяти . Память могла быть защищена как ECC, так и четностью. Контроллер PCI обеспечивал шину PCI или PCI-X .
Polaris — системный контроллер, разработанный VLSI Technology для персональных компьютеров, который поддерживает микропроцессоры 21164A и 21164PC. Polaris был анонсирован 16 июня 1997 года. [16] Он поддерживает до 768 МБ EDO DRAM или до 512 МБ SDRAM. Доступ к памяти осуществляется через 128-битную шину. Он предоставляет 32-битную шину PCI с частотой 33 МГц для ввода-вывода.
Среди пользователей Polaris была компания Digital с ее материнской платой AlphaPC 164RX.