Увеличенное фото чипа 8086; видно кремниевый кристалл и проволочную разварку

Революционный микропроцессор Intel 8086, представленный в 1978 году, породил целую группу процессоров х86, которые и по сей день используются в настольных и серверных компьютерах. Чип построен на цифровых цепях, однако в нём присутствуют и аналоговые контуры: генераторы подкачки заряда, превращающие питание процессора 5 В в отрицательное напряжение для увеличения быстродействия. Я занимаюсь реверс-инжинирингом 8086 на основе фоток кристалла, и в данной записи описываю конструкцию этих генераторов подкачки заряда и принцип их работы.

Строго говоря, конечно, весь чип создан из аналоговых компонентов. Как гласит старая поговорка, «цифровые компьютеры делаются из аналоговых комплектующих». Её автор – инженер DEC Дон Вонада, и его афоризмы были опубликованы в журнале Computer Engineering в 1978 году.

Инженерные афоризмы Вонады


  1. Никакой «земли» не существует.
  2. Цифровые компьютеры делаются из аналоговых комплектующих.
  3. Прототипы схем всегда работают.
  4. Сначала разрабатываются утверждённые временные условия, а потом обнаруживаются неутверждённые.
  5. Если в группе проводников переключаются все, кроме одного, то он тоже переключается.
  6. Если в группе затворов переключаются все, кроме одного, то он тоже переключается.
  7. У каждого пикофарада есть свой наногенри.
  8. Конденсаторы преобразуют сбои напряжения в сбои тока (закон сохранения энергии).
  9. Связанные между собой провода – это, скорее всего, линии передачи.
  10. Синхронизацией цепей можно заниматься бесконечно.
  11. Максимальные допуски редко складываются – но если такое случается, то только в машине лучшего клиента.
  12. Диагностика крайне эффективна в обнаружении уже решённых проблем.
  13. Системы обработки данных проверяются лишь частично, поскольку на практике невозможно проверить все возможные состояния машины.
  14. Законы Мёрфи работают 95% времени. Оставшиеся 5% — это перерывы на кофе.


Фото кристалла микропроцессора 8086. Слева расположено АЛУ и регистры. Внизу справа – ПЗУ с микрокодом. По ссылке с фото открывается фото побольше. По данной ссылке – оригинал фото (10 000 ? 10 000 пкс, 24 МБ — не влезает на habrastorage).

На фото выше показан крохотный кристалл процессора 8086 под микроскопом. Виден металлический слой сверху чипа, под которым прячется кремний. По внешнему краю видны распаечные провода, соединяющие контактные площадки кристалла с 40 внешними контактами чипа. Но если присмотреться внимательно, видно, что у кристалла 42 площадки. Зачем ему две лишние?

Интегральная схема строится на кремниевой подложке, на которую наносятся транзисторы. Для высокоскоростных ИС полезно бывает подавать на подложку отрицательное "напряжение смещения". Для этого у многих чипов из 1970-х годов есть внешний контакт, на который подаётся – 5 В, однако использовать дополнительный источник питания инженерам было неудобно. К концу 1970-х были разработаны схемы генератора подкачки заряда прямо на чипе, что позволяло получать отрицательное напряжение на месте. Такие чипы используют удобное единственное питание + 5 В, и все инженеры счастливы.

У подачи отрицательного напряжения смещения есть несколько преимуществ. Оно уменьшает паразитную ёмкость, что ускоряет чип, делает пороговое напряжение транзисторов более предсказуемым и уменьшает утечки тока.

Ранним чипам памяти DRAM и микропроцессора часто требовалось три напряжения питания: +5 В (Vcc), +12 В (Vdd) и -5 В (Vbb). В конце 1970-х улучшения технологии производства чипов позволили использовать единственное напряжение. К примеру, MK4116 (16-килобитная DRAM от Mostek 1977 года) требовала три напряжения, а улучшенная MK4516 (1981) работала уже с единственным +5 В, что упрощало проектирование схем. Забавно, что у некоторых из новых чипов для обратной совместимости были не подсоединённые ни к чему контакты Vbb и Vcc.

Чипы памяти от Intel пошли по похожему пути: 2116 DRAM (16 КБ, 1977) использовали три напряжения, а улучшенная 2118 (1979) всего одно. Точно так же знаменитый микропроцессор Intel 8080 (1974) использовал МОП-транзисторы с индуцированным каналом, и ему для работы требовались три напряжения. Микропроцессор Motorola 6800 (1974) использовал другой подход, работая с одним напряжением питания; хотя 6800 и был создан на транзисторе старого типа, ему не нужно было +12 В внешнего питания, так как он реализовывал удвоитель напряжения на месте.

Две лишние контактные площадки на кристалле 8086 нужны для подачи напряжения смещения на подложку. На фото в начале статьи показано расположение кремниевого кристалла на чипе, с распаечными проводами, соединяющими его с контактной площадкой, формирующим внешние контакты. На фото видно два небольших серых квадратика сверху и снизу. Каждый из них соединён с одной из «лишних» площадок. Генератор подкачки заряда на кристалле 8086 генерируют отрицательное напряжение, проходящее через провода распайки на эти квадратики, а потом через металлическую пластину под подложкой 8086.

Как работают генераторы подкачки заряда


На фото ниже выделены два генератора подкачки заряда процессора 8086. Мы рассмотрим верхний; схема работы нижнего такая же, он просто скомпонован по-другому, чтобы уместиться в доступное пространство. У каждого генератора есть цепь драйвера, большой конденсатор и площадка с проводом, соединяющим его с подложкой. Каждый генератор расположен рядом с одной из двух площадок заземления 8086 – вероятно, для минимизации электрического шума.


Фото кристалла микропроцессора 8086 с увеличенными генераторами напряжения смещения

Вам, возможно, интересно, как генератор подкачки заряда превращает положительное напряжение в отрицательное. Фокус в использовании «летающего» конденсатора, схема которого ниже. Слева конденсатор заряжен до 5 В. Разъединим его и соединим положительную часть с землёй. У конденсатора всё ещё есть заряд в 5 В, поэтому его нижняя часть должна выдавать -5 В. Быстро переключая конденсатор между двумя состояниями, генератор подкачки заряда выдаёт отрицательное напряжение.



Генератор подкачки заряда 8086 использует полевой транзистор с МОП-структурой и диоды для переключения конденсатора между состояниями, и генератор для управления транзистором – как показано на схеме ниже. Кольцевой генератор состоит из трёх инверторов, соединённых в петлю (кольцо). Поскольку количество инверторов нечётное, система нестабильна и колеблется. Если бы у неё было чётное количество инверторов, она была бы стабильной в одном из двух состояний. Такую технику используют в регистрах 8086 – пара инверторов хранит бит.

К примеру, если на первый инвертер приходит 0, он выдаст 1, второй выход будет 0, а третий – 1. Это переключает первый инвертер, и это переключение перемещается по петле, приводя к осцилляциям. Для замедления скорости осцилляции в кольцо вставлены две RC-цепи. Поскольку на зарядку и разрядку конденсатора уходит какое-то время, осцилляции замедляются, давая генератору подкачки заряда время сработать.

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


Схема генератора подкачки заряда в Intel 8086, дающего отрицательное напряжение смещения на подложке

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

Я, конечно, немного упростил схему работы. Из-за падения напряжения на транзисторе напряжение на подложке будет равняться -3 В, а не -5 В. Если чипу нужно более сильное падение напряжения, можно сделать каскад из нескольких генераторов подкачки заряда. Говоря о направлении работы генератора, я имею в виду направление тока. Если вы представляете себе подкачку электронов, то считайте, что отрицательно заряженные электроны закачиваются в противоположном направлении, в подложку.

Реализация в кремнии


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


Генератор подкачки заряда с металлическим слоем

После удаления металлического слоя становится лучше видно схему. Правую половину фото занимает крупный конденсатор подкачки заряда. Он, конечно, микроскопического размера, но по стандартам чипов огромен – примерно сравним с 16-битным регистром. Конденсатор состоит из поликремния, расположенного над кремнием, между которыми проложен изолирующий оксид. Поликремний и кремний формируют пластины конденсатора. Слева расположены конденсатор поменьше и резисторы, придающие генератору RC-задержку. Под ними находится цепь генератора и транзисторы.

Генератор собран из 13 транзисторов. Семь транзисторов формируют 3 инвертера (у одного транзистора есть дополнительный инвертер для дополнительного выходного тока). Из шести транзисторов драйвера два транзистора подтягивают выход вверх и четыре вниз. Схема странным образом отличается от обычной схемы инвертера, поскольку требования к току отличаются от обычной цифровой логики.


Ключевые компоненты генератора подкачки заряда 8086. Металлический слой удалён, видно слои поликремния и кремния.

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


Структура транзисторов, реализованных в ИС

На фото ниже показан вид сверху на транзистор в генераторе подкачки заряда. Как и на диаграмме, поликремний формирует затвор между участками кремния с добавками с обеих его сторон. Диод можно сделать из МОП-структуры, соединив затвор и сток через соединение кремний/поликремний, расположенное внизу фото. Кремний также можно соединять с металлическим слоем через сквозные контакты. Для этого фото металлический слой удалён, но оставшиеся бледные кружочки обозначают местонахождение сквозных контактов.


Транзистор в схеме генератора подкачки заряда. Поликремниевый затвор разделяет исток и сток транзистора.

На диаграмме ниже показано, как два диода собраны из 16 транзисторов. Для поддержки относительно большого тока генератора подкачки заряда в каждом диоде используется по 8 параллельных транзисторов. Отметьте, что у соседних транзисторов общие исток и сток, поэтому их получилось упаковать так плотно. Синие линии отмечают место, где были металлические провода – для этого фото их удалили. Тёмные кружочки – места, где были сквозные контакты между металлом и кремнием.


У генератора подкачки заряда есть два диода, каждый из которых сделан из 8 транзисторов. Исток, затвор и сток обозначены буквами S, G и D.

В итоге истоки верхних восьми транзисторов соединены с землёй металлическим проводом. Их затворы и стоки соединяются поликремнием под транзисторами, в результате чего из них получаются диоды. К конденсатору они подсоединены металлическим проводом. Восемь нижних транзисторов формируют второй диод. Их затворы и стоки соединены нижней металлической петлёй. Отметьте, как оптимизировано расположение элементов; к примеру, затворы изогнуты так, чтобы не касаться сквозных контактов.

Заключение


Генератор напряжения смещения на чипе 8086 представляет собой интересную комбинацию цифровой схемы (кольцевого генератора, составленного из инверторов) и аналогового генератора подкачки заряда. Он может показаться вам давно забытым устройством из истории компьютеров 1970-х, но на самом деле он присутствует и в современных ИС. В современных чипах это куда как более сложная схема, тщательно настроенная на выдачу нескольких регулируемых напряжений смещения на участках с отдельным питанием. В чём-то она похожа на архитектуру х86, начавшую свой путь в 1970-х и ставшую ещё более популярной сегодня, однако в рамках постоянного улучшения эффективности сложность её возросла невероятно.

Сегодня генераторы напряжения смещения продаются в качестве готовых патентованных идей – можно купить схему такого генератора и вставить в проект своего чипа (см. ссылки 1, 2, 3, 4, 5, 6). Существует даже стандарт на питание IEEE 1801, согласно которому инструменты разработки ИС могут генерировать необходимые схемы.

У математического сопроцессора Intel 8087, пристраиваемого к 8086, тоже есть свой генератор напряжения смещения. Он работает по тем же принципам, однако, как ни странно, использует другую схему с 5 инверторами