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

Cache control unit for fault tolerant computer system

Info

Publication number
DE4143452C2
DE4143452C2 DE4143452A DE4143452A DE4143452C2 DE 4143452 C2 DE4143452 C2 DE 4143452C2 DE 4143452 A DE4143452 A DE 4143452A DE 4143452 A DE4143452 A DE 4143452A DE 4143452 C2 DE4143452 C2 DE 4143452C2
Authority
DE
Germany
Prior art keywords
cache
memory
processor
data
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE4143452A
Other languages
German (de)
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 DE4136729A priority Critical patent/DE4136729C2/en
Priority claimed from DE4136729A external-priority patent/DE4136729C2/en
Application granted granted Critical
Publication of DE4143452C2 publication Critical patent/DE4143452C2/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 einen Computer gemäß dem Oberbegriff des Anspruchs 1.The invention relates to a computer according to the Preamble of claim 1.

Fig. 8 zeigt ein Blockschaltbild einer Anordnung eines Computers nach dem Stand der Technik, wie er in dem US-Patent 4 819 154 beschrieben ist. In der Darstellung wird mit 18 01 ein Prozessormodul dargestellt ein­ schließlich eines Prozessors zum Durchführen eines Be­ nutzer- und Supervisor-Programms, 1802 bezeichnet einen Systembus, der doppelt ausgeführt ist, um die Zuverläs­ sigkeit und den Durchsatz zu erhöhen und 18 03 bezeich­ net ein Speichermodul zum Speichern der Programm/Daten des Benutzer-/Supervisors. Obwohl es genügt, den Sy­ stembus 1802 als einzelnen Bus auszuführen, ist er dop­ pelt angeordnet, um einen Operationsstop des gesamten Systems aufgrund von Schwierigkeiten im Bus zu verhin­ dern und dadurch den Systemdurchsatz zu verbessern. Obwohl er in Fig. 8 nur als eine Leitung dargestellt ist, ist der Systembus 1802 als Mehrdrahtbus ausgebil­ det, wobei er eine Anzahl von Daten- und Signalleitun­ gen umfaßt. Die in dem Speichermodul zu speichernden Daten sind als Gegenmaßnahmen gegen Fehler in zwei phy­ sisch unterschiedlichen Speichermodulen gespeichert. Fig. 8 shows a block diagram of an arrangement of a prior art computer as described in U.S. Patent 4,819,154. In the illustration, 18 01 represents a processor module including a processor for executing a user and supervisor program, 1802 denotes a system bus which is designed twice to increase the reliability and the throughput, and 18 03 denotes a Storage module for storing the program / data of the user / supervisor. Although it is sufficient to run the system stembus 1802 as a single bus, it is arranged twice to prevent the entire system from stopping for operation due to difficulties in the bus and thereby improve system throughput. Although only shown as one line in FIG. 8, the 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. 9 zeigt etwas genauer die Anordnung des Prozessor­ moduls. In der Darstellung ist mit 19 01 eine Speicher­ organisationseinheit zum Umwandeln einer virtuellen Adresse in eine physische Adresse dargestellt, 19 02 bezeichnet einen Prozessor zum Implementieren von Be­ nutzer/Supervisor-Programmen, 1903 bezeichnet einen lokalen Adreßbus, 1904 einen lokalen Datenbus, 1905 bezeichnet einen Busadapter zum Prüfen der Parität der Daten vom Cache-Speicher zum lokalen Datenbus, um eine Byte-Parität in bezug auf die Daten vom lokalen Daten­ bus zum Cache-Speicher zu erzeugen, 19 06 ist ein Cache-Adreßbus. Weiterhin stellt 19 07 eine interne Folge­ steuereinheit, 1908 einen Cache-Speicher, der nicht vom "Write-Through" Typ ist (d. h. ein Zurückscheibe-Cache-Speicher), 1909 bezeichnet einen Cache-Datenbus, 1910 einen Block-Zustandsspeicher (block-state memory), 19 11 ist eine externe Folgesteuereinheit, 1912 bezeichnet einen Datenbus und 19 13 bezeichnet eine Systembus-Schnitt­ stelle. Das andere Prozessormodul weist voll­ ständig den gleichen Aufbau auf und wird ähnlich behan­ delt. Fig. 9 shows the arrangement of the processor module in more detail. In the illustration at 19 01, a memory organizational unit for converting a virtual address to a physical address shown 19 02 denotes a processor for implementing Be user / supervisor programs 1903 denotes a local address bus 1904 a local data bus 1905 denotes a Bus adapter for checking parity of data from cache to local data bus to generate byte parity with respect to data from local data bus to cache, 19 06 is a cache address bus. Furthermore, 19 07 provides an internal sequential control unit, 1908 a cache memory that is not of the "write-through" type (ie a back disk cache memory), 1909 denotes a cache data bus, 1910 a block status memory (block state memory), 19 11 is an external sequence control unit, 1912 denotes a data bus and 19 13 denotes a system bus interface. The other processor module completely has the same structure and is treated similarly.

Fig. 10 ist eine Darstellung einer genaueren Anordnung des Speichermoduls. Dabei bezeichnen 20 01 eine System­ bus-Schnittstelle, 2002 einen internen Adreßbus, 2003 Kodier/Dekodiereinrichtungen, 2004 eine Folgesteuerein­ heit zum Erzeugen eines Steuersignals und eines Syn­ chronsignals für die Abfolge des Speichermoduls, 2005 eine Adreßerfassungs/Erzeugungseinrichtung zum Deko­ dieren von Adressen, um die Adresse zu erfassen, für die das entsprechende Speichermodul zuständig ist, 20 06 eine RAN-Zeit/Steuereinheit zum Produzieren einer Zei­ lenadresse, einer Spaltenadresse und eines Chip-Select-Signals und 20 07 ein RAN-Feld. Fig. 10 is an illustration of a more detailed arrangement of the memory module. 20 01 denotes 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 sync signal for the sequence of the memory module, 2005 an address detection / generation device for decoding addresses to detect the address for which the corresponding memory module is responsible, 20 06 a RAN time / control unit for producing a row address, a column address and a chip select signal, and 20 07 a RAN field.

Im folgenden wird die Beschreibung der Operation erläu­ tert. Die Speicher-Zugriffsanfrage vom Prozessor 1902 wird in der internen Steuereinheit 1907 verarbeitet. Die interne Steuereinheit 1907 prüft unter Bezugnahme auf den Block-Zustandsspeicher 1910, ob die geforderten Daten in dem Cache-Speicher 1908 vorhanden sind oder nicht. Im Falle, daß die Anfrage des Prozessors 1902 eine Leseanfrage ist und die gefragten 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 geforderten Daten nicht im Cache-Speicher 1908 vorhanden sind oder daß die Daten ungültig sind, wird, nachdem die Adressenumwandlung in der Speicherbehandlungseinheit 1901 durchgeführt wurde, die Adresse über die externe Folgesteuereinheit 1911 und die Systembus-Schnittstelle 1913 zu dem Speichermo­ dul transferiert. Das Speichermodul ist für den Trans­ fer 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 . The internal control unit 1907 checks, with reference to the block state memory 1910 , whether or not the requested data is present in the cache memory 1908 . In the event that the processor 1902 request is a read request and the requested data is in the cache 1908 , the data is delivered directly from the cache 1908 to the processor 1902 . In the event that the requested data is not in the cache 1908 or the data is invalid, after the address conversion is performed in the memory handler 1901 , the address becomes the memory via the external sequencer 1911 and the system bus interface 1913 dul transferred. 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 ak­ tualisiert wurde, wird der Schreibvorgang sofort durch­ geführt. Im Falle, daß andererseits der Cache-Block nicht aktualisiert wurde, wird das Bit im Blockzu­ standsspeicher 1910, das dem Cache-Block entspricht und das die Durchführung der Aktualisierung oder des Upda­ tes 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 Sy­ stembus-Schnittstelle 1913 dem Speichermodul nach der Adreßumwandlung in der Speicherbehandlungseinheit 1901 zugeführt. Das Speichermodul ist für den Transfer des Blocks einschließlich der verlangten Daten zuständig. Der zugeführte Datenblock wird nach der Zufuhr zum Pro­ zessor 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 processing unit 1901 . The memory module is responsible for the transfer of the block including the requested data. The supplied data block is updated after being fed to processor 1902 and then written to cache 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 Durchschreib­ typ ist (d. h., der vom Zurückschreibtyp ist), koinzi­ dieren die Daten im Cache-Speicher nicht immer mit den Daten aus dem Speichermodul. Zusätzlich wird als Wie­ derherstellungs-Gegenmaßnahmen gegen das Auftreten 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 Wiederherstellungs­ punkt im Speichermodul in Abhängigkeit vom Auftreten des Fehlers wieder eingeschaltet wird. Somit ist, im Falle, daß der Wiederherstellungspunkt gesetzt wird, es notwendig, daß die internen Registerinformationen des Prozessors in den Cache-Speicher geschrieben werden und daß alle Cache-Blöcke, die lokal im Cache-Speicher ak­ tualisiert wurden, 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 Ca­ che-Flush-Operation durchzuführen.Because the prior art device includes a non-write-through cache 1908 (ie, a write-back type), the cache data does not always coincide with the data from the memory module. In addition, as the recovery countermeasures against the occurrence of errors, a method is selected in which the state that the system is operating normally is maintained, which is referred to 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 memory and that all cache blocks that have been updated locally in the cache memory be written to the memory module , which is referred to as "cache flush" below, 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 Opera­ tion wird unter Bezugnahme auf die Fig. 11 beschrieben. 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 Blockzu­ standsspeichers 1910 das Bit auf, das dafür zuständig ist, ob der Cache-Block akutalisiert ist oder nicht (2101) und prüft es mittels des Komparators in der in­ ternen Folgesteuereinheit 1908 (2102). Wenn das modifi­ zierte Bit "EIN" ist, wird der diesem Eingang entspre­ chende Datenblock aus dem Cache-Speicher 1908 (2103) abgerufen und über die Systembus-Schnittstelle 1913 an das Speichermodul (2104) übertragen. Nach der Übertra­ gung bzw. dem Transfer wird die Flush-Adresse inkremen­ tiert (2105), um mit der Beendigungsadresse (2106) ver­ glichen zu werden. Wenn die Beendigungsadresse nicht überschritten 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 Operationsfluß zu dem Prozeß 2101 zurück, um die Pro­ zesse zu wiederholen.The operation performed at the time of the cache flush is described with reference to FIG. 11. 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 up the bit which is responsible for whether the cache block is updated or not (2101) at each input of the block state memory 1910 and checks it by means of the comparator in the internal sequence control unit 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) in order to be compared with 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.

Da der Computer nach dem Stand der Technik wie oben beschrieben angeordnet ist, so daß alle die aktuali­ sierten Cache-Blöcke im Cache-Speicher an das Speicher­ modul übertragen werden, um die Cache-Flush-Operation zu starten, ist es notwendig, den aktualisierten Cache-Block zu suchen, indem alle Eingänge des Blockzustands­ speichers aufgerufen werden, wodurch eine lange Zeit für die Cache-Flush-Operation benötigt wird.Since the computer according to the prior art as above described is arranged so that all the actual cached blocks in the cache memory to the memory  module are transferred to the cache flush operation to start, it is necessary to update the Search cache block by all inputs of the block state memory can be called up, causing a long time is required for the cache flush operation.

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 Wiederher­ stellung nach der Feststellung eines Fehlers wieder aufgerufen wird, und somit eine Realzeitoperation ein­ zuhalten.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 recover position after the detection of an error is called, and thus a real-time operation to keep.

Da darüber hinaus in der Vorrichtung nach dem Stand der Technik alle in der Cache-Flush-Operation aktualisier­ ten Cache-Blöcke zu dem Speichermodul übertragen wer­ den, ist es notwendig, wiederholt die Transferaktion bei jedem Cache-Block durchzuführen und somit besteht das Problem, daß die Systembusbelastung erhöht wird, wodurch die Systemleistungsfähigkeit geopfert wird.Moreover, since in the device according to the prior art Update technique in cache flush operation th cache blocks are transferred to the memory module that, it is necessary to repeat the transfer action to be performed on every cache block and therefore exists the problem that the system bus load is increased, thereby sacrificing system performance.

Die Aufgabe der vorliegenden Erfindung ist es, die Ca­ che-Flush-Operation bei hoher Geschwindigkeit durchzu­ führen, um einen Computer mit einer Realzeitfunktion zu erhalten.The object of the present invention is to approx che flush operation at high speed lead to a computer with a real time function too receive.

Diese Aufgabe wird erfindungsgemäß gelöst durch die im kennzeichnenden Teil des Anspruchs 1 angegebenen Merk­ male. Eine vorteilhafte Weiterbildung des erfindungs­ gemäßen Computers ergibt sich aus Anspruch 2.This object is achieved by the im characterizing part of claim 1 specified note times. An advantageous development of the invention modern computer results from claim 2.

Die Erfindung betrifft somit einen Computer, der mit einer Mehrzahl von Prozessormodulen und einem Speicher­ modul ausgerüstet ist, und sie kennzeichnet sich da­ durch, 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 Prozessor einen Wiederherstell­ punkt unter mindestens einer der Bedingungen festsetzt, daß:The invention thus relates to a computer which a plurality of processor modules and a memory module is equipped, and it identifies itself there  through that the processor module a processor, a Restore type cache, a tax direction to control the cache memory, a counter to count the number of cache blocks updated and a timer for measuring elapsed time having, the processor a restore sets point under at least one of the conditions, that:

  • a) die Anzahl der Cache-Blöcke in dem Cache-Speicher, die nicht durch Cache-Linien aktualisiert sind, einen vorbestimmten Wert erreicht,a) the number of cache blocks in the cache memory, that are not updated by cache lines, reaches a predetermined value
  • b) die Gesamtzahl der aktualisierten Cache-Blöcke in dem Cache-Speicher einen vorbestimmten Wert er­ reicht, undb) the total number of updated cache blocks in the cache memory a predetermined value is enough, and
  • c) die in (a) und (b) dargestellten Fälle nicht in einer vorbestimmten Zeitdauer auftreten.c) the cases described in (a) and (b) are not in a predetermined period of time occur.

Vorzugsweise ist das Prozessormodul mit einem Busüber­ wachungskreis zum Überwachen der Operation der unter­ schiedlichen Prozessormodule ausgerüstet, um den Wie­ derherstellpunkt zu setzen, wenn der lokalaktualisierte Cache-Block in dem Cache-Speicher von den unterschied­ lichen Prozessormodulen zugegriffen wird oder wenn die­ se Zugriffsoperation nicht in einer vorbestimmten Zeit durchgeführt wird.The processor module is preferably connected to a bus guardian to monitor the operation of the under different processor modules equipped to the How to set the manufacturing point when the locally updated Cache block in the cache memory from the difference processor modules is accessed or if the se access operation not in a predetermined time is carried out.

Die Erfindung wird im folgenden anhand eines in den Figuren dargestellten Ausführungsbeispiels näher erläu­ tert. Es zeigen:The invention is based on one in the Figures illustrated embodiment explained in more detail tert. Show it:

Fig. 1 ein Blockschaltbild einer Anordnung ei­ nes Computers entsprechend einem Ausfüh­ rungsbeispiel der vorliegenden Erfin­ dung, Fig. 1 is a block diagram of an arrangement in accordance with a computer ei nes exporting approximately example of the present OF INVENTION dung,

Fig. 2 ein Blockschaltbild einer detaillierten Anordnung eines Prozessormoduls nach Fig. 1, Fig. 2 is a block diagram of a detailed arrangement of a processor module according to FIG. 1,

Fig. 3 ein Blockschaltbild, das eine detail­ lierte Anordnung von gedoppelten Spei­ chermodulen nach Fig. 1 darstellt, Figure 3 illustrates, a block diagram a detail chermodulen profiled arrangement of doubled SpeI according to Fig. 1,

Fig. 4 ein Flußdiagramm, das die Betriebsweise des Ausführungsbeispiels nach Fig. 2 darstellt, das in Erwiderung auf die Leseanfrage des Prozessors durchgeführt wird, FIG. 4 is a flowchart illustrating the operation of the embodiment of FIG. 2 performed in response to the processor's read request.

Fig. 5 ein Flußdiagramm, das die Operation des Ausführungsbeispiels nach Fig. 2 zeigt, das in Erwiderung auf die Schreibanfrage des Prozessors durchgeführt wird, Fig. 5 is a flowchart showing the operation of the embodiment of Fig. 2, which is carried out in response to the write request of the processor,

Fig. 6 ein Flußdiagramm, das die Betriebsweise des Ausführungsbeispiels nach Fig. 2 zeigt, die zum Zeitpunkt des Festlegens oder Einstellens des Wiederherstellungs­ punktes durchgeführt wird, Fig. 6 is a flowchart showing the operation of the embodiment of FIG. 2, the recovery point is performed at the time of setting or adjusting,

Fig. 7 ein Flußdiagramm, das die Cache-Flush-Ope­ ration bei dem Ausführungsbeispiel nach Fig. 2 angibt, Fig. 7 is a flowchart indicative of the cache flush Ope ration in the embodiment according to Fig. 2,

Fig. 8 eine Anordnung eines Computers nach dem Stand der Technik, Fig. 8 shows an arrangement of a computer according to the prior art,

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

Fig. 10 eine detaillierte Anordnung eines Spei­ chermoduls in dem Computer nach Fig. 8, Fig. 10 shows a detailed arrangement of a SpeI chermoduls, in the computer of FIG. 8

Fig. 11 ein Flußdiagramm, das die Cache-Flush-Ope­ ration in dem Computer nach Fig. 8 darstellt, und Fig. 11 is a flow chart flush cache Ope ration is stored in the computer of FIG. 8, and

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

Fig. 1 zeigt eine Anordnung eines Computers nach der vorliegenden Erfindung. In der Darstellung bezeichnen 301 ein Prozessormodul, 303 ein Speichermodul und 302 ist ein Systembus für ihre Verwendung. Das Prozessormo­ dul oder der Prozessorbaustein 301 ist mit M×N (M und N sind ganze Zahlen gleich 1 oder mehr als 1) Backup (Sicherungs)-Anordnungen) aufgebaut, die M laufende Systeme und N Ersatz (Backup)-Systeme umfaßt. Das Pro­ zessormodul aus dem Ersatzsystem folgt dem Unterbre­ chungsprozeß im Falle, daß der Prozessor des laufenden Systems ausfä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 Sy­ stemoperation ausreichend ist, daß er nur als einziger Bus aufgebaut ist, weist der Systembus 302 eine gedop­ pelte Anordnung auf, um zu verhindern, daß die Opera­ tion des gesamten Systems aufgrund von Schwierigkeiten in dem Bus gestoppt wird. Obwohl in Fig. 1 der System­ bus 302 nur als einzige Leitung dargestellt ist, be­ steht er aus einem Adreß/Datenbus, einem Synchroni­ sierbus und einem Steuerbus. Der Adreß/Datenbus ist ein Bus, der aus einer Vielzahl von Signalleitungen zum Übertragen von Adressen, die die Speicheradressen zum Speichern der Daten und auch zum Übertragen der in die­ ser Adresse zu speichernden Daten bezeichnen. Der Syn­ chronisierbus dient zum Übertragen eines Quittungssi­ gnals, um den Gleichlauf der Adressen und des Daten­ transfers zu liefern, und umfaßt Adreß-Transfer-Syn­ chronisierungs AS*, AK*, AI* und Datentransfersynchroni­ sierung DS*. DK*, DI* (* bezeichnet ein negatives logi­ sches Signal). Der Steuerbus dient zum Weiterleiten der Adressen, Daten und der notwendigen Informationen, die sich vom Synchronisiersignal unterscheiden und umfaßt CT* zum Liefern der Information 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 unter­ schiedlichen Operation befindet; EB* zum Angeben des letzten Datentransfers der Daten eines Cache-Blocks und IR*, wobei ein Speichermodul, das im Betrieb ist, die Ungültigkeit der Antwort in bezug auf das andere Spei­ chermodul verlangt, das die die Vollendung des Prozes­ ses für den Datentransfer vom FIFO-Speicher zu dem RAN-Feld anzeigende Antwort erzeugt. Diese Busse sind über die Bus-Schnittstelle mit den Prozessor/Speichermodulen gekoppelt. Obwohl in diesem Ausführungsbeispiel der Systembus doppelt ausgeführt ist, sind diese zwei Busse so angeordnet, daß sie die gleiche Operation durchfüh­ ren, und daher wird die folgende Beschreibung nur unter Bezugnahme auf einen Bus gegeben. Fig. 1 shows an arrangement of a computer according to the present invention. In the illustration, 301 designate a processor module, 303 a memory module and 302 is a system bus for their use. The processor module or processor module 301 is constructed with M × N (M and N are integers equal to 1 or more than 1) backup arrangements, which comprises M running systems and N replacement (backup) systems. The processor module from the replacement system follows the interruption 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 built 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 the system bus 302 is only shown as a single line in FIG. 1, it consists of an address / data bus, a synchronization bus and a control bus. The address / data bus is a bus consisting of a plurality of signal lines for transmitting addresses, which designate the memory addresses for storing the data and also for transmitting the data to be stored in this address. The Syn chronisierbus is used to transmit an acknowledgment 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 * (* denotes a negative logic signal). The control bus is used to pass on the addresses, data and necessary information other than the synchronizing signal and includes CT * to provide the cache flush bus operation information, BS * to provide the information that it is impossible to do the request operation perform 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 *, wherein a memory module that is in operation requires the invalidation of the response with respect to the other memory module that requires the completion of the process for the data transfer from FIFO memory generated to the response indicating the RAN field. 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 will be given with reference to only one bus.

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

Fig. 2 zeigt eine detaillierte Anordnung eines Prozes­ sormoduls, wobei die Bezugszeichen 1902, 1908, 1910 und 1913 die gleichen Teile wie in der Vorrichtung nach dem Stand der Technik darstellen. In der Figur bezeichnen 401 einen Stapelspeicher (Speichereinrichtung), der beispielsweise aus einem FIFO-Speicher (First-In First-Out) besteht, 402 einen Zähler zum Zählender 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 der von dem Prozessor 1902 verlangten Da­ ten mit den Adressen in dem Blockzustandsspeicher 1910. Weiterhin bezeichnen 405 einen Busüberwachungskreis zum Überwachen der Operation der anderen mit dem Systembus gekoppelten Module zum Feststellen der Zeit, die für die Operation verlangt wird, um die Anpassung der Daten aufrecht zu erhalten und die Kontrolleinheit 403 oder den Prozessor 1902 darüber zu informieren, daß die Ope­ ration verlangt wird, 406 ist ein Multiplexer zum Kom­ binieren der Daten und Daten, die dem Speichermodul zugeführt werden, 407 ist eine Zeitschaltung zum Zählen der ablaufenden Zeit, 408, 411 bis 413 sind Steuerlei­ tungen, 409 stellt eine Adreßleitung dar und 410 be­ zeichnet eine Datenleitung. Fig. 2 shows a detailed arrangement of a process 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 designates a stack memory (storage device) consisting, for example, of a first-in first-out (FIFO) memory, 402 a counter for counting the number of updated cache blocks in the cache memory 1908 , and 403 a control unit (Controller) for the cache, 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 designates a bus monitoring circuit for monitoring the operation of the other modules coupled to the system bus to determine the time required for the operation to maintain the adjustment of the data and to inform the control unit 403 or the processor 1902 that the Operation is required, 406 is a multiplexer for combining the data and data which are supplied to the memory module, 407 is a timer for counting the elapsing time, 408 , 411 to 413 are control lines, 409 represents an address line and 410 be draws a data line.

Der Prozessor 1902, der Cache-Speicher 1908 und der Multiplexer 406 sind miteinander durch die Datenleitung 410 verbunden. Darüber hinaus sind der Prozessor 1902, der Cache-Speicher 1908, der Blockzustandsspeicher 1910, der Multiplexer 406, der Komparator 404 und der Stapelspeicher 401 miteinander über die Adreßleitung 409 verbunden. Weiterhin sind der Prozessor 1902, die Kontrolleinheit 403, der Busüberwachungskreis 405 und der Multiplexer 406 miteinander über die Steuerleitung 408 verbunden. Die Kontrolleinrichtung 403, der Stapel­ speicher 401 und der Zähler 402 sind miteinander über die Steuerleitung 411 gekoppelt. Der Cache-Speicher 1908, der Blockzustandsspeicher 1910, die Kontrollei­ heit 403 und die Zeitschaltung 407 sind miteinander über die Steuerleitung 412 verbunden. Weiterhin sind der Prozessor 1902 und die Zeitschaltung 407 über die Steuerleitung 413 miteinander gekoppelt.Processor 1902 , cache memory 1908 and multiplexer 406 are interconnected by data line 410 . In addition, processor 1902 , cache 1908 , block state memory 1910 , multiplexer 406 , comparator 404, and stack 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 state memory 1910 , the control unit 403 and the timing circuit 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. 3 zeigt eine detaillierte Anordnung der doppelten Speichermodule 303, wobei 20 01 und 20 07 Teile darstel­ len, die den gleichen Aufbau wie diejenigen der Vor­ richtung nach dem Stand der Technik aufweisen. In der Darstellung bezeichnen 602 einen FIFO-Puffer (Puffer­ speicher) zum kurzzeitigen Speichern von über den Sy­ stembus 302 gelieferten Daten, 603 einen Treiber zum Treiben der Daten des RAN-Feldes 2007 auf den Speicher­ bus 302, 604 eine Kommunikationssignalleitung (Kommuni­ kationseinrichtung) für die Kommunikation zwischen den zwei Speichermodulen und 601 einen Steuerabschnitt (Steuereinrichtung) zum Steuern des Lesens/Schreibens der Daten in bezug auf das RAN-Feld 2007 und weiterhin zum Steuern der Kommunikationssignalleitung 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 Signals zum Systembus 302 und der Trans­ fer der Daten durch den Hauptspeicher repräsentiert. Die Speicherung der Daten wird von beiden Speichermodu­ len durchgeführt. Fig. 3 shows a detailed arrangement of the double memory modules 303 , 20 01 and 20 07 parts depicting parts which have the same structure as those of the prior art device. 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 RAN field 2007 onto the memory bus 302 , 604 a communication signal line (communication device) for communication between the two memory modules and 601, a control section (controller) for controlling the reading / writing of the data with respect to the RAN array 2007 and further for controlling the communication signal line 604 and the FIFO buffer 602 , the buffer memory being provided by 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 the data is represented by the main memory. The storage of the data is carried out by both storage modules.

Ebenso wie in der Vorrichtung nach dem Stand der Tech­ nik ist das Wiederherstellverfahren dieses Ausführungs­ beispiels zum Zeitpunkt des Auftretens eines Fehlers derart angeordnet, daß der Zustand, der erhalten wird, wenn das System normal arbeitet, im Speichermodul ge­ halten wird (ein Wiederherstellpunkt wird gesetzt), wenn eine vorbestimmte Bedingung befriedigt wird (die im folgenden beschrieben wird), den Prozeß vom letzten Wiederherstellpunkt im Speichermodul als Antwort auf die Erzeugung des Fehlers wieder beginnt. Hier wird eine Beschreibung hinsichtlich des Festsetzens des Wie­ derherstellungspunktes und des Stapelspeichers 401 nach Fig. 2 gegeben. Die Speicheranfrage vom Prozessor 1902 wird von der Kontrolleinheit 403 bearbeitet. Die Be­ triebsweise zum Zeitpunkt der Leseanfrage vom Prozessor 1902 wird in bezug auf Fig. 4 erläutert. Die Kontroll­ einheit 403 prüft zunä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 entsprechen­ den Cache-Blocks "EIN" ist (706), wird der Prozeß ge­ nauso wie im System nach dem Stand der Technik durch­ geführt und die geforderten Daten werden von dem Pro­ zessor 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 System­ bus-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 Beginn in dem Blocksatz verwendet wird, ausgewählt (703) und dann geht der Operationsfluß zu dem oben er­ wähnten Vorgang (704). Hier wird unter Blocksatz eine Gruppe von Cache-Blöcken zum Speichern eines Blocks in dem Hauptspeicher (in dem Ausführungsbeispiel Speicher­ modul) verstanden, und wie in Fig. 12 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.Just as in the prior art device, the recovery method of this embodiment is arranged at the time of the occurrence of an error such that the state obtained when the system is operating normally is held in the memory module (a recovery point is set ) when a predetermined condition is met (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 will be given regarding the setting of the restore point and the stack 401 of FIG. 2. The memory request from processor 1902 is processed by control unit 403 . The operation at the time of the read request from the processor 1902 will be explained with reference to FIG. 4. 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 as in the prior art system and the requested data is provided by the Read out immediately in processor 1902 (705). If the valid bit of the cache block is "OFF", the requested cache block is read out (704) from the memory module 303 via the system bus interface 1913 and passed on to the processor 1902 while it is in the cache memory 1908 be written (705). In the event that the requested data is not in the cache 1908 , a check is made to see if there is an unoccupied input in the cache 1908 (702). If there is an unoccupied input, the operational flow proceeds to the above-mentioned process (704). If there is no vacant input, the cache block whose modified bit is "OFF" and the start is used in the justification is selected (703) and then the flow of operations goes to the above-mentioned process ( 704 ). Here, block set 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. 12, which shows the correspondence between the main memory and the cache memory, the Block in main memory and the cache block coordinated in advance.

Die Operation zum Zeitpunkt der Schreibanfrage aufgrund des Prozessors 1902 wird im folgenden unter Bezugnahme auf Fig. 5 beschrieben. Die Kontrolleinheit 403 prüft zuerst, ob die geforderten Daten im Cache-Speicher 1908 vorhanden sind (801). Im Falle, daß die übereinstimmen­ de Adresse in dem Blockzustandsspeicher 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 Prozessor 1902 unmittelbar in diesen Ca­ che-Block geschrieben (813). Im Falle, daß das gültige Bit "EIN" ist und das modifizierte Bit "AUS" ist, wird das modifizierte Bit auf "EIN" gesetzt (805) und die Eingangsadresse des Cache-Blocks wird in dem Stapel­ speicher 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 dem Blocksatz geprüft (809). Wenn sie nicht eins ist, wird der Wert des Zählers 402 mit einem vorbe­ stimmten Wert verglichen (810). Wenn diese nicht über­ einstimmen, wird die Schreiboperation beendet. In dem Fall, daß im Vorgang (809) die Anzahl der nichtaktuali­ sierten Blocks eins ist und daß im Vorgang (810) die Übereinstimmung festgestellt wird, wird das Setzen des Wiederherstellpunktes gestartet, wie in Fig. 6 darge­ stellt wird. Wenn andererseits das gültige Bit des ver­ langten Cache-Blocks "AUS" ist, wird der der Adresse entsprechende Cache-Block aus dem Speichermodul ausge­ lesen und die Operation geht zum Vorgang (805). Wenn die vom Prozessor 1902 angeforderten Daten nicht im Cache-Speicher 1908 vorhanden sind, wird eine Entschei­ dung dahingehend vorgenommen, ob ein unbesetzter Ein­ gang in dem Cache-Speicher 1908 vorhanden ist (802). Wenn ein unbesetzter Eingang vorhanden ist, geht die Operation zum Vorgang (804). Wenn kein unbesetzter Ein­ gang vorhanden ist, wird der Cache-Block des Blocksat­ zes, bei dem das modifizierte Bit "AUS" ist und der zu Beginn verwendet wurde, ausgewählt (803) und dann geht die Operation zu dem Vorgang (804).The operation at the time of the write request due to the processor 1902 is described below with reference to FIG. 5. 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 block state 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 entry address of the cache block is registered in the stack 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 justification 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 in process (809) is one and that the match is determined in process (810), the setting of the restore point is started, as shown in FIG. 6. On the other hand, if the valid bit of the extended cache block is "OFF", the cache block corresponding to the address is read out 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 block of the block set in which the modified bit is "OFF" and which was used initially 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 des Blocksatzes, in dem das modifizierte Bit "AUS" ist, eins wird, nachdem der erwähnte Cache-Block aktualisiert wird, oder die Anzahl der aktualisierten Cache-Blöcke in dem Cache-Speicher einen vorbestimmten Wert erreicht. Wenn diese Fälle innerhalb eines vorbe­ stimmten Zeitraums nicht auftreten, wird der Wiederher­ stellpunkt gleichfalls mittels der Zeitschaltung 407 gesetzt, wie in Fig. 6 dargestellt wird.According to this embodiment, the restore point is set in the case where the cache block of the justified bit in which the modified bit is "OFF" becomes one after the mentioned cache block is updated, or the number of updated cache blocks reaches a predetermined value in the cache. If these cases do not occur within a predetermined period of time, the restore point is also set by means of the timer 407 , as shown in FIG. 6.

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änge parallel auszuführen. Zusätzlich ist es ebenfalls in diesem Ausführungsbeispiel zweckmäßig, daß die Anzahl der aktualisierten Cache-Blöcke im Cache-Speicher durch das System festgelegt oder programmierbar ist. Obwohl die Anzahl der nichtaktualisierten Cache-Blöcke per Cache-Line auf eins gesetzt wird, ist dieses Ausfüh­ rungsbeispiel nicht darauf begrenzt, aber es ist genug, wenn der nichtaktualisierte Cache-Block vorhanden ist, um das interne Register des Prozessors 1902 zum Zeit­ punkt des Setzens des Wiederherstellpunktes auszugeben.In this embodiment, although the operations ( 805 ) to (808) are arranged so that they are carried out continuously, it is appropriate to carry out 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 to clear the internal register of processor 1902 at the time of Set the restore 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. 2 darge­ stellt, und daß der Busüberwachungskreis 405 fest­ stellt, daß der Systembus 302 den aktualisierten Cache-Block im Cache-Speicher 1908 anfordert, ist es gleich­ falls möglich, den Wiederherstellpunkt wie in Fig. 6 dargestellt, zu setzen. In diesem Fall kann die Bedin­ gung, daß das Setzen des Wiederherstellpunktes aufgrund des Busüberwachungskreises 405 nicht innerhalb eines vorbestimmten Zeitraums durchgeführt wird, weiterhin zu den Setzbedingungen des Wiederherstellpunktes aufgrund der Zeitschaltung 407 hinzugefügt werden.Further, in the embodiment described above, in the event that bus monitor circuit 405 is provided in the processor module, as shown in FIG. 2, and that bus monitor circuit 405 determines that system bus 302 detects the updated cache block in cache memory 1908 , it is possible to set the restore point as shown in FIG. 6 if possible. In this case, the condition that the recovery point setting due to the bus monitor circuit 405 is not performed within a predetermined period of time can be further added to the recovery point setting conditions due to the timing circuit 407 .

Es wird unter Bezugnahme auf Fig. 6 die Operation des Setzens des Wiederherstellpunktes beschrieben. Wenn die Bedingung für das Setzen des Wiederherstellpunktes, wie oben beschrieben, befriedigt ist, wird eine Unterbre­ chungsanfrage von der Kontrolleinheit 403 oder der Zeitschaltung 407 über die Steuerleitungen 408 und 413 an den Prozessor 1902 erzeugt. In Erwiderung 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 Un­ terbrechungsanfrage (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 Stapel­ speicher 401 registriert (903).The operation of the restore point setting will be described with reference to FIG. 6. When the condition for setting the recovery 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 to the non-updated cache block of cache memory 1908 the contents of the internal register 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. 7 hinsichtlich der Cache-Flush-Operation (904) gegeben. Die Kontrolleinheit 403 ist mit einem Arbeits­ zähler ausgerüstet, der zum Zeitpunkt des Starts der Cache-Flush-Operation zurückgesetzt wird (1001). Die in dem Stapelspeicher 401 gespeicherte Eingangsadresse des Cache-Blocks wird ausgelesen (1002), so daß der dieser Adresse entsprechende Cache-Block aus dem Cache-Spei­ cher 1908 abgerufen wird (1003), um über die Systembus-Schnitt­ stelle 1913 an das einschlä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äh­ lers mit dem Wert des Zählers 402 übereinstimmt (1006). Wenn keine Übereinstimmung vorhanden ist, wird der Pro­ zeß wiederholt durchgeführt, bis die Übereinstimmung erreicht wird. In Erwiderung auf die Beendigung der Cache-Flush-Operation wird geprüft, ob die Daten normal zugeführt wurden oder nicht (905). Im Falle der norma­ len Beendigung wird der Eingang des Stapelspeichers 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ückgesetzt (909). Wenn anomal beendet wurde, wird der Prozeß einmal wie­ der begonnen (910). Der zweite Wiederholvorgang wird als Fehler behandelt (911).Furthermore, the description will be made with reference to FIG. 7 regarding the cache flush operation (904). The control unit 403 is equipped with a work counter that is reset at the time the cache flush operation is started (1001). The input address of the cache block stored in the stack memory 401 is read out (1002), so that the cache block corresponding to this address is retrieved from the cache memory 1908 (1003) to be sent via the system bus interface 1913 to the relevant party 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, it is checked whether the data was supplied normally or not (905). In the event of normal termination, the input to stack 401 is enabled and the modified bit is set to "OFF" (907). Thereafter, counter 402 is reset (908) and timer 407 is reset (909). If abnormally ended, the process is started once again (910). The second retry is treated as an error (911).

Bei der Cache-Steuereinrichtung sind eine Speicherein­ richtung zum Speichern der Eingangsadressen des aktua­ lisierten Cache-Blocks und die Kontrolleinrichtung 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 Eingangsadresse hinsichtlich der Speichereinrichtung zum Zeitpunkt des Cache-Flushs vor­ gesehen, wobei es möglich ist, die für den Cache-Flush verlangte Zeit abzukürzen und den Prozeß mit hoher Ge­ schwindigkeit bei gleichbleibender Zuverlässigkeit durchzuführen.There are memories in the cache controller Direction for storing the input addresses of the Aktua lized cache blocks and the control device for Register the input address of the updated Cache blocks in the aforementioned storage device  and for performing the cache flush transfer to the registered entry address regarding the Storage device before the cache flush seen, it being possible for the cache flush shorten the time required and the process with high Ge speed with constant reliability perform.

Der Computer ist mit einer entsprechenden Speicherein­ richtung und Kontrolleinrichtung ausgerüstet, um da­ durch die Cache-Flush-Operation bei hoher Geschwindig­ keit zu ermöglichen.The computer is with an appropriate memory direction and control device equipped to through the cache flush operation at high speed enable.

Mit dem Zähler zum Zählen der Anzahl der aktualisierten Cache-Blöcke, der Zeitschaltung zur Messung der abge­ laufenen Zeit und dem Busüberwachungskreis zum Überwa­ chen des Systembus wird der Wiederherstellpunkt unter der Bedingung festgesetzt, daß die Anzahl der Cache-Blöcke des Cache-Speichers, die bei den jeweiligen Li­ nien oder Leitungen nicht akutualisiert sind, einen vorbestimmten Wert erreicht, die Gesamtzahl der aktua­ lisierten Cache-Blöcke in dem Cache-Speicher einen vor­ bestimmten 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 Zeit­ raum auftritt. Somit ist es möglich, das maximale In­ tervall der Wiederherstellpunkte sicherzustellen, um eine Echtzeitverarbeitung zu realisieren.With the counter to count the number of updated Cache blocks, the timer for measuring the abge current time and the bus monitoring circuit for monitoring the restore point under the system bus the condition stipulates that the number of cache blocks of the cache memory that the respective Li lines or lines are not updated, one predetermined value reached, the total number of actuaries predefined cache blocks in the cache memory reached a certain value, another processor module the updated cache block in the cache via the bus system or any of the aforementioned cases not in the predetermined time space occurs. It is therefore possible to determine the maximum In ensure the recovery points to real-time processing.

Darüber hinaus kann mit dem in dem Speichermodul vor­ gesehenen und in dem gleichen physischen Raum doppelt vorgesehenen Pufferspeicher die Cache-Flush-Transaktion aufgrund der Cache-Flush-Operation nur einmal durchge­ führt werden, wodurch die für das Setzen des Wiederher­ stellpunktes verlangte Zeit verringert wird.It can also be used in the memory module seen and double in the same physical space provided cache memory the cache flush transaction only run once due to the cache flush operation  leads, which is the basis for the restoration setpoint required time is reduced.

Claims (2)

1. Computer mit einer Mehrzahl von Prozessor­ modulen und einem Speichermodul, dadurch gekennzeichnet, daß das Prozessormodul einen Prozessor, einen Cache-Speicher des Zurückschreibtyps, eine Steu­ ereinrichtung zum Steuern des Cache-Speichers, einen Zähler zum Zählen der Anzahl der aktuali­ sierten Cache-Blöcke und eine Zeitschaltung zum Messen der abgelaufenen Zeit aufweist, wobei der Prozessor einen Wiederherstellpunkt unter mindestens einer der Bedingungen festsetzt, daß:
  • a) die Anzahl der Cache-Blöcke in dem Cache-Speicher, die nicht durch Cache-Linien ak­ tualisiert sind, einen vorbestimmten 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.
1. Computer 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 cache updates Blocks and a timer for measuring elapsed time, the processor setting a recovery 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 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.
2. Computer nach Anspruch 1, dadurch gekennzeichnet, daß das Prozessormodul mit einem Busüberwachungskreis zum Überwachen der Operation der unterschiedlichen Prozessormo­ dule ausgerüstet ist, um den Wiederherstellpunkt zu setzen, wenn der lokalaktualisierte Cache-Block in dem Cache-Speicher von den unterschied­ lichen Prozessormodulen zugegriffen wird oder wenn diese Zugriffsoperation nicht in einer vor­ bestimmten Zeit durchgeführt wird.2. Computer according to claim 1, characterized in that the processor module with a bus monitoring circuit for monitoring the operation of different processor types dule is equipped to the restore point  to set when the locally updated Cache block in the cache memory from the difference processor modules is accessed or if this access operation is not in a prior certain time is carried out.
DE4143452A 1990-11-05 1991-11-05 Cache control unit for fault tolerant computer system Expired - Fee Related DE4143452C2 (en)

Priority Applications (1)

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

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
DE4136729A DE4136729C2 (en) 1990-11-05 1991-11-05 Cache controller

Publications (1)

Publication Number Publication Date
DE4143452C2 true DE4143452C2 (en) 1996-09-12

Family

ID=27203075

Family Applications (1)

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

Country Status (1)

Country Link
DE (1) DE4143452C2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0260862A2 (en) * 1986-09-19 1988-03-23 Amdahl Corporation Move-out queue buffer
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4819154A (en) * 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
EP0260862A2 (en) * 1986-09-19 1988-03-23 Amdahl Corporation Move-out queue buffer

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP 2-217943 A + Abstract *

Similar Documents

Publication Publication Date Title
DE60302184T2 (en) Fault-tolerant computer system, method of resynchronizing it and associated resynchronization program
DE60301702T2 (en) Fault-tolerant computer system, method of resynchronization of the same and program for resynchronization of the same
DE4233569C2 (en) Information processing device with a plurality of processor modules that contain a fault monitoring circuit
DE2908316C2 (en) Modular multi-processor data processing system
DE4220723C2 (en) Circuit for detecting an error in a microcomputer
DE69817696T2 (en) Heat exchange of mirrored rewrite cache
CH654943A5 (en) TESTING DEVICE FOR MICRO PROGRAMS.
DE3301628A1 (en) CIRCUIT ARRANGEMENT FOR DATA EXCHANGE BETWEEN TWO COMPUTERS
EP1249744A1 (en) Method and apparatus for providing consistent memory contents in a redundant system
DE2210325A1 (en) Data processing system
DE2407241A1 (en) PROCEDURE AND ARRANGEMENT FOR INCREASING THE AVAILABILITY OF A DIGITAL COMPUTER
DE60303468T2 (en) Fault tolerant information processing device
DE19900251B4 (en) Apparatus and method for controlling a versatile USB endpoint channel
EP1537482B1 (en) Method and circuit arrangement for synchronization of synchronously or asynchronously clocked processing units
EP0282877A1 (en) Method and apparatus for controlling the error correction in a data transmission system of data read from dynamical peripheral storage devices, in particular disk storage devices of a data-processing system
DE19955776C1 (en) Multitasking processor system
DE2350229A1 (en) DATA PROCESSING SYSTEM, IN PARTICULAR AS A CONTROL DEVICE FOR TELEPHONE SWITCHING SYSTEMS
DE19811864A1 (en) Redundant control device and error recovery method for this
EP1398701A1 (en) Method for synchronizing events, in particular for fault-tolerant systems
DE4010109C2 (en) Duplex computer system
EP0350016B1 (en) Process and apparatus to copy the contents of record carriers
EP1716490A2 (en) Method and device for analyzing integrated systems for critical safety computing systems in motor vehicles
DE4143452C2 (en) Cache control unit for fault tolerant computer system
DE69935960T2 (en) Priority based data and instruction fetching
DE3040429A1 (en) MONITORING DEVICE FOR A COMPUTER SYSTEM

Legal Events

Date Code Title Description
Q172 Divided out of (supplement):

Ref country code: DE

Ref document number: 4136729

8110 Request for examination paragraph 44
AC Divided out of

Ref country code: DE

Ref document number: 4136729

Format of ref document f/p: P

AC Divided out of

Ref country code: DE

Ref document number: 4136729

Format of ref document f/p: P

8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 4143588

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 4143588

AC Divided out of

Ref country code: DE

Ref document number: 4136729

Format of ref document f/p: P

AH Division in

Ref country code: DE

Ref document number: 4143588

Format of ref document f/p: P

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