- •Тема 5. Аппаратно-программна реализация цифрової обробки сигналів
- •Тема 5. Апаратно-програмна. Реалізація цифрової обробки сигналів
- •16.2. Функціональні пристрої і інтерфейс сигнальних процесорів Adsp-218x
- •1.0.15. 16.2.. 16.2. Функціональні пристрої і інтерфейс сигнальних п
- •Тема 5. Апаратно-програмна. Реалізація цифрової обробки сигналів
Тема 5. Апаратно-програмна. Реалізація цифрової обробки сигналів
Лекція. 16 Цифрові сигнальні процесори
16 БІТ 16 БІТ 16 БІТ 16 БІТ
AX0 AY1 AX1 AY0
16 БІТ 16 БІТ
AR AF
|
Мал. 16.3. Програмна регістрова модель помножувача-накопичувача
Помножувач-накопичувач реалізує 4 стандартних функції: R = X*y – множення операндів X і Y; R = MR + X*y – множення операндів Х і Y і складання результату з вмістом регістра Мr; R = MR – X*y – множення операндів Х і Y і віднімання полученно- го результату з вмісту регістра Мr;
Правильність результатів помножувача-накопичувача при різних типах даних забезпечується шляхом завдання режимів його роботи. Це режі- ми множення дробових чисел і цілих чисел і режими, відповідні форматам операндів, що вводяться, Х, Y: «знаковий – знаковий» (SS); «беззна- ковий – знаковий» (US); «знаковий – беззнаковий» (SU); «беззнаковий – беззнаковий» (UU). Вони використовуються як при обчисленнях з одинарною точністю, так і для підтримки в ичисленій з повишенною (подвійнию) точністю.
Режими множення дробових і цілих чисел задаються значеннями бі- та регістра стану режимів процесора MSTAT, який може ізме- няться також командою ENA M_mode (множення цілих чисел) і DIS M_mode (множення дробових чисел). Формати операндів Х, Y (SS, SU, US, UU) безпосередньо указива- ются у відповідному полі (модифікаторі) коди команди умножітеля- накопичувача.
Якщо в процесі накопичення результат виходить за межі 32-разряд- ний (Мr0/Мr1) кордони, помножувач-накопичувач генерує сигнал (прі- знак) переповнювання Мv. Старші вісім біт регістра Мr при цьому не явля- ются все нулями або одиницями. Передбачений режим насичення регістра Мr, коли при переповнюванні він встановлюється на максимальне положі- тільне (MR = 007fffffff) або максимальне негативне (MR = Ff80000000) значення залежно від знаку результату.
Операція насичення виконується під управлінням умовною коман- ди IF MV SAT і діє лише протягом одного циклу. Вона використовується як правило, після закінчення послідовності множень з накопиченням так, щоб проміжні переповнювання суматора не приводили до наси- щенію регістра MR.
У нагромаджуючому сумматорі-зчитувачі передбачена можливість округлення 40-розрядного результату R на кордоні між 16 і 15 біта- мі. Округлення задається як частина коди команди (RND). Закруглений 16-розрядний результат прямує в регістр Mr1 або в Мf. Закруглене значення Мr1 відбивається і на вмісті Мr2: Мr1 і Мr2 містять в цьому випадку закруглений 24-розрядний результат.
Операції і режими помножувача-накопичувача підтримуються груп- співай команд MAC ЦСП. Прикладом їх є умовна і безумовна асамблерної інструкції множення із складанням і множення з зчитуванням:
IF NE МR = МR + Mx0?MY0 (SS);
МR = Мr – Mx1?MY1 (RND).
Пристрій циклічного зрушення
Пристрій зрушення (SHIFTER) забезпечує повний набір функцій зрушення для 16-розрядних вхідних значень, що перетворюються в 32-розрядний результат. Пристрій виконує операції:
♦ арифметичного (ASHIFT) і логічного (LSHIFT) зрушення;
♦ нормалізації (NORM);
♦ визначення порядку (EXP);
♦ знаходження блокового порядку (EXPADJ)
де в дужках вказана мнемоніка відповідних ним команд ЦСП. Нормалізація представляє перетворення числа з фіксованою крапкою в число з плаваючою крапкою, при якому генерується його мантиса і порядок; денормалізація чисел відповідає зворотному перетворенню числа з плаваючою крапкою в число з фіксованою крапкою.
Програмна регістрова модель пристрою зрушення приведена на мал. 16.5. Введення даних в пристрій виробляється з регістра введення SI розрядністю 16 біт або з регістрів AR, SR або MR по R-шині.
SE SB SR1 SI SR0 16 біт 8 біт
5 біт
16 біт 16 біт |
Мал. 16.4. Програмна регістрова модель пристрою зрушення
Регістр результату пристрою зрушення SR має розрядність 32 біта і розділяється на два 16-розрядні регістри Sr0 і Sr1.
Регістр експоненти (порядку) SE розрядністю 8 біт містить зна- ченіє порядку числа з плаваючою крапкою під час операцій нормалізації і денормалізації. У нього записується код, що також управляє, показиваю- щий напрям і число позицій, на яке зрушується вхідне значення. Цей же код (С) може міститися і безпосередньо в коді команди.
Регістр SB, що має розрядність 5 біт, використовується для операцій з блоковою плаваючою крапкою, під час яких в нім міститься определяє- моє або задане значення блокового порядку, тобто значення порядку найбільшого числа в блоці чисел. Модифікатором код команд Hi/lo задаєт- ся опорна точка зрушення. По сигналу HI зрушення відбуваються відносно ре- гистра Sr1 (старших біт результату), по сигналу LO – відносно регістра Sr0 (молодших біт результату).
При циклічному зрушенні всі біти праворуч від вхідного значення в об- ласті результату заповнюються нулями, а біти зліва відповідно до вигляду зрушення (арифметичний, логічний, див. приклади, що наводяться нижче).
Визначення порядку (EXP) вхідного значення (числа зайвих знако- вих розрядів) виробляється з врахуванням його інтерпретації, визначуваної мо- діфікатором команди Hi/lo і бітом переповнювання АЛУ AV.
У режимі HI вхідне значення інтерпретується як число з одинарною точністю або як старші біти числа з подвійною точністю. Йому співпадає значення порядку від 0 до -15. У режимі HI, AV (що позначається як HIX) при встановленому біті AV виводиться порядок +1. У режимі LO вхідне значення інтерпретується як молодші біти числа з подвійною точністю. Йому відповідають значення порядку від -15 до - 31, які записуються в регістр SE, якщо всі старші біти числа з подвійною точністю знакові.
Нижче наведений приклад інструкції SHIFTER, що виконує безпосереднє логічне зрушення управо відносно старших біт SR (Sr1), тобто в режимі HI:
SI = 0xB6A3; {Коментар: запис в SI вхідного значення в 16-річной системі, двійкове значення 10110110 10100011};
SR = LSHIFT SI BY –5 (HI); {Зрушення управо на –5 біт};
{Результат зрушення SR = 00000101 10110101 00011000 00000000}.