AMD Am29300 Bit-Slice — полный обзор 32-битного семейства микропрограммируемых процессорных блоков AMD

AMD Am29300 — необычная страница истории процессорной техники. Это не линейка готовых однокристальных центральных процессоров в современном понимании и не классический bit-slice набор, в котором несколько одинаковых 2- или 4-разрядных секций складываются в тракт нужной ширины. AMD сохранила главную идею микропрограммируемых конструкторов Am2900, но на следующем этапе перешла к горизонтальному функциональному разделению: арифметика, регистровая память, микропрограммное управление, плавающая точка, умножение и сервисные функции реализованы отдельными специализированными БИС, причем основные тракты сразу имеют ширину 32 бита. Поэтому систему на Am29300 проектировали как собственный процессор из готовых функциональных блоков, подбирая состав, микрокод, регистровую организацию и интерфейсы под конкретную задачу.

Такой подход был ориентирован на устройства, где фиксированная архитектура универсального микропроцессора ограничивала производительность или затрудняла реализацию специализированного потока данных. Семейство применяли и проектировали для графики, обработки изображений, телекоммуникационного оборудования, интеллектуальных контроллеров, лазерных принтеров, цифровой обработки сигналов, массивных вычислений, рабочих станций, отказоустойчивых машин и собственных RISC-подобных процессоров. Самая важная особенность Am29300 состоит именно в свободе построения архитектуры: разработчик получал 32-битные функциональные узлы, а не заранее заданный набор машинных команд.

Что такое AMD Am29300 Bit-Slice и почему это семейство устроено иначе

Название Bit-Slice по отношению к Am29300 требует пояснения. Предыдущее поколение Am2900 прославилось 4-битными секциями: несколько Am2901 можно было соединить параллельно и получить 8-, 16- или 32-битный тракт. В Am29300 AMD отказалась от вертикального наращивания основной арифметической секции. Am29332 уже содержит полноценное 32-битное АЛУ с внутренним сквозным формированием переносов, 64-битным funnel shifter, генератором масок и приоритетным кодировщиком. Отдельный Am29334 дает четырехпортовый регистровый файл, Am29331 управляет последовательностью микрокоманд, а Am29325 добавляет аппаратную плавающую арифметику. Получился набор модулей, из которых процессор собирается по функциям, а не по группам разрядов.

Это различие важно для понимания всей серии. У Am29300 нет единой частоты, объема кэша, сокета, числа ядер и TDP, которые можно было бы свести к одной строке характеристик. Производительность конечной машины зависит от состава микросхем, скорости управляющей памяти, ширины микрокоманды, числа регистровых файлов, режима работы арифметических ускорителей и качества микрокода. Сравнивать отдельный Am29332 с готовым 32-битным процессором так же некорректно, как сравнивать современный вычислительный блок с целой системой на кристалле. Корректное сравнение проводится либо на уровне конкретной собранной процессорной платы, либо по задержкам и функциям отдельных компонентов.

Где купить AMD Am29300 Bit-Slice: наличие и актуальные цены

Ноутбуков, массовых настольных ПК и готовых современных серверов на Am29300 не существовало: эти микросхемы предназначались для заказных плат, вычислительных ускорителей и специализированных процессорных подсистем. Поэтому искать «ноутбук с Am29332» или «сервер на Am29325» в современном магазине бессмысленно. При покупке на вторичном рынке важнее состояние выводов, точная маркировка, температурный класс, корпус, ревизия и возможность электрической проверки, чем косметический вид керамического корпуса.

Место Am29300 в развитии микропрограммируемых процессоров AMD

Am29300 выросло из опыта AMD с Am2900, но решало уже другую задачу. К середине 1980-х интеграция позволяла разместить на одном кристалле полноценный 32-битный тракт и функции, которые почти невозможно эффективно разбить на узкие секции. Внутренний carry look-ahead сокращал задержку арифметики; funnel shifter, приоритетный кодировщик и генератор масок выигрывали от того, что видели все 32 бита сразу. Отделение регистрового файла от АЛУ позволяло наращивать число регистров и число независимых трактов без жесткой привязки к структуре арифметического кристалла.

В результате AMD называла Am29300/29C300 семейством 32-битных высокопроизводительных микропрограммируемых building blocks. Биполярные Am293xx ориентировались на максимальную скорость, а CMOS Am29C3xx давали тот же архитектурный подход при меньшем энергопотреблении и с дальнейшим ростом быстродействия по мере совершенствования техпроцесса. В книге данных 1988 года обе ветви рассматриваются совместно, поэтому обзор Am29300 без Am29C300 был бы неполным.

Условие «серия процессоров» здесь следует понимать широко. Внутри семейства есть АЛУ, секвенсоры, регистровые файлы, плавающие процессоры, умножитель, контроллер границ и очередь байтов. Только их комбинация образует тот вычислительный процессор, который нужен разработчику. Это один из последних масштабных примеров эпохи, когда архитектуру центрального процессора реально собирали на плате из специализированных микросхем и описывали собственным микрокодом.

Полный состав семейства и основные модели

Наиболее надежный перечень дает числовой список устройств в фирменной книге данных Am29C300/29300 за 1988 год. В нем вместе перечислены биполярные Am293xx, CMOS Am29C3xx, ускоренные варианты и родственный ECL-регистровый файл Am29434. Ускоренные версии с суффиксами A, -1 и -2 не являются новыми архитектурами: они сохраняют назначение базового кристалла и отличаются скоростным отбором либо улучшенной реализацией.

МодельТехнологическая ветвьНазначениеОсновная роль
Am29331биполярная16-битный микропрограммный секвенсорформирование адресов микрокоманд, ветвления, стек, прерывания
Am29331Aбиполярная, ускореннаясеквенсорускоренный вариант Am29331
Am29C331CMOS16-битный микропрограммный секвенсорCMOS-реализация управляющего тракта
Am29C331-1CMOS speed selectсеквенсорповышенная скорость
Am29C331-2CMOS speed selectсеквенсорстарший скоростной вариант
Am29332биполярная32-битное арифметико-логическое устройствоосновной целочисленный тракт
Am29332Aбиполярная, ускоренная32-битное АЛУускоренный вариант Am29332
Am29C332CMOS32-битное АЛУCMOS-реализация основного тракта
Am29C332-1CMOS speed select32-битное АЛУповышенная скорость
Am29C332-2CMOS speed select32-битное АЛУстарший скоростной вариант
Am29334биполярная64×18 четырехпортовый регистровый файлдвойной независимый доступ к регистрам
Am29C334CMOS64×18 четырехпортовый регистровый файлCMOS-регистровая память
Am29C334-1CMOS speed select64×18 регистровый файлповышенная скорость
Am29C334-2CMOS speed select64×18 регистровый файлстарший скоростной вариант
Am29434ECLчетырехпортовый регистровый файлвысокоскоростная ECL-альтернатива регистровой памяти
Am29325биполярная32-битный процессор плавающей точкисложение, вычитание, умножение, преобразования форматов
Am29325Aбиполярная, ускоренная32-битный FPPускоренный вариант Am29325
Am29C325CMOS32-битный процессор плавающей точкиCMOS-версия вычислений single precision
Am29C325-1CMOS speed select32-битный FPPповышенная скорость
Am29C325-2CMOS speed select32-битный FPPстарший скоростной вариант
Am29C327CMOSдвухточный/двойной по точности FPPsingle, double и mixed precision, расширенный набор форматов
Am29C323CMOS32×32-битный параллельный умножительцелочисленное и многословное умножение
Am29C323-1CMOS speed select32×32-битный умножительповышенная скорость
Am29C323-2CMOS speed select32×32-битный умножительстарший скоростной вариант
Am29337биполярная16-битный bounds checkerаппаратная проверка попадания значения в диапазон
Am29338биполярная32-битная byte queueбуферизация, перестановка и согласование байтовых потоков

В ранних публикациях и сводных каталогах встречаются также Am29323 как биполярный 32×32-битный умножитель, обозначение Am29327, а среди вспомогательных устройств — Am29360 для контроля и коррекции ошибок и Am29368 как контроллер динамической памяти. В основной числовой номенклатуре книги данных 1988 года ядро поставляемой линейки уже сосредоточено на перечисленных выше Am29331/32/34/25/37/38 и CMOS Am29C331/332/334/323/325/327. Поэтому при коллекционировании необходимо различать ранние обозначения, устройства расширенной экосистемы и модели, присутствующие в основной производственной документации.

Am29332 и Am29C332: 32-битное АЛУ как центр целочисленной машины

Am29332 — самый наглядный пример новой философии AMD. Вместо нескольких узких секций разработчик получает один 32-битный вычислительный тракт. У кристалла два 32-битных входа A и B и отдельный 32-битный выход Y. Такая трехшинная организация повышает пропускную способность: два операнда можно подать одновременно, а результат вывести по независимому пути, не тратя часть такта на разворот двунаправленной шины. К этим же шинам можно параллельно подключать другие арифметические блоки.

Внутри находится 32-битное АЛУ с полным опережающим формированием переносов. Все основные инструкции рассчитаны на одинаковый короткий цикл, включая операции, которые в традиционной многокристальной логике часто требуют дополнительных стадий. Маска участвует как третий вход арифметико-логической структуры. Для byte-aligned операций поддерживаются 8-, 16-, 24- и 32-битные величины, выровненные по младшему разряду; логические операции над полями работают с произвольной длиной и начальной позицией.

64-битный funnel shifter объединяет два 32-битных слова или дублирует одно из них и извлекает любое непрерывное 32-битное окно. Это позволяет за один микротакт выполнять сдвиг на произвольное число разрядов, циклическое вращение, извлечение поля и логическую обработку невыровненных данных. Для графики, упаковки форматов, протокольных полей и преобразования битовых структур такая функция значительно полезнее простого barrel shifter.

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

Статусный регистр имеет ширину 32 бита и хранит позицию и ширину поля, стандартные флаги Carry, Negative, Overflow и Zero, признаки сравнений, link-бит многословных сдвигов, служебный признак для быстрых алгоритмов умножения и деления и промежуточные переносы для BCD-арифметики. Предусмотрены сохранение и восстановление статуса, а отдельная команда позволяет вывести выбранный бит статуса на Y-порт. Это облегчало построение стековых и нестандартных архитектур.

Само АЛУ не заменяет отдельный 32×32 умножитель, но содержит аппаратную поддержку последовательного умножения и деления. Модифицированный алгоритм Бута обрабатывает по два бита множителя за цикл, а четырехквадрантное невосстанавливающее деление — по одному биту за цикл. Набор микрокоманд дает операции первого, повторяющегося и последнего шага. Для коммерческой арифметики предусмотрена работа с упакованными BCD-значениями через двоичную операцию и последующую десятичную коррекцию.

Am29331 и Am29C331: микропрограммный секвенсор и управление

Am29331 формирует адреса микрокоманд и управляет тем, какая микрокоманда будет выполнена следующей. Его 16-битный адресный тракт охватывает до 64 К слов управляющей памяти. Для середины 1980-х это давало огромный простор: микрокод мог реализовать собственную ISA, эмуляцию существующей архитектуры, узкоспециализированный контроллер или аппаратно ускоренный алгоритм без изменения арифметических кристаллов.

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

Особое достоинство Am29331 — прозрачная обработка прерываний на границе микрокоманд. Адрес обработчика поступает через Y-порт, адрес возврата сохраняется в стеке. Кроме обычного механизма прерывания есть trap-подход: текущая микрокоманда прерывается, выполняется обработчик, после чего прерванная микрокоманда запускается заново. Для контроллеров реального времени и отказоустойчивых систем такая семантика давала точный контроль над моментом реакции.

Вывод HOLD позволяет построить систему из нескольких секвенсоров, подключенных к общей управляющей памяти, и переключать активный контекст без копирования всего состояния управляющей логики. Внутренний компаратор адреса сравнивает текущий адрес с регистром breakpoint, что удобно для аппаратной отладки и сбора статистики исполнения. Два отдельных входа адреса A и D уменьшают число внешних мультиплексоров: один путь можно использовать для branch/map-адресов, второй — для счетчика и операций со стеком.

Секвенсор имеет аппаратную multiway-логику. Четыре группы четырехбитных входов способны подменять младшие разряды адреса и выбирать одну из 16 соседних микрокоманд. Вместо последовательной проверки нескольких условий микрокод может выполнить многовариантный переход за один цикл. В связке с Am29332 это дает именно то, ради чего создавалась серия: мощный 32-битный тракт с управляющей логикой, не навязывающей одну архитектуру команд.

Am29334, Am29C334 и Am29434: регистровая подсистема

Отделение регистрового файла от АЛУ было принципиальным решением. Am29334 организован как 64 слова по 18 бит и имеет четыре порта: два для чтения и два для записи. Два независимых доступа к разным адресам возможны одновременно без типичного для простых двухпортовых решений ограничения «одно чтение плюс одна запись». Варианты read/read, write/write и read/write строятся непосредственно вокруг двух адресных трактов.

Ширина 18 бит выбрана не случайно. Один кристалл хранит два байта данных вместе с двумя разрядами четности. Два Am29334 образуют 64 регистра по 32 бита плюс четыре бита четности, то есть естественный регистровый файл для 32-битного процессора. При необходимости микросхемы каскадируются и по ширине, и по глубине. Такая организация позволяет строить машины с большим количеством регистров, несколькими банками или специальными регистрами без замены АЛУ.

Am29334 сам не вычисляет и не проверяет четность; это делает Am29332 на входах и выходе. Зато регистровая память сохраняет контрольные разряды вместе с данными, замыкая защищенный контур. CMOS Am29C334 воспроизводит ту же системную роль, а Am29434 представляет высокоскоростный ECL-вариант четырехпортового dual-access register file для проектов, где приоритетом была минимальная задержка.

Фирменные материалы указывают для Am29334 время доступа порядка 24 нс, достаточное для системного микротакта 80–90 нс. Эта цифра сама по себе не является частотой готового CPU: в реальной машине нужно учитывать управляющую память, декодирование микрокоманды, задержки межсоединений, АЛУ и требования установки/удержания. Важнее другое: регистровый файл был спроектирован так, чтобы не становиться узким местом относительно Am29331 и Am29332.

Am29325 и Am29C325: 32-битная плавающая точка за один цикл

Am29325 — специализированный single-precision floating-point processor. Он выполняет 32-битные сложение, вычитание и умножение в одном такте и поддерживает IEEE P754 draft 10.0 и формат DEC VAX. Архитектура не навязывает глубокий внутренний конвейер: входные и выходные регистры можно сделать прозрачными. Поэтому разработчик сам определяет, будет устройство частью синхронного конвейера, скалярным ускорителем или параллельным вычислительным узлом.

Как и Am29332, FPP использует три шины — два входа и один выход. Основной набор включает восемь операций: сложение, вычитание, умножение, вычисление 2−S, преобразование integer→floating point, floating point→integer, IEEE→DEC и DEC→IEEE. Операция 2−S добавлена не ради бытовой арифметики, а для итераций Ньютона–Рафсона, из которых строятся быстрое деление и другие функции.

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

CMOS Am29C325 получил программируемую организацию интерфейса. Поддерживаются два 32-битных входа и один 32-битный выход; один 32-битный вход и один 32-битный выход; либо два 16-битных входа и 16-битный выход. В узком режиме 32-битное слово передается частями, но внутренняя арифметика остается 32-битной. Это позволяло подключать FPP к разным системным шинам без внешнего широкого преобразователя.

Am29325 был не просто приложением к Am29332. Его можно использовать как самостоятельный вычислительный двигатель с простым секвенсором для итерационных алгоритмов, а несколько экземпляров — параллельно. Именно такая модульность привела к специализированным массивным процессорам, где целочисленный тракт управлял потоками данных, а несколько FPP одновременно выполняли арифметику.

Am29C327: расширенный FPP с двойной точностью

Am29C327 развивает плавающую ветвь значительно дальше Am29325. Это CMOS-устройство с внутренним 64-битным трактом и восьмью 64-битными регистрами, рассчитанное на single-, double- и mixed-precision вычисления. Поддерживаются форматы IEEE P754 версии 10.1, DEC F/D/G и IBM System/370, а также 32- и 64-битные целые данные. Преобразования между форматами выполняются аппаратно, что особенно ценно в системах, соединяющих несколько несовместимых вычислительных миров.

Устройство работает в flow-through или конвейерном режиме. В первом случае арифметический тракт используется как полностью комбинационный и удобен для скалярных операций. Для векторных потоков его можно разбить на одну или две конвейерные ступени. Такой выбор отражает общую идеологию серии: синхронизация и организация вычислений остаются в руках разработчика системы.

Восемь режимов ввода-вывода приспосабливают Am29C327 к 32- и 64-битным системам. Данные двойной точности передаются за один или два цикла, с выбором порядка старшего и младшего слова либо операндов R и S. Возможность загрузить два 64-битных операнда за цикл делает трехшинную организацию полезной не только теоретически: арифметический тракт получает достаточную внешнюю полосу данных.

Набор операций существенно шире базовой восьмерки Am29325. Он охватывает сложение и вычитание, умножение, multiply-accumulate, сравнение, минимум и максимум, насыщение и clipping, округление до целого, модуль и смену знака, начальное приближение к обратной величине, преобразования floating/floating, floating/integer и integer/integer, логические операции и передачу операнда. Трехвходовая арифметическая структура поддерживает форму (A×B)+C, что хорошо соответствует векторным и DSP-алгоритмам.

В технических описаниях Am29C327 фигурирует более четверти миллиона транзисторов и корпус PGA на 169 выводов. Для конца 1980-х это очень крупный вычислительный кристалл. Практическая ценность проявлялась в научных и сигнальных системах, где двойная точность или смешанные форматы были обязательны, а универсальный микропроцессор не обеспечивал нужной скорости.

Am29C323 и ранний Am29323: аппаратное 32×32-битное умножение

Для целочисленного умножения AMD выделила отдельный параллельный блок. В ранних материалах семейства описывался биполярный Am29323, а в книге 1988 года подробно документирован CMOS Am29C323 и его speed-select варианты. Am29C323 умножает два 32-битных операнда за один такт и имеет трехшинный интерфейс. На входах размещены регистры, а результат может браться из 67-битного регистра произведения, 32-битного временного регистра или непосредственно с массива умножения.

Главное достоинство — многословная арифметика. Кристалл умеет сдвигать и накапливать частичные произведения, поэтому более широкие числа обрабатываются без построения собственного массива из элементарных сумматоров. Для одного независимого 64×64-битного умножения требуется семь циклов, но при перекрытии последовательности новый 128-битный результат можно получать каждые четыре цикла. С ростом разрядности выигрыш от перекрытия становится еще заметнее.

Разрядность операцииОдиночное вычислениеПерекрытый потокРезультат
32×321 цикл1 цикл64-битное произведение
64×647 циклов4 цикла на результат128 бит
96×9612 циклов9 циклов на результат192 бита
128×12819 циклов16 циклов на результат256 бит

Эти числа полезнее абстрактного рейтинга производительности, поскольку показывают гарантированную алгоритмическую стоимость конкретной функции. Они также демонстрируют, почему Am29300 нельзя оценивать единственным результатом «целочисленного теста»: плата с Am29C323 и плата без него имеют совершенно разную скорость длинного умножения при одном и том же Am29332.

Am29337: аппаратная проверка диапазона

Am29337 — 16-битный bounds checker, то есть двойной компаратор нижней и верхней границы. За один проход он определяет, находится ли значение внутри заданного диапазона, и формирует признаки результата. Предусмотрены знаковое и беззнаковое сравнение. Несколько устройств каскадируются для 32-битных и более широких величин без последовательного программного сравнения каждого фрагмента.

На первый взгляд такой кристалл выглядит узкоспециализированным, но в реальной микропрограммируемой машине он экономит дорогие циклы. Проверка адреса на принадлежность сегменту используется для защиты памяти; проверка координаты — для window clipping; сравнение отсчетов с диапазоном — в DSP; аппаратная фильтрация значений пригодна в анализаторах и буферных системах. AMD прямо связывала Am29337 с графикой, памятью, RISC-подобными процессорами и многопроцессорными конструкциями.

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

Am29338: 32-битная очередь байтов и преобразование потоков

Am29338 решает задачу, которая особенно заметна в системах с разной шириной шин. Внутри находятся четыре интеллектуальных FIFO по 8 бит × 32 слова, суммарно 128 байт. За цикл можно принять или выдать до четырех байтов. Входная и выходная логика умеет переставлять байты, поэтому устройство не только буферизует поток, но и согласует порядок и ширину данных между интерфейсами.

Поддерживаются передачи шириной 8, 16, 24 и 32 бита, синхронные и асинхронные режимы, повторное чтение и retransmit. Несколько Am29338 соединяются горизонтально; четыре кристалла увеличивают одновременный обмен до 16 байтов. Сигналы почти пустой и почти полной очереди ориентированы на блоки по четыре байта, что удобно для 32-битной системы.

Типичные применения включают аппаратный mailbox между разнородными процессорами, буфер между CPU и контроллером, очередь предварительной выборки инструкций, write buffer и преобразование ширины шин. Для процессора, собранного из отдельных БИС, такой компонент важен не меньше АЛУ: без правильно организованного потока данных быстрые арифметические блоки простаивают.

Трехшинная архитектура и параллелизм на уровне микрокоманды

Общая черта ключевых вычислительных блоков Am29300 — разделение двух входов и одного выхода. В обычном микропроцессоре внутреннее расписание скрыто от разработчика; здесь он фактически сам составляет широкую микрокоманду, которая в одном цикле задает адреса регистров, функцию АЛУ, режим FPP, управление секвенсором, разрешения записи и действия внешних узлов. При удачной разводке несколько кристаллов работают параллельно над разными частями операции.

Такой подход близок к широкому микрокоду и концепциям VLIW, но Am29300 не задает готовый формат VLIW-инструкции. Ширину управляющего слова определяет плата. Можно построить компактный контроллер с относительно узкой микрокомандой и мультиплексированными сигналами либо дорогое вычислительное устройство с почти прямым управлением каждым функциональным блоком. Чем шире управляющая память, тем больше параллелизма удается раскрыть без промежуточного декодирования.

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

Минимальная 32-битная CPU-конфигурация

Современная привычка искать «материнскую плату для Am29332» вводит в заблуждение. Классическая минимальная конфигурация собиралась из одного Am29332, одного Am29331 и двух Am29334. Два регистровых файла дают 64 регистра по 32 информационных бита плюс четность, секвенсор адресует управляющую память объемом до 64 К слов, а АЛУ выполняет целочисленные и битовые операции. К этому набору добавляются микрокодная память, генератор такта, логика декодирования управляющего слова, интерфейс основной памяти и шины ввода-вывода.

УзелПример компонентовФункция в системе
Управляющий трактAm29331 или Am29C331адрес следующей микрокоманды, стек, прерывания, ветвления
Целочисленный трактAm29332 или Am29C332арифметика, логика, сдвиги, поля, статус
Регистры2× Am29334 или 2× Am29C33464×32 бита данных плюс разряды четности
Управляющая памятьPROM или writable control storeхранение широких микрокоманд
Дополнительная арифметикаAm29325, Am29C323, Am29C327плавающая точка, умножение, double precision
Потоки и защитаAm29337, Am29338bounds checking, FIFO и преобразование байтов

Именно поэтому количество «моделей процессоров» внутри серии не переводится напрямую в количество готовых CPU. Один проект использует четыре базовых микросхемы, другой — десятки экземпляров FPP и регистровых файлов. Архитектура конечной машины могла быть регистровой, стековой, RISC-подобной, сигнальной или специализированной под один алгоритм.

Технологии производства: биполярная IMOX и CMOS

Биполярная ветвь Am29300 использовала высокоскоростной процесс IMOX с внутренней ECL-логикой и TTL-совместимыми уровнями ввода-вывода. Am29332 содержал более 5000 логических вентилей и около 31 000 устройств на кристалле площадью примерно 142 000 квадратных mil. Для биполярной БИС середины 1980-х это был очень высокий уровень интеграции; именно он позволил собрать 32-битное АЛУ с большими вспомогательными структурами на одном кристалле.

CMOS-линия Am29C300 сначала опиралась на процесс CS-11 с эффективной длиной канала 1,6 мкм. Для Am29C325 указывалось почти 11 000 вентилей и кристалл около 130 000 квадратных mil. Следующий CS-11A уменьшал эффективную длину канала до 1,2 мкм и давал примерно 25-процентное улучшение быстродействия, а дальнейший CS-21 переходил к 1,0 мкм.

Год/этапCMOS-процессЭффективная длина каналаТипичная задержка вентиля
1986CS-111,6 мкм1,25 нс
1987CS-11A1,2 мкм0,90 нс
1988CS-211,0 мкм0,65 нс

Эти цифры не следует превращать в современное сравнение «нанометров». Геометрия, тип транзисторов, напряжение, топология и метод оценки задержки совершенно другие. Важен тренд: AMD планомерно переносила архитектуру из очень быстрой, но энергоемкой биполярной технологии в CMOS и повышала скорость за счет уменьшения геометрии.

Корпуса, электрические особенности и системное проектирование

Крупные представители семейства выпускались в многовыводных керамических корпусах PGA и DIP. Для Am29331 указывается 120-контактный PGA, для Am29332 и Am29C327 — 169-контактные PGA, для Am29325 — 145-контактный PGA, для Am29338 — 120-контактный PGA; Am29337 встречается в 28-контактном керамическом DIP. Большое число выводов объясняется не «лишней сложностью», а прямым выводом широких шин и множества управляющих сигналов.

Биполярные кристаллы требовали серьезного внимания к питанию и тепловому режиму. В отличие от современных CPU, здесь нет встроенного регулятора напряжения, термодатчиков, автоматического turbo и сложных энергосберегающих состояний. Стабильность всей платы зависит от разводки питания, развязки, согласования уровней и качества тактовых сигналов. Для коллекционного запуска спустя десятилетия это особенно важно: питание следует подавать только после проверки конкретной документации по модели и корпусу.

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

Микротакт, частота и реальная производительность

Фирменные описания биполярных Am29331 и Am29332 связывают их с системным микротактом порядка 80–90 нс. В пересчете это соответствует примерно 11,1–12,5 млн микротактов в секунду. Но считать это «частотой процессора» в современном смысле нельзя. За один микротакт широкая управляющая команда способна одновременно запустить АЛУ, чтение/запись регистров, смену микропрограммного адреса и работу внешнего ускорителя. Количество тактов на одну машинную команду полностью определяется микрокодом конкретной архитектуры.

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

Для FPP и умножителя ситуация еще нагляднее. Am29325 выполняет floating add/subtract/multiply за один цикл своего интерфейса; Am29C323 выполняет 32×32 за один цикл. Если два таких блока запускаются параллельно, суммарное число арифметических операций за микротакт возрастает, хотя «частота CPU» не меняется. Именно на этой особенности строились массивные вычислители конца 1980-х.

Отказоустойчивость: четность и master/slave

Am29300 создавалось не только ради скорости. В семейство встроены средства контроля, которые нужны военной, промышленной и высоконадежной технике. Входные шины АЛУ могут проверять байтовую четность, выход формирует контрольные биты, а регистровые файлы шириной 18 бит сохраняют данные вместе с четностью. Так защита проходит по целому циклу «регистры — АЛУ — регистры».

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

Такая модель отказоустойчивости хорошо сочетается с доступным извне стеком секвенсора и микропрограммными trap-механизмами. Состояние управляющего тракта можно анализировать и восстанавливать без полного перезапуска. Для эпохи до массового внедрения сложных on-chip RAS-механизмов это был сильный аргумент в пользу семейства.

Средства разработки и микрокод

Аппаратная гибкость была бы бесполезной без инструментов. Экосистема Am29300 включала definition-файлы, микрокодовые ассемблеры, линкеры, отладочные платы, writable control store и модели для логического моделирования. AMD документировала собственные средства и решения сторонних компаний, включая Step Engineering, Microtech, Hilevel Technology и поддержку микропрограммной разработки Hewlett-Packard.

Типичный цикл работы начинался с описания формата микрокоманды и сигналов конкретной платы. Затем микрокод собирался в широкие управляющие слова, связывался с таблицами адресов и загружался в перепрограммируемую управляющую память либо переносился в PROM. В отличие от обычного ассемблера, здесь команда исходного языка могла одновременно описывать действия нескольких физических БИС.

Отладка включала не только проверку алгоритма, но и таймингов. Встроенный breakpoint-компаратор Am29331 помогал остановиться на заданном микроадресе, внешняя доступность стека позволяла исследовать управляющее состояние, а test board и evaluation board ускоряли проверку микросхем. Позднее появились инструменты, которые поднимали уровень описания и автоматизировали генерацию микрокода для Am29325 и других блоков.

Бенчмарки и опубликованные результаты тестов

У Am29300 нет единого набора SPEC-подобных результатов, потому что семейство не задает единую машину. Наиболее полезны три типа данных: гарантированная длительность аппаратных операций, характеристики конкретных процессорных плат и сравнительные исследования сопроцессоров. Они показывают реальную силу архитектуры лучше, чем попытка назначить всей серии условный рейтинг.

Тест или системаКонфигурацияРезультатКак трактовать
Базовый микротактбиполярные Am29331/Am29332система рассчитана на 80–90 нспримерно 11,1–12,5 млн микротактов/с, не частота готовой ISA
32×32 integer multiplyAm29C3231 циклаппаратная операция одного кристалла
64×64 integer multiplyAm29C3237 циклов одиночно; 4 цикла на результат в перекрытом потокепоказывает эффективность multiprecision
Single-precision add/sub/multiplyAm29325/Am29C3251 циклбазовая арифметика FPP без обязательного внутреннего конвейера
White Dwarf2× Am29325 + Am29332, VME20 MFLOPS потенциальный пик; более 15 MFLOPS ожидаемая длительная скоростьпроектный показатель специализированного finite-element процессора
3D-сопроцессор Wardak и соавт.Am29300 board + host MC68020для выбранного выражения около 8× против MC68020, 6× против MC68030 и 2× против MC68040сравнение конкретного микрокодированного участка, не универсальная скорость CPU
Многословное 128×128Am29C32319 циклов одиночно; 16 циклов на результат в перекрытом режимеаппаратная масштабируемость длинного умножения

Проект White Dwarf особенно хорошо демонстрирует идею Am29300. Процессор для метода конечных элементов содержал два Am29325 и одно Am29332, использовал широкое управляющее слово и подключался к VME-системе с рабочей станцией Sun в роли host. Для проекта заявлялся потенциальный пик 20 MFLOPS, ожидаемая устойчивая вычислительная скорость свыше 15 MFLOPS и потенциальное ускорение на один-два порядка для целевого алгоритма. Авторы при этом честно описывали систему как находящуюся в процессе отладки и интеграции, поэтому проектные и фактически измеренные показатели нельзя смешивать.

Более позднее исследование микропрограммируемого сопроцессора для трехмерной графики дает уже сравнительный результат. Плата Am29300 обслуживала повторяемые floating-point фрагменты и работала рядом с Motorola MC68020. Для выбранного математического выражения анализ показал приблизительно восьмикратное преимущество над MC68020, шестикратное над MC68030 и двукратное над MC68040. Этот результат относится к специально микрокодированному вычислению, а не к произвольной программе.

Еще один коммерческий ориентир — массивные процессоры Mercury семейства ZIP, использовавшие Am29325. В разных конфигурациях для таких систем указывались уровни порядка 8, 16 и позднее 20 MFLOPS peak. Это подтверждает, что FPP Am29325 действительно применялся не только в лабораторных макетах, но и в продававшихся ускорителях VME-класса.

Что писали профессиональные издания и исследователи

Профессиональная пресса середины 1980-х воспринимала Am29300 как попытку заполнить пространство между универсальными микропроцессорами и полностью заказными процессорами. Computer Design в обзоре bipolar building blocks подчеркивал переход AMD от вертикальных bit-slice секций к 32-битному функциональному разделению и выделял возможность построить быстрый гибкий 32-битный CPU из АЛУ, секвенсора, регистров и ускорителей. Смысл оценки состоял не в том, что Am29300 заменяет любой микропроцессор, а в том, что система получает скорость специализированной микроархитектуры без разработки собственного кристалла.

Electronic Design описывал семейство в контексте «supermini speed» для микрокодируемых систем. Для своего времени это точное позиционирование: крупные биполярные БИС переносили часть возможностей дорогих многочиповых процессорных трактов в стандартизованные компоненты. EDN уделял отдельное внимание floating-point array processing, где несколько вычислительных блоков давали существенно больший поток операций, чем один обычный CPU.

Академические работы конца 1980-х и первой половины 1990-х показывают, что ценность серии сохранялась и после появления быстрых 32-битных микропроцессоров. White Dwarf использовал Am29325/Am29332 как основу application-specific процессора; исследование 3D-графики применило Am29300 в роли сопроцессора Motorola; отдельная работа 1991 года описывала инструменты генерации микрокода. Общий вердикт этих работ одинаков по сути: максимальный эффект достигается не на обычной программе, а на повторяемом вычислительном ядре, которое можно выразить непосредственно через параллельные аппаратные блоки.

Реальные области применения

Графика — одна из самых естественных задач для Am29300. Am29332 умеет быстро извлекать и совмещать битовые поля, выполнять сдвиги и маскирование без дополнительных циклов; Am29337 аппаратно проверяет координаты относительно окна; Am29325 и Am29C327 ускоряют матрицы, преобразования и геометрические расчеты; Am29338 согласует потоки данных. Из этих кирпичиков получается специализированный геометрический или растровый конвейер, управляемый микрокодом.

В цифровой обработке сигналов особенно полезны быстрые умножения, накопление и потоковая передача. Am29325 дает floating multiply и обратные связи для accumulation, Am29C323 — широкое целочисленное умножение, Am29338 — FIFO. Такую систему можно настроить под фильтры, спектральные преобразования, радиолокационную обработку и медицинскую аппаратуру, не оплачивая универсальную функциональность, которая не участвует в алгоритме.

В интеллектуальных контроллерах ценились детерминированность и прямой доступ к микропрограммному управлению. Секвенсор реагирует на события на границе микрокоманд, trap-механизм позволяет повторить прерванную операцию, а multiway-ветвление ускоряет разбор множества условий. В телекоммуникации и коммутации важны именно предсказуемая задержка и быстрый разбор полей, а не максимальная производительность на общем программном коде.

Еще одно направление — построение собственных RISC-подобных процессоров. Широкая управляющая память и регулярное 32-битное АЛУ позволяли реализовать простой набор машинных команд поверх микрокода либо вообще сблизить машинный и микропрограммный уровни. Это давало разработчикам учебных и экспериментальных систем редкую возможность исследовать архитектуру CPU на реальном высокоскоростном железе.

Пример: Am29300 как сопроцессор трехмерной графики

В опубликованной в 1994 году системе Am29300-плата работала как сопроцессор рядом с одноплатным компьютером на Motorola MC68020. Host выполнял обычный код и организовывал программу, а наиболее повторяемые фрагменты 3D-обработки переносились в микрокод. Среди таких функций были умножение матриц 4×4, удаление невидимых граней и clipping.

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

Система была проверена на отображении различных трехмерных объектов. Позднейшие публикации той же группы отдельно рассматривали интерфейс C, ассемблера MC68020 и микрокода Am29300. Это важный практический вывод: высокая скорость достигалась не одной «магической» микросхемой, а совместным проектированием программного и аппаратного уровней.

Пример: White Dwarf и расчеты методом конечных элементов

White Dwarf создавался как application-specific processor для ускорения задач finite element analysis. Центральный вычислительный тракт включал два 32-битных FPP Am29325 и одно 32-битное АЛУ Am29332. Широкая микрокоманда запускала параллельные операции, а VME-интерфейс связывал ускоритель с host-системой. Такой выбор особенно логичен для конечных элементов, где одни и те же плотные арифметические ядра повторяются над большими наборами данных.

Проектная пиковая производительность 20 MFLOPS и ожидаемая длительная скорость выше 15 MFLOPS для конца 1980-х были очень серьезными величинами для специализированной платы. Авторы оценивали потенциальное ускорение на один-два порядка относительно общего исполнения целевого алгоритма и возможность работы с моделями до примерно полумиллиона узлов при полностью установленной памяти.

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

Сравнение с классическим Am2900

ПараметрAm2900Am29300/29C300
Основной принципвертикальные bit-slice секциигоризонтальные 32-битные функциональные блоки
Типичная ширина базового АЛУ4 бита у Am290132 бита у Am29332
Расширение разрядностипараллельное каскадирование одинаковых секцийосновной тракт уже 32-битный
Регистрычасто тесно связаны с slice-АЛУотдельный четырехпортовый файл Am29334
Сложные битовые функциитребуют внешней логики или нескольких цикловfunnel shifter, маски и priority encoder встроены
Плавающая точкавнешняя специализированная подсистемаAm29325/Am29C325/Am29C327 внутри семейства
Целевой уровеньконструирование CPU нужной разрядностиконструирование 32-битной микроархитектуры по функциям

Поэтому Am29300 логичнее считать наследником bit-slice культуры, чем буквальным 32-битным slice-процессором. Семейство сохраняет микропрограммируемость, модульность и отсутствие фиксированной ISA, но переносит масштабирование с разрядности на функциональные блоки. Именно это позволяло уменьшить число кристаллов и одновременно добавить функции, плохо подходящие для каскадирования узких секций.

Конкуренты эпохи и функциональные аналоги

Прямого одного-к-одному конкурента для всей Am29300 нет: разные проекты сравнивали разные части системы. Более ранний Intel 3000 с 2-битным 3002, Motorola M10800 с 4-битным ECL-трактом и Texas Instruments SN74S481 относятся к классической bit-slice школе. Они ближе к Am2900 по принципу наращивания ширины и заметно уступают Am29300 по степени интеграции одного функционального блока.

На уровне готовых 32-битных CPU альтернативой становились Motorola 68020/68030/68040, семейство National Semiconductor 32000 и другие универсальные процессоры. Они намного проще в разработке: фиксированная ISA, готовые компиляторы и стандартная системная архитектура. Am29300 выигрывает там, где можно радикально перепланировать data path под конкретный алгоритм; универсальный CPU выигрывает в стоимости разработки, плотности программной экосистемы и удобстве запуска произвольного кода.

В плавающей арифметике серьезным соперником выступали специализированные микросхемы Weitek. Компания выпускала высокопроизводительные floating-point наборы и сопроцессоры для рабочих станций и 32-битных систем. Разница снова в системной философии: Weitek чаще поставлял конкретный математический ускоритель, тогда как AMD предлагала целую конструкторскую среду, где FPP сочетался с собственным АЛУ, секвенсором и регистровыми блоками.

Аналоги среди Intel Xeon: только по роли, не по совместимости

Прямого аналога Am29300 среди Intel Xeon нет и никогда не было. Первый Xeon появился значительно позже и представляет законченный процессор с фиксированной архитектурой x86, кэшами, системными интерфейсами и стандартной программной моделью. Ни один Xeon не заменяет Am29331, Am29332 или Am29325 на плате и не является совместимым по выводам, микрокоду или электрическим характеристикам.

В 2026 году функциональным ориентиром для серверных и HPC-задач служат современные Intel Xeon 6/6+ и Xeon 600 для рабочих станций. Они интегрируют в одном процессоре то, ради чего в 1980-х требовалась целая плата: многопоточную целочисленную обработку, векторную математику, память, PCI Express, механизмы надежности и управление. Это сравнение показывает эволюцию интеграции, но не создает прямой линии производительности.

СистемаХарактер аналогииГлавное отличие от Am29300
Intel Xeon 6современные серверные, AI и HPC-нагрузкизаконченный многоядерный CPU с фиксированной ISA и стандартной платформой
Intel Xeon 6+плотные облачные и сетевые нагрузкивысокая интеграция и программная совместимость вместо микропрограммируемой платы
Intel Xeon 600 workstationпрофессиональные вычислительные станцииодин CPU заменяет целый класс дискретных управляющих и вычислительных блоков
Intel 3000/3002историческая modular CPU design2-битный slice предыдущей эпохи, а не 32-битное функциональное разделение

Для реставратора корректным «аналогом» будет только исходная совместимая микросхема нужной модели и скоростного класса. Для инженера, который хочет сегодня решить ту же прикладную задачу, разумная замена — современный CPU, FPGA или специализированный accelerator, а не попытка воссоздать Am29300 из новых компонентов.

Есть ли смысл сравнивать Am29300 с игровыми процессорами

Нет. Am29300 не применялось в игровых ПК как центральный процессор, не имеет PC-совместимой платформы, BIOS, стандартного графического интерфейса или набора команд x86. В период его актуальности игровые системы строились вокруг совершенно других массовых микропроцессоров. Современные игры на такой плате не запускаются, а понятия FPS, игровой bottleneck и совместимость с видеокартами к серии неприменимы.

Историческая связь с графикой не означает связь с игровыми сборками. Am29300 использовалось для вычислительных и графических подсистем профессионального класса: трансформации, clipping, обработка изображений, специализированные display-процессы. Это ускоритель алгоритмов, а не потребительский gaming CPU. Поэтому конфигурации «Am29332 + видеокарта» с игровыми результатами были бы выдумкой и в техническом обзоре неуместны.

Разгон: почему привычное понятие почти неприменимо

Для Am29300 нет культуры пользовательского разгона, множителей, настроек BIOS и профилей напряжения. Частота всей микропрограммируемой платы определяется наихудшим временным путем между управляющей памятью, секвенсором, регистровыми файлами, АЛУ и внешними узлами. Простое увеличение генератора такта нарушает setup/hold и гарантированные задержки сразу в нескольких компонентах.

AMD выпускала ускоренные варианты A, -1 и -2, то есть промышленный путь повышения скорости заключался в выборе гарантированного speed grade и более быстрого технологического исполнения. Разработчик мог оптимизировать разводку и управляющую память под меньший микротакт, но это системная инженерия, а не бытовой overclocking. Для сохранившихся экземпляров экспериментальное превышение паспортных режимов только увеличивает риск повреждения редкой детали и не имеет практической ценности.

Подходит ли серия для современных серверов

Для современного сервера Am29300 непригодно. Семейство не поддерживает современные стандарты памяти, виртуализацию, PCI Express, сетевые интерфейсы, защищенную загрузку и актуальные операционные системы. Производительность на универсальном коде несопоставима с современными CPU, а энергоэффективность многокристальной биполярной системы давно потеряла практический смысл.

Исторически отдельные решения на Am29300 существовали в VME и других высокопроизводительных модульных системах, а также как host-attached ускорители. Это ближе к современному PCIe-акселератору, чем к серверному сокетному CPU. Поэтому «серверная конфигурация на Am29300» сегодня уместна только как музейная реконструкция оригинальной вычислительной платы.

Для такой реконструкции нужны оригинальная PCB или точная схема, соответствующие Am293xx/Am29C3xx, управляющая память, источники питания, backplane и средства загрузки микрокода. Проектировать с нуля production-сервер на этих деталях в 2026 году рациональных оснований нет.

Типичные исторические конфигурации вместо игровых и серверных сборок

СценарийСостав вычислительного ядраСильная сторона
32-битный микропрограммируемый CPUAm29331 + Am29332 + 2× Am29334 + control storeсобственная ISA и 64×32-битный регистровый файл с четностью
Floating-point сопроцессорAm29325/Am29C325 + секвенсор + быстрая памятьsingle precision add/sub/multiply за один цикл
Finite-element ускоритель2× Am29325 + Am29332 + широкая микрокомандапараллельная численная арифметика
3D-графический сопроцессорAm29300 board + host MC68020матрицы, back-face removal и clipping в микрокоде
64-битная научная математикаAm29C327 + регистровая память + управляющий трактdouble/mixed precision и несколько floating-point форматов
Потоковый контроллерAm29332 + Am29338 + Am29337разбор полей, FIFO, bounds checking и детерминированное управление

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

Плюсы и минусы AMD Am29300 Bit-Slice

Плюсы

  • полноценный 32-битный арифметический тракт без каскадирования узких slice-АЛУ;
  • свободное построение собственной микроархитектуры и набора машинных команд;
  • трехшинная организация с двумя входами и независимым выходом;
  • 64-битный funnel shifter, генератор масок и приоритетный кодировщик в Am29332;
  • отдельный расширяемый четырехпортовый регистровый файл;
  • глубокий 33-уровневый стек и микропрограммные прерывания в Am29331;
  • аппаратные single-precision и double-precision floating-point блоки;
  • однотактовое 32×32-битное умножение в Am29C323;
  • средства четности и master/slave для отказоустойчивых систем;
  • специализированные устройства для bounds checking и буферизации байтовых потоков;
  • возможность параллельного запуска нескольких функциональных блоков одной широкой микрокомандой;
  • существование биполярной и CMOS-ветвей с несколькими скоростными вариантами.

Минусы

  • семейство не является готовым CPU и требует проектирования всей процессорной платы;
  • нет общей стандартной ISA, совместимой между произвольными системами Am29300;
  • сложное микропрограммирование и ручная работа с таймингами;
  • высокое число корпусов и межсоединений по сравнению с однокристальными процессорами;
  • энергопотребление и охлаждение биполярных конфигураций существенно усложняют систему;
  • нет современной программной, серверной или игровой платформы;
  • редкие оригинальные детали трудно проверять и заменять при реставрации;
  • результаты производительности сильно зависят от конкретной платы, поэтому одной цифры для всей серии нет;
  • современные FPGA и процессоры решают те же прикладные задачи намного компактнее и удобнее.

Что проверять при покупке коллекционного экземпляра

Для коллекционера первична маркировка. Нужно сверить не только крупное обозначение Am29331 или Am29332, но и суффикс, код корпуса, температурную категорию и дату. Ускоренные A-версии и CMOS speed-select -1/-2 встречаются реже базовых вариантов и представляют отдельный интерес. Перемаркированный корпус способен выглядеть убедительно, поэтому равномерность надписей и происхождение детали имеют значение.

Вторая проверка — выводы. Керамические PGA имеют много тонких контактов, а погнутый или корродировавший вывод на 120- или 169-контактном корпусе легко превращает красивый экспонат в сложный ремонт. Выпрямление старого вывода нужно делать минимальным количеством изгибов: металл после нескольких циклов быстро устает.

Третья — электрическая история. NOS-маркировка не гарантирует исправность, а снятая с платы микросхема могла пережить перегрев. Для рабочего проекта разумно покупать несколько одинаковых экземпляров, когда такая возможность существует, и сначала проверять их в безопасном стенде с ограничением тока. Редкие Am293xx лучше не включать в неизвестную плату без проверки питания.

FAQ по AMD Am29300 Bit-Slice

Am29300 — это один процессор?

Нет. Это семейство 32-битных микропрограммируемых функциональных блоков. Готовый процессор строится из секвенсора, АЛУ, регистровых файлов, управляющей памяти и необходимых ускорителей.

Какая модель является центральной?

Для целочисленного тракта центральным компонентом считается Am29332/Am29C332, но без Am29331 и регистровой памяти он не образует полноценный CPU. Поэтому корректнее говорить о базовой связке компонентов.

Какой максимальный объем микрокода поддерживает Am29331?

16-битный микроадрес позволяет адресовать до 64 К слов управляющей памяти. Ширина одного слова определяется проектом процессорной платы.

Есть ли аппаратная плавающая точка?

Да. Am29325/Am29C325 выполняют single-precision floating-point операции, а Am29C327 добавляет double и mixed precision и расширенный набор форматов.

Поддерживается ли IEEE-формат?

Да. Am29325/Am29C325 ориентированы на IEEE P754 draft 10.0 и DEC VAX, а Am29C327 поддерживает IEEE P754 версии 10.1 наряду с DEC F/D/G и IBM System/370.

Сколько регистров у процессора Am29300?

Число определяется конфигурацией. Два Am29334 дают естественную организацию 64×32 бита плюс четность, но регистровые файлы можно каскадировать и расширять.

Как быстро работает Am29332?

Фирменная документация связывает биполярную связку с микротактом порядка 80–90 нс. Это характеристика проектируемой микромашины, а не аналог современной паспортной частоты CPU.

Можно ли установить Am29300 в обычный компьютер?

Нет. У серии нет стандартного PC-сокета и готовой совместимой системной платы. Нужна специально разработанная процессорная система.

Подходит ли серия для игр?

Нет. Это специализированная микропрограммируемая элементная база, а не потребительская игровая платформа.

Используют ли Am29300 в современных серверах?

Нет. Сегодня семейство представляет исторический и коллекционный интерес. Новые серверы строятся на полностью иных процессорных и ускорительных платформах.

Что означают Am29C3xx?

Это CMOS-ветвь того же семейства 32-битных building blocks. Она включает функциональные аналоги основных биполярных узлов и дополнительные арифметические устройства.

Чем Am29300 отличается от Am29100?

Am29100 относится к 16-битным slice-компонентам и сохраняет более классическую идею наращивания разрядности. Am29300 делает основной шаг к полным 32-битным функциональным блокам и горизонтальному разделению процессора.

Итоговый вердикт

AMD Am29300 — не забытый конкурент обычных настольных CPU, а один из наиболее развитых конструкторов микропрограммируемой 32-битной вычислительной системы своей эпохи. Его архитектура показывает момент, когда технология уже позволяла отказаться от каскада 4-битных АЛУ, но еще оставляла достаточно пространства между отдельной логикой и однокристальным процессором для целого класса высокопроизводительных building blocks.

Сильнейшая часть семейства — сочетание Am29332, Am29331 и Am29334: полноценный 32-битный data path, 16-битный микроадрес с глубоким стеком и гибкий четырехпортовый регистровый файл. Am29325, Am29C323 и Am29C327 превращают эту основу в серьезную научную и сигнальную вычислительную платформу, а Am29337 и Am29338 закрывают специализированные задачи контроля диапазонов и потоков данных.

Опубликованные проекты подтверждают, что идея работала не только на бумаге. White Dwarf строился вокруг двух Am29325 и Am29332 с проектным пиком 20 MFLOPS, коммерческие массивные процессоры использовали Am29325, а микрокодированный 3D-сопроцессор демонстрировал крупное ускорение на выбранном floating-point выражении относительно Motorola MC68020/68030/68040. При этом каждая цифра относится к конкретной системе — у семейства нет и не должно быть одного универсального результата.

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