Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

6_Управление вводом-выводом

.pdf
Скачиваний:
32
Добавлен:
18.03.2015
Размер:
2 Мб
Скачать
☆

Windows Help

IRQ

(c) 2008 Арьков В.Ю.

21

Interrupt request (IRQ)

Прерывания

•Ввод данных через прерывания

•Устройство ввода информации реагирует на внешние события:

–мышь – на вращение шарика и нажатие кнопок

–клавиатура – на нажатие и отпускание клавиши

•Обмен данными может происходить по инициативе процессора или УВВ:

–программные прерывания

–аппаратные прерывания

(c) 2008 Арьков В.Ю.

22

Программные прерывания

•При работе с УВВ через прерывания процессор вызывает соответствующее прерывание BIOS или ОС для выполнения операций ВВ

•Пример вывода текста на экран через 10-е прерывание BIOS

–MOV AL, 58H ; помещаем в регистр AL ASCII-код символа X

–MOV AH, 9 ; помещаем в регистр АH число 9 – код функции вывода символа на экран

–INT 10H ; вызываем прерывание 10-го типа (обмен данными с дисплеем)

–Выполняется программа обработки 10-го прерывания, которая читает содержимое регистров и выводит символ Х на экран. Все действия выполняются процессором.

Прерывание ОС

•Ввод символа по инициативе программы –

21-е прерывание DOS:

–MOV AH, 1 ; код операции ввода символа с клавиатуры

–INT 21H ; вызов прерывания

•Компьютер ожидает нажатия клавиши и записывает код клавиши в регистр AL

•Фактически здесь происходит считывание кода клавиши из буфера клавиатуры.

(c) 2008 Арьков В.Ю.

23

Аппаратные прерывания

•Ввод по инициативе устройства

–Клавиатура при нажатии и отпускании клавиши вызывает аппаратное прерывание

–При обработке этого прерывания код клавиши помещается в буфер клавиатуры

•Это несколько ячеек памяти, работающих по принципу

FIFO

•Привязка УВВ к номерам аппаратных прерываний (выбор номеров IRQ) делается при установке и настройке ОС

–Plug-and-play

–Автоматическая настройка устройств и установка драйверов

DMA

(c) 2008 Арьков В.Ю.

24

DMA

Прямой доступ к памяти

•Direct Memory Access (DMA)

•Процессор не участвует в передаче данных, а поручает работу по ВВ контроллеру DMA

•DMA-контроллер получает доступ к системной шине независимо от работы центрального процессора

•Пример организации ввода информации с диска через ПДП.

–Процессор программирует контроллер: записывает в управляющие регистры DMA-контроллера адрес в ОЗУ, количество данных, номер устройства и код операции

–Затем контроллер самостоятельно получает данные с диска и записывает их в ОЗУ. Контроллер DMA (в цикле) отправляет контроллеру диска запрос на чтение с диска и запись в ОЗУ. В это время процессор продолжает свою работу

–После завершения передачи данных контроллер DMA вызывает прерывание работы процессора и сообщает ему о завершении операции: Данные в памяти, их можно использовать

(c) 2008 Арьков В.Ю.

25

 

 

DMA

 

 

ПДП контр-р

 

 

 

Адрес

 

Диск

 

 

 

ЦП

Счетчик

К-р

ОЗУ

 

 

диска

 

 

Устройство

 

 

 

Операция

 

 

 

 

Шина

 

(c) 2008 Арьков В.Ю.

26

Hard disk: Test data rate

• DMA

no DMA

 

 

 

 

(c) 2008 Арьков В.Ю.

27

I/O port

(c) 2008 Арьков В.Ю.

28

Port

Порт

•Команды процессора:

–чтение/запись в ОЗУ (MOV)

–чтение/запись в порт (IN, OUT)

•IN REG, PORT

•OUT PORT, REG

•Адресные пространства портов и памяти не пересекаются

–Ячейка номер 200 и порт номер 200 – это разные адреса

–Процессор 8088 позволяет адресовать 256 портов непосредственно и 64К портов косвенно. Как и ячейка памяти, порт может быть 8- и 16-битовым (байт или слово)

•Пример работы с портами:

–IN AL, 200 ; ввести байт из порта номер 200 в младший байт регистра А

–OUT DX, AX ; записать в порт, номер которого записан в регистре DX, слово из регистра AX

(c) 2008 Арьков В.Ю.

29

I/O address

I/O address

(c) 2008 Арьков В.Ю.

30