на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Организация прерываний в ЭВМ
p align="left">

При проектировании механизма обработки прерываний в конкретной вычислительной системе нужно решить два важных вопроса: как передать процессору информацию об источнике прерывания и как должен поступить процессор в случае, если одновременно возникают прерывания от нескольких источников.

Сначала рассмотрим проблему идентификации источника прерывания, в практике проектирования компьютерных систем применяется четыре варианта решения:

* включение в состав системной магистрали нескольких линий передачи сигналов прерывания;

* программный опрос;

* последовательное включение источников в цепь распространения сигнала предоставления прерывания (аппаратный опрос);

* арбитраж магистрали.

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

Один из таких подходов предполагает программный опрос источников - модулей ввода-вывода -- при получении процессором сигнала запроса прерывания. Опрос выполняется в самом начале выполнения подпрограммы обработки прерывания, сразу же за сохранением состояния регистров процессор стеке. Для того чтобы такой опрос был возможен, в составе системной магистрали должна быть предусмотрена отдельная линия для передачи сигнала опроса (линия TESTI/0), а в наборе команд процессора -- соответствующая команда, аргументом которой является адрес модуля ввода-вывода. При выполнении этой команды процессор формирует сигнал опроса на линии TESTI/O, сопровождая его кодом адреса модуля ввода-вывода на линиях адреса. Если опрашиваемый модуль действительно был источником прерывания, он выставляет сигнал подтверждения, который фиксируется в одном из битов слова состояния PSW. Следующая команда условного перехода анализирует этот бит и выполняет переход на ветвь обработки данного прерывания. Опрашивая по очереди все потенциальные источники прерывания, программа может таким образом найти, какой из них был инициатором данного прерывания. Другой вариант реализации этой идеи состоит в том, что в регистре состояния каждого модуля ввода-вывода предусматривается специальный бит, который устанавливается аппаратно, если данный модуль формирует сигнал прерывания. Опрашивая по очереди регистры состояния модулей, программа может выяснить, какой же из них послал сигнал запроса прерывания, и перейти на соответствующую ветвь. Недостаток метода программного опроса тот же, что и программно управляемого ввода-вывода, -- процессор теряет время на опрос всех потенциальных источников прерываний.

Альтернативой программному опросу является аппаратный опрос, который реализуется последовательным включением источников в цепь распространения сигнала предоставления прерывания. При такой организации образуется цепочка источников -- daisy chain, - в которой каждое звено (модуль ввода-вывода) пропускает дальше сформированный процессором сигнал предоставления прерывания, если сам он источником прерывания не является. Если же модуль ранее сформировал сигнал запроса прерывания, то, получив сигнал предоставления, он дальше его не пропускает, а выставляет собственный вектор прерывания -- специфичный именно для данного устройства код -- на линии данных магистрали. В результате процессор, опросив линии данных через некоторое время после формирования сигнала предоставления прерывания, получит информацию о том, кто же именно « осмелился его побеспокоить». Как правило, вектор прерывания содержит адрес подпрограммы обработки данного прерывания, но иногда это может быть просто уникальный идентификатор модуля. В любом случае полученный вектор прерывания несет процессору или программе информацию, достаточную для того, чтобы однозначно распознать источник прерывания, и соответственно на него реагировать. Прерывания, сопровождаемые передачей в том или ином виде уникального кода, идентифицирующего источник прерывания, принято называть векторными (vectored interrupt).

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

Описанные выше методы не только позволяют выяснить, какой же из модулей ввода-вывода является "возмутителем спокойствия", но и ранжировать их по приоритету в случае, если несколько модулей одновременно попытаются вызвать прерывание. Если в вычислительной системе используется несколько линий запроса прерывания, то каждая из них может иметь свой приоритет, и в аппаратуре процессора предусматривается, что предпочтение будет отдано источнику прерывания, подключенному к линии с более высоким приоритетом. При программном опросе приоритет источников закладывается в последовательность опроса потенциальных источников -- те из них, которые имеют более высокий приоритет, опрашиваются раньше менее привилегированных. Программный подход фактически перекладывает ответственность за назначение приоритетов на плечи системного программиста. Если используется метод аппаратного опроса источников, то приоритет зависит от места каждого из них в цепочке распространения сигнала предоставления прерывания -- чем ближе модуль к процессору (который в данном случае является "боссом"), тем выше его приоритет (в компьютерном мире многое устроено так же, как у людей). Об обсуждения концепций организации ввода-вывода перейдем к рассмотрению двух конкретных примеров.

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

Микропроцессор Intel 80386 поддерживает работу с одной линией запроса прерывания (INTR) и одной линией сигнала предоставления прерывания (INTA). Для того чтобы процессор Intel 80386 мог обслуживать множество внешних устройств, к нему подключается внешний контроллер прерываний Intel 82C59A, к которому, в свою очередь, подключаются модули управления внешними устройствами. Контролер Intel 82С59А в данном случае играет роль арбитра прерываний.

В Приложении рис.3 представлена схема подключения множества модулей ввода-вывода к процессору Intel 803S6 через контроллер прерываний Intel 82С59А Отдельный контроллер Intel 82C59A может обслуживать до восьми модулей ввода-вывода. Если в компьютере предполагается использовать более восьми модулей, контроллеры включаются по каскадной схеме и в результате могут обслуживать до 64 модулей.

Единственная задача контроллера Intel 82C59A -- обслуживание прерываний. Он получает сигналы запроса прерываний от подключенных модулей ввода-вывода, анализирует, какое из устройств, одновременно приславших запрос. имеет наивысший приоритет, и передает сигнал запроса прерывания на линию INTR, подключенную непосредственно к процессору. Процессор отвечает сигналом предоставления прерывания на линии INTA. В ответ контроллер помещает вектор соответствующего прерывания на линии данных. После этого процессор начинает выполнять процедуру обработки прерывания и работает напрямую с модулями ввода-вывода -- считывает или передает данные.

Режим работы контроллера Intel 82C59A, а именно схема назначения приоритетов, программируется процессором. Существуют три варианта режима назначения приоритетов.

* Вложенный (fully nested). Приоритет запроса определяется тем, к какому контакту контроллера подключен сигнал. Тот из них, который подключен ко входу IRO, имеет приоритет 0, а подключенный ко входу IR7 -- приоритет 7.

* Циклический (rotating). В некоторых приложениях нескольким внешним устройствам (группе) назначается один и тот же приоритет. В этом режиме после получения сигнала предоставления прерывания модуль, инициировавший прерывание, получает самый низкий приоритет в группе.

* Маскируемый (special mask). В этом режиме процессор может заблокировать прерывания от выбранных устройств, передав специальный код маски.

Программируемый контроллер интерфейса Intel 82C55A

Программируемый контроллер интерфейса Intel 82C55A может служить прекрасным примером модуля, используемого как в режиме программируемого ввода-вывода, так и в режиме ввода-вывода по прерыванию. Модуль выполнен в виде БИС в корпусе с 40 выводами и предназначен для работы с микропроцессором Intel 80386. В Приложении рис.4 представлена блок-схема контроллера и назначение выводов.

Внешнее устройство подключается к контроллеру через 24 линии связи, показанные на схеме справа. Сигналы на этих линиях определяются состоянием внутренних регистров контроллера, которые программируются процессором Intel 80386. Процессор может задавать через регистры управления разные режимы работы контроллера. 24 выходных линии разбиты на три группы по 8 линий в каждой -- группы А, В и С. Каждая группа может функционировать как отдельный 8-разрядный порт ввода-вывода. Кроме того, группа С разбита на две подгруппы -- СА и СВ, -- которые можно использовать в сочетании с портами А и В соответственно. Если контроллер будет сконфигурирован таким способом, то подгруппы са и СВ смогут передавать (принимать) сигналы управления и состояния, а порты -- сигналы данных на ввод и на вывод.

Слева на схеме представлены линии интерфейса, по которым контроллер обменивается сигналами с процессором через системную магистраль. В их числе входят 8 двунаправленных линий передачи данных (линии DO-D7), по которым передаются (принимаются) данные в порты ввода-вывода и в регистры управления. Обмен данными выполняется, когда установлен сигнал CHIP SELECT и один из сигналов READ или WRITE. Сигнал RESET устанавливает контроллер в исходное состояние.

Загружая тот или иной код в регистр управления, процессор способен задавать режим работы контроллера и конфигурацию порта С. В режиме 0 три группы выходных линий контроллера работают как три независимых 8-разрядных порта, каждый из которых может быть сконфигурирован либо как порт ввода, либо как порт вывода. Другой вариант конфигурации -- группы линий А и В работают как порты ввода-вывода, а группа линий С делится на две, одна из которых становится группой передачи сигналов управления, поддерживающих порт А, а другая -- порт В. Сигналы управления предназначены для выполнения двух основных процедур -- обмена сигналами при установлении связи (процедура «handshaking» -- рукопожатие) и формирования сигнала запроса прерывания. В первом случае реализуется самый простой алгоритм синхронизации. Одна управляющая линия используется для передачи сигнала готовности DATA READY,который означает, что данные выставлены на внешние линии данных. Другая линия используется для приема сигнала подтверждения ACKNOWLEDGE, который является индикатором того, что выставленные ранее данные считаны и соответствующие сигналы можно сбросить. Еще одна линия предназначена для передачи сигнала запроса прерывания INTERRUPT REQUEST и подключается непосредственно к соответствующей линии системной магистрали.

Поскольку режим работы контроллера Intel 82C55A программируется извне, его можно настроить на работу с самыми разными несложными внешними устройствами. В Приложении рис.5 показано, как с помощью этого контроллера можно реализовать управление клавиатурой и дисплеем видеотерминала. Клавиатура рассматривается как устройство ввода, передающее 8-разрядный код. Два разряда, shift и CONTROL, имеют особое значение для программы обслуживания клавиатуры, которая выполняется процессором. Однако особая интерпретация этих ; разрядов никак не затрагивает контроллер -- это не его заботы. Он передает эти разряды дальше на линии данных системной магистрали точно так же, как и шесть остальных. Для синхронизации обмена с клавиатурой выделены две сигнальных линии -- DATA READY И ACKNOWLEDGE.

Дисплей также подключен к контроллеру через 8-разрядный порт данных. Набор управляющих линий включает, помимо DATA READY и ACKNOWLEDGE, еще две дополнительных.

Заключение

Приоритет ВУ в микроЭВМ с программным опросом готовности внешнего устройства однозначно определяется порядком их опроса в подпрограмме обработки прерываний. Чем раньше в подпрограмме опрашивается готовность ВУ, тем меньше время реакции на его запрос и выше приоритет. Необходимость проверки готовности всех внешних устройств существенно увеличивает время обслуживания тех ВУ, которые опрашиваются последними. Это является основным недостатком рассматриваемого способа организации прерываний. Поэтому обслуживание прерываний с опросом готовности ВУ используется только в тех случаях, когда отсутствуют жесткие требования на время обработки сигналов прерывания внешних устройств. Организация системы прерываний в микроЭВМ с использованием векторов прерываний позволяет устранить указанный недостаток. При такой организации системы прерываний ВУ, запросившее обслуживания, само идентифицирует себя с помощью вектора прерывания - адреса ячейки основной памяти микроЭВМ, в которой хранится либо первая команда подпрограммы обслуживания прерывания данного ВУ, либо адрес начала такой подпрограммы. Таким образом, процессор, получив вектор прерывания, сразу переключается на выполнение требуемой подпрограммы обработки прерывания. В микроЭВМ с векторной системой прерывания каждое ВУ должно иметь собственную подпрограмму обработки прерывания.

Различают векторные системы с интерфейсным и внеинтерфейсным вектором. В первом случае вектор прерывания формирует контроллер ВУ, запросившего обслуживания, во втором - контроллер прерываний, общий для всех устройств, работающих в режиме прерываний (IBM-совместимые персональные компьютеры).

Аппаратный опрос готовности ВУ производится гораздо быстрее, нежели программный. Но если обслуживания запросили одновременно два или более ВУ, обслуживание менее приоритетных ВУ будет отложено на время обслуживания более приоритетных, как и в системе прерывания с программным опросом. Рассмотренная векторная система прерываний практически полностью соответствует системе прерываний, реализованной в микроЭВМ "Электроника-60". Восьмиразрядный вектор прерывания в "Электронике-60" указывает одну из ячеек памяти с адресами от 0 до (376)8, в которой размещается адрес начала подпрограммы обработки прерывания.

В следующей за указанной вектором прерывания ячейке памяти хранится новое содержимое регистра состояния процессора, загружаемое в него при переключении на подпрограмму обработки прерывания. Один из бит нового содержимого регистра состояния процессора запрещает или разрешает прерывания от других ВУ, что позволяет ВУ с более высоким приоритетом прерывать подпрограммы обслуживания ВУ с меньшим приоритетом и наоборот. Векторная система с внеинтерфейсным вектором прерывания используется в IBM-совместимых персональных компьютерах. В этих компьютерах контроллеры внешних устройств не имеют регистров для хранения векторов прерывания, а для идентификации устройств, запросивших обслуживания, используется общий для всех ВУ контроллер прерываний

Приложение

Алгоритм обработки прерывания.

Изменение состояния памяти и регистров процессора в процессе обработки прерывания: а -- вход в подпрограмму обработки прерывания; б -- завершение подпрограммы обработки прерывания.

Схема подключения контроллеров прерываний INTEL 82C59A к микропроцессору INTEL 80386

Программируемый контроллер интерфейса INTEL82C55A: а)блок-схема; б) назначение выводов микросхем.

Подключение клавиатуры и дисплея контроллеру интерфейса INTEL 82C55A.

Список литературы

1. Духнич Е.И., Андреев А.Е., Организация вычислительных машин и систем:Учебн. пособие/ВолгГТУ, Волгоград, 2003.-80с.

2. Луценко Е.В. «Вычислительные машины» - Краснодар. 2000.

3. Тертышный В.Т. «История персонального компьютера» - М. 2002.

4. Уильям Столлингс «Структурная организация и архитектура компьютерных систем». - М 2002г.

5. www.intuit.ru - “Интернет Университет”, портал дистанционного образования.

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.