DE102005019336A1 - System und Verfahren zur Fehlersuche in elektronischen Systemen - Google Patents

System und Verfahren zur Fehlersuche in elektronischen Systemen Download PDF

Info

Publication number
DE102005019336A1
DE102005019336A1 DE200510019336 DE102005019336A DE102005019336A1 DE 102005019336 A1 DE102005019336 A1 DE 102005019336A1 DE 200510019336 DE200510019336 DE 200510019336 DE 102005019336 A DE102005019336 A DE 102005019336A DE 102005019336 A1 DE102005019336 A1 DE 102005019336A1
Authority
DE
Germany
Prior art keywords
data
processing system
subsystem
data processing
phase
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.)
Withdrawn
Application number
DE200510019336
Other languages
English (en)
Inventor
Oliver Oppitz
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE200510019336 priority Critical patent/DE102005019336A1/de
Publication of DE102005019336A1 publication Critical patent/DE102005019336A1/de
Withdrawn 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft ein Datenverarbeitungssystem S mit Einrichtungen zur Suche von Fehlern im Systemverhalten. Zu diesen Einrichtungen gehört ein Teilsystem T, das mindestens ein Modul, insbesondere einen Prozessor und/oder mindestens einen Speicher, aufweist. DOLLAR A Das Datenverarbeitungssystem ist in der Weise ausgestaltet, dass in einer ersten Bearbeitungsphase, ausgehend von einem Anfangszustand des Teilsystems, erste Daten D1 verarbeitet werden. Weiterhin werden in der ersten Bearbeitungsphase zweite Daten D2 durch mindestens eine Komponente KP1 erzeugt. DOLLAR A In einer zweiten Bearbeitungsphase werden, ausgehend von dem Anfangszustand des Datenverarbeitungssystems, dritte Daten D3 verarbeitet, die anhand der zweiten Daten D2 erzeugt wurden. In der zweiten Bearbeitungsphase ist das Verhalten des Teilsystems im Wesentlichen gleich dem Verhalten des Teilsystems in der ersten Bearbeitungsphase. DOLLAR A Dadurch lassen sich zum einen insbesondere sporadisch auftretende, fehlerhafte Abläufe reproduzieren und zum anderen das Systemverhalten ohne Einschränkung analysieren. Darüber hinaus können Programme mit Echtzeitanforderungen schrittweise und in vorgebbaren Geschwindigkeiten ausgeführt werden. Zugleich wird die Anzahl der für die Beobachtung nötigen Signalleitungen im System reduziert.

Description

  • 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

Claims (45)

  1. 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, – wobei das Datenverarbeitungssystem (S) in der Weise ausgestaltet ist, – dass in einer ersten Bearbeitungsphase (P1) ausgehend von einem Anfangszustand (AZ) des Teilsystems (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 Datenverarbeitungssystems (S) 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.
  2. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass das Datenverarbeitungssystem (S) in der Weise ausgestaltet ist, 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.
  3. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Datenverarbeitungssystem (S) eine weitere Komponente (KP2) aufweist, die in der zweiten Bearbeitungsphase (P2) ausgehend von dem Anfangszustand (AZ) des Teilsystems (T) die dritten Daten (D3) verarbeitet, die anhand der zweiten Daten (D2) erzeugt wurden.
  4. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass dem Datenverarbeitungssystem (S) eine Datenspeichereinrichtung (DS) zur Speicherung der in der ersten Bearbeitungsphase (P1) erzeugten zweiten Daten (D2) zugeordnet ist.
  5. Datenverarbeitungssystem nach Anspruch 4, dadurch gekennzeichnet, dass die Datenspeichereinrichtung (DS) innerhalb oder außerhalb des Datenverarbeitungssystems (S) angeordnet ist.
  6. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Datenverarbeitungssystem (S) eine Schnittstelle (IF) aufweist, über die die zweiten Daten (D2) ausgegeben werden.
  7. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Teilsystem (T) mit der mindestens einen Komponente (KP1) verbunden ist, und dass das Verhalten des Teilsystems (T) im wesentlichen unabhängig von dem Verhalten der mindestens einen Komponente (KP1) ist.
  8. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die ersten Daten (D1) mit den zweiten Daten (D2) korrelieren.
  9. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die zweiten Daten (D2) eine erste Gruppe von Daten (D21) sowie eine zweite Gruppe von Daten (D22) aufweisen, und dass die zweite Gruppe von Daten (D22) Zeitinformationen bezeichnet, die der ersten Gruppe von Daten (D21) zugeordnet sind.
  10. Datenverarbeitungssystem nach Anspruch 9, dadurch gekennzeichnet, dass die Zeitinformationen eine Anzahl von Takt- oder Bustransferzyklen, eine Anzahl von Ereignissen, eine Zeitdauer und/oder einen Zeitpunkt bezeichnen.
  11. Datenverarbeitungssystem nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass das Datenverarbeitungssystem (S) in der Weise ausgestaltet ist, dass die erste Gruppe von Daten (D21) entsprechend der Zeitinformationen verarbeitet wird.
  12. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die zweiten Daten (D2) ohne zugeordnete Zeitinformationen verarbeitet werden.
  13. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Datenverarbeitungssystem (S) in der Weise ausgestaltet ist, dass die mindestens eine Komponente (KP1) in der ersten Bearbeitungsphase die ersten Daten (D1) nicht verändert.
  14. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Datenverarbeitungssystem (S) in der Weise ausgestaltet ist, dass das Teilsystem (T) und die mindestens eine Komponente (KP2) durch dasselbe auslösende Ereignis angehalten werden.
  15. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die mindestens eine Komponente (KP1) innerhalb oder außerhalb des Datenverarbeitungssystems (S) angeordnet ist.
  16. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das weitere Modul ein Zufallszahlengenerator oder ein System-on-Chip ist.
  17. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die ersten Daten (D1) Eingabedaten und/oder Signale enthalten.
  18. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Datenverarbeitungssystem (S) mindestens einen Bus und/oder eine Busbrücke (BB) aufweist, die mit der mindestens einen Komponente (KP1) und/oder Komponente (KP2) verbunden ist.
  19. Datenverarbeitungssystem einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass es mindestens ein Peripheriemodul (PER4) aufweist, dass das Peripheriemodul (PER4) nur in der ersten Bearbeitungsphase Ausgabedaten (AD) ausgibt und in der Weise ausgestaltet ist, dass es sich im übrigen in der ersten und in der zweiten Bearbeitungsphase in gleicher Weise verhält.
  20. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die mindestens eine Komponente (KP1) zusätzlich zu ersten Funktionen, insbesondere die Erzeugung von zweiten Daten (D2), eine zweite Funktion realisiert, die einer Busbrücke (BB) oder einem Peripheriemodul (PER1, PER2, PER3) entspricht.
  21. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die mindestens eine Komponente (KP1, KP2) in der ersten und/oder zweiten Bearbeitungsphase aktivierbar oder deaktivierbar ist.
  22. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Erzeugung der Daten (D2) aus den ersten Daten (D1) durch die mindestens eine Komponente (KP1) abhängig ist von Datenquelle und/oder Datensenke der ersten Daten (D1).
  23. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Datenverarbeitungssystem (S) einen Traceport als Ausgabekanal für die zweiten Daten (D2) und/oder ein JTAG-Port als Eingabekanal für dritte Daten (D3) und/oder als Ausgabekanal für die zweiten Daten (D2) aufweist.
  24. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Datenverarbeitungssystem (S) in der Weise ausgestaltet ist, dass das Teilsystem (T) angehalten wird, solange nicht genügend dritte Daten (D3) zur Verarbeitung zur Verfügung stehen.
  25. Datenverarbeitungssystem nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Datenverarbeitungssystem (S) in der Weise ausgestaltet ist, dass in der zweiten Bearbeitungsphase (P2) Debug-Ressourcen, insbesondere Traceeinheiten und Vorrichtungen für Hardware-Breakpoints mitwirken.
  26. 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, – wobei das Verfahren in der Weise ausgestaltet ist, – 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.
  27. Verfahren nach Anspruch 26, dadurch gekennzeichnet, dass das Verfahren in der Weise ausgestaltet ist, 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.
  28. Verfahren nach Anspruch 26 oder 27, dadurch gekennzeichnet, dass eine weitere Komponente (KP2) in der zweiten Bearbeitungsphase (P2) ausgehend von dem Anfangszustand (AZ) des Datenverarbeitungssystems (S) die dritten Daten (D3) verarbeitet, die anhand der zweiten Daten (D2) erzeugt wurden.
  29. Verfahren nach einem der Ansprüche 26 bis 28, dadurch gekennzeichnet, dass in der ersten Bearbeitungsphase (P1) erzeugte zweiten Daten (D2) in einer Datenspeichereinrichtung (DS) gespeichert werden.
  30. Verfahren nach einem der Ansprüche 26 bis 29, dadurch gekennzeichnet, dass die zweiten Daten (D2) über eine Schnittstelle (IF) ausgegeben werden.
  31. Verfahren nach einem der Ansprüche 26 bis 30, dadurch gekennzeichnet, dass das Teilsystem (T) mit der mindestens einen Komponente (KP1) verbunden ist, und dass das Verhalten des Teilsystems (T) im wesentlichen unabhängig von dem Verhalten der mindestens einen Komponente (KP1) ist.
  32. Verfahren nach einem der Ansprüche 26 bis 31, dadurch gekennzeichnet, dass die ersten Daten (D1) mit den zweiten Daten (D2) korrelieren.
  33. Verfahren nach einem der Ansprüche 26 bis 32, dadurch gekennzeichnet, dass die zweiten Daten (D2) eine erste Gruppe von Daten (D21) sowie eine zweite Gruppe von Daten (D22) aufweisen, und dass die zweite Gruppe von Daten (D22) Zeitinformationen bezeichnet, die der ersten Gruppe von Daten (D21) zugeordnet sind.
  34. Verfahren nach Anspruch 33, dadurch gekennzeichnet, dass die Zeitinformationen eine Anzahl von Takt- oder Bustransferzyklen, eine Anzahl von Ereignissen, eine Zeitdauer und/oder einen Zeitpunkt bezeichnen.
  35. Verfahren nach Anspruch 33 oder 34, dadurch gekennzeichnet, dass das Verfahren in der Weise ausgestaltet ist, dass die erste Gruppe von Daten (D21) entsprechend der Zeitinformationen verarbeitet wird.
  36. Verfahren nach einem der Ansprüche 26 bis 34, dadurch gekennzeichnet, dass die zweiten Daten (D2) ohne zugeordnete Zeitinformationen verarbeitet werden.
  37. Verfahren nach einem der Ansprüche 26 bis 36, dadurch gekennzeichnet, dass das Verfahren in der Weise ausgestaltet ist, dass die mindestens eine Komponente (KP1) in der ersten Bearbeitungsphase die ersten Daten (D1) nicht verändert.
  38. Verfahren nach einem der Ansprüche 26 bis 37, dadurch gekennzeichnet, dass das Verfahren in der Weise ausgestaltet ist, dass das Teilsystem (T) und die mindestens eine Komponente (KP1) durch dasselbe auslösende Ereignis angehalten werden.
  39. Verfahren nach einem der Ansprüche 26 bis 38, dadurch gekennzeichnet, dass die ersten Daten (D1) Eingabedaten und/oder Signale enthalten.
  40. Verfahren nach einem der Ansprüche 26 bis 39, dadurch gekennzeichnet, dass die mindestens eine Komponente (KP1) zusätzlich zu ersten Funktionen, insbesondere die Erzeugung von zweiten Daten (D2), eine zweite Funktion realisiert, die einer Busbrücke (BB) oder einem Peripheriemodul (PER1, PER2, PER3) entspricht.
  41. Verfahren nach einem der Ansprüche 26 bis 40, dadurch gekennzeichnet, dass die mindestens eine Komponente (KP1, KP2) in der ersten und/oder zweiten Bearbeitungsphase aktivierbar oder deaktivierbar ist.
  42. Verfahren nach einem der Ansprüche 26 bis 41, dadurch gekennzeichnet, dass die mindestens eine Komponente (KP1) zweite Daten (D2) abhängig von Datenquelle und/oder Datensenke weiterleitet oder nicht weiterleitet.
  43. Verfahren nach Anspruch 42, dadurch gekennzeichnet, dass die mindestens eine Komponente (KP1) zweite Daten (D2), die auf einem Bus (B) übertragen werden, abhängig von Datenquelle und/oder Datensenke weiterleitet oder nicht weiterleitet.
  44. Verfahren nach einem der Ansprüche 26 bis 43, dadurch gekennzeichnet, dass das Verfahren in der Weise ausgestaltet ist, dass das Teilsystem (T) angehalten wird, solange dem Verfahren nicht genügend dritte Daten (D3) zur Datenverarbeitung zur Verfügung stehen.
  45. Verfahren nach einem der Ansprüche 26 bis 44, dadurch gekennzeichnet, dass das Verfahren in der Weise ausgestaltet ist, dass in der zweiten Bearbeitungsphase Debug-Ressourcen, insbesondere Traceeinheiten und Vorrichtungen für Hardware-Breakpoints, an einer Fehlerdiagnose mitwirken.
DE200510019336 2005-04-26 2005-04-26 System und Verfahren zur Fehlersuche in elektronischen Systemen Withdrawn DE102005019336A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200510019336 DE102005019336A1 (de) 2005-04-26 2005-04-26 System und Verfahren zur Fehlersuche in elektronischen Systemen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200510019336 DE102005019336A1 (de) 2005-04-26 2005-04-26 System und Verfahren zur Fehlersuche in elektronischen Systemen

Publications (1)

Publication Number Publication Date
DE102005019336A1 true DE102005019336A1 (de) 2006-11-09

Family

ID=37111237

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200510019336 Withdrawn DE102005019336A1 (de) 2005-04-26 2005-04-26 System und Verfahren zur Fehlersuche in elektronischen Systemen

Country Status (1)

Country Link
DE (1) DE102005019336A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325375A (en) * 1991-06-28 1994-06-28 Sun Microsystems, Inc. Method and apparatus for non-atomic level parity protection for storing data in a random access memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325375A (en) * 1991-06-28 1994-06-28 Sun Microsystems, Inc. Method and apparatus for non-atomic level parity protection for storing data in a random access memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
OPPITZ, Oliver: A Particular Bug Trap: Execution Replay Using Virtual Machines. In: M. Ronsse, K. De Bosschere (eds), proceedings of the Fifth International Workshop on Automated Debugging (AADEBUG 2003), September 2003, Ghent, Computer Research Repository *

Similar Documents

Publication Publication Date Title
EP1720100B1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE10333817B4 (de) Emulationsschnittstellensystem
DE69814997T2 (de) Durch programmierbare Logik gesteuerte Leistungszähler
DE3903835C2 (de)
DE102009058652A1 (de) Verfahren zur Beeinflussung eines Steuergerätes und Manipulationseinheit
DE102006041444B4 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
DE102014211245A1 (de) System zur Fehlersuche bei der Datenübertragung im DMA-System
DE102013015936A1 (de) Architektur zur ablaufprotokollbasierten Messung
DE3037475A1 (de) Schnittstellenschaltungsanordnung fuer eine datenverarbeitungsanlage
DE10244922B4 (de) Programmgesteuerte Einheit und Verfahren zum Debuggen von einer programmgesteuerten Einheit ausgeführten Programmen
DE10139660A1 (de) Programmgesteuerte Einheit
DE10213009A1 (de) Verfahren zum elektronischen Testen von Speichermodulen
DE102005019336A1 (de) System und Verfahren zur Fehlersuche in elektronischen Systemen
DE102006018922A1 (de) System und Verfahren zur Fehlersuche in elektronischen Systemen
DE202005006634U1 (de) System zur Fehlersuche in elektronischen Systemen
WO2000043885A1 (de) Verfahren zum tracen von daten
EP2567295B1 (de) Verfahren zum selektiven aufzeichnen, rekonstruieren und analysieren des programmlaufs eines steuerungsprogramms
WO2000063777A1 (de) Verfahren zum tracen in system on chip architekturen
DE102008064337B4 (de) Automatische Reproduzierung eines Anlagenverhaltens
DE60212455T2 (de) System und verfahren zum takten eines ip-core während einer fehlersuchoperation
DE10132313A1 (de) Programmgesteuerte Einheit
EP1283471A2 (de) Programmgesteuerte Einheit
EP1260905A2 (de) Programmgesteuerte Einheit
EP2866107B1 (de) Verfahren zum Wiedergeben des Ablaufs eines Programms eines Automatisierungsgerätes
EP1248197A2 (de) Verfahren zum Emulieren einer programmgesteuerten Einheit

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal