Интел 8086
Эта статья нуждается в дополнительных цитатах для проверки . ( июнь 2024 г. ) |
Общая информация | |
---|---|
Запущен | 1978 |
Снято с производства | 1998 [1] |
Общий производитель | |
Производительность | |
Макс. процессора Тактовая частота | от 5 МГц до 10 МГц |
Ширина данных | 16 бит |
Ширина адреса | 20 бит |
Архитектура и классификация | |
Технологический узел | 3 мкм |
Набор инструкций | х86-16 |
Физические характеристики | |
Транзисторы |
|
Сопроцессор | Интел 8087 , Интел 8089 |
Упаковка |
|
Розетка | |
Продукты, модели, варианты | |
Вариант | |
История | |
Предшественник | Интел 8085 |
Преемники | 80186 и 80286 (оба были представлены в начале 1982 года) |
Статус поддержки | |
Не поддерживается |
8086 [3] (также называемый iAPX 86 ) [4] — это 16-битный микропроцессор, разработанный Intel в период с начала 1976 года по 8 июня 1978 года, когда он был выпущен. Intel 8088 , выпущенный 1 июля 1979 г. [5] представляет собой слегка модифицированный чип с внешней 8-битной шиной данных (позволяющий использовать более дешевые и меньшее количество поддерживающих микросхем ), [примечание 1] и примечателен тем, что процессор использовался в оригинальной конструкции IBM PC .
8086 дал начало архитектуре x86 , которая в конечном итоге стала самой успешной линейкой процессоров Intel. 5 июня 2018 года Intel выпустила ограниченную серию процессора в честь 40-летия Intel 8086 под названием Intel Core i7-8086K . [5]
История [ править ]
Предыстория [ править ]
В 1972 году Intel выпустила 8008 , первый 8-битный микропроцессор Intel. [примечание 2] В нем реализован набор команд , разработанный Datapoint Corporation для программируемых ЭЛТ-терминалов , который также оказался довольно универсальным. Устройству требовалось несколько дополнительных микросхем для создания функционального компьютера, отчасти из-за того, что оно было упаковано в небольшой 18-контактный «корпус памяти», что исключало использование отдельной адресной шины ( DRAM) в то время Intel была в основном производителем . ).
Два года спустя Intel выпустила 8080 . [примечание 3] использование новых 40-контактных DIL-корпусов, первоначально разработанных для микросхем калькуляторов, для обеспечения отдельной адресной шины. Он имеет расширенный набор команд, совместимый с исходным кодом (не двоично совместимый ) с 8008. [6] а также включает несколько 16-битных инструкций, упрощающих программирование. Устройство 8080 в конечном итоге было заменено устройством истощающей нагрузкой , работающим с 8085 (1977 г.), которому было достаточно одного источника питания +5 В вместо трех различных рабочих напряжений, как у более ранних чипов. [примечание 4] Другими хорошо известными 8-битными микропроцессорами, появившимися в эти годы, являются Motorola 6800 (1974 г.), General Instrument PIC16X (1975 г.), MOS Technology 6502 (1975 г.), Zilog Z80 (1976 г.) и Motorola 6809 (1978 г.).
Первый дизайн x86 [ править ]
Проект 8086 стартовал в мае 1976 года и изначально задумывался как временная замена амбициозному и отложенному проекту iAPX 432 . Это была попытка привлечь внимание к менее запаздывающим 16-битным и 32-битным процессорам других производителей — Motorola , Zilog и National Semiconductor .
Хотя 8086 был 16-битным микропроцессором, он использовал ту же микроархитектуру , что и 8-битные микропроцессоры Intel (8008, 8080 и 8085). Это позволило программам на языке ассемблера , написанным на 8-битной версии, беспрепятственно переходить на . [7] Были добавлены новые инструкции и функции, такие как целые числа со знаком, адресация по основанию + смещению и самоповторяющиеся операции. Были добавлены инструкции, помогающие компилировать исходный код вложенных функций в ALGOL семействе языков , включая Pascal и PL/M . По словам главного архитектора Стивена П. Морса , это стало результатом более ориентированного на программное обеспечение подхода. Другие улучшения включали инструкции микрокода для инструкций языка ассемблера умножения и деления. Конструкторы также предусмотрели наличие сопроцессоров , таких как 8087 и 8089 , поэтому структура шины была спроектирована гибкой.
Первая редакция набора команд и архитектуры высокого уровня была готова примерно через три месяца. [примечание 5] а поскольку инструменты САПР практически не использовались, над чипом одновременно работали четыре инженера и 12 макетчиков. [примечание 6] От идеи до работающего продукта 8086 потребовалось чуть больше двух лет, что в 1970-х годах считалось довольно быстрым для сложной конструкции.
8086 был секвенирован. [примечание 7] используя смесь случайной логики [8] и микрокода и был реализован с использованием схемы nMOS с истощающей нагрузкой примерно с 20 000 активных транзисторов (29 000, если считать все участки ПЗУ и PLA ). Вскоре он был переведен на новый усовершенствованный производственный процесс nMOS под названием HMOS (высокопроизводительная MOS), который Intel изначально разработала для производства продуктов с быстрой статической оперативной памятью . [примечание 8] За этим последовали версии HMOS-II, HMOS-III и, в конечном итоге, полностью статическая версия CMOS Intel CHMOS . для устройств с батарейным питанием, изготовленная с использованием процессов [примечание 9] Оригинальный чип имел площадь 33 мм², а минимальный размер элемента составлял 3,2 мкм. Инструкции MUL и DIV работали очень медленно из-за микрокодирования, поэтому программисты x86 обычно вместо этого использовали инструкции сдвига битов для умножения и деления. [ нужна ссылка ]
Модель 8086 была уменьшена до 2 мкм в 1981 году; в этой версии также исправлена ошибка регистра стека в исходных чипах 3,5 мкм. Позже варианты 1,5 мкм и КМОП были переданы другим производителям и не разрабатывались собственными силами.
Архитектура была определена Стивеном П. Морсом с некоторой помощью Брюса Равенела (архитектора 8087) в доработке окончательных версий. Дизайнер логики Джим МакКевитт и Джон Бэйлисс были ведущими инженерами группы разработчиков аппаратного уровня. [примечание 10] и Билл Полман, менеджер проекта. Наследие 8086 сохранилось в базовом наборе команд современных персональных компьютеров и серверов; 8086 также предоставил свои последние две цифры более поздним расширенным версиям конструкции, таким как Intel 286 и Intel 386 , которые в конечном итоге стали известны как семейство x86 . (Другая ссылка: идентификатор поставщика PCI для устройств Intel равен 8086 h .)
Подробности [ править ]
Автобусы и эксплуатация [ править ]
Все внутренние регистры, а также внутренние и внешние шины данных имеют ширину 16 бит, что твердо установило идентичность 8086 как «16-битного микропроцессора». 20-битная внешняя адресная шина обеспечивает 1 МБ (2 МБ). физическое адресное пространство размером 20 = 1 048 576 x 1 байт ). Это адресное пространство адресуется посредством «сегментации» внутренней памяти. Шина данных мультиплексирована с адресной шиной, чтобы уместить все линии управления в стандартный 40-контактный двухрядный корпус . Он обеспечивает 16-битную адресную шину ввода-вывода, поддерживающую 64 КБ отдельного пространства ввода-вывода. Максимальное линейное адресное пространство ограничено 64 КБ просто потому, что внутренние адресные/индексные регистры имеют ширину всего 16 бит. Программирование памяти объемом более 64 КБ включает настройку сегментных регистров (см. ниже); эта трудность существовала до тех пор, пока в архитектуре 80386 не были представлены более широкие (32-битные) регистры (аппаратное обеспечение управления памятью в 80286 не помогло в этом отношении, поскольку ширина его регистров все еще составляет всего 16 бит).
Аппаратные режимы 8086 [ править ]
Некоторые из управляющих контактов, передающих важные сигналы для всех внешних операций, имеют более одной функции в зависимости от того, работает ли устройство в минимальном или максимальном режиме. Первый режим предназначен для небольших однопроцессорных систем, а второй — для средних и больших систем, использующих более одного процессора (разновидность многопроцессорного режима). Максимальный режим необходим при использовании сопроцессора 8087 или 8089. Напряжение на выводе 33 (MN/ MX ) определяет режим. Изменение состояния контакта 33 меняет функцию некоторых других контактов, большинство из которых связаны с тем, как ЦП обрабатывает (локальную) шину. [примечание 11] Режим обычно встроен в схему и поэтому не может быть изменен программно. Работа этих режимов описана с помощью временных диаграмм в таблицах данных и руководствах Intel. В минимальном режиме все сигналы управления генерируются самим 8086.
Регистры и инструкции [ править ]
|
8086 имеет восемь более или менее общих 16-битных регистров (включая указатель стека , но исключая указатель команд, регистр флагов и регистры сегментов). К четырем из них, AX, BX, CX, DX, также можно получить доступ как к 8-битным парам регистров (см. рисунок), тогда как остальные четыре, SI, DI, BP, SP, являются только 16-битными.
Благодаря компактному кодированию, используемому в 8-битных процессорах, большинство инструкций представляют собой одноадресные или двухадресные операции, что означает, что результат сохраняется в одном из операндов. Максимум один из операндов может находиться в памяти, но этот операнд памяти также может быть пунктом назначения , тогда как другой операнд, источник , может быть либо регистровым , либо непосредственным . Одна и та же ячейка памяти также часто может использоваться как в качестве источника , так и в качестве назначения , что, помимо других факторов, еще больше способствует плотности кода, сравнимой (а часто и лучшей) с большинством восьмибитных машин того времени.
Степень общности большинства регистров намного выше, чем в 8080 или 8085. Однако регистры 8086 были более специализированными, чем в большинстве современных миникомпьютеров , а также неявно использовались некоторыми инструкциями. Хотя это вполне разумно для программиста на ассемблере, это усложняет распределение регистров для компиляторов по сравнению с более ортогональными 16-битными и 32-битными процессорами того времени, такими как PDP-11 , VAX , 68000 , 32016 и т. д. С другой стороны. Будучи более регулярным, чем довольно минималистичные, но вездесущие 8-битные микропроцессоры, такие как 6502 , 6800 , 6809 , 8085 , MCS-48 , 8051 и другие современные машины на основе аккумуляторов, значительно проще построить эффективный генератор кода для архитектура 8086.
Еще одним фактором этого является то, что в 8086 также были введены некоторые новые инструкции (отсутствующие в 8080 и 8085) для лучшей поддержки языков программирования высокого уровня на основе стека, таких как Pascal и PL/M ; некоторые из наиболее полезных инструкций: push mem-op
и ret size , напрямую поддерживая « Соглашение о вызовах Pascal ». (Несколько других, например push immed
и enter
были добавлены в последующие процессоры 80186, 80286 и 80386.)
64 КБ (один сегмент), Стек размером увеличивающийся в сторону меньших адресов, поддерживается аппаратно ; 16-битные слова помещаются в стек, и на вершину стека указывает SS:SP. Имеется 256 прерываний , которые могут быть вызваны как аппаратно, так и программно. Прерывания могут каскадироваться, используя стек для хранения адресов возврата .
8086 имеет 64 КБ 8-битного (или, альтернативно, 32 КБ 16-битного слова) портов ввода-вывода пространства .
Флаги [ править ]
8086 имеет 16-битный регистр флагов . Девять из этих флагов кода состояния активны и указывают текущее состояние процессора: флаг переноса (CF), флаг четности (PF), флаг вспомогательного переноса (AF), флаг нуля (ZF), флаг знака (SF), ловушка. флаг (TF), флаг прерывания (IF), флаг направления (DF) и флаг переполнения (OF). Регистр флагов, также называемый словом состояния, имеет следующую структуру: [9]
Кусочек | 15-12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Флаг | ИЗ | ДФ | ЕСЛИ | ТФ | Сан-Франциско | ЗФ | ИЗ | ПФ | CF |
Сегментация [ править ]
Также имеются четыре 16-битных сегментных 8086 регистра (см. рисунок), которые позволяют ЦП обращаться к одному мегабайту необычным образом памяти. Вместо объединения сегментного регистра с адресным регистром, как в большинстве процессоров, адресное пространство которых превышает размер их регистра, 8086 сдвигает 16-битный сегмент всего на четыре бита, прежде чем добавить его к 16-битному смещению (16 × сегмент + смещение). ), таким образом создавая 20-битный внешний (или эффективный, или физический) адрес из 32-битной пары сегмент:смещение. В результате к каждому внешнему адресу могут обращаться 2 12 = 4096 различных пар сегмент:смещение.
0110 1000 1000 0111 0000
|
Сегмент , | 16 бит, сдвинуто на 4 бита влево (или умножено на 0x10) |
+ 1011 0100 1010 1001
|
Компенсировать , | 16 бит |
|
||
0111 0011 1101 0001 1001
|
Адрес , | 20 бит |
Хотя многие программисты считают эту схему сложной и громоздкой, она также имеет преимущества; небольшая программа (менее 64 КБ) может быть загружена, начиная с фиксированного смещения (например, 0000) в ее собственном сегменте, избегая необходимости перемещения , с не более чем 15 байтами потери выравнивания.
Компиляторы семейства 8086 обычно поддерживают два типа указателей : ближний и дальний . Ближайшие указатели представляют собой 16-битные смещения, неявно связанные с кодом программы или сегментом данных, и поэтому могут использоваться только в частях программы, достаточно маленьких, чтобы поместиться в один сегмент. Дальние указатели представляют собой 32-битные пары сегмент:смещение, разрешающие 20-битные внешние адреса. Некоторые компиляторы также поддерживают огромные указатели, которые подобны дальним указателям, за исключением того, что арифметика указателя на огромном указателе обрабатывает его как линейный 20-битный указатель, в то время как арифметика указателя на дальнем указателе обтекает его 16-битное смещение, не затрагивая часть сегмента. адреса.
Чтобы избежать необходимости указывать ближний и дальний для многочисленных указателей, структур данных и функций, компиляторы также поддерживают «модели памяти», которые определяют размеры указателей по умолчанию. Крошечные средние (максимум 64 КБ), маленькие (максимум 128 КБ), компактные (данные > 64 КБ), (отдельные массивы (код > 64 КБ), большие (код, данные > 64 КБ) и огромные > 64 КБ) модели охватывают практические комбинации , далеко и огромные указатели на код и данные. Миниатюрная модель означает , что код и данные совместно используются в одном сегменте, как и в большинстве 8-битных процессоров, и могут использоваться, .com например, для создания файлов . Предварительно скомпилированные библиотеки часто выпускаются в нескольких версиях, скомпилированных для разных моделей памяти.
По данным Морса и др.,. [10] проектировщики фактически планировали использовать 8-битный сдвиг (вместо 4-битного), чтобы создать физическое адресное пространство размером 16 МБ. Однако, поскольку это заставило бы сегменты начинаться с границ 256 байт, а 1 МБ считался очень большим для микропроцессора примерно в 1976 году, от этой идеи отказались. Кроме того, в недорогом 40-контактном корпусе не хватало контактов для дополнительных четырех контактов адресной шины.
В принципе, адресное пространство серии x86 могло быть расширено в более поздних процессорах за счет увеличения значения сдвига, при условии, что приложения получали свои сегменты из операционной системы и не делали предположений об эквивалентности различных пар сегмент:смещение. [примечание 12] На практике использование «огромных» указателей и подобных механизмов было широко распространено, а плоская 32-битная адресация, ставшая возможной благодаря 32-битным регистрам смещения в 80386, в конечном итоге расширила ограниченный диапазон адресации в более общем виде.
Поток команд извлекается из памяти в виде слов и при необходимости адресуется процессором внутри на уровне байтов. Механизм организации очереди потока команд позволяет помещать в очередь до 6 байтов потока команд в ожидании декодирования и выполнения. Очередь действует как буфер «первым пришел — первым обслужен» (FIFO), из которого модуль выполнения (EU) извлекает байты инструкций по мере необходимости. Всякий раз, когда в очереди есть место как минимум для двух байтов, BIU пытается выполнить цикл выборки слов из памяти. Если очередь пуста (например, после инструкции ветвления), первый байт в очереди немедленно становится доступным для EU. [11]
Портирование старого программного обеспечения [ править ]
Небольшие программы могут игнорировать сегментацию и использовать простую 16-битную адресацию. Это позволяет 8-битное легко переносить программное обеспечение на 8086. Авторы большинства реализаций DOS воспользовались этим, предоставив интерфейс прикладного программирования, очень похожий на CP/M , а также включив простой .com формат исполняемого файла , идентичный в КП/М. Это было важно, когда 8086 и MS-DOS были новыми, потому что это позволяло быстро сделать доступными многие существующие CP/M (и другие) приложения, что значительно облегчило принятие новой платформы.
Пример кода [ править ]
Следующий исходный код сборки 8086 предназначен для подпрограммы с именем _strtolower
с нулевым завершением который копирует строку символов ASCIIZ из одного места в другое, преобразуя все буквенные символы в нижний регистр. Строка копируется по одному байту (8-битному символу) за раз.
0000 0000 55 0001 89 E5 0003 56 0004 57 0005 8B 75 06 0008 8B 7D 04 000B FC 000C AC 000D 3C 41 000F 7C 06 0011 3C 5A 0013 7F 02 0015 04 20 0017 AA 0018 08 C0 001A 75 F0 001C 5F 001D 5E 001E 5D 001F C3 001F |
; _strtolower:
; Copy a null-terminated ASCII string, converting
; all alphabetic characters to lower case.
; ES=DS
; Entry stack parameters
; [SP+4] = src, Address of source string
; [SP+2] = dst, Address of target string
; [SP+0] = Return address
;
_strtolower proc
push bp ;Set up the call frame
mov bp,sp
push si
push di
mov si,[bp+6] ;Set SI = src (+2 due to push bp)
mov di,[bp+4] ;Set DI = dst
cld ;string direction ascending
loop: lodsb ;Load AL from [si], inc si
cmp al,'A' ;If AL < 'A',
jl copy ; Skip conversion
cmp al,'Z' ;If AL > 'Z',
jg copy ; Skip conversion
add al,'a'-'A' ;Convert AL to lowercase
copy: stosb ;Store AL to [di], inc di
or al,al ;If AL <> 0,
jne loop ; Repeat the loop
done: pop di ; restore di and si
pop si
pop bp ;Restore the prev call frame
ret ;Return to caller
end proc
|
В примере кода используется регистр BP (базовый указатель) для создания кадра вызова — области в стеке, которая содержит все параметры и локальные переменные для выполнения подпрограммы. Этот вид соглашения о вызовах поддерживает реентерабельный и рекурсивный код и используется в языках, подобных Алголу, с конца 1950-х годов. В модели плоской памяти предполагается, в частности, что сегменты DS и ES адресуются к одной и той же области памяти.
Производительность [ править ]
частично заслоняются другими конструктивными решениями в этом конкретном чипе, они Хотя мультиплексированные шины адреса и данных немного ограничивают производительность; Передача 16-битных или 8-битных величин выполняется в четырехтактовом цикле доступа к памяти, который быстрее для 16-битных, но медленнее для 8-битных величин по сравнению со многими современными 8-битными процессорами. Поскольку инструкции различаются от одного до шести байтов, выборка и выполнение выполняются одновременно и разделены на отдельные блоки (как и в современных процессорах x86): блок интерфейса шины передает поток команд исполнительному блоку через 6-байтовую очередь предварительной выборки ( форма слабосвязанной конвейерной обработки ), ускорение операций с регистрами и непосредственными значениями , при этом операции с памятью стали медленнее (четыре года спустя эта проблема с производительностью была исправлена в 80186 и 80286 ). Однако полная (вместо частичной) 16-битная архитектура с ALU полной ширины означала, что 16-битные арифметические инструкции теперь могли выполняться за один цикл ALU (вместо двух, посредством внутреннего переноса, как в 8080 и 8085). , что значительно ускоряет выполнение таких инструкций. В сочетании с ортогонализация операций по сравнению с типами операндов и режимами адресации , а также другие улучшения сделали прирост производительности по сравнению с 8080 или 8085 довольно значительным, несмотря на случаи, когда старые чипы могут быть быстрее (см. Ниже).
инструкция | регистр-регистр | зарегистрироваться немедленно | регистровая память | регистр памяти | непосредственная память |
---|---|---|---|---|---|
рис | 2 | 4 | 8+EA | 9+EA | 10+EA |
ИДТИ | 3 | 4 | 9+ЭА, | 16+ЕА, | 17+ЕА |
прыгать | зарегистрироваться ≥ 11; этикетка ≥ 15; состояние,этикетка ≥ 16 | ||||
целочисленное умножение | 70~160 (в зависимости от данных операнда и размера), включая любые советники | ||||
целочисленное деление | 80~190 (в зависимости от данных операнда и размера), включая любые советники |
- EA = время вычисления эффективного адреса в диапазоне от 5 до 12 циклов.
- В лучшем случае время зависит от состояния предварительной выборки, выравнивания инструкций и других факторов.
Как видно из этих таблиц, операции с регистрами и непосредственными действиями были быстрыми (от 2 до 4 тактов), тогда как инструкции операндов памяти и переходы были довольно медленными; прыжки требовали больше тактов, чем на простых 8080 и 8085 , а 8088 (используемый в IBM PC) дополнительно затруднялся из-за более узкой шины. Причин, по которым большинство инструкций, связанных с памятью, были медленными, было три:
- Слабосвязанные блоки выборки и выполнения эффективны для предварительной выборки инструкций, но не для переходов и произвольного доступа к данным (без специальных мер).
- Специального сумматора вычисления адреса не было; подпрограммы микрокода должны были использовать для этого основной ALU (хотя существовал специальный сумматор сегментов + смещений ).
- Шины адреса и данных были мультиплексированы , что приводило к немного более длительному (33–50%) циклу шины, чем в типичных современных 8-битных процессорах. [ сомнительно – обсудить ]
Однако производительность доступа к памяти была значительно улучшена в следующем поколении процессоров Intel семейства 8086. И 80186 , и 80286 имели выделенное оборудование для вычисления адреса, что позволяло экономить много циклов, а 80286 также имел отдельные (немультиплексированные) шины адреса и данных.
Плавающая точка [ править ]
8086/8088 можно было подключить к математическому сопроцессору для повышения производительности операций с плавающей запятой на основе аппаратного обеспечения/микрокода . Intel 8087 был стандартным математическим сопроцессором для 8086 и 8088, работающим с 80-битными числами. Такие производители, как Cyrix (совместимый с 8087) и Weitek ( не совместимый с 8087), в конечном итоге разработали высокопроизводительные сопроцессоры с плавающей запятой, которые составили конкуренцию 8087.
Версии чипа [ править ]
Тактовая частота изначально была ограничена 5 МГц, [примечание 13] но последние версии в HMOS были указаны для 10 МГц. Версии HMOS-III и производились в течение длительного времени (по крайней мере, до 1990-х годов) для встраиваемых систем , хотя их преемник, 80186/80188 . CMOS (который включает в себя некоторые встроенные периферийные устройства), был более популярен для встроенного использования .
80C86, CMOS-версия 8086, использовалась в GRiDPad , Toshiba T1200 , HP 110 и, наконец, в Lunar Prospector 1998–1999 годов .
Что касается упаковки, Intel 8086 был доступен как в керамическом, так и в пластиковом DIP-корпусе.
-
Керамический вариант D8086.
-
Пластиковый вариант P8086.
Список Intel 8086 [ править ]
Номер модели | Частота | Технология | Диапазон температур | Упаковка | Дата выпуска | Цена (долл. США) [список2 1] |
---|---|---|---|---|---|---|
8086 | 5 МГц [13] | ХМОС | от 0 °С до 70 °С [14] | 8 июня 1978 г. [15] | $86.65 [16] | |
8086-1 | 10 МГц | НОЧЬ II | Коммерческий | |||
8086-2 | 8 МГц [13] | НОЧЬ II | Коммерческий | Январь/февраль 1980 г. [17] | $200 [17] [18] | |
8086-4 | 4 МГц [13] | ХМОС | Коммерческий | $72.50 [список2 2] [19] | ||
I8086 | 5 МГц | ХМОС | Промышленный от −40 °C до +85 °C [14] | Май/июнь 1980 г. [14] | $173.25 [14] | |
М8086 | 5 МГц | ХМОС | Военный класс от −55 °C до +125 °C [20] | |||
80C86 [21] | КМОП | 44-контактный ПЛКК [список2 3] [22] |
Производные и клоны [ править ]
Совместимые и во многих случаях улучшенные версии производились компанией Fujitsu . [23] Harris / Intersil , OKI , Siemens , Texas Instruments , NEC , Mitsubishi и AMD . Например, пара NEC V20 и NEC V30 была аппаратно совместима с 8088 и 8086, хотя NEC создала оригинальные клоны Intel μPD8088D и μPD8086D соответственно, но включила набор команд 80186 вместе с некоторыми (но не всеми) 80186. улучшения скорости, предоставляющие возможность мгновенного обновления как набора команд, так и скорости обработки без необходимости производителям изменять свои конструкции. Такие относительно простые и маломощные 8086-совместимые процессоры в КМОП до сих пор используются во встраиваемых системах.
Электронная промышленность Советского Союза смогла воспроизвести 8086 как с помощью промышленного шпионажа, так и с помощью реверс-инжиниринга. [ нужна ссылка ] . Получившаяся микросхема К1810ВМ86 была двоичной и совместимой по выводам с 8086.
i8086 и i8088 были ядрами советских ПК-совместимых настольных компьютеров EC1831 и EC1832 соответственно . (EC1831 — это ЕС-идентификатор IZOT 1036C, а EC1832 — это ЕС-идентификатор IZOT 1037C, разработанного и изготовленного в Болгарии. EC означает «Единая система».) Однако компьютер EC1831 (IZOT 1036C) имел существенные аппаратные отличия от прототипа IBM PC. . EC1831 был первым ПК-совместимым компьютером с динамическим определением размера шины (патент США № 4831514). Позже некоторые принципы EC1831 были приняты в PS/2 (патент США № 5548786) и некоторых других машинах (заявка на патент Великобритании, публикация № GB-A-2211325, опубликованная 28 июня 1989 г.).
-
Советский клон К1810ВМ86
-
NEC μPD8086D-2 (8 МГц) 1984 года, неделя 19 ЯПОНИЯ (клон Intel D8086-2)
-
AMD D8086
Чипы поддержки [ править ]
- Intel 8237 : контроллер прямого доступа к памяти (DMA)
- Intel 8251 : универсальный синхронный/асинхронный приемник/передатчик со скоростью 19,2 кбит/с.
- Intel 8253 : программируемый интервальный таймер, 3x 16-бит, макс. 10 МГц.
- Intel 8255 : программируемый периферийный интерфейс, 3 8-битных контакта ввода-вывода, используемые для подключения принтера и т. д.
- Intel 8259 : программируемый контроллер прерываний
- Intel 8279 : контроллер клавиатуры/дисплея, сканирует матрицу клавиатуры и матрицу дисплея, например 7-сегментную.
- Intel 8282/8283 : 8-битная защелка
- Intel 8284 : тактовый генератор
- Intel 8286/8287 : двунаправленный 8-битный драйвер. В 1980 году обе версии Intel I8286/I8287 (промышленного класса) были доступны по цене 16,25 долларов США в количестве 100 штук. [14]
- Intel 8288 : контроллер шины
- Intel 8289 : арбитр шины
- NEC μPD765 или Intel 8272A : контроллер гибких дисков [24]
8086 Микрокомпьютеры , использующие
- В 1978 году был анонсирован Intel Multibus -совместимый одноплатный компьютер ISBC 86/12. [25]
- Xerox NoteTaker был одним из первых портативных компьютеров , выпущенных в 1978 году, в нем использовались три чипа 8086 (в качестве ЦП, графического процессора и процессора ввода-вывода), но он так и не поступил в коммерческое производство.
- Seattle Computer Products поставила системы 8086 на базе шины S-100 (SCP200B) еще в ноябре 1979 года.
- Норвежский Mycron 2000, представленный в 1980 году.
- Один из самых влиятельных микрокомпьютеров, IBM PC , использовал Intel 8088 , версию 8086 с 8-битной шиной данных (как упоминалось выше).
- Первый Compaq Deskpro использовал процессор 8086, работавший на частоте 7,16 МГц, но был совместим с картами расширения, разработанными для IBM PC XT с частотой 4,77 МГц , и мог переключать процессор на более низкую скорость (что также включало буфер шины памяти для имитации более медленный доступ 8088), чтобы избежать проблем с синхронизацией программного обеспечения.
- 8086-2 с частотой 8 МГц использовался в ПК AT&T 6300 (созданном Olivetti и известном во всем мире под несколькими брендами и номерами моделей), настольном микрокомпьютере, совместимом с IBM PC. M24 / PC 6300 имеет 8-битные слоты расширения, совместимые с IBM PC/XT, но некоторые из них имеют собственное расширение, обеспечивающее полную 16-битную шину данных ЦП 8086 (аналогично по концепции 16-битным слотам IBM PC AT , но отличающиеся деталями конструкции и физически несовместимые), а вся периферия системы, включая бортовую видеосистему, также поддерживает 16-битную передачу данных. Более поздняя версия Olivetti M24SP имела процессор 8086-2, работающий на максимальной частоте 10 МГц.
- Модели IBM PS/2 были построены на процессоре 8086 с частотой 25 и 30 8 МГц.
- Amstrad PC1512 , PC1640 , PC2086, PC3086 и PC5086 использовали процессоры 8086 с частотой 8 МГц.
- NEC PC-9801 .
- В машинах Tandy 1000 серий SL и RL использовались процессоры 8086 с частотой 9,47 МГц.
- IBM Displaywriter Текстовый процессор [26] и профессиональный компьютер Wang, производимый Wang Laboratories , также использовал 8086.
- НАСА использовало оригинальные процессоры 8086 в оборудовании для наземного обслуживания космического корабля "Дискавери" до завершения программы космического челнока в 2011 году. Это решение было принято для предотвращения регресса программного обеспечения , который мог возникнуть в результате обновления или перехода на несовершенные клоны. [27]
- KAMAN Технологические и территориальные радиационные мониторы [28]
- Tektronix . 4170 работал под управлением CP/M-86 и использовал 8086 Руководство по эксплуатации локального графического процессора 4170 (PDF)
См. также [ править ]
- Количество транзисторов
- iAPX для имени iAPX
Примечания [ править ]
- ^ Меньше TTL-буферов, защелок, мультиплексоров (хотя количество TTL- логики существенно не уменьшилось). Это также позволяет использовать дешевые микросхемы семейства 8080, где 8254 CTC, 8255 в конструкции IBM PC использовались PIO и 8259 PIC. Кроме того, это упрощает компоновку печатных плат и удешевляет платы, а также требует меньшего количества (1- или 4-битных) микросхем DRAM.
- ^ с улучшенной нагрузкой с использованием логики PMOS (требуется 14 В , достигается совместимость с TTL за счет наличия V CC при +5 В и V DD при -9 В).
- ^ Использование ненасыщенной логики NMOS с улучшенной нагрузкой (требующей более высокого напряжения затвора для затворов нагрузочного транзистора).
- ^ Это стало возможным благодаря логике nMOS с истощающей нагрузкой (позже 8085 был создан с использованием обработки HMOS, как и 8086).
- ^ По словам Морса, 0-я версия набора инструкций и архитектуры была готова примерно за три месяца.
- ^ Использование рубиллита , световых досок, линеек, электрических ластиков и дигитайзера (по словам Дженни Эрнандес, члена команды разработчиков 8086, в заявлении, сделанном на веб-странице Intel по случаю ее 25-летия).
- ^ 8086 использовал меньше микрокода, чем конструкции многих конкурентов, таких как MC68000 и другие.
- ^ Быстрые статические ОЗУ по технологии MOS (так же быстрые, как и биполярные ОЗУ) были важным продуктом для Intel в этот период.
- ^ CHMOS — это название Intel для КМОП-схем, изготовленных с использованием этапов обработки, очень похожих на HMOS .
- ↑ Другими членами команды дизайнеров были Питер А. Столл и Дженни Эрнандес.
- ^ IBM PC и PC/XT используют процессор Intel 8088, работающий в максимальном режиме, что позволяет процессору работать с дополнительным сопроцессором 8087, установленным в разъем математического сопроцессора на материнской плате ПК или PC/XT. (ПК и ПК/XT могут потребовать максимальный режим по другим причинам, например, для поддержки контроллера DMA.)
- ^ Некоторые клоны 80186 изменили значение сдвига, но никогда широко не использовались в настольных компьютерах.
- ^ (IBM PC использовала частоту 4,77 МГц, 4/3 стандартной частоты цветовой синхронизации NTSC )
Ссылки [ править ]
- ^ «Жизненный цикл процессора» . www.cpushack.com .
- ^ Льюнес, Энн, «Архитектура Intel386 останется здесь», корпорация Intel, Microcomputer Solutions, июль/август 1989 г., стр. 2
- ^ «Зал славы микропроцессоров» . Интел. Архивировано из оригинала 6 июля 2007 г. Проверено 11 августа 2007 г.
- ^ Справочник программиста iAPX 286 (PDF) . Интел. 1983. с. 1-1.
- ^ Jump up to: Перейти обратно: а б «С Днем Рождения, 8086: ограниченная серия процессоров Intel Core i7-8086K 8-го поколения обеспечивает превосходные игровые возможности» . Интел.
- ^ «Семья 8080» . Мир процессоров .
- ^ Скэнлон, Лео Дж. (1988). Язык ассемблера 8086/8088/80286 . Книги Брейди. п. 12 . ISBN 978-0-13-246919-7 .
[…] 8086 совместим программно с 8080 на уровне ассемблера. […]
- ^ Гейгер, Рэндалл Л.; Аллен, Филипп Э.; Стрейдер, Ноэль Р. (1990). «Случайная логика против форм структурированной логики». Методы проектирования СБИС для аналоговых и цифровых схем . МакГроу-Хилл. п. 779. ИСБН 0-07-023253-9 . — Иллюстрация использования слова «случайный» для описания логики управления ЦП.
- ^ Корпорация Интел (1983). Руководство пользователя IAPX 86, 88, 186 и 188: справочник программиста . Интел. стр. 3–5. ISBN 978-0835930352 . ОСЛК 11091251 .
- ^ Морс, Стивен П.; Равенел, Брюс В.; Мазор, Стэнли; Полман, Уильям Б. (октябрь 1980 г.). «Микропроцессоры Intel: с 8008 по 8086» . IEEE-компьютер . 13 (10): 42–60. дои : 10.1109/MC.1980.1653375 . S2CID 206445851 .
- ^ «Техническое описание 16-битного HMOS-процессора 8086» (PDF) . Интел . Проверено 26 ноября 2021 г.
- ^ Справочное руководство по Microsoft Macro Assembler 5.0 . Корпорация Майкрософт. 1987.
Тайминги и кодировки в этом руководстве используются с разрешения Intel и взяты из следующих публикаций: Intel Corporation. Руководство пользователя iAPX 86, 88, 186 и 188, Справочник программиста, Санта-Клара, Калифорния, 1986 г.
(Аналогично для iAPX 286, 80386, 80387.) - ^ Jump up to: Перейти обратно: а б с Руководство пользователя семейства 8086 . Корпорация Интел. Октябрь 1979 г. с. Б-1. OCLC 65699372 .
- ^ Jump up to: Перейти обратно: а б с д и Корпорация Intel (май – июнь 1980 г.). «8086 Доступно для промышленной среды». Предварительный просмотр Intel (специальный выпуск: 16-битные решения): 29. OCLC 803251993 .
- ^ «Краткое справочное руководство по микропроцессорам Intel® — год» . www.intel.com .
- ^ Корпорация Intel (май – июнь 1980 г.). «Семейство 8086: концепции и реалии». Предварительный просмотр Intel (специальный выпуск: 16-битные решения): 19. ISSN 1041-8547 . OCLC 10331599 .
- ^ Jump up to: Перейти обратно: а б Корпорация Intel (январь – февраль 1980 г.). «Новые продукты: Faster 8086 обеспечивает на 60% большую производительность». Предварительный просмотр Intel : 22.
- ^ Корпорация Intel (май – июнь 1980 г.). «Новые продукты семейства 8086 повышают производительность процессора на 50 процентов». Предварительный просмотр Intel (специальный выпуск: 16-битные решения): 17.
- ^ Корпорация Intel (май – июнь 1979 г.). «Компоненты микрокомпьютера: новое снижение цен и усовершенствование производства делают популярный микропроцессор 8086 еще более привлекательным». Предварительный просмотр Intel : 11.
- ^ Корпорация Intel (август 1981 г.). Intel iAPX86, 88 Руководство пользователя . Корпорация Интел. п. Б-25. ISBN 0835930165 . OCLC 8459750 .
- ^ Корпорация Intel, «NewsBit: Intel лицензирует Oki на версии CMOS нескольких продуктов», Solutions, июль/август 1984 г., стр. 1.
- ^ Эшборн, Джим; «Усовершенствованная упаковка: небольшое дело имеет большое значение», корпорация Intel, Solutions, январь/февраль 1986 г., стр. 2
- ^ Корпорация Intel, «NewsBits: Новости из второго источника», Solutions, январь/февраль 1985 г., стр. 1
- ^ «Эволюция контроллера гибких дисков | Музей OS / 2» . 26 мая 2011 г. Проверено 12 мая 2016 г.
В оригинальных IBM PC (1981 г.) и PC/XT (1983 г.) FDC физически располагался на отдельной карте-адаптере дискеты. Сам FDC представлял собой NEC μPD765A или его совместимую деталь, например Intel 8272A.
- ^ «Intel добавляет 16-битную одноплатную плату» . Компьютерный мир . Том. XII, нет. 50. 11 декабря 1978. с. 86. ISSN 0010-4841 .
- ^ Захманн, Марк (23 августа 1982 г.). «Недостатки персонального компьютера IBM расстраивают критиков» . Инфомир . Том. 4, нет. 33. С. 57–58. ISSN 0199-6649 .
IBM Displaywriter заметно дороже, чем другие промышленные микросхемы, использующие 8086.
- ^ «НАСА смело выставляет старые детали на eBay» . Нью-Йорк Таймс . 12 мая 2002 г.
- ^ Каман Тех. Руководство
Внешние ссылки [ править ]
- Таблицы данных Intel
- Список процессоров 8086 и их клонов на CPUworld.com
- 8086 Распиновка
- Интерфейс максимального режима. Архивировано 21 июля 2011 года. Проверено 10 июля 2022 года.
- Руководство пользователя 8086, октябрь 1979 г., корпорация INTEL ( документ в формате PDF )
- Программные коды 8086 с использованием эмулятора emu8086 (версия 4.08)
- Дженнер, Эндрю (сентябрь 2020 г.). «Микрокод 8086 дизассемблирован» . Блог Ренин .
- Ширрифф, Кен (июнь 2020 г.). «Взгляд на кристалл процессора 8086» .
- - (июнь 2020 г.). «Сжатие кристалла: как Intel уменьшила процессор 8086» .
- - (июль 2020 г.). «Регистры процессора Intel 8086: от микросхемы к транзисторам» .
- - (август 2020 г.). «Реверс-инжиниринг сумматора внутри Intel 8086» .
- - (август 2020 г.). «Реверс-инжиниринг арифметико-логического блока 8086 по фотографиям кристалла» .
- - (ноябрь 2022 г.). «Необычные драйверы начальной загрузки внутри микропроцессора 8086» .
- - (ноябрь 2022 г.). «Исправлена ошибка в микропроцессоре 8086, обнаруженная в кремнии кристалла» .
- - (декабрь 2022 г.). «Как работает механизм микрокода процессора 8086» .
- - (январь 2023 г.). «Внутри схемы предварительной выборки инструкций процессора 8086» .
- - (январь 2023 г.). «Конвейер микрокода процессора 8086 по результатам анализа кристалла» .
- - (январь 2023 г.). «Подсчитать транзисторы в процессоре 8086: это сложнее, чем вы думаете» .
- - (январь 2023 г.). «Реверс-инжиниринг схемы условного перехода в процессоре 8086» .
- - (январь 2023 г.). «Реверс-инжиниринг схем HALT процессора Intel 8086» .
- - (январь 2023 г.). «Понимание инструкции десятичной корректировки после сложения (DAA) в x86» .
- - (февраль 2023 г.). «Кремниевый реверс-инжиниринг: схема флага процессора Intel 8086» .
- - (февраль 2023 г.). «Реверс-инжиниринг схемы прерываний в процессоре Intel 8086» .
- - (февраль 2023 г.). «Реверс-инжиниринг микрокода адресации ModR/M в процессоре Intel 8086» .
- - (март 2023 г.). «Как процессор 8086 определяет длину инструкции» .
- - (март 2023 г.). «Реверс-инжиниринг алгоритма умножения в процессоре Intel 8086» .
- - (март 2023 г.). «Реверс-инжиниринг кодов регистров микрокода процессора 8086» .
- - (апрель 2023 г.). «Микрокод и аппаратное обеспечение процессора 8086, выполняющее строковые операции» .
- - (апрель 2023 г.). «Реверс-инжиниринг микрокода деления процессора Intel 8086» .
- - (май 2023 г.). «ПЗУ группового декодирования: первый этап декодирования инструкций процессора 8086» .
- - (июль 2023 г.). «Реверс-инжиниринг адресных цепей и выводов данных процессора 8086» .
- - (июль 2023 г.). «Недокументированные инструкции 8086, объясненные микрокодом» .
- - (август 2023 г.). «Прослеживание корней набора команд 8086 до миникомпьютера Datapoint 2200» .
- - (август 2023 г.). «Внимательный взгляд на схему удержания шины процессора 8086» .
- - (октябрь 2023 г.). «Как реализованы триггеры в процессоре Intel 8086» .
- - (март 2024 г.). «Схема предварительной выборки инструкций процессора Intel 8088: взгляд изнутри» .
- - (апрель 2024 г.). «Разговор с памятью: внутри конечного автомата интерфейса шины процессора Intel 8088» .