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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/106—Correcting 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)
- DATA GENERAL CORPORATIONRoute 9Westboro, Massachusetts 01581 /V.St.A.Unser Zeichen: D 733Patentansprü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; undeine Einrichtung zum Wiedereinschreiben der korrigierten Wörter in den Speicher.
- 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. 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; undeine 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. Anlage nach Anspruch 3, dadurch gekennzeichnet, daß die Spaltenauswähleinrichtung das Spaltenadreßauswählsignal nur an den durch das Modulauswählsignal angegebenenModul 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. 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. 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.
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)
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)
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)
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 |
-
1980
- 1980-04-25 US US06/143,675 patent/US4380812A/en not_active Expired - Lifetime
-
1981
- 1981-02-24 AU AU67600/81A patent/AU544356B2/en not_active Ceased
- 1981-04-16 GB GB8112082A patent/GB2075730B/en not_active Expired
- 1981-04-16 DE DE19813115541 patent/DE3115541A1/de active Granted
- 1981-04-21 SE SE8102507A patent/SE449141B/sv not_active IP Right Cessation
- 1981-04-21 JP JP6050281A patent/JPS56169300A/ja active Granted
- 1981-04-23 CA CA000376078A patent/CA1165451A/en not_active Expired
- 1981-04-24 NL NL8102030A patent/NL8102030A/nl not_active Application Discontinuation
- 1981-04-24 FR FR8108215A patent/FR2481487B1/fr not_active Expired
Patent Citations (2)
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 |