Accelerated Graphics Port

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Lokalizacja złącza AGP na płycie głównej

AGP (ang. Accelerated Graphics Port, czasem nazywany Advanced Graphics Port) – zmodyfikowana magistrala PCI opracowana przez firmę Intel, zaprojektowana do obsługi kart graficznych. Jest to 32-bitowa magistrala PCI zoptymalizowana do szybkiego przesyłania dużych ilości danych pomiędzy pamięcią operacyjną a kartą graficzną. Wyparta została 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 standardu PCI Express w 2004 r., AGP została przez nią praktycznie w ciągu kilku lat całkowicie wyparta. Najbardziej zaawansowanymi i najszybszymi dostępnymi kartami ze złączem AGP są GeForce serii 7 oraz Radeon serii HD 4000.

wersje AGP
Wersja Kanał Częstotliwość taktowania Przepustowość Napięcie
AGP 1x 32-bitowy 66 MHz 266 MB/s 3,3 V
AGP 2x 32-bitowy 66 MHz z podwójną przepływnością 533 MB/s 3,3 V
AGP 4x 32-bitowy 66 MHz z poczwórną przepływnością 1066 MB/s 1,5 V
AGP 8x 32-bitowy 66 MHz z ośmiokrotną przepływnością 2133 MB/s 0,8 V

Podstawowe informacje[edytuj]

  • Data wprowadzenia: 1997
  • Stworzony przez: Intel
  • Następca: PCI Express (2004)
  • Szerokość magistrali: 32 bity
  • Maksymalna liczba urządzeń: 1 urządzenie/slot
  • 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 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 (ang. demultiplexing) i stosuje technologię potokową (ang. 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 (ang. 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[edytuj]

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[1]).

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[2]. Z biegiem czasu i wzrostem wymagań stawianych przez twórców gier, magistrala AGP wyparła PCI z zastosowania w kartach 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, chociaż pod względem osiąganej wydajności nie spełnił pokładanych w nim nadziei.

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. 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[edytuj]

"+" → karta współpracuje z płytą główną, * "-" → karta nie współpracuje z płytą główną, * "-" (na żółtym tle) → karta nie współpracuje z płytą główną, chociaż fizycznie do niej pasuje

Podstawowe rodzaje portów i kart AGP:

  • AGP 1.0 – napięcie sygnału 3,3V oraz mnożniki 1x oraz 2x
  • AGP 2.0 – napięcie sygnału 1,5V oraz mnożniki 1x, 2x oraz 4x
  • AGP 3.0 – napięcie sygnału 0,8V oraz mnożniki 4x oraz 8x.

Zobacz też[edytuj]

Przypisy

  1. Anand Lal Shimpi, AGP Performance Explained, anandtech.com [dostęp 2016-03-22].
  2. AGP - The Practice - Introduction, Tom's Hardware, 26 sierpnia 1997 [dostęp 2016-03-22].

Linki zewnętrzne[edytuj]