Sunteți pe pagina 1din 10

2.

Sisteme pentru procesarea


numerică a semnalelor

Procesarea numerică a semnalelor a devenit atractivă încă din anii 1960, odată cu
introducerea tehnicilor digitale. Ulterior a devenit o alternativă în procesarea
semnalelor pe măsură ce structurile digitale hardware au evoluat, au devenit mai
rapide, mai uşor de utilizat, mai ieftine şi tot mai răspândite pe piaţă.

Încă din 1979, firma Intel a introdus primul DSP (2920) care avea o arhitectură şi
un set de instrucţiuni special adaptate pentru aplicaţii de procesare numerică a
semnalelor. Astăzi, piaţa producătorilor de DSP-uri şi de soluţii pentru DSP-uri
este extrem de aglomerată, oferta este foarte diversificată, iar preţul (mai corect
spus, raportul preţ / performanţă) este tot mai mic.

Dacă iniţial DSP-ul a apărut ca o cerinţă a pieţii, acum, performanţele DSP-urilor


oferite au făcut ca domeniile de aplicare practic să explodeze. Preţul în scădere,
suportul hard şi soft oferit tot mai complex şi puterea de procesare tot mai mare au
făcut ca utilizarea DSP-urilor în tot mai multe aplicaţii să devină un fapt obişnuit:
modemuri de mare viteză, telefoane fără fir sau celulare, playere audio sau video,
camere digitale - sunt produse a căror funcţionare se bazează aproape exclusiv pe
prelucrarea numerică a semnalelor.

2.1 Introducere în procesarea digitală a semnalelor

Un semnal este definit ca o cantitate fizică dependentă de timp, de poziţie,


presiune, etc. (de exemplu, tensiunea de ieşire furnizată de către un microfon este
strâns legată de presiunea acustică a sunetului ca funcţie de timp).

Obiectivele urmărite în procesarea semnalelor sunt acelea de a transmite mai


departe sau de a memora semnale, de a îmbunătăţi anumite componente ale unui
semnal şi de a extrage informaţiile utile transportate de semnale.

În aplicaţiile practice, multe dintre semnalele întâlnite sunt analogice, deci prezente
la fiecare moment de timp şi având amplitudini diferite. Pentru a prelucra astfel de
semnale continui în timp folosind DSP-uri, este necesar ca acestea să fie
eşantionate şi cuantizate pentru a produce o secvenţă numerică. Ăceastă secvenţă

Procesoare numerice de semnal - Cap.2 1


discretă în timp, cu o amplitudine de valoare tot discretă, reprezentată pe un număr
finit de biţi, poartă numele de semnal digital.
Exemplu:
- muzica înregistrată pe o casetă audio - semnal continuu;
- muzica înregistrată pe un CD - semnal digital.

Practic, semnalele digitale pot fi memorate pe diferite medii de stocare un timp


nedefinit fără a pierde din informaţii (exemplu: discuri magnetice, discuri optice,
etc.). Pe de altă parte, semnalele analogice memorate se deteriorează în timp şi nu
mai pot fi readuse complet la formele iniţiale.

Teoria procesării numerice a semnalelor se bazează pe semnale şi sisteme discrete


în timp, ceea ce permite o manipulare mai uşoară din punct de vedere matematic.
Semnalele discrete pot fi obţinute prin eşantionarea (fără cuantizare) a semnalelor
analogice. Semnalele discrete sunt prezente în fiecare moment discret de timp şi
pot avea orice amplitudine. Ele necesită un număr infinit de biţi pentru
reprezentarea fiecărui eşantion, ceea ce nu se poate realiza fizic în structuri
digitale. Mai mult, cea mai mare parte a algoritmilor de procesare numerică a
semnalelor au fost iniţial dezvoltaţi folosind calculatoare de uz general, pentru care
viteza de modificare şi testare a algoritmilor era mai importantă decât cea de
execuţie a algoritmilor. Pentru a utiliza aceşti algoritmi în aplicaţiile actuale
folosind cuvinte numerice de lungime finită, trebuie avute în vedere hardware-ul
folosit, viteza de execuţie şi complexitatea algoritmilor. Datele reale (eşantionate)
obţinute într-o aplicaţie trebuie utilizate astfel încât să se realizeze o rafinare a
algoritmului.

Aşa cum se poate vedea în Fig.2.1, sistemele de procesare numerică a semnalelor


utilizează un DSP şi o structură hardware digitală, precum şi două convertoare,
unul analog-numeric (ADC - Analog-to-Digital Converter) şi unul numeri-analogic
(DAC - Digital-to-Analog Converter) pentru a înlocui dispozitivele analogice
standard, precum: amplificatoare, modulatoare şi filtre.

Fig.2.1 Structura bloc a unui sistem DSP

Semnalul analogic ce trebuie procesat este mai întâi eşantionat şi codificat într-un
semnal digital în formă binară prin blocul ADC. Procesorul DSP realizează
operaţii matematice bazate pe un anumit algoritm de prelucrare numerică a
2 Procesoare numerice de semnal - Cap.2
semnalelor, implementat în software. Semnalul digital obţinut la ieşire poate fi
convertit înapoi în formă analogică prin blocul DAC. De asemenea, un procesor
DSP poate prelucra şi semnale digitale primite la intrare de la alte structuri
numerice şi poate furniza în exterior comenzi digitale către alte sisteme. În unele
aplicaţii, un sistem DSP poate crea intern semnale digitale. De exemplu, se poate
sintetiza o pereche de semnale sinusoidale (dial tones - tonuri de apel) pentru
apeluri telefonice.

Algoritmii de tip DSP pot fi implementaţi pe mare varietate de structuri digitale,


folosind limbaje de programare diverse (de exemplu: C, C++). Unele structuri DSP
pot fi realizate prin sisteme logice programabile sau neprogramabile,
microprocesoare şi microcontrolere de uz general şi prin procesoare numerice de
semnal de uz general. De exemplu, este posibil să se integreze sisteme DSP bazate
pe algoritmi sofisticaţi, ca de exemplu algoritmii de codare şi decodare video, pe
un singur cip VLSI (Very Large Scale Integration - cu Integrare pe Scară Foarte
Largă). Totuşi, soluţiile hardware sunt orientate către rezolvarea unor aplicaţii
specifice. Astfel de soluţii sunt mai rapide şi de mai mici dimensiuni decât soluţiile
programabile, însâ necesită un timp mult mai mare pentru proiectare, un cost
ridicat pentru dezvoltare şi sunt dificil de modificat sau upgradat (actualizat).

Procesorul programabil poate fi programat pentru o multitudine de task-uri


(sarcini). Se utilizează pentru sisteme complexe şi care sunt prea dificil de realizat
pe seama circuitelor neprogramabile, pentru produse care ncesită un timp de
dezvoltare foarte scurt şi un cost de punere la punct scăzut, sisteme care trebuie
upgradate periodic, pe baza unor noi algoritmi şi standarde. Pentru o sarcină
specifică, procesorul este mai lent decât cip-ul VLSI care ar realiza acelaşi task.

Microprocesoarele şi microcontrolerele de uz general sunt astfel concepute încât să


poată realiza procesări în forme extrem de generale, folosind o arhitectură von
Neumann, la care există un spaţiu unitar de memorie, atât pentru instrucţiuni, cât şi
pentru date. Prin contrast, o arhitectură Harvard separă spaţiul de memorie în
memoria program şi memoria de date, astfel încât ambele să poată fi accesate
simultan. Cea mai mare parte a DSP-urilor utilizează o arhitectură Harvard
modificată şi sunt optimizate pentru a efectua operaţii repetate de înmulţire şi
sumare care accesează în mod secvenţial datele stocate în locaţii consecutive ale
memoriei.

Sistemele de tip DSP au înlocuit în mare parte sistemele de procesare analogică şi


au permis extinderea considerabilă a ariei aplicaţiilor. Principalul avantaj al DSP-
urilor este programabilitatea lor. Un sistem DSP permite utilizatorului să modifice
task-urile prin scrierea unui nou cod în memoria sistemului. De asemenea, permite
actualizarea parametrilor sistemului pe baza unor noi algoritmi pentru o mai bună
adaptare la mediul în continuă schimbare. Sistemele DSP se bucură de performanţe
deosebite întrucât atât memoria, cât şi procesorul, sunt practic independente de
Procesoare numerice de semnal - Cap.2 3
temperatură şi pot reacţiona corect în diferite medii externe pe întreaga durată de
viaţă a produsului. Mai mult, un acelaşi algoritm DSP poate fi transpus în diverse
limbaje şi poate fi rulat pe diferite arhitecturi hardware cu aceleaşi rezultate. Costul
sistemelor DSP este în continuă scădere, în timp ce performanţele continuă să
crească de la o generaţie la alta. Puterea consumată de către un DSP a scăzut
spectaculos de la o generaţie la următoarea, astfel încât astăzi dispozitivele
realizate se pretează foarte bine a fi incluse în structuri portabile. În plus, unele
operaţii de procesare a semnalelor nici nu pot fi implementate pe baza tehnicilor
analogice.

În paralel cu avantajele oferite de tehnologiile hardware digitale, s-au dezvoltat


cercetări pentru îmbunătăţirea algoritmilor de lucru şi pentru a extinde aria de
aplicabilitate. În ce priveşte creşterea performanţelor algoritmilor de operare,
aceştia au în vedere şi scăderea complexităţii sistemului, ceea ce a permis
dezvoltarea unor noi tehnici DSP, precum filtrarea adaptivă pentru mediu
necunoscut sau variabil în timp şi algoritmi rapizi, precum transformarea Fourier
rapidă (FFT - Fast Fourier Transform) pentru calculul transformatelor Fourier
discrete.

Pe măsură ce arhitecturile DSP au evoluat, iar performanţele algoritmilor au


crescut, şi cerinţele de procesare au devenit tot mai mari, ceea ce a determinat
dezvoltarea unor sisteme cu performanţe superioare care includ algoritmi de calcul
tot mai sofisticaţi pentru noile generaţii de aplicaţii. În aceste aplicaţii, factorii
cheie care asigură creşterea duratei de aplicabilitate ale sistemelor DSP proiectate
sunt flexibilitatea şi upgradabilitatea (posibilitatea de dezvoltare / modernizare pe
structura existentă). Multe dintre standardele industriale în domeniul DSP-urilor şi
a sistemelor DSP sunt încă în faza de dezvoltare, ele trebuind să rămână
compatibile cu alte standarde (de exemplu, cu cele din domeniul structurilor
numerice, a circuitelor integrate, pentru reprezentarea algoritmilor, etc.). Un bun
exemplu este cel al telefoniei celulare, pentru care standardele au trecut foarte
rapid prin mai multe generaţii: 2G, 2.5G, 3G şi 4G. În noile proiecte se includ cu
precădere procesoare DSP programabile care asigură mai multe moduri de operare
şi posibilitatea upgradării ulterioare.

2.2 Sisteme DSP

De obicei, sistemele DSP sunt incluse în sisteme mai largi cu rolul specializat de a
realiza operaţii de procesare numerică a semnalelor, permiţând astfel întregului
sistem să execute task-uri mai generale. De exemplu, un procesor DSP este utilizat
în cadrul unui modem pentru controlul transmisiei de date, iar întreg ansamblul
constituie sistemul DSP al unui calculator. Destul de des, acest tip de sistem DSP
rulează doar o singură aplicaţie (specifică) şi nu poate fi programat de către
utilizator. De fapt, utilizatorul nici nu are nevoie să ştie că un astfel de procesor (de
4 Procesoare numerice de semnal - Cap.2
exemplu, un procesor DSP care este inclus în sistemul de control al hard-disk-ului
pentru controlul motorului şi a poziţionării capului de citire) este parte componentă
a calculatorului.

Rezultatele cercetărilor actuale în domeniul DSP-urilor s-au orientat tot mai mult
spre soluţiile complete care să înglobeze algoritmi, software şi hardware într-un
sistem unitar. Soft-ul este în fond un program care controlează un set de resurse de
calcul hardware pentru a implementa un algoritm, în timp ce hard-ul constă din
blocuri de calcul specifice. Dezvoltarea soft-ului poate fi fie independentă de
procesor, fie specifică unui anumit dispozitiv. Deoarece dezvoltarea soft-ului a
devenit o cheltuială mai însemnată decât dezvoltarea hard-ului în principalele
sisteme DSP, proiectarea independentă de procesor are avantajul portabilităţii soft-
ului obţinut pe diferite procesoare şi abilitatea de a migra uşor către noile
procesoare, mai performante şi mai complexe, care vor apare în viitor.

În cadrul proiectării independente de procesor, limbajele de nivel înalt, precum C


sau C++, sunt preferate şi sunt disponibile pentru majoritatea procesoarelor DSP.
Programele scrise în C sunt mai uşor şi mai rapid de scris şi ele pot fi portate de la
un procesor la altul prin simpla recompilare a codului sursă, folosind un compilator
C specific noului procesor. Această portabilitate este foarte importantă, mai ales
când algoritmul va fi implementat pe mai multe procesoare diferite. Soft-ul
dependent de procesor este realizat prin limbaje de asamblare care reflectă
arhitectura unui anumit procesor. Deşi codul de asamblare rulează mai rapid şi
necesită mai puţină memorie, el este mai greu de scris şi trebuie rescris pentru
fiecare tip de procesor. Totuşi, limbajul C rămâne metoda preferată de
implementare, atât timp cât poate asigura o viteză de rulare suficient de bună
pentru un anumit procesor şi pentru o aplicaţie dată.

În aplicaţiile în care viteza de procesare şi nivelul resurselor de memorie reprezintă


elemente cheie, soluţia este una de compromis care utilizează limbajul de
asamblare pentru implementarea secţiunilor critice şi limbajul C pentru restul
codului. Programarea combinată C - asamblare reprezintă un compromis bun între
uşurinţa codificării şi eficienţa implementării. În mod constant, eficienţa
compilatoarelor C se îmbunătăţeşte şi multe librării DSP scrise în limbaj de
asamblare optimizat permit utilizatorului să dezvolte cu uşurinţă programe
eficiente în cod combinat.

Majoritatea sistemelor DSP trebuie să lucreze în timp real. Într-o aplicaţie de timp
real cu DSP, un eşantion (sau un grup de eşantioane, numite cadru, sau bloc) este
aplicat la intrarea sistemului. Acesta trebuie să realizeze procesarea ieşirii asociate
unui eşantion al semnalului aplicat la intrare într-un timp care nu trebuie să
depăşească durata eşantionului (sau blocului). De exemplu, în procesarea
eşantioanelor, fiecare eşantion este procesat înainte de sosirea la intrare a
următorului eşantion. În prelucrarea pe blocuri, ca în cazul FFT, N eşantioane sunt
Procesoare numerice de semnal - Cap.2 5
grupate formând un bloc, iar procesarea blocului se poate efectua numai după
achiziţia tuturor celor N eşantioane. De aceea, procesarea în timp real pe blocuri
implică întârzieri mai mari decât procesarea pe eşantioane.

Majoritatea algoritmilor şi aplicaţiilor DSP se dezvoltă şi se verifică pe


calculatoare de uz general, fără constrângeri privind timpul de execuţie, mărimea
memoriei, ori costul sistemului. Definitivarea unei aplicaţii practice trebuie
condusă spre o proiectare globală care să asigure algoritmi performanţi, software
eficient şi resurse hardware optime. De exemplu, un algoritm poate fi implementat
fie prin hard, fie prin soft, alegând astfel între viteză şi flexibilitate. De asemenea,
un algoritm poate fi modificat astfel încât să se adapteze mai bine la o structură
hard / soft existentă. Hard-ul poate fi conceput specific pentru un algoritm dat, sau
se poate urmări minimizarea costului pe durata dezvoltării şi utilizării. Toate aceste
variante trebuie avute în vedere în dezvoltarea unei anumite aplicaţii.

Proiectarea unui sistem DSP implică o cunoaştere bună a problemei şia tuturor
cerinţelor necesare. De obicei se lucrează în echipă: inginer de hard, inginer de
sistem, proiectant de soft şi specialist în testarea structurii. Analiza şi proiectarea
unui algoritm DSP eficient care să utilizeze resurse hard şi soft optime este o
muncă complexă, care se bazează cel puţin în faza de proiectare pe unelte soft
performante. Se poate utiliza de exemplu MATLAB şi SIMULINK, cu toolbox-
urile aferente de la firma MathWorks.

2.3 Familia TMS320

În 1982, Texas Instruments a introdus primul procesor DSP, TMS32010, din


familia TMS320. Astăzi, această familie conţine atât procesoare în virgulă fixă, cât
şi în virgulă mobilă. Procesoarele pe 16 biţi în virgulă fixă sunt cuprinse în
generaţiile: TMS320C2000 (cu reprezentanţii C24x şi C28x), C5000 (C54x şi
C55x) şi C6000 (C62x şi C64x). Procesoarele pe 32 biţi în virgulă mobilă sunt
cuprinse în generaţiile: C3x, C4x şi C7x. Procesoarele din aceeaşi generaţie ale
familiei TMS320 au aceeaşi arhitectură de bază, dar posedă configuraţii diferite ale
memoriei pe cip şi a perifericelor.

Arhitectura TMS32010 şi setul de instrucţiuni a fost proiectat pentru a maximiza


puterea de calcul şi flexibilitatea printr-o tehnologie de integrare la o frecvenţă a
ceasului de 5MHz, 1982. Astăzi, unul dintre cele mai rapide procesoare al familiei,
C64x, dispune de o viteză de execuţie de până la 1GHz, ca urmare a
îmbunătăţirilor tehnologice şi ale arhitecturii implementate şi a unor cicluri de ceas
mai rapide. Îmbunătăţirile aduse arhitecturii pentru a o face independentă de viteza
ceasului se bazează pe multiple unităţi de calcul de tip înmulţire-adunare (MAC -
Multiply-Add Computation), pe o intensivă implementare a operaţiilor paralele, pe
o memorie mai mare şi mai rapidă cu magistrale interne multiple şi pe introducerea
6 Procesoare numerice de semnal - Cap.2
unor instrucţiuni şi motoare hardware mai puternice şi mai bine adaptate
implementării unor algoritmi DSP de utilitate generală.

Am văzut chiar din Fig.2.1 că un sistem DSP necesită pe lângă procesor şi de două
convertoare: unul analog-numeric şi unul numeric-analogic. Fig.2.2 arată modul în
care se constituie un sistem DSP în jurul procesorului TMS320.

Fig.2.2 Interfaţarea externă a procesoarelor TMS320

Cele două blocuri externe principale necesare sunt memoria (de program şi/sau de
date) şi perifericele. De obicei, procesoarele DSP dispun de o mică memrie cache
on-chip, o memorie de program de tip ROM, memorie RAM şi periferice.
Perifericele precum convertoarele A/N şi N/A pot fi conectate fie la magistrala de
date, utilizând adrese dedicate (specifice), fie la interfaţa serială, dacă cipul
dispune de porturi seriale.

În aplicaţiile DSP, procesorul este interfaţat cu lumea externă pentru a efectua


transfer de date. Sunt disponibile mai multe tipuri de dispozitive comerciale de tip
I/O. Aceste dispozitive I/O sunt selectate şi validate prin semnale de control
decodificate din magistrala de adrese (biţii inferiori) şi prin linii de control
specifice. Un semnal de control suplimentar este necesar pentru a distinge între
adresarea memoriei şi adresare I/O. Sarcina soft-ului este de a stabili adresa corectă
a dispozitivului extern şi de a activa linia de control a transferului I/O.

2.4 Arhitectura generală a procesoarelor DSP

Aşa cum s-a văzut în Fig.2.1, procesorul DSP realizează funcţiile esenţiale de
prelucrare a semnalelor. Dezvoltarea unui sistem DSP eficient se bazează pe:
arhitecturile hard şi soft ale procesorului DSP, transferul datelor, capacităţile sale
aritmetice, configuraţiile posibile ale memoriei, structurile I/O, programabilitatea şi
setul de instrucţiuni al procesorului. Arhitectura procesorului şi algoritmul DSP
folosit trebuie să fie complementare. Pentru unele aplicaţii, algoritmul este dat şi
Procesoare numerice de semnal - Cap.2 7
trebuie ales cel mai potrivit procesor care să-l realizeze. Pentru altele, procesorul
disponibil este cunoscut şi sarcina proiectării este de a dezvolta algoritmi eficienţi
care să satisfacă cerinţele aplicaţiei. Scopul este de a dezvolta un algoritm DSP
astfel încât să se utilizeze un minim de resurse ale procesorului, lăsând astfel
neutilizate resurse pentru îmbunătăţiri şi dezvoltări ulterioare.

2.4.1 Introducere

Marea majoritate a procesoarelor DSP sunt proiectate să realizeze operaţii


repetitive de tip MAC (multiply-add computation), precum filtrarea răspunsului la
impuls finit (FIR - Finite-Impulse Response), definită prin relaţia:

L −1
y(n) = ∑ bi ⋅ x(n − i) (2.1)
i=0

unde:
{b0 , b1, ... , bL −1} sunt coeficienţii de filtrare,
{x(n), x(n − 1), ... , x(n − L + 1)} sunt eşantioanele semnalului,
iar L reprezintă lungimea filtrului.

Calculul ieşirii y(n) necesită parcurgerea următorilor paşi:


1. Aducerea a doi operanzi, bi şi x(n-i) din memorie
2. Înmulţirea lui bi cu x(n-i)
3. Adunarea rezultatului bix(n-i) la acumulator
4. Repetarea paşilor 1, 2 şi 3 pentru i=0,1,2,...,L-1
5. Transferul rezultatului y(n) din acumulator în memorie
6. Actualizarea indicatorilor (pointerilor) pentru bi şi x(n-i) şi repetarea paşilor de
la 1 la 5 pentru următorul eşantion de intrare.

Arhitectura internă generală a unui procesor DSP este prezentată în Fig.2.3.

Această structură este optimizată pentru operaţiile de filtrare FIR descrise în relaţia
(2.1). Marea majoritate a procesoarelor DSP utilizează blocuri funcţionale similare,
deşi interconectarea internă şi operaţiile efectuate pot varia. Prin comparaţie cu
microprocesoarele de uz general, trăsătura specifică a DSP-urilor constă în
puternicul paralelism utilizat în vederea îmbunătăţirii vitezei de procesare. DSP-
urile dispun de unităţi speciale de prelucrare deservite prin bus-uri specifice
multiple, multe dintre acestea putând lucra independent şi în mod complementar.
Aşa cum se vede în Fig.2.3, unitatea logico-aritmetică (ALU - Arithmetic Logic
Unit) realizează adunarea, scăderea şi operaţii logice. Registrul de deplasare este
utilizat pentru scalarea datelor, iar multiplicatorul şi acumulatoarele hardware
realizează operaţii MAC. Generatoarele de adrese pentru date (DAGENs - Data
Address Generators) definesc adresele operanzilor utilizaţi în instrucţiuni. Cu
8 Procesoare numerice de semnal - Cap.2
aceste resurse disponibile, procesorul DSP atinge o viteză ridicată de execuţie,
realizând operaţiile în aceste unităţi în mod simultan. Operaţiile de bază executate
de toate aceste unităţi vor fi discutate ulterior.

Fig.2.3 Arhitectura generală a unui procesor DSP

Majoritatea procesoarelor DSP utilizează o arhitectură Harvard modificată, cu


două sau trei magistrale de memorie (una de program şi încă una sau două pentru
date). Este facilitat astfel accesul simultan la coeficienţii filtrului şi la semnalul de
intrare în acelaşi ciclu de ceas. Totuşi, utilizarea arhitecturii Harvard crează unele
dificultăţi în scrierea programelor în C care utilizează întreaga capacitate a
structurii MAC şi a accesurilor repetate la memorie.

2.4.2 Operaţii efectuate de unitatea centrală

Se vor prezenta succint funcţiile principale ale unităţii centrale de prelucrare (CPU)
a procesoarelor DSP. Multe dintre aceste funcţii sunt comune cu cele ale
microprocesoarelor de uz general, cu excepţia unităţii/unităţilor MAC, a registrelor
de deplasare, a blocurilor multiple de memorie împreună cu magistralele care le
deservesc şi a puternicelor generatoare de adrese pentru date.

Multiplicarea cu acumulare

Operaţiile de înmulţire necesită mai multe cicluri de ceas într-un microprocesor sau
microcontroler, acolo unde ele sunt efectuate prin operaţii repetate de deplasare şi
Procesoare numerice de semnal - Cap.2 9
sumare. Pentru a atinge viteza cerută de algoritmii DSP bazaţi pe multiple operaţii
de înmulţire (vezi de exemplu filtrarea FIR din relaţia (2.1)), procesoarele TMS320
utilizează un multiplicator hardware cu operare paralelă, care poate înmulţi doi
termeni (date) într-un singur ciclu de ceas. În acelaşi timp, un sumator plasat
imediat după multiplicator adună rezultatul înmulţirii anterioare la conţinutul unui
acumulator cu dublă-precizie. Unele procesoare, precum C55x, dispun de două
unităţi MAC şi 4 acumulatoare de 40 biţi. O serie de instrucţiuni specifice care pot
realiza înmulţirea, acumularea, deplasarea datelor şi operaţiile de actualizare a
pointerilor (indicatorilor) într-o singură instrucţiune sunt prevăzute pentru
algoritmii de filtrare şi de corelare. Aceste instrucţiuni se bazează pe arhitectura
paralelă pentru a realiza o execuţie foarte rapidă.

Unitatea logico-aritmetică (ALU)

Operaţiile aritmetice de bază realizate de procesoarele DSP sunt adunarea,


scăderea, etc. Unitatea logică realizează operaţii logice booleene, precum AND,
OR şi NOT, asupra biţilor individuali ai unui cuvânt de date şi execută deplasări
logice ale întregului cuvânt de date. Atât blocul logic, cât şi cel aritmetic, sunt
cuprinse de obicei într-o singură unitate ALU. Împărţirea binară este de obicei
implementată printr-o rutină software deoarece ea necesită o serie repetată de
operaţii de deplasare şi de scădere condiţionată.

Registrele de deplasare (shifter-ele)

Registrele de deplasare utilizate pentru operaţii de scalare sunt cţionate de


instrucţiuni specifice de deplasare. Shifter-ul poate fi utilizat pentru prescalarea
unui operand din memoria de date sau din acumulator înaintea unei operaţii ALU,
sau pentru postscalarea valorii din acumulator înaintea stocării rezultatului în
memoria de date. În plus, shifter-ul realizează şi o deplasare logică sau aritmetică a
valorii din acumulator. De exemplu, shifter-ul lui TMS320C5000 poate produce o
deplasare spre stânga a 0 până la 31 biţi şi o deplasare spre dreapta a 0 până la 32
biţi a datelor de intrare într-un singur ciclu.

Paralelismul

Instrucţiunile care controlează operaţiile efectuate de un procesor DSP necesită


mai mulţi paşi pentru a fi executate. Mai întâi, este generată adresa instrucţiunii, iar
conţinutul locaţiei de memorie program de la adresa indicată este citit şi
decodificat. În funcţie de instrucţiunea decodificată, unul sau mai mulţi operanzi
sunt extraşi pentru a dispune de datele cerute de instrucţiune. În sfârşit, rezultatul
este stocat, iar adresa următoarei instrucţiuni este calculată. Fiecare instrucţiune
poate necesita mai multe cicluri de ceas pentru a executa mai mulţi paşi de pre-
extragere, decodificare, extragere operand, execuţie şi scriere a rezultatului. Aceşti
paşi pot fi executaţi succesiv în structuri paralele.
10 Procesoare numerice de semnal - Cap.2

S-ar putea să vă placă și