AMD Am29000

редактировать
Микропроцессор AMD 29000 AMD 29030.

AMD Am29000, обычно сокращается до 29k, представляет собой семейство 32-битных RISC микропроцессоров и микроконтроллеров, разработанных и изготовленных Advanced Micro Devices (AMD ). Основанный на оригинальном Berkeley RISC, в 29k добавлен ряд значительных улучшений. Какое-то время они были самыми популярными микросхемами RISC на рынке, широко используемыми в лазерных принтерах различных производителей.

В период с 1988 по 1995 год было представлено несколько версий, начиная с модели 29000. Последняя модель, 29050, была первой версией суперскалярной, уходящей на пенсию. до четырех инструкций на цикл, а также включая значительно улучшенный блок с плавающей запятой (FPU).

В конце 1995 года AMD отказалась от разработки 29k, потому что группа разработчиков была переведена для поддержки бизнеса в области ПК. То, что осталось от встраиваемого бизнеса AMD, было переориентировано на семейство встроенных 186 из 80186 производных. Большая часть ресурсов AMD была сконцентрирована на их высокопроизводительных настольных клонах x86 с использованием многих идей и отдельных частей последней версии 29k для создания AMD K5.

Содержание

  • 1 Дизайн
  • 2 Версии
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки

Дизайн

Модель 29000 развилась из того же дизайна Berkeley RISC, который также привел к Sun SPARC и Intel i960.

Одним из элементов дизайна, используемых во всех разработках, производных от Berkeley, является концепция окон регистров, используемая технология для значительного ускорения вызовов процедур. Идея состоит в том, чтобы использовать большой набор регистров в качестве стека, загружая локальные данные в набор регистров во время вызова и помечая их как «мертвые», когда процедура возвращается. Значения, возвращаемые из подпрограмм, будут помещены на «глобальную страницу», восемь верхних регистров в SPARC (например). Конкурирующий ранний проект RISC от Стэнфордского университета, Stanford MIPS, также рассматривал эту концепцию, но решил, что улучшенные компиляторы могут более эффективно использовать регистры общего назначения, чем жестко зашитое окно..

В первоначальном проекте Беркли, SPARC и i960, окна были фиксированного размера. Процедура, использующая только одну локальную переменную, по-прежнему будет использовать восемь регистров на SPARC, тратя зря этот дорогостоящий ресурс. Именно здесь 29000 отличался от этих более ранних проектов, используя переменный размер окна. В этом примере будут использоваться только два регистра: один для локальной переменной, другой для адреса возврата . Он также добавил больше регистров, включая те же 128 регистров для стека процедур, но добавив еще 64 для глобального доступа. Для сравнения, SPARC имел всего 128 регистров, а глобальный набор был стандартным окном из восьми. Это изменение привело к гораздо лучшему использованию регистров в 29000 при самых разных рабочих нагрузках.

29000 также расширил стек окна регистров стеком в памяти (и теоретически в кэше). Когда окно заполняется, вызовы будут выталкиваться с конца стека регистров в память и восстанавливаться по мере необходимости при возврате подпрограммы. Как правило, регистр 29000 был значительно более продвинутым, чем конкурирующие конструкции, основанные на концепциях Беркли.

AMD 29040

Еще одно отличие конструкции Беркли состоит в том, что в 29000 не было специального регистра кода состояния. Для этой цели можно использовать любой регистр, что позволяет легко сохранять условия за счет усложнения кода. Использовался буфер предварительной выборки инструкций, в котором хранилось до 16 инструкций, используемых для повышения производительности во время переходов - 29000 не включал никакой системы прогнозирования переходов, поэтому была задержка, если переход был выполнен (и не был изначально суперскаляр, поэтому он не может "работать с обеих сторон", как это часто бывает в некоторых проектах). Буфер смягчил это, сохранив четыре инструкции с другой стороны ветви, которые можно было запустить мгновенно, пока буфер повторно заполнялся новыми инструкциями из памяти.

Версии

Первый 29000 был выпущен в 1988 году, включая встроенный MMU, но поддержка с плавающей запятой была перенесена на 29027FPU. Блоки с неисправными MMU или BTC продавались как 29005.

. Линия была обновлена ​​с помощью 29030и 29035, которые включали 8 KB или 4 КБ кэша инструкций соответственно. В другом обновлении был интегрирован FPU on-die и добавлен кэш данных 4 КБ для создания 29040.

Последней версией общего назначения была 29050. Это было значительным обновлением первоначального дизайна, первой версии суперскалярной, которая могла выполнять инструкции вне очереди и предположительно. До шести инструкций можно было работать одновременно на различных этапах конвейера, а четыре можно было исключить в любом цикле. 29050 также включает значительно улучшенный FPU. Изначально 29050 был доступен с тактовой частотой 25, 50 и 75 МГц. Версия с частотой 100 МГц была представлена ​​позже.

Некоторые части конструкции 29050 были использованы в качестве основы для серии K5 процессоров, совместимых с x86. Сумматор и умножитель FPU были перенесены с некоторыми изменениями компоновки, в FPU был добавлен механизм нанокода, чтобы приспособить сложные инструкции, найденные в x86, но не на 29050, в то время как остальная часть ядра была использована вместе со сложным микрокодом для преобразования инструкций x86 в 29k-like 'uops' на лету.

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

См. Также

Ссылки

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

Последняя правка сделана 2021-06-07 21:38:57
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте