AMD Am29000 (29K) RISC Family — полный обзор 32-битных RISC-процессоров и микроконтроллеров AMD, моделей, производительности и применения

AMD Am29000, обычно обозначаемое как 29K, — большое семейство 32-битных RISC-процессоров и производных микроконтроллеров Advanced Micro Devices, созданное для высокопроизводительных встроенных систем конца 1980-х и первой половины 1990-х годов. Линейка охватывала не одну микросхему, а несколько поколений: исходные Am29000 и упрощённый Am29005, процессоры с встроенным кэшем инструкций Am29030 и Am29035, существенно переработанный Am29040, вычислительно ориентированный Am29050 с интегрированным блоком операций с плавающей точкой, а также микроконтроллеры Am29200, Am29202, Am29205, Am29240, Am29243 и Am29245. Рядом с ними AMD выпускала системные компоненты 29K, включая арифметический ускоритель Am29027, контроллер передачи данных Am29041 и интегрированный кэш Am29062.

AMD Am29000 (29K) RISC Family: что представляло собой семейство

Семейство 29K относится к эпохе, когда производители активно переносили идеи университетских RISC-проектов в коммерческие микропроцессоры. AMD развивала собственную архитектуру, опираясь на принципы Berkeley RISC, но переработала работу регистров, управление переходами, виртуальной памятью и взаимодействие с внешней памятью. Наиболее заметной особенностью стала большая система из 192 регистров общего назначения, разделённая на глобальную и локальную области, с переменным размером окна для процедур. Такое устройство хорошо соответствовало коду компиляторов языков высокого уровня и снижало объём обмена с памятью при вызовах функций.

29K не была настольной x86-линейкой и не конкурировала с Am386, Am486 или последующими K5/K6 за место в обычных персональных компьютерах. Основной рынок находился в лазерных принтерах, графических ускорителях, X-терминалах, сетевом оборудовании, контроллерах хранения данных, телекоммуникационной аппаратуре, сканерах, устройствах распознавания изображений и специализированных вычислительных платах. Именно поэтому оценивать Am29000 по критериям современного игрового процессора или серверного Xeon некорректно: семейство проектировалось вокруг другой программной модели, другой системной шины и другого жизненного цикла оборудования.

Внутри линейки встречаются две заметно разные системные организации. Am29000, Am29005 и Am29050 используют раздельные 32-битные тракты адресов, инструкций и данных, что даёт архитектуре три внешних логических потока. Am29030, Am29035 и Am29040 объединяют инструкции и данные на одном внешнем тракте, сохраняя отдельную адресную шину. Поздние микроконтроллеры Am292xx добавляют контроллеры памяти, порты ввода-вывода, последовательные и параллельные интерфейсы, DMA и другие функции, необходимые для автономного встраиваемого узла.

За время развития 29K AMD последовательно решала разные задачи. Первое поколение делало акцент на эффективном выполнении целочисленного кода и гибкой работе с памятью. Am29030 и Am29035 снижали требования к внешней подсистеме за счёт встроенного кэша инструкций. Am29050 добавил мощную FPU и стал особенно интересен для вычислительных ускорителей. Am29040 объединил более высокую тактовую частоту, отдельные кэши инструкций и данных, аппаратное умножение, усовершенствованную MMU, поддержку многопроцессорных конфигураций и питание ядра 3,3 В. Микроконтроллеры Am292xx переносили архитектуру в более интегрированные контроллеры для принтеров, сетевого и промышленного оборудования.

Где купить AMD Am29000 (29K) и сколько стоят процессоры серии

Ноутбуков и готовых массовых серверов на 29K в этих магазинах нет. Семейство не выпускалось как мобильная платформа для ноутбуков и не имело стандартной серверной экосистемы уровня x86. На вторичном рынке встречаются отдельные микросхемы, платы, принтерные контроллеры и коллекционные экземпляры. При покупке для ремонта важнее точное обозначение микросхемы, частотный индекс, тип корпуса, ревизия и электрическая совместимость конкретной платы, чем само семейное имя 29K.

История AMD 29K и место семейства в развитии RISC

Работы над 29K начались в середине 1980-х годов, а публичный анонс исходного Am29000 состоялся в 1987 году. Первые серийные микросхемы появились в 1988 году. AMD входила в число компаний, которые превращали академические идеи RISC в коммерческие продукты: короткие и регулярные команды, конвейер, большой регистровый файл, операции типа load/store и стремление выполнять большинство простых целочисленных команд с высокой пропускной способностью.

Исходная архитектура Am29000 развивала идеи Berkeley RISC не копированием фиксированных окон регистров, а более гибкой схемой. В процессоре присутствовали 128 локальных регистров, образующих стек процедур, и 64 глобальных регистра. Текущая процедура использовала именно столько локальных регистров, сколько требовал скомпилированный код. При глубоком дереве вызовов крайние области регистрового стека выгружались в память и затем восстанавливались. За счёт переменного размера окна не требовалось резервировать одинаковый объём регистров для каждой функции.

Эта организация особенно удачно сочеталась с компиляторами C и языков, активно использующих вызовы подпрограмм. Большое число доступных регистров позволяло держать локальные переменные, аргументы и промежуточные результаты рядом с исполнительными блоками. По меркам конца 1980-х это было заметным инженерным отличием от многих CISC-процессоров, где регистров было значительно меньше, а процедура чаще обращалась к стеку в оперативной памяти.

Ещё одно принципиальное решение — отказ от традиционного общего регистра флагов как единственного места для результатов сравнений. Команды сравнения формировали значения в регистре общего назначения, а условные переходы использовали это значение. Несколько результатов сравнений сохранялись одновременно, и компилятор получал больше свободы при планировании инструкций. Такая схема уменьшала скрытые зависимости через единый набор флагов.

Первые Am29000 ориентировались на системы, где внешняя память могла быть сравнительно простой и недорогой. Вместо большого встроенного L1-кэша процессор получил Branch Target Cache — специализированный буфер целей переходов, позволяющий не оставлять конвейер без инструкций сразу после ранее встречавшихся переходов. В Am29000 его объём составлял 512 байт. У Am29050 буфер вырос до 1 Кбайт и получил двухканальную ассоциативную организацию. Позднее Am29030, Am29035 и Am29040 перешли к полноценным кэшам инструкций, а Am29040 получил также отдельный кэш данных.

Коммерческая судьба 29K тесно связана со встроенным рынком. Архитектура использовалась в контроллерах лазерных принтеров, где требовалось быстро разбирать страницы, исполнять язык описания печати и обрабатывать растровую графику. Она применялась в графических платах Apple и сторонних RISC-ускорителях, в сетевых мостах, X-терминалах и специализированных контроллерах. В отраслевых материалах начала 1990-х семейство AMD 29000 рассматривалось рядом с Intel i960 как один из заметных высокопроизводительных встроенных RISC-наборов.

К середине 1990-х приоритет AMD сместился к x86-совместимым процессорам. Инженерный опыт 29K, отдельные схемные решения и наработки по блоку операций с плавающей точкой повлияли на создание первого собственного x86-ядра AMD K5. Развитие самостоятельной 29K-линейки прекратилось, несмотря на проекты более производительного следующего поколения. Поэтому семейство осталось важной ветвью истории AMD: оно не стало массовой настольной платформой, но дало компании опыт разработки сложного 32-битного RISC-ядра, компиляторной инфраструктуры и встроенных процессоров.

Общая архитектура 29K

32-битная модель и набор команд

Процессоры 29K имеют 32-битную архитектуру: целочисленные регистры, базовые арифметические операции, адреса и основные тракты данных рассчитаны на 32 бита. Набор команд построен по load/store-принципу. Вычислительные инструкции работают с регистрами, а обмен с памятью выполняют отдельные команды загрузки и сохранения. Для арифметики и логики характерен трёхадресный формат: два регистра служат источниками, третий получает результат. Это снижает число служебных пересылок и облегчает планирование кода компилятором.

Архитектура поддерживает адресацию байтов и работу с данными меньшей разрядности внутри 32-битной системы. В документации семейства подробно определены операции с байтами, полусловами и словами, знаковое и беззнаковое расширение, сдвиги, логические операции, сравнения, переходы, системные команды и управление специальными регистрами. Am29050 расширяет набор инструкций командами плавающей точки и операциями умножения с накоплением. Am29040 добавляет быстрый аппаратный целочисленный умножитель и специализированные возможности, востребованные встроенными приложениями.

192 регистра общего назначения

Регистровая система — центральная черта 29K. Всего архитектура предоставляет 192 регистра общего назначения. Из них 64 образуют глобальный набор, а 128 используются как локальный регистровый стек процедур. Локальная часть отображается в пространство регистров через указатели стека и окна. При входе в функцию компилятор выделяет необходимое число локальных регистров, а при возврате освобождает их. Переход через край физического регистрового массива обслуживается программным механизмом spill/fill: часть содержимого переносится в память или возвращается обратно.

Такое решение отличается от фиксированных регистровых окон ранних RISC. Функция с небольшим числом локальных переменных не расходует большой заранее установленный блок, а крупная функция получает больше регистров в пределах доступного стека. Глобальные регистры остаются доступными независимо от текущего окна и подходят для долгоживущих значений, указателей и данных среды исполнения. Архитектура тем самым сочетает большой физический регистровый файл с моделью, удобной для компилятора.

Программное обслуживание переполнения и опустошения регистрового стека является осознанной частью архитектуры. Аппаратная логика обнаруживает границы, а обработчик сохраняет или восстанавливает необходимую область. Это переносит часть сложности из кристалла в системное программное обеспечение и соответствует общей философии RISC того периода.

Конвейер и исполнение команд

Исходный Am29000 использует четырёхступенчатый конвейер. Пиковая пропускная способность простых целочисленных инструкций приближается к одной команде за такт после заполнения конвейера, а производитель для типовых потоков указывал среднее значение около 1,5 такта на инструкцию. Реальная скорость зависит от переходов, задержек памяти, числа загрузок и сохранений, работы обработчиков TLB и структуры программы.

Am29050 сохраняет высокую пропускную способность целочисленной части и добавляет отдельный конвейер плавающей точки. Это не суперскалярный процессор в современном смысле: он не выбирает произвольные несколько целочисленных инструкций из одного потока для параллельной выдачи. При этом целочисленная и плавающая части имеют раздельные пути записи результатов, поэтому завершение операции FPU и целочисленной операции в одном такте предусмотрено архитектурой. Такая параллельность особенно полезна в численных циклах, где адресная арифметика и вычисления с плавающей точкой чередуются.

Am29040 совершенствует целочисленную производительность и работу с памятью. В нём применяются отдельные кэши инструкций и данных, двухтактный 32-битный аппаратный умножитель и трёхтактная операция multiply-accumulate. Встроенный блок умножения важен для обработки сигналов, изображений, протоколов и управляющих алгоритмов, где программная последовательность сдвигов и сложений заметно уступает аппаратной реализации.

Переходы и Branch Target Cache

В ранних Am29000 внешний поток инструкций отделён от потока данных. При переходе процессору требуется быстро получить команды с нового адреса. Для этого используется Branch Target Cache. Am29000 располагает 512-байтным BTC, хранящим блоки инструкций из ранее выполненных переходов. При попадании процессор немедленно получает первые команды целевого участка, пока внешняя память переключается на новую последовательность.

Am29005 представляет удешевлённый вариант без функционирующих BTC и MMU. Поэтому он подходит для более простых систем с физической адресацией и предсказуемой программой, но уступает полному Am29000 в задачах с интенсивными переходами и виртуальной памятью. Am29050 увеличивает BTC до 1 Кбайт и организует его как двухканальный ассоциативный массив. Программное управление задаёт хранение двух или четырёх инструкций на запись перехода.

Am29030 и Am29035 решают задачу иначе: на кристалле находится обычный кэш инструкций, соответственно 8 Кбайт с двухканальной ассоциативностью и 4 Кбайт с прямым отображением. Am29040 сохраняет 8-Кбайтный двухканальный кэш инструкций и добавляет 4-Кбайтный двухканальный кэш данных. Поэтому термин BTC нельзя автоматически приравнивать к полноценному L1-кэшу: у ранних процессоров это специализированная структура для ветвлений, а у поздних двухшинных моделей присутствует традиционное кэширование потока инструкций.

Виртуальная память и MMU

Полный Am29000 поддерживает 4-Гбайтное виртуальное адресное пространство и располагает встроенным 64-записным TLB. При отсутствии нужного преобразования процессор вызывает программный обработчик, который подготавливает отображение виртуального адреса в физический. Аппаратная таблица тем самым остаётся компактной, а политика замещения и организация страниц контролируются системным программным обеспечением.

Am29030 сохраняет 64-записную MMU и поддержку demand paging. Am29035 построен как близкий по архитектуре более доступный вариант и сохраняет системную совместимость, отличаясь прежде всего меньшим кэшем инструкций и частотой. Am29040 получает усовершенствованную подсистему управления памятью с двумя TLB и функциями, рассчитанными на более сложные встроенные и многопроцессорные системы. Am29050 сочетает 64-записную MMU с механизмом region mapping и дополнительным четырёхзаписным Physical Address Cache, ускоряющим часть обращений, связанных с конвейерными загрузками.

В микроконтроллерах Am292xx объём и конфигурация средств трансляции зависят от модели. Часть кристаллов использует 16-записные TLB, часть — более развитую схему. Это связано с перераспределением площади кристалла между процессорным ядром, кэшами и встроенной периферией. Для конечной платы важна документация конкретного Am292xx, а не только общие свойства базовой 29K-архитектуры.

Шины и память

Am29000, Am29005 и Am29050 относятся к трёхшинной группе. 32-битная адресная шина отделена от 32-битного потока инструкций и 32-битного потока данных. Такое разделение позволяет одновременно организовать выборку команд и обмен данными при соответствующей внешней логике памяти. Системная плата получает высокую потенциальную пропускную способность, но требует больше выводов и более сложной разводки.

Am29030, Am29035 и Am29040 используют двухшинную организацию: отдельный адресный тракт и объединённый тракт инструкций/данных. У Am29030 и Am29035 ширина внешнего канала данных программируется как 16 или 32 бита; интерфейс ПЗУ поддерживает 8-, 16- и 32-битные устройства. Предусмотрены burst- и page-mode-доступы, что упрощает подключение памяти, распространённой во встроенной технике первой половины 1990-х.

Am29040 продолжает двухшинную линию и существенно усиливает системный интерфейс. Он рассчитан на 3,3-В питание, поддерживает входы-выходы, совместимые с 5-В логикой, имеет масштабируемое тактирование, режимы снижения энергопотребления Snooze и Sleep, контроль чётности для инструкций и данных, управление кэшированием на уровне страниц и средства для многопроцессорного согласования. Разделение частоты внутреннего ядра и внешней памяти предусмотрено штатной схемой тактирования и не является пользовательским разгоном.

Прерывания, таймеры и отладка

29K проектировалась не только как вычислительное ядро, но и как процессор реального времени. Архитектура предусматривает ловушки, внешние прерывания, системные регистры и быстрый переход к обработчикам. При событии программное обеспечение получает точную информацию о состоянии исполнения и организует сохранение только тех данных, которые действительно нужны обработчику. Большой регистровый файл уменьшает необходимость безусловно сохранять весь контекст при каждом входе в процедуру.

Am29030 и последующие модели получили развитые аппаратные средства отладки. Для Am29030 и Am29035 предусмотрен интерфейс IEEE 1149.1 JTAG с boundary scan, облегчающий тестирование собранной платы. Am29050 поддерживает трассировку, два аппаратных адреса остановки по инструкциям, monitor mode и интерфейс внутрисхемной разработки. Эти возможности были важны для встроенных систем, где процессор запаивался на сложную плату и не имел привычной пользователю настольного ПК среды диагностики.

Основные процессоры AMD 29K: полный список центральных моделей

МодельЧастотыКэш/BTCMMUFPU/умножениеТипичная роль
Am2900016, 20, 25, 33 МГц512 Б BTC64 записиВнешний Am29027 для FPУниверсальный высокопроизводительный embedded RISC
Am2900516 МГцBTC отсутствуетMMU отсутствуетВнешний ускорительУдешевлённые системы с физической адресацией
Am2903025, 33 МГц8 Кбайт I-cache, 2-way64 записиЦелочисленное ядроПринтеры, X-терминалы, графика, сканеры
Am2903516 МГц4 Кбайт I-cache, direct-mappedСистемная MMU семействаЦелочисленное ядроБолее доступные контроллеры
Am2904033, 40, 50 МГц8 Кбайт I-cache + 4 Кбайт D-cache, оба 2-wayУлучшенная, два TLBАппаратное 32-битное умножение, MACСеть, RAID, принтеры, мультимедиа, телеком
Am2905020, 25, 33, 40 МГц1 Кбайт BTC64 записи + region mappingВстроенная IEEE FPU, FP MACЧисленные и графические ускорители, high-end embedded

AMD Am29000

Am29000 — исходная и наиболее узнаваемая модель семейства. Она задаёт базовые принципы 29K: 32-битную load/store-архитектуру, 192 регистра общего назначения, трёхадресные инструкции, четырёхступенчатый конвейер, три внешних логических шины, встроенную MMU и 512-байтный Branch Target Cache. В серийной линейке присутствовали частоты 16, 20, 25 и 33 МГц. Для старшей частоты AMD указывала 23 млн инструкций в секунду устойчивой производительности.

Am29000 не содержит встроенной FPU. Для систем с интенсивной арифметикой с плавающей точкой рядом использовался Am29027. Отделение целочисленного процессора от арифметического ускорителя было нормальной практикой своего времени: оно позволяло производителю выпускать более дешёвые платы без FPU и добавлять её только там, где требовались научные, графические или сигнальные расчёты.

Корпусные варианты включали 169-выводной PGA и 168-выводной PQFP. Семейство выпускалось в коммерческих частотных градациях, а для ряда исполнений существовали варианты с расширенными требованиями к температуре и надёжности. Напряжение питания раннего поколения — 5 В. При восстановлении старого оборудования тип корпуса и частотный индекс имеют такое же значение, как само имя Am29000.

AMD Am29005

Am29005 — более дешёвая версия архитектуры. Она сохраняет 32-битное ядро и программную модель, но не предоставляет работающую MMU и Branch Target Cache. Целевая система использует физическую адресацию и более простую организацию программной памяти. Частота 16 МГц соответствует заявленной устойчивой производительности около 9 MIPS.

Упрощение хорошо соответствовало принтерам и контроллерам, где программа размещалась в известной физической памяти и полноценная виртуальная адресация не требовалась. Совместимость с базовой системой команд облегчала перенос прошивки и инструментов разработки. При этом отсутствие BTC делает поведение переходов более зависимым от скорости внешней памяти, а отсутствие MMU исключает сценарии, которым нужна аппаратная трансляция виртуальных адресов.

AMD Am29030

Am29030 переводит 29K на более интегрированную организацию памяти. Главным добавлением стал 8-Кбайтный двухканальный кэш инструкций. Производитель указывал 26 MIPS устойчивой производительности при 33 МГц; серийные частоты включали 25 и 33 МГц. Процессор сохраняет 192 регистра и 64-записную MMU, но внешний интерфейс становится двухшинным: 32-битная адресная шина и общий 16- или 32-битный тракт инструкций/данных.

Для ПЗУ поддерживаются 8-, 16- и 32-битные устройства, предусмотрены burst- и page-mode-доступы. Это облегчало проектирование контроллеров с недорогой памятью. Встроенный таймер, JTAG и развитая отладочная поддержка делают Am29030 более удобным компонентом готовой встраиваемой платы, чем исходный Am29000, которому требовалось больше внешней логики.

В документации AMD среди характерных применений Am29030 перечислялись лазерные принтеры, графические процессоры, X-терминалы и X-серверы, прикладные ускорители и сканеры. Такой набор хорошо отражает нишу 29K: устройства, где центральное ядро выполняет сложный интерпретируемый или компилируемый код, но работает как часть специализированного изделия.

AMD Am29035

Am29035 — родственник Am29030 с уменьшенным кэшем инструкций и более низкой частотой. На кристалле находится 4 Кбайт direct-mapped I-cache, рабочая частота составляет 16 МГц, а заявленная устойчивая производительность — 12 MIPS. Архитектурная совместимость с 29K сохраняет единый программный фундамент, а меньший кэш и частота ориентируют модель на системы с более умеренными требованиями к производительности и стоимости.

С точки зрения платы Am29035 использует ту же идеологию двухшинного интерфейса, программируемую ширину канала данных, поддержку различных ширин ПЗУ, таймер и средства отладки. Его корректнее рассматривать не как отдельное поколение, а как экономичный вариант ветви Am29030.

AMD Am29040

Am29040 — наиболее интегрированный высокопроизводительный целочисленный микропроцессор общего назначения в линейке 29K. Он работает на 33, 40 и 50 МГц. Для 50 МГц AMD указывала 66,8 VAX MIPS. На кристалле находятся 8 Кбайт двухканального кэша инструкций и 4 Кбайт двухканального кэша данных. Это важное отличие от Am29050: Am29040 имеет полноценные встроенные I/D-кэши, но не содержит FPU.

Целочисленный умножитель выполняет 32-битное умножение за два такта, а multiply-accumulate — за три. Подсистема памяти включает усовершенствованную MMU, два TLB, управление кэшируемостью страниц, поддержку паритета и средства многопроцессорной работы. Системный интерфейс рассчитан на широкую номенклатуру памяти и периферии, а Scalable Clocking разделяет внутренние и внешние требования по частоте.

Am29040 переходит на питание 3,3 В при совместимости ввода-вывода с 5-В логикой. Режимы Snooze и Sleep снижают потребление в простое, полностью статическая реализация облегчает управление частотой. Корпусные варианты включают 145-выводной PGA и 144-выводной PQFP. Целевыми областями были цветные принтеры, сетевое оборудование, интеллектуальные концентраторы, RAID-контроллеры, мультимедийные контроллеры, интерактивное телевидение, PBX и беспроводные сетевые устройства.

В некоторых вторичных каталогах Am29040 ошибочно описывается как процессор со встроенной FPU. Финальная архитектурная документация разделяет функции однозначно: встроенный блок плавающей точки является отличительной особенностью Am29050, а Am29040 делает ставку на кэши и аппаратное целочисленное умножение.

AMD Am29050

Am29050 — вычислительно ориентированная вершина трёхшинной ветви. Он выпускается на 20, 25, 33 и 40 МГц, содержит 1-Кбайтный двухканальный Branch Target Cache, 64-записную MMU с region mapping, Physical Address Cache и полноценную встроенную FPU, работающую с одинарной и двойной точностью по формату IEEE. Для версии 40 МГц AMD указывала 55 MIPS устойчивой целочисленной производительности и до 80 MFLOPS пиковой производительности FPU.

Блок плавающей точки рассчитан на перекрытие с целочисленной работой. В нём предусмотрены регистры-аккумуляторы для операций умножения и накопления, что особенно полезно в матричных, графических и сигнальных алгоритмах. Целочисленная часть и FPU имеют независимые пути записи в регистровый файл. Такое устройство увеличивает параллелизм без превращения Am29050 в общий суперскалярный процессор.

Am29050 сохраняет программную и системную преемственность с предыдущими 29K и особенно хорошо подходит для плат-ускорителей. Его применяли в специализированных RISC-сопроцессорных решениях, где основной компьютер передавал математически тяжёлую часть работы отдельной плате. 5-В питание и PGA-корпус отражают происхождение от ранней трёхшинной ветви, а большая FPU и улучшенная подсистема памяти делают модель значительно мощнее Am29000 в численных задачах.

Микроконтроллеры Am29200: интегрированная ветвь архитектуры 29K

Параллельно с дискретными микропроцессорами AMD развивала семейство Am29200. Эти микросхемы сохраняют 29K-ядро, но переносят на кристалл значительную часть логики, которую в системе с Am29000 приходилось строить внешними компонентами. Контроллеры памяти, DMA, параллельные и последовательные порты, программируемые линии ввода-вывода, JTAG и средства обслуживания принтерных механизмов превращали Am292xx в основу законченного embedded-узла.

Внутри этой ветви нет единой конфигурации периферии. Старшие и более поздние варианты отличаются кэшами, аппаратным умножителем, TLB, шириной внешней шины, числом портов и корпусом. Поэтому обозначение Am29200 Family описывает архитектурное родство, а точный перечень встроенных блоков определяется конкретной моделью. Наиболее важные представители — Am29200, Am29202, Am29205, Am29240, Am29243 и Am29245.

МодельОсновная конфигурацияШины и памятьПериферияКорпус/питание
Am2920032-битное 29K-ядро, без встроенного I/D-кэша32-битный внутренний и внешний тракт; банки ROM и DRAMDMA, PIA/PIO, serial, parallel, JTAG168 PQFP, 5 В
Am2920232-битное ядро, интегрированный контроллер памяти32-битный внешний тракт; 8/16/32-битный ROM; 16/32-битный DRAMDMA, PIA/PIO, serial, 32-битный parallel, IEEE 1284, JTAG132 PQFP, 5 В
Am29205Экономичная микроконтроллерная версия32-битное ядро, 16-битный внешний тракт; 8/16-битный ROMDMA, PIA/PIO, serial, parallel controller100 PQFP, 5 В
Am292404 Кбайт I-cache + 2 Кбайт D-cache, аппаратное 32×32 умножениеИнтегрированные интерфейсы памяти, 16-записный TLBРасширенный embedded I/O, JTAG196 PQFP, 5 В; EH-варианты — 208 PQFP, 3,3 В и 5-В tolerant I/O
Am292434 Кбайт I-cache + 2 Кбайт D-cache, аппаратный умножительУлучшенная MMU с двумя TLB и контроллеры памятиDMA, программируемый I/O, serial/parallel, JTAG196 PQFP, 5 В; EH-варианты — 208 PQFP, 3,3 В и 5-В tolerant I/O
Am292454 Кбайт I-cache, без D-cache, программное умножение16-записный TLB и встроенная логика памятиРазвитая периферия для контроллеров196 PQFP, 5 В; EH-варианты — 208 PQFP, 3,3 В и 5-В tolerant I/O

AMD Am29200

Am29200 предназначен для систем, которым нужен 32-битный RISC-процессор вместе с контроллерами памяти и большим набором периферии. Он использует 32-битный внутренний и внешний тракт, поддерживает несколько банков ROM и DRAM, DMA, программируемые порты и интерфейс JTAG. Четыре банка ROM позволяют разводить системную прошивку и данные по разным областям памяти, а несколько банков DRAM дают контроллеру прямой доступ к основной рабочей памяти без отдельного набора внешних контроллеров.

В конфигурации Am29200 присутствуют шесть PIA-портов, программируемые линии общего назначения, последовательный интерфейс, внешние линии прерываний и параллельный контроллер. Такой набор ориентирован на сложное устройство, где 29K-ядро не только вычисляет, но и непосредственно управляет механизмами, каналами связи и памятью. Типичное преимущество перед связкой из Am29000 и множества внешних микросхем — меньшая площадь платы и более предсказуемая интеграция.

AMD Am29202

Am29202 сохраняет 32-битную внутреннюю и внешнюю организацию, но предлагает собственный баланс портов и контроллеров. Встроенный интерфейс ROM работает с 8-, 16- и 32-битными устройствами, DRAM — с 16- и 32-битной организацией. DMA обслуживает 8-, 16- и 32-битные передачи. Параллельный контроллер рассчитан на 32-битный обмен и поддерживает интерфейс IEEE 1284, что прямо соответствует принтерным и периферийным задачам.

Частотные исполнения Am29202 включали 12, 16 и 20 МГц. Для 20-МГц варианта в материалах семейства приводилась производительность порядка 16 VAX MIPS. При меньшей частоте, чем у высокопроизводительных Am29040, система выигрывала от интеграции периферии и отсутствия необходимости постоянно проходить через внешние мосты.

AMD Am29205

Am29205 использует 32-битное внутреннее ядро с 16-битным внешним трактом. Это снижает количество выводов и требования к печатной плате, сохраняя программную модель 29K. Микросхема поддерживает несколько банков ROM, DRAM, 8- и 16-битный DMA, два PIA-порта, программируемые линии ввода-вывода, последовательный порт, внешние прерывания и сериализатор/десериализатор.

Корпус на 100 выводов и частоты 12 и 16 МГц отражают позиционирование как компактного системного контроллера. Am29205 использовался в печатающей технике; его архитектурная ценность состоит не в рекордной частоте, а в том, что центральное ядро, контроллер памяти и основные каналы ввода-вывода размещены в одной микросхеме.

AMD Am29240

Am29240 относится к следующему уровню интеграции. Он получает 4 Кбайт кэша инструкций, 2 Кбайт кэша данных и аппаратный 32×32-битный умножитель. Это делает его заметно сильнее ранних Am2920x в задачах обработки данных, где повторно используются небольшие блоки кода и рабочие массивы. Встроенный TLB и периферийные блоки сохраняют ориентацию на контроллер, а не на универсальную рабочую станцию.

Максимальная частота 33 МГц встречается в сравнительных материалах середины 1990-х. Microprocessor Report сопоставлял Am29240 с IBM PowerPC 403 и отмечал близкий по назначению набор функций. При 33 МГц производительность Am29240 оценивалась примерно в две трети от 39 MIPS, приводившихся для PowerPC 403, то есть приблизительно в 26 MIPS в той методике. Это полезный периодный ориентир: Am29240 был конкурентоспособным embedded-процессором, но более новые PowerPC уже поднимали планку производительности на ватт и на единицу стоимости кристалла.

AMD Am29243

Am29243 развивает идеи Am29240 и относится к интегрированным 29K-контроллерам с отдельными кэшами инструкций и данных, аппаратным умножением и усовершенствованной подсистемой трансляции адресов. В нём сочетаются процессорное ядро, память и периферийные интерфейсы, поэтому его правильнее сравнивать с системными embedded-процессорами своего времени, а не с дискретным настольным CPU.

Модель рассчитана на оборудование, где важны предсказуемые задержки, большое число прямых подключений к периферии и достаточно высокая целочисленная производительность. В таких системах дополнительный кэш данных и аппаратный умножитель дают практический эффект в сетевых протоколах, растровой обработке, управлении буферами и вычислительных циклах.

AMD Am29245

Am29245 занимает другую точку в линейке: он имеет 4-Кбайтный кэш инструкций, не использует отдельный кэш данных и не содержит аппаратного умножителя уровня Am29240. Взамен сохраняется развитая системная интеграция и большая корпусная разводка для периферии. В 16-МГц вариантах он рассчитан на задачи, где объём ввода-вывода и удобство подключения важнее пикового числа арифметических операций.

Различия Am29240, Am29243 и Am29245 показывают, что AMD не строила микроконтроллерную ветвь как простую лестницу частот. Каждая микросхема балансировала кэши, MMU, умножение, количество выводов и периферию под разные классы устройств. Поэтому замена одного Am292xx другим требует переработки платы и прошивки, даже при общем происхождении процессорного ядра.

Системные микросхемы 29K, которые не являются отдельными CPU

В каталогах ретрокомпонентов рядом с Am29000 встречаются номера Am29027, Am29041 и Am29062. Их нельзя добавлять в список центральных моделей как самостоятельные процессоры общего назначения. Это вспомогательные компоненты платформы, предназначенные для расширения возможностей системы на базе 29K.

  • Am29027 — арифметический ускоритель операций с плавающей точкой для ранних систем 29K. Он применялся рядом с Am29000 на платах, которым требовались численные вычисления; частотные варианты включали 16, 20 и 25 МГц.
  • Am29041 — контроллер передачи данных, дополняющий процессор в системах с интенсивным обменом между памятью и периферией.
  • Am29062 — интегрированный кэш-компонент с 8 Кбайт RAM, предназначенный для построения более производительной внешней подсистемы памяти.

Рядом в общей номенклатуре AMD существовали Am29323, Am29331, Am29334, Am29360 и Am29368 — параллельный умножитель, микропрограммный секвенсор, многопортовый регистровый файл, блок коррекции ошибок и контроллер динамической памяти. Эти изделия относятся к системным building-block-компонентам AMD и не являются процессорами 29K. Совпадение первых цифр 29 не означает принадлежность к одной архитектуре: семейство Am2900 bit-slice, Am29300 и 29K имеют разные задачи и внутреннюю организацию.

Частоты, корпуса и основные исполнения

Для ремонта и коллекционирования полезно различать архитектурное имя и конкретный part number. В обозначении AMD частотный суффикс показывает скоростную градацию, а буквенные символы указывают корпусное и производственное исполнение. В реальных устройствах встречаются керамические PGA, пластиковые или керамические quad-flat корпуса и варианты, рассчитанные на разные температурные диапазоны.

СерияИзвестные штатные частотыКорпусные варианты семействаПитание поколения
Am2900016, 20, 25, 33 МГц169-lead PGA, 168-lead PQFP5 В
Am2900516 МГц168-lead PQFP5 В
Am2903025, 33 МГц145-lead PGA, 144-lead ceramic quad flat5 В
Am2903516 МГц144-lead ceramic quad flat5 В
Am2904033, 40, 50 МГц145-lead PGA, 144-lead PQFP3,3 В, 5-В совместимые I/O
Am2905020, 25, 33, 40 МГц169-lead PGA5 В
Am2920016, 20 МГц168-lead PQFP5 В
Am2920212, 16, 20 МГц132-lead PQFP5 В
Am2920512, 16 МГц100-lead PQFP5 В
Am2924020, 25, 33 МГц196-lead PQFP; EH — 208-lead PQFP5 В; EH — 3,3 В с 5-В tolerant I/O
Am2924516 МГц196-lead PQFP; EH — 208-lead PQFP5 В; EH — 3,3 В с 5-В tolerant I/O

Номинальная частота 29K не является самостоятельным показателем быстродействия. Am29040 на 33 МГц располагает отдельными кэшами и аппаратным умножителем, поэтому отличается от Am29000 на близкой частоте значительно сильнее, чем следует из одной цифры МГц. Am29050 на 40 МГц, напротив, выигрывает в задачах с плавающей точкой благодаря FPU, хотя не имеет встроенных I/D-кэшей Am29040. Микроконтроллеры Am292xx работают на меньших частотах, но компенсируют это непосредственным доступом ядра к интегрированным периферийным блокам.

Производительность AMD 29K: MIPS, VAX MIPS и MFLOPS

Для 29K доступны главным образом метрики своего времени. Производитель публиковал sustained MIPS, VAX MIPS и пиковые MFLOPS, а отраслевые издания сравнивали отдельные embedded-модели по Dhrystone-подобным показателям. Эти числа нельзя напрямую сопоставлять с результатами современных Geekbench, SPEC CPU или игровыми кадрами в секунду. Они отражают разные тестовые программы, компиляторы, подсистемы памяти и определения единицы производительности.

ПроцессорЧастотаПериодный показательЧто характеризует
Am2900516 МГц9 sustained MIPSЦелочисленная производительность упрощённого ядра
Am2900033 МГц23 sustained MIPSЦелочисленная производительность исходной трёхшинной модели
Am2903516 МГц12 sustained MIPSРабота двухшинного ядра с 4-Кбайтным I-cache
Am2903033 МГц26 sustained MIPSРабота двухшинного ядра с 8-Кбайтным I-cache
Am2904050 МГц66,8 VAX MIPSСтаршая целочисленная модель с I/D-кэшами и быстрым умножением
Am2905040 МГц55 sustained MIPSЦелочисленная часть высокопроизводительной трёхшинной модели
Am29050 FPU40 МГцдо 80 peak MFLOPSПиковая скорость плавающей точки при подходящем потоке операций
Am2920220 МГцоколо 16 VAX MIPSИнтегрированный микроконтроллер
Am2924033 МГцоколо 26 MIPS в периодном сравненииПримерно две трети от приводившихся 39 MIPS PowerPC 403

Внутрисемейное сравнение показывает три разных способа роста скорости. Первый — повышение частоты от ранних 16–33 МГц к 40–50 МГц. Второй — сокращение задержек памяти благодаря кэшам Am29030/35/40. Третий — добавление специализированной арифметики: FPU в Am29050 и аппаратного целочисленного умножителя в Am29040/Am29240/Am29243. Поэтому выбор самой быстрой модели зависит от характера нагрузки.

В целочисленном коде со сравнительно небольшим рабочим набором Am29040 выигрывает от I/D-кэшей и более высокой частоты. В математическом коде с float/double Am29050 имеет принципиальное преимущество благодаря встроенной FPU. В контроллере, насыщенном обменом с портами и DMA, Am292xx выигрывает не столько в MIPS, сколько в меньшем числе внешних транзакций и более тесной связи ядра с периферией.

Практический тест графического ускорителя Apple

Одно из самых наглядных применений Am29000 — Macintosh Display Card 8·24 GC. Плата использовала Am29000 примерно на 30 МГц, локальную SRAM, 2 Мбайт видеопамяти и дополнительную память для выполнения графических операций. Процессор брал на себя часть QuickDraw-работы, разгружая основной Motorola 68030 компьютера.

Материалы разработчиков и профильная пресса приводили ускорение отдельных QuickDraw-команд в диапазоне примерно от 5 до 30 раз по сравнению с выполнением тех же примитивов центральным процессором без такого ускорения. В независимых прикладных тестах прирост общей графической производительности был заметно скромнее, поскольку не вся работа переносилась на Am29000. В одном из наборов тестов выигрыш составлял порядка 67–70% для ускоряемых сценариев. Эта разница между микробенчмарком и полной задачей хорошо показывает реальную роль 29K на сопроцессорной плате.

СценарийРезультат периодаИнтерпретация
Отдельные ускоренные QuickDraw-команды на Display Card 8·24 GCпримерно 5–30× быстрееВыполняется та часть графики, которую плата принимает на локальный Am29000
Комплексные прикладные графические тесты с 8·24 GCпримерно +67–70%Общая задача содержит как ускоряемые, так и неускоряемые участки

Для 29K это более содержательный пример, чем попытка построить современный игровой тест. Am29000 выступает самостоятельным вычислителем рядом с основным CPU, получает собственную локальную память и ускоряет конкретный API. Современные GPU работают совершенно иначе, но принцип переноса подходящей нагрузки на специализированный процессор остаётся узнаваемым.

Оценки профильных изданий и место 29K среди embedded-процессоров

В марте 1987 года Computerworld освещал анонс Am29000 как появление 32-битного RISC-процессора с заявленной производительностью порядка 17 MIPS для ранней конфигурации. В контексте того времени это ставило новый чип AMD в группу очень быстрых однокристальных процессоров и делало производительность главным элементом его рыночного позиционирования.

В 1988 году Electronics рассматривал Am29000 в широкой конкурентной борьбе RISC-процессоров, где технические показатели тесно переплетались с наличием инструментов, операционных систем, плат и поддержкой производителей. Такой взгляд важен: архитектура 29K была сильной, но коммерческий успех embedded-процессора определялся не только скоростью выполнения инструкций. Заказчику требовались компилятор, отладчик, эмулятор, RTOS, образцы плат и долгосрочная поставка.

Microprocessor Report в обзоре высокопроизводительных embedded-процессоров за 1993 год ставил семейства Intel i960 и AMD 29000 в число доминирующих участников верхнего сегмента встроенного рынка. Intel при этом имела очень сильные объёмы за счёт крупных дизайн-побед, включая принтерную технику, а AMD сохраняла заметное положение за счёт широкого набора 29K-решений.

В 1994 году то же издание сравнивало новое поколение embedded PowerPC с существующими конкурентами. Am29240 был близок PowerPC 403 по набору системных функций, но при максимальных 33 МГц показывал примерно две трети от приведённых 39 MIPS PowerPC 403. Вердикт отражает переход рынка: 29K оставалась зрелой и функциональной платформой, однако новые embedded-ядра на более свежих техпроцессах уже предлагали более высокий уровень эффективности.

Публикации о Macintosh Display Card 8·24 GC и RISC-ускорителях YARC показывали другую сторону 29K. Там процессор воспринимался не как контроллер принтера, а как мощный вычислительный сопроцессор. Платы NuSuper и AT-Super на Am29000 с Am29027, а затем MacRageous на Am29050 стремились приблизить персональный компьютер к производительности тогдашних RISC-станций в подходящих вычислительных задачах. Высокая цена подобных решений ограничивала массовость, но подтверждала серьёзный вычислительный потенциал архитектуры.

Где реально использовались AMD Am29000 и другие 29K

Лазерные и цветные принтеры

Принтеры стали одной из самых характерных областей 29K. Контроллер лазерного принтера выполняет намного больше работы, чем простой вывод байтов на механизм печати: он разбирает язык описания страниц, строит геометрию, преобразует шрифты, формирует растр высокого разрешения, управляет буферами и синхронизирует готовые данные с печатным трактом. Большой регистровый файл и высокая целочисленная скорость хорошо подходили для такого потока.

Семейство использовалось в нескольких поколениях HP Color LaserJet. В ранних моделях встречался Am29030, а в последующих — Am29040. Переход к Am29040 логичен с точки зрения нагрузки цветной печати: отдельный кэш данных и аппаратное умножение уменьшают задержки при обработке растров, цветовых преобразованиях и работе с буферами. Am29205 также находил применение в принтерной технике благодаря встроенной периферии.

Apple Macintosh Display Card 8·24 GC

Apple встроила 29K в графическую плату высокого класса Macintosh Display Card 8·24 GC. На плате использовался Am29000 с локальной памятью, а прошивка и программное обеспечение передавали процессору часть операций Color QuickDraw. Плата отличалась от обычного кадрового буфера тем, что содержала собственный программируемый RISC-процессор.

Эта система хорошо иллюстрирует архитектурную гибкость Am29000. Один и тот же тип ядра работал и как принтерный контроллер, и как графический сопроцессор. Для графической платы не требовалась совместимость с x86 или Motorola 68k на уровне приложений: хост-компьютер общался с ускорителем через драйвер и команды высокого уровня, а локальная программа 29K выполняла свою часть конвейера.

RISC-ускорители YARC

Компания YARC Systems выпускала платы NuSuper для Macintosh II и AT-Super для IBM PC-совместимых систем. Ранние варианты сочетали Am29000 и Am29027, то есть целочисленное 29K-ядро и отдельный ускоритель плавающей точки. Позднее MacRageous использовал Am29050 со встроенной FPU. Архитектура платы превращала обычный персональный компьютер в хост для отдельного RISC-вычислителя.

Такие ускорители применялись для инженерного и численного кода, а не для запуска обычных программ хоста быстрее без изменений. Программное обеспечение должно было передать вычислительное ядро на сопроцессор. В публикациях того времени производительность подходящих задач сравнивалась с RISC-рабочими станциями уровня DECstation 3100. Цена AT-Super находилась примерно на уровне 4600 долларов, поэтому это был профессиональный, а не массовый аксессуар.

X-терминалы, графика и распознавание изображений

Am29000 и Am29030 попадали в X-терминалы, графические контроллеры и устройства распознавания. X-терминал должен обрабатывать сетевой протокол, команды оконной системы, операции рисования и локальный ввод-вывод, оставаясь дешевле полноценной UNIX-станции. 32-битное RISC-ядро с большим регистровым файлом подходило для такой программно насыщенной, но специализированной системы.

Сканеры и OCR-решения выигрывали от высокой скорости обработки массивов байтов, таблиц и геометрии. В Am29040 аппаратное умножение и кэш данных дополнительно ускоряли подобные алгоритмы. В Am29050 FPU открывала более тяжёлые численные варианты обработки, хотя стоимость и требования к плате делали его выбором для верхнего сегмента.

Сетевое оборудование, RAID и телекоммуникации

Поздний Am29040 проектировался с прямым расчётом на сетевые и дисковые контроллеры. Поддержка burst-доступов, кэширования, паритета, многопроцессорной работы и гибкой системной шины полезна в интеллектуальных концентраторах, мостах и RAID-контроллерах. Здесь процессор управляет очередями, таблицами, контрольными структурами и потоками DMA, а не обслуживает интерактивный рабочий стол.

Телекоммуникационные контроллеры и PBX предъявляют требования к предсказуемому отклику и обработке большого числа небольших событий. Статическое ядро, аппаратные прерывания, таймеры, быстрые регистровые операции и отсутствие сложной настольной платформы соответствовали этим условиям. Микроконтроллеры Am292xx развивали тот же подход, интегрируя ещё больше периферии на кристалл.

Программная экосистема: компиляторы, отладка и RTOS

Сильная сторона 29K заключалась не только в кремнии. AMD развивала полноценный комплект инструментов, потому что embedded-разработчику требуется кросс-компиляция на рабочей станции, загрузка кода в целевую плату, наблюдение за регистрами и памятью, трассировка, профилирование и отладка без обычной консоли.

Комплект High C 29K включал оптимизирующий C-компилятор, рассчитанный на регистровую модель архитектуры. Ассемблер, линкер, библиотеки и симулятор формировали исполняемый код и позволяли проверять программы до готовности аппаратуры. Формат объектных файлов основывался на COFF с расширениями для 29K, что упрощало передачу символов и отладочной информации между инструментами.

XRAY29K служил интерактивным отладчиком. Он работал с аппаратными средствами остановки и трассировки, позволял изучать регистры и память, ставить точки останова и управлять выполнением. MiniMON29K представлял компактный монитор для целевой системы. Host Interface обеспечивал стандартный набор сервисов между программой на 29K и хостом разработки, а Universal Debugger Interface унифицировал связь отладчика с симулятором, монитором или внутрисхемным эмулятором.

Экосистема Fusion29K объединяла сторонних производителей RTOS, компиляторов, эмуляторов, плат и прикладных библиотек. Для встроенной архитектуры это было критично: заказчик выбирал процессор не как отдельную микросхему, а как платформу разработки. Наличие RTOS давало планировщик, таймеры, межзадачное взаимодействие, драйверы и сетевые стеки, а аппаратный JTAG поздних моделей упрощал серийное тестирование платы.

Архитектурная документация также уделяла большое внимание программным соглашениям: использованию глобальных и локальных регистров, стеку процедур, обработке переполнения регистрового файла, исключениям, трансляции страниц, соглашениям вызова и представлению данных. Без этого преимущества 192-регистровой схемы остались бы недоступными компиляторам.

Сравнение моделей внутри 29K

ЗадачаНаиболее подходящая ветвь 29KПричина
Минимальная стоимость простого 32-битного контроллераAm29005Упрощение за счёт отсутствия MMU и BTC
Классическая 29K-система с виртуальной памятьюAm2900064-записная MMU, BTC и трёхшинная организация
Встроенная система с локальным кэшем инструкцийAm290308-Кбайтный I-cache, JTAG, более простой двухшинный интерфейс
Более экономичная версия двухшинного ядраAm290354-Кбайтный I-cache и 16-МГц частота
Максимальная целочисленная производительность с I/D-кэшамиAm29040До 50 МГц, 8+4 Кбайт кэша, аппаратный умножитель, улучшенная MMU
Плавающая точка и численные ускорителиAm29050Встроенная FPU с высокой пиковой FP-производительностью
Интегрированный принтерный/периферийный контроллерAm29200/202/205Контроллеры памяти, DMA и много I/O на кристалле
Интегрированный контроллер с кэшами и аппаратным умножениемAm29240/243I/D-кэши, multiply и встроенная периферия

Внутренняя линейка не сводится к последовательности Am29000 → Am29030 → Am29040 → Am29050. Am29050 появился как мощное развитие трёхшинной архитектуры с FPU, тогда как Am29040 представляет другую ветвь с двухшинным интерфейсом и I/D-кэшами. По этой причине номер модели не задаёт простую хронологическую иерархию функций.

Для старого оборудования главным критерием остаётся совместимость платы. Am29050 сохраняет важную преемственность с Am29000/29005 на уровне шины и программной среды, а Am29040 связан с Am29030/29035. Микроконтроллеры Am292xx имеют собственные корпуса и периферию и не предназначены для механической замены дискретных Am290xx.

Конкуренты AMD 29K: Intel i960, MIPS, SPARC, Motorola и PowerPC

Intel i960

Самый прямой конкурент 29K на embedded-рынке — Intel i960. Обе архитектуры развивались как 32-битные RISC-решения для контроллеров, сетевого оборудования, принтеров и другой высокопроизводительной встраиваемой техники. i960 получила сильные позиции в хранении данных, коммуникациях и печати, а наличие множества вариантов позволяло Intel охватывать широкий ценовой диапазон.

29K отличалась большим регистровым файлом с переменными окнами и собственным подходом к ветвлениям и памяти. i960 имела другую программную модель и другое семейство системных интеграций. Периодная конкуренция шла не только между ядрами: важными были инструменты, долгосрочные контракты, цена платы, наличие периферии и конкретные дизайн-победы.

MIPS R2000/R3000 и производные

MIPS R2000 и R3000 представляли ещё одну влиятельную 32-битную RISC-школу. Они широко применялись в рабочих станциях и затем породили множество embedded-направлений. В сравнении с 29K архитектура MIPS использует более традиционный небольшой набор архитектурных регистров и не применяет регистровые окна 29K. Обе школы делают ставку на load/store, простое декодирование и активную роль компилятора.

Для универсальной UNIX-станции экосистема MIPS стала заметно шире. Для принтерного или специализированного контроллера 29K оставалась сильным выбором благодаря системным вариантам и инструментам AMD. Эти платформы нельзя сводить к одной цифре MIPS: реальные изделия отличались кэшами, памятью, периферией и программным стеком.

SPARC

SPARC также восходит к идеям Berkeley RISC и поэтому особенно интересна архитектурно. Обе платформы используют регистровые окна, но 29K сделала размер локального окна переменным, тогда как классическая SPARC известна фиксированной оконной организацией. AMD стремилась расходовать регистры пропорционально потребностям конкретной процедуры.

Рыночное назначение при этом расходилось. SPARC стала прежде всего архитектурой рабочих станций и серверов Sun и совместимых систем, а 29K закрепилась преимущественно во встроенной технике. Сходство идей не означает двоичную совместимость или взаимозаменяемость оборудования.

Motorola 68020/68030 и 88000

Motorola 68020 и 68030 — 32-битные CISC-процессоры, широко использовавшиеся в компьютерах, промышленной технике и контроллерах. Am29000 конкурировал с ними в части embedded-проектов по производительности и стоимости вычислительного ядра. При одинаковой частоте архитектуры выполняют совершенно разные наборы команд, поэтому результат определяет компилятор и тип нагрузки.

Motorola 88000 была отдельной RISC-линейкой с более прямой ориентацией на рабочие станции и многопроцессорные системы. Она представляла альтернативный путь развития 32-битного RISC, но получила иную экосистему и меньшую связь с массовыми принтерными контроллерами, где 29K была особенно заметна.

IBM PowerPC 403 и embedded PowerPC

К середине 1990-х серьёзным конкурентом для интегрированных Am292xx стал embedded PowerPC. PowerPC 403 нацеливался на контроллеры и сетевое оборудование, сочетая RISC-ядро с системными функциями. Периодное сравнение с Am29240 показывало преимущество нового PowerPC по производительности на сопоставимой частоте.

Эта конкуренция совпала с моментом, когда AMD переносила основной инженерный фокус на x86. Поэтому 29K не получила следующего массового поколения, которое ответило бы на PowerPC повышением частоты, более глубокой суперскалярностью и новыми техпроцессами.

Аналоги среди Intel Xeon и почему прямого соответствия нет

Прямого аналога AMD 29K среди Intel Xeon нет. Первые Xeon появились позже и относятся к x86-серверной и рабочестанционной платформе с иной системой команд, иной моделью памяти, стандартными серверными наборами микросхем и многократно большей программной экосистемой. Am29000 создавался для embedded-контроллеров и сопроцессорных плат, а не для сокетного сервера общего назначения.

По функциональной роли современные Xeon D ближе всего к части поздних применений 29K: сетевым устройствам, edge-серверам, системам хранения и телекоммуникационным платформам, где процессор интегрируется в специализированный аппаратный комплекс. Это сходство относится только к классу изделия. Xeon D исполняет x86-64, работает с современной памятью и виртуализацией и находится в совершенно другом диапазоне производительности, энергопотребления и интеграции.

Для исторического сравнения правильнее ставить 29K рядом с Intel i960, а не с Xeon. i960 создавалась в ту же эпоху и боролась за те же embedded-проекты. Xeon полезен лишь как современная точка отсчёта, показывающая, насколько позже серверный рынок стандартизировался вокруг универсальных процессоров и богатой программной инфраструктуры.

Игровые сборки, серверы и разгон: применимость к 29K

AMD 29K не является платформой для игровых сборок. У процессоров нет x86-совместимости, стандартных материнских плат ATX, BIOS/UEFI для обычного ПК, потребительских видеокарт как части типовой платформы и набора современных операционных систем. Игры для DOS, Windows и современных ОС рассчитаны на другие архитектуры. Наличие Am29000 на графической карте Apple 8·24 GC не превращает его в игровой CPU: на этой плате 29K выполняет специализированный графический код как сопроцессор.

Стандартной серверной сборки на 29K также нет. Архитектура применялась в X-терминалах, сетевых устройствах, контроллерах и специализированных вычислительных платах, а Am29040 получил функции многопроцессорной работы. Это embedded-системы, а не серверная платформа с обычными дисковыми контроллерами, DIMM, PCIe и серверной ОС современного типа. Сборка «сервер на Am29000» из доступных сегодня комплектующих не относится к практическому применению семейства.

Потребительский разгон для 29K не сформировался. Штатные частоты задавались конкретным скоростным исполнением микросхемы и временными параметрами внешней памяти. Scalable Clocking у Am29030/29040 и внутреннее деление/умножение тактового сигнала являются предусмотренными режимами системного проектирования. Они используются для согласования ядра и памяти в рамках спецификации, а не для нештатного повышения частоты коллекционного процессора.

Ремонтной плате с 29K требуется соблюдение штатного генератора, напряжений, задержек памяти и логических уровней. Повышение частоты старой микросхемы увеличивает риск ошибок шины и повреждения редкой платы и не имеет практической ценности. Исторически производительность увеличивали переходом на более скоростной индекс либо на более новую модель семейства.

Сильные и слабые стороны AMD Am29000 RISC Family

Плюсы

  • Большой 192-регистровый файл, хорошо приспособленный к коду компиляторов и частым вызовам процедур.
  • Переменные окна локальных регистров расходуют регистровый стек гибче фиксированных окон ранних RISC.
  • 32-битная load/store-архитектура и трёхадресные инструкции дают регулярную модель для оптимизирующего компилятора.
  • Широкая линейка: от упрощённого Am29005 до Am29050 с FPU и Am29040 с I/D-кэшами.
  • Высокая для своего времени целочисленная производительность и сильные показатели встроенной плавающей точки у Am29050.
  • Am29030/35/40 уменьшают зависимость от внешней памяти благодаря встроенному кэшу инструкций, а Am29040 добавляет кэш данных.
  • Микроконтроллеры Am292xx интегрируют память, DMA и периферийные интерфейсы, сокращая число внешних компонентов.
  • Развитая экосистема компиляторов, отладчиков, мониторов, эмуляторов и RTOS.
  • Практически подтверждённое применение в принтерах, графических ускорителях, сетевом оборудовании и специализированных контроллерах.
  • Поздние модели получили JTAG, режимы энергосбережения, аппаратное умножение, улучшенную MMU и функции многопроцессорной работы.

Минусы

  • Отсутствие x86-совместимости исключило использование обычного программного обеспечения IBM PC и Windows.
  • Трёхшинные Am29000/29005/29050 требуют сложной разводки и большого числа внешних соединений.
  • Ранние модели не имеют традиционного встроенного L1-кэша; Am29000 опирается на BTC и скорость внешней памяти.
  • Полноценная FPU встроена только в Am29050; ранним вычислительным системам требовался отдельный Am29027.
  • Am29005 лишён MMU и BTC, поэтому экономия сопровождается заметным сокращением системных возможностей.
  • Большой регистровый стек требует корректной программной поддержки spill/fill и хорошего соглашения вызовов.
  • Внутри семейства несколько разных шинных и корпусных ветвей, поэтому модели не являются универсально взаимозаменяемыми.
  • AMD прекратила развитие самостоятельной архитектуры, и долгосрочная программная экосистема уступила MIPS, ARM, PowerPC и x86.
  • Сегодня новые серийные поставки отсутствуют, а ремонт зависит от редких складских остатков и донорских плат.
  • Современные инструменты и ОС не поддерживают 29K как массовую целевую платформу.

Почему 29K была особенно удобна для компиляторов

Большинство RISC-процессоров конца 1980-х стремились упростить аппаратное декодирование и переложить планирование на компилятор. В 29K этот принцип выражен особенно ярко. Трёхадресная инструкция уменьшает разрушительные операции вида «источник одновременно является назначением», а большое число регистров позволяет дольше держать промежуточные значения вне памяти.

Переменный регистровый стек тесно связан с соглашением вызовов. Компилятор заранее знает, сколько локальных значений и временных регистров требуется функции, и формирует соответствующую процедуру входа. Маленькая функция получает маленькое окно, большая — большее. При обычной глубине вызовов значительная часть параметров и локальных данных остаётся в процессоре.

Отсутствие единого регистра флагов также облегчает переупорядочивание. Сравнение записывает результат как обычное значение, поэтому следующая арифметическая команда не обязана сохранять скрытое состояние флагов. Это снижает число неочевидных зависимостей и делает поток более прозрачным для оптимизатора.

Архитектура предусматривает delayed branches и другие характерные для RISC того времени механизмы, позволяющие компилятору размещать полезную работу рядом с переходом. BTC ранних моделей и I-cache поздних уменьшают стоимость изменения потока. В сумме 29K представляет процессор, где качество компилятора является частью общей производительности системы, а не внешним дополнением.

Подсистема плавающей точки Am29050

FPU Am29050 заслуживает отдельного рассмотрения, поскольку именно она отличает процессор от большинства других 29K. Блок поддерживает форматы одинарной и двойной точности IEEE, арифметические операции, преобразования и накопление результатов. Пиковый показатель 80 MFLOPS на 40 МГц связан с конвейерной организацией и операциями, которые объединяют умножение и сложение.

Четыре регистра двойной точности используются как аккумуляторы для последовательностей multiply-accumulate и multiply-add. Такой режим особенно полезен в линейной алгебре, фильтрах, преобразованиях и графике. Данные остаются внутри вычислительного тракта, а число промежуточных записей в общий регистровый файл уменьшается.

Параллельное завершение целочисленной и FP-операции помогает циклам, где целочисленное ядро обновляет адреса и счётчики, пока FPU обрабатывает значения. Этот механизм не равен многокомандной суперскалярной выдаче, но даёт реальный двухпоточный эффект между разными исполнительными доменами.

Именно Am29050 стал естественной основой поздних RISC-сопроцессорных плат. В ранней системе Am29000 + Am29027 вычисления с плавающей точкой проходили через отдельную микросхему. Am29050 переносит FPU на тот же кристалл, сокращает задержки интерфейса и упрощает плату, сохраняя сильную целочисленную часть.

Am29040 как наиболее современная целочисленная реализация 29K

Am29040 показывает, как архитектура изменилась под требования середины 1990-х. Внешняя память уже не должна каждый раз снабжать ядро инструкцией и данными: 8-Кбайтный I-cache и 4-Кбайтный D-cache удерживают рабочие наборы на кристалле. Двухканальная ассоциативность снижает число конфликтов по сравнению с простым direct-mapped-кэшем.

Двухтактное 32-битное умножение важно не только для математики. Адресные вычисления, масштабирование координат, контрольные алгоритмы, обработка пакетов и растровые операции часто содержат целочисленные произведения. Трёхтактный MAC ещё ближе к задачам цифровой обработки сигналов.

Управление кэшем на уровне страниц помогает сочетать обычную память с областями ввода-вывода и DMA. Для memory-mapped-периферии кэширование нежелательно, тогда как рабочие массивы получают выигрыш от D-cache. Паритет инструкций и данных повышает обнаруживаемость ошибок в системах, где корректность важнее чистой скорости.

Средства многопроцессорной работы и сигналы согласования шины расширяют область применения на сложные контроллеры. Режимы Snooze и Sleep отвечают потребностям устройств с периодическими пиками активности. Переход на 3,3 В сокращает динамическое потребление по сравнению с 5-В ранними моделями, сохраняя совместимость внешних сигналов с распространённой периферией.

Память, кэширование и влияние внешней системы на скорость

Для ранних 29K производительность платы определяется памятью сильнее, чем у современных CPU с крупными многоуровневыми кэшами. Am29000 умеет быстро выполнять инструкции, но пропускная способность внешних трактов и задержки DRAM/ROM напрямую влияют на заполнение конвейера. BTC помогает только в районе переходов и не заменяет обычное кэширование произвольного последовательного кода и данных.

Поэтому разработчики строили платы с быстрым SRAM, интерливингом банков и контроллерами, способными использовать burst-последовательности. В Apple 8·24 GC локальная SRAM рядом с Am29000 была важной частью графического ускорителя. В YARC-платах локальная память также изолировала сопроцессор от медленной системной шины хост-компьютера.

Am29030 и Am29035 уменьшают чувствительность потока команд к внешней памяти за счёт I-cache. Разница 8 Кбайт против 4 Кбайт особенно заметна в программах с более крупным горячим кодом. Am29040 идёт дальше и кэширует данные, поэтому циклы над небольшими рабочими массивами реже ждут внешний обмен.

Am29050 остаётся без традиционного I/D L1, но использует увеличенный BTC и улучшенные механизмы загрузки. Такая архитектура сильна в системах, где внешняя память спроектирована под высокую пропускную способность. Отсюда важный практический вывод для исторических сравнений: два устройства с одинаковым Am29050 демонстрируют разные результаты из-за различий локальной SRAM, контроллера и программной организации данных.

Совместимость, порядок байтов и перенос программ

29K имеет единую базовую систему команд, благодаря чему код переносится между многими моделями после учёта доступных блоков. Программа, не использующая FPU Am29050 или специальные функции Am29040, переносится значительно проще, чем вся аппаратная система. На уровне платы совместимость ограничена двумя основными шинными ветвями и различиями микроконтроллеров.

Поздние двухшинные модели поддерживают работу внешней памяти в big-endian и little-endian представлении через системные режимы. Это облегчает интеграцию с периферией и форматами данных, происходящими из разных архитектур. Внутренние специальные регистры и системная логика имеют строго определённое представление, поэтому прошивка должна соблюдать правила конкретной модели.

Двоичный перенос также зависит от соглашения вызовов, системных обработчиков и MMU. Общий 29K-код переносится между совместимыми моделями, но загрузчик, обработчик TLB, драйвер памяти и низкоуровневая инициализация привязаны к системной плате. Именно поэтому архивный бинарный файл без описания аппаратуры недостаточен для запуска на произвольной 29K-плате.

Разработка платы на 29K в историческом контексте

Типичная система на Am29000 состоит из процессора, генератора тактов, ROM с загрузчиком и основной программой, RAM, логики выбора устройств, периферийных контроллеров и отладочного интерфейса. Трёхшинная организация требует отдельно разводить адреса, инструкции и данные, а временные параметры памяти согласовываются с частотой конкретного процессора.

Am29030/35 упрощают схему благодаря объединённому тракту инструкций и данных и встроенному I-cache. Am29040 дополнительно сокращает требования к быстродействию внешней памяти за счёт D-cache и даёт системному разработчику больше средств управления шиной. Am292xx идёт ещё дальше: многие функции памяти и периферии находятся внутри корпуса, что сокращает число внешних логических микросхем.

При этом embedded-плата всегда остаётся специализированной. Нельзя заменить ROM от одного принтера ROM другого устройства только из-за одинакового процессора. Адресные карты, порты, DMA, формат флеш-памяти, механизмы печати и инициализация отличаются. 29K предоставляет вычислительное ядро и общую архитектуру, а конечный продукт формирует производитель оборудования.

Отмена следующего поколения и переход инженерных ресурсов к x86

AMD прорабатывала более производительное развитие 29K с более широкой выдачей инструкций, спекулятивным выполнением, более крупными встроенными кэшами и существенно более высокой целевой частотой. Проект не дошёл до серийного продукта. В середине 1990-х компания сосредоточила ресурсы на собственном x86-процессоре K5, который имел намного больший коммерческий рынок персональных компьютеров.

Переход не означает, что 29K просто исчезла без наследия. Команда получила опыт проектирования RISC-конвейеров, больших регистровых файлов, оптимизирующих компиляторов и высокопроизводительной FPU. Часть инженерных подходов и схемных решений использовалась при создании K5. Сам K5 исполняет x86-программы и является другой архитектурой на уровне программной совместимости.

Рынок embedded-процессоров затем всё сильнее заполняли ARM, MIPS, PowerPC и специализированные варианты x86. Эти семейства получили долгую цепочку последующих поколений. 29K осталась законченной исторической платформой, привязанной к оборудованию, которое уже было спроектировано вокруг неё.

Актуальность AMD 29K сегодня

В 2026 году 29K актуальна в трёх практических областях: восстановление исторической электроники, коллекционирование микропроцессоров и исследование истории архитектур. Для нового промышленного изделия семейство не используется: серийная поддержка AMD завершена, современные компоненты памяти и периферии рассчитаны на другие интерфейсы, а инструменты разработки требуют архивной среды.

В ремонте старого принтера, графической платы или промышленного контроллера оригинальный 29K остаётся незаменимым компонентом именно потому, что прошивка и электрическая схема созданы под него. Замена на современный процессор потребовала бы создания новой платы, написания совместимой низкоуровневой среды и переноса программного обеспечения, то есть фактически разработки нового устройства.

Для коллекционера интересны разные корпуса, частотные индексы, даты выпуска и маркировки. Am29000 в PGA наглядно демонстрирует раннюю RISC-эпоху, Am29050 интересен интегрированной FPU, Am29040 — переходом к 3,3 В и отдельным I/D-кэшам, а Am292xx — развитием процессорной архитектуры в полноценные микроконтроллеры.

На что смотреть при покупке коллекционного Am29000

Сначала проверяется полная маркировка. Надпись Am29000-20GC, Am29000-25GC или Am29050-40GC содержит больше информации, чем сокращённое название в объявлении. Частотный индекс должен совпадать с требованиями ремонтируемой платы. Корпус должен соответствовать посадочному месту и распиновке, а не только числу выводов.

У PGA осматривают ряды контактов: погнутые, обломанные и сильно окисленные выводы снижают ремонтную ценность. У PQFP важны все выводы по периметру и отсутствие следов перегрева корпуса. У бывших в употреблении микросхем встречаются следы флюса и пайки; они сами по себе подтверждают демонтаж, но не подтверждают работоспособность.

Маркировка должна выглядеть равномерной и соответствовать периоду производства. Для редких 29K особое значение имеет происхождение детали: складской остаток, демонтаж с рабочей платы или коллекционный экземпляр с известной историей дают больше информации, чем обезличенная микросхема без теста. Проверка в целевом оборудовании остаётся наиболее убедительным способом подтвердить работоспособность.

Для коллекции допустим нерабочий экземпляр с хорошо сохранившимся корпусом и маркировкой. Для ремонта требования противоположны: электрическая исправность важнее косметики. Эти два рынка нельзя смешивать при оценке цены старого процессора.

Итоговый рейтинг моделей по исторической значимости

МодельГлавная особенностьИсторическая роль
Am29000Исходная 32-битная RISC-архитектура, 192 регистра, MMU и BTCЗадал всю программную модель 29K и получил широкое embedded-применение
Am29005Упрощение без MMU и BTCПоказал масштабирование архитектуры вниз по стоимости
Am290308-Кбайтный I-cache и двухшинный интерфейсСделал 29K удобнее для интегрированных контроллеров и принтеров
Am290354-Кбайтный I-cache, 16 МГцЭкономичная версия двухшинной ветви
Am29040I/D-кэши, 50 МГц, аппаратное умножение, 3,3 ВНаиболее развитая целочисленная реализация 29K
Am29050Встроенная FPU, до 80 MFLOPS peakСамый сильный численный 29K и основа RISC-ускорителей
Am29200/202/205Интеграция контроллеров памяти и I/OПеренесли 29K в микроконтроллерные изделия
Am29240/243/245Кэши, TLB и разные уровни аппаратной арифметикиФинальный этап интеграции 29K в embedded-контроллеры

Итоговый вердикт по AMD Am29000 (29K) RISC Family

AMD Am29000 RISC Family — одна из наиболее интересных самостоятельных архитектур в истории компании. Она появилась в период бурного роста RISC и предложила сильную собственную трактовку регистровых окон: 192 регистра, переменный размер локальной области и программно управляемый стек процедур. Вместе с load/store-моделью, трёхадресными командами и продуманным механизмом переходов это дало основу, хорошо подходившую оптимизирующим компиляторам.

Семейство оказалось не единичным экспериментом, а полноценной продуктовой линией. Am29000 сформировал базу, Am29005 снизил стоимость, Am29030 и Am29035 добавили кэш инструкций, Am29050 интегрировал мощную FPU, а Am29040 вывел целочисленную ветвь на 50 МГц, получил два кэша, аппаратное умножение, современную для своего времени MMU и низковольтное питание. Am29200, Am29202, Am29205, Am29240, Am29243 и Am29245 показали, что то же ядро подходит для высокой системной интеграции.

Практическая ценность подтверждается реальными изделиями: цветными лазерными принтерами, графической картой Apple 8·24 GC, ускорителями YARC, X-терминалами, сетевыми устройствами, сканерами, RAID- и телекоммуникационными контроллерами. В этих системах 29K использовалась именно там, где требовалась высокая программируемая производительность без универсальной настольной платформы.

С точки зрения производительности Am29000 на 33 МГц давал 23 sustained MIPS, Am29030 — 26 MIPS, Am29040 достигал 66,8 VAX MIPS на 50 МГц, а Am29050 сочетал 55 sustained MIPS с пиком FPU до 80 MFLOPS на 40 МГц. Эти цифры относятся к методикам своего времени, но хорошо показывают масштаб эволюции внутри семейства.

Главный конкурентный контекст для 29K — Intel i960, MIPS, SPARC, Motorola 68k/88000 и позднее embedded PowerPC. Xeon не является прямым аналогом, а современная игровая или серверная сборка на 29K не имеет технического смысла. Сегодня процессоры интересны прежде всего как оригинальные детали для ремонта, коллекционные микросхемы и материал для изучения архитектуры.

Итоговая оценка серии высокая именно в историко-инженерном смысле. 29K сочетала необычно развитую регистровую модель, сильную для эпохи производительность, широкий ряд от CPU до микроконтроллеров и зрелый набор средств разработки. Коммерческий переход AMD к x86 остановил дальнейшее поколение архитектуры, но не отменил её вклад: 29K стала важным этапом между ранними RISC-идеями 1980-х и собственными высокопроизводительными ядрами AMD следующего десятилетия.