DE3442823C2 - - Google Patents

Info

Publication number
DE3442823C2
DE3442823C2 DE3442823A DE3442823A DE3442823C2 DE 3442823 C2 DE3442823 C2 DE 3442823C2 DE 3442823 A DE3442823 A DE 3442823A DE 3442823 A DE3442823 A DE 3442823A DE 3442823 C2 DE3442823 C2 DE 3442823C2
Authority
DE
Germany
Prior art keywords
data
block
memory
subunits
control
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
Application number
DE3442823A
Other languages
German (de)
Other versions
DE3442823A1 (en
Inventor
Ernst Josef Dr. 8192 Geretsried De Kock
Ralf 8000 Muenchen De Hillemann
Franz Dr. 8011 Baldham De Schulte
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.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19843442823 priority Critical patent/DE3442823A1/en
Publication of DE3442823A1 publication Critical patent/DE3442823A1/en
Application granted granted Critical
Publication of DE3442823C2 publication Critical patent/DE3442823C2/de
Granted legal-status Critical Current

Links

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Landscapes

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

Description

Die Erfindung betrifft ein Verfahren und eine Anordnung zur Steuerung der Übertragung von Daten entsprechend dem Oberbegriff des Patentanspruches 1.The invention relates to a method and an arrangement for control the transfer of data according to the preamble of claim 1.

Derartige Verfahren sind z. B. aus Computing Surveys, Vol. 14, Nr. 3, September 1982, Seiten 473 bis 530, insbesondere Seite 501, linke Spalte oben oder aber aus IBM Technical Disclosure Bulletin, Vol. 25, No. 11 B, April 1983, Seiten 6177/6178 für nach dem "copy-back"-Prinzip arbeitende Cache-Speicher bekannt.Such methods are e.g. B. from computing Surveys, Vol. 14, No. 3, September 1982, pages 473 to 530, especially page 501, left column above or but from IBM Technical Disclosure Bulletin, Vol. 25, No. 11 B, April 1983, pages 6177/6178 for after the known "copy-back" principle working cache memory.

Die Verwendung mehrerer, jeweils die Änderung einer Untereinheit innerhalb eines Datenblocks markierender Steuerbits soll dabei sicherstellen, daß jeweils die geänderten Untereinheiten, z. B. entsprechend der von einem normalen Speicherbefehl erfaßten Datenbreite, meistens also Doppelwörter, anstelle des gesamten Datenblocks in den Arbeitsspeicher übertragen werden. Das ist besonders von Vorteil, wenn der Datenumfang je Block sehr groß ist und daher der Umfang des Datenaustausches vom Cache-Speicher zum Arbeitsspeicher beträchtlich verringert werden kann, insbesondere wenn die Anzahl der geänderten Untereinheiten im Verhältnis zur Gesamtzahl der Untereinheiten eines Blockes verhältnismäßig klein ist. The use of several, each changing one subunit control bits marking within a data block should ensure that the changed Subunits, e.g. B. corresponding to that of a normal Memory command captured data width, usually so Double words instead of the entire data block in the RAM are transferred. That is particularly of Advantage if the data volume per block is very large and hence the amount of data exchanged from the cache to memory can be significantly reduced, especially if the number of subunits changed in relation to the total number of subunits of a block is relatively small.  

Andererseits erfordert gerade das "copy-back"-Verfahren einen höheren Sicherungsgrad für die Daten im Cache-Speicher, da zu geänderten Daten im Cache-Speicher keine Kopie derselben Daten im Arbeitsspeicher vorhanden ist. Daten in nach dem "copy-back"-Verfahren abeitenden Cache-Speichern werden daher in der Regel durch einen fehlerkorrigierenden Code geschützt - man siehe die zuerst genannte Literaturstelle, Seite 501, Abschn. 6 -, um eine ausreichende Funktionsfähigkeit zu gewährleisten.On the other hand, the "copy-back" process is required a higher level of security for the data in the cache memory, there is no copy of the changed data in the cache memory the same data is in memory. Data in "copy-back" processing Cache memories are therefore usually replaced by a error correcting code protected - see the first cited reference, page 501, section 6 -, to ensure sufficient functionality.

Dabei hängt der Aufwand für die Sicherung gegen Speicherfehler und für die Korrektur in erheblichem Maße davon ab, wie störanfällig die verwandten Speicherbausteine, meistens in Form von RAM, sind und ob daher neben Einzelfehlern auch Doppelfehler oder gar Dreifachfehler zu erkennen und zu korrigieren sind, um eine ausreichende Funktionssicherheit des Pufferspeichers sicherzustellen. So sind z. B. für Blöcke mit je 32 Bytes zu je acht Bit insgesamt 128 zusätzliche Prüfbits zur Korrektur von Einzelfehlern auf Byteebene erforderlich, was 50% mehr Speicheraufwand erfordert, wodurch sich in erheblichem Maße zusätzliche Fehlerquellen eröffnen und sich wegen der größeren Verbindungsentfernungen größere Laufzeiten ergeben.The effort involved in securing against memory errors depends on this and for the correction to a considerable extent depending on how susceptible to failure the related memory chips, mostly in the form of RAM, and are therefore in addition to single errors, double errors or even triple errors to recognize and correct a sufficient functional reliability of the buffer memory ensure. So z. B. for blocks with A total of 128 additional 32 bytes of eight bits each Check bits for correcting individual errors at the byte level required, which requires 50% more storage, which significantly increases additional sources of error open up and because of the greater connection distances result in longer terms.

Würde man nun unabhängig vom Gesichtspunkt, den Umfang des Datentransfers zwischen Pufferspeicher und Arbeitsspeicher möglichst klein zu halten, allgemein in Verbindung mit den eine Änderung anzeigenden Steuerbits jeweils nur die Untereinheiten übertragen, bei denen eine Änderung erfolgt ist, so würden fehlerbehaftete, nicht geänderte Untereinheiten die Steuerung gar nicht erst belasten und die Funktionsfähigkeit der Datenverarbeitungsanlage nicht beeinträchtigen, da gültige Kopien dieser Untereinheiten sowieso im Arbeitsspeicher vorhanden sind. Insbesondere würden nicht korrigierbare und damit zum Programmabbruch führende Fehler bei ungeänderten Untereinheiten ohne Auswirkung bleiben, so daß die Verfügbarkeit und damit die Leistungsfähigkeit der Datenverarbeitungsanlage gesteigert würde.Would you now regardless of the point of view, the scope of data transfer between the buffer memory and the main memory to keep it as small as possible, generally in connection with the control bits indicating a change only transfer the subunits where If a change has taken place, control units that have not been changed first strain and the functionality of the data processing system do not interfere as valid copies  of these subunits are present in the working memory anyway are. In particular, would not be correctable and thus errors that lead to the program being terminated in the case of unchanged Subunits remain without effect, so that Availability and thus the performance of the Data processing system would be increased.

Andererseits erfordert die Übertragung von Dateneinheiten eines Blocks einzeln nacheinander mit individuellen Steuerbefehlen wesentlich mehr Aufwand gegenüber der Übertragung jeweils eines ganzen Blocks mit nur einem Steuerbefehl, insbesondere an Zeit, so daß der Vorteil der geringeren Belastung des Speicherübertragungsweges wenigstens teilweise durch eine Verringerung der Leistungsfähigkeit der Datenverarbeitungsanlage wieder aufgehoben wird.On the other hand, the transfer of data units requires a block one by one with individual Control commands significantly more effort than the Transfer of an entire block with only one Control command, especially at time, so the advantage the lower load on the memory transmission path at least in part by reducing performance the data processing system again will be annulled.

Es ist daher Aufgabe der Erfindung, ausgehend von den eingangs genannten Verfahren und Anordnungen diese so zu gestalten, daß bei geringem Aufwand die durchschnittliche Leistungsfähigkeit der Datenverarbeitungsanlage gesteigert wird.It is therefore an object of the invention, starting from the the methods and arrangements mentioned at the outset to design that the average Performance of the data processing system is increased.

Diese Aufgabe wird gemäß der Erfindung durch die kennzeichnenden Merkmale des Patentanspruches 1 gelöst.This object is achieved according to the invention by the characterizing Features of claim 1 solved.

Ausgehend von der Bildung der Untereinheiten eines Datenblocks zunächst unabhängig von der Übertragungsbreite auf dem Übertragungsleitungssystem allein unter dem Gesichtspunkt, daß kleinere Untereinheiten, z. B. in Form von Bytes, mit individueller Fehlerüberwachungsmöglichkeit, die Wahrscheinlichkeit einer Funktionsbeeinträchtigung durch Speicherfehler verringern und daß sich Speicherfehler umso weniger auswirken können, je stärker der Auswirkungsbereich eingegrenzt ist, insbesondere wenn nur Teile eines Blockes geändert werden wird unter dem Gesichtspunkt, daß Speicherfehler meistens sporadisch auftreten, in den überwiegenden Fällen der Blockübertragungsmechanismus beibehalten, so daß insbesondere bei kleinen Blöcken mit zum Beispiel 32 Bytes die Übertragung in den Arbeitsspeicher mit dem geringstmöglichen Aufwand und bei nur verhältnismäßig geringer Belastung des Speicherübertragungsweges in im Durchschnitt kürzerer Zeit ausgeführt werden kann. Lediglich im Fehlerfall wird gegebenenfalls von der Blockübertragungssteuerung abgewichen und anhand der Steuerbits eine Auswahl der zu übertragenden Einheiten getroffen.Based on the formation of the subunits of a data block initially regardless of the transmission width on the transmission line system alone under the Viewpoint that smaller subunits, e.g. B. in the form of bytes, with individual error monitoring options, the likelihood of functional impairment by reducing memory errors and that memory errors can have less of an impact the more limited the area of impact,  especially if only parts of a block are changed is from the point of view that Memory errors mostly occur sporadically in the predominantly the block transfer mechanism maintained so that especially in small blocks with 32 bytes, for example, the transfer to the main memory with the least possible effort and with only a relatively small load on the memory transmission path in a shorter time on average can be executed. Only in the event of an error possibly deviated from the block transfer control and based on the control bits a selection of the transmitting units.

Damit erhöht sich zugleich die Wahrscheinlichkeit, daß nicht geänderte fehlerhafte Daten mit nicht korrigierbaren Fehlern ausgeschieden werden, ohne daß in gleichem Maße die Verfügbarkeit wegen Fehlens einer entsprechenden Fehlerkorrekturmöglichkeit eingeschränkt wird. Die Fehlertoleranz erhöht sich also bei nur geringem zusätzlichem Aufwand für die Änderungsbits.This also increases the probability that incorrect data not changed with uncorrectable Errors are eliminated without doing the same Measure availability due to the lack of a corresponding one Error correction option is restricted. The Fault tolerance increases with only a little additional Change bit overhead.

Insgesamt führt das bei geringerem Aufwand zu einer durchschnittlichen Steigerung der Leistungsfähigkeit infolge der im Vergleich zur vorgegebenen Korrekturmöglichkeit verbesserten Verfügbarkeit und infolge der durchschnittlich kürzeren Übertragungszeiten.Overall, this leads to a less effort average increase in performance as a result of the possibility of correction compared to the specified one improved availability and as a result of shorter transmission times on average.

Lösungsvarianten für den Verfahrensablauf ergeben sich aus den Ansprüchen 2 bis 5, wobei insbesondere die Weiterbildung der Erfindung nach Anspruch 5 mit Lesen und Zwischenspeicherung des auszuspeichernden Datenblocks als Einheit und mit im Fehlerfall sofortigen Überleitung in eine Einzelbefehlssteuerung die Möglichkeit einräumt, daß der freigemachte Pufferspeicherbereich sofort wieder belegt und vordringliche Speicherzyklen für andere Speicheranfragen eingeschoben werden können.Solution variants for the process flow arise from claims 2 to 5, in particular the training of the invention according to claim 5 with reading and Interim storage of the data block to be saved as Unit and, in the event of a fault, immediate transfer to  a single command control gives the possibility that the cleared buffer memory area immediately again occupied and priority storage cycles for others Storage requests can be inserted.

Außerdem sieht eine andere Weiterbildung gemäß den Patentansprüchen 6 und 7 der Erfindung vor, daß auch fehlerhafte geänderte Daten in den Arbeitsspeicher ausgelagert werden können, ohne daß eine Speicherfehlermeldung von diesem ausgelöst wird. Ein Prgrammabbruch wird dann nur erforderlich, wenn auf diese fehlerhaften Daten im Arbeitsspeicher zurückgegriffen werden muß. Vielfach aber handelt es sich dabei nur um Zwischenergebnisse, die im späteren Programmablauf gar nicht mehr benötigt werden, so daß auch auf diese Weise unnötige Programmabbrüche vermieden werden.In addition, another training sees according to the Claims 6 and 7 of the invention that that also incorrect changed data is stored in the working memory can be without a memory error message is triggered by this. A program is canceled then only required if on this incorrect data must be accessed in the working memory. Often but these are only interim results, which is no longer required in the later program flow be, so that unnecessary program cancellations be avoided.

Entsprechende Anordnungen zur Durchführung der einzelnen Verfahren ergeben sich aus den Ansprüchen 8 bis 12.Corresponding arrangements for the implementation of the individual Methods result from claims 8 to 12.

Einzelheiten der Erfindung seien nachfolgend anhand in der der Zeichnung dargestellter Ausführungsbeispiele näher erläutert. Im einzelnen zeigtDetails of the invention are described below in the embodiment shown in the drawing explained in more detail. In detail shows

Fig. 1 ein Blockschaltbild eines Cache-Speichers mit einer gemäß der Erfindung erweiterten Steuereinrichtung, Fig. 1 is a block diagram of a cache memory with an extended according to the invention control means,

Fig. 2 ein Blockschaltbild der zusätzlichen Einrichtungen gemäß der Erfindung mit mehreren Ausführungsvarianten, Fig. 2 is a block diagram of the additional means according to the invention with several embodiments,

Fig. 3 ein Ablaufdiagramm zur Erläuterung der Arbeitsweise der erweiterten Steuereinrichtung entsprechend der einen erfindungsgemäßen Varianten und Fig. 3 is a flowchart for explaining the operation of the extended control device according to a variant of the invention and

Fig. 4 ein weiteres Ablaufdiagramm zur Erläuterung einer weiteren erfindungsgemäßen Verfahrensvarianten. Fig. 4 shows another flow chart for explaining another process variants of the invention.

Das Blockschaltbild von Fig. 1 zeigt die wesentlichen Teile eines Cache-Speichers C-SP mit den Übertragungsleitungssystemen zum Arbeitsspeicher ASP und zur Prozessoreinheit CPU einer Datenverarbeitungsanlage.The block diagram of FIG. 1 shows the essential parts of a cache memory C-SP with the transmission line systems to the main memory ASP and to the processor unit CPU of a data processing system.

Der Cache-Speicher C-SP gliedert sich in drei Teile, nämlich einen Teil AD-SP für die Adressen TAG, einen Teil ST-SP für die Steuerbits und einen Teil DAT-SP für die eigentlichen Daten, wobei die jeweils in einer Zeile liegenden Teile aller drei Speicherteile jeweils einen Eintrag bilden, der mit der Adresse AD 1 über die Schreib-/Lesesteuerung S/L-ST auswählbar ist.The cache memory C-SP is divided into three parts, namely a part AD-SP for the addresses TAG , a part ST-SP for the control bits and a part DAT-SP for the actual data, each of which lies on one line Parts of all three memory parts each form an entry which can be selected with the address AD 1 via the read / write control S / L-ST .

Der Speicherteil DAT-SP hat beispielsweise eine Breite von jeweils n Doppelwörtern DW 1 bis DWn, die zusammen einen Block bilden, wobei z. B. jedes Doppelwort DW aus zwei Einzelwörtern mit je zwei Bytes zu je acht Datenbits besteht. Jedes Byte ist beispielsweise mit einem Paritätsbit gesichert. Die Übertragungsbreite auf den Leitungssystemen entspricht dagegen z. B. einem Doppelwort DW, so daß zur Übertragung eines Blockes n Doppelwörter nacheinander zu übertragen sind, die durch die speicherinterne Auswahlsteuerung SAW nacheinander abhängig von der Einstelladresse AD DW-E in die richtigen Speicherbereiche geleitet und aus diesen mit dem Multiplexer MUX 2 nacheinander abhängig von der Einstelladresse AD DW-A weitergeleitet werden. Der weitere Multiplexer MUX-E dient in an sich bekannter Weise zur Auswahl der Datenübertragungswege für die Eingabe durch die Prozessoreinheit CPU bzw. durch den Arbeitsspeicher ASP. The memory part DAT-SP has, for example, a width of n double words DW 1 to DWn , which together form a block, z. B. each double word DW consists of two single words, each with two bytes of eight data bits each. For example, each byte is secured with a parity bit. The transmission width on the line systems corresponds to z. B. a double word DW , so that for the transmission of a block n double words are to be transmitted one after the other, which are passed through the memory-internal selection control SAW one after the other depending on the setting address AD DW-E into the correct memory areas and from this with the multiplexer MUX 2 one after another depending the setting address AD DW-A . The further multiplexer MUX-E is used in a manner known per se to select the data transmission paths for input by the processor unit CPU or by the working memory ASP .

Jedem der angenommenen vier Bytes eines Doppelwortes im Speicherteil DAT-SP, die die zu überwachenden Untereinheiten bilden, ist im Speicherteil ST-SP ein Steuerbit W . . . zugeordnet, das in gesetztem Zustand eine Änderung des zugehörigen Bytes anzeigt. Bei Blöcken aus je acht Doppelwörtern entsprechend 32 Bytes sind das insgesamt 32 Bits, nämlich W 1 bis W 32. Zusätzlich ist in üblicher Weise wenigstens ein Gültigkeitsbit V, das die Gültigkeit des zugehörigen Eintrags anzeigt, und ein Sicherungszeichen SI zur Sicherung der Steuerbitinformation vorgesehen. Ebenso sind die Adressen TAG im Speicherteil AD-SP durch ein Sicherungszeichen SI gesichert.Each of the assumed four bytes of a double word in the memory section DAT-SP , which form the subunits to be monitored, is a control bit W in the memory section ST-SP . . . assigned, which indicates a change in the associated byte when set. For blocks of eight double words each corresponding to 32 bytes, this is a total of 32 bits, namely W 1 to W 32 . In addition, at least one validity bit V , which indicates the validity of the associated entry, and a security symbol SI are provided in the usual manner for securing the control bit information. Likewise, the addresses TAG in the memory section AD-SP are secured by a security symbol SI .

Auf die Bildung der Sicherungszeichen und die Ableitung der Steuerbits sowie die allgemeine Arbeitsweise der Speichersteuerung SP-ST in Verbindung mit der Einrichtung H/M zur Prüfung, ob ein gewünschter Eintrag vorliegt, und mit der Prüfeinrichtung PPE zur Überwachung der vom Multiplexer MUX 2 ausgewählten gelesenen Dateneinheiten auf Fehlerfreiheit sei in diesem Zusammenhang nicht näher eingegangen, da dies für das Verständnis der Erfindung nicht von Bedeutung ist. Einzelheiten hierzu sind z. B. aus dem genannten Aufsatz aus Computing Surveys mit den darin gegebenen Literaturhinweisen bekannt.On the formation of the security signs and the derivation of the control bits as well as the general mode of operation of the memory controller SP-ST in connection with the device H / M for checking whether a desired entry is present and with the test device PPE for monitoring the reads selected by the multiplexer MUX 2 Data units on freedom from errors are not discussed in more detail in this context, since this is not important for understanding the invention. Details on this are e.g. B. known from the aforementioned article from Computing Surveys with the references given therein.

Neu ist jedoch gemäß der Erfindung die Ergänzung der Speichersteuerung SP-ST durch die zusätzliche Steuereinrichtung W-ST, die die aus dem Speicherteil ST-SP gelesenen Steuerbits W 1 bis W 32 in Verbindung mit den von der Prüfeinrichtung PPE gelieferten Fehlersignalen für die einzelnen Bytes der aus dem Speicherteil DAT-SP gelesenen Dateneinheiten DW 1 bis DWn auswertet und davon abhängig die Übertragung der einzelnen Dateneinheiten eines Eintrags im Cache-Speicher C-SP bei der Auslagerung in den Arbeitsspeicher ASP steuert.However, what is new according to the invention is the addition of the memory controller SP-ST to the additional control device W-ST , which controls bits W 1 to W 32 read from the memory section ST-SP in connection with the error signals supplied by the test device PPE for the individual bytes evaluates the data units DW 1 to DWn read from the memory part DAT-SP and, depending on this, controls the transmission of the individual data units of an entry in the cache memory C-SP when it is swapped out into the main memory ASP .

Einzelheiten dieser Steuereinrichtung W-ST im Zusammenwirken mit der allgemeinen Speichersteuerung SP-ST zeigt Fig. 2.Details of this control device W-ST in cooperation with the general memory controller SP-ST are shown in FIG. 2.

Die Steuerbitleitungen für die Steuerbits W 1 bis W 32 eines gelesenen Eintrags im linken oberen Teil der Figur sind entsprechend den vier Bytes für jede Dateneinheit DW in Gruppen G 1 bis G 8 zusammengefaßt und werden durch die ODER-Glieder OR 1 und das nachgeschaltete ODER-Glied OR 2 auf das Vorliegen einer Änderung der zugehörigen Datenbytes überwacht. Ist keines der Bits W 1 bis W 32 gesetzt und liegt demzufolge keine Änderung vor, dann ist bei einer vorzunehmenden Räumung des zugehörigen Eintrags im Cache-Speicher C-SP keine Auslagerung in den Arbeitsspeicher ASP erforderlich. Es genügt, wenn mit dem Signal S.INV das zugehörige Gültigkeitsbit V im Speicherteil ST-SP auf Null gesetzt wird und dann die neuen Daten aus dem Arbeitsspeicher in den zugehörigen Eintrag übertragen werden.The control bit lines for the control bits W 1 to W 32 of a read entry in the upper left part of the figure are combined according to the four bytes for each data unit DW in groups G 1 to G 8 and are represented by the OR elements OR 1 and the subsequent OR Link OR 2 monitored for the presence of a change in the associated data bytes. If none of the bits W 1 to W 32 is set and there is consequently no change, then if the associated entry in the cache memory C-SP is to be cleared, no swapping out into the working memory ASP is necessary. It is sufficient if the associated validity bit V in the memory section ST-SP is set to zero with the signal S.INV and then the new data are transferred from the working memory to the associated entry.

Ist dagegen eines der Bits W 1 bis W 32 gesetzt, dann müssen die Daten des Eintrags erst in den Arbeitsspeicher ASP ausgelagert werden, was durch das Signal SWAP gekennzeichnet wird und damit zur Einleitung eines Blockübertragungszyklus führt. Zu diesem Zweck liefert in an sich bekannter Weise ein Zähler CNT-A, gesteuert durch Taktimpulse T, nacheinander und in Abstimmung mit dem Übertragungszyklus für jede Dateneinheit DW . . . die Einstelladresse AD DW-A für den Multiplexer MUX 2. Diese Einstelladresse steuert gleichzeitig einen weiteren Multiplexer MUX innerhalb der Steuereinrichtung W-ST, der jeweils gleichzeitig zu den ausgewählten Dateneinheiten DW . . . eines Blockes die zugehörige Steuerbitgruppe G . . . auswählt und auf den Ausgang durchschaltet. Mit den so jeweils ausgewählten vier Steuerbits, z. B. W 1 bis W 4, werden die gleichzeitig von der die zugehörige Dateneinheit, z. B. DW 1, überprüfenden Prüfeinrichtung PPE gelieferten Fehlersignale PERR 0 bis 3 verknüpft.If, on the other hand, one of the bits W 1 to W 32 is set, the data of the entry must first be swapped out into the working memory ASP , which is identified by the signal SWAP and thus leads to the initiation of a block transmission cycle. For this purpose, a counter CNT-A , controlled by clock pulses T , supplies one after the other and in coordination with the transmission cycle for each data unit DW in a manner known per se. . . the setting address AD DW-A for the multiplexer MUX 2 . At the same time, this setting address controls a further multiplexer MUX within the control device W-ST , each of which simultaneously to the selected data units DW . . . of a block the associated control bit group G. . . selected and switched through to the output. With the four control bits selected in each case, e.g. B. W 1 to W 4 , which are simultaneously from the associated data unit, for. B. DW 1 , checking test device PPE supplied error signals PERR 0 to 3 linked.

Diese Verknüpfung kann entsprechend den möglichen verschiedenen Lösungsvarianten auf unterschiedliche Weise durchgeführt werden. Zur Grundausrüstung gehören dabei die UND-Glieder U 01 bis U 31, die UND-Glieder U 02 bis U 32 und das ODER-Glied OR 3.This link can be carried out in different ways according to the possible different solution variants. The basic equipment includes the AND gates U 01 to U 31 , the AND gates U 02 to U 32 and the OR gate OR 3 .

Die UND-Glieder U 01 bis U 31 überwachen jeweils, ob ein fehlerfreies geändertes Datenbyte als Untereinheit vorliegt, und liefern das Steuersignal BYTE.SEL . . ., das mit Signal "1" jeweils das Einschreiben des zugehörigen Datenbytes in den Arbeitsspeicher freigibt und mit Signal "0" jeweils die Übernahme in den Arbeitsspeicher verhindert. Die UND-Glieder U 02 bis U 32 überwachen das Vorliegen einer geänderten, fehlerhaften Untereinheit, was durch das ODER-Glied OR 3 zum Fehlersignal (W PERR) führt, das dann in unterschiedlicher Weise den weiteren Steuerungsablauf beeinflussen kann, was später im einzelnen noch erläutert wird.The AND gates U 01 to U 31 each monitor whether an error-free changed data byte is present as a subunit and deliver the control signal BYTE.SEL . . ., which enables the corresponding data byte to be written into the working memory with signal "1" and prevents the transfer to the working memory with signal "0". The AND gates U 02 to U 32 monitor the presence of a modified, defective subunit, which leads through the OR gate OR 3 to the error signal (W PERR) , which can then influence the further control process in different ways, which will be explained in more detail later is explained.

Bei der einfachsten Lösungsvariante ist das rechts vom Multiplexer MUX gestrichelt gezeichnete zusätzliche ODER-Glied OR 4 erforderlich, das die Fehlersignale PERR 0 bis 3 überwacht, ob ein Fehler gemeldet ist, und mit PERR DW ein Sperrsignal W.INH für den Rest eines laufenden Blockzyklus auslöst, z. B. durch Setzen der Kippstufe KS, die am Ende des Zyklus jeweils wieder zurückgesetzt wird. In the simplest solution variant , the additional OR gate OR 4 drawn in dashed lines to the right of the multiplexer MUX is required, which monitors the error signals PERR 0 to 3 , whether an error has been reported, and with PERR DW a blocking signal W.INH for the rest of an ongoing block cycle triggers e.g. B. by setting the flip-flop KS , which is reset at the end of the cycle.

Das Sperrsignal W.INH wird zum Arbeitsspeicher ASP in an sich bekannter Weise weitergeleitet und verhindert die Übernahme der gleichzeitig angelieferten Dateneinheiten für den Rest des laufenden Blockzyklus.The blocking signal W.INH is forwarded to the main memory ASP in a manner known per se and prevents the takeover of the data units delivered simultaneously for the rest of the current block cycle.

Die Ableitung des Sperrsignals W.INH kann zusätzlich davon abhängig gemacht werden, daß der Fehler kein geändertes Byte betrifft. Zu diesem Zweck wird der Ausgang des ODER-Gliedes OR 4 mit dem invertierten Ausgang des ODER-Gliedes OR 3 durch das UND-Glied U 1 verknüpft, dessen Ausgang dann mit dem Setzeingang S der Kippstufe KS verbunden ist. Dies ist besonders dann von Vorteil, wenn bei fehlerhaften geänderten Untereinheiten des Datenblocks frühzeitig in eine Fehlerbehandlungsroutine FBR mit Abbruch des laufenden Blockzyklus übergeleitet werden soll.The derivation of the locking signal W.INH can also be made dependent on the fact that the error does not affect a changed byte. For this purpose, the output of the OR gate OR 4 is linked to the inverted output of the OR gate OR 3 by the AND gate U 1 , the output of which is then connected to the set input S of the multivibrator KS . This is particularly advantageous if, in the event of incorrectly changed subunits of the data block, an early transfer to an error handling routine FBR with an abort of the current block cycle is to be carried out.

Solange kein Fehler PERR . . . angezeigt wird, werden während eines Blockzyklus die Sperrsignale BYTE.SEL . . .=0 normalerweise nicht wirksam geschaltet, so daß bis zum Erkennen eines Fehlers alle Untereinheiten, ob geändert oder nicht geändert, in den Arbeitsspeicher ASP übernommen werden. Die Unterdrückung der Sperrung ist jedoch nicht gezeigt. Sie könnte in einfacher Weise durch ein Anlegen eines konstanten Signales "1" an alle Sperrsignalleitungen bewirkt werden.As long as no error PERR . . . is displayed, the blocking signals BYTE.SEL . . . = 0 normally not activated, so that all subunits, whether changed or not changed, are transferred to the main memory ASP until an error is detected. The blocking suppression is not shown. It could be effected in a simple manner by applying a constant signal "1" to all blocking signal lines.

Tritt nun während eines laufenden Blockzyklus ein Fehler PERR . . . auf, dann läuft bei der einen Lösungsvariante der Blockzyklus zunächst bis zum Ende weiter. Da jedoch das Sperrsignal W.INH eingeschaltet ist, werden ab der fehlerbehafteten Dateneinheit keine Dateneinheiten mehr in den Arbeitsspeicher übernommen. Am Ende des abgelaufenden Blockzyklus, was mit dem Signal BE, des Zählers CNT-A erkannt wird, wird auf Einzelbefehlssteuerung umgeschaltet, und es werden nur die von geänderten Untereinheiten betroffenen Dateneinheiten DW . . . in den Arbeitsspeicher übertragen. Dabei werden alle betroffenen Dateneinheiten des Blocks, also auch die bereits übertragenen, übertragen.A PERR error now occurs during a running block cycle . . . then, in the one solution variant, the block cycle initially continues until the end. However, since the locking signal W.INH is switched on, no more data units are transferred to the working memory from the faulty data unit. At the end of the expiring block cycle, which is recognized by the signal BE , of the counter CNT-A , the system switches over to individual command control, and only the data units DW affected by changed subunits become. . . transferred to the working memory. All affected data units of the block, including those already transferred, are transferred.

Dies wird durch ein Prioritätsnetzwerk PRIO gesteuert, das an die Ausgänge der ODER-Glieder OR 1 angeschlossen und gestrichelt gezeichnet ist, da es bei anderen Lösungsvarianten entbehrlich ist.This is controlled by a PRIO priority network, which is connected to the outputs of the OR gates OR 1 and is shown in broken lines, since it is not necessary with other solution variants.

Dies Prioritätsnetzwerk PRIO ermittelt, gesteuert durch Impulse am Eingang f in zyklischer Folge die Gruppen G . . . von Steuerbits W . . ., die eine Änderung anzeigen. Die ermittelten Gruppenadressen werden nacheinander dem Zähler CNT-A zur Einstellung durch entsprechende Steuerimpulse am Eingang ü übergeben, so daß der Multiplexer MUX die ausgewählte Gruppe durchschaltet und gleichzeitig der Multiplexer MUX 2 die zugehörige Dateneinheit auswählt. Während der Einzelbefehlssteuerung bleibt ein möglicherweise auftretendes Sperrsignal W.INH ohne Auswirkung. Vielmehr wird durch die Steuersignale BYTE.SEL . . . die Übernahme in den Arbeitsspeicher gesteuert, wobei fehlerhafte nicht geänderte Untereinheiten unberücksichtigt bleiben und fehlerhafte geänderte Untereinheiten zum Fehlersignal (W PERR) am Ausgang des ODER-Gliedes OR 3 und damit, wie bereits erläutert, gegebenenfalls zum Abbruch der Übertragung mit Überleitung in eine Fehlerbehandlungsroutine FBR führen.This priority network PRIO , controlled by pulses at input f, determines groups G in a cyclical sequence. . . of control bits W. . ., which indicate a change. The determined group addresses are successively transferred to the counter CNT-A for adjustment by corresponding control pulses at the input ü , so that the multiplexer MUX switches through the selected group and at the same time the multiplexer MUX 2 selects the associated data unit. During the single command control , a possibly occurring locking signal W.INH has no effect. Rather, the control signals BYTE.SEL . . . the transfer to the working memory is controlled, whereby defective, unchanged subunits are disregarded and defective, modified subunits for the error signal (W PERR) at the output of the OR gate OR 3 and thus, as already explained, possibly for terminating the transmission with transfer to an error handling routine FBR to lead.

Bei einer weiteren Varianten wird der laufende Blockübertragungszyklus mit Auftreten eines Fehlers abgebrochen und ohne Verzug in eine Einzelbefehlssteuerung in Verbindung mit den Steuersignalen BYTE.SEL . . . übergeleitet. Dabei können, wie bei der vorhergehend erläuterten Variante, alle geänderten Untereinheiten, also auch die bereits übertragenen, übertragen werden.In a further variant, the current block transmission cycle is aborted when an error occurs and without delay in a single command control in connection with the BYTE.SEL control signals. . . transferred. As with the variant explained above, all changed subunits, including those that have already been transmitted, can be transmitted.

Durch den augenblicklichen Abbruch des Blockzyklus besteht aber auch die Möglichkeit, die Übertragung mit den nicht übertragenen Dateneinheiten fortzusetzen.Due to the immediate termination of the block cycle but also the possibility of transferring with the data units not transmitted to continue.

Der Zähler CNT-A mit seiner Adressenmarkierung liefert in diesem Falle den Startpunkt für das Prioritätsnetzwerk PRIO, wobei die Adressenmarkierung mit dem Signal üb übernommen wird. Anschließend wird dann wieder mit Signal f entsprechend den einzelnen Übertragungszyklen die Umsteuerung vorgenommen, bis das Signal en anzeigt, daß alle geänderten Untereinheiten ausgelagert sind.In this case, the counter CNT-A with its address marking supplies the starting point for the priority network PRIO , the address marking being adopted with the signal ü . The changeover is then carried out again with signal f in accordance with the individual transmission cycles, until signal en indicates that all changed subunits have been outsourced.

Auf das Prioritätsnetzwerk PRIO kann aber, wie bereits erwähnt, verzichtet werden, wenn man generell nur einen Blockzyklus vorsieht und die Steuersignale BYTE.SEL . . . von vornherein wirksam werden läßt. Dann werden nämlich nur die gewänderten Untereinheiten erfaßt. Voraussetzung ist jedoch, daß dann kein Sperrsignal W.INH erzeugt wird.However, as already mentioned, the PRIO priority network can be dispensed with if you generally only provide one block cycle and the BYTE.SEL . . . can take effect from the start. Then only the changed subunits are recorded. However, the prerequisite is that no locking signal W.INH is then generated.

Diese Lösungsvariante kostet vor allem dann am wenigsten Zeit und Aufwand, wenn fehlerhafte geänderte Daten ebenfalls in den Arbeitsspeicher ASP ausgelagert werden. In diesem Falle führt das Fehlersignal (W PERR) zu einem mehrfach genutzten Signal SPERR. Einerseits stellt es in Verbindung mit den zusätzlichen UND-Gliedern U 03 bis U 33 und den ODER-Gliedern OR 01 bis OR 31 sicher, daß die fehlerbehafteten geänderten Bytes für die Übernahme durch den Arbeitsspeicher mit der Erzeugung der Signale BYTE.SEL . . .=1 gekennzeichnet werden, und zum anderen bewirkt es am Arbeitsspeicher ASP, daß dieser trotz des bei der eigenen Fehlerprüfung festgestellten Fehlers die fehlerbehafteten Bytes annimmt und als ungültig markiert, z. B. durch ein falsches Sicherungszeichen, abgespeichert, ohne einen Speicherfehler zu melden. Fehlerhafte, geänderte Untereinheiten können sich dann nur auswirken, wenn im weiteren Programmverlauf auf diese Untereinheiten erneut zugegriffen werden muß.This solution variant costs the least time and effort when incorrectly changed data is also swapped out to the ASP memory. In this case, the error signal (W PERR) leads to a signal SPERR used several times. On the one hand, in conjunction with the additional AND gates U 03 to U 33 and the OR gates OR 01 to OR 31, it ensures that the faulty changed bytes for the transfer by the working memory with the generation of the BYTE.SEL signals. . . = 1 are marked, and on the other hand it causes the working memory ASP to accept the defective bytes in spite of the error found during its own error check and to mark them as invalid, e.g. B. saved by an incorrect security symbol without reporting a memory error. Faulty, modified subunits can only have an effect if these subunits have to be accessed again in the further course of the program.

Fig. 3 und Fig. 4 zeigen entsprechende Ablaufdiagramme für die einzelnen beschriebenen Verfahrensvarianten. Fig. 3 bezeiht sich dabei auf die Varianten mit Blockzyklussteuerung und anschließendem Übergang in eine Einzelbefehlssteuerung bei Auftreten eines Fehlers, deren Ablauf im rechten unteren Teil dargestellt ist, während der linke Teil des Ablaufdiagramms sich auf den in jedem Fall zunächst eingeleiteten Blockzyklus bezieht. Fig. 3 and Fig. 4 show respective flow diagrams for the individual process variants described. Fig. 3 of an error whose sequence is shown in the lower right part, while the left part of the flowchart refers to the initially introduced in any case, block cycle bezeiht thereby to the variants with block cycle control, and subsequent transition to a single command control upon occurrence.

Die Überleitung in die Einzelbefehlssteuerung erfolgt nur im Fehlerfall, und zwar entweder am Ende eines Blockzyklus, wenn das Sperrsignal W.INH gesetzt ist oder aber unmittelbar, wie durch die strichpunktierte Verbindungslinie angedeutet ist, nach Auftreten eines Fehlers mit Abbruch des eingeleiteten Blockzyklus. Die Auslagerung von Dateneinheiten mit Einzelbefehlssteuerung beginnt entweder, wie dargestellt, mit der ersten geänderten Dateneinheit, für die W DW =1 ist, oder aber, wie bereits erläutert, mit der zum Abbruch des Blockzyklus führenden Dateneinheit anhand der vom Zähler CNT-A eingenommenen Zählerstellung zur Festlegung des Startpunktes für das Prioritätsnetzwerk PRIO.The transfer to the individual command control takes place only in the event of an error, either at the end of a block cycle if the blocking signal W.INH is set or immediately, as indicated by the dash-dotted connecting line, after an error occurs with the block cycle initiated being aborted. The outsourcing of data units with individual command control either begins, as shown, with the first changed data unit for which W DW = 1, or, as already explained, with the data unit leading to the termination of the block cycle on the basis of the counter position taken by the counter CNT-A to determine the starting point for the PRIO priority network.

Bei geänderten Untereinheiten auftretende Fehler führen, wie gestrichelt angedeutet ist, entweder zum Abbruch mit Überleitung in eine Fehlerbehandlungsroutine FBR oder aber, wenn die Art des Programms es für sinnvoll erscheinen läßt, zu einer Auslagerung in den Arbeitsspeicher mit entsprechendem Begleitsignal SPERR.Errors that occur in the case of changed subunits lead, as indicated by dashed lines, either to an abort with a transfer to an error handling routine FBR or, if the type of program makes it seem sensible, to a swap to the main memory with the corresponding accompanying signal SPERR .

Das Ablaufdiagramm von Fig. 4 betrifft die Verfahrensvariante mit einmal ablaufendem Blockzyklus, wobei die Byteauswahlsignale BYTE.SEL . . . von vornherein wirksam sind, so daß in jedem der aufeinanderfolgenden Schreibzyklen lediglich die geänderten Bytes in den Arbeitsspeicher eingeschrieben werden.The flow chart of FIG. 4 relates to the method variant with a block cycle running once, the byte selection signals BYTE.SEL . . . are effective from the outset, so that in each of the successive write cycles only the changed bytes are written into the main memory.

Bei den bisher beschriebenen Varianten ist der Cache- Speicher C-SP jeweils solange blockiert, bis die Auslagerung eines Blockes abgeschlossen ist, da die einzelnen Dateneinheiten unmittelbar aus dem Cache- Speicher ohne Zwischenspeicherung zur Übertragung gelangen. Man könnte jedoch zusätzlich einen Zwischenspeicher für den gesamten Eintrag vorsehen und die Sicherungszeichen aller Dateneinheiten zunächst prüfen, um davon abhängig zu entscheiden, ob die Auslagerung im Rahmen eines Blockzyklus oder aber gleich durch Einzelbefehlssteuerung erfolgen soll. Während der Prüfzeit und auch während der Einzelbefehlssteuerung könnten der gesamte Eintragsbereich im Cache-Speicher bereits wieder belegt oder aber andere Speicheranfragen ohen weiteres berücksichtigt werden.In the variants described so far, the cache memory C-SP is blocked until the swapping of a block is complete, since the individual data units are transferred directly from the cache memory without intermediate storage. However, one could additionally provide a buffer for the entire entry and first check the security characters of all data units in order to decide depending on whether the swapping should take place as part of a block cycle or immediately by means of individual command control. During the test period and also during the individual command control, the entire entry area in the cache memory could already be occupied again or other memory requests could be taken into account without further notice.

Die Sicherung der Daten ist beim beschriebenen Ausführungsbeispiel mit einem einzigen Paritätsbit je Byte durchgeführt worden, was im Fehlerfall keine Korrektur zuläßt. Trotzdem beeinträchtigt nicht jeder Fehler die Verfügbarkeit, da infolge der gewählten Größe der Untereinheiten die Gefahr verringert wird, daß Fehler bei nicht geänderten Dateneinheiten sich auf geänderte Dateneinheiten auswirken können. Trotz fehlender Möglichkeit einer Fehlerkorrektur läßt sich also die Funktionsfähigkeit infolge der größeren Fehlertoleranz erheblich steigern.The backup of the data is in the described embodiment with a single parity bit per byte been carried out, which is no correction in the event of an error allows. Nevertheless, not every mistake affects the Availability as a result of the chosen size of the subunits the risk is reduced that errors in unchanged data units refer to changed data units can impact. Despite the lack of possibility The functionality can thus be corrected  due to the greater fault tolerance increase.

Bei größerer Speicherfehlerwahrscheinlichkeit mit der Notwendigkeit zur Korrektur z. B. von Einzelfehlern gilt Analoges für nicht korrigierbare Doppelfehler.If the memory error probability is greater with the Need to correct z. B. of individual errors applies The same for non-correctable double errors.

Die Durchführung der Verfahren ist dabei nicht an Schaltungsteile in fest verdrahteter Logik entsprechend dem Ausführungsbeispiel von Fig. 2 gebunden. Die einzelnen Verfahrensschritte sind ohne weiteres auch von einer speicherprogrammierten Steuerung, z. B. einem Mikroprozessor, ausführbar.The implementation of the method is not bound to circuit parts in hard-wired logic in accordance with the exemplary embodiment in FIG. 2. The individual process steps are easily from a programmable logic controller, z. B. a microprocessor, executable.

Selbstverständlich können anstelle der als Untereinheiten gewählten Bytes beispielsweise zwei oder auch vier Bytes jeweils eine Untereinheit bilden, der jeweils ein Steuerbit W zugeordnet wird. Die Größe der zu wählenden Untereinheiten richtet sich dabei in erster Linie nach der Art der Daten und deren Änderungshäufigkeit sowie nach dem angestrebten Sicherungsgrad bei einer vorgegebenen Fehlerwahrscheinlichkeit der verwendeten Speicherbausteine, sie kann durch entsprechende Simulation ermittelt werden.Of course, instead of the bytes selected as subunits, two or even four bytes can each form a subunit to which a control bit W is assigned. The size of the subunits to be selected depends primarily on the type of data and the frequency with which it is changed, as well as on the level of security aimed at for a given probability of error in the memory modules used; it can be determined by appropriate simulation.

Claims (12)

1. Verfahren zur Steuerung der Übertragung von in Pufferspeichern, insbesondere Cache-Speichern, von Datenverarbeitungsanlagen gespeicheten Daten in den Arbeitsspeicher, wobei nur im Pufferspeicher in Form von Blöcken gespeicherte Daten des Arbeitsspeichers geändert und geänderte Daten nur dann in den Arbeitsspeicher übertragen werden, wenn der zugehörige Speicherbereich für einen Block im Pufferspeicher für andere Daten benötigt wird, die Blöcke der Daten aus selbständigen Untereinheiten bestehen und jeder Untereinheit in Steuerbit zugeordnet ist, das die Änderung der jeweiligen Untereinheit anzeigt, und wobei wenigstens die Übertragung der Daten vom Arbeitsspeicher zum Pufferspeicher jeweils im Rahmen eines gesamten Blockes durch einen einzigen Steuerbefehl und in umgekehrter Richtung auch im Rahmen von einzelnen Untereinheiten mit individuellen Steuerbefehlen abhängig von den Steuerbits möglich ist, wobei jeweils der Breite des Übertragungsleitungssystems entsprechende Dateneinheiten nacheinander übertragen werden,
dadurch gekennzeichnet, daß bei Auslagerung eines Datenblockes mit wenigstens einer geänderten Untereinheit aus dem Pufferspeicher (C-SP) in den Arbeitsspeicher (ASP), wobei unabhängig vom Umfang des jeweiligen Datenblocks und der von der Breite des Übertragungsleitungssystems bedingten Größe der Dateneinheiten (z. B. Doppelwörter DW . . . mit je vier Bytes) diese in Untereinheiten (z. B. in Form von Bytes) mit individueller Fehlerüberwachungsmöglichkeit unterteilt sind, denen ein individuelles Steuerbit (z. B. W 1) zur Markierung einer Änderung zugeordnet ist, bei Fehlerfreiheit aller Untereinheiten des Blockes die Übertragung jeweils im Rahmen des gesamten Blockes mit nur einem Steuerbefehl erfolgt und daß bei Vorliegen wenigstens einer fehlerhaften Untereinheit innerhalb des auszulagernden Blockes die Steuerbits (z. B. W 1 bis W 32) zur Steuerung der Übertragung der Dateneinheiten mit geänderten Untereinheiten herangezogen und nicht geänderte fehlerhafte Untereinheiten von der Übernahme in den Arbeitsspeicher (ASP) ausgeschlossen werden.
1.Procedure for controlling the transfer of data stored in buffer memories, in particular cache memories, from data processing systems into the main memory, data in the main memory stored in the form of blocks only being changed in the buffer memory and changed data being transferred to the main memory only when the The associated memory area is required for a block in the buffer memory for other data, the blocks of the data consist of independent subunits and are assigned to each subunit in control bits which indicate the change in the respective subunit, and at least the transfer of the data from the working memory to the buffer memory in each case It is possible to frame an entire block by means of a single control command and, in the opposite direction, also in the context of individual subunits with individual control commands depending on the control bits, data units corresponding to the width of the transmission line system n are transmitted one after the other,
characterized in that when a data block with at least one modified sub-unit is swapped out of the buffer memory (C-SP) into the main memory (ASP) , whereby regardless of the size of the respective data block and the size of the data units (e.g. Double words DW, each with four bytes) are subdivided into subunits (e.g. in the form of bytes) with individual error monitoring options, to which an individual control bit (e.g. W 1 ) for marking a change is assigned Flawlessness of all sub-units of the block, the transmission takes place within the entire block with only one control command and that if there are at least one defective sub-unit within the block to be swapped out, the control bits (e.g. W 1 to W 32 ) are used to control the transmission of the data units changed subunits and unchanged defective subunits from the exercise in memory (ASP) can be excluded.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß jede Auslagerung eines Datenblocks mit einem Blockübertragungszyklus eingeleitet wird, daß mit der jeweils ersten innerhalb des Blockübertragungszyklus aus dem Pufferspeicher gelesenen fehlerhaften Dateneinheit (z. B. DW 5) die Übernahme dieser und aller im Blockübertragungszyklus nachfolgenden Dateneinheiten (z. B. DW 6 bis DW 8) durch ein Begleitsignal (W.INH) gesperrt wird und daß nachfolgend wenigstens alle, noch nicht übernommene geänderte Untereinheiten aufweisenden Dateneinheiten mit Einzelbefehlssteuerung übertragen werden, wobei gegebenenfalls von der Speicherübernahme auszuschließende Untereinheiten innerhalb einer Dateneinheit durch gesonderte Steuersignale (BYTRE.SEL . . .=0) markiert werden. 2. The method according to claim 1, characterized in that each swapping of a data block is initiated with a block transfer cycle, that with the first faulty data unit read from the buffer memory within the block transfer cycle (for example DW 5 ), the takeover of these and all in the block transfer cycle Subsequent data units (e.g. DW 6 to DW 8 ) are blocked by an accompanying signal (W.INH) and that at least all data units that have not yet been adopted and have changed subunits are subsequently transmitted with individual command control, subunits to be excluded from the memory transfer, if necessary, within one Data unit can be marked by separate control signals (BYTRE.SEL.... = 0). 3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß mit Lesen einer fehlerhaften Dateneinheit (z. B. DW 5) der laufende Blockübertragungszyklus sofort abgebrochen und auf Einzelbefehlssteuerung umgeschaltet wird, wobei lediglich die im Rahmen des Blockzyklus noch nicht übertragenen Dateneinheiten berücksichtigt werden.3. The method according to claim 2, characterized in that the reading of a faulty data unit (z. B. DW 5 ), the current block transmission cycle is immediately interrupted and switched to single command control, only the data units not yet transferred in the block cycle are taken into account. 4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß jede Auslagerung eines Datenblocks im Rahmen eines Blockübertagungszyklus durchgeführt wird und daß während des ablaufenden Blockübertragungszyklus alle nicht geänderten Untereinheiten der einzelnen Dateneinheiten durch gesonderte Steuersignale (z. B. BYTE.SEL 1=0) markiert werden, die eine Übernahme durch den Arbeitsspeicher (ASP) unterbinden.4. The method according to claim 1, characterized in that each swapping of a data block is carried out in the context of a block transmission cycle and that all unchanged subunits of the individual data units are marked by separate control signals (e.g. BYTE.SEL 1 = 0) during the ongoing block transmission cycle that prevent takeover by the main memory (ASP) . 5. Verfahren nach Anspruch 2 oder 4, dadurch gekennzeichnet, daß zu Beginn einer jeden Auslagerung eines Datenblocks der zugehörige Block zunächst als Ganzes aus dem Pufferspeicher (C-SP) gelesen und zur Fehlerprüfung (mit PEE) zwischengespeichert wird und daß ein Blockübertragungszyklus ohne Berücksichtigung der die ungeänderten Untereinheiten markierenden Steuersignale (z. B. BYTE.SEL 1=0) lediglich bei Fehlerfreiheit aller Untereinheiten des Datenblockes eingeleitet wird.5. The method according to claim 2 or 4, characterized in that at the beginning of each swap of a data block, the associated block is first read as a whole from the buffer memory (C-SP) and buffered for error checking (with PEE) and that a block transfer cycle is ignored the control signals marking the unchanged subunits (e.g. BYTE.SEL 1 = 0) are only initiated if all subunits of the data block are error-free. 6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß auch als fehlerhaft erkannte und als geändert markierte Untereinheiten in den Arbeitsspeicher (ASP) übertragen und in diesem als ungültig markiert werden und daß die vom Arbeitsspeicher (ASP) dabei normalerweise ausgelöste Speicherfehlermeldung unterdrückt wird.6. The method according to any one of claims 1 to 5, characterized in that also recognized as incorrect and marked as modified subunits in the working memory (ASP) and marked in this as invalid and that the memory error message normally triggered by the working memory (ASP) is suppressed. 7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß die Übernahme fehlerbehafteter Dateneinheiten in den Arbeitsspeicher (ASP) und die Unterdrückung der Speicherfehlermeldung durch ein gesondertes Begleitsignal (SPERR) gesteuert wird.7. The method according to claim 6, characterized in that the transfer of defective data units into the main memory (ASP) and the suppression of the memory error message is controlled by a separate accompanying signal (SPERR) . 8. Anordnung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 7, bestehend aus einem dem Arbeitsspeicher (ASP) einer Datenverarbeitungsanlage vorgeschalteten, nach dem "copy-back"-Verfahren arbeitenden Cache-Speicher (C-SP), aus Einrichtungen (z. B. PPE) zur Sicherung und/oder Korrektur der im Cache-Speicher (C-SP) in Form von Blöcken gespeicherten Daten gegen Speicherfehler und aus einem Übertragungsleitungssystem mit Steuerung zum Austausch von die Datenblöcke bildenden Dateneinheiten (z. B. DW 1 bis DWn) zwischen dem Arbeitsspeicher (ASP) und dem Cache-Speicher (C-SP) entweder aufgrund eines einzigen Steuerbefehls im Rahmen eines Blockzyklus oder aufgrund von Einzelsteuerbefehlen für die einzelnen Dateneinheiten (z. B. DW 1), gekennzeichnet durch eine gesonderte Steuereinrichtung (W-ST) zur Überwachung sowohl der den einzelnen Untereinheiten einer Dateneinheit zwecks Kennzeichnung einer erfolgten Änderung zugeordneten Steuerbits (z. B. W 1 bis W 32) als auch der von den Sicherungseinrichtungen (PPE) gelieferten Fehlersignale (z. B. PERR 0 bis 3) sowie zur Erzeugung von Steuersignalen (z. B. SWAP bzw. S.INH oder BYTE.SEL . . .) abhängig von den überwachten Steuerbits (W . . .) und der Fehlersignale (PERR . . .) zur Steuerung der Auslagerung eines gekennzeichneten Datenblocks (mit SWAP) in den Arbeitsspeicher (ASP) und zur Sperrung der Übernahme von Untereinheiten des auszulagernden Datenblockes, (z. B. mit W.INH oder BYTE.SEL . . .=0).8. Arrangement for performing the method according to one of claims 1 to 7, consisting of a working memory (ASP) upstream of a data processing system, working according to the "copy-back" method cache memory (C-SP) , from devices (z PPE) for securing and / or correcting the data stored in the cache memory (C-SP) in the form of blocks against memory errors and from a transmission line system with controller for exchanging data units forming the data blocks (e.g. DW 1 to DWn) between the main memory (ASP) and the cache memory (C-SP) either on the basis of a single control command as part of a block cycle or on the basis of individual control commands for the individual data units (e.g. DW 1 ), characterized by a separate control device ( W-ST) for monitoring both the control bits assigned to the individual subunits of a data unit for the purpose of identifying a change that has occurred (for example W 1 to W 32 ) and also that of the safety devices (PPE) delivered error signals (z. PERR 0 to 3 ) and for generating control signals (e.g. SWAP or S.INH or BYTE.SEL... ) Depending on the monitored control bits (W ... ) And the error signals (PERR... ) to control the swapping of a marked data block (with SWAP) into the main memory (ASP) and to block the transfer of subunits of the data block to be swapped out (e.g. with W.INH or BYTE.SEL... = 0). 9. Anordnung nach Anspruch 8, gekennzeichnet durch Einrichtungen (OR 1 und OR 2) zur Feststellung, daß Untereinheiten des auszulagernden Datenblockes geändert sind, und zur Erzeugung entsprechender Steuersignale (z. B S.INV und SWAP), durch Einrichtungen (MUX) zur Auswahl der jeweils zur aus dem Cache-Speicher (C-SP) gelesenen und ausgewählten Dateneinheit (z. B. DW 1) gehörigen Gruppe (z. B. G 1) von Steuerbits (z. B. W 1 bis W 4) und durch Einrichtungen (U 01 bis U 31) zur Ermittlung fehlerfreier geänderter Untereinheiten und zur Erzeugung der die Übernahme durch den Arbeitsspeicher (ASP) steuernden Begleitsignale (BYTE.SEL . . .=1).9. Arrangement according to claim 8, characterized by devices (OR 1 and OR 2 ) for determining that subunits of the data block to be outsourced are changed, and for generating corresponding control signals (z. B. S.INV and SWAP) , by devices (MUX) for Selection of the group (e.g. G 1 ) of control bits (e.g. W 1 to W 4 ) and belonging to the data unit (e.g. DW 1 ) read and selected from the cache memory (C-SP) by means (U 01 to U 31 ) for determining error-free changed sub-units and for generating the accompanying signals (BYTE.SEL... = 1) that control the transfer by the main memory (ASP ). 10. Anordnung nach Anspruch 9, gekennzeichnet durch Einrichtungen (OR 4) zur Prüfung der jeweils vorliegenden Fehlersignale (PERR 0 bis 3) auf das Vorliegen eines Fehlers und zur Erzeugung eines Sperrsignals (W.INH) zur Verhinderung der Übernahme gleichzeitig übertragener Dateneinheiten in den Arbeitsspeicher (ASP).10. The arrangement according to claim 9, characterized by means (OR 4 ) for checking the respective error signals (PERR 0 to 3 ) for the presence of an error and for generating a blocking signal (W.INH) to prevent the transfer of simultaneously transmitted data units in the RAM (ASP) . 11. Anordnung nach Anspruch 9 oder 10 gekennzeichnet durch Einrichtungen (PRI 0, CNT-A) zur Bestimmung der jeweils von einer Änderung betroffenen Dateneinheiten eines Blockes abhängig von den einzelnen Steuerbitgruppen (z. B. G 1 bis G 8) der Steuerbits (W 1 bis W 32) in lückenlöser Folge und zur entsprechenden Einstellung der Auswahleinrichtungen (MUX, MUX 2) für die Bereitstellung der zugehörigen Steuerbitgruppe (z. B. G 1) und der zugehörigen Dateneinheit (z. B. DW 1) für die Steuerung der Übertragung.11. Arrangement according to claim 9 or 10 characterized by means (PRI 0 , CNT-A) for determining the data units of a block affected by a change depending on the individual control bit groups (z. B. G 1 to G 8 ) of the control bits (W 1 to W 32 ) in a gap-free sequence and for the appropriate setting of the selection devices (MUX, MUX 2 ) for the provision of the associated control bit group (e.g. G 1 ) and the associated data unit (e.g. DW 1 ) for controlling the Transmission. 12. Anordnung nach einem der Ansprüche 9 bis 11, gekennzeichent durch Einrichtungen (U 02 bis U 32, OR 3) zur Ableitung eines Begleitsignales (SPERR) bei Vorliegen fehlerbehafteter geänderter Untereinheiten zur Erzwingung der Übernahme der zugehörigen Dateneinheit durch den Arbeitsspeicher (ASP) und durch Einrichtungen (U 03 bis U 33, OR 01 bis OR 31) zur Abwandlung der die Übernahme verhindernden individuellen Begleitsignale (BYTE.SEL . . .=0) für die Untereinheiten in die Übernahme ermöglichende Begleitsignale (BYTE.SEL . . . = 1) bei Auftreten des globalen Begleitsignales (SPERR) zur Erzwingung der Übernahme einer fehlerbehafteten Dateneinheit durch den Arbeitsspeicher.12. Arrangement according to one of claims 9 to 11, marked by devices (U 02 to U 32 , OR 3 ) for deriving an accompanying signal (SPERR) in the presence of faulty modified subunits to force the takeover of the associated data unit by the working memory (ASP) and by means (U 03 to U 33 , OR 01 to OR 31 ) for modifying the individual accompanying signals preventing the takeover (BYTE.SEL.... = 0) for accompanying signals enabling the subunits into the takeover (BYTE.SEL... = 1 ) when the global accompanying signal (SPERR) occurs to force the takeover of a faulty data unit by the working memory.
DE19843442823 1984-11-23 1984-11-23 Method and arrangement for increasing the performance capability of data-processing installations having data which have errors and are stored in buffer stores, especially in cache stores Granted DE3442823A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19843442823 DE3442823A1 (en) 1984-11-23 1984-11-23 Method and arrangement for increasing the performance capability of data-processing installations having data which have errors and are stored in buffer stores, especially in cache stores

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19843442823 DE3442823A1 (en) 1984-11-23 1984-11-23 Method and arrangement for increasing the performance capability of data-processing installations having data which have errors and are stored in buffer stores, especially in cache stores

Publications (2)

Publication Number Publication Date
DE3442823A1 DE3442823A1 (en) 1986-06-05
DE3442823C2 true DE3442823C2 (en) 1988-04-07

Family

ID=6251018

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19843442823 Granted DE3442823A1 (en) 1984-11-23 1984-11-23 Method and arrangement for increasing the performance capability of data-processing installations having data which have errors and are stored in buffer stores, especially in cache stores

Country Status (1)

Country Link
DE (1) DE3442823A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3912705C2 (en) * 1989-04-18 1996-06-20 Siemens Nixdorf Inf Syst Method and arrangement for controlling data exchange in the case of write requests from processing units to a cache memory
DE69127936T2 (en) * 1990-06-29 1998-05-07 Digital Equipment Corp Bus protocol for processor with write-back cache

Also Published As

Publication number Publication date
DE3442823A1 (en) 1986-06-05

Similar Documents

Publication Publication Date Title
DE2806024C2 (en)
DE3301628A1 (en) CIRCUIT ARRANGEMENT FOR DATA EXCHANGE BETWEEN TWO COMPUTERS
DE2430464A1 (en) DEVICE FOR ERROR-PROOF DATA TRANSMISSION
DE69026346T2 (en) Information protection technology for fault-tolerant redundant information storage devices
DE2357168C2 (en) Circuit arrangement for a memory module
EP0141160A2 (en) Circuit arrangement for recording memory cell addresses containing errors
DE69508034T2 (en) Fault detection system and method for mirrored storage between double disk storage controllers
DE4335061C2 (en) Multi-storage device
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
DE2325137C3 (en) Storage device with standby storage elements
EP0350016B1 (en) Process and apparatus to copy the contents of record carriers
DE3442823C2 (en)
DE102006019426B4 (en) Memory module control, memory control and corresponding memory arrangement and method for error correction
EP0127118B1 (en) Memory control device, in particular for fault tolerant telephone exchange systems
EP1891535A2 (en) Method for communication between at least two subscribers of a communication system
DE3433679C2 (en)
DE2242279B2 (en) Circuit arrangement for determining errors in a memory unit of a program-controlled data exchange system
DE2823457A1 (en) PROCEDURE AND CIRCUIT ARRANGEMENT FOR ERROR MONITORING IN STORAGE SYSTEMS OF DIGITAL COMPUTER SYSTEMS
EP0036148A1 (en) Hybrid associative memory
DE3431770A1 (en) Method and arrangement for the error control of important information in memory units with random access, in particular such units comprising RAM modules
EP0306736A2 (en) Method for the transmission of connection information stored in a telecommunication exchange to an information-processing installation
DE10084752T5 (en) Procedure for monitoring parallel processes
DE3229111C1 (en) Method for data error correction
DE3628259C1 (en) Method and arrangement for control of access to the memory system consisting of cache memory and working memory in a data processing system
DE1449555C (en) Device for correcting data transmission errors with two-dimensional parity check

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee