Процессоры Intel c архитектурой IA-32
Download
Report
Transcript Процессоры Intel c архитектурой IA-32
ОБЩИЕ СВЕДЕНИЯ ОБ
АРХИТЕКТУРЕ ВС НА БАЗЕ
ПРОЦЕССОРОВ INTEL IA-32
ПРОЦЕССОРЫ INTEL C АРХИТЕКТУРОЙ
IA-32
i80386 (с моделями SX и DX)
i80486 (с моделями SX и DX)
Pentium
Процессоры семейства P6
PentiumPro, PentiumPro MMX
Pentium II, Pentium II MMX (в т.ч. Celeron, Xeon)
Pentium III (в т.ч. Celeron, Xeon)
Процессоры семейства NetBurst
Pentium IV (в т.ч. Celeron, Xeon)
ОСНОВНЫЕ ХАРАКТЕРИСТИКИ ПРОЦЕССОРОВ
СЕМЕЙСТВ P6 И NETBURST
Характеристика
P6
NetBurst
Разрядность
процессора
32
32
Разрядность шины
данных
32
32
Разрядность шины
адреса
32
36
Адресуемое
адресное
пространство
4 Гбайт
64 Гбайт
Кэш L1
Кэш данных и кэш
команд по 8 Кбайт
Кеш-трасс 12 Кбайт
Кэш L2
До 1 Мбайт
До 4 Мбайт
ОСНОВНЫЕ ХАРАКТЕРИСТИКИ ПРОЦЕССОРОВ
СЕМЕЙСТВ P6 И NETBURST
Характеристика
P6
NetBurst
FPU
i80387 – внешний
FPU для i80386
Начиная с i80486 –
FPU встроенный
встроенный
Технологии MMX
Опционально до
Pentium III
да
Технологии SIMD
SSE (Pentium III)
SSE2
ТЕХНОЛОГИИ ПОВЫШЕНИЯ
ПРОИЗВОДИТЕЛЬНОСТИ ПРОЦЕССОРОВ
P6 И
NETBURST
Технология
P6
NetBurst
Конвейеризация
3-хходовая
суперскалярная
архитектура
12 ступеней
Гиперконвейерная
архитектура
20 ступеней
Предсказание
переходов
В каждый момент времени блок выборки
на основании определенного алгоритма
пытается предсказать вероятность выборки
и выполнения команды перехода и адрес,
на который будет осуществлен переход
Буфер меток – 512
байт
Вероятность
предсказания – 80%
Буфер меток – 4
Кбайта
Вероятность
предсказания – 95%
ТЕХНОЛОГИИ ПОВЫШЕНИЯ
ПРОИЗВОДИТЕЛЬНОСТИ ПРОЦЕССОРОВ
P6 И
NETBURST
Технология
P6
Динамический
анализ входного
потока
Динамически анализируется зависимость
команд, поступающих в процессор, и
разрешаются их взаимозависимости за
счет переименования регистров
Спекулятивное
выполнение
Процессор может выполнять участки кода
с условными переходами и циклами до
того, как переход будет реально выполнен.
К моменту реального выполнения
перехода процессор имеет исполненный
код
Быстрое исполнение -
NetBurst
Позволяет
выполнять 2
основные
команды с целыми
числами за 1 такт
АППАРАТНО-ПРОГРАММНАЯ МОДЕЛЬ
ПРОЦЕССОРОВ IA-32
Микроархитектура
Режимы работы процессора
Регистры процессора
Организация оперативной памяти и программ
Форматы представления данных
Способы адресации данных
Форматы машинных инструкций
Набор машинных инструкций
Система прерываний
Организация ввода/вывода с использованием
внешних устройств
РЕЖИМЫ РАБОТЫ ПРОЦЕССОРОВ С
АРХИТЕКТУРОЙ IA-32
Режим
Основные характеристик
Режим реального адреса
(реальный режим, R-mode)
Доступны 16- и 32-хразрядные
РОН, сегментные регистры, ряд
системных регистров, регистры
FPU
Сегментная организация
памяти (16- и 32-х разрядная
адресация внутри сегмента)
Однозадачное выполнение
Нет защиты адресного
пространства
Режим защищенного адреса
(защищенный режим, P-mode)
Доступны все регистры
процессора и полный набор
команд.
Сегментная и страничная
организация памяти
Многозадачность
Защита адресного пространства
РЕЖИМЫ РАБОТЫ ПРОЦЕССОРОВ С
АРХИТЕКТУРОЙ IA-32
Режим
Основные характеристик
Режим виртуального
процессора i8086 (V-mode)
Реальный режим без
возможности использования 32х разрядных регистров и 32-х
разрядных сегментов
Запрещены некоторые команды
процессора
Режим супервизора (системный
ражим, S-mode)
Аналог защищенного режима
Не доступен для использования
программистом
РЕГИСТРЫ ПРОЦЕССОРА С
АРХИТЕКТУРОЙ IA-32
Регистры общего назначения
Сегментные регистры
Указатель инструкций
Регистр флагов
Регистры FPU
Регистры MMX
Регистры SSE/SSE2
Регистры управления памятью
Регистры управления процессором
Отладочные регистры
Регистры типов областей памяти
Машинно-зависимые регистры
РЕГИСТРЫ ОБЩЕГО НАЗНАЧЕНИЯ
Регистры группы наследования от i8008/i8080
EAX/AX/AH/AL
EBX/BX/BH/BL
ECX/CX/CH/CL
EDX/DX/DH/DL
EAX
AX
AH
31
16 15
AL
8 7
0
РЕГИСТРЫ ОБЩЕГО НАЗНАЧЕНИЯ
Регистры группы наследования от i8086
ESI/SI
EDI/DI
ESP/SP
EBP/BP
ESI
SI
31
16 15
0
СЕГМЕНТНЫЕ РЕГИСТРЫ
CS – сегмент кода
DS – сегмент данных
SS – сегмент стека
ES – дополнительный сегмент данных
FS – дополнительный сегментный регистр
GS – дополнительный сегментный регистр
CS
15
0
УКАЗАТЕЛЬ ИНСТРУКЦИЙ EIP/IP
Хранит смещение инструкции, следующей за
исполняемой, в сегменте кода
EIP
IP
31
16 15
0
РЕГИСТР ФЛАГОВ EFLAGS/FLAGS
Хранит набор битов, отражающих текущее
состояние системы и условия, в которых
система функционирует
РЕГИСТРЫ FPU
Вычислительные регистры R0-R7
FST
R0
← ST(4) ST(5) ST(4)
R1
← ST(5) ST(6) ST(5)
R2
← ST(6) ST(7) ST(6)
R3
← ST(7) ST(0) ST(7)
Вершина регистрового стека
R4
← ST(0) ST(1) ST(0)
R5
← ST(1) ST(2) ST(1)
R6
← ST(2) ST(3) ST(2)
← ST(3) ST(4) ST(3)
79
0
FLD
РЕГИСТР СОСТОЯНИЯ FPU - SR
занятость
условный флаг
вершина
условные флаги
общий флаг ошибки
B
C3
15
14
TOP
13
12
11
C2
C1
C0
ES
SF PE UE OE ZE DE
IE
10
9
8
7
6
0
ошибка стека
неточный результат
антипереполнение
переполнение
деление на ноль
денормализованный результат
недопустимая операция
5
4
3
2
1
РЕГИСТР УПРАВЛЕНИЯ FPU - CR
управление бесконечностью
управление округлением
управление точностью
IC
15
14
13
12
RC
11
10
PC
9
8
маска неточного результата
маска антипереполнения
маска переполнения
маска деления на ноль
маска денормализованного результата
маска недействительной операции
7
6
PM
UM
OM
ZM
DM
5
4
3
2
1
IM
0
ДРУГИЕ УПРАВЛЯЮЩИЕ РЕГИСТРЫ FPU
Регистр тегов TW – содержит 8 пар битов,
отражающих состояния соответствующих
вычислительных регистров:
R7
15
14
R6
13
12
R5
11
10
R4
9
R3
8
7
R2
6
5
R1
4
3
R0
2
Регистр адреса последней команды FIP
Регистр адреса операнда последней команды
FDP
1
0
РЕГИСТРЫ MMX
R0
MM0
R1
MM1
R2
MM2
R3
MM3
R4
MM4
R5
MM5
R6
MM6
MM7
79
64
63
0
РЕГИСТРЫ SSE/SSE2
Для процессоров Pentium III и Pentium IV
доступно 8 128-ми разрядных регистра
расширения SSE/SSE2 – XMM0-XMM7
РЕГИСТРЫ УПРАВЛЕНИЯ ПАМЯТЬЮ
Регистры таблиц дескрипторов
GDTR – регистр глобальной таблицы дескрипторов
LDTR – регистр локальной таблицы дескрипторов
IDTR – регистр таблицы дескрипторов прерываний
база таблицы
47
лимит
16 15
0
Регистр задачи TR
дескриптор сегмента статуса задачи
79
селектор
16
15
0
РЕГИСТРЫ УПРАВЛЕНИЯ ПРОЦЕССОРОМ
CR0 – флаги управления системой
CR1 – зарезервирован
CR2 – регистр адреса ошибки страницы
CR3 (PDBR) – регистр основной таблицы
страниц
CR7 – регистр управления новыми
возможностями процессоров (начиная с
процессора Pentium)
ДРУГИЕ РЕГИСТРЫ ПРОЦЕССОРА
Отладочные регистры DR0-DR7 –
используются системными отладчиками для
определения точек останова без модификации
программного кода
Регистры типов областей памяти MTRR
используются для управления кэшем
Машинно-зависимые регистры MSR
представляют набор регистров, которые
доступны исключительно в определенных
марках и даже сериях процессоров
ОРГАНИЗАЦИЯ ОПЕРАТИВНОЙ ПАМЯТИ
Организация программного стека
Сегментная организация памяти
Страничная организация памяти
ПРОГРАММНЫЙ СТЕК
Программный стек - специальная область
адресного пространства программы,
предназначенная для временного хранения
данных, управляемая по принципу FILO
SS
Младшие адреса
POP
PUSH
ESP/SP
Область стека
Старшие адреса
Оперативная память
СЕГМЕНТНАЯ ОРГАНИЗАЦИЯ ПАМЯТИ В
РЕАЛЬНОМ РЕЖИМЕ
Вся память делится на
сегменты
Адреса сегментов
хранятся в сегментных
регистрах, деленные на
16
Виртуальный адрес
ячейки представляет
собой комбинацию
сегмент:смещение
Физический адрес ячейки
вычисляется как
сегмент*16+смещение
Оперативная память
Младшие адреса
DS
смещение
Старшие адреса
СЕГМЕНТНАЯ ОРГАНИЗАЦИЯ ПАМЯТИ В
ЗАЩИЩЕННОМ РЕЖИМЕ
Используются 32-х
разрядные адреса
начал сегментов
(базы) и смещения
Для хранения баз
сегментов
используются
таблицы
дескрипторов
сегментов
Выбор дескриптора
осуществляется по
его номеру
(селектору)
хранящемуся в
сегментном
регистре
Линейный адрес
формируется как
база+смещение
GDTR
Оперативная память
Младшие адреса
GDT
DS
база
+
смещение
Старшие адреса
СТРАНИЧНАЯ ОРГАНИЗАЦИЯ ПАМЯТИ
Память делится
на страницы
размером по 4
Кбайта
Информация о
местоположении
страниц хранится
в наборе
системных таблиц
– каталоге
страниц и
таблицах страниц,
которые содержат
по 1024 записи
Виртуальный
адрес
формируется из
номера таблицы,
номера страницы
и смещения
ячейки внутри
страницы
Оперативная память
СR3
Младшие адреса
каталог
ДТ
ДТ
ДТ
N таблицы
таблица
ДС
ДС
ДС
N таблицы
31
таблица
ДС
ДС
ДС
N страницы
22
21
12 11
смещение
Старшие адреса
0
ОРГАНИЗАЦИЯ ПРОГРАММ
Программа состоит из одного или нескольких
сегментов в зависимости от модели памяти,
которая была выбрана при написании
программы
ФОРМАТЫ ДАННЫХ