8
Procesoare digitale de semnal in virgula mobila Principalele limitari ale procesoarelor in virgula fixa sunt precizia si gama dinamica redusa. De aceea in cazul implementarilor in virgula fixa este necesara scalarea atenta a valorii datelor pentru a evita depasirile de scala. Deoarece scalarea implica reducerea gamei dinamice ea este insotita de scaderea raportului semnal/zgomot in sistemele pentru prelucrarea semnalelor. In schimb folosirea aritmeticii in virgula mobila ofera o precizie si o gama dinamica mai buna decit aritmetica in virgula fixa, utila in special in aplicatiile care cer o precizie mare de calcul cum ar fi actionarile electrice, sistemele pentru comanda robotilor, grafica pe calculator, s.a. O comparatie privind avantajele si dezavantajele celor doua mari familii de procesoare de semnal este data in Tabelul 1. Tabelul 1 Virgula fixa Virgula mobila Arhitectura de sistem mai simpla Arhitectura de sistem complexa Programare mai dificila Programare eficienta in limbajele de nivel inalt Memorie interna extinsa Necesita extinderea memoriei in afara cipului Cost mai redus Cost mai ridicat Precizie limitata Precizie ridicata si mentinuta fara operatii suplimentare 1

SEP.procesoare Digitale de Semnal in Virgula Mobila-cap15

Embed Size (px)

Citation preview

Page 1: SEP.procesoare Digitale de Semnal in Virgula Mobila-cap15

Procesoare digitale de semnal in virgula mobila

Principalele limitari ale procesoarelor in virgula fixa sunt precizia si gama

dinamica redusa. De aceea in cazul implementarilor in virgula fixa este necesara

scalarea atenta a valorii datelor pentru a evita depasirile de scala. Deoarece scalarea

implica reducerea gamei dinamice ea este insotita de scaderea raportului

semnal/zgomot in sistemele pentru prelucrarea semnalelor. In schimb folosirea

aritmeticii in virgula mobila ofera o precizie si o gama dinamica mai buna decit

aritmetica in virgula fixa, utila in special in aplicatiile care cer o precizie mare de

calcul cum ar fi actionarile electrice, sistemele pentru comanda robotilor, grafica pe

calculator, s.a. O comparatie privind avantajele si dezavantajele celor doua mari

familii de procesoare de semnal este data in Tabelul 1.

Tabelul 1

Virgula fixa Virgula mobila Arhitectura de sistem mai simpla Arhitectura de sistem complexa Programare mai dificila Programare eficienta in

limbajele de nivel inalt Memorie interna extinsa Necesita extinderea memoriei in

afara cipului Cost mai redus Cost mai ridicat Precizie limitata Precizie ridicata si mentinuta

fara operatii suplimentare Gama dinamica redusa Gama dinamica ridicata Erorile de calcul sunt rapid

acumulabile

Procesoarele cu aritmetica in virgula mobila folosesc de regula cuvinte de 32

de biti. De exemplu, un procesor pe 32 de biti care foloseste 24 de biti pentru

reprezentarea mantisei si 8 biti pentru reprezentarea exponentului ofera o gama

dinamica de 1530 dB. Procesoarele in virgula mobila executa operatiile cu viteza de

prelucrarea a datelor intregi, evitind totodata aparitia unor situatii delicate (de

exemplu, depasirea de scala, scalarea semnalelor, alinierea operanzilor) care se

manifesta in cazul virgulei fixe. Datorita gamei dinamice mari oferita de aceasta

reprezentare, anumite operatii (calculul TRF, realizarea filtrelor RII in cascada) care

conduc la cresterea valorii datelor la propagarea de la etaj la etaj nu produc usor

1

Page 2: SEP.procesoare Digitale de Semnal in Virgula Mobila-cap15

depasirea scalei cum se intimpla in cazul virgulei fixe. In plus efectele de cuantizare

sunt mai putin prezente.

Deoarece lungimea cuvintelor cu care opereaza procesoarele in virgula mobila

este mai mare decit la virgula fixa, aceste procesoare accepta un numar mai mare de

moduri de adresare precum si un grad mai mare de paralelism in executie. Folosirea

limbajelor de nivel inalt pentru programare este mai eficienta datorita arhitecturii

orientate pe registri, a folosirii instructiunilor in virgula mobila, a spatiului mai mare

de adrese, a numarului mai mare de moduri de adresare, a flexibilitatii setului de

instructiuni, etc. In plus virgula mobila permite o trecere mai directa de la mediul de

simulare pe un calculator gazda folosind programele MatLab sau C, catre o

implementare in timp real pe un sistem tinta cu procesor DSP. In mod curent

procesoarele in virgula mobila sunt folosite pentru aplicatii performante, ca de

exemplu sisteme pentru videoconferinta, retele de comunicatii cu comutare de

pachete, statii de baza pentru telefonia celulara, sisteme radar si sonar, imagistica

digitala, etc.

Familia TMS320 contine trei generatii de procesoare in virgula mobila,

respectiv C3x, C4x si C67x.

TMS320C3x

Structura interna este prezentata in Fig. 1 (5.1). Generatia C3x foloseste o

arhitectura Harvard pe 32 de biti, cu registre de 40 de biti pentru extinderea preciziei.

Aceste procesoare includ unitati de prelucrare in virgula mobila (de exemplu,

multiplicator, ALU, deplasator), facilitati pentru managementul rapid al memoriei cu

controler DMA incorporat, un cache intern pentru instructiuni de 64 cuvinte si un

spatiu de adrese de 16 Mcuvinte. Procesorul are un fisier de registre de uz general, un

cache pentru program, doua unitati aritmetice dedicate pentru registrele auxiliare

precum si o memorie interna cu acces dublu.

Viteza de executie este optimizata prin implementarea hardware a unor

operatii frecvent utilizate, cum sunt operatiile repetitive cu blocuri de date, adresarea

circulara, multiplicarea. Sistemul de magistrale interne permite executarea in paralel a

operatiilor de extragere a codurilor, a accesarii datelor (pentru citiri/scrieri) si a

transferurilor DMA. Procesorul foloseste adrese de 24 de biti pentru accesarea

cuvintelor de cod si de date de 32 de biti.

2

Page 3: SEP.procesoare Digitale de Semnal in Virgula Mobila-cap15

Pentru functionarea in sisteme multiprocesor, cu memorie globala partajata,

C3x foloseste cinci instructiuni si doua fanioane I/O externe, care pot fi configurati

prin software ca intrari sau iesiri pentru executarea operatiei de interblocare.

Desi procesorul este folosit mai ales ca procesor pentru operatii in virgula

mobila, operatiile in virgula fixa sunt utile pentru anumite aplicatii, cum sunt

prelucrarile de imagini. Procesoarele C3x executa operatii in virgula fixa, in virgula

mobila si operatii logice folosind instructiuni cu doi sau cu trei operanzi. De asemenea

C3x poate executa in paralel multiplicati si operatii cu ALU cu numere intregi

reprezentate in virgula fixa sau cu numere reale reprezentate in virgula mobila intr-un

singur ciclu. Procesoarele familiei pot executa mai multe tipuri de bucle (buclare

hardware pentru instructiuni sau pentru blocuri de program, buclare intirziata pentru

multiprocesare, buclare standard pentru golirea pipeline-ului). De asemenea pot fi

executate conversii din virgula fixa in virgula mobila. Procesoarele familiei pot

executa pina la 150 milioane de instructiuni in virgula mobila pe secunda (150

Mflops).

C3x foloseste trei formate de date: intregi cu semn, intregi fara semn si

numere in virgula mobila. Pentru numerele in virgula mobila este disponibil si un

format in precizie extinsa. Numerele intregi pot fi reprezentate cu 16 biti (formatul

scurt) sau cu 32 de biti (formatul lung). Pentru reprezentarea in virgula mobila sunt

folosite trei formate de date: formatul scurt (16 biti), formatul standard (32 de biti) si

formatul extins (40 de biti). Formatele de reprezentare nu respecta standardul IEEE

754. Pentru anumite aplicatii de timp real datele de intrare sunt esantioane de semnal

furnizate de convertoare A/D. Procesoarele C3x convertesc datele intregi intr-un

format cu virgula mobila, le prelucreaza, iar la sfirsit convertesc rezultatul in format

intreg si le transefera la CDA.

TMS320C4x

Generatia C4x contine primele procesoare DSP proiectate pentru prelucrari

paralele. Procesoarele C4x sunt compabibile la nivel de cod cu C3x. Procesoarele

familiei includ sase porturi de comunicatie, un controler DMA cu sase canale, doua

unitati independente de 32 de biti pentru interfatarea memoriei. Dupa cum s-a

mentionat pot fi conectate direct pina la sase procesoare C4x pentru prelucrari

paralele.

3

Page 4: SEP.procesoare Digitale de Semnal in Virgula Mobila-cap15

TMS320C67x

Cel mai recent procesor in virgula mobila din familia TMS320 este

TMS320C67x. C67x are la baza arhitectura VLIW prezentata anterior. Setul de

instructiuni al procesorului C67x este un superset al setului de instructiuni al

procesoarelor C62x, fiind adaugate instructiuni pentru operatii in virgula mobila.

Procesorul este capabil sa execute pina la 1350 Mflops la un tact de 225MHz. C67x

este optimizat pentru executarea eficienta a programelor scrise in limbajul C.

Procesoarele C67x sunt destinate aplicatiilor care cer precizie ridicata de calcul, gama

dinamica mare si viteza mare de calcul (radar, sonar, grafica 3D, statii de baza

wireless, linii de abonat digitale, imagistica medicala, s.a.)

Arhitectura C67x accepta date reprezentate in virgula mobila pe 32 de biti sau

pe 64 biti. Fiecare din cele doua cai de date contin cite patru unitati de executie, cite

un fisire de registre de uz general si cai de transfer de date intre registre si memorie.

Arhitectura C67x este prezentata in Fig. 2 (5.6).

Fig. 2 Arhitectura procesoarelor C67x

4

Page 5: SEP.procesoare Digitale de Semnal in Virgula Mobila-cap15

Procesoarele C67x au doua cai de date in virgula mobila, o unitate pentru

controlul programului, un controller DMA, memorie interna precum si interfete

pentru extensia memoriei pentru programe si date. Cele doua cai de date accepta

operanzi de 32/64 biti in virgula mobila si contin cite patru unitati de executie fiecare

(.L, .S, .M si .D), un fisier de registre precum si cai de transer a datelor intre memorie

si registre. Procesoarele C67x pot executa pina la opt instructiuni intr-un ciclu,

incluzind doua operatii de multiplicare in precizie simpla sau o multiplicare in

precizie dubla. Fata de procesoarele C62x arhitectuta C67x a fost modificata pentru a

permite incarcarea operanzilor cu precizie dubla pe 64 biti. Procesoarele contin doua

fisiere de cite 16 registre de uz general de 32 biti (A si B). Grupuri de cite doua

registre adiacente pot stoca si operanzi pe 64 biti pentru operatii realizate cu precizie

dubla. Operatiile realizate in precizie dubla necesita mai mult timp decit cele

executate in precizie simpla.

Memoria interna are o arhitectura Harvard modificata ccare asigura spatii

separate pentru coduri si date. Cele doua cai de date sunt conectate la memoria de date

prin magistrale de adrese (32 biti) si de date (64 biti) separate. Memoria pentru

programe este accesata printr-o magistrala de adrese de 32 biti si una pentru date de

256 biti. O varianta mai performanta din familia C67x (C6713) ofera posibilitatea de a

configura memoria interna ca memorie cache de nivel 1 (L1), iar memoria externa ca

memorie cache de nivel 2 (L2), atit pentru coduri cit si pentru date.

Procesoarele C67x poseda un sistem de periferice similar cu cel existent la

procesoarele C62x/64x.

C67x accepta toate instructiunile procesoarelor C62x plus un numar de

instructiuni noi incluzind: multiplicari de numere intregi pe 32 de biti, incarcari de

date de 64 biti, instructiuni pentru operatii in virgula mobila, etc. C67x realizeaza o

folosire intensa a memoriei deoarece arhitectura VLIW produce “pachete” de pina la

opt instructiuni de 32 de biti.

5