Тема 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; просмотров: 1389;











