DE4136729A1 - Cache control unit for fault tolerant computer system - Google Patents

Cache control unit for fault tolerant computer system

Info

Publication number
DE4136729A1
DE4136729A1 DE4136729A DE4136729A DE4136729A1 DE 4136729 A1 DE4136729 A1 DE 4136729A1 DE 4136729 A DE4136729 A DE 4136729A DE 4136729 A DE4136729 A DE 4136729A DE 4136729 A1 DE4136729 A1 DE 4136729A1
Authority
DE
Germany
Prior art keywords
cache
memory
processor
block
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.)
Granted
Application number
DE4136729A
Other languages
German (de)
Other versions
DE4136729C2 (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

Abstract

A fault tolerant computer system operates with a cache memory control unit in which there is a stack memory (25) that has a FIFO structure. The memory connects to a control module (23). Address and control lines (7,8) provide a link between a microprocessor (1), a characteristic memory (21), a comparator (22), a bus monitor (24), a cache memory (3), an interface (4) and the stack memory. The input addresses for a cache block are held in the stack memory. Information is read and is subjected to a comparison process before being written back into the memory.

Description

Die Erfindung bezieht sich auf eine Cache-Steuerein­ richtung, die für einen Multiprozessor-Fehlertole­ ranzcomputer oder dergleichen verwendet wird, bei dem jeder Prozessor einen Cache-Speicher des Zurück­ schreibtyps aufweist, und bezieht sich weiterhin auf einen Fehlertoleranzcomputer und ein Datentransfersy­ stem zum Zeitpunkt des Cache Flush im Fehlertoleranz­ computer.The invention relates to cache control direction for a multiprocessor fault tolerance ranzcomputer or the like is used in which each processor has a back cache spelling type, and still refers to a fault tolerance computer and a data transfer system stem in fault tolerance at the time of the cache flush computer.

Fig. 15 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", No. 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. 15 shows a cache controller of the type mentioned above according to the prior art. The figure is in the article "You will be familiar with 32-bit microproccor cache", "Yokota, Nikkei Electronics", No. 434, pages 159 to 174, November 16, 1987 represents Darge. 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 main memory, 7 is an address line, 8 is a data line and 9 is a Control line designated. 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 each other 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. 16 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 Blo­ ck, 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. 16 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 the cache 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 ). When the valid bit of the cache block is "OFF", the newest 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 that 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. 17 gegeben, im Falle, daß eine vom Mikroprozessor 1 gelieferte Anfrage eine Schreibanfrage ist. Zuerst wird eine Überprüfung da­ hingehend durchgeführt, ob die Anfragedaten im Cache- Speicher 3 vorhanden sind (1701). Wenn eine mit dem Kennzeichenspeicher 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. 17 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 cache memory 3 ( 1701 ). If there is an address matching the tag memory 21 , the valid bit of this cache block is checked ( 1709 ). If the valid bit of the data block of 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 cache memory 3 ( 1708 ). If the valid bit of the matching 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 matches, 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 Block auf "AUS" gesetzt.If, in the case of a typing error, the indicator 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".

Fig. 18 zeigt ein Blockschaltbild einer Anordnung eines Fehlertoleranzcomputers nach dem Stand der Technik, wie er in dem US-Patent 48 19 154 beschrie­ ben ist. In der Darstellung wird mit 1801 das gleiche Prozessormodul dargestellt einschließlich eines Pro­ zessors zum Durchführen eines Benutzers und Supervi­ sor-Programms, 1802 bezeichnet einen Systembus, der doppelt ausgeführt ist, um die Zuverlässigkeit und den Durchsatz zu erhöhen und 1803 bezeichnet ein Speichermodul zum Speichern der Programm/Daten des Benutzers/Supervisors. Obwohl es genügt, den System­ bus 1802 als einzelnen Bus auszuführen, ist er dop­ pelt angeordnet, um einen Operationsstop des gesamten Systems aufgrund von Schwierigkeiten im Bus zu ver­ hindern und dadurch den Systemdurchsatz zu verbessern. Obwohl er in Fig. 18 nur als eine Leitung dargestellt ist, ist der Systembus 1802 als Mehr­ drahtbus ausgebildet, wobei er eine Anzahl von Daten- und Signalleitungen umfaßt. Die in dem Speichermodul zu speichernden Daten sind als Gegenmaßnahmen gegen Fehler in zwei physisch unterschiedlichen Speichermo­ dulen gespeichert. Fig. 18 shows a block diagram of an arrangement of a fault tolerance computer according to the prior art, as described in US Pat. No. 4,819,154. In the illustration, 1801 shows the same processor module including a processor for executing a user and a supervisor program, 1802 denotes a system bus which is designed twice to increase reliability and throughput, and 1803 denotes a memory module for storing the Program / data of the user / supervisor. Although it is sufficient to run the system bus 1802 as a single bus, it is arranged twice to prevent an operation stop of the entire system due to difficulties in the bus and thereby to improve the system throughput. Although only shown as one line in FIG. 18, system bus 1802 is designed as a multi-wire bus, comprising a number of data and signal lines. The data to be stored in the memory module are stored as countermeasures against errors in two physically different memory modules.

Fig. 19 zeigt etwas genauer die Anordnung des Prozes­ sormoduls. In der Darstellung ist mit 1901 eine Spei­ cherorganisationseinheit zum Umwandeln einer virtuel­ len Adresse in eine physische Adresse dargestellt, 1902 bezeichnet einen Prozessor zum Implementieren von Benutzer/Supervisor-Programmen, 1903 bezeichnet einen lokalen Adressbus, 1904 einen lokalen Datenbus, 1905 bezeichnet einen Busadapter zum Prüfen der Pari­ tät der Daten vom Cache-Speicher zum lokalen Daten­ bus, um eine Byte-Parität in bezug auf die Daten vom lokalen Datenbus zum Cache-Speicher zu erzeugen, 1906 ist ein Cache-Adreßbus. Weiterhin stellt 1907 eine interne Folgesteuereinheit, 1908 einen Cache-Spei­ cher, der nicht vom "Write-Through" Typ ist (d. h. ein Zurückschreib-Cace-Speicher), 1909 bezeichnet einen Cache-Datenbus, 1910 einen Block-Zustandsspeicher (block-state memory) (der einen ähnlichen Aufbau wie der Kennzeichenspeicher 21 aus Fig. 15 aufweist), 1911 ist eine externe Folgesteuereinheit, 1912 be­ zeichnet einen Datenbus und 1913 bezeichnet eine Sy­ stembus-Schnittstelle. Das Prozessormodul weist voll­ ständig den gleichen Aufbau auf und wird ähnlich be­ handelt. Fig. 19 shows in more detail the arrangement of the Prozes sormoduls. In the illustration, 1901 shows a memory organization unit for converting a virtual address into a physical address, 1902 denotes a processor for implementing user / supervisor programs, 1903 denotes a local address bus, 1904 denotes a local data bus, 1905 denotes a bus adapter for Checking the parity of the data from the cache to the local data bus to generate byte parity with respect to the data from the local data bus to the cache, 1906 is a cache address bus. Furthermore, in 1907 an internal sequencer, 1908 a cache memory that is not of the "write-through" type (ie, a write-back memory), 1909 a cache data bus, 1910 a block state memory (block-state) memory) (of a construction similar to the tag memory 21 of FIG. 15 has), 1911 is an external sequence controller 1912 be characterized a data bus and 1913 denotes a Sy stembus interface. The processor module always has the same structure and is handled in a similar way.

Fig. 20 ist eine Darstellung einer genaueren Anord­ nung des Speichermoduls. Dabei bezeichnen 2001 eine Systembus-Schnittstelle, 2002 einen internen Adreß­ bus, 2003 Kodier/Dekodiereinrichtungen, 2004 eine Folgesteuereinheit zum Erzeugen eines Steuersignals und eines Synchronsignals für die Abfolge des Spei­ chermoduls, 2005 eine Adreßerfassungs/Erzeugungsein­ richtung zum Dekodieren von Adressen, um die Adresse zu erfassen, für die das entsprechende Speichermodul zuständig ist, 2006 eine RAM-Zeit/Steuereinheit zum Produzieren einer Zeilenadresse, einer Spaltenadresse und eines Chip-Select-Signals und 2007 ein RAM-Feld. Fig. 20 is an illustration of a more detailed Anord voltage of the memory module. 2001 designate a system bus interface, 2002 an internal address bus, 2003 coding / decoding devices, 2004 a sequence control unit for generating a control signal and a synchronous signal for the sequence of the memory module, 2005 an address acquisition / generation device for decoding addresses to the address to be recorded, for which the corresponding memory module is responsible, in 2006 a RAM time / control unit for producing a row address, a column address and a chip select signal and in 2007 a RAM field.

Im folgenden wird die Beschreibung der Operation er­ läutert. Die Speicher-Zugriffsanfrage vom Prozessor 1902 wird in der internen Steuereinheit 1907 verar­ beitet. Die interne Steuereinheit 1907 prüft unter Bezugnahme auf den Block-Zustandsspeicher 1910, ob die geforderten Daten in dem Cache-Speicher 1908 vor­ handen sind oder nicht. Im Falle, daß die Anfrage des Prozessors 1902 eine Leseanfrage ist und die gefrag­ ten Daten in dem Cache-Speicher 1908 vorhanden sind, werden die Daten direkt vom Cache-Speicher 1908 an den Prozessor 1902 geliefert. Im Falle, daß die ge­ forderten Daten nicht im Cache-Speicher 1908 vorhan­ den sind oder daß die Daten ungültig sind, wird, nachdem die Adressenumwandlung in der Speicherbehand­ lungseinheit 1901 durchgeführt wurde, die Adresse über die externe Folgesteuereinheit 1911 und die Sy­ stembus-Schnittstelle 1913 zu dem Speichermodul transferiert. Das Speichermodul ist für den Transfer des Cache-Blocks einschließlich der geforderten Daten verantwortlich. Der übertragene Cache-Block wird dem Prozessor 1902 zugeführt und zur gleichen Zeit in dem Cache-Speicher 1908 gespeichert.The description of the operation is explained below. The memory access request from processor 1902 is processed in internal control unit 1907 . Internal control unit 1907 checks, with reference to block state memory 1910 , whether or not the requested data is present in cache memory 1908 . In the event that the processor 1902 request is a read request and the requested data is in the cache memory 1908 , the data is provided directly from the cache memory 1908 to the processor 1902 . In the event that the requested data is not in the cache memory 1908 or the data is invalid, after the address conversion has been performed in the memory handling unit 1901 , the address is via the external sequencer 1911 and the system bus interface 1913 transferred to the memory module. The memory module is responsible for the transfer of the cache block including the requested data. The transferred cache block is fed to processor 1902 and stored in cache memory 1908 at the same time.

Es wird angenommen, daß die Anfrage des Prozessors 1902 eine Schreibanfrage ist und daß die geforderten Daten in dem Cache-Speicher 1908 vorhanden sind. Im Falle, daß der Cache-Block einschließlich der Daten schon aktualisiert wurde, wird der Schreibvorgang sofort durchgeführt. Im Falle, daß andererseits der Cache-Block nicht aktualisiert wurde, wird das Bit im Blockzustandsspeicher 1910, das dem Cache-Block ent­ spricht und das die Durchführung der Aktualisierung oder des Updates anzeigt, geändert, bevor die Schreiboperation durchgeführt wird. In Fällen, in denen die verlangten Daten nicht im Cache-Speicher 1908 vorhanden sind oder die Daten ungültig sind, wird die Adresse über die Systembus-Schnittstelle 1913 dem Speichermodul nach der Adreßumwandlung in der Speicherbehandlungseinheit 1911 zugeführt. Das Speichermodul ist für den Transfer des Blocks ein­ schließlich der verlangten Daten zuständig. Der zu­ geführte Datenblock wird nach der Zufuhr zum Prozes­ sor 1902 aktualisiert und dann in den Cache-Speicher 1908 geschrieben. Zu dieser Zeit wird ebenfalls der Block-Zustandsspeicher 1910 aktualisiert.It is assumed that the processor 1902 request is a write request and that the requested data is in the cache 1908 . In the event that the cache block including the data has already been updated, the write operation is carried out immediately. On the other hand, in the event that the cache block has not been updated, the bit in block state memory 1910 that corresponds to the cache block and that indicates that the update or update is being performed is changed before the write operation is performed. In cases where the requested data is not in the cache memory 1908 or the data is invalid, the address is supplied to the memory module via the system bus interface 1913 after the address conversion in the memory handling unit 1911 . The memory module is responsible for the transfer of the block including the requested data. The data block to be fed is updated after being fed to the processor 1902 and then written to the cache memory 1908 . At this time, the block state memory 1910 is also updated.

Da die Vorrichtung nach dem Stand der Technik einen Cache-Speicher 1908 umfaßt, der nicht vom Durch­ schreibtyp ist (d. h. der vom Zurückschreibtyp ist), koinzidieren die Daten im Cache-Speicher nicht immer mit den Daten aus dem Speichermodul. Zusätzlich wird als Wiederherstellung-Gegenmaßnahmen gegen das Auf­ treten von Fehlern ein Verfahren gewählt, in dem der Zustand, daß das System normal arbeitet, beibehalten wird, wobei dazu als Wiederherstellungspunkt Bezug genommen wird, so daß das Verfahren vom letzten Wiederherstellungspunkt im Speichermodul in Abhängig­ keit vom Auftreten des Fehlers wieder eingeschaltet wird. Somit ist, im Falle, daß der Wiederherstel­ lungspunkt gesetzt wird, es notwendig, daß die inter­ nen Registerinformationen des Prozessors in den Ca­ che-Speicher geschrieben wird und daß alle Cache- Blocks, die lokal im Cache-Speicher aktualisiert wur­ den, in das Speichermodul geschrieben werden, was im folgenden als "Cache-Flush" bezeichnet wird, so daß der Cache-Speicher hinsichtlich der Daten mit dem Speichermodul übereinstimmt. In der Vorrichtung nach dem Stand der Technik wird in Übereinstimmung mit dem "Overflow" im Zusammenhang und im Cache-Speicher das Auftreten des "Overflows" festgestellt, um die Cache- Flush-Operation durchzuführen.Because the prior art device includes a cache memory 1908 that is not of the write-through type (ie, that of the write-back type), the data in the cache memory does not always coincide with the data from the memory module. In addition, as a recovery countermeasure against the occurrence of errors, a method is selected in which the state that the system is operating normally is maintained, with reference to this as a recovery point, so that the method depends on the last recovery point in the memory module is switched on again when the error occurs. Thus, in the event that the recovery point is set, it is necessary that the processor's internal register information be written to the cache and that all cache blocks that have been updated locally in the cache must be written to the Memory module are written, which is hereinafter referred to as "cache flush", so that the cache memory matches the data with the memory module. In the prior art device, in accordance with the "overflow" in context and in the cache, the occurrence of the "overflow" is determined to perform the cache flush operation.

Die zum Zeitpunkt des Cache-Flush durchgeführte Ope­ ration wird unter Bezugnahme auf die Fig. 21 be­ schrieben. In Antwort auf das Auftreten des Cache- Flush, startet der Prozessor 1902 die Cache-Flush- Operation in bezug auf die interne Folgesteuereinheit 1908. Die interne Steuereinheit 1908 ruft bei jedem Eingang des Blockzustandsspeichers 1910 das Bit auf, das dafür zuständig ist, ob der Cache-Block aktuali­ siert ist oder nicht (2101) und prüft es mittels des Komparators in der internen Folgesteuereinheit 1908 (2102). Wenn das modifizierte Bit "EIN" ist, wird der diesem Eingang entsprechende Datenblock aus dem Ca­ che-Speicher 1908 (2103) abgerufen und über die Sy­ stembus-Schnittstelle (1913) an das Speichermodul (2104) übertragen. Nach der Übertragung bzw. dem Transfer wird die Flush-Adresse inkrementiert (2105), um mit der Beendigungsadresse (2106) verglichen zu werden. Wenn die Beendigungsadresse nicht überschrit­ ten wird, kehrt der Operationsfluß zu dem Prozeß 2101 zurück, um die Prozeßschritte durchzugehen. Wenn das modifizierte Bit des Cache-Blocks "AUS" ist, wird die Flush-Adresse inkrementiert (2105). Wenn sie nicht die Beendigungsadresse überschreitet, geht der Opera­ tionsfluß zu dem Prozeß 2101 zurück, um die Prozesse zu wiederholen.The operation performed at the time of the cache flush will be described with reference to FIG. 21. In response to the occurrence of the cache flush, processor 1902 starts the cache flush operation with respect to internal sequencer 1908 . The internal control unit 1908 calls at each input of the frame status memory 1910 bits, which is responsible for whether the cache block aktuali is Siert or not (2101), and checks it by means of the comparator in the internal sequence controller 1908 (2102). If the modified bit is "ON", the data block corresponding to this input is retrieved from the cache memory 1908 ( 2103 ) and transmitted to the memory module ( 2104 ) via the system bus interface ( 1913 ). After the transfer, the flush address is incremented ( 2105 ) to be compared to the termination address ( 2106 ). If the completion address is not exceeded, the flow of operations returns to process 2101 to go through the process steps. If the modified bit of the cache block is "OFF", the flush address is incremented ( 2105 ). If it does not exceed the termination address, the flow of operations returns to process 2101 to repeat the processes.

In der Vorrichtung nach dem Stand der Technik wird die oben erwähnte Cache-Flush-Operation in Einheit mit den verdoppelten Speichermodulen durchgeführt. Die Cache-Flush-Operation wird zweimal durchgeführt, so daß immer korrekte Daten in einem der Speichermo­ dule dargestellt werden. Zuerst wird die Cache-Flush- Operation unter Bezug auf eines der Speichermodule durchgeführt. Bei der Cache-Flush-Operation wird der Cache-Block direkt über die Systembus-Schnittstelle 2001 oder die Kodier/Dekodiervorrichtung 2003 in das RAM-Feld 2007 geschrieben. In der Systembus-Schnitt­ stelle 2001 oder der Kodier/Dekodiereinrichtung 2003, werden die Paritätprüfung, die Fehlererfassung und das Korrekturverfahren in bezug auf den Datenblock durchgeführt. Wenn der erste Cache-Flush Erfolg hat, wird der Cache-Flush in bezug auf andere Speichermo­ dule durchgeführt.In the prior art device, the above-mentioned cache flush operation is performed in unity with the duplicated memory modules. The cache flush operation is carried out twice, so that correct data is always displayed in one of the memory modules. First, the cache flush operation is performed with reference to one of the memory modules. In the cache flush operation, the cache block is written directly into the RAM field 2007 via the system bus interface 2001 or the coding / decoding device 2003 . In the system bus interface 2001 or the coding / decoding device 2003 , the parity check, the error detection and the correction process are carried out with respect to the data block. If the first cache flush succeeds, the cache flush is performed on other memory modules.

Wenn die zweite Cache-Flush-Operation normalerweise beendet ist, nimmt das Prozessormodul den Prozeß vor dem Cache-Flush wieder auf. Wenn ein Fehler bei der ersten Cache-Flush-Operation auftritt, wird der Pro­ zeß vom neuesten Wiederherstellungspunkt wieder auf­ genommen, der früher in dem anderen Speichermodul festgehalten wurde. Für diese Wiederherstellung ko­ piert das Speichermodul, in dem der Fehler aufgetre­ ten ist, die Inhalte des einen Speichermoduls. In Antwort auf einen in der zweiten Cache-Flush-Opera­ tion auftretenden Fehler wird der Prozeß implemen­ tiert unter Verwendung der Daten in dem Speichermo­ dul, die durch den ersten Cache-Flush aktualisiert wurden. Im Falle, daß ein Fehler während des zweiten Cache-Flush auftritt, wird ein Speicherbereich für ein unterschiedliches Speichermodul wieder zugewiesen und die Inhalte werden in diesem Bereich zur Wieder­ herstellung kopiert.If the second cache flush operation normally is finished, the processor module carries out the process the cache flush again. If a mistake in the the first cache flush operation occurs, the pro eat up from the latest restore point taken that earlier in the other memory module was arrested. For this recovery ko the memory module in which the error occurred ten is the content of a memory module. In  Answer to one in the second cache flush opera The process will implement errors that occur tated using the data in the storage mo dul, which is updated by the first cache flush were. In the event that an error occurs during the second Cache flush occurs, a memory area for a different memory module reassigned and the content will be in this area again manufacturing copied.

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.

Da in ähnlicher Weise der Fehlertoleranz-Computer nach dem Stand der Technik wie oben beschrieben an­ geordnet ist, so daß alle die aktualisierten Cache- Blöcke im Cache-Speicher an das Speichermodul über­ tragen werden, um die Cache-Flush-Operation zu star­ ten, ist es notwendig, den aktualisierten Cache-Block zu suchen, indem alle Eingänge des Blockzustandsspei­ chers aufgerufen werden, wodurch eine lange Zeit für die Cache-Flush-Operation benötigt wird.Because in a similar way the fault tolerance computer according to the prior art as described above is ordered so that all of the updated cache Blocks in the cache memory to the memory module to star the cache flush operation ten, it is necessary to update the cache block search by all inputs of the block state memory chers can be called, creating a long time for the cache flush operation is needed.

Da zusätzlich in der Vorrichtung nach dem Stand der Technik das Einstellintervall der Wiederherstellungs­ punkte unspezifiziert ist, besteht die Schwierigkeit, die benötigte Zeit, bis der Prozeß über die Wieder­ herstellung nach der Feststellung eines Fehlers wie­ der aufgerufen wird, und somit eine Realzeitoperation einzuhalten.In addition, in the device according to the prior art Technique the setting interval of the recovery points is unspecified, there is a difficulty the time it takes for the process to start again  manufacture after finding an error such as that is called, and thus a real-time operation to adhere to.

Weiterhin ist es in einer Vorrichtung nach dem Stand der Technik notwendig, den Datentransfer vom Cache- Speicher zweimal in der Cache-Flush-Operation durch­ zuführen, da sie an die zwei Speichermodule übertra­ gen werden, und somit besteht das Problem, daß die Busbelastung erhöht wird, wobei die Leistungsfähig­ keit des Systems geopfert wird.Furthermore, it is in a device according to the prior art technology necessary to transfer data from the cache Store twice in the cache flush operation as they transfer to the two memory modules gen, and so there is the problem that the Bus load is increased, the performance system is sacrificed.

Da darüber hinaus in der Vorrichtung nach dem Stand der Technik alle in der Cache-Flush-Operation aktua­ lisierten Cache-Blöcke zu dem Speichermodul übertra­ gen werden, ist es notwendig, wiederholt die Trans­ feraktion bei jedem Cache-Block durchzuführen und somit besteht das Problem, daß die Systembusbelastung erhöht wird, wodurch die Systemleistungsfähigkeit geopfert wird.In addition, in the device according to the prior art of technology all in the cache flush operation transferred cache blocks to the memory module it is necessary to repeat the trans carry out each cache block and thus there is a problem that the system bus load is increased, increasing system performance is sacrificed.

Der vorliegenden Erfindung liegt somit die Aufgabe zugrunde, die obigen Probleme zu lösen und eine Ca­ che-Steuereinrichtung vorzusehen, die einen Cache- Flush hoher Geschwindigkeit ermöglicht.The present invention is therefore the object based on solving the above problems and a ca che control device to provide a cache Allows flush high speed.

Eine weitere Aufgabe der vorliegenden Erfindung ist es, die Cache-Flush-Operation bei hoher Geschwindig­ keit durchzuführen, um einen Fehlertoleranz-Computer mit einer Realzeitfunktion zu erhalten.Another object of the present invention is it, the cache flush operation at high speed ability to perform a fault tolerance computer to get with a real time function.

Eine weitere Aufgabe der vorliegenden Erfindung ist es, ein Datentransfersystem vorzusehen, das in der Lage ist, die Systembusbelastung zur Zeit der Cache- Flush-Operation zu reduzieren. Another object of the present invention is it to provide a data transfer system that in the Is able to reduce the system bus load at the time of the cache Reduce flush surgery.  

Entsprechend der vorliegenden Erfindung ist eine Ca­ che-Steuereinrichtung vorgesehen, die eine Speicher­ einrichtung zum Speichern der Eingangsadresse eines aktualisierten Cache-Blocks und eine Steuereinrich­ tung aufweist, die bewirkt, daß die Eingangsadresse des aktualisierten Cache-Blocks in der Speicherein­ richtung registriert wird und die darüber hinaus be­ wirkt, daß der Cache-Flush-Transfer in bezug auf die registrierte Eingangsadresse unter Bezugnahme auf die Speichereinrichtung zum Zeitpunkt der Cache-Flush- Operation durchgeführt wird.According to the present invention, a ca che control device provided a memory device for storing the input address of a updated cache blocks and a controller device that causes the input address of the updated cache block in memory direction is registered and the beyond affects the cache flush transfer with respect to the registered entry address with reference to the Storage facility at the time of the cache flush Surgery is performed.

Zusätzlich wird entsprechend der Erfindung ein Pro­ zessors eines Fehlertoleranz-Computers vorgesehen, der eine Speichereinrichtung zum Speichern der Ein­ gangsadresse des aktualisierten Cache-Blocks und eine Steuereinrichtung zum Registrieren der Eingangsadres­ se des aktualisierten Cache-Blocks in der Speicherein­ richtung und weiterhin zum Übertragen des Cache- Blocks entsprechend all den registrierten Eingangs­ adressen unter Bezugnahme auf die Speichereinrichtung in der Cache-Flush-Operation aufweist.In addition, according to the invention, a pro provided a fault tolerance computer, the one storage device for storing the on starting address of the updated cache block and a Control device for registering the input addresses the updated cache block in memory direction and continue to transfer the cache Blocks corresponding to all the registered input addresses with reference to the storage device in the cache flush operation.

Darüber hinaus ist eine Zeitschaltung zum Zählen der abgelaufenen Zeit und der Anzahl der aktualisierten Cache-Blocks vorgesehen, um den Wiederherstellungs­ punkt festzusetzen, und weiter ist ein Busüberwa­ chungskreis zum Überwachen des Systembus vorgesehen.In addition, there is a timer for counting the elapsed time and the number of updated Cache blocks provided for recovery point, and there is also a bus monitor provided for monitoring the system bus.

Darüber hinaus ist entsprechend der Erfindung ein Speichermodul eines Fehlertoleranz-Computers vorgese­ hen, das aus einer Kommunikationseinrichtung besteht, die in dem gleichen physischen Speicherraum gedoppelt ist, um eine Kommunikation zwischen zwei Speichermo­ dulen und einem für jedes Speichermodul vorgesehenen Pufferspeicher und einer Steuervorrichtung zum Steu­ ern des Pufferspeichers und der Kommunikationsein­ richtung herzustellen.In addition, according to the invention Memory module of a fault tolerance computer vorese hen, which consists of a communication device, which are duplicated in the same physical storage space is a communication between two storage mo dulen and one for each memory module  Buffer memory and a control device for control buffers and communication direction.

Weiterhin ist zum Durchführen einer Cache-Flush-Ope­ ration bei hoher Geschwindigkeit entsprechend der Erfindung ein Datentransfersystem vorgesehen, das eine Cache-Flush-Informationseinrichtung, die In­ struktionen in bezug auf alle Speichermodule, die ihrerseits eine Vorbereitung für den Empfang des Ca­ che-Flush treffen, eine Cache-Block-Transfereinrich­ tung zum Übertragen der Adresse und der Daten bei jedem Cache-Block und zum kontinuierlichen Durchfüh­ ren des Transfers aller aktualisierten Cache-Blöcke und einer Ansprecheinrichtung umfaßt, die den empfan­ genen Cache-Block von dem zuletzt gespeicherten Spei­ chermodul an das Prozessormodul zurückgibt.It is also necessary to perform a cache flush ope ration at high speed according to the Invention provided a data transfer system that a cache flush information facility, the In structures relating to all memory modules that in turn, a preparation for the reception of the Ca hit flush, a cache block transfer facility device to transfer the address and data every cache block and for continuous execution transfer of all updated cache blocks and a response device which receives the The cache block from the last stored memory returns module to the processor module.

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-Block 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 block is executed, 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.

In ähnlicher Weise speichert und registriert in dem Fehlertoleranz-Computer, wie oben beschrieben, die Steuereinrichtung die Eingangsadresse des Cache- Blocks in der Speichereinrichtung, um ihn ursprüng­ lich zur Zeit der Prozessorschreiboperation zu schreiben, und liest die registrierte Eingangsadresse aus der Speichereinrichtung bei dem Cache-Flush aus, die für das Einstellen des Wiederherstellungspunktes notwendig ist, um so den entsprechenden Cache-Block an das Speichermodul zu übertragen.Similarly, stores and registers in the Fault tolerance computers as described above Control device the input address of the cache Blocks in the storage device to originally at the time of the processor write operation write and reads the registered input address  from the storage device in the cache flush, those for setting the restore point is necessary in order to find the appropriate cache block to transfer to the memory module.

Weiterhin wird das Einstellen bzw. Festlegen des Wie­ derherstellungspunktes in Erwiderung der Erzeugung der Unterbrechung zum Prozessor gestartet, der unter der Bedingung auftritt, daß die Steuereinrichtung des Cache-Speichers feststellt, daß die Anzahl der Cache- Blocks, die nicht in den jeweiligen Cache-Leitungen des Cache-Speichers aktualisiert sind, eine vorbe­ stimmten Wert erreichen, wobei der Zähler feststellt, daß die gesamte Anzahl der aktualisierten Cache- Blocks in dem Cache-Speicher einen vorbestimmten Wert erreichen, und der Busüberwachungskreis feststellt, daß ein unterschiedliches Prozessormodul über den Systembus auf den lokalaktualisierten Cache-Block in dem Cache-Speicher Bezug nimmt, oder wobei die Zeit­ schaltung feststellt, daß eine der zuvor erwähnten Feststellungen innerhalb einer vorbestimmten Zeitdau­ er nicht durchgeführt wurde.Furthermore, the setting or setting of the how the manufacturing point in response to production the interruption to the processor started under the condition occurs that the control device of the Cache determines that the number of cache Blocks that are not in the respective cache lines of the cache are updated reach the agreed value, whereby the counter determines that the total number of updated cache Blocks in the cache a predetermined value reach, and the bus monitoring circuit determines that a different processor module over the System bus to the locally updated cache block in refers to the cache, or where the time circuit detects that one of the previously mentioned Findings within a predetermined period of time it was not carried out.

In den zwei Speichermodulen speichert der Pufferspei­ cher zeitweise den erhaltenen Cache-Block und nach der Vollendung des Empfangs bestätigt die Steuerein­ richtung den Zustand für die Synchronisation zwischen den zwei Speichermodulen, um Daten vom Pufferspeicher zu dem RAM-Feld über die Kommunikationseinrichtung zu schreiben.The buffer memory stores in the two memory modules intermittently the cache block received and after the tax receipt confirms the completion of the receipt direction the state for the synchronization between the two memory modules to get data from the buffer memory to the RAM field via the communication device write.

Zusätzlich informiert in Erwiderung auf die Instruk­ tionen des Cache-Flush vom Prozessor die Cache-Flush- Informationseinrichtung alle Speichermodule, daß der Cache-Flush gestartet wird, und die Cache-Block-Über­ tragungsvorrichtung überträgt kontinuierlich die Da­ ten und die Adresse des Cache-Blocks in bezug auf alle aktualisierten Cache-Blöcke. Darüber hinaus macht die Erwiderungsvorrichtung nur die Erwiderung von dem Speichermodul wirksam, indem die Daten end­ lich in das RAM-Feld geschrieben werden.Additionally informs in response to the instruct cache flush from the processor the cache flush Information device all memory modules that the Cache flush is started, and the cache block over  carrying device continuously transmits the data and the address of the cache block with respect to all updated cache blocks. Furthermore the reply device only makes the reply from the memory module effective by the data end Lich be written into the RAM field.

Die obigen und andere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden Beschreibung in Zusammenhang mit den Zeichnungen noch offensicht­ licher. Es zeigenThe above and other tasks, features and advantages the invention will become apparent from the following description still evident in connection with the drawings licher. 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 einer Anordnung eines Fehlertoleranz-Computers ent­ sprechend einem Ausführungsbeispiel der vorliegenden Erfindung, Fig. 3 is a block diagram showing an arrangement of a fault tolerant computer accordingly to an embodiment of the present invention,

Fig. 4 ein Blockschaltbild einer detaillier­ ten Anordnung eines Prozessormoduls nach Fig. 3, Fig. 4 is a block diagram of a detaillier th arrangement of a processor module according to FIG. 3,

Fig. 5 ein Schaltbild zum Beschreiben der Signalzustände zwischen der Systembus- Schnittstelle und dem Systembus, Fig. 5 is a diagram for describing the signal states between the system bus interface and the system bus,

Fig. 6 ein Blockschaltbild, daß eine detail­ lierte Anordnung von gedoppelten Spei­ chermodulen nach Fig. 3 darstellt, Fig. 6 is a block circuit diagram showing a detailed arrangement of profiled doubled SpeI chermodulen of FIG. 3 represents

Fig. 7 ein Flußdiagramm, das die Betriebswei­ se des Ausführungsbeispiels nach Fig. 4 darstellt, das in Erwiderung auf die Leseanfrage des Prozessors durchge­ führt wird, Fig. 7 is a flowchart illustrating the Betriebswei se of the embodiment of Fig. 4, the Runaway in response to the reading request of the processor executes,

Fig. 8 ein Flußdiagramm, das die Operation des Ausführungsbeispiels nach Fig. 4 zeigt, das in Erwiderung auf die Schreibanfrage des Prozessors durch­ geführt wird, FIG. 8 is a flowchart showing the operation of the embodiment of FIG. 4 performed in response to the processor write request.

Fig. 9 ein Flußdiagramm, das die Betriebswei­ se des Ausführungsbeispiels nach Fig. 4 zeigt, die zum Zeitpunkt des Festle­ gens oder Einstellens des Wiederher­ stellungspunktes durchgeführt wird, Fig. 9 is a flowchart showing the Betriebswei se of the embodiment of Fig. 4, the gene or adjusting the restore is performed at the time of Festle mount point,

Fig. 10 ein Flußdiagramm, das die Cache-Flush- Operation bei dem Ausführungsbeispiel nach Fig. 4 angibt, Fig. 10 is a flowchart indicative of the cache flush operation in the embodiment according to Fig. 4,

Fig. 11 eine Darstellung des Signalflusses des Ausführungsbeispiels nach Fig. 3 zum Zeitpunkt der Cache-Flush-Operation, Fig. 11 is an illustration of the signal flow of the embodiment of Fig. 3 at the time of the cache flush operation,

Fig. 12 eine Darstellung von Signalflüssen des Ausführungsbeispiels nach Fig. 3 zum Zeitpunkt des Cache-Blocks-Transfers, Fig. 12 is an illustration of signal flows of the embodiment of Fig. 3 at the time of the cache block transfers,

Fig. 13 eine Darstellung der Zeitabfolge von Signalen bei einem Ausführungsbeispiel nach Fig. 3, Fig. 13 is a representation of the time sequence of signals in an embodiment according to Fig. 3,

Fig. 14 eine Darstellung der verteilten Erwi­ derungsoperation bei dem Ausführungs­ beispiel nach Fig. 3, Fig. 14 is an illustration of the distributed Erwi alteration operation in the execution example according to Fig. 3,

Fig. 15 ein Blockschaltbild, das die Anordnung einer Sache-Steuereinrichtung nach dem Stand der Technik zeigt, Fig. 15 is a block diagram showing the arrangement of a case-control device according to the prior art,

Fig. 16 ein Flußdiagramm, das den Betrieb der in Fig. 15 dargestellten Cache-Steuer­ einrichtung nach dem Stand der Technik zum Zeitpunkt des Lesens von Daten wiedergibt, Fig. 16 is a flow chart means the operation of the cache control shown in Fig. 15 according to the prior art at the time of reading data representing,

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

Fig. 18 eine Anordnung eines Fehlertoleranz- Computers nach dem Stand der Technik, Fig. 18 shows an arrangement of a fault tolerant computer according to the prior art,

Fig. 19 eine detaillierte Anordnung eines Pro­ zessormoduls in dem Computer nach Fig. 18, Fig. 19 shows a detailed arrangement of a Pro zessormoduls, in the computer of FIG. 18

Fig. 20 eine detaillierte Anordnung eines Speichermoduls in dem Computer nach Fig. 18, Fig. 20 shows a detailed arrangement of a memory module in the computer of FIG. 18,

Fig. 21 ein Flußdiagramm, das die Cache-Flush- Operation in dem Computer nach Fig. 18 darstellt, und FIG. 21 is a flow diagram illustrating the cache flush operation in the computer of FIG. 18; and

Fig. 22 eine Darstellung der Koordinaten zwi­ schen dem Hauptspeicher und dem Cache- Speicher. Fig. 22 is an illustration of the coordinates Zvi rule the main memory and the cache memory.

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

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. 16). 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. 16).

Im Falle, daß eine vom Mikroprozessor 1 gelieferte Anfrage eine Leseanfrage ist, wird nunmehr unter Be­ zugnahme 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 read 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 coinciding with 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 an "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 input 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 entry 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 required 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 be written into 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 von nur 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 effects a write-back of only input addresses of the cache blocks registered in the stack 25 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.

Fig. 3 zeigt eine Anordnung eines Fehlertoleranz-Com­ puters nach der vorliegenden Erfindung. In der Dar­ stellung bezeichnen 301 ein Prozessormodul, 303 ein Speichermodul und 302 ist ein Systembus für ihre Ver­ wendung. Das Prozessormodul oder der Prozessorbau­ stein 301 ist mit M×N (M und N sind ganze Zahlen gleich 1 oder mehr als 1) Backup (Sicherungs-Anord­ nungen) aufgebaut, die M laufende Systeme und N Er­ satz (Backup) Systeme umfaßt. Das Prozessormodul aus dem Ersatzsystem folgt dem Unterbrechungsprozeß im Falle, daß der Prozessor des laufenden Systems aus­ fällt. Die Prozessormodule weisen unabhängig davon, ob sie im laufenden System oder im Ersatzsystem sind, den gleichen Aufbau auf. Obwohl es für die Systemope­ ration ausreichend ist, daß er nur als einziger Bus aufgebaut ist, weist der Systembus 302 eine gedoppel­ te Anordnung auf, um zu verhindern, daß die Operation des gesamten Systems aufgrund von Schwierigkeiten in dem Bus gestoppt wird. Obwohl in Fig. 3 der Systembus 302 nur als einzige Leitung dargestellt ist, besteht er aus einem Adreß/Datenbus, einem Synchronisierbus und einem Steuerbus. Der Adreß/Datenbus ist ein Bus, der aus einer Vielzahl von Signalleitungen zum Über­ tragen von Adressen, die die Speicheradressen zum Speichern der Daten und auch zum Übertragen der in dieser Adresse zu speichernden Daten bezeichnen. Der Synchronisierbus dient zum Übertragen eines Quit­ tungssignals, um den Gleichlauf der Adressen und des Datentransfers zu liefern, und umfaßt Adress-Trans­ fer-Synchronisierung AS*, AK*, AI* und Datentransfer­ synchronisierung DS*, DK*, DI* (* bezeichnet ein nega­ tives logisches Signal). Der Steuerbus dient zum Wei­ terleiten der Adressen, Daten und der notwendigen Informationen, die sich vom Synchronisiersignal un­ terscheiden und umfaßt CT* zum Liefern der Informa­ tion des Busarbeitsvorganges des "Cache-Flush", BS* zum Liefern der Information, daß es unmöglich ist, den Anfragevorgang durchzuführen, weil eines der Speichermodule sich in einer unterschiedlichen Opera­ tion befindet, EB* zum Angeben des letzten Daten­ transfers der Daten eines Cache-Blocks und IR*, wobei ein Speichermodul, das im Betrieb ist, die Ungültig­ keit der Antwort in bezug auf das andere Speichermo­ dul verlangt, das die die Vollendung des Prozesses für den Datentransfer vom FIFO-Speicher zu dem RAM- Feld anzeigende Antwort erzeugt. Diese Busse sind über die Bus-Schnittstelle mit den Prozessor/Spei­ chermodulen gekoppelt. Obwohl in diesem Ausführungs­ beispiel der Systembus doppelt ausgeführt ist, sind diese zwei Busse so angeordnet, daß sie die gleiche Operation durchführen, und daher wird die folgende Beschreibung nur unter Bezugnahme auf einen Bus gege­ ben. Fig. 3 shows an arrangement of a fault tolerance Com puter according to the present invention. In the illustration, 301 denotes a processor module, 303 a memory module and 302 is a system bus for their use. The processor module or processor block 301 is constructed with M × N (M and N are integers equal to 1 or more than 1). Backup (backup arrangements) comprising M running systems and N replacement (backup) systems. The processor module from the replacement system follows the interrupt process in the event that the processor of the running system fails. The processor modules have the same structure regardless of whether they are in the running system or in the replacement system. Although it is sufficient for the system operation to be constructed as a single bus, the system bus 302 has a double arrangement to prevent the operation of the entire system from being stopped due to difficulties in the bus. Although shown in FIG. 3, the system 302 only as a single line, it consists of an address / data bus, a synchronization bus and a control bus. The address / data bus is a bus which consists of a plurality of signal lines for the transmission of addresses which designate the memory addresses for storing the data and also for transmitting the data to be stored in this address. The synchronization bus is used to transmit a quit signal to provide the synchronization of the addresses and the data transfer, and includes address transfer synchronization AS *, AK *, AI * and data transfer synchronization DS *, DK *, DI * (* designated a negative logic signal). The control bus is for routing the addresses, data and necessary information different from the synchronizing signal, and includes CT * for providing the information of the cache flush bus operation, BS * for providing the information that it is impossible to carry out the request process because one of the memory modules is in a different operation, EB * for indicating the last data transfer of the data of a cache block and IR *, a memory module that is in operation invalidating the response in with respect to the other memory module that generates the response indicating completion of the process for data transfer from the FIFO memory to the RAM array. These buses are coupled to the processor / memory modules via the bus interface. Although the system bus is duplicated in this embodiment, these two buses are arranged to perform the same operation, and therefore the following description is given only with reference to one bus.

Das Speichermodul 303 ist doppelt ausgeführt, so daß es einen Master und einen Slave umfaßt (Haupt- und Nebenspeicher), die den gleichen physischen Speicher­ umfang (in Fig. 3, 303a, 303b und 303c, 303d) auf­ weisen und die auf physikalisch unterschiedlichen Trägern angeordnet sind, so daß sie für eine Vielzahl von Prozessormodulen verwendet werden können.The memory module 303 is double, so that it comprises a master and a slave (main and secondary storage), the same amount of physical memory (in Fig. 3, 303 a, 303 b and 303 c, 303 d) and which are arranged on physically different carriers so that they can be used for a large number of processor modules.

Fig. 4 zeigt eine detaillierte Anordnung eines Pro­ zessormoduls, wobei die Bezugszeichen 1902, 1908, 1910 und 1913 die gleichen Teile wie in der Vorrich­ tung nach dem Stand der Technik darstellen. In der Figur sind mit 401 ein Stapelspeicher (Speicherein­ richtung), der beispielsweise aus einem FIFO-Speicher (First-In First-Out) besteht, 402 einen Zähler zum Zählen der Anzahl der aktualisierten Cache-Blöcke in dem Cache-Speicher 1908, und 403 eine Kontrolleinheit (Kontrolleinrichtung) für den Cache-Speicher, 404 einen Komparator zum Vergleich der Adressen des von dem Prozessor 1902 verlangten Daten mit den Adressen in dem Blockzustandsspeicher 1910. Weiterhin bezeich­ nen 405 einen Busüberwachungskreis zum Überwachen der Operation der anderen mit dem Systembus gekoppelten Module zum Feststellen der Zeit, die für die Opera­ tion verlangt wird, um die Anpassung der Daten auf­ recht zu erhalten und die Kontrolleinheit 403 oder den Prozessor 1902 darüber zu informieren, daß die Operation verlangt wird, 406 ist ein Multiplexer zum Kombinieren der Daten und Daten, die dem Speichermo­ dul zugeführt werden, 407 ist eine Zeitschaltung zum Zählen der ablaufenden Zeit, 408, 411 bis 413 sind Steuerleitungen, 409 stellt eine Adreßleitung dar und 410 bezeichnet eine Datenleitung. Fig. 4 shows a detailed arrangement of a processor module, the reference numerals 1902 , 1908 , 1910 and 1913 representing the same parts as in the device according to the prior art. In the figure, 401 is a stack (storage device), which consists, for example, of a FIFO (First-In First-Out), 402 a counter for counting the number of updated cache blocks in the cache memory 1908 , and 403 a control unit (control unit) for the cache memory, 404 a comparator for comparing the addresses of the data requested by the processor 1902 with the addresses in the block state memory 1910 . Furthermore, 405 denotes a bus monitoring circuit for monitoring the operation of the other modules coupled to the system bus in order to determine the time required for the operation in order to maintain the adjustment of the data and to inform the control unit 403 or the processor 1902 of this that the operation is requested, 406 is a multiplexer for combining the data and data supplied to the memory module, 407 is a timer for counting the elapsed time, 408 , 411 to 413 are control lines, 409 is an address line, and 410 denotes a data line.

Der Prozessor 1902, der Cache-Speicher 1908 und der Multiplexer 406 sind miteinander durch die Datenlei­ tung 410 verbunden. Darüber hinaus sind der Prozessor 1902, der Cache-Speicher 1908, der Blockzustandsspei­ cher 1910, der Multiplexer 406, der Komparator 404 und der Stapelspeicher 401 miteinander über die Adreßleitung 409 verbunden. Weiterhin sind der Pro­ zessor 1902, die Kontrolleinheit 403, der Busüberwa­ chungskreis 405 und der Multiplexer 406 miteinander über die Steuerleitung 408 verbunden. Die Kontroll­ einrichtung 403, der Stapelspeicher 401 und der Zäh­ ler 402 sind miteinander über die Steuerleitung 411 gekoppelt. Der Cache-Speicher 1908, der Blockzu­ standsspeicher 1910, die Kontrolleinheit 403 und die Zeitschaltung 407 sind miteinander über die Steuer­ leitung 412 verbunden. Weiterhin sind der Prozessor 1902 und die Zeitschaltung 407 über die Steuerleitung 413 miteinander gekoppelt.The processor 1902 , the cache memory 1908 and the multiplexer 406 are connected to one another by the data line 410 . In addition, processor 1902 , cache memory 1908 , block state memory 1910 , multiplexer 406 , comparator 404, and stack memory 401 are interconnected via address line 409 . Furthermore, the processor 1902 , the control unit 403 , the bus monitoring circuit 405 and the multiplexer 406 are connected to one another via the control line 408 . The control device 403 , the stack 401 and the counter 402 are coupled to one another via the control line 411 . The cache memory 1908 , the block status memory 1910 , the control unit 403 and the timer 407 are connected to one another via the control line 412 . Furthermore, the processor 1902 and the timer 407 are coupled to one another via the control line 413 .

Fig. 5 ist eine Schaltung zum Beschreiben des Signal­ zustands zwischen der Systembus-Schnittstelle 1913 und dem Systembus 302. In der Darstellung ist ein Signal 503 auf dem Systembus 302 derart angeordnet, daß in der negativen Logik das "Assert" (gültig) ei­ nen niedrigen Pegel und das "Release" (ungültig) ei­ nen hohen Pegel bezeichnen. In der folgenden Be­ schreibung wird das Signal in dem Modul mit einem kleinen Buchstaben und das Signal auf dem Systembus mit einem großen Buchstaben bezeichnet. Somit wird das Ausgangssignal 501 vom Modul durch a angegeben und dieses Signal wird ein negatives logisches Signal a* am Ausgang 502 eines NOT (Nicht)-Kreises 505 und wird ein Signal A* auf dem Systembus 503. a* und A* sind durch eine verdrahtete ODER-Schaltung gekoppelt. Das bedeutet, wenn mindestens eines der Signale a* aller mit dem Systembus 503 gekoppelten Bus-Schnitt­ stellen gefordert (Asserted) ist, geht A* in den Zu­ stand des niedrigen Pegels und wenn alle a* Signale nicht freigegeben (Released) sind, geht A* nicht auf den hohen Pegel. Fig. 5 is a circuit for the signal status between the system bus interface 1913 and describing the system 302nd In the illustration, a signal 503 is arranged on the system bus 302 such that in the negative logic the "assert" (valid) denotes a low level and the "release" (invalid) denotes a high level. In the following description, the signal in the module is identified with a small letter and the signal on the system bus with a large letter. Thus, the output signal 501 from the module is indicated by a and this signal becomes a negative logic signal a * at the output 502 of a NOT (not) circuit 505 and becomes a signal A * on the system bus 503 . a * and A * are coupled by a wired OR circuit. This means that if at least one of the signals a * of all bus interfaces coupled to the system bus 503 is required (asserted), A * goes into the low level state and if all a * signals are not released (released) A * not on the high level.

Fig. 6 zeigt eine detaillierte Anordnung der doppel­ ten Speichermodule 303, wobei 2001 und 2007 Teile darstellen, die den gleichen Aufbau wie diejenigen der Vorrichtung nach dem Stand der Technik aufweisen. In der Darstellung bezeichnen 602 einen FIFO-Puffer (Pufferspeicher) zum kurzzeitigen Speichern von über den Systembus 302 gelieferten Daten, 603 einen Trei­ ber zum Treiben der Daten des RAM-Felds 2007 auf den Speicherbus 302, 604 eine Kommunikationssignalleitung (Kommunikationseinrichtung) für die Kommunikation zwischen den zwei Speichermodulen und 601 einen Steu­ erabschnitt (Steuereinrichtung) zum Steuern des Le­ sens/Schreibens der Daten in bezug auf das RAM-Feld 2007 und weiterhin zum Steuern der Kommunikationssi­ gnalleitung 604 und des FIFO-Puffers 602, wobei der Pufferspeicher durch ein FIFO-Speicher gebildet wird. Eines der Speichermodule ist der Hauptspeicher und das andere der Nebenspeicher (Master/Slave). Der Hauptspeicher/Nebenspeicher wird jeweils durch den Steuerabschnitt 601 bestätigt. Im Falle, daß beide normal sind, wird das "Assert" und "Release" des Si­ gnals zum Systembus 302 und der Transfer der Daten durch den Hauptspeicher repräsentiert. Die Speiche­ rung der Daten wird von beiden Speichermodulen durch­ geführt. Fig. 6 shows a detailed arrangement of the double-th memory modules 303 , 2001 and 2007 representing parts which have the same structure as those of the device according to the prior art. In the illustration, 602 denotes a FIFO buffer (buffer memory) for briefly storing data supplied via the system bus 302 , 603 a driver for driving the data of the RAM field 2007 onto the memory bus 302 , 604 a communication signal line (communication device) for the communication between the two memory modules and 601, a control section (controller) for controlling the reading / writing of the data with respect to the RAM array 2007 and further for controlling the communication signal line 604 and the FIFO buffer 602 , the buffer memory being a FIFO Memory is formed. One of the memory modules is the main memory and the other is the secondary memory (master / slave). The main memory / secondary memory is confirmed by the control section 601 , respectively. In the event that both are normal, the "assert" and "release" of the signal to system bus 302 and the transfer of data through main memory are represented. The storage of the data is carried out by both memory modules.

Ebenso wie in der Vorrichtung nach dem Stand der Technik ist das Wiederherstellverfahren dieses Aus­ führungsbeispiels zum Zeitpunkt des Auftretens eines Fehlers derart angeordnet, daß der Zustand, der er­ halten wird, wenn das System normal arbeitet, im Speichermodul gehalten wird (ein Wiederherstellpunkt wird gesetzt), wenn eine vorbestimmte Bedingung be­ friedigt wird (die im folgenden beschrieben wird), den Prozeß vom letzten Wiederherstellpunkt im Spei­ chermodul als Antwort auf die Erzeugung des Fehlers wieder beginnt. Hier wird eine Beschreibung hinsicht­ lich des Festsetzens des Wiederherstellpunktes und des Stapelspeichers 401 nach Fig. 4 gegeben. Die Speiche­ ranfrage vom Prozessor 1902 wird von der Kontrollein­ heit 403 bearbeitet. Die Betriebsweise zum Zeitpunkt der Leseanfrage vom Prozessor 1902 wird in bezug auf Fig. 7 erläutert. Die Kontrolleinheit 403 prüft zu­ nächst, ob die verlangten Daten in dem Cache-Speicher 1908 enthalten sind (701). Wenn die übereinstimmende Adresse in dem Blockzustandsspeicher 1910 vorhanden ist und das gültige Bit des entsprechenden Cache- Blocks "EIN" ist (706), wird der Prozeß genauso wie im System nach dem Stand der Technik durchgeführt und die geforderten Daten werden von dem Prozessor 1902 sofort ausgelesen (705). Wenn das gültige Bit des Cache-Blocks "AUS" ist, wird der geforderte Cache- Block aus dem Speichermodul 303 über die Systembus- Schnittstelle 1913 ausgelesen (704) und an den Pro­ zessor 1902 weitergeleitet, während sie in den Cache- Speicher 1908 geschrieben werden (705). Im Falle, daß die verlangten Daten nicht in dem Cache-Speicher 1908 vorhanden sind, wird geprüft, ob ein unbesetzter Ein­ gang in dem Cache-Speicher 1908 vorhanden ist (702). Wenn ein unbesetzter Eingang vorhanden ist, schreitet der Operationsfluß zu dem oben erwähnten Vorgang 704 fort. Wenn kein unbesetzter Eingang vorhanden ist, wird der Cache-Block, dessen modifiziertes Bit "AUS" ist und der zu Beginn in der Cache-Leitung verwendet wird, ausgewählt (703) und dann geht der Operations­ fluß zu dem oben erwähnten Vorgang 704. Hier wird unter Cache-Leitung oder dergleichen eine Gruppe von Cache-Blöcken zum Speichern eines Blocks in dem Hauptspeicher (in dem Ausführungsbeispiel Speichermo­ dul) verstanden, und wie in Fig. 22 dargestellt wird, die die Korrespondenz zwischen dem Hauptspeicher und dem Cache-Speicher zeigt, werden der Block im Haupt­ speicher und der Cache-Block im voraus koordiniert.As in the prior art device, the recovery method of this embodiment at the time of the occurrence of an error is arranged so that the state it will hold when the system is operating normally is kept in the memory module (a recovery point is set) when a predetermined condition is satisfied (described below), the process restarts from the last restore point in the memory module in response to the generation of the error. Here, a description is given regarding the setting of the restore point and the stack 401 shown in FIG. 4. The memory request from processor 1902 is processed by control unit 403 . The operation at the time of the read request from processor 1902 is explained with reference to FIG. 7. The control unit 403 first checks whether the requested data is contained in the cache memory 1908 ( 701 ). If the matching address is in block state memory 1910 and the valid bit of the corresponding cache block is "ON" ( 706 ), the process is performed in the same manner as in the prior art system and the requested data is immediately processed by processor 1902 read out ( 705 ). If the valid bit of the cache block is "OFF", the requested cache block is read ( 704 ) from the memory module 303 via the system bus interface 1913 and passed to the processor 1902 while it is being written to the cache memory 1908 become ( 705 ). In the event that the requested data is not in the cache 1908 , it is checked whether there is an unoccupied input in the cache 1908 ( 702 ). If there is an unoccupied input, the flow of operations proceeds to operation 704 mentioned above. If there is no vacant input, the cache block whose modified bit is "OFF" and which is initially used in the cache line is selected ( 703 ) and then the operation flow goes to operation 704 mentioned above. Here, cache line or the like is understood to be a group of cache blocks for storing a block in the main memory (memory module in the embodiment), and as shown in Fig. 22, the correspondence between the main memory and the cache memory shows, the block in the main memory and the cache block are coordinated in advance.

Die Operation zum Zeitpunkt der Schreibanfrage auf­ grund des Prozessors 1902 wird im folgenden unter Bezugnahme auf Fig. 8 beschrieben. Die Kontrollein­ heit 403 prüft zuerst, ob die geforderten Daten im Cache-Speicher 1908 vorhanden sind (801). Im Falle, daß die übereinstimmende Adresse in dem Blockzu­ standsspeicher 1910 vorhanden ist, wird das gültige Bit des angefragten Cache-Blocks geprüft (811). Wenn das gültige Bit des Cache-Blocks "EIN" ist, wird das modifizierte Bit geprüft (812). Wenn das modifizierte Bit ebenfalls "EIN" ist, werden die Daten vom Pro­ zessor 1902 unmittelbar in diesen Cache-Block ge­ schrieben (813). Im Falle, daß das gültige Bit "EIN" ist und das modifizierte Bit "AUS" ist, wird das mo­ difizierte Bit auf "EIN" gesetzt (805) und die Ein­ gangsadresse des Cache-Blocks wird in dem Stapelspei­ cher 401 registriert (806) und zusätzlich wird der Wert des Zählers 402 um eins inkrementiert (807) und die Daten werden in diesen Block geschrieben (808). Danach wird die Anzahl der nichtaktualisierten Blocks in der Cache-Leitung geprüft (809). Wenn sie nicht eins ist, wird der Wert des Zählers 402 mit einem vorbestimmten Wert verglichen (810). Wenn diese nicht übereinstimmen, wird die Schreiboperation beendet. In dem Fall, daß im Vorgang 809 die Anzahl der nichtak­ tualisierten Blocks eins ist oder daß im Vorgang 810 die Übereinstimmung festgestellt wird, wird das Set­ zen des Wiederherstellpunktes gestartet, wie in Fig. 9 dargestellt wird. Wenn andererseits das gültige Bit des verlangten Cache-Blocks "AUS" ist, wird der der Adresse entsprechende Cache-Block aus dem Speichermo­ dul ausgelesen und die Operation geht zum Vorgang 805. Wenn die vom Prozessor 1902 angeforderten Daten nicht im Cache-Speicher 1908 vorhanden sind, wird eine Entscheidung dahingehend vorgenommen, ob ein unbesetzter Eingang in dem Cache-Speicher 1908 vor­ handen ist (802). Wenn ein unbesetzter Eingang vor­ handen ist, geht die Operation zum Vorgang 804. Wenn kein unbesetzter Eingang vorhanden ist, wird der Ca­ che-Block der Cache-Leitung, bei dem das modifizierte Bit "AUS" ist und der zu Beginn verwendet wurde, aus­ gewählt (803) und dann geht die Operation zu dem Vor­ gang 804.The operation at the time of the write request due to the processor 1902 is described below with reference to FIG. 8. The control unit 403 first checks whether the requested data is present in the cache memory 1908 ( 801 ). In the event that the matching address exists in the block memory 1910 , the valid bit of the requested cache block is checked ( 811 ). If the valid bit of the cache block is "ON", the modified bit is checked ( 812 ). If the modified bit is also "ON", the data from processor 1902 is immediately written to this cache block ( 813 ). In the event that the valid bit is "ON" and the modified bit is "OFF", the modified bit is set to "ON" ( 805 ) and the input address of the cache block is registered in the stack memory 401 ( 806 ) and in addition, the value of counter 402 is incremented by one ( 807 ) and the data is written to this block ( 808 ). The number of non-updated blocks in the cache line is then checked ( 809 ). If it is not one, the value of counter 402 is compared to a predetermined value ( 810 ). If they do not match, the write operation is ended. In the event that the number of non-updated blocks is one in operation 809 or if the match is found in operation 810 , the setting of the restore point is started, as shown in FIG. 9. On the other hand, if the valid bit of the requested cache block is "OFF", the cache block corresponding to the address is read from the memory module and the operation proceeds to operation 805 . If the data requested by processor 1902 is not in cache 1908 , a decision is made as to whether there is an unoccupied input in cache 1908 ( 802 ). If there is an unoccupied input, the operation proceeds to operation 804 . If there is no vacant input, the cache line of the cache line with the modified bit "OFF" and which was initially used is selected ( 803 ) and then the operation proceeds to operation 804 .

Entsprechend diesem Ausführungsbeispiel wird der Wie­ derherstellpunkt in dem Falle gesetzt, daß der Cache- Block der Cache-Leitung, in dem das modifizierte Bit "AUS" ist, eins wird, nachdem der erwähnte Cache- Block aktualisiert wird, oder die Anzahl der aktuali­ sierten Cache-Blöcke in dem Cache-Speicher einen vor­ bestimmten Wert erreicht. Wenn diese Fälle innerhalb eines vorbestimmten Zeitraums nicht auftreten, wird der Wiederherstellpunkt gleichfalls mittels der Zeit­ schaltung 407 gesetzt, wie in Fig. 9 dargestellt wird.According to this embodiment, the restore point is set in the event that the cache line of the cache line in which the modified bit is "OFF" becomes one after the mentioned cache block is updated or the number of updated ones Cache blocks in the cache memory reach a predetermined value. If these cases do not occur within a predetermined period of time, the restore point is also set by means of the timing circuit 407 , as shown in FIG. 9.

Obwohl in diesem Ausführungsbeispiel die Vorgänge 805 bis 808 so angeordnet sind, daß sie kontinuierlich durchgeführt werden, ist es zweckmäßig, diese Vorgän­ ge parallel auszuführen. Zusätzlich ist es ebenfalls in diesem Ausführungsbeispiel zweckmäßig, daß die Anzahl der aktualisierten Cache-Blocks im Cache-Spei­ cher durch das System festgelegt oder programmierbar ist. Obwohl die Anzahl der nichtaktualisierten Cache- Blöcke per Cache-Line auf eins gesetzt wird, ist die­ ses Ausführungsbeispiel nicht darauf begrenzt, aber es ist genug, wenn der nichtaktualisierte Cache-Block vorhanden ist, um das interne Register des Prozessors 1902 zum Zeitpunkt des Setzens des Wiederherstell­ punktes auszugeben.In this embodiment, although the operations 805 to 808 are arranged to be carried out continuously, it is appropriate to perform these operations in parallel. In addition, it is also expedient in this exemplary embodiment that the number of updated cache blocks in the cache memory is fixed or programmable by the system. Although the number of un-updated cache blocks per cache line is set to one, this embodiment is not limited to this, but it is enough if the un-updated cache block is present around the internal register of processor 1902 at the time of setting of the recovery point.

Weiter ist in dem oben beschriebenen Ausführungsbei­ spiel im Falle, daß der Busüberwachungskreis 405 in dem Prozessormodul vorgesehen ist, wie in Fig. 4 dar­ gestellt, und daß der Busüberwachungskreis 405 fest­ stellt, daß der Systembus 302 den aktualisierten Ca­ che-Block im Cache-Speicher 1908 anfordert, ist es gleichfalls möglich, den Wiederherstellpunkt wie in Fig. 9 dargestellt, zu setzen. In diesem Fall kann die Bedingung, daß das Setzen des Wiederherstellpunk­ tes aufgrund des Busüberwachungskreises 405 nicht innerhalb eines vorbestimmten Zeitraums durchgeführt wird, weiterhin zu den Setzbedingungen des Wiederher­ stellpunktes aufgrund der Zeitschaltung 407 hinzuge­ fügt werden.Further, in the embodiment described above, in the event that the bus monitor circuit 405 is provided in the processor module, as shown in FIG. 4, and that the bus monitor circuit 405 determines that the system bus 302 caches the updated cache block. If memory 1908 requests, it is also possible to set the restore point as shown in FIG . In this case, the condition that the setting of the recovery point due to the bus monitoring circuit 405 is not performed within a predetermined period of time can further be added to the setting conditions of the recovery point due to the timing circuit 407 .

Es wird unter Bezugnahme auf Fig. 9 die Operation des Setzens des Wiederherstellpunktes beschrieben. Wenn die Bedingung für das Setzen des Wiederherstellpunk­ tes, wie oben beschrieben, befriedigt ist, wird eine Unterbrechungsanfrage von der Kontrolleinheit 403 oder der Zeitschaltung 407 über die Steuerleitungen 408 und 413 an den Prozessor 1902 erzeugt. In Erwide­ rung auf die Unterbrechungsanfrage unterbricht der Prozessor 1902 den Prozeß und schreibt dann in den nichtaktualisierten Cache-Block des Cache-Speichers 1908 die Inhalte des internen Registers zum Zeitpunkt des Empfangs der Unterbrechungsanfrage (901). Das modifizierte Bit des Cache-Blocks, in den die Inhalte des internen Registers geschrieben wurden, wird auf "EIN" gesetzt (902) und die Eingangsadresse dieses Blocks wird in dem Stapelspeicher 401 registriert (903).The operation of the restore point setting will be described with reference to FIG. 9. When the condition for setting the restore point as described above is satisfied, an interrupt request is generated by the control unit 403 or the timer 407 via the control lines 408 and 413 to the processor 1902 . In response to the interrupt request, processor 1902 interrupts the process and then writes the contents of the internal register to the non-updated cache block of cache memory 1908 at the time the interrupt request is received ( 901 ). The modified bit of the cache block in which the contents of the internal register have been written is set to "ON" ( 902 ) and the input address of this block is registered in the stack 401 ( 903 ).

Weiterhin wird die Beschreibung unter Bezugnahme auf Fig. 10 hinsichtlich der Cache-Flush-Operation (904) gegeben. Die Kontrolleinheit 403 ist mit einem Ar­ beitszähler ausgerüstet, der zum Zeitpunkt des Starts der Cache-Flush-Operation zurückgesetzt wird (1001). Die in dem Stapelspeicher 401 gespeicherte Eingangs­ adresse des Cache-Blocks wird ausgelesen (1002), so daß der dieser Adresse entsprechende Cache-Block aus dem Cache-Speicher 1908 abgerufen wird (1003), um über die Systembus-Schnittstelle 1913 an das ein­ schlägige Speichermodul weitergeleitet zu werden (1004). In Erwiderung auf den normalen Transfer wird der Arbeitszähler inkrementiert (1005) und es wird geprüft, ob der Wert des Arbeitszählers mit dem Wert des Zählers 402 übereinstimmt (1006). Wenn keine Übereinstimmung vorhanden ist, wird der Prozeß wie­ derholt durchgeführt, bis die Übereinstimmung er­ reicht wird. In Erwiderung auf die Beendigung der Cache-Flush-Operation wird geprüft, ob die Daten nor­ mal zugeführt wurden oder nicht (905). Im Falle der normalen Beendigung wird der Eingang des Stapelspei­ chers 401 freigegeben und das modifizierte Bit wird auf "AUS" gesetzt (907). Danach wird der Zähler 402 zurückgesetzt (908) und die Zeitschaltung 407 zurück­ gesetzt (909). Wenn anomal beendet wurde, wird der Prozeß einmal wieder begonnen (910). Der zweite Wie­ derholvorgang wird als Fehler behandelt (911). Furthermore, the description will be made with reference to Fig. 10 regarding the cache flush operation ( 904 ). The control unit 403 is equipped with an operation counter which is reset at the time the cache flush operation is started ( 1001 ). The input address of the cache block stored in the stack 401 is read out ( 1002 ), so that the cache block corresponding to this address is retrieved from the cache memory 1908 ( 1003 ) in order to be sent via the system bus interface 1913 to the relevant one Memory module to be forwarded ( 1004 ). In response to the normal transfer, the work counter is incremented ( 1005 ) and a check is made to see if the value of the work counter matches the value of counter 402 ( 1006 ). If there is no match, the process is repeated until the match is reached. In response to the completion of the cache flush operation, a check is made to see if the data has been fed normally or not ( 905 ). In the event of normal termination, the input of stack memory 401 is enabled and the modified bit is set to "OFF" ( 907 ). The counter 402 is then reset ( 908 ) and the timer 407 is reset ( 909 ). If abnormally ended, the process is started again ( 910 ). The second repeat is treated as an error ( 911 ).

Im folgenden wird die Beschreibung hinsichtlich der Kommunikationsoperation zwischen den Speichermodulen gegeben. In Fig. 6 werden im Falle, daß ein Signal vom Prozessormodul über den Systembus 302 zugeführt wird, der Hauptspeicher 303a (Master) und der Neben­ speicher (303b) (Slave) unabhängig angeordnet und sprechen auf das zugeführte Signal an. In den Fällen, in denen der Hauptspeicher 303a und der Nebenspeicher 303b normalerweise das Signal erhalten, sendet der Steuerabschnitt 601 das Signal zu dem anderen Ab­ schnitt über die Kommunikationssignalleitung 604. In dem Fall, daß beide das Signal normal erhalten, stellt der Hauptspeicher das Implement der Operation dar. Bei dieser Bedingung implementiert andererseits der Nebenspeicher 303b die Operation nicht. Im Falle, daß das Signal nicht vom Hauptspeicher 303a geliefert wird, wird die Tatsache des Auftretens einer Störung über die Systembus-Schnittstelle 2001 an den Prozes­ sormodul geliefert.The following is the description regarding the communication operation between the memory modules. In Fig. 6, in the event that a signal from the processor module is supplied via the system bus 302 , the main memory 303 a (master) and the secondary memory ( 303 b) (slave) are arranged independently and respond to the supplied signal. In cases in which the main memory 303 a and the sub-memory 303 b normally receive the signal, the control section 601 sends the signal to the other from section via the communication signal line 604th In the event that both receive the signal normally, the main memory represents the implementation of the operation. On the other hand, in this condition, the secondary memory 303 b does not implement the operation. In the event that the signal is not supplied by the main memory 303 a, the fact of the occurrence of a fault is supplied to the process module via the system bus interface 2001 .

Im folgenden wird die Beschreibung der Schreibopera­ tion vom FIFO-Puffer 602 zum RAM-Feld 2007 gegeben. Nachdem der FIFO-Puffer 602 normalerweise den Cache- Block durch die Cache-Flush-Transaktion erhält, liest der Steuerabschnitt 601 den Cache-Block aus dem FIFO- Puffer 602 aus, um einen Fehlerkorrekturcode zu er­ zeugen, der seinerseits in das RAM-Feld 2007 einge­ schrieben wird. Dieser Prozeß wird wiederholt durch­ geführt, bis alle Daten des FIFO-Puffers 602 in das RAM-Feld 2007 geschrieben sind. Diese Operation wird unabhängig in beiden Speichermodulen 303a und 303b des Haupt- und Nebenspeichers durchgeführt. Die dop­ pelt angeordneten Speichermodule liefern sich gegen­ seitig die die Beendigung angebende Information über die Kommunikationssignalleitung 604. Wenn beide Spei­ chermodule die normale Beendigung bestätigen, benach­ richtigt der Hauptspeicher das Prozessormodul von der Beendigung. Dann werden die Inhalte des FIFO-Spei­ chers gelöscht.The following is the description of the write operation from the FIFO buffer 602 to the RAM field 2007 . After the FIFO buffer 602 normally obtains the cache block through the cache flush transaction, the control section 601 reads the cache block from the FIFO buffer 602 to generate an error correction code which, in turn, enters the RAM field 2007 is registered. This process is repeated until all of the data in the FIFO buffer 602 is written to the RAM field 2007 . This operation is carried out independently in both memory modules 303 a and 303 b of the main and secondary memory. The double-arranged memory modules provide each other with the information indicating the termination via the communication signal line 604 . If both memory modules confirm normal termination, main memory notifies the processor module of the termination. Then the contents of the FIFO memory are deleted.

Die Speichermodule 303a und 303b als Haupt- und Ne­ benspeicher erhalten unabhängig den Cache-Block von dem Systembus 302, um die Paritätsprüfung in der Sy­ stembus-Schnittstelle 2001 durchzuführen. Im Fall eines normalen Empfangs liefern die Speichermodule 303a und 303b sich gegenseitig die Signale über die Kommunikationssignalleitung 604. Wenn der Hauptspei­ cher 303a und der Nebenspeicher 303b die Signale nor­ mal empfangen, gibt die Systembus-Schnittstelle 2001 des Hauptspeichers und des Nebenspeichers eine Ant­ wort zurück zu dem Systembus. Wenn ein Paritätsfehler in dem Hauptspeicher 303a und/oder im Nebenspeicher 303b auftritt, wird die Tatsache des Auftretens des Fehlers an das Prozessormodul geliefert.The memory modules 303 a and 303 b as main and secondary memory independently receive the cache block from the system bus 302 in order to carry out the parity check in the system bus interface 2001 . In the case of normal reception, the memory modules 303 a and 303 b deliver the signals to one another via the communication signal line 604 . If the main memory 303 a and the secondary memory 303 b normally receive the signals, the system bus interface 2001 of the main memory and the secondary memory returns a response to the system bus. If a parity error in the main memory 303 a and / or b occurs in the secondary memory 303, the fact of the occurrence of the error is supplied to the processor module.

Wenn darüber hinaus ein Fehler bei der Schreibopera­ tion vom FIFO-Puffer 602 in das RAM-Feld 2007 auf­ tritt, wird die Schreiboperation des Cache-Blocks vom FIFO-Puffer 602 vom Beginn des Prozesses nochmal wie­ derholt. Wenn Fehler trotz der um vorbestimmte Male vorgegebenen Wiederholung des Prozesses auftritt, wird die Betrachtung hinsichtlich des Auftretens ei­ ner ständigen Störung durchgeführt und somit wird eine Trennung vom System vorgenommen. Der Haupt- und der Nebenspeicher 303a, 303b erhalten den wechselsei­ tigen Zustand durch die Kommunikationssignalleitung 604. Im Falle, daß der Nebenspeicher 303b vom System getrennt ist, stoppt der Hauptspeicher 303a die Kom­ munikation mit ihm und führt allein die Operation durch. Wenn andererseits der Hauptspeicher 303a vom System getrennt wird, arbeitet der Nebenspeicher 303b als Hauptspeicher und führt allein die Operation durch.In addition, if an error occurs in the write operation from the FIFO buffer 602 to the RAM array 2007 , the write operation of the cache block by the FIFO buffer 602 is repeated from the beginning of the process. If an error occurs despite the repetition of the process predetermined by predetermined times, the consideration of the occurrence of a constant malfunction is performed, and thus a disconnection from the system is made. The main and the secondary memory 303 a, 303 b receive the alternate state through the communication signal line 604 . In the event that the secondary memory 303 b is disconnected from the system, the main memory 303 a stops communication with it and performs the operation alone. On the other hand, when the main memory 303 a is disconnected from the system, the secondary memory 303 b functions as the main memory and performs the operation alone.

Obwohl im Ausführungsbeispiel der Pufferspeicher mit einem FIFO-Speicher aufgebaut ist, kann es ebenfalls zweckmäßig sein, ihn mit einem statischen RAM auszu­ führen.Although in the exemplary embodiment the buffer memory with a FIFO memory, it can also be expedient to run it with a static RAM to lead.

Die Operation hinsichtlich des Systembusses 302 wird im folgenden unter Bezugnahme auf die Fig. 11 bis 14 erläutert. In der folgenden Beschreibung wird die Forderung und die Freigabe des Signals aufgrund des Speichermoduls von dem Hauptspeicher nach der Kommuni­ kation zwischen den doppelten Speichermodulen durch­ geführt. In den Darstellungen bedeuten "-0" einen niedrigen Pegel und "-1" einen hohen Pegel.The operation on the system bus 302 is explained below with reference to FIGS. 11 to 14. In the following description, the request and the release of the signal due to the memory module is carried out from the main memory after the communication between the double memory modules. In the illustrations, "-0" means a low level and "-1" means a high level.

Das von dem Systembus 302 das Benutzungsrecht erhal­ tene Prozessormodul fordert das Cache-Flush-Transak­ tionssignal ct* (1001) an und gibt die Aufforderung zur Cache-Flush-Transaktion. Weiterhin wird ein Adreß-Sychronisiersignal as* gefordert (1102). Wenn festgestellt wird, daß AS* auf dem Systembus 302 auf den niedrigen Pegel schaltet, fordert das Speichermo­ dul ein Adreß-Synchronisiersignal ak* (1103) und gibt die den Empfang anzeigende Aufforderung ab und dekodiert dann die Information auf dem Systembus. Alle Speichermodule kennen die Cache-Flush-Transak­ tion, da CT* auf dem niedrigen Pegel liegt (1104) und fordern ein Datensynchronisiersignal di* (1105). Wenn die Durchführung unmöglich ist (1106), wird ein Be­ setzsignal bs* gefordert (1107), um die wiederholte Anfrage in bezug auf das Prozessormodul vorzusehen. Danach geben alle Speichermodule das Adreß-Synchro­ nisiersignal ai* frei (1108), um die Mitteilung zu geben, daß die Entscheidung der Teilnahme/Nichtteil­ nahme an der Transaktion vollendet ist. Das Prozes­ sormodul stellt fest, daß AI* auf den hohen Pegel springt und bestätigt das BS* auf dem hohen Pegel liegt (1109) und tritt danach in den Transferzyklus ein. Wenn BS* auf dem niedrigen Pegel liegt, ist der Prozeß beendet und wird nach dem Ablauf einer Zeit wieder begonnen.The processor module, which is granted the right of use by system bus 302, requests the cache flush transaction signal ct * ( 1001 ) and issues the request for the cache flush transaction. Furthermore, an address synchronization signal as * is requested ( 1102 ). If it is determined that AS * on system bus 302 goes low, the memory module requests an address sync signal ak * ( 1103 ) and issues the request indicating receipt, and then decodes the information on the system bus. All memory modules know the cache flush transaction since CT * is at the low level ( 1104 ) and request a data synchronization signal di * ( 1105 ). If execution is impossible ( 1106 ), a busy signal bs * is requested ( 1107 ) to provide the repeated request related to the processor module. Thereafter, all memory modules release the address sync signal ai * ( 1108 ) to give the message that the decision to participate / not participate in the transaction is complete. The process module determines that AI * jumps to the high level and confirms the BS * is high ( 1109 ) and then enters the transfer cycle. If BS * is at the low level, the process is finished and will start again after a period of time.

Nachfolgend wird der Cache-Block-Transfer (Fig. 12) gestartet. Das Prozessormodul gibt die Adresse des an den Speicher weiterzuleitenden aktualisierten Cache- Block an den Adreß/Datenbus ad[ ]* (1201) und bean­ sprucht das Datensynchronisiersignal ds* (1202). Wenn festgestellt wird, daß DS* auf den niedrigen Pegel geht, beansprucht das Speichermodul das Daten­ synchronisiersignal dk* (1203) und gibt di* frei (1204). Zu diesem Zeitpunkt dekodiert das Speichermo­ dul die Adresse und das Speichermodul, das Platz zum Speichern dieses Cache-Blocks hat, beansprucht das Datensynchronisiersignal di* (1207, 1208). Alle Spei­ chermodule geben das Datensynchronisiersignal dk* frei (1209) und liefern die die Tatsache anzeigende Information, daß die Entscheidung der Gewährung/Sper­ rung des Transfers in bezug auf die Adresse vollendet ist. Das Prozessormodul gibt das Datensynchronisier­ signal ds* und ein Blockendesignal eb* zu dem Zeit­ punkt frei, zu dem DI* auf den hohen Pegel geht (1205 1206).The cache block transfer ( FIG. 12) is then started. The processor module gives the address of the updated cache block to be forwarded to the memory to the address / data bus ad [] * ( 1201 ) and claims the data synchronization signal ds * ( 1202 ). If it is determined that DS * goes low, the memory module assumes data synchronization signal dk * ( 1203 ) and enables di * ( 1204 ). At this point, the memory module decodes the address and the memory module that has space to store this cache block takes up the data synchronization signal di * ( 1207 , 1208 ). All memory modules release the data synchronization signal dk * ( 1209 ) and provide the information indicating the fact that the decision to grant / block the transfer with respect to the address has been completed. The processor module releases the data synchronization signal ds * and an end of block signal eb * at the time when DI * goes high ( 1205 1206 ).

Die Transaktion tritt in den Zustand des Cache-Block- Datentransfers ein. Das Prozessormodul erfaßt, daß DK* auf den hohen Pegel geht und gibt die Cache- Block-Daten an den Adreß/Datenbus ad[ ]* (1210) und invertiert das Datensynchronisiersignal ds* (1211). Das Speichermodul, das für die Adresse verantwortlich ist, beansprucht das Datensynchronisiersignal dk* (1212), um die Mitteilung des Empfangs zu liefern und schreibt die Cache-Block-Daten in den FIFO-Puffer 602 und gibt das Datensynchronisiersignal di* frei (1213). Das Prozessormodul stellt fest, daß DI* auf den hohen Pegel geht und gibt die Daten des nächsten Cache-Blocks aus (1214) und invertiert ds* (1217). Das Speichermodul, das für die Adresse verantwort­ licht ist, beansprucht das Datensynchronisiersignal di* (1218), um die Mitteilung des Empfangs zu liefern und schreibt die Cache-Block-Daten in den FIFO-Puffer 602 und gibt das Datensynchronisiersignal dk* frei (1219). Der zuvor erwähnte Cache-Block-Transfer wird wiederholt durchgeführt, bis alle Cache-Block-Daten weitergeleitet sind (1222).The transaction enters the cache block data transfer state. The processor module detects that DK * goes high and passes the cache block data to the address / data bus ad [] * ( 1210 ) and inverts the data synchronization signal ds * ( 1211 ). The memory module responsible for the address asserts the data sync signal dk * ( 1212 ) to provide the notification of receipt and writes the cache block data to the FIFO buffer 602 and enables the data sync signal di * ( 1213 ) . The processor module determines that DI * goes high and outputs the data of the next cache block ( 1214 ) and inverts ds * ( 1217 ). The memory module responsible for the address asserts the data sync signal di * ( 1218 ) to provide the notification of receipt and writes the cache block data to the FIFO buffer 602 and enables the data sync signal dk * ( 1219 ). The aforementioned cache block transfer is performed repeatedly until all cache block data is forwarded ( 1222 ).

Zum Zeitpunkt des Transfers der letzten Daten des Cache-Blocks (1215) beansprucht das Prozessormodul das Blockendesignal eb* (1216). Nach dem Transfer der letzten Daten des Cache-Blocks gibt das Prozessormo­ dul die Adresse des nächsten Cache-Blocks an den Adreß/Datenbus ad[ ]* (1201) und fordert das Daten­ synchronisiersignal ds* (1202). Wenn festgestellt wird, daß DS* und EB* auf den niedrigen Pegel gehen, beansprucht das Speichermodul das Datensynchronisier­ signal dk* (1203) und gibt di* frei (1204). Das Spei­ chermodul dekodiert die Adresse, um den Empfang zu erlauben und den Cache-Block-Transfer zu wiederholen. Nach der Beendigung des Transfers aller aktualisier­ ten Cache-Blöcke gibt das Prozessormodul das Adreß- Synchronisiersignal as* (1221) sowie den Bus frei. Nach der Beendigung des Transfers vom FIFO-Puffer 602 zu dem RAM-Feld 2007, der in dem Speichermodul bear­ beitet wird, beendet das Prozessormodul die Transak­ tion.At the time of the transfer of the last data of the cache block ( 1215 ), the processor module uses the block end signal eb * ( 1216 ). After the transfer of the last data of the cache block, the processor module sends the address of the next cache block to the address / data bus ad [] * ( 1201 ) and requests the data synchronization signal ds * ( 1202 ). If it is determined that DS * and EB * go low, the memory module assumes the data synchronization signal dk * ( 1203 ) and releases di * ( 1204 ). The memory module decodes the address to allow reception and repeat the cache block transfer. After the transfer of all updated cache blocks has ended, the processor module releases the address synchronization signal as * ( 1221 ) and the bus. Upon completion of the transfer from FIFO buffer 602 to RAM field 2007 being processed in the memory module, the processor module ends the transaction.

Im Falle, daß das Speichermodul eine lange Zeit für den Transfer vom FIFO-Puffer 602 zum RAM-Feld 2007 benötigt, so daß die Antwort das Prozessormodul ver­ zögert wird, wird die Verteilungsantwort ausgewählt. In dem Falle beendet das Prozessormodul die Transak­ tion, ohne auf die Antwort vom Speichermodul zu war­ ten. Zum Zeitpunkt der Beendigung des Transfervorgan­ ges greift das Speichermodul auf das Prozessormodul über den Systembus 302 zu, um die Beendigungsantwort zurückzugeben. Im Falle, daß in Fig. 14 eines der Speichermodule in dem Prozeßbeendigungszustand ist und das andere Speichermodul im Verarbeitungszustand ist, detektiert das nichtvollendete Speichermodul den Zugriff (Beendigungssignal) des Speichermoduls mit Prozeßbeendigung an das Prozessormodul (1410), um eine Antwortungültig-Anfrage ir* zu fordern (1403). Das Speichermodul mit vollendetem Prozeß stellt fest, daß ir* auf dem niedrigen Pegel ist und unterbricht daraufhin den Antwortvorgang (1404). Der Zugriff (1406) des darauffolgend vollendeten Speichermoduls zu dem Prozessormodul wird gültig und der Cache- Flush-Vorgang wird beendet, wenn das Prozessormodul diese Antwort erhält (1409).In the event that the memory module takes a long time to transfer from FIFO buffer 602 to RAM array 2007 , so that the response delays the processor module, the distribution response is selected. In that case, the processor module ends the transaction without waiting for the response from the memory module. At the time the transfer operation is completed, the memory module accesses the processor module via system bus 302 to return the completion response. In the event that in FIG. 14 one of the memory modules is in the process termination state and the other memory module is in the processing state, the incomplete memory module detects the access (termination signal) of the memory module with process termination to the processor module ( 1410 ) in order to issue an invalid response request ir * to demand ( 1403 ). The processing-complete memory module determines that ir * is low and then interrupts the response ( 1404 ). Access ( 1406 ) of the subsequently completed memory module to the processor module becomes valid and the cache flush process is terminated when the processor module receives this response ( 1409 ).

In dem Datentransfersystem für die Cache-Flush-Opera­ tion werden die Cache-Flush-Informationseinrichtung die Cache-Block-Transfereinrichtung und die Antwort­ einrichtung durch die Kontrolleinheit 403, den Pro­ zessor 1902 im Prozessormodul und durch den Steuer­ abschnitt 601 im Speichermodul realisiert. In the data transfer system for the cache flush operation, the cache flush information device, the cache block transfer device and the response device are implemented by the control unit 403 , the processor 1902 in the processor module and by the control section 601 in the memory module.

Bei der Cache-Steuereinrichtung dieser Erfindung sind eine Speichereinrichtung zum Speichern der Eingangs­ adressen des aktualisierten Cache-Blocks und die Kon­ trolleinrichtung zum Registrieren der Eingangsadresse des aktualisierten Cache-Blocks in die zuvor erwähnte Speichereinrichtung und zum Durchführen des Cache- Flush-Transfers in bezug auf die registrierte Ein­ gangsadresse hinsichtlich der Speichereinrichtung zum Zeitpunkt des Cache-Flushs vorgesehen, wobei es mög­ lich ist, die für den Cache-Flush verlangte Zeit ab­ zukürzen und den Prozeß mit hoher Geschwindigkeit bei gleichbleibender Zuverlässigkeit durchzuführen.In the cache controller of this invention a storage device for storing the input addresses of the updated cache block and the con roll device for registering the input address of the updated cache block into the previously mentioned Storage device and for performing the cache Flush transfers related to the registered one gear address with regard to the storage device for Time of the cache flush provided, where possible is the time required for the cache flush shorten and the process at high speed constant reliability.

Darüber hinaus der Fehlertoleranzcomputer der Erfin­ dung mit einer entsprechenden Speichereinrichtung und Kontrolleinrichtung ausgerüstet, um dadurch die Ca­ che-Flush-Operation bei hoher Geschwindigkeit zu er­ möglichen.In addition, the Erfin fault tolerance computer with a corresponding storage device and Control device equipped to thereby approx che flush operation at high speed possible.

Zusätzlich wird mit dem Zähler zum Zählen der Anzahl der aktualisierten Cache-Blöcke, der Zeitschaltung zur Messung der abgelaufenen Zeit und dem Busüberwa­ chungskreis zum Überwachen des Systembus der Wieder­ herstellpunkt unter der Bedingung festgesetzt, daß die Anzahl der Cache-Blöcke des Cache-Speichers, die bei den jeweiligen Linien oder Leitungen nicht aktua­ lisiert sind, einen vorbestimmten Wert erreicht, die Gesamtanzahl der aktualisierten Cache-Blöcke in dem Cache-Speicher einen vorbestimmten Wert erreicht, ein anderes Prozessormodul auf den aktualisierten Cache- Block im Cache-Speicher über das Bussystem Bezug nimmt oder irgendeiner der zuvor erwähnten Fälle nicht in den vorbestimmten Zeitraum auftritt. Somit ist es möglich, das maximale Intervall der Wiederher­ stellpunkte sicherzustellen, um eine Echtzeitverar­ beitung zu realisieren.In addition, the counter is used to count the number updated cache blocks, timing for measuring elapsed time and bus monitoring circuit for monitoring the system bus of the re Manufacturing point set on the condition that the number of cache blocks of cache memory that not up to date for the respective lines or lines lized are reached a predetermined value, the Total number of cache blocks updated in the Cache reaches a predetermined value other processor module on the updated cache Block in cache memory related to the bus system takes or any of the aforementioned cases does not occur in the predetermined period. Consequently it is possible to restore the maximum interval  to ensure positioning points to ensure real-time processing to realize processing.

Darüber hinaus kann mit dem in dem Speichermodul vor­ gesehenen und in dem gleichen physischen Raum doppelt vorgesehenen Pufferspeicher die Cache-Flush-Transak­ tion aufgrund der Cache-Flush-Operation nur einmal durchgeführt werden, wodurch die für das Setzen des Wiederherstellpunktes verlangte Zeit verrringert wird.It can also be used in the memory module seen and double in the same physical space provided cache memory the cache flush transak tion due to the cache flush operation only once be carried out, which means that for setting the Restore point required time reduced becomes.

Weiterhin bezeichnet das Prozessormodul zum Durchfüh­ ren der Cache-Flush-Operation die Cache-Flush-Trans­ aktion und in Antwort auf die Bezeichnung wählen die einschlägigen Speichermodule die Cache-Flush-Informa­ tionseinrichtung zum Vorbereiten des Empfangs des Cache-Flushs und das Speichermodul zum Speichern des Cache-Blocks mit dem Transfer der Cache-Block-Adres­ se, und die Cache-Block-Transfereinrichtung ist vor­ gesehen, die kontinuierlich den Transferzyklus des Cache-Blocks durchführt, in dem der Datentransfer des Cache-Blocks durchgeführt wird, wobei der Cache-Flush durch nur einmaliges Durchführen der Bustransaktion realisiert werden, wodurch die für das Setzen des Wiederherstellpunktes notwendige Zeit reduziert wer­ den kann.Furthermore, the processor module designates for implementation cache flush operation, the cache flush trans action and in response to the designation choose the relevant memory modules the cache flush informa tion device for preparing the reception of the Cache flushes and the memory module for storing the Cache blocks with the transfer of the cache block addresses se, and the cache block transfer facility is in front seen that continuously the transfer cycle of the Executes cache blocks in which the data transfer of the Cache blocks is performed, the cache flush by performing the bus transaction only once can be realized, whereby the for the setting of the Restore point necessary time who reduced that can.

Weiterhin wird mit der Cache-Block-Transfereinrich­ tung der Cache-Block an den Pufferspeicher weiterge­ leitet und nach Beendigung der Transaktion führt das Speichermodul den Datentransfer vom Pufferspeicher zum RAM-Feld durch und erhält erneut den Bus nach der Vollendung des Prozesses, wobei die Antworteinrich­ tung zum Zurückgeben der Antwort an das Prozessormo­ dul den Systembus freigibt, so daß eine effektive Verwendung des Systembus wirklich ist.Furthermore, with the cache block transfer device device the cache block forwarded to the buffer memory leads and upon completion of the transaction that leads Memory module the data transfer from the buffer memory to the RAM field and receives the bus again after the Completion of the process, the responder device to return the answer to the processor  dul releases the system bus, so that an effective System bus really is.

Claims (10)

1. Cache-Steuereinrichtung zur Steuerung eines Ca­ che-Speichers des Zurückschreibtyps mit
einer Speichereinrichtung zum Speichern einer Eingangsadresse eines aktualisierten Cache- Blocks und
einer Kontrolleinheit zum Registrieren der Ein­ gangsadresse des aktualisierten Cache-Blocks in die Speichereinrichtung und darüber hinaus zum Durchführen eines Cache-Flush-Transfers hin­ sichtlich der registrierten Eingangsadresse un­ ter Bezugnahme auf die Speichereinrichtung zum Zeitpunkt des Cache-Flush.
1. Cache controller for controlling a write-back type cache with
a memory device for storing an input address of an updated cache block and
a control unit for registering the input address of the updated cache block into the storage device and, moreover, for performing a cache flush transfer with respect to the registered input address with reference to the storage device at the time of the cache flush.
2. Cache-Steuereinrichtung nach Anspruch 1, die für einen Fehlertoleranzcomputer im Multiprozessor­ betrieb verwendet wird, bei dem jeder Prozessor ein Cache-Speicher des Zurückschreibtyps auf­ weist.2. Cache controller according to claim 1, which for a fault tolerance computer in the multiprocessor operation is used in which each processor a write-back cache points. 3. Cache-Steuereinrichtung nach Anspruch 2, die in einem Fehlertoleranzcomputer im Multiprozessor­ betrieb verwendet wird, mit einem Kennzeichen­ speicher, einem Komparator, einer Kontrollein­ heit und einem Busmonitor, mit einer Mehrzahl von Modulen, die einen Mikroprozessor, eine Ca­ che-Steuereinrichtung, einen Cache-Speicher und einen Schnittstellenkreis aufweisen, die mitein­ ander durch einen mit einem Hauptspeicher ver­ bundenen Systembus verbunden sind, dadurch gekennzeichnet, daß die Cache-Steuereinrichtung mit einem Sta­ pelspeicher als Speichereinrichtung zum Spei­ chern der Eingangsadresse des aktualisierten Cache-Blocks versehen ist, wobei der Stapelspei­ cher durch die Kontrolleinheit gespeichert wird und die Eingangsadresse des aktualisierten Ca­ che-Blocks in dem Stapelspeicher registriert wird, und wobei das Zurückschreiben hinsichtlich der registrierten Eingangsadressen, die sich auf den Stapelspeicher beziehen, durchgeführt wird, wenn die aktualisierten Cache-Blöcke alle zu­ rückzuschreiben sind.3. Cache controller according to claim 2, which in a fault tolerance computer in the multiprocessor operation is used with a license plate memory, a comparator, a control unit and a bus monitor, with a plurality of modules that have a microprocessor, a ca che controller, a cache and have an interface circle that coincide with one another other by one with a main memory bound system bus are connected, characterized, that the cache controller with a Sta pelspeicher as storage device for Spei  save the input address of the updated Cache blocks is provided, the stacking saved by the control unit and the input address of the updated approx che blocks registered in the stack , and being the write back regarding of the registered input addresses that are on get the stack is done, if the updated cache blocks are all too are to be written back. 4. Cache-Steuereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Speichereinrichtung ein Stapelspeicher ist, der aus einem FIFO-Speicher besteht.4. Cache control device according to claim 1, characterized characterized in that the storage device a Stack is from a FIFO memory consists. 5. Fehlertoleranzcomputer, der mit einer Mehrzahl von Prozessormodulen und einer Mehrzahl von Speichermodulen ausgerüstet ist, dadurch gekennzeichnet, daß das Prozessormodul einen Prozessor, einen Cache-Speicher des Zurückschreibtyps, eine Spei­ chereinrichtung zum Speichern einer Eingangs­ adresse eines von dem Prozessor aktualisierten Cache-Blocks und eine Kontrolleinheit zum Regi­ strieren der Eingangsadresse des aktualisierten Cache-Blocks und zum Weiterleiten eines Cache- Blocks entsprechend der registrierten Eingangs­ adresse an das Speichermodul unter Bezugnahme auf die Speichereinrichtung zum Zeitpunkt des Cache-Flush.5. Fault tolerance computer that with a plurality of processor modules and a plurality of Memory modules is equipped, characterized, that the processor module a processor, a Restore type cache, a store chereinrichtung for storing an input address of one updated by the processor Cache blocks and a control unit for the regi the input address of the updated Cache blocks and to forward a cache Blocks according to the registered input address to the memory module with reference on the storage device at the time of Cache flush. 6. Fehlertoleranzcomputer, der mit einer Mehrzahl von Prozessormodulen und einem Speichermodul ausgerüstet ist, dadurch gekennzeichnet, daß das Prozessormodul einen Prozessor, einen Cache- Speicher des Zurückschreibtyps, eine Steuerein­ richtung zum Steuern des Cache-Speichers, einen Zähler zum Zählen der Anzahl der aktualisierten Cache-Blöcke und eine Zeitschaltung zum Messen der abgelaufenen Zeit aufweist, wobei der Pro­ zessor einen Wiederherstellpunkt unter mindestens eine der Bedingungen festsetzt, daß:
  • a) die Anzahl der Cache-Blöcke in dem Cache- Speicher, die nicht durch Cache-Linien oder Leitungen aktualisiert sind, einen vorbe­ stimmten Wert erreicht,
  • b) die Gesamtanzahl der aktualisierten Cache- Blöcke in dem Cache-Speicher einen vorbe­ stimmten Wert erreicht, und
  • c) die in (a) und (b) dargestellten Fälle nicht in einer vorbestimmten Zeitdauer auf­ treten.
6. Fault tolerance computer, which is equipped with a plurality of processor modules and a memory module, characterized in that the processor module has a processor, a cache memory of the write-back type, a control device for controlling the cache memory, a counter for counting the number of updated Cache blocks and a timer for measuring the elapsed time, wherein the processor sets a restore point under at least one of the conditions that:
  • a) the number of cache blocks in the cache memory that are not updated by cache lines or lines reaches a predetermined value,
  • b) the total number of updated cache blocks in the cache memory reaches a predetermined value, and
  • c) the cases shown in (a) and (b) do not occur in a predetermined period of time.
7. Fehlertoleranzcomputer nach Anspruch 6, dadurch gekennzeichnet, daß das Prozessormodul mit einem Busüberwachungskreis zum Überwachen der Opera­ tion der unterschiedlichen Prozessormodule aus­ gerüstet ist, um den Wiederherstellpunkt zu set­ zen, wenn der lokalaktualisierte Cache-Block in dem Cache-Speicher von den unterschiedlichen Prozessormodulen zugegriffen wird oder wenn die­ se Zugriffsoperation nicht in einer vorbestimm­ ten Zeit durchgeführt wird.7. Fault tolerance computer according to claim 6, characterized characterized in that the processor module with a Bus monitoring circuit for monitoring the Opera tion of the different processor modules is set up to set the restore point zen when the locally updated cache block in the cache of the different ones Processor modules is accessed or if the se access operation is not in a predetermined time. 8. Fehlertoleranzcomputer, dadurch gekennzeichnet, daß er eine Vielzahl von Prozessormodulen und Speichermodule aufweist, die in dem gleichen physikalischen Speicherplatz doppelt angeordnet sind, wobei das Prozessormodul einen Prozessor, einen Cache-Speicher des Zurückschreibtyps und eine Steuereinrichtung zum Steuern des Cache- Speichers aufweist und wobei das Speichermodul einen Pufferspeicher zum kurzfristigen Speichern eines transferierten Cache-Blocks, eine Kommuni­ kationseinrichtung zum Herstellen der Kommunika­ tion zwischen zwei zugeordneten Speichermodulen und eine Kontrolleinheit zum Steuern des Puffer­ speichers und der Kommunikationseinrichtung auf­ weist.8. fault tolerance computer, characterized in that he has a variety of processor modules and  Has memory modules in the same physical storage space arranged twice are, the processor module being a processor, a write-back type cache and a control device for controlling the cache Has memory and wherein the memory module a buffer memory for short-term storage of a transferred cache block, a communication cation device for the production of communication tion between two assigned memory modules and a control unit for controlling the buffer memory and the communication device points. 9. Fehlertoleranzcomputer nach Anspruch 8, dadurch gekennzeichnet, daß er ein Datentransfersystem aufweist, das eine Cache-Flush-Informationsein­ richtung zum Benachrichtigen aller Speichermodu­ le über den Cache-Flush-Transfer und eine Cache- Block-Transfereinrichtung zum Weiterleiten einer Adresse und Daten bei jedem Cache-Block, um kon­ tinuierlich den Transfer aller aktualisierten Cache-Blöcke durchzuführen, aufweist.9. Fault tolerance computer according to claim 8, characterized characterized that he is a data transfer system which is cache flush information Direction to notify all memory modules le about the cache flush transfer and a cache Block transfer device for forwarding a Address and data for each cache block in order to the transfer of all updated To perform cache blocks. 10. Fehlertoleranzcomputer nach Anspruch 9, dadurch gekennzeichnet, daß das Datentransfersystem wei­ terhin mit einer Antworteinrichtung ausgerüstet ist, die, nachdem die Cache-Block-Transferein­ richtung alle die aktualisierten Cache-Blöcke an das Speichermodul weitergeleitet hat, eine von dem Speichermodul, in dem der empfangene Cache- Block zuletzt gespeichert ist, an das Prozessor­ modul zurückzuliefernde Antwort bewirkt.10. Fault tolerance computer according to claim 9, characterized characterized in that the data transfer system knows further equipped with an answering device which is after the cache block transfer direction to all of the updated cache blocks the memory module has forwarded one of the memory module in which the received cache Block last saved to the processor response to the module.
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 true DE4136729A1 (en) 1992-05-21
DE4136729C2 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)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0750262A2 (en) * 1995-06-19 1996-12-27 Kabushiki Kaisha Toshiba Apparatus for flushing the contents of a cache memory
WO1997022046A2 (en) * 1995-11-29 1997-06-19 Texas Micro Inc. Remote checkpoint memory system and protocol for fault-tolerant computer system
EP0828217A1 (en) * 1996-09-09 1998-03-11 Kabushiki Kaisha Toshiba Cache flush apparatus and computer system having the same
US5787243A (en) * 1994-06-10 1998-07-28 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2210480A (en) * 1987-10-02 1989-06-07 Sun Microsystems Inc Flush support

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2210480A (en) * 1987-10-02 1989-06-07 Sun Microsystems Inc Flush support

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Nikkei Electronics, Nr. 434, 16. November 1987, S. 159-174 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787243A (en) * 1994-06-10 1998-07-28 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
EP0750262A2 (en) * 1995-06-19 1996-12-27 Kabushiki Kaisha Toshiba Apparatus for flushing the contents of a cache memory
EP0750262A3 (en) * 1995-06-19 1998-01-21 Kabushiki Kaisha Toshiba Apparatus for flushing the contents of a cache memory
WO1997022046A2 (en) * 1995-11-29 1997-06-19 Texas Micro Inc. Remote checkpoint memory system and protocol for fault-tolerant computer system
WO1997022046A3 (en) * 1995-11-29 1997-09-25 Sequoia Systems Inc Remote checkpoint memory system and protocol for fault-tolerant computer system
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
EP0828217A1 (en) * 1996-09-09 1998-03-11 Kabushiki Kaisha Toshiba Cache flush apparatus and computer system having the same
US6490657B1 (en) 1996-09-09 2002-12-03 Kabushiki Kaisha Toshiba Cache flush apparatus and computer system having the same

Also Published As

Publication number Publication date
DE4136729C2 (en) 1995-07-20

Similar Documents

Publication Publication Date Title
DE69729917T2 (en) Cache clearing apparatus and computer system provided therewith
DE69727856T2 (en) Multiprocessor system with consistency error registration with appropriate procedure
DE3127349C2 (en)
EP0163096B1 (en) Apparatus for saving a calculator status
DE69531933T2 (en) BUS ARCHITECTURE IN HIGH GRADE PIPELINE VERSION
DE69724846T2 (en) Multi-way I / O storage systems with multi-way I / O request mechanism
DE69923621T2 (en) Method and apparatus for correct and complete transfers in a fault tolerant distributed database system
DE3508291C2 (en) Data processing system
DE69825915T2 (en) METHOD AND DEVICE FOR SWITCHING SOURCE SYNCHRONOUS CLOCK / - AND JOINT-TACT DATA TRANSMISSION MODES IN A MULTI-AGENT TRANSMISSION SYSTEM
DE112017001959T5 (en) Cache memory access
DE112013000891T5 (en) Improve processor performance for command sequences that include lock commands
DE2740056A1 (en) MULTIPROCESSOR COMPUTER SYSTEM
DE112011104471T5 (en) Method for failover management of virtual machines and system for supporting same
DE102005055067A1 (en) Device and method for correcting errors in a system having at least two execution units with registers
DE4423559A1 (en) Data connection method and apparatus for multiprocessor computer systems with shared memory
DE3606211A1 (en) MULTIPROCESSOR COMPUTER SYSTEM
DE3735828C2 (en) Method for resuming instruction execution after an interruption in a microprocessor-controlled data processing device
DE2847216A1 (en) DATA PROCESSING SYSTEM WITH MULTIPROGRAM OPERATION
DE69822866T2 (en) SYSTEM AND METHOD FOR COMPLETING LOCK-STEP SEQUENCES IN A MULTIPROCESSOR SYSTEM
EP1537482B1 (en) Method and circuit arrangement for synchronization of synchronously or asynchronously clocked processing units
DE2747633A1 (en) IT SYSTEM WITH AN INTERRUPTION DEVICE
DE112019005408T5 (en) MASTERLESS RAID FOR BYTE ADDRESSABLE NON-VOLATILE STORAGE
DE2336020C3 (en) Address calculation circuit for parity error correction programs
DE112020003004T5 (en) DMA SCATTER AND GATHER OPERATIONS FOR NONCONTINUOUS MEMORY
DE60303468T2 (en) Fault tolerant information processing device

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