
- •Мп и их роль в современных компьютерах, cisc, risc и epic мп:
- •Поэтому, для risc – процессоров характерно:
- •К преимуществам мп с risc – архитектурой можно отнести:
- •Краткая история развития мп семейства х86:
- •4. Перспективы развития микропроцессорной техники.
- •Основные причины и результаты усовершенствования мп семейства х86:
- •Системные регистры мп семейства х86:
- •Дескрипторные таблицы Дескрипторные таблицы
- •Назначение и структура дескрипторов кода и данных:
- •Назначение и структура системных дескрипторов:
- •Назначение и структура дескрипторов шлюзов:
- •Теневые регистры и их назначение:
- •Регистр флагов и назначение его отдельных битов:
- •Принцип формирования линейных адресов в реальном режиме работы мп семейства х86:
- •Принцип формирования линейных адресов в защищенном режиме работы мп в семействе х86:
- •Страничное преобразование адресов, ее назначение и принцип реализации:
- •Источники и разновидности запросов прерываний процессора:
- •Организация системы прерываний в реальном режиме работы процессоров семейства х86:
- •Организация системы прерываний в защищенном режиме работы процессоров семейства х86:
- •Организация общей (базовой) защиты в мп х86:
- •Защита по привилегиям сегментов и ее организация:
- •Защита по привилегиям команд:
- •Принципы организации многозадачного режима работы:
- •Сегмент состояния задачи, его структура и назначение:
- •Принципы, лежащие в основе использования кэш-памяти, и организация кэш-памяти прямого отображения:
- •Принципы организации полностью ассоциативной и множественно-ассоциативной кэш-памятей:
- •Принципы организации целостности данных в подсистеме памяти с кэшированием:
- •Описание блок-схем алгоритмов обслуживания запросов в подсистеме памяти с кэшированием:
- •4. Двухуровневое кэширование.
- •Принципы организации конвейерной обработки сигналов в мп х86:
- •Циклы шины и режимы работы мп х86:
- •2. Реальный режим (r86)
- •3. Защищенный режим (p – режим)
- •4. Виртуальный режим (v86)
- •5. Режим smm
- •Принципы организации пакетного режима обмена информацией:
- •Основные особенности микроархитектуры Intel Sandy Bridge и ее структурная схема:
- •Сущность принципа «динамического исполнения команд»:
- •Структурная схема ядер мп Sandy Bridge и их функционирование:
- •Необходимость и общие принципы функционирования блока предсказаний ветвлений:
- •Необходимость предварительного и основного декодирования инструкций х86 в мп микроархитектуры Sandy Bridge:
- •Функционирование системы обнаружения программных циклов и суть работы блока pcu в мп микроархитектуры Sandy Bridge:
- •Сущность технологий макро- и микрослияний инструкций и микрокоманд в мп микроархитектуры Sandy Bridge:
Принцип формирования линейных адресов в защищенном режиме работы мп в семействе х86:
Основное отличие модели сегментации памяти в процессорах, функционирующих в защищенном режиме работы, от процессора 8086 заключается в том, что теперь пользовательская программа не может свободно обращаться по любому адресу в адресном пространстве памяти. Каждая программа, независимо от уровня ее привилегий, не может обращаться к сегменту до тех пор, пока он не «описан» для программы. Программе не разрешается обращаться по любому адресу, который она может сформировать. Кроме того, в задании атрибутов сегментов, которые зафиксированы в их дескрипторах, предоставляется довольно большая свобода. Например, базовый адрес может быть любым (не требуется его выравнивания на границу параграфа т.е. с градацией 16 байт), а размер сегмента варьируется от одного байта до всего адресуемого пространства в 4Гбайт (при страничной грануляции). Размер сегмента в 4Гбайта говорит о том, что с помощью эффективного 32 разрядного адреса инструкции, можно «пройти» все адресное пространство, не модифицируя содержимое сегментного регистра. Такая свобода определения сегментов предоставляет программисту полное управление использованием памяти и позволяет удовлетворить практически любые запросы памяти.
Схема формирования линейного адреса в защищенном режиме работы МП семейства х86 с привлечением селектора и смещения в сегменте (эффективного адреса), получаемого из текущей инструкции, приведена на рисунке III.12. Как уже упоминалось, совокупность селектора и эффективного адреса, которую иногда называют, также, указателем адреса, определяет логический или виртуальный адрес операнда. Селектор представляет собой 16 разрядный двоичный код, заносимый специальной инструкцией в соответствующий сегментный регистр. Селектор состоит из трех полей (см. рис.III.11).
15 2 1 0
Index |
TI |
RPL |
Рис. III.11 Формат селектора сегмента в МП 80286+
Младшие два бита образуют поле RPL (Requested Privilege Level) – уровень привилегий запросчика. Они используются при организации системы защиты от несанкционированного доступа к сегментам памяти. Следующий бит–TI (Table Indicator) - определяет тип дескрипторной таблицы, из которой должен выбираться дескриптор (TI = 0 из таблицы GDT, TI = 1 из таблицы LDT). Остальные 13 бит определяют номер запрашиваемого дескриптора в соответствующей дескрипторной таблице.
Базовый адрес LDT(из дескриптора LDT)
Рис.III.12. Формирование линейного адреса в МП семейства Х86
Физический же адрес дескриптора в общем адресном пространстве определяется путем суммирования базового (начального) адреса дескрипторной таблицы с номером этого дескриптора, умноженным на 8 (поскольку каждый дескриптор занимает адресное пространство, равное 8 байтам). Базовый же адрес дескрипторной таблицы извлекается из соответствующего системного регистра. При TI = 0, используется системный регистр GDTR, а именно, содержимое его поля базового адреса.
Выбрав из оперативной памяти по полученному физическому адресу дескриптор, процессор выделяет из него базовый адрес запрашиваемого сегмента, и суммирует его со смещением (эффективным адресом, либо значением IP, SP, SI или DI), получаемым непосредственно из инструкции (команды) выполняемой программы. Полученное значение адреса является линейным а, в случае выключенного режима страничного преобразования, одновременно и физическим адресом, выдаваемым процессором непосредственно на адресную шину компьютера.
Если TI = 1, то это означает, что запрашиваемый дескриптор находится в локальной дескрипторной таблице LDT. В этом случае надо предварительно определить, где находится сегмент самой LDT. Для этого процессор обращается к 16 разрядному системному регистру LDTR. В нем находится селектор, определяющий тот дескриптор в GDT, который описывает данный сегмент LDT. Выбрав по этому селектору, описанным выше способом, из GDT дескриптор сегмента LDT, процессор извлекает из него базовый адрес таблицы LDT. Затем он возвращается и анализирует селектор, который занесен в сегментный регистр. Считывает с него значение индекса, умножает на 8 и, суммируя его с базовым адресом таблицы LDT, находит базовый адрес сегмента, где находится адресуемый операнд. Нахождение искомого адреса самого операнда осуществляется так же, как и в случае нахождения сегмента в таблице GDT.
Обобщая все сказанное выше, можно следующим образом сформулировать алгоритм формирования линейного (физического) адреса в защищенном режиме работы процессоров семейства i80х86.
Взять селектор из сегментного регистра.
Если бит TI показывает на GDT (TI = 0), взять из GDTR адрес дескрипторной таблицы и перейти к шагу 4.
Если бит TI показывает на LDT (TI = 1), то:
а) взять селектор сегмента LDT из регистра LDTR;
б) выделить в селекторе поле индекса (старшие 13 разрядов) и умножить индекс на 8 (сдвинуть на 3 разряда влево);
в) прибавить результат к базовому адресу из регистра GDTR;
г) считать из памяти адресуемый дескриптор;
д) выделить из этого дескриптора базовый адрес сегмента,
содержащего таблицу LDT. Полученный базовый адрес является
адресом дескрипторной таблицы LDT. Перейти к шагу 4.
4. Выделить в селекторе сегментного регистра поле индекса (старшие 13
разрядов), умножить на 8 содержащийся в нем код, и прибавить к
базовому адресу соответствующей дескрипторной таблицы. Считать
из памяти дескриптор по этому адресу.
5.Выделить из дескриптора базовый адрес искомого сегмента.
6. Прибавить значение смещения в сегменте (из инструкции) к
базовому адресу искомого сегмента. Это и будет требуемый линейный
адрес. Он же является и физическим адресом, если не включено
страничное преобразование.
7. Осуществить обращение к памяти по полученному адресу.