logo search
Shpory gosy

С линией запроса

Всякое ВУ способное послать запрос на прерывание имеет специальный сигнал – сигнал запроса на прерывание. Все эти линии объединены вместе и подключены к входу CPU, требования прерывания. Принцип работы следующий: в некий момент времени одно из ВУ послало запрос на прерывание – понизило уровень потенциала до 0. CPU получив сигнал запроса должен узнать которое из устройств послало запрос. Для чего CPU выставляет адрес ближайшего ВУ, меньший из всех и читает ШД. Если именно это устройство послало запрос, оно выставит по принятому адресу свой номер – код. Этот код назвали вектором прерывания. По вектору прерывания CPU определит начальный адрес подпрограмм обработки этого запроса. На практике далеко не первое устройство посылает запрос, поэтому CPU последовательно читает ШД и ищет вектор. Адрес выставили, читаем ШД. Если вектора нет изменяем адрес на следующий и вновь читаем ШД и т.д. до определения устройства. Время реакции на запрос будет различным: у первого ВУ min, у последнего ВУ max. Такое расположение ВУ можно принять за приоритеты и автоматически имеем, что опрашиваем первоначально устройство имеющее высший приоритет. Главный недостаток подхода время реакции на событие. В тоже время структура проста, требует min оборудования. Для обслуживания такой системы прерываний необходима подпрограмма анализа векторов прерывания.

  1. Система с линией запроса прерываний и линией подтверждения прерываний. Впервые нашла применение в системе IBM для обслуживания ВУ. Особенность подключения ВУ в том, что каждое имело розетку на блоке канала и вилку у себя и линия подтверждения запроса проходила через все розетки канала к которым можно было бы подключить ВУ. Отличие от 1-ой структуры в том, что опознавание ВУ пославшего запрос выполняется не программно, а аппаратно. CPU по линии подтверждения посылает высокий уровень который проходит через все розетки ВУ. Если ВУ не послало запрос, оно ретранслирует – передает этот уровень дальше, если послало, ВУ выставляет на ШД вектор прерываний и CPU обращается к подпрограмме обработки по этому вектору. При отсутствии ВУ розетка свободна – обязательно ставили заглушку, ответную часть разъема с перемычкой по которой сигнал подтверждения передавался дальше. Время анализа устройства пославшего запрос небольшое, но само устройство инициирует вектор и соответственно CPU должен иметь подпрограмму анализа вектора прерываний. Что привело к появлению третьих структур: с контроллером прерываний. Последние функции CPU вынесены в дополнительную внешнюю схему называемую контроллером прерываний.

  2. С контроллером прерываний. Как 1-ый так и 2-ой способы определения устройств пославших запрос требуют вмешательства CPU – программного опроса устройств. Структура с контроллером прерываний быстрее определят вектор прерываний и соответственно переход к подпрограмме обработки прерываний. Цена дополнительная схема которую необходимо ставить для нормальной работы. Контроллер прерываний – комбинационная схема формирующая 2 выходных сигнала: вектор прерываний и сигнал запроса на прерывание. Если контроллер рассчитан на 8 ВУ способных послать запрос, от имеет 8-входов и 4-выхода: один выход – запрос на прерывание и 3-разрядный код вектора, номера устройства пославшего запрос. У типовых контроллеров число входов ограничено (4, 8, 16). Поэтому для расширения кол-ва запросов на прерывание, такие схемы включают каскадно. Эти схемы имеют 8-входов. Хотя имеются типовые схемы контроллеров, для его реализации можно использовать и схему (РПЗУ, ППЗУ). Запросы на прерывание кроме того сто имеют приоритеты могут также разделяться на маскируемые и немаскируемые. Последние инициируют обращение к подпрограмме прерываний в любом случае. Без обслуживания этих подпрограмм ЭВМ не работает. Не смотря на то, что по фоннейману ЭВМ последовательно выбирает управляющие коды из памяти, имеется возможность изменения такой последовательности за счет механизма прерываний. При обслуживании прерываний CPU обращается к подпрограмме заранее занесенной в память команд.