DE4136729C2 - Cache controller - Google Patents

Cache controller

Info

Publication number
DE4136729C2
DE4136729C2 DE4136729A DE4136729A DE4136729C2 DE 4136729 C2 DE4136729 C2 DE 4136729C2 DE 4136729 A DE4136729 A DE 4136729A DE 4136729 A DE4136729 A DE 4136729A DE 4136729 C2 DE4136729 C2 DE 4136729C2
Authority
DE
Germany
Prior art keywords
cache
memory
block
data
updated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE4136729A
Other languages
German (de)
Other versions
DE4136729A1 (en
Inventor
Hitoshi Ishida
Minoru Shiga
Toyohito Hatashita
Yuichi Tokunaga
Hiroyuki Fukuda
Shunyo Minesaki
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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
Priority claimed from JP3276804A external-priority patent/JP2641819B2/en
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to DE4143452A priority Critical patent/DE4143452C2/en
Priority claimed from DE4143452A external-priority patent/DE4143452C2/en
Publication of DE4136729A1 publication Critical patent/DE4136729A1/en
Application granted granted Critical
Publication of DE4136729C2 publication Critical patent/DE4136729C2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

Die Erfindung bezieht sich auf eine Cache-Steuerein­ richtung nach dem Oberbegriff des Anspruchs 1, die für einen Multiprozessor-Fehlertoleranzcomputer oder dergleichen verwendet wird, bei dem jeder Prozessor einen Cache-Speicher des Zurückschreibtyps aufweist.The invention relates to cache control direction according to the preamble of claim 1, the for a multiprocessor fault tolerance computer or the like is used in which each processor has a write-back cache.

Fig. 3 zeigt eine Cache-Steuereinrichtung des oben­ genannten Typs nach dem Stand der Technik. Die Figur ist in dem Artikel "You will be familiar with 32-bit microproccor cache", "Yokota, Nikkei Electronics", Nr. 434, Seiten 159 bis 174, November 16, 1987, darge­ stellt. Unter Bezugnahme auf die Figur ist mit 1 ein Mikroprozessor, mit 2 eine Cache-Steuereinrichtung, mit 3 ein Cache-Speicher, mit 4 ein Schnittstellen­ kreis, mit 5 ein Systembus, mit 6 ein Hauptspeicher, mit 7 eine Adreßleitung, mit 8 eine Datenleitung und mit 9 eine Steuerleitung bezeichnet. Die Cache-Steu­ ereinrichtung 2 umfaßt einen Kennzeichenspeicher 21 (tag memory), einen Komparator 22, eine Kontrollein­ heit 23 und einen Busmonitor 24. Fig. 3 shows a cache controller of the type mentioned above according to the prior art. The figure is shown in the article "You will be familiar with 32-bit microproccor cache", "Yokota, Nikkei Electronics", No. 434, pages 159 to 174, November 16, 1987. With reference to the figure, 1 is a microprocessor, 2 is a cache control device, 3 is a cache memory, 4 is an interface circuit, 5 is a system bus, 6 is a main memory, 7 is an address line, and 8 is a data line and designated 9 a control line. The cache control device 2 comprises a tag memory 21 , a comparator 22 , a control unit 23 and a bus monitor 24 .

Der Mikroprozessor 1, der Kennzeichenspeicher 21, der Komparator 22, der Busmonitor 24, der Cache-Speicher 3 und der Schnittstellenkreis 4 sind miteinander über die Adreßleitung 7 verbunden. Der Mikroprozessor 1, der Cache-Speicher 3 und der Schnittstellenkreis 4 sind ebenfalls miteinander über die Datenleitung 8 verbunden. Der Mikroprozessor 1, die Kontrolleinheit 23, der Busmonitor 24, der Cache-Speicher 3 und die Schnittstelle 4 sind miteinander über die Steuerlei­ tung 9 verbunden. Weiterhin ist die Kontrolleinheit 23, der Kennzeichenspeicher 21, die Kontrolleinheit 23 und der Cache-Speicher 3 jeweils miteinander durch die Steuerleitungen 9a und 9b verbunden. Der System­ bus 5 und der Busmonitor 24 sind direkt durch die Adreßleitung 7a und die Steuerleitung 9c miteinander verbunden, d. h. nicht über den Schnittstellenkreis 4. Der Speicher 21 und der Komparator 22 sind miteinan­ der über die Adreßleitung 7c und die Kontrolleinheit 23 und der Busmonitor 24 sind miteinander über die Adreßleitung 7d verbunden.The microprocessor 1 , the identifier memory 21 , the comparator 22 , the bus monitor 24 , the cache memory 3 and the interface circuit 4 are connected to one another via the address line 7 . The microprocessor 1 , the cache memory 3 and the interface circuit 4 are also connected to one another via the data line 8 . The microprocessor 1 , the control unit 23, the bus monitor 24 , the cache memory 3 and the interface 4 are connected to one another via the control line 9 . Furthermore, the control unit 23 , the identification memory 21 , the control unit 23 and the cache memory 3 are each connected to one another by the control lines 9 a and 9 b. The system bus 5 and the bus monitor 24 are directly connected to one another by the address line 7 a and the control line 9 c, ie not via the interface circuit 4 . The memory 21 and the comparator 22 are miteinan on the address line 7 c and the control unit 23 and the bus monitor 24 are connected to each other via the address line 7 d.

Im folgenden wird die Betriebsweise beschrieben. Der Mikroprozessor 1 liefert eine Zugriffsanfrage für den Hauptspeicher 6 an den Kennzeichenspeicher 21 und den Komparator 22. Im Kennzeichenspeicher 21 werden Adressen für die Daten im Cache-Speicher 3 und die Art der Daten angebenden Bits (wie Effektivität und Änderung) für jeden Cache-Block gehalten.The mode of operation is described below. The microprocessor 1 delivers an access request for the main memory 6 to the label memory 21 and the comparator 22 . In the label memory 21 , addresses for the data in the cache memory 3 and the type of data indicating bits (such as effectiveness and change) are kept for each cache block.

Eine Beschreibung wird unter Bezugnahme auf Fig. 4 für den Fall gegeben, daß die Anfrage des Mikropro­ zessors 1 eine Leseanfrage ist. Zuerst wird eine Prü­ fung dahingehend durchgeführt, ob die angefragten Daten im Cache-Speicher 3 vorhanden sind (1601). Wenn eine mit dem Kennzeichenspeicher 21 übereinstimmende Adresse vorhanden ist, werden die gültigen Bits des Cache-Blocks geprüft (1608). Wenn das gültige Bit des die Daten enthaltenden Cache-Blocks im "EIN-Zustand" ist, werden die Daten aus dem Cache-Speicher 3 ausge­ lesen (1607). Wenn das gültige Bit des Cache-Blocks im "AUS"-Zustand ist, wird der neueste Wert aus dem Hauptspeicher 6 oder einem anderen Modul ausgelesen (1606) und Daten werden ebenfalls dem Mikroprozessor 1 zugeführt (1607). Wenn zwischenzeitlich kein Ein­ gang zum Cache-Speicher 3 gefunden wurde, wird eine Prüfung dahingehend geführt, ob ein vakanter Block im Cache-Speicher 3 vorgesehen ist oder nicht (1602). Wenn ein vakanter Block vorhanden ist, wird der Block der die für den Block notwendigen Daten aufweist, ausgelesen (1606) und die Daten werden dem Mikropro­ zessor 1 zugeführt (1607). Wenn kein vakanter Block vorhanden ist, wird ein Ersatzblock gewählt (1603) und das modifizierte Bit des ausgewählten Cache- Blocks wird geprüft (1604). Wenn das modifizierte Bit "EIN" ist, wird der zugehörige Cache-Block in den Hauptspeicher 6 zurückgeschrieben (1605). Dann wird der Block, der die für den Zurückschreib-Cache-Block geforderten Daten hat, ausgelesen (1606) und es wer­ den ebenfalls Daten dem Mikroprozessor 1 zugeführt (1607). Wenn das modifizierte Bit in dem Ersatzblock "AUS" ist, werden die für den Block geforderten Daten aus dem Hauptspeicher 6 oder einem unterschiedlichen Modul ausgelesen (1606) und es werden ebenfalls Daten dem Mikroprozessor 1 zugeführt (1607).A description will be given with reference to FIG. 4 in the case that the request of the microprocessor 1 is a read request. First, a check is made to see if the requested data is in cache memory 3 (1601). If there is an address matching the tag memory 21 , the valid bits of the cache block are checked (1608). When the valid bit of the cache block containing the data is in the "ON state", the data is read out from the cache memory 3 (1607). If the valid bit of the cache block is in the "OFF" state, the latest value is read out from main memory 6 or another module (1606) and data is also supplied to microprocessor 1 (1607). If no entry to cache memory 3 has been found in the meantime, a check is made as to whether a vacant block is provided in cache memory 3 or not (1602). If a vacant block is present, the block having the data necessary for the block is read out (1606) and the data are supplied to the microprocessor 1 (1607). If there is no vacant block, a spare block is selected (1603) and the modified bit of the selected cache block is checked (1604). If the modified bit is "ON", the associated cache block is written back to main memory 6 (1605). Then the block which has the data required for the write-back cache block is read out (1606) and it is also the data supplied to the microprocessor 1 (1607). When the modified bit in the spare block is "OFF", the data required for the block is read out from main memory 6 or a different module (1606) and data is also supplied to microprocessor 1 (1607).

Als nächstes wird eine Beschreibung im folgenden un­ ter Bezugnahme auf Fig. 5 gegeben, im Falle, daß eine vom Mikroprozessor 1 gelieferte Anfrage eine Schrei­ banfrage ist. Zuerst wird eine Überprüfung dahinge­ hend durchgeführt, ob die Anfragedaten im Cache-Spei­ cher 3 vorhanden sind (1701). Wenn eine mit dem Kenn­ zeichenspeicher 21 passende Adresse vorhanden ist, wird das gültige Bit dieses Cache-Blocks geprüft (1709). Wenn das gültige Bit des die Daten aufweisen­ den Cache-Blocks "EIN" ist, wird ein modifiziertes Bit des Cache-Blocks geprüft (1710). Wenn das modifi­ zierte Bit ebenfalls "EIN" ist, schreibt der Mikro­ prozessor 1 Daten in den Cache-Block (1708). Wenn das gültige Bit des Cache-Blocks "EIN" und das modifi­ zierte Bit "AUS" ist, wird das modifizierte Bit im Cache-Block auf "EIN" gesetzt (1707) und Daten werden ebenfalls in den Cache-Speicher 3 geschrieben (1708). Wenn das gültige Bit des passenden Cache-Blocks "AUS" ist, wird ein neuester Wert aus dem Hauptspeicher 6 oder einem unterschiedlichen Modul in den Cache-Block gelesen (1706), und nachdem das modifizierte Bit auf "EIN" gesetzt wird (1707), werden den Daten geschrie­ ben (1708). Wenn kein Eingang in den Cache-Speicher 3 vorhanden ist, wird eine Prüfung dahingehend durch­ geführt, ob ein vakanter Block im Cache-Speicher 3 vorhanden ist (1702). Wenn ein vakanter Block vorhan­ den ist, wird ein Block, der die für den Block gefor­ derten Daten aufweist, ausgelesen (1706) und nachdem das modifizierte Bit auf "EIN" gesetzt wird (1707), werden die Daten geschrieben (1708). Wenn kein vakan­ ter Block vorhanden ist, wird ein Ersatzblock ausge­ wählt (1703) und das modifizierte Bit des ausgewähl­ ten Ersatzblocks wird geprüft (1704). Wenn das modi­ fizierte Bit "EIN" ist, wird dieser Block in den Hauptspeicher 6 zurückgeschrieben (1705). Dann wird ein Block, der die für den Zurückschreibblock ver­ langten Daten enthält, ausgelesen (1706) und nachdem das modifizierte Bit auf "EIN" gesetzt wird (1707), werden die Daten geschrieben (1708). Im Falle, daß das modifizierte Bit des Ersatzblocks auf "AUS" ge­ setzt ist, werden die für diesen Block verlangten Daten aus dem Hauptspeicher oder einem unterschiedli­ chen Modul ausgelesen (1706) und nachdem das modifi­ zierte Bit zu "EIN" gesetzt wird (1707), werden die Daten geschrieben (1708).Next, a description will be given below with reference to FIG. 5 in the event that a request provided by the microprocessor 1 is a write request. First, a check is made to see if the request data is in the cache memory 3 (1701). If an address matching the tag memory 21 is present, the valid bit of this cache block is checked (1709). If the valid bit of the data having the cache block is "ON", a modified bit of the cache block is checked (1710). If the modified bit is also "ON", the microprocessor 1 writes data to the cache block (1708). If the valid bit of the cache block is "ON" and the modified bit is "OFF", the modified bit in the cache block is set to "ON" (1707) and data is also written to the cache memory 3 (1708 ). If the valid bit of the appropriate cache block is "OFF", a newest value is read from main memory 6 or a different module into the cache block (1706) and after the modified bit is set to "ON" (1707) , are written to the data (1708). If there is no entry into cache 3 , a check is made to see if there is a vacant block in cache 3 (1702). If there is a vacant block, a block having the data required for the block is read out (1706) and after the modified bit is set to "ON" (1707), the data is written (1708). If there is no vacant block, a spare block is selected (1703) and the modified bit of the selected spare block is checked (1704). If the modified bit is "ON", this block is written back to main memory 6 (1705). Then, a block containing the data required for the write back block is read out (1706) and after the modified bit is set to "ON" (1707), the data is written (1708). In the event that the modified bit of the spare block is set to "OFF", the data required for this block are read out from the main memory or a different module (1706) and after the modified bit is set to "ON" (1707 ), the data is written (1708).

Der Busmonitor 24 umfaßt einen internen Kennzeichen­ speicher, der an den Kennzeichenspeicher 21 angepaßt ist. Die Betriebsweise von anderen Mikroprozessoren auf dem Systembus 5 wird überwacht. Wenn ein Buszy­ klus aufgrund eines Lesefehlers, eines Schreibtref­ fers oder eines Schreibfehlers festgestellt wird, wird die einschlägige Adresse mit dem Inhalt des in­ ternen Kennzeichenspeichers verglichen.The bus monitor 24 comprises an internal number plate memory which is adapted to the number plate memory 21 . The operation of other microprocessors on the system bus 5 is monitored. If a bus cycle is determined on the basis of a read error, a write hit or a write error, the relevant address is compared with the content of the internal identifier memory.

Wenn im Falle eines Lesefehlers der Kennzeichenspei­ cher der Adresse entspricht und das gültige und das modifizierte Bit jeweils "EIN" sind, liefert die Ca­ che-Steuereinrichtung Daten an das Modul, das den Cache-Block fordert und/oder den Hauptspeicher 6 und dann wird das modifizierte Bit auf "AUS" gesetzt. Wenn das modifizierte Bit "AUS" ist, führt die Cache- Steuereinrichtung keine Operation durch.If, in the event of a read error, the tag memory corresponds to the address and the valid and modified bits are each "ON", the cache controller supplies data to the module requesting the cache block and / or the main memory 6 and then the modified bit is set to "OFF". If the modified bit is "OFF", the cache controller does no operation.

Wenn im Falle eines Schreibhits der Kennzeichenspei­ cher der Adresse entspricht, wird das gültige Bit dieses Cache-Blocks auf "AUS" gesetzt.If, in the case of a writing hit, the license plate If the address corresponds to the address, the valid bit this cache block is set to "OFF".

Wenn im Falle eines Schreibfehlers der Kennzeichen­ speicher der Adresse entspricht und das gültige und das modifizierte Bit auf "EIN" sind, wie im Falle des Lesefehlers, werden Daten vorgesehen und dann wird das "EIN" gültige Bit des Blocks auf "AUS" gesetzt.If in the case of a typing error the license plate memory corresponds to the address and the valid and the modified bit is "ON" as in the case of the  Reading error, data is provided and then is the "ON" valid bit of the block is set to "OFF".

Wenn bei den obigen Situationen ein aktualisierter Block ersetzt wird und wenn auf die aktualisierten Daten durch einen unterschiedlichen Mikroprozessor Bezug genommen wird, wird ein Wiederherstellungspunkt gesetzt. Der Ausdruck "Wiederherstellungspunkt" meint einen Punkt, bis zu dem die Routine bzw. das Programm zurückgeht, um den Prozeß umzuspeichern und wieder aufzunehmen, in Fällen, in denen ein Fehler im Mikro­ prozessor 1 während der Verarbeitung auftritt. Bei dem Wiederherstellungspunkt prüft die Kontrolleinheit 23 alle modifizierten Bits des Kennzeichenspeichers 21 und all die aktualisierten Cache-Blöcke im Cache- Speicher 3 werden in den Hauptspeicher 6 zurückge­ schrieben, (was als "Cache-Flush" bezeichnet wird). Wenn das Zurückschreiben vollendet ist, werden die modifizierten Bits des Cache-Blocks auf "AUS" ge­ setzt.In the above situations, when an updated block is replaced and the updated data is referenced by a different microprocessor, a restore point is set. The term "recovery point" means a point to which the routine or program goes back to restore and restart the process in cases where an error occurs in the microprocessor 1 during processing. At the restore point, the control unit 23 checks all modified bits of the tag memory 21 and all the updated cache blocks in the cache memory 3 are written back to the main memory 6 (what is referred to as a "cache flush"). When the write back is complete, the modified bits of the cache block are set to "OFF".

Wenn bei einer Cache-Steuereinrichtung entsprechend dem oben beschriebenen Aufbau nach dem Stand der Technik ein Wiederherstellungspunkt festgesetzt wird, ist es notwendig, einmal eine Wiedergewinnung der Kennzeichen der Cache-Adressen zum Zurückschreiben aller aktualisierten Cache-Blocks in den Cache-Spei­ cher durchzuführen. Folglich nimmt die Verarbeitung des Zurückschreibens aller aktualisierter Cache- Blocks, d. h. der Cache-Flush-Vorgang, eine lange Zeit ein.If so with a cache controller the structure described above according to the state of the Technique a recovery point is set it is necessary to recover the Indicator of the cache addresses for writing back all updated cache blocks in the cache memory to perform. Consequently, the processing takes writing back all updated cache Blocks, i.e. H. the cache flush process, a long time a.

Der vorliegenden Erfindung liegt somit die Aufgabe zugrunde, eine Ca­ che-Steuereinrichtung vorzusehen, die einen Cache- Flush hoher Geschwindigkeit ermöglicht.The present invention is therefore the object based on an approx  che control device to provide a cache Allows flush high speed.

Diese Aufgabe wird erfindungsgemäß gelöst durch die im kennzeichnenden Teil des Anspruchs 1 angegebenen Merkmale. Vorteilhafte Weiterbildungen der erfindungsgemäßen Cache-Steuereinrichtung ergeben sich aus den Unteransprüchen.This object is achieved by the specified in the characterizing part of claim 1 Features. Advantageous further developments of cache control device according to the invention itself from the subclaims.

Entsprechend der vorliegenden Erfindung ist eine Ca­ che-Steuereinrichtung vorgesehen, die eine Speicher­ einrichtung zum Speichern von Eingangsadressen von aktualisierten Cache-Blöcken und eine Steuereinheit zum Steuern der Registrierung der Eingangsadresse eines aktualisierten Cache-Blocks in der Speicherein­ richtung beim Schreiben von Daten in diesen Cache- Block und zum Durchführen eines Cache-Flash- Transfers, indem nur die in der Speichereinrichtung gespeicherten Eingangsadressen der aktualisierten Cache-Blöcke gelesen und diese Cache-Blöcke in einen Hauptspeicher zurückgeschrieben werden, aufweist.According to the present invention, a ca che control device provided a memory device for storing input addresses of updated cache blocks and a control unit to control the registration of the input address an updated cache block in memory direction when writing data to this cache Block and to perform a cache flash Transfers by only those in the storage device stored input addresses of the updated Read cache blocks and these cache blocks into one Main memory are restored.

In der Cache-Steuereinheit nach der vorliegenden Er­ findung registriert die Steuereinheit die Eingangs­ adressen der aktualisierten Cache-Blöcke in der Spei­ chereinrichtung, wie beispielsweise ein Stapelspei­ cher, und wenn der Cache-Flush durchgeführt wird, d. h. wenn alle aktualisierten Cache-Blöcke zurückge­ schrieben werden, bezieht sich die Steuereinrichtung auf die Speichereinrichtung, um dabei die Eingangs­ adresse, die in einer kurzen Zeit zurückgeschrieben werden soll, zu erhalten.In the cache control unit according to the present Er the control unit registers the input addresses of the updated cache blocks in the memory chereinrichtung, such as a stack cher, and when the cache flush is done, d. H. when all updated cache blocks are returned are written, the control device refers on the storage device to do the input address that was written back in a short time should be preserved.

Die obigen und andere Merkmale und Vorteile der Er­ findung werden aus der folgenden Beschreibung in Zu­ sammenhang mit den Zeichnungen noch offensichtlicher. Es zeigen:The above and other features and advantages of the He are found in the following description in Zu  connection with the drawings even more obvious. Show it:

Fig. 1 ein Blockschaltbild einer Anordnung einer Cache-Steuereinrichtung nach einem Ausführungsbeispiel der Erfin­ dung, Fig. 1 is a block diagram of an arrangement dung a cache control device according to an embodiment of OF INVENTION,

Fig. 2 ein Flußdiagramm, das die Operation des Ausführungsbeispiels nach Fig. 1 zum Zeitpunkt des Schreibens von Daten darstellt, FIG. 2 is a flowchart illustrating the operation of the embodiment of FIG. 1 at the time of writing data.

Fig. 3 ein Blockschaltbild, das die Anordnung einer Cache-Steuereinrichtung nach dem Stand der Technik zeigt, Fig. 3 is a block diagram showing the arrangement of a cache controller according to the prior art,

Fig. 4 ein Flußdiagramm, das den Betrieb der in Fig. 3 dargestellten Cache-Steuer­ einrichtung nach dem Stand der Technik zum Zeitpunkt des Lesens von Daten wiedergibt, und Fig. 4 is a flowchart showing the operation of the prior art cache control device shown in Fig. 3 at the time of reading data, and

Fig. 5 ein Flußdiagramm, das die Operation der Cache-Steuereinrichtung nach dem Stand der Technik zum Zeitpunkt des Schreibens von Daten wiedergibt. Fig. 5 is a flowchart showing the operation of the prior art cache controller at the time of writing data.

Fig. 1 zeigt ein Blockschaltbild einer Anordnung ei­ ner Cache-Steuereinrichtung nach einem Ausführungs­ beispiel der vorliegenden Erfindung, wobei die Teile 1 bis 9 und 21 bis 24 ähnlich denen der Cache-Steuer­ einrichtung nach dem Stand der Technik entsprechend Fig. 3 sind. Fig. 1 shows a block diagram of an arrangement egg ner cache control device according to an embodiment of the present invention, wherein parts 1 to 9 and 21 to 24 are similar to those of the cache control device according to the prior art corresponding to FIG. 3.

Mit 25 ist in der Fig. 1 ein Stapelspeicher bezeich­ net, der durch einen FIFO-Speicher (First-In First- Out) gebildet wird. Der Stapelspeicher entspricht in der vorliegenden Erfindung der Speichereinrichtung. Der Stapelspeicher 25 und die Kontrolleinheit 23 sind miteinander durch die Leitung 9d verbunden. Diese Kontrolleinheit 23 realisiert die Kontrolleinrichtung in der vorliegenden Erfindung. Ein Mikroprozessor 1, ein Kennzeichenspeicher 21, ein Komparator 22, ein Busmonitor 24, ein Cache-Speicher 3, eine Schnitt­ stelle 4 und der Stapelspeicher 25 sind miteinander durch die Adreßleitung 7 verbunden. 25 1, a stack is shown in FIG. Marked net which is formed by a FIFO (First-In First-Out). The stack corresponds to the storage device in the present invention. The stack 25 and the control unit 23 are connected to each other by the line 9 d. This control unit 23 realizes the control device in the present invention. A microprocessor 1 , a label memory 21 , a comparator 22 , a bus monitor 24 , a cache memory 3 , an interface 4 and the stack 25 are connected to each other by the address line 7 .

Im folgenden wird die Betriebsweise beschrieben.The mode of operation is described below.

Die Betriebsweise ist die gleiche wie bei der Anord­ nung nach dem Stand der Technik, soweit sie die Lese­ anfrage des Mikroprozessors 1 betrifft (siehe Fig. 4).The mode of operation is the same as in the arrangement according to the prior art, insofar as it relates to the read request of the microprocessor 1 (see FIG. 4).

Im Falle, daß eine vom Mikroprozessor 1 gelieferte Anfrage eine Schreibanfrage ist, wird nunmehr unter Bezugnahme auf Fig. 2 beschrieben. Zuerst wird eine Prüfung durchgeführt, ob die Anfragedaten im Cache- Speicher 3 vorhanden sind (Schritt 201) oder nicht. Wenn eine mit dem Kennzeichenspeicher 21 übereinstim­ mende Adresse vorhanden ist, werden gültige Bits die­ ses Cache-Blocks geprüft (210). Wenn ein "EIN" gülti­ ges Bit des diese Daten enthaltenden Cache-Blocks vorhanden ist, werden modifizierte Bits dieses Cache- Blocks geprüft (Schritt 211). Wenn ein "EIN" modifi­ ziertes Bit vorhanden ist, schreibt der Mikroprozes­ sor 1 Daten in diesen Cache-Block (Schritt 209). Wenn ein "EIN" gültiges Bit des Cache-Blocks und auch ein "AUS" modifiziertes Bit vorhanden sind, wird das mo­ difizierte Bit dieses Cache-Blocks auf "EIN" gesetzt (Schritt 207) und es wird auch die Eingangsadresse dieses Cache-Blocks im Stapelspeicher 25 registriert (208). Weiterhin werden Daten in den Cache-Speicher 3 geschrieben (Schritt 209). Wenn gültige Bits des pas­ senden Cache-Blocks "AUS" sind, wird der neueste Wert aus dem Hauptspeicher 6 oder ein unterschiedliches Modul in den gleichen Cache-Block gelesen (Schritt 206), ein modifiziertes Bit wird auf "EIN" gesetzt (Schritt 207) und die Eingangsadresse wird in dem Stapelspeicher 25 registriert (Schritt 208). Dann werden die Daten geschrieben (Schritt 209). Wenn kein Eingang in den Cache-Speicher 3 vorhanden ist, wird eine Prüfung dahingehend durchgeführt, ob ein vakan­ ter Block in dem Cache-Speicher 3 vorhanden ist (Schritt 202). Wenn ein unbesetzter Block vorhanden ist, wird ein für diesen Block geforderte Daten ent­ haltender Block ausgelesen (Schritt 206), ein modifi­ ziertes Bit wird auf "EIN" gesetzt (Schritt 207) und ein Eingang wird in dem Stapelspeicher 25 registriert (Schritt 208). Dann werden die Daten geschrieben (Schritt 209). Wenn kein unbesetzter Block vorhanden ist, wird ein Ersatzblock ausgewählt (Schritt 203), und modifizierte Bits des ausgewählten Ersatzblocks werden geprüft (Schritt 204). Wenn ein "EIN" modifi­ ziertes Bit vorhanden ist, wird dieser Block in den Hauptspeicher 6 zurückgeschrieben (Schritt 205). Dann wird ein für den zurückgeschriebenen Block geforderte Daten enthaltender Block ausgelesen (Schritt 206), ein modifiziertes Bit wird auf "EIN" gesetzt (Schritt 207) und eine Eingangsadresse wird in dem Stapelspei­ cher 25 registriert (Schritt 208). Dann werden die Daten geschrieben (Schritt 209). Wenn die modifizier­ ten Bits des Ersatzblocks "AUS" sind, werden die für diesen Block verlangten Daten aus dem Hauptspeicher 6 oder einem anderen Modul (Schritt 206) ausgelesen, ein modifiziertes Bit wird auf "EIN" gesetzt (Schritt 207) und dann wird eine Eingangsadresse in dem Sta­ pelspeicher 25 registriert (Schritt 208). Dann werden die Daten geschrieben (Schritt 209). Es wurde be­ schrieben, daß die Schritte 201 bis 209 in Folge auf­ treten. Allerdings ist es möglich, eine derartige parallele Verarbeitung vorzusehen, daß ein modifi­ ziertes Bit auf "EIN" (Schritt 207) gleichzeitig mit der Speicherung einer Eingangsadresse in den Stapel­ speicher 25 durchgeführt wird, um in den Cache-Block einzuschreiben.In the event that a request provided by the microprocessor 1 is a write request, it will now be described with reference to FIG. 2. First, a check is made to see if the request data is in the cache memory 3 (step 201) or not. If there is an address matching the tag memory 21 , valid bits of this cache block are checked (210). If there is an "ON" valid bit of the cache block containing this data, modified bits of this cache block are checked (step 211). If there is a "ON" modified bit, the microprocessor 1 writes data to this cache block (step 209). If there is an "ON" valid bit of the cache block and also an "OFF" modified bit, the modified bit of this cache block is set to "ON" (step 207) and it also becomes the entry address of this cache block registered in the stack 25 (208). Furthermore, data is written into the cache memory 3 (step 209). If valid bits of the pas send cache block are "OFF", the latest value is read from main memory 6 or a different module into the same cache block (step 206), a modified bit is set to "ON" (step 207 ) and the input address is registered in the stack 25 (step 208). Then the data is written (step 209). If there is no entry into cache 3 , a check is made to see if there is a vacant block in cache 3 (step 202). If an unoccupied block is present, a block containing data required for this block is read out (step 206), a modified bit is set to "ON" (step 207) and an input is registered in the stack memory 25 (step 208) . Then the data is written (step 209). If there is no vacant block, a spare block is selected (step 203) and modified bits of the selected spare block are checked (step 204). If there is a "ON" modified bit, this block is written back to main memory 6 (step 205). Then, a block containing data requested for the restored block is read out (step 206), a modified bit is set to "ON" (step 207), and an input address is registered in the stack memory 25 (step 208). Then the data is written (step 209). If the modified bits of the spare block are "OFF", the data requested for that block is read out from the main memory 6 or another module (step 206), a modified bit is set to "ON" (step 207) and then one Entry address registered in the stack 25 (step 208). Then the data is written (step 209). It has been described that steps 201 through 209 occur in succession. However, it is possible to provide such parallel processing that a modified bit to "ON" (step 207) is performed concurrently with the storage of an input address in the stack 25 to write to the cache block.

Die Operation des Busmonitors 24 ist die gleiche wie in dem Aufbau nach dem Stand der Technik.The operation of the bus monitor 24 is the same as that in the prior art structure.

Wie im Aufbau nach dem stand der Technik wird ein Wiederherstellungspunkt oder Erholpunkt gesetzt, wenn ein aktualisierter Cache-Speicher ersetzt wird und wenn auf aktualisierte Daten durch einen anderen Mi­ kroprozessor Bezug genommen wird. Bei dem Wiederher­ stellungspunkt bewirkt die Kontrolleinheit 23 ein Zurückschreiben nur der Eingangsadressen der in dem Stapelspeicher 25 registrierten Cache-Blocks unter Bezugnahme auf den Stapelspeicher 25. In diesem Fall war es bei einem Aufbau nach dem Stand der Technik notwendig, einmal eine Wiedergewinnung von Cache- Adressen-Kennzeichen durchzuführen. Mit der vorlie­ genden Erfindung ist dies dagegen unnötig und somit wird die für einen "Cache-Flush" verlangte Zeit stark reduziert.As in the prior art design, a restore point or recovery point is set when an updated cache is replaced and when updated data is referenced by another microprocessor. At the restore point, the control unit 23 causes only the input addresses of the cache blocks registered in the stack 25 to be written back with reference to the stack 25 . In this case, in a prior art structure, it was necessary to recover cache address flags once. With the vorlie invention, however, this is unnecessary and thus the time required for a "cache flush" is greatly reduced.

Obwohl in dem obigen Ausführungsbeispiel der FIFO- Speicher für den Stapelspeicher 25 verwendet wird, kann auch ein statischer Speicher vorgesehen sein.Although the FIFO memory is used for the stack memory 25 in the above exemplary embodiment, a static memory can also be provided.

Claims (3)

1. Cache-Steuereinrichtung zur Steuerung eines Cache-Speichers (3) des Zurückschreibtyps mit einem Kennzeichenspeicher (21), einem Komparator (22), einer Steuereinheit (23) und einem Busmo­ nitor (24), gekennzeichnet durch eine Speichereinrichtung (25 zum Speichern von Eingangsadressen von aktualisierten Cache-Blöcken, und die Speichereinheit (23) zum Steuern der Regi­ strierung der Eingangsadresse eines aktualisier­ ten Cache-Blocks in der Speichereinrichtung (25) beim Schreiben von Daten in diesen Cache-Block und zum Durchführen eines Cache-Flush-Transfers, indem nur die in der Speichereinrichtung (25) gespeicherten Eingangsadressen der aktualisier­ ten Cache-Blöcke gelesen und diese Cache-Blöcke in einen Hauptspeicher (6) zurückgeschrieben werden.1. cache control device for controlling a cache memory ( 3 ) of the write-back type with a label memory ( 21 ), a comparator ( 22 ), a control unit ( 23 ) and a bus monitor ( 24 ), characterized by a memory device ( 25 for storing) input addresses of updated cache blocks, and the memory unit ( 23 ) for controlling the registration of the input address of an updated cache block in the memory device ( 25 ) when writing data into this cache block and for performing a cache flush. Transfers by reading only the input addresses of the updated cache blocks stored in the memory device ( 25 ) and writing these cache blocks back into a main memory ( 6 ). 2. Cache-Steuereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Speichereinrich­ tung (25) ein Stapelspeicher ist, der aus einem FIFO-Speicher besteht.2. Cache control device according to claim 1, characterized in that the Speichereinrich device ( 25 ) is a stack which consists of a FIFO memory. 3. Cache-Steuereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß diese für einen Feh­ lertoleranzcomputer im Multiprozessorbetrieb verwendet wird, bei dem jeder Prozessor (1) ei­ nen Cache-Speicher (3) des Zurückschreibtyps aufweist.3. Cache control device according to claim 1, characterized in that it is used for a fault tolerance computer in multiprocessor operation, in which each processor ( 1 ) has a cache memory ( 3 ) of the write-back type.
DE4136729A 1990-11-05 1991-11-05 Cache controller Expired - Fee Related DE4136729C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE4143452A DE4143452C2 (en) 1990-11-05 1991-11-05 Cache control unit for fault tolerant computer system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP29948790 1990-11-05
JP3276804A JP2641819B2 (en) 1990-11-05 1991-09-27 Cache controller, fault tolerant computer and data transfer method thereof
DE4143452A DE4143452C2 (en) 1990-11-05 1991-11-05 Cache control unit for fault tolerant computer system

Publications (2)

Publication Number Publication Date
DE4136729A1 DE4136729A1 (en) 1992-05-21
DE4136729C2 true DE4136729C2 (en) 1995-07-20

Family

ID=27203274

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4136729A Expired - Fee Related DE4136729C2 (en) 1990-11-05 1991-11-05 Cache controller

Country Status (1)

Country Link
DE (1) DE4136729C2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995034860A1 (en) * 1994-06-10 1995-12-21 Sequoia Systems, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
JP2902976B2 (en) * 1995-06-19 1999-06-07 株式会社東芝 Cache flush device
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5737514A (en) * 1995-11-29 1998-04-07 Texas Micro, Inc. Remote checkpoint memory system and protocol for fault-tolerant computer system
JP2916421B2 (en) 1996-09-09 1999-07-05 株式会社東芝 Cache flush device and data processing method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2210480B (en) * 1987-10-02 1992-01-29 Sun Microsystems Inc Flush support

Also Published As

Publication number Publication date
DE4136729A1 (en) 1992-05-21

Similar Documents

Publication Publication Date Title
DE3803759C2 (en)
DE2847960C2 (en) Storage control device
EP0013737B1 (en) Multilevel storage hierarchy for a data processing system
DE68902193T2 (en) DATA STORAGE ARRANGEMENT.
DE3786967T2 (en) Protocol for invalidating a cache memory for a digital data processing system.
DE3102150C2 (en) Multiprocessor data processing system
DE3932675C2 (en)
DE69732181T2 (en) METHOD AND DEVICE FOR INTERMEDIATING SYSTEM MANAGEMENT INFORMATION WITH OTHER INFORMATION
DE2428348C2 (en) Process for the continued use of a faulty data memory and device for carrying out this process
DE69321929T2 (en) Method and system to ensure independent access to buffer buffers in a superscalar processor system.
DE69414592T2 (en) EXECUTION OF DATA PROCESSING COMMANDS
DE102006039747A1 (en) Context state information handling device for microprocessor, has saving region with set of segments for storing context state information, where information is restored to processor context state independent of other state information
DE2441754A1 (en) PROCESSOR DATA TRANSFER CONTROL ARRANGEMENT AND METHOD FOR CONTROLLING THE DATA TRANSFER OF A PROCESSOR
DE69031696T2 (en) Cache memory with the possibility in the event of a mistake to update at the same time and to make a decision about the next address
DE3046912C2 (en) Circuit arrangement for the selective deletion of cache memories in a multiprocessor data processing system
DE4136729C2 (en) Cache controller
DE4114053A1 (en) COMPUTER SYSTEM WITH CACHE MEMORY
DE69227267T2 (en) Data cache memory and memory error handling method during restore
DE69810098T2 (en) READING OPERATIONS IN A MULTIPROCESSOR COMPUTER SYSTEM
DE3586524T2 (en) THROUGH BOTH, PHYSICAL AND VIRTUAL ADDRESSES, ADDRESSABLE CACHE STORAGE.
DE3832758C2 (en) Method for addressing a write-back virtual cache
DE69031324T2 (en) Content addressable memory
DE4227784A1 (en) COMPUTER SYSTEM AND METHOD FOR REMOVING A PAGE ERROR
DE69909400T2 (en) Method for controlling a cache memory in a multiprocessor system and multiprocessor system
DE3854859T2 (en) Interrupt handling in a parallel data processing system

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 4143452

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 4143452

AH Division in

Ref country code: DE

Ref document number: 4143452

Format of ref document f/p: P

AH Division in

Ref country code: DE

Ref document number: 4143452

Format of ref document f/p: P

D2 Grant after examination
8364 No opposition during term of opposition
AH Division in

Ref country code: DE

Ref document number: 4143452

Format of ref document f/p: P

8339 Ceased/non-payment of the annual fee