-
Die
Erfindung betrifft allgemein elektronische Busarchitekturen und
Verbindungen dieser Art und insbesondere das Unterstützen schneller
Schreibtransaktionen mit einer Accelerated Graphics Port (AGP)-Steuereinheit.
-
In
dem Maße,
wie Computer und andere elektronische Geräte zunehmend schwierigere Aufgaben
bewältigen
müssen,
werden an diese Geräte immer
höhere
Leistungsanforderungen gestellt. Besondere Bedeutung kommt bei vielen
Geräten
beispielsweise der Kommunikationsgeschwindigkeit oder "Bandbreite" zwischen miteinander
verbundenen Geräten
zu, da die Geschwindigkeit, mit der Informationen zwischen solchen
Geräten übertragen werden,
einen erheblichen Einfluss auf die Gesamtleistung eines elektronischen
Systems haben kann.
-
Im
Lauf der Jahre sind eine Anzahl unterschiedlicher Verbindungsstandards
entwickelt worden, um die stetig anspruchsvoller werdenden Kommunikationsanforderungen
an Computer und andere elektronische Geräte zu unterstützen. Zum
Beispiel wurde der Peripheral Component Interconnect (PCI)-Standard
entwickelt, um externe Geräte
mit der zentralen Verarbeitungseinheit (Central Processing Unit – CPU) eines
Computers zu verbinden. PCI-Verbindungen oder Busse sind mit einer
CPU über
eine Brücke
zum lokalen Bus für
die CPU verbunden, und PCI-kompatible Geräte wie zum Beispiel Audioprozessoren,
Speichersteuereinheiten, Grafiksteuereinheiten, Netzwerkadapter
usw. sind mit dem Bus verbunden.
-
Obgleich
der PCI-Standard eine deutliche Verbesserung gegenüber früheren Technologien
darstellte, und trotz der Tatsache, dass der PCI-Standard überarbeitet
wurde, um eine größere Bandbreitenkapazität zu unterstützen, haben
die zunehmenden Eingabe/Ausgabe-Anforderungen moderner Computer
die Entwicklung weiterer Verbindungstechnologien erforderlich gemacht.
-
Zum
Beispiel ist der Accelerated Graphics Port (AGP)-Standard als eine
Erweiterung des PCI-Standard entwickelt worden, um eine eigenständige Hochgeschwindigkeitsverbindung
zum Übertragen
von Grafikdaten zwischen einem Grafikbeschleuni ger oder einer Grafiksteuereinheit
(die als ein AGP-kompatibles Gerät
fungiert) und einem Systemspeicher ohne Eingreifen der CPU bereitzustellen.
Viele Grafikanwendungen, insbesondere 3D-Anwendungen, haben relativ
hohe Speicherbandbreitenanforderungen, und eine AGP-kompatible Verbindung
oder ein AGP-kompatibler Bus unterstützt die Beschleunigung der Übertragung
von Grafikdaten bei solchen speicherintensiven Anwendungen.
-
Zur
Unterstützung
des PCI- und des AGP-Standards verwendet ein Computer allgemein einen
Chipsatz, auch als Kernlogik bekannt, um die Schnittstelle zwischen
der CPU, dem Systemspeicher, dem AGP-Bus und dem PCI-Bus zu bilden.
Zur Verbindung mit einem AGP-Bus enthält die Kernlogik eine AGP-Steuereinheit,
die sowohl AGP- und PCI- Transaktionen handhaben muss. Ein AGP-Master (zum
Beispiel eine Grafik-Steuereinheit) kann Daten zu einem Systemspeicher
entweder mittels AGP- oder PCI-Transaktionen übertragen, während eine CPU
auf einen AGP-Master mittels lediglich PCI-Transaktionen zugreifen
kann, wobei der AGP-Master auch als ein PCI-Ziel arbeiten kann.
-
Weil
ein AGP-Bus eine eigenständige
Direktverbindung ist, ist die CPU in der Regel nicht an Datenübertragungen
zwischen einem AGP-kompatiblen Gerät und einem Systemspeicher
beteiligt. Infolge dessen können
in vielen Fällen
PCI-Operationen sowie CPU-Zugriffe auf den Speicher parallel mit AGP-Operationen
stattfinden.
-
Viele
Grafikoperationen erfordern allerdings immer noch eine CPU-Beteiligung,
und daher gestattet es die ursprüngliche
Schnittstellenspezifikation für den
AGP-Standard, Revision
1.0, einer CPU, Daten in ein AGP-kompatibles Gerät mittels eines Zweischrittverfahrens
zu schreiben. Im Wesentlichen muss eine CPU Daten in den Systemspeicher
schreiben und dann (über
eine PCI-Transaktion) anweisen, dass ein AGP-kompatibles Gerät die Daten
aus dem Systemspeicher liest.
-
Seit
der Revision 2.0 jedoch unterstützt
die AGP-Spezifikation das Konzept einer schnellen Schreibtransaktion.
Bei einer schnellen Schreibtransaktion werden Daten direkt aus der
CPU zu einem AGP-kompatiblen Gerät übertragen,
anstatt die Daten in einen Systemspeicher schreiben und anschließend aus
dem Systemspeicher auslesen zu müssen. Revision
2.0 der AGP-Spezifikation unterstützt schnelle Schreibtransaktionen mit
der zweifachen und vierfachen Geschwindigkeit (d. h. dem Zwei- oder
Vierfachen der Taktfrequenz des AGP-Busses).
-
Normale
PCI-Schreibtransaktionen finden mit einfacher Geschwindigkeit statt
und folgen PCI-Kohärenz-
und -Ordnungsregeln. Für
schnelle AGP-Schreibtransaktionen jedoch wird eine Kombination aus
PCI- und AGP-Busprotokollen verwendet, wobei eine PCI-Transaktion
verwendet wird, um die Transaktion einzuleiten, und der Datenfluss
allgemein auf der Grundlage eines AGP-Protokolls stattfindet. Somit
muss die Schnittstelle zu einem AGP-Bus (oft als eine AGP-Steuereinheit
bezeichnet) für
ein Kernlogik-Design in der Regel sowohl PCI- als auch AGP-Transaktions-Handhabungsschaltkreise
enthalten.
-
Das
Implementieren einer AGP-Schnellschreibunterstützung in einer AGP-Steuereinheit eines
Kernlogik-Designs kann jedoch problematisch sein, insbesondere wenn
versucht wird, ein früheres Kernlogik-Design
umzuarbeiten. Insbesondere haben in dem Maße, wie integrierte Schaltkreise
zunehmend komplexer geworden sind, auch die Entwicklungszeit und
die Entwicklungskosten in Verbindung mit dem Konstruieren und Testen
integrierter Schaltkreis-Designs zugenommen. Wo immer möglich, wird ein
modulares "Baustein"-Konzept verwendet,
wobei ein Design aus früher
entwickelten und getesteten Schaltkreisblöcken aufgebaut wird. Wenn ein
Design aus bereits vorhandenen Bausteinen zusammengesetzt wird,
so wird oft die Anzahl der Spezialschalkreise, die entwickelt werden
müssen,
verringert, wodurch sich auch der Testumfang verringert, der erforderlich
ist, um zu verifizieren, dass ein Design ordnungsgemäß funktioniert.
-
Die
Unterstützung
einer vollen AGP-2.0-Schnellschreibfunktionalität in einem AGP-kompatiblen
Kernlogik-Design (zum Beispiel zum Unterstützen schneller AGP-Schreibtransaktionen
mit zweifacher, vierfacher oder "vervielfachter" Geschwindigkeit)
hat jedoch herkömmlicherweise
einen erheblichen Aufwand an Spezialdesign erfordert, da frühere Kernlogik-Schaltkreisblöcke als
nicht sonderlich wiederverwendbar befunden wurden. Als ein Beispiel
würde ein
Schaltkreisblock, der als ein PCI-Ziel oder -Master fungiert, in
der Regel die Hinzufügung
von Schaltungen erfordern, die einen Datenfluss mit zweifacher und
vierfacher Geschwindigkeit handhaben, um in der Implementierung
einer AGP-2.0-Steuereinheit nützlich
zu sein. Das Hinzufügen
einer solchen Funktionalität
wäre zeitaufwändig und
teuer und würde überdies
die Übertragbarkeit des
Designs zur Verwendung in anderen Anwendungen, zum Beispiel als
ein standardmäßiger PCI-Block,
mindern. Weil die AGP-Logik überdies äußere Hochfrequenz-Warteschleifenschaltungen
mit Zweifach- oder Vierfach-Geschwindigkeit erfordert, würde die
Implementierung von Schnellschreibfunktionalität in einem PCI-Schaltkreisblock
zusätzliche Datenpfade
zu dem extrem zeitablaufkritischen Hochfrequenz-Datenpfad hinzufügen.
-
Als
ein weiteres Beispiel unterstützt
die AGP-2.0-Spezifikation das Konzept der Mehrblockübertragungen über geschwindigkeitsvervielfachte schnelle
Schreibtransaktionen. Ein Block meint in diesem Zusammenhang die
Menge an Daten, die in vier Taktzyklen (in der Regel 32 Bytes mit
zweifacher Geschwindigkeit und 64 Bytes mit vierfacher Geschwindigkeit) übertragen
werden können.
Bei einer geschwindigkeitsvervielfachten schnellen Mehrblock-AGP-Schreibübertragung
erfolgt eine Drosselung blockweise, was anderen AGP-Transaktionen ähnelt, sich
aber wesentlich von PCI-Transaktionen unterscheidet.
Das Implementieren der Unterstützung
für Mehrblockübertragungen
in einem vollständig
kompatiblen AGP-2.0-Kernlogik-Design erfordert darum, dass die PCI-Handhabungsschaltungen
in einer AGP-Steuereinheit in der Lage sind, eine Mehrblocktransaktion
zu drosseln. Darüber
hinaus müssen,
wenn Mehrblockübertragungen
zugelassen sind, verschiedene Ausnahmesituationen gehandhabt werden,
zum Beispiel Abbruchbedingungen, Trennbedingungen usw. Diese zusätzliche
Funktionalität
erhöht
die Komplexität
der Schaltungen der AGP-Steuereinheit und erhöht somit die Entwicklungszeit
und die Entwicklungskosten und mindert die Übertragbarkeit des Designs,
weil frühere
Designs nicht wiederverwendet werden können.
-
Darum
besteht auf diesem technischen Gebiet ein erheblicher Bedarf an
einem Design einer AGP-Steuereinheit, das eine Schnellschreibfunktionalität mit deutlich
weniger Komplexität
und Aufwand unterstützt,
als bisher erforderlich war.
-
Die
Erfindung widmet sich diesem und weiteren Problemen, mit denen der
Stand der Technik behaftet ist, indem sie gemäß einem Aspekt einen Schaltungsaufbau
und ein Verfahren bereitstellt, wobei der Datenpfad, der während der
Verarbeitung von mit vervielfachter (zum Beispiel zweifacher oder
vierfacher) Geschwindigkeit ablaufen den schnellen AGP-Schreibtransaktionen
verwendet wird, innerhalb eines Schaltkreisblocks außerhalb
des PCI-Schaltkreisblocks implementiert ist, der herkömmlicherweise
zur Handhabung der Adressphasen solcher Transaktionen verwendet
wird. Anstatt den Datenpfad innerhalb des PCI-Schaltkreisblocks zu
implementieren, wird ein Steuerpfad zwischen dem PCI-Schaltkreisblock
und dem anderen Schaltkreisblock definiert, um es dem PCI-Schaltkreisblock zu
ermöglichen,
die Datenphase der geschwindigkeitsvervielfachten schnellen AGP-Schreibtransaktion
in dem anderen Schaltkreisblock einzuleiten, nachdem die Adressphase
der Transaktion in dem PCI-Schaltkreisblock eingeleitet wurde.
-
Durch
das Aufteilen der AGP-Schnellschreibfunktionalität in dieser Weise wird das
Design des PCI-Schaltkreisblocks wesentlich vereinfacht und ermöglicht es
oft, schon vorhandene standardisierte PCI-Schaltkreisblockdesigns
in einer AGP-Anwendung mit wenigen Modifikationen wiederzuverwenden.
Infolge dessen kann sich ein PCI-Schaltkreisblockdesign, das gemäß der Erfindung
aufgebaut ist, wesentlich mehr zur Übertragung anbieten als herkömmliche
Designs. Darüber
hinaus wird ein zusätzlicher
Pfad von dem PCI-Schaltkreisblock zu den oft zeitablaufkritischen
Hochfrequenzbereichsschaltungen, die an anderer Stelle in einem
Design einer AGP-Steuereinheit verwendet werden, vermieden.
-
Die
Erfindung widmet sich weiteren Problemen, indem sie – gemäß einem
weiteren Aspekt – einen
Schaltungsaufbau und ein Verfahren bereitstellt, wobei eine Logikschaltung,
die zum Erzeugen schneller AGP-Schreibtransaktionen verwendet wird, dafür konfiguriert
ist, nur geschwindigkeitsvervielfachte schnelle Einzelblock-AGP-Schreibtransaktionen
zu unterstützen;
das heißt,
die Logikschaltung ist nicht in der Lage, geschwindigkeitsvervielfachte schnelle
Mehrblock-AGP-Schreibtransaktionen zu erzeugen. Dadurch laufen die
vielfältigen
Transaktionen auf einem AGP-Bus oft gleichmäßiger ab, da es weniger wahrscheinlich
ist, dass andere Transaktionen, wie zum Beispiel AGP-Lesevorgänge, AGP-Schreibvorgänge und
PCI-Transaktionen, durch ausgedehnte geschwindigkeitsvervielfachte schnelle
Mehrblock-AGP-Schreibtransaktionen verzögert werden. Darüber hinaus
werden die Logikschaltungen, welche die schnellen AGP-Schreibtransaktionen
implementieren, wesentlich vereinfacht, sind aber immer noch zu höherer Geschwindigkeit
befähigt
als herkömmliche
PCI-Schreibtransaktionen. Die Eliminierung von Mehrblockübertragungen beseitigt
insbesondere oft die Notwendigkeit, verschiedene Abbruchbedingungen
beobachten zu müssen,
wodurch die Anzahl der Gatter, die zur Implementierung einer AGP-Schnellschreibfunktionalität benötigt werden,
verringert wird. Darüber
hinaus lässt
sich oft die Implementierung einer Nur-Einzelblock-Funktionalität leichter übertragen
als herkömmliche
Designs, da vorhandene Designs wesentlich weniger Modifikationen
verlangen, als wenn auch Mehrblocktransaktionen unterstützt werden
würden.
-
Diese
und weitere Vorteile und Merkmale, welche die Erfindung kennzeichnen,
sind in den Ansprüchen
dargelegt, die dem vorliegenden Text angehängt sind und einen weiteren
Teil des vorliegenden Textes bilden. Um aber die Erfindung und die
Vorteile und Aufgaben, die durch ihre Verwendung realisiert werden,
besser zu verstehen, sollten auch die Zeichnungen und die begleitende
Beschreibung studiert werden, worin Ausführungsbeispiele der Erfindung beschrieben
sind.
-
1 ist
ein Blockschaubild einer Vorrichtung, die eine Kernlogik enthält, die
eine AGP-Steuereinheit mit Schnellschreibfunktionalität gemäß der Erfindung
beinhaltet.
-
2 ist
ein Blockschaubild, das die primären
AGP-Pfade in der Kernlogik von 1 veranschaulicht.
-
3 ist
ein Blockschaubild der AGP-Steuereinheit von 1 und 2.
-
4 ist
ein Ablaufdiagramm, das ein beispielhaftes Aufdrücken von Steuersignalen zwischen den
PCI- und AGP-Bausteinen während
einer schnellen Schreibübertragung
mittels der AGP-Steuereinheit von 3 veranschaulicht.
-
5 ist
ein Ablaufdiagramm, das eine beispielhafte schnelle Einzelblock-Schreibtransaktion mittels
der AGP-Steuereinheit von 3 veranschaulicht.
-
Wenden
wir uns den Zeichnungen zu, in denen gleiche Bezugszahlen in den
verschiedenen Ansichten gleiche Teile bezeichnen. 1 veranschaulicht
eine Vorrichtung 10, die einen Chipsatz oder eine Kernlogik 12 enthält, um eine
zentrale Verarbeitungseinheit (CPU) 14, wie zum Beispiel
einen Mikroprozessor, mit einem Systemspeicher, einer Grafik-Steuereinheit 18 und
einem PCI-Bus 20 zu verbinden. Die Vorrich tung 10 kann
zum Beispiel ein Personalcomputer sein, wie zum Beispiel ein PC
oder ein Macintosh-Computer, obgleich auch andere Formen von Computer,
zum Beispiel handgehaltene Computer, Mehrnutzercomputer, Server,
Großrechner,
tragbare Computer sowie weitere Formen von elektronischen Geräten, als
Geräte
betrachtet werden können,
die sich für
die Erfindung anbieten.
-
Die
Kernlogik 12, die oft als eine "Nordbrücke" bezeichnet wird, enthält in der
Regel eine CPU-Schnittstelle 22, die eine Kommunikation
mit der CPU 14 über
einen CPU-Bus 24 ermöglicht,
sowie eine Speicherschnittstelle 26, die eine Kommunikation
mit dem Systemspeicher 16 über einen Speicherbus 28 ermöglicht.
Eine AGP-Steuereinheit 30 verbindet
die Kernlogik mit der Grafik-Steuereinheit 18 über einen
AGP-Bus 32. Die Grafik-Steuereinheit 18 ist in
der Regel mit einem eigenständigen Videospeicher 34 verbunden
und dient zum Ansteuern einer Anzeige 36, wie zum Beispiel
einer KSR, eines LCD-Feldes oder einer sonstigen Anzeige. Darüber hinaus
ist die Kernlogik 12 auch dafür konfiguriert, eine Schnittstelle
zum PCI-Bus 20 (nicht gesondert gezeigt) bereitzustellen,
um eine Kommunikation mit mehreren zugreifbaren E/A-Geräten 40,
zum Beispiel einer Audiokarte 42 oder einer Speicherkomponente 44,
unter anderen bekannten Arten von PCI-Komponenten zu ermöglichen.
-
Es
versteht sich, dass die Bedeutung des Begriffes "Vorrichtung" verschiedene Datenverarbeitungssysteme
wie zum Beispiel Computer und andere elektronische Geräte sowie
verschiedene Komponenten innerhalb solcher Systeme umfasst, einschließlich einzelner
integrierter Schaltkreiskomponenten oder Kombinationen davon. Darüber hinaus können innerhalb
einer Vorrichtung eine oder mehrere Schaltungsanordnungen enthalten
sein, die in der Regel in einem oder in mehreren integrierten Schaltkreiskomponenten
implementiert sind und optional zusätzliche diskrete Komponenten
enthalten, die mit ihnen verbunden sind. Es versteht sich des Weiteren, dass
Schaltungsanordnungen in der Regel mindestens teilweise unter Verwendung
einer oder mehrerer Computerdateien entwickelt und hergestellt werden, die
im vorliegenden Text als Hardwaredefinitionsprogramme bezeichnet
werden und die das Layout der Schaltungsanordnungen in integrierten
Schaltkreiskomponenten definieren. Die Programme werden in der Regel
in einer bekannten Weise mit Hilfe eines Entwicklungswerkzeugs herge stellt
und werden anschließend
während
der Fertigung verwendet, um die Layout-Masken herzustellen, welche die Schaltungsanordnungen
definieren, die auf einen Halbleiterwafer aufgebracht werden. In
der Regel werden die Programme in einem vorgegebenen Format unter
Verwendung einer Hardwaredefinitionssprache (Hardware Definition
Language – HDL)
wie zum Beispiel VHDL, Verilog, EDIF usw. geliefert. Das heißt, obgleich
die Erfindung bisher und im Weiteren im Zusammenhang mit Schaltungsanordnungen
beschrieben wurde bzw. beschrieben wird, die in voll funktionstüchtigen
integrierten Schaltkreiskomponenten implementiert sind, ist dem
Fachmann klar, dass Schaltungsanordnungen gemäß der Erfindung in vielfältiger Weise
als Programmprodukte vertrieben werden können und dass die Erfindung
unabhängig von
der speziellen Art des Signalträgermediums,
das für
den eigentlichen Vertrieb verwendet wird, gleichermaßen Anwendung
findet. Zu Beispielen von Signalträgermedien gehören, ohne
darauf beschränkt zu
sein, beschreibbare Medien wie zum Beispiel unter anderem flüchtige und
nicht-flüchtige
Speicherbausteine, Disketten, Festplattenlaufwerke, CD-ROMs und DVDs und Übertragungsmedien
wie zum Beispiel digitale und analoge Kommunikationsverbindungen.
-
Implementierung eines mit zweifacher oder
vierfacher Geschwindigkeit arbeitenden AGP-Schnellschreibdatenpfades
in einem AGP-Block
-
Eine
Verbesserung an herkömmlichen
Designs von AGP-Steuereinheiten beinhaltet die Implementierung des
geschwindigkeitsvervielfachten AGP-Schnellschreibdatenpfades in
einem AGP-Schaltkreisblock anstelle eines PCI-Schaltkreisblocks,
wie es der Fall wäre,
wenn der geschwindigkeitsvervielfachte AGP-Schnellschreibdatenpfad
im selben Schaltkreisblock implementiert wäre wie die Adress- und die
nicht-geschwindigkeitsvervielfachten Datenpfade. Insbesondere, wie
oben besprochen, mindert die Implementierung eines geschwindigkeitsvervielfachten
AGP-Schnellschreibdatenpfades in einem AGP-Schaltkreisblock wesentlich den
Anpassungsaufwand, der für
einen standardmäßigen PCI-Schaltkreisblock
erforderlich ist, wodurch ein PCI-Schaltkreisblock, der sich zur Verwendung
in einem Kernlogik-Design gemäß der Erfindung
eignet, weniger komplex, einfacher übertragbar und besser zur Verwendung
in anderen Anwendungen geeignet ist, zum Beispiel in AGP-fremden
Anwendungen wie zum Beispiel PCI-Brückenschaltungen, PCI-Schnittstellensteuereinheiten
in Nordbrücken,
PCI-Schnittstellensteuereinheiten für eingebettete PCI-Busse usw.
Ein weiterer Vorteil ist eine Senkung der Anzahl der Datenpfade
zu extrem zeitablaufkritischen äußeren, mit
zweifacher oder vierfacher Geschwindigkeit arbeitende Übertragungswarteschleifenschaltungen.
-
Wie
dem Fachmann allgemein bekannt ist, meint ein "Schaltkreisblock" allgemein eine Komponente eines Schaltungsaufbaus,
die als eine separate logische Entität entwickelt, getestet und
validiert wurde, in der Regel zu dem Zweck, die Wiederverwendbarkeit
der Komponente in mehreren Designs zu fördern. Das Design eines integrierten
Schaltkreises unter Verwendung von Schaltkreisblöcken vollzieht sich allgemein
in der Weise, dass man mehrere Schaltkreisblöcke im größtmöglichen Umfang zusammensetzt
und dann eine "Zusammenhaltelogik" entwickelt, die
erforderlich ist, um die Schaltkreisblöcke zu einem betriebstüchtigen
Design miteinander zu verbinden. Durch Verwenden eines Zusammenbaus
schon vorhandener Schaltkreisblöcke
können die
Entwicklungskosten und die Entwicklungszeit wesentlich verringert
werden, da ein Entwickler oft nur minimale zweckspezifische Schaltungen
entwickeln muss, um die schon vorhandenen Blöcke zu verbinden, anstatt die
Funktionalität
aller Blöcke
von Anfang an neu entwickeln zu müssen. Ein Schaltungsentwickler
kann sich oft auch auf die früheren
Validierungen und Tests stützen,
die an schon vorhandenen Blöcken
vorgenommen wurden, um nicht mehr alle internen Aspekte jedes einzelnen
Schaltkreisblocks in einem Design testen zu müssen.
-
Die
Aufteilung von Schaltkreisfunktionalität zwischen Schaltkreisblöcken ist
nicht willkürlich,
und somit basiert das Design einer AGP-Steuereinheit, bei der sich
der geschwindigkeitsvervielfachte Datenpfad zur Verwendung bei der
Verarbeitung von geschwindigkeitsvervielfachten schnellen AGP-Schreibtransaktionen
in einem anderen Schaltkreisblock befindet als dem, der die Adressphasen solcher
Transaktionen implementiert, nicht auf einer willkürlichen
Abgrenzung zwischen Schaltkreiskomponenten. Vielmehr ist – von einer
konzeptuellen Ebene aus betrachtet – das, was einem bestimmten Schaltkreisblock
zugeordnet ist, in der Regel durch die gesamten Design-, Test- und
Validierungsprozesse hindurch klar abgegrenzt.
-
Darüber hinaus
werden im Hinblick auf das Konzept einer geschwindigkeitsvervielfachten schnellen
AGP-Schreibtransaktion im Rahmen der Revision 2.0 der AGP-Spezifikation
geschwindigkeitsvervielfachte Transaktionen mit zweifacher und vierfacher
Geschwindigkeit unterstützt.
Es wird jedoch in Betracht gezogen, dass künftige Revisionen der AGP-Spezifikation
auch andere geschwindigkeitsvervielfachte Transaktionen definieren
können, die
dafür geeignet
sind, in einer erfindungsgemäßen Weise
gehandhabt zu werden. Darum ist die Erfindung nicht allein auf Anwendungen
beschränkt,
die auf der Revision 2.0 der AGP-Spezifikation basieren.
-
2 veranschaulicht
die hauptsächlichen Adress-
und Datenpfade in Verbindung mit AGP-Transaktionen zwischen der
CPU-Schnittstelle 22, der Speicherschnittstelle 26 und
der AGP-Steuereinheit 30 der Kernlogik 12. Die
AGP-Steuereinheit 30 in der veranschaulichten Implementierung
besteht aus einem PCI-Schaltkreisblock 50 und einem AGP-Schaltkreisblock 52,
die PCI- bzw. AGP-Signalprotokolle handhaben, die sich auf ein AGP-kompatibles
Gerät beziehen,
das über
den AGP-Bus 32 angeschlossen ist.
-
Gemäß der AGP-Spezifikation
Revision 2.0 verläuft
ein Adresspfad 54 von der CPU-Schnittstelle 22 zum
PCI-Schaltkreisblock 50, und ein Datenpfad 56 ist
zwischen der CPU-Schnittstelle 22 und dem PCI-Schaltkreisblock 50 definiert,
um die Einleitung von PCI-Transaktionen durch die CPU in der AGP-Steuereinheit
zu ermöglichen.
Darüber
hinaus verläuft
ein Adresspfad 58 von dem PCI-Schaltkreisblock 50 zu
jeder CPU-Schnittstelle 22 und Speicherschnittstelle 26,
und ein Datenpfad 60 verläuft zwischen dem PCI-Schaltkreisblock 50 und
der Speicherschnittstelle 26, damit der PCI-Schaltkreisblock 50 PCI-Transaktionen
an jeder CPU-Schnittstelle 22 und Speicherschnittstelle 26 einleiten
kann. Des Weiteren verläuft,
um AGP-Transaktionen zu handhaben, die durch den AGP-Schaltkreisblock 52 eingeleitet
wurden, ein Adresspfad 62 und ein Datenpfad 64 zwischen
dem AGP-Schaltkreisblock 52 und der Speicherschnittstelle 26.
Jeder Datenpfad 56, 60 und 64 kann unter
Verwendung eines bidirektionalen Pfades oder unter Verwendung eines
Paares unidirektionaler Pfade implementiert werden.
-
Um
die Implementierung eines geschwindigkeitsvervielfachten AGP-Schnellschreibdatenpfades in
einer erfindungsgemäßen Weise
zu unterstützen, ist
ein zusätzlicher
Datenpfad 66, der von der CPU-Schnittstelle 22 zum AGP-Schaltkreisblock 52 verläuft, zusätzlich zu
den oben erwähnten
Adress- und Datenpfaden, die durch die AGP-Spezifikation definiert
werden, bereitgestellt. Über
diesen Datenpfad (der unidirektional ist, aber in anderen Implementierungen
bidirektional sein kann) werden geschwindigkeitsvervielfachte (zum
Beispiel mit zweifacher oder vierfacher Geschwindigkeit fließende) AGP-Schnellschreibdaten
in den AGP-Schaltkreisblock geschrieben, um eine geschwindigkeitsvervielfachte
schnelle AGP-Schreibtransaktion auszuführen.
-
Als
nächstes
veranschaulicht 3 die AGP-Steuereinheit 30 in
größerem Detail
und veranschaulicht insbesondere die Adress- und Datenpfade oder
-wege, die innerhalb jedes Schaltkreisblocks 50 und 52 definiert
sind, sowie die Zustandsmaschinen, die zum Verwalten der Transaktionen
verwendet werden, die durch jeden Schaltkreisblock verarbeitet werden.
-
Insbesondere,
wie in 3 gezeigt, werden AGP-Transaktionen über einen
AGP-Adresspfad 70 und mehrere AGP-Datenpfade 72-78 verarbeitet, über die
Adress- und Dateninformationen
zwischen der Grafik-Steuereinheit (über den AGP-Bus) und dem Systemspeicher übermittelt
werden. Gemäß der Revision
2.0 der AGP-Spezifikation werden separate Datenpfade 72, 74, 76 und 78 für Daten
mit hoher Lesepriorität
(High Priority Read – HPR),
Daten mit niedriger Lesepriorität
(Low Priority Read – LPR),
Daten mit hoher Schreibpriorität
(High Priority Write – HPW)
und Daten mit niedriger Schreibpriorität (Low Priority Write – LPW) definiert.
-
Wie
ebenfalls durch die AGP-Spezifikation definiert, führen die
Datenpfade 72 und 74 aufgrund der Tatsache, dass
Lesedaten mit zweifacher oder vierfacher Geschwindigkeit verarbeitet
werden können,
in eine äußere Übertragungswarteschleife (AGP-Zweifachgeschwindigkeitslogik 80),
die innerhalb eines Hochfrequenzbereichsabschnitts 82 des Designs
der AGP-Steuereinheit definiert ist. Das Ausgangssignal der Schaltung 80 wird
in einen Multiplexer 84 zur Verbindung mit dem AGP-Bus
eingespeist.
-
Im
Hinblick auf PCI-Transaktionen, wie zum Beispiel schnelle AGP-Schreibtransaktionen,
ist ein PCI-Adresspfad 86 innerhalb des PCI-Schaltkreisblocks 50 definiert,
wobei das Ausgangssignal des Adresspfades 86 in einen Eingang
eines Multiplexers 88 eingespeist wird, der an einen anderen
Eingang des Multiplexers 84 ausgibt. Um die im vorliegenden Text
beschriebene Handhabung der AGP-Schnellschreibdaten gemäß der Erfindung
zu implementieren, werden jedoch nicht alle Schreibdaten durch den Schaltkreisblock 50 geleitet,
sondern es sind separate Datenpfade 90, 92 für nicht-geschwindigkeitsvervielfachte
(zum Beispiel mit einfacher Geschwindigkeit fließende) PCI-Daten und für geschwindigkeitsvervielfachte
(zum Beispiel mit zweifacher oder vierfacher Geschwindigkeit fließende) PCI-Daten,
wie zum Beispiel geschwindigkeitsvervielfachte AGP-Schnellschreibdaten,
definiert. Darüber
hinaus sind diese separaten Datenpfade 90, 92 in
den Schaltkreisblöcken 50 bzw. 52 implementiert.
Das Ausgangssignal vom Datenpfad 90 wird in einen anderen
Eingang des Multiplexers 88 eingespeist, während das
Ausgangssignal vom Datenpfad 92 in die Schaltung 80 in
dem Hochfrequenzbereich 82 des Schaltungsaufbaus eingespeist
wird.
-
Da
PCI-Schreibdaten im Rahmen der AGP-Spezifikation in der gleichen
Weise gehandhabt werden wie alle PCI-Daten, versteht es sich, dass
die Implementierung des PCI-Adresspfades und des mit einfacher Geschwindigkeit
arbeitenden Datenpfades 86, 90 innerhalb des Schaltkreisblocks 50 im
Wesentlichen vom gleichen Design ist, wie es für einen standardmäßigen PCI-Schaltkreisblock
benötigt wird.
Darüber
hinaus ist, da PCI-Schreibtransaktionen über den AGP-Bus im Wesentlichen
dem PCI-Protokoll
folgen, eine PCI-Zustandsmaschine 94, die innerhalb des
Schaltkreisblocks 50 implementiert ist, ebenfalls im Wesentlichen
die gleiche wie für eine
AGP-fremde Implementierung.
-
In
der Regel bestehen die einzigen Modifikationen an einem standardisierten
PCI-Schaltkreisblockdesign, die möglicherweise an dem Schaltkreisblock 50 vorgenommen
werden müssen,
wenn eine AGP-Implementierung ausgeführt werden soll, in der Hinzufügung eines
Steuerpfades 96 zwischen der PCI-Zustandsmaschine 94 und
einer AGP-Zustandsmaschine 98, die innerhalb des Schaltkreisblocks 52 implementiert
ist. Der zusätzliche
Steuerpfad ermöglicht
es den PCI- und AGP-Zustandsmaschinen, während einer geschwindigkeitsvervielfachten schnellen
AGP-Schreibtransaktion zu kommunizieren, um die Datenphase der Transaktion
im Anschluss an die Einleitung der Adressphase durch den PCI-Schaltkreisblock
zu koordinieren.
-
Obgleich
auch andere Arten von Steuersignalen zwischen den Zustandsmaschinen 94, 98 übermittelt
werden können,
um den Ablauf einer schnellen AGP-Schreibtransaktion in der AGP-Steuereinheit 30 zu
koordinieren, veranschaulicht 4 einen
beispielhaften Satz Steuersignale, der ein Adresse-gültig-Signal
(ADDR VALID), ein Übertragungsgröße-Signal
(XFER SIZE) und ein Daten-Ende-Signal (DATA END) enthält, die
dafür verwendet werden,
die Operationen zwischen den Schaltkreisblöcken 50 und 52 zu
koordinieren. 4 zum Beispiel zeigt den Zustand
des AGP-Adress/Datenbusses
(AGP-AD BUS) während
der Ausführung
einer zweifach geschwindigkeitsvervielfachten schnellen AGP-Schreibtransaktion,
wobei während
eines ersten Taktes Adressierungsinformationen durch den PCI-Schaltkreisblock 50 in
den AGP-Bus eingespeist werden. Gleichzeitig mit dem Einspeisen
der Adresse in den Bus drückt
der Schaltkreisblock 50 das ADDR VALID-Signal auf, um den
Schaltkreisblock 52 zu informieren, dass die Datenphase
der schnellen AGP-Schreibtransaktion beim nächsten Taktzyklus eingeleitet
werden kann. Gleichzeitig mit dem Aufdrücken dieses Signals wird die
Menge an Daten, die durch die Transaktion übertragen wird, auf das XFER SIZE-Signal
aufgedrückt.
Somit ist die AGP-Zustandsmaschine im Anschluss an den ersten Taktzyklus
bereit, geschwindigkeitsvervielfachte schnelle Schreibdaten in den
AGP-Bus (durch die Daten D1-D8 dargestellt) einzuspeisen. Das DATA
END-Signal, das
in einigen Implementierungen möglicherweise
nicht benötigt
wird, kann durch die AGP-Zustandsmaschine während des letzten Taktzyklus' der Datenphase aufgedrückt werden,
um die PCI-Zustandsmaschine zu informieren, dass die Datenphase
der Transaktion vollendet ist.
-
Es
versteht sich, dass die Implementierung der Zustandsmaschinen 94 und 98 zum
Koordinieren der Leistung einer geschwindigkeitsvervielfachten schnellen
AGP-Schreibtransaktion
in der im vorliegenden Text beschriebenen (und in 4 gezeigten) Weise
für einen
Durchschnittsfachmann, der in den Genuss der vorliegenden Offenbarung
kommt, problemlos auszuführen
wäre.
-
Somit
würde sich
eine geschwindigkeitsvervielfachte schnelle AGP-Schreibtransaktion, die unter der Koordination
der Schaltkreisblöcke 50, 52 ausgeführt wird,
in einer im Wesentlichen standardmäßigen Weise für solche
schnellen Schreibtransaktionen vollziehen. Genauer gesagt, würde die
CPU einen Schreibvorgang anfordern, wenn die Adresse verfügbar ist
und die PCI-Ordnungsregeln die Transaktion zulassen. Die Daten würden nach
der Adressphase zu dem AGP-Block übertragen werden. Als nächstes würde die
PCI-Zustandsmaschine die Anforderung an den Busverwalter weiterleiten,
und sobald der Busverwalter den Bus für die PCI-(Schreib-) Anforderung
freigibt, würde
der PCI-Schaltkreisblock die Adresse für die Dauer eines Taktes in
den AGP-Bus einspeisen. Im selben Takt würden FRAME# und IRDY# durch
die AGP-Zustandsmaschine aufgedrückt
werden, wie in der AGP-Spezifikation beschrieben. Im nächsten Taktzyklus
würde die AGP-Zustandsmaschine
die Daten übertragen
und die Auftastsignale in einer dem Fachmann allgemein bekannten
Weise koordinieren. Es versteht sich, dass FRAME# entweder durch
den PCI- oder den AGP-Schaltkreisblock
während
der Adressphase aufgedrückt
werden kann.
-
Es
ist somit zu sehen, dass das Aufteilen der Funktionalität für geschwindigkeitsvervielfachte schnelle
AGP-Schreibtransaktionen zwischen den Schaltkreisblöcken 50 und 52 den
PCI-Schaltkreisblock als ein stärker
standardisiertes und übertragbares
Design belässt.
In der Regel kann eine standardmäßige Implementierung
des PCI-Schaltkreisblocks zur
Verwendung in AGP-fremden Anwendungen so konfiguriert werden, dass
sie, wie oben beschrieben, mit einigen wenigen Modifikationen mit
einer AGP-Implementierung funktioniert, die schnelle Schreibtransaktionen
unterstützt.
Darüber
hinaus wird ein zusätzlicher
Pfad zu der zeitablaufkritischen äußeren Übertragungswarteschleife vermieden,
wodurch die Komplexität
des PCI-Blockdesigns vermindert wird und vermieden wird, dass das
PCI-Blockdesign eine zweifache oder vierfache Geschwindigkeit erkennen
können
muss.
-
Implementierung ausschließlich von
geschwindigkeitsvervielfachten schnellen Einzelblock-Schreibtransaktionen
-
Der
oben erwähnte
AGP-Schaltkreisblock 52 kann dafür verwendet werden, das komplette Schnellschreibprotokoll
zu implementieren, das durch die Revision 2.0 der AGP-Spezifikation
unterstützt
wird. In der Alternative kann es wünschenswert sein, nur einen
Teil des Schnellschreibprotokolls im Schaltkreisblock 52 zu
unterstützen,
um die Auswirkungen auf schon vorhandene AGP-Schaltungsaufbauten
zu minimieren. Wie dem Fachmann allgemein bekannt ist, führt die
Revision 2.0 der AGP-Spezifikation einen PCI-Datenpfad von der CPU
zu einem AGP-kompatiblen Gerät
mit zweifacher oder vierfacher Geschwindigkeit ein, was im vorliegenden
Text als eine geschwindigkeitsvervielfachte schnelle AGP-Schreibtransaktion
bezeichnet wird. Dadurch wird die früher bestehende Anforderung
früherer
Revisionen der AGP-Spezifikation überflüssig, wonach diese Operation
mittels eines Zweistufenprozesses ausgeführt werden muss, wobei die
CPU in den Speicher schreiben würde
und der AGP aus dem Speicher lesen würde.
-
Im
Rahmen der Revision 2.0 der AGP-Spezifikation folgt die (zum Beispiel
zweifach oder vierfach) geschwindigkeitsvervielfachte schnelle Schreibtransaktion
einem anderen Signalprotokoll von herkömmlichen PCI-Datenübertragungen.
Das Signalprotokoll unterscheidet sich auch von dem AGP-Signalprotokoll,
aber die Drosselung erfolgt blockweise (d. h. vier Taktübertragungen,
was 32 Bytes im Zweifachgeschwindigkeitsmodus oder 64 Bytes im Vierfachgeschwindigkeitsmodus
bedeutet), was für
AGP-Übertragungen üblich ist.
Das Drosseln eines schnellen AGP-Schreibvorgangs erfordert eine Mischung
der PCI- und AGP-Signalprotokolle.
-
Um
ein volles Schnellschreibprotokoll im Rahmen der Revision 2.0 der
AGP-Spezifikation zu unterstützen,
muss ein AGP-kompatibles Gerät
mindestens einen Datenblock vor einem nächsten Drosselpunkt entgegennehmen,
d. h. bevor ein Wartezustand eingefügt wird. Eine unbegrenzte Anzahl
von Datenblöcken
kann in einer einzelnen schnellen AGP-Schreibtransaktion im Rahmen
der Revision 2.0 der AGP-Spezifikation übertragen werden.
-
Es
ist jedoch festgestellt worden, dass eine Unterstützung für das Drosseln
mehrerer Datenblöcke
relativ komplex ist und eine erhebliche Umarbeitung von schon vorhandenen
(d. h. Revision 1.0-kompatiblen) AGP-Schaltkreisblockdesigns erfordert.
Insbesondere erfordert das Hinzufügen von Funktionalität für eine Mehrblockübertragung,
dass eine AGP-Zustandsmaschine eine Anzahl von Abbruchbedingungen
detek tiert, darunter Master-Abbruch, Ziel-Abbruch, Trennen mit Daten
und Trennen ohne Daten. Darüber
hinaus wird angenommen, dass geschwindigkeitsvervielfachte schnelle
Mehrblock-AGP-Schreibtransaktionen ein Problem im Hinblick auf die
Zuweisung von Bandbreite zwischen verschiedenen Arten von AGP- und
PCI-Transaktionen über
einen AGP-Bus darstellen können.
Da das Schnellschreibprotokoll im Hinblick auf die Länge der Transaktion
den PCI-Regeln folgt, könnte
eine einzelne schnelle Schreibtransaktion den AGP-Bus für eine relativ
lange Zeit binden und im Wesentlichen andere Arten von Transaktionen,
die über
den AGP-Bus ausgeführt
werden sollen, blockieren.
-
Darüber hinaus
ist anzumerken, dass bei einer Anzahl von CPU-Architekturen, zum
Beispiel der von IBM und Motorola entwickelten Power PC-Architektur, CPU-Datenbursts
in der Regel auf vier Takte aus 64-Bit-Daten beschränkt sind,
die in vier Takten aus AGP-Daten mit einer zweifachen Datenrate
oder in zwei Takten aus AGP-Daten mit einer vierfachen Datenrate übertragen
werden können.
Infolge dessen ist festgestellt worden, dass die maximale Menge an
Daten, die bei vielen CPU-Designs mittels eines beliebigen CPU-Bursts übertragen
werden können, maximal
einem Datenblock in einer geschwindigkeitsvervielfachten schnellen
AGP-Schreibtransaktion entspricht.
-
Darum
kann es bei einigen Ausführungsformen
wünschenswert
sein, dass die AGP-Zustandsmaschine 98 von 3 lediglich
geschwindigkeitsvervielfachte schnelle Einzelblock-AGP-Schreibtransaktionen
unterstützt;
das heißt,
nur die Übertragung
eines einzelnen Blocks (vier Takte) mit Daten je geschwindigkeitsvervielfachter
schneller AGP-Schreibtransaktion unterstützt.
-
Dadurch
entsteht ein Durchsatz von etwa 425 Megabytes pro Sekunde im Zweifachgeschwindigkeitsmodus
und etwa 852 Megabytes pro Sekunde im Vierfachgeschwindigkeitsmodus
bei schnellen Back-to-Back-Schreiboperationen im Rahmen der Revision
2.0 der AGP-Spezifikation. Darüber
hinaus beruhigt dies den Transaktions-Mix auf dem AGP-Bus zwischen geschwindigkeitsvervielfachten schnellen
AGP-Schreibtransaktionen
und andere Arten von Transaktionen, wie zum Beispiel AGP-Lesevorgängen, AGP-Schreibvorgängen und
PCI-Transaktionen.
-
Ein
weiterer deutlicher Nutzeffekt ist die Vereinfachung der Implementierung
schneller Schreibvorgänge
in der Kernlogik, während
trotzdem weit über
200 % Verbesserung im Vergleich zu herkömmlichen PCI-Schreibtransaktionen
erreicht werden. Genauer gesagt, braucht eine AGP-Zustandsmaschine
dank der Beseitigung der Unterstützung
für Mehrblockübertragungen
nicht mehr eine Anzahl von Signalen zu überwachen, die andernfalls
bei einer Mehrblockübertragung überwacht
werden müssten, zum
Beispiel die Signale DEVSEL#, TRDY# und STOP#, die zum Detektieren
verschiedener Abbruchbedingungen verwendet werden, wie zum Beispiel Ziel-Abbruch,
Master-Abbruch, Trennen mit Daten und Trennen ohne Daten. Infolge
dessen kann die zusätzliche
Anzahl der Gatter in der AGP-Zustandsmaschine deutlich verringert
werden, und darüber
hinaus ist die Implementierung insofern besser übertragbar, als sie auf einfache
Weise ohne umfassende Modifikation vorhandener Designs implementiert werden
kann.
-
5 zum
Beispiel veranschaulicht den Ablauf einer zweifach geschwindigkeitsvervielfachten schnellen
AGP-Schreibtransaktion unter Verwendung einer AGP-Zustandsmaschine,
die nur geschwindigkeitsvervielfachte schnelle Einzelblock-Schreibübertragungen
unterstützt.
Die Zustandsmaschine braucht nur die Signale IRDY# und FRAME# anzusteuern,
um den Datenfluss auszuführen.
Die anderen Signale, die in 5 gezeigt
sind, und zwar die Signale Clock, AGP AD BUS, C/BE#, AD_STBx und
WBF#, werden in der gleichen Weise angesteuert, wie es dem Fachmann
allgemein bekannt ist.
-
Die
Kernlogik kann eine schnelle Schreibübertragung einleiten, solange
das WBF#-Signal nicht aufgedrückt
ist, aber sobald die schnelle Schreibübertragung eingeleitet ist,
muss das AGP-kompatible Gerät
mindestens einen Datenblock vor dem nächsten Drosselpunkt entgegennehmen.
Mit nur einer einzigen Blockübertragung
können
32 Bytes an Daten in vier Takten im Zweifachgeschwindigkeitsmodus übertragen
werden, oder es können
64 Bytes im Vierfachgeschwindigkeitsmodus übertragen werden. Wenn wir
also annehmen, dass eine beispielhafte PowerPC-CPU mit 100 MHz Schreibvorgänge mit
einer Spitzenrate von 800 Megabyte pro Sekunde ausgibt, so kann
die im vorliegenden Text beschriebene Implementierung diese Rate
des Spitzen- Schnellschreibverkehrs
aufrecht erhalten, während
gewährleistet
wird, dass die übrigen
AGP-Datenpfade (zum Beispiel AGP-Lesevorgänge und AGP-Schreibvorgänge) ihren
gerechten Anteil am AGP-Bus bekommen, da eine schnelle Schreibtransaktion
nicht fünft Takte überschreitet,
wenn IRDY# am frühesten
Punkt aufgedrückt
wird, und nicht sechs Takte überschreitet,
wenn IRDY# mit maximaler Verzögerung
aufgedrückt
wird.
-
Es
versteht sich, dass die Implementierung einer Zustandsmaschine und
anderer Schaltkreislogik zum Erzeugen des in 5 veranschaulichten Ablaufdiagramms
für einen
Durchschnittsfachmann, der in den Genuss der vorliegenden Offenbarung kommt,
ohne weiteres zu realisieren wäre.
-
An
den veranschaulichten Ausführungsformen
können
verschiedene Modifikationen vorgenommen werden. Zum Beispiel kann,
wie oben besprochen, der Schaltkreisblock 52 in einigen
Ausführungsformen
das volle AGP-Schnellschreibprotokoll implementieren. Darüber hinaus
kann in anderen Ausführungsformen
eine Unterstützung
für lediglich geschwindigkeitsvervielfachte
schnelle Einzelblock-AGP-Schreibübertragungen
ohne die im vorliegenden Text beschriebene Aufteilung von Datenpfadfunktionalität zwischen
den Schaltkreisblöcken 50 und 52 implementiert
werden. Darüber
hinaus können
in Fällen,
wo mit einer CPU andere Burstdateneigenschaften verbunden sind,
andere Blockgrößen (zum
Beispiel andere Anzahlen von Taktzyklen) in einer schnellen Einzelblock-AGP-Schreibtransaktion gemäß der Erfindung
verwendet werden.
-
Weitere
Modifikationen sind für
den Durchschnittsfachmann erkennbar. Die Erfindung ruht darum in
den Ansprüchen,
die dem vorliegenden Text angehängt
sind.