Alpha 21264 — это RISC- микропроцессор , разработанный компанией Digital Equipment Corporation и выпущенный 19 октября 1998 года. В 21264 реализована архитектура набора инструкций Alpha (ISA).
Alpha 21264 — это четырехэтапный суперскалярный микропроцессор с внеочередным выполнением и спекулятивным выполнением . Он имеет пиковую скорость выполнения шести инструкций за цикл и может поддерживать четыре инструкции за цикл. Он имеет семиступенчатый конвейер инструкций .
На любом этапе микропроцессор мог иметь до 80 инструкций на разных стадиях выполнения, превосходя любой другой современный микропроцессор.
Декодированные инструкции хранятся в очередях инструкций и выдаются, когда их операнды доступны. Целочисленная очередь содержала 20 записей, а очередь с плавающей точкой — 15. Каждая очередь могла выдавать столько инструкций, сколько было конвейеров.
Ebox выполняет целочисленные, загрузочные и хранимые инструкции. Он имеет два целочисленных блока, два загрузочных и два целочисленных регистровых файла . Каждый целочисленный регистровый файл содержал 80 записей, из которых 32 были архитектурными регистрами, 40 — регистрами переименования и 8 — теневыми регистрами PAL. Для регистра R31 не было записи, поскольку в архитектуре Alpha R31 жестко подключен к нулю и доступен только для чтения.
Каждый файл регистра обслуживал целочисленный блок и блок загрузки и хранения, а файл регистра и его два блока называются «кластером». Два кластера были обозначены как U0 и U1. Эта схема использовалась, поскольку она уменьшала количество портов записи и чтения, необходимых для обслуживания операндов и получения результатов, тем самым уменьшая физический размер файла регистра, позволяя микропроцессору работать на более высоких тактовых частотах. Таким образом, записи в любой из файлов регистра должны быть синхронизированы, что требовало тактового цикла для завершения, что отрицательно влияло на производительность на один процент. Снижение производительности в результате синхронизации компенсировалось двумя способами. Во-первых, более высокая достижимая тактовая частота компенсировала потерю. Во-вторых, логика, отвечающая за проблему инструкций, избегала создания ситуаций, когда файл регистра должен был быть синхронизирован путем выдачи инструкций, которые не зависели от данных, хранящихся в другом файле регистра, где это было возможно.
Кластеры практически идентичны, за исключением двух отличий: U1 имеет семитактный конвейерный умножитель, а U0 имеет трехтактный конвейер для выполнения инструкций Motion Video (MVI), расширения архитектуры Alpha, определяющей инструкции SIMD для мультимедиа.
Блоки загрузки и хранения представляют собой простые арифметико-логические блоки, используемые для вычисления виртуальных адресов для доступа к памяти. Они также способны выполнять простые арифметические и логические инструкции. Логика выдачи инструкций Alpha 21264 использовала эту возможность, выдавая инструкции этим блокам, когда они были доступны для использования (не выполняя адресную арифметику).
Таким образом, Ebox имеет четыре 64-битных сумматора , четыре логических блока, два устройства сдвига , логику манипуляции байтами, два набора логики условного перехода, поровну разделенных между U1 и U0.
Fbox отвечает за выполнение инструкций с плавающей точкой . Он состоит из двух конвейеров с плавающей точкой и файла регистров с плавающей точкой. Конвейеры не идентичны, один выполняет большинство инструкций, а другой только умножает инструкции. Конвейер сумматора имеет два неконвейерных блока, подключенных к нему, блок деления и блок квадратного корня. Сложения, умножения и большинство других инструкций имеют задержку в 4 цикла, деление с двойной точностью имеет задержку в 16 циклов, а квадратный корень с двойной точностью имеет задержку в 33 цикла. Файл регистров с плавающей точкой содержит 72 записи, из которых 32 являются архитектурными регистрами, а 40 — регистрами переименования.
Alpha 21264 имеет два уровня кэша , первичный кэш и вторичный кэш. Кэш третьего уровня (L3 или «жертва») Alpha 21164 не использовался из-за проблем с пропускной способностью.
Первичный кэш разделен на отдельные кэши для инструкций и данных (« модифицированная архитектура Гарварда »), I-кэш и D-кэш соответственно. Оба кэша имеют емкость 64 КБ. D-кэш является двухпортовым, передавая данные как по восходящему, так и по нисходящему фронтам тактового сигнала. Этот метод двухпортового использования позволяет выполнять любую комбинацию чтения или записи в кэш в каждом цикле процессора. Он также позволяет избежать дублирования кэша, поэтому их два, как в Alpha 21164. Дублирование кэша ограничивает емкость кэша, поскольку для обеспечения того же объема требуется больше транзисторов, и, в свою очередь, увеличивает требуемую площадь и потребляемую мощность.
Вторичный кэш, называемый B-кэшем, представляет собой внешний кэш емкостью от 1 до 16 МБ. Он управляется микропроцессором и реализован с помощью микросхем синхронной статической памяти с произвольным доступом (SSRAM), которые работают на двух третях, половине, одной трети или одной четвертой внутренней тактовой частоты или от 133 до 333 МГц при 500 МГц. Доступ к B-кэшу осуществлялся с помощью выделенной 128-битной шины, которая работает на той же тактовой частоте, что и SSRAM, или на удвоенной тактовой частоте, если используется SSRAM с двойной скоростью передачи данных . B-кэш имеет прямое отображение. [1]
Предсказание ветвлений выполняется алгоритмом предсказания ветвлений турнира. Алгоритм был разработан Скоттом Макфарлингом в Western Research Laboratory (WRL) компании Digital и описан в статье 1993 года. Этот предиктор использовался, поскольку Alpha 21264 имеет минимальный штраф за неверное предсказание ветвлений в семь циклов. Из-за двухцикловой задержки кэша инструкций и очередей инструкций средний штраф за неверное предсказание ветвлений составляет 11 циклов. Алгоритм поддерживает две таблицы истории, локальную и глобальную, а таблица, используемая для предсказания результата ветвления, определяется предсказателем выбора.
Локальный предиктор представляет собой двухуровневую таблицу, которая записывает историю отдельных ветвей. Она состоит из 1024 записей по 10 бит таблицы истории ветвей. Двухуровневая таблица использовалась, поскольку точность прогнозирования аналогична точности более крупной одноуровневой таблицы, при этом требуя меньше бит памяти. Она имеет 1024 записи таблицы прогнозирования ветвей. Каждая запись представляет собой 3-битный насыщающийся счетчик. Значение счетчика определяет, взята ли текущая ветвь или нет.
Глобальный предиктор представляет собой одноуровневую таблицу истории ветвлений с 4096 записями. Каждая запись представляет собой 2-битный насыщающийся счетчик; значение этого счетчика определяет, будет ли взята текущая ветвь или нет.
Предиктор выбора записывает историю локальных и глобальных предикторов, чтобы определить, какой предиктор является лучшим для конкретной ветви. Он имеет таблицу истории ветвей с 4096 записями. Каждая запись представляет собой 2-битный насыщающийся счетчик. Значение счетчика определяет, используется ли локальный или глобальный предиктор.
Внешний интерфейс состоял из двунаправленной 64-битной шины данных с двойной скоростью передачи данных (DDR) и двух 15-битных однонаправленных шин адреса и управления с временным мультиплексированием , одна для сигналов, исходящих от Alpha 21264, а другая для сигналов, исходящих от системы. Digital лицензировала шину для Advanced Micro Devices (AMD), и впоследствии она использовалась в их микропроцессорах Athlon , где она была известна как шина EV6.
Процессор Alpha 21264 поддерживает 48-битный или 43-битный виртуальный адрес (виртуальное адресное пространство 256 ТиБ или 8 ТиБ соответственно), выбираемый под управлением IPR (используя регистр управления VA_CTL). Alpha 21264 поддерживает 44-битный физический адрес (до 16 ТиБ физической памяти). Это увеличение по сравнению с предыдущими процессорами Alpha (43-битный виртуальный и 40-битный физический для Alpha 21164 и 43-битный виртуальный и 34-битный физический для Alpha 21064 ). [2]
Alpha 21264 содержал 15,2 миллиона транзисторов. Логика состояла примерно из шести миллионов транзисторов, а остальное содержалось в кэшах и таблицах истории ветвлений. Размер кристалла составлял 16,7 мм на 18,8 мм (313,96 мм²). [3] Он был изготовлен по 0,35 мкм комплементарному металл-оксид-полупроводник (КМОП) процессу с шестью уровнями межсоединений.
Alpha 21264 был упакован в керамический корпус с 587 выводами (IPGA).
Alpha Processor, Inc. позже продала Alpha 21264 в корпусе Slot B, содержащем микропроцессор, установленный на печатной плате с B-кэшем и регуляторами напряжения. Конструкция была предназначена для использования успеха микропроцессоров на основе слотов от Intel и AMD. Слот B изначально был разработан для использования в Athlon от AMD, чтобы API мог получать материалы для слота B по ценам на товары широкого потребления с целью снижения стоимости Alpha 21264 для получения более широкой доли рынка. Это так и не было реализовано, поскольку AMD решила использовать слот A для своих Athlon на основе слотов.
Alpha 21264A , кодовое название EV67, был уменьшенной версией Alpha 21264, представленной в конце 1999 года. Существовало шесть версий: 600, 667, 700, 733, 750, 833 МГц. EV67 был первым микропроцессором Alpha, в котором была реализована функция расширения подсчета (CIX), которая расширила набор инструкций инструкциями для выполнения подсчета популяции . Он был изготовлен Samsung Electronics по 0,25 мкм CMOS-технологии с транзисторами 0,25 мкм, но металлическими слоями 0,35 мкм. Площадь кристалла составляла 210 мм². EV68 использовал источник питания 2,0 В. Он рассеивал максимум 73 Вт на частоте 600 МГц, 80 Вт на частоте 667 МГц, 85 Вт на частоте 700 МГц, 88 Вт на частоте 733 МГц и 90 Вт на частоте 750 МГц.
Alpha 21264B — это дальнейшее развитие для увеличения тактовых частот. Было две модели, одна из которых была произведена IBM под кодовым названием EV68C , а другая — Samsung под кодовым названием EV68A .
EV68A был изготовлен по 0,18 мкм КМОП-технологии с алюминиевыми межсоединениями . Он имел размер кристалла 125 мм², на треть меньше, чем Alpha 21264A, и использовал источник питания 1,7 В. Он был доступен в больших объемах в 2001 году с тактовыми частотами 750, 833, 875 и 940 МГц. EV68A рассеивал максимум 60 Вт на 750 МГц, 67 Вт на 833 МГц, 70 Вт на 875 МГц и 75 Вт на 940 МГц. [4]
EV68C был изготовлен по 0,18 мкм КМОП-технологии с медными межсоединениями. Он был испытан в начале 2000 года и достиг максимальной тактовой частоты 1,25 ГГц.
В сентябре 1998 года Samsung объявила, что они будут производить вариант Alpha 21264B в 0,18 мкм полностью обедненном процессе кремний-на-изоляторе (SOI) с медными межсоединениями , который был способен достичь тактовой частоты 1,5 ГГц. Эта версия так и не была реализована.
Alpha 21264C , кодовое название EV68CB, был производным от Alpha 21264. Он был доступен на тактовых частотах 1,0, 1,25 и 1,33 ГГц. EV68CB содержал 15,5 миллионов транзисторов и имел площадь 120 мм². Он был изготовлен IBM по 0,18 мкм CMOS-технологии с семью уровнями медных межсоединений и диэлектриком с низким K. Он был упакован в 675-контактный керамический массив контактных площадок (CLGA) размером 49,53 на 49,53 мм. EV68CB использовал источник питания 1,7 В, рассеивая максимум 64 Вт на частоте 1,0 ГГц, 75 Вт на частоте 1,25 ГГц и 80 Вт на частоте 1,33 ГГц. [5]
Alpha 21264D , кодовое название EV68CD, — это более быстрая производная, произведенная IBM.
Alpha 21264E , кодовое название EV68E , был отмененным производным, разработанным Samsung, впервые анонсированным 10 октября 2000 года на Microprocessor Forum 2000, запланированным к выпуску примерно в середине 2001 года. Улучшения включали более высокую рабочую частоту 1,25 ГГц и добавление вторичного кэша на кристалле объемом 1,85 МБ. Он должен был быть изготовлен по 0,18-микрометровой технологии КМОП с медными межсоединениями.
Компании Digital и Advanced Micro Devices (AMD) разработали чипсеты для Alpha 21264.
Digital 21272 , также известный как Tsunami , и 21274, также известный как Typhoon , были первыми чипсетами для Alpha 21264. Чипсет 21272 поддерживал одно- или двухстороннюю многопроцессорную обработку и до 8 ГБ памяти, в то время как 21274 поддерживал одно-, двух-, трех- или четырехстороннюю многопроцессорную обработку, до 64 ГБ памяти, и оба поддерживали одну или две 64-битные 33 МГц шины PCI . Они имели 128-512-битную шину памяти, которая работала на частоте 83 МГц, обеспечивая максимальную пропускную способность 5312 МБ/с. Чипсет поддерживал 100 МГц Registered ECC SDRAM.
Чипсет состоял из трех устройств: C-chip, D-chip и P-chip. Количество устройств, которые составляли чипсет, варьировалось, поскольку это определялось конфигурацией чипсета. C-chip — это управляющий чип, содержащий контроллер памяти. Для каждого микропроцессора требовался один C-chip.
P-chip — это контроллер PCI, реализующий шину PCI 33 МГц. 21272 может иметь один или два P-chip.
D-чип — это контроллер DRAM, реализующий доступ к/из ЦП и к/из P-чипа. 21272 может иметь два или четыре D-чипа, а 21274 может иметь два, четыре или восемь D-чипов.
21272 и 21274 широко использовались компаниями Digital, Compaq и Hewlett Packard в их AlphaServers начального и среднего уровня и во всех моделях AlphaStation. Он также использовался в сторонних продуктах Alpha Processor, Inc. (позже известной как API NetWorks), таких как их материнская плата UP2000+.
AMD разработала два чипсета, совместимых с Alpha 21264: Irongate , также известный как AMD-751 , и его преемник Irongate-2 , также известный как AMD-761 . Эти чипсеты были разработаны для их микропроцессоров Athlon, но из-за того, что AMD лицензировала шину EV6, используемую в Alpha у Digital, Athlon и Alpha 21264 были совместимы с точки зрения протокола шины. Irongate использовался Samsung в их материнских платах UP1000 и UP1100. Irongate-2 использовался Samsung в их материнской плате UP1500.