
- •Модуль 6 Процессоры общего назначения
- •Лекция 15.
- •Особенности архитектуры IA-32 (на примере семейств Р6 и Р7)
- •Характеристики процессоров семейства Р6, Р7
- •Совместимость микропроцессоров
- •Рис. Функциональная схема процессора типа P6
- •Функциональная схема МП типа P6
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7
- •Структура микропроцессора Pentium
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •СТРУКТУРА ПРОЦЕССОРОВ INTEL P6,Р7 (продолжение)
- •Режимы работы процессоров Р6,Р7.
- •Защищенный режим
- •Режим системного управления
- •Архитектура IА-64
- •Архитектура IА-64
- •Архитектура IА-64
- •Архитектура Itanium
- •Основные аппаратные компоненты Itanium 1/3
- •Основные аппаратные компоненты Itanium 2/3
- •Основные аппаратные компоненты Itanium 3/3
- •Преимущества Itanium по сравнению х86 :
- •Недостатки Itanium:
- •Лекция 16
- •Регистры процессоров IA-32
- •Регистры процессоров IA-32
- •Регистры общего назначения
- •Регистры общего назначения IA-16 и их коды
- •Регистры общего назначения IA-32 и их коды
- •Сегментные регистры
- •Регистры сегментов
- •Указатель команд EIP/IP
- •Регистр флагов EFLAGS
- •Младшие шестнадцать битов регистра EFLAGS (биты 15-0) представляют 16- разрядный регистр флагов FLAGS,
- •Регистр флагов EFLAGS
- •Значение признаков в регистре EFLAGS ( продолжение)
- •Регистр флагов EFLAGS
- •Значение признаков в регистре EFLAGS ( продолжение)
- •Значение признаков в регистре EFLAGS ( продолжение)
- •Регистры блока обработки чисел с плавающей точкой
- •Регистры блока обработки чисел с плавающей точкой
- •Формат содержимого регистра TW
- •Формат содержимого регистра FPSR
- •Формат содержимого регистра FPCR
- •Формат содержимого регистра FPCR
- •Регистр управления FPCR
- •Регистр управления FPCR
- •Регистры — указатели команд FIP и данных FDP
- •Системные регистры
- •Регистр управления CR0 1/3
- •Регистр управления CR0 2/3
- •Регистр управления CR0
- •Регистры управления CR1,CR2, CR3
- •Регистр CR4
- •Регистры системных адресов GDTR, IDTR, LDTR. TR
- •Регистры отладки DR0-DR7
- •Внутренняя кэш-память
- •Кэш-память L1.
- •Кэш-память уровня L2
- •Структура кеш-памяти
- •Адресация кэш-памяти
- •Соответствие основной памяти и кеш-памяти
- •Выбор замещаемой строки кеш-памяти
- •Когерентность основной памяти и кэш-памяти
- •Режимы работы кеш-памяти в процессорах Р6
- •Лекция 17.
- •Форматы команд и способы адресации
- •Общий формат команды
- •Формат команд
- •Кодировка регистров общего назначения
- •Байт адресации MOD R/M
- •Байт адресации MOD R/M
- •Непосредственная адресация
- •Эффективный адрес операнда ЕА
- •Адресация 32-разрядных операндов
- •Байт адресации SIB
- •Формирование 16-разрядного ЕА
- •Формирование 32-разрядного ЕА(байт SIB отсутствует)
- •Формирование 32-разрядного ЕА (байт SIB присутствует)
- •Кодировка индексных и базовых регистров в байт SIB
- •Непосредственная адресация
- •Разрядность операндов и относительных адресов в Р-режиме
- •Регистровая адресация
- •Косвенно-регистровая адресация
- •Прямая (абсолютная) адресация
- •Базовая адресация
- •Индексная адресация
- •Базово-индексная адресация
- •Базово-индексная адресация со смещением
- •Дополнительные способы адресации
- •Индексная адресация с масштабированием
- •Базово-индексная адресация с масштабированием
- •Базово-индексная адресация со смещением и масштабированием
- •Относительная адресация
- •Адресация устройств ввода-вывода
- •Сегментация памяти
- •Кодировка сегментных регистров
- •Выбор сегментного регистра
- •Выбор сегментных регистров и относительного адреса
- •Лекеция 18
- •Классы и группы системы команд
- •Пересылка данных без преобразования и с преобразованием, ввод-вывод данных, загрузка эффективного адреса и
- •Арифметические операции
- •Логические и сдвиговые операции
- •Операции с битами, байтами и со строками символов
- •Команды управления программой
- •Команды операций над числами с плавающей точкой
- •Операции ММХ и SSE
- •Модуль 7 Защищенный режим микропроцессоров IA-32
- •Лекция 19
- •Режимы МП IA-32
- •Сегментация памяти в защищенном режиме
- •Таблицы дескрипторов
- •Таблица GDT, LDT и IDT
- •Выбор дескрипторов
- •Регистры GDTR, LDTR, IDTR
- •Выборка дескрипторов из таблиц GDT и LDT
- •Загрузка регистров GDTR, LDTR
- •Защита доступа к GDTR и LDTR
- •Формирование линейного адреса
- •Общий формат дескриптора
- •Обобщенный вид дескриптора
- •Атрибуты сегмента.
- •Атрибуты сегмента.

Регистры управления CR1,CR2, CR3
• Регистр CR1 в процессорах Р6 и более ранних моделях не используется (резерв).
• CR2 — содержит 32-разрядный базовый адрес страницы, при обращении к которой зафиксирована ошибка при страничной адресации;
• CR3 — содержит базовый адрес таблицы каталога страниц
(20 старших битов), а также биты, управляющие загрузкой страниц в кэш-память данных. Кроме того, в этом регистре содержатся два бита, управляющих кэш-памятью при страничной адресации:
•PCD=1 запрещает загрузку содержимого страницы в кэш-память; при значении PCD=0 такая загрузка разрешена;
•PWT=1 реализуется режим сквозной записи (write-through), при установке PWT=0 реализуется режим обратной записи (write-back).
•Следует отметить, что биты PCD, PWT влияют на работу кэш- памяти только при страничной адресации (когда в регистре CR0 установлены значения PE=PG=1). В этом случае они определяют режим работы как внутренней кэш-памяти (L1), так и внешней — 2- го уровня (L2).

Регистр CR4
• содержит девять управляющих битов, обеспечивающих расширение архитектурных возможностей процессоров:
• VME=1 разрешает реализацию виртуальных прерываний в режиме виртуального 8086;
•PVI=1 разрешает реализацию виртуальных прерываний в защищенном режиме;
•TSD=1 разрешает выполнение команды RDTSC (чтение содержимого таймера реального времени) только программам с максимальным уровнем приоритета 0, при TSD=0 эта команда может выполняться программой с любым уровнем приоритета;
•DE=1 –вызывает исключение #UD в случае обращения к
регистрам отладки DR4,DR5, которые отсутствуют в процессорах Pentium, P6; при DE=0 при обращении к эти регистрам реализуется обращение к регистрам DR6, DR7;
•PSE=1 расширяет размер адресуемых страниц до 4 Мбайт, при значении PSE=0 сохраняется размер страниц 4 кбайт;

|
Регистр CR4 |
• |
Бит РАЕ=1 обеспечивает расширение разрядности |
|
физического адреса до 36 бит; |
• |
МСЕ=1 разрешает реализацию исключения машинного контроля |
|
#МС; |
• |
PGE=1 определять глобальные страницы (часто |
|
используемые или используемые несколькими процессорами путем |
|
установки бита глобальности G=1 в указателе страницы или |
|
раздела; при очистке буфера страничной трансляции TLB командой |
|
MOV CR3 адреса глобальных страниц сохраняются; |
• |
РСЕ =1 разрешает выполнение команды RDPMC (чтение |
|
содержимого счетчиков, характеризующих эффективность работы |
|
процессора), программой с любым уровнем привилегий; при значении |
|
РСЕ=0 эта команда может выполняться только программой с |
|
максимальным уровнем привилегий 0). |
• |
OSFXCR=1 — разрешает выполнение команд FXSAVE/FXRSTOR, |
|
используемых для сохранения/восстановления состояния регистров блоков |
|
Микропроцессорные системы. Лекция 16. Регистровые структуры МП IA-32 |
|
FPU), MMX, SSE при переключении задач. |

Регистры системных адресов GDTR, IDTR, LDTR. TR
•служат для управления памятью, для защиты программ и данных в мультизадачном режиме работы процессора.
•В защищенном режиме адресное пространство делится на: глобальное – общее для всех задач и локальное – отдельное для каждой задачи.
•GDTR — регистр таблицы глобальных дескрипторов (GDT),
•IDTR — регистр таблицы дескрипторов прерываний (IDT),
•LDTR — регистр таблицы локальных дескрипторов (LDT),
•TR — регистр сегмента состояния задачи (ТSS).
Микропроцессорные системы. Лекция 16. Регистровые структуры МП IA-32

Регистры отладки DR0-DR7
•Предназначены для аппаратной отладки.
•Регистры DR0-DR3 служат для задания линейных адресов четырех точек прерываний.
•Адрес, формируемый текущей программой, сравнивается с адресами в DR0-DR3 и при совпадении генерируется исключение с номером 1.
•DR6 - регистр состояния отладки, его биты устанавливаются в соответствии с причинами, вызвавшими исключение 1.
•DR7 называется регистром управления отладкой. В нем для каждого из DR0-DR3 имеются поля, управляющие условиями генерирования
прерываний
Микропроцессорные системы. Лекция 16. Регистровые структуры МП IA-32

Внутренняя кэш-память
•Кэш-память представляет собой быстродействующую буферную память ограниченного объема, которая располагается между процессором и относительно медленной основной памятью.
•В процессе работы отдельные блоки информации копируются из основной памяти (ОЗУ) в кэш-память.
•При обращении за командой или данными процессор вначале проверяет их наличие в кэш-памяти и они быстро извлекается, так как обращение к кэш-памяти производится с тактовой частотой процессора.
•Если необходимая информация в кэш-памяти отсутствует, то она выбирается из основной памяти и одновременно заносится в кэш-память. Такой случай называют кэш- промахом.
Микропроцессорные системы. Лекция 16. Регистровые структуры МП IA-32

Кэш-память L1.
•Высокий процент кэш-попаданий обеспечивается благодаря тому, что в большинстве случаев программы обращаются к ячейкам памяти, расположенным вблизи от ранее использованных. Это свойство, которое называют локальностью программ, обеспечивает эффективность использования кэш-памяти.
•В процессорах Р6 используется отдельная внутренняя кэш- память для команд и данных объем по16 кбайт.
•Кэш-память имеет несколько режимов работы, обеспечивающих гибкость при выполнении программ и в процессе их отладки.
•Отдельные области памяти могут быть определены программным обеспечением или внешней аппаратурой как не подлежащие кэшированию (загрузке в кэш-память).

Кэш-память уровня L2
• Помимо внутренней кэш-памяти (уровень L1) в системах, реализуемых на базе процессоров Р6 используется общая кэш-
память команд и данных (уровень L2), которая
размещается на отдельном кристалле, но монтируется в общем корпусе с процессорным кристаллом.
•Для обращения к кэш-памяти L2 служит отдельная шина, которая работает с тактовой частотой МП.
•Емкость кэш-памяти уровня L2 для различных моделей
процессоров Р6 составляет 256 кбайт, 512 кбайт или 1 Мбайт.

Структура кеш-памяти
31 |
|
|
12 11 |
5 4 |
|
|
|
|
Адрес |
|
• |
В МП Р6 кеш-память |
|||||||||||
|
|
|
0 |
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ассоциативного типа состоит |
|
|
TAG |
|
|
SET |
|
BYTE |
|
|
||||||||||||||
|
|
|
|
|
|
|
из строк длиной по 32 байт. |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
0 255 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tag0 |
|
L0 |
|
|
|
|
|
|
|
|
|
|
• |
В кеш-памяти команд строки |
|||||
|
|
|
|
tag1 |
|
L1 |
|
|
|
|
|
|
|
S0 |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
объединены в 128 наборов |
||||||||
|
|
|
|
tag2 |
|
L2 |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
tag3 |
|
L3 |
|
|
|
|
|
|
|
|
|
|
|
S0-S127 по 4 строки в |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
tag0 |
|
|
L0 |
|
|
|
|
|
|
|
|
|
|
|
каждом (L0,L1,L2,L3). |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
tag1 |
|
|
L1 |
|
|
|
|
|
|
S2 |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
tag2 |
|
|
L2 |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
tag3 |
B31 |
L3 |
B1 |
B0 |
|
|
|
|
|
|
|
• |
В кеш-памяти данных |
||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
содержится 256 наборов S0- |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
tag0 |
|
L0 |
|
|
|
|
|
|
|
S127 |
S255 по две строки (L0-L1). |
||||||||
|
|
|
|
tag1 |
|
L1 |
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
tag2 |
|
L2 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
tag3 |
|
L3 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Микропроцессорные системы. Лекция 16. Регистровые структуры МП IA-32

Адресация кэш-памяти
•осуществляется с помощью 32 разрядов адреса, которые делятся на три поля: TAG, SET, BYTE.
•Поле SET определяет номер выбираемого набора.
•Поле TAG сравнивается с содержимым полей тегов (tag0-tag3) в строках выбранного набора. При совпадении с содержимым тега фиксируется кэш- попадание и производится выборка из этой строки операнда, адресуемого полем BYTE.
•Если совпадение не обнаружено, то фиксируется кэш-промах. В этом случае из основной памяти выбирается строка (32 байт), адресуемая разрядами А31-5 адреса, которая размещается в одной из строк набора, определяемого полем SET.
•Старшие разряды адреса А31-12 заносятся в поле tag и становятся атрибутом данной строки.