Сигнальний процесор. СПК
Процесор цифрової обробки сигналів — це спеціалізований програмований мікропроцесор, призначений для маніпулювання в реальному масштабі часу потоком цифрових даних.
Архітектура сигнальних процесорів має помітні особливості:
- Швидке виконання операцій, характерних для цифрової обробки сигналів, наприклад, операція «множення з накопиченням» (MAC) (Y:=A*B+X) зазвичай виконується за один такт.
- «Безплатні» за часом цикли із заздалегідь відомою довжиною.
- Більшість сигнальних процесорів мають вбудовану оперативну пам'ять, з якої може здійснюватися вибірка декількох машинних слів одночасно.
- Детермінована робота з відомими часом виконання команд, що дозволяє виконувати планування роботи в реальному часі.
- Досить велика довжина конвейєра, так що незаплановані умовні переходи можуть займати відносно багато часу.
- Екзотичний набір регістрів і інструкцій, часто складний для компіляторів. Деякі архітектури використовують VLIW.
- В порівнянні з мікроконтролерами, обмежений набір периферійних пристроїв — втім, існують «перехідні» чіпи, що поєднують в собі властивості DSP і широку периферію мікроконтролерів.
Історія
До 1980 року декілька компаній виготовили мікросхеми, які можно вважати першими ЦСП. Так, в 1978 Intel випускає «процесор аналогових сигналів» 2120. В його склад входили АЦП, ЦАП і процесор обробки цифрових даних, однак апаратна функція множення була відсутня. В 1979 AMI випускає S2811 — периферійний пристрій, керований основним процесором комп'ютера. Обидві мікросхеми не досягли успіху на ринку.
Області застосування
- Комунікаційне обладнання:
- Ущільнення каналів передачі даних;
- Кодування аудіо- і відеопотоків;
- Системи гідро- і радіолокації;
- Розпізнавання голосу і зображень;
- Голосові і музичні синтезатори;
- Аналізатори спектру;
- Керування технологічними процесами;
- Інші області, де необхідна швидкісна обробка сигналів, в тому числі в реальному часі.
Оцінка продуктивності
Для порівняння характеристик різних процесорів ЦОС використовують спеціальні набори тестів, імітуючих деякі розповсюджені задачі цифрової обробки сигналів. Кожний тест складається з декількох невеликих програм, які пишуться на асемблері і оптимізуються під задану архітектуру. Ці тести можуть включати такі задачі:
- СІХ- і БІХ-фільтри;
- Множення векторів;
- Декодери Вітербі;
- ШПФ - швидке перетворення Фур'є
Найавторитетнішим пакетом тестів вважається тест BTDImark2000 , який крім вказаних алгоритмів включає також оцінку використаної алгоритмом пам'яті, тривалість розробки системи та інші параметри.