Тема 3.7 Взаимосвязь с периферийными устройствами


 

INTERRUPTS и IRQ.

 

 

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

В самом простом случае понятие Interrupt обозначает прерывание последней выполняющейся программы. Принцип простой: CPU извещает через специальные линии (INT-линии), что один из элементов должен выполнить какую-то «важную работу», при этом речь может идти, например, о том, что нажата клавиша клавиатуры. Реакция на эти действия должна быть быстрой, и поэтому CPU прерывает работу выполняемого программного обеспечения, отмечая место, в котором остановилось выполнение программы, и переключается на устройство, которое вызвало прерывание. Этот процесс управляется обоими контроллерами прерываний (Interrupt Controllers), которые установлены в указанном ранее контроллере периферии 82C206.

Начиная с компьютера, имеющего CPU 80286, стандартно для PC предусмотрено 16 линий прерываний, часть которых резервируется системой, а часть может быть предоставлена для дополнительного оборудования, необходимого пользователю. Стандартное распределение линий прерываний и адресов портов ввода/вывода для основных компонентов PC приведено в таблицах 3.7.1. и 3.7.2.

 

Таблица 3.7.1. Стандартное распределение аппаратных прерываний

 

IRQ Назначение
прерывание от таймера
прерывание от клавиатуры
связь со вторым контроллером прерывания (каскадное прерывание)
COM2, COM4
COM1, COM3
LPT2
контроллер дисковода
LPT1
текущее время
свободен
свободен
свободен
свободен
сопроцессор
контроллер винчестера
свободен

 

Таблица 3.7.2. Стандартное распределение адресов ввода/вывода

 

Диапазон адреса Назначение
000 - 01F первый контроллер DMA
020 - 03F первый контроллер прерываний
040 – 05F таймер
060 – 06F контроллер клавиатуры
070 – 07F текущее время
080 – 09F регистр страниц DMA
0A0 – 0BF второй контроллер прерывания
0C0 – 0DF второй контроллер DMA
0F0 – 0FF сопроцессор
100 – 1EF свободен
1F0 – 1F8 контроллер винчестера
1F9 – 1FF свободен
200 – 20F игровой пор (джойстик)
210 – 217 свободен
220 – 24F свободен
250 – 277 свободен
278 – 27F LPT2
280 – 2EF свободен
2F8 – 2FF COM2
300 – 31F свободен
330 – 35F свободен
360 – 36F сетевая карта
370 – 377 свободен
378 – 37F LPT1
380 – 38F SDLC 2 (синхронное управление передачей данных 2)
390 – 39F свободен
3A0 – 3AF SDLC 1 (синхронное управление передачей данных 1)
3B0 – 3BF монохромная графическая карта, параллельный интерфейс (IBM PS/2)
3C0 – 3CF графическая карта EGA
3D0 – 3DF графическая карта CGA
3E0 – 3EF свободен
3F0 – 3F7 контроллер дисковода
3F8 – 3FF COM1

 

Однако, к сожалению, на практике не все так однозначно. Стандартные адреса портов и прерывания используются так, как было описано, не всеми изготовителями аппаратного обеспечения. К счастью, вы можете самостоятельно сконфигурировать плату расширения так, что это не приведет к конфликту между двумя прерываниями или даже адресами портов. Но такое разделение прерываний всегда зависит от имеющихся устройств. Может случиться, что мышь, установленная в первый последовательный порт (COM1), и модем, коммутируемый в третий порт (COM3), будут использовать одинаковые прерывания, что приведет к абсолютному хаосу данных для обоих устройств.

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

Назначение прерывания заключается в приостановке выполнения текущей программы, вызова и выполнение программы обработки данного прерывания.

Аппаратные прерывания делятся на маскируемые и не маскируемые прерывания.

Маскируемые прерывания это такие прерывания, которые в процессе работы ЭВМ, выполнения программ можно запретить (замаскировать). К таким прерываниям относятся все прерывания от внешних устройств.

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

В CPU приходят два сигнала : MNI – немаскируемые прерывание и INTR – запрос на маскируемое прерывание. Современные микросхемы поддерживают алгоритм работы такой, какой был установлен для отдельных контроллеров 8259 или отечественный аналог 1810ВН59 – программируемый контроллер прерываний ПКП. В дальнейшем будем рассматривать отдельные контроллеры.



Дата добавления: 2017-06-13; просмотров: 1074;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.013 сек.