- •3 Модуль
- •11 Мікропроцесорні системи на універсальних мп фірми motorola
- •11.2 Побудова мпс на 16-розрядних мікропроцесорах фірми Motorola
- •11.2.1 Підсистема центрального процесорного елемента mc68000
- •11.2.2 Розподіл адресного простору мпс
- •11.2.3 Організація підсистеми пам’яті
- •11.2.4 Організація підсистем введення-виведення
- •11.4 Побудова мпс на 32-розрядних мікропроцесорах фірми Motorola
- •11.4.1 Підсистема центрального процесорного елемента
- •11.4.2 Розподіл адресного простору мпс
- •11.4.3 Організація підсистеми пам’яті мпс
- •11.4.4 Організація підсистеми введення-виведення
- •11.4.5 Підключення співпроцесора
- •12 Програмування універсальних мп
- •12.1 Мова Асемблер програмування мп фірми Motorola
- •Непряме регістрове адресування з постіндексуванням
- •Непряме регістрове адресування з преіндексуванням
- •Непряме відносне адресування з індексуванням
- •12.2 Система команд мп мс680х0 (Для самостійного вивчення)
- •12.2.1 Команди пересилань
- •12.2.2 Команди арифметичних операцій
- •12.2.3 Команди логічних операцій
- •12.2.4 Команди зсувів
- •12.2.5 Команди безумовних переходів
- •12.2.6 Команди умовних переходів
- •12.2.7 Команди організації програмних циклів
- •12.2.8 Команди звернення до підпрограм
- •12.3 Побудова програм з різною структурою мовою Асемблер
- •12.3.1 Лінійні програми
- •12.3.2 Розгалужені та циклічні програми. Підпрограми
- •12.4 Створення програмного забезпечення мпс на мп фірми Motorola
- •Список рекомендованої літератури
- •4 Модуль
- •13 Мікропроцесорні системи на мікроконтролерах фірми motorola та їхнє програмування
- •13.1 Типові мікроконтролери фірми Motorola
- •Сімейство 68нс16/916
- •13.2 Система команд мікроконтролерів фірми Motorola
- •13.3 Налаштовування вбудованих засобів мікроконтролерів
- •14 Risc-процесори фірми motorola
- •14.1 Risc-процесори PowerPc
- •14.2 Risc-процесори ColdFire
- •14.3 Система команд risc-мікропроцесорів сімейства PowerPc
- •15 Архітектура та принципи побудови процесорів цифрового оброблення сигналів
- •15.1 Основні напрямки цифрового оброблення сигналів (цос)
- •15.2 Узагальнена архітектура процесорів сімейства dsp563xx
- •15.3 Організація циклічного буфера в dsp
- •15.4 Програмна реалізація цифрового фільтра сіх
- •16 Мпс на мікроконтролерах, мікропроцесорах та dsp
- •Список рекомендованої літератури
15.3 Організація циклічного буфера в dsp
Вхідний контроль:
Наведіть приклади використовування режиму обміну ПДП поміж МПС та зовнішніми пристроями.
Що таке модульна арифметика?
Завдання цифрової обробки сигналів потребують реалізації потокової обробки великих обсягів даних у реальному режимі часу. Це є можливе за високої швидкодії процесора та наявності апаратних засобів інтенсивного обміну із зовнішніми пристроями.
Циклічний буфер слугує за “вікно” заданого розміру, через яке “протягується” задана кількість відліків вхідного сигналу з метою їхнього оброблення в реальному часі.
Циклічний буфер у складі 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.
Контрольні запитання:
Як вибирається початкова адреса в межах циклічного буфера?
У якій пам’яті, Х або Y, може бути зорганізовано циклічний буфер?
В який спосіб визначаються верхня та нижня межі циклічного буфера?
Контрольні запитання підвищеної складності:
З якою метою у DSP використовується циклічний буфер?
Організуйте у пам’яті циклічний буфер обсягом 7 комірок.
Вкажіть значення нижньої, верхньої та граничної межі.
Покажіть, як спрацьовує модульна арифметика при обчисленні адреси пам’яті у межах циклічного буфера?
