-
Die Erfindung betrifft ein Verfahren
zum Betreiben eines Halbleiterspeichers mit mehreren Speicherbereichen,
bei dem Informationen in Speicheradressen geschrieben und aus den
Speicheradressen wieder ausgelesen werden und bei dem eine Fehlerprüfung der
Informationen durchgeführt
wird, wobei Speicheradressen aus mindestens drei Speicherbereichen
in der Weise zueinander parallelgeschaltet werden, daß jeder
Schreib- oder Lesevorgang auf eine Gruppe von Speicheradressen zugreift,
die jeweils eine Speicheradresse aus jedem Speicherbereich umfaßt, wobei
beim Schreiben dieselbe Information an alle Speicheradressen einer Gruppe
geleitet wird und wobei die Fehlerprüfung in der Weise durchgeführt wird,
daß geprüft wird,
ob die Informationen der Speicheradressen einer Gruppe untereinander
identisch sind. Derartige Verfahren sind aus
DE 44 41 007 C2 und
DE 199 16 065 A1 bekannt.
-
Die Erfindung betrifft ferner einen
Halbleiterspeicher nach dem Oberbegriff des Anspruchs 18.
-
In integrierten Halbleiterspeichern
werden in einer Vielzahl von Speicherzellen Informationen in Form
von Ladungsmengen gespeichert. Die gespeicherten Informationen müssen bei
nichtflüchtigen Halbleiterspeichern über eine
lange Zeit, bei flüchtigen
Halbleiterspeichern zumindest für
die Zeitdauer bis zum nächsten
Wiederauffrischungsvorgang gespeichert bleiben. Toleranzen bei der
Fertigung integrierter Halbleiterschaltungen und nicht vollständig vermeidbare
Leckströme
können
zu einem Abfließen solcher
Ladungen führen.
Solche Einflüsse
lassen sich durch verbesserte Herstellungstechnologien beseitigen.
-
Die Zuverlässigkeit der Speicherung von
Informationen wird ferner durch äußere Einflüsse, insbesondere
Alphastrahlung, beeinflußt.
Alphateilchen, die in einen integrierten Halbleiterspeicher eindringen,
erzeugen Sekundärladungen,
die unkontrolliert abfließen
und dadurch in Speicherzellen gespeicherte Ladungsmengen verändern können. Da
das Eindringen von Alphastrahlung nicht vermieden werden kann, geben
Hersteller von Halbleiterprodukten Fehlertoleranzen an, durch die
eine obere Schranke für die
Wahrscheinlichkeit eines Fehlers bei der Speicherung von Informationen
festgelegt wird. Insbesondere bei sicherheitsrelevanten Schaltungen
darf die Ausfallwahrscheinlichkeit nur wenige Speicherfehler pro
eine Million Speicherzellen betragen.
-
Angesichts der nicht völlig auszuschließenden Fehler
beim Betrieb eines integrierten Halbleiterspeichers werden aufwendige
ECC-Module (Error Code Correction) eingesetzt, in denen zeitaufwendige
Fehlerkorrekturen durchgeführt
werden. Beispielsweise werden Prüfsummen
gebildet, mit denen sich fehlerhafte Datenbits erkennen lassen.
Die Module bestehen aus mehreren Halbleiterbausteinen, die beispielsweise
auf einer Leiterplatte angeordnet sind. Damit werden in zeitlichen
Abständen
Wiederaufbereitungen der Speicherinformationen, sogenannte Memory
Scrubbings durchgeführt,
um eine Anhäufung
von Fehlern in einzelnen Speicherzellen zu beheben, bevor Fehler
in zueinander benachbarten oder einander zugeordneten Speicherzellen
entstehen, die sich nicht mehr beseitigen lassen. Der technische
Aufwand, die Kosten und der Zeitaufwand für solche korrigierenden Eingriffe
in den Halbleiterspeicher von außen sind sehr hoch.
-
Um eine zuverlässige Speicherung ohne solche
Eingriffe von außen
zu erreichen, kann vorgesehen sein, daß die Speicheradressen aus
mindestens drei Speicherbereichen in der Weise zueinander parallel
geschaltet werden, daß jeder
Schreiboder Lesevorgang auf eine Gruppe von Speicheradressen zugreift,
die jeweils eine Speicheradresse aus jedem Speicher bereich umfaßt, daß beim Schreiben
dieselbe Information an alle Speicheradressen einer Gruppe geleitet
wird und daß die
Fehlerprüfung
in der Weise durchgeführt
wird, daß geprüft wird,
ob die Informationen der Speicheradressen einer Gruppe untereinander
identisch sind.
-
Dabei wird eine Mehrfachspeicherung
eingesetzt, bei der die zu speichernden Daten mehrfach, und zwar
mindestens dreifach gespeichert werden. Da jedes Datenbit der Erfindung
zufolge in drei verschiedenen Speicherzellen gespeichert wird, die
sich in verschiedenen Speicherbereichen befinden und räumlich auseinander
liegen, ist ein Speicherfehler in mehr als einer dieser Speicherzellen
gleichzeitig unwahrscheinlich. Man kann daher davon ausgehen, daß zwei Speicherzellen
das gespeicherte Datenbit richtig wiedergeben. Beim Auslesen eines
Datenbits wird auf alle drei Speicherzellen, in die dieses Datenbit
geleitet wurde, zugegriffen. Es findet eine Fehlerprüfung statt,
die anders als herkömmliche
ECC-Korrekturen keine zusätzlichen
Daten erfordert, um die Richtigkeit der gelesenen Informationen
zu überprüfen. Statt
dessen wird geprüft,
ob die aus den mindestens drei Speicherzellen gelesenen Informationen,
untereinander übereinstimmen
oder nicht. Sofern aus allen drei Speicherzellen derselbe Wert des Datenbits
gelesen wird, kann mit an Sicherheit grenzender Wahrscheinlichkeit
ein Speicherfehler ausgeschlossen werden. Lediglich dann, wenn eine
der Speicherzellen, in die dasselbe Datenbit geleitet wurde, ein
anderes Datenbit ausgibt als die übrigen Speicherzellen, liegt
ein Speicherfehler oder Lesefehler vor.
-
Diese Vorgehensweise hat den Vorteil,
daß die
Fehlerprüfung
auf dem Halbleiterspeicher und durch den Halbleiterspeicher selbst
durchgeführt werden
kann. Der Grund liegt darin, daß keine
zusätzlichen
Informationen wie beispielsweise Prüfsummen benötigt werden, um die Richtigkeit
der gespeicherten Daten zu überprüfen. Durch
einen bloßen Vergleich mehrfach auf dem Halbleiterspeicher gespeicherter
Informationen läßt sich
der richtige Datenwert ermitteln; der Vergleich kann in einer kleinen Teilschaltung
auf dem Halbleiterschalter durchgeführt werden. Dadurch entfallen
die aufwendigen Maßnahmen,
die bisher für
einen einigermaßen
fehlerfreien Betrieb eines Halbleiterspeichers erforderlich waren.
Der erfindungsgemäße Vergleich
der mehrfach gespeicherten Daten erfolgt auf dem Chip.
-
Ein in dieser Weise betriebener Halbleiterspeicher
besitzt eine geringere Speicherkapazität, als wenn er jede Information
nur einmal speichert. Dafür
jedoch ist die Zuverlässigkeit
der Speicherung höher
als bei einer Einfachspeicherung, die mit Hilfe aufwendiger ECC-Korrekturen
kontrolliert wird.
-
Das oben beschriebene Verfahren bietet
die Möglichkeit,
festzustellen, welche Gruppe von Speicheradressen, auf die während eines
Schreib- oder Lesevorgangs gleichzeitig zugegriffen wird, eine oder mehrere
Speicherzellen enthält,
die eine von den übrigen
Speicherzellen dieser Gruppe abweichende und somit falsche Information
gespeichert hat.
-
Es ist mit diesem Verfahren jedoch
nicht möglich,
festzustellen, welche dieser mehreren Speicherzellen, auf die gleichzeitig
zugegriffen worden ist, die falsche Information gespeichert hat.
Hierzu wäre eine
Kenntnis des jeweils gespeicherten Datenwertes selbst erforderlich;
auf diese Kenntnis jedoch wird bei dem oben beschriebenen Verfahren
gerade verzichtet. Somit ist es nicht ohne weiteres möglich, diejenige
der zueinander parallelgeschalteten Speicherzellen zu bestimmen,
die den falschen Datenwert gespeichert hat und überschrieben werden muß.
-
Es ist die Aufgabe der vorliegenden
Erfindung, ein Verfahren zum Betreiben eines Halbleiterspeichers
bereitzustellen, bei dem ohne Kenntnis der Datenwerte selbst, die
in den Speicherzellen einer Gruppe zueinander parallelgeschalteter
Speicherzellen gespeichert sind, in diejenige Speicherzelle, die einen
falschen Datenwert speichert, der richtige, zu speichernde Datenwert überschrieben
werden kann, ohne in die übrigen Speicherzellen
der Gruppe von Speicherzellen den falschen Datenwert zu überschreiben.
-
Diese Aufgabe wird erfindungsgemäß durch ein
Verfahren gemäß Anspruch
1 gelöst,
bei dem dann, wenn die Fehlerprüfung
ergibt, daß Informationen
in den Speicheradressen einer Gruppe nicht untereinander identisch
sind, eine Korrektur vorgenommen wird, bei der derjenige Datenwert,
mit dem die meisten Informationen der Speicheradressen der Gruppe übereinstimmen,
in alle Speicheradressen dieser Gruppe geschrieben wird.
-
Das erfindungsgemäße Verfahren sieht somit vor,
daß alle
Speicheradressen einer Gruppe von Speicheradressen ausgelesen und
die gelesenen Informationen durch ein Datenbit ersetzt werden, das dem
aus den meisten dieser Speicheradressen gelesenen Datenwert entspricht.
Dieses Datenbit wird anschließend
in alle Speicheradressen dieser Gruppe zurückgeschrieben und dadurch ein
etwaiger Speicherfehler überschrieben.
Dadurch wird die mindestens dreifache Speicherung der jeweils richtigen
Information, bzw. des jeweils richtigen Datenwertes wiederhergestellt.
-
Ein wesentlicher Vorzug der erfindungsgemäßen Korrektur
von Fehlern besteht darin, daß sie instantan,
d. h. sofort nach einem Zugriff auf Speicherzellen erfolgen kann.
Es ist keine Weiterleitung zu einem Schaltkreis außerhalb
des Halbleiterbausteins oder zu einem weiteren Halbleiterbaustein
erforderlich. Insbesondere kann die Fehlerkorrektur bei einem Auslesevorgang
automatisch durchgeführt werden.
-
Bevorzugte Ausführungsarten sehen vor, daß die Speicherbereiche
Speicherbänke
sind und daß Speicheradressen
aus genau vier Speicherbänken
zueinander parallel geschaltet werden. Diese Ausführungsarten
nutzen die Architekturen handelsüblicher
Halbleiterspeicher aus, deren Speicherzellenfelder in Bänke unterteilt
sind. Jede Speicherbank hat die gleiche Größe, d. h. die gleiche Anzahl
von Speicherzellen. Vorausset zung ist, daß nicht weniger als drei Speicherbänke vorgesehen
ist. Halbleiterspeicher mit zwei Speicherbänken müssen in kleinere Speicherbereiche
als die Speicherbänke
unterteilt werden, um auf die erfindungsgemäße Weise betrieben werden zu
können.
Eine Redundanz an Speicherbänken
wirkt sich nicht nachteilig auf das erfindungsgemäße Verfahren
aus.
-
Eine Weiterbildung der Erfindung
sieht vor, daß auch
bei einem Wiederauffrischen der Speicherinformationen diese Fehlerkorrektur
automatisch durchgeführt
wird.
-
Eine andere Weiterbildung der Erfindung sieht
vor, daß der
Halbleiterspeicher testweise betrieben wird, wobei wiederholt Informationen
in verschiedene Gruppen von Speicheradressen geschrieben und aus
ihnen ausgelesen werden, wobei die Reihenfolge, in der nacheinander
auf verschiedene Gruppen von Speicheradressen zugegriffen wird, beim
Auslesen von Informationen eine andere ist als beim Schreiben von
Informationen. Die vorliegende Erfindung eröffnet neue Möglichkeiten
zum Testen eines Halbleiterspeichers, die sich aufgrund der Art
der vorgenommenen Fehlerkorrektur ergeben. Aufgrund des internen
Vergleichs der aus den Speicherzellen, in die eine Information mehrfach
geschrieben wurde, ausgelesenen Datenwerte kann die Richtigkeit
der Information aus ihnen selbst ermittelt werden. Es sind keine
zusätzlichen
Informationen wie etwa Prüfsummen
oder Quersummen erforderlich. Insbesondere ist nicht erforderlich,
daß festgehalten
wird, welcher Wert ursprünglich
in die Speicherzellen geschrieben wurde. Bei jedem herkömmlichen
Verfahren zum Testen eines Halbleiterspeichers muß das Datenbit, das
zum Speichern in den Halbleiterspeicher geleitet wurde, mit demjenigen
Datenbit, das aus ihm ausgelesen wurde, verglichen werden, um einen
Speicherfehler festzustellen. Der Vergleich könnte dadurch ermöglicht werden,
daß die
Abfolge von Informationen und angesprochenen Speicherzellen außerhalb
des Halbleiterspeichers erfaßt
wird und später
mit dem Ausleseergebnis verglichen wird. Vorzugsweise vermeidet
man eine solche zusätzliche
Speicherung, indem man die in die Speicherzellen einzuspeicherenden
Informationen in geordneter Reihenfolge eingibt und in der selben
geordneten Reihenfolge wieder ausliest. Die Reihenfolge des Ansprechens
verschiedener Zellen ist insofern geordnet, als sie beim Einschreiben
in die Zellen und Auslesen aus den Zellen identisch ist. Andernfalls
ist ein unmittelbarer Vergleich von ursprünglicher und wiedergegebener
Information nicht gültig.
Durch die notwendige Übereinstimmung
der Schreib- und Lesereihenfolge sind die Testmöglichkeiten zum Testen eines
Halbleiterspeichers sehr beschränkt.
So vergeht immer dieselbe Zeit zwischen Speichern und Lesen, unabhängig von der
angesprochenen Speicherzelle. Dadurch werden statistische Speicherfehler
nur teilweise entdeckt.
-
Mit Hilfe des erfindungsgemäßen Verfahrens jedoch
kann ein Speichertest auch mit unterschiedlichen Reihenfolgen für das Lesen
und Schreiben ausgeführt
werden. Eine Zuordnung beider Reihenfolgen zueinander ist nicht
mehr erforderlich, da sich die Richtigkeit der gelesenen Datenbits
aus ihnen selbst, d. h. aus dem bei der Dreifachspeicherung mehrheitlich
ausgelesenen Bitwert ergibt. Dadurch kann in anderer Reihenfolge
lesend auf die Zellen zugegriffen werden als schreibend.
-
Eine Weiterbildung dieses Testverfahrens sieht
vor, daß die
Reihenfolge verschiedener Gruppen von Speicheradressen, auf die
nacheinander zugegriffen wird, dadurch festgelegt wird, daß eine vorgegebene
Reihenfolge aller Gruppen von Speicheradressen permutiert wird.
Ein großes
Problem bei dem Versuch, statistische Speicherfehler zu erfassen,
besteht darin, mit ausreichender Wahrscheinlichkeit alle Zellen
des Halbleiter speichers anzusprechen. Dies ist bei statistischen
Zugriffsmethoden nur unter unverhältnismäßigem Zeit- und Kostenaufwand
möglich.
Jedoch verbleiben meist einige Speicherzellen, die noch nicht angesprochen
wurden. Um ein Ansprechen jeder einzelnen Speicherzelle sicherzustellen,
sieht die hier beschriebene Ausführungsart
vor, daß zunächst eine
beliebige, systematische oder auch quasistatistische Reihenfolge
von Speicheradressen vorgegeben wird. In dieser Folge ist jede einzelne
Gruppe von Speicherzellen genau einmal enthalten. Anschließend wird
diese Reihenfolge von Speicheradressengruppen permutiert, d. h.
die Reihenfolge der Gruppen untereinander vertauscht. Der Vorteil
dabei ist, daß eine
beliebig zufällig
erscheinende Reihenfolge erzeugt werden kann, bei der gewährleistet
ist, daß jede
Gruppe von Speicherzellen mit der gleichen Häufigkeit angesprochen wird.
Bei längerer
Testdauer können
mehrere solche Permutationen gebildet werden, die sich auch untereinander unterscheiden
können.
Insgesamt wird dabei jede Gruppe von Speicherzellen genau n-mal
angesprochen. Speicherfehler werden mit hoher Zuverlässigkeit
entdeckt.
-
Vorzugsweise wird beim Auslesen von
Informationen eine andere Permutation gewählt als beim Schreiben von
Informationen.
-
Vorzugsweise ist vorgesehen, daß beim Permutieren
der Reihenfolge der Gruppen von Speicheradressen die Zeilenadressen
und die Spaltenadressen unabhängig
voneinander permutiert werden. Dabei wird die Architektur handelsüblicher
Speicher ausgenutzt, Wortleitungsadressen und Bitleitungsadressen
durch getrennte Adreßleitungen
oder nacheinander durch die selben Adreßleitungen anzusprechen. Durch
die einzelnen Permutationen der Bitleitungen untereinander und der
Wortleitungen untereinander wird die Art des Datentransports durch
die Permutationsbildung die ein sprunghaft wechselndes Ansprechen
weit voneinander entfernter Speicherzellen mit sich bringt, nicht
beeinträchtigt.
-
Vorzugsweise ist vorgesehen, daß die Reihenfolge
von Gruppen von Speicheradressen, auf die nacheinander zugegriffen
wird, dadurch permutiert wird, daß jede Speicheradresse mit
einer Permutationskonstante, die genauso viele Dualziffern besitzt
wie die bereichsinternen Speicheradressen in einem Speicherbereich,
in Dualschreibweise ziffernweise durch eine Rechenoperation zu einer
Ziffernfolge verknüpft
wird, die die permutierte Speicheradresse angibt, wobei die Rechenoperation
zwei Bitwerte genau dann zu dem logischen Wert Eins verknüpft, wenn
die Bitwerte voneinander verschieden sind. Diese logische XOR-Funktion
verknüpft
zwei unterschiedliche Bits zu einer Eins und zwei gleiche Bits zu
einer Null. Diese Operation setzt stets zwei Bits voraus. Ein Bit,
das einer Speicheradresse entspricht, wird je nachdem, welchen Wert
die mit ihr verknüpfte
Ziffer der Permutationskonstante annimmt, entweder beibehalten oder
invertiert. Speicheradressen bestehen aus einer längeren Folge von
Ziffern in Dualschreibweise. Mit Hilfe einer Permutationskonstante,
die in Dualsohreibweise aus genau so vielen Ziffern besteht wie
eine speicherbereichsinterne Speicheradresse, läßt sich ziffernweise eine XOR-Verknüpfung herstellen.
Dadurch entsteht eine zweite Ziffernfolge, die einer neuen Speicheradresse
zugeordnet werden kann. Die XOR-Funktion gewährleistet, daß bei einer
Folge von ersten Speicheradressen, in der jede einzelne Speicheradresse nur
genau einmal auftritt, eine Folge zweiter Speicheradressen gebildet
wird, die ebenfalls jede Speicheradresse genau einmal enthält. Genau
dadurch wird eine Permutation gebildet. Somit läßt sich auf einer geordneten,
systematischen ersten Reihenfolge von Speicheradressen eine zufällig erscheinende zweite
Reihenfolge geänderter
Speicheradressen erzeugen.
-
Die einzuspeichernden und wieder
auszulesenden Informationen werden vorzugsweise mithilfe von Permutationskonstanten,
mit denen Gruppen von Speicheradressen untereinander beim Schreiben
oder Auslesen permutiert werden, verändert. Die Permutationskonstanten
entweder für
den Schreib- oder den Lesevor gang dienen gleichzeitig dazu, quasistatistische
Bitfolgen zu erzeugen, die eingeschrieben und wieder ausgelesen
werden.
-
Vorzugsweise ist vorgesehen, daß die Reihenfolge,
in der nacheinander auf verschiedene Gruppen von Speicheradressen
zugegriffen wird, durch eine Schaltung auf dem Halbleiterspeicher
permutiert wird. Dieses Verfahren ist von Vorteil gegenüber quasizufälligen Speicheradressierungen
von außen,
weil es auf dem Halbleiterspeicher selbst, beispielsweise durch
eine kleine Teilschaltung mit hoher Geschwindigkeit, und ohne längere Datenstrecken durchgeführt werden
kann. Die Teilschaltung zum Permutieren der Speicheradressen und
gegebenenfalls auch der Datenwerte kann eine Schaltung aus Gattern
sein, die die erforderlichen ziffernweisen XOR-Verknüpfungen durchführen.
-
Ferner können Datenwerte, die gespeichert werden
sollen, ebenfalls mit Hilfe entsprechender Permutationen und Permutationskonstanten
verändert
werden. Dazu können
eigene Schaltungen auf dem Halbleiterspeicher vorgesehen sein.
-
Eine Weiterbildung des erfindungsgemäßen Verfahrens
sieht vor, daß der
Halbleiterspeicher in einem Testmodus betrieben wird, in dem beim
Auslesen von Informationen anstelle der ausgelesenen Informationen
ein auf der Grundlage der Fehlerprüfung erstelltes Fehlerprotokoll
ausgegeben wird. Hierbei werden Ausgangsleitungen, die gewöhnlich zum Übertragen
der aus den Speicherzellen gelesenen Datenwerte bestimmt sind, zum
Ausgeben von Testinformationen, die sich auf diese Datenwerte beziehen,
genutzt. Es kann ein Betriebsmodus eingestellt werden, bei dem die
Kenntnis der in den Speicherzellen gespeicherten Werte nicht von
Bedeutung ist, so daß eine Übertragung
dieser Daten sich erübrigt. Statt
dessen können
die Datenleitungen, üblicherweise
als DQ (Data Query) bezeichnet, für in anderer Hinsicht aussagekräftigere
Informationen genutzt werden. So können beispielsweise Fehlerhäufig keiten
oder die Art auftretender Fehler anstelle der gelesenen Speicherzelleninhalte übermittelt
werden.
-
Eine bevorzugte Ausführungsart
sieht vor, daß beim
Auslesen der Informationen aus einer Gruppe von Speicherzellen ein
Datenwert ausgegeben wird, der angibt, ob die ausgelesenen Informationen
untereinander identisch sind. Ein solcher Datenwert, der standardmäßig Null
betragen kann, solange kein Fehler vorliegt, und ausnahmsweise bei einer
Abweichung auf den Wert 1 springt, ist besonders für Aussagen über statistische
Fehlerhäufigkeiten
von Bedeutung. Er kann genauso schnell wie der gelesene Datenwert
selbst ausgegeben und übertragen
werden, muß jedoch
selbst nicht mehr nachträglich
beurteilt werden. Da er selbst ebenfalls nur ein Bit beansprucht,
kann er über
eine DQ-Leitung (data query) übertragen
werden.
-
Insbesondere ist vorgesehen, daß nur der Datenwert
ohne die Angabe der Speicheradressen ausgegeben und zur Fehlerzählung verwendet
wird. Dadurch wird ein Zählen
von Fehlern des gesamten Halbleiterspeichers ermöglicht. Die Fehlerzählung kann
mithilfe einer auf dem Halbleiterspeicher angeordneten Fehlerzähleinrichtung
oder einer externen Fehlerzähleinrichtung
durchgeführt
werden.
-
Vorzugsweise ist vorgesehen, daß auf Informationen
mehrerer Gruppen von Speicheradressen gleichzeitig durch einen Datenbus
mit mehreren Datenleitungen zugegriffen wird und daß jede Datenleitung
des Datenbusses den Datenwert derjenigen Gruppe von Speicheradressen,
auf die sie zugreift, ausgibt. Hierbei kann auf mehrere Informationen,
die jeweils mindestens dreifach gespeichert wurden, gleichzeitig
zugegriffen werden.
-
Eine weitere bevorzugte Ausführungsart sieht
vor, daß ein
Fehlerprotokoll erstellt wird, bei dem die Datenleitungen nach jedem
Auslesen von Informationen in mehreren Zeittakten nacheinander Angaben über das
Auftreten von Fehlern, die Art aufgetretener Fehler, die Nummern
der Datenleitungen, die ei nen Fehler ausgeben, und die Speicheradressen,
aus denen ausgelesen wurde, ausgeben. Mit Hilfe eines solchen erweiterten
Fehlerprotokolls, das für
ausführlichere
Testauswertungen gedacht ist, können über mehrere
Zeittakte hinweg nach dem Auslesen jeder Gruppe von Speicheradressen
alle testerheblichen Informationen, beispielsweise die mit Hilfe
der auf dem Halbleiterspeicher erfolgten Adressenpermutationen berechneten
geänderten
Speicheradressen, auf die zugegriffen wurde, übertragen werden.
-
Die der Erfindung zugrundeliegende
Aufgabe wird ferner durch einen Halbleiterspeicher gemäß Anspruch
18 gelöst,
bei dem jede Synchronisationsschaltung eine Korrekturschaltung aufweist,
die nach einem Auslesen und/oder bei einem Wiederauffrischen von
Informationen einen einheitlichen Datenwert an alle an die Synchronisationsschaltung
angeschlossenen Speicheradressen leitet.
-
Die Synchronisationsschaltungen veranlassen,
daß jede
Information anstatt (wie herkömmlich) nur
in eine Speicheradresse eines einzigen Halbleiterspeichers erfindungsgemäß in je
eine Speicheradresse in mindestens drei Speicherbereichen geschrieben
wird. Diese Speicherung in mindestens drei verschiedenen Speicherzellen,
die üblicherweise dieselbe
speicherbereichsinterne Adresse besitzen, jedoch zu verschiedenen
Speicherbereichen gehören,
ermöglicht
eine zuverlässige
Speicherung. Durch dieses speicherbereichparallele Schreiben und
Lesen und durch die Prüfeinheit,
die eine Identitätsprüfung der
beim Auslesen, vorzugsweise auch beim Wiederauffrischen von Informationen
erkannten Datenbits der Speicherzellen einer Gruppe vornimmt, arbeitet
der Halbleiterspeicher mit an Sicherheit grenzender Wahrscheinlichkeit
fehlerfrei.
-
Mit Hilfe der erfindungsgemäßen Korrekturschaltung
kann ein erkannter Fehler überschrieben werden,
wodurch die Kenntnis fehlerhafter Datenbits sofort in eine Korrektur
umgesetzt wird. Diese Korrektur braucht nicht allein beim Lesen
durch geführt zu
werden, sie kann während
jeden Auffrischungsvorgangs zum Wiederauffrischen von Speicherinhalten
automatisch durchgeführt
werden. Solch ein "selbstreinigender
Halbleiterspeicher" ist
besonders fehlerresistent.
-
Eine bevorzugte Ausführungsform
sieht vor, daß die
Synchronisationsschaltungen in die Prüfeinheit integriert sind. Da
jede Synchronisierungsschaltung mindestens drei Speicheradressen
zu einer Adressengruppe zusammenfaßt, kann ein Ausgabesignal
der Synchronisierungsschaltungen unmittelbar als Prüfergebnis
verwendet werden.
-
Vorzugsweise ist jede Synchronisierungsschaltung
mit einer Speicheradresse aus jedem Speicherbereich verbunden. Die
Speicherbereiche sind dabei vorzugsweise Speicherbänke. Insbesondere
sind genau vier Speicherbänke
vorgesehen.
-
Eine Weiterbildung sieht vor, daß mehrere Betriebsarten
des Halbleiterspeichers einstellbar sind, bei denen entweder die
Synchronisierungsschaltungen und die Korrekturschaltungen oder nur die
Synchronisationsschaltungen aktiviert oder die Synchronisationsschaltungen
und die Korrekturschaltungen deaktiviert sind. Danach ist die Betriebsart
des Halbleiterspeichers durch entsprechende Codenummern, die beispielsweise über externe
Anschlüsse
des Halbleiterspeichers eingegeben werden können, zwischen einem Hochsicherheitsbetrieb mit
Fehlerkorrektur, einem Hochsicherheitsbetrieb, in dem auftretende
Fehler lediglich angezeigt werden, und einer normalen Betriebsweise
umschaltbar. Die Betriebsart kann auch zu Testzwecken vorübergehend
geändert
werden.
-
Vorzugsweise weist der Halbleiterspeicher eine
Schaltung auf, mit der speicherintern Speicheradressen untereinander
vertauscht und Befehle an die vertauschten Speicheradressen umgeleitet
werden. Diese Schaltung permutiert die Speicheradressen, auf die
Schreib- und Lesebefehle zugreifen, untereinander und leitet dadurch
diese Befehle um. Eine solche speicherinterne, auf dem Halbleiterspeicher
integrierte Permutationsschaltung dient dazu, die Testmöglichkeiten
eines Halbleiterspeichers, der herkömmlich nur mit Hilfe von in
ihren Möglichkeiten sehr
eingeschränkten
externen Testgeräten
getestet werden kann, zu erweitern. Solche Testgeräte, die quasizufällige topologische
Testmuster zu erzeugen versuchen, besitzen nur einen eingeschränkten Vorrat
an topologischen Testmustern. Mit Hilfe eines auf dem Halbleiterspeicher
integrierten Permutationsschaltkreises können aus solchen geordneten
Reihenfolgen von Speicheradressen beliebig zufällig erscheinende Adressenfolgen
erzeugt werden.
-
Gemäß einer anderen Weiterbildung
ist vorgesehen, daß der
Halbleiterspeicher eine Schaltung zum Ausgeben eines Fehlerprotokolls
aufweist, durch die anstelle von oder zusätzlich zu aus den Speicheradressen
ausgelesenen Informationen Datenwerte ausgegeben werden, die angeben,
ob die in einer Gruppe von Speicheradressen ausgelesenen Informationen
untereinander identisch sind. Diese Weiterbildung ist auf Betriebsarten
gerichtet, bei denen die gespeicherten Informationen selbst nicht
interessieren, sondern nur die Art und die Anzahl von Speicherfehlern
von Interesse sind. Insbesondere bei einem Testbetrieb lassen sich
anstelle der gespeicherten Informa tionen Fehlerprotokolldaten ausgeben,
im einfachsten Fall ein Datenbit, das angibt, ob ein Speicherfehler
in einer Gruppe von Speicherzellen aufgetreten ist oder nicht.
-
Eine weitere Weiterbildung sieht
schließlich vor,
daß mehrere
Betriebsarten des Halbleiterspeichers einstellbar sind, bei denen
entweder nur die aus den einzelnen Speicheradressen derselben Gruppe
ausgelesenen Informationen oder an deren Stelle nur Datenwerte,
die angeben, ob diese Informationen untereinander identisch sind,
oder diese Datenwerte und zusätzlich
die ausgelesenen Informationen ausgegeben werden. Danach lassen
sich auch hinsichtlich der Art des gewünschten Fehlerprotokolls verschiedene
Betriebsarten einstellen. Im einfachsten Fall enthält das Testprotokoll
nur Datenbits, die jeweils einen Fehler anzeigen und die nur intern und/oder
extern gezählt
werden müssen,
um die Fehleranfälligkeit
zu beurteilen. Trotz der durch die Dreifachspeicherung getroffene
Fehlervorsorge können solche
Tests erforderlich sein, um unmittelbar nach der Herstellung des
Halbleiterspeichers die Einhaltung der vorgeschriebenen Fertigungstoleranzen
zu überprüfen und
eventuell mangelhafte Halbleiterspeicher zu entfernen.
-
Die Erfindung wird nachstehend anhand
der Figuren erläutert.
Es zeigen:
-
1 einen
erfindungsgemäßen Halbleiterspeicher,
-
2 eine
Synchronisationsschaltung des Halbleiterspeichers aus 1,
-
3A und 3B Betriebsweisen des Halbleiterspeichers
aus 1,
-
4A bis 4C Verfahren zur Permutation von
Speicheradressen,
-
5A und 5B diagrammatische Darstellungen
von Speicheradressenpermutationen,
-
6 eine
Schaltung zur Fehlerprotokollerstellung und
-
7A und 7B Beispiele verschiedener
Fehlerprotokolle.
-
1 zeigt
einen Halbleiterspeicher 1, der vier Speicherbänke B1,
B2, B3 und B4 aufweist. Der Halbleiterspeicher kann ein flüchtiger
Halbleiterspeicher, beispielsweise ein DRAM (Dynamic Random Access
Memory) oder ein nichtflüchtiger
Speicher sein. Der Halbleiterspeicher 1 besitzt in jeder Speicherbank
nicht näher
dargestellte Speicheradressen, die wie in herkömmlicher Weise an Wortleitungen
und Bitleitungen, die senkrecht zueinander auf dem Substrat verlaufen,
angeschlossen sind. Je nach Nummer der Wortleitung und der Bitleitung
ist eine Speicherzelle durch die Speicheradresse Aij gekennzeichnet.
Beispielsweise kann i die zugehörige Wortleitung
und j die zugehörige
Bitleitung angeben oder umgekehrt. Die Gesamtzahl der pro Speicherbank
vorgesehenen Wort- oder Bitleitungen ist für jede Speicherbank identisch.
-
Auf eine Speicheradresse wird zugegriffen, indem
zunächst
eine Wortleitung geöffnet
und anschließend
eine Bitleitung ausgelesen wird. In 1 sind
in der Mitte jeder Speicherbank B1, B2, B3, B4 senkrecht verlaufende
Reihen 2 von Signalverstärkern 3 dargestellt,
die jeweils zum Auslesen einer Bitleitung vorgesehen sind. Erfindungsgemäß ist in
einem mittleren Bereich des Halbleiterspeichers, im sogenannten
Gürtel,
eine Anordnung 10 von Synchronisationsschaltungen 11 vorgesehen,
von denen jede an jeweils vier Signalverstärker 3 angeschlossen
ist, von denen sich in jedem der Speicherbereiche B1, B2, B3, B4
einer befindet. Mit Hilfe der Synchronisationsschaltungen 11 können die
aus vier in unterschiedlichen Speicherbänken angeordneten Speicheradressen
ausgelesenen Da tenwerte synchronisiert, d. h. untereinander verglichen
und zu einem einzigen Datenwert zusammengefaßt werden, der entweder durch
die dargestellte Ausgangsleitung 4 und weitere an späterer Stelle
noch beschriebene Schaltungen, die Permutationsschaltung 20 und
die Fehlerprotokollschaltung 30, ausgegeben werden kann
oder auf die vier angeschlossenen Speicheradressen zurückgeschrieben
werden kann.
-
2 zeigt
schematisch eine Synchronisationsschaltung 11, die an Bitleitungen
der Speicherbänke
B1, B2, B3, B4 angeschlossen ist. Mithilfe dieser Leitungen können Daten
gelesen oder geschrieben werden, wozu die Synchronisationsschaltung 11 auf
der rechten Seite eine weitere Datenleitung DQ aufweist. In der
Synchronisationsschaltung 11 werden vier von den Speicherbänken ausgelesene
Informationen Aij1, Aij2, Aij3 und Aij4 in ein einziges
Datenbit umgewandelt, das über
die Datenleitung DQ als Information Aij weitergeleitet werden kann.
Umgekehrt kann ein einziges Datenbit Aij mit Hilfe der Synchronisationsschaltung 11 in
vier Speicheradressen aus insgesamt vier Speicherbänken geleitet
werden. Erfindungsgemäß ist eine
Korrekturschaltung 13 vorgesehen, die im Falle eines Auslesens
unterschiedlicher Datenwerte aus den vier Speicherbereichen einen
einheitlichen Wert generiert, diesen zurückschreibt und somit Speicherfehler
korrigiert. Die Option, Datenwerte zurückzuschreiben, kann mittels eines
entsprechenden Moderegisters MR-WB (write back) aktiviert oder deaktiviert
werden.
-
Die Synchronisationseinheit 11 ist
aktivierbar und deaktivierbar, wozu ein Moderegister MR-S (Synchronisation)
vorgesehen ist. Weitere Anschlüsse
BSl und BSO, über
die jeweils ein Datenbit zum Auswählen einer Speicherbank geleitet
werden kann, sind mit Hilfe des Moderegisterschalters MR-5 abstellbar.
Mit Hilfe der in 2 abgebildeten
Schaltung kann auch ein Fehlerprotokoll ausgegeben werden, wozu
die Betriebsweise des Halbleiterspeichers durch einen Moderegisterschalter
MR-F (Fehlerprotokoll) auf die Ausgabe eines Fehler protokolls umgestellt
werden kann. Über
Zuleitungen WR1, WR2 zum Schreiben, RD1 und RD2 zum Lesen und RF1
und RF2 zum Wiederauffrischen von Speicherinhalten wird die Synchronisationsschaltung 11 mit
dem jeweils auszuführenden
Befehl versorgt.
-
3A zeigt
die Betriebsweise einer Synchronisationsschaltung 11 beim
Lesen von Speicherinhalten. Dargestellt sind an die jeweiligen Wort-
und Bitleitungen angeordnete Speicheradressen Aij1, Aij2, Aij3 und
Aij4 in den Speicherbänken
B1, B2, B3, B4. Jede dieser vier Speicheradressen ist über eine Zuleitung 5 mit
der Synchronisationseinheit 11 verbunden.
-
Bei der in 3A dargestellten Betriebsweise werden
Datenbits aus den Speicheradressen jeder Speicherbank durch die
Synchronisationseinheit gelesen. Die Datenbits betragen im Falle
der Speicherbank B2 1 und im Falle der übrigen Speicherbänke jeweils
0. In der Speicherbank B2 hat sich ein Speicherfehler ereignet,
so daß deren
Datenbit von den übrigen
abweicht. Die Synchronisationsschaltung 11 berechnet in
einem logischen Gatter aus den vier eingelesenen Bits einen einzigen
Bitwert, der demjenigen entspricht, der von den meisten der Speicheradressen
Aij1, Aij2, Aij3 und Aij4 ausgelesen wurde. Bei der in 3A dargestellten Bitkonstellation
wird über
die Ausgangsleitung 4 der Bitwert 0 ausgegeben.
-
3B zeigt
eine weitere Funktionsweise der Synchronisationseinheit 11 im
Falle einer eingeschalteten Korrekturschaltung 12. In diesem
Fall wurden dieselben Bitwerte wie in 3A durch
die Synchronisationsschaltung 11 eingelesen. Hier wird
jedoch der ermittelte richtige Bitwert 0, der in allen
vier Speicherbänken
B1, B2, B3 und B4 hätte
gespeichert werden sollen, sowohl durch eine Ausgangsleitung 4 weitergeleitet,
als auch durch die Zuleitungen 5 wieder in die vier angeschlossenen
Speicheradressen geschrieben. Auf diese Weise wird der in der Speicherbank
B2 falsche Bitwert 1 zu 0 korrigiert.
-
4A zeigt
schematisch eine Anordnung von acht Speicheradressen, die in x-
und y-Richtung durch Zählindizes
i und j numeriert sind. Die Adresse jeder Speicherzelle ist durch
Zahlenpaare (ij) eindeutig festgelegt. In 4A sind die in jeder Speicherzelle dargestellten
Speicherinformationen in Form von Datenbits 0 oder 1 dargestellt.
-
Wird ein Halbleiterspeicher getestet,
so werden willkürlich
Bitfolgen in ihn eingeschrieben und aus ihm ausgelesen. Zur Erkennung
möglichst
vielfältiger
Fehlerarten ist man bemüht,
in möglichst
zufällig
erscheinender Adressierungsreihenfolge auf verschiedene Speicherzellen
des Halbleiterspeichers zuzugreifen, die Speicherzellen willkürlich mit "0" oder "1" zu
beschreiben und diese Informationen wieder auszulesen. Der testweise
Betrieb eines Halbleiterspeichers funktioniert immer in der Weise,
daß eine
Folge von Datenbits adressenabhängig
eingeschrieben und zeitversetzt wieder ausgelesen wird. Dabei wird
beim Auslesen im einfachsten Fall dieselbe Adressierungsreihenfolge
eingehalten wie beim Einspeichern, um die gesamte Datenmenge nicht
außerhalb
des zu testenden Halbleiterspeichers speichern und die eingeschriebene
und die ausgelesene Bitfolge einander zuordnen zu müssen. Wird
die Datentopologie adressenabhängig
generiert und beim Lesen beachtet, so kann mit unterschiedlicher
Adressenreihenfolge auf die Speicherzellen zugegriffen werden. Werden
jedoch adressenunabhängige
Datentopologieren generiert, so muß auf die gleiche Adressenreihenfolge
lesend wie schreibend zugegriffen werden. Nur durch die Einhaltung
der gleichen Reihenfolge beim Schreiben und beim Auslesen ist gewährleistet,
daß die
gerade gelesenen Informationen mit den kurz vorher eingespeicherten
Informationen verglichen und im Falle von Unterschieden Speicherfehler
festgestellt werden können.
-
Wird hingegen in anderer Adressierungsreihenfolge
schreibend auf die Speicherzellen zugegriffen als lesend, so sind
die eingeschriebene und die ausgelesene Datenfolge nicht mehr einander
zuordbar, wenn keine adressenabhängige
Datentopologie verwendet wird. Die in 4A eingeschriebene
Bitfolge SW wurde entsprechend der Adressenfolge
FW bei zunächst gleichbleibendem Adressenwert
j für zunächst anwachsenden
Adressenwerte i nacheinander in die aufeinanderfolgenden Speicherzellen geschrieben.
Erst bei Erreichen des Maximalwertes der Zahl i wurde die Zahl j
um 1 erhöht.
Auf diese Weise entstanden die in den acht Speicherzellen dargestellten
Bitwerte. Beim Auslesen wurden die Speicherzellen entsprechend der
Adressenfolge FR bei festem i für zunächst anwachsendes
j ausgelesen. Bei dieser Reihenfolge wurde die Bitfolge SR ausgelesen, die mit der Bitfolge SW nicht übereinstimmt. Obwohl
die Bitfolge den korrekten Bitwerten der acht Speicherzellen entspricht,
ist die ausgelesene Bitfolge SR der eingelesenen
Bitfolge S W nicht zuordbar. Obwohl
alle Informationen richtig ausgelesen wurden, ist eine Aussage über Fehlerhäufigkeiten
nicht möglich,
da beide Bitfolgen nicht übereinstimmen. Aus
diesem Grund wird bei jedem herkömmlichen Testbetrieb
eines Halbleiterspeichers schreibend und lesend in derselben Reihenfolge
auf die Speicheradressen zugegriffen.
-
Das erfindungsgemäße Verfahren ermöglicht es
hingegen, ohne Rücksicht
auf die Adressierungsreihenfolge, in der auf die Speicheradressen zugegriffen
wird, und auf die adressenabhängige
Datentopologie, d. h. auf die räumliche
Verteilung von Speicherinformationen im Halbleiterspeicher, Fehler beim
Betrieb des Halbleiterspeichers zu erkennen. Der Grund liegt darin,
daß jede
Information mindestens dreifach in einander entsprechenden (und
an jeweils gleichen speicherinternen Adressen in verschiedenen Speicherbänken angeordneten)
Speicherzellen gespeichert wird. Jede Information ist damit mehrfach
gespeichert. Bei dem gleichzeitigen Auslesen dieser Informationen
und bei der Fehlerprüfung,
ob diese Informationen übereinstimmen oder
nicht, kann festgestellt werden, welchen Informationswert die meisten
der an einer Synchronisationseinheit 11 angeschlossenen
Speicheradressen Aij1, Aij2, Aij3 und Aij4 gespeichert und ausgegeben haben.
Diese vier angeschlossenen Speicheradressen, die die Gruppe Gij
von Speicherzellen bilden, die durch die Synchronisationsschaltung 11 angesprochen
wird, liefern entsprechend 3A dreimal
den Bitwert 0 und einmal den Bitwert 1. Diese
Bitwerte werden in den Bitwert 0 umgewandelt, der der Gruppe
Gij von Speicherzellen zugeordnet wird. Da es sehr unwahrscheinlich
ist, daß mehr
als eine der vier angesprochenen Speicherzellen einen falschen Bitwert
speichert oder ausgibt, gibt der von der Synchronisationsschaltung 11 ausgegebene
Bitwert 0 praktisch immer den korrekten Speicherwert wieder.
-
Mit Bezug auf 4A bedeutet dies, daß die ausgelesene Bitfolge
SR aus Datenbits besteht, von denen jedes
Bit bereits auf seine Richtigkeit geprüft ist. Eine eindeutige Zuordnung
dieser Bitfolge zur eingeschriebenen Bitfolge SW ist
daher nicht erforderlich. Daher können Informationen ohne Rücksicht
auf die Adressierungsreihenfolge und die adressenabhängige Datentopologie,
in der schreibend auf die Speicheradressen zugegriffen wurde, in
völlig
anderer Reihenfolge ausgelesen werden und ermöglichen dennoch eine zuverlässige Feststellung
von Speicherfehlern.
-
4B zeigt
ein Rechenbeispiel zum Permutieren von Speicheradressen mit Hilfe
einer Permutationskonstante. Das Beispiel geht von einer speicherbankinternen
Speicheradresse aus, die bezüglich
Spalten X wie auch Zeilen Y in Dualschreibweise vierstellig ist.
Dementsprechend gliedert sich die Permutationskonstante ebenfalls
in eine Konstante WX = 0001 für die Permutation
von Zeilen und WY = 0010 für die Permutation
von Spalten. In dem Rechenbeispiel werden Spaltenadressen und Zeilenadressen
getrennt voneinander permutiert. Für eine Speicherzelle mit der
Zeilenadresse i = 0101 wird die geänderte Zeilenadresse dadurch
berechnet, daß die Zeilenadresse
i und die Zeilenpermutationskonstante WX ziffernweise
durch eine XOR-Verknüpfung
zur neuen Zeilenadresse i' verknüpft werden.
Die XOR-Funktion zweier Dualziffern er gibt genau dann 1, wenn die
Dualziffern ungleich sind, und führt
in der zweiten Ziffer der geänderten
Zeilenadresse i' zu dem
Wert 1, in den übrigen
Ziffern zu dem Wert 0. Auf die geschilderte Weise werden sämtliche
Zeilen- und Spaltenadressen in neue entsprechende Adressen umgewandelt,
d. h. untereinander vertauscht. Dadurch wird beispielsweise aus
der speicherinternen Adresse (i, j) = 01011101 die geänderte Adresse
(i', j') = 01001111. Mit
Hilfe der hier beschriebenen Vertauschung von Speicheradressen läßt sich
aus einer geordneten Folge von Speicheradressen, bei der jede Speicheradresse
genau einmal angesprochen wird, eine quasistatistische Zugriffsreihenfolge
herstellen. Die permutierte Zugriffsreihenfolge bietet den Vorteil statistischer
Verteilung, andererseits aber auch sehr viel zuverlässigere
Testergebnisse, da aufgrund der zugrundeliegenden geordneten Reihenfolge
auch nach der Permutation jede Speicherzelle gleich häufig angesprochen
wird, unabhängig
von der Dauer des Speichertests.
-
4C zeigt
eine weitere bevorzugte Ausführungsart,
bei der auch die Daten selbst, die in die Speicheradressen geschrieben
werden, mit Hilfe einer permutationsähnlichen Rechenoperation quasistatistisch
verändert
werden. Dabei werden die gleichen Permutationskonstanten WX und WY zugrundegelegt.
Es ist sogar ausreichend, als Anfangswert für alle Daten denselben Speicherwert
0000 vorzugeben. Dieser wird nach Art der ziffernweisen Verknüpfung mit
Hilfe der XOR-Funktion zunächst
mit Hilfe der Zeilenpermutationskonstante in einen ersten geänderten
Datenwert P umgerechnet, der dann mit Hilfe der Spaltenpermutationskonstante
wiederum in einen nochmals geänderten
Datenwert P' umgerechnet
wird. Aus dem ursprünglichen
Datenwert 0000 wird dadurch eine duale Zahl, die von der Position der
Speicheradresse im Speicherbereich abhängt. Dadurch können Speicherprozesse
noch variabler ausgeführt
werden.
-
5A und 5B zeigen Flußdiagramme,
die Testverfahren zum Beschreiben bzw. Auslesen eines erfindungsgemäßen Halbleiter speichers
wiedergeben. Bei diesen Testverfahren werden die in den 4B und 4C beschriebenen Permutationen bzw. Datenwertänderungen
vorgenommen. Dadurch wird ein statistischer Zugriff auf einen Halbleiterspeicher simuliert.
Zu Beginn werden Permutationskonstanten WX,
WY für
das Schreiben von Informationen und davon unterschiedliche Permutationskonstanten
RX, RY für das Lesen
definiert. Durch die unterschiedlichen Schreib- und Lesepermutationskonstanten
wird ein Zugriff auf die Speicheradressen in unterschiedlichen Reihenfolgen
für das
Schreiben und das Lesen verursacht. Solche Zugriffe können nur
mit dem erfindungsgemäßen Verfahren
sinnvoll ausgewertet werden, welches aufgrund der Mehrfachspeicherung nicht
mehr auf die herkömmlich
identischen Zugriffsreihenfolgen beschränkt ist.
-
Dem statistischen Zugriff auf die
Speicheradressen kann irgendein beliebiges systematisches Zugriffsschema
zugrundegelegt werden. Beispielsweise werden in 5A die Adressenvariablen j und i der
Reihe nach von 0 auf ihre jeweiligen Maximalwerte Y und X erhöht, wobei
in 5A für festes
j zunächst
i erhöht
wird. Für
eine vorgegebene Speicheradresse wird in einem Schritt 6 zunächst der
permutierte Zeilenwert i' berechnet.
Die Zeile mit dieser Zeilenadresse wird danach geöffnet. Anschließend wird in
einem Schritt 7 auch die geänderte
Spaltenadresse j' errechnet,
die zusammen mit der Zeilenadresse die Speicheradresse Aij' kennzeichnet, in
die anstelle der ursprünglich
vorgegebenen Speicheradresse Aij eine Information gespeichert werden
soll. Die Information selbst wird nach der in 4C beschriebene Methode berechnet, wodurch
das Datenbit DQij' entsteht.
Dieses wird in die Adresse Aij' geschrieben. Schließlich wird
in einem Schritt 8 die Zeile i' wieder geschlossen.
Damit ist das erste Datenbit gespeichert. Danach werden zyklisch
diese Schritte wiederholt, bis die ursprüngliche Zeilenvariable i ihren
Maximalwert erreicht hat. Danach wird jeweils auch die Spaltenvariable
j erhöht.
Das Beschreiben des Halbleiterspeichers kann abgebrochen werden,
wenn, wie in 5 dargestellt, jede Zelle einmal
angesprochen wurde. Es können
jedoch mehrfach durch Permutationen erzeugte Schreiboperationen
stattfinden, insbesondere mit neuen Permutationskonstanten, die
sich von den alten vorzugsweise um eine Primzahl, die größer als
2 ist, unterscheiden. Dadurch wird sichergestellt, daß der nochmalige
Durchlauf nicht lediglich die bereits eingeschriebenen Informationen
bestätigt.
-
Nach dem Einschreiben von Informationen
in den Halbleiterspeicher gemäß 5A können die Speicheradressen nach
dem in 5B dargestellten Verfahren
ausgelesen werden. Das Ausleseverfahren funktioniert wie das Verfahren
nach 5A, greift aber
lesend in einer anderen Reihenfolge als beim Schreiben auf die Speicheradressen
zu, was durch unterschiedliche Permutationskonstanten Rx,
Ry zum Ausdruck kommt. Auch hier können nach
jedem Durchlauf des kompletten Zellenfeldes die Permutationskonstanten
Rx und Ry um Primzahlwerte größer als
zwei erhöht
werden. Bei dem bankparallelen Speicherbetrieb können Schreib- und Lesezugriffe mit
unterschiedlichen Adressierungsreihenfolgen, ausgedrückt durch
unterschiedliche Permutationskonstanten zum Lesen und Schreiben,
vorgenommen werden. Die Permutationskonstanten werden extern vorgegeben
oder intern auf dem Speicherchip erzeugt.
-
6 zeigt
eine Schaltung 30 des Halbleiterspeichers 1 aus 1, die zur Erstellung eines
Fehlerprotokolls für
einen Halbleiterbaustein mit beispielsweise vier Datenausgangsleitungen
dient. Sie weist daher vier Teilschaltungen 40 auf, die
an je eine Datenausgangsleitung DQl', DQ2', DQ3' bzw. DQ4' angeschlossen sind. Datenleitungen
DQ1, DQ2, DQ3 und DQ4 sind für
jede der vier Teilschaltungen vierfach, d. h. insgesamt sechzehnfach
vorhanden. Sie führen
von den Teilschaltungen 40 aus zu den als 1 bis 4 bezeichneten
Speicherbänken.
Die vierfache Anordnung von Teilschaltungen 40 und die
sechzehnfache Anordnung von Zuleitungen zu den Speicherbänken B resultiert
daraus, daß in
dem in 6 dargestellten
Halbleiterspeicher die als Beispiel gewählte Busbreite 4 Bit be trägt. Die
Beschreibung der 6 beschränkt sich
im folgenden nur auf die oberste Teilschaltung 40, die
an die Datenleitung DQ1' angeschlossen
ist.
-
Die Teilschaltung 40 ist
der zentrale Bestandteil der Fehlerprotokollschaltung 30 und
dient dazu, aus den Datenleitungen 1, 2, 3 und 4 ein
Datenbit D zu errechnen, welches anstelle eines aus den Speicheradressen
gelesenen Datenwertes DQ über
die Ausgangsleitung DQ1' ausgegeben
wird. Beispielsweise kann das Datenbit D den Wert 1 annehmen, wenn
die aus den Datenleitungen 1, 2, 3 und 4 gelesenen
Datenbits nicht identisch sind. Dadurch wird das Auftreten eines
Speicherfehlers angezeigt und weitergeleitet. Die nach unten weisenden
Speicherbanksignalleitungen 41 dienen dazu, Informationen auszugeben,
die anzeigen, in welcher Speicherbank ein falscher Wert gespeichert
wurde.
-
Mit Hilfe des Moderegisters für die Fehlerprotokollerstellung
MRF kann die Fehlerprotokollschaltung 30 aktiviert und
deaktiviert werden. Über
die Bankauswahlleitungen BS0 und BS1 können die Zusammenschaltungen
der Zuleitungen zu allen Speicherbänken aufgehoben und letztere
wieder einzeln adressiert werden. Schließlich sind zum Mitteilen des
auszuführenden
Befehls "Lesen" oder "Schreiben" Leitungen R und
W vorgesehen, die den Leitungen RD2 und WR2 in 2 entsprechen.
-
Mit Hilfe der in 6 dargestellten Fehlerprotokollschaltung
können
Fehlerprotokolle verschiedenster Protokolldaten erstellt und ausgegeben
werden. Beispiele hierzu sind in den 7A und 7B dargestellt.
-
7A zeigt
die aus vier Speicherbänken 1, 2, 3 und 4 gelesenen
Datenbits über
eine Folge von neun Taktzeiten hinweg. In einer unteren Zeile sind Datenwerte
DQ angegeben, die von den Synchronisationseinheiten 11 aus
den jeweils vier gelesenen Datenbits errechnet werden und den jeweils
richtigen Da tenwert angeben. Die Folge von neun Datenbits DQ bildet
die Datenfolge S, die über
eine Datenleitung DQ' ausgegeben
wird.
-
Alternativ dazu kann anstelle der
gelesenen Daten DQ eine Information D ausgegeben werden, die angibt,
ob ein Speicherfehler aufgetreten ist oder nicht. Diese Datenbits
D nehmen nur ausnahmsweise den Wert 1 an und bilden zusammen ein
sehr kompaktes Fehlerprotokoll F, das sich zum Zählen von Speicherfehlern ohne
Angabe der Speicheradressen eignet. Wird das Fehlerprotokoll F einer Fehlerzähleinrichtung
FZE zugeführt,
zählt diese
die Gesamtzahl aller aufgetretenen Fehler und gibt in dem dargestellten
Beispiel die Fehlersumme "2" als Zählergebnis
aus.
-
Ein komplexeres Fehlerprotokoll ist
in 7B dargestellt. Über eine
Folge von zwölf
Taktzeiten ist in eckigen Klammern angegeben, was durch die in 6 dargestellten vier Busleitungen DQ1', DQ2', DQ3' und DQ4' als Datenbit ausgegeben wird.
Nach jeder Abfrage einer Gruppe aus Speicheradressen werden mindestens
zwölf Zeittakte
geschaltet, um ein möglichst
vollständiges
Fehlerprotokoll auszugeben. Die Datenleitung DQ1' gibt im ersten Takt t1 eine 1 aus,
wenn ein Speicherfehler festgestellt wurde, ansonsten eine 0 (PF;
Pass-Fail). Die Datenleitung DQ2' gibt
im ersten Zeittakt an, welcher Bitwert 0 oder 1 in
einer der vier gelesenen Speicherzellen ausgefallen ist (SCF; Single
Cell Fail). Weitere in den ersten beiden Zeittakten übermittelte
Datenbits DQ1, DQ2, DQ3 und DQ4 geben an, welche Gruppe einander
zugeordneter Speicherzellen des Viererbusses einen Fehler aufweist.
Die übrigen
Zeittakte t3 bis t12 dienen hier zum Übermitteln der hier jeweils
in Dualschreibweise 15-stelligen Zeilen- und Spaltenadressen.
-
Die in 7B dargestellte
Formeines Fehlerprotokolls ist lediglich beispielhaft. Je nach Zweck des
Fehlerprotokolls kann auch eine kompaktere oder komplexere Form
gewählt
werden, die weniger oder mehr Zeittakte benötigt. Die Informa tionen des Fehlerprotokolls
sind abhängig
von der Busbreite der Datenausgangsleitungen und dem Adreßraum für die x-
und y-Adressen des jeweiligen Speichers.
-
Mit Hilfe der Fehlerprotokollschaltung
können
bei einem testweisen Betreiben eines Halbleiterspeichers interessierende
Protokolldaten unmittelbar errechnet werden und anstelle der im
Speicher abgerufenen Daten ausgegeben werden. Die Fehlerprotokollschaltung 30 muß nicht
notwendigerweise, wie in 1 dargestellt,
eine von der Prüfeinheit 10 getrennte
Schaltung sein, sie kann auch teilweise mit der Prüfeinheit 10 verknüpft werden,
da die in ihrer Zahl den Bitleitungen entsprechenden Synchronisationsschaltungen 11 ähnliche
Aufgaben übernehmen wie
die in der Fehlerprotokollschaltung 30 entsprechend der
Busbreite mehrfach vorhandenen Teilschaltungen 40.
-
- 1
- Halbleiterspeicher
- 2
- Signalverstärkeranordnung
- 3
- Signalverstärker
- 4
- Ausgangsdatenleitung
- 5
- Synchronisationsleitung
- 10
- Prüfeinheit
- 11
- Synchronisationsschaltung
- 12
- Synchronisationseinheit
- 13
- Korrekturschaltung
- 20
- Permutationsschaltung
- 30
- Fehlerprotokollschaltung
- 40
- Teilschaltung
- 41
- Speicherbanksignalleitung