<<
>>

Прерывания

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

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

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

Физически порт представляет собой связанный с разъемом на корпусе или на шине компьютера буфер памяти, свойства которого аналогичны свойствам байта оперативной памяти. Отметим, что в связи с этим разъемы на корпусе компьютера также часто называются портами: например, порт LРТ1, связанный с принтером, или порт СОМ, к которому может подключаться мышь или модем.

Для организации обмена в системе команд процессора i8О86 предусмотрены две команды: ввода in (КОП = 11100 1 02) и вывода out (КОП = 11100112). Во время ввода переданный с внешнего устройства байт данных помещается в связанный с этим устройством порт, а затем по команде in программы этот байт из порта передается в фиксированный (всегда один и тот же) регистр аl процессора. Во время вывода, наоборот, процессор по команде out программы передает байт данных из регистра аl в указанный в команде порт, откуда этот байт попадает на внешнее устройство. Два восьмибитовых порта могут объединяться для получе- ния и передачи двухбайтового кода. В этом случае в обмене участвует регистр ах процессора. Еще раз отметим, что в операциях ввода/вывода участвует только регистр аl (или ах), это одна из его специализированных функций.

В процессоре i8О86 предусмотрено 216 = 65 536 портов. Каждый порт, так же как и каждый байт оперативной памяти, имеет номер, который также считается адресом. Совокупность номеров портов образует адресное пространство вво- да/вывода объемом 64 Кбайт, которое не зависит от адресного пространства оперативной памяти.

Выбор порта, к которому подключается то или иное внешнее устройство, может осуществляться программистом «вручную» или же производится операционной системой автоматически во время так называемого конфигурирования устрой- ства. Далее номер порта, с которым связано участвующее в обмене внешнее устройство, указывается в командах ввода/вывода in и out.

<< | >>
Источник: Степанов А. Н.. Архитектура вычислительных систем и компьютерных сетей. 2007

Еще по теме Прерывания:

  1. 7.3.2. Прерывания
  2. 7.4.4. Как справиться с прерыванием.
  3. 7.3.2. Прерывания
  4. Прерывание нотаций:
  5. Прерывание обвинений:
  6. Прерывание криков и ругани:
  7. 7.4.4. Как справиться с прерываниями
  8. Статья 281. Право на жизнь
  9. ПРЕПЯТСТВИЕ ВНЕШНЕЕ
  10. Статья 121. Умышленное тяжкое телесное повреждение
  11. М.Руссинович, Д.Соломон. Внутреннее устройство Microsoft Windows (главы 1–4), 2005
  12. Конфронтация.
  13. Термоядерная реакция при комнатной температуре
  14. Переживание смерти и воскресения
  15. Конфронтация