5.2. Способы организации передачи данных

В подсистемах ввода-вывода ЭВМ используются два основных способа организации передачи данных между памятью и ПУ: программно-управляемая передача и прямой доступ к памяти (ЦДЛ).

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

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

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

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

Таким образом, ПДП, разгружая процессор от обслуживания ввода-вывода, способствует возрастанию общей производительности ЭВМ. Повы­шение предельной скорости ввода-вывода информации делает машину более приспособленной для работы в системах реального времени. Прямым досту­пом к памяти управляет контроллер ПДП (рис. 5.1), который выполняет сле­дующие функции:

1. Управление инициируемой процессором или ПУ передачей данных между ОП и ПУ.

2. Задание размера блока данных, который подлежит передаче и облас­ти памяти, используемой при передаче.

Формирование адресов ячеек ОП, участвующих в передаче.

4. Подсчет числа единиц данных (байт, слов), передаваемых от ПУ в ОП или обратно, и определение момента завершения заданной операции ввода-вывода.

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

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

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

В современных ЭВМ используется как программно-управляемая переда­ча данных, так и прямой доступ к памяти.

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