You are on page 1of 12

UPUTSTVO ZA UENJE

AGP tehnologija
Prevod sa engleskog: dr Radomir Jankovi

Uvod
Ovo uputstvo za uenje obezbeuje tehniki uvod u AGP interfejs. U njemu emo se osvrnuti na nain kako se danas trodimenzionalna (3D) grafika obrauje na PC raunarima, kao i na neka od najproblematinijih pitanja iz te oblasti. Zatim emo prodiskutovati kako AGP interfejs reava ta pitanja i poveava sposobnost tipinih PC raunara da rukuju sloenim 3D grafikim primenama. Ispitaemo, takoe, uticaj AGP tehnologije na razvoj softvera. Pretpostavlja se da korisnici ovog uputstva za uenje razumeju osnovnu arhitekturu PC raunara i funkcije koje se izvravaju u trodimenzionalnoj (3D) grafikoj protonoj obradi. Osnovne informacije o arhitekturi PC raunara mogu se pronai u bilo kom dobrom tekstu o PC raunarskoj tehnologiji, kao to je, na primer, "Unutranjost PC raunara" Petera Nortona (Peter Norton's Inside the PC), esto izdanje izdavake kue SAMS Publishing. Na Intelovom Web sajtu postoji detaljan poetniki udbenik o 3D grafikoj tehnologiji.

Sadraj
Glava 1: 3D grafika na sadanjoj generaciji PC raunara Glava 2: 3D grafika na PC raunarima sledee gneracije Glava 3: Blie sagledavanje AGP prenosa podataka Glava 4: AGP preslikavanje memorije Glava 5: Pregled koristi od AGP tehnologije Glava 6: ta ovo sve znai za one koji razvijaju softver

Glava 1: 3D grafika na sadanjoj generaciji PC raunara

3 AGP je novi interfejs na PC platformi koji dramatino unapreuje obradu trodimenzionalne (3D) grafike i videa punog pokreta. Da bi se potpuno razumeo uticaj AGP tehnologije, treba se najpre osvrnuti na to kako se 3D grafika danas podrava na PC platformi bez AGP interfejsa. Animirana, kao iva 3D grafika zahteva izvoenje kontinualne serije procesorski intenzivnih geometrijskih prorauna koji definiu poloaj objekata u trodimenzionalnom prostoru. Tipino, geometrijski prorauni se izvravaju pomou procesora PC raunara, jer je on pogodan za izvoenje zahtevanih operacija s pokretnim zarezom. U isto vreme, grafiki kontroler mora da obrauje podatke o teksturi, da bi stvorio verne povrine i senke unutar 3D slike. Najkritiniji aspekt 3D grafike jeste obrada mapa tekstura, odnosno bitmapa koje detaljno opisuju povrine trodimenzionalnih objekata. Obrada mapa tekstura se sastoji od donoenja jednog, dva, tri, etiri ili osam teksela (elemenata tekstura) iz bitmape, raunanja njihove srednje vrednosti, zasnovanog na nekoj matematikoj aproksimaciji lokacije u bitmapi (ili vie bitmapa) potrebnoj za krajnju sliku i, na kraju, upisivanja rezultujueg piksela u bafer kadrova. Koordinate teksela su netrivijalne funkcije trodimenzionalne take gledita i geometrije objekta na koji se bitmapa projektuje.

Slika 1 pokazuje kako se obrada mapa tekstura danas podrava na PC raunarima. Kao to se vidi, postoji pet osnovnih koraka u obradi tekstura. 1. Pre upotrebe, mape tekstura se uitavaju sa vrstog diska i pune sistemsku memoriju. Podaci putuju preko IDE magistrale i skupa ipova pre nego to se smeste u memoriju.

4 2. Kada mapa teksture mora da se upotrebi za scenu, ona se uitava iz sistemske memorije u procesor. Procesor izvrava transformacije take gledita na mapi teksture i zatim uva rezultate. 3. Osvetljavanja i transformacije take gledita se onda primenjuju na sauvane podatke. Rezultati tih operacija se zatim upisuju natrag u sistemsku memoriju. 4. Grafiki kontroler ita transformisane teksture iz sistemske memorije i upisuje ih u lokalnu video memoriju (koja se naziva i memorija grafikog kontrolera, bafer kadrova ili RAM van ekrana). U dananjim sistemima ovi podaci moraju da idu do grafikog kontrolera preko PCI magistrale. 5. Grafiki kontroler zatim ita teksture i dvodimenzionalne (2D) informacije o boji iz svog bafera kadrova. Ovi podaci se koriste za verno prikazivanje kadra na dvodimenzionalnom ekranu monitora. Sistemski analogno-digitalni pretvara uitae kadar i pretvoriti ga u analogni signal koji upravlja displejom. italac moe da zapazi brojne probleme u vezi sa nainom na koji se danas rukuje mapama tekstura. Prvo, teksture moraju da se dre i u sistemskoj memoriji i u baferu kadrova; redundantne kopije predstavljaju neefikasan nain upotrebe memorijskih resursa. Drugo, smetanje tekstura u baferu kadrova, makar privremeno, postavlja gornju granicu veliine tekstura. Zahtev za teksturama sa sve vie detalja prisiljava proizvoae hardvera da stave vee bafere kadrova u svoje sisteme. Meutim, s obzirom na to da je ovaj tip memorije dosta skup, on nije optimalno reenje. Najzad, propusni opseg PCI magistrale od 132 Mbajta u sekundi ograniava brzinu kojom mape tekstura mogu da se prenose u grafiki podsistem. Pored toga, u tipinim sistemima vie ulaznih/izlaznih (I/O) ureaja na PC magistrali mora deliti raspoloivi propusni opseg. Uvoenje drugih veoma brzih ureaja, kao to su Ultra DMA pogoni diskova i kartice lokalnih mrea raunara na 100 Mbajta u sekundi, ini nagomilavanje jo gorim. Lako se moe uvideti da nagomilavanje ureaja na PCI magistrali moe da ogranii performanse trodimenzionalne grafike na PC raunarima. U ovom trenutku aplikacije primenjuju razliite strategije kako bi kompenzovale ogranienja prisutna u dananjim PC raunarima. Aplikacije koriste algoritme za skrivanje ili razmenu u memoriji da bi se odluilo koje teksture treba da budu smetene u lokalnoj memoriji bafera kadrova ili u sistemskoj memoriji. Tipino, aplikacije odreuju deo lokalne memorije van ekrana da bude prostor za razmenu tekstura od kadra do kadra, dok ostatak memorije van ekrana sadri uobiajeno koriene teksture (memorija fiksnih tekstura), kao to su na primer oblaci i more u simulatorima leta.

5 Ako hardver moe da radi sa teksturama samo iz lokalne video memorije, algoritam obino pokuava da unapred uita u lokalnu video memoriju teksture potrebne za svaki kadar ili scenu. Bez ovog uitavanja unapred, korisnici bi videli primetnu pauzu u sceni, kada softver zaustavi iscrtavanje dok se potrebna tekstura prenosi u video memoriju ili, jo gore, sa diska u sistemsku memoriju, pa u lokalnu video memoriju. esto dolazi i do veeg kanjenja prilikom poetnog uitavanja teksture, zbog potrebe da se izvri reformatiranje teksture u komprimovani format koji zahteva specifini hardver sistema. Aplikacije mogu da rezerviu deo lokalne memorije za razmenu i ostave njen deo stalno napunjen "fiksnim", esto korienim teksturama. U zavisnosti od broja tekstura po kadru, algoritam moe da menja proporciju delova memorije dodeljene za razmenu tekstura i dela memorije za fiksne teksture. Scene koje sadre veliki broj tekstura tee da imaju manje ponovnih upotreba tekstura; takve scene e imati koristi od veeg prostora za razmenu tekstura.

Glava 2: 3D grafika na PC raunarima sledee gneracije


Trodimenzionalna (3D) grafika sigurno ima koristi od vie poboljanja na PC platformama. Prvo i najvee od njih jeste prelazak na procesor Pentijum III kao srce sistema. Procesor Pentijum III moe bolje da radi na geometrijskom stupnju trodimenzionalne protone obrade (tj. ima propusnu mo od vie trouglova u sekundi). Procesor Pentijum III se sastoji od jezgra zapakovanog sa integrisanom ke memorijom drugog nivoa. On takoe ima arhitekturu udvojenih nezavisnih magistrala (Dual Independent Bus - DIB), u kojoj dve nezavisne magistrale povezuju jezgro sa ke memorijom drugog nivoa i sa sistemskom magistralom PC raunara. injenica da obe magistrale mogu da rade istovremeno veoma poveava performanse procesora, jer on moe simultano da izvrava instrukcije iz ke memorije drugog nivoa i da komunicira sa spoljanjim ureajima. Dodavanje AGP interfejsa je, svakako, drugo kljuno poboljanje PC platforme koje koristi trodimenzionalna grafika. AGP olakava grafiko usko grlo dodavanjem nove, posebno namenjene brze magistrale, direktno izmeu skupa ipova i grafikog kontrolera. To uklanja saobraaj trodimenzionalnih grafikih i video podataka, koji inae zahtevaju irok propusni opseg, sa PCI magistrale ije su mogunosti prenosa ipak ograniene. Pored toga, AGP dozvoljava da se teksturama pristupa direktno u sistemskoj memoriji za vreme realistinog prikaza, a ne da budu unapred uitane u lokalnu grafiku memoriju. Segmenti sistemske

6 memorije mogu da budu dinamiki rezervisani za upotrebu grafikog kontrolera od strane operativnog sistema; ta memorija se naziva AGP memorija ili nelokalna video memorija. ist rezultat je da se od grafikog kontrolera zahteva da dri manje mapa tekstura u lokalnoj memoriji. Zahtevi za manjom lokalnom memorijom imaju za posledicu manju ukupnu cenu sistema. Ova inovacija takoe eliminie ogranienja u veliini koja lokalna memorija stavlja na mape tekstura, omoguavajui aplikacijama da koriste mnogo vee mape tekstura, kao i dalje poboljanje realnosti i kvaliteta slike. I, kao poslednje, treba zapaziti da rastereenje PCI magistrale od grafikih i video podataka daje vei raspoloivi prostor za druge brze ureaje kojima je potreban irok propusni opseg.

AGP magistrala je implementirana pomou konektora slinog onom upotrebljenom za PCI, sa 32 linije za multipleksirane adrese i podatke. Postoji jo 8 dodatnih linija za boni opseg adresiranja, opisan u sledeoj glavi. Lokalna video memorija je obino skuplja od opte sistemske memorije i operativni sistem ne moe da je koristi za druge svrhe kada nije potrebna za grafiku aplikacija ije izvravanje je u toku. Grafikom kontroleru je potreban brz pistup lokalnoj video memoriji radi osveavanja ekrana, Z-bafera i piksela (prednji i pozadinski baferi). Iz tih razloga, programeri mogu uvek da oekuju vie memorije za teksture raspoloive iz sistemske memorije preko AGP magistrale. Dranje tekstura van bafera kadrova dozvoljava vee rezolucije ekrana ili doputa Z-baferovanje za dati veliki ekran. Veina aplikacija bi mogla da koristi 2-16 Mbajta memorije za teksture. Upotrebom AGP tehnologije, to postaje mogue.

Glava 3: Blie sagledavanje AGP prenosa podataka


Dok PCI magistrala podrava najvie 132 Mbajta u sekundi, AGP magistrala na 66 MHz daje vrni prenos od 533 Mbajta u sekundi. To poveanje brzine se dobija prenosom podataka i na uzlaznoj i na silaznoj ivici signala generatora takta od 66 MHz, kao i korienjem efikasnijih reima prenosa podataka. (Stvarna propusna mo e se menjati izmeu razliitih sistema i aplikacija, ali svi oni obino postiu 5080% od vrnih vrednosti u stvarnim prenosima.) AGP obezbeuje dva naina na koja grafiki kontroler moe direktno da pristupa mapama tekstura u sistemskoj memoriji: protonu obradu i bono adresiranje. U protonoj obradi AGP preklapa vreme pristupa memoriji ili magistrali za "n-ti" zahtev sa izdavanjem novih zahteva ("n+1", "n+2", itd.). Kod PCI magistrale, zahtev "n+1" ne poinje dok se prenos podataka po "n-tom" zahtevu ne zavri. Mada obe magistrale PCI i AGP mogu "rafalno" da prenose podatke (to je kontinualni prenos vie podataka na osnovu jednog zahteva), ta osobina samo delimino poboljava neprotonu prirodu PCI magistrale. Dubina AGP protone obrade zavisi od implementacije i transparentna je za aplikacioni softver.

U bonom adresiranju AGP koristi 8 posebnih "bonih" adresnih linija koje dozvoljavaju grafikom kontroleru da izdaje nove adrese i zahteve, simultano dok se podaci od ranijih zahteva i dalje kreu po 32 glavne linije za podatke i adrese.

Glava 4: AGP preslikavanje memorije


Takozvanu AGP memoriju predstavljaju, zapravo, dinamiki dodeljena podruja sistemske memorije kojima grafiki kontroler moe brzo da pristupa. Brzina pristupa je posledica hardvera ugraenog u skup ipova 440BX koji prevodi adrese, dozvoljavajui grafikom kontroleru i njegovom softveru da vidi jedinstven prostor u glavnoj memoriji kada su, u stvarnosti, stranice razdvojene. Zato grafiki kontroler moe da pristupa velikim strukturama, kao to su bit mape tekstura (tipino od 1 Kbajta do 128 Kbajta), kao jedinstvenim entitetima.

Ugraeni hardver skupa ipova zove se Tabela za preslikavanje grafikih adresa (Graphics Address Remapping Table - GART), to je po funkciji slino hardveru za stranienje u centralnoj procesorskoj jedinici. Procesorske "linearne" virtuelne adrese prevode se pomou hardvera za stranienje u fizike adrese. Ove fizike adrese se koriste za pristupanje sistemskoj memoriji, lokalnom baferu kadrova i AGP memoriji. Pristupi centralne procesorske jedinice lokalnom baferu kadrova i AGP memoriji koriste iste adrese kao i grafiki kontroler. Operativni sistem stoga postavlja hardver za stranienje centralne procesorske jedinice na pravo 1:1 preslikavanje virtuelnih na fizike adrese. Za pristupe AGP memoriji grafiki kontroler i centralna procesorska jedinica koriste otvor od vie megabajta susednog adresnog prostora. Ali GART ih prevodi u vie, mogue razdvojenih, stranica od po 4 Kbajta u sistemskoj memoriji. PCI ureaji koji pristupaju AGP memorijskom otvoru (na primer, za snimanje pokretnog videa) takoe prolaze kroz GART.

Glava 5: Pregled prednosti AGP tehnologije


Pre nego to krenemo dalje, zadrimo se za trenutak i napravimo pregled glavnih prednosti AGP tehnologije. Maksimalni propusni opseg je etiri puta vei nego kod PCI magistrale, zahvaljujui protonoj obradi, bonom adresiranju i prenosima podataka koji se pojavljuju i na uzlaznoj i na silaznoj ivici signala generatora takta.

Direktno izvravanje mapa tekstura iz sistemske memorije. AGP omoguava brze direktne pristupe grafikog kontrolera sistemskoj memoriji, a ne njegovo prisiljavanje da prethodno unosi podatke o teksturama u lokalnu video memoriju.

Manje nagomilavanja na PCI magistrali. Na PCI magistralu su prikljueni mnogobrojni razliiti ulazni/izlazni ureaji, kao to su kontroleri diskova, ipovi za spregu na lokalne mree raunara i sistemi za video snimanja. AGP radi konkuretno sa najveim brojem transakcija na PCI magistrali i nezavisno od njih. Dalje, pristupi centralne procesorske jedinice sistemskoj memoriji mogu da se obavljaju konkurentno sa itanjem AGP memorije od strane grafikog kontrolera.

Poboljana sistemska konkurentnost u cilju uravnoteenja performansi PC raunara. Procesor Pentijum III moe da obavlja druge aktivnosti dok grafiki ip pristupa podacima o teksturama u sistemskoj memoriji.

Glava 6: ta ovo sve znai za razvoj softvera


Dakle, ta treba da uradi neko ko razvija softver u vezi sa AGP tehnologijom? Postoje dve mogunosti: 1) ne raditi nita, ili 2) optimizovati za AGP. U oba sluaja glavnu prednost AGP tehnologije predstavlja vie veih tekstura za realniju trodimenzionalnu grafiku, bez gubitka performansi u realnom vremenu. Dananje aplikacije obino moraju da se ogranie na manje od 2 Mbajta tekstura u bilo kom vremenu sa grafikim hardverskim kontrolerima. AGP tehnologija e to promeniti, pretpostavljajui da aplikacija ukljuuje promenljivost veliine finalnog sadraja tekstura. tavie, svaka postojea aplikacija, kao i nove aplikacije napisane bez funkcija koje podravaju AGP tehnologiju, bre e se izvravati na AGP sistemima. Hardver koji je zaista prilagoen AGP tehnologiji moe uiniti aplikacije stvarno jednostavnijim. Ali, postoje tri tipa hardvera PC raunara sa AGP tehnologijom, a softver e verovatno eleti da podri sve tri: Tip 1: Ovaj hardver ima AGP interfejs, ali ne koristi svoje AGP prednosti u pogledu tekstura. On samo prenosi podatke bre nego to bi to mogli PCI ureaji. On verovatno ne koristi sposobnost protone obrade ili bonog adresiranja. Tip 2: Ovaj hardver prikazuje teksture iz AGP memorije, pa aplikacija zato ne mora da prebacuje teksture u lokalnu memoriju. Takoe, hardver moe, ili ne moe, da bude sposoban da radi sa teksturama u lokalnoj memoriji. On moe bre da se

10 izvrava kada ne radi sa teksturama iz lokalne memorije, zbog konflikata u pristupu lokalnoj memoriji radi upisivanja piksela, osveavanja ekrana, itanja teksela (elemenata tekstura) i Z-vrednosti. Tip 3: Ovaj hardver najbolje radi kada za rad sa teksturama konkurentno koristi i lokalnu i AGP memoriju. Za esto koriene ili manje teksture bilo bi najbolje da su smetene u lokalnoj memoriji, dok bi velike i ree koriene teksture trebalo da se nalaze u sistemskoj memoriji. Tako se, smanjujui konflikte izmeu centralne procesorske jedinice i grafikog kontrolera, minimizira propusni opseg potreban za komunikaciju sa glavnom memorijom.

DOS aplikacije
Svakako da direktno memorijsko izvravanje tekstura zahteva GART, zbog virtuelne adresne eme koriene u dananjim operativnim sistemima. Ali za aplikacije koje rade pod jueranjim operativnim sistemima (DOS) bez virtuelnog adresiranja, GART nema nikakvu svrhu. Stare aplikacije koje rade pod DOS-om imae koristi od vee brzine AGP, ali e zato biti potreban izvestan rad da bi se pokrenula sposobnost grafikog kontrolera da direktno pristupa teksturama u sistemskoj memoriji.

Windows aplikacije
Nemodifikovane Windows aplikacije mogu imati koristi od AGP tehnologije, jer su se operativni sistem i DirectDraw malo promenili da bi ih obavezno podravali. Za vie detalja pogledajte Web sajt firme Microsoft o AGP tehnologiji. U dananjim hardverskim implementacijama operativni sistem e uiniti AGP memoriju (kao i drugu video memoriju) neskrivenom, tako da nema problema sa koherencijom izmeu podataka u skrivenoj memoriji centralne procesorske jedinice i podataka koje koristi grafiki kontroler. U suprotnom, pristupi grafikog kontrolera AGP memoriji zahtevali bi "zavirivanje" u skrivenu memoriju centralne procesorske jedinice, to bi u nekim sluajevima prouzrokovalo kanjenja u izvrenju. itanja centralne procesorske jedinice iz neskrivene memorije su spora, pa bi algoritmi trebalo da izbegavaju itanja centralnog procesora iz glavne AGP memorije, kao i iz lokalne grafike memorije. Zapazite da e u sistemima zasnovanim na procesorsu Pentijum III ova neskrivena grafika memorija biti oznaena kao "Sa kombinovanjem upisa" ("Write Combining" - WC), ime se postie znatno bri pristup od stvarno "Neskrivene" ("Uncacheable" - UC). Podruja WC me-

11 morije dozvoljavaju centralnoj procesorskoj jedinici kombinovane viestruke upise u memoriju pomou rafalnih zapisa preko memorijske magistrale, kada je magistrala raspoloiva, koristei namenske bafere za upis ugraene u ip. Izuzimajui vee brzine, WC memorija e ostati transparentna za aplikacije. Dok brzina pristupa centralne procesorske jedinice radi itanja nije vea za WC nego za UC memorije, upotreba UC memorije e prouzrokovati da centralna procesorska jedinica serijalizuje izvravanje, to e ga verovatno znaajno usporiti. injenica da se viestruki upisi mogu kombinovati pre nego to izau izvan centralne procesorske jedinice moe da ima izvesnog uticaja na hardverske pogone ureaja, koji mogu da zavise od sekvencijalnih upisivanja u istu lokaciju i strogog redosleda upisivanja u memoriju.

Podrazumevana DirectDraw dodeljivanja memorije


Ukoliko aplikacija ne zahteva drugaije, DirectDraw firme Microsoft e podrazumevano dodeliti memoriju za teksture po sledeem redosledu: Lokalna memorija grafikog kontrolera. AGP glavna memorija. Sistemska memorija.

ta ako grafiki kontroler ne moe da radi sa teksturama iz AGP memorije? U toj situaciji DirectDraw e biti spreen da dodeli bilo koju nelokalnu video memoriju za teksture. Grafiki kontroler izvetava operativni sistem i DirectDraw o svojim sposobnostima i, ako grafiki kontroler ne moe direktno da pristupi sistemskoj memoriji, DirectDraw e onda dodeliti aplikaciji samo lokalnu video memoriju i sistemsku memoriju. Slino, ako grafiki ip ne moe da radi sa teksturama iz lokalne video memorije, DirectDraw nee dodeliti nikakvu teksturu lokalno. Ako ne moe da smesti sve teksture u AGP memoriju za koju se DirectDraw sloio da joj dodeli, aplikacija onda mora eventualno da kopira neto vie tekstura sa diska u AGP memoriju. Vrlo realistini simulatori leta ili druge aplikacije koje koriste velike koliine tekstura mogu imati potrebe za tokovima tekstura sa diska ili mree u AGP memoriju, bez obzira na to koliko im je memorije dodelio DirectDraw. Aplikacija moe da ima koristi od upotrebe MIP-mapa sa AGP tehnologijom, jer MIP-mape (unapred filtrirane mape tekstura sa viestrukom rezolucijom) tee da poveaju "lokalnost" pristupa memoriji za vreme rada sa teksturama. To znai da verzija sa manjom rezolucijom staje u malo podruje u sistemskoj memoriji i, kada grafiki ip stavlja teksturu na objekt koji je daleko od take gledita, on pristupa toj poduzorkovanoj verziji teksture koja je cela u ma-

12 lom delu memorije. Bez MIP-preslikavanja ip bi morao da preskoi preko mnogo bajtova velike teksture jednostruke rezolucije da bi pronaao pravi element teksture (teksel) za svaki element slike (piksel) - tako se na memorijske adrese skae u velikim inkrementima i suava propusni opseg memorije.

You might also like