Цифрови сигнални процесори
Начало > Електроника > Статии > Сп. Инженеринг ревю - брой 5, 2007
Стефан Куцаров
Първият цифров сигнален процесор (Digital Signal Processor) DSP на Intel през 1978 г. се появява преди почти 30 години. Той и последвалите го DSP на компании като AMI, Bell Labs и NEC имат голямата заслуга на пионери, но не се радват на особен успех. През 1983 г. Texas Instruments пуска своя TMS32010, последван малко по-късно от 56000 на Motorola. Те вече съдържат основните и задължителни днес блокове на един DSP, работят с 16-разредни числа и намират значимо място на пазара. Второто поколение DSP се появява през 1988 г., вече има вградена памет и с него започва използването на 24-разредни числа. Следва третото поколение през 1995 г., характерно с извършването на значително по-сложни математически операции (действия с матрици и преобразувание на Фурие) и въвеждането за пръв път от Motorola на многоядрени DSP (Multicore DSP), съдържащи няколко паралелно работещи процесора. Днес DSP вече не са екзотика, използвана само в специализирани системи, а имат своето място в масово произвеждани електронни устройства от най-различен тип.
Настоящата статия е посветена на особеностите, архитектурата, действието и основните параметри на съвременните DSP. Дадени са таблични данни за характерни ИС и характерни техни приложения.
Същност на DSP
Предназначението на DSP е за осъществяване на различни видове преобразувания (филтриране, отстраняване на шумове, компресия и декомпресия според определен стандарт) на аналогови сигнали в реално време. За целта чрез аналоговоцифров преобразувател ADC сигналът за обработка се превръща в цифров и постъпва на входа на DSP (фиг. 1). Както е известно, честотата на квантуване fCLK на ADC трябва да е поне 2 пъти по-голяма от най-високата честота на преобразувания сигнал. При фиксирана fCLK на входа на ADC не трябва да постъпват аналогови сигнали с честоти над 0,5 fCLK, тъй като след обработката им с DSP неправилно се възстановяват в такива с по-ниска честота. За тяхното отстраняване е поставен нискочестотния филтър AAF, известен като anti-aliasing filter. Изходните данни на DSP чрез цифровоаналогов преобразувател DAC отново се превръщат в аналогов сигнал, чието изглаждане изисква друг нискочестотен филтър AIF (anti-imaging filter, reconstruction filter).
Аналогично на микропроцесорите DSP представляват физическа среда, която чрез подходящо програмиране работи като аналогова схема от определен вид със зададени параметри. Като езици най-често се използват асемблер, С, С++, ЕС++ или специализирани за DSP (напр. VisualDSP++). Програмата се записва в паметта на DSP, но винаги може да се използва и външна памет. Изпълнението й се свежда до действията събиране, изваждане и умножение на двоични числа и изпълняването на някои логически функции върху тях, придружени от запомняне на междинните и крайните резултати. Няколко са предимствата от използването на DSP - избягват се сложните и скъпи настройки на аналогови блокове, осигурява се голяма стабилност на параметрите при външни въздействия и във времето, има възможност за промяната им по програмен път.
Като пример на фиг. 2 е даден израз за изходната величина y(n) на нискочестотен цифров рекурсивен филтър, известен и като филтър с крайна импулсна характеристика (FIR) и неговата реализация. С х-1 са означени звена, осигуряващи закъснение с един такт. Вижда се, че за получаване на y(n) се използват само действията умножение на изходната величина на всяко от звената с коефициент и събиране на произведенията. Амплитудночестотната характеристика (АЧХ) на филтъра се определя от броя на звената N и коефициентите a(k), които се задават чрез програмата. С увеличаване на N нараства стръмността на АЧХ в лентата на непропускане на филтъра.
Три са основните разлики между DSP и микропроцесорите. Преди всичко DSP са оптимизирани за бързо извършване на математически действия, докато при микропроцесорите основната цел е максимално бързо подреждане на данни (например правене на таблици) и/или преместването им от едно място на друго (например изпращане по мрежа). Втората разлика е, че в микропроцесорите данните се вкарват изцяло и след това започва обработката им (Off-Line Processing), докато всяка получавана на изхода на ADC стойност на аналоговия сигнал веднага постъпва в DSP и обработката й, т.е. изпълняването на необходимата програма и получаването на съответстващия изходен сигнал, завършва преди идването на следващата стойност (Real-Time Processing). Следствие от това е третата разлика - DSP трябва да изпълни дадена програма за определено време, което не се изисква от микропроцесорите. Това е ясно от ежедневната ни работа с компютър, например времето за изтегляне на файл никога не е фиксирано.
Най-новите тенденции са за постепенно сближаване на DSP и микропроцесорите. Засега те се проявяват само в някои модели 16-разредни DSP, които чрез подходящо програмно осигуряване могат да изпълняват някои функции на 32-разредни RISC процесори.
Основни архитектури.
При работата на DSP се налага непрекъснат обмен на данни (Data) и команди (Instruction) между обработващия блок (Central Processing Unit) CPU и паметта, който силно влияе върху бързодействието. В зависимост от начина на осъществяване на този обмен съществуват 3 основни архитектури на DSP. Първата (фиг. 3а) е архитектурата на фон Нойман (Von Neumann Architecture), която съдържа една памет Mem за съхраняване на данните и командите, обща шина (D Bus) за обменянето им с CPU и една адресна шина (A Bus). Умножаването на две числа изисква поне 3 такта – за изтегляне на всяко от тях и на командата за умножение от паметта. Тази архитектура се използва в голяма част от компютрите, но приложението й в DSP е ограничено. Следващата е архитектурата Харвард (Harvard Architecture). В нея има отделни памети за данните (Data Mem) и командите (Program Mem), всяка от които е със собствена адресна шина и шина за данни. Широкото й приложение в DSP се дължи на едновременното изтегляне на данни и команди, което е предпоставка за увеличаване на бързодействието. Независимо от това предимство решението не е оптимално, защото шината за данни на паметта (DM D Bus) е заета повече време (например за да бъдат прехвърлени двата множителя на произведение) от тази за командите (PM D Bus), по която в примера се прехвърля само една команда. И тъй като огромната част от алгоритмите осъществяват многократно изпълнение именно на такива действия, различието във времената на заетост е сериозно ограничение на бързодействието. То може да се избегне като командите се прехвърлят с един цикъл в бърза оперативна памет (Instruction Cache), разположена в самия CPU. Именно това е една от основните особености на архитектурата супер Харвард (Super Harvard Architecture) SHARC (фиг. 3в), разработена от Analog Devices.
Втората важна особеност е наличието на допълнителен контролер за обмен на данни между външни устройства и паметта за данни (I/O Controller). Резултатът от тези нововъведения е едновременното прехвърляне за един такт на данни от ADC в паметта за данни и от паметта за команди и бързата памет в CPU. Връзката на контролера с паметта за данни е известния от микропроцесорите непосредствен достъп до паметта (Direct Memory Access) DMA. Той е предпоставка за голяма скоростна обмен на данните, тъй като те не преминават през регистри на CPU. Същевременно входовете и изходите на всички DSP като правило осигуряват голяма скорост на обмен на данни. За допълнително ускоряване има DSP с вградени в контролера ADC и DAC.
Все по-често в DSP се вграждат допълнителна оперативна (RAM) и постоянна (ROM) памет, като в някои случаи последната се програмира с маска. Нерядко RAM или част от нея се използват за бърз запис и четене на данни (Data Cache).
Формат на числата
В DSP те могат да се представят по два начина. Този с фиксирана запетая (Fixed Point) използва код с допълнение до 2 (Two‘s Complement) поради много простата му схемна реализация. Реално фиксираната запетая се прилага главно към 8-, 16-, 32- и 64-разредни числа, например 16-разредните могат да са между ?32768 и +32767. Старшият разред определя знака на числото, като е 0 за положителни числа и 1 за отрицателни. Значителна част от DSP са с фиксирана запетая, тъй като осигуряваният обхват и точност са достатъчни за много от реално съществуващите сигнали. Най-често те са 16-разредни, структурата им е сравнително проста, а цената - ниска. Последното е особено важно за устройства от битовата електроника, където са много от приложенията (например GSM).
Другият начин за представяне на числата е с плаваща запетая (Floating Point). Най-често те се формират в съответствие със стандарта ANSI/IEEE 754-1985, който изисква да са 32-разредни (т.нар. единична точност) или 64-разредни (двойна точност). При единична точност старшият разред S определя знака, следващите 8 разреда (от 31-ви до 24-ти) са експонентата Е и останалите 23 образуват мантисата М. Стойността на числото се определя по формулата (-1)S x M x 2E-127, която показва, че знакът е както при числа с фиксирана запетая. Мантисата има двоична точка (а не десетична!) след старшия й бит (23-тия на числото), а последният множител във формулата може да е между 2-127 и 2+128. Лесно е да се пресметне, че използваните числа имат най-големи стойности 1,7.10±38 и стъпка на изменение 5,9.10-39, т.е. стандартът позволява оценяване на всички съществуващи в природата явления. Същото е формирането и при двойна точност, но там най-големите стойности са 10±308. Не са рядкост DSP с разширена плаваща запетая (Extended Point) с 40 разреда. Плаващата запетая се използва основно в случаите, когато амплитудата на обработваните сигнали е в много голям обхват и същевременно е необходима голяма точност, например при научни изследвания. По принцип всички DSP с плаваща запетая могат да работят и с фиксирана запетая и са 32-разредни, което означава много по-малка грешка при закръгляване на резултатите от изчисленията в сравнение с 16-разредните DSP.
Изпълнение на командите
Един от ефективните начини за увеличаване на бързодействието на DSP е стъпалното изпълнение на командите (Pipeline Instruction), чиято същност е изяснена на фиг. 4.
При подаване на тактов импулс в момента t1 се въвежда една команда (EN). При следващия импулс (момента t2) тя се декодира (DEC) и едновременно с това се въвежда втора команда. В t3 се изпълнява първата (ЕХ), декодира се втората и се въвежда трета, докато в t4 се извършват четири действия – запомняне на първата команда (МЕМ), изпълняване на втората, декодиране на третата и въвеждане на четвърта. Броят на стъпалата в случая е 4, но те могат да са до 10. Недостатъкът на това изпълнение е сложното програмиране, по-скъпата реализация и невъзможността точно да се зададат някои от параметрите на DSР. Некаскадната реализация (Non-Pipeline Processor) не притежава тези недостатъци, но е по-бавна, защото дадена команда постъпва едва след цялото изпълнение на предната.
Входове и изходи (I/O Ports)
Те са важна част от всеки DSP, тъй като осигуряват връзката му с външни устройства. Разделят се на две големи групи. Обменът на данни през първата не е свързан с никакви стандарти. Тук влизат почти задължителните входно-изходни изводи с общо предназначение (General Purpose I/O) GPIO, познати от много други видове ИС, чийто брой в някои DSP надхвърля 100. За приложения в многоканални звуковъзпроизвеждащи системи се използва Multichannel Serial Port (McASP), докато за обработка на видеосигнали специализираните DSP имат до три паралелни Video Port.
Значително по-голяма е втората група на интерфейсите, чието действие се основава на някакъв стандарт. В DSP те рядко са под 3, а понякога надхвърлят 10. Съществуват DSP и с по два еднотипни и едновременно работещи интерфейса. По-голямата част от интерфейсите са масово използваните в други ИС, например UART, USB, I2C, SPI и PCI, но има и по-специфични, например
l
Inter IC Sound (I2S) – последователен 3-проводен специализиран за звуковъзпроизвеждащи системи.l
AC97 Audio Codec Interface – за връзка на компютри с модеми и звуковъзпроизвеждащи системи.l
Host-Port Interface (HPI) – паралелен 16-разреден за DMA, като обменът се извършва под управлението на специализиран контролер, блок от DSP.l
Joint Test Action Group (JTAG) - подходящ за тестване и каскадно съединяване на няколко DSP.Типична блокова схема на DSP
Като такава може да се използва опростената блокова схема на споменатите DSP тип SHАRC, дадена на фиг. 5.
Блокът I/O Controller има паралелни 16-разредни изводи I/O, всеки от които може да обменя данни със скорост до 50 Mbps. Това означава скорост на обменът на данни 16 x 50 Mbps = 8 Gbps. Той съдържа и 4 последователни I/O със скорост 37,5 Msps.
Всяка от двете памети има собствен генератор на адреси Data Address Generator, DAG), представляващ част от CPU. Чрез него в определени клетки се записват или четат данни. По принцип генераторите имат възможност за едновременно подаване на няколко адреса, т.е. осъществява се едновременно четене или запис на няколко данни.
Регистрите за данни (Data Register) нямат принципни различия от тези в микропроцесорите и се използват за временно запомняне на междинни резултати. За да се осигури достатъчна точност на записа на резултатите от умножението, те като правило са с повече разреди от данните. В случая те са 40 разредни и броят им е 16, но има DSP и с повече регистри. По принцип, както и в микропроцесорите, при прекъсване на изпълнението на дадена програма, получените до момента междинни резултати се записват. За целта тук всеки от регистрите има свой shadow register и записването става едновременно във всичките.
Извършването на математическите операции се осъществява от умножителя Multiplier, аритметично-логическото устройство (Arithmetic Logic Unit) ALU и преместващия регистър Shifter (наричаг и Barrel Shifter). Умножителят изтегля две числа от регистрите за данни с номера от 0 до 7, умножава ги и изпраща резултатите в един от тях (операцията a+bxc
Хa). За намаляване на грешката от закръгляване при работата с фиксирана запетая, в блока е вграден 80-разреден акумулатор. Събиранията и изважданията се извършват от ALU, което взима числа от регистри с номера от 8 до 15. Освен това то изпълнява и други операции, например логически (И, ИЛИ, НЕ) и преобразуване на число от един формат в друг. Резултатът от действията му се изпраща в произволен регистър. Особеност на SHARC е, че умножителят и ALU изтеглят едновременно числа от регистрите.Основни параметри
Тактовата честота (Instruction Cycle Rate, Clock Rate) f
c е на генератора на DSP, обикновено вграден в ИС с външно свързван кварцов резонатор. Нейната реципрочна стойност е максимално допустимото време за изпълнение на една команда (Cycle Time). При n-разредна шина за предаване на командите техният брой е nfc, което представлява параметърът команди за секунда (Instruction Per Second) с мерна единица MIPS (Mega Instructions Per Second). Вместо или заедно с него се използва броят на математическите или логически операции в секунда измерение MOPS (Mega Operations Per Second). В съвременните DSP с една команда се извършват k операции, което означава MOPS = k x MIPS. В DSP с плаваща запетая същият параметър се означава като MFLOPS, където FL е от Floating. Необходимата му стойност, т.е. изборът на DSP за дадено приложение, се прави с формулата MOPS і mfCLK, където m е броят на операциите, извършвани от програмата за най-дългото изчисление. Задължителният запис на резултатите от умноженията в акумулатор определя като параметър и техният брой за 1 s (Multiply-Accumulates Per Second) с измерения MAC или ММАС.Разредността на данните (Data Format) също е параметър със стойности 8b, 16b, 32b и 64b, като малката е характерна за DSP за индустриални и битови приложения. Аналогичен параметър е разредността на командите (Instruction Word), като все по-голяма част от DSP използват много дълги команди (Very Long Instruction Word) VLIW, обикновено 256b. Подобни са и разредността на умножаваните и събираните числа.
Три са основните параметри, свързани с паметта - обемът на вградената памет, максималният на външно свързваните памети и броят на каналите на DMA. Полезно е да се има предвид, че освен бърза памет във все повече съвременни DSP се използва и оперативна памет (RAM),състояща се от 2 до 6 самостоятелни блока с общ обем достигащ до 24 Mbit, към която дори се прибавя и програмируема с маска постоянна памет с обем 1-3 Mbit.
Подобно на съвременните микропроцесори захранването на DSP обикновено се осигурява от едно или две положителни постоянни напрежения за I/O блоковете и едно по-малко за останалата част (за стойностите им вж. табл. 1).
Характерни примери за съвременни DSP
В табл. 1 са дадени някои от основните параметри на DSP от различни фирми. Специализираният DSP на фирмата Oxford Micro Devices е предназначен за обработка и компресия на изображения, което определя приложения във видеокамери, факсове и скенери. Подържа различни видеоформати, включително YUG и SRGB и се програмира с езика С. Една система освен него и сензор съдържа външни памети SDRAM и NVRAM. Големият брой MIPS е постигнат чрез използването на вграден копроцесор.
От типа SHARC е ADSP-21261 на Analog Devices. В неговия CPU има два еднакви блока за изчисления, всеки с умножител, ALU, регистри за данни и преместващ регистър. Те могат да работят паралелно и се управляват едновременно. Използват се 32- и 40-разредни числа с плаваща запетая и 32-разредни с фиксирана запетая.
Най-бързият представител на фамилията Blackfin също на Analog Devices е ADSP-BF533. Той е един от примерите за сближаване на DSP и микропроцесорите, тъй като може да работи с ОС Linux, velOSity и Nucleus. Процесорът използва 10-стъпално изпълнение на командите и е предназначен за обработка на изображения.
С голяма бързина се отличава и ADSP-TS201S от фамилията TigerSHARC на Analog Devices с основно предназначение комуникационни приложения. Специфична особеност са 16-те входа и 16-те изхода с LVDS логически нива, по всеки от които могат да се обменят данни със скорост 500 Mbps.
По своята същност процесорът BelaSigna на AMI Semiconductor представлява система за обработка на звукови сигнали. Поради основното му предназначение за устройства с батерийно захранване с индустриални и битови приложения (връзка със сензори, комуникации) той има тактова честота 33 MHz, работи със захранващо напрежение 1,8 V и консумира 5 mA. Към него непосредствено могат да се включват светодиоди, LCD, бутони, микрофони, слушалки и малки високоговорители.
Основното предназначение на CEVA-X1641 е за обработка на звукови сигнали и изображения в битови апаратури. Той работи с числа с фиксирана запетая, използва VLIW и SIMD и има 9 стъпално изпълнение на командите. По заявка на клиента може да се произвежда по 0,13
mm, 90 nm и 65 nm CMOS технология.Само за звукови сигнали е С32025 на фирмата Altera с 3 стъпално изпълнение на командите и последователни входове и изходи за непосредствено свързване на ADC, DAC и CODEC. Работи с 16- и 32-разредни числа и съдържа ROM за 4К думи и RAM за 256 думи.
Също за звукови сигнали е DSP56364 на Freescale, който поради голямата си мощност едновременно може да изпълнява няколко алгоритъма, например за реализацията на Долби система и еквалайзер.
Различен е DSP56F826 на Motorola, предназначен за събиране и обработка на данни от сензори и някои управления. Той може да изпълнява команди от вградената и външна памет, има 46 GPIO и 4 таймера.
Специфична особеност на QL7180 на фирмата QuickLogic е реализацията му като програмируема логическа матрица с 660 000 логически елемента. и по-малък брой други логически схеми. Освен това той съдържа 10 ALU, всяко от които може да се програмира да извършва 8 различни действия с числа. Изводите му I/O също се програмират да имат различни логически нива (LVTTL, LVCMOS< PCI и др.).
Freescale произвежда и 4-ядрения MSC8144, всяко от чиито ядра може да изпълнява до 1000 MIPS. Това го прави подходящ за т. нар. тройна услуга - обработка на звукови сигнали, изображения и данни. Характерни приложения са множество безжични мрежи, между които 3G, WiMax и CDMA2000, и осъществяване на видеоконферентни връзки.
Оптимизиран за програмиране с езиците С, С++ и ЕС++ e DSP ST100 на ST Microelectronics, чиито команди в голямата си част се използват и в програмирането на устройства, работещи в съответствие с изискванията на европейските телекомуникационни стандарти.
Процесорът TMS320C6424 на Texas Instruments е с фиксирана запетая и работи с VLIW. Освен 2 умножителя и 6 ALU съдържа два 64-разредни таймера, както и PLL тактов генератор. Има вграден контролер за връзка с външна памет DDR2 и основните му приложения са в телекомуникациите и създаване на мрежи.
Специално за обработка на изображения е TMS320DM642 с подобни параметри, както предният, но една от разновидностите му е с тактова честота 720 MHz.
Най-новата фамилия на TI e DaVinci. Част от нея са многоядрените процесори TSM320DM643x с основно предназначение за индустриални приложения - роботи, системи за машинно зрение, охранителни системи. Даденият в табл. 1 TMS320DM6433-600 съдържа и допълнителни блокове за обработка на стандартни видеосигнали (PAL, S-video, YPbPr, RGB).
Серията С5000 на Texas Instruments съдържа 36 DSP с основно предназначение приложения в безжични мрежи и Интернет. Нейният представител TMS320VC5509A в табл. 1 има 4 вградени ADC и два таймера.
На последния ред на табл. 1 са дадени параметрите на 16-разредния mPD77210 с фиксирана запетая на NEC с основно предназначение за обработка на звукови сигнали в устройства с батерийно захранване.
Многопроцесорни системи
За по-нататъшно увеличаване на бързодействието често се използва т.нар. многопроцесорна обработка на данните (Multiprocessing) или паралелна обработка на данните (Parallel Processing). Идеята е всички DSP да работят едновременно и изпълняват различни части от програмата. Има няколко начина за свързване на DSP за този вид обработка, един от които е даден на фиг. 6. Алгоритъмът е разделен на части, като едновременно се изпълняват три от тях. Многопроцесорните системи обикновено се реализират като модули (най-често върху една печатна платка) и се предлагат не толкова от самите производители на DSP, а от други специализирани фирми. Например платката TZ-6U-VME на Bittware съдържа 2 групи от по четири ADSP-TS201. Предназначена е за обмен на 64-разредни данни по шина PCI със скорост 66 Mbps.
Фирмата Innovative Integration има 5 серии модули, всяка с 4-6 модела. Например модулът Toro от серията Matador съдържа DSP на Texas Instruments и 16 на брой 16-разредни ADС и DAC, като обработва данни със скорост 250 kbps.
Задължителни улеснения
Като правило производителите на DSP създават много улеснения за разработката на устройства с тях. Освен кит обикновено се предлага компилатор за езика на високо ниво на процесора, програмен продукт за оптимизиране на програмирането на асемблер и интерфейс за наблюдаване на изпълнението на операциите от DSP на монитора на компютър, работещ под Windows.
Приложения
Освен вече споменатите, на фиг. 7 е даден пример за използването на DSP в управлението на хидравличен вентил. Той обработва данните от сензори за температура и налягане на преминаващата течност и управлява линейния двигател в съответствие с данните от полевата шина (Fieldbus).
Вижте още от Електроника