TL;DR
  • 80386 стал поворотом для индустрии: первый 32-битный x86, закрепил доминирование архитектуры и сместил архитектурное лидерство от IBM к Compaq.

  • Переход с CHMOS-III 1,5 мкм на CHMOS-IV 1 мкм дал ~60% экономии площади, но потребовал переразметки блоков, более плотной стандартно-ячеистой логики и хитростей с бонд-площадками.

  • 386 SX удешевил платформу за счет 16-битной шины и меньшего числа выводов; совместимость с 16/32-битными циклами была заложена изначально.

  • 386 SL (1990) интегрировал контроллеры памяти/шины, управление питанием и поддержку SMM; 855 тыс. транзисторов против ~285 тыс. у классического 386 DX.

  • Инженерка: RTL на MAINSAIL, симуляции Microsim, схемы в Eden, автоукладка TimberWolf для «разрозненной» логики, ручная топология дата-пути в CALMA.

  • Технологические нюансы CHMOS-III: двухслойная металлизация и «запрещенный зазор» между M1 и M2, влияющий на выход годных.

  • Реалии производства: первый кремний «упал» на тесте, маски починили ионным фрезерованием; ранний баг 32-битного умножения привел к маркировке части партий как «только для 16-битного ПО».

Можно полагать, что процессор Intel 386 (1985) — это просто ранний представитель линейки x86, но на самом деле 386 стал поворотной точкой в развитии современной вычислительной техники по нескольким причинам. Во-первых, 386 перевёл архитектуру x86 на 32 бита, определив доминирующую вычислительную архитектуру на остаток XX века. 386 также закрепил подавляющее значение x86 не только для Intel, но и для всей компьютерной индустрии. Наконец, 386 положил конец контролю IBM над рынком ПК, сделав Compaq архитектурным лидером.

В этой статье я показываю фотографии кристалла процессора Intel 386 и объясняю, что они рассказывают об истории процессора, например, о переходе с техпроцесса 1,5 мкм на 1 мкм. Можно было бы ожидать, что Intel просто выпустила тот же кристалл 386 в уменьшённом масштабе, но в реальности в топологию чипа были внесены существенные изменения — некоторые из них заметны даже невооружённым глазом. Я также разберу, почему у 386 SL транзисторов было более чем в три раза больше, чем у других версий 386.3

80386 стал значительным шагом вперёд по сравнению с 286: он реализовал 32-битную архитектуру, добавил новые инструкции и поддерживал сегменты объёмом 4 ГБ. По меркам 1980-х это сложный процессор с 285 000 транзисторов, что в десять раз больше, чем у оригинального 8086. В 386 восемь логических блоков, они конвейерные и в основном работают автономно. Диаграмма ниже показывает внутреннюю структуру 386.

386 с подписью основных функциональных блоков. Я сделал эту подпись на основе фотографии кристалла Антуана Берковичи. Нажмите, чтобы открыть изображение в большем размере.
386 с подписью основных функциональных блоков. Я сделал эту подпись на основе фотографии кристалла Антуана Берковичи. Нажмите, чтобы открыть изображение в большем размере.

Сердце процессора — это тракт данных (datapath), то есть компоненты, которые хранят и обрабатывают данные. В 386 эти компоненты находятся внизу слева: АЛУ (арифметико-логическое устройство), баррел-шифтер для сдвига данных и регистры. Эти компоненты образуют регулярные прямоугольные блоки шириной 32 бита. Тракт данных вместе со схемотехникой слева, которая им управляет, формирует блок данных (Data Unit). Внизу справа находится ПЗУ микрокода, которое разбивает машинные инструкции на микроинструкции, то есть низкоуровневые шаги выполнения. ПЗУ микрокода вместе с исполнительной логикой микрокода образует блок управления (Control Unit).

В 386 сложный формат инструкций. Блок декодирования инструкций (Instruction Decode Unit) разбирает инструкцию на составные части и генерирует указатель на микрокод, реализующий эту инструкцию. Очередь инструкций хранит три уже декодированные инструкции. Для повышения производительности блок предварительной выборки (Prefetch Unit) читает инструкции из памяти заранее и складывает их в 16-байтовую очередь предварительной выборки.

В 386 реализованы сегментированная память и виртуальная память с защитой доступа. Блок управления памятью (MMU) состоит из блока сегментации (Segment Unit) и блока страничной адресации (Paging Unit): блок сегментации переводит логический адрес в линейный, а блок страничной адресации переводит линейный адрес в физический. Кэш дескрипторов сегментов и кэш страниц (TLB) хранят данные о сегментах и страницах; в 386 нет встроенного кэша инструкций или данных. Блок интерфейса шины (Bus Interface Unit) в правом верхнем углу отвечает за обмен между 386 и внешней памятью и устройствами.

На кремниевых кристаллах часто оставляют инициалы разработчиков. На 386 DX, однако, этих инициалов необычно много. На изображении ниже я увеличил крошечные инициалы, чтобы их было видно. Думаю, разработчики ставили инициалы рядом с тем блоком, над которым работали, но большинство имён мне установить не удалось.

Кристалл 386 с увеличенными инициалами. Полная версия
Кристалл 386 с увеличенными инициалами. Полная версия

Переход с 1,5 мкм на 1 мкм

Исходный 386 изготавливался по процессу под названием CHMOS-III с минимальными элементами 1,5 мкм (конкретно длиной затворного канала транзистора). Примерно в 1987 году Intel перешла на улучшенный процесс CHMOS-IV с минимальными элементами 1 мкм, что позволило заметно уменьшить площадь кристалла 386. Однако масштабирование топологии был вовсе не простым механическим процессом. Вместо этого в чип внесли множество изменений, как видно на сравнительной диаграмме ниже.

Самое заметное: блок декодирования инструкций (Instruction Decode Unit) и блок защиты (Protection Unit) в области ближе к центру справа на уменьшённом кристалле расположены горизонтально, а не вертикально. Логика на стандартных ячейках (об этом позже) стала значительно плотнее, вероятно, благодаря улучшению алгоритмов разводки. Тракт данных (слева) в исходном варианте был сильно оптимизирован, поэтому в целом остался прежним, только меньше по размеру.

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

По какой-то причине многочисленные инициалы на исходном кристалле 386 были удалены. Наконец, новый кристалл получил маркировку 80C386I с датами авторских прав 1985, 1987; неясно, что обозначают «C» и «I».

Сравнение кристаллов с нормами 1,5 мкм и 1 мкм в одном масштабе. Фотографии предоставлены Антуаном Берковичи. Полная версия
Сравнение кристаллов с нормами 1,5 мкм и 1 мкм в одном масштабе. Фотографии предоставлены Антуаном Берковичи. Полная версия

Переход с 1,5 мкм на 1 мкм может звучать как что-то незначительное, но он уменьшил площадь кристалла на 60%. Это позволило разместить больше кристаллов на одной пластине, что существенно снизило себестоимость производства. Стратегия сначала «сжимать» процессор под новый техпроцесс, а уже затем проектировать для него новую микроархитектуру, впоследствии стала у Intel стратегией Tick-Tock.

386 SX

В 1988 году Intel представила процессор 386 SX — бюджетную версию 386 с 16-битной шиной вместо 32-битной. (Это напоминает ситуацию с процессорами 8088 с 8-битной шиной и 8086 с 16-битной.) По воспоминаниям участников проекта 386, стоимость исходного кристалла 386 снизилась до точки, когда цена корпуса чипа стала сопоставима с ценой самого кристалла. Уменьшив число выводов, 386 SX можно было поместить в пластиковый корпус стоимостью около одного доллара и продавать существенно дешевле. Модель SX позволила Intel сегментировать рынок, переведя клиентов начального уровня с 286 на 386 SX, при этом сохранив более высокую цену исходного 386, который теперь назывался DX. В 1988 году Intel продавала 386 SX за 219 долларов — как минимум на 100 долларов дешевле 386 DX. Полноценный компьютер на SX мог стоить на 1000 долларов меньше аналогичной модели на DX.

Для совместимости со старыми 16-битными периферийными устройствами исходный 386 изначально был спроектирован с поддержкой смешения 16- и 32-битных шин с динамическим переключением на каждом такте при необходимости. Поскольку 16-битная поддержка была заложена в сам 386, выпуск 386 SX не потребовал больших доработок. (В отличие от 8088, для которого требовалась переработка блока интерфейса шины 8086.)

386 SX выпускался как по нормам 1,5 мкм, так и 1 мкм. На диаграмме ниже сравниваются два варианта кристалла 386 SX. Эти фотографии могут выглядеть идентичными снимкам 386 DX из предыдущего раздела, но при внимательном рассмотрении заметны отличия. Поскольку у 386 SX меньше выводов, у него меньше контактных площадок, поэтому на уменьшённом кристалле 386 SX исчезает шахматное расположение площадок. В нижней части кристалла есть несколько отличий: значительную часть неиспользованной площади 386 DX здесь занимает разводка межсоединений.

Сравнение двух кристаллов 386 SX. Фотографии предоставлены Антуаном Берковичи. Полная версия
Сравнение двух кристаллов 386 SX. Фотографии предоставлены Антуаном Берковичи. Полная версия

Сравнивая две ревизии SX, больший кристалл имеет маркировку «80P9»; внутреннее название этого чипа у Intel было «P9» в их запутанной системе обозначений серии P. Уменьшенный кристалл помечен как «80386SX», что звучит логичнее. На большом кристалле стоят даты авторских прав 1985, 1987, тогда как на уменьшенном (который должен быть новее) по какой-то причине указано 1985. На большом кристалле в основном те же инициалы, что и на DX, с небольшими изменениями. На уменьшенном кристалле около 21 набора инициалов.

Кристалл 386 SL

386 SL (1990) стал крупным расширением 386: он объединял на одном чипе ядро 386 и другие функции, экономя энергию и площадь. Он был назван «SuperSet» он создавался, чтобы закрепиться на рынке ноутбуков. Чип 386 SL включал контроллер шины ISA, логику управления энергопотреблением, контроллер кэша для внешней кэш-памяти и контроллер оперативной памяти.

Там, где 386 SL свёл ядро, память и периферию в один узел, сегодня работает инженер встраиваемых систем. Курс Embedded Developer — это практика на ESP32, периферии и протоколах (I²C, SPI, UART, Wi-Fi/BLE) плюс основы проектирования PCB: современная версия той самой «работы с железом», но в руках разработчика.

Если посмотреть на фото кристалла ниже, само ядро 386 занимает примерно четверть площади кристалла SL. Ядро 386 очень близко к стандартному 386 DX, но есть несколько заметных отличий. Самое очевидное: из ядра убраны контактные площадки и драйверы выводов. Есть и некоторые схемотехнические изменения. Например, ядро 386 SL поддерживает System Management Mode, который приостанавливает обычное выполнение и позволяет выполнять задачи по управлению питанием и другие низкоуровневые операции вне обычной операционной системы. Сейчас System Management Mode является стандартной частью семейства x86, но впервые он появился в 386 SL.

Кристалл 386 SL с подписью функциональных блоков. Фотография кристалла предоставлена Антуаном Берковичи. Полная версия
Кристалл 386 SL с подписью функциональных блоков. Фотография кристалла предоставлена Антуаном Берковичи. Полная версия

В сумме 386 SL содержит 855 000 транзисторов, что более чем в три раза больше, чем у обычного 386 DX. Память тегов кэша занимает значительную площадь и множество транзисторов. Данные кэша хранятся во внешней памяти; расположенная на кристалле логика лишь управляет работой кэша. Прочие новые компоненты в основном реализованы как логика на стандартных ячейках (см. ниже); это видно по равномерным «полосам» схем, особенно отчётливо в контроллере шины ISA.

Краткая история 386

На сегодняшний день кажется очевидным, что Intel должна была расширять линейку x86 от 286 к 386 с сохранением обратной совместимости. Но тогда этот путь совсем не выглядел очевидным. История начинается в конце 1970-х, когда Intel решила создать микро-мэйнфреймовый процессор — продвинутый 32-битный процессор для объектно-ориентированного программирования, где на уровне ЦП реализовывались объекты, межпроцессное взаимодействие и защита памяти. Этот чрезмерно амбициозный проект выбился из графика, поэтому Intel создала временное решение, чтобы было что продавать, пока микромэйнфрейм не будет готов. Этим временным процессором стал 16-битный 8086 (1978).

В 1981 году IBM решила использовать Intel 8088 (вариант 8086) в персональном компьютере IBM PC, но тогда Intel не осознавала важности этого шага. Вместо этого компания была сосредоточена на своём микромэйнфрейм-процессоре, который тоже вышел в 1981 под именем iAPX 432, однако он превратился в «одну из крупнейших катастроф в истории современной вычислительной техники», как выразилась The New York Times. Затем Intel переосмыслила идеи неудачного iAPX 432 поверх RISC-архитектуры, создав гораздо более успешный i960.

Тем временем у процессора 286, преемника 8086, поначалу дела шли неважно. Билл Гейтс и другие называли его конструкцию «brain-damaged». IBM тоже по своим причинам была не в восторге от 286. В результате проект 386 имел для Intel невысокий приоритет, и команда 386 ощущала себя «пасынком»; внутри компании 386 позиционировали как очередное временное решение, а не «официальный» 32-битный процессор Intel.

Несмотря на отсутствие энтузиазма на уровне корпорации, команда 386 выдвинула два варианта расширения 286 до 32-битной архитектуры. Первый был минималистичным подходом: просто расширить существующие регистры и адресное пространство до 32 бит. Более амбициозный вариант предполагал добавить больше регистров и создать 32-битный набор инструкций, значительно отличающийся от 16-битного набора инструкций 8086. В то время IBM PC был ещё относительно новым, поэтому значение установленной базы ПО было неочевидно; совместимость с программами воспринималась как «приятная опция», а не как критически важное требование. После долгих обсуждений в конце 1982 года было принято решение выбрать минимальный вариант, но с поддержкой и сегментов, и плоской адресации, сохраняя совместимость с 286.

К 1984 году индустрия ПК стремительно росла, а 286 подтверждал свой успех. Это дало колоссальные политические дивиденды команде 386, для которой проект из «пасынка» превратился в «короля». Intel представила 386 в 1985 году, который, по выражению годового отчёта Intel, стал «скверным годом для Intel и остальной полупроводниковой индустрии». Из-за общеотраслевого замедления бизнеса чистая прибыль Intel «по сути исчезла». Более того, столкнувшись с жёсткой конкуренцией со стороны Японии, Intel ушла из бизнеса DRAM — сокрушительный удар для компании, начавшей свой путь именно с памяти. К счастью, 386 всё изменил.

Учитывая успех IBM с IBM PC, Intel недоумевала, почему IBM не проявляет интереса к процессору 386, но у IBM была своя стратегия. К этому времени многие конкуренты уже клонировали IBM PC, и у IBM был план вернуть контроль над архитектурой ПК, а значит и над рынком: в 1987 году IBM представила линейку PS/2. Эти компьютеры IBM PS/2 продвигались вместе с OS/2 и новой проприетарной шиной Micro Channel (при этом изначально поставлялись с PC DOS и сохраняли совместимость с DOS/Windows). IBM применила целый ряд инженерных и юридических мер, чтобы сделать клонирование PS/2 медленным, дорогим и рискованным, рассчитывая таким образом отобрать рынок у клонов.

Compaq пошла на риск, проигнорировав IBM и выбрав собственное архитектурное направление. В сентябре 1986 года Compaq представила высокоуровневую линейку Deskpro 386, став первой крупной компанией, выпустившей компьютеры на базе 386. «Система класса executive» Deskpro 386 модели 40 имела жёсткий диск на 40 МБ и продавалась за 6449 долларов (в текущих ценах это свыше 15 000 долларов). Риск оправдался, и Deskpro 386 стала оглушительным успехом.

Compaq Deskpro 386 на фоне процессора 386. Источник: PC Tech Journal, 1987. Любопытно, что изображение кристалла 386 отражено зеркально, что видно по расположению ПЗУ микрокода и декодера инструкций вверху, а также по положению срезанного угла корпуса. Полная версия
Compaq Deskpro 386 на фоне процессора 386. Источник: PC Tech Journal, 1987. Любопытно, что изображение кристалла 386 отражено зеркально, что видно по расположению ПЗУ микрокода и декодера инструкций вверху, а также по положению срезанного угла корпуса. Полная версия

Что касается IBM, линейка PS/2 в целом не имела успеха и стандартом не стала. Вместо того чтобы вернуть контроль над ПК, «IBM утратила контроль над стандартом ПК в 1987 году, когда представила свою линейку систем PS/2». В 2004-м IBM ушла с рынка персональных компьютеров, продав это направление компании Lenovo. Один несколько гиперболичный книжный заголовок подытожил ситуацию так: «Compaq положила конец доминированию IBM на рынке ПК и помогла изобрести современную вычислительную технику». 386 принёс Intel огромные деньги и привёл к первому кварталу с выручкой свыше 1 млрд долларов в 1990-м. Он окончательно закрепил важность архитектуры x86 не только для Intel, но и для всей индустрии, фактически доминируя на рынке по сей день.

Как был спроектирован 386

Процесс проектирования 386 интересен тем, что демонстрирует переход Intel к автоматизированным системам проектирования и более активному использованию моделирования. В то время Intel отставала от отрасли по уровню инструментов, поэтому руководители проекта 386 понимали, что для создания столь сложного чипа в срок потребуется больше автоматизации. Инвестировав большие средства в средства автоматизации, команда 386 завершила проектирование досрочно. Помимо проприетарных САПР, команда активно использовала стандартные инструменты Unix, такие как sed, awk, grep и make, для работы с проектными базами данных.

По сравнению с предшественником (286), 386 ставил новые задачи. Он был значительно сложнее, с вдвое большим числом транзисторов. Но в 386 также применялась принципиально иная схемотехника. В то время как 286 и более ранние процессоры были построены на транзисторах NMOS, 386 перешёл на CMOS (технология, используемая до сих пор). CMOS-процесс Intel назывался CHMOS-III (complementary high-performance metal-oxide-silicon) и имел минимальный технологический норматив 1,5 мкм. Он базировался на процессе HMOS-III (использовался для 286), но был расширен до CMOS. Кроме того, процесс CHMOS предоставлял два слоя металлизации вместо одного, что изменило схему разводки сигналов на кристалле и потребовало новых приёмов проектирования.

На диаграмме ниже показано поперечное сечение структуры, изготовленной по CHMOS-III: слева транзистор NMOS, справа транзистор PMOS. Обратите внимание на «зубчатый» трёхмерный рельеф, возникающий при пересечении слоёв (в отличие от современных отполированных пластин). Это привело к проблеме «запрещённого зазора», которая осложняла жизнь команде 386. В частности, второй слой металла (M2) мог проходить близко к первому (M1) или далеко от него, но промежуточное расстояние вызывало проблемы: тот самый «запрещённый зазор». Если металлический слой пересекал область «запретного зазора», металл мог растрескаться, и образовавшиеся «усы» металла соприкасались, что приводило к отказу микросхемы. Эти проблемы снижали выход годных 386.

Поперечное сечение структуры, сформированной по процессу CHMOS-III. По материалам «A double layer metal CHMOS III technology».
Поперечное сечение структуры, сформированной по процессу CHMOS-III. По материалам «A double layer metal CHMOS III technology».

Проектирование 386 велось одновременно сверху вниз — начиная с определения архитектуры, — и снизу вверх — путем разработки стандартных ячеек и других базовых узлов на транзисторном уровне. Микрокод процессора, по сути «программное обеспечение», управлявшее чипом, был ключевым компонентом.

Микрокод — хороший мост к современному системному программированию: архитектура по-прежнему диктует, как мы пишем код и управляем памятью. Курс C++ Developer. Professional даёт практику многопоточности, работы с памятью и современными стандартами C++20/23 — тот самый «контроль под капотом», который ценили инженеры эпохи 386.

Он разрабатывался с использованием двух инструментов САПР: ассемблера и средства проверки правил микрокода. Высокоуровневое описание кристалла на регистрово-трансферном уровне (RTL) создавалось и уточнялось до тех пор, пока не были заданы потактовые и пофазные временные зависимости. RTL программировали на MAINSAIL — переносимом языке, похожем на Алгол, основанном на SAIL (Stanford Artificial Intelligence Language). Для моделирования RTL Intel использовала проприетарный симулятор Microsim, отмечая, что полночипная RTL-симуляция была «единственной наиболее важной моделью симуляции для 80386».

Следующим шагом было преобразовать это высокоуровневое описание в детальный логический проект, определив логические элементы (вентили) и прочие узлы с помощью Eden — проприетарной системы ввода принципиальных схем. Для моделирования логического уровня требовалась выделенная мэйнфрейм-система IBM 3083, которая сопоставляла результаты с RTL-симуляциями. Затем на этапе схемотехники создавалось транзисторное представление. Топологическая компоновка кристалла выполнялась на графических системах Applicon и Eden. Топологическая компоновка начиналась с критически важных блоков, таких как АЛУ и баррел-шифтер. Чтобы уложиться в требования по быстродействию, буфер трансляций TLB для механизма страничной адресации потребовал нестандартных решений; то же самое относилось и к двоичным сумматорам.

Примеры стандартных ячеек, использованных в 386. По материалам «Automatic Place and Route Used on the 80386» Джозефа Краускопфа и Пэта Гелсингера, Intel Technology Journal, весна 1986. Цвет добавлен мной. Полная версия
Примеры стандартных ячеек, использованных в 386. По материалам «Automatic Place and Route Used on the 80386» Джозефа Краускопфа и Пэта Гелсингера, Intel Technology Journal, весна 1986. Цвет добавлен мной. Полная версия

«Случайная» (неструктурированная) логика была реализована на стандартных ячейках, а не транзистор-за-транзистором, как в более ранних процессорах. Идея стандартных ячеек состоит в том, чтобы иметь фиксированные схемные блоки (см. выше) для логических вентилей, триггеров и прочих базовых функций. Эти ячейки программно раскладываются по рядам в соответствии с заданным описанием логики. Промежутки между рядами используются как каналы межсоединений для связей между ячейками. Недостаток топологии на стандартных ячейках в том, что она обычно занимает больше площади, чем оптимизированная ручная компоновка, зато создаётся значительно быстрее и проще изменяется.

На кристалле такие стандартные ячейки видны как регулярные ряды схем. Intel использовала пакет автоматической укладки и трассировки TimberWolf, в котором для оптимизации размещения ячеек применялась имитация отжига. TimberWolf был создан аспирантом Беркли; один из инженеров 386 говорил: «Если бы руководство знало, что ключевой частью методологии мы пользуемся инструментом, написанным каким-то аспирантом, оно бы никогда не позволило нам его использовать». Автоматизированная компоновка была для Intel в новинку; её использование помогло соблюсти сроки, но из-за меньшей плотности возникал риск, что кристалл получится слишком большим.

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

Тракт данных включает регистры, АЛУ (арифметико-логическое устройство), баррел-шифтер и узел умножения/деления, которые обрабатывают 32-битные данные. Поскольку тракт данных критичен для производительности системы, его разводку выполняли вручную в системе CALMA. Конструкторы могли оптимизировать топологию, используя регулярность структуры, подбирая форму и размеры каждого транзистора и подгоняя их друг к другу как элементы пазла. Тракт данных виден на левой стороне кристалла в виде упорядоченных прямоугольников шириной 32 бита, контрастирующих со «спутанными» участками логики рядом.

После завершения топологии на транзисторном уровне система иерархической проверки связности Intel (Hierarchical Connectivity Verification System) проверяла соответствие финальной топологии принципиальным схемам и соблюдение технологических правил. 386 установил для Intel рекорд по скорости: прошло всего 11 дней от завершения топологии до «тейпаута» (tapeout), когда данные по чипу отправляются на магнитной ленте в компанию, изготавливающую фотошаблоны. (Команду по тейпауту возглавлял Пэт Гелсингер, позже ставший генеральным директором Intel.) После изготовления стеклянных фотошаблонов с использованием электронно-лучевого процесса фабрика Intel «Fab 3» в Ливерморе (первая, где начали носить костюмы для чистых помещений, bunnysuits) произвела кремниевые пластины 386.

Инженеры чипов любят утверждать, что их микросхема заработала с первого раза, но с 386 так не вышло. Когда команда получила «первый кремний» 386, они запустили тривиальную тестовую программу «NoOp, NoOp, Halt», и она провалилась. К счастью, нашелся небольшой фикс в программируемой логической матрице (PLA). Вместо изготовления новых масок им удалось локально исправить существующую маску методом ионного фрезерования и быстро получить новые кремниевые пластины. Эти пластины работали достаточно хорошо, чтобы начать длительные циклы отладки и исправлений.

Попав на рынок, процессор не избавился от проблем. У некоторых ранних экземпляров 386 выявилась проблема 32-битного умножения: при определённых сочетаниях температуры, напряжения и частоты некоторые аргументы непредсказуемо давали неверные результаты. (Это не связано с известной ошибкой деления Pentium FDIV, стоившей Intel 475 млн долларов.) Первопричиной была ошибка топологии, а не логики: разработчики не заложили достаточные запасы по допускам, чтобы выдержать наихудшие комбинации данных вместе с разбросами технологического процесса и факторов среды. Эта коварная проблема не проявлялась ни в моделировании, ни при верификации кристалла и обнаруживалась только в стресс-тестах. Intel продавала дефектные процессоры, помечая их как пригодные лишь для 16-битного ПО, а исправные отмечала двойной сигмой, как показано ниже. Это привело к неловким заголовкам вроде «Некоторые системы 386 не запускают 32-битное ПО, заявляет Intel». Ошибка умножения также стала причиной дефицита чипов 386 в 1987–1988 годах, пока Intel перерабатывала микросхему для устранения дефекта. В целом проблемы у 386 вряд ли были серьёзнее, чем у других процессоров, и со временем о них забыли.

Неисправная и исправная версии 386. Обратите внимание на надписи в нижней строке. Фото (слева) и (справа): Thomas Nguyen, (CC BY-SA 4.0). Полная версия
Неисправная и исправная версии 386. Обратите внимание на надписи в нижней строке. Фото (слева) и (справа): Thomas Nguyen, (CC BY-SA 4.0). Полная версия

Заключение

Плакат-схема 386 высо��ой 17 футов. Тракт данных слева, микрокод — справа внизу. Неясно, является ли это инженерной работой или экспонатом в MoMA. Изображение склеено из годового отчёта за 1985 год. Полная версия
Плакат-схема 386 высотой 17 футов. Тракт данных слева, микрокод — справа внизу. Неясно, является ли это инженерной работой или экспонатом в MoMA. Изображение склеено из годового отчёта за 1985 год. Полная версия

386 стал ключевой поворотной точкой для Intel. Ранние процессоры компании продавались очень хорошо, но во многом благодаря агрессивному маркетингу («Operation Crush») и счастливому обстоятельству, что их выбрали для IBM PC. Технологически Intel отставала от конкурентов, особенно от Motorola. Motorola представила процессор 68000 в 1979 году, начав мощную линейку (почти) 32-битных процессоров. Intel же в 1982-м плелась с «brain-damaged» 16-битным 286. Переход на CMOS тоже шёл медленно: Motorola перешла на CMOS в 1984 году с 68020.

386 дал Intel необходимый технологический рывок: переход на 32-битную архитектуру, переход на CMOS и устранение ограничений 286 по модели памяти и многозадачности при сохранении совместимости с предыдущими x86. Оглушительный успех 386 закрепил доминирование x86 и Intel и загнал других производителей процессоров в оборону. Compaq использовала 386, чтобы перехватить у IBM архитектурное лидерство в мире ПК, что привело к успеху Compaq, Dell и других компаний, тогда как IBM в конечном итоге покинула рынок ПК. Таким образом, 386 оказал непропорционально большое влияние на компьютерную индустрию, на десятилетия определив её победителей и проигравших.


386 стал символом инженерного перехода — от чертёжных столов и фоторезистов к автоматизированным моделям и системному мышлению. Но суть работы инженера не изменилась: нужно понимать, что происходит под капотом.

Если вам близка эта глубина, сегодня это знание можно развивать куда дальше.
Курс C++ Developer. Professional помогает прокачать практику системного программирования: от многопоточности и паттернов проектирования до работы с памятью и современными стандартами C++20/23. Это логичное продолжение того самого пути, который начался с 386 — путь от архитектуры к контролю над каждым байтом. Готовы к обучению на C++? Пройдите вступительный тест.

А Embedded Developer возвращает в самую физику вычислений — туда, где код становится железом. На курсе вы проектируете собственное устройство на ESP32, осваиваете взаимодействие модулей и периферии, протоколы связи и основы схемотехники. По сути, это современная версия той самой инженерной работы, которая когда-то рождала легендарные кристаллы. Пройдите тест, чтобы узнать, подойдет ли вам программа курса.

Комментарии (3)


  1. hedgehog1
    08.10.2025 11:04

    Я раньше думал, что 386-ой появился ближе к началу 90х, именно тогда они начали относительно массово появляться у нас в стране. Потом офигел, когда узнал правду. У нас в 1985г микрокалькуляторов в школе не было, мажоры приносили на уроки свои личные.


    1. BiTL
      08.10.2025 11:04

      Ну, дык, и "у них" в середине 80-х тоже ПК с 386-м процем не стояли в школах, и были очень дорогим топовым железом для бизнеса, институтов и т.д. Тогда в качестве домашних и школьных ПК на западе выступали 8-битные (Commodore, Atari и т.д), В штатах Apple Macintosh в сфере образования были популярны. Позже появилась Амига.
      IBM PC-совместимые стали доступны и популярны как домашний ПК как раз начиная с 90-х.


  1. CitizenOfDreams
    08.10.2025 11:04

    Уменьшив число выводов, 386 SX можно было поместить в пластиковый корпус стоимостью около одного доллара и продавать существенно дешевле.

    Вот этот момент я как-то не особо понял. И 386DX, и 386SX выпускались как в керамических (PGA), так и в пластиковых (QFP) корпусах. Количество ног у них было не слишком-то и разным - 132 и 100. Ну то есть очень сомнительно, что целый отдельный кристалл спроектировали только потому, что не сразу догадались добавить к пластиковому корпусу еще 32 пина.