DE2916710A1 - Speicher mit fehlerdetektion und fehlerkorrektur - Google Patents
Speicher mit fehlerdetektion und fehlerkorrekturInfo
- Publication number
- DE2916710A1 DE2916710A1 DE19792916710 DE2916710A DE2916710A1 DE 2916710 A1 DE2916710 A1 DE 2916710A1 DE 19792916710 DE19792916710 DE 19792916710 DE 2916710 A DE2916710 A DE 2916710A DE 2916710 A1 DE2916710 A1 DE 2916710A1
- Authority
- DE
- Germany
- Prior art keywords
- word
- memory
- data
- correction
- symbol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1028—Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
Description
20.1.1979 / PHN 9078
Speicher mit Fehlerdetektion und Fehlerkorrektur.
Allgemein betrifft die
Erfindung die Verwendung Fehler korrigierender Kodes für Binärdaten sowohl hinsichtlich der Kodierung der Daten,
der Detektion aufgetretener Fehler in den kodierten Daten als auch (möp.icherweise) der Korrektur derartiger Fehler,
Das in diesem Fachbereich mustergültige Standardwerk ist das Buch von Peterson und ¥eldon; Error Correcting Codes,
MIT Press; hier wird für die zu beschreibende Erfindung insbesondere auf die Abschnitte 2 und 6 hingewiesen. Insbesondere
bezieht sich die Erfindung auf einen Speicher mit einer ersten Speicherbank mit Speicherstellen zum jeweiligen
Speichern eines einzigen Speiaherworts mit einer ausreichenden Anzahl v>n Bitstellen zum Einschreiben der,Datenbits
eines Speicherworts einschliesslich der Redundanzbits, wodurch je Speicherwort jeweils zumindest ein Fehlerbit bei
der Detektion dieses Fehlerbits korrigierbar ist, weiter mit einer Zugriffsanordnung mit einem Adresseneingang,
einer Datenverbindung für ein adressiertes Datenwort und eine an die Datenverbindung angeschlossene Korrektursa-Ordnung,
die aus einem ausgelesenen fehlerhaften Datenwort an einem Ausgang der Korrektux"anordimng ein korrigiertes
Datenwort erzeugt.
Bekannte Speicher sind matrixorganisierte Halbleiterspeicher, wenn auch die Erfindung
909845/0831
20.1.1979 '· ' -"■■■&■··*" *.*" * *. ..* PHN 9Ο?8
sich nicht darauf beschränkt. Insbesondere beschränkt
sich die Erfindung nicht auf Speicher mit wahlfreiem Zugriff. Eine bekannte Kodierung ermöglicht es, einen
einzigen Fehler je Speicherwort zu korrigieren (SEC). * Eine weitere bekannte Kodierung kann einen einzigen Fehler
je Speicherwort korrigieren und zwei Fehler je Speicherwort
detektieren (SEC-DED). JTach otafeem SEC-System muss ein
Kodewort von η Bits (Datenbits + Detektions/Korrekturbits) zumindest log (n + 1) Redundanzbits enthalten. Das bedeutet,
dass die Anzahl der redundanten Bits: für geringe Wortlänge verhältnismässig gross ist.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, den Prozentsatz redundanter Bits je
Speicherwort zu beschränkten, und weiterhin dies mit Daten-15
Wörtern einer beschränkten Länge durchzuführen, weil ein Datenwort grosser Länge in einem Prozessor (cpu) nicht verarbeitet
werden kann und/oder weil ein breiter Datenkanal teuer ist.
Die Aufgabe der Erfindung wird
dadurch gelöst, dass an die Datenverbindung eine Detektoranordnung
für ein aus dem Speicher ausgelesenes Datenwort angeschlossen ist, dass ein Detektionsausgang der Detektoranordnung
an einen Aktivierungseingang der Korrekturanordnung angeschlossen ist, dass die Speicherstellen für
die Speicherwörter jeweils auf eine feste Anzahl je geson-
■ dert von einem Datenadressensignal adressierbare Wortstellen
für Benutzerwörter verteilt sind, die je zumindest eine Bitstelle für ein Redundanzbit enthalten, wodurch wenigstens
ein einziges Fehlerbit in diesem Datenwort von der 30
Detektoranordnung detektierbar ist, dass von einem Signal
am erwähnten Detekorausgang in Zusammenarbeit mit dem erwähnten Datenadressensignal die übrigen Wortstellen
für Datenwörter des gleichen Speicherworts jeweils ein™
schliesslich derselben Redundanzbits zur gemeinsamen 35
Darstellung des auf diese Weise adressierten vollständigen
Speicherworts einschliesslich einer vorgegebenen Anzahl der dem betreffenden Speicherwort zugeordneten und auch in
909845/0831
20.1.1979 ■'' - .:..?..- ·..* : : ..· PHN 9078
den Speieher geschriebenen Korrekturbits an der Korrekturanordnung adressierbar sind, um eine Korrektur
zu aktivieren.
Solange kein Fehler detektiert wird, genügt jeweils das Auslesen der gewünschten verhältnismässig
kurzen Datenwörter von beispielsweise 8 oder 16 Bits. Nur bei der Detektion eines Fehlers wird das
verhSltnismässig lange Speicherwort für die Korrektur des Fehlers gelesen. Wenn ein Datenwort beispielsweise
acht Datenbits enthält, muss es nach der bereits erwähnten Rechenregel vier Korrekturbits enthalten, also es hat dabei
eine zugeordnete Redundanz von 50 ^. Nach einem
ersten Anwendungsbeispiel der Erfindung braucht ein Speicherwort von 4x8 Datenbits nur eine Anzahl von
vier Fehlerdetektionsbits und ausserdem sechs Fehlerkorrekturbits zu enthalten, also eine zugeordnete Redundanz
von 10 : 32 = 31 ^. Für ein Speicherwort von 8x8 Datenbits
genügen acht Fehlerdetektionsbits und sieben Fehlerkorrekturbits, also eino zugeordnete Redundanz von
*° 15 i 6k = 23i$>» Andererseits kann in einem derartigen
Speicherwort die Möglichkeit zur Korrektur/Detektion von Fehlern grosser sein, beispielsweise Detektion/Korrektur
zweier oder sogar mehrerer Fehler. Hinsichtlich der Länge der Speicherwörter und der Möglichkeit zur Korrektur/
Detektion von Fehlern im ganzen Speicherwort gelten bekannte Kompromisse zwischen der gewünschten Zuverlässigkeit
des Speichersystems und dem zulässigen Aufwand und/oder
Zeitverlust, die mit der Korrektur/Detektion verknüpft sind. In einer einfachen Ausführungsform nach 3er Erfin-
°" dung kann die Korrektur eines einzigen detektierten Fehlers
auf gleiche Weise erfolgen, als gälte es ein nicht unterteiltes Speicherwort: dabei ergeben die Fehlerdetektionsbits
der anderen Datenwörter entweder keine weiteren Informationen oder die Information, dass die übrigen Daten-
Wörter ebon keinen Fehler enthalten.
Es ist vorteilhaft, wenn eine
Wortstelle für ein Datenwort eine redundante Bitposition zur Speicherung eines Paritätsbits enthält, wobei die
909845/0831
INSPECTED
20.1.1979 *'' " ' j ■ *:**fr·" ."■-* : : ·-* PHN 9078
gemeinsamen Paritätsbits eines Speicherworts ein Paritätssymbol und die Datenbits an entsprechenden
Bitpositionen der Benutzerwörter jeweils ein Benutzer-
. symbol bilden, dass dem betreffenden Speicherwort genau 5
soviel Korrekturbits zugeordnet sind, wie es Datenwörter zur Bildung eines Korrektursymbols enthält, welche
Symbole alle Elemente eines gleichen Galoiskörpers (Galois field) bilden, dass erste Mittel zur Darstellung
einer aus Elementen des gleichen Galoiskörpers aufgebau-10
ten Paritätsmatrix des Fehlerkorrekturkodes zweite Mittel zur Multiplikation eines ausgelesenen, gestörten Speicherwörts
mit der Paritätsmatrix zum Erzeugen eines Störungssymbols und eines Produktsymbols und eines Produktsymbols
aus Störungssymbol und Suchersymbol (Lokatorsymbol)
15
dritte Mittel zum Erhalten des Störungssymbols und des Produktsymbols, um einen Störungssucher (Störungslokator)
zu erzeugen, und vierte Mittel vorgesehen sind, um mit Hilfe des Störungssymbols und des St8 rungssuchers das
gestörte Speicherwort zu korrigieren. Ein derartiger Aufbau bietet mehrere Vorteile. Zunächst wird ein
modularer Aufbau erhalten, weil für jedes Datenwort auch genau ein einziges Korrekturbit erforderlich ist.
Weiter kann durch die Zusammenarbeit des Korrektursymbols
mit dem Paritätssymbol eine weitere Redundanzverringei-ung
25
erreicht werden. Es stellt sich zum Beispiel heraus, dass
' für vier Datenwörter von je acht Datenbits nur acht
Redundanzbits erforderlich' sind, d.h. eine zugeordnete
Redundanz von 8 : 32 = 25 $0 Ausserdem kann damit jede
beliebige Störung in einem Datensymbol mitllilfe des aus
OU . -
den paritätsbits gebildeten Störungssymbols und des Suchers dadurch korrigiert werden, dass letzterer eben>
ein einziges Datensymbol anzeigen kann. Dies gibt eine viel grössere Fehlerkorrekturfähigkeit eben dadurch, dass
o - jetzt abhängigelehler zusammen behandelt werden können,
ob
als die des bereits erwähnten Kodes, der auch schon zu Redundanzverringerung führte. Die vergrösserte Kapazität
des Kodes liegt also in zwei Punkten:
909845/08*1
21-1-1979 ·>' - .:'.£.'■ ~ '„'":'' : ..: PHN 9078
a. Es können mehrere Fehler korrigiert werden. /IU
b. Sie sind Fehler, die oft gleichzeitig auftreten (als Totalstörungen).
Der fehlerkorrigierende Kode kann bei M
Datenvörtern in einem Speicherwort mit einer Korrektur auf
der Basis von Variablen mit 2 möglichen Werten gegenüber dem bekannten Kode bezeichnet werden, der atif der Basis
binärer Variablen arbeitet. Die Durchführung von Rechenbearbeitungen an Elementen aus einem Galoiskör'per ist
eine einfache Technik, bei der neben üblichen logischen Gattern (beispielsweise vom NICHT-UND-Typ) die Verwendung
von EXKLUSIV-ODER-Gatter vereinfachend wirkt.
Es ist vorteilhaft, wenn die
erwähnten ersten Mittel zum Darstellen einer Paritätsmatrix mit einem Datenblock für die K Benutzersymbole je Benutzerwort
einschliesslich dessen Paritätssymbols in folgender Form:
1 1 1 1
mO m1 m2
mit einer zusätzlichen Spalte
für die Korrektursymbole geeignet sind, dass bei M Datenwörtern je Speicherwort die Elementfolge \ rnO , ml , . . .m(K-1 ) ,
Ο J· aus allen voneinander verschiedenen Elementen des
Galoiskörpers GF(2 ) besteht, wobei die erwähnte Spalte (1, θ) den Paritätssymbolen zugeordnet ist, und sich
die erwähnte Spalte x(mj) von allen anderen unterscheidet.
Dies ergibt einen systematischen
Aufbau der Paritätsmatrix und damit der ganzen Anordnung.
Es ist klar, dass die geilen der Paritätsmatrix, und
ausserdem im Datenblock auch die Spalten, gegenseitig austauschbar sind. So ist die Reihenfolge der höchstens
2 Elemente des Galoiskörpers GF(2m), einschliesslich O,
beliebig.
Es ist vorteilhaft, wenn mj in der als Potenzreihe zu schreibenden Menge von Symbolen
im Galoiskörper GF(2M), 0, a°, a1 ... a(2M-i) den Wert
a hat.
909845/0831
Diese bevorzugte
form ergibt eine einfache Implementierung.
form ergibt eine einfache Implementierung.
Es ist vorteilhaft, wenn die
erwähnten ersten Mittel zum Darstellen eines Werts χ = 0 geeignet sind. So werden die Korrekturbits nicht in die
Paritätsbestimmung einbezogen. Einerseits kann dies zu
einem misslungenen Korrekturversuch führen, wenn ausser
einem Datensymbol auch ein Korrekturbit gestört ist. Zum anderen ergibt dies eine verhältnismässig einfache Schaltung, wie sich später herausstellen wird.
Paritätsbestimmung einbezogen. Einerseits kann dies zu
einem misslungenen Korrekturversuch führen, wenn ausser
einem Datensymbol auch ein Korrekturbit gestört ist. Zum anderen ergibt dies eine verhältnismässig einfache Schaltung, wie sich später herausstellen wird.
Es ist vorteilhaft, wenn die erwähnten ersten Mittel zum Darstellen eines Wertes
χ = a geeignet sind, der von allen Elementen in der Folge } mO, m1...m(K-i)| verschieden ist. So wird die Zuverlässigkeit
in bezug auf die bereits erwähnte Ausführung
dadurch vergrössert, dass jetzt auch die KorrekturSymbole in die Bestimmung der Parität mit einbezogen werden.
dadurch vergrössert, dass jetzt auch die KorrekturSymbole in die Bestimmung der Parität mit einbezogen werden.
Es ist vorteilhaft, wenn zumindest eine zweite Speicherbank mit entsprechendem Bau
wie die erste Speicherbank hinsichtlich der Datensymbole
und der Paritätssymbole vorhanden ist, dass je zweite
Speicherbänk jeweils ein Speicherwort mit einem entsprechenden Speicherwoft aus der ersten Speicherbank ein
Kodewort bildet und dass je Kodewort das Korrektursymbol des darin enthaltenen Speicherworts aus der ersten
Speicherbänk jeweils ein Speicherwort mit einem entsprechenden Speicherwoft aus der ersten Speicherbank ein
Kodewort bildet und dass je Kodewort das Korrektursymbol des darin enthaltenen Speicherworts aus der ersten
Speicherbank korrigierend arbeitet. So wird die erforderliche
Redundanzmenge noch geringer, weil die zugeordnete Redundanz der Korrektursymbole auf mehrere Speicherbanken
verteilt wird. Es ist klar, dass die Anzahl
zweiter Speicherbanken im Zusammenhang mit der sich vergrSssernden
Möglichkeit zweier gestörter Symbole in einem Kodewort beschränkt gehalten werden muss.
Es ist vorteilhaft, wenn die erwähnten ersten Mittel dazu geeignet sind, eine Paritätsmatrix
mit genau soviel (l) Datenblöcken, wie es Speicherbanken gibt, darzustellen, dass die Datenblöcke (L-1)
Zeilen mit Elementen O, alle eine jeweils voneinander ver-
Zeilen mit Elementen O, alle eine jeweils voneinander ver-
909845/0,8-31
21-1-1979 ·*'· .:'./..."' ' ·.} ""ι ' : ^PHN 9078
Elementen
schieden angeordnete Zeile mit ausschliesslich
1, und jeweils eine entsprechend angeordnete weitere Zeile aus einer Folge aller voneinander verschiedener
Elemente aus dem Galoiskörper GF(2 ) enthalten, wobei die erwähnte Zusatzspalte in Höhe der erwähnten weiteren
Zeile ein weiteres Element das Galoiskörpers GF(2 ) und
im übrigen neben höchstens einem Element mit dem Wert a in GF(2 ) weiter ausschliesslich Elemente O enthält.
Der grösstenteils modulare Aufbau der Prioritätsmatrix gibt eine modulare Verarbeitung beim Multiplizieren mit
der Paritätsmatrix und also die Möglichkeit einer einfacheren Anordnung.
Es ist vorteilhaft, wenn die
erwähnten ersten Mittel dazu geeignet sind, je Datenblock
die erwähnte weitere Zeile der Paritätsmatrix jeweils
als eine untereinander identische Zeile darzustellen. Dies • ergibt auf entsprechende Weise eine weitere Vereinfachung.
Es ist vorteilhaft, wenn
ein Köder vorgesehen ist, dem bei einer Schreibaktion in
einer von einem Adressensignal adressierbaren Speicherstelle
die von diesem Adressensignal ebenfalls adressierbaren Korrekturbits dieser Speicherstelle einschliesslich
der Aenderungsinformation des neu einzuschreibenden Datenworts
zuführbar sind um aus der Gesamtheit dieser Daten eine aktualisierte Menge von Korrekturbits mitzuspeichern.
So kann die Erfindung auch vorteilhaft in einem Lese-Schreibspeicher verwendet werden. Bei einer Schreibaktion
braucht dabei nur noch (wenn kein Fehler aufgetreten ist) die Aenderung des Datenworts für die Neuberechnung
der redundanten Bits berücksichtigt zu werden.
Es ist vorteilhaft, wenn fünfte
Mittel zum Erzeugen von DatenwortänderungsSignalen unter
der Steuerung eines "früheren" bzw. eines "neuen" Datenworts, sechste Mittel zum Multiplizieren der Datenwortänderungssignale
mit einem Vektor j mO, m1...m(K-i)?
zu einem Korrekturänderungsvorsymbol, siebte Mittel zum
Multiplizieren des Korrekturänderungsvorsymbols mit der
909845/0831
ORIGINAL lfePEcSl^
21-1-1979 .*■ „:jg..: :..:Γ ■: ÜIphn 9078
Datenwortnummer zur Bildung eines Korrekturänderungssymbols
und achte Mittel zum Modifizieren des Korrektursymbols des betreffenden Speicherworts mit dem
Korrekturänderungssymbol vorgesehen sind« Auf diese Welse
werden die Korrektursymbole auf systematische Weise aktualisiert.
Es ist vorteilhaft, wenn fünfte
Mittel zum Erzeugen von DatenwortänderungsSignalen unter
der Steuerung eines, früheren bzw. eines neuen Datenworts, sechste Mittel zum Multiplizieren der Datenwortänderungssignale
mit dem Vektor JmO, m1 . . .m(K-1 ) , mj τ
zu einem Korrekturänderungsvorsymbol, siebte Mittel zum Multiplizieren des Korrekturänderungsvorsymbols mit der
Datenwortnummer zur Bildung eines Korrekturänderungssynibols,
achte Mittel zum Modifizieren des Korrektursymbols des betreffenden Speicherworts mit dem Korrekturänderungssyinbol
und neunte Mittel zum Modifizieren des Paritätssymbols des
betreffenden Speicherworts einschliesslich des Korrektursymbols mit dem Korrekturänderungssymbol vorgesehen sind.
Auf diese Weise werden neben den Korrektursymbolen auch die
von den Korrektursymbolen mitbestimmten Paritätssymbole auf systematische Weise korrigiert.
Ausführungsbeispiele der Erfindung werden nachstehend an Hand der Zeichnung und im
Zusammenhang mit einem ebenfalls zu beschreibenden spezifischen Kodierung näher erläutert. Es zeigen
Fig. 1 ein Beispiel des Aufbaus eines Speicherworts,
■ Pig. 2 eine Paritätsmatrix,
Fig. 3 einen Teil einer Speicheranordnung,
Fig. 4 eine Anordnung zur Bildung eines Korrektursymbols,
Fig. 5 den Aufbau eines Galoiskörpers ,
Fig·. 6 eine andere Ausführungsform
als Fortsetzung zur Schaltung nach Fig. 3.
909845/0831
20.1.1979 .ι· . / : : ::·;" ' ;" '-$ΉΝ 9078
Es folgen nacheinander die Beschreibungen des Aufbaus eines Speicherworts, der Verwendung
des Gesetzes der Galoiskörper, einer Paritätsmatrix, zweier Systeme eines Speicheraufbaus, der Bestimmung der Änderung
für ein Korrektursymbol und der zulassigen Grenzen für die Kapazität.
In Fig. 1 ist ein Beispiel der
Konfiguration eines Speicherworts dargestellt. In einem einfachen Beispiel enthält ein Speicherwort 32 Datenbits
(0O.37)·» die auf vier Datenwörter von je acht Datenbits
verteilt sind. In der Figur steht jedes Datenwort auf einer gesonderten Zeile und ist jeweils mit einem auf der gleichen
Zeilen angegebenen Paritätsbit A-D versehen. Weiterhin sind mit dem betreffenden Speicherwort vier Korrekturbits
E-H verknüpft, die auf den vier gleichen Zeilen angegeben sind. Einstweilen sei angenommen, dass die weiteren vier
Zeilen nicht vorhanden sind. Der Aufbau des Speichers wird nicht näher beschrieben. Bei einem Lesezugriff von einem
Datenbenutzer erscheint an einem Ausgang des Speichers ein Datenwort, beispielsweise die Bits 10, 11, 12, 13, 14, I5,
16, 17 und B. Das Bit B signalisiert, ob die Parität der ausgelesenen Bitmenge richtig oder fehlerhaft ist. leb die
Parität richtig, steht das Datenwort, möglicherweise zusammen mit dem zugeordneten Paritätsbit, ungeändert für den
Benutzer zur Verfügung. Wenn die Parität dadurch richtig ist, dass auf der gleichen Zeile zwei Inversionen eines
Bits aufgetreten sind, kann dies auf diese Weise nicht detektiert werden. Die Möglichkeit eines derartigen
Doppelfehlers auf einer Zeile ist durch die beschränkte Bitanzahl auf der gleichen Zeile und durch eine solche
Speicherung gering, dass die Fehler in den Bits einer derartigen Zeile voneinander unabhängig sind. Es ist im
allgemeinen der Fall, wenn diese Bits auf gesonderten integrierten Schaltungen (Chips) bzw. auf getrennten 'Druck-
verdrahtungsplatten erfolgen. Dabei ist die Wahrscheinlichkeit eines gleichzeitigen Auftretens zweier Fehler gleich
dem Produkt der einzelnen Wahrscheinlichkeiten. Auf einem
909845/0831
ORfGlNAL INSPECTED
21-1-1979 -*' ----ν?5-«* ·»* : '* .** PHN 9078
gleichen Chip bzw. auf einer gleichen Druckverdrahtungsplatte
müssen die Fehler nicht unabhängig sein. So kann eine
ganze Einheit ausschliesslich "O"-Signale beim Auslesen
erzeugen (stuck at zero). Die Wahrscheinlichkeit eines
Fehlers ist dabei Ty bei beliebiger Datenspeicherung.
Eine derartige Einheit, ausserhalb deren die Fehler stets,
aber innerhalb deren die Fehler nicht notwendigerweise gegen seitig unabhängig zu sein brauchen, wird ein Isoliergebiet
für Fehler genannt (fault isolation area). Wenn die Parität
falsch ist, bedeutet dies, dass auf der betreffenden Zeile eine ungerade Anzahle (1,3···) von Bitinversionen erfolgt
ist. Der Fall zweier oder mehrerer Inversionen wird inzwischen nicht näher betrachtet. Bei der Detektion eines Fehlers
wird das ganze Speicherwort je vier Datenwörter ausgesehen, also auch alle Bits 0-7» 20-27, 30-37 und die
zugeordneten Paritätsbits A, C, D. Ausserdem werden die mit ■ dem betreffenden Speicherwort verknüpften Korrekturbits
E, F, ö-, H ausgelesen, also insgesamt vierzig Bits,
von denen acht redundant sind. An sich sind -für ein Wort aus vierzig Bits sechs redundante Bits ausreichend, um einen
einzigen Fehler zu korrigieren. Nachstehend wird beschrieben, dass in bestimmten Fällen eine viel grössere
Fehleranzahl mit der dargestellten Redundanz korrigiert werden kann, so dass die benutzte Redundanz nicht Übermassig
gross ist. Andererseits würde für ein einziges Datenwort von acht Bits eine Anzahl von vier redundanten Bits
erforderlich sein, um einen einzigen Fehler korrigieren zu können. In bezug auf diese letzte Organisation ergibt das
besprochene System Redundanzverringerung. Die Bitsteilen der
gleichen Spalte, also beispielsweise h, 14, 24, Jh,
brauchen dabei gar nicht unabhängig in ihrem Fehlerverhalten
zu sein. Dadurch können diese vier also jeweils beispielsweise auf der gleichen integrierten Schaltung oder Printplatte
vorhanden sein. Die dargestellten vier Datenwörter zusammen mit ihren redundanten Bits bilden ein Speicherv/ort.
Der Speicher kann eine Vielzahl dieser Speicherwörter enthalten. Weiterhin ist es möglich, dass die Bits eines Daten-
909845/0831
20.1.1979 "' .-γί-..i ::.:.. .' '■ : PHN9O78
worts nicht unabhängig in ihrem Fehlerverhalten sind, weil sie sich im gleichen Fehlerisolierungsgebiet
befinden, also beispielsweise je zwei und zwei. In Übereinstimmung mit obiger Beschreibung gilt also nach
wie vor, dass je Datenwort nur ein einziger Fehler detektierbar ist. Dies gibt also eine grössere Möglichkeit des
Erscheinens unkorrigierbarer Fehler in der Situation der bereits erwähnten "stuck at".
In Fig. 1 ist so angegegen, dass die "oberen" vier Datenwörter in einer ersten Speicherpbank gespeichert sind. Weiter zeigt Fig. 1 eine zweite
Speicherbank, in der vier weitere Datenwörter mit Datenbits 40 - 47 ··· usw. und zugeordnete Paritätsbits I,
J, K, L gespeichert sind. Für das Lesen dieser Datenwörter
gilt dasselbe wie hinsichtlich einer fehlerfreien Situation herangezogen wurde. In diesem erweiterten Fall jedoch
besteht der Speicher also aus zwei Speicherbänken, wobei die Fehler in den einzelnen Bänken unabhängig sind. Die
vier Korrekturbits E, F, G, H beziehen sich jetzt auf acht Datenwörter von insgesamt 64 Datenbits. Wenn jetzt
ein Fehler in einem dieser acht Datenwörter auftritt, müssen sie alle acht einschliesslieh acht Paritätsbits
A-D, I-L und vier Korrekturbits E-H für die Korrekturausgelesen werden. Für eine grössere Bankenanzahl gilt
^5 gleiches: die Redundanz kann dabei verhältnismässig stets
kleiner werden, aber es zeigt sich, dass die Korrektur mehr Zeit bzw. mehr Geräte erfordert, weil die gleichen Operationen
öfter durchgeführt werden müssen. Die Wahl zwischen den verschiedenen Parametern (Anzahl der Datenwörter je
Speicherwort, Anzahl insgesamt arbeitender Speicherbanken) wird durxh die an den Speicher gestellten Anforderungen
bzw. durch die Möglichkeit eines Fehlers bestimmt. Schliess lieh gilt noch ein bestimmter Zusammenhang zwischen der
Redundanzmenge, die zumindest erforderlich ist, und der
Anzahl von Datenbits je Speicherwort (das eine und das andere noch abhängig von der Grosse der Fehlerisolationsgebiete).
Dieser Zusammenhang wird weiter unten näher
909845/0831
^ INSPECTED
20.1.1979 ' \. " ΐχ' y '*' :*:·* Jphn*"OO78
Wie unten näher erläutert wird,
geben der Inhalt der Paritätsbits und der Korrekturbits
Informationen über den zu korrigierenden Fehlerο Weiter
ist es möglich, dass ein Fehler unter ausschliesslicher Steuerung durch die Korrekturbits korrigiert wird, wobri
die Paritätsbits nur zur Signalisierung dienen. In dierem
Fall gelten bei der Korrektur bekannte Verfahren, aber wird die Verwirklichung der Detektion durch die geringere
^ Anzahl von Datenbits je Datenwort vereinfacht. Für die
bevorzugte Ausführungsform werden die Informationen der
Polaritätsbits bei der Korrektur mit verwendet.
Für die nähere Erläuterung der Erfindung wird vom Begriff "Symbol" ausgegangen» In der
Konfiguration nach Fig. 1 besteht ein Symbol aus den vier
Bits entsprechender Rangordnung innerhalb von vier zusammen-. gehörenden Datenwörtern. So gibt die Reihenfolge der vier
Bits 06, 16, 26, 36, und auch die der vier Bits kO, 50, 6O,
70 ein Symbol an. Die Reihenfolge ist für alle SymboLe
gleich. Jedes Symbol kann hier alle Werte 0000-1111 besitzen. Derartige Vierbitgrössen können als Elemente eines
sogenannten G-aloiskörpers betrachtet werden« Die Bezeichnung
eines derartigen Körpers ist GF (2 ) in diesem Fall mit M = k» Für die Elemente eines Galoiskörpers sind die vier
algebraischen Bearbeitungen definiert und beispielsweise
.in einer Veröffentlichung von T.C. Bartee und D.I. Schneider
"Computation with finite fields" in Information and Control, 6 (1963), S. 79 ... 98 beschrieben. Ein wesentlicher
Unterschied zu den reellen Zahlen ist insbesondere,
dass ein Galoiskörper eine endliche Elementenanzahl betrifft,
in diesem Fall GF(2 ) also sechzehn. In diesem Zusammenhang zeigt Fig. 5 zwei verschiedene Benennungen der
.4.
Elemente von GF (2 ), einerseits als Potenzreiehe von a(o, a ...a ) und zum anderen auf zwei Weisen als eine Binärzahl bzw, die zwei linken und die zwei rechten Spalten.
Elemente von GF (2 ), einerseits als Potenzreiehe von a(o, a ...a ) und zum anderen auf zwei Weisen als eine Binärzahl bzw, die zwei linken und die zwei rechten Spalten.
Das Erzeugen der binären Darstel-
9Q9-845/0831
INSPECTED
20.1.1979 .»·. 1$ .:'. :"-'..:"";" : PKN' 9078
!wagen wird an Hand zweier als Zähler arbeitender Schaltungen
erläutert. Die linke arbeitet mit dem sogenannten primitiven und nicht reduzierbaren Polynom OL + OC + 1.
Jede Stufe 300...303 hat die Funktion des Speicherns und
¥eiterleitens eines einzigen Bits. Weiter bildet die Stufe 302 bei der Aktivierung die Modulo-2-Summe der aus den
Stufen 3OO und 303 erhaltenen Informationen. Die Aktivierung
der Stufen, wodurch jeweils die nächste Stellung erreicht wird, erfolgt durch ein nicht angegebenes gemeinsames
Taktsignal (Stufen 300, 301, 303 arbeiten dabei als 1-Bitschieberegister). So werden zyklisch alle 15 Stellungen
(nicht OOOO) gebildet. (Die Stufe" 300 enthält das bedeutsamste Bit). Auf gleiche Weise arbeitet die rechte
Hälfte dex" Figur nach dem primitiven und nicht reduzier-,
Zt 3
baren Polynom <?£, + ^ + 1 : dies ergibt eine andere
Darstellung. Es sei noch darauf hingewiesen, dass in beiden • Fällen die Grossen a ,a ,a ,a-* voneinander linear unabhängig
sind.
Die Erfindung beschränkt sich
2" nicht auf einen bestimmten Wert von M, dieser kann sowohl
geringer als grosser als vier sein. Für dreiwertige Logik könnte beispielsweise das Galoisfeld GF (3 ) benutzt
werden. Die primitiven Polynome sind jeweils entsprechend verschieden. Nachstehend wird für die Elemente 0
^5 (bitweise OOOO) und a (bitweise OOO1) die verkürzte Bezeich
nung 0 bzw. 1 benutzt. Es sei noch darauf hingewiesen, dass die Bezeichnung der Elemente des Galoiskörpers auch anders
sein kann, ohne dass die Zusammenhänge zwischen den entsprechenden Elementen innerhalb dieses Körpers geändert
wird, so dass sich der Galoiskörper dadurch selbst auch nicht ändert.
In Fig. 2 ist für den vorgeschlagenen Kode ein Beispiel einer Paritätsmatrix (_H 3
gegeben. Jeder Fehler Korrigierende Kode kann vollständig
durch eine derartige Matrix beschrieben werden, denn es gilt, dass für alle Kodewörter ~c^ : c* . [_ H J = 0: die
Kodewörter stehen also orthogonal zu der Paritätsmatrix. Die
909845/0831
'^^!INSPECTED
20*1.1979
Matrix besteht aus Teilmatrizen oder "Blöcken" mit einer
Breite von (κ + 1) Spalten, wobei K die .Anzahl der
Datenbits in einem Datenwort ohne die Redundanz ist. Im
.Beispiel nach. Fig. 1 ist also K = 8. Die Anzahl der
g
Matrixblöcke L entspricht der Anzahl der Speicherbanken, die in Fig. 1 gleich 2 war. Die Elemente der Matrix sind
Elemente des G-aloiskörpers GF(2 ) · Vom ersten Block
enthält die erste Zeile die Elemente " 1", nach obiger Beschreibung
also bitweise als (OÖO1) geschrieben, vom zwei-
ten Block die zweite Zeile usw. Die zweitletzte Zeile des
letzten Blocks enthält die Elemente 1. Die Anzahl der Zeilen ist damit um 1 grosser als die Bankenanzahl des
Speichers und in diesem Beispiel also 3· Die letzte Zeile
aller Blöcke enthält in diesem Beispiel stets die gleichen ο je— 1
Elemente 1,a,a ,...a ,0. In einer anderen Ausführungsform kann diese Reihe auch qO, q1,...q(K-1), 0 sein unter
der Bedingung, dass qi / qj für 0 <C. i>
j -^ IC— 1 und ± ji $ und ausserdem qi ein Element von GF(s ) ist, wie
oben beschrieben wurde» Es ist sogar zulässig, dass jeder
20
Block der Matrix seine eigene spezifische Reihenfolge qO,
q1...q(K-i), O besitzt, wenn auch dies zum anderen zu
einer komplizierteren Anordnung führen könnte. Insbesondere bedeutet obiges, dass ein derartiger "Datenblock" nicht
alle verschiedene Elemente des betreffenden G-aloiskörpcrs
25
zu besitzen braucht, weil die Länge der Datenw'drter dazu zu
" gering ist. Neben den erwähnten Blocken enthält die Matrix
noch eine "allerletzte" Spalte mit den Elementen (O, O5...
0,1). Eine alternative Möglichkeit ist, dass die allerletzte Spalte der Paritätsmatrix wie folgt lautet
. '
(0, Ο,.,.Ο, 1, 1; wobei also zwei Elemente "1" vorhanden
sind, eins auf der letzten Zeile und eins auf einer übrigens beliebigen anderen Zeile. Für die Reihe (1, a,
a ..«a , o) kann also eine andere Folge eintreten. Die
Implikation dieser Wahl für die allerletzte Spalte wird
näher erläutert. So enthält die Paritätsmatrix die Spalten 0, 1, ... $ l(K+1) + 1^ und die Zeilen 0, 1... L. Die
Rangnummern der Spalten werden durch j d(K+i)+b) Γ gegeben,
. 909845/0831
20.1.1979 ·*' V4'-: ' "--" : : PH^"9078
worin d die Bank~(Block-^ nummer und b die Rangnummer
innerhalb einer Bank ist. Die verschiedenen Banken werden also durch d, 0 ^ d ^ L-1 und die Spalten in
. einer Bank durch b, 0 ^ b^ K gegeben. Die allerletzte
5
, Spalte wird durch d=L und b=0 gegeben. Das Beispiel nach Fig. 1 ergibt also eine Matrix aus I9 Spalten und drei Zeilen. Dagegen ist in Fig. 2 auch die Form einer derartigen Matrix für mehrere Zeilen und Spalten dargestellt.
, Spalte wird durch d=L und b=0 gegeben. Das Beispiel nach Fig. 1 ergibt also eine Matrix aus I9 Spalten und drei Zeilen. Dagegen ist in Fig. 2 auch die Form einer derartigen Matrix für mehrere Zeilen und Spalten dargestellt.
Dabei gibt die obere Hälfte dieser Figur den ersten und 10
den zweiten Block, die untere Hälfte den Anfang des dritten Blocks, das Ende des zweiletzten Blocks, den letzten Block
und die allerletzte Spalte. In obiger Beschreibung können die Zeilen der Paritätsanatrix ausgetauscht werden. Der
Effekt dabei ist, dass die Reihenfolge der Elemente des später zu beschreibenden Syndromvektors geändert wird. Zum
anderen können in einem Datenblock die Spalten geändert werden. Dies kommt auf die oben beschriebene andere
Reihenfolge der Elemente a,a...a ,0 heraus. Schliess-
lich können die Datenblöcke ausgetauscht werden. Dies ist
20
der gleiche Effekt wie der Austausch der Zeilen. Das Verschieben der allerletzten Spalte bedeutet nur eine andere
physikalische Ortung der Korrekturbits. Die Paritätsmatrix Γ Η Ί lässt sich jetzt allgemein beschreiben
als i
LH] = L L d(K+i)+b, ±3
worin 0<C.d^L, O^b^K, O^ i<^ L, Ebenso lässt
sich die transponierte Matrix derselben wie folgt schreiben:
[hTJ =[ΐι±, d(K+i)+b]
[hTJ =[ΐι±, d(K+i)+b]
Die Kodewörter kann man betrachten, als enthalten sie L(K+1)+1 Elemente (nach Fig. 1 also 19) oder Symbole, wobei
jedes Symbol ein Element von G-F (2 ) ist.
So enthält ein Kodewort also
3^ jeweils die entsprechenden Speicherwörter aus den verschiedenen.
Speicherbanken. Die Symbole werden nach dem gleichen System wie die Spalten der Paritätsmatrix num-
909845/083T
ORfeUNAU INSPECTED
20,1.1979 .»' \fr .:..,.»" ",." I?HN .9.078
eriert. Es sei jetzt angenommen., dass ein einziges
Element mit dem Index f in bezug auf den richtigen ¥ert gestört ist, was sich wie folgt schreiben lässt:
υ = α (£>
ef.
Hierin bedeutet der Vektor "c^ das ungestörte Kodewort
Hierin bedeutet der Vektor "c^ das ungestörte Kodewort
c* das gestörte Kodewort und~e^. einen Vektor mit ebenfalls
19 Elementen in diesem Beispiel, von denen 18 den Wert 0 besitzen (also auch als 0000 schreibbar, siehe Fig. 5)»
nur das Element mit dem Index f hat die Form des Symbols _e„, das nicht identisch gleich Null ist. An sich ist der
Wert dieses Symbols aus den vier Paritätsbits des betreffenden Speicherworts bekannt, wobei es, wenn alle Bits des
fehlerhaften Symbols selbst auch fehlerhaft sind, den Wert
(1111) hat. Das Exklusiv-Oder-ZeichenSdeutet an, dass die
Elemente (Symbole) von c und e„ bitweise und modulo-2
addiert werden. Weiter kann auf bekannte Weise durch Multiplikation mit der (stets zuvor bekannten) Paritätsmatrix das Syndrom der Störung bestimmt werden :
-s — c
Der Syndromvöctor s ist unabhängig von der Information
des ungestörten Kodeworts ~"c?, weil wie bereits früher
angenommen c . j_Hj immer gleich Null ist und weiter
ausschliesslich lineare Operationen verwendet werden.
Der Syndromvektor 1? besteht aus (in·!) Elementen, im
Beispiel nach Fig. 1 also aus drei Elementen (Symbole) von vier Bits. Die ersten L Elemente (hier also zwei) des
Syndromvektors s werden im Falle einer derartigen beschriebenen Störung alle bis auf eins^identisch gleich
Nxtll sein (OOOO). In diesem Fall hat dieses eine eben den
Wert von e_ und bildeteines der zwei benötigten Daten
für die Fehlerkorrektur (das Störungssymbol). Die Daten,
welches dieser L Elemente ungleich Null ist, wird durch die Banknuminer im Speicher bestimmt, in dem dar Fehler
detektiert wurde, und diese bestimmt damit den Wert von d aus der Formel:
90.9845/0831
ORIGINAL INSPECTED
20.1.1979 ·»'. Vf ·■" :"-..: "■":"' :PHig]5>078
Hierin ist f der Ort der Störung bzw. des Fehlers und d und b die Banknunimer bzw. die Stelle in der Bank. Für die
Bestimmung von f muss auch der Wert von b bekannt sein. Der Wert des letzten Elements (im Beispiel nach Fig. 1
das dritte) des Syndromvektors "IP' wird durch "e^.j*
gegeben. Hierin ist "et. wiederum der Störungsvektor mit.18
Elementen (OOOO) und ein Element, das nicht identisch Null ist, sondern den Wert je „(Symbol) hat. Weiter ist g„ das
Element der unteren Zeile (im Beispiel das dritte) und der Spalte mit dem Rang f der Paritätsmatrix. Aus diesen beiden
Daten £_ und _ef .j*- kann auf bekannte Weise £„ bestimmt
werden, wodurch in der eben angegebenen Formel der Wert von b bekannt ist. Das Bestimmen von g~ auf diese Weise kann
^5 auf verschiedene Weisen erfolgen, beispielsweise durch die
Adressierung eines Speichers mit unveränderbarem Inhalt. Im Beispiel nach Fig. 1 können £„ und .e^·^ je sechzehn
verschiedene Werte haben, so dass eine Speicherkapazität von 256 Wörtern genügt. An den Wortstellen ist der Wert
von b gespeichert, der also von Null (OOOO) bis 8 (IOOO)
läuft.
Eine zusätzliche Wortinformation kann für einen mehrfachen Fehler belegt werden so
dass eine Wortlänge von vier Bits notwendig ist. Ein anderes Verfahren, insbesondere beim Aufbau nach Fig. 2
verwendbar ist, dass e^, wiederholt mit a multipliziert
wird, bfe eine Gleichheit mit e„,g„ entsteht und die
Anzahl der Multiplikationen den Rang der Fehlerposition angibt. Dabei ist es selbstverständlich möglich, dass
SLf JAf schon direkt gleich _β_ ist, so dass die Anzahl Null
der erwähnten Multiplikationsoperationen erforderlich sind. Bei der Detektion eines Fehlers wird also zunächst das
gestörte Kodewort nach an sich bekannten Techniken der Matrixmultiplikation mit der auf geeignete Weise gespeich-
erten Paritätsmatrix multipliziert. Aus diesem Syndromvektor IP werden dann der Tvlrt von d (hier 0 oder 1),
das Störunge symbol ja„ das Produktsymbol des StÖrungssym-
909845/0831
ORIGINAL INSPECTED
20.1.1979 λ- ί .:!.;..Λ.
, *r - 83- -291671Q
bolS.e,, land des (Such—Lpkator) symbols j£„ bestimmt, wobei
die Kombination des Störungssymbols und des Produktsymbols
zusammen den Störungssucher b und damit den Storungsvektor
eC liefern. Die Paritätsmatrix kann dabei in einem
Teil eines als Festwertspeicher ausgeführten SteuerSpeichers
gespeichert sein.
In obiger Beschreibung gilt noch
ein Zusammenhang (der erfüllt werden muss) zwischen der Anzahl der Datenwörter je Speioherwort und der Anzahl von
Bits je Datenwort. Dieser Zusammenhang wird weiter unten beschrieben· Wenn dieser erfüllt ist, kann ein beliebiger
Störungsvektor ~e~.p» der einen Einbitfehler in einem
Datenwort (einschliesslich des Paritätsbits desselben)
zur Folge hat, mit hunderdprozentiger Möglichkeit detektiert
werden. Die allerletzte Spalte der Parität smatrix hat dabei die Form Ο,.,.,Ο, 1. Ein Fehler in einem Korrekturbit
(E, F, G, H in Fig. 1) wird dabei ,pdoch nicht detektiert.
Es ist dabei notwendig, dass der ganze Speicher periodisch gelesen wird und dass dabei die Korrekturbits auf ihren
richtigen ¥ert geprüft werden. Wenn dies unterbleibt, kann ein aufgetretener Fehler mit Hilfe eines selbst auch gestörten
Korrekturbits erneut fehlerhaft lorrigiert werden» Eine Lösung für dieses Problem wird weiter unten teschrieben.
Wenn in obiger Beschreibung nur eine Speicherbank vorhan-
^ den ist, besitzt der Syndromvektor s also nur zwei
Elemente.
Fig. 3 zeigt einen Speicher mit
zwei Banken, Korrekturmöglichkeit für einziges Fehlersymbol je Speicherwort ohne die Deteltion von Fehlern in den
Korrektursymbolen. Die Banken enthalten die Modulen 1-3
bzw. 4-6. Jedes'Datenbit sowie das Paritätsbit eines
Benutzerworts ist auf jeweils einem gesonderten Modul, beispielsweise auf einem integrierten Speicherchip gespeicherte
Der Einfachheit halber gibt die Figur daraus nur eine
Auswahl. Der Modul 1 enthält das erste Datenbit des ersten
Datenworfcs (00 in Figo 1) in der Speichermatrix 10 mit dem
Adressenregister 11 und dem Datenpufferspeicher 12. An.
sich ist dieser Modul von einem herkömmlichen Typ. ¥eiter
909845/0831
/ORIGINAL INSPECTED
21-1-1979
ir ' - ik-
291671Q
sind das erwähnte Adressenregister und der Datenpufferspeicher
nicht unbedingt notwendig·. Durch eine ankommende Adresse auf der Adressenleitung 13 ist ein einziges
Datenbit in der Speichermatrix adressierbar. Weiterhin enthält der Modul 2 das letzte Datenbit des ersten
Datenworts (07 in Fig. i) in der Matrix 20 mit dem Adressenregister
21 und dem Datenpufferspeicher 22. Die zwischenliegenden Modulen sind der Kürze halber forgelassen,
der Modul 3 enthält das Paritätsbit des ersten Datenworts (A in Fig. 1 ) in der Speichermatrix 30) mit dem Adressenregister
31 und dem Datenpufferspeicher 32. Die übrigen Datenwörter des gleichen Speicherworts können auf gleiche
Weise wie das erste Datenwort in den beschriebenen Moduln gespeichert sein, und dies gilt auch für andere Speicher-Wörter.
Die Moduln 1 (...) 2, 3 der ersten Speicherbank
werden zusammen durch die Leitung 80 aus dem Dekoder 9 ausgewählt. Eine logische "1" darauf kann die Funktion
eines Freigabesignals haben. Auf entsprechende Weise enthält der Modul k das erste Datenbit des ersten Datenworts
in der zweiten Speicherbank (4O in Fig. 1), der Modul 5 das letzte Datenbit dieses Datenworts und der
Modul 6 das zugeordnete Paritätsbit. Auch von der zweiten Speicherbank sind die übrigen Moduln wieder fortgelassen.
Die Moduln k (...) 5> 6 und die übrigen Moduln der zweiten
Speicherbank werden zusammen durch ein Signal auf der Leitung 81 aus dem Dekoder 9 ausgewählt, der damit einen
1-aus-2-Kode erzeugt.
Alle betreffenden Moduln können entsprechend aufgebaut sein. Bei der Verwendung von Moduln mit einer Kapazität
von k Kilobits (hOS6 Wörter -von je 1 Bit) und einer
Organisation nach Fig. 1 enthält dabei der Speicher 8192
Datenwörter von je acht Datenb.i. ts plus einem Paritätsbit, die in 20^8 Speicherwörter eingeteilt sind. Der Modul 7
enthält jeweils die Informationen aller Korrekturbits
(E, F, G, H in Fig. 1) je Speicherworfc und hat also eine
Kapazität von 1024 Wörtern von je vier Bits. Es ist selbstverständlich möglich, den Modul 7 aus vier im übri-
909845/0831
"original inspecteo
20.1,1979.»· . ae ,:].,.-* ' \.:'_·* * ·ρη&~9078
gen entsprechenden Elementen aufzubauen, mit je einer
Kapazität von 1Ö24 Wörtern von je T Bit. Für eine grössere
Kapazität kann die Speicherkonfiguration entsprechende Erweiterung bekommen.
- Wenn eine Datenverarbeitungs-
anordnung 83 einen Speicherzugriff haben möchte, übergibt
sie auf der Leitung 84 eine Adresse zum Speürer, die aus
einer Bankadresse (in diesem Beispiel einem Bit) zum Dekoder 9» einer Speicherstellenadresse (in diesem Beispiel
■'" also 10 Bits) auf der Leitung 85 und einer Datenwortnummer
(im Speicherwort) besteht, also in diesem Beispiel zwei
Bits auf der Leitung 86. Das ausgelesene Datenwort erscheint als acht Bits parallel auf der Leitung 87 und das
zugeordnete Paritätsbit auf der Leitung 88. Die Leitungen 87 und 88 aus entsprechenden Moduln der verschiedenen
Banken werden bitweise zusammengenommen, beispielsweise jeweils in einer verdrahteten Oderfunktion. Die Datenverarbeitungsanordnung
83 kann einen herkömmlichen Aufbau haben, beispielsweise kann sie ein zentraler Rechner aus
der Philips P 1000 Reihe sein. In der Datenverarbeitungsanordnung 83 wird auf übliche Weise aus den erhaltenen
neun Bits die Parität bestimmt, beispielsweise mit EXCLUSIV-ODER-Logik. Weiter enthalt die Verarbeitungsanordnung
ein Datenregister 96» in das das ankommende Datenwort
vorübergehend gespeichert wird. Wenn die Parität richtig ist, wird das Datenwort für Weiterverarbeitung
verfügbar. Ist die Parität fehlerhaft, wird die Information der Banknummer und der Datenwortnummer zyklisch
aufgezeichnet, beispielsweise dadurch, dass das Adressen-
register 82 hinsichtlich dieser drei Bits als ein Zähler
eingerichtet ist, der in aufeinanderfolgenden Taktimpulszyklen
weiterzählt. Die (im Beispiel also acht) ankommenden Datenwörter werden alle vorübergehend in die mit dem
Register 96 verbundenen und der Kürze halber niht weiter
angegebenen Register gespeichert. Die zwei Bits auf der Leitung 86 gehen zum Selektor 89 weiter. Solange kein
Fehler detektiert wird, hat dies keine weiteren Folgen,
909845/0831
inspected
20.1.1979 ·'■ 2fT ' :--: : PHN-9078
denn dabei werden möglicherweise auf der Leitung 92
erscheinende Daten von der Verarbeitungsanordnung übergangen .
Die Zehnbitspeicherwortadresse G
geht als Adressensignal zum Modul 7· Venn ein Fehler
detektiert ist, sendet die Verarbeitungsanordnung 83 auf
der Leitung 90 ein Freigabesignal zum Modul 7» wodurch
dabei die dem betreffenden Speicherwort zugeordneten vier
Korrekturbits adressiert werden. Sie werden vorübergehend 10
im Register 91 gespeichert. In der Zwischenzeit empfängt
der Selektor 89 die zyklisch umlaufenden Wortnummerdaten und befördert unter deren Steuerung jeweils eines der vier
Korrekturbits aus dem Register 9I auf der Leitung 92. zur
Verarbeitungsanordnung 83» die aufeinanderfolgend alle 76
15
Bits aus der Andrdnung nach Fig. 1 erhält. Anschliessend erfolgt die Korrektur an Hand der obigen Beschreibung in
folgenden Schritten:
a) Zunächst wird das zu korrigierende Kodewort mit der Paritätsmatrix zum Erzeugen des Syndroms s multipliziert.
Die Paritätsmatrix ist beispielsweise in ein Teil eines Festwertspeichers der Verarbeitungsanordnung 83 gespeichert
und hat folgende Form:
1111111110000000000 H = 0000000001 1 1 1 1 1 1 1 10
23456 7 234*567
1 a a a a a a a 0 1 a a a a a a a 0 1
Durch die Multiplikation entsteht der Syndromvektor.
Matrixmultiplikation ist eine in der Digitaldatenverarbeitung herkömmliche Technik und wird der Kürze halber nicht
näher erläutert.
b) Anschliessend werden die Verte der drei Elemente _s0,
IL^ » £r des Syndromvektors bestimmt, wobei folgende
Möglichkeiten auftreten.
909845/0831
ORIGINAL INSPECTED
1) | φ | 0 | 0 |
2) | 0 | 0 | |
3) | 0 | φ 0 | |
2O | 0 | 0 | |
5) | 0 | ' 0 | |
6) | φ | 0 | £ ο |
7) | 0 | φ 0 | |
8) | 0 | φ ο | |
21-1-1979 "*' . 2Γ$ .!-.....* "-· PHN-
O keine Fehlerdaten (= gut) O Fehler im Paritätsmodul der Bank 0
0 Fehler im Paritätsmodul der Bank 1 ^0 Fehler im Korrekturmodul (7θ)
φ 0 Fehler im Datensymbol Bank 0 ^ 0 Fehler im Datensymbol Bank 1
Oj mehrfacher und unkorrigierbarer φ 0)Fehler
10
10
Der Fall 1) gibt an, dass kein
Fehler vorhanden ist, und kann also beispielsweise als
Ergebnis einer ziusätzlichen Prüfung gefunden -werden. Die
Fälle 2, 3 und h geben an, dass der Fehler nicht in einem
Datensymbol aufgetreten ist und dass das adressierte Datenwort
ohne Korrektur für Verwendung geeignet ist. Die Fälle 5 und 6 geben an, dass das Datenwort korrigiert
werden muss. ¥enn beispielsweise ursprünglich ein Datenwort der Bank 0 adressiert war, kann grundsätzlich der Fall
3, h oder 6 nicht eintreten; auch der Fall h) wird also
nur bei einer Prüfungsoperation gefunden. Nur in den Fällen
5) und 6) muss das Datenwort stets korrigiert werden.
Die Stelle des Fehlers wird durch die Vektorteilung £5r :
s(i,o) = a. gegeben. Diese Teilung ist wiederum bei der
Algebra der Galoiskörper definiert.
c) Wenn der Wert von i bekannt ist und die Verarbeitungsanordnung
benötigt nur das ursprünglich adressierte Datenwort, braucht nur das Bit entsprechend dem Rang
i invertiert zu werden (denn es wurde ein Fehlerbit in diesem Woert detektiert). Wenn das ganze Speicherwort' verwendet
wird, muss das gefundene Symbol e_ beim betreffenden
Datensymbol bitweise und jeweils modulo-2 addiert werden.
Das Ergebnis der erwähnten Korrektur ist einerseits ein korrigiertes Datenwort und
zum anderen ein Korrelcturwort, das beispielsx^eise als
90984 5708 3 t
20.1.1979'*' " 23- -' '-·" : -PHN-9078
sieben Informationen 0 und eine Information 1 auf einer von der erwähnten Grosse i bestimmten Stelle
gespeichert werden kann. Dieses Korrekturwort, das die gleiche Struktur wie ein Datenwort hat, wird gespeichert,
.
(einschliesslich der Banknuminer der Bank, in der der
Fehler aufgetreten war), und ausserdem wird durch geeignete statistische Massnahmen gespeichert, wie oft ein
bestimmtes Korrekturwort aufgetreten ist. Bei einem bestimmten Saldo kann angenommen werden, dass ein bestimmter
Modul mit Gewissheit den Fehler ergibt, und kann das Korrekturwort den Zustand des vorgegebenen Korrekturs
bekommen, um den Fehler damit bei seiner Detektion in einem Datenwort direkt zu korrigieren. Dies erspart
selbstverständlich die Zeit, die sonst dafür verwendet
15
werden müsste, die übrigen Datenwörter auszulesen und den bereits erwähnten Syndroinvektor zu bestimmen.
Wenn zum anderen in der Fig.3
ein neues Datenwort geschrieben werden muss, empfängt die Leitung 84 der Verarbeitungsanprdnung wiederum eine Dreizehnbitadresse,
die aus Banknummer, Speicher, Wortadresse und Datenwortnummer besteht. Die JLese/Schreibsteuerung
des Speichers ist nicht getrennt dargestellt. In einem ersten Arbeitsschritt wird das an der betreffenden Daten-._
wortstelle gespeicherte Datenwort ausgelesen, auf einen
Fehler geprüft und wenn nötig auf gleiche Weise korrigiert^
wie bereits erläutert wurde, und nach möglicher Korrektur im Achtbitregister 9h gespeichert. Dieses Register kann
ausser dem dargestellten Eingang auch {oder sogar ausschliesslich)einen
Eingang aufweisen, der mit einem Aus-
gang des Registers 96 in der Benutzeranordnung 83 verbunden
ist, um von da an das korrigierte ausgelesene Datenwort zu erhalten. Der Kürze halber ist diese letzte Verbindung
nicht angegeben. Ausserdem werden, auch wenn im O5 ausgelesenen Datenwort kein Fehler detektiert ist, unter
der Steuerung eines Freigabesignals auf der Leitung 90 die
vier Korrekturbits des betreffenden Worts aus dem Modul 70 ausgelesen und in das Register 91 geschrieben. An-
9098A5/0831
20.1.1979
schliessend wird'die Information des neu einzuschreibenden
Datenworts über die mehrfache Leitung 93 auf die entsprechenden Moduln übertragen und ausserdem auf den
Paritätsbitgenerator 79» der auf Grund der erhaltenen Datenbits ein Paritätsbit erzeugt, was wiederum auf
herkömmliche Weise mit Exklusiv-Oder-Logik erfolgen kann.
Das Paritätsbit wird mit den Datenbits in den betreffenden und ebenfalls (über die Leitung 84) adressierten Modul 3
bzw. 6 eingeschrieben. Gleichzeitig gelangt die neue Information zusammen mit den noch im Register 9h gespeicherten
alten Informationen zum bitweise arbeitenden Modulo-2 Addierer 97· Das Ergebnis (8 Bits) gelangt an den
■"- Symbolgenerator 95 und wird darin in ein Vierbit symbol
umgewandelt, wie weiter unten an Hand der Figur 4 näher erläutert wird. Diese Umwandlung erfolgt dadurch, dass das
Dätenwort (WO...W7) mit einer aus den Grössten (a ...a ) aufgebauten Matrix multipliziert wird. Das Ergebnis ist
ein Vierbitsymbol aus GF (2 )· Dieses Symbol wird im Multiplizierer 98 mit einem weiteren Vierbitsymbol (a )
multipliziert, wobei der Wert der Exponenten j durch die Datenwortnummer im Speicherwort bestimmt wird, was dem
Multiplizierer 98 über die Leitung 86 zugeführt wird, und
aus dem die Modifikation für die Korrekturbits hervorgeht?
Diese Modifikation wird im Element 99 bitweise und Moduäio-2 zum Inhalt des Registers 91 addiert; das Endergebnis
wird anschliessend in den Modul 7° (neu) geschrieben, wobei die Adressierung noch durch das Signal auf dar
Leitung 85 versorgt wird. Auch hinsichtlich des Moduls 70
ist die Lese-Schreibsteuerung nicht getrennt dargestellt.
Nachstehend wird ein anderes Ausführungsbeispiel gegeben, bei dem auch die Korrekturbits
mitkontroliiert werden. Es wird folgende Paritätsmatrix
verwendet, bei der wiederum das einfache Beispiel nach Fig. 1 gilt:
,. - ■
11 1 11 1 1 1 1 0000 0 0 0 0 0 Q
a7 a8OJJ
909845/0831
INSPECTED
0 | 0 | 2 | a | 0 | 3 | a | 0 | 4 | a | 0 | 5 | a | 0 | 6 | a | 0 | 7 | a | 0 | 8 | a | 0 | 1 | 1 | 2 | a | 1 | 3 | 1 | 4 | a | 1 | 5 | a | 1 |
a | 0 | a | a | a | |||||||||||||||||||||||||||||||
21-1-1979 ;O ■·-■■" · PHN 907s
Insbesondere tritt in den Datenblöcken in der letzten Zeile das Element a nicht mehr auf, weil die Elemente
mit a multipliziert sind. Weiter enthält die neunzehnte Spalte auf der zweiten Zeile (es kann selbstverständlich
auch die erste Zeile sein) das Element 1, wodurch gleichsam die Korrekturbits einen Teil der Speicherbank 1 bilden.
1 8}
Wie vorausgesetzt kann statt der Potenzreihe /a....a / eine
andere Folge der Elemente von GF (2 ) genommen werden: dies gilt auch für die zweite "1" in der allerletzten Spalte
(O1 1), die faktisch das Symbol a darstellt, wobei auch eine andere, im zugeordneten Datenblock einmalige Exponente
auftreten darf. Der Vorgang bei der Fehlerdetektion ist zunächst gleich, wenn auch die drei Elemente (s_ , s_ , s_r)
des Syndromvektors s jetzt folgende Bedeutungen haben:
d Λ eil c τ* -
- 1)O O O keine Fehlerdaten
2) φ O O O Fehler im Paritätsmodul der Bank O
3) 0^0 0 Fehler im Paritätsmodul der Bank 1
4)^O O J^O Fehler im Benutzermodul der Bank 0
5) 0 φ Ο φ O Fehler im Benutzermodul der Band 1
oder Fehler im Korrekturmodul
6) 0 0 φ 0\ mehrfacher und unkorrigierbarer
7) φ 0 φ 0 φ OV
2S 8) / 0 φ 0 φ θ) Fehler
Hier gelten weiter die'gleichen
Erwägungen und Operationen wie beim bereits beschriebenen
Beispiel. Der Unterschied ist insbesondere, dass der Fall 6 jetzt nicht getrennt einen Fehler im Korrekturmodul
signalisiert. Das geänderte Signalisierungssystem hat selbstverständlich Folgen für die Anordnung, wie sie in
Fig. 3 dargestellt ist, und eine dazu erweiterte Anordnung ist in Fig. 6 dargestellt. Jn diesem Beispiel werden die
Paritätsbits der Bank 0 (Matrix 30) auf der Basis des Dateninhalts der betreffenden Datenwörter bestimmt, aber
für die Bank 1 sind die Korrekturbits für den Wert des
909845/0831
20.1.1979 ?6*: "" Pfifr 9078
Paritätsbits (es ist eben die "1" in der zweiten Zeile
und in dear neunzehnten Spalte der obengegebenen Tabelle) mitbestimmend sind. Die Korrekturbits selbst werden
nicht durch den Yert der Paritätsbits mitbestimmt. In der Fig. 6 ist der Ausgang des Paritätsbitgenerators
79 also nur mit dem Modul 3 (Matrix 30) der Bank 0 verbunden. Weiterhin ist in Fig. 6 die Serienschaltung
der Elemente 94, 97, 95, 98, 99 und die der Elemente 91
und 89 entsprechend der Fig. 3· Die Behandlung der Pari-10
tätsbits in der Bank J ist jedoch jetzt wie folgt :
Venn ein neues Datenwort gespeichert werden muss, wird wieder im Element 97 die
bitweise Exklusiv-Oder-Funktion der Datenbits des alten
und des neuen Datenworts gebildet. Wie bereits beschrie-15
ben wurde, werden mit Hilfe der Serienschaltung der Elemente 951 98 und 99 die möglicherweise geänderten
Korrekturbits des betreffenden Speicherworts hier im Modul 70 gespeichert. Statt des Moduls 6 gibt es für die
Speicherung der Paritätsbits der Bank 1 eine Matrix 6OA mit dem Adressenregister 6IA. Diese hat die gleiche
Kapazität wie die bereits erwähnte Matrix 60, aber jetzt nicht die dort als Beispiel erwähnte Konfiguration von
4096 Wörtern von je 1 Bit, sondern die gleiche Konfiguration
wie die Matrix 70, also beispielsweise 1024 Wörter
25
von je vier Bits. Sie sind jeweils wortweise adressierbar
durch die zehn Adressenbits auf der Leitung 85» Bei
einer Leseaktion in der Bank 1 werden unter der Steuerung eines Frexgabesignals auf der Leitung 81 die betreffenden
vier raritätsbits aus der Matrix 6OA und auch die vier
3Q
Korrekturbits aus der Matrix 70 ausgelesen. Diese acht
Bits werden in den entsprechend aufgebauten Registern 91 und 101 vorübergehend gespeichert. Hinsichtlich der
Matrix 70 ist die Funktion der Leitung 90 jetzt von der
oc Leitung 81 übernommen worden. Die Selektoren 89 und 102
erhalten die zwei Adressenbits auf der Leitung 86 und gewähren bei einer normalen Leseaktion nur ein Paritäts-
90984B/0831
20.1.1979 W ΡΗίί 9078
ff " PHN 9078
33. 291671Q
bit auf der Leitung 88 und ein Korrekturbit auf der Leitung 92 zur Benutzeranordnung 83. Diese Anordnung bestimmt
auf gleiche Weise, wie bereits beschrieben wurde, die Parität des ausgelesenen 8-Bit-(Bank θ) bzw. 9-Bit-(Bank
i)-¥orts. Ist die Parität einwandfrei, wird die Information für Weiterverarbeitung verfügbar. Beim Lesen
aus der Bank 0 wird für die Berechnung der Parität die gleiche Schaltung benutzt, wobei ein blindes Korrekturbit
simuliert wird, das die Parität nicht beeinflusst. Wenn
10
die Parität falsch ist, werden wiederum mit Hilfe zyklischer Änderung der Adressen auf den Leitungen 80, 81, 86
die 76 Bits des Speicherworts ausgelesen und wird die
Korrektur wie'ibereits beschrieben ausgeführt (unter Berücksichtigung
der geänderte-.. Paritätsmatrix) .
15
Bei der erwähnten Speicherung
eines neuen Benutzerworts werden immer die Matrizen 70
und 60A' zunächst dadurch ausgelesen, dass ein Signal in diesem Sinne auf der Leitung 9QA. der Verarbeitungsanordnung
im ODER-Gatter 78 mit dem Signal der Leitung 81
20
kombiniert wird. Die ausgelesenen Korrekturbits werden dam
Element 99 zugeführt. Das Element 103 erhält aus dem Element
97 die bitweise Modulo-2-Summe des alten und des-.neuen
Datenworts (8 Bits) und bildet daraus ein einziges Paritätsbit auf gleiche Weise wie das Element 79 (letzteres ist
nur wirksam, wenn das neue Datenwort im Modul 0 Platzfindet) Das Paritätsbit des Elements IO3 wird, im Element 104 mit
der G-rösse a"-1 multipliziert. Die Exponente j hat den
gleichen Wert wie die Datenwortnummer im Speiherwort (also 0...3), und die Grosse a ist damit in Fig. 2
.j
gegeben. Alle Grossen a (0 < j ^ 3) sind wie bereits erwähnt
untereinander linear unabhängig. Der Wert von jwird als das Zweibitsignal (OO, 01, 10, 11) auf der Leitung 86
zugeführt. Die zwei Adressenbits werden zu einem Vierbitsymbol umkodiert. Wenn das Paritätsbit "0" ist, ist das
Ergebnis der Multiplikation selbstverständlich »0000». Das Gatter 106 wird durch die Leitung 81 gesteuert und ist
undurchlässig, wenn das neue Datenwort für die Bank 0
909845/0831
21-1-1979 - ?β ,:.:...· "..- PHKT-'9078
. 33. 291671Q
bestimmt ist. Das Element 105 erhält dabei selbstverständlich
"0000". Der Modul 105 ist ein Vierbit-Modulo-2-Addierer und erhält aus dem Element 98 den einzuführenden Vierbitänderungsvektor
für die Korrekturbits, der zum Vierbitänderungsvektor für die Parität der Datenbits
addiert wird, wie sie im Element 1θ4 bestimmt war. Dies gibt den insgesamt einzuführenden Aenderungsvektor für die
Paritätsbits. Das Element 100 ist ein Vierbit-Modulo-2-Addierer und zählt die erwähnte Aenderung zu den Paritätsbits
des Registers 101, so dass die neuen Paritätsbits für die Matrix 60 a zum Einschreiben verfügbar werden. Die
Lese-Schreibsteuerung für diese Matrix ist der Kürze halber nicht angegeben.
In Fig. 4 ist ein Beispiel einer Schaltung dargestellt, die beim Einschreiben eines neuen
oder geänderten Datenworts an einer Wortstelle einer Speicherstelle
die zu dieder ¥ortstelle gehörende Korrekturinformation
aktualisiert. Die Schaltung ist für das einfachere Beispiel nach Pig. 3 aufgebaut und enthält
daraus insbesondere die Elemente 97» 95» 98 und 99· Die weiteren
Elementen der Schaltungen nach Fig. 3 und 6 zum Erzeugen der Korrektur/-Paritätsbits haben teilweise
einen herkömmlichen Aufbau und teilweise einen entsprechenden Aufbau wie in Fig. 4 dargestellt. Die Schaltung
enthält dreiundzwanzig Exklusiv-ODER-Gatter 201...223
und vierundzwanzig NICHT-UND-Gatter 224.... 247. Ein ηβχΐββ
Datenwort wird bitweise den Eingängen 248...255 zugeführt.
Die Speicherwörter werden als gemäss Fig. 1 aufgebaut angenommen. Zusammen damit wird das bisher gespeicherte Datenwort
bitweise den Eingängen 256...263 zugeführt. Jedes Exklusiv-ODER-Gatter der Folge 201...208 erhält also zwei
Bits entsprechender Bedeutsamkeit. Auf diese ¥eise ist das Element 97 gebildet. Venn der zuvor leere Speicher
gestartet wird, ist das gespeicherte Dateiiwoert 0....0.
Die bei der Kodierung benutzte Paritätsmatrix wird wie
folgt geschrieben:
909845/0831
ORlGINAU INSPECTED
20.1.1979 · £9 - "-..-":'" . PFW 9078
, 291671Q
- 1 1 1 ι 1 1 1 1 ιοοοοοοοοοοΤ
Η=0000000001 1 1 1 1 1 1 1
gO gi g2 g3 gh g5 g6 g7 O gO g1 g2 g3 gk g5 g6 gj O
-
Jedes Kode-(Speicher)-¥ort entspricht : c · Hl= O,
Für die ersten zwei Matrixzeilen
bedeutet dies, dass die Parität des Datenworts ein-10
■ schliesslLch des Paritätsbits gerade sein muss« Für die
Bestimmung der von der dritten Zeile der Matrix gestellten Bedingung sei daran erinnert, dass jedes Element des
Galoiskorpers GF (2 ) = GF (2 ) geschrieben werden kann als eine lineare Kombination der ersten vier Elemente
0123 / h\
a , a , a , a"ron GF (2 ; oder in dieser Hinsicht jeder
k\ vier beliebigen Elemente von GF (2 ), wenn nur diese vier
ein linear unabhängiges System bilden. Es können also zum Beispiel die Vierbitelemente c(9a+b) des Kodeworts c>
wie die folgende Summe mit j als Variable wie folgt geschrieben werden :
c (9a+b) = 2L c(9a+b, j).a^ (i)
j=0
Das Korrektursymbol wird gefunden als
1 7
£ (18) = y y— c (9a+b)._s(b) (2)
a=0 b=0
Substitution von (1) in (2) ergibt :
17 3.
c (18) = JT £ J aJ.c(9a+b,j).£(b) =
a=0 b=0 j=Ö
1 3 7
21 Σ ad Σ. c(9a+b,j).g(b)
a=0 j=0 b=0
909845/0831
ORIGINAL INSPECTED
20.1.1979 ■-· #6 '
*" :ΡΗΝ:907β
Dies bedeutet, dass die Summe der Beiträge der einzelnen
Datenwörter zu den Korrekturbits die Korrekturbits bilden. Dies ergibt selbstverständlich eine verhältnismässig einfache
Schaltung, weil beim Ersetzen eines alten Datenworts durch ein neues nur diese zwei Reihen von Bits zu berücksichtigen
sind. Der Beitrag zum Datenwort mit der Nummer j der Speicherbank mit der Banknumaer a ist also
b=0
Beim Einschreiben eines neuen Datenworts braucht nur der Beitrag des Unterschieds zwischen dem alten und dem neuen
Datenwort zu den Korrekturbits addiert zu werden, die schon vorhanden sind, weil alle Beziehungen linear sind. Die
erwähnte Summierung
ί. ί'
b=0 L
alt
neu
wird im Element 95 durchgeführt. Wenn wir nämlich öle
Ausgangssignale der Gatter 208...201 in Fig. k in dieser
Reihenfolge mit wO.....w7 bezeichnen, so wird daraus
folgende Multiplikation gebildet:
vO \ v1 v2 W3/
O | O | O | 1 | O | O | / wO > |
w6
^ W7^ |
|
1 | O | O | 1 | 1 | O | wi | ||
(Λ | O | 1 | O | O | 1 | T | w2 | |
O | O | O | 1 | O | O | 1 |
1 , w3
Ϊ |
|
O | l· | b | b | b | > | a | O | |
\0 | ||||||||
Ii ο
a |
λ) I W5 | |||||||
I» | ||||||||
zum Vierbitsymbol v. Vom Galoiskörper sind die ersten
acht Elemente / O nach der linken Hälfte der Fig.
benutzt. Es folgt daraus direkt:
909845/0831
20.1.1979 >* ·: " ""' : PHN 9Ο78
νθ = wO φ w4 © w7
ν1 = w1 Q w4 © w5 -D w7
v2 == w2 φ w5 φ w6
v3 = w3 φ w6 φ w7
Die ODER-Gatter 209 ... 216 bilden hier folgende Funktionen:
209 : w6 -^ w7 210: w5 D w2
211 j w1 Q w5 212: w4 G) w7
216: vO; 215: v1j 214: v2; 213: v3.
Durch, diese Elemente wird somit
der Symbolgenerator 95 aus der Schaltung nach Fig. 3 verwirklicht.
Das Symbol
ν = (v3 v2 v1 νθ) muss anschliessend mit a multiplizert
werden, der Wert von j ist in Binärform gegeben und wird in diesem Beispiel nicht umkodiert, sondern eine jede der
beiden Bitpositionen der Datenwortnummer steuert eine der
zwei Stufen, aus denen das Element 98 aufgebaut ist.
Venn der Anschluss 264 eine
logische "0" erhält, was eine gerede Datenwortnummer angibt,
sind die Gatter 224, 226, 228, 230 durchlässig und wird die Grosse ν über die entsprechenden Gatter 232, 233, 23k,
an die zweite Stufe ungeändert weitergeleitet.
Wenn der Anschluss 204 eine
logische "1" erhält, was eine ungerade Datenwortnummer angibt,
sind die Gatter 225, 227, 229, 231 durchlässig, und
„Q die Grosse ν wird mit dem Symbol a. multipliaert:
(v3, v2, v1, vO) xa= (v2, vi, νθφν3, v3),
wobei die erwähnte Exklusiv-ODER-Funktion durch das Gatter
217 gebildet wird und die Ergebnisse über die entsprechenden
Gatter 232, 233, 234 und 235 zur folgenden Stufe
weitergeleitet werden.
909845/0831 ORIGINAL INSPECTED
20.1.1979
• or ·
Wenn die Anschlüsse 264 und
265 beide eine logische "0" erhalten, sind auch die
Gatter 236, 238, 240, 242 durchlässig (ein Kreis bezeichnet
einen invertierenden Eingang/Ausgang) und die Grosse ν wird über dies-.entsprechenden Gatter 244, 245,
246, 247 zum Ausgang ungeändert weitergeleitet»
Wenn im letzten Fall jedoch
der Anschluss 265 eine logische "1" empfängt, was die
Datenwortnummer (IO) angibt, sind die Gatter 237» 2.39t
241, 243 durchlässig, und die Grosse ν wird mit dem
Symbol jl multipliziert : (v3 v2 v1 vO) χ a = (v1, vO
© v3, v2 (£} v3, v2) , wobei die erwähnten Exklusiv-ODER-Funktionen
durch die Gatter 218 und 219 gebildet werden und die Ergebnisse über die entsprechenden Gatter
24^, 245, 246, 247 zum Ausgang weitergeleitet.
Wenn die Wortnummer (11) ist, wird auf entsprechende Weise gebildet:
(v3 v2 v1 vO) χ a? = (v1, vO Q v3, v2 φ v3, v2) χ a =
(vO ® v3, v2 φ vj, v1 Φ v2, vi).
20
Auf diese Weise ist der Modul
98 aus der Schaltung nach Fig. 3 verwirlicht.
Die Ausgangssignale der Gatter 244...247 werden bitweise modulo-2 zu den Korrelcturbits
addiert, die an den entsprechenden Eingängen 266, 267,
25
268, 269 erscheinen. Die neuen Korrektubits erscheinen vor
Neueinschreibung an den entsprechenden Ausgängen der
Gatter 220...223. So ist der Modul 99 aus der Schaltung nach Fig. 3 verwirklicht. Die Schaltung nach Fig. 4 kann
noch durch den Zusatz eines Taktimpulssystems synchroni— siert werden, aber dies ist der Kürze halber nicht näher
erläutert.
Nachstehend folgt noch eine
Betrachtung über die verschiedenen Speicherparameter. Es wird folgendes definiert;
X ist die Anzahl der Benutzerbits (nicht redundant) in
einem Speicherwort (in Fig. 1 : 32). T"ist die Anzahl der Bits eines Speicherworts, die in
909845/0831
20.1.1979 ■ /3 ·; " -. FHK 90-7.8
einem einzigen Isolierungsgebiet für Fehler gespeichert wird (in der vorangehenden Beschreibung stets 1,aber
hier werden auch höhere ¥erte betrachtet)
K ist die Anzahl der Datenbits (nicht redundant) in einem Datenwort (in Fig. 1 also 8)
Z Χ/Υ ist die Anzahl der Isolationsgebiete für Fehler,
auf die die Datenbits verteilt sind. L ist die Anzahl der Speicherbanken.
Q ist die Anzahl der Datenbits eines Datenworts, die in '" einem einzigen Isolationsgebiet für Fehler gespeichert
ist,
Wenn zumindest soviel Isolationsgebiete vorhanden sind als ein Datenwort Datenbits besitzt,
werden je Datenwort alle Datenbits in einem einzelnen Isolationsgebiet
gespeichert : Q = 1 und L = Z/K. Fenn die Anzahl der Datenbits je Datenwort zumindest zweimal grosser
als die Anzahl der'Isolationsgebiete ist, wählt man für
eine einzige Bank (L= 1) und Q = K/Z. Manchmal benutzt man aus technologischen Gründen im ersten Fall Q
> 1, dabei ist die Anzahl der Banken : L = Z.Q.K*" .
Die Spalten der benutzten
Paritätsmatrix müssen alle voneinander verschieden sein
Bei einer einzigen Speiaherbank gibt esnur zwei Zeilen in der Paritätsmatrix. Die Elemente sind Elemente vnn GF(2 )
und dafür gibt es 2 verschiedene Möglichkeiten. Bei einer einzigen Speicherbank und wenn die Korrekturbits nicht
auch in die Parität mit hineinbezogen sind, kann die Anzahl der Spalten der Matrix (maximal) 2 + sein, also
17 im Fall nach Fig. 1 ; es bezieht sich dabei also auf
fünfzehn Datenbits, ein einziges Paritätsbit und. ein einziges Korreküurbit. Denn in diesem Fall enthält die Spalte
für die Korrekturbits alle Elemente "0" bis auf eins und bestimmt also abweichend von allen anderen Spalten. Wenn
die Korrekturbits mit in die Parität hineinbezogen sind, kann die Anzahl der Spalten höchstens 2 betragen und ist
die Anzahl der Datenbits also höchstens um jeweils eins niedriger (in Fig. 1 also 14). In der Formel also f
909845/0831
20.1.1979 · ?& '"
" PKN 9-078
'"■39·. ' 29167TQ
K <C 2Μ-1 und K 4 2Μ-2·
Wenn mehrere Bits Q in einem
einzigen.Isolierungsgebiet für Fehler gespeichert sind,
gelten M μ
K < Q (2--T) bzw. K <^ Q-(2 -2).
Es stellt sich hier also heraus,
dass bei einer grosseren Anzahl der Datenwörter je Speicherwort
(Μ grosser) auch die Länge der Datenwörter grosser
sein darf. Gleiches gilt, wenn Q grosser wird.
90^845/08 * INSPECTED
, to·»
Leerseite
Claims (3)
- 29 η 71 ü21-1-1979 λ. PHN 9078PATENTANSPRUIOCMIIC:(I.-' Speicher mit einer erstenSpei clie r bank mit Spe i choi's tcl I en zum jcwei 1 d gen Speichern darin eines einzigen Speiehervorts mit einer ausrei eilenden Anzahl von Bitstellen zum Speichern der Datenbits einet Speicherworts einschliesslich Red^indanzbits , wodurch je Speicherwort jeweils mindestens ein Fehlerbit bei der Detektion dieses Fehlerbits korrigierbar ist, weiter mit einer Zugriffsanordnung mit einem Adresseneingang, einer Datenverbindung für ein adressiertes Datenwort und eine an die Datenverbindung angeschlossene Korrekturanordnung, die aus einem ausgelesenen fehlerhaften Oatenworts an einem Ausgang der Korrektüranordnung "ein korrigiertes Datenwort erzeugt, wobei an die Datenverbindung eine Detektoranordnung für ein aus dem Speicherausgelesenes Datenworfc angeschlossen ein Detektionsausgang der Detektoranordnung an einen Aktivierungseingang der Korrektliranordnung angeschlossen ist, die Speicherstellen für die Speicherwörter jeweils auf eine feste Anzahl je gesondert von einem Datenadressensignal adressierbare ¥ortstellen für Datenwörter verteilt sind, die je zumindest eine einzige Bitstelle für ein Redundanzbit enthalten, wodurch wenigstens ein einziges Fehlerbit in diesem Datenwort von der Detektoranordnung detektierbar ist, von einem Signal am erwähnten Detektorausgang in Zusammenarbeit mit dem erwähnten Datenadressensignal die90.984 5/08 3.!ORIGINAL INSPECTED21-1-1979 2 .:....,·übrigen Wortstellen für Datenwörter des gleichen Speicherworts jeweils einschliesslich derselben Redundanzbits zur gemeinsamen Darstellung des auf diese Weise adressierten vollständigen Speicherworts einschliesslich einer vorgegebenen Anzahl der dem betreffenden Speicherwort zugeordnete und auch in den Speicher geschriebenen Korrekturbits an der Korrekturanordnung adressierbar sind, um eine Korrektur zu aktivieren, dadurch gekennzeichnet, dass eine Wortstelle für ein Datenwort eine redundante Bitposition zur Speicherung eines Paritätsbits enthält, wobei die gemeinsamen Paritätsbits eines Speicherworts ein Paritätssymbol und die Datenbits an entsprechenden Bitpositionen der Datenwörter jeweils ein Datensymbol bilden, dass dem betreffenden Speicherwort genau soviel Korrekturbits zugeordnet sind, wie es Datenwörter zur Bildung eines Korrektursymbols enthält, welche Symbole alle Elemente eines gleichen. Galoiskörpers (Galoisfield) bilden, dass erste Mittel zur Darstellung einer aus Elementen des gleichen Galoiskörpers aufgebauten Paritätsmatrix des Fehlerkorrekturkodes, zweite Mittel zum Multiplizieren eines ausgelesenen, gestörten Speicherworts mit der Paritätstnatrix zum Erzeugen eines Störungesymbols und eines Produktsymbols aus einem Störungesymbol und einem Suchersymbol, dritte Mittel zum Empfangen des Störungssymbols und des Produktsymbols zum Erzeugen eines Störungssuchers und vierte Mittel vorgesehen sind, um mit Hilfe des Störungssymbols und des Störungssuchers das gestörte Speicherwort zu korrigieren.
- 2. Speicher nach Anspruch 1,dadurch gekennzeichnet, dass die erwähnten ersten Mittel zum Darstellen einer Pardtätsmatrix mit einem Datenblock für die K Datensymbole je Datenwort einschliesslich dessen Paritätssymbols in folgender Form:mO m1 m2 m(K-i) Omit einerZusatζspaltefür die Korrektursymbole geeignet sind, dass bei M Datenwörtern je Speicherwort die Elementfolge imO, m1...m(K-i). 0 I aus allen voneinander verschiedenen Elementen des809845/08StORlGfNALlNSPECTED -— ■-■—21-1-1979 3 -5HN-9078Galoiskörpers GF (2 ) besteht, wobei die erwähnte Spalte (1, θ) den ParitätsSymbolen zugeordnet ist und sich die erwähnte Spalte (x, mj) von allen anderen unterscheidet.
- 3. Speicher nach Anspruch 2, wobei5, mj in der als Potenzreihe zu schreibende Menge von Symbolenim Galoiskörper GF (2M) : O, a°, a1 a (2M-i) den Werta hat.h. Speicher nach Anspruch 2, dadurchgekennzeichnet,'dass die erwähnten ersten Mittel zum Darstellen eines Werts χ = 0 geeignet sind.5. Speicher nach Anspruch 2, dadurch gekennzeichnet, dass die erwähnten ersten Mittel zum Darstellen eines Werts χ = a geeignet sind, der von allen Elementen in der Folge {mO, m1...m(K-i)j verschieden ist.6. Speicher nach einem der Ansprüche 2 bis 5» dadurch gekennzeichnet, dass zumindest eine zweite Speicherbank mit entsprechendem Aufbau wie die erste Speicherbank hinsichtlich der Datensymbole und der Paritäts-Symbole vorhanden ist, dass je zweite1 Speicherbank jeweils ein Speicherwort mit einem entsprechenden Speicherwort aus der ersten Speicherbank ein Kodewort bildet und dass je Kodewort das Korrektursymbol des darin enthaltenen Speicherworts aus der ersten Speicherbank korrigierend arbeitet.7. Speicher nach Anspruch 6, dadurch gekennzeichnet, dass die erwähnten ersten Mittel dazu geeignet sind, eine Paritätsmatrix mit genau soviel (L) Datenblöcken wie es Speicherbanken gibt, darzustellen, dass die Datenblöcke (L-I) Zeilen mit Elementen O, alle eine jeweils voneinander verschieden angeordnete Zeile ausschliess lieh mit Elementen 1 und jeweils eine entsprechend angeordnete weitere Zeile aus einer Folge aller voneinander ver- . schiedenen Elemente aus dem Galoiskörper GF (2 ) enthalten, wobei die erwähnte Zusatzspalte in Höhe der erwähnten weiteren Zeile ein weiteres Element des Galoiskörpers GF (2 ) und im übrigen neben höchstens einem Element mit dem Wert a in GF (2 ) weiter ausschliesslich Elemente 0 enthält.90984 5/083121-1-1979 " ^ "*" ·ίΉΝ; 907'Ü8. Speicher nach Anspruch 7» dadurch gekennzeichnet, dass die erwähnten ersten Mittel dazu geeignet sind, je Datenblock die erwähnte weitere Zeile der Paritätsmatrix jeweils als eine untereinander identische Zeile darzustellen.9. Speicher nach einem der Ansprüche 1 bis 8, wobei die Datenverbindung Daten von aussen erhält, dadurch gekennzeichnet, dass eine Kodierungsanordnung vorgesehen ist, der bei einer Schreibaktion in einer von einem Adressensignal adressierbaren Speicherstelle die von diesem Adressensignal ebenfalls adressierbaren Korrekturbits dieser Speicherstelle einschliesslich der Aenderungsinformation des neu einzuschreibenden Datenworts zuführbar sind, um aus der Gesamtheit dieser Daten eine aktualisierte Menge von Korrekturbits mitzuspeichern.10. Speicher nach Anspruch 2, 3 oder h, dadurch gekennzeichnet, dass fünfte Mittel zum Erzeugen von DatenwortänderungsSignalen unter der Steuerung eines "früheren" bzw. eines "neuen" Datenworts, sechste Mittel zum Multiplizieren der Datenwortänderungssignale mit einem Vektor <mG, m1...m(K-1K zu einem Korrekturänderungsvorsymbol, siebte Mittel zum Multiplizieren des Korrekturänderungsvorsymbols mit der Datenwortnummer zur Bildung eines Korrekturänderungssymbols und achte Mittel zum Modifizieren des Korrektursymbols des betreffenden Speicherworts mit dem Korrekturänderungssymbol vorgesehen sind.11. Speicher nach Anspruch 2, 3 oder 5> dadurch gekennzeichnet, dass fünfte Mittel zum Erzeugen von DatenwortänderungsSignalen unter der Steuerung eines früheren bzw. eines neuen Datenworts, sechste Mittel zum Multiplizieren der Datenwortänderungssignale mit dem Vektor -JmO, m1...m(K-i), mjr zu einem Korrekturänderungsvorzymbol, siebte Mittel zum Multiplizieren des Korrekturänderungs vor symbols mit der Datenwortnummer zur Bildung eines Korrekturänderungssymbols, achte Mittel zum Modifizieren des Korrektursymbols des betreffenden Speicherworts mit dem Korrekturänderungssymbol und neunte Mittel zum Modifizieren des Paritätssymbols des betreffenden Speicherworts ein-909845/08 3121-1-1979 · 5 .— ■-- *1>ΗΝ"-9ΟΤ8schliesslich. des Korrektursymbols mit dem Korrekturänderungssymbol vorgesehen, sind.909845/0811
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NL7804674A NL7804674A (nl) | 1978-05-02 | 1978-05-02 | Geheugen met detektie en korrektie van fouten. |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2916710A1 true DE2916710A1 (de) | 1979-11-08 |
DE2916710C2 DE2916710C2 (de) | 1989-03-09 |
Family
ID=19830766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19792916710 Granted DE2916710A1 (de) | 1978-05-02 | 1979-04-25 | Speicher mit fehlerdetektion und fehlerkorrektur |
Country Status (8)
Country | Link |
---|---|
US (1) | US4335458A (de) |
JP (1) | JPS54144146A (de) |
CA (1) | CA1128664A (de) |
DE (1) | DE2916710A1 (de) |
FR (1) | FR2425112B1 (de) |
GB (1) | GB2020866B (de) |
NL (1) | NL7804674A (de) |
SE (1) | SE441790B (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3125048A1 (de) * | 1980-06-30 | 1982-03-11 | Sperry Corp., 10104 New York, N.Y. | Erzeugung von fehlerkorrekturpruefbits unter benutzung von paritaetsbits zur durchlaufkontrolle |
DE3716554C1 (en) * | 1987-05-18 | 1988-08-04 | Markus Wagner | Method and circuit arrangement to secure digital memories |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4464752A (en) * | 1981-11-06 | 1984-08-07 | The Singer Company | Multiple event hardened core memory |
JPS58105500A (ja) * | 1981-11-23 | 1983-06-23 | スペリ・コ−ポレ−シヨン | メモリ駆動回路故障検出システム及び方法 |
JPS58141059A (ja) * | 1982-02-15 | 1983-08-22 | Nec Corp | 多値デイジタル無線通信方式 |
US4506364A (en) * | 1982-09-30 | 1985-03-19 | International Business Machines Corporation | Memory address permutation apparatus |
CA1234222A (en) * | 1984-09-26 | 1988-03-15 | Akira Matsushita | Method and apparatus for error correction |
US4710934A (en) * | 1985-11-08 | 1987-12-01 | Texas Instruments Incorporated | Random access memory with error correction capability |
US4761785B1 (en) * | 1986-06-12 | 1996-03-12 | Ibm | Parity spreading to enhance storage access |
US4958350A (en) * | 1988-03-02 | 1990-09-18 | Stardent Computer, Inc. | Error detecting/correction code and apparatus |
US5172379A (en) * | 1989-02-24 | 1992-12-15 | Data General Corporation | High performance memory system |
US5345582A (en) * | 1991-12-20 | 1994-09-06 | Unisys Corporation | Failure detection for instruction processor associative cache memories |
US5612965A (en) * | 1994-04-26 | 1997-03-18 | Unisys Corporation | Multiple memory bit/chip failure detection |
US6738935B1 (en) * | 2000-02-07 | 2004-05-18 | 3Com Corporation | Coding sublayer for multi-channel media with error correction |
US7246303B2 (en) | 2002-03-25 | 2007-07-17 | Intel Corporation | Error detection and recovery of data in striped channels |
US7062592B2 (en) * | 2002-03-25 | 2006-06-13 | Intel Corporation | Selecting a queue for service in a queuing system |
US7080168B2 (en) * | 2003-07-18 | 2006-07-18 | Intel Corporation | Maintaining aggregate data counts for flow controllable queues |
US20050013251A1 (en) * | 2003-07-18 | 2005-01-20 | Hsuan-Wen Wang | Flow control hub having scoreboard memory |
US7324537B2 (en) * | 2003-07-18 | 2008-01-29 | Intel Corporation | Switching device with asymmetric port speeds |
US7623524B2 (en) * | 2003-12-22 | 2009-11-24 | Intel Corporation | Scheduling system utilizing pointer perturbation mechanism to improve efficiency |
US7324541B2 (en) * | 2003-12-22 | 2008-01-29 | Intel Corporation | Switching device utilizing internal priority assignments |
US7570654B2 (en) * | 2003-12-22 | 2009-08-04 | Intel Corporation | Switching device utilizing requests indicating cumulative amount of data |
US20050207436A1 (en) * | 2004-03-18 | 2005-09-22 | Anujan Varma | Switching device based on aggregation of packets |
US8464093B1 (en) * | 2004-09-03 | 2013-06-11 | Extreme Networks, Inc. | Memory array error correction |
US7538076B2 (en) | 2005-03-28 | 2009-05-26 | The Lubrizol Corporation | Lubricant and concentrate compositions comprising hindered-phenol-containing diester antioxidant and method thereof |
US7843927B1 (en) | 2006-12-22 | 2010-11-30 | Extreme Networks, Inc. | Methods, systems, and computer program products for routing packets at a multi-mode layer 3 packet forwarding device |
DE102006016499B4 (de) * | 2006-04-07 | 2014-11-13 | Qimonda Ag | Speichermodulsteuerung, Speichersteuerung und entsprechende Speicheranordnung sowie Verfahren zur Fehlerkorrektur |
US20080159145A1 (en) * | 2006-12-29 | 2008-07-03 | Raman Muthukrishnan | Weighted bandwidth switching device |
JP5278115B2 (ja) * | 2009-03-31 | 2013-09-04 | 日本電気株式会社 | 冗長符号生成方法及び装置、データ復元方法及び装置、並びにraid記憶装置 |
US8719684B2 (en) * | 2010-08-31 | 2014-05-06 | Qualcomm Incorporated | Guard interval signaling for data symbol number determination |
US8935592B2 (en) * | 2012-11-20 | 2015-01-13 | Arm Limited | Apparatus and method for correcting errors in data accessed from a memory device |
US9600189B2 (en) | 2014-06-11 | 2017-03-21 | International Business Machines Corporation | Bank-level fault management in a memory system |
US9703630B2 (en) | 2015-06-08 | 2017-07-11 | International Business Machines Corporation | Selective error coding |
CN107680629B (zh) * | 2017-10-30 | 2020-08-25 | 中北大学 | 一种基于拉丁方矩阵构造的低冗余矩阵码对存储器进行加固方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2456709A1 (de) * | 1974-01-07 | 1975-07-10 | Ibm | Schaltung zur fehlererkennung und -korrektur |
US4072853A (en) * | 1976-09-29 | 1978-02-07 | Honeywell Information Systems Inc. | Apparatus and method for storing parity encoded data from a plurality of input/output sources |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3851306A (en) * | 1972-11-24 | 1974-11-26 | Ibm | Triple track error correction |
US3893071A (en) * | 1974-08-19 | 1975-07-01 | Ibm | Multi level error correction system for high density memory |
US4077565A (en) * | 1976-09-29 | 1978-03-07 | Honeywell Information Systems Inc. | Error detection and correction locator circuits |
JPS5381036A (en) * | 1976-12-27 | 1978-07-18 | Hitachi Ltd | Error correction-detection system |
-
1978
- 1978-05-02 NL NL7804674A patent/NL7804674A/xx not_active Application Discontinuation
-
1979
- 1979-04-25 DE DE19792916710 patent/DE2916710A1/de active Granted
- 1979-04-26 CA CA326,467A patent/CA1128664A/en not_active Expired
- 1979-04-27 US US06/034,096 patent/US4335458A/en not_active Expired - Lifetime
- 1979-04-27 GB GB7914793A patent/GB2020866B/en not_active Expired
- 1979-04-30 SE SE7903771A patent/SE441790B/sv not_active IP Right Cessation
- 1979-05-02 FR FR7911042A patent/FR2425112B1/fr not_active Expired
- 1979-05-02 JP JP5355179A patent/JPS54144146A/ja active Granted
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2456709A1 (de) * | 1974-01-07 | 1975-07-10 | Ibm | Schaltung zur fehlererkennung und -korrektur |
US4072853A (en) * | 1976-09-29 | 1978-02-07 | Honeywell Information Systems Inc. | Apparatus and method for storing parity encoded data from a plurality of input/output sources |
Non-Patent Citations (6)
Title |
---|
BRICKMAN, N.F. und PARISI, J.A.: Error-Correction System for High-Data Rate Systems. In: IBM Technical Disclosure Bulletin, Vol. 15, No. 4, September 1972, S. 1128-1130 * |
BURNSTINE, D.C. und CARTER, W.C.: Memory Error Correction. In: IBM Technical Disclosure Bulletin, Vol. 10, No. 10, März 1968, S. 1486, 1487 * |
C.V. et al: Detecting storage Address Failures with Data Parity. In. IBM Technical Disclosure Bulletin, Vol. 12, No. 5, Oktober 1969, S. 652 * |
CONZOLA, J.S. und TUNG, L.H.: Serial-Parallel Parity for Error Correction in Read-Write Store. In: IBM Technical Disclosure Bulletin, Vol. 11, No. 4, September 1968, S. 391, 392 * |
FREIMAN * |
FREIMAN, C.V. et al: Detecting storage Address Failures with Data Parity. In. IBM Technical Disclosure Bulletin, Vol. 12, No. 5, Oktober 1969, S. 652 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3125048A1 (de) * | 1980-06-30 | 1982-03-11 | Sperry Corp., 10104 New York, N.Y. | Erzeugung von fehlerkorrekturpruefbits unter benutzung von paritaetsbits zur durchlaufkontrolle |
DE3716554C1 (en) * | 1987-05-18 | 1988-08-04 | Markus Wagner | Method and circuit arrangement to secure digital memories |
Also Published As
Publication number | Publication date |
---|---|
FR2425112A1 (fr) | 1979-11-30 |
JPS6122826B2 (de) | 1986-06-03 |
DE2916710C2 (de) | 1989-03-09 |
SE7903771L (sv) | 1979-11-03 |
GB2020866A (en) | 1979-11-21 |
NL7804674A (nl) | 1979-11-06 |
JPS54144146A (en) | 1979-11-10 |
GB2020866B (en) | 1982-04-07 |
US4335458A (en) | 1982-06-15 |
CA1128664A (en) | 1982-07-27 |
SE441790B (sv) | 1985-11-04 |
FR2425112B1 (fr) | 1986-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2916710A1 (de) | Speicher mit fehlerdetektion und fehlerkorrektur | |
DE2060643C3 (de) | Schaltungsanordnung zur Korrektur von Einzelfehlern | |
DE3689128T2 (de) | Halbleiterspeichergerät mit einer Korrekturfunktion. | |
DE60034403T2 (de) | Halbleiterspeicheranordnung mit einer Fehlerkorrekturkodeschaltung und Verfahren zur Prüfung eines Speichers | |
DE2619159C2 (de) | Fehlererkennungs- und Korrektureinrichtung | |
DE60117066T2 (de) | Verfahren und Vorrichtung zum Überprüfen von fehlerkorrigierenden Codes | |
DE3638632C2 (de) | ||
DE69112624T2 (de) | Mehrfehlerkorrektur eines rechnerspeichers. | |
DE69221045T2 (de) | Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen | |
DE3209679C2 (de) | ||
DE2328869A1 (de) | Verfahren zur pruefung eines digitalen speichersystems sowie zur durchfuehrung dieses verfahrens dienendes selbstpruefendes digitales speichersystem | |
DE3125048A1 (de) | Erzeugung von fehlerkorrekturpruefbits unter benutzung von paritaetsbits zur durchlaufkontrolle | |
DE3128740A1 (de) | Dynamisches halbleiter-speichersystem | |
DE2357168C2 (de) | Schaltungsanordnung für einen Speichermodul | |
DE2225841C3 (de) | Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers | |
DE3727586C2 (de) | Datenverarbeitungsanordnung bestehend aus vier im wesentlichen gleich aufgebauten Moduln | |
DE69904618T2 (de) | Detektionstechnik von speicherabschnittfehlern und einzel-, doppel und triplebitfehlern | |
EP2100308A1 (de) | Verfahren und halbleiterspeicher mit einer einrichtung zur erkennung von adressierungsfehlern | |
DE2144685A1 (de) | Fehlerkorrektursystem für ein digitales Rechenwerk mit zugeordneten Quellenregistern | |
DE2456709A1 (de) | Schaltung zur fehlererkennung und -korrektur | |
DE2513262C3 (de) | Digitale Codeumwandlungsanordnung | |
DE3045609A1 (de) | Verfahren und schaltungsanordnung zur abgabe einer korrigierten datengruppe an eine bestimmungsschaltung | |
DE60215687T2 (de) | Fehlerkorrektion von multibit-baueinheiten mit unbeschränkter erkennung von doppelfehlern | |
DE2415600C2 (de) | ||
DE3851651T2 (de) | Schaltungsanordnung zur Erzeugung von Adressen. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |