DE3115541A1 - "datenverarbeitungsanlage" - Google Patents

"datenverarbeitungsanlage"

Info

Publication number
DE3115541A1
DE3115541A1 DE19813115541 DE3115541A DE3115541A1 DE 3115541 A1 DE3115541 A1 DE 3115541A1 DE 19813115541 DE19813115541 DE 19813115541 DE 3115541 A DE3115541 A DE 3115541A DE 3115541 A1 DE3115541 A1 DE 3115541A1
Authority
DE
Germany
Prior art keywords
word
memory
module
refresh
signal
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
DE19813115541
Other languages
English (en)
Other versions
DE3115541C2 (de
Inventor
Ward 01741 Carlisle Mass. Baxter II.
Michael B. 01824 Chelmsford Mass. Druke
John R. van 48104 Ann Arbor Mich. Roekel
Michael L. 01588 Whitinsville Mass. Ziegler
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 DE3115541A1 publication Critical patent/DE3115541A1/de
Application granted granted Critical
Publication of DE3115541C2 publication Critical patent/DE3115541C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing

Description

Dipl-lng Dipl.-Chem. ' . Dipl-lng.
E. Prinz - Dr. G. Hauser - G. Leiser
Ernsbergerstrasse 19
8 München 60
16. April 1981
DATA GENERAL CORPORATION
Route 9
Westboro, Massachusetts 01581 /V.St.A.
Unser Zeichen: D 733
Datenverarbeitungsanlage
Die Erfindung bezieht sich auf Fehlerkorrekturtechniken für die Verwendung bei Speichern in einer Datenverarbeitungsanlage und betrifft insbesondere Fehlerkorrekturtechniken, die bei einer dynamischen Schreib-ZLesespeicher- oder RAM (random access memory)-Matrix brauchbar sind, wo eine Fehlererkennung oder -suche als Teil einer Speicherauffrischoperation erfolgt und das Wiedereinschreiben der korrigierten Daten in den Speicher nur als ein Ergebnis dieser Erkennung oder Suche erfolgt.
In bekannten Anlagen sind dynamische RAM-Matrizen mit einer Fehlerkorrekturmöglichkeit versehen und außerdem besteht die Möglichkeit, die in der Matrix gespeicherten Informationsbits periodisch aufzufrischen. Jede Bitadresse auf dem Chip speichert digitale Information in Form einer "eins" oder einer "null", was durch das Vorhandensein oder NichtVorhandensein
einer gespeicherten Ladungsmenge auf dem kapazitiven Element, das ein Bit bildet, dargestellt wird. Da die Tendenz besteht, daß mit der Zeit eine Ladung, die vorhanden ist, verloren geht, ist es notwendig, die in jeder Bitposition einer Zeile eines Chips gespeicherte Information periodisch zu lesen und die Information wieder in jede Bitposition der Zeile einzuschreiben, um die Ladung wieder auf ihren Anfangswert zu bringen. Diese Operation, die als Auffrischoperation bezeichnet wird, wird ausreichend häufig durchgeführt, so daß die einer null oder einer eins entsprechende Ladung an jeder Bitadresse nahe dem Änderungswert gehalten wird, auf den das Bit aufgeladen wurde, als die eins oder die null ursprünglich eingelesen wurde.
Die Auffrischprozedur wird an einer Zeile eines Chips implementiert, indem dem Chip eine Zeilenadresse und ein Zeilenadreßauftastsignal geliefert wird. Das Auftastsignal bewirkt, daß die binäre Information, die in jeder Spaltenposition längs der adressierten Zeile gespeichert ist, durch mit jeder Spalte verbundene Verstärker ausgelesen wird. Die Spaltenverstärker schreiben in Bitpositionen der entsprechenden adressierten Zeile die binäre Information wieder ein, bei der es sich entweder um eine eins oder eine null handelt, die ursprünglich in dieser Zeile in jeder Spalte gespeichert wurde.
Jede Zeile des Chips wird sequentiell in derselben Weise aufgefrischt, indem die Zeilenadresse nach jeder Auffrischprozedur um eins erhöht wird. Nach dem die letzte Zeile des Chips aufgefrischt worden ist, wird die Zeilenadresse zu der ersten Zeile des Chips zurückgeführt, und der Prozeß des Auffrischens der Zeilen geht weiter. Die Dauer zwischen aufeinanderfolgenden Auffrischoperationen wird, wie oben erwähnt, durch die Gesamtzahl der Zeilen in dem Chip und durch die Geschwindigkeit, mit der die gespeicherte Ladung verloren geht, bestimmt.
Im Stand der Technik wird/ wenn trotz des Auffrischens ein Fehler in einem im Speicher gespeicherten Wort vorhanden ist, das Vorhandensein des Fehlers erst ermittelt, wenn dieses besondere Wort durch einen Anforderer angefordert wird, beispielsweise durch eine Zentraleinheit (CPU) oder ein Eingabe-/Ausgabe(E/A)-Gerät. Von Fehlern, die in Bitpositionen eines Wortes auftreten, wird angenommen, daß sie durch Alphateilchen verursacht werden, welche in der Atmosphäre oder in dem Material enthalten sind, aus dem die RAM-Matrix hergestellt ist, oder die vielleicht aus Grenzschaltungsteilen stammen. Nur zu der Zeit, zu der ein Wort aus einem Speicher auf eine Anforderung durch den Anforderer hin ausgelesen wird, wird das Vorhandensein eines Fehlers in dem Wort festgestellt. Wenn ein solcher Fehler in einem gespeicherten Wort vorhanden ist/ wird der Fehler korrigiert, bevor das gespeicherte Wort dem Anforderer geliefert wird, und das korrigierte Wort wird außerdem an die Speicher-"Schreib"-Schaltung abgegeben, um das korrigierte Wort wieder an derselben Wortadresse einzuschreiben. Das Vorhandensein eines Fehlers in dem Wort wird normalerweise bestimmt, indem in dem Speicher gesonderte Prüfbits für jedes Wort gespeichert werden, aus denen ein Fehler in irgendeinem der Wortbits bestimmt werden kann. Die bekannte Anlage hat mehrere Nachteile.
Ein Nachteil besteht darin, daß es vorkommen kann, daß der Anforderer ein Wort aus einem besonderen Platz in dem Speicher erst nach einer relativ langen Zeitspanne anfordert, wobei diese Zeitspanne ausreichend lang ist, so daß das ausgewählte Wort einen Fehler in mehr als einem Bit haben kann. So kann es vorkommen, daß ein Wort aus einem Speicher erst nach mehr als einer Stunde abgerufen wird, wodurch eine unnötig hohe Wahrscheinlichkeit eines unkorrigierbaren Doppelbitfehlers an dieser Wortadresse erzeugt wird, bevor eine Korrektur versucht wird. Typische Fehlerkorrekturtechniken haben die Eigenschaft, daß sie in der Lage sind, Einzelbit—
fehler zu korrigieren, daß aber, wenn Mehrbitfehler in dem Wort vor der Korrektur des ersten Bits auftreten, die Fehlerkorrekturschaltung zwar das Vorhandensein von Mehrbitfehlern erkennen wird, aber nicht in der Lage sein wird, den Mehrbitfehlerzustand zu korrigieren, so daß es in der Datenverarbeitungsanlage zu einer Störung kommt.
Es gibt außerdem einen weiteren Nachteil, der durch das häufige Anfordern eines Wortes aus einem Speicher erzeugt wird, wobei der Fehler ein "fester" Fehler sein kann, d.h. ein Fehler, der im Speicher nicht durch Wiedereinschreiben des korrigierten Wortes über die Fehlerkorrekturschaltung korrigiert werden kann. Ein fester Fehler kann wegen einer Störung eines Schaltungsteils oder vielleicht wegen eines fehlerhaften Bits im Speicher auftreten (beispielsweise wegen des Zustandes, daß eine Bitposition des Speichers auf null oder auf eins festsitzt). In diesem Fall wird, wenn auf dieses Wort, das einen festen Fehler hat, häufig zugegriffen wird, die Fehlerkorrekturschaltung versuchen, eine Korrektur jedesmal dann in dem Speicher vorzunehmen, wenn auf das Wort zugegriffen wird, wobei sie bei dieser Korrektur keinen Erfolg haben wird. Infolgedessen kommt es, wenn ein fester Fehler in einem Wort auftritt, auf das häufig zugegriffen wird, zu einer beträchtlichen Verlangsamung des Betriebes der Maschine, und zwar wegen der Zeit, die für jede versuchte Fehlerkorrektur erforderlich ist.
Gemäß der Erfindung wird veranlaßt, daß jedes Wort in dem Speicher ausreichend häufig ausgelesen wird und Einzelbitfehler in allen Worten korrigiert werden, falls notwendig, so daß die statistische Wahrscheinlichkeit, daß es mehr als einen Fehler in irgendeinem Wort in'dem Intervall zwischen aufeinanderfolgenden Lese- und Fehlerkorrekturvorgängen gibt, vernachlässigbar gering ist. Daher tendiert der Platz eines Wortes, in welchem ein Fehler auftreten kann, dazu, willkürlich zu sein, mit nur einer sehr geringen Wahrscheinlichkeit, daß
zwei Bits in irgendeinem Wort in dem Zeitintervall fehlerhaft sind zwischen einem Auslesen des Wortes und der Fehlerkorrektur eines Fehlers in dem Wort, falls notwendig, und dem nächsten Auslesen und der nächsten Korrektur des Fehlers darin/ falls notwendig. Der Lese- und Fehlerkorrekturprozeß (der im folgenden auch als "Schnüffel"- oder "Aufsuch" (sniff)· Operation bezeichnet wird) wird gemäß der Erfindung in einem vorbestimmten Zeitintervall ausgeführt, das eine Funktion der Auffrischperiode und der Anzahl der in dem Speicher enthaltenen Wörter ist. Die Auftrittsrate von Bitfehlern in dem Speicher ist so, daß die Wahrscheinlichkeit, daß ein nichtkorrigierbarer Doppelbit(oder Mehrbit)-Fehler in irgendeinem Wort bis zu der Zeit, zu der irgendein Wort aufgesucht wird, vernachlässigbar ist. Das vorbestimmte Zeitintervall setzt eine Zeitgrenze für die Länge der Zeit, die damit verbracht wird, das Korrigieren eines festen Fehlers zu versuchen.
Bei der besonderen Implementierung der bevorzugten Ausführungsform, die im folgenden beschrieben ist, beträgt das Zeitintervall zwischen dem Aufsuchen eines Wortes in dem Speicher zwei Sekunden. Es sind jedoch auch wesentlich größere Zeitspannen geeignet, beispielsweise wenn ein größerer Speicher benutzt wird, wobei dann die Wahrscheinlichkeit eines Doppelbit- oder höheren Mehrbitfehlers nur geringfügig größer ist.
Somit wird gemäß der Erfindung die Korrektur eines Wortes im Speicher, das ein einziges fehlerhaftes Bit hat, nur erfolgen, wenn das Wort in einem Zeitintervall, das bereits als diejenige Zeit zugeteilt worden ist, die zum Auffrischen der Wörter in dem Speicher erforderlich ist, periodisch ausgelesen und auf Fehler untersucht' worden ist (was jeweils einer Aufsuchoperation entspricht). Es wird deshalb, wie oben erwähnt, der Zeit, die beim Versuchen, einen Fehler in einem Speicherwort zu korrigieren, verlorengeht, eine Grenze gesetzt, selbst dann, wenn es sich um einen festen Einzelbit-
fehler handelt, der unkorrigierbar ist. In der Anlage nach der Erfindung wird, wenn ein Wort durch den Anforderer aus dem Speicher angefordert wird, das Wort geprüft, um festzustellen, ob es einen Fehler hat oder nicht, und, falls notwendig, korrigiert, bevor es dem Anforderer geliefert wird; es findet jedoch zu dieser Zeit kein Versuch statt, den Fehler in diesem Speicherwort zu korrigieren. Der Fehler wird, wie oben erwähnt, in diesem Wort später zu der Zeit erkannt, zu der es wahlweise aus dem Speicher ausgelesen wird, und zwar während der Zeit, die für das Aufsuchen dieses Speicherwortes implementiert ist. Während der Auffrischoperation werden die in dem Speicher gespeicherten Wörter wahlweise sequentiell ausgelesen und das Erkennen von Fehlern in ihnen (oder das Aufsuchen) erfolgt im wesentlichen zu derselben Zeit, zu der eine Auffrischung von Bits in derselben Zeile wie die aufgesuchten Wörter erfolgt. Irgendwelche Einzelbitfehler werden dann korrigiert, so daß eine periodische Korrektur von Fehlern in sämtlichen in dem Speicher gespeicherten Wörtern erfolgt. Es ist deshalb ein Merkmal der Erfindung, daß ein kontinuierliches Prüfen auf (Suchen nach) Einzelbitfehler in dem Speicher während der Auffrischoperation stattfindet, und daß diese Such- oder Erkennungsoperatxon keine zusätzliche Maschinenzeit' erfordert, die über die hinaus geht, die bereits für die Auffrischoperation der dynamischen RAM-Speichermatrix erforderlich ist. Die Fehlerkorrektur, wenn nötig, erfolgt dann mit einer festen Frequenz, wodurch dem Fehlerkorrekturprozeß eine Grenze gesetzt wird, wie oben erläutert.
Ein Speicher, der Gruppen von dynamischen RAMs enthält, wird durch eine "Gruppenkontroller"-Einheit gesteuert, die periodisch und sequentiell ein Auffrischsignal an jede entsprechende Zeile der dynamischen RAM-Chips des Speichers abgibt. Zu der Zeit, während der das Auffrischsignal an dem Speicher anliegt, gibt die Gruppenkontrollereinheit außerdem ein Lesesignal an nur ein Wort des gesamten Speichers ab. Dieses
«ν · a
Wort wird durch das Lesesignal ausgelesen und, falls nötig, korrigiert. Das korrigierte Wort wird wieder in dieselbe Wortposition im Speicher während der Zeitspanne eingeschrieben, während der der Gruppenkontröller weiterhin das Wort ' ' adressiert, das ausgelesen wurde.
In einer besonderen Ausführungsform, die dynamische 16K-RAM-Chips hat, welche typischerweise in dem Speicher nach der Erfindung benutzt werden, sollte jedes Bit derselben gemäß den typischen RAM-Chip-Spezifikationen alle zwei Millisekunden einmal aufgefrischt werden. Die RAM-Chips haben Bits, die so angeordnet sind, daß sie 128 Zeilen und 128 Spalten bilden. Da das Bitspeicherelement für jedes Bit des RAM-Chips im wesentlichen ein Kondensator mit begrenzter Speicherzeit ist, muß die bei jedem Bit gespeicherte Ladung periodisch wiederhergestellt (aufgefrischt) werden, und zwar in jeder Bitposition ausreichend häufig, um die Ladung in jeder Bitposition aufrechtzuerhalten, damit der EINS-oder NULL-Zustand, der an jeder Bitadresse gespeichert ist, als eine Ladungsspeicherung bewahrt wird. Zum Wiederherstellen der Ladung in den Bitpositionen eines RAMs wird ein Zeilenadreßauftastsignal RAS (row address strobe) an sämtliche Bitpositionen einer adressierten Zeile sämtlicher Chips des Speichers gleichzeitig angelegt. Die Zeilenadresse des Signals RAS wird zu der nächsten Zeile inkrementiert, und ein Signal RAS wird alle 15 με wiederholt. Da es 128 Zeilen in jedem RAM-Chip gibt, wird jede Zeile (und jedes Bit des Chips) alle 1920 μΞ oder ungefähr alle 2 ms aufgefrischt.
Nachdem das Anlegen des Signals RAS begonnen hat, aber bevor dem Ende des Anliegens desselben, wird ein Spaltenadreßauftastsignal CAS (column address strobe) an nur eine Spalte von sämtlichen Chips, die eine Speicherebene bilden, angelegt. Die Signale RAS und CAS überlappen einander und das Anliegen derselben bewirkt ein Auslesen des gespeicherten Bits an dem
Speicherplatz/ der der den Zeilen- und Spaltenadressen der an jedes Chip der Speicherebene angelegten Auftastsignale entspricht. Typischerweise enthält eine Speicherebene 39 der Chips, wobei eine entsprechende Bitposition von 32 Chips die Bits eines Wortes und eine entsprechende Bitposition von 7 Chips die Prüfbits liefert, die in Verbindung mit den 32 Bits für die Fehlerkorrektur von irgendeinem der 3 9 Bits benutzt werden. Jedes Wort im Speicher umfaßt somit entsprechende Bits von jedem der 39 Chips, und das überlappende Anliegen der Signale RAS und CAS an jedem Chip führt zum Auslesen eines Wortes an der ausgewählten Spalten- und Zeilenadresse.
Mehrere Ausführungsbeispiele der Erfindung werden im folgenden unter Bezugnahme auf die beigefügten Zeichnungen näher beschrieben. Es zeigen
Fig. 1 ein Blockschaltbild einer Ausführungsform der Erfindung,
die Fig. 2 Blockschaltbilder eines Teils einer zweiten und 3 Ausführungsform der Erfindung und
Fig. 4 ein Blockschaltbild eines weiteren Teils der zweiten Ausführungsform der Erfindung.
Fig. 1 zeigt ein Blockschaltbild einer Ausfuhrungsform der Erfindung, die deren Arbeitsweise veranschaulicht. Eine dynamische RAM-Speichermatrix 10 enthält herkömmliche RAM-Chips, die typischerweise hier MOSTEK-Chips des Typs MK 4116 sind. Jeder Chip ist ein dynamischer RAM mit 16 384 mal 1 Bit der 128 Zeilen und 128 Spalten von Bits hat. Zu Darstellungszwecken der Erfindung wird angenommen, daß zwei Moduln, nämlich der Modul O und der Modul 1, die dynamische RAM-Matrix 10 bilden. Jeder Modul hat 39 dynamische RAM-Chips, die so angeordnet sind, daß entsprechende Bitposi-
tionen des Chips 32 Bits ergeben, die die Bits eines Wortes darstellen, und 7 Bits, die Prüfbits p-Bits) darstellen. Die dynamische RAM-Matrix 10 hat ein Adreßeingangssignal, das von einem 2:1-Multiplexer (MUX)1 geliefert wird, der ein Adreßeingangssignal hat, das durch den Anforderer 100 geliefert wird, bei welchem es sich um eine Zentraleinheit oder um ein Eingabe-/Ausgabegerät handeln kann. Das andere Adreßeingangssignal des Multiplexers 1 wird durch einen Auffrischadreßzähler 2 geliefert. Ein Steuersignal, nämlich das Signal REF SEL (refresh select oder Auffrischwahl) wird an den 2:1-Multiplexer 1 angelegt, um zu steuern, welche dieser beiden Adressen der dynamischen Speichermatrix 10 dargeboten wird.
Das digitale Adreßsignal, das über eine Leitung 9 an die dynamische Speichermatrix 10 angelegt wird, enthält eine Zeilenadresse in Form der sieben Ziffern des Digitalsignals, die den niedrigsten Stellenwert haben, eine Spaltenadresse in Form der sieben Ziffern des Digitalsignals, die den nächsten niedrigsten Stellenwert haben, während die Digitalposition des Adreßsignals mit dem höchsten Stellenwert zum Auswählen des Moduls des dynamischen RAM-Speichers 10 benutzt wird, bei welchem es sich in diesem Fall entweder um den Modul O oder um den Modul 1 handelt. In anderen Ausführungsformen der Erfindung können mehr als zwei Moduln benutzt werden, zum Beispiel, wenn acht Moduln in der Speichermatrix 10 benutzt werden, würden die den höchsten Stellenwert aufweisenden Bits des Adreßsignals 3 Bits für die Auswahl eines der acht Moduln erfordern.
Die Speicherzeitsteuereinheit 3 liefert die Signale, die den Zugriff auf die dynamische RAM-Matrix 10 durch den Anforderer 100 und durch die Aufsuchschaltung 11 sowie durch die Fehlerkorrekturschaltung 12 steuern. Unter den Steuersignalen, die durch die Speicherzeitsteuereinheit 3 geliefert werden, sind das Auffrischwahlsignal REF SEL, das, wie oben
erwähnt, den 2:1-Multiplexer 1 steuert, um zu bestimmen, ob die der dynamischen RAM-Matrix 10 gelieferte Adresse die Adresse ist, die durch den Anforderer 100 geliefert wird, oder die Adresse, die durch die Aufsuchschaltung 11 geliefert wird. Weitere Steuersignale werden gemäß der innerhalb der dynamischen RAM-Matrix 10 auszuführenden Funktion geliefert. Beispielsweise liefert die Speicherzeitsteuereinheit 3 außerdem ein Zeilenadreßauftastsignal RAS, ein Spaltenadreßauftastsignal CAS, ein Auffrischsignal REFRESH und ein Schreibfreigabesignal WE (write enable). Darüber hinaus liefert die Speicherzeitsteuereinheit 3 ein Signal FREIGABE an ein Wiedereinschreibregister 5 in der Fehlerkorrekturlogik 12 und ein Signal BELEGT an den Anforderer 100. Ein Signal R/W (read/write oder lesen/schreiben)und ein Signal ANFORDERUNG werden beide der Speicherzeitsteuereinheit durch den Anforderer 100 geliefert.
Die Speicherzeitsteuereinheit 3 wird entweder durch ein Signal ANFORDERUNG aus dem Anforderer 100 oder durch das Eingangssignal auf der Leitung 41 aus der Auffrischintervallzeitgebereinheit 4 betätigt. Der Auffrischintervallzeitgeber 4 liefert ein Taktintervall (in einer besonderen Ausführungsform der Erfindung kann ein Taktimpuls alle 15 με auftreten). Das Ausgangssignal des Zeitgebers 4 dient als ein Impulssignal sowohl zum Aktivieren der Speicherzeitsteuereinheit als auch zum Inkrementieren des Auffrischadreßzählers 2.
Der vorstehend genannte Multiplexer 1, der Auffrischadreßzähler 2, die Speicherzeitsteuereinheit 3 und der Auffrischintervallzeitgeber 4 bilden die Hauptbauteile der Aufsuchschaltung 11 .
Ein weiterer Teil der Implementierung dieser Ausführungsform der Erfindung ist die Fehlerkorrekturschaltung 12. Wenn die Adresse durch den 2:1-Multiplexer 1 aus dem Anforderer 100 auf der Leitung 13 empfangen wird, wird außerdem ein Anforde-
31Ί 5541
rungssignal von dem Anforderer 100 an die Speicherzeitsteuereinheit 3 zusammen mit einem Signal auf der Lese-/Schreibleitung 15 abgegeben, von welchem angenommen wird, daß es anzeigt, daß ein Einschreiben in den Speicher durch den Anforderer gewünscht wird. Der Anforderer gibt außerdem ein 32-Bit-Datenwort an die Fehlerkorrekturlogikschaltung 12 über den Datenbus 16 ab. Die 32 Bits der Wortinformation, die der Anforderer über den Datenbus 16 abgibt, werden direkt in den Dateneingang der dynamischen RAM-Matrix 10 eingegeben. Der Datenbus 16 geht außerdem zu dem C-Bit(check bit oder Prüfbit)-Generator 17 zum Erzeugen von 7 C-Bits, die an das Datenwort angehängt und an derselben Adresse wie das Datenwort in der Speichermatrix 10 gespeichert werden. (Ein 32-Bit-Datenwort mit Einzelfehlerkorrektur und Doppelfehlererkennung erfordert 32 Datenbits und 7 C-Bits).
Wenn stattdessen angenommen wird, daß der Anforderer ein Auslesen eines Datenwortes aus dem Speicher 10 durch ein Signal LESEN (READ oder R) auf der Leitung 15 verlangt hat, werden Ausgangsdaten auf dem Bus 18 als 32 Bits von Wortdaten und auf dem Bus 19 als 7 Bits von Prüfbitdaten geliefert. Die Daten auf den Bussen 18 und 19 werden dem Syndrombit(S-Bit)-Generator '20 geliefert, welcher ein 7-Bit-Ausgangssignal liefert, das 32 verschiedene mögliche Bitmuster hat, um einen besonderen Einzelbitfehler in dem Datenwort anzuzeigen. Weitere sieben der Bitmuster werden durch den S-Bitgenerator 20 geliefert, um ein besonderes fehlerhaftes Prüfbit anzuzeigen, während weitere Bitmuster das Vorhandensein von Mehrbitfehlern anzeigen. Es gibt ein eindeutiges Muster, welches anzeigt, daß kein Fehler vorhanden ist.
Die 7 Bits auf dem Bus 21 werden an einen S-Bit-Decoder 22 abgegeben, der seinerseits auf seinem Ausgangsbus 23 eine Angabe darüber liefert, welches der 39 Speicherbits fehlerhaft ist. Der Ausgangsbus 23 kann die Form von 32 Leitungen haben, von denen jede in der Lage ist, ein Bit zu invertieren.
Der Ausgangsbus 23 des S-Bit-Decoders 22 und die 32 Bits des Wortes auf dem Bus 18 werden als Eingangssignale an eine Korrekturlogikschaltung 24 abgegeben, die in ihrer relativ einfachen Implementierung die Form von Exklusiv-ODER-Gattern annehmen kann. Der Decodierbus 23 aus dem S-Bit-Decoder 22 wird anzeigen, welches der Wortbits, wenn dem so ist, fehlerhaft ist, wobei die Korrekturlogikschaltung 24 diesen Fehler korrigiert und an ihrem Ausgang über einen Datenbus 25 die korrigierten 32 Bits von Wortdaten an den Anforderer abgibt. Die Fehlererkennungs-und -korrekturanordnung ist herkömmlich und bekannt. Ein typisches System ist in der US-PS 4 005 405 beschrieben, die die Schaltungselemente der Fehlerkorrekturschaltung 12 ausführlich beschreibt und auf die diesbezüglich Bezug genommen wird.
Es ist angenommen worden, daß bei der Anforderung eines Auslesens des Speichers 10 durch den Anforderer 100 ein Einzelbitfehler vorhanden war, der durch die Korrekturschaltung korrigiert worden ist. Es sei angemerkt, daß bei dem Auslesen der Daten auf dem Datenbus 25 zu dem Anforderer 100 kein Wiedereinschreiben in den Speicher auf dem Datenbus 16 über das Wiedereinschreibregister 5 erfolgt, das unter der Steuerung des Signals FREIGABE auf der Leitung 200 aus der Speicherzeitsteuereinheit 3 steht. Somit wird beim Auslesen eines Wortes durch den Anforderer 100 das ausgelesene Wort, falls notwendig, korrigiert und zu dem Anforderer übertragen, ohne daß Zeit aufgewandt wird, um die korrigierten Daten wieder in den Speicher einzuschreiben, wie bei den bekannten Anlagen.
Die Arbeitsweise der Aufsuchschaltung 11 wird am besten verständlich, wenn zuerst derjenige Teil der Schaltung 11 betrachtet wird, der einer herkömmlichen Auffrischschaltungsanordnung entspricht. Der Auffrischintervallzeitgeber 4 liefert eine Impulsfolge mit einer Zeitspanne zwischen den Impulsen, die durch die Anzahl der Zeilen in jedem RAM-Schaltungs-
■ chip und durch die von dem Hersteller empfohlene Zeit zwischen Auffrischimpulsen, welche an irgendeine bestimmte Zeile des Chips angelegt werden, bestimmt wird, wie weiter oben erläutert. Weiter sollte, wie oben erwähnt, bei einem RAM-Chip des Typs 4116 jede Zeile des Chips ungefähr alle 2 ms aufgefrischt werden, wobei diese Zeitspanne, wenn sie durch die 128 Zeilen in dem Chip dividiert wird, eine Zeitspanne von 15 με für die durch den Auffrischintervallzeitgeber 4 gelieferten Impulse ergibt. Deshalb liefert der Auffrischintervallzeitgeber 4 alle 15 \is einen Impuls zu dem Auffrischadreßzähler 2, um dessen Zählerstand um eins zu erhöhen, und außerdem ein Signal zu der Speicherzeitsteuereinheit 3, um anzuzeigen, daß ein Auffrischzyklus durch die Speicherzeitsteuerung bei der nächsten verfügbaren Gelegenheit erzeugt werden sollte.
Die Speicherzeitsteuereinheit 3 gibt, wenn sie nicht bereits durch eine Anforderung aus dem Anforderer 100 besetzt ist, auf einen Impuls aus dem Auffrischintervallzeitgeber 4 hin ein Ausgangssignal REF SEL an den Multiplexer 1 ab und gibt außerdem ein Signal BELEGT über eine Leitung 51 an den Anforderer 100 ab, um dem Anforderer anzuzeigen, daß es eine Verzögerung geben wird, bevor Daten aus dem Anforderer verarbeitet werden können, d.h. auf sie entweder in einer Leseoperation zugegriffen oder sie in einer Schreiboperation empfangen werden können. Wenn, wie im Stand der Technik, nur eine Auffrischung stattfinden mußte, brauchte der Auffrischadreßzähler 2 nur so viele Bits zu haben, wie erforderlich sind, um die Binärzahl zu liefern, die der maximalen Anzahl von Zeilen in den RAM-Chips entspricht. In dem hier betrachteten Fall würde der Auffrischadreßzähler, da es in jedem Chip 128 Zeilen gibt, nur 7 Bits benötigen, wenn nur eine Auffrischoperation auszuführen wäre.
Bei der Erfindung ist es jedoch erforderlich, der Speichermatrix auch eine Spaltenadreßinformation zu liefern. Deshalb liefert der Auffrischadreßzähler 2 sieben zusätzliche Bits höheren Stellenwertes, die benutzt werden, um die Spaltenadresse anzugeben, und ein zusätzliches Bit zum Unterscheiden zwischen den Moduln. Die Adresse, die im Betrieb der Aufsuchschaltung 11 benutzt wird, ist daher eine volle Adresse, genau wie die Adresse aus dem Anforderer eine volle Adresse ist (die Zeilen- und Spaltenadresse plus der Modulauswahlinformation) , da die volle Adresse benötigt wird, um ein besonderes Wort in der dynamischen RAM-Matrix auszuwählen. Beispielsweise in der Speichermatrix von Fig. 1 erfordert die volle Adresse sieben zusätzliche Bits für die Spaltenadresse und nur ein zusätzliches Bit höheren Stellenwertes, das entweder den Modul 0 oder den Modul 1 als den ausgewählten Modul bezeichnet, in welchem eine Aufsuch- oder Leseoperation stattfinden soll.
In der Anlage nach der Erfindung wird daher jedesmal dann, wenn die Speicherzeitsteuereinheit 3 einen Auffrischzyklus verlangt, eine volle Adresse statt lediglich einer Zeilenadresse, wie im Stand der Technik, der dynamischen RAM-Matrix geliefert. Erwünscht ist bei der Aufsuchoperation, daß eine entsprechende Zeile von sämtlichen RAM-Chips in jedem Modul der Speichermatrix gleichzeitig aufgefrischt wird, daß aber nur ein Wort der aufgefrischten Zeilen von sämtlichen Moduln ausgelesen wird.
Nach dem Durchzählen sämtlicher 128 Zeilen der Chips wiederholt der Adreßzähler 2 den Prozeß für die Zeilen, aber an einem anderen Spaltenplatz, wobei die Spaltenadresse um eins inkrementiert wird, wenn sämtliche 128 Zeilen der Chips adressiert worden sind. Das Durchlaufen der Sequenz der Moduln findet auch statt, wenn das Modulkennzeichnungsbit durch den Auffrischadreßzähler 2 um eins inkrementiert wird.
Nach dem Inkrementieren der Moduladresse um eins werden die Wortpositionen in dem zweiten Modul ausgelesen, während die Zeilen sämtlicher Chips in beiden Moduln der Reihe nach gemäß den Zeilenadressen aufgefrischt werden, wie weiter oben beschrieben.
Die volle Adresse aus dem Auffrischadreßzähler 2 wird dem 2:!-Multiplexer 1 zugeführt. Wenn die Speicherzeitsteuereinheit 3 in dem Auffrischzyklus ist, gibt sie ein Auffrischauswählausgangssignal REF SEL an den 2:1-Multiplexer 1 ab, welches bewirkt, daß die Ausgangsadresse auf der Leitung 9 des 2:1-Multiplexers 1 die volle Adresse des Auffrischadreßzählers 2 ist. Das Bit mit dem höchsten Stellenwert in der Auffrischadresse auf der Leitung 9 wird der Modulauswähllogik 6 zugeführt. Die Modulauswähllogik 6 hat gemäß der Darstellung in Fig. 1 drei Eingangssignale, nämlich RAS, CAS und WE, die die SpeicherZeitsteuereinheit 3 liefert, zusätzlich zu einem Auffrischsignal REFRESH, das ebenfalls durch die Speicherzeitsteuereinheit geliefert wird.
Die entsprechende Zeile jedes RAM-Chips sowohl in dem Modul 0 als auch in dem Modul 1 erfordert, daß ein Signal an sie angelegt wird, welches in der Lage ist, diese Zeile aufzufrischen. Darüber hinaus ist es erwünscht, daß eine Spalte von sämtlichen RAM-Chips von einem der RAM-Matrixmoduln 0 oder 1 ebenfalls mit den Signalen versorgt wird, die bewirken, daß das Wort, welches in der ausgewählten Zeilen- und Spaltenposition gespeichert ist, aus der Speichermatrix ausgelesen wird, damit es der Fehlerkorrekturschaltung 12 zugeführt wird, wo das Vorhandensein oder NichtVorhandensein eines Fehlers in dem Wort an dieser besonderen Stelle ermittelt wird. Wenn ein Fehler-festgestellt wird, gibt der S-Bit-Decoder 22 der Fehlerkorrekturschaltung 12 ein Fehlersignal über eine Leitung 27 an die Speicherzeitsteuereinheit 3 ab. Das Vorhandensein des Fehlersignals bewirkt, daß die
Speicherzeitsteuereinheit ein Signal FREIGABE über eine Leitung 200 abgibt, welches bewirkt, daß das Wiedereinschreibregister 5 das korrigierte Wort auf den Bus bringt, und erzeugt die geeigneten Signale RAS und CAS zum Wiedereinschreiben des korrekten Wortes an demselben Speicherplatz, an welchem die Aufsuchoperation stattgefunden hat. In einer Anlage mit starkem Pipelinebetrieb, wo ein Zyklus aus dem Anforderer zu der Zeit in Gang sein kann, zu der der S-Bit-Decoder erkannt hat, daß ein Fehler in dem Aufsuchwort vorhanden ist, wird die Speicherzeitsteuereinheit 3 warten, bis die Anforderung durch den Anforderer ausgeführt worden ist, und dann die Aufsuchoperation an der vorherigen Aufsuchadresse wiederholen und weitere Anforderungen aus dem Anforderer 100 blockieren, bis das Wort an der Aufsuchadresse gelesen, bei Bedarf korrigiert und wieder an dem aufgesuchten Platz in dem Speicher eingeschrieben worden ist.
Es ist, wie oben erwähnt, erwünscht, daß eine entsprechende Zeile von sämtlichen Chips aller Moduln in der dynamischen RAM-Matrix 10 gleichzeitig aufgefrischt wird. Gemäß dem Blockschaltbild von Fig. 1 wird dieses Ziel erreicht, indem der Auffrischzeilenadreßteil der vollständigen Adresse, die auf der Leitung 9 durch den 2:1-Multiplexer 1 geliefert wird, jedem Chip beider Moduln der RAM-Matrix 10 während einer Auffrischoperation zugeführt wird. Das Signal REFRESH wird zusammen mit der Adresse an die Chips abgegeben, damit das Zeilenadreßauftastsignal RAS, das als ein Eingangssignal an die Modulauswähllogik 6 angelegt wird, an sämtliche Chips in jedem Modul der Matrix 10 angelegt werden kann. Das Anlegen des Signals RAS an jeden Chip beider Moduln bewirkt, daß jedes Bit innerhalb der adressierten Zeile jedes Chips aufgefrischt wird, indem bewirkt wird, daß 'jedes Bit die "1" oder die "O" regeneriert, die ursprünglich in dieser Bitposition gespeichert war. Somit werden dieselbe Adresse sowie das Signal RAS an sämtliche Moduln während einer Auffrischoperation angelegt, aber nur an dem ausgewählten Modul liegen die Steuer-
signale CAS und WE an, so daß nur in den ausgewählten Modul eingeschrieben oder aus dem ausgewählten Modul ausgelesen wird. Während normaler Lese- oder Schreiboperationen/ während denen dieselbe Adresse sämtlichen Moduln zugeführt wird, werden die Signale RAS, CAS und WE an den ausgewählten Modul angelegt.
Die Auffrischspaltenadresse wird der dynamischen RAM-Matrix 10 ebenfalls zugeführt, die Modulauswähllogik 6 gestattet aber nur das Anlegen des Spältenadreßauftastsignals CAS an denjenigen Modul, der eine Moduladresse hat, die dem Modulteil der Auffrischadresse auf der Leitung 9 entspricht (bei jedem Zugriff auf den Speicher geht das Signal CAS nur zu einem Modul). In der in Fig. 1 gezeigten Ausführungsform, in der es nur zwei Moduln, nämlich den Modul O und den Modul 1 gibt, ist das Modulauswählbit entweder eine 1 und eine O. Das Spältenadreßauftastsignal CAS bewirkt, daß das 39-Bit-Wort, das an der Zeilen- und Spaltenadresse des adressierten Moduls gespeichert ist, die 32 Datenbits auf der Leitung 18 und die 7 C-bits auf der Leitung 19 zur Fehlererkennung des Datenwortes und zur Korrektur, falls notwendig, wie weiter oben erläutert, ausliest.
Bezüglich der Speicherzeitsteuereinheit 3 ist in Fig. 1 zu erkennen, daß ein Signal BELEGT auf der Leitung 51 an den Anforderer 100 angelegt wird, um eine Lese- oder Schreibanforderung aus dem Anforderer zu verzögern, bis der Auffrischzyklus abgeschlossen worden ist. Ebenso wird, wenn eine Leseoder Schreibanforderung aus dem Anforderer 100 auf der Leitung 14 durch die Speicherzeitsteuereinheit 3 empfangen wird, der Auffrischzyklus verzögert, bis die Lese- oder Schreibanforderung auf der Leitung 15 aus dem Anforderer abgeschlossen worden ist.
In dem Fall, in welchem ein Auslesen des Aufsuchzyklus bewirkt, daß ein Wort aus dem ausgewählten Modul ausgelesen wird, bei dem festgestellt wird, daß es einen Fehler in einem Bit hat, wird ein Signal FEHLER über die Leitung 27 an die Speicherzeitsteuereinheit 3 abgegeben, welches bewirkt, daß die Speicherzeitsteuereinheit die geeignete Kombination von Signalen zum Wiedereinschreiben der korrigierten Daten in den Speicher (eine Wiedereinschreiboperation) erzeugt. Zu diesen Signalen gehören RAS, CAS, REF SEL (zum Auswählen der Auffrischmoduladresse), ein Schreibfreigabesignal WE und ein Signal FREIGABE an dem Wiedereinschreibregister 5. Das Signal REF SEL bewirkt, daß dieselbe Auffrischzeilen- und -spaltenadresse den Chips zugeführt wird. Das Signal FREIGABE an dem Wiedereinschreibregister bewirkt, daß die korrigierten Daten auf den Bus 16 gebracht werden, und das Schreibfreigabesignal WE bewirkt, daß die Daten wieder an dem Adreßplatz eingeschrieben werden, falls notwendig, statt ausgelesen zu werden, wie in der Auffrischzugriffsoperation. Es ist angenommen worden, daß die Adresse des ausgelesenen Wortes zu der Zeit unverändert ist, zu der das Wiedereinschreiben des korrigierten Wortes erfolgt, so daß das Signal REF SEL dieselbe Zeilen- und Spaltenadresse auswählt.
Das Schreibfreigabesignal WE ist dasselbe Signal WE, das bei einer normalen Schreiboperation infolge eines Schreibbefehls aus dem Anforderer 100 erzeugt wird, wobei das Signal WE in Verbindung mit der Zeilen-, Spalten- und Moduladresse geliefert wird, die durch den Anforderer geliefert wird, zusammen mit den Signalen RAS, CAS und MOD SEL, die alle bewirken, daß eine neue Information an dem Speicherplatz eingeschrieben wird, der durch die von dem Anforderer gelieferte Zeilen-, Spalten- und Moduladresse angegeben wird. Das NichtVorhandensein eines Signals WE bewirkt, daß diese Signale nur für ein Auslesen des Wortes an der ausgewählten Adresse sorgen.
Die vorstehende Erläuterung der Erfindung hat die Grundoperationen angegeben,die bei der Fehlerkorrektur durch die Aufsuchtechnik ausgeführt werden. In Anlagen, in denen in dem Speichersystem eine Informationsübertragung im Pipelinebetrieb benutzt wird, wird die Implementierung zwar etwas komplizierter, der oben beschriebene grundsätzliche Betrieb der Anlage bleibt jedoch im wesentlichen unverändert. In der im Pipelinebetrieb arbeitenden Anlage bleibt die Auffrischlogik im wesentlichen die gleiche, wie sie oben dargestellt worden ist, mit der Ausnahme, daß die Anforderer- und Aufsuchadressen einem Block von Wörtern in jedem Modul statt einem einzelnen Wort in einem Modul zugeführt werden. Jeder Block besteht aus vier Wörtern, die in der besonderen Implementierung der Erfindung sequentiell ausgelesen werden, und zwar ein Wort alle 110 ns. Außerdem ist die Fehlerkorrekturschaltung der oben für ein einzelnes Wort beschriebenen sehr ähnlich, mit der Ausnahme, daß sie etwas modifiziert sein muß, um in der Lage zu sein, die vier aufeinanderfolgenden Wörter des Blockes zu verarbeiten, die durch die Fehlerkorrekturschaltung als eine Gruppe hindurchgehen, da Wörter als Blöcke von Wörtern statt als einzelne Wörter in die dynamische RAM-Matrix 10 eingeschrieben und aus dieser ausgelesen werden.
Die in den Fig. 2 und 3 dargestellten Blockdiagramme zeigen eine Gruppencontrollereinheit 300, die die Übertragung von Wortblöcken zwischen einem Anforderer und einer Speichermatrix sowie die Aufsuchoperation steuert. Die Adreß- und Datenwörter aus einem Anforderer 100 werden dem Gruppencontroller 300 auf demselben Bus 116 zugeführt. Das Datenwort auf der Leitung 115 wird dem 2:1-Speichermultiplexer 50 zugeführt, dessen Ausgangssignal an einen Prüfbit(C-Bit)-Generator 17 angelegt wird. Das Ausgangssignal des 2:1-Speichermultiplexers 50 wird außerdem als ein Eingangssignal an ein Register 110 für ankommende 32-Bit-Schreibdaten angelegt, dessen Ausgangssignal an einen Schreibdatenausgangsbus und an die
Dateneingangsleitung 109 der dynamischen RAM-Matrix 10 angelegt wird, wie es in Fig. 4 gezeigt ist. Das Ausgangssignal 108 des C-Bit-Generators 17 wird über ein 7-Bit-Register 111 an die Ausgangsleitung 112 und an den DATEN-EIN-Bus der dynamischen RAM-Matrix 10 von Fig. 4 als Bits WD 32-38 angelegt. Die Lesedaten (RD 0-38) werden aus dem Speicher zurückgeholt und dem S-Bit-Generator 20 zugeführt, dessen 7-Bit-Ausgangssignal über die Leitung 23 als ein Eingangssignal an ein 39-Bit-Speicherregister 223 angelegt wird, wobei der S-Bit-Generator ein Signal FEHLER an die Zeitgeberund Steuerlogik 3 abgibt, wenn ein Fehler vorhanden ist. Das andere Eingangssignal an dem Register 223 ist das 32-Bit(RD φ—31)-Signal aus dem Speicher. Das 39-Bit-Ausgangssignal des Registers 223 wird an die Korrekturlogikschaltung 24 angelegt die die S-Bit-Decodierlogik enthält. Die Korrekturlogik 24 wird durch das Signal KORRIGIEREN aufgetastet, damit sie ein korrigiertes Wort auf ihrer Ausgangsleitung 25 abgibt, wenn der Zustand des Signals KORRIGIEREN anzeigt, daß in dem ursprünglich gelesenen Wort ein Fehler vorhanden war. Bei NichtVorhandensein eines Fehlers wird ein Signal KORRIGIEREN an ein Gatter 40 angelegt, damit das aus dem Speicher ausgelesene Wort direkt an die Ausgangsleitung 25 abgegeben wird.
Die Pipelineverarbeitung der vier Wörter eines Wortblockes aus dem Speicher führt zu der Notwendigkeit des Registers 223 wenn eine Korrektur erforderlich ist. Wenn eine Korrektur erforderlich ist, ist das Signal KORRIGIEREN nicht vorhanden und das Gatter 40 mit offenem Kollektor ist inaktiv, während das Vorhandensein der Korrektursignale bewirkt, daß die Korrekturschaltung 24 arbeitet. Sowohl das Gatter 40 als auch der Ausgang der Korrekturschaltung 24 sind Treiberschaltungen mit offenem Kollektor, so daß deren Ausgänge direkt mit der Ausgangsleitung 25 verbunden werden können. Zum Zwecke des Wiedereinschreibens von korrigierten Daten ist
die Korrekturschaltung 24 außerdem über eine Eingangsleitung 113 mit dem 2:1-Speichermultiplexer 50 verbunden, der die Funktion des Wiedereinschreibregisters 5 von Fig. 1 erfüllt. Der 2:1-Speichermultiplexer 50 kann daher entweder die Schreibdaten aus dem Anforderer auf der Leitung 115 oder die korrigierten Daten aus dem Speicher auf der Leitung auswählen, damit sie an den C-Bit-Generator 17 angelegt und von diesem zurück in den Speicher übertragen werden. Das 32-Bit-Register 110 für die Schreibdaten und das 7-Bit-Register 111 für die C-Bit-Daten bewirken die vorübergehende Speicherung für die richtige Zeitsteuerung dieser Daten zum Wiedereinschreiben in den Speicher.
Die Blockschaltbilder von Fig. 2 und 3 zeigen, daß der Anforderer 100 auf der Leitung 116 zeitmultiplexiert sowohl die Adreßinformation als auch die Daten liefert, die in den Speicher einzuschreiben sind. Die Adreßinformation wird über einen Zweig 116' der Leitung 116 zu dem Adreßregister 59 geleitet. Das Adreßregister 59 enthält ein Zeilenadreßregister 51/ ein Spaltenadreßregister 52 und ein Modulauswählregister 53.
Der 4:1-Multiplexer 54 wird benutzt, um unter den Zeilen- und Spaltenadressen des Anforderers, die durch das Adreß-· register 59 auf Leitungen 51" bzw. 521 geliefert werden, und den Auffrischzeilen- und -spaltenadressen, die durch den Auffrischadreßzähler 2 auf Leitungen 202' bzw. 201" geliefert werden, auszuwählen. Das REFRESH + WIEDEREINSCHREIBSTEUERÜNG-Signal wählt entweder den Auffrischadreßzähler 2 oder das Anfordereradreßregister 59 als Quelle sowohl der Zeilen- als auch der Spaltenadresse aus. Das Anlegen des Signals RAS an den Multiplexer 53 bewirkt zuerst, daß die ausgewählte Zeilenadresse und dann die ausgewählte Spaltenadresse nacheinander dem Adreßregister 56 zugeführt wird, bevor sie dem Speicher 10 zugeführt werden. Das sequentielle Adressieren
ist erforderlich, da jeder Chip des Speichers nur sieben Adreßleitungen zum Spezifizieren sowohl der Zeilen als auch der Spaltenadressen hat. Der Chip ist in der Lage, die Zeilen- und Spaltenadressen auf der Basis der Zeitsteuerung der Signale RAS und CAS zu trennen. (Aus Vereinfachungsgründen zeigt Fig. 1 nicht das Multiplexieren der Zeilen- und Spaltenadressen, der betreffende Betrieb kann aber ebenfalls auf dieselbe Weise zeitmultiplexiert werden).
In gleicher Weise wird das REFRESH + WIEDEREINSCHREIBSTEUE-RUNG-Signal an den Modulauswählmultiplexer 58 angelegt, um entweder die Moduladresse des Anfordereradreßregisters oder die Moduladresse des Auffrischadreßzählers 2 auszuwählen. Drei Adreßbits an dem Ausgang 2:1-Modulauswählmultiplexers werden benutzt, um einen von 8 Moduln einer Speichermatrix auszuwählen, die beispielsweise in einer bevorzugten Ausführungsform der Erfindung benutzt werden kann, wie es in Fig. gezeigt ist. Die drei Bits werden einem Modulauswählregister zugeführt, wo sie zum Zwecke der korrekten Zeitsteuerung gespeichert werden, bevor sie der in Fig. 4 gezeigten Modulauswählschaltung 15 zugeführt werden, die einen der acht Moduln für die Aktivierung durch weitere Steuersignale auswählt, um entweder das Auslesen aus diesem oder das Einschreiben in diesen zu gestatten.
Fig. 3 zeigt im einzelnen den Auffrischadreßzähler 2, der den Auffrischzeilenadreßzähler 201, den Auffrischspaltenadreßzahler 202 und den Auffrischmodulzähler 203 enthält. Der Übertragsausgang CY des Auffrischzeilenadreßzählers 201 taktet den Auffrischspaltenadreßzahler 202, dessen Übertragsausgang CY seinerseits den Auffrischmodulzähler 203 taktet.
Der Auffrischintervallzeitgeber 4 legt, wie oben erwähnt, die Intervalle fest, in denen der dynamische RAM-Matrix-
Speicher aufgefrischt und aufgesucht wird. Das Ausgangssignal des Zeitgebers 4 wird als ein Eingangssignal an die Zeitgeber- und Steuerlogik 3 angelegt, damit ein Signal zum Inkrementieren des Auffrischadreßzählers 2 geliefert wird. Die Zeitgeber- und Steuerlogik 3 erzeugt außerdem mehrere Signale, und zwar jedes auf seiner eigenen Leitung, die in ein Steuerregister 60 gehen. Diese Signale sind das Zeilenadreßauftastsignal RAS, das Spaltenadreßauftastsignal CAS,-das Einladesignal LD EIN, das Ausladesignal LD AUS und das Auffrischsignal REFRESH. Jedes dieser Ausgangssignale des Registers 60 wird auf seiner eigenen Leitung als ein Steuersignal an die dynamische RAM-Matrix 10 abgegeben, die in Fig. 4 gezeigt ist.
Das Anfordererschnittstellensignal, mit dem eine Zugriffsanforderung aus dem Anforderer an den Gruppencontroller beginnt, ist das Signal BC START, das an die Zeitgeber- und Steuerlogik 3 angelegt wird. Es ist zu erkennen, daß die Zeitgeber- und Steuerlogikschaltung 3 entweder durch ein Signal aus dem Auffrischintervallzeitgeber 4 oder durch das Signal BC START aus dem Anforderer betätigt wird.
Die Anfordererschnittstellensignale aus dem Gruppencontroller an dem Anforderer sind das Gruppencontrollerbelegtsignal BC BELEGT, das Gruppencontrollerfehlersignal BC FEHLER und das Gruppencontrollerdatenzurücksignal BC DATEN ZURÜCK. Das Signal BC DATEN ZURÜCK zeigt dem Anforderer an, daß die angeforderten Daten bereit sind und zu dem Anforderer gesendet werden. Das Signal BC FEHLER zeigt dem Anforderer an, daß eine Verzögerung von einem Zyklus auftritt, bevor das nächste Wort der angeforderten Daten wegen der Verzögerung gesendet wird, die aufgrund der Korrekturoperation auftritt, und das Signal BC BELEGT zeigt an, daß der Gruppencontroller Daten aus dem Anforderer nicht empfangen kann, entweder weil er in einem Auffrischzyklus ist oder weil er wegen eines vorherigen Anforderungsbeginns belegt ist.
Wenn ein Wort während der Aufsuchoperation als fehlerhaft erkannt wird, ist die Schaltung in der Lage, eine geringfügige Verzögerung hervorzurufen, die wegen der Pipelineverarbeitung der Information in der Anlage erforderlich ist, um die Zeitgeber- und Steuerlogik 3 zu veranlassen, die Steuersignale zu liefern, die erforderlich sind, um eine vollständige Lese/Modifizier-Schreiboperation in derselben Wortposition auszuführen, die unmittelbar vorher als fehlerhaft ermittelt worden ist. Während des Lese/Modifizier-Schreibzyklus wird das Wort, das zuvor während des Aufsuchzyklus gelesen und für fehlerhaft befunden worden ist, wieder gelesen, wenn notwendig korrigiert, und sofort wieder in den Speicher eingelesen.
Wenn ein Wort aus dem Speicher in den Gruppencontroller auf eine Anforderung durch den Anforderer 100 hin eingelesen und ein Fehler erkannt wird, wird das Wort in der Gruppencontrollerfehlerkorrekturschaltung korrigiert, aber nicht wieder in den Speicher eingeschrieben. Wenn dasselbe Wort während des Aufsuchzyklus ausgelesen wird, wird es wieder auf einen Fehler überprüft und, wenn ein Fehler erkannt wird, wird das korrigierte Wort wieder in den Speicher eingeschrieben.
Das Speichersystem in der Konfiguration von Fig. 2-4 kann grundsätzlich als ein Pipelinesystem betrieben werden, d.h. als ein System, in welchem eine Anzahl von Zugriffen in verschiedenen Phasen der Vollendung zu irgend einer Zeit in Gang sind. Das System gestattet außerdem einen blockorientierten Zugriff, d.h. der Zugriff erfolgt auf einen Block von zwei oder mehr als zwei aufeinanderfolgenden Wörtern, z.B. vier Wörtern in der oben beschriebenen Ausführungsform, so daß zu der Zeit, zu der das letzte Wort eines Blockes tatsächlich auf eine Fehlerkorrektur hin überprüft wird, das System bereits in der nächsten Zugriffsanforderung ist.
Die Auffrischoperation ist außerdem so ausgestaltet, daß sie in derselben Pipelinebetriebsweise wie die Zugriffsoperation ausgeführt wird, damit sich ein zweckmäßiges Ausmaß an Auffrischüberlappung ergibt. Zu der Zeit, zu der ein Fehler in einem besonderen Wort erkannt worden ist, ist dieses Wort nicht langer an der Zugriffsoperation beteiligt. Da die Speicherchips selbst dann an einer anschließenden Zugriffsoperation beteiligt sind, kann die ursprüngliche Zugriffsoperation nicht mit korrigierten Daten abgeschlossen werden. Demgemäß wird ein Flag gesetzt, um anzuzeigen, daß ein Fehler festgestellt worden ist, der im Speicher korrigiert werden sollte. Zu einer späteren Zeit (typischerweise wenige MikroSekunden später) wird das Wort erneut gelesen, weil die Daten, die korrigiert werden müssen, in der Zwischenzeit modifiziert worden sein kämen, und die Korrekturdaten werden in einer Operation erzeugt und wieder eingeschrieben. Jede Änderung in den Daten, die in dieser Wortposition gespeichert sind, zwischen der Zeit, zu der ein Fehler zum erstenmal erkann worden ist, und der Zeit, zu der der Fehler korrigiert werden kann, erzeugt daher keinen weiteren Fehler.
Beispielsweise liegt in einer besonderen Ausfuhrungsform eine Zeitdauer von 15 με zwischen Auffrischsignalen REFRESH, wobei jeder Auffrischzyklus 550 ns erfordert, wie in einer normalen Zugriffsoperation. Wenn ein Fehler während der Aufsuchoperation erkannt wird, erfolgt der Zugriff auf das Wort wieder während der 15 με zwischen den Auffrischsignalen f und zu dieser Zeit wird der Fehler korrigiert. Der Auffrischadreßzähler 2 von Fig. 1 (oder der Zähler 201 von Fig. 3) enthält die Adresse, die den Block von Wörtern angibt, die aufzusuchen sind, und, wenn ein Fehler gefunden wird, wird wenige Mikrosekunden später der Fehler korrigiert. Der Zähler 2 fcder der Zähler 201) wird erst unmittelbar vor dem nächsten Auffrischzyklus auf den neuesten Stand gebracht. Die korrekte Adresse ist daher zu der Zeit vorhanden, zu der
wieder der Zugriff auf das korrigierte Wort zur Korrektur erfolgt und dieses wieder in den Speicher eingeschrieben wird.
Die Auffrischoperation ist tatsächlich ein Auslesen eines Wortspeicherplatzes, auf den der Zugriff sequentiell und periodisch erfolgt. Ein Auffrischsignal REFR (an dem Gatter 46 von Fig. 4) übersteuert das Modulvergleichssignal, so daß, obgleich nur ein Modul gelesen wird, sämtliche Moduln aktiviert werden, um denjenigen Teil des Lesezyklus auszuführen, der für eine Auffrischoperation erforderlich ist. Die Aufsuchoperation bewirkt somit eine Auffrischoperation über und oberhalb einer normalen Leseoperation. Da die Operation in den Fig. 2-4 ein Blocklesen ist (d.h. vier aufeinanderfolgende Wörter werden gelesen), wird ein Wort aus jeder Ebene eines Moduls in Intervallen von 110 ns pro Wort gelesen. Eine Aufsuchoperation ist in Wirklichkeit ein Lesen einer Wortspeicherstelle in jeder Ebene in Intervallen von 110 ns. Statt des Auswählens von nur einem Modul und des Lesens nur dieses Moduls, wie bei einem herkömmlichen Lesen, wird deshalb während der Aufsuchoperation ein Modul ausgewählt und gelesen und ein Teil der Leseoperation (der nicht das tatsächliche Auslesen der Daten einschließt) wird außerdem auf den Chips sämtlicher anderen Moduln ausgeführt, weil das Signal REFRESH eine Auffrischung an sämtlichen Zeilen vornehmen soll, die der besonderen Zeile entsprechen, die in dem einen Modul gelesen wird, der aufgesucht wird.
Gemäß Fig. 4 sind vier Ebenen 0-3 in jedem Modul vorhanden, wobei die Eingänge und die Ausgänge der Ebenen 0 und 2 und die Eingänge und die Ausgänge der Ebenen 1 und 3 miteinander verbunden sind, wie dargestellt. Außerdem ist gezeigt, daß Steuersignale auf der Leitung 13 jeder Ebene zugeführt werden. Diese Steuersignale werden den Ebenen 14 der Reihe nach zugeführt, wobei ein 11O-ns-Taktsignal jedem Register 12 auf der Leitung 121' für das Steuersignal RAS und ebenso anderen
Registern (nicht gezeigt) für die anderen Adreß- und Steuersignale zugeführt wird. Die Steuersignale und die Adresse, die der Ebene 0 zugeführt werden, werden daraufhin einem zweiten Register 12' für das Steuersignal RAS und einem ähnlichen zweiten Register für jedes der anderen Adreß- und Steuersignale (für die Ebene 1) 110 ns später zugeführt, usw. über jede der vier Ebenen.
Das Modulauswählsignal (MODSEL) 102 aus dem Gruppencontroller 300, der in Fig. 3 gezeigt ist, zeigt an, auf welchen Modul der Zugriff erfolgen soll. Das Modulauswählsignal MODSEL wird in geeigneter Weise mit Steuersignalen aus dem Gruppencontroller (z.B. RAS, CAS, LD EIN, LD AUS) gesteuert. Das Signal REFR wird ebenfalls mit dem Steuersignal RAS aus dem Gruppencontroller gesteuert, so daß das Signal RAS und nur das Signal RAS an sämtliche Moduln angelegt wird, wenn ein Auffrischsignal REFR vorhanden ist. Der Modulauswählvergleich wird daraufhin übersteuert, wenn das Signal REFR vorhanden ist, so daß ein Signal RAS,aber kein Signal CAS geliefert wird, um die Auffrischoperation auszuführen (diese Operation, die nur dem Auffrischen dient, wird nicht dazu führen, daß irgendwelche Daten geliefert werden). Daten können dem Modul auf der Leitung 11 über ein Multiplexerregister 20 und eine Treiberschaltung 21 entnommen werden, die durch ein Steuersignal aus einem LD-AUS-Controller 22 freigegeben wird, welcher seinerseits durch die Modulvergleichsschaltung gesteuert wird. Es gibt daher keine RD 0-38-Datenausgabe aus irgendeinem Modul, der nicht gelesen wird, an sich, sondern es erfolgt nur eine Auffrischung. Irgendein Modul, der gelesen wird, wird in keiner Weise durch die Tatsache gestört, daß die Auffrischoperation die anderen Moduln für Auffrischzwecke aktiviert hat.
Die Lesedateneingangsleitung an dem Gruppencontroller (RD 0-38) ist mit der Lesedatenausgangsleitung des Speichermoduls verbunden. Die Auffrischoperation gleicht im wesentlichen
V:··' ·:· 311 55A1 34
einer normalen Leseoperation, mit der Ausnahme, daß das Steuersignal REFR zusammen mit dem Modulauswählsignal MODSEL vorhanden ist. In einem ersten Zeitteil der Auffrischoperation sind die gelieferten Steuersignale die Signale RAS und MODSEL, während die Adreßleitung 103 die Zeilenadresse liefert. In dem späteren Zeitteil werden die anderen Steuersignale (CAS, LD AUS) geliefert, und zwar alle Signale auf unabhängigen Leitungen.
Die Zeitsteuerung ist, wie oben erwähnt, so ausgebildet, daß die Steuersignale an jede der Ebenen 0-1 eines Moduls der Reihe nach angelegt werden, d.h. wenn die Steuersignale für die Anfangszeitperiode der Ebene 1 zugeführt werden, werden die Steuersignale für die folgende Zeitperiode der Ebene 0 zugeführt, usw. Schließlich werden, da der Zugriff auf die Ebenen nacheinander erfolgt, Daten aus jeder der Ebenen in Intervallen von 110 ns zurückgeliefert.
Fig. 4 zeigt eine Reihe oder Kaskade von Registern 12, die das Signal RAS den Ebenen 0-3 eines Moduls der Reihe nach in zeitlichen Abständen von 110 ns zuführen. Obgleich in Fig. nicht gezeigt, wie oben erwähnt, ist eine ähnliche Kaskade von Registern auch für jedes der Steuersignale CAS, LD EIN, LD AUS sowie für die Zeilen- und Spaltenadressen, die jedem Modul zugeführt werden, erforderlich, wobei diese Register benutzt werden, um diese Signale jeder Ebene nacheinander zuzuführen. Die Modulauswählschaltung 15 wird auf jedem Modul mit einem anderen Modulkennzeichnungssignal MOD ID 0-2 versorgt, daß jeder Modulauswählschaltung 15 zugeführt wird.
Das Signal LADEN AUS wird beim Auslesen von Daten aus dem Speicher benutzt und dient zum Steuern des Multiplexers und Registers 20 sowie der Treiberschaltung 21, die die Ausgangsdaten an den Datenbus 104 abgibt. Die Treiberschaltung 21 ist so ausgebildet, daß sie, wenn sie keine Daten an den
Bus 104 abgibt, in einem Zustand hoher Impedanz ist, so daß irgendeine andere Treiberschaltung eines anderen Moduls r die durch die Laden-aus-Steuereinheit 22 durch ihr Signal LADEN AUS Freigegeben worden ist, den Bus 104 treiben kann.
Das Signal LADEN EIN wird in der Schnittstellenschaltung zum Freigeben der Register benutzt, die Eingangsdaten auf. der Leitung 109 liefern (wobei diese Art der Verriegelung in Fig. 4 nicht besonders gezeigt ist). Wichtiger ist, daß das Signal LADEN EIN benutzt wird, um das Signal WE zu liefern, welches die Daten in dem Daten-ein-Speicherflipflopregister mit den RAMs überträgt.
Die unter Bezugnahme auf die Fig. 2-4 beschriebene Ausführungsform kann beispielsweise in einer Anlage benutzt werden, die den Gegenstand einer europäischen Patentanmeldung der Anmelderin bilden, für die die Priorität von folgenden US-Patentanmeldungen der Anmelderin in Anspruch genommen worden ist:
25. April 1980 143,561
25. April 1980 143,681
25. April 1980 143,981
25. April 1980 143,947
25. April 1980 143,651
25. April 1980 143,710
25. April 1980 143,982
Leerseite

Claims (6)

  1. DATA GENERAL CORPORATION
    Route 9
    Westboro, Massachusetts 01581 /V.St.A.
    Unser Zeichen: D 733
    Patentansprüche :
    (T) Datenverarbeitungsanlage mit einem Speicher, in welchem binäre Wörter gespeichert werden, von denen jedes mehrere Bits aufweist, gekennzeichnet durch:
    eine Auffrischeinrichtung zum periodischen Auffrischen der Bits jedes gespeicherten Wortes in einem ausgewählten. Auffrischzeitintervall;
    eine Fehlererkennungseinrichtung zum Erkennen eines Fehlers, der in wenigstens einem Binärbit jedes gespeicherten Wortes vorhanden sein kann, wobei das Erkennen desselben im wesentlichen zur selben Zeit wie das Auffrischen jedes gespeicherten Wortes ausgeführt wird;
    eine Fehlerkorrektureinrichtung, die auf das Erkennen von Fehlern in einem gespeicherten Wort anspricht, um die Fehler zu korrigieren, wenn sie während der Auffrischoperation erkannt worden sind; und
    eine Einrichtung zum Wiedereinschreiben der korrigierten Wörter in den Speicher.
  2. 2. Anlage nach Anspruch 1, dadurch gekennzeichnet,
    daß die Fehlererkennungseinrichtung weiter in der Lage ist, einen Fehler in wenigstens einem Binärbit eines gespeicherten Wortes im wesentlichen zur selben Zeit zu erkennen, zu der ein Anforderer Zugriff auf ein gespeichertes Wort verlangt;
    daß die Fehlerkorrektureinrichtung weiter in der Lage ist, einen Fehler in einem gespeicherten Wort zu korrigieren, auf das der Zugriff verlangt worden ist; und daß eine Einrichtung vorgesehen ist, die das korrigierte Wort dem Anforderer zuführt, während das unkorrigierte Wort in dem Speicher verbleibt, bis es in einer späteren Auffrischoperation korrigiert wird.
  3. 3. Anlage nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Speicher mehrere Speichermoduln enthält, in denen die Wörter gespeichert werden, deren Binärbits in auswählbaren Zeilen und Spalten in jedem Speichermodul angeordnet sind, und daß die Auffrischeinrichtung weiter enthält: eine Modulauswähleinrichtung, die während einer Auffrischoperation ein Modulauswählsignal zum Auswählen eines bestimmten Speichermoduls liefert, in welchem ein Wort aufzufrischen ist;
    eine Zeilenauswähleinrichtung, die während einer Auffrischoperation ein Zeilenauswählsignal an sämtliche Speichermoduln abgibt, das eine bestimmte Zeile in jedem der Moduln kennzeichnet; und
    eine Spaltenauswähleinrichtung, die während einer Auffrischoperation ein Spaltenadreßauswählsignal nur an den bestimmten Modul, der für die Auffrischoperation ausgewählt worden ist, abgibt, das eine bestimmte Spalte in dem ausgewählten Modul kennzeichnet.
  4. 4. Anlage nach Anspruch 3, dadurch gekennzeichnet, daß die Spaltenauswähleinrichtung das Spaltenadreßauswählsignal nur an den durch das Modulauswählsignal angegebenen
    Modul abgibt, wenn ein Anforderer verlangt, daß ein Wort aus dem Speicher ausgelesen oder in diesen eingeschrieben wird;
    daß die Zeilenauswähleinrichtung das Zeilenadreßauswählsignal nur an den durch das Modulauswählsignal angegebenen Modul abgibt, wenn ein Anforderer verlangt, daß ein Wort aus dem Speicher ausgelesen oder in diesen eingeschrieben wird.
  5. 5. Anlage nach Anspruch 4, gekennzeichnet durch eine Einrichtung, die ein Schreibfreigabesignal nur an den durch das Modulauswählsignal angegebenen Modul abgibt, wenn ein korrigiertes Wort während einer Auffrischoperation wieder in den Speicher eingeschrieben wird oder wenn ein Anforderer verlangt, daß ein Wort wieder in den Speicher eingeschrieben wird.
  6. 6. Anlage nach Anspruch 5, dadurch gekennzeichnet, daß der Speichermodul Einrichtungen enthält, die ein Belegtsignal liefern, wenn eine Auffrischoperation an den in dem Modul gespeicherten Wörtern ausgeführt wird, um einen Anforderer daran zu hindern, während der Auffrischoperation auf diesen Modul zuzugreifen.
DE19813115541 1980-04-25 1981-04-16 "datenverarbeitungsanlage" Granted DE3115541A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/143,675 US4380812A (en) 1980-04-25 1980-04-25 Refresh and error detection and correction technique for a data processing system

Publications (2)

Publication Number Publication Date
DE3115541A1 true DE3115541A1 (de) 1982-03-25
DE3115541C2 DE3115541C2 (de) 1990-05-17

Family

ID=22505098

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19813115541 Granted DE3115541A1 (de) 1980-04-25 1981-04-16 "datenverarbeitungsanlage"

Country Status (9)

Country Link
US (1) US4380812A (de)
JP (1) JPS56169300A (de)
AU (1) AU544356B2 (de)
CA (1) CA1165451A (de)
DE (1) DE3115541A1 (de)
FR (1) FR2481487B1 (de)
GB (1) GB2075730B (de)
NL (1) NL8102030A (de)
SE (1) SE449141B (de)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493081A (en) * 1981-06-26 1985-01-08 Computer Automation, Inc. Dynamic memory with error correction on refresh
JPS59117800A (ja) * 1982-12-25 1984-07-07 Fujitsu Ltd バツフア・ストレ−ジの1ビツトエラ−処理方式
US4532628A (en) * 1983-02-28 1985-07-30 The Perkin-Elmer Corporation System for periodically reading all memory locations to detect errors
JPS59165300A (ja) * 1983-03-10 1984-09-18 Fujitsu Ltd メモリ障害訂正方式
US4535455A (en) * 1983-03-11 1985-08-13 At&T Bell Laboratories Correction and monitoring of transient errors in a memory system
US4542454A (en) * 1983-03-30 1985-09-17 Advanced Micro Devices, Inc. Apparatus for controlling access to a memory
JPS60229592A (ja) * 1984-04-27 1985-11-14 Mitsubishi Electric Corp 符号化伝送方式文字放送受信装置
EP0162936B1 (de) * 1984-05-26 1988-08-10 HONEYWELL BULL ITALIA S.p.A. Einzelfehlerkorrektur für Speichersystem
CA1234222A (en) * 1984-09-26 1988-03-15 Akira Matsushita Method and apparatus for error correction
US4899275A (en) * 1985-02-22 1990-02-06 Intergraph Corporation Cache-MMU system
JPS61214298A (ja) * 1985-03-20 1986-09-24 Toshiba Corp 誤り訂正機能を備えた半導体記憶装置
CA1240066A (en) * 1985-08-15 1988-08-02 John R. Ramsay Dynamic memory refresh and parity checking circuit
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
JPH01171199A (ja) * 1987-12-25 1989-07-06 Mitsubishi Electric Corp 半導体メモリ
EP0424301A3 (en) * 1989-10-18 1992-09-16 International Business Machines Corporation Overlapped data scrubbing with data refreshing
GB2239539B (en) * 1989-11-18 1994-05-18 Active Book Co Ltd Method of refreshing memory devices
US5127014A (en) * 1990-02-13 1992-06-30 Hewlett-Packard Company Dram on-chip error correction/detection
JP3146075B2 (ja) * 1992-10-14 2001-03-12 三菱電機株式会社 多重化メモリ装置
EP0600137A1 (de) * 1992-11-30 1994-06-08 International Business Machines Corporation Verfahren und Einrichtung zur Korrektur von Fehlern in einem Speicher
TW382705B (en) * 1996-10-21 2000-02-21 Texas Instruments Inc Error correcting memory
JP3177207B2 (ja) * 1998-01-27 2001-06-18 インターナショナル・ビジネス・マシーンズ・コーポレ−ション リフレッシュ間隔制御装置及び方法、並びにコンピュータ
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems
US20020199153A1 (en) * 2001-06-22 2002-12-26 Fall Thomas G. Sampling method for use with bursty communication channels
US20030046630A1 (en) * 2001-09-05 2003-03-06 Mark Hilbert Memory using error-correcting codes to correct stored data in background
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
US7320100B2 (en) 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7099221B2 (en) * 2004-05-06 2006-08-29 Micron Technology, Inc. Memory controller method and system compensating for memory cell data losses
US7116602B2 (en) 2004-07-15 2006-10-03 Micron Technology, Inc. Method and system for controlling refresh to avoid memory cell data losses
US7392456B2 (en) * 2004-11-23 2008-06-24 Mosys, Inc. Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
US7894289B2 (en) * 2006-10-11 2011-02-22 Micron Technology, Inc. Memory system and method using partial ECC to achieve low power refresh and fast access to data
US7900120B2 (en) * 2006-10-18 2011-03-01 Micron Technology, Inc. Memory system and method using ECC with flag bit to identify modified data
US8245087B2 (en) * 2007-03-26 2012-08-14 Cray Inc. Multi-bit memory error management
KR20150018091A (ko) * 2013-08-09 2015-02-23 에스케이하이닉스 주식회사 오류 검출 회로 및 이를 이용한 데이터 처리 장치
CN106133700A (zh) * 2014-03-29 2016-11-16 英派尔科技开发有限公司 节能的动态dram缓存调整
US9990293B2 (en) 2014-08-12 2018-06-05 Empire Technology Development Llc Energy-efficient dynamic dram cache sizing via selective refresh of a cache in a dram
US9823964B2 (en) 2015-12-08 2017-11-21 Nvidia Corporation Method for memory scrub of DRAM with internal error correcting code (ECC) bits during either memory activate and/or precharge operation
US10049006B2 (en) 2015-12-08 2018-08-14 Nvidia Corporation Controller-based memory scrub for DRAMs with internal error-correcting code (ECC) bits contemporaneously during auto refresh or by using masked write commands
US9880900B2 (en) 2015-12-08 2018-01-30 Nvidia Corporation Method for scrubbing and correcting DRAM memory data with internal error-correcting code (ECC) bits contemporaneously during self-refresh state
US9934841B1 (en) 2016-10-21 2018-04-03 Altera Corporation Systems and methods for refreshing data in memory circuits
CN113223603B (zh) * 2021-05-31 2022-12-06 西安紫光国芯半导体有限公司 存储器刷新控制方法、装置、控制电路及存储器件

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4005405A (en) * 1975-05-07 1977-01-25 Data General Corporation Error detection and correction in data processing systems
US4183096A (en) * 1978-05-25 1980-01-08 Bell Telephone Laboratories, Incorporated Self checking dynamic memory system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2247835C3 (de) * 1972-09-29 1978-10-05 Siemens Ag, 1000 Berlin Und 8000 Muenchen Verfahren zum Regenerieren der Speicherinhalte von MOS-Speichern und MOS-Speicher zur Durchführung dieses Verfahrens
DE2549392C3 (de) * 1975-11-04 1978-07-27 Siemens Ag, 1000 Berlin Und 8000 Muenchen Verfahren zur Erhöhung der Zuverlässigkeit von integrierten Speicherbausteinen und zur Verbesserung der Ausbeute von nach außen hin fehlerfrei erscheinenden Speicherbausteinen bei ihrer Herstellung
JPS5381036A (en) * 1976-12-27 1978-07-18 Hitachi Ltd Error correction-detection system
US4216541A (en) * 1978-10-05 1980-08-05 Intel Magnetics Inc. Error repairing method and apparatus for bubble memories
US4251863A (en) * 1979-03-15 1981-02-17 Sperry Corporation Apparatus for correction of memory errors
US4255808A (en) * 1979-04-19 1981-03-10 Sperry Corporation Hard or soft cell failure differentiator
US4319356A (en) * 1979-12-19 1982-03-09 Ncr Corporation Self-correcting memory system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4005405A (en) * 1975-05-07 1977-01-25 Data General Corporation Error detection and correction in data processing systems
US4183096A (en) * 1978-05-25 1980-01-08 Bell Telephone Laboratories, Incorporated Self checking dynamic memory system

Also Published As

Publication number Publication date
FR2481487B1 (fr) 1987-06-12
NL8102030A (nl) 1981-11-16
GB2075730B (en) 1984-09-19
CA1165451A (en) 1984-04-10
FR2481487A1 (fr) 1981-10-30
AU6760081A (en) 1981-10-29
US4380812A (en) 1983-04-19
GB2075730A (en) 1981-11-18
SE8102507L (sv) 1981-10-26
SE449141B (sv) 1987-04-06
JPH0118459B2 (de) 1989-04-05
DE3115541C2 (de) 1990-05-17
JPS56169300A (en) 1981-12-25
AU544356B2 (en) 1985-05-23

Similar Documents

Publication Publication Date Title
DE3115541A1 (de) "datenverarbeitungsanlage"
DE4222273C2 (de) Zweikanalspeicher und Verfahren zur Datenübertragung in einem solchen
DE3834759C2 (de)
DE3588247T2 (de) Dynamischer Halbleiterspeicher mit einer statischen Datenspeicherzelle
DE2061854C3 (de) Speicher aus Schieberegistern
DE69729771T2 (de) Integrierte Schaltung mit einer eingebauten Selbsttestanordnung
DE19830111A1 (de) Integrierter Speicher
DE3128729C2 (de) Halbleiter-Speichersystem
DE19526411A1 (de) Programmierbarer dynamischer Direktzugriffsspeicher (DRAM)
DE2617408A1 (de) Datenverarbeitungsgeraet
DE19860650A1 (de) Chip-Satz-Speichersteuervorrichtung mit Datenausblend-Maskenfunktion
DE19713421A1 (de) Halbleiterspeicher-Testvorrichtung
DE4344254C2 (de) Halbleiterspeichervorrichtung mit wechselbarer Eingabe/Ausgabe-Datenbitanordnung
DE10319158A1 (de) Vorrichtung zum flexiblen Deaktivieren von Wortleitungen von dynamischen Speicherbausteinen und Verfahren hierfür
DE10206689B4 (de) Integrierter Speicher und Verfahren zum Betrieb eines integrierten Speichers
EP0013697B1 (de) Auffrischung benötigendes seitenorganisiertes Speichersystem
DE69828021T2 (de) Halbleiterspeicheranordnung mit mehreren Banken
DE3009872A1 (de) Verfahren und schaltungsanordnung zum regenerieren von in einem dynamischen mos-speicher gespeicherten daten
DE2719291A1 (de) Datenspeichersystem
DE4309320A1 (de) Halbleiterspeichervorrichtung und Betriebsverfahren
DE4335061C2 (de) Mehrspeichervorrichtung
DE19908513A1 (de) Halbleiterspeicherbauelement mit eingebauter Schaltung zur parallelen Bitprüfung
DE2554502B2 (de)
DE19547782A1 (de) Halbleiterspeichervorrichtung mit Vorladeschaltung
DE112007003117T5 (de) Neue Implementierung der Spaltenredundanz für einen Flash-Speicher mit einem hohen Schreibparallelismus

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8128 New person/name/address of the agent

Representative=s name: PRINZ, E., DIPL.-ING. LEISER, G., DIPL.-ING. SCHWE

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