Заглядывая внутрь сопроцессора Intel 8087
Немного истории развития линейки восьмиразрядных процессоров, выпускаемых компанией Intel
Линейка восьмиразрядных процессоров начинает свою историю с апреля 1972 года. Intel 8008 вообще изначально планировался для использования в калькуляторах, устройствах ввода-вывода, но производитель хорошенько «поразмыслив», решил найти линейке новое предназначение — быть центральным процессором ПК. В зависимости от модификаций процессоров тактовая частота составляла 500 или 800 КГц, а производительность равнялась 45000-160000 операций в секунду.
Intel C8008
В апреле 1974 года Федерико Фаггини и Масатоши Шима разработали новую линейку процессоров — Intel 8080. 6000 транзисторов были размещены в 40-контактном керамическом корпусе, 16-разрядная шина адреса и 8-разрядная шина данных, адресуемая память в 64 Кб. Тактовая частота составляла 2 МГц, а производительность — до 500 000 операций в секунду. Для того чтобы использование процессора стало «комфортным», был разработан арифметический сопроцессор, тактовый генератор, формирователи шин, таймера, контроллеры периферийных устройств и тд.
Intel 8080A
Через два года в марте 1976 года свет увидела линейка Intel 8085: 6500 транзисторов были размещены в 40-контактном керамическом (или пластмассовом) корпусе. Тактовая частота составляла от 3 до 8 МГц, разрядность шины данных — 8 бит, разрядность шины адреса – 16 бит, адресуемая память – 64 Кб. Данная линейка успешно была «задействована» в ПК или в виде микроконтроллеров.
В июне 1978 года началось производство первой линейки шестнадцатиразрядных процессоров компании — Intel 8086: 29000 транзисторов были размещены на кристалле размером 5,5 х 5,5 мм. Тактовая частота составляла от 5 до 10 МГц, производительность – от 330 до 750 тысяч операций в секунду, разрядность шины данных — 16 бит, а разрядность шины адреса – 20 бит.
Intel 8086
Спустя год, летом 1979 года, Intel выпустила 8088 линейку — переходное звено между 8-ми и 16-ти разрядными процессорами: 29 000 транзисторов, тактовая частота составляла 5-10 МГц. Но линейка 8088 так и не стала популярной из-за своей дороговизны.
Intel P8088
Сопроцессоры 8087
В июне 1980 была выпущена линейка сопроцессоров Intel 8087 для Intel 8086, 8088. Такие сопроцессоры содержали 45000 транзисторов, тактовая частота в различных модификациях составляла от 4 до 10 МГц.
Intel C8087
Математический сопроцессор — это специальный модуль для выполнения операций с плавающей запятой, который работает в содружестве с центральным процессором.
В целях экономии от такой роскоши как сопроцессор просто-напросто отказывались. Но для решения трудоемких задач, например тех же инженерных расчетов, повышение производительности компьютера стало уже необходимостью. Нарастить производительность удалось за счет вот такого специального модуля — математического сопроцессора.
Согласно данным компании INTEL, математический сопроцессор может сократить время выполнения математических операций, таких как умножение, деление и возведение в степень, на 80 процентов и более. Скорость выполнения простых математических операций, таких как сложение и вычитание, не изменяется.
Внутри кристалла микропроцессора Intel 8087
Заглянув во внутрь Intel 8087 с плавающей запятой, я заметил интересную особенность на кристалле: схема формирования смещения подложки. В этой статье я объясню, как эта схема реализована, при использовании аналоговых и цифровых схем для создания отрицательного напряжения.
Intel разработала чип 8087 в 1980 году для того, чтобы улучшить производительность ПК с процессорами линеек 8086/8088 (таких, как IBM PC) при выполнении операций с плавающей запятой. Поскольку первые микропроцессоры были предназначены для выполнения операций с целыми числами, выполнение операций с числами с плавающей запятой было медленным, что уже и говорить о выполнение трансцендентных операций, таких как тригонометрические функции или логарифмы. Сопроцессор 8087 значительно повысил скорость выполнения задач с плавающей запятой, все выполнялось почти в 100 раз быстрее. Архитектура 8087 была реализована и в более поздние процессоры Intel, а инструкции 8087 по-прежнему используются в современных x86 ПК.
Для сопроцессора было введено более 60 новых инструкций, название которых начиналось на «F», для того, чтобы отличать их от целочисленных инструкций Intel 8086.Я вскрыл чип 8087 и при помощи высокопродуктивного микроскопа сделал фотографии, в итоге их компоновки получил такое изображение:
Кристалл 8087 весьма сложный, содержит 40 000 транзисторов (согласно заявлениям Intel) или 45 000 (согласно Википедии). На фотографии — металлический слой чипа, соединения расположены сверху чипа. Самые толстые белые линии обеспечивают питание и заземление всех частей микросхемы. Под слоем металла — поликремний или кремний, из которого сформированы транзисторы чипа.
В нижней половине чипа — расширенная 80-битная арифметическая схема: сумматор, регистры, переключатели, математические константы. Большой прямоугольник в середине чипа — это микрокод, который реализует набор инструкций процессора. В верхней части находятся логические схемы и схема шины, которая сопряжена с процессором 8086.
Черные линии вокруг чипа на фотографии — мелкие термокомпрессионные соединения, соединяющие контактные площадки ИС (металлизированные проводящие участки квадратной или прямоугольной формы, расположенные преимущественно по периферии кристалла или подложки) с 40 контактам на кристалле. Изучая техническое описание 8087, не сложно определить, какая контактная площадка на матрице какому контакту микросхемы соответствует; 40 контактов чипа (пронумерованы против часовой стрелки) подключены к 40 контактным площадкам на чипе.
Ниже приведено увеличенное изображение части матрицы, на ней мы можем лучше рассмотреть контактные площадки. (Обратите внимание, что выводы заземления и +5 В контактные площадки питания имеют несколько подключений одновременно, что увеличивает количество постачаемого тока). Но вот «сюрприз» — существует дополнительная контактная площадка и соединение, расположенные между контактными площадками 40 и 1, и не связанные ни с одним из контактов микросхемы.
Глядя на термокомпрессионное соединение проволочных выводов на чипе (ниже приведено изображение) выяснилось, что таинственная контактная площадка не подключена ни к одному контакту, а соединена с небольшим кубообразным блоком. Этот «кубик» находится на том же металлическом основании, что и кристалл, соединен с кремниевой подложкой чипа, платой.
Я провел инженерный анализ технологии изготовления с целью раскрытия «секретов фирмы» и пришел к выводам, что это часть схемы смещения подложки 8087, в которой это соединение используется, чтобы подавать отрицательное напряжение на подложку. Как же работает эта схема?
Что такое смещение подложки?
В 1970 годах интегральные схемы высокой плотности были построены из n-МОП-транзисторов (полевой транзистор с изолированным затвором и каналом n-типа). Изображение ниже наглядно демонстрирует их структуру. Основание чипа — кремниевая подложка. Транзисторы в свою очередь тоже из кремния. Для того, чтобы изменить тип проводимости и концентрацию носителей в объеме полупроводника для получения заданных свойств, участки кремния легируются примесями, чтобы создать диффузионные области с желаемыми свойствами. Транзистор может быть рассмотрен как резистор, позволяющий току течь между двумя диффузионными областями истока и стока. Транзистор контролируется затвором, выполненным из поликремния. Входное напряжение на затворе управляет протеканием тока от истока к стоку: высокое напряжение сигнала на затворе позволяет току протекать от истока к стоку, в то время как низкое напряжение сигнала блокирует ток. Изолирующий оксидный слой отделяет затвор от кремния под ним; важность этого слоя рассмотрим немного позже. Эти крошечные транзисторы можно комбинировать с целью формирования логических затворов, компонентов микропроцессоров и других кристаллов цифровой ИС.
В высокопроизводительных интегральных схемах было выгодно применять отрицательное «смещение» напряжения на подложке. Чтобы получить это напряжение смещения подложки, многие чипы в 1970-х годах имели внешний контакт, который был подключен к -5В. Однако инженерам не нравились чипы, требующие дополнительного напряжения. Чипы той эпохи часто нуждались в трех источниках питания. Кроме того, количество контактов на ИС было ограничено (как правило, всего 18 контактов для микросхем памяти). Потому использование еще двух контактов для дополнительного напряжения не было удачным решением. Частично решение было найдено в конце 1970-х годов: чипы генерировали отрицательное напряжение смещения внутри. Так появились чипы, в которых использовался один удобный источник питания + 5В, и это однозначно позволило инженерам быть «счастливее».
Внутри схемы смещения подложки 8087
Вы можете задаться вопросом, как чип может превратить положительное напряжение в отрицательное напряжение. Ответ — это схема с накачкой заряда, называемая зарядовый насос. Использует конденсаторы в качестве накопителей заряда, который переносится от одного конденсатора к другому с помощью системы переключателей. «Генератор» смещения в 8087 имеет два зарядовых насоса, работающих по очереди. На приведенных ниже схемах показана работа одного такого зарядового насоса. Зарядовый насос управляется колебательный сигналом (Q) и его инверсией (Q). На первом этапе включается верхний транзистор, в результате чего конденсатор заряжается до 5 вольт относительно земли. Второй этап — это то место, где происходит волшебство. Нижний транзистор включается, соединяя сторону высокого напряжения конденсатора с землей. Поскольку конденсатор все еще заряжается до 5 вольт, нижняя сторона конденсатора должна теперь составлять -5 вольт, создавая желаемое отрицательное напряжение на выходе. Когда осциллятор снова переворачивается, верхний транзистор включается, и цикл повторяется. Зарядовый насос получил такое название, так как он накачивает заряд с выхода на землю. Зарядовый насос аналогичен ручному водяному насосу.
Я осмотрел чип под микроскопом. Металлический слой скрывает транзисторы внизу, а это затрудняет просмотр схемы. Но, сняв слой металла при помощи соляной кислотой, я добрался до слоев поликремния и кремния, «обнаружил» транзисторы и конденсаторы, показано ниже.(Цветные области — это просто помехи, так как некоторые оксиды не были полностью удалены). На фото ниже показано два зарядовых насоса: один слева от контактной площадки, а второй внизу. Каждый зарядовый насос в соответствии схеме, имеет два диода, большой конденсатор и два транзистора.
Конденсаторы являются наиболее заметной «особенностью» схемы смещения подложки. Хотя на самом деле их размеры микроскопические, они огромны по стандартам измерения габаритов чипа. Площадь под конденсаторы составляет примерно как регистровая память в 72 бита, (больше чем 400 транзисторов). Каждый конденсатор состоит из поликремния над кремниевой частью, разделенной изолирующим оксидом; поликремний и кремний образуют пластины конденсатора. На фотографии конденсаторы усеяны квадратами; эти квадраты являются контактами между поликремнием (или кремнием) и металлическим слоем сверху. (Металлический слой не виден, поскольку он был стерт).
Четыре управляющие транзисторы это транзисторы большой мощности. Их размеры превосходят обычные транзисторы. Красные линии — это поликремниевые соединения, образующие затвор. Зеленые линии — контакты к металлическому слою, подключающие транзисторы к +5 В или земле. Диоды рядом с контактной площадкой формируются из транзисторов при соединении затвора и стока.
Зарядовые насосы приводятся в действие круговым осциллятором, как показано на изображении ниже. Этот круговой осциллятор состоит из пяти инверторов в петле короткого замыкания. Поскольку число инверторов нечетное, система нестабильна и будет осциллировать. Например, если вход для первого инвертора равен 0, выход пятого инвертора будет равен 1. Чтобы замедлить скорость колебаний, в кругу — две резистивно-емкостные цепи. Поскольку для зарядки и разрядки конденсатора потребуется некоторое время, колебания будут замедляться, что даст время для работы зарядовому насосу.
Прежде чем разложить информацию о круговом осцилляторе, я продемонстрирую, как реализован стандартный NMOS инвертор в кремнии. Ниже показан — инвертор, его схематическое изображение и то, как он воплощен на чипе. Инвертор использует транзистор и нагрузочный резистор (который в действительности является транзистором). Если входной сигнал низкий, транзистор выключен, то нагрузочный резистор подает на выход до +5 В. Если входной сигнал высок, транзистор включен, выходное напряжение подается на землю. Таким образом, схема инвертирует вход.
Легированный кремний на изображении — это большие участки бежевого цвета. Тонкие желтые участки, рядом с фиолетовыми, — поликремниевые. Вход представляет собой поликремниевый провод. Там, где он пересекается с легированным кремнием, он образует затвор транзистора между землей (ниже входа) и выходом (над входом). Нагрузочный резистор реализован в транзисторе, который имеет затвор и сток, соединенные вместе; указанный контакт образует это соединение между транзисторным поликристаллическим кремниевым затвором и его кремниевым стоком. Поликремний также образует выходной провод. Таким образом, инвертор на чипе реализован с двумя транзисторами.
На фото выше показано, как образуется круговой осциллятор на кристалле. Изображены все пять инверторов. Каждый инвертор имеет разное направление, что оптимизирует структуру.Также обозначены резисторы и конденсаторы R-C цепи. Резисторы — просто транзисторы с большим расстоянием между истоком и стоком, уменьшающие движение тока. Конденсаторы же сконструированы как конденсаторы зарядового насоса, но намного меньше в размерах; кремний на дне и поликремний сверху образуют конденсаторные пластины, разделенные тонким изолирующим оксидным слоем.
Выводы
Генератор напряжения смещения подложки на кристалле 8087 представляет собой интересную комбинацию цифровой схемы (круговой осциллятор, сформированный из инверторов) и аналоговый зарядовый насос. Схемы генератора напряжения смещения подложки были введены в конце 1970-х годов, это давало возможность микросхемам памяти и микропроцессорам работать от одного источника питания +5 В. Это было намного удобнее, чем использование трех разных источников напряжения. Генератор смещения подложки вырабатывает отрицательное напряжение с положительного напряжения питания при помощи зарядового насоса.
Хотя генератор смещения напряжения может показаться неясным моментом в компьютерной истории 1970-х годов, этот процесс по-прежнему является частью современных интегральных схем, правда все стало намного сложнее.
Несмотря на то, что чип Intel 8087 с плавающей запятой был разработан и введен в эксплуатацию 38 лет назад, его «влияние» ощутимо и сегодня. Благодаря его появлению, был принят стандарт IEEE 754 — «стандарт IEEE, описывающий формат представления чисел с плавающей точкой. Используется в программных (компиляторы с разных языков программирования) и аппаратных (CPU и FPU) реализациях арифметических действий (математических операций)». Инструкции 8087 остаются частью процессоров x86.
Примечания и ссылки
1. Для сопроцессора было введено более 60 новых инструкций, название которых начиналось на «F», для того, чтобы отличать их от целочисленных инструкций Intel 8086. Например, аналоги команд ADD/MUL/CMP, в 8087 выглядели как FADD/FMUL/FCOM. Эти инструкции были реализованы с помощью команды ESC «escape» 8086, которая была разработана, чтобы позволить процессору 8086 взаимодействовать с сопроцессором.
Появление сопроцессора привело к созданию стандарта IEEE 754 в 1985 году для арифметики с плавающей точкой;
2. Наложение отрицательного напряжения смещения на подложку имело несколько преимуществ. Это уменьшило паразитную емкость, что ускорило работу чипа, сделало пороговое напряжение транзистора более предсказуемым и уменьшило ток утечки.
3. Раньше DRAM и микропроцессорные чипы часто требовали наличия трех источников напряжения: + 5 В (Vcc), +12V (Vdd) и -5V (Vbb). В конце 1970-х годов усовершенствованная технология производства чипов позволила использовать один источник питания. Например, MK4116 от Mostek (16-килобайтная DRAM с 1977 года) требовал трех источников напряжения, в то время как улучшенный MK4516 (1981) работал на одном +5 В, упрощая тем самым конструкции аппаратных средств. С чипами Intel происходило то же самое: 2116 DRAM (16K, 1977) с использованием трех напряжений и улучшенный 2118 (1979) — одно напряжение. Известный микропроцессор Intel 8080 (1974 год) использовал транзисторы, работающие в режиме обогащения, потому требовал трех напряжений. Улучшенная версия, 8085 (1976 год), использовала транзисторы с режимом обеднения и питалась от одного источника питания в +5 В.
4. Третий (+12 В) источник питания в старых чипах не имеет отношения к смещению подложки. Этот источник использовался, потому что в ранних MOS-интегральных схемах были транзисторы, работающие в режиме обогащения, повышающие напряжение на затворах. Эти транзисторы не могли вытянуть сигналы вплоть до +5 В, добавили еще более высокий источник питания +12 В. В середине 1970-х годов новая технология (ионная имплантация) позволила создать транзисторы работающие в режиме обеднения, необходимость в +12 В была исчерпана.
5. Я немного упростил материал при обсуждении зарядового насоса. Из-за падения напряжения в транзисторах напряжение подложки, вероятно, будет около -3 В, а не -5 В. Под направлением насоса я имею в виду ток. Если вы думаете об этом как о перекачивании электронов, отрицательные электроны накачиваются в противоположном направлении подложки.
Спасибо, что остаетесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).
VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps до декабря бесплатно при оплате на срок от полугода, заказать можно тут.
Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?