Контакти

Процесор цифрової обробки сигналів. Процесори і цифрові сигнальні процесори (DSP) Застосування dsp

Процесор цифрової обробки сигналів (Digital signal processor - DSP) - це спеціалізований програмований мікропроцесор, призначений для маніпулювання в реальному масштабі часу потоком цифрових даних. DSP-процесори широко використовуються для обробки потоків графічної інформації, аудіо- та відеосигналів.

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

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

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

Варіації на тему

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

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

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

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

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

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

Навіщо потрібні DSP-процесори?

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

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

Втім, спектр їх застосування цим далеко не обмежується. В силу великого числа арифметичних модулів, наявності інтегрованої на кристалі пам'яті і додаткових шин даних частина DSP-процесорів можуть використовуватися для підтримки багатопроцесорної обробки. Вони можуть виконувати стиснення / розпакування «живого відео» при передачі по Internet. Подібні високопродуктивні DSP-процесори часто застосовуються в обладнанні для організації відеоконференцій.

усередині DSP

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

Несподівано наткнувся на відео з "Чіп і Діп" # 1 Цифрова обробка звуку ADAU1701 | Відкритий проект | початок
І тут "накрило" всякими спогадами з приводу цієї теми. Вирішив перевірити, що діється в наш час на цьому фронті, знайшов що багато хорошого і цікавого.

Якість обробки значно зросла, ціна значно впала і звукові DSP (Digital Signal Processing) вже стукають до нас в будинок! :)
В даному відео розглядається чіп SigmaDSP ADAU1701 і я вирішив подивитися що можна з ним створити і був сильно вражений можливостями.
російською можна про них почитати (). Для мене цей DSP дозволяє побудувати нормальну акустичну систему із зовнішнім кросовером. Можливостей у системи неймовірно більше, ніж мої потуги. Вона дозволяє запрограмувати себе повного новачкові в програмуванні, але розуміла звукові компоненти і як вони працюють: фільтри; кросовери; еквалайзери і т.д. і т.п. Ці знання потрібні, щоб все це налаштовувати
Ось так виглядає приклад проекту в програмі обслуговуючої і програмує DSP:

Як бачите майже ніяких "цифрових значень", а все обзивається "по-звуковому".
Звичайно його АЦП і ЦАП "и далеко не Hi-End, а середній Hi-Fi, але для будинку цієї якості досить, а можливості дуже великі. Дуже добре, що DSP має подвійну точність обчислень (56-біт) і вона встановлена \u200b\u200bза замовчуванням .
Нуу ... маленькі / неповні дифірамби проспівали, тепер реальність.

Плата є в різних виконаннях:
Варіант 1
. Повна тестова плата від виробника варто ~ 12-15 тисяч рублів і дозволяє витворяти все що завгодно. ИМХО найбільша перевага перед іншими - це повний SPDIF, тобто і цифровий вхід і цифровий вихід результатів. Також дозволяє робити налагодження алгоритмів "на льоту". Замовляти "за бугром" з сайту виробника.
Варіант 2. Це злегка обрубаний макет від Кельні - набір BM2114dsp. У нього всі входи / виходи аналогові, але налагодження все також "на льоту".
Вартість 4900 руб.
варіант 3. Це максимально спрощений варіант використання DSP від \u200b\u200b"Чіп і Діп" їх лабороторіі "Електронний війська".
Комплект називається Digital Signal Processors RDC2-0027v1, Модуль цифрової обробки звуку на SigmaDSP ADAU1701, SigmaStudio
Це варіант з відсутністю програмування "на льоту". Створюєш бінарник, конвертіруешь і "заливаєш" за допомогою "свистка" в ERROM плати. Забирає це трохи часу, але забирає, і вимагає розуміння процесу. :)
Вартість плати 950 рубликів.

Так, уточню, плата після програмування працює як незавісісмое пристрій !!! Тобто ПК вічно не потрібен! І до плати можна підключати "крутилки" (енкодери); кнопочки і т.д., тобто зовнішніх методів регулювання досить, не обов'язково на кожен чих лізти в код DSP.
Вибір за вами...

Тепер стосовно моїх хотелок з минулого. Одна з великих проблем пасивних фільтрів - це фазові спотворення і чим більше крутизна спаду фільтрів, тим більше фазові спотворення. Через них виникає безліч призвуків від яких надзвичайно складно позбавиться і важко узгоджувати різні частотні діапазони.
Дані цифрові фільтри цим не страждають і дозволяють витворяти багато для узгодження смуг зрізу. Але виникає необхідність використовувати замість одного підсилювача - три, по одному на кожен частотний діапазон (раз колонка 3-х смуговий, то смуг 3 і підсилювачів виходить 3). Звичайно, їх можна оптимізувати за потужністю (припустимо в моєму випадку вийде НЧ - 30Вт; СЧ - 20 Вт; ВЧ - 10Вт), але тут на можливості і любителя, думаю уніфікація переможе. :)

Під кінець безліч відео

Приклад, як самому зварганити роботу по "цифрі"

Хлопець збирає монстра на двох DSP

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

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

Працюючи SSB і використовуючи апаратно-програмні можливості комп'ютера в обробці сигналу з мікрофона, який підключений до звукової карти комп'ютера (з подальшою подачею НЧ сигналу на балансний модулятор трансивера), затримка дуже істотна. Мова йде не просто про посилення сигналу з мікрофона до певного рівня за допомогою ЗК, а про використання спеціальних програм обробки сигналу в реальному часі. Ситуація ще більше загострюється при роботі такими цифровими видами як Amtor, Pactor, Packet, коли одночасно програмно комп'ютер використовується, скажімо, як Notch-фільтр і разом з наявними на станції TNC-контролером він забезпечує перераховані види робіт. Затримка в обробці сигналу в комп'ютері в таких випадках неприпустима. Для того щоб позбутися від цієї проблеми, застосовують звукову карту Audigy-2 (наприклад, AUDIGY-2 24 bit 96 kHz).

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

Все це можливо навіть при наявності персонального комп'ютера з процесором Pentium 200 ... 500 МГц, хоча застосування більш потужних машин вітається, оскільки з'являються ще більші можливості обробки сигналу із застосуванням програмного забезпечення - Plug In і відповідних програм, алгоритм обробки яких вимагає більш високої продуктивності комп'ютера.

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

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

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

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

Відомі фірми-виробники DSP обладнання - Behringer www.behringer.com, Alesis www.alesis.com і інші - мають величезний його перелік, і багато з нього з успіхом може бути застосована радіоаматорами.

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

Коротка довідка

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

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

Як всяке нове (особливо потребує вкладення грошей) напрямок, воно має своїх прихильників і супротивників. Для досягнення високого рівня якості потрібно застосування на передачу більш широкого фільтра в SSB-формирователе трансивера - 3 кГц, а не 2,4 кГц або 2,5 кГц, але це не виходить за рамки регламенту радіоаматорського зв'язку в частині, що застосовується.

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

«Hi-Fi Audio in SSB» - висока якість обробки НЧ-сигналу в SSB, або «Extended SSB» - розширене SSB - фрази, часто чутні і частково пояснюють вже більш ніж 10-річну активність радіоаматорів з усього світу на частоті 14178 кГц.

Тут знаходиться «круглий стіл» любителів студійних сигналів і способів їх отримання. Це «круглий стіл», який не має часу проведення. Робота ведеться практично цілодобово. У світі налічується трохи більше 100 активних радіоаматорів, що використовують ці технології Їх не дуже турбують QRM, тк вони вже досягли значних успіхів в оснащенні своїх станцій і мають не тільки високого класу трансивери підсилювачі потужності (часто класу High Power), а й, що найважливіше , ефективні спрямовані антени

Багато чують при практично будь-якому проходженні, а іноді і при його відсутності Білла, W2ONV, з Нью-Джерсі - найстарішого радіоаматора і великого фахівця в області обробки звуку за допомогою зовнішніх DSP-пристроїв Маючи потужність 1,5 кВт (максимально дозволену в США) і два сфазіровать чотириелементних хвильових каналу, він протягом вже багатьох років практично завжди чути в Європі на частоті 14178 кГц Люди, що працюють на цьому «круглому столі» - різного віку, в основному, від 30 до 80 років, причому тон в роботі більшою мірою задають радіоаматори старшої вікової групи і це не данина поваги старшому поколінню, це констатація факту Саме вони мають великі успіхи в області цифрової обробки, оскільки володіють достатніми знаннями і більш серйозним обладнанням.

Радіоаматори на «14178» - витримані і спокійні, повністю захоплені своєю справою Початківцям колегам ентузіастам завжди раді і надають їм всіляку допомогу Великий внесок у розвиток обробки звуку вносять самі ж радіоаматори, розміщуючи на своїх WEB-сторінках в Інтернеті корисну інформацію Багато хто погодиться, що величезний внесок у розвиток цього напрямку вніс John, NU9N, який створив сайт в Інтернеті (www.nu9n.com), де він розмістив практично підручник із застосування зовнішніх пристроїв цифрової обробки, послідовності їх підключення (дуже важливе питання) установці параметрів На сайті NU9N можна також скачати зразки DSP-сигналів багатьох радіоаматорів Слухати їх досить цікаво.

На жаль, в кількісному плані станції з колишнього Союзу представлені на 14178 кГц дуже слабо - Василь, ER4DX, Ігор, EW1MM, Сергій, EW1DM, Сергій, RW3PS, Віктор, RA9FIF і Олег, RV3AAJ (інших даних немає) Позначається відсутність зайвих фінансів на придбання аудіо- обладнання, а також менталітет людей - коли немає часу і коштів всім цим займатися, значить, це погано, значить, це не потрібно Очевидно, слід зупинитися на тому, що всі напрямки в радіоаматорство мають право на життя, будь то змагання, робота QRP (або QRO), DX'ing і навіть відсутність у деяких знань азбуки Морзе, іноземної мови та багато чого іншого - це ж теж «напрямок», і ми, на жаль, до цього вже ніби як і починаємо звикати.

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

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

ОсобливостіDSP

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

Трехшінная Гарвардська архітектура

Її особливість полягає перш за все в тому, що на відміну від звичних нам двох шин: шини адреси і шини даних, а також одного банку пам'яті, DSP має як мінімум 6-7 різних шин і 2-3 банки пам'яті. Ця особливість має на меті максимально прискорити виконання операції множення зі збереженням результату, яка, без сумніву, є найбільш уживаною і ресурсномісткої при цифровій обробці сигналів. Архітектура DSP дозволяє за один машинний цикл провести:

  • вибірку команди за допомогою шини адреси програм і шини даних програм;
  • вибірку двох операндів для операції множення за допомогою двох шин адреси даних;
  • занесення операндів в акумулятори за допомогою двох шин даних;
  • операцію множення;
  • зберегти результат в акумуляторі.

Таким чином, трехшінная Гарвардська архітектура дозволяє виконати практично будь-яку операцію за один машинний цикл.
B Як приклад ефективності використання DSP при реалізації алгоритмів цифрової обробки сигналів можна навести такий факт: час виконання комплексного 1024-точкового перетворення Фур'є складає 20 мс для 486DX2 66 МГц (32-розрядний) і 3.23 mc для 24-розрядної 33 МГц DSP56001 фірми Motorola або 3.1 мс для 32 розрядного 33 МГц DSP TMS320C30 з плаваючою арифметикою фірми Texas Instruments.
Однак, як уже згадувалося, процесори цифрової обробки сигналу мають відмінністю не тільки високу продуктивність, що вимірюється в швидкості виконання операцій множення / акумуляції (MIPS - мільйони команд в секунду), а й такі характеристики, як послідовність виконання програм, арифметичних операцій і адресації пам'яті, що дозволяють скоротити до мінімуму непродуктивні витрати часу. В цілому DSP відрізняється від інших типів мікропроцесорів і мікроконтролерів за наступними п'ятьма основними ознаками:

  • Швидка арифметика.

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

  • Розширений динамічний обсяг для операції множення / акумуляції.

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

  • Вибірка двох операндів за один цикл.

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

  • Наявність апаратно реалізованих циклічних буферів (вбудованих і зовнішніх).

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

  • Організація циклів і розгалужень без втрати в продуктивності.

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

DSPфірмиMotorola

Фірмою Motorola в даний час випускається три сімейства Цифрових Процесорів Сигналів. Це серії DSP56100, DSP56000 і DSP96000. Всі мікросхеми наведених серій грунтуються на архітектурі DSP56000 і розрізняються розрядністю (16, 24, 32 біт відповідно) і деякими вбудованими пристроями. Таким чином досягається сумісність мікросхем всіх трьох сімейств від низу до верху. Все DSP фірми Motorola побудовані за ідентичною трехшінной Гарвардської архітектури, описаної раніше, з великою кількістю складових частин, Портів, контролерів, банків пам'яті і шин, що працюють паралельно з метою досягнення максимальної швидкодії.
Передача даних відбувається по двонаправленим шинам даних (однієї для DSP56100 (XDB) і двом для DSP56000 і DSP96000 (XDB і YDB)), шині даних програм (PDB) і загальної шини даних (GDB). Крім того, у DSP96000 присутній окрема шина прямого доступу до пам'яті (DDB). Передача даних між шинами відбувається через внутрішнє пристрій управління шинами.
адресація здійснюється за двома односпрямованим шинам: шині адреси даних і шини адреси програм.
Блок маніпуляції бітами дозволяє гнучко управляти станом будь-якого біта в регістрах і комірках пам'яті. Наявність такої можливості є перевагою по відношенню до DSP інших користувачів.
Арифметико-логічний пристрій (АЛП) виконує всі арифметичні і логічні операції і має в своєму складі вхідні регістри, акумулятори, регістри розширення акумуляторів (8-бітові, що допускають 256 переповнень без втрати точності), паралельний одноцікловой блок множення зі збереженням (МАС), а так само зсувні регістри.Гібкая система команд дозволяє виконати АЛП за один цикл команди множення, множення зі збереженням результату, підсумовування, віднімання, зсуву і логічні операції. Характерною особливістю DSP фірми Motorola є можливість здвоювання вхідних регістрів АЛУ і збільшення таким чином розрядності оброблюваних чисел. Ще однією важливою особливістю є наявність операції ділення, часто відсутня у інших виробників і замінної операцією множення на зворотне число, що призводить до втрати точності.
Блок формування адреси виконує всі обчислення, пов'язані з визначенням адрес в пам'яті. Цей блок працює незалежно від інших блоків процесора. За один цикл можуть проводитися дві операції зчитування з пам'яті або одна операція запису. DSP фірми Motorola володіють надзвичайно потужною потужною системою адресації, що дозволяє виробляти практично будь-які маніпуляції з даними за одну команду. Це важлива особливість вигідно відрізняє DSP, що випускаються фірмою, від аналогів. Адресація по модулю зручна для організації кільцевих буферів без перевірки виходу за кордон, що дозволяє уникати непродуктивних витрат часу. Можливість адресації з інверсією значущих бітів полегшує реалізацію ШПФ.
блок управління виконанням програм містить 6 регістрів, серед яких Покажчик адреси циклу і лічильника циклів, Що дозволяють організувати апаратну підтримку організації циклів в DSP фірми Motorola, при якій не витрачаються додаткові машинні цикли на перевірку умови виходу з циклу і зміни лічильника циклу. У команді організації циклу DO явно вказується кількість повторень.
Системний стек вдає із себе окрему частину з 15 слів ОЗУ, і може зберігати інформацію про 15 переривання, 7 циклах або 15 виходах в підпрограму. Дані з стека читаються за один цикл зменшуючи таким чином непродуктивні витрати часу процесора.
Головною відмінною рисою DSP фірми Motorola є наявність у всіх мікросхем внутрикристальной емулятора, Що дозволяють виробляти налагодження програм без використання додаткових апаратних засобів. Таким чином немає необхідності в покупці дорогих налагоджувальних засобів. Емулятор дозволяє проводити запис / зчитування регістрів і комірок пам'яті, установку точок зупину, покрокове виконання програм і інші дії за допомогою подачі команд по 4 провідній шині.
Для зниження споживання енергії в моменти, коли не проводиться обчислення, передбачені два режими зі зниженим енергоспоживанням: STOPі WAIT.
Для роботи спільно з іншими процесорами і каналами прямого доступу до пам'яті передбачений вбудований HOST-інтерфейс.
Володіючи всіма перерахованими вище властивостями, необхідними для цифрової обробки сигналів, DSP фірми Motorola мають надзвичайно потужну і гнучку систему команд, що дозволяє користувачеві зручно і ефективно працювати з процесорами.

сімейство DSP96000

Сімейство DSP DSP96000 має 32-бітну архітектуру і підтримує операції з плаваючою точкою. Мікросхеми сімейства призначені для комп'ютерних систем Multimedia. DSP цієї серії можуть працювати і як самостійні мікросхеми, і через два незалежних 32-бітних порту можуть послідовно обмінюватися даними з іншими процесорами.
Мікросхеми сімейства мають в своєму складі 6 банків пам'яті, 8 шин і 4 автономних обчислювальних блоку: АЛУ, блок управління програмою, подвійний блок генерації адреси і вбудований двоканальний контролер прямого доступу до пам'яті.
Характеристики мікросхем сімейства DSP96000:

  • 49.5 MIPS при 40 МГц
  • 60 MFLOPS при 40 МГц, цикл 50 нс
  • 32-бітна організація
  • 2 банки пам'яті даних ОЗУ 512х32 біт
  • 2 банки пам'яті даних ПЗУ 512х32 біт
  • ОЗУ програм 1024х32 біт
  • завантажувальний ПЗП об'ємом 56 байт
  • адресуемая зовнішня пам'ять 2х232 32-бітних слів пам'яті даних і програм
  • вбудований емулятор
  • 2 канали прямого доступу до пам'яті
  • 2 канали обміну з зовнішніми процесорами
  • корпус з 223 висновками в корпусі PGA або QFP

DSPфірмиTexasInstruments

DSP цієї фірми представлені такими мікропроцесорами: TMS 32010, TMS 320C20, TMS 320C25, TMS 320C30, TMS 320C40, TMS 320C50.

Особливості архітектури ТMS320C25

Архітектура TMS320C2x заснована на архітектурі TMS32010 - першому члені мікропроцесорного сімейства DSP. Крім того, набір його команд перекриває набір команд мікропроцесора TMS32010, що зберігає програмну сумісність знизу вгору.
Мікропроцесор TMS320C2x має один акумулятор і використовує Гарвардської архітектуру в якій пам'ять даних і пам'ять програм рознесені в різні адресні простори. Це дозволяє повністю перекрити в часі виклик і виконання команди. Система команд включає команди обміну даними між двома областями пам'яті. Поза мікропроцесора простору пам'яті даних і програм об'єднані на одну і ту ж шину для того, щоб максимально збільшити діапазон адрес в обох областях пам'яті і одночасно максимально зменшити кількість вивідних контактів. Усередині мікропроцесора простору програм і даних виведені на різні шини, щоб збільшити потужність процесора і швидкість виконання програм.
Підвищена гнучкість конструкції системи забезпечується розташованими на кристалі двома великими блоками пам'яті RAM, один з яких може використовуватися і як пам'ять програм і як пам'ять даних. Більшість команд процесора виконуються за один машинний цикл з використанням як зовнішньої пам'яті програм зі швидкою вибіркою, так і з використанням внутрішньої пам'яті RAM. Гнучкість мікропроцесора TMS320C2x передбачає також підключення повільної зовнішньої пам'яті або периферійних пристроїв, використовуючи сигнал READY; але в цьому випадку команди виконуються за кілька машинних циклів.

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

На кристалі TMS32020 знаходиться 544 16-розрядних слова пам'яті RAM, з яких 288 слова (блоки B1 і B2) завжди відведені під дані, а 256 слів (блок B0) в різних конфігураціях процесора можуть використовуватися або як пам'ять даних, або як пам'ять програм. TMS320C25 крім того забезпечений маскируемое ПЗУ (ROM), об'ємом 4К слів, а TMS320E25 - пам'яттю 4К слів з ультрафіолетовим стиранням EPROM.
TMS320C2x забезпечений трьома розділеними адресними просторами - для пам'яті програм, для пам'яті даних і для пристроїв введення / виводу, як показано на рис. 6.5. Ці простору поза кристала розрізняються за допомогою сигналів -PS, -DS, -IS (для просторів програми, даних, введення / виведення відповідно). Блоки пам'яті B0, B1, B2, розташовані на кристалі, охоплюють в сумі 544 слова пам'яті з довільним доступом (RAM). RAM блок B0 (256 слів) розташовується на 4 і 5 сторінках пам'яті даних, якщо він відведений під дані, або за адресами\u003e FF00 -\u003e FFFF, якщо він є частиною пам'яті програм. Блок B1 (тільки для даних) розташовується на 6 і 7 сторінках, а блок B2 займає старші 32 слова 0 сторінки. Відзначимо, що решту 0 сторінки займають 6 адресованих регістрів і резервна область; 1 - 3 сторінки також представляють собою резервну область. Резервні області не можна використовувати для зберігання інформації, при читанні їх вміст не визначено.
Внутрішня пам'ять програм (ROM), розташована на кристалі процесора може бути використана в якості молодших 4К слів пам'яті програм. Для цього на контакт MP / * MC повинен бути поданий сигнал низького рівня. Для заборони використання внутрішньої області ROM на MP / * MC треба подати високий рівень.

зовнішня пам'ять і інтерфейс введення / виводу

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

  • 16-ти розрядної шини даних (D0-D15);
  • 16-ти розрядної шини адреси (A0-A15);
  • адресних просторів даних, програм і введення / виводу обираних сигналами (* DS, * PS і * IS);
  • різних сигналів управління системою.

Сигнал R / * W керує напрямком передачі, а сигнал * STRB управляє передачею.
Простір вводу / виводу містить 16 портів для введення і 16 портів для виведення. Ці порти забезпечують повний 16-розрядний інтерфейс зі зовнішніми пристроями по шині даних. Одноразовий введення / виведення за допомогою команд IN і OUT виконується за два командних циклу; однак використання лічильника повторень знижує час одного звернення до порту до 1-го циклу.
Використання введення / виведення спрощується тим, що введення / виведення здійснюється також, як і звернення до пам'яті. Пристрої введення / виведення відображаються в адресному просторі введення / виводу, використовуючи зовнішні адреси процесора і шину даних, таким же чином, як пам'ять. При адресації внутрішньої пам'яті шина даних знаходиться в третьому стані, а керуючі сигнали в пасивному стані (високому).
Взаємодія c пам'яттю і пристроями введення / виводу на різних швидкостях супроводжується сигналом READY. При зв'язку з повільними пристроями, TMS320C2x чекає, доки пристрій не завершить свою роботу і просигналізує процесору про це через лінію READY, після чого процесор продовжить роботу.

Центральне арифметико-логічний пристрій

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

  1. дані захоплюються з RAM на шину даних,
  2. дані проходять через масштабуючий зсувний регістр і через ALU, в якому виконуються арифметичні операції,
  3. результат передається в акумулятор.

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

конвеєрні операції

Конвеєр команд складається з послідовності операцій звернення до зовнішньої шині, які виникають протягом виконання команд. Конвеєр "предвибірки-декодування-виконання" зазвичай непомітний для користувача, за винятком деяких випадків, коли конвеєр повинен бути перерваний (наприклад, при розгалуженні). Під час роботи конвеєра предвибірки, декодування і виконання команд незалежні один від одного. Це дозволяє командам перекриватися. Так протягом одного циклу дві або три команди можуть бути активні, кожна на різних етапах роботи. Тому виходить дворівневий конвеєр для TMS32020 і трирівневий для TMS320C25.
Кількість рівнів конвеєра не завжди впливає на швидкість виконання команд. Більшість команд виконується за один і той же кількість циклів незалежно від того, з якої пам'яті вибираються команди: зовнішньої, внутрішньої RAM або внутрішньої ROM.
Додаткові апаратні засоби, наявні на процесорі TMS320C25, дозволяють розширити кількість рівнів конвеєра до трьох, що підвищує продуктивність процесора. До цих засобів відносяться лічильник предзахватов (PFC), 16-розрядний стек мікровизовов (MCS), регістр команд (IR), і регістр черзі команд (QIR).
При трьохрівневому конвеєрі PFC містить адресу наступної команди, яка повинна бути предзахвачена. Як тільки предзахват здійснений, команда завантажується в IR. Якщо ж IR зберігає команду, яка ще не виконана, то предзахваченная команда поміщається в QIR. Після цього PFC збільшується на 1. Як тільки поточна команда буде виконана, команда з QIR буде перевантажена в IR, для подальшого виконання.
Лічильник команд (PC) містить адресу команди, яка повинна бути виконана наступної, і не використовується для операцій захоплення.
Але зазвичай PC використовується в якості покажчика на поточну позицію в програмі. Вміст PC збільшується після кожної виконаної команди. Коли виникає переривання або виклик підпрограми, вміст PC поміщається в стек, щоб в подальшому можна було виконати повернення в потрібне місце програми.
Цикли предзахвата, декодування і виконання конвеєра незалежні один від одного, це дозволяє перекриватися виконуваним командам в часі. Протягом будь-якого циклу три команди можуть бути одночасно активні, кожна на різних стадіях завершення.



Сподобалася стаття? поділіться їй