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 является развитием той же архитектуры Berkeley RISC , которая также привела к появлению Sun SPARC , Intel i960 , ARM и RISC-V .

Одним из элементов дизайна, используемых в некоторых проектах, производных от Berkeley 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. 64-элементный буфер трансляции (TLB) сохранял сопоставления с виртуальными адресами в физические, и при обнаружении нетранслированного адреса результирующий «промах» 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, без кэша на кристалле, но с плавающей точкой с полностью конвейерными операциями умножения-накопления , большим кэшем Branch Target Cache объемом 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]

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

AMD использовала невыпущенную микроархитектуру 29K в качестве основы серии процессоров K5 , совместимых с x86 . АЛУ были перенесены, как и буфер переупорядочивания с небольшими изменениями. 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». Computerworld . Том 21, № 12. стр. 14.
  2. ^ Коул, Бернард К. (28 апреля 1988 г.). «RISC Slugfest: маркетинг важнее производительности?» (PDF) . Электроника . стр. 66 (стр. 68 из .pdf).
  3. ^ ab "Устная история Уильяма Майкла 'Майка' Джонсона" (PDF) . Музей компьютерной истории (интервью). Интервью Кевина Крюэлла. 9 мая 2014 г. Ну, это началось в 85-м. И потребовалось, я бы сказал, около трех лет и, может быть, четыре оборота, прежде чем это заработало.
  4. ^ Беткер, Майкл Р.; Фернандо, Джон С.; Уэйлен, Шон П. (осень 1997 г.). «История микропроцессора» (PDF) . Bell Labs Technical Journal : 48.
  5. ^ "Оценка и программирование семейства 29K RISC, третье издание – ЧЕРНОВИК" (PDF) . стр. 54 . Получено 20.12.2023 .
  6. ^ ab Stewart, Brett (1990). «Новые поколения решений семейства 29 K». Сборник статей Compcon Spring '90 . Тридцать пятая международная конференция IEEE Computer Society по интеллектуальному рычагу. стр. 295–298. doi :10.1109/CMPCON.1990.63690.
  7. ^ ab Mann, Daniel (октябрь 1991 г.). «Unix и микропроцессор Am29000». IEEE Micro . стр. 23–31. ISSN  0272-1732 . Получено 19 мая 2023 г.
  8. ^ Манн, Дэниел (1995). Оценка и программирование семейства 29K RISC. Advanced Micro Devices . Получено 19 мая 2023 г.
  9. Fickel, Louise (13 мая 1991 г.). «Advanced Micro Devices укрепляет семейство 29000 с двумя RISC-процессорами». InfoWorld . Т. 13, № 19. стр. 28.
  10. ^ "ОБЪЯВЛЕНИЯ О ФЛЭШ-ПАМЯТИ". Архив Computer Business Review в Tech Monitor . 9 октября 1990 г.
  11. ^ ab "Руководство пользователя микропроцессора Am29050". archive.org . 1991.
  12. ^ Ганапати, Гопи; Абрахам, Джейкоб А. Аппаратное ускорение само по себе не сделает оценку неисправностей ULSI реальностью. Международная конференция по тестированию 1991 г.
  13. ^ Линч, Томас Уокер; Шварцлендер (младший), Эрл Э. (июль 1991 г.). «Сумматор с избыточными ячейками». Труды 10-го симпозиума IEEE по компьютерной арифметике . doi :10.1109/ARITH.1991.145553.
  14. ^ "Am29040 Высокопроизводительный RISC-микропроцессор с кэшами инструкций и данных" (PDF) . chipdb.org . Получено 18 сентября 2022 г. .
  15. ^ Гвеннап, Линли. «Цифровые, MIPS Add Multimedia Extensions» (PDF) . Microprocessor Report . 10 (15): 24–28.
  16. Папка «Форум микропроцессоров». 1994.
  17. ^ abc Макминн, Брайан (14 августа 1995 г.). "Первый член семейства суперскалярных 29К" (PDF) . Hot Chips .
  18. ^ "ПЕРВЫЙ СУПЕРСКАЛЯРНЫЙ Am29000 ОБНАРУЖЕН". Архив Computer Business Review в Tech Monitor . 28 ноября 1994 г.
  19. ^ Детар, Джим (31 октября 1994 г.). "AMD варит Superscalar 29K". Electronic News .
  20. Слейтер, Майкл (24 октября 1994 г.). «AMD K5 разработан, чтобы обогнать Pentium» (PDF) . Microprocessor Report . 8 (14): 1–7.
  21. ^ ab FUSIONews 29K. Advanced Micro Devices. Лето 1990 г. Получено 20 мая 2023 г.
  22. ^ Маршалл, Тревор (май 1988). «Real-World RISCs». Byte . стр. 263–268 . Получено 20 мая 2023 .
  23. ^ ab YARC, компания-разработчик решений. Yarc Systems Corporation.
  24. ^ "YARC заявляет о работе на частоте 50 МГц для платы усилителя Mac II". Byte . Август 1988. С. 16. Получено 20 мая 2023 г.
  25. ^ MacRageous Macintosh-II RISC-сопроцессорная система. Yarc Systems Corporation. 1990.
  26. ^ Вархол, Питер Д. (октябрь 1989 г.). «YARC’s NuSuper Soups Up the Mac». MIPS . стр. 81–83 . Получено 20 мая 2023 г.
  27. ^ Пасторе, Ричард (3 сентября 1990 г.). «Объединение ПК Intel с RISC». Computerworld . стр. 37. Получено 3 марта 2024 г.
  28. ^ Смит, Бад Э. (май 1990 г.). «Большой, быстрый Macintosh с графикой RISC». Персональная рабочая станция . стр. 46–50 . Получено 20 мая 2023 г.

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