WO2003029953A2 - Verfahren zum speichern oder weiterleiten von daten - Google Patents

Verfahren zum speichern oder weiterleiten von daten Download PDF

Info

Publication number
WO2003029953A2
WO2003029953A2 PCT/DE2002/003645 DE0203645W WO03029953A2 WO 2003029953 A2 WO2003029953 A2 WO 2003029953A2 DE 0203645 W DE0203645 W DE 0203645W WO 03029953 A2 WO03029953 A2 WO 03029953A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
stored
time
information
forwarded
Prior art date
Application number
PCT/DE2002/003645
Other languages
English (en)
French (fr)
Other versions
WO2003029953A3 (de
Inventor
Sammy Baradie
Klaus Maier
Albrecht Mayer
Original Assignee
Infineon Technologies Ag
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 Infineon Technologies Ag filed Critical Infineon Technologies Ag
Priority to EP02774421A priority Critical patent/EP1456756A2/de
Priority to US10/490,992 priority patent/US7577878B2/en
Publication of WO2003029953A2 publication Critical patent/WO2003029953A2/de
Publication of WO2003029953A3 publication Critical patent/WO2003029953A3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Definitions

  • the present invention relates to a method according to the preamble of claim 1, i.e. a method of storing or forwarding data.
  • a system in which particularly large amounts of data have to be recorded, buffered and forwarded within a short period of time is a program-controlled unit, such as a microprocessor, a microcontroller or a signal processor, which has debug resources by means of which to monitor those within the program-controlled Trace information serving unit-running operations can be output.
  • a program-controlled unit such as a microprocessor, a microcontroller or a signal processor, which has debug resources by means of which to monitor those within the program-controlled Trace information serving unit-running operations can be output.
  • the debug resources contained in program-controlled units include, for example, the so-called on-chip debug support modules or OCDS modules.
  • Such and other debug resources make it possible to monitor the occurrence of states or events which can be predetermined from outside the program-controlled unit and, if such a state or an event has occurred, to perform actions which can be predetermined from outside the program-controlled unit or to cause.
  • the states or events whose occurrence can be monitored by the debug resources can include, for example, but by no means exclusively: - The access of the program-controlled unit or certain components thereof to certain memory addresses or registers, and / or
  • the actions that the debug resources take or initiate when such a state or event occurs include:
  • trace information i.e. the output of addresses, data and / or control signals transferred or used within the program-controlled unit to a device provided outside the program-controlled unit
  • the data output by the debug resources is output to the external device, which specifies the states and / or events to be monitored by the debug resources and the actions to be performed by the debug resources.
  • the external device can track the processes taking place within the program-controlled unit and thereby localize errors that occur within the program-controlled unit.
  • the trace information mentioned above, which can be output by the debug resources is of particular interest.
  • the trace information comprises addresses, data and / or control signals which occur every time the states and / or events to be monitored occur, or within a certain time before and / or after the occurrence of the states and / or events to be monitored within the program-controlled unit can be transferred or used.
  • FIG. 1 The basic structure of the part of a program-controlled unit, which is responsible for the acquisition, the intermediate storage and the output of the trace information, is illustrated in FIG. 1.
  • the arrangement shown in FIG. 1 contains n first buffers ZS1-1 to ZSl-n, a control device C controlling the buffers ZS1-1 to ZSl-n, and a second buffer connected downstream of the first buffers ZS1-1 to ZSl-n ZS2.
  • the first buffers ZS1-1 to ZSl-n are connected via lines ADS to the devices of the program-controlled unit which generate, transfer or use the trace information which can be output.
  • the connection is made in such a way that each of the first buffers ZS1-1 to ZSl-n is supplied with a very specific part of the trace information that can be output, for example
  • the intermediate memory ZS1-1 the addresses which are transmitted via a bus connecting the components of the program-controlled unit
  • the buffer ZS1-2 the data which are transmitted via the bus connecting the components of the program-controlled unit to one another, -
  • the buffer ZS1-3 the control signals which are transferred between the components of the program-controlled unit, and
  • any number of first buffers can be provided and that any address, data and / or control signals can be supplied to each buffer.
  • the control device C is supplied with various addresses, data, control signals, register contents, memory contents, etc., which occur within the program-controlled unit. All or part of the data supplied to the control device C can be the data which are also supplied to the first intermediate memories ZS1-1 to ZSl-n; alternatively or additionally, this data can also include other or further data.
  • the control device C checks whether the data supplied to it meet one or more specific conditions and, by correspondingly controlling the first intermediate memories ZS1-1 to ZSl-n, causes the data supplied to them to be stored when one or more of the data are added monitoring conditions are fulfilled, it depending on the fulfilled condition or on the fulfilled conditions whether and, if so, which first buffers ZS1-1 to ZSl-n store the data supplied to them. It can be provided, for example,
  • Buffer ZS1-1 stores the data supplied to it
  • the buffer store ZS1-1 and the buffer store ZS1-2 store the data supplied to them, - That when a first condition and then a third condition is met, all buffers ZS1-1 to ZS1- n store the data supplied to them, and / or
  • the control device C can also determine which addresses, data and / or control signals are supplied to the intermediate memories ZS1-1 to ZSl-n.
  • the buffers ZS1-1 to ZSl-n in FIG. 1, which are controlled by the control device C and are not shown, can be connected upstream, and from a large number of data supplied to them only one part of the data supplied by the control device C to the respective one Forward buffer stores ZS1-1 to ZSl-n.
  • the buffers ZS1-1 to ZSl-n are considered
  • Example FIFOs with a relatively small storage capacity The data stored in the intermediate stores ZS1-1 to ZS1-n are continuously transferred to the intermediate store ZS2 formed in the example under consideration by a larger RAM.
  • the data stored in RAM is - if necessary after it has been compressed (for example by a NEXÜS module according to the one defined by the IEEE Industry Standards and Technology Organization (IEEE-ISTO) in 1999 and called "The Nexus 5001 Forum Standard for a Global Embedded Processor Debug Interface "designated standard) - immediately or later from the program-controlled unit to the external device.
  • This output data is the trace information already mentioned above.
  • the external device can use the trace information supplied to it to track the processes taking place within the program-controlled unit. In order for the external device to be able to reconstruct the processes running within the program-controlled unit, it understandably also requires information about the sequence and / or the times of acquisition of the data supplied to it. The external device can determine this information itself in a relatively simple manner if the NEXUS module mentioned above or the like is used to output the trace information from the program-controlled unit.
  • NEXUS module compresses the data to be output, which reduces the amount of data to be output and the data can be output from the program-controlled unit immediately after it has been acquired, that is to say in real time.
  • the external device is able to determine the additional information it needs about the sequence and the times of acquisition of the data supplied to it from the sequence and the times of reception of the data supplied to it.
  • the present invention is therefore based on the object of developing the method according to the preamble of patent claim 1 in such a way that the processes occurring within a program-controlled unit can be determined in detail under all circumstances using trace information output from it. This object is achieved by the method claimed in claim 1.
  • the method according to the invention is characterized in that the data are stored or forwarded together with information from which it is possible to ascertain in which order, at what point in time and / or within what period of time the relevant data were recorded, stored or forwarded.
  • 1 shows the basic structure of a part of a program-controlled unit responsible for the acquisition, the intermediate storage, and the output of trace information
  • FIGS 2 and 3 representations to illustrate the handling of sequence information associated with the data to be stored or to be forwarded.
  • the method described below for storing and forwarding data is based on the intermediate storage and Forwarding of trace information to be output from a program-controlled unit.
  • the method can also be used for storing or forwarding any other data, and can also be used outside of program-controlled units.
  • the devices required to carry out the method are part of the program-controlled unit which outputs the trace information.
  • the method by which it can be ensured that trace information to be output is output from the program-controlled unit in the order in which it was acquired can be implemented in the arrangement shown in FIG. 1, and in such an implementation it consists in
  • data source information which indicates which addresses, data or control signals each represent the respective data (from which data source they originate).
  • the information relating to the sequence can be added by the control device C, which is modified accordingly for this purpose in comparison with a control device C used in a conventional method.
  • the part of the control device C which generates the sequence information consists in the simplest case of a counter which is incremented each time data is written into one of the first buffers ZS1-1 to ZSl-n, and its current count as that order information stored together with the relevant data is used.
  • the counter is a modulo-4 counter, that is to say a counter counting repeatedly from 0 to 3.
  • the data which are to be written in response to the state occurring at t4 or to the event occurring at t4 in the first buffer stores ZS1-1, ZS1-2 and ZS1-3, also together with a sequence having the value 3 -Information stored,
  • the data which are to be written into the first buffer memory ZS1-1 in response to the state occurring at t7 or to the event occurring at t7 are likewise stored together with sequence information having the value 0, and
  • ZS1-1 to ZSl-n have been registered, will be output from these. This is illustrated below using an example.
  • FIG. 3 illustrates which entries of the data stored in the first intermediate stores ZS1-1 to ZS1-3 are assigned which sequence information.
  • the entry with the lowest number designates the youngest entry and the entry with the highest number the oldest entry.
  • sequence information of the entry 4 of the first buffer ZS1-1, the sequence information of the entry 2 of the first buffer ZS1-2, and the sequence information of the entry 2 of the first buffer ZS1-3 the sequence information is determined with the lowest value, and then the data to which this sequence information is assigned, i.e. that under entry 4 of the first buffer ZS1-1, and that under entry 2 of the first buffer ZS1-2, and that under the Entry 2 of the first buffer ZS1-3 stored data (all data is assigned the same sequence information) are output in succession,
  • sequences from the sequence information of the entry 3 of the first buffer ZS1-1, the sequence information of the entry 1 of the first buffer ZS1-2, and the sequence information of the entry 1 of the first buffer ZS1-3 -Information with the lowest value is determined, and then the data to which this sequence information is assigned, that is to say under entry 3 of the first buffer store ZS1-1, and that under entry 1 of the first buffer store ZS1-2, and that under the entry 1 of the first buffer memory ZS1-3 (all data is assigned the same sequence information) are output in succession,
  • the described procedure makes it possible to output data written in the first buffers ZS1-1 to ZSl-n in the order in which they were written in the first buffers ZS1-1 to ZSl-n ,
  • a not so efficient, but still advantageous procedure for incrementing the counter is that the counter is incremented whenever the state or event for which data is stored in one or more of the first buffers ZS1-1 to ZS1 -n are to be written, is a different state or event than the state or event, on the occurrence of which data was last written into one or more of the first intermediate memories ZS1-1 to ZSl-n.
  • the time information can include a time related to a fixed reference time, or a time related to changing reference times, wherein, for example, the time of start-up or activation of the program-controlled unit or a specific component thereof can be used as a fixed reference time, and wherein as a changing time
  • the reference point in time can be used, for example, the point in time at which the most recently acquired, stored or output data was recorded, stored or output, or the point in time at which a specific time has passed since a fixed or changing reference point in time.
  • the easiest to implement and the easiest to evaluate are data that are saved or output together with a point in time related to a fixed reference point.
  • providing the data with such time information can be problematic under certain circumstances.
  • the amount of data to be stored and / or the amount of data to be output can increase very sharply.
  • the first possibility is that the time information contains one or more bits, by which it is signaled whether and possibly additionally how many overflows of the counter have occurred in the meantime.
  • the second possibility is that whenever an overflow has occurred, a separate message signaling this fact is output to the external device.
  • the time contained in the time information generally relates to the last overflow of the counter or the last time a certain count was reached, the overflow or the reaching of the specific count either by corresponding bits in the related Time-containing information or can be signaled by a separate message.
  • the external device has the information within which period of time the data transmitted to it was recorded, stored or output.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Infusion, Injection, And Reservoir Apparatuses (AREA)

Abstract

Das beschriebene Verfahren zeichnet sich dadurch aus, dass die Daten zusammen mit einer Information gespeichert oder weitergeleitet werden, aus welcher ermittelbar ist, in welcher Reihenfolge, zu welchem Zeitpunkt, und/oder innerhalb welchen Zeitraumes die betreffenden Daten erfasst, gespeichert oder weitergeleitet wurden.

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äuterung.
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 Auftreten von von außerhalb der programmgesteuerten Einheit vorgebbaren Zuständen oder Ereignissen innerhalb der programmgesteuerten Einheit zu überwachen und dann, wenn ein solcher Zustand oder ein solches Ereignis aufgetreten ist, von außerhalb 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 Bedingung eingetreten ist, an eine außerhalb der programmgesteuerten 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 vorgesehenen 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 programmgesteuerten 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 Ereignisse, und die von den Debug-Ressourcen auszuführenden Aktionen 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 auftretende Fehler lokalisieren. Vorliegend interessieren besonders die vorstehend bereits erwähnten Trace-Informationen, welche durch die Debug-Ressourcen 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 Auftreten 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 Zwischenspeicher ZS1-1 bis ZSl-n, eine die Zwischenspeicher ZS1- 1 bis ZSl-n steuernde Steuereinrichtung C, und einen den er- sten Zwischenspeichern ZS1-1 bis ZSl-n nachgeschalteten zweiten Zwischenspeicher ZS2.
Die ersten Zwischenspeicher ZS1-1 bis ZSl-n sind über Leitungen ADS mit den Einrichtungen der programmgesteuerten Einheit verbunden, welche die ausgebbaren Trace-Informationen erzeugen, transferieren oder verwenden. Die Verbindung erfolgt derart, daß jedem der ersten Zwischenspeicher ZS1-1 bis ZSl-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 zwischen den Komponenten der programmgesteuerten Einheit transferiert werden, und
- dem Zwischenspeicher ZSl-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ß jedem Zwischenspeicher beliebige Adressen, Daten und/oder Steuersignale zugeführt werden können.
Der Steuereinrichtung C werden verschiedene Adressen, Daten, Steuersignale, Registerinhalte, Speicherinhalte etc. zugefü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 ZSl-n zugeführt werden; alternativ 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 bestimmte Bedingungen erfüllen, und veranlaßt durch eine entsprechende Ansteuerung der ersten Zwischenspeicher ZS1-1 bis ZSl-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 ZSl-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 Zwischenspeicher 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 ZSl-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 ZSl-n zugeführt werden. Hierzu können den Zwischenspeichern ZS1-1 bis ZSl-n in der Figur 1 nicht gezeigte, von der Steuereinrichtung C gesteuerte 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 ZSl-n weiterleiten.
Die Zwischenspeicher ZS1-1 bis ZSl-n sind im betrachteten
Beispiel FIFOs mit einer relativ geringen Speicherkapazität. Die in den Zwischenspeichern ZS1-1 bis ZSl-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 - gegebenenfalls nach einer Komprimierung derselben (beispielsweise durch ein NEXÜS-Modul gemäß dem von der IEEE Industry Standards and Technology Organization (IEEE-ISTO) in 1999 definierten 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 programmgesteuerten Einheit ablaufenden Vorgänge durch die externe Einrichtung 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 verringert, 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 zugefü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 benötigten Zusatzinformationen führt insbesondere dann, wenn in kurzer Zeit so viele Trace-Informationen aus der programmgesteuerten 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 Vorgä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 programmgesteuerten 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 welcher 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 Reihenfolge, zu welchem Zeitpunkt, oder innerhalb welches Zeitraums 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 entnehmbar.
Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen 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-Informationen zuständigen Teils einer programmgesteuerten Einheit, und
Figuren 2 und 3 Darstellungen zur Veranschaulichung der Handhabung 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 auszugebenden Trace-Informationen beschrieben.
Es sei jedoch bereits an dieser Stelle darauf hingewiesen, daß das Verfahren auch beim Speichern oder Weiterleiten beliebiger 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-Informationen in der Reihenfolge ihrer Erfassung aus der programmgesteuerten Einheit ausgegeben werden. Danach wird eine Möglichkeit beschrieben, durch welche aus den aus der programmgesteuerten Einheit ausgegebenen Informationen unabhängig vom Zeitpunkt der Ausgabe der Trace-Informationen der Zeitpunkt oder der Zeitraum ermittelt werden kann, zu dem bzw. innerhalb dessen die Trace-Informationen innerhalb der programmgesteuerten Einheit erfaßt, zwischengespeichert oder ausgegeben wurden.
Es sei bereits an dieser Stelle darauf hingewiesen, daß die genannten Möglichkeiten sowohl in Kombination als auch einzeln zum Einsatz kommen können.
Das Verfahren, durch welches sichergestellt werden kann, daß auszugebende Trace-Informationen in der Reihenfolge ihrer Erfassung aus der programmgesteuerten Einheit ausgegeben werden, ist in der in der Figur 1 gezeigten Anordnung realisierbar, 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 gespeichert werden, aus welcher ermittelbar ist, in welcher Reihenfolge die betreffenden Daten erfaßt (in die ersten Zwischenspeicher 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 zugeordneten Reihenfolgen-Information in der Reihenfolge, in welcher sie in die ersten Zwischenspeicher ZS1-1 bis ZSl-n geschrieben wurden, zum zweiten Zwischenspeicher ZS2 transferiert werden, und in diesem derart gespeichert werden, daß zeitlich aufeinanderfolgend erhaltene Daten unter aufeinanderfolgenden 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 ausgegeben werden, und daß die im zweiten Zwischenspeicher ZS2 gespeicherten 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 ZSl-n aus der programmgesteuerten 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 Zwischenspeicher 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 erfolgen 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 Steuereinrichtung C besteht im einfachsten Fall aus einem Zähler, der jedes Mal dann, wenn Daten in einen der ersten Zwischenspeicher ZS1-1 bis ZSl-n geschrieben werden, inkrementiert wird, und dessen jeweils aktueller Zählstand als die zusammen mit den betreffenden Daten gespeicherte Reihenfolgen-Information verwendet wird.
Vorzugsweise wird dann, wenn gleichzeitig in mehrere der er- sten Zwischenspeicher ZS1-1 bis ZSl-n Daten geschrieben werden, für die gleichzeitig in die ersten Zwischenspeicher ZS1- 1 bis ZSl-n geschriebenen Daten die selbe Reihenfolgen-Information 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 Zwischenspeicher 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 ersten Zwischenspeicher ZS1-1 bis ZSl-n zu speichern waren.
Dies wird nachfolgend anhand eines Beispiels näher veranschaulicht. Es sei angenommen,
- daß zu einem Zeitpunkt tO ein erster Zustand oder ein erstes Ereignis auftritt, woraufhin Daten in den ersten Zwischenspeicher 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 Zwischenspeicher 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 tδ 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 tO auftre- tenden Zustand bzw. auf das bei tO auftretende Ereignis in den ersten Zwischenspeicher ZS1-2 zu schreiben sind, zusammen mit einer den Wert 0 aufweisenden Reihenfolgen- Information gespeichert,
- werden die Daten, die als Reaktion auf den bei tl auftretenden Zustand bzw. auf das bei tl auftretende Ereignis in den ersten Zwischenspeicher ZS1-1 zu schreiben sind, zusammen mit einer den Wert 1 aufweisenden Reihenfolgen- Information gespeichert,
- werden die Daten, die als Reaktion auf den bei t2 auftretenden Zustand bzw. auf das bei t2 auftretende Ereignis in den ersten Zwischenspeicher ZS1-2 zu schreiben sind, zusammen mit einer den Wert 2 aufweisenden Reihenfolgen- Information gespeichert,
werden die Daten, die als Reaktion auf den bei t3 auftretenden Zustand bzw. auf das bei t3 auftretende Ereignis in die ersten Zwischenspeicher ZS1-1, ZS1-2 und ZSl-3 zu schreiben sind, zusammen mit einer den Wert 3 aufweisenden Reihenfolgen-Information gespeichert,
- werden die Daten, die als Reaktion auf den bei t4 auftretenden 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 auftretenden 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 auftretenden Zustand bzw. auf das bei t6 auftretende Ereignis in den ersten Zwischenspeicher ZS1-1 zu schreiben sind, ebenfalls zusammen mit einer den Wert 0 aufweisenden Reihenfolgen-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, ebenfalls zusammen mit einer den Wert 0 aufweisenden Reihenfolgen-Information gespeichert, und
- werden die Daten, die als Reaktion auf den bei t8 auftretenden 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 Reihenfolgen-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 veranschaulicht.
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 geschrieben 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 bezeichnet der Eintrag mit der niedrigsten Nummer jeweils den jüngsten Eintrag, und der Eintrag mit der höchsten Nummer jeweils 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 Daten, welchen diese Reihenfolgen-Information zugeordnet ist, also die unter dem Eintrag 3 des ersten Zwischenspeichers ZS1-2 gespeicherten Daten (diesen Daten ist die Reihenfolgen-Information mit dem niedrigsten Wert, nämlich 2, zugeordnet) ausgegeben werden,
- daß danach aus der Reihenfolgen-Information des Eintrages 4 des ersten Zwischenspeichers ZS1-1, der Reihenfolgen-Information 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 Zwischenspeichers 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 Zwischenspeichers ZS1-3 gespeicherten Daten (allen Daten ist die selbe Reihenfolgen-Information zugeordnet) nacheinander ausgegeben werden,
- daß danach die unter dem Eintrag 2 des ersten Zwischenspeichers ZS1-1 gespeicherten Daten ausgegeben werden (die anderen ersten Zwischenspeicher ZS1-2 und ZS1-3 enthalten keine auszugebenden Daten mehr) , und
- daß danach die unter dem Eintrag 1 des ersten Zwischenspeichers ZS1-1 gespeicherten Daten ausgegeben werden (die anderen 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 Zwischenspeicher 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-Information verwendet wird, nicht bei jedem Einschreiben von Daten, sondern nur dann inkrementiert, wenn bestimmte weitere Bedingungen erfüllt sind, mit einem Zähler aus, dessen maximaler Zählstand ein sehr geringer Wert ist, wodurch der zur Speicherung 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 Speicherplatz 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 Zwischenspeicher ZS1-1 bis ZSl-n geschrieben wurden.
Zusätzlich oder alternativ zu der Speicherung und/oder Wei- terleitung der aus der programmgesteuerten Einheit auszugebenden 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 Zwischenspeicher ZS2 zu speichernden Daten und/oder die aus der programmgesteuerten Einheit auszugebenden Daten zusammen mit den Zeitpunkt der Erfassung oder den Zeitpunkt der Speicherung oder den Zeitpunkt der Ausgabe angebenden, im folgenden als Zeit-Informationen bezeichneten Informationen zu speichern bzw. auszugeben.
Die Zeit-Informationen können eine auf einen festen Bezugszeitpunkt bezogene Zeit, oder eine auf wechselnde Bezugszeitpunkte bezogene Zeit beinhalten, wobei als fester Bezugszeitpunkt 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 welchem 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 Speicherung 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 Bezugspunkt 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 Datenmenge 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-Informationen 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-Informationen bedingten Anstieges der zu speichernden und/oder auszugebenden 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 erheblich 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-Information 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 kennen, kann auch vorgesehen werden, nur den Überlauf des Zählers oder das Erreichen eines bestimmten Zählstandes signalisierende 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 ZSl-n+1 vorge- sehen wird,
- daß jedes Mal, wenn der Zähler überläuft oder ein bestimmter Zählstand erreicht ist, eine diesen Umstand signalisierende Information zusammen mit einer Reihenfolgen-Informa- tion in den zusätzlichen ersten Zwischenspeicher ZSl-n+1 geschrieben wird,
- daß die in den ersten Zwischenspeichern ZSl-1 bis ZSl-n+1 gespeicherten Daten in der Reihenfolge, in welcher sie in diese eingeschrieben wurden, an den zweiten Zwischenspeicher 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 Erreichen eines bestimmten Zählstandes signalisierenden Informationen 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 detailliert ermitteln zu können. Bezugszeichenliste
ADS Adressen, Date, Steuersignale C Steuereinrichtung ZSx Zwischenspeicher

Claims

Patentansprüche
1. Verfahren zum Speichern oder Weiterleiten von Daten, d a d u r c h g e k e n n z e i c h n e t, daß die Daten zusammen mit einer Information gespeichert oder weitergeleitet werden, aus welcher ermittelbar ist, in welcher Reihenfolge, zu welchem Zeitpunkt, und/oder innerhalb welchen Zeitraumes die betreffenden Daten erfaßt, gespeichert oder weitergeleitet wurden.
2. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, daß die Information eine Reihenfolgen-Information umfaßt, die angibt, in welcher Reihenfolge die Daten erfaßt, gespeichert oder weitergeleitet wurden.
3. Verfahren nach Anspruch 2, d a d u r c h g e k e n n z e i c h n e t, daß als Reihenfolgen-Information 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, d a d u r c h g e k e n n z e i c h n e t, daß als Reihenfolgen-Information der Zählstand eines Zählers verwendet wird, der inkrementiert wird, wenn sich der Zustand oder das Ereignis, auf dessen Auftreten hin Daten zu speichern oder weiterzuleiten sind, von dem Zustand oder dem Ereignis unterscheidet, auf dessen Auftreten hin die zuletzt gespeicherten oder weitergeleiteten Daten gespeichert oder weitergeleitet wurden.
5. Verfahren nach Anspruch 2, d a d u r c h g e k e n n z e i c h n e t, daß die zu speichernden Daten in einen oder mehrere Speicher einer Vielzahl von Speichern gespeichert werden, und daß als Reihenfolgen-Information 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 gespeicherten Daten gespeichert wurden.
6. Verfahren nach einem der Ansprüche 2 bis 5, d a d u r c h g e k e n n z e i c h n e t, daß die zu speichernden oder weiterzuleitenden Daten aus einer programmgesteuerten Einheit auszugebende Trace-Informa- tionen sind.
7. Verfahren nach Anspruch 6, d a d u r c h g e k e n n z e i c h n e t, daß die Trace-Informationen 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 verfolgen lassen.
8. Verfahren nach Anspruch 6 oder 7, d a d u r c h g e k e n n z e i c h n e t, daß die erfaßten Adressen, Daten und/oder Steuersignale zusammen mit der Reihenfolgen-Information in einen oder mehrere Speicher einer Vielzahl von ersten Speichern geschrieben wer- den.
9. Verfahren nach Anspruch 8, d a d u r c h g e k e n n z e i c h n e t, daß die in den ersten Speichern gespeicherten Daten in der Reihenfolge, in welcher sie in die ersten Speicher geschrieben wurden, an einen zweiten Speicher ausgegeben werden.
10. Verfahren nach Anspruch 9, d a d u r c h g e k e n n z e i c h n e t, daß die aus den ersten Speichern ausgegebenen Daten ohne die Reihenfolgen-Informationen zum zweiten Speicher übertragen und in diesem gespeichert werden.
11. Verfahren nach Anspruch 9 oder 10, d a d u r c h g e k e n n z e i c h n e t, daß die im zweiten Speicher gespeicherten Daten als Trace- Informationen aus der programmgesteuerten Einheit ausgegeben werden.
12. Verfahren nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, daß die Information eine Zeit-Information umfaßt, durch welche der Zeitpunkt oder der Zeitraum angegeben wird, zu dem bzw. innerhalb dessen die zu speichernden oder weiterzuleitenden Daten erfaßt, gespeichert oder weitergeleitet wurden.
13. Verfahren nach Anspruch 12, d a d u r c h g e k e n n z e i c h n e t, daß die Zeit-Information eine auf einen festen Bezugszeitpunkt bezogene Zeit umfaßt.
14. Verfahren nach Anspruch 13, d a d u r c h g e k e n n z e i c h n e t, daß der feste Bezugszeitpunkt der Zeitpunkt der Inbetriebnahme oder der Aktivierung des Systems oder einer bestimmten Systemkomponente ist.
15. Verfahren nach Anspruch 12, d a d u r c h g e k e n n z e i c h n e t, daß die Zeit-Information eine auf wechselnde Bezugszeitpunkte bezogene Zeit umfaßt.
16. Verfahren nach Anspruch 15, d a d u r c h g e k e n n z e i c h n e t, 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, d a d u r c h g e k e n n z e i c h n e t, daß als Bezugszeitpunkt der Zeitpunkt verwendet wird, zu dem eine bestimmte Zeit nach einem festen oder wechselnden Bezugszeitpunkt vergangen ist.
18. Verfahren nach einem der Ansprüche 12 bis 17, d a d u r c h g e k e n n z e i c h n e t, daß die Zeit-Information 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, d a d u r c h g e k e n n z e i c h n e t, 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 Zeit-Informationen enthalten.
20. Verfahren nach einem der Ansprüche 12 bis 18, d a d u r c h g e k e n n z e i c h n e t, daß die zu speichernden oder weiterzuleitenden Daten in Messages integriert werden, und daß zur Speicherung oder Weiterleitung der Zeit-Informationen zumindest teilweise eigene Messages verwendet werden.
21. Verfahren nach einem der Ansprüche 12 bis 20, d a d u r c h g e k e n n z e i c h n e t, daß die zu speichernden oder weiterzuleitenden Daten aus einer programmgesteuerten Einheit auszugebende Trace-Infor- ationen sind.
22. Verfahren nach Anspruch 21, d a d u r c h g e k e n n z e i c h n e t, daß die Trace-Informationen 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 verfolgen lassen.
23. Verfahren nach Anspruch 21 oder 22, d a d u r c h g e k e n n z e i c h n e t, daß die erfaßten Adressen, Daten und/oder Steuersignale zusammen mit der ihnen jeweils zugeordneten Zeit-Information in einen oder mehrere Speicher einer Vielzahl von ersten Speichern geschrieben werden.
24. Verfahren nach Anspruch 21 oder 22, d a d u r c h g e k e n n z e i c h n e t, daß die erfaßten Adressen, Daten und/oder Steuersignale in einen oder mehrere Speicher einer Vielzahl von ersten Spei- ehern geschrieben werden, und daß die Zeit-Informationen in einen eigenen ersten Speicher geschrieben werden.
25. Verfahren nach Anspruch 23 oder 24, d a d u r c h g e k e n n z e i c h n e t, daß die in den ersten Speichern gespeicherten Daten und Zeit- Informationen in der Reihenfolge, in welcher sie in die ersten Speicher geschrieben wurden, an einen zweiten Speicher ausgegeben werden.
26. Verfahren nach Anspruch 25, d a d u r c h g e k e n n z e i c h n e t, daß die im zweiten Speicher gespeicherten Daten in Form von Messages als Trace-Informationen aus der programmgesteuerten Einheit ausgegeben werden.
PCT/DE2002/003645 2001-09-28 2002-09-25 Verfahren zum speichern oder weiterleiten von daten WO2003029953A2 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP02774421A EP1456756A2 (de) 2001-09-28 2002-09-25 Verfahren zum speichern oder weiterleiten von daten
US10/490,992 US7577878B2 (en) 2001-09-28 2002-09-25 Method for storing or transferring data using time sequencing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10148109A DE10148109B4 (de) 2001-09-28 2001-09-28 Verfahren zum Speichern oder Weiterleiten von Daten
DE10148109.8 2001-09-28

Publications (2)

Publication Number Publication Date
WO2003029953A2 true WO2003029953A2 (de) 2003-04-10
WO2003029953A3 WO2003029953A3 (de) 2004-05-21

Family

ID=7700778

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2002/003645 WO2003029953A2 (de) 2001-09-28 2002-09-25 Verfahren zum speichern oder weiterleiten von daten

Country Status (4)

Country Link
US (1) US7577878B2 (de)
EP (1) EP1456756A2 (de)
DE (1) DE10148109B4 (de)
WO (1) WO2003029953A2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040267489A1 (en) * 2003-06-24 2004-12-30 Frederic Reblewski Data compaction and pin assignment
CA2433750A1 (en) * 2003-06-27 2004-12-27 Ibm Canada Limited - Ibm Canada Limitee Automatic collection of trace detail and history data
US8370806B2 (en) * 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US8533530B2 (en) 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8380966B2 (en) * 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8341604B2 (en) * 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
US8074118B2 (en) * 2009-01-28 2011-12-06 Dspace Digital Signal Processing And Control Engineering Gmbh Method for influencing a control unit and manipulation unit
CN104111341B (zh) * 2013-04-16 2017-10-17 深圳迈瑞生物医疗电子股份有限公司 自动分析装置及其分析方法和分析系统
US11543396B2 (en) 2019-06-11 2023-01-03 Msa Technology, Llc Gas sensor with separate contaminant detection element

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2249644A (en) * 1990-11-06 1992-05-13 Int Computers Ltd First-in first-out memory
US5625785A (en) * 1994-01-13 1997-04-29 Kabushiki Kaisha Toshiba Information processing apparatus having dual buffers for transmitting debug data to an external debug unit

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4407573C1 (de) * 1994-03-07 1995-03-30 Siemens Nixdorf Inf Syst Datenverarbeitungsanlage mit Einrichtungen zur Aufzeichnung von bei Programmabläufen wirksam werdenden Steuersignalen und/oder Adressen
US7178133B1 (en) * 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2249644A (en) * 1990-11-06 1992-05-13 Int Computers Ltd First-in first-out memory
US5625785A (en) * 1994-01-13 1997-04-29 Kabushiki Kaisha Toshiba Information processing apparatus having dual buffers for transmitting debug data to an external debug unit

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"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 *
"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 *
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 *
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 *

Also Published As

Publication number Publication date
US7577878B2 (en) 2009-08-18
EP1456756A2 (de) 2004-09-15
US20050022067A1 (en) 2005-01-27
DE10148109B4 (de) 2006-10-12
WO2003029953A3 (de) 2004-05-21
DE10148109A1 (de) 2003-04-24

Similar Documents

Publication Publication Date Title
DE69934401T2 (de) Datenerfassungssystem mit mitteln zur analyse und zum abspeichern in echtzeit
DE2230119C2 (de) Einrichtung zur elektronischen Überwachung des Auftretens von Ereignissen innerhalb bestimmter Zeitabschnitte
DE2423719A1 (de) Schaltungsanordnung zur ueberwachung der leistung eines multiprozessor-rechners
DE3228405A1 (de) Emulator zur erzeugung einer folge von steuersignalen
WO2003029953A2 (de) Verfahren zum speichern oder weiterleiten von daten
DE102009004726A1 (de) Systeme und Verfahren zum Verfolgen von Befehlszeigern und Datenzugriffen
DE2746337B1 (de) Verfahren und Schaltungsanordnung zur Pruefung einer Datenuebertragungsanlage unter Verwendung einer Pruefschleife
EP1145113B1 (de) Verfahren und anordnung zur erzeugung und ausführung von komprimierten programmen eines vliw-prozessors
DE2633155A1 (de) Einrichtung zur erzeugung zeitdefinierter steuersignale
DE10132313A1 (de) Programmgesteuerte Einheit
EP1260905B1 (de) Programmgesteuerte Einheit
DE4435457C2 (de) Verfahren zum Archivieren von Prozeßdaten
DE2153116B2 (de) Funktionsüberwachter Informationsspeicher, insbesondere integrierter Halbleiterspeicher
EP1379953A1 (de) Programmgesteuerte einheit
EP0903663B1 (de) Anordnung mit einem Umlaufspeicher und mit eine Einrichtung, welche ein auf den Umlaufspeicher zugreifendes Programm ausführt
DE3132984C2 (de)
EP0236818B1 (de) Verfahren und Schaltungsanordnung zum Überwachen von mit einer Datenvermittlungs- bzw. Datenübertragungseinrichtung verbundenen Anschlussleitungen
DE4204113C1 (en) Measurement data compression method for communication and control processes on distribution line - defining identification classes for data sets, and protocolling repeated sets
DE3211256C2 (de) Schaltungsanordnung zur im Fehlerfall vorgesehenen Wiederholung von Maschinenbefehlen in einer Datenverarbeitungsanlage
EP1429254B1 (de) Interrupt-Behandlung in einem CAN-Knoten
DE3023024A1 (de) Einrichtung zur erfassung und vorbehandlung von informationen fuer die ueberwachung von rechnern
DE102016015757B4 (de) Verfahren zum Betrieb eines Watchdog umfassend eine Mustererkennung für wiederkehrende Lastsituationen mit Rücksetzen des Ereignisspeichers
EP0758770A1 (de) Verfahren und Schaltungsanordnung zur Resynchronisation einer Speicherverwaltung
DE102006039394B4 (de) Einrichtung zum Erfassen von Messdaten
DE10119266A1 (de) Programmgesteuerte Einheit

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FR GB GR IE IT LU MC NL PT SE SK TR

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2002774421

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2002774421

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10490992

Country of ref document: US