Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник ОЭВМ Трусфус.doc
Скачиваний:
124
Добавлен:
12.03.2015
Размер:
4.82 Mб
Скачать

6.2.Теоретические основы операций ввода/вывода

Организация ввода/вывода – это передача данных между оперативной памятью (ОП) и периферийными устройствами (ПУ).

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

Управление вводом/выводом относится к нижнему физическому уровню управления средствами вычислительных систем. На базе операций этого уровня реализуются процедуры верхнего уровня управления, например, процедуры команд операционных систем и программных оболочек: сохранить файл, загрузить файл, копировать файл и т.д.

Для каждого типа ПУ используется устройство управления (контроллер, адаптер), алгоритмы работы которого учитывают индивидуальные особенности данного типа ПУ.

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

  • запись информации во внутреннюю память ПУ и чтение из нее,

  • управление адресацией внутренней памяти ПУ,

  • передача информации между ПУ и контроллером и, частично, контроль процесса ввода/вывода.

Решения другой части задач не зависят от физики работы отдельных ПУ и реализуются на уровне обмена логическими сигналами. На этом уровне решаются проблемы:

  • задания кода операции и адреса блока данных в ПУ,

  • передачи данных между ПУ и ОП,

  • синхронизации передачи данных,

  • контроля процесса ввода/вывода,

  • активизации и окончания работы ПУ.

Для организации ввода/вывода в контроллерах устройств ввода/вывода предусмотрены специальные регистры (основными являются регистр данных RDи регистр управленияRU), а в системе команд – команды ввода/вывода.

Управление вводом/выводом на этом уровне может быть реализовано двумя способами:

  • с использованием средств процессора. Такой ввод-вывод называется программным,

  • с использованием специальных устройств управления (процессоров ввода/вывода, устройств прямого доступа к памяти ПДП). Такой ввод-вывод называется аппаратным (внепроцессорным, с занятием цикла, с прямым доступом к памяти).

Программный ввод/вывод

При программном вводе/выводе контроллерами управляет ПР при помощи программы (драйвера) ввода/вывода. Программы этого типа учитывают конструкцию контроллера и используемого в вычислительной системе ПР и обычно входят в базовую систему программ управления вводом/выводом на физическом уровне (в РС – BIOS). Программы BIOS выполняют роль интерфейса между программами операционных систем и используемой аппаратурой вычислительной системы и обеспечивают переносимость операционных систем между ЭВМ с одинаковыми процессорами.

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

Адресация регистров контроллеров ввода/вывода, отображенных на общее адресное пространство оперативной памяти

В варианте ввода/вывода с отображением адресов портов в пространство оперативной памяти для процессора регистрыRDнеотличимы от ячеек памяти, и для доступа к ним можно использовать любую команду с обращением к ОП. В этом варианте для отдельных операций ввода/вывода достаточно использования команды пересылки MOV.

Команда MOV для PDP-11 имеет вид:

MOV A1, A2, где:

  • А1 – адрес источника,

  • А2 – адрес приемника.

Если в качестве А1 использовать адрес RD, а в качестве А2 – адрес ячейки ОП, то команда реализует передачу информации из ПУ в ОП (операция ввода). При этом производится передача из ПУ в ПР, а затем из ПР в ОП. Нетрудно заметить, что, используя в качестве А1 и А2 адреса РД, ОП и РОН, можно организовать все возможные варианты передачи информации, включая операции загрузки РОН как из ОП, так и из портов.

Адресация регистров контроллеров ввода/вывода, отображенных на номерное пространство портов

Если в программной модели процессора регистры контроллеров отображены на номерное пространство портов (например, в МП IA), то в состав команд процессора вводят команды ввода IN и вывода OUT. Для IBM PC эти команды имеют вид:

IN al, dx

OUT dx, al

где: al – РOН (младший байт аккумулятора), используется в качестве буфера для передаваемых данных,

dx – РОН, используется для задания номера порта.

Если номер порта не превышает 255, то возможно использование команд ввода/вывода в формате:

IN al, RD

OUT RD, al

где:

  • al – аккумулятор, используется в качестве буфера для передаваемых данных,

  • RD – номер порта.

Используя эти команды, можно запрограммировать различные варианты передачи информации при вводе/выводе. Например, передачу информации из ПУ в ОП (ввод) можно реализовать при помощи программы:

A_IN1: MOV dx, RD ; задание номера порта RD

IN al, dx ; пересылка содержимого RD в аккумулятор

MOV TABLE,al;пересылка данных из аккумулятора в

;ячейку TABLE оперативной памяти

или для RD < 256

A_IN2: IN al, RD; пересылка данных из порта в аккумулятор

MOV TABLE, al; пересылка данных в ОП

Приведенные блоки программы организуют передачу байта данных из ПУ в ОП и реализуют способ безусловной программной организации ввода. Безусловный программный вывод организуется аналогичным образом, но c использованием команды вывода.

Самостоятельное применение этих способов ввода/вывода ограничено тем, что они не учитывают независимость работы ПР и ПУ. Из-за отсутствия синхронизации передачи данных между ПУ и ПР возможна потеря информации или передача необновленных данных. Программы безусловного ввода/вывода обычно используются как часть условных способов ввода/вывода, учитывающих независимость работы ПУ и ПР.

Вопросы для самопроверки:

1. Определение операции ввода/вывода.

2. Определение программного ввода/вывода.

3. Определение прямого доступа к памяти.

4. Команды ввода/вывода в моделях семейства PDP-11.

5. Команды ввода/вывода в МП IA.

6. Недостатки безусловного программного ввода/вывода.