DE3803759A1 - Cache-speicher zur verwendung in multiprozessor-systemen - Google Patents

Cache-speicher zur verwendung in multiprozessor-systemen

Info

Publication number
DE3803759A1
DE3803759A1 DE3803759A DE3803759A DE3803759A1 DE 3803759 A1 DE3803759 A1 DE 3803759A1 DE 3803759 A DE3803759 A DE 3803759A DE 3803759 A DE3803759 A DE 3803759A DE 3803759 A1 DE3803759 A1 DE 3803759A1
Authority
DE
Germany
Prior art keywords
cache
address
memory
devices
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE3803759A
Other languages
English (en)
Other versions
DE3803759C2 (de
Inventor
Takayuki Watanabe
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.)
NEC Electronics Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of DE3803759A1 publication Critical patent/DE3803759A1/de
Application granted granted Critical
Publication of DE3803759C2 publication Critical patent/DE3803759C2/de
Granted 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0853Cache with multiport tag or data arrays

Description

Die Erfindung betrifft einen Cache-Speicher und insbesondere sol­ che Speicher, die besonders gut zur Verwendung in Multiprozessor- Systemen geeignet sind.
Es ist bekannt, zur Verbesserung der effektiven Speicherübertra­ gungsgeschwindigkeit und damit zur Erhöhung der Verarbeitungsge­ schwindigkeiten einen Cache-Speicher mit hoher Geschwindigkeit zwischen einem Prozessor und einem Hauptspeicher mit niedriger Ge­ schwindigkeit anzuordnen. Der Cache-Speicher oder Zwischenspeicher dient zum Sichern einer zweiten Kopie der kurz vorher verwendeten Daten. Wenn der Prozessor nach Daten fragt, überprüft eine Cache- Steuerschaltung (z.B. ein Anfangsadressen-Vergleicher), ob diese Daten in dem Cache-Speicher enthalten sind. Wenn dies der Fall ist, kann der Prozessor aufgrund der hohen Geschwindigkeit des Ca­ che-Speichers die Daten sehr schnell erhalten. Andernfalls werden die Daten von dem langsameren Hauptspeicher gewonnen, der häufig auch größer ist. In diesem Fall kopiert der Cache-Speicher die von dem Hauptspeicher gewonnenen Daten, so daß diese beim nächsten Mal schnell zur Verfügung stehen.
Dieses Verfahren ist sehr nützlich, weil die meisten Computerpro­ gramme einzelne Routinen aufweisen, bei denen eine kleine Gruppe von Datenwörtern für eine längere Zeit bearbeitet werden, wodurch eine hohe Trefferrate erreicht werden kann.
Das Erkennen eines Cache-Treffers oder eines Cache-Nichttreffers wird nachstehend kurz beschrieben und später detailliert mit Bezug auf die Fig. 1 erläutert. Dabei liegt ein Cache-Treffer vor, wenn die angefragten Daten bereits im Cache-Speicher enthalten sind. Ein Anfangsadressen-Speicherbereich, der einen Teil eines Cache- Speichers bildet, gibt mehrere Anfangsadressen als Antwort auf eine Satzadresse aus, die in einem von dem Prozessor gelieferten Ansprechadressensignal enthalten ist. Daraufhin vergleicht der Anfangsadressen-Vergleicher die Anfangsadresse des Anfangsadressen-Speicherbereichs mit einer in dem Ansprech­ adressensignal des Prozessors enthaltenen Anfangsadresse und er­ zeugt ein Signal, das entweder einen Cache-Treffer oder einen Cache-Nichttreffer angibt.
Wenn Cache-Speicher in Multiprozessor-Systemen verwendet werden, ist jeweils ein Cache-Speicher zwischen jedem Prozessor und dem Hauptspeicher angeordnet. Beim Einsatz von bekannten Cache-Spei­ chern in solchen Multiprozessor-Systemen sind jedoch Probleme auf­ getaucht, und zwar, daß das System fehlerhaft arbeitete oder der Betrieb eines Prozessors zeitweise gestoppt worden ist. Diese Pro­ bleme entstehen dadurch, daß die bekannten Cache-Speicher mit nur einem Anfangsadressen-Vergleicher ausgestattet sind. Die beim Stand der Technik vorkommenden Probleme werden nachstehend anhand der Fig. 1 näher erläutert.
Fig. 1 zeigt eine Blockschaltung einer bekannten Cache-Speicher­ einheit, bei der die vorliegende Erfindung anwendbar ist. Wenn ein solcher Cache-Speicher in einem Multiprozessor-System eingesetzt wird, werden mehrere Speicherbereiche bereitgestellt und jeweils zwischen einem der mehreren Prozessoren (CPUs) und einem System­ bus, an dem ein Hauptspeicher angeschlossen ist, angeordnet.
Die Anordnung von Fig. 1 weist im wesentlichen einen Daten- Speicherbereich 9, einen Anfangsadressen-Speicherbereich 6, einen Speicherbereich 7 für eine Gültigkeitsinformation der Anfangs­ adresse und einen Speicherbereich 4 für die Information über den zuletzt verwendeten Weg (LRU), wobei der Ausdruck "Weg" einen von aufgeteilten kleinen Speicherbereichen eines Speichers angibt. Je­ der der Speicherbereiche 6, 7 und 9 besteht aus mehreren Wegen (z.B. vier Wegen, in der Zeichnung sind aber nur zwei Wege darge­ stellt). Jeder Weg des Daten-Speicherbereichs 9 ist in vier Blöcke 1 bis 4 aufgeteilt und speichert Daten für einen schnellen Zugriff durch einen Prozessor (nicht dargestellt), während jeder Weg des Anfangsadressen-Speicherbereichs 6 Anfangsadressen der in dem entsprechenden Weg des Daten-Speicherbereichs 9 gesicherten Daten speichert. Andererseits speichert jeder Weg des Speicherbe­ reichs 7 für die Gültigkeitsinformation der Anfangsadresse die An­ fangsadressen-Information darüber, ob jede der Anfangsadressen in dem entsprechenden Weg des Bereichs 6 gültig ist oder nicht, wäh­ rend der Speicherbereich 4 für die LRU-Weginformation Informatio­ nen darüber speichert, welcher Weg mit dem von einem Hauptspeicher (nicht dargestellt) über einen Systembus gelieferten Daten auf den neuesten Stand gebracht werden soll, wenn ein Cache-Nichttreffer auftritt, das heißt, das gesuchte Datenwort in dem Cache-Speicher nicht enthalten ist.
Wie in Fig. 1 dargestellt, ist ein Eingabe/Ausgabe (I/O) Daten- Zwischenspeicher 1 zum zeitweisen Festhalten von Daten vorgesehen, die darauffolgend an den Prozessor, den Daten-Speicherbereich 9 oder den Hauptspeicher geliefert werden. Weiterhin ist ein An­ sprechadressen-Zwischenspeicher 2 angeschlossen zum Empfangen ei­ nes Ansprechadressen-Signals von dem Prozessor. Dieser ist unter­ teilt in drei Speicherbereiche 2 a, 2 b und 2 c, die zum zeitweisen Festhalten der Anfangs-, Satz- bzw. Block-Adressen dienen. Eine aus einer komplexen Logikschaltung bestehende Steuerung 3 ist mit einem Steueranschluß des Prozessors verbunden. Die Steuerung 3 wird hier nicht im einzelnen beschrieben.
Die von dem Satzadressen-Zwischenspeicher 2 b gelieferte Satz­ adresse wird an jeden Weg der Speicherbereiche 6 und 7 geliefert und bewirkt, daß die Speicherbereiche 6 und 7 die entsprechende Anfangsadresse bzw. die entsprechenden Anfangsadressen-Informa­ tionen ausgeben, die an einen Anfangsadressen-Vergleicher 5 gesen­ det werden. Der Vergleicher 5 überprüft, ob die Anfangsadresse des Zwischenspeichers 2 a mit einer der Anfangsadressen des Anfangsadressen-Speicherbereichs 6 übereinstimmt und überprüft ferner, ob die gegebenenfalls aufgefundene übereinstimmende An­ fangsadresse gültig ist.
Wenn die Anfangsadresse in dem Zwischenspeicher 2 a mit einer der Anfangsadressen des Speicherbereichs 6 übereinstimmt und sich die übereinstimmende Anfangsadresse als gültig erweist, erzeugt der Vergleicher 5 zwei Arten von Treffersignalen: ein Cache-Treffersi­ gnal oder ein Cache-Nichttreffersignal und ein Weg-Treffersignal. Das Cache-Treffersignal oder Cache-Nichttreffersignal wird über die Steuerung 3 an den Prozessor geliefert, während das Weg- Treffersignal an eine Schreibweg-Auswahlschaltung 8 und eine Lese­ weg-Auswahlschaltung 10 gesendet wird.
Der Cache-Speicher weist drei Betriebsarten auf: (1) einen Cache- Treffer-Lesebetrieb, bei dem die in dem Cache-Speicher gesicherten Daten als Antwort auf einen Cache-Treffer ausgelesen und an den Prozessor gegeben werden, (2) einen Cache-Treffer-Schreibbetrieb, bei dem die in dem Cache-Speicher gesicherten Daten mit den Daten überschrieben oder auf den neuesten Stand gebracht werden, die von dem Prozessor nach einem Cache-Treffer geliefert werden und (3) einen Cache-Nichttreffer-Blockschreibbetrieb, der auftritt, wenn ein Cache-Nichttreffer vorhanden ist, bei dem ein von dem Prozes­ sor benötigtes Datenelement von dem Hauptspeicher zu dem Prozessor übertragen wird und im wesentlichen zur gleichen Zeit die vier das Datenelement enthaltenden Datenblöcke in einem Block in dem Cache- Speicher gesichert werden, damit es beim nächsten Mal zur Verfü­ gung steht.
Im Cache-Treffer-Lesebetrieb wählt die Leseweg-Auswahlschaltung 10 in Abhängigkeit von dem Weg-Treffersignal einen der Wege des Da­ ten-Speicherbereichs 9 aus und die von dem Prozessor benötigten Daten werden durch die an den Speicherbereich 9 gelieferte Satz­ und Blockadressen bestimmt. Danach werden die in dem ausgewählten Weg gesendeten Daten über den I/O Daten-Zwischenspeicher 1 an den Prozessor geliefert. Im Cache-Treffer-Schreibbetrieb wählt die Schreibweg-Auswahlschaltung 8 einen der Wege des Daten-Speicherbe­ reichs 9 aus und die Adresse der von dem Prozessor zu übertragen­ den Daten wird durch die an den Speicherbereich 9 gelieferte Satz- und Blockadresse bestimmt. Dadurch werden die von dem Prozessor gelieferten Daten an die Adresse des ausgewählten Wegs geschrieben und so diese auf den neuesten Stand gebracht.
Im Cache-Nichttreffer-Blockschreibbetrieb kann der Vergleicher 5 keine übereinstimmende gültige Anfangsadresse bestimmen und es wird ein Cache-Nichttreffer erkannt. In diesem Fall liefert der Vergleicher 5 ein Cache-Nichttreffersignal über die Steuerung 3 an den Prozessor. Als Antwort auf das Cache-Nichttreffersignal greift der Prozessor auf den Hauptspeicher zu, um von diesem ein in dem Cache-Speicher nicht gefundenes Datenelement über einen I/O Daten- Zwischenspeicher/Steuerung 13 und den I/O Daten-Zwischenspeicher 1 zu erhalten. Andererseits empfängt ein Blocklade-Zwischenspeicher 12 von dem Zwischenspeicher/Steuerung 13 die aus vier Blöcken be­ stehenden Daten, wobei in einem der Blöcke das zu dem Prozessor übertragene Datenelement enthalten ist. Die aus vier Blöcken be­ stehenden Daten werden blockweise nacheinander in den durch eine Blocklade-Weg-Auswahlschaltung 11 ausgewählten Weg geschrieben. Die Auswahlschaltung 11 wird von der Ausgabe des LRU-Weg-Speicher­ bereichs 4 gesteuert.
Jeder der konventionellen Cache-Speicher in einem Multiprozessor- System ist mit nur einem Anfangsadressen-Vergleicher 5 ausgestat­ tet. Wenn Daten in einem bestimmten Cache-Platz neu geschrieben werden, ist es dadurch nicht möglich zu überprüfen, ob die Daten mit der gleichen Adresse in einem anderen Cache-Platz bereits neu geschrieben worden sind, ohne auf den anderen Cache-Platz zuzugreifen. Dies führt also zu den oben genannten Problemen. Im einzelnen besteht die Gefahr, daß der nicht auf den neuesten Stand gebrachte Inhalt eines anderen Cache-Platzes irrtümlich zu diesem zu dem anderen Cache-Platz gehörenden Prozessor übertragen wird. Um dieses Problem zu vermeiden, muß der Betrieb der Prozessoren solange eingestellt werden, bis alle Cache-Plätze bis auf den augenblicklich auf den neuesten Stand gebrachten Cache-Platz daraufhin überprüft werden, daß sie keine falschen Daten enthal­ ten. Dieses Verfahren ist zeitaufwendig und führt zu einer Ver­ schlechterung der Eigenschaften des Systems.
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die vorstehenden Nachteile zu vermeiden, und insbesondere einen Cache- Speicher bereitzustellen, der besonders gut zur Verwendung in ei­ nem Multiprozessor-System geeignet ist und die Verarbeitungsge­ schwindigkeit in dem Multiprozessor-System erhöht.
Gemäß der vorliegenden Erfindung umfaßt ein Multiprozessor-System mehrere Cache-Speicher, wobei jeder Cache-Speicher einem einzelnen Prozessor zugeordnet ist und wobei ein gemeinsamer Hauptspeicher von mehreren Prozessoren genutzt wird. Der Cache-Speicher weist auf: erste Einrichtungen zum Sichern von Daten für einen schnellen Zugriff durch den Prozessor, der dem Cache-Speicher zugeordnet ist, zweite Einrichtungen zum Sichern von Anfangsadressen, die je­ weils einem der in den ersten Einrichtungen gespeicherten Daten­ wörter entsprechen, wobei die zweiten Einrichtungen mit zwei Toren ausgestattet sind, so daß sie unabhängig voneinander durch den Prozessor und einen anderen Cache-Speicher ansprechbar sind, dritte Einrichtungen zum Sichern von Gültigkeitsinformationen für die Anfangsadresse, die jeweils angeben, ob die entsprechende An­ fangsadresse gültig ist oder nicht, wobei die dritten Einrich­ tungen mit zwei Toren ausgestattet sind, so daß diese von dem Pro­ zessor und einem anderen Cache-Speicher unabhängig voneinander an­ sprechbar sind, vierte Einrichtungen, die, wenn ein Cache-Platz in einem anderen Cache-Speicher auf den neuesten Stand gebracht wird, die zweiten und dritten Einrichtungen mit einer Satzadresse eines von dem anderen Cache-Speicher ausgegebenen Hauptspeicher-An­ sprechsignals beliefern, damit die zweiten und dritten Einrich­ tungen die entsprechende Anfangsadresse bzw. die entsprechende Gültigkeitsinformation für die Anfangsadresse ausgeben, fünfte Einrichtungen zum Vergleichen der von den zweiten Einrichtungen gelieferten Anfangsadresse mit einer Anfangsadresse des Haupt­ speicher-Ansprechsignals und zum Überprüfen, ob jede der geliefer­ ten Anfangsadressen gültig ist, und Ausgeben eines Treffersignals, wenn die gelieferten Anfangsadressen identisch und gültig sind, und sechste Einrichtungen zum Ungültigerklären der Gültigkeitsin­ formation für die Anfangsadresse als Antwort auf das Treffer­ signal.
Die Erfindung wird nachstehend anhand eines Ausführungsbeispiels und der Zeichnung näher erläutert. In den Figuren sind gleiche Blöcke mit den gleichen Bezugszeichen versehen. Es zeigen:
Fig. 1 eine Blockschaltung des zuvor beschriebenen konventio­ nellen Cache-Speichers,
Fig. 2 eine Blockschaltung eines Abschnitts eines erfindungsge­ mäßen Cache-Speichers,
Fig. 3 eine vereinfachte Blockschaltung zur Erläuterung der Ar­ beitsweise der Erfindung, wobei mehrere Cache-Speicher zwischen mehreren Prozessoren und einem Hauptspeicher angeordnet sind, und
Fig. 4 eine Blockschaltung einer Zwei-Tor-Speicherzelle, die für die Speicherbereiche eines erfindungsgemäßen Cache-Speichers verwendbar ist.
Eine bevorzugte Ausführungsform der Erfindung wird anhand der Fig. 2 bis 4 nachstehend beschrieben.
Fig. 2 zeigt eine Blockschaltung, der erfindungsgemäßen Anordnung, aus der bevorzugte Merkmale der Erfindung hervorgehen. Die dargestellten Elemente des Speichers entsprechen denen von Fig. 1. Ein A-Tor-Anfangsadressen-Vergleicher 25 ist identisch mit dem Vergleicher 5 von Fig. 1. Ein Anfangsadressen-Speicherbe­ reich 26 und ein Speicherbereich 27 für die Gültigkeitsinformation der Anfangsadresse sind bis auf die Tatsache, daß die Abschnitte 26, 27 mit zwei Toren ausgestattet sind, jeweils identisch mit den Bereichen 6 und 7 von Fig. 1. In der Praxis weisen jede der Speicherbereiche 26 und 27 mehrere Speicherzellen auf. Ein Bei­ spiel für eine derartige Zelle ist in Fig. 4 dargestellt. Wie aus der Figur hervorgeht, ist jede Speicherzelle mit zwei Wortlei­ tungen und außerdem mit zwei Digitalleitungen verbunden. Derartige Speicherzellen sind allgemein bekannt, so daß von einer detail­ lierten Beschreibung abgesehen werden kann. Das wichtigste Merkmal der Zwei-Tor-Speicherbereiche 26, 27 ist, daß sie von dem diesen Cache-Speicher zugeordneten Prozessor (CPU) und einem anderen Cache-Speicher über die Schaltung 13 unabhängig ansprechbar sind. Die Arbeitsweise der Speicherbereiche 26, 27 und des Vergleichers 25 ist bereits oben ausführlich beschrieben, so daß sie hier nicht wiederholt werden muß.
Bevor die Beschreibung der Anordnung von Fig. 2 fortgesetzt wird, wird zunächst Fig. 3 näher erläutert. Dargestellt sind in verein­ fachter Weise zwei Prozessoren A, B, zwei Cache-Speicher A, B, die den Prozessoren A, B jeweils zugeordnet sind, und einem Hauptspei­ cher 40, der über einen Systembus von den Prozessoren A, B gemein­ sam genutzt wird. Es wird angenommen, daß (a) der Prozessor A an eine gegebene Adresse einen Erneuerungsbefehl ausgibt und (b) als Antwort auf diesen Erneuerungsbefehl die Daten unter dieser Adresse in dem Cache-Speicher A und dem Hauptspeicher 40 auf den neuesten Stand gebracht oder neu geschrieben werden. Wenn dies eintritt, müssen die Daten an der gleichen Adresse des Cache-Spei­ chers B ebenfalls neu geschrieben werden. Andernfalls könnte der Prozessor B die vorherigen Daten von der gleichen Adresse in dem Cache-Speicher B lesen, was zu einem fehlerhaften Systembetrieb führen würde. Der Grundgedanke der Erfindung ist daher, die Daten bei der Adresse, an der eine Erneuerung stattgefunden hat, in einem anderen Cache-Speicher und in einem gemeinsamen Haupt­ speicher für ungültig zu erklären.
Die Anordnung von Fig. 2 weist gemäß dem oben genannten Grundge­ danken der Erfindung einen B-Tor-Anfangsadressen-Vergleicher 30 und eine Lösch-Weg-Auswahlschaltung 32 auf. Die Schaltung 13 ist mit der Schaltung von Fig. 1 mit dem gleichen Bezugszeichen iden­ tisch. Wenn die Daten bei einer bestimmten Adresse in einem ande­ ren Cache-Speicher (beispielsweise Cache-Speicher A) und dem ge­ meinsamen Hauptspeicher als Antwort auf den Erneuerungsbefehl des zu dem Cache-Speicher A zugeordneten Prozessors (Prozessor A) neu geschrieben worden sind, beliefert die Schaltung 13 die Speicher­ bereiche 26 und 27 mit einer Satzadresse, die in einem Haupt­ speicher-Ansprechsignal enthalten ist, das entsprechend dem Er­ neuerungsbefehl des Prozessors A zur Erneuerung des Hauptspeichers verwendet wird. Als Antwort auf diese Satzadresse liefern die Wege der Speicherbereiche 26 und 27 die entsprechende Anfangsadresse und die Gültigkeitsinformation an die entsprechenden Wege des Ver­ gleichers 30. Die Schaltung 13 liefert außerdem eine An­ fangsadresse, die in dem zuvor genannten Hauptspeicher-Ansprechsi­ gnal enthalten ist, an jeden Weg des Vergleichers 30. Danach ver­ gleicht der Vergleicher 30 die gelieferten gültigen Anfangsadres­ sen. Wenn der Vergleicher 30 eine übereinstimmende gültige An­ fangsadresse erkennt, gibt er ein B-Tor-Cache-Treffersignal und ein B-Tor-Wegtreffersignal aus. Das Wegtreffersignal wird an die Lösch-Weg-Auswahlschaltung 32 geliefert, die eine der Wege des Speicherbereichs 27 auswählt. Dieser ausgewählte Weg enthält die Adresse, dessen Daten für ungültig erklärt werden sollen. Da das Satzsignal die Adresse für jeden Weg bestimmt dessen Inhalt ver­ glichen worden ist, wird die Adresse, dessen Information gestri­ chen werden soll, durch die Ausgabe der Auswahlschaltung 32 be­ stimmt.
Wenn andererseits keine übereinstimmende gültige Anfangsadresse von dem Vergleicher 30 gefunden wird, ist das Verfahren zum Ungül­ tigerklären einer Speicherstelle in dem Speicherbereich 27 nicht erforderlich.

Claims (3)

1. Multiprozessor-System mit mehreren Cache-Speichern, wobei jeder Cache-Speicher einem einzelnen Prozessor zugeordnet ist und wo­ bei ein gemeinsamer Hauptspeicher von mehreren Prozessoren ge­ meinsam genutzt wird, wobei der Cache-Speicher aufweist:
erste Einrichtungen zum Sichern von Daten zum schnellen Zugriff mittels dem dem Cache-Speicher zugeordneten Prozessor,
zweite Einrichtungen zum Sichern von Anfangsadressen, die je­ weils einem in den ersten Einrichtungen gespeicherten Daten­ wort entsprechen, wobei die zweiten Einrichtungen zwei Tore aufweisen und so unabhängig voneinander von dem Prozessor und einem anderen Cache-Speicher ansprechbar sind,
dritte Einrichtungen zum Sichern von Gültigkeitsinformationen für die Anfangsadressen, die jeweils angeben, ob die entspre­ chende Anfangsadresse gültig ist oder nicht, wobei die dritten Einrichtungen zwei Eingänge aufweisen und so unabhängig vonein­ ander von dem Prozessor und einem anderen Cache-Speicher an­ sprechbar sind,
vierte Einrichtungen, die, wenn ein anderer Cache-Speicher auf den neuesten Stand gebracht wird, die zweiten und dritten Ein­ richtungen mit einer von diesem anderen Cache-Speicher ausgege­ benen Satzadresse eines Hauptspeicher-Ansprechsignals belie­ fern, so daß die zweiten und dritten Einrichtungen die entspre­ chende Anfangsadresse bzw. die entsprechende Gültigkeitsinfor­ mation für die Anfangsadresse ausgeben,
fünfte Einrichtungen zum Vergleichen der von den zweiten Ein­ richtungen gewonnenen Anfangsadresse mit einer Anfangsadresse des Hauptspeicher-Ansprechsignals und zum Überprüfen, ob jede gelieferte Anfangsadresse gültig ist, und zum Ausgeben eines Treffersignals für den Fall, daß die gelieferten Anfangsadres­ sen identisch und gültig sind, und
sechste Einrichtungen zum Ungültigerklären der Gültigkeitsin­ formation für die Anfangsadresse als Antwort auf das Treffer­ signal.
2. Multiprozessor-System nach Anspruch 1, wobei der Cache-Speicher auf einem Chip hergestellt ist.
3. Cache-Speicher zur Verwendung in einem Multiprozessor-System mit mehreren Cache-Speichern, wobei jeder Cache-Speicher einem einzelnen Prozessor zugeordnet ist und wobei ein gemeinsamer Hauptspeicher von mehreren Prozessoren gemeinsam genutzt wird, dadurch gekennzeichnet, daß der Cache-Speicher aufweist:
erste Einrichtungen zum Sichern von Daten zum schnellen Zugriff mittels dem dem Cache-Speicher zugeordneten Prozessor,
zweite Einrichtungen zum Sichern von Anfangsadressen, die je­ weils einem in den ersten Einrichtungen gespeicherten Daten­ wort entsprechen, wobei die zweiten Einrichtungen zwei Tore aufweisen und so unabhängig voneinander von dem Prozessor und einem anderen Cache-Speicher ansprechbar sind,
dritte Einrichtungen zum Sichern von Gültigkeitsinformationen für die Anfangsadressen, die jeweils angeben, ob die entspre­ chende Anfangsadresse gültig ist oder nicht, wobei die dritten Einrichtungen zwei Eingänge aufweisen und so unabhängig vonein­ ander von dem Prozessor und einem anderen Cache-Speicher an­ sprechbar sind,
vierte Einrichtungen, die, wenn ein anderer Cache-Speicher auf den neuesten Stand gebracht wird, die zweiten und dritten Ein­ richtungen mit einer von diesem anderen Cache-Speicher ausgege­ benen Satzadresse eines Hauptspeicher-Ansprechsignals belie­ fern, so daß die zweiten und dritten Einrichtungen die entspre­ chende Anfangsadresse bzw. die entsprechende Gültigkeitsinfor­ mation für die Anfangsadresse ausgeben,
fünfte Einrichtungen zum Vergleichen der von den zweiten Ein­ richtungen gewonnenen Anfangsadresse mit einer Anfangsadresse des Hauptspeicher-Ansprechsignals und zum Überprüfen, ob jede gelieferte Anfangsadresse gültig ist, und zum Ausgeben eines Treffersignals für den Fall, daß die gelieferten Anfangsadres­ sen identisch und gültig sind, und
sechste Einrichtungen zum Ungültigerklären der Gültigkeitsin­ formation für die Anfangsadresse als Antwort auf das Treffer­ signal.
DE3803759A 1987-02-09 1988-02-08 Cache-speicher zur verwendung in multiprozessor-systemen Granted DE3803759A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62029293A JPH0668735B2 (ja) 1987-02-09 1987-02-09 キヤツシユメモリ−

Publications (2)

Publication Number Publication Date
DE3803759A1 true DE3803759A1 (de) 1988-08-18
DE3803759C2 DE3803759C2 (de) 1991-04-25

Family

ID=12272195

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3803759A Granted DE3803759A1 (de) 1987-02-09 1988-02-08 Cache-speicher zur verwendung in multiprozessor-systemen

Country Status (3)

Country Link
US (1) US5056002A (de)
JP (1) JPH0668735B2 (de)
DE (1) DE3803759A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0340668A2 (de) * 1988-05-06 1989-11-08 Hitachi, Ltd. Mehrprozessorsystem mit einem mehranschlüssigen Cachespeicher
EP0439952A2 (de) * 1990-01-31 1991-08-07 STMicroelectronics, Inc. Doppeltor-Cache-Etikettenspeicher
EP0553743A1 (de) * 1992-01-31 1993-08-04 Motorola, Inc. Cachespeichersteuerungseinrichtung
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276850A (en) * 1988-12-27 1994-01-04 Kabushiki Kaisha Toshiba Information processing apparatus with cache memory and a processor which generates a data block address and a plurality of data subblock addresses simultaneously
JPH0740247B2 (ja) * 1989-06-20 1995-05-01 松下電器産業株式会社 キャッシュメモリ装置
US5287484A (en) * 1989-06-21 1994-02-15 Hitachi, Ltd. Multi-processor system for invalidating hierarchical cache
JPH0666056B2 (ja) * 1989-10-12 1994-08-24 甲府日本電気株式会社 情報処理システム
JP2695017B2 (ja) * 1989-11-08 1997-12-24 富士通株式会社 データ転送方式
EP0435475B1 (de) * 1989-12-22 1996-02-07 Digital Equipment Corporation Hochleistungsrasterpuffer- und -cachespeicheranordnung
JPH061463B2 (ja) * 1990-01-16 1994-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
JPH03219345A (ja) * 1990-01-25 1991-09-26 Toshiba Corp 多ポートキャッシュメモリ制御装置
JPH05108484A (ja) * 1990-06-07 1993-04-30 Intel Corp キヤツシユメモリ
US5732241A (en) * 1990-06-27 1998-03-24 Mos Electronics, Corp. Random access cache memory controller and system
US5488709A (en) * 1990-06-27 1996-01-30 Mos Electronics, Corp. Cache including decoupling register circuits
US5465344A (en) * 1990-08-20 1995-11-07 Matsushita Electric Industrial Co., Ltd. Microprocessor with dual-port cache memory for reducing penalty of consecutive memory address accesses
US5434989A (en) * 1991-02-19 1995-07-18 Matsushita Electric Industrial Co., Ltd. Cache memory for efficient access with address selectors
US5339322A (en) * 1991-03-29 1994-08-16 Sgs-Thomson Microelectronics, Inc. Cache tag parity detect circuit
JP2703418B2 (ja) * 1991-04-24 1998-01-26 株式会社東芝 中央演算処理装置
US5319768A (en) * 1991-05-01 1994-06-07 Sgs-Thomson Microelectronics, Inc. Control circuit for resetting a snoop valid bit in a dual port cache tag memory
US5335335A (en) * 1991-08-30 1994-08-02 Compaq Computer Corporation Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
JPH05257899A (ja) * 1992-02-19 1993-10-08 Nec Corp キャッシュメモリユニット
US5696935A (en) * 1992-07-16 1997-12-09 Intel Corporation Multiported cache and systems
US5513335A (en) * 1992-11-02 1996-04-30 Sgs-Thomson Microelectronics, Inc. Cache tag memory having first and second single-port arrays and a dual-port array
US5778424A (en) * 1993-04-30 1998-07-07 Avsys Corporation Distributed placement, variable-size cache architecture
US5414824A (en) * 1993-06-30 1995-05-09 Intel Corporation Apparatus and method for accessing a split line in a high speed cache
JPH0756815A (ja) * 1993-07-28 1995-03-03 Internatl Business Mach Corp <Ibm> キャッシュ動作方法及びキャッシュ
US5420991A (en) * 1994-01-04 1995-05-30 Intel Corporation Apparatus and method for maintaining processing consistency in a computer system having multiple processors
US5671391A (en) * 1994-01-10 1997-09-23 Ncr Corporation Coherent copyback protocol for multi-level cache memory systems
KR100391727B1 (ko) * 1994-11-09 2003-11-01 소니 일렉트로닉스 인코포레이티드 메모리시스템및메모리억세싱방법
US5745729A (en) * 1995-02-16 1998-04-28 Sun Microsystems, Inc. Methods and apparatuses for servicing load instructions
US5721874A (en) * 1995-06-16 1998-02-24 International Business Machines Corporation Configurable cache with variable, dynamically addressable line sizes
JP2000501539A (ja) * 1996-09-25 2000-02-08 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ アドレス競合検出を持つ多重ポート・キャッシュメモリ
US6122711A (en) 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
US6260114B1 (en) 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
US6253285B1 (en) 1998-04-16 2001-06-26 Compaq Computer Corporation Method and apparatus for minimizing dcache index match aliasing using hashing in synonym/subset processing
US6757815B2 (en) * 1999-12-23 2004-06-29 Intel Corporation Single array banked branch target buffer
DE10040267A1 (de) * 2000-08-17 2002-02-28 Philips Corp Intellectual Pty Prozessor-Speicher-System
WO2008126169A1 (ja) * 2007-03-12 2008-10-23 Fujitsu Limited ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置
US20090019306A1 (en) * 2007-07-11 2009-01-15 Herbert Hum Protecting tag information in a multi-level cache hierarchy
US10810116B2 (en) * 2017-06-29 2020-10-20 Sap Se In-memory database with page size adaptation during loading

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3046912A1 (de) * 1979-12-14 1981-09-03 Honeywell Information Systems Inc., 02154 Waltham, Mass. Verfahren und schaltungsanordnung zum loeschen eines cachespeichers einer datenverarbeitungsanlage

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228503A (en) * 1978-10-02 1980-10-14 Sperry Corporation Multiplexed directory for dedicated cache memory system
US4349871A (en) * 1980-01-28 1982-09-14 Digital Equipment Corporation Duplicate tag store for cached multiprocessor system
US4442487A (en) * 1981-12-31 1984-04-10 International Business Machines Corporation Three level memory hierarchy using write and share flags
US4503497A (en) * 1982-05-27 1985-03-05 International Business Machines Corporation System for independent cache-to-cache transfer
US4794524A (en) * 1984-07-03 1988-12-27 Zilog, Inc. Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit
US4847804A (en) * 1985-02-05 1989-07-11 Digital Equipment Corporation Apparatus and method for data copy consistency in a multi-cache data processing unit
US4768148A (en) * 1986-06-27 1988-08-30 Honeywell Bull Inc. Read in process memory apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3046912A1 (de) * 1979-12-14 1981-09-03 Honeywell Information Systems Inc., 02154 Waltham, Mass. Verfahren und schaltungsanordnung zum loeschen eines cachespeichers einer datenverarbeitungsanlage

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TERAMIAM, Michael M.: "Twin Cache Tags Enable Concurrent Micro/DMA Processing".In: Computer Design, Juni 1985, S. 157-159 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0340668A2 (de) * 1988-05-06 1989-11-08 Hitachi, Ltd. Mehrprozessorsystem mit einem mehranschlüssigen Cachespeicher
EP0340668A3 (en) * 1988-05-06 1990-08-29 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
EP0439952A2 (de) * 1990-01-31 1991-08-07 STMicroelectronics, Inc. Doppeltor-Cache-Etikettenspeicher
EP0439952A3 (en) * 1990-01-31 1992-09-09 Sgs-Thomson Microelectronics, Inc. Dual-port cache tag memory
EP0553743A1 (de) * 1992-01-31 1993-08-04 Motorola, Inc. Cachespeichersteuerungseinrichtung

Also Published As

Publication number Publication date
US5056002A (en) 1991-10-08
JPH0668735B2 (ja) 1994-08-31
DE3803759C2 (de) 1991-04-25
JPS63195752A (ja) 1988-08-12

Similar Documents

Publication Publication Date Title
DE3803759C2 (de)
DE3909896C2 (de)
DE69817696T2 (de) Warmaustausch von gespiegeltem Nachschreib-Cachespeicher
EP0013737B1 (de) Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem
DE2847960A1 (de) Speichersteuereinrichtung
EP0254247A2 (de) Einrichtung zur Rettung des Rechnerzustandes
DE2617408B2 (de) Speichermodul für ein Datenverarbeitungsgerät mit Speicherhierarchie
DE3502147C2 (de)
DE2939411C2 (de) Datenverarbeitungsanlage mit virtueller Speicheradressierung
DE4103093C2 (de) Verfahren zum Steuern eines Datenübertragungs-Pufferspeichers und Computersystem zum Durchführen dieses Verfahrens
DE3919802C2 (de) Speichersteuersystem für ein Multiprozessorsystem
EP0739509B1 (de) Anordnung mit master- und slave-einheiten
DE19709730C2 (de) Mikrocomputer
DE2710477A1 (de) Anordnung zur kohaerenten leitung des informationsaustauschs zwischen zwei aneinanderstossenden niveaus einer speicherhierarchie
DE4114053A1 (de) Computersystem mit cachespeicher
DE4029861C2 (de) Mehrprozessorsystem und Speichersteuerverfahren dafür
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
DE10062404A1 (de) Vorrichtung und Verfahren zum Reduzieren der Anzahl von Adressen fehlerhafter Speicherzellen
EP0257405B1 (de) Verfahren und Anordnung zum Aktualisieren von Steuerbitkombinationen
EP0970426B1 (de) Abhängigkeitssteuerung für überlappende speicherzugriffe
EP0556430B1 (de) Verfahren zur Steuerung eines Peripheriesystems
DE4392143C1 (de) Platten-Array-Vorrichtung
EP0190575A1 (de) Verfahren und Anordnung zur Verringerung des Einflusses von Speicherfehlern auf in Cache-Speichern von Datenverarbeitungsanlagen gespeicherten Daten
EP0613077B1 (de) Verfahren zur Reset-Erzeugung in Datenverarbeitungsanlagen
DE102006045655A1 (de) Speichersteuervorrichtung und Verfahren zur Vergabe von Zugriffsrechten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8128 New person/name/address of the agent

Representative=s name: VOSSIUS, V., DIPL.-CHEM. DR.RER.NAT. TAUCHNER, P.,

D2 Grant after examination
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: TAUCHNER, P., DIPL.-CHEM. DR.RER.NAT. HEUNEMANN, D., DIPL.-PHYS. DR.RER.NAT. RAUH, P., DIPL.-CHEM. DR.RER.NAT., PAT.-ANWAELTE, 8000 MUENCHEN

8327 Change in the person/name/address of the patent owner

Owner name: NEC ELECTRONICS CORP., KAWASAKI, KANAGAWA, JP

8339 Ceased/non-payment of the annual fee