DE69027919T2 - Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher - Google Patents

Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher

Info

Publication number
DE69027919T2
DE69027919T2 DE69027919T DE69027919T DE69027919T2 DE 69027919 T2 DE69027919 T2 DE 69027919T2 DE 69027919 T DE69027919 T DE 69027919T DE 69027919 T DE69027919 T DE 69027919T DE 69027919 T2 DE69027919 T2 DE 69027919T2
Authority
DE
Germany
Prior art keywords
input
cache
output device
register
addresses
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
DE69027919T
Other languages
English (en)
Other versions
DE69027919D1 (de
Inventor
Jeffrey C Mogul
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Application granted granted Critical
Publication of DE69027919D1 publication Critical patent/DE69027919D1/de
Publication of DE69027919T2 publication Critical patent/DE69027919T2/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
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

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

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft im allgemeinen ein System und ein Verfahren zum Verbessern der Effizienz von programmierten Eingabe/Ausgabe-Interfaces (PE/A-Interfaces) und zum Abfragen (Pollen) von Eingabe/Ausgabe-Interfaces (E/A-Interfaces) in einem System mit großen Direktabbildungs-Datencaches. Die Erfindung betrifft insbesondere ein System und ein Verfahren, für welche die Verwendung von expliziten Cache-Managementbefehlen nicht erforderlich ist. Außerdem betrifft die Erfindung insbesondere ein solches System und Verfahren, bei dem die Verwendung von Direktabbildungs-Caches, eine große Anzahl von Cache-Leitungen, hohe Cache-Fehltreffer-Strafen im Bezug auf die Befehlszeiten und ein Fehlen von direkten Speicherzugriffs- (DMA-) Eingabe/Ausgabe-Einrichtungen miteinander kombiniert werden.
  • 2. Beschreibung des Stands der Technik
  • In einem Computersystem gibt es verschiedene Möglichkeiten, Eingabe/Ausgabeoperationen durchzuführen. Eine Möglichkeit, die häufig Gefallen findet, ist die sogenannte "Speicherabbildungs"-Eingabe/Ausgabe, wobei Register von Eingabe/Ausgabe-Einrichtungen im selben physikalischen Adreßraum wie der Hauptspeicher auftreten und auf sie daher über normale Lade-/Speicherbefehle zugegriffen werden kann. Speicherabbildungs-Eingabe/Ausgabe-Einrichtungen decodieren typischerweise physikalische Speicheradressen und reagieren auf Adressen in spezifischen Bereichen.
  • Bei der Verwendung von Prozessoren mit Datencaches liegt ein Problem darin, daß das Ziel des Caches, die Referenzierung an den Hauptspeicher zu unterdrücken, mit dem Ziel der Befehle in Konflikt geraten, die für den Zugriff auf die Register der Eingabe/Ausgabe-Einrichtungen verwendet werden, d.h. einen Eingabe/Ausgabe-Zugriff für jeden Lade- oder Speicherbefehl verursachen. Eine weitere Art, dieses Problem darzulegen, ist, daß die Software, die das Register einer Eingabe/Ausgabe-Einrichtung abfragt, garantieren muß, daß die abgefragte Adresse im Datencache ungültig ist, anderenfalls erkennt die Software nicht den tatsächlichen Wert des Registers.
  • Typische Arten, mit diesem Problem umzugehen, sind:
  • Cache-freie Zonen des physikalischen Adreßraums für die Register der Eingabe/Ausgabe-Einrichtungen; der Cache wird deaktiviert.
  • Explizite Cache-Managementoperationen, bei denen die Eingabe/Ausgabe- Software anfordern kann, daß eine bestimmte Cache-Zeile deaktiviert wird, was möglicherweise ein Write-back verursacht.
  • Indirekte Cache-Managementbefehle, die für Direktabbildungs-Caches nützlich sind und bei denen die Software eine Referenzierung eines Bereichs des physikalischen Adreßraums erzeugt, von dem bekannt ist, daß er mit der Cache- Zeile, die verwaltet wird, in Kollision gerät, und dadurch verursacht, daß die Zeile deaktiviert wird. Dieser andere Bereich kann als "reservierter" Bereich bezeichnet werden, obwohl er unabhängig davon als normaler Speicher benutzt werden kann.
  • Der gegenwärtige Trend beim Prozessordesign ist die Veränderung mehrerer Systemparameter. Die Cache-Zeilen werden größer. Die Systeme der nächsten Generation haben möglicherweise eine Second-level-Cache-Zeile von 256 Byte. Dies impliziert, daß eher Write-back-Caches als Write-through-Caches verwendet werden. Die Speicherlatenzzeiten werden, verglichen mit der Befehlsgeschwindigkeit, länger. Die Cache-Auffüllzeit bei den Systemen der nächsten Generation kann 200 Befehlszyklen lang werden.
  • Diese Veränderungen wirken sich auf die Leistung von herkömmlichen Einrichtungen im Umgang mit dem Speicherabbildungs-Eingabe/Ausgabe-Problem aus. Die Verwendung von Cache-freien Adressen ist einfach, aber weil dabei ein Cache-Fehltreffer für jeden Eingabe/Ausgabe-Befehl erzeugt wird, ist die Bandbreite für die programmierte Eingabe/Ausgabe-Datenübertragung auf einen kleinen Teil der Speichersystem-Bandbreite reduziert. In den Systemen der nächsten Generation kann dieser Teil 1/32 der ursprünglichen Bandbreite sein.
  • Explizite Cache-Managementbefehle können eine genaue Steuerung über die Verteilung der Cache-Zeilen liefern, verursachen aber, daß die Zentraleinheit (CPU) und Cache-Ausführungen noch komplexer werden, und sind nicht in allen Architekturen vorhanden. Ein implizites Cache-Management leidet unter hohen Latenzzeiten, weil sie im allgemeinen eine Referenzierung des reservierten Bereichs für jede Referenzierung eines Eingabe/Ausgabe-Registers benötigt. Sie benötigt daher zwei Cache-Fehltreffer und füllt bei Eingabe/Ausgabe-Referenzierung auf. Für eine programmierte Eingabe/Ausgabe-Datenübertragung ist es besser, das Datenpufferregister der Eingabe/Ausgabe-Einrichtung so groß wie eine Cache-Zeile zu machen. Dann steht fast die Hälfte der Bandbreite des Speichersystems für die Datenübertragung zur Verfügung. Die andere Hälfte wird immer noch für das Auffüllen aus dem reservierten Bereich verwendet. Aus dieser Diskussion wird klar, daß Üir die Verwendung in Computersystemen der nächsten Generation eine Verbesserung der herkömmlichen Mittel im Umgang mit Speicherabbildungs-Eingabe/Ausgabe-Einrichtungen nötig ist.
  • Computer Architecture News, Band 17, Nr. 9, September 1989, S. 16-23, liefert eine allgemeine Diskussion von Überlegungen zum DMA-Design bei RISC- Workstations und beinhaltet als in Betracht gezogene Alternative eine programmierte Eingabe/Ausgabe in einem System mit Zentraleinheit, Cache, Hauptspeicher und einer Cache-freien Speicherabbildungs-Eingabe/Ausgabe-Einrichtung.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein erfindungsgemäßes System für den Zugriff auf Eingabe/Ausgabe-Einrichtungen über große Direktabbildungs-Caches weist eine Zentraleinheit, einen Hauptspeicher, mindestens eine Eingabe/Ausgabe-Einrichtung und einen Direktabbildungs-Cache auf, der zwischen die Zentraleinheit und die mindestens eine Eingabe/Ausgabe-Einrichtung geschaltet ist. Die mindestens eine Eingabe/Ausgabe-Einrichtung hat mindestens ein Register, das mit einer ersten und mit einer zweiten Adresse adressiert werden kann, die so gewählt sind, daß sie im Direktabbildungs-Cache kollidieren. Der Ausdruck "kollidieren", wie er hier verwendet wird, heißt, daß die die beiden Adressen beide dasselbe Wort in einem Cache abbilden. Der Cache kann nicht gleichzeitig den Inhalt der beiden Speicherplätze beim selben Wort enthalten. Der Direktabbildungs-Cache, der Hauptspeicher und die mindestens eine Eingabe/Ausgabe-Einrichtung können mit Adressen mit einer gemeinsamen Form adressiert werden. Die Zentraleinheit arbeitet durch die Steuerung eines Eingabe/Ausgabe-Programms und adressiert die mindestens eine Eingabe/Ausgabe-Einheit abwechselnd mit der ersten und der zweiten Adresse, die so gewählt sind, daß sie im Direktabbildungs-Cache kollidieren. Dies ermöglicht, daß jeder Cache-Fehltreffer, der von einem Register der Eingabe/Ausgabe- Einrichtung aufgefüllt wird, nützliche Information vermittelt und gleichzeitig garantiert, daß der im Cache gespeicherte Wert nicht "veraltet" ist.
  • Ein erfindungsgemäßes Verfahren für den Zugriff auf Eingabe/Ausgabe- Einrichtungen über große Direktabbildungs-Caches beinhaltet das Adressieren des Direktabbildungs-Caches, des Hauptspeichers und der mindestens einen Eingabe/Ausgabe-Einrichtung mit Adressen in einer gemeinsamen Form. Die mindestens eine Eingabe/Ausgabe-Einrichtung hat mindestens ein Register, das abwechselnd mit einer ersten und einer zweiten Adresse adressiert wird, die so gewählt sind, daß sie im Direktabbildungs-Cache kollidieren.
  • Was durch das Vorstehende und weitere Vorteile und Merkmale erreicht wird, wird für den wohl Fachmann deutlicher, nachdem er sich mit der nachfolgenden detaillierteren Beschreibung der Erfindung zusammen mit den Zeichnungen näher beschäftigt hat, in denen:
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ein Blockdiagramm eines erfindungsgemäßen Systems darstellt,
  • Fig. 2 ein detaillierteres Blockdiagramm eines Teils des Systems aus Fig. 1 darstellt;
  • Fig. 3 ein Diagramm eines Speicheradressen-Formats für das System der Figuren 1 und 2 ist;
  • Fig. 4 ein Diagramm ist, das zeigt, wie Zeilen eines Caches auf einen Hauptspeicher im in den Figuren 1 und 2 gezeigten System abgebildet werden;
  • Fig. 5 ein Flußdiagramm ist, das die Arbeitsweise einer Form des erfindungsgemäßen Verfahrens mit dem System aus Figuren 1 und 2 zeigt;
  • Fig. 6 ein weiteres Flußdiagramm ist, das die Arbeitsweise einer weiteren Form des erfindungsgemäßen Verfahrens mit dem System aus Figuren 1 und 2 zeigt.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Nun wird auf die Zeichnungen Bezug genommen, insbesondere auf Fig. 1; dort ist ein System 10 gezeigt, das bei der vorliegenden Erfindung verwendet wird. Das System 10 beinhaltet eine Zentraleinheit 12, die mit einem Direktabbildungs- Cache 14 über einen Adreßbus 16 und einen Datenbus 18 verbunden ist. Der Cache 14 umfaßt einen First-level-Cache 20, der über einen Adreßbus 24 und einen Datenbus 26 mit einem Second-level-Cache 22 verbunden ist. Der Cache 14 könnte auch mit einem einstufigen Cache oder mit einem Cache mit mehr als zwei Stufen ausgeführt werden. Der Second-level-Cache 22 des Caches 14 ist mit einem Adreßbus 28 und einem Datenbus 30 über einen Adreßbus 32 und einen Datenbus 34 verbunden. Die Adreß- und Datenbusse 28 und 30 sind mit einem Speicher 36 und einer Eingabe/Ausgabe-Einrichtung 41 über einen Adreßbus 40, einen Datenbus 42 bzw. einen Adreßbus 44 und einen Datenbus 46 verbunden. Im System 10 ist die Zugriffszeitverzögerung zwischen der Zentraleinheit 12 und dem Cache 14 wesentlich geringer als die Zugriffszeitverzögerung zwischen dem Cache 14 und dem Speicher 36. Für einen erfolgreichen Zugriff oder "Treffer" ist beispielsweise beim Frist-level-Cache ein Zyklus nötig. Für einen Fehltreffer beim First-level-Cache und einen Treffer beim Second-level-Cache wären 10 Zyklen nötig. Für einen Fehltreffer beim Second-level-Cache, wofür ein Zugriff auf Speicher 36 erforderlich wäre, wären 100 bis 200 Zyklen nötig. Bei diesen Verhältnissen wird einen Zykluszeit von 2 Nanosekunden angenommen. Wenn die Basiszykluszeit abfällt, könnte das Verhältnis von 1:10:100 beispielsweise auf 1:30:1000 ansteigen. Eine Gleitkomma-Einheit (FPU) 48 ist mit der Zentraleinheit 12 über einen Bus 49 verbunden.
  • In der Praxis ist das System 10 mit einem "integrierten" Prozessor ausgeführt, d.h. die Zentraleinheit 12, die Gleitkomma-Einheit 48 und der First-level-Cache 20 sind zusammen auf einem einzigen IC-Chip 21 vorgesehen. Wenn dies bei Hochgeschwindigkeitstechnologie angewendet wird, wie beispielsweise bei emittergekoppelten Logikschaltungen (ECL) oder bei einem Galliumarsenid- (GaAs) Halbleiter-IC, wird eine extrem niedrige Zykluszeit geschaffen, d.h. ein extrem schneller Computer. Es ist leider viel schwieriger, die Latenzzeit des Zugriffs auf den Hauptspeicher proportional zu reduzieren. Es scheint sich daher allgemein zu bewahrheiten, daß das, was ein Cache-Fehltreffer ausgedrückt in der Anzahl an verschwendeten Befehlszyklen jeweils kostet, sich allmählich verschlimmert. In der Technologie der späten 70er Jahre kostete ein Cache-Fehltreffer ungefähr eine Befehlszeit. Bei der gegenwärtigen Technologie kostet ein Cache-Fehltreffer ungefähr 10 Befehlszeiten. In der absehbaren Zukunft werden Cache-Fehltreffer wohl 100 bis 1000 Befehlszeiten kosten.
  • Um einen Teil dieser verschwendeten Zeit zu verbergen bzw. zu vermeiden, verwendet das System 10 einen großen Second-level-Cache 22 zwischen dem Zentraleinheit-Chip 12 und dem Hauptspeicher 36. Es kann sich eine vernünftige Zugriffszeit von der Zentraleinheit 12 auf den Cache 22 ergeben, da der Second- level-Cache 22 klein genug ist, um in teurer Technologie gebaut zu sein. Die Zeilen 50 des Second-level-Caches (Fig. 3) können groß genug gemacht werden, so daß die effektive Bandbreite vom Hauptspeicher 36 groß genug ist, um die Anforderungen der Zentraleinheit 12 zu erfüllen, vorausgesetzt, der Second-level- Cache 22 ist ebenfalls groß genug, um eine ausreichend hohe Trefferrate aufzuweisen.
  • Studien haben ergeben, daß man, wenn die Caches groß werden, bei einer gegebenen Investition eine bessere Leistung erhält, wenn eher große Direktabbildungs-Caches 20 und 22 verwendet werden als nicht ganz so große Assoziativ-Caches. Die erhöhte Trefferrate von Assoziativ-Caches ist unbedeutend, die Erhöhung der Cache-Zugriffszeit ist dagegen von Bedeutung.
  • Um die Caches 20 und 22 schnell zu machen, ist es wünschenswert, zu viel Komplexität zu vermeiden. Eine Quelle der Komplexität ist, daß die Kohärenz zwischen dem Cache-Inhalt und dem tatsächlichen Wert der Daten erhalten bleiben muß. In einem Multiprozessorsystem müssen die vielen einbezogenen Caches irgendwie in Übereinstimmung gehalten werden. Es gibt jedoch viele Gründe, warum man lieber einen Einzelprozessor bauen würde, denn bei einem Einzelprozessor ist es nicht nötig, die Caches von mehreren Zentraleinheiten in Übereinstimmung zu halten. Es ist jedoch immer noch notwendig, die Cache- Übereinstimmung aufrechtzuhalten, wenn das System Eingabe/Ausgabe-Einrichtungen 41 aufweist, die als Speicherzellen auftreten, d.h. Speicherzellen, deren Werte sich ändern können, ohne daß sie von der Zentraleinheit 12 über den Cache 14 beschrieben werden. Wenn dies ohne übermäßige Komplexität der Hardware erreicht werden kann, wird der Preis und/oder die Leistung des Systems 10 sich verbessern.
  • Im System 10, decodiert das Eingabe/Ausgabe-Interface 38 physikalische Speicheradressen und reagiert auf Adressen in bestimmten Bereichen unter Verwendung mindestens eines Registers 39. Jedes Register 39 einer Eingabe/Ausgabe-Einrichtung reagiert auf eine von zwei unterschiedlichen physikalischen Adressen, die so gewählt sind, daß sie im Datencache 14 kollidieren. Die Eingabe/Ausgabe-Software wechselt zwischen den beiden Adressen für das Register 39 ab, anstatt wie bei bekannten Systemen zwischen einer Einrichtungs-Registeradresse und einer reservierten Bereichs-Adresse abzuwechseln. Das bedeutet, daß jeder Auffüll- oder Zurückschreib-Vorgang des Caches 14 "nützlich" ist in dem Sinn, daß der Vorgang das Register 39 der betreffenden Einrichtung referenziert. Diese Lösung arbeitet ohne Veränderungen der Befehlsarchitektur und ist einfach durchzuführen und zu programmieren. (Lese- oder Schreib-) Abfragen benötigen nur eine Cache-Wiederauffüll-Latenzzeit. Die Leseübertragung bei programmierter Eingabe/Ausgabe geht bei voller Speichersystem-Bandbreite vor sich.
  • Das Eingabe/Ausgabe-Interface 38 so einzurichten, daß es auf diese Weise reagiert, ist nicht schwierig. Da der Direktabbildungs-Cache 14 eine Potenz von 2 groß ist, kann jedes Paar von Adressen kollidieren, die in mindestens einem Bit, das eine höhere Zahl als der Basis-2-Logarithmus der Größe des Caches 14 aufweist, unterschiedlich sind. Das Eingabe/Ausgabe-Interface 38 ignoriert ein solches Adreßbit, wie das hochwertige Bit des Eingabe/Ausgabe-Bereichs des physikalischen Adreßraums, um dieses Ergebnis zu erzielen. Wenn das zu ignorierende Bit sorgfältig ausgewählt wird, braucht weder der Interface-Hardware 38 noch der Eingabe/Ausgabe-Software die tatsächliche Größe des Caches 14 bekannt zu sein.
  • Fig. 2 zeigt eine Form der Hardware, mit der diese Art der Adressierung durchgeführt werden kann. Ein Adressenerkenner 45 ist mit dem Adreßbus 28 über einen Bus 47 verbunden. Die Adressen auf dem Adreßbus 28 werden an einen Vergleicher 49 geliefert, wo sie mit einem konstanten Wert bbxbbbbb, der die Adresse des Registers 39 darstellt, verglichen werden, wobei das Bit "x" des Werts einen Wert "nicht beachten" (don't care) darstellt, so daß es in der Adresse ignoriert wird. Der Ausgang des Vergleichers 49 ist als Steuereingang geschaltet, um das Register 39 freizugeben. Das bedeutet, daß zwei unterschiedliche Adressen auf dem Adreßbus 28 das Register 39 auswählen, so daß die Daten auf dem Datenbus 30 über das Register 39 an die Eingabe/Ausgabe-Einrichtung 41 geliefert werden. Obwohl ein einziges Register 39 für die Erfindung geeignet ist, kann das Register 39 auch als eine große Anzahl von Registern in Form eines Pufferspeichers ausgeführt sein, so daß das Register 39 viele Male für eine einzige Eingabe/Ausgabe-Einrichtung 41 repliziert werden kann.
  • Figuren 3 und 4 zeigen ein Speicheradressen-Format 52, das im System 10 verwendet wird, und wie die Zeilen 50 des Caches 14 auf den Hauptspeicher 36 im System 10 abgebildet werden. Das Speicheradressen-Format 52 weist ein 12-Bit- Kennzeichnungsfeld (Tag-Feld) 54, ein 12-Bit-Zeilennummernfeld 56 und ein 8-Bit Byte-Offset-Feld 58 auf. Wie gezeigt ist, werden die Cache-Zeilen 50 mit den Nummern 0 bis 4095 auf den Hauptspeicher-Zeilen 60 mit den Nummern 0 bis 4095, 4096 bis 8191 usw. abhängig von deren Tag 62 abgebildet. Die Zeilen 50 und 60 sind 256-Byte-Zeilen, die ein 8-Bit Byte-Offset Feld 58 benötigen. Das 4096-Zeilen-Cache 14 erfordert ein 12-Bit-Zeilennummernfeld 56. Dieses Speicheradressen-Format ist für die Arbeitsweise der Erfindung kennzeichnend, es könnte jedoch auch eine große Vielzahl von anderen Speicheradressen-Formaten verwendet werden.
  • Die Erfindung wird noch verständlicher, wenn man vier Fälle von Eingabe/Ausgabe-Operationen im System 10 betrachtet: Lesen eines Zustandsregisters, Beschreiben eines Zustandsregisters, Ausführen einer programmierten Eingabe/Ausgabe-Übertragung bei der Dateneingabe und Ausführen einer programmierten Eingabe/Ausgabe-Übertragung bei der Datenausgabe. Bei der folgenden Erörterung sind die Beispiele in der Programmiersprache C gegeben. Die Erfindung kann natürlich auch mit jeder anderen geeigneten Programmiersprache ausgeführt werden.
  • Figuren 5 und 6 liefern das Hintergrundverständnis für die Arbeitsweise eines Direktabbildungs-Write-back-Caches, das nötig ist, um verstehen zu können, wie programmierte Eingabe/Ausgabe-Operationen von der Arbeitsweise eines Caches abhängen. Fig. 5 ist ein Flußdiagramm, das die Schritte einer Leseoperation vorn Direktabbildungs-Cache 14 unter Einsatz von Write-back zeigt. Die von der Zentraleinheit 12 gelieferte Zeilennummer 56 und Kennzeichnung (Tag) 54 von Adresse 52 werden in Schritt 70 verwendet, um die geeignete Zeile 50 aus dem Cache 14 auszuwählen. Die Kennzeichnung der zu lesenden Adresse wird im Schritt 72 mit der im Cache 14 gefundenen Kennzeichnung 62 verglichen. Wenn im Schritt 74 die Kennzeichnungen übereinstimmen, wird im Schritt 76 die Zeiennummer 56 aus dem Cache 14 mit dem Byte-Offset 58 zur Wahl (Schritt 78) von Bytes aus der spezifischen Zeile 50 des Caches 14 verwendet. Wenn in Schritt 74 die Kenn zeichnungen nicht übereinstimmen, wird im Schritt 80 ein Test nach einer "schlechten" Zeile durchgeführt. Eine "schlechte" Zeile ist eine Zeile im Cache 14, deren Wert durch eine Schreiboperation von der Zentraleinheit 12 geändert und der neue Wert noch nicht im Hauptspeicher 36 aktualisiert wurde. Wenn die Zeile 50 "schlecht", also modifiziert, ist, wird die Zeile im Schritt 82 in den Speicher 36 geschrieben. Wenn die Zeile 50 nicht "schlecht" ist oder wenn die Zeile, sofern sie "schlecht" war, in den Speicher geschrieben ist, wird im Schritt 84 eine Zeile 60 vom Speicher 36 erhalten. Die Zeile 60 und die Kennzeichnungen 62 werden im Schritt 86 im Cache 14 gespeichert. Die Zeilennummer 56 vom Cache 14 und das Byte-Offset 58 werden dann verwendet, um wie vorher Bytes aus Zeile 50 beim Schritt 78 auszuwählen. Die ausgewählten Bytes werden dann im Schritt 88 dem Prozessor 12 zurückgegeben.
  • Wenn ein einzelnes Register 39 des Eingabe/Ausgabe-Interfaces 38 gelesen wird, führt die Eingabe/Ausgabe-Software folgendes durch:
  • int *regaddr;
  • int value;
  • ...
  • value = regaddr[0];
  • regaddr = XOR(regaddr, COLLIDEMASK);
  • wobei COLLIDEMASK eine Bitmaske mit einem 1-Bit, an dem das Eingabe/Ausgabe-Interface 38 das physikalische Adreßbit ignoriert, und mit 0-Bits an anderen Stellen ist. Die Eingabe/Ausgabe-Software wechselt so zwischen den beiden Ansichten des Interfaces 38 ab und benötigt nie ein zusätzliches Cache- Auffüllen, bis für eine andere Aktivität diese Cache-Zeile 50 benötigt wird.
  • Wenn mehrere Register, die in einer einzigen Operation sicher gelesen werden können, gelesen werden, führt die Eingabe/Ausgabe-Software folgendes durch:
  • value0 = regaddr[0];
  • value1 = regaddr[1];
  • value2 = regaddr[2];
  • regaddr = XOR(regaddr, COLLIDEMASK);
  • Hier ist für die drei Leseoperationen nur ein Cache-Auffüllen nötig, wenn alle drei Register dieselbe Cache-Zeile 50 abbilden. Die Verwendung eines Cachefreien Adreßmechanismus würde dreimaliges Auffüllen nötig machen.
  • Wie in Fig. 6 gezeigt ist, ist eine Schreiboperation in den Direktabbildungs- Cache 14 mit einem Write-back ähnlich. Die Zeilennummer 56 und die Kennzeichnung 54 werden in Schritt 90 für das Auswählen der geeigneten Zeile 50 aus dem Cache 14 verwendet. Die Kennzeichnung der zu schreibenden Adresse wird im Schritt 92 mit der im Cache 14 gefundenen Kennzeichnung 62 verglichen. Wenn die Kennzeichnungen im Schritt 94 übereinstimmen, wird die Zeile 50 im Schritt 96 für im Schritt 95 zu schreibende Daten ausgewählt mit dem Byte-Offset 58, um neue Bytes im Schritt 98 in Zeile 50 einzufügen. Wenn im Schritt 94 die Kennzeichnungen nicht übereinstimmen, wird im Schritt 100 ein Test für eine "schlechte" Zeile 50 durchgeführt. Wenn die Zeile 50 "schlecht" ist, wird die Zeile im Schritt 102 in den Speicher 36 geschrieben. Wenn die Zeile 50 nicht "schlecht" ist oder nachdem die Zeile, falls sie "schlecht" war, in den Speicher geschrieben ist, wird eine Zeile 60 vom Speicher 36 im Schritt 104 erhalten. Die Zeile 60 und die Kennzeichnungen 62 werden im Schritt 106 im Cache 14 gespeichert. Die Zeilennummer 56 vom Cache 14 und das Byte-Offset 58 werden dann zum Schreiben von Daten in der Zeile 50 im Schritt 98 und Speichern der Zeile 60 und der Kennzeichnungen 62 im Cache 14 verwendet wie zuvor.
  • Wenn die Eingabe/Ausgabe-Software das Register 39 einer Eingabe/Ausgabe-Einrichtung im System 10 beschreibt, führt sie folgendes aus:
  • regaddr[0] = value;
  • regaddr = XOR(regaddr, COLLIDEMASK);
  • value = regaddr[0];
  • Die zweite Referenzierung ist nötig, um zu verursachen, daß die Zeile aus dem Cache 14 gelesen wird, da der Cache 14 kein Write-through-Cache ist. Es sei zu bemerken, daß, dadurch daß der normale Cache-Mechanismus verwendet wird und weil die Cache-Zeile größer als das Register 39 ist, das Cache-System unbedingt jede Cache-Zeile 50 lesen wird, bevor sie sie schreibt. Dies hat die doppelte Latenzzeit zur Folge, als sie bei expliziten Cache-Managementbefehlen nötig wäre. Es sei jedoch ebenfalls zu bemerken, daß für den nächsten Schreibzugriff auf das Register 39 wahrscheinlich keine zusätzliche Auffüll-Operation nötig ist, da die zweite Referenzierung zur Folge hat, daß die entsprechende Adresse im Cache 14 gültig ist. Wenn der nächste Zugriff auf das Eingabe/Ausgabe-Interface 38 eine Lesereferenz wäre und der Inhalt des Registers 39 der Einrichtung sich in der Zwischenzeit ändern könnte, muß diese Adresse nochmals geändert werden. Wie im Fall "Lesen" kann, wenn mehrere, sich dieselbe Cache-Zeile 50 teilende Register sicher sofort beschrieben werden können, die Adressenänderung zeitlich verschoben werden, wodurch sich der Overhead amortisiert.
  • Ein Beispiel für eine programmierten Eingabe/Ausgabe-Lesedatenübertragung ist das Lesen eines Puffers aus einem Platten-Controller. Bei herkömmlichen programmierten Eingabe/Ausgabe-Designs ist das Datenpufferregister der Einrichtung ein Wort breit. Für die beste Leistung wird bei der vorliegenden Erfindung stattdessen ein Pufferregister verwendet, das so breit wie eine Cache-Zeile so ist. Dieses Pufferregister kann wie N nebeneinander liegende Register behandelt werden mit N = Zeilenbreite/Wortbreite. Um einen Plattenpuffer zu übertragen, könnte man schreiben:
  • int buffer [BUFERSIZE];
  • linewords = LINESIZE/WORDSIZE;
  • for (i = 0; i < BUFERSIZE; i += linewords) {
  • for (j = 0, j < linewords; j++) {
  • buffer[i+j] = regaddr[j],
  • }
  • regaddr = XOR(regaddr, COLLIDEMASK);
  • }
  • Die innere Schleife benötigt eine Cache-Auffüllung für jede Instanz der gesamten inneren Schleife (nicht jede Iteration) und überträgt eine Datenzeile von der Einrichtung zu einem Speicherpuffer. Es sollte angestrebt werden sicherzustellen, daß der Puffer nicht mit dem Register der Einrichtung kollidiert, zumindest im Second-level-Cache 22. Da alle Cache-Auffüllungen nütztliche Daten betreffen, erfolgt die Übertragung mehr oder weniger über die ganze verfügbare Bandbreite.
  • Bei einer programmierten Eingabe/Ausgabe-Schreibdatenübertragung wie dem Beschreiben eines Plattenpuffers, vorausgesetzt ein Write-back-Cache ist vorhanden, wird das folgende ausgeführt;
  • int buffer[BUFERSIZE];
  • linewords = LINESIZE/WORDSIZE;
  • for (i = 0; i < BUFERSIZE; i += linewords) {
  • for (j = 0, j < linewords; j++) {
  • regaddr[j] = buffer[i+j];
  • }
  • regaddr = XOR(regaddr, COLLIDEMASK);
  • }
  • dummy = regaddr[0];
  • /* cause "dirty miss" on last line */
  • Ein "dirty miss" (schlechter Fehltreffer) ist eine Referenzierung des Caches 14, der vom derzeitigen Inhalt des Caches nicht genüge geleistet werden kann, wobei die Zeile, die für das Halten des referenzierten Wortes, wenn es aus dem Hauptspeicher geholt worden ist, verwendet wird, gegenwärtig "schlecht" ist. Das heißt, die Zeile enthält einen Wert, der in den Hauptspeicher 36 zurückgeschrieben werden muß, bevor die Zeile für das Halten des für die gegenwärtige Referenzierung benötigten Wertes verwendet werden kann. Da das Cache-System bei jedem ersten Beschreiben jeder neuen Cache-Zeile 50 auffüllt, "vergeuden" auf diese Weise durchgeführte Schreibübertragungen ungefähr die Hälfte der Speicherbandbreite, indem sie unnütze Leseoperationen aus dem Register 39 der Einrichtung 41 durchführen. Diese Leistung ist schlechter als die mit expliziten Cache-Managementbefehlen erreichte Leistung, bei denen keine verschwendeten Leseoperationen auftreten, aber besser als die mit dem Verfahren des reservierten Bereichs erzielte Leistung, bei der zwei verschwendete Leseoperationen pro beschriebene Zeile auftreten. Es ist auch zu bemerken, daß das Datenpufferregister der Einrichtung so konzipiert sein muß, daß diese Leseoperationen zum Cache-Auffüllen keine Probleme macht. So ein Problem kann manchmal beim praktischen Aufbau von Einrichtungs-Registern auftreten und eine Lesereferenzierung dann "Nebenwirkungen" haben, d.h. das Lesen des Registers verursacht irgendeine Operation neben dem einfachen Zurückgeben des Wertes. In einigen Fällen sind die Nebenwirkungen die Folge von mangelhaften Designentscheidungen, wie wenn beispielsweise das Lesen aus dem Register verursacht, daß die Einrichtung physikalisch zu operieren beginnt. Eine ganz natürliche Lösung ist jedoch oft die Verwendung eines Datenregisters als ein "Fenster" zu einem ganzen Puffer. Jedes Mal, wenn das Register gelesen wird, geht es automatisch durch den Puffer. Die obigen Beispiele gehen in der Tat von so einer Organisation aus. Im Fall der Lese-Übertragung, gibt es kein Problem, weil wir es so einrichten, daß genau die richtige Anzahl der Lesevorgänge vom Register in der richtigen Reihenfolge vorliegen. Im Fall der Schreib-Übertragung führen wir genau die richtige Anzahl an Schreibvorgängen durch, der Cache kann jedoch auch Auffüll- Leseoperationen bei jedem der "dirty misses" durchführen. Wir müssen daher das Schreibpufferregister so konzipieren, daß Lesereferenzierung, ungleich der Schreibreferenzierungen, nicht durch den darunterliegenden Pufferspeicher hindurch muß.
  • Es sollte für den Fachmann deutlich sein, daß verschiedene Änderungen in der Form und den Details der Erfindung, so wie sie gezeigt und beschrieben wurde, gemacht werden können. Solche Änderungen sollen in den Schutzumfang der nachfolgenden Ansprüche fallen.

Claims (19)

1. Datenverarbeitungssystem mit einer Zentraleinheit (CPU, 12), einem Hauptspeicher (36), mindestens einer Eingabe/Ausgabe-Einrichtung (41) und einem Direktabbildungs-Cache (20, 22), der zwischen die Zentraleinheit und den Hauptspeicher und zwischen die Zentraleinheit und die mindestens eine Eingabe/Ausgabe-Einrichtung geschaltet ist, wobei die mindestens eine Eingabe/Ausgabe-Einrichtung mindestens ein Register (39) aufweist, das mit einer ersten und einer zweiten Adresse adressiert werden kann, wobei die erste und die zweite Adresse so gewählt sind, daß sie im Direktabbildungs-Cache kollidieren, wobei der Direktabbildungs-Cache, der Hauptspeicher und die mindestens eine Eingabe/Ausgabe-Einrichtung mit Adressen in einer gemeinsamen Form adressiert werden können und wobei die Zentraleinheit gesteuert durch ein Eingabe/Ausgabe- Programm zur Adressierung der mindestens einen Eingabe/Ausgabe-Einrichtung alternierend mit der ersten und zweiten Adresse betrieben werden kann, die so gewählt sind, daß sie im Direktabbildungs-Cache kollidieren.
2. Datenverarbeitungssystem nach Anspruch 1, wobei der Direktabbildungs-Cache einen Cache einer ersten Stufe (20) und einen Cache einer zweiten Stufe (22) umfaßt.
3. Datenverarbeitungssystem nach Anspruch 2, wobei eine Zugriffszeit zwischen der Zentraleinheit (12) und dem Cache der ersten Stufe (20) im Vergleich zu einer Zugriffszeit zwischen dem Cache der zweiten Stufe (22) und dem Hauptspeicher kurz ist.
4. Datenverarbeitungssystem nach Anspruch 2, das des weiteren eine Gleitkomma-Einheit (48) umfaßt, die mit der Zentraleinheit (12) verbunden ist.
5. Datenverarbeitungssystem nach Anspruch 4, wobei die Zentraleinheit (12), die Gleitkomma-Einheit (48) und der Cache der ersten Stufe (20) zusammen auf einem einzigen integrierten Schaltungschip (IC-Chip, 21) ausgeführt sind.
6. Datenverarbeitungssystem nach Anspruch 1, wobei die Zentraleinheit (12) mit dem Direktabbildungs-Cache (20, 22) über einen ersten Adreßbus (16, 24) und einen ersten Datenbus (18, 26) verbunden ist und der Direktabbildungs-Cache (20, 22) mit dem Hauptspeicher (36) und der mindestens einen Eingabe/Ausgabe- Einrichtung (41) über einen zweiten Adreßbus (28) und einen zweiten Datenbus (30) verbunden ist.
7. Datenverarbeitungssystem nach Anspruch 1, wobei das System mit Speicheradressen arbeiten kann, die ein Format mit einem Kennzeichnungsfeld (54), einem Zeilenfeld (56) und einem Byte-Offset-Feld (58) aufweisen.
8. Datenverarbeitungssystem nach Anspruch 7, wobei die Speicheradressen für die mindestens eine Eingabe/Ausgabe-Einrichtung (41) eine Bitposition aufweisen, die von der mindestens einen Eingabe/Ausgabe-Einrichtung ignoriert wird, und die Zentraleinheit mit einer Bitmaske arbeitet, um die von der mindestens einen Eingabe/Ausgabe-Einrichtung ignorierte Bitposition zur Adressierung der mindestens einen Eingabe/Ausgabe-Einrichtung alternierend mit der ersten und der zweiten Adresse zu verwenden.
9. Datenverarbeitungssystem nach Anspruch 8, wobei der Cache (20, 22) und ein Register des mindestens einen Eingabe/Ausgabe-Registers (39) eine gleiche Zeilenlänge aufweisen.
10. Datenverarbeitungssystem nach Anspruch 1, wobei die mindestens eine Eingabe/Ausgabe-Einrichtung (41) mit dem Direktabbildungs-Cache (20, 22) über einen Adreßbus (28) und einen Datenbus (30) verbunden ist und wobei das System des weiteren einen Adressenerkenner (45) aufweist, der mit dem Adreßbus verbunden ist und einen Vergleicher (49) enthält, der so geschaltet ist, daß er die Adressen auf dem Adreßbus als eine erste Eingabe sowie einen Wert, der den mindestens ein Register adressiert, als eine zweite Eingabe zum Vergleich mit der ersten Eingabe erhält, wobei der Vergeicher so aufgebaut ist, daß er ein Bit in den Adressen ignoriert, wobei ein Ausgang des Vergleichers als ein Steuereingang in das mindestens eine Register (39) geschaltet ist und wobei das mindestens eine Register mit dem Datenbus verbunden ist.
11. Datenverarbeitungssystem nach Anspruch 1, wobei das mindestens eine Register (39) der mindestens einen Eingabe/Ausgabe-Einrichtung (41) ein Pufferspeicher mit einer Vielzahl von Registern ist.
12. Adressierungsverfahren für ein Datenverarbeitungssystem, wobei das Datenverarbeitungssystem eine Zentraleinheit (CPU, 12), einen Hauptspeicher (36), mindestens eine Eingabe/Ausgabe-Einrichtung (41) und einen Direktabbildungs-Cache (20, 22), der zwischen die Zentraleinheit und die mindestens eine Eingabe/Ausgabe-Einrichtung geschaltet ist, enthält, wobei die mindestens eine Eingabe/Ausgabe-Einrichtung mindestens ein Register (39) aufweist; und wobei das Verfahren die folgenden Schritte umfaßt:
Adressieren des Direktabbildungs-Caches, des Hauptspeichers und der mindestens einen Eingabe/Ausgabe-Einrichtung unter Verwendung von Adressen mit einer gemeinsamen Form;
Anpassen des Registers, so daß er von einer ersten und einer zweiten Adresse adressiert werden kann, und Auswählen der ersten und der zweiten Adresse, so daß sie im Direktabbildungs-Cache kollidieren;
sukzessives Adressieren der Eingabe/Ausgabe-Einrichtung durch die Zentraleinheit durch die Steuerung eines Eingabe/Ausgabe-Programms alternierend mit der ersten und der zweiten Adresse.
13. Adressierungsverfahren nach Anspruch 12, das des weiteren den Schritt des Zurverfügungstellens des Direktabbildungs-Caches als einen Cache der ersten Stufe (20) und einen Cache der zweiten Stufe (22) umfaßt.
14. Adressierungsverfahren nach Anspruch 13, das des weiteren den Schritt des Zurverfügungstellens einer Zugriffszeit zwischen der Zentraleinheit und dem Cache der ersten Stufe umfaßt, die im Vergleich zu einer Zugriffszeit zwischen dem Cache der zweiten Stufe und dem Hauptspeicher klein ist.
15. Adressierungsverfahren nach Anspruch 12, das den Schritt der Adressierung des Caches, des Hauptspeichers und des mindestens einen Registers der mindestens einen Eingabe/Ausgabe-Einrichtung mit Speicheradressen umfaßt, die ein Format mit einem Kennzeichnungsfeld (54), einem Zeilenfeld (56) und einem Byte-Offset-Feld (58) aufweisen.
16. Adressierungsverfahren nach Anspruch 15, wobei die Speicheradressen für das mindestens eine Register (39) der mindestens einen Eingabe/Ausgabe- Einrichtung (41) eine Bitposition aufweisen, die von dem mindestens einen Register der mindestens einen Eingabe/Ausgabe-Einrichtung ignoriert wird, und wobei das Verfahren des weiteren den Schritt des Anwendens der Speicheradressen mit einer Bitmaske umfaßt, um die von dem mindestens einen Register der mindestens einen Eingabe/Ausgabe-Einrichtung ignorierten Bitposition zur Adressierung des mindestens einen Registers der mindestens einen Eingabe/Ausgabe-Einrichtung alternierend mit der ersten und der zweiten Adresse zu verwenden.
17. Adressierungsverfahren nach Anspruch 16, das den Schritt des Zurverfügungstellens des Caches (20, 22) und des mindestens einen Registers (39) der mindestens einen Eingabe/Ausgabe-Einrichtung (41) mit gleichen Zeilen längen umfaßt.
18. Adressierungsverfahren nach Anspruch 12, das den Schritt der Adressierung des mindestens einen Registers (39) der mindestens einen Eingabe/Ausgabe-Einrichtung (41) mit der ersten und der zweiten Adresse beinhaltet, wobei die Adressen mit einem Wert verglichen werden, der die Adresse des mindestens einen Registers darstellt, wobei ein Bit in der ersten und in der zweiten Adresse während dem Adressenvergeich ignoriert wird und wobei das mindestens eine Register freigegeben wird, wenn der Wert und die Adresse übereinstimmen.
19. Adressierungsverfahren nach Anspruch 12, das den Schritt des Zurverfügungstellens des mindestens einen Registers als einen Pufferspeicher mit einer Vielzahl von Registern umfaßt.
DE69027919T 1990-01-02 1990-11-30 Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher Expired - Fee Related DE69027919T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/459,445 US5253353A (en) 1990-01-02 1990-01-02 System and method for efficiently supporting access to I/O devices through large direct-mapped data caches

Publications (2)

Publication Number Publication Date
DE69027919D1 DE69027919D1 (de) 1996-08-29
DE69027919T2 true DE69027919T2 (de) 1997-02-20

Family

ID=23824801

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69027919T Expired - Fee Related DE69027919T2 (de) 1990-01-02 1990-11-30 Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher

Country Status (5)

Country Link
US (1) US5253353A (de)
EP (1) EP0436305B1 (de)
JP (1) JPH04102948A (de)
KR (1) KR910014816A (de)
DE (1) DE69027919T2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0461926B1 (de) * 1990-06-15 1998-09-02 Compaq Computer Corporation Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
US5359723A (en) * 1991-12-16 1994-10-25 Intel Corporation Cache memory hierarchy having a large write through first level that allocates for CPU read misses only and a small write back second level that allocates for CPU write misses only
DE4410060B4 (de) * 1993-04-08 2006-02-09 Hewlett-Packard Development Co., L.P., Houston Übersetzungsvorrichtung zum Umsetzen einer virtuellen Speicheradresse in eine physikalische Speicheradresse
US5636365A (en) * 1993-10-05 1997-06-03 Nec Corporation Hierarchical buffer memories for selectively controlling data coherence including coherence control request means
JPH07210537A (ja) * 1993-12-10 1995-08-11 Advanced Micro Devicds Inc コンピュータシステム
US5905997A (en) * 1994-04-29 1999-05-18 Amd Inc. Set-associative cache memory utilizing a single bank of physical memory
US5826052A (en) * 1994-04-29 1998-10-20 Advanced Micro Devices, Inc. Method and apparatus for concurrent access to multiple physical caches
DE69529250T2 (de) * 1994-07-01 2003-10-30 Sun Microsystems, Inc. Rechnersystem mit einem multiplexierten Adressenbus und Pipeline-Schreiboperationen
JP3127796B2 (ja) * 1994-10-07 2001-01-29 松下電器産業株式会社 情報記録再生装置
US5611074A (en) * 1994-12-14 1997-03-11 International Business Machines Corporation Efficient polling technique using cache coherent protocol
US5687329A (en) * 1995-09-29 1997-11-11 International Business Machines Corporation Information handling system including a data bus management unit, an address management unit for isolating processor buses from I/O and memory
US6122711A (en) 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
US6324598B1 (en) 1999-01-11 2001-11-27 Oak Technology Software enlarged tag register and method thereof for noting the completion of a DMA transfer within a chain of DMA transfers
EP1111511B1 (de) * 1999-12-06 2017-09-27 Texas Instruments France Cachespeicher mit mehreren Füllungsmoden
SE517705C2 (sv) * 1999-12-08 2002-07-09 Axis Ab I/O Metod och anordning för optiska lagringsmedia

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4802085A (en) * 1987-01-22 1989-01-31 National Semiconductor Corporation Apparatus and method for detecting and handling memory-mapped I/O by a pipelined microprocessor

Also Published As

Publication number Publication date
EP0436305A2 (de) 1991-07-10
JPH04102948A (ja) 1992-04-03
KR910014816A (ko) 1991-08-31
EP0436305B1 (de) 1996-07-24
EP0436305A3 (en) 1992-07-29
DE69027919D1 (de) 1996-08-29
US5253353A (en) 1993-10-12

Similar Documents

Publication Publication Date Title
DE3687307T2 (de) Computeranordnungen mit cache-speichern.
DE3586389T2 (de) Dynamisch zugeordnete lokale/globale speicheranordnung.
DE69132186T2 (de) Cache-Speicherverwaltungsanordnung
DE69025302T2 (de) Hochleistungsrasterpuffer- und -cachespeicheranordnung
DE69031978T2 (de) Einrichtung und Verfahren zum Vermindern von Störungen in zweistufigen Cache-Speichern
DE69327387T2 (de) An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung
DE69132300T2 (de) Durch Anwender festgelegter direkter Speicherzugriff mit Anwendung von virtuellen Adressen
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69616465T2 (de) Cachespeicher mit Datenvorausladung
DE3650532T2 (de) Speicher mit programmierbarem Zugang
DE3782335T2 (de) Speichersteuersystem.
DE69130086T2 (de) Mehrstufeneinschluss in mehrstufigen Cache-Speicherhierarchien
DE69228679T2 (de) Speicher, speichersteuerungsvorrichtung und speichersteuerungsverfahren zur anwendung mit einem copy-back-cachespeichersystem
DE69317729T2 (de) Cache-Etikettenspeicher
DE69701078T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren
DE69900797T2 (de) Cache-Speicherkohärenzprotokoll mit unabhängiger Implementierung von optimierten Cache-Speicheroperationen
DE3724317C2 (de)
DE69127111T2 (de) Verfahren zum Nachladen aufgeschobener Datenauslagerungen in einen Copy-back Daten-Cachespeicher
DE69331039T2 (de) Rechnersystem mit einem Vorausholungscachespeicher
DE69715328T2 (de) System und Verfahren zur Parallelisierung der Durchführung von Speichertransaktionen mittels mehreren Speichermodellen
DE3689488T2 (de) Speicheranordnung mit vereinfachtem und schnellem Daten-Cachespeicher.
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE69027919T2 (de) Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher
DE69029173T2 (de) Mikroprozessor
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER, 80538 MUENCHEN

8339 Ceased/non-payment of the annual fee