- •Организация эвм и систем
- •Содержание
- •Глава 1. Становление и эволюция цифровой вычислительной техники 8
- •Глава 2. Архитектура системы команд 37
- •Глава 3. Программная модель процессора на примере Intel i8086 71
- •Глава 4. Интерфейсы и шины в вычислительной системе 87
- •Глава 5. Системы ввода/вывода. Организация обмена в вычислительной системе 116
- •Глава 6. Основные направления в архитектуре процессоров 129
- •Глава 7. Подсистема памяти 169
- •Глава 8. Внешние накопители 197
- •Глава 9. Основы параллельных вычислений 220
- •Глава 10. Архитектура многопроцессорных систем 237
- •Глава 1. Становление и эволюция цифровой вычислительной техники
- •1.1. Определение понятия «архитектура»
- •1.2. Уровни детализации структуры вычислительной машины
- •1.3. Эволюция средств автоматизации вычислений
- •1.3.1. Нулевое поколение (1492-1945)
- •1.3.2. Первое поколение(1937-1953)
- •1.3.3. Второе поколение (1954-1962)
- •1.3.4. Третье поколение (1963-1972)
- •1.3.5. Четвертое поколение (1972-1984)
- •1.3.6. Пятое поколение (1984-1990)
- •1.3.7. Шестое поколение (1990–)
- •1.4. Концепция машины с хранимой в памяти программой
- •1.4.1. Принцип двоичного кодирования
- •1.4.2. Принцип программного управления
- •1.4.3. Принцип однородности памяти
- •1.4.4. Принцип адресности
- •1.6 Типы структур вычислительных машин и систем
- •1.6.1. Структуры вычислительных машин
- •1.6.2. Структуры вычислительных систем
- •1.6.3. Перспективные направления исследований в области архитектуры
- •Контрольные вопросы
- •Глава 2. Архитектура системы команд
- •2.1. Понятие архитектуры системы команд
- •2.2. Классификация архитектур системы команд
- •2.2.1. Классификация по составу и сложности команд
- •2.2.2. Классификация по месту хранения операндов
- •2.3. Форматы команд
- •2.3.1. Длина команды
- •2.3.2. Разрядность полей команды
- •2.3.3. Количество адресов в команде
- •2.4. Выбор адресности команд
- •2.4.1. Адресность и емкость запоминающего устройства
- •2.4.2. Адресность и время выполнения программы
- •2.4.3. Адресность и эффективность использования памяти
- •2.5. Способы адресации операндов
- •2.5.1. Непосредственная адресация
- •2.5.2. Прямая адресация
- •2.5.3. Косвенная адресация
- •2.5.4. Регистровая адресация
- •2.5.5. Косвенная регистровая адресация
- •2.5.6. Адресация со смещением
- •2.5.7. Относительная адресация
- •2.5.8. Базовая регистровая адресация
- •2.5.9. Индексная адресация
- •2.5.10. Страничная адресация
- •2.6. Цикл команды
- •2.7. Основные показатели вычислительных машин
- •Контрольные вопросы
- •Глава 3. Программная модель процессора на примере Intel i8086
- •3.1. Программная архитектура i80х86
- •3.2. Микропроцессор i8086
- •3.3. Доступ к ячейкам памяти
- •3.4. Команды микропроцессора
- •3.5. Основные группы команд и их краткая характеристика
- •3.6. Способы адресации в архитектуре i80x86
- •Контрольные вопросы
- •Лабораторная работа №1. Программная архитектура процессора i8086
- •Глава 4. Интерфейсы и шины в вычислительной системе
- •4.1. Структура взаимосвязей вычислительной машины
- •4.2. Типы шин
- •4.2.1. Шина «процессор-память»
- •4.2.2. Шина ввода/вывода
- •4.2.3. Системная шина
- •4.3. Иерархия шин
- •4.3.1. Вычислительная машина с одной шиной
- •4.3.2. Вычислительная машина с двумя видами шин
- •4.3.3. Вычислительная машина с тремя видами шин
- •4.4. Физическая реализация шин
- •4.4.1. Механические аспекты
- •4.4.2. Электрические аспекты
- •4.5. Распределение линий шины
- •4.6. Выделенные и мультиплексируемые линии
- •4.7. Арбитраж шин
- •4.7.1. Схемы приоритетов
- •4.7.2. Схемы арбитража
- •4.8. Основные интерфейсы современных вм на базе архитектуры ia-32
- •4.8.1. Интерфейс pci
- •4.8.2. Порт agp
- •4.8.3. Pci Express
- •Глава 5. Системы ввода/вывода. Организация обмена в вычислительной системе
- •5.1. Основные функции модуля ввода-вывода
- •5.1.1. Локализация данных
- •5.1.2. Управление и синхронизация
- •5.1.3. Обмен информацией
- •5.2. Методы управления вводом/выводом
- •5.3. Система прерываний и исключений в архитектуре ia-32
- •5.4. Расширенный программируемый контроллер прерываний (apic)
- •Глава 6. Основные направления в архитектуре процессоров
- •6.1. Конвейеризация вычислений
- •6.1.1. Синхронные линейные конвейеры
- •6.1.2. Метрики эффективности конвейеров
- •6.1.3. Нелинейные конвейеры
- •6.2. Конвейер команд
- •6.3. Конфликты в конвейере команд
- •6.4. Методы решения проблемы условного перехода
- •6.5. Предсказание переходов
- •6.5.1. Статическое предсказание переходов
- •6.5.2. Динамическое предсказание переходов
- •6.6. Суперконвейерные процессоры
- •6.7. Архитектуры с полным и сокращенным набором команд
- •6.8. Основные черты risc-архитектуры
- •6.9. Преимущества и недостатки risc
- •6.10. Суперскалярные процессоры
- •Лабораторная работа №4. Исполнительные устройства вм
- •Глава 7. Подсистема памяти
- •7.1. Характеристики систем памяти
- •7.2. Иерархия запоминающих устройств
- •7.3. Основная память
- •7.4. Блочная организация основной памяти
- •7.5. Организация микросхем памяти
- •7.6. Синхронные и асинхронные запоминающие устройства
- •7.7. Оперативные запоминающие устройства
- •7.8 Статическая и динамическая оперативная память
- •7.9. Статические оперативные запоминающие устройства
- •7.10. Динамические оперативные запоминающие устройства
- •Лабораторная работа №5. Расширенная работа с памятью и передача управления в программе
- •Глава 8. Внешние накопители
- •8.1. Магнитные диски
- •8.1.1. Организация данных и форматирование
- •8.1.2. Внутреннее устройство дисковых систем
- •8.2. Массивы магнитных дисков с избыточностью
- •8.2.1. Концепция массива с избыточностью
- •8.2.2. Повышение производительности дисковой подсистемы
- •8.2.3. Повышение отказоустойчивости дисковой подсистемы
- •8.2.4. Raid уровня 0
- •8.2.5. Raid уровня 1
- •8.2.6. Raid уровня 2
- •8.2.7. Raid уровня 3
- •8.2.8. Raid уровня 4
- •8.2.9. Raid уровня 5
- •8.2.10. Raid уровня 6
- •8.2.11. Raid уровня 7
- •8.2.12. Raid уровня 10
- •8.2.13. Raid уровня 53
- •8.2.14. Особенности реализации raid-систем
- •8.3. Оптическая память
- •Контрольные вопросы
- •Глава 9. Основы параллельных вычислений
- •9.1. Уровни параллелизма
- •9.1.1. Параллелизм уровня задания
- •9.1.2. Параллелизм уровня программ
- •9.1.3. Параллелизм уровня команд
- •9.2. Метрики параллельных вычислений
- •9.2.1. Профиль параллелизма программы
- •9.2.2. Ускорение, эффективность, загрузка и качество
- •9.3. Закон Амдала
- •9.4. Закон Густафсона
- •9.5. Классификация параллельных вычислительных систем. Классификация Флинна
- •Контрольные вопросы
- •Глава 10. Архитектура многопроцессорных систем
- •Классификация многопроцессорных систем
- •Организация коммуникационной среды в системах с разделяемой памятью.
- •Когерентность кэш- памяти в smp- системах.
- •Когерентность кэш- памяти в mpp-системах.
- •Организация прерываний в мультипроцессорных системах.
- •Заключение
- •Библиографический список
2.3.3. Количество адресов в команде
Для определения количества адресов, включаемых в адресную часть, будем использовать термин адресность. В «максимальном» варианте необходимо указать три компонента: адрес первого операнда, адрес второго операнда и адрес ячейки, куда заносится результат операции. В принципе может быть добавлен еще один адрес, указывающий место хранения следующей инструкции. В итоге имеет место четырехадресный формат команды (рис. 2.39). Такой формат поддерживался в ВМ EDVAC, разработанной в 1940-х годах.
Рис. 16. Четырёхадресный формат команды.
В фон-неймановских ВМ необходимость в четвертом адресе отпадает, поскольку команды располагаются в памяти в порядке их выполнения, и адрес очередной команды может быть получен за счет простого увеличения адреса текущей команды в счетчике команд. Это позволяет перейти к трехадресному формату команды (рис. 17). Требуется только добавить в систему команд ВМ команды, способные изменять порядок вычислений.
Рис. 17. Трехадресный формат команды.
К сожалению, и в трехадресном формате длина команды может оказаться весьма большой. Так, если адрес ячейки основной памяти имеет длину 32 бита, а длина кода операции — 8 бит, то длина команды составит 104 бита (13 байт).
Если по умолчанию взять в качестве адреса результата адрес одного из операндов (обычно второго), то можно обойтись без третьего адреса, и в итоге получаем двухадресный формат команды (рис. 18). Естественно, что в этом случае соответствующий операнд после выполнения операции теряется.
Рис. 18. Двухадресный формат команды.
Команду можно еще более сократить, перейдя к одноадресному формату (рис. 19), что возможно при выделении определенного стандартного места для хранения первого операнда и результата. Обычно для этой цели используется специальный регистр центрального процессора (ЦП), известный под названием аккумулятора, поскольку здесь аккумулируется результат.
Рис. 19. Одноадресный формат команды.
Применение единственного регистра для хранения одного из операндов и результата является ограничивающим фактором, поэтому помимо аккумулятора часто используют и другие регистры ЦП. Так как число регистров в ЦП невелико, для указания одного из них в команде достаточно иметь сравнительно короткое адресное поле. Соответствующий формат носит название полутораадресного или регистрового формата (рис. 20).
Рис. 20. Полутораадресный формат команды.
Наконец, если для обоих операндов указать четко заданное местоположение, а также в случае команд, не требующих операнда, можно получить нульадресный формат команды (рис. 21).
Рис. 21. Нульадресный формат команды.
В таком варианте адресная часть команды вообще отсутствует или не задействуется.
2.4. Выбор адресности команд
При выборе количества адресов в адресной части команды обычно руководствуются следующими критериями:
емкостью запоминающего устройства, требуемой для хранения программы;
временем выполнения программы;
эффективностью использования ячеек памяти при хранении программы.