Sunteți pe pagina 1din 5

INTERFAA AGP

Zoltan Baruch Catedra de Calculatoare, Universitatea Tehnic din Cluj-Napoca E-mail: Zoltan.Baruch@cs.utcluj.ro Necesitatea unor rate ridicate de transfer ntre procesor i subsistemul video a condus la apariia magistralelor locale ale calculatoarelor personale, ncepnd cu magistrala VL Bus (VESA Local Bus) i continund cu magistrala PCI (Peripheral Component Interconnect). La fel cum s-a ntmplat i n cazul magistralei ISA, traficul pe magistrala PCI a calculatoarelor performante a devenit foarte intens, la acest trafic contribuind adaptorul video, discul fix i alte periferice care sunt conectate la aceeai magistral PCI. Pentru a se evita saturarea magistralei PCI din cauza informaiilor video, Intel a creat o nou interfa, proiectat special pentru subsistemul video. Aceast interfa este numit AGP (Accelerated Graphics Port). n acest articol se prezint diferite aspecte legate de interfaa AGP, incluznd principiul de funcionare, transferul datelor, maparea memoriei i aspecte software.

Principiul AGP
AGP este o nou interconexiune pentru acceleratoarele grafice din sistemele bazate pe procesorul Pentium II, utilizate n special pentru grafic 3D i redarea secvenelor video. Utilizatorii calculatoarelor PC pot beneficia acum de tipul de grafic 3D i video disponibile n prealabil numai pe staiile de lucru. Procesorul Pentium II const dintr-un nucleu ncapsulat cu o memorie cache integrat de nivel 2 (L2). Acest procesor dispune de asemenea de o arhitectur Dual Independent Bus (DIB), n care dou magistrale independente conecteaz nucleul cu memoria cache L2 i cu magistrala sistem a calculatorului. Faptul c ambele magistrale pot funciona n acelai timp mbuntete semnificativ performanele procesorului, deoarece procesorul poate executa instruciuni din memoria cache L2 i simultan poate comunica cu dispozitive externe. Noile aplicaii grafice 3D impun cerine riguroase calculatoarelor PC, cuprinznd calcule geometrice mai rapide, o interpretare grafic mai sofisticat, i texturi mai detaliate. Cu toate c procesorul Pentium II este adaptat pentru a executa calcule geometrice sporite (cu o rat mai mare de triunghiuri pe secund), iar generaia viitoare de controlere grafice poate implementa o mare varietate de efecte grafice, dimensiunea crescut a texturilor a devenit o problem important. O problem o reprezint dimensiunea memoriei video utilizat de controlerele grafice. n mod tipic, aceast memorie are o dimensiune de 2-4 MB. Cu toate acestea, au nceput s apar aplicaii grafice care utilizeaz peste 20 MB pentru o singur textur. Memoria video poate fi extins pentru a satisface aceste cerine, dar o asemenea soluie este foarte costisitoare. A doua problem este rata de transfer permis de magistrala PCI. Controlerele grafice trebuie s ncarce n prealabil texturile din memoria sistem n memoria lor RAM local. Deoarece dimensiunea texturilor a crescut, magistrala PCI a nceput s devin congestionat. Problema este chiar mai acut n cazul aplicaiilor care implic redarea secvenelor video. Tehnologia AGP mbuntete performanele sistemului punnd la dispoziie o cale rapid ntre controlerul grafic i memoria sistem. Aceast cale permite

controlerului grafic s fac acces la texturi direct n memoria sistem n timpul interpretrii grafice, n loc s le ncarce n prealabil n memoria video local (Figura 1).

Figura 1. Transferuri de date pentru maparea texturilor la interfaa AGP.

Sistemul de operare (SO) poate rezerva n mod dinamic segmente din memoria sistem, pentru a fi utilizate de controlerul grafic. Aceast memorie este numit memorie AGP (sau memorie video care nu este local). Ca urmare, controlerul grafic va trebui s pstreze un numr mai mic de texturi n memoria video local. Aceasta permite rezoluii mai mari ale ecranului, sau permite utilizarea unui buffer Z pentru o dimensiune dat a ecranului. Aceast tehnic elimin de asemenea restricia de dimensiune pe care memoria video local o impune asupra texturilor, i deci permite aplicaiilor s utilizeze texturi de dimensiuni mult mai mari, mbuntind n plus realismul i calitatea imaginilor. Mai mult, noua cale elimin de pe magistrala PCI traficul intens 3D i video. Descrcarea datelor grafice i a celor video de pe magistrala PCI permite conectarea altor dispozitive rapide pe magistral. AGP este un port, i nu o magistral, deoarece la o magistral se pot conecta mai multe dispozitive, n timp ce AGP este o conxiune punct la punct doar ntre adaptorul video i procesorul sistemului. AGP este o interfa de 64 bii care poate funciona la 66 MHz. Specificaiile AGP se bazeaz pe extensia de 64 bii a specificaiilor PCI 2.1, care descriu i un mod de lucru cu o frecven de 66 MHz, care nu a fost implementat niciodat. AGP este implementat cu un conector similar celui utilizat pentru magistrala PCI, cu 32 de linii pentru adrese i date multiplexate. Exist 8 linii suplimentare pentru adresarea secundar (sideband), descris n seciunea urmtoare. Plcile de baz AGP au un singur conector de extensie pentru adaptorul video AGP, i au de obicei cu un conector PCI mai puin, n rest fiind similare cu plcile de baz PCI. Interfaa AGP funcioneaz la viteza maxim a magistralei sistem, spre deosebire de magistrala PCI care funcioneaz la jumtatea acestei viteze. Aceasta nseamn c la o plac de baz standard Pentium II, AGP funcioneaz la 66 MHz n locul frecvenei de 33 MHz a magistralei PCI. Astfel se dubleaz rata de transfer a portului. n locul limitei de 133 MB/s a magistralei PCI, n modul su cu viteza minim

AGP are o rat de transfer de 266 MB/s. n plus, are avantajul c nu trebuie s partajeze rata de transfer cu alte dispozitive PCI. Exist mai multe cerine pentru ca un sistem s poat utiliza avantajele AGP: Plac de baz cu un set de circuite AGP (de exemplu setul 440LX al Intel pentru procesorul Pentium II). Sistem de operare cu drivere pentru noua interfa (Windows 98). Drivere speciale ale adaptorului video pentru interfaa AGP, care pot utiliza modul 2X al acesteia.

Moduri de transfer a datelor


Pe lng dublarea vitezei magistralei, AGP a definit un mod 2X, care utilizeaz un protocol special pentru a permite transmiterea unui volum dublu de date prin port la aceeai frecven de ceas. Creterea de vitez este obinut prin transferarea datelor att pe frontul cresctor, ct i pe cel descresctor al ceasului de 66 MHz, i prin utilizarea modurilor de transfer a datelor care sunt mai eficiente. Rezultatul este c performanele se dubleaz din nou, la o rat de transfer la vrf de 533 MB/s. Rata de transfer efectiv variaz la diferite sisteme i aplicaii, dar de obicei sistemele pot atinge n jur de 50-80% din valorile la vrf n cazul transferurilor prelungite. Exist i o intenie de a implementa un mod 4X, ceea ce ar nsemna o rat de transfer de 1.07 GB/s. AGP pune la dispoziia controlerului grafic dou moduri pentru accesul direct al texturilor n memoria sistem: modul pipeline i adresarea secundar (sideband addressing). n cazul modului pipeline, AGP suprapune timpii de acces ai memoriei i ai magistralei pentru o cerere n cu generarea cererilor urmtoare (n+1, n+2 etc). n cazul magistralei PCI, cererea n+1 nu ncepe pn cnd nu se termin transferul de date al cererii n (Figura 2).

Figura 2. Cereri suprapuse la interfaa AGP.

Dei att AGP, ct i PCI permit transferuri n mod exploziv (elemente multiple de date transferate n mod continuu ca rspuns la o singur cerere), asemenea transferuri nu schimb natura de tip non-pipeline a magistralei PCI. n cazul adresrii secundare, AGP utilizeaz 8 linii suplimentare de adrese, care permit controlerului grafic s transmit noi adrese i cereri simultan cu transferurile de date pe liniile principale de adrese/date ca urmare a cererilor anterioare (Figura 2).

Maparea memoriei AGP


Memoria AGP const din zone alocate n mod dinamic ale memoriei sistem, pe care controlerul grafic le poate accesa rapid. Viteza de acces se datoreaz hardware3

ului ncorporat n setul de circuite ale sistemului, set necesar pentru utilizarea AGP (numit uneori AGPset). Acesta translateaz adresele, permind controlerului grafic i programelor acestuia s observe un spaiu contiguu n memoria principal, n timp ce de fapt paginile sunt disjuncte. Astfel controlerul grafic poate accesa structuri de date cu dimensiuni mari, de exemplu o hart de bii a unei texturi (de obicei de 1-128 KB), ca o singur entitate. Hardware-ul ncorporat este numit GART (Graphics Address Remapping Table), cu funcii similare circuitelor de paginare din UCP. Adresele virtuale liniare ale procesorului sunt translatate de circuitele sale de paginare n adrese fizice. Aceste adrese fizice sunt utilizate pentru accesul la memoria sistem. Accesurile UCP la memoria video i memoria AGP utilizeaz aceleai adrese ca i cele utilizate de controlerul grafic. De aceea SO seteaz circuitele de paginare ale UCP astfel nct s nu translateze adresele virtuale n adrese fizice pentru aceste memorii. Pentru accesul la memoria AGP, controlerul grafic i UCP utilizeaz o fereastr contigu de civa MB. Circuitul GART translateaz ns adresele din aceast fereastr n diferite adrese, eventual disjuncte, ale unor pagini de 4 KB din memoria sistem. Dispozitivele PCI care fac acces la fereastra memoriei AGP (de exemplu, pentru capturarea imaginilor video) utilizeaz de asemenea circuitul GART.

Aspecte software
Aplicaiile existente, ca i noile aplicaii care nu sunt scrise n mod special pentru AGP pot fi utilizate pe sistemele AGP, dac sistemul de operare dispune de drivere i rutine interne pentru aceast interfa. Totui, aplicaiile pot fi optimizate pentru AGP. n ambele cazuri, avantajul important al AGP este numrul mai mare de texturi detaliate, fr reducerea performanelor n timp real. Calculatoarele PC cu interfa AGP pot fi de trei tipuri: Tipul 1: Acest tip dispune de o interfa AGP, dar nu utilizeaz facilitile interfeei legate de interpretarea texturilor, ci doar transfer datele mai rapid dect un dispozitiv PCI. Sistemul nu utilizeaz posibilitile transferului pipeline sau adresarea secundar. Tipul 2: Acest tip interpreteaz texturile din memoria AGP, deci aplicaiile nu trebuie s transfere texturile n memoria video. Circuitele pot avea posibilitatea de interpretare a texturilor i din memoria video. Execuia poate fi mai rapid dac texturile nu sunt interpretate din memoria video, datorit conflictelor de acces la memoria video pentru scrierea pixelilor, remprosptarea ecranului, citirea elementelor de textur i a valorilor Z. Tipul 3: Acest tip are performanele cele mai bune atunci cnd interpretarea texturilor se poate realiza att din memoria video, ct i din memoria AGP. Texturile utilizate cel mai frecvent sau cele de dimensiuni mai mici pot fi plasate n memoria video, n timp ce texturile de dimensiuni mai mari sau cele utilizate mai puin frecvent pot fi plasate n memoria sistem. Astfel conflictele dintre UCP i controlerul grafic vor fi minimizate. Aplicaii DOS Interpretarea texturilor direct din memoria sistem necesit utilizarea circuitului GART, din cauza tehnicii de adresare virtual utilizat n sistemele de operare actuale. ns, pentru aplicaiile executate sub sisteme de operare mai vechi (de exemplu, DOS) fr adresare virtual, circuitul GART este inutil. Aplicaiile vechi executate sub DOS vor beneficia de viteza mai mare a AGP, dar vor necesita anumite modificri ale driverelor pentru a activa posibilitatea controlerului grafic de a accesa texturile direct n memoria sistem.

Aplicaii Windows Aplicaiile Windows nemodificate pot beneficia de avantajele AGP, deoarece versiunile noi ale SO i biblioteca DirectDraw a Microsoft au fost actualizate pentru a permite utilizarea acestei interfee. Pentru implementrile hardware curente, SO va marca memoria AGP (ca i o alt memorie video) pentru a nu fi ncrcat n memoria cache, astfel nct nu va exista o problem de coeren ntre memoriile cache ale UCP i datele utilizate de controlerul grafic. n caz contrar, accesele controlerului grafic la memoria AGP ar necesita golirea memoriilor cache ale UCP, ceea ce ar cauza ntrzieri n anumite cazuri. Alocarea memoriei de ctre DirectDraw DirectDraw va aloca n mod implicit memoria pentru texturi n ordinea de mai jos, cu excepia cazului n care aplicaia solicit n mod expres o alt alocare: Memoria video local. Memoria AGP. Memoria sistem. n cazul n care controlerul grafic nu poate interpreta texturile din memoria AGP, se poate mpiedica alocarea de ctre DirectDraw a oricrei memorii diferite de memoria video local pentru texturi. Driverul controlerului grafic raporteaz posibilitile sale ctre SO i DirectDraw, i dac controlerul grafic nu poate accesa direct memoria sistem, DirectDraw va aloca aplicaiei numai memorie video local i memorie sistem. Similar, n cazul n care controlerul grafic nu poate interpreta texturile din memoria video local, DirectDraw nu va aloca memorie video local pentru texturi. Dac aplicaia nu poate plasa toate texturile n memoria AGP alocat de DirectDraw, atunci aplicaia trebuie s copieze texturile cerute de pe disc n memoria AGP. Aplicaiile care utilizeaz texturi de dimensiuni mari pot necesita ncrcarea texturilor de pe disc sau din reea n memoria AGP, indiferent de cantitatea de memorie alocat pentru acestea de DirectDraw.

Avantajele AGP
Principalele avantaje ale AGP sunt rezumate mai jos. Rat de transfer mai ridicat. Rata de transfer la vrf este de 2-4 ori mai mare dect cea a magistralei PCI, datorit modului pipeline, adresrii secundare i a transferurilor de date care au loc att pe frontul cresctor, ct i pe cel descresctor al ceasului. Interpretarea direct a texturilor din memoria sistem. AGP permite accesul direct cu vitez ridicat la memoria sistem de ctre controlerul grafic, n locul ncrcrii prealabile a texturilor n memoria video local. Grafic de calitate mai ridicat. Se pot utiliza texturi cu dimensiuni, i nivele de detaliere nelimitate. Costuri mai reduse. Prin minimizarea necesarului de memorie video, AGP ajut la reducerea costurilor noilor sisteme. Congestie mai redus pe magistrala PCI. AGP funcioneaz concurent cu, i independent de cele mai multe tranzacii de pe magistrala PCI. Sistemele vor avea o stabilitate mai mare atunci cnd traficul necesar pentru imaginile grafice i cele video este eliminat de pe magistrala PCI.