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).