[go: up one dir, main page]

DE69334046T2 - Cache-Speichervorrichtung - Google Patents

Cache-Speichervorrichtung Download PDF

Info

Publication number
DE69334046T2
DE69334046T2 DE69334046T DE69334046T DE69334046T2 DE 69334046 T2 DE69334046 T2 DE 69334046T2 DE 69334046 T DE69334046 T DE 69334046T DE 69334046 T DE69334046 T DE 69334046T DE 69334046 T2 DE69334046 T2 DE 69334046T2
Authority
DE
Germany
Prior art keywords
cache
data
address
register
memory
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 - Lifetime
Application number
DE69334046T
Other languages
English (en)
Other versions
DE69334046D1 (de
Inventor
Oki Electric Industry Co. Kazuhiko Maki
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.)
Lapis Semiconductor Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Application granted granted Critical
Publication of DE69334046D1 publication Critical patent/DE69334046D1/de
Publication of DE69334046T2 publication Critical patent/DE69334046T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory

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

  • Technisches Gebiet
  • Die vorliegende Erfindung betrifft eine Cachespeichervorrichtung zum Lesen von Daten mit hoher Geschwindigkeit zur Verwendung bei einer Informationsverarbeitungseinheit, wie beispielsweise einem Mikroprozessor (der hierin nachfolgend MPU genannt wird).
  • Zugehöriger Stand der Technik
  • Cachespeichervorrichtungen sind weit verbreitet verwendet worden, um die Verarbeitungsgeschwindigkeiten von Informationsverarbeitungseinheiten zu verbessern. Die Technologien der Cachespeichervorrichtungen sind beispielsweise beschrieben in:
    • (1) Harold S. Stone, "High Performance Computer Architecture (übersetzter Titel)", 30. März 1989, Maruzen, S. 23-42.
    • (2) Nikkei Electronics [434], 16. November 1987, Nikkei BP Company, S. 159-174.
  • In den Dokumenten 1 und 2 sind die Grundaufbauten der herkömmlichen Cachespeichervorrichtungen beschrieben. Die herkömmlichen Cachespeichervorrichtungen enthalten einen Speicher mit einer geringeren Speichermenge als ein externer Speicher, um die Verarbeitungsgeschwindigkeiten zu erhöhen. Dieser Speicher wird Cachespeicher genannt. Wenn Daten, die oft gelesen werden, im Cachespeicher gespeichert sind, können diese Daten schnell gelesen werden. Wenn erforderliche Daten nicht im Cachespeicher gespeichert sind, werden sie von einem externen Speicher der Cachespeichervorrichtung gelesen. In diesem Fall werden die erforderlichen Daten mit normaler Geschwindigkeit gelesen. Als nächstes wird ein praktischer Aufbau der Cachespeichervorrichtung und ihres Betriebs beschrieben werden.
  • 2 ist ein schematisches Diagramm, das eine Grundschaltung einer herkömmlichen Cachespeichervorrichtung zeigt.
  • In 2 ist ein Bezugszeichen 50 eine Cachespeichervorrichtung. Die Cachespeichervorrichtung 50 gibt Cache-Daten CD zu einem Datenlese-Requester 1 (hierin nachfolgend wird der Datenlese-Requester Daten-Requester genannt), wie beispielsweise einer zentralen Verarbeitungseinheit, gemäß einer durch ihn angeforderten Cacheadresse CA aus.
  • Die Cachespeichervorrichtung 50 weist eine Steuerschaltung 10, einen Cache-Tagspeicher bzw. Cache-Kennungsspeicher 11 und einen Cache-Datenspeicher 12 und eine Übereinstimmungs-Bestimmungsschaltung 13 auf. Die Steuerschaltung 10 steuert interne Schaltungen der Cachespeichervorrichtung 50. Der Cache-Tagspeicher 11 ist aus einem Direktzugriffspeicher kleiner Kapazität hoher Geschwindigkeit (der hierin nachfolgend RAM genannt wird) oder ähnlichem aufgebaut. Der Cache-Datenspeicher 12 ist auch aus einem RAM oder ähnlichem aufgebaut. Der Cache-Tagspeicher 11 speichert einen Teil von Adressen von in dem Cache-Datenspeicher 12 gespeicherten Daten. Der Cache-Tagspeicher 11 hat einen Adressenanschluss A, einen Daten-Eingabe/Ausgabe-Anschluss (der hierin nachfolgend I/O-Anschluss genannt wird), einen Schreibfreigabeanschluss WE und Anschlüsse VAi und VAe. Der Schreibfreigabeanschluss WE wird durch die Steuerschaltung 10 aktiviert. Gleichermaßen werden die Anschlüsse VAi und VAe durch die Steuerschaltung 10 aktiviert. Der Cache-Datenspeicher 12 speichert Daten, die oft gelesen werden. Der Cache-Datenspeicher 12 hat einen Adressenanschluss A, einen I/O-Anschluss D und einen Schreibfreigabeanschluss WE. Der Schreibfreigabeanschluss WE wird durch die Steuerschaltung 10 aktiviert. Die Übereinstimmungs-Bestimmungsschaltung 10 hat einen Freigabeanschluss E. Wenn der Freigabeanschluss E aktiviert wird, erfasst die Übereinstimmungs-Bestimmungsschaltung 13, ob zwei Informationen miteinander übereinstimmen oder nicht. Wenn die zwei Informationen miteinander übereinstimmen, gibt die Übereinstimmungs-Bestimmungsschaltung 13 ein Treffersignal HIT aus.
  • Die Cachespeichervorrichtung 50 weit auch Register 14 und 15, ein externes Register 16, Puffer 17, 18, 20 und 21 mit drei Zuständen, ein UND-Gatter 19 und einen IA-Bus 22 auf. Das Register 14 hat einen Freigabeanschluss E. Wenn der Freigabeanschluss E mit einem Treffersignal HIT aktiviert wird, speichert das Register 14 eine Cacheadresse CA. Das Register 15 hat auch einen Freigabeanschluss E. Wenn der Freigabeanschluss E mit einem Treffersignal HIT aktiviert wird, speichert das Register 15 Cache-Daten CD, die über einen ID-Bus 23 empfangen werden. Das externe Register 16 hat einen Zählfreigabeanschluss CE. Wenn der Zählfrei gabeanschluss CE durch die Steuerschaltung 10 aktiviert wird, speichert das externe Register 16 eine Adresse EA. Die Puffer 17, 18, 20 und 21 mit drei Zuständen werden durch die Steuerschaltung 10 gesteuert.
  • Adressenanschlüsse A des Cache-Tagspeichers 11 und des Cache-Datenspeichers 12 sind an die Ausgangsseite des Registers 14, das eine Cacheadresse CA speichert, über den Puffer 17 mit drei Zuständen und den IA-Bus 22 angeschlossen. Das Register 14 gibt die Anzahl von Bits a einer Cacheadresse CA zum IA-Bus 22 aus. Log2 (die Anzahl von Tags bzw. Kennungen) = b der Anzahl von Bits a wird zu dem Adressenanschluss A des Cache-Tagspeichers 11 zugeführt. Der Teil niedriger Ordnung (b + 1) {wobei 1 = Log2 (die Anzahl von Leitungen)} der Cacheadresse CA wird zum Adressenanschluss A des Cache-Datenspeichers 12 zugeführt. Der Teil hoher Ordnung (a – b – 1) der Cacheadresse CA wird zur Übereinstimmungs-Bestimmungsschaltung 13 zugeführt. Der Teil hoher Ordnung (a – b – 1) der Cacheadresse CA wird zu sowohl dem I/O-Anschluss D des Cache-Tagspeichers 11 als auch der Übereinstimmungs-Bestimmungsschaltung 13 zugeführt. Der Anschluss VAo des Cache-Tagspeichers 11 ist über das UND-Gatter 19 an den Freigabeanschluss E der Übereinstimmungs-Bestimmungsschaltung 13 angeschlossen, die durch die Steuerschaltung 10 gesteuert wird.
  • Der I/O-Anschluss D des Cache-Datenspeichers 12 ist an den ID-Bus 23 angeschlossen. Der ID-Bus 23 ist an die Eingangsseite des Registers 15 angeschlossen. Das externe Register 16 ist an die Ausgangsseite des Registers 14 angeschlossen. Der Zählerfreigabeanschluss CE der Steuerschaltung 10 wird durch die Steuerschaltung 10 aktiviert. Wenn der Anschluss CE aktiviert wird, speichert das externe Register 16 die Anzahl von Bits a (= Adresse EA) der vom Register 14 zugeführten Cacheadresse CA. Die Ausgangsseite des externen Registers 16 ist an sowohl den IA-Bus 22 über den Puffer 20 mit drei Zuständen als auch an einen Adressenanschluss 30 des externen Speichers 30, der aus einem RAM großer Kapazität und niedriger Geschwindigkeit oder ähnlichem aufgebaut ist, angeschlossen. Der externe Speicher 30 hat auch einen Datenausgabeanschluss D, einen Anschluss D-WAIT bzw. D-WARTEN und so weiter, so wie den Adressenanschluss A. Der Anschluss D-WAIT gibt ein Signal aus, das veranlasst, dass die Cachespeichervorrichtung 50 in einen Wartezustand gelangt. Der Datenausgabeanschluss D ist über den Puffer 21 mit drei Zuständen an den ID-Bus 23 angeschlossen. Der Anschluss D-WAIT ist an die Eingangsseite der Steuerschaltung 10 angeschlossen.
  • 3 ist ein schematisches Diagramm zum Erklären von im Cache-Tagspeicher 11 gespeicherten Daten. Der Cache-Tagspeicher 11 ist aus Adressen (Tags bzw. Kennungen), gültigen Bits und so weiter aufgebaut. Die Adressen (Tags) sind derart gruppiert, dass der Hardwareaufwand reduziert wird. Die Anzahl von Gruppen wird die Anzahl von Zeilennummern (oder die Anzahl von Blöcken) genannt. Die benachbarten Adressen sind normalerweise gruppiert. In 3 hat eine Gruppe vier Daten. Beispielsweise sind Daten mit denselben Bits außer den zwei Bits niedriger Ordnung als eine Gruppe definiert.
  • Als nächstes wird der Betrieb der in 2 gezeigten Cachespeichervorrichtung 50 beschrieben werden.
  • Wenn der Cache-Requester 1 eine Cacheadresse CA zur Cachespeichervorrichtung 50 zuführt, wird die Cacheadresse CA temporär im Register 14 gespeichert. Darauf folgend wird die Cacheadresse CA gelesen und dann wird bestimmt, ob Daten entsprechend der Cacheadresse CA im Cachespeicher 12 gespeichert sind oder nicht (nämlich ob ein Treffer stattfindet oder nicht). Anders ausgedrückt bestimmt die Übereinstimmungs-Bestimmungsschaltung 13, ob die Cacheadresse CA, die vom Register 14 über den Puffer 17 mit drei zuständen zum IA-Bus 22 ausgegeben worden ist, mit dem Inhalt des Cache-Tagspeichers 11 übereinstimmt. Wenn sie miteinander übereinstimmen (hierin nachfolgend wird dieser Zustand Treffer genannt), gibt die Übereinstimmungs-Bestimmungsschaltung 13 ein Treffersignal HIT zur Steuerschaltung 10 und zu den Freigabeanschlüssen E der Register 14 und 15 aus. Wenn das Treffersignal HIT zur Steuerschaltung 10 eingegeben wird, aktiviert ein Ausgangssignal der Steuerschaltung 10 die Schreibfreigabeanschlüsse WE des Cache-Tagspeichers 11 und des Cache-Datenspeichers 12. Somit werden Daten, die mit dem Teil niedriger Ordnung (b + 1) der Cacheadresse CA bestimmt sind, vom Cache-Datenspeicher 12 zum ID-Bus 23 zugeführt. Die zum ID-Bus 23 zugeführten Daten sind Cachedaten CD und werden über das Register 15 zum Cache-Requester 1 ausgegeben.
  • Wenn andererseits die Daten entsprechend der durch den Cache-Requester 1 angeforderten Cacheadresse CA sind (dieser Zustand wird hierin nachfolgend Nichttreffer genannt), führt das Cacheregister 16, das durch das Ausgangssignal der Steuerschaltung 10 aktiviert wird, die Anzahl von Bits a (EA) der Cacheadresse CA zum Adressenanschluss A des Speichers 30 zu. Somit werden Aufzeichnungsdaten entsprechend der Anzahl von Bits a vom Ausgangsanschluss D des Speichers 30 zugeführt. Die Lesedaten werden über den Puffer 21 mit drei Zuständen zum Cache-Datenspeicher 12 zugeführt. Somit wird der Inhalt des Cache-Datenspeichers 12 aktualisiert bzw. einem Updaten unterzogen. Darauf folgend sind die Lesedaten Cachedaten CD und werden über den ID-Bus 23 und das Register 15 zum Cache-Requester 1 zugeführt. In diesem Fall sind die Lesedaten Cachedaten CD.
  • Somit werden dann, wenn ein Nichttreffer stattfindet, Daten für eine Zeile, die eine Adresse enthält, wo der Nichttreffer stattfand, aus dem externen Speicher 30 gelesen. Folglich wird der Inhalt des Cache-Datenspeichers 12 aktualisiert. Es gibt zwei Verfahren zum Aktualisieren bzw. Updaten des Inhalts des Cache-Datenspeichers 12 entsprechend dem Auftreten eines Nichttreffers und zum Zuführen von realen Cachedaten CD zum Cache-Requester 1.
  • Erstes Verfahren
  • 4 ist ein Zeitdiagramm, dass den Betrieb der in 2 gezeigten Cachespeichervorrichtung 50 zeigt. In der Zeichnung stellen m, n + 1, ... Adressen dar. Eine Zeit für einen Mehraufwand für einen Nichttreffer ist eine Zeitperiode, für welche Cachedaten gültig werden, nachdem ein Nichttreffer stattfand.
  • In 4 gilt n + 1 = "x ... x01" (in binärer Notation). Wie es in 3 gezeigt ist, hat eine Zeile vier Adressen. Auf den externen Speicher kann in zwei Zyklen zugegriffen werden. Ein Tag bzw. eine Kennung enthält ein gültiges Bit. In jeder von vier Schreiboperationen werden Tagdaten (= "x ... x") geschrieben. Jedoch wird in der letzten Schreiboperation eine gültige Information zu dem gültigen Bit geschrieben. Die zwei Bits niedriger Ordnung des externen Registers 16, das in 2 gezeigt ist, arbeiten als ein Zähler. Wann immer ein Nichttreffer stattfindet, wird der Wert der Cacheadresse CA geladen und werden die zwei Bits niedriger Ordnung auf "00" gelöscht.
  • Als das einfachste Verfahren zum Aktualisieren bzw. Updaten des Cache-Datenspeichers 12 nach dem Auftreten eines Nichttreffers und zum Zuführen der realen Cachedaten CD zum Cache-Requester 1 werden, wie es in 4 gezeigt ist, wenn ein Nichttreffer stattfindet, Daten von einer vorbestimmten Adresse von einer Zeile gelesen, die sie enthält. Wenn beispielsweise, wie es in 4 gezeigt ist, eine Zeile vier Adressen hat, werden Daten in der Reihenfolge von "xx ... x00", "x ... x01", "x ... x10" und "x ... x11" gelesen. Während die Daten gelesen werden, wird der Cache-Datenspeicher 12 zum Updaten der Daten verwendet. Somit werden die Cachedaten CD selbst dann, wen sie gelesen werden, nicht gültig.
  • Zweites Verfahren
  • Durch ein Speicherverschachtelungsverfahren oder ein Zugriffsverfahren, das die Charakteristiken eines dynamischen RAM (der hierin nachfolgend DRAM genannt wird) mit beispielsweise einem Seitenmode oder einer statischen Spalte, kann eine Burstübertragung unterstützt werden, um die Zeit für einen Mehraufwand für einen Nichttreffer zu verkürzen. 5 zeigt einen Aufbau des zweiten Verfahrens.
  • 6 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung 51 gemäß dem zweiten Verfahren zeigt. Die mit 2 gemeinsamen Teile des Aufbaus sind mit denselben Bezugszeichen bezeichnet.
  • Die Cachespeichervorrichtung 51 verwendet einen DRAM-Seitenmode. Der Unterschied zwischen der in 6 gezeigten Cachespeichervorrichtung und derjenigen, die in 2 gezeigt ist, besteht darin, dass eine Zählerausgabe des externen Registers 16 durch einen Addierer 35 inkrementiert wird. Die Ausgabe des Addierers 35 wird zu einem Selektor 36 zugeführt. Die Ausgabe des Selektors 36 wird zum Zähler zugeführt. In 5 stellt ein Bezugszeichen 40 eine angeschlossene Leitung dar.
  • Eine durch einen Cache-Requester 1 angeforderte Cacheadresse CA ist aus einem Tag bzw. einer Kennung TAG, einer Zeilenadresse LA und einer Innenzeilenadresse IA aufgebaut, die in der Reihenfolge zum signifikantesten Bit (MSB) zum am wenigsten signifikanten Bit (LSB) des Registers 14 gespeichert sind. Eine der Ausgaben der Innenzeilenadresse 1A und des Addierers 35 wird durch den Selektor 36 ausgewählt. Die Ausgabe des Selektors 36 wird zu einem Zähler eines externen Registers 16 zugeführt. Der externe Speicher 30 ist aus einem DRAM aufgebaut. Zum Betreiben des DRAM im Seitenmode werden ein niedriges Adressenabtastsignal {das hierin nachfolgend RASN (N stellt eine negative Logik dar) genannt wird}, ein Spaltenadressenabtastsignal (das hierin nachfolgend CASN ge nannt wird) und ein Speichersteuersignal S10, das ein Wartesignalverhältnis darstellt, zwischen dem externen Speicher 30 und der Steuerschaltung 10 ausgetauscht.
  • Im DRAM-Seitenmode werden, während RASN auf dem L-Pegel ist, CASN-Pulse aufeinander folgend zugeführt, um Lese-/Schreib-Operationen mit hoher Geschwindigkeit durchzuführen. In diesem Mode wird, während RASN auf dem "L"-Pegel ist und der Bitleitungspegel auf dem "L"-Pegel oder dem "H"-Pegel gehalten wird, die CAS-Operation wiederholt durchgeführt, um Daten zu einer erwünschten Bitleitung zu schreiben oder von dieser zu lesen.
  • 6 ist ein Zeitdiagramm, das den Betrieb der 5 zeigt. In diesem Zeitdiagramm hat eine Leitung bzw. Zeile vier Daten. CK stellt einen Takt dar. n stellt dar, dass die zwei Bits niedriger Ordnung "0" sind.
  • In der in 5 gezeigten Cachespeichervorrichtung 51 bestimmt die Übereinstimmungs-Bestimmungsschaltung 13 dann, wenn eine erforderliche Cacheadresse CA im Register 14 gespeichert ist, ob ein Tag TAG, das im Register 14 gespeichert ist, mit Daten übereinstimmt oder nicht, die über den Datenausgangsanschluss Do aus dem Cache-Tagspeicher 11 gelesen sind. Wenn diese Daten nicht miteinander übereinstimmen, findet ein Nichttreffer statt. Somit wird das im Register 14 gespeicherte Tag TAG zum externen Register 16 über eine Leitung 40 zugeführt. Die Ausgabe des externen Registers 16 wird zum Adressenanschluss A des externen Speichers 30 zugeführt. Mit dem Speichersignal S10 werden Daten vom Datenanschluss D des externen Speichers 30 mit hoher Geschwindigkeit im Seitenmode gelesen und als Cachedaten CD zum Eingangsanschluss Di des Cache-Datenspeichers 12 zugeführt. Die Cachedaten CD werden vom Ausgangsanschluss Do des Cache-Datenspeichers 12 gelesen. Somit kann eine Zeit für einen Mehraufwand für einen Nichttreffer verkürzt werden.
  • Jedoch haben die oben beschriebenen Cachespeichervorrichtungen 50 und 51 die folgenden Nachteile.
  • Bei den Cachespeichervorrichtungen 50 und 51 ist, wie es in 2 gezeigt ist, wenn ein Nichttreffer auftritt, da es eine lange Zeit dauert, die Nichttrefferdaten zum Cache-Datenspeicher 12 zu schreiben, eine Zeit für einen Mehraufwand für einen Nichttreffer, für welche Daten gelesen werden, lang.
  • Bei der in 5 gezeigten Cachespeichervorrichtung 51 sind deshalb, weil die Bearbeitungszeit des DRAM, der den externen Speicher 30 und so weiter bildet, kürzer als die Burstübertragungsrate ist, um die Nichttrefferdaten zu lesen, mehrere Taktperioden erforderlich. Zuerst folgen einem Nichttrefferdatum vier Daten, wie es in 6 gezeigt ist.
  • Bei der Cachespeichervorrichtung 51 tritt selbst dann, wenn die nächste Zeile einer Zeile, die eine Adresse enthält, bei welcher ein Nichttreffer stattfand, erforderlich ist, die Cachespeichervorrichtung 51 aus dem Burstübertragungsmode aus. Somit sollte die Cachespeichervorrichtung 51 warten, bis die ersten Daten der Zeile empfangen werden, nachdem ein weiterer Nichttreffer stattfand. Anders ausgedrückt werden dann, wenn Daten einer Zeile, die einen Nichttreffer enthält, aktualisiert werden, obwohl es geschätzt werden kann, dass ein weiterer Nichttreffer bei Daten der darauf folgenden Adressen stattfinden wird, Daten von nur einer vorbestimmten Zeile aktualisiert. Somit ist die Trefferrate gering. Folglich war es schwierig, Cachespeicher mit technischer Zufriedenheit zu erreichen.
  • In GB-A-2 056 135 ist ein Datenverarbeitungssystem mit einem Cachespeicher vorgesehen. Eine Vorrichtung im Cachespeicher liest die gesamte Information auf dem Systembus in einen First-in-First-out-Puffer mit einer Vielzahl von Registern, einem Schreibadressenzähler, einem Leseadressenzähler und einer Einrichtung zum selektiven Verarbeiten der Information. Der Cachespeicher ist Wortorientiert und weist weiterhin ein Directory, einen Datenpuffer und eine zugehörige Steuerlogik auf. Der Cachespeicher weist weiterhin eine Vergleichsschaltung und ein Register zum Speichern der Adresseneingangsinformation und zum Erzeugen einer Vielzahl von Adresseninformation niedriger Ordnung, die aufeinander folgend höhere Adressen hervorholt, auf.
  • Eine Aufgabe der vorliegenden Erfindung besteht darin, einen Cachespeicher zur Verfügung zu stellen, der eine lange Zeit für einen Mehraufwand für einen Nichttreffer und eine niedrige Trefferrate ohne eine Erhöhung eines Hardwareaufwands hat.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird eine Cachespeichervorrichtung zur Verfügung gestellt, wie sie im Anspruch 1 definiert ist.
  • Gemäß einem weiteren Aspekt wird eine Cachespeichervorrichtung zur Verfügung gestellt, die folgendes aufweist: Einen ersten Cachespeicher zum Speichern Adresseninformation hoher Ordnung einer Adresseninformation entsprechend erwünschter Daten, einen zweiten Cachespeicher zum Speichern einer Vielzahl Adresseninformation niedriger Ordnung und der Adresseninformation hoher Ordnung und einer Vielzahl von Daten entsprechend der Vielzahl von Adresseninformation niedriger Ordnung, eine erste Übereinstimmungs-Bestimmungsschaltung zum Vergleichen Adresseninformation hoher Ordnung der Adresseninformation, die mit der Adresseninformation hoher Ordnung eingegeben wird, die im ersten Cachespeicher gespeichert ist, um zu bestimmen, ob sie miteinander übereinstimmen oder nicht, ein Register zum Speichern einer Vielzahl von Eingangsadresseninformationen und zum Erzeugen einer Vielzahl von Adresseninformationen, die in der Adresseninformation hoher Ordnung der Eingangsadresseninformation enthalten sind, nur dann, wenn die erste Erfassungsschaltung einen Zustand keiner Übereinstimmung bestimmt hat, eine Steuerschaltung zum Lesen von Daten entsprechend der Eingangsadresseninformation aus dem zweiten Cachespeicher, wenn die erste Übereinstimmungs-Bestimmungsschaltung einen Übereinstimmungszustand bestimmt hat, zum Schreiben der Adresseninformation hoher Ordnung der Adresseninformation entsprechend der Vielzahl von Adresseninformationen, die in der Adresseninformation hoher Ordnung der Adresseninformation enthalten sind, die durch das Register erzeugt ist, zum ersten Cachespeicher, wenn die erste Übereinstimmungs-Bestimmungsschaltung einen Zustand keiner Übereinstimmung bestimmt hat, und zum Schreiben der Adresseninformation niedriger Ordnung der Adresseninformation und der Vielzahl von Daten entsprechend der Adresseninformation, die in einem externen Speicher gespeichert ist, zum zweiten Cachespeicher, eine zweite Übereinstimmungs-Bestimmungsschaltung zum Bestimmen, ob die durch das Register erzeugte Adresseninformation mit der Eingangsadresseninformation übereinstimmt oder nicht, und eine Ausgabeschaltung zum Ausgeben von Daten entsprechend der von dem zweiten Cachespeicher zugeführten Eingangsadresseninformation, wenn die erste Übereinstimmungs-Bestimmungsschaltung einen Übereinstimmungszustand bestimmt hat, zum Ausgeben von Daten entsprechend der von dem externen Speicher zugeführten Eingangsadresseninformation, wenn die zweite Übereinstimmungs-Bestimmungsschaltung einen Übereinstimmungszustand bestimmt hat, und zum Ausgeben keiner Daten entsprechen der Eingangsadresseninformation, wenn sowohl die erste als auch die zweite Übereinstimmungs-Bestimmungsschaltung einen Zustand keiner Übereinstimmung bestimmt haben.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem ersten Ausführungsbeispiel zeigt;
  • 2 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einer ersten zugehörigen Referenz nach dem Stand der Technik zeigt;
  • 3 ist ein schematisches Diagramm zum Erklären des in einem Cache-Tagspeicher gespeicherten Inhalts;
  • 4 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 2 zeigt.
  • 5 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einer zweiten zugehörigen Referenz nach dem Stand der Technik zeigt;
  • 6 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 5 zeigt;
  • 7 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 1 zeigt:
  • 8 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem zweiten Ausführungsbeispiel zeigt;
  • 9 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 8 zeigt;
  • 10 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem dritten Ausführungsbeispiel zeigt;
  • 11 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 10 zeigt;
  • 12 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem vierten Ausführungsbeispiel zeigt;
  • 13 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 12 zeigt;
  • 14 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem fünften Ausführungsbeispiel zeigt;
  • 15 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 14 zeigt;
  • 16 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem sechsten Ausführungsbeispiel zeigt; und
  • 17 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung der 16 zeigt.
  • Beste Arten zum Erreichen der Erfindung
  • 1 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem ersten Ausführungsbeispiel zeigt, das nützlich zum Verstehen der Erfindung ist.
  • In 1 ist ein Bezugszeichen 100 eine Cachespeichervorrichtung gemäß dem ersten Ausführungsbeispiel. Der Unterschied zwischen der in 1 gezeigten Cachespeichervorrichtung 100 und der in 2 gezeigten Cachespeichervorrichtung 50 besteht darin, dass die erstere eine Übereinstimmungs-Bestimmungsschaltung 150 und ein ODER-Gatter 151 enthält. Wann immer ein Cache-Datenspeicher aufgrund des Auftretens eines Nichttreffers aktualisiert wird, wird ein Freigabeanschluss E der Übereinstimmungs-Bestimmungsschaltung 150 durch ein Ausgangssignal einer Steuerschaltung 110 aktiviert. Somit arbeitet die Übereinstimmungs-Bestimmungsschaltung 150. Die Übereinstimmungs-Bestimmungsschaltung 150 bestimmt, ob die Anzahl von Bits a einer von einem Register 114 empfangenen Cacheadresse CA mit Adressen von Daten über einstimmt oder nicht, die von einem externen Speicher 130 zu einem Cachespeicher 112 geschrieben sind. Das ODER-Gatter 151 führt eine ODER-Verknüpfung der Ausgabe der Übereinstimmungs-Bestimmungsschaltung 150 und eines Tag-Treffersignals TAG.HIT, das von der Übereinstimmungs-Bestimmungsschaltung 113 empfangen ist, durch. Wenn sie miteinander übereinstimmen, wird ein Freigabeanschluss E eines Registers 115 aktiviert.
  • Wenn eine Steuerschaltung 110 das Tag-Treffersignal TAG.HIT von der Übereinstimmungs-Bestimmungsschaltung 113 empfängt, gibt die Steuerschaltung 110 ein Cache-Aktualisierungssignal bzw. Cache-Updatesignal S10a aus, um Puffer 120 und 121 mit drei Zuständen einzuschalten und von einem Datenausgangsanschluss D des externen Speichers 130 gelesene Daten zu einem ID-Bus 123 auszugeben. Die gelesenen Daten, die zum ED-Bus 123 ausgegeben werden, werden zum Register 115 zugeführt, das durch das ODER-Gatter 151 freigegeben wird. Die Ausgabe des Registers 115 sind Cachedaten und wird zu dem Cache-Requester 1 zugeführt. Anders ausgedrückt werden dann, wenn der Cachespeicher aufgrund des Auftretens eines Nichttreffers aktualisiert wird, wenn die Übereinstimmungs-Bestimmungsschaltung 150 bestimmt hat, dass zwei Daten miteinander übereinstimmen, Daten, die vom externen Speicher 130 gelesen werden, umgangen. Stattdessen werden die Daten als Cachedaten CD zum Cache-Requester 1 zugeführt.
  • Als nächstes wird unter Bezugnahme auf 6 der Betrieb der in 1 gezeigten Cachespeichervorrichtung 100 beschrieben werden.
  • 6 ist ein Zeitdiagramm, das den Betrieb der in 1 gezeigten Cachespeichervorrichtung 200 zeigt. In 6 wird angenommen, dass n + 1 = "x ... x01" gilt und dass n + 4 = "Y ...Y00" gilt. Zusätzlich wird angenommen, dass eine Zeile vier Adressen hat. Der externe Speicher 130 kann anfangs aufeinander folgende Adressen mit einem Wartezyklus durch eine Burstübertragung lesen. Wenn die letzte Schreiboperation durchgeführt wird, wird "1" zu einem gültigen Bit geschrie ben. Die zwei Bits niedriger Ordnung des externen Registers 116 sind ein Zähler, der dann arbeitet, wenn ein Zählfreigabeanschluss CE aktiviert wird.
  • In 1 wird dann, wenn der Cache-Requester 101 eine Cacheadresse CA von erwünschten Daten zur Cachespeichervorrichtung 100 zuführt, die Cacheadresse CA zum Register 114 geschrieben. Solange der Cache-Datenspeicher 112 nicht aktualisiert wird, wird der Puffer 117 mit drei Zuständen mit einem Cache-Aktualisierungssignal S10a eingeschaltet, das von der Steuerschaltung 110 zugeführt wird. Somit wird die in Register 114 gespeicherte Cacheadresse CA zu einem IA-Bus 122 zugeführt. Der Cache-Datenspeicher 112 empfängt Adressen eines vorbestimmten Tags und einer Leitung bzw. Zeile vom IA-Bus 122 (beispielsweise einen Teil niedriger Ordnung (b + 1) über den Adressenanschluss A). Gespeicherte Daten entsprechen der Adresse werden über den I/O-Anschluss D zum ID-Bus zugeführt.
  • Zusätzlich werden, um zu bestimmen, ob in dem Cache-Datenspeicher 112 gespeicherte Daten der angeforderten Cacheadresse CA entsprechen oder nicht, die im Cache-Tagspeicher 111 gespeicherten Daten entsprechen der vorbestimmten Tagadresse Log2 (die Anzahl von Tags) = b von dem I/O-Anschluss D gelesen. Die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt, ob die gelesenen Daten mit dem vorbestimmten Tag übereinstimmen oder nicht. Wenn der Cache-Datenspeicher 112 im Lesezustand ist (das heißt nicht im Cache-Aktualisierungszustand) und der Inhalt des Cache-Tagspeichers 111, der durch den Anschluss VAo des Cache-Datenspeichers 111 dargestellt ist, gültig ist, ist das Ergebnis der Bestimmung durch die Übereinstimmungs-Bestimmungsschaltung 113, die durch das UND-Gatter 124 freigegeben ist, gültig. Somit führt die Übereinstimmungs-Bestimmungsschaltung 113 ein Tag-Treffersignal TAG.HIT zur Steuerschaltung 110 zu.
  • An dieser Stelle wird dann, wenn die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt hat, dass beide Daten einander übereinstimmen, ein Treffersignal HIT, das von dem ODER-Gatter 151 des Tag-Treffersignals TAG.HIT ausgegeben wird, zu dem Cache-Requester 1 zugeführt, um ihn darüber zu informieren, dass der Inhalt des ID-Busses 123 gültig ist. Das Treffersignal HIT lässt zu, dass zum Register 115 geschrieben wird. Zusätzlich lässt das Treffersignal HIT zu, dass Daten zum Register 114 geschrieben werden, um eine nächste Cacheadresse vom Cache-Requester 1 zu empfangen. Andererseits findet dann, wenn das Tag- Treffersignal TAG.HIT, das von der Übereinstimmungs-Bestimmungsschaltung 113 ausgegeben wird, darstellt, dass beide Daten nicht miteinander übereinstimmen, ein Nichttreffer statt. In diesem Fall wird beim nächsten Zyklus der Cache-Datenspeicher 112 aktualisiert.
  • Wenn der Cache-Datenspeicher 114 im Aktualisierungszustand ist, gibt die Steuerschaltung 110 ein Cache-Aktualisierungssignal SIOa zu den Puffern 120 und 121 mit drei Zuständen aus, so dass sie eingeschaltet werden. Somit können Daten von dem externen Speicher 112 empfangen werden. Zusätzlich aktiviert die Steuerschaltung 110 den Zähl-Freigabeanschluss CE des externen Registers 116, das eine Adressenzufuhrquelle zum IA-Bus 122 ist, um die Lesedaten-Zufuhrquelle des ID-Busses 123 zum externen Speicher 130 zu ändern. Wann immer ein Nichttreffer stattfindet, wird der Inhalt des externen Registers 116 immer aktualisiert.
  • An dieser Stelle gelangt der Signalpegel eines Anschlusses D-WARTEN des externen Speichers 130, was darstellt, dass die externen Lesedaten in einer gültigen Zeitgabe sind, zu einem "L"-Pegel. Zusätzlich ist der Signalpegel des Cache-Aktualisierungssignals SIOa, das von der Steuerschaltung 110 ausgegeben wird, auf einem "H"-Pegel. Somit aktiviert die Steuerschaltung 110 Schreibfreigabeanschlüsse WE des Cache-Tagspeichers 111 und des Cache-Datenspeichers 112 in vorbestimmten Intervallen. Da die zwei Bits niedriger Ordnung des externen Registers 116 als Zähler wirken, wird dann, wenn die Schreibfreigabeanschlüsse WE des Cache-Tagspeichers 111 und des Cache-Datenspeichers 112 aktiviert werden, ein Zähl-Freigabeanschluss CE des externen Registers 116 aktiviert, um dadurch den Zähler aufwärts zu zählen.
  • Diese Operation wird n Mal (beispielsweise vier Mal) wiederholt. Somit werden alle Daten von Leitungsadressen bzw. Zeilenadressen, wo ein Nichttreffer stattfindet, aktualisiert. Daten werden von dem Datenausgangsanschluss D des externen Speichers 130 gelesen. Die gelesenen Daten werden zu einem I/O-Anschluss D des Cache-Datenspeichers 112 über den Puffer 121 mit drei Zuständen zugeführt. Somit wird der Cache-Datenspeicher 112 aktualisiert. Die Steuerschaltung 110 gibt ein Signal aus, das darstellt, dass nur die vierte Operation gültig ist, und führt dieses Signal zu einem Anschluss VAi des Cache-Tagspeichers 111 zu. Die Cache-Aktualisierungsoperation bei diesem Ausführungsbeispiel ist dieselbe wie diejenige der Cachespeichervorrichtung 50 gemäß der ersten zugehörigen Referenz nach dem Stand der Technik, die in 2 gezeigt ist.
  • Bei diesem Ausführungsbeispiel werden zusätzlich zu der unbeschriebenen Cache-Aktualisierungsoperation bzw. Updateoperation, während welcher Cachedaten aktualisiert werden, dann, wenn zum Cache-Datenspeicher 112 zu schreibende Schreibdaten durch den Cache-Requester 1 angefordert werden, die Schreibdaten zum Cache-Requester 1 umgeleitet. Anders ausgedrückt veranlasst, während Cachedaten aktualisiert werden, die Ausgabe der Steuerschaltung 110, dass die Übereinstimmungs-Bestimmungsschaltung 150 freigegeben wird. Die Übereinstimmungs-Bestimmungsschaltung 150 bestimmt, ob der Inhalt des Registers 114 mit dem Inhalt des externen Registers 116 übereinstimmt oder nicht. Die Ausgabe der Übereinstimmungs-Bestimmungsschaltung 150 und das Tag-Treffersignal TAG.HIT, das von der Übereinstimmungs-Bestimmungsschaltung 150 zugeführt wird, werden zu dem ODER-Gatter 151 zugeführt. Die Ausgabe des ODER-Gatters 151 ist ein Treffersignal HIT. Das Treffersignal HIT wird zu dem Cache-Requester 1 zugeführt. Zusätzlich wird das Register 115 freigegeben. Somit werden aus dem externen Speicher 130 zum ID-Bus 123 gelesene Daten zum Cache-Requester 1 zugeführt.
  • Diese Operation wird unter Bezugnahme auf 7 beschrieben. Wenn ein Nichttreffer bei n + 1 einer Cacheadresse CA bei einer Taktperiode 2 stattfindet, aktualisiert die Cachespeichervorrichtung 100 den Cache-Tagspeicher 111 und den Cache-Datenspeicher 112. An dieser Stelle wird das Signal TAG.HIT ein "L"-Zustand, der darstellt, dass die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt hat, dass die im Register 114 gespeicherten Daten nicht mit den im Cache-Datenspeicher 112 gespeicherten Daten übereinstimmen. Bei einer Taktperiode 3 gibt die Steuerschaltung 110 die Übereinstimmungs-Bestimmungsschaltung 150 und das externe Register 116 entsprechend dem Signalzustand von TAG.HIT frei. Zusätzlich veranlasst die Steuerschaltung 150, dass der Cache-Tagspeicher 111 und der Cache-Datenspeicher 112 einen Freigabezustand schreiben. Die Cacheadresse CA ("x ... x01") wird direkt in das externe Register 116 zugeführt. Adressendaten 9EA werden zu der Übereinstimmungs-Bestimmungsschaltung 150 entsprechend der Cacheadresse CA und der zum externen Register 116 zugeführten Cacheadresse eingegeben. An dieser Stelle arbeiten die zwei Bits niedriger Ordnung des externen Registers 116 als ein Zähler. Zusätzlich zählt der Zähler dann, wann immer eine Zeile zu den Cachespeichern 111 und 112 geschrieben wird, um 1 aufwärts. Somit sind die Adressendaten EA bei einer Taktperiode 4 "x ... x01 ". Bei Taktperioden 5, 6 und 7 sind die Adressendaten EA jeweils "x ... x10", "x ... x11" und "x ... x00". Somit bestimmt die Übereinstimmungs-Bestimmungsschaltung 150 bei der Taktperiode 4, dass die Cacheadresse CA mit den Adressendaten EA übereinstimmt. Folglich gibt die Übereinstimmungs-Bestimmungsschaltung 150 die Register 114 und 115 frei. Der externe Speicher 130 gibt Daten entsprechend den Adressendaten EA "x ... x01", die durch den externen Speicher 116 erzeugt sind, aus. Die Ausgabe des externen Speichers 130 sind Cachedaten CD und werden über das Register 115 zum Cache-Requester 101 zugeführ. Zusätzlich werden die Cache-Daten CD zum Cache-Datenspeicher 112 geschrieben. Da das Register 114 freigegeben ist, führt der Cache-Requester 101 n + 2 ("x ... x10") als die nächste Cacheadresse CA zum Register 114 zu. Bei einer Taktperiode 5 aktualisiert die Cachespeichervorrichtung 100 Cachedaten der Zeile einschließlich n + 1. Anders ausgedrückt aktualisiert die Cachespeichervorrichtung 100 Daten entsprechend den Adressendaten "x ... x10", die durch das externe Register 116 erzeugt werden, und schreibt sie zum Cache-Datenspeicher 112. Da das Register 114 n + 2 gespeichert hat und der Cache-Tagspeicher 111 das Tag "x ... x" nicht gespeichert hat, bestimmt die Übereinstimmungs-Bestimmungsschaltung 113 nicht, dass sie miteinander übereinstimmen. Jedoch deshalb, weil die Übereinstimmungs-Bestimmungsschaltung 150 und das externe Register 116 in einem Freigabezustand gehalten sind, wird n + 2 der Cacheadresse CA zur Übereinstimmungs-Bestimmungsschaltung 150 zugeführt. An dieser Stelle bestimmt die Übereinstimmungs-Bestimmungsschaltung 150 deshalb, weil sie dieselben Adressendaten wie n + 2 von der anderen Eingabe empfangen hat, dass zwei Daten miteinander übereinstimmen, um dadurch zu veranlassen, dass die Register 114 und 115 im Freigabezustand gehalten werden. Die Daten entsprechend n + 2 der durch den Cache-Requester 101 angeforderten Cacheadresse CA werden zu sowohl dem Cache-Datenspeicher 112 als auch dem Cache-Requester 101 über das Register 115 zugeführt. Da das Register 114 in einem Freigabezustand ist, führt der Cache-Requester 1 n + 3 ("x ... x11") als die nächsten Cachedaten CA zu. Da n + 3 Adressendaten sind, denen n + 2 vorangeht, wird bei einer Taktperiode 6 dieselbe Operation wie diejenige bei der Taktperiode 5 durchgeführt. Jedoch wird bei einer Taktperiode 7 n + 4 (Y ... Y00'") der Cacheadresse CA eingegeben. n + 4 stimmt mit dem im Cache-Tagspeicher 111 gespeicherten Tag überein. Jedoch stimmt n + 4 nicht mit den Adressendaten "x ... x00" überein, für welche die vierte Schreiboperation durchgeführt wird. Somit werden die Freigabezustände der Register 114 und 115 gelöscht. An dieser Stelle wird "x ... X00" als die Adressendaten EA zum externen Speicher 130 zugeführt. Zusätzlich sind Daten entsprechen den Adressendaten "X ... X00" zum Cache-Datenspeicher 112 und zum Register 115 zugeführt worden, und werden Daten entsprechend "x ... x00" als die Cachedaten CD über das Register 115 zum Cache-Requester 101 zugeführt. Bei der Taktperiode 7 wird "x ... x" zum Cache-Tagspeicher 111 geschrieben. Bei einer Taktperiode 8 wird dieselbe Operation wie diejenige bei der Taktperiode 2 durchgeführt. Wenn zwei Tags nicht miteinander übereinstimmen, wird bei einer Taktperiode 9 oder später die oben beschriebene Aktualisierungsoperation durchgeführt.
  • Zweites Ausführungsbeispiel
  • 8 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem zweiten Ausführungsbeispiel zeigt, das nützlich zum Verstehen der Erfindung ist. In 8 ist ein Bezugszeichen 200 die Cachespeichervorrichtung. Die Cachespeichervorrichtung 200 gemäß dem zweiten Ausführungsbeispiel unterscheidet sich von der Cachespeichervorrichtung 100 gemäß dem ersten Ausführungsbeispiel darin, dass eine Cachedaten-Aktualisierungsoperation entsprechend einer durch einen Cache-Requester 1 ausgegebenen Warteanforderung kurzzeitig unterbrochen werden kann. Ungleich der Cachespeichervorrichtung 100 gemäß dem ersten Ausführungsbeispiel enthält die Cachespeichervorrichtung 200 drei UND-Gatter 201, 202 und 203. Das UND-Gatter 201 führt eine UND-Verknüpfung eines Signals, das einen Warteanforderungszustand darstellt, der durch den Cache-Requester 1 ausgegeben ist, und eines Ausgangssignals der Steuerschaltung 110 durch und gibt Schreibfreigabeanschlüsse WE eines Cache-Tagspeichers 111 und eines Cache-Datenspeichers 112 aus. Anders ausgedrückt aktiviert das UND-Gatter 201 dann, wenn der Cache-Requester 1 keine Warteanforderung ausgegeben hat und Schreibanforderungen zu dem Cache-Tagspeicher 111 und dem Cache-Datenspeicher 112 ausgegeben werden, die Schreibfreigabeanschlüsse WE des Cache-Tagspeichers 111 und des Cache-Datenspeichers 112. Andererseits führt das UND-Gatter 202 eine UND-Verknüpfung des Signals, das den durch den Cache-Requester 1 ausgegebenen Warteanforderungszustand darstellt, und des Ausgangssignals der Steuerschaltung 110 und gibt das resultierende Signal zu einem Zähl-Freigabeanschluss CE eines externen Registers 116 ein. Anders ausgedrückt aktiviert das UND-Gatter 201 dann, wenn der Cache-Requester 1 keine Warteanforderung ausgegeben hat und eine Anforderung zum Inkrementieren der Zahl des externen Registers 116 um 1 ausgegeben ist, den Zähl-Freigabeanschluss CE des externen Registers 116. Das UND-Gatter 203 führt eine UND-Verknüpfung des Signals, das die durch den Cache-Requester 1 ausgegebenen Warteanforderung darstellt, und eines Ausgangssignals eines ODER-Gatters 151 (nämlich eines Signals, das einen TREFFER-Zustand von Cachedaten darstellt) durch und gibt das resultierende Signal zu Freigabeanschlüssen E der Register 114 und 115 ein. Anders ausgedrückt aktiviert das UND-Gatter 203 dann, wen der Cache-Requester 1 keine Warteanforderung ausgegeben hat und eine Cacheadresse CA mit einem im Cache-Tagspeicher 111 gespeicherten Tag übereinstimmt oder die Cacheadresse CA mit im externen Register 116 gespeicherten Daten übereinstimmt, die Freigabeanschlüsse E der Register 114 und 115. Wenn der Cache-Requester 1 eine Warteanforderung ausgibt, wird ein Schreiben von Daten zu dem Cache-Tagspeicher 111 und dem Cache-Datenspeicher 112, ein Ausgeben einer Datenadresse zum externen Register 116 entsprechend einer Leseanforderung durch das externe Register 116 und eine Speicherung der Cachedaten CD im Register 115 verhindert. Somit wird die gesamte Aktualisierungsoperation von Cachedaten in der Cachespeichervorrichtung 200 kurzzeitig unterbrochen (im Wartezustand).
  • Als nächstes wird unter Bezugnahme auf 9 der Betrieb der in 8 gezeigten Cachespeichervorrichtung 200 beschrieben werden. 9 ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung 200 der 8 zeigt.
  • In 9 sind in Taktperioden 2 bis 4, in welchen der Cache-Requester 1 eine Warteanforderung ausgegeben hat, die Register 114 und 115 nicht aktiviert. In diesen Perioden speichern die Register 114 und 115 Cacheadressen CA = n + 1 bzw. Cachedaten DC = m. Zusätzlich speichert das externe Register 116 n + 1. Da die Signalpegel der Schreibfreigabeanschlüsse WE des Cache-Tagspeichers 111 und des Cache-Datenspeichers 112 auf dem "L"-Pegel sind, sind sie nicht aktiviert.
  • Drittes Ausführungsbeispiel
  • 10 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem dritten Ausführungsbeispiel zeigt, das nützlich zum Verstehen der Erfindung ist. In 10 ist ein Bezugszeichen 300 eine Cachespeichervorrichtung gemäß dem dritten Ausführungsbeispiel. Der Unterschied zwischen der Cachespeichervorrichtung gemäß dem dritten Ausführungsbeispiel und der Cachespeichervorrichtung 100 gemäß dem ersten Ausführungsbeispiel besteht darin, dass, obwohl Cachedaten entsprechend einer durch einen Cache-Requester 1 ausgegebenen Warteanforderung aktualisiert werden, auf in einem Wartezustand aktualisierte Daten auf einfache Weise zugegriffen werden kann. Die Cachespeichervorrichtung 300 weist eine Vielzahl von Puffern 301, eine Vielzahl von Übereinstimmungs-Bestimmungsschaltungen 301, eine Vielzahl von Puffern 304 mit drei Zuständen, einen Puffer 321 mit drei Zuständen, ein UND-Gatter 303 und ODER-Gatter 305 und 306 auf. Die Übereinstimmungs-Bestimmungsschaltungen 302 entsprechen den Puffern 301. Die Puffer 304 mit drei Zuständen entsprechen den Puffern 301. Die Register 301 speichern jeweils eine Gruppe aus einer Adresse und aus Daten, die von einem externen Speicher 130 gelesen sind, und ein gül tiges Flag, das ein von einer Steuerschaltung 110 ausgegebenes Signal ist. Ein Ausgangssignal der Steuerschaltung 110 wird zu einem Freigabeanschluss E des Puffers 301 eingegeben. Somit wird der Puffer 301 aktiviert. Bei diesem Ausführungsbeispiel sind drei Puffer 301 (Puffer 301-1, 301-2 und 301-3) vorgesehen. Da eine Zeile vier Adressen hat und Cachedaten Zeile für Zeile mit drei Puffern 301 aktualisiert werden, können Daten richtig aktualisiert werden. Jedoch sollte es beachtet werden, dass die Anzahl der Puffer 301 nicht auf 3 beschränkt ist. Die Anzahl der Übereinstimmungs-Bestimmungsschaltungen 302 ist entsprechend den drei Puffern 301 drei. Jede der Übereinstimmungs-Bestimmungsschaltungen 302 wird mit einem Gültigkeitsflagsignal V aktiviert, das vom entsprechenden Puffer 301 empfangen wird. Jede der Übereinstimmungs-Bestimmungsschaltungen 302 bestimmt, ob eine vom Register 114 empfangene Cacheadresse CA mit einer im entsprechenden Puffer 301 gespeicherten Adresse übereinstimmt oder nicht. Das Ausgangssignal der Übereinstimmungs-Bestimmungsschaltung 302 steuert den entsprechenden Puffer 304 mit drei Zuständen. Zusätzlich wird das Ausgangssignal der Übereinstimmungs-Bestimmungsschaltung 302 zum ODER-Gatter 305 zugeführt. Das ODER-Gatter 305 führt eine ODER-Verknüpfung der Ausgangssignale der Übereinstimmungs-Bestimmungsschaltungen 302 durch und gibt das resultierende Signal zum ODER-Gatter 351 ein. Zusätzlich wird mit einem invertierten Signal des Ausgangssignals des ODER-Gatters 305 der Betrieb des Puffers 321 mit drei Zuständen gesteuert. Die Anzahl der Puffer 304 mit drei Zuständen ist entsprechend den drei Übereinstimmungs-Bestimmungsschaltungen 302 drei. Jeder der Puffer 304 mit drei Zuständen wird durch das Ausgangssignal der entsprechenden Übereinstimmungs-Bestimmungsschaltungen 302 gesteuert.
  • In einem jeweiligen der Puffer 301 gespeicherte Daten werden zu einem ID-Bus 123 ausgegeben. Jeder der Puffer 321 mit drei Zuständen gibt in externen Speicher 130 gespeicherte Daten zum ID-Bus 123 entsprechend einem invertierten Signal des Ausgangssignals des ODER-Gatters 305 aus. Das ODER-Gatter 351 ist ein ODER-Gatter vom Typ mit drei Eingängen, wobei die Ausgabe des ODER-Gatters 305 und die Ergebnisse der Übereinstimmungs-Bestimmungsschaltung 113 und 150 eingegeben werden. Das Ausgangssignal des ODER-Gatters 351 wird zum UND-Gatter 303 zugeführt. Zusätzlich wird ein vom Cache-Requester 1 empfangenes Wartesignal WAIT zum UND-Gatter 303 zugeführt. Das UND-Gatter 303 führt eine UND-Verknüpfung des Ausgangssignals des ODER-Gatters 351 und des Wartesignals WAIT durch und gibt das resultierende Signal zu Freigabeanschlüssen E der Register 114 und 115 ein.
  • Als nächstes wird unter Bezugnahme auf 11 der Betrieb der in 10 gezeigten Cachespeichervorrichtung 300 beschrieben werden. 11 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung 300 der 10 zeigt.
  • In 11 findet bei einer Taktperiode 2 ein Nichttreffer (das Tag HIT ist "0") statt. Somit beginnt die Cachespeichervorrichtung 300 den Aktualisierungsbetrieb von Cachedaten. Jedoch ist der Cache-Requester 1 bei der Taktperiode 2 in einem Wartezustand. Beim zweiten Ausführungsbeispiel wird, während der Cache-Requester 1 im Wartezustand ist, der Cachedaten-Aktualisierungsbetrieb nicht durchgeführt. Jedoch werden beim dritten Ausführungsbeispiel bei einer Taktperiode 4, während der Cache-Requester 1 im Wartezustand ist, wenn Daten des externen Speichers 130 ausgegeben werden, die Daten zu einem Cache-Datenspeicher 112 geschrieben. Zusätzlich werden die Daten über den Puffer 321 mit drei Zuständen zum Register 115 zugeführt. Bei der Taktperiode 4 empfängt der Cache-Requester 101 deshalb, weil er noch im Wartezustand ist, nicht die im Register 115 gespeicherten Cachedaten. Jedoch wird bei der Taktperiode 4 mit einem Ausgangssignal der Steuerschaltung 110 einer der Puffer 301 (beispielsweise der Puffer 301-0) aktiviert, um eine Adresse und entsprechende Daten zu speichern, die vom externen Speicher 130 ausgegeben werden. Zusätzlich zu der Adresse und den Daten veranlasst das Ausgangssignal der Steuerschaltung 110, dass ein Gültigkeitsflag gültig wird. Bei einer Taktperiode 5 fordert der Cache-Requester dieselbe Adresse an, wie er es bei der Taktperiode 4 tat. An dieser Stelle bestimmt deshalb, weil die erforderliche Adresse und die erforderlichen Daten bei der Taktperiode 4 in das Register 301 gespeichert worden sind, eine der Übereinstimmungs-Bestimmungsschaltungen 302, dass zwei Daten miteinander übereinstimmen. Somit deaktiviert die Übereinstimmungs-Bestimmungsschaltung 302 den Puffer 321 mit drei Zuständen über das ODER-Gatter 305. Folglich werden Daten der erforderlichen Adresse vom Register 301 (Puffer 301-0) zum ID-Bus 123 ausgegeben. An dieser Stelle werden Daten entsprechend der nächsten Adresse zum Cache-Datenspeicher 112 geschrieben. Zusätzlich werden dieselbe Adresse und die Daten zu dem Puffer 301 (beispielsweise dem Puffer 301-1) geschrieben. Somit werden, obwohl eine durch den Cache-Requester 1 ausgegebene Adresse unterschiedlich von einer Schreibzeitgabe zu dem Cache-Datenspeicher 112 ist, Cachedaten CD von den Puffern 301 (beispielsweise den Puffern 301-1 und 301-22) zum Cache-Requester 1 zugeführt.
  • Viertes Ausführungsbeispiel
  • 12 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß einem vierten Ausführungsbeispiel zeigt, die nützlich zum Verstehen der Erfindung ist. In 12 ist ein Bezugszeichen 400 die Cachespeichervorrichtung gemäß dem vierten Ausführungsbeispiel. Der Unterschied zwischen der Cachespeichervorrichtung 400 gemäß dem vierten Ausführungsbeispiel und der Cachespeichervorrichtung 300 gemäß dem dritten Ausführungsbeispiel besteht darin, dass eine Adresse und Daten zu einem Puffer 301 geschrieben werden, wenn es nötig ist. Ungleich der Cachespeichervorrichtung gemäß dem dritten Ausführungsbeispiel enthält die Cachespeichervorrichtung 400 eine Pufferungs-Überwachungsschaltung 401. Die Pufferungs-Überwachungsschaltung 401 bestimmt, ob zu aktualisierende Cachedaten im Puffer 301 gespeichert werden sollten oder nicht, während ein Cache-Requester 1 im Wartezustand ist. Die Pufferungs-Überwachungsschaltung 401 speichert die resultierenden Daten in vorbestimmten Puffern 301 (bei diesem Beispiel in den Puftern 301-1 und 301-2, wie es in 12 gezeigt ist). Zusätzlich erklärt die Pufferungs-Überwachungsschaltung 401 Daten für ungültig, die nicht nötig sind. Die Pufferungs-Überwachungsschaltung 401 empfängt ein Wartesignal WAIT, Ausgangssignale (bestimmte Ergebnisse) von Übereinstimmungs-Bestimmungsschaltungen 150 und 302, eine Ausgabe eines externen Registers 116 und ein Ausgangssignal einer Steuerschaltung 110. Das Ausgangssignal der Steuerschaltung 110 aktiviert Schreibfreigabeanschlüsse eines Cache-Tagspeichers 111 und eines Cache-Datenspeichers 112. Die Pufferungs-Steuerschaltung 110 gibt ein Signal aus, das den Puffer 301 aktiviert, und ein Gültigkeitsflag, das die Gültigkeit von im Puffer 301 gespeicherten Daten darstellt.
  • Als nächstes wird unter Bezugnahme auf 13 der Betrieb der in 12 gezeigten Cachespeichervorrichtung 400 beschrieben werden. 13 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung 400 der 12 zeigt.
  • In der Pufferungs-Überwachungsschaltung 401 gibt es Bedingungen bzw. Zustände zum Speichern von Daten zu den Puffern 301 (den Puffern 301-0 und 301-1) und zum Erklären von Daten für ungültig, die in den Puffern 301 gespeichert sind.
    • (1) Bedingungen zum Speichern von Daten zum Puffer 301-0 das eine Bit niedriger Ordnung der Adresse von Daten, die zum Cache-Datenspeicher geschrieben sind, ist 0; im Puffer 301-0 gespeicherte Daten sind ungültig; und der Cache-Requester 1 ist in einem Wartezustand, während ein Umgehungstreffer stattfindet; oder der Cache-Requester 1 ist in einem Wartezustand, während ein Treffer im Puffer 301-1 stattfindet.
    • (2) Bedingungen zum Speichern von Daten zum Puffer 301-1 das eine Bit niedriger Ordnung der Adresse von Daten, die zum Cache-Datenspeicher geschrieben sind, ist 0; im Puffer 301-1 gespeicherte Daten sind ungültig; und der Cache-Requester 1 ist in einem Wartezustand, während ein Umgehungstreffer stattfindet; oder der Cache-Requester 1 ist in einem Wartezustand, während ein Treffer im Puffer 301-0 stattfindet.
    • (3) Bedingungen zum Erklären von Daten für ungültig, die im Puffer 301-0 gespeichert sind das eine Bit niedriger Ordnung der Adresse von Daten, die zum Cache-Datenspeicher geschrieben sind, ist 0; und der Cache-Requester 1 ist nicht in einem Wartezustand, während im Puffer 301-0 ein Umgehungstreffer stattfindet oder ein Treffer stattfindet.
    • (4) Bedingungen zum Erklären von Daten für ungültig, die im Puffer 301-1 gespeichert sind das eine Bit niedriger Ordnung der Adresse von Daten, die zum Cache-Datenspeicher geschrieben sind, ist 1; und der Cache-Requester 1 ist nicht in einem Wartezustand, während im Puffer 301-1 ein Umgehungstreffer stattfindet oder ein Treffer stattfindet.
  • Bei einer Taktperiode 2 findet ein Nichttreffer statt und wird dadurch der Cache-Datenspeicher 112 aktualisiert. Bei einer Taktperiode 4 finden Daten n + 1 auf einem ID-Bus 123 statt, wo Daten von einem externen Speicher 130 gelesen werden (d.h., dass ein Umgehungstreffer stattfindet). Bei der Taktperiode 4 ist der Cache-Requester 1 in einem Wartezustand. Wenn das eine Bit niedriger Ordnung der Adressendaten n + 1 beispielsweise "0" ist, ist die oben beschriebene Bedingung (1) erfüllt. Somit werden die Daten n + 1 zum Puffer 301-0 geschrieben. Bei einer Taktperiode 5 findet ein Treffer im Puffer 301-0 statt, während der Cache-Requester 1 in einem Wartezustand ist. Somit werden die im Puffer 301-0 gespeicherten Daten nicht für ungültig erklärt. Jedoch deshalb, weil die Bedingungen (2) erfüllt sind (d.h. deshalb, weil das eine Bit niedriger Ordnung der Daten n + 1 "0" ist, das eine Bit niedriger Ordnung der nächsten Daten n + 2 "1" ist), werden Daten n + 2 zum Puffer 301-1 geschrieben. Wenn die oben beschriebenen Bedingungen (1) bis (4) erfüllt sind, werden neue Daten geschrieben oder für ungültig erklärt.
  • Fünftes Ausführungsbeispiel
  • 14 ist ein schematisches Diagramm, das ein Schaltungsdiagramm einer Cachespeichervorrichtung gemäß einem fünften Ausführungsbeispiel zeigt, das durch die vorliegende Erfindung beansprucht ist. Der Einfachheit halber sind dieselben Teile des Aufbaus wie bei der in 1 gezeigten Cachespeichervorrichtung 100 mit denselben Bezugszeichen bezeichnet.
  • Wie bei der in 5 gezeigten Cachespeichervorrichtung arbeitet die Cachespeichervorrichtung 500 gemäß dem fünften Ausführungsbeispiel als Befehls-Cachespeicher, der in einem Befehlserzeugungsteil einer MPU oder von ähnlichem angeordnet ist. Die Cachespeichervorrichtung 500 enthält eine Nichttreffer-Bestimmungseinrichtung 560, eine Notwendigkeits-Bestimmungseinrichtung 570, eine Aktualisierungseinrichtung 580 und ein UND-Gatter 574. Die Nichttreffer-Bestimmungseinrichtung 560 bestimmt, ob ein Nichttreffer in der nächsten Zeilenadresse einer Zeilenadresse mit einem Nichttreffer stattfindet oder nicht, wenn der Cachespeicher in einem Wartezustand ist, während der Cachespeicher gerade aktualisiert wird. Die Notwendigkeits-Bestimmungseinrichtung 570 bestimmt, ob Daten (ein Befehl), die in dem Cachespeicher-Aktualisierungszustand gelesen worden sind, nötig sind oder nicht (nämlich, ob ein Verzweigungsbefehl vorhanden ist oder nicht). Die Aktualisierungseinrichtung 580 aktualisiert die nächste Zeilenadresse, wenn ein Nichttreffer in der nächsten Zeilenadresse stattfindet und der In halt davon nötig ist (nämlich dann, wenn ein Verzweigungsbefehl nicht vorhanden ist).
  • Die Nichttreffer-Bestimmungseinrichtung 560 weist einen Selektor 561, einen Addierer 562 und ein Register 563 auf. Der Selektor 561 ist mit der Ausgangsseite eines Registers 114 verbunden. Der Addierer 562 inkrementiert die Ausgabe des Selektors 561 um +1. Das Register 563 führt die Ausgabe des Addierers 562 zum Selektor 561 zu. Die Notwendigkeits-Bestimmungseinrichtung 570 weist einen Decodierer 571, ein ODER-Gatter 572 und ein Flag 573 auf. Der Decodierer 571 decodiert von einem Ausgangsanschluss D eines externen Speichers 130 gelesene Daten. Das ODER-Gatter 572 führt eine ODER-Verknüpfung der Ausgabe des Decodierers 571 durch. Das Flag 573 ist aus einem Flip-Flop vom Verzögerungstyp aufgebaut, das die Ausgabe des ODER-Gatters 572 temporär speichert. Das UND-Gatter 574 führt eine UND-Verknüpfung eines Tag-Treffersignals TAG.HIT, eines Signals HIT.E und eines Schreibfreigabesignals S10b durch. Das Tag-Treffersignal TAG.HIT wird von einer Übereinstimmungs-Bestimmungsschaltung 113 ausgegeben. Das Signal HIT.E wird von einer Steuerschaltung 110 ausgegeben. Das Schreibfreigabesignal S10b wird von der Steuerschaltung 110 ausgegeben. Das Schreibfreigabesignal S10b aktiviert invertierte Schreibfreigabeanschlüsse WEN eines Cache-Tagsspeichers 111 und eines Cache-Datenspeichers 112. Die Aktualisierungseinrichtung 580 weist einen Selektor 581 und einen Addierer 582 auf. Der Selektor 581 wählt die Ausgabe des Registers 114, um den Inhalt eines externen Registers 116 zu aktualisieren. Der Addierer 582 inkrementiert die Ausgabe des externen Registers 116 um +1 und führt die resultierenden Daten zurück zum Selektor 581. In 14 ist ein Bezugszeichen 540 ein Verbindungszustand.
  • Als nächstes wird unter Bezugnahme auf 15 der Betrieb der in 14 gezeigten Cachespeichervorrichtung 500 beschrieben werden.
  • 15 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung 500 zeigt. In 15 stellt n dar, dass die zwei Bits niedriger Ordnung "00" sind. Im Zeitdiagramm wird angenommen, dass Befehle bei Adressen n bis n + 5 und bei einer Adresse n + 7 keine Verzweigungsbefehle sind, aber ein Befehl bei einer Adresse n + 6 ein Verzweigungsbefehl ist. Der Verzweigungstyp auf der Seite der Cacheadressenanforderung, die den Cachespeicher (beispielsweise eine CPU) verwendet, ist von einem Verzögerungs-Verzweigungstyp. Ein Verzweigungsbefehl bei der Adresse n + 6 wird zu m verzeigt. Somit werden Befehle in der Reihenfolge von Adressen n, n + 1 ..., n + 6, n + 7 und m ausgeführt. Nichttreffer finden bei Adressen n bis n + i 0 und m bis m + 3 des Cachespeichers statt. Andererseits finden Treffer bei Adressen m + 4 bis m + 10 des Cachespeichers statt. Auf den externen Speicher 130 wird im Seitenmode des DRAM zugegriffen. Bis zum ersten mal Daten empfangen werden, dauert es zwei Taktperioden CK. Somit können bis zu zwei Zeilenadressen im Voraus verifiziert werden.
  • In 15 wird zu einer Zeit t1 dann, wenn der Cache-Requester 1 n – 1 einer Cacheadresse CA zur Cachespeichervorrichtung 500 zuführt, dies im Register 114 gespeichert. Die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt, ob der im Register 114 gespeicherte Inhalt mit einer in Cache-Tagspeicher 111 gespeicherten Adresse übereinstimmt oder nicht. In diesem Fall werden deshalb, weil sie miteinander übereinstimmen, Daten entsprechend der Adresse n – 1 aus dem Cache-Datenspeicher 112 über den Datenausgangsanschluss Do gelesen. Die Ausgangsdaten des Ausgangsanschlusses Do sind Cachedaten DC und werden zum Cache-Requester 1 zugeführt.
  • Zu einer Zeit t2 tritt dann, wenn der Cache-Requester 1 n als Cacheadresse CA zuführt, da das bestimmte Ergebnis der Übereinstimmungs-Bestimmungsschaltung 113 ein Nichttreffer ist, die Cachespeichervorrichtung 500 in einen Aktualisierungsmode ein. Die Adresse n wird dort, wo ein Nichttreffer stattfindet, über den Selektor 581 zum Register 116 geschrieben. Der Selektor 581 wählt normalerweise das Register 114 aus.
  • Zu einer Zeit t3 ist der Cachespeicher in einem leeren Zustand (Wartezustand). Aufgrund der Spezifikation des externen Speichers 130 dauert es zwei Taktperioden CK, bis Daten im Cachespeicher gespeichert sind. Zu einer Zeit t4 wird dieselbe Operation durchgeführt. Während Daten nicht im Cachespeicher gespeichert sind, bestimmt die Nichttreffer-Bestimmungseinrichtung 160, ob ein Nichttreffer in der Adresse der nächsten Zeile stattfindet oder nicht.
  • Anders ausgedrückt ist im Wartezustand zu den Zeiten t3 und t4 der Signalpegel des von der Steuerschaltung empfangenen Signals HIT bzw. TREFFER "L". Obwohl der Selektor 561 normalerweise das Register 563 auswählt, während das Signal HIT auf den "L"-Pegel ist, wählt der Selektor 561 das Register 563 aus. Da das Register 563 die Ausgabe des Addierers 562 empfängt, der die Ausgabe des Selektors 561 um 1 inkrementiert, kann bestimmt werden, ob ein Nichttreffer bei der Adresse der nächsten Zeile im Wartezustand stattfindet oder nicht. Während diese Operation gerade durchgeführt wird, ist ein Tag-Treffersignal TAG.HIT, das von der Übereinstimmungs-Bestimmungsschaltung 113 ausgegeben wird, gegenüber einer erforderlichen Cacheadresse CA ungültig. Somit wird das Tag-Treffersignal TAG.HIT durch das UND-Gatter 574 mit dem Signal HIT.E maskiert. Somit finden zu den Zeiten t3 und t4 Nichttreffer statt. Folglich werden die Zeilenadresse, wo ein Nichttreffer stattfand, und die darauf folgenden zwei Zeilenadressen zur selben Zeit aktualisiert.
  • Zu einer Zeit t5 gelangen deshalb, weil Daten der Cacheadresse dort, wo der Nichttreffer stattfand, empfangen werden, der Cache-Datenspeicher 112 und der Cache-Tagspeicher 111 in einen Streitzustand. Obwohl der Cache-Datenspeicher 112 eine Cacheadresse CA hat, wird eine Adresse EA vom externen Register 116 zum externen Speicher 130 im Schreibmode zugeführt. Daten werden von dem Ausgangsanschluss D des externen Speichers 130 gelesen. Die Daten und das Tag TAG, die im Tag-Speicher 111 und im Datenspeicher 112 gespeichert sind, werden aktualisiert. An dieser Stelle wird ein Zählerteil, der mit der Innenzeilenadresse IA des externen Registers 116 übereinstimmt, durch den Addierer 535 inkrementiert, um die nächsten Daten zu aktualisieren. Während die Zeilenadresse gerade aktualisiert wird, wählt der Selektor 536 den Addierer 535 aus.
  • Zu einer Zeit t6 findet deshalb, weil die Übereinstimmungs-Bestimmungsschaltung 113 bestimmt, ob zwei Daten miteinander übereinstimmen oder nicht, ein Treffer im Cache-Datenspeicher 112 statt. Somit werden Cachedaten CD entsprechend einer Cacheadresse n, die von dem Datenausgangsanschluss Do des Cache-Datenspeichers 112 gelesen wird, zu dem Cache-Requester 1 zugeführt. Zusätzlich wird n + 1 einer Cacheadresse CA, die neu erforderlich ist, zum Register 114 geschrieben. Zu Zeiten t7 bis t10 werden dieselben Operationen wie diejenigen zu den Zeiten t5 und t6 durchgeführt.
  • Zu einer Zeit t11 wird die letzte Adresse der Zeile, wo der Nichttreffer stattfand, aktualisiert. Diese Operation ist grundsätzlich dieselbe wie die Operation zur Zeit t5. Zusätzlich bestimmt die Notwendigkeits-Bestimmungseinrichtung 570, ob die nächste Zeile zu aktualisieren ist.
  • Anders ausgedrückt ist es zur Zeit t3 klar, dass ein Nichttreffer in der Adresse der nächsten Zeile stattfindet. Das decodierte Ergebnis, das darstellt, ob ein Verzwei gungsbefehl in der Zeilenadresse vorhanden ist, wird im Flag 573 gespeichert. Das Flag 573 wird rückgesetzt, wenn das Signal HIT.E, das von der Steuerschaltung 110 ausgegeben wird, auf dem "L"-Pegel ist. Das Signal HIT.E wird ausgegeben, wenn der Cache-Datenspeicher 112 im Schreibzustand ist (zu den Zeiten t5, t7, t9 und t11). Somit werden zur Zeit t11 der Wert des Flags 573 und das decodierte Ergebnis einer ODER-Verknüpfung durch das ODER-Gatter 572 unterzogen, um zu bestimmen, ob ein Verzweigungsbefehl bei einer Zeilenadresse vorhanden ist oder nicht, wo ein Nichttreffer stattfindet. In diesem Fall wird deshalb, weil es keinen Verzweigungsbefehl bei der Zeilenadresse gibt, wo ein solcher Nichttreffer stattfand, die Ausgabe (ein inkrementierter Wert) des Addierers 582 zum externen Register 116 geladen, um die nächste Zeilenadresse zu aktualisieren.
  • Zu einer Zeit t12 wird dieselbe Operation wie diejenige zur Zeit t6 durchgeführt. Zusätzlich werden zu Zeiten t13 bis t19 dieselben Operationen wie diejenigen zu den Zeiten t5 bis t11 durchgeführt. Zur Zeit t4 ist es bekannt, dass ein Nichttreffer in der nächsten Zeilenadresse stattfindet. Jedoch ist zur Zeit t17 deshalb, weil die Notwendigkeits-Bestimmungseinrichtung 570 bestimmt hat, dass ein Verzweigungsbefehl vorhanden ist, der Inhalt des Flags 573 "1". Somit wird deshalb, weil die nächste Aktualisierungsoperation nicht durchgeführt wird, der Zugriff zu dem externen Speicher 130 gestoppt.
  • Die zu einer Zeit t20 durchgeführte Operation ist dieselbe wie die zur Zeit t12 durchgeführte Operation. Zur Zeit t20 ist eine im Register 114 gespeicherte Cacheadresse CA eine Adresse m, die durch einen Verzweigungsbefehl bei einer Adresse n + 6 stattfand. Die Operationen zu einer Zeit t21 oder später sind dieselben wie die Operationen zur Zeit t2 oder später für einen Cache-Aktualisierungszyklus, der durch eine Anforderung des Cache-Requesters 1 stattfindet.
  • Ein Vorteil des fünften Ausführungsbeispiels ist folgender.
  • Beim fünften Ausführungsbeispiel bestimmt, während der Cachespeicher nicht in Betrieb ist (nämlich im Wartezustand ist), bis Daten empfangen werden, nachdem ein Nichttreffer stattfindet, die Nichttreffer-Bestimmungseinrichtung 560, ob ein Nichttreffer bei der nächsten Zeilenadresse davon stattfindet oder nicht. Die Notwendigkeits-Bestimmungseinrichtung 570 bestimmt, ob nachfolgende Adressen erforderlich sind oder nicht (beispielsweise gibt es keinen Verzweigungsbefehl).
  • Wenn die nachfolgenden Adressen erforderlich sind, aktualisiert die Aktualisierungseinrichtung 580 die nächste Zeilenadresse. Somit kann die Trefferrate verbessert werden.
  • Sechstes Ausführungsbeispiel
  • 16 ist ein schematisches Diagramm, das eine Schaltung einer Cachespeichervorrichtung gemäß eines sechsten Ausführungsbeispiels zeigt, das durch die vorliegende Erfindung beansprucht ist. In 16 ist ein Bezugszeichen 600 eine Cachespeichervorrichtung gemäß dem sechsten Ausführungsbeispiel. Der Unterschied zwischen der Cachespeichervorrichtung 600 gemäß dem sechsten Ausführungsbeispiel und der Cachespeichervorrichtung 500 gemäß dem fünften Ausführungsbeispiel besteht darin, dass Schreiboperationen für einen Cache-Datenspeicher 112 und einen Cache-Tagspeicher 111 unabhängig durchgeführt werden. Somit kann es bei dem sechsten Ausführungsbeispiel, während Daten zu dem Cache-Datenspeicher 112 aufgrund eines Auftretens eines Nichttreffers geschrieben werden, und zwar bei dem Cache-Tagspeicher 111 bestimmt werden, ob ein Treffer oder ein Nichttreffer bei der darauf folgenden Zeilenadresse stattfindet.
  • In 16 ist ein Bezugszeichen 110 eine Steuerschaltung 110. Die Steuerschaltung 110 gibt Schreibfreigabesignale TWE und DWE aus, die Schreiboperationen für den Cache-Tagspeicher 111 und den Cache-Datenspeicher 112 jeweils entsprechend erfasster Ergebnisse von Übereinstimmungs-Bestimmungsschaltungen 113 und 601 freigeben. Zusätzlich enthält die Cachespeichervorrichtung 600 ein ODER-Gatter 602. Die Übereinstimmungs-Bestimmungsschaltung 601 bestimmt, ob ein Tag TAG einer Cacheadresse CA mit einer Zeilenadresse übereinstimmt oder nicht und ob ein Tag TAG einer in einem externen Register 116 gespeicherten Cacheadresse mit einer Zeilenadresse LA übereinstimmt oder nicht. Wenn sie miteinander übereinstimmen, gibt die Übereinstimmungs-Bestimmungsschaltung 601 ein Schreibanpassungssignal WA-MAT zur Steuerschaltung 110 aus. Anders ausgedrückt bestimmt die Übereinstimmungs-Bestimmungsschaltung 601, ob der externe Speicher eine erforderliche Adresse ausgegeben hat oder nicht. Die Steuerschaltung 110 gibt das Schreibfreigabesignal DWE zum Cache-Datenspeicher 112 entsprechend dem Schreibanpassungssignal WA-MAT aus. Zusätzlich gibt die Steuerschaltung 110 das Schreibfreigabesignal TWE zum Cache-Tagspeicher 111 für jeweilige Zeilendaten aus. Das ODER-Gatter 602 führt eine ODER-Verknüpfung eines Signals HIT-V, das darstellt, dass Daten eines externen Speichers 130 gültig sind, und der Ausgabe von der Steuerschaltung 110 durch und gibt die resultierenden Daten, die ein Treffersignal sind, zum Cache-Requester aus.
  • Als nächstes wird unter Bezugnahme auf 17 der Betrieb der Cachespeichervorrichtung 600 beschrieben werden, wie sie in 16 gezeigt ist. 17 ist ein Zeitdiagramm, das den Betrieb der Cachespeichervorrichtung 600 zeigt. In 17 hat eine Zeile vier Adressen. Auf den externen Speicher 130 wird anfangs in zwei Taktperioden zugegriffen. Nachfolgende Adressen sind bei einer Taktperiode gültig. Nichttreffer finden bei n bis n + 7 der Cacheadressen CA statt. Ein Verzweigungsbefehl ist bei einer Cacheadresse n + 6 vorhanden.
  • Zu einer Zeit t1 wird deshalb, weil ein Nichttreffer bei einer erforderlichen Adresse n – 1 stattfindet, die Adressen – 1 direkt zum Cache-Tagspeicher 111 zugeführt. Zu einer Zeit t2 findet ein Nichttreffer bei einer Adresse n statt. Da auf dem externen Speicher 130 nach einer Zeit t4 zugegriffen wird, wird die Adresse n über die Aktualisierungseinrichtung 580 zu einem externen Register 116 zugeführt. Somit werden Cachedaten bei der Adresse n aktualisiert. Zu Zeiten t7 bis t12 werden Trefferzustände bei den Adressen n + 1, n + 2 und n + 3, die in derselben Zeile wie die Adresse n sind, bestimmt. Da Nichttreffer bei allen der Adressen n + 1, n + 2 und n + 3 stattfinden, werden Daten bei den Adressen n + 1, n + 2 und n + 3 vom externen Speicher zugeführt. Die Adressen n + 1, n + 2 und n + 3 werden zum Cache-Datenspeicher 112 entsprechend dem Schreibfreigabesignal DWE geschrieben. Zu dieser Zeit bestimmt die Übereinstimmungs-Bestimmungsschaltung 601, ob Daten bei der erforderlichen Adresse von dem externen Speicher 130 gelesen worden sind oder nicht. Beispielsweise bestimmt zur Zeit t7 deshalb, weil die erforderliche Cacheadresse CA n + 1 ist, wenn eine Addierschaltung 435 ein Bit niedriger Ordnung (IA) der im externen Register 116 gespeicherten Adresse n um 1 inkrementiert, die Übereinstimmungs-Bestimmungsschaltung 601, dass die zwei Daten miteinander übereinstimmen, und gibt das Signal WA-MAT zur Steuerschaltung 110 aus. Zusätzlich wird deshalb, weil der externe Speicher 130 im Lesezustand ist, ein Signal D-WAIT zur Steuerschaltung 110 zugeführt. Die Steuerschaltung 110 gibt das Signal HIT-V zum Cache-Requester aus, um ihn darüber zu informieren, dass die erforderliche Adresse richtig gelesen ist, und zwar mit dem Signal WA-MAT und dem Signal D-WAIT. Zu einer Zeit t6 wird der Cache-Datenspeicher 112 aktualisiert. An dieser Stelle erzeugt die Aktualisierungseinrichtung 580 eine Zeilenadresse, die der Adresse n genau folgt. Anders ausgedrückt erzeugt die Aktualisierungseinrichtung 580 eine Adresse n + 4. Somit wird der Trefferzustand des Cache- Tagspeichers 111 gegenüber der Adresse n + 4 bestimmt. Bei diesem Ausführungsbeispiel findet ein Nichttreffer bei der Adresse n + 4 statt. Das Ergebnis dieses Nichttreffers wird im Register (nicht gezeigt) gespeichert. Zu einer Zeit t12 kann das Ergebnis zur Steuerschaltung 110 zugeführt werden. Somit ist zur Zeit t12 die Zeile der Adresse n aktualisiert worden. Die Steuerschaltung gibt das Schreibfreigabesignal TWE zusammen mit dem vierten Schreibfreigabesignal DWE aus. Da eine Notwendigkeits-Bestimmungseinrichtung 570 keinen Verzweigungsbefehl bei den Adressen n bis n + 3 bestimmt, wird die Aktualisierungsoperation fortgeführt. Somit wird die Zeile von n + 4 aktualisiert. Zu einer Zeit t17 bestimmt die Notwendigkeits-Bestimmungseinrichtung 570, dass n + 6 ein Verzweigungsbefehl ist. Das Ergebnis der Bestimmung wird zur Steuerschaltung 110 zugeführt. Zu einer Zeit t21 ist die Zeile von n + 4 aktualisiert worden. An dieser Stelle wird dieselbe Operation, wie es oben beschrieben ist, für eine Adresse m durchgeführt, die zu verzweigen ist.
  • Bei den oben beschriebenen sechs Ausführungsbeispielen wurde die Cachespeichervorrichtung gemäß der vorliegenden Erfindung beschrieben. Jedoch sollte es beachtet werden, dass die Schaltungen und Zeitgaben der Operationen bei den oben beschriebenen Ausführungsbeispielen auf verschiedene Weisen modifiziert werden können, so lange die oben beschriebenen Operationen erreicht werden können.
  • Industrielle Anwendbarkeit
  • Wie es oben beschrieben ist, kann gemäß dem ersten Ausführungsbeispiel deshalb, weil eine Einrichtung zum Zuführen von Daten, die während eines Aktualisierens von Cachedaten aufgrund eines Auftretens eines Nichttreffers zu einem Cache-Requester geschrieben werden, vorgesehen ist, die Trefferwarte verbessert werden und kann die Zeit für einen Mehraufwand für einen Nichttreffer reduziert werden.
  • Gemäß dem zweiten Ausführungsbeispiel kann deshalb, weil eine Einrichtung zum kurzzeitigen Unterbrechen der Aktualisierung von Cachedaten entsprechend einer Warteanforderung durch einen Cache-Requester in der Vorrichtung gemäß dem ersten Ausführungsbeispiel vorgesehen ist, die Bedienbarkeit des gesamten Systems mit einer Cachespeichervorrichtung verbessert werden.
  • Gemäß dem dritten Ausführungsbeispiel können deshalb, weil eine Einrichtung zum vorzeitigen Unterbrechen der Ausgabe von Cachedaten zu einem Cache-Requester entsprechend einer dadurch ausgegebenen Warteanforderung und eine Einrichtung für eine Puffereinrichtung zum Speichern von Cachedaten, die im Wartezustand der Cachedaten aktualisiert werden, in der Vorrichtung gemäß dem ersten Ausführungsbeispiel vorgesehen sind, Cachedaten aufeinander folgend aktualisiert werden, ungeachtet eines Auftretens einer Warteanforderung. Zusätzlich kann auf Cachedaten, die im Wartezustand aktualisiert worden sind, zugegriffen werden, um dadurch die Betriebsmäßigkeit mehr als bei der Vorrichtung des zweiten Ausführungsbeispiels zu verbessern.
  • Gemäß dem vierten Ausführungsbeispiel ist eine Einrichtung zum Bestimmen der Notwendigkeit zum Speichern von Cachedaten, die in einer Puffereinrichtung zu speichern sind, in der Vorrichtung gemäß dem dritten Ausführungsbeispiel vorgesehen, um nötige Cachedaten in der Puffereinrichtung zu speichern. Somit kann derselbe Effekt wie bei dem vierten Ausführungsbeispiel durch einen geringeren Hardwareaufwand als beim vierten Ausführungsbeispiel erreicht werden.
  • Gemäß dem fünften Ausführungsbeispiel sind eine Einrichtung zum Bestimmen, ob ein Nichttreffer bei den Adressendaten der nächsten Zeile von Zeilenadressendaten von Cachedaten stattfindet oder nicht, wo ein Nichttreffer während eines Aktualisierens von Cachedaten stattfand, eine Einrichtung zum Bestimmen, ob der Inhalt von Cachedaten, die gerade aktualisiert werden, erforderlich ist oder nicht, und eine Einrichtung zum Aktualisieren der Adressendaten der nächsten Zeile in dem Zustand, dass der Inhalt der Daten, die aktualisiert werden, durch die Bestimmungseinrichtung erforderlich ist und ein Nichttreffer bei den Adressendaten der nächsten Zeile stattfindet, vorgesehen sind, der Trefferzustand der Daten der nächsten Zeile bestimmt werden, bis Cachedaten aktualisiert werden. Zusätzlich können, solange kein Verzweigungsbefehl oder ähnliches bei einer Adresse vorhanden ist, die aktualisiert wird, die Adressendaten der nächsten Zeile aufeinander folgend aktualisiert werden. Somit können die Betriebseffizienz und das Trefferverhältnis verbessert werden und kann die Zeit für einen Mehraufwand für einen Nichttreffer reduziert werden.
  • Gemäß dem sechsten Ausführungsbeispiel wird deshalb, weil eine Übereinstimmungs-Bestimmungsschaltung zum Steuern eines Cache-Datenspeichers und eines Cache-Tagspeichers mit unterschiedlichen Schreibfreigabesignalen und zum Bestimmen, ob erforderliche Cachespeicherdaten mit in einem externen Speicher gespeicherten Daten übereinstimmen oder nicht, in der Cachespeichervorrichtung gemäß dem fünften Ausführungsbeispiel vorgesehen ist, selbst dann, wenn eine Steuerschaltung den Cache-Datenspeicher und den Cache-Tagspeicher mit unterschiedlichen Schreibfreigabesignalen steuert, ein TREFFER-Signal, das darstellt, dass Daten richtig geschrieben werden, zum Cache-Requester ausgegeben. Somit kann, während der Cache-Datenspeicher gerade aktualisiert wird, der Trefferzustand der nächsten Cacheadresse einer Cacheadresse, die aktualisiert wird, mit dem Cache-Tagspeicher bestimmt werden. Folglich kann derselbe Effekt wie beim fünften Ausführungsbeispiel erreicht werden.

Claims (8)

  1. Cachespeichervorrichtung (500, 600) zum Lesen von Daten entsprechend einer Eingangsadresseninformation (CA), wobei die Cachespeichervorrichtung (500, 600) mit einem externen Speicher (130) zum Speichern einer Vielzahl von Daten jeweils entsprechend einer Adresseninformation gekoppelt ist und wobei jede Adresseninformation einen Adressenteil hoher Ordnung als TAG-Adresse bzw. KENNUNGS-Adresse und einen Adressenteil niedriger Ordnung mit einer Zeilenadresse (LA) als höheren Teil des Adressenteils niedriger Ordnung aufweist, wobei die Cachespeichervorrichtung (500, 600) folgendes aufweist: ein erstes Register (114) zum Empfangen, Speichern und Ausgeben der Eingangsadresseninformation (CA); einen Cache-Tagspeicher bzw. Cache-Kennungsspeicher (111) zum Speichern der Adressenteile hoher Ordnung (TAG) entsprechend jeweiliger der Daten; einen Cache-Datenspeicher (112) zum Speichern der Daten; eine erste Übereinstimmungs-Bestimmungsschaltung (113) zum Bestimmen, ob der im ersten Register (114) gespeicherte Adressenteil hoher Ordnung mit einem im Cache-Tagspeicher (111) gespeicherten Adressenteil hoher Ordnung übereinstimmt, und, wenn die Adressenteile hoher Ordnung nicht übereinstimmen, zum Resultieren in einem Fehltreffer für die Eingangsadresseninformation im ersten Register (14); eine Fehltreffer-Bestimmungseinrichtung (560) zum Bestimmen, ob ein Fehltreffer in einer nächsten Zeilenadresse (LA) einer Zeilenadresse einer Adresseninformation stattfindet oder nicht, wo ein Fehltreffer stattfand; eine Notwendigkeits-Bestimmungseinrichtung (570) zum Bestimmen, ob Daten der nächsten Zeilenadresse nötig sind oder nicht; eine Aktualisierungseinrichtung bzw. Update-Einrichtung (580) zum Aktualisieren bzw. Updaten der nächsten Zeilenadresse, wenn ein Fehltreffer in der nächsten Zeilenadresse stattfindet und deren Daten nötig sind; ein zweites Register (116), um die Eingangsadresseninformation zu speichern und um durch die Aktualisierungseinrichtung nur dann zum Zugreifen auf den externen Speicher (130) aktualisiert zu werden, wenn die erste Übe reinstimmungs-Bestimmungsschaltung (113) einen Zustand einer Nichtübereinstimmung bestimmt hat.
  2. Cachespeichervorrichtung (500, 600) nach Anspruch 1, wobei die Fehltreffer-Bestimmungseinrichtung (560 folgendes aufweist: einen ersten Selektor (561), der an den Ausgang des ersten Registers (114) angeschlossen ist; einen ersten Addierer (562), der die Ausgabe des ersten Selektors (561) um Eins inkrementiert; und ein drittes Register (563), das die Ausgabe des ersten Addierers (563) zum ersten Selektor (561) zuführt.
  3. Cachespeichervorrichtung (500, 600) nach Anspruch 1 oder 2, wobei die Notwendigkeits-Bestimmungseinrichtung (570) folgendes aufweist: einen Decodieren (571), der aus dem externen Speicher (130) gelesene Daten decodiert; ein ODER-Gatter (572), das die Ausgabe des Decodierers (571) einer ODER-Verknüpfung unterzieht; und ein Flag (573), das die Ausgabe des ODER-Gatters (572) temporär speichert.
  4. Cachespeichervorrichtung (500, 600) nach einem der Ansprüche 1 bis 3, wobei die Aktualisierungseinrichtung (580) folgendes aufweist: einen zweiten Selektor (581), der die Ausgabe des ersten Registers (114) auswählt, um den Inhalt des zweiten Registers (116) zu aktualisieren bzw. einem Update zu unterziehen; und einen zweiten Addierer (582), der die Ausgabe des zweiten Registers (116) um Eins inkrementiert und die resultierenden Daten zum zweiten Selektor (581) zurückführt.
  5. Cachespeichervorrichtung (500, 600) nach einem der Ansprüche 1 bis 4, die weiterhin folgendes aufweist: ein UND-Gatter (574), das ein von der ersten Übereinstimmungs-Bestimmungsschaltung (113) ausgegebenes erstes Treffersignal (TAG.HIT), ein zweites Treffersignal (HIT.E) und ein Schreibfreigabesignal (S10b) einer UND-Verknüpfung unterzieht, wobei das UND-Gatter (574) das erste Treffersignal (TAG.HIT) mit dem zweiten Treffersignal (HIT.E) während einer Aktua lisierung bzw. einem Updaten von Zeilenadressen maskiert, nachdem ein Fehltreffer stattfand.
  6. Cachespeichervorrichtung (600) nach einem der Ansprüche 1 bis 5, die weiterhin folgendes aufweist: eine Einrichtung zum Steuern (110) des Cache-Tagspeichers (111) und des Cache-Datenspeichers (112) mit unterschiedlichen Schreibfreigabesigna-len.
  7. Cachespeichervorrichtung (600) nach Anspruch 6, wobei die erste Übereinstimmungs-Bestimmungsschaltung (113) zum Vergleichen des im Cache-Tagspeicher (111) gespeicherten Adressenteils hoher Ordnung mit dem nächsten Adressenteil hoher Ordnung geeignet ist, wenn der Cache-Datenspeicher (112) für ein Schreiben freigegeben ist.
  8. Cachespeichervorrichtung (600) nach Anspruch 6 oder 7, die weiterhin folgendes aufweist: eine zweite Übereinstimmungs-Bestimmungsschaltung (601) zum bestimmen, ob der Adressenteil hoher Ordnung der Eingangsadresseninformation (CA) mit dem im zweiten Register (116) gespeicherten Adressenteil hoher Ordnung übereinstimmt oder nicht, und zum Ausgeben der Schreibfreigabesignale für den Cache-Tagspeicher (111) und den Cache-Datenspeicher (112) durch die Einrichtung zum Steuern (110), wenn ein Übereinstimmungszustand bestimmt worden ist.
DE69334046T 1992-02-28 1993-03-01 Cache-Speichervorrichtung Expired - Lifetime DE69334046T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP4177492 1992-02-28
JP4177492 1992-02-28

Publications (2)

Publication Number Publication Date
DE69334046D1 DE69334046D1 (de) 2006-08-24
DE69334046T2 true DE69334046T2 (de) 2007-02-08

Family

ID=12617728

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69330875T Expired - Lifetime DE69330875T2 (de) 1992-02-28 1993-03-01 Cachespeichervorrichtung.
DE69334046T Expired - Lifetime DE69334046T2 (de) 1992-02-28 1993-03-01 Cache-Speichervorrichtung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69330875T Expired - Lifetime DE69330875T2 (de) 1992-02-28 1993-03-01 Cachespeichervorrichtung.

Country Status (5)

Country Link
US (2) US5754814A (de)
EP (2) EP0943998B1 (de)
JP (1) JP3614428B2 (de)
DE (2) DE69330875T2 (de)
WO (1) WO1993017386A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862358A (en) * 1994-12-20 1999-01-19 Digital Equipment Corporation Method and apparatus for reducing the apparent read latency when connecting busses with fixed read reply timeouts to CPUs with write-back caches
TW440761B (en) * 1999-05-06 2001-06-16 Ind Tech Res Inst The cache device and method
US7146469B2 (en) * 2002-10-24 2006-12-05 Sony Corporation Method, apparatus, and system for improving memory access speed

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2011134B (en) * 1977-12-22 1982-07-07 Honeywell Inf Systems Data processing systems
US4317168A (en) * 1979-11-23 1982-02-23 International Business Machines Corporation Cache organization enabling concurrent line castout and line fetch transfers with main storage
JPS615357A (ja) * 1984-06-07 1986-01-11 Fujitsu Ltd デ−タ処理装置
JPS6272041A (ja) * 1985-09-25 1987-04-02 Nec Corp キヤツシユメモリ制御装置
KR950006590B1 (ko) * 1986-11-14 1995-06-19 가부시기가이샤 히다찌세이사꾸쇼 캐시 메모리를 갖는 마이크로 프로세서
CA1300758C (en) * 1988-03-07 1992-05-12 Colin H. Cramm Mechanism for lock-up free cache operation with a remote address translation unit
JPH0778735B2 (ja) * 1988-12-05 1995-08-23 松下電器産業株式会社 キャッシュ装置と命令読出し装置
JPH0359741A (ja) * 1989-07-28 1991-03-14 Mitsubishi Electric Corp キャッシュメモリ
US5123108A (en) * 1989-09-11 1992-06-16 Wang Laboratories, Inc. Improved cpu pipeline having register file bypass and working register bypass on update/access address compare
US5463760A (en) * 1990-09-07 1995-10-31 Nec Corporation Break function in-circuit emulator for a microprocessor with a cache memory
US5485589A (en) * 1991-12-31 1996-01-16 Dell Usa, L.P. Predictive addressing architecture
DE69324508T2 (de) * 1992-01-22 1999-12-23 Enhanced Memory Systems, Inc. DRAM mit integrierten Registern

Also Published As

Publication number Publication date
WO1993017386A1 (en) 1993-09-02
DE69330875T2 (de) 2002-04-11
EP0628912A4 (de) 1995-10-11
EP0628912B1 (de) 2001-10-04
EP0943998A2 (de) 1999-09-22
US5754814A (en) 1998-05-19
DE69334046D1 (de) 2006-08-24
EP0943998A3 (de) 2000-09-13
EP0943998B1 (de) 2006-07-12
US5634104A (en) 1997-05-27
EP0628912A1 (de) 1994-12-14
JP3614428B2 (ja) 2005-01-26
DE69330875D1 (de) 2001-11-08

Similar Documents

Publication Publication Date Title
DE3782335T2 (de) Speichersteuersystem.
DE3011552C2 (de)
DE68923403T2 (de) Verfahren und Anordnung zur Adressierung eines Seitenmodus-Speichers in einem Computersystem.
DE3724317C2 (de)
DE69327387T2 (de) An einen paketvermittelten Bus gekoppelte Nachschreibsteuerungsschaltung für eine Cachespeichersteuerungsschaltung
DE69031967T2 (de) Informationsverarbeitungsanordnung
DE69323790T2 (de) Verfahren und Vorrichtung für mehreren ausstehende Operationen in einem cachespeicherkohärenten Multiprozessorsystem
DE68902193T2 (de) Datenspeicheranordnung.
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE69226928T2 (de) Verfahren und Direktspeicherzugriffssteuerung zum asynchronen Daten-Lesen von einem -Schreiben in einen Speicher mit verbessertem Durchfluss
DE69031658T2 (de) Vorrichtung und verfahren für instandhaltung von cache/zentralspeicherkonsistenz
DE69031411T2 (de) Verfahren und Anordnung zum Lesen, Schreiben und Auffrischen eines Speichers mit direktem virtuellem oder physikalischem Zugriff
DE3852695T2 (de) Multiprozessorsystem mit mehreren Speichern.
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE69031696T2 (de) Cache-Speicher mit der Möglichkeit im Fehlgriffsfall gleichzeitig zu aktualisieren und eine Entscheidung über die nächste Adresse zu treffen
DE3588061T2 (de) Speicherzugriffs-Steuerungssystem und -Verfahren für ein Informationsverarbeitungsgerät.
DE69229213T2 (de) Verfahren und Cache-Speichersteuereinheit zum Holen von Daten für eine Zentraleinheit mit verringerter Wartezeit
DE69033416T2 (de) Hauptspeicherkarten mit Einzelbit-Setz- und Rücksetz-Funktion
DE4114053A1 (de) Computersystem mit cachespeicher
DE68924945T2 (de) Pufferspeicheranordnung.
DE69227267T2 (de) Datencache-Speicher und Verfahren zur Speicherfehlerbehandlung während Zurückschreiben
DE69334046T2 (de) Cache-Speichervorrichtung
DE3200042C2 (de)
DE69030368T2 (de) Tandem-Cache-Speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: OKI SEMICONDUCTOR CO.,LTD., TOKYO, JP