Основи вибору цифрових сигнальних процесорів

27 червня 2017 о 12:27

Багатоядерний DSP TMS320C6678. Огляд архітектури процесора

  • Програмування мікроконтролерів

Ця стаття відкриває серію публікацій, присвячених багатоядерним цифровим сигнальним процесорам TMS320C6678. У статті подано загальне уявлення про архітектуру процесора. Стаття відображає лекційно-практичний матеріал, пропонований слухачам у рамках курсів підвищення кваліфікації за програмою «Многоядерні процесори цифрової обробки сигналів C66x фірми Texas Instruments», які проводяться у Рязанському державному радіотехнічному університеті.

Цифрові сигнальні процесори TMS320C66xх будуються по архітектурі KeyStone і є високопродуктивними багатоядерними сигнальними процесорами, що працюють як з фіксованою, так і з плаваючою точкою. Архітектура KeyStone – це розроблений фірмою Texas Instruments принцип виготовлення багатоядерних систем на кристалі, що дозволяє організовувати ефективну спільну роботу великої кількості ядер DSP- та RISC-типів, акселераторів та пристроїв периферії із забезпеченням достатньої пропускної спроможності внутрішніх та зовнішніх каналів пересилання даних, основ компоненти: Multicore Navigator (контролер обміну даними за внутрішніми інтерфейсами), TeraNet (внутрішня шина пересилання даних), Multicore Shared Memory Controller (контролер доступу до спільної пам'яті) та HyperLink (інтерфейс із зовнішніми пристроями на внутрішньокристалічній швидкості).

Архітектура процесора TMS320C6678, найбільш високопродуктивного процесора в сімействі TMS320C66xх, зображена на Малюнку 1. Архітектура може бути розбита на такі основні компоненти:

  • набір операційних ядер (CorePack);
  • підсистема роботи із загальною внутрішньою та зовнішньою пам'яттю (Memory Subsystem);
  • периферійні пристрої;
  • мережевий співпроцесор (Network Coprocessor);
  • контролер внутрішніх пересилок (Multicore Navigator);
  • службові апаратні модулі та внутрішня шина TeraNet.

Малюнок 1. Загальна архітектура процесора TMS320C6678

Процесор TMS320C6678 працює на тактовій частоті 1.25 ГГц. В основі функціонування процесора лежить набір операційних ядер С66х CorePack, кількість та склад яких залежать від конкретної моделі процесора. ЦСП TMS320C6678 включає до свого складу 8 ядер DSP-типу. Ядро є базовим обчислювальним елементом і включає обчислювальні блоки, набори регістрів, програмний автомат, пам'ять програм і даних. Пам'ять, що входить до складу ядра, називається локальною.

Крім локальної пам'яті, є пам'ять спільна всім ядер – загальна пам'ять багатоядерного процесора (Multicore Shared Memory – MSM). Доступ до загальної пам'яті здійснюється через підсистему управління пам'яттю (Memory Subsystem), яка також включає інтерфейс зовнішньої пам'яті EMIF обмінюватись даними між процесором і зовнішніми мікросхемами пам'яті.

Мережевий співпроцесор підвищує ефективність роботи процесора у складі різноманітних телекомунікаційних пристроїв, реалізуючи апаратно типові для цієї сфери завдання обробки даних. В основі роботи співпроцесора лежать акселератор пакетної передачі даних (Packet Accelerator) та акселератор захисту інформації (Security Accelerator). У специфікації на процесор перераховано набір протоколів та стандартів, що підтримуються даними акселераторами.

Периферійні пристрої включають:

  • Serial RapidIO (SRIO)версії 2.1 – забезпечує швидкість передачі даних до 5 GBaud на лінію при числі ліній (каналів) – до 4;
  • PCI Express (PCIe)версії Gen2 – забезпечує швидкість передачі до 5 GBaud на лінію при числі ліній (каналів) – до 2;
  • HyperLink- інтерфейс внутрішньої шини, що дозволяє комутувати процесори, побудовані за архітектурою KeyStone, безпосередньо один з одним та здійснювати обмін на внутрішньокристалічній швидкості; швидкість передачі даних – до 50 Gbaud;
  • Gigabit Ethernet (GbE)забезпечує швидкості передачі: 10/100/1000 Mbps та підтримується апаратним акселератором мережевих комунікацій (мережевим співпроцесором);
  • EMIF DDR3- Інтерфейс зовнішньої пам'яті типу DDR3; має розрядність шини 64 біта, що забезпечує простір пам'яті, що адресується, до 8 Гбайт;
  • EMIF- Інтерфейс зовнішньої пам'яті загального призначення; має розрядність шини 16 біт і може використовуватись для підключення 256MB NAND Flash або 16MB NOR Flash;
  • TSIP (Telecom Serial Ports)- Телекомунікаційний послідовний порт; забезпечує швидкості передачі до 8 Мбіт/с одну лінію при числі ліній – до 8;
  • UART- Універсальний асинхронний послідовний порт;
  • I2C- Шина внутрішнього зв'язку;
  • GPIO- Введення-виведення загального призначення - 16 висновків;
  • SPI- Універсальний послідовний інтерфейс;
  • Таймери (Timers)- Використовуються для генерації періодичних подій.
Службові апаратні модулі включають:
  • модуль налагодження та трасування (Debug and Trace)– дозволяє отримувати налагоджувальні інструментальні засоби доступ до внутрішніх ресурсів працюючого процесора;
  • завантажувальне ПЗП (boot ROM) – зберігає програму початкового завантаження;
  • апаратний семафор (semaphore)- служить для апаратної підтримки організації спільного доступу паралельних до загальних ресурсів процесора;
  • модуль управління живленням- реалізує динамічне управління режимами живлення компонентів процесора з метою мінімізації енерговитрат у моменти, коли процесор працює не на повну силу;
  • схема ФАПЛ– формує внутрішні тактові частоти процесора із зовнішнього опорного тактуючого сигналу;
  • контролер прямого доступу до пам'яті (EDMA)– керує процесом пересилання даних, розвантажуючи операційні ядра ЦСП та є альтернативою Multicore Navigator.
Контролер внутрішніх пересилок (Multicore Navigator) є потужним і ефективним апаратним модулем, що відповідає за арбітраж передачі даних між різними компонентами процесора. Багатоядерні системи на кристалі TMS320C66xx є дуже складними пристроями і щоб організувати обмін інформацією між усіма компонентами такого пристрою, необхідний спеціальний апаратний блок. Multicore Navigator дозволяє ядрам, периферійним пристроям, хост-пристроям не брати на себе функції керування обміном даними. Коли будь-якому компоненту процесора необхідно переслати масив даних на інший компонент, він просто вказує контролеру, що куди потрібно передати. Всі функції з самої пересилки та синхронізації відправника та одержувача бере на себе Multicore Navigator.

Основою функціонування багатоядерного процесора TMS320C66xх з позиції високошвидкісного обміну даними між усіма численними компонентами процесора, а також зовнішніми модулями служить внутрішня шина TeraNet.

У наступній статті буде детально розглянуто архітектуру операційного ядра C66x.

1. Multicore Programming Guide / SPRAB27B – August 2012;
2. TMS320C6678 Multicore Fixed and Floating-Point Digital Signal Processor Data Manual / SPRS691C - February 2012.

Мікропроцесори – це універсальні цифрові мікросхеми, в яких обчислювальний блок під керуванням програми може виконувати різні дії. В результаті всі мікропроцесори дозволяють обміняти свою граничну швидкодію на складність алгоритму, що реалізується. Місце мікропроцесорів у класифікації цифрових пристроїв наведено малюнку 1.


Рисунок 1. Класифікація мікропроцесорів

Однак при створенні цифрових пристроїв на мікропроцесорах особливості завдання, що вирішується, накладаються на архітектуру конкретного класу мікропроцесорів. Розглянемо основні завдання, які доводиться вирішувати під час обробки сигналів (незалежно від аналогової чи цифрової реалізації схеми):

  1. підсумовування кількох сигналів;
  2. перенесення спектра сигналів;
  3. фільтрація сигналів;
  4. обчислення спектра сигналу (швидке перетворення Фур'є);
  5. завадостійке кодування (придушення шуму для аналогових систем зв'язку);
  6. формування кадрів (тільки для цифрових систем зв'язку)
  7. скремблювання сигналу (формування однакової ймовірності передачі нулів та одиниць)

Останні три пункти з перерахованих видів цифрової обробки сигналів здійснюються на низькій частоті, тому зазвичай їх реалізації потрібна невелика частина продуктивності процесора. Найбільша продуктивність потрібна під час обробки високочастотних сигналів. Це пов'язано з малим часом між сусідніми відліками сигналу. За той самий проміжок часу потрібна більша кількість простих операцій.

Тепер розглянемо два перші завдання. При виконання операції потрібна одна команда двійкового підсумовування. Операція перенесення спектра вхідного сигналу на задану частоту вимагає операцію множення та операцію формування чергового відліку синусоїдальної функції. Це означає, що ця операція вимагатиме більшої продуктивності процесора порівняно з попередньою операцією обробки сигналів. Тепер порівняємо операцію підсумовування та операцію множення. При множенні двох чисел потрібно обчислити кілька окремих творів і підсумувати їх. дозволяє виконувати операцію множення за один машинний цикл процесора, тому Наявність апаратного помножувача є невід'ємною рисою сигнальних процесорів.

Тепер проаналізуємо процес фільтрації сигналів. При реалізації частотних фільтрів у часовій області доводиться здійснювати операцію згортки. Типова схема цифрового фільтра наведено малюнку 2.



Рисунок 2. Типова схема цифрового фільтра

З малюнка очевидно простежується послідовність однакових ділянок алгоритму. Багаторазово доводиться множити цифровий відлік сигналу на коефіцієнт фільтра та підсумовувати результат із попередньою сумою. При цьому слід зазначити таку особливість суматора як велика розрядність. Для 16-розрядного сигнального процесора розрядність чисел на виході помножувача дорівнюватиме тридцятидвох розрядів. При підсумовуванні кількох чисел також збільшується розрядність результату. При підсумовуванні 256 однакових чисел значення результату збільшиться у 256 разів, що відповідає збільшенню розрядності числа на вісім розрядів (28 = 256). Тому розрядність суматора в 16-розрядному сигнальному процесорі дорівнюватиме сорока розрядів (32+8=40).

В результаті ми сформували ще одну вимогу до сигнального процесора. Сигнальний процесор повинен містити у своєму складі не просто апаратний помножувач, а помножувач-накопичувач даних (MAC). Причому операція множення-накопичення має виконуватися за машинний цикл мікропроцесора. Хотілося б відзначити той факт, що операція множення-накопичення є складовою не тільки алгоритму фільтрації, а й (половина базового алгоритму "метелик")

Тепер поговоримо про ще один метод збільшення швидкодії сигнального процесора. У звичайному процесорі використовується одношинна структура операційного блоку процесора. У сигнальному процесорі застосовується як мінімум. Це дозволяє одночасно подавати на вхід арифметико-логічного пристрою або помножувача-накопичувача два операнди і записувати результат в оперативний пристрій.

Ще однією важливою особливістю мікропроцесорів є спосіб організації циклічного виконання програми (операція множення-накопичення MAC при реалізації цифрового фільтра або операція "метелик" при реалізації швидкого перетворення Фур'є повинні повторюватися задану кількість разів). У обчислювальному мікропроцесорі в організацію циклу використовується особлива змінна — параметр циклу. Наприкінці циклу ця змінна порівнюється із заданим значенням (зазвичай з нулем) і здійснюється перехід початку циклу. В результаті алгоритм фільтрації буде виглядати так:

  1. Сформувати адресу чергового осередку лінії затримки фільтра
  2. Вважати черговий відлік вхідного сигналу з лінії затримки фільтра
  3. Сформувати адресу чергового коефіцієнта фільтра
  4. Вважати черговий коефіцієнт фільтра
  5. Помножити відлік вхідного сигналу з лінії затримки коефіцієнт фільтра (найчастіше кілька машинних циклів)
  6. Підсумувати результат із вже накопиченою сумою (сформувати черговий відлік сигналу на виході фільтра)
  7. Змінити значення змінної параметра циклу
  8. Порівняти отримане значення із заданою величиною
  9. Перейти на початок циклу або вийти з нього (зазвичай це тривала процедура, яка займає кілька машинних циклів)

У сигнальних процесорах організація циклу та формування чергової адреси коефіцієнта та відліку фільтра здійснюється апаратно, тому не потребує додаткового часу. Всі зазначені особливості дозволяють збільшити швидкодію сигнального процесора, не збільшуючи його тактову частоту, в результаті алгоритмічна швидкодія сигнального процесора при виконанні операцій обробки сигналів багаторазово перевищує швидкодію обчислювального мікропроцесора. Перелічимо відмінні властивості сигнального процесора:

  1. Наявність акумулятора-накопичувача MAC з 40-розрядним суматором та акумулятором
  2. Наявність апаратного зсувника чисел
  3. Наявність апаратної організації циклу
  4. Наявність двох формувачів адреси
  5. Тришинна структура операційного блоку мікропроцесора

Література:

Разом із статтею "Особливості сигнальних процесорів" читають:

Що таке DSP?

Цифрові сигнальні процесори (DSP, Digital Signal Processors) приймають на вхід попередньо оцифровані фізичні сигнали, наприклад, звук, відеозображення, показання температури, тиску та положення, і роблять над ними математичні маніпуляції. Внутрішня структура цифрових сигнальних процесорів спеціально розробляється таким чином, щоб вони могли дуже швидко виконувати такі математичні функції, як “складання”, “віднімання”, “множення” та “поділ”.

Сигнали необхідно обробити так, щоб інформація, яку вони містять, могла бути відображена графічно, проаналізована або перетворена на корисний сигнал іншого типу. У реальному світі виявлення сигналів, що відповідають фізичним явищам, таким як звук, світло, температура або тиск, та маніпуляція ними здійснюється аналоговими компонентами. Потім аналого-цифровий перетворювач бере реальний сигнал і перетворює його в цифровий формат у вигляді послідовності нулів і одиниць. На даному етапі процес вступає цифровий сигнальний процесор, який здійснює збір оцифрованої інформації та її обробку. Далі він видає оцифровану інформацію назад у реальний світ подальшого використання. Видача інформації здійснюється одним із двох способів - у цифровому або аналоговому форматі. У другому випадку оцифрований сигнал пропускається через цифро-аналоговий перетворювач. Всі ці дії виконуються дуже високої швидкості.

Для ілюстрації цієї концепції розглянемо наведену нижче блок-схему, де показано, як цифровий сигнальний процесор використовується у складі MP3 аудіоплеєра. У фазі запису аналоговий звуковий сигнал надходить у систему від приймача чи іншого джерела. Цей аналоговий сигнал перетворюється на цифровий сигнал за допомогою аналого-цифрового перетворювача і передається в цифровий сигнальний процесор. Цифровий сигнальний процесор виконує кодування у форматі MP3 і зберігає файл у пам'ять. У фазі відтворення файл витягується з пам'яті, декодується цифровим процесором сигнальним і перетворюється за допомогою цифро-аналогового перетворювача назад в аналоговий сигнал, який може бути відтворений в акустичній системі. У більш складному прикладі цифровий сигнальний процесор може виконувати додаткові функції, наприклад регулювання гучності, частотну компенсацію та забезпечення інтерфейсу користувача.

Інформація, що формується цифровим сигнальним процесором, може бути використана комп'ютером, наприклад, для керування системами безпеки, телефонами, домашніми кінотеатрами або стисненням відео. Сигнали можуть бути стиснені (компресії) для більш швидкої та ефективної передачі з одного місця в інше (наприклад, у системах телеконференцій для передачі мовлення та відеозображень по телефонних лініях). Сигнали також можуть піддаватися додатковій обробці для підвищення їх якості або надання інформації, яка спочатку недоступна для сприйняття людиною (наприклад, завдання ехокомпенсації в мобільних телефонах або комп'ютерного поліпшення якості зображень). Фізичні сигнали можуть оброблятися і в аналоговій формі, проте цифрова обробка забезпечує підвищену якість та швидкодію.

Оскільки цифровий сигнальний процесор є програмованим, він може бути використаний у найрізноманітніших завданнях. Під час створення проекту ви можете написати власне програмне забезпечення або використовувати програмне забезпечення, яке надає компанія Analog Devices або сторонні компанії.

Більш детальну інформацію про переваги застосування цифрових сигнальних процесорів при обробці сигналів реального світу ви можете знайти, прочитавши першу частину статті.


Що всередині цифрового сигнального процесора (DSP)?

Цифровий сигнальний процесор включає такі ключові компоненти:

  • Пам'ять програм:Містить програми, які цифровий сигнальний процесор використовує для обробки даних
  • Пам'ять даних:Містить інформацію, яку потрібно обробляти
  • Обчислювальне ядро:Виконує математичну обробку, звертаючись до програми, що міститься в пам'яті програм, та даних, що містяться в пам'яті даних
  • Підсистема введення/виводу:Здійснює спектр функцій для інтерфейсу із зовнішнім світом

Для отримання детальної інформації про процесори та прецизійні аналогові мікроконтролери компанії Analog Devices ми пропонуємо вам ознайомитися з наступними ресурсами:

Цифрова обробка сигналів - це складний предмет, і він здатний приголомшити навіть найдосвідченіших професіоналів у галузі цифрових сигнальних процесорів. Тут ми дали лише короткий огляд, але Analog Devices також пропонує додаткові ресурси, що містять більш детальну інформацію про цифрову обробку сигналів:

  • - огляд технологій та питання практичного застосування
  • Серія статей журналу Analog Dialogue: (на англ.яз.)
    • Частина 1: Навіщо потрібний цифровий сигнальний процесор? Архітектури цифрових сигнальних процесорів та переваги цифрової обробки сигналів перед традиційними аналоговими схемами
    • Частина 2: Дізнайтеся більше про цифрові фільтри
    • Частина 3: Реалізація алгоритмів на апаратній платформі
    • Частина 4: Питання програмування для підтримки введення/виводу в реальному часі
  • : Часто використовувані слова та їх значення

Практичні заняття з цифрових сигнальних процесорів є швидким та ефективним способом ознайомитись із застосуванням цифрових сигнальних процесорів компанії Analog Devices. Вони дозволять вам опанувати впевнені практичні навички роботи з цифровими сигнальними процесорами Analog Devices через курс лекцій та практичних вправ. Розклад та інформацію про реєстрацію ви можете знайти на сторінці Навчання та розробка.


"Науково-технічні статті"- добірка науково-технічних статей радіоелектронноїтематики: новинки електронних компонентів, наукові розробки в галузі радіотехніки та електроніки , статтіпо історіїрозвитку радіотехніки та електроніки технологіїта методи побудови та розробки радіоелектроннихпристроїв, перспективні технологіїмайбутнього, аспекти та динаміка розвитку всіх напрямків радіотехніки та електроніки , огляди виставок радіоелектронноїтематики.

У статті розглянуто основні параметри цифрових сигнальних процесорів (DSP) та їх вплив на вибір відповідної мікросхеми, а також описано стан ринку DSP.

Вибираючи взуття, ми хочемо, щоб воно було модним, зручним і високою якістю, тому ми віддаємо перевагу відомим маркам, тим фірмам, які вже добре відомі і займають на ринку далеко не останні місця. Тепер потрібно визначитися: для чого нам потрібне це взуття? Якщо для ранкової пробіжки, то краще все-таки купити кросівки, а для корпоративного вечора туфлі. А що взувати в горах? У цьому випадку потрібне спеціальне міцне взуття з твердою підошвою - вібрами. А чим гірше DSP? Вибираючи цифровий сигнальний процесор, непогано було б представляти існуючий ринок DSP, знати основних виробників та напрямки розвитку створюваних ними процесорів.

DSP-процесори призначені для здійснення цифрової обробки сигналу – математичних маніпуляцій над оцифрованими сигналами. Вони широко застосовуються в бездротових системах, аудіо- та відеообробці, системах управління. Зі зростанням числа додатків, що використовують DSP, та складності алгоритмів обробки збільшується і вимоги до них у плані підвищення швидкодії та оснащеності інтерфейсними та іншими спеціалізованими вузлами. На цей час з'явилося безліч типів DSP, як універсальних, і орієнтованих досить вузьке коло завдань.

Таблиця 1. Основні виробники DSP та належні їм частки ринку

Компанії-лідери ринку Company Name Частка ринку DSP
1 Texas Instruments 54,3%
2 Freescale Semiconductor 14,1%
3 Analog Devices 8,0%
4 Philips Semiconductors 7,5%
5 Agere Systems 7,3%
6 Toshiba 4,9%
7 DSP Group 2,2%
8 NEC Electronics 0,6%
9 Fujitsu 0,4%
10 Intersil 0,3%

Інші компанії 0,5%

Total 100,0%

Звичайно, жоден з процесорів не може підійти для всіх програм. Тому перше завдання розробника - вибір процесора, що найбільше підходить за продуктивністю, ціною, наявності певної периферії, споживання потужності, простоті використання та іншим критеріям.

Наприклад, для таких портативних пристроїв, як мобільні телефони, портативні цифрові плеєри, вартість, ступінь інтеграції та споживана потужність є першорядними, а максимальна продуктивність часто не потрібна (бо зазвичай тягне за собою значне підвищення споживаної потужності, не даючи переваг при обробці щодо низькошвидкісних аудіоданих). У той же час для гідроакустичних або радіолокаційних систем визначальними параметрами є швидкість роботи, наявність високошвидкісних інтерфейсів та зручна система розробки, а вартість є другорядним критерієм.

Крім того, у багатьох випадках має сенс враховувати і місце на ринку, яке займає постачальник процесора, т.к. далеко не всі виробники можуть надати у ваше розпорядження спектр процесорів, що покривають усі ваші потреби. Розподіл ринку, що склався до теперішнього часу між провідними постачальниками (див. табл. 1) показує, що 4 компанії, що стоять на початку списку, поставляють більше 80% всіх використовуваних у світі DSP. Саме ці компанії найбільш відомі і на російському ринку, і їхня продукція часто згадується в нашому журналі, наприклад, основні характеристики DSP виробництва Texas Instruments? Analog Devices розглядалися у №7 за 2005 р. та №1 за 2006 р.

Слід пам'ятати, що виробники DSP, проектуючи нові мікросхеми, досить чітко їх позиціонують для використання в тих чи інших додатках. Це впливає і їх архітектуру, і швидкодія, і оснащення процесора тим чи іншим набором периферійних модулів. У таблиці 2 показано позиціонування DSP з погляду їх авторів.

Таблиця 2. Області застосування сімейств сигнальних процесорів різних виробників

Обробка відео, відеоспостереження, цифрові камери, 3D графіка TMS320DM64x/DaVinci, TMS320C64xx, TMS320C62xx (TI), PNX1300, PNX1500, PNX1700 (Philips), MPC52xx (Freescale)
Обробка аудіо, розпізнавання мови, синтез звуку TMS320C62xx, TMS320C67xx (TI), SHARC (Analog Devices)
Портативні медіа пристрої TMS320C54xx, TMS320C55xx (TI), Blackfin (Analog Devices)
Бездротовий зв'язок, телекомунікації, модеми, мережеві пристрої TMS320C64xx, TMS320C54xx, TMS320C55xx (TI), MPC7xxx, MPC86xx, MPC8xx PowerQUICC II, MPC83xx PowerQUICC II Pro, MPC85xx PowerQUICC III (Freescale) lips)
Управління приводами, перетворення потужності, автомобільна електроніка, предмети домашнього вжитку, офісне обладнання TMS320C28xx, TMS320C24xx (TI), ADSP-21xx (Analog Devices), MPC55xx, MPC55xx (Freescale)
Медицина, біометрія, вимірювальні системи TMS320C62xx, TMS320C67xx, TMS320C55xx, TMS320C28xx (TI), TigerSHARC, SHARC (Analog Devices)

Формат даних та розрядність

Однією з основних характеристик цифрових сигнальних процесорів - формат оброблюваних даних.

Усі DSP працюють або з цілими числами, або з числами у форматі з плаваючою точкою, причому для цілих чисел розрядність становить 16 або 32, а для чисел з плаваючою точкою вона дорівнює 32. Вибираючи формат даних, необхідно мати на увазі наступне: DSP з цілими даними (або даними з фіксованою точкою) зазвичай дешевше і забезпечують більшу абсолютну точність при рівній розрядності (бо на мантису в 32-бітному процесорі з фіксованою точкою відводяться всі 32 біти, а в процесорі з плаваючою точкою - тільки 24). У той же час динамічний діапазон сигналів, з якими можуть без спотворень працювати процесори, процесори з фіксованою точкою значно вже (на кілька десяткових порядків). При відносно простих алгоритмах обробки може бути неважливо, т.к. динамічний діапазон реальних вхідних сигналів найчастіше менший, ніж допускає DSP, однак у деяких випадках можливе виникнення помилок переповнення під час виконання програми. Це призводить до принципово непереборних нелінійних спотворень вихідного сигналу, аналогічних спотворень через обмеження в аналогових схемах.

Отже, при виборі DSP необхідно ретельно аналізувати алгоритм обробки та вхідні сигнали для правильного вибору розрядності та типу арифметики. Іноді при неможливості підібрати відповідний процесор з плаваючою точкою (через більшу його вартість або енергоспоживання) використовують DSP з фіксованою точкою та стиснення динамічного діапазону оброблюваних сигналів (компресію), однак це призводить до збільшення складності алгоритму обробки сигналу та підвищує вимоги до швидкодії. Звичайно, можна емулювати операції з плаваючою точкою і на процесорі з цілою арифметикою або перейти до обробки чисел подвоєної розрядності, проте це також значно ускладнює програму і значно знижує швидкодію.

Незважаючи на всі обмеження, більшість вбудованих додатків використовують процесори з фіксованою точкою через меншу ціну та енергоспоживання.

Збільшення кількості розрядів підвищує вартість, розмір кристала та кількість необхідних висновків процесора, а також необхідний обсяг зовнішньої пам'яті. Тому розробники прагнуть використовувати кристал із мінімально можливою розрядністю.

Варто зауважити, що розрядність даних та розрядність команд процесорів не завжди еквівалентні.

Швидкість

Ключовий параметр при виборі процесора – це швидкість. Вона впливає час виконання обробки вхідного сигналу і, отже, визначає його максимальну частоту. Одна з найчастіших помилок розробника - ототожнення тактової частоти та швидкодії, що здебільшого неправильно.

Дуже часто швидкість роботи DSP вказують у MIPS (мільйонах інструкцій на секунду). Це найбільш просто вимірюваний параметр.

Однак проблема порівняння швидкості різних DSP полягає в тому, що процесори мають різні системи команд, і для виконання того самого алгоритму різними процесорами потрібно різне число цих команд. Крім того, іноді для виконання різних команд одним процесором потрібна різна кількість тактів синхронізації. В результаті процесор зі швидкістю 1000 MIPS цілком може виявитися в рази повільнішим за процесор зі швидкістю 300 MIPS, особливо при різній їх розрядності.

Одне з рішень цієї проблеми - порівнювати процесори за швидкістю виконання певних операцій, наприклад, операції множення з накопиченням (MAC). Швидкість виконання таких операцій є критичною для алгоритмів, що використовують цифрову фільтрацію, кореляцію та перетворення Фур'є. На жаль, така оцінка також не дає повної інформації про реальну швидкодію процесора.

Найбільш точною є оцінка швидкості виконання певних алгоритмів - наприклад, КІХ- та БІХ-фільтрації, проте це вимагає розробки відповідних програм та ретельного аналізу результатів тестування.

Мал. 1 Порівняння за швидкістю сучасних DSP різних виробників

Існують компанії, що займаються аналізом та порівнянням процесорів за основними характеристиками, у тому числі і за швидкістю. Лідером серед таких компаній є BDTI – Berkeley Design Technology, Inc. (www.bdti.com). Як приклад на малюнку 1 показано порівняння швидкості сучасних DSP різних виробників.

У статті розглянуто основні параметри цифрових сигнальних процесорів (DSP) та їх вплив на вибір відповідної мікросхеми, а також описано стан ринку DSP.

Вибираючи взуття, ми хочемо, щоб воно було модним, зручним і високою якістю, тому ми віддаємо перевагу відомим маркам, тим фірмам, які вже добре відомі і займають на ринку далеко не останні місця. Тепер потрібно визначитися: для чого нам потрібне це взуття? Якщо для ранкової пробіжки, то краще все-таки купити кросівки, а для корпоративного вечора туфлі. А що взувати в горах? У цьому випадку потрібне спеціальне міцне взуття з твердою підошвою - вібрами. А чим гірше DSP? Вибираючи цифровий сигнальний процесор, непогано було б представляти існуючий ринок DSP, знати основних виробників та напрямки розвитку створюваних ними процесорів.

DSP-процесори призначені для здійснення цифрової обробки сигналу – математичних маніпуляцій над оцифрованими сигналами. Вони широко застосовуються в бездротових системах, аудіо- та відеообробці, системах управління. Зі зростанням числа додатків, що використовують DSP, та складності алгоритмів обробки збільшується і вимоги до них у плані підвищення швидкодії та оснащеності інтерфейсними та іншими спеціалізованими вузлами. На цей час з'явилося безліч типів DSP, як універсальних, і орієнтованих досить вузьке коло завдань.

Звичайно, жоден з процесорів не може підійти для всіх програм. Тому перше завдання розробника - вибір процесора, що найбільше підходить за продуктивністю, ціною, наявності певної периферії, споживання потужності, простоті використання та іншим критеріям.

Наприклад, для таких портативних пристроїв, як мобільні телефони, портативні цифрові плеєри, вартість, ступінь інтеграції та споживана потужність є першорядними, а максимальна продуктивність часто не потрібна (бо зазвичай тягне за собою значне підвищення споживаної потужності, не даючи переваг при обробці щодо низькошвидкісних аудіоданих).

У той же час для гідроакустичних або радіолокаційних систем визначальними параметрами є швидкість роботи, наявність високошвидкісних інтерфейсів та зручна система розробки, а вартість є другорядним критерієм. Крім того, у багатьох випадках має сенс враховувати і місце на ринку, яке займає постачальник процесора, т.к. далеко не всі виробники можуть надати у ваше розпорядження спектр процесорів, що покривають усі ваші потреби. Розподіл ринку, що склався до теперішнього часу між провідними постачальниками (див. табл. 1) показує, що 4 компанії, що стоять на початку списку, поставляють більше 80% всіх використовуваних у світі DSP. Саме ці компанії найбільш відомі і на російському ринку, і їхня продукція часто згадується.

Таблиця 1. Основні виробники DSP та належні їм частки ринку

Компанії-лідери ринку Company Name Частка ринку DSP
1 Texas Instruments 54,3%
2 Freescale Semiconductor 14,1%
3 Analog Devices 8,0%
4 Philips Semiconductors 7,5%
5 Agere Systems 7,3%
6 Toshiba 4,9%
7 DSP Group 2,2%
8 NEC Electronics 0,6%
9 Fujitsu 0,4%
10 Intersil 0,3%
Інші компанії 0,5%
Total 100,0%

Слід пам'ятати, що виробники DSP, проектуючи нові мікросхеми, досить чітко їх позиціонують для використання в тих чи інших додатках. Це впливає і їх архітектуру, і швидкодія, і оснащення процесора тим чи іншим набором периферійних модулів. У таблиці 2 показано позиціонування DSP з погляду їх авторів.

Таблиця 2. Області застосування сімейств сигнальних процесорів різних виробників

Обробка відео, відеоспостереження, цифрові камери, 3D графіка TMS320DM64x/DaVinci, TMS320C64xx, TMS320C62xx (TI), PNX1300, PNX1500, PNX1700 (Philips), MPC52xx (Freescale)
Обробка аудіо, розпізнавання мови, синтез звуку TMS320C62xx, TMS320C67xx (TI), SHARC (Analog Devices)
Портативні медіа пристрої TMS320C54xx, TMS320C55xx (TI), Blackfin (Analog Devices)
Бездротовий зв'язок, телекомунікації, модеми, мережеві пристрої TMS320C64xx, TMS320C54xx, TMS320C55xx (TI), MPC7xxx, MPC86xx, MPC8xx PowerQUICC II, MPC83xx PowerQUICC II Pro, MPC85xx PowerQUICC III (Freescale) lips)
Управління приводами, перетворення потужності, автомобільна електроніка, предмети домашнього вжитку, офісне обладнання TMS320C28xx, TMS320C24xx (TI), ADSP-21xx (Analog Devices), MPC55xx, MPC55xx (Freescale)
Медицина, біометрія, вимірювальні системи TMS320C62xx, TMS320C67xx, TMS320C55xx, TMS320C28xx (TI), TigerSHARC, SHARC (Analog Devices)

Формат даних та розрядність

Однією з основних характеристик цифрових сигнальних процесорів - формат оброблюваних даних. Усі DSP працюють або з цілими числами, або з числами у форматі з плаваючою точкою, причому для цілих чисел розрядність становить 16 або 32, а для чисел з плаваючою точкою вона дорівнює 32. Вибираючи формат даних, необхідно мати на увазі наступне: DSP з цілими даними (або даними з фіксованою точкою) зазвичай дешевше і забезпечують більшу абсолютну точність при рівній розрядності (бо на мантису в 32-бітному процесорі з фіксованою точкою відводяться всі 32 біти, а в процесорі з плаваючою точкою - тільки 24).

У той же час динамічний діапазон сигналів, з якими можуть без спотворень працювати процесори, процесори з фіксованою точкою значно вже (на кілька десяткових порядків). При відносно простих алгоритмах обробки може бути неважливо, т.к. динамічний діапазон реальних вхідних сигналів найчастіше менший, ніж допускає DSP, однак у деяких випадках можливе виникнення помилок переповнення під час виконання програми. Це призводить до принципово непереборних нелінійних спотворень вихідного сигналу, аналогічних спотворень через обмеження в аналогових схемах.

Отже, при виборі DSP необхідно ретельно аналізувати алгоритм обробки та вхідні сигнали для правильного вибору розрядності та типу арифметики. Іноді при неможливості підібрати відповідний процесор з плаваючою точкою (через більшу його вартість або енергоспоживання) використовують DSP з фіксованою точкою та стиснення динамічного діапазону оброблюваних сигналів (компресію), однак це призводить до збільшення складності алгоритму обробки сигналу та підвищує вимоги до швидкодії.

Звичайно, можна емулювати операції з плаваючою точкою і на процесорі з цілою арифметикою або перейти до обробки чисел подвоєної розрядності, проте це також значно ускладнює програму і значно знижує швидкодію.

Незважаючи на всі обмеження, більшість вбудованих додатків використовують процесори з фіксованою точкою через меншу ціну та енергоспоживання. Збільшення кількості розрядів підвищує вартість, розмір кристала та кількість необхідних висновків процесора, а також необхідний обсяг зовнішньої пам'яті. Тому розробники прагнуть використовувати кристал із мінімально можливою розрядністю.

Варто зауважити, що розрядність даних та розрядність команд процесорів не завжди еквівалентні.

Швидкість

Ключовий параметр при виборі процесора – це швидкість. Вона впливає час виконання обробки вхідного сигналу і, отже, визначає його максимальну частоту. Одна з найчастіших помилок розробника - ототожнення тактової частоти та швидкодії, що здебільшого неправильно. Дуже часто швидкість роботи DSP вказують у MIPS (мільйонах інструкцій на секунду). Це найбільш просто вимірюваний параметр.

Однак проблема порівняння швидкості різних DSP полягає в тому, що процесори мають різні системи команд, і для виконання того самого алгоритму різними процесорами потрібно різне число цих команд. Крім того, іноді для виконання різних команд одним процесором потрібна різна кількість тактів синхронізації. В результаті процесор зі швидкістю 1000 MIPS цілком може виявитися в рази повільнішим за процесор зі швидкістю 300 MIPS, особливо при різній їх розрядності.

Одне з рішень цієї проблеми - порівнювати процесори за швидкістю виконання певних операцій, наприклад, операції множення з накопиченням (MAC). Швидкість виконання таких операцій є критичною для алгоритмів, що використовують цифрову фільтрацію, кореляцію та перетворення Фур'є. На жаль, така оцінка також не дає повної інформації про реальну швидкодію процесора.

Найбільш точною є оцінка швидкості виконання певних алгоритмів - наприклад, КІХ- та БІХ-фільтрації, проте це вимагає розробки відповідних програм та ретельного аналізу результатів тестування.

Існують компанії, що займаються аналізом та порівнянням процесорів за основними характеристиками, у тому числі і за швидкістю. Лідером серед таких компаній є BDTI – Berkeley Design Technology, Inc. (www.bdti.com). Як приклад на малюнку 1 показано порівняння швидкості сучасних DSP різних виробників.

Мал. 1. Приклад порівняння швидкодії різних DSP із фіксованою точкою

Організація пам'яті

Організація системи пам'яті процесора впливає продуктивність. Це пов'язано з тим, що ключові команди DSP є багатооперандними і прискорення їхньої роботи потребує одночасного читання кількох осередків пам'яті. Наприклад, команда MAC вимагає одночасного читання 2 операнда і самої команди для того, щоб її можна було виконати за 1 такт. Це досягається різними методами, серед яких застосування багатопортової пам'яті, поділ на згадку про програми та пам'ять даних (Гарвардська архітектура), використання кешу команд і т.д.

Необхідний обсяг пам'яті визначається програмою. Необхідно враховувати, що вбудована процесор пам'ять зазвичай має значно більшу швидкість роботи, ніж зовнішня, проте збільшення її обсягу збільшує вартість і енергоспоживання DSP, а обмежений обсяг пам'яті програм не дозволяє зберігати складні алгоритми. У той же час, при достатності цього обсягу для ваших цілей наявність вбудованої пам'яті дозволяє значно спростити конструкцію в цілому і знизити її розміри, енергоспоживання та вартість.

Більшість DSP з фіксованою точкою, що застосовуються у додатках, що вбудовуються, припускають малий обсяг внутрішньої пам'яті, зазвичай від 4 до 256 Кбайт і невисоку розрядність зовнішніх шин даних.

У той же час DSP з плаваючою точкою зазвичай припускають роботу з великими масивами даних і складними алгоритмами і мають або вбудовану пам'ять великого об'єму, або велику розрядність адресних шин для підключення зовнішньої пам'яті (іноді й інше). Ще раз наголосимо - вибір типу та обсягу пам'яті має бути результатом ретельного аналізу програми, в якій використовується DSP.

Зручність розробки додатків

Ступінь складності розробки визначається додатком. При цьому необхідно мати на увазі, що більша зручність для розробника (як правило, що пов'язується з використанням при програмуванні DSP мов високого рівня) в більшості випадків обертається отриманням менш компактного і швидкого коду, що обертається необхідністю використання більш потужних і дорогих DSP. З іншого боку, в сучасних умовах швидкість розробки (і, отже, виходу нового виробу ринку) може принести більше вигод, ніж витрати часу оптимізацію коду під час написання програми на асемблері.

Крім того, слід пам'ятати, що безпомилкових програм не буває, тому засоби налагодження та можливість корекції програм у готовому пристрої дуже часто мають першорядне значення. У той же час при виборі DSP та засобів розробки необхідно враховувати деякі особливості архітектури процесорів.

Ті, хто використовує компілятори з мов високого рівня (ЯВУ), іноді зауважують, що вони генерують найкращий код для процесорів з плаваючою точкою. Це відбувається з кількох причин: по-перше, більшість мов високого рівня спочатку не підтримують арифметику з фіксованою точкою, по-друге, система команд DSP з фіксованою точкою більш обмежена, і по-третє, процесори з плаваючою точкою зазвичай накладають менші обмеження на обсяг використовуваної пам'яті.

Найкращі результати виходять при компіляції програм на ЯВУ для VLIW-процесорів (процесорів із наддовгим словом команди) з простою ортогональною RISC-системою команд і великими реєстровими файлами. Однак навіть для цих процесорів генерований компілятором код виходить повільнішим порівняно з оптимізованим вручну асемблерним. З іншого боку, можливість спочатку змоделювати процес обробки сигналу в програмі типу MathLab з подальшою автоматичною трансляцією його в програму для DSP дозволяє позбавитися багатьох серйозних помилок ще на початковому етапі розробки.

Налагодження готових програм можна проводити або на апаратному емуляторі готової системи або на програмному симуляторі. Зазвичай налагодження на симуляторі дещо простіше з точки зору апаратури, що використовується, проте вона не дозволяє виявити всі можливі помилки. Багато виробників забезпечують розробників і симуляторами, і емуляторами своїх DSP. Майже всі сучасні DSP підтримують внутрішньосхемну емуляцію відповідно до стандарту IEEE 1149.1 JTAG. При використанні технології JTAG ми переходимо від емуляції процесора зовнішнім пристроєм до безпосереднього контролю над процесором під час виконання програми, що дозволяє значно збільшити рівень відповідності макета реальному пристрою і, отже, підвищити надійність процесу налагодження.

Крім емуляторів, виробники пропонують широкий набір так званих «стартер-китів» і «оцінних модулів», за допомогою яких можна відразу приступити до розробки програми, не чекаючи виготовлення макета пристрою, що розробляється. Крім цього, в деяких програмах ці засоби розробки можна використовувати як кінцеві пристрої.

Енергоспоживання

DSP-процесори широко використовуються у мобільних пристроях, де споживання потужності є основною характеристикою. Для зниження енергоспоживання використовується безліч методів, у тому числі зменшення напруги живлення та введення функцій управління споживанням, наприклад, динамічної зміни тактової частоти, перемикання в сплячий або черговий режим або відключення периферії, що не використовується в даний момент. Слід зазначити, що ці заходи значно впливають на швидкість роботи процесора і при некоректному використанні можуть призвести до непрацездатності проектованого пристрою (як приклад можна навести деякі стільникові телефони, які в результаті помилок у програмах управління енергоспоживанням іноді переставали включатися) або до погіршення його експлуатаційних характеристик (наприклад, значного часу відновлення працездатності при виході зі сплячого режиму).

Оцінка споживання потужності не є простим завданням, оскільки ця величина варіюється залежно від виконуваних процесором завдань. На жаль, більшість виробників публікують лише «типове» та «максимальне» споживання, а що розуміється під цими визначеннями, не завжди зрозуміло. Винятком є ​​компанія Texas Instruments, яка вказує на споживання потужності залежно від типу команди та конфігурації процесора.

Вартість

Вартість процесора, безперечно, є визначальною величиною при виборі DSP, особливо при великих обсягах виробництва. Зазвичай розробники прагнуть вибрати найдешевший процесор, проте слід враховувати, що це може призвести до значних витрат на переробку пристрою, якщо обраний процесор з якихось причин не дозволить досягти потрібних характеристик. Крім того, при виборі процесора за критерієм вартості необхідно брати до уваги вартість зовнішніх компонентів (наприклад, DSP з вбудованою пам'яттю достатнього об'єму коштує дорожче за аналогічний без вбудованої пам'яті, але ціна пристрою в цілому на його основі може бути значно нижчою через відсутність інших компонентів та меншого розміру друкованої плати). Дуже значущим фактором, що впливає на вартість DSP, є тип його корпусу: ІВ в керамічних корпусах, розраховані на промислові або спеціальні умови експлуатації, коштують значно дорожче за ті самі ІВ, що працюють у комерційному діапазоні температур. І, нарешті, ціна процесора дуже сильно залежить від обсягу та регулярності поставок.

Методологія вибору процесора

Як показано раніше, правильний вибір DSP залежить від програми: процесор може добре підходити для одних додатків, але абсолютно не підходитиме для інших. При виборі процесора необхідно визначити найважливіші у разі характеристики і розставити їх за рівнем важливості. Потім відповідно до цих критеріїв відібрати можливих кандидатів і, нарешті, вибрати з найкращих, звертаючи увагу на додаткові, не критичні характеристики. При цьому доцільно скористатися оцінкою характеристик процесорів, яка виробляється якоюсь авторитетною компанією (наприклад, BTDI). Слід пам'ятати, що BTDI проводить оцінку DSP не лише за швидкодією, а й за іншими критеріями: ефективність пам'яті, енергоспоживання тощо.

Наприклад, для реалізації програми для нас насамперед важливі швидкість, ціна, ефективність роботи пам'яті та енергоспоживання. Ми визначили основних претендентів, серед яких DSP з ядром C64x та C64x+ від Texas Instruments та TigerSHARC від Analog Devices. На малюнку 2 показаний граф порівняльних характеристик цих процесорів за критеріями швидкості, вартості, енергоспоживання та зручності засобів розробки.


Мал. 2. Діаграма для вибору DSP

Тепер пріоритети. Якщо нам в першу чергу потрібна висока швидкість та низька ціна, ми вибираємо Texas Instruments. Якщо ми конструюємо мобільний пристрій і нам потрібне низьке енергоспоживання, причому ми готові пожертвувати швидкістю, беремо Analog Devices. Не виключена ймовірність того, що вибрані процесори виявляться дуже близькими за ключовими параметрами. У цьому випадку вибір визначатиметься некритичними характеристиками: доступністю засобів налагодження, попереднім досвідом розробника, доступністю компонентів тощо.

Ретельний вибір цифрового сигнального процесора ще на початковому етапі розробки може допомогти позбутися зайвих витрат, пов'язаних з вибором невідповідного DSP, і скоротити час розробки в цілому, так і час і засоби на виявлення помилок.

Література

  1. Jeff Bier, Choosing a Processor: Benchmarks and Beyond (S043), Berkeley, California: Berkeley Design Technology, Inc., USA, 2006.
  2. Choosing a DSP Processor, Berkeley, California: Berkeley Design Technology, Inc., USA, 2000.