AMD Am29000
AMD Am29000 , обычно сокращаемый до 29k , представляет собой семейство 32-битных RISC- микропроцессоров и микроконтроллеров, разработанных и изготовленных компанией Advanced Micro Devices (AMD). Основанный на оригинальном Berkeley RISC , 29k имеет ряд существенных улучшений. Какое-то время они были самыми популярными RISC-чипами на рынке. [ нужна ссылка ] широко используется в лазерных принтерах различных производителей.
Разработанный с 1984–1985 гг., анонсированный в марте 1987 г. и выпущенный в мае 1988 г., [ 1 ] [ 2 ] [ 3 ] За первоначальным Am29000 последовало несколько версий, закончившихся Am29040 в 1995 году. [ 4 ] 29050 отличался тем, что первым в нем появился блок с плавающей запятой, способный выполнять одну операцию умножения-сложения за цикл.
AMD разрабатывала суперскалярную версию до конца 1995 года, когда AMD прекратила разработку 29k, поскольку группа разработчиков была переведена для поддержки ПК ( x86 части бизнеса ). То, что осталось от бизнеса AMD по производству встраиваемых систем, было переориентировано на семейство встроенных процессоров 186, производных от 80186 . К тому времени большая часть ресурсов AMD была сконцентрирована на высокопроизводительных процессорах x86 для настольных ПК, используя многие идеи и отдельные части конструкции 29k для производства AMD K5 .
Дизайн
[ редактировать ]29k развился из той же конструкции RISC Беркли , которая также привела к Sun SPARC , Intel i960 , ARM и RISC-V .
Одним из элементов дизайна, используемым в некоторых проектах, основанных на RISC Беркли, является концепция окон регистров , метод, используемый для значительного ускорения вызовов процедур . Идея состоит в том, чтобы использовать большой набор регистров в качестве стека, загружая локальные данные в набор регистров во время вызова и помечая их как «мертвые» при завершении процедуры. Значения, возвращаемые из подпрограмм, будут помещены на «глобальную страницу», в восемь верхних регистров SPARC (например). Конкурирующая ранняя разработка RISC Стэнфордского университета , Stanford MIPS , также рассматривала эту концепцию, но решила, что улучшенные компиляторы могут более эффективно использовать регистры общего назначения, чем жестко зашитое окно.
В исходном дизайне Беркли, SPARC и i960 размер окон был фиксированным. Подпрограмма, использующая только одну локальную переменную, по-прежнему будет использовать восемь регистров SPARC, тратя впустую этот дорогостоящий ресурс. Именно здесь 29000 отличался от более ранних моделей, используя переменный размер окна. В этом примере будут использоваться только два регистра: один для локальной переменной, другой для адреса возврата . Также было добавлено больше регистров, в том числе те же 128 регистров для стека процедур, но добавлены еще 64 для глобального доступа. Для сравнения, в SPARC всего было 128 регистров, а глобальный набор представлял собой стандартное окно из восьми. Это изменение привело к гораздо лучшему использованию регистров в 29000 при самых разных рабочих нагрузках.
29000 также расширил стек окон регистров за счет стека в памяти (и теоретически в кеше). Когда окно заполнялось, вызовы переносились из конца стека регистров в память и восстанавливались по мере необходимости при возвращении подпрограммы. В целом использование регистров в 29000 было значительно более продвинутым, чем у конкурирующих конструкций, основанных на концепциях Беркли.
Еще одно отличие от конструкции Беркли заключается в том, что 29000 не включал в себя регистр кодов состояния специального назначения. Для этой цели можно использовать любой регистр, что позволяет легко сохранять условия за счет усложнения некоторого кода. Кэш целевой ветки (512 байт на 29000 и 1024 байт на 29050) хранил наборы из 4 или 2 последовательных инструкций, найденных по целевому адресу ветвления, что уменьшало задержку выборки инструкций во время выполненных ветвей - 29000 не включал никакой системы прогнозирования ветвей . поэтому была задержка, если ветка была взята. Это означает, что 29000 имеет один слот задержки ветвления . [ 5 ] Буфер смягчал это, сохраняя четыре или две инструкции из целевого адреса ветки, которые можно было выполнить мгновенно, пока буфер выборки повторно заполнялся новыми инструкциями из памяти. [ 6 ]
Поддержка трансляции виртуальных адресов использовала тот же подход, что и в архитектуре MIPS. (TLB) с 64 записями Резервный буфер трансляции сохранял сопоставления виртуальных адресов с физическими, и при обнаружении нетранслированного адреса результирующий «промах» TLB приводил к тому, что процессор перехватывал программную процедуру, ответственную за обеспечение любого соответствующего сопоставления с физическими адресами. память. В отличие от подхода MIPS, который использовал случайный регистр для выбора записи TLB, подлежащей замене в случае пропуска TLB, 29000 предоставил выделенный регистр lru (наименее недавно использовавшийся). [ 7 ] Некоторые продукты семейства 29000 имели только 16 записей TLB, чтобы можно было выделить часть микросхемы для периферийных устройств. Чтобы компенсировать это, максимальный размер страницы, используемый при сопоставлении, был увеличен с 8 КБ до 16 МБ. [ 8 ] : 305–306
Версии
[ редактировать ]Первый Am29000 был выпущен в 1988 году и включал встроенный MMU, но поддержка плавающей запятой была перенесена на Am29027 FPU . Устройства с неисправным MMU или Branch Target Cache продавались как Am29005 . [ 6 ]
В 1991 году линейка была расширена за счет Am29030 и Am29035 , которые включали кэш инструкций объемом 8 КБ или 4 КБ соответственно. [ 9 ] К тому времени [ 10 ] Также стал доступен Am29050 операциями без встроенного кэша, но с модулем вычислений с плавающей запятой с полностью конвейерными умножения-накопления , более крупным целевым кэшем ветвей размером 1 КБ с заявленной частотой попаданий 80% и улучшенной конвейеризацией операций загрузки. с помощью 4-записного TLB- подобного кэша физических адресов. Хотя это не суперскалярный процессор, он позволяет выполнять операции с плавающей запятой и целочисленные операции в одном и том же цикле. Каждая сторона целого числа и числа с плавающей запятой имеет собственный порт записи в регистры. [ 11 ] Он содержал 428 000 транзисторов. [ 12 ] на 1-микронной технологии [ 13 ] с эффективной длиной канала 0,8 микрона [ 11 ] и был доступен на частотах 20, 25, 33 и 40 МГц. Позже Am29040 был выпущен на частотах 33, 40 и 50 МГц и был похож на Am29030, за исключением кэша данных объемом 4 КБ, блока умножения и некоторых других усовершенствований. [ 14 ] 119 мм 2 Am29040 содержал 1,2 миллиона транзисторов, изготовленных по 0,7-микронной технологии. [ 15 ] [ 16 ]
x86 . Разрабатывалась суперскалярная версия 29K, но от нее отказались в пользу Он имел кодовое название Jaguar . [ 3 ] и был описан в ноябре 1994 г. и августе 1995 г. [ 17 ] [ 18 ] Это была усовершенствованная конструкция, способная осуществлять четырехстороннюю отправку на шесть станций резервирования и спекулятивное выполнение инструкций вне очереди с четырехсторонним выводом из строя. Регистровый файл допускал четыре чтения и две записи одновременно. Кэши для инструкций и данных составляли по 8 КБ каждый. Загрузка из кэша может обходить магазины . У него не было встроенного FPU по причинам стоимости и целевого рынка. Ожидалось, что он достигнет частоты 100 МГц при использовании 0,4-микронного процесса. [ 17 ] [ 19 ]
AMD использовала неизданную микроархитектуру 29K в качестве основы K5 -совместимых процессоров серии x86 . ALU были перенесены, как и буфер повторного порядка с небольшими изменениями. FPU был взят из 29050, но расширен до точности 80 бит . K5 преобразовал инструкции x86 в «RISC-OP» после декодирования, чему способствовала информация о предварительном декодировании, хранящаяся в кэшированных инструкциях. AMD заявила, что суперскаляр 29K будет иметь лишь немного меньшую производительность, чем K5, но гораздо меньшую стоимость из-за разницы в размерах. [ 20 ] [ 17 ]
Honeywell 29KII — это процессор на базе AMD 29050, который широко использовался в авионике реального времени.
-
Am29000
-
Am29030
-
Am29040
-
Am29050
Продукты и приложения
[ редактировать ]Позиционируется как продукт для «средне- и высокопроизводительных встроенных приложений» с потенциалом использования на рабочих станциях Unix. [ 7 ] 29000 использовался в различных продуктах, таких как X-терминалы, карты контроллера лазерных принтеров, карты графических ускорителей, решения для оптического распознавания символов и сетевые мосты. [ 21 ] Архитектура памяти 29000 особенно привлекла разработчиков продуктов, позволив им отказаться от внешней кэш-памяти и напрямую использовать динамическую оперативную память, сохраняя при этом приемлемую производительность. [ 21 ] : 1 обеспечивая определенную степень гибкости в выборе технологий памяти, используемых для хранения программных инструкций и данных. [ 22 ]
29k использовался в качестве вычислительного ускорителя или сопроцессора, особенно на платформах Macintosh и IBM PC-совместимых. Например, Yarc Systems Corporation произвела карты «сопроцессора RISC» на базе 29k для систем Macintosh II и PC AT , наряду с другими картами «сопроцессора CISC» с процессорами Motorola 68020 и 68030, а также картами «параллельного сопроцессора» с транспьютерными процессорами T800. [ 23 ] Это NuSuper (первоначально называвшийся McCray). [ 24 ] ) и карты AT-Super , использующие процессор Am29000 и ускоритель вычислений с плавающей запятой Am29027, [ 23 ] за ним последовал MacRageous , обновивший ЦП до Am29050. [ 25 ] Такие карты-ускорители обеспечивали производительность, в несколько раз превышающую производительность самого Macintosh II, и могли конкурировать с рабочими станциями RISC, такими как DECstation 3100. В систему также можно было установить несколько карт. Однако стоимость системы Macintosh II в сочетании с такой картой приближалась к стоимости существующих рабочих станций RISC под управлением Unix. [ 26 ] AT-Super стоил около 4600 долларов и, по сообщениям, работал под управлением Unix и конкурировал с аналогичными продуктами, использующими процессор Intel i860. [ 27 ]
Одним из примечательных продуктов, использующих 29k, была Apple Macintosh Display Card 8·24 GC для Macintosh IIfx , оснащенная процессором Am29000 с тактовой частотой 30 МГц, 64 КБ статической кэш-памяти и 2 МБ видеопамяти с возможностью установки дополнительных 2 МБ динамической памяти. ОЗУ для использования графическим набором инструментов QuickDraw. Включение 29k отличало эту конкретную версию карты от других версий, продаваемых Apple, значительно улучшая производительность при обработке изображений с разрешением 24 бита на пиксель. [ 28 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Мартин, Джеймс А. (23 марта 1987 г.). «Фирма утверждает, что 32-битный чип обрабатывает 17 MIPS» . Компьютерный мир . Том. 21, нет. 12. с. 14.
- ^ Коул, Бернард К. (28 апреля 1988 г.). «RISC Slugfest: маркетинг важнее производительности?» (PDF) . Электроника . п. 66 (стр. 68 в формате PDF).
- ^ Jump up to: а б «Устная история Уильяма Майкла «Майка» Джонсона» (PDF) . Музей компьютерной истории (интервью). Беседовал Кевин Крюэлл. 9 мая 2014.
Ну началось это в 85 году. И потребовалось, я бы сказал, около трех лет и, возможно, четырех оборотов, прежде чем он заработал.
- ^ Беткер, Майкл Р.; Фернандо, Джон С.; Уэлен, Шон П. (осень 1997 г.). «История микропроцессора» (PDF) . Технический журнал Bell Labs : 48.
- ^ «Оценка и программирование семейства 29K RISC, третье издание – ПРОЕКТ» (PDF) . п. 54 . Проверено 20 декабря 2023 г.
- ^ Jump up to: а б Стюарт, Бретт (1990). «Новые поколения решений семейства 29 К». Дайджест статей Compcon Spring '90 . Тридцать пятая Международная конференция компьютерного общества IEEE по интеллектуальному использованию. стр. 295–298. дои : 10.1109/CMPCON.1990.63690 .
- ^ Jump up to: а б Манн, Дэниел (октябрь 1991 г.). «Unix и микропроцессор Am29000» . IEEE микро . стр. 23–31. ISSN 0272-1732 . Проверено 19 мая 2023 г.
- ^ Манн, Дэниел (1995). Оценка и программирование семейства 29K RISC . Передовые микроустройства . Проверено 19 мая 2023 г.
- ^ Фикель, Луиза (13 мая 1991 г.). «Продвинутые микроустройства расширяют семейство 29000 двумя RISC-процессорами» . Инфомир . Том. 13, нет. 19. с. 28.
- ^ «ОБЪЯВЛЕНИЯ ФЛЭШ-ПАМЯТИ» . Архив Computer Business Review на Tech Monitor . 9 октября 1990 года.
- ^ Jump up to: а б «Руководство пользователя микропроцессора Am29050» . archive.org . 1991.
- ^ Ганапати, Гопи; Абрахам, Джейкоб А. Аппаратное ускорение само по себе не сделает реальностью оценку ошибок ULSI . Международная испытательная конференция 1991 г.
- ^ Линч, Томас Уокер; Шварцландер (младший), Эрл Э. (июль 1991 г.). «Резервный сумматор ячеек» . Труды 10-го симпозиума IEEE по компьютерной арифметике . дои : 10.1109/ARITH.1991.145553 .
- ^ «Высокопроизводительный RISC-микропроцессор Am29040 с кэшами инструкций и данных» (PDF) . http://chipdb.org . Проверено 18 сентября 2022 г.
- ^ Гвеннап, Линли. «Цифровые технологии, MIPS с добавлением мультимедийных расширений» (PDF) . Отчет микропроцессора . 10 (15): 24–28.
- ^ Папка Форума микропроцессоров . 1994.
- ^ Jump up to: а б с Макминн, Брайан (14 августа 1995 г.). «Первый член семейства суперскаляров 29K» (PDF) . Горячие чипсы .
- ^ «ОБЪЯВЛЕН ПЕРВЫЙ СУПЕРСКАЛЬЯР Am29000» . Архив Computer Business Review на Tech Monitor . 28 ноября 1994 г.
- ^ Детар, Джим (31 октября 1994 г.). «AMD готовит Superscalar 29K» . Электронные новости .
- ^ Слейтер, Майкл (24 октября 1994 г.). «K5 от AMD создан, чтобы обогнать Pentium» (PDF) . Отчет микропроцессора . 8 (14): 1–7.
- ^ Jump up to: а б FUSIONNews 29K . Передовые микроустройства. Лето 1990 года . Проверено 20 мая 2023 г.
- ^ Маршалл, Тревор (май 1988 г.). «Реальные RISC» . Байт . стр. 263–268 . Проверено 20 мая 2023 г.
- ^ Jump up to: а б YARC, компания решений . Корпорация Yarc Systems.
- ^ «YARC заявляет, что дополнительная плата Mac II работает на частоте 50 МГц» . Байт . Август 1988 г. с. 16 . Проверено 20 мая 2023 г.
- ^ Сопроцессорная система MacRageous Macintosh-II RISC . Корпорация Yarc Systems. 1990.
- ^ Вархол, Питер Д. (октябрь 1989 г.). «NuSuper Soups от YARC на Mac» . МИПС . стр. 81–83 . Проверено 20 мая 2023 г.
- ^ Пасторе, Ричард (3 сентября 1990 г.). «Сопряжение ПК Intel с RISC» . Компьютерный мир . п. 37 . Проверено 3 марта 2024 г.
- ^ Смит, Бад Э. (май 1990 г.). «Большой, быстрый Macintosh с RISC-графикой» . Персональное рабочее место . стр. 46–50 . Проверено 20 мая 2023 г.
Внешние ссылки
[ редактировать ]- Руководство по идентификатору AMD 29k (процессор с оптимизированными инструкциями)
- Манн, Дэниел (1995), Оценка и программирование семейства 29K RISC (PDF) , Advanced Micro Devices, заархивировано из оригинала (PDF) 27 сентября 2007 г., книга в формате PDF о семействе 29k.
- Chipdb.org Изображения различных процессоров Am29000