DE3832758A1 - Computerisierte arbeitsstation - Google Patents

Computerisierte arbeitsstation

Info

Publication number
DE3832758A1
DE3832758A1 DE3832758A DE3832758A DE3832758A1 DE 3832758 A1 DE3832758 A1 DE 3832758A1 DE 3832758 A DE3832758 A DE 3832758A DE 3832758 A DE3832758 A DE 3832758A DE 3832758 A1 DE3832758 A1 DE 3832758A1
Authority
DE
Germany
Prior art keywords
cache
address
addresses
alias
page
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.)
Granted
Application number
DE3832758A
Other languages
English (en)
Other versions
DE3832758C2 (de
Inventor
William Van Loo
John Watkins
Joseph Moran Moran
William Shannon
Ray Cheng
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE3832758A1 publication Critical patent/DE3832758A1/de
Application granted granted Critical
Publication of DE3832758C2 publication Critical patent/DE3832758C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/653Page colouring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

Die Erfindung bezieht sich auf eine computerisierte Arbeitsstation, die von virtueller Adressierung in Multibenutzer-Betriebssystemen mit Rückschreib-Caches (write back caches) Gebrauch macht, einschließlich Betriebssystemen, welche es jedem Benutzer ermöglichen, aktive Vielfachprozesse zu haben. Zweckmäßigerweise wird die Erfindung im folgenden unter Bezugnahme auf ein besonderes Multibenutzer-Mehrfach-Aktivprozeß- Betriebssystem, nämlich in bezug auf das Unix-Betriebssystem beschrieben. Die Erfindung ist jedoch nicht auf die Verwendung des Unix-Betriebssystems beschränkt.
Bei einer Arbeitsstation auf Unix-Basis kann die Systemfunktion dadurch beträchtlich verbessert werden, daß man ein Rückschreib- Cache für virtuelle Adressen als eines der Systemelemente verwendet. Ein in Verbindung mit solchen Systemen erwachsendes Problem liegt in der Unterstützung von Alias-Adressen, d. h. zwei oder mehrere virtuellen Adressen, welche auf dieselbe physikalische Adresse im Realspeicher abbilden (map).
Das Problem entsteht dadurch, daß eine durch eine Alias-Adresse durchgeführte Datenaktualisierung in Rückschreib-Cache über einen Cachezugriff zur Alias-Adresse nicht gesehen wird, da die beiden Alias-Adressen nicht übereinstimmen.
Die virtuelle Adressierung ermöglicht insbesondere eine Aliasierung, d. h. die Aufzeichnung bzw. Abbildung (mapping) von virtuellen Mehrfachadressen an derselben physikalischen Adresse. Wenn ein direkt aufgezeichneter Virtuelladressen-Rückschreib- Cache in einem System ohne Seitenabbildungsrestriktionen verwendet würde, so könnten zwei beliebige virtuelle Adressen zwei beliebige Cache-Plätze einnehmen und trotzdem auf derselben physikalischen Adresse abbilden. Wenn Cache- Blöcke modifiziert werden, ist es generell unmöglich, beliebige Cache-Plätze nach Datenkonsistenz zu überprüfen. Daten können inkonsistent werden, wenn Änderungen an einem Cache- Platz an einem anderen Cache-Platz nicht gesehen werden. Schließlich enthalten die Daten an der gemeinsamen physikalischen Adresse im Hauptspeicher nur einen Teil der von der CPU oder einem Eingabe/Ausgabe-Gerät an einigen Cache-Plätzen vorgenommenen Modifikationen.
Bei der vorliegenden Erfindung wird das zuvor beschriebene Problem dadurch gelöst, daß zwei unterschiedliche Strategien des Handlings von Alias-Adressen miteinander kombiniert werden.
Die erste Strategie besteht in der Erzeugung von Alias-Adressen derart, daß ihre Adreßbits niedriger Ordnung identisch sind, modulo die Größe des Cache-Speichers (als Minimum). Diese Strategie ist anwendbar auf alle Benutzerprogramme, die vom Kern (kernel) erzeugte oder vollständig im Kern befindliche Alias-Adressen benutzen. Diese Alias-Adressen werden für diese Strategie durch Modifikationen des Kerns erzeugt und sind für Benutzerprogramme unsichtbar. Die so erzeugten Alias- Adressen bilden auf denselben Cache-Block innerhalb eines direkt aufgezeichneten (Einweg-Satz-Assoziativ-)Cache oder innerhalb desselben Cache-Satzes in einem Mehrwege-Satz-Assoziativ- Speicher (multi-way set associative cache) ab. Eine Alias-Hardware-Bestimmungslogik wird dann zum Garantieren der Datenkonsistenz innerhalb dieses Cache-Blocks (oder Cache-Satzes) verwendet.
Die zweite Strategie erfaßt statt der Benutzerprogramme diejenigen Alias-Adressen im Betriebssystem, welche an ihren Adreßbits niedriger Ordnung nicht in Übereinstimmung gebracht werden können. Diese werden durch Zuordnung ihrer Seiten als "Nicht-Cache-(zu speichernde)" Seiten in der Speichermanagementeinheit (MMU) gehandhabt, welche von Arbeitsstationen bei Verwendung virtueller Adressierung benutzt wird.
Im folgenden wird die Erfindung unter Bezugnahme auf die Zeichnung näher erläutert. In der Zeichnung zeigen
Fig. 1 ein Blockschaltbild mit den Hauptkomponenten einer Arbeitsstation, bei der virtuelle Adressen mit Rückschreib-Cache verwendet werden;
Fig. 2a ein schematisches Schaltbild einer Cache- "Hit"-Logik;
Fig. 2b ein schematisches Schaltbild einer Schaltung zur Feststellung einer Cache-Schutz(vorschrift)übertretung;
Fig. 2c ein schematisches Schaltbild einer Schaltung zur Feststellung einer MMU-Schutz(vorschrift)übertretung;
Fig. 3 ein genaueres Blockschaltbild zur Darstellung des von der Alias-Bestimmungslogik nach der Erfindung verwendeten Adressenwegs;
Fig. 4a, 4b ein Ablaufdiagramm einer Zustandsmaschinenimplementierung für gewisse auf die Adressierung eines Virtuelladressen-Rückschreib- Cache bezogene Steuerungen;
Fig. 5 ein genaueres Blockschaltbild des von der Alias-Bestimmungslogik nach der Erfindung benutzten Datenweges;
Fig. 6a, 6b ein Ablaufdiagramm einer Zustandsmaschinenimplementierung für gewisse Steuervorgänge, die auf Datenübertragungen zu und von einem Virtuelladressen-Rückschreib-Cache (Zustände (a)-(o)) bezogen sind;
Fig. 7a ein Ablaufdiagramm einer Zustandsmaschinenimplementierung für den Datenweg, bei dem sich eine Realadressenübereinstimmung ergibt (Zustände (q)-(u));
Fig. 7b ein Ablaufdiagramm einer Zustandsmaschinenimplementierung für den Datenweg, bei dem sich während eines CPU-Schreib-Buszyklus keine Realadressenübereinstimmung ergibt (Zustände (q)-(y));
Fig. 7c ein Ablaufdiagramm einer Zustandsmaschinenimplementierung für den Datenweg, bei dem es während eines CPU-Lese-Buszyklus (Zustände (q)-(y)) keine Realadressenübereinstimmung gibt;
Fig. 7d ein Ablaufdiagramm einer Zustandsmaschinenimplementierung für den Datenweg während eines CPU-Schreib-Buszyklus, wenn die MMU eine Nicht-Cache-Seite angibt;
Fig. 8 ein Ablaufdiagramm einer Zustandsmaschinenimplementierung zur Steuerung der Rückschreib- Buszyklen zum Speicher;
Fig. 9a ein Zeitdiagramm für die beste Zeitgabe für einen CPU-Schreib-Buszyklus, wenn die MMU eine Cache-speicherbare Seite angibt;
Fig. 9b ein Zeitdiagramm für die beste Zeitgabe eines CPU-Schreib-Buszyklus, wenn die MMU eine Nicht-Cache-Seite angibt;
Fig. 10a ein Zeitdiagramm für die beste Zeitgabe eines CPU-Lese-Buszyklus, wenn die MMU eine Cache- speicherbare Seite angibt;
Fig. 10b ein Zeitdiagramm für die beste Zeitgabe eines CPU-Lese-Buszyklus, wenn die MMU eine Nicht- Cache-Seite angibt;
Fig. 11a ein Zeitdiagramm des Speicherbuszyklus zur Durchführung eines Block-Lesezyklus;
Fig. 11b ein Zeitdiagramm des Speicherbuszyklus zur Durchführung eines Rückwärtslesezyklus; und
Fig. 11c ein Zeitdiagramm des Speicherbuszyklus zur Durchführung eines Lesezyklus zu einer Nicht- Cache-Seite.
Fig. 1 zeigt die Funktionsblöcke in einer typischen, virtuelle Adressen verwendenden Arbeitsstation, in der die vorliegende Erfindung implementiert ist.
Insbesondere weist eine Arbeitsstation einen Mikroprozessor oder eine Zentraleinheit (CPU) 11, ein Cache-Daten(speicher)feld 19, ein Cache-Etiketten(speicher)feld 23, einen Cache- Trefferkomparator 25, eine Speichermanagementeinheit (MMU) 27, einen Hauptspeicher 31, einen Rückschreibpuffer 39 und eine Arbeitsstations-Steuerlogik 40 auf. Derartige Arbeitsstationen können wahlweise auch ein Kontext ID Register 32, eine Cache-Flush-Logik 33, eine direkte virtuelle Speicherzugriff (DVMA) Logik 35 und einen Multiplexer 37 aufweisen.
Zusätzlich zu den oben erwähnten Komponenten werden zur Implementierung der Erfindung auch ein Multiplexer 45, eine Alias- Bestimmungslogik 47, eine Alias-Bestimmungssteuerlogik 49 und ein Realadressenregister 51 benötigt. Die zuvor angegebenen Elemente unterstützen Alias-Adressen ohne die Probleme, die bekannten Implementierungen unter Verwendung eines Virtuelladressen- Rückschreib-Caches anhaften.
Jede der zuvor genannten Arbeitsstationskomponenten wird im folgenden beschrieben, einschließlich der an dem Betriebssystemkern (operating system kernel) vorzunehmenden Änderungen, wobei die erfindungsgemäß neuen Komponenten besonders hervorgehoben werden.
Beschreibung der notwendigen Elemente der Arbeitsstation
Die CPU 11 gibt Buszyklen zum Adressieren von Befehlen und Daten im Speicher (folgend einer Adressenübersetzung) und möglicherweise anderen Systemkomponenten aus. Die CPU-Adresse selbst ist eine virtuelle Adresse von (A) Bits Länge, die Befehlsbytes oder Daten innerhalb eines virtuellen Kontextes besonders identifiziert. Der Buszyklus kann durch ein oder mehrere Steuerfelder charakterisiert werden, um den Buszyklus speziell zu identifizieren. Insbesondere ist ein Lese/Schreib- Indikator sowie ein "Typ"-Feld erforderlich. Dieses Feld identifiziert den Speicherbefehl und den Datenadreßraum sowie die Zugriffspriorität (d. h. "Überwacher" oder "Benutzer"-Zugriffspriorität) für den Buszyklus. Eine CPU, die in einer Arbeitsstation mit virtueller Adressierung und der Möglichkeit der Unterstützung eines Multi-Benutzer-Betriebssystems verwendet werden kann, ist eine MC 68 020.
Ein anderes notwendiges Element in einer virtuellen Adressen- Arbeitsstation mit Rückschreib-Cache, wie sie in Fig. 1 gezeigt ist, ist das virtuelle Adressen-Cache-Daten(speicher)feld 19, das als Feld von 2 N Datenblöcken mit jeweils 2 M Bytes organisiert ist. Die 2 M Bytes innerhalb jedes Blockes sind mit den M-Adreßbits niedriger Ordnung speziell identifiziert. Jeder der 2 N Blöcke ist besonders adressiert als Matrix- oder Speicherfeldelement durch die nächstniedrigsten N-Adreßbits. Als virtueller Adreß-Cache sind die (N+M) Bits adressierenden Bytes innerhalb des Cache von dem virtuellen Adreßraum von (A+C) Bits. (Die (C) sind Kontext-Bits vom optionellen Kontext ID Register 32, das nachfolgend beschrieben werden wird.) Die (N+M) Bits enthalten generell die (P) unübersetzten Seitenbits plus addierte virtuelle Bits aus den die virtuelle Seitenadresse definierenden (A+C-P) Bits.
Das virtuelle Adressen-Cache-Datenspeicherfeld 19, das hier beschrieben wird, ist ein "direkt abgebildeter (direct mapped)" Cache oder ein "Einweg-Satz-Assoziativ-"-Speicher. Diese Cache-Organisation dient nur im Rahmen der vorliegenden Beschreibung zu Erläuterungszwecken und soll die Erfindung nicht beschränken. Die Erfindung kann auch in Verbindung mit Mehrweg-Satz-Assoziativ-Cache-Speichern (multi-way set associative caches) verwendet werden.
Ein anderes notwendiges Element, das in Fig. 1 gezeigt ist, ist das Virtuelladreß-Cache-Etiketten(speicher)feld 23, das ein Etikettenfeldelement für jeden Datenblock im Cache-Datenfeld 19 hat. Das Etikettenfeld enthält daher 2 N Elemente, von denen jedes ein gültiges Bit (V), ein modifiziertes Bit (M), zwei Schutzbits (P), bestehend aus einem Kontroll- oder Überwacherschutzbit (Supvsr Prot) und einem Schreiben-Erlaubt- Bit besteht, und ein Virtuelladreßfeld (VA und optionell CX), wie in Fig. 3 gezeigt ist. Der Inhalt des virtuellen Adreßfelds identifiziert zusammen mit den zum Adressieren der Cache-Etiketten- und Datenfelder verwendeten Adreßbits niedriger Ordnung speziell den Cache-Block innerhalb des gesamten virtuellen Adreßraums von (A+C) Bits. Das heißt das Virtuelladreß- Etikettenfeld muß ((A+C) - (M+N)) virtuelle Adreßbits enthalten.
Die Cache-"Hit"-Logik 25 vergleicht virtuelle Zugriffsadressen mit dem Inhalt des Virtuelladreß-Cache-Etikettenadreßfeldes. Innerhalb der Zugriffsadresse adressieren die M-Bits niedrigster Ordnung Bytes innerhalb eines Blocks; die nächstniedrigen N-Bits adressieren einen Block innerhalb des Cache; und die restlichen ((A+C) - (M+N)) Bits treten in Vergleich mit dem virtuellen Etikettenadreßfeld als Teil der Cache-"Hit"-Logik.
Die Cache-"Hit"-Logik muß bei Systemen mit einem gemeinsam genutzten Betriebssystem die Zugriffe zu Benutzerbefehlen und Daten und zu Überwacherbefehlen und Daten identifizieren. Eine "Hit"-Definition, welche diesen Erfordernissen genügt, ist in Fig. 2a dargestellt, welche Komparatoren 20, ein UND-Gatter 22, ein ODER-Gatter 24 und ein UND-Gatter 26 enthält.
Die MMU 27, welche Adressen innerhalb des virtuellen Raumes in eine physikalische Adresse übersetzt, ist ein anderes notwendiges Element. MMU 27 ist organisiert auf der Basis von Seiten von Größe (2 P ) Bytes, die ihrerseits als Segmente von Größe (2 S ) Seiten gruppiert sind. Das Adressieren innerhalb einer Seite bedingt (P) Bits. Diese (P) Bits sind physikalische Adreßbits, welche keiner Übersetzung bedürfen. Die Rolle der MMU 27 liegt in der Übersetzung der virtuellen Seitenadreßbits ((A+C-P) oder (A-P)) in physikalische Seitenadressen von (MM) Bits. Die zusammengesetzte physikalische Adresse ist dann (MM) Seitenadreßbits mit (P) Bits pro Seite.
MMU 27 ist auch der Ort für die Sicherungs- bzw. Schutzprüfung, d. h. den Vergleich der Zugriffsbuszykluspriorität mit der der Seite zugeordneten Sicherung. Um diesen Punkt darzustellen, gibt es zwei Arten von Sicherung oder Schutz, die oder der einer Seite zugeordnet werden kann, nämlich einen Überwacher/Benutzer-Zugriffsbezeichner und einen Schreibschutz/ Schreibzulassungsbezeichner. Obwohl die vorliegende Erfindung nicht auf diese beiden Schutztypen beschränkt ist, kann bei dieser Seitensicherung eine "Schutzübertretung" resultieren, wenn entweder ein "Benutzer"-Prioritätsbuszyklus auf eine Seite mit "Überwacher"- bzw. "Kontrolleur"-Sicherung zugreift; oder wenn ein "Schreib"-Buszyklus auf eine Seite mit einer "Schreibschutz"-Bezeichnung zugreift.
Die Anwendung der MMU-Schutzprüfung durch die MMU ist in Fig. 2c gezeigt. Die zugehörige Schaltung weist einen Inverter 28, UND-Gatter 30 a und 30 b, ein ODER-Gatter 34 und ein UND-Gatter 36 auf. Außerdem kann mit einem Virtuelladressen-Rückschreib- Cache das Konzept der Schutzprüfung auf das Cache-Speichern nur derjenigen CPU-Zyklen erweitert werden, welche nicht auf die MMU zugreifen. Eine solche Nur-Cache-Schutzlogik ist in Fig. 2b gezeigt und weist einen Inverter 42, UND-Gatter 44 a und 44 b, ein ODER-Gatter 46 und ein UND-Gatter 48 auf.
Ferner ist in Fig. 1 ein Hauptspeicher 31 gezeigt, der innerhalb des physikalischen Adreßraums adressierbar ist; die Steuerung des Hauptspeicherzugriffs geschieht über die Arbeitsstations- Steuerlogik 40.
Rückschreibpuffer 39 ist ein Register mit einem aus dem Cache- Datenfeld 19 geladenen Cache-Datenblock. Rückschreibpuffer 39 wird immer dann geladen, wenn ein vorhandener Cache-Block versetzt werden soll. Dies kann aufgrund der Notwendigkeit zum Aktualisieren des Cache-Blocks mit neuen Inhalten oder eines Spülens (flushing) des Blocks bedingt sein. In jedem Falle bestimmt in einem Rückschreib-Cache der Zustand des Cache-Etiketts für einen existierenden Cache-Block, ob dieser Block in den Speicher zurückgeschrieben werden muß. Wenn die Etiketten angeben, daß der Block gültig und in der weiter unten definierten Weise modifiziert ist, so muß der Blockinhalt in den Speicher 31 rückgeschrieben werden, wenn der Cache-Block versetzt wird. Der Rückschreibpuffer 39 speichert solche Daten zeitweilig zwischen, bevor sie in den Speicher geschrieben werden.
Die Arbeitsstations-Steuerlogik 40 steuert die Gesamtoperation der in Fig. 1 gezeigten Arbeitsstationselemente. Bei dem bevorzugten Ausführungsbeispiel hat die Steuerlogik 40 die Implementierung einiger Zustandsmaschinen, die in den Fig. 4 und 6 bis 8 gezeigt sind und genauer in Verbindung mit der Beschreibung der Alias-Bestimmungssteuerlogik 49 beschrieben werden, wobei die Steuerlogik 49 bei dem bevorzugten Ausführungsbeispiel ebenfalls in die Arbeitsstations-Steuerlogik integriert ist.
Beschreibung von optionellen Komponenten der Arbeitsstation
Das Kontext ID Register 32 ist ein optionelles externes Adreßregister, das weitere virtuelle Adreßbits zur Identifizierung eines virtuellen Kontextes oder Prozesses enthält. Dieses Register enthält C-Bits, identifiziert eine Gesamtzahl von (2**C) aktiven Benutzerprozessen; der gesamte virtuelle Adreßraum hat die Größe von 2**(A+C).
Eine wichtige Komponente dieses virtuellen Adreßraums von 2**(A+C) Bits ist der vom Betriebssystem besetzte Adreßraum.
Das Betriebssystem ist allen Benutzerprozessen gemeinsam und ist daher einem gemeinsamen Adreßraum über alle aktiven Benutzerprozesse zugeordnet. Das heißt die (C) Kontext-Bits haben keine Bedeutung für die Qualifizierung der Adressen von Seiten innerhalb des Betriebssystems. Statt dessen wird angenommen, daß das Betriebssystem innerhalb eines gemeinsamen, exklusiven Bereichs am oberen Ende der (2**A) Bytes des virtuellen Adreßraums für jeden aktiven Kontext liegt. Keine Benutzerseiten können innerhalb dieses Bereichs liegen. So sind die Betriebssystem- Seitenadressen für zwei verschiedene Benutzerprozesse identisch, während die Benutzerseiten für die beiden Prozesse unterschiedlich sind. Alle Seiten innerhalb des Betriebssystems sind mit "Überwacher"-Schutz markiert.
Arbeitsstationen des Typs, bei dem die Erfindung Verwendung finden kann, können auch eine Cache-Flush-Logik 33 zur Entfernung ausgewählter Blöcke aus dem virtuellen Cache enthalten, wenn virtuelle Adressen umgeordnet werden sollen.
Die Cache-Flush-Logik 33 wird hier nur soweit beschrieben, wie ihrer Rolle als Komponente in einem Virtuelladressen-Rückschreib- Cache-System zukommt. Wenn ein Bereich von Adressen (beispielsweise eine virtuelle Seitenadresse) umgeordnet werden soll, so müssen alle Adressen aus diesem Bereich entfernt oder "gespült = flushed" werden, bevor die neue Adressenzuordnung hergestellt werden kann. Ein Cache-Block wird "ausgespült" durch Ungültigmachen des gültigen Bits in seinen Etiketten und Rückschreiben des Blocks in den Speicher, wenn der Block modifiziert worden ist.
Zusätzlich zur CPU 11 als Quelle von Buszyklen kann die Arbeitsstation ein oder mehrere externe Eingabe/Ausgabe-(I/O-)- Geräte, z. B. eine DVMA-Logik 35 aufweisen. Diese externen I/O-Geräte sind in der Lage, Buszyklen auszugeben, welche parallel zur CPU auf einen oder mehrere "Typen" von virtuellen Adreßräumen zugreifen. Die virtuelle Adresse entweder von der CPU 11 oder der DVMA-Logik 35 wird zusammen mit der Adresse im Kontext ID Register 32 als Zugriffsadresse bezeichnet.
Ein anderes optionelles Element ist der Datenbuspuffer 37, der bei dem bevorzugten Ausführungsbeispiel in Form von zwei Puffern implementiert ist, um den Datenfluß zwischen einem 32-Bit-Bus und einem 64-Bit-Bus zu steuern. Derartige Puffer werden benötigt, wenn der CPU-Datenbus 32 Bits und der Cache- Datenfeld-Datenbus 64 Bits ist.
Beschreibung der besonderen neuen Komponenten der erfindungsgemäßen Arbeitsstation
Wie oben angegeben, macht die Erfindung von zwei unterschiedlichen Strategien zur Lösung der aus Alias-Adressen resultierenden Datenkonsistenzprobleme Gebrauch. Beide Strategien bedingen die Wechselwirkung des Betriebssystems mit spezieller Cache-Hardware, um konsistente Daten zu gewährleisten.
Die erste Strategie macht es erforderlich, daß alle Alias- Adressen, welche sich auf dieselben Daten richten bzw. abbilden, hinsichtlich ihrer Adreßbits niedriger Ordnung übereinstimmen, um sicherzustellen, daß sie denselben Speicherplatz benutzen, wenn die Daten Cache-gespeichert werden sollen. Die Erfindung benutzt die Alias-Bestimmungslogik 47, die ein Realadreßkomparator ist, um Alias-Adressen an Speicherzugriffen festzustellen, welche den Cache "verfehlen", und um die Cache- Datenaktualisierung zu steuern, damit gewährleistet ist, daß alle Alias-Adressen auf konsistente Daten innerhalb desselben Cache-Platzes hinweisen.
Die Kernadreß-Operationsmodulen, welche diese erste Strategie implementieren, zwingen Alias-Adressen, ihre Adreßbits niedriger Ordnung in Übereinstimmung zu bringen, so daß Alias-Adressen garantiert den gleichen Cache-Platz benutzen. Wenn der Cache die Größe von 2 M Datenblöcken hat, jeweils mit 2 N Bytes, so müssen wenigstens die (N+M) Bits niedriger Ordnung der Alias-Adressen übereinstimmen. Dies gilt für Alias-Adressen innerhalb desselben Prozesses ebenso wie für Alias-Adressen zwischen Prozessen. Solange diese Bedingung für direkt abgebildete (mapped) Cache-Speicher erfüllt ist, bilden Alias- Adressen in demselben Cache-Block ab, und im Mehrwegesatz-Assoziativspeicher bilden Alias-Adressen in demselben Cache-Satz ab. Die zweite Strategie verhindert, daß Daten durch Verwendung eines "Nicht-Cache"-Bits, das für jede Seite in der MMU 27 definiert ist, Cache-gespeichert werden. Mit anderen Worten, jeder Seitendeskriptor in der MMU 27 hat ein "Nicht- Cache"-Bit, das bestimmt, ob Befehle und Daten aus dieser Seite in den Cache-Speicher geschrieben werden. Wenn dieses Steuerbit für eine Seite gesetzt ist, so werden alle Datenzugriffe zu dieser Seite direkt auf den und von dem Hauptspeicher unter Umgehung des Cache-Speichers zugegriffen. Bei der Umgehung des Cache-Speichers wird das Problem der virtuellen Cache-Datenkonsistenz vermieden.
Da Alias-Adressierung möglich ist, wenn eine Seite bei einer MMU-Seitenangabe mit "Nicht-Cache" markiert ist, muß die Markierung "Nicht-Cache" bei allen Alias-Seiteneingaben vorgesehen werden. Anderenfalls wäre eine Datenkonsistenz nicht garantiert.
Alias-Adressenerzeugung für Benutzerprozesse wird durch den Kern (kernel) derart gesteuert, daß alle Benutzerprozesse die erste Strategie zur Gewährleistung der Datenkonsistenz unter Alias-Adressen verwenden. Einige Adressen für das Betriebssystem können jedoch nicht geändert werden, um die Adressierbedingungen für die erste Strategie zu erfüllen. Diese System- Alias-Adressen werden statt dessen mit der zweiten Strategie verarbeitet, d. h. der Zuordnung zu "Nicht-Cache"-Seiten.
Im folgenden wird eine Funktionsbeschreibung dessen gegeben, was zur Herstellung der Datenkonsistenz in einem direkt abgebildeten virtuellen Adressen-Rückschreib-Cache unter Verwendung einer Kombination der beiden Strategien benötigt wird. Wenn ein CPU 11- oder DVMA 35-Speicherzugriffszyklus den Cache "verfehlt", so wird die virtuelle Zugriffsadresse von der MMU übersetzt. Die MMU-Übersetzung bestimmt, ob die zugegriffene Seite eine "Nicht-Cache"-Seite ist und ob der Zugriff eine Schutzverletzung beinhaltet. Wenn der Zugriff gültig und ein Zugriff zu einer Cache-speicherbaren Seite ist, so wird der Cache mit dem der Zugriffsadresse entsprechenden Cache-Block aktualisiert.
Der vorhandene Inhalt des Cache an dem der Zugriffsadresse entsprechenden Platz muß geprüft werden, um eine mögliche Alias-Adresse festzustellen. Wenn der existierende Cache-Block gültig und modifiziert ist, so muß die übersetzte Adresse des Cache-Blocks mit der übersetzten Zugriffsadresse verglichen werden, um die Quelle der validen Daten zur Aktualisierung des Caches festzustellen.
Der Realadressenvergleich, der von der Alias-Bestimmungslogik 47 durchgeführt wird, nimmt als Eingänge die übersetzte Buszyklus- Zugriffsadresse vom Realadressenregister 51 und die übersetzte Cache-Adresse von der MMU 27.
Wenn der vorhandene Cache-Block gültig ist und die übersetzten Adressen vergleichbar sind, so sind die Zugriffsadresse und die Cache-Block-Adresse Alias. Wenn der Cache-Block modifiziert ist, so sind die existierenden Cache-Daten die neuesten Daten, und die Hauptspeicherdaten an dieser Adresse sind alt.
Wenn die übersetzten Adressen vergleichbar sind, jedoch der Cache-Block nicht modifiziert ist, so sind die alten Cache-Daten und die Speicherdaten identisch und können beide als Quelle für die Aktualisierung des Cache benutzt werden.
Sobald die Quelle für die gültigen Blockdaten bestimmt worden ist, kann der Zugriffszyklus abgeschlossen werden. Bei Lesezyklen führt der Buszyklus Daten entweder direkt aus der Quelle oder aus dem Cache nach der Cache-Aktualisierung zurück, was von der Implementierung abhängig ist. Bei Schreib-Zyklen können die Zugriffsdaten in den Cache geschrieben werden. Sowohl der Umfang der Cache-Aktualisierungen als auch die Cache-Datenausrichtung sind implementierungsabhängig.
Um Datenkonsistenz zu garantieren, macht das Schreiben in eine Seite erforderlich, daß alle Bezugnahmen auf diese Seite (Lesen oder Schreiben) dieser Restriktion unterliegen. Kein Bedingung wird an die Alias-Adressierung von Nur-Lese-Seiten gestellt.
Das bevorzugte Ausführungsbeispiel für den die Alias-Bestimmungslogik 47 beinhaltenden Adressenweg ist in Fig. 3 gezeigt. Wie in Fig. 3 gezeigt ist, enthält der Adressenweg die grundsätzlichen Komponenten für die Adressensteuerung in einem Virtuelladressen-Rückschreib-Cache. Für die Alias-Adressenunterstützung werden auch ein Virtuelladressen-Register 52 (VAR) für die virtuelle Adresse (CX und VA) und ein Cache-Block-Gültigkeitsbit (V), ein Multiplexer 45 zum Multiplexen der virtuellen Adresse des Virtuelladressen-Registers, ein Realadressenregister 51, eine Alias-Bestimmungslogik 47, ein UND-Gatter 53 (dessen Eingänge durch das Gültigkeitsbit vom VAR und das Ausgangssignal der Alias-Bestimmungslogik gebildet werden), und ein Realadressen-Übereinstimmungsflipflop 55 benötigt, wobei letzteres gesetzt ist, wenn eine Realadressenübereinstimmung festgestellt wird.
Der Datenweg vom Cache 19 zum Hauptspeicher 31 verläuft über zwei 64-Bit-Busse 56 und 58. Der CPU-Datenweg 60 ist 32 Bits, angegeben als D (31 : 0). Bei Lesebuszyklen wählt das Cache- Adreßbit A(2), welcher der beiden 32-Bit-Puffer 37 Daten vom 64-Bit-Cache-Datenbus 56 auf dem 32-Bit-CPU-Datenbus 60 aktivieren kann. Die Alias-Bestimmungslogik 49 steuert die Quelle der Daten bei Lesezyklus-Cache-Fehlgriffen (misses) (der Cache oder Speicher) und ob der Cache mit den Speicherdaten bei Schreibzyklus-Cache-Fehlgriffen aktualisiert wird, wie dies anhand der Datenzustandsmaschine gemäß Fig. 6 und 7 erläutert wird.
In den Fig. 3 und 5 sind zur Vermeidung einer Linienhäufung nicht alle Steuerleitungen gezeigt. Die für die richtige Operation der erfindungsgemäßen Anordnung notwendigen Steuerleitungen ergeben sich jedoch aus dem Ablaufdiagramm der in den Fig. 4 und 6 bis 8 gezeigten Zustandsmaschinen.
In den Ablaufdiagrammen werden die folgenden Abkürzungen und Bezeichnungen benutzt:
MUX -
Multiplexer 45
VA, Virt. Addr. - wählen bzw. ansteuern
VA - virtuelle Adresse
RA - reale Adresse
OE - Ausgangsaktivierung
Ack - Bestätigung
Assert - Anlegen
Deassert - Unterbrechen bzw. Abnehmen
Tag - Etikett
Translate - Übersetze
Update - Aktualisiere
State - Zustand
Merge - Mische
Retry - Neuversuch
Cache Hit? - Hat Cache "Hit"-Logik 25 einen Cache-Hit (Treffer) festgestellt? (Fig. 2a)
Cache Protect Violation? - Hat Steuerlogik 40 eine Cache-Schutzübertretung festgestellt? (Fig. 2b)
Memory Busy? - Wurde der Speicher als besetzt festgestellt?
MMU Protect Violation? - Hat Steuerlogik 40 eine MMU- Schutzübertragung festgestellt? (Fig. 2c)
RAR - Realadressenregister 51
CLK - Takt
Adr - Adresse
Mem Adr Strobe - Speicher 31 Adreßmarkierimpuls
VAR - Virtuelladressenregister 52
Mem Adr Ack? - Wurde eine Speicheradressenbestätigung vom Speicher 31 angelegt?
Mem Data Strobe 0? - Hat Speicherdatenstrobe 0 angestanden?
Mem Data Ack 0? - Hat Speicherdatenbestätigung 0 angestanden?
Mem Data Strobe 1? - Hat Speicherdatenstrobe 1 angestanden?
Mem Data Ack 1? - Hat Speicherdatenbestätigung 1 angestanden?
Clk Write Back Buffer - Taktrückschreibpuffer 39
Real Adr Match? - Wurde eine Realadressenübereinstimmung festgestellt (Flipflop 55)?
Don't Cache Page? - Hat Steuerlogik 40 eine Nicht- Cache-Seite aus der MMU 27 festgestellt?
CPU Read Cycle? - Ist CPU 11 in einem Lesezyklus?
Clk Data Reg. - Taktdatenregister 61
Valid and Modified @ Write Back Data? - Hat Steuerlogik 40 ein gültiges Bit (V) und ein modifiziertes Bit (M) festgestellt?
Write to Don't Cache Page - Hat Steuerlogik 40 einen CPU- Schreibbefehl in eine Nicht- Cache-Seite festgestellt?
Start No Cache Write? - Hat Steuerlogik 40 Start Nicht-Cache-Schreiben festgestellt?
Start Write Back Cycle? - Hat Steuerlogik 40 Start- Rückschreib-Zyklus festgestellt?
Cache Miss - Cache-Fehlgriff
Missmatch - Keine Übereinstimmung festgestellt
Complete Write to Memory - Vervollständige Schreiboperation in Speicher
Ähnliche Abkürzungen finden in den Zeitdiagrammen gemäß den Fig. 9 bis 11 Verwendung.
Die Adressenzustandsmaschine, die in den Fig. 4a und 4b gezeigt ist, definiert einige der auf den Adressenverarbeitungsabschnitt des Caches bezogenen Steueroperationen. Die Erfindung wird integriert über das Takten des Realadressen- Übereinstimmungs-Flipflops 55 am Zustand (o). Die Zustandsetiketten 23 werden als gültig während des Zustandes (w) geschrieben, und zwar im Anschluß an eine erfolgreiche Übertragung aller Blockdaten aus dem Speicher 31.
Die in den Fig. 6a und 6b sowie 7a-7d gezeigte Datenzustandsmaschine definiert gewisse Steueroperationen, die auf den Datenübertragungsabschnitt des Cache bezogen sind. Wie dargestellt, wird nach dem Zustand (g) ein Test auf ein Schreiben in eine Nicht-Cache-Seite durchgeführt; die Verarbeitung dieses Schreibbefehls in den Speicher ist auch in dem Weg-Folgezustand (i.dw) in der Datenzustandsmaschine beschrieben. Dem Zustand (o) folgend, wird ein Test nach einem Nicht- Cache-Seiten-Zugriff (dieses Mal nach Lesedaten) durchgeführt. Die Nicht-Cache-Lesesteuerung nimmt den gleichen Weg wie die Keine-Realadressen-Übereinstimmung, und zwar bis zu Zuständen (q.nr) und (u.nr). Hier sperrt ein Test nach Nicht- Cache-Seiten Cache-Aktualisierungen in Zuständen (s.nr) und (w.nr).
Die Rückschreib-Zustandsmaschine, die in Fig. 8 gezeigt ist, definiert die Steueroperation des Rückschreibbuszyklus zum Speicher. Dieser Zyklus kann parallel zu CPU-Cache-Zugriffen ausgeführt werden, da sowohl die Rückschreib-Steueroperationen als auch der Datenweg unabhängig von Cache-Zugriffssteuerungen und Datenweg sind. Wie weiter unten beschrieben werden wird, bewirkt das "Speicher belegt"-Signal, daß die Adreß- und Datenzustandsmaschinen warten, bis ein vorausgegangener Rückschreibzyklus abgeschlossen ist.
Das in Fig. 9a gezeigte Cache-Schreibfehlgriff-Zeitdiagramm definiert die Gesamtzeitgabe eines CPU-Schreibbuszyklus zu einer Cache-fähigen Seite im Speicher, welche den Cache verfehlt. Der Cache-Hit und die Schutzprüfung finden im Zyklus (c) dieses Diagramms statt.
Ein Teil der Fehlgriff-Handlingfolge umfaßt das Laden des zu ersetzenden aktuellen Cache-Blocks in den Rückschreibpuffer 39 während der Zyklen (i) und (m). Die übersetzte Adresse für den aktuellen Cache-Block wird auch in das Realadreß-Register 51 im Zyklus (o) geladen. Das Realadressen-Übereinstimmungslatch (Flipflop 55) wird auch beim Zyklus (o) getaktet. Wenn der aktuelle Cache-Block sowohl gültig als auch modifiziert ist aus einem früheren CPU- (oder DVMA)-Schreibzyklus, so wird dieser Cache-Block durch einen Rückschreibbuszyklus in den Speicher 31 zurückgeschrieben, wie durch die Speicherdatenbuszeitgabe und die Rückschreib-Zustandsmaschine, Fig. 11b bzw. 8 beschrieben ist.
Ein aktives Realadressen-Übereinstimmungslatch (Flipflop 55) gibt eine Alias-Adressenübereinstimmung an. Wenn keine Alias- Übereinstimmung existiert, werden die CPU-Schreibdaten mit Blockdaten gemischt, die aus dem Speicher bei der ersten Datenübertragung eines Blocklesespeicher-Buszyklus zurückgeführt wurden. Während der Zyklen (q) bis (u) sind die CPU-Schreibausgabe- Aktivierungssteuerpuffer 37 aktiv nur für die von der CPU zu schreibenden Bytes, während das Datenregister-Ausgangsaktivierungs- Steuerdatenregister 61 für alle anderen Bytes aktiv ist. Während der zweiten Datenübertragung, Zyklus (w), sind die Datenregister-Ausgangsaktivierungen für alle Bytes aktiv.
Wenn es eine Alias-Übereinstimmung gibt, werden die CPU-Daten im Zustand (s) in den Datencache geschrieben, und die Daten vom Speicher 31 werden ignoriert.
Die in Fig. 9b gezeigte Zeitgabe für das Schreibe-in-Nicht- Cache-Seite definiert die Gesamtzeitgabe eines CPU-Schreibbuszyklus zum Speicher für Zugriffe auf eine Nicht-Cache- Seite. Der Cache-Hit, der im Zyklus (c) auftritt, zeigt stets einen Fehlgriff (keinen Hit) an.
Der Schreibe in eine Nicht-Cache-Seite-Fall unterscheidet sich von dem Cache-Fehlgriff-Fall für eine Schreiboperation in eine Cache-speicherbare Seite dadurch, daß der Cache weder durch CPU- noch durch Speicherdaten aktualisiert wird. Die Implementierung verwendet einen speziellen Speicherbuszyklus, genannt Schreibe in Nicht-Seite-Zyklus (Fig. 11c), um den Speicher direkt zu aktualisieren. Zu beachten ist, daß das Realadreß- Übereinstimmungslatch keine Bedeutung für diesen Fall hat.
Das in Fig. 10a gezeigte Lese-Cache-Fehlgriff-Zeitdiagramm definiert die gesamte Zeitgabe eines CPU-Lesebuszyklus in eine Cache-speicherbare Seite im Speicher, welche den Cache verfehlt. Der Cache-Hit und die Schutzprüfung finden im Zyklus (c) dieses Diagramms statt.
Ein Teil dieser Fehlgriff-Handlingfolge umfaßt das Laden des zu ersetzenden Cache-Blocks in den Rückschreibpuffer 39 während der Zyklen (i) und (m). Die übersetzte Adresse für den aktuellen Cache-Block wird auch in das Realadressen-Register 51 in Zyklus (o) geladen. Das Realadressen-Übereinstimmungslatch (Flipflop 55) wird ebenfalls beim Zyklus (o) getaktet. Wenn der aktuelle Cache-Block sowohl gültig als auch aus einem früheren CPU- (oder DVMA)-Schreibzyklus modifiziert ist, so wird dieser Cache-Block über einen Rückschreib-Buszyklus in den Speicher 31 rückgeschrieben, was sowohl in der Speicherdatenbuszeitgabe als auch der Rückschreib-Zustandsmaschine, Fig. 11b bzw. 8, beschrieben ist.
Ein aktives Realadressen-Übereinstimmungslatch (Flipflop 55) bezeichnet eine Alias-Adressenübereinstimmung. Wenn es keine Alias-Adressenübereinstimmung gibt, werden Daten zur CPU gelesen, indem gleichzeitig die Daten über Puffer 37, die von einem in den Zuständen (q) bis (u) aktiven Steuersignal, CPU- Lese-Ausgangsaktivierung, aktiviert werden, zur CPU umgeleitet werden und der Cache im Zustand (s) aktualisiert wird. Der Speicher ist so ausgebildet, daß er die "fehlenden Daten" bei der ersten 64-Bit-Übertragung eines Block-Lese-Speicherbuszyklus und die anderen 64 Bits bei der nachfolgenden Übertragung stets zurückführt. Nach der Rückführung der CPU-Lesebus- Zyklusdaten kann die CPU interne Zyklen durchlaufen, während der Cache mit der zweiten Datenübertragung vom Speicher aktualisiert wird.
Wenn es eine Alias-Adressenübereinstimmung gibt, werden Daten direkt aus dem Cache 19 zur CPU 11 gelesen, und die Daten vom Speicher 31 werden ignoriert.
Die Zeitgabe für das Lesen aus einer Nicht-Cache-Seite ist in Fig. 10b gezeigt und definiert die Gesamtzeitgabe eines CPU- Lesebuszyklus zum Speicher für Zugriffe auf eine Nicht-Cache- Seite. Der Cache-Hit, der im Zustand (c) auftritt, gibt immer einen Fehlgriff (keinen Hit bzw. Treffer) an.
Der Fall des Lesens von einer Nicht-Cache-Seite unterscheidet sich von dem Fall des Cache-Fehlgriffs beim Lesen aus einer Cache-fähigen Seite dadurch, daß der Cache nicht mit Speicherdaten aktualisiert wird. Die Implementierung benutzt denselben Block-Lese-Speicherbuszyklus wie im Falle des Cache-Fehlgriffs (siehe des Speicherdatenbus-Zeitdiagramm). Das Realadressen- Übereinstimmungslatch (Flipflop 55) hat keine Bedeutung für diesen Fall.
Die in den Fig. 11a-11c gezeigte Speicherdatenbus-Zeitgabe zeigt die Zeitgabe von Block-Lesen, Rückschreiben und Schreiben in Nicht-Cache-Seiten-Buszyklen. Da die Cache-Blockgröße 128 Bits beträgt, macht jede Cache-Block-Aktualisierung zwei Datentransfers erforderlich. Wie oben angegeben, werden die die von CPU 11 adressierten Daten enthaltenden 64 Bits stets am ersten Transfer für Block-Lesebuszyklen rückgeführt. Das "Speicher belegt"-Steuersignal, das während des Rückschreibzyklus aktiv ist, wird zur Verhinderung des Starts des nächsten Cache-Fehlgriffzyklus benutzt, bis der vorhergehende Rückschreibzyklus zum Abschluß kommen kann.
Beim Schreiben in Nicht-Cache-Seite-Buszyklen definiert das 8-Bit Byte Markierungsfeld, das während der Adressenübertragungsphase des Zyklus ausgesandt wird, welches der 8 Datenbytes, die während der Datenphase gesendet wurden, im Speicher 31 aktualisiert werden sollen.
Zusätzlich zu der zuvor beschriebenen Hardware muß der Betriebssystemkern auf zwei grundsätzliche Weisen modifiziert werden, um die Alias-Adressierung zu unterstützen:
  • 1) Die Betriebssystem-Utilitäten, welche die Benutzer-Alias- Adressen erzeugen, müssen derart modifiziert werden, daß Alias-Adressen zuverlässig die Minimalbedingung erfüllen, daß ihre Adreßbits niedriger Ordnung (N+M) übereinstimmen.
  • 2) Beispiele von Alias-Adressen innerhalb des Betriebssystems, welche mit der Regel der Übereinstimmung der Bits niedriger Ordnung (N+M) nicht in Übereinstimmung gebracht werden können, müssen den "Nicht-Cache"-Seiten zugewiesen werden.

Claims (11)

1. Arbeitsstation mit einem einen Rückschreib-Cache für virtuelle Adressen benutzenden Betriebssystem, einem Hauptprozessor (11), der mit einem Cache-Etikettenfeld (23) gekoppelt ist, einem Cache-Datenfeld (19), einem Rückschreibpuffer (39), einer Speichermanagementeinheit (27), einem Realadressen-Register (51), einem Hauptspeicher (31), der physikalische Adressen hat, einem Cache-Hitdetektor und einer Arbeitsstations- Steuerlogik (40), gekennzeichnet durch:
  • a) eine erste Anordnung (47, 49), welche sicherstellt, daß alle Adressen, die auf dieselbe physikalische Adresse im Hauptspeicher (31) abbilden (map) und nicht zu einem vorgegebenen Satz von Alias-Adressen gehören, welche auf vom Betriebssystem exklusiv benutzte physikalische Adressen abbilden, in ihren Adreßbits niedriger Ordnung übereinstimmen, wodurch derselbe Platz im Cache-Datenfeld (23) benutzt wird; und
  • b) eine zweite Anordnung zum Sicherstellen, daß der vorgegebene Satz von Alias-Adressen, welche auf exklusiv vom Betriebssystem benutzte physikalische Adressen abbilden, Seiten haben, die als Nicht-Cache-Seiten markiert sind.
2. Arbeitsstation nach Anspruch 1, dadurch gekennzeichnet, daß die erste Anordnung die folgenden Komponenten enthält:
  • a) eine Alias-Bestimmungslogik (47) zur Bestimmung von Alias-Adressen, welche auf physikalische Adressen in dem Hauptspeicher (31) abbilden; und
  • b) eine Alias-Bestimmungssteuerlogik (49) zur Gewinnung der bei Lesezyklus- und Schreibzyklus-Cache-Fehlgriffen benutzten Daten entweder aus dem Cache-Datenfeld (19) oder dem Hauptspeicher (31) und zur Steuerung der Aktualisierung des Cache-Datenfeldes bei Schreibzyklus-Cachefehlgriffen.
3. Arbeitsstation nach Anspruch 2, dadurch gekennzeichnet, daß die Alias-Bestimmungslogik aufweist:
  • a) einen Komparator (47), der mit der Speichermanagementeinheit (27) und dem Realadressen-Register (51) gekoppelt ist und eine logische 1 erzeugt, wenn die in dem Realadressenregister gespeicherte Adresse mit einer vorgegebenen Cache-Adresse in einer Speichermanagementeinheit (27) übereinstimmt;
  • b) ein UND-Gatter (53), dessen einer Eingang mit dem Ausgang des Komparators (47) und dessen zweiter Eingang mit einem Cache-Gültigkeitsbit innerhalb eines Virtuelladressenregisters (52) gekoppelt ist, wobei das Virtuelladressenregister eine aus dem Cache-Etikettenfeld (23) geladene vorgegebene virtuelle Adresse speichert;
  • c) ein mit dem Ausgang des UND-Gatters (53) gekoppeltes Flipflop (55), das gesetzt ist, wenn in Abhängigkeit von dem Ausgang des UND-Gatters eine Realadressen-Übereinstimmung festgestellt wird.
4. Arbeitsstation nach Anspruch 2 oder 3, dadurch gekennzeichnet, daß die Alias-Bestimmungssteuerlogik (49) eine Zustandsmaschine enthält.
5. Arbeitsstation nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die zweite Anordnung Anzeigemittel enthält, die in der Speichermanagementeinheit (27) anzeigen, daß eine Seite im Hauptspeicher (31) eine Nicht-Cache-Seite ist.
6. Arbeitsstation nach Anspruch 5, dadurch gekennzeichnet, daß die Anzeigemittel ein Bit innerhalb eines Seitendeskriptorworts für jede Seite in der Speichermanagementeinheit (27) aufweist, wobei die Anordnung so getroffen ist, daß beim Setzen dieses Bits für eine Seite alle Datenzugriffe auf diese Seite direkt auf und von dem Speicher erfolgen, wodurch das Cache-Datenfeld (19) umgangen wird.
7. Verfahren zum Feststellen von Daten-Inkonsistenzen in einem Cache-Datenfeld und zur Korrektur der festgestellten Dateninkonsistenzen innerhalb einer Arbeitsstation mit einem einen Rückschreib-Cache für virtuelle Adressen benutzenden Betriebssystem, einem mit einem Cache-Etikettenfeld gekoppelten Hauptprozessor, dem Cache-Datenfeld, einem Rückschreibpuffer, einer Speichermanagementeinheit, einem Realadressen-Register, einem Hauptspeicher mit physikalischen Adressen, einem Cache-Hit-Detektor und einer Arbeitsstations-Steuerlogik, dadurch gekennzeichnet, daß sichergestellt wird, daß alle Alias-Adressen, welche auf dieselbe physikalische Adresse in dem Hauptspeicher abbilden (map) und andere Alias-Adressen sind als die Alias-Adressen eines vorgegebenen Satzes, die auf exklusiv vom Betriebssystem genutzte physikalische Adressen abbilden, in ihren Adreßbits niedriger Ordnung übereinstimmen, so daß sie denselben Platz im Cache-Datenfeld benutzen; und daß die Alias-Adressen des vorgegebenen Satzes, welche auf exklusiv vom Betriebssystem genutzte physikalische Adressen abbilden, als Nicht-Cache-Seiten markiert werden.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß die Sicherstellung mit den folgenden Schritten erfolgt:
  • a) die auf physikalische Adressen in dem Hauptspeicher abbildenden Alias-Adressen werden bestimmt,
  • b) die bei Lesezyklus- und Schreibzyklus-Cache-Fehlgriffen benutzten Daten werden entweder von dem Cache-Datenfeld oder dem Hauptspeicher gewonnen; und
  • c) das Cache-Datenfeld wird bei Schreibzyklus-Cachefehlgriffen selektiv aktualisiert.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß beim Feststellen der Alias-Adressen ein Komparator-Ausgangssignal erzeugt wird, das eine logische 1 ist, wenn die im Realadressenregister gespeicherte Adresse mit einer vorgegebenen Cache-Adresse in der Speichermanagementeinheit übereinstimmt, daß das Komparatorausgangssignal an einen ersten Eingang eines UND-Gatters angelegt wird, dessen zweiter Eingang ein Cache- Gültigkeitsbit innerhalb eines Virtuelladreßregisters erhält, welches eine vom Cache-Etikettenfeld geladene vorgegebene virtuelle Adresse speichert, und daß ein mit dem Ausgang des UND-Gatters gekoppeltes Flipflop gesetzt wird, wenn eine Realadressenübereinstimmung in Abhängigkeit vom Zustand des Ausgangssignals des UND-Gatters festgestellt wird.
10. Verfahren nach einem der Ansprüche 7 bis 9, dadurch gekennzeichnet, daß beim Markieren des vorgegebenen Satzes von Alias-Adressen in der Speichermanagementeinheit angegeben wird, daß eine Seite in dem Hauptspeicher eine Nicht-Cache- Seite ist.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß beim Anzeigeschritt ein Bit innerhalb eines Seitendeskriptorworts für jede Seite in der Speichermanagementeinheit gesetzt wird und daß nach Setzen dieses Bits für eine Seite alle Datenzugriffe auf die Seite direkt auf und von dem Speicher durchgeführt werden, wodurch das Cache-Datenfeld umgangen wird.
DE3832758A 1987-10-02 1988-09-27 Verfahren zum Adressieren eines im Rückschreib-Modus betriebenen virtuellen Cache-Speichers Expired - Fee Related DE3832758C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10463587A 1987-10-02 1987-10-02

Publications (2)

Publication Number Publication Date
DE3832758A1 true DE3832758A1 (de) 1989-04-13
DE3832758C2 DE3832758C2 (de) 1996-05-30

Family

ID=22301527

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3832758A Expired - Fee Related DE3832758C2 (de) 1987-10-02 1988-09-27 Verfahren zum Adressieren eines im Rückschreib-Modus betriebenen virtuellen Cache-Speichers

Country Status (7)

Country Link
JP (1) JPH071489B2 (de)
AU (1) AU609519B2 (de)
CA (1) CA1301354C (de)
DE (1) DE3832758C2 (de)
FR (1) FR2621408A1 (de)
GB (1) GB2210479B (de)
HK (1) HK95493A (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276798A (en) * 1990-09-14 1994-01-04 Hughes Aircraft Company Multifunction high performance graphics rendering processor
US5813046A (en) * 1993-11-09 1998-09-22 GMD--Forschungszentrum Informationstechnik GmbH Virtually indexable cache memory supporting synonyms
GB2293670A (en) * 1994-08-31 1996-04-03 Hewlett Packard Co Instruction cache
US6189074B1 (en) 1997-03-19 2001-02-13 Advanced Micro Devices, Inc. Mechanism for storing system level attributes in a translation lookaside buffer
US6446189B1 (en) 1999-06-01 2002-09-03 Advanced Micro Devices, Inc. Computer system including a novel address translation mechanism
US6510508B1 (en) 2000-06-15 2003-01-21 Advanced Micro Devices, Inc. Translation lookaside buffer flush filter
US6665788B1 (en) 2001-07-13 2003-12-16 Advanced Micro Devices, Inc. Reducing latency for a relocation cache lookup and address mapping in a distributed memory system
US10846235B2 (en) 2018-04-28 2020-11-24 International Business Machines Corporation Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator
US11853231B2 (en) 2021-06-24 2023-12-26 Ati Technologies Ulc Transmission of address translation type packets

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54148329A (en) * 1978-05-15 1979-11-20 Toshiba Corp Buffer memory control system and information processor containing buffer memory
JPS595482A (ja) * 1982-06-30 1984-01-12 Fujitsu Ltd キヤツシユバツフア装置管理方式
JPS62145341A (ja) * 1985-12-20 1987-06-29 Fujitsu Ltd キヤツシユメモリシステム
EP0282213A3 (de) * 1987-03-09 1991-04-24 AT&T Corp. Speicherverwaltungseinheit mit simultanem Kontext

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Elektronik, Heft 13, 26.6.1987, S. 105-110 *

Also Published As

Publication number Publication date
CA1301354C (en) 1992-05-19
JPH01108651A (ja) 1989-04-25
GB2210479A (en) 1989-06-07
GB2210479B (en) 1992-06-17
DE3832758C2 (de) 1996-05-30
GB8819017D0 (en) 1988-09-14
AU609519B2 (en) 1991-05-02
FR2621408B1 (de) 1994-04-22
HK95493A (en) 1993-09-24
JPH071489B2 (ja) 1995-01-11
AU2242288A (en) 1989-04-06
FR2621408A1 (fr) 1989-04-07

Similar Documents

Publication Publication Date Title
DE69432314T2 (de) Cachespeicher mit aufgeteiltem pegel
DE69721368T2 (de) Verfahren und Gerät zur dynamischen Vorhersage des Weges für mehrstufige und mehrwege-satz-assoziative Cachespeicher
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE69530776T2 (de) Zweiwege set-assoziativer cache-speicher
DE60320026T2 (de) Verbessertes speichermanagement für echtzeit-anwendungen
DE2226382C3 (de) Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern
DE2350215C2 (de) Rechenanlage
DE3151745C2 (de)
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE112005003863B3 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE60003273T2 (de) Verfahren und Vorrichtung zur Erzeugung einer Eingabeadresse
DE3724317C2 (de)
DE2227882C2 (de) Virtuelle Speicheranordnung
DE3832912A1 (de) Arbeitsstation mit virtueller adressierung in multibenutzer-betriebssystemen
DE2501853A1 (de) Prozessor fuer ein datenverarbeitungssystem
DE2241257B2 (de) Datenverarbeitende Anlage
DE3102150A1 (de) "schaltungsanordnung mit einem cachespeicher fuer eine zentraleinheit einer datenverarbeitungsanlage
DE4410060A1 (de) Rechenvorrichtung
DE69937611T2 (de) Intelligenter Puffer-Speicher
DE2441754A1 (de) Prozessor-datenuebertragungssteueranordnung sowie verfahren zur steuerung der datenuebertragung eines prozessors
DE10002120A1 (de) Logikstruktur eines Adressumsetzpuffers
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE2641722A1 (de) Hierarchisch geordnetes speichersystem fuer eine datenverarbeitende anlage mit virtueller adressierung
DE4103093C2 (de) Verfahren zum Steuern eines Datenübertragungs-Pufferspeichers und Computersystem zum Durchführen dieses Verfahrens

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