- •Глава 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
4.2. Программная модель процессоров эвм vax-11 (см 1700)
Разрядность (ширина) тракта обработки 32.
Адресное пространство V – 232 (4 Гбайт),
Структура VAX-11
Структура VAX-11 представлена на рис. 4.5.
Процессор соединен с оперативной памятью и сервисным сопроцессором через быстродействующий локальный интерфейс, а с внешними устройствами – через два стандартных интерфейса " Unibus" (для медленнодействующих устройств) и Masbus (для быстродействующих устройств).
Сервисная система на основе РС используется системным оператором и инженером для управления и тестирования системы.
Регистровый файл – шестнадцать 32-разрядных регистров общего назначения (рис.4.6)
Регистры с нулевого по одиннадцатый не специализированы.
Регистры 12 и 13 по умолчанию используются для передачи параметров в подпрограмму.
Регистр 14 по умолчанию используется как указатель аппаратного стека (SP). Используется в процедурах прерывания.
Регистр 15 используется в качестве указателя (счетчика) команд (РС).
-
31 0
0
РОН
1
РОН
РОН
12
Указатель аргумента
13
Указатель пространства
14
Указатель аппаратного стека SP
15
Счетчик команд PC
Рис. 4.6. Регистры общего назначения
Операнды:
B (байт) = 8 бит,
W (слово) = 16 бит,
L (двойное слово) = 32 бит,
Q (учетверенное слово) = 64 бит.
Структура обозначения кода операции ( на языке ассемблера):
Операцияразрядность операнда.
Примеры:
MOVB – пересылка байт,
MOVW – пересылка слова,
MOVL – пересылка двойного слова,
MOVQ – пересылка учетверенного слова.
Команды могут быть: безадресные (адрес задается неявно кодом операции), двухадресные и трехадресные. Код операции в трехадресных командах (ассемблера) помечается цифрой 3.
Примеры:
ADDL A1, A2 ;сложение двойных слов (двухадресный вариант)
ADDL3 A1, A2, A3 ;сложение двойных слов (трехадресный вариант).
Команды содержат код операции и до трех полей адреса (рис.4.7.).
Функции кода операции:
задает операцию,
задает размер операнда,
задает количество адресов.
Поле адреса задает адрес операнда.
Каждое поле адреса содержит одну или две спецификации.
Спецификация – это "1-й байт" и, возможно, смещение (до 4 байт).
"1-й байт" содержит поле номера режима задания адреса (первые 4 бита) и поле номера РОНа (вторые 4 бита), содержимое которого используется при формировании адреса операнда.
Режимы адресации адреса
Короткий операнд. Номера режима от 0000 до 0011 интерпретируются как старшие цифры короткого непосредственного операнда (число со знаком), младшими цифрами которого являются цифры поля номера РОНа:
0000ХХХХ
0001ХХХХ
0010ХХХХ
0011ХХХХ,
где Х- цифры поля номера РОНа.
Пример:
Команда на ассемблере:
movW # –5, R1; пересылка слова FFFB (–5) в R1
Запись числа –5 в байте режима: 0011 1011. Цифра, выделенная подчеркиванием – знак короткого литерала (числа).
0100 – индексная адресация. Используется для адресации элементов одномерного массива. Адрес элемента массива вычисляется как:
Адрес элемент массива = База + Индекс размер операнда (в байтах), где:
База – базовый адрес массива. Задается полями второй спецификации. При этом для задания базового адреса массива может использоваться любой режим, кроме индексного и короткого литерала.
Индекс (номер элемента массива) – это содержимое РОНа, заданного полем номера РОНа в первой спецификации поля адреса.
размер операнда (элемента массива – 1, 2, 4, 8 байт) задается кодом операции.
На ассемблере указывают базовый адрес, заданный второй спецификацией, а за ним в квадратных скобках – РОН, содержимое которого используется в качестве индекса.
Пример: MOVQ #27[R2], R0 – скопировать в R0 учетверенное слово (Q – 8 байт) по адресу, равному 27 (базовый адрес, заданный коротким операндом) плюс содержимое R2 (индекс), умноженное на длину операнда (8 байт), т.е. адрес источника вычисляется как 27+R28.
Индексная адресация – это единственный случай, когда для задания операнда используются две спецификации. Поле адреса в этом случае может содержать максимально возможное число байт – 6 (один байт в первой спецификации и пять байт – первый байт и 4 байта смещения – во второй спецификации).
Индексная адресация может использовать в качестве базового адреса массива (во второй спецификации) все виды адресации, указанные ниже.
0101 – регистровая адресация – R1. Операнд находится в РОНе (R1), заданном полем номера РОНа в первом байте первой спецификации адресного поля. Для операнда используется только один байт – первой байт первой спецификации.
0110 – косвенно-регистровая адресация – (R1). Адрес операнда определяется содержимым РОНа, заданного полем номером РОНа в первом байте первой спецификации адресного поля. Для операнда используется только один байт – первой байт первой спецификации.
0111 – автоинкрементная адресация – (R1)+. Адрес операнда определяется содержимым РОНа, заданного полем номера РОНа в первом байте первой спецификации адресного поля. После использования адреса, содержимое указанного РОНа увеличивается на длину операнда (в байтах). Для задания операнда используется только один байт – первый байт первой спецификации.
1000 –косвенная автоинкрементная адресация – @(R1)+. Адрес адреса операнда определяется содержимым РОНа, заданного полем номера РОНа в первом байте первой спецификации адресного поля. После использования адреса содержимое указанного РОНа увеличивается на четыре байта (размерность адреса). Для задания операнда используется только один байт – первый байт первой спецификации.
1001 – автодекрементная адресация – -(R1). Содержимое заданного полем номера РОНа в первом байте первой спецификации адресного поля уменьшается на длину операнда (в байтах), после чего используется в качестве адреса операнда. Для задания операнда используется только один байт – первый байт первой спецификации.
В отличие от адресации операндов в процессоре PDP-11, в VAX-11 не используется косвенная автодекрементная адресация.
Относительные адресации
Имеются 3 модификации относительной адресации:
1010 – относительно байтовая адресация, используется один байт смещения. Пример: CLRW 235B(R1). Очистить два байта (слово) по адресу, равному сумме содержимого R1 и байта смещения – 0EBh (253),
1100 – относительно словарная адресация, используется два байта смещения. Пример: CLRW 235W(R1). Очистить два байта (слово) по адресу, равному сумме содержимого R1 и двух байт смещения – 00EBh (253),
1110 – относительно двухсловная адресация, используется два байта смещения. Пример: CLRW 235L(R1). Очистить два байта (слово) по адресу, равному сумме содержимого R1 и четырех байт смещения – 0000 00EBh (253).
Косвенно относительные адресации
Имеются 3 модификации косвенно относительной адресации:
1011 – относительно байтовая адресация, используется один байт смещения. Пример: CLRW 235B(R1) – Очистить слово, адрес которого равен сумме содержимого R1 и байта смещения – 0EBh (253),
1101 – относительно словарная адресация, используется два байта смещения. Пример: CLRW 235W(R1) – Очистить слово, адрес которого равен сумме содержимого R1 и двух байтов смещения – 00EBh (253),
1111 – относительно двухсловная адресация, используется два байта смещения. Пример: CLRW 235L(R1) – Очистить слово, адрес которой равен сумме содержимого R1 и четырех байтов смещения – 0000 00EBh (253).
Адресация с использованием счетчика команд
Использование R15 (РС – счетчика команд) позволяет получать четыре дополнительные группы адресаций:
Непосредственный операнд (#A). Непосредственный операнд находится в спецификации непосредственно в команде. Задается режимом (РС)+ (7-й режим адресации, автоувеличение с использованием счетчика команд).
Абсолютный адрес (@#A). Адрес операнда находится в спецификации непосредственно в команде. Задается режимом @(РС)+ (9-й режим адресации, косвенное автоувеличение с использованием счетчика команд).
Относительный адрес (А). Адрес операнда задается относительно счетчика команд. Формируется сложением содержимого "продвинутого" счетчика команд со смещением, которое следует в команде за спецификатором операнда. Смещение, в зависимости от режима, может быть байтом, словом или двойным словом. Ассемблируется в виде:
Код операции XB (PC) (10-й режим адресации, относительная байтовая адресация с использованием счетчика команд).
Код операции XW (PC) (12-й режим адресации, относительная словарная адресация с использованием счетчика команд).
Код операции XL (PC) (14-й режим адресации, относительная двухсловная адресация с использованием счетчика команд).
Косвенно относительный адрес (@А). Адрес адреса операнда задается относительно счетчика команд. Формируется сложением содержимого "продвинутого" счетчика команд со смещением, которое следует в команде за спецификатором операнда. Смещение, в зависимости от режима, может быть байтом, словом или двойным словом. Ассемблируется в виде:
Код операции XB (PC) (11-й режим адресации, относительная байтовая адресация с использованием счетчика команд).
Код операции XW (PC) (13-й режим адресации, относительная словарная адресация с использованием счетчика команд).
Код операции XL (PC) (15-й режим адресации, относительная двухсловная адресация с использованием счетчика команд).
Вопросы для самопроверки:
Разрядность VAX-11.
Количество РОН в VAX-11.
Разрядность операндов в VAX-11.
Максимальное количество адресов в VAX-11.
Структура поля адреса в командах VAX-11.
Структура "1-го первого байта" в спецификации адресного поля команд VAX-11.
Задание адреса в режиме индексной адресации.
Действие и алгоритм вычисления адреса источника, заданные командой MOVQ#27 [R2], R0.