Эволюция устройств ввода-вывода

  1. Процессор сам управляет всем процессом ввода-вывода
  2. К устройству добавляется контроллер ( модуль) ввода-вывода. При этом процессор, встречая команду ввода-вывода, передает контроллеру что и куда нужно вывести, а вводом выводом занимается контроллер. Процессор все это время ждет завершения операции ввода-вывода.
  3. Кроме контроллера ввода-вывода используется система прерываний т.е. процессор не ждет выполнения операции ввода-вывода контроллером, а продолжает свою работу. Контроллер по завершении операции ввода-вывода посылает сигнал прерывания процессору, по которому тот прерывает работу с другой программой и продолжает выполнение той, в которой была команда ввода-вывода.
  4. Введение прямого доступа к памяти (DMA). Процессор при необходимости передать блок данных в память ( или обратно) обращается к модулю DMA, который выполняет это перемещение без участия процессора.
  5. Модуль ввода-вывода становится отдельным процессором с системой команд для ввода-вывода. Центральный процессор дает команду процессору ввода-вывода выполнить программу ввода-вывода, находящуюся в ОП. Процессор ввода-вывода самостоятельно выбирает команды программы из памяти и выполняет их.
  6. Модуль ввода-вывода имеет свою оперативную память ( ОП). Это используется для управления связью с терминалами ( процессор ввода-вывода сам занимается управлением терминалами и использует для этого свою память)

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

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

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

Модуль DMA способен дублировать функции процессора для передачи данных по системной шине. CPU передает ему информацию о:

· типе операции ( чтение или запись)

· адресе устройства ввода-вывода

· начальный адрес области ОП

· количество слов для передачи в ОП

После передачи этой информации CPU продолжает свою работу с другой задачей, а DMA занимается передачей данный в ОП, после которой посылает CPU сигнал прерывания о завершении передачи. Однако, т.к. и CPU и DMA для работы с ОП используют одну системную шину, то DMA приходится все время приостанавливать работу процессора для выполнения передачи. Однако, приостановка не подразумевает сохранение состояния регистров процессора, и, следовательно, не занимает дополнительное время. Просто CPU приостанавливает работу на 1 цикл системной шины.

 

Связь с системной шиной можно изобразить на схеме: ....

 
 

 


Для ускорения работы DMA были разработаны новые принципы:

1. Встраивание модуля DMA в контроллер ввода-вывода: в этом случае для передачи данных к устройству не используется системная шина

 

2. Создание отдельной шины ввода-вывода: устройство DMA передает данные устройствам через отдельную шину, не используя системную: