Ввод/вывод управляемый прерыванием — КиберПедия 

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Ввод/вывод управляемый прерыванием

2020-03-31 68
Ввод/вывод управляемый прерыванием 0.00 из 5.00 0 оценок
Заказать работу

 

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

Самый простой тип установки прерываний, где процессор выполняет подпрограмму ветвь в некоторой определенному адресу, когда входное прерывание, обнаруженного процессора. Обратный адрес (местоположение следующей команды в программе, которая была прервана) сохраняется процессором, как часть процесса прерывания.

Если есть несколько устройств, которые способны прерывать процессор, то с этим простой схеме прерывания программа обработки прерывания должна изучить каждое устройство, чтобы определить, какой из них вызвал прерывание. Кроме того, так как только одно прерывание может быть обработано в то время, как правило, имеется аппаратная `` приоритетный кодер «, который позволяет устройству с наивысшим приоритетом, чтобы прервать процессор, если несколько устройств пытаются прервать процессор одновременно. На рисунке 4.8, `` рукопожатие из '' выходы будут подключены к приоритетным кодером для реализации этого типа I / O. другие соединения остаются одинаковыми. (Некоторые системы используют «систему приоритетов определить, какие из прерывающих устройств обслуживается первым.` `По цепочке` `по цепочке» приоритет разрешение Рассматриваются: позже).

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

Большинство современных компьютеров используют `` вектор прерываний. '' В вектореном прерывании, ответственность лежит на прерывающем устройстве предоставлять адрес в основной памяти к обслуживающей прерывание службе для этого устройства. Это означает, что конечно, что само устройство должны иметь достаточную `` информацию «, чтобы обеспечить этот адрес при запросе процессора, а также быть изначально запрограммированы' с этой информацией обращаться к процессору. Хотя несколько более сложным, чем простой системы прерываний, описанной ранее, векторные прерываний предоставляют такую значительное преимущество в скорости обработки прерываний и простоты реализации (т.е. отдельные процедура для каждого устройства), что этот метод почти повсеместно используются в современных компьютерных системах.

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

 


 

Временная диаграмма прерываний процессора при вводе-выводе.

 

Примерный код где применяется техника ввода-вывода управляемой прерыванием с использование аппаратного обеспечения и среды разработки конструктора Arduino:

 

int pin = 13;int state = LOW;setup()

{

pinMode (pin, OUTPUT);

attachInterrupt (0, blink, CHANGE);

}

Loop()

{

digitalWrite (pin, state);

}

Blink()

{

state =! state;

}

 

В приведенном примере мы настраиваем 13 порт на запись под переменную «ПИН» в то время как процедура обработчик прерывания под событие CHANGE на функцию «БЛИНК» (мигать) которая в свою чередует состояние диода, тем самым мы видим мигание, которое инициируется и поддерживается в циклической «бесконечной» функции LOOP которая посылает на порт «ПИН» значение состояние которое изначально задано, тем самым триггер при изменении сигнала на порт с диодом вызывает прерывание на обработчик BLINK который вновь инвертирует значение состояния, тем самым замыкая цикл.

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

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

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

Стандартная система получает миллионы прерываний в течение его эксплуатации, в том числе полурегулярной «Таймер» прерывание, которое периодически выполняет ОБСЛУЖИВАНИЕ и системные решения планирования. Он также может получать специальные виды прерываний, таких как НМИ (Немаскируемое прерываний) и SMI (System Management прерываний).

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

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

Пример 3.1. Просмотр прерываний в системе

Чтобы проверить тип и количество аппаратных прерываний, с помощью системы Linux, используйте команду кошка для просмотра

cat /proc/interrupts:

$ cat /proc/interruptsCPU1

: 13072311 0 IO-APIC-edge timer

: 18351 0 IO-APIC-edge i8042

: 190 0 IO-APIC-edge rtc0

: 118508 5415 IO-APIC-fasteoi acpi

: 747529 86120 IO-APIC-edge i8042

: 1163648 0 IO-APIC-edge ata_piix

: 0 0 IO-APIC-edge ata_piix

: 12681226 126932 IO-APIC-fasteoi ahci, uhci_hcd:usb2, radeon, yenta, eth0

: 3717841 0 IO-APIC-fasteoi uhci_hcd:usb3, HDA, iwl3945

: 0 0 IO-APIC-fasteoi uhci_hcd:usb4

: 577 68 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb5: 0 0 Non-maskable interrupts: 3755270 9388684 Local timer interrupts: 1184857 2497600 Rescheduling interrupts: 12471 2914 function call interrupts: 14555 15567 TLB shootdowns: 0 0 Thermal event interrupts: 0 0 Spurious interrupts: 0: 0

 

Вывод показывает, что различные типы аппаратного прерывания, сколько было получено, который CPU выполнял прерывания, и устройство, которое генерирует прерывание.

 


Поделиться с друзьями:

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

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

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.017 с.