Реверс-Инжиниринг Микропроцессора Intel 8086.

В июне 1978 года был представлен один из самых влиятельных чипов в полупроводниковой промышленности — Intel 8086. Это положило начало архитектуре x86, которая до сих пор доминирует в настольных и серверных вычислениях.

Давайте заглянем вглубь чипа и проанализируем внутреннее устройство и архитектурные особенности этого микропроцессора.



Реверс-инжиниринг микропроцессора Intel 8086.

На фотографии ниже показан кристалл процессора Intel 8086. На фотографии показан металлический слой чипа, скрывающий под ним кремний.

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

Площадки питания и заземления имеют по два соединительных провода для поддержки более высокого тока.

Микросхема была очень сложной для своего времени и содержала 29 тысяч транзисторов.

Обратите внимание на маркировку чипа в самом низу — там указан логотип Intel, модель процессора и год выпуска чипа.



Реверс-инжиниринг микропроцессора Intel 8086.

Процессор Intel 8086 кристалл

Реверс-инжиниринг микропроцессора Intel 8086.

Чтобы рассмотреть кристалл, необходимо аккуратно разобрать процессор.

Большинство интегральных схем упакованы в эпоксидную смолу, поэтому для растворения корпуса требуются опасные кислоты.

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



Реверс-инжиниринг микропроцессора Intel 8086.

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

Матрица соединяется с металлическими контактами чипа с помощью крошечных соединительных проводов.

Это 40-контактный DIP-корпус, стандартный форм-фактор микропроцессоров того времени.

Обратите внимание, что сам кремний занимает небольшую часть размера корпуса.

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

Ниже представлена фотография кристалла, с которого удалены слои металла и поликремния, обнажая лежащий под ним кремний с 29 000 транзисторами.

На чипе отмечены основные функциональные блоки, основанные на реверс-инжиниринге Кена Ширриффа.

В левой части чипа находится 16-битный тракт данных: регистры чипа и арифметические схемы.

Сумматор и верхние регистры образуют модуль интерфейса шины, который взаимодействует с внешней памятью, а нижние регистры и АЛУ образуют исполнительный блок, обрабатывающий данные.

На правой стороне чипа расположены схемы управления и декодирования инструкций, а также микрокод ПЗУ, который управляет каждой инструкцией.



Реверс-инжиниринг микропроцессора Intel 8086.

Базовые функциональные блоки 8086 Одной из особенностей 8086 была предварительная выборка инструкций, которая повышает производительность за счет извлечения инструкций из памяти до их использования.

Это было реализовано с помощью блока интерфейса шины в верхнем левом углу, который обращался к внешней памяти.

Верхние регистры включают сегментные регистры 8086, которые обеспечивают доступ к большему адресному пространству, чем 64 килобайта, разрешенные 16-битным адресом.

Для каждого доступа к памяти добавлялись сегментный регистр и смещение памяти для формирования окончательного адреса памяти.

В 8086 для вычисления адресов памяти использовался отдельный сумматор вместо АЛУ, что улучшало его производительность.

Верхние регистры также включают шесть байтов буфера предварительной выборки команд и счетчик программ.

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

Нижние регистры включают регистры общего назначения и индексные регистры, такие как указатель стека.

16-битное АЛУ выполняет арифметические операции (сложение и вычитание), логические операции и сдвиги.

АЛУ не выполняет умножение или деление; эти операции выполняются посредством последовательности сдвигов и сложения/вычитания, поэтому они относительно медленны.



Микрокод

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

В 1951 году Морис Уилкс придумал микрокод: вместо построения управляющей логики из сложных вентильных схем логику управления можно было заменить специальным кодом — микрокодом.

Чтобы выполнить инструкцию, компьютер выполняет несколько простых микроинструкций, заданных микрокодом.

При использовании микрокода построение управляющей логики процессора становится задачей программирования, а не задачей проектирования логики.

Микрокод был обычным явлением в мейнфреймах 60-х годов, но ранние микропроцессоры, такие как 6502 и Z-80, не использовали микрокод, потому что у них не было места для его хранения.

Однако более поздние процессоры, такие как 8086 и 68000, использовали микрокод, чтобы воспользоваться преимуществами увеличения плотности чипов.

Это позволило 8086 реализовать сложные инструкции (например, умножение и копирование строк) без усложнения схемы.

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



Реверс-инжиниринг микропроцессора Intel 8086.

На фото выше показана часть микрокода ПЗУ.

Под микроскопом видно содержимое микрокода; биты могут быть прочитаны в зависимости от наличия или отсутствия транзисторов в каждой позиции.

ПЗУ состоит из 512 микроинструкций шириной 21 бит каждая.

Каждая микроинструкция определяет перемещение данных между источником и пунктом назначения.

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

Микрокод весьма эффективен; простые инструкции, такие как инкремент или декремент (увеличение или уменьшение переменных соответственно), состоят из двух микроинструкций, тогда как более сложная инструкция копирования строки реализуется с использованием восьми микроинструкций.



История

Путь к 8086 не был таким прямым и запланированным, как можно было ожидать.

Его самым ранним предком был Datapoint 2200, настольный компьютер/терминал, выпущенный в июне 1970 года.

Он появился до того, как вошел в употребление термин «микропроцессор», и был основан на 8-битной плате, полной отдельных интегральных схем TTL. В то же время Datapoint вела переговоры с Intel и Texas Instruments о замене платы единым чипом, включающим все компоненты.

Копируя архитектуру Datapoint 2200, компания Texas Instruments создала процессор TMX 1795 (в 1971 году), а Intel — процессор 8008 (в 1972 году).



Реверс-инжиниринг микропроцессора Intel 8086.

Однако компания Datapoint отказалась от этих процессоров, что стало фатальным решением.

Хотя TI не смогла найти покупателя на TMX 1795 и отказалась от него, Intel решила вывести 8008 на массовый рынок, и за 8008 последовали 8080 и 8085.

Реверс-инжиниринг микропроцессора Intel 8086.

Датапойнт 2200 В 1975 году следующим большим достижением Intel стал процессор 8800, который должен был стать флагманской архитектурой компании в 1980-х годах.

Этот процессор был назван «микромейнфреймом» из-за его высокой производительности.

Он будет иметь совершенно новый набор инструкций, предназначенный для языков программирования высокого уровня, таких как Ada, и поддерживать объектно-ориентированное программирование и сборку мусора на аппаратном уровне.

К сожалению, а может быть и к счастью, этот чип оказался слишком амбициозным для своего времени и сильно отстал от графика.

В конце концов он был выпущен в 1981 году под названием iAPX 432 с неутешительной производительностью и потерпел неудачу с коммерческой точки зрения.

Поскольку выпуск iAPX 432 отставал от графика, в 1975 году Intel решила, что им нужен простой подключаемый процессор, который можно будет продавать до тех пор, пока iAPX 432 не будет готов.

Intel быстро разработала 16-битный 8086, совместимый с 8080, и выпустила его в 1978 году.

8086 имел большой успех благодаря появлению IBM PC в 1981 году.

К 1983 году IBM PC стал самым продаваемым компьютером и стал стандарт для персональных компьютеров.

В IBM PC использовалась более дешевая версия 8086 — 8088 с 8-битной шиной данных.

Успех IBM PC сделал архитектуру 8086 отраслевым стандартом, который остается актуальным 42 года спустя.

IBM PC AT 1984 года был обновлен до совместимого, но более мощного процессора 80286. Линия x86 перешла на 32-битные вычисления в 1985 году с выпуском 80386, а затем на 64-битные вычисления в 2003 году с выпуском AMD64 и первых процессоров Athlon 64. Архитектура x86 по-прежнему расширяется множеством дополнительных инструкций, таких как AVX-512, но даже несмотря на все эти изменения, x86 остается совместимой с исходной 8086.

Транзисторы

Чип 8086 был построен с использованием N-МОП-транзисторов.

Транзистор можно рассматривать как переключатель, управляющий током между двумя областями, называемыми стоком и истоком.

Эти транзисторы создаются путем легирования областей кремниевой подложки примесями для создания «диффузионных» областей с разными электрическими свойствами.

Транзистор активируется затвором из особого типа кремния, называемого поликремнием, расположенным над кремниевой подложкой.

Транзисторы соединены друг с другом металлическим слоем сверху, образуя прочную интегральную схему.

Современные процессоры могут иметь более десятка металлических слоев, тогда как у 8086 был только один.



Реверс-инжиниринг микропроцессора Intel 8086.

Структура МОП-транзистора На фотографии кремния ниже показаны некоторые транзисторы ALU крупным планом.

Легированный проводящий кремний имеет темно-фиолетовый цвет. Белые полосы — это места, где линии поликремния пересекают кремний, образуя затвор транзистора.

Вы можете насчитать 23 транзистора, образующих 7 затворов.

Транзисторы имеют сложную форму для более эффективного использования.

Кроме того, транзисторы бывают разных размеров, чтобы обеспечить высокую мощность там, где она необходима.

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

Кружочки — это соединения между слоем кремния и металлом, а маленькие квадраты — соединения между слоем кремния и поликремнием.



Реверс-инжиниринг микропроцессора Intel 8086.

Фотография каких-то 8086 транзисторов.

На фотографии удалены слои металла и поликремния.



Заключение

Изначально 8086 задумывался как временный процессор, пока Intel не выпустила свой флагманский чип iAPX 432, и был потомком процессора, построенного на плате, полной чипов TTL. Но после этого скромного начала архитектура x86 неожиданно стала доминирующей архитектурой в настольных и серверных вычислениях на сегодняшний день.

Теги: #Компьютерное оборудование #Процессоры #История ИТ #процессор #Старое оборудование #обратный инжиниринг #компьютер #история процессора #intel 8086 #ретро-железо

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.