-
VERWEIS AUF VERWANDTE PATENTE
-
Diese
Anmeldung beansprucht die Vorteile der vorläufigen US-Anmeldung, laufende
Nr. 60/698150, eingereicht am 11.7.2005, die hiermit durch Bezugnahme
für alle
Absichten und Zwecke eingeschlossen ist.
-
Diese
Anmeldung ist mit den folgenden gleichzeitig anhängigen US-Patenten verwandt,
die alle den gleichen Abtretungsempfänger und die gleichen Erfinder
aufweisen.
-
-
HINTERGRUND DER ERFINDUNG
-
GEBIET DER ERFINDUNG
-
Die
Erfindung betrifft Prozessor-Adressbusse und insbesondere eine Vorrichtung
und ein Verfahren für Quad-Pumped-
bzw. Double-Pumped-Adressbusse, die das Problem von großen Gehäusen und
unvernünftiger
Leistungsaufnahme bei modernen Mikroprozessoren lösen, bei
denen ein beträchtlicher
Anteil der Anschlussstifte und der Leistung für die Adressbus-Schnittstelle
des Mikroprozessors benötigt
werden.
-
BESCHREIBUNG DES STANDS DER TECHNIK
-
In
einem modernen Mikroprozessor, beispielsweise einem x86-kompatiblen
Mikroprozessor, erfolgen Transaktionen (d. h. Lese- und Schreibtransaktionen)
in und aus dem Speicher über
einen Systembus. Diese Transaktionen umfassen eine Anforderungsphase,
in der eine Adresse für
eine Transaktion zusammen mit dem Transaktionstyp über eine
Adresssignalgruppe geliefert werden. Die Adresssignalgruppe enthält in der Regel
einen Adressbus, einen Satz zugeordneter Adressimpulssignale und
einen Anforderungsbus. In einer bestimmten herkömmlichen Anordnung enthält die Adresssignalgruppe
ungefähr
40 Signale, die an Anschlussstiften eines Gehäuses für das Mikroprozessorplättchen bereitgestellt
werden müssen.
In zahlreichen herkömmlichen
Anordnungen werden mehrfache Double-Pumped-Busanforderungspakete
auf der Adresssignalgruppe während
eines einzigen Taktzyklus unterstützt (z. B. "A"-
und "B"-Anforderungspakete).
Zudem unterstützen
zahlreiche herkömmliche
Mikroprozessoranordnungen "Quad-Pumped"-Transaktionen, in
denen eine gesamte Cache-Line (z. B. acht Vierfachwörter für eine 64-Byte-Cache-Line) über den
Bus übertragen werden,
und zwar in nur wenigen Taktzyklen (z. B. zwei Taktzyklen). Bei
herkömmlichen
Double-Pumped-Transaktionen
werden die Signale der Adresssignalgruppe während eines jeden Taktzyklus
zwei Mal angelegt.
-
Der
Erfinder hat festgestellt, dass diese Anordnung der Adresssignalgruppe
auf gewissen Anwendungsfeldern problematisch ist, bei denen die
Gehäusegröße und/oder
die Leistung beschränkt
sind. Zudem wird jedes Mal, wenn eines dieser Signale auf den Bus
getrieben wird, beispielsweise bei mehrmaligem Anlegen in einem
gegebenen Taktzyklus, zusätzliche
Leistung benötigt.
Es ist daher erwünscht,
einen Mechanismus bereitzustellen, durch den die Anzahl der Adresssignalgruppen-Anschlussstifte
und die zugehörigen
Leistungsanforderungen verringert werden, bei dem die Adressierfunktionalität jedoch
erhalten bleibt. Um sich an unterschiedliche Anwendungsgebiete anzupassen,
ist es zudem erwünscht,
einen Mechanismus bereitzustellen, durch den die Adressierungsfähigkeit
entweder im beschriebenen Double-Pumped-Modus oder in einem neuen
Quad-Pumped-Modus konfiguriert werden kann. Dieser wird im Weiteren
beschrieben.
-
WO 01/48621 offenbart eine
Ausführungsform,
die ein Quad-Pumped-Datensignal enthält, und eine davon verschiedene
Ausführungsform,
die ein Double-Pumped-Adresssignal
enthält.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Aspekte
der Erfindung findet man in den beigefügten unabhängigen Ansprüchen (Anspruch
1 und 7), die nun eingesehen werden sollten. Ausführungsformen
der Erfindung findet man in den beigefügten abhängigen Ansprüchen.
-
Die
Adressbus-Konfigurationslogik kann während einer ersten Phase des
Zyklus des Bustaktsignals erste und zweite Adressdaten und erste
und zweite Anforderungsdaten an die Adresssignalgruppen-Anschlussstifte
anlegen, und sie kann während
einer zweiten Phase des Zyklus des Bustaktsignals dritte und vierte
Adressdaten und dritte und vierte Anforderungsdaten an die Adresssignalgruppen-Anschlussstifte
anlegen. In einer Ausführungsform
enthalten die Adresssignalgruppen-Anschlussstifte ein erstes Adressimpulssignal, das
zum Zwischenspeichern der ersten und dritten Adress- und Anforderungsdaten
verwendet wird, und ein zweites Adressimpulssignal, das zum Zwischenspeichern
der zweiten und vierten Adress- und Anforderungsdaten verwendet
wird. Die ersten und die zweiten Adressdaten können gemeinsam eine Adresse
einer Transaktion enthalten, die ersten und die zweiten Anforderungsdaten
können
gemeinsam einen Typ der Transaktion enthalten, die dritten und vierten
Adressdaten können
gemeinsam ein Attribut der Transaktion enthalten, und die dritten
und vierten Anforderungsdaten können
gemeinsam eine Länge
der Transaktion enthalten.
-
Der
Mikroprozessor kann mit einer verringerten Anzahl Anschlussstifte
implementiert werden, zu denen auch die Adresssignalgruppen-Anschlussstifte
gehören,
die einen Quad-Pumped-Adresstransaktionsmodus gemäß einer
Ausführungsform
der Erfindung unterstützen.
Wahlweise kann ein vollständiger
Satz von Adress- und Anforderungs-Anschlussstiften enthalten sein,
die den herkömmlichen
Double-Pumped-Adresstransaktionsmodus unterstützen. Werden beide Modi unterstützt, so
kann die Adressbus-Konfigurationslogik einen Freigabeeingang enthalten,
der ein Freigabesignal empfängt,
wobei die Adressbus-Konfigurationslogik Adresssignalgruppen-Anschlussstifte
so betreibt, dass sie eine Quad-Pumped-Abwicklung vornehmen, wenn das
Freigabesignal angelegt wird, und den vollständigen Satz Anschlussstifte
betreibt, damit eine Double-Pumped-Abwicklung erfolgt, wenn das
Freigabesignal nicht angelegt wird.
-
Ein
Mikroprozessor-Schnittstellensystem gemäß einer Ausführungsform
der Erfindung enthält
einen Systembus mit einem Bustakt und einer Adresssignalgruppe sowie
zahlreiche Vorrichtungen, die mit dem Systembus verbunden sind.
Jede Vorrichtung ist dafür
ausgelegt, eine Quad-Pumped-Abwicklung auf dem Systembus vorzunehmen,
in der zahlreiche Anforderungspakete nacheinander über die
Adresssignalgruppe übertragen
werden, und zwar während
jeder Phase von mehreren Phasen eines Zyklus des Bustakts. In einer
Ausführungsform
enthalten die Vorrichtungen mindestens einen Mikroprozessor und
einen oder mehrere Busagenten. Die Vorrichtungen können den
Betrieb des Systembusses aushandeln, und zwar zwischen einem Double-Pumped-Adressmodus,
damit eine Double-Pumped-Abwicklung erfolgt, und einem Quad-Pumped-Adressmodus,
damit die Quad-Pumped-Abwicklung erfolgt.
-
Die
ersten Adressdaten können
während
einer ersten Phase des Bustaktzyklus während erster und zweiter Anforderungspakete
auf der Adresssignalgruppe gemultiplext sein, und die zweiten Adressdaten
können
während
einer zweiten Phase des Bustaktzyklus während dritter und vierter Anforderungspakete
auf der Adresssignalgruppe gemultiplext sein. Die Adresssignalgruppe
kann einen Anforderungsbus enthalten, wobei die ersten Anforderungsdaten
während
einer ersten Phase des Bustaktzyklus während erster und zweiter Anforderungspakete
auf dem Anforderungsbus gemultiplext werden, und wobei die zweiten
Anforderungsdaten während
einer zweiten Phase des Bustaktzyklus während dritter und vierter Anforderungspakete
auf dem Anforderungsbus gemultiplext werden.
-
Die
Quad-Pumped-Abwicklung kann erste und zweite Anforderungspakete
während
einer ersten Phase und dritte und vierte Anforderungspakete während einer
zweiten Phase des Bustaktzyklus enthalten. Die ersten und zweiten
Anforderungspakete können
gemeinsam eine Transaktionsadresse und einen Transaktionstyp enthalten,
und die dritten und vierten Anforderungspakete können gemeinsam einen Transaktionstyp und
eine Transaktionslänge
enthalten. Die Quad-Pumped-Abwicklung kann erste Adress- und Anforderungsdaten
gemultiplext als erste und zweite Anforderungspakete während einer
ersten Phase des Bustaktzyklus enthalten, und zweite Adress- und
Anforderungsdaten gemultiplext als dritte und vierte Anforderungspakete während einer
zweiten Phase des Bustaktzyklus.
-
Ein
Verfahren zum Ausführen
einer Quad-Pumped-Abwicklung auf einem Systembus gemäß einer Ausführungsform
der Erfindung umfasst das Anlegen eines ersten Anforderungspakets
an den Systembus während
eines ersten Abschnitts einer ersten Phase eines Zyklus eines Systembustakts,
das Anlegen eines zweiten Anforderungspakets an den Systembus während eines
zweiten Abschnitts der ersten Phase des Zyklus des Systembustakts,
das Anlegen eines dritten Anforderungspakets an den Systembus während eines ersten
Abschnitts einer zweiten Phase des Zyklus des Systembustakts, und
das Anlegen eines vierten Anforderungspakets an den Systembus während eines
zweiten Abschnitts der zweiten Phase des Zyklus des Systembustakts.
-
Das
Verfahren kann das Anlegen eines ersten Adressimpulses zum Zwischenspeichern
der ersten und dritten Anforderungspakete enthalten, und das Anlegen
eines zweiten Adressimpulses zum Zwischenspeichern der zweiten und
vierten Anforderungspakete umfassen. Das Verfahren kann das Anlegen
erster Adressdaten und erster Anforderungsdaten während der
ersten Phase des Zyklus des Systembustakts umfassen, und das Anlegen
zweiter Adressdaten und zweiter Anforderungsdaten während der
zweiten Phase des Zyklus des Systembustakts. Das Verfahren kann
das Anlegen einer Adresse einer Transaktion umfassen, das Anlegen
eines Typs der Transaktion, das Anlegen eines Attributs der Transaktion
und das Anlegen einer Länge
der Transaktion. Das Verfahren kann das Multiplexen erster Adressdaten
auf dem Systembus und das Multiplexen zweiter Adressdaten auf dem
Systembus umfassen. Das Verfahren kann umfassen, dass zahlreiche
mit dem Systembus verbundene Vorrichtungen aushandeln, ob der Systembus
im Double-Pumped-Adressmodus oder im Quad-Pumped-Adressmodus betrieben
wird.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
Vorzüge,
Merkmale und Vorteile der Erfindung versteht man anhand der folgenden
Beschreibung und der beiliegenden Zeichnungen besser.
-
Es
zeigt:
-
1 ein
vereinfachtes Blockdiagramm eines herkömmlichen Mikroprozessor-Schnittstellensystems;
-
2 eine
zeitabhängige
Darstellung der Wechselwirkung der Signale innerhalb der Adresssignalgruppe
beschrieben anhand des herkömmlichen
Mikroprozessor-Schnittstellensystems
in 1, wenn Anforderungsphasen einer Bustransaktion
ausgeführt
werden;
-
3 eine
zeitabhängige
Darstellung einer Anforderungsphase einer Quad-Pumped-Abwicklung
gemäß einer
Ausführungsform
der Erfindung;
-
4 eine
Skizze einer Tabelle, die das Abbilden der Daten eines jeden Anforderungspakets
A–D auf den
Quad-Pumped-Adressbus während
der Anforderungsphasen A und B einer Double-Pumped-Anforderungstransaktion
gemäß einer
beispielhaften Ausführungsform
der Erfindung für
einen x86-kompatiblen Mikroprozessor erläutert;
-
5 ein
vereinfachtes Blockdiagramm eines Mikroprozessor-Schnittstellensys tems,
das einen Systembus mit einer Quad-Pumped-Adresssignalgruppe gemäß einer
Ausführungsform
der Erfindung enthält;
-
6 ein
Blockdiagramm einer Adressbus-Konfigurationslogik, die man dazu
verwenden kann, die Adressbus-Konfigurationslogik in 5 gemäß einer
beispielhaften Ausführungsform
der Erfindung zu implementieren; und
-
7 eine
Skizze einer Tabelle, die eine Signalübereinstimmungsabbildung zwischen
dem Double-Pumped-Adressmodus und dem Quad-Pumped-Adressmodus gemäß einer
Ausführungsform
der Erfindung für
eine Systemvorrichtung (Mikroprozessor oder Busagent) erläutert, die
beide Adressmodi unterstützt.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Die
folgende Beschreibung ist dafür
gedacht, dass ein Fachmann die Erfindung so ausführen und verwenden kann, wie
sie im Zusammenhang mit einer bestimmten Anwendung und deren Anforderungen
bereitgestellt wird. Für
Fachleute sind verschiedene Abwandlungen der bevorzugten Ausführungsform
jedoch offensichtlich, und man kann die hier bestimmten allgemeinen
Prinzipien auf andere Ausführungsformen
anwenden. Es ist daher nicht beabsichtigt, dass die Erfindung auf
die besonderen hier dargestellten und beschriebenen Ausführungsformen
eingeschränkt
ist, sondern ihr ist der breiteste Bereich zuzuerkennen, der mit
den hier offenbarten Prinzipien und neuartigen Merkmalen verträglich ist.
-
Der
Erfinder hat festgestellt, dass diese Anordnung der Adresssignalgruppe
auf gewissen Anwendungsfeldern problematisch ist, bei denen die
Gehäusegröße und/oder
die Leistung beschränkt
sind. Er hat dafür
einen wählbaren
Quad-Pumped/Double-Pumped-Adressbus entwickelt, der das Problem
von großen Gehäusen und
unvernünftiger
Leistungsaufnahme bei modernen Mikroprozessoren löst, bei
denen ein beträchtlicher
Anteil der Anschlussstifte und der Leistung für die Adressbus-Schnittstelle
des Mikroprozessors benötigt
werden. Dies wird im Weiteren anhand von 1 bis 7 beschrieben.
-
1 zeigt
ein vereinfachtes Blockdiagramm eines herkömmlichen Mikroprozessor-Schnittstellensystems 100.
Das Mikroprozessor-Schnittstellensystem 100 enthält einen
Mikroprozessor 101 und einen Busagenten 103, der über eine
Schnittstelle am Systembus 105 liegt. Der Busagent 103 repräsentiert
jede beliebige Anzahl unterschiedlicher Busagenten, die Fachleuten
geläufig
sind, beispielsweise einen Speichercontroller, eine Host/PCI-Bridge
(PCI = Peripheral Component Interconnect), einen Chipsatz usw. Der
Systembus 105 enthält
die Signale für
das Ausführen
von Datentransaktionen ein schließlich eines bidirektionalen
Adressbusses A, eines bidirektionalen Datenbusses DATA und zahlreicher
Steuersignale. In der dargestellten Ausführungsform weist der Bus A
33 Signale auf, die als A[35:3] wiedergegeben sind, und der DATA-Bus
weist 64 Signale auf, die als DATA[63:0] wiedergegeben sind. Natürlich können der
Adressbus und der Datenbus abhängig
von der besonderen Konfiguration und Architektur jede beliebige
geeignete Anzahl Signale aufweisen. Fachleuten ist geläufig, dass
die geringstwertigen Adresssignale nicht erforderlich sind, um die Übertragung von
Daten mit der Auflösung
von Vierfachwörtern
zu erlauben, wie dies Stand der Technik ist.
-
Zu
den Steuersignalen gehört
ein Differentialtaktbus BCLK[1:0], ein bidirektionaler Adressimpulsbus ADSTB[1:0]
(der die Gültigkeit
der Adressen aus dem Bus A anzeigt), ein Paar Datenimpulsbusse DSTBP[3:0] und
DSTBN[3:0], ein bidirektionales Datenbus-Belegt-Signal DBSY (wird
von der Einheit gesetzt, die Daten auf den DATA-Bus liefert), ein
Daten-Fertig-Signal DRDY (wird von jeder Vorrichtung gesetzt, die
während
aller Taktzyklen Daten liefert, in denen Daten über den DATA-Bus übertragen
werden) und einen Antwortbus RS, der den Typ der Transaktionsantwort
liefert (z. B. keine Daten, normale Daten, implizites Zurückschreiben),
die über
den DATA-Bus abgeschlossen wird. In der dargestellten Ausführungsform
besitzt der RS-Bus drei Signale, die als RS[2:0] wiedergegeben werden,
und wird vom Busagenten 103 gesetzt.
-
Die
für das
herkömmliche
Mikroprozessor-Schnittstellensystem 100 dargestellten Signale
sind mit geringen Änderungen
in nahezu allen modernen Mikroprozessoren vorhanden. Manche Prozessoren
multiplexen Adressen und Daten über
die gleiche Signalgruppe und liefern daher Steuersignale, die anzeigen,
ob Daten oder Adressen vorliegen. Andere Mikroprozessoren verwenden
unterschiedliche Adress- oder Datenbusbreiten oder Steuersignale
mit anderen Bezeichnungen. Zudem können Adressen und/oder Daten über einen
Bus mit geringerer Breite gemultiplext werden als dies bei dem herkömmlichen
Mikroprozessor-Schnittstellensystem 100 dargestellt ist.
Man darf nicht außer
Acht lassen, dass im Wesentlichen alle Prozessoren Signale für die Kommunikation
mit Busagenten liefern, um die Art von Transaktion anzuzeigen, die
gefordert wird, die Parameter der Transaktion, und um die Daten
zu übertragen
bzw. zu empfangen.
-
In
einem modernen Mikroprozessor kann man Daten jeweils in Cache-Line-Einheiten
gemäß einer "Quad-Pumped"-Konfiguration übertragen
(z. B. acht Vierfachwörter
für eine
64-Byte-Cache-Line). Wird eine gesamte Cache-Line übertragen,
so werden zwei Zyklen des Bustaktsignals BCLK[1:0] dazu verwendet,
die acht zugeordneten Vier fachwörter
in einer Cache-Line zu übertragen.
Damit werden während
eines jeden Zyklus des Bustakts BCLK[1:0] vier Vierfachwörter übertragen.
Während
dieser Art von Datenübertragung
werden die Signale der Datenimpulsbusse DSTBP[3:0], DSTBN[3:0] geliefert,
um die Gültigkeit
der verschiedenen Vierfachwörter-Beats
auf dem Datenbus anzuzeigen, so dass während eines einzelnen Bustakts
vier Beats übertragen
werden. In ähnlicher
Weise werden Busanforderungspakete ("A" und "B") über
die Adresssignalgruppe im Double-Pumped-Modus übertragen. Das Anforderungspaket
A wird während
einer ersten Hälfte
eines Zyklus BCLK[1:0] übertragen,
und das Anforderungspaket B wird während einer zweiten Hälfte von BCLK[1:0] übertragen.
Quellensynchrone Adressimpulssignale ADSTB[1:0] werden geliefert,
um die geforderten Paketdaten über
die Adresssignalgruppe auf den Bus hinaus zu treiben.
-
2 zeigt
eine zeitabhängige
Darstellung der Wechselwirkung der Signale innerhalb der Adresssignalgruppe,
die die Anforderungsphasen einer Bustransaktion vornehmen, und die
für das
herkömmliche
Mikroprozessor-Schnittstellensystem 100 beschrieben wird.
Die Operationen bei derartigen Transaktionen und die zugehörigen Signale,
die hier für
einen x86-kompatiblen Mikroprozessor benannt werden, sind in zahlreichen
Quellen beschrieben. Eine davon ist das Buch "The Unabridged Pentium® 4
IA32 Processor Genealogy, 1st Edition", von Tom Shanley. Zur Verdeutlichung:
das Setzen der Steuersignale ist als logischer Lowpegel dargestellt.
Fachleuten ist geläufig,
dass das Setzen natürlich
auch durch einen logischen Highpegel angezeigt werden kann. Zyklen
des Differentialbustakts BCLK[1:0] sind oben quer über der
zeitabhängigen
Darstellung wiedergegeben, wobei BCLK[1] mit Hilfe einer gestrichelten
Linie dargestellt ist, die mit umgekehrter Polarität bezüglich des
Signals BCLK[0] zwischen ihren Zuständen wechselt.
-
Wie
beschrieben werden die Anforderungspakete A und B während eines
einzigen Zyklus von BCLK[1:0] im Double-Pumped-Modus über die
Adresssignalgruppe übertragen.
Die Vorrichtung, die eine Transaktion anstößt, treibt das Paket A hinaus
und setzt zu dem Zeitpunkt, zu dem das Paket A gültig ist, ADSTB[1:0] auf Lowpegel.
Somit wird ADSTB[1:0] von den Busvorrichtungen (z. B. dem Busagenten 103)
dazu verwendet, das Paket A zwischenzuspeichern. Die anstoßende Vorrichtung
treibt nun das Paket B hinaus und setzt zu dem Zeitpunkt, zu dem
das Paket B gültig
ist, ADSTB[1:0] auf Highpegel. Paket B wird mit der steigenden Flanke
von ADSTB[1:0] zwischengespeichert. ADSTB[0] wird zum Zwischenspeichern
der Anforderungspaketdaten verwendet, die auf A[16:3] und REQ[4:0] übertragen
werden. ADSTB[1] wird zum Zwischenspei chern der Anforderungspaketdaten
verwendet, die auf A[35:17] übertragen
werden. Da die Pakete A und B während
eines einzigen Zyklus von BCLK[1:0] über die gleiche Signalgruppe
geliefert werden, bezeichnet man dies als Double-Pumped-Adressbus.
-
Ein
Fachmann kann sehen, dass während
des Anforderungsteils "A" des Zyklus die Adresssignale A[35:3]
die Adresse der Transaktion enthalten und REQ[4:0] den Typ der geforderten
Transaktion enthält
(z. B. Speichercode lesen, Speicherdaten lesen, Speicher schreiben).
Während
des Anforderungsteils "B" des Zyklus liefert
der Anforderungsbus REQ[4:0] für
den Fall von Lese- und Schreibtransaktionen die Transaktionslänge, und
A[35:3] liefert das Übertragungsattribut
(z. B. nicht für
den Cache bestimmt, write-combined, write-through, usw.), Byte-Freigaben
und weitere Daten bezüglich
der Transaktion.
-
Die
Konfiguration der Adresssignalgruppe, die das beschriebene herkömmliche
Mikroprozessor-Schnittstellensystem 100 verwendet, ist
in gewissen Anwendungsbereichen problematisch, bei denen die Gehäusegröße und/oder
die Leistung beschränkt
sind. Im Einzelnen enthalten die Adresssignalgruppe A[35:3], ADSTB[1:0]
und REQ[4:0] des Mikroprozessor-Schnittstellensystems 100 vierzig
Signale, die an Anschlussstiften eines Gehäuses für das Mikroprozessorplättchen bereitgestellt
werden müssen.
Zudem wird jedes Mal, wenn eines dieser Signale auf den Bus getrieben
wird, zusätzliche
Leistung verbraucht.
-
Die
Erfindung stellt eine neuartige Adresssignalgruppe bereit, die Quad-Pumped-Adressbus genannt wird,
und die ungefähr
die Hälfte
(z. B. 22) der Adresssignalgruppen-Signale verwendet, die oben für einen Double-Pumped-Adressbus
beschrieben sind, und die ungefähr
die Hälfte
der Leistung eines Double-Pumped-Adressbusses verbraucht. In einer
Ausführungsform
können
der Mikroprozessor und ein oder mehrere Busagenten mit einer verringerten
Anzahl Anschlussstifte implementiert werden, um die Gehäusegröße zu verringern
und den Leistungsverbrauch während
Adressanforderungstransaktionen im Quad-Pumped-Modus zu verringern.
In einer anderen Ausführungsform
können
der Mikroprozessor und ein oder mehrere Busagenten jeweils mit der
herkömmlichen
Anzahl Anschlussstifte implementiert werden, von denen eine Untermenge
der Adress- und Anforderungs-Anschlussstifte zum Verringern des
Leistungsverbrauchs während
der Adressanforderungstransaktionen im Quad-Pumped-Modus verwendet
werden. Bei den Ausführungsformen,
in denen sowohl Double-Pumped- als auch Quad-Pumped-Adressbusse unterstützt werden,
kann während
des Betriebs der Modus umge schaltet werden oder während der
Initialisierung (z. B. beim Einschalten oder Zurücksetzen) von den Vorrichtungen
ausgehandelt werden, die mit dem Systembus 505 verbunden
sind (z. B. dem Mikroprozessor 501 und einem oder mehreren
Busagenten 503). Für
den Modusumschaltvorgang bei Betrieb kann man ein zusätzliches
Signal auf dem Systembus zum Umschalten zwischen den Modi verwenden.
Wahlweise kann man ein vorhandenes Signal auf dem Systembus für Modusumschaltvorgänge verwenden.
-
3 zeigt
eine zeitabhängige
Darstellung, die eine Anforderungsphase einer Quad-Pumped-Transaktion
gemäß einer
Ausführungsform
der Erfindung erläutert.
In einem Quad-Pumped-Adressbus gemäß einer Ausführungsform
der Erfindung wird eine Adresssignalgruppe mit verringerter Größe verwendet,
zu der ein Adressbus AHI[2:0] und ALO[16:3] gehört, ein Anforderungsbus RQ[2:0]
und zwei Adressimpulssignale ADSTBP und ADSTBN. Wahlweise kann man
die Adress- und Anforderungssignale der verkleinerten Adresssignalgruppe
gemeinsam als einen Adress- und Anforderungsbus ADR[19:0] betrachten.
Wie die zeitabhängige Darstellung
in 3 zeigt, wird die Anforderungsphase der Transaktion
in zwei Phasen A und B unterteilt, damit vier Anforderungspakete
A, B, C, D während
eines einzigen Zyklus von BCLK[1:0] auf die Busse AHI, ALO und RQ
getrieben werden. Die erste Hälfte
des Signals BCLK[1:0] ist mit "A" bezeichnet. In dieser
Zeitspanne werden die Anforderungspakete A und B getrieben. Die
zweite Hälfte
ist mit "B" bezeichnet. In dieser
Zeitspanne werden die Anforderungspakete C und D getrieben. Die
Signale ADSTBP und ADSTBN werden während des Zyklus jeweils zwei
Mal gepulst. Die beiden fallenden Flanken von ADSTBP werden zum
Zwischenspeichern der Anforderungspakete A bzw. C verwendet, und
die beiden fallenden Flanken von ADSTBN werden zum Zwischenspeichern
der Anforderungspakete B bzw. D verwendet, die über die Busse AHI, ALO und
RQ geliefert werden. Da in einem einzigen Zyklus von BCLK[1:0] vier
Pakete über
die Adresssignalgruppe geliefert werden, wird die Adresssignalgruppe
als Quad-Pumped-Adressbus bezeichnet.
-
4 zeigt
eine Skizze der Tabelle 400. Diese zeigt die Abbildung
der Daten eines jeden Anforderungspakets A–D auf den Quad-Pumped-Adressbus
während
der Anforderungsphasen A und B einer Double-Pumped-Anforderungstransaktion
gemäß einer
beispielhaften Ausführungsform
der Erfindung für
einen x86-kompatiblen Mikroprozessor. In Tabelle 400 sind
die Phasenbezeichner (A und B), die Paketbezeichner (A–D) und
die zugehörigen
Daten aufgelistet, die für
jede Quad-Pumped-Anforderungstransaktion an die Signale AHI[2:0],
ALO[16:3] und RQ[2:0] angelegt werden. Alternativ sind die Bussignale
AHI, ALO und RQ als ein einziger Adress- und Anforderungsbus ADR[19:0] aufgelistet.
Fachleuten ist klar, dass die dargestellte Zuordnung nur Beispielcharakter
hat und dass zahlreiche andere Zuordnungskonfigurationen möglich sind
und von der Erfindung in Betracht gezogen werden. Die Daten des
Adressbusses A (d. h. die Signale A[35:3]) werden während der
Anforderungsphase A als Adresssignale "AA" abgebildet,
und während
der Anforderungsphase B als "AB". In ähnlicher
Weise werden die Anforderungsdaten (REQ[4:0]) während der Anforderungsphase
A als Anforderungsdaten "REQA" abgebildet, und
während
der Anforderungsphase B als "REQB".
-
Während der
Phase A der Double-Pumped-Anforderungstransaktion übertragen
die Busse AHI, ALO und RQ (oder der Bus ADR) gemeinsam die Daten
der Adresssignale AA[33:32, 30, 16:3] und die Daten der Anforderungssignale
REQA[2:0] für
das Anforderungspaket A. Die Busse AHI, ALO und RQ (oder der Bus ADR) übertragen
gemeinsam die Daten der Adresssignale AA[35:34, 31], ein Paritätssignal
APA (nicht dargestellt), die Daten der Adresssignale AA[29:17] und
die Daten der Anforderungssignale REQA[4:3] für das Anforderungspaket B.
Man beachte, dass das Signal RQ[2] für das Paket B nicht definiert
oder anderweitig auf einen voreingestellten Pegel gesetzt wird.
Dies ist in Tabelle 400 mit einem Strich "–" dargestellt. Während der Phase B übertragen
die Busse AHI, ALO und RQ (oder der Bus ADR) gemeinsam die Daten
der Adresssignale AB[33:32, 16:3] und die Daten der Anforderungssignale
REQB[2:0] für
das Anforderungspaket C. Die Busse AHI, ALO und RQ (oder der Bus
ADR) übertragen
gemeinsam die Daten der Adresssignale AB[35:34, 31], ein Paritätssignal
APB, die Daten der Adresssignale AB[29:17] und die Daten der Anforderungssignale
REQB[4:3] für
das Anforderungspaket D. Wiederum ist das Signal RQ[2] für das Paket
D nicht definiert oder wird anderweitig auf einen voreingestellten
Pegel gesetzt. Anders formuliert überträgt der ALO-Bus die Daten der
untersten 14 Adressbits während
der Pakete A und C (d. h., AA[16:3] und AB[16:3]), und er überträgt die Daten
der nächsten
untersten 13 Adressbits und ein Paritätsbit während der Pakete B und D (d.
h., AA[29:17] & APA
und AB[29:17] & APB).
Der AHI-Bus überträgt die Daten
der drei oberen Bits während
der Pakete A und C (z. B. AA[33:32, 30] und AB[[33:32, 30]), und
er überträgt die Daten
der verbleibenden drei oberen Bits während der Pakete B und D (z.
B. AA[35:34, 31] und AB[[35:34, 31]). Der RQ-Bus überträgt die Daten
der unteren drei Anforderungsbits während der Pakete A und C (d.
h. REQA[2:0] und REQB[2:0]), und er überträgt die Daten der verbleibenden
oberen zwei Anforderungsbits während
der Pakete B und D (d. h. REQA[4:3] und REQB[4:3]).
-
In
dem Mikroprozessor-Schnittstellensystem 100, das den Double-Pumped- Adressmodus verwendet, enthalten
die Adresssignale A[35:3] die 33-Bit-Adresse der Transaktion, und
die Anforderungssignale REQ[4:0] enthalten die Art der im Paket
A geforderten Transaktion. Die Adresssignale A[35:3] liefern im
Paket B die Attribute der Transaktion, und die Anforderungssignale
REQ[4:0] die Transaktionslänge.
Im Gegensatz dazu kann für
einen Quad-Pumped-Modus gemäß einer
Ausführungsform
der Erfindung die 33-Bit-Adresse von den Adresssignalen AHI[2:0]
und ALO[16:3] geliefert werden, und der 5-Bit-Transaktionstyp wird
von den Anforderungssignalen RQ[2:0] in den Paketen A und B der
Phase A geliefert. Das Attribut der Transaktion wird von den Adresssignalen
AHI[2:0] und ALO[16:3] geliefert, und die Transaktionslänge wird
von den Anforderungssignalen RQ[2:0] in den Paketen C und D der
Phase B geliefert. Zusätzliche
Bits kann man je nach Wunsch oder Bedarf definieren. Wird beispielsweise
eine 37-Bit-Adresse
verwendet (z. B. A[39:9]), so können dem
AHI-Bus zwei zusätzliche
Bits zugefügt
werden (z. B. AHI[4:0]), um die gleiche Adresse zu übertragen.
-
5 zeigt
ein vereinfachtes Blockdiagramm eines Mikroprozessor-Schnittstellensystems 500,
das einen Systembus 505 mit einer Quad-Pumped-Adresssignalgruppe
gemäß einer
Ausführungsform
der Erfindung enthält.
Das Mikroprozessor-Schnittstellensystem 500 enthält einen
Mikroprozessor 501 und einen Busagenten 503, der über eine
Schnittstelle am Systembus 505 liegt. Der Busagent 503 repräsentiert
jede beliebige Anzahl unterschiedlicher Busagenten, wie dies oben
für den
Busagenten 103 beschrieben ist. Die Busse DATA, DSTBP,
DSTBN und RS sind zusammen mit den Signalen DBSY, DRDY und BCLK[1:0]
enthalten und arbeiten im Wesentlichen so, wie es beim herkömmlichen
Mikroprozessor-Schnittstellensystem 100 beschrieben ist.
Zusätzlich
enthält
der Mikroprozessor 501 eine Adressbus-Konfigurationslogik 507,
und der Busagent 503 enthält die Adressbus-Konfigurationslogik 509.
Die Adressbus-Konfigurationslogiken 507 und 509 stellen jeweils
Schnittstellen für
die Busse AHI, ALO und RQ (oder den ADR-Bus) und die Adressimpulssignale
ADSTBP und ADSTBN her, damit Quad-Pumped-Anforderungsadresstransaktionen
möglich
sind, wie sie anhand von 3 und 4 beschrieben
sind. Im Einzelnen werden Speicheradressen und Transaktionsanforderungsparameter
für die
Transaktionen über
die bidirektionalen Busse AHI, ALO und RQ (oder den ADR-Bus) geliefert.
Zusätzlich
bieten die Signale der Busse AHI, ALO und RQ (oder des ADR-Busses)
den Typ der Transaktion, der herkömmlicherweise über einen
Anforderungsbus wie im herkömmlichen
Mikroprozessor-Schnittstellensystem 100 gefordert wird,
und der wie anhand von 4 beschrieben auf verschiedene
Quad-Pumped-Adresspakete
A, B, C, D abgebildet wird. Die Adressimpulse ADSTBP und ADSTBN
dienen zum Zwischenspeichern zugehöriger Anforderungsdatenpakete
während
eines einzigen Zyklus von BCLK[1:0], siehe 3.
-
6 zeigt
ein Blockdiagramm einer Adressbus-Konfigurationslogik 601,
die man dazu verwenden kann, die Adressbus-Konfigurationslogik 507 und/oder
die Adressbus-Konfigurationslogik 509 gemäß einer beispielhaften
Ausführungsform
der Erfindung zu implementieren. Die Adressbus-Konfigurationslogik 601 enthält mindestens
einen Eingang, an den ein Quad-Pumped-Adresskonfigurations-Freigabesignal
QPADDR geliefert wird. Die Adressbus-Konfigurationslogik 601 stellt
Eingänge
und Ausgänge
bereit, an die die Double-Pumped-Adresssignalgruppe A[35:3], ADSTB[1:0],
REQ[4:0] angeschlossen ist, bzw. an die eine Quad-Pumped-Signalgruppe
AHI[2:0], ALO[16:3], RQ[2:0] ADSTBP, ADSTBN gekoppelt ist. Ist bei
Betrieb QPADDR gesetzt, so arbeitet eine Transaktionsanforderungsphase
wie anhand von 3–5 beschrieben über die
Quad-Pumped-Adresssignalgruppe.
Ist QPADDR nicht gesetzt, so arbeitet eine Transaktionsanforderungsphase
wie anhand von 1–2 beschrieben über die
Double-Pumped-Adresssignalgruppe.
-
In
einer Ausführungsform
ist der Mikroprozessor 501 (und/oder der Busagent 503)
mit einer verringerten Anzahl Anschlussstifte konfiguriert, wobei
die Adressbus-Konfigurationslogik 507 (und/oder 509)
die Adress- und Anforderungssignale auf den Bussen AHI, ALO und
RQ (oder dem ADR-Bus) multiplext. Wahlweise ist der Mikroprozessor 501 (und/oder
der Busagent 503) mit einem vollständigen Satz Anschlussstifte konfiguriert,
so dass die Adressbus-Konfigurationslogik 507 (und/oder 509)
entsprechend der Adressbus-Konfigurationslogik 601 konfiguriert
ist, die gemäß einer
Ausführungsform
der Erfindung das Umschalten zwischen dem herkömmlichen Double-Pumped-Adressmodus
und einem Quad-Pumped-Adressmodus ermöglicht. Die mit dem Systembus 505 verbundenen
Vorrichtungen können
so konfiguriert sein, dass sie stets im Quad-Pumped-Adressmodus
arbeiten (z. B. durch feste Verdrahtung, durchgebrannte Widerstände usw.).
Sie können auch
so konfiguriert sein, dass der Betriebsmodus ausgehandelt wird,
beispielsweise während
der Initialisierung (z. B. Einschalten oder Zurücksetzen). In einer Ausführungsform
legt beispielsweise der Mikroprozessor 501 ein oder mehrere
Systembussignale (z. B. Adresssignale) an, und der Busagent 503 legt
ein oder mehrere weitere Systembussignale während des Herstellens der Busverbindung
(Bus-Strapping) an, um den Quad-Pumped-Adressmodus zu fordern. Der
Quad-Pumped-Adressmodus
kann gewählt
werden, falls alle Vorrichtungen auf dem Systembus 505 den
Quad-Pumped-Adressmodus unterstützen
und diesen Modus während
des Herstellens der Busverbindung aushandeln.
-
Fachleute
wissen, dass man Signale mit anderen Signalen zusammenlegen kann,
und dass man sie anders Abbilden kann als dies hier beschrieben
ist. In einer Ausführungsform
enthält
die Adressbus-Konfigurationslogik 507, 509 und 601 Logik,
Schaltungen und/oder Mikrocode. In einer anderen Ausführungsform
enthält
die Adressbus-Konfigurationslogik
einen Durchbrennwiderstand, der während der Fertigung durchgebrannt
wird, um eine bestimmte Adressbuskonfiguration zu erzeugen. In anderen
Ausführungsformen
werden Festwertspeicher, ein Mal beschreibbare Speicher usw. in
Betracht gezogen.
-
7 zeigt
eine Skizze einer Tabelle 700, die eine Signalübereinstimmungsabbildung
zwischen dem Double-Pumped-Adressmodus und dem Quad-Pumped-Adressmodus
gemäß einer
Ausführungsform
der Erfindung für
eine Systemvorrichtung (Mikroprozessor oder Busagent) erläutert, die
beide Adressmodi unterstützt.
Wie dargestellt werden die Signale REQ[2:0] des Double-Pumped-Modus
auf die Signale RQ[2:0] (oder die Signale ADR[2:0]) des Quad-Pumped-Modus
abgebildet. Die Signale REQ[4:3] des Double-Pumped-Modus werden
nicht abgebildet, da sie im Quad-Pumped-Modus nicht verwendet werden.
Die Signale A[16:3] des Double-Pumped-Modus werden auf die Signale
ALO[16:3] (oder die Signale ADR[16:3]) des Quad-Pumped-Modus abgebildet.
Das Signal A[30] des Double-Pumped-Modus wird auf das Signal AHI[0]
(oder das Signal ADR[17]) des Quad-Pumped-Modus abgebildet. Die
Signale A[18:17] des Double-Pumped-Modus werden auf die Signale
AHI[2:1] (oder die Signale ADR[18:17]) des Quad-Pumped-Modus abgebildet. Die Signale A[34:31,
29:19] des Double-Pumped-Modus werden nicht abgebildet, da sie im
Quad-Pumped-Modus nicht verwendet werden. Das Impulssignal ADSTB[0]
wird auf das Signal ADSTBP abgebildet. Das Signal ADSTB[1] wird
hingegen nicht abgebildet. Statt dessen ist gezeigt, dass das Signal
A[35] des Double-Pumped-Modus auf das Signal ADSTBN des Quad-Pumped-Modus
abgebildet wird.
-
Fachleuten
ist geläufig,
dass man die Signale auch anders abbilden kann, als dies hier dargestellt
und beschrieben ist. Obgleich es beispielsweise möglich ist,
das Signal ADSTB[1] auf das Signal ADSTBN abzubilden, können Fachleute
erkennen, dass es einfacher ist, das Signal ADSTBN auf irgendeines
der unbenutzten Adresssignale A[35:31] oder A[29:19] abzubilden.
In verschiedenen Ausführungsformen
kann man die Signale ADR[19:0], ADSTBN und ADSTBP auf irgendeine
beliebige Kombination der Signale REQ[4:0], A[35:3] und ADSTB[1:0]
abbilden.
-
Obwohl
die Erfindung mit zahlreichen Einzelheiten anhand gewisser bevorzugter
Ausführungsformen beschrieben
ist, sind andere Versionen und Varianten möglich und werden in Betracht
gezogen.