[go: up one dir, main page]

DE60012132T2 - Mikroprozessor mit Prüfinstruktionsspeicher - Google Patents

Mikroprozessor mit Prüfinstruktionsspeicher Download PDF

Info

Publication number
DE60012132T2
DE60012132T2 DE60012132T DE60012132T DE60012132T2 DE 60012132 T2 DE60012132 T2 DE 60012132T2 DE 60012132 T DE60012132 T DE 60012132T DE 60012132 T DE60012132 T DE 60012132T DE 60012132 T2 DE60012132 T2 DE 60012132T2
Authority
DE
Germany
Prior art keywords
test
command
instruction
microcomputer
execution unit
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
DE60012132T
Other languages
English (en)
Other versions
DE60012132D1 (de
Inventor
M. Louis MELI
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.)
DSP Group Switzerland AG
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Application granted granted Critical
Publication of DE60012132D1 publication Critical patent/DE60012132D1/de
Publication of DE60012132T2 publication Critical patent/DE60012132T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/30Marginal testing, e.g. by varying supply voltage
    • G01R31/3004Current or voltage test
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)

Description

  • Die Erfindung betrifft einen Mikrocomputer und ein Verfahren zum Testen eines solchen Mikrocomputers.
  • Das Dokument US-A-4 870 573 stellt einen Mikrocomputer vor, der fähig ist, die sequenzielle Ausführung von Befehlen eines Programms zu testen, indem er im Testmodus jegliches Verzweigungssignal sperrt.
  • Aus dem US-Patent Nr. 5.802071 ist es bekannt, einen Mikrocomputer durch die Ausführung eines Testprogramms aus einem Testprogrammspeicher zu testen. Wie in diesem Dokument beschrieben, macht es der Testprogrammspeicher möglich, den Mikrocomputer unabhängig vom Inhalt des Anwendungsprogramms zu testen. Dieses Dokument beschreibt auch, wie man Teile in dem Mikrocomputer durch Beobachtung der Ergebnisse, die durch die Ausführung von Befehlen aus dem Programm erzeugt wurden, testet.
  • Das Dokument diskutiert nicht das Testen des Zeitverhaltens der Befehlsausführung. Insbesondere beschreibt es nicht das Testen, ob der Mikrocomputer Befehle schnell genug ausführen kann. Aber in einem konventionellen synchronen Mikrocomputer zeigt sich die langsame Ausführung eines Befehls automatisch selbst in Form fehlerhafter Ergebnisse, die durch die Ausführung dieses Befehls erzeugt werden.
  • Das funktioniert in asynchronen Mikrocomputern nicht. Asynchrone Mikrocomputer sind Mikrocomputer, die aufeinander folgende Befehle mittels des Handshake-Verfahrens erhalten, die Fertigstellung eines Befehls löst die Zustellung des nächsten Befehls aus. Wenn ein asynchroner Mikrocomputer Befehle zu langsam ausführt, erzeugen die Befehle richtige Ergebnisse, aber die Ausführung erfordert zu viel Zeit. Im Gegensatz dazu verwendet ein synchroner Computer einen periodischen Takt, um die Ausführung nachfolgender Befehle auszulösen. Folglich werden Befehle rechtzeitig ausgeführt, wenn der synchrone Computer Befehle zu langsam ausführt, aber die Ergebnisse werden falsch sein, was leicht festgestellt werden kann.
  • Die Befehlssausführungsgeschwindigkeit eines Befehls durch einen asynchronen Computer kann durch Messung der Zeit, die für mehrfache Ausführung dieses Be fehls benötigt wird, gemessen werden. Trotzdem könnte das Ergebnis dieser Messung nicht ein genaues Maß für die Zeit, die zur Ausführung dieses Befehls benötigt wird, sein. Die gemessene Ausführungszeit kann auch Verzögerungen aufgrund von Befehlsabrufverzögerungen und die Zeit für Programmsteuerungsablaufanweisungen umfassen. Wenn der Befehl dadurch ausgeführt wird, dass Kopien des Befehls in aufeinander folgenden Plätzen im Befehlsspeicher ausgeführt werden, wird das Befehlstesten zusätzlich erheblich Zeit oder Speicherplatz beanspruchen, weil alle Kopien in den Speicher geladen oder gespeichert werden müssen.
  • US 5.802.071 erörtert auch nicht die Messung des Stroms, der vom Computer bei der Ausführung des Befehls aufgenommen wird. Für Anwendungen mit niedriger Leistungsaufnahme kann es notwendig sein, zu garantieren, dass die Stromaufnahme eines hergestellten Computers, besonders auf einem Chip wie einem Mikrocontroller, unter einem spezifizierten Niveau sein wird. Um das zu garantieren, muss der während der Ausführung spezieller Befehle aufgenommene Strom gemessen werden. Für eine genaue Messung sollte die Messung frei von variablen Stromaufnahmefaktoren durch das Abrufen von Befehlen oder die Ausführung von Ablaufsteuerungsbefehlen sein.
  • Aufgabe der Erfindung ist es, die Messung der Geschwindigkeit der Befehlsausführung durch einen Mikrocomputer ohne Ungenauigkeit durch die für Programmablaufsteuerung benötigte Zeit zu schaffen.
  • Eine weitere Aufgabe der Erfindung ist es, die Messung der Geschwindigkeit der Befehlsausführung durch einen Mikrocomputer zu schaffen, ohne viel Zeit oder Speicherplatz für das Laden des Befehls zu erfordern.
  • Eine andere Aufgabe der Erfindung ist es, die Messung der Stromaufnahme während der Befehlsausführung durch einen Mikrocomputer ohne Ungenauigkeit durch die für Programmablaufsteuerung benötigte Stromaufnahme zu schaffen.
  • Der Mikrocomputer gemäß der Erfindung und ein entsprechendes Verfahren für das Testen eines solchen Mikrocomputers sind in den Ansprüchen 1 bzw. 9 beschrieben. Gemäß der Erfindung ist der Mikrocomputer fähig, in einem Testmodus zu arbeiten, in dem die normale Befehlsabfolgesteuerung unterdrückt wird, um ein zyklisches Anlegen desselben Befehls aus derselben Quelle an eine Befehlsausführungseinheit durchzuführen. Auf diese Weise werden signifikante Zeitablaufvariationen durch andere Effekte als die Ausfüh rung des Befehls eliminiert. In einem asynchronen Mikrocomputer ist es vorteilhaft, den Computer gemäß der Erfindung anzuordnen. Auf diese Weise kann die Zeit, die zur Ausführung des Befehls benötigt wird, während des Testens genau gemessen werden. Natürlich kann die Erfindung auch auf einen synchronen Mikrocomputer angewandt werden, um zum Beispiel jegliche Streuung in der Ausführungsgeschwindigkeit, die sich nicht als Fehler im Ergebnis des Befehls zeigen könnte, festzustellen.
  • In einer Ausführungsform umfasst der Computer einen speziellen Testbefehlsspeicher außerhalb eines während der normalen Programmausführung benutzten Adressenbereiches. Während des Testens wird der Befehl wiederholt aus dem Testbefehlsspeicher ausgelesen. Durch Platzierung eines speziellen Befehls in den Testbefehlsspeicher und das Umschalten des Mikrocomputer in den Testmodus kann genau gemessen werden, ob die in die Ausführung dieses Befehls involvierten Teile des Mikrocomputers ausreichend schnell sind, weil durch Adressierung oder Lesen des normalen Speichers verursachte Verzögerungen eliminiert sind. Vorzugsweise enthält der Testbefehlsspeicher nur einen Befehl, wobei der Mikrocomputer diesen Befehl jedes Mal, wenn seine vorhergehende Ausführung beendet ist, diesen Befehl wieder der Befehlsausführungseinheit zuführt. So wird eine minimale Speichermenge für die Ausführung benötigt und die Ausführung ist sehr reproduzierbar. Im Falle, dass der Befehl aus mehreren Wörtern besteht, die sequentiell geladen sind, lädt der Mikrocomputer die Wörter vorzugsweise sequentiell und kehrt zum ersten Wort zurück, wenn die Ausführung des Befehls abgeschlossen wurde. In diesem Fall muss der Testbefehlsspeicher nur so viele Wörter enthalten wie der längste mögliche einzelne Befehl des Mikrocomputers.
  • Vorzugsweise ist der Mikrocomputer in einer integrierten Schaltung mit einem Scan-Testinterface für die serielle Eingabe und Ausgabe der Testinformation über ein Schieberegister aufgenommen. In diesem Fall wird ein Befehl vorzugsweise über das Schieberegister geladen, zusammen mit einem Kommando, das den Mikrocomputer veranlasst, den geladenen Befehl wiederholt im Testmodus auszuführen, um die Zeit, die zur Ausführung des Befehls notwendig ist, zu testen.
  • Ein Testverfahren, das einen solchen Mikrocomputer nutzt, umfasst das Laden eines Befehls in eine Testspeicherposition und die wiederholte Ausführung dieses Befehls. Vorzugsweise umfasst das Verfahren das Laden mehrerer Befehle der Reihe nach und die wiederholte Ausführung jedes Befehls vor dem Laden des nächsten Befehls. Mit verschiedenen Befehlen kann die Geschwindigkeit verschiedener Teile des Mikrocomputers getestet werden.
  • Diese und andere vorteilhafte Aspekte des Computers und des Verfahrens, den Computer gemäß der Erfindung zu testen, werden genauer anhand der folgenden Zeichnung beschrieben. Es zeigen:
  • 1 einen Computer,
  • 2 ein getriebenes Befehlsblockmodul.
  • 1 zeigt ein Blockschaltbild eines Computers 14. Teile des Computers 14, die nicht zur Beschreibung der Funktion der Erfindung benutzt werden, sind nicht gezeigt. 1 zeigt eine Befehlsausführungseinheit 10, eine Abfragelogikschaltung 11, einen Befehlsspeicher 12, ein getriebenes Befehlsblockmodul 15 und einen Kommunikationsbus 16. Die Befehlsausführungseinheit 10 hat einen Befehlsspeicherfreigabeausgang, der an den Befehlsspeicher 12 und das getriebene Befehlsblockmodul 15 gekoppelt ist. Der Befehlsspeicher 12 hat einen Befehlsadresseneingang, der über den Bus 16 an die Befehlsausführungseinheit 10 gekoppelt ist. Der Befehlsspeicher 12 hat einen Befehlsausgang, der an ein getriebenes Befehlsblockmodul 15 gekoppelt ist. Das getriebene Befehlsblockmodul 15 hat einen Befehlsausgang, der über den Bus 16 an die Befehlsausführungseinheit 10 gekoppelt ist. Die Abfragelogikschaltung 11 und das getriebene Befehlsblockmodul 15 haben Steuereingänge, die an eine Teststeuerungseinheit 19 außerhalb des Computers 14 gekoppelt sind.
  • 2 zeigt ein getriebenes Befehlsblockmodul. Dieses Modul enthält die Register 20a–d, einen ersten und zweiten Multiplexer 22, 24, einen Zähler 26 und eine Kontrolleinheit 28. Die Register 20a–d haben an den ersten Multiplexer 22 gekoppelte Ausgänge. Der zweite Multiplexer 24 hat Eingänge, die an einen Ausgang des ersten Multiplexers 22 und an den Befehlsausgang des (in 2 nicht gezeigten) Befehlsspeichers 12 gekoppelt sind. Ein Ausgang des zweiten Multiplexers 24 ist über den Bus 16 an die Befehlsausführungseinheit 10 (beide nicht in 2 gezeigt) gekoppelt. Zähler 26 hat einen Freigabeeingang, der an den Befehlsspeicherfreigabeausgang der Befehlsausführungseinheit 10 gekoppelt ist. Zähler 26 hat einen an einen Steuerungseingang des ersten Multiplexers 22 gekoppelten Zählausgang. Register 20a–d und Zähler 26 sind Teil einer schematisch als 29a gezeigten Scan-Kette. (Eine Scan-Kette ist Teil einer gut bekannten Testtechnik, die alle internen Flip-Flops und Register einer Schaltung über Schieberegister zugreifbar macht.) Register 20a–d und Zähler 26 haben an eine Scan-Steuerungs-verbindung 29b gekoppelte Scan-Steuerungseingänge. Die Steuerungseinheit 28 hat einen an die Teststeuerungseinheit 19 (nicht in 2 gezeigt) gekoppelten Eingang. Die Steuerungseinheit 28 hat eine Verbindung mit Zähler 26 und einen mit einem Steuerungseingang des zweiten Multiplexers 24 gekoppelten Ausgang.
  • Im Betrieb kann ein Steuerungssignal, das an das getriebene Ausführungstaktmodul 15 und die Abfragelogikschaltung 11 angelegt wird, dazu benutzt werden, den Computer in einen Normalbetriebsmodus zu bringen. In dem Normalbetriebsmodus liefert die Befehlsausführungseinheit 10 aufeinander folgende Befehlsadressen über den Bus 16 an den Befehlsspeicher 12. Zusätzlich liefert die Befehlsausführungseinheit 10 ein Freigabesignal an den Befehlsspeicher 12, wenn an Bus 16 eine Befehlsadresse verfügbar ist. Als Antwort liefert der Befehlsspeicher 12 die den Befehlsadressen entsprechenden Befehle über den zweiten Multiplexer 24 des getriebenen Ausführungsblockmoduls 15 und den Bus 16 an die Befehlsausführungseinheit 10. Die Befehlsausführungseinheit 10 führt diese Befehle aus.
  • In dem Fall, dass eine asynchrone Befehlsausführungseinheit 10 benutzt wird, wird der Start der Ausführung jedes Befehls durch „Handshake" zwischen der Befehlsausführungseinheit 10 und der Abfragelogikschaltung 11 gesteuert. Jedes Mal, wenn die Befehlsausführungseinheit 10 bereit ist, einen nächsten Befehl auszuführen, sendet sie ein Abfragesignal an die Abfragelogikschaltung 11. Als Antwort sendet die Abfragelogikschaltung 11 ein Bestätigungssignal an die Befehlsausführungseinheit 10, das die Befehlsausführungseinheit 10 veranlasst, die Ausführung eines nächsten Befehls zu starten. Die Abfragelogikschaltung 11 kann die Information der „Handshakes" auf verschiedene Weisen benutzen. Zum Beispiel kann die Abfragelogikschaltung 11 bewirken, dass eine Versorgungsspannung der Befehlsausführungseinheit 10 reduziert oder erhöht wird, wenn die Abfragesignale schneller beziehungsweise langsamer als für eine gegebene Aufgabe notwendig ankommen. Eine Reduzierung der Versorgungsspannung reduziert die von der Befehlsausführungseinheit 10 aufgenommene Leistung.
  • Wenn der Computer 14 für eine vorgegebene Applikation, zum Beispiel einen Telefonhörer, benutzt wird, muss garantiert werden, dass Geschwindigkeit und Leistungsaufnahme bestimmte, im voraus festgelegte Spezifikationen erfüllen. Auf Grund von Prozessschwankungen oder Fehlern in der Herstellung des Computers 14 können diese Parameter variieren. Der Computer 14 muss getestet werden, um sicherzustellen, dass die Spezifikationen erfüllt werden. Aus diesem Grund muss der Computer 14 zum Beispiel durch Messung der Zeit, welche die Befehlsausführungseinheit 10 benötigt, um einen zu testenden Befehl auszuführen, wenn eine gegebene Versorgungsspannung an die Befehlsausführungseinheit 10 gelegt wird, getestet werden. Ein anderer Test umfasst den vom Computer 14 aufgenommenen Strom, wenn dieser diesen zu testenden Befehl ausführt.
  • Zu diesem Zweck wird die Befehlsausführungseinheit 10 dazu gebracht, den zu testenden Befehl in einem Zeitintervall wiederholt auszuführen und es wird gemessen, wie viel mal dieser Befehl innerhalb dieses Zeitintervalls ausgeführt wird. Die Anzahl, wie oft dieser zu testende Befehl ausgeführt wird, ist nicht durch eine Taktrate festgelegt, hängt aber von der Geschwindigkeit ab, mit der die Befehlsausführungseinheit 10 Abfragesignale auf das Bestätigungssignal erwidert. Verschiedene Befehle können als zu testende Befehle in aufeinander folgenden Tests verwendet werden, um verschiedene Teile der Befehlsausführungseinheit 10 zu testen. Ähnlich kann der vom Computer 14 aufgenommene Strom während der wiederholten Ausführung des zu testenden Befehls gemessen werden.
  • Das getriebene Befehlsblockmodul 15 sorgt für die wiederholte Ausführung eines zu testenden Befehls. Die Teststeuerungseinheit 19 legt ein Steuerungssignal an das getriebene Befehlsblockmodul 15, um es in einen Testmodus zu bringen. Im Testmodus sendet das getriebene Befehlsblockmodul 15 über den Bus 16 den Inhalt der Register 20a–d anstatt des vom Befehlsspeicher erzeugten Befehls an das getriebene Befehlsblockmodul 15.
  • Das in 2 gezeigte getriebene Befehlsblockmodul 15 ist für einen Typ Befehlsausführungseinheit entworfen, der Befehle verwendet, die aus 1, 2, 3 oder 4 Bytes bestehen, die über Bus 16 aufeinander folgend übertragen werden. In einem ersten Schritt des Tests werden die Bytes, welche den zu testenden Befehl ausmachen, ein Zählersteuerungssignal und ein Steuerungssignal, um das getriebene Befehlsblockmodul 15 freizugeben, über die Scan-Kette 29a geladen. In einem nachfolgendem Schritt wird das getriebene Befehlsblockmodul 15 dazu gebracht, im Testmodus zu arbeiten. Im Testmodus bringt der Zähler 26 den ersten Multiplexer 22 dazu, den Inhalt einer zyklischen Folge der Register 20a–d an den zweiten Multiplexer 24 zu übergeben. Der zweite Multiplexer 24 übergibt diesen Inhalt anstelle des Befehls vom Befehlsspeicher 12 an den Bus 16. Während dieses Schrittes wird gezählt, wie oft dieser Befehl während eines gegebenen Zeitintervalls ausgeführt wird. Da der zu testende Befehl wiederholt ausgeführt wird, kann das Zeitintervall zu jeder gewünschten Zeit anfangen und enden.
  • In einer Ausführungsform hat der Zähler zwei Modi, die über die Scan-Kette 29a in Abhängigkeit von der Anzahl der Bytes, die in dem zu testenden Befehl enthalten sind, ausgewählt werden. In dem ersten Modus hat der Zähler 26 einen Zyklus von vier und selektiert dabei ein erstes, zweites, drittes oder viertes der Register 20a–d nacheinander und wiederholt anschließend diese Selektion dieser Register 20a–d zyklisch. Der erste Modus wird benutzt, wenn der zu testende Befehl ein, zwei oder vier Bytes lang ist. Im Fall eines ein Byte langen zu testenden Befehls werden über die Scan-Kette 29a vier Kopien des Befehls in die vier Register 20a–d geladen. Im Fall eines zwei Byte langen zu testenden Befehls werden Kopien des ersten Bytes des Befehls in das erste und dritte Register 20a,c geladen und Kopien des zweiten Bytes des Befehls werden in das zweite und dritte Register 20b,d geladen. Im Fall eines vier Byte langen zu testenden Befehls werden die Bytes des Befehls in die verschieden Register 20a–d geladen.
  • In dem zweiten Modus hat der Zähler 26 einen Zyklus von drei und selektiert dabei ein erstes, zweites und drittes der Register 20a–c nacheinander und wiederholt anschließend die Selektion dieser drei Register 20a–c zyklisch. Der zweite Modus wird benutzt, wenn der zu testenden Befehl drei Bytes lang ist. Die Bytes des Befehls werden in die drei verschiedenen Register 20a–c geladen, die zyklisch geladen werden. Also ist nur ein Bit in der Scan-Kette 29a notwendig, um zwischen ein, zwei, drei oder vier Byte langen Befehlen zu selektieren.
  • Natürlich können andere Typen Befehlsausführungseinheiten 10 verwendet werden. Zum Beispiel können Befehle immer in einem Zyklus geliefert werden. In dem Fall werden der Zähler 26, erster Multiplexer 22 und unterschiedliche Register 20a–d nicht benötigt. Nur ein Register wird benötigt, um den zu testenden Befehl an den zweiten Multiplexer 24 zu liefern. Andere maximale Befehlslängen als vier können benutzt werden. Mehr Register 20a–d als für die maximale Befehlslänge benötigt, können benutzt werden, um es zu ermöglichen, verschiedene Befehle während eines Tests alternativ zu laden und auszuführen. Anstatt der Register 20a–d kann man einen kleinen Speicher benutzen, wobei der Zähler 26 diesen Speicher adressiert. In diesem Fall kann der erste Multiplexer 22 weggelassen werden. Natürlich haben die Register 20a–d den Vorteil gegenüber einem Speicher, dass sie direkt in eine Scan-Kette einbezogen werden können. Wenn die Ausführungseinheit Befehle fester Länge hat, können die niederwertigsten Bits der Befehlsadressen anstatt des Ausgangs von Zähler 26 benutzt werden.
  • Ohne von der Erfindung abzuweichen, sind andere Variationen in der Ausführungsform möglich. Zum Beispiel kann das getriebene Befehlsblockmodul 15 zwischen dem Bus 16 und der Befehlsausführungseinheit 10 anstatt zwischen dem Befehlsspeicher 12 und dem Bus eingefügt werden. So kann die Ausführungszeit ohne Verzögerungen durch den Bus gemessen werden. Man könnte sogar zwei getriebene Befehlsblockmodule 15 aufnehmen, einen zwischen dem Befehlsspeicher 12 und dem Bus 16 und einen zwischen dem Bus 16 und der Befehlsausführungseinheit 10. So kann die Ausführungszeit mit und ohne Verzögerungen durch den Bus 16 gemessen werden, was es ermöglicht, die durch den Bus verursachten Verzögerungen zu messen. Aus ähnlichen Gründen kann ein getriebenes Befehlsblockmodul 15 an anderen Positionen in dem Computer eingefügt werden.
  • Obwohl die bevorzugte Ausführungsform eine Scan-Kette benutzt, um die Register 20a–d zu laden, können auch andere Anordnungen zum Laden dieser Register benutzt werden. Zum Beispiel können die Register 20a–d speicherabbildend sein, was es der Befehlsausführungseinheit 10 erlaubt, den zu testenden Befehl in die Register 20a–d zu schreiben. Alternativ können die Register als spezielle Funktionsregister der Befehlsausführungseinheit 10 behandelt werden, so dass so die Befehlsausführungseinheit 10 mittels eines Ins-Register-Schreiben-Befehls zu testende Befehle in die Register schreiben kann.

Claims (9)

  1. Mikrocomputer (14) mit – einer Befehlsausführungseinheit (10); – einer Testschaltung, um den Mikrocomputer (4) zu befähigen, in einem Normalzustand oder alternativ in einem Testzustand zu arbeiten; – einem Befehlsspeicherinterface, das im Normalzustand freigegeben ist, Befehlsinformationen aus Befehlsspeicheradressen abfolgegemäß unter der Kontrolle des Programmablaufs der Befehlsausführungseinheit (10) zuzuführen; – einer Testabfolgesteuerungseinheit (15), die im Testzustand freigegeben ist, das Zuführen von Befehlsinformation zur Befehlsausführungseinheit (10) zu steuern, wobei die Testabfolgesteuerungseinheit (15) die Abfolge, wie sie im Normalzustand angewendet wird, aufhebt, sodass eine selbe Quelle eines Befehls zyklisch verwendet wird, um eine gleiche Befehlsinformation aus derselben Quelle zur Befehlsausführungseinheit (10) wiederholt zuzuführen, unabhängig von jeglicher durch die Befehlsinformation implizierten Abfolge.
  2. Mikrocomputer nach Anspruch 1, wobei der Mikrocomputer darüber hinaus Testbefehlsspeicher (20a–d) und einen Testbefehlszähler (26) für das zyklische Zählen von Selektionssignalen, welche die Befehlsinformation aus dem Testbefehlsspeicher (20a–d) selektieren, umfasst.
  3. Mikrocomputer nach Anspruch 2, wobei die Befehlsausführungseinheit (10) darüber hinaus angeordnet ist, um asynchron zu arbeiten, und der Mikrocomputer (14) eine Befehlsausführungsfrequenz an eine Antwortzeit der Befehlsausführungseinheit (10) anpasst.
  4. Mikrocomputer nach Anspruch 2, der darüber hinaus eine Testbefehlsrücksetzschaltung umfasst, um den Testbefehlszähler (26) auf seinen anfänglichen Wert zurückzusetzen, wenn der Testbefehlszähler (26) einen selektierten Wert erreicht hat.
  5. Mikrocomputer nach Anspruch 4, wobei der Testbefehlszähler (26) selektierbar ist, um vor dem Rücksetzen drei oder vier Positionen in dem Testbefehlsspeicher (20a–d) zu zählen.
  6. Mikrocomputer nach Anspruch 2, wobei der Testbefehlsspeicher (20a–d) eine Größe hat, die nicht größer ist, als zur Speicherung eines längsten, durch die Befehlsausführungseinheit (10) ausführbaren Befehls benötigt wird.
  7. Mikrocomputer nach Anspruch 2, wobei der Testbefehlsspeicher (20a–d) eine Vielzahl von Registern zur Speicherung aufeinander folgender Einheiten eines zu testenden Befehls umfasst, der Testbefehlszähler (26) aufeinander folgende Einheiten des zu testenden Befehls zählt und die Testabfolgesteuerungseinheit (15) die Einheiten aufeinander folgend an die Befehlsausführungseinheit (10) liefert.
  8. Mikrocomputer nach Anspruch 2, wobei der Testbefehlsspeicher (20a–d) eine Vielzahl von Registern zur Speicherung aufeinander folgender Einheiten eines zu testenden Befehls umfasst und die Register Teil einer Test-Scan-Kette sind.
  9. Verfahren zum Testen eines Mikrocomputers wie in Anspruch 1 definiert, wobei das Verfahren das wiederholte Liefern eines zu testenden Befehls von einem Testbefehlsspeicher (20a–d) aus, der selektiert wird und dabei einen auf einem Programmzähler basierenden und während des Betriebs des Mikrocomputers im Normalzustand durchlaufenen Befehlsadressierungsmechanismus umgeht, an eine Befehlsausführungseinheit (10) umfasst.
DE60012132T 1999-09-10 2000-08-30 Mikroprozessor mit Prüfinstruktionsspeicher Expired - Lifetime DE60012132T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP99202948 1999-09-10
EP99202948 1999-09-10
PCT/EP2000/008447 WO2001020455A1 (en) 1999-09-10 2000-08-30 Microcomputer with test instruction memory

Publications (2)

Publication Number Publication Date
DE60012132D1 DE60012132D1 (de) 2004-08-19
DE60012132T2 true DE60012132T2 (de) 2005-08-25

Family

ID=8240627

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60012132T Expired - Lifetime DE60012132T2 (de) 1999-09-10 2000-08-30 Mikroprozessor mit Prüfinstruktionsspeicher

Country Status (5)

Country Link
US (1) US6728900B1 (de)
EP (1) EP1129408B1 (de)
JP (1) JP2003509770A (de)
DE (1) DE60012132T2 (de)
WO (1) WO2001020455A1 (de)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892322B1 (en) * 2000-10-26 2005-05-10 Cypress Semiconductor Corporation Method for applying instructions to microprocessor in test mode
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US20110087861A1 (en) * 2009-10-12 2011-04-14 The Regents Of The University Of Michigan System for High-Efficiency Post-Silicon Verification of a Processor
US9858176B2 (en) * 2013-08-12 2018-01-02 Nec Corporation Software aging test system, software aging test method, and program for software aging test

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61229134A (ja) * 1985-04-03 1986-10-13 Nec Corp マイクロコンピユ−タ
KR910002236B1 (ko) * 1986-08-04 1991-04-08 미쓰비시 뎅기 가부시끼가이샤 반도체집적회로장치
US5530804A (en) * 1994-05-16 1996-06-25 Motorola, Inc. Superscalar processor with plural pipelined execution units each unit selectively having both normal and debug modes
JP2980539B2 (ja) * 1995-07-04 1999-11-22 株式会社リコー Dcテストポイント編集装置及び編集方法
US5802071A (en) * 1995-11-17 1998-09-01 Fang; I Liang Micro-controller with a built-in test circuit and method for testing the same
US6106572A (en) * 1998-03-25 2000-08-22 Origins Software Company Forward and reverse hierarchical page level debugger
JP2000322283A (ja) * 1999-05-06 2000-11-24 Fujitsu Ltd 電子計算機の障害検出方法

Also Published As

Publication number Publication date
EP1129408A1 (de) 2001-09-05
EP1129408B1 (de) 2004-07-14
US6728900B1 (en) 2004-04-27
JP2003509770A (ja) 2003-03-11
WO2001020455A1 (en) 2001-03-22
DE60012132D1 (de) 2004-08-19

Similar Documents

Publication Publication Date Title
DE60012132T2 (de) Mikroprozessor mit Prüfinstruktionsspeicher
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE69221045T2 (de) Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen
DE69714472T2 (de) Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung
DE19833208C1 (de) Integrierte Schaltung mit einer Selbsttesteinrichtung zur Durchführung eines Selbsttests der integrierten Schaltung
DE3881824T2 (de) Speichersystem mit automatischer grössenbestimmung.
DE69124170T2 (de) Automatisches Prüfausrüstungssystem, das eine Stiftscheibenarchitektur verwendet
DE3855274T2 (de) Botschafts-Fifo-Puffersteuergerät
DE4305442C2 (de) Verfahren und Vorrichtung zum Erzeugen eines Testvektors
DE69804115T2 (de) Datenübertragung auf einem nichtflüchtigen speichermedium
DE3750236T2 (de) Gerät zur In-line-Abfragesteuerung für Datenprozessorprüfung.
DE69019402T2 (de) Prüfverfahren und -gerät für integrierte Schaltungen.
DE69107476T2 (de) Vorrichtung für eine in-circuit-prüfung mit einem minimalspeicher.
DE3933849A1 (de) Prozessorgesteuerte schnittstelle
DE2619159A1 (de) Fehlererkennungs- und korrektureinrichtung
DE69120765T2 (de) Verfahren zum Datentransfer zu oder von Vorrichtungen über eine Boundary-Scan-Test-Schnittstelle
DE19952272A1 (de) Verfahren und System zum Prüfen von auf eingebetteten Bausteinen basierenden integrierten Systemchip-Schaltungen
DE10150321A1 (de) Verfahren und Vorrichtung zum Testen von integrierten Schaltungen
DE3852562T2 (de) Datenschreibverfahren für EEPROM.
DE69613560T2 (de) Ein Prüfgerät für elektronische Schaltkreise oder Platinen mit komprimierten Datenfolgen
DE69130513T2 (de) Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern
DE19955380C2 (de) Prüfmustergenerator, Prüfvorrichtung und Verfahren zum Erzeugen von Prüfmustern
DE68913442T2 (de) Mikrorechner mit EEPROM.
DE69423206T2 (de) Rechnervorrichtung mit Mitteln zum Erzwingen der Ausführung von Befehlen in regelmässiger Folge
DE68924507T2 (de) Verfahren und Gerät zur Markierung von Emulationsanalysezuständen.

Legal Events

Date Code Title Description
8320 Willingness to grant licences declared (paragraph 23)
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: EISENFUEHR, SPEISER & PARTNER, 10178 BERLIN

8327 Change in the person/name/address of the patent owner

Owner name: NXP B.V., EINDHOVEN, NL

R081 Change of applicant/patentee

Ref document number: 1129408

Country of ref document: EP

Owner name: DSP GROUP SWITZERLAND AG, CH

Free format text: FORMER OWNER: NXP B.V., EINDHOVEN, NL

Effective date: 20120802

R082 Change of representative

Ref document number: 1129408

Country of ref document: EP

Representative=s name: EISENFUEHR, SPEISER & PARTNER, DE

Effective date: 20120802