47901 (572093), страница 2

Файл №572093 47901 (Организация прерываний в ЭВМ) 2 страница47901 (572093) страница 22016-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Проектирование механизма обработки прерываний

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

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

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

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

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

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

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

Один из таких подходов предполагает программный опрос источников - модулей ввода-вывода — при получении процессором сигнала запроса прерывания. Опрос выполняется в самом начале выполнения подпрограммы обработки прерывания, сразу же за сохранением состояния регистров процессор стеке. Для того чтобы такой опрос был возможен, в составе системной магистрали должна быть предусмотрена отдельная линия для передачи сигнала опроса (линия 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, еще две дополнительных.

Характеристики

Тип файла
Документ
Размер
21,72 Mb
Учебное заведение
Неизвестно

Список файлов ответов (шпаргалок)

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7027
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее