Мир Знаний

Микропроцессоры Intel 8086 и Intel 80286 (стр. 2 из 3)

· Дата анонса: 8 июня 1978 года

· Тактовая частота (МГц): 5 (модель 8086), 8 (модель 8086-2), 10 (модель 8086-1)

· Разрядность регистров: 16 бит

· Разрядность шины данных: 16 бит

· Разрядность шины адреса: 20 бит

· Объём адресуемой памяти: 1 Мбайт

· Количество транзисторов: 29 000

· Техпроцесс (нм): 3000 (3 мкм)

· Площадь кристалла (кв. мм): ~30

· Максимальное тепловыделение: 1,75 Вт

· Напряжение питания: +5 В

· Разъём: нет (микросхема припаивалась к плате)

· Корпус: 40-контактный керамический DIP

· Поддерживаемые технологии: 98 инструкций

Центральные процессоры: Intel 80286

Процессор 80286, выпущенный фирмой Intel 1 февраля 1982 г., является усовершенствованным вариантом микропроцессора 8086, содержащим схемы управления памятью и её защиты для упрощения реализации мультизадачных систем. На кристалле процессора размещено около 134000 транзисторов новой 1,5-микронной технологии, позволившей оформить микропроцессор в таком же, как и у микросхемы 80186, корпусе с 68 контактами, расположенными в четыре ряда. Выпускались модели процессора 80286 с частотами синхронизации 6, 8, 10 и 12,5 МГц производительностью 0,9, 1,2, 1,5 и 2,6 млн операций в секунду соответственно. Все модели микропроцессора имели одно напряжение питания +5 В.

Помимо регистров микропроцессора 8086, дополнительно введены следующие регистры, предназначенные для мультипрограммирования:

· слово состояния машины (16 бит) для хранения дополнительных бит состояния, связанных с расширенными возможностями процессора 80286, например, бита разрешения защиты, определяющего, в реальном или защищённом режиме работает процессор;

· расширения сегментных регистров (по 48 бит) для хранения текущих сегментных дескрипторов;

· регистр задачи (16 бит) для адресации системного дескриптора сегмента, который определяет базовый адрес, права доступа и размер сегмента состояния текущей задачи;

· регистры дескрипторной таблицы (один 64-битный и два 40-битных) для адресации дескрипторных таблиц, которые содержат дескрипторы различных сегментов.

· Система команд микропроцессора 80286 включает в себя все команды процессоров 8086 и 80186, а также 16 новых команд для работы со средствами управления памятью. Программы микропроцессоров 8086/8088 могут выполняться на процессоре 80286 без повторного ассемблирования или с переассемблированием с минимальными модификациями. Это – первый микропроцессор фирмы Intel, принципиально отличающийся от предыдущего и в тоже время способный выполнять все программы для него. Позже такая совместимость стала промышленным стандартом.

После сброса процессор работает в режиме реального адреса (реальном режиме), но возможен переход в режим защищённого виртуального адреса (защищённый режим) путём сброса бита разрешения защиты в слове состояния машины. Вновь перевести процессор в реальный режим может только его сброс.

Суть защищённого режима состоит в том, что физические адреса, которые схема управления памятью посылает в память, могут отличаться от логических, которые генерируются командами в соответствии с режимом адресации. Это позволяет пользователю разрабатывать программу в логическом пространстве, называемом также виртуальным, не учитывая ограничений реально доступной памяти (по общему размеру и особенностям размещения в адресном пространстве). При этом обеспечиваются два основных преимущества. Во-первых, при разделении программ на несколько частей, каждая из которых отображается на область реальной памяти, программа не обязательно должна занимать смежный блок памяти, что уменьшает фрагментацию памяти множеством одновременно выполняющихся программ и вместе с тем пространство, расходуемое впустую. Во-вторых, при выполнении не обязательно хранить в памяти всю программу. При обращении к той части программы, которой в данный момент в памяти нет, операционная система может приостановить программу, загрузить требуемую секцию кода из внешней памяти и возобновить выполнение программы. Следовательно, становятся допустимыми программы, размер которых больше объема имеющейся памяти. Другими словами, пользователю кажется, что он работает с большей памятью, чем на самом деле.

Преобразование логических адресов в физические происходит следующим образом. Как и в микропроцессоре 8086, программа разбивается на сегменты, причём не делается предположений о размещении сегментов в физической памяти. Номер сегмента в логическом адресе служит индексом сегментной таблицы, которая возвращает начальный физический адрес требуемого сегмента. Этот адрес суммируется со смещением ячейки памяти в сегменте, образуя физический адрес ячейки памяти. Если каждому заданию назначается отдельная область в сегментной таблице, то базовый адрес той секции сегментной таблицы, которая ассоциируется с текущим выполняемым заданием, находится в регистре, называемом регистром сегментной таблицы. Индекс сегмента берется относительно регистра сегментной таблицы. Поскольку преобразование адреса должно выполняться при каждом обращении к памяти, либо вся сегментная таблица, либо ее часть, содержащая начальные адреса сегментов выполняемого задания, должна храниться в регистрах, входящих в состав схемы управления памятью.

Каждый элемент в сегментной таблице (длиной до 8192 элементов) называется дескриптором сегмента. Кроме сегментных дескрипторов для сегментов кода, данных и стека, в микропроцессоре 80286 имеются системные управляющие дескрипторы для специальных системных данных и операций передач управления. Дескриптор содержит начальный адрес сегмента, а также следующие атрибуты:

· поле состояния, которое показывает, находится в памяти или нет сегмент, к которому производится обращение. Если требуемый сегмент в памяти отсутствует, возникает сегментное нарушение, инициирующее вызов монитора. Монитор загружает нужный сегмент в память, модифицирует сегментную таблицу и возобновляет выполнение программы. Когда достаточного пространства в памяти нет, один или несколько сегментов передаются во внешнюю память и удаляются из оперативной, освобождая в ней место;

· поле предела, показывающее размер сегмента (до 64 Кбайт). Эта информация предотвращает обращения к сегментам по недействительному адресу, вызываемые, например, переполнением стека. Когда смещение больше длины сегмента, генерируется прерывание с вызовом монитора;

· поле привилегий,59 показывающее, каким минимальным уровнем привилегий должна обладать задача, чтобы получить доступ к сегменту. Микропроцессор 80286 поддерживает 4 уровня привилегий;

· поле типа, обеспечивающее защиту от несанкционированных считывания, записи или выполнения сегмента. Это поле содержит 4 бита, которые показывают следующие возможности по обращению к сегменту:

o выполнимый – содержимое сегмента можно выполнять как команды, запись в сегмент запрещена;

o считываемый (для невыполнимого сегмента) – содержимое сегмента можно считывать как операнды;

o записываемый (для выполнимого сегмента) – содержимое сегмента допускается модифицировать;

o направление расширения (для невыполнимого сегмента) – сегмент данных растёт вверх, сегмент стека – вниз;

o ограниченно выполнимый (для выполнимого сегмента) – содержимое сегмента может выполняться только задачами с уровнем привилегий не ниже привилегий данного сегмента.

Направление расширения сегмента влияет на то, какие адреса считаются недействительными – больше или меньше предела сегмента. Каждому сегменту, как логической единице программы, можно придавать несколько ограничений по доступу посредством установки комбинаций этих бит. Четвёртый бит поля типа определяет тип дескриптора – дескриптор сегмента или системный дескриптор. Системный дескриптор нельзя загрузить в расширение сегментного регистра;

· поле доступа, которое обеспечивает полезную информацию о выборе сегмента для замены в случае нехватки физической памяти, когда из внешней памяти вызывается новый сегмент. Были предложены и исследованы такие алгоритмы замены, как очередь, замена наименее часто используемого и замена наиболее давно используемого. Однако, за исключением алгоритма очереди, их реализации требуют сложных аппаратных средств. Альтернативой служат биты доступа, ассоциируемые с каждым сегментом. Когда к сегменту производится обращение, один из его битов доступа автоматически устанавливается в 1. После того, как все биты доступа установлены в 1, монитор может сбросить их в 0. Анализируя биты доступа, монитор выбирает сегмент, к которому давно не было обращений. В дескрипторах микропроцессора 80286 поле доступа имеет длину 1 бит;

· поле изменения, которое показывает, модифицировался сегмент или нет после передачи его в память. При замене сегмента, если он был изменен, необходимо передать его во внешнюю память перед загрузкой нового сегмента. Если же сегмент не модифицировался, монитор должен только загрузить новый сегмент из внешней памяти, что позволяет избежать относительно длительной операции записи.

Важно осознавать, что и в защищённом режиме процессора 80286 сегменты могут перекрываться в физической памяти. Это часто используется для создания нескольких дескрипторов одного сегмента с разными правами доступа, например, для передачи дочерней задаче. Другое применение «псевдонимов» сегментов состоит в самомодификации кода: запись в сегмент кода, помеченный как выполнимый, не допускается, но возможно создание записываемого сегмента данных по тому же физическому адресу и запись в этот сегмент с модификацией кода.

При обращении к памяти типичная последовательность операций, выполняемых схемой управления памятью, выглядит таким образом:

1. Определить номер сегмента и обратиться к соответствующему элементу сегментной таблицы;

2. Проверить состояние. Если в памяти нужного сегмента нет, генерировать прерывание в монитор, который инициирует процедуру обслуживания сегментного нарушения;