- •1. Понятие “Архитектура” вс
- •2. Классификация компьютеров
- •3. Оценка производительности вычислительных систем
- •4. Основные параметры и характеристики вычислительных систем.
- •5. Система памяти: классификация, параметры
- •6. Иерархическая организация памяти
- •7. Конвейеризация как способ повышения производительности памяти
- •Конвейерная организация.
- •8. Оперативная память. Организация. Параметры
- •Организация оперативной памяти
- •10. Синхронная dram (sdram)
- •11. Постоянное запоминающее устройство
- •12. Флэш-память: структура, параметры
- •13. Память с ассоциативным доступом.
- •14. Структура кэш-памяти
- •15. Внешняя память. Классификация. Параметры.
- •16. Внешняя память на основе нжмд
- •19. Методы адресации и типы данных
- •20. Организация конвейера процессора и оценка его производительности
- •21. Вопросы бесконфликтной работы конвейера процессора
- •Решение конфликтов по управлению
- •22. Динамическое планирование работы конвейера процессора
- •Решение конфликтов по управлению
- •23. Минимизация конфликтов в конвейере процессора
- •Решение конфликтов по управлению
- •25. Механизм прерывания работы процессора
- •26. Прямой доступ к памяти
25. Механизм прерывания работы процессора
Прерывание – это событие, которое заставляет процессор приостановить текущую работу. Механизм прерываний необходим. Без него процессору пришлось бы постоянно проверять, не требует ли обслуживания какое-либо устройство. Механизм прерываний позволяет периферийным устройствам «обращать на себя внимание» процессора по мере надобности. Механизм прерываний состоит в том, что текущая работа процессора может быть приостановлена на некоторое время одним из сигналов, который указывает на возникновение ситуации, требующей немедленной обработки.
Система прерываний служит для инициации различных процессов. Прерывания формируются системными устройствами, самим процессором, периферийными устройствами (вв./выв.). Инициатор запроса выставляет сигнал-запрос. В системе должно быть устройство – контроллер прерываний, который эти запросы воспринимает. Далее начинает работать механизм приоритетов:
между запросом и текущим состоянием системы;
между самими запросами (связано с текущим состоянием системы).
Бывают различные запросы: по переключению или по уровню. По переключению надо учитывать, что импульс имеет некоторую длительность, линия может использоваться только одним инициатором => каждому источнику требуется свой символ. В случае запроса по уровню линия может использоваться несколькими инициаторами, но это не позволит определить источник запроса (это используется в PCI). Но это экономит число линий запроса прерываний. Сейчас этот способ (по уровню) считается прогрессивным. От контроллера прерываний сигнал идет процессору. Если он "согласен", то переходит к подпрограмме прерывания.
Алгоритм:
сохранение всех параметров текущего процесса, чтобы к нему можно было вернуться по завершению подпрограммы прерывания: рабочие регистры, служебные регистры, регистры управления (в системах с разделением памяти);
процессору (его системе дешифрации команд) передается вектор новой подпрограммы прерываний. Самый простой способ – контроллеру прерываний генерировать адрес подпрограммы прерывания, но это невозможно (все программы в памяти "перемещаются"). Вектор указывает на ячейку памяти, где находится адрес подпрограммы прерывания. Прерывания BIOS – 256 ячеек. Для ускорения процесса таблица векторов располагается в кэше.
После выполнения подпрограммы возвращаются все параметры прерванного процесса. Но здесь происходит проигрыш при восстановлении конвейера.
Среднее время реагирования на инициализацию и выполнение процесса для прерываний меньше, чем при программном опросе.
Запрос на обработку процессором. При получении прерывания процессор приостанавливает свои операции, сохраняет текущее состояние и передает управление специальной программе (обработчику прерывания), содержащей команды для обработки ситуации, вызвавшей это прерывание.
Для реализации прерываний используется контролер прерываний процессора.
В зависимости от состояния процессора, либо он немедленно обслуживает прерывание, либо помещает прерывание в очередь для обслуживания позднее – для этого используется таблица обработчиков прерываний процессора.
Н а рисунке описывается типичный ход обслуживания прерывания. Контроллер устройства генерирует сигнал прерывания на шине процессора, который обрабатывает контроллер прерываний процессора. Этот сигнал служит причиной для CPU для выполнения кода в объекте-прерывании, зарегистрированном для прерывания. Этот код, в свою очередь, вызывает вспомогательную функцию Kilnterrupt Dispatch. KilnterruptDispatch вызывает ISR драйвера, которая запрашивает DPC.