Die Grafikkarte ist für die Monitordarstellung verantwortlich. Sie wird als Erweiterungskarte mit dem Motherboard verbunden oder ist direkt in den Chipsatz des Motherboardes integriert und verfügt über einen Prozessor (GPU), einen Grafik-/Videospeicher (Video-RAM), einen Chip zur Umwandlung von digitalen in analoge Signale (RAMDAC) sowie über Schnittstellen für externe Geräte wie Monitor oder Fernseher.
Die erste Grafikkarte, die 1981 in einem PC verwendet wurde, konnte Text einfarbig darstellen, doch Verbesserungen folgten schnell. Am bekanntesten wurde die VGA-Karte, die IBM 1989 auf den Markt brachte.
Mit der Entwicklung und Verbreitung der PCs wurden auch die Grafikkarten weiter verbessert und konnten, indem sie über eine eigene CPU sowie über einen eigenen Grafikspeicher verfügten, nicht nur Text, sondern auch komplexere grafische Funktionen darstellen. Auch die Verbreitung von 3D-Computerspielen und leistungsfähigere Grafikkarten bedingten sich gegenseitig. Aktuell besitzen Grafikkarten bis zu 512 MB Grafikspeicher, jedoch auch weitaus größere Speicher (bis 1.536 MB) sind erhältlich.
Derzeitiger Mindeststandard bei der Darstellung ist der VESA-Modus (Video Electronics Standards Association) mit einer Auflösung von maximal 1280 x 1024 Punkten bei 16 Bit Farbtiefe.
Neben Grafikkarten für den Einsatz im Office-Bereich und bei Spielen gibt es auch Karten für den professionellen Einsatz z.B. bei aufwendigen Bildbearbeitungen oder CAD-Anwendungen.
Grafikkarten und deren Mainboardanbindung
Hardwareschnittstellen zum System
• bekannteste Hardwareschnittstellen für Grafikkarten: PCI, AGP und PCI-Express
(früher waren auch ISA und VESA Local Bus gängig)
• diese Schnittstellen sind entweder Bussysteme oder Direktverbindungen (AGP, PCI-Express),
die den Buscontroller mit der Grafikkarte verbinden
• Spezifikation der Schnittstellen wird meist durch Interessenverbände vorgenommen
(in denen sowohl Controller-/Grafikkarten-/Grafikchiphersteller Mitglied sind)
--> deswegen funktionieren im Idealfall alle konformen Grafikkarten mit allen konformen Controllern!
Grafikspeicher
• Grafikspeicher dient zur Ablage der im Grafikprozessor (GPU) verarbeiteten Daten und als Bildspeicher
(„Framebuffer“) à das sind digitale Bilder, die später auf dem Computer-Bildschrim ausgegeben werden
• Größe des Grafikspeichers bestimmt die maximale Farbtiefe und Bildauflösung
• Grafikspeicher leicht zu errechnen:
- z.B. gewünscht ist eine Auflösung von 1600 x 1200 und eine Farbtiefe von 24 bit
- Anzahl der Bildpunkte berechnen (1600 x 1200 = 1.920.000 Pixel insgesamt)
- für jedes Pixel 24 Farbinformationen: Pixelanzahl x Farbtiefe (1.920.000 x 24 = 46.080.000 Bit = 5.760.000 Byte)
- Umrechnung in Byte bei 1 MB = 1.048.576 Byte (5.760.000 Byte : 1.048.576 = 5,49 MB
Grafikspeicher erforderlich)
• heute werden nur noch Grafikkarten mit viel mehr Speicher gebaut,
als zur reinen Bildspeicherung notwendig wäre
• beim Rendern dreidimensionaler Grafiken werden hier zusätzlich zum Framebuffer die Daten
der Objekte (z.B. Größe, Form, Position, Textur) gespeichert
• besonders die immer höher auflösenden Texturen haben für einen starken Anstieg
der Speichergröße gesorgt
• Speichergröße aktueller Grafikkarten liegt im hohen Megabytebereich
(bei 256 MB, 512 MB, 1024 M, 2048 MB)
• Spielegrafikkarten haben Speichergrößen von 2 GB bis 4 GB
• bei Onboard-Lösungen wird meist der Gauptspeicher des Systems als Grafikspeicher genutzt
(„Shared Memory“)
• Zugriff erfolgt über das jeweilige Bussystem und ist deshalb langsamer als direkt
angebundener Speicher
Grafikprozessor (GPU)
• dient zur Berechnung der Bildschirmausgabe
• Mitte der 1990er Jahre kamen die ersten 3D-Beschleuniger auf den Markt
- waren in der Lage, einige Effekte und dreiecksbasierte Algorithmen (wie Z-Puffer/Texture Mapping)
und Antialiasing selbstständig durchzuführen
- besonders den Computerspielen halfen solche zusätzlich zu installierenden Steckkarten
zu einem Entwicklungsschub
• heute sind GPUs wegen ihrer Spezialisierung auf Grafikberechnungen den CPUs
in ihrer Rechenleistung überlegen
Kühllösungen
• notwendig aufgrund der hohen thermischen Verlustleistung durch zunehmende Komplexität
von Grafikprozessoren/Grafikspeicher
• z.B. Prozessorkühler
• Grafikkarten verbrauchen mit einem Grafikprozessor (GeForce 8800 Ultra) bis zu 175 W Leistung,
die vollständig als Wärmeenergie abgeführt werden muss
• zur Abführung der Wärmeenergie existieren mehrere Ansätze:
passive Luftkühlung |
• durch Kühlkörper wird die thermische Energie durch Konvektion an die |
aktive Luftkühlung |
• die thermische Energie wird über einen Kühlkörper an die Umgebungsluft abgegeben, |
Wasser-kühlung |
• wenn für die CPU eine Wasserkühlung eingesetzt wird, kann auch Grafikkarte |
RAMDAC („Random Access Memory Digital/Analog Converter“)
• = Chip, der für die Umwandlung von digitalen (Videospeicher) in analoge Bildsignale (Monitor)
verantwortlich ist
• von ihm werden die Signalausgänge angesteuert
• kann auch im Grafikprozessor integriert sein
Externe Signalausgänge
VGA-Out
|
• an einer 15-poligen D-Sub-Buchse wird eine analoges RGB-Signal hergestellt |
DVI-Out
|
• liefert ein digitales Signal und dmait die bester erreichbare Bildqualität • es existieren weiterhin die Varianten DVI-D mit ausschließlich digitalen |
HDMI-Out
|
• HDMI = „High Definition Multimedia Interface“ |
Display Port
|
• relativ neuer Verbindungsstandard für Bild-/Tonsignale |
TV-Out (= Video-Out)
|
• der als Cinch- oder S-Video-Buchse ausgeführte TV-Ausgang kann mit einem |
Software-Grafikschnittstellen
• notwendig, um Grafikkarten benutzen zu können, ohne Hardware und Software für jede
einzeln zu entwickeln
• Gerätetreiber stellen Verbindung zwischen Hardware & Software her
- ohne diese müssten Programme die Hardware direkt ansprechen
- würde aufgrund der Unterschiede zwischen Grafikarten zu einer hohen Spezialisierung
und damit zu einem hohen Programmieraufwand für die Unterstützung vieler Grafikkarten führen
- Grafikkartentreiber können ebenfalls sehr unterschiedliche Funktionen anbieten
- deswegen wurden verschiedene Grafik-APIs entwickelt, die den Zugang zu diesen Funktionen
erleichtern sollen (z.B. OpenGL oder DirectX)
- d.h. ermöglichen dem Programmierer, einfach und unabhängig von der Grafikkarte
2D- & 3D-Grafik anzuzeigen