Пр о ц е с с о р TMS 3 2 0C4 x
72
Минимальный период синхронизации, при котором программа примера
способна обрабатывать данные без пропуска отсчетов в данном варианте син-
хронизации
T
д
=
T
обр
/
N
= [ (23
N
+10) /
N
] = 24 цикла.
Передача блоков возможна и по прерываниям, но в таком случае затраты
процессорного времени практически не отличаются от одиночной передачи.
Блоковая передача никогда не организуется по готовности.
Блоковая передача данных позволяет организовать перекрытие во време-
ни ввода / вывода и обработки, для чего используется несколько циклически
переключаемых буферов. Чаще всего применяется трехбуферная схема синхро-
низации, где в один буфер производится ввод, другой обрабатывается, а из
третьего осуществляется вывод. Переключают буфера согласованно после об-
работки каждой реализации сигнала, т.е. когда все операции с буферами
закончены.
Рис.2.5. Блоковая передача в ПДП
Пример алгоритма синхронизации с использованием трех буферов пока-
зан на рис.2.6. В качестве флагов введены две переменные с именами
Req
и
Ready
, в которых разряд 0 используется операцией ввода данных (обозначен
Req[0] и Ready[0] соответственно), разряд 1 - операцией вывода (Req[1] и
Ready[1]). Единица в переменной Req разрешает выполнение соответствующей
операции, единица в переменной Ready означает, что операция в стадии
выполнения.
Вначале работы все буфера пусты и распределены следующим образом:
A
- ввод,
B
- обработка,
C
- вывод. Инициализируется ввод в буфер A. После
завершения ввода, который определяется нулевым значением переменной
Ready, происходит переключение буферов: A - обработка, B - вывод, C - ввод.
После переключения буферов анализируется бит Req[0], и поскольку он уста-
I...,62,63,64,65,66,67,68,69,70,71 73,74,75,76,77,78,79,80,81,82,...186