Sunteți pe pagina 1din 2

1)Procesoare DSP Operatii efectuate de unitatea centrala:

Multiplicarea cu acumulare
Operatiile de înmultire necesita mai multe cicluri de ceas într-un microprocesor sau microcontroler, acolo unde
ele sunt efectuate prin operatii repetate de deplasare si sumare. Pentru a atinge viteza ceruta de algoritmii DSP bazati
pe multiple operatii de înmultire procesoarele TMS320 utilizeaza un multiplicator hardware cu operare paralela, care
poate înmulti doi termeni (date) într-un singur ciclu de ceas. În acelasi timp, un sumator plasat imediat dupa
multiplicator aduna rezultatul înmultirii anterioare la continutul unui acumulator cu dubla-precizie. Unele procesoare,
precum C55x, dispun de doua unitati MAC si 4 acumulatoare de 40 biti. O serie de instructiuni specifice care pot realiza
înmultirea, acumularea, deplasarea datelor si operatiile de actualizare a pointerilor (indicatorilor) într-o singura
instructiune sunt prevazute pentru algoritmii de filtrare si de corelare. Aceste instructiuni se bazeaza pe arhitectura
paralela pentru a realiza o executie foarte rapida.

Unitatea logico-aritmetica (ALU)

Operatiile aritmetice de baza realizate de procesoarele DSP sunt adunarea, scaderea, etc. Unitatea logica
realizeaza operatii logice booleene, precum AND, OR si NOT, asupra bitilor individuali ai unui cuvânt de date si executa
deplasari logice ale întregului cuvânt de date. Atât blocul logic, cât si cel aritmetic, sunt cuprinse de obicei într-o singura
unitate ALU. Împartirea binara este de obicei implementata printr-o rutina software deoarece ea necesita o serie
repetata de operatii de deplasare si de scadere conditionata.

Registrele de deplasare (shifter-ele)

Registrele de deplasare utilizate pentru operatii de scalare sunt conditionate de instructiuni specifice de
deplasare. Shifter-ul poate fi utilizat pentru prescalarea unui operand din memoria de date sau din acumulator înaintea
unei operatii ALU, sau pentru postscalarea valorii din acumulator înaintea stocarii rezultatului în memoria de date. În
plus, shifter-ul realizeaza si o deplasare logica sau aritmetica a valorii din acumulator. De exemplu, shifter-ul lui
TMS320C5000 poate produce o deplasare spre stânga a 0 pâna la 31 biti si o deplasare spre dreapta a 0 pâna la 32 biti a
datelor de intrare într-un singur ciclu.

Paralelismul
Instructiunile care controleaza operatiile efectuate de un procesor DSP necesita mai multi pasi pentru a fi
executate. Mai întâi, este generata adresa instructiunii, iar cont inutul locatiei de memorie program de la adresa
indicata este citit si decodificat. În functie de instructiunea decodificata, unul sau mai multi operanzi sunt extrasi pentru
a dispune de datele cerute de instructiune. În sfârsit, rezultatul este stocat, iar adresa urmatoarei instructiuni este
calculata. Fiecare instructiune poate necesita mai multe cicluri de ceas pentru a executa mai mult i pasi de pre-
extragere, decodificare, extragere operand, executie si scriere a rezultatului. Acesti pasi pot fi executati succesiv în
structuri paralele.

2)Procesoare TMS c2x. Registre mapate in memorie si registre auxiliare:

Registrele mapate în memorie

Cele 6 registre mapate în memoria de pot fi accesate în aceeasi maniera cu alte locatii de memorie de date, cu
exceptia faptului ca mutarea blocurilor cu instructiunea BLKD (mutarea blocului din memoria de date în memoria de
date) nu se poate face din registrele mapate în memorie.

Locatie Registru Descriere


0 DRR(15-0) Registru de receptie al portului serial
1 DXR(15-0) Registru de transmisie al portului serial
2 TIM(15-0) Registru Timer
3 PRD(15-0) Registru de perioada
4 IMR(5-0) Registrul mastii de întreruperi
5 GREG(7-0) Registrul de alocare a memoriei globale

Registrele auxiliare
TMS320C2x contine un banc de registre cu pâna la 8 registre auxiliare (AR0 - AR7). TMS32020 are 5 registre
auxiliare, iar TMS320C25 are 8 astfel de registre. În continuare sunt prezentate functiile fiecarui registru si modul în care
este selectat pentru stocare un registru auxiliar. Registrele auxiliare pot fi folosite pentru adresarea indirecta a memoriei
de date si pentru stocarea temporara a datelor.
Adresarea indirecta prin registrele auxiliare (vezi Fig.4.6) permite plasarea adresei unui operand (dintr-o
instructiune) din memoria de date ARP (3 biti) care este cuprins între 0 si 7, desemnând respectiv registrele AR0-AR7.
Registrele auxiliare si ARP pot fi încarcate fie din memoria de date, fie direct cu un operand imediat gasit în instructiune.
Continutul acestui registru poate fi de asemenea stocat în memoria de date (vezi programarea în modul de adresare
indirect). Bancul registrelor auxiliare (AR0-AR4 la TMS32020 si AR0-AR7 la TMS320C25) este conectat la ARAU (vezi
Fig.4.7). ARAU poate autoindexa registrul auxiliar curent cât timp este adresata o locatie a memoriei de date. Se poate
face indexarea cu + sau -1 sau cu continutul lui AR0. Ca rezultat, nu este necesara folosirea CALU pentru accesarea
tabelelor cu informatii, ceea ce lasa libera CALU pentru alte operatii.

3 Accesul direct la memorie:

Unele proiecte avansate cu TMS320C2x utilizeaza DMA sau memoria globala. DMA poate fi utilizat pentru
multiprocesare, prin oprirea temporara aunuia sau a mai multor procesoare, permitând altora sa citeasca /scrie în
memoria procesorului oprit. DMA utilizeaza semnalele HOLD si HOLDA.
Sistemul multiprocesor este în general o configuratie de tip master - slave. Master-ul trebuie sainitializeze slave-
ul prin încarcarea programului în spatiul acestuia deprograme din memorie si / sau sa asigure circuitului slave datele
necesare. Circuitul master poate fi înca un circuit TMS320C2x sau un convertor analog-digital. O configuratie simpla de
master - slave este aratata în Fig.5.18. Circuitul master exercita un control complet asupra memoriei externe a slave-ului
prin trecerea HOLD în "0" prin bistabilul XF. Acesta determina ca slave-ul sa treaca liniile sale de adresa - date - control în
stare de impedanta ridicata. Prin aplicarea RS în conjunctie cu HOLD, procesorul master poate încarca memoria
programlocala a circuitului slave cu programul necesar de initializare la RESET. Cele doua procesoare pot fi sincronizate cu
intrarea SYNC, lucru ce permite transferul mai rapid si mai eficient pe magistrala.
Dupa ce controlul a fost preluat de master, circuitul slave raspunde cu HOLDA.
Acest semnal poate aparea pe pinul BIO al lui TMS320C2x. Pinul XF al circuitului slave poate fi utilizat pentru a
indica master-ului ca si-a terminat sarcinile si trebuie reprogramat cu date suplimentare pentru a-si continua lucrul.
În schemele cu mai multe circuite slave, prioritatile acestora sunt determinate de aplicarea semnalului XF pe una din
intrarile INT(2-0) de pe master-ul TMS320C2x.

Implementarile în mediul PC constituie un alt exemplu unde magistrala sistem este folosita pentru transfer de
date. Aici, circuitul CPU sau controlerul de disc poate plasa datele pe magistrala de date de unde se pot transfera în
memoria locala a circuitului TMS320C2x. În aceasta configuratie, TMS320C2x joaca mai mult rolul unui procesor
periferic cu functii multiple. De exemplu, în aplicatii de analiza vocala, TMS320C2x poate fi încarcat de catre master cu
algoritmi de analiza, sinteza si recunoastere de sunete. În alte situatii, TMS320C2x poate lucra cu un controler grafic
dedicat. Programele pot fi depozitate în circuitul ROM de pe TMS320C2x sau pot fi încarcate prin magistrala sistem în
RAM. Datele pot proveni de pe hard-disk sau direct din CPU master.

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