Alasir Enterprises
Main Page >  Articles >  Alpha: история в фактах и комментариях  

 
Main Page
 
 
Reviews
 
Articles
 
Software
 
Reference
 
Motley
 
 
About Us
 
 
Alpha: история в фактах и комментариях
Alpha Powered Dig my grave both long and narrow
Make my coffin neat and strong 

(из старой американской песни)

Павел Болотов
 
Дата публикации: 14 апреля 2005
Дата последнего изменения: 21 апреля 2007

Содержание:
in English

 
Alpha 21164 (EV5, EV56) и 21164PC (PCA56, PCA57)

Первая информация о архитектуре своего Alpha-процессора 2-го поколения была опубликована DEC на конференции Hot Chips, которая состоялась 14 августа 1994 в Пало-Альто (Калифорния, США), хотя официальным анонсом 21164 (EV5) следует считать пресс-релиз DEC от 7 сентября 1994. Процессор основывался на ядре EV45 и содержал изменения скорее эволюционного характера, чем революционного. По сравнению с EV4 или EV45, ядро включало удвоенное количество конвейеров для целочисленной и вещественной математики, причём количество стадий вещественных конвейеров сократилось с 10 до 9. В то же время целочисленные конвейеры были неодинаковы: хотя оба могли выполнять элементарные арифметические и логические операции, но только в компетенцию 1-го входило выполнение команд умножения и смещения, и только по 2-му могли быть направлены команды условных/безусловных переходов. Оба целочисленных конвейера также могли вычислять виртуальные адреса для команд загрузки, однако только 1-й — для команд сохранения. Вещественные конвейеры были также неоднородны: 1-й мог выполнять любой код с плавающей запятой, кроме инструкций умножения, которые были теми единственными командами, что мог выполнять 2-й конвейер. Чтобы обеспечить эффективную загрузку функциональных устройств, I-box мог производить выборку и декодирование до 4 команд за такт. EV5 производился по тому же собственному 4-слойному 0,5µ CMOS5 техпроцессу, что и EV45, поэтому также был рассчитан на напряжение питания в те же 3,3В. Состоял из 9,3 млн. транзисторов (из них 7,8 млн. в виде интегрированных кэшей), обладал площадью ядра в 299мм², что было близко к теоретическому пределу для данного техпроцесса. Выпускался с тактовыми частотами от 266МГц до 333МГц (TDP от 46Вт до 56Вт). Форм-фактор: IPGA-499 (Interstitial Pin Grid Array).
 
Размеры I-cache и D-cache остались как у EV4, то есть по 8Кб каждый со сквозной записью. Всё же D-cache теперь стал двухпортовым по чтению, то есть за 1 такт он мог поставить данные для 2 команд загрузки. Жертвуя транзисторами во имя быстродействия, D-cache физически был составлен из 2 одинаковых по содержанию частей размером в 8Кб каждая. Таким образом, чтение шло из любой части, а запись — одновременно в обе. Так как процессор обладал 96Кб интегрированной кэш-памяти L2 (S-cache, secondary cache) с обратной записью и 3-канальной ассоциативностью, то в структуру C-box была добавлена его поддержка. Доступ к S-cache осуществлялся через независимую 128-битную шину данных. B-cache всё ещё оставался опциональным, но обычно присутствовал и набирался на микросхемах синхронной статической памяти общим размером до 64Мб, хотя обычно составлял от 1Мб до 4Мб. 128-битная шина данных к B-cache по-прежнему мультиплексировалась с системной шиной данных. Таким образом, EV5 поддерживал 3 уровня кэш-памяти и был первым процессором с подобной иерархией.
 
Доступ к S-cache был организован по принципу 4-стадийного конвейера: 2 такта на просмотр тэга и активацию банка плюс 2 такта на доступ к данным и доставку (16 байт за такт), хотя дополнительный такт требовался на транспортировку данных от C-box к D-cache и E-box или F-box. Инженеры, проектировавшие EV5, рассматривали возможность организации работы S-cache с параллельным просмотром тэга и доступом к данным, так что все 3 банка доставляли бы данные, нужные из которых затем отбирались бы. Это позволило бы сократить количество стадий до 3, но привело бы к значительному увеличению энергопотребления процессора (+40% ориентировочно). Однако, D-cache работал именно таким образом, хотя там был только 1 банк на 8Кб, а не 3 банка по 32Кб каждый. Более того, задержки на чтение из D-cache были уменьшены с 3 до 2 тактов. Каждая строка S-cache была размером в 64 байта с одним тэгом на строку, хотя имелась возможность адресации строк с разделением каждой на две подстроки размером по 32 байта, поскольку I-cache и D-cache работали с 32-байтными строками. S-cache был включающим по отношению к D-cache, а B-cache — по отношению к S-cache, несмотря на политику обратной записи последнего и разницу в ассоциативностях. Размер I-TLB был увеличен до 48 записей (для страниц размером от 8Кб до 4Мб), а D-TLB — до 64 записей (для 8Кб страниц), причём он стал двухпортовым при чтении (по аналогии с D-cache). Системная шина данных имела фиксированную ширину в 128 бит с дополнительными 16 битами для ECC и всё так же мультиплексировалась с шиной данных к B-cache, но поскольку уже использовался протокол с поддержкой разделяемых трасакций (split-transaction protocol), то её эффективность возросла. Системная шина адреса была 40-битной, управления — 10-битной.
 
Micrograph of Alpha 21164 (EV5) Floor-plan of Alpha 21164 (EV5)

В октябре 1995 на Microprocessor Forum был представлен 21164А (EV56), незначительно модифицированная версия EV5, производимая по собственному 4-слойному 0,35µ CMOS6 техпроцессу на всё той же фабрике в Хадсоне (Массачусетс, США). Между прочим, для запуска этого техпроцесса DEC пришлось инвестировать в модернизацию фабрики около 450 млн. USD. Наиболее существенным архитектурным отличием можно считать BWX (Byte-Word Extension) — набор из 6 дополнительных команд для загрузки/сохранения данных размером в 8 или 16 бит (LDBU, LDWU, STB, STW, SEXTB, SEXTW). Изначально архитектура Alpha поддерживала загрузку/сохранение данных квантами исключительно по 32 или 64 бита, что создавало определённые сложности при портировании или эмуляции кода других процессорных архитектур, например, i386 или MIPS. Предложение о внедрении BWX в базовый набор команд Alpha появилось в июне 1994 с подачи Ричарда Сайтса и было утверждено в июне 1995. Правда, для успешной работы BWX требовалась поддержка как со стороны процессора, так и со стороны системной логики. Тактовые частоты 21164А составили от 366МГц до 666МГц (TDP от 31Вт до 55Вт), а производился он начиная с лета 1996. Согласно лицензионному соглашению с DEC от июня 1996, Samsung также выпускал EV56, причём 666МГц версию производил только он. Процессор состоял из 9,66 млн. транзисторов, обладал площадью ядра в 209мм² и требовал двойное напряжение питания (2,5В на основную логику и 3,3В на входные/выходные цепи).
 
Micrograph of Alpha 21164A (EV56)
DEC Alpha 21164A (EV56) - front view DEC Alpha 21164A (EV56) - back view
(кликнуть для увеличения, 53Кб) (кликнуть для увеличения, 144Кб)

17 марта 1997 был представлен 21164PC (PCA56), недорогой вариант EV56, спроектированный совместно DEC и Mitsubishi. В нём отсутствовал S-cache и соответствующая обслуживающая логика, зато размер I-cache был увеличен с 8Кб до 16Кб. Производился посредством того же CMOS5 техпроцесса и требовал 2,5В/3,3В напряжения питания. Состоял из 3,5 млн. транзисторов, обладал площадью ядра в 141 мм². 21164PC (PCA56) выпускался с тактовыми частотами от 400МГц до 533МГц (TDP от 26Вт до 35Вт). Форм-фактор процессора был изменён в пользу IPGA-413. В будущем, на производственных мощностях Samsung, также выпускался 0,28µ вариант 21164PC (PCA57), характеризовавшийся удвоенными размерами I-cache и D-cache, причём первый использовал 2-канальную политику ассоциативности. Количество транзисторов в его ядре увеличилось до 5,7 млн., а его площадь уменьшилась до 101 мм². Он также требовал пониженное напряжение питания (2,0В на основную логику и 2,5В на входные/выходные цепи). Тактовые частоты 21164PC (PCA57) составили от 533МГц до 666МГц (TDP от 18Вт до 23Вт).
 
Кроме унаследованных от EV56 инструкций BWX, PCA56 и PCA57 поддерживали новый набор из 13 SIMD-команд (Single Instruction, Multiple Data) под названием MVI (Motion Video Instructions): упаковывающих (PACKWB, PACKLB), распаковывающих (UNPKBW, UNPKBL), выбирающих минимум (MINUB8, MINSB8, MINUW4, MINSW4) или максимум (MAXUB8, MAXSB8, MAXUW4, MAXSW4) и определяющей движение (PERR). Наиболее интересной являлась последняя, Pixel ERRor, которая обрабатывала 8 пикселов одновременно. В отличие от набора команд MMX для процессоров i386, который использовал вещественные регистры для хранения данных, MVI предпочитал целочисленные для этой же цели.
 
Первым стандартным набором системной логики, разработанным для EV5, был DEC Alcor (21171). Он поддерживал 33МГц системную шину, до 16Мб ECC B-cache, до 8Гб FPM или EDO DRAM ECC с использованием 256-битного канала данных, а также одну 64-битную 33МГц шину PCI. Поддержка шины ISA или EISA могла быть реализована посредством стандартного моста, такого как i82378IB (ISA) или i82378EB (EISA). Встроенного контроллера IDE также не было, но он мог устанавливаться отдельной микросхемой другого производителя. Физически DEC Alcor состоял из 5 микросхем: 1 универсального контроллера с поддержкой шины PCI (Control, I/O and Address — CIA) и 4 коммутаторов данных (Data Switch — DSW). Новая редакция этого набора системной логики с добавлением поддержки BWX получила название DEC Alcor 2 (21172). Вскоре был выпущен и одномикросхемный DEC Pyxis (21174), который поддерживал 66МГц системную шину и до 1,5Гб 66МГц SDRAM ECC или parity, правда, используя уже 128-битный канал данных. Поддержка 64-битной 33МГц шины PCI сохранилась. Для конфигураций на основе 21164PC (PCA57) был разработан набор системной логики VLSI Polaris.
 
<< Предыдущая страница Следующая страница >>

Copyright (c) Болотов Павел Владимирович, 2005-07. Все права сохранены.
Полная или частичная перепечатка без разрешения автора запрещена.
 
Designed and maintained by Alasir Enterprises, 1999-2007
rhett from alasir.com, walter from alasir.com