Accelerated Graphics Port

Aus Lowlevel
(Weitergeleitet von AGP)
Wechseln zu:Navigation, Suche

Der Accelerated Graphics Port (kurz: AGP) ist ein Bus zum Anschluss von Grafikkarten. Die Schnittstelle basiert auf PCI, bietet jedoch höhere Transferraten und eine Anbindung der Grafikkarte an den Speicher (GART) an. Mittlerweile wurde die Schnittstelle von PCI-Express abgelöst.

Registerstruktur

Die relevanten Register liegen im PCI-Konfigurationsraum in einer Capability mit der ID 0x2. Aus dieser Struktur können die Eigenschaften der Karte ausgelesen und AGP aktiviert werden. Die Capability ist folgendermaßen formatiert (Die Benennung folgt der AGP-3.0-Spezifikation):

Offset Register-Name 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0x00 NCAPID Reserviert MAJOR MINOR NEXT_PTR CAP_ID = 0x2
0x04 AGPSTAT RQ Reserviert ARQSZ CAL_Cycle SBA Reserviert htrans# OVER4G FW AGP3.0_MODE RATE
0x08 AGP_CMD PRQ Reserviert PARQSZ PCAL_Cycle SBA_ENABLE AGP_ENABLE Reserviert OVER4G FW_ENABLE Reserviert DRATE
0x12 ... Optionale Register...

Die Register unterscheiden sich in ihrer Bedeutung für sog. Master- und Target-Geräte, sowie zwischen Versionen 2.0 und 3.0 der Spezifikation. Grün hinterlegte Felder sind nur in AGP 3.0 definiert. Nur auf einige dieser Unterschiede wird im Folgenden eingegangen.

Erkennung

Grundsätzlich werden AGP-Gerate wie gewöhnliche PCI-Geräte enumeriert. Anhand der o.g. Capability können sie von normalen PCI-Geräten unterschieden werden. Im zweiten Schritt können dann anhand des Felder MAJOR zwischen den Spezifikationen 2.0 und 3.0 unterschieden werden. Allerdings bedeutet ein Wert von "3" als Major-Version nicht, dass die Karte im AGP-3.0-Modus läuft; dies wird zwischen Grafikkarte und Mainboard automatisch ausgehandelt. Wenn sich die Geräte auf AGP 3.0 geeinigt haben, ist AGP3.0_MODE gesetzt.

Aktivierung und Einstellungen

Das Betriebssystem ist für die Aktivierung von AGP und die Auswahl eines geeigneten Transfermodus verantwortlich. Das BIOS übergibt die Karte mit abgeschaltetem AGP-Modus, sodass sie mit der Geschwindigkeit eines PCI-Gerätes läuft. AGP wird aktiviert, wenn im Register AGP_CMD das AGP_ENABLE-Bit gesetzt wird.

Im AGP-2.0-Modus werden die Transfermodi 1x, 2x und 4x unterstützt, während im AGP-3.0-Modus die Modi 4x und 8x möglich sind. Die unterstützten Modi können anhand des RATE-Feldes erkannt werden und im DRATE-Feld ausgewählt werden (in letzterem darf nur genau ein Bit gesetzt sein):

Bit AGP 2.0 AGP 3.0
0 1x 4x
1 2x 8x
2 4x Reserviert

Weiterhin können Fast-Writes (FW, FW_ENABLE) und Side-Band-Adressing (SBA, SBA_ENABLE) aktiviert werden. Letzteres muss im AGP-3.0-Modus aktiviert werden.

Im PRQ-Feld wird die Höchstzahl der Elemente Request-Queue festgelegt. Der Wert muss kleiner oder gleich der Angabe im Feld RQ sein. (P)ARQSZ gibt die optimale Größe asynchroner Requests an (2^(ARQSZ+4); 0 bedeuetet: keine Empfehlung). PCAL_Cycle muss für AGP-Targets auf das Minimum von CAL_Cycle von Master- und Target-Gerät gesetzt werden.

Achtung: Die Angaben im AGPSTAT-Register geben nur Auskunft über die Funktionen, die von dem AGP-Gerät, d.h. der Grafikkarte unterstützt werden, und geben nicht an, ob auch das Mainboard mit diesen umgehen kann.

Weblinks