Академический Документы
Профессиональный Документы
Культура Документы
Архитектура микропроцессоров
семейства 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 16 15 0
Базовый адрес 15 – 0 Граница 15 – 0
Форматы
байта P DPL S E ED W A Сегмент данных/стека: S = 1, E = 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
а) Регистры системных сегментов
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
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
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
14
Управление памятью
Сегментный
регистр Индекс
15 2 1 0
14 бит
Селектор RPL База Масштаб 1, 2, 4, 8 Смещение
Индекс +
дескриптора
Смещение (эффективный адрес)
45 32 31 0
Логический адрес
Сегментирующее
устройство
Блок страничной
переадресации
15
Типы данных
Диапазон значений Числа
7 0
0/255 Целое без знака (байт)
15 0
0/65535 Целое без знака (слово)
Указатели
Цепочки
............ Бит
............ Байт
............ Слов
............
Двойных слов
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
Назначение Назначение
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
31 16 15 0
19
Разрешенные направления передачи управления через
вентили вызова (ВВ) между кодами (К),
расположенными на различных уровнях привилегий.
PL=0
PL=1
К PL=2
PL=3
ВВ К
ВВ К
ВВ
К ВВ
20
Спасибо за внимание
Вопросы?
21