-
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.