Вы находитесь на странице: 1из 21

Лк3.

Архитектура микропроцессоров
семейства i80x86
Под архитектурой процессора понимается его
программная модель, то есть программно-видимые
свойства.
Под микроархитектурой понимается внутренняя
реализация этой программной модели. Для одной и
той же архитектуры IA-32/64 разными фирмами и в
разных поколениях применяются существенно
различные микроархитектурные реализации, при
этом стремятся к максимальному повышению
производительности.
Современный микропроцессор представляет собой
один-два "кристалла", объединяющие CPU с
различными функциональными узлами.

1
Микроархитектуры современных
микропроцессоров
 RISC (Reduced Instruction Set Computer) - процессоры
с сокращенной системой команд. Коды инструкций
фиксированной длины. Набор однородных регистров
универсального назначения.
 CISC (Complete Instruction Set
Computer) - процессоры с полным набором
инструкции.
 MISC (Multipurpose Instruction Set Computer) -
объединенные RISC CPU с микропрограммно-
управляемым ПЗУ
Процессоры i80х86 имеют самую сложную в мире
систему команд (CISC архитектура). В процессорах
этого семейства, начиная с 486, применяется
комбинированная MISC архитектура.
2
Программная модель 16-разрядных
микропроцессоров
15 87 0
AX AH AL
BX BH BL
CX CH CL
DX DH DL
BP Указатель базы
SP Указатель стека
SI Индекс источника
8086/8088 DI Индекс приемника

CS Сегмент команд
DS Сегмент данных 80286
SS Сегмент стека
ES Сегм. данных (дополнит.)

FLAGS Флаги
IP Указатель команды
Слово состояния
MSW
машины

TR Регистр задач
LDTR Регистр лок. дескр. табл.
GDTR Регистр глоб. дескр. табл.
IDTR Регистр табл. прерываний
3
Режим реального адреса (R - режим)
 20 – разрядная шина адреса.
 сегментированная модель памяти.
 размер каждого сегмента 216 =64 Кбайт.
Сегмент Смещение – Логический адрес
15 0 15 0
16 *
19 43 0
– Базовый адрес
0000

+ – Эффективный адрес
19 0
– Линейный адрес
4
Программная модель 32-разрядных
микропроцессоров
МП поддерживают следующие режимы работы:
 R - реальный режим, адресуемая память составляет
1 Мбайт;
 P16 - защищенный 16-разрядный режим, адресуемая
физическая память составляет 16 Мбайт;
 P32 - защищенный 32-разрядный режим,
выполняются 32-разрядные операции, адресуемая
физическую память 4 Gбайт и поддержка
виртуальной памяти до 64 Тбайт;
 V86 - виртуальный режим МП 8086, реализуется
внутри защищенного режима.
 SMM – особый режим системного управления,
процессор переключается в иное, изолированное от
остальных режимов адресное пространство в
служебных и отладочных целях.
5
Регистры
1) регистры общего назначения (РОН) - 8 регистров;
2) сегментные регистры - 6 регистров;
3) указатели команд и флаги - 2 регистра;
4) системные регистры, которые включают:
- управляющие регистры - 5 регистров (один
зарезервирован);
- регистры системных адресов и системных
сегментов - 4 регистра;
- отладочные регистры - 8 регистров;
- тестовые регистры - 8 регистров;
- модельно-специфические регистры – число
регистров зависит от модели процессора.
6
Регистры общего назначения

31 16 15 87 0
EAX AX AH AL
EBX BX BH BL
ECX CX CH CL
EDX DX DH DL
0
EBP BP
ESI SI
EDI DI
ESP SP

7
Сегментные регистры.
Селекторы
сегментов Регистры дескрипторов сегментов

15 0 63 0

CS Кода

SS Стека

DS Данных

ES Данных

FS Данных

GS Данных

Селектор
15 3 2 1 0
Индекс TI RPL

8
Дескрипторы сегментов
Байт права доступа ( AR )
63 56 55 52 51 48 47 40 39 32

База 31 –24 G D 0 U Гр. 19 –16 P DPL S Тип А База 23 –16

31 16 15 0
Базовый адрес 15 – 0 Граница 15 – 0

Байт права доступа


7 6 5 4 3 2 1 0
P DPL S E C R A Сегмент кода: S = 1, E = 1

Форматы
байта P DPL S E ED W A Сегмент данных/стека: S = 1, E = 0
прав доступа

P DPL S Тип Системный сегмент: S = 0

9
Назначение полей
G- устанавливает единицу измерения величины сегмента (G=1 - в
страницах - максимальный сегмент 220*4Kбайт =4Gбайт, G=0 - в
байтах - максимальный сегмент 220 =1 Mбайт);
- D- условие совместимости с Р16, (D=0 - совместимо с Р16,
операнды имеют длину 16-разрядов, D=1 - несовместимо с Р16,
длина операндов 32-разряда);
- U- свободный бит (AVL-Available) для системного программиста;
Байт "Права доступа" (Access Rights) часто называют байтом AR.
- P - отмечает присутствие сегмента в физической памяти (P=1);
- DPL - устанавливает уровень привилегии сегмента, имеет
значение 0,1,2,3;
- S- отмечает системный сегмент (S=0) от других;
- A- отмечается обращение к сегменту (процессор устанавливает А
= 1 при первом обращении к сегменту);

10
Регистры указателя команды и флагов
EIP IP

EFLAGS FLAGS
0 ... I V V A V R 0 N IO O D I T S Z 0 A 0 P 1 C
D I I C M F T PL F F F F F F F F F
P F
31 ... 21 20 19 18 17 16 15 14 13-12 11 10 9 8 7 6 5 4 3 2 1 0

Селекторы Автоматически загружаемые регистры дескрипторов

TR
LDTR
15 0 63 0
а) Регистры системных сегментов

Базовый адрес Граница


GDTR
IDTR
47 16 15 0

б) Регистры системных адресов

11
Управляющие регистры (CR0 – CR3)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

P PM P P D T P V
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C G C A S E S V M CR4
E E E E E D I E
P P
Базовый адрес каталога страниц C W CR3
D T

Линейный адрес отсутствующей страницы CR2

CR1

P C N A W N E T EM P
GD W M P E T S M P E CR0

31 30 29 16 15 0
MSW

12
Отладочные регистры (Debug Register)
Регистры DR0.-.DR3 (Linear Breakpoint Address 0...3) хранят 32-битные
линейные адреса точек останова.
DR4, DR5 не используются
Регистр DR6 (Breakpoint Status) отражает состояние точек останова.
Регистр DR7 (Breakpoint Control) управляет установкой точек останова.

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

LEN R W LEN R W LEN R W LEN R W G G L G L G L G L G L DR7


3 3 3 2 2 2 1 1 1 0 0 0 0 0 D 0 0 0 E E 3 3 2 2 1 1 0 0
B B B B B B B DR6
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 T S D 0 0 0 0 0 0 0 0 0 3 2 1 0

13
Тестовые регистры (Test Register)- для
тестирования кэша

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
P P P
Физический адрес C V LRU 00 L REP 00 TR7
D T
# # #
Линейный адрес V D D U U W W 0 0 0 0 C TR6
Выбор множества
Зарезервировано SET SEL ENT CTL TR5
Достове - TR4
ТЭГ V LRU рность 000

Данные внутреннего кэша TR3

14
Управление памятью
Сегментный
регистр Индекс
15 2 1 0
14 бит
Селектор RPL База Масштаб 1, 2, 4, 8 Смещение

Индекс +
дескриптора
Смещение (эффективный адрес)
45 32 31 0

Логический адрес
Сегментирующее
устройство

Базовый адрес 32 бит


+
Линейный адрес 32 бит

Блок страничной
переадресации

Физический адрес 32/36 бит

15
Типы данных
Диапазон значений Числа
7 0
0/255 Целое без знака (байт)

–128/+127 S Целое со знаком (байт)

15 0
0/65535 Целое без знака (слово)

S Целое со знаком (слово)


–32768/+32767
31 0
0/4294967295 Целое без знака
(двойное слово)
–2147483648/ S Целое со знаком
+2147483647 (двойное слово)
7 43 0
0/99 Ц Ц Упакованное BCD-число
0/9 Ц Неупакованное BCD-число

Указатели

Смещение Близкий (NEAR)

Селектор Смещение Дальний (FAR)


15 0 31 0

Цепочки

............ Бит
............ Байт
............ Слов
............
Двойных слов
63 31 23 15 7 0

16
Команды и их форматы
Необязательная часть
Префиксы Обязательная часть

Число байт Число байт

0, 1 0, 1 0, 1 0, 1 1, 2 0, 1 0, 1 0, 1, 2, 4 0, 1, 2, 4

Назначение Назначение

Размер Размер Размер disp


Повтор адреса опреанда сегмента Код mod sib Смещение Непосред.
REP OS AS S операции r/m (в команде) операнд

Код операции d w mod reg r/m SS index base

7 2 1 0 7 65 32 0 7 65 32 0

17
Организация защищенного режима

PL = 3

PL = 2 Прикладные задачи

Программные PL = 1 Расширения ОС
интерфейсы
Системные сервисы
PL=0
Ядро ОС

Высокоскоростной
интерфейс ОС

18
Передача управлений между
уровнями привилегий
 - применение подчиненных сегментов кода;
 - применение специальных дескрипторов - шлюзов (вентилей)
вызова.

63 48 47 40 39 37 36 32

P DPL TYPE 000 WC


Смещение назначения 31 – 16

31 16 15 0

Селектор назначения Смещение назначения 15 – 0

19
Разрешенные направления передачи управления через
вентили вызова (ВВ) между кодами (К),
расположенными на различных уровнях привилегий.

PL=0
PL=1
К PL=2
PL=3

ВВ К

ВВ К

ВВ
К ВВ

20
Спасибо за внимание
Вопросы?

21

Вам также может понравиться