Accelerated Graphics Port

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

Accelerated Graphics Port (AGP, 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 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[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 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[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 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, 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

Specyfikacja poszczególnych mnożników[edytuj]

  • AGP 1x, używa kanału 32-bitowego działającego z taktowaniem 66 MHz, co daje maksymalny transfer 264 MB/s równy dwukrotnemu transferowi 132 MB/s dostępnemu w magistrali PCI działającej przy taktowaniu 33 MHz/32-bit; napięcie sygnału 3,3 V.
  • AGP 2x, używa kanału 32-bitowego przy taktowaniu 66 MHz z podwójną przepływnością, prowadzącą do efektywnego transferu 533 MB/s; napięcie sygnału 3,3 V.
  • AGP 4x, używa kanału 32-bitowego przy taktowaniu 66 MHz z poczwórną przepływnością, co prowadzi do efektywnego transferu maksymalnego 1066 MB/s (1 GB/s); napięcie sygnału 1,5 V.
  • AGP 8x, używa kanału 32-bitowego przy taktowaniu 66 MHz z ośmiokrotną przepływnością, co prowadzi do efektywnego transferu maksymalnego 2133 MB/s (2 GB/s); napięcie sygnału 0,8 V.

Zobacz też[edytuj]

Przypisy

  1. Anand LalA. L. Shimpi Anand LalA. L., 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]