91
отношению к процессору, которые идентифицируют такие "свободные" интервалы
времени.
Применение подобного варианта организации ПДП не снижает производитель-
ность процессора, но передача данных происходит только в случайные моменты
времени. Это понижает общую скорость обмена. Кроме того, для некоторых ПУ, та-
кой режим обмена вообще неприемлем.
Вариант 2. На время, необходимое для обмена одним байтом или словом дан-
ных (что составляет несколько тактов), процессор принудительно отключается от
шин системной магистрали. Такой способ организации ПДП с захватом цикла явля-
ется наиболее распространенным.
Когда ПУ готово к обмену, оно формирует сигнал ЗПД, который поступает в
контроллер ПДП. Он, в свою
очередь, вырабатывает аналогичный управляющий
сигнал (ОЗПД), который поступает в процессор. Сигнал ОЗПД формируется кон-
троллером при появлении сигнала (сигналов) ЗПД на любой линии (линиях) ЛЗПД и
заставляет процессор на несколько тактов отключиться от системной магистрали.
Получив этот сигнал, процессор заканчивает операции обмена на магистрали. За-
тем, не дожидаясь завершения текущей команды
(или машинного цикла), выдает в
контроллер ПДП сигнал РПД и отключается от шин системной магистрали. При этом
внутренние операции в процессоре по завершению текущей команды (или машинно-
го цикла) продолжаются и могут быть совмещены по времени с операциями ПДП.
С этого момента времени всеми шинами системной магистрали управляет кон-
троллер
ПДП. Используя системную магистраль, он осуществляет обмен между ПУ и
ОП одним байтом или словом, а затем, сняв сигнал ОЗПД, возвращает управление
системной магистралью процессору. Как только ПУ вновь будет готово к обмену, оно
формирует сигнал ЗПД, контроллер ПДП захватывает магистраль, и цикл обмена
повторяется. В промежутках между сигналами ЗПД процессор
продолжает выпол-
нять команды текущей программы.
Таким образом, в отличие от режима прерывания, который вводится только по-
сле завершения текущей команды, режим ПДП вводится, не дожидаясь ее заверше-
ния. Это связано с тем, что в режиме ПДП внутренние регистры процессора не ис-
пользуются, их содержимое не модифицируется, а следовательно, и
не требует за-
поминания в стеке.
Естественно, что применение такого способа организации ПДП замедляет вы-
полнение программы, но в меньшей степени, чем при обмене в режиме прерывания.
Кроме того, в отличие от варианта 1 обмен происходит в те моменты времени, в ко-
торые это требует ПУ, что особенно важно при работе микроЭВМ
в режиме реально-
го времени.
Следует отметить, что такой вариант ПДП используется только тогда, когда ин-
тервалы времени между моментами готовности ПУ к обмену достаточно велики и
позволяют выполнить процессору несколько операций.
ПДП с блокировкой процессора
Этот режим отличается от ПДП с "захватом цикла" тем, что управление систем-
ным интерфейсом передается контроллеру ПДП не на время обмена одним байтом
или словом, а на все время обмена блоком данных. В этом случае все вопросы, свя-
занные с синхронизацией работы ПУ и ОП, также решаются контроллером ПДП
(в
режиме "захвата цикла" их фактически решал процессор). Такой режим ПДП осо-
бенно необходим в тех случаях, когда процессор не успевает выполнить хотя бы од-
ну команду между очередными операциями обмена в режиме ПДП.
Режим ПДП с блокировкой процессора в современных ЭВМ является основ-
ным, поскольку современные ПУ, такие как жесткие и оптические диски, видеосисте-
мы, принтеры, сканеры и т.д., всегда ведут обмен блоками информации существен-
ного объема. Однако для их передачи контроллер ПДП должен удерживать магист-