ПДП С БЛОКИРОВКОЙ ПРОЦЕССОРА
Этот режим отличается от ПДП с "захватом цикла" тем, что управление системным интерфейсом передается контроллеру ПДП не на время обмена одним байтом, а на время обмена блоком данных. В этом случае все вопросы, связанные с синхронизацией работы ПУ и ОП, также решаются контроллером ПДП (в режиме "захвата цикла" их фактически решал процессор). Такой режим ПДП особенно необходим в тех случаях, когда процессор не успевает выполнить хотя бы одну команду между очередными операциями обмена в режиме ПДП. В этом случае контроллер ПДП обязательно должен иметь средства для модификации адресов обмена и контроля объема переданного блока информации. Этот режим ПДП в современных ЭВМ является основным, поскольку современные ПУ, такие как жесткие и оптические диски, видеосистемы, принтеры, сканеры и т.д., всегда ведут обмен блоками информации существенного объема.
Следует отметить, что реальные контроллеры ПДП, как правило, могут работать в различных режимах организации ПДП, зачастую комбинированных, поэтому рассмотренные выше варианты организации ПДП являются весьма условными (особенно ПДП с блокировкой процессора и вариант 2 ПДП с захватом цикла).
Конкретные технические реализации каналов ПДП весьма разнообразны и определяются особенностями организации ЭВМ, используемого в ней процессора, обслуживаемого набора ПУ и т.д. Между тем можно сформулировать основные принципы работы большинства каналов ПДП и построить обобщенный алгоритм их функционирования. В частности, применение в ЭВМ обмена в режиме ПДП требует предварительной подготовки со стороны процессора:
- Для каждого ПУ необходимо выделить область памяти, используемой при обмене, и указать ее размер, т.е. количество записываемых в память или читаемых из памяти байтов (слов) информации. Следовательно, контроллер ПДП должен обязательно иметь в своем составе регистры адреса и счетчик байтов (слов).
- Перед началом обмена с ПУ в режиме ПДП процессор должен выполнять программу загрузки (инициализации). Эта программа обеспечивает запись в указанные регистры контроллера ПДП начального адреса выделенной области памяти (для данного ПУ) и ее размера в байтах или в словах в зависимости от того, какими единицами информации ведется обмен.
Вышеизложенное не относится к начальной загрузке программ в память микроЭВМ в режиме ПДП. В этом случае содержимое регистров адреса и счетчика байтов устанавливается перемычками или переключателями, т.е. принудительно заносится каким-либо способом.
Упрощенный алгоритм обмена блоком информации в режиме ПДП при наличии нескольких ПУ представлен на рис. 8.3, причем в скобках указано устройство, выполняющее операцию.
Структура представленного алгоритма достаточно проста и не требует дополнительных пояснений. Все операции, выполняемые устройствами в процессе передачи блока данных, рассматривались выше. Если в контроллер ПДП одновременно поступило два или более запросов, то после обслуживания наиболее приоритетного ПУ произойдет обслуживание остальных ПУ в порядке уменьшения приоритетов. Для этого контроллер ПДП опять выставит процессору сигнал HLD, и цикл обмена повторится для другого ПУ.
Следует отметить, что контроль за окончанием цикла обмена (объемом переданного блока информации) может осуществляться не только по количеству переданных байт или слов, но и по конечному адресу зоны памяти, отведенной для обмена с данным ПУ. Кроме того, в реальных системах время удержания магистрали контроллером ПДП при обслуживании одного ПУ всегда ограничено и контролируется, поэтому завершение цикла обмена может произойти также по сигналу специального таймера. Более подробно этот вопрос рассматривается в гл. 11.
Как уже отмечалось, в МП комплект КР580 входит специализированная БИС программируемого контроллера ПДП КР580ВТ57. Этот контроллер может управлять работой четырех независимых каналов ПДП с учетом приоритетов ПУ. Для процессора контроллер представляется несколькими 8-битными регистрами с соответствующими номерами. После инициализации контроллер может управлять передачей блока данных до 16 Кбайт по каждому каналу без вмешательства процессора.