DE3115541C2 - - Google Patents

Info

Publication number
DE3115541C2
DE3115541C2 DE3115541A DE3115541A DE3115541C2 DE 3115541 C2 DE3115541 C2 DE 3115541C2 DE 3115541 A DE3115541 A DE 3115541A DE 3115541 A DE3115541 A DE 3115541A DE 3115541 C2 DE3115541 C2 DE 3115541C2
Authority
DE
Germany
Prior art keywords
module
memory
word
signal
refresh
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE3115541A
Other languages
English (en)
Other versions
DE3115541A1 (de
Inventor
Michael L. Whitinsville Mass. Us Ziegler
Michael B. Chelmsford Mass. Us Druke
John R. Van Ann Arbor Mich. Us Roekel
Ward Carlisle Mass. Us Baxter Ii.
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

Die Erfindung bezieht sich auf ein dynamisches Speichersystem gemäß dem Oberbegriff des Patentanspruchs 1.
Ein solches dynamisches Speichersystem ist aus der US-PS 41 83 096 bekannt. Bei diesem bekannten Speichersystem können mit Hilfe einer Fehlererkennungs­ einrichtung Fehler jeweils während einer Auffrischoperation erkannt werden. Wenn beispielsweise von einem Benutzer ein Speicherzugriffsbefehl kommt, wird ein Wort im Speicher gelesen und geprüft, um gegebenenfalls einen Fehler festzustellen. Wenn ein Fehler festgestellt wird, muß bei Verwendung des bekannten dynami­ schen Speichers erst ein Auffrischzyklus abgewartet werden, bis der adressierte Speicherinhalt in einer korrigierten Form zum Benutzer gelangt, da diese Übertragung zum Benutzer erst dann stattfinden kann, wenn nach dem Lesen kein Fehler fest­ gestellt worden ist. Somit ergibt sich beim Auffinden eines Fehlers jeweils eine Verzögerung bis zur Beendigung der näch­ sten Auffrischoperation.
Aus der US-PS 40 05 405 ist allgemein eine Fehlerkorrektur­ einrichtung für die Korrektur von Speicherfehlern bekannt, die die Fähigkeit hat, Fehler selbsttätig zu korrigieren, solange nicht mehr als ein Bit in dem fehlerhaften Datenwort betroffen ist. Bei dem verwendeten Speicher handelt es sich jedoch nicht um einen dynamischen Speicher, bei dem mit sich zyklisch wiederholenden Auffrischoperationen gearbeitet wird.
Der Erfindung liegt die Aufgabe zugrunde, ein dynamisches Speichersystem der eingangs angegebenen Art zu schaffen, bei dem es nicht zu Verzögerungen der Abgabe des Speicherinhalts an einen Benutzer kommt, wenn ein Fehler in einem adressierten Speicherwort festgestellt worden ist.
Diese Aufgabe wird gemäß der Erfindung mit den im Kennzei­ chen des Patentanspruchs 1 angegebenen Merkmalen gelöst.
Beim erfindungsgemäßen dynamischen Speichersystem wird beim Feststellen eines Fehlers in einem Datenwort, das durch einen Benutzerbefehl aus dem Speicher gelesen worden ist, der Feh­ ler in der Fehlererkennungseinrichtung zwar korrigiert, der korrigierte Wert wird jedoch unmittelbar an den Benutzer weitergegeben und nicht wieder in den Speicher geschrieben. Im Speicher bleibt also nach wie vor das mit dem Fehler be­ haftete Wort erhalten. Der Fehler wird dann bei einer normalen Auffrischoperation festgestellt und entsprechend korri­ giert. Somit kommt es bei Verwendung des erfindungsgemäßen dynamischen Speichersystems zu keinerlei Verzögerung bei der Abgabe von Speicherinhalten an einen Benutzer, da keine Zeit dafür verlorengeht, die korrigierten Werte wieder in den Speicher zurückzuschreiben.
Vorteilhafte Weiterbildungen der Erfindung sind in den Unter­ ansprüchen gekennzeichnet.
Mehrere Ausführungsbeispiele der Erfindung werden im folgenden unter Bezugnahme auf die Zeichnungen näher beschrieben. Es zeigen
Fig. 1 ein Blockschaltbild einer Ausführungsform der Erfindung,
Fig. 2 und 3 Blockschaltbilder eines Teils einer zweiten Ausführungsform der Erfindung und
Fig. 4 ein Blockschaltbild eines weiteren Teils der zweiten Ausführungsform der Erfindung.
Fig. 1 zeigt ein Blockschaltbild einer Ausführungsform der Erfindung, die deren Arbeitsweise veranschaulicht. Eine dy­ namische RAM-Speichermatrix 10 enthält herkömmliche RAM-Chips. 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 0 und der Modul 1, die dyna­ mische 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 (C-Bits) darstellen. Die dynamische RAM-Matrix 10 hat ein Adreßeingangssignal, das von einem 2 : 1-Multiplexer (MUX) 1 geliefert wird, der ein Areß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 Auffrisch­ adreß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äch­ sten niedrigsten Stellenwert haben, während die Digitalposi­ tion des Adreßsignals mit dem höchsten Stellenwert zum Aus­ wählen des Moduls des dynamischen RAM-Speichers 10 benutzt wird, bei welchem es sich in diesem Fall entweder um den Modul 0 oder um den Modul 1 handelt. In anderen Ausführungs­ formen 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 auf­ weisenden 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 An­ forderer 100 und durch die Aufsuchschaltung 11 sowie durch die Fehlerkorrekturschaltung 12 steuern. Unter den Steuer­ signalen, 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 ge­ liefert. Beispielsweise liefert die Speicherzeitsteuerein­ heit 3 außerdem ein Zeilenadreßauftastsignal RAS, ein Spal­ tenadreß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 Fehlerkorrektur­ logik 12 und ein Signal BELEGT an den Anforderer 100. Ein Signal R/W (read/wirte 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 Ein­ gangssignal auf der Leitung 41 aus der Auffrischintervall­ zeitgebereinheit 4 betätigt. Der Auffrischintervallzeitgeber 4 liefert ein Taktintervall (in einer besonderen Ausführungs­ form der Erfindung kann ein Taktimpuls alle 15 µs auftreten). Das Ausgangssignal des Zeitgebers 4 dient als ein Impuls­ signal sowohl zum Aktivieren der Speicherzeitsteuereinheit 3 als auch zum Inkrementieren des Auffrischadreßzählers 2.
Der vorstehend genannte Multiplexer 1, der Auffrischadreß­ zähler 2, die Speicherzeitsteuereinheit 3 und der Auffrisch­ intervallzeitgeber 4 bilden die Hauptbauteile der Aufsuch­ schaltung 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­ rungssignal von dem Anforderer 100 an die Speicherzeitsteuer­ einheit 3 zusammen mit einem Signal auf der Lese-/Schreib­ leitung 15 abgegeben, von welchem angenommen wird, daß es anzeigt, daß ein Einschreiben in den Speicher durch den An­ forderer 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 Daten­ wort in der Speichermatrix 10 gespeichert werden. (Ein 32- Bit-Datenwort mit Einzelfehlerkorrektur und Doppelfehler­ kennung erfordert 32 Datenbits und 7 C-Bits).
Wenn stattdessen angenommen wird, daß der Anforderer ein Aus­ lesen 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 anzu­ zeigen, während weitere Bitmuster das Vorhandensein von Mehr­ bitfehlern 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 fehler­ haft 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, fehler­ haft ist, wobei die Korrekturlogikschaltung 24 diesen Feh­ ler korrigiert und an ihrem Ausgang über einen Datenbus 25 die korrigierten 32 Bits von Wortdaten an den Anforderer 100 abgibt. Die Fehlererkennungs- und -korrekturanforderung ist her­ kömmlich und bekannt. Ein typisches System ist in der US- PS 40 05 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 Aus­ lesens des Speichers 10 durch den Anforderer 100 ein Einzel­ bitfehler vorhanden war, der durch die Korrekturschaltung 12 korrigiert worden ist. Es sei angemerkt, daß bei dem Aus­ lesen 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 Speicherzeisteuereinheit 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 ver­ ständlich, wenn zuerst derjenige Teil der Schaltung 11 be­ trachtet wird, der einer herkömmlichen Auffrischschaltungs­ anordnung 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 zwi­ schen 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 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 Zeit­ spanne von 15 µs für die durch den Auffrischintervallzeit­ geber 4 gelieferten Impulse ergibt. Deshalb liefert der Auf­ frischintervallzeitgeber 4 alle 15 µs einen Impuls zu dem Auffrischadreßzähler 2, um dessen Zählerstand um eins zu er­ höhen, und außerdem ein Signal zu der Speicherzeitsteuer­ einheit 3, um anzuzeigen, daß ein Auffrischzyklus durch die Speicherzeitsteuerung bei der nächsten verfügbaren Gelegen­ heit 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 Anfor­ derer 100 ab, um dem Anforderer anzuzeigen, daß es eine Ver­ zögerung geben wird, bevor Daten aus dem Anforderer verarbeitet werden können, d. h. auf sie entweder in einer Lese­ operation zugegriffen oder sie in einer Schreiboperation empfangen werden können. Wenn, wie im Stand der Technik, nur eine Auffrischung stattfinden mußte, brauchte der Auffrisch­ adreß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 Speicher­ matrix 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 Spalten­ adresse 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 Modul­ auswahlinformation), 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 erfor­ dert die volle Adresse sieben zusätzliche Bits für die Spal­ tenadresse und nur ein zusätzliches Bit höheren Stellenwertes, das entweder den Modul 0 oder den Modul 1 als den aus­ gewä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 Zeilen­ adresse, 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 wieder­ holt 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 Mo­ duln 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 ge­ mäß den Zeilenadressen aufgefrischt werden, wie weiter oben beschrieben.
Die volle Adresse aus dem Auffrischadreßzähler 2 wird dem 2 : 1-Multiplexer 1 zugeführt. Wenn die Speicherzeitsteuerein­ heit 3 in dem Auffrischzyklus ist, gibt sie ein Auffrisch­ auswä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ähl­ logik 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 aufzu­ frischen. 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 dne Signalen versorgt wird, die bewir­ ken, daß das Wort, welches in der ausgewählten Zeilen- und Spaltenposition gespeichert ist, aus der Speichermatrix aus­ gelesen wird, damit es der Fehlerkorrekturschaltung 12 zu­ geführt wird, wo das Vorhandensein oder Nichtvorhandensein eines Fehlers in dem Wort an dieser besonderen Stelle er­ mittelt wird. Wenn ein Fehler festgestellt wird, gibt der S-Bit-Decoder 22 der Fehlerkorrekturschaltung 12 ein Fehler­ signal über eine Leitung 27 an die Speicherzeitsteuereinheit 3 ab. Das Vorhandensein des Fehlersignals bewirkt, daß die Speicherzeitsteuereinheit ein Signal FREIGABE über eine Lei­ tung 200 abgibt, welches bewirkt, daß das Wiedereinschreib­ register 5 das korrigierte Wort auf den Bus bringt, und er­ zeugt 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 vor­ handen 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ähllogig 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 "0" regeneriert, die ursprünglich in dieser Bitpostition gespei­ chert war. Somit werde dieselbe Adresse sowie das Signal RAS an sämtliche Moduln während einer Auffrischoperation ange­ legt, 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 aus­ gelesen 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 Spaltenadreßauftastsignals CAS an denjenigen Modul, der eine Moduladresse hat, die dem Modul­ teil 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 0 und den Modul 1 gibt, ist das Modulauswählbit entweder eine 1 und eine 0. Das Spaltenadreß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 Schreiban­ forderung aus dem Anforderer zu verzögern, bis der Auffrisch­ zyklus abgeschlossen worden ist. Ebenso wird, wenn eine Lese- oder Schreibanforderung aus dem Anforderer 100 auf der Lei­ tung 14 durch die Speicherzeitsteuereinheit 3 empfangen wird, der Auffrischzyklus verzögert, bis die Lese- oder Schreib­ anforderung auf der Leitung 15 aus dem Anforderer abgeschlossen worden ist.
In dem Fall, in welchem ein Auslesen des Aufsuchzyklus be­ wirkt, 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 Wiedereinschreiberegister bewirkt, daß die korrigierten Daten auf den Bus 16 gebracht werden, und das Schreib­ freigabesignal 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 Wiederein­ schreiben 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 Scheibbefehls aus dem Anforderer 100 erzeugt wird, wobei das Signal WE in Verindung mit der Zeilen-, Spalten- und Moduladresse ge­ liefert wird, die durch den Anforderer geliefert wird, zu­ sammen mit den Signalen RAS, CAS und MOD SEL, die alle be­ wirken, daß eine neue Information an dem Speicherplatz ein­ geschrieben 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 Grundope­ rationen angegeben, die bei der Fehlerkorrektur durch die Auf­ suchtechnik ausgeführt werden. In Anlagen, in denen in dem Speichersystem eine Informtationsübertragung im Pipelinebe­ trieb benutzt wird, wird die Implementierung zwar etwas kompli­ zierter, der oben beschriebene grundsätliche 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 Anforerer- und Aufsuchadressen einem Block von Wörtern in jedem Modul statt einem ein­ zelnen Wort in einem Modul zugeführt werden. Jeder Block besteht aus vier Wörtern, die in der besonderen Implementie­ rung 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 Fehlerkor­ rekturschaltung 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 aus­ gelesen 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 Speicherma­ trix sowie die Aufsuchoperation steuert. Die Adreß- und Daten­ wö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-Speichermultiplex­ ers 50 wird außerdem als ein Eingangssignal an ein Register 110 für ankommende 32-Bit-Schreibdaten angelegt, dessen Aus­ gangssignal an einen Schreibdatenausgangsbus und an die Dateneingangsleitung 109 der dynamischen RAM-Matrix 10 ange­ legt 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 dy­ namischen RAM-Matrix 10 von Fig. 4 als Bits WD 32-38 ange­ legt. Die Lesedaten (RD -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 Eingangs­ signal an ein 39-Bit-Speicherregister 223 angelegt wird, wo­ bei der S-Bit-Generator ein Signal FEHLER an die Zeitgeber- und 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 Korrekturlogikschaltun 24 ange­ legt 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 ab­ gibt, 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 Ausgangsleistung 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 vor­ handen 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 Korrektorschaltung 24 außerdem über eine Eingangsleitung 113 mit dem 2 : 1-Speichermultiplexer 50 verbunden, der die Funktion des Wiedereinschreiberegisters 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 113 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-Re­ gister 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 An­ forderer 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ähl­ register 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. 52′ geliefert werden, und den Auffrischzeilen- und -spaltenadressen, die durch den Auf­ frischadreßzähler 2 auf Leitungen 202′ bzw. 201′ geliefert werden, auszuwählen. Das REFRESH + WIEDEREINSCHREIBSTEUERUNG- 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 54 bewirkt zuerst, daß die ausgewählte Zei­ lenadresse und dann die ausgewählte Spaltenadresse nachein­ ander 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 Spal­ tenadressen, der betreffende Betrieb kann aber ebenfalls auf dieselbe Weise zeitmultiplexiert werden.)
In gleicher Weise wird das REFRESH + WIEDEREINSCHREIBSTEUERUNG- Signal an den Modulauswählmultiplexer 58 angelegt, um entweder die Moduladresse des Anfordereradreßregisters 59 oder die Moduladresse des Auffrischadreßzählers 2 auszuwählen. Drei Adreßbits an dem Ausgang des 2 : 2-Modulauswählmultiplexers 58 werden benutzt, um einen von 8 Moduln einer Speichermatrix 10 auszuwählen, die beispielsweise in einer bevorzugten Ausführungs­ form der Erfindung benutzt werden kann, wie es in Fig. 4 gezeigt ist. Die drei Bits werden einem Modulauswählregister 61 zugeführt, wo sie zum Zwecke der korrekten Zeitsteuerung ge­ speichert werden, bevor sie der in Fig. 4 gezeigten Modul­ auswählschaltung 15 zugeführt werden, die einen der acht Moduln für die Aktivierung durch weitere Steuersignale aus­ wählt, um entweder das Auslesen aus diesem oder das Ein­ schreiben in diesen zu gestatten.
Fig. 3 zeigt im einzelnen den Auffrischadreßzähler 2, der den Auffrischzeilenadreßzähler 201, den Auffrischspaltenadreß­ zähler 202 und den Auffrischmodulzähler 203 enthält. Der Übertragsausgang CY des Auffrischzeilenadreßzählers 201 taktet den Auffrischspaltenadreßzähler 202, dessen Über­ tragsausgang 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 Eingagnssignal an die Zeit­ geber- und Steuerlogik 3 angelegt, damit ein Signal zum In­ krementieren 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 Zeilen­ adreß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 Steuer­ signal an die dynamische RAM-Matrix 10 abgegeben, die in Fig. 4 gezeigt ist.
Das Anfordererschnittstellensignal, mit dem eine Zugriffs­ anforderung aus dem Anforderer an den Gruppencontroller be­ ginnt, 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ägtigt wird.
Die Anfordererschnittstellensignale aus dem Gruppencontroller an dem Anforderer sind das Gruppencontrollerbelegtsignal BC BELEGT, das Gruppencontrollerfehlersignal BC FEHLER und der 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 ge­ sendet 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 gering­ fügige Verzögerung hervorzurufen, die wegen der Pipeline­ verarbeitung 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 fehler­ haft ermittelt worden ist. Während des Lese-/Modifizier- Schreibzyklus wird das Wort, das zuvor während des Aufsuch­ zyklus 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 Gruppencontrol­ lerfehlerkorrekturschaltung 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 ver­ schiedenen Phasen der Vollendung zu irgend einer Zeit in Gang sind. Das System gestattet außerdem einen blockorien­ tierten 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 uaf 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 Auf­ frischüberlappung ergibt. Zu der Zeit, zu der ein Fehler in einem besonderen Wort erkannt worden ist, ist dieses Wort nicht länger an der Zugriffsoperation beteiligt. Da die Speicherships selbst dann an einer anschließenden Zugriffs­ operation beteiligt sind, kann die ursprüngliche Zugriffs­ operation 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önnen, und die Korrekturdaten werden in einer Operation erzeugt und wieder eingeschrieben. Jede Än­ derung in den Daten, die in dieser Wortposition gespeichert sind, zwischen der Zeit, zu der ein Fehler zum erstenmal er­ kannt worden ist, und der Zeit, zu der der Fehler korrigiert werden kann, erzeugt daher keinen weiteren Fehler.
Beispielsweise liegt in einer besonderen Ausführungsform eine Zeitdauer von 15 µs zwischen Auffrischsignalen REFRESH, wo­ bei jeder Auffrischzyklus 550 ns erfordert, wie in einer normalen Zugriffsoperation. Wenn ein Fehler während der Auf­ suchoperation erkannt wird, erfolgt der Zugriff auf das Wort wieder während der 15 µs zwischen den Auffrischsignalen, und zu dieser Zeit wird der Fehler korrigiert. Der Auffrisch­ adreß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äh­ ler 2 (oder 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 Auf­ suchoperation 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 tat­ sä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 vor­ nehmen soll, die der besonderen Zeile entsprechen, die in dem einen Modul gelesen wird, der aufgesucht wird.
Gemäß Fig. 4 sind vier Ebenen -3 in jedem Modul vorhanden, wobei die Eingänge und die Ausgänge der Ebenen 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 110-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 Steuer­ signale zugeführt wird. Die Steuersignale und die Adresse, die der Ebene 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 Gruppen­ controller gesteuert, so daß das Signal RAS und nur das Signal RAS an sämtliche Moduln angelegt wird, wenn ein Auf­ frischsignal 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 Opera­ tion, 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 ge­ steuert wird. Es gibt daher keine RD--38-Datenausgabe aus irgendeinem Modul, der nicht gelesen wird, an sich, sondern es erfolgt nur eine Auffrischung. Irgendein Modul, der gele­ sen wird, wird in keiner Weise durch die Tatsache gestört, daß die Auffrischoperation die anderen Moduln für Auffrisch­ zwecke aktiviert hat.
Die Lesedateneingangsleitung an dem Gruppencontroller (RD -38) ist mit der Lesedatenausgangsleitung des Speichermoduls verbunden. Die Auffrischoperation gleicht im wesentlichen einer normalen Leseoperation, mit der Ausnahme, daß das Steuersignal REFR zusammen mit dem Modulauswählsignal MODSEL vorhanden ist. In einem ersten Zeitteil der Auf­ frischoperation 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 -1 eines Moduls der Reihe nach angelegt werden, d. h. wenn die Steuersignale für die Anfangsperiode der Ebenen 12 zugeführt werden, werden die Steuersignale für die folgende Zeitperiode der Ebene zugeführt, usw. Schließlich werden, da der Zugriff auf die Ebenen nacheinander erfolgt, Daten aus jeder der Ebenen in Invervallen von 110 ns zurückgeliefert.
Fig. 4 zeigt eine Reihe oder Kaskade von Registern 12, die das Signal RAS den Ebenen -3 eines Moduls der Reihe nach in zeitlichen Abständen von 110 ns zuführen. Obgleich in Fig. 1 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 -2 ver­ sorgt, das jeder Modulauswählschaltung 15 zugeführt wird.
Das Signal LD 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 Aus­ gangsdaten 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, die durch die Laden-aus-Steuereinheit 22 durch ihre Signal LD AUS Freigegeben worden ist, den Bus 104 treiben kann.
Das Signal LD 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 LD 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 bis 4 beschriebene Ausführungsform kann beispielsweise in einer Anlage benutzt werden, die den Gegenstand der EP-A-00 39 227 bildet.

Claims (6)

1. Dynamisches Speichersystem, in welchem binäre Wörter gespeichert werden, von denen jedes mehrere Bits aufweist, mit
einer Auffrischeinrichtung zum periodischen Auffrischen der Bits jedes gespeicherten Wortes in einem ausgewählten Auf­ frischzeitintervall,
einer 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, gekennzeichnet durch eine Fehlerkorrektureinrichtung (24), die auf das Erkennen von Fehlern in einem gespeicherten Wort anspricht, und die mit einer Baueinheit (5) verbunden ist, die das Wieder­ einschreiben der korrigierten Wörter in den Speicher (10) nur bei einer Auffrischoperation durchführt.
2. Dynamisches Speichersystem nach Anspruch 1, dadurch ge­ kennzeichnet,
daß die Fehlererkennungseinrichtung (20, 22) weiter in der Lage ist, einen Fehler in wenigstens einem Binärbit eines gespeicherten Wortes im wesentlichen zur selben Zeit zu er­ kennen, zu der ein Anforderer (100) Zugriff auf ein gespeichertes Wort verlangt;
daß die Fehlerkorrektureinrichtung (24) weiter in der Lage ist, einen Fehler in einem gespeicherten Wort zu korrigieren, auf das der Zugriff verlangt worden ist; und
daß das korrigierte Wort dem Anforderer (100) zugeführt wird, während das unkorrigierte Wort in dem Speicher (10) verbleibt, bis es in der späteren Auf­ frischoperation korrigiert wird.
3. Dynamisches Speichersystem nach Anspruch 1 oder 2, da­ durch gekennzeichnet, daß der Speicher (10) mehrere Speicher­ moduln (10′, 10″) enthält, in denen die Wörter gespeichert werden, deren Binärbits in auswählbaren Zeilen und Spalten in jedem Speichermodul (10′, 10″) angeordnet sind, und daß die Auffrischeinrichtung weiter enthält:
eine Modulauswähleinrichtung (6), die während einer Auf­ frischoperation ein Modulauswählsignal zum Auswählen eines bestimmten Speichermoduls (10′, 10″) liefert, in welchem ein Wort aufzufrischen ist;
eine Zeilenauswähleinrichtung (201), die während einer Auf­ frischoperation ein Zeilenauswählsignal an sämtliche Spei­ chermoduln (10′, 10″) abgibt, das eine bestimmte Zeile in jedem der Moduln kennzeichnet; und
eine Spaltenauswähleinrichtung (202), die während einer Auf­ frischoperation ein Spaltenadreßauswählsignal nur an den be­ stimmten Modul, der für die Auffrischoperation ausgewählt worden ist, abgibt, das eine bestimmte Spalte in dem ausge­ wählten Modul (10′, 10″) kennzeichnet.
4. Dynamisches Speichersystem nach Anspruch 3, dadurch ge­ kennzeichnet,
daß die Spaltenauswähleinrichtung (202) das Spaltenadreßaus­ wä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; und
daß die Zeilenauswähleinrichtung (201) das Zeilenadreßauswählsignal nur an den durch das Modulauswählsignal angegebenen Modul abgibt, wenn ein Anforderer (100) verlangt, daß ein Wort aus dem Speicher ausgelesen oder in diesen einge­ schrieben wird.
5. Dynamisches Speichersystem nach Anspruch 4, gekennzeichnet durch eine Einrichtung (3), die ein Schreibfreigabesignal nur an den durch das Modulauswählsignal angegebenen Modul abgibt, wenn ein korrigiertes Wort während einer Auffrisch­ operation wieder in den Speicher (10) eingeschrieben wird oder wenn ein Anforderer (100) verlangt, daß ein Wort wieder in den Speicher eingeschrieben wird.
6. Dynamisches Speichersystem nach Anspruch 5, dadurch ge­ kennzeichnet, 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 (100) daran zu hindern, während der Auf­ frischoperation 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 DE3115541A1 (de) 1982-03-25
DE3115541C2 true 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 에스케이하이닉스 주식회사 오류 검출 회로 및 이를 이용한 데이터 처리 장치
WO2015152857A1 (en) * 2014-03-29 2015-10-08 Empire Technology Development Llc Energy-efficient dynamic dram cache sizing
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
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
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
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 西安紫光国芯半导体有限公司 存储器刷新控制方法、装置、控制电路及存储器件

Family Cites Families (9)

* 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
US4005405A (en) * 1975-05-07 1977-01-25 Data General Corporation Error detection and correction in data processing systems
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
US4183096A (en) * 1978-05-25 1980-01-08 Bell Telephone Laboratories, Incorporated Self checking dynamic memory 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

Also Published As

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

Similar Documents

Publication Publication Date Title
DE3115541C2 (de)
DE2921243C2 (de)
DE4322994C2 (de) Halbleiterspeichervorrichtung und Verfahren zum Setzen des Test-Modus einer Halbleiterspeichervorrichtung
DE3909896A1 (de) Vorrichtung und verfahren fuer den zugriff zu in einem seitenspeicher gespeicherten daten
DE19830111A1 (de) Integrierter Speicher
DE2746064A1 (de) Datenspeicher mit auffrischung
DE2703578A1 (de) Videospeicher
DE19860650A1 (de) Chip-Satz-Speichersteuervorrichtung mit Datenausblend-Maskenfunktion
DE2719291C3 (de) Datenspeichersystem
DE4129875A1 (de) Dynamische direktzugriffsspeichereinrichtung mit einem testmodusbetrieb und betriebsverfahren hierfuer
EP0036579A1 (de) Verfahren zum Regenerieren von in einem dynamischen MOS-Speicher gespeicherten Daten
EP0013697A1 (de) Auffrischung benötigendes seitenorganisiertes Speichersystem
DE10226585C1 (de) RAM-Speicherschaltung
DE4335061A1 (de) Mehrspeichervorrichtung
DE2554502A1 (de) Verfahren und anordnung zum speichern binaerer datenelemente
DE19922786A1 (de) Verfahren zum Testen eines Halbleiterspeichers und Halbleiterspeicher mit Testeinrichtung
DE3931389C2 (de) Vorrichtung zur Erfassung der Koinzidenz von in einer Pufferspeichersteuerung abgespeicherten Operanden
EP1085387B1 (de) Speichersteuerung zum Durchführen von Schaltbefehlen für den Zugriff auf Speicherzellen
DE2641727A1 (de) Verfahren und anordnung zur ermittlung von fehlern in einer speichervorrichtung
DE10154770A1 (de) Dynamische Speichervorrichtung und Verfahren zum Steuern einer solchen
EP0036148A1 (de) Hybrid-Assoziativspeicher
DE10038664B4 (de) Halbleiterspeicher mit Redundanz-Schaltung für Wortleitungen
DE2817135A1 (de) Magnetblasenspeicher-geraet
DE2649932A1 (de) Zentralsteuerwerk fuer peripherie- einheiten einer datenverarbeitungsanlage
DE3842100C2 (de) Steuerungsverfahren für ein Cache-System

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