Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Procesoare multimedia
Introducere
Prelucrarea informatiei multimedia, respectiv creearea, interpretarea, imbunatatirea, schimbul, codarea si decodarea, este facuta de mai mult timp. Dezvoltarea recenta a prelucrarii digitale a determinat o crestere a cererii pentru realizarea unor sisteme de prelucrare cu performante superioare. De exemplu, aplicatiile multimedia cu prelucrari video si pentru generarea imaginilor 3D cer viteze de calcul de citeva miliarde de operatii pe secunda si capacitati de stocare de multi megaocteti. Se estimeaza ca viitoarele servicii multimedia personalizate vor conduce la o crestere exponentiala a performantelor pentru procesarea mediilor si pentru prezentare. Pe alta parte performantele microprocesoarelor precum si frecventa de tact a crescut constant in ultimele 3 decenii.
Prin folosirea tehnicii pipe-line, procesoarele RISC au putut fi utilizate pentru realizarea unitatii centrale de prelucrare a calculatoarelor personale si al statiilor de lucru. De asemenea, acestea sunt folosite pentru comanda masinilor pentru jocuri si pentru alte produse electronice de larg consum.
Procesoarele digitale de semnal (DSP) au evoluat prin includerea unor unitati functionale noi, cum este acumulatorul cu multiplicator, unitati aritmetice si logice suplimentare, numaratoare. Acestea permit executarea mai multor operatii in paralel la o frecventa de tact moderata. Procesoarele digitale de semnal sunt folosite la compresia semnalului vocal in telefoanele celulare, la realizarea modemurilor pentru transmisiuni in banda vocala, la aparatele fax, precum si pentru accelerarea operatiilor de prelucrare a sunetului si a imaginilor statice in calculatoarele personale (PC).
Este de asteptat ca prelucrarile multimedia vor determina evolutia atit a micoprocesoarelor de uz general cit si a DSP-urilor. Folosirea tehnicilor digitale in domeniul audio-video a fost punctul de plecare al sistemelor multimedia pentru ca au permis, atit prelucrarea informatiei audio si video, precum si a textelor, figurilor si a tabelelor intr-un mod unic. Totusi prelucrarile audio si video necesita o largime de banda foarte mare, daca nu sunt folosite tehnici de compresie a datelor. De asemenea, cantitatea de date audio si video pentru o aplicatie data depinde de calitatea ceruta si poate varia intr-un domeniu larg. De exemplu, in cazul televiziunii de inalta definitie (HDTV) la o rezolutie de 1921x1080 pixeli si o frecventa de 60 cadre/secunda este necesara o compresie pina la 20 Mbiti/sec. In schimb, pentru un terminal de tip video-telefon, care lucreaza conform standardului H.263 si care foloseste un format intermediar cu rezolutia de 128x96 pixeli si o frecventa de 7,5 cadre/secunda debitul de date dupa compresie este de 10-20 Kbiti/sec. Debitul de date in cele doua aplicatii difera de 1000 de ori.
Tehnicile de compresie necesita in schimb efectuarea unui numar mare de operatii care poate varia intre 108 si 109 operatii pe secunda. Pentru sistemul NTSC rezolutia ceruta de decodorul MPEG-2 impune efectuarea a 400 MOPS, iar codorul
30 gigaoperatii/secunda. Aceasta varietate de cerinte pentru prelucrari si cele legate de calitatea sistemelor multimedia au condus la implementarea prin software a tehnicilor de compresie pe sisteme cu microprocesoare de uz general (GPP) sau cu DSP.
Noile circuite GPP si DSP ofera facilitati de calcul puternice care fac posibila compresia si decompresia in timp real a informatiilor audio si video. Aceste microprocesoare au fost create in special pentru implementarea codoarelor/decodoarelor MPEG1/2 in timp real. Pentru a realiza aceasta performanta, in aceste circuite au fost incluse functii care completeaza arhitectura traditionala, pentru efectuarea prelucrarilor cerute de standardele MPEG.
Marea varietate de aplicatii cerute de utilizatori impune o selectie atenta a circuitelor folosite pentru implementare, care sa asigure si flexibilitate in raport cu dieritele aplicatii. Aceasta deoarece circuitele prezinta multe diferente arhitecturale, iar performantele sunt strins dependente de arhitectura. In concluzie, trebuie analizate particularitatile arhitecturale ale procesoarelor folosite pentru prelucrarile multimedia astfel incit sa fie posibila dezvoltarea in viitor a unor sisteme de inalta performanta.
Scurta prezentare a prelucrarilor multimedia
Istoric
Circuitele DSP programabile au fost utilizate incepind cu anul 1980. Ele contin un multiplicator impreuna cu o unitate aritmetica si logica (ALU) conventionala, iar arhitectura lor este de tip pipe-line avind la baza functia de multiplicare si acumumulare si comanda paralela. Avind capacitatea de prelucrare cu un ordin de marime mai mare ca la un GPP, aceste procesoare sunt folosite pentru realizarea modemurilor single-cip si a codec-urilor vocale cu rata de bit mica. Prin imbunatatirea capacitatii de prelucrare, circuitele DSP au patruns si in aplicatii cu grad mai mare de complexitate. Primul salt s-a produs in anul 1991 cind a inceput folosirea DSP de mare viteza la prelucrarile video. Cresterea performantelor s-a obtinut pe baza maririi frecventei tactului si prin adoptarea arhitecturii SIMD (Single- Instructions/Multiple-Data string). In acel moment formatul video utilizat curent era un sfert din formatul NTSC standard (respectiv 352x288 pixeli, denumit format intermediar comun - CIF). In anul 1993 s-a produs al doilea salt, impus de aplicarea standardului MPEG-2, care necesita rezolutia completa a standardului NTSC. In consecinta, arhitecurile SIMD au fost imbunatatite pentru a incorpora facilitatile de comanda pentru cuvinte instructiune foarte lungi (Very Long Instruction Word - VLIW). Au rezultat arhitecturile SIMD+ (Fig. 4.1).
Aplicatiile MPEG-2 includ: echipamente audio de inalta calitate pentru televiziune digitala pe cablu si video la cerere (VOD) precum si discurile digitale versatile (Digital Versatile Discs - DVD). Si aceste aplicatii explica interesul actual pentru multimedia.
Fig. 4.1 Imbunatatirea performantelor DSP
Pentru a satisface cerintele domeniului, GPP evoluate au fost prevazute cu instructiuni noi, pentru operatii multimedia. Pentru a putea prelucra cu o singura instructiune citeva parti independente ale datelor reprezentate prin cuvinte lungi, GPP poseda ALU orientat pe cuvinte lungi, si poate fi divizat in citeva unitati de prelucrare pentru cuvinte-date de lungime mai redusa. Aceasta abordare a fost utilizata la inceput pentru instructiunile destinate operatiilor grafice.
Au urmat procesoarele RISC pentru statiile de lucru folosite pentru realizarea decoderelor MPEG. Mai recent si GPP pentru calculatoarele PC executa aceasta operatie. Acestea au capacitate sporita pentru prelucrari video, dar facilitatile multimedia fac programarea mai dificila. O programare eficienta poate fi obtinuta doar folosind limbajul de asamblare, ca si in cazul DSP.
O alta abordare pentru prelucrarile multimedia a fost de a imbunatati circuitele folosite ca acceleratoare grafice in PC. Astazi calculatoarele PC contin circuite grafice care imbunatatesc interfata cu utilizatorul, iar o cale de a imbunatati performantele multimedia este de a spori calitatile acestor circuite.
De asemenea, exista multe circuite dedicate aplicatiilor MPEG (Application- Specific Integrated Circuit - ASIC) care includ un nucleu RISC pentru functii control. Ele au succesul cel mai mare in aplicatiile multimedia.
Variante de procesoare multimedia
Procesoarele care poseda facilitati pentru prelucrarile multimedia provin atit categoria GPP cit si din categoria DSP. Procesoarele multimedia (PM) pot fi clasificate dupa structura lor in cinci categorii (Fig. 4.2):
Microprocesoarele RISC pentru statii de lucru si servere
Microprocesoarele CISC pentru PC
Microprocesoarele imbunatatite
DSP cu consum mic
DSP pentru accelerare in PC (numite procesoare de mediu)
Fig. 4.2 Clasificarea procesoarelor multimedia
In Fig. 4.3 este prezentata evolutia frecventei de lucru a diverselor categorii de procesoare si dependenta acesteia de gradul de paralelism. Axa orizontala arata numarul de operatii pe 16 biti executate in paralel sau lungimea totala a unitatii aritmetice, iar axa verticala arata frecventa tactului. Microprocesoarele actuale opereaza curent la frecvente de 450-500 MHz, cu un paralelism de maximum opt. In schimb, procesoarele de mediu au un grad mai mare de paralelism ceea ce implica folosirea unei frecvente de tact mai reduse (intre 50-100 MHz). Procesoarele RISC si CISC consuma mai mult de 20 W, in timp ce procesoarle de mediu consuma cca. 4W. Puterea consumata de procesorele RISC imbunatatite, precum cea consumata de DSP-urile pentru aplicatii mobile este sub 1W.
Fig. 4.3 Dependenta frecventei de gradul de paralelism
Exemplele prezentate in Fig. 4.2 si 4.3 reflecta anumite tendinte de evolutie ale trasaturilor PM:
iProcesoarele pentru servere si PC au fost imbunatatite pentru a putea efectua prelucrari multimedia, mentinind compatibilitatea cu procesoarele din care au provenit. Pastrarea compatibilitatii cu softwre-ul deja creeat a condus la restrictii in ceea ce priveste imbunatatirile introduse. Aceasta a insemnat o crestere exagerata a complexitatii hardware. Din acest motiv aceste procesoare opereaza la frecvente mari si consuma mult.
iAu fost dezvoltate noi arhitecturi pentru GPP imbunatatite si pentru DSP cu performante mult superioare, chiar daca ele pastreaza caracteristicile functionale ale unor CPU clasice ce beneficiaza de suportul limbajelor de programare de nivel inalt. Arhitectura DSP pentru aplicatii mobile nu a suferit modificari mari pina in prezent, datorita restrictiilor legate de consum si de latimea de banda limitata a canalelor de transfer fara fir. DSP pentru accelerare poseda interfete cu CPU gazda. Structura lor interna este proiectata pentru prelucrari multimedia mai complexe, cum ar fi codarea MPEG-1. Aceste microprocesoare imbunatatite si circuite care au la baza DSP permit folosirea in sistemele cu frecventa de tact mai redusa si consuma mai putin.
Cerinte arhitecturale pentru decodarea MPEG
Performantele si functiile necesare pentru implementarea decodoreleor MPEG-2 sunt elementele determinante pentru proiectarea arhitecturala a procesoarelor multimedia. Decodarea si redarea sirului de biti comprimat presupune decodarea cu lungime variabila, urmata de cuantizarea inversa pentru refacerea coeficientilor transformatei cosinus discrete (TCD) din sirul de biti comprimat. Apoi, cu ajutorul transformatei inverse (TCDI) se obtine semnalul care reprezinta eroarea de predictie. Acest semnal reface cadrul decodat prin adaugarea unui semnal de predictie a miscarii. Semnalul de predictie a miscarii este calculat prin interpolare folosind unul sau doua cadre decodificate anterior. Cadrul decodificat este transformat intr-un format pentru afisare si este transferat intr-o memorie RAM si un etaj tampon de iesire video. Aceste operatii includ si o transformare de format (YUV RGB). Acest proces de decomprimare este realizat pe blocuri patrate de imagine denumite macroblocuri (16x16 pixeli cu componentele color) sau blocuri (8x8 pixeli). Tabelul 1. prezinta parametrii principali ai standardelor MPEG-1 si MPEG-2 MP@ML. Implementarea decodarii MPEG cu procesoarele multimedia necesita includerea in arhitectura sistemului a urmatoarelor cinci functiuni importante:
a)- Functia de manipulare a bitilor, care analizeaza si selecteaza siruri de biti din secventa seriala de biti. Codarea cu lungime variabila si decodarea folosesc aceasta functie;
b)- Operatii aritmetice, care constau din multiplicari, adunari/scaderi si alte operatii aritmetice specifice, ca de exemplu suma diferentelor absolute pentru estimarea miscarii. Trebuie sa poata fi utilizate diferite lungimi de cuvinte pentru a putea imbunatati eficienta folosirii hardware-ului in manipularea a cit mai multor medii, printre care date video (8 biti) si date audio (16 biti). Sunt necesare unitati de prelucrare care sa lucreze in paralel, pentru calculul eficient al TCDI, care necesita executarea unui anumit numar de multiplicari impus de natura bidimensionala a acestor algoritmi;
c)- Accesul la un spatiu larg de memorie, pentru a asigura un buffer pentru un cadru video care nu poate fi oferit de memoria interna a procesorului. Accesul frecvent la bufferul cadrului pentru compensarea miscarii necesita si o interfata de banda larga cu memoria.
d)- Intrari/iesiri pentru secvente de date pentru medii, cum sunt datele audio si video, ca si pentru secvente compresate. Pentru semnalele video, de exemplu, aceasta consta din achizitia si afisarea semnalelor, precum si conversia de format (RGB YUV). Aceste functii I/O sunt de asemenea necesare pentru compresia secventelor de biti pentru stocarea mediilor pe hard disck, disc compact sau DVD, precum si pentru retelele de comunicatii.
e)- Comutarea in timp real a proceselor care presupun constringeri severe de timp real. Aceasta presupune constringeri de timp de la esantion la esantion sau de la cadru la cadru. Un exemplu ar fi comutarea intre diferite tipuri de prelucrari de mediu pentru sincronizarea decodarii video si audio.
4.3. Arhitecturi pentru prelucrarea mediilor
Microprocesoare de uz general (RISC si CISC)
Intrucit procesoarele CISC actuale incorporeaza tehnologiile arhitecturale avansate folosite de procesoarele RISC, in continuare vor fi considerate ambele familii de procesoare.
Microprocesoarele de uz general (GPP) actuale pot executa intre 2 si 4 instructiuni pe ciclu folosind arhitectura superscalara care permite procesarea simultana a cel putin unei instructiuni in virgula mobila sau a citorva instructiuni multimedia. Acest mecanism de control asigura doua moduri de extragere. Unul consta in extragerea instructiunilor in ordinea in care acestea sunt stocate in memoria de program (in-order-issue control). Celelalt consta in extragerea instructiunilor in alta ordine decit cea in care sunt memorate (out-of-order-issue control), aceasta ordine depinzind de prioritatea datelor si nu de ordinea de stocare. Acest mod este prezent la microprocesoarele care opereaza la frecvente de peste 200 MHz si au instructiuni cu timp mare de latenta in pipe-line si unde acest mod de control conduce la maximizarea performantelor ALU.
Fig. 4.4 prezinta structura interna a unui microprocesor cu comanda superscalara de tip out-of-order. Implemantarea regimului de comanda de tip out-of-order necesita citeva unitati functionale hardware suplimentare: un buffer de reordonare (reorder buffer) care controleaza executia extragerea instructiunilor si executia lor, statia de rezervare care reordoneaza fluxul de instructiuni pentru unitatea de executie si redenumeste fisierul de registre, precum si circuitele de comanda pentru aceste unitati. Aceste componente ocupa o suprafata mare pe pastila de siliciu si consuma multa energie.
Fig. 4.4 Microprocesor cu functionare superscalara de tip out-of-order
In cadrul sistemului de comanda out-of-order numarul de registre poate fi marit prin redenumire. Aceasta tehnica imbunatateste performantele de prelucrare prin reducerea numarului de operatii de transfer cu memoria a rezultatelor intermediare si micsoreaza de asemenea numarul ciclilor de oprire a prelucrarii datorita dependentelor de date. Pe dealta parte, prelucrarea imaginilor prezinta un paralelism inerent in privinta pixelilor si a macroblocurilor. Chiar daca o mare cantitate de hardware trebuie prevazuta pentru unitatea de control, pentru extragerea a 2 pina la 4 instructiuni in paralel, aceasta arhitectura nu exploateaza deplin paralelismul oferit de prelucrarea imaginilor. Alte particularitati arhitecturale ale GPP pentru prelucrarea imaginilor sunt prezentate in Fig. 4.5.
Fig. 4.5 Arhitectura microprocesoarelor cu facilitati pentru prelucrarea imaginilor
Executia operatiilor aritmetice de catre microprocesoare ridica problema lungimii cuvintelor. Lungimea cuvintelor microprocesoarelor actuale a crescut la 32 sau 64 de biti. Pe dealta parte lungimea cuvintelor cerute de prelucrarile multimedia este de 8, 16 sau 24 de biti, care este mai redusa decit lungimea cuvintelor microprocesoarelor actuale. Aceasta asigura o rezerva exagerata daca datele multimedia sunt manipulate cu instructiunile aritmetice normale. De asemenea, tipurile de date recunoscute de limbajele de nivel inalt precum C nu sunt convenabile pentru datele multimedia. Aceasta complica problema deoarece programarea pentru GPP este facuta de regula in limbaj de nivel inalt.
Accesul microprocesorului la un spatiu larg de memorie constituie o alta problema. Prelucrarile de imagini presupun accesarea frecventa a unor cadre video mari (4,15 Mbiti/cadru sau 518,4 Kocteti/cadru la MPEG-2) care nu pot fi stocate in primul sau al doilea nivel cache. In consecinta, nu poate fi asigurata o rata mare de coincidenta cu memoria cache (cache hit) ca in cazul altor categorii de aplicatii. In plus, exista si diferente in privinta localizarii datelor care afecteaza, de asemenea, performantele accesului la memorie. Mecanismul cache este proiectat pentru a folosi o localizare unidimensionala a adreselor consective, in schimb prelucrarea imaginilor ofera o localizare bidimensionala a accesului.
Cererea pentru realizarea prelucrarilor in timp real este o alta constringere pentru procesoarele multimedia. In cadrul prelucrarilor pentru mediile audio si video prelucrarea fiecarui esantion audio si/sau al cadrului video trebuie efectuata intr-un interval de timp determinat de rata de esantionare, respectiv de durata cadrului. Aceasta impune predictia exacta a timpului de executaie, ceea ce nu este usor de realizat in cazul microprocesoarelor. Operatiile dependente de date precum si accesul la memorie cu mecanismele cache fac dificila predictia duratei ciclului de prelucrare. De asemenea, sunt necesare si frecvente comutari ale proceselor fara incarcari suplimentare; deci starea interna introdusa de executia out-of-order a procesoarelor superscalare conduce la scaderea timpului de comutare. Si, in plus, sistemele de operare nu sunt proiectate cu constringeri severe de executie in timp real.
Alte functiuni cum ar fi manipularea bitilor pentru prelucrari multimedia nu sunt executate eficiente de catre GPP deoarece acestea sunt proiectate sa prelucreze secvente de cuvinte cu lungime fixa. GPP nu include functiuni pentru operatii I/O cu secvente de biti. Acaeste operatii sunt realizate de circuite suplimentare.
Posibilitatile pentru prelucrari multimedia ale procesoarelor recente a fost imbunatatite prin asa-numitele extensii multimedia. Aceste microprocesoare prezinta performantele aritmetice mai bune, obtinute prin divizarea unitatilor aritmetice orientate pe cuvinte lungi (de ex. 64 biti), pentru a executa doua pina la opt operatii in paralel, folosind instructiuni SIMD de tip multimedia, (Fig. 4.6). Aceste instructiuni sunt executate fie de catre unitatea pentru prelucrarea intregilor, fie de catre unitatea de prelucrare in virgula mobila a procesorului (sau a coprocesorului).
Fig. 4.6 Instructiune multimedia (executia in paralel a mai multor adunari)
Penalitatile datorate noncincidentelor cu memoria cache (cache-miss) la acesul memoriei externe continua sa reprezinte o problema serioasa pentru prelucrarile multimedia cu GPP imbunatatite, datorita faptului ca intirzierile la accesarea memoriei tind sa fie mai mari decit tactul procesorului. Pentru multe aplicatii multimedia, adresele pentru aceesul memoriei pot fi calculate anticipat, fiind astfel posibil sa se evite penalitatile datorate memoriei cache, prin incarcarea datelor intr-o linie cache cu instructiuni de preextragere (prefetch), prezente la unele procesoare. Mai mult, unele procesoare au instructiuni de transfer de blocuri de date (64 octeti) cu o singura instructiune, in afara de mecanismul cache.
Microprocesoare imbunatatite
Unele microprocesoare pentru aplicatii dedicate (altele decit calculatoarele PC sau statiile de lucru) prezinta facilitati imbunatatite pentru prelucrari multimedia. Aplicatiile pentru aceste microprocesoare sunt: terminalele Internet, sisteme de orientare pentru automobile, calculatoare PDA (Personal Digital Assistant).
b Procesoarelor RISC imbunatatite sunt mai ieftine si au consum mai redus. Acestea nu folosesc un mecanism de comanda complicat de tipul comenzii out-of-order. Ele sunt folosite la realizarea aparatelor pentru jocuri si la bunurile de larg consum. Facilitatile lor multimedia au fost imbunatatite pentru a satisface cerintele acestor aplicatii.
Performantele aritmetice pot fi imbunatatite folosind un multiplicator hardware cu acumulator (Fig. 4.7). Cerintele pentru realizarea prelucrarilor in timp real si existenta unui spatiu mare de memorie sunt obtinute prin includerea in structura atit a unui cache cit si a memoriei interne (buffere). Un exemplu il reprezinta procesorul V830 (NEC), a carui structura interna este data in Fig. 4.7-b. Procesorul V830 are 8 ko de memorie cache (de tip direct-mapped/write-through), din care 4 ko pentru instructiuni si 4 ko pentru date, si 8 ko memorie RAM (4 ko pentru instructiuni si 4 ko pentru date). Intrucit microprocesoarele imbunatatite sunt folosite curent in sistemele simple, nu este necesar ca ele sa posede cel de al doilea nivel pentru cache si deci penalitatite pentru noncoincidentele cache sunt frecvente. Pentru a preveni acest inconvenient a fost prevazuta o memorie RAM interna care nu produce noncoincidente cache. Aceste procesoare au permis implementarea standardului MPEG-1 cu performante foarte bune.
Fig. 4.7 Microprocesor RISC imbunatatit.
a) Calea de date; b) Configuratia de memorie
b O alta categorie de microprocesoare imbunatatite o reprezinta microprocesoarele evoluate, cum este MicroUnity Mediaprocessor (MicroUnity Systems Engineering Inc.), considerat a fi un procesor de mediu (Fig. 4.8).
Fig. 4.8 Procesorul de mediu MicroUnity
Procesorul are o interfata speciala cu memoria precum si o interfata pentru secvente I/O cu circuitele aferente. Largimea de banda mare pentru accesarea memoriei este realizata prin folosirea unor interfete speciale cu memoria cum sunt memoriile sincrone dinamice (SD)RAM si magistrala (R)DRAM. Procesorul are calitatile unui GPP, respectiv facilitati pentru comanda memoriei virtuale. Performantele aritmetice ale procesorului au fost imbunatatite prin folosirea instructiunilor multimedia de tip SIMD care opereaza cu formate mari de cuvinte. Numarul mare de registre interne (128x32 biti) ajuta si el la imbunatatirea performantelor aritmetice ale procesorului. Sistemul I/O inclus in harta de memorie inlatura problemele de coerenta si de latenta in sistemele cu acces multiplu a memoriei. Interfetele audio si video sunt implementate cu circuite separate. Avind o frecventa de tact ridicata (1 GHz), procesorul poate manipula o gama larga de medii. De mentionat insa consumul relativ mare al circuitului.
Procesoarele digitale de semnal
Procesoarele digitale de semnal (DSP) au fost initial dezvoltate pentru prelucrarea semnalului vocal si pentru aplicatii din domeniul telecomunicatiilor (de exemplu, modemurile). De asemenea ele sunt folosite pentru prelucrarea sunetelor, pentru modemuri fax si pentru realizarea placilor de accelerare din calculatoarele PC.
Arhitecrurile DSP au fost proiectate pentru realizarea rapida a operatiilor de multiplicare si acumulare si sunt capabile sa executa doua transferuri de date cu memoria interna si o operatie de multiplicare cu acumulare in fiecare ciclu (Fig. 4.9).
Fig. 4.9 Arhitectura DSP
Recent aceste procesoare au fost utilizate intens pentru compresia si decompresia semnalului vocal in telefoanele mobile. Pentru aceste aplicatii consumul redus de putere si performantele inalte de prelucrare sunt cerinte de baza. De aceea DSP au un raport performante/putere consumata superior fata de alte categorii de procesoare.
Referitor la functiile de baza pentru prelucrarile multimedia, functia de manipulare a bitilor a fost imbunatatita, unele procesoare mobile avind o unitate speciala. In schimb, performantele pentru alte functiuni, cum sunt operatiile aritmetice, accesul la memoria externa si operatiile I/O cu secvente sunt relativ scazute comparativ cu cele realizate de procesoarele actuale de mare viteza. Aceasta deoarece aplicatiile mobile ale acestor procesoare nu impun performante deosebite pentru aceste functiuni. De exmplu, a fost realizat un videotelefon mobil folosind un DSP numai datorita consumului redus. Pentru aceasta aplicatie largimea de banda limitata pentru comunicatie nu impune performante deosebite fata de alte situatii, cum ar fi aplicatiile MPEG-2.
Procesoarele RISC care imbunatatesc performantele DSP sunt un concurent serios pentru aplicatiile mobile. Totusi configuratiile biprocesor (DSP si GPP) reprezinta o solutie mai buna datorita posibilitatii de control a puterii consumate, in functie de regimul de comunicatie. In mod curent, DSP sunt cele mai adcvate procesoare pentru aplicatiile din domeniul telefoniei mobile (compresia si decompresia semnalului vocal si video). Odata cu cresterea largimii de banda pentru comunicatie la viitoarea generatie de sisteme de comunicatie, cum ar retelele locale fara fir (wireless) de mare viteza, vor trebui proiectate noi tipuri de DSP, mai performante, pastrind totusi avantajul consumului redus de putere.
Structuri paralele cu DSP
O cale pentru a obtine arhitecturi parformante pentru prelucrarile multimedia consta in integrarea intr-un cip a mai multor DSP-uri care opereaza in paralel. Un exemplu de acest tip il constituie procesorul TMS320C80 (Texas Instruments). Procesorul foloseste o arhitectura MIMD (Multiple-Instruction-stream/Multiple-Data-stream) care integreaza in acelasi cip patru DSP si un procesor RISC (Fig. 4.10)
Fig. 4.10 Arhitectura multiprocesorului TMS320C80
Circuitele DSP si blocurile de memorie sunt conectate cu ajutorul unei retele crossbar. Ansamblul constituie un sistem multiprocesor cu memorie partajata. Operatiile concurente apartinind mai multor aplicatii sunt comandate de un nucleu de tip multitasking care comanda fiecare aplicatie care este executata pe procesoarele conectate in paralel. Fiecare DSP are functii pentru prelucrari de mediu astfel ca instructiunile multimedia care executa operatii in paralel prin impartirea caii de date de 32 biti in doua sectiuni de 16 biti, respectiv in patru de 8 biti, cum ar fi cele pentru estimarea miscarii, prelucreaza un pixel in 0,5 perioade de tact.
Standardul H.324 pentru sistemele de video-conferinta, care ruleaza simultan mai multe aplicatii (codec audio, codec video si controlul sistemului) este implementat folosind facilitatile multitasking ale procesoarelor conectate in paralel.
In Fig. 4.11 este prezentat un sistem multiprocesor care contine o matrice de 20 de procesoare, folosit pentru realizarea acceleratoarelor grafice pentru PC. Fiecare DSP este conectat intr-o retea bidimensionala si este comandat ca intr-o structura SIMD. Unele DSP au posibilitati de comanda pentru un grup. Interfata cu memoria executa transfer de blocuri folosind tehnica DMA.
Fig. 4.11 Structura matriciala DSP
Procesoarele pentru mediu
O alta categorie de procesoare DSP, care imbunatateste arhitectura VLIW, o reprezinta procesoarele de mediu, care pot manipula intre 2 si 5 instructiuni in paralel. Arhirecturile VLIW ofera performante superioare fara a utiliza circuite de comanda suplimentare ca in cazul procesoarelor superscalare. In schimb, unele facilitati ale DSP, cum ar fi comanda buclelor fara supraincarcare (zero-overhead loop control), sunt prevazute si in cazul procesoarelor VLIW. O instructiune comanda citeva unitati functionale, iar unele permit executarea operatiilor in paralel ca in cazul structurilor SIMD (de exemplu, instructiunile multimedia).
Procesoarele de mediu prezinta totusi diferente arhitecturale fata de DSP, legate de arhitectura caii de date. In Fig. 4.12 unitatile functionale care realizeaza operatia de multiplicare si acumulare intr-un DSP sunt conectate direct.
Fig. 4.12. Structura caii de date la un procesor de mediu
O alta facilitate o reprezinta operatiile executate in paralel pe date impachetate, care pot fi utilizate eficient la prelucrarea imaginilor, la fel ca instructiunile multimedia. Setul de registre interne este extins si poate fi utilizat pentru stocarea datelor intermediare la compresia/decompresia video. In completarea acestor unitati functionale programabile, mai sunt folosite si blocuri functionale dedicate pentru a imbunatati performantele prelucrarilor multimedia la frecvente de tact relativ scazute. In particular, este imbunatatita si calitatea operatiei de manipulare a bitilor cu ajutorul unui bloc special pentru decodarea cu lungime variabila. Un astfel de bloc (denumit VLD - Variable Length Decoder) este prezent in structura procesorului din Fig. 4.13 (Trimedia - Philips).
Fig. 4.13. Arhitectura procesorului Trimedia
Procesoarele de mediu folosesc memorii noncache pentru a stoca programe si date, in acelasi mod in care sunt folosite memoriile interne la DSP. Ele utilizeaza de asemenea interfete rapide pentru memoriile SDRAM si RDRAM, care sunt folosite la prelucrarea imaginilor. Accesul la memoria de cadru si transferul datelor video de iesire, operatie care genereaza noncoincidente in cazul microprocesoarelor, pot fi executate fara penalitati folosind tehnica DMA.
Procesoarele de mediu poseda interfete I/O pentru mediile audio, video precum si pentru alte medii, impreuna cu un bloc special care executa conversia YUV RGB pentru afisarea datelor video. Aceste interfete video si componentele pentru interfatarea perifericelor permit procesorului de mediu sa inlocuiasca acceleratoarele grafice conventionale. De asemenea, procesoarele de mediu pot executa operatii de prelucrare in timp real. Aceste operatii sunt executate in absenta memoriei virtuale si cu o memorie cache minima. In schimb, folosirea limbajelor de nivel inalt pentru programare este limitata deoarece aplicatiile cer cod VLIW optim din punct de vedere al timpului de executie. De aceea este necesara optimizarea 'manuala' a codului in limbaj de asamblare pentru a realiza performantele cerute de prelucrarile multimedia.
Comparatii
- Facilitatile multimedia pentru procesoarele RISC si CISC imbunatatite si pentru procesoarele RISC dedicate se bazeaza pe folosirea instructiunilor multimedia. Procesoarele DSP cu consum redus sunt utilizate acum numai in domeniul comunicatiilor mobile si poseda capacitati pentru prelucrari multimedia reduse.
- Avantajul imbunatatirii instructiunilor multimedia ale microprocesoarelor este acela ca imbunatatirea performantelor este raportata la frecventa de tact si deci o crestere mai rapida a frecventei tactului este mai fezabila decit in cazul procesoarelor ASIC. Exista totusi aici o limitare datorata megistralei externe si a accesului la memorie. O alta constringere a acestei abordari o reprezinta necesitatea unei compatibilitati complete intre sistemele de operare si programele de aplicatie. De exemplu, nu exista posibilitatea adaugarii unui nou set de registre, a unor registre de comanda sau a unor noi indicatori conditionali, la setul de instructiuni imbunatatit. O solutie ar fi impartirea registrelor existente pentru unitatea de prelucrare in virgula mobila intre instructiunile pentru operatii in virgula mobila si instructiunile multimedia. Aceasta solutie ar conduce totusi la introducerea unor cicli suplimentari la comutarea intre aceste doua categorii de instructiuni intr-o anumita implementare.
- Pentru accelerarea operatiilor multimedia in PC, o abordare ar fi alegerea unei solutii software si utilizarea unui microprocesor performant cu instructiuni multimedia. O alta ar fi accelerarea cu ajutorul DSP sau a procesoarelor de mediu si folosirea unui microprocesor cu performante medii pentru unitatea centrala. Procesoarele de mediu prezinta avantajul realizarii unor prelucrari de mediu de inalta calitate. Odata cu cresterea performantelor prelucrarilor de mediu ale microprocesoarelor imbunatatite, competitia intre microprocesoare si procesoarele de mediu va fi mai puternica.
In Fig. 4.14. este prezentata calea de date tipica, pentru fiecare bloc de prelucrare, pentru decodarea MPEG, realizata de un microprocesor imbunatatit comparativ cu cea a unui procesor de mediu.
Fig. 4.14. Fluxul de date in sistemele multimedia.
a)-Microprocesor cu performante de mediu imbunatatite.
b) Procesor de mediu
Performantele multimedia ale procesoarelor cu performente de mediu imbunatatite depind de configuratiile memoriei sistemului si de magistrala sistemului dupa cum va rezulta in continuare. Performanta operatiilor de manipulare intensa a bitilor (de exemplu pentru operatia VLD) depinde de performanta unitatii de prelucrare in virgula fixa si de memoria cache, nivelele L1/L2 (calea in Fig. 4.14). Performanta obtinuta la o operatie care necesita un volum mare de operatii aritmetice (de exemplu, calculul TCDI) depinde de unitatea de mediu si de memoria cache L1/L2 ( ). Performanta unei operatii care necesita executarea unei numar mare de transferuri I/O (pentru compensarea miscarii, de exemplu) depinde de unitatea de mediu, magistrala sistemului si de memoria sistemului ( ). Performanta operatiilor care necesita transfer intensiv I/O de secvente (pentru afisare) depinde de memoria sistemului, magistrala sistemului, perifericele I/O si de acceleratoarele grafice ( ). Performantele operatiilor care implica multe comutari in timp real a proceselor (cum ar fi sicronizarea redarii informatiei audio si video ) depinde de unitatea de comanda a microprocesorului si de sistemul de oprare (
Pe dealta parte, pentru procesoarele de mediu, performantele pentru toate aceste operatii depind de arhitectura procesorului si de cea a memoriei. Intrucit toate cele cinci functii multimedia cheie sunt imbunatatite la procesoarele de mediu prin folosirea unor resurse hardware speciale, vom analiza in continuare asupra solutiilor software implementate cu microprocesoare cu functii multimedia imbunatatite si care trebuie atent studiate pentru a depasi in viitor calitatile procesoarelor de mediu.
4.4. Calea de date a procesoarelor cu facilitati multimedia imbunatatite
Calea de date
Cea mai importanta imbunatatire adusa la microprocesoarele cu facilitati multimedia consta in folosirea instructiunilor multimedia de tip SIMD, care folosesc paralelismul pixelilor la prelucrarile video. Ideea de baza este aceea ca prelucrarea in paralel a unor cuvinte scurte poate fi realizata prin impartirea unitatii aritmetice proiectata pentru a executa operatii pe cuvinte de lungime mare. De exemplu, prin divizarea adunarii/scaderii se por executa in paralel operatii cu cuvinte de 8, 16 sau 32 de biti. Fiecare esantion al semnalului video poate fi reprezentat printr-un octet fara semn. Operatiile aritmetice asupra semnalului video sunt executate in mod normal de unitati pe 16 biti. Fiecare esantion al unui semnal audio este reprezentat cu 16 biti, iar operatiile aritmetice pentru semnalele audio sunt executate pe unitati de 16 sau 32 de biti. Daca sunt folosite unitati de 16 biti pentru prelucrarea semnalului audio calitatea semnalului este degradata datorita aparitiei zgomotului de rotunjire (roundoff noise) in urma operatiilor aritmetice.
Setul de instructiuni multimedia include operatii de adunare/scadere, inmultire/inmultire cu acumulare, operatii speciale cum ar fi cele pentru estimarea miscarii, operatii de separare conditionata, operatii de amestecare a bitilor. Complexitatea setului de instructiuni multimedia depinde de procesoare. In Tabelul 4.2 este dat numarul de instructiuni pentru diferite procesoare multimedia.
Tabelul 4.2
Tabelul 4.3
Tabelul 4.3 prezinta dimensiunea si numarul registrelor din fisierul de registre, numarul de unitati multimedia la microprocesoarele cu facilitati multimedia imbunatatite, precum si tipurile fisierelor de registre (registre pentru intregi, pentru date in virgula mobila). Cu ajutorul setului de instructiuni multimedia care realizeaza operatii in paralel, un fisier mare de registre cu multe porturi de acces, poate determina cresterea numarului de operatii executate intr-un singur ciclu. Mai mult, avind multe registre, poate fi evitata stocarea datelor intermediare in memoria externa.
Dupa cum se vede din Tabelul 4.3, instructiunile multimedia sunt implementate fie pe calea de date intregi fie pe cea pentru date in virgula mobila. Exista citeva avantaje pentru implementarea acestor operatii pe cale de date reprezentate in virgula mobila. Unul este acela ca registrele pentru virgula mobila pot fi utilizate pentru a stoca date pentru instructiunile multimedia, in timp ce registrele pentru intregi sunt folosite pentru a stoca adrese si variabile de control. Al doilea avantaj este acela ca instructiunile multimedia si cele pentru operatii in virgula mobila nu sunt folosite impreuna, ceea ce permite extragerea in paralel a intregilor si a instructiunilor multimedia.
Copyright © 2024 - Toate drepturile rezervate