Организация ЭВМ и систем
Структура микропроцессора Intel 80386
Регистры ЦП 80386
Режимы работы ЦП 80386
ЦП 80386 (переключение режимов)
Формирование линейного адреса без участия селекторов
Формирование линейного адреса в защищенном режиме
Сегментная и страничная организация памяти
Многозадачность в ЦП 80386
Сравнительные характеристики режимов работы процессора
ЦП 80386 (формат команды)
Формат команды
Структура микропроцессора Intel 80486
Режим пакетирования
Уровни привилегий в IA32
ЦП 80486 (уровни привилегий)
Структуры с привилегиями
Правила на основе привилегий
Вопросы для самоконтроля
Вопросы для самоконтроля
183.50K
Категория: ЭлектроникаЭлектроника

Архитектура 32-битных процессоров IA-32. (Лекция 3)

1. Организация ЭВМ и систем

Лекция № 3
Архитектура 32-битных процессоров IA-32
• ЦП 80386: основные регистры, режимы
работы
• Страничная и сегментная организация
памяти. Многозадачность. Формат команд
• ЦП 80486 – режим пакетирования

2. Структура микропроцессора Intel 80386

Шина исполнительного адреса
32
ПЛМ границ
и атрибутов
Циклический
сдвигатель,
сумматор
Умножитель/
делитель
Набор
регистров
Декодирование
и упорядочение
Управляющее
ПЗУ
Управление
Специализированная шина АЛУ
32
Кэш страниц
ПЛМ управления
и атрибутов
Устройство
предварительной
выборки
Декодер
команд
Предварительное
декодирование
команд
Очередь
декодированных
команд
32
16-байтная
очередь
кодов
Арбитр
запросов
Драйвер
адреса
Управление
размером
шины,
конвейером
Выборка кодов,
Таблицы страниц
Шина
АЛУ
смещений
Блок проверки
защиты
34
Управление
Регистры
дескрипторов
Шина линейного адреса
32
Внутренняя
шина
управления
Сумматор
Трехвходовый
сумматор
Шина физического
адреса
Шина исполнительного адреса
Управление шиной
Блок разбивки
на страницы
Блок сегментации
32
Мультиплексор,
приемопередатчики
Предварительная
выборка команд
32

3. Регистры ЦП 80386

1.
2.
3.
4.
1.
2.
3.
4.
Программно доступные регистры:
8 регистров общего назначения (32-разрядные).
Регистр флагов (EFLAGS – 32-разрядный).
Счетчик команд (EIP – 32-разрядный).
6 сегментных регистров (16-разрядные).
Системные регистры:
4 регистра управления: CR0, CR1, CR2, CR3
(сохраняют состояние микропроцессора).
8 отладочных регистра: DR0-DR3, DR6, DR7, (DR4,
DR5 – зарезервированные ф. Intel).
4 регистра защищенного режима: GDTR, IDTR – 48разрядные; LDTR, TR – 16-разрядные.
2 регистра страничных проверок: TR6, TR7.

4. Режимы работы ЦП 80386

1.
Реальный режим или режим реальных адресов.
В реальном режиме МП работает как очень быстрый 8086 с
возможностью использования 32-битных расширений. Механизм
адресации, размеры памяти и обработка прерываний (с их
последовательными ограничениями) МП 8086 полностью
совпадают с аналогичными функциями других МП IA-32 в реальном
режиме. В отличие от 8086 остальные члены семейства IA-32 в
определенных ситуациях генерируют исключения, например, при
превышении предела сегмента, который для всех сегментов в
реальном режиме равен 0FFFFh.
2.
3.
Виртуальный режим или режим виртуального 8086.
Защищенный режим – полностью 32-разрядный
процессор.

5. ЦП 80386 (переключение режимов)

6. Формирование линейного адреса без участия селекторов

В режиме реального адреса и в режиме системного
управления
используется
упрощенная
схема
формирования линейного адреса. Эта же схема
используется
для
вычисления
адресов
задачи
защищенного режима, находящейся в состоянии
эмуляции 8086 (Virtual 8086 Mode).
В этом случае базовый адрес сегмента берется из
сегментного регистра. Значение в сегментном регистре
представляет собой биты 4-19 базового адреса сегмента.
Из этого следует, что сегменты в этих режимах выровнены
по 16-байтной границе и все сегменты начинаются в
пределах нижнего мегабайта линейного адресного
пространства. Предел для всех сегментов одинаков. В
режиме реального адреса и для задачи в состоянии VM86
предел сегмента - 64Кбайт, а в режиме системного
управления - 4Гбайт.

7. Формирование линейного адреса в защищенном режиме

Если в регистре управления CR0 бит PG- разбиение
на страницы не установлен, то полученный линейный
адрес (см. следующий слайд) является физическим, если
PG=1, то включается страничная адресация памяти.
В процессе страничной трансляции адресов
полученный линейный адрес разбивается на три части.
Старшие десять бит линейного адреса являются
индексом элемента из каталога таблиц. По этому
элементу определяется физический адрес таблицы
страниц. Биты 21-12 линейного адреса выбирают
элемент из этой таблицы страниц. Выбранный элемент
определяет физический адрес страницы. Младшие 12
бит линейного адреса определяют смещение от начала
страницы.

8. Сегментная и страничная организация памяти

Логический адрес
Селектор
Смещение
Дескрипторная таблица (0 – GDT, 1 – LDT)
Дескриптор
Линейный адрес
22 21
31
Директория
+
12 11
Страница
0
Смещение
Физический
адрес
CR0

9. Многозадачность в ЦП 80386

Многозадачность
это
метод
управления
компьютерной системой, когда отдельные задачи
выполняются так, как если бы они выполнялись
параллельно на отдельных процессорах с общей
памятью.
Задачу составляют два компонента: адресное
пространство задачи и сегмент состояния задачи (Task
State Segment - TSS).

10.

Сегмент состояния
задачи TSS
Селектор
База
GDT
Дескриптор TSS
Предел
В адресное пространство задачи
входят доступные ей сегменты кода,
данных и стека.
Сегмент состояния задачи хранит
состояние регистров (контекст)
процессора:
• состояние сегментных регистров
(селекторы сегментов,
формирующие адресное
пространство задачи);
• состояние регистров общего
назначения;
• состояние регистра флагов
(EFLAGS);
• указатель очередной команды
(EIP);
• значение регистра CR3 (PDBR);
• значение регистра LDTR.
В многозадачных системах TSS
предоставляет механизм для
связывания (вложения) задач.

11. Сравнительные характеристики режимов работы процессора

Характеристика
RM
PM, VM=0
PM, VM=1
SMM
Формирование
линейного адреса
без участия
селекторов
через
селекторы и
дескрипторы
без участия
селекторов
без участия
селекторов
64К
определяется
дескриптором
64К

Максимальный
объем доступной
памяти
(виртуальной)
1M+64K-16
64T-2х4Г
1M+64K-16

Защита
Нет
Да
Только на
Нет
Предел сегментов
уровне страниц
Страничное
преобразование (в
т.ч. PAE)
Нет
Да
Да
Нет
Мультизадачность
Нет
Да
Да
Нет

12. ЦП 80386 (формат команды)

Адресная
ПРЕФИКС
КОП
MOD R/M
1-2 байта 1-2 байта 0-1 байт
SIB
0-1 байт
часть
СМЕЩЕНИЕ
ДАННЫЕ
0,1,2,4 байт
0,1,2,4 байт
Типы префиксов:
- замена сегментов;
- размер адреса (16 или 32 бит);
- размер операнда;
- повторение (используется с командами обработки строк);
- блокировка.

13. Формат команды

КОП - код операции.
Байт "Mod R/M" определяет режим адресации, а также
иногда дополнительный код операции. Необходимость
байта "Mod R/M" зависит от типа инструкции.
Байт SIB (Scale-Index-Base) определяет способ
адресации при обращении к памяти в 32-битном
режиме. Необходимость байта SIB зависит от режима
адресации, задаваемого полем "Mod R/M".
Кроме
того,
инструкция
может
содержать
непосредственный операнд и/или смещение операнда
в сегменте данных.
На размер инструкции накладывается ограничение в
15
байт.
Для
совместимости
с
16-битными
процессорами
архитектура
IA-32
использует
одинаковые коды для инструкций, оперирующих как с
16-битными, так и 32-битными операндами.

14. Структура микропроцессора Intel 80486

Шина данных
32
32
64-битная внутренняя шина
Шина данных
32
Регистры
Устройство
страничного
преобразования
Устройство
сегментации
Парал-ный
сдвигатель
Шина линейного адреса
Кэш-память 8К
PWT
АЛУ
Шинный интерфейс
Драйверы
адреса
Адрес
Буферы записи
Регистры
дескрипторов
Физический
адрес
128
Шина смещения
Устройство
предвыборки
команд
Управляющее
ПЗУ
24
Дешифратор
команд
Дешифрированная
команда
Приемопередатчики
данных
Данные
Управление
Микрокоманда
Устройство
управления
32
Ассоциативный
буфер
Контроль предела
и атрибутов
32
Регистры
32
32
База
Устройство
с плавающей
точкой
32
PCD
Команды
Очередь
кода 32 байта
Управление
шиной
Управление
пакетами
Управление
размером
Управление
кэш-памятью
Управление
паритетом

15. Режим пакетирования

Средство блочной передачи: 64 бита за 1 раз.
Такт
Конвейеризация
(80286)
Пакет
(80486)
1
Адрес 1 слова
Адрес 1 слова
2
Передача 1 слова
----------
3
Адрес 2 слова
Передача 1 слова
4
Передача 2 слова
Передача 2 слова
5
Адрес 3 слова
Передача 3 слова
6
Передача 3 слова
Передача 4 слова
7
Адрес 4 слова
----------
8
Передача 4 слова
----------

16. Уровни привилегий в IA32

Архитектура
защиты
МП
обеспечивает
4
иерархических уровня привилегий, что позволяет
ограничить задаче доступ к отдельным сегментам в
зависимости от ее текущих привилегий.
Привилегии это свойство (обычно устанавливаемое
при проектировании системы), которое определяет, какие
компьютерные операции разрешаются в любой момент
времени и какие доступы к памяти законны. Привилегии
используются
для
обеспечения
безопасности
в
компьютерной системе. Привилегии реализуются путем
присвоения значения от 0 до 3 ключевым объектам,
которые
опознаются
процессором.
Значение
0
соответствует наибольшим привилегиям, тогда как
значение 3 наименьшим.

17. ЦП 80486 (уровни привилегий)

3
2
1
0
Направление
обращения к данным
0 – Ядро ОС
1 – ОС
2 – Системы
программирования
3 – Прикладные
программы
Привилегированные команды выполняются только на
«0» - уровне привилегий, на всех других уровнях
вызывается исключение №13 – нарушение общей
защиты.

18. Структуры с привилегиями

CPL – текущий уровень привилегий (Current Privilege
Level): уровень привилегий, на котором в данный момент
исполняется задача. Значение CPL хранится в поле RPL
селектора сегмента кода, который помещен в регистр CS.
Обычно это значение соответствует уровню привилегий
дескриптора исполняемого сегмента кода. Уровень
привилегий меняется, когда управление передается
сегменту кода с другим значением DPL (за исключением
подчиняемых сегментов кода).
DPL –уровень привилегий дескриптора (Descriptor Privilege
Level): наименее привилегированный уровень, на котором
задача может получить доступ к сегменту или шлюзу,
связанному с этим дескриптором.
RPL –запрашиваемый уровень привилегий (Requested
Privilege Level) используется для временного понижения
своего уровня привилегий при обращении к памяти. RPL
заносится в младшие биты селектора.
IOPL – уровень привилегий ввода/вывода (EFLAGS).

19. Правила на основе привилегий

• Доступ к данным разрешен, если max(CPL,RPL)<=DPL, в
противном случае генерируется нарушение общей защиты.
Команды с портами или команды I/O выполняются только в
том случае если: CPL<=IOPL.
• Контроль привилегий при доступе к стеку осуществляется
при загрузке селектора в регистр SS. Программа должна
использовать сегмент стека, находящийся на том же
уровне привилегий, т. е. CPL=RPL=DPL.
• Для передачи управления на обычный сегмент кода его
уровень привилегий должен совпадать с текущим уровнем
привилегий. Значение RPL должно быть не больше CPL,
чтобы не вызывать исключения, но вне зависимости от
значения RPL уровень привилегий не сменится: CPL=DPL.

20. Вопросы для самоконтроля

1.
2.
3.
4.
5.
6.
7.
Какие регистры составляют программная модель ЦП
80386?
В каких режимах может работать ЦП 80386?
Как формируется физический адрес при сегментной
адресации?
Как формируется физический адрес при страничной
адресации?
Сколько бит линейного адреса определяют смещение
от начала страницы?
Что такое многозадачность? Какими средствами она
поддерживается?
Какая информация хранится в сегменте состояния
задачи?

21. Вопросы для самоконтроля

8.
9.
10.
11.
12.
13.
В каких режимах работы ЦП 80386 предел сегмента –
64 кбайт?
В каких режимах работы ЦП 80386 поддерживается
страничное преобразование адреса?
Какие поля составляют команду ЦП 80386?
Что такое пакетирование? В чем его преимущество?
С каких уровней можно обратиться к данным,
находящимся на 3 уровне привилегий?
Какое правило на основе привилегий применяется
для защиты сегмента кода?
English     Русский Правила