
конспект / 23-Двойная буферизация
.doc1.Структура системы
Двойная буферизация на входе и на выходе позволяет разгрузить ЦП.
Время выполнения одной команды в С5510 5нс ~ 200МГц.
У нас частота отсчетов Fs = 44,1кГц.
Получается
операций
за один цикл между двумя отсчетами.
Следовательно, рекомендуется использовать двойную буферизацию, которая значительно ускоряет обработку. Применение двойной буферизации эффективно, если время, необходимое для обработки, больше времени между двумя отсчетами. Оно позволяет увеличит время, выделяемое на обработку.
3.Система с одиночным входным буфером
Блок должен быть обработан до приема In-256
Время обработки увеличится в256x раз с двойной буферизацией
Время константа: один период
Вычислительно эффективен, но увеличивает латентность
Один буфер используется для обработки, а второй для приема.
Скорость входа и выхода одинакова, но появляется задержка. В данном примере она равна двум буферам. Задержка до 10мс не воспринимается человеческим ухом.
4.Система с двойной буферизацией
При двойной буферизации есть две ветви – Ping и Pong. Сначала приходящие данные записываются в буфер-приемник ветви Pin. Как только он будет заполнен полностью, данные, содержащиеся в нем, будут отправлены на обработку, а прием потока данных переключиться на ветвь Pong и будет заполняться ее буфер-приемник. И т.д.
Принятые и выданные данные имеют задержку = 512*частоту дискретизации.
Если произойдет рассинхронизация, система не будет работать. Рассинхронизация может произойти из-за того, что время обработки будет больше времени заполнения буфера.
5.Реализация схемы двойной буферизации
Такие схемы чаще всего реализованы как на входе, так и на выходе.
|
|