Робота в режимі реального часу та особливості цифрової обробки сигналів
Визначення реального часу (рис.1.10) залежить від конкретної задачі і пов’язане з об’ємом обчислень алгоритму, точністю обчислень та частотою (періодом) дискретизації. Нехай T – період дискретизації, – час виконання алгоритму. Цифрова система буде працювати в режимі реального часу, якщо час виконання алгоритму не перевищуватиме період дискретизації. Це означає, що залишається іще деякий запас часу, який називають часом очікування. Знайти час виконання алгоритму можна, знаючи час виконання елементарної одноциклової команди ,який називається командним циклом та кількість командних циклів Nа,які необхідні для виконання алгоритму. Тоді згідно [95]
, (1.17)
Однак, виконання основної умови роботи в режимі реального часу (час виконання алгоритму, яким би він складним не був, не повинен перевищувати періоду дискретизації) може бути забезпечено лише у випадку, коли тактова частота обчислювача суттєво перевищуватиме частоту дискретизації.
Рис. 1.10. Визначення реального часу
Тактова частота показує, як швидко процесор виконує найпростішу операцію, наприклад пересилку в регістрі з розряду в розряд. Відношення тактової частоти до частоти дискретизації відноситься до найбільш важливих характеристик, які визначають, яким чином буде реалізована система. Це відношення частково визначає кількість апаратних засобів, необхідних для реалізації алгоритму заданої складності в режимі реального часу. Якщо відношення указаних частот зменшується, то кількість і складність апаратних засобів, необхідних для реалізації алгоритму, збільшується.
Час виконання алгоритму залежить не лише від процедури, яка представляє цей алгоритм, а також від способу реалізації алгоритму. Можливі три способи реалізації алгоритмів цифрової обробки сигналів: апаратний, програмний і апаратно-програмний.
Апаратна реалізація передбачає використання різноманітних функціональних блоків: регістрів, суматорів, шифраторів і дешифраторів, лічильників, ліній затримки, пристроїв пам’яті, помножувачів, логічних елементів, інтегральних та великих інтегральних схем, програмованих логічних матриць і т. п. Сукупність функціональних блоків та зв’язків між ними визначає алгоритм, який реалізується.
Перевага апаратної реалізації полягає у дуже високій швидкодії, що дозволяє обробляти сигнали при частоті дискретизації у десятки мегагерц. Це досягається використанням функціональних блоків на базі ТТ-логіки, розпаралелюванням операцій та вузькою направленістю (спеціалізацією) пристроїв, які створюються.
З іншої сторони апаратна реалізація, орієнтована на вирішення вузькоспеціалізованих задач, передбачає створення систем із жорсткою логікою, коли будь-яка зміна алгоритму вимагає зміни структури пристрою, тобто введення додаткових функціональних блоків. Крім цього апаратна реалізація приводить до значного споживання енергії та необхідності організації тепловідводу. Усе це разом визначає високу вартість апаратної реалізації, причому проектування, виготовлення та відладки виявляються вельми трудомісткими при великих часових затратах.
Програмна реалізаціяпередбачає представлення алгоритму у вигляді програми, яку послідовно від команди до команди виконує один або одночасно декілька незалежних блоків. Програма повинна бути написана на мові програмування, яка відповідає конкретному операційному блоку. Так, для персонального комп’ютера це буде будь-яка з мов високого рівня (Pascal, C++, Java та ін.), а для мікропроцесорного комплекту або цифрового процесора – відповідна мова асемблера.
Усі команди, які складають програму, повинні бути представлені у вигляді, зрозумілому процесору та безпосередньо ним сприйманому. Машинна мова представляє собою команди у вигляді комбінацій нулів та одиниць. Тому для полегшення підготовки та відладки програм для процесора створюються спеціальні засоби, коли кожній машинній команді або групі команд ставиться у відповідність скорочений символьний запис так, щоб він відображав їх смисловий зміст. Така мова програмування називається мовою асемблера.
Перевід програми на машинну мову називається трансляцієюі виконується автоматично з допомогою спеціальної програми – асемблера (від англ. assembler – складальник). Розроблені та набувають усе більшого значення спеціальні вельми ефективні програми-транслятори з мов високого рівня на мови асемблерів. Ці програми називаються компіляторами.
До переваг програмної реалізації відносяться:
· незмінна структура системи при різних алгоритмах та областях використання;
· хороша гнучкість, яка дозволяє достатньо легко змінювати алгоритми роботи системи за рахунок корекції або зміни програми;
· суттєве прискорення, полегшення та здешевлення проектування, виготовлення та відладки системи, оскільки замість приладу розробляється програма.
· Недоліком програмної реалізації є відносно низька швидкодія по причині послідовного виконання операцій програми в одному процесорі. І як би не збільшували швидкодію виконання команд, вона буде залишатись нижчою продуктивності відповідного пристрою, реалізованого апаратно. Звідси витікає проблема забезпечення роботи в режимі реального часу, яка передбачає дві обставини:
· час обробки одного відліку або групи відліків сигналу повинен бути меншим допустимого часу затримки. Контроль за виконанням цієї умови повинен здійснюватись як при написанні програми, так і при її відладці;
· цикл роботи програми та момент поступлення відліків вхідного сигналу повинні бути чітко погоджені за часом, тобто початок обробки чергового відліку повинен співпадати або слідувати за поступленням цього відліку
Апаратно-програмна реалізація передбачає апаратне виконання однієї частини функцій системи цифрової обробки сигналів (аналогово-цифрове та цифро-аналогове перетворення, множення, прийом-передача даних та ін.), та програмне виконання другої частини функцій. Апаратно-програмна реалізація поєднує додатні властивості апаратної та програмної реалізації. Розумне поєднання програмних та апаратних засобів дозволяє знизити вимоги до обчислювальних можливостей елементної бази та спростити реалізацію системи цифрової обробки сигналів в цілому, для відладки якої необхідні спеціальні засоби відладки.
Усе вищесказане дозволяє виділити цілий ряд особливостей цифрової обробки сигналів, які, з однієї сторони, пред’являють достатньо жорсткі вимоги до елементної бази, а з іншої сторони – полегшують розробку самої елементної бази, орієнтовану на реалізацію цифрових систем [95].
1. Висока швидкість поступлення даних.
Швидкість обробки даних визначається продуктивністю ЦПОС (цифрового процесора обробки сигналів), яка виражається кількістю мільйонів умовних одноциклових команд, що виконуються в секунду – MIPS (Million Instructions Per Second) для ЦПОС із ФТ (ФТ – фіксована точка) та кількістю мільйонів умовних одноциклових операцій з плаваючою точкою – MFLOPS (Million Float Operations Per Second) для ЦПОС із ПТ (ПТ – плаваюча точка – спосіб представлення даних).
Продуктивність, виражена в MIPS (MFLOPS), є піковою, тобто гранично можливою для даного процесора. Реальна продуктивність процесорів, як правило, є значно меншою, що пояснюється різними смугами пропускання систем вводу/виводу, розміром і типом внутрішньої пам’яті даних, кількістю циклічних буферів, які підтримуються і т. д. Реальну продуктивність оцінюють часом виконання стандартних алгоритмів (наприклад, часом виконання 1024-точкового швидкого перетворення Фур’є). Інший спосіб визначення реальної продуктивності, який отримав назву BDTImark, полягає в тестуванні процесора на групі спеціальних задач – наборі еталонних алгоритмів цифрової обробки сигналів. Результат тестування виражається у відносних умовних одиницях. Чим вища продуктивність, тим більшою кількістю одиниць оцінюється процесор.
ЦПОС є спеціалізованим або проблемно-орієнтованим процесором і частіше всього визначається як процесор, призначений для виконання обробки даних та вирішення задач аналізу та управління в реальному масштабі часу з використанням «оцифрованих» реальних сигналів, у тому числі і реалізації алгоритмів цифрової обробки сигналів в реальному масштабі часу. Вирішення задач ЦОС при приблизно однакових тактових частотах вимагає приблизно у три рази більше часу на універсальних процесорах порівняно з ЦПОС. Наприклад, у процесорі і8086 операція додавання займає три такти, операція множення більше 100 тактів, у той час, як у ЦПОС для цих операцій необхідно по одному такту.
2. Широкий діапазон зміни значень вхідних/вихідних даних.
Як правило, діапазон даних складає 40-80 дБ, однак у радіоприймальних пристроях може доходити до 100 дБ. Таким чином слід мати елементну базу, яка б забезпечувала організацію обробки даних великої розрядності. Динамічний діапазон даних та необхідна розрядність регістрів представлена в таблиці 1.1 (виходячи із розрахунку, що один біт відповідає ≈ 6 дБ). В дійсності за рахунок ефектів квантування динамічний діапазон виявляється дещо меншим, ніж при вказаній у таблиці розрядності.
Таблиця 1.1