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

Организация прерываний в ЭВМ

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

Брянский государственный технический университет

Курсовая работа

по Организации ЭВМ

На тему: «Организация прерываний в ЭВМ».

Выполнил:

Проверил:

Новозыбков 2007г.

Содержание

Введение

Ввод-вывод по прерыванию

Обработка прерывания

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

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

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

Заключение

Приложение

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

Введение

Одной из разновидностей программно-управляемого обмена данными с ВУ в микроЭВМ является обмен с прерыванием программы, отличающийся от асинхронного программно-управляемого обмена тем, что переход к выполнению команд, физически реализующих обмен данными, осуществляется с помощью специальных аппаратных средств. Команды обмена данными в этом случае выделяют в отдельный программный модуль - подпрограмму обработки прерывания. Задачей аппаратных средств обработки прерывания в процессоре микроЭВМ как раз и является приостановка выполнения одной программы (ее еще называют основной программой) и передача управления подпрограмме обработки прерывания. Действия, выполняемые при этом процессором, как правило, те же, что и при обращении к подпрограмме. Только при обращении к подпрограмме они инициируются командой, а при обработке прерывания - управляющим сигналом от ВУ, который называют "Запрос на прерывание" или "Требование прерывания".

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

Обычно задача сохранения содержимого счетчика команд и регистра состояния процессора возлагается на аппаратные средства обработки прерывания. Сохранение содержимого других регистров процессора, используемых в подпрограмме обработки прерывания, производится непосредственно в подпрограмме. Отсюда следует достаточно очевидный факт: чем больший объем информации о прерванной программе сохраняется программным путем, тем больше время реакции микроЭВМ на сигнал прерывания, и наоборот. Предпочтительными с точки зрения повышения производительности микроЭВМ (сокращения времени выполнения подпрограмм обработки, а, следовательно, и основной программы) являются уменьшение числа команд, обеспечивающих сохранение информации о прерванной программе, и реализация этих функций аппаратными средствами. Формирование сигналов прерываний - запросов ВУ на обслуживание происходит в контроллерах соответствующих ВУ. В простейших случаях в качестве сигнала прерывания может использоваться сигнал "Готовность ВУ", поступающий из контроллера ВУ в системный интерфейс микроЭВМ. Однако такое простое решение обладает существенным недостатком - процессор не имеет возможности управлять прерываниями, т. е. разрешать или запрещать их для отдельных ВУ. В результате организация обмена данными в режиме прерывания с несколькими ВУ существенно усложняется.

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

Ввод-вывод по прерыванию

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

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

Рассмотрим, как реализуется эта методика. Начнем с операций, выполняемых модулем ввода-вывода. При вводе данных модуль получает от процессора команду READ. Затем модуль самостоятельно выполняет все действия, необходимые для того, Чтобы получить от внешнего устройства очередную порцию данных и записать ее в свой буфер После этого модуль формирует сигнал запроса прерывания процессора на одной из линий управления системной магистрали и ждет, пока от процессора не поступит команда выставить содержимое регистра на линии данных. Когда такой сигнал поступает, модуль выставляет информацию на линии данных и после этого готов принять следующую команду обмена от процессора.

Участие процессора во всей этой процедуре выглядит следующим образом. Во-первых процедура начинается по инициативе процессора, который передает модулю команду READ. После этого процессор может перейти к выполнению дальнейших инструкций программы, не связанных с затребованными данными (ответственность зато, что в этих инструкциях не используются данные, которые ожидается получить от внешнего устройства, возлагается на программиста), или вообще переключиться на выполнение другой программы. В конце каждого цикла выполнения инструкции. Процессор проверяет, не поступил ли сигнал запроса прерывания. Если окажется, что такой сигнал поступил от модуля ввода-вывода, процессор выполняет операции, сохраняющие текущий контекст выполняемой программы (т.е. состояние счетчика команд и внутренних регистров), и переключается на программу прерывания. Эта программа, в частности, может выполнять считывание данных с модуля ввода-вывода и передачу их в оперативную память. После завершения программы обработки прерывания процессор восстанавливает сохраненный контекст прерванной программы и возобновляет ее выполнение с той же точки, как будто никакого прерывания и не было.

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

Обработка прерывания

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

1. Модуль ввода-вывода формирует сигнал запроса прерывания, который предназначается процессору.

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

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

4. Процессор выполняет действия, предшествующие передаче управления по программе обработки прерывания. Прежде всего нужно позаботиться о сохранении текущего состояния процессора, что позволит в дальнейшем возобновить выполнение прерванной программы с той же точки. Здесь нужно обратить внимание на то, что в этот момент в счетчике команд процессора находится адрес команды, которая должна была бы выполняться процессором, если бы не произошло прерывание. Эту команду (а точнее, ее адрес) принято называть точкой прерывания, и она же является точкой возврата из прерывания. Поэтому процессор должен каким-то образом сохранить состояние счетчика команд, регистра состояния, который содержит слово состояния процессора PSW (processor status word). Как правило, эта информация помещается в системный стек.

5. Затем процессор загружает в счетчик команд начальный адрес программы (подпрограммы) обработки прерывания. В разных компьютерах и разных операционных системах эта операция выполняется по-разному. В одних -- каждый источник прерывания (модуль ввода-вывода, вызвавший прерывание) имеет свою подпрограмму обработки, в других -- прерывания разбиты на группы и каждая группа имеет свою программу обработки, а в третьих -- вообще существует одна программа обработки всех прерываний, внутри которой происходит ветвление в соответствии с конкретным источником прерывания. Если архитектура системы предусматривает наличие множества подпрограмм обработки прерываний, то информацию о том, какую именно подпрограмму нужно вызывать в каждом конкретном случае, процессор должен получать вместе с самим сигналом запроса прерывания. Другой вариант процессор получает ее от устройства, инициировавшего прерывание, в ответ на сигнал подтверждения. Как только в счетчик команд будет помещен адрес подпрограммы, процессор начнет новый цикл выполнения команды. Первой фазой цикла будет извлечение команды, адрес которой находится в счетчике. В результате процессор приступит к выполнению заданной подпрограммы обработки прерывания. Что именно будет при этом сделано, определяет программист, который разработал подпрограмму.

6. Перед передачей управления подпрограмме обработки прерывания процессор аппаратными средствами выполнил сохранение счетчика команд и PSW в системном стеке. Но помимо этой информации для возобновления прерванной программы может потребоваться и восстановление состояния других регистров процессора. Поэтому, как правило, первые команды подпрограммы обработки сохраняют в стеке состояния всех остальных регистров процессора, поскольку они могут понадобиться самой подпрограмме и, следовательно, их содержимое к моменту завершения подпрограммы будет изменено. В Приложении рис.2 (а) показано, что при этом происходит. В данном случае пользовательская программа была прервана в тот момент, когда выполняла команду, хранящуюся по адресу N. Аппаратно в стек помещается содержимое счетчика команд, каким оно было в момент завершения выполнения этой команды -- N+1, а в счетчик команд заносится начальный адрес подпрограммы обработки Y. Сама подпрограмма затем помещает в стек содержимое регистров процессора, в результате чего указатель стека смещается и после завершения сохранения регистров будет указывать на ячейку Т.

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

8. После завершения обработки подпрограмма восстанавливает содержимое в регистрах, которое было сохранено в стеке в самом начале выполнения подпрограммы (Приложение рис.2 (б)), и только после этого выполняет последнюю команду -- команду возврата из прерывания.

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

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

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

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



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