DE2619159A1 - Fehlererkennungs- und korrektureinrichtung - Google Patents

Fehlererkennungs- und korrektureinrichtung

Info

Publication number
DE2619159A1
DE2619159A1 DE19762619159 DE2619159A DE2619159A1 DE 2619159 A1 DE2619159 A1 DE 2619159A1 DE 19762619159 DE19762619159 DE 19762619159 DE 2619159 A DE2619159 A DE 2619159A DE 2619159 A1 DE2619159 A1 DE 2619159A1
Authority
DE
Germany
Prior art keywords
bits
bit
error
data word
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19762619159
Other languages
English (en)
Other versions
DE2619159C2 (de
Inventor
Joseph Thomas West
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
Data General Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Data General Corp filed Critical Data General Corp
Publication of DE2619159A1 publication Critical patent/DE2619159A1/de
Application granted granted Critical
Publication of DE2619159C2 publication Critical patent/DE2619159C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding 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

Description

Fehlererkennungs- und Korrektureinrichtung
Die Erfindung bezieht sich allgemein auf Techniken und Geräte zur Sicheratellung der Unversehrtheit von Daten in Datenverarbeitungaaystemen und spezieller auf der artige Techniken und Vorrichtungen zur Erkennung und Korrektur von auftretenden Datenbitfehlerno Die Erfin dung betrifft eine Fehlererkennungs- und Korrektur einrichtung für Datenverarbeitungsgeräte mit mindestens einem Rechenwez'k und mindestens einer Speichereinheit·
609847/0694
In Datenverarbeitungssystemen können Einzelbitfehler oder Mehrfachbitfehler auftreten, die die Richtigkeit der verarbeiteten Daten beeinträchtigen« Solche Datenfehler können im Speicher derartiger Datenverarbeitungsgeräte auftreten und es wurde gefunden daß sie speziell dann auftreten, wenn Halbleiterspeicher verwendet werden. In Systemen mit einer relativ kleinen Datenspeicherkapazität, beispielsweise in Datenverarbeitungssystemen, die oft als ^Minicomputer" bezeichnet werden, wobei derartige Systeme häufig Speicherkapazitäten von nur 32 K Wörtern oder weniger haben, wurden die Probleme der Unversehrtheit der Daten oft nicht als so wichtig angesehen wie Datenfehler, von denen es wahrscheinlich ist, daß sie in Systemen mit einer sehr viel größeren Speicherkapazität auftreten· Aber da Minicomputer immer größere Speicherkapazitäten verwenden, die sich manchmal bis zu einer Speicherkapazität von 128 K Wörtern oder mehr erstreckt, und da sie bei einer größeren Vielfalt von Anwendungen verwendet werden, hat das Problem der Datenfehler, speziell der Einzeldatenfehler, begonnen, die Aufmerksamkeit der Entwickler und Hersteller auf sich zu lenken·
In Systemen, die Einzelbitfehler erkennen, hängen die anwendbaren Fehlerkorrekturtechniken oft von der speziellen Anwendung ab, bei der das Datenverarbeitungssystem verwendet wird. Wo beispielsweise solche
609847/0694
Rechner bei dor Kontrolle von Herstellungsprozessen auf einer Fertigungsstraße "benutzt werden und die Anwesenheit einen ttinzelbitfehlers äußerst schädlich sein kann, kann es oft sein, daß die gesamte Produktionsstraße vollständig abgeschaltet werden muß, während der Fehler in irgend einer geeigneten Weise korrigiert wird» Da solche Abschaltungen kostspielig und zeitraubend sind, ist es wünschenswert, daß man in der Lage ist, die Fehler nicht nur festzustellen, sondern sie auch im wesentlichen sofort zu korrigieren·
Bei anderen Anwendungen, wo ein Fehler während der Durchführung eines speziellen Softwareprogramms festgestellt wurde, war die Methode häufig die, daß man den Fehler korrigierte und das ganze Programm von Beginn an nocheinmal ablaufen ließ. Bei Anwendungsfällen, bei denen das Programm lang ist, beispielsweise wo das Programm einige Tage laufen kann, verbraucht ein derartiges Verfahrens mit einem erneuten Programmlauf beträchtlich Zeit, so daß es wünschenswert ist, in der Lage zu sein, Fehler prompt festzustellen und zu korrigieren, um sowohl den Zeitverlust als auch die Kosten, die durch den erneuten Programmablauf entstehen können, zu vermeiden.
Bei Rechnern mit relativ großer Kapazität wird die Fehlererkennung häufig durch die Benutzung von üblichen Paritätsprüfungen durchgeführte Solche übliche
609847/0694
Paritätsprüfungsverfahren erkennen aber nicht alle Einzelbitfehler, die auftreten können, und selbst für diejenigen Einzelbitfehler, die erkannt wurden, sorgen die Techniken mit Paritätsprüfung nicht für eine Korrektur,, Bei der Benutzung von konventionellen Parität3prüfungsverfahren müssen weitere Techniken für die Fehlerkorrektur ersonnen werden, und hierzu wurde vorgeschlagen, Hamming-Codes zu verwenden in Verbindung mit Paritätsprüfungen, um eine direkte Adresse für den Fehlerort zu erhalten, so daß er korrigiert werden kann« Das hauptsächliche Problem bei der Verwendung von üblichen Hamming-Codes zur Erzeugung einer direkten Adressinformation liegt in der Tatsache, daß zu viele Hamming-Code-Glieder benötigt werden, um eine passende Adressidentifikation zu erhaltene 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 Datenworts repräsentieren, durch ein einzelnes logisches Element (d.h. ein Exclusiv-ODKR-Element) bei der Verwirklichung von Verfahren mit Hamming-Code verarbeitet werden.- Beim gegenwärtigen ütand der Technik sind aber Logikelemente mit mehr als höchütens neun 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 Fehlererkennung- und Korrektursystems. Ein derartiger Koyfconanstieg ist besonders
609847/0694
bei Minicorcjmuf?!"—'-1 ;/stemen von F^droeil, wo derartige Kosten ein für 3.-Xn Wettbewerb wichtiger Umstand sind» Daher wurde die Verwendung von konventionellen Hamming-Codes zur Erzeugung direkter Adressinformation üblicherweise vermieden, ausgenommen in Systemen mit relativ großer Kapazität«
Der Erfindung liegt die Aufgabe zugrunde, diese Nachteile zu vermeiden.
Die Erfindung besteht darin, daß eine Fehlercodiereinrichtung bei jeder Speichereinheit vorgesehen ist zur Durchführung von Paritätsprüfungen während des Schreibteils eines Speicheroperationszyklus bei einer vorbestimmten Anzahl von verschiedenen ausgewählten Bitkombinationen in jedem Datenwort, dass jede Kombination die gleiche Oesamtanzahl von Bits aufweist, daß die Paritätsprüfungen eine Anzahl von Paritätsprüfbits liefern, von denen jedes einzelne einer der ausgewählten Kombinationen zugeordnet ist; daß eine Einrichtung zur Bildung eines erweiterten Datenworts, das die Datenbits des Datenworts und die Paritätsprüfbits umfaßt, und zum Speichern des erweiterten Datenworts in der Speichereinheit vorgesehen ist; daß die Fehlereodiereinrichtung derart ausgebildet ist, daß sie während des Leseteils eines Speicheroperationszyklus Paritätsprüfungen bei der gleichen vorbestimmten Anzahl ausgewählter Bitkombinationen des erweiterten Datenworts durchführt, wobei jede derartige ausgewählte Kombination die gleiche ausgewählte Kombination von Datenbits, wie sie während des Schreibteils ausgewählt wurde, und das ihr zugeordnete Paritätsprüfbit umfaßt, und daß durch die Paritätsprüfungen eine Anzahl von Fehlerbits erzeugt wird;
609847/0694
daß das Rechenwerk eine Decodiereinrichtung aufweist, die auf die Fehlerbits anspricht und das Vorhandensein und den Ort eines Ein-Bit-Fehlers im Datenwort feststellt, und daß eine auf die Decodiereinrichtung ansprechende Korrekturvorrichtung zum Korrigieren des Ein-Bit-Fehlers im Datenwort vorgesehen ist.
Gemäß der Erfindung wurde eine Erkennungs- und Korrekturtechnik geschaffen, die eine spezifische Identifizierung aller Einzelbitfehler liefert, die in jedem Datenwort vorkommen können· Die Erfindung benutzt 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 neun Eingängen. Daher ist die Erfindung, wie sie hier beschrieben ist, obwohl in Systemen jeder Kapazität nützlich, speziell von Vorteil für die Benutzung in Datenverarbeitungssystemen mit einer relativ kleinen Speicherkapazität, wie in Minicomputer-Systemen, und sie benötigt für ihre Verwirklichung nicht speziell entwickelte und relativ teure Logikelemente·
Weiterhin ist das System gemäß der Erfindung so entworfen, daß es nicht nur die Identifizierung aller Einzelbitfehler liefert, sondern auch die Identifizierung derjenigen Zustände, die einen wesentlichen
609847/0694
Fehler einer Speichereinheit repräsentieren, wobei das während des Fehlererkennungsprozeeses ausgelesene Wort entweder überall Einsen oder überall Nullen enthält; diese Zustände können das Ergebnis solcher Fehler der Speichereinheit sein, daß ein Ersatz der ganzen Einheit erforderlich ist.
Gemäß einer speziellen Ausführungsform des Fehlererkennungs- und Korrektursystems gemäß der Erfindung für die Benutzung bei Dntenverarbeitungssystemen zur Feststellung von Fehlern in den Datenworten wird eine Anzahl von Paritatsprüfbits aus jedem Wort gebildet und dazu hinzugefügt, um ein erweitertes Datenwort zu erhalten, das in einer Speichereinheit zum Zweck der nachfolgenden Fehlererkennung und Korrektur gespeichert wird. Bei der Bildung dieser zusätzlichen Anzahl von Paritätsprüfbits wird ein einzigartiger Paritätsprüfprozeß verwendet, der tatsächlich einen modifizierten Hamming-Code-Codierprozeß darstellt»
Demgemäß werden während des Schreibteils des Speicheroperationszyklus Paritätsprüfungen bei einer vorbestimmten Anzahl von unterschiedlichen, und besonders ausgewählten Bitkombinationen eines Datenworts durchgeführt, um die Paritätsprüfbits zu erzeugen· So werden beispielsweise für ein 16-Bit-Datenwort fünf Paritätsprüfungen während des Schreibteils des Speicherzyklus bei fünf unterschiedlichen 8-Bit-Kombinationen der Datenwortbits durchgeführt, um die fünf Paritätsprüfbits zu bilden, die dann den ursprünglichen 16 Datenbits hinzugefügt werden, um ein erweitertes Datenwort
609847/0694
mit 21 Bit zu bilden, das dann in geeigneter Weise geschriaben wird, d.h. in der Speichereinheit gespeichert wird.
Während des Leseteils des Speicherzyklus, wenn ein derartiges »/ort wieder hergestellt werden soll, d.h„ aus der Speichereinheit gelesen werden soll, wird eine weitere Anzahl von Paritätsprüfungen "bei derselben vorbestimmten Anzahl von unterschiedlichen und speziell ausgewählten Bitkombinationen in dem gespeicherten erweiterten Datenwort durchgeführt, um dieselbe vorbestimmte Anzahl von Paritätsprüffehlerbits zu erzeugen. Die ausgewählten Kombinationen von Bits des gespeicherten Worts umfassen dieselben ausgewählten Bitkombinationen, wie sie bei den Paritätsprüfungen des ursprünglichen Datenworts verwendet wurden zuzüglich ein Bit, das dem Paritätsprüfbit entspricht, das jeder Kombination während des Schreibteils des Speicherzyklus zugeordnet ist. So werden für ein gespeichertes 21-Bitwort, das die ursprünglichen 16 Datenbits und die 5 Paritätsprüfbits umfaßt, die Paritätsprüfungen während des Leseteils bei fünf ausgewählten Kombinationen von 9 Bits des 21-Bit-Worts durchgeführt, welche 9 Bits die gleichen 8-Bit-Kombinationen, die ursprünglich verwendet wurden, einschließt zuzüglich des Paritätsprüfbits, das in jedem einzelnen Fall diesen zugeordnet ist.
Die fünf Fehlerbits bilden ein "Fehlereodewort" das in geeigneter Weise decodiert werden kann, um festzustellen, ob ein Fehler aufgetreten ist0 Das 5-Bit-
609 8.4 7/0894
Fehlerwort, das auf diese Weise gebildet worden ist, identifiziert alle Einzelbitfehler, die in dem 16-Bit-Datenwort aufgetreten sein können, und wird gleichfalls benutzt, um gewisse andere Bedingungen zu identifizieren, die einen im wesentlichen vollständigen Ausfall der üpeichereinheit darstellen Cd.h., wo das gespeicherte 21-Bit-Wort, wie es gelesen wird, nur Binsen oder nur Nullen enthält), und welches Zustände darstellt, in denen einige Mehrfach-Bitfehler auftreten.
Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung eines Ausführungsbeispiels der Erfindung anhand der Zeichnung, die erfindungswesentliche Einzelheiten zeigt, und aus den Ansprüchen. Die einzelnen Merkmale können je einzeln für sich oder zu mehreren in beliebiger Kombination bei einer Ausführungsform der Erfindung verwirklicht sein.
Fig. 1 zeigt eine Darstellung der Art, in der die Paritätsprüfbits entsprechend der Erfindung gebildet werden;
Figo 2 zeigt eine Darstellung der Art, in der die Fehlerbits entsprechend der Erfindung gebildet werden;
Fig. 5 zeigt ein Blockdiagramm der Fehlererkennungsund Korrektureinrichtung der Erfindung}
Figo 4· zeigt eine detailliertere Zeichnung des Bpeicherpufferregisters des Systems nach Fig. 3j
L INSPECTED
609847/0894 TED
Fig· 5 zeigt eine detailliertere Zeichnimg des Codeüenerators des Systems nach. Fig. 3;
Fig. 6 zeigt eine detailliertere Zeichnung der Zeitsteuerung des Systems nach Fig. 3»
Figo 7 zeigt eine detailliertere Zeichnung eines Teils des Korrekturdecoders des Systems nach Fig. 3}
Fig. 8 zeigt eine detailliertere Zeichnung eines Teils des KorrekturdecOders des Systems nach Fig. J>\
Fig. 9 zeigt eine detailliertere Zeichnung der Fehlerspeicherung des üyatems nach Fig. 3 und
Fig. 10 zeigt eine detailliertere Zeichnung der Logik für die steuerung der üperationsart des erfindungagemäßen Systems und die Logik zum Unterbrechen dea Datenverarbeitungsgeräts dafür (Interrupt-Logik).
Vor der Diskusaion der speziellen Fehlererkennungs- und 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 üpeichereinheit auftritt. Weiterhin sieht das Üystem die Möglichkeit vor, Fehler aufzuzeichnen, indem es eine geeignete Adresse aufrechterhält, und es sieht Bitregister hierfür vor und weiterhin sorgt es für die Unterbrechung der Operation eines
609847/0694
Rechenwerks, wenn Fehler auftreten, falls gewünscht. Das System ist so ausgelegt, daß es seine Fehlererkennung während der normalen Speicherzyklon ohne irgend eine Zeitverzögerung durchführt. Während jener Zyklen, innerhalb von denen 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-Bits-Datenworte benutzt, wie oben erwähnt, fügt das System zu jedem 16-Bit-Worfc 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äteprüfbits, die darin als Prüfbits 00, 01, 02, 03 und bezeichnet sind. Die Prüfbits in jedem Fall werden erzeugt durch Berechnung entweder einer ungeraden oder
609847/0694
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-Datenworts prüft. Solche Paritätaprüfungen stellen eine einzigartige Modifikation der üblichen Paritätsprüfungen dar, die in einem einfachen Hamining-Code-Prozeß, der bei Fehlererkennungssystemen zur Zeit verwendet wird, durchgeführt werden.
Wie im Diagramm der Fig. 1 gezeigt ist, prüft beispielsweise das erste Prüfbit GO die ungerade Parität der Datenbits 2, 5 und 10 bis 15; das Prüfbit C1 prüft die gerade Parität der Datenbits 4 bis 10 und 15» das Prüfbit C2 prüft die ungerade Parität der Datenbits 1 bis 3» 7 bis 9, 14 und 15; das Prüfbit 03 prüft die gerade Parität der Datenbits 0, 2, 3, 5, 6, 9, 12 und 13, und daa Prüfbit 04 prüft die ungerade Parität der Datenbits 0» 1i 3, 4, 6, 8, 11, 13o In Fig. 1 bedeuten die mit durchgezogener Linie dargestellten Paritätsprüfungen, die den Prüfbits CO, 02 und 04 zugeordnet sind, "ungerade" Paritätsprüfungen, während die gestrichelten Linien, die den Prüfbits C1 und 03 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-Datenworts und die Muster-Prüfbits CO bis 04, die von diesen in spezifischer V/eise abgeleitet wurden. Das erweiterte 21-Bit-Wort wird dann in den Speicher während eines "Schreib"-Teils des Speieherzyklus geschrieben.
609847/0694
Wenn das erweiterte 21-Bit-Wort, das auf diese V/eise geschrieben wurde, anschließend gelesen wird, wird eine einzigartige Paritätsprüfung davon wiederum berechnet, dieseamal für die gesamten 21 Bits, einschließlich der fünf zusätzlichen Paritätsprüfbits OO bis C4-. 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 Falle jede der Paritätsprüfungen das entsprechende Prüfbit, wie in Fig. 2 gezeigt ist, so daß die Paritätsprüfungen mit Bezug auf 9-Bit-Kombinationen des 21-Bit-Worts gemacht werden. Die wiederum berechneten Paritäten liefern ein neues 5-Bit-Fehlercodewort, das Fehlerbits EO bis E4 aufweist, wie man darin siehto 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 m ^±3 E^. Wie vorher, werden die Fehlercodebits EO, E2 und E4 erzeugt durch eine "ungerade" Paritätsprüfung, wie sie durch die ausgezogenen Linien angedeutet ist, während die Fehlercodebits E1 und E3 durch eine "gerade" Paritätsprüfung, wie durch die gestrichelten Linien angezeigt, erzeugt werden.
Für das spezielle in den Fig. 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 wurdö, eine "1" ist, während es in dem gelesenen
609847/0694
Wort eine "O" ist. üolch ein Einzelbitfehler hat die Erzeugung eines einzigartigen oder eindeutig definierten Fehlercodeworts zur Folge, das in dem zur Diskussion stehenden Fall durch die 5-Bit-Fehlercodebits EO bis E4 als 10100 dargestellt wirdo Die Erzeugung eines 5-Bit-Fehlercodeworts 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-Worts nach ihrem Ort identifiziert werden, 2, bei denen das 21-Bit-Wort, wie es an der betreffenden üpeicherstelle gelesen, wird, nur Einsen oder nur Nullen enthält (was einen im wesentlichen vollständigen Ausfall der Speichereinheit darstellt) und 8, 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 gezeigte
609847/0694
Tabelle
Fehlercodewort Bedeutung
Kein Fehler
Fehler war im Prüfbit Fehler war im Prüfbit Fehler war im Datenbit Fehler war im Prüfbit Fehler war im Datenbit Fehler war in mehreren Bits Fehler war im Datenbit Fehler war im Prüfbit Fehler war im Datenbit Alle 21 Bits des Speichers sind Fehler war im Datenbit Fehler war im Datenbit Fehler war im Datenbit Fehler war im Datenbit Fehler war in mehreren Bits Fehler war im Prüfbit Fehler war im Datenbit Fehler war im Datenbit Fehler war im Datenbit Fehler war im Datenbit Alle 21 Bits des Speichers sind Fehler war im Datenbit Fehler war in mehreren Bits Fehler war im Datenbit Fehler war in mehreren Bits Fehler war im Datenbit Fehler war in mehreren Bits Fehler war im Datenbit Fehler war in mehreren Bits Fehler war in mehreren Bits Fehler war in mehreren Bits
609847/Q694
Das Fehlerwort, das auf diese Weise bei der Speichereinheit erzeugt worden ist, wird dann der Rechenwerkfehlerkorrekturlogik zugeführt, die eine Decodierlogik zum Becodieren des Fehlercodeworts zur Identifizierung des Orts des Einzelbitfehlers aufweist, Diese Logik sorgt dann in geeigneter Weise für die Korrektur des fehler^ haften 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 Speicherworts beim Rechenwerk gespeichert» Die Fehlerkorrekturlogik sorgt auch für eine geeignete Unterbrechung der !Tätigkeit des Rechenwerks, bis dieser Korrekturpro«efl abgeschlossen ist. Das korrigierte Wort wird daraufhin in den speziellen Speichermodul an die korrekte Adresse zurüokübertragen und dort wieder eingeschrieben.
Mit Bezug auf die Verwirklichung der Fehlererkennungsund Korrekturlogik bei einer typischen Speichereinheit und bei einem Rechenwerk, zeigt Fig. 3 geeignete Abschnitt· 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 (SUE) verbunden sind. Bei dem beschriebenen Ausführungebeispiel bringt die Rechenwerkfehlerlogik, die im einzelnen später beschrieben wird, die Möglichkeit der Fehlerkorrektur für jede von mehreren Speichereinheiten mit keiner Geschwindigkeit s- oder Leistungsverminderung während der nicht-korrigierenden Zyklen·
ORfQfNAL
609847/0694
Die Kernebene 1OA der Speichereinheit 10 weist beispielsweise eine Kernebene mit 8K Wörtern jedes mit 21 Bits, auf. Geeignete Leseverstärker 14· liefern Lesebits 0 bis 20 von den Kernspeichervorrichtungen, wobei die letzteren Vorrichtungen durch geeignete X-Y-Treiber 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 geliefert werden kann, wie gezeigt. Das Speicherpufferregister speichert entweder ein Wort zum Einschreiben in eine Adressstelle in der Kernebene von der Speicherübertragungsleitung oder ein Wort, das von einer Adressteile in der Kernebene ausgelesen wurde, zur Eingabe in die Speicherübertragungsleitung 12 über die Speicherübertragungsleitungstreiber 17·
Ein Codegenerator 18, dem ebenfalls die Datenwortbits 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 04·) zu erzeugen. Wenn die Codegeneratorlogik ihre Paritätsprüfung der Bits 0 bis 15 während einer ursprünglichen Schreiboperation macht, werden die Prüfbits 16 bis 20 zum Speicherpufferregister 16 und hierauf zu der Kernebene 1OA 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
609847/0694
gelesen werden, einschließlich der Speicherdatenbits O bis 15 und der Prüfbits 16 bis 20. Eine derartige Paritätsprüfungsoperation erzeugt die Fehlercodebits EO bis EA-zur Lieferung an einen Korrekturdecoder 20 der Fehlerlogik des Rechenwerks.
Die Speichereinheit weist auch ein Speicheradressregister zur Speicherung von Adressen, wie sie von einer Adressübertragungsleitung 22 (AÜL) erhalten werden, auf. Der Korrekturdecoder 20 beim Rechenwerk decodiert die Fehlercodebits EO bis E4 und macht eine geeignete Korrektur an der identifizierten Bitstelle, wenn ein Einzelbitfehler aufgetreten ist, wie oben diskutiert, und anschließend liefert er ein korrigiertes Datenwort, bezeichnet als CORC0-15)» zur Lieferung zu den Datenverarbeitungselementen im Rechenwerk über ein Exclusiv-ODER-Gatter 23· Wenn keine Korrektur erforderlich ist, wird das Datenwort, wie es aus der Kernebene ausgelesen wird, zu den Datenverarbeitungselementen des Rechenwerks direkt von der Speicherübertragungsleitung über das Gatter 23 geleitet, wie gezeigt. Die Adresse des Orts des falschen Datenworts wird in geeigneter Weise in einem Speicherfehleradressregister 24 gespeichert, während das Fehlercodewort EO bis E4· aus dem Speicher ebenfalls in geeigneter Weise in einem Speicherfehlercoderegister 25 gespeichert wird, wie gezeigt, wobei diese Adress- und Fehlercodeinformation ebenfalls zu den geeigneten Datenverarbeitungselementen des Rechenwerks geleitet wird, wie näher unten beschrieben wird. Die Speichereinheit weist
609847/0894
auch eine geeignete Fehlerkorrektursteuerlogik 27 auf, die im Detail weiter unten beschrieben wird, zur Steuerung der Operation der Elemente der Speichereinheit, die bei der Fehlerkorrekturoperation teilnehmen. Das Fehlerkorrekturladesignal (ECC LOAD), das Paritätsaktiviersignal (PAB ENAB) und das Schreibinhibitsignal (WINH) werden für diesen Zweck durch das Rechenwerk geliefert, wie im einzelnen unten beschrieben wird.
Die Fig. 4- bis 7 zeigen genauer die Logik, die in einer typisehen Speichereinheit verwendet wird. So sind in Fig. das Speicherpufferregister und der erweiterte Pufferregisterabschnitt davon für die Speicherbits 16 bis 20 gezeigt, die sechs 8-Bit-Register 30 bis 35 aufweisen. Jedem der Register 30 bis 33 werden vier MÜH - Bit-Eingangssignale des 16-Bit-Worts MEM 0-15 von der Speicherübertragung si ei tung und vier entsprechende Speicherortiesesignale (S0-S15) zugeführt zusammen mit einem Taktpulssignal, das bezeichnet wird als das Speicherpufferladesignal (.IiBLOAD; zum rechtzeitigen Aufladen der Register. Die Register haben die Eigenschaft, beim Beginn eines jeden Speicherzyklus mit einem geeigneten Speicherzyklussignal (MEM Glüliti) zurückgesetzt zu werden und ebenfalls mit einem geeigneten Signal zum Löschen des Registers vor einem Lesezyklus (MB !fRKbuT). Die Ausgangs signale der Register 30 bis 33 werden als Speicherpuffersignale MB0-MB15 bezeichnet, und jedes wird zu einem getrennten Speicherübertragungsleitungstreiber (ODER-Gatter) 36, wie gezeigt, geleitet.
609847/0694
Jedes der UND-Gatter 36 wird aktiviert durch ein DATA ENABLE - Signal, das Daten auf die Übertragungsleitung bringt, mit der Ausnahme jedoch, wenn das Signal EGG LD 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-Bit-Registern 34 und 35 aufweist, die mit dem Speicher durch Leseleitungen S16-S20 und fünf Leitungen vom Paritätsschaltkreis 50 (in Fig. 5 gezeigt) verbunden sind, wobei die Signale auf den letztgenannten fünf Leitern die fünf Paritätsprüfbits GO bis G4 darstellen, wie mehr im einzelnen unten mit Bezug auf Fig. 5 diskutiert wird. Das Signal MB PREoET wird benutzt, um aus den Registern 34 und 35 die Lesebits 316-S20 vor einem Lesezyklus zu löschen. Das Signal WIM wird für eine Software-Prüfung des Signals benutzt, und bewirkt, wenn es benutzt wird, daß alle Ausgangs-Bit s"Wi£=MB2Ö~ "1" sind, wenn das Signal WIM niedrig 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 erweiterten Pufferregistern 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-MBI5 zu erzeugen. Die Ausgangssignale der Register 34 und 35
609847/0694
werden als Bits ΜΒ16-ΠΒ20 bezeichnet.
Fig. 5 zeigt die Paritätsschaltkreise 50, die in der Speichereinheit angeordnet sind, wie dies auch die in Fig. 4 gezeigte Speicherpufferregisterschaltung ist. Der Paritätsschaltungskreis 50 schließt fünf Exclusiv-ODEH-Gatter-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 durch die Firma Texas Instruments Corporation 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 Gattereinheiten nicht nur als Generatoren für Prüfbits mit ungerader/gerader Parität, sondern auch als PrüfSignalgeneratoren· Die Ausgangsleitungen, die die Bits OO - 05 von Jedem der Exclusiv-ODER-Gatter-Halbleiterplättchen 51 bis 55 darstellen, sind ssurtUsk zu den erweiterten Speicherpufferregistern 34· und 35 (siehe Fig. 4) verbunden und liefern die erzeugten Paritätsbits, wodurch in einer Schreiboperation diese Paritätsbits aus den letztgenannten Speicherpufferregistern durch Taktsignale herausgeholt werden zu einer Zeit, die durch das zeitverzögerte MB LOAD-Signal bestimmt ist, zur Erzeugung der Speicherpufferregistersignale MB16-hB20·
60984 7/0694
Diese Paritäbsbits, die in dem erweiterten Speicherpuffer 16, wie in Fig. 1 gezeigt, gespeichert werden, werden wieder während eines Lesezyklus unmittelbar vor einer Datenübertragung geprüft. Wenn die Überprü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 Kern- und Speichervorrichtungen der Speichereinheit geleitet. Die Verwendung von fünf üblichen und leicht verfügbaren Exclusiv-ODER-Gatter-Registern des Typs mit neun Eingängen, wie in Fig. 3 gezeigt, vermeidet das Erfordernis von speziell entwickelten und teueren 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üfbits aus ausgewählten 8-Bit-Kombinationen des ursprünglichen 16-Bit-Datenworts erzeugt werden, und bei dem die Fehlercodewortbits erzeugt werden durch Paritätsprüfungen von ausgewählten 9-Bits-Kombinationen des erweiterten Worts mit 21 Bit, wie es gespeichert wird, wie oben beschrieben. Der modifizierte Code vom Hamming-Typ wird entsprechend durch die Exclusiv-ODER-Gatter mit den geeigneten Kombinationen der Eingangssignale, wie in Fig. 5 illustriert, verwirklicht.
Die fünf Exclusiv-ODER-Gatter-Halbleiterplättchen 51 bis sind ebenfalls mit den Ausgängen MB16-MB20 über NAND-Gatter 56 bis 60 verbunden, wobei zu jedem der NAND-Gatter weiterhin
609847/0694
das Signal MB LOAD geführt wird, wodurch die Signale MB16-MB20 in dieser Weise geschaltet werden, wenn das Signal MB LOAD hoch ist. Wenn das Signal MB LOAD niedrig ist, haben die Paritätsbits MB16-MB20 keinen Einfluß auf die Erzeugung der neuen Paritätsbits E0-E4. Wie dargestellt ist, ist jedes der Exclusiv-ODER-Gatter 51 bis 55 mit einem entsprechenden NAND-Gatter 61 bis 65 verbunden, welche Gatter gemeinsam aktiviert werden durch ein invertiertes UND-Gatter 66, das als Eingangssignale das Signal ÜB LOAD und ein Signal INVALID DATA hat. Die Ausgangssignale der NAND-Gatter 61 bis 65 liefern die Paritätsfehlercodebits EO-E4-, wie oben diskutiert wurde.
Die Eingangssignale zu den NAND-Gattern 61 bis 65 werden auch zu einem NOR-Gatter 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 zum ODER-Gatter 6? niedrig und das Eingangssignal zum Element 68 ist niedrig, um anzuzeigen, daß ein Lesevorgang im Gange ist. Das Ausgangssignal eines UND-Gatters 6°/A ist hoch und wenn das Signal PAR ENAB vom Rechenwerk ebenfalls hoch ist (das anzeigt, daß eine Paritätsprüfung gemacht werden sollte, um die Anwesenheit von Fehlern zu untersuchen), wird ein Signal MS1 am Ausgang eines Gatters 69B erzeugt, welches Signal zum Rechenwerk geleitet wird, um dessen Operation zu stoppen, während der Leseteil des Speicherzyklus
609847/0694
im Gange ist, aber "bevor das 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 Gatter 66 vor), wird das Signal HsT entfernt, um dem Rechenwerk zu gestatten, seine Leseoperation fortzuführen und dann das korrigierte Wort zu lesen, wie dies gewünscht wird.
Die Fig. 6 bis 8 zeigen die Fehlerkorrekturlogik, die im Rechenwerk angeordnet ist, wie Fig. 3 zeigt. So wird in Fig. 6 einem Zeitgebergenerator 70 ein Eingangssignal über ein ODER-Gatter 71 zugeführt, und diesem letzteren Gatter werden als Eingangssignale jedes der Fehlerbits EO-E4 zugeführt. Venn kein Fehler aufgetaucht ist, ist das Ausgangssignal des ODER-Gatters 71 niedrig, so daß der Fehlerkorrekturzeitgebergenerator, der normalerweise fortlaufend durch den Zeitgeber des Systems getaktet ist, keine Fehlerkorrekturzeitsignale T1 und T2 erzeugt. Wenn jedoch ein Fehler vorgekommen ist, so daß irgendeines der Fehlerbits EO-Ek niedrig ist, nimmt das Ausgangssignal des ODER-Gatters 71 einen hohen Wert an, um die Anwesenheit eines solchen Fehlers anzuzeigen, und der Zeitgebergenerator wird derart aktiviert, daß er das Ausgangssignal T1 auf einen hohen Wert setzt. Dies zeigt den Beginn eines Fehlerkorrekturzyklus an, wie unten diskutiert wird, wobei T1 auch zurückgekoppelt wird über ein UND-Gatter 72, um das Zeitsignal T2 zu setzen, wobei das Ende des letzteren Signals das Ende des Fehlerkorrekturzyklus anzeigt. Wenn TT am ODER-Gatter in Fig. 7 einen niedrigen Wert annimmt, wobei das Ausgangssignal dieses ODER-Gatters die Korrekturregister 7^ bis 77
609847/0694
taktet (Register 77 ist in Fig. 8 gezeigt), nimmt das Ausgangssignal des ODER-Gatters 73 einen hohen Wert an und jene Register werden getaktet, so daß der augenblickliche Zustand der Speicherübertragungsleitung, einschließ Id ch der Datenbits MM0-MEM15 und die Fehlerbits EO-E4-in ihre Register eingerastet werden.
Zur gleichen Zeit wird T1 zu einem UND-Gatter 78 geführt, um das Fehlerkorrektur lade signal ECG 1LOAD zu 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. eine andere als die Operation der Fehlerkorrekturschaltung darin) während des Fehlerkorrekturzyklus. Dieses Signal ist hier beispielsweise als das M81-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 7^· his eingespeichert worden ist, wie in Fig. 8 gezeigt ist und unten näher diskutiert wird. Das Signal EOO LOAD schaltet die Speichertreiber in der Speichereinheit von der Speicherübertragungsleitung ab, wie in Fig. 4 gezeigt ist, zu der
609847/0694
Znifc, zu der das Wort HEiIO-MEMI5, das den Fehler enthält, und die Fehlerbits E0-E4- in die Fehlerkorrekturregister eingerastet werden. Ein UND-Gatter 79 (siehe Fig. 8) setzt die Fehlerkorrekturschaltungsanordnung in Verbindung mit der Speicherübertragungsleitung, wenn das Zeitsignal T1 einen hohen Wert annimmt beim Beginn des Fehlerkorrekturzyklus, wenn einmal der Speicher von der Speicherüberbragungsleitung abgeschaltet worden ist. Eine derartige Verbindung findet statt über die Treiber 80 mit offenem Kollektor der Korrekturschaltungsanordnung.
Wenn einmal die Speicherbits in die Fehlerkorrekfcurregister eingerastet sind, arbeiten die Decoderlogikeinheiten 81 bis 85, wie in Fig. 8 gezeigt, um die modifizierten Hamming-Code-Bits, die durch die Bits E0-E4 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 Datenworts, das in die Register 74- "bis 76 eingerastet wurde, korrigiert werden muß. Eine derartige Korrektur erfolgt durch die geeignete Erzeugung der Korrekturbits CORO-C0R15 von den Logikeinheiten 84, 85 und 86. Die letzteren Korrekturbits werden zu ITOR-Gattern 87 (Fig. 8) an dem Ausgang der Korrekturregister 74- his 76 geliefert. Entsprechend dem Decodierprozeß nimmt das richtige Bit der Korrekturbits COKO-CORIi? einerLjniedrigen Wert an und der Ausgang seines entsprechenden Exclusiv-ODER-Gatters 87 liefert ein Bit, das das Komplementär des entsprechenden Bits ist, welches in das
609847/0694
Korrektursystem beim Korrekturregister eingerastet worden war (d.h. eine "1" für eine "0" oder umgekehrt). Die korrigierten Daten werden dann auf die Speicherübertragungsleitung über die Ubertragungsleitungstreibereinheiten 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 angehalten worden wegen der Anwesenheit eines Fehlerkorrekturladesignals EGC LOAD, 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 eingeschrieben während des"Wiedereinschreib"-Teils des Speieherzyklus.
Das Ausgangssignal des ODER-Gatters 71 sm Zeitgebergenerator wird niedrig und der Zeitgebergenerator wird demgemäß zurückgesetzt. Zu dieser Zeit werden die korrigierten Daten zu der geeigneten Logik, wie erforderlich, im Rechenwerk übertragen und auch zum Speicher, worauf der Speicher die korrigierten Daten in dem Kern an der richtigen Stelle wieder einschreibt. Wenn ein Fehler entdeckt worden ist und der Wunsch besteht, eine permanente Aufzeichnung des Ortes des Worts, in dem der Fehler aufgetreten ist, verfügbar
609847/0694
zu machen an geeigneten Eingabe-/Ausgabe- (IO)-Geräten außerhalb des Systems über geeignete IO-Datenverbindungen, kann die Adresse in .Registern 90, wie in Fig. 9 gezeigt, über ein geeignetes Taktsignal gespeichert werden. Nach geeigneter Aktivierung von IO-Treibern 91 kann die Adressinformation zu einer geeigneten IO-Ubertragungsleitung zur externen Benutzung, 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 einer von vier Betriebsarten. Bei der Betriebsart O ist keines der Flip-Flops gesetzt und die Fehlerkorrektur ist in einem nicht betriebsbereiten Zustand gehalten, in dem keine Korrektur stattfinden kann und keine Unterbrechung des Rechenwerks. In der Betriebsart 1 ist das Flip-Flop 95 nicht gesetzt, während das Flip-Flop 96 gesetzt ist. In dieser Betriebsart ist das Korrektursystem nicht betriebsbereit gehalten, aber es wird ein UntersuchungSr betrieb für einen Prüfvorgang des Fehlersystems ausgeführt. So wird bei einem Schreibteil des Speieherzyklus 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.
609847/0694
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üfzwecke unterbrochen wird, obwohl seine Tätigkeit nicht vollständig angehalten wird, wie in dem Fall, wenn das Signal FR3T vorhanden ist für solch einen Zweck während eines vorliegenden Fehlerkorrekturprozesses.
Ein Vorteil der Erfindung 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.
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 Beschreibung vorkommenden Signalbezeichnungen sind der aus dem Amerikanischen stammenden Rechnerfachsprache entnommen. Dies gilt auch für einige in der Beschreibung nicht erscheinende Bezeichnungen von Schaltkrei sen.
In der Darstellung der Fig. 6 ist das ODER-Gatter 71 durch mehrere zusammengezeichnete ODER-Gatter 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
609847/06 94
zu verstehen, daß die einzelnen Ausgänge der ODER-Gatter alle mit dem Eingang des Zeitgebergenerators 70 verbunden sind. Diese vereinfachte Darstellung wurde deswegen gewählt, weil die Gatter üblicherweise auf einem einzigen Halbleiterplättchen angeordnet sind und die geschilderten Verbindungen der Ausgänge mit den Eingängen einer nachfolgenden Schaltung intern vorgenommen sind.
In Pig· 7 werden die Bits eines Wortes, das korrigiert werden soll, zu den Gattern 87 gemeinsam mit entsprechenden Korrekturbits von den Logikeinheiten 83 bis 85 geleitet, so daß das Komplement des falschen Bits geliefert werden kann. Die zusammengezeichneten Gatter 80 und 87 in Fig. 7 und die zusammengezeichneben Gatter in Fig. 8 wirken als getrennte Gatter; sie sind deswegen zusammengezeichnet, weil sie auch auf einem gemeinsamen Halbleiterplättchen untergebracht werden können.
60 9847/0694

Claims (1)

  1. Patentansprüche
    My Fehlererkennungs- und Korrektureinrichtung für Datenverarbeitungsgeräte mit mindestens einem Rechenwerk und mindestens einer Speichereinheit, dadurch gekennzeichnet, daß eine Fehlercodiereinrichtung (16, 18) bei jeder Speichereinheit vorgesehen ist zur Durchführung von Paritatsprüfungen während des Schreibteils eines Speicheroperationszyklus bei einer vorbestimmten Anzahl von verschiedenen ausgewählten Bitkombinationen in jedem Datenwort, daß jede Kombination die gleiche Gesamtanzahl von Bits aufweist, daß die Paritätsprüfungen eine Anzahl von Paritätsprüfbits (GO bis C4) liefern, von denen jedes einzelne einer der ausgewählten Kombinationen zugeordnet ist; daß eine Einrichtung (16) zur Bildung eines erweiterten Datenworts, das die Datenbits des Datenworts und die Paritätsprüfbits (CO bis C4) umfaßt, und zum Speichern des erweiterten Datenworts in der Speichereinheit vorgesehen ist; daß die Fehlercodiereinrichtung derart ausgebildet ist, daß sie während des Leseteils eines Speicheroperationszyklus Paritätsprüfungen bei der gleichen vorbestimmten Anzahl ausgewählter Bitkombinationen des erweiterten Datenworts durchführt, wobei jede derartige ausgewählte Kombination die gleiche ausgewählte Kombination von Datenbits, wie sie während des Schreibteils ausgewählt wurde, und das ihr zugeordnete Paritätsprüfbit umfaßt, und daß durch die Paritatsprüfungen eine Anzahl von Fehlerbits (EO bis IXl-) erzeugt wird; daß das Rechenwerk eine Decodiereinrichtung (20) aufweist, die auf die Fehlerbits anspricht und das Vorhandensein und den Ort eines Ein-Bit-Fehlers im Datenwort feststellt, und daß eine auf die Decodiereinrichtung ansprechende Korrekturvorrichtung zum Korrigieren des Ein-Bit-Fehlers im Datenwort vorgesehen ist.
    609847/0694
    2. Einrichtung nach Anspruch 1, bei der das Datenverarbeitungssystem Datenworte mit 16 Bit verwendet, dadurch gekennzeichnet, daß die Fehlercodiereinrichtung während des Schreibteils eines Speicherzyklus fünf Paritätsprüfungen bei fünf ausgewählten 8-Bit-Kombinationen der 16 Bits eines Datenworts ausführt, um fünf Paritätsprüfbits (CO bis 04) zu erzeugen; daß die Einrichtung (16) zur Bildung eines erweiterten Datenworts ein erweitertes Datenwort mit 21 Bit bildet, das die 16 Bits des Datenworts und die fünf Paritätsprüfbits aufweist; daß die Fehlercodiereinrichtung weiterhin während des Leseteils eines Speicherzyklus fünf Paritätsprüfungen bei fünf ausgewählten 9-Bit-Kombinationen des erweiterten Datenworts 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 wurde und die weiterhin das dieser zugeordnete Paritätsprüfbit aufweist, wodurch fünf Fehlerbits (EO bis E4-) geliefert werden.
    3. Einrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Fehlercodiereinrichtung fünf Exklusiv-ODER-Gatter-Hegister (51 bis 55) aufweist, von denen jedes neun Eingänge aufweist, und auf die fünf 8-Bit-Kbmbinationen, die während des Schreibteils des Speicherzyklus ausgewählt wurden, und auf die fünf 9-Bit-Kombinationen, die während des Leseteils des Speicherzyklus ausgewählt wurden, anspricht, um die fünf Paritätsprüfbits bzw. die fünf Fehlerbits zu liefern.
    609847/0694
    4. Einrichtung nach einem der vorhergehenden Ansprüche, bei dem die Bits der 16-Bit-Datenwörter als Bits 0 "bis 15 bezeichnet sind, dadurch gekennzeichnet, daß die Fehlercodiereinrichtung Mittel zur Durchführung von Paritätsprüfungen bei den folgenden fünf ausgewählten Kombinationen von acht Bits des 16-Bit-Datenworts aufweist:
    (1) Bits 1, 5, 10, 11, 12, 13, 14 und 15}
    (2) Bits 4, 5, 6, 7, 8, 9, 10 und 15;
    (3) Bits 1, 2, 3, 7, 8, 9, 14 und 15; (4) Bits 1, 2, 3, 5, 6, 9, 12 und 13; und (5) Bits O, 1, 3, 6, 8, 11 und 13.
    Einrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Paritätsprüfungen bei den ausgewählten Kombinationen (1), (3) und (5) ungerade Paritätsprüfungen sind und die Paritätsprüfungen bei den ausgewählten Kombinationen (2) und (4) gerade Paritätsprüfungen sind.
    Einrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Decodiereinrichtung auf die fünf Fehlerbits anspricht zur Bestimmung von 32 Zuständen in Bezug auf das erweiterte Datenwort mit 21 Bit, wobei diese Zustände einschließen: (a) einen Zustand, bei dem kein Fehler vorliegt; (b) 21 Zustände, bei denen ein Einzel-Bit-Fehler vorliegt; (c) zwei'Zustände, bei denen das erweiterte Datenwort mit 21 Bit nur Einsen und nur Nullen enthält; und (d) acht Zustände, bei denen Mehrfach-Bit-Fehler vorliegen.
    609847/0694
    7. Einrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Decodiereinrichtung auf die fünf Fehlerbits anspricht zur Erzeugung eines Korrekturworts mit 16 Bit, wobei, wenn ein Einzel-Bit-Fehler in einem Datenwort aufgetreten war, ein Bit in einem ersten ausgewählten Zustand und alle anderen Bits in einem zweiten ausgewählten Zustand sind, und wobei das eine Bit sich an einem Ort befindet, der dem Ort des genannten Einzel-Bit-Fehlers entspricht; und daß die Korrekturvorrichtung auf das 16-Bit-Korrekturwort anspricht, um das Bit an der Stelle, die der Stelle eines Einzel-Bit-Fehlers entspricht, zu korrigieren.
    8. Einrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Korrektureinrichtung die Korrektur durch Komplementärbildung des falschen Bits durchführt und weiterhin Mittel zum Wiedereinschreiben des korrigierten 16-Bit-Datenworts in die Speichereinheit aufweist.
    ORiOiNAL INSPECTED
    609847/0694
DE2619159A 1975-05-07 1976-04-30 Fehlererkennungs- und Korrektureinrichtung Expired DE2619159C2 (de)

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 true DE2619159A1 (de) 1976-11-18
DE2619159C2 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)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
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
DE3807596A1 (de) * 1988-03-08 1989-09-21 Siemens Ag Verfahren und anordnung zur fehlererkennung bei binaeren datenwoertern
WO1991007720A1 (en) * 1989-11-16 1991-05-30 International Business Machines Corporation Method and apparatus for magnetic recording of data
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
WO2003032159A2 (en) * 2001-10-11 2003-04-17 Altera Corporation Error detection on programmable logic resources
US6976197B2 (en) * 2001-10-25 2005-12-13 International Business Machines Corporation Apparatus and method for error logging on a memory module
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
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
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
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
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
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
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
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
EP2820547B1 (de) 2012-02-29 2019-04-17 NXP USA, Inc. Fehlerbeseitigungsverfahren und computerprogrammprodukt
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IBM Technical Disclosure Bulletin, Vol. 10, Nr. 10, März 1968, S. 1437 u. 1438 *
IBM Technical Disclosure Bulletin, Vol. 12, Nr. 10, März 1970, S. 1647-1649 *
IBM Technical Disclosure Bulletin, Vol. 14, Nr. 2, Juli 1971, S. 670-672 *

Also Published As

Publication number Publication date
US4005405A (en) 1977-01-25
FR2310593B1 (de) 1983-02-04
CA1056952A (en) 1979-06-19
JPS5438028B2 (de) 1979-11-19
FR2310593A1 (fr) 1976-12-03
DE2619159C2 (de) 1982-05-27
GB1511806A (en) 1978-05-24
JPS51146144A (en) 1976-12-15

Similar Documents

Publication Publication Date Title
DE2619159A1 (de) Fehlererkennungs- und korrektureinrichtung
DE102006048856B4 (de) Verfahren zum Betreiben einer IC-Halbleiterspeichervorrichtung und IC-Halbleiterspeichervorrichtung
DE2328869A1 (de) Verfahren zur pruefung eines digitalen speichersystems sowie zur durchfuehrung dieses verfahrens dienendes selbstpruefendes digitales speichersystem
DE2225841C3 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE102005048255A1 (de) Integriertes Schaltungsbauelement und Betriebsverfahren
DE2517356A1 (de) In datenverarbeitungsanlagen universell einsetzbarer logischer modul- baustein
WO1989002122A1 (en) Arrangement and process for detecting and localizing faulty circuits in a storage component
DE2556556A1 (de) Verfahren und anordnung zur speicherung von informationen ueber den ort eines oder mehrerer fehlerhafter bits in einem einzelne fehler korrigierenden halbleiter-hauptspeicher
DE2030760A1 (de) Speicherschaltung
DE2400064A1 (de) Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem
DE112007003015T5 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE2210325A1 (de) Datenverarbeitungssystem
EP2100308B1 (de) Verfahren und halbleiterspeicher mit einer einrichtung zur erkennung von adressierungsfehlern
DE3128729A1 (de) Halbleiter-speichersystem
DE19963689A1 (de) Schaltungsanordnung eines integrierten Halbleiterspeichers zum Speichern von Adressen fehlerhafter Speicherzellen
DE3412677A1 (de) Halbleiterspeichervorrichtung mit selbstkorrekturschaltung
DE2456709A1 (de) Schaltung zur fehlererkennung und -korrektur
DE2554502C3 (de) Verfahren und Anordnung zum Adressieren eines Speichers
DE102019131865A1 (de) Verfahren und vorrichtung zur eigendiagnose der ram-fehlererkennungslogik eines antriebsstrangcontrollers
EP0347970B1 (de) Verfahren zum Prüfen eines Festwertspeichers und Anordnung zur Durchführung des Verfahrens
EP2063432A1 (de) Verfahren zum Prüfen eines Arbeitsspeichers
DE2823457C2 (de) Schaltungsanordnung zur Fehlerüberwachung eines Speichers einer digitalen Rechenanlage
WO2001022225A1 (de) Verfahren und schaltungsanordnung zum speichern von datenworten in einem ram modul
DE2106731A1 (de) Diagnoseeinrichtung fur elektronische Datenverarbeitungsanlagen
EP0353660B1 (de) Verfahren zur Fehlersicherung in Speichersystemen von Datenverarbeitungsanlagen, insbesondere Fernsprechvermittlungsanlagen

Legal Events

Date Code Title Description
OGA New person/name/address of the applicant
D2 Grant after examination