DE69908682T2 - Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor - Google Patents

Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor Download PDF

Info

Publication number
DE69908682T2
DE69908682T2 DE69908682T DE69908682T DE69908682T2 DE 69908682 T2 DE69908682 T2 DE 69908682T2 DE 69908682 T DE69908682 T DE 69908682T DE 69908682 T DE69908682 T DE 69908682T DE 69908682 T2 DE69908682 T2 DE 69908682T2
Authority
DE
Germany
Prior art keywords
state
execution
processor
code
state machine
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
DE69908682T
Other languages
English (en)
Other versions
DE69908682D1 (de
Inventor
David R. Matt
Gary L. Swoboda
Karthikeyan Banglaore Madathil
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments 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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of DE69908682D1 publication Critical patent/DE69908682D1/de
Application granted granted Critical
Publication of DE69908682T2 publication Critical patent/DE69908682T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/3648Software debugging using additional hardware

Landscapes

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

Description

  • TECHNISCHES GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich allgemein auf das Gebiet der eingebetteten Prozessoren und insbesondere auf einen Prozessor mit Echtzeit-Ausführungssteuerung für Austestfunktionen ohne einen Austest-Monitor.
  • HINTERGRUND DER ERFINDUNG
  • Eingebettete Prozessoren werden oft und in verschiedenartigen Anwendungen verwendet und umfassen im allgemeinen eine Prozessorschaltungsanordnung, die eingebetteten Code ausführt, um gewünschte Funktionen auszuüben. Ein Typ von eingebettetem Prozessor ist ein Mikrocontroller, der beispielsweise verwendet werden kann, um den Betrieb einer Vorrichtung wie etwa eines Motors zu steuern. Ein weiterer Typ von eingebettetem Prozessor ist ein digitaler Signalprozessor (DSP), der beispielsweise bei einer Vielzahl von Kommunikationsprodukten wie etwa Funktelephonen verwendet werden kann. Die Verwendung eines eingebetteten Prozessors zur Ausführung von gewünschten Funktionen erfordert im allgemeinen das Entwickeln und Austesten des eingebetteten Codes. In vielen Anwendungen enthält der eingebettete Code Vordergrundcode zum Ausführen zeitkritischer Tasks und Hintergrundcode zum Ausführen administrativer oder auf höherem Niveau angesiedelter Tasks.
  • Bei bestimmten Anwendungen kann es besonders wichtig sein, den eingebetteten Code unter Echtzeit-Ausführungssteuerung austesten zu können. Es kann außerdem wichtig sein, für einen Echtzeit-Austestzugriff auf Register und Speicher in einem eingebetteten Prozessor zu sorgen, ohne einen Austest-Monitor zu verwenden und ohne den Prozessor anzuhalten. Die Echtzeit-Ausführungssteuerung ermöglicht das Anhalten der Ausführung einer Task durch den eingebetteten Prozessor, wobei dennoch zugelassen wird, daß der Prozessor die Abarbeitung anderer zeitkritischer Task fortführt. Somit ermöglicht die Echtzeit-Ausführungs steuerung dem Anwender von Prozessorentwurfs- und Prozessoraustestwerkzeugen eine interaktive Steuerung der Ausführung von eingebettetem Code innerhalb des Systems, ohne die Fähigkeit des Prozessors, zeitkritische Tasks auszuführen, zwangsläufig zu beeinträchtigen. Wenn beispielsweise eingebetteter Code in einem zur Steuerung des Motors eines Festplattenlaufwerks verwendeten Prozessors auszutesten ist, sollte nicht zugelassen werden, daß der Prozessor das Steuern dieses Motors unterbricht. Andernfalls könnte der Motor außer Steuerung geraten und das Festplattenlaufwerk zerstören. Somit ist es wichtig, zuzulassen, daß der Prozessor die Ausführung der zeitkritischen Task der Steuerung des Motors während der Zeit, in der der eingebettete Befehlscode ausgetestet wird, fortführt.
  • Ein herkömmliches Ausführungssteuerungsverfahren ist das Unterbrechen der gesamten Ausführung des Prozessors nach einem Pausenereignis und das Nichtzulassen jeglicher Verarbeitung von Unterbrechungen, bis die Ausführung wiederaufgenommen wird. Dieser Lösungsweg wird bei Stoppmodus-Emulationsverfahren, die bei manchen Prozessoren angewandt werden, gegangen. Jedoch ermöglicht dies keine Steuerung der Ausführung des Prozessors in einem eingebetteten Echtzeitsystem.
  • Ein weiteres herkömmliches Verfahren besteht darin, daß ein Pausenereignis eine spezielle Unterbrechung auslöst, die bewirkt, daß der Prozessor eine Dienstroutine für Unterbrechung ausführt, in der der Prozessor entweder auf einen Befehl zur Wiederaufnahme der Ausführung oder auf das Eintreten einer freigegebenen zeitkritischen Unterbrechung wartet. Diese An von Dienstroutine für Unterbrechung wird häufig als "Austest-Monitor" bezeichnet. Somit wird der Austest-Monitor durch Code implementiert, der durch den eingebetteten Prozessor ausgeführt wird, nachdem er in einen Austestzustand versetzt worden ist. Diese Austest-Monitor-Lösung stellt eine Form der Ausführungssteuerung dar und wird in manchen Prozessoren zusätzlich zur Anwendung von Stopmodus-Emulationsverfahren verwendet.
  • Bei diesem Austest-Monitor-Verfahren kommuniziert die spezielle Dienstroutine für Unterbrechung üblicherweise mit einem Austest-Host über abfragbare Register. Der Austest-Host trägt Befehle ein und liest Ergebnisse aus. Wenn der Prozessor angehalten ist, befindet er sich augenblicklich im Austest-Monitor, wobei er während der Ausführung von Befehlen Dienstroutinen für zeitkritische Unterbrechung abwickelt. Folglich leidet das Austest-Monitor-Verfahren insofern unter Problemen, daß es Systemressourcen wie etwa Programm und Datenspeicher verwendet. Im allgemeinen ist ein Primärspeicher sehr teuer und kann möglicherweise durch den Austest-Monitor korrumpiert werden. Ferner entsteht infolge des Speicherns und Zurückspeicherns von Kontext beim Betreten und Verlassen des Austest-Monitors ein Leistungsbedarf, wobei im allgemeinen zeitkritische Unterbrechungen während dieser Zeitperiode gesperrt werden müssen.
  • JP-A-10 069 398 offenbart eine Mikroprozessor-Austestanordnung, bei der in Antwort auf eine Unterbrechung, die erfolgen kann, während ein Anwenderprogramm abläuft, in einen Auswertemodus übergegangen wird, der eine Echtzeit-Auswertung ermöglicht. Um eine Funktionsstörung des Mikroprozessorsystems zu vermeiden, kann das Auswerteprogramm durch eine Anwender-Unterbrechung unterbrochen werden, vorausgesetzt, daß diese eine ausreichend hohe Priorität besitzt, wobei dann eine Routine zur Verarbeitung dieser Unterbrechung ausgeführt wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • In Übereinstimmung mit der vorliegenden Erfindung ist ein Prozessor mit Echtzeit-Ausführungssteuerung ohne Austest-Monitor offenbart, der gegenüber bisherigen Prozessor-Austestverfahren Vorteile bietet.
  • Gemäß einem Aspekt der vorliegenden Erfindung ist ein Prozessor mit Echtzeit-Ausführungssteuerung für Austestfunktionen vorgesehen, mit:
    einer Prozessorschaltungsanordnung, die so betreibbar ist, daß sie eingebetteten Code ausführt, wobei der eingebettete Code Hintergrundcode und Vordergrundcode enthält; und
    einer Austestschaltungsanordnung, die an die Prozessorschaltungsanordnung angeschlossen und so betreibbar ist, daß sie mit einem Austest-Host kommuniziert;
    wobei die Austestschaltungsanordnung so betreibbar ist, daß sie einen Austest-Anhaltebefehl vom Austest-Host empfängt; und
    die Prozessorschaltungsanordnung so betreibbar ist, daß sie nach dem Empfang des Austest-Anhaltebefehls die Ausführung des eingebetteten Codes anhält, um ein Austesten des eingebetteten Codes zuzulassen;
    wobei die Prozessorschaltungsanordnung ferner während der Zeit, in der die Ausführung des eingebetteten Codes angehalten ist, so betreibbar ist, daß sie auf eine freigegebene Unterbrechung antwortet, indem sie Vordergrundcode, der der freigegebenen Unterbrechung zugeordnet ist, ausführt, dadurch gekennzeichnet, daß
    die Austestschaltungsanordnung eine Laufzustand-Maschine besitzt, wobei ein momentaner Zustand der Laufzustand-Maschine auf Austestbefehlen basiert, die von dem Austest-Host empfangen werden und Ausführungssteueranweisungen durch den Austest-Host angeben; und
    die Prozessorschaltungsanordnung eine Ausführungszustand-Maschine besitzt, wobei ein momentaner Zustand der Ausführungszustand-Maschine auf dem momentanen Zustand der Laufzustand-Maschine basiert und die Ausführung von Befehlen durch die Prozessorschaltungsanordnung angibt.
  • Ein technischer Vorteil der vorliegenden Erfindung ist die Implementierung von Austestfunktionen unter Verwendung einer in einem eingebetteten Prozessor eingebauten Austestschaltungsanordnung. Die Austestfünktionen können zulassen, daß ein Prozessor in ähnlicher Weise wie bei einem Leerlaufbefehl angehalten wird. Die normale Ausführung wird dann angehalten, und der Prozessor wartet entweder auf einen von einem Austest-Host geschickten Ausführungsbefehl oder auf eine Unterbrechung, die freigegeben und als zeitkritisch bezeichnet ist. Nach dem Ausführen irgendeiner Dienstroutine für zeitkritische Unterbrechung kann der Prozessor in den Anhaltezustand zurückkehren.
  • Ein anderer technischer Vorteil ist die Fähigkeit, einen Fall zu behandeln, in dem bei mehreren Abschnitten eines zeitkritischen Codes ein Abschnitt des zeitkritischen Codes während der Zeit, in der ein anderer angehalten und ausgetestet wird, ausgeführt werden kann.
  • Ein weiterer technischer Vorteil der vorliegenden Erfindung ist, daß sie das Austesten eines Prozessors ermöglicht, ohne den Code- und Leistungsbedarf eines Austest-Monitors zu erfordern. Dies verringert die Kosten des Prozessors durch Beseitigen des Bedarfs an Austest-Monitor-Code, der üblicherweise Primärspeicher verbrauchen und zur den Gesamtkosten des Prozessors hinzukommen würde. Außerdem besteht keine Notwendigkeit des Verbrauchs von Prozessonessourcen (z. B. Register, Stapelspeicherplatz oder Speicher), um während der Ausführung eines Austest-Monitors Zustandsdaten aufzubewahren.
  • Ein weiterer technischer Vorteil ist, daß es keine durch die Vorbereitungszeit bedingte, relativ lange Verzögerung zwischen einem Pausenereignis und einer Möglichkeit zur Bearbeitung zeitkritischer Unterbrechungen, wie sie bei einem Austest-Monitor auftritt, gibt.
  • Außerdem ermöglicht die vorliegende Erfindung das Nachahmen eines Stopmodus-Emulationsverfahrens durch Angabe, daß keine Unterbrechungen (ob freigegeben oder nicht) zeitkritisch sind. Dies behandelt die Stopmodus-Emulation im wesentlichen als Untermenge der Echtzeit-Emulation.
  • Weitere technische Vorteile der vorliegenden Erfindung sollten aus der Zeichnung, der Beschreibung und den Ansprüchen hervorgehen.
  • KURZBESCHREIBUNG DER ZEICHNUNG
  • Ein vollständigeres Verständnis der vorliegenden Erfindung und deren Vorteile kann durch Bezugnahme auf die folgende Beschreibung gewonnen werden, wenn sie im Zusammenhang mit der begleitenden Zeichnung erfaßt wird, worin gleiche Bezugszeichen gleiche Merkmale angeben und worin:
  • 1 ein Blockschaltplan einer Ausführungsform einer Austestumgebung ist, die einen Austest-Host und ein Zielsystem mit einem eingebetteten Prozessor umfaßt;
  • 2 ein Blockschaltplan einer Ausführungsform einer Austestschaltungsanordnung im Prozessor von 1 ist;
  • 3 ein Zustandsdiagram einer Ausführungsform einer durch die Austestschaltungsanordnung von 2 gepflegten Laufzustand-Maschine ist; und
  • 4 ein Zustandsdiagramm einer Ausführungsform einer durch die Austestschaltungsanordnung von 2 gepflegten Ausführungszustand-Maschine ist.
  • GENAUE BESCHREIBUNG DER ERFINDUNG
  • 1 ist ein Blockschaltplan einer Ausführungsform einer allgemein bei 10 angegebenen Austestumgebung, die einen Austest-Host 12 und ein Zielsystem 14 umfaßt. Bei dieser Ausführungsform enthält das Zielsystem 14 einen eingebetteten Prozessor 16, der Steuersignale an eine gesteuerte Vorrichtung 18 liefert und Sensorsignale von dieser empfängt. Der Prozessor 16 kann beispielsweise ein Mikrocontroller sein, während die Vorrichtung 18 der Motor eines Festplattenlaufwerks sein kann. Der Prozessor 16 führt eingebetteten Code 19 aus, um programmierte Funktionen auszuüben. Im allgemeinen enthält eingebetteter Code 19 zwei Kategorien von eingebettetem Code: Vordergrundcode und Hintergrundcode. Der Vordergrundcode führt zeitkritische Tasks wie beispielsweise Vorrichtungssteuerungs-Tasks aus, die in regelmäßigen Intervallen ausgeführt werden, um die Vorrichtung 18 zu betreiben. Der Hintergrundcode führt administrative und auf höherem Niveau angesiedelte Tasks aus, ist üblicherweise im Umfang größer und ist nicht so zeitkritisch.
  • 2 ist ein Blockschaltplan einer Ausführungsform einer Austestschaltungsanordnung im Prozessor 16 von 1. Die Austestschaltungsanordnung umfaßt einen Austestkern 20, eine Ausführungssteuerung 22 und einen Wrapper 24. Diese Komponenten sind an den Rest des Prozessorkerns 26 angeschlossen. Der Austestkern 20 kommuniziert mit dem Austest-Host 12, um Austestbefehle zu empfangen und Ergebnisse zu liefern. In einer Ausführung steuert der Austestkern 20 eine JTAG-TAP-Zustandsmaschine, die die Kommunikation mit dem Austest-Host 12 vollzieht. Der Austestkern 20 kann Abfrageregister enthalten, die die gesamte TCK-Logik enthalten, und Austestadreß-, Datenstatus- und Steuerinformationen managen. Die Ausführungssteuerung 22 kann zwischen Unterbrechungen, Befehlen und Austesten entscheiden und das Anhalten und Wiederstarten des Prozessors 16 steuern. Der Wrapper 24 kann eine Schnittstelle für Komponenten der Austestschaltungsanordnung zum Rest des Prozessorkerns 26 und dem Speicherbus bereitstellen.
  • Gemäß der vorliegenden Erfindung ermöglicht die Austestschaltungsanordnung im Prozessor 16 dem Austest-Host 12 das Ausführen einer Echtzeit-Ausführungssteuerung für Austestfunktionen ohne Verwendung eines Austest-Monitors. Im allgemeinen nimmt der Prozessor 16 dann, wenn er einem vom Austest-Host 12 ausgelösten Pausenereignis begegnet, das angibt, daß der Prozessor 16 die Ausführung der momentanen Task anhalten soll, einen Hardwarezustand ein, in dem er für die momentane Task keine weiteren Befehle abruft. In diesem Zustand kann der Prozessor 16 auf einen externen Befehl vom Austest-Host 12, der angibt, daß die Ausführung wiederaufgenommen werden kann oder auf eine Anforderung nach einer freigegebenen, zeitkritischen Unterbrechung warten. Ein Beispiel für Austest-Zustandsmaschinen, die durch einen Prozessor 16 gepflegt werden, sind im Zusammenhang mit den 3 und 4 gezeigt und beschrieben.
  • Wenn der Prozessor 16 einen Befehl vom Austest-Host 12 empfängt, der angibt, daß die Ausführung wiederaufgenommen werden soll, kann der Prozessor 16 das Abrufen und Ausführen von Befehlen wiederaufnehmen, bis ein weiteres Pausenereignis empfangen wird. Außerdem kann der Prozessor 16 veranlaßt werden, einen Einzelbefehl auszuführen, indem automatisch ein Pausenereignis hervorgerufen wird, wenn der erste abgerufene Befehl ausgeführt wird. Ferner kann der Prozessor 16 dann, wenn eine freigegebene, zeitkritische Unterbrechung empfangen wird, zugeordneten Code (üblicherweise Vordergrundcode, wie oben erwähnt wurde) ausführen, um Tasks auszuführen, die normalerweise mit der Bearbeitung dieser Unterbrechung (z. B. einer Kontextspeicherung) verbunden sind, und aufzeichnen, daß er im angehaltenen Zustand war, als die Unterbrechung entgegengenommen wurde. Nachdem der Prozessor 16 die Unterbrechung bearbeitet hat und den früheren Kontext zurückspeichert, kann der Prozessor 16 den Anhaltezustand wiedereinnehmen. An dieser Stelle kann der Prozessor 16 das Warten auf einen Befehl vom Austest-Host 12 zur Wiederaufnahme der Ausführung oder auf zusätzliche freigegebene, zeitkritische Unterbrechungen wiederaufnehmen.
  • 3 ist ein Zustandsdiagramm einer Ausführungsform einer durch die Austestschaltungsanordnung von 2 gepflegten Laufzustand-Maschine. Im allgemeinen gibt der momentane Zustand der Laufzustand-Maschine (RSM = run state machine) die Ausführungssteuerungsdirektive des Austest-Host an den Prozessor an. In einer Ausführung kann ein Register verwendet werden, um den Zustand der Laufzustand-Maschine festzulegen. Wie gezeigt ist, umfaßt die Laufzustand-Maschine von 3 einen ersten Zustand 60 (EXE_CONT-Zustand), einen zweiten Zustand 62 (EXE_STEP-Zustand), einen dritten Zustand 64 (EXE_COND-Zustand) und einen vierten Zustand 66 (EXE_HALT-Zustand).
  • Im Betrieb versetzt ein Austestbefehl vom Austest-Host zum "Auslösen" des Prozessors die Laufzustand-Maschine in den EXE_CONT-Zustand 60. Der EXE_CONT-Zustand 60 gibt an, daß der Prozessor in einem normalen Zustand der ununterbrochenen Ausführung von Befehlen sein soll und das Austesten gesperrt ist. Ein Austestbefehl zum "Anhalten" des Prozessors versetzt die Laufzustand-Maschine in den EXE_HALT-Zustand 66. Der EXE_HALT-Zustand 66 gibt an, daß die Ausführung von Hintergrundcodebefehlen angehalten werden soll. Ein Austestbefehl zum "schrittweisen Vorgehen" des Prozessors versetzt die Laufzustand-Maschine in den EXE_STEP-Zustand 62 und gibt an, daß der Prozessor einen einzelnen Hintergrundbefehl ausführen soll und in den EXE_HALT-Zustand 66 zurückkehren soll. Ein Austestbefehl zum "Laufen" des Prozessors versetzt die Laufzustand-Maschine in den EXE_COND-Zustand 64. Der EXE_COND-Zustand 64 gibt an, daß der Prozessor eine bedingte Ausführung von Befehlen bei freigegebenem Austesten vornehmen soll.
  • Im allgemeinen kann ein Austestbefehl empfangen werden, wenn die Laufzustand-Maschine in irgendeinem Zustand ist und einen absoluten Übergang in den geeigneten Zustand angibt. Aus dem EXE_STEP-Zustand 62 führt das "Beginnen" der Ausführung eines Befehls die Laufzustand-Maschine sofort in den EXE_HALT-Zustand 66 zurück. Dieses "Beginnen" gibt an, daß mit der Ausführung eines Befehls begonnen worden ist und irgendwelche internen Zustandstransaktionen des Prozessors (wie etwa die Entgegennahme einer Unterbrechung) als Befehle berücksichtigt werden können. Aus dem EXE_COND-Zustand 64 führt das "Stoppen" der Ausführung von Befehlen die Laufzustand-Maschine in den EXE_HALT-Zustand 66 zurück. Dieses "Stoppen" gibt an, daß ein qualifizierten Pausenereignis empfangen worden ist. Qualifizierte Pausenereignisse umfassen das Erreichen eines Haltepunktbefehls und das Erfassen einer logischen Ausgangsbedingung, nach der es wünschenswert ist, die Ausführung zu stoppen, damit der Zustand des Prozessors untersucht werden kann. Ein "Auslösen des Austestens", das die Laufzustand-Maschine in den EXE_CONT-Zustand 60 zurückführt, gibt an, daß es nicht länger wünschenswert ist, den Prozessor auszutesten. Dieses "Auslösen des Austestens" kann als Befehl vom Austest-Host oder von der Logik, die das Fehlen oder Löschen eines Austest-Kommunikationskanals erfaßt hat, kommen.
  • 4 ist ein Zustandsdiagramm einer Ausführungsform einer durch die Austestschaltungsanordnung von 2 gepflegte Ausführungszustand-Maschine. Im allgemeinen gibt der momentane Zustand der Ausführungszustandsmaschine (EMS = execution state machine) den momentanen Modus für die Ausführung von Befehlen durch den Prozessor an. In dieser Ausführungsform wird die Ausführungszustand-Maschine indirekt durch die Laufzustand-Maschine von 3 gesteuert. Wie gezeigt ist, umfaßt die Ausführungszustand-Maschine von 4 einen ersten Zustand 70 (EXE-Zustand), einen zweiten Zustand 72 (DSUSP-Zu stand), einen dritten Zustand 74 (IDS-Zustand) und einen vierten Zustand 76 (IDGB-Zustand). In dieser Ausführung wird ein Austest-Rahmenzähler (DFC) als Zähler verwendet, der die Pflege des momentanen Zustands der Ausführungszustand-Maschine unterstützt. Der DFC wird im wesentlichen dazu verwendet, zu verfolgen, ob der gerade ausgetestete Code Hintergrundcode oder Vordergrundcode ist. Der DFC wird mit –1 initialisiert und inkrementiert, wenn vom DSUSP-Zustand 72 zum IDS-Zustand 74 übergegangen wird. Der DFC wird dekrementiert, wenn entweder vom IDS-Zustand 74 oder dem IDGB-Zustand 76 infolge einer zeitkritischen Unterbrechung (jedoch nicht wie bei einem Pausenereignis infolge des Stoppens der Ausführung) zum DSUSP-Zustand 72 übergegangen wird.
  • Im Betrieb führt der Prozessor im EXE-Zustand 70 ununterbrochen Hintergrund- und Vordergrundbefehle des eingebetteten Codes aus. Die Ausführungszustand-Maschine wird in den EXE-Zustand 70 versetzt, wenn die Laufzustand-Maschine von 3 im EXE_CONT-Zustand 60 ist. Im DSUSP-Zustand 72 hält der Prozessor die Ausführung von Befehlen an. Die Ausführungszustand-Maschine wird in den DSUSP-Zustand 72 versetzt, wenn die Laufzustand-Maschine im EXE_HALT-Zustand 66 ist. Aus dem DSUSP-Zustand 72 kehrt die Ausführungszustand-Maschine zum EXE-Zustand 70 zurück, wenn die Laufzustand-Maschine im EXE_STEP-Zustand 62 oder im EXE_COND-Zustand 64 ist und der DFC –1 ist. Wenn die Laufzustand-Maschine im EXE_STEP-Zustand 62 oder im EXE_COND-Zustand 64 ist und der DFC nicht –1 ist, wechselt die Ausführungszustand-Maschine in den IDGB-Zustand 76. Im IDGB-Zustand 76 führt der Prozessor eine willkürliche (aus der Sicht des Austest-Host) Ausführung von Vordergrundcodebefehlen (d. h. zeitkritischen Tasks) aus. Aus dem IDGB-Zustand 76 kehrt die Ausführungszustand-Maschine nach Rückkehr von einem zeitkritischen Unterbrechen oder Stoppen (d. h. bei einem qualifizierten Pausenereignis) in den DSUSP-Zustand 72 zurück. Aus dem DSUSP-Zustand 72 wechselt die Ausführungszustand-Maschine in den IDS-Zustand 74, falls eine freigegebene, zeitkritische Unterbrechung eintritt, während die Laufzustand-Maschine im EXE_HALT-Zustand 66 ist. Im IDS-Zustand 74 führt der Prozessor eine unwillkürliche (aus der Sicht des Austest-Host) Ausführung von Vordergrundbefehlen aus. Aus dem IDS-Zustand 74 kehrt die Ausführungszustand-Maschine nach Rückkehr von einem zeitkritischen Unterbrechen oder Stoppen (d. h. bei einem qualifizierten Pausenereignis) zum DSUSP-Zustand 72 zurück.
  • Bei der Ausführungszustand-Maschine von 4 ist eine zeitkritische Unterbrechung eine Unterbrechung, die auch dann durch Ausführung von Vordergrundcode bearbeitet wird, wenn der Prozessor die Ausführung von Hintergrundcode oder anderem Vordergrundcode ausgesetzt hat. Ein Weg, diese "zeitkritische" Bezeichnung vorzunehmen, besteht in einem Register, in dem es für jede Unterbrechung ein Feld gibt. Ein Bit im Feld kann angeben, ob die zugeordnete Unterbrechung zeitkritisch ist, während ein anderes Bit angeben kann, ob die Unterbrechung freigegeben ist. Ein anderes Verfahren besteht in einem Register für freigegebene Unterbrechungen, in dem ein Bit pro Unterbrechung angibt, ob die Unterbrechung freigegeben ist, und in einem Register für zeitkritische Unterbrechungen, in dem ein Bit pro Unterbrechung angibt, ob die Unterbrechung zeitkritisch ist.
  • In der Ausführungsform von 4 gibt die Ausführungszustand-Maschine einen von vier Zuständen für die Befehlsausführung durch den Prozessor an, die verwendet werden können, um einem Austest-Host zu ermöglichen, eingebetteten Hintergrundcode und Vordergrundcode auszutesten. Im EXE-Zustand 70 führt der Prozessor Befehle gemäß dem normalen Befehlsstrom aus. Im DSUSP-Zustand 72 hat der Prozessor die Befehlsausführung sowohl für Hintergrundcode als auch für Vordergrundcode angehalten. Bei Hintergrundcode verändern Austestbefehle zum "schrittweisen Vorgehen" oder "Laufen" den Zustand zum EXE-Zustand 70. Bei Vordergrundcode verändern Austestbefehle zum "schrittweisen Vorgehen" oder "Laufen" den Zustand zum IDGB-Zustand 76. Im IDS-Zustand 74 führt der Prozessor den einer freigegebenen, zeitkritischen Unterbrechung zugeordneten Vordergrundcode aus, nachdem er die Unterbrechung empfangen hat.
  • Somit kann der Prozessor das Austesten von Hintergrundcode während der Zeit abwickeln, in der er auch zeitkritische Tasks bearbeitet, indem er Vorder grundcode in Antwort auf freigegebene Unterbrechungen ausführt. Ferner kann der Prozessor den Fall behandeln, in dem bei mehreren Abschnitten eines zeitkritischen Codes ein Abschnitt eines zeitkritischen Codes ausgeführt werden kann, während ein anderer angehalten und ausgetestet wird.

Claims (8)

  1. Prozessor mit Echtzeit-Ausführungssteuerung für Austestfunktionen, mit: einer Prozessorschaltungsanordnung (16), die so betreibbar ist, daß sie eingebetteten Code (19) ausführt, wobei der eingebettete Code Hintergrundcode und Vordergrundcode enthält; und einer Austestschaltungsanordnung, die an die Prozessorschaltungsanordnung angeschlossen und so betreibbar ist, daß sie mit einem Austest-Host (12) kommuniziert; wobei die Austestschaltungsanordnung so betreibbar ist, daß sie einen Austest-Anhaltebefehl vom Austest-Host empfängt; und die Prozessorschaltungsanordnung (16) so betreibbar ist, daß sie nach dem Empfang des Austest-Anhaltebefehls die Ausführung des eingebetteten Codes (19) anhält, um ein Austesten des eingebetteten Codes (19) zuzulassen; wobei die Prozessorschaltungsanordnung (16) ferner während der Zeit, in der die Ausführung des eingebetteten Codes (19) angehalten ist, so betreibbar ist, daß sie auf eine freigegebene Unterbrechung antwortet, indem sie Vordergrundcode, der der freigegebenen Unterbrechung zugeordnet ist, ausführt, dadurch gekennzeichnet, daß die Austestschaltungsanordnung eine Laufzustand-Maschine besitzt, wobei ein momentaner Zustand der Laufzustand-Maschine auf Austestbefehlen basiert, die von dem Austest-Host (12) empfangen werden und Ausführungssteueranweisungen durch den Austest-Host angeben; und die Prozessorschaltungsanordnung (16) eine Ausführungszustand-Maschine besitzt, wobei ein momentaner Zustand der Ausführungszustand-Maschine auf dem momentanen Zustand der Laufzustand-Maschine basiert und die Ausführung von Befehlen durch die Prozessorschaltungsanordnung (16) angibt.
  2. Prozessor nach Anspruch 1, bei dem die Laufzustand-Maschine vier Zustände besitzt: einen Zustand (60) einer ununterbrochenen Ausführung, einen Zustand (66) einer angehaltenen Ausführung, einen Zustand (64) einer bedingten Ausführung und einen Zustand (62) einer Einzelbefehlsausführung.
  3. Prozessor nach Anspruch 2, bei dem: anhand des Empfangs eines Austest-Auslösebefehls die Laufzustand-Maschine in den Zustand (60) einer ununterbrochenen Ausführung versetzt wird; anhand des Empfangs eines Austest-Anhaltebefehls die Laufzustand-Maschine in den Zustand (66) einer angehaltenen Ausführung versetzt wird; anhand des Empfangs eines Austest-Laufbefehls die Laufzustand-Maschine in den Zustand (64) einer bedingten Ausführung versetzt wird; und anhand des Empfangs eines Ausführungs-Schrittbefehls die Laufzustand-Maschine in den Zustand (62) einer Einzelbefehlausführung versetzt wird.
  4. Prozessor nach Anspruch 3, bei dem die Ausführungszustand-Maschine vier Zustände besitzt: einen Ausführungszustand (70), einen Anhaltezustand (72), einen Zustand (76) der willkürlichen Ausführung von Vordergrundcode und einen Zustand (74) der unwillkürlichen Ausführung von Vordergrundcode.
  5. Prozessor nach Anspruch 4, wobei der Prozessor die Ausführung des eingebetteten Codes anhält, wenn der momentane Zustand der Ausführungszustand-Maschine der Anhaltezustand (72) ist.
  6. Prozessor nach Anspruch 5, wobei die Prozessorschaltungsanordnung so betreibbar ist, daß sie in Reaktion auf eine freigegebene zeitkritische Unterbrechung, die zu der Zeit auftritt, in der sich die Ausführungszustand-Maschine im Anhaltezustand (72) befindet, in den Zustand (74) der unwillkürlichen Ausführung von Vordergrundcode übergeht und der Unterbrechung zugeordneten Vordergrundcode ausführt.
  7. Prozessor nach Anspruch 6, wobei die Prozessorschaltungsanordnung so betreibbar ist, daß sie in Reaktion auf ein Pausenereignis, das während der Ausführung des der Unterbrechung zugeordneten Vordergrundcodes auftritt, in den Anhaltezustand (72) übergeht, um das Austesten des Vordergrundcodes zuzulassen.
  8. Prozessor nach Anspruch 7, wobei die Prozessorschaltungsanordnung so betreibbar ist, daß sie in Reaktion auf eine zweite freigegebene Unterbrechung, die während des Austestens des Vordergrundcodes auftritt, in den Zustand (74) der unwillkürlichen Ausführung von Vordergrundcode übergeht und zusätzlichen Vordergrundcode, der der Unterbrechung zugeordnet ist, ausführt.
DE69908682T 1998-03-20 1999-03-17 Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor Expired - Lifetime DE69908682T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7878598P 1998-03-20 1998-03-20
US78785P 1998-03-20

Publications (2)

Publication Number Publication Date
DE69908682D1 DE69908682D1 (de) 2003-07-17
DE69908682T2 true DE69908682T2 (de) 2004-05-13

Family

ID=22146213

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69908682T Expired - Lifetime DE69908682T2 (de) 1998-03-20 1999-03-17 Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor

Country Status (3)

Country Link
US (1) US6324684B1 (de)
EP (1) EP0943996B1 (de)
DE (1) DE69908682T2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392431B2 (en) * 1999-02-19 2008-06-24 Texas Instruments Incorporated Emulation system with peripherals recording emulation frame when stop generated
US6557116B1 (en) * 1999-02-19 2003-04-29 Texas Instruments Incorporated Emulation suspension mode with frame controlled resource access
US6564339B1 (en) * 1999-02-19 2003-05-13 Texas Instruments Incorporated Emulation suspension mode handling multiple stops and starts
US6567933B1 (en) * 1999-02-19 2003-05-20 Texas Instruments Incorporated Emulation suspension mode with stop mode extension
CN1227574C (zh) * 1999-03-30 2005-11-16 西门子能量及自动化公司 可编程逻辑控制器方法,系统和设备
US6560712B1 (en) * 1999-11-16 2003-05-06 Motorola, Inc. Bus arbitration in low power system
US6560722B1 (en) * 1999-12-30 2003-05-06 Texas Instruments Incorporated Developing and deploying real-time high-performance applications with DSPs
JP2001356934A (ja) * 2000-03-02 2001-12-26 Texas Instr Inc <Ti> ハードウェアシステムとインタラクトするソフトウェアシステムの構成方法およびデジタルシステム
US6732298B1 (en) * 2000-07-31 2004-05-04 Hewlett-Packard Development Company, L.P. Nonmaskable interrupt workaround for a single exception interrupt handler processor
US20020075290A1 (en) * 2000-12-20 2002-06-20 Microsoft Corporation Incremental and interruptible layout of visual modeling elements
US7823131B2 (en) * 2001-06-29 2010-10-26 Mentor Graphics Corporation Debugger for a hardware-implemented operating system
US6981178B2 (en) * 2002-11-22 2005-12-27 Texas Instruments Incorporated Separation of debug windows by IDS bit
US7127639B2 (en) * 2002-11-22 2006-10-24 Texas Instruments Incorporated Distinguishing between two classes of trace information
US7039832B2 (en) * 2002-12-05 2006-05-02 International Business Machines Corporation Robust system reliability via systolic manufacturing level chip test operating real time on microprocessors/systems
US20040117607A1 (en) * 2002-12-17 2004-06-17 Swoboda Gary L. Apparatus and method for separating detection and assertion of a trigger event
KR100880832B1 (ko) * 2004-02-10 2009-01-30 삼성전자주식회사 코-디버깅 기능을 지원하는 반도체 집적회로 및 반도체집적회로 테스트 시스템
US7596719B2 (en) * 2006-02-14 2009-09-29 Atmel Corporation Microcontroller information extraction system and method
US20080282234A1 (en) * 2007-05-07 2008-11-13 Texas Instruments Incorporated Dynamic emulation mode switching
WO2011124681A1 (en) * 2010-04-09 2011-10-13 Verigy (Singapore) Pte. Ltd. Method and automatic test equipment for performing a plurality of tests of a device under test
US9424165B2 (en) * 2013-03-14 2016-08-23 Applied Micro Circuits Corporation Debugging processor hang situations using an external pin
US9268627B2 (en) 2013-03-14 2016-02-23 Applied Micro Circuits Corporation Processor hang detection and recovery
US9170922B1 (en) * 2014-01-27 2015-10-27 Google Inc. Remote application debugging
US10769050B2 (en) 2018-05-16 2020-09-08 Texas Instruments Incorporated Managing and maintaining multiple debug contexts in a debug execution mode for real-time processors
US10761968B2 (en) 2018-05-16 2020-09-01 Texas Instruments Incorporated Managing and maintaining multiple debug contexts in a debug execution mode for real-time processors
US10761967B2 (en) 2018-05-16 2020-09-01 Texas Instruments Incorporated Managing and maintaining multiple debug contexts in a debug execution mode for real-time processors
JP7202225B2 (ja) * 2019-03-12 2023-01-11 ローム株式会社 半導体装置及びデバッグシステム

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4631361A (en) * 1984-06-28 1986-12-23 Itt Corporation Programmable ring generator
US5394544A (en) * 1989-08-07 1995-02-28 Ricoh Co., Ltd. Software system debugger with distinct interrupt vector maps for debugging and application programs
US5140671A (en) * 1990-01-26 1992-08-18 International Business Machines Corporation Expert system debugger
GB2266605B (en) * 1992-04-27 1995-10-11 Intel Corp Microprocessor having a run/stop pin for accessing an idle mode
US5488688A (en) * 1994-03-30 1996-01-30 Motorola, Inc. Data processor with real-time diagnostic capability
JP2752592B2 (ja) * 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5689684A (en) * 1995-06-07 1997-11-18 Motorola, Inc. Method and apparatus for automatically reconfiguring a host debugger based on a target MCU identity
US5737516A (en) * 1995-08-30 1998-04-07 Motorola, Inc. Data processing system for performing a debug function and method therefor
US5909582A (en) * 1996-04-26 1999-06-01 Nec Corporation Microcomputer having user mode interrupt function and supervisor mode interrupt function
JP2877138B2 (ja) * 1996-04-26 1999-03-31 日本電気株式会社 ソフトウェアディバグ用マイクロコンピュータ
US5828824A (en) * 1996-12-16 1998-10-27 Texas Instruments Incorporated Method for debugging an integrated circuit using extended operating modes
US6081885A (en) * 1996-12-20 2000-06-27 Texas Instruments Incorporated Method and apparatus for halting a processor and providing state visibility on a pipeline phase basis
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US5978902A (en) * 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US6154856A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Debug interface including state machines for timing synchronization and communication
US6094729A (en) * 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
US6081783A (en) * 1997-11-14 2000-06-27 Cirrus Logic, Inc. Dual processor digital audio decoder with shared memory data transfer and task partitioning for decompressing compressed audio data, and systems and methods using the same
JPH11194957A (ja) * 1998-01-07 1999-07-21 Matsushita Electric Ind Co Ltd デバッグ支援装置、並列実行情報生成装置、及びこれらに適用されるプログラムを記録した記録媒体
US6070218A (en) * 1998-01-16 2000-05-30 Lsi Logic Corporation Interrupt capture and hold mechanism
US6260150B1 (en) * 1998-03-10 2001-07-10 Agere Systems Guardian Corp. Foreground and background context controller setting processor to power saving mode when all contexts are inactive
US6249907B1 (en) * 1998-03-24 2001-06-19 International Business Machines Corporation Method system and article of manufacture for debugging a computer program by encoding user specified breakpoint types at multiple locations in the computer program
US6079032A (en) * 1998-05-19 2000-06-20 Lucent Technologies, Inc. Performance analysis of computer systems
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
US6202104B1 (en) * 1998-07-28 2001-03-13 Siemens Aktiengesellschaft Processor having a clock driven CPU with static design
US6256777B1 (en) * 1998-10-09 2001-07-03 Hewlett-Packard Company Method and apparatus for debugging of optimized machine code, using hidden breakpoints

Also Published As

Publication number Publication date
EP0943996A2 (de) 1999-09-22
EP0943996B1 (de) 2003-06-11
EP0943996A3 (de) 2000-12-06
US6324684B1 (en) 2001-11-27
DE69908682D1 (de) 2003-07-17

Similar Documents

Publication Publication Date Title
DE69908682T2 (de) Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor
DE4011745C2 (de)
DE3685863T2 (de) Rechnersystem zur steuerung virtueller maschinen.
EP0645704B1 (de) Tracer-System zur Fehleranalyse in laufenden Realzeitsystemen
DE69114905T2 (de) Verfahren und System zum Optimieren des Abschaltens in Systemen aus programmierbaren Vorrichtungen.
DE2722099C2 (de)
DE69930614T2 (de) VERFAHREN UND GERÄT ZUM HANDHABEN VON mehrfachen flanken- und zustandsausgelösten unterbrechungen
DE69919404T2 (de) On-line fehlerbeseitigungs- und ablaufverfolgungssytem und verfahren
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE3942669A1 (de) Virtuelles maschinensystem
DE19834191C2 (de) Integrierte Schaltungsvorrichtung und ihr Steuerverfahren
DE3856067T2 (de) Datenprozessor mit einer Unterbrechungsfunktion
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE4313594A1 (de) Mikroprozessor
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE4311441C2 (de) Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß
DE2244402A1 (de) Datenverarbeitungsanlage
DE112006002908T5 (de) Technik für die Kommunikation und Synchronisation von Threads
WO2004049159A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
DE3750045T2 (de) Unterbrechungssteuerungsvorrichtung für eine virtuelle Maschine mit einer Vielzahl von Verarbeitungseinheiten.
EP0799441B1 (de) Verfahren zur steuerung von technischen vorgängen
DE2911909A1 (de) Verfahren und geraet zur digitalen datenverarbeitung, insbesondere von digitalen audiosignalen
DE3750311T2 (de) Gerät und Verfahren zur Übertragung zwischen Prozessoren.
DE4223454A1 (de) Datenuebertragungssystem fuer eine digitale signalverarbeitungsvorrichtung
EP0721620B1 (de) Tracer-system zur fehleranalyse in laufenden realzeitsystemen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition