-
HINTERGRUND
DER ERFINDUNG
-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft allgemein Verfahren zum Adressieren
in Speicherschaltungen und insbesondere ein Verfahren, das das Prüfen von
Speicherschaltungen vereinfacht, indem die Abbildungsprobleme zwischen
physikalischen und logischen Datenmustern (z. B. Datenverwürfelung) überwunden
werden.
-
Allgemeiner
Stand der Technik
-
In
einer Speicherschaltung (z. B. einem statischen Direktzugriffsspeicher
(SRAM), einem dynamischen Direktzugriffsspeicher (DRAM) und dergleichen)
werden Daten normalerweise in einer Matrix von Speicherelementen
gespeichert. Das Zugreifen auf die Datenwerte der Speicherelemente
(Leseoperation) oder das Modifizieren dieser (Schreiboperation)
ist ausschließlich
durch Verwendung der Schnittstelle der Speicherschaltung möglich. Während eines
Lesebefehls wird dieser Schnittstelle eine Adresse zugeführt. Diese
Adresse wird dann durch die Speicherschaltung verarbeitet und die
an dieser Adresse befindlichen Daten werden an den Datenausgang
abgeliefert. Im Gegensatz dazu speichert ein Schreibbefehl extern
zugeführte
Daten an der in Verbindung mit den Daten zugeführten Adresse.
-
Deshalb
weist eine Speicherschaltung zwei Arten von Speicheradressierung
auf. Eine Adresse beschreibt die physikalische Speicherstelle eines
Speicherelements (die als die „physikalische
Adresse" bezeichnet
wird). Die andere Adresse ist die Adresse, die der Schnittstelle
der Speicherschaltung zugeführt
werden muß,
um auf ein spezifisches Speicherelement zuzugreifen (als die „logische
Adresse" bezeichnet).
Bei vorbe kannten Speichergenerationen war die Beziehung zwischen
der physikalischen und der logischen Adresse einfach, da die beiden
Teile der logischen Adresse (die in der Regel Zeile und Spalte genannt
werden) eine transparente Beziehung zu den x- und y-Koordinaten der Speicherelemente
(z. B. der physikalischen Adresse) aufwiesen.
-
Moderne
Architekturen von Speicherschaltungen verhindern jedoch zunehmend
die Extraktion eines transparenten Abbildungsschemas zwischen den
logischen und den physikalischen Adressen. Die nichttrivialen Abbildungen
werden durch den Begriff „Datenverwürfelung" zusammengefaßt. Datenverwürfelung
kann im allgemeinen durch mehrere Faktoren verursacht werden, darunter
- – Bitleitungs-Verdrehung,
- – Wortleitungsadressierung
und -segmentierung,
- – Layout-Spiegelung,
- – Multiplexen
und Demultiplexen von Datenpaketen in den Burst-Betriebsarten und
- – Wrap-Abhängigkeit
(verschachtelt gegenüber
sequentiell).
-
Durch
die Kombination dieser Datenverwürfelungen
wird es nahezu unmöglich,
eine logische Adresse für
eine gegebene physikalische Adresse abzuleiten. Dies ist jedoch
eine Voraussetzung für
die Hardware-Prüfung,
da die Speicherelemente einer Speichermatrix ausschließlich durch
die Schnittstelle der Speicherschaltung zugänglich sind. Insbesondere werden
mehrere charakteristische physikalische Datenmuster wie zum Beispiel
Streifen, Schachbrett, unstrukturiert, usw., für eine Speichermatrix ausgeführt, um
durch Koppelungs- und Substratrauschen verursachte Probleme zu identifizieren.
Ferner muß die
Hardware-Prüfung
in der Lage sein, die physikalische Speicherstelle von Ausfällen zu
extrahieren, wenn die Daten an der logischen Schnittstelle falsch
sind.
-
Unter
Berücksichtigung
der Größe derzeitiger
Speicherschaltungen ist es offensichtlich, daß die Prüfmustererzeugung und -analyse
automatisch durchgeführt
werden muß.
Zur Zeit benützte
Mustererzeugungstechniken (die auf prozeduraler Programmierung basieren)
sind jedoch ineffizient, weil die Entwicklung des zugrundeliegenden
Erzeugungsalgorithmus durch die Datenverwürfelung verhindert wird.
-
KURZE DARSTELLUNG
DER ERFINDUNG
-
Eine
Aufgabe der vorliegenden Erfindung ist deshalb die Schaffung eines
automatischen Mustererzeugungs- und -analyseverfahrens zur Durchführung der
Hardware-Prüfung
von Speicherschaltungen.
-
Gemäß der vorliegenden
Erfindung wird eine automatische Erzeugung eines logischen Hardware-Prüfmusters
auf der Basis eines gegebenen physikalischen Musters bereitgestellt.
Das Verfahren umfaßt die
Rückwärtstransformation
von einer gegebenen Menge logischer Datenmuster. Da das Verfahren
automatisch ist, ist keine Kenntnis der Datenverwürfelung
innerhalb der Speicherschaltung erforderlich.
-
Die
Ausübung
der Erfindung erfordert die folgenden Elemente:
-
Eine
Betrachtungsvorrichtung bzw. einen Generator für Muster, wodurch eine graphische
Benutzeroberfläche
(GUI) repräsentiert
wird. Diese Schnittstelle ermöglicht
eine graphische Definition der in den Speicherelementen gespeicherten
Werte. Außerdem
stellt sie eine Bibliothek mit vordefinierten Stan dardmustern, wie
zum Beispiel einem Schachbrettmustern, bereit. Neben der Definition
von Mustern ermöglicht
dieses Modul außerdem
das Betrachten des in der Speicherschaltung gespeicherten Musters.
-
Ein
Layout der Speichermatrix (bzw. des Speicherarrays). Dieser Teil
wird von dem Speicherentwurf abgeleitet. Im Prinzip liefert er die
geometrische Speicherstelle (d. h. die x- und die y-Koordinate)
jedes Speicherelements.
-
Eine
verflachte Array-Netzliste (die in der Regel durch ein Layout- bzw.
Schaltbildwerkzeug erzeugt wird) liefert eine Verknüpfung zwischen
dem hierarchischen Namen jedes Speicherelements und seiner geometrischen
Speicherstelle.
-
Eine
hierarchische Darstellung der Speicherschaltung (Netzliste), die
durch einen Logiksimulator ausgeführt werden kann.
-
Ein
Logiksimulator ermöglicht
das Modellieren des Verhaltens der Speicherschaltung durch Ausführen von
Lese- und Schreibbefehlen an der Netzliste. Zusätzlich liefert er eine Funktionalität zum Setzen
von Anfangsbedingungen auf Schaltungsknoten (wie zum Beispiel der
Spannungen von Speicherelementen) bevor eine Simulation gestartet
wird. Ähnlich
wird eine Funktionalität
unterstützt,
die die Endzustände
von Schaltungsknoten am Ende der Simulation liest.
-
Ein
Muster-Server (und/oder ein Prüfer-RAM)
wirkt als eine Zwischenspeicherung zwischen dem Hardware-Prüfer und
dem Logiksimulator. Daten werden in Paaren von Adresse und Daten
ausgetauscht, welche schlicht den an einer spezifischen logischen
Adresse gespeicherten Datenwert bzw. die an einer spe zifischen logischen
Adresse gespeicherten Datenwerte beschreiben.
-
Ein
Hardware-Prüfer
erzeugt und mißt
elektrische Signale an den Anschlüssen des Speicherbausteins.
-
Ein
Bitmap-Analysierer kann physikalische Datenmuster vergleichen. Nichtübereinstimmungen
zwischen einem Eingangsmuster und dem abgeleiteten Muster können analysiert
werden.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
obigen und andere Aufgaben, Aspekte und Vorteile werden aus der
folgenden ausführlichen
Beschreibung einer bevorzugten Ausführungsform der Erfindung mit
Bezug auf die Zeichnungen besser verständlich. Es zeigen:
-
1 ein
Blockdiagramm des Datenflusses der Erzeugung eines physikalischen
Array-Datenmusters und der Umwandlung dieses in das logische Datenmuster
für die
Prüfung
und Analyse des MOS-Speicherarrays gemäß der Erfindung;
-
2 ein
Diagramm des Verfahrens zum Eingeben eines bekannten physikalischen
Datenmusters in das Layout des Arrays über eine Datenabbildungstechnik
gemäß der Erfindung;
-
3 ein
Flußdiagramm
der Logik der Erzeugung eines logischen Datenmusters aus einem bekannten
physikalischen Datenmuster.
-
AUSFÜHRLICHE
BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSFORM DER ERFINDUNG
-
Prozeduren zum Umwandeln
von physikalischen Array-Datenmustern in logische Datenmuster
-
Nunmehr
unter Bezugnahme auf die Zeichnungen und insbesondere auf 1 ist
in Blockdiagrammform der Datenfluß der Mustererzeugung und Musteranalyse
der Erfindung gezeigt. Eine Betrachtungsvorrichtung bzw. ein Generator 10 für Muster
liefert eine graphische Benutzeroberfläche (GUI), die das Eingeben
von Datenmustern und das Betrachten gespeicherter Datenmuster durch
den bzw. die Benutzer 3 ermöglicht. Diese Schnittstelle
ermöglicht
sowohl die Eingabe von Daten als auch das Betrachten von Daten durch
den bzw. die Benutzer über
eine graphische Definition der in einem Speicherarray gespeicherten
Werte. Ferner speichert sie eine Bibliothek mit vordefinierten Standardmustern,
wie zum Beispiel einem Schachbrettmuster, einem Streifenmuster,
einem Zufallsmuster, einem unstrukturierten Muster und dergleichen.
Die Datenmuster können
in einem Tabellenformat mit identischen Zeilen und Spalten wie denen
des zu prüfenden
Speicherarrays vorliegen.
-
Das
Layout 11 des Speicherarrays erfolgt durch eine Bedienungsperson
oder Software in Schritt 100 zur Erzeugung eines physikalischen
Entwurfs des Speicherarrays unter Verwendung eines beliebigen herkömmlichen
Layout-Werkzeugs. Das erzeugte physikalische Layout des Speicherarrays
enthält
im allgemeinen viele Ebenen und Formen zur Verwendung zur Erzeugung
von Masken für
die Speicherarrayherstellung.
-
Jede
Zelle in dem physikalischen Layout 11 des Speicherarrays
wird mit vordefinierten Daten aus einer in dem Mustergeneratormodul 10 gespeicherten
Tabelle abgebildet. Die Abbildungstechnik erfolgt über Software,
die automatisch die Daten _1_ oder _0_ über den Schritt 101 in
jede Zelle des Arrays schreibt.
-
Die
Einzelheiten der Datenabbildung aus dem Mustergenerator 10 in
das physikalische Layout 11 sind in 2 dargestellt.
Zum Beispiel wird ein Schachbrettmuster aus einer Bibliothek in
den Mustergenerator geladen. Ein Softwareprogramm wird zur Ausführung der
injektiven Datenabbildung von der Musterbetrachtungsvorrichtung
auf das physikalische Layout verwendet. Nachdem dies geschehen ist,
sind bei dem Modul für
das physikalische Layout alle Zellen mit dem Schachbrettdatenmuster
gespeichert.
-
Das
in dem Layout 11 gespeicherte Datenmuster wird dann in
Schritt 102 zu einem Eingangsdeck 12A gestreamt,
um die Anfangszustände
jeder Zelle in dem Array zu definieren. Jeder Anfangszustand trägt einen vollen
Zellenadressenweg, der die logische Speicherstelle dieser Zelle
anzeigt, und den Wert des Anfangszustands. Der Daten-Streaming-Prozeß 102 erfolgt
durch Verwendung eines LVS-Werkzeugs (Layout Versus Schematic),
das in der Technik bekannt ist.
-
Die
existierende LVS-Software kann eine Querverweisprüfung eines
Schaltungs-Layouts im Vergleich zu ihrem Schaltbild durchführen. Der
Zweck der LVS-Prüfung
ist das Verifizieren der Übereinstimmung
von Layouts und ihrem Schaltbild. Dieses Werkzeug kann so modifiziert
werden, daß es
die Datenmuster, die in dem Array des Layouts gespeichert sind,
in ein Eingangsdeck transferiert, mit Auflistung als der Anfangszustand für die Zellen.
Zum Beispiel können
die in dem Array des physikalischen Layouts gespeicherten Daten in
ein verflachtes Format übersetzt
werden, wobei alle hierarchischen Wege jeder Zelle die Zellenspeicherstelle
darüber
anzeigen, um welches Array, welches Sub-Array, welche Zeilen- und
welche Spaltenadresse es sich handelt. Nachdem per Software die
Abbildung durchgeführt
wurde, werden alle Anfangszustände
für alle
Zellen mit einem bekannten Datenmuster in ein Eingangsdeck 12A gestreamt.
Genauer gesagt werden nun alle physikalischen Datenmuster in den
Anfangszuständen
des Deck aufgezeichnet und sind bereit für die Simulation. Diese Anfangszustände werden
in Schritt 103 in den Simulator 13 eingeben.
-
Um
eine Simulation auszuführen,
wird in Schritt 97 aus dem Schaltbild 4 der Speicherschaltung
durch Verwendung einer beliebigen existierenden Software für diesen
Zweck eine Netzliste 5 erzeugt. Zum Beispiel kann die Netzliste
mit einem Cadence-Werkzeug aus einem Schaltbild erzeugt werden.
Ein Beispiel für
ein Eingangsdeck und eine durch das Cadence-Werkzeug für eine einfache Schaltung erzeugte
Netzliste ist nachfolgend gezeigt.
-
-
-
-
Deshalb
ist die Netzliste das Schaltbild, das in einem Textformat, das der
Simulator 13 kennt, kompiliert und dem Simulator 13 zugeführt wird
Schritt 96.
-
Um
die in dem Speicherarray gespeicherten Daten zu lesen, muß das Speicherarray
jedoch mit einem bekannten Datenmuster vorgeladen werden. Die in
der Eingabe gespeicherten Anfangszustände ermöglichen es dem Simulator 13,
die Daten in das Array zu laden. Dies geschieht durch Zuführen von
Anfangszuständen, um
das Array vorzuladen. Nachdem das Array mit dem bekannten Datenmuster
vorgeladen wurde, kann durch den Simulator 13 eine Array-Lesesimulation
ausgeführt
werden. Für
die Array-Lesesimulation kann jeder beliebige existierende Logiksimulator 13 verwendet
werden, zum Beispiel Starsim, Powermill, VHDL oder Verilog.
-
Zusammengefaßt und wie
in 3 dargestellt, extrahiert das modifizierte LVS-Werkzeug
die Anfangsdatenwerte aus dem Array-Layout 31. Durch Zusammenführen der
Netzliste und der Anfangszustände 32 kann
ein Logiksimulatorwerkzeug 33 dann eine volle Array-Lesesimulation
des Speicherarrays 34 durchführen. Alle gelesenen Zellendaten
mit logischer Adresse aus dem Array werden in dem Muster-Server 14 gespeichert.
-
Der
Muster-Server 14 wirkt als eine Zwischenspeicherung zwischen
dem Hardware-Prüfer 15 und dem
Simulator 13. In dem Muster-Server 14 gespeicherte
Daten enthalten sowohl Felder von Adressen als auch Datenwert, welche
schlicht den an einer spezifischen logischen Adresse gespeicherten
Datenwert bzw. die an einer spezifischen logischen Adresse gespeicherten
Datenwerte beschreiben. Damit ist die erste Ausführungsform abgeschlossen, die
ein bekanntes physikalisches Array-Datenmuster in das entsprechende logische
Datenmuster umwandeln soll. Das logische Datenmuster kann in einem
Bitmap-Format oder
in einem Tabellenformat vorliegen.
-
Prozeduren zum Prüfen eines
Speicherarrays unter Verwendung eines bekannten physikalischen Datenmusters
-
Die
in dem Muster-Server 14 gespeicherten Informationen weisen
den Prüfer
in Schritt 106 an, das DRAM-Array auf der Wafer-Hardware 16 (z.
B. Speicherchips auf einem Wafer) mit den Informationen, einschließlich der
logischen Adresse und Schreibdatenwerte für jede Zelle zu programmieren.
Nachdem das Array programmiert ist und nach einem spezifischen Zeitraum
werden die Daten in Schritt 206 durch den Prüfer ausgelesen.
Das Ergebnis aus dem Hardware-Prüfer 15 erzeugt
Leseadressen und mißt
elektrische Signale der Zellen, die sich an diesen Adressen befinden,
die dann in Schritt 205 in einem logischen Bitmap-Format
in dem Muster-Server 14 gespeichert werden. Diese logische
Bitmap aus dem Prüfer
kann mit der im Schritt 105 erzeugten logischen Bitmap
verglichen werden, mit der die Daten in die Hardware 16 programmiert
wurden, um einen Ausfall zu erkennen. Dadurch erhält man jedoch
keine Informationen über
ein Ausfallbit bzw. mehrere Ausfallbit einer physikalischen Speicherstelle.
Deshalb muß man
weiter diese aus Hardware gemessene logische Bitmap wieder in eine
physikalische Bitmap umwandeln, damit die ausgefallene Speicherstelle
in dem Array bestimmt werden kann.
-
Die
logische Bitmap wird in Schritt 205 aus dem Hardware-Prüfer 15 an
den Muster-Server 14 ausgegeben, um dann in Schritt 204 in
das Stimulus-Format 17 für eine Schreibsimulation, das
in Schritt 207 an den Simulator 13 ausgegeben
wird, umgewandelt. Zum Schreiben des logischen Datenmusters in das
Speicherarray und somit zum Erzeugen eines Ausgangsdecks 12B in
Schritt 203 können
derselbe Simulator 13 und dieselbe Netzliste 5 verwendet
werden. Diese in dem Ausgangsdeck gespeicherten Daten weisen nun
physikalische Adressen auf, die denen in dem zuvor beschriebenen
Eingangsdeck 12A ähnlich
sind. Die in dem Ausgangsdeck 12B gespeicherten Daten werden
dann in Schritt 202 unter Verwendung desselben modifizierten LVS-Werkzeugs,
aber in umgekehrter Weise, zu dem Layout 11 zurückgestreamt.
-
Im
Schritt 201 wird ein einfaches Softwareprogramm, das dem
bereits im Schritt 101 erwähnten ähnlich ist, zur Abbildung auf
das Format einer physikalischen Bitmap oder einer Tabelle in der
Musterbetrachtungsvorrichtung bzw. dem Generator 10 verwendet.
Die aus der Hardware gelesenen Daten sind nun dem Benutzer 3 sichtbar.
-
Der
Bitmap-Analysierer 9 benutzt im Schritt 99 eine
Schnittstelle mit der Musterbetrachtungsvorrichtung, bzw. dem Generator 10 und
kann im Schritt 98 unter Verwendung einer Vergleichsfunktion 8 physikalische
Datenmuster zwischen dem ursprünglichen
Eingangsmuster und dem aus der Hardware gelesenen Muster vergleichen.
Nichtübereinstimmungen
zwischen einem Eingangsmuster und dem geprüften Muster können angezeigt
und analysiert werden.
-
Auf
der Basis dieser Struktur können
trotz etwaiger Datenverwürfelung
die Eigenschaften einer hergestellten Speicherschaltung leicht untersucht
werden. Erstens wählt
der Benutzer des Verfahrens unter Verwendung der GUI der Musterbetrachtungsvorrichtung
bzw. des Generators 10 ein physikalisches Datenmuster, das
an den Speicherchip angelegt werden soll. Diese physikalische Datenabbildung
wird dann in Anfangszustände
für den
Logiksimulator 13 für
die entsprechenden Speicherelemente in der Netzliste durch Verwendung des
Schaltungslayoutmoduls 11 und der verflachten Netzliste 5 übersetzt.
Nach dem Zuweisen der Anfangszustände wird ein Simulationslauf
durchgeführt,
der den Speicher ausliest, indem er alle möglichen Adressen an das Speichermodell
anlegt. Als Ergebnis wird eine Menge von Paaren (Adresse, Daten)
erhalten, die das logische Datenmuster darstellt, das dem anfänglichen
physikalischen Datenmuster entspricht. Der Inhalt dieser Nachschlagetabelle
wird dann durch Verwendung des Hardware-Prüfers 15 in die tatsächliche
Speicherhardware geschrieben. Nach dem Beschreiben der Speicherhardware
und nach einer vorbestimmten Wartezeit liest der Prüfer den
Speicher durch Anlegen aller möglichen
Adressen aus. Diese Ergebnisse werden als Paare (Adresse, Daten)
in dem Muster-Server 14 gespeichert. Die Wartezeit ist
normalerweise kleiner als die Haltezeit der Speicherzellen. Während dieser
Wartezeit könn ten
aufgrund bestimmter Arten von Defekten einige Zellen ausfallen.
Wenn die Wartezeit größer als
die entwickelte Zellenhaltezeit ist, fällt der größte Teil der Zellen aus. Die
Wartezeit kann von 0 bis 100 ms verändert werden. Mit dieser Prüfung wird
normalerweise die Zellenhaltezeit bestimmt.
-
An
diesem Punkt ist es bereits möglich,
die logischen Adressen von Ausfällen
zu identifizieren, indem einfach die Paare (Adresse, Daten) der
Schreib- und der Leseoperation verglichen werden. Um jedoch die
physikalische Speicherstelle von Ausfällen zu finden, muß die Datenverwürflung wieder
umgekehrt werden. Die während
der Leseoperation aus der tatsächlichen
Hardware abgeleiteten Paare (Adresse, Daten) werden deshalb unter
Verwendung eines Simulationsmodells in das Array geschrieben.
-
Am
Ende der Simulation wird der Inhalt aller Speicherelemente direkt
aus der hierarchischen Querschnittsnetzliste 5 extrahiert.
Diese Werte werden dann durch nochmalige Verwendung der verflachten
Netzliste und des Speicherlayoutmoduls 11 auf ihre physikalische
Speicherstelle abgebildet. Als letztes wird das resultierende physikalische
Datenmuster durch die Musterbetrachtungsvorrichtung bzw. den Generator 10 angezeigt.
Zusätzlich
könnte
man mit dem Bitmap-Analysierer 9 das anfängliche
physikalische Muster mit dem abgeleiteten Muster vergleichen und
somit Bereiche mit Bitausfällen
angeben.
-
Das
Verfahren der Erfindung ist nützlich,
wenn eine Speicherschaltung eine nicht triviale Datenverwürfelung
aufweist. Insbesondere ist es hilfreich für die Schaltungsprüfung, wenn
Hardwareausfälle
in dem Layout gefunden werden müssen.
Da das Verfahren jede manuelle Analyse umgeht, wird es die Entwicklung
eines Hardware-Prüfmusters
signifikant beschleunigen. Es kann in der Prüfumgebung als ein Black-Box-Werkzeug verwendet
werden, bei dem die einzige Schnittstelle zu dem Benutzer ein graphischer
Generator und eine graphische Betrachtungsvorrichtung für Muster
ist. Innerhalb dieser Schnittstelle kann der Prüfingenieur Prüfmuster
unabhängig
von einer etwaigen Datenverwürfelung
graphisch setzen und analysieren. Vom Standpunkt des Entwicklers
aus gesehen unterstützt
dieses Verfahren die Verifizierung der Datenverwürfelung, da es dabei hilft,
physikalische mit logischen Datenmustern in Beziehung zu setzen.
-
Obwohl
die Erfindung im Hinblick auf eine einzige bevorzugte Ausführungsform
beschrieben wurde, ist für
Fachleute erkennbar, daß die
Erfindung mit Modifikation innerhalb des Schutzumfangs der angefügten Ansprüche ausgeübt werden
kann.