Процесори цифрового оброблення сигналів. Посібник новачка з цифрової обробки сигналів (DSP)

Ця стаття відкриває серію публікацій, присвячених багатоядерним цифровим сигнальним процесорам 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.

Що таке 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) показує, що 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.

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

Прості радянські інженери, не допущені на найбільші світові професійні семінари з електроніки і не присвячені таємниці, розвідані КДБ, могли судити про розвиток електроніки за програмою "Час" та голлівудськими фільмами десятирічної давності. Після захоплень про електронні штучки Джеймсов Бондов робився висновок, що: все це спецефекти кінематографа; все створено на спеціалізованих мікропроцесорах (ніколи не уточнювалося, на яких); і що "у нас, де треба і в кого треба їсти речі і крутіше". Після таких глибокодумних висновків радянські інженери з новим творчим поривом у своїх НДІ продовжували створювати шедеври на 155-х ТТЛ-мікросхемах, або, наближені до військово-промислового комплексу, на 133-й серії.

На свій сорому, повинен зізнатися, що я також, приблизно до середини дев'яностих років, мав на увазі, що спеціалізовані процесори - щось зовсім складне і неймовірне. Але, на щастя, часи змінилися і першими спеціалізованими процесорами, з якими мені довелося познайомитися, стали процесори цифрової обробки сигналів або сигнальні процесори (ЦСП, DSP - Digital Signal Processor).

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

Сигнальні процесори з'явилися на початку 80-х. Першим широко відомим сигнальним процесором став випущений у 1982 році фірмою Texas Instruments ЦСП TMS32010, з продуктивністю в кілька MIPS (мільйонів інструкцій на секунду), створений за 1,2 мкм технології. Після Texas Instruments ЦСП стали випускати й інші фірми. В даний час Texas Instruments є лідером із виробництва ЦСП, їй належить близько половини ринку цих контролерів. Другим за величиною виробником ЦСП є компанія Lucent Technologies, яка виготовляє близько третини цих пристроїв. Замикають четвірку лідерів Analog Devices і Motorola, які мають приблизно рівну частку ринку і випускають разом приблизно чверть ЦСП. На частку інших виробників, хоча серед них знаходяться такі відомі фірми, як Samsung, Zilog, Atmel та інші, припадають 5-6 відсотків ринку сигнальних процесорів, що залишилися.

Зрозуміло, що законодавцями мод серед виробників є компанії-лідери у цій галузі та насамперед Texas Instruments. Політика компаній лідерів під час виробництва та просування сигнальних процесорів суттєво відрізняється.

Texas Instruments ставить завдання виробництва максимально широкого асортименту, здатного перекрити всі можливі застосування процесорів за все більшої продуктивності. В даний час продуктивність сигнальних процесорів досягає до 8800 MIPS, і виробляються вони за технологією від 0,65 до 0,1 мкм. Тактова частота сягає 1,1 ГГц.

Lucent Technologies орієнтується на великих виробників кінцевого обладнання та пропонує свою продукцію через дистриб'юторську мережу, не вдаючись до широкої рекламної компанії. Фірма спеціалізується на ЦСП для телекомунікаційного устаткування, зокрема, у такому перспективному нині напрямі, як створення станцій стільникового зв'язку.

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

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

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

Характеристики ЦСП-процесорів

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

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

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

Побудова пам'яті з множинним доступом досягається переважно за рахунок застосування Гарвардської архітектури. Під Гарвардською архітектурою розуміється така архітектура, яка має дві фізично розділені шини даних, що дозволяє здійснити два доступи до пам'яті одночасно. Але для виконання DSP-операцій цього недостатньо, особливо при використанні в команді двох операндів. Тому Гарвардська архітектура додається ще кеш-пам'яттю для зберігання тих інструкцій, які будуть використовуватися знову. При використанні кеш-пам'яті шина адреси та шина даних залишаються вільними, що уможливлює вибірку двох операндів. Таке розширення – Гарвардська архітектура плюс кеш – називають розширеною Гарвардською архітектурою або SHARC (Super Harvard ARChitecture).

Конкретні характеристики ЦСП розглянемо сімейство DSP568xx компанії Motorola, у яких поєднані особливості цифрових сигнальних процесорів і універсальних мікроконтролерів.

Ядро DSP56800 є програмованим 16-розрядним КМОП-процесором, призначеним для виконання цифрової обробки сигналів у реальному масштабі часу та вирішення обчислювальних завдань, і складається з чотирьох функціональних пристроїв: управління, генерації адрес, АЛП, обробки бітів. Для збільшення продуктивності операції у пристроях виконуються паралельно. Кожен із пристроїв може функціонувати незалежно та одночасно з трьома іншими, т.к. має свій набір регістрів та логіку управління. Ядро реалізує одночасне виконаннякількох дій: пристрій управління вибирає першу команду, пристрій генерації адрес формує їх адреси другої команди, а АЛУ виконує множення третьої команди. Широко використовуються суміщені передачі та виконання операцій.

Вбудована пам'ять може містити (для сімейства):

Флеш-пам'ять програм до 60К

Флеш-пам'ять даних до 8К

ОЗУ-програм до 2К

ОЗУ-даних до 4К

Флеш-пам'ять програми завантаження 2К

На мікрочіпах сімейства реалізовано велику кількість периферійних пристроїв: ШІМ-генератори, 12-розрядні АЦП з одночасною вибіркою, квадратурні декодери, чотириканальні таймери, контролери CAN-інтерфейсу, двопровідні послідовні комунікаційні інтерфейси, послідовні інтерфейси. та ін.

загальні характеристики

Продуктивність 40 MIPS при тактовій частоті 80 МГц та напрузі живлення 2.7:3.6;

Однотактний паралельний 16х16 помножувач-суматор;

Два 36-розрядні акумулятори, включаючи біти розширення;

Однотактний 16-розрядний пристрій циклічного зсуву;

Апаратна реалізація команд DO та REP;

Три внутрішні 16-розрядні шини даних та три 16-розрядні шини адреси;

Одна 16-розрядна шина зовнішнього інтерфейсу;

Стек підпрограм та переривань, що не має обмеження по глибині.

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

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

Наскільки несподіваними можуть бути застосування сигнальних процесорів, мені довелося нещодавно переконатися саме на прикладі іграшки. Одного разу до мене звернувся знайомий і попросив полагодити ляльку, що промовляє, яку подарували його дочці німецькі знайомі. Лялька і справді була чудовою, за словами знайомого, вона розуміла до півсотні фраз і "свідомо" підтримувала розмову. У Німеччині коштувала сто п'ятдесят марок, що навело мене на роздуми, що про поломку ляльки більше шкодують батьки, ніж їхнє чадо. Донька й так любила ляльку, тим більше, що перш ніж стати німою, та розмовляла німецькою мовою. Без жодної надії на успіх взявся я за ремонт цієї ляльки. Напилком спилив епоксидну смолу, якою була залита схема і під товстим-товстим шаром епоксидки виявив півдесятка корпусів мікросхем, центральним з яких був ЦСП до DSP56F... останні цифри, на жаль, безповоротно стерлися. Змусити ляльку заговорити так і не вдалося, і наскільки додавав їй інтелекту сигнальний процесор, я так і не визначив. Як потім виявилося, старший син моїх знайомих, щоб змусити ляльку кричати голосніше, спочатку приєднував до неї напругу замість 3 в, 4,5 вольта, що було ще не "смертельно", і іграшка хоч і хрипіла, але репетувала, ну а після 220в .... Звідси перший висновок – високі технології хороші, але не завжди і не скрізь. Висновок другий - невдовзі, можливо, ЦСП ми зможемо побачити в кухонному посуді, взутті та одязі, принаймні технічних перешкод до цього немає.