Transcript

1. Caracteristici hardware si software ale procesoarelor digitale de semnal. Comparatii cu alte tipuri de microprocesoare. a) adoptarea unor arhitecturi cu un grad mare de paralelism in prelucrare. Se utilizeaza in mod curent arhitectura Harvard+ princ. pipe-line pt date si coduri. Arh. Harvard proc. are cai de transf. separate si blocuri separate pt date si coduri ==>se pot transmite simultan date si coduri. Pipe-line: fragmentarea unei actiunie in subactiuni si exec. lor pe unitati funct. distincte; multe instr. sunt exec. intr-un sg. tact==>se creste productivitatea

b) includerea in procesor a unor module hard pt. cresterea vit. (prezenta unor multiplicatoare rapide, circ. pt. realizarea de deplasari de cuv. binare cu 1 sau mai multe deplasari intr-un sg. tact, prevederea de mem. interne pt. date si coduri, prevederea unor interfete specifice: controlere de intrerupere, timer-e de intr., porturi; includerea de conv. A/D si D/A in sist. PDS)

c) precizia de prelucrare 16-32biti si > 32 biti. Precizia interna de lucru poate fi mai mare de nr. de biti pt. reprezentarea datelor. Datele sunt reprezentate in virgula fixa sau in virgula mobila.

Referitor la parte soft setul de instr. al procesoarelor PDS este adaptat cerintelor algoritmilor PDS ( instr. de multiplicare si acumulare, instr. pt. manipularea blocurilor de adresare speciala, inversarea bitilor etc.)

Modul de realiz. a proc. PDS:

a)de UG(au un algoritm ce poate fi programat);

b)specializate(au un algoritm fix) si (a) si (b) au performante asemanatoare

Primele proc. PDS au fost realiz. plecand de la proc. de UG, introducand in struct. lor intrfete si circ. necesare prelucrarilor PDSTendinte recente:

- adoptarea unor noi tehnologii bazate pe Ga-As, care permit realiz. unor struct. cu tipuri de propagare redusi

- dezv. in paralel cu procesoarele bazate, a unor coprocesoare orientate pe realiz. unor operatii aritmetice si logice complexe (criptare, codare MPEG)

- folosirea, in locul arhitecturilor traditionale, a unor arhitecturi noi, bazate pe flux de date, arh. sistolice, arh. RISC

- optimizarea structurala a circ.

- scaderea costurilor

- circ. PDS pt. aplicatii dedicate, realiz. la cerere

Caracteristici ale sist. PDS: algoritmii implementati, frecv. de esant. a semn. prelucrate, frecv. de tact, tipurile de aritmetici fol. de sist. PDS

A)Algoritmi:

- sist. PDS sunt caract. de alg. pe care il implementeaza

- alg. specifica tipurile de operatii care se efectueaza (+,*,intarzieri), dar nu specifica aritmetica care se fol. --> alg. poate fi implementat fie prin soft cu un procesor UG, fie pe un sist. cu procesor de semnal, fie pe un sist. cu procesor de semnal dedicat(proiectat la cerere)

Selectia modului de implem. a alg. este determ. de vit. necesarea(care se doreste a fi obtinuta) si precizia ceruta de operatia respectiva

PDS Alg.( Aplicatii):

1)codare si decodare a semnalului vocal(telefonie mobila, comunicatii securizate,comunicatii personale etc.);

2)criptare si decriptare a vocii;

3)sist de recunoastere a vocii(interfete om-masina, statii de lucru multimedia, robotica,;automobile, telefoane digitale, celulare etc);

4)sist. de sinteza a vocii(calc. personale multimedia, robotica);

5)sist. de identificare a vorbitorului(statii de lucru avansate, sist. de acces bazate pe..);

6)sist. de codare si decodare hi-fi(electronica de larg consum, emisiuni radio profesionale);

7)alg . pt. modem-uri;

8)sist. de eliminare a zgomotului(sist. audio profesionale, aplicatii industriale);

9)egalizoare audio;

10)pt . vizualizare;

11)compresie si decompresie de imagini.

B)Frecv. de esantionare(rata de esantionare)

- este param. de baza in sist. PDS

- completat cu gradul de complexitate al alg.,m. da vit. de prelucrare care trebuie obtinuta pt. alg.

- exista si sisteme de prelucrare care pot accepta mai multe rate de esantionare(sist. fol. pt. a transf. semnale inreg. cu rata de esant. de 44,1kHz de pe un disc compact in semnale folosite la inregistrarea pe o banda digitala audio, care fol. o rata de esantionare de 48kHz. Rap. nefiind un nr. intreg, transf. se exec. in cel putin 2 frecv. interm.)

- dom. in care se poate situa rata de esantionare in functie de complexitatea algoritmului.

- cu cat alg. e mai complex, cu atat rata de esant. este mai redusa

C)Rata de tact: - fiecare sist. digital are o rata de tact de baza, care determ. vit. cu care sist. efectueaza operatiile de baza

- in sist. simple (aplicatii comerciale) sunt comune ratele sunt reprez. cu nr. finit de biti; nr. in afara domeniului de reprezentare sunt fie limitate la una din valorile extreme(saturare), fie bitii excedentari sunt eliminati; ofera o gama dinamica mai redusa de reprezentare a marimilor; efectuarea operatiilor aritmetice se fol. componenta hard mai simple

b) reprezentarea in virg. mobila: mantisa + exponenti: ; mantisa este normata ( 1 registre de shiftare, registre de operanzi, acumulatoare si alte unitati specializate. Anumiti producatori se refera la procesarea datelor atunci cand mentioneaz UAL. In mod uzual, aceasta include doar sumatoare, unit. ce realiz. functii logice, scazatoare. In mod uzual, se include multiplicatoare si restul elementelor in termenul de procesare a datelor.

Procesoarele folosesc pt. calcule aritmetice proceduri de determinare a adresei in mod hardware. Aceste module hard sunt numite unitati de generare a adresei si realizeaza , in mod uzual, o mare varietate de calcule a adresei (adresarea MODULO si adreserea BIT-REVERSET). Procesoarele din familia AT&T DSP 32C si DSP 32XX sunt cazuri speciale, prezentand cai diferite pt. prelucrarea datelor in v.f. si a celor in v.m. Cea mai mare gama a modurilor de adresare specializate intalnite la procesoarele digitale de semnal este factorul ce deosebeste aceste procesoare de alte procesoare UG.

3. Structura caii de date la procesoarele digitale de semnal cu aritmetica in virgula fixa. /4. in virgula mobila.Calea de date(data path)Structura caii de date la proc. in v. m. este asemanatoare, cu cea de la proc. in v. f., dar cu anumite particularitati:

cele mai multe proc. de semnal in v.m. cu calea de date organizata a.i. sa poata realiza operatii in v.m. si v.f.(nu pot exec. simultan atat oper. in v.f., cat si in v.m.)

unele proc. cu funct. in v.m. poseda 2 cai de date separate: o cale de date pt. oper. in v.m. si alta pt. oper. in v.f.(ea este mai putin flexibila decat la proc. care lucreaza nativ in v.f.)

De exemplu: DSP 32XX are o cale de date pt. oper. in v.f. destinata, in special, calculului adreselor (nr. intregi), si o alta caale de date pt. prelucrari in v.m.

- in cazul proc. care au 2 cai de date (pt. v.m. si pt. v.f.),cea de a doua cale nu include multiplicator

- la calea de date pt. proc. in v.m. este prezent multiplicatorul (el accepta, de regula, 2 operanzi in v.m. pe 32b)

Spre deosebire de proc. in v.f., unde rezult. sunt reprez. in precizia reala(16x16=32b), datele de iesire (la proc. in v.m) de la multiplicator sunt reprez. pe o lungime 50-52b (32x32b=64b), mai mica decat ar fi nevoie (este o reprez. pe format redus, care asigura totusi o precizie buna).

UAL: principalelel operatii executate: +,-,determinarea val. absolute, determin. val. maxime si minime etc.

Operatii speciale: calculul cal. reciproce a rad. patrate, calculul simultan a sumei si diferentei a 2 marimi, conversie v.m. v.f., conv. de format.

UAL e folosit pt. a implementa oper. de adun. si scadere intr-o sg. instr.

Unele proc. de semnal in v.m. pot executa, in plus, multiplicare si acumulare intr-o sg. instructiune, iar alte pot executa adunare si acumulare (la + si acum. avem rezultatul disponibil imediat).

UAL la proc. in v.m. nu poate executa, in gen., oper. logice la nivel de bit, atunci cand numerele sunt reprez. in v.m.

6. Metode pentru atenuarea/eliminarea efectelor depasirii de scala

(overflow) la procesoarele digitale de semnal cu functionare in virgula fixa

Depasirea de scala(overflow, underflow) Ca si proc. in v.f., la proc. in v.m., aceste situatii: depasirea de scala si aparitia unor nr. f. mici, sunt tratate ca exceptii. Aceste exceptii produc situatii anormale (rez. sunt eronate). Aceste stari sunt memorate in reg. de stare prin setarea unor bistabili asociati acestor stari. In alte situatii, aparitia acestor stari declanseaza in mod automat o intrerupere. La proc. in v.m., overflow are un efect mai putin deranjant decat la proc. in v.f., deoarece proc. in v.m. ofera o gama dinamica mult mai mare decat proc. in v.f.

Pt. rezolvarea acestei probleme (overflow): se utiliz. met. saturatiei (inlocuirea marimii cu val. max. sau min. reprezentabila) sau se declanseaza automat o intrerupere si se rezolva depasirea din program.

Aparitia unor val. prea mici (underflow): marimea nu poate fi reprezentata cu nr. de biti disponibili apare cand se inmultesc 2 nr. f. mici.

Solutii: se memoreaza val. 0 ca rezultat al operatiei si este setat bistablilul pt underflow (se memoreaza in reg. de stare). Proc. in v.m. pot monitoriza si alte situatii limita: impartirea la zero se declanseaza o intrerupere.

7. Arhitectura memoriei la procesoarele digitale de semnal. Arhitectura Harvard.

ARHITECTURA MEMORIEIProc. de semnal. tb. sa realizeze un nr. mare de operatii in circuit. de timp. Oper. sunt in gen. simple, iar viteza cu care sunt executate e mare. Pt. a obtine aceasta vit. mare, nu este suficienta o crestere a performantelor caii de date. In afara de oper. de prel. propriu-zisa, operatiile implica si transferuri de date din/in memorie.

In consecinta, tb. executate modif. si la nivelul mem.pt. a obt. o productivitate ridicata(organizarea mem. modul de interconectare a mem. cu calea de date)

Structura memoriei(modul de organizare):

-cel mai simplu mod de organizare este cel intalnit la proc. UG

aceasta structura este caract. proc. secventiale (Von Neumann)

-este o arie unica de mem., externa in general, care este accesata de procesor prin intermediul magistralei de date si adrese unice.

Mem. e fol. pt. stocarea codurilor si a datelor. Ambele tipuri de informatii sunt transf. pe mag. de date implica transfer secvential nu e bun pt proc. de semnal, unde e nevoie de o productivitate mare. Solutie : separarea mem. in mai multe bancuri si prevederea unor mag. distincte pt. date si coduri.

In cazul proc. de semnal, e fol. arhitectura HARVARD.

In cazul proc. de semnal, arh. Harvard standard e modificata, in sensul ca exista posibilit. de transfer intre cele 2 blocuri de mem. Modificarea ofera posibilit. de a transfera info intre cele 2 tipuri de mem. cand se initializeaza sistemul, date din mem. fixa pt. programe pot fi transferate in mem. de date (de tip ROM).

Av. arh. Harvard: cele 2 blocuri de mem. pot fi accesate simultan. De exemplu: daca un alg. necesita executarea a 4 cicli de acces al mem., ei pot fi executati in 2 cicli instructiune. Aceasta organizare permite estragerea in paralel a codurilor si a datelor (codul instr. curente si datele asociate ei sau codul instr. urmat. si datele instr. anterioare). Deoarece mem. sistemului este impartita (mem. pt. date si pt .coduri) cu unitati de accesare diferite, pt. accesarea datelor pot fi fol. si tipul de adresare speciale; adresarea circulara, adresarea modulo. etc.

9. Metode pentru reducerea numarului de accesari ale memoriei de program.

Facilitati ptr reducerea ciclului de acces al memoriei. Timpul consumat ptr accesul memoriei face parte din timpul total al unui algoritm.Multi dintre algoritmii PDS implica constrangeri majore de timp => se iau masuri ptr dim timpului de acces al memoriei. Datorita acestor facilitati se obtine o reducerea timpului de acces atat ptr accesarea memoriei de program cat si ptr accesarea memoriei de date.

Masuri folosite:

a)introd unor arii de meorie in structura interna a procesorului separate, ptr stocarea programelor si a datelor si evitarea astfel a folosirii memoriei externe;

b)folosirea arhitecturii Harvard (separarea memoriei de program de cea de date); constituirea de bancuri separate de memorie su magistrale separate de acces => datele si codurile se transfera simultan;

c)prevederea de memorie cache ptr programe (meorie tampon rapida, situata intre memoria principala de mare capcitate si procesor cu care procesorul poate lucra cu o viteza mai mare).

In cazul procesoarelor PDS sunt prevazute blocuri de memorie cache de arii reduse situate intre nucleul procesorului si restul memoriei de program. Aceasta se foloseste ptr a astoca o parte din codurile care exista in memoria de program eliminand astfel necesitatea executarii unor ciclii de acces cu memoria de program de baza care este mai lenta decat memoria cache=> procesorul poate sa execute cicli suplmentari cu memoria ptr extragerea/screirea datelor in memoria de date.

11. Metode de adresare a datelor folosite de procesoarele digitale de

semnal.Moduri de adresare: sunt specifice unui procesor particular. Exista moduri generale de adresare la majoritatea procesoarelor PDS si moduri specifice de adresare.Ptr calculul adresei operanzilor uPUG dispun de unitati de adresare: unitati aritmetice simple, diferite de ALU; ele fac operatii simple, incrementari, deplasari.

1.Adresarea implicita: adresele opranzilor sunt specificate de operatia executata. Ex: Motorola DSP 16XXX: pot executa P=X*Y-> 2 registrii de operanzi, iar rezultatul se pune intr-un registru special P. Avantaj: folosesc cuvinte de lungime minima, operatiile putandu-se scrie si condensat.

2.Adresarea imediata: aici operandul este continut un cod. Operandul poate fi continut in cuvantul codului operatiei (daca este operand scurt) sau in codul cuvantului situat imediat dupa operatie (operand lung). Ex: ADSP 21XX: AX0=1234 -> incarca 1234 in registrul AX0 (operand scurt).

3.Adresarea directa (absoluta): folosita atunci cand operandul este in memorie. Ex: ADSP 21XX: AX0=DM(1000) -> se incarca in AX0 data de la adresa 1000. Adresare a) scurta: adresa in memorie este specificata cu un nr unic de biti; b) lunga: adresa este specificata cu un nr mare de biti.

4.Adresarea directa a registrelor: operanzii se afla in registrele procesorului; registrele sursa si destinatie sunt specificate in codul instr. Ex: TMS 320C3X: SUBF R1,R2(R1)-(R2)->(R2); este specificata procesoarelor PDS cu multe registre.

5.Adresarea indirecta a memoriei cu registrele: se foloseste ptr adresarea operanzilor din memorie; adresa se memorie este specificata prin registre.Ptr aceasta tehnica unele procesoare folosesc registre de UG iar altele folosesc registre speciale (registre de adresare). Avantaje:a) pot fi adresate eficient date de tip bloc sauu sir folosind contor; b) este eficienta dpdv al modului de codare a instr (cod mai scurt).

6.Adresarea indirecta cu registru de pre/post increment sau decrement: eficienta ptr adresarea blocurilor de date. Foloseste registreoo de adresare ptr generarea adresei operanzilor din memorie dar are posibilitatea de a modifica continutul registrului de adresa prin incrementarea/decrementarea inainte sau dupa generarea adresei. Ex: A0=A0+xR5++; aduna la continutul lui A0 din memoria adresata prin registrul R5. Ex: A0=A0+xR5++R7; R7 este registrul incrementat; Motorola DSP 5600X: MOVE X: -(R0),A1; decrementeaza R0 inainte de a realiza transferul de date. Realizarea incrementarii/decrementarii implica un ciclu masina suplimentar => nu prea se foloseste.

7.Adresarea indirecta cu registru de indexare:operanzii se afla in memorie. Sunt folosite 2 registre de adresare sau un registru de aadresare si o constanta; aceste 2 entitati sunt folosite la generarea unor adrese efective (adresa efectiva=registru+index); dupa generarea adresei continutul celor 2 registre ramane acelasi. Ex: TMS 320C3X: LDI*-AR1(1),R7; se incarca in R7 data de memorie de la o adresa continuta in AR1 minus o unitate. Este utila atunci cand aceasta secventa de cod este utilizata ptr a prelua mai multe seturi de date aflate la adrese diferite. Mai este utila si atunci cand este folosita de complilator ptr a transfera diverse argumente catre subrutine prin intermediul stivei => se foloseste un registru special: registrul ptr cadrul stivei. De cate ori subrutina este apelata acest registru este initializat cu adresa de inceput a stivei.

8.Adresarea indirecta prin registrul de tip modulo:se folosete bufferul de date (zona de memorie tampon alimentata fie de un periferic fie de rezultatele operatiilor anteriore). Este folosit atunci cand vrem o utilizare eficienta a menoriei. Bufferul este o structura de tip FIFO. Ptr gestionarea transferului de date cu acest buffer sunt necesare 2 registre de adresare:

a)Buffer liniar: registrul poiner de citire contine adresa urmatoarei date ce trebuie citita, iar registrul pointer de scriere contine adresa libera de scriere; cand unul din cele 2 registre ajunge la capatul bufferului el trebuie reinitializat. Aceasta presupune: actualizarea bufferului dupa fiecare proces si testarea adresei limita (consuma timp si resurse).

b)Buffer circular: aici aritmetica folosita ptr acualizarea registrelor este aritmetica modulo. Unitatea de accesare a procesorului foloseste aritmetica modulo ptr calculul noii adrese: cand registrul de adresare atinge valoarea maxima a adresei bufferului este scazuta din adresa curenta lungimea bufferului (adresa limita) => automat este reinitializat blocul de date => nu mai este nevoie de testare. Este de fapt tot un buffer liniar dar mecanismul sau de adresare il face sa fie vazut ca unul circular. 9.Adresarea indirecta cu inversarea bitilor: este legata de calculul TFR in baza 2 cu decimare in tipm sau frecventa. Acesti algoritmi presupun ca nr de puncte de calcul este o putere a lui 2 si reduc nr de calcule de multiplicare si adresare:

Metoda are dezavantajul ca fie esantioanele de intrare fie cele de iesire apar intr-o ordine permutata data de cea naturala => este necesara o alta permuatare ptr a le aduce inapoi => algoritmul de inversare a bitilor: se reprezinta liniar indicele zecimal al esantioanelor de iesire, se permuta bitii si se calculeaza apoi noua valoare zecimala ptr a restaura ordinea; aceasta operatie este efectuata automat: procesorul pe baza adresei liniare calculeaza noua adresa a secventei de iesire.12. Setul de instructiuni al procesoarelor digitale de semnal. Ortogonalitatea setului de instructiuni.Setul de instructiuni- e o char. a fiecarui uP

- uP neponderate au setul de instr. X

- setul de instr. det. fct. pe care proc. Poate sa le exec. Se controleaza transf. de date, oper. aritm.-log., funct. sist. de intrer., salturi in progr.

- setul de instr. are o imp. decisiva asupra apl. pe care le pot rezolva anumite tipuri de uP.

Tipuri de instr.

- un proc. cu set bogat de instr. nu e neaparat un proc. m. performant --> introd. in setul de instr. a unei instr. f. specializ. poate fi un avantaj doar pt. un nr. mic de apl. (instr. tr. sa aiba o arie larga de apl.)

1) Instr. aritmetice: toate proc. de semn poseda instr. aritm. pt. oper. elem.: +,-,*,:,increm.,decrem.,etc.

- cu exc. proc. aparute la inc., toate PDS cont. instr. de multiplicare cu acumulare (MAC) --> exec. intr-un sg. ciclu de tact

- exista proc. ce cont. si instr. de ridicare la patrat: fam. 5x de la Texas

- instr. de multipl. pe care le exec. ac. proc. fol. operanzi din mem. care sunt adresate indirect, se utilizeaza operanzi in reg.

- ps. pot exec. oper. aritm. atat in precizie simpla, cat si in precizie extinsa

- instr. aritm. lucr. Cu operanzi fie din reg., fie din mem.

Instr. logice

- maj. Ps. pot exec. instr. log. ce efect. oper. log. elem.: SI, SAU, SAU EXCULUSIV, NEGARE

- sunt utile in apl. unde se iau anumite decizii sau in detectia si corectarea erorilor (sist. de comunicatie)

- ac. sunt exec. pe cuv. de lung. nativa (nu lungime extinsa)

Instr. de deplasare

- exista 2 categ. de astfel de instr.: a) de tip aritmetic;b) de tip logic

- o deplas. aritm. la st. muta toti bitii unui cuv. la st. cu un rang si insereaza pe poz. bitului celui m. putin semnificativ. un zero

- in cazul deplas. logice la dr. se copiaza pe poz. bitului ramas liber cel m. semnif., bitul de semn

- deplas. logica la st. se incarca zero pe pozitia LSB

- deplas. aritm. sunt fol. pt. a scala(norma) datele din reg. sau mem. pt. proc. cu aritm. in virgula fixa

- toate ps poseda instr. de deplasare in diverse variante

- unele proc. exec. doar deplas. st./dr. aritm./log. cu un sg. bit

- exista proc. care fac deplas. cu 2 sau 4 biti

- daca le combinam ==> deplas. pe m. multi biti (>4)

- pt. realiz. oper. de deplas., unele ps au incorporate pe calea de date reg. de deplas. de tip BARREL SHIFTER --> permit deplas. cu 1 sau m. multe ranguri binare intr-un sg. tact

Instr. de rotatie

- pot fi cons. oper. de deplas. circulara

- bitul expulzat dintr-o poz. e incarcat in poz. rangului opus

- se fol. in: codarea cu corectia erorilor cu intret. bitilor,gener. adr. cu inversarea bitilor

- oper. de rotatie st./dr. se exec. cu un sg. bit

Instr. de comparatie

- cele m. multe proc. de semn poseda biti de stare care dau inf. despre rezult. anterioare --> exista biti de transp.

- bitii de stare sunt setati ca urmare a unei oper. aritm. exec. anter. si pot fi fol. pt. exec. unei instr. conditionate

- exista si sit. in care intr-o instr. in care tr. luate anumite decizii e nec. sa se compare anumite date cu o data martor

- o model. de realiz. a comparatiei e de a scadea val. ce urm. a fi comparata din val. de referinta si de a fixa bitii de stare

- ac. oper. de scadere modif. si val. operanzilor

- modif. datelor pt. realiz. comparatiei nu e o sol. dorita si de aceea ac. proc. au instr. de compar. ce fac compar. fara a modif. datele compar.

- o instr. utila e de a compara in val. abs. o var. cu o data martor, oper ce permite det. incadrarii datei intr-un domeniu

Instr. de exec. a buclelor

- maj. apl. DSP necesita exec. repetata a unor secv. de cateva instr. de tip aritm. sau de multipl.

- nr. de instr. dintr-o bucla e redus, fol. pt. a realiz. bucla a unor oper. de increm., de testare a ac. si de salt la inc. buclei nu e o sol. buna pt. ca creste timpul de exec. ==> proc. ofera instr. specializ. de realiz. a buclelor de progr. fara a incarca cu oper. suplim.bucla resp. --> ac. facilitate s.n. zero overhead loop=bucla cu incarcare zero

- ac. oper. sunt exec. de proc. in background, adica fara a creste timpul de exec. a buclei

Instr. de salt, de apeluri de subrutine si revenire in subrutine

- instr. de transf. a controlului

- ac. tipuri de instr. sunt prezente la toate tipurile de PS

- pot avea urm. forme:a)conditionat/neconditionat(salt neconditionat se exec. mereu, unul condit. e exec. doar daca e indepl. 1 sau m. multe cond. de exec.); b)intarziat sau muticiclu(un salt multiciclu necesita cateva cicluri instr. pt. a fi exec., in ac. timp procesorul nu exec. nici o oper., un salt intarziat permite proc. sa exec. cateva instr. dupa instr. de salt inainte ca saltul sa fie exec., saltul intarziat cu anulare: TMS 320CX-->poseda o instr. de salt condit. pt. care instr. aflate dupa instr. de salt si care pot fi exec. inainte de a se efectua saltul sunt exec. cond. in fct. de exec. sau neexec. saltului)

Instr. de transfer relativ la controlul de progr.

- un salt relativ la val. reg. PC a controlului de progr. det. un transfer al controlului la o adr. calc. relativ la val. curenta a controlului de progr.

- sunt imp. pt. progr. a caror exec. e indep. de localizarea in mem.

- exec. unui astfel de progr. dep. de faptul ca nu exista adr. absolute

Instr. de exec. conditionata

- ac. instr. permit progr. sa specif ca o instr. va fi exec. numai daca e indepl. o anumita cond.

- instr. condit. e utila in progr. unde tr. luate multe decizii --> deserveaza program. de sarc. fol. unor instr. de salt simple pt. verif. conditiilor si exec. salturilor

- utile la proc. care poseda pipe-line, pt. ca evita golirea pipe-line-ului pe care o implica exec. unui salt

- unele proc. permit exec. condit. doar a anumitor instr., nu a intregului set;

- instr. cu exec. conditionata sunt cele care se refera la acumulatori:incr., decr., deplas., rotunj. etc.

- cond. de salt sunt cont in instr. ==>nu exista penalizarea de timp

- la alte procesoare(TMS 320TX sau TMS 320T54X), exista o instr. speciala (XC) care e exec. intr-un sg. ciclu si care plasata inaintea unei instr. det. exec. sau nu a ac. daca cond. specif. ca argument e indepl. sau nu

- cand exec. condit. e detem. de o instr si nu de codul ei ==>abordare mai generala

Instr. cu functii speciale

- au ca scop compactarea progr.

- ac. reprez. permite implementarea regimului de lucru in virg. mobila pe proc. ce lucreaza in virgula fixa

- ac. instr. sunt utile in apl. de procesare a vorbirii sau in implem. de transf.

- realiz. 2 oper.:a)detectia exponentului(se det. nr. de biti redudanti dintr-o anum. data);b)normarea(se refera la detectia expon. si de plas. la st. a mantisei a.i. sa nu cont. biti de semn redundanti)

- detectia si normarea pot fi exec. separat sau impreuna

- cand multipl. 2 nr. cu semn pe 16 biti ==>nr. pe 32 biti ce poate fi elim.1 bit de semn redundant

- instr. NORM exec. un salt exclusiv intre bitii 31 si 30

- proc. DSP pot exec. oper. de detectie si normaliz. a expon. in 3 var.:a)detectia expon. pt. bloc de date:aritm. cu virg. mobila pe bloc(se det. expon. max. pt. un bloc de date si ac. e inreg. ca expon. al datelor din bloc, celelalte fiind deplas. st./dr., avand in final acelasi expon.;b)determ. expon.: det. epon. unui sg. date intr-un sg. ciclu instr.;c)normarea:exec. doar normarea datelor(exec. intr-un sg. ciclu)

Instr. de manipulare a bitilor

- sunt utile cand se iau decizii pe baza inf. cont. la nivel de bit, oper. pt. corectia erorilor, etc.

- ac. oper. pot fi exec. fie pe bit, fie manipulari pe m. multi biti

- din ac. categ. fac parte: sortare, resetare, invers. val. bitilor

- instr. de manip. sirurilor de biti exec. oper. resp. pe un nr. dat de biti dintr-un cuv.

- m. complex: inserarea unui sir de biti intr-un cuv. sau extragerea dintr-un cuv. a unui sir de lung. specif.

- instr. e utila in implem. anumitor protocoale de comunicatie

Instr. cu functii speciale

- instr. di imp de tip iterativ(bit cu bit)

- instr. de calc. aprox. al rad. patrate

- instr. pt. oper. speciale cu stiva

Ortogonalitatea setului de instr.- e legata de consistenta setului de instr. a unui proc.

- cu cat setul de instr. e m. ortogonal, cu atat sarc. progr. e m. simpla

- exista 2 param .ce specif. ortog.:a)consistenta setului de instr.;b)gradul in care modurile de adr. dispon. pot fi fol. in mod uniform cu diverse instr.

- dc. la un proc. adresarea indir. prin reg. e dispon. doar cu instr. de adun. si nu e si pt instr. de - ==> proc. nu e ortog.

- proc. care au instr. codif. cu cuv.-instr. m. lungi, tind m. repede de a avea un set de instr. ortog. decat la cele codif. cu cuv.-instr. m. scurte.Asta are loc pt ca e pos. in primul caz ca oper. sa fie codate indep.(cu cat un cuv. din struct. e m. lung, cu atat sunt dispon. m. multi biti pt a coda oper.+operanzii==>set ortog.

- pp. reg. cu 8 reg. de date R0R7. Pt. a exec. ac. oper. tr. codat tipul de oper.(fie proc. cu m. putin de 32 oper. distincet ==> 5biti) ==5biti pt tipul oper.+3biti pt a coda fiecare reg.(3x3)(2surse, 1destinatie)==>e nevoie de 20biti==>1cuv. de 32 biti sau 2 cuv. de 16biti

- daca anumite proc. poseda biti care controleaza modul in care exec. o anumita instr.(exec. nu e det. exclusiv de codul din mem. de progr., ci si de starea unor biti interm. proc.)

Limbajul de asamblare - exista 2 var. de limb. de asambl.:a)limbaj de asamblare in care instr. au formatul cod op-opernad;b)limbaj de asamblare in care instr. au formatul asem. limbaj C

- pt var. (a) instr. sunt reprez.prin coduri simbolice sau specifica tipului de oper.

14. PIPE-LINE

Tehnica PIPE-LINE: cele mai multe procesoare PDS combina arhitectura Harvard cu tehnica pipeline de functionare => productivitate mare. Consta in impartirea unei activitati in subactivitati si executarea acestora pe unitati functionale distincte. In acest fel se reduce timpul de executie a instr. Totusi folosirea acestei tehnici nu este scutita de incoveniente, in special legate de programarea procesoarelor. De aceea in folosirea acestei tehnici se cauta un echilibru intre avantaje si incoveniente. Ex: contributia la paralelizarea operatiilor: principalele operatii sunt extragerea codului, decodificarea, transferul operanzilor si executia.

Procesoare care nu folosesc tehnica pipeline:

Putem spune ca in mod virtual procesorul executa o instr pe tact => la fiecare tact este disponibil un rezultat al unei instr. Aceastatehnica nu difera de cea de la uPUG. Ea este prezenta la TMS 320 3X.

Dimensiunea pipelineului: reprezinta nr de unitati distincte cu care sunt prevazute procesoarele; variaza intre 3-5 unitati (fetch, decode si execute); cresterea nr de nivele de pipeline duce la cresterea dificultatii la programare.

Problema interblocarii: ex cu pipeline corespunde unei suprapuneri ideale a ciclurilor de instr (fiecare unitate functionala este folosita imediat, nu are timpi morti). Acest lucru nu este posibil cand apar conflicte in privinta folosirii resurselor interne. Ptr un ciclu de 2 instr: o instr executa o scriere in memorie (dureaza 2 stari) si instr urmatoare vrea o citire din memorie (dureaza un tact). I2 nu a finalizat operatia cu memoria => I3 nu poate folosi memoria in tactul T5 => nu se mai respecta intreteserea instr (se va folosi un mecanism de interblocare).

Conflictele la resurse duc la scaderea performantelor (cresterea vitezei de executie nu este cea dorita si se complica programarea procesorului ptr a evita aceste conflicte). Acest lucru se face folosinf interblocarea.

In decursul I2 in faza 4, I2 simultan cu I3 incearca sa acceseza memoria => conflict; aceasta se rezolva prelungind cu un tact I3 si I4 la nivelul extragerii. Daca I3 nu necesita efectuarea unei activitati cu memoria conflictul nu exista si secventa decurge normal. Aceasta situatie conflictuala complica procedura de optimizare a codului deoarece programatorul nu poate estima momentele in care apar aceste conflicte; ele apar la executia unei instr care implica operanzi imediati lungi. Astfel de instr necesita prelungirea nr de ciclii de fetch ptr a citi in totalitate instr (prelungirea fetch => intarzierea celorlalte instr).

O alta problema in funstionare o reprezinta starile conflictuale care se produc datorita aparitiei unor stari de hazard. Aceste stari de hazard apar datorita imposibilitatii de a sincroniza functionarea diverselor etaje pipeline ale uP. Ex: Motorola DSP 5600X: apare hazard la instr; MOVE #1234,R0 (incarcarea unui operand imediat in registrul de adresare R0); MOVE X: (R0), X0 (incarcarea unei date intr-un registru X0din memorie). Procesorul foloseste 3 etaje pipeline ptr extragerea de cod, decodificare si executie. Operatiile de prelucrare aritmetice si logice de transfer ale operanzilor si de incarcare a registrekor se realizeaza in etapa de executie. Deoarece adresa ptr executarea operatiilor de transfer este incarcata pe durata cicluluii de decodificare apare un hazard in ceea ce priveste transferul datei: procesorul transfera data din memorie in registru inainte ca adresa din registrul R0 sa fie stabilita. Ptr a elimina hazardul programatorul trebuie sa eveiteo astfel de secventa prin reducerea NOP intre cele 2 instr. Ex: TMS 320: prin hazard, registrele de adresare sunt testate adca s-a produs modificarea continutului lor prin instr anterioara; instr urmatoare continua numai atunci cand continutul registrului e stabil.

Un alt defect al pipeline se produce la executarea salturilor in program. Saltul in program produce modificarea secventei de instr; cand se executa o instr de salt trebuie incarcata o noua adresa in contorul de program ceea ce produce o intarziere in functionarea eatjelor pipeline, chiar daca intre timp in anumite etaje au fost incarcate codurile anumitor instr, aceste coduri sunt anulate pana la terminarea instr de salt.

13. Mecanisme hardware folosite pentru executarea buclelor de instructiuni.Unitatea de control a procesoarelor PDS: facilitati ptr realizarea buclelor; manipularea intreruperilor; realizarea stivei; facilitati ptr salturi relative.

a) manipularea buclelor de instr: algoritmii PDS implica executia repetitiva de un nr de ori a unor instr sau secvente de instr -> bucle interne sau nuclee. Ex: calculul raspunsului filtrelor numerice, calculul transformatelor, multiplicarea matricelor presupune executarea unor astfel de bucle. Procesoarele PDS sunt inzestrate cu facilitati ptr accelerarea executiei buclelor ptr ca sunt frecvente.

Comparatii cu uPUG: cele de UG folosesc urmatoarele variante de executie a buclelor: 1) instr de salt: prin soft sistemul determina momentul in care preocesorul intoarece si reia secventa de instr din bucla; aceste salturi consuma ciclii de tact; ptr bucle mici o instr de salt dubleaza timpul de executie; 2) registre speciale: pe post de contor de bucla care numara ciclii (de cate ori procesul executa bucla); la fiecare parcurgere a buclei contorul este incrementat sau decrementat dupa care valoarea sa este testata ptr a stabili daca bucla a fost parcursa de nr de ori planificat => consuma timp mult.

Procesoarele PDS folosesc buclarea hard ptr executia buclelor: cu ajutorul acestor facilitati procesorul poate executa bucle cu incaracre zero (zero overhead looping) fara ciclii masina suplimentari. Buclarea hard consta din elemente hard ptr buclarea repetitiva a unei instr sau secvente de instr. Diferenta fata de uPUG: acest mecanism de buclare hard nu consuma timp ptr realizarea operatiei de actualizae a contoarelor, ptr testarea acestora sau ptr executia salturilor la incheierea unei bucle. Ex: implementarea unui filtru cu raspuns finit la impuls: MOVE #16,B LOOP MAC (R0)+, (R4)+, A DEC BX JNE LOOP RPT #16 MAC (R0)+, (R4)+, A.

Buclare hard ptr o singura instr sau ptr o secventa de instr: in cazul in care se executa o singura instr ea este extrasa o singura data sin memoria de program si executata de un nr de ori planificat fara a fi extrasa mereu din memerie => in acest fel magistrala ptr coduri poate fi folosita ptr transmiterea datelor. In cazul in care procesorul executa efectiv secvente de instr, instr sunt citite din memoria de program atunci cand este parcursa bucla => magistrala de coduri nu este disponibila ptr transferul datelor. Ex: DSP 16XX: au un buffer de 15 instr care poate memora o secventa de 15 instr care se citesc la prima iteratie si dupa ceea sunt citite din buffer la parcurgerile ulterioare => magistrala este libera.

Lungimea buclelor: majoritatea procesoarelor nu prevad restrictii privind nr de instr continute in bucla. La ate procesoare (DSP 16XX) bucla nu poate contine mai mult de 15 instr sau la DSP 32C bucla are maxim 32 de instr. Aceasta limitare nu are un dezavantaj; in general buclele au un nr mic de instr.

Contorizarea buclelor: intr-un procesor se specifica nr minim si maxim de repetari ale buclei (intre 1si 216 ori). Exista un nr limitat de procesoare la care nr maxim este limitat la 256. Daca nr de repetari ale buclei este mare instr de progrmare a buclelor sunt instr lungi; daca bucla este scurta nr de repetitii poate fi cuprins in codul operatiei. Inconvenientul care apare la Motorola DSP 5600X este atunci cand contorul de bucla este zero la inceput buclei; bucla este parcursa de nr maxim de iteratii posibil. Exista situatii cand programrea nr de iteratii este simpla si se poate evita valoarea zero, insa cand programarea nr de iteratii este dinamica aparitia valorii zero nu este controlata ceea ce duce la blocarea algoritmului => unele procesoare testeaza in timpul executiei starea contorului de bucla si se evita astfel incaracarea cu zero a contorului de bucla.

Timpul de latenta la intreruperi in cazul buclelor: reprezintaintarzierea cu care procesorul raspunde la o cerere de intrerupere (timpul dintre activarea unei cereri de intreruperi si executarea primei instr din intrerupere). In cazul buclelor cu o singura instr procesorul dezactiveaza sistemul de intreruperi pe durata executiei instr => se poate contoriza exact cat este timpul de latenta si se compara cu durata maxim admisa. In cazul executiei repetitive a mai multor instr exista o incertitudine in determinarea timpului de latenta in functie de lungimea buclei de instr si de nr de parcurgeri. In plus in cazul executiei repetitive a unor secvente de instr nu este posibila intotdeauna dezavtivarea sistemului de intrerupri pe durata executarii buclei => programtorul trebuie sa monitorizeze pe o alta cale starea intreruperilor.Astfel instr sunt onorate la sfarsitul unui ciclu . Ptr bucle din mai multe instr cererea de intreruperi este recunoscuta dupa oricare din instr din ciclu > exista situatii cand procesorul accepta intreruperea in interiorul buclei => procesorul termina executia programului inainte de terminarea sa.

Imbricarea buclelor: sunt cicluri care se executa unul in interiorul celuilalt

1.Imbricare directa: permite imbricarea hard prin utilizarea unor instr de buclare hard in interiorul unei alte bucle; nu exista restrictii in privinta imbricarii. Ex: Motorola, Analog Devices, NEK. Ptr a realiza imbricarea directa procesorul poseda o stiva in care trebuie salvate la parasirea fiecarui nivel datele despre bucla respectiva care se face automat la parasirea buclei (aceste date sunt puncte de start, puncte de sfarsit, nr de repetitii).

2.Imbricare partiala: unele procesoare care permit repetarea unei instr si a unei secvente de instr in mod curent accepta in interiorul buclei executarea repetitiva a unei singure instr. Ex:TMS 320C3,X4,X5: au aceeasi facilitate cu toate ca nu au imbricarea buclelor.

3.Imbricare soft: TMS 320 C3X, C5X: buclele hard ptr secventele de instr pot fi imbricate, salvand prin soft starea registrelor care sunt folosite ptr executarea buclei primare (registrele ptr starea de start a buclei, ptr punctul de sfarsit, ptr nr de repetari). Aceste registre se incarca apoi cu alte date si se poate executa o noua bucla.

4.Nu avem imbricare: nu au posibilitati de imbricare: TMS 320 C2X, AT&T DSP 16XX

Buclare hard cu suport soft: unele procesoare permit realizarea unei bucle hard in interiorul unei bucle implementate prin soft. Ptr aceasta ele poseda o instr de tipul DECREMENT AND BRANCH IF NOT ZERO: se executa automat decrementarea, testarea contorului si saltul. (DSP 16XX).

b) Sistemul de intreruperi: intreruperile se folosesc ptr tratarea unor evenimente externe: situatii de avarie, deservirea unor dispozitive periferice. Un eveniment extern poate sa comande suspendarea programului in curs si executarea unui program de servire a intreruperii. Cele mai multe intreruperri au loc ptr servirea dispozitivelor periferice ptr executarea transferurilor de date.

Sursele de intrerupere: 1) dispozitivele periferice incorporate in cip: cererile de intrerupere pot sosi de la porturi seriale, paralele, contoare; 2) dispozitive externe: procesoarele poseda linii de comanda speciale, respectiv intrari ptr comanda intreruperii care pot fi activate de dispozitive perifericeexterne atunci cand acestea doresc servirea de catre procesor; 3) intreruperi soft: acestea sunt initiate fie de intreruperi speciale fie de anumite stari cauzate de executia programului. Ex:aparitai unui cod inexistent, erori sau stari anormale aparute la functionarea unitatii in virgula mobila, impartirea la zero, overflow.

Vectorizarea interuperilor: consta in asocierea fiecarei surse de intrerupere cu un nr numit vector de intrerupere (adresa de inceput a programului de prelucrare a intreruperii). Dupa primirea cererii de intrerupere perifericul care a cerut intreruperea trebuie sa transfere catre uP aceste vector de intrerupere. Pe baza lui procesorul poate sa comute executia la programul de servire a perfericului care a cerut intreruperea. Aceasta vectorizare scuteste uP de sarcina monitorizarii surselor de intrerupere ptr a stabili care sursa este activa la un moment dat si de a o trata cu programul asociat. In mod frecvent vectorul de intrerupere are lungimea de 1-2 cuvinte (16-32 biti) si sunt localizati la adrese fixe care sunt situate la adresele inferioare ale spatiului de adrese cu care lucreaza procesorul. La aceste adrese accesate prin vector se afla intructiuni de salt catre subrutinele de servire a intreruperii. Daca exista spatiu suficient la aceste adrese se pot insera subrutine de servire => se micsoreaza timpul de latenta.

Activarea intreruperilor: ca si la uPUG exista posibilitatea ca sistemul de intreruperi sa fie activat sau dezactivat prin programe cu instr speciale. Cand este activat cererea de intrerupere este servita, iar cand este dezactivat cererea este ignorata.

Prioritatea intreruperilor: se foloseste atunci cand are mai multe surse de intrerupere. Atunci cand sosesc simultan mai multe cereri de intreruperi (in cadrul aceluiasi ciclu de instr) procesorul trebuie sa decida care sursa este servita prima. Mecanismul de stabilire a prioritatii este fix sau programabil. Procesoarele din familia TMS folosesc controlere de intrerupere ptr stabilirea prioritatilor. Dupa acceptarea unei intreruperi procesorul dezactiveaza sursele de intrerupere de prioritati inferioare; ele pot fi activate prin soft la dorinta utilizatorului.

Latenta intreruperilor: timpul de latenta trebuie cunoscut in 2 situatii: ptr sistem in timp real sau ptr tratarea evenimentelor care constituie stari de avarie (acesta trebuie sa fie cat mai scurt). Se mai foloseste notiunea de intrerupere rapida (atunci cand 2 instr aflate la adresa de salt nu sunt instr de salt). Intrruperile rapide se folosesc la transferul de date de la date sau catre periferice.

Metode de reducere a intreruperilor: Analog Devices ADSP 21XX, Texas TMS 320C5X folosesc porturi seriale cu mecanisme de tip buffer care sunt incarcate automat de catre dispozitivele periferice si care gestioneaza o intrerupere doar atunci cand bufferul este plin.

c) Realizarea stivei: 1) cu set specializat de registre: procesoarele au un set de registre interne folosite ptr operatii de salvare fie de comandare de instru speciale de lucru cu stiva, fie accesate automat dupa acceptarea unei cereri de intrerupere; nr de registre este redus astfel incat stiva cu registre este o stiva cu un nivel ( accepta o singura cerere de intrerupere sau o singura instr). 2)stiva hard cu memorie: foloseste memorie RAM ptr date ca suport de stocare in care este rezervata o zona ptr salvari de date; nr de nivele ale stivei depinde de dimensiunea memoriei alocate (poate fi chiar capacitatea maxima a memoriei de date). 3) stiva soft: este organizata in memorie si foloseste ptr comanda un registru similar folosit de uPUG ptr contorizarea varfului stivei, registru controlat prin soft de utilizator; la stiva hard locul stivei este fix; la stica soft se poate programa locul stivei in memorie.

d) Elemente suport ptr salturi relative: 1) salt absolut: se modifica tot continutul contorului de program; 2) salt relativ: controlul este transferat cu un nr de locatii inainte sau inapoi fata de valoarea curenta a contorului de program. Aceasta facilitate este utila ptr crearea unor secvente de program independente de pozitie. Un astfel de program poate fi asezat oriunde in memorie in momentul incarcarii. Daca toate adresele de referire in secventa respectiva de cod sunt specificate relativ la o locatie de referinta nu exista restrictii de localizarea programului in memorie; acest lucru nu se intampla ptr un program cu adrese absolute. Aceste facilitati permit apelarea unor astfel de programe independente de pozitia ocupata in memorie. Avantajul: forma compacta => viteza mai mare la instr de salt relativ decat la cele de salt absolut.15. Sistemul de dispozitive I/O si de periferice incorporate (porturi, timere, convertoare A/D, etc.).

Interfete ptr periferice la PDS: ofera posibilitatea de a conecta dispozitive periferice prin intermediul arora se realizeaza interfata cu exteriorul.

1.Porturile seriale: se folosesc ptr transmiterea/receptia datelor in format serie (1bit/unitatea de timp); se folosesc ptr comunicatii cu alte dispozitive periferice, ptr comunicarea cu alte procesoare in sistem multiprocesor, ptr comunicarea cu sisteme de achizitie de date.

a) Porturi asincrone: intre cele 2 dispozitive care comunica exista o singura linie folosita ptr transferul datelor. Nu se pot transmite alte semnale. Semnalul de tact este obtinut din secventa de date; transmiterea nu este intotdeauna sigura (exista posibilitatea sa nu se recupereze tactul) => porturile seriale asincrone nu sunt folosite.

b) Porturi sincrone: simultan cu datele se transmite si tactul care este folosit la receptie ptr preluarea datelor (indica momentul cand data este valida). Toate interfetele sincrone trebuie sa sincronizeze momentul schimbarii datelor, respectiv fie pe frontul crescator, fie pe cel descrescator al tactului. Nivelul de tensiune ptr date variaza intre 3,3-5V (datele sunt compatibile TTL). Nivelul activ al datelor poate fi nivelul de tensiune maxim ptr 1 logic si invers, ptr zero sau invers. Ordinea de transmitere a datelor: primul bit poate fi MSB/LSB. De regula prin porturile seriale sincrone se transmit secvente de biti ce pot avea lungimi 8,16,32 biti. Inceputul secventei de biti este marcat de un tact de cadru. In acest fel la receptie se poate detecta inceputul secventei si fiecare bit cu tactul de bit. Exista posibilitatea ca intr-un tact ce cadru sa poata fi transmise mai multe secvente. Semnalele de tact: BIT CLOCK (poate fi generat fie de procesor pornind de la tactul de baza, fie poate fi primit din exterior); semnalul de tact este standardizat: comunicatia se realizeaza cu rate de bit standard (75,150,300 biti/sec). In sistemele multiprocesor sau atunci cand liniile suntimpartite in mai multe dispozitive periferice, porturile seriale pot fi folosite prin multiplexare in timp.

Datele sunt transmise in pachete de cate 16 biti. Fiind 4 procesoare exista 4 cadre in care procesoarele isi transmit datele. Suport Hardware: toate liniile seriale trebuie sa aiba facilitate three state. Daca o linie nu este activa o punem cu inalta impedanta. DPS1 furnizeaza tactul de cadru, iar celelate il receptioneaza. Ptr a identifica sursa/destinatia mesajului in sursa de date se insereaza si bitii de adresa.

Porturi seriale cu compandare: porturile seriale sincrone se folosesc ptr interfata cu dispozitive externe de codare care lucreaza in banda semnalului vocal. Aceste codecuri sunt dispozitive de codare/decodare de tip CAD/CDA folosite in telefonie. Principiul compresiei: esantioanele reprezinta adrese unde se gasesc valorile comprimate cu 8 biti (comprimare+decomprimare=compandare).

2.Timer-ele: sunt contoare de timp programabile utilizate in diverse scopuri: generarea unor secvente programabile, generarea unor cereri de intrerupere la momente de timp programate, comanda unor dispozitive periferice specifice. Din cauza faptului ca tactul poate fi controlat prin soft iesirea timerelor poate fi privita ca un oscilator controlat prin soft. Schema bloc: Circuitul de prescalare permite fixarea domeniului in care se situeaza frecventa de iesire astfel incat sa fie acoperita gama frecventelor joase si gama frecventelor inalte. Numaratorul lucreaza prin decrementare; este incarcat cu o valoare initiala pe 16 biti care este decrementata cu tactul de prescalare si in momentul in care continutul este zero se genereaza un puls de iesire. Tactul poate fi periodic sau timerul se poate bloca dupa generarea primului puls.; semnalul de tact de baza provine din tactul interior sau exterior => parametrii timerului sunt programabili. 3.Porturi paralele: 6-8 linii ptr transferul datelor; viteza foarte mare; mr mare de linii intre emisie si receptie (dezavantaj). Contine, in afara liniilor de date si un nr suplimentar de linii (2 ptr asigurarea protocolului de comnunicatie: una ptr cereri de date si o linie ptr validarea datelor). Porturile pot fi programate ca in/out; anumite linii pot fi programate individual ca in/out. Procesoarele PDS folosesc porturi paralele fie ptr conectarea perifericelor cu acces paralel sau ptr conectarea memoriei externe, impreuna cu semnalele de acces. Cand la port se conecteaza periferice acestea sunt vazute de procesor ca porturi => avem nevoie de linii suplimentare de adresa sau de locatii de memorie => procesorul cand transfera date spre aceste locatii transfera date spre dispozitive periferice.

4.Porturi de comunicatie: sunt porturi paralele folosite ptr comunicatiile in sisteme multiprocesor; difera de un port normal prin: a) este destinat ptr comunicarea intre dispozitive de acelasi tip; b) permit si implementarea unor protocoale speciale de comunicatie.

5.Interfete anologice (convertoare AD-DA): deoarece multe semnale de prelucrat sunt anologice ele sunt prelucrate fie inter cu CAD/CDA, fie extern; ele lucreaza pe 8/16 biti; frecventele de lucru sunt in domeniul audio.18. Procesorul de semnal TMS32010. Particularitati arhitecturale si functionale. Aplicatie.Procesoarele TMS 320C1X: create ptr a acoperi gama aplicatiilor din domeniul vocal si ptr a implementa algoritmi de prelucrare din domeniul vocal. Avantaje: productivitate ridicata (nr mare de operatii/secunda), pret de cost scazut, a permis rezolvarea usoara a algoritmilor de prelucrare a semnalelor vocale.

Caracteristici: - exista 2 variante constructive: TMS 320 10 si TMS 320 M10; se deosebesc prin arhitectura memoriei interne;

- sunt procesoare in virgula mobila pe 16 biti;

- ciclul instr tipic este de 200nsec;

- poseda memorie interna de tip RAM (144 locatii cu 288 octecti) si ROM (3KB) doar varianta M;

- memoria poate fi extinsa cu memorie deprogram pana la 4KB

- unitatea de executie: a)UAL cu acumulator pe 32 biti;b)multiplicator de 16X16biti; c)registre ptr deplasari cu zero pana la 115 ranguri binare; d)circuite de normare: poate executa normari si scalari cu 0,1,4 ranguri binare; e)magistrale bidimensionale ptr transfer de 16 biti (rata de transfer 40MB/sec); f)instr si date codate pe 16 biti; g)procesorul opereaza in virgula fixa, datele numerice se reprezinta in cod complement fata de 2.Particularitati functionale: a)se combina arhitectura Harvard cu executia pipeline a instr;

b)extragerea instr din memoria externa poate fi realizata la viteza maxima dace se foloseste memoria cu timp de acces de maxim 100nsec;

c)memoria externa este folosita numai ptr stocarea programelor;

d)memoria interna este folosita ptr date (este de tip RAM);

e)se foloseste o arhitectura Harvard modificata: este posibil transferul de date intre memoria de program si cea de date; memoria de program este accesata cu instr de date de in/out;

f)procesorul utilizeaza un pipeline cu 2 etaje care permit tratarea simultana a 2 instr; existenta acestiu pipeline permite procesorului sa execute un ciclu instr in 200nsec

Elemente aritmetice: 1.UAL: este pe 32 biti: adunari,scaderi, operatii logice; una din sursele operanzilor: scumulator,alta sursa: iesirea multiplicatorului; alta sursa: iesirea shifterului. Atunci cand executa operatii aritmetice/logice cu date pe 16 biti, bitii semnificativi sunt pep ozitia bitilor inferiori, iar bitii superiori sunt zero. O problema apare atunci cand bitii de amplitudine afecteaza bitul de semn => saturatie care produce erori grave in desfasurarea unui algoritm de prelucrare. TMS 320 C1X functioneaza in 2 moduri: nesaturat si saturat (cand se fixeaza un bit de stare care poate fi controlat din program). Cand se fixeaza modul saturat la aparitia unei depasiri de scala in acumulator, procesorul incarca automat fie valoarea maxima negativa, fie valoarea maxima pozitiva care poate fi reprezentata in functie de sensul depasirii scalei. Daca procesorullucreaza nesaturat in acumulator se incarca bitii care rezulta fara nici o modificare. Rezultatul poate fi fie corect, fie eronat, insa nu utilizatorul nu poate controla acest fenomen.

2.Acumulatorul: este conectat permanet la iesirea UAL si este pe 32 biti; continutul sau poate fi transferat in memoria de program cu ajutorul unor instr care permit transferul separat a partii superioare si inferiore (SACH, SACL); starea sa este data de bistabilul OV (overflow); exista anumite stari ale acumulatorului care pot fi testate cu instr speciale de salt si ramificare: BLZ (salt daca continutul =0); BNZ (!=0); BZ (=0).

3.Multiplicatorul: este matricial, de tip paralel care multiplica cuvinte de 16 biti cu rezultatul pe 32 biti; este format din trei parti: a)multiplicatorul propriu zis; b)registrul T care contine unul din operanzii de la intrarea acumulatorului; c)registrul P care stocheaza rezultatele multiplicarii. Ptr registrul P exista instr speciale de transfer de date cu memoria. Exista 2 instr de multiplicare: MPY (operand pe 16 biti din memorie) si MPYK (multiplicator cu operand imediat). Rezultatul din registrul P se poate transfera in acumulator; poate fi adunat/scazut la acumulator: PAC, APAC, SPAC.

Registrul de deplasare hard shifter: deplasari las tanga cu 0-15 ranguri binare asupra unor date din memorie; operatii specifice: LAC, ADD, SUB. Dupa deplasarea stanga bitii ramasi liberi se completeaza cu 0, iar semnul este extins la stanga.

Registrul de deplasare stanga de la iesirea acumulatorului: este activat cu instr de stocare SACH (stocarea cuvintelor de ordin superior din acumulator). Cuvantul este in prealabil shiftat cu 0,1,4 ranguri. SACH 40,4 (transferul din acumulator in RAM la adresa 40 hexa, iar 4 reprezinta rangul cu care este shiftata data inainte de a fi stocata in memorie)

Memoria interna RAM de date: 288 locatii de 8 biti (sau 144 locatii a 16 biti). Exista situatii in care operanzii trebuie stocati in memoria esterna de program care este fie interna fie externa. Coeficientii trebuie transferati in memoria de date interna. Exista instr de transfer in memoria interna (ROM sau RAM) si memoria de date TBLR(citire), TBLW(scriere). Adresarea memoriei se face in 2 moduri: a)adresare indirecta: adresa memoriei este realizata cu ajutorul a 2 registre interne (AR), AR1 registre auxiliare folosite ptr generarea memoriei RAM). Registrul curent care furnizeaza adresa curenta este indicat de bistabilul ARP (address register pointer). Registrele auxiliare pot fi incrementate sau decrementate automat numai dupa executia instr; b)adresare directa: instr furnizeaza 7 biti de ordin infinit adresei si bitul 8 este furnizat de DP (data pointer); prin concatenarea lor se formeaza o adresa valida in spatiul de 144 locatii.

Memoria este impartita in pagini: in mod curent pagina 1 este folosita ptr date care se acceseaza mai rar, iar pagina 0 este folosita ptr stocarea datelor.

Registrele interne: AR0 si AR1 sunt folosite ca registre de adresare ptr memoria RAM de date; ca registre de stocare a datelor; ca registre ptr controlul buclelor. Continutul poate fi transferat/incarcat in/din memoria RAM.

Memoria ptr program: varianta fara M nu contine memorie ROM interna; varinata cu M contine o arie de 1536 locatii x 16 biti ptr stocarea datelor; poate fi extinsa in exterior cu memoria RM/Ram pana la 4KB; poate fi accesata cu magistrala de date, magistrala de adrese de 16 biti si magistrala de comenzi. Procesorul poate fi programat sa lucreze in regimuri, fixate cu ajutorul unui pin MC/MP (1-regimul ucomputer; 0-regimul uprocesor). a) Registrul ucomputer:disponibil doar in varianta M; din cele 1536 de locatii, doar 1523 sunt la dispozitia utilizatorului, iar restul ptr operatii de testare; memoria ptr program poate fi extinsa cu memoria externa cu o capacitate de pana la 2560-4096 locatii; b) Registrul uprocesor: procesorul poate lucra cu pana la 4KB memorie externa ptr programe; ptr accesarea memoriei externe se folosesc trei linii de comanda: DEN, WE, MEM. Adresarea memoriei de program se face cu PC (program counter); PC lucreaza prin incrementare: dupa generarea unei adrese continutul se incrementeaza cu o unitate; PC poate fi incrementat cu o noua adresa de pe magistrala sau poate fi stocat in stiva la executia unor intreruperi.

Stiva: este de tip hard. Avantaje: viteza mai mare de operare/transfer. Dezavantaj: capacitatea mai mica si folosirea unor registre interne ptr implementarea stivei. TMS 320 C10: ptr stiva sunt rezervate 4 registre x 12biti; pot fi sapvate la un moment dat 4 cuvinte. Exista posibilitatea ca stiva sa fie extinsa in memoria RAM de date.

Registrul de stare: sunt stocate informatii privind starea procesorului sau regimul de lucru; are 5 indicatori: OV (overflow), OVM (seteaza modul de lucru saturat/nesaturat), INTM (intreruperi), ARP (bistabil de fixare a registrelor auxiliare folosite ptr adresare), DP (pointer de pagina).

Sistemul de intreruperi: sunt intreruperile mascabile; 2 instr: EINT (enable INT), DINT (disable INT); BIO intrare folosita ptr a testa linia de intrare; poate fi folosit ca alternativa la sistemul de intreruperi.

Setul de instr: procesorul poseda un set extins de instr in care sunt include si instr specifice algoritmilor de prelucrare: sunt executate intr-un singur tact; instr de salt, ramificare si operatiile de I/O mai mult de un ciclu; datorita pipeline procesorul executa 5 mil instr/sec. Formate ptr codificarea instr:

19. Familia de procesoare TMS320C24x/28x. Caracteristici, aplicatie: implementarea unui circuit PLL digital cu procesorul TMS320C24x.Aceasta familie de proc integreaza posib de lucru cu perifericele specifice uc: actionarea motoarelor, roboti, senzori inteligenti etc.

Proc imbina arh Harvard cu functionarea pipeline. Pt marirea performant C24X si C28X utilizeaza pipeline cu 4 niv. UCP contine: multiplicator de tip paralel, ALU pe 32 b, acumulator, unitate pt reg auxiliare si deplasatoare, 2 la intrarile UAL si unul la iesire. Cele 3 deplasatoare sunt fol pt evitarea depasirii de scala. Primul shifter poate deplasa la stanga cu 16 range. Nr de biti cu care se face deplasarea poate fi specificat sau poate fi o parte din reg.

Pt exec intreruperilor si subintinelor, up fol o stiva pe 8 . Pt exec salturilor in program, up poseda un nr de intr de salt conditionat sau neconditionat. Repetarea instr se realizeaza prin incarcarea instr intr-un buffer de repetare.

Mem e impartita in 3 sp de adrese de cate 64K: 2 pt mem de date si 1 pt periferice20. Familia de procesoare TMS320C54x/55x. Caracteristici hardware si software, setul de instructiuni.TMS320C54x/55x sunt pds in virg fixa orientate spre: tel celulare, comunicatii wireless, modemuri, voip, comunicatii wireless, pds, mp3 playere etc

Folosesc o arh Harvard modificata cu spatii dif pt mem de prog si mem de date imbinata cu functionarea pipeline.

Aria de mem e constituita din ROM, RAM static si dinanimc ce poate fi folosit atat pt prog cat si pt date

ALU executa op aritmetice cu operanzi in complement fata de 2 si op logice. Poate lucra in reg saturat sau in red enteurie a semnului. Acumulatoarele asigura protectia la depasirea de scala.

Memoria e org sub forma a 3 spatii: 64KB pt prog, ^$K pt date si 64K pt adresele disp de I/O

Sunt folosite 3 tipuri de paralelism in util instr:

-intrinsec=unele instr pot exec op in paralel cu date dif

-definit de util=programatorul poate pune 2 instr sa ruleze in paralel dak exista semne

-combinatSetul de instr corespunde unui proc CISC si contine: instr aritmetice logice, pt controlul prog si instr speciale de tip Lowstore

Ex: FIRS-pt un filtru FIR simetric

LMS- instr suport pt calculul coef unui filtru digital adaptiv

55X e com software 1--% cu 54X doar ca e mai rapid si mai eficient.

Dif HW dintre cele 2 e ca 55X are 2 multiplicatoare, 4 acumulatoare de cate 40b, o ALU suplimentara si un mecanism mai evoluat de stiva cu salvare si restaurare automata21. Familia de procesoare TMS320C62x/64x. Caracteristici. Particularitatile arhitecturii VLIW.TMS320C62XC64X sunt proc in virg fixa folosite in imagistica avansata radar, vedere artificiala etc. 64X este mai evoluat avand printre altele un set de isntructiuni mai bogat

Cele 2 proc fol arh VLIW(very long intruction ward). Aceasta presup ca proc pot executa un nr mare de instr eliminand necesitatea folosirii unor unitati hw complexe. Arh VLIW e o alternativa la arh superscalara. Planificarea executiei se face in faza de compilare, fiind realizata de programator. Un alt avantaj este ca unitatea de comanda a proc devine mai simpla decat arh superscalara. Se atinge astfel aceeasi precizie pt o val a tactului cu un ordin de marime mai mic decat la arh superscalara.

Fiecare cale de date contine 4 entitati independente de executie: L,D,S,M

L-contine un ALU pe 40b care executa op aritmetice simple

-face scalarea si op logice

D-contine un circ de adunare, scadere pt calc adreselor, poate calcula intr-un singur ciclu 2 adrese

-cand nu e fol ca gen de adrese poate fi fol ca un alu ce opereaza cu date intregi

S-contine un ALU si un shifter

-poate executa op aritmetice, logice si deplasari

M-pt 62x= un multiplicator de 16x16b

-pt64x=2 multiplicatoare de 16x16bProcesoarele de la TI nu fol o arh VLIW clasica, ci o versiune modificata numita VelociTI. Aceasta are un set de instr de tip RISC ce se executa in general intr-un singur ciclu. Instr sunt impachetate in cuvinte lungi de 256b

Aceasta fam de proc imbina arh Harvard cu functionarea pipeline

Pipelineul are 11 nivele distribuite astfel: 4 pt controlul extragerii instruc, 2 niv pt decodare, 5 niv pt exec24. Familia de procesoare TMS320C8x. Caracteristici.(proc multimedia) Acest proc a fost primul mc songle chip, destinat aplicatiilor multitasking. Este specializat in prelucrarea imaginilor, compresie etc

Arh up8x are la baza un proc RISC master in virg mobila pe 32 b si mai multe proc paralele de 32b. Contine o interfata I/O pe semnale video, un modul pt transfer de date si lucreaza la o vit de 50 MHz.

Pot accesa un spatiu de mem de pana la 4GB. Controlerul video poate prelucra 2 cadre simultan. Controlerul de transfer e o combinatie intre un controler DMA si o inter de mem.

Procesoarele paralele sunt PDS cu facilitati pt manipularea bitilor. Instructiunile sunt codificate pe 64b si sunt exec in maxim un ciclu de taxt. Acestea pot prelucra un volum mare de date si pot executa op la nic de pixel/plan de pixeli.

TI a realizat si compilatoare, asambloare, programe de optimizare a codurilor, un modul de control al functionarii multi-tasking, un acumulator, un simulator soft25. Stadiul actual si perspectivele procesoarelor DSP.In ultimii ani aplicatiile cu PDS au cunoscut o crestere exponentiala.Principalele lor avantaje sunt: vit, prec buna, consumul redus

Pe piata exista mai multe categ de pds

-pds cu perf reduse dar ieftine, acestea poseda ALUmultiplicatori interni si functioneaza la frecv de 20-50. Domenii de util: telecom, echipamente din dom medical

-pds cu perf medii=> includ reg pt deplasari binare, mem cache, timere, controlere DMA, convertoare A/D. Totodata proseda si un set mai bogat de instr ce inscul instruc pt realizarea unor operatii speciale (filtre). dpdb hard nu se deosebesc prea mult de pds ieftine. Func la frec de 100-150 MHz. dom: echip wireless

-PDS cu perf imbunatatite=deriva din cele normale daru s-au multiplicat resursele de procesare

-PDS cu arh de tip paralel

1. superscalare: exista un nr de unitati de executie dinstincte, au mai multe unit de prelucrare

2. VLIW cu lung cuv f mare (tipic pentium)

-arh SIMD: permite imbunatatirea perg prin executarea acelorasi intruc cu diverse reuti de date, aceasta arh se fol si pt a prel date lungi sub f de date mai scurte

Caract. de performanta a proc. PDS fata de proc. UG

1)Imbunatatirea: In timp ce toate procesoarele PDS contin 1 multiplicator ce produce 1 nou rezultat intr-un sg. ciclu instructiune, exista posibilitatea de constituire a paralelismului pt. multipl. Aceasta pp. memorarea in intarziere a mai multor cicli atunci cand la intrare sunt prezente date diferite. Intarzierea obtinuta in multiplicare s. n. latency. In timp ce multiplicatoarele pipe-line produc 1 rezultat la fiecare ciclu de ceas, ele fac multiplicarea printr-o multitudine de operatii de multiplicare. Atunci cand se realiz. o sg. operatii de multipl. urmata de alte oper., vor fi necesare mai multe perioade pt. a obtine rezultatul multiplicarii. Procesoarele PDS cu multipl. pipe-line includ nucleul PDS CD2450. 2)Adaugarea unui acumulator obtinadu-se astfel o unitate de multiplicare si acumulare. In unele cazuri, multiplicatorul reprez. un modul separat, rezultatul sau fiind depus intr-un reg. produs pt. a fi preluat apoi in de acumulator. Aceasta modificare se reflecta in timpul necesar operatiei de acum. si mem.(daca multiplicatorul si acum. sunt unit distincte, atunci rezultaltul op. este intarziat cu 1 ciclu instructiune inainte de a executa instr. urmatoare). 3)Clasificarea procesoarelor PDS in v. f.: -in functie de dim. produsului in rap. cu dim. operanzilor.

In general, prin multiplicarea a 2 operanzi de dim. N se obtine in reprez. in v. f. un rezultat de 2N biti. Aceasta reprez, in aritmetica in v. fixa, legea de conservare a bitilor(rezultatul obtinut nu prezinta erori).

In multiplicare, rezultatul are o dim. maxima egala cu dublul dimensiunii operazilor de intrare. Unele P, pt. a asigura o viteza de calcul sporita si pt. a realiza economie, folosesc multiplicarea cu modificarea rezultatului(se introduc erori). De exemplu: pt procesorul ZILOG Z893XX, multiplicatorul utilizeaza operanzi de intrare pe 16b si produce la iesire un rezultat pe 24b(dimensiunea optima pt. a nu avea eroare ar fi 32b).

Desi este posibil sa utilizam rezultatul multiplicatorului in urmatorul pas de calcul, acest lucru nu se prea aplica, deoarece multiplicarile si operatiile aditionale de adunare vor produce rezultate neobisnuite . In general, nu este necesara intreaga dimensiune a rezultatului multipl. fiind astfel posibil sa utilizam iesirea multipl. in urmatorul pas de calcul. Daca rezultatele multipl. tb. stocate, acumularea tb. facuta avand la dispozitie intreaga lungime a rezultatului. Inainte de a trece la o noua etapa de calcul, e necesara reducerea rezultatului final (dupa multiplicare si acumulare).

Presupunand ca nu e necesara dim. max. a prod. si acumularii, programul tb. sa decida care parte a rezultatului este retinuta (acest lucru se face prin program). In acest mod, iesirea multipl. reprezinta de fapt un operand oarecare al urmatorului pas de procesare. 4)Inmultirea a 2 nr. intregi in v. f.: Atunci cand 2 nr. sunt *, pozitia virgulei in rezultat este determinata de pozitia virgulei in cadrul operanzilor de intrare. Fiind vorba de aritm. cu nr. intregi, rezult. multipl. este, de asem. un nr. intreg. Din acest rezultat, programatorul retine bitii cei mai putin semnificativi (nr. corespunzator de biti- ca operanzii de intrare).


Top Related