[go: up one dir, main page]

DE69714472T2 - Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung - Google Patents

Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung

Info

Publication number
DE69714472T2
DE69714472T2 DE69714472T DE69714472T DE69714472T2 DE 69714472 T2 DE69714472 T2 DE 69714472T2 DE 69714472 T DE69714472 T DE 69714472T DE 69714472 T DE69714472 T DE 69714472T DE 69714472 T2 DE69714472 T2 DE 69714472T2
Authority
DE
Germany
Prior art keywords
dma
memory
dma transfer
transfer
test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69714472T
Other languages
English (en)
Other versions
DE69714472D1 (de
Inventor
Paul Gittinger
Allen Spilo
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.)
GlobalFoundries Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE69714472D1 publication Critical patent/DE69714472D1/de
Application granted granted Critical
Publication of DE69714472T2 publication Critical patent/DE69714472T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • 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/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/48Arrangements in static stores specially adapted for testing by means external to the store, e.g. using direct memory access [DMA] or using auxiliary access paths

Landscapes

  • Microcomputers (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf das Gebiet von integrierten Schaltungen und insbesondere auf das Testen eines integrierten Speichers innerhalb einer integrierten Schaltung.
  • 2. Beschreibung der verwandten Technik
  • Integrierte Schaltungen sind in der modernen Gesellschaft allgegenwärtig geworden. So unterschiedliche Produkte wie Kraftfahrzeuge, Computersysteme, Fernseher und Telefone nehmen eine oder mehrere integrierte Schaltungen auf, um verschiedene Funktionen durchzuführen. Allgemeine gesägt umfaßt eine integrierte Schaltung Schaltungsanordnungen, die auf einem monolithischen Halbleitersubstrat ausgebildet sind. Die integrierte Schaltung implementiert einen oder mehrere Kerne, die die verschiedenen Funktionen der integrierten Schaltungen, sowie auch Schaltungen zum Kommunizieren mit anderen integrierten Schaltungen und Vorrichtungen außerhalb der integrierten Schaltung durchführen. Ein Kern ist eine Schaltungsanordnung, die zusammen verbunden ist, um eine gewünschte Funktion hoher Ebene bereitzustellen. Beispielsweise ist ein Prozessorkern eine Schaltungsanordnung, die einen Satz von Befehlen ausführt. Andere Kerne können ein Kern zur Verarbeitung von digitalen Signalen, der konfiguriert ist, um Signale zu verarbeiten, ein Cache- Controller-Kern zum Verwalten eines Blocks von externen Speicher als ein Cache-Speicher, etc. sein.
  • Eine allgemein verbreitete Art einer integrierten Schaltungen ist ein Mikrocontroller, der einen Prozessorkern sowie auch Kommunikationskerne für verschiedenen serielle und parallel Portverbindungen mit Peripherievorrichtungen umfasst. Mikrocontroller ermöglichen eine programmierbare Steuerung (mittels des Prozessorkerns) der damit verbundenen Peripherievorrichtungen. Mikrocontroller werden allgemein in einer weiten Vielfalt von Vorrichtungen, einschließlich Druckern, zellularen Telefonen, Kraftfahrzeugen etc. benutzt. Ein Mikrocontroller wird allgemein als der primäre Steuerchip in einer elektronischen Schaltung benutzt, die innerhalb eines von einem Allzweck-Computer- System verschiedenen Produkts eingebettet ist (d. h. die sogenannte "eingebettete Anwendungen"). Der Mikrocontroller und die verwandte Schaltungsanordnung wird benutzt, um die Rechenanforderung eines Produkts zu erfüllen, dessen allgemeiner Zweck nicht Rechnen ist (d. h. ein Fernseher, Telefon oder Kraftfahrzeug).
  • Moderne Mikrocontroller nehmen nicht nur einen Prozessorkern und Kommunikationskerne auf, sondern integrieren ebenfalls weitere Vorrichtungen, die allgemein damit benutzt werden. Insbesondere haben Mikrocontroller begonnen, Speicherblöcke zu integrieren. Das Integrieren von vorher diskreten Komponenten, wie beispielsweise Speicher, kann zu Kostenersparnissen in dem Endprodukt führen, da weniger Komponenten benötigt werden. Das Integrieren von Speicher in einen Mikrocontroller erzeugt jedoch die Notwendigkeit, den Speicher auf Funktionalität zu testen, wenn der Mikrocontroller hergestellt wird. Speicher werden allgemein unter Verwendung minimaler Transistor- Abmessungen, minimaler Beabstandung zwischen Transistoren und Kontakten minimaler Größe aufgebaut. Daher sind Speicher insbesondere gegenüber Fehlern anfällig, die bei dem Fertigungsprozess eingeführt werden. Fehler können beispielsweise aufgrund von Staubteilchen auf den Chips oder Masken, Kratzern, Gate-Oxid-Nadellöchern und Fehlausrichtungen von Masken eingeführt werden.
  • Typischerweise ist eine eingebaute Selbsttestlogik (BIST-Logik = built in selftest logic) zum Durchführen des Speichertestens enthalten. Die BIST-Logik wird aktiviert, wenn der Test gewünscht wird, und die BIST-Logik meldet den Erfolg oder Fehlschlag des Tests auf eine Art und Weise, die außerhalb des Mikrocontroller erfasst werden kann. Beispielsweise kann ein Pin aktiviert oder deaktiviert sein. Alternativ kann ein Zustandsregister aktualisiert werden, und das Zustandsregister kann gelesen werden, um den Bestanden/Durchgefallen- Zustand (pass/fail status) der BIST zu bestimmen.
  • Speicherfehler können als Haftfehler, Haftfehler mit Gate-Ausgang auf logisch Null, Übergangsfehler, zustandsgekoppelte Fehler, Mehrfachzugriffsfehler und Datenerhaltfehler klassifiziert werden. Eine Speicherzelle (oder Bitstelle) wird als haftend bezeichnet, wenn ein Lesevorgang von der Zelle ohne Rücksicht auf die an der Zelle durchgeführte Lese-/Schreib-Aktivität oder irgendeinen Einfluss von anderen Zellen immer bei einem bestimmten Logikwert ist. Eine Speicherzelle wird als auf logisch Null haftend bezeichnet, wenn auf sie niemals zugegriffen werden kann. Eine Speicherzelle mit einem Übergangsfehler wird nicht imstande sein, sich mindestens einem der Übergänge von 0 in 1 oder 1 in 0 zu unterziehen, wenn die Zelle wiederholt beschrieben wird. Eine Speicherzelle wird als mit einer anderen Zelle zustandsgekoppelt bezeichnet, wenn die erste Zelle bei einem bestimmten Wert nur fest vorgegeben wird, wenn die zweite Zelle in einem definierten Zustand ist. Das Prüfen der zustandsgekoppelten Fehler erfordert das Zeigen, dass irgendein beliebiges Paar von Zellen in dem Speicher imstande ist, in Zuständen 0-0, 0-1, 1-0 und 1-1 zu sein. Man sagt, dass eine Speicherzelle einen Mehrfachzugrifffehler aufweist, wenn eine einzelne Lese-/Schreib-Maßnahme auf mehrere Zellen zugreift. Schließlich ist eine Speicherzelle mit einem Datenerhaltfehler nicht imstande, die darin gespeicherte Ladung (die eine binäre 1 oder eine binäre 0 darstellt) für eine minimale erforderliche Zeitspanne zu halten.
  • Ein 9N- oder 13N-Test-Algorithmus (wobei sich N auf die Anzahl von Adressen in dem Speicher und 9 oder 13 auf die Anzahl von Zugriffen auf jede Speicherzelle innerhalb eines Laufs des Tests bezieht) wird typischerweise von der BIST-Logik benutzt, um alle der oben dargelegten Fehler zu prüfen. Im allgemeinen beinhalten die Algorithmen ein Lesen und Schreiben sowohl eines ausgewählten "Hintergrund"-Musters als auch des Komplements des Hintergrundmusters. Sobald der Speicher mit dem ausgewählten Hintergrundmuster initialisiert ist, wird jede Speicherzelle gelesen, um das ausgewählte Hintergrundmuster zu verifizieren, mit dem Komplement des Hintergrundmusters beschrieben und dann erneut gelesen, um das ausgewählte Hintergrundmuster zu verifizieren. Das Hintergrundmuster umfasst einen Satz von binären Einsen und Nullen, die ausgewählt sind, um Zellen zu belasten, die physisch nahe einander angeordnet sind. Beispielsweise können die Hintergrundmuster ausgewählt sein, um eine Zelle auf eine binäre Eins zu aktualisieren, während eine benachbarte Zelle oder Zellen auf eine binären Null aktualisiert wird (und umgekehrt). Weitere Hintergrundmuster werden ausgewählt, so dass eine bestimmte Zelle auf eine binäre Eins (oder Null) aktualisiert wird, während benachbarte Zellen auf einem bestimmten Wert konstant bleiben. Weitere Einzelheiten hinsichtlich der 9N- und 13N-Test-Algorithmen können in "A Realistic Fault Model & Test Algorithms for Static Random Access Memories" von Rob Dekker, Frans Beenker, Loek Thussen, IEEE Log Number 9034766 (10. Juli 1989) gefunden werden, was hier mit Bezug aufgenommen ist.
  • Unglücklicherweise stellt die BIST-Logik eine schwere Bürde für die Entwicklung von Mikrocontrollern und anderen integrierten Schaltungen dar. Mikrocontroller werden im allgemeinen zu relativ niedrigen Preisen und in hohen Volumen verkauft, so dass Mikrocontroller-Ausgestaltungen außergewöhnliche kostenbewusste Ausgestaltungen sind. Die Chip-Größe des Halbleiter- Substrats wird minimiert, um die Ausbeute und die Anzahl der pro Halbleiter- Wafer erzeugten Produkte zu verbessern. Die BIST-Logik kann einen bedeutenden Betrag der verfügbaren Chip-Fläche verbrauchen. Beispielsweise ist es möglich, dass ungefähr 3-5% oder sogar mehr der Chip-Fläche der BIST-Logik fest zugeordnet ist.
  • Ein weiteres von der BIST-Logik gestelltes Problem besteht darin, dass sie Zugriff auf den Speicher erfordert. Somit müssen die Adressen, Daten, Lese- /Schreib-Steuerungen und weitere Steuersignale der BIST-Logik in die Ports (oder Zugriffspunkte) des Speicher-Arrays aufgenommen sein. Multiplexer oder andere Auswahlvorrichtungen, die verwendet werden, um zwischen konkurrierenden Zugriffsanforderungen auszuwählen, müssen somit einen weiteren Eingang für die BIST-Logik aufweisen. Diese Multiplexer werden somit nicht nur größer sondern auch langsamer, was zusätzliche Zeit benötigt, um einen Wert fortzupflanzen. Somit kann die von dem Mikrocontroller erreichbare Takt-Zykluszeit (oder Frequenz) durch die Aufnahme der BIST-Logik beeinflusst werden. Es ist somit wünschenswert, eine Alternative zu dem BIST- Logik-Testverfahren einer integrierten Schaltung mit einem integrierten Speicher vorzusehen.
  • Die EP-A-595 036 offenbart ein Verfahren zum Testen eines Speichers einer integrierten Schaltung, wobei das Verfahren auf einem DMA-Controller basiert und ein Initialisieren einer Mehrzahl von Speicherstellen auf einen vordefinierten Wert; einem Durchführen einer ersten DMA-Übertragung in dem DMA- Controller, um auf jede der Speicherstellen zuzugreifen; und ein Durchführen einer zweiten DMA-Übertragung in dem DMA-Controller, um jede der Speicherstellen auf ein Komplement des vordefinierten Werts zu aktualisieren, umfasst.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die oben dargelegten Probleme werden zum großen Teil von einem Mikrocontroller in Übereinstimmung mit der vorliegenden Erfindung gelöst. Der Mikrocontroller umfasst einen integrierten Speicher und einen integrierten DMA- Controller. Während des Testens wird der DMA-Controller verwendet, um Lese-/Schreib-Tests von Hintergrundmustern und deren Komplementen an dem integrierten Speicher durchzuführen. Vorteilhafterweise muss der integrierte Speicher die typischerweise von integrierten Speichern verlangte BIST-Logik nicht enthalten. Die vorher der BIST-Logik fest zugeordnete Chip-Fläche wird für andere Verwendungen oder für die Verringerung der gesamten Chip-Größe freigegeben. Ferner ist die Eingangs-/Ausgangs-Schaltungsanordnung des integrierten Speichers mit Bezug auf die integrierten Speicher mit der BIST- Logik vereinfacht. Der vorliegende integrierte Speicher kann somit durch eine schnellere Zugriffszeit als ein vergleichbarer integrierter Speicher mit BIST- Logik gekennzeichnet werden.
  • Das Verwenden des DMA-Controllers, wie er hier beschrieben ist, ist ein hochwirksames Verfahren zum Durchführen des Test vom BIST-Typ. Zwei DMA- Kanäle werden gleichzeitig verwendet, um das erforderliche Lesen des Hintergundmusters, das Schreiben des Komplements des Hintergrundmusters und das Lesen des Komplements des Hintergrundmusters an jeder Speicherstelle vorzusehen. Der zweite DMA-Kanal liest jede Speicherstelle zum Verifizieren des Hintergrundmusters, während der erste DMA-Kanal für das Aktualisieren jeder Speicherstelle auf das Komplement des Hintergrundmusters und für das Lesen der Speicherstelle, um zu verifizieren, dass das Komplement des Hintergrundmusters darin gespeichert ist, verantwortlich ist. Der Leseabschnitt der von dem zweiten DMA-Kanal durchgeführten DMA-Übertragung und sowohl die Lese- als auch die Schreibabschnitte der von dem ersten DMA-Kanal durchgeführten DMA-Übertragung führen erforderliche Abschnitte des Test- Algorithmus durch. Das Verfahren mit dem DMA-Controller ist deutlich wirksamer als das Verwenden von Befehlen, um den Speichertest selbst durchzuführen (d. h. mehrere Übertragungsbefehle an jede der Speicherstellen innerhalb des integrierten Speichers). Diese Befehle müssen abgerufen werden, was den gemeinsam benutzten internen Bus sowie auch den externen Bus für zusätzlichen Bus-Zyklen neben denjenigen belegt, die benötigt werden, um die Lese- und Schreib-Zugriffe des Tests durchzuführen. Im Gegensatz dazu wird eine kleine Anzahl von Befehlen ausgeführt, um den DMA-Controller zu konfigurieren, und dann wird der Lese- und Schreibzugriff für jeden Lauf des Tests durch den integrierten Speicher ununterbrochen fortgesetzt.
  • Die Reihenfolge der Testvorgänge an einer vorgegebenen Speicherstelle ist die von dem 13N-Test-Algorithmus spezifizierte Reihenfolge, wobei jedoch die Vorgänge an benachbarten Speicherstellen miteinander vermischt sind. Der zweite DMA-Kanal liest eine bestimmte Steile, gefolgt von dem ersten DMA- Kanal, der eine erste Stelle benachbart der bestimmten Stelle liest und die bestimmte Stelle mit dem aus der ersten Stelle gelesenen Werts aktualisiert. Im Anschluss daran wird eine zweite Stelle benachbart der bestimmten Stelle von dem zweiten DMA-Kanal gelesen, gefolgt von dem ersten DMA-Kanal, der die bestimmte Stelle liest und die zweite Stelle mit dem aus der bestimmten Stelle gelesenen Wert aktualisiert. Auf diese Art und Weise stellen der erste und zweite DMA-Kanal die erforderlichen Lese- und Schreibtests wirksam bereit:
  • Jede Speicherstelle wird als lesbar und mit dem Hintergrundmuster und dem Komplement des Hintergrundmusters schreibbar nachgeprüft, wobei jede andere Speicherstelle entweder das Hintergrundmuster oder das Komplement des Hintergrundmusters speichert.
  • Ein noch weiterer Vorteil des Verwendens des DMA-Controllers, um das Testen der BIST-Art durchzuführen, besteht darin, dass die Tests nicht hardwarebeschränkt sind. Typischerweise wird die in den integrierten Speichern enthaltene BIST-Logik während der Ausgestaltung des Mikrocontrollers ausgestaltet und getestet. Ein wesentlicher Betrag der Ausgestaltungs- und Testzeit muss investiert werden, um den ordnungsgemäßen Betrieb der BIST-Logik zu erzeugen und sicherzustellen. Vorteilhafterweise wird diese Ausgestaltungs- und Testzeit durch eine wesentlich weniger Zeit verbrauchende Aufgabe des Erzeugens von Testvektoren für die erforderlichen DMA-Übertragungen ersetzt. Die Ausgestaltungskosten werden dadurch verringert, was zu der Kostenverringerung für das endgültige Mikrocontroller-Produkt beitragen kann. Ferner wird das Risiko eines Fehlers in dem BIST-Test unter Verwendung des vorliegenden Testverfahrens verringert. Früher waren, wenn die BIST-Logik als fehlerhaft befunden wurde, neue Herstellungsmasken für den Mikrocontroller erforderlich, um das Problem zu beheben. Eine große Investition an Zeit und Geld war erforderlich. Auf ähnliche Weise musste, falls gewünscht wurde, die Art des BIST-Testens auf eine Art und Weise zu ändern, der Mikrocontroller mit neuen Masken hergestellt werden. Andererseits ermöglicht das vorliegende Verfahren die Korrektur und die Variation bei dem Testen durch erneutes Simulieren der Tests und Erzeugen von neuen Testvektoren. Die neuen Testvektoren können dann auf vorher hergestellte Mikrocontroller angewendet werden.
  • Die vorliegende Erfindung liefert ein Verfahren zum Testen eines Speichers einer integrierten Schaltung mit einem integrierten DMA-Controller, wie es in Anspruch 1 angegeben ist.
  • Die vorliegende Erfindung liefert ebenfalls eine integrierte Schaltung, wie es in Anspruch 15 angegeben ist.
  • Eine bevorzugte Ausführungsform der Erfindung wird nun mittels Beispiel und mit Bezug auf die Zeichnungen beschrieben.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Weitere Aufgaben und Vorteile der Erfindung werden beim Lesen der folgenden ausführlichen Beschreibung und mit Bezug auf die beigefügten Zeichnungen offensichtlich, in denen zeigen:
  • Fig. 1 ein Blockdiagramm einer Ausführungsform eines Mikrocontrollers;
  • Fig. 2 ein Blockdiagramm eines Testeinrichtungssystems, das ausgestaltet ist, um den in Fig. 1 gezeigten Mikrocontroller zu testen;
  • Fig. 3 ein Blockdiagramm eines DMA-Controllers und eines in dem in Fig. 1 gezeigten Mikrocontroller integrierten Speichers;
  • Fig. 4 ein Ablaufdiagramm, das von dem in Fig. 3 gezeigten DMA- Controller durchgeführten Aktivitäten darstellt, um den in Fig. 3 gezeigten Speicher zu testen;
  • Fig. 5 ein Diagramm, das Werte in einem Paar von aufeinander folgenden Speicherstellen des in Fig. 3 gezeigten Speichers an verschiedenen Punkten in einem Zeitintervall darstellt, in denen der DMA-Controller die in Fig. 4 gezeigten Aktivitäten durchführt.
  • Fig. 5A ein Timing-Diagramm, das verschiedene Bus-Transaktionen in Übereinstimmung mit dem in Fig. 4 gezeigten Ablaufdiagramm darstellt;
  • Fig. 6 ein Diagramm, das den Zustand verschiedener Speicherstellen einschließlich der Speicherstellen des in Fig. 3 gezeigten Speichers an verschiedenen Stellen in dem Zeitintervall darstellt, in denen der DMA-Controller die in Fig. 4 gezeigten Aktivitäten durchführt;
  • Fig. 7 ein Ablaufdiagramm, das die Aktivitäten darstellt, die durchgeführt werden, um ein Satz von Testvektoren gemäß dem in Fig. 4 gezeigten Ablaufdiagramm zu erzeugen; und
  • Fig. 8 das Blockdiagramm von Fig. 3, wobei beispielhafte Werte in den hier gezeigten Registern programmiert sind.
  • Obgleich die Erfindung für verschiedene Modifikationen und alternative Formen empfänglich ist, werden spezifische Ausführungsformen derselben mittels Beispiel in den Zeichnungen gezeigt und hier ausführlich beschrieben. Es sollte jedoch offensichtlich sein, dass die Zeichnungen und die ausführliche Beschreibung dazu nicht bestimmt sind, die Erfindung auf die besondere offenbarte Form zu begrenzen, sondern im Gegenteil die Absicht besteht, alle Modifikationen, Äquivalente und Alternative abzudecken, die innerhalb des Geists und Schutzumfangs der vorliegenden Erfindung fallen, wie es durch die beigefügten Ansprüche festgelegt ist.
  • AUSFIJHRLICHE BESCHREIBUNG DER ERFINDUNG
  • In Fig. 1 ist ein Blockdiagramm einer Ausführungsform eines Mikrocontroller 10 gezeigt. Bei der gezeigten Ausführungsform ist der Mikrocontroller 10 auf einem einzigen monolithischen Halbleiter-Substrat ausgebildet. Der Mikrocontroller 10 umfaßt eine Takt/Leistungs-Managementeinheit 12, eine Interrupt- Steuereinheit 14, einen Prozessorkern 16, eine Zeitgeber-Steuereinheit 18, eine DMA-Steuereinheit 20, eine programmierbare Eingangs-/Ausgangs- Einheit (PIO-Einheit = programmable input/output unit) 22, eine asynchrone serielle Schnittstelle 24, eine synchrone serielle Schnittstelle 26, eine Chip- Auswahleinheit 28, einen internen Speicher 30 und eine Bus- Schnittstelleneinheit 32. Eine interne Busleitung 34 verbindet die verschiedenen Elemente 12 bis 32 des Mikrocontrollers 10, durch die die verschiedenen Elemente 12 bis 32 miteinander kommunizieren. Bei einer Ausführungsform ist der Mikrocontroller 10 ein 80C186-kompatibler Mikrocontroller.
  • Um den internen Speicher 30 zu testen, wird die DMA-Steuereinheit 20 benutzt, um den internen Speicher 30 auf ein ausgewähltes Hintergrundmuster zu initialisieren und dann die Lese- und Schreibtests des Hintergrundmusters und des Komplements des Hintergrundmusters auf dem internen Speicher 30 durchzuführen. Vorteilhafterweise kann die BIST-Logik zugunsten des Verwendens der DMA-Übertragungen verworfen werden, um die BIST durchzuführen. Da die DMA-Steuereinheit 20 für weitere Vorgänge während der normalen Verwendung (d. h. DMA-Übertragungen) nützlich ist, erfordert die eingebaute Selbsttest-Funktionalität keinen zusätzlichen Bereich oder keine zusätzliche Schaltungsanordnung. Es sei bemerkt, dass das "Komplement" einen bestimmten Werts, wie es hier verwendet wird, das Inverse jedes Bits in dem bestimmten Wert bei der entsprechenden Bitstelle enthält. Mit anderen Worten ist das Komplement das logische Inverse des bestimmten Werts. Beispielsweise ist das komplement des Werts 0100 (in binär) gleich 1011 (in binär).
  • Bei einer Ausführungsform werden zwei DMA-Kanäle verwendet, um die Lese- und Schreibtests des Hintergrunds und des Komplements des Hintergrunds gleichzeitig auszuführen. Der zweite DMA-Kanal liest den ausgewählten Hintergrundwert aus jeder Speicherstelle des internen Speichers 30 und speichert den Wert in einer beliebigen Speicherstelle außerhalb des internen Speichers 30. Der zweite DMA-Kanal verifiziert dadurch, dass das ausgewählte Hintergrundmuster ordnungsgemäß geschrieben und aus jeder Speicherstelle innerhalb des internen Speichers 30 ausgelesen ist. Der erste DMA-Kanal liest anfangs eine Stelle außerhalb des internen Speichers 30 jedoch benachbart dazu, wodurch er mit dem Komplement des Hintergrundwerts versehen wird. Der aus der externen Stelle gelesene Wert wird in der niederstwertigen Adresse des internen Speichers 30 gespeichert. Der erste Kanal liest dann die aktualisierte Stelle und aktualisiert die zweite niederstwertige Adresse des internen Speichers 30. Der erste DMA-Kanal verifiziert, dass das Komplement des ausgewählten Hintergrundmusters ordnungsgemäß in jede Speicherstelle innerhalb des internen Speichers 30 geschrieben und daraus ausgelesen ist.
  • Der erste DMA-Kanal folgt dem zweiten DMA-Kanal beim Zugreifen auf eine bestimmte Stelle, wodurch gewährleistet wird, dass der zweite DMA-Kanal eine bestimmte Speicherstelle liest, bevor diese Speicherstelle von dem ersten DMA-Kanal aktualisiert wird. Bei einer Ausführungsform wird der Test mit dem Mikroprozessor 10 in dem "Zeige Lese"-Modus (nachstehend beschreiben) durchgeführt, so dass die Lesedaten für den Leseteil der DMA-Übertragung an den Pins des Mikrocontrollers 10 erscheinen, wodurch sie durch eine Testvorrichtung erfassbar sind, die verwendet wird, um den Mikrocontroller 10 zu testen. Die beiden DMA-Kanäle sind programmiert, um von gleicher Priorität und ursprungssynchronisiert zu sein. Durch gleichzeitiges Aktivieren der DMA- Anforderungspins können die DMA-Kanäle gleichzeitig gestartet und die Reihenfolge-Beziehung zwischen ihnen von der DMA-Steuerschaltung 20 gewährleistet werden.
  • Der Prozessorkern 16 umfasst eine Schaltungsanordnung zum Ausführen eines Satzes von Befehlen, der von der von dem Prozessorkern 16 benutzten Mikroprozessor-Architektur festgelegt wird. Bei einer Ausführungsform ist der Prozessorkern 16 ein 80C186-kompatibler Prozessorkern. Der Prozessorkern 16 ruft Befehle und bestimmte Befehlsoperanden aus einem internen Speicher 30 und einem externen Speicher basierend auf den Adressen, die bei dem ausgeführten Befehlscode benutzt werden, und den Regionen des Adressraums ab, die dem internen Speicher 30 und dem externen Speicher zugewiesen sind. Wenn der Zugriff auf den internen Speicher 32 ist, dann wird der Zugriff über die Busleitung 34 beendet. Für Schreibzugriffe (d. h. der Prozessorkern 16 aktualisiert eine Speicherstelle), wird der Schreibvorgang und die aktualisierten Daten von der Busschnittstelle 30 auf einen externen Bus 36 rundgesendet. Für Lesezugriffe auf den internen Speicher 30 wird die Adresse auf den externen Bus 36 rundgesendet, wobei jedoch die gelesenen Daten im allgemeinen nicht rundgesendet werden. Es sei bemerkt, dass sich der Begriff Zugriff auf entweder ein Lesen (eine Übertragung von Daten von der zugegriffenen Speicherstelle zu dem Übertragungs-Initiator z. B. Prozessorkern 16) oder einem Schreiben (eine Übertragung von Daten von dem Übertragungs-Initiator in die zugegriffene Speicherstelle bezieht). Schreibzugriffe können ebenfalls als Aktualisierungen bezeichnet werden.
  • Der Mikrocontroller 10 benutzt einen Mechanismus, um die Anwender bei der Fehlerbeseitigung zu unterstützen, der als ein "Zeige-Lese"-Modus bezeichnet wird. In den Zeige-Lese-Modus wird eingetreten, wenn bei der Deaktivierung des Rücksetzsignals an dem Mikrocontroller 10 ein Signal an einem vordefinierten Pin aktiviert wird. Alternativ kann ein Konfigurationsregister durch einen Software-Befehl programmiert sein, um den Zeige-Lese-Modus zu aktivieren. Bei einem Zeige-Lese-Modus werden, wenn der Prozessorkern 16 einen Lesezugriff auf den internen Speicher 30 durchführt, die aus dem internen Speicher 30 gelesenen Daten von der Busschnittstellen-Einheit 32 auf den externen Bus 36 befördert. Die an dem Prozessorkern 16 von dem internen Speicher 30 übertragenen Seiten werden dadurch außerhalb des Mikrocontroller 10 sichtbar. Das Funktions-Timing der Lesedaten auf dem externen Bus 36 stimmt mit dem für externe Lesedaten (z. B. von einem externen Speicher bereitgestellte Daten) erforderliche Funktions-Timing überein. Ausserdem stimmt das A/C-Timing der Zeige-Lese-Busübertragungen mit dem A/C-Timing anderer Lesevorgänge überein. Insbesondere sind die Einstellzeit (d. h. der Betrag der Zeit vor einer bestimmten Taktflanke, bei der die Daten erfasst werden, dass die Daten auf dem Bus gültig sein müssen) und der Haltezeit (d. h. die Betrag der Zeit im Anschluss an die bestimmte Taktflanke, der der Datenbus auf dem Bus gültig sein muss), größer gleich oder gleich dem entsprechenden Einricht- und Halte-Zeiten für externe Lesevorgänge sind.
  • Allgemein gesagt kann der interne Speicher 30 jede Art von Speicher umfassen. Ein Speicher umfaßt eine Mehrzahl von Speicherstellen. Jede Speicherstelle ist durch eine eindeutige Adresse für Lese- und Schreibzugriffe auswählbar. Bei einer Ausführungsform umfasst der interne Speicher 30 Direktzugriffsspeicher (RAM = random access memory) von 32 KByte. Der RAM Rann beispielsweise statische RAM-Zellen (SRAM-Zellen) oder beispielsweise statische RAM-Zellen (SRAM-Zellen) oder dynamische RAM (DRAM-Zellen) umfassen. Bei der vorliegenden Ausführungsform sind die Zeilen derart angeordnet, dass ein 16-Bit-Wort für jede Adresse gelesen oder geschrieben werden kann, die auf den Speicher zugreift. Es sei bemerkt, dass die Wörter andere Zahlen von Bits bei anderen Ausführungsformen umfassen können. Ferner kann jede gewünschte RAM-Konfiguration verwendet werden. Ausserdem liefert die Busschnittstellen-Einheit 32 im allgemeinen die Schaltungsanordnung zum Kommunizieren auf dem externen Bus 36 in Übereinstimmung mit dem Protokoll der 80C186-Schnittstelle.
  • Die Taktsteuer/Leistungs-Managementeinheit 12 empfängt ein Eingangs- Schwingungssignal von einem externen Oszillator (nicht gezeigt) und erzeugt interne und externe Taktsignale aus dem Eingangs-Schwingungssignal. Die internen und externen Taktsignale können mit voller Geschwindigkeit oder in einem Leistungssparmodus mit einer niedrigen Frequenz als die volle Geschwindigkeitsfrequenz arbeiten. Verschiedene Algorithmen zum Auswählen des Leistungssparmodus sind bekannt.
  • Ein Interrupt-Steuereinheit 14 empfängt Interrupt-Signale aus von dem Mikrocontroller 10 verbundenen Vorrichtungen ("Peripherievorrichtungen"). Im allgemeinen unterbricht eine Vorrichtung den Mikrocontroller 10, wenn ein spezifischer Dienst von der Vorrichtung benötigt wird. Wenn beispielsweise eine Vorrichtung Eingangsdaten puffert und der Puffer voll ist, kann die Vorrichtung den Mikrocontroller 10 unterbrechen. Der Mikrocontroller 10 überträgt Daten aus dem Puffer als Antwort auf Befehle in einer Interrupt-Serviceroutine, die dem von der Interrupt-Steuereinheit 14 empfangenen Interrupt entspricht. Bei einer Ausführungsform empfängt die Interrupt-Steuereinheit 14 bis zu sechs Interrupt-Anforderungsleitungen von externen Vorrichtungen und sechs interne Interrupt- Anforderungsleitungen (drei von der Zeitgeber-Steuereinheit 18, zwei von der DMA-Einheit 20 und eine von dem asynchronen seriellen Port 24). Die Interrupt-Steuereinheit 14 priorisiert die Interrupts und präsentiert die Interrupts dem Prozessorkern 16 einzeln. Ausserdem können einzelne Interrupt-Anforderungen gemäß den Bedürfnissen eines Anwenders programmierbar maskiert sein.
  • Die Zeitgeber-Steuereinheit 18 umfasst eine Mehrzahl von programmierbaren Zeitgebern. Die Zeitgeber können verwendet werden, um bestimmte Ereignisse zeitlich zu steuern. Ausserdem kann einer der Zeitgeber als ein "Watchdog Timer (Überwachungszeitgeber)" verwendet werden. Ein Überwachungszeitgeber wird durch einen Software-Befehl gerade vor dem Durchführen eines Befehls oder Befehlen initialisiert, was zu einem unendliche Hängezustand führen kann (z. B. unendliche Schleife, eine Schleife, die das Ausführen niemals beendet, da Daten niemals von einer externen Vorrichtung zurückgegeben werden, etc.). Der Überwachungszeitgeber liefert einen Interrupt nach dem Herunterzählen, was den Prozessorkern 16 veranlasst, den Befehlscode zu verlassen, der den unendlichen Hängezustand erlebt. Der Mikrocontroller kann dann mit anderen Aufgaben fortfahren.
  • Die DMA-Steuereinheit 20 ist konfiguriert, um Direktzugriffsspeicher- Übertragungen (DMA-Übertragungen) zwischen dem Speicher und E/A-Plätzen von zwei Adressenbereichen innerhalb einer oder mehrerer der Speicher und E/A-Plätzen durchzuführen. Im allgemeinen ist die DMA-Steuereinheit 20 mit Ursprungs- und Zieladressen und einem Übertragungszählwert programmiert, der die Anzahl von dem Ursprung zu dem Ziel zu übertragender Bytes (oder Wörter) festlegt. Die DMA-Steuereinheit 20 führt dann die angegebene Übertragung durch. Bei einer Ausführungsform umfasst die DMA-Steuereinheit 20 zwei DMA-Kanäle zum Programmieren zweier unterschiedlicher DMA- Übertragungen.
  • Allgemein gesagt ist eine DMA-Übertragung eine Übertragung von Daten von einer Ursprungsstelle oder -Stellen zu einer Zielstelle oder Stellen, die ohne Intervention von dem Prozessorkern 16 durchgeführt wird. Die Übertragung wird über einen "Kanal" innerhalb der DMA-Steuereinheit 20 (oder DMA- Controller) durchgeführt. Der Kanal stellt die Kommunikation zwischen den Ursprungs- und Zielstellen bereit. Im allgemeinen liest die DMA-Steuereinheit 20 die Ursprungsstellen, wobei die Daten daraus erfasst werden, und speichert die Daten in den Zielstellen. Jeder Kanal ist getrennt und unabhängig von dem anderen konfigurierbar. Somit können die Kanäle parallel arbeiten, wobei die interne Busleitung 34 gemeinsam benutzt wird. Ausserdem können zwei DMA- Übertragungen von dem Prozessorkern 16 gleichzeitig initialisiert werden, und die DMA-Übertragungen können in einer beliebigen Reihenfolge abhängig von den Bedürfnissen der bei den Übertragungen beteiligten Vorrichtungen stattfinden.
  • DMA-Übertragungen können synchronisiert, ursprungssynchronisiert oder zeitsynchronisiert sein. Nicht synchronisierte DMA-Übertragungen beginnen, wenn das Steuerregister des die Übertragung bereitstellenden Kanals von dem Prozessorkern 16 mit einem Wert aktualisiert wird, der angibt, dass die Übertragung programmiert ist und die Übertragung nicht synchronisiert ist. Ursprungssynchronisierte Übertragungen warten auf ein Anforderungssignal, das von dem Ursprung der DMA-Übertragung zu aktivieren ist, bevor die Übertragung begonnen wird. Schließlich warten zielsynchronisierte DMA- Übertragungen auf ein Anforderungssignal, das von dem Ziel der DMA- Übertragung zu aktivieren ist, bevor die Übertragung begonnen wird. Während nicht synchronisierte und ursprungssynchronisierte DMA-Übertragungen kontinuierliche Zugriffe der Ursprungs- und Ziel-Speicherstellen durchführen (sobald die Übertragung initiiert ist), überträgt der ziel-synchronisierte DMA eine Pause zwischen dem Aktualisieren einer Zielstelle und dem Zugreifen auf die nächste Ursprungsstelle. Wenn die Zielvorrichtung ihre Anforderung während der Pause entfernt, dann muss die Anforderung erneut aktiviert werden, um die Übertragung fortzusetzen. Die Pause ist bei einer Ausführungsform zwei Bus-Zyklen lang.
  • Die PIO-Einheit 22 ermöglicht die Programmierung eines Satzes von PIO-Pins (Programmable Input/Output Pins = programmierbaren Eingangs-/Ausgangs- Pins). Ein Anwender kann wählen, jeden einzelnen Pin als ein Eingangs- oder Ausgangs-Pin zu programmieren. Der Pin kann für eine beliebigen Zweck gemäß den Bedürfnissen eines Anwenders benutzt werden. Werte, die auf einem Ausgangs-Pin übertragen oder von einem Eingangs-Pin empfangen werden, werden in jeweiligen Stellen eines Registers gespeichert, die dem Anwender über einen Befehl zugänglich ist. Ausserdem sind Konfigurationsregister enthalten, um PIO-Pins zu aktivieren und PIO-Pins als Eingang oder Ausgang zu konfigurieren.
  • Ein asynchroner serieller Port 24 liefert einen asynchronen seriellen Kommunikations-Mechanismus, der mit Industriestandard-RS232-Spezifikationen kompatibel ist. Andererseits liefert eine synchrone serielle Schnittstelle 26 einen synchronen Kommunikations-Mechanismus über eine synchrone serielle Schnittstelle, die einen Takt-Pin, Daten-Pin und ein Paar von Freigabepins umfassen. Der Daten-Pin und das Paar von Freigabepins werden häufig mit dem Takt-Pin referenziert.
  • Die Chip-Auswahleinheit 28 liefert einen Satz von externen Chip- Auswahlsignalen für eine Vielfalt von Peripherievorrichtungen basierend auf einer programmierbaren Speicherabbildung. Jedes externe Chip-Auswahlsignal wird einen Speicherblock (z. B. einen zusammenhängenden Adressenbereich) innerhalb des von dem Mikrocontroller 10 bereitgestellten adressierbaren Speichers zugewiesen (d. h. dem Adressraum). Jedes externe Chip- Auswahlsignal wird von einer bestimmten Peripherievorrichtung empfangen, und eine Aktivierung dieses externen Chip-Auswahlsignals benachrichtigt die bestimmte Peripherievorrichtung, dass die präsentierte Adresse innerhalb des Adressraums der Peripherievorrichtung (d. h. innerhalb ihres zugewiesenen Speicherblocks) ist. Bei einer Ausführungsform werden 20 Bits von Adressen benutzt, um einen 1 Mbyte-Adressraum bereitzustellen. Jedes externe Chip- Auswahlsignal ist programmiert, um auf einen spezifischen Bereich von Adressen innerhalb des 1 Mbyte-Adressraums zu antworten. Die Bereiche von Adressen, auf die die externen Chip-Auswahlsignale antworten, umfassen nicht den Bereich von Adressen, die dem externen Speicher 30 zugewiesen sind. Bei einer Ausführungsform sind bis zu 20 externe Chip-Auswahlsignale in Übereinstimmung mit der 80C186-Kompatibilität enthalten.
  • In Fig. 2 ist ein Blockdiagramm eines Testeinrichtungssystems 40 gezeigt, das konfiguriert ist, um den Mikrocontroller 10 zu testen. Das Testeinrichtungssystem 40 umfaßt eine Testeinrichtung 42, ein Testschnittstelle 44 und den Mikrocontroller 10. Die Testeinrichtung 42 kann eine beliebige Halbleiter-Testmaschine sein. Beispielsweise kann die Testeinrichtung 42 eine von Teradyne, Inc., Boston, Massachusetts, erhältliche J971-Testeinrichtung sein. Ausserdem kann die Testschnittstelle 44 ebenfalls von Teradyne erhalten werden. Typischerweise werden die Testeinrichtung 42 und die Testschnittstelle 44 zusammen als eine Einheit verkauft. Die Testschnittstelle 44 wird verwendet, um den Mikrocontroller 10 zu kontaktieren, und ist im allgemeinen für jede integrierte Schaltung kundenspezifisch angepasst, die die Testeinrichtung 42 verwendet, um zu testen. Beispielsweise werden verpackte Teile unter Verwendung einer Vorrichtungs-Schnittstellen-Karte (DIB = device interface board) innerhalb der Testschnittstelle 44 getestet. Die DIB umfasst eine Standardschnittstelle mit dem Rest der Testschnittstelle 44 und eine kundenspezifische Schnittstelle mit dem Mikrocontroller 10, so dass jeder Pin des Mikrocontrollers 10 gleichzeitig kontaktiert wird.
  • Allgemein gesagt ist die Testeinrichtung 42 konfiguriert, um einen Satz von Testvektoren an den Mikrocontroller 10 anzulegen. Jeder Testvektor stellt einen Taktzyklus dar (d. h. eine Periode der von der Taktsteuer/Leistungs- Managementeinheit 12 erzeugten Taktsignale). Der Testvektor liefert einen Wert für jeden Eingangs-Pin und für jeden Eingangs-/Ausgangs-Pin, der während des Taktzyklus im Eingangs-Modus ist. Ausserdem liefert der Testvektor einen erwarteten Wert für jeden Ausgangs-Pin und für jeden Eingangs- /Ausgangs-Pin, der während des Taktzyklus im Ausgangs-Modus ist. Die Testeinrichtung 42 liefert durch die Testschnittstelle 44 die Eingangswerte an die Eingangs-Pins während des entsprechenden Taktzyklus und prüft die Ausgangswerte an den Ausgangs-Pins während des entsprechenden Taktzyklus für jeden in dem Satz bereitgestellten Testvektor.
  • Die Testvektoren werden im allgemeinen von den Entwicklern des Mikrocontrollers 10 erzeugt. Testvektoren können erzeugt werden, um kritische Pfade (d. h. logische Pfade, die die längste Menge an Zeit benötigen, um ein Ergebnis zu berechnen) prüfen. Weitere Sätze von Testvektoren prüfen im allgemeinen die Funktionalität der Kerne des Mikrocontrollers 10 (diese Sätze von Testvektoren werden häufig als "Funktionsmuster" bezeichnet).
  • Bei der gezeigten Ausführungsform werden Sätze von Testvektoren erzeugt, um ein Fehlertesten an dem internen Speicher 30 (d. h. BIST) durchzuführen. Die Testvektoren umfassen ein Zuführen von Befehlen an den Prozessorkern 16 über den externen Bus 36. Diese Befehle initialisieren Konfigurationsregister innerhalb des Prozessorkerns 16, initialisieren den DMA-Controller 10 und initiieren die DMA-Übertragungen durch Aktivieren eines mit den DMA- Anforderungspins gekoppelten PIO-Pin. Wie es in Fig. 2 gezeigt ist, ist ein PIO-Pin 46 und DMA-Anforderungspins 48 und 50 in dem Mikrocontroller 10 enthalten. Während der Simulation, die durchgeführt wird, um die Testvektoren zu erzeugen (wie es nachstehend beschrieben ist), ist der PIO-Pin 46 mit den DMA-Anfordernungspins 48 und 50 gekoppelt, um eine Aktivierung der DMA-Anforderungspins 48 und 50 zu liefern. Während der Umwandlung in die Testvektoren werden die DMA-Anforderungspins 48 und 50 jedoch als Eingangs-Pins gekennzeichnet. Die Testeinrichtung treibt die Eingangs-Pins auf den von der Simulation bereitgestellten geeigneten Wert (über den PIO-Pin 46). Die Testvektoren zum Testen des internen Speichers 30 umfassen ferner einen Satz von Erwartungsvektoren für die DMA-Übertragungen. Die Erwartungsvektoren verifizieren, dass die Ergebnisse des Lesens und Schreibens des internen Speicher 30 richtig sind (d. h., dass keine Fehler erfasst werden).
  • In Fig. 3 ist ein Diagramm, das eine Ausführungsform der DMA-Steuereinheit 20 und einen internen Speicher 30 ausführlicher darstellt, gezeigt. Weitere Ausführungsformen werden in Betracht gezogen. Wie es in Fig. 3 gezeigt ist, umfasst eine DMA-Steuereinheit 20 einen DMA-Steuerblock 60, einen Satz von ersten DMA-Kanalregistern 62 und einen Satz von zweiten DMA-Kanalregistern 64. Der DMA-Steuerblock 60 ist mit den ersten DMA-Kanalregistern 62, den zweiten DMA-Kanalregistern 64 und einer internen Busleitung 34 gekoppelt. Ausserdem empfängt der DMA-Steuerblock 60 eine Zeitgeberleitung 66 von der Zeitgeber-Steuereinheit 18, eine mit dem DMA-Anforderungspin 48 gekoppelte DRQ0-Leitung 68 und eine mit dem DMA-Anforderungspin 50 gekoppelte DRQ1-Leitung 70. Schließlich liefert der DMA-Steuerblock 60 Interrupt- Anforderungsleitungen 72 und 74, um die Steuereinheit 14 zu unterbrechen. Die Interrupt-Anforderungsleitung 72 entspricht dem ersten DMA-Kanal und die Interrupt-Anforderungsleitung 74 dem zweiten DMA-Kanal.
  • Fig. 3 stellt ferner den internen Speicher 30 zusammen mit einem internen Speicher-Konfigurationsregister 76 dar. Das interne Speicher- Konfigurationsregister 76 umfasst eine Basisfeld 78, ein Freigabe-Bit 79 und ein Zeige-Lese-Bit 80, wie es in Fig. 3 gezeigt ist. Zusätzliche Konfigurations- Bits können ebenfalls bereitgestellt werden. Das Freigabe-Bit 79 wird verwendet, um den internen Speicher 30 freizugeben/zu sperren. Das Basisfeld 78 speichert eine Angabe der Basisadresse des internen Speichers 30 innerhalb des Adressraums des Mikrocontrollers 30. Die Basisadresse ist die Adresse der niederstwertigen Speicherstelle innerhalb des internen Speichers 30. Weitere Speicherstellen innerhalb des internen Speichers 30 sind über Adressen angeordnet, die eine größeren numerischen Wert als die in dem Basisfeld 78 ge¬ speicherte Basisadresse aufweisen. Für die vorliegende Ausführungsform ist erforderlich, dass die Basisadresse mit einer Adressengrenze für die Größe des internen Speichers innerhalb des Adressraums des Mikrocontrollers 10 ausgerichtet ist. Beispielsweise wird gemäß einer Ausführungsform der Adressraum des Mikrocontrollers 10 durch 20 Adress-Bits gekennzeichnet (d. h. ein 1- Mbyte-Adressraum), und der internen Speicher 30 umfasst 32 Kbyte von Speicher. Somit ist die Basisadresse des internen Speichers 30 mit einer 32-KByte- Grenze innerhalb des Adressraums ausgerichtet (d. h. die niederstwertigen 15 Bit der Basisadresse sind Null). Das Basisfeld 76 kann konfiguriert sein, um nur die Adress-Bits zu speichern, die nicht Null sein müssen (d. h. die höchstwertigen 5 Bits bei der vorliegenden Ausführungsform). Das Zeige-Lese- Bit 80 definiert den Zeige-Lese-Modus des Mikrocontroller 10 zusätzlich zu einem Hardware-Pin, der beim Zurücksetzen gekippt werden kann. Wenn das Zeige-Lese-Bit 80 gesetzt ist, ist der Mikrocontroller 10 im Zeige-Lese-Modus. Wenn das Zeige-Lese-Bit 80 gelöscht ist, ist der Mikrocontroller 10 nicht im Zeige-Lese-Modus, es sei denn, dass er durch die Aktivierung des Hardware- Pins beim Zurücksetzen dort plaziert ist.
  • Eine Komparatorschaltung 82 ist zwischen dem Basisfeld 78 des internen Speicher-Konfigurations-Registers 76 und des Adressabschnitts der internen Busleitung 34 gekoppelt. Wenn eine auf der internen Busleitung 34 präsentierte Adresse innerhalb des Adressraums des internen Speichers 30 ist, aktiviert die Komparatorschaltung 32 ein internes Chip-Auswahlsignal (ICS-Signal = internal chip select signal) auf einer ICS-Leitung 84 an den internen Speicher 30. Der interne Speicher 30 wird dadurch benachrichtigt, um auf den gegenwärtigen Zugriff durch Bereitstellen der Lesedaten (Lesezugriff) oder Speichern der bereitgestellten Daten (Schreibzugriff) zu antworten. Wenn beispielsweise der DMA-Steuerblock 60 einen Lese- oder Schreibzugriff auf den internen Speicher 30 während einer DMA-Übertragung durchführt, wird das ICS-Signal aktiviert.
  • Allgemein gesagt führt der DMA-Steuerblock 60 Lese- und Schreibzugriffe auf der internen Busleitung 34 durch, um eine DMA-Übertragung abzuschließen, die von dem ersten oder zweiten DMA-Kanal spezifiziert wird. Die Busschnittstelleneinheit 32 steuert die Buszyklen extern an. Jedes durch die DMA- Übertragung übertragene Datenelement erfordert einen Lesezugriff auf den Ursprung und einen Schreibzugriff auf das Ziel. Die Ursprungsadresse kann nach jedem Zugriff inkrementiert oder dekrementiert werden, um auf das nächste aufeinander folgende Datenelement in der DMA-Übertragung zu zeigen. Auf ähnliche Weise kann die Zieladresse inkrementiert oder dekrementiert werden. Alternativ kann entweder die Ursprungsadresse oder die Zieladresse (oder beide) während der Übertragung konstant bleiben. Ein "Datenelement" ist ein Element der übertragenen Daten. Bei der vorliegenden Ausführungsform können Datenelemente Bytes oder Wörter sein. Die Größe der Datenelemente für eine gegebene DMA-Übertragung wird in dem Steuerregister des die Übertragung durchführenden Kanals spezifiziert. Außerdem dekrementiert der DMA-Steuerblock 60 den Übertragungszählwert für den Kanal bei der Durchführung jedes Lese-/Schreib-Zugriffspaars. Bei Erschöpfung des Übertragungszählwerts endet die DMA-Übertragung, es sei denn, dass das Steuerregister etwas anderes angibt. Ein Interrupt kann auf den Interrupt- Anforderungsleitungen 72 oder 74 bei Beendigung der DMA-Übertragung erzeugt werden.
  • Der DMA-Steuerblock 60 entscheidet über die Priorität zwischen den DMA- Kanälen, wenn die DMA-Übertragungen während überlappenden Zeitspannen durchgeführt werden. Werte in dem Steuerregister für jede DMA-Übertragung helfen, die Priorität zu entscheiden (d. h. ein Kanal höherer Priorität wird zuerst ausgeführt). Wenn DMA-Übertragungen gleiche Priorität zugewiesen werden, sind die Lese-/Schreib-Zugriffspaare der beiden Übertragungen verschachtelt. Dem zweiten DMA-Kanal wird eine vorgegebene höhere Priorität zugeordnet, um das erste Lese-/Schreib-Zugriffspaar zu bestimmen, das auszuführen ist, wenn beiden Kanälen die gleiche Prioritätsebene zugewiesen ist, wobei danach die Verschachtelung der Lese-/Schreib-Zugriffspaare durchgeführt wird (d. h. ein Lese-/Schreib-Zugriffspaar von dem zweiten DMA-Kanal wird ausgeführt, dann ein Lese-/Schreib-Zugriffspaar von dem ersten DMA-Kanal, etc.). Ein Lese-/Schreib-Zugriffspaar des Lesezugriffs von dem Ursprung, um einen be¬ stimmten Wert zu erhalten, und der entsprechenden Schreibzugriff auf das Ziel werden durchgeführt, wobei das Ziel mit dem bestimmten Wert aktualisiert wird.
  • Bei der vorliegenden Ausführungsform, bei der der Mikrocontroller 10 80C186- kompatibel ist, verlangt jedes Datenelement mindestens 8 Taktzyklen, um zu übertragen. Vier Taktzyklen werden für den Lesezugriff und vier Taktzyklen für den Schreibzugriff verwendet. Wenn entweder der Ursprung oder das Ziel Wartezustände verlangt, steigt die Anzahl von Zyklen pro Zugriff an. Ferner werden zusätzliche Zyklen übernommen, wenn eine DMA-Übertragung zielsynchronisiert ist.
  • Der DMA-Steuerblock 60 aktualisiert die ersten DMA-Kanalregister 62 und die zweiten DMA-Kanalregister 64 als Antwort auf Schreibzugriffe auf die Register an der internen Busleitung 34; und stellt ferner Registerinhalt als Antwort auf Lesezugriffe darauf zur Verfügung. Die ersten DMA-Kanalregister 62 legen den ersten DMA-Kanal und die zweiten DMA-Kanalregister 64 den zweiten DMA- Kanal fest. Die ersten DMA-Kanalregister 62 umfassen ein erstes DMA- Ursprungsadressenregister 62A, ein erstes DMA-Zieladressenregister 628, ein erstes DMA-Übertragungszählwertregister 62C und ein erstes DMA- Steuerregister 62D. Auf ähnliche Weise umfassen die zweiten DMA- Kanalregister 64 ein zweites DMA-Ursprungsadressenregister 64A, ein zweites DMA-Zieladressenregister 64B, ein zweites DMA-Übertragungszählwertregister 64C und ein zweites DMA-Steuerregister 64D. Jedes der ersten DMA- Kanalregister 62 und der zweiten DMA-Kanalregister 6a werden einer Adresse zugeordnet, an der Lese- und Schreibzugriffe durchgeführt werden, um die entsprechenden Register zu lesen und zu schreiben.
  • Das Ursprungsadressenregister und das Zieladressenregister eines Kanals legen die während des Lesezugriffs bzw. des Schreibzugriffs eines Datenelements innerhalb der DMA-Übertragung präsentierte Adresse fest. Im Anschluss an jeden Zugriff wird die entsprechende Adresse abhängig von dem Wert in dem entsprechenden Steuerregister inkrementiert, dekrementiert oder nicht modifiziert. Das Übertragungszählwertregister speichert die Anzahl zu übertragender Datenelemente.
  • Das Steuerregister des Kanals spezifiziert Einzelheiten der durchzuführenden DMA-Übertragung. Genauer gesagt spezifiziert das Steuerregister: (i) den Synchronisationsmodus der Übertragung (d. h. nicht synchronisiert, ursprungssynchronisiert oder zielsynchronisiert); (ii) die Datenelementgröße (d. h. Byte oder Wort); (iii) ob ein Interrupt bei der Beendigung der DMA-Übertragung zu erzeugen ist oder nicht; (iv) ob die DMA-Übertragung bei der Erschöpfung des Übertragungszählwerts endet oder nicht; (v) die Prioritätsebene des DMA- Kanals (hoch oder niedrig); (vi) ob die Ursprungsadresse nach jedem Lese- /Schreib-Zugriffspaar zu inkrementieren, dekrementieren oder nicht zu modifizieren ist); (vii) ob die Ursprungsadresse im Speicher oder im E/A-Raum ist; (viii) ob die Zieladresse nach jedem Lese-/Schreib-Zugriffspaar zu inkrementieren, dekrementieren oder nicht zu modifizieren ist; und (ix) ob die Ursprungsadresse im Speicher oder im E/A-Raum ist.
  • Wenn der Synchronisationsmodus einer gegebenen DMA-Übertragung nicht synchronisiert ist, wird die DMA-Übertragung durch den DMA-Steuerblock 60 bei der Aktualisierung des entsprechenden Steuerregisters initiiert. Wenn der Synchronisationsmodus ursprungs- oder zielsynchronisiert ist, dann initiiert der DMA-Steuerblock 60 die DMA-Übertragung bei Aktivierung des entsprechenden DMA-Anforderungssignals (DRQ0-Leitung 68 für den ersten DMA- Kanal und DRQ1-Leitung 70 für den zweiten DMA-Kanal). Alternativ kann die Zeitgeberleitung 66 als eine Anforderungsleitung für die Kanäle verwendet werden.
  • In Fig. 4 ist ein Ablaufdiagramm gezeigt, das die durchgeführten Aktivitäten darstellt, um den internen Speicher 30 unter Verwendung des DMA-Controllers 20 zu testen, um die BIST-Operationen in Übereinstimmung mit der vorliegenden Ausführungsform durchzuführen. Weitere Sätze von Aktivitäten können durchgeführt werden, solange wie das Lesen und Schreiben von Hintergrundmustern und Komplementen der Hintergrundmuster durchgeführt wird, um Fehlertestkriterien zu erfüllen.
  • Der Test beginnt mit dem Rücksetzen des Mikrocontrollers 10. Daher wird der Mikrocontroller 10 mit den Bedingungen initialisiert, die verwendet werden, um den Test durchzuführen (Schritt 90). Insbesondere werden gewisse der Chip-Auswahlen den Adressenbereichen innerhalb des Adressenraums des Mikrocontrollers 10 zugewiesen. Das Konfigurationsregister des internen Speichers 76 wird mit einem Wert versehen, wodurch die Basisadresse des internen Speichers 30 programmiert wird. Bei einer Ausführungsform ist der Zeige- Lese-Modus ebenfalls aktiviert. Auf diese Art und Weise sind die Leseabschnitte der DMA-Übertragungen, wenn sie an den internen Speicher 30 gerichtet sind, an den Pins des Mikrocontrollers 10 zur Verifizierung sichtbar. Eine erste Chip-Auswahl wird für die Adressenbereiche direkt unter dem internen Speicherbereich programmiert (ein Adressenbereich ist unter einem anderen Adressenbereich, wenn der Adressenbereich Adressen enthält, die numerisch kleiner als die Adressen innerhalb des anderen Adressenbereichs sind). Die Adresse, die im Anschluß an die Basisadresse des internen Speichers 30 folgt und unter der Basisadresse ist, wird verwendet, um das für den Test ausgewählte Hintergrundmuster zu speichern, und somit wird die erste Chip- Auswahl für diesen Speicherbereich festgelegt. Außerdem wird eine zweite Chip-Auswahl für den Speicherbereich festgelegt, der die Adresse außerhalb des internen Speichers 30 enthält, was das für den ersten DMA-Kanal während des Tests verwendete Ziel ist (wie es nachstehend beschrieben ist). Die Speicherstelle, die zu der Basisadresse aufeinander folgend und unter ihr ist (die "Hintergrundmuster-Stelle") wird auf das ausgewählte Hintergrundmuster für den Test initialisiert. Schließlich wird der PIO-Pin 46 als ein Ausgangspin durch Setzen der geeigneten Steuerregister aktiviert.
  • Nach der Initialisierung des Mikrocontrollers 10 wird der erste DMA-Kanal der DMA-Steuereinheit 20 verwendet, um den internen Speicher 30 auf das ausgewählte Hintergrundmuster zu initialisieren (Schritt 92). Die Ursprungsadresse wird in die Hintergrundmuster-Stelle programmiert; und die Zieladresse wird in die Basisadresse des internen Speichers 30 programmiert. Der Übertragungszählwert wird auf die Anzahl der in dem internen Speicher 30 gespeicherten Wörter gesetzt. Ferner wird die DMA-Übertragung mit Inkrementieren der Zieladresse, wobei die Zieladresse konstant bleibt, und Datenelementen von Wortgröße nicht synchronisiert. Sowohl die Ursprungs- als auch die Zieladressen werden als Speicherplatzadressen identifiziert. Somit wird das ausgewählte Hintergrundmuster wiederholt aus der Hintergrundmuster-Stelle gelesen und in den verschiedenen Speicherstellen des internen Speichers 30 gespeichert.
  • Nach dem Beenden der Initialisierung des internen Speichers 30 wird das in der Hintergrundmuster-Stelle gespeicherte Hintergrundmuster durch sein Komplement ersetzt (Schritt 94). Das Komplementieren des ausgewählten Hintergrundmusters liefert das komplementierte Hintergrundmuster für den zweiten DMA-Kanal, um zuzugreifen, wie es nachstehend beschrieben ist.
  • Wie es oben erwähnt wurde, wird ein PIO-Pin verwendet, um die Initiierung der beiden DMA-Übertragungen zu synchronisieren, die gleichzeitig arbeiten, um jeden Testlauf während der Simulierung des Tests auf einem Software- Modell des Mikrocontrollers 10 durchzuführen. Daher wird der PIO-Pin vor dem Konfigurieren der beiden DMA-Kanäle deaktiviert (Schritt 96). Das Deaktivieren des PIO-Pin umfasst ein Setzen der Steuerregister entsprechend den Daten für den PIO-Pin in einen deaktivierten Zustand. Es sei bemerkt, dass der Schritt 96 im Allgemeinen das Deaktivieren der DMA-Anforderungspins 48 und 50 unter Verwendung eines beliebigen Verfahrens umfasst.
  • Der erste und der zweite DMA-Kanal sind für den Testdurchlauf nach dem Deaktivieren des PIO-Pins konfiguriert (Schritt 98). Der erste DMA-Kanal wird auf eine Ursprungsadresse der Hintergrundmuster-Stelle, einer Zieladresse der Basisadresse des internen Speichers 30 und eines Übertragungswerts einer Anzahl von Wörtern innerhalb des internen Speichers 30 initialisiert. Der zweite DMA-Kanal wird auf eine Ursprungsadresse der Basisadresse des Kernspeichers 30, einer Zieladresse der externen Adresse, die verwendet wird, um den Inhalt des internen Speichers 30 zu verifizieren und einen Übertragungszählwert der Anzahl an Wörtern innerhalb des Speichers 30 initialisiert. Außerdem werden beide Steuerregister auf das ursprungssynchronisierte Inkrement der Ursprungsadresse, alle Adressen im Speicherplatz und hohe Prioritätsebene initialisiert. Der erste DMA-Kanal wird eingestellt, um die Zieladresse ebenfalls zu inkrementieren, während der zweite DMA-Kanal eingestellt wird, um die Zieladresse konstant zu halten.
  • Der zweite DMA-Kanal wird verwendet, um das in jeder Speicherstelle gegenwärtig gespeicherte Hintergrundmuster zu lesen und dieses Muster in der Zieladresse zu speichern. Somit verifiziert die zweite DMA-Übertragung, dass das Hintergrundmuster in jeder Speicherstelle innerhalb des internen Speichers 30 gespeichert und aus dieser gelesen werden kann. Da die Zugriffe der ersten und zweiten DMA-Übertragungen ferner verschachtelt sind, verifiziert die zweite DMA-Übertragung, dass die Werte konstant bleiben, wenn benachbarte Stellen auf das Komplement des Hintergrundmusters aktualisiert werden.
  • Der erste DMA-Kanal wird verwendet, um jede Speicherstelle mit dem Komplement des Hintergrundmusters zu aktualisieren und die Aktualisierung zu verifizieren. Die erste DMA-Übertragung bewerkstelligt die Verifizierung, indem zuerst die Hintergrundmuster-Stelle gelesen wird (die das Komplement des Hintergrundmusters mittels Schritt 96 speichert) und Speicherns dieses Werts in die niederstwertige Speicherstelle des internen Speichers 30 (d. h. die von der Basisadresse des internen Speichers 30 identifizierte Speicherstelle). Während des nachfolgenden Lese-/Schreib-Paars der ersten DMA-Übertragung wird auf die niederstwertige Speicherstelle zugegriffen (wodurch die Aktualisierung verifiziert wird), und die zweite niederstwertige Speicherstelle (d. h. die Basisadresse plus ein Wort) wird mit dem zugegriffenen Wert aktualisiert.
  • Nach Beendigung der Initialisierung der DMA-Kanäle wird der PIO-Pin 46 aktiviert, indem ein Wert, der einen aktivierten Zustand darstellt, in dem Steuerregister gespeichert wird, das die Daten des PIO-Pins 46 darstellt (Schritt 100). Die DMA-Anforderungspins 48 und 50 werden dadurch bei der Simulation aktiviert, und die DRQ0-Leitungen 68 und 70 werden in einem aktivierten Zustand von dem DMA-Steuerblock 60 empfangen. Wie es oben bemerkt ist, sind die DMA-Kanäle auf gleichen Prioritätsebenen programmiert. Da alle Anforderungen gleichzeitig empfangen werden und die Prioritätsebenen die gleichen sind, beginnt der DMA-Steuerblock 60 standardmäßig den zweiten DMA- Kanal zuerst zu starten und dann den ersten DMA-Kanal und den zweiten DMA-Kanal abzuwechseln. Somit wird jede Speicherstelle durch die zweite DMA-Übertragung gelesen, dann durch die erste DMA-Übertragung aktualisiert und dann von der ersten DMA-Übertragung gelesen. Die nachstehenden Fig. 5 und 5A stellen die Verschachtelung der Zugriffe ausführlicher dar. Es sei bemerkt, dass der Schritt 100 eine gleichzeitige Anforderung beider DMA- Kanäle vorsieht. Jedes Verfahren zum gleichzeitigen Aktivieren der Signale an den DMA-Anforderungspins 48 und 50 kann benutzt werden.
  • Es sei bemerkt, dass bei der vorliegenden Ausführungsform die Schritte 90 bis 100 durch Leiten von Befehlen von den Pins des Mikrocontrollers 10 in den Prozessorkern 16 durchgeführt werden. Die Befehle werden ausgeführt, um die Aktivitäten des Initialisierens des Mikrocontrollers 10, des Konfigurierens der DMA-Steuereinheit 20, des Aktivierens und Deaktivierens des PIO-Pins 46 und des Invertierens des ausgewählten Hintergrundmusters durchzuführen.
  • Der Test wartet die Beendigung der DMA-Übertragungen ab. (Entscheidungsblock 102). Da bei der Ausführungsform des Mikrocontrollers 10 die DMA- Aktivität von höherer Priorität als Anforderungen von dem Prozessorkern ist, werden Befehle nicht benötigt, um den Entscheidungsblock 102 auszuführen. Statt dessen können verschiedene NOP-Befehle in die Befehls-Code-Folge eingeführt werden, um den Prozessorkern 16 zu belegen, bis die DMA-Aktivität beginnt. Dann wird der Prozessorkern 16 automatisch ausgesperrt, bis die DMA-Aktivität abgeschlossen ist. Bei Ausführungsformen, bei denen der Prozessorkern 16 nicht automatisch von der Busaktivität ausgesperrt wird, können andere Lösungen angewendet werden. Beispielsweise können die DMA- Controller konfiguriert sein, um den Prozessorkern 16 bei der Beendigung zu unterbrechen. In einer derartigen Situation kann der Prozessorkern 16 in eine unendliche Schleife platziert werden, um den Entscheidungsblock 102 auszuführen. Bei Beendigung der DMA-Übertragungen ermöglicht der Interrupt dem Prozessorkern 16, zu den nachfolgenden Schritten weiterzugehen.
  • Bei Beendigung der DMA-Aktivität wird der Entscheidungsblock 104 ausgeführt. Bei Beendigung der DMA-Aktivität für den ersten Lauf, der einem ausgewählten Hintergrundmuster entspricht, wurde der interne Speicher 30 vom Speichern des ausgewählten Hintergrundmusters (darin über den Schritt 92 und die nachfolgende DMA-Übertragung initialisiert) zum Speichern des Komplements des ausgewählten Hintergrundmusters umgewandelt (darin über den ersten DMA-Kanal gespeichert, wie es bei Schritt 98 programmiert ist). Ein zweiter Lauf wird dann von den Schritte 94 bis 102 ausgeführt, wobei der interne Speicher 30 vom Speichern des Komplements des ausgewählten Hinter¬ grundmusters in das ausgewählte Hintergrundmuster umgewandelt wird. Der Entscheidungsblock 104 gibt an, ob ein zweiter Lauf für das ausgewählte Hintergrundmuster ausgeführt wurde oder nicht. Wenn ein zweiter Lauf noch auszuführen ist, werden die Schritte 94 bis 102 wiederholt. Wenn ein zweiter Lauf beendet wurde, wird der Entscheidungsblock 106 ausgeführt.
  • Beim Entscheidungsblock 106 bestimmt der Test, ob alle für das Testen des internen Speichers 30 spezifizierten Hintergründe ausgeführt wurden. Bei einer Ausführungsform werden fünf Hintergrundmuster verwendet, um einen vollständigen BIST des internen Speichers 30 auszuführen. Die Werte sind (als Hexadezimalwörter aufgeführt): 0000, 3333, 5555, 00ff und 0f0f. Wenn alle Muster ausgeführt wurden, endet der Test. Wenn Muster zum Ausführen übrig bleiben, wird ein neues Muster ausgewählt (Schritt 108), und die Schritte 92 bis 106 werden für das neue Muster wiederholt.
  • Es sei bemerkt, dass Testvektoren für das in Fig. 4 gezeigte Ablaufdiagramm erzeugt werden, und die Testvektoren an den Mikrocontroller 10 angelegt werden. Die Befehle, die verwendet werden, um die Schritte 90 bis 100 durchzuführen, werden dadurch dem Mikrocontroller 10 als Testvektoreingaben zur Verfügung gestellt. Außerdem wird die ordnungsgemäße Arbeitsweise der DMA-Übertragungen (d. h. die Verifizierung, dass die Daten wie erwartet sind) von den erwarteten Ausgaben des Testvektors verifiziert, die der ordnungsgemäßen Arbeitsweise der DMA-Übertragung entsprechen. Wenn eine Speicherstelle fehlerhaft ist, notiert die Testeinrichtung die Differenz zwischen dem erwarteten Wert und dem tatsächlichen Wert.
  • Es sei bemerkt, dass beide Läufe durch die Schritte 94 bis 102 des Ablaufdiagramms durchgeführt werden, indem durch die Adressen des internen Speichers 30 mit den ersten und zweiten DMA-Übertragungen von Schritt 98 inkrementiert wird. Es werden jedoch Ausführungsformen in Betracht gezogen, in denen das Inkrementieren und Dekrementieren der Adresse in verschiedenen Läufen durchgeführt wird. Beispielsweise können die Adressen während des ersten Laufs für ein ausgewähltes Muster inkrementiert und während des zweiten Laufs (d. h. ausgehend von der höchstwertigen Speicherstelle des internen Speichers 30 zu der niederstwertigen Speicherstelle) dekrementiert werden.
  • In Fig. 5 stellt ein Diagramm ein Paar von aufeinander folgenden Speicherstellen innerhalb des internen Speichers 30 (N und N+1) während verschiedener Punkte des Zeitintervalls dar, in denen der Test durch das in Fig. 4 gezeigte Ablaufdiagramm ausgeführt wird. In den Speicherstellen sind die Lese- und Schreibaktivitäten angegeben, die an dieser Speicherstelle ausgeführt wurden. Der erste Buchstabe der Aktivität identifiziert Lesen ("R") oder Schreiben ("W"). Die verbleibenden Buchstaben und der Apostroph oder das Fehlen derselben geben den gelesenen oder geschriebenen Wert an. Entweder das ausgewählte Hintergrundmuster ("BG") oder das Komplement des ausgewählten Hintergrundmusters ("BG") wird gelesen oder geschrieben. Außerdem werden die Aktivitäten in jeder Stelle in chronologischer Reihenfolge ihrer Durchführung aufgelistet.
  • Die Bezugsziffern 120 und 122 stellen die Speicherstellen N und N+1 nach der Initialisierung auf das ausgewählte Hintergrundmuster dar. Somit wurde jede Stelle in das ausgewählte Hintergrundmuster (WBG) geschrieben. Die Bezugsziffern 124 und 126 stellen Speicherstellen N und (bzw.) N+1 dar, nachdem der erste DMA-Kanal auf die Speicherstelle N zugegriffen hat. Somit wurde das ausgewählte Hintergrundmuster aus der Speicherstelle N(RGB) ausgelesen. Die Bezugsziffern 128 und 130 stellen Speicherstellen N und (bzw.) N+1 dar, nachdem der erste DMA-Kanal die Stelle N mit dem komplementären Hintergrundmuster (WBG') aktualisiert und der zweite DMA-Kanal auf die Stelle N+1 (RBG) zugegriffen hat. Auf ähnliche Weise stellen die Bezugsziffern 132 und 134 Speicherstellen N und N+1 dar, nachdem der erste DMA-Kanal auf die Stelle N zugegriffen und die Stelle N+1 aktualisiert hat; und die Bezugsziffern 136 und 138 stellen Speicherstellen N und N+1 dar, nachdem der erste DMA- Kanal auf die Stelle N+1 zugegriffen hat.
  • Wie es Fig. 5 darstellt, folgt der erste DMA-Kanal dem zweiten DMA-Kanal durch die Speicherstellen des internen Speichers 30. Bei Beendigung der DMA- Initialisierung entsprechend Schritt 92 und einem Satz von DMA- Übertragungen entsprechend Schritt 98 des in Fig. 4 gezeigten Ablaufdiagramms wurde jede Speicherstelle in ein Hintergrundmuster (WBG) geschrieben, wobei das Hintergrundmuster zur Verifizierung gelesen wurde (RGB), das Komplement des Hintergrundmusters geschrieben wurde (WBG') und das Komplement des Hintergrundmusters zur Verifizierung gelesen wurde (RBG'). Außerdem wurden auf Grund der Verschachtelung der DMA-Übertragungen benachbarte Speicherstellen zu der zur Verifizierung des ausgewählten Hintergrundmusters gelesenen Speicherstelle auf das Komplement des ausgewählten Hintergrundmusters aktualisiert (z. B. Bezugsziffern 128 und 130, wobei die Speicherstelle N WBG' vor der RGB empfangenden Speicherstelle N+1 empfängt).
  • In Fig. 5A wird ein Satz von Lese- und Schreibzugriffen, wie die Zugriffe in chronologischer Reihenfolge auf der internen Busleitung 34 und/oder dem externen Bus 36 während der bei Schritt 98 programmierten DMA- Übertragungen erscheinen können, gezeigt. Andere Reihenfolgen werden in Betracht gezogen. Fig. 5A stellt ferner die Verschachtelung der DMA- Übertragungen dar, die in Fig. 5 dargestellt sind. Ein Pfeil 140 stellt den positiven Zeitverlauf in beliebigen Einheiten dar.
  • Wie es in Fig. 5A gezeigt ist, führt der zweite DMA-Kanal einen Lesezugriff 141 auf eine Speicherstelle "N" gefolgt von einem Schreibzugriff 142 auf die externe Adresse durch. Das Hintergrundmuster wird dadurch für die Stelle N verifiziert. Nachfolgend führt der erste DMA-Kanal einen Lesezugriff 144 auf die Stelle N-1 durch (d. h. der Stelle benachbart zu der Stelle N mit einer numerisch kleineren Adresse als die Stelle N), gefolgt von einem Schreibzugriff 146 auf die Stelle N. Die Stelle N wird dadurch auf das Komplement des Hintergrundmusters aktualisiert (in der Stelle N-1 durch ein vorhergehendes Lese-/Schreibpaar von dem ersten DMA-Kanal gespeichert, nicht in Fig. 5A gezeigt). Nachfolgend wird ein Lesezugriff 148 von dem zweiten DMA-Kanal an der Stelle N+1 durchgeführt. Die Stelle N+1 wird somit zur Verifizierung des Hintergrundmusters im Anschluß an die Aktualisierung der benachbarten Stelle N auf das Komplement des Hintergrundmusters gelesen.
  • Es sei bemerkt, dass weitere Reihenfolgen der in Fig. 5A gezeigten Zugriffe in Betracht gezogen werden, solange wie der zweite DMA-Kanal auf eine Stelle N vor der Aktualisierung dieser Stelle durch den ersten DMA-Kanal zugreift. Beispielsweise kann der Schreibzugriff 142 und der Lesezugriff 144 in der Reihenfolge vertauscht werden.
  • In Fig. 6 ist ein Diagramm gezeigt, das den Adressraum des Mikrocontrollers 10 bei verschiedenen Punkten während des Verlaufs der beiden in Fig. 4 gezeigten Läufe für einen bestimmten ausgewählten Hintergrund darstellt. Die Adressräume 150A, 150B, 150C und 150D werden gezeigt, die jeweils den Zustand des Speichers bei verschiedenen Punkten während der Ausführung der zwei Testläufe darstellen. Die niederstwertige Adresse (Adresse "0") ist an dem unteren Ende jedes Adressraums 150 und die höchstwertige Adresse an dem oberen Ende jedes Adressraums 150 dargestellt. Jeder Adressraum 150 umfasst eine erste Region 152, die dem internen Speicher 30 entspricht (z. B. zwischen der Basisadresse und der Basisadresse plus der Größe des internen Speichers 30) und eine zweite Region 154, die der Speicherstelle im Anschluss an und unter der von der Basisadresse identifizierten Speicherstelle entspricht (d. h. der Hintergrundmuster-Stelle). Das Symbol "BG" gibt eine Speicherstelle oder Speicherstellen an, die das ausgewählte Hintergrundmuster für den Test speichert/speichern. Das Symbol "BG" gibt eine Speicherstelle oder Speicherstellen an, die das Komplement des ausgewählten Hintergrundmusters speichert/speichern.
  • Der Adressraum 150A stellt den Zustand des Speichers nach der Initialisierung des internen Speichers 30 jedoch vor dem Anfang des ersten Testlaufs dar. Somit enthält die Region 152 das ausgewählte Hintergrundmuster, und die Region 154 enthält das Komplement des ausgewählten Hintergrundmusters. Der Adressraum 150B stellt den Zustand des Speichers während des ersten Testlaufs für das ausgewählte Hintergrundmuster dar. Ein Abschnitt der Region 152 wird zum Speichern des Komplements des Hintergrundmusters umgewandelt, und der verbleibende Abschnitt speichert weiterhin das Hintergrundmuster. Der Adressraum 150C stellt den Zustand des Speichers bei Beendigung des ersten Laufs jedoch vor der Initiierung des zweiten Laufs der DMA- Übertragungen dar. Die Region 152 wird vollständig in das Komplement des Hintergrundmusters umgewandelt. Außerdem speichert die Region 154 das ausgewählte Hintergrundmuster über den Schritt 94 des zweiten Laufs. Der Adressraum 150D stellt den Zustand des Speichers während des Betriebs des zweiten Laufs dar. Ein Abschnitt der Region 152 wird in das ausgewählte Hintergrundmuster zurück konvertiert, während ein zweiter Abschnitt immer noch das Komplement des ausgewählten Hintergrundmusters speichert. Bei Beendigung des zweiten Laufs wird die Region 152 erneut das ausgewählte Hintergrundmuster in jeder Speicherstelle speichern. Es sei bemerkt, dass Fig. 6 den Zustand des Speichers darstellt, wenn der interne Speicher 30 keine Fehler aufweist. Wenn ein Fehler enthalten ist, dann kann sich der in den Adressräumen 150A bis 150D gezeigte Zustand des Speichers von dem in Fig. 6 gezeigten ändern. Die Testeinrichtung wird dann jedoch den Fehler erfassen und den Test durchfallen lassen.
  • Wie es die Fig. 5, 5A und 6 darstellen, erreicht der in der ersten und zweiten DMA-Übertragung benutzte Algorithmus die Ziele des 13N- Testalgorithmus. Insbesondere erreicht der Algorithmus die folgende Verifizierung der Speicherzellen: Jede Speicherzelle kann mit dem Hintergrundmuster und dem Komplement des Hintergrundmusters gelesen und geschrieben werden, während jede der anderen Speicherzellen entweder das Hintergrundmuster oder das Komplement des Hintergrundmusters speichert.
  • In Fig. 7 ist ein Ablaufdiagramm gezeigt, das den Prozess des Bildens von Testvektoren für den Test darstellt, der durch das in Fig. 4 gezeigte Ablaufdiagramm dargestellt wird. Im Allgemeinen können Testvektoren durch Simulieren des Tests auf einem Software-Modell des Mikrocontrollers 10 erzeugt werden, wobei die Simulationsergebnisse erfasst und die Ergebnisse in Testvektoren umgewandelt werden. Das Software-Modell des Mikrocontrollers 10 erzeugt die erwarteten Ergebnisse, und ein ordnungsgemäß arbeitender hergestellter Mikrocontroller 10 erzeugt die gleichen Ergebnisse. Die erfassten Simulationsergebnisse umfassen die Werte an jedem der Pins des Mikrocontrollers 10 während jedes Taktzyklus der Simulation. Diese Werte können dann in Testvektoren mit einem Wissen, welche Pins Eingänge und welche Pins Ausgänge während des Taktzyklus sind, umgewandelt werden.
  • Ungünstigerweise kann das Simulieren der DMA-Übertragungen auf den gesamten internen Speicher 30 eine große Menge an Simulationszeit erfordern. Beispielsweise wird bei der vorliegenden Ausführungsform ein interner Speicher 30 mit 32 Kilobyte benutzt, und jedes Lese-/Schreibpaar der DMA- Übertragungen verwendet 8 Zyklen. Ein interner Speicher 30 mit 32 Kilobyte umfasst 16K Wörter, wenn Wörter 2 Byte lang sind. Der Initialisierungslauf durch den internen Speicher 30 wird von einem DMA-Kanal durchgeführt, der (8·16K) 128K Taktzyklen belegt. Der erste Testlauf durch den internen Speicher 30 wird dann unter Verwendung beider Kanäle für (2·8·16K) 256K Taktzyklen durchgeführt. Im Anschluss daran verwendet der zweite Testlauf erneut beide Kanäle, die durch den internen Speicher 30 für (2·8·16K) 256K Taktzyklus laufen. Somit belegt das Testen eines Hintergrundmusters insgesamt 640K Taktzyklen. Eine kleine Anzahl zusätzlicher Taktzyklen wird benötigt, um den Mikrocontroller 10 zu initialisieren. Die Simulationszeit für eine derartig große Anzahl von Taktzyklen kann nicht akzeptabel sein. Außerdem kann die Anzahl von Testvektoren die maximale Anzahl von Testvektoren überschreiten, mit der die Testeinrichtung 42 konfiguriert ist, um einen einzigen Test zu speichern.
  • Das in Fig. 7 gezeigte Ablaufdiagramm ist eine Alternative zum Simulieren der gesamten DMA-Übertragung. Das Ablaufdiagramm zieht Nutzen aus der Tatsache, dass, sobald die DMA-Übertragungen beginnen, der Test zu einem wiederholten Muster von Lese- und Schreibvorgängen mit den inkrementierten Adressen der DMA-Übertragungen wird, wobei das gleiche Datenmuster übertragen wird. Anstatt des Simulierens der vollständigen DMA-Übertragung wird nur ein kleiner Übertragungszählwert in jedem Kanal der DMA-Übertragung für die Simulation programmiert (Schritt 160). Bei der vorliegenden Ausführungsform werden zwei Lese-/Schreibpaare für jede DMA-Übertragung simuliert. Die Simulationsergebnisse für die kleine Anzahl von Übertragungen werden dann in Testvektoren umgewandelt (Schritt 162).
  • Die durch Schritt 162 erzeugten Testvektoren werden modifiziert, um den gewünschten Test darzustellen, der bei dem hergestellten Mikrocontroller 10 durchzuführen ist (Schritt 164). Insbesondere werden die folgenden Modifikationen durchgeführt:
  • (i) Modifizieren des Befehls, der den Übertragungszählwert aktualisiert, um einen Übertragungszählwert der Anzahl von Datenelementen in dem internen Speicher 30 bereitzustellen (z. B. 16k bei der vorliegenden Ausführungsform).
  • (ii) "don't care" (beliebig) machen der Adressenpins während der DMA-Übertragung, da diese Pins auf eine Art und Weise inkrementiert werden, die bei der Simulation nicht dargestellt wird. Da diese Pins beliebig gemacht sind, wird die Testeinrichtung nicht versuchen, den Zustand der Pins zu verifizieren. Durch das Beliebigmachen der Adressen geht keine BIST-Testinformation verloren, da die Daten den richtigen Betrieb des internen Speichers 30 verifizieren.
  • (iii) "replicate" (duplizieren) der Testvektoren entsprechend den DMA- Übertragungen, bis die Anzahl der tatsächlich in dem Test durchgeführten DMA-Übertragungen erreicht wird (z. B. 16k Duplizierungen von einem der beiden Lese-/Schreibpaare für jede DMA- Übertragung bei der vorliegenden Ausführungsform). Zwei Lese- /Schreibpaare werden bei der Simulation bereitgestellt, um das zu duplizierende wiederholte Muster darzustellen.
  • Es sei bemerkt, dass die Modifikation (iii) durchgeführt werden kann, indem die Testeinrichtung 42 auf dem Satz von Testvektoren, die den DMA- Übertragungen entsprechen, schleift. Mit anderen Worten wird der gleiche Satz von Testvektoren wiederholt von der Testeinrichtung angelegt. Auf diese Art und Weise wird die Anzahl von Testvektoren verringert, während der gesamte Test immer noch durchgeführt wird.
  • In Fig. 8 ist ein Blockdiagramm ähnlich. Fig. 3 gezeigt, wobei für Schritt 98 des in Fig. 4 gezeigten Ablaufdiagramms die Register gemäß einem beispielhaften Test programmiert sind. Der beispielhafte Test ist für eine Ausführungsform des Mikrocontrollers 10, der 80C186-kompatibel ist und insbesondere mit AM186EM, verfügbar von Advanced Micro Devices, Inc., Sunnyvale, Kalifornien, kompatibel ist. Die für den in Fig. 8 dargestellten beispielhaften Test ausgeführten Befehle sind nachstehend für zwei Läufe eines ausgewählten Musters enthalten. Der Code kann erweitert werden, um Läufe für alle ausgewählte Muster durchzuführen, indem die Muster im Speicher gespeichert und ein Zähler verwendet wird, um die Muster auszuwählen und den Code mehrmalig gleich der Anzahl der ausgewählten Muster zu durchlaufen. Es sei bemerkt, dass die in Fig. 8 gezeigten Werte, die durch "0x" eingeleitet werden, Hexadezimalwerte sind, da derartige Werte gemäß der Schreibweise der Programmiersprache "C" dargestellt werden.
  • Die folgende Code-Auflistung ist der der Fig. 8 entsprechende beispielhafte Test. Die Auflistung endet an dem fett gedruckten Term end_listing:
  • end_listing
  • Es sei bemerkt, dass verschiedene Bezeichnungen bei dem beispielhaften Code verwendet werden. Die nachstehende Tabelle 1 listet die Bezeichnungen und ihre entsprechenden Hexadezimalwerte:
  • Tabelle 1
  • Bezeichnungen und entsprechende Werte
  • Bezeichnung Wert
  • CTL_OFF FB00
  • LMCS_REG A2
  • MMCS_REG A6
  • MPCS_REG A8
  • DMA0_SRH C2
  • DMA0_DSH C6
  • DMA0_SRC C0
  • DMA0_DES C4
  • DMA0_CNT C8
  • DMA0_CTL CA
  • DMA1_SRH D2
  • DMA1_DSH D6
  • DMA1_SRC D0
  • DMA1_DES D4
  • DMA1_CNT D8
  • DMA1_CTL DA
  • PIO_DATA 74
  • PIO_DIRC 72
  • PIO-ENAB 70
  • Es sei bemerkt, dass sich die vorliegende Erläuterung auf die Aktivierung verschiedener Signale beziehen kann. Wie es hier verwendet wird, wird ein Signal "aktiviert", wenn es einen Wert überträgt, der einen bestimmten Zustand angibt. Umgekehrt ist ein Signal "deaktiviert", wenn es einen Wert überträgt, der ein Fehlen eines bestimmten Zustands angibt. Ein Signal kann als aktiviert definiert werden, wenn es einen Null überträgt oder umgekehrt, wenn es einen Wert von logisch Eins überträgt. Es sei ferner bemerkt, dass obgleich ein Mikrocontroller bei der obigen Ausführungsform verwendet wird, jede integrierte Schaltung mit einem integrierten Speicher und DMA-Controller bei der vorliegenden Erfindung benutzt werden kann.
  • In Übereinstimmung mit der obigen Offenbarung wird ein Verfahren zum Testen eines integrierten Speichers einer integrierten Schaltung mit einem integrierten DMA-Controller beschrieben. Das Verfahren verwendet den DMA- Controller, um die BIST-Testfunktion durchzuführen. Somit kann die BIST- Logik aus der integrierten Schaltung gestrichen werden. Vorteilhafterweise wird der von dem BIST belegte Halbleiterbereich eingespart. Außerdem wird der Aufbau des Speichers, der vorher in dem BIST enthalten war, vereinfacht, wobei möglicherweise Zugriffszeiten verringert werden.
  • Es wird für Fachleute offensichtlich sein, die den Nutzen dieser Offenbarung aufweisen, dass die gezeigte und beschriebene Form der Erfindung für gegenwärtig bevorzugte Ausführungsformen beispielhaft zu nehmen ist. Verschiedene Modifikationen und Änderungen können durchgeführt werden, ohne von dem Schutzumfang der Erfindung abzuweichen, wie er in den Ansprüchen dargelegt ist. Es ist beabsichtigt, dass die folgenden Ansprüche interpretiert werden, um alle derartigen Modifikationen und Änderungen einzuschließen.

Claims (20)

1. Verfahren zum Testen eines Speichers einer integrierten Schaltung mit einem integrierten DMA-Controller, mit den folgenden Schritten:
- Initialisieren (92) mehrerer Speicherstellen, die den Speicher (30) umfassen, auf einen vordefinierten Wert;
- Durchführen einer ersten DMA-Übertragung (98) in dem DMA-Controller (20), um auf jede der mehreren Speicherstellen zuzugreifen;
- Durchführen einer zweiten DMA-Übertragung (98) in dem DMA-Controller, um jede der mehreren Speicherstellen auf ein Komplement des vordefinierten Werts zu aktualisieren, wobei die DMA-Übertragungen über einen ersten und einen zweiten DMA-Kanal (62, 64), die im DMA- Controller (20) enthalten sind, erfolgen.
2. Verfahren nach Anspruch 1, bei dem das Initialisieren das Durchführen einer dritten DMA-Übertragung zum Aktualisieren jeder der mehreren Speicherstellen auf den vordefinierten Wert umfaßt.
3. Verfahren nach Anspruch 2, ferner mit dem Durchführen der ersten DMA- Übertragung im ersten DMA-Kanal und dem Durchführen der zweiten DMA-Übertragung im zweiten DMA-Kanal.
4. Verfahren nach Anspruch 3, bei dem die erste DMA-Übertragung und die zweite DMA-Übertragung zeitgleich erfolgen.
5. Verfahren nach Anspruch 4, bei dem die erste DMA-Übertragung und die zweite DMA-Übertragung quellensynchronisiert sind.
6. Verfahren nach Anspruch 4, ferner mit dem Aktivieren eines ersten Signals an einem ersten DMA-Anforderungspin (48) der integrierten Schaltung, wobei der erste DMA-Anforderungspin dem ersten DMA-Kanal entspricht, und mit dem gleichzeitigen Aktivieren eines zweiten DMA-Anforderungspins (50) der integrierten Schaltung, wobei der zweite DMA-Anforderungspin dem zweiten DMA-Kanal entspricht.
7. Verfahren nach Anspruch 1, bei dem das Ziel der ersten DMA-Übertragung eine zweite Speicherstelle außerhalb des Speichers ist.
8. Verfahren nach Anspruch 1, bei dem das Durchführen einer zweiten DMA- Übertragung den Zugriff auf eine erste der mehreren Speicherstellen, wodurch ein erster Wert erhalten wird, und das Aktualisieren der zweiten Speicherstelle durch den ersten Wert umfaßt.
9. Verfahren nach Anspruch 8, bei dem das Durchführen einer zweiten DMA- Übertragung ferner den Zugriff auf eine Speicherstelle außerhalb des Speichers, wodurch das Komplement des vordefinierten Werts erhalten wird, und das Aktualisieren der ersten der mehreren Speicherstellen durch das Komplement des vordefinierten Werts umfaßt.
10. Verfahren nach Anspruch 9, bei dem der Zugriff auf eine externe Speicherstelle vor dem Zugreifen auf die erste der mehreren Speicherstellen ausgeführt wird, wobei der erste Wert das Komplement des vordefinierten Werts umfaßt.
11. Verfahren nach Anspruch 1, ferner mit dem Durchführen einer vierten DMA-Übertragung in dem DMA-Controller, um auf jede der mehreren Speicherstellen zuzugreifen.
12. Verfahren nach Anspruch 11, ferner mit dem Durchführen einer fünften DMA-Übertragung in dem DMA-Controller, um jede der mehreren Speicherstellen auf den vordefinierten Wert zu aktualisieren.
13. Verfahren nach Anspruch 12, ferner mit dem Wiederholen der ersten DMA-Übertragung, der zweiten DMA-Übertragung, der vierten DMA- Übertragung und der fünften DMA-Übertragung für einen zweiten vordefinierten Wert, der vom vordefinierten Wert verschieden ist, und für ein zweites Komplement des zweiten vordefinierten Werts, das vom Komplement des vordefinierten Werts verschieden ist.
14. Verfahren nach Anspruch 1, bei dem das Initialisieren, das Durch Führen einer ersten DMA-Übertragung und das Durchführen einer zweiten DMA- Übertragung in Reaktion auf mehrere, von einem Tester (42) gelieferte Testvektoren durchgeführt werden.
15. Integrierte Schaltung mit:
- einem Speicher (30) mit mehreren in der integrierten Schaltung integrierten Speicherstellen; und
- einer mit dem Speicher (30) verbundenen DMA-Einheit;
- wobei die DMA-Einheit in der Lage ist, im Gebrauch eine erste DMA- Übertragung zum Aktualisieren jeder der mehreren Speicherstellen auf einen vordefinierten Wert und eine zweite DMA-Übertragung zum Zugreifen auf jede der mehreren Speicherstellen durchzuführen;
- wobei die DMA-Einheit (20) eine Einrichtung (76) zum Durchführen eines Speichertests basierend auf der Verwendung eines ersten und eines zweiten DMA-Kanals (62, 64), die in der DMA-Einheit vorhanden sind, aufweist.
16. Integrierte Schaltung nach Anspruch 15, bei der die DMA-Einheit in der Lage ist, die erste DMA-Übertragung und die zweite DMA-Übertragung unter Verwendung des ersten DMA-Kanals und des zweiten DMA-Kanals zeitgleich auszuführen.
17. Integrierte Schaltung nach Anspruch 16, bei der die erste DMA-Übertragung einen ersten Zugriff auf eine Speicherstelle außerhalb des Speichers umfaßt, wodurch der vordefinierte Wert erhalten wird.
18. Integrierte Schaltung nach Anspruch 17, bei der die erste DMA-Übertragung eine erste Aktualisierung auf eine erste der mehreren Speicherstellen umfaßt, wodurch die erste Aktualisierung den vordefinierten Wert an die erste der mehreren Speicherstellen liefert.
19. Integrierte Schaltung nach Anspruch 18, bei der die erste DMA-Übertragung eine zweiten Zugriff auf die erste der mehreren Speicherstellen und eine nachfolgende zweite Aktualisierung auf eine zweite der mehreren Speicherstellen umfaßt, wodurch der zweiten der mehreren Speicherstellen der vordefinierte Wert geliefert wird.
20. Integrierte Schaltung nach Anspruch 19, bei der die DMA-Einheit ferner in der Lage ist, einen dritten Zugriff auf die erste der mehreren Speicherstellen für die zweite DMA-Übertragung vor der ersten Aktualisierung der ersten der mehreren Speicherstellen durchzuführen.
DE69714472T 1996-08-14 1997-05-29 Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung Expired - Lifetime DE69714472T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/696,734 US5668815A (en) 1996-08-14 1996-08-14 Method for testing integrated memory using an integrated DMA controller
PCT/US1997/009425 WO1998007163A1 (en) 1996-08-14 1997-05-29 A method for testing integrated memory using an integrated dma controller

Publications (2)

Publication Number Publication Date
DE69714472D1 DE69714472D1 (de) 2002-09-05
DE69714472T2 true DE69714472T2 (de) 2003-04-10

Family

ID=24798312

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69714472T Expired - Lifetime DE69714472T2 (de) 1996-08-14 1997-05-29 Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung

Country Status (6)

Country Link
US (1) US5668815A (de)
EP (1) EP0978124B1 (de)
JP (1) JP2001510611A (de)
KR (1) KR100488232B1 (de)
DE (1) DE69714472T2 (de)
WO (1) WO1998007163A1 (de)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7338915B1 (en) 1995-09-08 2008-03-04 Rice University Ropes of single-wall carbon nanotubes and compositions thereof
US5958072A (en) * 1997-01-13 1999-09-28 Hewlett-Packard Company Computer-system processor-to-memory-bus interface having repeating-test-event generation hardware
US5896549A (en) * 1997-02-04 1999-04-20 Advanced Micro Devices, Inc. System for selecting between internal and external DMA request where ASP generates internal request is determined by at least one bit position within configuration register
US6047347A (en) * 1997-02-04 2000-04-04 Advanced Micro Devices, Inc. Computer system with programmable bus size
US6327640B1 (en) * 1997-03-07 2001-12-04 Advanced Micro Devices, Inc. Overlapping peripheral chip select space with DRAM on a microcontroller with an integrated DRAM controller
US5991213A (en) * 1997-04-30 1999-11-23 Texas Instruments Incorporated Short disturb test algorithm for built-in self-test
US5953272A (en) * 1997-04-30 1999-09-14 Texas Instruments Incorporated Data invert jump instruction test for built-in self-test
US6076180A (en) * 1997-06-23 2000-06-13 Micron Electronics, Inc. Method for testing a controller with random constraints
US6237123B1 (en) * 1997-10-07 2001-05-22 Lucent Technologies Inc. Built-in self-test controlled by a token network and method
KR100265760B1 (ko) * 1997-12-03 2000-09-15 윤종용 직접엑세스모드테스트제어회로를구비하는고속반도체메모리장치및테스트방법
KR100238256B1 (ko) * 1997-12-03 2000-01-15 윤종용 직접 억세스 모드 테스트를 사용하는 메모리 장치 및 테스트방법
KR19990069337A (ko) * 1998-02-06 1999-09-06 윤종용 복합 반도체 메모리장치의자기 테스트 회로 및 이를 이용한 자기 테스트 방법
US6178549B1 (en) * 1998-03-12 2001-01-23 Winbond Electronics Corporation Memory writer with deflective memory-cell handling capability
US6473780B1 (en) * 1998-04-01 2002-10-29 Intel Corporation Scheduling of direct memory access
JP2000011691A (ja) 1998-06-16 2000-01-14 Mitsubishi Electric Corp 半導体試験装置
US6925589B1 (en) 1998-10-29 2005-08-02 International Business Machines Corporation Method for translating physical cell-coordinates of a memory product to n-dimensional addresses
US6260082B1 (en) * 1998-12-23 2001-07-10 Bops, Inc. Methods and apparatus for providing data transfer control
US6427216B1 (en) * 1999-03-11 2002-07-30 Agere Systems Guardian Corp. Integrated circuit testing using a high speed data interface bus
US7457896B1 (en) * 1999-08-25 2008-11-25 Seagate Technology Llc Automated register data transfer to reduce processing burden on a processing device
US6510530B1 (en) * 1999-09-23 2003-01-21 Nortel Networks Limited At-speed built-in self testing of multi-port compact sRAMs
US6851047B1 (en) 1999-10-15 2005-02-01 Xilinx, Inc. Configuration in a configurable system on a chip
US6745321B1 (en) * 1999-11-08 2004-06-01 International Business Machines Corporation Method and apparatus for harvesting problematic code sections aggravating hardware design flaws in a microprocessor
US6748492B1 (en) 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6732234B1 (en) * 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6848024B1 (en) * 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6587982B1 (en) * 2000-09-05 2003-07-01 Advanced Micro Devices, Inc. Method of micro-architectural implementation of interface between bist state machine and tester interface to enable bist cycling
US6484273B1 (en) * 2000-11-29 2002-11-19 Lsi Logic Corporation Integrated EJTAG external bus interface
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US7418642B2 (en) * 2001-07-30 2008-08-26 Marvell International Technology Ltd. Built-in-self-test using embedded memory and processor in an application specific integrated circuit
US6948096B2 (en) * 2001-07-31 2005-09-20 Intel Corporation Functional random instruction testing (FRIT) method for complex devices such as microprocessors
US7107374B1 (en) 2001-09-05 2006-09-12 Xilinx, Inc. Method for bus mastering for devices resident in configurable system logic
EP1333380A1 (de) * 2002-01-30 2003-08-06 STMicroelectronics Limited Signalgenerator für Direktspeicherzugriff
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US7114106B2 (en) 2002-07-22 2006-09-26 Finisar Corporation Scalable network attached storage (NAS) testing tool
US20040015755A1 (en) * 2002-07-22 2004-01-22 Finisar Corporation Scalable scatter/gather I/O testing tool
US7062678B2 (en) * 2002-08-06 2006-06-13 Lsi Logic Corporation Diagnostic memory interface test
JP4179827B2 (ja) * 2002-08-30 2008-11-12 Necエレクトロニクス株式会社 メモリのテスト回路
US7249308B2 (en) * 2003-04-21 2007-07-24 International Business Machines Corporation Algorithm to test LPAR I/O subsystem's adherence to LPAR I/O firewalls
US20040216018A1 (en) * 2003-04-28 2004-10-28 Cheung Kam Tim Direct memory access controller and method
JP2005070949A (ja) * 2003-08-21 2005-03-17 Sanyo Electric Co Ltd プログラム処理装置
US7350109B2 (en) * 2003-11-14 2008-03-25 Hewlett-Packard Development Company, L.P. System and method for testing a memory using DMA
US7797134B2 (en) * 2003-11-14 2010-09-14 Hewlett-Packard Development Company, L.P. System and method for testing a memory with an expansion card using DMA
JP4737929B2 (ja) * 2003-12-12 2011-08-03 株式会社東芝 半導体記憶装置
US7552268B2 (en) * 2006-05-18 2009-06-23 Cisco Technology, Inc. Method for improving bus utilization using predictive arbitration
US20090006663A1 (en) * 2007-06-27 2009-01-01 Archer Charles J Direct Memory Access ('DMA') Engine Assisted Local Reduction
JP5068188B2 (ja) * 2008-01-21 2012-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリのテストを実行する方法、コンピュータ・プログラム、およびシステム
US8422402B2 (en) * 2008-04-01 2013-04-16 International Business Machines Corporation Broadcasting a message in a parallel computer
US8375197B2 (en) * 2008-05-21 2013-02-12 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
US8250250B2 (en) * 2009-10-28 2012-08-21 Apple Inc. Using central direct memory access (CDMA) controller to test integrated circuit
US8565089B2 (en) * 2010-03-29 2013-10-22 International Business Machines Corporation Performing a scatterv operation on a hierarchical tree network optimized for collective operations
US8332460B2 (en) 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US8346883B2 (en) 2010-05-19 2013-01-01 International Business Machines Corporation Effecting hardware acceleration of broadcast operations in a parallel computer
US8489859B2 (en) 2010-05-28 2013-07-16 International Business Machines Corporation Performing a deterministic reduction operation in a compute node organized into a branched tree topology
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8776081B2 (en) 2010-09-14 2014-07-08 International Business Machines Corporation Send-side matching of data communications messages
KR101806807B1 (ko) 2010-11-08 2017-12-11 삼성전자주식회사 메모리 카드
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US8667501B2 (en) 2011-08-10 2014-03-04 International Business Machines Corporation Performing a local barrier operation
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
KR102081588B1 (ko) * 2013-08-08 2020-02-26 삼성전자 주식회사 Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러
CN108226741B (zh) * 2016-12-14 2020-06-09 中国航空工业集团公司西安航空计算技术研究所 一种dma自测试电路
CN111316234B (zh) * 2017-09-12 2024-03-12 恩倍科微公司 极低功率微控制器系统
JP7125602B2 (ja) * 2018-08-01 2022-08-25 富士通株式会社 データ処理装置および診断方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4701845A (en) * 1984-10-25 1987-10-20 Unisys Corporation User interface processor for computer network with maintenance and programmable interrupt capability
KR880014482A (ko) * 1987-05-27 1988-12-24 미다 가쓰시게 반도체 집적회로 장치
US4888773A (en) * 1988-06-15 1989-12-19 International Business Machines Corporation Smart memory card architecture and interface
US5301156A (en) * 1991-07-18 1994-04-05 Hewlett-Packard Company Configurable self-test for embedded RAMs
FR2697663B1 (fr) * 1992-10-30 1995-01-13 Hewett Packard Cy Circuit de test de mémoire.

Also Published As

Publication number Publication date
EP0978124A1 (de) 2000-02-09
KR100488232B1 (ko) 2005-05-10
DE69714472D1 (de) 2002-09-05
EP0978124B1 (de) 2002-07-31
KR20000029997A (ko) 2000-05-25
WO1998007163A1 (en) 1998-02-19
JP2001510611A (ja) 2001-07-31
US5668815A (en) 1997-09-16

Similar Documents

Publication Publication Date Title
DE69714472T2 (de) Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung
DE3876780T2 (de) Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung.
DE3752017T2 (de) Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit
DE69221045T2 (de) Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen
DE69027471T2 (de) Fehlersuchperipherie für Mikrorechner, Mikroprozessoren und Kernprozessor beinhaltende integrierte Schaltungen und Vorrichtung die diese Fehlersuchperipherie verwendet
DE3650532T2 (de) Speicher mit programmierbarem Zugang
DE69019402T2 (de) Prüfverfahren und -gerät für integrierte Schaltungen.
DE3881824T2 (de) Speichersystem mit automatischer grössenbestimmung.
DE19847642C2 (de) PCI-PCI-Brücke
DE19833208C1 (de) Integrierte Schaltung mit einer Selbsttesteinrichtung zur Durchführung eines Selbsttests der integrierten Schaltung
DE3853613T2 (de) Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen.
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE68923026T2 (de) Speicherdiagnosegerät und Verfahren.
DE69230211T2 (de) Integrierter Speicher, Verwaltungsverfahren und resultierendes Informationssystem
DE69523395T2 (de) Datenprozessor mit gesteuertem Stoss-Speicherzugriff und Vorrichtung dafür
DE4418892C2 (de) Mikrocomputer
DE69107476T2 (de) Vorrichtung für eine in-circuit-prüfung mit einem minimalspeicher.
DE69114321T2 (de) Zum Durchführen der Unterbrechungsverschachtelungsfunktion geeignetes Unterbrechungssteuerungsgerät.
DE69615987T2 (de) Integrierte Schaltung mit programmierbarer Bus-Konfiguration
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE68921227T2 (de) Selbstprüfung von Informationsprozessoren.
DE69525129T2 (de) Verfahren und Datenprozessor zum durchsichtigem Betrieb in einem Hintergrundmodus
DE112018004577T5 (de) Multiprozessorkern-vorrichtung mit mbist
DE3739993C2 (de)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: GLOBALFOUNDRIES INC. MAPLES CORPORATE SERVICES, KY