DE3716554C1 - Method and circuit arrangement to secure digital memories - Google Patents

Method and circuit arrangement to secure digital memories

Info

Publication number
DE3716554C1
DE3716554C1 DE3716554A DE3716554A DE3716554C1 DE 3716554 C1 DE3716554 C1 DE 3716554C1 DE 3716554 A DE3716554 A DE 3716554A DE 3716554 A DE3716554 A DE 3716554A DE 3716554 C1 DE3716554 C1 DE 3716554C1
Authority
DE
Germany
Prior art keywords
word
memory
test
check
target
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 - Lifetime
Application number
DE3716554A
Other languages
German (de)
Inventor
Markus Wagner
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE3716554A priority Critical patent/DE3716554C1/en
Application granted granted Critical
Publication of DE3716554C1 publication Critical patent/DE3716554C1/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Abstract

A method and circuit arrangement to secure digital memories is specified. Using a generator polynomial, a single "target" check word to secure the whole memory is generated. For testing, an "actual" check word is formed over the whole memory using the same generator polynomial, and compared with the "target" check word. Inequality of the two check words then shows that an error has occurred (error recognition). Then, if the generator polynomial is suitable, correction of this error can be initiated (error correction). According to the invention, when a new memory word is written to the memory, arrangements are made to adapt the "target" check word to the changed memory contents, without having to read the whole memory.

Description

Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Schaltungsanordnung zur Sicherung von Digitalspeichern nach den Oberbegriffen der Ansprüche 1 und 12.The present invention relates to a method and a circuit arrangement for securing digital memories according to the preambles of claims 1 and 12.

Es sind verschiedene Verfahren bekannt, um beschreibbare und wieder lesbare Digitalspeicher so mit Redundanz (Prüfworte) zu versehen, daß eine Fehlererkennung, z. B. durch wortweise Paritätsprüfung, oder Fehlerkorrektur, z. B. SEC-DED-Code, Single Error Correction, Double Error Detection (R. W. Hamming: Error Detecting and Error Correcting Codes, Bell Syst. Techn. J. 29, p. 147-160, April 1950) ermöglicht wird.Various methods are known for making writable and re-readable digital memories to be provided with redundancy (test words) so that error detection, e.g. B. by word-by-word parity check, or error correction, e.g. B. SEC-DED code, single error correction, Double Error Detection (R. W. Hamming: Error Detecting and Error Correcting Codes, Bell Syst. Techn. J. 29, p. 147-160, April 1950) is made possible.

Für Speicher, die aus wortorganisierten Speicherbausteinen aufgebaut sind, bei denen der Ausfall eines einzigen Speicherchips so viele Fehler pro abgespeicherter Information verursacht, daß SEC-DED-Codes zur Sicherung nicht mehr ausreichend sind, wurden Sicherungs­ techniken entwickelt, die eine zeichenweise Korrektur ermöglichen, z. B. SBC-DBD- Codes, Single Byte Correction, Double Byte Detection (Shigeo Kaneda: Single Byte Error Correction - Double Byte Error Detecting Code für Memory Systems, IEEE Transactions of Computers, Vol. C-31, no. 7, p. 596-602, July 1982). Allen diesen Sicherungsverfahren ist gemeinsam, daß jeweils pro Speicherwort ein dazu passendes Prüfwort generiert und mit abgespeichert werden muß. Dies führt dazu, daß - in Abhängigkeit des jeweiligen Sicherungsverfahrens und der Speicherwortbreite - durchschnittlich 10-100% zusätzlicher Speicherplatz zur Aufnahme der Prüfworte benötigt wird.For memories that are made up of word-organized memory modules in which the Failure of a single memory chip causes so many errors per stored information, that SEC-DED codes are no longer sufficient for security purposes have been secured developed techniques that enable character-by-character correction, e.g. B. SBC-DBD- Codes, single byte correction, double byte detection (Shigeo Kaneda: single byte error Correction - Double Byte Error Detecting Code for Memory Systems, IEEE Transactions of Computers, vol. C-31, no. 7, p. 596-602, July 1982). All of these backup procedures has in common that a suitable test word is generated for each memory word and must be saved with. This leads to the fact that - depending on the respective Backup method and the memory word width - on average 10-100% additional Storage space is required to record the test words.

Bei nur lesbaren Speichern, z. B. PROM, EPROM, sind verschiedene Verfahren bekannt, die den Speicher als ganzes mit einem einzigen Prüfwort zur Fehlererkennung, sichern, z. B. die Spaltenparitätsbildung, bei der über alle Worte des Speichers eine spaltenweise Paritätsbildung durchgeführt und dieses Prüfwort dann mit abgelegt wird, Checksum- Verfahren, bei denen eine algebraische Summenbildung über alle Speicherworte durchgeführt wird oder eine Signaturbildung über alle Speicherworte mit Hilfe von CRC- Polynomen (H. Hölscher, J. Rader: Microcomputer in der Sicherheitstechnik, Verlag TÜV Rheinland, S. 7.27-7.63, Köln 1984, sowie D- Leisengang: Klassifikation und Einsatz von Signaturregistern zur Fehlererkennung in digitalen Schaltungen, insbesondere S. 97-104, Dissertation, Technische Universität München 1983).With only readable memories, e.g. B. PROM, EPROM, various methods are known, that secure the memory as a whole with a single check word for error detection, e.g. B. the column parity formation, in which a column by column over all words of the memory Parity formation is carried out and this test word is then also filed, checksum Methods in which algebraic summation is carried out over all memory words or a signature formation over all memory words with the help of CRC  Polynomials (H. Hölscher, J. Rader: Microcomputers in security technology, Verlag TÜV Rheinland, pp. 7.27-7.63, Cologne 1984, as well as D- Leisengang: classification and use of Signature registers for error detection in digital circuits, especially p. 97-104, Dissertation, Technical University of Munich 1983).

Ein Vorteil der letztgenannten Sicherungstechniken liegt im geringen Speicheraufwand für die Prüfinformation (ein Prüfwort pro gesichertem Speicherbereich). Nachteilig wirkt sich aus, daß diese Sicherungstechniken aus Laufzeitgründen für Lese/Schreibspeicher nicht praktikabel sind, da nach jedem Schreibvorgang der gesamte Speicher wieder ausgelesen werden müßte, um das Prüfwort, welches je den Gesamtspeicher sichert, neu zu berechnen.One advantage of the last-mentioned security techniques is the low memory requirement for the test information (one test word per saved memory area). It has a disadvantageous effect from that these backup techniques for read / write memory are not due to runtime reasons are practical since the entire memory is read out again after each write operation would have to be recalculated in order to recalculate the test word, which always saves the total memory.

Die Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren und eine Schaltungs­ anordnung bereitzustellen, um beschreibbare und lesbare Digitalspeicher mit einem einzigen Prüfwort so zu sichern und/oder testen, daß dadurch eine Fehlererkennung bzw. -korrektur ermöglicht wird, wobei der zeitliche Aufwand zu Erzeugung des Gesamt­ prüfwortes nach einer Schreiboperation so gering gehalten werden soll, daß dadurch eine praktische Nutzung des Gesamtspeichersicherungsverfahrens ermöglicht wird.The object of the present invention is a method and a circuit arrangement to provide writable and readable digital storage with a to save and / or test a single test word in such a way that an error detection or correction is made possible, the time required to generate the total check word after a write operation should be kept so low that a practical use of the overall storage backup procedure is made possible.

Diese Sicherung erfolgt mit Hilfe eines geeignet gewählten Generatorpolynoms g(x). Je nach Beschaffenheit des Generatorpolynoms g(x) wird dabei eine Fehlererkennung oder -korrektur ermöglicht (Näheres findet sich bei F. J. Furrer: Fehlerkorrigierende Block- Codierung für die Datenübertragung, Birkhäuser Verlag, Basel, 1981, S. 49-236; oder auch bei Shu Lin, Daniel J. Costello: Error Control Coding: Fundamentals and Applications, Prentice Hall, Englewood Cliffs N. J., 1983, S. 111-121, 257-282).This backup is done with the help of a suitably chosen generator polynomial g (x) . Depending on the nature of the generator polynomial g (x) , error detection or correction is made possible (for more information, see FJ Furrer: Error-correcting block coding for data transmission, Birkhäuser Verlag, Basel, 1981, pp. 49-236; or also Shu Lin, Daniel J. Costello: Error Control Coding: Fundamentals and Applications, Prentice Hall, Englewood Cliffs NJ, 1983, pp. 111-121, 257-282).

Die Erfindung, wie in den Ansprüchen 1 und 12 beansprucht, löst die Aufgabe dadurch, daß beim Einschreiben eines neuen Speicherwortes in den Speicher die Differenz von neuem und altem Speicherwort gebildet und mit Hilfe dieser Differenz ein Änderungsprüfwort erzeugt wird, welches zum alten Gesamtspeicherprüfwort hinzuaddiert wird, um so das Gesamt­ speicherprüfwort auf den neuesten Stand zu bringen, d. h. an den durch das Schreiben geänderten Speicherinhalt anzupassen.The invention, as claimed in claims 1 and 12, achieves the object in that when a new memory word is written into the memory, the difference between the new and old memory word is formed and a change check word is generated using this difference which is added to the old total memory check word, so the total update memory check word, d. H. to those by writing adapt changed memory content.

Eine Prüfwortgewinnung nach erfolgter Schreiboperation für einen Speicher mit n Speicherworten würden, wenn dabei alle Worte gelesen werden müßten, insgesamt eine Mächtigkeit O(n) besitzen. Gemäß der Ausführung der Erfindung nach den Ansprüchen 2 bzw. 13 wird dieser Aufwand reduziert auf O(log₂(n)). Z. B. wäre bei n = 1000 Worten das zeitliche Verhältnis ungefähr 1000 zu 10, was einer Verbesserung um den Faktor 100 gleichkäme.A test word extraction after a write operation for a memory with n memory words would have a total thickness O (n) if all words had to be read. According to the embodiment of the invention according to claims 2 and 13, this effort is reduced to O (log₂ ( n )). For example, with n = 1000 words, the temporal ratio would be approximately 1000 to 10, which would be an improvement by a factor of 100.

Die erfindungsgemäße Lehre nach den Patentansprüchen 1 und 12, bzw. die Ausgestaltung der Erfindung nach den Patentansprüchen 2 und 13, gestatten es, beliebige Generatorpolynome zur Gesamtspeichersicherung heranzuziehen.The teaching of the invention according to claims 1 and 12, or the configuration the invention according to claims 2 and 13, allow any generator polynomials to be used for overall storage backup.

Gemäß Anspruch 3 führt eine Beschränkung der Generatorpolynome g(x) auf solche, die der Bedingung x m = 1 modg(x) gehorchen, zu erheblichen Geschwindigkeitsverbesserungen, da dadurch das Änderungsprüfwort δ r(x) unabhängig von der Position im Speicher wird und somit der suzkessive Berechnungsteil gemäß der Gleichungen (4)-(13) entfällt.According to claim 3, a limitation of the generator polynomials g (x) to those which obey the condition x m = 1 mod g (x) leads to considerable speed improvements, since the change check word δ r (x) thereby becomes independent of the position in the memory and thus the successive calculation part according to equations (4) - (13) is omitted.

Eine weitere Geschwindigkeitsverbesserung wird gemäß dem Patentanspruch 4 bzw. 15 dadurch erreicht, daß die Generatorpolynome der zusätzlichen Bedingung Grad[g(x)] = m gehorchen, wobei m die Speicherwortlänge darstellt. Für diesen Fall existiert für eine gegebene Speicheranordnung ein einziges Generatorpolynom gemäß der Formel g(x) = x m + 1. Das Änderungsprüfwort ergibt sich dabei zuA further speed improvement is achieved according to claim 4 or 15 in that the generator polynomials obey the additional condition degree [g (x)] = m , where m represents the memory word length. In this case, there is a single generator polynomial according to the formula g (x) = x m + 1 for a given memory arrangement

δ r(x) = δ w(x) = w alt (x) + w neu (x). δ r (x) = δ w (x) = w old (x) + w new (x) .

Diese höchstmögliche Vereinfachung des allgemeinen Generatorpolynoms, bei der die Durchführung der modulo g(x)-Operation entfallen ist, stellt in seiner technischen Realisierung eine Spaltenparitätsbildung über alle Speicherworte dar, ähnlich wie in der DE-OS 25 15 099 beschrieben.This highest possible simplification of the general generator polynomial, in which the modulo g (x) operation has not been carried out, represents in its technical implementation a column parity formation over all memory words, similar to that described in DE-OS 25 15 099.

Ein Testvorgang, wie er gemäß den Ansprüchen 5 bis 14 beansprucht ist, ermöglicht, verborgen vor dem Anwender, aufgetretene Fehler im Gesamtspeicher zu detektieren und eine eventuelle Fehlerkorrektur einzuleiten.A test procedure as claimed in claims 5 to 14 enables hidden from the user to detect errors in the total memory and to initiate a possible error correction.

Eine Initialisierung des Sollprüfwortes, die zu Beginn eines Speichersicherungszeitraumes einmalig vorgenommen werden muß, kann gemäß den Patentansprüchen 6 oder 7 durchgeführt werden.An initialization of the target check word at the beginning of a memory backup period must be made once, can be carried out according to claims 6 or 7 will.

Das Verfahren nach Anspruch 6 zeichnet sich dabei vor allem dadurch aus, daß es sehr einfach und schnell durchführbar ist, da der Speicher und das Sollprüfwort dabei nur mit dem Wert 0 vorbelegt werden müssen.The method according to claim 6 is characterized in that it is very can be carried out easily and quickly since the memory and the target check word are only included must be pre-assigned with the value 0.

Das Verfahren nach Anspruch 7 hingegen löscht den Speicher nicht, sondern erzeugt ein Sollprüfwort r soll (x), welches passend zum momentanen Speicherinhalt erzeugt wird. Dieses Verfahren ist besonders vorteilhaft dann anzuwenden, wenn der zu schützende Speicherbereich auch Speicherbausteine enthält, auf die nur lesend zugegriffen werden kann (z. B. EPROM), da diese Speicherbereiche dann durch den Testvorgang ebenfalls mit geschützt werden.The method according to claim 7, however, does not clear the memory, but generates a Sollprüfwort r to (x), which is suitably generated at the current memory contents. This method is particularly advantageous when the memory area to be protected also contains memory modules which can only be accessed by reading (e.g. EPROM), since these memory areas are then also protected by the test process.

In den Patentansprüchen 8 und 9 wird ein Selbsttest beansprucht, der jeweils vor dem eigentlichen Sicherungsbeginn aktiviert wird und dabei das korrekte Funktionieren der Testeinrichtung anzeigt. Dies geschieht dadurch, daß der Testvorgang aufgrund eines noch nicht initialisierten Sollprüfwortes mit hoher Wahrscheinlichkeit Fehler detektiert, die dann als Indiz für die korrekte Funktion des Speichers angesehen werden.In the claims 8 and 9, a self-test is claimed, each before Actual start of backup is activated and the correct functioning of the Test device displays. This happens because the test process is due to a If the target test word has not yet been initialized, errors are detected with a high probability, which are then regarded as an indication of the correct functioning of the memory.

In den meisten Fällen wird die so gewonnene Sicherung für den Speicher ausreichend sein. Im Falle, daß für die Zeit, die der permanent ablaufende Testvorgang zur Diagnose benötigt, ausgeschlossen werden soll, daß fehlerhafte Daten vom Prozessor weiterverwendet werden, kann durch eine zusätzliche wortweise Paritätssicherung als unterstützende Maßnahme nach Anspruch 10 eine Fehlerfrüherkennung erreicht werden, wobei bereits beim Lesen eines fehlerhaften Wortes dieser Fehler aufgrund der Paritätsverletzung mit hoher Wahrscheinlichkeit erkannt wird.In most cases, the backup obtained in this way is sufficient for the memory be. In the event that the permanent test procedure for diagnosis required, it should be excluded that incorrect data is reused by the processor can be supported by additional word-by-word parity protection Measure according to claim 10 early error detection can be achieved, already when reading an incorrect word this error due to the parity violation with is detected with a high probability.

Das laufzeitoptimierte reduzierte Generatorpolynom gemäß Anspruch 4 kann in besonders vorteilhafter Weise mit Hilfe einer zusätzlichen wortweisen Paritätssicherung zur 1-Bit- Fehlerkorrektur gemäß Anspruch 11 erweitert werden. Dabei zeigt eine im Fehlerfall eingetretene Paritätsverletzung der Wortparität das fehlerhafte Wort an. Die Bitposition des Fehlers wird durch die Spaltenparitätsverletzung aufgrund der Differenz von Sollprüfwort und Istprüfwort erhalten. Somit ist dieser Fehler korrigierbar, da seine Position bestimmt ist. Durch eine zusätzliche Paritätskontrolle über die Spalten- und Wortparitäten können 2-Bit-Fehler erkannt werden.The runtime-optimized reduced generator polynomial according to claim 4 can in particular advantageously with the help of an additional word-by-word parity protection for 1-bit Error correction according to claim 11 can be expanded. This shows one that occurred in the event of an error Parity violation of word parity indicates the incorrect word. The bit position of the Error is caused by the column parity violation due to the difference of the target check word and actual check word received. This error can therefore be corrected since its position determines is. With an additional parity control over the column and word parities 2-bit errors can be detected.

Zur Beschreibung des erfindungsgemäßen Verfahrens sind dabei die Formeln (1) bis (20) geeignet, die zusammen mit den wichtigsten Begriffen im Anhang dargestellt sind.Formulas (1) to (20) are used to describe the method according to the invention. suitable, which are shown together with the most important terms in the appendix.

Zur Beschreibung der erfindungsgemäßen Schaltungsanordnung dienen die Fig. 1 bis 8. Es zeigt1 to 8 serve to describe the circuit arrangement according to the invention . It shows

Fig. 1 eine Datensicherungseinheit DE zwischen Prozessor und Speicher, die aus einer Differenzwortberechnungseinheit DW, einer Sollprüfwortberechnungseinheit SPW und einer Ablaufsteuerung AS besteht Fig. 1 shows a data backup unit DE between processor and memory, which is composed of a difference calculation unit word DW, a Sollprüfwortberechnungseinheit SPW, and a sequence controller AS

Fig. 2 die Differenzwortberechnungseinheit DW in detaillierterer Darstellung Fig. 2, the difference word calculation unit DW in more detail

Fig. 3 die Sollprüfwortberechnungseinheit SPW in detaillierterer Darstellung zusammen mit einer Teilprüfwortberechnungseinheit TPW Fig. 3 shows the detailed representation in Sollprüfwortberechnungseinheit SPW together with a Teilprüfwortberechnungseinheit TPW

Fig. 4 die Teilprüfwortberechnungseinheit TPW mit einer Auswahlschaltung AW und Teilmultiplikationsschaltungen M i Fig. 4, the Teilprüfwortberechnungseinheit TPW with a selection circuit AW and partial multiplication circuits M i

Fig. 5 die prinzipielle Darstellung einer Teilmultiplikationsschaltung M i Fig. 5 shows the basic diagram of a multiplying circuit part M i

Fig. 6 die zu einer Datensicherungs- und Testeinheit DTE erweiterte Datensicherungseinheit DE von Fig. 1, zusammen mit einem Adreßgenerator AG, einer Prüfwortberechnungs- und Testeinheit PTE und einer Ablaufsteuerung AS FIG. 6 shows the data backup unit DE from FIG. 1 expanded to a data backup and test unit DTE , together with an address generator AG , a test word calculation and test unit PTE and a sequence control AS

Fig. 7 die Prüfwortberechnungs- und Testeinheit PTE in detaillierterer Darstellung mit der schon bekannten Teilprüfwortberechnungseinheit TPW Fig. 7, the test unit Prüfwortberechnungs- and PTE in detailed representation with the already known Teilprüfwortberechnungseinheit TPW

Fig. 8 eine vereinfachte Prüfwortberechnungs- und Testeinheit VPTE. Fig. 8 is a simplified Prüfwortberechnungs- and test unit VPTE.

Ein vereinfachtes Berechnungsbeispiel wird parallel zur Verfahrensbeschreibung entwickelt und zeigt alle sowohl im Verfahren, als auch in den Schaltungsanordnungen benötigten Berechnungsschritte.A simplified calculation example is developed in parallel with the description of the process and shows all required in the process as well as in the circuit arrangements Calculation steps.

Zur Beschreibung des Verfahrens soll im folgenden von einem Schreib/Lesespeicher, bestehend aus n Worten w n-1 (x) . . . w(x) zu je m Bit ausgegangen werden. Der Gesamtspeicher besitzt also eine Kapazität von n · m Bit und soll durch ein einziges Prüfwort, erzeugt durch ein Generatorpolynom g(x) vom Grad r, gesichert werden. Dazu werden die einzelnen Speicherworte in serieller Form aneinandergereiht betrachtet, und die resultierende Bitkette wird als Gesamtspeicherpolynom dargestellt in der FormTo describe the method, a read / write memory consisting of n words w n -1 (x) is to be used below. . . w(x) of m bits are assumed. The total memory therefore has a capacity of n · m bits and is to be secured by a single test word, generated by a generator polynomial g (x) of degree r . For this purpose, the individual memory words are viewed in a row, and the resulting bit string is represented as a total memory polynomial in the form

Der Faktor x im gibt dabei die Position des Speicherwortpolynoms innerhalb des Gesamt­ speicherpolynoms an; für i = 1 liegt das erste Wort um eine Wortbreite verschoben links vom nullten Speicherwort. The factor x im indicates the position of the memory word polynomial within the overall memory polynomial; for i = 1 the first word is shifted by one word width to the left of the zero memory word.

Beispiel 1Example 1 GesamtspeicherpolynomTotal memory polynomial

Eine Speicheranordnung, bestehend aus n = 4 Speicherworten zu je m = 3 Bit und mit der SpeicherbelegungA memory arrangement consisting of n = 4 memory words each with m = 3 bits and with the memory allocation

kann in der folgenden Weise als Gesamtspeicherpolynom S(x) dargestellt werden:can be represented as the total memory polynomial S (x) in the following way:

Bei Operationen mit dem Speicher müssen drei Phasen unterschieden werden:A distinction must be made between three phases for operations with the memory:

a) Initialisierungsphasea) Initialization phase

Sie dient dazu, den Speicher in einen definierten Anfangszustand zu bringen, bei dem das Sollprüfwort r soll (x) für den momentanen Speicherinhalt (der auch vorher mit beliebigen Worten belegt worden sein kann) berechnet wird. Ab diesem Zeitpunkt können Speicherveränderungen, die aufgrund von Fehlern entstanden sind, durch eine nachfolgende Neubestimmung des Istprüfwortes r ist (x) und Vergleich mit dem Sollprüfwort r soll (x) detektiert werden.It is used to bring the memory into a defined initial state, in which the target check word r soll (x ) is calculated for the current memory content (which can also have previously been assigned any words). From this point in time, memory changes that have arisen due to errors can be detected by a subsequent redefinition of the actual test word r ist (x) and comparison with the target test word r should (x) .

b) Lesephaseb) Reading phase

Da ein Speicherlesen keinen Einfluß auf das Sollprüfwort hat, und da beim Lesen auch keine Fehlerprüfung vorgenommen werden kann, sind hierbei keine zusätzlichen Aktionen erforderlich.Since a memory read has no influence on the target check word, and there When reading, no error check can be carried out either additional actions required.

c) Schreibphasec) Writing phase

Da beim Einschreiben eines Wortes in den Speicher der Speicherinhalt verändert wird, muß auch das Sollprüfwort diesem neuen Speicherinhalt angepaßt werden. Anstelle einer kompletten Neuberechnung des Sollprüfwortes durch Auslesen des gesamten Speicherinhaltes (was aus zeitlichen Gründen nicht durchführbar ist, und außerdem eventuell vorhandene Fehler verdecken würde) wird hier erfindungsgemäß der differentielle Änderungsbeitrag des neuen Speicherwortes δ w(x) umgerechnet in ein differentielles Änderungsprüfwort δ r(x), das - hinzuaddiert zum Sollprüfwort - die erforderliche Anpassung an den geänderten Speicherinhalt vornimmt. Dazu wird gemäß Formel (1) die Differenz von altem Speicherinhalt w alt (x) und neu einzuschreibenden Speicherwort w neu (x) durch modulo-2-Addition gebildet (Bei den Polynomberechnungen entsprechen alle Additionen und Subtraktionen einer stellenweisen modulo-2-Additiom). Aus diesem Differenzwort δ w(x) wird gemäß Formel (2) das Änderungsprüfwort δ r(x) berechnet, wobei der Faktor x p die Position des neu einzuschreibenden Wortes angibt (bei m Bit Wortlänge und i-tem Wort ergibt sich p = m · i). Die modg(x)-Operation entspricht einer Restbildung durch Polynomdivision.
Z. B. kann
Since the memory content is changed when a word is written into the memory, the target check word must also be adapted to this new memory content. Instead of a complete recalculation of the target test word by reading out the entire memory content (which is not feasible for time reasons and would also conceal any errors), the differential change contribution of the new memory word δ w (x) is converted into a differential change test word δ r ( x) , which - added to the target check word - makes the necessary adjustment to the changed memory content. For this purpose, according to formula (1), the difference between the old memory content w old (x) and the new memory word w new (x) to be written is formed by modulo-2 addition (in the polynomial calculations, all additions and subtractions correspond to a modulo-2 additive in places) . The change test word δ r (x) is calculated from this difference word δ w (x) according to formula (2), the factor x p indicating the position of the word to be newly written (with m bit word length and i th word, p = m results · I ). The mod g (x) operation corresponds to a residual formation by polynomial division.
Eg can

r(x) = a(x) modg(x) r (x) = a (x) mod g (x)

gebildet werden durch die folgende Polynomdivisionare formed by the following polynomial division

Das so gebildete Änderungsprüfwort δ r(x) wird gemäß Formel (3) zum alten Sollprüfwort r soll (x) mod-2 hinzuaddiert und bildet das neue, an den geänderten Speicherinhalt angepaßte Sollprüfwort r soll (x).The Änderungsprüfwort δ r (x) thus formed is in accordance with formula (3) to the old Sollprüfwort r to (x) mod-2 added, forming the new, adapted to the modified memory contents to Sollprüfwort r (x).

Beispiel 2Example 2 InitialisierungsphaseInitialization phase

Für die Speicheranordnung aus Beispiel 1 soll nun eine Sollprüfwortinitialisierung vorgenommen werden. Dazu sei ein Generatorpolynom g(x) = x³ + x + 1 angenommen. Zur Initialisierung soll hier nicht der Speicher gelöscht werden, sondern ein zum Speicherinhalt aus Beispiel 1 passendes Sollprüfwort r soll (x) berechnet werden, gemäß der Formel r soll (x) = S(x) modg(x). Dazu wird die Polynomdivision von Hand durchgeführt:A target check word initialization is now to be carried out for the memory arrangement from example 1. A generator polynomial g (x) = x ³ + x + 1 is assumed. For initialization, the memory should not be deleted here, but a target check word r to match the memory content from example 1 should be (x) calculated according to the formula r should (x) = S (x) mod g (x) . The polynomial division is carried out by hand:

Das Sollprüfwort ergibt sich aus dem Divisionsrest zu r soll (x) = x² + x + 1.The Sollprüfwort results from the division remainder to r to (x) = x ² + x +. 1

Beispiel 3Example 3 SchreibphaseWriting phase

Jetzt soll in Wort i = 2 des Speichers der Wert 001 eingeschrieben werden.Now the value 001 should be written in word i = 2 of the memory.

Die Berechnung des neuen, an den geänderten Speicherinhalt angepaßten Sollprüfwortes r soll (x) geschieht dabei nach den Formeln (1) bis (3) in folgender Weise:The calculation of the new target test word r target (x), which is adapted to the changed memory content , is carried out according to formulas (1) to (3) in the following way:

(1) w w(x)= w alt (x) + w neu (x) = x + 1 010 + 001 = 011 (2) δ r(x)= ( δ w(x) · x im ) modg(x) = (x + 1) · x 2 · 3 mod(x³ + x + 1) = (x⁷ + x) mod(x³ + x + 1) (1) w w (x) = w old (x) + w new (x) = x + 1 010 + 001 = 011 (2) δ r (x) = ( δ w (x) x im ) mod g (x) = ( x + 1) x 2 · 3 mod ( x ³ + x + 1) = (x ⁷ + x) mod (x ³ + x + 1 )

Restbildung durch Division von Hand:Residual formation by division by hand:

δ r(x) = x² 100 δ r (x) = x ² 100

(3) r soll (x)= r soll (x) + δ r(x) = (x² + x + 1) + (x²) = x + 1 011(3) r target (x) = r target (x) + δ r (x) = ( x ² + x + 1) + (x ² ) = x + 1 011

Zur Kontrolle soll nun nochmals der gesamte neue Speicherinhalt durch das Generatorpolynom dividiert werden:The entire new memory content by the generator polynomial should now be checked again be divided:

Ein Vergleich dieses Divisionsrestes mit r soll (x) zeigt, daß das Verfahren nach den Formeln (1) bis (3) das Sollprüfwort in richtiger Weise an den durch das Einschreiben von Wort 2 geänderten Speicherinhalt angepaßt hat.A comparison of this remainder of the division with r soll (x) shows that the method according to formulas (1) to (3) has correctly adjusted the target check word to the memory content changed by writing word 2.

Die Berechnung nach Formel (2) kann bei großer Speicherkapazität für manche Anwendung zu zeitaufwendig werden. Hier kann durch ein Verfahren Abhilfe geschaffen werden, welches von einem Aufwand, der linear mit der Speicherkapazität steigt, zu einem Aufwand führt, der mit log₂ zur Kapazität steigt. Dies geschieht dadurch, daß die Multiplikation mit x p zusammengesetzt wird aus geeigneten Teilmultiplikationen mit x 2i gemäß Formel (5), wobei der Faktor p nach Formel (4) in Zweierpotenzen zerlegt wird. Z. B. läßt sich x¹³ wie folgt darstellenThe calculation according to formula (2) can be too time-consuming for some applications with a large storage capacity. This can be remedied by a method, which leads from an effort that increases linearly with the storage capacity to an effort that increases with log₂ to the capacity. This happens because the multiplication with x p is composed of suitable partial multiplications with x 2 i according to formula (5), the factor p being broken down into powers of two according to formula (4). For example, x 13 can be represented as follows

x¹³ = x . . .0 · 2⁴+1 · 2³+1 · 2²+0 · 2¹+1 · 2⁰ = 1 · x 1 · 2³ · x 1 · 2² · 1 · x 1 · 2⁰. x ¹³ = x . . .0 · 2⁴ + 1 · 2³ + 1 · 2² + 0 · 2¹ + 1 · 2⁰ = 1 · x 1 · 2³ · x 1 · 2² · 1 · x 1 · 2⁰ .

Formel (6) zeigt dann, wie δ r(x) mit Hilfe dieser Umformung aus δ w(x) gebildet wird. In Formel (8) wird der gleiche Sachverhalt durch die Substitution (7) in etwas komprimierter Form nochmals gezeigt. Die Formeln (9) bis (12) zeigen, wie durch sukzessive Teilmultiplikationen mit den entsprechenden Faktoren P i das endgültige Differenzprüfwort δ r(x) gewonnen wird. Die einzelnen Faktoren P i besitzen dabei, entsprechend der Zweierpotenz­ zerlegung von p, entweder den Wert x⁰ oder x 2i . Diese Teilmultiplikationen werden sehr schnell in entsprechenden Multiplikationsschaltungen durchgeführt, da das Produkt der jeweiligen Teilmultiplikation als Exklusiv-Oder-Verknüpfungsvorschrift für das entsprechende Generatorpolynom und die jeweilige Potenz von x vorliegt.Formula (6) then shows how δ r (x) is formed from δ w (x) using this transformation. In formula (8) the same situation is shown again in somewhat compressed form by substitution (7). The formulas (9) to (12) show how the final difference test word δ r (x) is obtained by successive partial multiplications with the corresponding factors P i . The individual factors P i have, depending on the power of two decomposition of p, either the value x ⁰ or x 2 i . These partial multiplications are carried out very quickly in corresponding multiplication circuits, since the product of the respective partial multiplication is available as an exclusive-OR combination rule for the corresponding generator polynomial and the respective power of x .

Diese Verknüpfungsvorschrift kann in einfachen Fällen (wie z. B. im unten angegebenen Beispiel) von Hand vorgenommen werden; bei den in der Praxis relevanten Generatorpolynomen muß dies aus Komplexitätsgründen durch geeignete Computerberechnungen erfolgen.This linking rule can be used in simple cases (such as the one specified below Example) can be done by hand; in the generator polynomials relevant in practice For reasons of complexity, this must be done using suitable computer calculations respectively.

Formel (13) zeigt, wie die Multiplikation mit dem Faktor x 2i aus Formel (11) sehr schnell mit Hilfe von modulo-2-Additionen (Exklusiv-Oder-Verknüpfung) durchgeführt werden kann.Formula (13) shows how the multiplication with the factor x 2 i from formula (11) can be carried out very quickly with the help of modulo-2 additions (exclusive-OR combination).

Die Koeffizienten r k (i-1) stellen dabei die Polynomkoeffizienten des Multiplikanden δ r (i-1) dar, die Koeffizienten t j,k (i) repräsentieren die Verknüpfungsvorschrift für eine Multiplikation mit dem Faktor x 2i und anschließender modulo-g(x)-Operation.The coefficients r k (i -1) make this the polynomial coefficients of the multiplicand δ r (i -1) represent the coefficients t j, k (i) represent the combination rule for a multiplication by a factor x 2 i and subsequent modulo g (x) operation.

Diese Koeffizienten t j,k (i) müssen daher für das bestimmte und feste Generatorpolynom g(x) und die jeweiligen Multiplikanden x 2i vorausberechnet vorliegen. These coefficients t j, k (i) must therefore be calculated in advance for the determined and fixed generator polynomial g (x) and the respective multiplicands x 2 i .

Beispiel 4Example 4 Ermittlung der VerknüpfungsvorschriftDetermination of the linking rule

Für das in den Beispielen verwendete Generatorpolynom g(x) = x³ + x + 1 sollen nun die Verknüpfungskoeffizienten t j,k für Multiplikationen mit den FaktorenFor the generator polynomial g (x) = x ³ + x + 1 used in the examples, the combination coefficients t j, k should now be used for multiplications with the factors

P₀ = x 2⁰ = x, P₁ = x = x², P₂ = x = x⁴ und P₃ = x = x P ₀ = x 2⁰ = x, P ₁ = x = x ², P ₂ = x = x ⁴ and P ₃ = x = x

ermittelt werden. Dazu wird ein allgemeines Polynom r(x), welches den ersten Multiplikanden repräsentiert, mit der entsprechenden Potenz von x multipliziert und modulo-g(x) reduziert. Die Koeffizienten dieses Divisionsrestes entsprechen dann den Verknüpfungskoeffizienten t j,k .
Multiplikation mit P₀ = x 2⁰ = x:
be determined. For this purpose, a general polynomial r (x) , which represents the first multiplicand, is multiplied by the corresponding power of x and reduced modulog (x) . The coefficients of this remainder of the division then correspond to the combination coefficients t j, k .
Multiplication with P ₀ = x 2⁰ = x:

(r(x) · x) modg(x)= [(rx² + rx² + rx + r) · x] modg(x) = (rx³ + rx² + rx) modg(x) (r (x) x) mod g (x) = [(rx ² + rx ² + rx + r) · x] mod g (x) = (rx ³ + rx ² + rx) mod g (x)

Restbildung durch Division:Residual formation by division:

Multiplikation mit P₁ = x = x²:Multiplication by P ₁ = x = x ²:

(r(x) · x²) modg(x) = (x⁴ + rx³ + rx²) modg(x) (r (x) · x ² ) mod g (x) = (x ⁴ + rx ³ + rx ² ) mod g (x)

Restbildung durch Division:Residual formation by division:

ganz analog dazu ergeben sich dannanalogously to this then arise

Zusammenfassend läßt sich der Vorteil dieses Verfahrens folgendermaßen darstellen:
Die Bildung des Ausdrucks
In summary, the advantage of this method can be illustrated as follows:
The formation of the expression

δ r(x) = ( δ w(x) · x p ) modg(x) δ r (x) = ( δ w (x) x p ) mod g (x)

aus Formel (2) wird zurückgeführt auf maximal log₂(p) Teilmultiplikation, wobei sich die Ergebniskoeffizienten einer solchen Teilmultiplikation als modulo-2-Summe mit maximal r Summanden ergeben.from formula (2) is reduced to a maximum of log₂ (p) partial multiplication, the result coefficients of such a partial multiplication being a modulo-2 sum with a maximum of r summands.

Beispiel 5Example 5 Schnelle Berechnung des ÄnderungsprüfwortesFast calculation of the change check word

In Beispiel 3 wurde die Berechnung des Änderungsprüfwortes δ r(x) nach erfolgter Schreiboperation durch eine explizite Division von Hand gemäß Formel (2) durchgeführt. Hier soll nun für das gleiche Beispiel der schnelle Algorithmus gemäß den Formeln (4) bis (13) verwendet werden:In example 3, the change check word δ r (x) was calculated after the write operation by an explicit division by hand according to formula (2). The fast algorithm according to formulas (4) to (13) should now be used for the same example:

δ w(x) = w alt (x) + w neu (x) = x + 1 und p = i · m = 2 · 3 = 6, δ w (x) = w old (x) + w new (x) = x + 1 and p = i · m = 2 · 3 = 6,

da das 2. Speicherwort beschrieben wurde. since the 2nd memory word was written.  

Nach Formel (4) wird p zerlegt inAccording to formula (4), p is broken down into

p = 0 · 2⁰ + 1 · 2¹ + 1 · 2² + 0 · 2³,
mit
t = [log₂(p max )] = [log₂(9)] = [3,17] = 3
k₀ = 0,  k₁ = 1, k₂ = 1, k₃ = 0
p = 0 · 2⁰ + 1 · 2¹ + 1 · 2² + 0 · 2³,
With
t = [log₂ ( p max )] = [log₂ (9)] = [3.17] = 3
k ₀ = 0, k ₁ = 1, k ₂ = 1, k ₃ = 0

damit ergibt sich Formel (5) zu x⁶ = x² · x⁴.this gives formula (5) for x ⁶ = x ² · x ⁴.

In diesem Beispiel müssen also nur 2 Teilmultiplikationen mit den Faktoren P₁ = x² und P₂ = x⁴ durchgeführt werden, da eine Multiplikation mit den Faktoren P₀ = 1 und P₃ = 1 das Ergebnis nicht verändert. Die Formeln (9)-(12) ergeben sich somit zuIn this example, only two partial multiplications with the factors P ₁ = x ² and P ₂ = x ⁴ have to be carried out, since a multiplication with the factors P ₀ = 1 and P ₃ = 1 does not change the result. The formulas (9) - (12) thus result in

δ r (0) (x) = [δ w(x) · 1] modg(x) = δ w(x) δ r (1) (x) = [δ r (0) (x) · P₁] modg(x) = [δ w(x) · P₁] modg(x) δ r (2) (x) = [δ r (1) (x) · P₂] modg(x) δ r(x) = [δ r (2) (x) · 1] modg(x) = δ r (2) (x) δ r (0) (x) = [ δ w (x) · 1] mod g (x) = δ w (x) δ r (1) (x) = [ δ r (0) (x) · P ₁ ] mod g (x) = [ δ w (x) · P ₁] mod g (x) δ r (2) (x) = [ δ r (1) (x) · P ₂] mod g (x) δ r (x) = [ δ r (2) (x) · 1] mod g (x) = δ r (2) (x)

Mit Hilfe der in Beispiel 4 ermittelten Verknüpfungsmatritzen T (1) und T (2) ergibt sich gemäß Formel (13):Using the linking matrices T (1) and T (2) determined in Example 4, the following results from formula (13):

δ r (1) (x) = [δ w(x) · P₁] modg(x)= (t 0,0 (1) · r₀ + t 0,1 (1) · r₁ + t 0,2 (1) · r₂) · x
+ (t 1,0 (1) · r₀ + t 1,1 (1) · r₁ + t 1,2 (1) · r₂) · x¹
   + (t 2,0 (1) · r₀ + t 2,1 (1) · r₁ + t 2,2 (1) · r₂) · x²
= (0 · 1 + 1 · 1 + 0 · 0)x
+ (0 · 1 + 1 · 1 + 1 · 0)x¹
   + (1 · 1 + 0 · 1 + 1 · 0)x²
= x² + x + 1
δ r (1) (x) = [ δ w (x) · P ₁] mod g (x) = ( t 0.0 (1) · r ₀ + t 0.1 (1) · r ₁ + t 0 , 2 (1) · r ₂) · x
+ ( t 1.0 (1) · r ₀ + t 1.1 (1) · r ₁ + t 1.2 (1) · r ₂) · x ¹
+ ( t 2.0 (1) · r ₀ + t 2.1 (1) · r ₁ + t 2.2 (1) · r ₂) · x ²
= (0 · 1 + 1 · 1 + 0 · 0) x
+ (0 · 1 + 1 · 1 + 1 · 0) x ¹
+ (1 · 1 + 0 · 1 + 1 · 0) x ²
= x ² + x + 1

w r(x) = (δ r (1) (x) · P₂) modg(x)= (0 · 1 + 1 · 1 + 1 · 1)x
+ (1 · 1 + 1 · 1 + 0 · 1)x¹
   + (1 · 1 + 1 · 1 + 1 · 1)x²
= x²
w r (x) = ( δ r (1) (x) · P ₂) mod g (x) = (0 · 1 + 1 · 1 + 1 · 1) x
+ (1 x 1 + 1 x 1 + 0 x 1) x 1
+ (1 · 1 + 1 · 1 + 1 · 1) x ²
= x ²

Dieses so gewonnene Änderungsprüfwort δ r(x) ist natürlich identisch zu dem aus Beispiel 3. Der Vorteil dieses Verfahrens zeigt sich allerdings erst bei größeren Werten von p. Z. B. müßte für p = 1000 in Beispiel 3 eine Division mit einem tausendstelligen Dividenden durchgeführt werden, während für das beschleunigte Verfahren nur 6 Teilmultiplikationen mit den Faktoren P₉, P₈, P₇, P₆, P₅ und P₃ erforderlich wären.This change check word δ r (x) obtained in this way is of course identical to that from example 3. The advantage of this method, however, only becomes apparent when the values of p are larger. For example, for p = 1000 in Example 3 a division with a thousand-digit dividend would have to be carried out, while for the accelerated method only 6 partial multiplications with the factors P ₉, P ₈, P ₇, P ₆, P ₅ and P ₃ would be required.

Dieses beschleunigte Verfahren kann allgemein für beliebige Speicher und beliebige Generatorpolynome implementiert werden. Für Beschränkungen in der Wahl des Generatorpolynoms können Verfahrensvereinfachungen erreicht werden. Die Beschränkung nach Formel (14) bedeutet, daß das Generatorpolynom g(x) als Faktor im Polynom x m + 1 enthalten ist und führt dazu, daß sich Formel (2) vereinfacht zu Formel (15); das Änderungsprüfwort δ r(x) hängt also nur noch vom Differenzwort δ w(x) ab, hingegen nicht mehr von der Position im Speicher, womit man sich die Durchführung der Teilmultiplikationen (Formeln 4-13) erspart. Beschränkungen in der Wahl des Generatorpolynoms führen demnach zur Beschleunigung des Algorithmus, werden aber dafür mit eingeschränkter Leistungsfähigkeit erkauft. Diese so beschränkten Generatorpolynome können dann - wenn sie als einzige Sicherungsmaßnahme implementiert sind - nur noch zur Fehlererkennung, nicht mehr zur Fehlerkorrektur verwendet werden.This accelerated method can generally be implemented for any memory and any generator polynomial. Process simplifications can be achieved for restrictions in the choice of the generator polynomial. The restriction according to formula (14) means that the generator polynomial g (x) is contained as a factor in the polynomial x m + 1 and leads to the fact that formula (2) is simplified to formula (15); the change check word δ r (x) thus only depends on the difference word δ w (x) , but no longer on the position in the memory, which saves the need to carry out the partial multiplications (formulas 4-13). Restrictions in the choice of the generator polynomial therefore lead to acceleration of the algorithm, but are purchased with limited performance. These generator polynomials, which are restricted in this way, can then - if they are implemented as the only security measure - only be used for error detection and no longer for error correction.

Eine noch stärkere Einschränkung des Generatorpolynoms stellt Formel (16) in Verbindung mit Formel (14) dar. Hierbei ist nur noch ein Generatorpolynom möglich, nämlich g(x) = x m + 1. Bei Verwendung dieses stark beschränkten Generatorpolynoms vereinfacht sich die Bildung von δ r(x) gemäß Formel (17) weiter. Das Änderungsprüfwort ist hier identisch mit dem Differenzwort δ w(x) und kann daher direkt zum Sollprüfwort hinzuaddiert werden gemäß Formel (3). Für dieses Generatorpolynom ist bei Implementierung einer zusätzlichen wortweisen Paritätssicherung auch eine 1-Bit-Fehlerkorrektur möglich.An even stronger restriction of the generator polynomial is represented by formula (16) in conjunction with formula (14). Here only one generator polynomial is possible, namely g (x) = x m + 1. Using this strongly restricted generator polynomial simplifies the formation of δ r (x) according to formula (17). The change test word is identical to the difference word δ w (x) and can therefore be added directly to the target test word according to formula (3). A 1-bit error correction is also possible for this generator polynomial if an additional word-wise parity protection is implemented.

Die Schaltungsanordnungen gemäß den Figurenzeichnungen 1-5 geben das allgemeine Verfahren für beliebige Generatorpolynome g(x) vollständig wieder. Fig. 1 zeigt auf der linken Seite der Datensicherungseinheit DE die Schnittstelle zum Prozessor, und auf der rechten Seite die Schnittstelle zum Speicher; dazwischen eingefügt liegt im bidirektionalen Datenbus eine Differenzwortberechnungseinheit DW. Das Ergebnis δ w(x) dieser Differenzwort­ berechnungseinheit gelangt zusammen mit der Adreßinformation p, die vom Adreßbus zur Verfügung gestellt wird, zu einer Sollprüfwortberechnungseinheit SPW. Eine Ablaufsteuerung AS sorgt hierbei für die zeitliche Koordinierung.The circuit arrangements according to the figure drawings 1-5 completely reproduce the general method for any generator polynomials g (x) . Fig. 1 shows on the left side of the backup unit EN the interface to the processor, and on the right side of the interface to memory; Inserted between them is a difference word calculation unit DW in the bidirectional data bus. The result δ w (x) of this difference word calculation unit, together with the address information p, which is provided by the address bus, arrives at a target test word calculation unit SPW . A sequence control AS ensures the time coordination.

In Fig. 2 wird die Differenzwortberechnungseinheit DW näher dargestellt. Sie ermöglicht während der Lesephase ein ungehindertes Auslesen des Speichers über ein Register R 1. Bei einer Schreibphase wird das neue Speicherwort w neu (x) in Register R 1 und R 2 zwischengespeichert; zugleich wird der alte Speicherinhalt w alt (x) in ein Register R 3 abgelegt. Sobald dies geschehen ist, wird über den Addierer A 1 das Differenzwort gemäß Formel (1) gebildet und parallel dazu wird aus Register R 1 das neue Speicherwort in den Speicher eingeschrieben (read-modify-write-cycle).The difference word calculation unit DW is shown in more detail in FIG. 2. It enables unhindered reading of the memory via a register R 1 during the reading phase. During a write phase, the new memory word w new (x) is temporarily stored in registers R 1 and R 2 ; at the same time, the old memory content w old (x) is stored in a register R 3 . As soon as this has happened, the difference word according to formula (1) is formed via the adder A 1 and, in parallel, the new memory word is written into the memory from register R 1 (read-modify-write cycle).

In Fig. 3 ist dargestellt, wie das mit Hilfe einer Teilprüfwortberechnungseinheit TPW aus δ w(x) und p erzeugte Änderungsprüfwort δ r(x) mit Hilfe des Addierers A 2 zum Sollprüfwort r soll (x) in Register RS hinzuaddiert wird gemäß Formel (3). Die Teilprüfwort­ berechnungseinheit TPW ist in den Fig. 4 und 5 näher dargestellt. Eine Auswahlschaltung AW generiert aus der Adreßinformation p die entsprechenden Selektionssignale Sel i . Ein aktives Selektionssignal bewirkt dabei die Durchführung einer entsprechenden Teilmultiplikation in einer Teilmultiplikationsschaltung M i , ein inaktives Selektionssignal führt zum Durchschalten des Datenpfades in der Teilmultiplikationsschaltung M i ohne multiplikative Verknüpfung. Das Differenzwort δ w(x) durchläuft so alle Teilmultiplikationsschaltungen M i und erfährt dabei bei aktivem Selektionssignal eine Teilmultiplikation gemäß Formel (11).In Fig. 3 is shown how by means of a Teilprüfwortberechnungseinheit TPW of δ w (x) and p generated Änderungsprüfwort δ r (x) by means of the adder A 2 to Sollprüfwort r ref (x) is added into register RS of the formula ( 3). The partial check word calculation unit TPW is shown in more detail in FIGS. 4 and 5. A selection circuit AW generates the corresponding selection signals Sel i from the address information p . An active selection signal causes a corresponding partial multiplication to be carried out in a partial multiplication circuit M i ; an inactive selection signal leads to the switching through of the data path in the partial multiplication circuit M i without multiplicative linkage. The difference word δ w (x) thus runs through all the partial multiplication circuits M i and experiences a partial multiplication according to formula (11) when the selection signal is active.

Eine beispielshafte Ausführung einer solchen Teilmultiplikationsschaltung M i ist in Fig. 5 dargestellt. Der Verknüpfungsteil auf der rechten Seite repräsentiert dabei die Wegesteuerung in Abhängigkeit des Selektionssignals, die Mehrfach-Exklusiv-Oder-Verknüpfungen stellten die mod-2-Additionen für die einzelnen Polynomkoeffizienten gemäß Formel (13) dar, wobei die genaue Verknüpfung der Eingänge der Exklusiv-Oder-Gatter mit den Schaltungs­ eingängen R r-1 (i-1) . . . R(i-1) gegeben ist durch die vorausberechneten Koeffizienten t j,k (i) gemäß Formel (13).An exemplary embodiment of such a partial multiplication circuit M i is shown in FIG. 5. The link part on the right-hand side represents the route control depending on the selection signal, the multiple exclusive-OR links represent the mod-2 additions for the individual polynomial coefficients according to formula (13), the exact linkage of the inputs of the exclusive Or gate with the circuit inputs R r -1 ( i -1) . . . R( i -1) is given by the pre-calculated coefficients t j, k (i) according to formula (13).

Beispiel 6Example 6 TeilmultiplikationsschaltungenPartial multiplication circuits

In diesem Beispiel sollen für die bereits bekannte Speicheranordnung auch die Teil­ multiplikationsschaltungen angegeben werden. Für die Änderungsprüfwortberechnung sind die Schaltungen M₀, M₁, M₂ und M₃ für die Teilmultiplikationen mit den entsprechenden Faktoren x 2⁰, x , x und x erforderlich (siehe Beispiel 5). Die genaue Beschaltung soll hier anhand der Bezeichnungen aus Fig. 5 angegeben werden.In this example, the partial multiplication circuits are also to be specified for the already known memory arrangement. For the change test word calculation, the circuits M ₀, M ₁, M ₂ and M ₃ are required for the partial multiplications with the corresponding factors x 2⁰ , x , x and x (see example 5). The exact wiring is to be given here using the designations from FIG. 5.

Eine Teilmultiplikationsschaltung M i besitzt für dieses Beispiel 3 Eingangsdatenleitungen r(i-1) . . . r(i-1), und 3 Ausgangsdatenleitungen r (i) . . . r (i) .A partial multiplication circuit M i has 3 input data lines r( i -1) for this example. . . r( i -1) , and 3 output data lines r (i) . . . r (i) .

Die Mehrfach-Exklusiv-Oder-Gatter werden dabei entsprechend den Koeffizienten t j,k beschaltet (siehe dazu Beispiel 4, Matritzen T (0) . . . T (3).The multiple exclusive-OR gates are wired according to the coefficients t j, k (see example 4, matrices T (0) ... T (3) .

Als Boole'sche Gleichung ergeben sie sich hier in folgender Weise:As a Boolean equation, they result here in the following way:

M₀:h(0) = r(-1)
h(0) = r(-1)r(-1)
h(0) = r(-1)
M ₀: h(0) = r(-1)
h(0) = r(-1)r(-1)
h(0) = r(-1)

M₁:h(1) = r¹(0)
h(1) = r¹(0)r(0)
h(1) = r(0)r(0)
M ₁: h(1) = r ¹ (0)
h(1) = r ¹ (0)r(0)
h(1) = r(0)r(0)

M₂:h(2) = r(1)r(1)
h(2) = r(1)r(1)
h(2) = r(1)r(1)r(1)
M ₂: h(2) = r(1)r(1)
h(2) = r(1)r(1)
h(2) = r(1)r(1)r(1)

M₀:h(3) = r(2)
h(3) = r(2)r(2)
h(3) = r(2)
M ₀: h(3) = r(2)
h(3) = r(2)r(2)
h(3) = r(2)

wobei das Symbol ⊕ eine Exklusiv-Oder-Verknüpfung repräsentiert.where the symbol ⊕ represents an exclusive-OR link.

Fig. 6 zeigt die Erweiterung der Datensicherungseinheit DE zur Datensicherungs- und Testeinheit DTE. Hierbei wird in einem unterbrechbaren Testzyklus der gesamte Speicher ausgelesen und ein zum momentanen Zeitpunkt gültiges Istprüfwort erzeugt, welches dann in der Prüfwortberechnungs- und Testeinheit PTE mit dem Sollprüfwort verglichen wird. Bei Ungleichheit der beiden Prüfwörter wird ein Fehlersignal erzeugt. Der Adreßgenerator AG durchläuft dabei alle Speicheradressen, und die jeweils erzeugte Adresse gelangt über den Multiplexer MX auf den Adreßbus zum Speicher. Das dabei gelesene Speicherwort gelangt z. B. über Register R 4 unter Umgehung der Differenzwortberechnungseinheit direkt zur Prüfwortberechnungs- und Testeinheit PTE. Dies ist eine mögliche Ausführungsform, um zu erreichen, daß das gelesene Speicherwort und nicht eine Differenz aus zwei Worten an die Eingänge der Prüfwortberechnungs- und Testeinheit gelangt. Eine andere Möglichkeit dazu wäre - ohne Register R 4 - über die Differenzwortberechnungseinheit DW zu gehen, wobei der vom Prozessor kommende Datenpfad auf Null gelegt wird; gemäß Formel (1) bzw. Fig. 2 wäre dann δ w = 0 - w gelesen = w gelesen (Da Addition und Subtraktion bei den Polynomoperationen identisch sind!). Fig. 6 shows the extension of the backup unit to the backup and DE test unit DTE. In this case, the entire memory is read out in an interruptible test cycle and an actual test word valid at the current time is generated, which is then compared in the test word calculation and test unit PTE with the target test word. If the two test words are not identical, an error signal is generated. The address generator AG runs through all memory addresses, and the address generated in each case reaches the memory via the multiplexer MX on the address bus. The memory word read thereby arrives z. B. via register R 4 bypassing the difference word calculation unit directly to the test word calculation and test unit PTE . This is a possible embodiment in order to ensure that the read memory word and not a difference of two words reaches the inputs of the test word calculation and test unit. Another possibility would be to go through the difference word calculation unit DW without register R 4 , the data path coming from the processor being set to zero; according to formula (1) or Fig. 2 would then be δ w = 0 - w read = w read (since addition and subtraction are identical in the polynomial operations!).

Zur weiteren Verfolgung des Signalflusses soll nun Fig. 7 betrachtet werden. Die schon aus Fig. 4 bekannte Teilprüfwortberechnungseinheit TPW bildet während eines Testzyklus aus δ w = w gelesen und der entsprechenden Adresse p ein Änderungsprüfwort δ r(x), welches über die Datenweiche und den Addierer A 2 auf das Register RI, welches die Größe r ist (x) enthält, modulo 2 aufaddiert wird.For further monitoring of the signal flow, Fig. 7 should now be considered. The partial test word calculation unit TPW , already known from FIG. 4, forms during a test cycle from δ w = w read and the corresponding address p a change test word δ r (x) which is transferred via the data switch and the adder A 2 to the register RI, which has the size r is (x) , modulo 2 is added.

Bei der Bildung des Istprüfwortes stellt δ w(x) keinen Differenzwert dar, sondern das soeben gelesene Speicherwort; somit enthält auch das Änderungsprüfwort δ r(x) keinen differentiellen Änderungsbetrag, sondern den Prüfwortanteil eben dieses gelesenen Wortes. Der Begriff Änderungsprüfwort w r(x) wurde deshalb beibehalten, weil dieser Schaltungsteil zu dem identisch ist, der das Änderungsprüfwort berechnet.When the actual test word is formed, δ w (x) does not represent a difference value, but the memory word just read; Thus, the change check word δ r (x) does not contain a differential change amount, but rather the check word portion of this read word. The term change check word w r (x) has been retained because this circuit part is identical to that which calculates the change check word.

Dieses Register RI, welches zu Beginn eines Testzyklus gelöscht werden muß, enthält nach Abschluß eines kompletten Testzyklus, d. h. wenn durch den Adreßgenerator alle Speicheradressen einmal ausgelesen wurden, das zum momentanen Zeitpunkt gültige Istprüfwort, welches dann durch den Vergleicher V 2 mit dem Sollprüfwort r soll (x) in Register RS verglichen wird und im Fehlerfall zur Generierung eines Fehlersignals führt. Dieses Fehlersignal kann dann zur Einleitung einer Fehlerkorrektur verwendet werden, wobei die Differenz von r ist (x) und r soll (x) das zur Korrektur benötigte und in der Codierungstheorie wohlbekannte Fehlersyndrom darstellt.This register RI, which has to be cleared at the beginning of a test cycle, contains after completion of a complete test cycle, that is, when all of the memory addresses have been read out once by the address generator, the valid at the current time Istprüfwort which then r by the comparator V 2 with the Sollprüfwort to (x) is compared in register RS and leads to the generation of an error signal in the event of an error. This error signal can then be used to initiate an error correction, the difference between r ist (x) and r soll (x) representing the error syndrome required for the correction and well known in the coding theory.

Beispiel 7Example 7 TestvorgangTest process

Für dieses Beispiel sei der ursprüngliche Speicherinhalt aus Beispiel 3 angenommen.For this example, the original memory content from example 3 is assumed.

Durch den Testvorgang wird nun ein Istprüfwort r ist (x) vom momentanen Speicherinhalt gebildet.An actual test word r ist (x) is now formed from the current memory content by the test procedure.

Die folgende Tabelle zeigt in der Spalte AG das vom Adreßgenerator momentan adressierte Speicherwort, die Spalte p die zugehörige Speicherposition, die Spalte w w enthält dieses Speicherwort und unter δ r findet sich der zu diesem Speicherwort gehörende Prüfwortanteil (δ r = [δ w · x p ] modg(x)), der dann zum jeweils alten Inhalt von r ist hinzuaddiert wird. Das Istprüfwort wird dabei anfangs zu 0 gesetzt.The following table shows in column AG the memory word currently addressed by the address generator, column p the associated memory position, column w w contains this memory word and δ r contains the test word portion belonging to this memory word ( δ r = [ δ w · x p ] mod g (x )), which is then added to the old content of r ist . The actual check word is initially set to 0.

Zuerst soll nun das Istprüfwort über den noch nicht verfälschten Speicherinhalt gebildet werden.First of all, the actual check word is now to be formed using the memory content which has not yet been falsified will.

Aus r ist = 111 = r soll kann man entnehmen, daß kein Fehler detektiert wurde.From r ist = 111 = r should be seen that no error has been detected.

Nun soll das Istprüfwort nach dem Auftreten der Fehlersituation gebildet werden:Now the actual check word should be formed after the error situation has occurred:

Jetzt ist r ist = 010 ≠ r soll = 111. Aus dieser Ungleichheit der Prüfwörter kann mit Sicherheit geschlossen werden, daß ein Fehler aufgetreten ist.Now r ist = 010 ≠ r soll = 111. From this inequality of the test words it can be concluded with certainty that an error has occurred.

Dieser Testvorgang ist, da er den gesamten Speicher umfaßt und daher einige Zeit benötigt, gemäß der Erfindung unterbrechbar ausgestaltet. Wenn der Prozessor Lese- oder Schreioperationen auf dem Speicher ausführen will, kann der Testzyklus unterbrochen werden, z. B. nach Beendigung eines Speicherlese- und Teilprüfwortberechnungsschrittes. Durch die nachfolgend beschriebenen erfindungsgemäßen Vorkehrungen wird sichergestellt, daß der Testzyklus nach Beendigung der Unterbrechung in jedem Fall fortgesetzt werden kann, ohne daß dabei durch eine vorangegangene Prozessorschreiboperation ein falsches Istprüfwort entstanden ist.This test procedure is because it covers the entire memory and therefore takes some time designed interruptible according to the invention. When the processor is reading or screaming want to run on the memory, the test cycle can be interrupted, e.g. B. after completion of a memory read and partial check word calculation step. By the precautions described below ensure that the test cycle must continue after the interruption can be done without a wrong one by a previous processor write operation Actual check word has arisen.

Wie anfangs beschrieben führt eine Prozessorschreiboperation zu einem Anpassen des Sollprüfwortes durch Aufaddieren eines geeignet berechneten Differenzprüfwortes. Wenn nun eine Schreiboperation auf eine Adresse durchgeführt wird, die vom Testvorgang im momentan laufenden Testzyklus bereits erfaßt worden ist, würde ein am Ende des Testvorgangs durchgeführter Vergleich von Soll- und Istprüfwort eine Differenz ergeben und einen nicht vorhandenen Fehler anzeigen, da ja das Sollprüfwort durch die Schreiboperation an den neuen Speicherinhalt angepaßt wurde, das Istprüfwort aber über den noch nicht veränderten Speicherinhalt gebildet wurde.As described initially, a processor write operation will result in customization of the Target test word by adding up a suitably calculated differential test word. If now a write operation to an address is carried out by the test process in the currently running test cycle has already been recorded, would be at the end of the test process carried out comparison of target and actual test word result in a difference and display a nonexistent error, since the target check word is due to the write operation was adapted to the new memory content, but the actual check word via the unchanged memory content was formed.

Um diesen Fall vorzubeugen ist erfindungsgemäß der Vergleicher V 1 (Fig. 6) vorgesehen. Er vergleicht die bei einer Prozessorschreibanforderung am Adreßbus anliegende Adresse mit der vom Testvorgang gerade verwendeten Adresse des Adreßgenerators AG. Im oben beschriebenen Fall, wenn also eine vom Testvorgang erfaßte Speicherstelle neu beschrieben wird, wird dann das von der Teilprüfwortberechnungseinheit berechnete Änderungsprüfwort δ r(x) (Fig. 7) über die Datenweiche DAW sowohl beim Sollprüfwort in RS, als auch beim Istprüfwort in RI aufaddiert. Dies führt dann dazu, daß die durch die Schreiboperation eingetretene Änderung auch beim Istprüfwort berücksichtigt wird, sodaß im fehlerfreien Fall - wenn also im Speicher keine Fehler aufgetreten sind - Soll- und Istprüfwort übereinstimmen.To prevent this case, the comparator V 1 ( FIG. 6) is provided according to the invention. It compares the address pending on the address bus with a processor write request with the address of the address generator AG currently used by the test process. In the case described above, that is, when a memory location detected by the test process is rewritten, the change test word δ r (x) ( FIG. 7) calculated by the partial test word calculation unit is transmitted via the data switch DAW both for the target test word in RS and for the actual test word in RI added up. This then leads to the fact that the change that has occurred as a result of the write operation is also taken into account in the actual check word, so that in the error-free case — that is to say if no errors have occurred in the memory — the target and actual check words match.

Beispiel 8Example 8 Unterbrechnung des TestvorgangsInterruption of the test process

Für dieses Beispiel sei wieder die Speicherbelegung aus Beispiel 3 angenommen; es trete kein Fehler auf.For this example, the memory allocation from Example 3 is again assumed; it  no error occurs.

nun soll die Bildung des Istprüfwortes für den Fall betrachtet werden, daß der Test­ vorgang Wort 0 bis Wort 2 bereits abgearbeitet hat, aber noch vor der Bearbeitung von Wort 3 durch die Schreiboperation unterbrochen wird:now the formation of the actual test word should be considered in the event that the test Operation has already processed word 0 to word 2, but before processing Word 3 is interrupted by the write operation:

Unterbrechung durch Schreiboperation, δ r = 100 (siehe Beispiel 3) wird auf r soll auf­ addiert: r soll :=111 + 100 = 011. Da Wort 2 bereits vom Testvorgang abgearbeitet wurde, wird δ r auch auf r ist aufaddiert: r ist =001 + 100 = 101:Interrupt by writing operation, δ r = 100 (see Example 3) at r soll on added: r soll: = 111 + 100 = 011. As word 2 has already been processed by the testing operation, is δ r on r is added: R = 001 + 100 = 101:

Nach Abarbeiten des dritten Wertes sind r ist = 011 und r soll = 011 identisch, kein Fehler wurde detektiert.After processing the third value, r is = 011 and r target = 011 are identical, no error was detected.

Die Initialisierung eines gerade eingeschalteten Speichers, der dann eventuell Zufallswerte aufweist, kann auf verschiedene Weise vorgenommen werden. Eine einfache Möglichkeit besteht darin, den gesamten Speicher mit 0 . . . 0 zu beschreiben. Das Sollprüfwort braucht dann nicht berechnet zu werden, es wird ebenfalls direkt mit 0 . . . 0 beschrieben. Der Speicher und das Sollprüfwort sind nun in einem genau definierten Anfangszustand. Ab jetzt ist der Speicher gesichert; nachfolgende Schreiboperationen werden beim Sollprüfwort berücksichtigt und im Speicher aufgetretene Fehler können durch den Testvorgang detektiert werden.The initialization of a memory that has just been switched on, which may then be random values can be done in different ways. An easy way consists of zeroing the total memory. . . 0 to describe. The target check word needs then not to be calculated, it is also directly with 0. . . 0 described. The The memory and the target check word are now in a precisely defined initial state. From now the memory is secured; subsequent write operations become the target check word  errors and errors that have occurred in the memory can be detected by the test process will.

Eine weitere Möglichkeit zur Speicherinitialisierung besteht darin, den "zufälligen" Speicherinhalt als richtig zu akzeptieren und ein dazu passendes Sollprüfwort zu generieren und in Register RS abzulegen. Damit ist ebenfalls eine Übereinstimmung von Soll- und Istprüfwort im fehlerfreien Zustand gewährleistet. Der Vorteil dieses Verfahrens liegt darin, daß der Speicherinhalt nicht gelöscht werden muß, d. h. im Adreßraum des Speichers können auch 'nur lesbare' Speicher (z. B. EPROM) enthalten sein, die dann ebenfalls mit gesichert werden (siehe dazu Beispiel 2).Another option for initializing the memory is to accept the "random" memory content as correct and to generate a matching check word and store it in register RS . This also ensures that the target and actual test words match in the error-free state. The advantage of this method is that the memory content does not have to be deleted, ie the address space of the memory can also contain 'only readable' memories (e.g. EPROM), which are then also saved (see Example 2).

Eine beispielhafte Ausgestaltung der Selbsttesteigenschaft kann so vorgenommen werden, daß nach Einschalten des Speichers der meist zufällige Inhalt des Speichers in noch nicht initialisiertem Zustand vom Testvorgang erfaßt wird, wobei mit hoher Wahrscheinlichkeit das dadurch erzeugte Istprüfwort mit dem durch das Einschalten ebenfalls zufälligen Sollprüfwort nicht übereinstimmt. Diese "Fehlermeldung" kann dann als Indiz für ein korrektes Funktionieren des Testvorgangs angesehen werden.An exemplary configuration of the self-test characteristic can be carried out that after switching on the memory the mostly random content of the memory in not yet initialized state is detected by the test process, with high probability the actual check word thus generated with the randomly generated by switching on Target check word does not match. This "error message" can then be used as an indication of a correct functioning of the test process.

Eine weitere Möglichkeit zur Herbeiführung einer "Fehlermeldung" zu Selbsttestzwecken besteht darin, den Speicher definiert, z. B. mit Null vorzubelegen, und während dieser Vorbelegungsphase das Erzeugen und Aufaddieren des entsprechenden Änderungsprüfwortes w r(x) zu verhindern. Dadurch werden mit an Sicherheit grenzender Wahrscheinlichkeit Speichersituationen erzeugt, die zur Ungleichheit der Prüfwörter beim Testzyklus führen.Another way of generating an "error message" for self-test purposes is to define the memory, e.g. B. to pre-assign zero, and to prevent the generation and addition of the corresponding change check word w r (x) during this pre-assignment phase. As a result, memory situations are generated with a probability bordering on certainty which lead to the test words being inequality during the test cycle.

In Fig. 8 ist eine vereinfachte Prüfwortberechnungs- und Testeinheit VPTE dargestellt, die das eingeschränkte Generatorpolynom g(x) = x m +1 verwendet. Schaltungstechnisch entspricht dies einer Spaltenparitätsbildung über alle Speicherworte.In FIG. 8 is a simplified Prüfwortberechnungs- and test unit VPTE is shown that uses the restricted generator polynomial g (x) = x m +1. In terms of circuitry, this corresponds to column parity formation across all memory words.

Eine besonders vorteilhafte Ausgestaltung des Verfahrens besteht darin, daß zusätzlich zur vereinfachten Prüfwortberechnung eine wortweise Paritätssicherung des Speichers vorgenommen wird. Dadurch ist es auf einfache Weise möglich, einen 1-Bit-Fehler im Speicher zu korrigieren, da im Falle eines einfachen 1-Bit-Fehlers der genaue Ort über die Zeilen- und Spaltenparität bekannt ist.A particularly advantageous embodiment of the method is that in addition to a simplified parity check of the memory was carried out in simplified test word calculation becomes. This makes it easy to get a 1-bit error in memory correct, because in the event of a simple 1-bit error, the exact location can be and column parity is known.

Eine weitere Anwendungsmöglichkeit einer solchen zusätzlichen wortweisen Paritätssiche­ rung ist in der Fehlerfrüherkennung gegeben. Diese ist dann sinnvoll, wenn verhindert werden soll, daß nach Auftreten eines Speicherfehlers das fehlerhafte Wort vom Prozessor gelesen und weiter verarbeitet wird, bevor nach Beendigung des Testzyklus der Fehler erkannt und gemeldet wird. In diesem Fall wird mit der einfachen wortweisen Paritätssicherung eine Fehlerfrüherkennung bereits beim Auslesen des entsprechenden fehlerhaften Wortes durch eine erneute Paritätsprüfung beim Lesen ermöglicht. Another possible application of such an additional word-by-word parity lock  is given in early error detection. This is useful if prevented should read the faulty word from the processor after a memory error occurs and further processed before the error is recognized after the end of the test cycle and reported. In this case, the simple word-by-word parity assurance early error detection when reading the corresponding incorrect word enabled by a new parity check when reading.  

Anhangattachment BezeichnungenDesignations

n Anzahl der Speicherworte im Speicher m Anzahl der Bit pro Speicherwort w i (x) Speicherwort i in Polynomdarstellung S(x) Gesamtspeicher in Polynomdarstellung n Number of memory words in memory m Number of bits per memory word w i (x) memory word i in polynomial representation S (x) Total memory in polynomial representation

w alt (x)Im Speicher befindliche alte Speicherinformationw neu (x)Neu einzuschreibende Speicherinformationδ w(x)Differenz von neuem und altem Speicherwort, entspricht stellenweiser modulo 2 Additiong(x)Generatorpolynom für Sicherungsmaßnahme, Polynomgrad r g(x) = g r x r + g r-1 x r-1 + · · · + gx + g₀, die Polynomkoeffizienten g i können die Werte 0 oder 1 annehmen modg(x)Restbildung bezüglich des Polynoms g(x)
Die Darstellungen r(x) = a(x) modg(x), sowie Der Quotient q(x) hat keine Bedeutung, benötigt wird nur der Rest r(x) r soll (x)Sollprüfwort, entstanden zum Zeitpunkt des Sicherungsbeginns,
w old (x) old memory information in the memory w new (x) new memory information to be written δ w (x) difference between new and old memory word, corresponds in places to modulo 2 addition g (x) generator polynomial for security measure, degree of polynomial r g (x) = g r x r + g r -1 x r -1 + · · · + gx + g ₀, the polynomial coefficients g i can have the values 0 or 1 mod g (x) residual formation with respect to the polynomial g (x)
The representations r (x) = a (x) mod g (x) , as well The quotient q (x) has no meaning needed is only the remainder r (x) r to (x) Sollprüfwort, emerged at the time of the begin,

r ist (x) Istprüfwort, erzeugt durch einen Speichertest, r is (x) actual test word, generated by a memory test,

δ r(x) Änderungsprüfwort, erzeugt aufgrund vorausgegangerer Schreiboperation p Position einer Speicherinformation innerhalb des Speichers, p = i · m AG Adreßgenerator AS Ablaufsteuerung AW Auswahlschaltung DAW Datenweiche DE Datensicherungseinheit DTE Datensicherungs- und Testeinheit DW Differenzwortberechnungseinheit M i Teilmultiplikationsschaltung (i) MX Multiplexer PTE Prüfwortberechnungs- und Testeinheit RI Register für Istprüfwort RS Register für Sollprüfwort SPW Sollprüfwortberechnungseinheit TPW Teilprüfwortberechnungseinheit VPTE Vereinfachte Prüfwortberechnungs- und Testeinheit δ r (x) change check word, generated due to previous write operation p position of memory information within the memory, p = i · m AG address generator AS sequence control AW selection circuit DAW data switch DE data backup unit DTE data backup and test unit DW difference word calculation unit M i partial multiplication circuit (i) MX multiplexer PTE Test word calculation and test unit RI Register for actual test word RS Register for target test word SPW Target test word calculation unit TPW Partial test word calculation unit VPTE Simplified test word calculation and test unit

Formeln Formulas

Claims (15)

1. Verfahren zum Sichern von Digitalspeichern, bei dem beim Initialisieren Sicherungsinformation in Form eines einzigen Sollprüfwortes r soll (x) hinzugefügt wird, daß mit Hilfe eines vorbestimmten Generatorpolynoms g(x) aus dem Speicherinhalt erzeugt wird, und beim Testen ein Istprüfwort r ist (x) mit demselben Generatorpolynom gebildet wird und im Fehlerfalle je nach Beschaffenheit der beiden Prüfworte eine Fehlererkennung bzw. eine Fehlerkorrektur durchgeführt wird, dadurch gekennzeichnet, daß beim Schreiben von Information in den Speicher zur Bildung des neuen Sollprüfwortes die neue Speicherinformation w neu (x) mit der an dieser Stelle stehenden alten Speicherinformation w alt (x) modulo 2 addiert wird und das Ergebnis δ w(x) (Differenzwort) mit dem Faktor x p multipliziert wird, wobei p die Position der betreffenden Speicherinformation innerhalb des Speichers angibt, und daß vom Ergebnis eine Restbildung modulo g(x) durchgeführt wird und das daraus entstehende Resultat δ r(x) (Änderungsprüfwort) mit dem alten Sollprüfwort r soll (x) modulo 2 addiert wird.1. A method for securing digital memories, wherein r is to when initializing security information in the form of a single Sollprüfwortes (x) added is that g (x) is generated from the memory contents using a predetermined generator polynomial, and r is when testing a Istprüfwort ( x) is formed with the same generator polynomial and, in the event of an error, depending on the nature of the two test words, an error detection or an error correction is carried out, characterized in that the new memory information w new (x) with when information is written into the memory to form the new desired test word the old memory information w alt (x) modulo 2 at this point is added and the result δ w (x) (difference word) is multiplied by the factor x p , where p indicates the position of the relevant memory information within the memory, and that from Result, a residual formation modulo g (x) is carried out and the resulting result δ r (x) ( Change test word) with the old target test word r should (x) modulo 2 is added. 2.Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Differenzwort δ w(x) zur Bildung des Änderungsprüfwortes δ r(x) in Abhängigkeit von der Adreßinformation p in sukzessiven Teilmultiplikationsschritten mit entsprechenden, gemäß einer Dualzahlenzerlegung von p erhaltenen Potenzen von x multipliziert wird, wobei das Ergebnis einer jeden Multiplikation in Abhängigkeit vom jeweiligen Eingangswert für ein festes Generatorpolynom g(x) und jede benötigte Potenz von x vorausberechnet vorliegt.2. The method according to claim 1, characterized in that the difference word δ w (x) to form the change test word δ r (x) is multiplied in successive partial multiplication steps depending on the address information p by corresponding powers of x obtained according to a dual number decomposition of p , the result of each multiplication depending on the respective input value for a fixed generator polynomial g (x) and each required power of x is predicted. 3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Generatorpolynom g(x) so gewählt wird, daß es die Gleichung 0 = x m + 1 modg(x)erfüllt, wobei m die Anzahl der Bit pro Speicherwort ist.3. The method according to claim 1, characterized in that the generator polynomial g (x) is chosen so that it satisfies the equation 0 = x m + 1 mod g (x) , where m is the number of bits per memory word. 4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß das Generatorpolynom so gewählt wird, daß es der zusätzlichen Bedingung Grad[g(x)] = mentspricht.4. The method according to claim 3, characterized in that the generator polynomial is chosen so that it corresponds to the additional condition degree [g (x)] = m . 5. Verfahren nach Anspruch 1, 2, 3 oder 4, dadurch gekennzeichnet, daß zyklisch ein Istprüfwort r ist (x) vom aktuellen Speicherinhalt gebildet wird, dieses mit dem abgespeicherten Sollprüfwort r soll (x) verglichen wird und bei Nichtübereinstimmung der beiden Prüfworte der erkannte Fehler weitergemeldet wird oder eine Fehlerkorrektur eingeleitet wird, wobei die Bildung dieses Istprüfwortes zu bestimmten Zeitpunkten unterbrochen werden kann, so daß bei Bedarf ein Lesen bzw. Schreiben des Speichers ermöglicht wird, und daß dieser Testvorgang im Falle einer Unterbrechung durch eine Speicherschreiboperation in dem Fall, daß der Speicherzugriff in einem vom Testvorgang bereits abgearbeiteten Speicherbereich erfolgt, so modifiziert wird, daß das Änderungsprüfwort sowohl auf das Istprüfwort, als auch auf das Sollprüfwort aufaddiert wird, so daß der Testvorgang nach der Schreiboperation weitergeführt werden kann, und nicht wieder neu von Anfang an beginnen muß.5. The method according to claim 1, 2, 3 or 4, characterized in that an actual test word r is cyclic (x) is formed from the current memory content, this is compared with the stored target test word r should (x) and if the two test words do not match detected error is reported or an error correction is initiated, the formation of this actual check word can be interrupted at certain times, so that reading or writing of the memory is made possible if necessary, and that this test procedure in the event of an interruption by a memory write operation in the case That the memory access takes place in a memory area already processed by the test process, is modified so that the change test word is added to both the actual test word and the target test word, so that the test process can be continued after the write operation, and not again from the beginning must start at. 6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß zur Initialisierung eines gültigen Sollprüfwortes der gesamte Speicher einschließlich des Sollprüfwortes mit Null beschrieben wird.6. The method according to claim 1, characterized in that for initializing a valid target check word the entire memory including the target check word with zero is described. 7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß zur Initialisierung eines gültigen Sollprüfwortes dieses anfänglich zu Null gesetzt wird, daß sukzessive jedes Speicherwort w(x) gelesen und mit dem entsprechenden Faktor x p multipliziert wird, wobei p die Position der entsprechenden Speicherinformation innerhalb des Speichers angibt, und daß vom Ergebnis eine Restbildung modulo g(x) durchgeführt und der daraus entstehende Wert δ r(x) mit dem alten Istprüfwort r ist (x) modulo 2 addiert wird.7. The method according to claim 1, characterized in that for the initialization of a valid target check word this is initially set to zero, that each memory word w (x) is successively read and multiplied by the corresponding factor x p , where p is the position of the corresponding memory information within of the memory indicates that the result is a residual formation modulo g (x) and the resulting value δ r (x) is added to the old actual test word r ist (x) modulo 2. 8. Verfahren nach Anspruch 5, 6 oder 7, dadurch gekennzeichnet, daß nach dem Einschalten des Speichers der Testvorgang eine vorbestimmte Zeit mit einem noch nicht initialisierten Sollprüfwort arbeitet.8. The method according to claim 5, 6 or 7, characterized in that after switching on the memory of the test process a predetermined time with a not yet initialized Debit check word works. 9. Verfahren nach Anspruch 5, 6 oder 7, dadurch gekennzeichnet, daß nach dem Einschalten des Speichers während der Initialisierung das Erzeugen eines Änderungsprüfwortes unterbunden wird. 9. The method according to claim 5, 6 or 7, characterized in that after switching on of the memory during the initialization generating a change check word is prevented.   10. Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß beim Testvorgang eine zusätzliche wortweise Paritätsprüfung durchgeführt wird, und daß durch das Zusammenwirken des Testvorgangs mit der Paritätsprüfung verhindert wird, daß ein Speicherwort, welches durch die Paritätsprüfung als fehlerhaft erkannt worden ist, nach dem Lesen weiter­ verwendet wird, bevor der Testvorgang diesen Fehler erkennen und anschließend korrigieren konnte.10. The method according to claim 5, characterized in that a during the test process additional word-by-word parity check is performed, and that by interacting the test process with the parity check prevents a memory word, which has been identified as faulty by the parity check after reading is used before the test process detects this error and then could correct. 11. Verfahren nach den Ansprüchen 4 und 5, dadurch gekennzeichnet, daß beim Testvorgang eine zusätzliche wortweise Paritätsprüfung durchgeführt wird, und daß durch das Zusammenwirken des Testvorgangs mit der Paritätsprüfung eine Korrektur eines 1-Bit- Fehlers und die Erkennung eines 2-Bit-Fehlers an einer beliebigen Stelle des Speichers durchgeführt wird.11. The method according to claims 4 and 5, characterized in that during the test process an additional word-by-word parity check is performed, and that by the Interaction of the test process with the parity check a correction of a 1-bit Error and the detection of a 2-bit error at any point in the memory is carried out. 12. Schaltungsanordnung zum selektiven Einschreiben von Speicherinformation an eine bestimmte frei wählbare Speicherstellle in einem Digitalspeicher, der beim Initialisieren durch ein einziges Sollprüfwort r soll (x) mit Hilfe eines vorbestimmten Generatorpolynoms g(x) gesichert worden ist, dadurch gekennzeichnet, daß eine Differenzwortberechnungseinheit (DW) vorgesehen ist, die beim Beschreiben des Speichers die neue Speicherinformation w neu (x) im Register R 2 mit der an dieser Stelle stehenden alten Speicherinformation w alt (x) in Register R 3 durch einen Addierer (A 1) modulo 2 zu einem Differenzwert δ w(x) addiert, sowie eine Sollprüfwortberechnungseinheit (SPW), in der das Differenzwort δ w(x) zusammen mit der dazugehörigen Adreßinformation p in einer Teilprüfwortberechnungseinheit (TPW) zu einem Änderungsprüfwort δ r(x) umgeformt und daß anschließend dieses Änderungsprüfwort δ r(x) mit dem alten Sollprüfwort r soll (x) in Register RS zum neuen Sollprüfwort r soll (x) durch einen Addierer (A 2) modulo 2 addiert wird.12. Circuit arrangement for the selective writing of memory information to a specific, freely selectable memory location in a digital memory which has been secured during initialization by a single target test word r should (x) with the aid of a predetermined generator polynomial g (x) , characterized in that a difference word calculation unit ( DW) is provided which, when writing to the memory, stores the new memory information w new (x) in register R 2 with the old memory information w old (x) in this position in register R 3 by an adder ( A 1 ) modulo 2 into one Difference value δ w (x) added, and a target check word calculation unit (SPW), in which the difference word δ w (x) together with the associated address information p in a partial check word calculation unit (TPW) converted to a change check word δ r (x) and that this change check word δ r (x) r with the old Sollprüfwort to (x) in register RS for new Sollprüfwort r (x) should by e an adder ( A 2 ) modulo 2 is added. 13. Schaltungsanordnung nach Anspruch 12, dadurch gekennzeichnet, daß in der Teilprüfwort­ berechnungseinheit (TPW) das Differenzwort δ w(x) zur Bildung des Änderungsprüfwortes δ r(x) sukzessive Multiplikationsschaltungen (M i ) durchläuft, deren Eingänge in Abhängigkeit vom Generatorpolynom g(x) vorausberechnet sind, exklusiv - oder - verknüpft und anschließend mit einer Selektionsleitung (Sel i ) verknüpft werden, die aufgrund der Adreßinformation p durch eine Auswahlschaltung (AW) aktiviert wird. 13. Circuit arrangement according to claim 12, characterized in that in the partial test word calculation unit (TPW) the difference word δ w (x) to form the change test word δ r (x ) passes through successive multiplication circuits (M i ) , the inputs of which depend on the generator polynomial g ( x) are precalculated, exclusively - or - linked and then linked with a selection line (Sel i ) , which is activated based on the address information p by a selection circuit (AW) . 14. Schaltungsanordnung nach Anspruch 12 oder 13, dadurch gekennzeichnet, daß in einer Datensicherungs- und Testeinheit (DTE) während eines Testzyklusses mit Hilfe eines Adreßgenerators (AG) zyklisch alle Speicherworte über einen Multiplexer (MX) adressiert werden und ein gelesener Wert über ein Register (R 4) zusammen mit der Adresse p innerhalb einer Prüfwortberechnungs- und Testeinheit (PTE) mit Hilfe der Teilprüfwort­ berechnungseinheit (TPW) zu einem Änderungsprüfwort δ r(x) verknüpft wird, welches nach Durchlaufen einer Datenweiche (DAW) mit dem Sollprüfwort r soll (x) in Register RS durch einen Addierer (A 3) exklusiv - oder verknüpft wird, und daß am Ende eines jeden Testzyklus, also nach dem Durchlaufen aller Adressen, das Soll- und das Istprüfwort über einen Vergleicher (V 2) miteinander verglichen werden, wobei bei Nichtübereinstimmen der beiden Prüfwörter ein Fehlersignal erzeugt wird, und daß jeder Testzyklus durch eine Lese- oder Schreiboperation unterbrochen werden kann, wobei das durch eine Schreiboperation erzeugte Änderungsprüfwort δ r(x) über die Datenweiche (DAW) immer mit dem Sollprüfwort r soll (x) exklusiv - oder verknüpft wird, und daß bei einer Unterbrechung durch eine Speicherschreiboperation in dem Fall, daß der Speicherzugriff in einem vom Testvorgang bereits abgearbeiteten Speicherbereich erfolgt, das Änderungsprüfwort sowohl mit dem Istprüfwort in Register RI durch den Addierer A 2, als auch mit dem Sollprüfwort exklusiv - oder - verknüpft wird, so daß der Testvorgang nach der Schreiboperation weitergeführt werden kann, und nicht wieder neu von Anfang an beginnen muß.14. Circuit arrangement according to claim 12 or 13, characterized in that in a data backup and test unit (DTE) during a test cycle with the help of an address generator (AG) all memory words are cyclically addressed via a multiplexer (MX) and a read value via a register (R 4) together with the address p within a Prüfwortberechnungs- and test unit (PTE) using the Teilprüfwort calculation unit (TPW) to a Änderungsprüfwort δ r (x) is linked which r after passing through a data switch (DAW) with the Sollprüfwort to (x) in register RS by an adder ( A 3 ) is exclusive - or linked, and that at the end of each test cycle, that is to say after all addresses have been run through, the target and actual test words are compared using a comparator ( V 2 ) , wherein if the two check words do not match, an error signal is generated and that each test cycle is interrupted by a read or write operation can, wherein the Änderungsprüfwort generated by a write operation δ r (x) always r via the data switch (DAW) with the Sollprüfwort to (x) exclusive - or is linked, and in that upon an interruption by a memory write operation in the event that the memory access in a memory area already processed by the test process, the change test word is linked exclusively with the actual test word in register RI by the adder A 2 , and also with the target test word - or -, so that the test process can be continued after the write operation, and not again must start again from the beginning. 15. Schaltungsanordnung nach Anspruch 14, dadurch gekennzeichnet, daß in einer vereinfachten Prüfwortberechnungs- und Testeinheit (VPTE) das Differenzwort δ w(x) direkt über die Datenweiche (DAW) mit dem Sollprüfwort, bzw. dem Istprüfwort exklusiv - oder verknüpft wird.15. Circuit arrangement according to claim 14, characterized in that in a simplified test word calculation and test unit (VPTE) the difference word δ w (x) is linked directly or exclusively via the data switch (DAW) to the target test word or the actual test word.
DE3716554A 1987-05-18 1987-05-18 Method and circuit arrangement to secure digital memories Expired - Lifetime DE3716554C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE3716554A DE3716554C1 (en) 1987-05-18 1987-05-18 Method and circuit arrangement to secure digital memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE3716554A DE3716554C1 (en) 1987-05-18 1987-05-18 Method and circuit arrangement to secure digital memories

Publications (1)

Publication Number Publication Date
DE3716554C1 true DE3716554C1 (en) 1988-08-04

Family

ID=6327767

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3716554A Expired - Lifetime DE3716554C1 (en) 1987-05-18 1987-05-18 Method and circuit arrangement to secure digital memories

Country Status (1)

Country Link
DE (1) DE3716554C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4300025C1 (en) * 1993-01-02 1994-01-27 Macrotek Ges Fuer Integrierte Error coding data transmission method - recognising and/or correcting one and more bit errors and involves division of data word and test word into four bit wide part words

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2515099A1 (en) * 1974-04-29 1975-11-13 Sperry Rand Corp CIRCUIT FOR THE CONTINUOUS GENERATION OF A LONGITUDINAL PARITY WORD FOR THE MAIN MEMORY OF A DIGITAL COMPUTER
DE2916710A1 (en) * 1978-05-02 1979-11-08 Philips Nv MEMORY WITH ERROR DETECTION AND ERROR CORRECTION

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2515099A1 (en) * 1974-04-29 1975-11-13 Sperry Rand Corp CIRCUIT FOR THE CONTINUOUS GENERATION OF A LONGITUDINAL PARITY WORD FOR THE MAIN MEMORY OF A DIGITAL COMPUTER
DE2916710A1 (en) * 1978-05-02 1979-11-08 Philips Nv MEMORY WITH ERROR DETECTION AND ERROR CORRECTION

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Furrer, F.J.: Fehlerkorrigierende Blockcodierung für die Datenübertragung, Birkhäuser Verlag Basel,1981, S. 49-236 *
Lin, Shu und Costello, Daniel J.: Error Control Coding-Fundamentals and Applications, Prentice Hall, Englewood Cliffs, N.J., 1983, Seiten 111-121, 257-282 *
Rader, J., Hölscher, H.: Microcomputer in der Sicherheitstechnik, Verlag TÜV Rheinland, Köln 1984, S.7.23-7.63 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4300025C1 (en) * 1993-01-02 1994-01-27 Macrotek Ges Fuer Integrierte Error coding data transmission method - recognising and/or correcting one and more bit errors and involves division of data word and test word into four bit wide part words

Similar Documents

Publication Publication Date Title
DE60117066T2 (en) Method and device for checking error-correcting codes
DE2060643C3 (en) Circuit arrangement for correcting individual errors
DE102011085602B4 (en) Apparatus and method for correcting at least one bit error in a coded bit sequence
DE102007038114A1 (en) Error correction circuit for correction of error in memory cell e.g. read only memory, has main control unit is formed for determining definite error location based on error type and output is determined by two error locating detectors
DE4341082A1 (en) Circuit arrangement for safety-critical control systems
DE2430464A1 (en) DEVICE FOR ERROR-PROOF DATA TRANSMISSION
DE2106314B2 (en) Arrangement for error detection and correction in a byte consisting of b bits of a data block containing K data bytes
DE112016003638B4 (en) Error checking following decoding with diagnostics for product codes
DE2622184A1 (en) ERROR CORRECTION PROCEDURE
DE2263488C2 (en) Device for the detection and correction of errors in two faulty tracks of a multi-track data system
DE3727586C2 (en) Data processing arrangement consisting of four essentially identical modules
DE2357168A1 (en) MEMORY MODULE FOR A DATA PROCESSING UNIT
DE102006005817A1 (en) Error detection device for e.g. address decoder, has comparing unit to output signal based on comparison of input and regenerated addresses, where signal displays error during conversion, when input and regenerated addresses do not coincide
DE112014002403B4 (en) High-performance read-modify-write system with row rate merging of data frame segments in hardware
DE2157829C2 (en) Arrangement for recognizing and correcting errors in binary data patterns
WO2009034019A1 (en) Method and device for coding data words
DE102006062703A1 (en) Error detection device and method for error detection for a command decoder
DE602004008150T2 (en) Data error correction by means of redundancy blocks
DE3716554C1 (en) Method and circuit arrangement to secure digital memories
DE4117726C2 (en) Error correction procedure and device for its implementation
DE102020111321A1 (en) SYSTEM AND PROCEDURE FOR DETECTION AND CORRECTION OF DATA ERRORS IN A TRANSPARENT REGISTER
DE102016104012A1 (en) Processing a data word
EP1776636A2 (en) Method for registering errors and corresponding register
DE102007040721A1 (en) Data processing arrangement comprises coding device, which is adjusted to assign codeword to data item to be stored in memory element based on signal information
DE1937259A1 (en) Self-checking fault detection circuit

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
D1 Grant (no unexamined application published) patent law 81
8363 Opposition against the patent
8366 Restricted maintained after opposition proceedings
8305 Restricted maintenance of patent after opposition
D3 Patent maintained restricted (no unexamined application published)
8339 Ceased/non-payment of the annual fee