Schaltung und Verfahren zum Betrieb eines AGP-Controllers an einem PCI-Steckplatz
Die Erfindung betrifft ein Verfahren zum Betrieb eines AGP- Controllers mit einer AGP-Schnittstelle, die einen Adress- /Datenanschluß AD16 zur Konfiguration des AGP-Controllers aufweist, an einem PCI-Steckplatz, der einen IDSEL-Anschluß zur Konfiguration eines PCI-Controllers mittels eines IDSEL- Kon igurations-Signals sowie einen Anschluß für eine Adress- /Datenleitung AD16 aufweist. Außerdem betrifft die Erfindung eine Schaltung zur Durchführung dieses Verfahrens .
Im Zuge der Einführung und Weiterentwicklung graphischer Benutzeroberflächen, wie beispielsweise MS-Windows, wurden die von Grafikkarten zu verarbeitenden Datenmengen stetig größer, denen sowohl der ISA Bus als auch der auf diesem basierende VESA Local Bus nur unzureichend gewachsen waren.
Als leistungsfähigere Alternative zum VESA Local Bus (VLB) entwickelte INTEL den PCI-Bus (Abk. für Peripheral Component Interconnect ) . Der PCI-Bus fand insbesondere mit der Markteinführung der Pentium-Prozessoren schnelle Verbreitung, da der VLB dessen erhöhte Leistungsfähigkeit nicht mehr vollständig ausnutzen konnte. Der PCI-Standard (aktuelle Version 2.2) erlaubt in Verbindung mit dem BIOS eine automatische Konfiguration von Steckkarten. Wie auch schon der VLB, hat der PCI-Bus seine Hauptbedeutung für Erweiterungskarten mit hohem Datendurchsatz, wie beispielsweise Grafikkarten. Unter anderem für die Konfiguration des Grafikcontrollers ist auf dem PCI-Steckplatz ein dedizierter IDSEL-Anschluß ( Initia- lization Device Select-Signal ) vorhanden. Über diese IDSEL- Anschluß kann der nach dem PCI-Protokoll arbeitende Mainboard-Controller des Personalcomputers jeden an einem PCI-Bus betriebenen PCI-Grafikcontroller einzeln ansprechen und kon- figurieren. Hierzu wird nach Systemstart des Personalcompu-
ters auf allen PCI-Bussen nach PCI-Grafikcontrollern gesucht. Wird ein PCI-Grafikcontroller gefunden, reserviert der Mainboard-Controller dem PCI-Grafikcontroller Adressbereiche im IO-Bereich des Arbeitsspeichers. Kommt es zu Zugriffen auf diese reservierten Adressbereiche, erkennt der PCI-Grafikcontroller, daß er angesprochen wird.
Als eine Erweiterung bzw. Ergänzung des PCI Busses wurde von INTEL der AGP-Bus entwickelt. AGP ist die englische Abkürzung für Accelerated Graphics Port. Es handelt sich um einen Hochgeschwindigkeitsbus für die Grafikausgabe bei' PCs, um beispielsweise realistische 3-D-Grafiken auf dem Bildschirm darzustellen zu können. Die Bandbreite des PCI-Busses ist zu gering, um die bei derartigen Darstellungen anfallenden großen Datenmengen, beispielsweise für speicherintensive Texturdaten, zwischen Arbeitsspeicher und Grafikkarte auszutauschen. Um dieses Problem zu lösen, ist die Bandbreite der Datenübertragung eines AGP-Busses wesentlich größer, so daß der Arbeitsspeicher des PCs für die anfallenden Datenmengen verwen- det werden kann.
Im Gegensatz zum PCI-Bus können auf einem AGP-Bus Datenpakete nicht nur an den steigenden, sondern auch an den fallenden Signalflanken übertragen werden. Das bedeutet eine doppelte (AGP2X-Modus) oder nach dem derzeit üblichen AGP4X-Modus .vierfache Datenmenge.
Voraussetzung für die Nutzung des AGP-Bus ist eine Grafikkarte, deren Chipsatz den AGP-Bus unterstützt, ein Mainboard mit AGP-Steckplatz sowie ein Betriebssystem, das den AGP-Bus unterstützt.
Die sogenannte AGP ( Accelerated Graphics Port) Spezifikation baut auf der PCI-Spezifikation (aktuelle Version 2.2) auf, die ausdrücklich in der Version 2.2 in die Offenbarung dieser Anmeldung einbezogen und auf deren Begriffsdefinitionen Bezug
genommen wird. Da der AGP-Bus auf dem PCI-Bus aufbaut, waren zunächst die Schnittstellen sämtlicher AGP-Controller so beschaltet, daß der gleiche AGP-Controller entweder auf einer Grafikkarte für einen PCI-Steckplatz oder auf einer Grafik- karte für eine AGP-Steckplatz einsetzbar war. Mit der Etablierung des AGP-Bus für Grafikkarten verzichteten viele moderne AGP-Controller auf eine Schnittstelle mit einer Be- schaltung für einen Einsatz an einem PCI- und einem AGP- Steckplatz und sahen ausschließlich eine AGP-Schnittstelle ohne IDSEL Anschluß vor. Damit lassen sich moderne AGP-Controller nicht mehr zur Herstellung von Grafikkarten für einen PCI-Steckplatz verwenden.
Es gibt jedoch Bereiche in der Computergrafik, die einen Be- trieb einer Grafikkarte an einem PCI-Bus erfordern:
1. Die von vielen CAD-Programme unterstützte Mehrbildschirmdarstellung setzt mehrere Grafikkarten in einem Personalcomputer voraus. Da ein Personalcomputer jedoch nur eine AGP-Grafikkarte unterstützt, müssen alle weiteren Grafikkarten an einem PCI-Bus betrieben werden.
2. Wenn der Grafikcontroller in den Chipsatz des Personalcomputers integriert werden soll, ist der AGP-Bus be- reits von dem integrierten Controller belegt, so daß weitere Grafikcontroller nur an einem PCI-Bus betrieben werden können.
Ausgehend von diesem Stand der Technik liegt der Erfindung daher die Aufgabe zu Grunde, eine Verfahren und eine Schaltung vorzuschlagen, die den Betrieb eines ausschließlich eine AGP-Schnittstelle aufweisenden AGP-Controllers an einem PCI- Steckplatz eines PCI-Bus erlaubt.
Die Lösung der Aufgabe beruht auf der Erkenntnis, daß der auf dem PCI-Bus aufbauende AGP-Bus grundsätzlich für Datenüber-
tragungen nach dem PCI-Protokoll geeignet ist. Verzichtet man auf die zusätzlichen Funktionen des AGP-Protokolls auf dem AGP-Bus, so verhält sich ein Personalcomputer mit AGP-Bus wie ein Personalcomputer mit PCI-Bus mit 66MHz Bustakt. Problem- tisch ist allerdings die Konfiguration des ausschließlich eine AGP-Schnittstelle aufweisenden AGP-Controllers, der keinen IDSEL-Anschluß aufweist.
Im einzelnen wird die Aufgabe bei einem Verfahren der ein- gangs erwähnten Art dadurch gelöst, daß IDSEL-Konfigurationszyklen auf dem PCI-Bus entschlüsselt werden und sofern eine Adressphase eines IDSEL-Konfigurationszyklus erkannt wird, der Adress-/Datenanschluß AD16 der AGP-Schnittstelle mit dem IDSEL-Anschluß des PCI-Bus verbunden wird.
Nach dem AGP-Protokoll wird das IDSEL- Signal über eine Adress-/Datenleitung, nämlich die AD16 übertragen, die bei einem Konfigurationszyklus nicht benutzt wird. Daher muß erfindungsgemäß der Adress-/Datenanschluß AD16 der AGP-Schnitt- stelle des AGP-Controllers für die Konfiguration mit dem IDSEL-Anschluß des PCI-Bus verbunden werden.
Konfigurationszyklen auf dem PCI-Bus bestehen aus einer Adressphase, der eine Datenphase folgt. In der mit einem Kon- figurationskommando einhergehenden Adressphase wird die
Adresse des zu konfigurierenden Registers des Controllers übertragen. In der anschließenden Datenphase reserviert der Mainboard-Controller dem AGP-Controller beispielsweise Adressbereiche im IO-Bereich des Arbeitsspeichers. Die C/BE (Command/ByteEnable) Leitungen des PCI-Bus haben je nachdem, ob ein Kommando oder ein Datum übertragen wird verschiedene Funktionen. Die C/BE (Command/ByteEnable) Leitungen übertragen während der Adressphase den Kommandotyp, wie beispielsweise das Konfigurationskommando, und geben während der Da- tenübertragung an, welche der 4 Bytes des PCI-Busses gültige Daten enthalten. Wird über die C/BE (Command/ByteEnable) Lei-
tungen des PCI-Bus ein Konfigurationskommando im Rahmen eines Konfigurationszyklus übertragen, werden nur die Adress/Datenleitungen (AD0-10) der insgesamt 32 Adress/Datenleitungen des PCI-Bus zur Adressierung des Con- trollers gebraucht, während die Adress-/Datenleitungen ADll- 31 während der Übertragung dieses Konfigurationskommandos anderweitig verwendet werden können. Nach der Spezifikation des PCI-Protokolls ist es erlaubt, daß die Adress-/Datenleitungen AD11-31 bei einem Konfigurationszyklus die IDSEL-Signale für die Auswahl der an den einzelnen Steckplätzen zu konfigurierenden Controller übertragen. Das heißt die dedizierte IDSEL- Anschluß eines PCI-Steckplatzes kann mit irgendeiner der Datenleitungen AD 11-31 verbunden sein. Dadurch können an dem IDSEL-Anschluß auch Signale anliegen, wenn keine Konfigura- tionszyklen erfolgen. Aus diesem Grund ist es auch erforderlich, daß die Verbindung des Adress-/Datenanschluß AD16 der AGP-Schnittstelle mit dem IDSEL-Anschluß des PCI-Bus auf die Adressphase des Konfigurationszyklus beschränkt ist.
Die Entschlüsselung der Konfigurationszyklen auf dem PCI-Bus erfolgt mittels eines Befehlsdekoders, der einen Eingang aufweist, der zumindest mit den Anschlüssen des PCI-Konnektors zu den Leitungen C/BE [3 : : 1] und der Leitung Frame! des PCI- Bus verbunden ist. Physikalisch weist der Eingang daher min- destens vier Anschlüsse für diese Leitungen auf.
Der Befehlsdecoder weist einen Ausgang zur Steuerung eines
Schaltmittels zwischen zwei Schaltstellungen auf, wobei der Befehlsdecoder bei Auftreten einer Adressphase ei- nes IDSEL-Konfigurationszyklus ein Steuerungssignal an seinem Ausgang erzeugt, welches das Schaltmittel während der Adressphase in eine Schaltstellung bringt, in der der Adress- /Datenanschluß AD16 der AGP-Schnittstelle des AGP-Controllers mit dem IDSEL-Anschluß des PCI-Konnektors verbunden ist
Der AGP-Controller reagiert nicht, sofern ein IDSEL-Konfigu- rationssignal mit dem Zustand "Low" auf dem PCI-Steckplatz erkannt wird. In diesem Fall wurde durch den erkannten Konfigurationszyklus ein anderer PCI-Steckplatz in dem Perso- nalcomputer angesprochen. Ist der Zustand des IDSEL-Konfigu- rationssignal indes "Hi" wird der AGP-Controller konfiguriert .
In Abwesenheit der Adressphase des IDSEL-Konfigurationszyklus erzeugt der Befehlsdecoder ein Steuerungssignal an seinem Ausgang, welches das Schaltmittel in die Schaltstellung bringt, in der der Adress-/Datenanschluß AD16 der AGP- Schnittstelle mit dem Adress-/Datenanschluß AD16 des PCI- Konnektors verbunden ist.
Die wahlweise Verbindung zwischen dem Adress-/Datenanschluß AD16 der AGP-Schnittstelle mit dem IDSEL-Anschluß oder mit dem Adress-/Datenanschluß AD16 des PCI-Konnektors für den PCI-Bus wird vorteilhaft, jedoch nicht notwendigerweise als galvanische Verbindung zwischen den unterschiedlichen Anschlüssen hergestellt. Alternativ kommt eine logische Verbindung zwischen den Anschlüssen des Schaltmittels in Betracht, die gleich große und im technischen Sinne gleichzeitige Pegel an den miteinander verbundenen Anschlüssen des Schaltmittels erzeugt. Eine solche Verbindung läßt sich beispielsweise mittels eines programmierbaren Logikbausteins herstellen. Die logische Verbindung setzt allerdings abweichend von der galvanischen Verbindung voraus, daß dem Schaltmittel die Richtung der Datenübertragung bekannt ist. Für die Entschlüsse- lung der Richtung der Datenübertragung ist der Eingang des
Befehlsdecoder zusätzlich mit dem Anschluß C/BE 0 # des PCI- Steckplatzes zu verbinden, zu dem die C/BE 0 # Leitung des PCI-Bus führt. Aus der PCI-Spec. 2.2 Ziff. 3.1.1. ergibt sich für die unterschiedlichen Kommandotypen, daß das Signal C/BE 0# beim Lesen immer "0" und beim Schreiben immer "1" ist, so daß man anhand dieses Signals die Richtung der Datenübertra-
gung feststellen kann. Richtungsabhängig erzeugt das Schaltmittel den Pegel des AD16 Anschluß des AGP-Controllers an dem AD16 Anschluß des PCI-Steckplatz bzw. den Pegel des AD16 Anschluß oder des IDSEL-Anschluß des PCI-Steckplatzes an dem AD16 Anschluß des AGP-Controllers.
Nachfolgend wird die Erfindung anhand eines in Figur 1 dargestellten Prinzipschaltbildes näher erläutert:
Eine nur hinsichtlich der erfindungswesentlichen Komponenten dargestellte Grafikkarte 1 weist einen AGP-Controller 2 mit einer AGP-Schnittstelle 3, einen Befehlsdecoder 4 ein Schaltmittel 5 sowie einen PCI-Konnektor 6 für einen PCI-Steckplatz
7 auf, der mit den Leitungen eines PCI-Bus verbunden ist.
Die AGP-Schnittstelle 3 besitzt einen mit der Positionsziffer
8 gekennzeichnet Adress-/Datenanschluß AD16 zur Konfiguration des AGP-Controllers 2 sowie die weiteren nicht einzeln dargestellten Anschlüsse 9 einer modernen AGP-Schnittstelle ohne IDSEL-Anschluß. Der für den PCI-Steckplatz 7 bestimmte, insgesamt mit 6 bezeichnete PCI-Konnektor weist einen IDSEL- Anschluß, einen Adress-/Datenanschluß AD16 sowie die weiteren Anschlüsse eines PCI-Konnektors auf. Von dem IDSEL-Anschluß sowie dem Adress-/Datenanschluß AD16 des PCI-Konnektors 6 sind eine IDSEL-Leitung 11 und eine mit 12 bezeichnete
Adress/Datenleitung AD16 zu dem Schaltmittel 5 geführt. Die übrigen Anschlüsse des PCI-Konnektors 6 sind über nicht einzeln dargestellte Leitungen 13 mit den entsprechenden Anschlüssen 9 der AGP-Schnittstelle 3 durchverbunden.
Die Entschlüsselung von Konfigurationszyklen auf dem PCI-Bus erfolgt mittels des Befehlsdekoders 4, dessen Eingang 15 über Leitungen 14 mit den Anschlüssen des PCI-Konnektors 6 zu den Leitungen C/BE [3::1] und der Leitung Frame* des PCI-Bus ver- bunden ist. Die vier Leitungen 14 sind aus den Leitungen 13 zu den Anschlüssen 9 der AGP-Schnittstelle 3 abgezweigt.
Der Befehlsdecoder weist einen Ausgang 16 zur Steuerung des Schaltmittels 5 zwischen einer ersten Schaltstellung 17 und einer zweiten Schaltstellung 18 auf. Bei Auftreten einer Adressphase eines IDSEL-Konfigurationszyklus am Eingang 15 erzeugt der Befehlsdecoder 4 ein Steuerungssignal an seinem Ausgang 16, welches das Schaltmittel während der Adressphase in die erste Schaltstellung 17 bringt, in der der mit 8 bezeichnete Adress-/Datenanschluß AD16 der AGP-Schnittstelle 3 mit dem IDSEL-Anschluß des PCI-Konnektors über die IDSEL-Lei- tung 11 verbunden ist. Der AGP-Controller 2 reagiert nicht, sofern das IDSEL-Konfigurationssignal auf der Leitung 11 den Zustand "Low" besitzt. Ist der Zustand des IDSEL-Konfigurationssignal indes "Hi" wird der AGP-Controller 2 konfigu- riert.
In Abwesenheit der Adressphase des IDSEL-Konfigurationszyklus am Eingang 15 erzeugt der Befehlsdecoder 4 an seinem Ausgang 16 ein Steuerungssignal, daß das Schaltmittel 5 in die zweite Schaltstellung 18 bringt, in der der mit 8 bezeichnete
Adress-/Datenanschluß AD16 der AGP-Schnittstelle 3 mit dem Adress-/Datenanschluß AD16 des PCI-Konnektors über die mit 12 bezeichnete Adress/Datenleitung AD16 verbunden ist.
Die wahlweise Verbindung zwischen dem mit 8 bezeichneten
Adress-/Datenanschluß AD16 der AGP-Schnittstelle 3 mit dem IDSEL-Anschluß oder mit dem Adress-/Datenanschluß AD16 des PCI-Konnektors 6 ist im dargestellten Ausführungsbeispiel eine galvanische Verbindung, die sich beispielsweise mit ei- nem sogenannten Quick-Switch realisieren läßt. Das ist ein Hochgeschwindigkeits-CMOS-Analogschalter , der gleichzeitig für die Pegelwandlung von 5V nach 3,3V verwendet wird, um den AGP-Controller 2 vor zu hohen Spannungen auf dem PCI-Bus zu schützen .