DE2456709A1 - Schaltung zur fehlererkennung und -korrektur - Google Patents
Schaltung zur fehlererkennung und -korrekturInfo
- 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
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/1048—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 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
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)
- PPI* ■■- 19 PATEN TANSP RÜCHESchaltung 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 durcha) 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 undd) 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 desPO973O3° 509828/0778zweiten 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 030509828/0778
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)
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)
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3745525A (en) * | 1971-12-15 | 1973-07-10 | Ibm | Error correcting system |
-
1974
- 1974-01-07 US US431530A patent/US3893070A/en not_active Expired - Lifetime
- 1974-11-22 FR FR7441913A patent/FR2257174B1/fr not_active Expired
- 1974-11-27 GB GB5135774A patent/GB1458610A/en not_active Expired
- 1974-11-30 DE DE2456709A patent/DE2456709C2/de not_active Expired
- 1974-12-27 JP JP14913174A patent/JPS5637573B2/ja not_active Expired
Patent Citations (4)
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)
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 |