Professional Documents
Culture Documents
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
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.
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.
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.
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.
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.
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.
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.