Intel 8086 | это... Что такое Intel 8086? (original) (raw)
<< Intel 8086 >> Центральный процессор | |
---|---|
Микропроцессор Intel 8086 | |
Производство: | 8 июня 1978 |
Производители: Intel Corp. AMD, Harris (Intersil), Texas Instruments NEC, OKI Fujitsu, Mitsubishi Siemens, MHS | |
Частота ЦП: | 4—10 МГц |
Технология производства: | HMOS, CHMOS, 3 мкм |
Наборы инструкций: | x86 |
Разъём: | DIP40, QFP56, PLCC44 |
Микропроцессор KP1810BM86, советский клон Intel 8086
Intel 8086 (также известный как iAPX86) — первый 16-битный микропроцессор компании Intel, разрабатывавшийся с весны 1976 года и выпущенный 8 июня 1978 года. Процессор имел набор команд, который применяется и в современных процессорах, именно от этого процессора берёт своё начало известная на сегодня архитектура x86.
Основными конкурентами микропроцессора i8086 были Motorola 68000, Zilog Z8000, чипсеты F-11 и J-11 семейства PDP-11, MOS Technology 65C816. В некоторой степени, в области военных разработок, конкурентами являлись процессоры-реализации MIL-STD-1750A.
Аналогами микропроцессора i8086 являлись такие разработки, как NEC V30, который был на 5 % производительнее i8086, но при этом был полностью с ним совместим. Советским аналогом являлся микропроцессор К1810ВМ86, входивший в серию микросхем К1810.
Содержание
- 1 История
- 2 Описание
- 3 Микрокомпьютеры на основе i8086
- 4 Технические характеристики
- 5 См. также
- 6 Ссылки
История
Предшественники
В 1972 году Intel выпустила 8008, первый 8-битный микропроцессор. Он использовал набор инструкций, разработанный корпорацией Datapoint для программируемых компьютерных терминалов, пригодный и для универсальных процессоров. Этот процессор требовал нескольких дополнительных микросхем для использования в полноценном компьютере, отчасти потому, что использовал маленький 18-пиновый корпус от микросхем DRAM, производимых Интел, и соответственно не мог иметь отдельную шину адресов.
Двумя годами позже, в 1974, был запущен 8080, в новом, 40-пиновом DIP-корпусе, первоначально разработанном для микросхем калькуляторов. Он имел отдельную шину адресов и расширенный набор инструкций, кодово- (не бинарно-) совместимый с 8008, дополненный для удобства программирования несколькими 16-битными инструкциями. Процессор i8080 часто называют первым по-настоящему удобным и полезным микропроцессором. В 1977 году он был заменён на i8085, с одним питающим напряжением (+5В) вместо трёх различных на предшественнике и несколькими другими усовершенствованиями. Наиболее известными соперниками были 8-битные Motorola 6800 (1974), Microchip PIC16X (1975) (здесь наверное имеется ввиду процессор CP1600 фирмы General Instrument, который является предком микроконтроллеров Microchip http://en.wikipedia.org/wiki/PIC_microcontroller#History), MOS Technology 6502 (1975), Zilog Z80 (1976), и Motorola 6809 (1978).
Разработка
Проект 8086 был начат в мае 1976 года, и первоначально задумывался как временная замена для амбициозного и задерживающегося проекта iAPX 432 (также известного как 8800). Это была попытка, с одной стороны, противостоять менее запаздывавшим 16-ти и 32-битными процессорам других производителей (таких как Motorola, Zilog и National Semiconductor), а с другой - борьбы с угрозой от Zilog Z80 (разработанного командой под руководством ушедшего из Интел Фредерико Фаджин), который стал очень успешным. Первая версия архитектуры 8086 (система команд, прерывания, работа с памятью и вводом/выводом) была разработана с середины мая до середины августа Стивеном Морзе. Потом команда разработчиков была увеличена до четырёх человек, которые представили два основных проектных документа - 8086 Architectural Specifications и 8086 Device Specifications. При разработке не использовалось специализированных CAD-программ, а диаграммы были исполнены из текстовых символов. Использовались уже опробованные элементы микроархитектуры и физической реализации, в основном от i8085.
Описание
Рынок 8-разрядных микропроцессоров в конце 1970-х был переполнен, и Intel оставляет попытки на нём закрепиться и выпускает свой первый 16-битный процессор. Процессор i8086 представляет собой модернизированный процессор i8080 и, хотя, разработчики не ставили перед собой цель достичь полной совместимости на программном уровне, большинство программ написанных для i8080 способны выполняться и на i8086 после перекомпиляции. Новый процессор несёт в себе множество изменений, которые позволили значительно (в 10 раз) увеличить производительность по сравнению с предыдущим поколением процессоров компании.
Регистры
Главные регистры AH AL AX (primary accumulator) BH BL BX (base, accumulator) CH CL CX (counter, accumulator) DH DL DX (accumulator, other functions) Индексные регистры SI Source Index DI Destination Index Указательные регистры BP Base Pointer SP Stack Pointer Регистр состояния 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 (bit position) - - - - O D I T S Z - A - P - C Флаги Сегментные регистры CS Code Segment DS Data Segment ES ExtraSegment SS Stack Segment Указатель команды IP Instruction Pointer |
---|
Регистры 8086 |
Всего в процессоре i8086 было 14 16-разрядных регистров: 4 регистра общего назначения (AX, BX, CX, DX), 2 индексных регистра (SI, DI), 2 указательных (BP, SP), 4 сегментных регистра (CS, SS, DS, ES), программный счётчик или указатель команды (IP) и регистр флагов (FLAGS, включает в себя 9 флагов). При этом регистры данных (AX, BX, CX, DX) допускали адресацию не только целых регистров, но и их младшей половины (регистры AL, BL, CL, DL) и старшей половины (регистры AH, BH, CH, DH), что позволяло использовать не только новое 16-разрядное ПО, но сохраняло совместимость и со старыми программами (правда, их необходимо было, по крайней мере, перекомпилировать).
Шины
Размер шины адреса был увеличен с 16 бит до 20 бит, что позволило адресовать 1 Мбайт (220 байт) памяти. Шина данных была 16-разрядной. Однако в микропроцессоре шина данных и шина адреса использовали одни и те же контакты на корпусе. Это привело к тому, что нельзя одновременно подавать на системную шину адреса и данные. Мультиплексирование адресов и данных во времени сокращает число контактов корпуса до 40, но и замедляет скорость передачи данных.
Работа с памятью
1-й вариант. Для того чтобы адресовать больший, чем i8080, объём памяти, потребовалось изменить способ адресации памяти. Ведь если использовать старые методы, когда адрес к ячейке памяти содержался в указательных регистрах, то пришлось бы увеличивать размер этих самых регистров, чтобы иметь возможность обращаться к большему объёму памяти. Поэтому для адресации 1 Мбайт памяти применили следующую схему. На шину адреса подавался физический адрес размером 20 бит, который формировался путём сложения содержимого одного из сегментных регистров (16 бит), умноженного на 16, с содержимым указательного регистра: таким образом, адресация ячейки памяти производилась по номеру сегмента и эффективному адресу ячейки в сегменте (называемому также смещением). Если результат сложения оказывался больше, чем 220 -1, то 21-й бит отбрасывался; такая процедура называется «заворачиванием» адреса (англ. address wraparound). Этот метод впоследствии (после появления защищённого режима) назвали реальным режимом адресации процессора, такой режим позволяет адресовать до 1 Мбайт памяти.
2-й вариант. Для того чтобы адресовать 1 мегабайт памяти (20 бит адреса) с использованием 16-битных регистров используется сегментирование. Старшие 4 бит адреса выводятся на отдельные контакты корпуса, а младшие 16 выводятся на совмещённую шину адреса-данных. Но граница сегмента не жёсткая, а плавающая. Для того чтобы адресовать нужный сегмент используются 16-битные регистры сегмента, значение которых сдвигается на 4 бита вверх и складывается с указательным 16-битным регистром. Полученное значение - 20 битный адрес памяти или устройства выводится на контакты. Если результат сложения оказывался больше чем 1 мегабайт, выводятся только младшие 20 бит адреса, 21-бит отбрасывается.
Схема, показывающая работу реального режима адресации процессора Intel 8086 и выше
Таким образом, память разделяется на сегменты, размером 64 Кбайт каждый и начинающиеся с адреса, кратного 16 (граница параграфа); память в 1 Мбайт разделялась, таким образом, на 16 сегментов. Эти 16 сегментов называют страницами памяти. В компьютере, подобном IBM PC, последние 6 страниц (A, B, C, D, E, F) памяти (т. н. верхняя память — англ. upper memory) использовались для видеопамяти и BIOS-а, это ограничивало память, доступную пользователю, объёмом в 640 Кбайт (т. н. обычная память — англ. conventional memory; страницы 0~9).
На то время такой режим адресации обеспечивал множество преимуществ: ёмкость памяти могла составлять до 1 Мбайт, хотя команды оперировали 16-битными адресами; упрощалось использование отдельных областей памяти для программы, её данных и стека; упрощалась разработка устройств, совместимых друг с другом.
Система команд
Система команд процессора i8086 состоит из 98 команд (и более 3800 их вариаций): 19 команд передачи данных, 38 команд их обработки, 24 команды перехода и 17 команд управления процессором. Возможно 7 режимов адресации. Микропроцессор не содержал команды для работы с числами с плавающей запятой. Данная возможность реализовывалась отдельной микросхемой, называемой математический сопроцессор, который устанавливался на материнской плате. Сопроцессор, вовсе не обязательно должен был быть произвёден Intel (модель i8087), к примеру, некоторые производители микросхем, такие, как Weitek, выпускали более производительные сопроцессоры, чем Intel.
Система команд процессора i8086 включает в себя несколько очень мощных строчных инструкций. Если инструкция имеет префикс REP (повтор), то процессор будет выполнять операции с блоками - перемещение блока данных, сравнение блоков данных, присвоение определённого значения блоку данных определенной величины, и т.д., то есть одна инструкция 8086 с префиксом REP может выполнять 4-5 инструкций выполняемых на некоторых других процессорах. Но следует упомянуть, что подобные приёмы были реализованы и в других процессорах, Zilog Z80 имел инструкции перемещения и поиска блоков, а Motorola 68000 может выполнять операции с блоками, используя всего две команды.
В микропроцессоре i8086 была использована примитивная форма конвейерной обработки. Блок интерфейса с шиной подавал поток команд к исполнительному устройству через 6-байтовую очередь команд. Таким образом, выборка и выполнение новых команд могли происходить одновременно. Это значительно увеличивало пропускную способность процессора и лишало необходимости считывать команды из медленной памяти.
Микрокомпьютеры на основе i8086
1-й вариант. В персональных компьютерах процессор i8086 практически не использовался из-за дороговизны специализированных микросхем, которые были необходимы для работы процессора. Это поняли и в Intel, в 1979 году она выпускает процессор i8088, у которого шина данных была 8-битной.
2-й вариант. Из-за нехватки (ещё не были разработаны) вспомогательных 16-битных микросхем , и возможности использования большого парка 8-битных, а также для удешевления и уменьшения размеров плат, было решено выпустить 8-битный вариант процессора (i8088). В 70-е годы микросхемы динамической оперативной памяти имели 1-битную организацию и для 8 битной системы требовалось 8, а для 16-битной - 16 микросхем памяти. Поэтому выпуск 8 разрядной версии удешевлял производство и уменьшал размер печатной платы компьютера.
Но всё же в некоторых микрокомпьютерах применялся и i8086, одним из таких является Mycron 2000 — первый коммерческий микрокомпьютер на базе i8086. Машина для обработки текстов IBM Displaywriter, Compaq DeskPro и Wang Professional Computer также использовали i8086.
Технические характеристики
- Дата анонса: 8 июня 1978 года
- Тактовая частота (МГц): от 4 до 10
- 5 (модель 8086), при частоте 4,77 производительность - 0,33 MIPS
- 8 (модель 8086-2, 0,66 MIPS)
- 10 (модель 8086-1, 0,75 MIPS)
- Приблизительные затраты времени на операции, процессорных циклов (EA - время, необходимое для расчета эффективного адреса памяти, которое варьируется от 5 до 12 циклов):
* Суммирование: 3-4 (регистровое), 9+EA - 25+EA - при операциях с памятью
* Умножение: 70-118 (регистровое), 76+EA - 143+EA - при операциях с памятью
* Перемещение данных: 2 (между регистрами), 8+EA - 14+EA - при операциях с памятью
- Разрядность регистров: 16 бит
- Разрядность шины данных: 16 бит
- Разрядность шины адреса: 20 бит
- Объём адресуемой памяти: 1 Мбайт
- Адресное пространство I/O: 64 Кбайт
- Количество транзисторов: 29 000
- Техпроцесс (нм): 3000 (3 мкм)
- Площадь кристалла (кв. мм): ~30 (по другим данным, 16 мм²)
- Максимальное тепловыделение: 1,75 Вт
- Напряжение питания: +5 В
- Разъём: нет (микросхема припаивалась к плате)
- Корпус: 40-контактный керамический или пластиковый DIP, позже - 56-контактный QFP и 44-контактный PLCC
- Поддерживаемые технологии: 98 инструкций
- Объём очереди команд: 6 байт
См. также
Ссылки
- Описание и фотографии процессора Intel 8086
- Краткое описание микропроцессора Intel 8086
- Как разрабатывались первые микросхемы Intel
Процессоры Intel | |
---|---|
Исторические | до x86 4004 • 4040 • 8008 • 8080 • 8085 x86 (16-бит) 8086 • 8088 • 80186 • 80188 • 80286 x86-32/IA-32 (32-бит) 80386 • 80486 • Pentium (OverDrive • Pro • II • II OverDrive • III • 4 • M) • Celeron (M • D) • Core • A100/A110 x86-64/EM64T (64-бит) Pentium 4 (некоторые) • Pentium D • Pentium Extreme Edition • Celeron D (некоторые) IA-64 (64-бит) Itanium Другие iAPX 432 — RISC: (i860 • i960 • StrongARM • XScale) |
Современные | x86-32: EP80579 • Intel CE • Atom — x86-64: Atom (некоторые) • Celeron • Pentium Dual-Core • Core (2 (Solo • Duo • Quad • Extreme) • i3 • i5 • i7) • Xeon — Другие: Itanium 2/Itanium 9300 |
Списки | Чипсеты (серверные) • Кодовые имена • Разъёмы процессоров • Процессоры (будущие) — _По маркам:_Atom • Celeron • Core (2 • i3 • i5 • i7) • Itanium • Pentium (Pro • II • III • M • 4 • D • EE • Dual-Core и последующие) • Xeon |
Микроархитектуры | P5 0.90 мкм P5 0.60 мкм P54C 0.35 мкм P54CS • P55C 0.25 мкм Tillamook P6 0.50 мкм P6 0.35 мкм P6 • Klamath 0.25 мкм Mendocino • Dixon • Tonga • Covington • Deschutes • Katmai • Drake • Tanner 180 нм Coppermine • Coppermine T • Cascades 130 нм Tualatin • Banias 90 нм Dothan • Stealey 65 нм Tolapai • Yonah • Sossaman NetBurst 180 нм Willamette • Foster 130 нм Northwood • Gallatin • Prestonia 90 нм Tejas и Jayhawk • Prescott • Smithfield • Nocona • Irwindale • Cranford • Potomac • Paxville 65 нм Cedar Mill • Presler • Dempsey • Tulsa Core 65 нм Merom-L • Merom • Conroe-L • Allendale • Conroe • Kentsfield • Woodcrest • Clovertown • Tigerton 45 нм Penryn • Penryn-QC • Wolfdale • Yorkfield • Wolfdale-DP • Harpertown • Dunnington Bonnell 45 нм Silverthorne • Diamondville • Pineview • Lincroft Nehalem 45 нм Clarksfield • Lynnfield • Jasper Forest • Bloomfield • Gainestown (Nehalem-EP) • Beckton (Nehalem-EX) 32 нм(Westmere) Arrandale • Clarkdale • Gulftown (Westmere-EP) Sandy Bridge 32 нм Sandy Bridge Грядущие Larrabee • Ivy Bridge • Haswell • Rockwell • Atom (Saltwell • Silvermont • Airmont) |