DE4225228C2 - Vorabrufpuffer und einen derartigen Vorabrufpuffer verwendendes Informationsverarbeitungssystem - Google Patents

Vorabrufpuffer und einen derartigen Vorabrufpuffer verwendendes Informationsverarbeitungssystem

Info

Publication number
DE4225228C2
DE4225228C2 DE4225228A DE4225228A DE4225228C2 DE 4225228 C2 DE4225228 C2 DE 4225228C2 DE 4225228 A DE4225228 A DE 4225228A DE 4225228 A DE4225228 A DE 4225228A DE 4225228 C2 DE4225228 C2 DE 4225228C2
Authority
DE
Germany
Prior art keywords
address
buffer
data
requested
cpu
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
DE4225228A
Other languages
English (en)
Other versions
DE4225228A1 (de
Inventor
Shuuichi Miura
Kenichi Kurosawa
Tetsuaki Nakamikawa
Kenji Hirose
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.)
Hitachi Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Engineering Co Ltd
Hitachi Ltd
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 Hitachi Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Engineering Co Ltd
Publication of DE4225228A1 publication Critical patent/DE4225228A1/de
Application granted granted Critical
Publication of DE4225228C2 publication Critical patent/DE4225228C2/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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch

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)
  • Memory System (AREA)
  • Advance Control (AREA)

Description

Die vorliegende Erfindung betrifft in einem Computersystem verwendbare Vorabrufpuffer gemäß den Oberbegriffen der An­ sprüche 1 und 4 und ein Informationsverarbeitungssystem ge­ mäß dem Oberbegriff des Anspruches 19, in dem ein derarti­ ger Vorabrufpuffer verwendet wird. Solche Vorabpuffer sind aus US 4 714 994 bekannt.
Ein RISC-Prozessor umfaßt einen Cache-Speicher mit geringer Kapazität, der einen schnellen Zugriff ermöglicht, und ei­ nen Hauptspeicher mit großer Kapazität, bei dem nur ein verhältnismäßig langsamer Zugriff möglich ist. Die Leistung eines RISC-Prozessors kann nur dann in vollem Ausmaß ge­ nutzt werden, wenn die Menge der zu verarbeitenden Daten gering ist oder wenn alle zu verarbeitenden Daten im Cache- Speicher gefunden werden.
Wenn jedoch die Menge der zu verarbeitenden Daten groß ist und wenn viele Cache-Speicher-Zugriffe erfolglos sind, muß oft auf den Hauptspeicher zugegriffen werden. In einem sol­ chen Fall führt der RISC-Prozessor sein Programm solange nicht aus, bis sämtliche Daten vom Hauptspeicher gelesen worden sind, so daß diese Wartezeit die Leistung absenkt. Wenn daher viele erfolglose Cache-Speicher-Zugriffe auftre­ ten, kann durch Verbesserung der Leistung des Prozessors allein die Gesamt-Verarbeitungsleistung nicht erhöht wer­ den.
Es ist allgemein bekannt, daß zur Lösung dieses Problems ein Vorabrufpuffer verwendet wird. Dieser Stand der Technik wird durch eine Arbeit mit dem Titel "Improving Direct- Mapped Cache Performance by the Addition of a Small Fully- Associative Cache and Prefetch Buffers" von Norman P. Joup­ pi, The 17th Annual International Symposium on Computer Ar­ chitecture Conference Proceedings, Mai 1990, Seiten 364 bis 373, erläutert. Gemäß diesem herkömmlichen Konzept werden die aus dem Hauptspeicher abzuruf enden Daten vorher in ei­ nen Puffer mit geringer Kapazität eingelesen, um bei er­ folglosem Zugriff auf den Cache-Speicher jeglichen zusätz­ lichen Zeitbedarf wegen des Zugriffs auf den Hauptspeicher zu vermeiden.
Weitere Vorabrufpuffer sind beispielsweise aus JP 53 134 334-A, JP 63-75934-A und JP 2-87229-A bekannt.
Die eingangs genannte US 4 714 994. betrifft einen Anwei­ sungsvorabrufpuffer. Bei einem solchen Puffer ist es leicht vorherzusagen, welcher Speicherplatz vorabzufragen ist, da die Anweisungen in der Regel in ansteigender Reihenfolge ihrer Adressen abgearbeitet werden. Eine Ausnahme tritt nur bei Sprung- oder Verzweigungsbefehlen auf. In der Regel ist also die vorabzurufende Anweisung die unmittelbar folgende, andernfalls ist die Zieladresse der Verzweigung oder des Sprungs vorherzusagen.
Die Reihenfolge des Zugriffs auf Daten ist häufig anders als die des Zugriffs auf Anweisungen. Auf Daten im Haupt­ speicher kann in aufsteigender oder absteigender Reihenfol­ ge auf aufeinanderfolgende oder gleichmäßig beabstandete Adressen, wahlfreie Adressen oder dergleichen zugegriffen werden. Die für Anweisungen verwendete Adreßvorhersage ist daher beim Vorabruf von Daten nicht anwendbar.
EP 0 389 175 A1 betrifft zwar ein "Datenvorabrufsystem", doch umfassen die mit diesem System vorabzurufenden Daten nur Befehle und zu diesen gehörige Parameter. Ein effizien­ ter Vorabruf von Daten im engeren Sinne, die keine Anwei­ sungen und Parameter, sondern eben die anhand dieser Anwei­ sungen zu verarbeitenden Werte sind, ist auch mit dieser Vorrichtung nicht möglich.
Aufgabe dieser Erfindung ist es, einen Vorabrufpuffer und ein Computersystem mit einem solchen Vorabrufpuffer zu schaffen, die zum Vorabruf nicht nur von Anweisungen, son­ dern auch von Daten geeignet sind, d. h. bei denen ein gutes Trefferverhältnis bei der. Vorhersage von vorabzurufenden Daten erzielt wird, auch wenn die Adressen der abzurufenden Daten nicht in Vorwärtsrichtung aufeinanderfolgen.
Diese Aufgabe wird gelöst durch einen Vorabrufpuffer nach Anspruch 1 oder Anspruch 4 und ein Informationsverarbeitungssystem nach An­ spruch 19.
Vorzugsweise berechnet die Adressen-Berechnungseinrichtung eine Differenz zwischen einer von der CPU angeforderten Adresse und der von der CPU unmittelbar vorher angeforder­ ten Adresse und berechnet dann auf der Grundlage des Diffe­ renzwertes eine Adresse der aus dem Hauptspeicher vorabzu­ rufenden Daten.
Der Puffer umfaßt vorzugsweise n (n ganze Zahl größer als 1) Einträge, wobei die Daten-Sucheinrichtung vorzugsweise in sämtlichen Einträgen nach den Daten mit der von der CPU angeforderten Adresse sucht. Selbstverständlich kann die Suche wahlweise auch auf einen Teilbereich beschränkt wer­ den.
Beispielsweise kann die Adressen-Erzeugungseinrichtung für die Adressen der vorabzurufenden Daten n Adressen erzeugen, die an die Adresse der von der CPU angeforderten Daten an­ schließen.
Die Adressen-Berechnungseinrichtung kann außerdem die Adressen von Daten gewinnen, die aus dem Hauptspeicher vor­ abgerufen werden sollen, indem sie eine Differenz zwischen der von der CPU angeforderten Adresse und der von der CPU unmittelbar vorher angeforderten Adresse bildet und zu der angeforderten Adresse einen Wert addiert, der durch die Multiplikation des Differenzwertes mit k (k ist eine ganze Zahl zwischen 1 und n) erhalten wird.
In der ersten Ausführungsform der Erfindung erzeugt die Adressen-Erzeugungseinrichtung n aufeinanderfolgende Adres­ sen, die auf die von der CPU angeforderte Adresse folgen, liest aus dem Hauptspeicher n (n ist vorzugsweise eine gan­ ze Zahl größer als 1) Daten mit n Adressen aus und spei­ chert die Daten in n Puffereinträgen. Die Daten-Suchein­ richtung sucht die von der CPU angeforderten Adressen in allen Einträgen des Puffers. Unter der Annahme, daß sich die von der CPU angeforderten, nachfolgenden Adressen von der unmittelbar vorher angeforderten Adresse um +1 bis +n unterscheiden, wird der Vorabrufpuffer Treffer erzielen.
Wenn eine der von der CPU angeforderten Adresse nachfolgen­ de Adresse niedriger als die ursprünglich angeforderte Adresse ist, ändert die Adressen-Berechnungseinrichtung die Adresse der vorabzurufenden Daten in die entgegengesetzte Richtung. Dadurch kann der Vorabrufpuffer selbst dann Tref­ fer erzielen, wenn sich die Adressen in der entgegengesetz­ ten Richtung ändern.
In einem anderen erfindungsgemäßen Aufbau bildet die Adres­ sen-Berechnungseinrichtung die Differenz zwischen einer von der CPU angeforderten Adresse und einer unmittelbar vorher angeforderten Adresse, liest Daten, deren Adressen durch die Summe der angeforderten Adresse und der mit k (k = 1, . . . n) multiplizierten erwähnten Differenz gegeben sind, aus dem Hauptspeicher aus und speichert die Daten in n Puf­ fereinträgen. Wenn sich daher die von der CPU angeforderte nachfolgende Adresse auf einen Datenwert bezieht, dessen Adresse durch die Summe der unmittelbar vorhergehenden Adresse und der k-fachen Differenz gegeben ist, wird der Vorabrufpuffer einen Treffer erzielen.
Da gemäß der Erfindung die Adressen-Berechnungseinrichtung auf der Grundlage der Historie der vom Prozessor angefor­ derten Adressen eine anschließend angeforderte Adresse be­ rechnet, ist es möglich, das Trefferverhältnis des Vorab­ rufpuffers entweder für diskontinuierliche Anforderungs­ adressen oder für abnehmende Anforderungsadressen zu erhö­ hen, wodurch die Leistung des Computersystems verbessert wird.
Die Unteransprüche betreffen vorteilhafte Ausgestaltungen der Erfindung. Weitere Aufgaben, Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung.
Die Erfindung wird im folgenden anhand bevorzugter Ausführungsformen mit Bezug auf die Zeichnungen näher er­ läutert; es zeigen:
Fig. 1 ein Blockschaltbild eines Vorabrufpuffers gemäß einer ersten Ausführungsform der Erfindung;
Fig. 2 ein Blockschaltbild eines Computersystems, in dem der erfindungsgemäße Vorabrufpuffer enthalten ist;
Fig. 3 ein Blockschaltbild der in Fig. 1 gezeigten Daten-Sucheinrichtung;
Fig. 4 ein Blockschaltbild der in Fig. 1 gezeigten Adressen-Berechnungseinrichtung;
Fig. 5 ein Blockschaltbild der in Fig. 1 gezeigten Universalsteuereinheit;
Fig. 6 ein Blockschaltbild der in Fig. 1 gezeigten Adressen-Erzeugungseinrichtung;
Fig. 7 ein Blockschaltbild des in Fig. 1 gezeigten Puffers;
Fig. 8 ein Blockschaltbild einer Adressen-Berechnungs­ einrichtung gemäß einer zweiten Ausführungsform der vorliegenden Erfindung;
Fig. 9 ein Blockschaltbild einer Adressen-Erzeugungsein­ richtung gemäß der zweiten Ausführungsform;
Fig. 10 ein Blockschaltbild einer Daten-Sucheinrichtung gemäß der zweiten Ausführungsform;
Fig. 11 ein Blockschaltbild eines Vorabrufpuffers gemäß einer dritten Ausführungsform der Erfindung;
Fig. 12 ein Blockschaltbild einer Universalsteuereinheit gemäß der dritten Ausführungsform;
Fig. 13 ein Blockschaltbild eines Computersystems gemäß einer vierten Ausführungsform der Erfindung;
Fig. 14 ein Blockschaltbild eines Vorabrufpuffers gemäß einer fünften Ausführungsform der Erfindung; und
Fig. 15 ein Blockschaltbild einer Universalsteuereinheit gemäß der fünften Ausführungsform.
In Fig. 2 ist ein Blockschaltbild eines Computersystems 1 gezeigt, in dem ein Vorabrufpuffer gemäß einer ersten Ausführungsform der Erfindung enthalten ist. Das Compu­ tersystem 1 umfaßt allgemein eine CPU (Zentraleinheit) 2 zum Ausführen von Rechen- und/oder Steueroperationen, ei­ nen Cache-Speicher 3, der einen schnellen Speicher mit geringer Kapazität darstellt, einen Hauptspeicher 4, der einen langsamen Speicher mit großer Kapazität darstellt, eine Eingabe-/Ausgabe-Einheit (E/A) 6, einen Systembus 7 und eine Speicherschnittstelle 10, die die CPU 2, den Hauptspeicher 4 und den Systembus 7 miteinander verbin­ det. Die Speicherschnittstelle 10 enthält eine CPU- Schnittstelle 20, die einen Anschluß mit der CPU 2 darstellt, eine Systembus-Schnittstelle 70, die einen An­ schluß mit dem Systembus 7 darstellt, eine Speicher- Steuereinrichtung 40 zum Steuern des Hauptspeichers 4 und einen Vorabrufpuffer 5 zum vorherigen Auslesen von im Hauptspeicher 4 gespeicherten Daten und zum vorherigen Speichern der Daten.
Die CPU 2 sucht benötigte Daten im Cache-Speicher 3 und liest sie von dort, falls sie sie dort findet. Wenn im Cache-Speicher 3 die benötigten Daten nicht vorhanden sind, greift die CPU 2 auf den Hauptspei­ cher 4 zu. Gleichzeitig führt die CPU 2 eine Suche im Vorabrufpuffer 5 aus. Falls die benötigten Daten im Vorabrufpuffer gefunden werden, liest die CPU 2 sie aus dem Vorabrufpuffer 5 aus, speichert sie im Cache-Speicher 3 und bricht den Zugriff auf den Hauptspeicher 4 ab.
Wenn im Vorabrufpuffer die benötigten Daten nicht vorhan­ den sind, bricht die CPU 2 den Zugriff auf den Hauptspeicher 4 nicht ab, verwendet die Daten von dort und speichert sie im Cache-Speicher 3. Ferner ruft die CPU 2 die diesen Daten folgenden oder vorhergehenden Daten aus dem Hauptspeicher 4 ab, um sie im Vorabrufpuffer 5 zu speichern.
In Fig. 1 ist der Vorabrufpuffer 5 im einzelnen gezeigt. In dieser Ausführungsform umfaßt der Vorabrufpuffer 5 vier Puffermodule 50-0, 50-1, 50-2 und 50-3, eine Univer­ salsteuereinheit 51, einen Datenausgabe-Multiplexer 52 und einen Adressenausgabe-Multiplexer 53. Jeder Puffermo­ dul 50-i (i = 0, 1, 2 oder 3) umfaßt eine Daten-Suchein­ richtung 500, eine Adressen-Berechnungseinrichtung 501, eine Adressen-Erzeugungseinrichtung 502, einen Puffer 503 mit vier Einträgen und eine Datenausgabeeinheit 504.
Wenn die CPU 2 vom Vorabrufpuffer 5 Daten anfordert, wird an die Daten-Sucheinrichtung 500 im entsprechenden Puffermodul 50-i über die Adressen-Eingangsleitung 55 ei­ ne angeforderte Adresse geschickt. Dann sucht die Daten- Sucheinrichtung 500 Daten mit identischer Adresse im Puf­ fer 503. Wenn die angeforderten Daten vorhanden sind, gibt die Daten-Sucheinrichtung 500 die Daten über die Da­ tenausgabeeinheit 504 und über den Datenausgabe-Multiple­ xer 52 an die CPU 2 und an den Cache-Speicher 3 aus.
Die Adressen-Berechnungseinrichtung 501 speichert die von der CPU 2 angeforderte Adresse, um anschließend an­ zufordernde Adressen zu berechnen. Die Adressen-Erzeugungs­ einrichtung 502 erzeugt soviele Adressen von benötigten Daten, bis ausreichend viele der angeforderten Adresse nachfolgende oder vorhergehende Adressen (in dieser Ausführungsform: vier) gespeichert sind. Anschließend werden diese Adressen über den Adressen-Ausgabe-Multiplexer 53 an den Hauptspeicher 4 geschickt, um so die entsprechenden Daten zu erhalten; daraufhin speichert die Adressen- Erzeugungseinrichtung 502 die erhaltenen Daten im Puffer 503. Die Adressen-Berechnungseinrichtung 501 entscheidet, ob die im Puffer 503 zu speichernden Daten der angefor­ derten Adresse folgen oder der angeforderten Adresse vor­ hergehen.
Die Daten-Sucheinrichtung 500 ruft die Daten vom Puffer 503 ab. Wenn die angeforderten Daten nicht vorhanden sind, meldet sie der Universalsteuereinheit 51 die erfolglose Suche ("kein Treffer"-Information).
Die Universalsteuereinheit 51 sammelt die den Treffersta­ tus der vier Puffermodule 50-0, 50-1, 50-2 und 50-3 betreffende Information; falls wenigstens ein Puffermodul 50-i einen Treffer erzielt, wählt die Universalsteuerein­ heit 51 diesen Puffermodul 50-i und schickt dessen Ausgabe über den Datenausgabe-Multiplexer 52 an die CPU 2 und an den Cache-Speicher 3. Hierbei werden die Inhalte der Puffer 503, die von der Universalsteuereinheit 51 nicht gewählt worden sind, unverändert gelassen.
Wenn die Suche in jedem Puffermodul 50-i fehlgeht, wählt die Universalsteuereinheit 51 einen der Puffermodule 50-i und aktualisiert dessen Inhalt entsprechend den folgenden Prozeduren:
  • (1) In jedem der vier Puffermodule 50-i bildet die Uni­ versalsteuereinheit 51 die Differenz zwischen der zuletzt getroffenen Adresse, die in der Adressen-Berechnungsein­ richtung gespeichert ist, und der momentan angeforderten Adresse.
  • (2) Wenn in wenigstens einem Puffermodul 50-i die Adres­ sendifferenz unter einem vorgegebenen Schwellen­ wert liegt, wählt die Universalsteuereinheit 51 einen dieser Puffermodule 50-i aus und liest Daten vom Haupt­ speicher 4 solange aus, bis im Puffer 503 des gewählten Puffermoduls 50-i Daten mit vier der angeforderten Adresse nachfolgenden oder vorhergehenden Adressen gespeichert sind.
  • Der Schwellenwert wird als Referenzwert bei der Bestim­ mung verwendet, ob die angeforderte Adresse eine an die zuletzt getroffene Adresse anschließende Adresse ist oder nicht. Wenn die Adressendifferenz unter dem Schwel­ lenwert liegt, stellt die Universalsteuereinheit 51 fest, daß die Adresse an die zuletzt getroffene Adresse anschließt und ruft die Daten aus dem Puffer 503 ab. Wenn in dieser Ausführungsform die angeforderte Adresse größer als die in der Adressen-Berechnungseinrichtung 501 gespeicherte, zuletzt getroffene Adresse ist und wenn die Adressendifferenz den Wert 4 nicht übersteigt, liest die Adressen-Berechnungseinrichtung 501 nacheinander der an­ geforderten Adresse nachfolgende Daten aus. Wenn die an­ geforderte Adresse kleiner als die zuletzt getroffene Adresse ist und wenn die Adressendifferenz den Wert 4 nicht übersteigt, steuert die Adressen-Berechnungsein­ richtung 501 die Adressen-Erzeugungseinrichtung 502 so, daß nacheinander der angeforderten Adresse vorhergehende Daten ausgelesen werden.
  • Zwischen der Betriebsart, in der nachfolgende Daten gelesen werden, und der Betriebsart, in der vorhergehende Daten gelesen werden, wird nur umgeschaltet, wenn der Vorabrufpuffer keinen Treffer erzielt und die Adressen­ differenz den Wert 4 nicht überschreitet. Andernfalls wird die Betriebsart der Adressen-Berechnungseinrichtung 501 in jedem Puffermodul 50-i unverändert gelassen.
  • (3) Wenn in keinem Puffermodul 50-i die Adressendifferenz kleiner als der Schwellenwert ist, wählt die Universal­ steuereinheit 51 aus den Puffermodulen 50-i denjenigen Puffermodul aus, auf den für die längste Zeit nicht zugegriffen worden ist, und liest Daten aus dem Haupt­ speicher 4 solange aus, bis im Puffer des gewählten Puffermoduls 50-i Daten mit vier der angeforderten Adresse nachfolgenden oder vorhergehenden Adressen gespeichert sind.
Nach den obenbeschriebenen Prozeduren (1), (2) und (3) wird die zuletzt getroffene Adresse, die in der Adressen- Berechnungseinrichtung 501 des Puffermoduls 50-i, in den Daten verlegt worden sind, gespeichert ist, als angefor­ derte Adresse initialisiert.
Während des Lesens der Daten aus dem Hauptspeicher 4 ak­ zeptiert der Vorabrufpuffer 5 sämtliche Anforderungen von der CPU 2. Folglich wird vom Puffer 503 eines jeden Puffermoduls 50-i die maximale Anzahl von Datenelementen abgerufen. In einem solchen Fall identifiziert der Puffer 503 gültige Einträge und ungültige Einträge im Puffer 503, woraufhin die Universalsteuereinheit 51 die Suche nach den gültigen Daten steuert.
Wenn Daten von der CPU 2 oder von der E/A 6 im Hauptspei­ cher 4 gespeichert worden sind, ermittelt die Daten- Sucheinrichtung 500 in jedem Puffermodul 50-i, ob im Puf­ fer 503 Daten der betreffenden Adresse gespeichert sind, um die Inhalte sämtlicher Puffer 503 mit solchen Adressen zurückzusetzen.
In Fig. 3 ist die Daten-Sucheinrichtung 500 im einzelnen gezeigt. Die kleinste Adresse und die größte Adresse der im Puffermodul 50-i gespeicherten vorabgerufenen Daten sind im Minimaladressenregister 5022 bzw. im Maxima­ ladressenregister 5023 der Adressen-Erzeugungseinrichtung 502 gespeichert. Ein Komparator 5001-0 vergleicht die an­ geforderte Adresse mit dem Inhalt des Minimaladressenre­ gisters 5022 und gibt WAHR aus, falls die angeforderte Adresse einen größeren Wert als die kleinste Adresse be­ sitzt. Ein Komparator 5001-1 vergleicht die angeforderte Adresse mit dem Inhalt des Maximaladressenregisters 5023 und gibt WAHR aus, falls die angeforderte Adresse einen Wert besitzt, der kleiner als die größte Adresse ist. Wenn beide Ausgänge der Komparatoren 5001-0 und 5001-1 WAHR sind, wird festgestellt, daß der Vorabrufpuffer ei­ nen Treffer erzielt hat ("Treffer"-Information).
Jeder der Komparatoren 5002-0, 5002-1, 5002-2 und 5002-3 vergleicht die zwei niedrigstwertigen Bits der angeforder­ ten Adresse mit den zwei niedrigstwertigen Bits des in je­ dem der vier Adresseneinträge 5030-0, 5030-1, 5030-2 und 5030-3 im Puffer 503 gespeicherten Adressenidentifizie­ rungszeichens und gibt WAHR aus, wenn diese Bits jeweils miteinander identisch sind. Auf der Grundlage dieses Aus­ gangssignals wird schließlich festgestellt, welche der vier Adressen/Daten im Puffer getroffen worden sind.
In Fig. 4 ist die Adressen-Berechnungseinrichtung 501 im einzelnen gezeigt. Eine Subtraktionseinrichtung 5011 bil­ det die Differenz zwischen der angeforderten Adresse und der im Register für die zuletzt getroffene Adresse 5010 gespeicherten Adresse des letzten Treffers. Eine Be­ reichsbestimmungsschaltung 5012 empfängt diese Adressen­ differenz und aktiviert eine Bereichsinformation, falls die Differenz unter einem vorgegebenen Schwellenwert liegt. Wenn keiner der Puffer 50-i einen Treffer erzielt, wird die Bereichsinformation 5015 in der Universalsteuereinheit 51 zur Bestimmung desjenigen Puffermoduls 50-i verwendet, in den neue Vorabrufdaten abgerufen werden sollen. Der Schwellenwert, der in der vorliegenden Ausführungsform "8" ist, stellt einen Referenzwert dar, anhand dessen festgestellt wird, ob die angeforderte Adresse an die zuletzt getroffene Adresse anschließt.
Die Bereichsbestimmungsschaltung 5012 überschreitet den Wert eines Vorwärts-/Rückwärts-Adressenregisters 5013, wenn der Absolutwert der Adressendifferenz den Wert 4 nicht übersteigt, wenn sich das Vorzeichen der Differenz vom Vorzeichen eines Registers für die Differenz der zu­ letzt getroffenen Adresse (Differenz des letzten Tref­ fers) 5014 unterscheidet und wenn keiner der Puffermodule 50-i einen Treffer erzielt. Auf der Grundlage des Wertes des Vorwärts-/Rückwärts-Adressenregisters 5013 wird festgestellt, ob der Puffermodul 50-i im voraus Adressen in Vorwärtsrichtung oder in Rückwärtsrichtung liest.
Wenn die angeforderte Adresse im Puffermodul 50-i getrof­ fen wurde, wird die angeforderte Adresse als zuletzt ge­ troffene Adresse im Register für die zuletzt getroffene Adresse 5010 gespeichert. Der Inhalt des Registers für die Differenz der zuletzt getroffenen Adresse 5014 wird durch die nun berechnete Differenz der zuletzt getroffenen Adresse ebenfalls aktualisiert. Wenn kein Puffermodul 50-i einen Treffer erzielt und wenn die der angeforderten Adresse nachfolgenden Daten in den Puf­ fer 503 des Puffermoduls 50-i geladen werden müssen, wird die angeforderte Adresse als Anfangswert im Register für die zuletzt getroffene Adresse 5010 gespeichert, außerdem wird der vorher bezeichnete Anfangswert im Register für die Differenz der zuletzt getroffenen Adresse 5014 gespeichert.
In Fig. 5 ist die Universalsteuereinheit 51 im einzelnen gezeigt. In einem Trefferdetektor 511 wird die Trefferin­ formation für jeden Puffermodul 50-i gesammelt. Wenn we­ nigstens ein Puffermodul 50-i mit einem Treffer vorhanden ist, wählt der Trefferdetektor 511 diesen einen Treffer aufweisenden Puffermodul 50-i entsprechend einer vorgege­ benen Regel aus und schickt ein "Treffer"-Wählsignal an den gewählten Puffermodul 50-i. Ferner wird an eine LRU- Steuereinrichtung 510, an eine Ausgangsadressen-Wählein­ richtung 512 und an den Datenausgabe-Multiplexer 52 mittels des "Treffer"-Wählsignals ein Treffer ge­ meldet. Wenn kein Puffermodul 50-i einen Treffer aufweist, wird an jeden Puffermodul 50-i über eine Signalleitung eine "kein Treffer" -Information bezüglich der erfolglosen Suche geliefert.
Die LRU-Steuereinheit 510 gewinnt aus der Historie der einen Treffer aufweisenden Puffermodule 50-i denjenigen Puffermodul 50-i, auf den für die längste Zeit nicht zu­ gegriffen worden ist. Wenn bei keinem Puffermodul 50-i die von der Adressen-Berechnungseinrich­ tung 501 erzeugte Bereichsinformation 5015 aktiv ist, wird ein LRU-Puffer-Wählsignal an den Puffermo­ dul 50-i ausgegeben, auf den für die längste Zeit nicht zugegriffen worden ist. Gleichzeitig werden aus dem Hauptspeicher die der angeforderten Adresse folgenden oder vorhergehenden Daten ausgelesen und in dem durch das LRU-Puffer-Wählsignal bezeichneten Puffermodul 50-i gespeichert. Wenn hingegen die Bereichsinformation 5015 für wenigstens einen Puffermodul 50-i aktiv ist, wählt die LRU-Steuereinheit 510 einen dieser Puffermodule 50-i aus und schickt das Bereichsauswahlsignal an den gewählten Puffermodul 50-i.
Die Ausgangsadressen-Wähleinrichtung 512 meldet an den Adressenausgabe-Multiplexer 53, daß die Ausgangsadresse von dem durch den Trefferdetektor 511 oder die LRU- Steuereinheit 510 bezeichneten Puffermodul 50-i an den Hauptspeicher 4 ausgegeben wird. Wenn weder der Treffer­ detektor 511 noch die LRU-Steuereinheit 510 eine Bezeich­ nung ausgibt, wird gemeldet, daß die angeforderte Adresse an den Hauptspeicher 4 ausgegeben wird.
In Fig. 6 ist die Adressen-Erzeugungseinrichtung 502 im einzelnen gezeigt. Eine Recheneinrichtung 5020 für die größte und die kleinste Adresse gewinnt auf der angefor­ derten Adresse und aus der Adressenabfragerichtung die größte Adresse und die kleinste Adresse der Daten, die nacheinander im Puffer zu spei­ chern sind, und speichert die resultierende größte bzw. die kleinste Adresse in einem Minimaladressenre­ gister 5022 bzw. in einem Maximaladressenregister 5023. Eine Ladeadressen-Erzeugungseinrichtpng 5021 gewinnt aus der angeforderten Adresse, der Adressenabfragerichtung, dem Treffer-Wählsignal, dem LRU- Puffer-Wählsignal und dem Bereichsauswahlsignal eine Adresse der vom Hauptspeicher 4 zu ladenden Daten und gibt diese Adresse aus. Die Ladeadressen-Erzeugungsein­ richtung 5021 erzeugt außerdem ein Ungültigkeitssignal, das die im Puffer 503 nicht benötigten Daten angibt, und schickt das Ungültigkeitssignal an den Puffer 503.
Zum Zeitpunkt eines Treffers wählt die Ladeadressen- Erzeugungseinrichtung 5021 aus den Daten, deren Adressen den vier der angeforderten Adresse nachfolgenden oder vorhergehenden Adressen entsprechen, diejenigen Daten aus, die nicht im Puffer 503 gespeichert sind, und erzeugt anschließend nacheinander die Adressen der Daten. Wenn das LRU-Puffer-Wählsignal aktiv ist oder wenn sowohl das Bereichswählsignal als auch die Signalleitung ("kein Treffer") aktiv sind erzeugt die Ladeadressen-Erzeu­ gungseinrichtung 5021 vier der angeforderten Adresse nachfolgende oder vorhergehende Adressen.
In Fig. 7 ist der Puffer 503 im einzelnen gezeigt. In vier Adresseneinträgen 5030-0, 5030-1, 5030-2 und 5030-3 sind Adressenidentifizierungszeichen gespeichert, ferner sind in vier Dateneinträgen 5031-0, 5031-1, 5031-2 und 5031-3 die Daten gespeichert, die den Adressenidentifi­ zierungszeichen entsprechen. Eine Schreibsteuerschaltung 5032 steuert das Schreiben in die Adresseneinträge 5030-i und in die Dateneinträge 5031-i und ferner die Gültigkeit bzw. Ungültigkeit eines jeden Eintrags.
Während der Adressen- und Datenspeicherung speichert die Schreibsteuerschaltung 5032 zunächst in den gültigen Adresseneinträgen 5030-i die von der Adressen-Erzeugungs­ einrichtung 502 geschickten Ladeadressen. Dann speichert die Schreibsteuerschaltung 5032 entsprechend den eingege­ benen Daten und dem Datengültigkeitssignal vom Hauptspei­ cher 4 die aus dem Hauptspeicher 4 ausgelesenen Daten in demjenigen Dateneintrag 5031-i, der dem vorher geladenen Adresseneintrag 5030-i entspricht.
Entsprechend dem von der Ladeadressen-Erzeugungseinrich­ tung 5021 erzeugten Ungültigkeitssignal macht die Schreibsteuerschaltung 5032 die Inhalte des bezeichneten Adresseneintrags 5030-i und des bezeichneten Datenein­ trags 5031-i ungültig. Wenn festgestellt wird, daß die Adresse zum Schreiben in den Hauptspeicher 4 im Adressen­ eintrag 5030-i gespeichert ist, erzeugt die Daten-Such­ einrichtung 500 für den Puffer 503 ein Rücksetzsignal, anschließend macht die Schreibsteuerschaltung 5032 die Inhalte für jeden Adresseneintrag 5030-i und für jeden Dateneintrag 5031-i ungültig.
Da in dieser Ausführungsform die Adressen-Berechnungsein­ richtung 501 die Zunahme bzw. die Abnahme der angeforder­ ten Adresse überwacht, ist es möglich, daß die Adresse in Vorwärtsrichtung oder in Rückwärtsrichtung getroffen wird, wenn die aufeinanderfolgend angeforderten Adressen von der CPU 2 ankommen. Da der Puffer 503 vier Einträge besitzt, in denen die Daten von vier aufeinan­ derfolgenden Adressen gespeichert werden, ist es außerdem möglich, für jede andere nachfolgende angeforderte Adresse, etwa für jede dritte nachfolgende angeforderte Adresse oder für jede vierte nachfolgende angeforderte Adresse einen Treffer zu erzielen.
Da der Puffer 503 Daten von vier aufeinanderfolgenden Adressen speichert, wird ein Treffer dadurch festge­ stellt, daß ermittelt wird, ob die angeforderte Adresse in dem Bereich zwischen der größten Adresse und der kleinsten Adresse im Puffer liegt, so daß Trefferdaten durch einen Vergleich der zwei niedrigstwertigen Bits der Adressen ausgewählt werden können, wodurch der Hardware­ umfang der Komparatoren verringert wird.
Da der Vorabrufpuffer 5 auch dann arbeitet, wenn nur ein Teil der Daten in den vier Einträgen des Puffers 503 ge­ speichert ist, muß die CPU 2 nicht warten, bis die Daten in sämtlichen Einträgen des Puffers 503 gespeichert sind, so daß verhindert wird, daß der Vorabrufpuffer 5 wegen des Zugriffs auf den Hauptspeicher 4 die Leistung ab­ senkt.
Da schließlich vier Puffermodule 50-i vorhanden sind, müssen höchstens vier vorgegebene Regeln zum Treffen der angeforderten Adresse gespeichert werden, so daß der Vor­ abrufpuffer 5 mit höherer Wahrscheinlichkeit Treffer er­ zielen kann. Da die Regeln zum Treffen der angeforderten Adresse in Abhängigkeit von der Anzahl der Puffermodule gespeichert werden können, ist es möglich, das Treffer­ verhältnis zu verbessern.
In Fig. 8-10 ist eine zweite Ausführungsform der Erfindung gezeigt. Diese Ausführungsform unterscheidet sich von der ersten Ausführungsform in der Konstruktion sowohl der Adressen-Berechnungseinrichtung 501 (Fig. 8) als auch der Adres­ sen-Erzeugungseinrichtung 502 (Fig. 9) der Daten-Sucheinrich­ tung 500 (Fig. 10).
In der Adressen-Berechnungseinrichtung 501 bildet die Subtraktionseinrichtung 5011 die Differenz zwischen der angeforderten Adresse und der zuletzt getroffenen Adres­ se, die in dem Register für die zuletzt getroffene Adresse 5010 gespeichert ist. Die Bereichsbestimmungs­ schaltung 5012 empfängt die Adressendifferenz und akti­ viert die Bereichsinformation 5015, falls der Absolutwert der Differenz unter einem vorgegebenen Schwellenwert liegt. Außerdem wird die Differenz an die Adressen- Erzeugungseinrichtung 502 geliefert. Der Schwellenwert stellt einen Referenzwert dar, anhand dessen festgestellt wird, ob die angeforderte Adresse an die zuletzt getrof­ fene Adresse anschließt; dieser Wert ist durch den mit dem Faktor 8 multiplizierten Wert des Registers für die Differenz der zuletzt getroffenen Adresse 5014 gegeben.
Wenn der Absolutwert der Adressendifferenz kleiner als der vierfache Wert des Registers für die Differenz der zuletzt getroffenen Adresse 5014 ist, wenn sich das Vorzeichen dieser Adressendifferenz von demjenigen des Wertes des Registers für die Differenz der zuletzt getroffenen Adresse 5014 unterscheidet und wenn keiner der Puffermodule 50-i einen Treffer erzielt, überschreibt die Be­ reichsbestimmungsschaltung 5012 den Wert des Vorwärts-/Rückwärts-Adressenregisters 5013. Auf der Grundlage des Wertes des Vorwärts-/Rückwärts-Adressenre­ gisters 5013 wird festgestellt, ob der Puffermodul 50-i die Adressen ihn der Vorwärts- oder Rückwärtsrichtung liest.
Wenn im Puffermodul 50-i eine angeforderte Adresse getroffen wird, wird diese angeforderte Adresse im Register für die zuletzt getroffene Adresse 5010 als zu­ letzt getroffene Adresse gespeichert. Genauso wird der Inhalt des Registers für die Differenz der zuletzt getroffenen Adresse 5014 auf die nun berechnete Differenz der zuletzt getroffenen Adresse ak­ tualisiert. Wenn keiner der Puffermodule 50-i einen Treffer erzielt und wenn der Puffer 503 des Puffermoduls 50-i die der angeforderten Adresse nachfolgenden Daten lädt, wird die angeforderte Adresse in dem Register für die zuletzt getroffene Adresse 5010 als Anfangswert gespeichert, außerdem wird der vorher bezeichnete An­ fangswert in dem Register für die Differenz der zuletzt getroffenen Adresse 5014 gespeichert.
In Fig. 9 ist die Adressen-Erzeugungseinrichtung 502 im einzelnen gezeigt. Die Recheneinrichtung 5020 für die größte Adresse und die kleinste Adresse gewinnt aus der angeforderten Adresse, der Adressenabfragerichtung und der von der Adressen-Berech­ nungseinrichtung 501 gelieferten Differenz die kleinste und die größte Adresse der nachfolgend im Puffer zu speichernden Daten und speichert die erhaltene kleinste Adresse und die erhaltene größte Adresse im Minimaladres­ senregister 5022 bzw. im Maximaladressenregister 5023. Die Ladeadressen-Erzeugungseinrichtung 5021 gewinnt aus der angeforderten Adresse, der Adressenabfrage­ richtung, der "Treffer"-Information, dem LRU-Puffer-Wählsignal, der Bereichsinformation und der Adressendifferenz eine Adresse der aus dem Hauptspeicher 4 zu ladenden Daten und gibt die gewonnene Adresse aus.
Die Ladeadressen-Erzeugungseinrichtung 5021 erzeugt außerdem ein Ungültigkeitssignal, das die im Puffer 503 nicht benötigten Daten angibt, wobei dieses Ungültig­ keitssignal an den Puffer 503 geschickt wird.
Zum Zeitpunkt eines Treffers wählt die Ladeadressen- Erzeugungseinrichtung 5021 aus den vier Adressen, in durch die Adressendifferenz gegebenen Abständen der angeforderten Adresse nachfolgen oder vorhergehen, diejenigen aus, die in dem Puffer 503 nicht vorhanden sind, und erzeugt aufeinanderfolgend diese Adressen. Wenn zu diesem Zeitpunkt die Daten im Puffer 503 eine Adresse besitzen, die im Bereich zwischen der größten Adresse und der kleinsten Adresse liegt, und wenn sich diese Adresse von den aufeinanderfolgend erzeugten Adressen unterscheidet, erzeugt die Ladeadres­ sen-Erzeugungseinrichtung 5021 ein Ungültigkeitssignal, um diese Daten ungültig zu machen.
Wenn das LRU-Puffer-Wählsignal aktiv ist und wenn sowohl die Bereichsinformation als auch die "kein Treffer"- Information aktiv sind, erzeugt die Ladeadressen-Erzeu­ gungseinrichtung 5021 vier der angeforderten Adresse in durch die Adressendifferenz gegebenen Abständen nachfolgende oder vorhergehende Adressen.
In Fig. 10 ist die Daten-Sucheinrichtung 500 im einzelnen gezeigt. In der Daten-Sucheinrichtung 500 vergleichen Komparatoren 5003-0, 5003-1, 5003-2 und 5003-3 die angeforderte Adresse mit sämtlichen Adressenidentifizie­ rungszeichen der nun im Puffermodul 50-i gespeicherten, vorabgerufenen Daten; wenn ein identisches Adresseniden­ tifizierungszeichen vorhanden ist, stellt die Daten- Sucheinrichtung 500 fest, daß ein Treffer erzielt worden ist.
Da die Adressen-Berechnungseinrichtung 501 in dieser Aus­ führungsform die Differenz der angeforderten Adresse überwacht, ist es möglich, im Falle von in regelmäßigen Abständen aufeinanderfolgenden angeforderten Adressen ei­ nen Treffer entweder in Vorwärtsrichtung oder in Rück­ wärtsrichtung zu erzielen. Da der Puffer 503 vier Einträ­ ge besitzt, in denen Daten von vier in regelmäßigen Abständen aufeinanderfolgenden Adressen gespeichert werden können, ist es möglich, auch dann einen Treffer zu erzielen, wenn der Abstand der angeforderten Adressen von der zuletzt getroffenen Adresse das Zwei-, Drei- oder Vierfache der Differenz ist. Da außerdem vier Puffermodule 50-i vorgesehen sind, müssen höchstens vier vorgegebene Regeln zum Treffen von angeforderten Adressen gespeichert werden. Da die Puffermodule 50-i auch dann arbeiten, wenn die Daten nur in einem Teil der vier Einträge des Puffers 503 gespeichert sind, muß die CPU 2 nicht warten, bis die Daten in sämtlichen Einträgen des Puffers 503 gespeichert sind, wodurch verhindert wird, daß die Leistung wegen des Zugriffs des Vorabrufpuffers 5 auf den Hauptspeicher 4 abgesenkt wird.
In Fig. 11 ist eine dritte Ausführungsform der vorliegen­ den Erfindung gezeigt. Diese Ausführungsform unterschei­ det sich von der ersten Ausführungsform durch die Univer­ salsteuereinheit 51. Die Universalsteuereinheit 51 besitzt eine Signalleitung, auf der sie meldet, ob von der CPU 2 auf den Vorabrufpuffer 5 aufgrund eines Lese­ fehlers oder eines Schreibfehlers zugegriffen worden ist.
In Fig. 12 ist die Universalsteuereinheit 51 im einzelnen gezeigt. Ein Schreib-/Lese-Steuerregister 514 gibt für jeden Puffermodul 50-i an, ob er momentan Daten eines Le­ sefehlers oder eines Schreibfehlers speichert. Das Schreib-/Lese-Steuerregister 514 wird durch die LRU- Steuereinrichtung 510 neu geladen; die LRU-Steuereinrich­ tung 510 und der Trefferdetektor 511 greifen auf das Schreib-/Lese-Steuerregister 514 zu.
Die "Treffer"-Informationen der einzelnen Puffermodule 50-i werden im Trefferdetektor 511 gesammelt. Wenn sich unter den Puffermodulen 50-i wenigstens ein einen Treffer aufweisender Puffermodul 50-i befindet, dessen Attribut mit dem von der CPU 2 gelieferten Lesefehler- /Schreibfehler-Attribut identisch ist, wählt der Treffer­ detektor 511 gemäß einer vorgegebenen Regel einen der ei­ nen Treffer aufweisenden Puffermodule 50-i aus und meldet die Trefferinformation an die LRU-Steuereinrichtung 510, die Ausgangsadressen-Wähleinrichtung 512, den Puffermodul 50-i und den Datenausgabe-Multiplexer 52. Wenn kein einen Treffer aufweisender Puffermodul 50-i vorhanden ist, schickt der Trefferdetektor 511 die "kein Treffer"- Information an jeden Puffermodul 50-i.
Die LRU-Steuereinrichtung 510 verwaltet gleichzeitig den Lesefehler-Puffermodul 50-i, auf den für die längste Zeit nicht zugegriffen worden ist, und den Schreibfehler- Puffermodul 50-i, auf den für die längste Zeit nicht zu­ gegriffen worden ist. Wenn sämtliche das gleiche Attribut wie die angeforderte Adresse aufweisenden Puffermodule 50-i keinen Treffer aufweisen und wenn kein Puffermodul 50-i vorhanden ist, für den das Bereichssignal aktiv ist, wählt die LRU-Steuereinrichtung 510 aus den Puffermodulen 50-i, die jeweils ein vom Attribut der angeforderten Adresse verschiedenes Attribut besitzen, denjenigen Puffermodul 50-i aus, auf den für die längste Zeit nicht zugegriffen worden ist, und ändert den Puffermodul 50-i, derart, daß er das gleiche Attribut wie die angeforderte Adresse besitzt. Dieses Attribut wird geändert und in das Schreib-/Lese-Steuerregister 514 geladen, woraufhin die LRU-Steuereinrichtung 510 ein auf den Puffermodul 50-i bezogenes LRU-Signal aktiviert. Im Ergebnis werden im Puffermodul 50-i die Daten gespeichert, deren Adressen der angeforderten Adresse nachfolgen oder vorhergehen.
Wenn kein Puffermodul 50-i vorhanden ist, dessen Attribut sich von demjenigen der angeforderten Adresse unterschei­ det, wird aus den Puffermodulen 50-i mit demselben Attribut derjenige Puffermodul 50-i ausgewählt, auf den für die längste Zeit nicht zugegriffen worden ist.
Gemäß dieser Ausführungsform ist es möglich, von einem Puffermodul 50-i zum nächsten dynamisch umzuschalten, um Schreibfehler und Lesefehler zu beherrschen. Hierbei wer­ den die einen Lesefehler aufweisende Adresse bzw. die ei­ nen Schreibfehler aufweisende Adresse regelmäßig verscho­ ben. Wenn ein Lesefehler und ein Schreibfehler nicht von­ einander getrennt werden, beeinflussen sie sich gegensei­ tig, wodurch die Adressenberechnung gestört wird. Wenn der Lesefehler und der Schreibfehler voneinander getrennt werden, ist es möglich, das Trefferverhältnis des Vorab­ rufpuffers 5 zu verbessern, sofern eine Regelmäßigkeit leicht ermittelt werden kann, wodurch die Leistung eines Computersystems im Vergleich zu dem Fall, in dem ein Le­ sefehler und ein Schreibfehler nicht voneinander getrennt werden, verbessert werden kann.
In Fig. 13 ist eine vierte Ausführungsform der vorliegen­ den Erfindung gezeigt. Diese Ausführungsform unterschei­ det sich von der ersten Ausführungsform dadurch, daß das Computersystem 1 eine aus vier CPU′s 2 aufgebaute Multi­ prozessorstruktur besitzt. In dieser Ausführungsform sind 16 Puffermodule 50-i, also viermal soviel wie im Falle einer einzelnen CPU 2, vorgesehen.
Gemäß dieser Ausführungsform ist es möglich, die Leistung eines Vorabrufpuffers in einem Multiprozessorsystem zu verbessern.
In Fig. 14 ist eine fünfte Ausführungsform der vorliegen­ den Erfindung gezeigt. Diese Ausführungsform unterschei­ det sich von der vierten Ausführungsform dadurch, daß die Universalsteuereinheit 51 eine Signalleitung besitzt, über die die Nummer des Prozessors gemeldet wird, dessen CPU 2 den Zugriff auf den Vorabrufpuffer 5 nutzt.
In Fig. 15 ist diese Universalsteuereinheit 51 im einzel­ nen gezeigt. Ein Prozessornummer-Steuerregister 515 gibt die Nummer eines Prozessors an, dessen Vorabrufdaten mo­ mentan in jedem Puffermodul 50-i gespeichert sind. Das Prozessornummer-Steuerregister 515 wird durch die LRU- Steuereinrichtung 510 überschrieben; die LRU-Steuereinrich­ tung 510 und der Trefferdetektor 511 greifen auf das Pro­ zessornummer-Steuerregister 515 zu.
Die "Treffer "-Information der einzelnen Puffermodule 50-i werden im Trefferdetektor 511 gesammelt. Wenn wenigstens ein Puffermodul 50-i derjenigen Puffermodule 50-i, die eine mit der von der CPU 2 gelieferten Prozessornummer identische Prozessornummer besitzen, einen Treffer aufweist, wählt der Trefferdetektor 511 gemäß einer vorgegebenen Regel einen den Treffer aufweisenden Puffer­ modul 50-i aus und meldet die Trefferinformation an die LRU-Steuereinrichtung 510, die Ausgangsadressen-Wählein­ richtung 512, den Puffermodul 50-i und den Datenausgabe- Multiplexer 52. Wenn kein einen Treffer aufweisender Puf­ fermodul 50-i vorhanden ist, schickt der Trefferdetektor 511 an jeden Puffermodul 50-i eine "kein Treffer"-Infor­ mation.
Die LRU-Steuereinrichtung 510 steuert für jede Prozessor­ nummer den Puffermodul 50-i, auf den für die längste Zeit nicht zugegriffen worden ist. Wenn sämtliche die gleiche Prozessornummer wie die angeforderte Adresse aufweisenden Puffermodule 50-i keinen Treffer aufweisen und wenn in keinem Puffermodul 50-i ein Bereichssignal aktiv ist, wählt die LRU-Steuereinrichtung 510 aus den Puffermodulen 50-i, deren Prozessornummern sich von derjenigen der an­ geforderten Adresse unterscheiden, einen Puffermodul 50-i aus und ändert die Prozessornummer des gewählten Puffer­ moduls 50-i in die Prozessornummer der angeforderten Adresse, indem sie in das Prozessornummer-Steuerregister 515 schreibt. Dann aktiviert die LRU-Steuereinrichtung 510 das LRU-Signal für den Puffermodul 50-i. Im Ergebnis werden im Puffermodul 50-i die Daten gespeichert, deren Adressen der angeforderten Adresse nachfolgen oder vorhergehen.
Wenn im obenerwähnten Fall kein Puffermodul 50-i eine von derjenigen der angeforderten Adresse sich unterscheidende Prozessornummer besitzt, wählt die LRU-Steuereinrichtung 510 aus den Puffermodulen 50-i mit derselben Prozessor­ nummer denjenigen Puffermodul 50-i aus, auf den für die längste Zeit nicht zugegriffen worden ist.
Gemäß dieser Ausführungsform ist es möglich, zwischen den Puffermodulen 50-i gemäß der Prozessornummer umzuschal­ ten. Folglich werden die Adressen für jeden Prozessor re­ gelmäßig verschoben, wobei sich die Prozessornummern ge­ genseitig beeinflussen und die Adressenberechnung stören würden, wenn sie nicht voneinander unterschieden würden. Unter der Annahme, daß sie voneinander getrennt sind, ist es jedoch möglich, das Trefferverhältnis des Vorabrufpuf­ fers zu verbessern, sofern eine Regelmäßigkeit leicht er­ mittelt werden kann; damit kann die Leistung eines Computersystems im Vergleich zu dem Fall, in dem die Pro­ zessornummern nicht voneinander unterschieden werden, verbessert werden. Da es in dem erfindungsgemäßen Aufbau möglich ist, das Trefferverhältnis des Vorabrufpuffers im Vergleich zu herkömmlichen Vorabrufpuffern zu verbessern, ist es möglich, die Absenkung der Leistung aufgrund eines Zugriffs der CPU auf den Hauptspeicher stark abzuschwä­ chen, wodurch die Leistung eines Computersystems verbes­ sert wird. Da die Datenzugriffsgeschwindigkeit erhöht ist, ist es somit möglich, die Verarbeitungsgeschwindig­ keit eines Computersystems zu verbessern.

Claims (19)

1. Vorabrufpuffer, der dazu geeignet ist, in einem Compu­ tersystem mit einer CPU (2), einem Cache-Speicher (3) und einem Hauptspeicher (4) installiert zu werden, mit
einem Puffer (503) mit wenigstens einem Eintrag zum Speichern von vorabgerufenen Daten und einem zum Suchen der Daten verwendeten Adressenidentifizierungszeichen als Paar;
einer Daten-Sucheinrichtung (500) zum Suchen der Daten mit der von der CPU (2) angeforderten Adresse in den im Puffer (503) gespeicherten Daten;
einer Adressen-Berechnungseinrichtung (501) zum Bestimmen einer Hauptspeicher-Adresse der als nächstes vorabzurufenden Daten; und
einer Adressen-Erzeugungseinrichtung (502) zum Erzeugen einer Adresse der aus dem Hauptspeicher (4) vorabzurufenden Daten gemäß der Berechnung der Adressen- Berechnungseinrichtung (501),
dadurch gekennzeichnet, daß die Adressen-Berechnungseinrichtung (501) eingerichtet ist, um die Hauptspeicher-Adresse der als nächstes vorabzurufenden Daten auf der Grundlage der Historie der Hauptspeicher-Adressen der in der Vergangenheit von der CPU (2) angeforderten Daten zusätzlich zur von der CPU (2) angeforderten Adresse zu bestimmen.
2. Vorabrufpuffer gemäß Anspruch 1, dadurch gekennzeichnet, daß die Adressen-Berechnungseinrichtung (501) die Differenz zwischen einer von der CPU (2) angeforderten Adresse und der von der CPU (2) unmittelbar vorher angeforderten Adresse bildet und dann auf der Grundlage des Diffe­ renzwertes eine Adresse der aus dem Hauptspeicher (4) vorabzurufenden Daten berechnet.
3. Vorabrufpuffer gemäß Anspruch 1, dadurch gekennzeichnet, daß der Puffer (503) n (n ist ganze Zahl größer als 1) Einträge umfaßt und die Daten-Sucheinrichtung (500) eingerichtet ist, um bei einer Anforderung von Daten durch die CPU (2) in sämtlichen Einträgen nach den Daten mit der angeforderten Adresse zu suchen.
4. Vorabrufpuffer, der dazu geeignet ist, in einem Compu­ tersystem mit einer CPU (2), einem Cache-Speicher (3) und einem Hauptspeicher (4) installiert zu werden, mit
einem Puffer (503) mit wenigstens n Einträgen (n ist eine ganze Zahl größer als 1) zum Speichern von vorab­ gerufenen Daten und einem zum Suchen der Daten verwen­ deten Adressenidentifizierungszeichen als Paar;
einer Daten-Sucheinrichtung (500) zum Suchen der Daten mit der von der CPU (2) angeforderten Adresse in den im Puffer (503) gespeicherten Daten;
einer Adressen-Berechnungseinrichtung (501) zum Bestimmen einer Hauptspeicher-Adresse der als nächstes vorabzurufenden Daten; und
einer Adressen-Erzeugungseinrichtung (502) zum Erzeugen einer Adresse der aus dem Hauptspeicher (4) vorabzurufenden Daten gemäß der Berechnung der Adressen- Berechnungseinrichtung (501), wobei
die Adressen-Erzeugungseinrichtung (502) eingerichtet ist, um als Adressen der vorabzurufenden Daten n Adres­ sen zu erzeugen, die an die Adresse der von der CPU (2) angeforderten Daten anschließen,
dadurch gekennzeichnet, daß die Daten-Sucheinrichtung (500) eingerichtet ist, um bei einer Anforderung von Daten durch die CPU (2) in sämt­ lichen Einträgen nach den Daten mit der angeforderten Adresse zu suchen.
5. Vorabrufpuffer gemäß Anspruch 4, dadurch gekennzeichnet, daß die Adressen-Berechnungsein­ richtung (501) umfaßt:
  • - ein Vorwärtsadressen-/Rückwärtsadressen-Register (5013) zum Speichern eines Zustandsbits für die Bestimmung, ob Daten mit Adressen, die der von der CPU (2) angeforderten Adresse nachfolgen, oder Daten mit Adressen, die der von der CPU (2) angeforderten Adresse vorhergehen, gespeichert werden sollen, und
  • - ein Register (5010) für die zuletzt getroffene Adresse zum Speichern einer vom Vorabrufpuffer (5) zuletzt getroffenen Adresse, und
    die Adressen-Berechnungseinrichtung (501) die Adressen- Erzeugungseinrichtung (502) derart steuert, daß, wenn der Vorabrufpuffer (5) keinen Treffer erzielt:
  • - im Puffer (503) n aufeinanderfolgende Daten, die der angeforderten Adresse folgen, gespeichert werden, falls die angeforderte Adresse größer als die zuletzt getroffene Adresse ist und falls der Absolutwert der Differenz zwischen diesen Adressen kleiner als ein vorgegebener Wert p ist, oder
  • - im Puffer (503) n aufeinanderfolgende Daten, die der angeforderten Adresse vorhergehen, gespeichert werden, falls die angeforderte Adresse kleiner als die zuletzt getroffene Adresse ist und falls der Absolutwert der Differenz zwischen diesen Adressen kleiner als der vorgegebene Wert p ist.
6. Vorabrufpuffer gemäß Anspruch 5, dadurch gekennzeichnet, daß der vorgegebene Wert p zwischen 1 und n liegt (1 p n).
7. Vorabrufpuffer gemäß Anspruch 5, dadurch gekennzeichnet, daß, wenn er eine angeforderte Adresse trifft, die Adressen- Berechnungseinrichtung (501) die Adressen-Erzeugungs­ einrichtung (502) steuert, derart, daß der Inhalt des Registers für die zuletzt getroffene Adresse (5010) durch die angeforderte Adresse aktualisiert wird und im Puffer (503) n aufeinanderfolgende Daten gespeichert werden, die der angeforderten Adresse in einer Richtung folgen, die dem Inhalt des Vorwärts-/Rückwärtsadressen- Registers entspricht.
8. Vorabrufpuffer gemäß Anspruch 3, dadurch gekennzeichnet, daß die Adressen-Berechnungseinrichtung (501) eine Adresse der Daten berechnet, die aus dem Hauptspeicher vorabge­ rufen werden sollen, indem sie die Differenz zwischen der von der CPU (2) angeforderten Adresse und der von der CPU (2) unmittelbar vorher angeforderten Adresse bildet und zu der angeforderten Adresse einen Wert addiert, der durch die Multiplikation des Differenz­ wertes mit k (k ist ganze Zahl zwischen 1 und n) erhalten wird.
9. Vorabrufpuffer gemäß Anspruch 3 oder 4, dadurch gekennzeichnet, daß
der Puffer (503) eine Einrichtung (5032) aufweist, um den gültige Daten speichernden Eintrag und den ungültige Daten speichernden Eintrag zu identifizieren; und
die Daten-Sucheinrichtung (500) im Puffer (503) die angeforderte Adresse unter den gültige Daten speichern­ den Einträgen sucht.
10. Vorabrufpuffer gemäß Anspruch 3 oder 4, dadurch gekennzeichnet, daß
der Puffer (503) ein Zustandsbit aufweist, um den gültige Daten speichernden Eintrag und den ungültige Daten speichernden Eintrag zu identifizieren; und
die Daten-Sucheinrichtung (500) die angeforderte Adresse für den gültige Daten speichernden Eintrag unter Bezugnahme auf das Zustandsbit sucht.
11. Vorabrufpuffer nach einem der vorhergehenden Ansprüche, gekennzeichnet durch eine Universalsteuereinheit (51) zum Steuern von m (m ist ganze Zahl größer als 1) Puffermodulen (50-0, 50-1, . . . , 50-m), von denen jeder einen Puffer (503), eine Adressen-Erzeugungseinrichtung (502), eine Daten-Such­ einrichtung (500) und eine Adressen-Berechnungseinrich­ tung (501) umfaßt.
12. Vorabrufpuffer gemäß Anspruch 11, dadurch gekennzeichnet, daß die Universalsteuereinheit (51) in dem Fall, in dem in keinem Puffer (503) irgendeines der m Puffermodule (50-0, 50-1, . . ., 50-m) Daten mit der von der CPU (2) angeforderten Adresse vorhanden sind, aus den m Puffer­ modulen (50-0, 50-1, . . ., 50-m) einen Puffermodul (50-i) auswählt, auf den für die längste Zeit nicht zugegriffen worden ist, und einen neuen Vorabruf für den Puffer (503) des gewählten Puffermoduls (50-i) ausführt.
13. Vorabrufpuffer gemäß Ansprüchen 5 und 11, dadurch gekennzeichnet, daß die Universalsteuereinheit (51) in dem Fall, in dem in keinem Puffer (503) irgendeines der m Puffermodule (50-0, 50-1, . . ., 50-m) Daten mit der von der CPU (2) angeforderten Adresse vorhanden sind und in dem in den m Puffermodulen (50-0, 50-1, . . ., 50-m) ein Puffermodul (50-i) vorhanden ist, bei dem die Differenz zwischen der in der Adressen-Berechnungseinrichtung (501) gespei­ cherten zuletzt getroffenen Adresse und der angeforder­ ten Adresse kleiner als ein vorgegebener Wert d ist, diesen Puffermodul (50-i) wählt und in dem Fall, in dem in keinem der m Puffermodule (50-0, 50-1, . . . , 50-m) ein Puffermodul vorhanden ist, bei dem die Adressendifferenz kleiner als der vorgegebene Wert d ist, aus den m Puf­ fermodulen (50-0, 50-1, . . . , 50-m) einen Puffermodul (50-i) auswählt, auf den für die längste Zeit nicht zugegriffen worden ist, und für den Puffer (503) dieses gewählten Puffermoduls (50-i) einen neuen Vorabruf ausführt.
14. Vorabrufpuffer gemäß Anspruch 12 oder 13, dadurch gekennzeichnet, daß die Universalsteuereinheit (51) in dem Fall, in dem im Puffer (503) irgendeines der m Puffermodule (50-0, 50-1, 50-m) Daten mit der von der CPU (2) angeforderten Adresse vorhanden sind, für diesen Puffermodul (50-i) einen neuen Vorabruf ausführt.
15. Vorabrufpuffer gemäß Anspruch 11, dadurch gekennzeichnet, daß die Universalsteuereinheit (51) die m Puffermodule (50-0, 50-1, . . ., 50-m) in bezug auf das Attribut Lese­ fehler bzw. Schreibfehler in zwei Gruppen unterteilt und die beiden Gruppen getrennt verwaltet werden.
16. Vorabrufpuffer gemäß Anspruch 15, dadurch gekennzeichnet, daß die Universalsteuereinheit (51)
den Lesefehler-Puffermodul, auf den für die längste Zeit nicht zugegriffen worden ist, und den Schreibfeh­ ler-Puffermodul, auf den für die längste Zeit nicht zugegriffen worden ist, parallel verwaltet und
in dem Fall, in dem sämtliche Puffermodule mit dem­ selben Attribut wie die angeforderte Adresse keinen Treffer erzielen, aus den Puffermodulen mit von dem der angeforderten Adresse verschiedenem Attribut denjenigen Puffermodul wählt, auf den für die längste Zeit nicht zugegriffen worden ist, das Attribut des zuletzt ge­ nannten Puffermoduls ändert, damit es mit dem der angeforderten Adresse übereinstimmt, und im Puffer (503) dieses Puffermoduls die Daten mit der der angeforderten Adresse nachfolgenden Adresse speichert.
17. Vorabrufpuffer nach einem der Ansprüche 11 bis 16, der dazu geeignet ist, in einem Multiprozessor-Computersy­ stem mit mehreren CPU′s (2-0, 2-1, 2-2, 2-3) mit jeweils einem Cache-Speicher (3-0, 3-1, 3-2, 3-3) und einem Hauptspeicher (4) installiert zu werden.
18. Vorabrufpuffer gemäß Anspruch 17, dadurch gekennzeichnet, daß die Universalsteuereinheit (51) von den von derselben CPU (2-0, 2-1, 2-2, 2-3) genutzten Puffermodulen (50-0, 50-1, . . ., 50-m) denjenigen Puffermodul (50-i) ver­ waltet, auf den für die längste Zeit nicht zugegriffen worden ist, indem die Universalsteuereinheit (51) in dem Fall, in dem sämtliche Puffermodule (50-0, 50-1, . . . 50-m), die der die Anforderungsquelle der angeforderten Adresse bildenden CPU (2-0, 2-1, 2-2, 2-3) zugeordnet sind, keinen Treffer erzielen, denjenigen Puffermodul (50-i) wählt, der einer von der die Anforderungsquelle bil­ denden CPU (2-0, 2-1, 2-2, 2-3) verschiedenen CPU zu­ geordnet ist, den letztgenannten Puffermodul (50-i) ändert, derart, daß er der die Anforderungsquelle bil­ denden CPU zugeordnet ist, und im Puffer (503) dieses Puffermoduls (50-i) die Daten mit der der angeforderten Adresse folgenden Adresse speichert.
19. Informationsverarbeitungssystem, mit
wenigstens einer CPU (2) zum Ausführen von Rechen­ operationen und/oder Steueroperationen; und
einem Speicher (4) zum Speichern sowohl von Program­ men, die Prozeduren für die Ausführung der Rechenopera­ tionen und/oder der Steueroperationen darstellen, als auch von Daten, die in den Rechenoperationen und/oder den Steueroperationen verwendet werden,
gekennzeichnet durch einen Vorabrufpuffer nach einem der Ansprüche 1 bis 18.
DE4225228A 1991-07-30 1992-07-30 Vorabrufpuffer und einen derartigen Vorabrufpuffer verwendendes Informationsverarbeitungssystem Expired - Fee Related DE4225228C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3190240A JP2881049B2 (ja) 1991-07-30 1991-07-30 プリフェッチバッファ

Publications (2)

Publication Number Publication Date
DE4225228A1 DE4225228A1 (de) 1993-02-04
DE4225228C2 true DE4225228C2 (de) 1997-05-15

Family

ID=16254838

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4225228A Expired - Fee Related DE4225228C2 (de) 1991-07-30 1992-07-30 Vorabrufpuffer und einen derartigen Vorabrufpuffer verwendendes Informationsverarbeitungssystem

Country Status (4)

Country Link
US (1) US5345560A (de)
JP (1) JP2881049B2 (de)
KR (1) KR930002945A (de)
DE (1) DE4225228C2 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5659713A (en) * 1992-04-24 1997-08-19 Digital Equipment Corporation Memory stream buffer with variable-size prefetch depending on memory interleaving configuration
US6453388B1 (en) * 1992-06-17 2002-09-17 Intel Corporation Computer system having a bus interface unit for prefetching data from system memory
US5566324A (en) * 1992-12-24 1996-10-15 Ncr Corporation Computer apparatus including a main memory prefetch cache and method of operation thereof
US5588128A (en) * 1993-04-02 1996-12-24 Vlsi Technology, Inc. Dynamic direction look ahead read buffer
TW228580B (en) * 1993-10-01 1994-08-21 Ibm Information processing system and method of operation
KR970010368B1 (ko) * 1994-01-18 1997-06-25 삼성전자 주식회사 캐시라인 리프레이스장치 및 방법
TW233354B (en) * 1994-03-04 1994-11-01 Motorola Inc Data processor with memory cache and method of operation
JP2689920B2 (ja) * 1994-09-26 1997-12-10 日本電気株式会社 演算処理システムに用いられるプリフェッチバッファ装置
JPH0895857A (ja) * 1994-09-29 1996-04-12 Shikoku Nippon Denki Software Kk 入出力キャッシュ
US5761706A (en) * 1994-11-01 1998-06-02 Cray Research, Inc. Stream buffers for high-performance computer memory system
US5737565A (en) * 1995-08-24 1998-04-07 International Business Machines Corporation System and method for diallocating stream from a stream buffer
US5664147A (en) * 1995-08-24 1997-09-02 International Business Machines Corp. System and method that progressively prefetches additional lines to a distributed stream buffer as the sequentiality of the memory accessing is demonstrated
US6055621A (en) * 1996-02-12 2000-04-25 International Business Machines Corporation Touch history table
US5854911A (en) * 1996-07-01 1998-12-29 Sun Microsystems, Inc. Data buffer prefetch apparatus and method
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
US6134643A (en) * 1997-11-26 2000-10-17 Intel Corporation Method and apparatus for cache line prediction and prefetching using a prefetch controller and buffer and access history
US6625697B1 (en) 1998-11-25 2003-09-23 Siemens Aktiengesellschaft Cache-storage device with a buffer storing prefetch data
EP1050802B1 (de) * 1999-05-03 2007-02-07 STMicroelectronics S.A. Befehlsvorausholeinheit
JP3956698B2 (ja) * 1999-07-07 2007-08-08 株式会社日立製作所 メモリ制御装置
JP3535800B2 (ja) * 2000-03-31 2004-06-07 松下電器産業株式会社 ディスクメモリ装置、データ先読み方法、及び記録媒体
US7039766B1 (en) * 2000-10-12 2006-05-02 International Business Machines Corporation Prescheduling sequential data prefetches in a preexisting LRU cache
JP4341186B2 (ja) 2001-01-22 2009-10-07 株式会社日立製作所 メモリシステム
JP3969009B2 (ja) 2001-03-29 2007-08-29 株式会社日立製作所 ハードウェアプリフェッチシステム
US7133972B2 (en) * 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
JP4067887B2 (ja) 2002-06-28 2008-03-26 富士通株式会社 プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法
US7841041B2 (en) 2002-08-09 2010-11-30 Colgate-Palmolive Company Oral care implement
US8151397B2 (en) 2002-08-09 2012-04-10 Colgate-Palmolive Company Oral care implement having flexibly supported cleaning elements extending in opposite directions
US8806695B2 (en) 2002-08-09 2014-08-19 Colgate-Palmolive Company Oral care implement having flexibly supported cleaning elements extending in opposite directions
US8876221B2 (en) 2002-08-09 2014-11-04 Colgate-Palmolive Company Oral care implement
US7167954B2 (en) * 2002-09-09 2007-01-23 Broadcom Corporation System and method for caching
US7111116B1 (en) * 2003-09-30 2006-09-19 Western Digital Technologies, Inc. Reducing micro-controller access time to data stored in a remote memory in a disk drive control system
JP2006215799A (ja) * 2005-02-03 2006-08-17 Toshiba Corp メモリコントローラ
US7702883B2 (en) * 2005-05-05 2010-04-20 Intel Corporation Variable-width memory
US8281448B2 (en) 2005-10-24 2012-10-09 Colgate-Palmolive Company Oral care implement having one or more moving sections
US9009414B2 (en) 2010-09-21 2015-04-14 Texas Instruments Incorporated Prefetch address hit prediction to reduce memory access latency
US10866897B2 (en) * 2016-09-26 2020-12-15 Samsung Electronics Co., Ltd. Byte-addressable flash-based memory module with prefetch mode that is adjusted based on feedback from prefetch accuracy that is calculated by comparing first decoded address and second decoded address, where the first decoded address is sent to memory controller, and the second decoded address is sent to prefetch buffer
US10956315B2 (en) * 2018-07-24 2021-03-23 Micron Technology, Inc. Memory devices and methods which may facilitate tensor memory access

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines
EP0389175A3 (de) * 1989-03-15 1992-11-19 Fujitsu Limited Datenvorausladesystem

Also Published As

Publication number Publication date
JPH0628180A (ja) 1994-02-04
JP2881049B2 (ja) 1999-04-12
KR930002945A (ko) 1993-02-23
DE4225228A1 (de) 1993-02-04
US5345560A (en) 1994-09-06

Similar Documents

Publication Publication Date Title
DE4225228C2 (de) Vorabrufpuffer und einen derartigen Vorabrufpuffer verwendendes Informationsverarbeitungssystem
DE69321698T2 (de) Verfahren und System zur verbesserten Genauigkeit der Sprungvorhersage in einem Superskalarprozessor
DE69816044T2 (de) Zeitstrafen-basierende cache-speicherungs- und ersetzungs-techniken
DE69028153T2 (de) Cache-Speicherfehlgriffsvorhersageverfahren und -vorrichtung
DE69228380T2 (de) Verfahren zur erhöhung der datenverarbeitungsgeschwindigkeit in einem rechnersystem
DE69518676T2 (de) Cache-Speicheranordnung für einen Speicher
DE69732020T2 (de) Wiedereinordnung von Speicheranforderungen in einem Datenverarbeitungssystem
DE69224084T2 (de) Rechneranordnung mit Mehrfachpufferdatencachespeicher und Verfahren dafür
DE69322683T2 (de) Verfahren und Vorrichtung zur Durchführung eines pseudo-LRU Cachespeicherersetzungsschemas mit einer Verriegelungsfunktion
DE69514165T2 (de) Mehrstufige Cache-Speicheranordnung
DE68911398T2 (de) Methode und digitaler computer zum vorausholen von vektordaten aus dem speicher in einem für skalaverarbeitung bestimmten speichersystem.
DE69606648T2 (de) Verfahren und vorrichtung zur ablauffolgen von multiprozessoren mit starker affinität
DE19527031C2 (de) Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems
DE69130580T2 (de) Cache-Speicheranordnung
DE10015676B4 (de) Verfahren zum Ersetzen von Einträgen in einem Befehls-Cache-Speicher
DE69634315T2 (de) Verfahren und Gerät zur Verwendung eines Ladebefehls der keinen Fehler verursacht
DE2547488C2 (de) Mikroprogrammierte Datenverarbeitungsanlage
DE69131472T2 (de) Verfahren zum Vorsehen eines synchronisierten Datencachespeicherbetriebs für Prozessoren in einer parallelen Verarbeitungsanordnung und parallele Verarbeitungsanordnung zur Durchführung des Verfahrens
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE69027017T2 (de) Anordnung und Verfahren zur Speicherverwaltung in einem Mikrorechner
DE3280414T2 (de) Methode fuer den betrieb eines virtuellen speicherorganisationssystems.
DE69324967T2 (de) Cache-Speicherfehlgriffvorhersageverfahren und -vorrichtung für einen nach Seiten organisierten Hauptspeicher in einem Datenverarbeitungssystem
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE68928525T2 (de) Verfahren zum teilweisen Austausch reeller, von einem Programm benutzter Speicherbereiche zwischen einem reellen Speicher und einem Hilfsspeicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 9/38

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee