Скачать презентацию Организация ЭВМ и систем Лекция 6 Организация ввода-вывода Скачать презентацию Организация ЭВМ и систем Лекция 6 Организация ввода-вывода

Org-EVM-6.ppt

  • Количество слайдов: 9

Организация ЭВМ и систем Лекция 6 Организация ввода-вывода Организация ЭВМ и систем Лекция 6 Организация ввода-вывода

Ввод-вывод Общий принцип: устройство В/В и процессор обмениваются элементами данных (словами) используя соединяющую их Ввод-вывод Общий принцип: устройство В/В и процессор обмениваются элементами данных (словами) используя соединяющую их шину. Регистры, в которые пишет/читает процессор. Могут отображаться либо на АП ОП (в/в с отображением в память; для чтения/записи используются те же команды, что и для RW в память), либо на специальное АП в/в (в этом случае используются специальные команды в/в). Проблема синхронизации: как процессору после считывания кода нажатой клавиши узнать когда нажата следующая (чтобы не считать 2 раза одно и то же слово или не «прозевать» очередное нажатие). Общее решение – квитирование (подтверждение): устройство-отправитель сигнализирует о том, что оно подготовило очередную порцию данных, а устройство-получатель – о том, что оно прочитало очередную порцию данных и готово к приему следующей.

Ввод-вывод Два способа организации квитирования: 1. Программно управляемый ввод/вывод: процессор сам периодически опрашивает флаги Ввод-вывод Два способа организации квитирования: 1. Программно управляемый ввод/вывод: процессор сам периодически опрашивает флаги готовности устройств. 2. Прерывания: устройства сигнализируют процессору о готовности к в/в по специальным линиям. Программно управляемый в/в: Клавиатура, по нажатию клавиши, пишет ее код в DATAIN и ставит флаг SIN (значит данные готовы для чтения процессором). Процессор в очередном цикле «заглядывает» в SIN, видит там 1, читает данные из DATAIN и снимает SIN (значит клавиатура может писать в DATAIN код следующей клавиши). Аналогично - при выводе на дисплей. Процессору приходится тратить много времени на бесполезные опросы в ожидании установки флагов, т. к. устройства в/в обычно медленные. Выход – прерывания или ПДП.

Ввод-вывод. Прерывания. Устройства сигнализируют процессору о готовности к в/в посылая ему сигнал (запрос прерывания) Ввод-вывод. Прерывания. Устройства сигнализируют процессору о готовности к в/в посылая ему сигнал (запрос прерывания) по специальным линиям (линиям запроса прерывания). Вследствие асинхронности запросов прерывания возникает специфическая проблема: запрос может поступить в любой момент, в т. ч. когда процессор занят выполнением какой-либо программы. Решение: При поступлении запроса прерывания процессор приостанавливает выполнение текущей программы, сохраняет ее состояние и переходит к выполнению программы-обработчика данного запроса. По окончании обработки прерывания восстанавливается процесс выполнения прерванной программы.

Прерывания в Intel Architecture (IA) У Intel-ов 2 линии прерывания – INT и NMI. Прерывания в Intel Architecture (IA) У Intel-ов 2 линии прерывания – INT и NMI. Для подключения б. Ольшего количества устройств используют PIC. Номер вектора d 7 IRQ 7 … d 0 Буфер данных IRQ 6 ISR IMR IRR … Flags TF IF Арбитр приоритетов Схема управления IRQ 0 Процессор INTR PIC – Programmable Interrupt Controller INTA

Прерывания в Intel Architecture (IA) IRR – Interrupt Request Register. Если по i-й линии Прерывания в Intel Architecture (IA) IRR – Interrupt Request Register. Если по i-й линии пришел запрос, то i-й разряд : = 1 IMR – Interrupt Mask Register. Если i-й разряд = 1, то запросы по IRQi не обрабатываются. ISR – Interrupt Service Register. Если i-й разряд = 1, то значит IRQi в данный момент обслуживается (и менее приоритетный запрос будет ждать). По умолчанию, чем меньше номер линии IRQ, тем выше ее приоритет, но можно и перепрограммировать схему определения приоритетов на: «по кругу» или «пока не спросят» (Poll Mode – режим опроса). При поступлении IRQ cхема управления выдает процессору общий сигнал прерывания INTR и выдает на шину номер вектора прерывания. Если процессор принимает запрос на обработку, он выдает INTA. Применяется векторная техника определения источника запроса: вместе с сигналом процессору на шину данных (линии d 0 -d 7) ставится номер вектора запроса, по которому потом можно определить – какая программа должна обрабатывать запрос.

Прерывания в Intel Architecture (IA) Флаги процессора IF – Interrupt Flag, TF – Tracing Прерывания в Intel Architecture (IA) Флаги процессора IF – Interrupt Flag, TF – Tracing Flag IF = 1 – прерывания разрешены; IF = 0 – прерывания запрещены; TF =1 – режим трассировки (пошаговое выполнение): после каждой команды управление передается отладчику.

Прерывания в Intel Architecture (IA) IRQi IRRi : = 1 К обработке более приоритетного Прерывания в Intel Architecture (IA) IRQi IRRi : = 1 К обработке более приоритетного запроса Да Есть более приоритетный запрос? PIC Нет INTR Да IF = 1 ? IRRi : = 0 INTA Нет Запрос «повисает» IF : = 0 ISRi : = 1 Формирование номера вектора Процессор Обработка прерывания ISRi : = 0

Прямой доступ к памяти (ПДП) DMA – Direct Memory Access Идея – управлять процессом Прямой доступ к памяти (ПДП) DMA – Direct Memory Access Идея – управлять процессом в/в без участия процессора (выставлять управляющие сигналы, адрес и данные на шину). Хорошо для пересылки крупных блоков данных – процессор «говорит» контроллеру ПДП сколько байтов и начиная откуда читать/писать и все, может заниматься вычислениями, а в/в управляет контроллер). Регистры контроллера ПДП DONE – устан. в 1 по окончании пересылки. R/W – задает операцию. Если IE=1, то по завершении пересылки контроллер ПДП выдает сигнал прерывания и IRQ: =1. Иначе – Poll Mode