DE2619159C2 - Fehlererkennungs- und Korrektureinrichtung - Google Patents
Fehlererkennungs- und KorrektureinrichtungInfo
- Publication number
- DE2619159C2 DE2619159C2 DE2619159A DE2619159A DE2619159C2 DE 2619159 C2 DE2619159 C2 DE 2619159C2 DE 2619159 A DE2619159 A DE 2619159A DE 2619159 A DE2619159 A DE 2619159A DE 2619159 C2 DE2619159 C2 DE 2619159C2
- Authority
- DE
- Germany
- Prior art keywords
- bits
- error
- bit
- parity
- correction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 238000012937 correction Methods 0.000 title claims description 73
- 238000001514 detection method Methods 0.000 title claims description 15
- 230000015654 memory Effects 0.000 claims description 93
- 238000012545 processing Methods 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 7
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 230000006870 function Effects 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 description 16
- 238000000034 method Methods 0.000 description 8
- 239000004065 semiconductor Substances 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 235000012431 wafers Nutrition 0.000 description 2
- 101150087426 Gnal gene Proteins 0.000 description 1
- 101000974007 Homo sapiens Nucleosome assembly protein 1-like 3 Proteins 0.000 description 1
- 102100022398 Nucleosome assembly protein 1-like 3 Human genes 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 108010089746 wobe Proteins 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
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)
- Techniques For Improving Reliability Of Storages (AREA)
Description
Technical Disclosure Bulletin, Vol.14, No. 2, Juli 1971,
Seiten 670 bis 672, bekannt Die bekannte Einrichtung kann zwar Einzelbitfehler und in begrenztem Maße
auch Mehrbitfehler erkennen, sie gestauet jedoch nicht die Erkennung eines Totalausfalls des Speicherelements,
der üblicherweise zur Folge hat, daß alle ausgelesenen Bits entweder den Wert 0 oder den Wert 1 haben.
Der Erfindung liegt die Aufgabe zugrunde, eine Einrichtung der eingangs beschriebenen Art so abzubilden,
daß sie auch einen Totalausfall des Speicherelements erkennen kann. Diese Aufgabe wird durch die im
kennzeichnenden Teil des Patentanspruchs 1 angegebenen Merkmale gelöst.
Durch die erfindungsgemäßen Maßnahmen wird bewirkt, daß beim Auslesen aus einem funktionsfähigen
Speicher unabhängig von der eingespeicherten Information nie der Fall auftreten kann, daß sämtliche
ausgelesenen Bits (einschließlich der Paritätsprüfbits) den Wert 1 (oder 0) haben. De. geschilderte
Fehlerzustand, bei dem sämtliche ausgelesenen Bits einschließlich der Paritätsprüfbits den Wert 1 (oder 0)
haben, kann zum Ergebnis haben, daß die ganze Speichereinheit ersetzt werden muß. Derartige Fehler
treten, wie gefunden wurde, besonders bei Halbleiterspeichern auf.
Von Vorteil bei der Erfindung ist. daß sie sich auf relativ einfache Weise und mit geringen Kosten
realisieren läßt, so daß sie, obwohl sie in Systemen mit jeder beliebigen Speicherkapazität nützlich ist, speziell
für die Benutzung in Datenverarbeitungssystemen mit einer relativ kleinen Speicherkapazität von Vorteil ist.
wie in Minicomputer-Systemen, denn sin benötigt für ihre Verwirklichung nicht speziell entwickelte und
relativ teure Logikelemente, wie unten noch erläutert wird. Derartige Minicomputer-Systeme haben häufig
Speicherkapazitäten von nur 32K Wörtern oder weniger. Manchmal werden bei Minicomputern auch
größere Speicherkapazitäten bis zu 128K Wörtern oder mehr verwendet
Die Ausführungsform nach Anspruch 2 ist besonders dann günstig, wenn die einzelnen Paritätsprüfbits
nacheinander berechnet werden, weil dann die Umschaltung zwischen gerader und ungerader Paritätsprüfung
keine Zählvorgänge erfordert.
Die Erfindung benutzt eine Hamming-Code-Technik. Das hauptsächliche Problem bei der Verwendung von
üblichen Hamming-Codes zur Erzeugung einer direkten Adreßinformaiion zwecks Fehlerkorrektur liegt in der
Tatsache, daß zu viele Hamming-Code-Glieder benötigt
werden, um eine passende Adreßidentifikation zu erhalten. Beispielsweise müssen bei der Benutzung einer
normalen Hamming-Code-Technik mit einem 16-Bit-Datenwort bis zu 11 oder 12 Glieder, die tatsächlich 11
oder 12 Bits des Datenwortes repräsentieren, durch ein einzelnes logisches Element (d. h. ein Exclusiv-ODER-Glied)
verarbeitet werden. Beim gegenwärtigen Stand der Technik sind aber Logikelemente mit mehr als
höchstens 9 Eingängen nicht verfügbar, und um konventionelle Hamming-Code-Techniken zu verwirklichen,
müssen speziell entwickelte Logikelemente für diesen Zweck hergestellt werden; diese Entwicklung
erhöht in unerwünschter Weise die Herstellungskosten des Fehlererkennungs- und Korrektursystems. Ein
derartiger Kostenanstieg ist besonders bei Minicomputer-Systemen von Nachteil, wo derartige Kosten ein für
den Wettbewerb wichtiger Umstand sind. Daher wurde die Verwendung von konventionellen Hamming-Codes
zur Erzeugung direkter Adreßinformation üblicherwei-
se vermieden, ausgenommen in Systemen mit relativ großer Kapazität Wie an Hand des Ausführungsbeispiels
beschrieben ist benutzt die Erfindung eine modifizierte Hamming-Code-Technik, die die Fähigkeit
hat jeden Ort eines Einzelbitfehlers leicht zu identifizieren und einen solchen Fehler sofort zu korrigieren durch
die Benutzung von standardisierten und leicht erhältlichen, gegenwärtig verfügbaren Logikelementen mit
nicht mehr als 9 Eingängen (Anspruch 4).
Ein Vorteil der in Anspruch 4 beschriebenen Ausführungsform ist noch darin zu sehen, daß sie es
gestattet, eine parallele Signalverarbeitung vorzunehmen und dadurch eine große Geschwindigkeit bei der
Fehlererkennung und Korrektur zu erreichen.
In der nachstehenden Beschreibung wird die Erfindung an Hand der Figuren beispielhaft erläutert.
F i g. 1 zeigt eine Darstellung der Art, in der die Paritätsprüfbits entsprechend der Erfindung gebildet
werden;
Fig. 2 zeigt eine Darstellung der Art, in der die Fehlerbits entsprechend der Erfindung gebildet werden;
F i g. 3 zeigt ein Blockdiagramm der Fehlererkennungs- und Korrektureinrichtung der Erfindung.
F i g. 4 zeigt eine detailliertere Zeichnung des Speicherpufferregisters des Systems nach F i g. 3;
Fig. 5 zeigt eine detailliertere Zeichnung des Code-Generators des Systems nach F i g. 3;
Fig. 6 zeigt eine detailliertere Zeichnung der Zeitsteuerung des Systems nach F i g. 3;
Fig. 7 zeigt eine detailliertere Zeichnung eines Teils
des Korrekturdecoders des Systems nach F i g. 3;
F i g. 8 zeigt eine detailliertere Zeichnung eines Teils des Korrekturdecoders des Systems nach F i g. 3;
Fig. 9 zeigt eine detailliertere Zeichnung der Fehlerspeicherung des Systems nach F i g. 3 und
Fig. 10 zeigt eine detailliertere Zeichnung der Logik
für die Steuerung der Operationsart des erfindungsgemäßen Systems und die Logik zum Unterbrechen des
Datenverarbeitungsgerätes dafür (Interrupt-Logik).
Vor der Diskussion der speziellen Fehlererkennungsund Korrekturlogik einer bestimmten Ausführungsform
der Erfindung im Detail ist es hilfreich, das Konzept in allgemeineren Begriffen zu verstehen. Das Fehlerkorrektursystem
gestattet zusätzlich zu der Erkennung und Korrektur von Einzelbitfehlern in Worten, die aus dem
Speicher gelesen wurden, auch die Erkennung von gewissen Zuständen, bei denen ein im wesentlichen
vollständiger Ausfall einer Speichereinheit auftritt. Weiterhin sieht das System die Möglichkeit vor, Fehler
aufzuzeichnen, indem es eine geeignete Adresse aufrechterhält, und es sieht Bitregister hierfür vor und
weiterhin sorgt es, falls gewünscht, für die Unterbrechung der Operation eines Rechenwerks, wenn Fehler
auftreten. Das System ist so ausgelegt, daß es seine Fehlererkennung während der normalen Speicherzyklen
ohne irgendeine Zeitverzögerung durchführt. Während jener Zyklen, innerhalb von deren Einzelbitfehler,
die eine Korrektur erfordern, festgestellt worden sind, wird die Verarbeitung oder der Arbeitsablauf im
Datenverarbeitungsgerät während des Wiedereinschreibteils des Speicherzeitzyklus verzögert, während
der Fehler korrigiert wird. Jede der Speichereinheiten eines ganzen Datenverarbeitungssystems ist so ausgebildet,
daß sie ihre eigene Fehlererkennungslogik enthält, während jedes Rechenwerk, das mit diesen
Speichereinheiten zusammenarbeitet, so ausgebildet ist, daß es die Fehlerkorrekturlogik enthält, wie im
einzelnen unten diskutiert wird.
Gemäß der Theorie der Arbeitsweise des Fehlerkorrektur- und Erkennungssystems der Erfindung, das in
einem System verwendet wird, das 16-Bit-Datenworte benutzt, wie oben erwähnt, fügt das System zu jedem
16-Bit-Wort ein 5-Bit-Paritätsprüffeld hinzu, während
jedes Wort in den Speicher eingeschrieben wird. Wie in Fig.1 gezeigt wird, hat ein Musterwort mit 16 Bits, die
als Bits 0 bis 15 bezeichnet sind, zusätzlich fünf Paritätsprüfbits, die darin als Prüfbits CO, CI, C2, C3
und C 4 bezeichnet sind. Die Prüfbits werden in jedem Fall erzeugt durch Berechnung entweder einer ungeraden
oder einer geraden Parität quer über das Datenwort, wobei jedes Prüfbit solch eine ungerade
oder gerade Parität einer einmaligen Kombination von acht Datenbits des 16-Bit-Datenwortes prüft. Solche
Paritätsprüfungen stellen eine einzigartige Modifikation der üblichen Paritätsprüfungen dar, die in einem
einfachen Hamming-Code-Prozeß, der bei Fehlererkennungssystemen zur Zeit verwendet wird, durchgeführt
werden.
Wie im Diagramm der F i g. 1 gezeigt ist, prüft beispielsweise das erste Prüfbit CO die ungerade Parität
der Datenbits 2,5 und 10 bis 15; das Prüfbit Cl prüft die
gerade Parität der Datenbits 4 bis 10 und 15; das Prütbit C2 prüft die ungerade Parität der Datenbits 1 bis 3,7 bis
9,14 und 15; das Prüfbit C3 prüft die gerade Parität der
Datenbits 0, 2, 3, 5, 6, 9, 12 und 13, und das Prüfbit C4 prüft die ungerade Parität der Datenbits 0,1,3,4,6,8,11,
13. In Fig. 1 bedeuten die mit durchgezogener Linie dargestellten Paritätsprüfungen, die den Prüfbits CO,
C2 und C4 zugeordnet sind, »ungerade« Paritätsprüfungen, während die gestrichelten Linien, die den
Prüfbits Cl und C3 zugeordnet sind, »gerade« Paritätsprüfungen darstellen. So enthält das im Beispiel
gezeigte 21-Bit-Wort, das auf diese Weise erzeugt worden ist, die Muster-Datenbits 0 bis 15 des
ursprünglichen 16-Bit-Datenwortes und die Muster-Prüfbits CO bis C4, die von diesen in spezifischer Weise
abgeleitet wurden. Das erweiterte 21-Bit-Wort wird dann in den Speicher während eines »Schreib«-Teils des
Speicherzyklus geschrieben.
Wenn das erweiterte 21-Bit-Wort, das auf diese Weise geschrieben wurde, anschließend gelesen wird,
wird eine einzigartige Paritätsprüfung davon wiederum berechnet, diesesmal für die gesamten 21 Bits,
einschließlich der fünf zusätzlichen Paritätsprüfbits CO bis C 4. Die Paritätsprüfungen, die auf diese Weise
gemacht werden, sind tatsächlich vergleichbar mit den Paritätsprüfungen, die vorher gemacht wurden, nur
umfaßt in diesem Fall jede der Paritätsprüfungen das entsprechende Prüfbit, wie in F i g. 2 gezeigt ist, so daß
die Paritätsprüfungen mit Bezug auf 9-Bit-Kombinationen des 21-Bit-Wortes gemacht werden. Die wiederum
berechneten Paritäten liefern ein neues 5-Bit-Fehlercodewort,
das Fehlerbits £0 bis EA aufweist. So wird das Fehlercodebit EO erzeugt durch eine Paritätsprüfung
derselben Bits, die für die Paritätsprüfung, die das Prüfbit CO erzeugte, einbezogen waren, und zusätzlich
enthält sie das CO-Bit selbst Dasselbe gilt für jedes der
folgenden Fehlercodebits Ei bis EA. Wie vorher
werden die Fehlercodebits £"0, E2 und EA erzeugt durch eine »ungerade« Paritätsprüfung, wie sie durch
die ausgezogenen Linien angedeutet ist, während die Fehlercodebits El und E3 durch eine »gerade«
Paritätsprüfung, wie durch die gestrichelten Linien angezeigt, erzeugt werden.
Für das spezielle in den F i g. 1 und 2 gezeigte Beispiel wurde angenommen, daß ein Fehler im Bit 14
aufgetreten ist, das im ursprünglichen 16-Bit-Wort, wie es eingeschrieben wurde, eine »1« ist, während es indem
gelesenen Wort eine »0« ist. Solch ein Einzelbitfehler hat die Erzeugung eines einzigartigen oder eindeutig
definierten Fehlercodewortes zur Folge, das in dem zur Diskussion stehenden Fall durch die 5-Bit-Fehlercodebits
£"0 bis EA als 10100 dargestellt wird. Die Erzeugung
eines 5-Bit-Fehlercodewortes erlaubt die Identifizierung von 32 unterschiedlichen Fehlerzuständen einschließlich
eines, in welchem keine Fehler auftraten, 21, bei denen alle Einzelbitfehler des gespeicherten 21-Bit-Wortes
nach ihrem Ort identifiziert werden, zwei, bei denen das 21-Bit-Wort, wie es an der betreffenden Speicherstelle
gelesen wird, nur Einsen oder nur Nullen enthält (was einen im wesentlichen vollständigen Ausfall der
Speichereinheit darstellt), und acht, bei denen die
Anwesenheit von Mehrfachbitfehlern angezeigt wird, obwohl ihr Ort nicht speziell identifiziert wird. Eine
beispielhafte Tabelle der 32 5-Bit-Fehlercodewörter und der Bedeutung von jeder ihrer einmaligen
Codekombinationen ist in Tabelle 1 gezeigt.
Tabelle 1 | Bedeutung | |
Fehlercodewort | Kein Fehler | |
00000 | Fehler war im Prüftbit 4 | |
10 | 00001 | Fehler war im Prüfbit 3 |
00010 | Fehler war im Datenbit 0 | |
00011 | Fehler war im Prüftbit 2 | |
00100 | Fehler war im Datenbit 1 | |
J) | 00101 | Fehler war in mehreren Bits |
00110 | Fehler war im Datenbit 3 | |
00111 | Fehler war im Prüfbit 1 | |
01000 | Fehler war im Datenbit 4 | |
40 | 01001 | Alle 21 Bits des Speichers sind 1 |
01010 | Fehler war im Datenbit 6 | |
01011 | Fehler war im Datenbit 7 | |
01100 | Fehler war im Datenbit 8 | |
4Ϊ | 01101 | Fehler war im Datenbit 9 |
OHIO | Fehler war in mehreren Bits | |
01111 | Fehler war im Prüfbit 0 | |
10000 | Fehler war im Datenbit 11 | |
50 | 10001 | Fehler war im Datenbit 12 |
10010 | rcilici wdi im l^dicuuii υ | |
10011 | Fehler war im Datenbit 14 | |
10100 | Alle 21 Bits des Speichers sind 0 | |
55 | 10101 | Fehler war im Datenbit 2 |
10110 | Fehler war in mehreren Bits | |
10111 | Fehler war im Datenbit 10 | |
11000 | Fehler war in mehreren Bits | |
60 | 11001 | Fehler war im Datenbit 5 |
11010 | Fehler war in mehreren Bits | |
11011 | . Fehler war im Datenbit 15 | |
11100 | Fehler war in mehreren Bits | |
65 | 11101 | Fehler war in mehreren Bits |
11110 | Fehler war in mehreren Bits | |
Hill | ||
Das Fehlerwort, das auf diese Weise bei der Speichereinheil erzeugt worden ist, wird dann der
Rechenwerkfehlerkorrekturlogik zugeführt, die eine Decodierlogik zum Decodieren des Fehlercodewortes
zur Identifizierung des Ortes des Einzelbitfehlers aufweist. Diese Logik sorgt dann in geeigneter Weise
für die Korrektur des fehlerhaften Bits dadurch, daß sie in geeigneter Weise an die identifizierte Stelle ein
komplementäres Bit liefert. Zur selben Zeit wird die physische Adresse des falschen Speicherwortes beim
Rechenwerk gespeichert. Die Fehlerkorrekturlogik sorgt auch für eine geeignete Unterbrechung der
Tätigkeit des Rechenwerks, bis dieser Korrekturprozeß abgeschlossen ist. Das korrigierte Wort wird daraufhin
in den speziellen Speichermodul an die korrekte Adresse zurückübertragen und dort wieder eingeschrieben.
Mit Bezug auf die Verwirklichung der Fehlererkennung-
und Korrekturlogik bei einer typischen Speichereinheit und bei einem Rechenwerk zeigt F i g. 3
geeignete Abschnitte des Fehlererkennungs- und Korrektursystems, die beide in einer typischen
Speichereinheit 10, die beispielsweise eine Speicherebene 13 von 8K Kernspeichervorrichtungen aufweist, und
in einem Abschnitt 11 eines Rechenwerks angeordnet sind, wobei die Speichereinheit und das Rechenwerk in
geeigneter Weise über eine Speicherübertragungsleitung 12 (SÜL) verbunden sind. Bei dem beschriebenen
Ausführungsbeispiel bringt die Rechenwerkfehlerlogik, die im einzelnen später beschrieben wird, die Möglichkeit
der Fehlerkorrektur für jede von mehreren Speichereinheiten ohne Geschwindigkeits- oder Leistungsvenrinderung
während der nichtkorrigierenden Zyklen.
Die Kernebene 13 der Speichereinheit 10 weist beispielsweise 8K Wörter mit je 21 Bits auf.
Geeignete Leseverstärker 14 liefern Lesebits 0 bis 20 von den Kernspeichervorrichtungen, wobei die letzteren
Vorrichtungen durch geeignete X-Y-Tre\ber 15 angesteuert werden, wie dies bei bekannten Datenverarbeitungsspeichereinheiten
üblich ist. Jedes aus den Speichervorrichtungen ausgelesene Wort wird in geeigneter Weise in ein 21-Bit-Speicherpufferregister
16 gebracht, zu dem auch ein 16-Bit-Datenwort von der Speicherübertragungsleitung 12 geliefert werden kann,
wie gezeigt Das Speicherpufferregister 16 speichert entweder ein Wort von der Speicherübertragungsleitung
12 zum Einschreiben in eine Adreßstelle in der Kernebene 13 oder ein Wort, das von einer Adreßstelle
in der Kernebene 13 ausgelesen wurde, zur Eingabe in die Speicherübertragungsleitung 12 über die Speicherübertragungsleitungstreiber
17.
Ein Codegenerator 18, dem ebenfalls die Datenbits 0 bis 15 zugeführt werden, weist eine Logik zur
Berechnung der Paritätsprüfung dieser Bits auf, wie oben diskutiert wurde, um die fünf Paritätsprüfwortbits
16 bis 20 (entsprechend den Prüfbits CO bis CA) zu erzeugen. Wenn die Codegeneratorlogik ihre Paritätsprüfung
der Bits 0 bis 15 während einer ursprüngBchen Schreiboperation macht, werden die Prüfbits 16 bis 20
zum Speicherpufferregister 16 und hierauf zu der Kernebene 13 zusammen mit den Speicherdatenbits 0
bis 15 über die Inhibitlogik 19 übertragen. Während einer Leseoperation macht der Codegenerator seine
Paritätsprüfung von allen Bits 0 bis 20, die aus der Kernebene gelesen werden, einschließlich der Speicherdatenbits
0 bis 15 und der Prüf bits 16 bis 20. Eine derartige Paritätsprüfungsoperation erzeugt die Fehlercodebits
EO bis £4 zur Lieferung an einen Korrekturdecoder 20 der Fehlerlogik des Rechenwerks.
Die Speichereinheit weist auch ein Speicheradreßregister 21 zur Speicherung von Adressen, wie sie von
> einer Adreßübertragungsleitung 22 (AÜL) erhalten werden, auf. Der Korrekturdecoder 20 beim Rechenwerk
decodiert die Fehlercodebits £0 bis £4 und macht eine geeignete Korrektur an der identifizierten Bitstelle,
wenn ein Einzelbitfehler aufgetreten ist, wie oben
in diskutiert, und anschließend liefert er ein korrigiertes
Datenwort, bezeichnet als COR (0—15), um es an die Datenverarbeitungselemente im Rechenwerk über ein
Exclusiv-ODER-Glied 23 zu liefern. Wenn keine Korrektur erforderlich ist, wird das Datenwort, wie es
aus der Kernebene ausgelesen wird, zu den Datenverarbeiiungselemenlen
des Rechenwerks direkt vor· der Speicherübertragungsleitung über das Glied 23 geleitet,
wie gezeigt. Die Adresse des Ortes des falschen Datenwortes wird in geeigneter Weise in einem
2(i Speicherfehleradreßregister 24 gespeichert, während
das Fehlercodewort £0 bis £4 aus dem Speicher ebenfalls in geeigneter Weise in einem Speicherfehlercoderegister
25 gespeichert wird, wie gezeigt, wobei diese Adreß- und Fehlercodeinformation ebenfalls zu
2Ί den geeigneten Datenverarbeitungselementen des Rechenwerks
geleitet wird, wie unten näher beschrieben wird. Die Speichereinheit weist auch eine geeignete
Fehlerkorrektursteuerlogik 27, die im Detail weiter unten beschrieben wird, zur Steuerung der Operation
jo der Elemente der Speichereinheit auf, die an der
Fehlerkorrekturoperation teilnehmen. Das Fehlerkorrekturladesignal (ECCLOAD), das Paritätsaktiviersignal
(PAR ΕΝΑΒ)\χηά das Schreibinhibitsignal (WINH)
werden für diesen Zweck durch das Rechenwerk
r, geliefert, wie im einzelnen unten beschrieben wird.
Die F i g. 4 bis 7 zeigen genauer die Logik, die in einer
typischen Speichereinheit verwendet wird. So sind in F i g. 4 das Speicherpufferregister 16 und der erweiterte
Pufferregisterabschnitt davon für die Speicherbits 16 bis 20 gezeigt, das sechs 8-Bit-Register 30 bis 35 aufweist.
Jedem der Register 30 bis 33 werden vier A/£M-Bit-Eingangssignaie
des 16-Bit-Wortes MEMO—15 von der
Speicherübertragungsleitung 12 und vier entsprechende Speicherortlesesignale (SO-SiS) zugeführt, zusammen
mit einem Taktpulssignal, das bezeichnet wird als das SpeicherpufferladesignalYMÄLO/iD^ zum rechtzeitigen
Aufladen der Register. Die Register haben die Eigenschaft, beim Beginn eines jeden Speicherzyklus
mit einem geeigneten Speicherzyklussignal (MEMCY- CLE) und ebenfalls mit einem geeigneten Signal zum
Löschen des Registers vor einem Lesezyklus (MB PRE- SET) zurückgesetzt zu werden. Die Ausgangssignale der
Register 30 bis 33 werden als Speicherpuffersignale MBO-MBiS bezeichnet, und jedes wird zu einem
getrennten Speicherübertragungsleitungstreiber
(ODER-Glied) 36, wie gezeigt, geleitet Jedes der
UND-Glieder 36 wird durch ein DATAENABLE-Signal
aktiviert, das Daten auf die Übertragungsleitung bringt, ausgenommen, wenn das Signal ECCLD die
Treiber von der Übertragungsleitung abschaltet und hierdurch zeigt, daß ein Fehlerkorrekturzyklus im
Rechenwerk ausgeführt werden muß.
Ebenfalls mit mehr Einzelheiten ist in Fig.4 das
erweiterte Speicherpufferregister gezeigt, das ein Paar von 8-Bh-Registern 34 und 35 aufweist, die mit dem
Speicher durch Leseleitungen 516—520 und fünf Leitungen vom Paritätsschaltkreis 50 (in F i g. 5 gezeigt)
verbunden sind, wobei die Signale auf den letztgenann-
ten fünf Leitern die fünf Paritätsprüfbits CO bis C4 darstellen, wie mehr im einzelnen unten mit Bezug auf
F i g. 5 diskutiert wird. Das Signal MB PRESET wird benutzt, um aus den Registern 34 und 35 die Lesebits
516 — 520 vor einem Lesezyklus zu löschen. Das Signal
WINH wird für eine Software-Prüfung des Signals benutzt und bewirkt, wenn es benutzt wird, daß alle
Ausgangs-Bits MB 16 — MB 20 »1« sind, wenn das
Signal WINHniedrig ist. Die Register 34 und 35 werden
in einer Art ähnlich der oben mit Bezug auf die Register 30 bis 33 diskutierten ebenfalls durch das Signal
MB LOAD getaktet, wenn das letztere Signal niedrig ist. Aber das Signal MB LOAD wird in Verbindung mit
den Registern 34 und 35 durch einen Verzögerungsschaltkreis 38 für eine Zeit verzögert, die ausreicht, um
dem Paritätsschaltkreis 50 zu gestatten, die fünf Paritätsprüfbits aus den Signalen MBO-MB 15 zu
erzeugen. Die Ausgangssignale der Register 34 und 35 werden als Bits Mßl6-Mß20 bezeichnet.
F i g. 5 zeigt die Paritätsschaltkreise 50, die in der Speichereinheit angeordnet sind, wie dies auch die in
F i g. 4 gezeigte Speicherpufferregisterschaltung ist. Der Paritätsschaltungskreis 50 schließt fünf Exclusiv-ODER-Glied-Register
51 bis 55 ein, von denen jedes aus einem separaten Halbleiterplättchen mit neun Eingangsleitungsanschlüssen
und zwei Ausgangsleitungsanschlüssen besteht. Diese Halbleiterplättchen können beispielsweise
von dem Typ sein, der als Modell-Nr. 74S280 verkauft wird, und sind leicht als Elemente nach dem
gegenwärtigen Stand der Technik für die Benutzung beim Erfindungsgegenstand erhältlich.
Wie noch klar werden wird, wirken diese Verknüpfungseinheiten nicht nur als Generatoren für Prüfbits
mit ungerader/gerader Parität, sondern auch als Prüfsignalgeneratoren. Die Ausgangsleitungen, die die
Bits CO-C5 von jedem der Exclusiv-ODER-Glied-Register
51 bis 55 darstellen, sind zurück zu den Registern 34 und 35 (siehe Fig.4) verbunden und liefern die
erzeugten Paritätsbits, wodurch in einer Schreiboperation diese Paritätsbits aus den Registern 34 und 35 durch
Taktsignale herausgeholt werden zu einer Zeit, die durch das zeitverzögerte MBL~O~ÄB-S\gn&\ bestimmt
ist, um die Speicherpufferregistersignale MB 16 - MB 20 zu erzeugen.
Diese Paritätsbits, die in dem erweiterten Speicherpuffer 16, wie in F i g. 1 gezeigt, gespeichert werden,
werden wieder während eines Lesezyklus unmittelbar vor einer Datenübertragung geprüft. Wenn die Oberprüfung
der Paritätsbits abgeschlossen ist mit dem Ergebnis, daß sie richtig sind (d. h., es existieren keine
Fehler), werden die Daten vom Speicherpufferregister 16 dann durch die aktivierten Speichertreiber 36 in die
Speichervoi richtungen der Speichereinheit geleitet. Die
Verwendung von fünf üblichen und leicht verfügbaren Exclusiv-ODER-Glied-Registern des Typs mit neun
Eingängen, wie in Fig.3 gezeigt, vermeidet das
Erfordernis von speziell entwickelten und teuren Elementen, die mehr als neun Eingänge haben, was
normalerweise bei der üblichen Verwirklichung einer Hamming-Code-Fehlerkorrektur erforderlich ist Dieser Vorteil ist die Folge der Benutzung eines
modifizierten Codes vom Hamming-Typ, bei dem die Paritätsprüf bits aus ausgewählten 8-Bit-Kombinationen
des ursprünglichen 16-Bit-Datenwortes erzeugt werden
und bei. dem die Fehlercodewortbits erzeugt werden durch Paritätsprüfungen von ausgewählten 9-Bit-Kombinationen des erweiterten Wortes mit 21 Bit, wie es
gespeichert wird, wie oben beschrieben wurde. Der
modifizierte Code vom Hamming-Typ wird entsprechend durch die Exclusiv-ODER-Glieder mit den
geeigneten Kombinationen der Eingangssignale, wie in F i g. 5 illustriert, verwirklicht.
Die fünf Exclusiv-ODER-Glied-Register 51 bis 55 sind
ebenfalls mit den Ausgängen MB i6 —MB 20 über
NAND-Glieder 56 bis 60 verbunden, wobei zu jedem der NAND-Glieder weiterhin das Signal MBLOAD
geführt wird, wodurch die Signale MB\6 — MB20
κι durchgeschaltet werden, wenn das Signal MBLOAD
hoch ist. Wenn das Signal MB LOAD niedrig ist, haben die Paritätsbits MB 16-MB 20 keinen Einfluß auf die
Erzeugung der neuen Paritätsbits EO-E4. Wie
dargestellt ist, ist jedes der Exclusiv-ODER-Glieder 51
ι j bis 55 mit einem entsprechenden NAND-Glied 61 bis 65
verbunden, welche Glieder gemeinsam aktiviert werden durch ein invertiertes UND-Glied 66, das als Eingangssignale das Signal MB LOAD und ein Signal INVALID-
DATA hat. Die Ausgangssignale der NAND-Glieder 61 bis 65 liefern die Paritätsfehlercodebits EO-E4, wie
oben diskutiert wurde.
Die Eingangssignale der NAND-Glieder 61 bis 65 werden auch zu einem NOR-Glied 67 während der
Leseoperation geleitet. Wenn der Speicher einen Fehler
: > feststellt, muß die Operation des Rechenwerks gestoppt
werden, bis eine Korrektur durchgeführt worden ist, und die Korrektur muß am Speicher sofort erfolgen. Wenn
ein Fehler festgestellt wird, wird eines der Eingangssignale des ODER-Gliedes 67 niedrig und das Eingangssi-
i(i gnal des Elements 68 ist niedrig, um anzuzeigen, daß ein
Lesevorgang im Gange ist. Das Ausgangssignal eines UND-Gliedes 69A ist hoch und wenn das Signal
PAR ENAB vom Rechenwerk ebenfalls hoch ist (das anzeigt, daß eine Paritätsprüfung gemacht werden
i> sollte, um die Anwesenheit von Fehlern zu untersuchen),
wird ein Signal Λί51 am Ausgang eines Gliedes 69 ß
erzeugt, welches Signal zum Rechenwerk geleitet wird, um dessen Operation zu stoppen, während der Leseteil
des Speicherzyklus im Gange ist, aber bevor das
Mi Rechenwerk den Lesezyklus vollendet. Wenn die
Korrektur durchgeführt worden ist und die korrigierten Daten in den Speicher wieder eingeschrieben worden
sind (d. h., das Signal MBLOAD liegt am Glied 66 vor),
wird das Signal M51 abgeschaltet, um dem Rechenwerk
zu gestatten, seine Leseoperation fortzuführen und dann das korrigierte Wort wie gewünscht zu lesen.
Die F i g. 6 bis 8 zeigen die Fehlerkorrekturlogik, die
im Rechenwerk angeordnet ist, wie F i g. 3 zeigt. So wird in F i g. 6 einem Zeitgebergenerator 70 ein Eingangssi-
gnal über ein ODER-Glied 71 zugeführt, und diesem letzteren Glied werden als Eingangssignale jedes der
Fehlerbits EO-E4 zugeführt Wenn kein Fehler aufgetaucht ist, ist das Ausgangssignai des ODER-Gliedes
71 niedrig, so daß der Fehlerkorrekturzeitgebergenerator, der normalerweise fortlaufend durch den
Zeitgeber des Systems getaktet ist keine Fehlerkorrek turzeitsignale Ti und T2 erzeugt Wenn jedoch ein
Fehler vorgekommen ist, so daß irgendeines der Fehlerbits E0-E4 niedrig ist, nimmt das Ausgangssi gnal des ODER-Gliedes 71 einen hohen Wert an, um die
Anwesenheit eines solchen Fehlers anzuzeigen, und der
Zeitgebergenerator 70 wird derart aktiviert, daß er das Ausgangssignal Π auf einen hohen Wert setzt Dies
zeigt den Beginn eines Fehlerkorrekturzyklus an, wie unten diskutiert wird, wobei Ti auch über ein
UND-Glied 72 zurückgekoppelt wird, um das Zeitsignal
T2 zu setzen, wobei das Ende des letzteren Signals das Ende des Fehlerkorrekturzyklus anzeigt Wenn 77 am
ODER-Glied 73 in F i g. 7 einen niedrigen Wert annimmt, wobei das Ausgangssignai dieses ODER-Gliedes
die Korrekturregister 74 bis 77 taktet (Register 77 ist in Fig. 8 gezeigt), nimmt das Ausgangssignal des
ODER-Gliedes 73 einen hohen Wert an, und diese Register werden getaktet, so daß der augenblickliche
Zustand der Speicherübertragungsleitung, einschließlich der Datenbits MEMO-1MEMXS und die Fehlerbits
£0 —£4 in diese Register eingerastet werden.
Zur gleichen Zeit wird Π zu einem UND-Glied 78 geführt, um das Fehlerkorrekturladesignal ECCLOAD
*.u erzeugen, das zurück zur Speichereinheit geleitet
wird um anzuzeigen, daß der Fehlerkorrekturzyklus begonnen hat.
Die Speichereinheit liefert anschließend ein geeignetes Signal zum Stoppen der Operation des Rechenwerks
(d. h., soweit es sich nicht um die Operation der Fehlerkorrekturschaltung handelt) während des Fehlerkorrekturzyklus.
Dieses Signal ist hier beispielsweise als das MSI-Signal in der Speichereinheit bezeichnet, wie
oben mit Bezug auf die Fig. 5 gezeigt und diskutiert wurde.
Wenn das Signal T1 einen hohen Wert annimmt, wird
die Fehlerkorrekturschaltungsanordnung im Rechenwerk entsprechend aktiviert, um den Fehler zu
korrigieren, der in dem in Frage stehenden Datenwort aufgetaucht ist, welches Datenwort in die Fehlerkorrekturregister
74 bis 76 eingespeichert worden ist, wie in Fig.8 gezeigt ist und unten näher diskutiert wird. Das
Signal ECC LOAD schaltet die Speichertreiber in der Speichereinheit von der Speicherübertragungsleitung,
wie in F i g. 4 gezeigt ist, zu der Zeit ab, zu der das Wort MEMO-MfMTB, das den Fehler enthält, und die
Fehlerbits EO-E4 in die Fehlerkorrekturregister eingerastet werden. Ein UND-Glied 79 (siehe Fig. 7)
setzt die Fehlerkorrekturschaltungsanordnung in Verbindung mit der Speicherübertragungsleitung, wenn das
Zeitsignal 7"1 beim Beginn des Fehlerkorrekturzyklus einen hohen Wert annimmt, wenn einmal der Speicher
von der Speicherübertragungsleitung abgeschaltet worden ist. Eine derartige Verbindung findet über die
Treiber 80 mit offenem Kollektor der Korrekturschaltungsanordnung statt.
Wenn einmal die Speicherbits in die Fehlerkorrekturregister eingerastet sind, arbeiten die Decoderlogikeinheiten
81 bis 85, wie in F i g. 8 gezeigt, um die modifizierten Hamming-Code-Bits, die durch die Bits
£0 —£4 dargestellt werden, zu decodieren, wie oben mit Bezug auf Tabelle 1 diskutiert wurde, und um
dadurch in geeigneter Weise zu identifizieren, welches der 16 Bits des Datenwortes, das in die Register 74 bis 76
eingerastet wurde, korrigiert werden muß. Eine
uürcn die
Erzeugung der Korrekturbits CORO-COR 15 durch die Logikeinheiten 83, 84 und 85. Die letzteren
Korrekturbits werden zu NOR-Gliedern 87 (F i g. 7) an dem Ausgang der Korrekturregister 74 bis 76 geliefert.
Entsprechend dem Decodierprozeß nimmt das richtige Bit der Korrekturbits CORO-COR15 einen niedrigen
Wert an, und der Ausgang seines entsprechenden Exclusiv-ODER-GIiedes 87 liefert ein Bit das das
Komplement des entsprechenden Bits ist welches in das Korrektursystem beim Korrekturregister eingerastet
worden war (d.h., eine »1« für eine »0« oder umgekehrt). Die korrgierten Daten werden dann über
die Treiber 80 auf die Speicherübertragungsleitung 12 gegeben.
Die Speichereinheit wird dann in geeigneter Weise aktiviert, um die von der Speicherübertragungsleitung
empfangenen, korrigierten Daten wieder einzuschreiben. Die Operation der Speichereinheit, dies sollte
wiederholt werden, war wegen der Anwesenheit eines ι Fehlerkorrekturladesignals ECC LOAD angehalten
worden, nachdem die Speichereinheit den »Lese«-Teil des Speicherzyklus vollendet hatte und vor dessen
»Wiedereinschreib«-Teil. Bei der Reaktivierung der Speichereinheit, die der Korrektur des Fehlers folgt,
ίο werden die korrigierten Daten anschließend wieder in den Speicherkern während des »Wiedereinschreib«-
Teils des Speicherzyklus eingeschrieben.
Das Ausgangssignal des ODER-Gliedes 71 am Zeitgebergeneralor 70 wird niedrig, und der Zeitgeberi)
generator 70 wird demgemäß zurückgesetzt. Zu dieser Zeit werden die korrigierten Daten zu der geeigneten
Logik, wie erforderlich, im Rechetiwetk übertragen und
auch zum Speicher, worauf der Speicher die korrigierten Daten in dem Kern an der richtigen Stelle wieder
o einschreibt. Wenn ein Fehler entdeckt worden ist und der Wunsch besteht, eine permanente Aufzeichnung des
Ortes des Woites, in dem der Fehler aufgetreten ist, an
geeigneten Eingabe-/Ausgabe-(/O-)Geräten außerhalb des Systems über geeignete /O- Daten verbindungen
2Ί verfügbar zu machen, kann die Adresse in Registern 90,
wie in Fig.9 gezeigt, über ein geeignetes Taktsignal
gespeichert werden. Nach geeigneter Aktivierung von /OTreibern 91 kann die Adreßinformation zu einer
geeigneten /O-Übertragungsleitung zur externen Bej(i
nutzung, wenn gewünscht, geliefert werden.
Ein Paar von Flip-Flop-Registereinheiten 95 und 96,
wie in Fig. 10 gezeigt, erlaubt die Operation des Fehlerkorrektursystems in je einer von vier Betriebsarten.
Bei der Betriebsart 0 ist keines der Flip-Flops ü gesetzt, und die Fehlerkorrektur ist in einem nicht
betriebsbereiten Zustand gehalten, in dem keine Korrektur und keine Unterbrechung des Rechenwerks
stattfinden können. In der Betriebsart 1 ist das Flip-Flop 95 nicht gesetzt, während das Flip-Flop % gesetzt ist. In
4(i dieser Betriebsart ist das Korrektursystem nicht
betriebsbereit gehalten, aber es wird ein Untersuchungsbetrieb für einen Prüfvorgang des Fehlersystems
ausgeführt. So wird bei einem Schreibteil des Speicherzyklus das System einen vorhersehbaren Satz von
Prüfbits zur Simulation eines Fehlers lediglich für diagnostische Zwecke liefern.
In der Betriebsart 2 ist das Flip-Flop 95 gesetzt, während das Flip-Flop 96 nicht gesetzt ist. Dies
bedeutet im Ergebnis eine Art der Inbetriebnahme, ;■} wobei das Fehlerkorrektursystem in einem betriebsfähigen
Zustand ist, aber keine Unterbrechung des Rechenwerks erfolgen kann, wenn die Fehlerprüfung
durchgeführt wird.
Bei der Betriebsart 3 sind beide Flip-Flops gesetzt, und das Fehlerkorrektursystem ist betriebsfähig, und die
Unterbrechungslogik 97 ist aktiviert, um es zu gestatten, daß die Tätigkeit des Rechenwerks für Fehlerprüfzwekke unterbrochen wird, obwohl seine Tätigkeit nicht
vollständig angehalten wird, wie in dem Fall, wenn das Signal MSl für solch einen Zweck während eines
vorliegenden Fehlerkorrekturprozesses vorhanden ist Die in den einzelnen Figuren gezeigten Schaltungen
sind teilweise in der obigen Beschreibung nicht im einzelnen erläutert In diesen Fällen müssen die
Schaltungseinzelheiten den Zeichnungen entnommen werden. Die in den Zeichnungen und in der Beschrei
bung vorkommenden Signalbezeichnungen sind der aus dem Amerikanischen stammenden Rechner-
Fachsprache entnommen. Dies gilt auch für einige in der Beschreibung nicht erscheinende Bezeichnungen von
Schaltkreisen.
In der Darstellung der F i g. 6 ist das ODER-Glied 71 durch mehrere zusammengezeichnete ODER-Glieder
dargestellt, von denen in der Zeichnung lediglich ein Ausgang mit einem Eingang des Zeitgebergenerators 70
verbunden ist Diese vereinfachte zeichnerische Darstellung ist in der Weise zu verstehen, daß die einzelnen
Ausgänge der ODER-Glieder aile mit dem Eingang des Zeitgebergenerators 70 verbunden sind. Diese vereinfachte
Darstellung wurde deswegen gewählt, weil die Glieder üblicherweise auf einem einzigen Halbleiter-
plättchen angeordnet sind und die geschild Verbindungen der Ausgänge mit den Eingängen
nachfolgenden Schaltung intern vorgenommen sine In F i g. 7 werden die Bits eines Wortes, das korri
werden soll, zu den Gliedern 87 gemeinsam entsprechenden Korrekturbits von den Logikeinh
83 bis 85 geleitet, so daß das Komplement des fals Bits geliefert werden kann. Die zusammengezeich
Glieder 80 und 87 in F i g. 7 und die zusammenge; neten Glieder in F i g. 8 wirken als getrennte Gliedi
sind deswegen zusammengezeichnet, weil sie au< einem gemeinsamen Halbleiterplättchen untergeb
werden können.
Hierzu 9 Blatt Zeichnungen
Claims (3)
1. Fehlererkennungs- und Korrektureinrichtung richtung fünf Exklusiv-ODER-Glied-Register (51 bis
für Datenverarbeitungsgeräte mit mindestens einem 55) aufweist, von denen jedes neun Eingänge
Rechenwerk, mindestens einer Speichereinheit und > aufweist, und auf die fünf 8-Bit-K.ombinationen, die
einer Fehlercodiereinrichtung bei jeder Speicherein- während des Schreibteils des SpeicherzyWus ausgeheit
zur Durchführung von Paritätsprüfungen wählt wurden, und auf die fünf 9-Bit-Kombiiiationen,
während des Schreibteils eines Speicheroperations- die während des Leseteils des Speicherzyklus
zyklus bei einer vorbestimmten Anzahl von ver- ausgewählt wurden, anspricht, um die fünf Paritätsschiedenen
ausgewählten Bit-Kombinationen glei- io prüfbits bzw. die fünf Fehlerbits zu liefern.
eher Bit-Anzahl in jedem Datenwort, wobei die 5. Einrichtung nach einem der vorhergehenden
Paritätsprüfungen eine Anzahl von je einer ausge- Ansprüche, bei dem die Bits der 16-Bit-Datenwörter
wählten Kombination zugeordneten Paritätsprüf- als Bits 0 bis 15 bezeichnet sind, dadurch
Bits liefern; und mit einer Einrichtung zur Bildung gekennzeichnet, daß die Fehlercodiereinrichtung
eines erweiterten Datenwortes, das die Daten-Bits 15 Mittel zur Durchführung von Paritätsprüfungen bei
des Datenwortes und die Paritätsprüf-Bits umfaßt, den folgenden fünf ausgewählten Kombinationen
und zum Speichern des erweiterten Datenwortes in von acht Bits des 16-Bit-Datenwortes aufweist:
der Speichereinheit; wobei die'Fehlercodiereinrich- (1) Bits 2,5,10, U, 12,13, Hund 15;
tung derart ausgebildet ist, daß sie während des (2) Bits 4,5, 6, 7, 8, 9,10 und 15;
Leseteils eines Speicheroperationszyklus Paritäts- -'<> (3) Bits 1,2, 3, 7, 8, 9,14 und 15;
prüfungen bei der gleichen vorbestimmten Anzahl (4) Bits 0,2, 3, 5, 6, 9,12 und 13; und
ausgewählter Bit-Kombinationen des Datenwortes (5) Bits 0,1, 3, 4, 6, 8,11 und 13.
durchführt und eine Anzahl von Fehler-Bits erzeugt, 6. Einrichtung nach Anspruch 5, dadurch gekennwobei jede derartige ausgewählte Kombination die zeichnet, daß die Paritätsprüfungen bei den ausgegleiche Kombination von Daten-Bits, wie sie :~> wählten Kombinationen (1), (3) und (5) ungerade während des Schreibteils ausgewählt wurde, sowie Paritätsprüfungen sind und die Paritätsprüfungen das zugehörige Paritätsprüf-Bit aufweist; wobei bei den ausgewählten Kombinationen (2) und (4) ferner das Rechenwerk eine Decodiereinrichtung gerade Paritätsprüfungen sind,
aufweist, die auf die Fehler-Bits anspricht und das 7. Einrichtung nach einem der vorhergehenden Vorhandensein und den Ort eines Ein-Bit-Fehlers im s<i Ansprüche, dadurch gekennzeichnet, daß die Deco-Datenwort feststellt, und eine auf die Decodierein- diereinrichtung auf die fünf Fehlerbits anspricht zur richtung ansprechende Korrekturvorrichtung zum Bestimmung von 32 Zuständen in bezug auf das Korrigieren des Ein-Bit Fehlers im Datenwort erweiterte Datenwort mit 21 Bit, wobei diese vorgesehen ist, dadurch gekennzeichnet, Zustände einschließen: (a) einen Zustand, bei dem daß die Fehlercodiereinrichtung (16, 18) derart i"> kein Fehler vorliegt; (b) 21 Zustände, bei denen ein ausgebildet ist, daß die während des Schreibteils und Einzel-Bit-Fehler vorliegt; (c) zwei Zustände, bei des Leseteils ausgeführten Paritätsprüfungen für denen das erweiterte Datenwort mit 21 Bit nur eine erste Gruupe der ausgewählten Bit-Kombina- Einsen und nur Nullen enthält; und (d) acht Zustände, tionen bzw. dieser Bit-Kombinationen zuzüglich des bei denen Mehrfach-Bit-Fehler vorliegen,
zugehörigen Paritätsprüf-Bits eine ungerade Pari- ■;» b. Einrichtung nach einem der vorhergehenden tätsprüfung ist, und für eine zweite Gruppe eine Ansprüche, dadurch gekennzeichnet, daß die Decogerade Paritätsprüfung. diereinrichtung auf die fünf Fehlerbits anspricht zur
der Speichereinheit; wobei die'Fehlercodiereinrich- (1) Bits 2,5,10, U, 12,13, Hund 15;
tung derart ausgebildet ist, daß sie während des (2) Bits 4,5, 6, 7, 8, 9,10 und 15;
Leseteils eines Speicheroperationszyklus Paritäts- -'<> (3) Bits 1,2, 3, 7, 8, 9,14 und 15;
prüfungen bei der gleichen vorbestimmten Anzahl (4) Bits 0,2, 3, 5, 6, 9,12 und 13; und
ausgewählter Bit-Kombinationen des Datenwortes (5) Bits 0,1, 3, 4, 6, 8,11 und 13.
durchführt und eine Anzahl von Fehler-Bits erzeugt, 6. Einrichtung nach Anspruch 5, dadurch gekennwobei jede derartige ausgewählte Kombination die zeichnet, daß die Paritätsprüfungen bei den ausgegleiche Kombination von Daten-Bits, wie sie :~> wählten Kombinationen (1), (3) und (5) ungerade während des Schreibteils ausgewählt wurde, sowie Paritätsprüfungen sind und die Paritätsprüfungen das zugehörige Paritätsprüf-Bit aufweist; wobei bei den ausgewählten Kombinationen (2) und (4) ferner das Rechenwerk eine Decodiereinrichtung gerade Paritätsprüfungen sind,
aufweist, die auf die Fehler-Bits anspricht und das 7. Einrichtung nach einem der vorhergehenden Vorhandensein und den Ort eines Ein-Bit-Fehlers im s<i Ansprüche, dadurch gekennzeichnet, daß die Deco-Datenwort feststellt, und eine auf die Decodierein- diereinrichtung auf die fünf Fehlerbits anspricht zur richtung ansprechende Korrekturvorrichtung zum Bestimmung von 32 Zuständen in bezug auf das Korrigieren des Ein-Bit Fehlers im Datenwort erweiterte Datenwort mit 21 Bit, wobei diese vorgesehen ist, dadurch gekennzeichnet, Zustände einschließen: (a) einen Zustand, bei dem daß die Fehlercodiereinrichtung (16, 18) derart i"> kein Fehler vorliegt; (b) 21 Zustände, bei denen ein ausgebildet ist, daß die während des Schreibteils und Einzel-Bit-Fehler vorliegt; (c) zwei Zustände, bei des Leseteils ausgeführten Paritätsprüfungen für denen das erweiterte Datenwort mit 21 Bit nur eine erste Gruupe der ausgewählten Bit-Kombina- Einsen und nur Nullen enthält; und (d) acht Zustände, tionen bzw. dieser Bit-Kombinationen zuzüglich des bei denen Mehrfach-Bit-Fehler vorliegen,
zugehörigen Paritätsprüf-Bits eine ungerade Pari- ■;» b. Einrichtung nach einem der vorhergehenden tätsprüfung ist, und für eine zweite Gruppe eine Ansprüche, dadurch gekennzeichnet, daß die Decogerade Paritätsprüfung. diereinrichtung auf die fünf Fehlerbits anspricht zur
2. Einrichtung nach Anspruch 1, dadurch gekenn- Erzeugung eines Korrekturwortes mit 16 Bit, wobei,
zeichnet, daß von den Paritätsprüf-Bits eines wenn ein Einzel-Bit-Fehler in einem Datenwort
Prüfbitwortes das erste mit ungerader, das zweite J>
aufgetreten war, ein Bit in einem ersten ausgewählmit gerader, das dritte mit ungerader usf. Paritäts- ten Zustand und alle anderen Bits in einem zweiten
prüfung berechnet wird, oder umgekehrt. ausgewählten Zustand sind, und wobei das eine Bit
3. Einrichtung nach Anspruch 1 oder 2, bei der das sich an einem Ort befindet, der dem Ort des
Datenverarbeitungssystem Datenworte mit 16 Bit genannten Einzel-Bit-Fehlers entspricht; und daß die
verwendet, dadurch gekennzeichnet, daß die Fehler- "><> Korrekturvorrichtung auf das 16-Bit-Korrekturwort
codiereinrichtung während des Schreibteils eines anspricht, um das Bit an der Stelle, die der Stelle
Speicherzyklus fünf Paritätsprüfungen bei fünf eines Einzel-Bit-Fehlers entspricht, zu korrigieren,
ausgewählten 8-Bit-Kombinationen der 16 Bits eines 9. Einrichtung nach einem der vorhergehenden Datenwortes ausführt, um fünf Paritätsprüfbits (CQ Ansprüche, dadurch gekennzeichnet, daß die Korbis CA) zu erzeugen; daß die Einrichtung (16) zur r> rektureinrichtung die Korrektur durch Komplemen-Bildung eines erweiterten Datenwortes ein erweiter- tärbildung des falschen Bits durchführt und weitertes Datenwort mit 21 Bit bildet, das die 16 Bits des hin Mittel zum Wiedereinschreiben des korrigierten Datenwortes und die fünf Paritätsprüfbits aufweist; 16-Bit-Datenwortes in die Speichereinheit aufweist,
daß die Fehlercodiereinrichtung weiterhin während
ausgewählten 8-Bit-Kombinationen der 16 Bits eines 9. Einrichtung nach einem der vorhergehenden Datenwortes ausführt, um fünf Paritätsprüfbits (CQ Ansprüche, dadurch gekennzeichnet, daß die Korbis CA) zu erzeugen; daß die Einrichtung (16) zur r> rektureinrichtung die Korrektur durch Komplemen-Bildung eines erweiterten Datenwortes ein erweiter- tärbildung des falschen Bits durchführt und weitertes Datenwort mit 21 Bit bildet, das die 16 Bits des hin Mittel zum Wiedereinschreiben des korrigierten Datenwortes und die fünf Paritätsprüfbits aufweist; 16-Bit-Datenwortes in die Speichereinheit aufweist,
daß die Fehlercodiereinrichtung weiterhin während
des Leseteils eines Speicherzyklus fünf Paritätsprü- *>o
fungen bei fünf ausgewählten 9-Bit-Kombinationen
des erweiterten Datenwortes mit 21 Bit durchführt,
wobei jede 9-Bit-Kombination acht Bits aufweist, die
der 8-Bit-Kombination entsprechen, die während
fungen bei fünf ausgewählten 9-Bit-Kombinationen
des erweiterten Datenwortes mit 21 Bit durchführt,
wobei jede 9-Bit-Kombination acht Bits aufweist, die
der 8-Bit-Kombination entsprechen, die während
des Schreibteils des Speicherzyklus ausgewählt <" Die Erfindung betrifft eine Fehlererkennungs- und
wurde und die weiterhin das dieser zugeordnete Korrektureinrichtung nach dem Oberbegriff des An-
Paritätsprüfbit aufweist, wodurch fünf Fehlerbits Spruchs 1. Ein derartiges System zur Fehlererkennung
(EO bis EA) geliefert werden. und Fehlerkorrektur ist jedenfalls im Prinzip durch IBM
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/575,357 US4005405A (en) | 1975-05-07 | 1975-05-07 | Error detection and correction in data processing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2619159A1 DE2619159A1 (de) | 1976-11-18 |
DE2619159C2 true DE2619159C2 (de) | 1982-05-27 |
Family
ID=24299995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2619159A Expired DE2619159C2 (de) | 1975-05-07 | 1976-04-30 | Fehlererkennungs- und Korrektureinrichtung |
Country Status (6)
Country | Link |
---|---|
US (1) | US4005405A (de) |
JP (1) | JPS51146144A (de) |
CA (1) | CA1056952A (de) |
DE (1) | DE2619159C2 (de) |
FR (1) | FR2310593A1 (de) |
GB (1) | GB1511806A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3807596A1 (de) * | 1988-03-08 | 1989-09-21 | Siemens Ag | Verfahren und anordnung zur fehlererkennung bei binaeren datenwoertern |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4077565A (en) * | 1976-09-29 | 1978-03-07 | Honeywell Information Systems Inc. | Error detection and correction locator circuits |
US4072853A (en) * | 1976-09-29 | 1978-02-07 | Honeywell Information Systems Inc. | Apparatus and method for storing parity encoded data from a plurality of input/output sources |
US4100403A (en) * | 1977-04-25 | 1978-07-11 | International Business Machines Corporation | Method and means for discriminating between systematic and noise-induced error in data extracted from word organized memory arrays |
US4139148A (en) * | 1977-08-25 | 1979-02-13 | Sperry Rand Corporation | Double bit error correction using single bit error correction, double bit error detection logic and syndrome bit memory |
US4171765A (en) * | 1977-08-29 | 1979-10-23 | Data General Corporation | Error detection system |
DE2811318C2 (de) * | 1978-03-16 | 1983-02-17 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Übertragung und Speicherung eines Teilwortes |
US4166211A (en) * | 1978-04-03 | 1979-08-28 | Burroughs Corporation | Error control system for named data |
GB2023895B (en) * | 1978-06-21 | 1982-10-13 | Data General Corp | Error detection circuit |
GB2035014B (en) * | 1978-11-06 | 1982-09-29 | British Broadcasting Corp | Cyclic redundancy data check encoding method and apparatus |
US4253182A (en) * | 1979-04-09 | 1981-02-24 | Sperry Rand Corporation | Optimization of error detection and correction circuit |
WO1981001209A1 (en) * | 1979-10-29 | 1981-04-30 | Vinnitsky Politekhn I | Method and device for detecting errors in mass data represented in p-code |
US4363125A (en) * | 1979-12-26 | 1982-12-07 | International Business Machines Corporation | Memory readback check method and apparatus |
US4380812A (en) * | 1980-04-25 | 1983-04-19 | Data General Corporation | Refresh and error detection and correction technique for a data processing system |
US4335459A (en) * | 1980-05-20 | 1982-06-15 | Miller Richard L | Single chip random access memory with increased yield and reliability |
US4346474A (en) * | 1980-07-03 | 1982-08-24 | International Business Machines Corporation | Even-odd parity checking for synchronous data transmission |
US4417339A (en) * | 1981-06-22 | 1983-11-22 | Burroughs Corporation | Fault tolerant error correction circuit |
JP2572487B2 (ja) * | 1989-11-16 | 1997-01-16 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | データの磁気記録方法 |
US5392294A (en) * | 1991-03-08 | 1995-02-21 | International Business Machines Corporation | Diagnostic tool and method for locating the origin of parasitic bit faults in a memory array |
US5426655A (en) * | 1991-07-16 | 1995-06-20 | International Business Machines Corporation | Method and apparatus for magnetic recording of data |
US5379411A (en) * | 1991-11-15 | 1995-01-03 | Fujitsu Limited | Fault indication in a storage device array |
US5455942A (en) * | 1992-10-01 | 1995-10-03 | International Business Machines Corporation | Partial page write detection for a shared cache using a bit pattern written at the beginning and end of each page |
US5453999A (en) * | 1994-04-26 | 1995-09-26 | Unisys Corporation | Address verification system using parity for transmitting and receiving circuits |
GB2289779B (en) * | 1994-05-24 | 1999-04-28 | Intel Corp | Method and apparatus for automatically scrubbing ECC errors in memory via hardware |
US5673419A (en) * | 1995-05-19 | 1997-09-30 | Simple Technology, Incorporated | Parity bit emulator with write parity bit checking |
US5987628A (en) * | 1997-11-26 | 1999-11-16 | Intel Corporation | Method and apparatus for automatically correcting errors detected in a memory subsystem |
EP1438662A2 (de) * | 2001-10-11 | 2004-07-21 | Altera Corporation | Fehlererkennung an programmierbaren logischen betriebsmitteln |
US6976197B2 (en) * | 2001-10-25 | 2005-12-13 | International Business Machines Corporation | Apparatus and method for error logging on a memory module |
US7278079B2 (en) * | 2002-04-12 | 2007-10-02 | Broadcom Corporation | Test head utilized in a test system to perform automated at-speed testing of multiple gigabit per second high serial pin count devices |
US7502326B2 (en) * | 2002-04-12 | 2009-03-10 | Broadcom Corporation | Methods used to simultaneously perform automated at-speed testing of multiple gigabit per second high serial pin count devices |
US7363557B2 (en) * | 2002-04-12 | 2008-04-22 | Broadcom Corporation | System for at-speed automated testing of high serial pin count multiple gigabit per second devices |
DE60306008T2 (de) * | 2002-04-12 | 2007-01-11 | Broadcom Corp., Irvine | Einrichtungen und Verfahren für die Hochgeschwindigkeitsprüfung von Schaltungen mit hoher Pinzahl und mehreren Gigabit |
US7328377B1 (en) | 2004-01-27 | 2008-02-05 | Altera Corporation | Error correction for programmable logic integrated circuits |
US7389465B2 (en) * | 2004-01-30 | 2008-06-17 | Micron Technology, Inc. | Error detection and correction scheme for a memory device |
US20070050668A1 (en) * | 2005-09-01 | 2007-03-01 | Micron Technology, Inc. | Test mode to force generation of all possible correction codes in an ECC memory |
US7506226B2 (en) * | 2006-05-23 | 2009-03-17 | Micron Technology, Inc. | System and method for more efficiently using error correction codes to facilitate memory device testing |
US7721178B2 (en) * | 2006-06-01 | 2010-05-18 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code |
US20070283208A1 (en) * | 2006-06-01 | 2007-12-06 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus diagnostic features |
US20070283207A1 (en) * | 2006-06-01 | 2007-12-06 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus timing improvements |
US20070283223A1 (en) * | 2006-06-01 | 2007-12-06 | International Business Machines Corporation | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with all checkbits transferred last |
WO2013128238A1 (en) | 2012-02-29 | 2013-09-06 | Freescale Semiconductor, Inc. | Debugging method and computer program product |
US9275757B2 (en) * | 2013-02-01 | 2016-03-01 | Scaleo Chip | Apparatus and method for non-intrusive random memory failure emulation within an integrated circuit |
US9146809B2 (en) * | 2013-10-07 | 2015-09-29 | Macronix International Co., Ltd. | ECC method for double pattern flash memory |
US9535785B2 (en) | 2014-01-17 | 2017-01-03 | Macronix International Co., Ltd. | ECC method for flash memory |
US10108487B2 (en) * | 2016-06-24 | 2018-10-23 | Qualcomm Incorporated | Parity for instruction packets |
DE102018126051A1 (de) * | 2018-01-12 | 2019-07-18 | Taiwan Semiconductor Manufacturing Co. Ltd. | Neuartige Speichervorrichtung |
CN109753369B (zh) * | 2018-12-28 | 2023-10-24 | 上海微阱电子科技有限公司 | 一种寄存器及内存中顺序数组的数据编码及校验方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3218612A (en) * | 1961-11-09 | 1965-11-16 | Ibm | Data transfer system |
US3439331A (en) * | 1965-06-16 | 1969-04-15 | Ibm | Error detection and correction apparatus |
US3474413A (en) * | 1965-11-22 | 1969-10-21 | Dryden Hugh L | Parallel generation of the check bits of a pn sequence |
US3478313A (en) * | 1966-01-20 | 1969-11-11 | Rca Corp | System for automatic correction of burst-errors |
US3585378A (en) * | 1969-06-30 | 1971-06-15 | Ibm | Error detection scheme for memories |
US3623155A (en) * | 1969-12-24 | 1971-11-23 | Ibm | Optimum apparatus and method for check bit generation and error detection, location and correction |
US3648239A (en) * | 1970-06-30 | 1972-03-07 | Ibm | System for translating to and from single error correction-double error detection hamming code and byte parity code |
US3697949A (en) * | 1970-12-31 | 1972-10-10 | Ibm | Error correction system for use with a rotational single-error correction, double-error detection hamming code |
US3814921A (en) * | 1972-11-15 | 1974-06-04 | Honeywell Inf Systems | Apparatus and method for a memory partial-write of error correcting encoded data |
US3851306A (en) * | 1972-11-24 | 1974-11-26 | Ibm | Triple track error correction |
US3825893A (en) * | 1973-05-29 | 1974-07-23 | Ibm | Modular distributed error detection and correction apparatus and method |
US3836957A (en) * | 1973-06-26 | 1974-09-17 | Ibm | Data storage system with deferred error detection |
JPS5440187B2 (de) * | 1973-07-25 | 1979-12-01 |
-
1975
- 1975-05-07 US US05/575,357 patent/US4005405A/en not_active Expired - Lifetime
-
1976
- 1976-04-30 DE DE2619159A patent/DE2619159C2/de not_active Expired
- 1976-05-03 CA CA251,673A patent/CA1056952A/en not_active Expired
- 1976-05-04 GB GB18211/76A patent/GB1511806A/en not_active Expired
- 1976-05-06 FR FR7613644A patent/FR2310593A1/fr active Granted
- 1976-05-07 JP JP51052041A patent/JPS51146144A/ja active Granted
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3807596A1 (de) * | 1988-03-08 | 1989-09-21 | Siemens Ag | Verfahren und anordnung zur fehlererkennung bei binaeren datenwoertern |
Also Published As
Publication number | Publication date |
---|---|
JPS5438028B2 (de) | 1979-11-19 |
CA1056952A (en) | 1979-06-19 |
FR2310593A1 (fr) | 1976-12-03 |
FR2310593B1 (de) | 1983-02-04 |
JPS51146144A (en) | 1976-12-15 |
US4005405A (en) | 1977-01-25 |
GB1511806A (en) | 1978-05-24 |
DE2619159A1 (de) | 1976-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2619159C2 (de) | Fehlererkennungs- und Korrektureinrichtung | |
DE2260850C2 (de) | Schaltungsanordnung zur Erkennung von Einzel- und Mehrfachfehlern und zur korrektur von Einzel- und bestimmten Mehrfachfehlern | |
DE3853206T2 (de) | Verfahren und gerät zur byteschreibfehlerkodierung. | |
DE2614000C2 (de) | Diagnoseeinrichtung zur Prüfung von Funktionseinheiten | |
DE2523414C3 (de) | Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen | |
DE69221045T2 (de) | Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen | |
DE69427129T2 (de) | Fehlertolerantes warteschlangenvorrichtung und verfahren dafür | |
DE2517356A1 (de) | In datenverarbeitungsanlagen universell einsetzbarer logischer modul- baustein | |
EP0067301B1 (de) | Einrichtung zur Erzeugung von Prüfbits zur Sicherung eines Datenwortes | |
DE2023908A1 (de) | Ausfallverträgliches, digitales Speichersystem | |
DE2225841C3 (de) | Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers | |
DE2030760A1 (de) | Speicherschaltung | |
DE102005048255A1 (de) | Integriertes Schaltungsbauelement und Betriebsverfahren | |
DE3209679C2 (de) | ||
DE2328869A1 (de) | Verfahren zur pruefung eines digitalen speichersystems sowie zur durchfuehrung dieses verfahrens dienendes selbstpruefendes digitales speichersystem | |
DE2357168C2 (de) | Schaltungsanordnung für einen Speichermodul | |
DE2210325A1 (de) | Datenverarbeitungssystem | |
DE1284996B (de) | Leseschaltung fuer einen Speicher | |
DE2450468C2 (de) | Fehlerkorrekturanordnung für einen Speicher | |
DE69317766T2 (de) | Fehlerkorrekturgerät für digitale Daten zur Korrektur von Einfachfehlern (sec), von Doppelfehlern (ded) und Vielfacheinzelbytefehlern (sbd) und zur Korrektur von Einzelbytefehlern ungerader Anzahl (odd sbc) | |
DE1185404B (de) | Fehlerermittlungsanlage | |
EP1444700B1 (de) | Speichertest | |
EP0347970B1 (de) | Verfahren zum Prüfen eines Festwertspeichers und Anordnung zur Durchführung des Verfahrens | |
DE69323076T2 (de) | Verfahren zur Erkennung fehlerhafter Elemente eines redundanten Halbleiterspeichers | |
DE2915113C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OGA | New person/name/address of the applicant | ||
D2 | Grant after examination |