
Во второй половине 70-х годов самыми популярными моделями процессоров были 8-битные Intel 8080, Motorola MC6800, MOS Technology 6502 и Zilog Z80. Но AT&T — телекоммуникационного гиганта, который хотел ворваться на рынок компьютеров, — такое положение не устраивало.
Руководство решило сделать ставку на производительность и обойти конкурентов, с ходу создав первый 32-битный процессор (16-битные 8086 только-только появлялись) на тогда еще достаточно «сырой» технологии CMOS транзисторов, когда весь мир использовал NMOS. Вот что из этого вышло.
Как Bell Labs взялись за процессоры
На дворе — 1976 год, и дела у компании, заложенной еще Александром Беллом, шли великолепно. AT&T десятилетиями доминировала на рынке услуг связи, а его «дочка» Western Electric производила практически все телефоны в стране. Некоторые источники даже полагают, что на тот момент компания была крупнейшей в мире с выручкой 26 млрд долларов — что эквивалентно примерно 182 млрд в ценах 2025 года. Даже могучая General Motors занимала вторую строчку и была втрое меньше.
И конечно, монополия нравилась далеко на всем. Прежде всего — правительству Соединенных Штатов Америки. Причин две: необоснованное завышение тарифов, вытеснение конкурентов и многое другое.
В 1974 году Министерство юстиции подает антимонопольный иск к AT&T, результатом которого должно стать дробление компании и возникновение множества мелких операторов связи. В обмен у компании появилось возможность заниматься и другой деятельностью — например, компьютерными технологиями.
И хотя Bell Labs причастна к самым революционным открытиям XX века, которые привели к появлению компьютера (транзистор, интегральные микросхемы и много чего еще), в гонке микропроцессоров они безнадежно отставали от конкурентов.

И самыми популярными моделями были, конечно, 8-битные «легенды»:
Intel 8008 (1972 год) — первый 8-битный процессор.
Intel 8080 (1974 год) — расширенный вариант с 16-битными адресами и максимальным размером памяти в 64 кБ.
Motorola MC 6800 (1974 год) — с собственной архитектурой, в чем-то воспроизводящей PDP-11.
MOS Technology 6502 (1975 год) — коммерчески успешный МП, который использовался в компьютерах Apple II, Commodore 64 и некоторых других.
Zilog Z80 (1976 год) — один из главных хитов, работающий в TRS-80, ZX Spectrum, MSX и других.
В Bell Labs с открытием отдельного подразделения по разработке процессоров решили сначала создать 8-битный аналог, но не для коммерческого использования, а для внутренних коммуникационных систем. Так в 1977 году появился BELLMAC-8 (он же WE212), содержащий более 7000 транзисторов и работающий на частоте 2 МГц, причем специально заточенный под язык высокого уровня C (концепция AT&T C Machine).

Но руководство AT&T не устраивала роль догоняющих. С учетом того, что Intel уже вовсю разрабатывал первый 16-битный процессор 8086 (он вышел на рынок в 1978 году), было принято решение — замахнуться на то, чего никто до этого еще не делал. Создать процессор, который обрабатывал бы 32 бита за один такт, при тактовой частоте аж 4 МГц. Настоящая революция!
Но для этого потребовался бы не только новый чип, но и совершенно новая архитектура и подход. А еще процессор должен был поддерживать язык C в рамках общей концепции и в дополнение к невероятному быстродействию потреблять как можно меньше энергии.
И чтобы воплотить такое устройство в жизнь, инженеры Bell Labs обратились к технологии CMOS — достаточно «сырой», хотя и многообещающей, отказавшись от считавшихся стандартными в то время NMOS и PMOS. Но при разработке пришлось столкнуться с рядом проблем.
Главная сложность разработки
Конечно, Bell Labs в 1976 году не были первооткрывателями комплементарных МОП-транзисторов. Впервые технология была продемонстрирована в 1963 году Фрэнком Уонлассом и Чи-Тан Са в 1963 году, а патент был получен в 1967 году.
Ее считали слишком медленной для использования в процессорах, хотя и со значительно меньшим энергопотреблением. Поэтому схемы с CMOS обычно внедряли в устройства вроде электронных часов или калькуляторов, работавших на батарейках.
Ставку в то время делали на биполярные транзисторы — и тут было два варианта:
1. NMOS — самое популярное решение, поскольку в качестве областей стока и истока используются проводники n-типа. Проводимость обеспечивается электронами, обладающими примерно вдвое большей подвижностью, чем «дырки» в PMOS. А еще NMOS технологически проще производить (не нужно создавать отдельные «карманы» для p-областей), и они более компактные (то есть их можно больше «упаковать» на ту же площадь, повысив производительность).
Например, 6502 и многие другие 8-битные процессоры того времени работали именно на NMOS-технологии.

Основной недостаток NMOS — высокое энергопотребление. Чтобы транзистор открылся, на затвор нужно подать высокий уровень напряжения, в отличие от PMOS. Следовательно, он всегда будет потреблять и рассеивать больше энергии.
2. PMOS — менее компактный, более сложный в производстве и менее быстрый при прочих равных из-за принципа проводимости. Но зато потребляет меньше энергии — чтобы транзистор переключился, на затвор нужно подать низкий уровень напряжения.

Для будущего процессора, который будет обрабатывать 32 бита за такт, проблема энерговыделения будет намного серьезнее, в сравнении с 8-битными МП при той же тактовой частоте. Именно поэтому инженеры и остановились на CMOS-технологии.
Суть в том, что в ней объединены PMOS и NMOS, работающие комплементарно: когда один включен, другой выключен. С одной стороны, это обеспечивает быстрое переключение. А с другой, радикально снижает энергопотребление — энергия больше всего потребляется только в момент коммутации. Получается гибридный вариант, который потенциально оправдывает удвоение числа транзисторов.
Проблема только в одном — массовое производство CMOS пока еще не было отлажено. А руководство AT&T поставило задачу выпустить процессор по техпроцессу 3,5 мкм в 1980 году. Кодовое название процессора даже было поначалу BELLMAC-80. И в 1978 году работа закипела.
Проектирование и проблемы производства
Для разработки привлекли три лаборатории AT&T Bell Labs: в Индиан-Хилл, Холмделе и Мюррей-Хилл. Руководил процессом Майкл Кондри.
«Мы не просто создавали более быстрый чип, — говорит он. — Мы пытались создать нечто, способное перенести в будущее и голосовые технологии, и вычисления».
В состав команды вошли десятки специалистов Bell Labs, которые принялись за проектирование физической компоновки. И в процессе применили сразу несколько новаторских внедрений.
Компоновка
На тот момент библиотеки стандартных ячеек для CMOS не существовало, в отличие от NMOS. Сун-Мо (Стив) Канг, ведущий разработчик BELLMAC-80, создал ее с нуля: выбрал ширину канала для PMOS 35 мкм и 17 мкм для NMOS, отрисовал все элементы вроде D-триггеров, NOR, NAND и других — сотни позиций. После этого, основываясь на данных по шуму, энергопотребления и размеров каждого элемента, команда приступила к компоновке 32-битного тракта данных.
Однако из-за длинных и крайне разветвленных соединений ничего не получалось. Инструментов проектирования практически не было: команда печатала чертежи с разными элементами, склеивала их скотчем и при помощи цветных карандашей отрисовывала связи транзисторов, линий питания и прочего. За год получилось создать огромную карту размером 6х6 метров.

Другой проектировщик, Алекс Лопес, в процессе работы придумал новый метод компоновки ячеек СБИС при помощи вентильной матрицы — он позволял минимизировать паразитные RC-цепочки, уменьшить задержки и повысить плотность компоновки в несколько раз. Более подробно он рассказывает о методе в своей статье 1980 года.
Быстродействие
Другая проблема заключалась в том, что CMOS-транзисторам, включенным в сложные каскады, для высокого быстродействия и надежной работы требовалась динамическая логика. И команда Bell Labs придумала так называемую «логику домино».
Если кратко: в каскад добавляется статический CMOS-инвертор, обеспечивающий предварительную зарядку и гарантированное включение всех нижестоящих вентилей схемы. На практике в 32-разрядном АЛУ это позволило получить прирост скорости в 1,5-2 раза, при этом без нагромождения элементов. Более подробно метод описан в статье Р. Х. Крамбека 1982 года.

Предотвращение «защелкивания»
При производстве CMOS-транзисторов инженеры столкнулись с так называемым эффектом Latch-up («защелкивание»). Когда в разветвленной структуре СБИС возникают паразитные пути утечки тока, например, на землю. Луис Паррильо предложил решение на этапе производства: метод точного и согласованного легирования примеси в n и p подложках при помощи 8-ми масковой технологии изготовления под процесс 3,5 мкм, как и задумывалось для BELLMAC-80. С патентом можно ознакомиться по ссылке.
Распределенные вычисления
В BELLMAC-80 была включена поддержка параллельной шины VersaModule Eurocard (VME), которая позволяла нескольким узлам обрабатывать поток данных параллельно и управляться в режиме реального времени. К слову, это решение впервые было предложено для конкурентного проекта — 32-битного Motorola MC68000, разработка которого шла полным ходом.
Поддержка операционной системы UNIX и языка C
Для руководства AT&T этот момент был принципиальным. И чтобы справиться с ограничениями памяти, разработчики ввели набор из 169 инструкций, адаптированных под C и упрощающих компиляцию программ. Например, поддерживающих различные типы данных (байт, полуслово и целое слово), автоматическое преобразование размеров данных, обработку пользовательских подпрограмм и другие.
Дополнительно группа разработала собственную версию UNIX с поддержкой Duplex Multi Environment Real Time (позже превратившуюся в UNIX RTR). Она позволяла вызывать подпрограммы одной инструкцией, управлять прерываниями и распределять ресурсы процессора. Более подробно с нововведениями, примененными в BELLMAC-80, можно ознакомиться по ссылке.

Проектирование было завершено во второй половине 1979 года. И дальше началась извечная проблема при производстве процессоров — крайне низкий выход годных.
Чтобы решить эту проблему, команда разработчиков каждый день ездили на завод Western Electric в Нью-Джерси и буквально из кожи вон лезли: помогали калибровать оборудование, решали проблему очистки воздуха и прочее. Только спустя несколько месяцев, в начале 1980 года, удалось добиться приемлемого результата.
Однако возникла новая напасть — вместо ожидаемой частоты в 4 МГц первая версия BELLMAC-32 выдавала только 2 МГц. Казалось бы, нужно начать хотя бы с этого. Но руководство это не устроило — 32-битный CISC Motorola 68000, хотя и фактически работал на 16-битной шине данных и 24-разрядной шине адресов, уже готовился к выпуску.
Нужно было дать более достойный ответ, и команда приступила ко второй модификации BELLMAC-32A: на 2,5 мкм CMOS транзисторах, с целевой тактовой частотой 6,2 МГц.
Дальнейшая судьба и влияние
В ходе доработок инженеры обнаружили, что используемое ими современное испытательное оборудование Takeda Riken работало неверно: на этапе ОТК появлялся брак из-за неточных измерений. Руководитель группы тестирования Марк Барбер разработал поправочные таблицы, а также исследовал вопрос более глубоко совместно со специалистами Takeda Riken.
В результате проблему удалось решить кардинально: тактовая частота процессоров превышала заявленные 6,2 МГц, иногда достигая 9 МГц. Для примера, 16-разрядный Intel 8088 в оригинальном IBM PC 1981 года работал на частоте 4,77 МГц при объеме ОЗУ 64 кБ.

Однако из-за реорганизации AT&T и продажи подразделения AT&T Computer Systems в Western Electric, согласно антимонопольному соглашению, коммерческий выпуск затягивался.
Только в 1984 году процессоры BELLMAC-32, переименованные в WE 32x00, были представлены в составе компьютеров серии 3B2, 3B5 и 3B20, работавших на UNIX System V. В 1985 года AT&T начала распространять компьютеры в Европе (через фирму Olivetti) и предлагать 32-битные процессоры другим компаниям.

Однако по-настоящему успешными компьютеры и чипы не стали: на рынке AT&T проиграли конкуренцию вчистую. После приобретения корпорации NCR в сентябре 1991 года за 7,4 млрд долларов вектор продаж был смещен на другую продукцию. В 1995 году AT&T вообще продала свое подразделение микроэлектроники Hyundai Electronics. Так и закончился недолгий путь по-настоящему революционного продукта.
Руководитель проекта Майкл Кондри вспоминает:
До Bellmac-32 доминировали NMOS-транзисторы, — говорит Кондри. — Но CMOS изменил рынок, поскольку было доказано, что это более эффективная технология, реализованная в заводских условиях.
Его правоту подтверждает Сун-Мо Канг:
Мы были на грани возможного. Мы не просто следовали по проторенному пути — мы прокладывали новый. Это включало в себя не только архитектуру и проектирование микросхем, но и масштабную проверку — без современных инструментов цифрового моделирования или даже макетирования.
Сейчас технология CMOS используется в подавляющем большинстве современных чипов смартфонов, ноутбуков и планшетов. И именно разработчики BELLMAC-32 стали первопроходцами, которые показали миру возможности этой технологии, в противовес NMOS.
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS
SIISII
И дальше идёт бред. Поскольку и n-MOS, и p-MOS -- полевые транзисторы, а не биполярные. Схемотехника CMOS (по-русски КМОП) основана на использовании обоих этих типов транзисторов, а не одного из них, как схемотехники nMOS и pMOS. А биполярные транзисторы -- это совсем-совсем другое и по схемотехнике, и по технологии производства. И биполярная схемотехника (что ТТЛ, что, тем более, ЭСЛ) была намного быстрей любой, основанной на полевых транзисторах -- поэтому-то вычислительные машины и делали на микросхемах с биполярными транзисторами, а полевые оставались только для очень медленных применений. Кстати говоря, никуда это не делось, и современный КМОП был бы многократно медленнее современного ТТЛ или ЭСЛ; микропроцессоры и другие сложные схемы сейчас делают исключительно на КМОП по той причине, что от ТТЛ/ЭСЛ невозможно отворить такое количество тепла, которое они выделяли бы.
Тоже не очень соответствует действительности. 8088 мог работать и быстрей; в частности, для исходного 8088 указывают 5 МГц, для 8088-2 -- 8 МГц; зачем выбрали 4,77 МГц, я не в курсе (вообще, персоналки IBM -- это нечто противоположное мэйнфреймам IBM: крайне непродуманные, сделанные тяп-ляп и вообще defective by design с самого начала). IBM PC мог иметь память от 16 до 256 Кбайт; минимальный объём обеспечивал использование только интерпретатора Бейсика из ПЗУ в паре с магнитофоном; начиная с 32 Кбайт, можно было пользоваться дискетами.
Не были они первопроходцами. КМОП-логика уже достаточно давно выпускалась и её возможности были вполне известны. Максимум, в чём они были первыми, и то не факт, -- в использовании КМОП для микропроцессора, т.е. достаточно сложной микросхемы из нескольких тысяч транзисторов. Но, замечу, "серьёзные" машины ещё достаточно долго делали на биполярных микросхемах -- любые МОПы были слишком медленными.