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 Computersystem

Info

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
Application number
DE4292241A
Other languages
English (en)
Other versions
DE4292241T1 (de
Inventor
Stephen Scott Pawlowski
Peter Dalton Macwilliams
Jerzy Bogdan Kolinkski
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE4292241C2 publication Critical patent/DE4292241C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst 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.
KURZBESCHREIBUNG DER ZEICHNUNGEN
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.
DETAILLIERTE BESCHREIBUNG
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.
COMPUTERSYSTEMÜBERBLICK Allgemeine Systembeschreibung
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.
Blockschaltbild des bevorzugten Ausführungsbeispiels
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.
Signalbezeichnungskonventionen
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.
Adreßsignalgruppe
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.
Datensignalgruppe
MD(31 : 0) Bezieht sich auf die 32 Tri-State-Datenleitungen des Datenbusses des bevorzugten Ausführungsbeispiels.
Anforderungssignalgruppe
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.
Antwortsignalgruppe
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.
Befehlssignalgruppe
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.
Speicherbus-Decodiersignale
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.
Cache-Konsistenzgruppe
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.
SPEICHERGRÖSSENIDENTIFIKATION - Fig. 2
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.
BUSZUWEISUNGSENTSCHEIDUNGSZYKLUS
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.
Normale Zuweisungsentscheidung - Fig. 3a
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.
Austausch-Protokoll - Fig. 3b
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.
ANFORDERUNGS/ANTWORT-PROTOKOLL
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.
Deterministischer Lesezyklus - Fig. 4a
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.
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.
Asynchroner Lesezyklus - Fig. 4b
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.
Deterministischer Schreibzyklus - Fig. 4c
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.
Asynchroner Schreibzyklus - Fig. 4d.
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.
Burst-Lesezyklen - Fig. 5 bis 6d
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.
Cache-Konsistenz-Protokoll - Fig. 7-12
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.
Snoopzyklen
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
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
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.
Aufrechterhaltung der Cache-Konsistenz
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.
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.
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:
  • 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.
DE4292241A 1991-07-02 1992-06-30 Einrichtung und Verfahren zum sequentiellen Durchführen mehrerer Bustransaktionen zwischen einem Prozessor und vorinstallierten Speichermodulen in einem Computersystem Expired - Fee Related DE4292241C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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