Процессоры i286 разрабатывались параллельно с процессорами Intel 80186/80188, однако в нём отсутствовали некоторые модули, имевшиеся в процессоре Intel 80186. Процессор i286, выпускался в точно таком же корпусе как и i80186 — 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 теперь могла сохранять в стеке константы. Инструкции в i286 выполняются в среднем за 4,5 такта.
Организация памяти
Шина адреса разрядностью 24 бита позволяет адресовать 16 Мбайт физической памяти, но в реальном режиме доступен только 1 Мбайт, начинающийся с младших адресов. С программной точки зрения память так же, как и в 8086, организуется в виде сегментов, но управление сегментацией имеет существенные различия для реального и защищённого режимов.
В реальном режиме по адресации памяти декларируется полная совместимость с процессором 8086, который своей 16-битной адресной шиной охватывает пространство физической памяти в 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 Overran Exception. При попытке выполнения инструкции ESCAPE с операндом памяти, не умещающемся в сегменте, вырабатывается исключение типа 9 — Processor Extension Segment Overrrun Interrupt.
В защищенном режиме работают все режимы адресации, допустимые для 8086 и реального режима 80286. Отличия касаются определения сегментов:
сегментные регистры CS, DS, SS и ES хранят не сами базовые адреса сегментов, а селекторы, по которым из таблицы, хранящейся в ОЗУ, извлекаются дескрипторы сегментов
дескриптор описывает базовый адрес, размер сегмента (1 — 64 Кбайт) и его атрибуты;
базовый адрес сегмента имеет разрядность 24 бита, что и обеспечивает адресацию 16 Мбайт физической памяти.
Режимы работы процессора i286
В процессоре i286 было реализовано два режима работы — защищённый режим и реальный режим. В реальном режиме работы процессор был полностью совместим с процессорами x86, выпускавшимися до этого, то есть процессор мог выполнять программы предназначенные для Intel 8086/8088/8018x без повторного ассемблирования или с переассемблированием с минимальными модификациями. В формировании адреса участвовали только 20 линий шины адреса, поэтому максимальный объём адресуемой памяти, в этом режиме, остался прежним — 1 Мбайт. В защищённом режиме процессор мог адресовать до 1 Гбайт виртуальной памяти (при этом объем реальной памяти составлял не более 16 Мбайт), за счёт изменения механизма адресации памяти. Переключение из реального режима в защищенный происходит программно и относительно просто, однако для обратного перехода необходим аппаратный сброс процессора, который в IBM PC-совместимых машинах осуществлялся обычно с помощью контроллера клавиатуры. Для отслеживания текущего режима работы процессора используется регистр слово состояния машины (MSW). Программы реального режима без модификаций в защищенном режиме исполняться не могут, так же как и программы BIOS машины.
Суть защищённого режима заключается в следующем. Программист и разрабатываемые им программы используют логическое адресное пространство (виртуальное адресное пространство), размер которого может составлять 1024 Мбайт (для i286). Логический адрес преобразуется в физический адрес автоматически с помощью схемы управления памятью(MMU). Благодаря защищённому режиму, в памяти можно хранить только ту часть программы, которая необходима в данный момент, а остальная часть могла храниться во внешней памяти (например, на жёстком диске). В случае обращения к той части программы, которой нет в памяти в данный момент, операционная система может приостановить программу, загрузить требуемую секцию кода из внешней памяти и возобновить выполнение программы. Следовательно, становятся допустимыми программы, размер которых больше объема имеющейся памяти. Другими словами, пользователю кажется, что он работает с большей памятью, чем на самом деле. Однако реализация системы виртуальной памяти была еще далека от совершенства. Для использования защищённого режима необходима многозадачная операционная система, например Microsoft Windows 2.0, IBM OS/2 или UNIX.
Физический адрес формируется следующим образом. В сегментных регистрах хранится селектор, содержащий индекс дескриптора в таблице дескрипторов (13 бит), 1 бит, определяющий к какой таблице дескрипторов будет производиться обращение (к локальной или к глобальной) и 2 бита запрашиваемого уровня привилегий. Далее происходит обращение к соответствующей таблице дескрипторов и соответствующему дескриптору, который содержал начальный, 24-битный, адрес сегмента, размер сегмента и права доступа. После чего вычислялся необходимый физический адрес, путём сложения адреса сегмента со смещением, хранящемся в 16-разрядном указательном регистре.
Однако защищённый режим в процессоре Intel 80286 обладал и некоторыми недостатками, такими как, несовместимость с программами, написанными для реального режима MS-DOS, для перехода из защищенного режима в реальный режим требовался аппаратный сброс процессора.
Кольца защиты
Для защиты от выполнения привилегированных команд, которые могут кардинально изменить состояние всей системы, для защиты доступа к данным и для защиты сегментов кода в процессоре i286 была введена защита по привилегиям [источник не указан 1032 дня] . Было выделено 4 уровня привилегий, так называемые кольца (Ring) защиты — от самого привилегированного 0 уровня (Ring 0), предназначенного для ядра системы, до наименее привилегированного 3 уровня (Ring 3), предназначенного для прикладных программ.
Компьютеры на базе процессора Intel 80286
В 1984 году компания IBM представила свой ПК, основанный на процессоре i286 с частотой 6 МГц — IBM PC AT, который вызвал большой интерес к архитектуре x86 вообще и к ПК IBM PC в частности. В 1987 году IBM выпускает новые модели ПК — IBM PS/2-50 и IBM PS/2-60. К моменту выпуска ПК IBM PS/2, IBM уже не была монополистом рынка персональных компьютеров, многие фирмы выпускали аналогичные модели, зачастую обладавших более низкой ценой.
Intel 80286 | |
---|---|
Центральный процессор | |
![]() Микропроцессор Intel 80286 (8 МГц) | |
Производство | с 1 февраля 1982 по начало 1990-x |
Разработчик | Интел |
Производители | |
Частота ЦП | 6—20 МГц |
Технология производства | 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 Overrrun Interrupt. В защищённом режиме работают все режимы адресации, допустимые для 8086 и реального режима 80286. Отличия касаются определения сегментов:
Режимы работы процессора 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.0 FlexOS 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 уже не была монополистом рынка персональных компьютеров, многие фирмы выпускали аналогичные модели, зачастую более дешевые. |
![]() | |
General Info | |
---|---|
Launched | 1982 |
Discontinued | 1991 [1] |
Common manufacturer(s) | |
Performance | |
Max. CPU clock rate | 4 MHz to 25 MHz |
FSB speeds | 4 MHz to 25 MHz |
Data width | 16 bits |
Address width | 24 bits |
Architecture and classification | |
Min. feature size | 1.5 µm [2] |
Instruction set | x86-16 (with MMU) |
Physical specifications | |
Transistors |
|
Co-processor | Intel 80287 |
Package(s) |
|
Socket(s) |
|
History | |
Predecessor | 8086, 8088 (while 80186 was contemporary) |
Successor | Intel 80386 |
The Intel 80286 [3] (also marketed as the iAPX 286 [4] and often called Intel 286) is a 16-bit microprocessor that was introduced on February 1, 1982. It was the first 8086-based CPU with separate, non-multiplexed address and data buses and also the first with memory management and w >[5] it could correctly execute most software written for the earlier Intel 8086 and 8088 processors. [6]
The 80286 was employed for the IBM PC/AT, introduced in 1984, and then widely used in most PC/AT compatible computers until the early 1990s.
Contents
History and performance [ edit ]
Intel’s first 80286 chips were specified for a maximum clockrate of 4, 6 or 8 MHz and later releases for 12.5 MHz. AMD and Harris later produced 16 MHz, 20 MHz and 25 MHz parts, respectively. Intersil and Fujitsu also designed fully static CMOS versions of Intel’s original depletion-load nMOS implementation, largely aimed at battery-powered devices.
On average, the 80286 was reportedly measured to have a speed of about 0.21 instructions per clock on "typical" programs, [7] although it could be significantly faster on optimized code and in tight loops, as many instructions could execute in 2 clock cycles each. The 6 MHz, 10 MHz and 12 MHz models were reportedly measured to operate at 0.9 MIPS, 1.5 MIPS and 2.66 MIPS respectively. [8]
The later E-stepping level of the 80286 was free of the several significant errata that caused problems for programmers and operating-system writers in the earlier B-step and C-step CPUs (common in the AT and AT clones). [9]
Architecture [ edit ]
The 80286 was designed for multi-user systems with multitasking applications, including communications (such as automated PBXs) and real-time process control. It had 134,000 transistors and consisted of four independent units: address unit, bus unit, instruction unit and execution unit, organized into a loosely coupled (buffered) pipeline just as in the 8086. The significantly increased performance over the 8086 was primarily due to the non-multiplexed address and data buses, more address-calculation hardware (most importantly, a dedicated adder) and a faster (more hardware-based) multiplier. [10] It was produced in a 68-pin package, including PLCC (plastic leaded chip carrier), LCC (leadless chip carrier) and PGA (pin gr >[11]
The performance increase of the 80286 over the 8086 (or 8088) could be more than 100% per clock cycle in many programs (i.e., a doubled performance at the same clock speed). This was a large increase, fully comparable to the speed improvements around a decade later when the i486 (1989) or the original Pentium (1993) were introduced. This was partly due to the non-multiplexed address and data buses, but mainly to the fact that address calculations (such as base+index) were less expensive. They were performed by a dedicated unit in the 80286, while the older 8086 had to do effective address computation using its general ALU, consuming several extra clock cycles in many cases. Also, the 80286 was more efficient in the prefetch of instructions, buffering, execution of jumps, and in complex microcoded numerical operations such as MUL/DIV than its predecessor. [10]
The 80286 included, in addition to all of the 8086 instructions, all of the new instructions of the 80186: ENTER, LEAVE, BOUND, INS, OUTS, PUSHA, POPA, PUSH immediate, IMUL immediate, and immediate shifts and rotates. The 80286 also added new instructions for protected mode: ARPL, CLTS, LAR, LGDT, LIDT, LLDT, LMSW, LSL, LTR, SGDT, SIDT, SLDT, SMSW, STR, VERR, and VERW. Some of the instructions for protected mode can (or must) be used in real mode to set up and switch to protected mode, and a few (such as SMSW and LMSW) are useful for real mode itself.
The Intel 80286 had a 24-bit address bus and was able to address up to 16 MB of RAM, compared to the 1 MB addressability of its predecessor. However, memory cost and the initial rarity of software using the memory above 1 MB meant that 80286 computers were rarely shipped with more than one megabyte of RAM. [10] Additionally, there was a performance penalty involved in accessing extended memory from real mode (in which DOS, the dominant PC operating system until the mid-1990s, ran), as noted below.
Features [ edit ]
Protected mode [ edit ]
The 286 was the first of the x86 CPU family to support protected virtual-address mode, commonly called "protected mode". In addition, it was the first commercially available microprocessor with on-chip MMU capabilities (systems using the contemporaneous Motorola 68010 and NS320xx could be equipped with an optional MMU controller). This would allow IBM compatibles to have advanced multitasking OSes for the first time and compete in the Unix-dominated server/workstation market.
Several additional instructions were introduced in protected mode of 80286, which are helpful for multitasking operating systems.
Another important feature of 80286 is prevention of unauthorized access. This is achieved by:
- Forming different segments for data, code, and stack, and preventing their overlapping.
- Assigning privilege levels to each segment. Segments with lower privilege levels cannot access segments with higher privilege levels.
In 80286 (and in its co-processor Intel 80287), arithmetic operations can be performed on the following different types of numbers:
By design, the 286 could not revert from protected mode to the basic 8086-compatible real address mode ("real mode") without a hardware-initiated reset. In the PC/AT introduced in 1984, IBM added external circuitry, as well as specialized code in the ROM BIOS and the 8042 peripheral microcontroller to enable software to cause the reset, allowing real-mode reentry while retaining active memory and returning control to the program that initiated the reset. (The BIOS is necessarily involved because it obtains control directly whenever the CPU resets.) Though it worked correctly, the method imposed a huge performance penalty.
In theory, real-mode applications could be directly executed in 16-bit protected mode if certain rules (newly proposed with the introduction of the 80286) were followed; however, as many DOS programs did not conform to those rules, protected mode was not widely used until the appearance of its successor, the 32-bit Intel 80386, which was designed to go back and forth between modes easily and to provide an emulation of real mode within protected mode. When Intel designed the 286, it was not designed to be able to multitask real-mode applications; real mode was intended to be a simple way for a bootstrap loader to prepare the system and then switch to protected mode; essentially, in protected mode the 80286 was designed to be a new processor with many similarities to its predecessors, while real mode on the 80286 was offered for smaller-scale systems that could benefit from a more advanced version of the 80186 CPU core, with advantages such as higher clock rates, faster instruction execution (measured in clock cycles), and unmultiplexed buses, but not the 24-bit (16 MB) memory space.
To support protected mode, new instructions have been added: ARPL, VERR, VERW, LAR, LSL, SMSW, SGDT, SIDT, SLDT, STR, LMSW, LGDT, LIDT, LLDT, LTR, CLTS. There are also new exceptions (internal interrupts): invalid opcode, coprocessor not available, double fault, coprocessor segment overrun, stack fault, segment overrun/general protection fault, and others only for protected mode.
OS support [ edit ]
The protected mode of the 80286 was not utilized until many years after its release, in part because of the high cost of adding extended memory to a PC, but also because of the need for software to support the large user base of 8086 PCs. For example, in 1986 the only program that made use of it was VDISK, a RAM disk driver included with PC DOS 3.0 and 3.1. A DOS could utilize the additional RAM available in protected mode (extended memory) either via a BIOS call (INT 15h, AH=87h), as a RAM disk, or as emulation of expanded memory. [10] The difficulty lay in the incompatibility of older real-mode DOS programs with protected mode. They simply could not natively run in this new mode without significant modification. In protected mode, memory management and interrupt handling were done differently than in real mode. In addition, DOS programs typically would directly access data and code segments that d >[12]
In January 1985, Digital Research previewed the Concurrent DOS 286 1.0 operating system developed in cooperation with Intel. The product would function strictly as an 80286 native-mode (i.e. protected-mode) operating system, allowing users to take full advantage of the protected mode to perform multi-user, multitasking operations while running 8086 emulation. [13] [14] [15] This worked on the B-1 prototype step of the chip, but Digital Research discovered problems with the emulation on the production level C-1 step in May, which would not allow Concurrent DOS 286 to run 8086 software in protected mode. The release of Concurrent DOS 286 was delayed until Intel would develop a new version of the chip. [13] In August, after extensive testing on E-1 step samples of the 80286, Digital Research acknowledged that Intel corrected all documented 286 errata, but sa >[9] Named IBM 4680 OS, IBM originally chose DR Concurrent DOS 286 as the basis of their IBM 4680 computer for IBM Plant System products and point-of-sale terminals in 1986. [16] Digital Research’s FlexOS 286 version 1.3, a derivation of Concurrent DOS 286, was developed in 1986, introduced in January 1987, and later adopted by IBM for their IBM 4690 OS, but the same limitations affected it.
The problems led to Bill Gates famously referring to the 80286 as a "brain-dead chip", [17] [ when? ] since it was clear that the new Microsoft Windows environment would not be able to run multiple MS-DOS applications with the 286. It was arguably responsible for the split between Microsoft and IBM, since IBM insisted that OS/2, originally a joint venture between IBM and Microsoft, would run on a 286 (and in text mode).
Other operating systems that used the protected mode of the 286 were Microsoft Xenix (around 1984), [18] Coherent, [19] and Minix. [20] These were less hindered by the limitations of the 80286 protected mode because they d >[21]