Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR STORING OR TRANSFERRING DATA
Document Type and Number:
WIPO Patent Application WO/2003/029953
Kind Code:
A2
Abstract:
The invention relates to a method which is characterised in that the data is stored or transferred together with an information message on the basis of which it can be determined in which order, at which time, and/or during which time span, the data concerned has been acquired, stored or transferred.

Inventors:
BARADIE SAMMY (DE)
MAIER KLAUS (GB)
MAYER ALBRECHT (DE)
Application Number:
PCT/DE2002/003645
Publication Date:
April 10, 2003
Filing Date:
September 25, 2002
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INFINEON TECHNOLOGIES AG (DE)
BARADIE SAMMY (DE)
MAIER KLAUS (GB)
MAYER ALBRECHT (DE)
International Classes:
G06F5/06; G06F11/34; G06F11/36; (IPC1-7): G06F5/06
Foreign References:
US5625785A1997-04-29
GB2249644A1992-05-13
Other References:
"FOUR-WAY EVENT TRACE" IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP. NEW YORK, US, vol. 32, no. 6B, 1 November 1989 (1989-11-01), pages 381-385, XP000073759 ISSN: 0018-8689
BAKER K F JR ET AL: "A priority event monitor for an interrupt-driven microprocessor" PROCEEDINGS OF SOUTHEASTCON. WILLIAMSBURG, APRIL 7 - 10, 1991, PROCEEDINGS OF THE SOUTHEAST CONFERENCE, NEW YORK, IEEE, US, VOL. VOL. 1, PAGE(S) 905-909 , XP010045035 ISBN: 0-7803-0033-5 the whole document
"TRACE SYNCHRONIZATION IN A MULTIPROCESSOR ENVIRONMENT" IBM TECHNICAL DISCLOSURE BULLETIN, IBM CORP. NEW YORK, US, vol. 35, no. 1B, 1 June 1992 (1992-06-01), pages 161-162, XP000309010 ISSN: 0018-8689
MINK A ET AL: "MULTIPROCESSOR PERFORMANCE-MEASUREMENT INSTRUMENTATION" COMPUTER, IEEE COMPUTER SOCIETY, LONG BEACH., CA, US, US, vol. 23, no. 9, September 1990 (1990-09), pages 63-75, XP000159246 ISSN: 0018-9162
Attorney, Agent or Firm:
Jannig, Peter (Klausenberg 20, Augsburg, DE)
Download PDF:
Claims:
Patentansprüche
1. Verfahren zum Speichern oder Weiterleiten von Daten, dadurch gekennzeichnet, daß die Daten zusammen mit einer Information gespeichert oder weitergeleitet werden, aus welcher ermittelbar ist, in wel cher Reihenfolge, zu welchem Zeitpunkt, und/oder innerhalb welchen Zeitraumes die betreffenden Daten erfaßt, gespeichert oder weitergeleitet wurden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Information eine ReihenfolgenInformation umfaßt, die angibt, in welcher Reihenfolge die Daten erfaßt, gespeichert oder weitergeleitet wurden.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß als ReihenfolgenInformation der Zählstand eines Zählers verwendet wird, der inkrementiert wird, bevor oder nachdem Daten erfaßt, gespeichert, oder weitergeleitet werden.
4. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß als ReihenfolgenInformation der Zählstand eines Zählers verwendet wird, der inkrementiert wird, wenn sich der Zustand oder das Ereignis, auf dessen Auftreten hin Daten zu spei chern oder weiterzuleiten sind, von dem Zustand oder dem Er eignis unterscheidet, auf dessen Auftreten hin die zuletzt gespeicherten oder weitergeleiteten Daten gespeichert oder weitergeleitet wurden.
5. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die zu speichernden Daten in einen oder mehrere Speicher einer Vielzahl von Speichern gespeichert werden, und daß als ReihenfolgenInformation der Zählstand eines Zählers verwen det wird, der inkrementiert wird, wenn der oder die Speicher, in welche die zu speichernden Daten zu speichern sind, nicht genau diejenigen Speicher sind, in welche die zuletzt gespei cherten Daten gespeichert wurden.
6. Verfahren nach einem der Ansprüche 2 bis 5, dadurch gekennzeichnet, daß die zu speichernden oder weiterzuleitenden Daten aus einer programmgesteuerten Einheit auszugebende TraceInforma tionen sind.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß die TraceInformationen innerhalb der programmgesteuerten Einheit verwendete oder erzeugte Adressen, Daten, und/oder Steuersignale umfassen, mit Hilfe welcher sich die innerhalb der programmgesteuerten Einheit ablaufenden Vorgänge verfol gen lassen.
8. Verfahren nach Anspruch 6 oder 7, dadurch gekennzeichnet, daß die erfaßten Adressen, Daten und/oder Steuersignale zu sammen mit der ReihenfolgenInformation in einen oder mehrere Speicher einer Vielzahl von ersten Speichern geschrieben wer den.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die in den ersten Speichern gespeicherten Daten in der Reihenfolge, in welcher sie in die ersten Speicher geschrie ben wurden, an einen zweiten Speicher ausgegeben werden.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß die aus den ersten Speichern ausgegebenen Daten ohne die ReihenfolgenInformationen zum zweiten Speicher übertragen und in diesem gespeichert werden.
11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, daß die im zweiten Speicher gespeicherten Daten als Trace Informationen aus der programmgesteuerten Einheit ausgegeben werden.
12. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Information eine ZeitInformation umfaßt, durch wel che der Zeitpunkt oder der Zeitraum angegeben wird, zu dem bzw. innerhalb dessen die zu speichernden oder weiterzulei tenden Daten erfaßt, gespeichert oder weitergeleitet wurden.
13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß die ZeitInformation eine auf einen festen Bezugszeit punkt bezogene Zeit umfaßt.
14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß der feste Bezugszeitpunkt der Zeitpunkt der Inbetrieb nahme oder der Aktivierung des Systems oder einer bestimmten Systemkomponente ist.
15. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß die ZeitInformation eine auf wechselnde Bezugszeitpunkte bezogene Zeit umfaßt.
16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß als Bezugszeitpunkt der Zeitpunkt verwendet wird, zu dem die zuletzt gespeicherten oder weitergeleiteten Daten erfaßt, gespeichert oder weitergeleitet wurden.
17. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß als Bezugszeitpunkt der Zeitpunkt verwendet wird, zu dem eine bestimmte Zeit nach einem festen oder wechselnden Be zugszeitpunkt vergangen ist.
18. Verfahren nach einem der Ansprüche 12 bis 17, dadurch gekennzeichnet, daß die ZeitInformation eine Information umfaßt, durch die signalisiert wird, daß eine bestimmte Zeit nach einem festen oder wechselnden Bezugszeitpunkt vergangen ist.
19. Verfahren nach einem der Ansprüche 12 bis 18, dadurch gekennzeichnet, daß die zu speichernden oder weiterzuleitenden Daten in Messages integriert werden, und daß die Messages neben den zu speichernden oder weiterzuleitenden Daten zumindest teilweise auch diesen zugeordnete ZeitInformationen enthalten.
20. Verfahren nach einem der Ansprüche 12 bis 18, dadurch gekennzeichnet, daß die zu speichernden oder weiterzuleitenden Daten in Messages integriert werden, und daß zur Speicherung oder Wei terleitung der ZeitInformationen zumindest teilweise eigene Messages verwendet werden.
21. Verfahren nach einem der Ansprüche 12 bis 20, dadurch gekennzeichnet, daß die zu speichernden oder weiterzuleitenden Daten aus einer programmgesteuerten Einheit auszugebende TraceInfor mationen sind.
22. Verfahren nach Anspruch 21, dadurch gekennzeichnet, daß die TraceInformationen innerhalb der programmgesteuerten Einheit verwendete oder erzeugte Adressen, Daten, und/oder Steuersignale umfassen, mit Hilfe welcher sich die innerhalb der programmgesteuerten Einheit ablaufenden Vorgänge verfol gen lassen.
23. Verfahren nach Anspruch 21 oder 22, dadurch gekennzeichnet, daß die erfaßten Adressen, Daten und/oder Steuersignale zu sammen mit der ihnen jeweils zugeordneten ZeitInformation in einen oder mehrere Speicher einer Vielzahl von ersten Spei chern geschrieben werden.
24. Verfahren nach Anspruch 21 oder 22, dadurch gekennzeichnet, daß die erfaßten Adressen, Daten und/oder Steuersignale in einen oder mehrere Speicher einer Vielzahl von ersten Spei chern geschrieben werden, und daß die ZeitInformationen in einen eigenen ersten Speicher geschrieben werden.
25. Verfahren nach Anspruch 23 oder 24, dadurch gekennzeichnet, daß die in den ersten Speichern gespeicherten Daten und Zeit Informationen in der Reihenfolge, in welcher sie in die er sten Speicher geschrieben wurden, an einen zweiten Speicher ausgegeben werden.
26. Verfahren nach Anspruch 25, dadurch gekennzeichnet, daß die im zweiten Speicher gespeicherten Daten in Form von Messages als TraceInformationen aus der programmgesteuerten Einheit ausgegeben werden.
Description:
Beschreibung Verfahren zum Speichern oder Weiterleiten von Daten Die vorliegende Erfindung betrifft ein Verfahren gemäß dem Oberbegriff des Patentanspruchs 1, d. h. ein Verfahren zum Speichern oder Weiterleiten von Daten.

Solche Verfahren sind seit vielen Jahren in unzähligen Aus- führungsformen bekannt und bedürfen keiner näheren Erläute- rung.

Ein System, bei welchem innerhalb kurzer Zeiträume besonders große Datenmengen zu erfassen, zwischenzuspeichern und wei- terzuleiten sind, ist eine programmgesteuerte Einheit wie beispielsweise ein Mikroprozessor, ein Mikrocontroller oder ein Signalprozessor, welcher Debug-Ressourcen aufweist, durch welche zur Überwachung der innerhalb der programmgesteuerten Einheit ablaufenden Vorgänge dienende Trace-Informationen ausgegeben werden können.

Zu den in programmgesteuerten Einheiten enthaltenen Debug- Ressourcen gehören beispielsweise die sogenannten On-Chip- Debug-Support-Module bzw. OCDS-Module.

Solche und andere Debug-Ressourcen ermöglichen es, das Auf- treten von von außerhalb der programmgesteuerten Einheit vor- gebbaren Zuständen oder Ereignissen innerhalb der programm- gesteuerten Einheit zu überwachen und dann, wenn ein solcher Zustand oder ein solches Ereignis aufgetreten ist, von außer- halb der programmgesteuerten Einheit vorgebbare Aktionen durchzuführen oder zu veranlassen.

Die Zustände oder Ereignisse, deren Auftreten durch die Debug-Ressourcen überwachbar sind, können beispielsweise, aber bei weitem nicht ausschließlich umfassen :

- den Zugriff der programmgesteuerten Einheit oder bestimmter Komponenten derselben auf bestimmte Speicheradressen oder Register, und/oder - den Transfer bestimmter Daten innerhalb der programmge- steuerten Einheit, und/oder - den Stand des Instruction Pointers.

Die Aktionen, die die Debug-Ressourcen beim Auftreten eines solchen oder anderen Zustandes oder Ereignisses ausführen oder veranlassen, können beispielsweise, aber ebenfalls nicht ausschließlich umfassen : - eine Meldung des Umstandes, daß die zu überwachende Bedin- gung eingetreten ist, an eine außerhalb der programmge- steuerten Einheit vorgesehene Einrichtung, - das Auslesen oder das Verändern des Inhalts bestimmter Speicherelemente oder Register, - die Ausgabe von Trace-Informationen, d. h. die Ausgabe von innerhalb der programmgesteuerten Einheit transferierten oder verwendeten Adressen, Daten und/oder Steuersignalen, an eine außerhalb der programmgesteuerten Einheit vorgese- henen Einrichtung, - das Anhalten der Programmausführung, - die Fortsetzung des Programmausführung im sogenannten Single-Step-Modus, oder - das Ausführen von zum Debuggen oder Emulieren der programm- gesteuerten Einheit dienenden Routinen durch die CPU der programmgesteuerten Einheit.

Die Daten, die durch die Debug-Ressourcen ausgegeben werden, werden an die externe Einrichtung ausgegeben, welche die von den Debug-Ressourcen zu überwachenden Zustände und/oder Er- eignisse, und die von den Debug-Ressourcen auszuführenden Ak- tionen vorgeben. Die externe Einrichtung kann anhand der ihr von den Debug-Ressourcen zugeführten Daten die innerhalb der programmgesteuerten Einheit ablaufenden Vorgänge verfolgen und dadurch innerhalb der programmgesteuerten Einheit auftre- tende Fehler lokalisieren.

Vorliegend interessieren besonders die vorstehend bereits er- wähnten Trace-Informationen, welche durch die Debug-Ressour- cen ausgegeben werden können. Die Trace-Informationen umfas- sen Adressen, Daten und/oder Steuersignale, die bei jedem Auftreten der zu überwachenden Zustände und/oder Ereignisse, oder innerhalb einer gewissen Zeit vor und/oder nach dem Auf- treten der zu überwachenden Zustände und/oder Ereignisse innerhalb der programmgesteuerten Einheit transferiert oder verwendet werden.

Der prinzipielle Aufbau des Teils einer programmgesteuerten Einheit, der für die Erfassung, die Zwischenspeicherung, und die Ausgabe der Trace-Informationen zuständig ist, ist in Figur 1 veranschaulicht.

Die in der Figur 1 gezeigte Anordnung enthält n erste Zwi- schenspeicher ZS1-1 bis ZS1-n, eine die Zwischenspeicher ZS1- 1 bis ZS1-n steuernde Steuereinrichtung C, und einen den er- sten Zwischenspeichern ZS1-1 bis ZS1-n nachgeschalteten zwei- ten Zwischenspeicher ZS2.

Die ersten Zwischenspeicher ZS1-1 bis ZS1-n sind über Leitun- gen ADS mit den Einrichtungen der programmgesteuerten Einheit verbunden, welche die ausgebbaren Trace-Informationen erzeu- gen, transferieren oder verwenden. Die Verbindung erfolgt derart, daß jedem der ersten Zwischenspeicher ZS1-1 bis ZS1-n ein ganz bestimmter Teil der ausgebbaren Trace-Informationen zugeführt wird, beispielsweise - dem Zwischenspeicher ZS1-1 die Adressen, welche über einen die Komponenten der programmgesteuerten Einheit miteinander verbindenden Bus übertragen werden, - dem Zwischenspeicher ZS1-2 die Daten, welche über den die Komponenten der programmgesteuerten Einheit miteinander verbindenden Bus übertragen werden,

- dem Zwischenspeicher ZS1-3 die Steuersignale, welche zwi- schen den Komponenten der programmgesteuerten Einheit transferiert werden, und - dem Zwischenspeicher ZS1-n der jeweils aktuelle Stand des Program Counter.

Der Vollständigkeit halber sei angemerkt, daß beliebig viele erste Zwischenspeicher vorgesehen werden können, und daß je- dem Zwischenspeicher beliebige Adressen, Daten und/oder Steuersignale zugeführt werden können.

Der Steuereinrichtung C werden verschiedene Adressen, Daten, Steuersignale, Registerinhalte, Speicherinhalte etc. zuge- führt, die innerhalb der programmgesteuerten Einheit auf- treten. Die der Steuereinrichtung C zugeführten Daten können ganz oder teilweise die Daten sein, die auch den ersten Zwischenspeichern ZS1-1 bis ZS1-n zugeführt werden ; alter- nativ oder zusätzlich können diese Daten aber auch andere oder weitere Daten umfassen. Die Steuereinrichtung C über- prüft, ob die ihr zugeführten Daten eine oder mehrere be- stimmte Bedingungen erfüllen, und veranlaßt durch eine ent- sprechende Ansteuerung der ersten Zwischenspeicher ZS1-1 bis ZS1-n, daß die diesen zugeführten Daten gespeichert werden, wenn eine oder mehrere der zu überwachenden Bedingungen er- füllt sind, wobei es von der erfüllten Bedingung bzw. von den erfüllten Bedingungen abhängt, ob und gegebenenfalls welche erste Zwischenspeicher ZS1-1 bis ZS1-n die ihnen zugeführten Daten speichern. Dabei kann beispielsweise vorgesehen werden, - daß dann, wenn eine erste Bedingung erfüllt ist, nur der Zwischenspeicher ZS1-1 die ihm zugeführten Daten speichert, - daß dann, wenn eine zweite Bedingung erfüllt ist, der Zwi- schenspeicher ZS1-1 und der Zwischenspeicher ZS1-2 die ih- nen zugeführten Daten speichern,

- daß dann, wenn eine erste Bedingung, und danach eine dritte Bedingung erfüllt ist, alle Zwischenspeicher ZS1-1 bis ZS1- n die ihnen zugeführten Daten speichern, und/oder - daß dann, wenn gleichzeitig eine erste Bedingung und eine vierte Bedingung erfüllt sind, keiner der Zwischenspeicher ZS1-1 bis ZS1-n die ihnen zugeführten Daten speichert.

Durch die Steuereinrichtung C kann darüber hinaus auch fest- gelegt werden, welche Adressen, Daten und/oder Steuersignale den Zwischenspeichern ZS1-1 bis ZS1-n zugeführt werden.

Hierzu können den Zwischenspeichern ZS1-1 bis ZS1-n in der Figur 1 nicht gezeigte, von der Steuereinrichtung C ge- steuerte Auswahleinrichtungen vorgeschaltet werden, welche aus einer großen Anzahl von ihnen zugeführten Daten nur immer jeweils einen durch die Steuereinrichtung C vorgegebenen Teil derselben zu den jeweiligen Zwischenspeichern ZS1-1 bis ZS1-n weiterleiten.

Die Zwischenspeicher ZS1-1 bis ZS1-n sind im betrachteten Beispiel FIFOs mit einer relativ geringen Speicherkapazität.

Die in den Zwischenspeichern ZS1-1 bis ZS1-n gespeicherten Daten werden fortlaufend in den im betrachteten Beispiel durch ein größeres RAM gebildeten Zwischenspeicher ZS2 trans- feriert. Die im RAM gespeicherten Daten werden-gegebenen- falls nach einer Komprimierung derselben (beispielsweise durch ein NEXUS-Modul gemäß dem von der IEEE Industry Stan- dards and Technology Organization (IEEE-ISTO) in 1999 defi- nierten und als"The Nexus 5001 Forum Standard for a Global Embedded Processor Debug Interface"bezeichneten Standard)- sofort oder später aus der programmgesteuerten Einheit an die externe Einrichtung ausgegeben. Diese ausgegebenen Daten sind die vorstehend bereits erwähnten Trace-Informationen.

Die externe Einrichtung kann mit Hilfe der ihr zugeführten Trace-Informationen die innerhalb der programmgesteuerten Einheit ablaufenden Vorgänge verfolgen.

Damit die Rekonstruktion der innerhalb der programmgesteuer- ten Einheit ablaufenden Vorgänge durch die externe Einrich- tung möglich ist, benötigt diese verständlicherweise auch In- formationen über die Reihenfolge und/oder die Zeitpunkte der Erfassung der ihr zugeführten Daten. Diese Informationen kann die externe Einrichtung auf relativ einfache Art und Weise selbst ermitteln, wenn zur Ausgabe der Trace-Informationen aus der programmgesteuerten Einheit das vorstehend bereits erwähnte NEXUS-Modul oder dergleichen verwendet wird. Das NEXUS-Modul führt eine Komprimierung der auszugebenden Daten durch, wodurch sich die Menge der auszugebenden Daten verrin- gert, und die Daten unmittelbar nach deren Erfassung, also quasi in Echtzeit aus der programmgesteuerten Einheit ausge- geben werden können. Dadurch ist die externe Einrichtung in der Lage, die von ihr benötigten Zusatzinformationen über die Reihenfolge und die Zeitpunkte der Erfassung der ihr zuge- führten Daten aus der Reihenfolge und den Zeitpunkten des Empfangs der ihr zugeführten Daten zu bestimmen.

Diese Art der Ermittlung der von der externen Einrichtung be- nötigten Zusatzinformationen führt insbesondere dann, wenn in kurzer Zeit so viele Trace-Informationen aus der programmge- steuerten Einheit auszugeben sind, daß die Ausgabe nicht mehr in Echtzeit erfolgen kann, zu falschen Ergebnissen.

Dies wiederum hat zur Folge, daß die externe Einrichtung die innerhalb der programmgesteuerten Einheit ablaufenden Vor- gänge nicht oder nicht mehr genau rekonstruieren kann.

Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, das Verfahren gemäß dem Oberbegriff des Patentanspruchs 1 derart weiterzubilden, daß die innerhalb einer programm- gesteuerten Einheit ablaufenden Vorgänge anhand von aus die- ser ausgegebenen Trace-Informationen unter allen Umständen detailliert ermittelt werden können.

Diese Aufgabe wird durch das in Patentanspruch 1 beanspruchte Verfahren gelöst.

Das erfindungsgemäße Verfahren zeichnet sich dadurch aus, daß die Daten zusammen mit einer Information gespeichert oder weitergeleitet werden, aus welcher ermittelbar ist, in wel- cher Reihenfolge, zu welchem Zeitpunkt, und/oder innerhalb welchen Zeitraumes die betreffenden Daten erfaßt, gespeichert oder weitergeleitet wurden.

Dadurch kann für zu einem beliebigen Zeitpunkt gespeicherte oder weitergeleitete Daten ermittelt werden, in welcher Rei- henfolge, zu welchem Zeitpunkt, oder innerhalb welches Zeit- raums diese Daten erfaßt, gespeichert oder weitergeleitet wurden. Dies wiederum ermöglicht es, die innerhalb einer programmgesteuerten Einheit ablaufenden Vorgänge unter allen Umständen detailliert zu ermitteln.

Vorteilhafte Weiterbildungen der Erfindung sind den Unteran- sprüchen, der folgenden Beschreibung, sowie den Figuren ent- nehmbar.

Die Erfindung wird nachfolgend anhand von Ausführungsbeispie- len unter Bezugnahme auf die Figuren näher beschrieben. Es zeigen Figur 1 den prinzipiellen Aufbau eines für die Erfassung, die Zwischenspeicherung, und die Ausgabe von Trace-Infor- mationen zuständigen Teils einer programmgesteuerten Einheit, und Figuren 2 und 3 Darstellungen zur Veranschaulichung der Hand- habung von den zu speichernden oder weiterzuleitenden Daten zugeordneten Reihenfolge-Informationen.

Das im folgenden beschriebene Verfahren zum Speichern und Weiterleiten von Daten wird anhand des Zwischenspeicherns und

Weiterleitens von aus einer programmgesteuerten Einheit aus- zugebenden Trace-Informationen beschrieben.

Es sei jedoch bereits an dieser Stelle darauf hingewiesen, daß das Verfahren auch beim Speichern oder Weiterleiten be- liebiger anderer Daten zum Einsatz kommen kann, und auch außerhalb von programmgesteuerten Einheiten verwendet werden kann.

Die zur Durchführung des Verfahrens benötigten Einrichtungen sind im betrachteten Beispiel Bestandteil der die Trace- Informationen ausgebenden programmgesteuerten Einheit.

Es wird zunächst eine Möglichkeit beschrieben, durch welche sichergestellt werden kann, daß auszugebende Trace-Informa- tionen in der Reihenfolge ihrer Erfassung aus der programm- gesteuerten Einheit ausgegeben werden. Danach wird eine Mög- lichkeit beschrieben, durch welche aus den aus der programm- gesteuerten Einheit ausgegebenen Informationen unabhängig vom Zeitpunkt der Ausgabe der Trace-Informationen der Zeitpunkt oder der Zeitraum ermittelt werden kann, zu dem bzw. inner- halb dessen die Trace-Informationen innerhalb der programm- gesteuerten Einheit erfaßt, zwischengespeichert oder aus- gegeben wurden.

Es sei bereits an dieser Stelle darauf hingewiesen, daß die genannten Möglichkeiten sowohl in Kombination als auch ein- zeln zum Einsatz kommen können.

Das Verfahren, durch welches sichergestellt werden kann, daß auszugebende Trace-Informationen in der Reihenfolge ihrer Er- fassung aus der programmgesteuerten Einheit ausgegeben wer- den, ist in der in der Figur 1 gezeigten Anordnung realisier- bar, und besteht bei einer derartigen Realisierung darin, - daß die in die ersten Zwischenspeicher ZS1-1 bis ZSl-n geschriebenen Daten zusammen mit einer im folgenden als

Reihenfolgen-Information bezeichneten Information gespei- chert werden, aus welcher ermittelbar ist, in welcher Rei- henfolge die betreffenden Daten erfaßt (in die ersten Zwi- schenspeicher ZS1-1 bis ZSl-n geschrieben) wurden, - daß die in den ersten Zwischenspeichern ZS1-1 bis ZSl-n gespeicherten Daten unter Auswertung der ihnen jeweils zu- geordneten Reihenfolgen-Information in der Reihenfolge, in welcher sie in die ersten Zwischenspeicher ZS1-1 bis ZSl-n geschrieben wurden, zum zweiten Zwischenspeicher ZS2 trans- feriert werden, und in diesem derart gespeichert werden, daß zeitlich aufeinanderfolgend erhaltene Daten unter auf- einanderfolgenden Adressen gespeichert werden, und - daß die im zweiten Zwischenspeicher ZS2 gespeicherten Daten in der Reihenfolge, in welcher sie dort gespeichert wurden, direkt oder über ein Nexus-Modul oder dergleichen aus der programmgesteuerten Einheit ausgegeben werden.

Der Vollständigkeit halber sei angemerkt, daß im betrachteten Beispiel die aus den ersten Zwischenspeichern ZS1-1 bis ZSl-n ausgegebenen Daten ohne die Reihenfolgen-Information ausgege- ben werden, und daß die im zweiten Zwischenspeicher ZS2 ge- speicherten Daten ohne Reihenfolgen-Information, aber zu- sammen mit einer im folgenden als Datenquellen-Information bezeichneten Information gespeichert werden, welche angibt, welche Adressen, Daten, oder Steuersignale die jeweiligen Daten jeweils repräsentieren (aus welcher Datenquelle diese stammen).

Es sei bereits an dieser Stelle angemerkt, - daß die aus der programmgesteuerten Einheit auszugebenden Daten auch ohne eine erste Zwischenspeicherung in den er- sten Zwischenspeichern ZS1-1 bis ZS1-n aus der programm- gesteuerten Einheit ausgegeben werden können,

- daß die aus der programmgesteuerten Einheit auszugebenden Daten auch ohne eine zweite Zwischenspeicherung im zweiten Zwischenspeicher ZS2 aus der programmgesteuerten Einheit ausgegeben werden können, - daß die aus der programmgesteuerten Einheit auszugebenden Daten auch ohne jegliche Zwischenspeicherung, d. h. ohne eine Zwischenspeicherung in den ersten Zwischenspeichern ZS1-1 bis ZSl-n und ohne eine Zwischenspeicherung im zwei- ten Zwischenspeicher ZS2 ausgegeben werden können, und - daß die aus den ersten Zwischenspeichern ZS1-1 bis ZSl-n ausgegebenen Daten und/oder die aus dem zweiten Zwischen- speicher ZS2 ausgegebenen Daten und/oder die aus der pro- grammgesteuerten Einheit ausgegebenen Daten zusammen mit der ihnen jeweils zugeordneten Reihenfolgen-Information ausgegeben werden können, wobei in diesem Fall auch eine nicht nach der Reihenfolge sortierte Ausgabe der Daten er- folgen kann.

Das Hinzufügen der die Reihenfolge betreffenden Information kann durch die Steuereinrichtung C erfolgen, welche hierzu gegenüber einer bei einem herkömmlichen Verfahren verwendeten Steuereinrichtung C entsprechend modifiziert ist.

Der die Reihenfolgen-Information erzeugende Teil der Steuer- einrichtung C besteht im einfachsten Fall aus einem Zähler, der jedes Mal dann, wenn Daten in einen der ersten Zwischen- speicher ZS1-1 bis ZSl-n geschrieben werden, inkrementiert wird, und dessen jeweils aktueller Zählstand als die zusammen mit den betreffenden Daten gespeicherte Reihenfolgen-Informa- tion verwendet wird.

Vorzugsweise wird dann, wenn gleichzeitig in mehrere der er- sten Zwischenspeicher ZS1-1 bis ZS1-n Daten geschrieben wer- den, für die gleichzeitig in die ersten Zwischenspeicher ZS1-

1 bis ZSl-n geschriebenen Daten die selbe Reihenfolgen-Infor- mation verwendet.

Noch besser ist es, wenn der Zählstand des Zählers nur immer dann erhöht wird, wenn beim Auftreten eines Zustandes oder Ereignisses, bei welchem ein oder mehrere der ersten Zwi- schenspeicher ZS1-1 bis ZSl-n Daten zu speichern haben, nicht genau die selben ersten Zwischenspeicher zu beschreiben sind wie es beim Auftreten des letzten Zustandes oder Ereignisses der Fall war, bei welchem Daten in einen oder mehrere der er- sten Zwischenspeicher ZS1-1 bis ZSl-n zu speichern waren.

Dies wird nachfolgend anhand eines Beispiels näher veran- schaulicht. Es sei angenommen, - daß zu einem Zeitpunkt t0 ein erster Zustand oder ein er- stes Ereignis auftritt, woraufhin Daten in den ersten Zwi- schenspeicher ZS1-2 zu schreiben sind, - daß zu einem Zeitpunkt tl ein zweiter Zustand oder ein zweites Ereignis auftritt, woraufhin Daten in den ersten Zwischenspeicher ZS1-1 zu schreiben sind, - daß zu einem Zeitpunkt t2 wieder der erste Zustand oder das erste Ereignis auftritt, also Daten in den ersten Zwischen- speicher ZS1-2 zu schreiben sind, - daß zu einem Zeitpunkt t3 ein dritter Zustand oder ein drittes Ereignis auftritt, woraufhin Daten in die ersten Zwischenspeicher ZS1-1, ZS1-2, und ZS1-3 zu schreiben sind, - daß zu einem Zeitpunkt t4 ein vierter Zustand oder ein viertes Ereignis auftritt, woraufhin Daten in die ersten Zwischenspeicher ZS1-1, ZS1-2, und ZS1-3 zu schreiben sind,

- daß zu einem Zeitpunkt t5 wieder der zweite Zustand oder das zweite Ereignis auftritt, also Daten in den ersten Zwischenspeicher ZS1-1 zu schreiben sind, - daß zu einem Zeitpunkt t6 ein fünfter Zustand oder ein fünftes Ereignis auftritt, woraufhin Daten in den ersten Zwischenspeicher ZS1-1 zu schreiben sind, - daß zu einem Zeitpunkt t7 wieder der fünfte Zustand oder das fünfte Ereignis auftritt, also Daten in den ersten Zwischenspeicher ZS1-1 zu schreiben sind, und - daß zu einem Zeitpunkt t8 ein sechster Zustand oder ein sechstes Ereignis auftritt, woraufhin Daten in die ersten Zwischenspeicher ZS1-2 und ZS1-3 zu schreiben sind.

Es sei ferner angenommen, daß der Zähler, dessen Zählstand als Reihenfolgen-Information verwendet wird, ein Modulo-4- Zähler ist, also ein wiederholt von 0 bis 3 zählender Zähler ist.

Dann - werden die Daten, die als Reaktion auf den bei t0 auftre- tenden Zustand bzw. auf das bei t0 auftretende Ereignis in den ersten Zwischenspeicher ZS1-2 zu schreiben sind, zu- sammen mit einer den Wert 0 aufweisenden Reihenfolgen- Information gespeichert, - werden die Daten, die als Reaktion auf den bei tl auftre- tenden Zustand bzw. auf das bei tl auftretende Ereignis in den ersten Zwischenspeicher ZS1-1 zu schreiben sind, zu- sammen mit einer den Wert 1 aufweisenden Reihenfolgen- Information gespeichert, - werden die Daten, die als Reaktion auf den bei t2 auftre- tenden Zustand bzw. auf das bei t2 auftretende Ereignis in

den ersten Zwischenspeicher ZS1-2 zu schreiben sind, zu- sammen mit einer den Wert 2 aufweisenden Reihenfolgen- Information gespeichert, werden die Daten, die als Reaktion auf den bei t3 auftre- tenden Zustand bzw. auf das bei t3 auftretende Ereignis in die ersten Zwischenspeicher ZS1-1, ZS1-2 und ZS1-3 zu schreiben sind, zusammen mit einer den Wert 3 aufweisenden Reihenfolgen-Information gespeichert, werden die Daten, die als Reaktion auf den bei t4 auftre- tenden Zustand bzw. auf das bei t4 auftretende Ereignis in die ersten Zwischenspeicher ZS1-1, ZS1-2 und ZS1-3 zu schreiben sind, ebenfalls zusammen mit einer den Wert 3 aufweisenden Reihenfolgen-Information gespeichert, werden die Daten, die als Reaktion auf den bei t5 auftre- tenden Zustand bzw. auf das bei t5 auftretende Ereignis in den ersten Zwischenspeicher ZS1-1 zu schreiben sind, zu- sammen mit einer den Wert 0 aufweisenden Reihenfolgen- Information gespeichert, werden die Daten, die als Reaktion auf den bei t6 auftre- tenden Zustand bzw. auf das bei t6 auftretende Ereignis in den ersten Zwischenspeicher ZS1-1 zu schreiben sind, eben- falls zusammen mit einer den Wert 0 aufweisenden Reihenfol- gen-Information gespeichert, werden die Daten, die als Reaktion auf den bei t7 auftre- tenden Zustand bzw. auf das bei t7 auftretende Ereignis in den ersten Zwischenspeicher ZS1-1 zu schreiben sind, eben- falls zusammen mit einer den Wert 0 aufweisenden Reihenfol- gen-Information gespeichert, und werden die Daten, die als Reaktion auf den bei t8 auftre- tenden Zustand bzw. auf das bei t8 auftretende Ereignis in die ersten Zwischenspeicher ZS1-2 und ZS1-3 zu schreiben

sind, zusammen mit einer den Wert 1 aufweisenden Reihenfol- gen-Information gespeichert.

Dies ist in Figur 2 veranschaulicht.

Die Speicherung dieser Reihenfolgen-Informationen zusammen mit den in den ersten Zwischenspeichern ZS1-1 bis ZSl-n zu speichernden Daten ermöglicht es, daß die in den ersten Zwischenspeichern ZS1-1 bis ZSl-n gespeicherten Daten in der Reihenfolge, in welcher sie in die ersten Zwischenspeicher ZS1-1 bis ZSl-n eingeschrieben wurden, aus diesen ausgegeben werden. Dies wird nachfolgend anhand eines Beispiels veran- schaulicht.

Es sei angenommen, - daß der aktuelle Zeitpunkt ein zwischen t6 und t7 liegender Zeitpunkt sei, - daß sich in den ersten Zwischenspeichern ZS1-1 bis ZSl-n noch die Daten befinden, die zu den Zeitpunkten t2 bis t6 in diese eingeschrieben wurden, und - daß während der im folgenden beschriebenen Vorgänge keine neuen Daten in die Zwischenspeicher ZS1-1 bis ZSl-n ge- schrieben werden.

In Figur 3 ist veranschaulicht, welchen Einträgen der in den ersten Zwischenspeichern ZS1-1 bis ZS1-3 gespeicherten Daten welche Reihenfolgen-Information zugeordnet ist. Dabei be- zeichnet der Eintrag mit der niedrigsten Nummer jeweils den jüngsten Eintrag, und der Eintrag mit der höchsten Nummer je- weils den ältesten Eintrag.

Beim Ausgeben der in den ersten Zwischenspeichern ZS1-1 bis ZS1-3 gespeicherten Daten wird nun so vorgegangen, daß die Reihenfolgen-Informationen, die den Einträgen mit der jeweils höchsten Nummer zugeordnet sind, extrahiert werden, und die-

jenigen Daten ausgegeben werden, welchen die Reihenfolgen- Information mit dem niedrigsten Wert zugeordnet ist.

Bezogen auf das vorliegend betrachtete Beispiel bedeutet dies, - daß zunächst aus der Reihenfolgen-Information des Eintrages 4 des ersten Zwischenspeichers ZS1-1, der Reihenfolgen- Information des Eintrages 3 des ersten Zwischenspeichers ZS1-2, und der Reihenfolgen-Information des Eintrages 2 des ersten Zwischenspeichers ZS1-3 die Reihenfolgen-Information mit dem niedrigsten Wert ermittelt wird, und dann die Da- ten, welchen diese Reihenfolgen-Information zugeordnet ist, also die unter dem Eintrag 3 des ersten Zwischenspeichers ZS1-2 gespeicherten Daten (diesen Daten ist die Reihenfol- gen-Information mit dem niedrigsten Wert, nämlich 2, zuge- ordnet) ausgegeben werden, - daß danach aus der Reihenfolgen-Information des Eintrages 4 des ersten Zwischenspeichers ZS1-1, der Reihenfolgen-Infor- mation des Eintrages 2 des ersten Zwischenspeichers ZS1-2, und der Reihenfolgen-Information des Eintrages 2 des ersten Zwischenspeichers ZS1-3 die Reihenfolgen-Information mit dem niedrigsten Wert ermittelt wird, und dann die Daten, welchen diese Reihenfolgen-Information zugeordnet ist, also die unter dem Eintrag 4 des ersten Zwischenspeichers ZS1-1, sowie die unter dem Eintrag 2 des ersten Zwischenspeichers ZS1-2, sowie die unter dem Eintrag 2 des ersten Zwischen- speichers ZS1-3 gespeicherten Daten (allen Daten ist die selbe Reihenfolgen-Information zugeordnet) nacheinander ausgegeben werden, - daß danach aus der Reihenfolgen-Information des Eintrages 3 des ersten Zwischenspeichers ZS1-1, der Reihenfolgen-Infor- mation des Eintrages 1 des ersten Zwischenspeichers ZS1-2, und der Reihenfolgen-Information des Eintrages 1 des ersten Zwischenspeichers ZS1-3 die Reihenfolgen-Information mit

dem niedrigsten Wert ermittelt wird, und dann die Daten, welchen diese Reihenfolgen-Information zugeordnet ist, also die unter dem Eintrag 3 des ersten Zwischenspeichers ZS1-1, sowie die unter dem Eintrag 1 des ersten Zwischenspeichers ZS1-2, sowie die unter dem Eintrag 1 des ersten Zwischen- speichers ZS1-3 gespeicherten Daten (allen Daten ist die selbe Reihenfolgen-Information zugeordnet) nacheinander ausgegeben werden, - daß danach die unter dem Eintrag 2 des ersten Zwischenspei- chers ZS1-1 gespeicherten Daten ausgegeben werden (die an- deren ersten Zwischenspeicher ZS1-2 und ZS1-3 enthalten keine auszugebenden Daten mehr), und - daß danach die unter dem Eintrag 1 des ersten Zwischenspei- chers ZS1-1 gespeicherten Daten ausgegeben werden (die an- deren ersten Zwischenspeicher ZS1-2 und ZS1-3 enthalten keine auszugebenden Daten mehr).

Wie aus den vorstehenden Erläuterungen deutlich wird, ist es durch die beschriebene Vorgehensweise möglich, in die ersten Zwischenspeicher ZS1-1 bis ZSl-n geschriebene Daten in der Reihenfolge auszugeben, in welcher sie in die ersten Zwi- schenspeicher ZS1-1 bis ZSl-n geschrieben wurden.

Die hierfür zu treffenden Vorkehrungen erfordern einen nur sehr geringen Aufwand. Insbesondere kommt man zumindest dann, wenn der Zähler, dessen Zählstand als Reihenfolgen-Informa- tion verwendet wird, nicht bei jedem Einschreiben von Daten, sondern nur dann inkrementiert, wenn bestimmte weitere Bedin- gungen erfüllt sind, mit einem Zähler aus, dessen maximaler Zählstand ein sehr geringer Wert ist, wodurch der zur Spei- cherung der Reihenfolgen-Information benötigte zusätzliche Speicherplatz ebenfalls nur sehr gering ist. Im betrachteten Beispiel, in welchem der Zähler nur wiederholt von 0 bis 3 zählt, werden zur Speicherung der Reihenfolgen-Information

nur 2 Bits, also vernachlässigbar wenig zusätzlicher Spei- cherplatz benötigt.

Eine nicht ganz so effiziente, aber immer noch vorteilhafte Vorgehensweise bei der Inkrementierung des Zählers besteht darin, daß der Zähler immer dann inkrementiert wird, wenn der Zustand oder das Ereignis, auf das hin Daten in einen oder mehrere der ersten Zwischenspeicher ZS1-1 bis ZSl-n zu schreiben sind, ein anderer Zustand oder ein anderes Ereignis ist als der Zustand oder das Ereignis, auf dessen Auftreten hin zuletzt Daten in einen oder mehrere der ersten Zwischen- speicher ZS1-1 bis ZSl-n geschrieben wurden.

Zusätzlich oder alternativ zu der Speicherung und/oder Wei- terleitung der aus der programmgesteuerten Einheit auszuge- benden Daten zusammen mit Reihenfolgen-Informationen kann vorgesehen werden, die in den ersten Zwischenspeichern ZS1-1 bis ZSl-n zu speichernden Daten und/oder die im zweiten Zwi- schenspeicher ZS2 zu speichernden Daten und/oder die aus der programmgesteuerten Einheit auszugebenden Daten zusammen mit den Zeitpunkt der Erfassung oder den Zeitpunkt der Speiche- rung oder den Zeitpunkt der Ausgabe angebenden, im folgenden als Zeit-Informationen bezeichneten Informationen zu spei- chern bzw. auszugeben.

Die Zeit-Informationen können eine auf einen festen Bezugs- zeitpunkt bezogene Zeit, oder eine auf wechselnde Bezugszeit- punkte bezogene Zeit beinhalten, wobei als fester Bezugszeit- punkt beispielsweise der Zeitpunkt der Inbetriebnahme oder der Aktivierung der programmgesteuerten Einheit oder einer bestimmten Komponente derselben verwendet werden kann, und wobei als wechselnder Bezugszeitpunkt beispielsweise jeweils der Zeitpunkt verwendet werden kann, zu welchem die zuletzt erfaßten, gespeicherten oder ausgegebenen Daten erfaßt, ge- speichert oder ausgegeben wurden, oder der Zeitpunkt, zu wel- chem eine bestimmte Zeit seit einem festen oder wechselnden Bezugszeitpunkt vergangen ist.

Bei der Speicherung und/oder der Ausgabe der Daten zusammen mit Zeit-Informationen kann unter Umständen auf die Speiche- rung und/oder die Ausgabe der zuvor beschriebenen Reihenfol- gen-Informationen verzichtet werden. Von dieser Möglichkeit kann Gebrauch gemacht werden, wenn sich die Reihenfolge der Erfassung der Daten auch aus den Zeit-Informationen ermitteln läßt.

Am einfachsten realisierbar und am einfachsten auswertbar sind Daten, die zusammen mit einer auf einen festen Bezugs- punkt bezogenen Zeitpunkt gespeichert oder ausgegeben werden.

Das Versehen der Daten mit solchen Zeit-Informationen kann unter Umständen jedoch problematisch sein. Insbesondere kann dadurch die zu speichernde und/oder die auszugebende Daten- menge sehr stark ansteigen. Um diesen Effekt zu begrenzen, kann vorgesehen werden, daß nicht alle Daten, sondern nur bestimmte Daten, beispielsweise jedes n-te Datum (n>l) mit Zeit-Informationen versehen wird, und/oder daß von mehreren gleichzeitig erfaßten Daten nur ein Datum mit Zeit-Informa- tionen versehen wird, und/oder daß die Zeit-Informationen eine variable Länge aufweisen (und eventuell einen die Länge angebenden Parameter umfassen).

Eine noch stärkere Einschränkung des durch die Zeit-Informa- tionen bedingten Anstieges der zu speichernden und/oder aus- zugebenden Datenmenge läßt sich erzielen, wenn die Zeit- Informationen eine auf die vorstehend genannten oder andere wechselnde Bezugszeitpunkte bezogene Zeit beinhalten. Es dürfte einleuchten und bedarf keiner näheren Erläuterung, daß die zusätzliche Datenmenge für solche Zeit-Informationen er- heblich geringer ist.

In beiden Fällen, d. h. sowohl wenn die in der Zeit-Informa- tionen enthaltene Zeit auf einen festen Bezugspunkt bezogen ist, als auch wenn die in der Zeit-Informationen enthaltene Zeit auf wechselnde Bezugspunkte bezogen ist, erweist es sich

als vorteilhaft, wenn Möglichkeiten vorhanden sind, um der externen Einrichtung zu signalisieren, daß die Zeit-Informa- tion nicht die richtige Zeit repräsentiert (beispielsweise weil der Zähler, dessen Zählstand als Zeit-Information ver- wendet wird, übergelaufen ist).

Hierfür existieren zwei Möglichkeiten. Die erste Möglichkeit besteht darin, daß die Zeit-Informationen ein oder mehrere Bits enthalten, durch die signalisiert wird, ob und eventuell zusätzlich wie viele Überläufe des Zählers zwischenzeitlich stattgefunden haben. Die zweite Möglichkeit besteht darin, daß immer dann, wenn ein Überlauf stattgefunden hat, eine diesen Umstand signalisierende eigene Message an die externe Einrichtung ausgegeben wird.

Es kann auch vorgesehen werden, daß sich die in der Zeit- Information enthaltene Zeit generell auf den letzten Überlauf des Zählers oder das letztmalige Erreichen eines bestimmten Zählstandes bezieht, wobei der Überlauf oder das Erreichen des bestimmten Zählstandes entweder durch entsprechende Bits in der die darauf bezogene Zeit enthaltenden Information oder durch eine eigene Message signalisiert werden kann.

Wenn es nicht erforderlich ist, den genauen Zeitpunkt der Er- fassung, der Speicherung, oder der Ausgabe der Daten zu ken- nen, kann auch vorgesehen werden, nur den Überlauf des Zäh- lers oder das Erreichen eines bestimmten Zählstandes signali- sierende Messages auszugeben. Durch solche Messages werden vorzugsweise äuquidistante Zeitpunkte definiert. Unabhängig hiervon steht der externen Einrichtung dadurch jeweils die Information zur Verfügung, innerhalb welchen Zeitraumes die ihr übermittelten Daten erfaßt, gespeichert oder ausgegeben wurden.

Die Generierung und Ausgabe von den Überlauf des Zählers oder das Erreichen eines bestimmten Zählstandes signalisierenden

Messages läßt sich sehr einfach bewerkstelligen. Dies kann beispielsweise dadurch erfolgen, - daß ein zusätzlicher erster Zwischenspeicher ZS1-n+l vorge- sehen wird, - daß jedes Mal, wenn der Zähler überläuft oder ein bestimm- ter Zählstand erreicht ist, eine diesen Umstand signalisie- rende Information zusammen mit einer Reihenfolgen-Informa- tion in den zusätzlichen ersten Zwischenspeicher ZS1-n+1 geschrieben wird, - daß die in den ersten Zwischenspeichern ZS1-1 bis ZS1-n+1 gespeicherten Daten in der Reihenfolge, in welcher sie in diese eingeschrieben wurden, an den zweiten Zwischenspei- cher ZS2 ausgegeben werden, und - daß die im zweiten Zwischenspeicher ZS2 gespeicherten Daten in Form von Messages an die externe Einrichtung ausgegeben werden, wobei die den Überlauf des Zählers oder das Errei- chen eines bestimmten Zählstandes signalisierenden Informa- tionen als eigene Message versandt werden.

Auf die beschriebene Art und Weise ist es-unabhängig von den Einzelheiten der praktischen Realisierung-mit relativ geringem Aufwand möglich, die in einer programmgesteuerten Einheit ablaufenden Vorgänge unter allen Umständen de- tailliert ermitteln zu können.

Bezugszeichenliste ADS Adressen, Date, Steuersignale C Steuereinrichtung ZSx Zwischenspeicher