DE2456709A1 - Schaltung zur fehlererkennung und -korrektur - Google Patents

Schaltung zur fehlererkennung und -korrektur

Info

Publication number
DE2456709A1
DE2456709A1 DE19742456709 DE2456709A DE2456709A1 DE 2456709 A1 DE2456709 A1 DE 2456709A1 DE 19742456709 DE19742456709 DE 19742456709 DE 2456709 A DE2456709 A DE 2456709A DE 2456709 A1 DE2456709 A1 DE 2456709A1
Authority
DE
Germany
Prior art keywords
bits
data
bit
check
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19742456709
Other languages
English (en)
Other versions
DE2456709C2 (de
Inventor
Douglas Craig Bossen
Vincent Anthony Cordi
Ellis William Glick
Mu-Yue Hsiao
Barry Norman Shiffrin
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2456709A1 publication Critical patent/DE2456709A1/de
Application granted granted Critical
Publication of DE2456709C2 publication Critical patent/DE2456709C2/de
Expired 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/1008Adding 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

j?öbljnger, den 2". November 1974
Anmelderin: . International Business Machines
Corporation, Armonk, N.Y. 10504
Amtliches Aktenzeichen: Neuanmeldung Aktenzeichen der Anmelderin: PO 973 030
Schaltung zur Fehlererkennung und -korrektur
In einem Datenspeichersystem eines Datenverarbeitungssystems !werden binäre Daten gewöhnlich in einer Anordnung von bistabilen Schaltungen gespeichert. Beispielsweise kann ein 1-Bit oder O-Bit dargestellt werden durch das Vorhandensein oder Fehlen einer ■Ladung auf einem Kondensator oder durch Stromleitung in dem einen ■oder dem anderen von zwei miteinander verbundenen Transistoren. ■Im allgemeinen wird ein Element der Anordnung als Speicherzelle bezeichnet. Die Anordnung kann man sich als mit zwei Dimensionen jbehaftet vorstellen, wobei die eine Zeile bildenden Zellen eine jDateneinheit bilden, die Wort genannt wird und die Zellen einer iSpalte eine bestimmte Bitposition in allen Wörtern der Anordnung bilden. Ein Wort hat typischerweise eine kleine Anzahl von Datenjbitstelllen, z.B. 64 oder 128, aber es sind typischerweise viele tausend Wörter in der Anordnung vorhanden. Eine Operation zum Eingeben eines Wortes in; den Speicher wird eine Speicheroperation genannt und eine Operation zum Wiedergewinhen eines Wortes aus dem Speicher eine Abrufoperation.
Da die eine Speicherzelle bildenden Bauteile gelegentlich ausfallen, weisen Datenspeicher üblicherweise Schaltungen zur Fehlerkorrektur auf, die Fehler erkennen oder korrigieren. Ein Code, der später erörtert wird, ist in der Lage, Einzelfehler zu korrigieren und Doppelfehler zu erkennen. Viele der gegenwärtigen
509828/0778
Speichersysteme benutzen eine Form des Fehlerkorrekturcodes nach Hamming, in dem jedes Prüfbit die Antivalenzfunktion eines eindeutigen Satzes von Datenbits ist, so daß zwei Datenwörter, die i ■sich nur in einer Bitposition unterscheiden, deutlich verschiedene Prüfbitmuster erzeugen, aus denen der Ort des unterschiedlichen Bits gefunden werden kann. Das Datenwort, das zu speichern ist, wird codiert, um die Prüfbits zu bilden 4und wird in der Anordnung j zusammen mit seinen Prüfbits gespeichert. Wenn das Wort aus dem Speicher ausgelesen wird, wird der Datenteil erneut codiert und die neuen Prüfbits werden mit den Prüfbits verglichen, die aus ; dem Speicher ausgelesen wurden. Wenn in der Zeit zwischen dem j ursprünglichen Speichern des Wortes und dem späteren Abrufen i kein Fehler aufgetreten ist, stimmen die beiden Sätzen von [ Prüfbits überein. Wenn ein Fehler in einem der Datenbit- oder ; Prüfbitpositionen aufgetreten ist, liefert die Vergleichsopera- ; tion ein Muster von Bits, (das "Syndrom" genannt wird,) das , eindeutig die fehlerhafte Bitposition identifiziert. Wenn zwei j oder mehr Bits fehlerhaft sind, kann das Syndrom nicht richtig gedeutet werden, um jeden der beiden Fehler zu identifizieren und es kann unrichtig anzeigen, daß kein Fehler vorhanden ist. ' Solch ein Doppelfehler kann erkannt (,aber nicht korrigiert) werden durch ein zusätzliches Bit, das die Parität des gesamten Wortes angibt (,da das Wort mit einem Doppelfehler die entgegen- ι gesetzte Parität aufweist als das gleiche Wort mit einem Einzel- j fehler.)
'viele kommerziell verfügbare Speicher haben ein Wort von 72 Bits, jdas aus 64 Datenbits, 7 Bits zur Korrektur von Einzelfehlern und 'einem Bit zur Erkennung eines Doppelfehlers besteht. Solch eine ; JFehlerkorrekturschaltung besitzt 64 Eingänge für die Datenbits des zu speichernden oder aus dem Speicher abzurufenden Wortes und sie erzeugt 8 Prüfbits an ihrem Ausgang. Ein Netzwert von ; Antivalenzgliedern bildet jedes der 8 Ausgangsbits aus den 64 Eingangsbits. Zum Vergleich der beiden Sätze von Prüfbits und \ zur Bildung' der Syndrombits sind zusätzliche Antivalenzglieder vorhanden mit 8 Paaren von Eingängen und 8 Ausgängen. Daher
PO973O3° 609828/0778
erhöhen die Fehlerkorrekturschaltungen die Kosten und die Kompliziertheit des Speichers, sie führen in einigen Situationen Zeit- j !Verzögerungen ein und sie sind eine zusätzliche Quelle von mög- j
. ■■"■".".- i
iliehen Bauteilausfällen in dem Speichersystem. Daher ist es j ein allgemeines Ziel auf dieses Gebiet, modular aufgebaute j :Fehlerkorrekturschaltungen vorzusehen, so daß eine Fehlerkorrekturjschaltung eines Entwurfs für Datenspeicher mit unterschiedlichen i .
!Wortlängen benutzt werden kann.
Als ein Beispiel einer modular aufgebauten Fehlerkorrekturschaltung jist die Fehlerkorrekturschaltung für ein Wort von 64 Datenbits !benutzt worden bei einem Speicher, der eine Wortlänge von 128 Datenbits besaß, durch Teilen des Datenausgangsregisters des Speichers in zwei Teile, von denen jeder 64 Datenbits und acht jPrüfbits besaß. Zwei Fehlerkorrekturschaltungen arbeiten dann junabhängig voneinander, um Doppelfehler zu erkennen und Einzelifehler zu korrigieren in jedem der· 72 Bits aufweisenden Teile ides aus 144 Bits bestehenden Wortes. In einer anderen, in dem
ikanadischen Patent 874 088 beschriebenen Fehlerkorrekturschaljtung wird eine Fehlerkorrekturschaltung für eine bestimmte Wortlänge wie 72 Bits mit einer kürzeren Wortlänge verwendet jdurch Zuführen der gesamten 128 Datenbits zum Eingang einer ■vereinheitlichten Fehlerkorrekturschaltung. Ein Ziel dieser [Erfindung besteht darin, eine Fehlerkorrektur schaltung vorzu-
!sehen, die modulare Einheiten benutzt, aber die minimale Anzahl
jvon Fehlerkorrekturbits liefert. Im Gegensatz zu dem zweiten !Beispiel sieht die Fehlerkorrekturschaltung der Erfindung eine imodulare Einheit vor, die geeignet ist für kleine Datenwörter und isie sieht Mittel vor zur Kombination eines Moduls mit ähnlichen Moduln für ein Wort mit vielfacher Wortlänge. Eine Einheit für eine kleinere Wortlänge ist schneller und weniger kompliziert als eine Einheit für eine größere Wortlänge. (Die Anordnung nach dem kanadischen Patent 874 088 kann benutzt werden für eine Wortgröße, die nicht ein Vielfaches der Datengröße des Fehlerkorrekturmoduls ist.)
PO973O3° 809828/0778
' _ A
Das US-Patent 3 560 9 42 zeigt ein Beispiel einer Fehlerkorrekturschaltung, die von zwei Datenspeichern gemeinsam benutzt wird. Wenn eine getrennte Fehlerkorrekturschaltung für jeden Speicher jvorgesehen wird/ ergänzen die zusätzlichen Schaltungen gewöhnlich nicht einander, sondern erhöhen stattdessen die Wahrscheinlichkeit, daß ein Bauteilausfall auftritt. Die modularen Einheiten lach der Erfindung sind leicht für eine gemeinsame Benutzung anzupassen.
Einige Fehlerkorrekturcodes haben einen modularen Aufbau, der für den Entwurf von Codes für unterschiedliche Wortlängen benutzt wird. Der Fehlerkorrekturcode nach dem US-Patent 3 573 erläutert diese Art des modularen Äufbaus. Für ein Datenwort aus 54 Bits ist eines der Prüfbits die Paritäts-(Antivalenz-)Funktion der ersten 32 Bits des Wortes. Daher wird ein korrigierbarer fehler als in der ersten Hälfte des Wortes befindlich lokalisiert, i/enn das entsprechende Syndrombit den Wert 1 besitzt und er wird als in der zweiten Hälfte des Wortes befindlich lokalisiert, \}^enn dieses Syndrombit den Wert 0 aufweist. Ein anderes Prüfbit
|.st die Paritätsfunktion des zweiten und vierten Viertels des
Wortes, ein anderes ist die Paritätsfunktion des zweiten, vierten, sechsten und achten Achtels des Wortes usw. bis zum letzten Bit des Codes, das eine Paritätsfunktion aller geradzahligen Bits ist. Um den gleichen Code für ein Wort aus 32 Bits vorzugehen, wird das erste dieser Bits zur Korrektur eines Einzel- ::ehlers eliminiert. Um den gleichen Code für ein Datenwort von 128 Bits vorzusehen, werden diese Bits zur Einzelfehlerkorrektur so angeordnet, daß sie das gleiche Prüfmuster für die zusätzlichen 64 Datenbits bilden und ein neues Bit zur Einzelfehlerkorrektur wird vorgesehen, daß die Paritätsfunktion aller 64 Bits der ursprünglichen 6 4 Datenbits ist. Das Antivalenz-Netzwerk umfaßt doppelte Netzwerke für jede Hälfte des Datenwortes aus 128 Bits und eine zusätzliche Stufe von Antivalenzgliedern, die entsprechende Prüfbits der beiden Hälften des Datenwortes kombiniert. Dieses Verfahren wird teilweise in der erfindungsgemäßen Schaltung zur Einzelfehlerkorrektur und Doppelfehlererkennung
po 973 03° 60982 87 0778
5 -
benutzt und wird später genauer erläutert.
Die Schaltung nach der Erfindung benutzt vorzugsweise den im US-Patent 3 623 155 angegebenen Fehlerkorrekturcode.
Der Erfindung liegt die Aufgabe zugrunde, eine Schaltung anzuheben zur Einzelfehlerkorrektur und Doppelfehlererkennung in den Codenwörtern eines Codes mit ungeradem Gewicht, in denen die Anzahl der Datenbits ein Vielfaches einer vorgegebenen Anzahl von Datenbits ist. .
Diese Aufgabe wird durch die im Anspruch 1 definierte Erfindung gelöst:
Im folgenden wird die Erfindung in'Verbindung mit den Zeichnungen näher erläutert von denen zeigt:
Fig. 1 die modulare Fehlerkorrekturschaltung der
Erfindung in einem hierarchischen Speichersystem,
Fig. 2 eine Matrixdarstellung eines Codes zur Korrektur
von Einzelfehlern und zur Erkennung von Doppelfehlern, der ein ungerades Gewicht besitzt,
Fig. 3 eine mathematische Gleichung, die die erfindungsgemäße Schaltung zur Korrektur von Einzelfehlern und zur Erkennung von Doppelfehlern durch eine Matrix der in Fig. 2 dargestellten allgemeinen Art beschreibt,
Fig. 4 eine Matrix die einige der Komponenten der
Gleichung nach Fig. 3 darstellt,
Fig. 5 ist ein Schaltbild der Fehlerkorrekturschaltung
nach der Erfindung.
973 030 60 9 828/0778
2456703
JFig. 1 zeigt ein hierarchisches Speichersystem, das die modularen ;Fehlerkorrektureinheiten der Erfindung benutzt. Seine Bestandteile sind typisch für verschiedene bekannten hierarchische Speichersysteme und es wird nur in dem Ausmaß beschrieben, das notwendig ist, um eine besonders nützliche Anwendung für die Fehlerkorrekturschaltung nach der Erfindung zu verstehen. Das System besitzt ein Register 12, das eine Adresse eines Speicherplatzes für ein Wort empfängt, an dem eine Abruf- oder Speicheroperation erfolgen soll und eine Datenausgangs-Sammelleitung 13, die ein Datenwort aus dem Speichersystem zu anderen Bestandteilen des Datenverarbeitungssystems überträgt. (Die Verbindung zur Lieferung eines Datenwortes zu dem Speichersystem für eine Speicheroperation oder eine teilweise Speicheroperation sind nicht in der Zeichnung dargestellt, aber leicht verständlich). Ein verhältnismäßig kleiner, schneller Datenspeicher 15 der Stufe 1 enthält i Datenworte, die sehr wahrscheinlich von den zugeordneten Kompo- I nenten des Datenver arbei tungs systems benutzt werden und ein i-Datenspeicher 17 der Stufe 2, der verhältnismäßig groß und langsamer ist, enthält Wörter, deren Benutzung durch das zugeordnete System weniger wahrscheinlich ist. Die in Fig. 1 dargestellte allgemeine Anordnung wird vorzugsweise ausgedehnt auf mehrere größere, aber weniger leicht zugreifbare Speicher niedrigerer Stufen. Die Speicher 15 und 17 sind Speicheranordnungen der allgemeinen schon beschriebenen Art. Die Speicher niedriger Stufen können andere Arten der Datenorganisation und der Fehlerkorrekturcodes benutzten, die verschieden sind von den in dieser Erfindung benutzten Codes. Jeder Speicher 15, 17 hat eine Wortlänge von 137 Bits, 128 Datenbits und 9 Bits zur Korrektur von Einzelfehlern und zur Erkennung von Doppelfehlern.
Datenblocks, die im Begriff sind benutzt zu werden, werden von den Speichern niedriger Stufen zu den Speichern der Stufe 1 und 2 übertragen und Blöcke, die nicht mehr benutzt werden, werden von den Speichern der Stufe 1 oder 2 zu den niedrigeren Stufen übertragen; (Ein "Block" ist eine Mehrfachwort-Speichereinheit, die durch einen speziellen Satz von Adreßbits identifiziert
PO973O3° B09828/0778
werden kann, wie später noch erklärt wird.) Wenn ein Block von einem Speicher einer Stufe zu einem anderen übertragen wird, erhält er eine verschiedene Speicheradresse, aber er behält :eine feste Identifizierung, die als "virtuelle Adresse" bezeichnet wird. Die in das Register 12 geladene Adresse ist eine virtuelle Adresse, aber die Adressen, die den Adressierschaltungen 20 und 21 der Speicher .15 und 17 zugeführt werden, sind wirkliche I Speicheradressen. Ein Verzeichnisspeicher 23 der Stufe 1 wird benutzt, um die Beziehung der virtuellen Adresse zu der tatsächlicher Adresse des Datenspeichers 15 der Stufe 1 zu verfolgen und der Verzeichnisspeicher 24 der Stufe 2 dient dazu, um die Beziehung einer virtuellen Adresse zu der tatsächlichen Adresse in dem Datenspeicher 17 der Stufe 2 zu verfolgen. Die Speicher 23 und j 24 haben eine Wortiänge von 64 Datenbits und 8 Bits zur Korrektur von Einzelfehlern und zur Erkennung von Doppelfehlern.
Die Leitungen 26, 27 und 28 zeigen*die Verbindung der Bitstellen des Registers 12 für die virtuellen Adressen mit den Adressieri bestandteilen des hierarchischen Speichersystems. Die Verbin-I düngen der Leitung 27 liefern eine Adresse an die Adressieribestandteile 20 und 21 des Speichers 15 der Stufe 1 und des Speichers 17 der Stufe 2 zur Auswahl eines Wortspeicherplatzes ohne Rücksicht auf die virtuelle Adresse der Daten in den Speichern 15 und 17. (Die Speicher 15 und 17 empfangen die gleiche Anzahl von Adressenbits. Der Speicher 15 kann kleiner sein und empfängt eine Teilmenge der dem Speicher 17 zugeführten Adreßbits.) Die Leitung 28 führt an die Adressierschaltungen 30, 31 des Verzeichnisspeichers 23 der Stufe 1 und des Verzeichnisspeichers 24 der Stufe 2. Der Teil der Adresse, der über die Leitung 28 den Verzeiehnisspeichern 23 und 24 zugeführt wird, identifiziert in den Speichern 15 oder 17 einen aus mehreren Wörtern bestehenden Speicherblock, der den durch die Adreßbits auf der Leitung 27 adressierten Wortspeicherplatz enthält. Häufig, aber nicht immer enthält der Wortspeicherplatz im Speicher 15 oder 17, der über die Leitung 26 adressiert wird, das Datenwort, das durch die virtuelle Adresse in dem Speicher 12 identifiziert wird. Ein in dem Verzeichnisspeicher 23 der Stufe 1 PO 973 030
809828/0778
adressierter Wortspeicherplatz enthält die virtuelle Adresse des Speicherblocks in dem Datenspeicher 15 der Stufe 1 und ein Wort aus dem Verzeichnisspeieher 24 der.Stufe 2 enthält die virtuelle Adresse der Daten in dem entsprechenden Block des Datenspeichers 17 der Stufe 2.
Während eines Speicherzugriffs erscheint die Adresse auf der Leitung 27 am Eingang der Adressierschaltungen 20 und 21, aber ein Ansprechen auf diese Adresse durch die Schaltungen 20 oder 21 wird durch Signale auf den Leitungen 35, 36 verhindert. (Eine Adressierschaltung ist ein Netzwerk von Verknüpfungsgliedern und die Leitungen 35, 36 sind so verbunden, daß geeignete dieser Verknüpfungsglieder gesperrt werden.) Die virtuelle Adresse der in dem Datenspeicher 15 der Stufe 1 adressierten Daten erscheint in dem Speicherdatenregister (SDR) 37 des Verzeichnisspeichers 23 der Stufe 1 und auf einer Leitung 38. In ähnlicher Weise erscheint die virtuelle Adresse des in dem Datenspeicher 17 der Stufe 2 adressierten Speicherplatzes in dem Speicherdatenregister (SDR) 40 des Verzeichnisspeichers 24 der Stufe 2 und auf einer Leitung 41. Eine Vergleichsschaltung 42 vergleicht die virtuelle Adresse im Register 12 mit der virtuellen Adresse auf der Leitung 38 und steuert die Signale auf der Leitung 35, um einen Zugriff zu dem Datenspeicher 15 der Stufe 1 vorzunehmen, wenn der Vergleich positiv ausfällt und die Zugriffsoperation zu verhindern, wenn der Vergleich negativ ausfällt. In ähnlicher Weise steuert eine Vergleichsschaltung 43 die Adressierschaltung 21 für einen Zugriff zum Datenspeicher 17 der Stufe 2, wenn die virtuelle Adresse auf der Leitung 41 des Verzeichnisspeichers 2 4
der Stufe 2 die gleiche ist wie die virtuelle Adresse in dem Re- ! gister 12. Wenn die virtuelle Adresse in dem Datenspeicher 15 der ! Stufe 1 gefunden wird, wird ein abzurufendes Wort von dem Speicherf datenregister 44 zu der Datenausgangs-Sammmelleitung 13 übertragen! In ähnlicher Weise wird ein aus dem Datenspeicher 17 der Stufe 2 labgerufenes Wort von dem Speicherdatenregister 46 zu der Daten-Ausgangssammelleitung 13 übertragen.
■Eine Fehlerkprrekturschaltung 48 korrigiert Einzelfehler und PO973O3° 609828/0778
erkennt Doppelfehler in Wörtern, die aus dem Verzeichnisspeicher 24 der Stufe 2 abgerufen wurden oder in ihm zu speichern sind. i Die Fehlerkorrekturschaltung 48 enthält eine modulare Fehlerkor- j rektureinheit 49 und eine gemeinsame Logikeinheit 50. Die modulare! Fehlerkorrektureinheit 49 ist identisch' mit anderen modularen Fehlerkorrekturexnhexten, die in Fig. 1 dargestellt sind und die gemeinsame logische Einheit 50 enthält zusätzliche Schaltungen, um die modulare Einheit anzupassen, damit sie den Verzeichnis-.speicher 24 der Stufe 2 betreibt. Die gesamte Schaltung 48 wird • zuerst beschrieben und es ist leicht ersichtlich, daß viele Komponenten in der modularen Einheit 49 lokalisiert sind, daß einige Komponenten spezifisch sind für die Fehlerkorrekturchaltung des Verzeichnisspeichers und sich in der gemeinsamen Logikeinheit 50 befinden und daß einige Komponenten mit den meisten oder allen Fehlerkorrekturschaltungen benutzt werden und sich j entweder in der modularen Einheit 49 oder in der gemeinsamen Logikeinheit 50 befinden.
I -
j Die Fehlerkorrektureinheit 48 enthält ein Netzwerk aus Antivalenzi Gliedern, das die 64 Datenbits und die 8 Bits zur Korrektur von Einzelfehlern und zur Erkennung von Doppelfehlern aus dem Speicher]-' ! datenregister 40 empfängt und 8 Bits zur Korrektur von Einzel- ! fehlern und zur Erkennung von Doppelfehlern erzeugt, (die später j als C1-C8 bezeichnet werden) welche mit dem Datenwort in dem Verzeichnisspeicher 24 der Stufe 2 gespeichert werden, 8 Paritätsbits (P1-P8) und 8 Syndrombits (S1-S8) , die den Ort des Einzelfehlers und das Vorhandensein eines Doppelfehlers anzeigen. Die Fehlerkorrekturschaltung 48 besitzt auch einen Decodierer, der I die 8 SyndrombitS; empfängt und ein aus 6 4 Bit bestehendes Aus- ! gangswort erzeugt, das das Datenbit identifiziert, an dem der Einzelfehler aufgetreten ist. Es ist auch eine Einrichtung zum
j Erkennen des Auftretens eines Doppelfehlers vorgesehen und zum !signalisieren an das zugeordnete System, daß ein solcher Fehler !aufgetreten ist. Gemäß der Erfindung können viele, dieser Kompo-I nenten als integrale Komponentenbaugruppe hergestellt werden, !die durch eine einzige Teilnummer identifiziert wird und in i einer Vielfalt von Anwendungsfällen verwendet wird und nur wenige
PO 973 030 .
B 0 9 8 2 8 / 0 7 7 β
dieser Komponenten werden speziell angepaßt an die besondere Anwendung als Fehlerkorrekturschaltung. Das Netzwerk aus Antivalenzgliedern hat viele Komponenten und wird vorteilhaft vollständig oder nahezu vollständig in der modularen Einheit 49 untergebracht. Komponenten, die nur für gelegentliche Anwendungen benötigt werden, können natürlich in der modularen Einheit 49 untergebracht und so verbunden sein, daß sie nur arbeiten, wenn sie benutzt werden müssen. Die Technik des Packens Von Schaltungen entwickelt sich rasch und es läßt sich leicht eine vorteilhafte Zuordnung der Schaltungskomponenten zu der modualren Fehlerkorrektureinheit oder der gemeinsamen logischen Einheit finden.
Die Fehlerkorrekturschaltung 52 für den Datenspeicher 17 der Stufe 2 enthält zwei modulare Fehlerkorrektureinheiten 55, 56 und eine gemeinsame logische Einheit 57. Die gemeinsame logische Einheit 57 besitzt Komponenten zur Ausführung der allgemeinen Funktionen, die bei der Beschreibung der gemeinsamen logischen Einheit 50 erklärt wurden und sie enthält außerdem eine Einrichtung zum gemeinsamen Betrieb der modularen Fehlerkorrektureinheiten 55, 56 in einem 9 Bits umfassenden Code zur Korrektur von Einzelfehlern und zur Erkennung von Doppelfehlern. Dies wird später genauer erläutert. Eine Fehlerkorrekturschaltung 59 wird gemeinsam benutzt durch den Verzeichnisspeicher 23 der Stufe 1 und dem Datenspeicher 15 der Stufe 1. Sie enthält zwei modulare Fehlerkorrektureinheiten 60, 61 und eine gemeinsame logische Einheit 62. Die gemeinsame logische Einheit 62 ist ähnlich der gemeinsamen logischen Einheit 57 des Datenspeichers 17 der Stufe 2 und kann außerdem eine Vorrichtung enthalten, damit die Fehlerkorrekturschaltung 59 gemeinsam von dem Verzeichnisspeicher 23 der Stufe 1 und dem Datenspeicher 15 der Stufe 1 benutzt werden kann (oder die Speicher 15, 23 werden nacheinander betrieben, um einen Konflikt zu vermeiden). Der Betrieb der Fehlerkorrekturschaltung 59 im Zeitteilverfahren für die Speicher 15, 23 ist besonders vorteilhaft, da der Speicher 15 auf die Adresse im Register 12" erst nach der Vergleichsoperation anspricht, die mit dem aus dem Speicher 23 abgerufenen Wort durchgeführt wird. Der Zugriff zum Datenspeicher 17 der Stufe 2 und zum Verzeichnis-.
PO 973 030
B0 9828/0778
speicher der Stufe 2 erfolgt zur gleichen Zeit in einer Operation, die vier Wörter von dem Speicher 17 abruft, von denen eines !das mit der virtuellen Adresse im Register sein kann, was durch jdie Vergleichsschaltung 43 entschieden wird. Daher macht das hierarchische Speichersystem nach Fig. 1 vorteilhaften Gebrauch von dem modularen Aufbau der Fehlerkorrekturschältung. Im folgenden wird die Struktur des Codes zur Korrektur von Einzelfehlern und zur Erkennung von Doppelfehlern näher betrachtet, der den Aufbau der modularen Fehlerkorrektureinheit bestimmt.
In der Matrix der Fig. 2 identifizieren die Spaltenüberschriften acht Datenbytes zu je acht Bits, B1-B8 und einen Satz von acht Prüfbits. Ein aus dem Speicher 23 oder 24 ausgelesenes Wort mit 72 Bits kann aufgefaßt werden als aus 64 Datenbits bestehend und aus acht, Prüfbits, die in der Reihenfolge der Spaltenüberschriften in Fig. 2 angeordnet sind. Die Zeilenüberschriften S1-S8 identifizieren die acht Syndrombits. Die Eins-Eintragungen in einer Zeile der Matrix zeigen die Verbindungen der 72 Positionen des Speicherdatenregisters mit Antivalenzgliedern, die das der Zeilenüberschrift entsprechende Syndrombit während einer Abrufoperation bilden und das entsprechende Prüfbit während einer Datenspeicheroperation. Ein Prüfbit ist die Antivalenzfunktion jedes der Daten- und Prüfbits, für die eine 1 eingetragen ist. Beispielsweise ist das Prüfbit C1 eine Antivalenzfunktion, jedes Datenbits, für das eine 1 in der Zeile S1 der Matrix .vorhanden ist. Das Syndrombit S1 ist die Antivalenzfunktion der Datenbits, fr die eine 1 eingetragen ist. Daher ist die Matrix nach Fig. 2 eine zweckmäßige Darstellung sowohl der Struktur des Codes als auch des Aufbaus der Codierschaltung.
In dem Code nach Fig. 2 befindet sich in jeder Spalte eine ungerade Anzahl von Einträgen. Mit anderen Worten, jedes Datenbit geht in die Antivalenzfunktion einer ungeraden Anzahl von Prüfoits ein. Die Fehlerkorrekturschaltung enthält üblicherweise eine Einrichtung zur Erkennung einer geraden Anzahl von 1-Zif- £ern in dem Syndrom, wenn ein Fehler erkannt wird, und zur An-
"To 9 s7s /0 77 8 -~~r
zeige, daß ein unkorrigierbarer Doppelfehler aufgetreten ist. Diese Eigenschaft des Codes mit ungeradem Gewicht soll erhalten bleiben, wenn der Code als Baustein eines größeren Codes verwendet wird.
Der Code ist so aufgebaut, daß die gleichen Schaltungen, die die Prüfbits bilden, zur Bildung der Paritätsbits für die Bytes benutzt werden können, die bei einer Abrufoperation zu dem zugeordneten System (oder den Vergleichsschaltungen 42, 43) übertragen werden und zur Paritätsprüfung der Datenworte, die von dem zugeordneten System empfangen werden. Z.B. ist das Prüfbit C1 die Antivalenzfunktion jedes Bits des Bytes B1 und verschiedener anderer Datenbits. Die Antivalenzfunktion der acht Bits des Byte B1 ist die Parität dieses Bytes und dieses Paritätsbit wird gebildet als ein diskretes Signal, das dem Byte B1 zugefügt wird, wenn die Daten zu dem zugeordneten System übertragen werden und wird mit den anderen Ausdrücken kombiniert, um das Prüfbit C1 oder das Syndrombit S1 zu bilden.
Fig. 3 zeigt eine zweckmäßige mathematische Darstellung des Codes der Erfindung. Der Ausdruck "H" identifiziert eine Matrix der allgemeinen in Fig. 2 dargestellten Art, und H128 identifiziert eine Matrix für einen Code zur Korrektur von Einzelfehlern und zur Erkennung von Doppelfehlern bei 128 Datenbits. Die Matrix H128 ist aus einzelnen Matrizen aufgebaut, die innerhalb der Klammern in Fig. 3 identifiziert sind. Die Matrix H64 enthält vorzugsweise die 64 Datenspalten der Matrix nach Fig. 2. Die Matrix H'64 ist mit der Matrix H64 identisch mit der Ausnahme, daß eine ihrer Zeilen das Komplement darstellt, so daß sie von einem Code mit ungeradem Gewicht in einen mit geradem Gewicht geändert wurde. (Dies wird später erläutert.) Das Glied 18 identifiziert eine Einheitsmatrix und ist mit dem die Spaltenüberschrift "Prüfung" tragenden Teil der Fig. identisch. Der Ausdruck 1 6 4 identifiziert 64 1-Einträge in ! einer Zeile der Matrix und der Ausdruck O 64 identifiziert in
PO 973 030
S09828/0778
ähnlicher Weise 64 O-Eintragungen. Das Glied 11 setzt die Einheitsmatrix in die neunte Zeile der Matrix H128 fort.
|Fig. 4 zeigt die Eintragungen für die Matrix H'64 und 1 64 I der Fig. 3. Die Spalten sind überschrieben mit B9 bis B16 j für die untere Hälfte des Speicherwortes/ das die Datenbit-I eingaben für diesen Modul der Codierschaltung liefert. Die
Zeilenüberschriften S9 bis S16 entsprechen den Zeilenüberschrifiten S1 bis S8 in Fig. 2 und die Zeilenüberschrift S9 identifi- !ziert das zusätzliche Bit, das erforderlich ist zur Prüfung von 128 Datenbits.
Die Zeile S9 weist, wie Fig. 3 angibt, in jeder Stelle eine Eins auf. Eine der Zeilen, in diesem Fall die willkürlich gewählte Zeile S12 ist das Komplement der entsprechenden Zeile (S4) in der Matrix H64 der Fig. 2. Die andern Zeilen der Matrix sind mit den entsprechenden Zeilen der Fig. 2 identisch und nur die ersten wenigen Eintragungen sind in Fig. 4 darge·*- stellt. .
Die Matrix H164 kann leicht verglichen werden mit der entsprechenden Matrix H64 in Fig. 2, indem zuerst die Zeile S17 in Fig. 4 außer Betracht gelassen wird. Die Bitposition 1 des Bytes 1 in Fig. 2 geht in die Berechnung der Prüfbits C1, C2 und C4 ein. Das Bit 1 des Bytes 9, das die entsprechende Bitstelle in dem Teil des Speicherwortes darstellt, das durch die Matrix H164 codiert wird, geht in die Berechnung der Prüfbits C9 und C1O, aber nicht in die des Prüfbits C12 ein. Daher geht dieses Datenbit nur in die Berechnung einer geraden Anzahl von Prüfbits in der Matrix H164 ein. In ähnlicher Weise geht das Datenbit 2 des Bytes 1 in die Berechnung von drei Prüfbits CI, C2 und C5 in der Matrix H64 der Fig. 2 ein und in die Berechnung der entsprechenden Prüfstellen C9, C1O und C13 in Fig. 4 ein, aber auch in die Berechnung des .zusätzlichen Prüfbites C12 in der modifizierten Matrix nach Fig. 4. Das Komplementieren derO, (die durch eine Leerstelle dargestellt ist)
PO 973 030
809 828/0 77
in dieser Spalte der Fig. 2, fügt eine 1 zu der Anzahl der Prüfbits hinzu, die von diesem Datenbit abgeleitet werden und macht die Anzahl zu einer geraden Zahl. Das Komplementieren einer Zeile der Matrix H64 des Codes mit ungeradem Gewicht erzeugt daher eine Matrix H'64 eines Codes mit geradem Gewicht. Die , Zeile S9 enthält jedoch eine 1 in jeder Stelle und behält dadurch die Eigenschaft eines Codes mit ungeradem Gewicht bei.
Die Schaltung nach der Erfindung kann aufgrund der Matrizen nach den Fign. 3 und 4 realisiert werden durch konventionelle Schaltungen. Bei einem sehr hohen Grad der Integration gibt es jedoch ein baumartiges Netzwerk von Antivalenzgliedern/ das ohne Änderungen als ein Modul in den Fehlerkorrekturschaltungen für Datenworte unterschiedlicher Wortlänge benutzbar ist. Diese Einheiten-können als integrierte Schaltungsteile ausgeführt sein, z.B. als ein Halbleiterscheibchen, das mit einer Teilnummer hergestellt wird und mit anderen Komponenten in einer größeren Schaltung kombiniert wird. Jede dieser integrierten Einheiten ist gemäß der Matrix H64 (gleichwertig H'64) aufgebaut und Verknüpfungsglieder außerhalb dieser integrierten Einheit bilden die modifizierte Matrix. Die Fehlerkorrekturschaltung nach Fig. 5 enthält zwei gleiche modulare Fehlerkorrektureinheiten 66, 67, die, wie das in Fig. 1 dargestellt ist, Dätenbits als Eingangssignale empfangen und acht Paritätsbits und acht Prüfbits erzeugen. Wie das bereits erklärt wurde, erzeugt eine nach Fig. 2 aufgebaute Schaltung die Paritätsbitä als Zwischenfunktionen des Netzwerkes aus Antivalenzgliedern zur Paritätsprüfung der Datenbytes, die zu dem zugeordneten System übertragen werden. Gemäß der Erfindung werden diese Bits zur Erzeugung eines Codes zur Korrektur von Einzelfehlern und zur Erkennung von Doppelfehlern benutzt, der ein ungerades Gewicht besitzt. Die Paritätsbits werden identifiziert als P1 bis P8 für die obere Hälfte und als P9 bis P16 für die untere Hälfte des Speichers. In ähnlicher Weise werden die Prüfbits, die von den beiden Moduln erzeugt werden, identifiziert als C1 bis C8 und als C9 bis CI6. Die neuen Prüfbits, die durch diese Schaltung
PO973O3° 509828/0778
- 15 erzeugt werden, werden identifiziert als C1 bis C9.
! ■
! Wie. aus der Gleichung nach Fig. 3 und aus der Zeile 9 der entsprechenden Matrix nach Fig. 4 zu ersehen ist, ist das Prüfbit C19 die Antivalenzfunktion jedes der Datenbits 65 bis 128 in der unteren Hälfte des Speicherwortes. Wie Fig. 2 zeigt, ist jedes Paritätsbit.Antivalenzfunktion der Datenbits eines Datenbytes und daher ist die Antivalenzfunktion der acht Paritätsbits P9 bis P16 die Antivalenzfunktion jedes Datenbytes in der oberen Hälfte des Speicherwortes. Ein Netzwerk von Antivalenzgliedern 170 empfängt die acht Paritätsbits P9 bis P16 und erzeugt das Prüfbit C9. Daher kann das zusätzliche Prüfbit aus normalerweise verfügbaren AusgangsSignalen der modularen Fehlerkorrektureinheit erzeugt werden, ohne diese Einheit zu modifizieren. Es ist natürlich ein Vorteil, nur das Prüfbit C9 zu speichern anstelle der gleichwertigen Speicherung der acht Paritätsbits P9 bis P16.
Willkürlich wurde die Zeile S12 ausgewählt um in der Matrix nach Fig. 2 komplementiert zu werden. D.h., das entsprechende Prüfbit ist zu bilden als Antivalenzfunktion der Datenbits, für die sich in der Zeile S4 der Fig. 2 eine O (dargestellt durch einen Leerschritt) befindet. (Fig. 4 zeigt diese Änderung.) (Es sei daran erinnert, daß eine 1 in der Matrix nach Fig. 2 eine Schaltverbindung und nicht einen Datenwert darstellt; der Datenwert des Prüfbits C12 für die komplementäre Zeile ist vollj «ständig unabhängig von dem Datenwert dieses Bits, wenn die Zeile nicht komplementiert worden wäre.) Der Wert des Prüfbits für diese komplementierte Zeile S12 ist gleich der Antivalenzfunktion des Prüfbites C12 und jedes Datenbites. (Die Antivalenzfunktion jedes Datenbits ist gleich dem Prüfbit C9.) Dies läßt sich verstehen aus der assoziativen Eigenschaft der Antivalenzfunktion und es läßt sich anhand eines einfachen Beispieles verstehen: Wenn eine gerade Anzahl von 1-Datenbits das Prüfbit C4 bildet (C4=O) und eine ungerade Anzahl in der gesamten Menge der Datenbits vorhanden ist (C'9=1), dann muß eine ungerade Anzahl von
PO 973 030
509828/077 8
1-Datenbits in dem Komplement der Menge der Datenbits vorhanden sein, die das Prüfbit C4 bilden. (C1 V C9'=O V 1=1.) Das Beispiel ist auch für die Erklärung hilfreich, warum das Komplement einer Zeile in der Matrix vollkommen ohne Beziehung zu dem Komplement der Prüfbitwerte ist. In der Schaltung nach Fig. empfängt ein Antivalenzglied 72 diese Eingangssignale und erzeugt das Ausgangssignal, welches mit C112 bezeichnet ist. Daher realisieren diejenigen Komponenten, die die Ausgangssignale C9-C11, C12 und C13-C16 erzeugen, die Matrizen H164 und 1 6 4 in den Fign. 3 und 4.
Die Prüfbits C1 bis C 3 und C 5 bis C 8 werden gebildet durch einen Satz von Antivalenzgliedern 74 bis 80, deren jedes ein entsprechendes Paar von Prüfbits von den modularen Fehlerkorrektureinheiten 66, 67 empfängt. Das Prüfbit C4 wird in ähnlicher Weise durch ein Antivalenzglied 81 gebildet, das das Prüfbit C4 von der unteren Matrix und das Prüfbit C12 vom Ausgang des Antivalenzgliedes 72 empfängt. (Die Antivalenzglieder 72 und 81 sind einem einzigen Antivalenzglied äquivalent und sind getrennt dargestellt, um die Erklärung zu vereinfachen.)
Die Schaltung nach Fig. 5 empfängt daher 128 Datenbits und erzeugt neun Bits zur Korrektur von Einzelfehlern und zur Erkennung von Doppelfehlern. Bei einer Spexcheroperation werden diese neun Bits mit den 128 Datenbits in einem 137 Bits aufnehmenden Speicherplatz des zugeordneten Speichers gespeichert. Bei einer nachfolgenden Abrufoperation werden die 128 Datenbits codiert, um neun Prüfbits zu bilden, wie das Fig. 5 zeigt. Diese neucodierten Prüfbits werden verglichen mit den neun Prüfbits, die aus dem Speicher abgerufen wurden und es werden nneun Syndrombits gebildet mit Hilfe von neun (nicht dargestellten) Antivalenzgliedern.
Der Fehlerkorrekturcode nach Fig. 2 und die modulare Fehlerkorrektureinheit nach den Fign. 3, 4 und 5 kann leicht an Daten-
PO 973 030
509828/0778
Wörter verschiedener Wortlänge angepaßt werden. Es ist jedoch ein acht Bitcode für ein 64 Bitwort viel wirkungsvoller als der sieben Bitcode für ein 32 Bitwört und für viele Anwendungen der Erfindung ist eine modulare Einheit für 128 Datenbits und neun Prüfbits unerwünscht groß. Die Wahl von 64 Datenbits (anstelle einer anderen Zahl von Datenbits, für welche acht Bits :zur Korrektur von Einzelfehlern und zur Erkennung von Doppelfehlern der minimale Fehlerkorrekturcode ist) beruht auf der üblichen Organisation von Daten in Bytes von Datenbits. Es ist nicht notwendig, daß die Anzahl der Paritätsbits gleich der JAnzahl der Bits zur Fehlerkorrektur und Fehlererkennung ist,
!wie das zufällig der Fall i^t für eine modulare Einheit in der bevorzugten Schaltung. Der Code nach Fig. 2 ist so aufgejbaut, daß die Paritätbits, für die Bytes mittels der gleichen !Komponenten gebildet werden, die die Bits zur Korrektur von jEinzelfehlern und zur Erkennung von Doppelfehlern erzeugen. Dieser Aufbau optimiert den Code vom Standpunkt der Anzahl der Schaltungskomponenten. Als Alternative kann der Code so ι aufgebaut werden, daß er für eine andere Betrachtung optimal
ι ■ - -
ist, z.B. um die Menge der erkennbaren Dreifachfehler zu vergrößern. Für diese Codes kann das Paritätsbit C19 gebildet lwerden durch eine besondere Byte-Paritätsschaltung, es,kann !gebildet werden als eine Funktion der verschiedenen Ausgangs- !signale, die die modulare Fehlerkorrektureinheit liefert oder j jede modulare Fehlerkorrektureinheit kann so aufgebaut sein, daß sie das Bit C'9 direkt liefert und sie kann so verbunden
sein, als das die gemeinsame logische Einheit erfordert.
JEin Datenspeicher, der eine Anordnung von Speicherzellen aufweist, ist ein Beispiel für ein Datenverarbeitungsgerät, für 'das Hamming-Codes besonders geeignet sind und in großem Maße benutzt werden. Von einem allgemeineren Standpunkt ist •die Erfindung überall da nützlich, wo ein Datenwort in einen ;solchen Code codiert werden muß. "
Fehlerkorrekturschaltungen für ein größeres Datenwort können
PO 973 030 "'" *
509828/0778 . .
der modularen Fehlerkorrekturexnheit und geeigneten gemeinsamen Verknüpfungsschaltungen der beschriebenen Art aufgebaut werden. Datenwörter mittlerer Größe können codiert werden, indem feste Datenwerte unbenutzten Eingängen zugeführt werden, wie das
bereits erklärt wurde. In ähnlicher Weise kann die modulare Fehlerkorrektureinheit die Bestandteile enthalten, die selektiv aach den Bedürfnissen verbunden sind und sie kann Komponenten für verschiedene andere Funktionen enthalten.
PO 973 030
509828/0778

Claims (1)

  1. PPI* ■■
    - 19 PATEN TANSP RÜCHE
    Schaltung zur Einzelfehlerkorrektur und Doppelfehlererkennung in Codewörtern eines Codes mit ungeradem Gewicht, in denen die'Anzahl der Datehbits ein Vielfaches einer vorgegebenen Anzahl von Datenbits ist, gekennzeichnet durch
    a) eine erste modular aufgebaute Einheit (67; Fig. 5), die einen ersten Codierer enthält zur Codierung einer vorgegebenen ersten Anzahl der Bits eines Eingabewortes und zur Bildung einer minimalen Anzahl von Prüf- bits zur Einzelfehlerkorrektur und Doppelfehlererkennung gemäß einem Code mit ungeradem Gewicht,
    b) eine zweite, mit der ersten identische, modular aufgebaute Einheit (66), die eine zweite vorgegebene Anzahl der Bits des Eingabewortes codiert zur Bildung einer minimalen Anzahl von Prüfbits gemäß einem Code mit geradem Gewicht,
    c) eine Vorrichtung (70) zur Bildung eines Paritätsbits für die erste Bitanzahl und eine Vorrichtung (Antivalenz-Glied 72), der dieses Paritätsbit und eines der von der ersten Codiervorrichtung erzeugten Prüfbits zugeführt werden zur Bildung eines Prüfbits, das eine gerade Funktion der Datenbits der ersten Anzahl ist, die der ersten Codiervorrichtung nicht zugeführt wurden und
    d) eine Vorrichtung (Antivalenz-Glieder 74 bis 81) zur Bildung eines Prüfbits für die beiden Sätze von Datenbits als Antivalenzfunktion des Prüfbits, das eine gerade Funktion der Datenbits der ersten Anzahl und des entsprechenden Prüf bits des zweiten Codierers, ist, und zur Erzeugung anderer Prufbits für die beiden Sätze von Datenbits, die eine Antivalenzfunktion anderer vom ersten Codierer
    ; ■ gebildeter Prüfbits und der entsprechenden Prüfbits des
    PO973O3° 509828/0778
    zweiten Codierers sind, wobei das Paritätsbit ein Prüfbit für die beiden Sätze von Datenbits bildet.
    Modular aufgebaute Schaltung nach Anspruch 1, dadurch gekennzeichnet, daß der erste und zweite Codierer je eine Vorrichtung zur Erzeugung eines Paritätsbits für jede Bitgruppe (Byte) der Eingangsbits enthalten und daß die Vorrichtung (70) zur Erzeugung des Paritätsbits des ersten Satzes der Bits des Wortes ein Antivalenzglied enthält, das die Paritätsbits der Bytes empfängt.
    PO 973 030
    509828/0778
DE2456709A 1974-01-07 1974-11-30 Schaltungsanordnung zur Fehlererkennung und -korrektur Expired DE2456709C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US431530A US3893070A (en) 1974-01-07 1974-01-07 Error correction and detection circuit with modular coding unit

Publications (2)

Publication Number Publication Date
DE2456709A1 true DE2456709A1 (de) 1975-07-10
DE2456709C2 DE2456709C2 (de) 1983-06-01

Family

ID=23712336

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2456709A Expired DE2456709C2 (de) 1974-01-07 1974-11-30 Schaltungsanordnung zur Fehlererkennung und -korrektur

Country Status (5)

Country Link
US (1) US3893070A (de)
JP (1) JPS5637573B2 (de)
DE (1) DE2456709C2 (de)
FR (1) FR2257174B1 (de)
GB (1) GB1458610A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2916710A1 (de) * 1978-05-02 1979-11-08 Philips Nv Speicher mit fehlerdetektion und fehlerkorrektur

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4084236A (en) * 1977-02-18 1978-04-11 Honeywell Information Systems Inc. Error detection and correction capability for a memory system
JPS5848939B2 (ja) * 1977-12-23 1983-11-01 富士通株式会社 エラ−訂正処理装置
US4201976A (en) * 1977-12-23 1980-05-06 International Business Machines Corporation Plural channel error correcting methods and means using adaptive reallocation of redundant channels among groups of channels
DE2758952C2 (de) * 1977-12-30 1979-03-29 Siemens Ag, 1000 Berlin Und 8000 Muenchen Schaltungsanordnung zum Codieren oder Decodieren von Blnärinformationen
US4201337A (en) * 1978-09-01 1980-05-06 Ncr Corporation Data processing system having error detection and correction circuits
JPS5877034A (ja) * 1981-10-30 1983-05-10 Hitachi Ltd 記録方法
US4698812A (en) * 1986-03-03 1987-10-06 Unisys Corporation Memory system employing a zero DC power gate array for error correction
DE69031947T2 (de) * 1990-10-16 1998-07-16 Koninkl Philips Electronics Nv Datenverarbeitungssystem basierend auf einem (N,K)-Symbolkode und mit Symbolfehler-Korrigierbarkeit und mehrfacher Fehlerreparierbarkeit
JP2752526B2 (ja) * 1991-03-19 1998-05-18 富士写真フイルム株式会社 写真処理方法
US5751744A (en) * 1993-02-01 1998-05-12 Advanced Micro Devices, Inc. Error detection and correction circuit
US7278080B2 (en) * 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US8650470B2 (en) 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
US7260001B2 (en) * 2003-03-20 2007-08-21 Arm Limited Memory system having fast and slow data reading mechanisms
KR100981999B1 (ko) * 2003-03-20 2010-09-13 유니버시티 오브 미시간 집적회로의 처리단 내에서의 시스템적이고 랜덤한 오류의검출 및 회복
US8185812B2 (en) * 2003-03-20 2012-05-22 Arm Limited Single event upset error detection within an integrated circuit
US8171386B2 (en) * 2008-03-27 2012-05-01 Arm Limited Single event upset error detection within sequential storage circuitry of an integrated circuit
US8161367B2 (en) * 2008-10-07 2012-04-17 Arm Limited Correction of single event upset error within sequential storage circuitry of an integrated circuit
US8493120B2 (en) 2011-03-10 2013-07-23 Arm Limited Storage circuitry and method with increased resilience to single event upsets

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3560942A (en) * 1968-07-15 1971-02-02 Ibm Clock for overlapped memories with error correction
US3573728A (en) * 1969-01-09 1971-04-06 Ibm Memory with error correction for partial store operation
CA874088A (en) * 1971-06-22 International Business Machines Corporation Data storage apparatus
US3623155A (en) * 1969-12-24 1971-11-23 Ibm Optimum apparatus and method for check bit generation and error detection, location and correction

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3745525A (en) * 1971-12-15 1973-07-10 Ibm Error correcting system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA874088A (en) * 1971-06-22 International Business Machines Corporation Data storage apparatus
US3560942A (en) * 1968-07-15 1971-02-02 Ibm Clock for overlapped memories with error correction
US3573728A (en) * 1969-01-09 1971-04-06 Ibm Memory with error correction for partial store operation
US3623155A (en) * 1969-12-24 1971-11-23 Ibm Optimum apparatus and method for check bit generation and error detection, location and correction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2916710A1 (de) * 1978-05-02 1979-11-08 Philips Nv Speicher mit fehlerdetektion und fehlerkorrektur

Also Published As

Publication number Publication date
DE2456709C2 (de) 1983-06-01
GB1458610A (en) 1976-12-15
FR2257174B1 (de) 1977-05-20
US3893070A (en) 1975-07-01
JPS50103227A (de) 1975-08-15
JPS5637573B2 (de) 1981-09-01
FR2257174A1 (de) 1975-08-01

Similar Documents

Publication Publication Date Title
DE2260850C2 (de) Schaltungsanordnung zur Erkennung von Einzel- und Mehrfachfehlern und zur korrektur von Einzel- und bestimmten Mehrfachfehlern
DE2456709A1 (de) Schaltung zur fehlererkennung und -korrektur
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE2619159C2 (de) Fehlererkennungs- und Korrektureinrichtung
DE2425823A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur
DE2357233C2 (de) Adressenumwandlungseinrichtung
DE2328869A1 (de) Verfahren zur pruefung eines digitalen speichersystems sowie zur durchfuehrung dieses verfahrens dienendes selbstpruefendes digitales speichersystem
DE3638632A1 (de) Halbleiterspeicher
DE2256135C3 (de) Verfahren zum Prüfen von monolithisch integrierten Halbleiterschaltungen
EP0400179B1 (de) Verfahren und Vorrichtung zum internen Paralleltest von Halbleiterspeichern
DE3128740A1 (de) Dynamisches halbleiter-speichersystem
EP2100308B1 (de) Verfahren und halbleiterspeicher mit einer einrichtung zur erkennung von adressierungsfehlern
DE4220196C2 (de) Halbleiterspeichervorrichtung und Verfahren zum Korrigieren eines Datenfehlers in einer Halbleiterspeichervorrichtung entsprechend einer vorbestimmten Hamming-Matrix
DE2157829C2 (de) Anordnung zum Erkennen und Korrigieren von Fehlern in Binärdatenmustern
DE102005022107A1 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
EP0615211B1 (de) Verfahren zum Speichern sicherheitsrelevanter Daten
EP1444700B1 (de) Speichertest
DE2549392B2 (de) Verfahren zur erhoehung der zuverlaessigkeit von integrierten speicherbausteinen und zur verbesserung der ausbeute von nach aussen hin fehlerfrei erscheinenden speicherbausteinen bei ihrer herstellung
DE2000565A1 (de) Fehlerkorrigierendes System zur Korrektur mehrfacher,zufaelliger Fehler
DE2454745A1 (de) Binaerzaehler mit fehlererkennung und korrektur voruebergehender fehler
DE2004934B2 (de) Speicheranordnung mit schaltungen zur fehlererkennung und fehlerkorrektur
DE69907622T2 (de) Verfahren zur Fehlerkorrektur in einem in einer Mehrpegelspeicherzelle gespeicherten Binärwort, mit einer Minimumanzahl von Korrekturbits
DE3716594C2 (de) Schaltungsanordnung für Fernmeldeanlagen, insbesondere Fernsprechvermittlungsanlagen, mit Speichereinrichtungen, in denen gespeicherte Informationsportionen auf ihre Richtigkeit überprüft werden
EP0453609B1 (de) Verfahren zum Testen einer kleinsten adressierbaren Einheit eines RAM's auf über einer bestimmten Zahl liegende Bitfehler

Legal Events

Date Code Title Description
OD Request for examination
8125 Change of the main classification

Ipc: G06F 11/10

8126 Change of the secondary classification

Ipc: ENTFAELLT

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