-
Die
Erfindung betrifft ein System und ein Verfahren zur Fehlersuche
in elektronischen Systemen nach dem Oberbegriff der Ansprüche 1 bzw.
26.
-
Bekanntermaßen ist
die Fehlersuche und -beseitigung in Softwaresystemen ein aufwendiger und
damit teurer Prozeß.
Abgesehen von den damit verbundenen Kosten spielt jedoch auch die
reine Dauer der Fehlersuche eine wichtige Rolle, da diese eine rasche
Markteinführung
von Systemen Produkten verzögert
oder zu Abstrichen bei deren Qualität zwingt. Dies gilt insbesondere
für eingebettete
Systeme einschließlich
Echtzeitsystemen, sowohl aus technischen Gründen als auch wegen des enormen Zeitdrucks
bei deren Entwicklung.
-
Die
technische Herausforderung für
eingebettete Systeme liegt insbesondere darin, dass diese von externen
Faktoren beeinflußt
werden, die sich für die
Fehlersuche nicht wiederherstellen lassen (Empfangsbedingungen in
Funksystemen, Drehzahl von Motoren, Zeitpunkte von Interrupts, ...).
Deshalb ist es sehr aufwendig, sporadisch auftretende Fehler zu lokalisieren.
Man ist gezwungen, das System vielfach und aufwendig in einen möglichst ähnlichen
Zustand zu bringen und hofft, dass ein ähnliches Fehlverhalten wieder
auftritt.
-
Herkömmliche
Methoden zur Fehlersuche und graduelle Weiterentwicklungen dieser
Methoden erweisen sich in diesem Umfeld als unzureichend. Demgegenüber bedient
sich das erfindungsgemäße System
des sogenannten Ausführungs-Wiedergabe-Konzepts
(engl. „Execution-Replay"), das bei der Fehlersuche
in eingebetteten Systemen bisher nicht verwendet wurde.
-
Im
folgenden wird eine Einführung
in dieses Konzept gegeben, dessen Anwendung für die Fehlersuche in eingebetteten
Systemen aufgezeigt und die erheblichen Vorteile im Vergleich zu
Systemen gemäß dem Stand
der Technik verdeutlicht. Anschließend wird die Ausgestaltung
eines erfindungsgemäßen Systems
und Verfahrens zur Fehlersuche in elektronischen Systemen beschrieben.
-
Digitale
elektronische Systeme arbeiten weitestgehend deterministisch. Bringt
man ein deterministisches System mehrmals in einen definierten, identischen
Ausgangszustand und beaufschlagt es jeweils mit denselben Stimuli,
wird es sich jedesmal identisch verhalten. In der Regel entsprechen
diese Stimuli den Eingabedaten ED, die vom System verarbeitet werden.
Sie können
aber auch zusätzliche Steuersignale
SI enthalten und werden im folgenden als Daten D1 bezeichnet.
-
Es
liegt daher nahe, die Daten D1 in einer ersten Bearbeitungsphase
P1, der sogenannten Ausführungsphase,
aufzuzeichnen und dieselben Daten in einer zweiten Bearbeitungsphase
P2, der Wiederholungsphase, wieder an das System anzulegen. Dadurch
erreicht man, dass sich das System in der Wiederholungsphase identisch
wie in der Ausführungsphase
verhält.
-
Trotz
dieses einfachen Prinzips gestaltet sich die Aufzeichnung der Daten
D1 in der Praxis jedoch aus verschiedenen Gründen schwierig:
- – der
Zugriff auf die Kontakte des elektronischen Systems des Chips ist
oftmals schwierig, sowohl wegen deren Anordnung (bei SMD Bauteilen
unter dem Bauteil) als auch wegen deren großer Anzahl;
- – die
Aufzeichnung muss synchron zu den inneren Abläufen der Schaltung geschehen,
was bei Taktfrequenzen von einigen hundert MHz impraktikabel ist;
- – die
(digitale) Aufzeichnung von analogen Signalen ist prinzipbedingt
immer mit einem Quantisierungsfehler behaftet, der das Systemverhalten
bei der Wiedergabe verfälschen
kann.
-
Aufgrund
dieser bisher ungelösten
Schwierigkeiten hat das Ausführungs-Wiedergabe-Prinzip bei
der Fehlersuche in eingebetteten Systemen keine Verbreitung gefunden.
Statt dessen wurden elektronische Systeme mit Ressourcen zur Systembeobachtung
in Echtzeit (sog. Trace-Einheiten) ausgestattet. Wie im folgenden
beschrieben wird, stößt dieser Ansatz
bei modernen elektronischen Systemen wegen deren hoher Ausführungsgeschwindigkeit
und starken Systemintegration zusehends an Grenzen.
-
Bei
eingebetteten Systemen ist seit Jahren ein Trend zu immer stärkerer Integration
von Komponenten in einen einzelnen Chip zu beobachten. In modernen
Systemen sind vielfach mehrere Prozessor-Kerne und andere Komponenten
wie Speicher in einem einzigen Chip enthalten. Wenn alle wesentlichen
Systemkomponenten auf dem Chip Platz finden, spricht man von einem
System-On-Chip (SOC). SOCs weisen viele Vorteile auf (geringe Herstellungskosten,
kleine Bauform), haben aber den Nachteil, dass sich die im Inneren
ablaufenden Vorgänge nur
schwierig beobachten lassen: Es ist nicht wie in herkömmlichen
Systemen möglich,
Daten mit einem Logic-Analyzer zu beobachten.
-
Um
die Suche nach Software-Fehlern in diesen SOCs zu ermöglichen,
gibt es sogenannte Trace-Einheiten.
Diese erlauben es, den Programmverzweigungen des Prozessors zu folgen
(„Program Trace") und gleichzeitig
die Datenzugriffe zu beobachten („Data Trace"). Durch Beobachtung
des Systemverhaltens versucht man, genügend Informationen zu erhalten,
um die Fehlerursache einzugrenzen und schließlich zu beheben.
-
Die
für das
Tracen notwendigen Daten werden über
Kontakte aus dem System herausgeleitet, deren Anzahl aus Kostengründen stark
limitiert ist. So ergibt sich eine Limitierung der Datenrate, die
für das
Tracen verwendet werden kann. Aus diesem Grund muss man sich vor
einem Programmablauf festlegen, welchen Teil des Systems (Speicherbereiche,
Programmbereiche) man beobachten möchte. Das führt zu einer iterativen Vorgangsweise,
bei der man aufgrund der Beobachtungen seine Annahmen über die
Fehlerursache anpaßt
und weitere Beobachtungen anstellt. Bei sporadischen Fehlern ist
der Aufwand dafür
enorm, wegen der großen
Anzahl an nutzlosen Systemläufen,
in denen der Fehler nicht auftritt. Darüber hinaus ist es oftmals schwierig,
die in verschiedenen Beobachtungsläufen gewonnenen Erkenntnisse
zu korrelieren, da sie auf unterschiedlichen Ausführungen
des Systems beruhen.
-
Ein
weiteres Problem herkömmlicher
Debugging-Techniken liegt darin, dass ein Fehler oft erst mit großer Verzögerung sichtbar
wird. Werden beispielsweise Speicherbereiche mit ungültigen Daten überschrieben,
kann es vergleichsweise lange dauern, bis sich das auf das Systemverhalten
auswirkt (das Programm abstürzt). Ähnlich schwierig
zu analysieren sind Probleme mit fehlerhafter Synchronisation von
parallelen Vorgängen.
Zusätzlich
wird die Fehlersuche erschwert, da moderne eingebettete Computersysteme
neben der starken Hardware-Integration eine immer höhere softwareseitige
Komplexität
erreichen.
-
Für Echtzeitsysteme
ist die Situation noch schwieriger, da sich diese definitionsgemäß nicht
für Untersuchungen
anhalten lassen, ohne das Systemverhalten in unzulässiger Weise
zu beeinflussen.
-
Momentan
gibt es zwei Entwicklungsrichtungen zur Vereinfachung der Fehlersuche:
- – Die
Filterung der Traceinformationen („Program trace", „Data Trace") wird immer ausgefeilter.
Es ist möglich,
komplexe Bedingungen zu definieren, die die Trace-Einheit abhängig vom
Programmverlauf ein- und ausschalten. Das Ziel dieser Entwicklung
ist es, gezielter irrelevante Daten ausfiltern zu können, sodass
eine größere Bandbreite für relevante
Daten verwendet werden kann.
- – Die
Erweiterung der Tracevorrichtungen dahingehend, dass man Systembusse
und andere Signale beobachten kann, um weitere Informationen über das
Systemverhalten zu gewinnen. Damit geht ein erhöhter Bedarf an Bandbreite für Tracedaten
einher.
-
Die
genannten Weiterentwicklungen bringen allerdings nur punktuelle
Verbesserungen bei der Fehlersuche. Mangelhaft oder gar nicht adressiert werden
jedoch die aufwendige Reproduktion von fehlerhaftem Systemverhalten,
die hohe notwendige Bandbreite für
Tracedaten, Probleme mit verzögert sichtbaren
Fehlern, und die Schwierigkeit, Tracedaten aus mehreren Systemläufen zu
korrelieren. Diese Weiterentwicklungen sind daher nicht geeignet,
die Fehlersuche signifikant zu erleichtern und zu beschleunigen.
-
Es
ist daher Aufgabe der vorliegenden Erfindung, ein System und ein
Verfahren zu schaffen, mit welchem die Fehlersuche sowohl erleichtert
als auch beschleunigt wird.
-
Diese
Aufgabe wird erfindungsgemäß durch ein
System und ein Verfahren gelöst,
das in den Ansprüchen
definiert ist.
-
Mit
Hilfe des erfindungsgemäßen Systems lässt sich
die Fehlersuche in eingebetteten und Echtzeitsystemen in vorteilhafter
Weise durchführen.
Die Fehlersuche kann sich auf beliebige, und sogar sporadische Fehler
beziehen.
-
Das
erfindungsgemäße Verfahren
beginnt damit, dass ein Teilsystem T des erfindungsgemäßen Datenverarbeitungssystem
S in einen definierten, wiederherstellbaren Ausgangszustand AZ gebracht wird.
Dann wird das Datenverbeitungssystem S in Betrieb gesetzt, sodass
es während
einer ersten Bearbeitungsphase P1, der sogenannten Ausführungsphase,
erste Daten D1 verarbeitet. Dabei bearbeitet ein Teilsystem T des
Datenverarbeitungsystems S von den Daten D1 abgeleitete Daten D1.1.
Während der
Ausführungsphase
P1 erzeugt das erfindungsgemäße System
zweite Daten D2 und legt diese in einem Datenspeicher DS ab. Vor
einer zweiten Bearbeitungsphase P2 (Wiederholungsphase) wird das Teilsystem
T wieder in den Ausgangszustand AZ gebracht. Aus den zweiten Daten
D2 werden dritte Daten D3 gebildet, welche in der Wiederholungsphase P2
dem Teilsystem T zur Bearbeitung zugeführt werden. Dabei sind die
dritten Daten D3 dermaßen
gestaltet, dass sich das Teilsystem T in der Wiederholungsphase
P2 identisch wie in der Ausführungsphase
P1 verhält.
Da die Zuführung
der dritten Daten D3 zeitlich beliebig gesteuert werden kann, ist
es möglich,
das Teilsystem T während
der Wiederholungsphase P2 anzuhalten oder zu verlangsamen. Dadurch
können
Zustände
und Veränderungen
des Teilsystems T beobachtet werden, ohne das Resultat der Bearbeitung
der Daten D3 zu verändern.
-
Das
erfindungsgemäße System
S ist ein Datenverarbeitungssystem, welches ein Teilsystem T und
eine erste Komponente KP1 aufweist. Weiterhin weist es eine zweite
Komponente KP2 sowie ein Modul M auf. Dem System S ist eine externe
Datenspeichereinrichtung DS zugeordnet. Das Modul M kann durch einen
Prozessor und/oder mindestens einen Speicher und/oder mindestens
ein weiteres Modul gebildet sein. Das Datenverarbeitungssystem S
ist in der Weise ausgestaltet, dass in der Ausführungsphase P1 ausgehend von
einem Anfangszustand AZ des Teilsystems T erste Daten D1 verarbeitet
werden, wobei die erste Komponente KP1 zweite Daten D2 erzeugt.
Die Ausführungsphase
wird beendet, wenn ein Fehler im Verhalten des Teilsystems T entdeckt wurde.
Das Teilsystem T geht in den Zustand F über. In der Wiederholungsphase
P2 werden ausgehend von demselben Anfangszustand AZ des Teilsystems T
dritte Daten D3 verarbeitet. Die dritten Daten D3 werden dabei aus
den zweiten Daten D2 erzeugt. Die Daten D3 sind dermaßen gestaltet,
dass sich bei sich deren Verarbeitung durch die Komponente KP2 ein im
wesentlichen identisches Verhalten des Teilsystems T wie in der
Ausführungsphase
P1 ergibt.
-
Die
zweiten Daten D2 bilden die Grundlage für die Erzielung identischen
Verhaltens des Teilsystems T in der Wiederholungsphase. Diese enthalten im
wesentlichen die Eingabedaten D1. Die Aufzeichnung der Eingabedaten
D1 an den Kontakten eines Datenverarbeitungssystem gestaltet sich
in der Praxis meist schwierig. Durch die Verwendung der in das erfindungsgemäße System
integrierten Komponente KP1 wird dieses Problem vermieden und eine
einfache Schnittstelle IF geschaffen, um alle relevanten Daten D2
aufzuzeichnen und einer Datenspeichereinrichtung DS zuzuführen. Darüber hinaus
hat die Komponente KP1 die Möglichkeit
die Daten in vorteilhafter Weise zu bearbeiten und diese zum Beispiel zu
komprimieren. Soweit notwendig enthalten die Daten D2 Zeitinformationen,
die es erlauben, die Daten D2 in der Wiederholungsphase dem Teilsystem
T zur Verarbeitung synchron mit dem Systemablauf zuzuführen. Die
für die
Erzeugung der Zeitinformationen notwendigen Signale sind bei herkömmlichen Datenverarbeitungssystemen
nur im Inneren der Systeme zugänglich.
Demgegenüber
ist das erfindungsgemäße Datenverarbeitungssystem
in der Weise ausgestaltet, dass die Zeitinformationen aus dem Datenverarbeitungssystem
ausgegeben werden. Damit lässt
sich das Ausführungs-Wiederholungs-Prinzip
anwenden.
-
Da
in den Daten D2 alle relevanten Zeitabhängigkeiten enthalten sind,
kann man das Teilsystem T und damit die Verarbeitung der Daten D3
während
der Wiederholungsphase P2 anhalten und weiter laufen lassen. Im
angehaltenen Zustand hat man – auch
bei Echtzeitsystemen – beliebig
viel Zeit, den Systemzustand in allen Details zu untersuchen.
-
KONZEPTIONELLE
VORTEILE DES ERFINDUNGSGEMÄßEN SYSTEMS
-
Das
erfindungsgemäße Verfahren
und System unterscheidet sich aufgrund der Trennung von Ausführungsphase
und Wiederholungsphase (Beobachtungsphase) fundamental von herkömmlichen Systemen.
Auf diesem Unterschied beruhen unter anderem folgende konzeptionelle
Vorteile:
- – Die
aufgezeichneten Daten erlauben eine identische, beliebig langsame
Wiederholung des Systemverhaltens an sich (inklusive aller Detailschritte).
Damit wird die Reproduktion auch sporadischen Fehlverhaltens von
einer sehr zeitintensiven Angelegenheit zu einer einfach durchführbaren
Aufgabe, wenn dieses zumindest einmal beobachtet wurde. Darüber hinaus
kann garantiert werden, dass jeder einzelne, auch nur einmal aufgetretene
Fehler analysiert und beseitigt werden kann. Das ist in herkömmlichen
Systemen nicht der Fall, da eine Vielzahl von Fehlern trotz unterschiedlicher
Ursachen ein ähnliches
Fehlerbild zeigen. Das gilt umso mehr, als die begrenzte Beobachtbarkeit
durch herkömmliches
(gefiltertes) Tracen prinzipbedingt zu einem unspezifischen Fehlerbild
führt.
- – Da
in dem erfindungsgemäßen System
das Zeitverhalten bereits während
der Ausführungsphase aufgezeichnet
wurde, ist es möglich,
auch in Echtzeitcode Breakpoints zu setzen bzw. diesen in Einzelschritten
auszuführen.
Die schrittweise Ausführung
stellt eines der mächtigsten
Werkzeuge bei der Fehlersuche überhaupt
dar, ist jedoch bei herkömmlichen
Echtzeitsystemen nicht einsetzbar.
- – Systeme
nach dem Stand der Technik enthalten vielfach Hardware-Debugressourcen
wie Programmbreakpoints, Datenbreakpoints und Trace-Einheiten. Diese
können
in dem erfindungsgemäßen System
in der Wiederholungsphase wie gewohnt verwendet werden. Da sich
das System bei allen Wiederholungen identisch verhält, können diese
Debugressourcen wesentlich effektiver eingesetzt werden: ein Zugriff
mit einem korrupten Zeiger wird jedesmal exakt dieselbe Speicherzelle überschreiben
sodass sich der fehlerhafte Zugriff einfach mit Hilfe eines Datenbreakpoints
feststellen läßt.
- – Da
sich das System auch bei vielfach wiederholten Ausführungen
stets identisch verhält,
ist es ein Leichtes, die bei den wiederholten Ausführungen gewonnenen
Daten zu korrelieren. Man kann bei der Fehlersuche von gesicherten
Tatsachen anstelle von Annahmen ausgehen und hat es dadurch mit
einem stehenden Ziel anstelle eines beweglichen Ziels zu tun.
- – Da
der Platzbedarf auf dem Chip für
die erfindungsgemäßen Komponenten
sehr gering ist, können
diese mit herkömmlichen
Ressourcen zur Fehlersuche koexistieren. Weil durch die erfindungsgemäßen Komponenten
andere Debuggingressourcen nicht beeinflußt werden, hat der Anwender
die Wahl, welches der Systeme er einsetzen möchte. Die Markteinführung kann
daher schrittweise geschehen und ist mit keinem Risiko verbunden.
Die Akzeptanz durch Anwender wird neben den hier beschriebenen konzeptionellen Vorteilen
dadurch erleichtert, daß bestehende
Debugtools weiter verwendet werden können. Die Methodik bei der
Fehlersuche ändert
sich für
den Anwender nur wenig.
- – Mit
zunehmender Integrationsdichte von SOCs (Multiprozessorsysteme)
laufen immer mehr Vorgänge
im Inneren des Systems ohne Interaktion mit dessen Umwelt ab. Bei
herkömmlichen
Systemen bedeutet das einen steigende Menge an Tracedaten. Bei dem
erfindungsgemäßen System hingegen
bedeutet es eine Abnahme der aufzuzeichnenden Daten D2.
- – Da
in einem herkömmlichen,
tracebasierten System die Tracedaten mit Hilfe von Filtern auf relevante
Daten reduziert werden, ist eine genaue Kenntnis des Systems zur
effektiven Steuerung der Filter notwendig. In komplexen Systemen
ist diese genaue Systemkenntnis oft nicht vorhanden sodass die Fehleranalyse
zu einer sprichwörtlichen „Suche
nach der Nadel im Heuhaufen" wird. Da
in einem erfindungsgemäßen System
alle Systemdetails beobachtet werden können, wird in vorteilhafter
Weise dieses Problem vermieden.
- – In
einem herkömmlichen,
trace-basieren System ist bereits vor dem Programmlauf zu entscheiden,
welche Teile man beobachten möchte. Das
geschieht notwendigerweise aufgrund von Annahmen über die
Fehlerursache und das Systemverhalten. Bei dem erfindungsgemäßen System
hingegen wird während
der Wiederholungsphase das Systemverhalten interaktiv, ausgehend vom
aktuellen Systemzustand analysiert. Dazu können beliebige Systemdetails
untersucht werden. Das stellt in der Praxis einen außerordentlich großen Vorteil
dar. Durch erneute Ablauf der Wiederholungsphase lassen sich beliebige
bereits vergangene Zustände
beobachten.
- – In
einer verlangsamten Wiederholungsphase können darüber hinaus beliebige Details
des Systemverhaltens aufgezeichnet werden, wie zum Beispiel alle
Speicherzugriffe und Programmverzweigungen. Mit Hilfe der gesammelten
Informationen läßt sich
ein Modell des Systemverhaltens erstellen, welches erlaubt, von
einer bestimmten Stelle im Programmfluß, in der Zeit rückwärts und vorwärts zu gehen.
Damit ist es auf einfachste Weise möglich die zeitlich zurückliegenden
Ursachen für
ein Fehlverhalten aufzuspüren.
Die Erstellung eines derartigen Modells ist mit herkömmlichen
tracebasierten Systemen nicht möglich,
da mehr Tracedaten anfallen würden
als in Echtzeit aufgezeichnet werden können.
- – In
herkömmlichen
Systemen gibt es wichtige Komponenten, die nicht in Echtzeit beobachtet werden
können,
da entweder die nötigen
Vorrichtungen fehlen (kundenspezifische Erweiterungen) oder die
Datenmenge zu hoch wäre.
Beispiele dafür
sind Systembusse und eigens entwickelte Spezialkomponenten. In dem
erfindungsgemäßen System
können
dagegen auch diese Bestandteile während der Wiederholungsphase
beobachtet werden.
- – Ein
weiterer Vorteil des erfindungsgemäßen Systems und Verfahrens
liegt darin, dass für
viele Systeme die Datenrate der aufzuzeichnenden Daten D2 deutlich
geringer ist, als für
eine Beobachtung in Echtzeit: Signalprozessoranwendungen verarbeiten
oft wenige MB an Eingabedaten pro Sekunde, während das Tracen von deren
Programmfluß bei
leicht einige hundert hundert MB pro Sekunde benötigt. Durch die Reduktion der Datenrate
können
Pins und damit Kosten gespart werden.
- – Schließlich besteht
ein Vorteil des erfindungsgemäßen Systems
auch in folgendem:
Ein Simulator (in Software und/oder Hardware)
für das
eingebettete System kann bei der Fehlersuche ähnliche Einblicke geben in
das Systemverhalten wie das erfindungsgemäße System. Der Simulator hat
demgegenüber
jedoch wesentliche Nachteile:
– Simulatoren sind meist auf
einen Prozessor beschränkt
und simulieren kein komplettes System
– Simulatoren verhalten sich
meist nicht exakt wie das System selbst
– die Zuführung von echten Eingabedaten
ist schwierig, was die Reproduktion sporadischer Fehler oft unmöglich macht
– Simulatoren
laufen meist um Größenordnungen langsamer
als das System selbst
– die
Entwicklung eines Simulators ist zeit- und kostenintensiv, insbesondere
bei einer großen Zahl
von Systemvarianten
– typischerweise
verfügen
Softwareentwickler nicht über
einen Systemsimulator Aufgrund dieser Nachteile ist ein System-Simulator
bei der Fehlersuche nur von eingeschränktem Nutzen. Das erfindungsgemäße System
vermeidet in vorteilhafter Weise diese Einschränkungen.
-
FIGURENBESCHREIBUNG
-
Die
Erfindung wird nun anhand der Figuren beschrieben.
-
Es
zeigt
-
1 eine
Ausführungsform
des erfindungsgemäßen Verfahrens.
-
2 eine
erste Ausführungsform
des erfindungsgemäßen Datenverarbeitungssystems,
-
3 eine
zweite Ausführungsform
des erfindungsgemäßen Datenverarbeitungssystems,
und
-
4 eine
dritte Ausführungsform
des erfindungsgemäßen Datenverarbeitungssystems,
-
Die
in 1 dargestellte Ausführungsform des erfindungsgemäßen Verfahrens
beginnt mit einem Anfangszustand AZ des Teilsystems (T) eines Datenverarbeitungssystems
(S), das anhand der 2 bis 4 beschrieben
wird. Das Teilsystem T geht von diesem Anfangszustand AZ in die
erste Bearbeitungsphase P1 (Ausführungsphase) über. Während der
Ausführungsphase
P1 werden dem Datenverarbeitungssystem S erste Daten D1 zugeführt und verarbeitet.
Die Bearbeitung der Daten D1 ist dabei der eigentliche Zweck des
Datenverarbeitungssystems. Parallel dazu werden zweite Daten D2
erzeugt, welche in einem Datenspeicher DS gespeichert werden. Wird
während
der Ausführungsphase
P1 ein Fehlverhalten des Datenverarbeitungssystems S beobachtet,
so geht das dieses in den Fehlerzustand F über.
-
Zur
Analyse der Fehlerursache wird das Datenverarbeitungssystem S für die Wiederholungsphase
P2 konfiguriert und das Teilsystem wieder in den Anfangszustand
AZ gebracht. Anschließend geht
das Teilsystem T in die zweite Bearbeitungsphase P2 (Wiederholungsphase) über. In
der Wiederholungsphase P2 werden dem Teilsystem T dritten Daten
D3 zur Verarbeitung zugeführt.
Die dritten Daten D3 sind von den zweiten Daten D2 abgeleitet, beispielsweise
durch das Entfernen von Informationen, die bei der weiteren Bearbeitung
nicht benötigt
werden. Die dritten Daten D3 sind dermaßen gestaltet, dass sich das
Teilsystem T bei deren Verarbeitung während der Wiederholungsphase
P2 identisch wie in der Ausführungsphase
P1 verhält.
Daher können in
der Wiederholungsphase P2 Informationen über das Systemverhalten gesammelt
werden, die das Auffinden von Fehlern ermöglichen. Werden weitere Beobachtungen
benötigt,
wird die Wiederholungsphase P2 erneut ausgeführt. Ansonsten geht das System
in den Endzustand ENDE über.
-
Die
in 2 dargestellte erste Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems
S besteht aus einem Teilsystem T und einer ersten Komponente KP1.
Weiterhin weist es eine zweite Komponente KP2 sowie ein Modul M
auf. Dem System S ist im ausgestellten Ausführungsbeispiel eine externe
Datenspeichereinrichtung DS zugeordnet. Das Modul M kann durch einen
Prozessor und/oder mindestens einen Speicher und/oder mindestens
ein weiteres Modul gebildet sein. Die Funktion der Komponenten KP1,
KP2 wird noch erläutert.
-
Das
Datenverarbeitungssystem S ist in der Weise ausgestaltet ist, dass
in der Ausführungsphase P1
ausgehend von einem Anfangszustand AZ des Teilsystems T in der Ausführungsphase
erste Daten D1 verarbeitet werden. Parallel dazu werden durch die
erste Komponente KP1 zweite Daten D2 erzeugt und mit Hilfe der Schnittstelle
IF dem Datenspeicher DS zugeführt.
In der Wiederholungsphase P2 werden ausgehend von dem Anfangszustand
AZ des Teilsystems T dritte Daten D3 verarbeitet. Die dritten Daten
D3 werden anhand der zweiten Daten D2 erzeugt und sind derart beschaffen,
dass sich das Teilsystem T im wesentlichen gleich verhält wie in
der ersten Bearbeitungsphase P1.
-
Wie
in 2 dargestellt, werden dem System S Daten D1 zugeführt, die
beispielsweise aus analog kodierten Gleitkommazahlen („4.231,
1.472, 9.123, 2.271, 3.112, 1.221, ...") bestehen. Das Modul M in 2 wird
im Folgenden als Analog-Digitalumsetzer interpretiert. Die analog
kodierten Daten D1 werden daher vom Modul M in digital kodierte
Ganzzahlen D1.1 („4,
1, 9, 2, 3, 1, ...")
umgewandelt, welche vom Teilsystem T verarbeitet werden. Die Komponente
KP1 sammelt die eingehenden Daten D1.1 und erzeugt aus diesen die
Daten D2, die mit den ersten Daten korrelieren. Die Daten D2 werden über die
Schnittstelle IF dem Datenspeicher DS zugeführt. Die Daten D2 korrelieren
mit den ersten Daten D1, die Eingabedaten und/oder Signale enthalten.
-
Die
zweiten Daten D2 weisen eine erste Gruppe von Daten D21 sowie eine
zweite Gruppe von Daten D22 auf, wobei die zweite Gruppe von Daten
D22 Zeitinformationen T1, T2, T3, T4 bezeichnet, die der ersten
Gruppe von Daten D21 zugeordnet sind. Die Zeitinformationen T1,
T2, T3, T4 geben an, zu welchem Zeitpunkt die korrespondierenden
Daten D1.1. dem System zugeführt
wurden.
-
Die
Zeitinformationen bezeichnen eine Anzahl von Takt- oder Bustransferzyklen,
eine Anzahl von Ereignissen, eine Zeitdauer und/oder einen Zeitpunkt.
-
Die
erste Gruppe von Daten D21 wird entsprechend der Zeitinformationen
verarbeitet.
-
Die
zweiten Daten D2 können
auch ohne zugeordnete Zeitinformationen verarbeitet werden.
-
Während der
Wiedergabephase P2 werden die Daten D3 aus dem Datenspeicher DS
geholt und der Komponente KP2 zugeführt. Die Komponente KP2 bearbeitet
die Daten D3 und führt
die dabei entstehenden Daten D3.1 („4, 1, 9, 2, 3, 1, ...") zum jeweils passenden
Zeitpunkt dem Teilsystem T zu. Dadurch wird erreicht, dass sich
das Teilsystem T in der Ausführungsphase
und in der Wiederholungsphase identisch verhält. Sowohl während der
Ausführungsphase
als auch während
der Wiedergabephase erzeugt das Teilsystem T Ausgabedaten AD. Das
Verhalten des Teilsystems T ist im wesentlichen unabhängig von
dem Verhalten der Komponente KP1. Die Komponenten KP1 und KP2 sind
in der ersten Bearbeitungsphase P1 und/oder in der zweiten Bearbeitungsphase
P2 aktivierbar oder deaktivierbar.
-
Der
Datenspeicher DS kann außerhalb
oder innerhalb des Datenverarbeitungssystems S angeordnet sein.
-
Das
Datenverarbeitungssystem S ist weiter in der Weise ausgestaltet
ist, dass die Komponente KP1 in der ersten Bearbeitungsphase die
ersten Daten D1 und/oder Daten D1.1 nicht verändert.
-
Insbesondere
werden das Teilsystem T und die Komponente KP2 durch dasselbe auslösende Ereignis
angehalten werden.
-
Die
in 3 dargestellte zweite Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems
S entspricht im wesentlichen der in 2 dargestellten
ersten Ausführungsform
und weist dementsprechend erste und zweite Komponenten KP1 und KP2
sowie ein Teilsystem T auf. Im Unterschied zur ersten Ausführungsform
enthält
das System der zweiten Ausführungsform
jedoch Module M1, M2, und M3. Die Module M1 und M2 sind im Teilsystems
T enthalten, während
sich das Modul M3 außerhalb
des Teilsystems T befindet. Die Interaktionen zwischen den Modulen
M1 und M2 werden deshalb während
der Wiederholungsphase P2 automatisch reproduziert. Die Interaktionen
des Moduls M3 mit dem Teilsystem T werden in der Ausführungsphase von
der Komponente KP1 als Daten D1.3 aufgezeichnet. In der Wiederholungsphase
führt die
Komponente KP2 mit den Daten D3 auch die zu D1.3 korrespondieren
Daten dem Teilsystem T zu.
-
Die
in 4 dargestellte dritte Ausführungsform des erfindungsgemäßen Datenverarbeitungssystems
S weist neben den Komponenten KP1, KP2 und dem Systemteil T weitere
Bestandteile auf. Hierzu gehören
die Systembusse B1 und B2, und die Peripheriemodule (engt. Peripheral)
PER1, PER2 und PER3. Diese Peripheriemodule verarbeiten hierbei Eingabedaten
D1 und legen die erzeugten Daten D1.1 auf den Systembus B1. Die
Komponente KP1 ist dermaßen
ausgeführt,
dass sie neben der Aufzeichnung der auf dem Bus B1 übertragenen
Daten D1.1, die Funktion einer Busbrücke zwischen den Bussen B1
und B2 erfüllt.
Das Teilsystem T enthält die
Module M1, M2, und M3, welche über
den Bus B2 untereinander und mit der Busbrücke BB verbunden sind. Während der
Wiederholungsphase führt
die Komponente KP2 die Daten D3 der Busbrücke BB zu, als ob diese vom
Bus B1 kommen würden.
Daher wird sich die Busbrücke
BB in der Wiederholungsphase bezüglich
Bus B2 identisch wie in der Ausführungsphase
verhalten und damit ebenso das Teilsystem T mit seinen Modulen M1,
M2 und M3. Des weiteren zeigt die 4 ein Peripheriemodul
PER4, das Ausgabedaten AD aus dem System ausgibt. Dieses kann dermaßen konfiguriert
werden, dass es in der in der Wiederholungsphase keine Ausgabedaten
AD ausgibt, sich aber hinsichtlich des Busses B2 unverändert verhält. Damit
werden Störungen
von Geräten vermieden,
die an das erfindungsgemäße System
S angeschlossen sind.
-
ZEITINFORMATIONEN IN DEN
DATEN D2
-
Es
ist Aufgabe der Komponente KP1 Daten D2 zu erzeugen, die es erlauben,
in der Wiederholungsphase P2 identisches Verhalten des Teilsystems
T zu erreichen. Die Daten D2 können
daher Zeitinformation enthalten, um diese zum richtigen Zeitpunkt
in das System einzugeben. Es sei beispielsweise das in 4 gezeigte
Peripheriemodul PER1 ein Bus-Master. Wenn dieses Peripheriemodul
PER1 in der Bearbeitungsphase P1 einen Bustransfer auslöst, muß dieser
auch in der Wiederholungsphase P2 zum richtigen Zeitpunkt ausgelöst werden.
In diesem Beispiel ist es zweckmäßig, die
bis zum Beginn des Bustransfers vergangenen Taktzyklen in Bearbeitungsphase
P1 zu zählen
und denselben Bustransfer in Bearbeitungsphase P2 nach derselben
Anzahl von Taktzyklen auszulösen.
In anderen Fällen
kann es zweckmäßig sein,
die vergangene physikalische Zeit, Zähler für abgeschlossene Bustransfers
oder beliebige andere Zähler
zu verwenden.
-
In
anderen Fällen
ist es nicht nötig,
Daten D2 mit Zeitinformationen zu versehen, beispielsweise wenn
Daten als Reaktion auf ein Systemereignis in das System eingeben
werden. Es sei beispielsweise das in 4 gezeigte
Peripheriemodul PER2 ein Bus-Slave. Das Peripheriemodul PER2 liefert
in der Ausführungsphase
nach einer Aufforderung durch einen Bestandteil des Teilsystems
T (meist ein Bus-Master) die gewünschten
Daten. Da der Busmaster im Teilsystem T enthalten ist, wird er in
der Wiederholungsphase zum richtigen Zeitpunkt dieselbe Aufforderung
erzeugen. Die Komponente KP2 erkennt diese Anforderung und beantwortet
diese mit Hilfe der Daten D3 anstelle des Peripheriemoduls PER2.
Da die Aufforderungen zum Datentransfer in der Phase P2 in derselben
Reihenfolge wie in der Phase P1 erzeugt werden, genügt es, diese
mit dem jeweils nächsten
Datenpaket zu beantworten. Eine Zeitinformation ist dazu nicht notwendig
und die Menge der Daten D2 bzw. D3 wird reduziert.
-
Da
die Komponente KP2 in der Wiederholungsphase P2 die Rolle des Peripheriemoduls
PER2 erfüllt,
muß letzteres
deaktiviert werden. Das kann geschehen, indem eine Adressleitung
während
der Ausführungsphase
permanent auf LOW und während
der Wiederholungsphase P2 permanent auf HI gezogen wird. Dadurch
wird die Adressdekodierungslogik des Peripheriemoduls P2 während der Wiederholungsphase
P2 nicht ansprechen und die Komponente KP2 kann die entsprechende
Aufforderung des Busmaster beantworten.
-
BEVORZUGTE
AUSFÜHRUNGSFORMEN
-
In
einer bevorzugten Ausführungsform
wird die Komponente KP2 dermaßen
gestaltet, dass sie während
der Wiederholungsphase P2 das Teilsystem T anhält, solange nicht genügend Daten
D3 zur Verarbeitung bereit stehen. Damit wird zwar die Ausführung verlangsamt,
aber das Ergebnis der Bearbeitung nicht beeinflusst. Gleichzeitig
bedeutet das, dass für
die Eingabe der Daten D3 keine Echtzeitanforderungen bestehen. Es
genügt,
wenn die maximale Bandbreite des Eingabekanals nahe an der durchschnittlich
benötigten
Bandbreite liegt. Es ist insbesondere nicht notwendig, den Eingabekanal
für Belastungsspitzen
auszulegen.
-
In
einer weiteren bevorzugten Ausführungsform
werden die Komponenten KP1 und KP2 an einen Systembus B1 angeschlossen.
Diese Ausführungsform
ist besonders vorteilhaft, wenn alle aufzuzeichnenden Daten D1 oder
D1.1 über
den Systembus B1 übertragen
werden. Dabei kann die Komponente KP1 abhängig von Quelle, Senke und
Adresse einer Transaktion die übertragenen
Daten aufzeichnen oder verwerfen: Daten, die zwischen deterministischen
Bestandteilen des Teilsystems T übertragen werden,
werden ebensowenig aufgezeichnet wie Ausgabedaten.
-
In
einer weiteren bevorzugten Ausführungsform
erfüllt
die Komponente KP1 neben der Aufzeichnung der Daten D1 oder D1.1
auch die Funktion eines herkömmlichen
Systembestandteils. Beispielsweise kann die Komponente KP1 die Funktion
einer Busbrücke übernehmen.
Ein Vorteil dieser Anordnung liegt darin, dass ein herkömmliches
System in das erfindungsgemäße System
S umgestaltet werden kann, indem die Busbrücke BB durch eine kompatible
Komponente KP1 ersetzt wird. Besonders vorteilhaft ist diese Ausführungsform
dann, wenn alle aufzuzeichnenden Daten D1 oder D1.1 über die
Busbrücke
BB übertragen
werden. In anderen Ausführungsformen
kann die Komponente KP1 die Funktion von Peripheriemodulen PER1,
PER2, PER3 übernehmen.
In einer weiteren bevorzugten Ausführungsform erfüllt eine
Komponente KP1 auch die Funktion der Komponenten KP2, also die Zuführung der
Daten D3 für
die Verarbeitung durch das Teilsystem T in der Wiederholungsphase.
-
In
einer weiteren bevorzugten Ausführungsform
enthält
das erfindungsgemäße Datenverarbeitungssystem
S mindestens ein Peripheriemodul PER4, das der Ausgabe von Ausgabedaten
AD dient. Dieses Peripheriemodul PER4 kann so konfiguriert werden,
dass es während
der Wiederholungsphase keine Ausgabedaten AD aus dem System ausgibt (zum
Beispiel indem Leitungen in einen Tristate-Zustand gebracht werden),
ohne dass sich dadurch das im Inneren des Systems S wahrgenommene
Verhalten verändert.
Damit werden in der Wiederholungsphase unerwünschte Einflüsse des
erfindungsgemäßen Systems
S auf dessen Umwelt vermieden (z.B. bei einer Motorsteuerung).
-
Das
erfindungsgemäße System
kann mehrere Komponenten KP11, KP12, ... und Komponenten KP21, KP22,
... enthalten. Diese können
zusammen zur Wiedergabe des Systemverhaltens eines Teilsystems T
verwendet werden oder unabhängig
von einander zur Wiedergabe des Systemverhaltens von verschiedenen
Teilsystemen T1, T2, ..., Tx.
-
Die
in das System eingegebenen Daten D3 können identisch mit den Daten
D2 sein. Alternativ kann außerhalb
des Systems (zum Beispiel in Software) eine Bearbeitung der Daten
erfolgen.
-
Dadurch
kann die Komplexität
der Komponenten KP1 und KP2 verringert oder die Eingabe der Daten
D3 in das System vereinfacht werden.
-
In
einer weiteren bevorzugten Ausführungsform
werden die Daten D2 nicht aus dem System ausgegeben, sondern in
einem Zwischenspeicher im Datenverarbeitungssystem S aufgezeichnet.
In der Wiederholungsphase werden die Daten aus dem Zwischenspeicher
ausgelesen und als Daten D3 zur Reproduktion des Systemverhaltens
verwendet. Der Vorteil dieser Ausführungsform liegt darin, dass
die Übertragungsbandbreite
zwischen den Komponenten KP1, KP2 und dem Zwischenspeicher sehr
hoch ist und nicht durch Pins limitiert wird.
-
In
einer weiteren bevorzugten Ausführungsform
des Systems werden die Daten D2 während der Ausführungsphase
aus dem System ausgegeben, auf einem externen Computer gespeichert
und in der Wiederholungsphase als Daten D3 in das System S eingespeist.
Typischerweise wird dazu der Computer verwendet, von dem die Entwicklungswerkzeuge
gesteuert werden. Der Vorteil dieser Ausführungsform liegt darin, dass
für die
Speicherung große
und billige Speichermedien (Festplatten) eingesetzt werden können.
-
SYSTEMPARTITIONIERUNG
-
Das
Prinzip des erfindungsgemäßen Systems
S beruht unter anderem darauf, die identische Wiedergabe von Systemverhalten
zu ermöglichen. Da
oft nur ein Teilsystem T des gesamten Systems bei der Fehlersuche
von Interesse ist, kann die Wiedergabe auf diesen Teil beschränkt werden.
Das Teilsystem T wird im allgemeinen zentrale Komponenten wie Prozessoren,
Busse und Speicher enthalten, nicht jedoch Schnittstellen wie Analog-Digitalwandler und
andere Peripheriemodule. Das Verhalten von Komponenten außerhalb
des Teilsystems T kann während
der Wiederholungsphase naturgemäß nicht untersucht
werden. Diese Einschränkung
ist unerheblich, da im allgemeinen Fehler der vom Teilsystem T ausgeführten Software
gesucht werden.
-
Durch
die Beschränkung
auf ein Teilsystem T werden der hardwareseitige Aufwand für die Implementierung
des erfindungsgemäßen Systems
und die aufzuzeichnende Datenmenge minimiert. Das in 2 gezeigte
erfindungsgemäße System
enthält ein
Modul M. Das Modul M kann z.B. ein Analog-Digitalwandler sein, der
aus analog kodierten Gleitkommazahlen D1 digital kodierte Ganzzahlen
D1.1. erzeugt. Da das Modul M nicht im Teilsystem enthalten ist,
müssen
die von ihm verarbeiteten Daten D1 nicht aufgezeichnet werden. Das
ist vorteilhaft, weil die Aufzeichnung von Analogdaten problematisch
ist (Quantisierungsfehler, Rauschen). Statt dessen werden die Daten
D1.1 aufgezeichnet, welche vom Teilsystem T verarbeitet werden.
Durch die Aufzeichnung der Ganzzahlen D1.1 wird außerdem die
aufzuzeichnende Datenmenge im Vergleich mit Gleitkommazahlen verringert.
-
Allgemein
lässt sich
feststellen, dass durch geeignete Wahl des Teilsystems T die aufzuzeichnende
Datenmenge verringert wird. Dazu ist es zweckmäßig, alle Module in das Teilsystem
T aufzunehmen, die viel miteinander kommunizieren. Diese Kommunikation
wird dann in der Wiederholungsphase automatisch wiederhergestellt
und muss in der Ausführungsphase
nicht aufgezeichnet werden. Beispielsweise kann Modul M3 in 3 als
(deterministischer) Prozessor interpretiert werden, der viel mit Modul
M1 kommuniziert. In diesem Fall wäre es besser, das Modul 3 in
das Teilsystem T aufzunehmen.
-
VERHALTEN
BEI SYSTEMIMMANENTEM NICHT-DETERMINISMUS
-
Ein
korrekt entworfenes digitales System sollte sich trotz variierender
Parameter wie Temperatur, Versorgungsspannung, etc. deterministisch
und von diesen Parametern unabhängig
verhalten. Dies wird durch Simulationen beim Design weitestgehend sichergestellt.
Dennoch kann (z.B. auch wegen der Möglichkeit von Bitfehlern in
Speichern) niemals garantiert werden, dass das System vollkommen
deterministisch arbeitet. Manche dieser Fehler werden das Systemverhalten
nicht verändern
(z.B. bei Fehlern in unbenutzten Speicherzellen) oder vom System
selbst korrigiert (z.B. durch Rekonstruktion von Speicherinhalten
bei Bitfehlern). Auch wenn also derartige Fehler nicht vollkommen
ausgeschlossen werden können,
maximiert das erfindungsgemäße System
die Wahrscheinlichkeit, in der Wiederholungsphase P2 ein für die Fehlersuche
hinreichend ähnliches
Systemverhalten zu erzeugen. Wegen der erfindungsgemäßen Vorrichtungen
ist die Wahrscheinlichkeit dafür
um viele Größenordnungen
höher,
als bei herkömmlichen
Systemen. Darüber
hinaus ist vollkommen identisches Systemverhalten zur Fehlersuche – wie die
bisherige Praxis zeigt – ohnehin
nicht notwendig.
-
NICHT-DETERMINISTISCHE
SYSTEMBESTANDTEILE
-
Das
erfindungsgemäße System
S setzt voraus, dass dieses im wesentlichen deterministisch arbeitet.
Es kann jedoch auch nicht-deterministische Bereiche enthalten, wenn
diese außerhalb
des Teilsystems T angeordnet sind: In dem in 3 dargestellten
erfindungsgemäßen System
kann das Modul M3 als Hardware-Zufallszahlen-Generator interpretiert
werden, der aus dem Rauschen an einer Diode Zufallszahlen erzeugt.
Diese Zufallszahlen werden in der Ausführungsphase P1 vom Teilsystem
T verarbeitet und von der Komponente KP1 aufgezeichnet. Die in der
Wiederholungsphase P2 vom Teilsystem T verarbeiteten Daten D3 enthalten
daher auch die von M3 erzeugten Zufallszahlen. Damit wird trotz
des nicht-deterministischen Moduls M3 ein identisches Verhalten
des Teilsystems T in den Phasen P1 und P2 erreicht.
-
EXTERNE DETERMINISTISCHE
KOMPONENTEN
-
Komponenten
wie ein SOC können
als Teilsystem T eines erfindungsgemäßen Systems S betrachtet werden;
es gibt jedoch auch vielfältige
andere Möglichkeiten.
So kann beispielsweise ein System bestehend aus einem SOC und einem
außerhalb
des SOC angeordneten RAM-Speicher
als Teilsystem T eines erfindungsgemäßen Systems S betrachtet werden.
Beide Teile werden zu Beginn der Bearbeitungsphasen in einen definierten
Ausgangszustand AZ gebracht. Der Speicher wir dabei zweckmäßigerweise mit
Nullen initialisiert. Während
der Ausführungsphase
schreibt das SOC in den RAM-Speicher und liest aus diesem. Da dieselben
Schreib- und Lesezugriffe auch während
der Wiederholungsphase stattfinden, ist es nicht notwendig, die
durch Schreiben und Lesen übertragenen
Daten aufzuzeichnen. Obwohl der RAM-Speicher nicht in der zentralen
Komponente SOC enthalten ist, erübrigt
sich also die Aufzeichnung der stattfindenden Interaktionen. Dadurch
ergibt sich in vorteilhafter Weise eine dramatische Reduktion der
aufzuzeichnenden Datenmenge. Verallgemeinernd läßt sich sagen, dass das Teilsystem
T das erfindungsgemäße System
S aus beliebigen physikalischen Komponenten oder Teilen davon bestehen
kann.
-
Bestimmte
Speichertypen wie Festplatten arbeiten hinsichtlich der gespeicherten
Daten deterministisch, weisen aber konstruktionsbedingt (Rotation, mechanisch
bewegte Schreibleseköpfe)
ein nicht-deterministisches Zeitverhalten auf. Bei der Verwendung
derartiger Komponenten in einem erfindungsgemäßes System genügt es, lediglich
deren Zeitverhalten aufzuzeichnen. Die eigentlichen Daten werden
während
der Wiederholungsphase direkt von der Festplatte gelesen. Die Voraussetzung
dafür ist,
dass die Festplatte zu Beginn der ersten und zweiten Bearbeitungsphasen
P1 und P2 jeweils dieselben Daten enthält.
-
NUTZUNG VORHANDENER
ENTWICKLUNGSWERKZEUGE
-
Zur
Fehlersuche in einem elektronischen System sind externe Werkzeuge – sogenannte
Debugger – notwendig.
Ein Debugger ermöglicht
es, ein elektronisches System anzuhalten und die inneren Zustände zu analysieren,
ohne dabei den Programmablauf zu verändern (mit Ausnahme von Echtzeitsystemen).
Die Entwicklung derartiger Werkzeuge ist mit erheblichem Aufwand
verbunden. Daher ist es wünschenswert,
vorhandene Debugger auch für
das erfindungsgemäße System
möglichst
ohne Anpassungen zu verwenden. Da sich das Teilsystem T in der Bearbeitungsphase
P2 identisch wie in der Phase P1 verhält, können auch dieselben Debugger
zur Systemanalyse verwendet werden.
-
Ein
Debugger hat die Möglichkeit,
ein elektronisches System zu dessen Untersuchung anzuhalten und
weiter laufen lassen. In einer vorteilhaften Ausführung des
erfindungsgemäßen Systems
S wird die Komponenten KP2 über
denselben Mechanismus angehalten und wieder gestartet wie das Teilsystem
T. In einer weiteren vorteilhaften Ausführung des erfindungsgemäßen Systems
S erkennt die Komponente KP2, wenn das Teilsystem T angehalten wurde und
stoppt die Zufuhr der Daten D3.
-
In
einer bevorzugten Ausführungsform
werden die in der Ausführungsphase
P1 erzeugten zweiten Daten D2 über
eine JTAG-Schnittstelle aus dem System ausgegeben. In einer weiteren
bevorzugten Ausführungsform
wird in der Ausführungsphase
P1 ein Traceport für
die Übertragung
der Daten D2 verwendet. In der Wiederholungsphase P2 wird der Traceport
in herkömmlicher
Weise zur Analyse des Systemverhaltens eingesetzt, da keine Daten
D2 ausgegeben werden müssen.
-
Da
Debugger üblicherweise über eine
JTAG Schnittstelle angeschlossen werden und keine Echtzeitanforderungen
für die Übertragung
der Daten D3 in der Wiederholungsphase bestehen, werden die Daten
D3 in einer bevorzugten Ausführungsform über eine
JTAG Schnittstelle in das System eingegeben.
-
Das
erfindungsgemäße Verfahren
in einem Datenverarbeitungssystem S mit
- – einem
Teilsystem T, das mindestens ein Modul, insbesondere einen Prozessor
und/oder mindestens einen Speicher und/oder mindestens ein weiteres
Modul, aufweist,
ist insbesondere in der Weise ausgestaltet, - – dass
in einer ersten Bearbeitungsphase P1 ausgehend von einem Anfangszustand
AZ des Teilsystem T erste Daten D1 verarbeitet werden,
- – dass
in der ersten Bearbeitungsphase P1 zweite Daten D2 durch mindestens
eine Komponente KP1 erzeugt werden,
- – dass
in einer zweiten Bearbeitungsphase P2 ausgehend von dem Anfangszustand
AZ des Teilsystem T dritte Daten D3 verarbeitet werden, die anhand
der zweiten Daten D2 erzeugt wurden, und
- – dass
in der zweiten Bearbeitungsphase P2 das Verhalten des Teilsystems
T im wesentlichen gleich dem Verhalten des Teilsystems T in der
ersten Bearbeitungsphase P1 ist.
-
Das
erfindungsgemäße Verfahren
ist weiter in der Weise ausgestaltet, dass die zweite Bearbeitungsphase
P2 während
erster Zeiträume
T11, T12, ... unterbrochen und in zweiten Zeiträumen T21, T22, ... fortgesetzt
wird, und dass das Verhalten des Teilsystems T in den zweiten Zeiträumen T21,
T22, ... im wesentlichen gleich dem Verhalten des Teilsystems T in
der ersten Bearbeitungsphase P1 ist.
-
Eine
weitere Komponente KP2 verarbeitet in der zweiten Bearbeitungsphase
P2 ausgehend von dem Anfangszustand AZ des Teilsystems T die dritten
Daten D3, die anhand der zweiten Daten D2 erzeugt wurden.
-
- S
- Datenverarbeitungssystem
- T
- Teilsystem
des Datenverarbeitungssystems S, das sich in der Wiederholungs
-
- phase
identisch wie in der Ausführungsphase
verhält
- KP1,
KP2
- erste
und zweite Komponenten
- DS
- Datenspeicher
für die
zweiten Daten D2
- IF
- Schnittstelle
- M,
M1, M2, M3
- Module,
welche die Funktionen des Datenverarbeitungssystems implementieren
- P1
- erste
Bearbeitungsphase (Ausführungsphase),
in der das System in Echtzeit und
-
- ohne
Unterbrechungen läuft
- P2
- zweite
Bearbeitungsphase (Wiederholungsphase), in der Verhalten des
-
- Teilsystems
T analysiert wird und dazu angehalten werden kann.
- AZ
- Anfangszustand,
in den das Teilsystem T vor den Bearbeitungsphasen P1 und
-
- P2
versetzt wird
- AD
- Vom
Teilsystem T erzeugte Ausgabedaten
- D1
- erste
Daten
- D1.1
- aus
den ersten Daten D1 durch ein Modul M oder Peripheriemodule PER1,
-
- PER2,
PER2 erzeugte Daten
- D2
- zweite
Daten
- D3
- dritte
Daten, die aus dem Datenspeicher DS ausgelesen werden
- D3.1
- aus
den dritten Daten D3 durch die Komponente KP2 erzeugte Daten, die
vom
-
- Teilsystem
T verarbeitet werden
- T11,
T12
- erste
Zeiträume
- T21,
T22
- zweite
Zeiträume
- B1,
B2
- erster
und zweiter Systembus
- PER1,
PER2, PER3
- Peripheriemodule
- BB
- Busbrücke
- ENDE
- Zustand
beim Abschluß der Fehlersuche
- F
- Zustand,
in dem ein Fehler beobachtet wurde
- S1
- Signale,
die vom System S verarbeitet werden