Accelerated Graphics Port: Różnice pomiędzy wersjami

[wersja przejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
CzarekB (dyskusja | edycje)
mNie podano opisu zmian
Pbogus (dyskusja | edycje)
rozszerzenie opisu
Linia 1:
[[Plik:Mainboard agp.jpg|right|thumb|200px|Lokalizacja złącza AGP na płycie głównej]]
'''Accelerated Graphics Port''' ('''AGP''', czasem nazywany '''Advanced Graphics Port''') – zmodyfikowana [[Magistrala (informatyka)|magistrala]] [[Peripheral Component Interconnect|PCI]] opracowana przez firmę [[Intel]], zaprojektowana do obsługi kart graficznych. Jest to 32-[[bit]]owa magistrala PCI zoptymalizowana do szybkiego przesyłania dużych ilości [[dane|danych]] pomiędzy [[pamięć operacyjna|pamięcią operacyjną]] a [[karta graficzna|kartą graficzną]]. Wyparta przez szybszą magistralę [[PCI Express]].
 
Intel oficjalnie wprowadził opracowaną w 1996 r. magistralę AGP 1.0 (1x, 2x) na rynek wraz z chipsetem Intel 440LX dla procesora [[Pentium II]] (Klamath) w dniu 26 sierpnia 1997 r. Ze względu na silną konkurencję ze strony AMD, Cyrix i innych producentów procesorów na platformę [[Socket 7]], Intel był zainteresowany promowaniem nowych procesorów ze złączem krawędziowym [[Slot 1]] i nigdy nie udostępnił wsparcia magistrali AGP w swoich chipsetach dla Socket 7. Pierwszymi chipsetami umożliwiającymi uruchomienie kart AGP na płytach głównych Socket 7 były VIA Apollo VP3, SiS 5591/5591 oraz ALi Aladdin V.
 
Wersja AGP 2.0 (4x) ukazała się w roku 1998, a wersja AGP 3.0 (8x) w roku 2002 r. Po wprowadzeniu magistrali [[PCI Express]] (2004), AGP została przez nią w ciągu kilku lat praktycznie całkowicie wyparta. Najbardziej zaawansowanymi i najszybszymi dostępnymi kartami ze złączem AGP są GeForce serii 7 oraz Radeon serii HD 4000.
 
== Podstawowe informacje ==
Linia 10 ⟶ 14:
* Maksymalna przepustowość: 2133 MB/s
* Maksymalna moc jaką może pobierać karta poprzez slot AGP to 35 - 40W. W wypadku, kiedy zapotrzebowanie jest większe, należy doprowadzić dodatkowe zasilanie - zazwyczaj za pomocą złącza typu [[Molex]].
 
W epoce przed wprowadzeniem akceleratorów graficznych całą pracę związaną z generowaniem obrazu wykonywał procesor główny (CPU). Rozwój grafiki komputerowej doprowadził do sytuacji, w której obliczenia związane z generowaniem obrazu coraz bardziej obciążały CPU. Zaczęto więc konstruować dedykowane procesory do przetwarzania danych graficznych, nazywane potocznie akceleratorami. Początkowo akceleratory przyspieszały tworzenie grafiki 2D (np. S3 Trio), wkrótce pojawiły się akceleratory dedykowane dla grafiki 3D (np. 3dfx Voodoo, Nvidia Riva 128), potrafiące operować teksturami (''texture mapping'') i buforem głębi (''z-buffer'').
 
Dążenie do generowania obrazu o coraz wyższej jakości powodowało wzrost rozmiarów stosowanych tekstur i tym samym wymagało coraz większej ilości pamięci do ich przechowywania. Ze względu na wysoki koszt pamięci video, podnosiło to w istotny sposób cenę kart graficznych. Ponadto, przepustowość magistrali PCI wykorzystywanej do przesyłania tekstur pomiędzy pamięcią operacyjną i kartą graficzną wynosiła maksymalnie 132 MB/s (33 MHz x 32 bity), a ponieważ magistrala PCI oprócz karty graficznej obsługiwała także inne urządzenia (Ultra DMA, karty sieciowe, dźwiękowe itd.), to w praktyce osiągała ok. 50-80% tej wartości.
 
AGP było rozwiązaniem mającym na celu ominięcie ograniczeń wydajnościowych magistrali PCI oraz wysokich kosztów pamięci VRAM. Jedną z ważniejszych zalet magistrali AGP jest wykorzystanie tzw. ''sideband adressing''. ''Side band'' to dodatkowe 8-bitowe pasmo, niezależne od 32-bitowej magistrali danych, które jest wykorzystywane do przekazywania adresów. Dzięki temu można powiedzieć, że AGP rozdziela magistralę adresową od danych (''demultiplexing'') i stosuje technologię potokową (''pipeline''), czyli separację fazy adresowania od fazy transmisji danych i tworzenie kolejki żądań transakcji. Umożliwia to pobieranie nowych poleceń jeszcze przed zakończeniem wykonania poprzednich.
 
Ważnym atrybutem AGP jest możliwość wykorzystania standardowej pamięci operacyjnej RAM komputera do przechowywania i przetwarzania tekstur (''DiME - Direct Memory Execute''), bez konieczności uprzedniego ładowania ich do lokalnej pamięci na karcie graficznej poprzez magistralę PCI. AGP umożliwia dynamiczne przydzielanie części pamięci operacyjnej na potrzeby systemu graficznego. Jest ona traktowana wówczas jako cześć pamięci video, do której mogą być np. ładowane tekstury. Pozwala to na użycie większych tekstur przy niezwiększonych wymaganiach co do pojemności pamięci na karcie. Maksymalna ilość pamięci operacyjnej dostępna w tym trybie dla karty AGP określana jest jako ''AGP aperture''. Pamięć operacyjna dostępna za pośrednictwem AGP na potrzeby akceleratora graficznego jest widziana przez niego jako liniowa przestrzeń adresowa, choć nie musi być kontynuacją przestrzeni adresowej pamięci video na karcie. Fizycznie przydzielona pamięć może być nieciągła. Translacja adresu fizycznego na liniowy zapewniana jest przez układy płyty głównej, przy użyciu tablicy umieszczonej w pamięci zwanej tablicą GART (''Graphics Address Remapping Table'').
 
Rozwiązaniem działającym na zbliżonej zasadzie, tzn. wykorzystania pamięci RAM dla celów układu graficznego było UMA (''Unified Memory Architecture''), stosowane w niektórych modelach płyt głównych. UMA wykorzystuje do komunikacji wolniejszą magistralę PCI oraz zastępuje bufor ekranu pamięcią RAM.
AGP jest magistralą dedykowaną do współpracy z kartą graficzną i działa niezależnie od PCI. Oprócz braku konieczności współdzielenia magistrali PCI z innymi urządzeniami, bezpośrednie połączenie z kontrolerem pamięci umożliwia także uzyskanie wyższej częstotliwości zegara (66 MHz).
W trybie 2x efektywne taktowanie AGP wynosi 133 MHz, a maksymalna teoretyczna przepustowość to 528 MB/s (2 x 66 MHz x 32 bity). Podobną wartość posiada maksymalny teoretyczny transfer do pamięci RAM dla procesorów klasy Pentium (66 MHz x 64 bity).
 
== Pierwsze zastosowania i benchmarki ==
 
Samo posiadanie płyty głównej ze złączem AGP i wspierającym jego obsługę chipsetem oraz odpowiedniej karty graficznej nie wystarcza do skutecznego wykorzystania zalet i wydajności AGP. Potrzebne jest również wsparcie w postaci odpowiednich sterowników.
 
Różnice pomiędzy AGP i PCI początkowo nie były wyraźnie widoczne. W codziennych zastosowaniach i klasycznych benchmarkach (np. Bussiness Winstone 97, HighEnd Winstone 97) obie technologie osiągały praktycznie identyczne wyniki testów. Dopiero system Windows 95 OSR 2.1 w połączeniu z DirectX 5 oraz programy (gry) wykorzystujące rozdzielczości ekranu od 1024x768 w górę i bardzo duże tekstury przekraczające wielkość lokalnej pamięci karty graficznej (np. powyżej 4 MB), pozwalały docenić nową magistralę. W takich warunkach wydajność AGP przewyższała PCI nawet kilkukrotnie (np. test 3D Winstone 97 w artykule AnandTech z września 1997 - ''AGP Performance Explained'').
 
Początkowo przyjęcie nowej technologii było ostrożne. Recenzje w prasie wskazywały na jej zalety, ale jednocześnie na brak znaczących różnic w wydajności w porównaniu do kart PCI z odpowiednią ilością VRAM. Z biegiem czasu i wzrostem wymagań stawianych przez twórców gier, magistrala AGP wyparła PCI z kart graficznych praktycznie całkowicie.
Pierwszymi kartami graficznymi wykorzystującymi złącze AGP były: Rendition Vérité V2200, 3dfx Voodoo Banshee, Nvidia RIVA 128, 3Dlabs PERMEDIA 2, Intel i740, ATI Rage, Matrox Millennium II, oraz S3 ViRGE GX/2. Niektóre z pierwszych kart graficznych posiadające złącze AGP były zbudowane na bazie układów graficznych opracowanych dla magistrali PCI i posiadały jedynie mostek AGP. W rezultacie nie wykorzystywały w pełni potencjału nowego złącza. Jedyną korzyścią była wyższa częstotliwość taktowania (66 MHz) i wyłączność na wykorzystania magistrali. Przykładami takich kart są: Voodoo Banshee, Vérité V2200, Millennium II oraz S3 ViRGE GX/2. Układ Intel i740 był projektowany od początku dla AGP i wykorzystywał w pełni oferowane możliwości. Pojawiły się natomiast trudności w opracowaniu wersji karty z tym układem dla złącza PCI, gdyż wymagało to emulacji na magistrali PCI sposobu korzystania z pamięci operacyjnej przez AGP.
 
Wsparcie programowe dla AGP pierwszy raz pojawiło się w Windows 95 OEM Service Release 2 (OSR2) poprzez USB SUPPLEMENT (OSR2 patch). Zainstalowanie poprawki skutkowało podniesieniem wersji systemu do Windows 95 version 4.00.950B. W systemach serii NT pierwszym systemem wspierającym AGP był Windows NT 4.0 z Service Pack 3. Sterownik programowy obsługujący magistralę AGP w przypadku systemów Windows 9x czy Windows NT nosi nazwę VGARTD.VXD. Linux wspiera AGP od 1999 r., czyli od czasu zaimplementowania modułu jądra AGPgart (''AGP graphics address remapping table'').
 
== Podstawowe rodzaje portów i kart AGP ==