Procesor de semnal digital

Procesor de semnal digital ( ing.  procesor de semnal digital , DSP , procesor de semnal digital (DSP) - un microprocesor specializat conceput pentru a procesa semnale digitizate (de obicei în timp real ) [1] .

Caracteristici arhitecturale

Arhitectura procesoarelor de semnal, în comparație cu microprocesoarele de uz general, are unele caracteristici asociate cu dorința de a accelera cât mai mult posibil execuția sarcinilor tipice de procesare a semnalului digital, cum ar fi filtrarea digitală , transformarea Fourier , căutarea semnalului etc. Matematic, aceste sarcini sunt reduse la elemente de multiplicare în funcție de elemente ale vectorilor multicomponent ai numerelor reale, urmate de însumarea produselor (de exemplu, în filtrarea digitală, semnalul de ieșire al unui filtru cu un răspuns de impuls finit este egal cu suma produse ale coeficienților de filtru prin vectorul probelor de semnal, calcule similare se efectuează la căutarea maximelor funcțiilor de corelare și autocorelare a probelor de semnal). Prin urmare, procesoarele de semnal sunt optimizate pentru viteză pentru a efectua doar astfel de operațiuni. Iar DSP-urile sunt orientate, în primul rând, către execuția repetată a înmulțirii cu calculul „din mers” a adreselor elementelor de matrice de înmulțit:

Resursele hardware limitate ale primelor DSP-uri au lăsat o amprentă semnificativă asupra arhitecturii lor:

În microelectronica modernă, procesoarele de uz general conțin adesea suport hardware pentru operațiunile DSP tipice. Sarcinile DSP care necesită mult timp sunt rezolvate pe baza logicii programabile , unde este posibil să se obțină cea mai mare optimizare a execuției unei anumite operațiuni. Procesoarele DSP specializate sunt din ce în ce mai făcute vector . În același timp, DSP-urile clasice oferă seturi de instrucțiuni avansate pentru procesoarele de uz general și netezesc caracteristicile modelului software, poziționându-le ca produse de uz general cu funcții DSP accelerate. Toate aceste tendințe duc la estomparea conceptului clasic de DSP.

Aplicații

Istorie

Evoluții anterioare

Înainte de 1980, mai multe companii produceau dispozitive care pot fi considerate precursorii DSP-urilor. Așadar, în 1978, Intel a lansat „procesorul de semnal analogic” 2120. Acesta includea un ADC , un DAC și un procesor de date digital, dar nu exista nicio funcție de multiplicare hardware. În 1979 , AMI lansează S2811, un dispozitiv periferic controlat de procesorul principal al computerului. Ambele produse nu au avut succes pe piață.

Prima generație (începutul anilor 1980)

Istoria principală a DSP-urilor este de obicei numărată din 1979-1980, când Bell Labs a introdus primul DSP cu un singur cip Mac 4 și, de asemenea , µMPD7720 de la NEC și DSP1 de la AT&T au fost prezentate la Conferința Internațională de Circuite Solid State IEEE din '80. , care însă nu a primit o răspândire largă. Standardul de facto a fost cristalul Texas Instruments TMS32010 lansat puțin mai târziu , care depășește produsele concurenților în mulți parametri și soluții tehnice de succes. Iată câteva dintre caracteristicile sale:

A doua generație (mijlocul anilor 1980)

Datorită progreselor în tehnologia semiconductoarelor în această perioadă, au fost lansate produse care aveau caracteristici îmbunătățite în comparație cu prima generație. Diferențele caracteristice includ:

Mult mai târziu, au fost lansate și dispozitive, aparținând oficial celei de-a doua generații, dar cu următoarele îmbunătățiri:

A treia generație (sfârșitul anilor 1980)

A treia generație de DSP este de obicei asociată cu începerea producției de produse care implementează aritmetica în virgulă mobilă. Caracteristici caracteristice ale primelor mostre lansate:

A patra generație

A patra generație de DSP-uri se caracterizează printr-o extindere semnificativă a seturilor de instrucțiuni, crearea VLIW și a procesoarelor superscalare . Frecvențele ceasului au crescut considerabil. Deci, de exemplu, timpul de execuție al instrucțiunii MAC ( Y := X + A × B ) a fost redus la 3 ns.

DSP-uri moderne

Cele mai bune DSP-uri moderne pot fi caracterizate prin următorii parametri:

Parametrii de bază DSP

Caracteristicile integrale ale DSP sunt adesea folosite, de exemplu, indicatorul „putere / curent / viteză”, de exemplu, ma / MIPS (miliamperi per 1 milion de instrucțiuni pe secundă), care face posibilă estimarea consumului real de energie în funcţie de complexitatea sarcinii care este rezolvată de procesor la un moment dat .

Alegerea DSP este în întregime determinată de scopul sistemului dezvoltat. De exemplu, procesoarele ieftine și consumul redus de energie sunt importante pentru dispozitivele mobile de masă, în timp ce costul dezvoltării unui sistem trece în fundal. Pe de altă parte, pentru echipamentele de măsurare sunt importante sistemele de procesare a informațiilor audio și video, eficiența procesorului, disponibilitatea instrumentelor avansate, multiprocesarea etc.

Evaluarea și compararea performanței

După cum sa menționat mai devreme, caracteristicile individuale, cum ar fi frecvența de ceas, MIPS, MOPS, MFLOPS fac posibilă evaluarea performanței unui DSP destul de ambiguu. Prin urmare, pentru a rezolva problema de măsurare și comparare a caracteristicilor diferitelor DSP-uri, se folosesc seturi speciale de teste care imită unele sarcini comune de procesare a semnalului digital. Fiecare test constă din mai multe programe mici care sunt scrise în asamblator și optimizate pentru o arhitectură dată. Aceste teste pot include implementarea:

Cel mai autoritar pachet de teste de astăzi este testul BTDImark2000 ( BDTI DSP Kernel Benchmarks™ (BDTImark2000™) Certified Results ), care, pe lângă acești algoritmi, include și o evaluare a memoriei utilizate de algoritm, timpul de dezvoltare a sistemului și alte parametrii.

Dispozitiv

Arhitectura Harvard

Procesoarele de semnal digital sunt construite pe baza așa-numitelor. „Arhitectura Harvard”, a cărei caracteristică distinctivă este că programele și datele sunt stocate în diferite dispozitive de memorie - memoria programului și memoria datelor. Spre deosebire de arhitectura von Neumann , unde procesorul are nevoie de cel puțin trei cicluri de magistrală pentru a prelua o instrucțiune și doi operanzi, un DSP poate face accese simultane atât la memoria de instrucțiuni, cât și la memoria de date, iar instrucțiunea de mai sus poate fi primită în două cicluri de magistrală. În realitate, datorită atenției sistemului de comandă și a altor măsuri, acest timp poate fi redus la un singur ciclu. În dispozitivele reale, memoria de instrucțiuni poate stoca nu numai programe, ci și date. În acest caz, se spune că DSP-ul este construit conform unei arhitecturi Harvard modificate.

Memoria de instrucțiuni și memoria de date sunt de obicei situate pe cipul DSP. Datorită faptului că această memorie are un volum relativ mic, devine necesară utilizarea dispozitivelor de stocare externe (față de cipul procesorului). Pentru astfel de dispozitive, magistralele separate de comandă și date nu sunt utilizate, deoarece acest lucru ar necesita o creștere semnificativă a numărului de pini de cristal externi, ceea ce este costisitor și nepractic. Prin urmare, interacțiunea DSP cu dispozitivele de stocare externe are loc pe un set de magistrale fără separare în comenzi și date. De asemenea, trebuie menționat că accesarea memoriei externe durează întotdeauna mult mai mult timp decât memoria internă, astfel încât în ​​aplicațiile care sunt critice pentru timpul de execuție, astfel de accesări trebuie reduse la minimum.

Diagrama structurală

Execuția pipeline a comenzilor

Conducta este un fir de calcul care efectuează o anumită micro-operație în fiecare etapă , deci există mai multe comenzi în diferite etape de execuție pe conductă la un moment dat. Acest lucru îmbunătățește performanța.

Prezența mai multor conducte implementează o arhitectură superscalară.

Cu procesarea paralelă a comenzilor pe conducte diferite, efectul maxim este obținut asupra aceluiași tip de comenzi care nu depind unele de altele. Dacă programul conține comenzi de diferite tipuri, atunci ciclurile de așteptare sunt introduse în conductă.

Pentru a optimiza încărcarea transportoarelor, sunt necesare următoarele:

Ca urmare, comenzile nu sunt executate în ordinea în care programatorul le-a notat.

Implementarea hardware a principalelor funcții

Multiplicatori

Un multiplicator hardware este utilizat pentru a reduce timpul de execuție a uneia dintre principalele operațiuni DSP - operația de multiplicare. La procesoarele de uz general, această operațiune este implementată în mai multe cicluri de schimbare și adăugare și necesită mult timp, iar în DSP, datorită unui multiplicator specializat, într-un singur ciclu de instrucțiuni.

Din punct de vedere funcțional, multiplicatorii sunt împărțiți în două tipuri:

  • Multiplicator simplu. Efectuează o operație de înmulțire la nivel de cuvânt. Rezultatul este un cuvânt dublu și este stocat fie într-un registru cu lățime dublă, fie în două registre obișnuite (sau două locații de memorie).
  • Multiplicator-adunator (MAC - Multiplier / Accumulator). Efectuează o operație de multiplicare-acumulare care este utilizată pe scară largă în mulți algoritmi de procesare a semnalului digital. Pentru detalii despre cum să utilizați această comandă, consultați #Clasificarea DSP-urilor după arhitectură .
Schimbătoare

Un shifter este atât un dispozitiv care efectuează o operație de transfer de date, cât și un registru care stochează rezultatul deplasării [2] .

În ceea ce privește funcțiile lor, schimbătorii sunt împărțiți în:

  • Preschiftoare care efectuează o tură înainte de începerea operațiunii sau în timpul executării acesteia;
  • Post- shifters care efectuează o schimbare după ce operația a fost executată.

În ambele cazuri, structura registrului care stochează rezultatul deplasării este aceeași cu structura acumulatorului .

Funcții preshifter
  • scalare preliminară. Folosit în comenzi aritmetice complexe, de exemplu, precum și pentru încărcarea comenzilor cu o schimbare a formei ;
  • Schimbați înainte de a efectua operații logice complexe, de exemplu, ;
  • Schimbări aritmetice, logice și ciclice în timpul executării comenzilor corespunzătoare.
Funcții postshifter
  • Scalarea rezultatelor la salvarea în memorie. În același timp, conținutul acumulatorului (rezultatul operațiunii principale) rămâne neschimbat;
  • Eliminarea biților de extensie a semnelor;
  • Normalizare;
  • Selecția aceleiași ordine.
Dispozitive de generare de adrese Organizarea hardware a ciclurilor

ALU

ALU este o unitate de procesor care, sub controlul unui decodor de instrucțiuni, realizează transformări aritmetice și logice asupra datelor, care în acest caz se numesc operanzi. Lățimea de biți a operanzilor este de obicei numită dimensiunea cuvântului mașină.

Registre

Baterie

Un acumulator este un registru conceput pentru a stoca rezultatele operațiunilor. Arhitectura multor DSP-uri are doi acumulatori, ceea ce face posibilă accelerarea execuției operațiunilor care necesită stocarea rezultatelor intermediare. Din punct de vedere tehnic, un acumulator poate consta din mai multe registre [2] :

  • EXT - registru de extensie;
  • MSP - registru de cuvinte înalte;
  • LSP - registru de cuvinte scăzut.

Prezența registrului EXT vă permite să creșteți acuratețea calculării rezultatelor intermediare, precum și să creșteți intervalul de stocare a valorilor care nu duc la depășire. Când o valoare de acumulator este stocată într-o celulă de memorie sau într-un registru obișnuit, valoarea sa este rotunjită la lățimea standard a acelei celule sau registru. Pe de altă parte, dacă este necesar, conținutul registrului EXT poate fi stocat separat.

Metode de adresare

Procesorul acceptă adresare directă, adresare indirectă pre- și post-incrementare și moduri de adresare ciclică specifice DSP și inversare a biților de adresare.

Clasificarea DSP-urilor după arhitectură

Trebuie remarcat faptul că clasificarea dată mai jos [2] este mai degrabă condiționată, deoarece varietatea soluțiilor tehnice nu permite adesea să atribuie fără ambiguitate fiecare dispozitiv specific unuia dintre tipurile specificate. Prin urmare, următoarele ar trebui mai degrabă folosite ca material pentru înțelegerea caracteristicilor arhitecturii DSP decât pentru o clasificare reală a oricăror produse.

Este convenabil să luăm în considerare caracteristicile arhitecturii DSP pe exemplul unui algoritm specific de procesare a datelor digitale, de exemplu, un filtru FIR , al cărui semnal de ieșire poate fi scris ca:

, Unde

  •  — citiri ale semnalului de intrare;
  •  sunt coeficienții de filtru.

După cum puteți vedea cu ușurință, calcularea rezultatului este un exemplu clasic de utilizare a operației de înmulțire-acumulare - MAC (Y := X + A × B) .

DSP-uri standard

Figura prezintă două opțiuni pentru executarea unei instrucțiuni MAC pe un DSP standard. În prima variantă, ambii operanzi sunt stocați în memoria de date, deci este nevoie de două cicluri pentru a le prelua, adică timpul de execuție a n adunări este 2n . În al doilea caz, unul dintre operanzi este stocat în memoria programului, deci instrucțiunea este executată într-un ciclu, iar timpul total de execuție al buclei va fi egal cu n cicluri (trebuie clarificat că, în realitate, pentru execuție în un ciclu, MAC-ul trebuie să fie executat într-o instrucțiune de buclă specială pentru a evita recăpătarea codului de instrucțiune în sine, care necesită un ciclu suplimentar de ceas). Se poate observa aici că implementarea eficientă a algoritmului necesită utilizarea memoriei programului pentru stocarea datelor.

Una dintre opțiunile care vă permite să renunțați la utilizarea memoriei programului pentru stocarea datelor este utilizarea așa-numitului. „memorie cu două porturi”, adică memorie care are două seturi de magistrale de intrare - două magistrale de adrese și de date. Această arhitectură permite accesul simultan la două adrese (cu toate acestea, acestea trebuie să fie în blocuri adresabile diferite). Această soluție este utilizată în DSP-urile de la Motorola (DSP56000) și Lucent (DSP1600).

Cu această arhitectură, singura modalitate de a îmbunătăți performanța este creșterea frecvenței ceasului.

DSP-uri standard îmbunătățite

„DSP-urile standard îmbunătățite” utilizează următoarele tehnici de îmbunătățire a paralelismului pentru a îmbunătăți performanța sistemului față de DSP-urile standard:

  • Creșterea numărului de dispozitive de operare și de calcul;
  • Introducerea de coprocesoare specializate;
  • Extindere bus pentru a crește cantitatea de date transferate;
  • Utilizarea memoriei cu acces multiplu (mai multe accesări pe ciclu);
  • Complicarea sistemului de comandă;

Multe dintre aceste metode au existat încă de la primele procesoare, așa că adesea este imposibil să le clasificăm fără echivoc drept „standard” sau „îmbunătățite”.

Figura prezintă un exemplu de implementare a calculului a două comenzi MAC paralele. Pentru a face acest lucru, DSP conține două module MAC și două baterii. Blocurile MAC primesc date pe trei magistrale în același timp, iar una dintre valori le este comună. Astfel, două comenzi sunt executate simultan:

  • AK1 := AK1 + D1 × D2
  • AK2 := AK2 + D1 × D3

Particularitatea soluției prezentate este că mulți algoritmi DSP pot fi redusi la executarea a două comenzi paralele cu un factor comun, de exemplu:

  • Filtru FIR cu coeficienți simetrici. Coeficienții filtrului sunt utilizați ca factori identici și două seturi diferite de eșantioane de semnal sunt alimentate în magistralele separate, adică două jumătăți ale filtrului sunt calculate în paralel, care sunt apoi însumate.
  • Procesare cu două canale. Probele de semnal sunt alimentate la magistrala comună, iar seturi de coeficienți sunt alimentate la magistralele separate.

Unele procesoare (Lucent DSP16xxx, ADI ADSP-2116x) folosesc două nuclee identice, fiecare cu propria sa memorie, adică o instrucțiune este executată simultan în două nuclee cu date diferite. Acest lucru eludează restricția privind utilizarea datelor complet independente.

Un dezavantaj caracteristic al unor astfel de procesoare poate fi considerat necesitatea unui dezvoltator înalt calificat, deoarece utilizarea eficientă a acestor caracteristici necesită programare în limbaj de asamblare, o bună cunoaștere a arhitecturii și a sistemului de comandă, adică aceste dispozitive sunt considerate „neprietenoase” la limbi de nivel înalt.

DSP cu arhitectură VLIW

Principala diferență dintre procesoarele VLIW este că codurile de instrucțiuni sunt asamblate în „super instrucțiuni” mari în etapa de compilare și executate în paralel. În mod obișnuit, astfel de procesoare folosesc o arhitectură RISC cu o lungime fixă ​​a instrucțiunilor, unde fiecare dintre ele este executat într-o unitate de operare separată. Caracteristicile caracteristice ale unor astfel de procesoare includ:

  • Un set mare de module de operare care funcționează independent unul de celălalt. Aceste module pot include:
    • Aritmetic:
      • module de operații aritmetice și operații de comparare;
      • module de operații logice;
      • module pentru înmulțirea numerelor cu virgulă mobilă și fixă;
      • module de generație constantă.
    • Module de generare de adrese, inclusiv cele pentru buffer-uri liniare și ciclice;
  • Necesitatea de a optimiza compilatorul pentru fiecare model de procesor, deoarece compoziția și funcțiile unităților de calcul se pot schimba între modele, ceea ce presupune o modificare a listei de comenzi care pot fi executate simultan;
  • Necesitatea magistralelor de date ultra-large (aproximativ 128 de biți), astfel încât codul de operare, constând din comenzi individuale (până la 8), să poată fi obținut din memorie într-un singur apel.
  • Cerințe ridicate pentru cantitatea de memorie de program, care este, de asemenea, asociată cu o lungime mare a operațiunii.

De obicei, dacă procesorul are mai multe module identice, atunci când se creează un program în asamblator, este posibil să se specifice doar tipul modulului de operare necesar, iar dispozitivul specific va fi atribuit de compilator. Pe de o parte, acest lucru simplifică programarea unor astfel de dispozitive și, pe de altă parte, face posibilă utilizarea resurselor lor destul de eficient.

DSP-uri superscalare

Procesoarele superscalare sunt, de asemenea, caracterizate printr-un set mare de unități de operare paralele și capacitatea de a executa mai multe instrucțiuni simultan. Cu toate acestea, în comparație cu VLIW, acestea au două caracteristici importante:

  • Instrucțiunile procesorului nu sunt grupate în blocuri, fiecare dintre ele intră în procesor independent;
  • Instrucțiunile pentru execuția paralelă sunt grupate în cadrul procesorului în funcție de compoziția și volumul de lucru curent al blocurilor de operare, precum și de relația dintre date.

Folosind abordarea descrisă, puteți ocoli următoarele dezavantaje ale VLIW:

  • Utilizarea ineficientă a memoriei din cauza lungimii de operare a grupului mare;
  • Dependența codului compilat de compoziția modulelor de operare ale unui anumit procesor.

Prețul pentru rezolvarea acestor probleme este o complicație semnificativă a circuitului procesorului, în care apare un modul pentru programarea execuției instrucțiunilor.

Procesoarele superscalare planifică execuția instrucțiunilor nu numai pe baza informațiilor despre volumul de lucru al blocurilor de operare, ci și pe baza analizei dependențelor dintre date. De exemplu, o instrucțiune de salvare a rezultatului unei operații aritmetice nu poate fi executată înainte de operația de calcul în sine, chiar dacă modulul de acces la memorie este în prezent liber. Această caracteristică duce, printre altele, la faptul că același set de instrucțiuni poate fi executat diferit în locuri diferite din program, ceea ce face imposibilă evaluarea cu precizie a performanței. Acest lucru este deosebit de important pentru sistemele care rulează în timp real, deoarece cel mai slab rezultat va duce la faptul că resursele procesorului nu vor fi utilizate pe deplin. Astfel, în aceste sisteme, problema estimării cu acuratețe a performanței DSP-urilor superscalare rămâne deschisă.

DSP-uri hibride

DSP-urile hibride sunt de obicei înțelese ca dispozitive specializate care combină funcțiile unui microcontroler și ale unui procesor de semnal digital. De obicei, astfel de produse sunt concepute pentru a îndeplini o singură funcție - de exemplu, controlul motoarelor electrice sau al altor obiecte în timp real. O altă zonă largă a aplicației lor a devenit recent telefonia mobilă, unde anterior erau utilizate două procesoare - unul convențional pentru controlul funcțiilor dispozitivului (afișaj, tastatură), iar celălalt pentru procesarea semnalelor vocale (codare etc.).

Clasificarea DSP după scop

În general, în funcție de scopul DSP-ului poate fi împărțit în două grupuri:

  • DSP de uz general;
  • DSP-uri orientate spre probleme.

„Orientarea problemelor” nu se referă de obicei la comenzi suplimentare, ci la un set de periferice specializate încorporate. De exemplu, DSP-urile concepute pentru a controla motoarele electrice pot conține generatoare de semnal PWM pe cip , controlere LAN industriale etc. Procesoarele utilizate pentru procesarea semnalelor vocale conțin adesea unități de manipulare a biților (BMU) și coprocesoare de corectare a erorilor. Camerele foto și video digitale folosesc DSP-uri cu module de codificare/decodare MPEG1, MPEG4, JPG, MP3, AAC etc.

Programare DSP

Pentru programarea DSP , se utilizează de obicei unul dintre cele două limbi - asamblare și C. Principalele caracteristici ale asamblatorilor DSP sunt aceleași cu cele ale limbajelor convenționale cu microprocesor și, în general, pot fi descrise ca:

  • Limbajul de asamblare este orientat pe mașină, adică fiecare familie de procesoare are un limbaj diferit de limbajul altor familii;
  • O instrucțiune de limbaj de asamblare este de obicei echivalentă cu o instrucțiune de limbaj de mașină;
  • La programarea in asamblator, programatorul are acces la toate resursele procesorului si ale sistemului, ceea ce permite ca acestea sa fie folosite cat mai eficient;
  • Programatorului i se cere să aibă o bună cunoaștere a arhitecturii fiecărui procesor specific cu care lucrează, adică calificarea necesară a personalului trebuie să fie suficient de mare;
  • Crearea și depanarea programelor în assembler este un proces lung și laborios, care necesită și calificări înalte.

Pe de altă parte, atunci când se utilizează limbaje de nivel mediu și înalt, în special C, este posibilă simplificarea și accelerarea semnificativă a creării de programe, dar resursele sistemului vor fi utilizate mai puțin eficient în comparație cu un program scris în întregime în asamblator.

În realitate, se folosește de obicei o abordare care combină avantajele ambelor limbaje de nivel înalt și eficiența programelor de asamblare. Acest lucru se exprimă în faptul că bibliotecile standard sunt de obicei create în asamblator, precum și părți critice ale codului în ceea ce privește timpul de execuție și dimensiunea memoriei. În același timp, modulele auxiliare pot fi create într-un limbaj de nivel înalt, accelerând și simplificând dezvoltarea unui sistem software în ansamblu.

Caracteristici ale asamblatorilor DSP

Caracteristicile interesante ale asamblatoarelor DSP includ următoarele:

  • Prezența a două forme de scriere a numeroase comenzi - mnemonic și algebric . Forma mnemonică este similară cu scrierea comenzilor pentru microprocesoarele convenționale, de exemplu, ADD dst, src . Un altul, algebric, este folosit mai rar la asamblorii microprocesoarelor standard, în timp ce în limbajul DSP comanda menționată poate fi scrisă ca dst = dst + src . De obicei, asamblatorii DSP înțeleg ambele forme de notație, dar, de exemplu, asamblatorii Analog Devices și Lucent Technologies folosesc doar notație algebrică.
  • Mijloace de organizare a structurilor standard, de exemplu, instrucțiuni hardware speciale pentru repetarea unei instrucțiuni sau bloc de cod. În același timp, spre deosebire de comenzile de repetare ale procesoarelor convenționale, DSP-ul poate sări peste ciclul de preluare a codului instrucțiunii repetate, ceea ce reduce timpul de execuție al fiecărei repetiții cu cel puțin 1 ciclu de magistrală, care, cu un ciclu de două cicluri instrucție, oferă un câștig dublu în timp.

Compatibilitate în cadrul familiilor DSP

De obicei, DSP-urile sunt produse în familii, iar produsele din cadrul familiilor au limbaje de asamblare similare sau chiar compatibilitate la nivel de cod de mașină. De asemenea, în cadrul unei familii, se folosesc de obicei aceleași seturi de biblioteci de subrutine. Ca și în cazul microprocesoarelor convenționale, modelele mai vechi de DSP-uri pot executa adesea codul de mașină al modelelor inferioare sau asamblatorul lor include toate instrucțiunile modelelor inferioare ca un subset al propriului set de instrucțiuni.

Programe de depanare

De obicei, depanarea programelor scrise pentru DSP se face folosind instrumente speciale, inclusiv simulatoare software și emulatoare . Acestea includ adesea instrumente de profilare (măsurând viteza de execuție a blocurilor de cod).

Note

  1. Procesoare digitale de semnal: un manual. Sub. ed. A. G. Ostapenko, M., Radio și comunicare, 1994.
  2. 1 2 3 Solonina A. I., Ulakhovich D. A., Yakovlev L. A. Algoritmi și procesoare de procesare a semnalului digital. - Sankt Petersburg. : BHV-Petersburg, 2001. - 464 p. — ISBN 5-94157-065-1 .

Literatură

  • Solonina AI, Ulakhovich DA, Yakovlev LA Algoritmi și procesoare de procesare a semnalului digital. - Sankt Petersburg. : BHV-Petersburg, 2001. - 464 p. — ISBN 5-94157-065-1 .
  • Aplicarea procesării digitale a semnalului \ Ed. E. Openheim - WORLD, 1980.
  • Procesoare digitale de semnal. PC World, 5'93
  • Procesoare digitale de semnal Zilog și aplicațiile acestora. CHIPNEWS, Nr. 2 (11) 1997
  • Markov. C. Procesoare digitale de semnal. Cartea 1. M .: Microart, 1996