Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТ МП.doc
Скачиваний:
187
Добавлен:
10.02.2016
Размер:
5.13 Mб
Скачать

15.3 Організація циклічного буфера в dsp

Вхідний контроль:

  1. Наведіть приклади використовування режиму обміну ПДП поміж МПС та зовнішніми пристроями.

  2. Що таке модульна арифметика?

Завдання цифрової обробки сигналів потребують реалізації потокової обробки великих обсягів даних у реальному режимі часу. Це є можливе за високої швидкодії процесора та наявності апаратних засобів інтенсивного обміну із зовнішніми пристроями.

Циклічний буфер слугує за “вікно” заданого розміру, через яке “протягується” задана кількість відліків вхідного сигналу з метою їхнього оброблення в реальному часі.

Циклічний буфер у складі DSP– це обмежена за обсягом пам’ятьХабоYзМкомірок, які адресуються за типом непрямого регістрового адресування. Ефективна адреса комірки обчислюється як алгебраїчна сума вмісту регістра адресиRn, регістра зміщенняNnта регістра модифікаціїМnза правилами модульної арифметики. Модульна арифметика забезпечує звернення лише до тих комірок пам’яті, які належать конкретному буферові.

Нижня межа буфера визначається вмістом регістра Rn, а верхня дорівнює (Rn + M– 1), де значення (М– 1) зберігається в регістрі модифікаціїМn. Значення нижньої межі, яка називається ще базою адреси (Bs), має мати нулі уkмолодших розрядах,kвибирається з умови 2k М; база адреси є кратна до 2k.

Для організації буфера обсягом 5 комірок пам’яті (М= 5) кількістьkмолодших нульових бітів у базіBsможе становити 3. БазаBsможе бути 101000 або 111000, тобто бути кратною до 2k. У загальному випадку база вибирається такою, що дорівнює

ХХХХ...ХХ 00…0 , деХ= 0 або 1.

(16 – k) бітk біт

Верхня межа буфера дорівнює Bs + M– 1, а гранична межа –Bs+ 2k – 1.

На рис. 15.3 подано організацію циклічного буфера.

Рисунок 15.3 – Організація циклічного буфера

Початкова адреса, тобто вміст регістра Rnможе встановлюватись довільно у зазначених межах.

При використовуванні регістра Nnадреса обчислюється за формулою((Rn ± Nn)mod M. На рис. 15.4 подано виконування команди

MOVE Х0, Х: (RY) + N0

при роботі з циклічним буфером. Згідно з командою, вміст вхідного регістра АЛП даних Х0 пересилається до коміркиХ-пам’яті даних за адресою, зазначеною вR0, після чого здійснюється інкрементування адреси на вміст регістраN0 з використовуванням арифметики заmod M. Всі адреси зазначено в десятковій системі числення; циклічний буфер має обсяг 90 комірок з базоюBs= 128, верхньою межею 217 та граничною межею 255.

Рисунок 15.4 – Використовування арифметики за модулем М

Кількість молодших нульових бітів у базі вибрано з умови 2k≥ 90, тодіk= 7.Bs= 128 (крайнє 2k). Верхня межа становить 128 + 90 = 217. Гранична межа становить 128 + 27– 1 = 255; комірки з 218 по 255 повного буфера не використовуються і можуть використовуватись для інших цілей. Після першого виконання команди початкова адреса інкрементується на 15 і вмістR0 дорівнює 180. При подальшому інкрементуванні адреси вмістR0 послідовно стає 195 та 210. При черговому інкрементуванні адреса циклічного буфера могла б стати 225 і вийти за верхню межу буфера. Модульна арифметика примушує вмістR0 залишатися усередині буфера, тобто (R0) = 225 – 90 = 135.

Контрольні питання:

  1. Як вибирається початкова адреса в межах циклічного буфера?

  2. У якій пам’яті, ХабоY, може бути зорганізовано циклічний буфер?

  3. В який спосіб визначаються верхня та нижня межі циклічного буфера?

Контрольні питання підвищеної складності:

  1. З якою метою у DSPвикористовується циклічний буфер?

  2. Організуйте у пам’яті циклічний буфер обсягом сім комірок.

  3. Вкажіть значення нижньої, верхньої та граничної межі в пам’яті циклічного буфера.

  4. Покажіть, як спрацьовує модульна арифметика при обчисленні адреси пам’яті у межах циклічного буфера?