- •Глава 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.3.2. Адресация многобайтовых объектов в оперативной памяти
Все используемые в ЭВМ устройства памяти имеют байтовую ориентацию. Это означает, что для них минимальной адресуемой единицей информации является байт, и размеры всех программных объектов кратны байту. Размеры программных объектов фиксированного формата обычно выбираются кратными степени числа 2 (2 n байтов).
Размер программных объектов формата переменной длины (строки байт) задается отдельным полем команды.
Возможные способы расположения программных объектов в памяти представлены на рис. 2.1.
|
| |||||||||
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Слово по адресу 0 содержит байты (AB) | |||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Двойное слово по адресу 0 содержит байты (ABCD) | |||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Учетверенное слово по адресу 0 содержит байты (ABCDEFGH) | |||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*Двойное слово по адресу 5 содержит байты (FGHI) | |||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Байт по адресу 9 содержит байт J |
Многобайтовые объекты фиксированного формата по расположению в памяти могут разделяться на объекты расположенные:
по выровненным (целочисленным) границам,
по не выровненным (нецелочисленным) границам.
Объект расположен в целочисленных границах, если его адрес кратен размеру объекта. Все объекты на рис. 2.1, кроме двойного слова FGHI (отмечен *), расположены по целочисленным границам адресов. Адрес младшего байта F четырехбайтовой строки FGHI равен 5, т.е. не кратен размеру строки.
Расположение объектов без соблюдения правил целочисленных границ создает две проблемы:
требуется дополнительная операция выравнивания границ при использовании,
могут потребоваться дополнительные циклы при передаче данных по шинам интерфейса.
Все это усложняет схемы и уменьшает производительность системы. Поэтому в вычислительных системах расположение объектов без соблюдения правил целочисленных границ или запрещается, или не рекомендуется.
Нумерация полей памяти
Для позиционных систем счисления и большинства последовательностей символов существенно их взаимное расположение. В этих случаях можно говорить о старших и младших разрядах объекта.
В пределах одного объекта (байта, слова, строки байт) старшинство битов определяется их расположением слева направо (старший бит в объекте – левый). Но нумерация бит в байте, бит и байт в слове и в других многобайтовых объектах в различных вычислительных системах может быть различной.
Нумерация бит и байт может производиться или со старших разрядов, или с младших разрядов (рис. 2.2).
Нумерация бит и байт со старших разрядов (рис. 2.2a)
В позиционных системах счисления разряд с наибольшим весом располагается слева, и число читается слева направо. Многобайтовые объекты в памяти, как правило, задаются адресом байта с наименьшим номером. Таким образом, при побайтовой выборке из памяти данные поступают в естественном порядке чтения. Но при этом возрастание весов разрядов противоположно возрастанию их номеров.
0 |
1 |
2 |
3 |
Номера байт |
| |||||||||||||
|
0 7 |
Номера бит | ||||||||||||||||
|
Байт |
Байт | ||||||||||||||||
|
0 7 |
8 15 |
Номера бит | |||||||||||||||
|
Старший байт |
Младший байт |
Слово | |||||||||||||||
0 7 |
8 15 |
16 23 |
24 31 |
Номера бит |
| |||||||||||||
Старший байт |
|
|
Младший байт |
Двойное слово |
| |||||||||||||
а) нумерация бит и байт со старших разрядов к младшим | ||||||||||||||||||
3 |
2 |
1 |
0 |
Номера байт |
| |||||||||||||
|
|
7 0 |
Номера бит |
| ||||||||||||||
|
Байт |
Байт | ||||||||||||||||
|
15 8 |
7 0 |
Номера бит | |||||||||||||||
|
Старший байт |
Младший байт |
Слово | |||||||||||||||
31 24 |
23 16 |
15 8 |
7 0 |
Номера бит |
| |||||||||||||
Старший байт |
|
|
Младший байт |
Двойное слово |
| |||||||||||||
b) нумерация бит и байт с младших разрядов к старшим | ||||||||||||||||||
Рис.2.2. Структуры данных и нумерации бит и байт. |
Нумерация бит и байт с младших разрядов (рис. 2.2 b)
При использовании нумерации бит и байт в многобайтном слове с младших разрядов, при последовательном выборе из памяти объекты на обработку поступают с младших байт и младшими разрядами "вперед". Это нумерация с младших разрядов. Распространение такой нумерации началось с появлением и микропроцессоров. При последовательной (бит за битом) обработке цифровых данных для простейших арифметических операций (сложение/вычитание) это обеспечивало выигрыш в аппаратных средствах. Кроме того, при такой нумерации возрастание номеров бит совпадает с возрастанием их разрядных весов.
Нумерация байт в многобайтных полях с младших байтов сопряжена и с рядом проблем. Одна из проблем связана с передачей в регистр содержимого памяти, возможно состоящего из независимых числовых полей с различным количеством байт.
В этих случаях многобайтное поле загрузится байтами, начиная от младшего байта (с меньшими весами разрядов) к старшему (с большими весами разрядами). Для использования этих (числовых) полей потребуется переупорядочение байт.
Для примера рассмотрим запись двухбайтовых слов (рис. 2.3.). В этом примере в словарной памяти записана строка начальных символов английского алфавита в виде последовательности двухбайтовых объектов – слов (по два символа в слове). При переносе последовательности символов из памяти с нумерацией с младших разрядов в регистр с нумерацией со старших разрядов происходит перестановка байт в каждом слове.
Адреса слов |
Старшие байты в слове |
Младшие байты в слове |
| |||||
Нечетные адреса байтов |
Содержимое байтов |
Четные адреса байтов |
Содержимое байтов |
| ||||
0 |
1 |
a |
0 |
b |
Слово ab | |||
2 |
3 |
c |
2 |
d |
Слово cd | |||
Структуры словарной памяти с нумерацией байт с младших разрядов | ||||||||
Адреса байт |
0 |
1 |
2 |
3 |
| |||
|
b |
a |
d |
c |
| |||
|
Многобайтовый регистр |
| ||||||
Рис 2.3. Пример передачи могобайтового поля из памяти с нумерацией с младших разрядов в регистр с нумерацией со старших разрядов |
При переносе последовательности символов из памяти с нумерацией с младших разрядов в регистр с нумерацией со старших разрядов также происходит перестановка, но уже слов в каждом двойном слове (рис.2.4.).
Адреса слов |
Старшие байты в слове |
Младшие байты в слове |
| ||||||
Нечетные адреса байтов |
Содержимое байтов |
Четные адреса байтов |
Содержимое байтов |
| |||||
0 |
1 |
a |
0 |
b |
Слово ab | ||||
2 |
3 |
c |
2 |
d |
Слово cd | ||||
Структуры словарной памяти с нумерацией байт с младших разрядов | |||||||||
Адреса байт |
3 |
2 |
1 |
0 |
| ||||
|
c |
d |
a |
b |
| ||||
|
Многобайтовый регистр |
| |||||||
Рис 2.3. Пример передачи могобайтового поля из памяти с нумерацией с младших разрядов в регистр с нумерацией со старших разрядов |
Для использования положительных сторон представленных нумераций в некоторых системах используется программное управление процессом обмена данными между памятью и регистрами.
Например, в архитектуре PA-RISC корпорации HP (Hewlett Packard) предусмотрен такой программно управляемый обмен данными. Упорядочение байтов (к старшим или к младшим адресам) при записи и чтении определяется битом E в слове состояния процессора (PSW).
При Е = 0 загрузка многобайтного объекта упорядочивается, по терминологии фирмы, "к старшим адресам". При этом младший байт в памяти соответствует старшему байту в регистре (левая нумерация).
При Е = 1 загрузка многобайтного объекта упорядочивается "к младшим адресам". При этом младший байт в памяти соответствует младшему байту в регистре (правая нумерация).
Для этой же цели в МП Intel (начиная с 486) используется команда SWAP перестановки байт в регистре. Команда переставляет байты в четырех байтном регистре (первый байт с четвертым и второй байт с третьим).
Вопросы для самопроверки:
1. Адресная память.
2. Ассоциативная память.
3. Стековая память.
4. Использование в МП Intel регистра EBP – указателя базы (кадра) стека.
5. Математическая память.
6. Сегментированная память.
7. Функции диспетчера памяти.
8. Основные адресные пространства ЭВМ.
9. Байтовая ориентация памяти.
10. Расположение программного объекта в целочисленных границах.
11. Основные проблемы расположения программных объектов в нецелочисленных границах.
12. Адресация многобайтовых объектов в памяти.
13. Основные преимущества обратной нумерации байт в многобайтных программных объектах.
14. Основные недостатки обратной нумерации байт в многобайтных программных объектах.