2003 P 07711
Beschreibung
Verfahren und Anordnung zur LaufZeitmessung von Funktionen
Die Erfindung betrifft ein Verfahren und eine Anordnung zur LaufZeitmessung einer vorgegebenen Funktion eines Computer- programms, das von einem Computersystem ausgeführt wird.
LaufZeitmessungen von Funktionen werden eingesetzt, um Compu- terprogramme dahingehend zu optimieren, dass die Ressourcen eines Computersystems optimal genutzt werden. Die Laufzeit einer Funktion ist diejenige Zeit, die ein Prozessor zum Abarbeiten der Funktion benötigt. Die Laufzeit gibt beispielsweise Aufschluss darüber, welcher Anteil der Prozessorkapazi- tat durch das Abarbeiten einer bestimmten Funktion belegt wird.
Insbesondere ist diese Optimierung der Ressourcennutzung erforderlich bei der Entwicklung von Computerprogrammen für den Betrieb sogenannter Echtzeitsysteme. Bei Echtzeitsystemen sind Programme zur Verarbeitung anfallender Daten ständig betriebsbereit, derart, dass die Verarbeitungsergebnisse innerhalb einer vorgegebenen Zeitspanne verfügbar sind. Die Daten können je nach Anwendungsfall nach einer zeitlich zufälligen Verteilung oder zu vorher bestimmten Zeitpunkten anfallen (siehe z. B. DIN 44300).
Bei Echtzeitsystemen handelt es sich häufig um sogenannte "eingebettete Systeme", welche komplexe Steuerungs- und Da- tenverarbeitungsau gaben in technischen Systemen übernehmen. Die Funktionalität eingebetteter Systeme wird durch eine Integration spezieller Hardware mit Prozessoren und Software realisiert. Derartige Systeme werden beispielsweise für die Steuerung von Motoren in der Automobiltechnik eingesetzt. Mehrere eingebettete Systeme können miteinander verbunden sein und eine Einheit bilden, wobei für die Verbindung bei-
2003 P 07711
spielsweise ein sogenannter CAN-Bus (Controller Area Network) verwendet werden kann.
Auf einem Computersystem oder Prozessor können dabei mehrere unabhängige Programme ablaufen, welche sich die Rechenzeit eines Prozessors teilen. Häufig sind die Programme in abgrenzbare Einzelfunktionen unterteilt (Funktionen) . Oft werden zur Erfüllung einer bestimmten Aufgabe mehrere Funktionen hintereinander ausgeführt. Zum Abarbeiten einer Aufgabe kön- nen die Funktionen in einem so genannten Task gebündelt werden. Diese Tasks enthalten somit Funktionen und rufen diese auf. Im Folgenden werden, wie in der Praxis üblich, die Begriffe "Funktion" und "Task" (oder auch Interrupt, Exception, Unterprogramm, Routine, Aggregat, Objekt) weitgehend synonym verwendet. In Echtzeitsystemen sind die Computerprogramme häufig so ausgestaltet, dass die Tasks in regelmäßigen Zeitabständen (z. B. alle 10 Millisekunden) wiederholt aufgerufen werden. Die Periode der Wiederholungen wird oft als "Zeitscheibe" bezeichnet.
Mehrere Tasks können entweder unabhängig oder voneinander abhängig parallel laufen. Da sich i. d. R. mehrere Tasks die Rechenzeit eines Prozessors teilen, werden häufig die Tasks in mehrere Teilabschnitte zerlegt, die sequenziell oder ver- schachtelt abgearbeitet werden. Dabei kann bestimmten Tasks eine höhere Priorität als anderen Tasks zugewiesenen werden, so dass bei Ausführung eines höher priorisierten Tasks die Ausführung eines Tasks mit niedrigerer Priorität unterbrochen wird. Zusätzlich kann die Abarbeitung des Computerprogramms auch durch besondere externe oder interne Ereignisse (z. B. die Änderung eines Spannungssignals am Eingang einer Schnittstelle oder ein ungültiges Ergebnis bei der Abarbeitung einer Aufgabe) unterbrochen werden. Derartige außerordentliche Unterbrechungen werden als Interrupts bezeichnet. Infolge die- ser komplexen Sequenzierung und Verschachtelung mehrerer
Tasks bei gleichzeitiger Notwendigkeit der Abarbeitung von Aufgaben innerhalb fest vorgegebener Zeitspannen kommt der
2003 P 07711
Optimierung der Ressourcennutzung in Echtzeitsystemen eine besondere Bedeutung zu. Für diese Optimierung wiederum ist es erforderlich, die Laufzeiten der wichtigsten oder sogar aller Funktionen zu ermitteln.
Zur Durchführung von LaufZeitmessungen einer vorgegebenen Funktion von Computerprogrammen werden in der Praxis häufig so genannte "Zeitstempel-Funktionen" eingesetzt. Bei diesen Verfahren wird der ursprüngliche Programmcode des Computer- programms so modifiziert, dass vor und nach der Ausführung der vorgegebenen Funktion im Programmcode zusätzliche Befehlselemente eingefügt werden. Diese zusätzlichen Befehlselemente enthalten jeweils einen Aufruf einer Zeitstempel- Funktion. Diese Zeitstempel-Funktion speichert bei jedem Auf- ruf eine Zeitinformation in einen Datenspeicher, sowie weitere Daten, wie zum Beispiel eine Identifikationsnummer der vorgegebenen Funktion oder den Ereignistyp <z. B. ob es sich um den Start oder das Ende des Abarbeitens der vorgegebenen Funktion handelt) .
Der so mit zusätzlichen Befehlselementen zur LaufZeitmessung einer vorgegebenen Funktion versehene Programmcode des Computerprogramms wird dann in einen maschinenlesbaren Code übersetzt. Einen derartig modifizierten Code bezeichnet man als "instrumentiert", wobei man zwischen "teilinstrumentierten" Computerprogrammen unterscheidet, bei denen lediglich bei Ausführung einer einzigen oder mehrerer Funktionen des Programmcodes die Zeitstempel-Funktion aufgerufen wird und "vollständig instrumentierten" Computerprogrammen, bei denen bei jedem Funktionsaufruf auch ein Aufruf der Zeitstempel- Funktion erfolgt.
Derzeitige Zeitstempelverfahren haben einige für die Optimierung komplexer Programme zur Steuerung von Echtzeitsystemen entscheidende Nachteile. Ein wesentlicher Nachteil besteht darin, dass die Unterbrechung der Abarbeitung der vorgegebenen Funktion durch andere Funktionen oder Interrupts nicht
2003 P 07711
berücksichtigt wird. Durch das beschriebene Verfahren zur LaufZeitmessung erhält man daher größere Messwerte (Bruttolaufzeiten) als die tatsächliche Nettolaufzeit der Funktionen. Daher wird die gemessene Laufzeit in der Praxis häufig mit einem Korrekturfaktor, welcher kleiner ist als 1 (z. B.
0,8 für eine Belastung durch Unterbrechungen von 20%) multipliziert. Dieser Korrekturfaktor lässt sich jedoch nicht eindeutig bestimmen und ist häufig lediglich ein stark systemabhängiger Erfahrungswert. Die Reproduzierbarkeit derartiger Messungen ist dementsprechend gering, und die Streuung der Messwerte bei wiederholter Messung entsprechend hoch.
In vielen Fällen wird bei Anwendung von Zeitstempelverfahren daher das Computerprogramm und/oder sogar das gesamte Compu- tersystem so modifiziert, dass die Zahl der Unterbrechungen des Ablaufs der zu messenden Funktion minimiert wird. Dies kann beispielsweise durch Ausschalten von Interrupts geschehen. Durch diese Modifikation der Hardware und Software ist das System jedoch zumeist so stark verändert, dass die gemes- sene Laufzeit der Funktion nicht der Laufzeit im realen Betrieb des Gesamtsystems entspricht. Weiterhin kann eine solche Messung nicht im realen System erfolgen (z. B. im Auto) .
Weiterhin berücksichtigt das beschriebene Verfahren nicht die Umgebungsbedingungen des Systems. Die Laufzeit bestimmter
Funktionen in Echtzeitsystemen hängt jedoch u. U. stark von bestimmten Systemparametern, wie zum Beispiel analogen oder digitalen externen Signalen an einer Schnittstelle des Systems, ab. Diese Unzulänglichkeit verringert die Reproduzier- barkeit der Messung zusätzlich.
Zudem ist das beschriebene Verfahren außerordentlich zeitauf- wändig. Typische Programme für Echtzeitsysteme zur Steuerung komplexer Prozessabläufe können mehrere tausend Funktionen enthalten. Die in eingebetteten Systemen zur Verfügung stehenden Datenspeicher sind jedoch in der Regel nicht ausreichend, um Zeitinformationen für alle Funktionen speichern zu
2003 P 07711
können. Beispielsweise handelt es sich bei den Datenspeichern in eingebetteten Systemen um Puffer mit einer Speicherkapazität von 256kB, was etwa 32.000 Zeitinformationen entspricht. In typischen Motorsteuerungssystemen werden jedoch einige tausend Funktionen verwendet, die stark verschachtelt ausgeführt werden, z. B. jeweils in Sequenzen, deren Länge im Bereich weniger Mikrosekunden liegt. Bereits nach einer Zeitscheibe von 10 Millisekunden entsteht auf diese Weise für eine Steuerungssoftware also eine Datenmenge von ca. 10.000 Zeitinformationen, wobei die zusätzlichen Unterbrechungen durch Interrupts (z. B. 30 Unterbrechungen in einer Millisekunde in typischen Motorsteuerungssystemen) noch nicht berücksichtigt sind. Die Datenspeicher in typischen Echtzeitsystemen können also lediglich Informationen einer einzelnen oder einiger weniger Funktionen aufnehmen.
Prinzipiell müsste also nach dem oben beschriebenen Verfahren für jede einzelne Funktion zunächst der Programmcode instrumentiert werden, dann in einen maschinenlesbaren Code über- setzt werden (mit einem Zeitaufwand von jeweils ca. 10 Minuten) , dann auf dem Echtzeitsystem ausgeführt werden und dann müssten die gespeicherten Zeitinformationen gesichtet und ausgewertet werden. Ein derartiges Verfahren kann für ein einzelnes Echtzeitsystem mit mehreren tausend Funktionen meh- rere Wochen in Anspruch nehmen.
Aufgabe der vorliegenden Erfindung ist es, die Möglichkeiten, Laufzeiten von Funktionen zu messen, zu verbessern.
Diese Aufgabe wird durch die Erfindungen mit den Merkmalen der unabhängigen Ansprüche gelöst. Vorteilhafte Weiterbildungen der Erfindungen sind in den Unteransprüchen gekennzeichnet.
Es wird ein Verfahren zur LaufZeitmessung einer vorgegebenen Funktion vorgeschlagen, bei dem ein von einem ersten Computersystem ausgeführtes erstes Computerprogramm, wenn es eine
2003 P 07711
erste Funktion aufruft, zu Beginn und zum Ende der Abarbeitung der ersten Funktion eine zweite Funktion (Messmanager- Funktion) aufruft. Die Messmanager-Funktion prüft, ob die erste Funktion die vorgegebene Funktion ist und ruft, sofern diese Bedingung erfüllt ist, eine dritte Funktion (Zeitstempel-Funktion) auf. Die Zeitstempel-Funktion stellt mindestens eine Zeitinformation zur Verfügung.
Bei dem Computerprogramm kann es sich beispielsweise um ein - wie oben beschrieben - vollständig instrumentiertes Programm in maschinenlesbarer Form handeln. Im Gegensatz zum oben beschriebenen Verfahren wird jedoch nicht notwendigerweise bei Aufruf jeder Funktion auch eine Zeitstempel-Funktion aufgerufen, sondern es wird zunächst die Messmanager-Funktion aufge- rufen. Diese überprüft beispielsweise anhand einer Identifikationsnummer der aufgerufenen Funktion, ob es sich bei der aufgerufenen Funktion um die Funktion handelt, deren Laufzeit gemessen werden soll. Nur wenn dies der Fall ist, wird die Zeitstempel-Funktion aufgerufen. Es können alternativ auch mehrere Funktionen gleichzeitig vorgegeben werden. Die Messmanager-Funktion überprüft dann jeweils, ob es sich bei der aufgerufenen Funktion um eine der vorgegebenen Funktionen handelt und ruft, wenn dies der Fall ist, die Zeitstempel- Funktion auf. Das Zurverfügungstellen der Zeitinformation durch die Zeitstempelfunktion kann beispielsweise durch Abspeichern in einen Datenspeicher, durch grafische Darstellung oder durch Ü- bergabe eines Zahlenwertes an die aufrufende Messmanager- Funktion erfolgen.
Die Gestaltung der Zeitinformation kann von der Art des ersten Computersystems abhängen. So kann beispielsweise die Zeitanzeige einer in das Computersystem integrierten Uhr als Zeitinformation genutzt werden. Es kann aber auch beispiels- weise das augenblickliche Stadium eines periodischen physikalischen Vorgangs (z. B. die Winkelstellung der Kurbelwelle in einem Motorsystem) als Zeitinformation abgespeichert werden.
2003 P 07711
Das Verfahren hat den Vorteil, dass die Datenmenge erheblich reduziert wird. Nur die Daten der tatsächlich zu messenden Funktion werden in den Datenspeicher des Systems gespeichert. Dies ist insbesondere in eingebetteten Systemen von Vorteil, in denen i. d. R. nur kleine Datenpuffer, z. B. Ringpuffer für 32.000 Informationen, zur Verfügung stehen.
Ein weiterer Vorteil besteht darin, dass, wenn nach Beendi- gung der LaufZeitmessung die Laufzeit einer weiteren Funktion gemessen werden soll, die Instrumentierung des Computerprogramms nicht mehr geändert werden muss . Die Messmanager- Funktion liest die Information darüber, welche Funktion die vorgegebene Funktion ist (z. B. eine Identifikationsnummer) aus einem Datenspeicher. Alternativ kann auch die Messmanager-Funktion im Programmcode so abgeändert werden, dass in die Ab rage-Bedingung die neue Funktion bzw. die Identifikationsnummer der neuen Funktion eingetragen wird, was einen erheblich geringeren Programmieraufwand als eine Änderung der Instrumentierung darstellt.
Außerdem ist das beschriebene Verfahren sehr universell einsetzbar. Bei den Zeitstempel-Funktionen handelt es sich häufig um kommerzielle Softwareprodukte. Will der Entwickler, z. B. aus Kostengründen oder aufgrund der Verfügbarkeit eines moderneren oder leistungsfähigeren Produktes, auf eine neue Zeitstempel-Funktion wechseln, so müsste bislang die gesamte Instrumentierung des Computerprogramms an die neue Zeitstempel-Funktion angepasst werden. Beispielsweise kann eine neue Zeitstempel-Funktion die Übergabe anderer Parameter erforderlich machen. Die Verwendung der Messmanager-Funktion hingegen vereinfacht dieses Verfahren erheblich. Bei Implementierung einer neuen Zeitstempel-Funktion muss nun lediglich der Programmcode der Messmanager-Funktion adaptiert werden. Der Pro- grammieraufwand wird dadurch stark reduziert.
2003 P 07711
Bei einer vorteilhaften Weiterbildung des Verfahrens überprüft die Messmanager-Funktion zusätzlich, ob mindestens ein Signal eine vorgegebene Bedingung erfüllt. Bei diesem Signal kann es sich beispielsweise um ein elektrisches Signal an ei- ner Schnittstelle des Computersystems handeln.
Diese Weiterbildung ist insbesondere in echtzeitgesteuerten eingebetteten Systemen von Vorteil, die zur Steuerung komplexer Prozessabläufe verwendet werden. In derartigen Systemen kann die Laufzeit der Funktionen oder Tasks des Computerprogramms stark von bestimmten Systemparametern, wie z. B. analogen oder digitalen externen Signalen an einer Schnittstelle des Computersystems abhängen. Bei den externen Signalen kann es sich z. B. um die von einem oder mehreren Sensoren an das Computersystem übermittelten Informationen handeln. Diese Informationen beschreiben den Betriebszustand oder die Umgebungsbedingungen des Gesamtsystems. Mit Hilfe der beschriebenen Weiterbildung der Erfindung können eine oder mehrere spezielle Umgebungsbedingung gewählt werden, bei der die Lauf- zeit einer Funktion gemessen werden soll. Die Reproduzierbarkeit des Verfahrens steigt dadurch erheblich, und es können auch komplexere Zusammenhänge zwischen den Umgebungsbedingungen und der Funktionsweise des Computerprogramms untersucht werden .
Dies ist beispielsweise bei der Programmierung von Motorsteuerungsgeräten in der Automobiltechnik, sog. ECUs (Engine Control Units), von entscheidendem Vorteil, da diese Informationen von einer Vielzahl von Sensoren (z. B. Sauerstoffsen- soren, Druσksensoren) verarbeiten müssen.
Bei einer weiteren Ausgestaltung des Verfahrens wird zusätzlich bei jeder Unterbrechung der Ausführung der vorgegebenen Funktion zu Beginn und Ende der Unterbrechung die Zeitstem- pel-Funktion aufgerufen.
2003 P 07711
Diese Weiterbildung des Verfahrens berücksichtigt, dass, wie oben beschrieben, die Ausführung von Funktionen oder Tasks durch das Computerprogramm häufig durch höher priorisierte Tasks oder Funktionen oder durch Interrupts unterbrochen wer- den kann.
Durch die beschriebene Weiterbildung des Verfahrens, welche auch Zeitinformationen bei Unterbrechung der Ausführung der vorgegebenen Funktion liefert, lässt sich hingegen die Netto- laufzeit einer Funktion messen, ohne dass Interrupts ausgeschaltet, das System auf andere Weise modifiziert oder Korrekturfaktoren verwendet werden müssen. Die Nettolaufzeit berechnet sich aus der Differenz der Start- und Stoppzeit der Ausführung der Funktion, abzüglich der Zeitspannen, während derer die Ausführung der Funktion unterbrochen war. Die Genauigkeit und Reproduzierbarkeit der Messung lässt sich dadurch erheblich steigern. Dies ist insbesondere bei der Programmierung von EchtzeitSystemen von Vorteil, bei denen die Ausführung eines Computerprogramms durch eine hohe Zahl von Interrupts unterbrochen wird, wie z. B. bei Motorsteuerungen in der Automobiltechnik (mit 30-40 Interrupts je Millisekunde) .
In einer weiteren vorteilhaften Weiterbildung der Erfindung wird das Verfahren mit einer Anzahl von Wiederholungen wiederholt durchgeführt. Während jeder Wiederholung werden die von der Zeitstempel-Funktion zur Verfügung gestellten Informationen in einem ersten Datenspeicher gespeichert. Nach der letzten Wiederholung werden die im ersten Datenspeicher ge- speicherten Informationen in einem zweiten Datenspeicher gespeichert .
Diese Weiterbildung des Verfahrens bewirkt eine weitere Verbesserung der Genauigkeit und Reproduzierbarkeit der Lauf- Zeitmessung. Die Laufzeit wird (z. B. 20 mal) wiederholt gemessen, so dass ein Mittelwert gebildet und statistische In-
2003 P 07711 10
formationen über die Streuung der Messwerte gewonnen werden können .
Das Abspeichern der Informationen in einem zweiten Datenspei- eher nach der letzten Wiederholung der LaufZeitmessung dient der Erleichterung der Auswertung der Daten und der Entlastung des bei schnellen Prozessen häufig in seiner Kapazität stark beschränkten ersten Datenspeichers im eingebetteten System (z. B. eines Ringpuffers). Bei dem zweiten Datenspeicher kann es sich beispielsweise um einen Festplattenspeicher handeln, der physikalisch auf einem getrennten Computersystem angeordnet ist.
Dieses physikalisch getrennte Abspeichern der Informationen nach Beendigung der letzten Wiederholung ist insbesondere bei als Echtzeitsystem ausgestalteten eingebetteten Systemen von Vorteil. Die Daten können separat ausgewertet werden, beispielsweise auf einem Personal Computer mit erheblich größerer Speicherkapazität und mit kommerziellen Computerprogram- men für die Datenanalyse. Der Datenspeicher des eingebetteten Systems kann wieder gelöscht oder überschrieben werden. Das auf dem eingebetteten System laufende Programm (beispielsweise ein Programm zur Motorsteuerung) muss für die Auswertung der Daten nicht unterbrochen werden .
Alternativ zur oben beschriebenen wiederholten Durchführung der LaufZeitmessung mit einer vorgegebenen Anzahl von Wiederholungen kann auch die wiederholte Durchführung des Verfahrens erst dann beendet werden, wenn die im ersten Datenspei- eher gespeicherte Informationsmenge die Speicherkapazität des ersten Datenspeichers erreicht oder überschreitet. Dies kann beispielsweise dadurch erfolgen, dass als erster Datenspeicher ein Puffer (z. B. ein FIFO-Puffer) mit automatischer Endabschaltung eingesetzt wird, der bei Erreichen der Spei- cherkapazität ein Stoppsignal generiert.
2003 P 07711 11
Diese Weiterbildung hat den Vorteil, dass keine feste Zahl von Wiederholungen vorgegeben werden muss . Die LaufZeitmessung einer Funktion wird solange wiederholt, bis der Puffer seine Kapazitätsgrenze erreicht hat. So ist gewährleistet, dass jede LaufZeitmessung mit einer größtmöglichen Anzahl von Wiederholungen durchgeführt wird. Dies führt zu einer weiteren Steigerung der Reproduzierbarkeit und Genauigkeit der LaufZeitmessungen.
In einer weiteren Ausgestaltung der Erfindung wird der zeitliche Beginn des Verfahrens durch ein zweites Computerprogramm (Offline-Komponente) auf einem zweiten Computersystem vorgegeben. Dabei gibt die Offline-Komponente dem auf dem ersten ComputerSystem ausgeführten ersten Computerprogramm vor, welche Funktion die vorgegebene Funktion ist.
Mit dieser Weiterbildung kann beispielsweise auf die Möglichkeiten zur Eingabe von Informationen durch einen Benutzer auf einem zweiten Computersystem zurückgegriffen werden. Dies ist insbesondere bei eingebetteten Systemen von Vorteil, welche zumeist nicht über Mittel zur grafischen Darstellung von Informationen (z. B. einen Bildschirm) oder über Mittel zur Dateneingabe (z. B. eine Tastatur) verfügen. Der Austausch von Daten zwischen beiden Computersystemen kann beispielsweise über ein Bus-System erfolgen. Der Start des Computerprogramms auf dem ersten Computersystem durch die Offline-Komponente und die Übertragung der weiteren Informationen zwischen den Computersystemen kann zeitlich versetzt und unabhängig voneinander erfolgen.
Das zweite Compute System übermittelt dem ersten Computersystem die Information darüber, welche Funktion bzw. welche Funktionen in die Abfragebedingung aufgenommen werden sollen. Für diese Funktionen wird dann die Laufzeit gemessen. Z. B. kann, wenn allen Funktionen eines Programms bereits bei der
Instrumentierung Nummern zugewiesen worden sind, die Informa-
2003 P 07711 12
tion in Form einer Identifikationsnummer der ausgewählten Funktion übermittelt werden.
Diese Weiterbildung ist insbesondere von Vorteil, wenn die Laufzeit vieler oder sogar aller Funktionen eines Computerprogramms sukzessive gemessen werden soll. Das Verfahren erlaubt die Vorgabe einer Liste von Funktionen, deren Laufzeit nacheinander oder in einer vorgegebenen Reihenfolge gemessen wird und reduziert dadurch beispielsweise den Zeitaufwand für die Messung aller Funktionen eines typischen eingebetteten Systems von mehreren Wochen auf wenige Minuten.
Der Ablauf des ersten Computerprogramms auf dem ersten Computersystem muss für die Übertragung der Information, welche Funktion von der Messmanager-Funktion in die Abf agebedingung aufgenommen werden soll, nicht unterbrochen werden. Der Benutzer am zweiten Computersystem kann Funktionen auswählen, deren Laufzeit gemessen werden soll, ohne den Ablauf des ersten Computerprogramms am ersten Computersystem unterbrechen oder stören zu müssen.
Neben einer erheblichen Zeitersparnis hat dies auch z. B. sicherheitsrelevante Vorteile. Wenn beispielsweise in der Automobilentwicklung am fahrenden Auto eine Motorsteuerungsein- heit optimiert werden soll, so ist eine Unterbrechung des auf dem Computersystem der Motorsteuerungseinheit ausgeführten Programms nicht ohne weiteres ohne ein Abschalten des Motors möglich, da ohne die Steuerungseinheit eine mechanische Fehlfunktion (z. B. ein Überdrehen) im Motor auftreten könnte. Es müsste also für jede Änderung der zu messenden Funktion der Motor abgeschaltet und nach Änderung des Programms neu gestartet werden. Durch Einführung der Offline-Komponente entfällt diese zei au wändige Notwendigkeit.
Außer der Information, an welcher Funktion bzw. an welchen Funktionen die LaufZeitmessung durchgeführt werden sollen, kann die Of line-Komponente auch weitere Informationen an das
2003 P 07711 13
erste Computersystem übergeben. Beispielsweise kann die Offline-Komponente dem auf dem ersten Computersystem ausgeführten ersten Computerprograrrtm zusätzlich die Anzahl von Wiederholungen vorgeben.
Ferner gehört zum Umfang der Erfindung ein Computerprogramm bzw. mehrere Computerprogramme, die bei Ablauf auf einem Computer oder Computer-Netzwerk das erfindungsgemäße Verfahren in einer seiner Ausgestaltungen ausführen.
Weiterhin gehört zum Umfang der Erfindung ein Computerprogramm bzw. mehrere Computerprogramme mit Programmcode- Mitteln, um das erfindungsgemäße Verfahren in einer seiner Ausgestaltungen durchzuführen, wenn das bzw. die Programme auf einem Computer oder Computer-Netzwerk ausgeführt werden. Insbesondere können die Programmcode-Mittel auf einem computerlesbaren Datenträger gespeichert sein.
Außerdem gehört zum Umfang der Erfindung ein Datenträger, auf dem eine Datenstruktur gespeichert ist, die nach einem Laden in einen Arbeits- und/oder Hauptspeicher eines Computers oder Computer-Netzwerkes das er indungsgemäße Verfahren in einer seiner Ausgestaltungen ausführen kann.
Auch gehört zum Umfang der Erfindung ein Computerprogramm- Produkt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode-Mitteln, um das erfindungsgemäße Verfahren in einer seiner Ausgestaltungen durchzuführen, wenn das Programm auf einem Computer oder Computer-Netzwerk ausgeführt wird.
Dabei wird unter einem Computer-Programmprodukt das Programm als handelbares Produkt verstanden. Es kann grundsätzlich in beliebiger Form vorliegen, so zum Beispiel auf Papier oder einem computerlesbaren Datenträger und kann insbesondere über ein Datenübertragungsnetz verteilt werden.
2003 P 07711 14
Ferner wird die Aufgabe durch eine Anordnung gelöst, welche geeignete Mittel aufweist zur Ausführung des oben beschriebenen Verfahrens .
Im Folgenden wird die Erfindung anhand von Ausführungsbeispielen näher erläutert, die in den Figuren schematisch dargestellt sind. Die Erfindung ist jedoch nicht auf die Beispiele beschränkt. Gleiche Bezugsziffern in den einzelnen Figuren bezeichnen dabei gleiche oder funktionsgleiche bzw. hinsichtlich ihrer Funktionen einander entsprechende Elemente. Im Einzelnen zeigt:
Fig. 1: eine Anordnung zur LaufZeitmessung einer Funktion auf einem echtzeitgesteuerten Computersystem zur Motorsteuerung;
Fig. 2: einen Ablaufplan eines Verfahrens zur LaufZeitmessung von Funktionen eines Motorsteuerungsprogramms;
Fig. 3: einen Ablauf lan einer Messmanager-Funktion.
In Fig. 1 ist ein bevorzugtes Ausführungsbeispiel einer Anordnung dargestellt, mit der die Laufzeit von einer oder mehreren Funktionen eines auf einem Motorsteuerungssystem 1 ausgeführten Motorsteuerungsprogramms 2 gemessen werden kann. Bei dem Motorsteuerungssystem 1 handelt es sich in diesem Beispiel um ein echtzeitgesteuertes System. Das Motorsteuerungsprogramm 2 weist als Komponenten eine Messmanager- Funktion 3 und eine Zeitstempel-Funktion 4 auf.
Das Motorsteuerungssystem 1 weist weiterhin einen Puffer 5 zur Speiσherung der während einer LaufZeitmessung von der
Zeitstempel-Funktion 4 generierten Informationen auf, wobei es sich beispielsweise um Zeitinformationen, um Identifikationsnummern der Funktionen oder um Informationen darüber, ob die gespeicherten Zeitinformationen sich auf den Start oder das Ende der Abarbeitung einer Funktion beziehen, handeln kann.
2003 P 07711 15
Das Motorsteuerungssystem 1 ist über eine Schnittstelle 6 mit einem Motorsystem oder einer Motorsimulations-Einrichtung verbunden, welche hier nicht dargestellt ist. Über diese Schnittstelle 6 können externe Signale empfangen werden, wel- ehe beispielsweise Informationen über den Betriebszustand des Motorsystems (z. B. Drehzahl, Betriebszustand der Lambdarege- lung, Betriebszustand der Einspritzung) enthalten können. Bei diesen Informationen kann es sich beispielsweise um Sensorsignale (z. B. ein elektrisches Signal eines Sauerstoffsen- sors) handeln.
Das Motorsteuerungssystem 1 weist außerdem einen Sicherheitsrechner 7 auf. Der Sicherheitsrechner 7 ist so ausgestaltet, dass er die auf dem Motorsteuerungssystem 1 ausgeführten Rechnungen und Aktionen und die Einhaltung bestimmter zeitlicher Vorgaben bei der Ausführung überprüft.
Das Motorsteuerungssystem 1 ist außerdem verbunden mit einem Personal Computer 8, auf dem ein zweites Computerprogramm (Offline-Komponente) 9 ausgeführt wird. Eine Tastatur 10 als Eingabemittel und ein Bildschirm 11 als bildliches Darstellungsmittel sind mit dem Personal Computer 8 verbunden. Der Personal Computer 8 weist einen flüchtigen Speicher 12 und einen Festplattenspeicher 13 auf. Die Verbindung des Mo- torsteuerungssystems 1 mit dem Personal Computer 8 erfolgt in diesem Beispiel über einen Debug-Bus 14.
Die dargestellte Anordnung ermöglicht eine effiziente Messung von Laufzeiten einer oder mehrerer Funktionen. Der Benutzer kann mit Hilfe der Eingabemittel 10 in der Offline-Komponente 9 auf dem Personal Computer 8 auswählen oder vorgeben, welche Funktion bzw. Funktionen des auf dem Motorsteuerungssystem 1 ausgeführten Motorsteuerungsprogramms 2 einer LaufZeitmessung unterzogen werden sollen. Er kann weiterhin für jede Funktion eine Anzahl von Wiederholungen vorgeben, mit der die Laufzeitmessung dieser Funktion bzw. Funktionen wiederholt durchgeführt werden soll.
2003 P 07711 16
Zusätzlich kann der Benutzer vorgeben, unter welchen Umgebungsbedingungen und in welchem Betriebszustand die Laufzeitmessung jeder Funktion erfolgen soll, also beispielsweise bei welcher Motordrehzahl, ob die Lambdaregelung oder die Einspritzung aktiv sein soll oder Ähnliches. Die Messbedingungen lassen sich also genau definiert vorgeben, so dass die Reproduzierbarkeit der LaufZeitmessungen stark erhöht wird. Die Eingabe weiterer Informationen durch den Benutzer ist denk- bar, z. B. in Form von zusätzlichen Angaben, die später die Auswertung der Ergebnisse erleichtern.
Nach diesen Eingaben startet die Offline-Komponente 9 die Ausführung des Motorsteuerungsprogramms 2 auf dem Motorsteue- rungssystem 1 und die Messung der Laufzeit der vorgegebenen
Funktion bzw. Funktionen, wobei keine weitere Interaktion des Benutzers mehr erforderlich ist. Alternativ kann beispielsweise auch das Motorsteuerungsprogramm 2 kontinuierlich auf dem Motorsteuerungssystem 1 ausgeführt werden, wobei das Mo- torsteuerungsprogramm 2 in regelmäßigen oder unregelmäßigen
Abständen von der Offline-Komponente 9 zur Verfügung gestellte Informationen auswertet und verwendet.
In diesem Ausführungsbeispiel handelt es sich bei dem Mo- torsteuerungsprogramm 2 um einen vollständig oder teilweise instrumentierten Programmcode, d. h. der Programmcode ist, wie oben beschrieben, mit Zusatzinformationen versehen. Bei der Instrumentierung wurden auch Identifikationsnummern an die Funktionen des Programmcodes vergeben, welche in einer Datenbank (hier nicht dargestellt) abgespeichert sein können. Die Offline-Komponente 9 speichert eine Identifikationsnummer einer vom Benutzer vorgegebenen Funktion in einen flüchtigen Datenspeicher 12 (z. B. ein RAM) . Weiterhin können auch vom Benutzer vorgegebene Betriebsbedingungen, unter denen die Laufzeit der jeweiligen Funktion zu messen ist, in den flüchtigen Datenspeicher 12 abgespeichert werden, sowie eine Zyklenzahl W, die angibt, wie oft die Laufzeit der vorgegebenen
2003 P 07711 17
Funktion gemessen werden soll. Über den Debug-Bus 14 werden die im Datenspeicher 12 gespeicherten Informationen dem Motorsteuerungsprogramm 2, insbesondere der Messmanager- Funktion 3, zur Verfügung gestellt.
Bei jedem Aufruf einer Funktion durch das Motorsteuerungsprogramm 2 überprüft die Messmanager-Funktion 3 anhand der Identifikationsnummer dieser Funktion, wie oben beschrieben, ob es sich um die von der Offline-Komponente 9 vorgegebene Funk- tion handelt. Weiterhin überprüft die Messmanager-Funktion, ob die vorgegebenen Betriebsbedingungen vorliegen, was z. B. durch Vergleich der an der Hardware-Schnittstelle 6 zum Motorsystem anliegenden externen Signale mit vorgegebenen Sollwerten erfolgen kann.
Wenn alle Bedingungen erfüllt sind, ruft die Messmanager- Funktion 3 die Zeitstempel-Funktion 4 auf, welche Informationen in den Puffer 5 speichert. Bei den abgespeicherten Informationen handelt es sich, wie oben beschrieben, um eine Zeit- Information, sowie um die Identifikationsnummer der Funktion und eine Information darüber, ob es sich um den Beginn oder das Ende des Abarbeitens der Funktion handelt.
Weiterhin registriert, wie oben beschrieben, die Messmanager- Funktion 3 jede Unterbrechung der Ausführung der Funktion und speichert mit Hilfe der Zeitstempel-Funktion 4 entsprechende Informationen in den Puffer 5.
Die LaufZeitmessung der Funktion wird typischerweise zwanzig mal (entsprechend der vom Benutzer vorgegebenen Anzahl von
Wiederholungen) wiederholt . Für verschiedene Funktionen können jeweils unterschiedliche Zyklenzahlen vorgegeben sein. Diese Wiederholungen der LaufZeitmessung können beispielsweise dadurch realisiert werden, dass die Messmanager-Funktion 3 eine Zyklenzähler-Variable Z verwendet, die nach jeder Iteration der LaufZeitmessung einer Funktion um eins erhöht wird,
2003 P 07711 18
solange bis die Zyklenzähler-Variable Z der von der Offline- Komponente 9 vorgegebenen Zyklenzahl W entspricht.
Wenn die Lau Zeitmessung der vorgegebenen Funktion mit der vorgegebenen Anzahl von Wiederholungen W wiederholt durchgeführt worden ist, wird der Inhalt des Puffers 5 in den Festplattenspeicher 13 gespeichert. Der Festplattenspeicher 13 ist physikalisch auf dem Personal Computer 8 angeordnet, was später den Zugriff auf die Daten und die Auswertung erleich- tert . Der Puffer 5 kann dann für die LaufZeitmessung der nächsten Funktion verwendet werden.
Das Übertragen von In ormationen vom Puffer 5 in den Festplattenspeicher 13 stellt eine zeitliche Unterbrechung oder Verzögerung des Ablaufs des Motorsteuerungsprogramms 2 dar. Der Sicherheitsrechner 7 jedoch, welcher den Betrieb des Motorsteuerungssystems 1 und insbesondere die Einhaltung der vorgegebenen Zeitlimits überwacht, würde die durch die Übertragung der Informationen vom Puffer 5 in den Festplatten- Speicher 13 hervorgerufene Unterbrechung oder Verzögerung als Fehlfunktionen des Motorsteuerungssystems 1 interpretieren. Um eine derartige Fehlerdetektion zu vermeiden, wird der Sicherheitsrechner 7 während der Übertragung der Informationen abgeschaltet. Dieses Abschalten kann ebenfalls durch die Messmanager-Funktion 3 übernommen werden.
Nach erfolgter Lau Zeitmessung einer Funktion übernimmt die Messmanager-Funktion 3, falls vom Benutzer weitere Funktionen für eine LaufZeitmessung ausgewählt wurden, vom Personal Co - puter 8 entsprechende Informationen über die nächste zu messende Funktion. Dieser Austausch von Informationen erfolgt wiederum dadurch, dass die Offline-Komponente 9 die Informationen in den flüchtigen Datenspeicher 12 abspeichert, von wo diese dem Motorsteuerungssystem 1 über den Debug-Bus 14 zur Verfügung gestellt werden. Wie oben beschrieben, wird dann vom Motorsteuerungsprogramm 2 eine entsprechende Laufzeitmessung der vorgegebenen Funktion mit der vorgegebenen Anzahl
2003 P 07711 19
von Wiederholungen und unter den vorgegebenen Umgebungsbedingungen durchgeführt. Der Vorgang wird solange wiederholt, bis die Laufzeit aller vom Benutzer vorgegebenen Funktionen gemessen ist.
Die Auswertung der Ergebnisse erfolgt vorteilhaf erweise auf dem Personal Computer 8. Die Auswertung kann ganz oder teilweise von der Offline-Komponente 9 durchgeführt werden oder kann durch ein weiteres Computerprogramm erfolgen. Ein we- sentlicher Bestandteil der Auswertung der Ergebnisse ist die Berechnung der Länge von Zeitintervallen durch Bildung von Differenzen zwischen den Zeitpunkten zusammengehöriger Stopp- und Startsignale. Wurde die Ausführung einer Funktion unterbrochen, so sind die Längen der Teilintervalle, während derer die Funktion ausgeführt wurde, zu addieren. Weiterhin kann das Computerprogramm zur Auswertung statistische Aussagen ü- ber Mittelwert und Streuung der gemessenen Laufzeiten treffen und die Ergebnisse grafisch aufbereiten.
In Fig. 2 ist ein Ablauf lan einer Ausgestaltung des Verfahrens dargestellt, wobei eine Anordnung gemäß Fig. 1 oder eine in ihrer Funktion ähnliche Anordnung verwendet wird. Die Interaktion zwischen der O fline-Komponente 9 auf dem Personal Computer 8 und dem Motorsteuerungsprogramm 2 auf dem Mo- torsteuerungssystem 1 ist in diesem Ablaufplan dadurch verdeutlicht, dass die Verfahrensschritte der Offline-Komponente 9 unterbrochen umrandet auf der linken Seite dargestellt sind, und die Verfahrensschritte des Motorsteuerungsprogramms 2 durchgezogen umrandet auf der rechten Seite.
Zur Erleichterung der Kommunikation zwischen dem Motorsteuerungsprogramm 2 und der Offline-Komponente 9 wird ein kommerziell verfügbarer Debugger verwendet. Dieser Debugger wird auf dem Personal Computer 8 ausgeführt. Der Programmcode des Motorsteuerungsprogramms 2 wird auf dem Personal Computer 8 in eine maschinenlesbare Form übersetzt (compiliert) , durch einen Linker und/oder Locator zu einer lauffähigen Gesamt-
2003 P 07711 20
Software zusammengefasst (gelinkt) und dann in den Debugger geladen. Der Debugger überträgt den maschinenlesbaren Code des Motorsteuerungsprogramms 2 dann über den Debug-Bus 14 in einen Datenspeicher (in Fig. 1 nicht dargestellt) des Mo- torsteuerungsSystems 1. Weiterhin startet und überwacht der Debugger die Ausführung des Motorsteuerungsprogramms 2. Die Offline-Komponente 9 wird vom Debugger ausgeführt, und die Übertragung von Informationen zwischen der Offline-Komponente 9 und dem Motorsteuerungsprogramm 2 erfolgt durch den Debug- ger. In der weiteren Beschreibung der in Fig. 2 dargestellten Verfahrensschritte spielt jedoch die Tatsache, dass die Kommunikation zwischen Offline-Komponente 9 und Motorsteuerungsprogramm 2 über den Debugger erfolgt, keine Rolle und wird daher nicht mehr erwähnt.
In Fig. 3 ist ein Ablaufplan einer Messmanager-Funktion 3 dargestellt. Da zum Verständnis des in Fig. 2 dargestellten Verfahrens ein Verständnis der Funktionsweise der Messmanager-Funktion 3 erforderlich ist, werden im Folgenden die Fi- guren 2 und 3 gemeinsam beschrieben.
In Schritt 202 in Fig. 2 erfolgt eine Initialisierung der Offline-Komponente 9 und der Messmanager-Funktion 3. In Schritt 204 erfolgt die Eingabe der Messbedingungen für die LaufZeitmessungen, wobei, wie oben beschrieben, eine oder mehrere Funktionen ausgewählt, die Anzahl der LaufZeitmessungen (z. B. 20 Messungen) für jede Funktion und Betriebsbedingungen für die Lau Zeitmessung vorgegebenen werden können.
In Schritt 206 erfolgt ein Start der LaufZeitmessung und eine Übergabe der Identifikationsnummer der ersten Funktion, deren Laufzeit gemessen werden soll. Weiterhin wird eine Zyklenzahl W übergeben, welche die Anzahl der Wiederholungen der Laufzeitmessung für die vorgegebene Funktion bestimmt.
In Schritt 208 erfolgt ein Zurücksetzen (Reset) der Parameter des Motorsteuerungssystems auf vorgegebene Anfangswerte, wo-
2003 P 07711 21
bei auch eine Zyklenzähler-Variable Z auf Null zurückgesetzt wird. Das Motorsteuerungsprogramm 2 wird nun ausgeführt (Schritt 210) und ruft Funktionen auf.
Die Ausführung des Motorsteuerungsprogramms 2 und die Messung der Laufzeiten der Funktionen ist in Schritt 210 dargestellt und umfasst eine Anzahl von Einzelschritten (Schritte 212 bis 228) . In Schritt 212 ruft das Motorsteuerungsprogramm 2 eine Funktion auf. Noch bevor die Funktion abgearbeitet wird, wird in Schritt 214 die Messmanager-Funktion 3 aufgerufen.
Die von der Messmanager-Funktion 3 durchgeführten Verfahrensschritte sind in Fig. 3 dargestellt. Zunächst wird in Schritt 301 abgefragt, ob es sich bei der aufgerufenen Funktion um die in Schritt 206 oder in Schritt 238 (siehe unten) von der Offline-Komponente 9 vorgegebene Funktion handelt. Ist dies nicht der Fall, so ist die Abarbeitung der Messmanager- Funktion 3 beendet . Handelt es sich um die vorgegebene Funktion, so wird in Schritt 302 der Anlass abgefragt, aus dem die Messmanager-Funktion 3 aufgerufen wurde: Wurde die Messmanager-Funktion 3 aufgrund einer Unterbrechung, aufgrund eines Starts einer Funktion oder aufgrund eines Endes der Abarbeitung einer Funktion aufgerufen?
In diesem Fall handelt es sich gemäß Schritt 214 um einen
Aufruf der Messmanager-Funktion 3 infolge eines Starts einer Funktion. Also fragt die Messmanager-Funktion 3 als nächstes in Schritt 304 ab, ob die vorgegebenen Messbedingungen (Umgebungsbedingungen) erfüllt sind, also z. B. ob der Motor mit einer vorgegebenen Drehzahl arbeitet.
Sind diese Messbedingungen nicht erfüllt, so ist die Abarbeitung der Messmanager-Funktion 3 beendet. Sind die Messbedingungen hingegen erfüllt, so wird dann in Schritt 306 die Zeitstempel-Funktion 4 aufgerufen. Diese generiert eine Zeitinformation (Zeitstempel) , welche gemeinsam mit der Identifikationsnummer der aufgerufenen Funktion und einer Informati-
2003 P 07711 22
on, dass es sich in Schritt 212 um den Start der Abarbeitung der Funktion handelte, im Puffer 5 abgespeichert wird.
Dann erfolgt in Schritt 308 eine Abfrage, ob die Messmanager- Funktion 3 infolge eines Starts oder Endes der Abarbeitung der Funktion aufgerufen wurde. Da es sich in Schritt 214 um einen Aufruf der Messmanager-Funktion 3 bei Beginn der Abarbeitung der Funktion handelte, wird die Abarbeitung der Messmanager-Funktion 3 in diesem Fall nach Schritt 308 beendet.
Als nächstes wird der Verfahrensschritt 216 in Fig. 2 ausgeführt, d. h. die aufgerufene Funktion wird abgearbeitet. Die Funktion wiederum kann verschiedene Unterfunktionen aufrufen (z. B. wenn es sich bei der Funktion um einen Task handelt, also eine Haupt unktion, welche mehrere Funktionen umfasst) . Das Programm kann so ausgestaltet sein, dass die Laufzeiten dieser Unterfunktionen ebenfalls ermittelt werden. Es erfolgt vor und nach jedem Aufruf einer Unterfunktion ein Aufruf der Messmanager-Funktion. Im Abfrageschritt 302 in Fig. 3 erfolgt dann sinngemäß eine Abfrage, ob es sich bei der aufgerufenen Unterfunktion um eine der Unterfunktionen handelt, deren Laufzeit gemessen werden soll.
Wird die Abarbeitung der Funktion (bzw. einer der Unterfunk- tionen) unterbrochen, z. B. durch höher priorisierte Funktionen oder Interrupts, so müssen ebenfalls Zeitstempel generiert werden. Wird eine Unterbrechung erkannt (Schritt 218) , so wird eine aus den Verfahrensschritten 220 bis 224 bestehende Unterbrechungsroutine durchgeführt. Dabei wird zunächst in Schritt 220 wieder die Messmanager-Funktion 3 aufgerufen.
Zunächst wird dabei in Schritt 301 in Fig. 3 wiederum abgefragt, ob es sich bei der unterbrochenen Funktion um die vorgegebene Funktion handelt. Ist dies nicht der Fall, so wird die Messmanager-Funktion 3 an dieser Stelle beendet. Handelt es sich dagegen um die vorgegebene Funktion, so wird in Schritt 302 wieder der Grund des Aufrufs der Messmanager-
2003 P 07711 23
Funktion 3 abgefragt. Diesmal handelt es sich um einen Aufruf der Messmanager-Funktion 3 infolge einer Unterbrechung. Daher wird nun nach der Abfrage in Schritt 302 der Schritt 310 ausgeführt. Analog zum Schritt 306 wird in Schritt 310 wiederum die Zeitstempel-Funktion 4 aufgerufen, welche eine Zeitinformation generiert. Die Zeitinformation wird, gemeinsam mit der Information, dass es sich um den Beginn einer Unterbrechung handelt, im Puffer 5 abgespeichert. Die Information, dass es sich um eine Unterbrechung handelt, kann z. B. in Form der Identifikationsnummer der unterbrechenden Funktion bzw. des Interrupts abgespeichert werden. Nach Ausführung von Schritt 310 ist die Abarbeitung der Messmanager-Funktion 3 beendet.
In Schritt 222 in Fig. 2 wird dann die Unterbrechung (wobei es sich sinngemäß auch um eine Unterbrechung durch mehrere Funktionen oder Interrupts handeln kann) abgearbeitet. Nach Beendigung der Unterbrechung wird in Schritt 224 wiederum die Messmanager-Funktion 3 aufgerufen. Wie oben beschrieben, wird dann erneut nach den Schritten 301 (d. h. falls es sich in Schritt 216 um die vorgegebene Funktion handelt) und 302 in
Fig. 3 Schritt 310 ausgeführt, wobei neben der Zeitinformation eine Information im Puffer 5 abgespeichert wird, die kenntlich macht, dass es sich um das Ende einer Unterbrechung handelt. Nach Beendigung der Messmanager-Funktion 3 ist die Unterbrechungsroutine beendet, und es erfolgt in Schritt 226 in Fig. 2 eine Rückkehr zur Abarbeitung der Funktion, d. h. Verfahrensschritt 216 wird weiter abgearbeitet. Weitere Unterbrechungen führen zu erneuter Abarbeitung der Unterbrechungsroutine 220 bis 224.
Nach Beendigung der Abarbeitung der Funktion in Schritt 216 wird in Schritt 228 erneut die Messmanager-Funktion 3 aufgerufen. Nach der Abfrage in Schritt 301, ob es sich um die vorgegebene Funktion handelt (was im Folgenden als gegeben angenommen wird) wird in Schritt 302 wieder der Aufrufsgrund der Messmanager-Funktion 3 abgefragt. Diesmal handelt es sich um einen Aufruf infolge einer Beendigung der Abarbeitung ei-
2003 P 07711 24
ner Funktion. Daher wird dann unmittelbar nach Schritt 302 unter Umgehung der Abfrage der Umgebungsbedingungen (Schritt 304) Schritt 306 ausgeführt. In Schritt 306 wird eine Zeitinformation generiert und abgespeichert, gemeinsam mit einer Information, dass es sich um das Ende der Abarbeitung der
Funktion handelt. Weiterhin wird in Schritt 308 abgefragt, ob die Messmanager-Funktion 3 aufgrund eines Beginns oder eines Endes der Abarbeitung der Funktion aufgerufen wurde. Da es sich nun um einen Aufruf nach Beendigung der Abarbeitung der Funktion handelt, wird Schritt 312 ausgeführt.
In Schritt 312 wird die Zyklenzähler-Variable Z um eins erhöht. Dann erfolgt in Schritt 314 eine Abfrage, ob die Zyklenzähler-Variable Z bereits größer ist als die in Schritt 206 bzw. Schritt 238 (siehe unten) von der Offline-Komponente 9 an das Motorsteuerungsprogramm 2 übergebene Zyklenzahl w. Wenn dies der Fall ist, so ist die LaufZeitmessung der vorgegebenen Funktion mit der vorgegebenen Anzahl von Wiederholungen wiederholt durchgeführt, und die Messung wird beendet.
Die Beendigung der Messung und des Motorsteuerungsprogramms 2 erfolgt dadurch, dass die Messmanager-Funktion 3 einen sogenannten Trap-Schritt 230 initiiert. Bei diesem Trap-Schritt 230 wird, wie in Fig. 2 dargestellt, zunächst der Sicher- heitsrechner 7 vorübergehend abgeschaltet und dann das Motorsteuerungsprogramm 2 angehalten. Dieses Abschalten des Sicherheitsrechners 7 ist erforderlich, da sonst beim Übertragen der im Puffer 5 gespeicherten Daten in den Festplattenspeicher 13 in Schritt 232 eine Fehlermeldung generiert wür- de, was zu Fehlfunktionen in der Motorsteuerung führen könnte.
Im Schritt 232 wird dann von der Offline-Komponente 9 der Inhalt des Puffers 5 in den Festplattenspeicher 13 übertragen. Alternativ kann diese Datenübertragung auch durch das Motorsteuerungsprogramm 2, beispielsweise durch die Messmana-
2003 P 07711 25
ger-Funktion 3 oder die Trap-Funktion in Schritt 230, durchgeführt werden.
Im Schritt 234 findet dann optional eine Verarbeitung der im Festplattenspeicher 13 gespeicherten Daten statt. Dabei kann es sich um eine Vorverarbeitung der Daten (z. B. ein Ordnen, Katalogisieren oder Versehen mit Zusatzinformationen, die Angaben über die Messbedingungen der LaufZeitmessung enthalten) handeln, oder bereits um eine vollständige Auswertung der Da- ten der LaufZeitmessung.
In einer darauffolgenden Abfrage 236 überprüft dann die Offline-Komponente 9, ob bereits alle vom Benutzer vorgegebenen Funktionen einer LaufZeitmessung unterzogen worden sind. Dies kann beispielsweise dadurch erfolgen, dass die Liste der I- dentifikationsnummern der vom Benutzer für die Laufzeitmessung ausgewählten Funktionen verglichen wird mit den im Festplattenspeicher 13 abgespeicherten Identifikationsnummern der bereits einer LaufZeitmessung unterzogenen Funktionen.
Falls noch nicht alle vom Benutzer ausgewählten Funktionen einer LaufZeitmessung unterzogen worden sind, übergibt die Offline-Komponente 9 im Schritt 238 die Identifikationsnummer einer noch nicht gemessenen Funktion an das Motorsteuerungs- programm 2. Alternativ zum dargestellten Ausführungsbeispiel könnte die Offline-Komponente 9 auch Schritt 206 erneut ausführen .
Wenn die Laufzeit aller ausgewählten Funktionen unter den vorgegebenen Messbedingungen gemessenen worden sind, wird die O fline-Komponente in Schritt 240 beendet. Falls bereits eine vollständige oder teilweise Verarbeitung der Messdaten in Schritt 234 erfolgt ist, so werden die Ergebnisse dieser Verarbeitung in einen weiteren Datenspeicher abgespeichert oder dem Benutzer auf andere Weise zur Verfügung gestellt, beispielsweise durch grafische Darstellung auf dem Bildschirm 11 oder durch einen Ausdruck auf Papier. Eine weitere Auswertung
2003 P 07711 26
und Aufbereitung der Ergebnisse kann mit kommerziell verfügbaren Computerprogrammen, wie z. B. Tabellenverarbeitungsprogrammen oder Computerprogrammen zur statistischen Analyse, erfolgen.