AT505630B1 - Einrichtung zum koordinierten testen und zur fehlersuche in verteilten eingebetteten mikroprozessorsystemen - Google Patents

Einrichtung zum koordinierten testen und zur fehlersuche in verteilten eingebetteten mikroprozessorsystemen Download PDF

Info

Publication number
AT505630B1
AT505630B1 AT1822008A AT1822008A AT505630B1 AT 505630 B1 AT505630 B1 AT 505630B1 AT 1822008 A AT1822008 A AT 1822008A AT 1822008 A AT1822008 A AT 1822008A AT 505630 B1 AT505630 B1 AT 505630B1
Authority
AT
Austria
Prior art keywords
unit
debug
test
recording
node
Prior art date
Application number
AT1822008A
Other languages
English (en)
Other versions
AT505630A4 (de
Inventor
Roland Hoeller
Original Assignee
Ver Fachhochschule Technikum W
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 Ver Fachhochschule Technikum W filed Critical Ver Fachhochschule Technikum W
Priority to AT1822008A priority Critical patent/AT505630B1/de
Priority to PCT/AT2009/000030 priority patent/WO2009097637A1/de
Application granted granted Critical
Publication of AT505630B1 publication Critical patent/AT505630B1/de
Publication of AT505630A4 publication Critical patent/AT505630A4/de

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/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Landscapes

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

Description

2 AT 505 630 B1
Die Erfindung betrifft eine Einrichtung zum koordinierten Testen und zur Fehlersuche in verteilten eingebetteten Mikroprozessorsystemen mit einer Mehrzahl von über ein Kommunikationsnetz verbundenen, eingebetteten Systemknoten, wobei die Systemknoten jeweils eine Recheneinheit, ein Uhrenmodul, eine Testeinheit, eine Debug-Einheit und eine Kommunikationsschnittstelle zur Kommunikation mit den jeweils anderen Systemknoten über das Kommunikationsnetz aufweisen.
Gesamtzustände und Abläufe können in einem verteilten System oft im Nachhinein nicht nachvollzogen werden. Eine Diagnose im Fehlerfall wird hierdurch erschwert. Verteilte Systeme teilen sich keinen gemeinsamen Speicher und müssen ihre gesamte Kommunikation deshalb durch das Versenden und Empfangen von Nachrichten realisieren. Eine solche Kommunikation ist sehr fehleranfällig, so dass es zu Problemen durch Verfälschung von Nachrichten, Duplizie-rung von Nachrichten und den Verlust von Nachrichten kommen kann. Außerdem ist die Nachrichtenlaufzeit unvorhersehbar, so dass man nie mit Sicherheit vorhersehen kann, ob ein System ausgefallen ist oder ob es nur eine lange Antwortzeit hat.
In verteilten Systemen ist es sehr schwierig oder in der Praxis sogar unmöglich, eine genaue Programmabfolge zu definieren. Einige Entwicklungssysteme verzichten daher auf den Einsatz von Laufzeit-Debuggern, lassen aber in der Regel die Definition von Haltepunkten zu, an dem der Zustand aller Variablen nach dem Programmstopp analysiert werden kann.
Das Echtzeit-Debbuging bietet in der Regel die Möglichkeit, den Code Zeile für Zeile abzuarbeiten und dabei die Zustände der verschiedensten Variablen zu überwachen. Häufig können zusätzlich Haltepunkte festgelegt und weitere Optionen genutzt werden, welche die Arbeit mit dem Code wesentlich vereinfachen. Die Schwierigkeit bei verteilten Systemen ist nun, dass der Code nicht wie gewohnt einfach nur auf einem Rechner ausgeführt wird, sondern auf verschiedensten Systemknoten. So muss ein entsprechendes Tool entferntes Debugging unterstützen und Debugging-Informationen von dem jeweils anderen Knoten anfordern.
Beim Offline-Debugging hingegen besteht die Fehlersuche in der Auswertung aufgezeichneter Informationen. Diese Informationen werden in der Regel mit Hilfe von Aufzeichnungseinheiten (trace-Einheiten) gewonnen bzw. von den Anwendungen selbst generiert.
Es sind bereits verschiedene Vorschläge bekannt geworden, um die Fehlersuche sowie das Testen, Überwachen und Wiedergeben von Programmanweisungen zu verbessern. In diesem Zusammenhang wurde auch das Thema der Uhrensynchronisation erforscht.
Die US 5,812,830 beschreibt eine einfache Schaltung zur Fehlersuche in Mikroprozessoren. Das vorgestellte System beinhaltet auch verschiedene Auslösemechanismen zur Abspeicherung interner Prozessorzustände.
Die DE 102004052861 A1 beschreibt ein Diagnosesystem zur Erkennung von Fehlzuständen, das als separates System realisiert wird. Es werden Nachrichtenwege im Diagnosesystem abgebildet. Synchronisierte Uhren, Unterstützung für eine Vielzahl von Knoten, und die Möglichkeit der Wiedergabe aufgezeichneter Daten werden nicht verwendet.
Die WO 2004/023302 A2 betrifft ein Verfahren zur Erkennung von Fehlern in einem verteilten Echtzeitcomputersystem. Der periodische Versand eines Statusbits, z.B. über ein rundenbasiertes Kommunikationsnetz, erlaubt es den Absturz eines Knotens zu erkennen und entsprechend zu reagieren. Es werden keine Einrichtungen oder dergleichen angeführt, die die Suche nach der Ursache eines Fehlers (z.B. durch Aufzeichnung oder Wiedergabe von Daten, oder durch spezielle Funktionen zur Fehlersuche) erkennen lassen.
Die EP 943995 A2 beschreibt einen Prozessor mit einer externen "real-time instruction inserti-on". Der Prozessor umfasst weitere Instruktionsquellen, wie eine Abholschleife, ein Unterbre- 3 AT 505 630 B1 chungsregister, einen Pipeline-Schutz und er ermöglicht externen Datenzugriff. Der Chip umfasst keine Testeinheit oder Wiedergabeeinheit. Es gibt auch eine Beeinträchtigung der Leistung wegen des Einfügens von NoOps in den Ausführungsprozess, um den Datenzugriff zu ermöglichen.
Das Dokument WO 2005/073855 A1 betrifft ein Datenverarbeitungssystem mit einem Debug-Modul, welches real-time-Debug-Nachrichten an eine DMA-Steuervorrichtung liefert.
Das US-Patent Nr. 6,769,076 betrifft ein "real-time processor debug System", welches die Aufzeichnung von Programmen und Daten eines virtuellen Bus eines eingebetteten Systems ermöglicht. Der Vorschlag umfasst die Reduktion der Stromaufnahme und die Reduktion der Auswirkung auf die Leistung des Gesamtsystems durch die Debug-Schnittstelle. Es wird eine integrierte Logik verwendet, welche den virtuellen Bus entsprechend der Adresse und des Betriebsmodus abspeichert. Dieses Patent ist somit auf das Aufzeichnen des internen virtuellen Bus eines eingebetteten Systems gerichtet. Dieses Patent befasst sich allerdings nicht mit verteiltem Debugging von eingebetteten Systemen.
Das US-Patent Nr. 7,080,283 ist auf ein Verfahren gerichtet, welches die Echtzeit-Aufzeichnung und Fehlerbehebung von Mehrfachprozessorkernen in einem System auf einem Chip ermöglicht. Es basiert auf einer zweckbestimmten Debug-Ausgabe jedes einzelnen Prozessorkernes. Die Debug-Information wird von einem oder mehreren Aufzeichnungsspeicherknoten für jeden Prozessorkern gespeichert. Die Aufzeichnungsspeicherkerne wiederum sind miteinander verbunden und bilden eine Daisy-Chain. Die Daisy-Chain endet bei einem Aufzeichnungskontroll-modul, welches die gewünschte Debug-Information speichert. Das Aufzeichnungskontrollmodul überträgt die Information auf einen externen Host-Agent über ein JTAG-Interface. Weiters können die Debug-Daten über Kompressionsknoten komprimiert werden, welche zwischen den Prozessorkernen und dem zumindest einen Aufzeichnungsspeicherknoten, welcher zwischen den Kernen angeordnet ist, liegen. All dieses befindet sich in einer SoC.
Die US 2007/0168731 A1 beschreibt ein Debug-Verfahren für Mikrokontroller, die auf geringe Auswirkung und geringe Kosten gerichtet ist. Es wird vorgeschlagen, eine Hardware-Unterstützung für 2-Kabelhochgeschwindigkeitskommunikation in zukünftigen Mikrokontrolleranwendungen zu verwenden. Diese 2-Kabelkommunikationsschnittstelle soll verwendet werden, um Debug-Daten zwischen dem Zielmikrokontroller und einem Linkmikrokontroller zu übertragen. Der Linkmikrokontroller ist auf demselben Chip wie der Zielmikrokontroller, ist jedoch durch eine EEPROM-Sicherung als Linkmikrokontroller konfiguriert. Der Linkmikrokontroller führt ein Schnittstellenübersetzungsprogramm aus, um eine Kommunikation zwischen dem Zielmikrokontroller und dem Host-Computer herzustellen.
Das europäische Patent Nr. 764903 betrifft einen "on-chip debug port" für VLSI-Prozessoren. Es umfasst eine Debug-Schaltung im gleichen integrierten Schaltkreis wie der anzusprechende Prozessor. Der Debug-Schaltkreis wird durch eine externe Debug-Workstation gesteuert, welche über einen externen Debug-Bus und ein externes Schnittstellenmodul mit der Schaltung verbunden ist. Die Debug-Schaltung umfasst eine Debug-Buseinheit, welche die Verbindung zum externen Debug-Bus schafft, eine Mehrzahl von Einheiten und zwei interne Busse, welche die Einheiten miteinander und mit der Debug-Buseinheit verbinden. Jede Einheit der Mehrzahl von Einheiten wiederum ist mit spezifischen Teilen des VLSI-Prozessors verbunden. Mit dieser Konfiguration ist es möglich, entweder Debug-Befehle zu zumindest einer der Mehrzahl von Einheiten zu senden oder Debug-Information von den Einheiten zu erhalten. Es sind Optionen möglich, wie z.B. Senden/Überwachen von Anweisungen des Prozessors, "real-time-Insertion/Extraktion" von Task-Daten, welche mit der Ausführung von Tasks auf dem Prozessor und der Überwachung des Programmablaufs betreffen.
Das US-Patent Nr. 6,324,684 beschreibt einen Prozessor, welcher eine Debug-Schaltung aufweist, die mit einem Debug-Host kommunizieren kann. Der Host kann "debug_halt-, 4 AT 505 630 B1 debug_step-, debug_run- und debug_release"-Befehle senden. Der Prozessor kann weiters Interrupts während des Debug-Modus so verarbeiten, dass das System in Betrieb nach Fehlem durchsucht werden kann, ohne die Verwendung eines Debug-Monitors, welcher wegen der Speicherung von Kontext und ähnlichem mehr RAM, ROM und System-Overhead benutzen würde.
Das US-Patent Nr. 6,470,388 beschreibt ein System, welches sich mit Debugging und Protokollierungsdiensten für eine verteilte Computerumgebung, die aus Workstations, Servern und anderen Netzwerkeinrichtungen besteht, beschäftigt. Die Protokollierungsdienste beinhalten herkömmliches Formatieren und herkömmliche Speicherung von Information für die Zwecke des Debugging. Die Protokollierungsdienste können Trace- und Debug-Information an eine zentrale Protokollierungseinrichtung senden, wo die Daten mit einem Zeitstempel versehen und in einer Datenbank gespeichert werden. Das beschriebene System umfasst die Protokollierung von Debug-Information in einem verteilten Computersystem, hat jedoch keine koordinierten Single-Step-, Zeitbestimmungs- oder Hardware-Level-Funktionen.
Die US 2006/0080575 A1 offenbart eine Uhrensynchronisation mit einem Hauptcomputer, Berechnung des Drift-Wertes, Berechnung der Übertragungsverzögerung, Hardware-Timestamping bei einer optionalen Sniffer-Einheit und optionale optische Verbindungen zwischen Knoten. Sie offenbart nicht die Unterstützung von Hardware-Tests mit Test-, Trace- oder Wiedergabefunktionen, BIST, JTAG oder koordinierte Wiedergabe und koordiniertes Single-Step.
Die US 2007/0061628 A1 beschreibt ein Verfahren zur Untersuchung entfernter Systeme und das Sammeln in Echtzeit von Debug-Daten in einem Mehrnotensystem. Bei diesem Verfahren werden Bausteine mit Sondenmaschinen überwacht, welche Auslösebedingungen detektieren, die ein automatisches Anhalten der Knoten und das Sammeln der verfügbaren Zustandsdaten verursachen. Diese Auslösebedingung werden jedoch statisch gesetzt und der Betreiber ist nicht in der Lage Debugging-Operatoren, wie beispielsweise koordiniertes Single-Step durchzuführen.
Das US-Patent Nr. 5,642,478 beschreibt ein Verfahren, um Trace-Daten in einem verteilten System zu akquirieren. Bei diesem Verfahren umfasst eine Knotensteuerung, welche die Aufgabe der Kommunikation mit anderen Knoten in dem System ausführt, eine Erfassungslogik, welche Trace-Daten in internen Speicherpuffern speichert. Derartige Trace-Daten werden dann regelmäßig einem externen Speicher zugeführt. Der Beginn und das Ende der Trace-Daten-Akquirierung werden durch andere Subkomponenten des Systems ausgelöst.
Die vorliegende Erfindung zielt nun darauf ab, verteiltes Debugging von eingebetteten Systemen zu ermöglichen und insbesondere einen koordinierten Zugang zu Teststrukturen sicherzustellen. Die Erfindung zielt weiters darauf ab, die Prozessorbelastung der Mikroprozessoren durch die Debugging-Aktivitäten möglichst nicht zu erhöhen. Weiters soll das Testen und die Fehlersuche ohne eine eigene Schnittstelle an den Systemknoten möglich sein.
Zur Lösung dieser Aufgaben zeichnet sich die Einrichtung der eingangs genannten Art zum koordinierten Testen und zur Fehlersuche in verteilten eingebetteten Mikroprozessorsystemen im wesentlichen dadurch aus, dass Mittel zur Synchronisation der Uhrenmodule der Systemknoten vorgesehen sind, dass die Systemknoten jeweils eine mit der Testeinheit und der De-bug-Einheit verbundene Entlastungseinheit aufweisen, sodass über die Kommunikationsschnittstelle eintreffende oder abgehende, dem Testen und der Fehlersuche dienende Datenpakete über die Entlastungseinheit versendet bzw. empfangen und ggf. verarbeitet werden können, und dass die Uhrenmodule mit der jeweiligen Testeinheit und der Debug-Einheit zum Einfügen von Zeitstempeln in Datenpakete und/oder zum Auslösen von Test- und/oder Debug-Vorgängen in Abhängigkeit von Uhrensignalen Zusammenwirken. Dadurch, dass Mittel zur Synchronisation der Uhrenmodule der Systemknoten vorgesehen sind, kann systemweit über 5 AT 505 630 B1 eine Vielzahl von Knoten eine koordinierte Aufzeichnung oder Wiedergabe komplexer Vorgänge oder ein koordinierter Zugang zu Teststrukturen erreicht werden. Durch das Vorsehen einer Entlastungseinheit wird die Möglichkeit geschaffen Kontrolldaten, welche die Test- und Debug-Einheit betreffen, zu extrahieren und Daten zur Analyse oder zum Versenden in den Kommunikationsstrom einzufügen, wodurch eine eigene Schnittstelle zur Test- und zur Debug-Einheit nicht erforderlich ist. Es werden somit spezielle Pakete aus dem Kommunikationsstrom herausgefiltert und von der Entlastungseinheit verarbeitet, sodass die Belastung der übrigen Komponenten der einzelnen Systemknoten und insbesondere die Prozessorbelastung der Mikroprozessoren nicht erhöht wird. Das Debugging kann durch die Erfindung weiters völlig ohne Prozessoreingriff gesteuert werden. Damit kann man beispielsweise einen Prozessor, der abgestürzt ist, entfernt wieder re-booten und in einen lauffähigen Zustand setzen.
Um zusätzliche Funktionalitäten zu realisieren, ist die Ausbildung bevorzugt derart weitergebildet, dass wenigstens ein Systemknoten eine Aufzeichnungseinheit zum Aufzeichnen von Systemvorgängen, wie z.B. von Rechenvorgängen der Recheneinheit oder von Systembusaktivitäten aufweist, die mit der Entlastungseinheit verbunden ist, sodass über die Kommunikationsschnittstelle eintreffende oder abgehende, die Aufzeichnungseinheit betreffende Datenpakete über die Entlastungseinheit versendet bzw. empfangen und ggf. verarbeitet werden können. Dabei kann bevorzugt vorgesehen sein, dass das Uhrenmodul mit der Aufzeichnungseinheit zum Auslösen und/oder Beenden einer Aufzeichnung in Abhängigkeit von Uhrensignalen zusammenwirkt, sodass Systemvorgänge in mehreren Systemkonten koordiniert aufgezeichnet und in der Folge für eine Fehlersuche herangezogen werden können.
Bei der Fehlersuche kann es oft von Vorteil sein, wenn aufgezeichnete oder vorgegebene Programmanweisungen oder Programmvorgänge gezielt einzelnen Systemkomponenten zur Verfügung gestellt bzw. "vorgespielt" werden, um das Verhalten der jeweiligen Komponenten analysieren zu können. In diesem Zusammenhang ist die Ausbildung bevorzugt derart weitergebildet, dass wenigstens ein Systemknoten eine Wiedergabeeinheit zum Wiedergeben von aufgezeichneten Systemvorgängen oder von Programmanweisungen aufweist, die mit der Entlastungseinheit verbunden ist, sodass über die Kommunikationsschnittstelle eintreffende oder abgehende, die Wiedergabeeinheit betreffende Datenpakete über die Entlastungseinheit versendet bzw. empfangen und ggf. verarbeitet werden können. Zur koordinierten Wiedergabe in mehreren Systemknoten kann die Ausbildung hierbei mit Vorteil derart getroffen sein, dass das Uhrenmodul mit der Wiedergabeeinheit zum Beginnen und/oder Beenden einer Wiedergabe in Abhängigkeit von Uhrensignalen zusammenwirkt.
Um die Kommunikation zwischen den einzelnen Komponenten zu vereinfachen, ist bevorzugt vorgesehen, dass die Recheneinheit, die Testeinheit, die Debug-Einheit sowie ggf. die Auf-zeichnungs- und die Wiedergabeeinheit an einen gemeinsamen Systembus angeschlossen sind, wobei mit Vorteil auch das Uhrenmodul an den Systembus angeschlossen ist.
Weiters kann vorgesehen sein, dass die Testeinheit in integrierten Schaltkreisen als Selbsttesteinheit für diese ausgebildet ist. Alternativ kann vorgesehen sein, dass die Testeinheit in integrierten Schaltkreisen als Zugang zu Teststrukturen im ganzen eingebetteten Systemknoten ausgebildet ist, wobei man die Testeinheit auch als JTAG Kontroller (also gleichsam "JTAG over Ethernet") für außerhalb des ICs liegende Bausteine verwenden kann. Praktische Anwendung wäre z.B. die Konfiguration eines FPGAs oder das Updaten von Software über die Entlastungseinheit, aber auch Test anderer Chips.
Gemäß einer bevorzugten Weiterbildung ist vorgesehen, dass eine Kontroll- und Steuereinheit im Kommunikationsnetz vorgesehen ist, welche zum Versenden von Test-, Debug-, Aufzeich-nungs-, und/oder Wiedergabebefehlen an einzelne Systemknoten ausgebildet ist.
Die Erfindung wird nun anhand von in den Zeichnungen dargestellten Ausführungsbeispielen näher erläutert. Dabei zeigt: 6 AT 505 630 B1
Fig. 1 ein funktionelles Blockdiagramm eines digitalen eingebetteten Systems, welches die Vorrichtung und das Verfahren der vorliegenden Erfindung enthält;
Fig. 2 ein funktionelles Blockdiagramm, welches die Entlastungseinheit des eingebetteten Systems von Fig. 1 entsprechend der vorliegenden Erfindung illustriert;
Fig. 3 ein funktionelles Blockdiagramm, welches die Uhreneinheit des eingebetteten Systems der Fig. 1 entsprechend der vorliegenden Erfindung illustriert;
Fig. 4 ein funktionelles Blockdiagramm, welches die Testeinheit des eingebetteten Systems der Fig. 1 entsprechend der vorliegenden Erfindung illustriert;
Fig. 5 ein funktionelles Blockdiagramm, welches die Wiedergabeeinheit des eingebetteten Systems der Fig. 1 entsprechend der vorliegenden Erfindung illustriert;
Fig. 6 ein funktionelles Blockdiagramm, welches die Aufzeichnungs- bzw. Trace-Einheit des eingebetteten Systems der Fig. 1 entsprechend der vorliegenden Erfindung illustriert; und Fig. 7 ein funktionelles Blockdiagramm, welches die Debug-Einheit des eingebetteten Systems der Fig. 1 entsprechend der vorliegenden Erfindung illustriert;
Fig. 1 zeigt ein digitales eingebettetes System 12, welches entsprechend der vorliegenden Erfindung verbessert ist. Das Knotensystem 12 enthält einen Systembus 28, einen Systemspeicher 18, einen oder mehrere Recheneinheiten bzw. Mikroprozessoren 14, eine Kommunikationsschnittstelle 16 und andere Schnittstellen 40, wie beispielsweise Sensoren oder Aktuatoren. Während des normalen Betriebes kommuniziert das System über die Kommunikationssteuerung 26 der Kommunikationsschnittstelle 16 mit anderen Systemknoten eines verteilten Mehrknotensystems, welche durch ein Netzwerk 20 verbunden sind. Ein gewisser Teil des Datenverkehrs und insbesondere Netzwerkpakete mit einer bestimmten Art von Inhalt werden jedoch nicht durch die Kommunikationssteuerung 26 an den Mikroprozessor weitergeleitet, sondern werden auf eine spezielle Entlastungseinheit 24 übertragen. Diese Entlastungseinheit 24 bildet gemeinsam mit der Uhreneinheit 30, einer Testeinheit 32, einer Wiedergabeeinheit 34, einer Trace-Einheit 36 und einer Debug-Einheit 38 eine funktionale Einheit 42. Alle Komponenten der Einheit 42 sind über einen Bus 22 zum Datenaustausch zwischen den Einheiten 30, 32, 34, 36 und 38 untereinander und zwischen den Einheiten 30, 32, 34, 36 und 38 und der Entlastungseinheit 24 verbunden. Über die Entlastungseinheit 24 ist es möglich, alle Einheiten 30, 32, 34, 36 und 38, welche über den Bus 22 verbunden sind, zu konfigurieren. Es ist weiters Aufgabe der vorliegenden Erfindung, die Uhreneinheit 30 gemeinsam mit der Entlastungseinheit 24 zu verwenden, um die Knoten eines Mehrknotensystems präzise zu synchronisieren. Die systemweit synchronisierte Uhr kann dann verwendet werden, um Testwiedergabe, Trace- und Debug-Funktionen simultan auf einer Mehrzahl von Knoten 12 des Mehrknotensystems, welches die Vorrichtung 42 der vorliegenden Erfindung aufweist, zu starten.
Fig. 2 zeigt Details der Entlastungseinheit entsprechend der vorliegenden Erfindung. Ein Frame-Filter 72 gestattet es, den Datenverkehr 64 herauszugreifen. Die Pakete werden in einem Empfangspuffer 70 gespeichert und ein spezieller Mikrokontroller 68 in der Entlastungseinheit extrahiert die Daten und Adressen des Pakets und gibt diese Daten über die Busschnittstelle 66 auf den Bus aus, welcher die Entlastungseinheit mit den anderen Einheiten 30, 32, 34, 36 und 38 verbindet. Wenn Daten gesendet werden müssen, wird ein entsprechendes Paket im Übertragungspuffer 74 durch den Mikroprozessor 68 platziert und in der Folge in den Datenverkehr 64 eingesetzt.
Fig. 3 zeigt die Uhreneinheit entsprechend der vorliegenden Erfindung. Eine Uhreneinheit 82, insbesondere eine additionsbasierende Uhreneinheit, wird durch einen Algorithmus in der Steuereinheit 88 und eine Busschnittstelle 86, welche mit anderen Uhren in dem Multiknotensystem synchronisiert werden muss, gesteuert. Eine Event-Triggereinheit 84 gestattet es, Events zu gegebenen Zeitpunkten zu triggern oder Aktivitäten mit einem Zeitstempel zu versehen.
Fig. 4 zeigt die Testeinheit entsprechend der vorliegenden Erfindung. On-chip-BIST-Strukturen

Claims (10)

  1. 7 AT 505 630 B1 110, ein JTAG-Kontroller 106 und eine Speicher-BIST bieten höchstmögliche Funktionalität für einen Knoten. Diese Einheit wird über eine Busschnittstelle 104 angesprochen. Fig. 5 zeigt die Wiedergabeeinheit entsprechend der vorliegenden Erfindung. Ein Wiedergabepuffer 126 kann die vorhergehenden Nachrichten speichern und eine Wiedergabesteuerung 128 kann diese Nachrichten in den Netzwerkverkehr für Debug-Zwecke in den Mikroprozessor des Knotens einsetzen. Die Einheit wird über eine Busschnittstelle 124 konfiguriert. Fig. 6 zeigt die Aufzeichnungs- bzw. Trace-Einheit entsprechend der vorliegenden Erfindung. Ein Aufzeichnungsspeicher 146 wird verwendet um interessierenden Busverkehr oder Mikroprozessoraktivitäten aufzuzeichnen. Diese Funktion wird durch die Trace-Steuerung 148 kontrolliert, die über eine Busschnittstelle 144 konfiguriert wird. Fig. 7 zeigt die Fehlersuch- bzw. Debug-Einheit entsprechend der vorliegenden Erfindung. Eine Debug-Schnittstelle 170 hat Zugriff auf Debug-Steuerleitungen 168 des Mikroprozessors des Knotens, um vollständigen Debug-Zugriff über die Debug-Steuerung 166 zu erhalten. Die Einheit wird über eine Busschnittstelle 164 konfiguriert. Es ist weiters ein Vorteil der vorliegenden Erfindung, dass die Einheiten für die Uhr 30, die Teststrukturen 32, die Wiedergabefunktionen 34, die Trace-Funktionen 36 und die Debug-Funktionen nahe beieinander liegen und als eine einzelne Einheit für koordiniertes Testen, koordinierte Wiedergabe und koordiniertes Debugging angesehen werden. Dies umfasst komplexe Triggers für Tracen, Debugging, Testen und Wiedergeben, beispielsweise dergestalt, dass das Tracen gestartet wird, nachdem ein gewisser Unterbrechungszustand in der Debug-Einheit 38 aufgetreten ist. Zusammenfassend ist festzuhalten, dass die erfindungsgemäße Einrichtung für koordinierten Test, Fehlersuche, Datenaufzeichnung und Datenwiedergabe in verteilten eingebetteten Mikroprozessorsystemen ohne eigene Schnittstelle auskommt. Debug-Möglichkeiten sind in eingebetteten Systemknoten eines verteilten Mehrknotensystems integriert, um Zugang zu Test Infrastruktur (z.B. Boundary-Scan oder Built-In Seif Test), Prozessoreinrichtungen zur Fehlersuche (z.B. Background Debugging Modul des Prozessors), Aufzeichnungen von Systemereignissen (z.B. Ablage von Systembusaktivitäten in einen lokalen Pufferspeicher), und Möglichkeiten zur Datenwiedergabe (z.B. Systembus oder Netzwerkverkehr) eines jeden Knotens zu erhalten. Der Zugang passiert über eine Kommunikationsschnittstelle, die mit einer Entlastungseinheit, welche Teil der im Knoten integrierten Einrichtung ist, ausgestattet ist. Die Entlastungseinheit extrahiert Kontrolldaten, die die Einheiten für Test, Fehlersuche, Datenaufzeichnung und Datenwiedergabe betreffen und fügt Daten zur Analyse oder zum Versenden in den Kommunikationsdatenstrom ein. Eine eigene Schnittstelle zu den Einheiten der Einrichtung ist nicht notwendig. Die exakte Koordination aller Knoten des Mehrknotensystems erfolgt durch Synchronisation der lokalen Uhren, durch welche die Einheiten für Test, Fehlersuche, Datenaufzeichnung und Datenwiedergabe angestoßen werden. Als Mikroprozessorsysteme sind im Rahmen der Erfindung auch Systeme von Mikrokontrollern zu verstehen. Patentansprüche: 1. Einrichtung zum koordinierten Testen und zur Fehlersuche in verteilten eingebetteten Mikroprozessorsystemen mit einer Mehrzahl von über ein Kommunikationsnetz verbundenen, eingebetteten Systemknoten, wobei die Systemknoten jeweils eine Recheneinheit (14), ein Uhrenmodul, eine Testeinheit, eine Debug-Einheit und eine Kommunikationsschnittstelle zur Kommunikation mit den jeweils anderen Systemknoten über das Kommunikationsnetz aufweisen, dadurch gekennzeichnet, dass die Uhrenmodule (30) der Systemknoten (12) synchronisiert sind, dass die Systemknoten (12) jeweils eine mit der Testeinheit (32) und der Debug-Einheit (38) verbundene Entlastungseinheit (24) aufweisen, 8 AT 505 630 B1 sodass über die Kommunikationsschnittstelle (16) eintreffende oder abgehende, dem Testen und der Fehlersuche dienende Datenpakete über die Entlastungseinheit (24) versendet bzw. empfangen und ggf. verarbeitet werden können, und dass die Uhrenmodule (30) mit der jeweiligen Testeinheit (32) und der Debug-Einheit (38) zum Einfügen von Zeitstempeln in Datenpakete und/oder zum Auslösen von Test- und/oder Debug-Vorgängen in Abhängigkeit von Uhrensignalen Zusammenwirken.
  2. 2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, dass wenigstens ein Systemknoten (12) eine Aufzeichnungseinheit (36) zum Aufzeichnen von Systemvorgängen, wie z.B. von Rechenvorgängen der Recheneinheit (14) oder von Systembusaktivitäten aufweist, die mit der Entlastungseinheit (24) verbunden ist, sodass über die Kommunikationsschnittstelle (26) eintreffende oder abgehende, die Aufzeichnungseinheit (36) betreffende Datenpakete über die Entlastungseinheit (24) versendet bzw. empfangen und ggf. verarbeitet werden können.
  3. 3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet dass das Uhrenmodul (30) mit der Aufzeichnungseinheit (36) zum Auslösen und/oder Beenden einer Aufzeichnung in Abhängigkeit von Uhrensignalen zusammenwirkt.
  4. 4. Einrichtung nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, dass wenigstens ein Systemknoten (12) eine Wiedergabeeinheit (34) zum Wiedergeben von aufgezeichneten Systemvorgängen oder von Programmanweisungen aufweist, die mit der Entlastungseinheit (24) verbunden ist, sodass über die Kommunikationsschnittstelle (16) eintreffende oder abgehende, die Wiedergabeeinheit (34) betreffende Datenpakete über die Entlastungseinheit (24) versendet bzw. empfangen und ggf. verarbeitet werden können.
  5. 5. Einrichtung nach Anspruch 4, dadurch gekennzeichnet, dass das Uhrenmodul mit der Wiedergabeeinheit (34) zum Beginnen und/oder Beenden einer Wiedergabe in Abhängigkeit von Uhrensignalen zusammenwirkt.
  6. 6. Einrichtung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Recheneinheit (14),- die-Testeinheit (32), die Debug-Einheit (38) sowie ggf. die Aufzeichnungs (36)- und die Wiedergabeeinheit (34) an einen gemeinsamen Systembus (22) angeschlossen sind.
  7. 7. Einrichtung nach Anspruch 6, dadurch gekennzeichnet, dass das Uhrenmodul (30) an den Systembus (22) angeschlossen ist.
  8. 8. Einrichtung nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Testeinheit (32) in integrierten Schaltkreisen als Selbsttesteinheit für diese ausgebildet ist.
  9. 9. Einrichtung nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass die Testeinheit (32) in integrierten Schaltkreisen als Zugang zu Teststrukturen im ganzen eingebetteten Systemknoten (12) ausgebildet ist.
  10. 10. Einrichtung nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass eine Kon-troll- und Steuereinheit im Kommunikationsnetz (20) vorgesehen ist, welche zum Versenden von Test-, Debug-, Aufzeichnungs-, und/oder Wiedergabebefehlen an einzelne Systemknoten (12) ausgebildet ist. Hiezu 7 Blatt Zeichnungen
AT1822008A 2008-02-05 2008-02-05 Einrichtung zum koordinierten testen und zur fehlersuche in verteilten eingebetteten mikroprozessorsystemen AT505630B1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AT1822008A AT505630B1 (de) 2008-02-05 2008-02-05 Einrichtung zum koordinierten testen und zur fehlersuche in verteilten eingebetteten mikroprozessorsystemen
PCT/AT2009/000030 WO2009097637A1 (de) 2008-02-05 2009-01-29 Einrichtung zum koordinierten testen und zur fehlersuche in verteilten eingebetteten mikroprozessorsystemen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
AT1822008A AT505630B1 (de) 2008-02-05 2008-02-05 Einrichtung zum koordinierten testen und zur fehlersuche in verteilten eingebetteten mikroprozessorsystemen

Publications (2)

Publication Number Publication Date
AT505630B1 true AT505630B1 (de) 2009-03-15
AT505630A4 AT505630A4 (de) 2009-03-15

Family

ID=40427617

Family Applications (1)

Application Number Title Priority Date Filing Date
AT1822008A AT505630B1 (de) 2008-02-05 2008-02-05 Einrichtung zum koordinierten testen und zur fehlersuche in verteilten eingebetteten mikroprozessorsystemen

Country Status (2)

Country Link
AT (1) AT505630B1 (de)
WO (1) WO2009097637A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113268031A (zh) * 2021-06-07 2021-08-17 深圳市蔚来芯科技有限公司 一种电子设备远程调试工具的***及方法
US20220413047A1 (en) * 2021-06-28 2022-12-29 Silicon Motion, Inc. Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (ssd) device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111290889B (zh) * 2018-11-21 2022-11-25 展讯通信(上海)有限公司 基于fpga的面向通用处理器的测试方法及***
CN112131085A (zh) * 2020-08-01 2020-12-25 青岛希望鸟科技有限公司 互联网业务过程记录与回放的方法、***及装置
CN113849399B (zh) * 2021-09-13 2023-06-30 北京计算机技术及应用研究所 多国产化平台下的多机协同软件的自动化测试***和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10118502C1 (de) * 2001-04-12 2002-08-08 Siemens Ag Verfahren zur Erfassung und Aufzeichnung von Systeminformationen und Abläufen in verteilten nebenläufigen komponentenbasierten Softwaresystemen
US6826717B1 (en) * 2000-06-12 2004-11-30 Altera Corporation Synchronization of hardware and software debuggers

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470388B1 (en) * 1999-06-10 2002-10-22 Cisco Technology, Inc. Coordinated extendable system for logging information from distributed applications
US6751573B1 (en) * 2000-01-10 2004-06-15 Agilent Technologies, Inc. Performance monitoring in distributed systems using synchronized clocks and distributed event logs
US7577540B2 (en) * 2002-03-01 2009-08-18 Nec Corporation Re-configurable embedded core test protocol for system-on-chips (SOC) and circuit boards
GB0420442D0 (en) * 2004-09-14 2004-10-20 Ignios Ltd Debug in a multicore architecture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826717B1 (en) * 2000-06-12 2004-11-30 Altera Corporation Synchronization of hardware and software debuggers
DE10118502C1 (de) * 2001-04-12 2002-08-08 Siemens Ag Verfahren zur Erfassung und Aufzeichnung von Systeminformationen und Abläufen in verteilten nebenläufigen komponentenbasierten Softwaresystemen

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HORAUER M, PRAPROTNIK O, ZAUNER M, HOLLER R, MILBREDT P *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113268031A (zh) * 2021-06-07 2021-08-17 深圳市蔚来芯科技有限公司 一种电子设备远程调试工具的***及方法
US20220413047A1 (en) * 2021-06-28 2022-12-29 Silicon Motion, Inc. Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (ssd) device
US11841398B2 (en) * 2021-06-28 2023-12-12 Silicon Motion, Inc. Method and apparatus and non-transitory computer-readable storage medium for debugging solid-state disk (SSD) device

Also Published As

Publication number Publication date
WO2009097637A1 (de) 2009-08-13
AT505630A4 (de) 2009-03-15

Similar Documents

Publication Publication Date Title
DE10333817B4 (de) Emulationsschnittstellensystem
DE3903835C2 (de)
US6598178B1 (en) Peripheral breakpoint signaler
DE69834892T2 (de) Eingebetteter Logikanalysator
CN112148515B (zh) 一种故障定位方法、***、装置、介质和设备
EP0318768B1 (de) Logikanalysator
DE112020000036T5 (de) Automatisierte prüfeinrichtung zum prüfen eines oder mehrerer prüfobjekte, verfahren zum automatisierten prüfen eines oder mehrerer prüfobjekte und computerprogramm unter verwendung eines pufferspeichers
AT505630B1 (de) Einrichtung zum koordinierten testen und zur fehlersuche in verteilten eingebetteten mikroprozessorsystemen
EP1720100A1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE202017106508U1 (de) Synchrone Hardware-Ereignis-Sammlung
DE3786381T2 (de) Prüfverfahren und -gerät für ein verteiltes Verarbeitungssystem.
DE68922440T2 (de) Gerät und Verfahren zur gleichzeitigen Einreichung von Fehlerunterbrechung und Fehlerdaten zu einem Unterstützungsprozessor.
DE102012224276B4 (de) Verzögerte Ausführung auf mehreren Prozessoren
DE60118089T2 (de) Abtastschnittstelle mit Zeitmultiplexmerkmal zur Signalüberlagerung
EP0297492A2 (de) Verfahren zur Prüfung eines Netzwerkaufbaus
DE3037475A1 (de) Schnittstellenschaltungsanordnung fuer eine datenverarbeitungsanlage
EP2648100A1 (de) Vorrichtung zur Prozessorüberwachung und Automatisierungsgerät mit einer solchen Vorrichtung
WO2003023616A2 (de) Verfahren zum debuggen rekonfigurierbarer architekturen
DE102013022137A1 (de) Mehrstufige Ablaufprotokollierung
EP1379953B1 (de) Programmgesteuerte einheit
WO2015180932A1 (de) Verfahren zum rechnergestützten testen eines technischen systems
DE19951541C1 (de) Integrierter elektronischer Baustein mit duplizierter Kernlogik und Hardware-Fehlereinspeisung für Prüfzwecke
US20040133388A1 (en) Apparatus and method for state selectable trace stream generation
EP1224480B1 (de) Programmgesteuerte einheit und verfahren zum erkennen und/oder analysieren von fehlern in programmgesteuerten einheiten
CN118132359B (en) Method and device for diagnosing automatic downtime of server

Legal Events

Date Code Title Description
MM01 Lapse because of not paying annual fees

Effective date: 20230205