Intel 80286
Intel 80286 | |
---|---|
Центральный процессор | |
![]() Микропроцессор Intel 80286 (8 МГц) | |
Производство | с1 февраля1982 по начало 1990-x |
Разработчик | Intel |
Производители | |
ЧастотаЦП | 4—25 МГц |
Технология производства | 1,5 мкм |
Наборы инструкций | x86-16 (сMMU) |
Разъёмы | |
Ядра | |

Intel 80286 (также встречаются обозначения i80286, i286,жарг. двойка) — 16-битныйx86-совместимыймикропроцессор второго поколения компании Intel, выпущенный 1 февраля 1982 года. Представляет собой усовершенствованный вариант процессораIntel 8086 и обладает в 3—6 раз большей производительностью. Процессор применялся в основном вIBM PC-совместимых компьютерах.
Описание
[править |править код]
Процессор Intel 80286 разрабатывался параллельно с процессорамиIntel 80186/80188, однако в нём отсутствовали некоторые модули, имевшиеся в процессоре Intel 80186. Процессор Intel 80286 выпускался в точно таком же корпусе, как и Intel 80186 —LCC, а также в корпусах типаPGA с 68 выводами. В новом процессоре было увеличено количестворегистров, добавлены новыеинструкции, добавлен новый режим работы процессора —защищённый режим. Процессор имел 6-байтовую очередь (как и Intel 8086).Шины адреса иданных в нём немультиплексируются (то есть адреса и данные передаются по разным выводам). Шина адреса увеличена до 24 бит, таким образом объёмОЗУ может составлять 16 Мбайт. Для более быстрого выполнения операций над числами с плавающей запятой необходим математическийсопроцессорIntel 80287.
Регистры
[править |править код]К 14 регистрам процессора Intel 8086 были добавлены 11 новых регистров, необходимых для реализации защищённого режима и других функций: регистр слова состояния машины, 16 бит (MSW); регистр задачи, 16 бит (TR); регистрыдескрипторной таблицы, один 64-битный и два 40-битных (GDTR, IDTR,LDTR) и 6 регистров расширения сегментных регистров, 48 бит.
Инструкции
[править |править код]Процессор имел тот женабор инструкций, что и процессор Intel 80186, к которому добавили 16 новых команд (LGDT, LIDT, LLDT, LMSW, LTR, SGDT, SIDT, SLDT, SMSW, STR, ARPL, CLTS, LAR, LSL, VERR, VERW), необходимых для работы со средствами управления памятью. Команда PUSH теперь могла сохранять встеке константы. Инструкции в Intel 80286 выполняются в среднем за 4,5 такта.
Организация памяти
[править |править код]Шина адреса разрядностью 24 бита позволяет адресовать 16 Мбайт физической памяти, но вреальном режиме доступен только 1 Мбайт (640 КБайт обычной памяти и 384 КБайт расширенной), начинающийся с младших адресов. С программной точки зрения память так же, как и в 8086, организуется в виде сегментов, но управление сегментацией имеет существенные различия для реального и защищённого режимов.
В реальном режиме по адресации памяти декларируется полная совместимость с процессором 8086, который своей 20-битной адресной шиной охватывает пространство физической памяти в 1 Мбайт. На самом деле, на радость разработчикам программного обеспечения PC, 80286 имеет ошибку, «узаконенную» и в следующих поколениях процессоров. При вычислении физического адреса возможно возникновение переполнения, которое с 20-битной шиной адреса просто игнорируется. Если, например, Seg=FFFFh и EA=FFFFh, физический адрес, вычисленный по формуле РА=16 х Seg + EA=10FFEF, процессором 8086 трактуется как 0FFEF — адрес, принадлежащий первому мегабайту. Однако на выходе А20 процессора 80286 в этом случае установится единичное значение, что соответствует адресу ячейки из второго мегабайта физической памяти. Для обеспечения полной программной совместимости с 8086 в схему PC был введён специальный вентиль Gate A20, принудительно обнуляющий бит А20 системной шины адреса. Не оценив потенциальной выгоды от этой ошибки, управление вентилем узаконили через программно-управляемый бит контроллера клавиатуры 8042. Когда оперативная память подешевела, а «аппетит» программного обеспечения вырос, в эту небольшуюобласть (64 К-16 байт) стали помещать некоторые резидентные программы или даже часть операционной системы, а для ускорения управления вентилем появились более быстрые способы (Gate A20 Fast Control).
В отличие от 8086, процессор 80286 имеет средства контроля за переходом через границу сегмента, работающие и в реальном режиме. При попытке адресации к слову, имеющему смещение FFFFh (его старший байт выходит за границу сегмента) или выполнения инструкции, все байты которой не умещаются в данном сегменте, процессор вырабатывает прерывание — исключение типа 13 (0Dh) — Segment Overrun Exception. При попытке выполнения инструкции ESCAPE с операндом памяти, не умещающимся в сегменте, вырабатывается исключение типа 9 — Processor Extension Segment Overrun Interrupt.
В защищённом режиме работают все режимы адресации, допустимые для 8086 и реального режима 80286. Отличия касаются определения сегментов:
- сегментные регистры CS, DS, SS и ES хранят не сами базовые адреса сегментов, а селекторы, по которым из таблицы, хранящейся в ОЗУ, извлекаются дескрипторы сегментов;
- дескриптор описывает базовый адрес, размер сегмента (1 — 64 Кбайт) и его атрибуты;
- базовый адрес сегмента имеет разрядность 24 бита, что и обеспечивает адресацию 16 Мбайт физической памяти.
Режимы работы процессора Intel 80286
[править |править код]В процессоре Intel 80286 было реализовано два режима работы —защищённый режим иреальный режим. В реальном режиме работы процессор был полностью совместим с процессорами x86, выпускавшимися до этого, то есть процессор мог выполнять программы, предназначенные для Intel 8086/8088/8018x, без повторного ассемблирования или с переассемблированием с минимальными модификациями. В формировании адреса участвовали только 20 линий шины адреса, поэтому максимальный объём адресуемой памяти в этом режиме остался прежним — 1 Мбайт. В защищённом режиме процессор мог адресовать до 1 Гбайтвиртуальной памяти (при этом объём реальной памяти составлял не более 16 Мбайт) за счёт изменения механизма адресации памяти. Переключение из реального режима в защищённый происходит программно и относительно просто, однако для обратного перехода необходим аппаратный сброс процессора, который в IBM PC-совместимых машинах осуществлялся обычно с помощью контроллера клавиатуры. Для отслеживания текущего режима работы процессора используется регистр слово состояния машины (MSW). Программы реального режима без модификаций в защищённом режиме исполняться не могут, так же, как и программыBIOS машины.

Суть защищённого режима заключается в следующем. Программист и разрабатываемые им программы используют логическое адресное пространство (виртуальное адресное пространство), размер которого может составлять 1024 Мбайт (для Intel 80286). Логический адрес преобразуется в физический адрес автоматически с помощью схемы управления памятью (MMU). В защищённом режиме в памяти можно хранить только ту часть программы, которая необходима в данный момент, а остальная часть могла храниться во внешней памяти (например, на жёстком диске). В случае обращения к той части программы, которой нет в памяти в данный момент, операционная система может приостановить программу, загрузить требуемую секцию кода из внешней памяти и возобновить выполнение программы. Следовательно, становятся допустимыми программы, размер которых больше объёма имеющейся памяти. Другими словами, пользователю кажется, что он работает с большей памятью, чем на самом деле. Однако реализация системы виртуальной памяти была ещё далека от совершенства. Для использования защищённого режима необходима многозадачная операционная система, напримерMicrosoft Windows 2.0,IBM OS/2 илиUNIX.
Физический адрес формируется следующим образом. В сегментных регистрах хранитсяселектор, содержащий индексдескриптора втаблице дескрипторов (13 бит), один бит, определяющий, к какой таблице дескрипторов будет производиться обращение (к локальной или к глобальной) и два бита запрашиваемого уровня привилегий. Далее происходит обращение к соответствующей таблице дескрипторов и соответствующему дескриптору, который содержал начальный, 24-битный, адрес сегмента, размер сегмента и права доступа. После этого вычислялся необходимый физический адрес путём сложения адреса сегмента со смещением, хранящемся в 16-разрядном указательном регистре.
Однако защищённый режим в процессоре Intel 80286 обладал и некоторыми недостатками. Он был несовместим с программами, написанными для реального режима MS-DOS. Для перехода из защищённого режима в реальный требовался аппаратный сброс процессора.
Кольца защиты
[править |править код]Для защиты от выполнения привилегированных команд, которые могут кардинально изменить состояние всей системы, для защиты доступа к данным и для защиты сегментов кода в процессоре Intel 80286 была введена защита по привилегиям[1]. Было выделено 4 уровня привилегий, так называемыекольца (Ring) защиты — от самого привилегированного 0 уровня (Ring 0), предназначенного для ядра системы, до наименее привилегированного 3 уровня (Ring 3), предназначенного для прикладных программ.
Поддержка операционными системами
[править |править код]Несмотря на анонс в 1982 году, защищённый режим 80286 в персональных компьютерах долгое время использовался ограниченно. Главной причиной этого стала несовместимость с защищённым режимом программ, написанных для процессора 8086. Одна из проблем была связана с тем, что используемая 8086сегментная адресация памяти позволяла сформировать один и тот же адрес множеством комбинаций «сегмент+смещение», и формированием такой комбинации занимались программы, а не операционная система. Например, если программе для 8086 требовался блок памяти, она должна была взять сегмент и смещение первого свободного байта памяти, разделить смещение на 16 и прибавить его к значению сегмента, формируя таким образом новый, не использованный сегмент. Однако в 80286 значение сегмента используется как индекс в таблице дескрипторов. Если сегмент выбран произвольно, соответствующего дескриптора в таблице может не оказаться либо дескриптор будет иметь неподходящие параметры. Модифицировать же таблицу дескрипторов из-за наличия защиты может только операционная система.
Другой проблемой являлось разделение сегментов кода и данных. В защищённом режиме программа не может модифицировать сегменты кода или выполнять код, помещённый в сегмент данных, хотя в программах для 8086 такие приёмы использовались.
Ещё одной проблемой стало игнорирование разработчикамиBIOS IBM PC рекомендацийIntel и использование зарезервированных номеров прерываний. Например, арифметический сопроцессор80287 при возникновении ошибки генерирует прерывание 1016. Однако в IBM PC прерывание 1016 используется для управления дисплеем.
Все эти проблемы требовали значительной модификации существующих программ. Разработчики операционных систем были поставлены перед выбором — создавать относительно простую систему, работающую только в защищённом режиме, но несовместимую с большинством ранее написанных программ, либо создавать систему, содержащую компоненты для работы и в реальном и в защищённом режимах и переключающуюся между ними по мере необходимости (что возможно только через сброс процессора и значительно снижает производительность), обеспечивая таким образом совместимость с ранее написанными программами[2].
В январе 1985 компанияDigital Research анонсировалаConcurrent DOS 286 — операционную систему, созданную совместно сIntel. Продукт должен был использовать только защищённый режим 80286, обеспечивая пользователям все преимущества этого режима по обеспечению многопользовательского, многозадачного выполнения программ, при одновременной поддержке эмуляции 8086[3]. Заявленные возможности были работоспособны на использовавшемся в начале разработки прототипе процессорастеппинга B-1, но в мае Digital Research обнаружила проблемы с эмуляцией на серийном процессоре степпинга C-1, которые не позволяли Concurrent DOS 286 запускать программы для 8086 в защищённом режиме. Выпуск Concurrent DOS 286 был задержан, а Intel начала разработку новой версии чипа[3]. В августе, после интенсивного тестирования образцов 80286 степпинга E-1, Digital Research подтвердила, что Intel исправила все документированные ошибки, но заявила, что остаются недокументированные проблемы с производительностью на пререлизной версии Concurrent DOS 286. Intel заявила, что выбранный Digital Research подход к эмуляции программ для 8086 в защищённом режиме отличается от начальных спецификаций. Тем не менее Intel внесла незначительные изменения вмикрокод процессоров степпинга E-2, которые позволили Digital Research выполнять эмуляцию значительно быстрее[4]. КомпанияIBM в 1986 году выбрала Concurrent DOS 286 (переименовав её вIBM 4680 OS) операционной системой для компьютераIBM 4680, использованного в системе розничной торговли в качествеPOS-терминала[5]. Те же ограничения затронули версию 1.0FlexOS 286, операционной системы — наследницы Concurrent DOS 286, разработанной Digital Research в 1986 и представленной в январе 1987 (эта система позже была использована IBM как основаIBM 4690 OS).
Из-за указанных проблемБилл Гейтс окрестил 80286 «чипом с мёртвым мозгом»[6], так как было очевидно, что новая операционная системаMicrosoft Windows не сможет выполнять несколько приложенийMS-DOS одновременно на 80286. Возможно, это стало причиной раскола междуMicrosoft и IBM, так как IBM настаивала, чтобыOS/2, изначально — совместная разработка IBM и Microsoft, поддерживала защищённый режим 80286.
Поддержка защищённого режима также была реализована в операционных системахCoherent,Xenix,NetWare 286,iRMX,OS/2,Windows 3.0.
Компьютеры на базе процессора Intel 80286
[править |править код]В 1984 году компанияIBM представила свой ПК, основанный на процессоре Intel 80286 с частотой 6 МГц — IBM PC AT, который вызвал большой интерес к архитектуре x86 вообще и к ПК IBM PC в частности. В 1987 году IBM выпускает новые модели ПК — IBM PS/2-50 и IBM PS/2-60. К моменту выпуска ПК IBM PS/2 IBM уже не была монополистом рынка персональных компьютеров, многие фирмы выпускали аналогичные модели, зачастую более дешёвые.
Конкурентные решения
[править |править код]

Так как Intel продавала лицензии на производство микропроцессоров 80286, многие фирмы выпускали фактически клоны данного микропроцессора —AMD,Siemens AG иHARRIS.С помощьюобратной разработки были созданы клоны 80286:
- U80601 — вГДР
- КФ1847ВМ286 (позднее ЭКФ1847ВМ2) — вСССР (опытные образцы выпускались заводом имени Дзержинского (разработчик НТЦ «Белмикросистемы») НПО «Интеграл»)
Также выпускались и процессоры, разработанные независимо от Intel, таковые выпускалиZilog,Motorola и другие.
Технические характеристики
[править |править код]- Дата анонса: 1 февраля 1982 года
- Тактовая частота (МГц): зависит от маркировки: 80286-6 — 6 МГц, 80286-8 — 8 МГц, 80286-10 — 10 МГц, 80286-12 — 12,5 МГц
- Разрядностьрегистров: 16 бит
- Разрядностьшины данных: 16 бит
- Разрядностьшины адреса: 24 бит
- Объём адресуемой памяти: 16 Мбайт
- Объём виртуальной памяти: 1 Гбайт (в защищённом режиме)
- Количество транзисторов: 134 000
- Техпроцесс (нм): 1500 (1,5 мкм)
- Площадь кристалла: 49 мм²
- Напряжение питания: +5 В
- Разъём: 68-pin
- Корпус: 68-контактный керамический LCC (R80286), пластиковый LCC (N80286), керамический PGA (CG80286 или A80286)
Примечания
[править |править код]- ↑Морс С.П., Алберт Д.Д. Архитектура микропроцессора 80286 = The 80286 architecture. —М.: Радио и связь, 1990. — С. 185. — 304 с. —ISBN 5-256-00466-2.
- ↑Petzol, Charles. Obstacles to a grown up operating system // PC Magazine. — 1986. —Т. 5,№ 11. —С. 170–74. Архивировано 25 сентября 2014 года.
- ↑12Edward Foster. Super DOS awaits new 80286 – Concurrent DOS 286 – delayed until Intel upgrades chip – offers Xenix's power and IBM PC compatibility // InfoWorld. — InfoWorld Media Group, 1985. —Т. 7,№ 19. —С. 17–18. —ISSN0199-6649. Архивировано 25 сентября 2014 года.
- ↑Edward Foster. Intel shows new 80286 chip – Future of DRI's Concurrent DOS 286 still unclear after processor fixed // InfoWorld. — InfoWorld Media Group, 1985. —Т. 7,№ 34. —С. 21. —ISSN0199-6649. Архивировано 20 марта 2017 года.
- ↑Melissa Calvo and Jim Forbes. IBM to use a DRI operating system // InfoWorld. — InfoWorld Media Group, 1986. —Т. 8,№ 6. —С. 12. —ISSN0199-6649. Архивировано 1 октября 2014 года.
- ↑Microprocessors: A Programmer's View. — New York: McGraw-Hill, 1990. —ISBN 0-07-016638-2.
Ссылки
[править |править код]- Инструкция по эксплуатации 80286 (англ.)
- Описание и фотографии процессоров семейства Intel 80286 (англ.)
- Краткое описание микропроцессора Intel 80286 (рус.)
- Краткое описание микропроцессора Intel 80286 с фотографиями (англ.)
- Документация на процессор на сайте bitsavers.org (англ.)