Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Микропроцессор AMD 29000
29030 драм.

AMD Am29000 , обычно сокращается до 29К , представляет собой семейство 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 .

Дизайн [ править ]

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

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

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

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

29040 драм

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

Версии [ править ]

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

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

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

Несколько порции 29050 конструкции были использованы в качестве основы для K5 серии x86 совместимых с RIHD процессоров. ФП сумматор и умножитель были перенесены с некоторыми изменениями макета, A nanocode двигатель был добавлен в ПДП , чтобы приспособить сложные инструкции найти в x86 , но не на 29050, в то время как остальная часть конструкции активной зоны была использован вместе со сложным микрокодом , чтобы перевести x86 инструкции к 29k-подобным "упс" на лету.

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

  • Умереть фотографии
  • Am29000

  • Am29030

  • Am29040

  • Am29050

См. Также [ править ]

  • Список семейств AMD Am2900 и Am29000

Ссылки [ править ]

  1. ^ Detar, Джим (31 октября 1994). «AMD варит Superscalar 29K». Электронные новости .

Внешние ссылки [ править ]

  • Руководство по идентификатору AMD 29k (оптимизированный командный процессор)
  • Манн, Дэниел (1995), Оценка и программирование семейства 29K RISC (PDF) , Advanced Micro Devices, заархивировано из оригинала (PDF) 27 сентября 2007 г. pdf книга о семье 29к
  • chipdb.org Образы различных процессоров Am29000