- •Глава 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
Глава 5. Система прерывания
5.1.Функции системы прерывания и общие решения по реализации
Система прерывания появилась в процессорах ЭВМ второго поколения, которые использовались, в основном, в качестве программных устройств управления различными объектами.
Основными причинами появления системы прерывания являются:
желание разработчиков уменьшить простои ЭВМ при возникновении внештатных ситуаций в процессоре (попытки деления на ноль, использование несуществующей команды, сбой в устройстве и т.д.),
желание разработчиков загрузить полезной работой процессор во время, когда он ожидает сигнал от управляемого объекта, т.е. желание реализовать фоновую работу ЭВМ.
Несмотря на то, что система прерывания появилась для разрешения двух разных по сути проблем, в современных ЭВМ используется единый механизм прерывания. Но, несмотря на единый механизм прерывания, различают особенности процедуры обработки прерываний при внештатных ситуациях в процессоре и при приходе сигналов прерывания от внешних устройств.
С переходом на многопрограммные режимы работы система прерывания стала обязательным компонентом всех ЭВМ. Система прерывания – это эффективный способ реализации контрольных и управляющих функций операционной системы для поддержки заданных режимов работы ЭВМ как аппаратно-программного комплекса.
С этой точки зрения система прерывания является интерфейсным слоем между аппаратными и программными средствами ЭВМ.
Процедура прерывания заключается в переходе на подпрограмму обработки прерывания с возможностью возврата в основную программу.
В этом изложении процедура прерывания совпадает с процедурой вызова подпрограммы с возвратом, например при выполнении команды Call. Но эти процедуры имеют существенные различия в реализации возможности возврата в основную программу.
Проблема заключается в том, что команды имеют определенное последействие, которое влияет на выполнение последующих команд. Например, выполнение команды условного перехода может зависеть от результата выполнения предыдущей команды.
Каждая команда (кроме NOP) меняет контекст программы (имеет последействие), записывая результат выполнения в память, РОН или в регистр состояния.
Команды вызова процедуры с возвратом расставляются программистом с учетом такого последействия. Но прерывание – событие, в общем случае, случайное по отношению к программе. Программа обработки прерывания может изменить контекст программы, что может привести к нарушению корректности выполнения последующих команд основной программы.
По этой причине в процедуру прерывания включают этап сохранения контекста программы, а при возращении из процедуры – этап его восстановления.
Сохранение контекста может быть реализовано схемными, программными или схемно-программными способами. Наиболее часто используют схемно-программное сохранение контекста. При этом контекст делится на основную часть и дополнительную.
В основную часть входят коды условий и биты управления, собранные в регистр состояния программы (PSW – Program Status Word или PS). Для МП Intel – это регистр флагов (EFLAGS).
В дополнительную часть входит содержимое РОН и ячеек памяти.
Основная часть контекста сохраняется аппаратно, обычно в стек. Содержимое РОНов сохраняется и восстанавливается программой обработки прерывания, причем сохраняются и восстанавливаются только РОНы, используемые программой обработки прерывания.
Так как адресные пространства программ обработки прерывания и основной программы всегда разделяются, сохранение ячеек памяти в процедуре прерывания не предусмотрено.
В зависимости от причин, прерывания делятся на исключения (ловушки) и собственно прерывания.
Ловушка (Trap)– это реакция системы на появление в работе процессора нештатных ситуаций: попытка деления на ноль, выявление несуществующего адреса и т. д. К ловушкам относятся также специальные команды программируемого прерывания.
Прерывание (Interrupt)– это реакция системы на запрос внешнего устройства (сигнал прерывания) по выполнению процессором определенной процедуры управления.
Таким образом, ловушки выявляются схемами фиксации особых ситуаций в процессоре (штатных или нештатных), требующих контроля со стороны операционной системы. При этом с каждой схемой фиксации особых ситуаций связаны определенные программы обработки прерывания.
Сигналы прерывания – это сигналы от внешних по отношению к процессору устройств в моменты, требующие управляющих действий со стороны операционной системы.
Основными вопросами реализации системы прерывания являются:
прием сигналов прерывания и ловушек и выделение приоритетного сигнала,
определение момента выполнения процедуры прерывания,
выбор процедуры прерывания (модели сохранения контекста и перехода на программу обработки прерывания),
выбор процедуры возврата из процедуры прерывания (модели восстановления контекста и перехода на основную программу).
Прием сигналов прерывания и ловушек и выделение приоритетного сигнала
Прием сигналов (запросов) прерывания производится для определения конкретной программы обработки прерывания. В большинстве ЭВМ система прерывания предусматривает 256 программ обработки ситуаций, вызвавших запрос на прерывание. Каждая программа обработки прерывания связана с определенным источником прерывания и определяется номером прерывания. На рис.5.1. представлена обобщенная схема приема и приоритетного выделения сигналов прерывания. Выбор сигнала прерывания определяет номер источника прерывания и программу обработки этого прерывания.
Однопроцессорная система не может выполнять программы обработки прерывания одновременно по нескольким запросам. Поэтому используется приоритетное выделение принимаемых сигналов прерывания. Здесь возможны варианты.
Прием сигналов может производиться по общему проводу. В этом варианте, для выявления источников сигналов прерывания производится последовательный опрос процессором всех возможных источников сигнала прерывания.
Последовательность опроса определяет приоритет сигнала прерывания устройства.
При опросе все устройства, пославшие сигналы прерывания, в своих ответах определяют программы обработки прерывания.
Альтернативным способом приоритетного определения источника сигнала прерывания является прием сигналов прерываний от внешних устройств по индивидуальным проводам и фиксация их на отдельном регистре прерывания.
В этом случае в систему прерывания вводится схема приоритетного анализа поступивших сигналов. Для этого используется комбинационная схема, так называемый искатель левой единицы (ИЛЕ).
Эта схема задает жесткий приоритет сигналов прерывания. Но важность первоочередной обработки причин прерываний может меняться. Для этого в систему прерывания вводят регистр маски на те прерывания, приоритеты которых желательно менять. В том случае, изменяя значения бит регистра маски, отмечают сигналы прерываний, видимых искателю левой единицы. Примером может служить система прерывания семейства IBM 360.
В моделях этого семейства сигналы прерываний разделены на 5 классов. В каждом классе имеется своя схема приема и выделения сигналов прерывания, учитывающая специфику причин сигналов прерываний.
На рис 5.1 представлена упрощенная схема механизма системы прерывания. В этой схеме рассматривают только два крайних (по реализации выделения сигналов) класса системы прерывания.
В этой схеме производится параллельное определение самого приоритетного источника сигнала прерывания в схемах приема и выделения сигналов прерывания по отдельным классам и между классами. Источник прерывания (номер программы) определяется конкатенацией (сцепление литерных или битовых строк) номера класса прерывания с номером прерывания в выбранном классе прерываний.
Определение момента выполнения процедуры прерывания
Сигнал прерывания, в общем случае, не является сигналом немедленного действия. Обычно сигнал прерывания (от внешних устройств) или ловушки (от схем контроля выполнения операций) просто фиксируется в соответствующем разряде регистра прерывания.
Выполнение перехода на программу обработки ситуации всегда происходит с определенной задержкой (время реакции системы прерывания).
Здесь возможны несколько вариантов в выборе момента начала процедуры прерывания:
Программы состоят из последовательностей автономных участков (процедур) с минимальным набором передаваемой информации. Обычно это содержимое памяти или РОН. Это точки с минимумом контекста. Программист может отмечать эти точки особыми командами для использования их в качестве команд прерывания. Но это решение значительно увеличивает среднее время реакции системы прерывания.
Среднее время реакции системы прерывания значительно (в разы) сокращается, если процедуру прерывания производить сразу после окончания текущей команды.
Имеется еще возможность уменьшения времени реакции системы прерывания, если процедуру прерывания начинать сразу после окончания не команды, а текущей части команды (микрооперации), во время которой появился запрос прерывания. Но при этом приходится дополнительно сохранять результат текущей микрооперации.
В подавляющем большинстве архитектур ЭВМ процедура прерывания производится по окончании текущей команды.
На рис. 5.2 представлена упрощенная схема цикла выполнения команды с фиксацией ловушки (внештатной ситуации) и проверкой сигнала прерывания.
Выполнение команд в процессоре является циклическим. Начинаем рассмотрение с процедуры выборки команды. Это начало цикла. Результатом этого этапа является выборка и анализ полей команды, адресов операндов и результата. Следующим этапом является этап выборки операндов. Последующие этапы производят дешифрацию кода операции и передачу команды в блоки выполнения. Последним этапом является этап сохранения результата и записи признака результата в регистр состояния.
На всех этапах этой микропрограммы работает встроенная аппаратная система непрерывного контроля безошибочности работы аппаратуры. При обнаружении ошибок (сбоев) на любом этапе выполнения команды система производит фиксацию ошибки. Перед началом каждого следующего этапа производится проверка корректности выполнения предыдущего этапа. В случае обнаружения ошибки, она фиксируется в специальном регистре как исключительная ситуация (ловушка), и управление передается (в обход всех последующих этапов) на блок проверки наличия сигналов прерывания или ловушки (см. рис 4.1).
В случае обнаружения прерывания или ловушки производится соответствующая процедура прерывания или ловушки.
Процедура прерывания или ловушки
Процедура прерывания или ловушки заключается в сохранении контекста программы и передаче управления на программу обработки прерывания.
Процедура возврата из прерывания или ловушки
Процедура возврата из прерывания заключается в восстановлении контекста прерванной программы и передаче управления на эту программу.
Вопросы для самопроверки:
1. Две причины появления в ЭВМ системы прерывания.
2. Определение процедуры прерывания.
3 Основные отличия процедуры прерывания от процедуры вызова функции по команде Call.
4. Основная часть контекста программы.
5. Дополнительная часть контекста программы.
6. Механизм сохранения основной части контекста.
7. Механизм сохранения дополнительной части контекста
8. Понятие исключения (ловушки).
9. Основные вопросы реализации системы прерывания.
10. Основные этапы приема и выделения сигналов прерывания.
11. Момент реализации процедуры прерывания.
12. Механизм выявления исключения (ловушки).
13. Процедура возврата из прерывания.