DE69817725T2 - Mikroprozessor Testsystem - Google Patents

Mikroprozessor Testsystem Download PDF

Info

Publication number
DE69817725T2
DE69817725T2 DE69817725T DE69817725T DE69817725T2 DE 69817725 T2 DE69817725 T2 DE 69817725T2 DE 69817725 T DE69817725 T DE 69817725T DE 69817725 T DE69817725 T DE 69817725T DE 69817725 T2 DE69817725 T2 DE 69817725T2
Authority
DE
Germany
Prior art keywords
address
test
support logic
overlay
microprocessor
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 - Fee Related
Application number
DE69817725T
Other languages
English (en)
Other versions
DE69817725D1 (de
Inventor
Ted J. Lopez
Thomas M. Laffey
Scott A. Jones
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE69817725D1 publication Critical patent/DE69817725D1/de
Application granted granted Critical
Publication of DE69817725T2 publication Critical patent/DE69817725T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware

Landscapes

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

Description

  • Die vorliegende Erfindung bezieht sich auf ein Mikroprozessortest- und -diagnosesystem.
  • Die Steuerung kochentwickelter elektronischer Systeme wird zunehmend von Mikroprozessoren übernommen. Beispielsweise enthält eine Steuerung von Netzwerkkarten für standardmäßige Druckerprodukte von HP eine durch einen eingebetteten Mikroprozessor gesteuerte Schnittstelle. Ein Testen von mikroprozessorgesteuerten elektronischen Systemen erfolgt in der Regel während der Produktentwicklungsphase unter Verwendung eines Schaltkreisemulators, der den Mikroprozessor des in der Entwicklung befindlichen Produkts simuliert. Im Gegensatz zu dem bei dem entwickelten Produkt verwendeten Mikroprozessor stellt der Emulator dem Benutzer jedoch die Werkzeuge bereit, die erforderlich sind, um (1) die Komponente des ausführbaren Codes des Systems zu untersuchen und dynamisch zu verändern, (2) Anhaltepunkte einzustellen, (3) ein Einzelschrittbewegen durchzuführen und (4) interne Registerinhalte des Mikroprozessors zu berichten und zu ändern.
  • 1 zeigt einen herkömmlichen Emulator 110, der zum Testen eines eingebetteten Mikroprozessors 116 auf einer PC-Platine 114 verwendet wird. Unter Bezugnahme auf 1 umfaßt die ASIC auf der PC-Platine einen eingebetteten Mikroprozessor und eine Steuerschaltungsanordnung, die für die ASIC spezifisch ist. Die Stiftanordnung der ASIC 112 umfaßt in der Regel eine Stiftanordnung für alle Signale des eingebetteten Mikroprozessors. Eine PC-Platine 114 umfaßt einen Sockel 118, der der Stiftanordnung des eingebetteten Mikroprozessors 116 entspricht. Der Sockel 118, der dem eingebetteten Mikroprozessor entspricht, ist mit den über Anschlußstifte aus der ASIC herausgeleiteten Signalen verbunden. Der eingebettete Mikroprozessor für das entwickelte Produkt wird gesperrt, und ein Kabel, das eine geeignete Sonde aufweist, wird in den Sockel 118 des entfernten Mikroprozessors eingeführt. Der gesperrte eingebettete Mikroprozessor (externer Modus) ermöglicht es dem Emulator, die Steuerung der ASIC zu übernehmen und die Signale des eingebetteten Mikroprozessors zu simulieren.
  • Es ist üblich, daß Emulatoren eine Einrichtung liefern, um auszuwählen, ob der Emulatorprozessor den Code des Systems von einem tatsächlich in dem in der Entwicklung befindlichen Produkt angeordneten Speicher oder statt dessen von einem in dem Emulator selbst angeordneten Speicher ausführt. Der Emulatormikroprozessor 120 ist in einer geeigneten Steuerschaltungsanordnung 124 eingebettet und umfaßt eine Fehlersuchsoftware, die ermöglicht, daß der Emulatormikroprozessor gestartet und angehalten wird, und die ermöglicht, daß die internen Register des Mikroprozessors inspiziert oder geändert werden. Dies ermöglicht es dem Entwickler, einen Code während des Betriebs (on the fly) nachzuverfolgen, einzufangen, einer Einzelschrittbewegung zu unterziehen und zu modifizieren.
  • Der Emulator ist ein mächtiges Werkzeug zum Diagnostizieren von Problemen in der Systemhardware oder -firmware. Es gibt jedoch Probleme, die mit einem Test und einer Diagnose unter Verwendung eines Emulators verbunden sind. Während ASICs beispielsweise unter Verwendung schnellerer Technologien entworfen werden, werden ihre eingebetteten Prozessoren bei immer höheren Frequenzen getaktet. Der Mikroprozessor 116 in der ASIC läuft dann bei einer höheren Taktrate als sie der externe Emulator 110 aufweisen kann. Falls die Taktgeschwindigkeit des Mikroprozessors für eine Fehlersuche oder eine Problemdiagnose mit einem Emulator verringert wird, wird ein Risikofaktor eingebracht, da das System, bei dem die Fehlersuche durchgeführt wird, dann zu dem System, das an den Kunden versandt wird, unterschiedlich ist. Der Unterschied der Mikroprozessortaktfrequenz zwischen dem eingebetteten Mikroprozessor 116 und dem Emulatorprozessor 120 kann Firmware- oder Hardwareprobleme, die nur bei der vollen Taktgeschwindigkeit des eingebetteten Prozessors auftreten, maskieren.
  • Ein weiteres Problem bei der Verwendung eines Emulators besteht darin, daß seine Verwendung oft die Entwicklung eines zusätzlichen Prototyps erfordert. Zusätzlich zu dem Produktprototyp muß ein Firmwareprototyp erzeugt werden, der das Emulatorwerkzeug berücksichtigen kann. Falls das Produkt beispielsweise einen in die ASIC eingebetteten Mikroprozessor verwendet, muß ein zweiter Prototyp erzeugt werden, der einen Mikroprozessorsockel für die Emulatorverbindung liefert. Ferner kann ein Mikroprozessortakt einer niedrigeren Frequenz erforderlich sein. Dieser zusätzliche Prototyp bedeutet zusätzliche technische und Materialkosten für das Projektbudget, die vermieden werden können.
  • Ein weiteres Problem bei Schaltkreisemulatoren ist ihre begrenzte Flexibilität. Beispielsweise sind herkömmliche Schaltkreisemulatorwerkzeuge spezifisch für den bei dem Entwurf verwendeten Prozessortyp. Falls der Systementwerfer des in der Entwicklung befindlichen Elektroniksystems also entscheidet, einen anderen Mikroprozessor zu verwenden, muß ein neues Emulatorwerkzeug gekauft werden. Ferner weisen herkömmliche Emulatoren in der Regel standardmäßige Anschlußstifte auf, die zugänglich sein müssen. Da Emulatoren eine Standardkonfiguration mit einer standardmäßigen Stiftanordnung aufweisen, ist es schwierig, die Anzahl von standardmäßige Anschlußstiften auf der ASIC zu verringern.
  • In bezug auf ASICs erfordern herkömmliche Emulatoren, daß die ASIC entsprechende externe standardmäßige Anschlußstifte herausbringt, so daß das Emulatorwerkzeug an der ASIC befestigt werden kann. Dies impliziert zwei Betriebsmodi für die ASIC: interne Mikroprozessorverwendung und externe Mikroprozessorverwendung. Die beiden Betriebsmodi weisen Diskrepanzen in bezug auf die Zeitgebung auf, die das ASIC-Team beim Entwurf berücksichtigen und simulieren muß. Dies bedeutet zusätzliche Zeit für den ASIC-Entwurfszyklus aufgrund der Zeit, die erforderlich ist, um für beide Betriebsmodi Prüfungen durchzuführen.
  • Ein zu einem Emulator alternatives Testwerkzeug ist ein Fehlersuchprogramm bzw. Debugger. Die Verwendung eines Fehlersuchprogramms erfordert einen Kommunikationsanschluß, einen kartenbasierten Fehlersuchcode und eine Benutzerschnittstelle, die das an dem Kommunikationsanschluß der ASIC angeschlossene System verwaltet. Im allgemeinen kann ein Codeentwickler viele derselben Funktionen wie ein Schaltkreisemulator ausführen, jedoch bei einer Entwurfsgeschwindigkeit bei dem eigentlichen Kartenentwurf. Ähnlich einem Emulator weist ein serienmäßiges Fehlersuchprogramm den Nachteil auf, daß es für einen bestimmten Mikroprozessor spezifisch ist. Bei neueren Prozessorfamilien kann diese Fehlersuchfunktionalität in deren Entwürfe eingebaut sein. Sie können einen eingebetteten Kommunikationsanschluß mit einer bereitgestellten Software aufweisen, um ein Fehlersuchen zu ermöglichen.
  • In der EP-A-0762278 ist ein Datenprozessor offenbart, der eine Mehrzahl von Hardwareanhaltepunktregistern und eine Anhaltepunktschaltung aufweist, um eine Anhaltepunktoperation durchzuführen. Die Anhaltepunktoperation kann auf einem Adreßbereich oder Datenwert beruhen. Ferner ist ein externes Entwicklungssystem offenbart, das Informationen verwendet, die von dem Datenverarbeitungssystem kommuniziert werden, um Fehlersuchoperationen durchzuführen.
  • In der EP-A-0652516 ist ein integrierter Mikroprozessor mit einer Fehlersuchsoftware offenbart, die gespeichert und ausgeführt wird, wenn der Prozessor auf dem Zielcomputer in einen Fehlersuchmodus eintritt.
  • Die vorliegende Erfindung schafft ein verbessertes Testen von Mikroprozessoren.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Test- und Diagnosesystem gemäß Anspruch 1 geschaffen.
  • Das bevorzugte Test- und Diagnosesystem zum Testen eines eingebetteten Mikroprozessors kann mit unterschiedlichen Mikroprozessoren oder Mikroprozessorfamilien arbeiten, kann ermöglichen, daß ein Code bei einer Produktgeschwindigkeit statt der Geschwindigkeit des Emulators getestet wird, und kann den Bedarf an mehr als einem Prototyp, um das in der Entwicklung befindliche Produkt vollständig zu testen, beseitigen.
  • Das bevorzugte Ausführungsbeispiel liefert ein Test- und Diagnosesystem zum Testen eines eingebetteten Prozessors, das verschiedene Mikroprozessoren oder Mikroprozessorfamilien testen kann, das ermöglicht, daß der zu testende Code bei der Geschwindigkeit des in der Entwicklung befindlichen Produkts getestet wird, und das den Bedarf an mehr als einem Prototyp, um das in der Entwicklung befindliche Produkt vollständig zu testen, eliminiert. Das Test- und Diagnosesystem umfaßt eine ASIC, die einen eingebetteten Mikroprozessor aufweist. Im Gegensatz zu herkömmlichen ASICs ist die ASIC jedoch modifiziert, um eine Fehlersuchunterstützungslogikeinheit (DAL – debug assist logic) zum Überwachen der Adreß- und Dateninformationen, auf die durch den Mikroprozessorspeicher zugegriffen wird, zu umfassen. Wenn die Fehlersuchunterstützungslogikeinheit eine Übereinstimmung zwischen den überwachten Informationen und den in der DAL gespeicherten Bedingungen findet, unterbricht sie den eingebetteten Mikroprozessor und transferiert eine Steuerung von dem Code, der auf dem Mikroprozessor läuft, zu dem Fehlersuchkern. Der Fehlersuchkern bzw. die Fehlersuchsoftware ist in einer ersten Speichereinheit gespeichert, die mit der DAL gekoppelt ist. Ansprechend auf eine Benutzereingabe ermöglicht es die Fehlersuchsoftware dem Benutzer, Prozessortransaktionen während einer Codeausführung nachzuverfolgen.
  • Die DAL ist in der modifizierten ASIC eingebettet und ermöglicht es dem Entwickler, Register zu programmieren, die die normale Ausführung des eingebetteten Prozessors unterbrechen. Typische Unterbrechungsbedingungen umfassen eine Adreßübereinstimmung, eine Datenübereinstimmung oder eine Adreß- und Datenübereinstimmung. Unterbrechungsbedingungen (der Steuersatz) sind in der DAL gespeichert. In der Regel beruht die Unterbrechung auf dem Typ/Standort/Datenzugriff des Mikroprozessors.
  • Vorzugsweise umfaßt die ASIC einen REMR-Anschluß (REMA = remote access, Fernzugriff), der verwendet wird, um den eingebetteten Mikroprozessor und den Überlagerungsverkabelungsspeicher zu steuern. Eine Überwachungseinrichtung ist mit dem REMA-Anschluß der ASIC elektrisch gekoppelt, was es dem Benutzer ermöglicht, in der Lage zu sein, die Adreß-/Datenabrufe des eingebetteten Mikroprozessors extern zu überwachen und Befehle in den Fehlersuchkern einzugeben. Beispielsweise kann der Benutzer einen Befehl eingeben, den Code so zu modifizieren, daß er auf dem eingebetteten Mikroprozessor läuft, oder alternativ dazu kann er einen Befehl eingeben, der einen Anhaltepunkt in dem Code an einem Punkt einstellt, der für die Person, die die Fehlersuche durchführt, von besonderem Interesse ist.
  • Bei dem bevorzugten Ausführungsbeispiel umfaßt das Test- und Diagnosesystem sowohl einen FLASH-Speicher als auch eine Anweisungsüberlagerungsverkabelung. Die Anweisungsüberlagerungsverkabelung ist ein alternativer Speicher, in der Regel SRAM, der statt eines FLASH-Speichers verwendet werden kann. Somit kann ein Code entweder in einen FLASH-Speicher oder in den Anweisungsüberlagerungsspeicher heruntergeladen werden.
  • REMA-Anschlüsse wurden bereits in herkömmliche ASICs integriert. Bei herkömmlichen ASICs werden REMA-Anschlüsse in der Regel verwendet, um einen Code im Werk in einen FLASH-Speicher herunterzuladen. Ein FLASH-Speicher wird in der Regel im Werk beschrieben, da es viel Zeit erfordert, einen FLASH zu beschreiben. Ferner ist ein FLASH-Speicher nicht ohne weiteres modifizierbar. Bei herkömmlichen FLASH-Speicherprodukten kann man nicht eine einzelne Stelle eines FLASH-Speichers modifizieren, sondern statt dessen muß man einen ganzen Sektor umschreiben. Da der Anweisungsüberlagerungsspeicher in der Regel SRAM ist, können Codeänderungen oder Softwareanhaltepunkte, die während des Betriebs (on the fly) durchgeführt werden, viel schneller als bei einem FLASH-Speicher durchgeführt werden.
  • Vorzugsweise wird der REMA-Anschluß verwendet, um einen Code auf der Überlagerungsverkabelung zu Fehlersuchzwecken umzuprogrammieren. Änderungen des Programmcodes werden während des Betriebs durchgeführt, wobei kleine Änderungen typisch sind. Der REMA-Anschluß der ASIC ermöglicht es dem Entwickler, Informationen in den Überlagerungsverkabelungsspeicher des in Entwicklung befindlichen Produkts herunterzuladen. Die heruntergeladenen Informationen werden durch den Fehlersuchkern interpretiert, der aktiv wird, indem er die ASIC oder die Anweisungsüberlagerungsverkabelung steuert.
  • Die Anweisungsüberlagerungsverkabelung ist aus einer Anweisungsüberlagerungssteuerschaltung und einem Speicher gebildet. Die Anweisungsüberlagerungssteuerschaltung umfaßt in der Regel einen Adreßdecodierer, Adreßpuffer, Datenpuffer und ein Freigaberegister. Ein Einstellen des REMAP-Bits in der DAL ändert den Adreßbereich, in dem der Flash-Speicher freigegeben ist. Nach der Freigabe eines Umabbildens kann der Fehlersuchkern anschließend den Speicher auf der Anweisungsüberlagerungsverkabelung freigeben, der dann die Adresse besetzt, die der Flash aufwies, bevor das Umabbildungsmerkmal freigegeben wurde. Der Fehlersuchkern lädt anschließend einen Programmcode in die Anweisungsüberlagerungsverkabelung. Das REMAP-Merkmal ermöglicht dann, daß der FLASH-Speicher und der Überlagerungsspeicher ohne eine Buskonkurrenz nebeneinander existieren.
  • Der Fehlersuchkern ist eine Software, die zur Verwendung geladen wird und über den REMA-Anschluß gestartet wird. Nachdem er aufgerufen wurde, spricht der Fehlersuchkern auf eine Benutzereingabe an, einen neuen Programmcode in die Anweisungsüberlagerungsverkabelung herunterzuladen, die DAL-Register zu verwalten, eine Steuerung zwischen einem Fehlersuchüberwachungsmodus und einem normalen Programmausführungsmodus hin- und herzutransferieren, und Prozessortransaktionen nachzuverfolgen oder einzufangen, wenn der in der Entwicklung befindliche Code ausgeführt wird.
  • Das System kann die Entwicklungskosten im Vergleich zu herkömmlichen Testmethodologien verringern. Zunächst eliminiert das bevorzugte Testdiagnosesystem das Erfordernis eines Schaltkreisemulators und somit die mit demselben verbundenen Kosten. Ferner eliminiert es die mit der Verwendung von zwei Prototypen verbundenen Kosten, da der eigentliche Produktentwurf ohne die Flächenerfordernisse eines Schaltkreisemulators verwendet werden kann.
  • Ein weiterer Vorteil des bevorzugten Ausführungsbeispiels besteht darin, daß es eine Fehlersuche bei einer gewissen Geschwindigkeit ermöglicht. Die ASIC kann während der Codeentwicklung bei voller Geschwindigkeit laufen, da die Schaltkreisemulatorbeschränkungen beseitigt sind. Ferner ist der Interner-/Externer-Prozessor-Betriebsmodus eliminiert, da der eingebettete Prozessor auf der ASIC während der Codeentwicklung verwendet wird. Dies verringert ferner die mit der Entwicklung zusammenhängende(n) Zeit und Kosten, da die ASIC nicht die Zeitgebungs-/Ladungsdiskrepanzen zwischen den beiden Modi zum Zweck einer Überprüfung berücksichtigen muß. Ferner wird die Entwicklungszeit verringert, da die Anweisungsüberlagerungsverkabelung ermöglicht, daß rasche Modifikationen an dem Code vorgenommen werden.
  • Ein Ausführungsbeispiel der vorliegenden Erfindung wird im folgenden unter Bezugnahme auf die beiliegenden Zeichnungen lediglich beispielhaft beschrieben. Es zeigen:
  • 1 einen herkömmlichen Emulator, der zum Testen eines eingebetteten Prozessors auf einer PC-Platine verwendet wird;
  • 2 ein Blockdiagramm eines Ausführungsbeispiels eines Hardwaretest- und -diagnosesystems;
  • 3 ein Blockdiagramm einer bei dem Test- und Diagnosesystem verwendeten ASIC;
  • 4 eine Tabelle, die die Internes-Register-Positionen der DAL auflistet;
  • 5 eine Tabelle, die die Bitdefinitionen der acht Registersätze, des Unterbrechungs-ID-Registers (DBID) und des Unterbrechungssteuerungsregisters (DBINTSTS) auflistet;
  • 6 eine Speicherabbildung für den eingebetteten Prozessor; und
  • 7 ein Blockdiagramm der Anweisungsüberlagerungsspeicherverkabelung.
  • 2 zeigt ein Blockdiagramm des bevorzugten Hardwaretest- und -diagnosesystems 200. Das in 2 gezeigte Test- und Diagnosesystem umfaßt eine ASIC 202, die einen eingebetteten Prozessor 204 und eine Fehlersuchunterstützungslogikeinheit (DAL) 206 umfaßt, eine Speichereinheit 208, eine Anweisungsüberlagerungsverkabelung 210 und eine Überwachungseinrichtung 212. Die Speichereinheit 208, die Anweisungsüberlagerungsverkabelung 210 und die Überwachungseinrichtung 212 sind alle mit der ASIC 202 elektrisch gekoppelt.
  • 3 zeigt ein Blockdiagramm der ASIC 202 und der externen Speichereinheiten 208 und 214, die bei dem Test- und Diagnosesystem verwendet werden. Die ASIC 202 umfaßt einen eingebetteten Mikroprozessor 204, eine DAL 206, einen Kommunikationsanschluß 216 und eine RAM-Steuerung 218. Eine Funktionssteuerung 220 ist repräsentativ für andere auf der ASIC durchgeführte Steuerfunktionen. Ein Steuerbus 224 koppelt den eingebetteten Mikroprozessor 204 elektrisch mit der DAL 206. Ein Adreßbus 226 und ein Datenbus 228 führen Adreß- und Datensignale zu und koppeln den eingebetteten Mikroprozessor 204, die DAL 206, den REMA-Anschluß 216, die Funktionssteuerung 220 und die RAM-Steuerung 218 elektrisch.
  • 4 zeigt eine Tabelle, die die Internes-Register-Positionen der DAL 206 auflistet. Bei dem bevorzugten Ausführungsbeispiel ist die DAL 206 aus acht Registersätzen 230, einem Unterbrechungssteuerungsregister 232 und einem ID-Register 234 gebildet. Die DAL 206 ist nicht verschiebbar und residiert in zweckgebundenen Internes-Register-Positionen. Eine Spalte 402 listet die Interner-Speicher-Positionen der Adresse der in der Spalte 404 benannten Adressen auf. Eine Spalte 406 listet die Beschreibung des benannten Registers auf. Jeder Registersatz weist eine demselben zugewiesene Stelle ADDRESS HI_x, ADDRESS LO_x und DATA_x auf. Das Symbol „_x" ist repräsentativ für die „x" verschiedenen Registersätze und ist bei dem vorliegenden Beispiel eine Zahl zwischen eins und acht.
  • Die acht Registersätze 230 sind programmierbar und können durch den Entwickler programmiert werden, um die normale Ausführung des eingebetteten Prozessors zu unterbrechen. Unterbrechungsbedingungen werden durch den Entwickler unter Verwendung der Überwachungseinrichtung programmiert. Ansprechend auf Benutzerbefehle interpretiert der Fehlersuchkern die Befehle, was zu Modifikationen der in der DAL eingestellten Steuerung führen kann. Der Satz von in dem Steuersatz gespeicherten Übereinstimmungsbedingungen ist in den internen Registern der DAL 206 gespeichert.
  • 5 ist eine Tabelle, die die Bitdefinitionen (1) der acht Registersätze, (2) des Unterbrechungs-ID-Registers (DBID) und (3) des Unterbrechungssteuerungsregisters (DBINTSTS) auflistet. Im einzelnen, unter Bezugnahme auf Bits 15 bis 12 der Position ADDRESS HI_x des Registersatzes, definiert die Steuersatzbits, die die Unterbrechungsbedingungen bestimmen. Für den in 5 gezeigten Steuersatz tritt eine Unterbrechung unter den folgenden Bedingungen auf: eine Adreßübereinstimmung beim Lesen, eine Adreßübereinstimmung beim Schreiben, eine Nur-Adreß-und-Daten-Übereinstimmung, eine Adreß- und Lesedatenübereinstimmung und eine Adreß- und Schreibdatenübereinstimmung. Eine Übereinstimmung ist eine Funktion des Zugriffstyps, den die CPU durchführt. Falls das Steuerfeld des Registers ADDRESS HI_x gleich 1 h ist, so tritt eine Übereinstimmung auf, wenn die Adresse des CPU-Zyklus mit diesem Wert in den CPU-Adreßbits von ADDRESS HI_x und ADDRESS LO_x übereinstimmt. Falls das Steuerfeld eines Registersatzes 6 h ist, so liegt eine Übereinstimmung vor, wenn die Adressen und Daten des CPU-Schreibzyklus gleich den in ADDRESS HI_x und ADDRESS LO_x und DATA_x programmierten Werten sind.
  • Die DAL 206 stellt dem Entwickler einen Mechanismus zum Steuern des Codeausführungsflusses bereit. Ein Programmieren der DAL-Register (230, 232 oder 234) und Einstellen der entsprechenden Bits des Steuersatzes ermöglicht, daß bei dem Prozessor eine Unterbrechung erzeugt wird (extern oder intern), wenn eine Übereinstimmung irgendeines freigegebenen Registersatzes auftritt. Das DBINTSTS-Register 232 ist das Unterbrechungssteuerungsregister der DAL. Bit 15 des DBINTSTS-Registers 232 ist das Unterbrechungsfreigabebit. Wenn Bit 15 des DBINTSTS-Registers eingestellt ist, wird eine Unterbrechung von der DAL 206 auf dem Steuerbus 224 zu dem eingebetteten Prozessor 204 aktiviert. Die Unterbrechungsleitung des Steuerbusses 224 bleibt aktiviert, bis sie durch die CPU über ein Schreiben von „0" zu Bits 4:0 des DBINTSTS gelöscht wird. Bits 4:1 von DBINTSTS zeigen, welcher Registersatz bzw. welche Registersätze (Registersätze I-8) eine Übereinstimmung aufwiesen. Wenn Bit 0 des DBINTSTS eingestellt ist, gibt es an, daß ein Treffer oder eine Übereinstimmung aufgetreten ist. Falls mehrere Register eine Übereinstimmung aufweisen, wird das Trefferbit (Bit 0) eingestellt, das Unterbrechungs-ID-Feld 4:1 des DBINTSTS-Registers ist jedoch 0 × 0.
  • Der in dem IPL-Feld programmierte Wert (Bits 14:12 des DBINTSTS-Registers) stellt den Pegel der Unterbrechung dar. Der Zwischenraum in Adressen zwischen jedem Registersatz berücksichtigt zukünftige Merkmale, d. h. Maskierungsregister. Alle DAL-Register (230, 232, 234) sind lesbar, und alle mit Ausnahme des DBID-234-Registers sind beschreibbar. Reservierte Bits sind nicht-beschreibbar und geben bei Lesevorgängen Nullen zurück.
  • Bei dem bevorzugten Ausführungsbeispiel umfaßt das Testsystem 200 sowohl einen FLASH-Speicher 208 (eine erste Speichereinheit) als auch eine Überlagerungsanweisungsverkabelung 210, die einen Überlagerungsverkabelungsspeicher 214 umfaßt. Die Anweisungsüberlagerungsverkabelung ist ein alternativer Speicher, der zusätzlich zu dem FLASH-Speicher 208 verwendet werden kann. Somit kann ein Code über den REMA-Anschluß entweder in den FLASH-Speicher 208 oder in den Anweisungsüberlagerungsspeicher 214 heruntergeladen werden.
  • Bei dem bevorzugten Ausführungsbeispiel ist der Überlagerungsverkabelungsspeicher 214 ein SRAM, der viel höhere Schreibgeschwindigkeiten aufweist als die FLASH-Speichereinheit 208. In der Regel ist die Schreibgeschwindigkeit des Überlagerungsverkabelungsspeichers in der Größenordnung von Sekunden schneller als die der FLASH-Speichereinheit 208. Die höhere Geschwindigkeit des Überlagerungsverkabelungsspeichers (SRAM) ermöglicht, daß Ände rungen des Codes während des Betriebs schnell durchgeführt werden können, ein wichtiger Faktor beim Durchführen einer Fehlersuche. Das REMAP-Bit (Bit 11) in dem DBINTSTS-Register 232 kann verwendet werden, um die Basisadresse des FLASH-Speichers 208 UMZUBILDEN bzw. NEUABZUBILDEN (REMAP) oder zu verschieben, derart, daß sie bei 0×4000000 statt bei 0×00000 (der ursprünglichen Adresse vor einem Abbilden des FLASH-Speichers) beginnt.
  • Die ASIC, die die Fehlersuchunterstützungslogik (DAL) und den Mikroprozessor enthält, weist ein REMAP-Merkmal auf, das ermöglicht, daß die Flash-(ROM)Speicherdecodierungsadresse zu einer neuen Adresse bewegt (oder auf dieselbe umabgebildet) wird. Bei dem bevorzugten Ausführungsbeispiel ist diese Adresse so gewählt, daß Firmware auf eine Weise geschrieben werden kann, die einen Schreibzugriff auf einen Flash-Speicher ermöglicht, ob das Umabbildungsmerkmal freigegeben ist oder nicht.
  • 6 zeigt eine Speicherabbildung für den eingebetteten Prozessor. Der Speicherraum des Mikroprozessors ist in Regionen bzw. Blöcke unterteilt. Die Speicherabbildung zeigt einen adressierbaren Bereich von einer Adresse Null bis zu dem „oberen Bereich" des Speichers bei einer Adresse „T". In dieser Region befinden sich Blöcke, die unterschiedlichen Zwecken zugewiesen werden können. Diese Blockgrenzen sind als „A", „2A", „B", „C" und „D" identifiziert.
  • Bei dem bevorzugten Ausführungsbeispiel ist die Speicherregion von 0 bis 2A einem FLASH-Speicher zugewiesen, die tatsächlich verwendeten Komponenten besetzen jedoch nur die Region von 0 bis A. Wenn die Umabbildungsfunktion durch ein Einschalten des REMRP-Bits freigegeben wird, wird bzw. werden die Komponente(n), die normalerweise in der Region von 0 bis A adressiert würde(n), dann in der Region, die sich von A bis 2A erstreckt, adressiert. Die durch A und 2A dargestellte eigentliche physische Adresse ist so gewählt, daß sie sich in so wenigen Bits wie möglich unterscheiden.
  • Die Umabbildungsfunktion wählt anschließend aus, welche Interpretation dieser Bits für das mit den Flash-Speicher-Komponenten verbundene Adreßdecodierungssignal gewünscht wird.
  • Man kann sehen, daß, wenn das REMAP-Bit eingestellt ist, in der Speicherabbildung, die der Region von der Adresse 0 bis zur Adresse A entspricht, ein „Loch" vorliegt. Wenn das REMAP-Bit eingestellt ist, spricht die ASIC nicht an, wenn der Mikroprozessor auf diese Speicherregion zugreift.
  • 7 zeigt ein Blockdiagramm der Anweisungsüberlagerungsverkabelung 210. Die Anweisungsüberlagerungsverkabelung 210 ist aus einer Steuerschaltung 242 und einem Überlagerungsverkabelungsspeicher 214 gebildet. Die Steuerschaltung 242 ist in der Regel aus einem Adreßdecodierer 243, einem Adreßpuffer 244, einem Datenpuffer 245 und einem Freigaberegister 246 gebildet. Die Überlagerungssteuerschaltung 242 ist über einen Adreßbus 264, einen Datenbus 265 und einen Steuerbus 266 elektrisch mit dem Überlagerungsspeicher gekoppelt. Desgleichen ist die Überlagerungssteuerschaltung 242 über einen Adreßbus 274, einen Datenbus 275 und einen Steuerbus 276 elektrisch mit Verbindern 270 gekoppelt. Die Verbinder 270 liefern eine Verbindung von der Anweisungsüberlagerungsverkabelung zu dem Produkt, wie es in 2 veranschaulicht ist.
  • Wenn der Mikroprozessor 204 die Überlagerungsverkabelung freigibt, tut er dies, indem er in das Freigaberegister 246 schreibt. Dieses Schreiben wird durch den Überlagerungsverkabelungsadreßdecodierer 243 decodiert. Nach der Freigabe bestimmt der Adreßdecodierer 243, welche Adressen in den Überlagerungsverkabelungsspeicher 214 abgebildet werden. Bei dem bevorzugten Ausführungsbeispiel wird der Überlagerungsverkabelungsspeicher 214 in das durch das ASIC-Umabbildungsmerkmal erzeugte Speicher-„Loch" abgebildet. Das Ergebnis besteht darin, daß sich die Speicherregion von 0 bis A nun auf den Überlagerungsverkabelungsspeicher bezieht und sich die Region von A bis 2A auf den FLASH-Speicher auf dem im Test befindlichen Produkt bezieht.
  • Das Anweisungsüberlagerungsverkabelungsmerkmal ist für eine Verwendung durch das Hochfahr-Team beabsichtigt. Durch ein Umabbilden des FLASH-Speichers 208 kann das Hochfahr-Team die Anweisungsüberlagerungsverkabelung 210 verwenden, die als der FLASH agiert (bildet auf 0×00000 mit 0×2fffff ab). Wiederum unter Verwendung des Testanschlusses können Firmwareschreiber einen Code steuern und in den Überlagerungsverkabelungsspeicher 214 herunterladen. Die Auswählleitungen des FLASH-Speichers aktivieren diesen Adreßbereich nicht, wenn das REMAP-Bit eingestellt ist.
  • Die Testsystem-ASIC umfaßt einen Anschluß 216, vorzugsweise einen REMA-Anschluß (REMA = remote access, Fernzugriff). Der Fernzugriffsanschluß der ASIC ermöglicht es dem Entwickler, Informationen in den Anweisungsüberlagerungsspeicher herunterzuladen. Bei der vorliegenden Erfindung wird der REMA-Anschluß 216 verwendet, um einen Code auf der Überlagerungsverkabelung 210 zu Fehlersuchzwecken umzuprogrammieren. Änderungen des Programmcodes werden während des Betriebs durchgeführt, wobei kleine Änderungen typisch sind. Der REMA-Anschluß 216 der ASIC ermöglicht es dem Entwickler, Informationen in den Anweisungsüberlagerungsverkabelungsspeicher 214 des in Entwicklung befindlichen Produkts herunterzuladen. Die heruntergeladenen Informationen werden durch den Fehlersuchkern interpretiert, der aktiv wird, indem er die ASIC oder die Anweisungsüberlagerungsverkabelung steuert.
  • Eine Überwachungseinrichtung 212 ist mit dem REMA-Anschluß der ASIC elektrisch gekoppelt, was es dem Benutzer ermöglicht, in der Lage zu sein, die Adreß-/Datenabrufe des eingebetteten Mikroprozessors extern zu überwachen und Befehle in den Fehlersuchkern einzugeben. Beispielsweise kann der Benutzer einen Befehl eingeben, den Code so zu modifizieren, daß er auf dem eingebetteten Mikroprozessor läuft, oder alternativ dazu kann er einen Befehl eingeben, der einen Anhaltepunkt in dem Code an einem Punkt einstellt, der für die Person, die die Fehlersuche durchführt, von besonderem Interesse ist.
  • Unter Bezugnahme auf 2 ist die Anweisungsüberlagerungsverkabelung 210 nicht in die ASIC integriert, sondern ist statt dessen ein separates Modul, das an dem zu testenden Produkt 240 befestigt ist. Die Anweisungsüberlagerungsverkabelung 210 wird lediglich in dem Test- und Diagnosemodus verwendet und ist in der Regel kein Bestandteil des normalerweise gelieferten Produkts. Wenn das REMAP-Bit des DBINTSTS-Registers 232 eingestellt ist und das Freigaberegister 246 der Anweisungsüberlagerungsverkabelung eingestellt ist, wird die normalerweise durch den Mikroprozessor 204 erzeugte Adresse durch die Anweisungsüberlagerungsverkabelungssteuerschaltung 243 decodiert, was bewirkt, daß der Anweisungsüberlagerungsverkabelungsspeicher statt des Flash-Speichers anspricht. Dies ermöglicht, daß ein Code und Daten statt in den Flash-Speicher in den Anweisungsüberlagerungsverkabelungsspeicher 214 geladen werden. Der Fehlersuchkern 250 kann durch Verwendung der umabgebildeten Flash-Adresse immer noch Lese- und Schreibvorgänge an den Flash-Speicher ausgeben.
  • Die vorliegende Erfindung verwendet zwei in der ASIC implementierte Funktionen (die Fehlersuchunterstützungslogik und den Fernzugriffsanschluß) und zwei Nicht-ASIC-Funktionen (die Anweisungsüberlagerungsverkabelung und den Fehlersuchkern). Diese Funktionen zusammengenommen ermöglichen es dem Entwickler, Zyklen eines eingebetteten Prozessors nachzuverfolgen/einzufangen und einen Prozessorcode/Prozessordaten zu modifizieren/herunterzuladen. Der Fehlersuchkern 250 ermöglicht es dem Entwickler, die DAL-Register zu programmieren, die die normale Ausführung des eingebetteten Mikroprozessors unterbrechen. Der Fehlersuchkern kann ferner aus dem und in den Anweisungsüberlagerungsspeicher 214 lesen bzw. schreiben.
  • Der Fehlersuchkern 250 ist Teil der Firmware auf dem in der Entwicklung befindlichen Produkt und ist die auf den ASIC-Speicher 208 geladene Software, die verwendet wird, um eine Steuerung zwischen dem Fehlersuchmodus und der normalen Anweisungsausführung hin- und herzutransferieren. Der Fehlersuchkern 250 wird über eine Benachrichtigung durch den Fernzugriffsanschluß 216 zur Nutzung aufgerufen. Nach der Aufrufung veranlaßt er den eingebetteten Mikroprozessor 204, die benötigte DAL-206-Konfiguration einzurichten und Mikroprozessortransaktionen nachzuverfolgen/einzufangen, wenn eine normale Ausführung wiederaufgenommen wird. Der Fehlersuchkern 250 kann ferner Speicherherunterladungen steuern und ist somit in der Lage, einen Code während des Betriebs zu ändern. Nachdem er in dem Fehlersuchkern 250 ist, kann der Codeschreiber durch den REMA-Anschluß 216 spezielle Befehle ausgeben, die die DAL 206 einrichten oder zu dem Anweisungsüberlagerungsspeicher 214 einen neuen Code herunterladen, der durch den Mikroprozessor 204 ausgeführt wird, wenn der Steuerungstransfer zum normalen Betrieb zurückkehrt.
  • Da der Test auf dem eingebetteten Mikroprozessor statt eines Emulators durchgeführt wird, wird der Test mit hoher Geschwindigkeit durchgeführt. Unter Verwendung der Überwachungseinrichtung 212 kann der Entwickler die Codeausführung des eingebetteten Mikroprozessors 204 extern überwachen.
  • Der Fehlersuchkern 250 ermöglicht, daß die Steuerung zwischen dem Fehlersuchmodus und einer normalen Anweisungsausführung hin- und hertransferiert wird. Ansprechend auf eine Übereinstimmung der in den durch die Steuerung eingestellten Bedingungen gespeicherten Bedingungen erzeugt die DAL 206 eine Unterbrechung des eingebetteten Mikroprozessors 204 und transferiert die Steuerung an den Fehlersuchkern 250. Nachdem er in dem Fehlersuchkern ist, kann der Codeschreiber durch den Fernzugriffsanschluß spezielle Befehle ausgeben, die die DAL einrichten oder zu der Verkabelung einen neuen Code herunterladen, der durch den Mikroprozessor ausgeführt wird, wenn der Steuerungstransfer zum normalen Betrieb zurückkehrt. Wenn von dem Benutzer ein Befehl erteilt wird, den Code zu modifizieren, wird der Befehl in der Regel in den Speicher abgelegt, vorzugsweise in den Anweisungsüberlagerungsspeicher 214. Der REMA-Anschluß unterbricht den Mikroprozessor 204, um einen Übergang in den Fehlersuchkern zu bewirken, der dann den Befehl des Benutzers verarbeitet, wobei er möglicherweise die DAL-Register, den Code oder die Daten in dem ASIC-Speicher 208 oder den Code oder die Daten, die in dem Anweisungsüberlagerungsspeicher 214 gespeichert ist bzw. sind, ändert.

Claims (8)

  1. Ein Test- und Diagnosesystem (200) zum Testen eines eingebetteten Mikroprozessors (204), das folgende Merkmale aufweist: eine ASIC (240), die den eingebetteten Mikroprozessor (204) und eine Fehlersuchunterstützungslogikeinrichtung (206) umfaßt, wobei die Fehlersuchunterstützungslogikeinrichtung (206) mit dem eingebetteten Mikroprozessor (204) elektrisch gekoppelt ist und eine Mehrzahl von Speichereinrichtungen (230, 232, 234) umfaßt, wobei die Mehrzahl von Speichereinrichtungen zumindest eine erste Speichersatzeinrichtung zum Speichern eines Steuersatzes von Übereinstimmungsbedingungen umfaßt, wobei die Fehlersuchunterstützungslogikeinrichtung (206) ansprechend auf eine Übereinstimmung von überwachten Informationen und der in dem Steuersatz eingestellten Bedingungen betreibbar ist, um eine Unterbrechung für den eingebetteten Mikroprozessor (204) zu erzeugen; eine in einer ersten Speichereinrichtung (208) gespeicherte Fehlersuchsoftware (250), wobei die erste Speichereinrichtung (208) mit dem eingebetteten Prozessor (204) elektrisch gekoppelt ist, und wobei ansprechend auf eine Unterbrechung eine Steuerung von einem auf dem eingebetteten Mikroprozessor (204) laufenden Ausführungscode an die Fehlersuchsoftware (250) transferiert wird; und wobei das System ferner umfaßt: eine Anweisungsüberlagerungsverkabelungseinrichtung (210), die eine Anweisungsüberlagerungsspeichereinrichtung (214), eine Überlagerungsverkabelungsadreßdecodierungseinrichtung (243) und eine Anweisungsüberla gerungsfreigabeeinrichtung (246) umfaßt, wobei die Anweisungsüberlagerungsverkabelungseinrichtung (210) mit der ASIC (202) elektrisch gekoppelt ist, wobei ein Code zu Fehlersuchzwecken entweder in die Anweisungsüberlagerungsspeichereinrichtung (214) oder in die erste Speichereinrichtung heruntergeladen werden kann.
  2. Ein Test- und Diagnosesystem gemäß Anspruch 1, bei dem eine der Mehrzahl von Speichereinrichtungen (230, 232, 234) in der Fehlersuchunterstützungslogikeinrichtung (206) eine Unterbrechungssteuerungsspeichereinrichtung ist, wobei die Unterbrechungssteuerungsspeichereinrichtung ein REMAP-Bit zum Abbilden von Abschnitten der ersten Speichereinrichtung (208) auf eine Adresse umfaßt, die nicht in Widerspruch zu der Anweisungsüberlagerungsspeichereinrichtung (214) steht.
  3. Ein Test- und Diagnosesystem gemäß Anspruch 1 oder 2, bei dem die Fehlersuchunterstützungslogikeinrichtung (206) mit einem Adreßbus (226) und einem Datenbus (228) elektrisch gekoppelt ist und betreibbar ist, um Informationen von denselben zu überwachen, wobei der Adreßbus (226) und der Datenbus (228) mit dem eingebetteten Mikroprozessor (204) elektrisch gekoppelt sind.
  4. Ein Test- und Diagnosesystem gemäß Anspruch 3, bei dem eine Übereinstimmung einer in dem Steuersatz gespeicherten Bedingung vorliegt, wenn eine in der Mehrzahl von Speichereinrichtungen (230, 232, 234) der Fehlersuchunterstützungslogikeinrichtung (206) gespeicherte Adresse mit den durch die Fehlersuchunterstützungslogikeinrichtung (206) über den Adreßbus (226) überwachten Adreßinformationen übereinstimmt.
  5. Ein Test- und Diagnosesystem gemäß Anspruch 3, bei dem eine Übereinstimmung einer in dem Steuersatz gespeicherten Bedingung vorliegt, wenn die in der Fehler suchunterstützungslogikeinrichtung (206) gespeicherten Daten mit den durch die Fehlersuchunterstützungslogikeinrichtung (206) über den Adreßbus (226) überwachten Dateninformationen übereinstimmen.
  6. Ein Test- und Diagnosesystem gemäß Anspruch 3, bei dem eine Übereinstimmung einer in dem Steuersatz gespeicherten Bedingung vorliegt, wenn sowohl (a) die in der Fehlersuchunterstützungslogikeinrichtung (206) gespeicherte Adresse mit den durch die Fehlersuchunterstützungslogikeinrichtung (206) über den Adreßbus (226) gespeicherten Adreßinformationen übereinstimmt, als auch (b) die in der Fehlersuchunterstützungslogikeinrichtung (206) gespeicherten Daten mit den durch die Fehlersuchunterstützungslogikeinrichtung (206) über den Adreßbus (226) überwachten Dateninformationen übereinstimmen.
  7. Ein Test- und Diagnosesystem gemäß einem der vorhergehenden Ansprüche, bei dem die Mehrzahl von Speichereinrichtungen (230, 232, 234) der Fehlersuchunterstützungslogikeinrichtung (206) zumindest einen Registersatz, eine Unterbrechungssteuerungsspeichereinrichtung und eine ID-Speichereinrichtung umfaßt.
  8. Ein Test- und Diagnosesystem gemäß einem der vorhergehenden Ansprüche, bei dem die ASIC (240) einen REMA-Anschluß (216) umfaßt, der mit einer Überwachungseinrichtung elektrisch gekoppelt ist.
DE69817725T 1997-10-27 1998-10-16 Mikroprozessor Testsystem Expired - Fee Related DE69817725T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US958291 1997-10-27
US08/958,291 US6094730A (en) 1997-10-27 1997-10-27 Hardware-assisted firmware tracing method and apparatus

Publications (2)

Publication Number Publication Date
DE69817725D1 DE69817725D1 (de) 2003-10-09
DE69817725T2 true DE69817725T2 (de) 2004-07-22

Family

ID=25500826

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69817725T Expired - Fee Related DE69817725T2 (de) 1997-10-27 1998-10-16 Mikroprozessor Testsystem

Country Status (4)

Country Link
US (1) US6094730A (de)
EP (1) EP0911735B1 (de)
JP (1) JPH11212817A (de)
DE (1) DE69817725T2 (de)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311327B1 (en) 1998-03-02 2001-10-30 Applied Microsystems Corp. Method and apparatus for analyzing software in a language-independent manner
US6199031B1 (en) * 1998-08-31 2001-03-06 Vlsi Technology, Inc. HDL simulation interface for testing and verifying an ASIC model
US6973417B1 (en) 1999-11-05 2005-12-06 Metrowerks Corporation Method and system for simulating execution of a target program in a simulated target system
JP2002014841A (ja) * 2000-06-30 2002-01-18 Esol Co Ltd デバッグカーネルシステム
US6668370B1 (en) * 2000-09-21 2003-12-23 International Business Machines Corporation Synchronous execution of object-oriented scripts and procedural code from within an interactive test facility
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
DE10116862A1 (de) * 2001-04-04 2002-10-17 Infineon Technologies Ag Programmgesteuerte Einheit
US7487339B2 (en) * 2001-10-12 2009-02-03 Mips Technologies, Inc. Method and apparatus for binding shadow registers to vectored interrupts
US7552261B2 (en) * 2001-10-12 2009-06-23 Mips Technologies, Inc. Configurable prioritization of core generated interrupts
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
US7526422B1 (en) 2001-11-13 2009-04-28 Cypress Semiconductor Corporation System and a method for checking lock-step consistency between an in circuit emulation and a microcontroller
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
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
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US20030135719A1 (en) * 2002-01-14 2003-07-17 International Business Machines Corporation Method and system using hardware assistance for tracing instruction disposition information
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7185321B1 (en) * 2002-03-29 2007-02-27 Cypress Semiconductor Corporation Method and system for debugging through supervisory operating codes and self modifying codes
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
JP4097552B2 (ja) * 2003-03-27 2008-06-11 三菱電機株式会社 半導体レーザ装置
US8271803B2 (en) * 2003-10-08 2012-09-18 Microsoft Corporation Anti-debugging protection of binaries with proxy code execution
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US8160205B2 (en) 2004-04-06 2012-04-17 Accuray Incorporated Robotic arm for patient positioning assembly
US7260759B1 (en) 2004-06-16 2007-08-21 Sun Microsystems, Inc. Method and apparatus for an efficient memory built-in self test architecture for high performance microprocessors
US7178076B1 (en) 2004-06-16 2007-02-13 Sun Microsystems, Inc. Architecture of an efficient at-speed programmable memory built-in self test
US7293199B1 (en) 2004-06-22 2007-11-06 Sun Microsystems, Inc. Method and apparatus for testing memories with different read/write protocols using the same programmable memory bist controller
US7206979B1 (en) 2004-06-28 2007-04-17 Sun Microsystems, Inc. Method and apparatus for at-speed diagnostics of embedded memories
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
US7506206B2 (en) * 2005-06-07 2009-03-17 Atmel Corporation Mechanism for providing program breakpoints in a microcontroller with flash program memory
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
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
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
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
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
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
FR2936624B1 (fr) * 2008-09-26 2010-10-29 Thales Sa Dispositif de securisation d'un composant electronique
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9384004B2 (en) * 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9482718B2 (en) * 2014-01-13 2016-11-01 Texas Instruments Incorporated Integrated circuit
CN106526447A (zh) * 2016-09-27 2017-03-22 曙光信息产业股份有限公司 主板检测装置及方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB569128A (en) * 1940-09-26 1945-05-07 George Baker A method of swaging shell forgings
BE485304A (de) * 1947-11-11
US5220658A (en) * 1986-03-10 1993-06-15 International Business Machines Corporation System for testing a performance of user interactive-commands using an emulator-overlay for determining the progress of the user timing response
US5426759A (en) * 1989-12-21 1995-06-20 Microchip Technology Incorporated On-chip/off-chip memory switching using system configuration bit
EP0474256A3 (en) * 1990-09-07 1993-01-27 Nec Corporation In-circuit emulator
EP0569128A2 (de) * 1992-05-08 1993-11-10 John Fluke Mfg. Co., Inc. Erweiterte Hochgeschwindigkeitprüfung eines mikroprozessorbetriebenen Geräts
JP2927108B2 (ja) * 1992-07-22 1999-07-28 日本電気株式会社 インサーキットエミュレータ
US5630052A (en) * 1993-09-30 1997-05-13 Intel Corporation System development and debug tools for power management functions in a computer system
US5640542A (en) * 1993-10-29 1997-06-17 Intel Corporation On-chip in-circuit-emulator memory mapping and breakpoint register modules
EP0652516A1 (de) * 1993-11-03 1995-05-10 Advanced Micro Devices, Inc. Integrierter Mikroprozessor
JP2727976B2 (ja) * 1994-09-12 1998-03-18 日本電気株式会社 インサーキットエミュレータ
US5546562A (en) * 1995-02-28 1996-08-13 Patel; Chandresh Method and apparatus to emulate VLSI circuits within a logic simulator
EP0762278A1 (de) * 1995-08-30 1997-03-12 Motorola, Inc. Datenprozessor mit eingebauter Emulationsschaltung
US5911059A (en) * 1996-12-18 1999-06-08 Applied Microsystems, Inc. Method and apparatus for testing software
US5862148A (en) * 1997-02-11 1999-01-19 Advanced Micro Devices, Inc. Microcontroller with improved debug capability for internal memory

Also Published As

Publication number Publication date
EP0911735A3 (de) 2000-04-19
DE69817725D1 (de) 2003-10-09
EP0911735A2 (de) 1999-04-28
US6094730A (en) 2000-07-25
JPH11212817A (ja) 1999-08-06
EP0911735B1 (de) 2003-09-03

Similar Documents

Publication Publication Date Title
DE69817725T2 (de) Mikroprozessor Testsystem
DE19847642C2 (de) PCI-PCI-Brücke
DE3876780T2 (de) Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung.
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
EP1720100B1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE69209538T2 (de) Automatische Konfiguration einer Einheit für koppelbare Rechner
US6289300B1 (en) Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit
DE3784996T2 (de) Fehlersuchmikroprozessor.
DE68918754T2 (de) Datenverarbeitungsgerät mit selektivem Befehlsvorausholen.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE60100848T2 (de) Virtuelles rom für geräte-aufzählung
DE3853759T2 (de) Datenprozessor mit zwei Betriebsmoden.
DE4311441C2 (de) Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE10296986T5 (de) Automatischer Austausch einer detekten BIOS-Abbildung
EP0362198A1 (de) Mehrzweckspeicher
DE19729618C2 (de) Mikroprozessor und Mehrprozessorsystem
DE3751108T2 (de) Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden.
EP1565825A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
DE112005003216T5 (de) System und Verfahren für Steuerregister, auf die über private Rechenoperationen zugegriffen wird
DE69831985T2 (de) Mikrocomputer mit Flash-EEPROM
DE68927306T2 (de) Emulationssystem, fähig zur Anpassung an Mikrorechner mit verschiedenen On-Chip-Speicherkapazitäten
US5185745A (en) Scan path diagnostic method
DE10004198A1 (de) System und Verfahren für eine intelligente Analysesonde
JPH11110255A (ja) ソフトウェアをデバッグするための装置および方法

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: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8339 Ceased/non-payment of the annual fee