Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л. Клопа.docx
Скачиваний:
3
Добавлен:
26.09.2019
Размер:
53.22 Кб
Скачать

Структура контроллера устройств

Контроллеры устройств ввода/вывода отличаются как по внутреннему строению так и по исполнению, т.к. им приходится управлять разными устройствами. Обычно каждый контроллер имеет 4 внутренних регистра – регистры состояния, управления, входных и выходных данных.

Для доступа к ним вычислительная система может использовать один или несколько портов. По умолчанию каждому регистру соответствует свой порт.

Регистр состояния содержит биты, значение которых определяется состоянием устройств ввода/вывода и которые доступны только для чтения системы. Эти биты индуцируют (показывают состояние) завершение выполнение текущей команды на устройстве, так называется бит занятости; наличие очередного данного в регистре выходных данных и возникновение ошибки при выполнении команды (бит ошибки).

Регистр управления получает данные, которые записываются вычислительной системой для инициализации устройства ввода/вывода или выполнение очередной команды, а так же изменение режима работы устройства.

В этом случае процессор при обработке прерывания все равно вынужден заниматься вопросом определения устройства, которое выдало прерывание, но уже в существенно меньшем объеме, при установке в систему нового устройства ввода/вывода требуется программно или аппаратно определяющая каким будет № прерывания данного устройства.

При возникновении критических ситуаций необходимо исключить всякие прерывания от внешних устройств. Для невосприимчивости процессора внешних прерываний, существуют специальные команды, которые могут маскировать все или некоторые из прерываний устройств ввода/вывода. В то же время в определенной кризисной ситуации вычислительные системы должны требовать ее незамедлительной реакции. Такие ситуации вызывают прерывание которые поступают в процессор по специальной линии шины прерываний, называемые линией немаскируемых прерываний (NMI) – Non Mascable Inteerrupt.

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

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

Для внешних прерываний характерны следующие особенности:

  1. Внешние прерывания обнаруживаются процессором между выполнением команд

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

  3. Прерывание происходит асинхронно с работой процессора и непредсказуемо

Исключительно ситуации происходят во время выполнения процессором команд. К их числу относятся: ситуации прерывания, деления на ноль, обращение отсутствующей оперативной памяти и т.д.

Для исключения ситуаций характерно следующее:

  1. Исключается ситуация обнаруженная процессором во время выполнения команд

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

  3. Исключительная ситуация возникает синхронно с работой процессора, но непредсказуемо для программиста

Программные прерывания возникшие после выполнения следующих команд, как правило для выполнения привилегированных действий внутри системных вызовов. Программные прерывания имеют следующие свойства:

  1. Программные прерывания происходят в результате выполнения специальных команд

  2. Процессор при выполнении специальных команд прерывания сохраняет соответственно при выполнении специальных команд

  3. Программные прерывания возникшие синхронно с работой процессора и предсказуемы программисту

Реализация похожих механизмов обработки внешних прерываний исключительных ситуаций и программных прерываний целиком лежит на совести разработчиков процессоров. Существует вычислительная система где все три ситуации обработаны по-разному.