DE10147910A1 - Speichertester weist Speichersätze auf, die für die Verwendung als Fehlererfassungs-RAM, Etiketten-RAM, Pufferspeicher und Stimulus-LOG-RAM konfigurierbar sind - Google Patents

Speichertester weist Speichersätze auf, die für die Verwendung als Fehlererfassungs-RAM, Etiketten-RAM, Pufferspeicher und Stimulus-LOG-RAM konfigurierbar sind

Info

Publication number
DE10147910A1
DE10147910A1 DE10147910A DE10147910A DE10147910A1 DE 10147910 A1 DE10147910 A1 DE 10147910A1 DE 10147910 A DE10147910 A DE 10147910A DE 10147910 A DE10147910 A DE 10147910A DE 10147910 A1 DE10147910 A1 DE 10147910A1
Authority
DE
Germany
Prior art keywords
memory
test
address
dut
tester
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10147910A
Other languages
English (en)
Inventor
John H Cook
Stephen D Jordan
Preet P Singh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Verigy Singapore Pte Ltd
Original Assignee
Agilent Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agilent Technologies Inc filed Critical Agilent Technologies Inc
Publication of DE10147910A1 publication Critical patent/DE10147910A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor

Abstract

Die verschiedenen Funktionen, die für einen inneren Testspeicher innerhalb eines Speichertesters wünschenswert sind, sind in Speichersätzen implementiert, die jeweils als der Host für eine oder manchmal mehrere solcher Funktionen dienen. Aufgrund seiner Größe und des Wunschs nach zweckorientierten Hochgeschwindigkeitsdatenwegen kann ein ECR einen gesamten Speichersatz für sich selbst erfordern. Eine vollständige Sammlung von Etiketten-RAM kann in einem weiteren Speichersatz positioniert sein. Falls nötig, könnten Pufferspeicher in noch einem weiteren Speichersatz positioniert sein. Eine Sammlung von Etiketten-RAM braucht vielleicht nicht die gesamte Breite des systemeigenen Worts, das durch den Speichersatz implementiert ist, und kann doch den gleichen Bereich an Adressen zeigen. Etiketten-RAM können Seite an Seite an den gleichen Adressen positioniert sein, indem das Schmal-Wort-Merkmal ausgenutzt wird. Die gleiche Ökonomie kann für Pufferspeicher erreicht werden. Obwohl diese unterschiedlichen Verwendungen von innerem Testspeicher innerhalb eines Speichersatzes in der Tat an beliebigen Positionen innerhalb des Adreßraums dieses Speichersatzes positioniert sind, ist es bezüglich der algorithmischen Prozesse innerhalb des Testprogramms wünschenswert, daß es so scheint, als ob dieselben durch die gleichen Adressen oder durch Adressen, die von der Architektur derselben abgeleitet sind, adressiert werden, die an das DUT angelegt werden. Dies wird durch Vermehren der ...

Description

Diese Offenbarung bezieht sich auf Informationen, die in der US-Patentanmeldung mit der Seriennummer (unbekannt) mit dem Titel ERROR CATCH RAM FOR MEMORY TESTER HAS SDRAM MEMORY SETS CONFIGURABLE FOR SIZE AND SPEED, eingereicht am 20. September 2000, erscheinen, und dieselbe ist aus den nachfolgenden Gründen hierin ausdrücklich durch Bezugnahme aufgenommen. Der Gegenstand der vorliegenden Offenbarung betrifft einen Abschnitt des Betriebs eines ziemlich großen und komplexen Systems zum Testen von Halbleiterspeichern. Der beschriebene Speichertester enthält ein umfassendes Speicherteilsystem als eine Komponente in dem Gesamtpara­ digma zum Durchführen von Tests. Bestimmte Fähigkeiten die­ ses Speicherteilsystems sind hierin von Interesse, da die­ selben als die bevorzugte Basis für einige der neuartigen Gegenstände dienen, die offenbart werden. Aus Wirtschaft­ lichkeitsgründen bei dem Produkt und begünstigt durch den Wunsch, große Mengen an Speicher in dem Tester zur Verfü­ gung zu haben, wurde ein Weg entwickelt, um unaufwendigen Speicher (DRAM, der langsam ist, wenn direkt auf denselben zugegriffen wird) als Ersatz für aufwendigen SRAM zu ver­ wenden, der schnell ist, selbst wenn direkt auf denselben zugegriffen wird. Wenn das Ergebnis mit verschiedenen ande­ ren Speicherteilsystemmerkmalen kombiniert wird, ist das­ selbe eine sehr komplexe Angelegenheit, die das Multiplexen zwischen Gruppen und Verschachteln zwischen Bänken umfaßt, und auch das Implementieren von Dingen wie z. B. eine varia­ ble Wortbreite. Andererseits könnten die speziellen Merkma­ le, die hier offenbart werden sollen, in einem System im­ plementiert werden, das nur SRAM verwendet, mit einer we­ sentlichen Reduzierung der Komplexität. Dies würde jedoch einen wesentlichen ökonomischen Mehraufwand bedeuten, der wahrscheinlich bewirken würde, daß das fertige Produkt eher eine technische Rarität und keine brauchbare kommerzielle Technik wäre. Bei dieser Offenbarung wurde ein Mittelweg gewählt, wobei nicht vorgegeben wird, daß das System voll­ ständig aus SRAM hergestellt wird, obwohl dies sicherlich durchführbar wäre. Die DRAM-Technik ist selbstverständlich enthalten, aber viele der kleinen Details über den inneren Betrieb dieser DRAM-Technik wurden weggelassen, statt des­ sen wird eine gemäßigte Beschreibung der Grundprinzipien derselben gegeben. Selbst ein flüchtiger Leser wird zu dem Schluß kommen, daß viel interessantes Material (z. B. die unterschiedlichen Verschachtelungs- und Adressierschemata und deren Verbindung zu den unterschiedlichen Betriebswei­ sen) weggelassen wurde. Jeder Leser wird jedoch bei der Re­ flexion erkennen, daß die Techniken und Merkmale, die of­ fenbart werden sollen, nicht fundamental von dem ausgelas­ senen Material abhängen, obwohl dieselben in einigen Fällen leicht davon beeinflußt werden können. Somit liegt hier ein Fall von mehreren Einzelheiten vor, die nur am Rand mit den Hauptthemen zu tun haben. Die oben erwähnte aufgenommene Offenbarung liefert eine große Menge an Details bezüglich der DRAM-Technik. Diejenigen, die den Eindruck haben, daß die vorliegende Offenbarung mehr Fragen über das Speicher­ teilsystem aufwirft, als sie beantwortet, können in der eingeschlossenen Offenbarung Antworten bekommen. Aus diesem Grund wurde die Existenz derselben bekannt gemacht, indem dieselbe hierin durch Bezugnahme aufgenommen wurde.
Allerdings gibt es eine Warnung für diejenigen, die die Lehren dieser zwei Offenbarungen kombinieren möchten. Die aufgenommene Offenbarung vertritt die Ansicht, daß die Ge­ samtheit des Speichers von Interesse als Fehlererfassungs- RAM (Error Catch RAM = ECR) bezeichnet wird, und daß der­ selbe in Speichersätze unterteilt ist. Diese Ansicht funk­ tioniert bei der aufgenommen Offenbarung ohne Schwierigkei­ ten, da bei dieser Offenbarung ein ECR beinahe die einzige Speicherfunktion von Interesse ist, auch wenn die Existenz anderer solcher Funktionen angedeutet wird. Bei der Refle­ xion während der Vorbereitung der vorliegenden Anmeldung wurde jedoch herausgefunden, daß es praktischer ist, die Gesamtheit des Speichers von Interesse mit der Verwendung des Begriffs "innerer Testspeicher" zu beschreiben, der wiederum aus vier getrennten und unabhängigen Speichersät­ zen zusammengesetzt ist, in denen die verschiedenen funk­ tionalen Speichermechanismen (einschließlich eines ECR) durch geeignete Konfiguration definiert werden könnten. Da­ her würde es so erscheinen, als wären die Speichersätze in der aufgenommenen Offenbarung in einem ECR enthalten, wäh­ rend es hierin umgekehrt ist. Trotzdem beziehen sich beide Offenbarungen auf Gegenstände, die in dem gleichen Gesamt­ system gefunden werden. Der Unterschied ist überwiegend ei­ ne Frage der Terminologie und jede scheinbare Inkonsistenz zwischen den beiden Offenbarung verschwindet, wenn die Ein­ zelheiten des Speicherteilsystembetriebs auf unterer Ebene betrachtet werden. Um dem interessierten Leser diese Ein­ zelheiten aufgenommene eingeschlossene Offenbarung hinge­ wiesen.
Im täglichen Leben sind elektronische Geräte und deren Lei­ stungsfähigkeiten mittlerweile weit verbreitet. Außer dem Personalcomputer zu Hause tragen viele Menschen mehr als ein Produktivitätsgerät für die verschiedensten Zwecke mit sich. Die meisten persönlichen elektronischen Produktivi­ tätsgeräte umfassen eine Form von nicht-flüchtigem Spei­ cher. Mobiltelephone verwenden nicht-flüchtige Speicher, um benutzerprogrammierte Telephonnummern und Konfigurationen zu speichern und zu erhalten, wenn die Leistung abgeschal­ tet ist. PCMCIA-Karten verwenden nicht-flüchtigen Speicher, um Informationen zu speichern und zu erhalten, selbst wenn die Karte von ihrem Schlitz in dem Computer entfernt ist. Viele andere weit verbreitete elektronische Geräte profi­ tieren ebenfalls von der Langzeitspeicherfähigkeit von nicht-flüchtigem Speicher in nicht-betriebenen Anordnungen. Die Hersteller von nicht-flüchtigen Speichern, die an die Hersteller von elektronischer Ausrüstung verkaufen, erfor­ dern Tester, um den richtigen Betrieb der Speicher, die sie herstellen, auszuführen und zu verifizieren. Aufgrund der Menge an nicht-flüchtigen Speichern, die hergestellt werden und bei fortlaufend niedrigen Preisen verkauft werden, ist es sehr wichtig, die Zeit zu minimieren, die benötigt wird, um ein einzelnes Teil zu testen. Aufgrund der Kosteneinspa­ rungen im Zusammenhang mit der Praxis des Einbauens der Speicherelemente in teurere Anordnungen mit minimalem oder ohne Testen fordern die Käufer von nicht-flüchtigen Spei­ chern von den Speicherherstellern, daß dieselben hohe Ver­ sanderträge erzielen. Dementsprechend muß der Speichertest­ prozeß ausreichend effizient sein, um einen großen Prozent­ satz von fehlerhaften Teilen und vorzugsweise alle fehler­ haften Teile in einem einzigen Testprozeß zu identifizie­ ren.
Während nicht-flüchtige Speicher größer, dichter und kom­ plexer werden, müssen die Tester in der Lage sein, die er­ höhte Größe und Komplexität zu bearbeiten, ohne die Zeit wesentlich zu erhöhen, die benötigt wird, um dieselben zu testen. Die Speichertester laufen normalerweise ununterbro­ chen, und die Testzeit wird als Hauptfaktor bei den Kosten des Endteils angesehen. Während sich Speicher entwickeln und verbessern, muß der Tester in der Lage sein, sich leicht an die Änderungen anzupassen, die an dem Element durchgeführt wurden. Ein weiteres spezifisches Thema beim Testen nicht-flüchtiger Speicher ist, daß wiederholte Schreibvorgänge auf Zellen der Speicher die Gesamtlebens­ dauerleistungsfähigkeit des Teils verschlechtern können. Die Hersteller von nicht-flüchtigen Speichern haben auf viele der Testaufgaben durch Einbauen spezieller Testmodi in die Speicherelemente reagiert. Diese Testmodi werden von dem Käufer des Speichers überhaupt nicht verwendet, aber der Hersteller kann auf dieselben zugreifen, um alle oder wesentliche Abschnitte der Speicher in so kurzer Zeit wie möglich und so effizient wie möglich zu testen. Einige nicht-flüchtige Speicher können auch während dem Testprozeß repariert werden. Der Tester sollte daher in der Lage sein, folgendes zu identifizieren: eine benötigte Reparatur, eine Position der Reparatur, den Typ der benötigten Reparatur, und muß dann in der Lage sein, die geeignete Reparatur durchzuführen. Ein solcher Reparaturprozeß erfordert, daß ein Tester in der Lage ist, einen spezifischen fehlerhaften Abschnitt des Speichers zu erfassen und abzutrennen. Um die gesamten Vorteile der speziellen Testmodi als auch der Re­ paraturfunktionen zu erhalten, ist es für einen Tester von Vorteil, in der Lage zu sein, ein Testprogramm auszuführen, das eine bedingte Verzweigung auf der Basis einer erwarte­ ten Ansprache von dem Element unterstützt.
Von einer konzeptionellen Perspektive aus ist der Prozeß des Testens von Speichern ein algorithmischer Prozeß. Als Beispiel umfassen typische Tests das sequentielle Inkremen­ tieren oder Dekrementieren von Speicheradressen, während Nullen und Einsen in die Speicherzellen geschrieben werden. Es ist gebräuchlich, eine Ansammlung von Einsen und Nullen, die während einem Speicherzyklus geschrieben oder gelesen werden, als einen "Vektor" zu bezeichnen, während sich der Begriff "Struktur" auf eine Sequenz von Vektoren bezieht. Es ist bei Tests gebräuchlich, Schreibstrukturen, wie z. B. Schachbretter, laufende Einsen und Schmetterlingsstrukturen in den Speicherplatz aufzunehmen. Ein Testentwickler kann mit der Hilfe von algorithmischen Elementen ein solches Programm zum Erzeugen dieser Strukturen leichter und effi­ zienter erzeugen. Eine Teststruktur, die algorithmisch ko­ härent ist, ist außerdem bei der Fehlersuche einfacher, und logische Verfahren sind zum Isolieren von Abschnitten der Struktur, die nicht wie erwartet funktionieren, leichter zu verwenden. Eine Teststruktur, die unter Verwendung von An­ weisungen und Befehlen, die in Programmierschleifen wieder­ holt werden, algorithmisch erzeugt wurde, verbraucht in dem Testerspeicher weniger Platz. Dementsprechend ist es wün­ schenswert, in einem Speichertester eine algorithmische Teststrukturerzeugungsfähigkeit zu haben.
Die genaue Signalflankenplazierung und -erfassung ist eben­ falls eine Erwägung bei der Effektivität eines nicht­ flüchtigen Testers. Um Teile zu erfassen, die im allgemei­ nen einem Medianwert entsprechen, während sie nicht inner­ halb der spezifizierten Spanne entsprechen, muß ein nicht­ flüchtiger Speichertester in der Lage sein, jede Signal­ flanke bezüglich der Zeit zu einer anderen Signalflanke präzise zu plazieren. Es ist außerdem wichtig, daß derselbe in der Lage ist, genau zu messen, zu welchem Zeitpunkt eine Signalflanke empfangen wird. Dementsprechend sollte ein nicht-flüchtiger Speichertester ausreichend Flexibilität aufweisen und Steuerung der Zeitgebung und Plazierung von Stimuli und Antworten von dem zu testenden Gerät (Spei­ cher).
Die Speichertester sollen Sendevektoren erzeugen, die an das DUT (device under test - zu testendes Gerät) angelegt werden (Stimulus) und Vektoren empfangen, die als Reaktion erwartet werden (Antwort). Die algorithmische Logik, die diese Vektoren erzeugt, kann dies im allgemeinen durchfüh­ ren, ohne sich damit zu befassen, wie ein spezielles Bit in einem Vektor von oder zu einer speziellen Signalanschlußstelle in dem DUT gelangt. An dieser Ebene erscheint es beinahe so, als gäbe es eine Gewißheit, daß benachbarte Bits in dem Vektor auch als physikalisch benachbarte Signale an dem DUT ankommen. Wenn es nur so einfach wäre!
In der Realität neigt die Korrespondenz zwischen den Bits in einem Vektor auf der "konzeptionellen Ebene" und den tatsächlichen Signalen in dem DUT dazu, eher willkürlich zu sein. Falls nichts getan wird, um dies zu vermeiden, kann es notwendig werden, einen oder mehrere Sondendrähte zu kreuzen, da dieselben von einer Peripherie herunterhängen, um mit dem DUT in Kontakt zu kommen. Ein solches Kreuzen ist überhaupt nicht wünschenswert und es ist Konvention, einen Abbildungsmechanismus in den Weg des Sendevektors einzubauen, um die Bitpositionen in dem Sendevektor neu an­ zuordnen, bevor dieselben an das DUT angelegt werden, so daß die Aufgabe des Herstellens von physikalischem Kontakt nicht durch Kreuzungen belastet ist. Empfangsvektoren wer­ den entsprechend an einen umgekehrten Abbildungsmechanismus angelegt, bevor dieselben bearbeitet werden. Auf diese Wei­ se wird es den algorithmischen Vektorerzeugungs- und Ver­ gleichsmechanismen ermöglicht, diesen gesamten Bereich zu ignorieren. Als weiteres Beispiel dessen, was solche Abbil­ der und Umkehrabbilder durchführen können, bedenke man den Fall, in dem ein anderes Beispiel des gleichen Typs von DUT auf dem gleichen Wafer ausgebreitet ist, aber mit einer Ro­ tation oder einer gespiegelten Symmetrie, um zu verhindern, daß Platz auf dem Wafer verschwendet wird. Diese Praktiken haben außerdem einen Effekt auf die Korrespondenz zwischen Vektorbitposition und physikalischer Signalposition, die aber durch die geeigneten Abbildungen und Umkehrabbildungen verdeckt werden können. Es ist zu erkennen, daß die Abbil­ dungen und Umkehrabbildungen, die für diese Situationen be­ nötigt werden, statisch sind, sobald sie für ein spezielles DUT identifiziert sind, und während dem Testverlauf für dieses spezielle DUT nicht geändert werden müssen.
Speichertester weisen einen inneren Testspeicher auf, der verwendet wird, um den Testprozeß zu ermöglichen. Dieser innere Testspeicher kann für mehrere Zwecke verwendet wer­ den, unter anderem für das Speichern von Sendevektoren zeitlich im voraus, im Gegensatz zum Erzeugen derselben in Echtzeit, das Speichern von Empfangsvektoren und das Spei­ chern einer Vielzahl von Fehleranzeigen und anderer Infor­ mationen bezüglich des DUT-Verhaltens, die während des Te­ stens erhalten werden. (Es gibt außerdem organisatorische Zwecke in dem Betrieb des Speichertesters, die SRAM verwen­ den, und von denen es scheint, als ob sie in den Bereich des Begriffs "innerer Speicher" fallen. Diese gehören nur zu dem inneren Betrieb des Testes, sind auf der algorithmi­ schen Ebene meistens nicht sichtbar und sind mit inneren Steuerregistern vergleichbar. Dieser Speicher wird als "in­ nerer Steuerspeicher" beschrieben, und ist von dem ausge­ schlossen, was hierin mit dem Begriff "innerer Testspei­ cher" gemeint ist, der hierin verwendet wird, um einen Speicher zu beschreiben, der verwendet wird, um Bitstruktu­ ren zu speichern, die direkt auf den Stimulus und die Ant­ wort von dem DUT bezogen sind. Es ist offensichtlich, daß dieser innere Testspeicher mindestens so schnell arbeiten muß wie die Tests durchgeführt werden, es ist ein sehr ge­ bräuchliches Paradigma für den inneren Testspeicher (oder einen Abschnitt desselben) von der gleichen Adresse (oder einer Ableitung derselben) adressiert zu werden, die auch an das DUT angelegt wird. Was dann an dieser adressierten Position in dem inneren Testspeicher gespeichert ist, ist etwas, das das DUT-Verhalten während einem Testvorgang zeigt, der an dem DUT an dieser Adresse durchgeführt wird. Algorithmische Betrachtungen innerhalb des Testprogramms können bedeuten, daß die Sequenz von Adressen, die nachfol­ genden Sendevektoren zugeordnet ist, beliebig sein kann. Somit muß der innere Speicher die beiden Attribute von ho­ her Geschwindigkeit und Zufallsadressierbarkeit aufweisen. Mit SRAM wird unmittelbar verknüpft, daß derselbe schnell, leicht zu steuern und tolerant gegenüber einer vollständi­ gen Zufallsadressierung ist. In der Tat haben herkömmliche Speichertester SRAM als ihren inneren Testspeicher verwen­ det.
Leider ist SRAM ziemlich teuer, und dies hat die Menge an innerem Testspeicher begrenzt, mit denen Speichertester zu arbeiten hatten. Die Folge sind Begrenzungen der Speicher­ testerfunktionalität, die durch einen Mangel an Speicher auferlegt werden. Ein DRAM ist wesentlich kostengünstiger, kann aber keine Zufallsadressierung tolerieren und dennoch bei hoher Geschwindigkeit arbeiten. Ein DRAM ist intern or­ ganisiert, um ein übermäßig langes Vorladen einer adres­ sierten "Zeile" mit RAS (Row Address Strobe = Aktivierungs­ signal für die Adreßzeile) zu erfordern, gefolgt von dem Spezifizieren einer adressierten "Spalte" mit CAS (Column Adress Strobe = Aktivierungssignal für die Adreßspalte). Eine Speichersteuerung wandelt eine einheitliche Adresse in Zeilen- und Spaltenkomponenten um, die mit RAS uns CAS an­ gewendet werden. Der DRAM ist oft ausreichend schnell, wenn, sobald eine Zeile vorgeladen ist, eine weitere Adres­ sierung auf Spalten entlang dieser Zeile begrenzt werden kann (d. h. weitere Beispiele von CAS, aber keine von RAS). Eine solche algorithmische Beschränkung des Testerbetriebs (die die Fähigkeit beeinträchtigt, das DUT beliebig zu adressieren) ist im allgemeinen nicht akzeptabel, und daher nicht zuverlässig, um den Hochgeschwindigkeitsbetrieb zu liefern, der für die Verwendung als innerer Testspeicher innerhalb eines Speichertestes benötigt wird. Es wäre wün­ schenswert, wenn die Größe des inneren Testspeichers durch Verwenden des DRAM sowohl erhöht als auch die Kosten des­ selben reduziert werden könnten, und diese Vorteile können realisiert werden, wenn es eine Möglichkeit gäbe, DRAM mit beliebigem Adressieren mit der gleichen Rate betreiben könnte, wie es im allgemeinen von teuereren SRAM erwartet wird.
Der DRAM kann den SRAM als inneren Testspeicher in einem Speichertester ersetzen. Wie es nachfolgend näher beschrie­ ben ist, kann das Problem des Erhöhens der Geschwindigkeit des DRAM-Betriebs für die Verwendung als innerer Testspei­ cher durch Erhöhen der verwendeten Menge an DRAM gelöst werden, anstatt durch Erhöhen der Geschwindigkeit dessel­ ben. Die Anzahlen identischer DRAM-Bänke werden als Gruppen behandelt. Eine Kombination von verschachtelten Signalen für unterschiedliche Speicherbänke in einer Gruppe dessel­ ben und Multiplexen zwischen diesen Gruppen von Bänken ver­ langsamt den Speicherverkehr für jede Bank auf eine Rate, die durch die Bank bearbeitet werden kann. (Für den Leser wird hierin eine kurze Zusammenfassung dieser Technik ein­ geschlossen, da viele architektonische Aspekte und die zu­ geordnete Terminologie derselben für die folgende Erklärung nützlich sind).
Ein Drei-Weg-Multiplexen zwischen drei Gruppen von jeweils vier Bänken, kombiniert mit einem flexiblen vierfachen Ver­ schachtelungsschema für Signalverkehr zu einer Gruppe er­ zeugt eine Erhöhung bei der Betriebsgeschwindigkeit, die einen Faktor von 12 erreicht, während nur drei Speicher­ busse erforderlich sind. Eine zyklische Suchstrategie (Round-Robin-Strategie) zum Auswählen der nächsten Gruppe für den Multiplexer ist einfach und stellt sicher, daß der Verschachtelungsmechanismus für jede Gruppe die Zeit hät, die derselbe benötigt, um die letzte zugewiesene Aufgabe zu beenden. Alle verschachtelten Zugriffe innerhalb einer Gruppe werden auf einer nächsten Bank (innerhalb dieser Gruppe) durchgeführt, die ebenfalls durch eine einfache Round-Robin-Auswahl ausgewählt wird. Bei dieser Konfigura­ tion stellt jede der 12 Bänke ein Duplikatbeispiel des ge­ samten verfügbaren Adreßplatzes dar, und jeder einzelne Schreibzyklus kann schließlich mit einem Zugriff auf eine der 12 Bänke enden. Eine Folgerung ist, daß beim Beenden des Testens alle 12 Bänke untersucht sein müssen, um zu er­ fassen, welche Störungen während des Testens des DUT aufge­ treten sind, da die Geschichte jeder Adresse oder jeder Sammlung von Adressen von Interesse sich über alle 12 Bänke ausbreiten wird. Somit wird ein spezieller Kanal durch 12 Bits dargestellt (ein Bit von jeder Bank, und dessen Bitpo­ sition innerhalb des Worts für diese Bank ist durch den Ka­ nal bestimmt).
Es wäre jedoch schwierig, alle 12 Bänke einzeln (manuell) abfragen zu müssen, um Störungsinformationen zu entdecken, daher ist ein Dienstmechanismus vorgesehen, um automatisch die Ergebnisse aller 12 Bänke während einem Lesezyklus an einer Adresse in ein einheitliches Ergebnis (zusammenzuset­ zen) "zu mischen", das in einer oder allen 12 Bänken ge­ speichert werden kann. Dies ermöglicht, daß zusammengesetz­ te Daten später mit voller Geschwindigkeit gelesen werden können. Die volle Geschwindigkeit bei einem Ausführungsbei­ spiel ist eine 100 MHz-Rate für zufallsadressierte Spei­ chertransaktionen.
Falls 33 MHz schnell genug ist, kann ein Zufallszugriff nur durch das Verschachteln und ohne Multiplexen unterstützt werden, in diesem Fall sind der Zusammensetzungsmechanismus und das Speicheradressierschema passend eingestellt. Das Adressierschema ändert sich, um zusätzliche Gruppenauswahl­ bits zu umfassen, die es ermöglichen, daß die Tiefe des Speichers dreimal tiefer ist als für einen 100 MHz- Zufallsbetrieb. Diese beiden Betriebsweisen werden als R100 bzw. R33 bezeichnet. Es gibt außerdem einen L100-Modus von 100 MHz-Betrieb zu einzelnen Bänken, der sich darauf ver­ läßt, daß Adressen mit gutem Verhalten zu dem DRAM gesendet werden (ein absolutes Minimum an Zeilenadreßänderungen).
Auf der obersten Ebene der inneren Testspeicherorganisation gibt es vier Speichersätze, von denen jeder seinen eigenen getrennten und unabhängigen Adreßraum umfaßt und angefragte Speichertransaktionen durchführt. Zwei sind von dem oben beschriebenen SDRAM, und zwei von dem SRAM. Jeder Speicher­ satz weist seine eigene Steuerung auf, an die Speicher­ transaktionen gerichtet werden. Bezüglich extern sichtbarer Betriebsfähigkeiten sind alle vier Speichersätze im wesent­ lichen identisch. Dieselben unterscheiden sich nur in ihrer Größe des Adreßraums, und wie dieselben intern implemen­ tiert sind: Die SRAM-Speichersätze verwenden kein Multiple­ xen und Verschachteln, da dieselben von Anfang an schnell genug sind. Trotz ihrer Unabhängigkeit können Speichersätze des gleichen Typs (von SRAM oder DRAM) "gestapelt" sein, d. h. als ein größerer Adreßraum behandelt werden. Dies wird auf der Steuerebene oberhalb der Speichersätze selbst durchgeführt, bei der algorithmischen Erzeugung der Adres­ sen und der Entscheidung, an welchen Speichersatz eine Speichertransaktion tatsächlich gesendet wird. Dies ist nicht so automatisch wie die Art und Weise, auf die die Speichersätze und die Steuerungen derselben Gruppen stapeln können, um den Adreßraum zu verdreifachen, wie zwischen den Betriebsweisen R100 und R33. Jede der Speichersatzsteuerun­ gen hat keine Ahnung, daß es so etwas wie einen weiteren Speichersatz mit einer weiteren Steuerung überhaupt gibt.
Daher ist es so, daß der innere Testspeicher des Testers in vier Speichersätze unterteilt ist, von denen zwei "interne" SRAM und zwei "externe" DRAM sind. Um es noch einmal zu be­ tonen, alle diese Speicher sind physikalisch innerhalb des Speichertestes, die Begriffe "intern" und "extern" beziehen sich mehr auf eine Ebene der Integration. Die SRAM sind Be­ standteile einer VLSI- (Höchstintegration-) Schaltung, die der zentralen Funktionsschaltungsanordnung des Testers zu­ geordnet ist, während die DRAM einzeln verpackte Teile sind, die benachbart zu den VLSI-Teilen befestigt sind. Die Menge an SRAM ist relativ klein (etwa 1 Megabit pro Spei­ chersatz), während die Menge an DRAM wesentlich und aus­ wählbar ist (etwa in dem Bereich von 128 bis 1024 Megabits pro Speichersatz). Die SRAM-Speichersätze liegen immer vor, und können für jeden geeigneten Zweck verwendet werden, wie z. B. Speichern des erwarteten Inhalts eines DUT, das ein ROM (Nur-Lese-Speicher) ist. Die DRAM-Speichersätze sind in der Tat optional und werden typischerweise zum Erzeugen ei­ ner Spur für eine nachfolgende Analyse verwendet, die zu einer Reparatur führt, obwohl es auch andere Verwendungen gibt. Der Tester macht keine Unterscheidung zwischen den SRAM- und DRAM-Speichersätzen bezüglich unterschiedlicher Zwecke, für die dieselben verwendet werden können. Diese Unterscheidungen ergeben sich überwiegend als eine Frage der Größe. Die SRAM-Speichersätze sind klein, während die DRAM-Speichersätze potentiell riesig sind. Die Person oder die Personen, die das Testprogramm erzeugen, treffen die Entscheidungen bezüglich dessen, wie die verschiedenen Speichersätze verwendet werden sollen.
Es wurde oben erwähnt, daß das DUT anfällig für Reparaturen sein kann. Dies ist oft der Fall, selbst für nicht verein­ zelte Speicherchips, die noch Teil eines Wafers sind. Wie dies tatsächlich auf der Schaltungsebene erreicht wird, ist für diejenigen, die solche Elemente herstellen offensicht­ lich, daher reicht es aus, einfach zu sagen, daß in diese Elemente eine Anzahl von selektiv zerstörbaren Elementen eingebaut ist, deren Zerstörung ein Durchschalten ermög­ licht, was wiederum die innere Logik einer zugeordneten Schaltung ändert. Diese Fähigkeit wird verwendet, um innere Signale zu Ersatzschaltungen umzuleiten, die defekte Schal­ tungen ersetzen. Diese Fähigkeit kann nicht ökonomisch sinnvoll sein, außer wenn die Reparatur mit weniger Aufwand und in weniger Zeit durchgeführt werden kann, die erforder­ lich wäre, um ein neues Teil herzustellen, andernfalls wäre es kosteneffektiver, das schlechte Teil einfach in die Ab­ falltonne zu werfen. Insbesondere ist es nicht wünschens­ wert, daß sich ein Techniker mit den Prozessen des Verste­ hens der speziellen Störungen bei den schlechten Teilen in­ nerhalb eines Herstellungsstroms befaßt, und daß er für die Entscheidung, wie dieselben repariert werden sollen, ver­ antwortlich ist. Statt dessen kann ein algorithmischer Me­ chanismus (Programm und zugeordnete Hardware) in dem Spei­ chertester entwickelt werden, um die Störung zu analysieren und die Reparatur derselben zu versuchen. Das reparierte Teil kann sofort neu getestet werden und über das Schicksal desselben entschieden werden.
Eine solche Betriebsweise hat bestimmte Auswirkungen auf die Entwicklung des Speichertesters. Die Realzeiterfassung von Störungen kann verwendet werden, um Flags zu setzen und Testalgorithmen zu ändern, um das Verständnis der Störung zu verbessern. Das heißt, die Tests, die durchgeführt wer­ den, um den richtigen Betrieb zu verifizieren, sind viel­ leicht nicht diejenigen, die am besten geeignet sind, um zu entdecken, weshalb das Teil überhaupt ausfällt. Der Spei­ chertester muß in der Lage sein, eine Spur (d. h. eine brauchbare Aufzeichnung) von Testdaten für eine automati­ sche Analyse zu erzeugen (die entweder direkt oder beim Be­ endigen eines größeren Testprozesses durchgeführt wird), die bestimmt, ob eine Reparatur versucht wird, und wenn ja, welche Schritte beim Durchführen der Reparatur durchgeführt werden. Typischerweise wird der Versuch von Reparaturen verzögert, bis zumindest ein vorläufiges Testen das Ausmaß oder die Anzahl möglicher Störungen offenbart. Die Anzahl verfügbarer Ersatzschaltungen ist begrenzt (etwa ein halbes Dutzend, wie es durch eine Chancen-getriebene Kosten- Nutzen-Analyse bestimmt ist), und es macht keinen Sinn, zu versuchen, ein Teil zu reparieren, von dem gezeigt werden kann, daß es mehr Hilfe benötigt als verfügbar ist. All dies findet unter der Voraussetzung "Zeit auf dem Tester ist Geld" statt, und was Speichersteller benötigen, sind Tester, die gründlich aber in einem absolut minimalen Zeit­ raum testen. Folglich beschreibt der Begriff "Erzeugen ei­ ner Spur von Testdaten für eine automatische Analyse" einen Prozeß, der bei weitem nicht als einheitliche Aktivität an­ gesehen werden kann, und selbst einer ausgedehnten Analyse unterworfen wurde, um die Zeit zu minimieren, die erforder­ lich ist, um ein Teil zu testen, und falls es angezeigt ist, dasselbe zu reparieren. Das einfache Konzept eines Speichertestes als ein universal programmierbarer Mechanis­ mus (z. B. eine CPU und Speicher) der mit einer steuerbaren Testumgebung zum Untersuchen eines DUT eine Schnittstelle bildet, ist schon seit langem für das Testen von Speichern in großen Mengen nicht mehr ökonomisch tragbar. Ein zu gro­ ßer Prozentsatz der Zeit wird mit der Ausführung der CPU und der Gesamtlogik verbracht, die erforderlich ist, um Stimuli zu erzeugen und deren Antworten auszuwerten. Sehr viel zweckorientierte Hardware wurde in Speichertester ein­ gebaut, um es denselben zu ermöglichen, schnell zu laufen, und dem universal programmierbaren Mechanismus werden nun im allgemeinen Aufgaben zugewiesen, die die Steuerung auf der Überwachungsebene betreffen.
Falls das Testen des DUT mit hoher Geschwindigkeit und ohne unnötige Pausen durchgeführt werden soll, ist es offen­ sichtlich, daß der innere Testspeicher des Testers, der verwendet wird, um eine Spur zu erzeugen, die Störungen be­ schreibt, mit den gleichen hohen Geschwindigkeiten arbeiten muß, die verwendet werden, um das DUT zu testen. Bei Spei­ chertestern von der Sorte, die hierin beschrieben werden, wird ein Abschnitt des inneren Testspeichers, der Testan­ sprechdaten in Adressen speichert, die denen entsprechen, die in dem DUT getestet werden, als ECR (Fehlererfassungs- RAM) bezeichnet. Es ist leicht zu erkennen, weshalb der In­ halt eines ECR als eine Spur von Testergebnissen angesehen werden kann. Es wäre jedoch ein Fehler, den Testerbetrieb als eine einfache Spurerzeugung durch einen Stimulus aufzu­ fassen, gefolgt von einer Nach-der-Tat-Spuranalyse, die auf jede Adresse näher eingeht. Obwohl es in der Tat für be­ stimmte Aspekte des DUT-Testens sinnvoll ist, ist ein sol­ ches Modell zu langsam und für bestimmte Aufgaben für die Hochgeschwindigkeitsherstellungstestung einfach zu mühsam. Ein zentrales Thema, das bei den Möglichkeiten gefunden wird, um den Gedanken einer Spur, die in einem ECR gefangen ist, zu verstärken, ist die Verwendung von zweckorientier­ ter Hardware, um verschiedene Fehler in Echtzeit zu katego­ risieren und zu indexieren (d. h.: Erkennen und dann Spei­ chern). während dieselben auftreten. Diese verschiedenen Fehler treten entlang der organisierenden Architekturprin­ zipien auf, die sich in dem speziellen getesteten DUT be­ finden. Diese Strategie reduziert die Komplexität der Ana­ lyseaufgabe und reduziert außerdem die Testzeit. Diese Strategie verwendet einen inneren Testspeicher, die als Etiketten-RAM bezeichnet werden, um eine indexierte Samm­ lung von erfaßten Ereignissen für eine spätere Untersuchung zu speichern.
Ein herkömmlicher Speichertester kann viele Verwendungen für innere eigene Testspeicher umfassen, von denen ECR und Etiketten-RAM lediglich zwei sind. Nachfolgend wird die Na­ tur einiger dieser Verwendung für innere Speicher unter­ sucht, und es wird die Schlußfolgerung gezogen, daß eine Verbesserung bei der Architektur eines inneren Testspei­ chers bei herkömmlichen Speichertestern wünschenswert ist.
Beim Betrieb wird ein ECR (1) von der gleichen Adresse adressiert, die an das DUT angelegt wird, oder von einer Adresse, die von dieser Adresse abgeleitet ist; und (2) weist der ECR eine systemeigene Datenwortbreite in Bits auf, die zumindest so ist wie die des DUT. Die effektive Wortbreite ist entlang Potenzen von 2 (8, 16, 32) einstell­ bar, wobei eine solche Einstellbarkeit durch eine entspre­ chende umgekehrte Änderung bei der Adressierbarkeit beglei­ tet wird. Dieses Merkmal wird als "schmales Wort" bezeich­ net.
Wenn ein Testkanal für das DUT (ein Bit in einem Ausgabe­ wort oder ein anderes Signal von Interesse) erwarteten Er­ gebnissen entspricht oder nicht, wird ein entsprechendes Bit an dieser Adresse in dem ECR gemäß der verwendeten Kon­ vention entweder gesetzt oder gelöscht. Eine 0 wird gespei­ chert, um eine zu vergleichende Störung darzustellen. Da derselbe so organisiert ist, weist der ECR keinen Mehrfach­ bitwert für jede Adressen/Kanalkombination auf, und kann statt dessen nur Informationen im Wert von einem Bit für jede solche Kombination speichern, unabhängig davon, wie oft während einem Test auf diese Kombination zugegriffen werden kann. Die Teststrategie versteht, was das Bit bedeu­ tet und wie es erhalten wird. Das Bit kann die Zweiteilung "es hat nie versagt/es hat mindestens einmal versagt" für einen gesamten Mehrfachzugrifftest darstellen, oder es kann nur das Ergebnis des letzten Zugriffs (d. h. Tests) dar­ stellen, selbst wenn sich dieses von früheren Tests unter­ scheidet. Falls Quantitätsinformationen über Störungen für eine bestimmte Adresse/Kanal gewünscht werden, müssen eini­ ge zusätzliche Ressourcen (ein Zähler) zugeordnet werden, um dieselben aufzuzeichnen.
Die Etiketten-RAM sind eine andere Möglichkeit zum Auf­ zeichnen von Informationen in dem Testspeicher eines Te­ sters darüber, wie das DUT anspricht, während dasselbe ge­ testet wird. Ein Etiketten-RAM weist im allgemeinen einen viel kleineren Adreßraum auf als ein ECR und wird typi­ scherweise durch eine "klassifizierte Adresse" adressiert, die von derjenigen abgeleitet ist, die an das DUT angelegt ist. Die Ableitung reflektiert die Existenz eines organisa­ torischen Prinzips innerhalb des DUT und wird in dieser An­ meldung als "Adreßklassifizierung" bezeichnet. Die in dem Etiketten-RAM gespeicherten Daten werden durch die Erfas­ sung eines Zustands gebildet, der in der Antwort des DUT auf einen bestimmten Stimulus auftritt, und werden norma­ lerweise wiederum abgeleitet durch Anwenden der Kenntnis über den inneren Betrieb eines DUT durch einen Prozeß, der als "Datenklassifizierung" bezeichnet wird. Der Gedanke da­ bei ist, eine Bedingung oder ein Ereignis zu erkennen, das möglicherweise ein Mitglied einer gesamten Familie (eines Universums) von möglichen Ereignissen ist, wobei unter­ schiedliche Mitglieder der Familie unterschiedliche Adres­ sen aufweisen, und dann Informationen über die Testergeb­ nisse zu speichern. Dies erzeugt ein Etiketten-RAM, dessen Inhalt brauchbare Abstraktionen bezüglich der DUT- Organisation sind, und die gemäß Aspekten dieser DUT- Organisation indexiert sind. Unterschiedliche Familien von Störungstypen sind durch unterschiedliche Etiketten-RAM dargestellt.
Als ein Beispiel für ein Etiketten-RAM nehme man an, daß eine Adresse, die an das DUT angelegt wird, in X-, Y- und Z-Komponenten unterteilbar ist, die sich auf die interne Organisation des DUT beziehen. Die X-, Y- und Z-Adressen sind in die Adresse, die an das DUT angelegt wird, einge­ bettet, aber vielleicht nicht auf eine offensichtliche oder herkömmliche Weise. Aber geeignete Torschaltungen können beispielsweise die Y-Adresse extrahieren und dieselbe als eine Adresse an ein Etiketten-RAM anlegen. Nun können die Informationen gespeichert werden, die gemäß der Y-Adresse indexiert sind. Diese Informationen können ein einziges Bit sein, dessen Bedeutung am Ende des Tests ist, daß eine Stö­ rung zumindest einmal an der Y-Adresse auftrat, oder es kann ein Mehrfachbitwert mit einer anderen Interpretation sein. Durch Etiketten-RAM für X, Y und Z können brauchbare Informationen über die Störungen in einem DUT erhalten wer­ den, dessen innere Organisation den Gedanken der X-, Y- und Z-Adressen umfaßt. Ferner wird eine wesentliche Reduzierung bei den Speicheranforderungen realisiert, da die benötigten Etiketten-RAM eine Anzahl von Positionen verbrauchen, die lediglich gleich ist wie die Summe der X-, Y- und Z- Adreßräume und nicht gleich wie deren Produkt, das ein ECR aufweisen müßte.
Um mit diesem Beispiel fortzufahren, kann eine Datenklassi­ fizierung die Nützlichkeit von Etiketten-RAM weiter erhö­ hen. Angenommen, das DUT ist ein 8-Bit-breiter Speicher mit inneren X- und Y-Adreßmechanismen. Innen weist das DUT 8 ein Bit-Speicher auf, von denen jeder die gleichen X- und Y-Adressiermechanismen aufweist, und von denen jeder seine Ausgangsdaten an einen anderen von 8 Anschlußstiften bzw. Pins liefert. Es ist sinnvoll zu fragen: "Gab es für jede Y-Adresse jemals eine Störung an einem dieser 8 Anschluß­ stifte?" D. h., es ist eine Datenklassifizierung erwünscht, die diese 8 Anschlußstifte logisch ODER-verknüpft. Der Be­ griff für diesen Verhaltensmodus ist "Komprimierung", und offensichtlich muß derselbe konfigurierbar sein. Nachfol­ gend wird angenommen, daß ein Tester vorliegt, der eine sy­ stemeigene Wortbreite von 32 Bits aufweist, und es sollen 4 dieser 8 Bit-DUT durch Unterteilen dieser systemeigenen Wortbreite in 4 8-Bit-Segmente, eines für jedes DUT, zum gleichen Zeitpunkt gestestet werden. Nun soll die ODER- Verknüpfung viermal durchgeführt werden, aber auf den vier verschiedenen Segmenten, als ob jedes das einzige Segment wäre, und dementsprechend die Ergebnisse an vier verschie­ dene Etiketten-RAM gesendet werden. Der Begriff für diesen Verhaltensmodus ist "Maskieren", und offensichtlich muß derselbe ebenfalls konfigurierbar sein, um mit den unter­ schiedlichen DUT übereinzustimmen, die getestet werden kön­ nen. Schließlich zeigen die hier ausgeführten Beispiele den Bedarf nach vier Etiketten-RAM (einen für jedes DUT), die durch Y adressierbar sind (egal, wie viele Bits dies benö­ tigt), und die 8 Bits breit sind. Falls für X und Z eben­ falls herkömmliche Etiketten-RAM gewünscht wären, gäbe es einen Bedarf nach 12 solchen Etiketten-RAM. Herkömmliche Etiketten-RAM sind eigenständige getrennte Speicher, die in dem Tester enthalten sind. Als solche sind sie bestimmten Aufgaben zugewiesen und zeitlich vorher für diese konfigu­ riert, und können nicht ohne weiteres für die Verwendung bei anderen Umständen angepaßt werden, falls dieselben in der Tat überhaupt angepaßt werden können.
Ein Pufferspeicher ist eine weitere Art von innerer Test­ speicherverwendung, die oft bei einem Speichertester ange­ troffen wird. Derselbe kann verwendet werden, um ein Bild entweder von Stimuli oder Antworten zu speichern, die zeit­ lich im Voraus gefunden oder gegeben werden können. Ein Beispiel ist der Inhalt eines ROM (Nur-Lese-Speicher). Ein Pufferspeicher kann entweder statt oder in Verbindung mit algorithmisch erzeugten Testmustern verwendet werden.
Bei einem herkömmlichen Speichertester werden diese unter­ schiedlichen Arten von innerer Testspeicherverwendung durch Einbauen getrennter Speichermechanismen in den Tester rea­ lisiert, die jeweils ihrem eigenen speziellen Zweck zuge­ wiesen sind. Dies ist sowohl erschwerend als auch ver­ schwenderisch, da es oft der Fall sein wird, daß ungenütz­ ter Speicher vorliegt, aber nicht für eine andere gewünsch­ te Funktion verfügbar ist. Ferner werden solche herkömmli­ chen ECR, Etiketten-RAM und Pufferspeicher bisher mit SRAM realisiert, der relativ teuer ist, obwohl derselbe schnell und leicht zu steuern ist. Auf einen SRAM wird unter Ver­ wendung einer einzelnen einheitlichen Adresse zugegriffen, und derselbe ist schneller als ein DRAM, wenn beliebig auf denselben zugegriffen wird, aber auch wesentlich teuerer. Es wäre wünschenswert, falls durch Verwenden von DRAM die Größen der ECR, Etiketten-RAM und Pufferspeicher sowohl er­ höht als auch deren Kosten reduziert werden könnten, diese Vorteile könnten realisiert werden, falls es eine Möglich­ keit gäbe, DRAM mit beliebiger Adressierung mit der glei­ chen Rate zu betreiben, wie sie allgemein von den teureren SRAM erwartet wird.
Wie ein RAM in einem inneren Testspeicher eines Speicherte­ sters durch DRAM ersetzt werden kann, wurde oben kurz be­ schrieben, und ist der Gegenstand von viel nachfolgendem Material. Die hierin beschriebene Technik betont einen ECR als ein Hauptbeispiel, aber ist auf keinen Fall auf einem DRAM begrenzt, der als ein ECR verwendet wird. Es wird völ­ lig offensichtlich werden, daß die DRAM-Speichersätze au­ ßerdem verwendet werden können, um einen rekonfigurierbaren inneren Testspeicher mit hoher Geschwindigkeit und niedri­ gen Kosten zu liefern, der verwendet werden kann, um Eti­ ketten-RAM und Pufferspeicher zu liefern. Dann wäre es wün­ schenswert, wenn beliebig viele unterschiedliche Beispiele aller dieser unterschiedlichen Verwendungen von innerem Testspeicher innerhalb eines Speichertesters zugeordnet und rekonfiguriert werden könnten, wie es von einer zentralen Sammlung von Speicher benötigt wird, und nicht als getrenn­ te vorkonfigurierte Speichermechanismen existieren.
Da nun eine relativ große Menge an unaufwendigem, schnellem und rekonfigurierbarem inneren Testspeicher zur Verfügung steht, ergibt sich ferner die Frage, was noch getan werden könnte, um den Speichertesterbetrieb zu verbessern.
Insbesondere wäre es wünschenswert, daß es eine Möglichkeit gäbe, den Aufwand zu reduzieren, der benötigt wird, um ein Testprogramm zu schreiben und auszuführen. Könnte man bei­ spielsweise die Spezifität und Komplexität reduzieren, die mit einem Testprogramm verbunden ist, das sowohl Stimuli als auch deren erwartete Antworten für ein zu testendes Ge­ rät erzeugen muß? Schließlich werden Speicher getestet, und es steht nun eine ziemliche Menge an innerem Testspeicher zur Verfügung. Gerade wenn die Gedanken von Adreß- und Da­ tenklassifizierung, die einen Etiketten-RAM antreiben, eine Analyselast von dem Testprogramm nehmen, gäbe es vielleicht eine zusätzliche Möglichkeit, einige der verschiedenen Speichertestprogramme zu vereinfachen, falls ausreichend innerer Testerspeicher verfügbar ist. Was ist zu tun?
Es ist die Aufgabe der vorliegenden Erfindung, ein Verfah­ ren zum Testen eines Speichers auf einem Speichertester mit verbesserten Charakteristika zu schaffen.
Diese Aufgabe wird durch ein Verfahren gemäß Anspruch 1 ge­ löst.
Die verschiedenen Funktionen, die für einen inneren Test­ speicher wünschenswert sind, sind in Memory in Speichersät­ zen implementiert, die als Host für eine oder mehrere sol­ cher Funktionen dienen können. Beispielsweise kann es der Fall sein, daß ein ECR aufgrund seiner Größe und dem Wunsch nach zweckorientierten Hochgeschwindigkeitsdatenwegen einen gesamten eigenen Speichersatz erfordert. Eine gesamte Samm­ lung von Etiketten-RAM kann jedoch zusammen mit Pufferspei­ chern in einem anderen Speichersatz positioniert sein. falls es dort Platz und keine Konkurrenz für Speicherzyklen gibt (ein Leistungsfähigkeitsthema oder Verhaltensthema). Falls nötig, könnten die Pufferspeicher in noch einem ande­ ren Speichersatz positioniert sein. Allgemein gesagt, Din­ ge, auf die nicht gleichzeitig zugegriffen werden muß, wer­ den in unterschiedlichen Speichersätzen positioniert. Ein Speichersatz kann viele unterschiedliche Elemente enthal­ ten, falls dieselben zu getrennten Zeiten erzeugt und ver­ wendet werden.
Eine Sammlung von Etiketten-RAM benötigt vielleicht nicht die gesamte Breite des systemeigenen Worts, das durch den Speichersatz implementiert ist, und kann doch den gleichen Bereich an Adressen aufweisen. Etiketten-RAM können Seite an Seite an den gleichen Adressen positioniert sein, indem der Vorteil des Schmal-Wort-Merkmals ausgenutzt wird. Die gleiche Ökonomie kann für Pufferspeicher erreicht werden.
Obwohl diese unterschiedlichen Verwendungen von innerem Testspeicher innerhalb eines Speichersatzes tatsächlich an beliebigen Positionen innerhalb des Adreßraums dieses Spei­ chersatz positioniert sind, ist es bezüglich der algorith­ mischen Prozesse innerhalb des Testprogramms wünschenswert, daß es so scheint, als ob dieselben durch die gleichen Adressen oder durch Adressen, die von der Architektur der­ selben abgeleitet sind, adressiert werden, die an das DUT angelegt werden. Das heißt, mehrere unterschiedliche Tabel­ len innerhalb eines Adreßraums sind jeweils organisiert, als ob dieselben das gleiche Segment von Adreßraum beset­ zen, sind aber in der Realität in getrennten Regionen ge­ speichert, damit alle hineinpassen und nicht überlappen. Aber das Testprogramm möchte frei von den unangenehmen Ein­ zelheiten darüber sein, wo sich die Dinge tatsächlich in dem Moment der Ausführung befinden. Dies kann durch Vermeh­ ren der Adreßklassifizierungsmechanismen für die unter­ schiedlichen Speichersätze erreicht werden, um unter der Steuerung des Testprogramms eine automatische und dynami­ sche Variation des Adreßklassifizierungsprozesses zu lie­ fern, während entsprechende Testteile durchgeführt werden, um die Etiketten-RAM (oder ECR oder Pufferspeicher) Ergeb­ nisse zu der richtigen Position in dem Speichersatz von In­ teresse zu steuern. Diese Variation ist auf einer Test-um- Test-Basis (d. h. Struktur um Struktur, oder, was das glei­ che ist, Segment um Segment des Testprogramms).
Schließlich kann für bestimmte Testklassen (darüber nach­ folgend mehr) ein Abschnitt von innerem Testspeicher als Stimulus-Log-RAM verwendet werden, der als ein ideales DUT wirkt, um die korrekten Bedingungen zu erzeugen (wie durch Emulation, aber der tatsächliche Mechanismus ist äquivalen­ te Substitution), die in einem tatsächlichen DUT nach der Beendigung aller oder zumindest einer Zwischenmenge der Tests existieren sollen. Der Gedanke ist, zunächst den Strom von Sendevektoren des Testprogramms dazu zu bringen, zu erscheinen. Dieser Strom wird dann entweder (A) an den Stimulus-Log-RAM (allein) angelegt, als ob derselbe statt dem tatsächlichen DUT ausgeführt würde (der Stimulus-Log- RAM macht genau das, was von einem tatsächlichen guten DUT erwartet werden würde); oder (B) sowohl (A) tritt ein und auch der Strom von Sendevektoren wird in der Tat gleichzei­ tig an das tatsächliche DUT angelegt. In dem Fall von (A) wird dann, wenn (A) abgeschlossen ist, ein tatsächliches DUT getestet, indem die gleiche Sequenz von Sendevektoren wieder erzeugt wird und zu dem tatsächlichen DUT gesendet.
In jedem Fall müssen nach (A) oder (B) der Stimulus-Log-RAM und der DUT einen identischen Inhalt aufweisen. Nun kann der tatsächliche Teil gelesen werden, um den Inhalt dessel­ ben zu entdecken, während die erwarteten Empfangsvektoren von dem Stimulus-Log-RAM genommen werden, und die Ver­ gleichsergebnisse wie üblich zu einem ECR, Etiketten-RAM, usw., gesendet werden. Auf diese Weise muß das Testprogramm nicht die speziellen Empfangsvektoren erzeugen oder aufwei­ sen, die die erwartete Antwort von dem angelegten Stimulus sind. Für diese Testklassen, die mit diesem Lösungsansatz kompatibel sind(von denen es viele gibt), ist das Testpro­ gramm einfacher und leichter zu schreiben und zu erhalten, da weniger interne Variable zu der Größe des DUT-Adreßraums passen müssen.
Die Arten von Testprogrammen, die von dieser Technik profi­ tieren können, sind diejenigen, die eine Reihe von Schreib­ vorgängen ohne intervenierende Vergleichslesevorgänge durchführen, oder die neu angeordnet werden können, um dies zu tun, anschließend gefolgt von einer Reihe von Ver­ gleichslesevorgängen (mit Empfangsvektoren), die an die Adressen gerichtet sind, auf die früher geschrieben wurde. Beim Stand der Technik ist dem Stimulussegment Nr. 1 norma­ lerweise ein Prüfsegment Nr. 1 zugeordnet, das entweder mit dem Stimulus gemischt wird oder nachfolgend getrennt durch­ geführt wird. So oder so ist das Prüfsegment Nr. 1 spezi­ fisch für das Stimulussegment Nr. 1, da dasselbe die spezi­ ellen Empfangsvektoren enthalten muß, die erforderlich sind, um den Test zu bestehen. Nun wird angenommen, daß das Stimulussegment Nr. 2 folgt, gefolgt von (oder einschließ­ lich) dem Prüfsegment Nr. 2. Dies ist ebenfalls spezifisch für die Natur des Stimulussegments Nr. 2. Nun nehme man ein universelles Prüfsegment an, das lediglich den Inhalt des DUT mit dem in dem Stimulus-Log-RAM vergleicht. Ein solches universales Prüfsegment kann als Prüfsegment Nr. 1 und Nr. 2 verwendet werden. Dies stellt eine wesentliche Vereinfa­ chung bei dem Schreiben und der Wartung von Testprogrammen dar.
Bei einem Speichertester, der gemäß dem bevorzugten Ausfüh­ rungsbeispiel, das nachfolgend beschrieben wird, aufgebaut ist, kann den Mechanismus, der Sendevektoren annimmt, die an das DUT gesendet werden sollen, ebenfalls angewiesen werden, dieselben außerdem (oder vielleicht statt dessen) zu einem Abschnitt des inneren Testspeichers zu senden, der sich verhält, als ob er ein ECR wäre, aber der in der Tat der Stimulus-Log-RAM ist (sozusagen in Verkleidung). Diese Sendevektoren werden über den gleichen Weg gesendet, der für die Ergebnisse eines Vergleichs zwischen Sende- und Empfangsvektoren (was diese nicht sind, aber der Weg kennt den Unterschied nicht) verwendet werden würde. Der Stimu­ lus-Log-RAM wirkt dann als ein idealer Speicher, der Stimu­ lusabschnitt des Tests ohne Fehler ausführt. Es kann gesagt werden, daß für diese anfängliche Stimulus-Log-RAM-Funktion ein Pseudo-ECR verwendet wird: derselbe ist bequem und ef­ fizient, da der verwendete Speicher sowieso schnell und mit den Ergebnissen des Vergleichs verbunden sein muß. Sobald der gesamte anfängliche Stimulus durchgeführt ist, wird der Inhalt des Stimulus-Log-RAM (der nicht mehr als ein geeig­ neter Abschnitt eines Speichersatzes ist, der vorübergehend funktioniert hat, als ob derselbe tatsächlich ein ECR wäre) nachfolgend als (ein Ziel-) Pufferspeicher behandelt (ein Rekonfigurationsthema), der dann die verbleibende Funktion des Stimulus-Log-RAM fortsetzt (Senden erwarteter Empfangs­ vektoren zu dem Vergleichsmechanismus). Nun sendet der al­ gorithmische Mechanismus (oder ein Quellenpufferspeicher) einen Satz von Sendevektoren zu dem wahren DUT, um dasselbe zu lesen und Empfangsvektoren hervorzurufen, während ein anderer Abschnitt des (vielleicht anderen) Speichersatzes diesmal als ein tatsächlicher ECR wirkt (zusammen mit allen Etiketten-RAM, usw.). Es ist anzumerken, daß es nicht not­ wendig ist, den Inhalt von dem ECR-Abschnitt in den Ziel- Pufferspeicherabschnitt zu kopieren (als ob der ECR "frei­ gegeben" und der Stimulus-Log-RAM "geladen" würde), es reicht aus, einfach neu zu definieren, welche Abschnitte von welchen Speichersätzen diese verschiedenen Funktionen durchführen. Auf den tatsächlichen physikalischen Speicher, der als der Stimulus-Log-RAM verwendet wird, wird zunächst auf die gleiche Weise geschrieben wie auf ein ECR, und dann wird von demselben gelesen, als ob derselbe ein Pufferspei­ cher wäre, während ein anderer Teil des Speichersatzes der ECR "wird".
Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein vereinfachtes Blockdiagramm eines umfassend rekonfigurierbaren nicht-flüchtigen Speicherte­ sters, der gemäß der Erfindung aufgebaut ist;
Fig. 2 eine Ausdehnung eines vereinfachten Blockdia­ gramms des DUT-Testers 6 von Fig. 1;
Fig. 3 ein vereinfachtes funktionales Blockdiagramm des inneren Testspeichermechanismus, der in dem Blockdiagramm von Fig. 2 erscheint;
Fig. 4 ein detaillierteres Blockdiagramm des inneren Testspeichermechanismus von Fig. 3;
Fig. 5 ein vereinfachtes Blockdiagramm eines DRAM- Speichersatzsteuermechanismus, der in den Block­ diagrammen von Fig. 3 und 4 erscheint;
Fig. 6 ein vereinfachtes Blockdiagramm einer Adreßklas­ sifiziererschaltung, die in den Fig. 3 und 4 ver­ wendet wird;
Fig. 7 ein vereinfachtes Blockdiagramm einer Datenklas­ sifiziererschaltung, die in den Fig. 3 und 4 ver­ wendet wird;
Fig. 8 ein vereinfachtes Blockdiagramm einer Komprimie­ rungsschaltung, die in Fig. 7 verwendet wird;
Fig. 9 ein vereinfachtes Blockdiagramm einer Verschie­ bungsschaltung, die in Fig. 7 verwendet wird;
Fig. 10 ein vereinfachtes Blockdiagramm einer Maskie­ rungsschaltung, die in Fig. 7 verwendet wird; und
Fig. 11 ein vereinfachtes Blockdiagramm einer Sendevek­ torerfassungsschaltung, die Teil der in Fig. 2 gezeigten Zeitgebungs/Formatier- und Vergleichs­ schaltung ist.
Mit Bezugnahme auf Fig. 1 ist ein vereinfachtes Blockdia­ gramm 1 eines nicht-flüchtigen Speichertestsystems gezeigt, das gemäß den Prinzipien der Erfindung aufgebaut ist. Ins­ besondere kann das gezeigte System gleichzeitig bis zu 36 einzelne DUTs (Devices Under Test = zu testende Geräte) mit jeweils bis zu 64 Testpunkten zu einem Zeitpunkt testen, mit Vorkehrungen für eine Rekonfiguration, um es Elementen einer Sammlung von Testressourcen zu ermöglichen, zusammen­ gebunden zu werden, um DUTs mit mehr als 64 Testpunkten zu testen. Diese Testpunkte können Positionen auf einem Ab­ schnitt eines integrierten Schaltungswafers sein, der noch nicht vereinzelt und verpackt wurde, oder sie können die Stifte des verpackten Teils sein. Der Begriff "Testpunkt" bezieht sich auf eine elektrische Position, an der ein Si­ gnal angelegt werden kann (z. B. Leistungsversorgung, Uh­ ren, Dateneingänge), oder an der ein Signal gemessen werden kann (z. B. ein Datenausgang). In dieser Beschreibung wer­ den die Gebräuche der Industrie befolgt, die Testpunkte als "Kanäle" zu bezeichnen. Die "Sammlung von Testressourcen, die zusammengebunden werden sollen" auf die oben Bezug ge­ nommen wurde, können als bis zu 36 Testorte angesehen wer­ den, wobei jeder Testort eine Testortsteuerung (4), einen (64 Kanal-) DUT-Tester (6) und eine (64 Kanal-) Sammlung von Pinelektronik (9), die die tatsächliche elektrische Verbindung zu einem DUT (14) herstellt, umfaßt. In dem Fall, in dem das Testen des DUT 64 oder weniger Kanäle er­ fordert, reicht ein einzelner Testort aus, um Tests an die­ sem DUT durchzuführen, und hier wird beispielsweise ange­ nommen, daß der Testort Nr. 1 (wie er in Fig. 1 erscheint) eine "Einzelortteststation" bildet oder als eine solche wirkt. Wenn dagegen eine Form der vorher erwähnten Rekonfi­ guration wirksam ist, werden zwei (oder mehr) Testorte "verbunden", um als ein größerer äquivalenter Testort mit 128 Kanälen zu wirken. Dementsprechend und unter erneuter Bezugnahme auf ein in Fig. 1 gezeigtes Beispiel wird ange­ nommen, daß die Testorte Nr. 35 und Nr. 36 eine "Zwei-Ort- Teststation" bilden.
Um kurz den entgegengesetzten Fall zu bedenken sollte nicht angenommen werden, daß ein gesamter Testort benötigt wird, um ein einziges DUT zu testen, oder daß ein einziger Te­ stort nur ein einziges DUT testen kann. Angenommen, ein Wa­ fer würde zwei (möglicherweise aber nicht notwendigerweise benachbarte) Chips aufweisen, wobei die Summe der Testka­ nalanforderungen desselben 64 Kanäle oder weniger wäre. Beide DUTs können durch einen einzigen Testort getestet werden. Dies wird durch die Universalprogrammierbarkeit je­ des Testorts ermöglicht. Ein Testprogramm, das durch den Testort ausgeführt wird, kann derart geschrieben werden, daß ein Teil der Ressourcen des Testorts verwendet wird, um eines der DUTs zu testen, während ein Teil verwendet wird, um das andere DUT zu testen. Wenn man schließlich annimmt, daß, falls ein drittes DUT vorliegt, dieses die logische Einheit der ersten beiden wäre, wäre man in der Lage, die­ ses dritte DUT mit einem einzigen Testort zu testen, daher sollte man in der Lage sein, gleichermaßen die "Komponen­ ten-DUTs" desselben zu testen. Der einzige Unterschied ist, individuell zu verfolgen, ob die beiden "Komponenten-DUTs" bestehen oder versagen, im Gegensatz zu einer einheitlichen Antwort für das "dritte" DUT (d. h., es gibt ein Problem bezüglich der Frage, welcher Abschnitt des "dritten" DUT versagt hat). Diese "Einzelort-Mehrfachteststation"- Fähigkeit ist überwiegend konventionell und wird hier zum Zweck der Vollständigkeit erwähnt, und um mögliche Verwir­ rung und Mißverständnisse zu vermeiden, wenn dasselbe mit der Idee des Verbindens von zwei oder mehr Testorten ver­ glichen wird.
Abgesehen von diesem Gedanken der Rekonfiguration gäbe es keinen Unterschied zwischen einem Testort und einer Test­ station, und einer dieser Begriffe könnte weggelassen wer­ den. So wie es ist, wird jedoch offensichtlich, daß die An­ zahl von Teststationen nicht gleich der Anzahl von Testor­ ten sein muß. In der Vergangenheit konnten die Anzahlen un­ terschiedlich sein, weil die Testorte unterteilt wurden, um mehr Teststationen zu erzeugen (DUTs, die nicht komplex ge­ nug sind, um einen gesamten Testort zu verbrauchen). Nun kann der Unterschied jedoch auch daran liegen, daß die Te­ storte zusammen verbunden wurden, um Mehrfachort- Teststationen zu bilden (DUTs, die zu komplex für einen einzigen Testort sind).
Nachfolgend wird dann eine Testsystemsteuerung 2 durch ei­ nen Systembus 3 mit bis zu 36 Testortsteuerungen verbunden, deren Namen mit dem Zusatz Nr. 1 bis 36 (4a bis 4z) enden. (Es stimmt, daß die Indexe a bis z nur von 1 bis 26 gehen, und nicht bis 36. Aber diese kleine Abweichung ist im Ver­ gleich zu numerischen Indexen hinter numerischen Bezugszei­ chen vorzuziehen, die wahrscheinlich sehr verwirrend wä­ ren.) Die Testsystemsteuerung 2 ist ein Computer (z. B. ein PC, auf dem NT läuft), der ein geeignetes Testsystemsteuer­ programm ausführt, das sich auf die Aufgabe des Testens nichtflüchtiger Speicher bezieht. Das Testsystemsteuerpro­ gramm stellt die höchste Abstraktionsebene in einer hierar­ chischen Arbeitsteilung (und Komplexität) zum Ausführen des gewünschten Testens dar. Die Testsystemsteuerung bestimmt, welche Programme durch die unterschiedlichen Testorte aus­ geführt werden, und überwacht auch ein Robotersystem (nicht gezeigt), das die Testsonden und DUTs wie benötigt bewegt. Die Testsystemsteuerung 2 kann auf bestimmte Weisen wirken, die den Gedanken unterstützen, daß einige Testorte program­ miert sind, um als Einzelort-Teststationen zu arbeiten, während andere verbunden sind, um Mehrfachort-Teststationen zu bilden. Selbstverständlich werden unter solchen Umstän­ den unterschiedliche Teile getestet, und es ist sehr wün­ schenswert, daß für die unterschiedlichen Teile unter­ schiedliche Tests verwendet werden. Gleichartig dazu gibt es weder die Anforderung, daß alle Einzelort-Teststationen die gleiche Art von Teilen testen, noch gibt es eine solche Anforderung für Mehrfachort-Teststationen. Dementsprechend ist die Testsystemsteuerung 2 programmiert, um die Befehle auszugeben, um das benötigte Testort-Verbinden auszuführen und dann die geeignete Testprogramme für die verschiedenen verwendeten Teststationen aufzurufen. Die Testsystemsteue­ rung 2 empfängt außerdem Informationen über Ergebnisse, die von den Tests erhalten werden, so daß dieselbe die geeigne­ ten Aktionen zum Entsorgen des schlechten Teils durchführen kann und daß dieselbe Protokolle für die verschiedenen Ana­ lysen erhalten kann, die verwendet werden können, um bei­ spielsweise Produktionsprozesse in einer Fabrikumgebung zu steuern.
Das Testsystem selbst ist ein relativ großes und komplexes System, und es ist gebräuchlich, daß dasselbe ein Roboter­ teilsystem verwendet, um Wafer auf eine Stufe zu laden, die dann nacheinanderfolgend eine oder mehrere zukünftige Chips unter Sonden positioniert, die mit der Pinelektronik 9 ver­ bunden sind, woraufhin diese zukünftigen Chips (der Wafer wurde noch nicht vereinzelt) getestet werden. Das Testsy­ stem kann ebenfalls verwendet werden, um verpackte Teile zu testen, die auf einem geeigneten Träger geladen wurden. Je­ der Teststation, die in Betrieb ist, wird zumindest eine Testortsteuerung zugeordnet sein (wie es nachfolgend er­ klärt wird), unabhängig davon, wie viele Testorte verwendet werden, um diese Teststation zu bilden, oder wie viele Teststationen sich an einem Testort befinden. Eine Testort­ steuerung ist ein eingebettetes System, das ein i960- Prozessor von Intel mit 36 bis 64 MB von kombiniertem Pro­ gramm- und Datenspeicher sein kann, der auf einem eigenen Betriebssystem namens VOS (VersaTest-Betriebssystem) läuft, das auch bei früheren Produkten zum Testen nicht-flüchtiger Speicher (z. B. Agilent V1300 oder V3300) verwendet wurde. Für den Moment wird nur die Situation für Einzelort- Teststationen betrachtet. Für den Zweck eines bestimmten Beispiels wird angenommen, daß der Testort Nr. 1 als Test­ station Nr. 1 wirkt, und daß derselbe das WHIZCO-Teil Nr. 0013 testen soll. Die Testbestimmungen umfassen etwa 100 unterschiedliche Typen von Tests (Variieren und Überwachen der Spannungspegel, Pulsbreiten, Flankenpositionen, Verzö­ gerungen, als auch eine große Menge an einfachem Speichern und anschließendem Wiedergewinnen von ausgewählten Informa­ tionsstrukturen), und jeder Typ von Test umfaßt viele Mil­ lionen einzelner Speicherzyklen für das DUT. Auf der höch­ sten Ebene weisen die Betreiber des Testsystems die Testsy­ stemsteuerung 2 an, die Teststation Nr. 1 zu verwenden, um damit zu beginnen, die WHIZCO 0013 zu testen. Zu gegebener Zeit teilt die Testsystemsteuerung 2 der Testortsteuerung Nr. 1 (4a) (die ein eingebettetes [Computer]-System ist) mit, das zugeordnete Testprogramm, etwa TEST_WHIZ_13, ab­ laufen zu lassen. Falls das Programm innerhalb der Umgebung der Testortsteuerung Nr. 1 bereits verfügbar ist, wird es einfach ausgeführt. Falls nicht, wird es durch die Testsy­ stemsteuerung 2 geliefert.
Im Prinzip könnte nun das Programm TEST_WHIZ_13 vollständig unabhängig sein. Aber wenn es dies wäre, wäre es mit ziem­ licher Sicherheit sehr groß und es kann für den Prozessor des eingebetteten Systems innerhalb der Testortsteuerung 4a schwierig sein, schnell genug zu laufen, um die Tests mit der gewünschten Geschwindigkeit zu erzeugen, oder selbst mit einer Rate, die von einem DUT-Speicherzyklus zu dem nächsten einheitlich ist. Dementsprechend werden Unterrou­ tinetyp-Aktivitäten auf niedriger Ebene erzeugt, die Se­ quenzen von Adressen und zugeordneten Daten, die geschrie­ ben werden sollen oder von einer Leseoperation erwartet werden, nach Bedarf von einem programmierbaren algorithmi­ schen Mechanismus erzeugt, der in dem DUT-Tester 6 positio­ niert ist, der aber synchron mit dem Programm wirkt, das durch das eingebettete System in der Testortsteuerung 4 ausgeführt wird. Dies kann als Exportieren bestimmter Un­ terroutineartiger Aktivitäten auf niedriger Ebene und der Aufgabe des Auslösens von DUT-Speicherzyklen zu einem Me­ chanismus (dem DUT-Tester), der näher bei der Hardwareumge­ bung des DUT 14 liegt, angesehen werden. Allgemein gesagt, jedesmal, wenn die Testsystemsteuerung 2 eine Testortsteue­ rung mit einem Testprogramm ausstattet, versorgt dieselbe dann außerdem den zugeordneten DUT-Tester mit geeigneten Implementierungsroutinen auf niedriger Ebene (vielleicht spezifisch für den getesteten Speicher), die benötigt wer­ den, um die Gesamtaktivität auszuführen, die von dem Pro­ grammieren für die Testortsteuerung beschrieben oder benö­ tigt wird. Die Implementierungsroutinen auf niedriger Ebene werden als "Strukturen" bezeichnet, und dieselben sind im allgemeinen mit einem Namen versehen (genauso wie Funktio­ nen und Variablen in Programmsprachen hoher Ebene Namen aufweisen).
Jede Testortsteuerung Nr. n(4) ist durch einen Orttestbus Nr. n(5) mit ihrem zugeordneten DUT-Tester Nr. n(6) gekop­ pelt. Die Testortsteuerung verwendet den Orttestbus 5, so­ wohl um den Betrieb des DUT-Testers zu steuern, als auch um Informationen von demselben über Testergebnisse zu empfan­ gen. Der DUT-Tester ist in der Lage, die verschiedenen DUT- Speicherzyklen, die in den Testvorschriften enthalten sind, mit hoher Geschwindigkeit zu erzeugen, und derselbe entscheidet, ob die Ergebnisse eines Lesespeicherzyklus so sind wie erwartet. Im wesentlichen spricht derselbe auf Be­ fehle oder Operationscodes ("mit Namen versehene Struktu­ ren") an, die von der Testortsteuerung gesendet werden, durch Auslösen entsprechender nützlicher Sequenzen von Le­ se- und Schreib-DUT-Speicherzyklen (d. h. derselbe führt die entsprechenden Strukturen aus). Konzeptionell ist das Ausgangssignal des DUT-Testers 6 eine Stimulusinformation, die an das DUT angelegt werden soll, und dasselbe akzep­ tiert auch Ansprechinformationen von demselben. Diese Sti­ mulus/Ansprechinformation 7a verläuft zwischen dem DUT- Tester 6a und einer Pinelektronik Nr. 1 Anordnung 9a. Die Pinelektronikanordnung 9a unterstützt bis zu 64 Sonden, die an das DUT 14 angelegt werden können.
Die oben erwähnte Stimulusinformation ist lediglich eine Sequenz von parallelen Bitstrukturen (d. h. eine Sequenz von "Sendevektoren" und erwarteten "Empfangsvektoren"), die gemäß den Spannungspegeln einer Familie von Logikelementen, die in dem DUT-Tester verwendet werden, ausgedrückt wird. Es gibt ein konfigurierbares Abbilden zwischen Bitpositio­ nen in einem Stimulus/Antwort und den Sonden auf dem Chip, und dieses Abbilden wird durch den DUT-Tester 6 verstanden. Die einzelnen Bits sind bezüglich ihrer Zeitgebung und Flankenplazierung korrekt, aber zusätzlich zu dem Abbilden können sie ebenfalls Spannungspegelumschalten benötigen, bevor sie an das DUT angelegt werden können. Gleichartig dazu kann eine Antwort, die nachfolgend zu einem Stimulus in dem DUT auftritt, Puffern und "umgekehrtes" Pegelum­ schalten benötigen, bevor dieselbe als geeignet angesehen werden kann, um zurück zu dem DUT-Tester geführt zu werden. Diese Pegelumschaltaufgabe sind das Gebiet der Pinelektro­ nik 9a. Die Pinelektronikkonfiguration, die zum Testen ei­ nes WHIZCO 0013 benötigt wird, wird wahrscheinlich beim Te­ sten eines Teils von der ACME Co. nicht funktionieren, und vielleicht nicht einmal bei einem anderen WHIZCO-Teil. Da­ her ist offensichtlich, daß die Pinelektronikanordnung ebenfalls konfigurierbar sein muß, eine solche Konfigurier­ barkeit ist die Funktion der PE-Konfigurationsleitungen 8a.
Die obigen Ausführungen beenden einen kurzen architektoni­ schen Überblick darüber, wie ein einzelner Testort zum Te­ sten eines DUT strukturiert ist. Es folgen nun Themen, die sich ergeben, wenn es viele Testorte gibt, die betrieben werden müssen. Als Einleitung wird ein bevorzugtes Ausfüh­ rungsbeispiel zum Aufbauen eines Testsystems mit mehreren Testorten beschrieben. In vielerlei Hinsicht sind einige der Informationen, die beschrieben werden, ein Frage von Vorlieben auf der Basis von Marktstudien über Kundenvorlie­ ben und Kosten-Nutzen-Analysen. Wie dem auch sei, um eines dieser Dinge zu erstellen, muß man eine bestimmte Wahl treffen, und sobald dies getan ist, ergeben sich bestimmte Konsequenzen, die durch das gesamte System sichtbar sind. Es wird davon ausgegangen, daß es nützlich ist, zumindest auf allgemeine Weise die größeren Umrisse der Hardwareei­ genschaften des Testsystems zu beschreiben. Selbst wenn ei­ nige dieser Eigenschaften zufällig sind, wird die Kenntnis derselben trotzdem eine Anerkennung der verschiedenen Bei­ spiele unterstützen, die verwendet werden, um die Erfindung darzustellen.
Man betrachte zu Beginn vier eher große Kartenkäfige. Außer Leistungszufuhren und Wasserkühlung (Ventilatoren können in einer sauberen Raumumgebung eine Verschmutzungsquelle dar­ stellen) umfaßt jeder Kartenkäfig eine Hauptplatine, eine Vorderfläche und eine Rückfläche. In jeden Kartenkäfig kön­ nen bis zu 9 Anordnungen plaziert werden. Jede Anordnung umfaßt eine Testortsteuerung, eine DUT-Tester und eine Pin­ elektronik. Nachfolgend wird in groben Zügen dargestellt, wie Testortsteuerungen verbunden werden, was einige Busse umfassen wird, die verwendet werden, um Verkettungen (Dai­ sy-Chains) zu erzeugen.
Ein kurzer Exkurs bezüglich des Begriffs "Verkettung" ist an dieser Stelle vielleicht angebracht. Man betrachte die Systemelemente A, B, C und D. Angenommen, dieselben sollen in dieser Reihenfolge verkettet werden. Man könnte sagen, daß es einen Informations- oder Steuerweg gibt, der A ver­ läßt und in D geht, daß B selektiv Verkehr weiterleiten kann, der dann B verläßt und in C geht, und daß C selektiv Verkehr weiterleiten kann, der dann in D geht. Diese glei­ che Art von Anordnungen können auch für Verkehr in der an­ deren Richtung existieren. Verkettungen werden oft verwen­ det, um Prioritätsschemata zu erzeugen, dieselben werden hier verwendet, um Master/Slave-Beziehungen zwischen ver­ schiedenen Testortsteuerungen zu erzeugen. Diese verkette­ ten Kommunikationsanordnungen werden mit dem Zusatzwort "DSY" statt "BUS" bezeichnet. Somit kann statt auf einen Befehl/Datenbus auf einen Befehl/Daten-DSY Bezug genommen werden. Nun kann der Gedanke, daß Informationen "in B ein­ dringen und selektiv weitergeleitet werden", darauf hindeu­ ten, daß der Verkehr auf einen getrennten Satz von Leitern reproduziert wird, bevor er weitergeleitet wird. Es könnte so sein, aber aus Leistungsgründen ist es eher ein regulä­ rer Bus mit adressierbaren Einheiten. Durch eine program­ mierbare Adreßabbildungsanordnung und die Fähigkeit, stro­ mabwärtige Testortsteuerungen "stillzulegen" kann erreicht werden, daß der einzelne Bus so logisch als eine Mehrzahl von Verkettungen erscheint (d. h. so funktioniert). Schließlich ist offensichtlich, daß die Verkettungen Hoch­ leistungswege für Befehl und Steuerinformationen sind, und daß, wenn sie dies nicht wären, man nicht erwarten könnte, daß eine Master/Slave-Kombination (Mehrfachort-Teststation) so schnell arbeitet wie ein einzelner Testort. Zugunsten der Verkettungsleistungsfähigkeit muß gesagt werden, daß die verschiedenen DSY ihre jeweiligen Kartenkäfige nicht verlassen. Der Effekt dieser Entscheidung ist, daß einige Beschränkungen auferlegt werden, welche Testorte (und somit auch wie viele) verbunden werden können. Im Prinzip gibt es keinen grundlegenden Bedarf für diese Beschränkung, noch gibt es einen allgemeinen Mangel an technischer Praktikabi­ lität (es könnte durchgeführt werden), es wird lediglich davon ausgegangen, daß das Erweitern der DSYs wesentliche Kosten für einen relativ geringen zusätzlichen Vorteil be­ wirken würde, da bereits 9 Testorte in einem Kartenkäfig bestehen.
Um die Erörterung von Fig. 1 wieder aufzunehmen, werden die verschiedenen Testortsteuerungen 4a-4z betrachtet, die die 4 Kartenkäfige besetzen können, jede mit 9 Testortsteuerun­ gen. Dieselben werden mit 4a-4f, 4g-4m, 4n-4t und 4u-4z be­ zeichnet. (Es macht nichts, daß dies nominal nur 26 Zusätze sind, wie vorher erklärt - der Leser ist eingeladen, sich vorzustellen, daß es irgendwo dort draußen weitere 10 Zu­ satzsymbole gibt.) Eine CMD/DAT DSY 17a (Befehls- und Da­ ten-Daisy-Chain = Befehls- und Datenverkettung) verbindet die Testortsteuerungen 4a-4f, die sich in einem Kartenkäfig befinden, während eine andere CMD/DAT DSY 17b die Testort­ steuerungen 4g-4m in einem anderen Kartenkäfig verbindet. Die gleiche Anordnung besteht für die verbleibenden Karten­ käfige und die Testortsteuerungen 4n-4t bzw. 4u-4z. Es wur­ de vorher angemerkt, daß die DSY die Kartenkäfige nicht verlassen, da das "Schwanzende" eines Busses, das tatsäch­ lich die DSY bildet, einen Kartenkäfig nicht verläßt und der Kopf des nächsten Segments in einem anderen Kartenkäfig wird. Statt dessen geht der Systembus 3 von der Testsy­ stemsteuerung 2 zu allen Testortsteuerungen, und jeder ist in der Lage, an dem Kopf eines DSY-Segments, das den Kar­ tenkäfig nicht verläßt, ein Master zu werden.
Die CMD/DAT DSY 17a-d, die erörtert wurden, existieren zwi­ schen den verschiedenen Testortsteuerungen 4a-4z. Es gibt eine ähnliche Anordnung für die SYNC/ERR DSY 18a-18d und die DUT-Tester 6a-6z. Die Synchronisations- und Fehlerin­ formationen, die durch die SYNC/ERR DSY 18 übertragen wer­ den, ermöglichen es den DUT-Testern, in Übereinstimmung zu funktionieren. Diese beiden Verkettungen (17 und 18) tragen leicht unterschiedliche Typen von Informationen, aber jede existiert als Teil des gleichen allgemeinen Mechanismus zum Verbinden eines oder mehrerer Testorte in eine Teststation.
Nun folgt eine Erörterung von Fig. 2, die eine vereinfachte Blockdiagrammerweiterung des DUT-Testers 6 von Fig. 1 ist, von dem bis zu 36 vorliegen können. Es ist hier ausrei­ chend, nur ein Beispiel derselben zu beschreiben. Ein Blick auf Fig. 2 zeigt, daß dieselbe ziemlich vollgestopft ist, insbesondere für ein "vereinfachtes" Blockdiagramm. Eini­ ges, was sich in dem DUT-Tester 6 befindet und in dem Blockdiagramm dargestellt ist, ist funktionell ziemlich kompliziert und nicht in dieser Form direkt erhältlich. Es ist hier angebracht, zwei Punkte darzulegen. Zunächst ist es der Hauptzweck der Aufnahme von Fig. 2, die Basiseigen­ schaften einer wichtigen Betriebsumgebung innerhalb des ge­ samten nicht-flüchtigen Speichertestsystems 1 zu beschrei­ ben. Die Erfindungen) die vollständig in Verbindung mit Fig. 3 und nachfolgenden Figuren beschrieben ist, sind ent­ weder Erweiterungen der Mechanismen, die in der folgenden Beschreibung von Fig. 2 dargelegt sind, oder sie sind neue Mechanismen, deren Motivationsvoraussetzung in Fig. 2 zu finden ist. Jedenfalls ist, während dies geschrieben wird, nicht genau bekannt, was davon dem Leser vorliegt. Das der­ zeitige Ziel ist es, einen vereinfachten und doch informa­ tiven Ausgangspunkt für zahlreiche unterschiedliche detail­ lierte Beschreibungen von unterschiedlichen bevorzugten Ausführungsbeispielen zu liefern, so daß jede derselben so genau wie angemessen sein kann (im Gegensatz zu einer "Rie­ sen"-Spezifikation, die alles über jede unterschiedliche Erfindung offenbart). Der zweite Punkt ist, daß das ausge­ dehnte oder erweiterte Material, obwohl es im allgemeinen in Gesamtübereinstimmung mit Fig. 2 ist, Informationen ent­ halten kann, die nicht genau mit der vereinfachten Version übereinstimmen. Dies bedeutet nicht, daß ein Fehler vor­ liegt oder daß die Dinge entscheidend widersprüchlich sind, sondern dies tritt auf, weil es manchmal schwierig oder un­ möglich ist, etwas so zu vereinfachen, daß es das exakte Abbild in Miniatur ist. Die Situation ist eher so wie bei Landkarten. Eine Standardgrößenstraßenkarte von Colorado zeigt, daß man, wenn man auf der I-70 nach Osten fährt, auf der I-25 bei Denver nach Norden fahren kann. Dies sieht aus wie eine Linkskurve. Und obwohl es tatsächlich eine Links­ kurve war, ist es jetzt keine, und eine detaillierte Karte dieser Kreuzung wird eine Sequenz von Teilkurven und dazwi­ schenliegenden Straßenabschnitten zeigen. Aber niemand wür­ de sagen, daß die Standardgrößenstraßenkarte falsch ist, sie ist für ihre Abstraktionsebene korrekt. Gleichartig da­ zu und trotz der ziemlich überfüllten Erscheinung ist Fig. 2 tatsächlich eine Vereinfachung, die mit einer mittleren Abstraktionsebene funktioniert, aber einige anscheinende Linkskurven sind in Wirklichkeit einfach keine Linkskurven.
Wie es in Fig. 1 gezeigt ist, ist das Haupteingangssignal an dem DUT-Tester 6 ein Beispiel des Testortbusses 5, des­ sen Ursprung in der Testortsteuerung 4 liegt, die dem Bei­ spiel des betreffenden DUT-Testers 6 zugeordnet ist. Der Testortbus 5 ist mit einem Mikrocontroller-Sequenzer 19 ge­ koppelt, der mit einem Spezialmikroprozessor verglichen werden kann. Derselbe ruft Anweisungen von einem Programm ab, das in einem Programmspeicher gespeichert ist, der ent­ weder in dem Mikrocontroller-Sequenzer 6 (PGM SRAM 20) ent­ halten sein kann oder außerhalb desselben sein kann (EXT. DRAM 21). Obwohl es so scheint, daß diese beiden Spei­ cher von einer im wesentlichen logischen gemeinsamen Adres­ se 63 adressiert werden, die als ein Programmzähler (oder eine Anweisungsabrufadresse) dient und beides kann eine Programmierquelle sein, die ausgeführt werden muß, ist fol­ gendes zu beachten: (1) nur einer der Speicher führt Anwei­ sungsabrufspeicherzyklen während jeder Zeitperiode durch, und (2) in der Tat werden sie durch elektrisch unterschied­ liche Signale adressiert. Der SRAM ist schnell und ermög­ licht einen wirklichen Direktzugriff, aber verbraucht in­ nerhalb des Mikrocontroller-Sequenzers 19 (der eine große IC ist) wertvollen Platz, daher ist seine Größe beschränkt. Der externe DRAM kann in einstellbaren Ausmaßen von beacht­ licher Menge geliefert werden, ist jedoch nur schnell, wenn in aufeinanderfolgenden Blöcken auf denselben zugegriffen wird, die lineare Ausführung und keine Verzweigung umfas­ sen. Das Programmieren in dem SRAM 20 ist meistens am in­ tensivsten algorithmisch, während der EXT. DRAM 21 am besten für Material geeignet ist, das nicht leicht durch algorith­ mische Prozesse erzeugt werden kann, wie z. B. Initialisie­ rungsroutinen und zufällige oder unregelmäßige Daten.
Das Anweisungswort, das durch den Mikrocontroller-Sequenzer 19 ausgeführt wird, ist relativ breit: 208 Bits. Es besteht aus 13 16-Bit-Feldern. Diese Felder stellen oft abgerufene Anweisungsinformationen für Mechanismen dar, die außerhalb des ordnungsgemäßen Mikrocontroller-Sequenzers liegen. Sol­ che Felder sind für ihre zugeordneten Mechanismen reser­ viert. Ein Satz von ALU-Befehlen 22 ist an eine Sammlung von 8 16-Bit-ALUs 24 angelegt, während andere an verschie­ dene andere Mechanismen verteilt werden, die durch den DUT- Tester verteilt sind. Diese letztere Situation ist durch die Linien und die Bezeichnung "Verschiedene Steuerungswer­ te & Anweisungen" 42 dargestellt.
Die 8 16-Bit-ALUs (24) weisen jeweils ein herkömmliches Re­ pertoire an arithmetischen Anweisungen auf, die um zugeord­ nete 16-Bit-Ergebnisregister aufgebaut sind (jede ALU um­ faßt außerdem mehrere andere Register). Drei dieser Ergeb­ nisregister und deren zugeordnete ALUs sind zum Erzeugen von X, Y und Z Adreßkomponenten 27, die verschieden zu ei­ ner vollständigen Adresse kombiniert werden, die an das DUT geliefert wird. Zwei weitere der 8 ALU/Register (DH und DL) sind vorgesehen, um zu der algorithmischen Erzeugung von 32 Bit-Datenstrukturen 28 beizutragen, die zwischen einem höchstwertigen Abschnitt (DH) und einem niedrigstwertigen Abschnitt (DL) aufgeteilt sind. Die letzten drei ALU/Register (A, B, C) werden als Zähler verwendet und tra­ gen zu der Herstellung von verschiedenen Programmsteue­ rungsflags 25 bei, die zur Programmsteuerung und Verzwei­ gung bei der Vervollständigung einer programmatisch spezi­ fizierten Anzahl von Iterationen oder anderen numerischen Bedingungen beitragen. Diese Programmsteuerungsflags 25 werden zu dem Microcontroller-Sequenzer 19 zurückgesendet, wo sie den Wert der Anweisungsabrufadresse auf Arten und Weisen beeinflussen, die denjenigen vertraut sind, die et­ was von Mikroprozessoren verstehen. Es gibt außerdem ver­ schiedene andere Flags 55, die ebenfalls verwendet werden können, um eine Programmverzweigung zu beeinflussen. Diese haben ihren Ursprung zusammen mit verschiedenen anderen Me­ chanismen in dem DUT-Tester 6, die durch die unterschiedli­ chen Felder des abgerufenen Anweisungsworts gesteuert wer­ den. Ein spezifisches zusätzliches Flag ist ausdrücklich als ein getrenntes Element gezeigt: VEC_FIFO_FULL 26. Bei einer anderen, weniger detaillierten Zeichnung kann dassel­ be mit den anderen Flags 55 zusammengefaßt werden. Hier wurde es getrennt, um dazu beizutragen, einen Aspekt des Betriebs des Microcontroller-Sequenzers 19 zu erklären.
Das VEC_FIFO_FULL hält (temporär) die weitere Programmaus­ führung durch den Mikrocontroller-Sequenzer 19 an. Es lie­ gen viele Pipelinestufen zwischen den Anweisungen, die durch den Mikrocontroller-Sequenzer 19 abgerufen werden, und dem Mechanismus, der schließlich Testvektoren ausgibt, die an das DUT angelegt werden sollen. Außerdem sind ein Teil des Gepäcks, das einen Vektor begleitet, während der­ selbe sich in die Richtung bewegt, um das DUT angelegt zu werden, Informationen, die die Rate des eventuellen Anle­ gens des Vektors betreffen, oder die Dauer jedes Vektors. Somit muß die Rate des Anlegens des Vektors an das DUT nicht konstant sein und insbesondere kann eine Gruppe von Vektoren länger zum Anlegen benötigen als zum Erzeugen. Der Microcontroller-Sequenzer führt das Programmieren einfach mit seiner maximalen Rate aus. Aber selbstverständlich muß die Rate des "Vektorverbrauchs" im Durchschnitt gleich sein wie die Rate der "Vektorherstellung", sonst müßte die Pipe­ line unbegrenzt elastisch sein. Es gibt einen Vektor FIFO 45 an dem Ausgang des Adreßabbilders 29, der nachfolgend erörtert wird, und derselbe dient als eine elastische Kapa­ zität in der Pipeline. Das Signal VEC_FIFO_FULL wird ver­ wendet, um zu verhindern, daß die begrenzte Anzahl von Stu­ fen in der Pipeline überschritten wird, durch Bewirken ei­ nes temporären Stillstands bei der Herstellung von neuen Vektoren an dem Kopfende der Pipeline.
Nachfolgend werden die (3 × 16 = 84 Bits von) X, Y und Z Adreßkomponenten 27 an einen Adreßabbilder 29 angelegt, dessen Ausgangssignal eine im voraus ausgewählte beinahe beliebige Neuanordnung der Adreßwerte in dem sortierten 48- Bit-Adreßplatz ist. Als Ausgangspunkt zum Anerkennen des­ selben nehme man an, daß der Adreßabbilder 29 ein Speicher ist, der einen 48-Bit-Adreßplatz vollständig besetzt, und daß derselbe an jeder Adresse einen 48-Bit-Wert hält. (Vo­ rübergehend ist nicht zu beachten, daß ein solcher Speicher - zumindest heutzutage - die Größe eines großen Kühl­ schranks hätte.) Wenn man von einem solchen Speicher aus­ geht, könnte eine Nachschlagtabelle implementiert werden, die jede angelegte Adresse in einen anderen, beliebig aus­ gewählten 48-Bit-Wert abbilden könnte, der dann als eine Austauschadresse verwendet werden könne. Der Grund dafür, daß ein solches Adreßabbilden wünschenswert ist, ist, daß die X-, Y- und Z-Adreßkomponenten im allgemeinen eine nütz­ liche Bedeutung im Zusammenhang der internen Architektur eines speziellen DUT aufweisen, die höchstwahrscheinlich nicht mit einem großen linearen Decodierer implementiert ist. Die Gedanken von Zeilen, Spalten und Schichten, Blöc­ ken oder Seiten können für den Testingenieur sehr nützlich sein, und Fehler, die in Positionen auftreten, die physika­ lisch nahe beieinander liegen, können eine entsprechende Nähe ihrer X-, Y- und Z-Adressen aufweisen. Solche Struktu­ ren in den Testergebnissen können wertvoll sein beim Erken­ nen dessen, was falsch ist, und bei dem Versuch, dies zu reparieren, egal ob es auf der Entwicklungsebene oder einer Herstellungsebene zum Neuprogrammieren eines Teils ist, um den Betrieb eines defekten Abschnitts mit dem eines zusätz­ lichen Abschnitts zu überbrücken. Aus diesem Denken ergeben sich zwei Punkte. Der erste ist das Einschränken der 48 Bits zu der tatsächlichen Anzahl von Bits (etwa 32 oder vielleicht 16), die an das DUT angelegt werden sollen. Nachfolgend wird kurz erwähnt, wie das Einschränken durch­ geführt wird, und es wird im großen und ganzen durch Weg­ nehmen von soundsovielen Bits von X, soundsovielen von Y und den Rest von Z durchgeführt. Aber nicht ausschließlich, und dies ist der zweite Punkt, weil bestimmte Adressen in­ nerhalb einer Schaltungsanordnung liegen können, die ein Links-für-Rechts (oder Links-für-Rechts und Oben-für-Unten) Spiegelbild eines weiteren Abschnitts der Schaltungsanord­ nung ist. Dies hat den Effekt der Neuanordnung dessen, was die Bits bedeuten, abhängig davon, welche aufeinanderfol­ genden Adreßwerte innerhalb dieser Schaltungsanordnung in physikalischer Reihenfolge sind. Diese Chiplayouteigen­ schaft kann oft auftreten, und es kann gut der Fall sein, daß die Tatsache, wie eine Gruppe von Bits, beispielsweise y, interpretiert wird, von dem begleitenden Wert von ande­ ren, beispielsweise Z-Bits, abhängen kann. Der Adreßabbil­ der 29 ist vorgesehen, um es den rohen X-, Y- und Z- Adressen zu ermöglichen, "neu gepackt" zu werden, um dies zum Vorteil derer zu reflektieren, die Speicher mit solchen internen architektonischen Anordnungen testen würden. So wie es tatsächlich durchgeführt wird, ist der Adreßabbilder 29 aus einer relativ großen Anzahl von miteinander verbun­ denen Multiplexern aufgebaut. Derselbe kann das vollständig beliebige Nachschlagetabelle-Verhalten eines voll besetzten Speicherdecodierschemas implementieren, wie es oben zu Er­ klärungszwecken temporär angenommen wurde. Derselbe kann jedoch Teilfelder der X-, Y- und Z-Adreßkomponenten wie be­ nötigt neu anordnen, insbesondere, da es jetzt einen weite­ ren Mechanismus gibt, der das Einschränken von 48 Bits zu der tatsächlich benötigten Anzahl durchführt. Der Adreßab­ bilder 29 enthält außerdem drei 16-Bit(Adreß-) Nachschlage­ tabellen, die es demselben ermöglichen, beliebiges be­ schränktes Abbilden innerhalb lokaler Bereiche durchzufüh­ ren.
Das abgebildete Adreßausgangssignal 30 des Adreßabbilders 29 wird als eine Adresse an einen Puffer-Speicher 31 (AUX RAM) 31 und einen Fehlererfassungs-RAM 32 angelegt, welche, obwohl sie getrennte Funktionen aufweisen, trotzdem als auswählbare Teile in die vier Speichersätze implementiert werden können, die zusammen den inneren Testspeicher 128 bilden. Das abgebildete Adreßausgangssignal 30 wird eben­ falls als ein Eingangssignal an eine Adreßbitauswahlschal­ tung 37 angelegt, die nachfolgend beschrieben wird. Der in­ nere Testspeicher kann konfiguriert werden, um viele Bei­ spiele von verschiedenen RAM zu enthalten, die für ver­ schiedene Funktionen verwendet werden. Dies wird durchge­ führt durch Erklären, daß bestimmte Abschnitte der unter­ schiedlichen Speichersätze für die zugeordneten Zwecke ver­ wendet werden sollen. In Fig. 2 ist eine solche Anordnung gezeigt, die Anordnungen können im Verlauf des Testens ge­ ändert werden, und die ganze Angelegenheit mit der Spei­ chersatzverwendung sollte als sehr dynamisch betrachtet werden. Keines der Bestandteile des inneren Testspeichers (z. B. der Fehlererfassungs-RAM 32) sind dauerhafte Hard­ wareinstallationen. Was dauerhaft ist, sind die vier Spei­ chersätze. Aber welcher Teil welches Speichersatzes zu ei­ ner bestimmten Zeit ein Fehlererfassungs-RAM ist, (falls überhaupt einer definiert ist), hängt davon ab, welche Kon­ figuration gebildet wird.
Nachfolgend wird der Puffer-Speicher 31 betrachtet. Seine Funktion ist es, Datenstrukturen 33 und Adressen 34 beizu­ behalten, die an das DUT angelegt werden können. Diese sind logisch getrennte Ausgangssignale von dem Puffer-Speicher 31, obwohl der Puffer-Speicher 31 kein "Dual-Port-Speicher" ist, sondern vorzugsweise aus Abschnitten von zwei unter­ schiedlichen Speichersätzen besteht. Um dem zu entsprechen, kann es sein, daß gespeicherte Daten 33 in einem Speicher­ satz gespeichert werden, während gespeicherte Adressen 34 in einem anderen gespeichert werden. Außerdem wurde kein expliziter Mechanismus zum Schreiben auf den Puffer- Speicher 31 gezeigt. Eine Möglichkeit, wie dies durchge­ führt werden kann, ist durch eine adressierte Busoperati­ on, die durch eine Testortsteuerung 4 auf Befehl des Pro­ gramms, die dieselbe ausführt, ausgelöst wird. (Es gibt ei­ nen darunterliegenden "Versorgungsdienstleistungs-" Bus, der als "Ringbus" bezeichnet wird [der nicht gezeigt ist, da derselbe die Zeichnung enorm überhäufen würde], der zu fast allem in Fig. 2 führt). Eine andere und schnellere Möglichkeit zum Schreiben von Informationen auf die Spei­ chersätze ist in Verbindung mit Fig. 3 beschrieben.
Der Fehlererfassungs-RAM 32 wird durch die gleiche Adresse adressiert, die an den Puffer-Speicher 31 angelegt wird, und speichert Informationen über Fehler oder ruft diese ab, wobei diese Operationen in Verbindung mit einer Nachdeco­ dierschaltung durchgeführt werden, die nachfolgend erörtert wird. Wie bei den Wegen 33 und 34 von dem Puffer-Speicher 31 sind die Wege 61 (in den Fehlererfassungs-RAM) und 62 (von dem Fehlererfassungs-RAM) vorzugsweise multiplexierte Ausgänge von einem Mehrbankspeicher (dem Fehlererfassungs- RAM 32) gemäß Konfigurationsinformationen, die durch den Ringbus (nicht gezeigt) verteilt werden.
Es ist anzumerken, daß der Daten-MUX 35 als Eingangssignale die gespeicherten Datenausgangssignale 33 von dem Puffer- Speicher 31 umfaßt, und auch Daten 28 von den Registers DH und DL in der Sammlung 24 von ALUs. Der Daten-MUX 35 wählt aus, welche dieser Eingangssignale (28, 32) als sein Aus­ gangssignal 38 dargestellt wird, das dann als eine der bei­ den Vektorkomponenten an eine Sendevektorabbil­ der/Seriellumsetzer/Empfangsvektorvergleichsdatenschaltung 40 angelegt wird (die andere Komponente ist das Ausgangssi­ gnal 39 der Adreßbitauswahlschaltung 37.) Der Datenmulti­ plexer 35 führt diese Auswahl gemäß den in PGM SRAM 20 ge­ speicherten Werten 36 durch.
Die Schaltung 40 kann drei Funktionen durchführen: Zusam­ mensetzen von Vektorkomponenten (38, 39) in eine sortierte logische Darstellung eines gesamten Vektors, der an das DUT angelegt (übertragen) werden soll, Anlegen einer beliebigen dynamischen Korrespondenz (Abbilden) zwischen den sortier­ ten Bits der logischen Darstellung des Sendevektors und der tatsächlichen physikalischen Kanalanzahl der Pinelektronik (d. h. welche Sondenspitze) das DUT für dieses Signal (d. h. das Bit in dem Vektor) kontaktieren wird, und Kooperie­ ren mit dem Compilierer bei der Unterteilung eines gesamten logischen Vektors in Stücke, die getrennt und in Reihenfol­ ge (Seriellumsetzung) für DUTs angelegt werden sollen, die so etwas zulassen. Welche dieser Funktionen durchgeführt wird, wird durch Steuersignale von einem SRAM 41 bestimmt, der außerdem gemäß einem Feld in der 208-Bit-Anweisung, die durch den Mikrocontroller-Sequenzen 19 abgerufen wird, adressiert wird. Das Ausgangssignal der Schaltung 40 ist ein bis zu 64-Bit-Vektor 44, der an einen Vektor FIFO 45 angelegt wird, der, wenn er voll ist, das Signal VEC_FIFO_FULL 26 erzeugt, dessen Bedeutung und Verwendung oben erörtert wurde. Der Vektor an der Spitze des Vektors FIFO 45 wird beim Empfang eines Signals VEC_FIFO_UNLOAD 47, das an einem Periodengenerator 49 (der nachfolgend erörtert wird) entsteht, von demselben entfernt. Solche entfernen Vektoren (46) werden an eine Zeitgebungs/Formatierungs- und Vergleichsschaltung 52 angelegt, die über das zugeordnete Beispiel der Pinelektronik 9 mit dem DUT verbunden ist. Das heißt, jedes Beispiel der Pinelektronik 9 empfängt gesende­ te und empfangene Vektoren 7 und Pinelektronikkonfigurati­ onsinformationen 8 von ihrer zugeordneten Zeitge­ bungs/Formatierungs- und Vergleichsschaltung 52.
Die Zeitgebungs/Formatierungs- und Vergleichsschaltung 52 umfaßt einen internen SRAM 54, der durch die gleiche Anwei­ sungsadresse ("A" in dem kleinen Kreis) adressiert wird wie der Programm-RAM 20 des Mikrocontroller-Sequenzers 19. (Statt dem internen SRAM 54 kann ein externer DRAM 53 ver­ wendet werden.) Der interne SRAM 54 (oder externe DRAM 53) unterstützt die Herstellung von Treiber- und Vergleichszy­ klen. Die Treiberzyklen legen einen Sendevektor an das DUT an. Die Vergleichszyklen empfangen einen Vektor, der von dem DUT dargestellt wird und untersuchen denselben, um zu bestimmen, ob er mit vorher gesendeten Vergleichdaten über­ einstimmt. Sowohl die Treiber- als auch die Vergleichszy­ klus sind bezüglich ihrer Dauer einstellbar, und bezüglich dessen, ob eine Belastung angelegt ist oder nicht, wann diese angelegt ist und wann Daten zwischengespeichert oder abgetastet werden. Der Vergleich erzeugt einen 64-Bit-Wert 56, der an einen Empfangsvektorumkehrabbilder/Serien- Parallelumsetzer 57, dessen Funktion als die logische Um­ kehrung der Schaltung 40 betrachtet werden kann. (Der Be­ trieb der Schaltung 57 wird durch einen SRAM 58 gesteuert, der der Steuerung der Schaltung 40 durch den SRAM 41 ent­ spricht.) Danach wird das Ausgangssignal 59 der Schaltung 57 an die Nachdecodierschaltung 60 angelegt. Derzeit reicht es aus, zu sagen, daß die Nachdecodierschaltung 60 über programmatische Kriterien sowohl ankommende Fehlerinforma­ tionen 59 und (vorher) gespeicherte Fehlerinformationen 60 (die in dem Fehlererfassungs-RAM gespeichert sind) untersu­ chen kann, um komprimierte und leichter interpretierbare Fehlerinformationen zu erzeugen, die dann über den Weg 61 zurück in den Fehlererfassungs-RAM 32 gespeichert werden können. Ein Beispiel wäre es, eine Zahl zu erzeugen, wie oft ein Fehler in einem speziellen Bereich von Adressen auftrat, wobei diese Informationen nützlich wären für die Entscheidung, wann durch Aktivieren von Ersatzschaltungen eine Reparatur auf dem Chip versucht werden soll.
Nachfolgend wird der Periodengenerator 49 und sein zugeord­ neter Zeitgebungs-SRAM 51 beschrieben. Diese sprechen auf ein 8-Bit-Signal T_SEL 43 an, das für jede 208-Bit- Anweisung, die durch den Mikrocontroller-Sequenzer 19 abge­ rufen wird, eine Dauer für den zugeordneten Betrieb der Zeitgebungs/Formatierungs- und Vergleichsschaltung 52 be­ stimmt. T_SEL 43 ist ein Element der verschiedenen Steue­ rungswerte und Anweisungen 42, die durch die unterschiedli­ chen Felder in der abgerufenen Anweisung dargestellt sind. Als ein 8-Bit-Wert kann dieselbe 265 unterschiedliche Dinge darstellen oder codieren. In diesem Fall sind diese "Dinge" 28-Bit-Werte, die in dem Zeitgebungs-SRAM 51 gespeichert sind und durch T_SEL adressiert werden. Jeder adressierte 28-Bit-Wert (23) spezifiziert eine gewünschte Dauer mit ei­ ner 19,5 Pikosekunden-Auflösung. Die Sequenz von darauf zu­ gegriffenen 28-Bit-Dauerwerten (23) ist in einer Periode FIFO 50 gespeichert, so daß die einzelnen Elemente dieser Sequenz bei der Wiedergewinnung des beabsichtigten entspre­ chenden Vektors, der in dem Vektor FIFO 45 gespeichert ist, wiedergewonnen und synchron angelegt werden.
Ein grobes Zeitgebungswertfeld in dem ältesten Eintrag in dem FIFO 50 überträgt Dauerinformationen mit einer Auflö­ sung von 5 Nanosekunden und erzeugt davon ein Signal VEC_FIFO_UNLOAD 47, das den nächsten Sendevektor von dem Vektor FIFO 45 zu der Zeitgebungs/Formatierungs- und Ver­ gleichsschaltung 52 überträgt. Ein Begleitsignal Zeitge­ bungsrest 48 wird ebenfalls an die Schaltung 52 angelegt. Dort wird die endgültige Auflösung auf 19,5 Pikosekunden durchgeführt.
Nachfolgend wird auf Fig. 3 Bezug genommen, die ein verein­ fachtes Blockdiagramm 64 des inneren Testspeichers 128 in dem Blockdiagramm von Fig. 2 38982 00070 552 001000280000000200012000285913887100040 0002010147910 00004 38863ist. Derselbe empfängt eine abgebildete 48-Bit-Adresse 30 von dem Adreßabbilder 29, die an verschiedene Adreßklassifizierer 77, 78 und 79 angelegt wird. Die Adreßklassifizierer sind Speichersätzen 73-76 zu­ geordnet, die jeweils vollständige Speichermechanismen sind, die einzeln verschiedene Funktionen durchführen kön­ nen, wie z. B. ein ECR 32 zu sein. Zwei dieser Speichersät­ ze (73, 74) sind von einem externen DRAM, während zwei von einem inneren SRAM sind. Die beiden externen DRAM- Speichersätze weisen in Wirklichkeit immer die gleiche Adreßklassifiziererfunktion auf, und teilen somit einen ge­ meinsamen Adreßklassifizierer 77. Die inneren SRAM- Speichersätze 75 und 76 weisen jeweils ihre eigenen zuge­ ordneten Adreßklassifizierer 78 bzw. 79 auf. Diese Adreßklassifizierer können entweder eine Adresse ungeändert durchleiten, oder dieselbe auf Arten und Weisen modifizie­ ren, die nachfolgend detailliert beschrieben werden.
Jeder Speichersatz umfaßt eine Speichersatzsteuerung, die externen DRAM-Speichersätze 73 und 74 weisen DRAM- Speichersatzsteuerungen 65 bzw. 66 auf, während die inneren SRAM-Speichersätze 75 und 76 jeweilige SRAM- Speichersatzsteuerungen 67 bzw. 68 aufweisen. Während des Testens eines DUT kommt die Adresse für Speichertransaktio­ nen, die an einen dieser Speichersätze gerichtet wird, an der zugeordneten Speichersatzsteuerung von dem jeweils zu­ geordneten Adreßklassifizierer an. Während des Testens ei­ nes DUT werden Fehlerdaten 61, die von der Nachdecodier­ schaltung 60 ankommen, und die in einen ECR geschrieben werden sollen, zunächst an die Datenklassifizierer 80-83 angelegt, von denen jeweils einer jedem Speichersatz zuge­ ordnet ist. Die Funktion der Datenklassifizierer wird nach­ folgend beschrieben. Dieselben können Daten, die an diesel­ ben angelegt werden, ändern oder nicht, abhängig davon, wie dieselben konfiguriert sind und welche Funktion dieselben durchführen sollen. Die Adreß- und Datenklassifizierer stellen Hochgeschwindigkeitswege für Adressen bzw. Daten dar, die mit der höchsten nötigen Geschwindigkeit arbeiten sollen. In Kürze wird aufgezeigt, daß der Ringbus (noch nicht gezeigt) eine weitere Möglichkeit liefert, um Adres­ sen und Daten zu den Speichersätzen zu übertragen.
An diesem Punkt stehen vier Speichersatzsteuerungen (65-68) zur Verfügung, die jeweils ankommende (klassifizierte) Adressen und (klassifizierte) Daten aufweisen. Jede dieser Speichersatzsteuerungen ist mit einem zugeordneten Speicher gekoppelt: die DRAM-Speichersatzsteuerungen 73 und 74 sind jeweils mit den externen DRAM 69 und 70 gekoppelt, während die SRAM-Speichersatzsteuerungen 75 und 76 jeweils mit den inneren RAM 71 bzw. 72 gekoppelt sind. Diese Anordnungen bilden die vier Speichersätze 73-76, von denen zwei (75, 76) geringe Mengen an Hochgeschwindigkeits-SRAM aufweisen, und von denen zwei (73, 74) große Mengen von langsamerem DRAM aufweisen. Zu diesem Zeitpunkt ist von Interesse, wie die DRAM-Speichersätze so schnell wie die SRAM- Speichersätze gemacht werden können, und auch, wie bestimm­ te Alternativen bezüglich der Konfiguration des DRAM einge­ baut werden können, abhängig von den Benutzervorlieben und der Testprogrammstrategie. Somit ergibt sich, daß die DRAM- Speichersatzsteuerungen 65 und 66 konfigurierbar sind, un­ terschiedliche Typen von Speichertransaktionen durchführen und überhaupt nicht gleich sind wie die einfacheren SRAM- Speichersatzsteuerungen 67 und 68. Der Kürze wegen zeigt Fig. 3 nicht die Struktur, die diese Flexibilität liefert, für den Moment soll nur gesagt werden, daß jede Speicher­ satzsteuerung mit dem Ringbus (noch nicht gezeigt)verbunden ist, von dem dieselbe in dem gewünschten Betriebsmodus und der gewünschten Konfiguration angewiesen wird. Einige die­ ser Modi beinhalten, wie Daten gespeichert sind, und einige befassen sich damit, wie dieselben wieder herauszubekommen sind. Abschließend ist anzumerken, daß jeder Speichersatz ein zugeordnetes Datenausgangssignal (62A-D) aufweist, das für eine weitere Verarbeitung zu dem Nachdecodiermechanis­ mus 60 gesendet wird. Es ist außerdem anzumerken, daß die Datenausgangssignale von den Speichersätzen 0 und 2 an ei­ nen Multiplexer 126 angelegt werden, dessen Ausgangssignal GESPEICHERTE DATEN 33 wird, die an den Datenmultiplexer 35 gesendet werden. Gleichartig dazu werden die Datenausgangs­ signale von den Speichersätzen 1 und 3 an einen Multiplexer 127 angelegt, dessen Ausgangssignal GESPEICHERTE ADRESSEN wird, die zu dem Adreßbitauswahlmultiplexer 37 gesendet werden. Der Grund für den Einbau dieser Multiplexer 126 und 127 und die Einzelheiten, wie dieselben gesteuert werden, werden nachfolgend erörtert.
Nachfolgend wird auf Fig. 4 Bezug genommen, die ein detail­ lierteres Blockdiagramm 84 des inneren Testspeichers 128 ist, der in Verbindung mit Fig. 3 beschrieben wurde. Es ist überwiegend gleich, und ähnliche Elemente wurden mit ge­ meinsamen Bezugszeichen bezeichnet. Für die Zwecke der vor­ liegenden Erfindung reicht es aus, auf die inkrementalen Differenzen hinzuweisen, die in Fig. 4 vorliegen. Insbeson­ dere ist anzumerken, daß jedem der Adreßklassifizierer (78-79) ein zugeordneter Multiplexer (85-87) vorausgeht. Diese Multiplexierer unterstützen den Prozeß der Adressenweiter­ entwicklung, und insbesondere dabei, die Größe der Adresse von achtundvierzig Bits auf zweiunddreißig Bits zu reduzie­ ren. Ferner wird angemerkt, daß der Ringbus 85 mit jedem der Speichersatzsteuerungen (65-68) gekoppelt ist. Es ist anzumerken, daß die Datenausgangssignale (62A-D) von den Speichersatzsteuerungen, sobald sie zu der Postdekodier­ schaltung 60 gelangen, an einem 4 : 1-Multiplexierer 94 ange­ legt werden, der gemäß einem Steuerregister 95, das durch den Ringbus eingestellt wird, bestimmt, welches Ausgangssi­ gnal für eine weitere Verarbeitung ausgewählt wird.
Das Hauptinteresse bei Fig. 4 hängt mit der Gesamtorganisa­ tion des Speichers zusammen, der durch die verschiedenen Speichersatzsteuerungen 65-68 gesteuert wird. In dem Fall von Speichersatz zwei (75) und dem Speichersatz drei (76), ist dieser Speicher einfach SRAM, der als ein einzelner (innerhalb des Speichersatzes desselben) Adreßraum angeord­ net ist, und der auf herkömmliche Weise arbeitet. In dem Fall von Speichersatz Null (73) und Speichersatz Eins (74) ist der Speicher für jeden drei Gruppen von jeweils vier Bänken, und das Format für eine Adresse hängt von den Mo­ dus- und Konfigurationsinformationen ab, die derzeit für diese Speichersätze gelten.
So weist der Speichersatz Null (73) beispielsweise drei Gruppen 88, 89 und 90 auf, während der Speichersatz Eins (74) Gruppen 91, 92 und 93 aufweist. Bei einem Hochge­ schwindigkeitsmodus für eine Zufallsadressierung werden aufeinander folgende Speichertransaktionen automatisch an unterschiedliche Gruppen gesendet (multiplexen), von denen jede ihren eigenen Hardwareweg für Interessen und Daten aufweist. Jede dieser Gruppen besteht aus vier Bänken (vier Beispiele eines Adreßraums), für die die Speicheroperatio­ nen gemäß Prinzipien und Praktiken, die in der Technik be­ kannt sind, verschachtelt werden können. Genauer gesagt, der Typ von DRAM, der derzeit für die Verwendung bevorzugt wird, ist SDRAM, was eine spezielle Strategie für das Ver­ schachteln impliziert. Es ist offensichtlich, daß es andere Typen von DRAM gibt und daß andere Mechanismen für die Ver­ schachtelung möglich sind, abgesehen von derjenigen, die nachfolgend beschrieben wird. Bei einem anderen Modus für langsamere Zufallsadressierung sind die Gruppen adressier­ bar und werden nicht automatisch ausgewählt. Bei diesem langsameren Modus werden Adreßbits für die Gruppe verwen­ det, um den Hardwareweg auszuwählen. Bei diesem Modus spe­ zifiziert eine Adresse eine Gruppe und eine Bankadresse in­ nerhalb dieser Gruppe von verschachtelten Bänken. Bei noch einem anderen Hochgeschwindigkeitsmodus mit gut funktionie­ render Adressierung sind sowohl das Multiplexen als auch das Verschachteln ausgeschaltet, und eine Adresse weist Gruppenauswahlbits Bankauswahlbits und In-Bank-Adreßbits auf. Bei einer Schmal-Wort-Betriebsweise werden noch weite­ re Adressierbits verwendet, um ein Feld in dem gesamten Wort zu spezifizieren, das das Ziel der Speichertransaktion ist.
Nachfolgend wird auf Fig. 5 Bezug genommen, die ein verein­ fachtes Blockdiagramm 96 einer DRAM-Speichersatzsteuerung (65, 66) ist, die in den Fig. 3 und 4 erscheint. Dieselbe empfängt als Eingangssignal KLASSIFIZIERTE ADRESSE 106, Mo­ dus- und Konfigurationsinformationen von dem Ringbus 85 und FEHLERDATENEINGANGSSIGNAL 105 von dem zugeordneten Da­ tenklassifizierer. Wie vorher erzeugt dieselbe DATENAUS­ GANGSSIGNAL (62A/B).
Es ist jedoch nun ersichtlich, daß andere Quellen von Adressen und Daten diese Mengen über den Ringbus 85 liefern können. Das heißt, es gibt eine Busschnittstelle 97, die den Ringbus mit der DRAM-Speichersatzsteuerung koppelt, und über die Schnittstelle sind DATEN VON DEM RINGBUS 99 und ADRESSEN VON DEM RINGBUS 100 verfügbar. Ein Multiplexer 104 wählt aus, ob FEHLERDATENEINGANGSSIGNAL 105 oder DATEN VON DEM RINGBUS 99 als Daten 107 weitergesendet werden, die dann an den DATENEINGANGSSIGNAL-Anschluß einer Master-DRAM- Steuerung 109 angelegt werden. Gleichartig dazu wählt ein Multiplexer 103 zwischen KLASSIFIZIERTER ADRESSE 106 und ADRESSE VON DEM RINGBUS 100 aus, um die Adresse 108 zu er­ zeugen, die an den ADRESS-Anschluß der Master-DRAM- Steuerung angelegt wird. Eine Sammlung von einem oder meh­ reren Registern 98, dessen Inhalt durch den Verkehr auf dem Ringbus eingestellt ist, erzeugt neue Signale 101 und 102, die die Auswahlen anzeigen, die durch die Multiplexer 103 bzw. 104 getroffen werden müssen.
Es ist ferner offensichtlich, daß DATENAUSGANGSSIGNAL (62A/B) zusätzlich an die Busschnittstelle 97 angelegt wer­ den, wodurch ermöglicht wird, daß DATENAUSGANGSSIGNAL über den Ringbus gesendet werden.
Eine Hauptfunktion der DRAM-Speichersatzsteuerung ist die Zuordnung oder Verteilung der verschiedenen Speichertrans­ aktionen unter den drei Gruppen. Bei einer Hochgeschwindig­ keitsbetriebsweise führt dieselbe diese Zuordnung auf eine zyklische Suchweise (Round-Robin-Weise) unter Verwendung (des Äquivalents) eines 1 : 3-Multiplexers 125 durch. Der Multiplexer 125 ist als eine gestrichelte Linie gezeigt, da es klar ist, daß sich bei dem vorliegenden bevorzugten Aus­ führungsbeispiel kein tatsächlicher Multiplexer an dieser Position befindet während in der Tat ein Multiplexer vor­ liegen könnte. Statt dessen gibt es mehrere Beispiele von adressierbaren Datenquellen und der Steuerung eines hoch entwickelten Regelbefolgungsmechanismus (eine Zustandsma­ schine).
Um die Erörterung von Fig. 5 abzuschließen, ist anzumerken, daß der 1 : 3-Multiplexer 125 drei Slave-SDRAM-Steuerungen (110-112) antreibt, wobei es eine solche Slave-SDRAM- Steuerung für die Gruppe 0, die Gruppe 1 und die Gruppe 2 gibt. Jede SDRAM-Slave-Steuerung weist als ihre Gruppe eine Sammlung von vier Bänken von SDRAM auf. Beispielsweise ist die SDRAM-Steuerung 110 für die Gruppe 0 mit den Bänken 113, 114, 115 und 116 gekoppelt. Auf ähnliche Weise weist die Gruppe 1 die Bänke 117-120 auf, während die Gruppe 2 die Bänke 121 bis 124 aufweist. Das Ergebnis ist eine Ge­ samtzahl von zwölf Bänken für jeden DRAM-Speichersatz, von denen es zwei gibt.
Der SDRAM jeder Gruppe kann angeordnet werden, um in ver­ schiedenen Modi oder Konfigurationen zu arbeiten. Wenn der­ selbe für Zufallsadressieroperation mit höchster Geschwin­ digkeit konfiguriert ist, tritt das Multiplexen zwischen Gruppen mit der höchsten Rate auf, und nachfolgende Spei­ cheroperationen werden immer und automatisch zu der näch­ sten Gruppe in einer zyklischen Sequenz davon gesendet. In­ nerhalb einer Gruppe werden Speicheroperation verschach­ telt, um dieselben gleichmäßig zwischen den vier Bänken zu verteilen. Hier wird ebenfalls eine regelmäßige zyklische Sequenz bevorzugt. Das Verschachteln erzeugt eine vierfache Erhöhung der Geschwindigkeit, die, wenn sie mit einer drei­ fachen Erhöhung, die durch das Multiplexen geliefert wird, kombiniert wird, eine Geschwindigkeitserhöhung um einen Faktor von zwölf ist. Diese Betriebsweise behandelt jede Bank als vollen Adreßraum, ohne zu versuchen, im Voraus zu steuern, welche der zwölf Bänke das Ziel für eine spezielle Speichertransaktion ist. Das heißt, zu speichernde Daten können in jede der zwölf Bänke kommen, und ein einfacher Lesevorgang von dem Speicher kann den Inhalt von jeder der zwölf Bänke wiedergewinnen. Es gibt keinen Grund dafür, zu erwarten, daß der Inhalt einer Adresse an einer Bank der gleiche ist wie der Inhalt dieser gleichen Adresse in einer anderen Bank. An diesem Punkt ist jedoch klar, daß Daten mit einer Rate gespeichert werden können, die mindestens zehnmal die Rate für eine einzelne Bank von DRAM ist. Der Preis, der dafür zu zahlen ist, ist selbstverständlich, daß der Inhalt dieser Adresse an allen zwölf Bänken (für R100- Betrieb) oder an allen drei Bänken (für R33-Betrieb) unter­ sucht werden muß, um Daten an einer Adresse auszulesen.
An diesem Punkt wird ein Teil der Terminologie und kurze Beschreibungen für einige der verschiedenen Modi und Konfi­ gurationen, die die DRAM-Speichersätze unterstützen können, dargelegt. Dies sind:
Zufall 100 MHZ (R100)
Vollgeschwindigkeitsschreiboperation, die drei multiplexierte Gruppen von jeweils vier ver­ schachtelten Bänken verwendet, um zufallsadres­ sierte Schreibvorgänge auf einen Adreßraum zu er­ lauben, der tiefenmäßig gleich wie eine Bank ist. Sowohl Multiplexen als auch Verschachteln werden verwendet. Daten werden auf die "nächste" Bank in der "nächsten" Gruppe geschrieben, und eine an­ kommende Adresse weist keine Bits auf, um eine spezielle Gruppe oder spezielle Bank zu identifi­ zieren.
Zufall 33 MHZ (R33)
Schreiboperation mit reduzierter Geschwindigkeit, die eine adressierte Gruppe von vier verschach­ telten Bänken verwendet, um zufallsadressierte Schreibvorgänge zu einem Adreßraum zu erlauben, der tiefenmäßig gleich wie drei Gruppen ist, was äquivalent ist zu einem Adreßraum, der drei Bänke tief ist. Verschachteln wird verwendet, aber Mul­ tiplexen nicht. Daten werden auf die "nächste" Bank in der adressierten Gruppe geschrieben, und eine Adresse weist Gruppenauswahlbits, aber keine Bankauswahlbits auf. Die Gruppenauswahlbits sind höchstwertige Adreßbits, so daß aufeinanderfol­ gende Adressen außer an Gruppengrenzen zu nach­ folgenden In-Bank-Positionen gehören, aber an ei­ ner Bank, die durch das automatische Verschach­ teln bestimmt wird.
Lokalisierte 100 MHZ (L100)
Vollgeschwindigkeitsoperation, die eine adres­ sierte Bank innerhalb einer adressierten Gruppe verwendet, um sowohl Schreib- als auch Lesevor­ gänge mit minimalen ROW-Adreßänderungen zu einem Adreßraum zu erlauben, der tiefenmäßig gleich wie zwölf Bänke ist. Eine ankommende Adresse weist Gruppenauswahlbits, Bankauswahlbits und Adreß­ bits, die eine Position innerhalb einer Bank spe­ zifizieren, auf. Kein Multiplexen, kein Ver­ schachteln und Adressieren innerhalb der Bank muß Lokalitätsanforderungen erfüllen. Ein Fehlen von Lokalität wird automatisch erfaßt und benötigtes Neuadressieren wird durchgeführt. Das Fehlen von Lokalität ist nicht verhängnisvoll, aber falls dieselbe dauerhaft verletzt wird, ist das Ergeb­ nis ein sehr langsames Verhalten.
Gestapelte Speichersätze
Bei jedem der obigen können die Speichersätze 0 und 1 kombiniert werden, um zweimal die Tiefe des Adreßraums darzustellen, wie auch die Speicher­ sätze 2 und 3. Die ankommende Adresse weist Spei­ chersatzauswahlbits auf.
Schmale Worte
Bei jedem der obigen Modi kann ein Speichersatz konfiguriert werden, um eine Wortbreite aufzuwei­ sen, die eine Potenz von zwei und weniger als oder gleich zweiunddreißig ist. Ein solches schmales Wort ist ein Feld der gesamten Wortbrei­ te eines adressierten Worts, ist auf Zweier- Potenz-Grenzen positioniert, und verwendet zu­ sätzliche Adreßbits, um das Feld innerhalb des adressierten Worts zu positionieren. Funktioniert mit R100 und R33, aber nicht mit L100.
Zusammensetzung
Bei den obigen "Zufall"-Zugriffmodi wird der Be­ darf, mehrere Bänke zu lesen, wenn Ausgangsdaten für einen Lesevorgang vorbereitet werden, durch einen Hardwareassistenten unterstützt, der die Ergebnisse an eine Adresse von den vier Bänken der geeigneten Gruppe für R33 und von allen zwölf Bänken für R100 mischt. Durch Einbauen einer Zu­ sammensetzungsoperation in eine Schleife, die die Adresse in der Bank durchläuft, während die Er­ gebnisse in allen Bänken oder in einer bekannten Bank gespeichert werden, kann eine gesamte Spei­ cherregion im Voraus zusammengesetzt werden, um während der Analyse von Testergebnissen einen schnelleren Zugriff zu erlauben.
Zusammensetzungsintegrität
Die Erfassung von Verlust von Zusammensetzung ei­ ner zusammengesetzten Speicheregion weist eine Hardwareassistenten auf.
Versteckter Auffrischvorgang
Die Auffrischungsoperation der DRAM in den ver­ schiedenen Bänken wird automatisch durchgeführt, ohne Störung eines der obigen Modi oder Konfigu­ rationen.
Zusammen mit der obigen Sammlung von Fähigkeiten können einzelne Speichertransaktionen als zu einer der folgenden Kategorien gehörend beschrieben werden:
Überschreiben-Schreibvorgang (OWW)
Ein genauer Austauschschreibvorgang auf alle (je­ der der) eins, vier oder zwölf Bänke an eine Adresse, vorherige Inhalte gehen verloren. Funk­ tioniert mit R100 (12 Bänke), R33 (4 Bänke) und L100 (1 Bank), aber bewahrt keine Nenngeschwin­ digkeitsoperation für eine Zufallsadressierung. Wird für die Kompatibilität mit Testprogrammen für ältere Speichertester beibehalten. Verwendet klassifizierte Adressen und klassifizierte Daten.
Überlagerungsschreibvorgang (OLW)
Eine Lesen-Modifizieren-Schreiben-Operation, die "klebrige Nullen" zu der "nächsten" von einer, vier oder zwölf Bänken unterstützt. Eine Null in einer Bitposition wird nicht mit einer Eins über­ schrieben, aber eine Eins kann mit einer Null überschrieben werden. Funktioniert bei Nennge­ schwindigkeit mit R100 (12 Bänke), R33 (4 Bänke) und L100 (1 Bank). Dies ist die Hauptmöglichkeit, um Daten während des Testens zu schreiben, und ermöglicht das Einfangen einer Störung in einer Bitposition durch wiederholtes Testen an einer DUT-Adresse. Nicht zu verwechseln mit Zusammen­ setzung, da die Daten immer noch zusammengesetzt werden müssen (eine beschwerliche Anforderung), außer wenn dieselben in L100 geschrieben sind. Verwendet klassifizierte Adresse und klassifi­ zierte Daten.
Systemschreibvorgang (SYW)
Schreibt auf eine einzige Bank in L100. Schreibt das gleiche auf alle vier Bänke einer adressier­ ten Gruppe in R33 und auf zwölf Bänke in R100, aber bewahrt keine Nenngeschwindigkeit. Quelle für die Adressen und die Daten ist der Ringbus.
Systemlesevorgang (SYR)
Liest von einer einzigen Bank von L100. Führt an der Adresse einen zusammengesetzten Lesevorgang von allen vier Bänken einer adressierten Gruppe in R33 und von allen zwölf Bänken in R100 durch behält aber keine Nenngeschwindigkeit bei. Adres­ senquelle und Datenziel ist der Ringbus.
Analyselesevorgang (ANR)
Führt an der Adresse einen zusammengesetzten Le­ sevorgang von allen vier Bänken in einer adres­ sierten Gruppe R33 und von allen zwölf Bänken in R100 durch behält aber keine Nenngeschwindigkeit bei. Verwendet die klassifizierte Adresse und sendet die Daten zu der Nachdecodierung über die Wege 62A-D.
Bufferspeicherlesevorgang (BMR)
Vollgeschwindigkeitslesevorgang (100 MHZ) an ei­ ner Zufallsadresse, für die Bank, die als "näch­ stes" drankommt. Arbeitet mit L100 (die gleiche Bank ist immer die "nächste"), R33 ("nächste" von vier Bänken in der adressierten Gruppe) und R100 ("nächste" von vier Bänken in der "nächsten" von drei Gruppen). Verwendet die klassifizierte Adresse und sendet die Daten zur Nachcodierung über die Wege 62A-D.
Offensichtlich ergibt sich einiges des obigen aus dem Mul­ tiplexier- und Verschachtelungsschema. Das Multiplexier- und das Verschachtelungsschema sind selbstverständlich auf die DRAM-Speichersätze beschränkt (die SRAM-Speichersätze sind von Anfang an schnell). Dies bedeutet jedoch nicht, daß diese gleichen Fähigkeiten oder Betriebsweisen nicht von den SRAM-Speichersätzen unterstützt werden können. Im allgemeinen können Speichertransaktionen, die an einen Speichersatz gerichtet werden können, an jeden anderen ge­ richtet werden, und unterliegen lediglich Größenbeschrän­ kungen. Ein SRAM-Speichersatz wird jeden Betriebsstil aner­ kennen, den auch ein DRAM-Speichersatz anerkennen würde. Der Unterschied ist, wie die Speichersatzsteuerung die ge­ wünschte Transaktion implementiert. In dem Fall eines Ana­ lyselesevorgangs (zusammensetzen) muß ein SRAM-Speichersatz beispielsweise nichts weiter tun außer den einfachen Lese­ vorgang durchzuführen, da die Daten desselben von Anfang an zusammengesetzt sind.
Diese verschiedenen Stile von Speichertransaktionen können wie benötigt innerhalb eines Testprogramms kombiniert wer­ den. Beispielsweise kann eine Schleife nach dem Testen alle Daten innerhalb eines Bereichs von Adressen für einen spe­ ziellen Speichersatz zusammensetzen. Dann können BMR ver­ wendet werden (mit hoher Geschwindigkeit), um auf die Daten in jeder zufälligen Reihenfolge zuzugreifen. Dies funktio­ niert, weil jede Bank an jeder Adresse (in den zusammenge­ setzten Bereich) die gleichen Daten aufweist.
Um die Erörterung fortzusetzen, wird nun auf Fig. 6 Bezug genommen, die ein vereinfachtes Blockdiagramm 129 der Adreßklassifizierer (77, 78, 79) ist, die in den Fig. 3 und 4 gezeigt sind. Es wird wieder daran erinnert, daß es wün­ schenswert ist, daß eine Mehrzahl von Tabellen, die in ei­ nem Speichersatz (wie z. B. Etiketten-RAM, Pufferspeicher, usw.) positioniert sind, alle Adressen von dem gleichen Be­ reich von angelegten DUT-Adressen sind, aber daß diese Ta­ bellen nicht überlappen. Dies bedeutet, daß die Tabellen getrennte Bereiche von Adressen aufweisen müssen, selbst wenn die Sequenz von adressierten Positionen darin einander entsprechen. Es ist eine Funktion eines Adreßklassifizie­ rers, einen Adreßbereich um einen bestimmten Betrag zu ver­ schieben, so daß die Existenz des Bereichs beibehalten wird, aber das die Position desselben um den Betrag der Verschiebung geändert ist. Aus Leistungsgründen wird nicht tatsächlich ein beliebiger Wert an die Adresse mit einem Addierer addiert, das wäre langsam und würde große Mengen an Platz auf dem Chip der VLSI-Schaltung benötigen, von dem der Adreßklassifizierer ein Teil ist. Statt dessen werden die oberen Adreßbits (für eine zu bewegende Adresse) ge­ zwungen, unterschiedliche Werte aufzuweisen. Beispielsweise ist der Bereich von Interesse durch zehn niedrigstwertige Bits beschrieben. Dann kann dieser Bereich neu positioniert werden indem jedes der signifikanteren (und andernfalls un­ genutzten) Bits zu einem anderen Wert gezwungen wird.
In Fig. 6 wird dies durch eine Sammlung von Multiplexern 130a-z (entweder zweiunddreißig oder einundzwanzig in der Zahl, für die Adreßklassifizierer 77 bzw. 78/79) durchge­ führt, einen für jedes Adreßbit. Jeder Multiplexer in die­ ser Sammlung 130 empfängt eine konstante logische Null, ei­ ne konstante logische Eins und das entsprechende tatsächli­ che Bit der zu klassifizierenden Adresse. Es ist die Funk­ tion jedes Multiplexers, auszuwählen, welche Bitpositionen in der klassifizierten Adresse zu Einsen oder Nullen ge­ zwungen sind, und welchen es erlaubt wird, durch ihren wah­ ren Wert getrieben zu werden. Um dies zu ermöglichen, emp­ fängt jeder Multiplexer in der Sammlung 130 ein Zwei-Bit- Steuereingangssignal, das seinen Ursprung an einem jeweili­ gen Latch 131a-z in einer Sammlung solcher Latches hat. Diese Latches werden durch Befehle gesetzt, die über den Ringbus 85 gesendet werden.
Die Adreßklassifizierung kooperiert außerdem mit den stro­ maufwertigen Multiplexern 85-87 von Fig. 4 dadurch, daß diese Multiplexer bestimmen, welche der Bits der achtund­ vierzig-Bit-Adresse 30 von dem Adreßabbilder 29 als eine Zweiunddreißig-Bit-Adresse weitergeleitet werden, und wel­ che Bitposition diese weitergeleiteten Bits besetzen.
Es wird außerdem daran erinnert, daß es mehrere Bedingungen gab, die eine Datenklassifizierung erfordern. Unter diesen war der Wunsch, daß jede Störung innerhalb einer definier­ ten Sammlung von Kanälen durch ein Bit in den klassifizier­ ten baten dargestellt wird. Dies wurde als "Komprimierung" bezeichnet und ist eine der Funktionen der Datenklassifika­ tion. Eine weitere ist "Verschieben", um das Schmal-Wort- Merkmal zu unterstützen. Das erfordert, daß die Position in einem Datenwort eines gesamten Felds von Datenbits inner­ halb des Worts neu positioniert wird. Eine letzte Funktion, die als eine Komponente der Datenklassifizierung benötigt wird, ist "Maskieren", um ausgewählte Datenbits zu vorbe­ stimmten Werten zu zwingen, während andere ausgewählt wer­ den, die durch ihren ungeänderten Wert dargestellt werden sollen. Fig. 7 ist ein gesamtes vereinfachtes Blockdiagramm 132 der Datenklassifizierer (80-83), die diese Funktionen durchführen. Dasselbe zeigt, daß Daten, die klassifiziert werden sollen (59/61) bevor dieselben in einem Speichersatz gespeichert werden, zu einer Komprimierungsschaltung 133, dann zu einer Verschiebungsschaltung 134 und schließlich zu einer Maskierungsschaltung 135 gesendet werden. Dasselbe zeigt außerdem, daß jede dieser Schaltungen 133-135 durch den Ringbus 85 gesteuert wird.
Fig. 8 ist ein vereinfachtes Blockdiagramm 136 der Kompri­ mierungsschaltung 133. Die Schaltung 133 umfaßt vier Multi­ plexer 141, 142, 143 und 144, von denen jeder durch den In­ halt eines gemeinsamen Registers 140 gesteuert wird, das durch den Ringbus 85 eingestellt wird. Jeder Multiplexer wird durch ein unterschiedliches niederwertiges Datenbit (BIT 0-BIT 3) gespeist, als auch durch das UND-Verknüpfen von verschiedenen benachbarten Bits in den Eingangsdaten 59/61. Es wird daran erinnert, daß es der Zweck der Kompri­ mierung ist, ein Bit in den Datenweg dazu zu bringen, jede Störung in einer vorspezifizierten Sammlung von Bits darzu­ stellen. Die verschiedenen UND-Verknüpfungen stellen diese vorspezifizierten Sammlungen dar. Es wird außerdem daran erinnert, daß eine Null einen mißlungenen Vergleich dar­ stellt, somit stellt eine Eins einen erfolgreichen Ver­ gleich dar. Die verschiedenen UND-Gatter 145-151 erfassen die vordefinierten Sammlungen von Bits, die alle innerhalb ihrer jeweiligen Sammlungen erfolgreich verglichen haben. Die Wahrheitstabelle 165 zeigt an, welche Sammlungen ihre UND-Verknüpfung zu dem Ausgang für unterschiedliche Werte in dem Steuerregister 140 weitergeleitet haben. Es ist an­ zumerken, daß die Anordnung außerdem Bits 31 : 4 in jedem Fall weiterleitet, um in der Lage zu sein, keine Komprimie­ rung durchzuführen, wenn jeder der Multiplexer einfach sein zugeordnetes niederwertiges Bit weiterleitet. Das Endergeb­ nis sind komprimierte Daten 137, die zu der Verschiebungs­ schaltung von Fig. 9 gesendet werden.
Nachfolgend wird auf die Verschiebungsschaltung 152 von Fig. 9 Bezug genommen. Dieselbe empfängt als Eingangssignal die komprimierten Daten 137, die durch die Komprimierungs­ schaltung von Fig. 8 erzeugt werden. Grob gesagt, die Schaltung 152 ist eine Multiplexer-Anordnung von zweiund­ dreißig Sechs-Eingangs-Multiplexern 154a-154z. Jeder dieser Multiplexer ist mit den verschiedenen Sammlungen kompri­ mierter Daten verbunden, die in der Figur gezeigt sind. Die Multiplexer 154a-z sind alle identisch, und jeder wählt ei­ nen seiner sechs Eingänge gemäß dem Inhalt eines Drei-Bit- Steuerregisters, das durch den Ringbus 85 eingestellt wird. Wie durch eine Untersuchung der Figur ersichtlich ist, ist die Art der erzeugten Verschiebung die Vervielfältigung von Sammlungen von Bitpositionen, und keine "Bit nach links Verschiebung" oder "Bit nach rechts Verschiebung" um n Bit­ positionen, die durch beispielsweise einen Bitstellenver­ schieber erzeugt werden können. Diese Vervielfältigungsform der Verschiebung reicht aus, um ein spezielles vordefinier­ tes Feld von Bits in eine andere Position in dem Wort zu bekommen, und was die anderen Positionen sind, ist im all­ gemeinen nicht von Interesse. Das Ergebnis sind komprimier­ te und verschobene Daten 138, die durch die Maskierungs­ schaltung von Fig. 10 maskiert werden sollen.
Der letzte Schritt in dem Datenklassifizierungsprozeß ist in Fig. 10 gezeigt, die ein vereinfachtes Blockdiagramm 155 von zwei Arten von Maskierungsschaltungen ist. Die erste Maskierungsschaltung ist zum Zwingen von Datenbits in aus­ gewählte Positionen, um spezielle Werte aufzuweisen. Dieser Abschnitt von Fig. 10 umfaßt zweiunddreißig 3 : 1-Multiplexer 156a-z, die durch jeweils zugeordnete Steuerregister 157a-z gesteuert werden, die jeweils durch den Ringbus 85 einge­ stellt werden können. Derselbe arbeitet auf exakt die glei­ che Weise wie die Schaltung 129 von Fig. 6, außer daß die Bits, die gezwungen werden, Datenbits und keine Adreßbits sind. Das Zwingen von Datenbits ist, wie zu erinnern ist, nützlich, wenn fremde Datenbits mißachtet werden sollen, indem dieselben beispielsweise einfach als "gut" erklärt werden. Die zweite Maskierungsfunktion ist nicht notwendi­ gerweise ein Teil der Datenklassifizierungsfunktion, son­ dern ist logisch an diesem Punkt in dem Datenfluß und ist selbst eine weitere Maskierungsoperation. Da dieselbe ein Merkmal für Interesse unterstützt (einen Lesen- Modifizieren-Schreiben-Vorgang für eine Schmal-Wort- Operation) wurde dieselbe der Vollständigkeit halber hierin eingeschlossen. Die Multiplexer 158a-z wählen zwischen den maskierten Daten mit gezwungenen Bits und den Daten, die von einer Position in dem inneren Testspeicher gelesen wer­ den, die teilweise modifiziert und teilweise ohne Modifika­ tion neu geschrieben werden sollen. Die Auswahl, welche Bits welche sind, wird durch die Multiplexer 158a-z auf ei­ ner Bit-um-Bit-Basis durchgeführt, gemäß dem jeweiligen In­ halt der Steuerlatches 159a-z, gemäß dem Verkehr auf dem Ringbus 85 eingestellt werden. Falls ein Multiplexer 158 ein Bit von den gezwungenen Datenbits (Multiplexer 156) auswählt, wird dieses Bit modifiziert. Falls andererseits dieses Bit mit dem, was von dem Speicher gelesen und durch die Speichersatzsteuerung geliefert wurde, gekoppelt ist, wird es ohne Modifikation neu geschrieben. In jedem Fall ist das Ergebnis komprimierte, verschobene und maskierte Daten 139, die das Ausgangssignal von dem Datenklassifizie­ rungsprozeß von Fig. 7 sind.
Es wird daran erinnert, daß für bestimmte Testklassen ein Stimulus-Log-RAM als ein ideales DUT arbeitet, um die korrekten Bedingungen zu erzeugen, die in einem tatsächlichen DUT bei der Beendigung des gesamten oder nur einer bestimmten Zwischenmenge des Testens vorliegen sollten. Der Gedanke dabei ist, den Strom von Sendevektoren des Testprogramms an den Stimulus-Log-RANI anzulegen, als ob derselbe statt dem tatsächlichen DUT ausgeführt würde (der Stimulus-Log-RAM tut genau das, was von einem tatsächlichen guten DUT erwartet würde). Dieser Strom von Sendevektoren kann ebenfalls gleichzeitig an das tatsächliche DUT angelegt werden. In jedem Fall sollten der Stimulus-Log-RAM und das DUT einen identischen Inhalt aufweisen, nachdem beide auf die gleiche Sequenz von Sendevektoren angesprochen haben. Nun kann der tatsächliche Teil gelesen werden, um den Inhalt desselben zu entdecken, während die erwarteten Empfangsvektoren (Vergleichsdaten) von dem Stimulus-Log-RAM genommen werden, und die Ver­ gleichsergebnisse wie üblich an einen ECR, Etiketten-RAM, usw. gesendet werden. Auf diese Weise muß das Testprogramm nicht die speziellen Empfangsvektoren erzeugen oder enthalten, die die erwartete Antwort von dem angelegten Stimulus sind. Für die Testklassen, die mit diesem Lö­ sungsansatz kompatibel sind, ist das Testprogramm leichter und einfacher zu schreiben und zu warten, da weniger interne Variable beispielsweise zu der Größe des DUT- Adreßraums passen müssen.
Bei einem Speichertester, der gemäß dem bevorzugten Ausfüh­ rungsbeispiel, das beschrieben wird, aufgebaut ist, kann der Mechanismus, der Sendevektoren annimmt, die an das DUT gesendet werden sollen, außerdem (oder vielleicht statt dessen) angewiesen werden, dieselben zu einem Abschnitt von innerem Testspeicher zu senden, der sich verhält, als ob derselbe ein ECR wäre, aber der in der Tat der Stimulus- Log-RAM ist. Diese Sendevektoren werden über den gleichen Weg gesendet, der für die Ergebnisse eines Vergleichs zwi­ schen Sende- und Empfangsvektoren verwendet würde (was die­ selben nicht sind, aber dieser Weg kennt den Unterschied nicht). Der Stimulus-Log-RAM wird dann als idealer Speicher wirken, der den Stimulusabschnitts des Tests ohne Fehler ausführt. Es kann gesagt werden, daß für diese anfängliche Stimulus-Log-RAM-Funktion ein Pseudo-ECR verwendet wurde: dies ist bequem und effizient, da der verwendete Speicher schnell sein muß und sowieso mit den Ergebnissen des Ver­ gleichs verbunden werden muß. Sobald der gesamte anfängli­ che Stimulus durchgeführt ist, wird der Inhalt des Stimu­ lus-Log-RAM (der nicht mehr ist als ein geeigneter Ab­ schnitt eines Speichersatzes, der temporär wirkte, als ob er tatsächlich ein ECR wäre) wird nachfolgend als ein (Ziel-) Pufferspeicher behandelt (ein Rekonfigurationsthe­ ma), der dann die verbleibende Funktion des Stimulus-Log- RAM fortsetzt (Senden erwarteter Empfangsvektoren zu den Vergleichsmechanismus). Nun sendet der algorithmische Me­ chanismus (oder ein Quellenpufferspeicher) einen Satz von Sendevektoren zu dem realen DUT, um dasselbe zu lesen und Empfangsvektoren hervorzurufen, während ein weiterer Ab­ schnitt von (vielleicht einem weiteren) Speichersatz dies­ mal als tatsächlicher ECR wirkt (zusammen mit jedem ETIKETTEN-RAM, usw.). Es ist anzumerken, daß es nicht not­ wendig ist, den Inhalt von dem ECR-Abschnitt tatsächlich in den Zielpufferspeicherabschnitt zu kopieren (als ob ECR "freigeben" und der Stimulus-Log-RAM "geladen" wird), es reicht aus, einfach neu zu definieren, welche Abschnitte welches Speichersatzes diese verschiedenen Funktionen aus­ führen. Auf den tatsächlichen physikalischen Speicher, der als der Stimulus-Log-RAM verwendet werden soll, wird zu­ nächst auf die gleiche Weise geschrieben wie für einen ECR, und dann wird von demselben gelesen, als ob derselbe ein Pufferspeicher wäre, während ein anderer Teil des Speicher­ satzes der ECR "wird".
Abschließend wird auf Fig. 11 Bezug genommen, die ein ver­ einfachtes Blockdiagramm 161 eines Abschnitts der Zeitge­ bungs/Formatierungs- und Vergleichsschaltung (52) von Fig. 2 ist. Was Fig. 11 zeigt, ist eine Schaltungsanordnung, die es den Multiplexern 163a-z ermöglicht, entweder alle auf die gleiche Weise oder alle auf andere Weise, zwischen ei­ nem Vergleich eines Empfangsvektors mit den Vergleichsdaten nachfolgend zu einem Sendevektor und zwischen den Sendevek­ toren selbst zu entscheiden. Die letztere Auswahl ermög­ licht es dem Stimulus-Log-RAM, diese Sendevektoren zu emp­ fangen, so daß derselbe als ein ideales DUT wirken kann, das die Quelle von Vergleichsdaten wird, die bei der Been­ digung eines Teils oder des gesamten DUT-Testens verwendet zu werden. Die Auswahl wird gemäß einem Latch 164 getrof­ fen, das durch den Ringbus 85 eingestellt oder gelöscht wird. Wenn Vergleichsdaten verwendet werden sollen, um Emp­ fangsvektoren zu überprüfen, wird der tatsächliche Ver­ gleich durch Exklusiv-NOR-Gatter 162a-z durchgeführt, deren Ausgänge jeweils mit den Multiplexern 162a-z gekoppelt sind.

Claims (9)

1. Verfahren zum Testen eines zu testenden Speichers (16) auf einem Speichertester (6), wobei das Verfahren fol­ gende Schritte umfaßt:
  • a) Anlegen der gleichen Sequenz von Sendevektoren an den zu testenden Speicher und an einen Arbeitsspeicher innerhalb des Speichertesters (6), wobei die Sequenz von Sendevektoren das Speichern von Testmusterdaten innerhalb der Speicher, an die dieselben angelegt werden, bewirkt; und
  • b) im Anschluß an Schritt (a) Vergleichen des Test­ musterdateninhalts des zu testenden Speichers (16) mit dem Testmusterdateninhalt des Arbeits­ speichers.
2. Verfahren gemäß Anspruch 1, bei dem die gleiche Se­ quenz von Sendevektoren ein Beispiel der Sequenz ist, die gleichzeitig an den zu testenden Speicher (16) und an den Arbeitsspeicher angelegt wird.
3. Verfahren gemäß Anspruch 1 oder 2, bei dem die gleiche Sequenz von Sendevektoren getrennte Beispiele der Se­ quenz sind, die zu unterschiedlichen Zeiten an den zu testenden Speicher und den Arbeitsspeicher angelegt werden.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem der Arbeitsspeicher ein auswählbarer Abschnitt eines inneren Testspeichers innerhalb des Speichertesters ist.
5. Verfahren gemäß Anspruch 4, das ferner den Schritt des Verschachtelns von Arbeitsspeichertransaktionen zwi­ schen Bänken eines DRAM umfaßt.
6. Verfahren gemäß Anspruch 4 oder 5, das ferner den Schritt des Speicherns von Vergleichsergebnissen von Schritt (b) in einem Fehlererfassungsspeicher umfaßt, der ein Abschnitt eines inneren Testspeichers inner­ halb des Testers ist.
7. Verfahren gemäß Anspruch 6, das ferner den Schritt des Verschachtelns von Fehlererfassungsspeichertransaktio­ nen zwischen Bänken eines DRAM umfaßt.
8. Verfahren gemäß Anspruch 4, bei dem der innere Test­ speicher aus einer Mehrzahl von Speichersätzen besteht und der auswählbare Abschnitt ein Segment eines Spei­ chersatzes ist.
9. Verfahren gemäß Anspruch 8, das ferner den Schritt des Speicherns von Vergleichsergebnissen von Schritt (b) in einem Fehlererfassungsspeicher umfaßt, der ein Ab­ schnitt eines Speichersatz ist, der sich von dem Spei­ chersatz unterscheidet, von dem der Arbeitsspeicher ein Segment ist.
DE10147910A 2000-09-28 2001-09-28 Speichertester weist Speichersätze auf, die für die Verwendung als Fehlererfassungs-RAM, Etiketten-RAM, Pufferspeicher und Stimulus-LOG-RAM konfigurierbar sind Withdrawn DE10147910A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/672,650 US6851076B1 (en) 2000-09-28 2000-09-28 Memory tester has memory sets configurable for use as error catch RAM, Tag RAM's, buffer memories and stimulus log RAM

Publications (1)

Publication Number Publication Date
DE10147910A1 true DE10147910A1 (de) 2002-04-25

Family

ID=24699438

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10147910A Withdrawn DE10147910A1 (de) 2000-09-28 2001-09-28 Speichertester weist Speichersätze auf, die für die Verwendung als Fehlererfassungs-RAM, Etiketten-RAM, Pufferspeicher und Stimulus-LOG-RAM konfigurierbar sind

Country Status (5)

Country Link
US (1) US6851076B1 (de)
JP (1) JP2002163897A (de)
KR (1) KR100896585B1 (de)
DE (1) DE10147910A1 (de)
IT (1) ITRM20010587A1 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2003085838A1 (ja) * 2002-04-05 2005-08-18 ソニー株式会社 インターリーブ装置及びインターリーブ方法、並びにデインターリーブ装置及びデインターリーブ方法
JP4737929B2 (ja) * 2003-12-12 2011-08-03 株式会社東芝 半導体記憶装置
JP2005265619A (ja) * 2004-03-18 2005-09-29 Agilent Technol Inc モジュール式テスタ用モジュール、および、該モジュールの校正方法
US7996339B2 (en) * 2004-09-17 2011-08-09 International Business Machines Corporation Method and system for generating object classification models
JP2006275986A (ja) * 2005-03-30 2006-10-12 Advantest Corp 診断プログラム、切替プログラム、試験装置、および診断方法
KR100810140B1 (ko) * 2005-11-16 2008-03-06 엠텍비젼 주식회사 선택적 테스트 벡터 압축 방법 및 장치
US7502974B2 (en) * 2006-02-22 2009-03-10 Verigy (Singapore) Pte. Ltd. Method and apparatus for determining which timing sets to pre-load into the pin electronics of a circuit test system, and for pre-loading or storing said timing sets
US7590903B2 (en) * 2006-05-15 2009-09-15 Verigy (Singapore) Pte. Ltd. Re-configurable architecture for automated test equipment
KR100891328B1 (ko) * 2007-01-04 2009-03-31 삼성전자주식회사 병렬 타입 반도체 집적회로 테스트 시스템 및 병렬 타입반도체 집적회로 테스트 방법
KR100850270B1 (ko) * 2007-02-08 2008-08-04 삼성전자주식회사 페일비트 저장부를 갖는 반도체 메모리 장치
US7620861B2 (en) * 2007-05-31 2009-11-17 Kingtiger Technology (Canada) Inc. Method and apparatus for testing integrated circuits by employing test vector patterns that satisfy passband requirements imposed by communication channels
US7757144B2 (en) * 2007-11-01 2010-07-13 Kingtiger Technology (Canada) Inc. System and method for testing integrated circuit modules comprising a plurality of integrated circuit devices
US7848899B2 (en) * 2008-06-09 2010-12-07 Kingtiger Technology (Canada) Inc. Systems and methods for testing integrated circuit devices
JP5077265B2 (ja) * 2009-02-26 2012-11-21 横河電機株式会社 記憶装置及び半導体試験装置
US8356215B2 (en) * 2010-01-19 2013-01-15 Kingtiger Technology (Canada) Inc. Testing apparatus and method for analyzing a memory module operating within an application system
US8918686B2 (en) 2010-08-18 2014-12-23 Kingtiger Technology (Canada) Inc. Determining data valid windows in a system and method for testing an integrated circuit device
CN102403044B (zh) * 2010-09-08 2014-10-15 北京大学 测试阻变随机访问存储器件的数据保持特性的方法
US9003256B2 (en) 2011-09-06 2015-04-07 Kingtiger Technology (Canada) Inc. System and method for testing integrated circuits by determining the solid timing window
US8724408B2 (en) 2011-11-29 2014-05-13 Kingtiger Technology (Canada) Inc. Systems and methods for testing and assembling memory modules
US9026870B2 (en) 2012-07-27 2015-05-05 Samsung Electronics Co., Ltd. Memory module and a memory test system for testing the same
US9117552B2 (en) 2012-08-28 2015-08-25 Kingtiger Technology(Canada), Inc. Systems and methods for testing memory
CN111367749B (zh) * 2018-12-25 2023-05-05 中国移动通信有限公司研究院 业务监测方法、装置、相关设备及存储介质
CN113077837B (zh) * 2021-03-24 2024-04-12 上海华虹宏力半导体制造有限公司 一种自动测试设备的多类型测试向量整合方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5472924A (en) * 1977-11-24 1979-06-11 Hitachi Ltd Semiconductor memory inspection equipment
JPS5562598A (en) * 1978-10-31 1980-05-12 Nec Corp Memory check unit
DE3685078D1 (de) * 1985-09-09 1992-06-04 Hitachi Ltd Speicherpruefgeraet.
JP2527935B2 (ja) * 1986-05-19 1996-08-28 株式会社 アドバンテスト 半導体メモリ試験装置
JPH01145588A (ja) * 1987-12-01 1989-06-07 Mitsubishi Electric Corp テストパターン圧縮装置
JP2613412B2 (ja) * 1987-12-29 1997-05-28 株式会社アドバンテスト メモリ試験装置
JPH01184700A (ja) * 1988-01-11 1989-07-24 Advantest Corp メモリ試験装置
JP3201423B2 (ja) * 1992-02-21 2001-08-20 株式会社アドバンテスト メモリ試験装置
JPH06242181A (ja) * 1992-11-23 1994-09-02 Texas Instr Inc <Ti> 集積回路の試験装置及び方法
US5701309A (en) * 1992-12-02 1997-12-23 At&T Global Information Solutions Company Automated test equipment digital tester expansion apparatus
US6055661A (en) * 1994-06-13 2000-04-25 Luk; Fong System configuration and methods for on-the-fly testing of integrated circuits
JPH08233912A (ja) * 1995-02-24 1996-09-13 Hitachi Ltd Lsiテスタ
JPH1064297A (ja) * 1996-08-27 1998-03-06 Advantest Corp メモリ試験装置
JPH09152470A (ja) * 1995-11-30 1997-06-10 Hitachi Electron Eng Co Ltd 高速データ取り込み装置及びic試験装置
US5790559A (en) * 1996-03-29 1998-08-04 Advantest Corporation Semiconductor memory testing apparatus
JPH09269358A (ja) * 1996-03-29 1997-10-14 Advantest Corp 半導体メモリ試験装置
JP3700797B2 (ja) * 1996-08-09 2005-09-28 株式会社アドバンテスト メモリ試験装置
JP2000030491A (ja) * 1998-07-15 2000-01-28 Advantest Corp 不良解析メモリ

Also Published As

Publication number Publication date
JP2002163897A (ja) 2002-06-07
ITRM20010587A0 (it) 2001-09-28
KR100896585B1 (ko) 2009-05-21
ITRM20010587A1 (it) 2002-03-28
US6851076B1 (en) 2005-02-01
KR20020025773A (ko) 2002-04-04

Similar Documents

Publication Publication Date Title
DE10147910A1 (de) Speichertester weist Speichersätze auf, die für die Verwendung als Fehlererfassungs-RAM, Etiketten-RAM, Pufferspeicher und Stimulus-LOG-RAM konfigurierbar sind
DE60111324T2 (de) Fehlerdiagnose-RAM eines Speichertesters mit nach Grösse und Geschwindigkeit konfigurierbaren SDRAM Speichereinheiten
DE10217303A1 (de) Algorithmisch programmierbarer Speichertester mit Unterbrechungspunktauslöser, Fehlerblockierung und Oszilloskop-Modus, der Zielsequenzen speichert
DE60219990T2 (de) Speichertest-Schaltung
DE3902425C2 (de)
DE19526007C2 (de) Horizontal partitionierter Befehls-Cache-Speicher
DE60012966T2 (de) Hochgeschwindigkeitsfehlererfassungsgerät und verfahren für automatische testeinrichtung
DE60220511T2 (de) Verfahren und system zur optimierung der testkosten und deaktivierungsdefekte für scan- und bist-speicher
DE4305442C2 (de) Verfahren und Vorrichtung zum Erzeugen eines Testvektors
DE60208117T2 (de) Selbsttest-Schaltung für Cache-Speicher
DE60009856T2 (de) Umkonfigurierbare integrierte schaltung mit eingebautem fehlersuchsystem für ein simulationssystem
DE60001913T2 (de) Mustergenerator für eine testvorrichtung von paketbasierten speichern
DE10153753B4 (de) Speichertester unterläßt ein Programmieren von Adressen in erfaßten schlechten Spalten
DE102011053359B4 (de) Latch-basierte Speichervorrichtung und Verfahren zum Testen derselben
DE1928202A1 (de) UEberwachungs- und Statistikeinrichtung fuer Datenverarbeitungssysteme
DE19510902A1 (de) Emulation eines Mehrtor-Speichers unter Verwendung von Markierregistern
DE3015875A1 (de) Speicherzugriffssystem und verfahren fuer einen zugriff zu einem digitalen speichersystem
DE19639972B4 (de) Hochgeschwindigkeitstestschaltkreis für eine Halbleiterspeichervorrichtung
DE19948388A1 (de) Verfahren und System zum Prüfen eingebetteter Speicher
DE19627820A1 (de) Speichertestvorrichtung
DE112019007371T5 (de) Eine mit einem system-on-chip gekoppelte speichergerätearchitektur
DE10153665A1 (de) Speichertester mit verbesserter Nachdecodierung
DE19930169A1 (de) Testeinrichtung zum Prüfen eines Speichers
DE10134985A1 (de) Test eines Halbleiterspeichers mit mehreren Speicherbänken
DE19743707A1 (de) Speichertestvorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: VERIGY (SINGAPORE) PTE. LTD., SINGAPORE, SG

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110401