Из Википедии, бесплатной энциклопедии
  (Перенаправлено с 8086 )
Перейти к навигации Перейти к поиску

8086 [2] (также называемый iAPX 86 ) [3] является 16-битовый микропроцессор чип разработан Intel в период с начала 1976 г. и 8 июня 1978 года , когда он был освобожден. Intel 8088 , выпущенный 1 июля 1979 [4] представляет собой слегка модифицированный чип с внешним 8-битной шиной данных ( что позволяет использовать более дешевые и меньше поддерживающих ИС ), [примечание 1] и отличается как процессор , используемый в оригинальный дизайн IBM PC .

8086 положил начало архитектуре x86 , которая в конечном итоге стала самой успешной линейкой процессоров Intel. 5 июня 2018 года Intel выпустила ограниченный выпуск ЦП, посвященный 40-летию Intel 8086, под названием Intel Core i7-8086K . [4]

История [ править ]

Фон [ править ]

В 1972 году Intel выпустила 8008 , первый 8-битный микропроцессор. [примечание 2] В нем реализован набор команд, разработанный корпорацией Datapoint с учетом программируемых терминалов CRT , который также оказался довольно универсальным. Устройства требуется несколько дополнительных микросхем для получения функционального компьютера, отчасти из - за его упаковывают в небольшой 18-контактный «пакет памяти», который исключил использование отдельной адресной шине (Intel был прежде всего ДОЗУ производителем в то время ).

Два года спустя Intel выпустила 8080 , [примечание 3] используя новые 40-контактные пакеты DIL, первоначально разработанные для микросхем калькуляторов, чтобы обеспечить отдельную адресную шину. Он имеет расширенный набор команд, совместимый с исходным кодом (не двоичный ) с 8008 [5], а также включает некоторые 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 [ править ]

Изображение кристалла процессора Intel 8086

Проект 8086 стартовал в мае 1976 года и первоначально был задуман как временная замена амбициозному и отложенному проекту iAPX 432 . Это была попытка привлечь внимание 16- и 32-разрядных процессоров других производителей (таких как Motorola , Zilog и National Semiconductor ) с меньшей задержкой и в то же время противостоять угрозе со стороны Zilog Z80 (разработанного бывшим Сотрудников Intel), которая стала очень успешной. Поэтому и архитектура, и физический чип были разработаны довольно быстро небольшой группой людей с использованием тех же базовых элементов микроархитектуры и методов физической реализации, которые использовались для немного более старого 8085. (и для которого 8086 также будет функционировать как продолжение).

Реализован в качестве источника совместимой , [6] 8086 был разработан , чтобы позволить сборку языка для 8008 [ править ] , 8080, или 8085 , которые будут автоматически преобразуются в эквивалентные (субоптимальным) 8086 исходный код, практически без ручного редактирования. Модель программирования и набор команд (в общих чертах) основаны на 8080, чтобы сделать это возможным. Однако дизайн 8086 был расширен для поддержки полной 16-битной обработки.

Также были добавлены новые виды инструкций; Полная поддержка знаковых целых чисел, адресации по основанию + смещению и самоповторяющихся операций была сродни дизайну Z80 [7], но все они были сделаны немного более общими в 8086. Инструкции, напрямую поддерживающие вложенные языки семейства ALGOL, такие как Pascal и PL / М были также добавлены. По словам главного архитектора Стивена П. Морса , это было результатом более ориентированного на программное обеспечение подхода, чем при проектировании более ранних процессоров Intel (разработчики имели опыт работы с реализациями компиляторов). Другие улучшения включали микрокодированиеинструкции умножения и деления, а также структура шины, лучше адаптированная для будущих сопроцессоров (таких как 8087 и 8089 ) и многопроцессорных систем.

Первая ревизия набора инструкций и архитектуры высокого уровня была готова примерно через три месяца [примечание 5], и, поскольку инструменты САПР почти не использовались, над чипом одновременно работали четыре инженера и 12 проектировщиков. [примечание 6] От идеи до рабочего продукта 8086 потребовалось чуть больше двух лет, что считалось довольно быстрым для сложной конструкции в 1976–1978 годах.

Последовательность 8086 была упорядочена [примечание 7] с использованием смеси случайной логики [8] и микрокода и была реализована с использованием схемы nMOS с истощающей нагрузкой с приблизительно 20 000 активных транзисторов (29 000, считая все участки ПЗУ и PLA ). Вскоре он был переведен на новый усовершенствованный производственный процесс nMOS, названный HMOS (для High performance MOS), который Intel первоначально разработал для производства продуктов быстрой статической RAM . [примечание 8] За этим последовали версии HMOS-II, HMOS-III и, в конечном итоге, полностью статическая версия CMOS для устройств с батарейным питанием, изготовленная с использованиемCHMOS процессы. [примечание 9] Размер оригинального чипа составлял 33 мм², а минимальный размер элемента составлял 3,2 мкм.

Архитектура была определена Стивеном П. Морсом с некоторой помощью и помощью Брюса Равенеля (архитектора 8087 года) в доработке окончательных версий. Дизайнер логики Джим МакКевитт и Джон Бейлисс были ведущими инженерами группы разработчиков аппаратного уровня [примечание 10], а Билл Полман - менеджером проекта. Наследие 8086 сохраняется в базовом наборе команд современных персональных компьютеров и серверов; 8086 также одолжил свои последние две цифры более поздним расширенным версиям дизайна, таким как Intel 286 и Intel 386 , которые в конечном итоге стали известны как семейство x86 . (Другая ссылка заключается в том, что идентификатор поставщика PCI для устройств Intel составляет 8086 ч..)

Подробности [ править ]

Назначение контактов 8086 в минимальном и максимальном режиме

Автобусы и работа [ править ]

Все внутренние регистры, а также внутренние и внешние шины данных имеют ширину 16 разрядов, что твердо установило идентичность «16-разрядного микропроцессора» 8086. 20-разрядная внешняя адресная шина обеспечивает физическое адресное пространство размером 1  МБ (2 20 = 1 048 576). К этому адресному пространству обращаются посредством «сегментации» внутренней памяти. Шина данных мультиплексирована с шиной адреса, чтобы уместить все линии управления в стандартный 40-контактный двухрядный корпус . Он обеспечивает 16-битную адресную шину ввода-вывода, поддерживающую 64  КБ.отдельного пространства ввода / вывода. Максимальное линейное адресное пространство ограничено 64 КБ просто потому, что внутренние регистры адреса / индекса имеют ширину всего 16 бит. Программирование границ памяти размером более 64 КБ включает настройку сегментных регистров (см. Ниже); эта трудность существовала до тех пор, пока архитектура 80386 не представила более широкие (32-битные) регистры (аппаратное обеспечение управления памятью в 80286 не помогло в этом отношении, поскольку его регистры все еще имеют ширину всего 16 бит).

Аппаратные режимы [ править ]

Некоторые из управляющих контактов, которые передают важные сигналы для всех внешних операций, имеют более одной функции в зависимости от того, работает ли устройство в минимальном или максимальном режиме. Первый режим предназначен для небольших однопроцессорных систем, а второй - для средних или больших систем, использующих более одного процессора (своего рода многопроцессорный режим). Максимальный режим требуется при использовании сопроцессора 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 ; некоторые из наиболее полезных инструкций и ret size напрямую поддерживают « Соглашение о вызовах Паскаля ». (Некоторые другие, такие как и , были добавлены в последующие процессоры 80186, 80286 и 80386.)push mem-op push immedenter

Стек размером 64 КБ (один сегмент) , увеличивающийся в сторону младших адресов, поддерживается аппаратно ; 16-битные слова помещаются в стек, и на вершину стека указывает SS: SP. Имеется 256  прерываний , которые могут быть вызваны как аппаратными, так и программными средствами. Прерывания могут каскадироваться, используя стек для хранения адресов возврата .

8086 имеет 64 Кбайт 8-битного (или, альтернативно, 32 Кбайт 16-битного слова) порта ввода-вывода .

Флаги [ править ]

8086 имеет 16-битный регистр флагов . Девять из этих флагов кода состояния активны и указывают текущее состояние процессора: флаг переноса (CF), флаг четности (PF), вспомогательный флаг переноса (AF), нулевой флаг (ZF), флаг подписи (SF), ловушка. флаг (TF), флаг прерывания (IF), флаг направления (DF) и флаг переполнения (OF). Регистр флагов, также называемый словом состояния, выглядит следующим образом: [9]

Сегментация [ править ]

Есть также четыре 16-битных сегментных регистра (см. Рисунок), которые позволяют процессору 8086 необычным образом получить доступ к одному мегабайту памяти. Вместо того, чтобы объединять сегментный регистр с адресным регистром, как в большинстве процессоров, адресное пространство которых превышает размер их регистра, 8086 сдвигает 16-битный сегмент только на четыре бита влево перед добавлением его к 16-битному смещению (16-битное смещение + смещение ), таким образом создавая 20-битный внешний (или действующий, или физический) адрес из пары 32-битный сегмент: смещение. В результате на каждый внешний адрес может ссылаться 2 12 = 4096 различных пар сегмент: смещение.

Хотя многие программисты считают эту схему сложной и громоздкой, она также имеет свои преимущества; небольшая программа (менее 64 КБ) может быть загружена, начиная с фиксированного смещения (например, 0000) в ее собственном сегменте, что позволяет избежать необходимости перемещения , с не более чем 15 байтами потерь при выравнивании.

Компиляторы семейства 8086 обычно поддерживают два типа указателей : ближний и дальний . Ближние указатели - это 16-битные смещения, неявно связанные с кодом программы или сегментом данных, и поэтому могут использоваться только в частях программы, достаточно малых, чтобы поместиться в один сегмент. Дальние указатели представляют собой 32-битные пары сегмент: смещение, разрешающие 20-битные внешние адреса. Некоторые компиляторы также поддерживают огромные указатели, которые похожи на дальние указатели, за исключением того, что арифметика указателя на огромный указатель обрабатывает его как линейный 20-разрядный указатель, а арифметика указателя на дальний указатель оборачивается в пределах его 16-разрядного смещения, не касаясь части сегмента. адреса.

Чтобы избежать необходимости указывать near и far для многочисленных указателей, структур данных и функций, компиляторы также поддерживают «модели памяти», которые определяют размеры указателей по умолчанию. В крошечной (макс 64K), маленький ( не более 128К), компактные (данные> 64K), средний (код> 64K), большой (код, данные> 64K), и огромные (отдельные массивы> 64К) модели охватывают практические комбинации рядом , далеко и огромные указатели на код и данные. В крошечных средствах моделирования , которые код и данные совместно в одном сегменте, так же , как и в большинстве процессоров , основанных 8-битных, и могут быть использован для создания .comфайлы, например. Предварительно скомпилированные библиотеки часто бывают в нескольких версиях, скомпилированных для разных моделей памяти.

По данным Morse et al.,. [10] разработчики фактически предполагали использовать 8-битный сдвиг (вместо 4-битного), чтобы создать физическое адресное пространство размером 16 МБ. Однако, поскольку это заставило бы сегменты начинаться с 256-байтовых границ, а 1 МБ считался очень большим для микропроцессора примерно в 1976 году, идея была отклонена. Кроме того, в недорогом 40-контактном корпусе не хватало выводов для дополнительных четырех выводов адресной шины.

В принципе, адресное пространство серии x86 могло быть расширено в более поздних процессорах за счет увеличения значения сдвига, если приложения получали свои сегменты из операционной системы и не делали предположений об эквивалентности различных пар сегмент: смещение. [примечание 12] На практике использование «огромных» указателей и подобных механизмов было широко распространено, и плоская 32-битная адресация стала возможной с 32-битными регистрами смещения в 80386, в конечном итоге расширив ограниченный диапазон адресации более общим способом (см. ниже).

Intel могла бы решить реализовать память в 16-битных словах (что устранило бы сигнал BHE (Bus High Enable) вместе с большей частью уже описанных сложностей адресной шины). Это означало бы, что ко всем кодам и данным объекта команд нужно было обращаться в 16-битных единицах. Пользователи 8080 давно осознали, задним числом, что процессор очень эффективно использует свою память. Имея большое количество 8-битных объектных кодов, 8080 производит объектный код столь же компактный, как некоторые из самых мощных миникомпьютеров на рынке в то время. [11]

Если 8086 должен сохранять 8-битные объектные коды и, следовательно, эффективное использование памяти 8080, то он не может гарантировать, что (16-битные) коды операций и данные будут лежать на границе четно-нечетного байтового адреса. Первый 8-битный код операции сдвигает следующую 8-битную инструкцию на нечетный байт или 16-битную инструкцию на нечетно-четную границу байта. Осуществляя Bhe сигнал и дополнительную логику , необходимую, 8086 позволяет существовать инструкции как 1-байта, 3 байта или каких - либо других кодов объектов нечетных байтов. [11]

Проще говоря: это компромисс. Если адресация памяти упростится так, что доступ к памяти будет осуществляться только в 16-битных единицах, память будет использоваться менее эффективно. Intel решила усложнить логику, но более эффективно использовать память. Это было в то время, когда объем памяти был значительно меньше и дороже, чем тот, к которому пользователи привыкли сегодня. [11]

Перенос старого программного обеспечения [ править ]

Небольшие программы могут игнорировать сегментацию и просто использовать простую 16-битную адресацию. Это позволяет довольно легко переносить 8-битное программное обеспечение на 8086. Авторы большинства реализаций DOS воспользовались этим преимуществом, предоставив интерфейс прикладного программирования, очень похожий на CP / M, а также включив простой формат исполняемого файла .com , идентичный в CP / M. Это было важно, когда 8086 и MS-DOS были новыми, потому что это позволяло быстро сделать доступными многие существующие CP / M (и другие) приложения, что значительно облегчило принятие новой платформы.

Пример кода [ править ]

Следующий исходный код ассемблера 8086/8088 предназначен для названной подпрограммы, _memcpyкоторая копирует блок байтов данных заданного размера из одного места в другое. Блок данных копируется по одному байту за раз, а логика перемещения данных и цикла использует 16-битные операции.

В приведенном выше коде регистр BP (базовый указатель) используется для создания кадра вызова , области в стеке, которая содержит все параметры и локальные переменные для выполнения подпрограммы. Этот вид соглашения о вызовах поддерживает реентерабельный и рекурсивный код и используется в большинстве языков типа АЛГОЛ с конца 1950-х годов.

Вышеупомянутая процедура - довольно громоздкий способ копирования блоков данных. 8086 предоставляет специальные инструкции для копирования строк байтов. Эти инструкции предполагают, что исходные данные хранятся в DS: SI, данные назначения хранятся в ES: DI, а количество копируемых элементов хранится в CX. Вышеупомянутая процедура требует, чтобы исходный и целевой блоки находились в одном сегменте, поэтому DS копируется в ES. Вышеупомянутый цикл цикла можно заменить на:

Это копирует блок данных по одному байту за раз. Эта REPNZинструкция заставляет MOVSBповторяться до тех пор, пока CX не станет равным нулю, автоматически увеличивая SI и DI и уменьшая CX по мере повторения. В качестве альтернативы MOVSWинструкцию можно использовать для одновременного копирования 16-битных слов (двойных байтов) (в этом случае CX подсчитывает количество скопированных слов вместо количества байтов). Большинство ассемблеров правильно распознают REPNZинструкцию, если она используется в качестве встроенного префикса MOVSBинструкции, как в REPNZ MOVSB.

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

Производительность [ править ]

Упрощенная блок-схема Intel 8088 (вариант 8086); 1 = основные и индексные регистры; 2 = сегментные регистры и IP; 3 = сумматор адресов; 4 = внутренняя адресная шина; 5 = очередь инструкций; 6 = блок управления (очень упрощенный!); 7 = интерфейс шины; 8 = внутренняя шина данных; 9 = ALU; 10/11/12 = внешний адрес / данные / шина управления.

Хотя мультиплексированные шины адреса и данных частично затмеваются другими конструктивными решениями в этом конкретном чипе, производительность немного ограничивается; Передача 16-битных или 8-битных величин выполняется в четырехтактном цикле доступа к памяти, который быстрее для 16-битных, хотя и медленнее для 8-битных величин, по сравнению со многими современными 8-битными процессорами. Поскольку размер инструкций составляет от одного до шести байтов, выборка и выполнение выполняются одновременно и разделяются на отдельные блоки (как и в современных процессорах x86): блок интерфейса шины подает поток команд в блок выполнения через 6-байтовую очередь предварительной выборки ( форма слабосвязанной конвейерной обработки ), ускоряющая операции надрегистры и немедленно , в то время как операции с памятью стали медленнее (четыре года спустя эта проблема с производительностью была исправлена ​​в 80186 и 80286 ). Однако полная (вместо частичной) 16-битная архитектура с ALU полной ширины означала, что 16-битные арифметические инструкции теперь могут выполняться за один цикл ALU (вместо двух, через внутренний перенос, как в 8080 и 8085). , значительно ускоряя выполнение таких инструкций. В сочетании с ортогонализацией операций по сравнению с типами операндов и режимами адресации, а также другие улучшения, это сделало прирост производительности по сравнению с 8080 или 8085 довольно значительным, несмотря на случаи, когда более старые чипы могут быть быстрее (см. ниже).

  • 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 и CMOS версии были произведены в течение длительного времени (по крайней мере, в то время как в 1990 - е годы) для встраиваемых систем , хотя его преемник, 80186 / +80188 (который включает в себя некоторые на чипе периферийных устройств), был более популярным для встроенного использования .

80C86, КМОП-версия 8086, использовалась в GRiDPad , Toshiba T1200 , HP 110 и, наконец, в Lunar Prospector 1998–1999 гг .

Что касается упаковки, Intel 8086 был доступен как в керамическом, так и в пластиковом корпусе DIP.

Список Intel 8086 [ править ]

  1. ^ В количестве 100 шт.
  2. ^ Цена снижена на 21% с 99,00 долларов США, количественная информация не указана.

Производные и клоны [ править ]

Совместимые - и, во многих случаях, усовершенствованные - версии производились Fujitsu , Harris / Intersil , OKI , Siemens AG , Texas Instruments , NEC , Mitsubishi и AMD . Например, NEC V20 и NEC V30пара была аппаратно совместима с 8088 и 8086, даже несмотря на то, что NEC сделала оригинальные клоны Intel μPD8088D и μPD8086D соответственно, но включала набор инструкций 80186 вместе с некоторыми (но не всеми) улучшениями скорости 80186, обеспечивая возможность подключения для повышения как набора команд, так и скорости обработки без необходимости изменения производителями своих конструкций. Такие относительно простые и маломощные 8086-совместимые процессоры в CMOS до сих пор используются во встроенных системах.

Электронная промышленность в Советском Союзе была в состоянии повторить 8086 через как промышленный шпионаж и реинжиниринг [ править ] . Получившийся в результате чип, K1810VM86 , был двоичным и совместимым по выводам с 8086.

i8086 и i8088 были ядрами ПК-совместимых ПК EC1831 и EC1832 советского производства . (EC1831 - это EC-идентификатор IZOT 1036C, а EC1832 - EC-идентификатор IZOT 1037C, разработанный и произведенный в Болгарии. EC означает Единая Система.) Однако компьютер EC1831 (IZOT 1036C) имел значительные аппаратные отличия от прототипа IBM PC. . EC1831 был первым ПК-совместимым компьютером с динамическим определением размера шины (патент США № 4831514). Позже некоторые принципы EC1831 были приняты в PS / 2 (патент США №5,548,786) и некоторых других машинах (заявка на патент Великобритании, публикация № GB-A-2211325, опубликованная 28 июня 1989 г.).

Фишки поддержки [ править ]

  • 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 : контроллер гибких дисков [21]

Микрокомпьютеры, использующие 8086 [ править ]

  • Одноплатный компьютер ISBC 86/12, совместимый с Intel Multibus, был анонсирован в 1978 г. [22]
  • Xerox NoteTaker был один из самых ранних портативных компьютерных проектов в 1978 году и использовал три 8086 чипов (как центральный процессор, графический процессор, и I / O процессор), но никогда не входил коммерческое производства.
  • Seattle Computer Products поставляется S-100 автобусов на базе 8086 систем (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 25 и 30 были построены с 8 МГц 8086.
  • Amstrad PC1512 , PC1640 , PC2086, PC3086 и PC5086 все использовали процессоры 8086 с частотой 8 МГц.
  • NEC PC-9801 .
  • В машинах Tandy 1000 SL и RL использовались процессоры 8086 с тактовой частотой 9,47 МГц.
  • Машина для обработки текстов IBM Displaywriter [23] и профессиональный компьютер Wang, производимые Wang Laboratories , также использовали 8086.
  • НАСА использовало оригинальные процессоры 8086 в оборудовании для наземного обслуживания космического шаттла Discovery до завершения программы космических шаттлов в 2011 году. Это решение было принято для предотвращения регресса программного обеспечения, которое могло возникнуть в результате обновления или перехода на несовершенные клоны. [24]
  • КАМАН технологические и территориальные радиационные мониторы [25]

См. Также [ править ]

  • Количество транзисторов
  • iAPX , для имени iAPX

Заметки [ править ]

  1. ^ Меньшее количество буферов TTL, защелок, мультиплексоров (хотя объем логики TTLне был значительно сокращен). Это также позволяет использовать дешевые ИС семейства 8080, где вконструкции IBM PC использовались8254 CTC, 8255 PIO и 8259 PIC. Кроме того, это упрощает разводку печатных плат и удешевляет платы, а также требует меньшего количества микросхем DRAM (шириной 1 или 4 бита).
  2. ^ с использованием логики PMOS с расширенной нагрузкой(требуется 14  В , совместимость TTL достигается за счет наличия V CC при +5 В и V DD при −9 В).
  3. ^ Использование ненасыщенной логики NMOS расширения нагрузки(требующей более высокого напряжения затвора для затворов транзистора нагрузки).
  4. ^ Это стало возможным благодаря логике nMOS с истощающей нагрузкой (позже 8085 был создан с использованием обработки HMOS, как и 8086).
  5. ^ Ред.0 набора команд и архитектуры был готов примернотри месяца,соответствии с Морзе.
  6. ^ Использование рубилита , световых досок, линейок , электрических ластиков и дигитайзера (по словам Дженни Эрнандес, члена команды разработчиков 8086, в заявлении, сделанном на веб-странице Intel в связи с ее 25-летием).
  7. ^ 8086 использовал меньше микрокода, чем конструкции многих конкурентов, таких как MC68000 и другие.
  8. ^ Быстрые статические ОЗУ в технологии MOS (такие же быстрые, как биполярные ОЗУ) были важным продуктом для Intel в этот период.
  9. ^ CHMOS - это название Intel для схем CMOS, изготовленных с использованием этапов обработки, очень похожих на HMOS .
  10. ^ Другие члены проектной группы были Питер и Дженни A.Stoll Эрнандеса.
  11. ^ IBM PC и PC / XT используют Intel 8088, работающий в максимальном режиме, что позволяет процессору работать с дополнительным сопроцессором 8087, установленным в разъем математического сопроцессора на ПК или материнской плате PC / XT. (Для ПК и ПК / XT может потребоваться максимальный режим по другим причинам, например, для поддержки контроллера DMA.)
  12. ^ Некоторые клоны 80186 действительно изменили значение сдвига, но никогда обычно не использовались в настольных компьютерах.
  13. ^ (IBM PC использовал 4,77 МГц, 4/3 стандартнойчастоты цветовой синхронизации NTSC)

Ссылки [ править ]

  1. ^ История ЦП - Музей ЦП - Жизненный цикл ЦП .
  2. ^ "Зал славы микропроцессоров" . Intel. Архивировано из оригинала на 2007-07-06 . Проверено 11 августа 2007 .
  3. ^ Справочник программиста iAPX 286 (PDF) . Intel. 1983. с. 1-1.
  4. ^ a b «С Днем Рождения, 8086: ограниченная серия Intel Core i7-8086K 8-го поколения обеспечивает лучший игровой опыт» . Intel.
  5. ^ "8080 семья" . CPU World .
  6. ^ Скэнлон, Лео Дж. (1988). 8086/8088/80286 ассемблер . Брэди Букс. п. 12 . ISBN 978-0-13-246919-7. […] 8086 программно совместим с 8080 на уровне языка ассемблера. […]
  7. ^ «Рождение стандарта: микропроцессор Intel 8086. Тридцать лет назад Intel выпустила процессор 8086, представив архитектуру x86, которая лежит в основе каждого ПК - Windows, Mac или Linux - производимого сегодня» . Мир ПК . 17 июня 2008 г.
  8. ^ Гейгер, Рэндалл Л .; Аллен, Филипп Э .; Strader, Ноэль Р. (1990). «Случайная логика против структурированных логических форм». Методы проектирования СБИС для аналоговых и цифровых схем . Макгроу-Хилл. п. 779. ISBN 0-07-023253-9. - Иллюстрация использования "случайного" описания логики управления ЦП
  9. ^ Корпорация Intel (1983). Руководство пользователя IAPX 86, 88, 186 и 188: справочник программиста . С. 3–5. ISBN 978-0835930352. OCLC  11091251 .
  10. ^ Морс, Стивен П .; Равенел, Брюс В.; Мазор, Стэнли; Полман, Уильям Б. (октябрь 1980 г.). «Микропроцессоры Intel: от 8008 до 8086» . Компьютер IEEE . 13 (10): 42–60. DOI : 10,1109 / MC.1980.1653375 . S2CID 206445851 . 
  11. ^ a b c Осборн, Адам; Кейн, Джерри (1981). Руководство по 16-битному процессору Osborne . С. 5–26. ISBN 0-931988-43-8.
  12. ^ Справочное руководство Microsoft Macro Assembler 5.0 . Корпорация Майкрософт. 1987. Время и кодировки в этом руководстве используются с разрешения Intel и взяты из следующих публикаций: Intel Corporation. Руководство пользователя iAPX 86, 88, 186 и 188, Справочник программиста, Санта-Клара, Калифорния, 1986. (Аналогично для iAPX 286, 80386, 80387.)
  13. ^ a b c Руководство пользователя семейства 8086 . Корпорация Intel. Октябрь 1979. с. Б-1. OCLC 65699372 . 
  14. ^ a b c d e Корпорация Intel (май – июнь 1980 г.). «8086 Доступно для промышленных предприятий». Предварительная версия Intel (специальный выпуск: 16-разрядные решения): 29.
  15. ^ «Краткое справочное руководство по микропроцессору Intel® - год» . www.intel.com .
  16. ^ Корпорация Intel (май – июнь 1980 г.). «Семья 8086: концепции и реалии». Предварительная версия Intel (специальный выпуск: 16-разрядные решения): 19.
  17. ^ a b Корпорация Intel (январь – февраль 1980 г.). «Новые продукты: Faster 8086 обеспечивает на 60% больше производительности». Предварительная версия Intel : 22.
  18. ^ Корпорация Intel (май – июнь 1980 г.). «Новые продукты семейства 8086 повышают производительность процессора на 50 процентов». Предварительная версия Intel (специальный выпуск: 16-разрядные решения): 17.
  19. Intel Corporation (май – июнь 1979 г.). «Компоненты микрокомпьютера: новое снижение цен и усовершенствование производства делают популярный микропроцессор 8086 еще более привлекательным». Предварительная версия Intel : 11.
  20. Intel Corporation (август 1981 г.). Intel iAPX86, 88 Руководство пользователя . п. В-25. ISBN 0835930165. OCLC  8459750 .
  21. ^ "Эволюция контроллера гибких дисков | Музей OS / 2" . 2011-05-26 . Проверено 12 мая 2016 . В оригинальных IBM PC (1981) и PC / XT (1983) FDC физически располагался на отдельной плате адаптера дискеты. Сам FDC был NEC µPD765A или совместимой частью, например Intel 8272A.
  22. Enterprise, IDG (11 декабря 1978 г.). «Intel добавляет 16-битную одноплатную плату» . Компьютерный мир . XII (50): 86. ISSN 0010-4841 . 
  23. ^ Захман, Марк (23 августа 1982). «Недостатки персонального компьютера IBM расстраивают критиков» . InfoWorld . 4 (33): 57–58. ISSN 0199-6649 . IBM Displaywriter заметно дороже, чем другие промышленные микросхемы, использующие 8086. 
  24. ^ «Что касается старых деталей, НАСА смело идет ... на eBay» . Нью-Йорк Таймс . 12 мая 2002 г.
  25. ^ Kaman Tech. Руководство по эксплуатации

Внешние ссылки [ править ]

  • Таблицы данных Intel
  • Список процессоров 8086 и их клонов на CPUworld.com
  • Распиновка 8086
  • Интерфейс максимального режима
  • Руководство пользователя 8086 Октябрь 1979 г. Корпорация INTEL ( документ в формате PDF )
  • Программные коды 8086 с использованием эмулятора emu8086 (версия 4.08)
  • Эмулятор Intel 8086/80186, написанный на C, этот файл является частью более крупного эмулятора ПК.
  • Ширрифф, Кен (июнь 2020 г.). «Посмотрите на кристалл процессора 8086» .
    • - (июнь 2020 г.). «Уменьшение размера кристалла: как Intel сократила процессор 8086» .
    • - (июль 2020 г.). «Регистры процессора Intel 8086: от микросхемы до транзисторов» .
    • - (август 2020 г.). «Обратный инжиниринг сумматора внутри Intel 8086» .
    • - (август 2020 г.). «Обратный инжиниринг арифметико-логического устройства 8086 по фотографиям кристалла» .