Accelerated Graphics Port
Der Accelerated Graphics Port (AGP) ist eine Anschlussnorm auf PC-Hauptplatinen zur direkten Verbindung der Grafikkarte mit dem Chipsatz/Northbridge. Er basiert technisch auf dem PCI-Bus. AGP wurde 1997 eingeführt, ungefähr 2006 galt er als überholt, PCI-Express löste AGP ab.
Eigenschaften
Sogenannte „Bursts“ ermöglichen in diesem zusammenhängenden Speichermanagement ein schnelles Lesen der Daten. Es erlaubt auch die effizientere Nutzung des Framebuffer-Speichers und beschleunigt so ebenfalls 2D-Grafik. Von einigen RAID-Controllern wird der AGP-Slot wegen seiner höheren Transferrate als Steckplatz anstelle von PCI benutzt, obwohl er eigentlich nicht dafür entwickelt worden ist.
Es gibt einige wenige Hauptplatinen mit mehreren unabhängigen AGP-Steckplätzen (denen dann jeweils ein eigener Controller auf der Hauptplatine zugeordnet sein muss), im Normalfall ist aber nur ein AGP-Steckplatz vorhanden.
Entwicklung
AGP wurde von Intel entwickelt und kam erstmals 1997 im i440LX-Chipsatz für den Pentium-II-Prozessor zum Einsatz. Ab 1998 tauchte AGP in großem Stil in handelsüblichen PCs auf, die auch mit Chipsätzen anderer Hersteller bestückt waren. Auf der Hauptplatine ist im Wesentlichen der AGP-Steckplatz und die AGP-Bridge erforderlich, die meistens in der Northbridge des Chipsatzes untergebracht ist. Die Grafikkarte ist auf diese Weise auf dem schnellsten Weg mit der CPU und dem Arbeitsspeicher verbunden, die beide für die Grafikleistung von essentieller Bedeutung sind.
Versionen
Die erste AGP-Version, AGP 1.0, erschien 1997 mit den Modi AGP 1x und AGP 2x. AGP 1x überträgt pro Takt 32 Bit an Daten mit einer gegenüber PCI verdoppelten Taktfrequenz von 66 MHz und erreicht eine theoretische Transferrate von 266 Megabyte pro Sekunde. AGP 2x überträgt die Daten im DDR-Verfahren und erreicht bei gleicher Taktfrequenz 533 MB/s. Die Signalspannung bei AGP 1.0 beträgt 3,3 Volt. Die schnellsten nativen kompatiblen Karten basieren auf den ATI-Radeon-9700- bzw. Nvidia-GeForce-FX-GPUs, einige Grafikkarten der Geforce 7 Reihe (bis zur 7950GT) lassen sich jedoch durch ihren universell kompatiblen PCI-Express-Brückenchip auch auf AGP 1.0-Mainboards betreiben, die Stromversorgung erfolgt bei diesen ohnehin nicht über den AGP-Anschluss.
AGP 2.0 (1999) bot zusätzlich den Modus AGP 4x mit einer maximalen Transferrate von 1066 MB/s bei einer reduzierten Signalspannung von 1,5 Volt. Die Geschwindigkeitssteigerung wurde erreicht, indem nun vier Datenpakete pro Takt übertragen wurden. Die meisten Grafikkarten dieser Generation waren voll abwärtskompatibel zum älteren Standard und ließen sich auf Hauptplatinen mit 3,3 V bei AGP 2x betreiben. Diese Modelle werden nach der AGP-Spezifikation Universal AGP-Karten genannt und haben zwei Einschnitte in ihrer Anschlussleiste.
AGP 3.0[1] (2002) erreichte im neuen Modus AGP 8x bei nur noch 0,8 Volt Signalspannung die mit 2133 MB/s höchste AGP-Transferrate, statt vier wurden nun acht Datenpakete pro Takt übertragen. Die Modi 1x und 2x existieren in diesem Standard nicht mehr. Praktisch alle Grafikkarten dieser Generation unterstützen jedoch für den Betrieb in älteren Mainboards auch AGP 2.0 mit 1,5 V und dessen langsamere Modi („Universal 1.5V AGP 3.0“[2]), einige sogar AGP 1.0 mit 3,3 V („Universal AGP 3.0“[2]) – das ist an den zwei Einschnitten in der Anschlussleiste erkennbar. Da die mechanische Kodierung von AGP-3.0-Modellen mit der von 2.0 identisch ist, tolerieren alle 3.0-Karten den Einbau in 2.0-Systeme, Nicht-Universalkarten starten darin jedoch nicht. Ältere Karten verursachen in Hauptplatinen mit AGP-3.0-Standard dank der im Standard bereits vorgesehenen Schutzschaltung ebenfalls keinen Schaden, starten jedoch nur in den gleichsam benannten Universalmodellen.[3]
AGP 3.5[4] (2004) führte keine neuen Transfermodi ein, sondern widmete sich der Stabilisierung der Umsetzung. Einheitliche Standards für GART und Aperture (siehe AGP-Begriffe) sollten einen einheitlichen AGP-Treiber für alle Mainboards bringen, welcher in Form der Datei uagp35.sys auch in Windows XP SP2 einzog. Die vorher verwendeten chipsatzeigenen Treiber führten immer wieder zu Problemen bei AGP-Optionen wie FastWrites und schnelleren Transfermodi. Auch Dual-AGP-Mainboards zur Zusammenschaltung mehrerer Grafikkarten sollten möglich werden, das kam aber durch die Entwicklung von PCI Express und den darauf aufbauenden Multi-Grafikkarten-Verfahren (z. B. Crossfire oder SLI) kaum zum Tragen.
Zusätzlich existieren noch Karten, die auf dem sogenannten AGP-Pro-Steckplatz basieren. Deren Kontaktleisten sind etwas länger als die normaler AGP-Karten. AGP Pro versorgt Karten mit bis zu 50 W anstatt der 25 Watt des normalen Steckplatzes. Als Alternative dazu können stromhungrige Grafikkarten extern über eine eigens angebrachte Spannungsversorgung gespeist werden (5 V/12 V, Molex-Steckverbinder), was wegen der geringen Verbreitung der Pro-Steckplätze die häufiger verwendete Lösung war. Ein AGP Pro-Steckplatz nimmt auch normale AGP-Karten auf und war zumeist im semiprofessionellen Workstationbereich zu finden.
AGP-Steckkarten besitzen an unterschiedlichen Stellen eine Einkerbung im Stecker, in den der entsprechende Steg im Steckplatz auf der Hauptplatine passen muss. Bei AGP 1.0 (AGP 1x/2x) sitzt der Steg weiter in Richtung Slotblech, ab AGP 2.0 dagegen in Richtung der Gehäusevorderwand. Das soll verhindern, dass Karten mit 3,3 V Signalspannung in Hauptplatinen mit nur noch 1,5 bzw. 0,8 V Signalspannung gesteckt werden, da sonst bei Inbetriebnahme eine Beschädigung droht (siehe nächster Absatz).
Inkompatibilitäten
Durch die Zuordnung der Stege zu den Signalspannungen sollte ein versehentliches Einbauen inkompatibler Grafikkarten physisch verhindert werden. Dennoch gab es sowohl Hersteller von Grafikkarten als auch Hauptplatinen, die einen AGP-Universalanschluss verbauten, obwohl ihr Produkt zwingend an eine AGP-Version und damit Spannung gebunden war. Ein somit mögliches Einbauen inkompatibler Karten führt mit großer Wahrscheinlichkeit zur Beschädigung von Grafikkarte und Mainboard-Komponenten.
So wurden einige TNT2- und SiS305-basierende Grafikkarten gefertigt, welche mit AGP 1.0 arbeiten, mit ihrem irreführenden Universalanschluss mit zwei Kerben aber auch in Hauptplatinen mit reinem AGP 2.0-Anschluss passen. Diese reinen AGP-2.0-Hauptplatinen sind jedoch inkompatibel mit der für Version 1.0 vorgesehenen Spannung. Einige dieser Hauptplatinentypen haben daher eine Schutzschaltung, die bei solchen 3,3-V-Karten einen Start mit einhergehendem Schaden verhindert. Diesen Fall zeigen sie meist akustisch oder via LED an.
Es gab Hauptplatinen-Modelle mit Intel 845, Intel 850 und Nvidia nForce. Diese besaßen versehentlich einen AGP-Universalanschluss, obwohl sie AGP 1.0 nicht unterstützen. Auch hier bewirkte das so mögliche Einsetzen einer 3,3-V-Karte meist eine spannungsverursachte Beschädigung beider Komponenten. Die Verwendung dieser Universalanschlüsse könnte an den tatsächlich universalkompatiblen Vorgängermodellen der Chipsätze liegen. So unterstützte der Intel 815-Chipsatz AGP 1.0 und 2.0-Karten. Er erschien zwei Jahre vor dem i845, welcher die Unterstützung für Version 1.0 und damit allen 3,3 V-Karten kappte.
AGP 3.0-Karten haben standardgemäß den gleichen Anschluss wie 2.0-Karten, verwenden daher jedoch alle die vorgesehene Schutzschaltung, um beim Betrieb in 2.0-Mainboards mit deren höherer Spannung keinen Schaden zu nehmen. Zur Kompatibilität siehe obigen Absatz zu AGP 3.0.
AGP-Begriffe
Aperture Size ist eine Menge an Arbeitsspeicher, die der Grafikchip über den AGP-Port zur Speicherung von Texturen verwenden kann. Er wird auch als AGP Memory bezeichnet und sollte günstige Grafikkarten durch geringere Mengen lokalen, auf der Grafikkarte verbauten Speichers ermöglichen.
Es gibt zwei Modi der Verwendung, deren Bezeichnung oft vermischt wird. Im DiME-Modus (Direct Memory Execute) kann der Grafikchip nur Texturen aus dem Aperture-Bereich zur Fertigstellung eines Bildes verwenden, sein lokaler Speicher wird ausschließlich für Rendering und Framebuffer verwendet.[5] Der Intel-i740-Chip nutzte diesen Modus zur Demonstration der Aperture, obwohl er auch zum DiMEL-Modus (Direct Memory Execute and Local Memory) fähig war. Dieser Modus erlaubt die sinnvolle Kombination aus lokalem und AGP-Speicher. Hierzu werden die meistverwendeten Texturen lokal gehalten. Dieses Vorgehen beherrschten zuvor auch manche PCI-Grafikkarten; AGP bewirkte mit DiMEL jedoch den Vorteil der schnelleren AGP-Bandbreite zum Arbeitsspeicher sowie die Sicherheit, dass Texturen nicht auf die Festplatte ausgelagert werden.
System Memory bezeichnet normalen Arbeitsspeicher außerhalb der „aperture size“, welcher auch AGP-Grafikkarten wie ihren Vorgängern zur Verfügung steht. Der wohl erste Chip, der diesen Speicher nutzte, war der in vielerlei Hinsicht exotische nVidia NV1.[6]
GART – Die zum Auslagern von Texturen vorgesehene Aperture Size wird im Arbeitsspeicher erst bei Bedarf reserviert. Zuvor steht sie dem System für andere Zwecke zur Verfügung. Kommt sie dann zum Einsatz, findet der im Mainboard-Chipsatz befindliche Speicher-Controller kaum einen zusammenhängenden Speicherabschnitt dieser Größe. Daher werden die Daten verteilt (fragmentiert) abgelegt. Dem Grafikchip wird jedoch ein zusammenhängender Speicher vermittelt. Die Übersetzung übernimmt eine GART (Graphics Address Remapping Table).[7] Diese ähnelt der Memory Management Unit eines Hauptprozessors.
Sideband Addressing ist die zeitversetzte Übermittlung von Adressen auf dem AGP. Auf diesen acht „Sideband lines“ kann der Grafikchip neue Daten anfordern, während die aktuellen noch auf den 32 Leitungen des gemultiplexten Adress- und Datenbusses transferiert werden. Damit stehen die neuen Daten dann direkt nach Versendung der aktuellen zur Verfügung.
Fast-Writes wurde erst mit AGP 2.0 eingeführt und ist für die AGP-Modi 2x, 4x und 8x verfügbar. Es wurde zuerst von den Nvidia-Geforce-256-Grafikkarten umgesetzt.[8] Dabei können Grafikkarte und CPU Daten direkt austauschen, anstatt sie erst in den Arbeitsspeicher zu schreiben und von dem Empfänger nochmals von dort lesen zu lassen. Diese Transfer-Dopplung ohne Fast-Writes halbiert folglich effektiv die RAM-Bandbreite. Zum Tragen kommt das, sobald die Grafikkarte entsprechend viele Daten anfordert. Fast-Writes behebt dies und umfasst allen Datenaustausch, 2D wie 3D. Oft unterstützt die Grafikkarte jedoch AGP-Modi, die sie mit ihrer Rechenleistung gar nicht auslasten kann. Speziell im Einsteigersegment wurden hohe AGP-Modi mehr wegen ihrer Vermarktungswirkung implementiert. Fehlt hier das Fast-Writes-Feature, bewirkt das demnach genauso wenig Nachteil wie bei allen AGP-Mainboards, bei denen die RAM-Bandbreite etwa dem Doppelten der AGP-Datenrate entspricht (wie bei Modellen mit Dual-Channel-DDR). Zudem achteten Spielehersteller meist auf eine möglichst bandbreitenschonende Programmierung, so dass die Maximalauslastung des AGP und damit der Bedarf an Fast-Writes seltener zustande kam. Herausforderung bei der Fast-Writes-Umsetzung ist ein sauberes Daten-Signal. Daher deaktivierte Intel im 815-Chipsatz diese Funktion ebenso wie der ATI-Catalyst-Treiber in als instabil diagnostizierten Systemen. Einen entsprechenden Test vollzieht er nach seiner Installation. Generell kann es bei Grafikkartentreiberproblemen helfen, Fast-Writes im BIOS zu deaktivieren. So verweigert der nouveau-Treiber, der den Betrieb von Grafikkarten des Herstellers Nvidia unter Linux ermöglicht, bei aktivierten Fast-Writes meist die Arbeit. Fast-Writes ist durch Heruntersetzen des AGP-Modus oft möglich, wo es zuvor instabil lief, und kann so dennoch zu einer Geschwindigkeitssteigerung verhelfen. Dies erfordert jedoch individuelle Messungen mittels Benchmarks.
Der Übergang von AGP zu PCI-Express
Der Standard-PCI-Bus erlaubte eine theoretische Bandbreite von 133 MByte/s, kumulativ für alle an diesem Bus angeschlossenen Geräte. In der Anfangszeit (ca. 1995) stellte dies eine gigantische Bandbreite dar, die gar nicht ausgeschöpft werden konnte. Die ersten Mainboards erlaubten Transferraten von max. 42 MByte/s bei typischen Bandbreiten zum Hauptspeicher von knapp 200 MByte/s.
Mit zunehmender Leistungsfähigkeit von CPUs und Mainboards wurden diese 133 MByte/s weitgehend ausgereizt, wobei Grafikkarten die Hauptkonsumenten waren. Mit der Schaffung eines eigenen dedizierten Grafikbusses AGP und mit dem Aufbau mehrerer PCI- oder PCI-X-Busse auf Server-Mainboards wurde dieses Problem gelöst, führte allerdings zu einer größeren Menge Spezialsteckplätzen auf Server-Mainboards mit komplexen Wechselwirkungen durch Nicht-Punkt-zu-Punkt-Verbindungen zwischen den Komponenten. Außerdem blieb es bei 133 MByte/s für den "Rest" auf normalen Mainboards, den zunehmend einzelne Komponenten (z. B. Kopieren von einer IDE-Platte auf eine andere) weitgehend ausreizen konnten.
Mit der Entwicklung von PCI-Express wurde diese Entwicklung wieder geradegezogen, es gab wieder einen Standard, die Bandbreite wurde im ersten Schritt knapp verdoppelt, die Übertragung wechselte von halbduplex zu vollduplex, die Bandbreite zwischen Geräten stand immer exklusiv zur Verfügung und musste nie geteilt werden.
PCI | Bandbreite (halbduplex) | Verwendung (Beispiele) |
PCI Express | Bandbreite (vollduplex) | Verwendung (Beispiele) |
---|---|---|---|---|---|
PCI 32 bit/33 MHz | 133 MByte/s shared | „Kleinverbraucher“ | PCIe 1.0 ×1 | 250 MByte/s | „Kleinverbraucher“, IEEE 1394b-Karten |
PCI 32 bit/66 MHz | 266 MByte/s shared | IEEE 1394b-Karten | |||
PCI 64 bit/66 MHz | 533 MByte/s shared | SCSI-Karten, … | PCIe 1.0 ×4 | 1000 MByte/s | SCSI-Karten, … |
PCI-X 64 bit/133 MHz | 1066 MByte/s | PCIe 1.0 ×8 | 2000 MByte/s | ||
AGP 8x | 2133 MByte/s | Grafikkarten | PCIe 1.0 ×16 | 4000 MByte/s | Grafikkarten |
Mit Version AGP 8x war diese Technik zu Ende entwickelt, da sich aufgrund von Timing-Problemen bei hohen Taktungen, die durch die parallele Datenübertragung entstehen, und dem dadurch zunehmend komplizierter werdenden Platinendesign die Geschwindigkeit nicht weiter steigern lässt. Das Merkmal von AGP einer schnellen Punkt-zu-Punkt-Verbindung zum Arbeitsspeicher hatte an Bedeutung verloren, da Grafikkarten zunehmend genügend eigenen RAM-Speicher mitbrachten. Dazu kommt, dass AGP nur als Schnittstelle für Grafikkarten konzipiert ist, aber auch immer mehr andere Komponenten, die bis dahin immer noch über PCI oder PCI-X angebunden wurden, höhere Anforderungen bezüglich der Datenübertragungsrate aufweisen. Unter anderem deswegen hat die PCI-SIG den Standard PCI Express als Nachfolger von PCI und AGP entworfen, der eine noch größere Datenübertragungsrate als AGP bot. Für die (nach z. B. Sockel 939) Chipsätze mit DDR2-800-Speicher-Unterstützung wurden keine Windows-9x-Treiber mehr geliefert. Seit Mitte 2006 wurden kaum noch neue Hauptplatinen für AGP-Grafikkarten vorgestellt. Grafikkarten für einen älteren 1-Kern-Prozessor-AGP-Slot sind selten geworden.
Weblinks
- Hotline-Eintrag der Zeitschrift c't aus dem Jahr 2002
- Erläuterungen zum Thema AGP – enthält auch eine Liste möglicherweise betroffener Grafikkarten
- AGP 1.0 bis 3.0 und Kompatibilität untereinander
- Hilfsprogramm für Microsoft Windows – zeigt die Größe des gesamten und des freien Speichers auf der AGP-Grafikkarte an
- Beschreibung der AGP-Slot-Sorten (englisch)
- AGP-Steckerbelegung (deutsch)
- Signal- und Spezifikationsdetails (englisch)
Einzelnachweise
- http://www.playtool.com/pages/agpcompat/agp30.pdf AGP 3.0
- http://www.playtool.com/pages/agpcompat/agp.html Absatz „AGP Cards“
- http://www.playtool.com/pages/agpcompat/agp.html Absatz „AGP Motherboards“
- http://www.microsoft.com/whdc/archive/uagp.mspx AGP 3.5
- Dave Dzatko, Tom Shanley, MindShare Inc.: AGP system architecture. 2. Auflage. Addison-Wesley, 1999, ISBN 978-0-201-70069-5, S. 66 f.
- Archivlink (Memento vom 7. Mai 2009 im Internet Archive)
- http://www.cs.umd.edu/class/fall2001/cmsc411/projects/agp/hardwareagp.htm Erläuterung der GART-Übersetzung
- УЗНАЙТЕ БОЛЬШЕ (Memento vom 10. September 2012 im Webarchiv archive.today) Pressemappe zur ersten FastWrites-Implementierung