Контролер прерываний


Прерывание формируется выставлением сигнала на сигнальную шину. Этот сигнал считывается контролером прерываний. Контролер прерываний оценивает значимость сигнала, по таблице прерываний. Прерывание с самым высоким приоритетом выставляется на адресную шину подается адрес устройства, требующего внимания. Более низкие сигналы игнорируются. Адрес выставленный на адресную шину используется процессором в качестве индекса в таблице, называемой таблицей прерываний, для запуска команды обработки прерываний.

Таким образом удается блокировать несколько одновременных запросов от устройств. Устройства тоже могут содержать контролеры прерываний, используемые внутри устройства.

В случае использовании суперскалярной архитектуры, задача перываний становится крайне сложной, поскольку программы выполняются не в пакетном режиме и текущее состояние процессов может быть крайне неопределённо. Для этого использую аппаратную реализацию точного прерывания. При котором

Считчик команд (Program Control) хранится в определенном месте.

Все команды до той, на которую указывает счетчик выполнены.

Ни одна команда после счетчика не выполнялась

Состояние текущей команды известно.

Цена точных прерываний кране сложная архитектура центрального процессора и контролера прерываний, который содержит аппаратную логику прерываний.

Прерывания могут быть аппаратными и программными. ОС не различает их.

Прерывания с ошибками – неточные прерывания. При неточном прерывании система начинает разбирать общий стек, выясняя появление прерывания, что сильно тормозит центральный процессор, поскольку идет просмотр всей памяти. Для систем реального времени это не допустимо, поэтому для них вводят отдельно точные прерывания и не точные, вводя в их регистры специальные биты.

 

Концепция разработки ПО ввода-вывода – независимость программа от устройств. Программа должна одинаково работать на любом носителе. Другая концепция – единообразие названий устройств. Следующий этап ПО ввода-вывода – обработка ошибок. Эта обработка должна происходить как можно ближе к устройству (в контролере), чтобы исправить её быстрее. Многие ошибку ввода –вывода – временные ошибки. Буферизация ввода-вывода. Пакет полученный по сети некуда деть пока он не будет развернут. Но до этого его нужно где-то хранить.

Выделенные устройства и устройства коллективного пользования.

Программный ввод-вывод Всю работу делает ЦП: Этапы печати строки- сначала собирает строку в буфер в пространстве пользователя.

Затем обращаясь к системному вызову, процесс пользователя получает принтер. Получив доступ к принтеру, пользовательский процесс просит системный процес печать распечаттать строку. Система копирует буфер в общий системный буфер обмена. Из буфера строка посимвольно передается в принтер. После печати каждого символа ЦП опрашивает сигнальную шину о готовности. Это самый простой, но и самый затратный метод.

Метод постренный на прерываниях. После подачи символа процесс временно блокируется системой, до появление сигнала готовности. Это распознает контролер прерываний, который разблокирует процесс для ввода следующего символа и т.д., пока все символы не будут напечатаны. После этого процесс полностью разблокируется.

DMA проводить однотипные операции без участия ЦП, выводя всю строку. Преимущества DMA в том, что прерывания приходит на ЦП только после печати всего блока.

 

 



Дата добавления: 2018-11-26; просмотров: 560;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.006 сек.