- •Организация эвм и систем
- •Содержание
- •Глава 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.4.1. Адресность и емкость запоминающего устройства
Емкость запоминающего устройства для хранения программы ЕА можно оценить из соотношения
ЕА=NA * RKA
где NA — количество программ в программе; RK — разрядность команды, определяемая в соответствии с формулой (3); А — индекс, указывающий адресность команд программы. При выборе количества адресов по критерию «емкость ЗУ» предпочтение следует отдавать одноадресным командам.
2.4.2. Адресность и время выполнения программы
Время выполнения одной команды складывается из времени выполнения операции и времени обращения к памяти.
Для трехадресной команды последнее суммируется из четырех составляющих времени:
выборки команды;
выборки первого операнда;
выборки второго операнда;
записи в память результата.
Одноадресная команда требует двух обращений к памяти:
выборки команды;
выборки операнда.
Как видно, на выполнение одноадресной команды затрачивается меньше времени, чем на обработку трехадресной команды, однако для реализации одной трехадресной команды, как правило, нужно три одноадресных. Этих соображений тем не менее не достаточно, чтобы однозначно отдать предпочтение тому или иному варианту адресности. Определяющим при выборе является тип алгоритмов, на преимущественную реализацию которых ориентирована конкретная ВМ.
2.4.3. Адресность и эффективность использования памяти
С данных позиций можно отдать предпочтение одноадресным командам, для которых характерна максимальная эффективность использования адресов, так как, например, в командах передачи управления нужен только один адрес.
2.5. Способы адресации операндов
Вопрос о том, каким образом в адресном поле команды может быть указано местоположение операндов, считается одним из центральных при разработке архитектуры ВМ. С точки зрения сокращения аппаратурных затрат очевидно стремление разработчиков уменьшить длину адресного поля при сохранении возможностей доступа ко всему адресному пространству. С другой стороны, способ задания адресов должен способствовать максимальному сближению конструктов языков программирования высокого уровня и машинных команд. Все это привело к тому, что в архитектуре системы команд любой ВМ предусмотрены различные способы адресации операндов.
Приступая к рассмотрению способов адресации, вначале определим понятия «исполнительный» и «адресный код».
Исполнительным адресом операнда (Лисп) называется двоичный код номера ячейки памяти, служащей источником или приемником операнда. Этот код подается на адресные входы запоминающего устройства (ЗУ), и по нему происходит фактическое обращение к указанной ячейке. Если операнд хранится не в основной памяти, а в регистре процессора, его исполнительным адресом будет номер регистра.
Адресный код команды (Лк) — это двоичный код в адресном поле команды, из которого необходимо сформировать исполнительный адрес операнда.
В современных ВМ исполнительный адрес и адресный код, как правило, не совпадают, и для доступа к данным требуется соответствующее преобразование. Способ адресации — это способ формирования исполнительного адреса операнда по адресному коду команды. Способ адресации существенно влияет на параметры процесса обработки информации. Одни способы позволяют увеличить емкость адресуемой памяти без удлинения команды, но снижают скорость выполнения операции, другие — ускоряют операции над массивами данных, третьи — упрощают работу с подпрограммами и т. д. В сегодняшних ВМ обычно имеется возможность приложения нескольких различных способов адресации операндов к одной и той же операции.
Чтобы устройство управления вычислительной машины могло определить, какой именно способ адресации принят в данной команде, в разных ВМ используются различные приемы. Часто разным способам адресации соответствуют и разные коды операции. Возможно также добавление в состав команды специального поля выбора способа адресации, содержимое которого определяет, какой именно из способов адресации должен быть применен. Иногда в команде имеется нескольких полей — по одному на каждый адрес. Отметим, что возможен также вариант, когда в команде вообще отсутствует адресная информация, то есть имеет место неявная адресация. При неявной адресации адресного поля либо просто нет, либо оно содержит не все необходимые адреса — отсутствующий адрес подразумевается кодом операции. Так, при исключении из команды адреса результата подразумевается, что результат помещается на место второго операнда. Неявная адресация применяется достаточно широко, поскольку позволяет сократить длину команды.
Выбор способов адресации является одним из важнейших вопросов разработки системы команд и всей ВМ в целом, при этом существенное значение имеет не только удобство программирования, но и эффективность способа. Эффективность способа адресации можно характеризовать двумя показателями: затратами оборудования С и затратами времени Т на доступ к адресуемым данным. Затраты оборудование определяются суммой ,
C = СВА + СЗУ
где СВА — затраты аппаратных средств, обеспечивающих вычисление исполнительных адресов; СЗУ — затраты памяти на хранение адресных кодов команд. Обычная СЗУ >>CВА, поэтому при оценке затрат оборудования ограничиваются учетом величины СЗУ. Затраты времени Т определяются суммой времени tФИА формирования исполнительного адреса и времени tЗУ выборки или записи операнда:
Т = tФИА + tЗУ
В настоящее время используются различные виды адресации, наиболее распространенные из которых рассматриваются ниже.