DE4292241C2 - Einrichtung und Verfahren zum sequentiellen Durchführen mehrerer Bustransaktionen zwischen einem Prozessor und vorinstallierten Speichermodulen in einem Computersystem - Google Patents
Einrichtung und Verfahren zum sequentiellen Durchführen mehrerer Bustransaktionen zwischen einem Prozessor und vorinstallierten Speichermodulen in einem ComputersystemInfo
- Publication number
- DE4292241C2 DE4292241C2 DE4292241A DE4292241A DE4292241C2 DE 4292241 C2 DE4292241 C2 DE 4292241C2 DE 4292241 A DE4292241 A DE 4292241A DE 4292241 A DE4292241 A DE 4292241A DE 4292241 C2 DE4292241 C2 DE 4292241C2
- Authority
- DE
- Germany
- Prior art keywords
- bus
- processor
- memory
- signals
- clock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Description
Die vorliegende Erfindung bezieht sich auf das Gebiet der
Busprotokolle in Computersystemen. Insbesondere bezieht sich
die Erfindung auf eine Einrichtung mit den Merkmalen des Ober
begriffs des Patentanspruchs 1 und ein Verfahren zum Durch
führen von schnellen Datenübertragungen zwischen unterschiedli
chen Komponenten eines Computers.
Viele bekannte Computersysteme weisen eine Vielzahl von Mo
dulen, wie beispielsweise Prozessormodulen, Speichermodulen
usw. auf, welche über einen Systembus kommunizieren. Typischer
weise können die Module unter der Kontrolle eines gemeinsamen
oder synchronisierten Taktsignals stehen. Grundsätzlich stellt
eine solche Konfiguration ein CPU-Taktsignal auf dem Bus zur
Verfügung. Einzelne Module erzeugen Signale auf dem Bus, die zu
dem CPU-Taktsignal synchron sind. Während des Entwurfs der ver
schiedenen Module wird angenommen, daß eine determinierte Be
ziehung existiert. Module, wie beispielsweise die Verarbei
tungseinheit können dann so konstruiert werden, daß sie eine
feste Anzahl von Wartezuständen zu ihren Zugriffszyklen hinzu
fügen, um sie an langsamere Module anzupassen. Es ist mehr als
wahrscheinlich, daß eine solche Systemkonstruktion Änderungen
bei den einzelnen Modulen erfordert, wenn beispielsweise die
CPU-Taktgeschwindigkeit erhöht wird. Folglich ist es schwierig,
einen Systemmodul in dem Computersystem zu ersetzen, ohne an
dere Module zu beeinflussen.
Ferner können bekannte Computersysteme typischerweise eine.
Mehrzahl von Konfigurations- oder "Dip"-Schaltern benutzen. Die
Schalter werden verwendet, um der Prozessoreinheit Informatio
nen über die Konfiguration der installierten Module zur Verfü
gung zu stellen. Beispielsweise kann ein spezielles System mit
einer einen vier Megabyte Speicher aufweisenden ersten Spei
cherplatine und einer einen zusätzlichen acht Megabyte Speicher
aufweisenden zweiten Speicherplatine konfiguriert werden. Bei
dieser Konfiguration können Konfigurationsschalter entweder auf
der Hauptsystemplatine (Mutterplatine oder Basisplatine) oder
auf den einzelnen Ergänzungsmodulen so eingestellt werden, daß
sie anzeigen, daß ein vier Megabyte Speicher auf der ersten
Speicherplatine und ein acht Megabyte Speicher auf der zweiten
Speicherplatine installiert sind.
Bei solchen Systemen kann eine Adreßdecodierlogik auf jeder
Speicherplatine im System benutzt werden. Bei dem oben be
schriebenen Beispielsystem kann auf der Grundlage der Einstel
lung der Konfigurationsschalter die Adreßdecodierlogik so be
nutzt werden, daß die erste Platine Speicher im Systemspeicher
raum von der Speicheradresse 0 bis zu der Speicheradresse 4
Millionen (M)-1 und die zweite Platine Speicher in dem System
speicherraum von der Speicheradresse 4M bis zu der Speicher
adresse 12M-1 adressiert.
Zusätzlich zu den veränderlichen Taktgeschwindigkeiten von
Mikroprozessoren stellen bestimmte moderne Mikroprozessoren ho
her Leistung Moden zu Verfügung, bei denen Daten über einen Bus
während jedes Taktzyklus des Mikroprozessors übertragen werden.
Eine solche Übertragung ist als "Burst"-Modus bekannt, weil von
der zentralen Verarbeitungseinheit Adreßinformationen nicht bei
jedem CPU- oder Speichertaktzyklus zum Speicher getrieben zu
werden brauchen. Dies kann nützlich sein, wenn ein gesamter
Block zusammenhängender Daten erforderlich ist. Der Mikropro
zessor kann die Übertragung eines "Blocks" bzw. zusammenhängen
der Speicherplätze von Daten im Unterschied zu einer Übertra
gung einzelner Worte von Daten anfordern (siehe z. B. EP-A-0 348
113, EP-A-0 358 448 bzw. US-PS 4,370,712). Üblicherweise über
tragen Mikroprozessoren geringerer Leistungsfähigkeit Daten,
indem sie Adreßinformationen abwechselnd mit Dateninformationen
über den Bus treiben. Dies verursacht eine Verzögerung beim Zu
greifen auf Daten, wenn fortlaufende Adressen des Speichers von
dem Prozessor angefordert werden. Eine andere Einschränkung bei
bekannten synchronen Busarchitekturen ist, daß sie keine Mittel
zum Übertragen von Daten in fortlaufenden Buszyklen zur Verfü
gung stellen, wie dies von modernen zentralen Verarbeitungsein
heiten (CPU's) hoher Leistung gefordert wird.
Daher ist es Aufgabe der Erfindung, einen Datenübertra
gungsmodus zur Verfügung zu stellen für eine maximale Rate, bei
der ein Speicher Daten akzeptieren oder liefern kann, bzw. für
"burst" Übertragungsmodi zwischen Komponenten, die mit unter
schiedlichen taktgebenden Uhren arbeiten.
Diese Aufgabe wird erfindungsgemäß mit einer Einrichtung
zum Ausführen von Computerbustransaktionen mit den Merkmalen
des Patentanspruchs 1 sowie mit einem Verfahren mit den Merk
malen des Patentanspruchs 4 gelöst.
Der Computerbus weist bei der Erfindung eine Übertragungs
beginn-Anzeigeeinrichtung für eine fortlaufende Datenübertra
gung auf. Der Bus weist ferner eine Startadressenübermitt
lungseinrichtung auf, welche den Beginn der fortlaufenden
Datenübertragung anzeigt. Der Bus weist ferner eine Datenüber
tragungsbeendigungs-Anzeigeeinrichtung für eine fortlaufende
Datenübertragung auf, welche von der antwortenden Einheit ver
wendet wird, um anzuzeigen, daß die fortlaufenden Daten voll
ständig übermittelt worden sind. Schließlich weist der Bus eine
Datenübermittlungseinrichtung zum Übermitteln der Daten auf,
welche in dem fortlaufenden Übertragungszyklus übertragen
werden. In dem bevorzugten Ausführungsbeispiel ist die fort
laufende Datenübertragung als "Burst" bekannt, und vier 32-Bit-
Worte (jedes 32-Bit-Wort ist ein DWORD) für eine Gesamtzahl von
128 Bits werden übertragen. Ferner weist der Bus eine
Datenübertragungsanforderungseinrichtung und eine Datenüber
tragungsfreigabeeinrichtung und Adreßzwischenspeicher(Latch)-
Einrichtungen auf.
Das erfindungsgemäße Verfahren erlaubt das Übertragen von
Daten über einen asynchronen Bus von einem Computerspeicher zu
einem Prozessor in fortlaufenden Prozessortaktzyklen, wobei der
Prozessor eine Startadresse der fortlaufenden Übertragung über
mittelt und die Art des Übertragungszyklus. Dann übermittelt
der Prozessor ein Übertragungsbeginnsignal der fortlaufenden
Übertragung. In einem bevorzugten Ausführungsbeispiel ist die
ses Übertragungsbeginnsignal als ein Befehls-Strobe-Signal
bekannt und wird verwendet, um dem Speicher anzuzeigen, daß
Daten (bis zu 128 Bits), beginnend mit der Startadresse, ange
fordert wurden, um sie zu übertragen. In einem bevorzugten
Ausführungsbeispiel werden Statusleitungen verwendet, um die
Art der Übertragung anzuzeigen, beispielsweise wird ein
"Burst"-Modus bzw. eine Übertragung fortlaufender Daten
angezeigt. Das Verfahren weist ferner die Übermittlung von bis
zu 128 Bits bzw. vier 32-Bit-DWORD's von dem Speicher auf,
wobei die Daten in einer Speicher-definierten Zeitperiode über
den asynchronen Bus für den Prozessor verfügbar sind.
Ein weiterer Vorteil der Erfindung besteht darin, daß alle
vorteilhaften Eigenschaften ohne Einstellung von Dipschaltern
erreicht werden.
Vorteilhafte Weiterbildungen der Erfindung sind in den Un
teransprüchen gekennzeichnet.
Die vorliegende Erfindung ist als Beispiel und ohne Be
schränkung in den begleitenden Figuren veranschaulicht, in wel
chen gleiche Bezugszeichen gleiche Elemente bezeichnen und in
welchen:
Fig. 1a ist ein Blockschaltbild, das ein Computersystem
darstellt, wie es von dem bevorzugten Ausführungsbeispiel der
vorliegenden Erfindung verwendet werden kann.
Fig. 1b ist ein Blockschaltbild, das ein Mehr-Prozessor-
Computersystem darstellt, wie es von dem bevorzugten Ausfüh
rungsbeispiel der vorliegenden Erfindung verwendet werden kann.
Fig. 2 ist ein Zeitdiagramm, das Betriebsstart-Speicher-
Identifizierungssignale veranschaulicht.
Fig. 3a ist ein Zeitdiagramm, das ein Zuweisungsentschei
dungsprotokoll veranschaulicht.
Fig. 3b ist ein Zeitdiagramm, das ein in dem bevorzugten
Ausführungsbeispiel verwendetes Bus-Master-Austausch-Protokoll
veranschaulicht.
Fig. 4a ist ein Zeitdiagramm, das einen deterministischen
Lesezyklus veranschaulicht.
Fig. 4b ist ein Zeitdiagramm, das einen asynchronen Lesezy
klus veranschaulicht.
Fig. 4c ist ein Zeitdiagramm, das einen deterministischen
Schreibzyklus veranschaulicht.
Fig. 4d ist ein Zeitdiagramm, das einen asynchronen
Schreibzyklus veranschaulicht.
Fig. 5 zeigt ein Zeitdiagramm eines in dem bevorzugten Aus
führungsbeispiel verwendeten Burst-Lesezyklus.
Fig. 6a bis 6d zeigen eine Architektur, die in dem bevor
zugten Ausführungsbeispiel zum Antworten auf Burst-Modus-Über
tragungen über einen asynchronen Computerbus verwendet wird.
Fig. 7 zeigt ein Zeitdiagramm eines CPU-Modul-Konfigurati
onszyklus, der in dem bevorzugten Ausführungsbeispiel verwendet
wird.
Fig. 8 zeigt ein Zeitdiagramm für einen deterministischen
Snoop-Zyklus, der in dem bevorzugten Ausführungsbeispiel ver
wendet wird.
Fig. 9 zeigt ein Zeitdiagramm eines asynchronen Snoop-Zy
klus zu einer nicht-modifizierten Zeile oder einen Cache-Fehl
versuch.
Fig. 10 zeigt ein Zeitdiagramm eines ein Rückschreiben er
fordernden Invalidisierungszyklus, wie er in dem bevorzugten
Ausführungsbeispiel verwendet wird.
Fig. 11 zeigt einen CPU-Modul-Rückschreibzyklus.
Fig. 12 zeigt das Cache-Konsistenz-Verfahren, wie es von
dem bevorzugten Ausführungsbeispiel verwendet wird.
Es wird ein Verfahren und eine Schaltungsanordnung für eine
fortlaufende Übertragung von Daten auf einem asynchronen Bus
beschrieben. In der folgenden Beschreibung werden zahlreiche
spezielle Details ausgeführt, wie beispielsweise Signalnamen
usw., um ein besseres Verständnis der Erfindung zu erreichen.
Für den Fachmann ist es jedoch klar, daß die Erfindung auch
ohne diese speziellen Details praktiziert werden kann. In ande
ren Fällen werden bekannte Schaltungen, Strukturen und Techni
ken nicht im Detail gezeigt, um das Verständnis für die Erfin
dung nicht unnötig zu erschweren.
Es wird ein Verfahren zum "Entkoppeln" des Prozessors eines
modernen Computersystems von den anderen Modulen des Computer
systems beschrieben. Die interne Taktgeschwindigkeit des Pro
zessors ist unabhängig von den Taktgeschwindigkeiten der ande
ren Module des Computersystems.
Bei modernen Computersystemen ist es bekannt, Modulen, wie
beispielsweise Prozessoren und Speichern zu gestatten, asyn
chron zueinander zu arbeiten. Jedoch ist in solchen Computersy
stemen mit jeder Kommunikation zwischen den unabhängigen
Blöcken ein Nachteil verbunden. Der "Nachteil" kann anhand des
Zeitverlustes oder der Wartezustände gemessen werden, die auf
grund der Synchronisierung eines in einen Modul einlaufenden
Signals mit der Taktgeschwindigkeit des Moduls aufgebürdet wer
den.
Das bevorzugte Ausführungsbeispiel offenbart ein Betreiben
des Prozessors und anderer Module in einem asynchronen Modus,
um die Synchronisationsnachteile bekannter Computersysteme zu
vermeiden, während Übertragungen bei der maximalen Geschwindig
keit der zentralen Verarbeitungseinheit und/oder der Speicher
stattfinden können. Außerdem sorgt das bevorzugte Ausführungs
beispiel für die Aufrechterhaltung der Konsistenz von Daten,
die sich in den Cache-Speichern des Computersystems befinden.
Allgemein offenbart das bevorzugte Ausführungsbeispiel
einen Prozessor (oder einen anderen Bus-Master), der eine An
forderung zum Speichern (oder einer anderen Ressource, wie bei
spielsweise einer Ein/Ausgabe-Einheit) über einen Bus macht.
Zum Zeitpunkt, an dem die Anforderung von dem Prozessor initi
iert wird, nimmt der Prozessor an, daß eine deterministische
Übertragung stattfinden wird (d. h., der Prozessor kennt die
Zeit, die im schlimmsten Fall erforderlich ist, um auf einen
gegebenen Speicher zuzugreifen). Der Prozessor wartet auf eine
Antwort von dem Speicher. Der Speicher antwortet auf die Anfor
derung mit Informationen über seinen Typ, seine Geschwindig
keit, seinen Betriebsmodus (deterministisch und asynchron) und
die Art des unterstützten Übertragungszyklus.
Wenn der Speicher antwortet, daß auf ihn in einer determi
nistischen Weise zugegriffen wird, wartet der Prozessor die ge
eignete Anzahl von Taktzyklen (die Anzahl der Taktzyklen, die
auf der Grundlage der von dem Modul zurückgegebenen Geschwin
digkeitsinformation bestimmt wird) und liest Daten von dem Bus.
Wenn der Speicher antwortet, daß auf ihn nicht in einer deter
ministischen Weise zugegriffen werden kann (d. h., es muß auf
ihn asynchron zugegriffen werden), kommunizieren der Prozessor
und der Speicher in einer asynchronen Weise mit den innewohnen
den Synchronisationsnachteilen.
Das bevorzugte Ausführungsbeispiel unterstützt eine 32-Bit-
Bus-Architektur, die die IBM-kompatible Standard-PC-AT-, Micro
channel-Architektur(MCA)- oder EISA (erweiterte Industriesy
stem-Architektur)-Schnittstelle ergänzt. Der Bus wird primär
als Speicherbus verwendet, er ist jedoch in der Lage mehrere
Bus-Master und I/O-Systeme zu unterstützen. Dies gestattet eine
Verwendung der vorliegenden Erfindung in anderen Ausführungs
beispielen, die eine hohe Busbandbreite erfordernde Koprozesso
ren haben.
In Fig. 1a ist ein Blockschaltbild eines Computersystems
des bevorzugten Ausführungsbeispiels veranschaulicht. Ein Pro
zessormodul 101 weist einen Prozessor 102 auf, der einen Cache-
Speicher 103 mit seinen zugeordneten Adreß-Tag-Puffer 104 und
eine Steuerschaltung 105 hat. Der Prozessor 102 und der Adreß-
Tag-Puffer 104 sind über einen Adreßbus 107 mit einer Puffer
schnittstelle 106 gekoppelt. Der Prozessor 102 ist ebenso wie
der Cache-Speicher 103 ferner über einen Datenbus 108 mit der
Pufferschnittstelle 106 gekoppelt. Der Prozessormodul 101 ist
über die Pufferschnittstelle 106 mit dem Systembus 120 gekop
pelt. Der Prozessormodul 101 kann auf einen Speicher, wie bei
spielsweise den Speicher 130, über den Systembus 120 zugreifen.
Der Prozessormodul 101 kann darüberhinaus über den Bus 120 auf
eine Decodierschaltung 140, eine Expansionsschaltungseinrich
tung 150 und eine Schnittstellenschaltung 160 zugreifen, wobei
er auf eine Schnittstelle 180 zur Kommunikation mit anderen
Einrichtungen und/oder I/O-Baugruppen 181 zugreift.
Wie unter Bezugnahme auf Fig. 2 näher beschrieben werden
wird, wird der Speicher des bevorzugten Ausführungsbeispiels zu
dem Zeitpunkt, an dem das Computersystem eingeschaltet wird,
konfiguriert (d. h. die Speichermodule werden Adressen im Sy
stemspeicheradreßraum zugewiesen). Das bevorzugte Ausführungs
beispiel weist einen Adreßdecodiermodul 140 auf, der mit dem
Systembus 120 gekoppelt ist, um den Systemspeicher beim Ein
schalten zu konfigurieren. Jeder Speichermodul in dem System
präsentiert zum Zeitpunkt der Systemeinschaltung Konfigurati
onsinformationen dem Adreßdecodiermodul 140 und stellt eine
Adreßdecodierung für die Ressourcenauswahl während der normalen
Betriebszeit zur Verfügung.
Eine Mehrzahl von Expansionssteckplätzen, wie beispiels
weise der Expansionssteckplatz 150 ist mit dem Systembus 120
gekoppelt. Zusätzliche Speicher oder andere Ressourcen
(Betriebsmittel) können in diese Expansionssteckplätze einge
steckt werden und können mit dem Prozessormodul 101 über den
Systembus 120 kommunizieren. I/O-Module oder andere Ressourcen
können mit dem Systembus 120 über die Schnittstelle 160 gekop
pelt werden und haben dann die Möglichkeit, mit dem Prozessor
modul 101 über den Systembus 120 zu kommunizieren.
In einem alternativen Ausführungsbeispiel, wie es in Fig.
1b gezeigt ist, können mehrere Prozessormodule mit dem Bus 120
gekoppelt werden. Wie in Fig. 1b gezeigt ist, können mehrere
Verarbeitungsmodule, wie beispielsweise 151 und 161, mit einer
Busschnittstelleneinheit 170 gekoppelt werden, und eine
Steuereinheit 171 ist dann mit dem Bus 120 gekoppelt. Jeder der
Verarbeitungsmodule kann einen Prozessor, wie beispielsweise
152 oder 162, und einen mathematischen Koprozessor, wie bei
spielsweise 154 oder 164 aufweisen. Schließlich kann jeder der
Rechenmodule einen Cache-Speicherbereich 153 bzw. 163 aufwei
sen, welcher Hochgeschwindigkeitsübertragungen zum und vom Bus
120 erleichtert.
Für den Rest dieser Anmeldung wird auf Signale grundsätz
lich über Signalnamen Bezug genommen. Es ist klar, daß diese
speziellen Signalnamen ohne eine Abweichung von Umfang und Sinn
der vorliegenden Erfindung variiert werden können. Ferner be
zieht sich die verwendete Notation normalerweise auf Signalzu
stände, die aktiv oder inaktiv sind, was ebensolche Gegensätze
ausdrückt wie High oder Low, Eins oder Null, Wahr oder Falsch
usw. Im allgemeinen werden in der Beschreibung des bevorzugten
Ausführungsbeispiels Signale, welche aktiv sind, wenn sie auf
niedrigem Pegel sind, mit einem angehängten Sternchen ("*") be
zeichnet. Für den Fachmann ist es klar, daß die aktiven Zu
stände der Signale von denen der vorliegenden Erfindung inver
tiert sein können, ohne von dem erfinderischen Aspekt der vor
liegenden Erfindung abzuweichen. Als Beispiele dieser Signalbe
zeichnungskonvention ist im folgenden die Tabelle I angegeben.
Beim Beschreiben von Signalen läßt sich auf viele Signale
leichter oder herkömmlich Bezug nehmen in Form einer Gruppe.
Demgemäß werden beim Schreiben von Gruppen von Signalen Signale
mit Hilfe einer Dezimal-Basis-Konvention bezeichnet, wobei bei
spielsweise MD(31 : 0) 32 Datenleitungen eines Busses bezeichnet.
Innerhalb jeder Gruppe ist das am niedrigsten bewerte Bit der
Gruppe mit einem Suffix von "0" bezeichnet, z. B. bezeichnet MD0
die niedrigstbewertete Datenleitung des Busses und MD31 bezieht
sich auf die am höchsten bewertete Datenleitung.
Darüberhinaus hat das bevorzugte Ausführungsbeispiel eine
Mehrzahl von Kartensteckplätzen zum Koppeln von Karten an den
Systembus 120. In bestimmten Fällen haben die Signalnamen einen
kleinen Bustaben "n", der dem Signalnamen folgt. In solchen
Fällen entspricht das "n" einem der Kartensteckplätze. Bei
spielsweise bezeichnet SELn* eines einer Mehrzahl von Signalen,
wobei jedes der Mehrzahl von Signalen einem Kartensteckplatz
zugeordnet ist. SEL3* bezieht sich auf ein Signal, das dem Kar
tensteckplatz Nummer 3 zugeordnet ist. Bestimmte von dem bevor
zugten Ausführungsbeispiel verwendete Signale werden im folgen
den erörtert.
Diese Gruppe von Signalen sind Adreßsignale, die von einem
Anforderer zu Beginn eines Zugriffs ausgegeben werden.
MA(31 : 2) MA(31 : 2) bezieht sich auf die 30 Tri-State-Adreß
leitungen auf dem Adreßbus des bevorzugten Ausführungsbei
spiels. Es ist nicht erforderlich, daß die Adreßleitungen von
dem Prozessor Latch-gespeichert werden müssen, und die Adreß
leitungen brauchen nicht während des gesamten Buszyklus gültig
zu bleiben.
MBE(3 : 0)* Diese Leitungen beziehen sich jeweils auf die
vier Bytes eines 32-Bit-Worts, das von den Signalleitungen
MA(31 : 2) adressiert wird. Zusammen bilden die MBE(3 : 0)* und
MA(31 : 2) den 32-Bit-Bus-Adressiermechanismus der vorliegenden
Erfindung.
MD(31 : 0) Bezieht sich auf die 32 Tri-State-Datenleitungen
des Datenbusses des bevorzugten Ausführungsbeispiels.
Diese Signale werden durch den Anforderer ausgegeben, wenn
er den Bus anfordert und Zugriff auf ihn gewinnt, und von dem
Zuweiser (arbiter), wenn er den Zugriff auf den Bus gestattet.
REQ* Das Signal REQ* zeigt an, daß ein Prozessor die Be
nutzung des Systembusses anfordert. Wenn der Prozessor bei
spielsweise die Benutzung des Systembusses anfordert, aktiviert
der Prozessor das Signal REQ* (bringt es auf einen niedrigen
Pegel). Der Prozessor fährt mit der Aktivierung des Signals
REQ* solange fort, wie das Signal GRNT* aktiv bleibt.
STAT(2 : 0) Diese drei Signale definieren die Art der Über
tragung, die von dem Busteilnehmer angefordert worden ist.
Übertragungen können entweder I/O- oder Speicher-Operationen
sein.
GRNT* In Abhängigkeit davon, ob ein Signal REQ* aktiviert
worden ist oder ob REQ* inaktiv ist und es keine anderen Anfor
derungen für Busressourcen gibt, gestattet ein zentraler Zuwei
sungsentscheider (arbiter) dem anfordernden Prozessor die Ver
wendung des Systembus, wenn sämtliche anhängigen Anforderungen
höherer Priorität bedient worden sind. Der zentrale Zuweisungs
entscheider aktiviert das Signal GRNT*, um dem anfordernden
Prozessor zu signalisieren, daß ihm der Zugriff auf den System
bus gestattet worden ist. Nach dem Gestatten des Zugriffs auf
den Bus für einen Anforderer kann der zentrale Zuweisungsent
scheider nur dann durch Inaktivierung des Signals GRNT* den Zu
griff abbrechen, nachdem der Prozessor das Signal REQ* akti
viert hat. Dem Prozessor wird gestattet, den Informationsaus
tausch auf dem aktuellen Buszyklus zu beenden, wenn GRNT* inak
tiviert ist, und er wird dann sein Signal REQ* deaktivieren.
Diese Signale werden aktiviert (bzw. im Falle von RDY inak
tiviert) von einem Modul, der auf eine Anforderung von einem
Busteilnehmer antwortet.
RESP(1 : 0) Diese Gruppe von Signalen wird verwendet, um die
Art des Zugriffsmodus anzuzeigen, den ein spezieller ausgewähl
ter Speicher unterstützen kann.
SPC(1 : 0) Diese Gruppe von Signalen definiert die Zugriffs
geschwindigkeit einer bestimmten ausgewählten Speichereinrich
tung.
CCEN* Wenn sie aktiv ist, zeigt diese Leitung an, daß der
bestimmte Speicherzugriff Cache-speicherbar ist.
RDY Dieses Signal ist normalerweise auf hohem Pegel auf
dem Bus. Es wird während Bus-Leer-Zyklen auf den hohen Pegel
gezogen. Wenn ein bestimmter antwortender Teilnehmer in einem
deterministischen Modus antworten kann, gibt der Teilnehmer
nicht das Signal RDY aus und es bleibt hoch (aktiv) auf dem
Bus. Wenn der antwortende Teilnehmer in einem asynchronen Modus
antwortet, dann treibt der Teilnehmer das Signal RDY in den in
aktiven Zustand, um ein asynchrones Handshaking-Protokoll zu
initiieren.
WT/WB* Wählt entweder ein Durchschreib- oder ein Rück
schreib-Ersetzungsattribut aus.
WPROT* Zeigt, wenn es aktiv ist, an, daß dieser Speicher
zugriff ein Durchschreib-Zugriff ist.
Diese Signale werden als Befehle verwendet, um Zugriffe auf
den Bus zu initiieren und zu beenden und um eine Rücksetz-Se
quenz anzuzeigen.
ASTB* Das Signal ASTB* ist die Bus-Zugriffs-Strobe-Lei
tung, die den Beginn und das Ende von Busereignissen anzeigt.
CSLTCHE*/CSLTCHO* Das Signal CSLTCHE*/CSLTCHO* wird von
einem Anforderer verwendet, um eine Schnellseitenmodus-Spei
cheranforderung für entweder geradzahlige (CSLTCHE*) oder unge
radzahlige (CSLTCHO*) Speicherplätze zu initiieren und zu been
den. Das Signal ASTB* wird aktiv gehalten, um den Speicher ak
tiv zu halten, und einzelne Zyklen werden initiiert und beendet
von dem Signal CSLTCHE*/CSLTCHO*.
HRDRES Dies ist das Rücksetzsignal auf dem Systembus, das
verwendet wird, um den Modulen in den Expansionssteckplätzen
den Start einer Rücksetzsequenz, wie beispielsweise zum Zeit
punkt des Einschaltens des Systems, anzuzeigen.
SELn* Die Leitung SELn* wird von der Adreßdecodierlogik
erzeugt und weist, wenn sie aktiv ist, auf eine ausgewählte
Ressource hin, auf deren Modul zugegriffen wird. Jede Partition
(von welchen es vier pro Speichersteckplatz gibt) hat ihr eige
nes SELn*-Signal, wobei der spezielle Steckplatz durch das n
angezeigt wird.
MEM* Allgemeiner Auswahl-Kern, der die 640 Kilobyte- bis
Ein-Megabyte-Lücke berücksichtigt, die in IBM-PC/AT-, MCA- oder
EISA-Architekturen vorhanden ist, und andere Zugriffe, wie bei
spielsweise Eingabe/Ausgabe-Anforderungen, kompatibler Com
putersysteme berücksichtigt. Es wird gemeinsam mit dem SELn*
von der Speicherressource verwendet, um die Auswahl festzustel
len.
Die folgenden Signale sind für Implementierungen definiert,
die Cache-Speicherprotokolle mit Durchschreib-(WT)- und Rück
schreib-(WB)-Ersetzungsmechanismen unterstützen, und halten die
Konsistenz der Daten zwischen dem Cache-Speicher und dem Sy
stemspeicher aufrecht.
FLUSH* Das Signal FLUSH* wird verwendet, um einem primä
ren/sekundären Cache-Speicher anzuzeigen, daß er seine modifi
zierten Daten zurückschreiben und dann seine TAG-Einträge inva
lidisieren soll, wenn ein Rückschreib-Ersetzungsalgorithmus im
plementiert ist. Ein Durchschreib-Cache invalidisiert nur seine
TAG-Einträge.
SYNC* Das Signal SYNC* wird verwendet, um dem Rückschreib-
Cache-Speicher anzuzeigen, daß er seine modifizierten Einträge
rückschreiben soll. Im Gegensatz zum FLUSH* macht es nicht die
TAG-Einträge ungültig. Dieses Signal wird nicht für eine Durch
schreib-Cache-Implementierung verwendet.
SSTB* Der Zustandswechsel des Signals SSTB* zeigt an, daß
an der Schnittstelle gültige "Snoop"-Adressen verfügbar sind
und daß der CPU-Modul einen Snoop-Zyklus ausführen sollte.
Snoop-Zyklen werden weiter unten detaillierter erörtert.
SPRDY* Das Signal SPRDY* wird von den das asynchrone
Snoop-Zyklus-Protokoll implementierenden CPU-Modulen verwendet.
Wenn ein Snoop-Zyklus angefordert wurde, zeigt die Aktivierung
von SPRDY* an, daß der Snoop-Status von dem CPU-Modul verfügbar
ist.
MODIFIED* MODIFIED* ist das Snoop-Statussignal, das in
Verbindung mit der Aktivierung von SPRDY* verfügbar ist. Wenn
es aktiv ist, zeigt es an, daß der CPU-Modul einen Rückschreib-
Zyklus zum Speicher ausführen muß. Wenn es inaktiv ist, braucht
der CPU-Modul keinen Rückschreib-Zyklus auszuführen.
Im folgenden wird unter Bezugnahme auf Fig. 2 das von dem
bevorzugten Ausführungsbeispiel verwendete Verfahren zum Iden
tifizieren der Speichergröße genauer beschrieben. Das bevor
zugte Ausführungsbeispiel gestattet es den Platinen in dem Com
putersystem, welche vom Prozessor zugreifbaren Speicherraum
enthalten, die zum Zeitpunkt des Anfahrens des Systems verfüg
bare Speichergröße zu identifizieren. Für den Fachmann ist es
klar, daß die Speichergrößenidentifikation nicht genau zum Ein
schalt-Zeitpunkt stattzufinden braucht, und daß andere System-
Management-Funktionen vor der Speichergrößenidentifikation auf
treten können. Ferner kann ein Fachmann ein System, das die
Verfahren der vorliegenden Erfindung implementiert, erkennen,
welches eine Umverteilung des Systemspeichers nach dem Ein
schalten des Computersystems gestattet. Beispielsweise kann zu
sätzlicher Speicher als für den Prozessor der vorliegenden Er
findung zugreifbar nach dem Einschalten zugewiesen werden.
Die vorliegende Erfindung weist einen zentralen Adreßdeco
diermodul auf, der als Decodiermodul 140 in Fig. 1 gezeigt ist.
Obwohl das bevorzugte Ausführungsbeispiel einen separaten Modul
für die Implementierung der Decodierfunktion lehrt, erkennt der
Fachmann, daß andere Einrichtungen verwendet werden können,
beispielsweise durch Verwendung einer Mehrzweck-Verarbeitungs
einheit zum Decodieren der Adreßsignale und Zuweisen des Sy
stemspeicheradreßraums. Der Adreßdecodiermodul Latch-speichert
die Größeninformationen, die er von jeder Speicherpartition in
dem System empfangen hat. Der Adreßdecodiermodul weist dann Sy
stemspeicherraum zu jeder Speicherpartition in dem System zu.
Der Systemadreßraum von dem Speicherplatz 0 bis (Größe der
ersten Speicherpartition -1) ist der ersten Speicherpartition
zugewiesen. Der Systemadreßraum von dem Speicherplatz (Größe
der ersten Speicherpartition) bis zum Speicherplatz (Größe der
zweiten Speicherpartition -1) ist der zweiten Speicherpartition
zugewiesen. Der Systemadreßraum vom Speicherplatz (Größe der
ersten Speicherpartition plus Größe der zweiten Speicherparti
tion) bis zum Speicherplatz (Größe der ersten Speicherpartition
+ Größe der zweiten Speicherpartition + Größe der dritten Spei
cherpartition -1) ist der dritten Speicherpartition zugewiesen.
Dieses Muster setzt sich fort für die Zuweisung des System
adreßraums zu jeder Speicherpartition in dem System.
Wie anhand von Fig. 2 gezeigt ist, wird bei dem bevorzugten
Ausführungsbeispiel eine Zustandsmaschine in der Adreßdecodier
schaltung von dem aktivierten Signal HRDRES 201 so aktiviert,
wie zu dem Zeitpunkt, an dem das System eingeschaltet wird,
oder zu anderen Zeitpunkten während des Systembetriebs, wenn
ein System-Rücksetzen erforderlich ist (Zeitpunkt t1). Die Zu
standsmaschine hält das Signal HRDRES während des Selbst-Iden
tifizierungsprozesses aktiv. Die Zustandsmaschine setzt einen
internen Adreßzähler auf Null. Dieser Zähler wird zur Zuweisung
des Speicheradreßraums für die verschiedenen Partitionen ver
wendet. Dann treibt die Zustandsmaschine das Signal SELn* 202
für den Steckplatz 0 auf aktiv (Zeitpunkt t2). Wenn es eine
Platine im Steckplatz 0 gibt, gibt sie die Konfigurationssi
gnale RESP(1 : 0)*, SPD(1 : 0)* 204 aus, um die Größe des in dem
Steckplatz verfügbaren Speichers anzuzeigen. In dem bevorzugten
Ausführungsbeispiel werden die Signale RESP(1 : 0)*, SPD(1 : 0)*
204 auf dem Bus über Signalleitungen ausgetauscht, die während
der Nicht-Rücksetz-Perioden für andere Signale verwendet wer
den. Die ausgetauschten Speichergrößeninformationen werden un
ter Bezugnahme auf Tabelle II verständlich.
Wie man anhand von Tabelle II sehen kann, wird in dem Falle,
daß ein Modul in einem Steckplatz nicht vorhanden ist oder wenn
ein Modul keinen verfügbaren Systemspeicher aufweist, eine Sta
tus-Information zurückgegeben, die anzeigt, daß kein Speicher
(Null Megabytes) verfügbar ist.
In dem Falle des zweiten Ausführungsbeispiels wird das Si
gnal SELn* verwendet, um eine Partition zur Schaffung von Spei
cherkonfigurationsinformationen auszuwählen. Wie man anhand von
Fig. 2 sieht, wird das Signal HRDRES 201 zum Zeitpunkt t1 akti
viert. In Abhängigkeit von dem aktivierten Signal HRDRES be
ginnt der Decodiermodul jeden der Steckplätze nach Speicherkon
figurationsinformationen abzufragen, indem er das geeignete Si
gnal SELn* 202 ausgibt. Beispielsweise gibt der Decodiermodul
zuerst das Signal SELn* 202 aus, um zum Zeitpunkt t2 Steckplatz
0 auszuwählen. Der Modul in Steckplatz 0 gibt dann Konfigurati
onsinformationen auf die Leitungen RESP(1 : 0)*, SPD(1 : 0)* 204
zum Zeitpunkt t3 aus und hält gültige Informationen auf diesen
Leitungen aufrecht, bis der Decodiermodul das Signal SELn* 202
zum Zeitpunkt t4 deaktiviert. Der Modul am Steckplatz 0 stoppt
dann das Ausgeben gültiger Informationen zum Zeitpunkt t5. Wenn
die erste Partition in der ersten Speicherressource mit einer
Speicherkonfiguration von mehr als 0 Megabytes antwortet, in
krementiert der Decodiermodul den internen Zähler und weist in
der oben beschriebenen Weise Systemadreßraum dem Modul zu. Die
ser Zyklus wird für jeden Steckplatz wiederholt, indem der De
codiermodul das geeignete Signal SELn* 202 ausgibt und der
Speicher an der entsprechenden Partition durch Ausgeben der Si
gnale RESP(1 : 0)* und SPD(1 : 0)* 204 während der Zeit t6 antwor
tet.
Die Zustandsmaschine sperrt ihre Steuerung des Signals
HRDRES 201 nach Abschluß dieses Zyklus für die letzte Speicher
partition.
Der Adreßdecodiermodul identifiziert während nachfolgender
Informationsaustausche zwischen den Modulen in dem System den
geeigneten Speichermodul, der einer gegebenen Adresse ent
spricht. Dieses Protokoll ermöglicht den Fortfall von Konfigu
rationsschaltern auf der Mutterplatine des Systems zum Konfigu
rieren des Speichers oder einzelner Speichermodule. Ferner ist
die Adreßdecodierlogik zentral im Adreßdecodiermodul 140 ange
ordnet. Dies beseitigt die Notwendigkeit einer Adreßdecodier
schaltung auf jedem der einzelnen Speichermodule.
Die vorliegende Erfindung offenbart drei Zuweisungsent
scheidungszyklen zum Zuweisen des Zugriffs auf den Systembus
durch einen Anforderer. Im allgemeinen legt der Prozessor sein
Signal REQ* an. Ein zentraler Zuweisungsentscheider empfängt
außerdem eine separate Anforderung für den I/O-Bus-Zuweisungs
entscheider für potentielle Anforderungen in dem System. Der
zentrale Zuweisungsentscheider (Arbiter) bewertet die Anforde
rungen und gewährt den Besitz über den Bus, wie in Verbindung
mit den Fig. 3a und 3b beschrieben werden wird. Die drei Zuwei
sungsentscheidungszyklen werden bezeichnet als: (1) normale Zu
weisungsentscheidung, (2) Austausch-Protokoll und (3) Vorbele
gungsprotokoll.
Zunächst wird auf Fig. 3a Bezug genommen, wo das normale
Bus-Zuweisungsentscheidungsprotokoll veranschaulicht ist. Bei
der normalen Zuweisungsentscheidung hat ein standardmäßig vor
gegebener Busbesitzer, der Prozessor in dem bevorzugten Ausfüh
rungsbeispiel, die Kontrolle über den Bus. Ein sekundärer Bus-
Master (Anforderer) treibt sein Signal REQ* 301 aktiv zum Zeit
punkt t1. In Abhängigkeit davon, daß der sekundäre Bus-Master
sein Signal REQ* 301 aktiv macht, fordert der zentrale Zuwei
sungsentscheider den Bus von dem standardmäßigen Busbesitzer
durch Inaktivieren des standardmäßig vorgegebenen GRNT*-Signals
306. Der Prozessor erfaßt das Inaktivwerden des Standard-GRNT*-
Signals 306 und vervollständigt ggf. unerledigte Übertragungs
operationen. Dann inaktiviert der Prozessor sein Standard-REQ*-
Signal 307, was anzeigt, daß er die Schnittstelle aufgegeben
hat. Der Prozessor kann sein Signal REQ* 307 nach einer Min
destperiode, in der REQ* 307 inaktiv ist, erneut anlegen, um
erneut den Zugriff auf die Schnittstelle anzufordern. Nachdem
das Standard-GRNT*-Signal 306 nach dem Zeitpunkt t1 inaktiv ge
worden, und das Standard-REQ*-Signal 307 inaktiviert worden
ist, wird zum Zeitpunkt t3 GRNT* 303 aktiviert, was anzeigt,
daß der Modul den Besitz über den Bus erlangt hat. Dann können
gültige Daten bis zum Zeitpunkt t4 auf den Bus 304 getrieben
werden. Die Übertragung endet, indem REQ* 301 zum Zeitpunkt t5
inaktiv gemacht wird, und GRNT* 303 wird danach freigegeben.
Es wird auf Fig. 3b Bezug genommen, in der das Bus-Aus
tausch-Protokoll veranschaulicht ist. Das Bus-Austausch-Proto
koll gestattet den Austausch der Steuerung des Busses von einem
Koprozessor zu einem anderen. In der Darstellung gemäß Fig. 3b
hat der Koprozessor 1 die Steuerung über den Bus zum Zeitpunkt
t1 (der zentrale Zuweisungsentscheider gibt das Signal GRNT1*
316 als inaktiv aus, was dem Koprozessor 1 den Zugriff auf den
Bus gewährt). Koprozessor 0, welcher von geringerer Priorität
als der Koprozessor 1 ist, fordert zum Zeitpunkt t1 den Zugriff
auf den Bus durch Aktivierung seines Signals REQ0* 310 an. Ko
prozessor 0 fährt fort, sein REQ0*-Signal 310 auszugeben, bis
ihm die Kontrolle über den Bus gewährt wird. Jedoch wird GRNT1*
eine gewisse Zeit nach t1 weggenommen, um den Koprozessor 1
aufzufordern, den Bus freizugeben. Koprozessor 1 wird gestat
tet, seinen aktuellen Informationsaustausch auf dem Bus abzu
schließen (gültige Daten werden weiterhin auf dem Bus 313 wäh
rend des Zeitintervalls t1 bis t2 übertragen), und dann gibt er
die Schnittstelle auf.
Koprozessor 1 schließt seinen Informationsaustausch zum
Zeitpunkt t2 ab. Der zentrale Zuweisungsentscheider inaktiviert
das Signal GRNT1* 316 zum Zeitpunkt t3, und der CPU-Modul inak
tiviert dann das Signal REQI* 314 zum Zeitpunkt t4, um dem zen
tralen Zuweisungsentscheider anzuzeigen, daß er die Kontrolle
über den Bus aufgegeben hat. Das Signal GRNT0* 312 wird zum
Zeitpunkt t5 aktiviert, was dem Koprozessor 0 den Zugriff auf
den Bus gewährt. Der Koprozessor 0 beginnt seinen Informations
austausch auf den Bus 313 zum Zeitpunkt t6.
Das bevorzugte Ausführungsbeispiel verwendet ein Anforde
rungs/Antwort-Protokoll, welches Speichereinrichtungen zu iden
tifizieren gestattet: ihren Zugriffsmodus (RESP(1 : 0)*), ob die
Speichereinrichtung Cache-speicherbar ist (CCEN*), die Ge
schwindigkeit der Speichereinrichtung (SPD(1 : 0)*) und ob auf
die Einrichtung deterministisch oder asynchron zugegriffen wer
den kann (RDY). Die Seitengröße ist definiert als vier Kiloby
tes.
Das bevorzugte Ausführungsbeispiel der vorliegenden Erfin
dung gestattet speziell drei Zugriffsmoden: (1) Standard-
RAS/CAS-Modus, (2) schnellen Seitenmodus und (3) Burst-Modus.
Die Speichereinrichtung identifiziert den Modus, in dem sie ar
beiten kann, durch Aktivieren oder Inaktivieren der geeigneten
RESP(1 : 0)*-Gruppensignale, wie unten unter Bezugnahme auf Ta
belle III gezeigt ist:
Der Standard-RAS/CAS-Modus, wird für I/O- und andere Buszu
griffe ebenso wie für Standardspeicherzugriffe verwendet. Der
schnelle Seiten-Modus wird ausgeführt, indem die Zeilenadressen
von der Speichereinrichtung Latch-gespeichert werden und Spal
tenadressen durchlaufen, jedoch laufen die CAS-Adressen nicht
durch, sondern werden stattdessen in jedem nachfolgenden Zu
griff durch die aktiv werdende Flanke des CAS Latch-gespeichert.
Der Burst-Modus gestattet es, daß Daten (128 Bits)
"stoßweise" bei einer hohen Geschwindigkeit zu dem Prozessor
übertragen werden, wobei fortlaufende Zyklen Daten übertragen.
Das Signal CCEN* wird unter Bezugnahme auf Tabelle IV in
terpretiert. Ein Speicherzugriff wird als Cache-speicherbar an
gesehen, wenn die Kohärenz von Daten im Speicher und im Cache-
Speicher durchgesetzt werden kann.
Das Signal SPD(1 : 0)* wird unter Bezugnahme auf Tabelle V
interpretiert. SPD(1 : 0)* wird mit den RESP(1 : 0)*-Signalen wäh
rend der von ASTB* oder CSLTCHE* und CSLTCHO* initiierten de
terministischen Lesezyklen interpretiert. Die Geschwindigkeit
zeigt an, wie schnell DWORD's während Lesezugriffen verfügbar
sind. Die Geschwindigkeit ist in dem bevorzugten Ausführungs
beispiel anhand der RAS(row address strobe - Zeilenadreß-
Strobe)-Zugriffszeit definiert.
Das Signal WT/WB* zeigt die Art des Ersetzungsmechanismus
an, der für einen zuzugreifenden Eintrag implementiert ist, so
fern dieser Cache-speicherbar sein sollte. Es gestattet dem Er
setzungsalgorithmus für den Cache-gespeicherten Eintrag, auf
einer zeilenweisen Grundlage definiert zu werden. Dieses Signal
wird außerdem während der CPU-Modul-Konfigurationszeit verwen
det, um zu definieren, ob der CPU-Modul deterministische Snoop-
Zyklen oder asynchrone Snoop-Zyklen unterstützen kann.
Das Signal WPROT* zeigt an, ob der aktuelle Zugriff auf
einen nicht-beschreibbaren Speicher erfolgt. Wenn es aktiv ist,
kann ein Schreibzugriff auf diesen Speicherplatz nicht statt
finden. Wenn es inaktiv ist, aktualisieren Schreibzyklen den
Speicher.
Wenn ein Prozessor eine Anfrage macht, identifiziert er die
Art der Anfrage mit Hilfe eines Satzes von Anfrageleitungen
STAT(2 : 0). Die Leitungen STAT(2 : 0) definieren die Art des ge
genwärtig auf dem Bus stattfindenden Zugriffs und sind in dem
bevorzugten Ausführungsbeispiel in der von Tabelle VI definier
ten Weise codiert.
Wenn ein Anforderer eine Anforderung zum Zugreifen auf eine
Speichereinrichtung macht, antwortet die antwortende Speicher
einrichtung im allgemeinen innerhalb einer vorgegebenen Zeitpe
riode auf die Anforderung mit Informationen, die die o. g. Cha
rakteristiken identifizieren. Wenn die Speichereinrichtung ant
wortet, daß sie in der Lage ist, in einer deterministischen
Weise zu arbeiten, wartet der anfordernde Koprozessor eine
festgelegte Zeitperiode und nimmt dann die Daten von dem Bus.
Wenn der Speicher antwortet, daß er in einer asynchronen Weise
arbeiten muß, greift der anfragende Prozessor auf die Speicher
einrichtung asynchron zu, wobei er auf die Synchronisations
nachteile trifft, die mit dem erforderlichen Handshaking ver
bunden sind.
Es wird zunächst auf Fig. 4a Bezug genommen; nachdem einem
Prozessor die Kontrolle über den Bus gewährt worden ist, wie es
in Verbindung mit den Fig. 3a und 3b beschrieben wurde, treibt
der Prozessor eine Adresse 401 auf den Bus zum Zeitpunkt t1.
Der Prozessor treibt außerdem (zum Zeitpunkt t1) die geeigneten
Anforderungssignale (nicht gezeigt), wie sie in Tabelle VI dar
gestellt wurden.
Nach dem Setzen der Signale MA(31 : 2) 401 aktiviert der Pro
zessor das Signal ASTB* 403 zum Zeitpunkt t2. Das Signal ASTB*
403 zeigt den Beginn eines Busereignisses an.
Wenn das Signal RDY 404 aktiv ist, wird ein deterministi
scher Zugriff angenommen. Das Signal RDY 404 ist normalerweise
in dem aktiven Zustand, und folglich braucht eine deterministi
sche Einrichtung nicht dieses Signal auszugeben. Bei einem de
terministischen Zugriff gibt der Bus-Slave (Speichermodul) die
geeigneten Antwortgruppensignale aus. Auf der Grundlage des
oben definierten Zugriffsmodus und -geschwindigkeit bestimmt
der Prozessor eine geeignete Anzahl von Wartezuständen zur Ver
zögerung, bevor er auf Daten auf dem Bus zugreift. Auf diese
Weise (d. h. durch Ausführen einer Anforderung und Empfangen ei
ner Antwort - Anforderungs/Antwort-Protokoll) ist der Prozessor
in der Lage, Zugriffe auf den Speicher auf der Grundlage der
speziellen Art und Geschwindigkeit des Speichers, auf den zuge
griffen wird, zurechtzuschneiden. Darüberhinaus kann diese An
passung des Speichers ohne jegliches Erfordernis von durch den
Benutzer einstellbaren Schaltern ausgeführt werden.
Bei dem bevorzugten Ausführungsbeispiel wird die determini
stische Zeitdauer auf der Grundlage der für den Speicher zum
Antworten auf eine gegebene Anforderung erforderlichen Zu
griffszeit berechnet. Die deterministische Zeitdauer variiert
in Abhängigkeit von dem Modus des Speicherbetriebs und der Ge
schwindigkeit der Speichereinrichtung. Grundsätzlich kann die
deterministische Periode wie folgt berechnet werden:
Tdel + TZugriff + TDaten-Setup + TBusverlust(Rundreise) = Tdeterministisch
Wobei:
Tdel = Die Zeitdauer von der Prozessorreferenz bis zu dem Aktivwerden des Signals ASTB* auf dem Bus (üblicherweise mit Bezugnahme auf einen Takt, z. B. wird ASTB* auf der Grundlage des Prozessortakts umgeschal tet; es gibt jedoch eine Verzögerung von dem Takt bis zum Ändern des Zustands des Signals ASTB*. Tdel enthält diese Verzögerung);
TZugriff = Die Zeitdauer von dem Aktivwerden des ASTB* auf dem Bus bis zu dem Vorhandensein von gültigen Daten auf dem Bus (beispielsweise ist bei einem 80 ns- Speicher, wie er im bevorzugten Ausführungsbeispiel verwendet werden kann, diese Zeitdauer gleich 120 ns);
TDaten-Setup = Die Zeitdauer des Prozessors zum Da tenaufbau (Daten-Setup);
TBusverlust (Rundreise) = Die Ausbreitungsverzöge rung für ein Signal, das von einem Punkt A zu einem Punkt B getrieben wird, plus die Verzögerung für eine Rückkehr des Signals, wobei es sich vom Punkt B zurück zum Punkt A ausbreitet; und
Tdeterministisch = Die deterministische Speicherzu griffszeit für eine Standard-RAS/CAS-Einrichtung.
Tdel + TZugriff + TDaten-Setup + TBusverlust(Rundreise) = Tdeterministisch
Wobei:
Tdel = Die Zeitdauer von der Prozessorreferenz bis zu dem Aktivwerden des Signals ASTB* auf dem Bus (üblicherweise mit Bezugnahme auf einen Takt, z. B. wird ASTB* auf der Grundlage des Prozessortakts umgeschal tet; es gibt jedoch eine Verzögerung von dem Takt bis zum Ändern des Zustands des Signals ASTB*. Tdel enthält diese Verzögerung);
TZugriff = Die Zeitdauer von dem Aktivwerden des ASTB* auf dem Bus bis zu dem Vorhandensein von gültigen Daten auf dem Bus (beispielsweise ist bei einem 80 ns- Speicher, wie er im bevorzugten Ausführungsbeispiel verwendet werden kann, diese Zeitdauer gleich 120 ns);
TDaten-Setup = Die Zeitdauer des Prozessors zum Da tenaufbau (Daten-Setup);
TBusverlust (Rundreise) = Die Ausbreitungsverzöge rung für ein Signal, das von einem Punkt A zu einem Punkt B getrieben wird, plus die Verzögerung für eine Rückkehr des Signals, wobei es sich vom Punkt B zurück zum Punkt A ausbreitet; und
Tdeterministisch = Die deterministische Speicherzu griffszeit für eine Standard-RAS/CAS-Einrichtung.
Nachdem Steuerinformationen über die Signale CCEN*,
SPD(1 : 0)* und RESP(1 : 0)* zur Verfügung gestellt worden sind,
kann der Datenbus MD(31 : 0) 405 mit gültigen Daten durch einen
Bus-Slave getrieben werden. Der Prozessor wartet eine determi
nistische Zeitdauer (Zeit t3-t4, die auf der Grundlage der Ge
schwindigkeit und der Art des Speichers bestimmt wurde) und
kann dann auf Daten auf dem Bus zugreifen. Die Daten auf dem
Bus werden für deterministische Übertragungen nach der determi
nistischen Zeitdauer als gültig angenommen.
Nach dem Lesen der Daten von dem Bus gibt der Prozessor die
Adreßleitungen MA(31 : 2) 401 frei. Zum Zeitpunkt t6 deaktiviert
der Prozessor dann das Signal ASTB* 403. Wenn der Bus-Slave das
Inaktivwerden des Signal ASTB* 403 erfaßt, kann er die Daten
leitungen MD(31 : 0) 405 freigeben.
Dieses Protokoll wird für jede weitere von dem Speicher er
forderliche Leseoperation durch den Prozessor wiederholt.
Es wird auf Fig. 4b Bezug genommen, in der das Protokoll
für ein asynchrones Lesen dargestellt ist. Bei einem asynchro
nen Lesen treibt ein Prozessor, dem die Kontrolle über den Bus
gewährt worden ist, Adreßsignale MA(31 : 2) 411 auf den Bus zum
Zeitpunkt t1. Dann aktiviert der Prozessor zum Zeitpunkt t2 das
Signal ASTB* 413.
Der ausgewählte Bus-Slave (z. B. Speicher) deaktiviert das
Signal RDY 414 zum Zeitpunkt t3, um anzuzeigen, daß das Lesen
asynchron sein wird. In Antwort auf das Aktivtreiben des Si
gnals ASTB* 413 beginnt die ausgewählte Einrichtung, Daten auf
den Datenbus MD(31 : 0) 415 zum Zeitpunkt t4 zu treiben. Wenn
gültige Daten verfügbar sind, macht der Bus-Slave das Signal
RDY 414 zum Zeitpunkt t5 aktiv. Der Bus-Master kann dann Daten
von dem Bus lesen. Nachdem er erfaßt hat, daß das Signal RDY
414 aktiv geworden ist, unterbricht der Bus-Master die Ausgabe
seines MA(31 : 2)-Adreßsignals 411 zum Zeitpunkt t6 und deakti
viert das Signal ASTB* 413 zum Zeitpunkt t7.
Der Bus-Slave erfaßt das Inaktivtreiben, des Signals ASTB*
413 und unterbricht das Anlegen der Datensignale 415 zum Zeit
punkt t8. Das Signal RDY 414 ist aktiv und wird über den ge
samten Bus-Leerzustand aktiv bleiben.
Der Bus-Master kann die Übertragung von mehr Daten durch
Wiederholen des oben beschriebenen Protokolls anfordern.
Es wird auf Fig. 4c Bezug genommen, die den deterministi
schen Schreibzyklus des bevorzugten Ausführungsbeispiels dar
stellt. Zum Zeitpunkt t1 treibt der Bus-Master, dem die Kon
trolle über den Bus gewährt worden ist, eine Adresse auf den
Bus (MA(31 : 2)-Signal 421) und treibt die zu übertragenden Daten
MD(31 : 0) 425 auf den Bus. Dann legt der Prozessor zum Zeitpunkt
t2 das Signal HSTB* 423 an.
Vor dem Anlegen des ASTB*-Signals 423 wird das Adreß
MA(31 : 2)-Signal 421 decodiert, um denjenigen speziellen Spei
cher zu bestimmen, der den ausgewählten Speicheradreßplatz hat.
Bei dem bevorzugten Ausführungsbeispiel hängt die Auswahl eines
speziellen Speichergeräts von den Systemspeicher-Adreßraumzu
ordnungen auf der Basis der Speichergrößenidentifizierungsin
formation ab, die von jedem der Speichermodulen an den Deco
diermodul zum Zeitpunkt der Systemeinschaltung geliefert wird.
Nach Erfüllung einer deterministischen Zugriffszeit des
Systembusses entaktiviert der Prozessor zum Zeitpunkt t5 das
ASTB*-Signal 423 und gibt zum Zeitpunkt t6 Datensignale 425
frei. Wie oben beschrieben, basiert die deterministische Zu
griffsperiode auf den Charakteristiken des Speichergeräts, und
diese Charakteristiken werden dem Prozessor zu der Zeit mitge
teilt, an der das Speichergerät mit seinen Antwortsignalen ant
wortet. RDY-Signal 424 bleibt während des gesamten Zyklus ak
tiv. Dies beendet den deterministischen Speicher-Schreibzyklus.
Schließlich ist in Fig. 4d, auf die Bezug genommen wird,
ein asynchroner Schreibzyklus dargestellt. Wiederum treibt der
aktuelle Bus-Master (Prozessor gewährt Zugriff auf den Bus)
Adreßsignale MA(31 : 2) 431 auf den Bus und legt Daten MD(31 : 0)
435 zum Zeitpunkt t1 auf den Bus. Das ASTB*-Signal 433 wird zum
Zeitpunkt t2 angelegt.
In Abhängigkeit vom Anlegen des ASTB*-Signals 433 wird das
Adreßsignal decodiert, und der richtige Speicher wird während
der Zeitspanne t2 bis t3 ausgewählt. Wenn das ausgewählte Spei
chergerät auf die Schreibanforderung nicht in einer determini
stischen Zeit antworten kann (d. h. dies wird eine asynchrone
Schreiboperation), inaktiviert der ausgewählte Speicher das
RDY-Signal 434 zum Zeitpunkt t4. Der Informationsaustausch wird
während der Zeitperiode, in der das RDY-Signal 434 inaktiviert
ist (Zeitspanne t4 bis t5) verzögert. Wenn der ausgewählte
Speicher zum antworten bereit ist, wird das RDY-Signal 434 zum
Zeitpunkt t5 erneut aktiviert.
In Abhängigkeit von der Aktivierung des RDY-Signals 434
gibt der Bus-Master die Adreß-Signalleitungen 431 zum Zeitpunkt
t6 frei und inaktiviert zum Zeitpunkt t7 das ASTB*-Signal 433.
Der ausgewählte Speicher stellt fest, daß das ASTB*-Signal
433 inaktiviert ist und gibt das RDY-Signal 434 zum Zeitpunkt
t8 frei. Bei dem bevorzugten Ausführungsbeispiel wird jedoch
das RDY-Signal 434 von einem Anhebewiderstand aktiv gehalten.
Der Bus-Master gibt dann die Datenleitungen 435 zum Zeitpunkt
t8 frei.
Das bevorzugte Ausführungsbeispiel sorgt auch für gewisse
Zugriffe, welche Daten an jedem Taktzyklus übertragen. Diese
Zugriffsart ist bekannt als "Burst"-Lesen, und sie ermöglicht
die Übertragung mehrerer DWORDs (32-Bit-Worte) in aufeinander
folgenden Taktzyklen ohne Treiberadreßinformationen bei jedem
DWORD-Zugriff. Für einen Code oder einen Befehlsabruf sind vier
DWORDs (für insgesamt 128 Bits) auf dem Bus vorgesehen, sobald
ein Burst-Modus initiiert wird. Für einen Datenabruf sind ein,
zwei oder vier DWORDs (für insgesamt 32, 64 oder 128 Bits) in
einem Burst-Modus-Zugriff vorgesehen. Burst-Modus-Zugriffe wer
den in einigen Mikroprozessoren, einschließlich des 80486 Mi
kroprozessors von Intel Corp., zur Verfügung gestellt. Eine ge
naue Beschreibung des durch den 80486-Mikroprozessor zur Verfü
gung gestellten Burst-Modus ist im Datenbuch "Microprocessors"
von Intel Corp., Veröffentlichungs-Nr. 230843-007 auf den Sei
ten 4-94 bis 4-108 angegeben. Eine detaillierte Erörterung der
zur Durchführung einer "Burst"-Modus-Leseoperation erforderli
chen Schaltung gemäß dem bevorzugten Ausführungsbeispiel in
Verbindung mit einem Prozessor, wie dem 80486, wird unter Be
zugnahme auf Fig. 5 bis 6d diskutiert.
Wie in Fig. 5 gezeigt ist, kann eine Burst-Leseoperation
dadurch initiiert werden, daß zum Zeitpunkt t1 in MA(31 : 2) 501
die Startadresse der vier DWORD-Übertragung angesteuert wird.
Fig. 5 zeigt eine asynchrone Burst-Leseoperation, die an einer
geradzahligen Speicherplatzgrenze beginnt. Es ist jedoch für
den Fachmann klar, daß der Zugriff deterministisch (gemäß dem
RDY-Signal 526) sein und an einer ungeradzahligen Speicher
platzgrenze beginnen kann, wobei die GERADZAHLIG*- und UNGERAD
ZAHLIG*-Signale 514 und 515 (und zugehörige Signale) geändert
werden. Wie in der bei dem bevorzugten Ausführungsbeispiel ver
wendete Sendeempfänger darstellenden Fig. 6d gezeigt ist, wird
der MA(22 : 3)-Abschnitt der Adresse auf Leitungen 690 getrieben,
welche mit den in Fig. 6d gezeigten Adreßmultiplexern 691 ge
koppelt sind. Der Rest der Adresse MA(31 : 23) wird decodiert,
MA(1 : 0) werden zur Byteauswahl verwendet, und MA2 wird verwen
det, um 32-Bit-Worte anzuzeigen, die zugegriffen werden. Adreß
multiplexer 691 speisen über Leitungen 692 in Adreßlatch 693
ein. Um zum Zeitpunkt t2 den Burst-Lesezyklus zu initiieren,
wird ASTB* 502 aktiv getrieben. CSLTCHE* 503 und CLSLTCHO* 504
werden auch gleichzeitig aktiv getrieben, um die Burst-Übertra
gung zu initiieren. Wie in Fig. 6a gezeigt ist, treibt ASTB*-
Leitung 600 ein NAND-Gatter 601, welches eingangsseitig über
einen 4,7 kOhm Widerstand 603 auch mit Vcc gekoppelt ist. Eine
Verzögerungsleitung DASTB 604 wird vom NAND-Gatter 601 ausgege
ben, um alle Speicher-Zeitgabebeziehungen für die RAS/CAS
(Zeilenadreßstrobe und Spaltenadreßstrobe) zu erzeugen. DASTB
604 ist mit PAL 605 gekoppelt, um Signale in speziellen Inter
vallen für die verschiedenen Speicherbänke zu erzeugen. DASTB
604 ist außerdem mit PAL's 630 und 640 in den Fig. 6b und 6c
gekoppelt, um CAS-Signale für die geradzahligen bzw. ungerad
zahligen Speicherplätze zu erzeugen. Bei diesem Beispiel werden
zum Zeitpunkt t3 CSLTCHE*503 und CSLTCHO* 504 gleichzeitig ak
tiviert, um das CS*-Signal 505 zu erzeugen, welches die Spal
tenadreß-Strobe-Erzeugung konditioniert. Danach wird zum Zeit
punkt t4 das CS*-Signal 505 als Antwort aktiviert.
Zum Einleiten des Zugriffs sind RESP(1 : 0)*- und SPD(1 : 0)*-
Signale 525 von der Zeit 53 an gültig. Dies zeigt die unter
stützte Übertragungsgeschwindigkeit gemäß Tabellen III und V
an. Ebenfalls ab dem Zeitpunkt t3 bleibt das RDY-Signal 526 von
der Speicherschnittstelle angelegt, um die Art der durchgeführ
ten Übertragung (deterministisch) anzuzeigen. Zum Zeitpunkt t3
wird das Burst*-Signal 506 angelegt, wenn STAT(2 : 0)-Signale an
zeigen, daß ein Burst auftreten soll (siehe Tabelle VI). Dies
bewirkt eine Aktivierung von Burst_DR* 507 zum Zeitpunkt t5.
Burst_DR* 507 wird von der in Fig. 6a gezeigten Burst*-Leitung
606 bei der Aktivierung von TAP BURST-Leitung 609 60 ns nach Ak
tivierung der Burst*-Leitung 606 aktiviert, welche PAL's 610,
611, 612 und 613 treibt, wie im RASGEN(RAS-Generierungs-)Dia
gramm 6a gezeigt ist. Diese PAL's erzeugen BURST DR*-Signal
507, das über die Leitung 615 zur Verzögerungsschaltung 616,
gezeigt in Fig. 6a, getrieben wird. Die Verzögerungsschaltung
616 erzeugt gemäß Darstellung im Zeitdiagramm in Fig. 5
INV_A3_DEL* 508 zum Zeitpunkt t6, das MA3 zum DRAM-Feld für den
zweiten 64-Bit-Zugriff invertiert, ein CAS_OFF_DEL* 509, wel
ches CASE* 517 und CASO* 518 zum Zeitpunkt t7a inaktiviert, und
CAS_ON_DEL* 510, welches das Spaltenadreßstrobe zum Zeitpunkt
t8 reaktiviert. Diese Signale liefern die Zeitgabeinformationen
für CASGEN PAL's 620 und 630 in Fig. 6b und 6c, um Steuersi
gnale zu geeigneten Zeitpunkten zu aktivieren. CAS_OFF_DEL*-
Leitung 617 und CAS_ON_DEL*-Leitung 618 werden von der Verzöge
rungsschaltung 616 30 ns und 45 ns nach Empfang des BURST_DR*-Si
gnals 507 über die Leitung 615 von jedem PAL 610 bis 613 ausge
geben. BURST_DR*-Leitung 615 aktiviert auch ein 15 ns-Verzöge
rungssignal A3_DEL_DR über Leitung 619, welche mit einem ODER-
Gatter 621 gekoppelt ist. INV_A3_DEL* 508 wird über Leitung 624
auch zum Zeitpunkt t5 generiert, wie im Zeitdiagramm gemäß Fig.
5 gezeigt ist. ODER-Gatter 621 bildet nur eine Gatterverzöge
rung und modifiziert das über die Leitung 619 empfangene Signal
nicht. INV_A3_DEL* 508 aktiviert A3E_OFF 511 und INV_A3E-ON*
512 zum Zeitpunkt t6a. Diese werden von der in Fig. 6b und 6c
gezeigten Leitung 624 erzeugt, die in PAL's 620 und 630 treibt,
um in Fig. 6b gezeigte Leitungen 626 und 625 und in Fig. 6c ge
zeigte Leitungen 625a und 626a zu aktivieren.
A3E_OFF 511 und INV_A3E_ON* 512, die in Fig. 5 gezeigt
sind, schalten das in 501 enthaltene MA3-Adreßsignal vor dem
zweiten 64-Bit-Lesezugriff für den Rest des vier DWORD-Burst
auf den Speicher. CAS_OFF_DEL* 509 und CAS_ON_DEL* 510 steuern
die Zeilenadreß-Strobeleitungs-Ausgangssignale von den in Fig.
6b und 6c gezeigten PAL's 620 und 630, um Spaltenadreß-Strobe
signale für geradezahlige und ungeradzahlige Spaltenspeicher
plätze zu erzeugen. Die Signale in 617 und 618 treiben PAL's
620 und 630, wodurch Signale auf Leitungen CASE* 626 in Fig. 6b
und CASO* 627 in Fig. 6c erzeugt werden. Diese Signale werden
in eine Folge von ODER-Gattern 628 gemäß Fig. 6b für einen ge
raden Spaltenspeicherplatz und ODER-Gattern 629 in Fig. 6c für
ungerade Spaltenspeicherplatz-CAS-Signalerzeugung über Leitun
gen 631 und 632 eingegeben.
Zum Zeitpunkt t7a werden RDATALCHE* 513 und RDATALTCHO* 522
dadurch inaktiv getrieben, daß CAS_OFF_DEL* 509 von der in Fig.
6a gezeigten Verzögerungsschaltung 616 aktiviert wird. Dadurch
werden die Daten vom Speicher für den ersten 64-Bit-Zugriff in
die in Fig. 6d gezeigten Daten-Sendeempfänger 635 Latch-gespei
chert, während der zweite 64-Bit-Zugriff abläuft. Daten-Sende
empfänger-Latchspeicher 635 werden durch die Inaktivierung von
EVEN* 514 für RDATALTCHE* 513 Aktivierung oder ODD* 515 für
RDATALTCHO* 522 Aktivierung gelöscht. Diese Beziehung der
Latch-Steuerung zu EVEN* 514 und ODD* 515 ist notwendig, um
sicherzustellen, daß die Daten gültig bleiben, bis der Anforde
rer auf sie zugreifen kann. Zu beachten ist, daß Latch 635 im
Durchfluß- oder transparenten Modus bis zum Ende des Zyklus
bleibt, sobald RDATALTCHE* 513 und RDATALTCHO* 522 reaktiviert
worden sind.
Wie in Fig. 6d gezeigt ist, sind ODD*-Leitung 637 und
EVEN*-Leitung 638 mit 635 zum Verriegeln von Daten über Leitung
636 gekoppelt. Das Aktivieren von EVEN*-Signal 514 und ODD*-Si
gnal 515 ermöglicht die Übertragung des ersten DWORD (32 Bits)
in Daten-Sendeempfänger 635. Danach wird das zweite DWORD mit
ungeradzahligen Daten in die Daten-Sendeempfänger 635 übertra
gen. Daten werden aus dem Speicherlatch durch den CPU-Modul an
der ansteigenden Flanke des EVEN*-Signals 514 gelesen. Es war
notwendig, die Daten zu verriegeln bzw. Latch-zu speichern, da
die zweite 64-Bit-Leseoperation bereits begonnen hat. An diesem
Punkt sind die ersten 64 Bits der 128 Burst-Modus-Übertragung
beendet, und auf die zweiten 64 Bits muß zugegriffen werden.
Um die dritten und vierten DWORDS der 128-Bit-Übertragung
zu lessen, ist es notwendig, die Latchfunktion der Sendeempfän
ger 635 rückzusetzen. Um dies zu tun, werden RDATALTCHE* 513
und RDATALTCHO* 522, deaktiviert, wodurch die Latchfunktion der
Daten-Sendeempfänger 635 rückgesetzt wird. Zum Zeitpunkt t8a
wird das dritte DWORD von Daten-Sendeempfängern 635 freigege
ben, wenn EVEN*-Signal 514 aktiviert wird. Dies ist dargestellt
durch Signale MEMD(31 : 0) 520. Die ansteigende Flanke des EVEN*-
Signals bewirkt zum Zeitpunkt t8a, daß das RDATALTCHE*-Signal
513 deaktiviert wird. RDATALTCHE*-Signal 513 wird von den CAS-
GEN PAL's 620 und 630 als Folge des CLR_RD_RESE*-516-Signal zum
Zeitpunkt t9 gelöscht, um die Daten-Sendeempfänger 635 durch
lässig zu machen. CLR_RD_RESE*-Signal 516 wird von NOR-Gattern
640 und 642 in den Fig. 6b und 6c erzeügt und über die Leitung
643 in Flipflops 644 und 646 eingegeben. Diese erzeugen die
RD_RESETE-Signale 521 über Leitungen 645 und RD-RESETO-Signal
524 über Leitung 647 (gezeigt in Fig. 6b und 6c) für die unge
raden bzw. geraden Speicherbänke. Dies bewirkt, daß die
RDATALTCHE*- und RDATALTCHO*-Signale 513 und 522 auf Leitungen
633 und 634 zum Zeitpunkt t9 bzw. t10 rückgesetzt werden. Da
ten-Sendeempfänger 635 gestatten den Durchfluß von Daten, die
von dem Prozessormodul vor oder gleichzeitig mit der abfallen
den Flanke des EVEN*-Signals 514 zum Zeitpunkt t10 in der glei
chen Weise wie oben angegeben gelesen werden. Dieselbe Signal
folge wiederholt sich für die ungerade Seite des Speichers.
Nach dem Lesen des zweiten DWORD wird RDATALTCHO* 522 an der
ansteigenden Flanke des ODD*-Signals 515 zum Zeitpunkt t10 ak
tiviert. Danach wird das ODD*-Signal 515 ein zweites Mal zum
Zeitpunkt t11 aktiviert, wodurch das vierte DWORD auf dem Bus
freigegeben wird. Das vierte DWORD wird vom Prozessormodul vor
oder gleichzeitig mit der ansteigenden Flanke des ODD*-Signals
515 zum Zeitpunkt t12 gelesen. Auf diese Weise wurde eine vier
DWORD-Übertragung auf dem Bus beendet. Der Lesezyklus endet,
wenn CSLTCHE* 505 und CSLTCHO* 504 und/oder ASTB 502 entspre
chend Fig. 5 zum Zeitpunkt t13 entaktiviert werden. Zum Zeit
punkt t14 werden die Signale in ihre Zustände vor der Burst-
Übertragung zurückgeführt, wie in Fig. 5 gezeigt ist.
Von den SIMM-Speichern gelesene Daten sind als MEMD(63 : 32)
519 und MEMD(31 : 0) 520 angegeben. Die Daten sind auf dem Bus
während eines Burst-Lesezyklus als 1111 1111, 2222 2222, 3333
3333 und 4444 4444 zu sehen, wie in MD(31 : 0)-Signal 523 gezeigt
ist. Daher wurde eine volle 128-Bit-Übertragung zum Zeitpunkt
t13 in Fig. 5 abgeschlossen. Weniger als die vollen vier DWORD-
128-Bit-Leseoperation kann in der gleichen Weise, wie oben be
schrieben, dadurch durchgeführt werden, daß der CPU-Modul ASTB*
502 oder CSLTCHE* 503 und CSLTCHO* 504 inaktiv macht, um die
Übertragung zu beenden. Daher können ein, zwei oder vier
DWORD's übertragen werden. Es ist einzusehen, daß der Burst-Le
sezyklus eine beträchtliche Verbesserung gegenüber dem Stan
dard-Lesezyklus darstellt, der Treiberadressen und das Antwor
ten des Speichers auf alternierende Taktzyklen erforderlich
macht. Die Burst-Leseoperation des bevorzugten Ausführungsbei
spiels ermöglicht das Anlegen von Daten auf den Bus bei jedem
Taktzyklus für eine insgesamt mögliche Übertragung von 128 Bits
(ein vier-DWORD-"Burst") bei einer Anforderung. Dies verbessert
den Busdurchsatz und damit die gesamte Systemausführung be
trächtlich.
Die CPU-Modulen können Zwei-Niveau-Cache-Hierarchien bei
dem bevorzugten Ausführungsbeispiel unterstützen. Es kann einen
primären Cache geben, der das erste Ressourcenniveau bildet,
wobei die CPU(s) den Datenzugriff versuchen. Bei einigen Aus
führungsbeispielen befindet sich der primäre Cache-Speicher in
der CPU selbst. Auch ein sekundärer Cache kann vorhanden sein,
der typischerweise ein größeres Informationsvolumen als der
primäre Cache speichert. Jedem Prozessormodul sind bei dem be
vorzugten Ausführungsbeispiel Cache-Speicher, wie 103 in Fig.
1a oder 153 und 163 in Fig. 1b, zugeordnet. Diese Cache-Spei
cher können entweder mit einem Durchschreib- oder einem Rück
schreib-Cache-Ersetzungsalgorithmus verwendet werden. Ein
Durchschreib-Cache-Ersetzungsalgorithmus ist ein solcher, in
welchem bei CPU-Schreibzyklen in einen Cache-Platz die Schreib
operation in den Speicher auch zum Bus gesendet wird, um den
Speicher sowie den Cache-Inhalt zu aktualisieren. Der Cache-In
halt bleibt deshalb immer mit dem Speicher konsistent. Ein
Rückschreib-Cache-Ersetzungsalgorithmus ist ein solcher, der
nur den Cache während eines CPU-Schreibzyklus aktualisiert. Der
Speicher wird mit den im Cache befindlichen Informationen spä
ter aktualisiert oder "rückgeschrieben", wenn der Cacheinhalt
zu ersetzen ist (durch einen Lese- oder Schreib-Fehlversuch)
oder wenn Daten von einem anderen Bus-Master angefordert wer
den. Ein Lese- oder Schreib-Fehlversuch auf den Cache bewirkt,
daß Daten ungültig gemacht werden, wenn der Cache voll ist, wo
bei der Cache-Tag verwendet wird. Bei einigen Ausführungsbei
spielen finden Rückschreiboperationen in vorgegebenen Interval
len, beispielsweise während CPU-Ruhezeiten oder dann statt,
wenn eine diskrete Schaltung innerhalb des Systems feststellt,
daß der Cache voll ist und in den Hauptspeicher geschrieben
werden sollte.
Datenkonsistenz zwischen den Cache-Speichern und dem Sy
stemspeicher wird bei der asynchronen Architektur des bevorzug
ten Ausführungsbeispiels während Zugriffen auf den Speicher
mittels eines "Snoop"-Protokolls aufrechterhalten. Ein "Snoop"
ist ein Prozeß, bei dem das Cache-Steuergerät die Adresse eines
auf der Schnittstelle offenstehenden Zugriffs prüft, um festzu
stellen, ob der Zugriff auf einen derzeit im Cache-Speicher be
findlichen Speicherplatz erfolgen soll. Bezogen auf den Snoop
ist der "Snarf", der verwendet wird, wenn ein Teilnehmer, von
dem die ursprüngliche Leseanforderung stammt, die Daten erfaßt,
welche gerade aus dem Cache zurückgeschrieben werden.
Es ist ein Erfordernis des bevorzugten Ausführungsbei
spiels, daß der sekundäre Cache ein Superset des primären Cache
ist. Mit anderen Worten, alle gültigen Daten innerhalb des pri
mären Cache-Speichers sind auch im sekundären Cache enthalten.
Dies ist bekannt als "Einbeziehungsprinzip". Diese Technik ist
vorgesehen, um CPU/Cache-Konkurrenzoperationen zu optimieren,
wenn ein Standard-Bus-Master die Speicherbusschnittstelle be
sitzt. Wenn ein sekundärer Cache ein Superset des primären
Cache-Speichers ist, so ist die einzige Zeit, in der eine Un
gültigkeit des primären Cache-Speichers notwendig ist, dieje
nige, bei der "Snoop" einen sekundären Cache-Treffer erzeugt.
Wenn dagegen der sekundäre Cache ein Superset des primären Ca
che ist, so muß jeder vom Bus erzeugte Snoop zum primären Cache
gesendet werden.
Tabelle VII zeigt die Cache-Zustände, die bei dem bevorzug
ten Ausführungsbeispiel zwischen den primären und sekundären
Cache-Speichern verwendet werden. Zu beachten ist, daß die Be
dingung, daß beide Cache-Speicher entweder "ein" oder "aus"
sind, durch das bevorzugte Ausführungsbeispiel zugelassen wird.
Die Bedingung, daß der primäre Cache "aus" und der sekundäre
Cache "ein" ist, ist bei dem bevorzugten Ausführungsbeispiel
gültig. Die Bedingung, daß der sekundäre Cache "aus" und der
primäre Cache "ein" ist, ist bei dem bevorzugten Ausführungs
beispiel nicht zugelassen, da sie das Einbeziehungsprinzip ver
letzt.
Die Verwendung von "Snoop"-Zyklen für den Bus des bevorzug
ten Ausführungsbeispiels wird im folgenden erörtert. Diese
"Snoop"-Zyklen ermöglichen es dem oder den Prozessoren des be
vorzugten Ausführungsbeispiels, die Konsistenz zwischen den in
den Cache(s) und dem Hauptspeicher aufrechterhaltenen Daten
während alternierender oder sekundärer Bus-Master-Zugriffe auf
rechtzuerhalten. Ein sekundärer Master ist definiert als aktu
eller Besitzer der Schnittstelle, deren Zugriff einen Cache-
"Snoopzyklus" in einem derzeit die Schnittstelle nicht zugrei
fenden Prozessor-Subsystem initiiert. Die Architektur des be
vorzugten Ausführungsbeispiels unterstützt zwei Arten von
"Snoop"-Zyklen: (1) asynchron; und (2) deterministisch. Deter
ministische Snoopzyklen werden für Cache(s) verwendet, die eine
TAG-Nachschlageoperation und Invalidisierung durchführen kön
nen, wenn nötig innerhalb einer definierten Zeitspanne von
120 ns bei dem bevorzugten Ausführungsbeispiel. Asynchrone
Snoopzyklen werden für Cache(s) verwendet, die eine Beendigung
einer TAG-Nachschlageoperation und Invalidisierung in 120 ns
nicht garantiert beendigen können und/oder - wenn anwendbar -
einen Rückzyklus von modifizierten Daten, wenn erforderlich.
Deterministische Snoopzyklen werden von Ressourcen in dem
bevorzugten Ausführungsbeispiel verwendet, welche die folgenden
Attribute haben:
- 1. diejenigen, welche nur ein Durchschreib-Cache-Erset zungsprotokoll verwenden; und
- 2. diejenigen, welche stets einen TAG-Nachschlage- und In validisierungszyklus innerhalb von 120 ns durchführen können.
Diejenigen Ressourcen, welche diese Kriterien nicht erfüllen,
müssen das asynchrone Snoop-Protokoll unterstützen, was weiter
unten genauer beschrieben werden wird. Ein CPU-Modul zeigt sei
nen Snoopzyklus-Untrstützungstypen während der CPU-Modul-Konfi
gurationszeit an. Dies wird weiter unten im einzelnen unter Be
zugnahme auf Fig. 7 erörtert.
Wie in Fig. 7 gezeigt ist, wird eine CPU-Modul-Konfigura
tion oder ein Rücksetzzyklus ausgeführt, während das Signal
HRDRES 700 aktiv ist. Dieser Vorgang kann während der Zeit t6
gemäß Darstellung in Fig. 2 ausgeführt werden. Die Konfigurati
onsablaufsteuerung innerhalb der Decodierlogikschaltung des be
vorzugten Ausführungsbeispiels inaktiviert das RDY-Signal 701
zum Zeitpunkt t1, um anzuzeigen, daß der Modul mit dem Treiben
der Konfigurationsinformationen auf den Bus beginnt. Zum Zeit
punkt t2 werden die WT/WB* 702 und die CCEN* 703-Signale akti
viert. Die Speicherbus-Schnittstellenlogik erfaßt diese Infor
mationen, und sie werden nachfolgend benutzt, um festzustellen,
ob asynchrone oder deterministische Snoopzyklen unterstützt
werden. Zusätzlich werden zum Zeitpunkt t2 CPU-Modul-Attri
butinformationen von dem Antwortsignal 704 getrieben. Die obe
ren vier Bits (RESP(1 : 0)*, SPD(1 : 0)* - siehe Tabelle V) des
Antwortsignals werden zum Treiben der Attributinformationen des
CPU-Moduls zum Zeitpunkt t2 verwendet.
Zum Zeitpunkt t3 wird das WT/WB*-Signal 702 für asynchrone
Zyklusunterstützung aktiv getrieben und bleibt inaktiv für de
terministische Snoopzyklusunterstützung. Zusätzlich bleibt
CCEN*-Signal 703 für 16-Byte-Cache-Zeilengrößenunterstützung
inaktiv und wird für 32-Byte-Cache-Zeilengrößenunterstützung
auf einen niedrigen Pegel getrieben.
Zum Zeitpunkt t4 werden Signale 705 getrieben, um den CPU-
Konfigurationsmodul für den Rest der Geschwindigkeitsinforma
tionen anzufordern. Diese Informationen werden zum Zeitpunkt t5
unter Verwendung des Antwortsignals 704 zurückgegeben.
Zum Zeitpunkt t6 wird die Modul-ID-Information von MA(5 : 4)-
Signalen 705 angefordert, und diese Information wird dann zum
Zeitpunkt t7 im Signal 704 zurückgeführt. Zum Zeitpunkt t8 wird
der Rest der Modul-ID-Information vom MA(5 : 4)-Signal 705 an
gefordert. Der Rest der Modul-ID-Information wird im Signal 704
zum Zeitpunkt t9 zurückgegeben. Zum Zeitpunkt t10 wird das RDY-
Signal 701 aktiv getrieben, und in Abhängigkeit davon werden
WT/WB* 702, CCEN*-Signal 703 und Signale 704 in ihre vorherge
henden Zustände zurückgesetzt. Die CPU-Modul-Konfiguration ist
beendet. Nach Abschluß der Konfiguration werden die vom CPU-Mo
dul gelieferten Informationen zu Kommunikationszwecken im
Speicherbus 120 gehalten. Nach Durchführung der Konfiguration
des CPU-Moduls unter Verwendung dieses Prozesses kann die
Cache-Konsistenz unter Verwendung entweder deterministischer
oder asynchroner Snoop-Zyklen aufrechterhalten werden, wie die
Konfigurationsinformationen, die in dem in Fig. 7 gezeigten
WT/WB*-Signal 702 zurückgegeben werden, anzeigen.
Fig. 8 stellt einen deterministischen Snoopzyklus dar, der
im bevorzugten Ausführungsbeispiel verwendet wird. Wie in Fig.
8 gezeigt ist, startet ein deterministischer Snoopzyklus da
durch, daß eine gültige Adresse zum Zeitpunkt t1 an den Adreß-,
Status- und Byte-Aktivierungssignalen 801 (MA(31 : 2), MBE(3 : 0)
und STAT(2 : 0)) angesteuert wird. Wenn ASTB*-Signal 802 derzeit
hoch ist, wird es zum Zeitpunkt t2 niedrig getrieben. Wenn die
CSLTCHE/O*-Signale 803 inaktiv sind, werden sie zum Zeitpunkt
t3 aktiviert. In Abhängigkeit von gültigen Adreß-, Status- und
Byte-Aktivierungsinformationen 801 auf dem Bus treibt der aktu
elle Bus-Master oder die Bus-Schnittstelle das SSTB*
(Snoopstrobe)-Signal 804 zum Zeitpunkt t4 aktiv, um anzuzeigen,
daß gültige Snoop-Adressen zur Verfügung stehen. Der CPU-Modul
kann danach einen TAG-Nachschlagezyklus beginnen. Das SSTB*-Si
gnal 804 wird vom Bus-Master oder von der Bus-Schnittstelle für
eine Mindestimpulsbreite von 20 ns zwischen den Zeitpunkten t4
und t5 aktiv getrieben, um dem CPU-Modul die Möglichkeit zu ge
ben, einen TAG-Nachschlagezyklus (nachfolgend erläutert) zu be
ginnen. Die Standard-Busschnittstelle muß die Aktivierung von
SSTB* 804 für eine Mindestimpulsbreite von 20 ns aufrechterhal
ten, um sicherzustellen, daß es vom CPU-Modul erfaßt wird. Zwi
schen den Zeitpunkten t4 und t5 brauchen für 20 ns keine Mehr
flankenübergänge zu sein. Kein Informationsaustausch ist zwi
schen der Bus-Schnittstelle und dem CPU-Modul bis zur nächsten
Aktivierung von SSTB* 804 erforderlich. Nach Rückkehr des
SSTB*-Signals 804 zum Zeitpunkt t5 in seinen inaktiven Zustand
werden CSLTCHE/O*-Signale 803 und ASTB* 802 in ihre vorherge
henden Zustände zurückgesetzt, und zwar bei Erfüllung aller
Zeitgaben auf der Speicherbus-Schnittstelle, bevor der determi
nistische Snoopzyklus gemäß Fig. 8 beginnt. Der CPU-Modul-TAG-
Nachschlagezyklus, der durchgeführt wird, wird durch SSTB*804-
Signal zum Zeitpunkt t4 initiiert. Der Vorteil des determini
stischen Snoopzyklus besteht darin, daß Übertragungsgeschwin
digkeiten von einem I/O-Master bei angenähert 33 Megabyte pro
Sekunde (der maximalen EISA-Burst-Übertragungsgeschwindigkeit)
liegen können. Während eines Snoop-Zyklus führt der CPU-Modul
einen Test durch, um festzustellen, ob die Adresse der Übertra
gung auf der Schnittstelle mit einer gespeicherten Adresse in
nerhalb des TAG übereinstimmt. Ist dies der Fall, so befindet
sich der aktuelle Inhalt des Speicherplatzes im TAG, und er muß
abgearbeitet werden, um konsistent zu bleiben. Wenn die Opera
tion ein Schreibzyklus war, so müssen die Daten im Cache ungül
tig gemacht werden.
Asynchrone Snoopzyklen werden in Abhängigkeit von zur Rück
setzzeit zurückgegebenen Informationen (Fig. 7) für CPU-Module
benutzt, welche deterministische Snoopzyklen nicht unterstützen
können. Es gibt zwei Arten von asynchronen Snoopzyklen, die von
dem bevorzugten Ausführungsbeispiel unterstützt werden: (1)
Nur-Invalidisierungs-Typ-Snoopzyklen; und (2) Invalidisierung
mit-Rückschreib-Snoopzyklen. Die Snoopzyklen mit Nur-Invalidi
sierung werden verwendet, wenn der Snoopzyklus zu einem Cache-
Fehlversuch oder einem Cache-Treffer auf einer nicht-modifi
zierten Cache-Zeile führt. Der Snoopzyklus mit Invalidisierung
und Rückschreibung bedingt, daß die CPU eine modifizierte Ca
che-Zeile (die ein Cache-Treffer aus dem Snoopzyklus war) rück
schreibt, bevor der Standard-Bus-Schnittstellenzyklus beendet
ist.
Ein Nur-Invalidisierungs-Zyklus ist in Fig. 9 gezeigt. In
einem Invalidisierungs-Zyklus tritt entweder ein "Treffer" in
einer nicht-modifizierten Cache-Zeile (Cacheinhalt konsistent
mit Speicher) oder ein Cache-Zeilen-Fehlversuch (die angefor
derten Daten waren nicht im Cache) auf. Zum Zeitpunkt t1 steht
eine gültige Adreßinformation am Bus über Signale MA(31 : 2),
MBE(3 : 0)* und STAT(2 : 0) 901 an. wie im Falle einer typischen
Lese- oder Schreiboperation wird ASTB* 902 zum Zeitpunkt t2 ak
tiv getrieben. Zum Zeitpunkt t3 aktiviert die Bus-Schnittstelle
oder der aktuelle Bus-Master das Snoop-Strobe-Signal 903, um
anzuzeigen, daß ein Snoopzyklus angefordert worden ist. Zum
Zeitpunkt t4 werden CSLTCHE/O*-Signale 905 aktiv gesteuert.
Im Gegensatz zum deterministischen Snoopzyklus, wie er in
Fig. 8 gezeigt ist, suspendiert die Standard-Busschnittstelle
den aktuellen Zyklus bis zur Hoch-nach-Niedrig-Abtastung des
SPRDY*-Signals 904. Dies geschieht zum Zeitpunkt t5. Sobald
SPRDY* 904 zum Zeitpunkt t5 in Fig. 9 niedrig gesteuert ist,
stehen die Ergebnisse des Snoop-Zyklus entsprechend dem
MODIFIED*-Signal 906 zum Zeitpunkt t6 zur Verfügung. Wenn
MODIFIED* 906 inaktiv ist, führt der Snoopzyklus zu einem
Cache-Fehlversuch oder einem Treffer in einer nicht-modifizier
ten Cache-Zeile, was anzeigt, daß höchstens eine Invalidisie
rung der Cache-Zeile durchgeführt wurde. Wenn MODIFIED* 906 zum
Zeitpunkt t6 inaktiv abgetastet wurde, kann der Zyklus fortge
setzt werden. SSTB* 903, das seit dem Zeitpunkt t3 aktiv war,
kann zum Zeitpunkt t7 inaktiv gesteuert werden. Nach dem Zeit
punkt t7 kann SPRDY* 904 vom CPU-Modul innerhalb einer defi
nierten Zeitspanne inaktiv getrieben werden. SSTB* 903 muß für
eine Aktivierungsimpuls-Mindestbreite von 20 ns, beispielsweise
zwischen den Zeiten t3 und t7 aktiv sein und die definierten
Signalbeziehungen gemäß Fig. 9 erfüllen. Es muß auch aktiv ge
trieben werden, bis SPRDY* 904 von einem vorhergehenden
Snoopzyklus inaktiv getrieben wird. Der Nur-Invalidisierungs-
Zyklus ist abgeschlossen, wenn zum Zeitpunkt t8 gemäß Fig. 9
SPRDY* 904, CSLTCHE/O* 905 und ASTB* 902 zum Zeitpunkt t8 alle
inaktiv getrieben sind.
Asynchrone Snoopzyklen, die Rückschreibungen vom Cache er
forderlich machen, werden unter Bezugnahme auf Fig. 10 erör
tert. Dieser Prozeß wird verwendet, wenn ein Treffer in einer
modifizierten Cache-Zeile auftritt (Cacheinhalt ist nicht kon
sistent mit Speicher). Wie oben erörtert, werden gültige Adreß-,
Status- und Byte-Aktivierungssignale 1001 zum Zeitpunkt t1
gültig getrieben. Der Zyklus beginnt zum Zeitpunkt t2, an dem
ASTB*-Signal 1002 aktiviert und die CSLTCHE/O*-Signale 1003 zum
Zeitpunkt t3 aktiv gesteuert werden. Zusätzlich wird zum Zeit
punkt t3 SSTB* 1004 von der Standard-Busschnittstelle akti
viert. Dies zeigt dem CPU-Modul an, daß gültige Adreß- und Sta
tusinformationen an der Schnittstelle anstehen. Wie unter Be
zugnahme auf Fig. 9 erörtert wurde, suspendiert die Standard-
Busschnittstelle den aktuellen Zyklus, bis SPRDY* (Snoop be
reit)-Signal 1005 als aktiv abgetastet wird, was anzeigt, daß
die Ergebnisse des CPU-Modul-Snoopzyklus jetzt zur Verfügung
stehen. MODIFIED*-Signal 1006 bringt die Ergebnisse der Snoop-
Operation zurück. SPRDY*-Signal 1005 wird zum Zeitpunkt t4 vom
CPU-Modul aktiv getrieben, und MODIFIED* 1006 berücksichtigt
die Ergebnisse des Snoop-Zyklus zum Zeitpunkt t5, wie in Fig.
10 gezeigt ist. Wenn eine Rückschreiboperation vom zentralen
Verarbeitungsmodul gefordert wird, macht CPU-Modul MODIFIED*
1006 zum Zeitpunkt t5 wieder aktiv. Wenn eine Rückschreibopera
tion nicht erforderlich ist, so macht der CPU-Modul MODIFIED*
1006 wieder inaktiv, was in Fig. 9 gezeigt ist. In dem Fall,
daß ein Rückschreibzyklus erforderlich ist, treibt die Stan
dard-Busschnittstelle ASTB* 1002 weiter aktiv, während
CSLTCHE/O*-Signale 1003 zum Zeitpunkt t6 inaktiv getrieben wer
den. Die Statusadreß- und Byteaktivierungs- und Datenleitungen
1001 werden zum Zeitpunkt t6 auf schwimmendem Potential gehal
ten, um die Steuerung zum CPU-Modul für die Durchführung des
Rückschreibens zu übertragen. Der Rückschreibzyklus wird genau
unter Bezugnahme auf Fig. 11 beschrieben. Sobald diese Aktionen
aufgetreten sind, inaktiviert die Standard-Busschnittstelle
SSTB* 1004 zum Zeitpunkt t7, was dem CPU-Modul anzeigt, daß er
die Rückschreiboperation aus dem Cache durchführen sollte. Die
Rückschreiboperation wird im folgenden unter Bezugnahme auf
Fig. 11 beschrieben.
Wie in Fig. 11 zum Zeitpunkt t7, der dem Zeitpunkt t7 im
Busentscheidungszeitdiagramm gemäß Fig. 10 entspricht, gezeigt
ist, wurde SSTB* 1101 von der Standard-Busschnittstelle inaktiv
getrieben. Zum Zeitpunkt t2 in Fig. 11 treibt dann der CPU-Mo
dul Adreß-, Status- und Byte-Aktivierungsinformationssignale
1102. Ebenfalls zum Zeitpunkt t2 treibt der CPU-Modul CSLTCHE*
1103 und CSLTCHO* 1104 inaktiv, und zwar solange, wie MD(3 : 0)-
Signale 1106 gültig sind. Gültige Daten werden als MD(31 : 0)-Si
gnale 1106 zum Zeitpunkt t3 getrieben, und danach wird CSLTCHE*
1103 zum Zeitpunkt t4 aktiviert. CSLTCHE* 1103 und CSLTCHO*
1104 werden zusammen mit entsprechenden Daten über die Dauer
der Cachezeilen-Rückschreiboperation solange alterniert, bis
der Rückschreibzyklus abgeschlossen ist. Die Beendigung des
Rückschreibzyklus ist zum Zeitpunkt t5 in Fig. 11 angegeben,
wenn der CPU-Modul SPRDY* 1105 inaktiv treibt. Danach wird die
Steuerung wieder an die Standardbusschnittstelle zurückgegeben,
und der Snoop-mit-Rückschreiboperationszyklus ist gemäß Fig. 10
beendet.
Das Treiben des SPRDY*-Signals 1005 gemäß Fig. 10 wird zum
Zeitpunkt t8 in Fig. 10 festgestellt. Zum Zeitpunkt t10 werden
ASTB*-Signal 1002 und CSLTCHE/O*-Signale 1003 in ihre vor dem
Snoopzyklus in Fig. 10 eingenommenen Ursprungszustand zurückge
setzt. Der Snoopzyklus mit der Rückschreiboperation ist auf
diese Weise zum Zeitpunkt t10 beendet.
Die asynchrone Natur des Busses bedeutet, daß während des
Snoopzyklus irgendein Ereignis aufzutreten hat, das anzeigt,
daß der Snoop-Zyklus beendet worden ist. Dieses Ereignis ist
asynchron zu jedem Takt. Es wird jedoch etwas vor der die
Snoop-Ergebnisse enthaltenden Information erzeugt. Aufgrund
dieser Signalbeziehung wird der Aufwand der Synchronisierung
des Beendigungsanzeigesignals durch die Tatsache verdeckt, daß
es zur Erkennung synchronisiert werden muß. Diese Synchronisa
tion findet statt, während die Ergebnisse des Snoop-Zyklus noch
festgestellt werden. Daher ergibt sich selbst während einer
Snoop-Operation kein Nachteil für die asynchrone Schnittstelle.
Ein zusätzliches, durch das bevorzugte Ausführungsbeispiel
zur Verfügung gestelltes Merkmal besteht darin, daß die Stan
dard-Busschnittstelle für den Rückschreibzyklus auslösende Le
seanforderungen den Rückschreibzyklus in der in Fig. 11 angege
benen Weise überwacht. Dies geschieht, um festzustellen, ob Da
ten, die vom CPU-Modul in den Speicher geschrieben werden, für
diese von der Rückschreiboperation suspendierte Operation er
faßt werden können. Bei Übereinstimmung zwischen in den Haupt
speicher geschriebenen Daten, angezeigt durch MD(31 : 0)-Signale
1105; und Daten, die auf dem Bus angefordert werden, werden die
Daten "snarfed" während ihres Rückschreibens zum Hauptspeicher.
Um die Konsistenz zwischen den im Cache befindlichen Daten
und im Hauptspeicher befindlichen Daten aufrechtzuerhalten,
müssen von einem Standard-Busmaster und/oder CPU-Modulen er
zeugte Snoopzyklen in regelmäßigen Intervallen durchgeführt
werden. Für CPU-Modulen, die einen Durchschreib-Cache-Erset
zungsalgorithmus implementieren, sind Snoopzyklen nur bei
Schreibzugriffen durch Standard-Busmaster zum Speicher erfor
derlich. Für diese Art von Cache-Struktur sind Cachedaten stets
mit Speicherdaten konsistent. Daher wird der Dateninhalt des
Speicherplatzes jedesmal ungültig gemacht, wenn in den Speicher
geschrieben wird. Lesezugriffe erfordern überhaupt keine
Cacheaktion. Um jedoch sicherzustellen, daß nur ein begrenzter
Leistungsnachteil für Snoopzyklen beim Schreiben in Durch
schreib-Caches auftritt, ist es sehr zu empfehlen, daß keine
gleichzeitige Operation in einer Mehrniveau-Cache-Umgebung zwi
schen der CPU und dem sekundären Cache durchgeführt wird.
Für CPU-Module, die Rückschreib-Cache-Ersetzungsalgorithmen
implementieren, muß der Prozeß ähnlich demjenigen gemäß Fig. 12
verwendet werden, um Konsistenz des Cache während Lese- und
Schreiboperationen aufrechtzuerhalten. Snoopzyklen werden daher
sowohl bei Lese- als auch bei Schreibzyklen vom Standardbusma
ster zum Speicher durchgeführt. Unter Verwendung eines Snoopzy
klus 1200 wird im Schritt 1202 festgestellt, ob das Element im
Cache ist. Wenn dieses Element sich nicht im Cache befindet, so
ist keine weitere Aktion notwendig, und der Prozeß 1200 endet
bei 1203. Die Lese- oder Schreiboperation kann dann, wie not
wendig, stattfinden, in 02449 00070 552 001000280000000200012000285910233800040 0002004292241 00004 02330dem der Cache mit gültigen Daten gefüllt
wird oder Daten für spätere Rückschreibung in den Cache ge
schrieben werden. Wenn jedoch im Schritt 1202 ein Cache-Treffer
festgestellt wird, geht der Prozeß 1200 weiter zum Schritt
1204, in welchem über eine Cache-Tag-Tabellennachschlageopera
tion vom CPU-Modul festgestellt wird, ob der Speicherbereich
modifiziert worden ist. Beispielsweise kann ein Cache-Tag 104
in Fig. 1a zugegriffen werden. Dies wird im Schritt 1204 be
stimmt. Wenn die Daten nicht modifiziert worden sind, so wird
bestimmt, ob der Zyklus eine Schreiboperation im Schritt 1205
ist. Wenn dies der Fall ist, so setzt sich der Prozeß 1200
fort, um den Cacheeintrag im Schritt 1206 ungültig zu machen
und im Schritt 1208 zu beenden. Wenn der Zyklus eine Leseopera
tion ist, so werden die Daten im Schritt 1207 als "gemeinsamer"
Zustand angegeben (d. h. sie werden benötigt von mehr als einem
CPU-Modul), und der Prozeß endet im Schritt 1208.
Wenn die Daten, wie im Schritt 1204 durch CPU-Modul-Tag-
Nachschlageoperation bestimmt, modifiziert worden sind, geht
Prozeß 1200 zu Schritt 1209 über, wobei die Cache-Zeile zum
Speicher zurückgeschrieben wird. Danach wird bestimmt, ob die
die Tag-Nachschlageoperation erzeugende Anforderung ein
Schreibzyklus im Schritt 1210 war. Wenn ja, wird die Cache-
Zeile im Schritt 1212 invalidisiert. Wenn nein, dann wechselt
die Cache-Zeile über den Cache-Tag im Schritt 1212 zu einem
"gemeinsamen"-Status. Cache-Konsistenz-Prozeß 1200 endet dann
im Schritt 1213, sobald eine dieser Aktionen stattgefunden hat.
Somit wurde eine Erfindung für Burst-Modus-Übertragungen
zwischen Speicher und einem Prozessor in einem Computersystem
beschrieben. Obwohl die vorliegende Erfindung insbesondere mit
Bezug auf die Fig. 1a bis 12 beschrieben worden ist, ist es
dem Fachmann klar, daß die vorliegende Erfindung weit darüber
hinausgehend genutzt werden kann. Es ist klar, daß vom Fachmann
viele Änderungen und Modifikationen gemacht werden können, ohne
vom Sinn und Wesen der Erfindung abzuweichen.
Claims (6)
1. Einrichtung zum sequentiellen Durchführen mehrerer
Bustransaktionen zwischen einem Prozessor (102) und
vorinstallierten Speichermodulen (130) in einem
Computersystem mit
einem den Prozessor (102) enthaltenden Prozessormodul (101), wobei der Prozessor eine taktgebende Uhr enthält;
einem die vorinstallierten Speichermodule enthaltenden Speicher-Subsystem (130);
einem Bus (120), der den Prozessormodul (101) und das Speicher-Subsystem (130) miteinander koppelt;
einer ersten Schaltung (106), die im Prozessormodul (101) angeordnet ist, mit dem Takt der taktgebenden Uhr des Prozessors arbeitet und mit dem Bus (120) gekoppelt ist und zum Initialisieren und Unterstützen jeder Bustransaktion durch Erzeugen und Aufrechterhalten mehrerer erster Anfragesignale auf dem Bus dient;
wobei die Bustransaktionen jeweils eine Übertragung mindestens eines Datenwortes umfassen;
dadurch gekennzeichnet,
daß die Einrichtung außerdem folgende Komponenten enthält:
eine zweite taktgebende Uhr im Speicher-Subsystem (130), die unabhängig von der taktgebenden Uhr des Prozessors ist;
eine zweite Schaltung, die in einem ersten vorinstal lierten Speichermodul des Speicher-Subsystems (130) angeord net ist, mit dem Takt der taktgebenden Uhr des Speicher- Subsystems arbeitet und zum Ausgeben mehrerer erster Antwortsignale auf den Bus dient, wobei die zweite Schaltung die ersten Antwortsignale immer dann ausgibt, wenn die Anfragesignale den ersten vorinstallierten Speichermodul adressieren, und wobei die ersten Antwortsignale charakteristische Zugangsinformationen für den ersten vorinstallierten Speichermodul übertragen; eine dritte Schaltung, die zum Feststellen einer Zeitspanne für eine Bustransaktion dient, wenn die Anfragesignale die ersten Antwortsignale hervorgerufen haben, wobei die Zeitspanne mittels der übertragenen charakteristischen Zugangsinformationen festgestellt wird und in Einheiten der taktgebenden Uhr des Prozessors angibt, wie lange die erste Schaltung warten muß, bevor sie die Bustransaktion beenden kann;
eine vierte Schaltung, die im ersten vorinstallierten Speichermodul angeordnet ist, mit dem Takt der taktgebenden Uhr des Speicher-Subsystems arbeitet, mit dem Bus (120) gekoppelt ist und zum Übertragen einer Folge von Antwortdatenwörtern in einem Burst auf den Bus dient, wobei die vierte Schaltung die Antwortdaten immer dann in einem Burst überträgt, wenn die Anfragesignale eine Burst- Speicher-Lese-Bustransaktion anzeigen und den ersten vorinstallierten Speichermodul adressieren; und
daß die erste Schaltung weiterhin zum Beenden des Aufrechterhaltens der Anfragesignale auf dem Bus verwendet wird, nachdem entsprechend gewartet wurde.
einem den Prozessor (102) enthaltenden Prozessormodul (101), wobei der Prozessor eine taktgebende Uhr enthält;
einem die vorinstallierten Speichermodule enthaltenden Speicher-Subsystem (130);
einem Bus (120), der den Prozessormodul (101) und das Speicher-Subsystem (130) miteinander koppelt;
einer ersten Schaltung (106), die im Prozessormodul (101) angeordnet ist, mit dem Takt der taktgebenden Uhr des Prozessors arbeitet und mit dem Bus (120) gekoppelt ist und zum Initialisieren und Unterstützen jeder Bustransaktion durch Erzeugen und Aufrechterhalten mehrerer erster Anfragesignale auf dem Bus dient;
wobei die Bustransaktionen jeweils eine Übertragung mindestens eines Datenwortes umfassen;
dadurch gekennzeichnet,
daß die Einrichtung außerdem folgende Komponenten enthält:
eine zweite taktgebende Uhr im Speicher-Subsystem (130), die unabhängig von der taktgebenden Uhr des Prozessors ist;
eine zweite Schaltung, die in einem ersten vorinstal lierten Speichermodul des Speicher-Subsystems (130) angeord net ist, mit dem Takt der taktgebenden Uhr des Speicher- Subsystems arbeitet und zum Ausgeben mehrerer erster Antwortsignale auf den Bus dient, wobei die zweite Schaltung die ersten Antwortsignale immer dann ausgibt, wenn die Anfragesignale den ersten vorinstallierten Speichermodul adressieren, und wobei die ersten Antwortsignale charakteristische Zugangsinformationen für den ersten vorinstallierten Speichermodul übertragen; eine dritte Schaltung, die zum Feststellen einer Zeitspanne für eine Bustransaktion dient, wenn die Anfragesignale die ersten Antwortsignale hervorgerufen haben, wobei die Zeitspanne mittels der übertragenen charakteristischen Zugangsinformationen festgestellt wird und in Einheiten der taktgebenden Uhr des Prozessors angibt, wie lange die erste Schaltung warten muß, bevor sie die Bustransaktion beenden kann;
eine vierte Schaltung, die im ersten vorinstallierten Speichermodul angeordnet ist, mit dem Takt der taktgebenden Uhr des Speicher-Subsystems arbeitet, mit dem Bus (120) gekoppelt ist und zum Übertragen einer Folge von Antwortdatenwörtern in einem Burst auf den Bus dient, wobei die vierte Schaltung die Antwortdaten immer dann in einem Burst überträgt, wenn die Anfragesignale eine Burst- Speicher-Lese-Bustransaktion anzeigen und den ersten vorinstallierten Speichermodul adressieren; und
daß die erste Schaltung weiterhin zum Beenden des Aufrechterhaltens der Anfragesignale auf dem Bus verwendet wird, nachdem entsprechend gewartet wurde.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet,
daß sie außerdem
eine fünfte Schaltung enthält, die im Prozessormodul
(101) angeordnet ist, mit dem Takt der taktgebenden Uhr des
Prozessors arbeitet, mit der dritten Schaltung und dem Bus
(120) gekoppelt ist und zum Auffangen einer Folge von
Antwortdatenwörtern vom Bus mit einem Latch dient, wenn die
Antwortsignale eine Burst-Speicher-Lese-Bustransaktion
anzeigen, die dritte Schaltung eine Zeitspanne festgestellt
hat und die festgestellte Zeitspanne seit dem Initialisieren
der Bustransaktion bzw. zwischen zwei Lesevorgängen für
aufeinanderfolgende Datenwörter vergangen ist.
3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet,
daß die Einrichtung weiterhin
eine sechste Schaltung enthält, die in einem zweiten
vorinstallierten Speichermodul des Speicher-Subsystems
angeordnet ist, mit dem Takt der taktgebenden Uhr des Spei
cher-Subsystems arbeitet, mit dem Bus (120) gekoppelt ist
und zum Ausgeben zweiter Antwortsignale auf den Bus für eine
Bustransaktion dient, wenn die Anfragesignale der
Bustransaktion den zweiten vorinstallierten Speichermodul
adressieren, wobei die zweiten Antwortsignale anzeigen, daß
der zweite vorinstallierte Speichermodul die Bustransaktion
asynchron durchführen wird;
die dritte Schaltung weiterhin dazu verwandt wird, die zweiten Antwortsignale festzustellen und in Abhängigkeit davon auf dritte Antwortsignale zu warten, die anzeigen, daß der zweite vorinstallierte Speichermodul dazu bereit ist, die Bustransaktion zu vollenden;
die sechste Schaltung weiterhin dazu verwandt wird, die dritten Antwortsignale auf den Bus auszugeben, wenn die sechste Schaltung vorher die zweiten Antwortsignale für die Bustransaktion ausgegeben hat und die vierte Schaltung daraufhin Antwortdaten auf den Bus ausgegeben hat;
die fünfte Schaltung auch dazu verwandt wird, Antwortdaten mit einem Latch aufzufangen, wenn die dritte Schaltung erst die zweiten Antwortsignale und danach die dritten Antwortsignale für die Bustransaktion festgestellt hat;
die erste Schaltung weiterhin dazu verwandt wird, alle Bustransaktionssignale zu beenden, wenn die dritte Schaltung die dritten Antwortsignale festgestellt hat.
die dritte Schaltung weiterhin dazu verwandt wird, die zweiten Antwortsignale festzustellen und in Abhängigkeit davon auf dritte Antwortsignale zu warten, die anzeigen, daß der zweite vorinstallierte Speichermodul dazu bereit ist, die Bustransaktion zu vollenden;
die sechste Schaltung weiterhin dazu verwandt wird, die dritten Antwortsignale auf den Bus auszugeben, wenn die sechste Schaltung vorher die zweiten Antwortsignale für die Bustransaktion ausgegeben hat und die vierte Schaltung daraufhin Antwortdaten auf den Bus ausgegeben hat;
die fünfte Schaltung auch dazu verwandt wird, Antwortdaten mit einem Latch aufzufangen, wenn die dritte Schaltung erst die zweiten Antwortsignale und danach die dritten Antwortsignale für die Bustransaktion festgestellt hat;
die erste Schaltung weiterhin dazu verwandt wird, alle Bustransaktionssignale zu beenden, wenn die dritte Schaltung die dritten Antwortsignale festgestellt hat.
4. Verfahren zum sequentiellen Durchführen mehrerer
Bustransaktionen zwischen einem Prozessor (102) und
vorinstallierten Speichermodulen in einem Computersystem mit
einem den Prozessor (102) enthaltenden Prozessormodul (101), wobei der Prozessor eine taktgebende Uhr hat;
einem die vorinstallierten Speichermodule enthaltenden Speicher-Subsystem (130), wobei das Speicher-Subsystem eine von der taktgebenden Uhr des Prozessors unabhängige taktgebende Uhr enthält; und
mit einem Bus (120), der den Prozessormodul und das Speicher-Subsystem miteinander koppelt;
wobei die Bustransaktionen jeweils eine Übertragung mindestens eines Datenwortes umfassen; und wobei das Verfahren die folgenden Schritte enthält:
einem den Prozessor (102) enthaltenden Prozessormodul (101), wobei der Prozessor eine taktgebende Uhr hat;
einem die vorinstallierten Speichermodule enthaltenden Speicher-Subsystem (130), wobei das Speicher-Subsystem eine von der taktgebenden Uhr des Prozessors unabhängige taktgebende Uhr enthält; und
mit einem Bus (120), der den Prozessormodul und das Speicher-Subsystem miteinander koppelt;
wobei die Bustransaktionen jeweils eine Übertragung mindestens eines Datenwortes umfassen; und wobei das Verfahren die folgenden Schritte enthält:
- a) jede Bustransaktion wird vom Prozessormodul durch Erzeugen und Aufrechterhalten mehrerer erster Anfragesignale auf dem Bus initialisiert;
- b) wenn die Anfragesignale der Bustransaktion den ersten
vorinstallierten Speichermodul adressieren, werden durch ihn
erste Antwortsignale auf den Bus ausgegeben, wobei die
ersten Antwortsignale charakteristische Zugangsinformationen
über den ersten vorinstallierten Speichermodul des Speicher-
Subsystems übertragen;
in Abhängigkeit hiervon werden die folgenden Schritte ausgeführt:- 1. b(i) durch den Prozessor wird eine Zeitspanne in Einheiten der ersten taktgebenden Uhr festgestellt, wobei die Zeitspanne mittels der zurückgegebenen charakteristischen Zugangsinformationen festgestellt wird und angibt, wie lange der Prozessor zwischen zwei Lesevorgängen für aufeinanderfolgende Datenwörter warten muß;
- 2. b(ii) wenn die Anfragesignale der Bustransaktion eine Burst-Speicher-Lese-Bustransaktion anzeigen, wird eine Folge von Antwortdatenwörtern durch den ersten vorinstallierten Speichermodul in einem Burst auf den Bus übertragen;
- 3. b(iii) die Folge von Antwortdatenwörtern wird durch den Prozessor mit einem Latch aufgefangen, wobei seit der Initialisierung der Bustransaktion und zwischen den Lesevorgängen für aufeinanderfolgende Datenwörter jeweils Zeitspannen entsprechend der in Schritt b(i) festgestellten Zeitspanne gewartet werden; und
- 4. b(iv) die Bustransaktion wird durch den Prozessor dadurch vollendet, daß er aufhört, die Anfragesignale auf dem Bus aufrechtzuerhalten.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet,
daß
-
- b(v) das Aufrechterhalten der letzten Antwortdaten auf dem Bus durch den ersten vorinstallierten Speichermodul nach dem Beenden des Aufrechterhaltens der Anfragesignale beendet wird.
6. Verfahren nach Anspruch 4 oder 5, das weiterhin durch
folgende Schritte gekennzeichnet ist:
- a) wenn die Anfragesignale einen zweiten, mit der
Taktrate der taktgebenden Uhr des Speichersubsystems arbei
tenden, vorinstallierten Speichermodul adressieren, gibt
dieser zweite Antwortsignale auf den Bus aus, wobei die
zweiten Antwortsignale anzeigen, daß der zweite
vorinstallierte Speichermodul die Bustransaktion asynchron
durchführen wird;
in Abhängigkeit hiervon werden die folgenden Schritte ausgeführt:- 1. c(i) wenn der Prozessor die zweiten Antwortsignale festgestellt hat, wartet er auf dritte Antwortsignale;
- 2. c(ii) wenn die Antwortdaten vom zweiten vorinstallierten Speichermodul auf den Bus ausgegeben wurden, gibt der zweite vorinstallierte Speichermodul die dritten Antwortsignale auf den Bus aus;
- 3. c(iii) wenn der Prozessor die dritten Antwortsignale festgestellt hat, fängt er die Antwortdaten vom Bus mit einem Latch auf;
- 4. c(iv) nach Schritt c(iii) beendet der Prozessor die Bustransaktion durch Beenden des Aufrechterhaltens der Anfragesignale auf dem Bus;
- 5. c(v) wenn der zweite vorinstallierte Speichermodul das Beenden des Aufrechterhaltens der Anfragesignale festgestellt hat, beendet er das Aufrechterhalten der Antwortdaten auf dem Bus.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72472691A | 1991-07-02 | 1991-07-02 | |
PCT/US1992/005482 WO1993001552A1 (en) | 1991-07-02 | 1992-06-30 | Asynchronous modular bus architecture with burst capability |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4292241C2 true DE4292241C2 (de) | 1998-04-16 |
Family
ID=24911646
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4292241A Expired - Fee Related DE4292241C2 (de) | 1991-07-02 | 1992-06-30 | Einrichtung und Verfahren zum sequentiellen Durchführen mehrerer Bustransaktionen zwischen einem Prozessor und vorinstallierten Speichermodulen in einem Computersystem |
DE4292241T Pending DE4292241T1 (de) | 1991-07-02 | 1992-06-30 | Asynchrone modulare Bus-Architektur mit Burst-Fähigkeit |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4292241T Pending DE4292241T1 (de) | 1991-07-02 | 1992-06-30 | Asynchrone modulare Bus-Architektur mit Burst-Fähigkeit |
Country Status (3)
Country | Link |
---|---|
DE (2) | DE4292241C2 (de) |
GB (1) | GB2272315B (de) |
WO (1) | WO1993001552A1 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5526512A (en) * | 1993-09-20 | 1996-06-11 | International Business Machines Corporation | Dynamic management of snoop granularity for a coherent asynchronous DMA cache |
JP3579461B2 (ja) | 1993-10-15 | 2004-10-20 | 株式会社ルネサステクノロジ | データ処理システム及びデータ処理装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4370712A (en) * | 1980-10-31 | 1983-01-25 | Honeywell Information Systems Inc. | Memory controller with address independent burst mode capability |
EP0348113A2 (de) * | 1988-06-24 | 1989-12-27 | Advanced Micro Devices, Inc. | Vorrichtung und Technik für Burstprogrammierung |
EP0358448A2 (de) * | 1988-09-09 | 1990-03-14 | Compaq Computer Corporation | Rechnersystem mit Hochgeschwindigkeitsdatenübertragungsfähigkeiten |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4376972A (en) * | 1980-01-08 | 1983-03-15 | Honeywell Information Systems Inc. | Sequential word aligned address apparatus |
US4451880A (en) * | 1980-10-31 | 1984-05-29 | Honeywell Information Systems Inc. | Memory controller with interleaved queuing apparatus |
US4366539A (en) * | 1980-10-31 | 1982-12-28 | Honeywell Information Systems Inc. | Memory controller with burst mode capability |
US4558429A (en) * | 1981-12-17 | 1985-12-10 | Honeywell Information Systems Inc. | Pause apparatus for a memory controller with interleaved queuing apparatus |
-
1992
- 1992-06-30 GB GB9325945A patent/GB2272315B/en not_active Expired - Fee Related
- 1992-06-30 WO PCT/US1992/005482 patent/WO1993001552A1/en active Application Filing
- 1992-06-30 DE DE4292241A patent/DE4292241C2/de not_active Expired - Fee Related
- 1992-06-30 DE DE4292241T patent/DE4292241T1/de active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4370712A (en) * | 1980-10-31 | 1983-01-25 | Honeywell Information Systems Inc. | Memory controller with address independent burst mode capability |
EP0348113A2 (de) * | 1988-06-24 | 1989-12-27 | Advanced Micro Devices, Inc. | Vorrichtung und Technik für Burstprogrammierung |
EP0358448A2 (de) * | 1988-09-09 | 1990-03-14 | Compaq Computer Corporation | Rechnersystem mit Hochgeschwindigkeitsdatenübertragungsfähigkeiten |
Also Published As
Publication number | Publication date |
---|---|
GB2272315A (en) | 1994-05-11 |
GB2272315B (en) | 1995-10-04 |
GB9325945D0 (en) | 1994-03-02 |
WO1993001552A1 (en) | 1993-01-21 |
DE4292241T1 (de) | 1994-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10085385B3 (de) | Vierfach gepumpte Bus-Architektur und Protokoll | |
DE69825915T2 (de) | Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system | |
DE69721643T2 (de) | Multiprozessorsystem ausgestaltet zur effizienten Ausführung von Schreiboperationen | |
DE69724354T2 (de) | Ein Mehrprozessorrechnersystem mit lokalen und globalen Adressräumen und mehreren Zugriffsmoden | |
DE69722079T2 (de) | Ein Mehrrechnersystem mit Anordnung zum Durchführen von Blockkopieroperationen | |
DE69233655T2 (de) | Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedenartiger Prozessoren | |
DE69724353T2 (de) | Mehrrechnersystem mit einem Drei-Sprung-Kommunikationsprotokoll | |
DE19580990C2 (de) | Verfahren und Einrichtung zum Ausführen verzögerter Transaktionen | |
DE69628609T2 (de) | Distribuiertes Pipeline-Busarbitrierungssystem | |
DE3909948C2 (de) | ||
DE69729243T2 (de) | Multiprozessorsystem mit Vorrichtung zur Optimierung von Spin-Lock-Operationen | |
DE69722117T2 (de) | Einheitliche Speicherarchitektur mit dynamischer Grafikspeicherzuordnung | |
DE69727856T2 (de) | Multiprozessorsystem mit Konsistenzfehler-Registrierung mit entsprechendem Verfahren | |
US5761731A (en) | Method and apparatus for performing atomic transactions in a shared memory multi processor system | |
DE69722512T2 (de) | Mehrrechnersystem mit einem die Anzahl der Antworten enthaltenden Kohärenzprotokoll | |
DE69822866T2 (de) | System und verfahren zum beenden von lock-step-sequenzen in einem multiprozessorsystem | |
DE10296959T5 (de) | System und Verfahren zum Steuern der Buszuteilung während Cache-Speicher-Burstzyklen | |
DE2854485A1 (de) | Datenverarbeitungssystem mit speicherhierarchie | |
DE102007018033A1 (de) | Kohärenzverzeichnisaktualisierung | |
DE602004012310T2 (de) | Speicherschnittstelle für systeme mit mehreren prozessoren und einem speichersystem | |
DE4417068A1 (de) | Verfahren und Einrichtung zum Betreiben eines Einzel-Prozessor-Computersystems als Mehr-Prozessor-System | |
DE10219623A1 (de) | System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen | |
DE3943095A1 (de) | Einrichtung und verfahren zum zuordnen verfuegbaren speicherraums zum systemspeicherraum in einem computersystem | |
DE19882975B4 (de) | Zugreifen auf eine Nachrichtenaustauscheinheit von einem sekundären Bus aus | |
DE10045916A1 (de) | Methode und System zum Implementieren eines Remstat-Protokolls und Einbeziehung und Nicht-Einbeziehung von L1-Daten im L2-Cache zur Verhinderung einer gegenseitigen Lesesperre |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |