
- •Глава 1. Основные понятия 9
- •Глава 8. Организация виртуальной памяти 227
- •Глава 9. Организация кэш-памяти 246
- •Глава1. Основные понятия
- •1.1. Система программно-аппаратных средств обработки информации
- •1.2.Традиционная классификация эвм
- •1.3. Структуры эвм
- •1.4. Многомашинные комплексы и многопроцессорные системы
- •1.5. Эволюция режимов работы эвм
- •1.5. Особенности построения и эксплуатации современных многопроцессорные и многомашинных комплексов.
- •Глава 2. Программная модель процессора
- •2.1. Общие понятия
- •2.2. Виды используемых структур памяти по принципам размещения и поиска информации
- •2.3. Организация оперативной памяти
- •2.3.1. Оперативная память и адресные пространства процессора
- •2.3.2. Адресация многобайтовых объектов в оперативной памяти
- •2.3.3. Структура и типы команд
- •2.4. Режимы адресации
- •2.5. Типы машинных арифметик
- •2.6. Управление потоком команд.
- •2.7. Контекст программы
- •2.8. Команды cisc- и risc-архитектуры
- •Глава 3. Программная модель мп Intel
- •3.1. Режимы работы
- •3.2. Программная модель 16-ти битового микропроцессора мп ia-16
- •3.2.1. Модель памяти
- •3.2.2. Порты ввода/вывода
- •2.2.3. Регистровый файл
- •3.2.4. Структура команд
- •3.3. Программная модель 32-битового микропроцессора
- •3.3.1. Основные особенности организации
- •3.3.2. Модель памяти
- •3.3.3. Регистровый файл
- •3.3.4. Структура команд и режимы адресации
- •3.3.5. Структура данных
- •Глава 4. Программные модели мп корпорации dec
- •4.1. Программная модель процессоров семейства pdp-11
- •4.2. Программная модель процессоров эвм vax-11 (см 1700)
- •Глава 5. Система прерывания
- •5.1.Функции системы прерывания и общие решения по реализации
- •5.2. Система прерывания в мп intel
- •5.2.1. Система прерывания в мп ia-16
- •5.2.2. Особенности системы прерывания в мп ia-32
- •5.2.3. Организация системы прерывания в pdp 11
- •Глава 6. Организация ввода-вывода
- •6.1. Система ввод/вывода
- •6.2.Теоретические основы операций ввода/вывода
- •6.3. Синхронизация передачи данных при вводе/выводе
- •6.3.1. Ввод/вывод с проверкой готовности
- •6.3.2. Ввод/вывод с использованием системы прерывания
- •6.3.3. Ввод/вывод с использованием устройств прямого доступа к памяти
- •Глава 7. Шинные интерфейсы
- •7.1. Общие положения
- •7.2. Асинхронный системный интерфейс "Общая шина"
- •7.3. Системные интерфейсы мп ia
- •7.4. Локальный интерфейс микропроцессора i80386
- •7.4.1. Особенности локального интерфейса i80386
- •7.4.2. Диаграммы работы локального интерфейса мп i80386
- •7.4.3. Модель функционирования локального интерфейса мп i80386. (интерфейс с конвейерной передачей данных)
- •7.4.4. Специальные циклы
- •7.5. Локальный интерфейс микропроцессора i486 (интерфейс с пакетной передачей данных)
- •7.5.1. Особенности локального интерфейса i486
- •7.5.2. Диаграммы работы локального интерфейса мп i486
- •7.5.3. Модель функционирования локального интерфейса мп i486
- •7.6. Локальный интерфейс мп Pentium (интерфейс с пакетной передачей данных и конвейеризацией передачи адреса)
- •7.7. Интерфейсы с расщепленными транзакциями
- •Глава 8. Организация виртуальной памяти
- •8.2. Основные задачи виртуальной памяти
- •8.3. Страничная организации виртуальной памяти
- •8.3.1. Страничная организация памяти
- •8.3.2. Виртуальная память на основе таблицы математических страниц
- •8.3.3. Упрощенная схема виртуальной памяти на основе таблицы физических страниц
- •8.3.4. Схема виртуальной памяти на основе таблицы физических страниц.
- •Глава 9. Организация кэш-памяти
- •9.1. Назначение и общая схема подключения кэш-памяти
- •9.2. Системы адресации кэш-памяти
- •9.3. Режимы работы кэш-памяти
- •9.4. Иерархическая структура кэш-памяти и средства управления кэш-памятью
- •9.5. Организация когерентности системы кэш-памяти в многопроцессорных системах с общей оперативной памятью.
- •Основные переходы. При запросах на чтение (r):
- •Чтение (sr2):e в s. При запросах на запись (w):
- •Глава 10. Организация системы памяти на жестких дисках
- •10.1.Дисковые массивы и уровни raid
- •125Стр. Из 292
2.2.3. Регистровый файл
Регистровый файл МП IA-16 содержит 14 пользовательских регистров:
регистры общего назначения (РОНы) – 8 регистров,
сегментные регистры – 4 регистра,
указатель команд – 1 регистр,
регистр состояния (флагов) – 1 регистр.
Все эти регистры в той или иной степени доступны программам пользователей.
Регистры общего назначения
РОНы МП Intel (рис.3.2) не являются классическими регистрами общего назначения. Они могут задаваться и явными адресами, и по умолчанию (кодом операции, постбайтом и т.д.).
C точки зрения использования регистров по умолчанию, они делятся на две группы:
регистры данных – ax, cx, dx и bx (по возрастанию адресов),
регистры адресов – sp, bp, si и di (по возрастанию адресов).
Регистр bx, хоть его и относят к группе регистров данных, является и одним из регистров адреса базы данных (для сегмента DS).
Регистр dx может использоваться в качестве адресного регистра портов в командах ввода/вывода.
Регистры cx, si и di по умолчанию используются при обработке строк.
При работе с 16-разрядными операндами и компонентами адреса используются 16-разрядные РОНы – ax, cx, dx, bx, sp, bp, si и di (по возрастанию адресов).
При работе с байтовыми операндами используются 8-разрядные РОНы: al, cl, dl, bl, ah, ch, dh и bh (по возрастанию адресов).
|
15 |
8 |
7 |
0 |
|
ax |
ah |
al |
Аккумулятор | ||
cx |
ch |
cl |
Счетчик | ||
dx |
dh |
dl |
Данные | ||
bx |
bh |
bl |
База (для DS) | ||
|
sp |
Указатель стека | |||
|
bp |
База кадра стека SS) | |||
|
si |
Индекс источника | |||
|
di |
Индекс приемника | |||
|
Рис. 3.2 РОНы |
|
Сегментные регистры и трансляция сегментов
При использовании сегментированной математической памяти необходима процедура преобразования адреса сегментированной (математической) памяти в адреса линейной физической памяти при каждом обращении к памяти.
Адрес объекта в сегментированной памяти задается двумя компонентами: базовым адресом сегмента и смещением в сегменте. В команде задается только смещение в сегменте. Базовый адрес сегмента задается содержимым одного из четырех сегментных регистров (рис. 3.3).
МП IA-16 содержали четыре 16-разрядных сегментных регистра:
ES – регистр дополнительного сегмента данных,
CS – регистр сегмента кода,
SS – регистр сегмента стека,
DS – регистр сегмента данных,
-
№
19
Базовые адреса сегментов
4
3
0
00
ES – Доп. сегмент данных
0000
01
CS– Сегмент кода
0000
10
SS– Сегмент стека
0000
11
DS– Сегмент данных
0000
Рис.3.3. Сегментные регистры IA-16.
Использование регистров CS, SS, DS и ES возможно по умолчанию и с использованием префикса замены сегмента. Базовые адреса сегментов используются для преобразования адреса сегментированной памяти в адрес линейной.
Емкость физической памяти в МП IA-16 позволяет разместить одновременно до 16 полных сегментов по 64 Кбайт (216байт). Но одновременно, без изменения содержимого сегментных регистров, в реальном режимеIA-16 можно обращаться только к четырем сегментам, по числу сегментных регистров.
Обращаться к другим сегментам (кроме кодовых сегментов), размещенным в оперативной памяти можно:
при помощи загрузки базовых адресов в соответствующие сегментные регистры командами пересылки (mov),
при помощи команд загрузки сегментных регистров (LES,LDSиLSS).
Все операции со стеком ориентированы на словарную организацию стека. По этой причине адрес указателя стека и базовый адрес сегментного регистра SS должны быть четными.
Переходы на новые кодовые сегменты производятся командами межсегментных передач управления.
Преобразование адреса сегментированной памяти в адрес линейной (плоской) памяти производится процедурой трансляции сегмента: сложением базового адреса сегмента с адресом операнда в сегменте.
Но сегментные регистры 16-битные, а базовые адреса должны быть 20- битными. Поэтому при использовании сегментных регистров их содержимое умножается на 16 добавлением четырех нулей после младшего разряда.
Таким образом, адрес в сегменте математической памяти МП IA-16 задается тремя компонентами: B (база), X (индекс) и disp (смещение).
Для вычисления адреса обращения к физической памяти (при сегментированной структуре математической памяти) требуются, по крайней мере, две процедуры:
вычисление прямого адреса в сегменте по компонентам (В), (Х) и disp,
преобразование адреса в сегменте сегментированной памяти в адрес линейной физической памяти.
Результатом первого преобразования адреса является получение одного компонента логического адреса – смещения в сегменте, результатом второго преобразования – получение смещения в линейной памяти.
Для уменьшения неопределенности при использовании вышеописанных смещений используют термины:
disp – для обозначения смещения в кадре сегмента,
offset – для обозначения смещения в сегменте,
линейный адрес – для обозначения адреса (смещения) в линейной (не сегментированной) памяти.
Схема вычисления смещения в сегменте (offset) по компонентам адреса, включая смещение в кадре сегмента (disp) и трансляцию сегмента (вычисление линейного адреса в несегментированной памяти) представлена на рис.3.4.
Трансляция сегментов связана с проблемой 20-й адресной шины оперативной памяти. Эта проблема заключается в следующем.
Максимальный адрес сегмента, который может быть записан с сегментный регистр (с учетом четырех нулей в младших разрядах) составляет А max = 220 -24 -1. При использовании этого адреса как базового адреса сегмента, в оставшиеся ячейки памяти можно будет записать только 16 слов. В МП с 20-разрядной адресной шиной остальные данные сегмента запишутся в ячейки оперативной памяти, начиная с нулевого адреса.
В МП IA-32 при работе в реальном режиме (эмуляции МП IA-16) приходится учитывать это явление, используя прием заворота 20-й шины адреса
В защищенном режиме, если включен механизм виртуальной памяти, происходит еще одно преобразование адреса – трансляция страниц.
В МП IA-16 – трансляция страниц (виртуальная память) не реализована.
Указатель команд IP
Это 16-битный регистр -счетчик, вычисляющий адрес следующей команды (в кодовом сегменте) по числу байт в текущей команде. Программе указатель команд доступен только частично по командам передачи управления. В начальное состояние IP устанавливается автоматически при включении процессора. Прямой доступ к IP по записи или чтению не предусмотрен (но возможен доступ к содержимому IP после его копирования в стеке).
Регистр состояния (флагов) FLAGS
Это 16-разрядный регистр, в котором сгруппированы управляющие сигналы режимов работы основных систем процессора и флаги кодов условий для условных команд передач управления.
Флаги кодов условий передач управления:
CF – арифметический перенос в старшие разряды,
PF – четность (наличие четности кода результата),
AF – дополнительный (десятичный) перенос из младшей тетрады,
ZF – нулевой результат,
SF – знак результата (для дополнительного кода),
OF – переполнение,
TF – трассировка (прерывание после выполнения каждой команды для работы в режиме отладки программы),
IF – разрешение прерывания,
DF – направление обработки строк.
Вопросы для самопроверки:
Основные группы пользовательских регистров.
Группа регистров данных в составе РОНов МП IA-16.
Группа регистров адресов в составе РОНов МП IA-16.
Предназначение регистра IP в МП IA-16.
Предназначение регистра FLAGS (флагов) в МП IA-16.
Основные биты кода условий передачи управления в регистре FLAGS (флагов).
Назначение сегментных регистров в МП IA-16.
Число сегментных регистров в МП IA-16.
Спецификации сегментных регистров в МП IA-16.
Команды загрузки сегментных регистров в МП IA-16.
Причины использования задания адреса в сегменте тремя компонентами.
Компоненты адреса, используемые при задании адресов объектов в сегменте памяти.
Компонент disp при задании адреса в МП IA.
Компонент offset при задании адреса в МП IA.
Термин "линейный адрес" при задании адреса в МП IA.
Процедура трансляции сегмента при обращении к памяти в МП IA-16.