Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Онлайн видання TheRichest підготувало рейтинг н...docx
Скачиваний:
3
Добавлен:
24.11.2019
Размер:
30.17 Кб
Скачать

Тема 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}.