-
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 G140b
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.
-
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, ..., N14n} 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 G140
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 G120 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
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.
-
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.
-
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.