ПДП С ЗАХВАТОМ ЦИКЛА

Этот способ ПДП предназначен для обмена короткими блоками информации в виде байта или слова и имеет два варианта:

 

Вариант 1

В этом случае для обмена используются те интервалы времени машинного цикла процессора, в которых он не обменивается данными с памятью и ПУ. Таким образом, контроллер ПДП никак не мешает работе процессора. В МП КР580 такими интервалами являются такты T4 и Т5 машинного цикла (сразу следует отметить, что контроллер КР580ВТ57 не работает в таком режиме). Однако возникает необходимость выделения таких интервалов для исключения временного перекрытия обмена ПДП и процессора. В некоторых МП формируются специальные сигналы, указывающие такты, в которых процессор не ведет операций обмена. В других случаях применяют специальные схемы, идентифицирующие "свободные" интервалы времени.

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

 

Вариант 2

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

Когда ПУ готово к обмену, оно формирует сигнал "требование ПДП", который поступает в контроллер ПДП. Он, в свою очередь, вырабатывает аналогичный управляющий сигнал, который заставляет процессор на несколько тактов отключиться от системной магистрали. В МП КР580 это сигнал HLD (HOLD). Получив этот сигнал, процессор приостанавливает выполнение очередной команды, не дождавшись ее завершения, выдает сигнал "подтверждение ПДП" (в МП КР580 это сигнал HLDA) и отключается от шин системной магистрали. МП КР580 освобождает системную магистраль после такта Т3 текущего машинного цикла, причем внутренние операции в процессоре (такты Т4 и Т5) продолжаются и могут быть совмещены по времени с операциями ПДП.

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

С этого момента времени (такт Т4) всеми шинами системной магистрали управляет контроллер ПДП. Используя системную магистраль, он осуществляет обмен между ПУ и микроЭВМ одним байтом или словом, а затем, сняв сигнал HLD, возвращает управление системной магистралью процессору. Как только ПУ будет готово к обмену, оно вновь захватывает магистраль и т.д. В промежутках между сигналами HLD процессор продолжает выполнять команды текущей программы.

Естественно, что применение такого способа организации ПДП замедляет выполнение программы, но в меньшей степени, чем при обмене в режиме прерывания, хотя бы потому, что не требуется операций со стеком. Кроме того, в отличие от варианта 1 обмен происходит в те моменты времени, в которые это требует ПУ, что особенно важно при работе микроЭВМ в режиме реального времени.

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