[go: up one dir, main page]

DE102006004988A1 - Verfahren und Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten - Google Patents

Verfahren und Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten Download PDF

Info

Publication number
DE102006004988A1
DE102006004988A1 DE200610004988 DE102006004988A DE102006004988A1 DE 102006004988 A1 DE102006004988 A1 DE 102006004988A1 DE 200610004988 DE200610004988 DE 200610004988 DE 102006004988 A DE102006004988 A DE 102006004988A DE 102006004988 A1 DE102006004988 A1 DE 102006004988A1
Authority
DE
Germany
Prior art keywords
mode
units
execution units
analysis unit
subsystem
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
DE200610004988
Other languages
English (en)
Inventor
Reinhard Weiberle
Bernd Mueller
Eberhard Boehl
Yorck Collani
Rainer Gmehlich
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE200610004988 priority Critical patent/DE102006004988A1/de
Publication of DE102006004988A1 publication Critical patent/DE102006004988A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3648Debugging of software using additional hardware

Landscapes

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

Abstract

Verfahren und Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten, die in mindestens zwei verschiedenen Modi in dem Rechnersystem konfigurierbar sind, wobei wenigstens zwei Ausführungseinheiten in einem Performanzmodus als einem ersten Modus arbeiten und mindestens ein zweiter Modus als Vergleichsmodus vorgesehen ist und dass zur Analyse und/oder Beeinflussung von Zuständen und Abläufen in allen Ausführungseinheiten Analyseeinheiten, insbesondere Debug-Unterstützungseinheiten, verwendet werden, dadurch gekennzeichnet, dass die Vorrichtung wenigstens eine Analyseeinheit mehr enthält als die maximale Anzahl der Ausführungseinheiten, die im Performanzmodus unabhängig voneinander arbeiten.

Description

  • Stand der Technik
  • Transiente Fehler, ausgelöst durch Alpha-Teilchen oder kosmische Strahlung, werden zunehmend ein Problem für integrierte Halbleiterschaltungen. Durch abnehmende Strukturbreiten, sinkende Spannungen und höhere Taktfrequenzen nimmt die Wahrscheinlichkeit zu, dass eine Ladungsänderung, hervorgerufen durch ein Alpha-Teilchen oder kosmische Strahlung, einen logischen Wert in einer integrierten Schaltung verfälscht. Ein falsches Berechnungsresultat kann die Folge sein. In sicherheitsrelevanten Systemen, insbesondere im Kraftfahrzeug, müssen solche Fehler daher zuverlässig detektiert werden.
  • Bei sicherheitsrelevanten Systemen, wie z.B. einem ABS-Regelsystem in einem Kraftfahrzeug, in denen Fehlfunktionen der Elektronik sicher detektiert werden müssen, werden bei den entsprechenden Steuereinrichtungen solcher Systeme üblicherweise Redundanzen zur Fehlererkennung eingesetzt. So ist beispielsweise in bekannten ABS-Systemen jeweils der komplette Mikrocontroller dupliziert, wobei die gesamten ABS-Funktionen redundant berechnet und auf Übereinstimmung geprüft werden. Tritt eine Diskrepanz der Ergebnisse auf, so wird das ABS-System abgeschaltet.
  • Ein Mikrocontroller besteht einerseits aus Speichermodulen (z.B. RAM, ROM, Cache), aus einem Prozessor (CPU, Core) und aus Ein-/Ausgangs-Schnittstellen, so genannten Peripherals (z.B. A/D-Wandler, CAN-Schnittstelle). Da Speicherelemente mit Prüfcodes (Parity oder ECC) effektiv überwacht werden können, und Peripherals oft anwendungsspezifisch als Teil eines Sensor- oder Aktor-Signalpfades überwacht werden, besteht ein weiterer Redundanzansatz in der alleinigen Verdopplung der Cores eines Mikrocontrollers.
  • Solche Mikrocontroller mit wenigstens zwei integrierten Cores sind auch als Dual-Core Architekturen bekannt. Beide Cores führen redundant und taktsynchron (Lockstep-Modus) das gleiche Programmsegment aus, die Ergebnisse der beiden Cores werden verglichen, und ein Fehler wird dann bei dem Vergleich auf Übereinstimmung erkannt werden. Diese Konfiguration eines Dual-Core Systems kann als Vergleichsmodus bezeichnet werden.
  • Dual-Core Architekturen werden in anderen Anwendungen auch zur Leistungssteigerung, also zu einer Performanz-Steigerung eingesetzt. Beide Cores führen unterschiedliche Programme, Programmsegmente und Befehle aus, wodurch sich eine Leistungssteigerung erzielen lässt, weshalb diese Konfiguration eines Dual-Core Systems als Performanzmodus bezeichnet werden kann. Dieses System wird auch als ein symmetrisches Multiprozessorsystem (SMP) bezeichnet. Eine Erweiterung dieser Systeme ist eine Umschaltung durch Software zwischen diesen beiden Modi mittel eines Zugriffs auf eine spezielle Adresse und spezialisierter Hardware-Vorrichtungen. Im Vergleichsmodus werden die Ausgangsignale der Cores miteinander verglichen. Im Performanzmodus arbeiten die beiden Cores als ein symmetrisches Mehrprozessorsystem (SMP) und führen unterschiedliche Programme, Programmsegmente oder Befehle aus.
  • Bei der Entwicklung von Software für einen μC ist es notwendig, die Auswirkungen von bestimmten Programmschritten genau verfolgen zu können und Testmodi zu verwenden, um während der Entwicklung Fehler in der SW zu erkennen. Dazu werden Debug-Konzepte verwendet. Im Stand der Technik gibt es für die bisher eingeführten Dual Core Architekturen, die entweder rein im Lockstep oder rein im SMP-Betrieb laufen, Debug-Konzepte für die Software-Entwicklung.
  • Für ein umschaltbares System ist aus dem Stand der Technik kein Debug-Konzept bekannt. Da die Umschaltung aber insbesondere bei Test oder Fehlersuche besonders zu berücksichtigen ist, ist es notwendig, ein dediziertes Debug-Konzept für ein umschaltbares System zu entwickeln.
  • Vorteile der Erfindung
  • Ein Vorteil gemäß Anspruch 1 liegt darin, dass in einem Rechnersystem mit mehreren Ausführungseinheiten oder Komponenten, die in mindestens zwei verschiedenen Modi in dem System konfigurierbar sind, die sich dadurch unterscheiden, dass in dem einem Modus mindestens zwei Komponenten in einem Performanzmodus arbeiten, indem diese Komponenten unterschiedliche Eingangs-Signale zu unterschiedlichen Ausgangssignalen verarbeiten und in einem mindestens zweiten Modus diese Komponenten in einem Vergleichsmodus gleiche Eingangssignale zu gleichen Ausgangssignalen verarbeiten, und in dem zur Analyse und/oder Beeinflussung der Zustände und Abläufe in allen Ausführungseinheiten oder Komponenten Analyseeinheiten, insbesondere Debug-Unterstützungseinheiten verwendet werden, mehr Analyseeinheiten vorhanden sind als Ausführungseinheiten oder Komponenten in einem Performanz-Modus unabhängig voneinander arbeiten können und damit verschiedene Modi des Systems besser beobachtbar und beeinflussbar sind.
  • Ein weiterer Vorteil des Systems ist, dass dabei allen Ausführungseinheiten oder Komponenten, die in mindestens einem ersten Modus des besagten Rechnersystems nicht mit anderen Ausführungseinheiten oder Komponenten in einem Vergleichsmodus zusammenarbeiten, jeweils eine Analyseeinheit zugeordnet ist, die Zustände und Abläufe in dieser Ausführungseinheit oder Komponente beobachten und/oder beeinflussen kann.
  • Ein zusätzlicher Vorteil ist, dass in dem Fall, dass in mindestens einem zweiten Modus des Rechnersystems mindestens zwei Ausführungseinheiten oder Komponenten als ein temporäres Teilsystem in einem Vergleichsmodus zusammenarbeiten und diesem Teilsystem eine weitere Analyseeinheit zugeordnet ist, die Zustände und Abläufe in diesem Teilsystem beobachten und/oder beeinflussen kann.
  • Ein weiterer Vorteil ist, dass eine Beobachtung und/oder Beeinflussung der Zustände und Abläufe aller Ausführungseinheiten des Teilsystems, das in einem Vergleichsmodus zusammenarbeitet, durch die Analyseeinheit synchron erfolgen kann.
  • Ein weiterer Vorteil ergbit sich daraus, dass zusätzliche Mittel enthalten sind, die eine Aktivierung und/oder Deaktivierung von Analyseeinheiten abhängig von den Betriebsmodi des Rechnersystems und/oder weiterer vorgebbarer Bedingungen ermöglichen.
  • Vorteilhaft ist weiterhin, dass in dem System mindestens ein Modus Signal, vorzugsweise ein Core Modus Signal, eine Umschaltung der Aktivität wenigstens einer der Analyseeinheiten veranlassen kann.
  • Weiterhin vorteilhaft ist, dass durch Steuersignale mindestens einer Analyseeinheit eine Umschaltung der Aktivität wenigstens einer weiteren Analyseeinheit erfolgen kann.
  • Es ist weiterhin vorteilhaft, dass bei einem System mit einem aktiven Vergleichsmodus eines Teilsystems die dem Teilsystem zugeordneten Analyseeinheit aktiv ist und die Analyseeinheiten der dem Teilsystem zugeordneten Ausführungseinheiten oder Komponenten nicht aktiv sind. Weiterhin ist auch vorteilhaft, dass in dem System zusätzlich die Zustände oder einzelnen Einganssignale der Ausführungseinheiten oder Komponenten und/oder der Vergleichsmittel von mindestens einer Analyseeinheit beeinflusst werden können und die Zustände oder Ausgangssignale dieser beeinflussten Einheiten von dieser oder einer anderen Analyseeinheit beobachtbar sind.
  • Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung.
  • Figuren
  • In 1 ist ein Multiprozessorsystem mit zwei Ausführungseinheiten G140a und G140 sowie den zugehörigen Analyseeinheiten, insbesondere Debug-Unterstützungseinheiten G100a und G100b und der Debug-Unterstützungseinheit G110.
  • In 2 ist ein Multiprozessorsystem mit zwei Ausführungseinheiten G140a und G140b sowie den zugehörigen Analyseeinheiten, insbesondere Debug-Unterstützungseinheiten G100a und G100b und der Debug-Unterstützungseinheit G110. Weiter enthalten ist eine Debug-Unterstützungsmanagmenteinheit G170 und eine Umschalt- und Vergleichseinheit G200.
  • In 3 ist ein Multiprozessorsystem mit zwei Ausführungseinheiten G140a und G140b sowie den zugehörigen Debug-Unterstützungseinheiten G100a und G100b und der Debug-Unterstützungseinheit G110. Weiter enthalten ist eine Debug-Unterstützungsmanagmenteinheit G170 und eine Umschalt- und Vergleichseinheit G200. Das System arbeitet hier in einem Performanzmodus.
  • In 4 ist ein Multiprozessorsystem mit zwei Ausführungseinheiten G140a und G140b sowie den zugehörigen Debug-Unterstützungseinheiten G100a und G100b und der Debug-Unterstützungseinheit G110. Weiter enthalten ist eine Debug-Unterstützungsmanagementeinheit G170 und eine Umschalt- und Vergleichseinheit G200. Das System arbeitet hier in einem Vergleichsmodus.
  • In 5 ist ein allgemeiner Fall der Umschalt- und Vergleichskomponente, auch für die Verwendung für mehr als zwei Ausführungseinheiten gezeigt.
  • In 6 ist die allgemeine Form des Modussignals dargestellt.
  • In 7 ist ist ein Multiprozessorsystem G150 mit zwei Ausführungeinheiten G140a und G140b sowie einer alternativer Impementierung zweier Debung Unterstützungseinheiten G300 und G310 dargestellt.
  • In 8 ist ist ein Multiprozessorsystem G150 mit zwei Ausführungeinheiten G140a und G140b sowie einer Debug-Unterstützungseinheit G400 dargestellt.
  • Beschreibung der Ausführungsbeispiele
  • Eine Ausführungseinheit kann im Folgenden sowohl einen Prozessor/Core/CPU, als auch eine FPU (Floating Point Unit), DSP (Digitaler Signalprozessor), Coprozessor oder ALU (Arithmetic logical Unit) bezeichnen. Weiterhin wird unter einer Komponente eine Einheit aus mindestens einer Ausführungseinheit verstanden, die in einer festen Art und Weise miteinander verschaltet sind und demzufolge in einem festen Modus zusammenarbeiten.
  • Unter Debug-Unterstützungseinheit wird eine Einheit verstanden, die eine Ausführungseinheit, eine Komponente oder ein Teilsystem aus mehreren Ausführungseinheiten oder Komponenten und Vergleichern durch geeignete Signale beeinflussen kann und durch andere geeignete Signale eine Information über Zustände und/oder Abläufe von den Ausführungseinheiten, Komponenten, Vergleichern oder Teilsystemen mittelbar oder unmittelbar zurückerhält und damit diese durch die Debug-Unterstützungseinheit beobachtbar sind.
  • Ein allgemeiner Fall der Umschalt- und Vergleichskomponente, auch für die Verwendung in Prozessorsystemen mit mehr als zwei Ausführungseinheiten, ist in 5 gezeigt. Von den n zu berücksichtigenden Ausführungseinheiten gehen n Signale N140,..., N14n an die Umschalt- und Vergleichskomponente N100. Diese kann bis zu n Ausgangssignale N160,..., N16n aus diesen Eingangssignalen erzeugen. Im einfachsten Fall, dem „reinen Performanzmodus", werden alle Signale N14i auf die entsprechenden Ausgangssignale N16i geleitet. Im entgegen gesetzten Grenzfall, dem „reinen Vergleichsmodus" werden alle Signale N140,..., N14n nur auf genau eines der Ausgangssignale N16i geleitet.
  • An dieser Figur lässt sich darlegen, wie die verschiedenen denkbaren Modi entstehen können. Dazu ist in dieser Figur die logische Komponente einer Schaltlogik N110 enthalten. Diese legt zunächst fest, wie viele Ausgangssignale es überhaupt gibt. Weiter legt die Schaltlogik N110 fest, welche der Eingangssignale zu welchem der Ausgangssignale beitragen. Dabei kann ein Eingangssignal zu genau einem Ausgangssignal beitragen. In mathematischer Form anders formuliert ist also durch die Schaltlogik eine Funktion definiert, die jedem Element der Menge {N140,..., Nl4n} ein Element der Menge {N160,..., N16n} zuordnet.
  • Die Verarbeitungslogik N120 legt dann zu jedem der Ausgänge N16i fest, in welcher Form die Eingänge zu diesem Ausgangsignal beitragen. Um beispielhaft die verschiedenen Variationsmöglichkeiten zu beschreiben, sei ohne Beschränkung der Allgemeinheit angenommen, dass der Ausgang N160 durch die Signale N141,..., N14m erzeugt wird. Falls m = 1 entspricht dies einfach einer Durchschaltung des Signals, falls m = 2 dann werden die Signale N141, N142 verglichen. Dieser Vergleich kann synchron oder asynchron durchgeführt werden, er kann bitweise oder nur auf signifikante Bits oder auch mit einem Toleranzband durchgeführt werden.
  • Falls m >= 3 gibt es mehrere Möglichkeiten.
  • Eine erste Möglichkeit besteht darin alle Signale zu vergleichen und bei Vorhandensein mindestens zweier verschiedener Werte einen Fehler zu detektieren, den man optional signalisieren kann.
  • Eine zweite Möglichkeit besteht darin, dass man eine k aus m –Auswahl vornimmt (k > m/2). Diese kann durch Verwendung von Vergleichern realisiert werden. Optional kann ein Fehlersignal generiert werden, wenn eines der Signale als abweichend erkannt wird. Ein möglicherweise verschiedenes Fehlersignal kann generiert werden, wenn alle drei Signale verschieden sind.
  • Eine dritte Möglichkeit besteht darin, diese Werte einem Algorithmus zuzuführen. Dies kann beispielsweise die Bildung eines Mittelwerts, eines Medianwert, oder die Verwendung eines fehlertoleranten Algorithmus (FTA) darstellen. Ein solcher FTA beruht darauf, Extremwerte der Eingangswerte wegzustreichen und eine Art der Mittelung über die restlichen Werte vorzunehmen. Diese Mittelung kann über die gesamte Menge der restlichen Werte, oder vorzugsweise über eine in HW leicht zu bildenden Teilmenge vorgenommen werden. In diesem Fall ist es nicht immer notwendig, die Werte tatsächlich zu vergleichen. Bei der Mittelwertbildung muss beispielsweise nur addiert und dividiert werden, FTM, FTA oder Median erfordern eine teilweise Sortierung. Gegebenenfalls kann auch hier bei hinreichend großen Extremwerten optional ein Fehlersignal ausgegeben werden Diese verschiedenen genannten Möglichkeiten der Verarbeitung mehrerer Signale zu einem Signal werden der Kürze wegen als Vergleichsoperationen bezeichnet.
  • Die Aufgabe der Verarbeitungslogik ist es also, die genaue Gestalt der Vergleichsoperation für jedes Ausgangssignal – und damit auch für die zugehörigen Eingangssignale – festzulegen. Die Kombination der Information der Schaltlogik N110 (d.h. die o.g. Funktion) und der Verarbeitungslogik (d.h. die Festlegung der Vergleichsoperation pro Ausgangssignal, d.h. pro Funktionswert) ist die Modusinformation und diese legt den Modus fest. Diese Information ist im allgemeinen Fall natürlich mehrwertig, d.h. nicht nur über ein logisches Bit darstellbar. Nicht alle theoretisch denkbaren Modi sind in einer gegebenen Implementierung sinnvoll, man wird vorzugsweise die Zahl der erlaubten Modi einschränken. Zu betonen ist, dass im Fall von nur zwei Ausführungseinheiten, wo es nur einen Vergleichsmodus gibt, die gesamte Information auf nur ein logisches Bit kondensiert werden kann.
  • Eine Umschaltung von einem Performanz- in einen Vergleichsmodus ist im allgemeinen Fall dadurch charakterisiert, dass Ausführungseinheiten, die im Performanzmodus auf verschiedene Ausgänge hin abgebildet werden, im Vergleichsmodus auf den gleichen Ausgang hin abgebildet werden. Vorzugsweise ist dies dadurch realisiert, dass es ein Teilsystem von Ausführungseinheiten gibt, bei dem im Performanzmodus alle Eingangssignale N14i, die im Teilsystem zu berücksichtigen sind, direkt auf korrespondierende Ausgangssignale N16i geschalten werden, während sie im Vergleichsmodus alle auf ein Ausgang hin abgebildet sind. Alternativ kann eine solche Umschaltung auch dadurch realisiert werden, dass Paarungen geändert werden. Es ist dadurch dargestellt, dass man im allgemeinen Fall nicht von dem Performanzmodus und dem Vergleichsmodus sprechen kann, obwohl man in einer gegebenen Ausprägung der Erfindung die Menge der erlaubten Modi so einschränken kann, dass dies der Fall ist. Man kann aber immer von einer Umschaltung vom Performanz- in den Vergleichsmodus (und umgekehrt) sprechen.
  • Die Fehlerschaltungslogik N130 sammelt die Fehlersignale und kann optional die Ausgänge N16i passiv schalten, indem sie beispielsweise über einen Schalter unterbrochen werden.
  • Das Modus Signal ist in einer allgemeinen Form in der 6 dargestellt. Die Signale und Komponenten N110, N120, N130, N140, N141, N142, N143, N14n, N160, N161, N162, N163, N16n der Umschalt- und Vergleichskomponente N200 haben die gleiche Bedeutung wie in der der Umschalt- und Vergleichskomponente N100 in 5. Darüber hinaus ist das Modussignal N150 und das Fehlersignal N170 in dieser Figur eingezeichnet. Das optionale Fehlersignal wird von der Fehlerschaltungslogik N130, die die Fehlersignale sammelt, generiert und ist entweder eine direkte Weiterleitung der Einzelfehlersignale oder eine Bündelung der darin enthaltenen Fehlerinformation. Das Modussignal N150 ist optional, seine Verwendung außerhalb dieser Komponente kann aber an vielen Stellen vorteilhaft verwendet werden. Die Kombination der Information der Schaltlogik N110 (d.h. die o.g. Funktion) und der Verarbeitungslogik (d.h. die Festlegung der Vergleichsoperation pro Ausgangssignal, d.h. pro Funktionswert) ist die Modusinformation und diese legt den Modus fest. Diese Information ist im allgemeinen Fall natürlich mehrwertig, d.h. nicht nur über ein logisches Bit darstellbar. Nicht alle theoretisch denkbaren Modi sind in einer gegebenen Implementierung sinnvoll, man wird vorzugsweise die Zahl der erlaubten Modi einschränken. Das Modussignal bringt dann die relevante Modusinformation nach außen. Eine HW-Implementierung ist vorzugsweise so dargestellt, dass das extern sichtbare Modussignal konfiguriert werden kann. Vorzugsweise sind ebenfalls die Verarbeitungslogik und die Schaltlogik konfigurierbar gestaltet. Vorzugsweise sind diese Konfigurationen aufeinander abgestimmt. Alternativ kann man auch nur oder ergänzend Änderungen des Modussignals nach außen geben. Dies hat insbesondere in einer Zweierkonfiguration Vorteile.
  • Im Folgenden wird hauptsächlich ein System mit zwei Ausführungseinheiten beschrieben. In 1 ist ein Zweiprozessorsystem dargestellt. Falls sich das Zweiprozessorsystem in einem Performanzmodus befindet, werden auf den verschiedenen Ausführungseinheiten G140a und G140b diesem Modus entsprechend unterschiedliche Befehle, Programmsegmente oder Programme berechnet. Die Kopplung zwischen den Prozessoren ist dabei nur lose gegeben. In diesem Fall werden die Ausführungseinheiten G140a und G140b vorzugsweise über die Debug-Unterstützungseinheiten G100a und G100b und über die Debug Schnittstellen G120a und G120b „debuggt". Dabei wird die Ausführungseinheit G140a über die Debug Schnittstelle G120a und die Debug-Unterstützungseinheit G100a „debuggt". Die Ausführungseinheit G140b wird über die Debug Schnittstellen G120b und die Debug-Unterstützungseinheiten G100b „debuggt". Dies bedeutet, dass über diese Einheiten und über weitere, nicht eingezeichnete Kommunikationseinrichtungen, die internen Zustände, insbesondere interne Register der Ausführungseinheiten, einem externen Programm (einem sogenannten „Debugger"), das auf einem sogenannten Host Rechner abgearbeitet wird, übermittelt werden. Dies geschieht, der Natur des „debuggen" gemäß, während der Abarbeitung von Programmen auf den zu „debuggenden" Ausführungseinheiten G140a, G140b. Der Debugger ist gemäß der allgemeinen Funktionsweise eines „Debuggers", neben dem Beobachten von Zuständen, auch dazu in der Lage, die internen Zustände der zu „debuggenden" Ausführungseinheiten G140a und G140b über die Schnittstellen G120a und G120b sowie den Debug-Unterstützungseinheiten G100a und G100b zu verändern, diese anzuhalten, oder nach einem Anhalten, diese auch wieder zu starten.
  • Im Vergleichsmodus bearbeiten die Ausführungseinheiten G140a und G140b in einer bevorzugten Variante die gleichen Befehle taktsynchron oder mit einem definierten Taktversatz. Die Ausgangssignale der Ausführungseinheiten G140a und G140b werden dem Vergleichsmodus entsprechend verglichen. Bei einem Unterschied dieser Signale wird auf einen Fehler erkannt. Falls in diesem Modus eine Veränderung der internen Zustände oder ein Anhalten der Ausführungseinheiten G140a und G140b über eine der Debug-Unterstützungseinheiten G100a und G100b erfolgt, wird vom Vergleicher (nicht in der Figur dargestellt) auf einen Fehler erkannt. In diesem Fall wird bevorzugt das „Debugging" der Ausführungseinheiten G140a und G140b über die Debug-Unterstützungseinheiten G110 und die Debug Schnittstellen G130a und G130b erfolgen. Dabei wird die Ausführungseinheit G140a über die Debug Schnittstelle G130a, und die Ausführungseinheit G140b über die Debug Schnittstellen G130b von der Debug-Unterstützungseinheiten G110 „debuggt". Die Debug-Unterstützungseinheit G110 ist dazu in der Lage, die Zustände der beiden Ausführungseinheiten G140a und G140b gleichzeitig anzuzeigen. Sie kann auch gleichzeitig Zustände ändern, die Ausführungseinheiten anhalten oder wieder anstarten. In diesem Fall verhalten sich die Ausführungseinheiten G140a und G140b auch bei einem Eingriff aus Debugging Gründen synchron, so dass kein Unterschied entsteht, den der Vergleicher erkennt.
  • Diesem Vorschlag liegt damit die konzeptionelle Idee zu Grunde, dass es sich bei einem Zweiprozessorsystem, die im Betrieb zwischen einem Performanz- und einem Vergleichsmodus umschalten können, um drei getrennt zu „debuggende" Einheiten handelt. Im Performanzmodus sind dabei die Ausführungseinheiten G140a und G140b als separate Ausführungseinheiten zu betrachten, im Vergleichsmodus ist der synchrone Betrieb dieser beiden Ausführungseinheiten als eine logische Ausführungseinheit G150 zu behandeln. Entsprechend diesem Konzept wird für die logische Ausführungseinheit G150 eine separate Debug-Unterstützungseinheiten G110 eingesetzt. Diese Debug-Unterstützungseinheiten G110 ist dabei dazu in der Lage, gleichzeitig die beiden physikalischen Ausführungseinheiten G140a und G140b über die Debug Schnittstellen G130a und G130b zu beeinflussen und die Zustände dieser einem externen Programm („Debugger") zur Verfügung zu stellen.
  • In 7 ist ein alternatives Ausführungsbeispiel dargestellt. Es sind wieder zwei Ausführungseinheiten G140a und G140b eines Zweiprozessorsystems G150 dargestellt. Entgegen der bisher beschriebenen Ausführungsform werden allerdings nur zwei Debug Unterstützungseinheiten G300 und G310 benutzt um die Ausführungseinheiten G140a und G140b zu debuggen. Dabei wird zum debuggen der Ausführungseinheit G140a nur die Debug-Unterstützungseinheit G300 über die Debug-Schnittstelle G320 benutzt während die Ausführungseinheit G140b sowohl über die Debug-Unterstützungseinheit G300 und die Schnittstelle G330 als auch mit der Debug-Unterstützungseinheit G310 und die Schnittstelle G340 debuggt werden kann. Die Debug-Unterstützungseinheit G300 ist dabei in der Lage Eingriffe in die beiden Ausführungseinheiten G140a und G140b gleichzeitig auszuführen, damit im Vergleichsmodus, wie schon beschrieben, nicht auf einen Fehler erkannt wird. Die Debug-Unterstützungseinheit G300 hat damit die Funktion der Debug-Unterstützungseinheit G110 und G100a aus 1 übernommen.
  • In einer weiteren Ausführungsform dargestellt in 8 kann auch auf die Verwendung der Debug-Unterstützungseinheit G310 verzichtet werden und nur eine Debug-Unterstützungseinheit G400 verwendet werden. Dabei wird die Ausführungseinheit G140a über die Debug Schnittstelle G410 debuggt und die Ausführungseinheit G140b über die Debug Schnittstelle G420. Die Debug-Unterstützungseinheit G400 vereinigt dann die Funktionalitäten der Debug-Unterstützungseinheit G100a, G100b und G110 aus 1.
  • In einer Verallgemeinerung des Beispiels von 1 kann jede der Ausführungseinheiten G140a und G140b auch als eine Komponente ausgeführt sein, die mehrere Ausführungseinheiten enthält, die fest miteinander verschaltet sind und in einem bestimmten Modus (zum Beispiel einem Vergleichsmodus) miteinander zusammenarbeiten. Diese Komponente unterscheidet sich bezüglich der Ein- und Ausgangssignale nicht grundsätzlich von einer Ausführungseinheit, sondern gibt ggf. nur zusätzliche Signale, wie ein Fehler- oder mehrere Statussignale aus und hat möglicherweise zusätzliche Eingangssignale zu Testzwecken. Eine solche Komponente kann auch in allen folgenden Varianten eine Ausführungseinheit ersetzen.
  • Im folgenden werden weitere Alternativen bzw. Erweiterungen eines Debug-Konzepts beschrieben. Diese Beschreibungen beziehen sich auf die in 1 beschriebene Ausführungsform, können aber entsprechend auf die in 7 und 8 beschriebenen Ausführungsformen erweitert bzw. angepasst werden.
  • In einer Erweiterung, wie in den Zeichnungen 2, 3, 4 dargestellt, wird zusätzlich zu der Debug-Unterstützungseinheit G110 eine Debug-Unterstützungsmanagementeinheit G170 vorgeschlagen. 2 stellt dabei den allgemeinen Fall dar, in 3 wird die Ausprägung im Performanzmodus detailliert dargestellt, in 4 wird die Ausprägung im Vergleichsmodus detailliert dargestellt.
  • Die Debug-Unterstützungsmanagementeinheit G170 stellt per Hardware, abhängig vom Modus, in dem das System arbeitet, sicher, dass nur die Debug-Unterstützungseinheiten benutzt werden, die in diesem Modus auch sinnvoll zu benutzen sind. Die Debug-Unterstützungsmanagementeinheit G170 benutzt dazu ein Core Modus Signal G180 (entspricht N150 aus 6), das von einer Umschalt- und Vergleichseinheit G200 (entspricht N200 aus 6) geliefert wird.
  • In einer bevorzugten Implementierung wird die Debug-Unterstützungsmanagementeinheit G170 im Performanzmodus nur ein „Debugging" der Ausführungseinheiten G140a und G140b erlauben. Sie benutzt dazu die Debug-Unterstützungseinheiten G100a und G100b sowie die Debug Schnittstellen G120a, G190a und G120b, G190b.
  • Im Vergleichsmodus erlaubt die Debug-Unterstützungsmanagementeinheit G170 dagegen ein „debugging" der logischen Ausführungseinheit G150 nur über die Debug-Unterstützungseinheit G110. Die logische Ausführungseinheit G150 besteht dabei aus den Ausführungseinheiten G140a und G140b. Die Debug-Unterstützungseinheit G110 verwendet dabei nur die Debug Schnittstellen G160 und G190a zum Debuggen von Ausführungseinheit G140a, und sie verwendet nur die Debug Schnittstellen G160 und G190b zum Debuggen von Ausführungseinheit G140b.
  • Weiter kann die Debug-Unterstützungsmanagementeinheit G170 auch dazu benutzt werden um die Umschalt- und Vergleichseinheit G200 zu testen. Dies wird erreicht indem im Vergleichsmodus durch die Einheit G170 absichtlich unterschiedliche Zustände in den Ausführungseinheiten G140a und G140b eingestellt werden. Diese unterschiedlichen Zustände bewirken dann, dass der Vergleicher bei der Abarbeitung entsprechender Befehle, die diese Zustände auswerten um ein Ausgangssignal zu berechnen, einen Unterschied entdecken muss und damit ein Fehlersignal erzeugt. Dies kann zum Beispiel erreicht werden indem durch die Debug-Unterstützungseinheiten G110 ein spezieller Befehl an die Einheit G170 geschickt wird, der bewirkt, dass beim nächsten Schreiben auf einen internen Zustand der Ausführungseinheiten G140a, G140b unterschiedliche Datenworte verwendet werden.
  • In einer alternativen Konfiguration oder Implementierung der Debug-Unterstützungsmanagementeinheit G170 ist es auch möglich, im Performanzmodus ein „Debugging" durch alle Debug-Unterstützungseinheiten G100a, G100b und G110 zu erlauben, und nur im Vergleichsmodus ein „debugging" mit der Debug-Unterstützungseinheiten G110 ausschließlich zu erlauben.
  • Für das vorgeschlagene Mehrprozessorsystem wird ein Debug Mechanismus und eine Debug Hardware vorgeschlagen, die es ermöglicht, die Ausführungseinheiten entsprechend den Anforderungen die sich aus dem Modus (Performanz oder Vergleichsmodus) ergeben, zu debuggen. Bekannt sind Debuglösungen für ein SMP System in dem die Ausführungseinheiten immer getrennt voneinander verschiedene Aufgaben erfüllen, ebenso bekannt sind Lösungen für Systeme im reinen Vergleichsmodus.
  • Die hier beschriebene Erfindung unterscheidet sich dabei vom Stand der Technik indem die Debugmechanismen und die Debughardware and die Umschaltung der Ausführungseinheiten im Betrieb zwischen einem Performanzmodus und einem Vergleichsmodus angepasst werden.

Claims (20)

  1. Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten, die in mindestens zwei verschiedenen Modi in dem Rechnersystem konfigurierbar sind, wobei wenigstens zwei Ausführungseinheiten in einem Performanzmodus als einem ersten Modus arbeiten und mindestens ein zweiter Modus als Vergleichsmodus vorgesehen ist und dass zur Analyse von Zuständen und Abläufen in allen Ausführungseinheiten Analyseeinheiten, insbesondere Debug-Unterstützungseinheiten, verwendet werden, dadurch gekennzeichnet, dass die Vorrichtung wenigstens eine Analyseeinheit mehr enthält als die maximale Anzahl der Ausführungseinheiten, die im Performanzmodus unabhängig voneinander arbeiten.
  2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass allen Ausführungseinheiten, die in mindestens einem ersten Modus nicht mit anderen Ausführungseinheiten in einem Vergleichsmodus zusammenarbeiten, jeweils eine Analyseeinheit zugeordnet ist, die die Zustände und Abläufe in dieser Ausführungseinheit beobachten und/oder beeinflussen kann.
  3. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Vorrichtung derart gestaltet ist, dass in mindestens einem zweiten Modus des Rechnersystems mindestens zwei Ausführungseinheiten als ein temporäres Teilsystem in einem Vergleichsmodus zusammenarbeiten und diesem Teilsystem eine weitere Analyseeinheit zugeordnet ist, die die Zustände und Abläufe in diesem Teilsystem beobachten und/oder beeinflussen kann.
  4. Vorrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass durch mindestens ein Modus Signal, insbesondere Core Modus Signal, eine Umschaltung der Aktivität wenigstens einer Analyseeinheit erfolgt.
  5. Vorrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass durch Steuersignale mindestens einer Analyseeinheit eine Umschaltung der Aktivität wenigstens einer anderen Analyseeinheit erfolgt.
  6. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass eine synchrone Beobachtung und Beeinflussung der Zustände und Abläufe aller Ausführungseinheiten des Teilsystems, das in einem Vergleichsmodus zusammenarbeitet, durch die Analyseeinheit möglich ist.
  7. Vorrichtung nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass zusätzliche Mittel enthalten sind, die eine Aktivierung und/oder Deaktivierung von Analyseeinheiten abhängig von den Betriebsmodi des Rechnersystems und/oder weiteren vorgebbaren Bedingungen ermöglichen.
  8. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, dass die Vorrichtung derart ausgestaltet ist, dass in einem Vergleichsmodus eines Teilsystems die dem Teilsystem zugeordnete Analyseeinheit aktiv ist und die Analyseeinheiten der dem Teilsystem zugeordneten Ausführungseinheiten nicht aktiv sind.
  9. Vorrichtung nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass zusätzlich Zustände oder einzelne Einganssignale der Ausführungseinheiten und/oder der Vergleichsmittel von mindestens einer Analyseeinheit beeinflusst werden können und die Zustände oder Ausgangssignale dieser beeinflussten Einheiten von dieser oder einer anderen Analyseeinheit beobachtbar sind.
  10. Rechnersystem mit einer Vorrichtung nach einem der Ansprüche 1 bis 9.
  11. Verfahren zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten, die in mindestens zwei verschiedenen Modi in dem Rechnersystem konfigurierbar sind, wobei wenigstens zwei Ausführungseinheiten in einem Performanzmodus als einem ersten Modus arbeiten und mindestens ein zweiter Modus als Vergleichsmodus vorgesehen ist und dass zur Beobachtung und/oder Beeinflussung von Zuständen und Abläufen in allen Ausführungseinheiten Analyseeinheiten, insbesondere Debug-Unterstützungseinheiten, verwendet werden, dadurch gekennzeichnet, dass die Vorrichtung wenigstens eine Analyseeinheit mehr enthält als die maximale Anzahl der Ausführungseinheiten, die im Performanzmodus unabhängig voneinander arbeiten, wobei die Analyseeinheiten die Zustände und Abläufe in den Ausführungseinheiten beobachten und/oder beeinflussen können.
  12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass allen Ausführungseinheiten, die in mindestens einem ersten Modus nicht mit anderen Ausführungseinheiten in einem Vergleichsmodus zusammenarbeiten, jeweils eine Analyseeinheit zugeordnet ist, die die Zustände und Abläufe in dieser Ausführungseinheit beobachten und/oder beeinflussen kann.
  13. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass in mindestens einem zweiten Modus des Rechnersystems mindestens zwei Ausführungseinheiten als ein temporäres Teilsystem in einem Vergleichsmodus zusammenarbeiten und diesem Teilsystem eine weitere Analyseeinheit zugeordnet ist, die die Zustände und Abläufe in diesem Teilsystem beobachten und/oder beeinflussen kann.
  14. Verfahren nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, dass durch mindestens ein Modus Signal, insbesondere Core Modus Signal, eine Umschaltung der Aktivität wenigstens einer Analyseeinheit erfolgt.
  15. Verfahren nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, dass durch Steuersignale mindestens einer Analyseeinheit eine Umschaltung der Aktivität wenigstens einer anderen Analyseeinheit erfolgt.
  16. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass eine Beobachtung und/oder Beeinflussung der Zustände und Abläufe aller Ausführungseinheiten des Teilsystems, das in einem Vergleichsmodus zusammenarbeitet, durch die Analyseeinheit synchron erfolgt.
  17. Verfahren nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, dass eine Aktivierung und/oder Deaktivierung von Analyseeinheiten abhängig von den Betriebsmodi des Rechnersystems und/oder weiteren vorgebbaren Bedingungen vorgenommen wird.
  18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, dass die Aktivierung und/oder Deaktivierung durch in Hardware implementierte Mittel erfolgt, die Teil des Rechnersystems sind.
  19. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass in einem Vergleichsmodus eines Teilsystems die dem Teilsystem zugeordnete Analyseeinheit aktiv ist und die Analyseeinheiten der dem Teilsystem zugeordneten Ausführungseinheiten nicht aktiv sind.
  20. Verfahren nach Anspruch 14 oder 15, dadurch gekennzeichnet, dass zusätzlich Zustände oder einzelne Einganssignale der Ausführungseinheiten und/oder der Vergleichsmittel von mindestens einer Analyseeinheit beeinflusst werden und die Zustände oder Ausgangssignale dieser beeinflussten Einheiten von dieser oder einer anderen Analyseeinheit beobachtbar sind.
DE200610004988 2006-02-01 2006-02-01 Verfahren und Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten Withdrawn DE102006004988A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200610004988 DE102006004988A1 (de) 2006-02-01 2006-02-01 Verfahren und Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200610004988 DE102006004988A1 (de) 2006-02-01 2006-02-01 Verfahren und Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten

Publications (1)

Publication Number Publication Date
DE102006004988A1 true DE102006004988A1 (de) 2007-08-02

Family

ID=38268276

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200610004988 Withdrawn DE102006004988A1 (de) 2006-02-01 2006-02-01 Verfahren und Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten

Country Status (1)

Country Link
DE (1) DE102006004988A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024175581A1 (de) * 2023-02-21 2024-08-29 Robert Bosch Gmbh Verfahren und vorrichtung zur visualisierung von debug-daten eines komplexen datenverarbeitungsnetzwerks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024175581A1 (de) * 2023-02-21 2024-08-29 Robert Bosch Gmbh Verfahren und vorrichtung zur visualisierung von debug-daten eines komplexen datenverarbeitungsnetzwerks

Similar Documents

Publication Publication Date Title
EP1812857B1 (de) Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
EP1812858B1 (de) Verfahren und vorrichtung zur erzeugung eines modussignals bei einem rechnersystem mit mehreren komponenten
EP1820093B1 (de) Verfahren und einrichtung zum umschalten in einem computersystem mit mindestens zwei ausführungseinheiten
WO2006045773A2 (de) Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
DE102005037230A1 (de) Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems
WO2006045806A2 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems
EP1812856B1 (de) Verfahren und vorrichtung zur auswertung eines signals eines rechnersystems mit wenigstens zwei ausführungseinheiten
EP2228723B1 (de) Verfahren zur Fehlerbehandlung eines Rechnersystems
EP1810146B1 (de) Verfahren und vorrichtung zur trennung der abarbeitung von programmcode bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
DE102005037232A1 (de) Verfahren und Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten
EP1817662B1 (de) Verfahren und vorrichtung zur umschaltung zwischen betriebsmodi eines multiprozessorsystems durch wenigstens ein externes signal
DE102006004988A1 (de) Verfahren und Vorrichtung zur Analyse von Abläufen in einem Rechnersystem mit mehreren Ausführungseinheiten
EP1805618A2 (de) Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
DE102005037223A1 (de) Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
EP1915674B1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten und mit wenigstens zwei gruppen von internen zuständen
DE102010031017A1 (de) Verfahren zur Überwachung des Programmablaufs eines Prozessors
DE102005037261A1 (de) Verfahren und Vorrichtung zur Erzeugung eines Signals bei einem Rechnersystem mit mehreren Komponenten
DE102005037260A1 (de) Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten mittels Bitinformationen in einem Register
DE102005037225A1 (de) Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
DE102005037212A1 (de) Verfahren und Vorrichtung zur Trennung der Abarbeitung von Programmcode bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
DE102005037224A1 (de) Vorrichtung und Verfahren zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
DE102005037220A1 (de) Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
DE102005037229A1 (de) Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten
EP1917594A2 (de) Verfahren und vorrichtung zur abarbeitung von datenwörtern und/oder instruktionen
DE102005037237A1 (de) Vorrichtung und Verfahren zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten

Legal Events

Date Code Title Description
R005 Application deemed withdrawn due to failure to request examination

Effective date: 20130202