EP1456756A2 - Verfahren zum speichern oder weiterleiten von daten - Google Patents
Verfahren zum speichern oder weiterleiten von datenInfo
- Publication number
- EP1456756A2 EP1456756A2 EP02774421A EP02774421A EP1456756A2 EP 1456756 A2 EP1456756 A2 EP 1456756A2 EP 02774421 A EP02774421 A EP 02774421A EP 02774421 A EP02774421 A EP 02774421A EP 1456756 A2 EP1456756 A2 EP 1456756A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- stored
- time
- information
- forwarded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/348—Circuit details, i.e. tracer hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/835—Timestamp
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring 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
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.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10148109 | 2001-09-28 | ||
DE10148109A DE10148109B4 (de) | 2001-09-28 | 2001-09-28 | Verfahren zum Speichern oder Weiterleiten von Daten |
PCT/DE2002/003645 WO2003029953A2 (de) | 2001-09-28 | 2002-09-25 | Verfahren zum speichern oder weiterleiten von daten |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1456756A2 true EP1456756A2 (de) | 2004-09-15 |
Family
ID=7700778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02774421A Withdrawn EP1456756A2 (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)
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 |
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 |
US8533530B2 (en) | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
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 |
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 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9024085D0 (en) * | 1990-11-06 | 1990-12-19 | Int Computers Ltd | First-in first-out memory |
JP3290280B2 (ja) * | 1994-01-13 | 2002-06-10 | 株式会社東芝 | 情報処理装置 |
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 |
-
2001
- 2001-09-28 DE DE10148109A patent/DE10148109B4/de not_active Expired - Lifetime
-
2002
- 2002-09-25 WO PCT/DE2002/003645 patent/WO2003029953A2/de active Application Filing
- 2002-09-25 US US10/490,992 patent/US7577878B2/en active Active
- 2002-09-25 EP EP02774421A patent/EP1456756A2/de not_active Withdrawn
Non-Patent Citations (1)
Title |
---|
See references of WO03029953A3 * |
Also Published As
Publication number | Publication date |
---|---|
US7577878B2 (en) | 2009-08-18 |
DE10148109A1 (de) | 2003-04-24 |
DE10148109B4 (de) | 2006-10-12 |
US20050022067A1 (en) | 2005-01-27 |
WO2003029953A2 (de) | 2003-04-10 |
WO2003029953A3 (de) | 2004-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69028190T2 (de) | Verfahren und Vorrichtung zur Softwareüberwachung und -entwicklung | |
DE4305442C2 (de) | Verfahren und Vorrichtung zum Erzeugen eines Testvektors | |
DE69934401T2 (de) | Datenerfassungssystem mit mitteln zur analyse und zum abspeichern in echtzeit | |
DE3855274T2 (de) | Botschafts-Fifo-Puffersteuergerät | |
DE2423719A1 (de) | Schaltungsanordnung zur ueberwachung der leistung eines multiprozessor-rechners | |
DE3228405A1 (de) | Emulator zur erzeugung einer folge von steuersignalen | |
EP1456756A2 (de) | Verfahren zum speichern oder weiterleiten von daten | |
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) | ||
DE2014729A1 (de) | Datenverarbeitungssystem mit mindestens einer Datenverwendungseinheit | |
EP0236818B1 (de) | Verfahren und Schaltungsanordnung zum Überwachen von mit einer Datenvermittlungs- bzw. Datenübertragungseinrichtung verbundenen Anschlussleitungen | |
DE3211256C2 (de) | Schaltungsanordnung zur im Fehlerfall vorgesehenen Wiederholung von Maschinenbefehlen in einer Datenverarbeitungsanlage | |
DE4204113C1 (en) | Measurement data compression method for communication and control processes on distribution line - defining identification classes for data sets, and protocolling repeated sets | |
EP1429254B1 (de) | Interrupt-Behandlung in einem CAN-Knoten | |
DE69317364T2 (de) | Verfahren zur Beobachtung eines Rechnerprogrammablaufs in einem Prozessor mit internem Cache-Speicher | |
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 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20040410 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SK TR |
|
17Q | First examination report despatched |
Effective date: 20060720 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20080401 |