Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
обычным программам запрещается выполнять некоторые команды;
обычным программам должны быть недоступны определенные сегменты, доступные операционной системе;
не должно быть возможным получение привилегии операционной системы иным путем, кроме как вход в нее в разрешенной точке входа.
Дескрипторы - это те объекты, на которые ссылаются селекторы. Они представляют собой 8-байтовые блоки, содержащие атрибуты области физических адресов, т. е. сегменты. Два старших байта каждого дескриптора не используются МП 80286 и должны всегда содержать нули, чтобы обеспечить совместимость с его будущими модификациями (например МП 80386). Формат дескрипторов различных типов показан на рис.3.16.
Рис.3.I6. Формат поля типа сегментов прикладных программ и данных:
а - для сегмента кода; б - для сегмента данных
Дескрипторные таблицы могут содержать не только дескрипторы сегментов, но и дескрипторы вентилей (шлюзов).
Вентиль обеспечивает контролируемый переход потоков управления между исполнительными сегментами с различными уровнями привилегий. Существует четыре типа вентилей: вентили вызова, задачи, прерывания и специального прерывания (ловушки).
Следующие за двумя нулевыми старшими байтами (рис.3.17) поле содержит байт доступа, информация в котором зависит от типа дескрипторов. Байт доступа закодирован так, что путем его анализа всегда можно однозначно определить тип дескриптора.
Байт доступа содержит следующие поля.
Бит присутствия сегмента Р. Если бит сброшен, то данный дескриптор не может быть использован при трансляции адресов.
Уровень привилегий дескриптора DPL. Используется механизмов защиты.
Бит системного сегмента S определяет, является ли данный сегмент системным (S= 0), сегментом программы или данных.
В поле используется следующий набор значении:
0 : запрещено,
1 : TSS доступен,
2 : таблица LDT,
3 : TSS занят,
4 : вентиль вызова,
5 : вентиль задачи,
6 : вентиль прерывания,
7 : вентиль ловушки (специального прерывания).
Формат поля типа сегментов прикладных программ и данных приведен на рис.3.16.
Поле типа содержит следующие биты:
Бит 0 - бит обращения (А). Сброс бита А можно осуществить программно. Этот бит помогает операционной системе ассоциировать с каждым сегментом приблизительное время его последнего использования.
Бит 1 - бит разрешения доступа по чтению (R) или записи (W). Если R=I для сегмента кода, то наряду с обращением к такому сегменту для выполнения разрешается и обращение для считывания. Если W=I для сегмента данных, то помимо считывания данных разрешается и запись в него.
Рис.3.17. Общий формат дескрипторов МП 80286
Бит 2 - бит согласованного сегмента (С) для сегмента
кода или бит расширения вниз (ED) для сегмента денных. Бит ED управляет интерпретацией поля предела дескрипторов, таким образом: при ЕD=1 размер сегмента определяется как FFFFH - предел.
Следующее за байтом доступа поле (в сторону уменьшения адресов) дескриптора сегмента определяет 24-разрядный базовый адpec сегмента. Для получения физического адреса 24-битннй базовый адрес суммируется с 16-битным смещением. Переполнение при
сложении игнорируется. В защищенном режиме адресное пространство составляет 16 Мбайт вместо 1 Мбайта в реальном режиме
(физический адрес равен 20 битам). Однако каждая задача может
иметь полное адресное виртуальное пространство, равное 230=1 Гбайт. Это расширение адресного пространства обеспечивает защищенный режим. . \
Содержание поля предела дескриптора сегмента описано выше.
Поля селектора и смещения дескрипторов вентилей вызова, прерывания и ловушки определяет полный логический адрес с точки входа в соответствующую процедуру.
Таблицы дескрипторов определяют все сегмента, используемые МП 80286. Существуют три типа таблиц. Регистры, которые указывают на эти таблицы, представлены на рис.3.12 и имеют названия GDTR, LDTR и IDTR.
Эти регистры были рассмотрены выше. Таблица дескрипторов - это массивы памяти переменной длины с 8-битовыми элементами, которые содержат дескрипторы. В МП 80286 они имеют длину от 8 байт до 64 Кбайт, и в каждой таблице может быть до 8192 дескрипторов.
Для управления многозадачностью в МП 80286 не используются
специальные команды, обычные команды управления с новой интерпретацией. Регистрами и структурами данных, которые поддерживают многозадачность, являются сегмент состояния задачи TSS, дескриптор TSS, регистр задачи TR и дескриптор вентиля задачи.
Многозадачность моделирует многопроцессорность, обеспечивая каждую задачу виртуальным процессором.
В каждом конкретном случае операционная система назначает реальный процессор одному из виртуальных процессоров, который затем выполняет задачу данного виртуального. Сегмент TSS (рис.3.18) - это структура данных, которая характеризует состояние виртуального процессора задачи.
Сегмент TSS состоит из двух частей. Первой частью является набор данных, обновляемый процессором при каждом переключении задачи. Этот набор включает поля со следующим содержимым:
регистры сегментов – DS, SS, CS, ЕS;
регистры общего назначения - DI, SI, ВР, SР, ВХ, DХ, СХ, АХ;
регистр флагов – FLAGS;
указатель команд – IP; " -
селектор сегмента TSS предыдущей исполняемой задачи (обратная связь).
Второй частью сегмента TSS является набор, который процессор считывает, но не изменяет, этот набор включает следующие поля:
селектор таблицы LDТ задачи; *
виртуальные адреса трех стеков по одному для каждого из трех уровней 0-2. Каждый адрес определяет дно (низ) стека.
При создании новой задачи операционная система создает
сегмент TSS. " -
Инициализация после подачи сигнала RESET (сброс) МП 80286 начинает работать в реальном режиме. Начальные значения регистров следующие:
селектор CS - F000H;
селектор DS - 0000Н;
селектор ES - 0000Н;
селектор SS – 0000H;
регистр FLAGS-0002H;
указатель команд IP-FFFFH;
регистр таблицы прерываний IDTR - база равна 0, граница-3FFH;
регистр слова состояния машины MSW – FFF0H.
В начальном состоянии прерывания запрещены.
Переход в защищенный режим осуществляется загрузкой в MSW
Рис.3.18. Сегмент состояния задачи МП 80286
слова состояния машины с установленным битом защиты (РЕ=1) привилегированной командой LMSW, а затем должна следовать команда JМР (сброс всех очередей).
3.3. Микропроцессор 80386
Производство МП 80386 начато в 1985 году и представляет собой высокопроизводительный 32-разрядный микропроцессор. Он имеет полную 32-разрядную архитектуру с физическим адресным пространством 232 = 4 Гбайта и встроенными средствами виртуальной памяти. МП 80386 в защищенном режиме может адресовать до 246 байт = 64 Гбайта виртуальной памяти. Микропроцессор может осуществлять переключение программ, выполненных под управлением табличных операционных систем (UNIX, MS DOS, iAPX-86).
Микропроцессоры 8086/8088 и 80286 совместимы с МП 80386
на уровне двоичных кодов. Одной из отличительных черт МП 30386
является режим виртуального МП 8086. В этом режиме в рамках
многозадачной среды МП 80386 устанавливается защищенная среда МП 8086.
Функциональная схема МП 80386 представлена на рис.3.19. МП 80386 состоит из шести блоков, работающих параллельно: блок интерфейса с магистралью (BIU), блок предварительной выборки команд, блок декодирования команд, исполнительный блок (EU), блок управления сегментами и блок разбиения на страницы (см. рис.3.19).
Блок BIU обеспечивает интерфейс между процессором и его
внешней средой. BIU принимает внутренние запросы для выборки команд от блока предварительной выборки команд и для обмена данными от блока EU и устанавливает приоритет этих
запросов. МП 80386 реализует функции опережающего просмотра
программы, которую выполняет блок предвыборки команд. Команды
хранятся в 16-байтовой очереди команд в ожидании обработки
блоком декодирования. ■ ■
Блок декодирования команд преобразует байты команды из этой очереди в микрокод. Декодированные команды в ожидании обработки EU хранятся в очереди длиной 3 команды, организованной по принципу FIFO (первым вошел - первым вышел), 
Рис.3.I9. Блок-схема МП 80386
Исполнительный блох (EU) выполняет команды из очереди команд и взаимодействует со всеми другими блоками. Выполнение команды в EU начинается до завершения выполнения предыдущей команды.
Блок EU содержит восемь 32-разрядных регистров общего назначения, применяемых как для вычисления адресов, так и для операций с данными. Этот блок содержит также 64-разрядный регистр, применяемый для ускорения операций сдвига, циклического сдвига, умножения и деления.
Блок управления сегментами преобразует логические адреса в линейные по запросу блока EU. ■
Оттранслированный линейный адрес направляется в блок разбиения на страница. В МП 8086/8088 и МП 80286 отсутствует блок разбиения на страницы, поэтому в них логический адрес сразу преобразуется в физический.
Если механизм разбиения на страницы МП 80386 активизирован, то соответствующий блок транслирует линейные адреса в физические. Если же этот механизм выключен, то это означает, что линейный адрес совпадает с физическим. Блок разбиения на страницу пересылает физические адреса в блок BIU для выполнения цикла обращения к памяти или устройством ввода-вывода.
В связи с рассмотренным выше можно видеть следующие отличия архитектуры МП 80386 от МП 80286:
- З2-разрядная архитектура;
- страничная организация памяти;
- режим виртуального МП 8086;
- расширение пространства физических и виртуальных адресов;
- большее быстродействие.
МП 80386 имеет два основных режима работы: режим реального
адреса (реальный режим) и защищенный режим.
Реальный режим. При подаче сигнала RESET (сброс) или при включении питания МП 80386 устанавливается в реальный режим и работает как очень быстрый МП 8086, но при необходимости с 32-разрядным расширением. В реальном режиме разбиение на страницы не производится, поэтому линейный адрес совпадает с физическим адресом. Линейный 20-разрядкый адрес по 16-разрядному селектору сегмента (предварительно сдвинутого влево на четыре бита) и исполнительному адресу (смещения), расширенного слева четырьмя нулевыми битами, получается сложением.
Прерывания и исключения в реальном режиме обрабатываются точно так же, как в МП 8086/8088. При этом таблица дескрипторов прерываний (IDT) МП 80386 представляет таблицу векторов прерываний МП 8086/8088.
Для перехода в защищенный режим необходимо явное переключение.
Защищенный режим. В этот режим МП 80386 входит при условии, что бит включения защиты (РЕ) установлен в нулевом регистре управления (CRO). С помощью команды пересылки (move to CRO) можно использовать также команду загрузки слова состояния машины (LMSW). В отличие от МП 80286 МП 80386 можно ввести в реальный режим с помощью сброса командой пересылки бита РЕ регистра СRО.
В защищенном режиме используется 16-разрядный селектор для указания в определенной системной таблице индекса, который содержит 32-разрядный базовый адрес сегмента. Физический адрес формируется путем прибавления относительного адреса к базовому. Программы, написанные для МП 80286, выполняются на МП 80386 без изменений. Этот процессор поддерживает также дескрипторы, применяемые в МП 80286.
32-разрядная архитектура МП 80386 использует типы данных предыдущих поколений МП 8086/8088, МП 80286 и вызывает их модификацию.
МП 80386 подразделяет память на 8-разрядные байты, 16-разрядные слова и 32-разрядные двойные слова. Биты нумеруются с 0 по 7. Бит 0 является самым младшим значащим битом. Младший байт в слове хранится по меньшему адресу, а старший - по большему. Адресом слова иди двойного слова является адрес соответствующего младшего байта.
Помимо байт, слов, двоичных слов МП 80386 поддерживает следующие типы данных:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


