stringtranslate.com

AMD Am29000

Микропроцессор AMD 29000
29030 драм РА

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 было значительно более продвинутым, чем в конкурирующих конструкциях, основанных на концепциях Беркли.

29040 драм РА

Еще одно отличие от конструкции Беркли заключается в том, что 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] Am29040 площадью 119 мм² содержал 1,2 миллиона транзисторов, изготовленных по 0,7-микронной технологии. [15] [16]

Разрабатывалась суперскалярная версия 29K, но от нее отказались в пользу x86 . Он имел кодовое название Jaguar , [3] и был описан в ноябре 1994 и августе 1995 года. [17] [18] Это была усовершенствованная конструкция, способная к четырехсторонней отправке на шесть станций резервирования и спекулятивному внеочередному выполнению инструкций. , с четырехсторонним выходом на пенсию. Регистровый файл допускал четыре чтения и две записи одновременно. Кэши для инструкций и данных составляли по 8 КБ каждый. Загрузка из кэша может обходить магазины . У него не было встроенного FPU по причинам стоимости и целевого рынка. Ожидалось, что он достигнет частоты 100 МГц при использовании 0,4-микронного процесса. [17] [19]

AMD использовала неизданную микроархитектуру 29K в качестве основы x86 -совместимых процессоров серии K5 . ALU были перенесены, как и буфер повторного порядка с небольшими изменениями. FPU был взят из 29050, но расширен до точности 80 бит . K5 преобразовал инструкции x86 в «RISC-OP» после декодирования, чему способствовала информация о предварительном декодировании, хранящаяся в кэшированных инструкциях. AMD заявила, что суперскаляр 29K будет иметь лишь немного меньшую производительность, чем K5, но гораздо меньшую стоимость из-за разницы в размерах. [20] [17]

Honeywell 29KII — это процессор на базе AMD 29050, который широко использовался в авионике реального времени.

Продукты и приложения

Позиционированный как продукт для «встроенных приложений средней и высокой производительности» с потенциалом использования на рабочих станциях 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]

Смотрите также

Рекомендации

  1. Мартин, Джеймс А. (23 марта 1987 г.). «Фирма заявляет, что 32-битный чип обрабатывает 17 MIPS». Компьютерный мир . Том. 21, нет. 12. с. 14.
  2. Коул, Бернард К. (28 апреля 1988 г.). «RISC Slugfest: маркетинг важнее производительности?» (PDF) . Электроника . п. 66 (стр. 68 в формате PDF).
  3. ^ ab «Устная история Уильяма Майкла «Майка» Джонсона» (PDF) . Музей компьютерной истории (интервью). Беседовал Кевин Крюэлл. 9 мая 2014. Ну началось это в 85 году. И потребовалось, я бы сказал, около трех лет и, возможно, четырех оборотов, прежде чем он заработал.
  4. ^ Беткер, Майкл Р.; Фернандо, Джон С.; Уэлен, Шон П. (осень 1997 г.). «История микропроцессора» (PDF) . Технический журнал Bell Labs : 48.
  5. ^ «Оценка и программирование третьего издания семейства 29K RISC - ПРОЕКТ» (PDF) . п. 54 . Проверено 20 декабря 2023 г.
  6. ^ Аб Стюарт, Бретт (1990). «Новые поколения решений семейства 29 К». Дайджест статей Compcon Spring '90 . Тридцать пятая Международная конференция компьютерного общества IEEE по интеллектуальному использованию. стр. 295–298. doi : 10.1109/CMPCON.1990.63690.
  7. ^ Аб Манн, Дэниел (октябрь 1991 г.). «Unix и микропроцессор Am29000». IEEE микро . стр. 23–31. ISSN  0272-1732 . Проверено 19 мая 2023 г.
  8. ^ Манн, Дэниел (1995). Оценка и программирование семейства 29K RISC. Передовые микроустройства . Проверено 19 мая 2023 г.
  9. Фикель, Луиза (13 мая 1991 г.). «Продвинутые микроустройства расширяют семейство 29000 двумя RISC-процессорами». Инфомир . Том. 13, нет. 19. с. 28.
  10. ^ "ОБЪЯВЛЕНИЯ ФЛЭШ-ПАМЯТИ" . Архив Computer Business Review на Tech Monitor . 9 октября 1990 года.
  11. ^ ab «Руководство пользователя микропроцессора Am29050» . archive.org . 1991.
  12. ^ Ганапати, Гопи; Абрахам, Джейкоб А. Аппаратное ускорение само по себе не сделает реальностью оценку ошибок ULSI. Международная испытательная конференция 1991 г.
  13. ^ Линч, Томас Уокер; Шварцландер (младший), Эрл Э. (июль 1991 г.). «Резервный сумматор ячеек». Труды 10-го симпозиума IEEE по компьютерной арифметике . дои : 10.1109/ARITH.1991.145553.
  14. ^ «Высокопроизводительный RISC-микропроцессор Am29040 с кэшами инструкций и данных» (PDF) . http://chipdb.org . Проверено 18 сентября 2022 г.
  15. ^ Гвеннап, Линли. «Цифровые технологии, MIPS с добавлением мультимедийных расширений» (PDF) . Отчет микропроцессора . 10 (15): 24–28.
  16. ^ Папка Форума микропроцессоров. 1994.
  17. ^ abc МакМинн, Брайан (14 августа 1995 г.). «Первый член семейства суперскаляров 29K» (PDF) . Горячие чипсы .
  18. ^ "ОБЪЯВЛЕН ПЕРВЫЙ СУПЕРСКАЛЬЯР Am29000" . Архив Computer Business Review на Tech Monitor . 28 ноября 1994 г.
  19. Детар, Джим (31 октября 1994 г.). «AMD готовит Superscalar 29K» . Электронные новости .
  20. Слейтер, Майкл (24 октября 1994 г.). «K5 от AMD создан, чтобы обогнать Pentium» (PDF) . Отчет микропроцессора . 8 (14): 1–7.
  21. ^ ab FUSIONews 29K. Передовые микроустройства. Лето 1990 года . Проверено 20 мая 2023 г.
  22. ^ Маршалл, Тревор (май 1988 г.). «Реальные RISC». Байт . стр. 263–268 . Проверено 20 мая 2023 г.
  23. ^ ab YARC, компания, занимающаяся решениями. Корпорация Yarc Systems.
  24. ^ «YARC заявляет о работе на частоте 50 МГц для дополнительной платы Mac II» . Байт . Август 1988 г. с. 16 . Проверено 20 мая 2023 г.
  25. ^ Сопроцессорная система MacRageous Macintosh-II RISC. Корпорация Yarc Systems. 1990.
  26. ^ Вархол, Питер Д. (октябрь 1989 г.). «NuSuper Soups от YARC на Mac». МИПС . стр. 81–83 . Проверено 20 мая 2023 г.
  27. Пасторе, Ричард (3 сентября 1990 г.). «Сопряжение ПК Intel с RISC». Компьютерный мир . п. 37 . Проверено 3 марта 2024 г.
  28. ^ Смит, Бад Э. (май 1990 г.). «Большой, быстрый Macintosh с RISC-графикой». Персональное рабочее место . стр. 46–50 . Проверено 20 мая 2023 г.

Внешние ссылки