-
Verwandte
Anmeldungen
-
Die
vorliegende Erfindung bezieht sich auf den Hauptgegenstand, der
in der koreanischen Prioritätsanmeldung
Nr. 10-2004-0061085 enthalten ist, welche am 03. August 2004 angemeldet
worden ist und hier ausdrücklich
durch Bezugnahme vollständig eingeschlossen
ist.
-
HINTERGRUND
DER ERFINDUNG
-
1. Gebiet
der Erfindung
-
Die
vorliegende Erfindung bezieht sich auf einen Algorithmus-Mustergenerator
zum Testen einer Speichervorrichtung, und insbesondere auf einen Algorithmus-Mustererzeuger
zum Testen einer Speichervorrichtung mit einer Konfiguration, welche
eine Konfiguration eines Speichertesters optimieren kann einschließlich einer
Adressverwürfelung
und einer Datenverwürfelung
in einem Speichertester zum Durchführen eines Tests an einer Speichervorrichtung
auf Modulebene oder Komponentenebene.
-
Ein
Algorithmus-Mustergenerator (nachfolgend als "ALPG" bezeichnet)
ist eine Vorrichtung zum Generieren eines Musters in einem Speichertester,
der zum Testen einer Halbleitervorrichtung verwendet wird, insbesondere
eines Speichermoduls oder einer Speicherkomponente. Der ALPG wird
zum Kodieren einer Instruktion verwendet, um Datenlese-/-schreibvorgänge zu testen.
-
Ein
Halbleitertester, insbesondere ein Speichertester, wird abhängig von
dem Entwicklungsstatus einer Speichervorrichtung gestaltet und entwickelt,
insbesondere von der eines DRAMs, welches einen wesentlichen Teil
der Speichervorrichtungen darstellt. Der Entwicklungsstatus von
DRAM hat sich von einem DRAM mit einer EDO- (Extended Data Output)
funktion über
SDRAM (Synchronous DRAM) und Rambus-DRAM zu DDR- (Double Data Rate) DRAM entwickelt.
-
Um
diese DRAMs zu testen, sind hohe Geschwindigkeit und hohe Genauigkeit
der Speichertester erforderlich. Des Weiteren steigt, da die Kapazität des DRAM
steigt, die für
den Test erforderliche Zeit. Dementsprechend muss eine Testgeschwindigkeit
erhöht
werden. Ein kleiner und ökonomischer Speichertester
muss enthalten sein, um die Testkosten zu senken.
-
1 ist ein Blockdiagramm,
welches beispielhaft einen herkömmlichen
Tester darstellt.
-
Unter
Bezugnahme auf 1 weist
ein Speichertester 100 eine Stromversorgung 110 zum
Liefern von Netzspannung an eine zu testende Speichervorrichtung 180 einschließlich eines
Speichermoduls oder einer Speicherkomponente, einen Treiber 120 zum
Eingeben eines Signals an eine Eingabeeinheit der Speichervorrichtung 180,
einen Komparator 130 zum Vergleichen eines Signalausgangs von
einer Ausgabeeinheit der Speichervorrichtung 180 mit einem
erwarteten Wert, einen Mustergenerator 140 zum Erzeugen
eines Signal-Arrays (Testmuster), welches Eingabe an die Speichervorrichtung 180 ist,
und ein Signal für
einen erwarteten Wert, einen Timing-Generator 150 zum Erzeugen
eines Timings für
ein Signal, welches Eingabe an die Speichervorrichtung 180 ist,
eine CPU 160, welche ein Controller zum Steuern dieser
Schaltkreise ist, auf. Die CPU 160 ist gestaltet, um von
einer externen Speichervorrichtung zu lesen und die gelesenen Daten
durch ein Betriebssystem (OS = operating system) zu interpretieren,
wobei sie ein Erzeugen und ein Bestimmen eines Signals für den Test
(Testmuster) und die Ausführung
dieser vorbestimmten Tests durchgeführt. Der Tester 100 kann
einen Gleichstrom-Testschaltkreis 170 aufweisen zum Durchführen eines
Gleichstromtests, wie beispielsweise Erkennen eines Spannungspegels
an der Ausgabeeinheit.
-
Da
der oben beschriebene herkömmliche Speichertester
einen Gleichstromtest durchführt,
um zu testen, ob Gleichstrom-Parameter für digitale Schaltkreisoperationen
geeignet sind, und einen Wechselspannung-Grenzwerttest, der sich
auf Signalübertragungsverzögerungszeit,
Einrichtzeit und Haltezeit bezieht, und verschiedene Komponenten aufweist,
wie beispielsweise den Timing-Generator, ist eine teure zugeordnete
Ausrüstung
erforderlich, welche sehr groß ist,
wie beispielsweise ein Mainframe, um den herkömmlichen Speichertester herzustellen.
Demzufolge ist der herkömmliche
Speichertester nachteilig darin, dass die Herstellungskosten sehr
hoch sind. Für
Speicherhersteller ist es bevorzugt, die Produktionskosten zu minimieren
und einen leistungsfähigen
Speichertester zu entwerfen, um auf dem Markt konkurrenzfähig zu bleiben.
Dementsprechend muss der Speichertester leistungsfähig entworfen
werden, um eine geringe Größe zu haben
und die Produktionskosten zu verringern.
-
Um
eine Miniaturisierung des Testers zu erreichen, wurde eine Technologie
zum Optimieren von ALPG, welche mit dem Erzeugen von Testmustern verwandt
ist, vorgeschlagen.
-
Beispielsweise
ist solch ein ALPG in der koreanischen Patentanmeldung Nr. 2001-0045014,
angemeldet von Hitachi Ltd. am 26. Juli 2001 mit dem Titel "A METHOD FOR GENERATING
TESTER CONSTRUCTION DATA, CONSTRUCTION METHOD FOR TESTER AND TEST
CIRCUIT" offenbart.
-
2 ist ein Blockdiagramm,
welches einen Algorithmus-Mustergenerator darstellt, wie durch die koreanische
Patentanmeldung Nr. 2001-0045014 offenbart.
-
Unter
Bezugnahme auf 2 weist
der herkömmliche
ALPG einen Instruktionsspeicher 210 auf zum Speichern eines
Mikroprogramms, welches aus einer Mehrzahl von Mikroinstruktionen
besteht, die entsprechend einem ein Testmuster erzeugenden Algorithmus
konfiguriert sind, einen Programmzähler 220 zum Bestimmen,
was von dem Instruktionsspeicher 210 gelesen werden soll,
einen Sequenzsteuerungsschaltkreis 230 zum Erzeugen eines
Steuerungssignals für
einen Speicherschaltkreis durch Dekodieren eines Instruktionscodes
in der Mikroinstruktion, welche von dem Instruktionsspeicher 210 ausgelesen
wurde, oder einen Funktionsblock, der einen ALPG darstellt, wie
beispielsweise der Programmzähler 220,
ein Adressoperationsschaltkreis 240 zum Erzeugen einer
Testadresse entsprechend der von dem Instruktionsspeicher 210 ausgelesenen
Mikroinstruktion, sowie einen Testdaten erzeugenden Schaltkreis 250 zum
Erzeugen von Testdaten und erwarteten Datenwerten gemäß der gelesenen
Mikroinstruktion.
-
Des
Weiteren können,
wenn bestimmt wird, ob der Speicherschaltkreis in Prüfung normal
ist oder nicht, Mittel beinhaltet sein zum Bestimmen, ob die von
dem Speicherschaltkreis ausgelesenen Daten mit den geschriebenen
Daten übereinstimmend
sind, indem diese vergleichen werden. Zusätzlich beinhaltet, wie in 2 dargestellt, die in dem
Instruktionsspeicher 210 gespeicherte Mikroinstruktion
ein Adressfeld MPa zum Speichern einer PC- (Program Counter, Programmschrittzähler) Adresse,
welche eine Sprungadresse einer Instruktion anzeigt, die als Sprunginstruktion
verwendet wird, ein OP-Codefeld MFb zum Speichern eines Sequenz-Steuerungscodes,
ein Operand-Feld MFc zum Speichern der Anzahl wiederholter Instruktionen,
ein Steuerungsfeld MFd zum Speichern eines Steuerungscodes zum Veranlassen
eines Ausgabe- und Lese-/Schreibvorgangs einer Adresse oder eines
Datums, ein Adressoperations-Codefeld MFe zum Speichern eines Adressoperations-Instruktionscodes,
und ein Datenerzeugungs-Codefeld MFf zum Speichern des Datenerzeugungs-Instruktionscodes.
-
Jedoch
offenbart die koreanische Patentanmeldung Nr. 2001-0045014 keine
Adressverwürfelung
oder jedwede andere Datenverwürfelung.
Die Adressverwürfelung
ist bezogen auf wechselseitige Konvertierung zum Abgleichen einer
physikalischen Adresse und einer logischen Adresse (dargestellt
als Reihe und Spalte) des Speichers. Die Datenverwürfelung
wird als Funktion einer Adresse dargestellt. Da die Verfahren zum
Minimieren eines Bereichs eines Layouts sich abhängig von den Speicherherstellern unterscheiden,
ist das Verwürfeln
von Daten ein Vorgang für
die Konformität.
Um das ALPG effizient zu entwickeln und die Anordnung des Speichertesters zu
optimieren, muss die Entwicklung des ALPG das Verwürfeln mit
berücksichtigen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es
ist ein Ziel der vorliegenden Erfindung, einen Algorithmus-Mustergenerator
zum Testen einer Speichervorrichtung mit einer Konfiguration, welche eine
Konfiguration eines Speichertesters optimieren kann, einschließlich einer
Adressverwürfelung
und einer Datenverwürfelung,
zu offenbaren.
-
Es
ist ein weiteres Ziel der vorliegenden Erfindung, einen Speichertester
unter Verwendung des Algorithmus-Mustergenerators vorzusehen.
-
Es
ist wiederum ein weiteres Ziel der vorliegenden Erfindung, ein Testverfahren
für die
Speichervorrichtung unter Verwendung des Algorithmus-Mustergenerators
zum Testen der Speichervorrichtung zu offenbaren.
-
Es
ist ebenfalls ein Ziel der vorliegenden Erfindung, ein computer-lesbares
Aufzeichnungsmedium vorzusehen, welches darauf beinhaltet ein Programm
für den
Algorithmus-Mustergenerator zum Testen der Speichervorrichtung verkörpert.
-
Um
die oben beschriebenen Ziele der vorliegenden Erfindung zu erreichen,
wird ein Algorithmus-Mustergenerator zum Testen einer Speichervorrichtung
vorgesehen, welcher aufweist: Einen Instruktionsspeicher zum Empfangen
und Speichern eines Testprogramms einschließlich einer Instruktion zum
Durchführen
eines Tests von einem externen Konsolen-PC; eine Sequenzsteuereinheit zum sequenziellen
Abrufen der Instruktion, die in dem Testprogramm beinhaltet ist,
vom Instruktionsspeicher, wenn der Test durchgeführt wird; eine Schnittstelleneinheit
als Schnittstelle mit einer externen Vorrichtung; ein PLL zum Bereitstellen
eines Taktsignals mit einer identischen Phase; eine Befehl erzeugende Einheit
zum Erzeugen einer Befehlslogik, die für den Test im Hinblick auf
jeden Zyklus, der von dem PLL bereitgestellt wird, notwendig ist;
eine Adressen erzeugende Einheit zum Erzeugen einer Adresslogik, die
für den
Test erforderlich ist, über
eine Adressverwürfelung
im Hinblick auf jeden der Zyklen; eine Daten erzeugende Einheit
zum Erzeugen einer Datenlogik, die für den Test erforderlich ist, über eine
Datenverwürfelung
im Hinblick auf jeden der Zyklen; sowie eine Daten vergleichende
Einheit zum Vergleichen eines in der Daten erzeugenden Einheit erzeugten Datums
und eines Testdatums für
jeden der Zyklen und Speichern einer Information über einen
durchgefallenen Speicher.
-
Ebenfalls
wird ein Speichertester zum Testen einer Speichervorrichtung vorgesehen,
welcher aufweist: Eine variable Stromversorgung zum Liefern einer
Spannung für
einen Test der Speichervorrichtung; einen Konsolen-PC zum Erzeugen
des Testprogramms und zum Erhalten und Analysieren eines Testergebnisses;
eine Takt erzeugende Einheit zum Erzeugen eines Referenztakts und
eine Steuereinheit zum Steuern; sowie eine Muster erzeugende Platine
zum Empfangen des Testprogramms von dem Konsolen-PC, um ein Testmustersignal
zu erzeugen, Übermitteln
des Testmustersignals an die zu testende Speichervorrichtung sowie
Empfangen und Vergleichen einer Testergebnis-Ausgabe von der Speichervorrichtung,
wobei ein Testmuster erzeugt und ein Test unter Verwendung des oben
genannten Algorithmus-Mustergenerators
durchgeführt
wird.
-
Ebenfalls
wird ein Verfahren zum Testen einer Speichervorrichtung offenbart
unter Verwendung eines Algorithmus-Mustergenerators, welches die folgenden
Schritte aufweist: Erzeugen eines Testprogramms durch Laden und
Kompilieren eines Quellprogramms einschließlich einer Information über einen
Test mit einem Compiler; Übertragen
des Testprogramms an den Algorithmus-Mustergenerator in Übereinstimmung
mit einem der Ansprüche
1 bis 15, um dasselbe in einem internen Instruktionsspeicher zu
speichern; Abrufen einer in dem Testprogramm gespeicherten Instruktion
und Erzeugen eines Testmusters einschließlich einer Befehlslogik, einer Adresslogik
und einer Datenlogik, die auf die zu testende Speichervorrichtung
angewendet werden, wobei ein Test durchgeführt wird; Bestimmen einer durchgefallenen
Speichervorrichtung nach Durchführen
des Tests durch Vergleichen einer Datenausgabe von der Speichervorrichtung
mit einem von dem Algorithmus-Mustergenerator in Übereinstimmung
mit einem der Ansprüche
1 bis 15 erzeugten Wert; sowie Speichern einer Information über den
durchgefallenen Speicher, wenn der durchgefallene Speicher bestimmt
ist.
-
Es
wird ein computer-lesbares Aufzeichnungsmedium vorgesehen, worauf
ein Programm verkörpert
ist, welches die folgenden Funktionen durchführt: Empfangen von einem externen
Konsolen-PC und Speichern eines Testprogramms einschließlich einer
Instruktion zum Durchführen
eines Test; sequenzielles Abrufen der Instruktion von dem Testprogramm
von einem Instruktionsspeicher, wenn der Test durchgeführt wird;
Durchführen
einer Verbindung mit einer externen Vorrichtung; Erzeugen und Bereitstellen
eines Taktsignals mit einer identischen Phase; sowie in Übereinstimmung
mit einem Taktzyklus des Taktsignals, Erzeugen einer Adresslogik,
die für
den Test erforderlich ist, durch eine Adressverwürfelung in Übereinstimmung mit jedem der
Taktzyklen; Erzeugen einer Datenlogik, die für den Test erforderlich ist,
durch eine Datenverwürfelung
in Übereinstimmung
mit jedem der Taktzyklen; sowie Vergleichen eines von der Daten
erzeugenden Einheit erzeugten Datums mit einem Testdatum in Übereinstimmung
mit jedem der Taktzyklen und Speichern einer Information über einen
durchgefallenen Speicher.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGSFIGUREN
-
1 ist
ein Blockdiagramm, welches einen herkömmlichen Tester beispielhaft
darstellt.
-
2 ist
ein Blockdiagramm, welches einen herkömmlichen Algorithmus-Mustergenerator darstellt.
-
3 ist
ein Blockdiagramm, welches einen Speichertester einschließlich eines
Algorithmus-Mustergenerators zum Testen von Speichervorrichtungen
in Übereinstimmung
mit der vorliegenden Erfindung darstellt.
-
4 ist
ein Diagramm, welches eine beispielhafte Konfiguration einer Instruktion
des Algorithmus-Mustergenerators zum Testen von Speichervorrichtungen
in Übereinstimmung
mit der vorliegenden Erfindung darstellt.
-
5 ist
ein Diagramm, welches eine beispielhafte Konfiguration einer Sequenzsteuerungseinheit
des Algorithmus-Mustergenerators zum Testen von Speichervorrichtungen
in Übereinstimmung mit
der vorliegenden Erfindung darstellt.
-
6 ist
ein Diagramm, welches eine beispielhafte Konfiguration einer Adressen
erzeugenden Einheit des Algorithmus-Mustergenerators zum Testen
von Speichervorrichtungen in Übereinstimmung
mit der vorliegenden Erfindung darstellt.
-
7a bis 7c sind
Diagramme, welche eine beispielhafte Konfiguration einer Daten erzeugenden
Einheit des Algorithmus-Mustergenerators zum Testen von Speichervorrichtungen
in Übereinstimmung
mit der vorliegenden Erfindung darstellen.
-
8 ist
ein Diagramm, welches eine beispielhafte Konfiguration einer Daten
vergleichenden Einheit des Algorithmus-Mustergenerators zum Testen
von Speichervorrichtungen in Übereinstimmung mit
der vorliegenden Erfindung darstellt.
-
9 ist
ein Ablaufdiagramm, welches ein Testverfahren unter Verwendung des
Algorithmus-Mustergenerators zum Testen von Speichervorrichtungen
in Übereinstimmung
mit der vorliegenden Erfindung darstellt.
-
10a ist ein Diagramm, welches die Struktur eines
Testprogramms in dem Testverfahren darstellt, in welchem der Algorithmus-Mustergenerator
zum Testen von Speichervorrichtungen in Übereinstimmung mit der vorliegenden
Erfindung verwendet wird.
-
10b ist ein Diagramm, welches ein Beispiel eines
Source-Programms in dem Testverfahren darstellt, in welchem der
Algorithmus-Mustergenerator zum Testen von Speichervorrichtungen
in Übereinstimmung
mit der vorliegenden Erfindung verwendet wird.
-
GENAUE BESCHREIBUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung wird nun unter Bezugnahme auf die beigefügten Zeichnungsfiguren genauer
beschrieben.
-
3 ist
ein Blockdiagramm, welches einen Speichertester einschließlich eines
Algorithmus-Mustergenerators zum Testen einer Speichervorrichtung
in Übereinstimmung
mit der vorliegenden Erfindung darstellt.
-
Unter
Bezugnahme auf 3 weist ein Speichertester 300 in Übereinstimmung
mit der vorliegenden Erfindung eine variable Stromversorgung 310, einen
Konsolen-PC 315, eine Steuereinheit 320 und eine
Muster erzeugende Platine 325 auf. Die Muster erzeugende
Platine 325 weist eine Takt erzeugende Einheit 330 und
einen ALPG 335 auf. Der ALPG 335 weist eine Sequenzsteuereinheit 340,
eine Schnittstelleneinheit 345, ein PLL (Phase Lock Loop) 350, einen
Instruktionsspeicher 355, eine Befehl erzeugende Einheit 360,
eine Adressen erzeugende Einheit 365, eine Daten erzeugende
Einheit 370 sowie eine Daten vergleichende Einheit 375 auf.
Vorzugsweise ist der ALPG 335 als einzelner Chip unter
Verwendung eines FPGA verkörpert.
-
Die
variable Stromversorgung 310 liefert verschiedene Ströme, die
zum Testen einer Speichervorrichtung erforderlich sind. Die variable
Stromversorgung 310 liefert ebenfalls Strom an einen Prüfling (nachfolgend
als "DUT" (Device Under Test)
bezeichnet).
-
Der
Konsolen-PC 315 ist mit der Muster erzeugenden Platine 325 über einen
Rückwandplatinenbus
verbunden. Der Konsolen-PC 315 bietet eine Funktion wie
beispielsweise Übertragen
eines Testprogramms an die Muster erzeugende Platine 325 und
empfängt
und analysiert ebenfalls ein Testergebnis.
-
Die
Steuereinheit 320 bietet eine Steuerung für den Speichertester 300.
-
Obwohl
nicht dargestellt, kann ein Slot zum Installieren eines DUT, zum
Beispiel ein DIMM-Slot, oder
eine DUT-Platine einschließlich
Komponentensockel beinhaltet sein.
-
Die
Muster erzeugende Platine 325 erhält das Testprogramm von dem
Konsolen-PC 315 und erzeugt ein Testmustersignal über den
ALPG 335. Das Testmustersignal wird dann an das DUT übertragen,
und ein Testergebnis wird von der Muster erzeugenden Platine 325 empfangen
und verglichen. Das Ergebnis eines Vergleichs (oder das Testergebnis) kann
an den Konsolen-PC 315 übertragen
und dann analysiert werden.
-
Die
Takt erzeugende Einheit 330 erzeugt einen Referenztakt
und liefert diesen an die Schnittstelleneinheit 345 und
den PLL 350 in dem ALPG 335.
-
Die
Sequenzsteuereinheit 340 ruft sequenziell eine Testprogramminstruktion
von dem Instruktionsspeicher 355 während eines Test ab.
-
Die
Schnittstelleneinheit 345 verbindet den ALPG 335 mit
der variablen Stromversorgung 310, dem Konsolen-PC 315 und
der Steuereinheit 320 über
den Rückwandplatinenbus.
Die Schnittstelleneinheit 345 empfängt ebenfalls einen Takt und
liefert diesen an den PLL 350. Zusätzlich übermittelt die Schnittstelleneinheit 345 das
Testergebnis an den Konsolen-PC 315.
-
Der
PLL 350 setzt eine Phasendifferenz zwischen einem Taktsignal,
das von der Schnittstelleneinheit 345 erhalten wurde, und
einem Taktsignal, das von der Takt erzeugenden Einheit 330 erhalten wurde,
auf null, um ein Taktsignal zu erzeugen, welches eine identische
Phase hat. Die Ausgänge
CK und /CK des PLLs 350 beziehen sich auf einen Takt und
einen invertierten Takt.
-
Der
Instruktionsspeicher 355 empfängt das Testprogramm von dem
Konsolen-PC 315 über
die Schnittstelleneinheit 345 und speichert dieses.
-
Die
Befehl erzeugende Einheit 360 erzeugt eine Befehlslogik,
die für
den Test für
jeden Taktzyklus erforderlich ist. Ein Ausgabesignal CMD[8:0] der Befehl
erzeugenden Einheit 360 bezieht sich beispielsweise auf
einen Befehl, der CS- (chip select, Chipauswahl), RAS- (Row Address
Strobe, Zeilenadressierungstaktimpuls) und CAS- (Column Address Strobe,
Spaltenadresstaktimpuls) Signale beinhaltet, welche ein internes
Befehlssignal eines DDR-SDRAM
sind.
-
Die
Adressen erzeugende Einheit 365 erzeugt eine Adressenlogik,
die für
den Test erforderlich ist, durch eine Adressverwürfelung für jeden Taktzyklus. Ein Ausgabesignal
BA[2:0] der Adressen erzeugenden Einheit 365 bezieht sich
auf eine Bankadresse, ADD[15:0] auf eine physikalische Adresse.
-
Die
Daten erzeugende Einheit 370 erzeugt eine Datenlogik, die
für den
Test erforderlich ist, durch eine Datenverwürfelung für jeden Taktzyklus. Ein Ausgabesignal
DQ[7:0) der Daten erzeugenden Einheit 370 bezieht sich
auf einen Datenbus, welcher eine Dateneingabe/-ausgabe erzeugt,
DQS auf Datentaktimpuls und DM auf ein intern geladenes Signal,
um DQ und DQS in Übereinstimmung
zu bringen.
-
Die
Daten vergleichende Einheit vergleicht ein Datum, das in der Daten
erzeugenden Einheit 370 erzeugt wurde, mit einem Testdatum
für jeden Taktzyklus.
-
4 ist
ein Diagramm, welches eine beispielhafte Konfiguration einer Instruktion
des Algorithmus-Mustergenerators zum Testen einer Speichervorrichtung
in Übereinstimmung
mit der vorliegenden Erfindung darstellt.
-
Unter
Bezugnahme auf 4 weist die Instruktion, die
in dem Instruktionsspeicher 355 gespeichert ist, Sequenzfelder 410a und 410b,
ein Adressfeld 420, ein Datenfeld 430 und ein
Steuerfeld 440 auf.
-
Die
Sequenzfelder 410a und 410b können als ein Opcode 410 und
als Operand 420b klassifiziert werden und zum Berechnen
eines Instruktionspunktes und zum Steuern einer Sequenz des Testprogramms
für jeden
Taktzyklus verwendet werden.
-
Der
Opcode 410a bezieht sich auf einen Operationscode einschließlich NOP
(no operation, keine Operation), SET (Opcode zum Setzen eines Registers),
END (Ende des Musters), PAUSE (Sequenzstopp), JMP (unbedingter Sprung),
JNZ1 bis JNZ8 (bedingte Sprünge,
wenn die entsprechenden Register CX1 bis CX8 nicht null sind), CALL
(Aufruf Subroutine) und RET (Rückkehr
von Subroutine).
-
Der
Operand 420b bezieht sich auf einen Index für einen
Sprung oder für
ein Register, wenn Opcode = SET.
-
Das
Adressfeld 420 ist ein Feld für arithmetische Operationen
zum Erzeugen einer Speicheradresszeile.
-
Ein
ALU-X bezieht sich auf eine Adressoperation einer Zeilenadresse
X eines Speichers, ein ALU-Y bezieht sich auf eine Adressoperation
einer Spaltenadresse Y des Speichers, ein ALU-Z bezieht sich auf
eine Adressoperation einer Bankadresse Z des Speichers, ALU-DX und
ALU-DY beziehen sich auf Adressoperationen von Adressen DX und DY, welche
zusätzliche
Adressen zu den X und Y Adressen sind.
-
Zum
Beispiel sind Codes zum Durchführen von
Adressoperationen wie beispielsweise X = X, X = /X, X = X·2, X =
DX, X = X + DX, X = X – DX,
X = X&DX, X =
X|DX, X = immX (sofortiger Wert der X Adresse), X = X + immX, X
= X – immX,
X = X&immX, X
= X|immX und X = X^immX für
ALU-X beinhaltet. ALU-Y ist gleich zu ALU-X.
-
Die
sofortigen Werte wie beispielsweise immX und immY dienen zum Aufbau
eines Befehlssatzes, so dass Zufallswerte zu einem X- und einem Y-Register
in dem Mikrocode zugeordnet werden können.
-
Codes
zum Durchführen
von Adressoperationen wie beispielsweise Z = Z, Z = 0, Z = /Z, Z
= Z + 1, Z = Z – 1,
Z = Z·2,
Z = Z/2, Z = ZR, Z = 1, Z = 2 und Z = 3 sind für ALU-Z beinhaltet.
-
Codes
zum Durchführen
von Adressoperationen wie beispielsweise DX = DX, DX = 0, DX = /DX, DX
= DX + 1, DX = DX – 1,
DX = DX·2,
DX = DX/2 und DX = XR sind für
ALU-DX beinhaltet. ALU-DY ist gleich zu ALU-DX.
-
ALU-X,
ALU-Y, ALU-DX und ALU-DY werden später genauer mit einer Beschreibung
der Adressen erzeugenden Einheit 365 beschrieben.
-
Das
Datenfeld 430 ist ein Feld für arithmetische Operationen
zum Erzeugen einer Speicherdatenzeile.
-
Ein
ALU-D-Register kann durch eine solche Operation mit einem anfänglichen
Register oder einer Operation mit einem Sofortwert aktualisiert
werden. Ein DP-Feld, welches ein Teil des Datenfelds 430 ist,
ist eine vereinfachte Darstellung einer Datenerzeugung gemäß einem
gegenwärtigen
X-Y Adressstatus. Das ALU-D-Register und das DP-Feld werden schließlich einer
Exklusiv- OR-Operation unterzogen.
-
Codes
zum Durchführen
von Adressoperationen wie beispielsweise D = D, D = /D, D = D·2, D = D/2,
D = DR, D = immD, D = D + immD, D = D – immD, D = D&immD, D = D|immD
und D = D^immD sind für
ALU-D beinhaltet.
-
Das
DP-Feld kann DPO (festes Muster), DP1 (Schachbrettmuster), DP2 (Zeilenstreifenmuster), DP3
(Spaltenstreifenmuster), DP4 (Diagonalmuster) und DP5 (Maskenparität) darstellen.
-
Das
Steuerfeld 440 ist ein Feld, welches einen Speichersteuerung-Signalzustand
sowie ein Echtzeit-Inversionsflag usw. beinhaltet.
-
Das
Steuerfeld 440 stellt beispielsweise CKE (clock enable,
Taktfreigabe), CS (chip select, Chipauswahl), RAS (row address enable,
Freigabe Zeilenadresse), CAS (column address enable, Freigabe Spaltenadresse),
WE (write enable, Freigabe Schreiben), ODT (on-die termination enable,
Terminierungsfreigabe auf dem Die), DMH (data mask at high going
edge, Datenmaske bei steigender Flanke), DML (data mask at low going
edge, Datenmaske bei fallender Flanke), CPEH (compare enable at
high goind edge, Vergleichfreigabe bei steigender Flanke), CPEL
(compare enable at low going edge, Vergleichfreigabe bei fallender
Flanke), ASCROFF (address scramble disable, Sperre Adressverwürfelung),
DSCROFF (data scramble disable, Sperre Datenverwürfelung), AP (auto precharge
enable, Freigabe Auto-Vorspannung),
/X (row address inversion flag, Inversionsflag Zeilenadresse), /Y
(column address inversion flag, Inversionsflag Spaltenadresse),
/Z (bank address inversion flag, Inversionsflag Bankadresse), /D
(data inversion flag, Inversionsflag Daten), AY (column address
enable, Freigabe Spaltenadresse) und I (Interrupt-Flag) dar.
-
5 ist
ein Diagramm, welches eine beispielhafte Konfiguration einer Sequenz-Steuereinheit des
Algorithmus-Mustergenerators zum Testen einer Speichervorrichtung
in Übereinstimmung
mit der vorliegenden Erfindung darstellt.
-
Unter
Bezugnahme auf 5 weist die Sequenz-Steuereinheit 340 ein
Start-Adressregister 510, einen Instruktionszeiger 520,
eine Steuereinheit 530, CX1 bis CX8 550, ein Stack-Register 540 und ein
Flag-Register 560 auf.
-
Das
Start-Adressregister ("STR") 510 ist
ein Register zum Speichern einer Startadresse und ist beispielsweise
ein 10-bit-Register.
-
Der
Instruktionszeiger ("IP") 520 ist
ein Register zum Speichern eines Instruktionszeigers und ist beispielsweise
ein 10-bit-Register. Der Instruktionszeiger 520 lädt und sichert
einen entsprechenden Zeiger von einem Operanden des Instruktionsspeichers 355.
-
Die
Steuereinheit 530 lädt
und steuert eine entsprechende Operation aus dem Opcode des Instruktionsspeichers 355 und
führt Steuerungen
des IP 520, des Stack-Registers 540 und von CX1
bis CX8 550 durch.
-
Das
Stack-Register 540 ist ein Register für einen Stack des Instruktionszeigers
und beispielsweise als ein 16-bit/Tiefe 4 -Register konfiguriert.
-
CX1
bis CX8 sind Register für
einen Instruktionszähler
und beispielsweise als 16-bit-Register konfiguriert.
-
Das
Flag-Register 560 speichert Flag-Daten.
-
6 ist
ein Diagramm, welches eine beispielhafte Konfiguration einer Adressen
erzeugenden Einheit des Algorithmus-Mustergenerators zum Testen
einer Speichervorrichtung in Übereinstimmung
mit der vorliegenden Erfindung darstellt.
-
Unter
Bezugnahme auf 6 weist die Adressen erzeugende
Einheit 365 eine logische Adressen erzeugende Einheit 600a zum
Erzeugen der Zeilenadresse, der Spaltenadresse und der Bankadresse
des Speichers, eine verwürfelte
Adressen erzeugende Einheit 600b zum Erzeugen verwürfelter
Adressen der Zeilenadressen und der Spaltenadressen, und eine Adressen
multiplexende Einheit 600c zum Multiplexen der verwürfelten
Adressen auf, um eine physikalische Adresse zu erzeugen.
-
Die
logische Adressen erzeugende Einheit 600a, die verwürfelte Adressen
erzeugende Einheit 600b und die Adressen multiplexende
Einheit 600c werden nun genauer beschrieben.
-
Eine
Beschreibung der logische Adressen erzeugenden Einheit 600a ist
wie folgt.
-
Das
anfängliche
Register, d.h., das XR 610a, das YR 610b und das
ZR 610c speichert Anfangswerte der Zeilenadresse X, der
Spaltenadresse Y und der Bankadresse.
-
Das
ALU-DX 615a und das ALU-DY 615b empfangen Werte
der anfänglichen
Register XR 610a und YR 610b und führen eine
arithmetische Operation durch, um zusätzliche Adressen DX und DY
zu erzeugen.
-
Das
ALU-X 620a und das ALU-Y 620b empfangen Ausgabewerte
von ALU-DX 615a und ALU-DY 615b und sofortige
Adresswerte immX und immY und führen
eine arithmetische Operation durch, um die Zeilen- und Spaltenadressen
zu erzeugen.
-
Das
ALU-Z 620c empfängt
Werte des anfänglichen
Registers ZR 610c und führt
eine arithmetische Operation durch, um die Bankadresse zu erzeugen.
-
INV 625a, 625b und 625c führen jeweils
eine Inversion der Daten durch, wenn Inversionsflags /X, /Y und
/Z eingegeben werden.
-
Als
Ergebnis werden eine Zeilenadresse X[15:0], eine Spaltenadresse
Y[15:0] und eine Bankadresse Z[2:0] erzeugt. Die Bankadresse Z[2:0)
ist identisch zu BA[2:0], in 3 dargestellt.
-
Eine
Beschreibung der verwürfelte
Adressen erzeugenden Einheit 600b und der Adressen multiplexenden
Einheit 600c ist wie folgt.
-
Eine
Adressverwürfelung
bezieht sich auf eine wechselseitige Konvertierung zum Abgleichen einer
physikalischen Adresse und einer logischen Adresse (als Zeile und
Spalte dargestellt).
-
X[15:0]
und Y[15:0] werden empfangen und dann von einer X-Verwürfelungslogik 630a und Y-Verwürfelungslogik 630b einer
Adressverwürfelung
unterzogen. In diesem Fall kann das Verwürfeln basierend auf einem Referenzdatum
zum Verwürfeln durchgeführt werden,
welches jeweils in Verwürfelungstabellen 650a und 650b gespeichert
ist. Die in den Verwürfelungstabellen 650a und 650b gespeicherten
Daten sind eindeutige Daten zum Erzeugen von Speicheradressdaten,
welche von jedem Speichervorrichtungshersteller abhängen.
-
Multiplexer 635a und 635b empfangen
Ausgaben von den Verwürfelungslogiken 630a und 630b,
X[15:0] und Y[15:0] und führen
das Multiplexen durch. In diesem Fall werden ein ASCRAM_EN- (Sperre
Adressverwürfelung)
Flag und ein ASCROFF- (Sperre Echtzeit-Adressverwürfelung) Flag empfangen und
gemultiplext.
-
Operationslogiken 640a und 640b empfangen
Ausgaben von Multiplexern 635a und 635b und führen verschiedene
Operationen durch, um ein Xn[15:0] und ein Yn[15:0] zu erzeugen.
Xn und Yn beziehen sich auf Verwürfelungsadressen,
die zu Verwürfelungslogiken
konvertiert wurden.
-
Xn
und Yn erfüllen
Gleichungen Xn = NOT(Xi Logik Xj) Yn = NOT(Yi Logik Yj), wobei n,
i und j ganze Zahlen im Bereich von 0 bis 15 sind und Logik NOP-
(Nicht-Operation), AND-, OR-, XOR-Operationen sind.
-
Xn
und Yn sind physikalische Adressen und können nicht gleichzeitig eingegeben
werden. Dementsprechend wird das Adressdatum A[15:0] durch Multiplexen
erzeugt. A[15:0] ist identisch mit ADD[15:0], dargestellt in 3.
-
Eine
Adressen multiplexende Einheit 645 weist Multiplexer 645 auf.
Die Adressen multiplexende Einheit 645 empfängt Xn[15:0],
Yn[15:0] und einen AY (Y-Adress-Auswahl-Flag), und führt Multiplexen durch, um das
physikalische Adressdatum A[15:0] zu erzeugen.
-
7 ist ein Diagramm, welches eine beispielhafte
Konfiguration einer Daten erzeugenden Einheit des Algorithmus-Mustergenerators
zum Testen einer Speichervorrichtung in Übereinstimmung mit der vorliegenden
Erfindung darstellt.
-
Unter
Bezugnahme auf 7 weist die Daten erzeugende
Einheit 370 eine logische Daten erzeugende Einheit 700a,
eine verwürfelte
Daten erzeugende Einheit 700b, eine Serialisierungseinheit 700c und
eine Deserialisierungseinheit 700d auf.
-
7a stellt
eine beispielhafte Konfiguration der logische Daten erzeugenden
Einheit 700a und der verwürfelte Daten erzeugenden Einheit 700b dar, 7b stellt
eine beispielhafte Konfiguration der Serialisierungseinheit 700c dar,
und 7c stellt eine beispielhaft Konfiguration der
Deserialisierungseinheit 700d dar.
-
Eine
genaue Beschreibung der logische Daten erzeugenden Einheit 700a ist
wie folgt.
-
Ein
anfängliches
Register ("DR") 710 ist
ein Register zum Speichern eines Anfangswertes eines Datums.
-
Die
ALU-D 720 empfängt
den DR-Wert und immD (Sofortwert des Datums), um eine arithmetische
Operation durchzuführen.
-
Die
Datenmuster erzeugende Einheit 725 empfängt die Signale von der Adressen
erzeugenden Einheit 365 X[15:0], Y[15:0] und das DP-Auswahl- (Datenmusterauswahl)
signal, um ein Datenmuster zu erzeugen.
-
DCMR
(Data Complement Mask Register, Datenkomplement-Maskenregister) 730 ist
ein Register zum Speichern eines Maskendatums zum Datenkomplement,
und beispielsweise als ein 16-bit-Register konfiguriert.
-
DFLG
(konsistentes Dateninversions-Flag) 735 ist ein Register
zum Speichern eines Werts für Dateninversion.
-
Das
Maskendatum aus DCMR 730 wird durch einen Inverter 740a invertiert.
Der invertierte Wert und /D (Echtzeitdatumsinversions-Flag) werden einer
AND-Operation in einer AND-Logik 740 unterzogen.
-
Ausgabewerte
des ALU-D 720, der AND-Logik 740, der DFLG 735 und
einer Ausgabe der Datenmuster erzeugenden Einheit 725 werden
einer Exklusiv- OR-Operation in Exklusiv-OR-Logik 750 unterzogen, um
D[15:0] zu erzeugen.
-
Eine
genaue Beschreibung der verwürfelte Daten
erzeugenden Einheit 700b ist wie folgt:
Die Verwürfelung
von Daten ist als eine Funktion einer Adresse dargestellt. Da Verfahren
zum Minimieren einer Fläche
eines Layouts abhängig
von Speicherherstellern unterschiedlich sind, ist das Verwürfeln von
Daten ein Vorgang für
Konformität.
-
D[15:0]
wird empfangen, und eine Datenverwürfelung wird in einer Datenverwürfelungslogik 755 durchgeführt. In
diesem Fall kann die Verwürfelung durchgeführt werden
basierend auf einem Verwürfelungsdatum
in einer Datenverwürfelungstabelle 760. Das
darin gespeicherte Datum ist ein eindeutiges Datum zum Erzeugen
von Daten abhängig
von jedem Speichervorrichtungshersteller.
-
Ein
Mulitplexer 765 empfängt
und multiplext eine Ausgabe der Datenverwürfelungslogik 755, X[3:0]
und Y[3:0]. In diesem Fall wird ein DSCRAM_EN- (Sperre Datenverwürfelung)
Flag und ein DSCROFF- (Sperre Echtzeitdatenverwürfelung) Flag empfangen und
dem Multiplexen unterzogen. Ein Ausgabewert Dn[15:0] ist ein von
der Datenverwürfellogik 755 konvertierter
Wert des Datums [15:0]. Dout [15:0] hat die gleiche Bedeutung wie
Dn[15:0], und sie sind Symbole, um ein Register und ein Netz zu
unterscheiden.
-
Eine
Operationslogik 770 empfängt einen Ausgabewert von dem
Multiplexer 765 und führt
verschiedene Operationen durch, um einen Dout[15:0] zu erzeugen.
In dem Dout[15:0] ist definiert, dass Dn = NOT(Ai Logik Aj), wobei
n eine ganze Zahl im Bereich von 0 bis 7 ist, A = X oder A = Y,
i und j ganze Zahlen im Bereich von 0 bis 3 sind, und Logik NOP (keine
Operation), AND, OR und XOR-Logiken sind.
-
Dout[15:0]
ist Eingabe als ein DQ-Signal des Speichers durch Serialisierung.
Da das DQ-Signal des
Speichers bidirektional ist und sowohl für Eingabe als auch Ausgabe
verwendet wird, ist ein Wert von Dout Ausgabe an eine DQ-Zeile,
wenn in den Speicher geschrieben wird, und wird als Din durch Deserialisierung
der DQ-Zeile verwendet, wenn von dem Speicher gelesen wird. Um diese
Funktionen durchzuführen,
weist die Daten erzeugende Einheit 375 die Serialisierungseinheit 700c und
die Deserialisierungseinheit 700d für Daten auf.
-
Dout[15:0]
ist in zwei Bereiche geteilt, nämlich
DH[7:0] und DL[7:0], jeweils als Eingabe zu D-Flipflops 775a und 775b,
und als Ausgabe, welche eine Änderung
eines Werts wiederspiegelt gemäß einer
steigenden Flanke oder einer fallenden Flanke des Ausgangstaktes.
Eine Ausgabe von jedem der Flipflops 775a und 775b wird
von einem Multiplexer 780a basierend auf der steigenden
Flanke oder der fallenden Flanke des Ausgangstaktes gemultiplext und
dann von einem Inverter 790 invertiert, um serialisiertes
Ausgabesignal DQ[7:0] auszugeben.
-
Im
Hinblick auf die Deserialisierung ist das DQ[7:0]-Signal Eingabe
für jedes
der D-Flipflops 775c und 775d von der Speichervorrichtung,
und DH[7:0] und DL[7:0] werden jeweils in den D-Flipflops 775c und 775d von
einem Eingangstakt-Signal erzeugt. Der Eingangstakt wird invertiert
und dann in das D-Flipflop 775d und ein Latch 775e eingegeben. Ausgaben
von Latch 775e und dem D-Flipflop 775d werden
zu Ausgabe Din[15:0] summiert.
-
8 ist
ein Diagramm, welches eine beispielhafte Konfiguration einer Daten
vergleichenden Einheit des Algorithmus-Mustergenerators zum Testen
einer Speichervorrichtung in Übereinstimmung mit
der vorliegenden Erfindung darstellt.
-
Unter
Bezugnahme auf 8 weist die Daten vergleichende
Einheit 375 einen digitalen Komparator 810, Auswahleinheit
für durchgefallenen Speicher 820,
ein FMSR 830 und ein Fehlermoderegister 840 auf.
-
Der
digitale Komparator 810 empfängt Din[15:0], welches ein
Signal von der Daten vergleichenden Einheit 375 ist, und
Dout[15:0], und führt
einen Datenvergleich derselben durch, um Cout[15:0] auszugeben.
In diesem Fall wird ein CPE- (Freigabe Vergleich) Signal eingegeben,
um den Datenvergleich durchzuführen.
Das heißt,
der Din, welcher von dem Speicher gelesen wird, und erwartete Wert Dout
werden in dem Komparator verglichen, um entsprechende Informationen
zu speichern, wenn ein Defekt auftritt.
-
Die
durchgefallenen Speicher auswählende Einheit 820 empfängt Din[15:0],
Dout[15:0], X[15:0], Y[15:0], Xn[15:0] und Yn[15:0], um einen durchgefallenen
Speicher auszuwählen.
In diesem Fall kann die durchgefallenen Speicher auswählende Einheit 820 Werte
von dem FMSR (Fail Memory Start Register, durchgefallener Speicher-Startregister) 830 und
dem Fehlermoderegister 840 auslesen.
-
Ein
Verfahren zum Testen der Speichervorrichtung unter Verwendung des
Algorithmus-Mustergenerators
wird nun genauer unter Bezugnahme auf die beigefügten Zeichnungsfiguren beschrieben.
-
9 ist
ein Ablaufdiagramm, welches ein Testverfahren unter Verwendung des
Algorithmus-Mustergenerators zum Testen einer Speichervorrichtung
in Übereinstimmung
mit der vorliegenden Erfindung darstellt.
-
Unter
Bezugnahme auf 9 wird ein Quell-Programm geladen. 10 zeigt ein Beispiel des Quell-Programms,
wobei 10a eine Struktur des Quell-Programms
darstellt und 10b ein tatsächliches Beispiel des Quell-Programms
darstellt.
-
Wie
in 9 und 10 dargestellt,
ist das Quell-Programm ein Programm, welches einen Speichermusteralgorithmus
und Register beschreibt. Das Quell-Programm kann in einen Bereich 1010 zum Definieren
eines Makros, einen Registeranfangsblock 1020 zum Definieren
eines Anfangswerts des Registers, einen Startfunktionsblock 1030 zum
Beschreiben einer Testfunktion und einem Subfunktionsblock 1040 zum
Beschreiben einer Subfunktion geteilt sein.
-
10b stellt einen Teil des tatsächlichen Beispiels des Quell-Programms
dar.
-
Das
auf diese Weise geschriebene Quell-Programm wird von dem Konsolen-PC
geladen und von einem Compiler kompiliert, um ein Testprogramm (S110)
zu erzeugen. Das Quell-Programm und
der Compiler werden durch TTL (Turbo Test Language) und einem von
dem Anmelder entwickelten TTL-Kompiler zu Beispielzwecken beschrieben. Äquivalente
Programme können
verwendet werden.
-
Das
von dem Compiler kompilierte Testprogramm wird von dem Konsolen-PC
an ALPG in dem Speichertester in Übereinstimmung mit der vorliegenden
Erfindung übertragen,
um in einem internen Instruktionsspeicher (S130) gespeichert zu
werden.
-
Das
Testprogramm wird in dem ALPG analysiert, um ein Testmuster zu erzeugen.
Das Testmuster wird auf die zu testende Speichervorrichtung angewendet,
um einen Test durchzuführen
(S150). Das heißt,
eine in dem Testprogramm gespeicherte Instruktion wird ausgelesen,
und das Testmuster einschließlich
einer Befehlslogik, einer Adresslogik und einer Datenlogik, die
für den
Test notwendig sind, wird erzeugt und auf die zu testende Speichervorrichtung
angewendet, um den Test durchzuführen.
-
Nachdem
der Test durchgeführt
wurde, wird eine Datenaufgabe von der Speichervorrichtung mit einem
erwarteten Wert, der von dem ALPG in Übereinstimmung mit der vorliegenden
Erfindung erzeugt wurde, verglichen, um eine durchgefallene Speichervorrichtung
zu bestimmen.
-
Wenn
die durchgefallene Speichervorrichtung bestimmt ist, werden Informationen über den durchgefallenen
Speicher gespeichert.
-
Wie
oben beschrieben, bietet der Speichertester zum Durchführen eines
Tests auf einer Speichervorrichtungsmodulebene oder einer Komponentenebene
in Übereinstimmung
mit der vorliegenden Erfindung einen Algorithmus-Mustergenerator
zum Testen einer Speichervorrichtung mit einer Konfiguration, welche
eine Konfiguration eines Speichertesters einschließlich einer
Adressverwürfelung
und einer Datenverwürfelung
optimieren kann.
-
Obwohl
die vorliegende Erfindung insbesondere unter Bezug auf die bevorzugte
Ausführungsform
derselben dargestellt und beschrieben wurde, wird dem Durchschnittsfachmann
offenbar werden, dass verschiedene Änderungen in Form und Details daran
durchgeführt
werden können,
ohne von dem Schutzbereich der Erfindung wie durch die beigefügten Patentansprüche definiert
abzuweichen.