WO2005041041A2 - Verfahren und anordnung zur laufzeitmessung von funktionen - Google Patents

Verfahren und anordnung zur laufzeitmessung von funktionen Download PDF

Info

Publication number
WO2005041041A2
WO2005041041A2 PCT/EP2004/052246 EP2004052246W WO2005041041A2 WO 2005041041 A2 WO2005041041 A2 WO 2005041041A2 EP 2004052246 W EP2004052246 W EP 2004052246W WO 2005041041 A2 WO2005041041 A2 WO 2005041041A2
Authority
WO
WIPO (PCT)
Prior art keywords
function
computer
computer program
time
measurement
Prior art date
Application number
PCT/EP2004/052246
Other languages
English (en)
French (fr)
Other versions
WO2005041041A3 (de
Inventor
Andre Göbel
Konrad Schmid
Original Assignee
Siemens Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Aktiengesellschaft filed Critical Siemens Aktiengesellschaft
Priority to EP04766827A priority Critical patent/EP1676202A2/de
Publication of WO2005041041A2 publication Critical patent/WO2005041041A2/de
Publication of WO2005041041A3 publication Critical patent/WO2005041041A3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording 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 for performance assessment
    • G06F11/3419Recording 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 for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Definitions

  • the invention relates to a method and an arrangement for measuring the running time of a predetermined function of a computer program that is executed by a computer system.
  • Runtime measurements of functions are used to optimize computer programs so that the resources of a computer system are optimally used.
  • the runtime of a function is the time that a processor needs to process the function.
  • the runtime provides information, for example, on how much of the processor capacity is used to process a certain function.
  • CAN bus Controller Area Network
  • time stamp functions are often used to carry out runtime measurements of a given function of computer programs.
  • the original program code of the computer program is modified such that additional command elements are inserted in the program code before and after the execution of the specified function.
  • additional command elements each contain a call to a time stamp function.
  • this time stamp function stores time information in a data memory, as well as further data, such as an identification number of the specified function or the event type ⁇ z. B. whether it is the start or the end of processing the specified function).
  • the program code of the computer program thus provided with additional command elements for running time measurement of a given function is then translated into a machine-readable code.
  • a modified code is referred to as “instrumented”, a distinction being made between “partially instrumented” computer programs in which the time stamp function is only called when one or more functions of the program code are executed and “fully instrumented” computer programs in which each time the function is called the timestamp function is also called.
  • the procedure described for the runtime measurement therefore gives larger measured values (gross runtimes) than the actual net runtime of the functions.
  • the measured transit time is therefore often compared with a correction factor that is less than 1 (e.g.
  • the computer program and / or even the entire computer system is modified in such a way that the number of interruptions in the execution of the function to be measured is minimized. This can be done, for example, by switching off interrupts.
  • the system is usually changed so strongly that the measured runtime of the function does not correspond to the runtime in real operation of the overall system. Furthermore, such a measurement cannot be carried out in a real system (e.g. in a car).
  • the data memories in embedded systems are buffers with a storage capacity of 256 KB, which corresponds to approximately 32,000 time information.
  • several thousand functions are used which are carried out in a highly nested manner, e.g. B. each in sequences whose length is in the range of a few microseconds.
  • a data volume of approx. 10,000 time information is created for control software, whereby the additional interruptions due to interrupts (e.g. 30 interruptions in one millisecond in typical motor control systems) have not yet been taken into account.
  • the data memories in typical real-time systems can therefore only hold information on a single function or a few functions.
  • the program code would first have to be instrumented for each individual function using the method described above, then translated into a machine-readable code (with a time expenditure of approx. 10 minutes each), then executed on the real-time system and then the stored ones Time information can be viewed and evaluated.
  • Such a method can take several weeks for a single real-time system with several thousand functions.
  • the object of the present invention is to improve the possibilities of measuring runtimes of functions.
  • a method for measuring the running time of a predetermined function is proposed, in which a first computer program executed by a first computer system, if there is a 2003 P 07711
  • the measurement manager function checks whether the first function is the specified function and, if this condition is fulfilled, calls a third function (time stamp function).
  • the time stamp function provides at least one time information.
  • the computer program can, for example, be a fully instrumented program in machine-readable form, as described above.
  • a time stamp function is not necessarily called when each function is called, but the measurement manager function is called first. For example, this uses an identification number of the called function to check whether the called function is the function whose runtime is to be measured. The time stamp function is only called if this is the case. Alternatively, several functions can be specified at the same time. The measurement manager function then checks in each case whether the called function is one of the specified functions and, if this is the case, calls the time stamp function.
  • the time stamp function can make the time information available, for example, by storing it in a data memory, by graphical representation or by transferring a numerical value to the calling measurement manager function.
  • the design of the time information can depend on the type of the first computer system.
  • the time display of a clock integrated in the computer system can be used as time information.
  • the current stage of a periodic physical process for example the angular position of the crankshaft in an engine system
  • the method has the advantage that the amount of data is significantly reduced. Only the data of the function actually to be measured is saved in the system's data memory. This is particularly advantageous in embedded systems, in which i. d. Usually only small data buffers, e.g. B. ring buffer for 32,000 information are available.
  • the measurement manager function reads the information about which function the specified function is (e.g. an identification number) from a data memory.
  • the measurement manager function can also be changed in the program code so that the new function or the identification number of the new function is entered in the query condition, which represents a considerably lower programming effort than a change in the instrumentation.
  • the timestamp functions are often commercial software products. Does the developer, e.g. B. for reasons of cost or due to the availability of a more modern or more powerful product, switch to a new time stamp function, so far the entire instrumentation of the computer program would have to be adapted to the new time stamp function. For example, a new timestamp function may require other parameters to be passed.
  • the use of the measurement manager function considerably simplifies this process. When implementing a new time stamp function, only the program code of the measurement manager function has to be adapted. This greatly reduces the programming effort. 2003 P 07711
  • the measurement manager function additionally checks whether at least one signal fulfills a predetermined condition.
  • This signal can be, for example, an electrical signal at an interface of the computer system.
  • the runtime of the functions or tasks of the computer program can vary greatly from certain system parameters, such as, for. B. depend on analog or digital external signals at an interface of the computer system.
  • the external signals can e.g. B. the information transmitted by one or more sensors to the computer system.
  • This information describes the operating status or the environmental conditions of the overall system.
  • one or more special environmental conditions can be selected in which the runtime of a function is to be measured. As a result, the reproducibility of the method increases considerably, and more complex relationships between the ambient conditions and the functioning of the computer program can also be examined.
  • ECUs Engine Control Units
  • sensors e.g. oxygen sensors, pressure sensors
  • the time stamp function is additionally called each time the execution of the specified function is interrupted at the beginning and end of the interruption.
  • the net runtime of a function can be measured without interrupts being switched off, the system having to be modified in another way or correction factors having to be used.
  • the net runtime is calculated from the difference between the start and stop time of the execution of the function, minus the periods during which the execution of the function was interrupted. This significantly increases the accuracy and reproducibility of the measurement. This is particularly advantageous when programming real-time systems in which the execution of a computer program is interrupted by a large number of interrupts, such as e.g. B. in motor controls in automotive engineering (with 30-40 interrupts per millisecond).
  • the method is carried out repeatedly with a number of repetitions. During each repetition, the information provided by the time stamp function is stored in a first data store. After the last repetition, the information stored in the first data store is stored in a second data store.
  • the transit time is measured (e.g. 20 times) repeatedly, so that an average is formed and statistical in- 2003 P 07711 10
  • the second data memory can be, for example, a hard disk memory which is physically arranged on a separate computer system.
  • This physically separate storage of the information after the end of the last repetition is particularly advantageous in the case of embedded systems designed as real-time systems.
  • the data can be evaluated separately, for example on a personal computer with a considerably larger storage capacity and with commercial computer programs for data analysis.
  • the data storage of the embedded system can be deleted or overwritten.
  • the program running on the embedded system (for example a program for motor control) does not have to be interrupted for the evaluation of the data.
  • the repeated execution of the method can only be ended when the amount of information stored in the first data memory reaches or exceeds the storage capacity of the first data memory. This can be done, for example, by using a buffer (eg a FIFO buffer) with automatic limit switching as the first data memory, which generates a stop signal when the memory capacity is reached. 2003 P 07711 11
  • This further training has the advantage that no fixed number of repetitions has to be specified.
  • the runtime measurement of a function is repeated until the buffer has reached its capacity limit. This ensures that each run time measurement is carried out with the greatest possible number of repetitions. This leads to a further increase in the reproducibility and accuracy of the runtime measurements.
  • the start of the method in time is predetermined by a second computer program (offline component) on a second computer system.
  • the offline component specifies to the first computer program executed on the first computer system which function is the specified function.
  • the possibilities for inputting information by a user on a second computer system can be used.
  • This is particularly advantageous in the case of embedded systems, which mostly do not have means for the graphic representation of information (for example a screen) or means for data input (for example a keyboard).
  • Data can be exchanged between the two computer systems, for example, via a bus system.
  • the start of the computer program on the first computer system by the offline component and the transmission of the further information between the computer systems can take place at different times and independently of one another.
  • the second computer system transmits to the first computer system the information about which function or which functions are to be included in the query condition.
  • the runtime is then measured for these functions. For example, if all the functions of a program are already in use
  • the method allows a list of functions to be specified, the runtime of which is measured one after the other or in a predetermined sequence and thereby reduces, for example, the time required to measure all functions of a typical embedded system from several weeks to a few minutes.
  • the sequence of the first computer program on the first computer system does not have to be interrupted in order to transmit the information as to which function the measurement manager function should include in the scanning condition.
  • the user on the second computer system can select functions whose runtime is to be measured without having to interrupt or disrupt the execution of the first computer program on the first computer system.
  • the online component can also send further information to the 2003 P 07711 13
  • the offline component can additionally specify the number of repetitions for the first computer program executed on the first computer system.
  • the scope of the invention includes a computer program or a plurality of computer programs which, when running on a computer or computer network, execute the method according to the invention in one of its configurations.
  • the scope of the invention includes a computer program or several computer programs with program code means in order to carry out the method according to the invention in one of its configurations if the program or programs are executed on a computer or computer network.
  • the program code means can be stored on a computer-readable data carrier.
  • the scope of the invention includes a data carrier on which a data structure is stored which, after loading into a working and / or main memory of a computer or computer network, can execute the method according to the invention in one of its configurations.
  • the scope of the invention also includes a computer program product with program code means stored on a machine-readable carrier in order to carry out the method according to the invention in one of its configurations when the program is executed on a computer or computer network.
  • a computer program product is understood to mean the program as a tradable product. In principle, it can be in any form, for example on paper or a computer-readable data carrier, and can in particular be distributed over a data transmission network. 2003 P 07711 14
  • FIG. 1 shows an arrangement for measuring the running time of a function on a real-time-controlled computer system for motor control
  • FIG. 2 shows a flowchart of a method for measuring the running time of functions of an engine control program
  • the engine control system 1 shows a preferred exemplary embodiment of an arrangement with which the running time of one or more functions of an engine control program 2 executed on an engine control system 1 can be measured.
  • the engine control system 1 is a real-time controlled system.
  • the engine control program 2 has a measurement manager function 3 and a time stamp function 4 as components.
  • the engine control system 1 also has a buffer 5 for storing the during a run time measurement of the
  • Timestamp function 4 generated information which can be, for example, time information, identification numbers of the functions or information about whether the stored time information relates to the start or end of the processing of a function.
  • the motor control system 1 is connected via an interface 6 to a motor system or a motor simulation device, which is not shown here.
  • External signals can be received via this interface 6, for example before they can contain information about the operating state of the engine system (eg speed, operating state of the lambda control, operating state of the injection).
  • This information can be, for example, sensor signals (eg an electrical signal from an oxygen sensor).
  • the engine control system 1 also has a safety computer 7.
  • the safety computer 7 is designed in such a way that it checks the calculations and actions carried out on the engine control system 1 and compliance with certain time specifications during execution.
  • the engine control system 1 is also connected to a personal computer 8, on which a second computer program (offline component) 9 is executed.
  • a keyboard 10 as an input means and a screen 11 as an image display means are connected to the personal computer 8.
  • the personal computer 8 has a volatile memory 12 and a hard disk memory 13.
  • the motor control system 1 is connected to the personal computer 8 in this example via a debug bus 14.
  • the arrangement shown enables an efficient measurement of run times of one or more functions.
  • the user can select or specify which function or functions of the engine control program 2 executed on the engine control system 1 are to be subjected to a runtime measurement. He can also specify a number of repetitions for each function with which the runtime measurement of this function or functions is to be carried out repeatedly.
  • the user can specify under which environmental conditions and in which operating state the runtime measurement of each function should take place, that is to say, for example, at which engine speed, whether the lambda control or the injection should be active or the like.
  • the measurement conditions can therefore be specified in a precisely defined manner, so that the reproducibility of the runtime measurements is greatly increased. It is conceivable for the user to enter further information; B. in the form of additional information that will later facilitate the evaluation of the results.
  • the offline component 9 starts the execution of the engine control program 2 on the engine control system 1 and the measurement of the runtime of the specified one
  • the engine control program 2 can also be executed continuously on the engine control system 1, the engine control program 2 being carried out in regular or irregular fashion
  • the distances provided by the offline component 9 are evaluated and used.
  • the engine control program 2 is a completely or partially instrumented program code, ie, as described above, the program code is provided with additional information.
  • identification numbers were also assigned to the functions of the program code, which can be stored in a database (not shown here).
  • the offline component 9 stores an identification number of a function specified by the user in a volatile data memory 12 (for example a RAM).
  • operating conditions specified by the user under which the running time of the respective function is to be measured, can also be stored in the volatile data memory 12, and a number of cycles W, which indicates how often the running time of the specified one 2003 P 07711 17
  • the information stored in the data memory 12 is made available to the engine control program 2, in particular the measurement manager function 3, via the debug bus 14.
  • the measurement manager function 3 checks, based on the identification number of this function, as described above, whether it is the function specified by the offline component 9. Furthermore, the measurement manager function checks whether the specified operating conditions exist. B. by comparing the external signals present at the hardware interface 6 to the motor system with predetermined setpoints.
  • the measurement manager function 3 calls the time stamp function 4, which stores information in the buffer 5.
  • the stored information is time information, as well as the identification number of the function and information as to whether it is the beginning or the end of the processing of the function.
  • the measurement manager function 3 registers any interruption in the execution of the function and uses the time stamp function 4 to store corresponding information in the buffer 5.
  • the run time measurement of the function is typically twenty times (corresponding to the number of
  • the content of the buffer 5 is stored in the hard disk memory 13.
  • the hard disk memory 13 is physically arranged on the personal computer 8, which later facilitates access to the data and the evaluation.
  • the buffer 5 can then be used for the run time measurement of the next function.
  • the transfer of information from the buffer 5 into the hard disk memory 13 represents a time interruption or delay in the execution of the engine control program 2.
  • the safety computer 7 which monitors the operation of the engine control system 1 and in particular compliance with the specified time limits, would be the result of the transfer interpret the interruption or delay caused by the buffer 5 in the hard disk memory 13 as malfunctions of the engine control system 1.
  • the security computer 7 is switched off during the transmission of the information. This switching off can also be carried out by the measurement manager function 3.
  • the measurement manager function 3 if the user has selected further functions for a run time measurement, takes over corresponding information from the personal computer 8 about the next function to be measured. This exchange of information in turn takes place in that the offline component 9 stores the information in the volatile data memory 12, from where it is made available to the engine control system 1 via the debug bus 14. As described above, the engine control program 2 then performs a corresponding runtime measurement of the specified function with the specified number 2003 P 07711 19
  • the results are advantageously evaluated on the personal computer 8.
  • the evaluation can be carried out in whole or in part by the offline component 9 or can be carried out by a further computer program.
  • An important part of the evaluation of the results is the calculation of the length of time intervals by forming differences between the times of related stop and start signals. If the execution of a function was interrupted, the lengths of the subintervals during which the function was carried out must be added.
  • the computer program can make statistical statements about the mean value and the spread of the measured transit times for evaluation and process the results graphically.
  • FIG. 2 shows a sequence in an embodiment of the method, an arrangement according to FIG. 1 or an arrangement similar in function being used.
  • the interaction between the offline component 9 on the personal computer 8 and the engine control program 2 on the engine control system 1 is illustrated in this flowchart by the fact that the procedural steps of the offline component 9 are shown with a broken outline on the left-hand side, and the Steps of the engine control program 2 outlined on the right.
  • a commercially available debugger is used to facilitate communication between the engine control program 2 and the offline component 9. This debugger is executed on the personal computer 8.
  • the program code of the engine control program 2 is translated (compiled) into a machine-readable form on the personal computer 8, by a linker and / or locator to form an executable overall 2003 P 07711 20
  • the debugger then transfers the machine-readable code of the engine control program 2 via the debug bus 14 into a data memory (not shown in FIG. 1) of the engine control system 1. Furthermore, the debugger starts and monitors the execution of the engine control program 2.
  • the offline component 9 is executed by the debugger, and information is transferred between the offline component 9 and the engine control program 2 by the debugger. In the further description of the method steps shown in FIG. 2, however, the fact that the communication between offline component 9 and engine control program 2 takes place via the debugger is irrelevant and is therefore no longer mentioned.
  • FIG. 3 shows a flowchart of a measurement manager function 3. Since an understanding of the functioning of the measurement manager function 3 is necessary to understand the method shown in FIG. 2, the figures 2 and 3 are described together below.
  • step 202 in FIG. 2 the offline component 9 and the measurement manager function 3 are initialized.
  • step 204 the measurement conditions for the runtime measurements are entered, wherein, as described above, one or more functions are selected, the number of runtime measurements (e.g. 20 measurements) can be specified for each function and operating conditions for the Lau time measurement.
  • step 206 the run time measurement is started and the identification number of the first function, the run time of which is to be measured, is transferred. Furthermore, a number of cycles W is transferred, which determines the number of repetitions of the runtime measurement for the specified function.
  • step 208 the parameters of the engine control system are reset to predetermined initial values, 2003 P 07711 21
  • a cycle counter variable Z is also reset to zero.
  • the engine control program 2 is now executed (step 210) and calls functions.
  • step 210 The execution of the engine control program 2 and the measurement of the runtimes of the functions is shown in step 210 and comprises a number of individual steps (steps 212 to 228).
  • step 212 engine control program 2 calls a function.
  • the measurement manager function 3 is called in step 214.
  • step 301 it is queried whether the function called is the function specified by the offline component 9 in step 206 or in step 238 (see below). If this is not the case, the processing of the measurement manager function 3 is ended. If it is the specified function, the reason from which the measurement manager function 3 was called up is queried in step 302: If the measurement manager function 3 became due to an interruption, due to a start of a function or due to an end of the processing of a function called?
  • the measurement manager function 3 next queries in step 304 whether the specified measurement conditions (ambient conditions) are fulfilled, e.g. B. whether the engine is operating at a predetermined speed.
  • the specified measurement conditions e.g. B. whether the engine is operating at a predetermined speed.
  • the processing of the measurement manager function 3 is ended. If, on the other hand, the measurement conditions are met, the time stamp function 4 is then called up in step 306. This generates time information (time stamp), which together with the identification number of the called function and an information 2003 P 07711 22
  • step 212 on that it was in step 212 that the execution of the function was started is stored in the buffer 5.
  • step 308 a query is made as to whether the measurement manager function 3 has been called as a result of a start or end of the processing of the function.
  • step 214 since the measurement manager function 3 was called when the function was started, the execution of the measurement manager function 3 is ended after step 308.
  • process step 216 in FIG. H the called function is processed.
  • the function in turn, can call up various sub-functions (e.g. if the function is a task, i.e. a main function that comprises several functions).
  • the program can be designed in such a way that the running times of these subfunctions are also determined.
  • the measurement manager function is called before and after each sub-function call.
  • query step 302 in FIG. 3 a query is then carried out analogously as to whether the called subfunction is one of the subfunctions whose runtime is to be measured.
  • step 218 If the processing of the function (or one of the sub-functions) is interrupted, e.g. B. by higher priority functions or interrupts, time stamps must also be generated. If an interruption is recognized (step 218), an interruption routine consisting of method steps 220 to 224 is carried out. First, the measurement manager function 3 is called up again in step 220.
  • step 301 in FIG. 3 it is again queried whether the interrupted function is the specified function. If this is not the case, the measurement manager function 3 is ended at this point. If, on the other hand, it is the specified function, the reason for calling the measurement manager 2003 P 07711 23
  • step 310 is now carried out after the query in step 302.
  • the time stamp function 4 is again called in step 310, which generates time information.
  • the time information together with the information that it is the beginning of an interruption, is stored in the buffer 5.
  • the information that it is an interruption can e.g. B. in the form of the identification number of the interrupting function or the interrupt.
  • step 222 in FIG. 2 which may also be an interruption by several functions or interrupts.
  • the measurement manager function 3 is called up again in step 224.
  • step 310 is carried out, in addition to the time information, information is stored in the buffer 5 which indicates that it is the end of an interruption.
  • the interrupt routine is ended, and a return to the execution of the function takes place in step 226 in FIG. H.
  • Method step 216 is processed further. Further interruptions lead to the interrupt routine 220 to 224 being processed again.
  • the measurement manager function 3 After completion of the processing of the function in step 216, the measurement manager function 3 is called again in step 228. After the query in step 301 as to whether the specified function is concerned (which is assumed to be given below), the reason for calling the measurement manager function 3 is queried again in step 302. This time it is a call due to the completion of the processing of a 2003 P 07711 24
  • step 306 is then carried out immediately after step 302 bypassing the query of the environmental conditions (step 304).
  • time information is generated and stored, together with information that this is the end of the processing of the
  • step 308 it is queried in step 308 whether the measurement manager function 3 has been called up due to a start or an end to the execution of the function. Since it is now a call after completion of the processing of the function, step 312 is carried out.
  • step 312 the cycle counter variable Z is increased by one. Then in step 314 a query is made as to whether the cycle counter variable Z is already greater than the number of cycles w transferred from the offline component 9 to the engine control program 2 in step 206 or step 238 (see below). If this is the case, the runtime measurement of the specified function is carried out repeatedly with the specified number of repetitions, and the measurement is ended.
  • the measurement and the engine control program 2 are terminated by the measurement manager function 3 initiating a so-called trap step 230.
  • this trap step 230 as shown in FIG. 2, first the safety computer 7 is temporarily switched off and then the engine control program 2 is stopped. This switching off of the safety computer 7 is necessary, since otherwise an error message would be generated in step 232 when the data stored in the buffer 5 was transferred to the hard disk memory 13, which could lead to malfunctions in the engine control.
  • step 232 the contents of the buffer 5 are then transferred from the offline component 9 to the hard disk memory 13.
  • this data transmission can also be carried out by the engine control program 2, for example by the measurement mana 2003 P 07711 25
  • step 234 the data stored in the hard disk memory 13 is then optionally processed. This can be a preprocessing of the data (eg ordering, cataloging or providing additional information that contains information about the measurement conditions of the run time measurement) or a complete evaluation of the data of the run time measurement.
  • the offline component 9 checks whether all of the functions specified by the user have already been subjected to a runtime measurement. This can be done, for example, by comparing the list of identification numbers of the functions selected by the user for the runtime measurement with the identification numbers of the functions that have already been subjected to a runtime measurement and stored in the hard disk memory 13.
  • the offline component 9 transfers the identification number of a function that has not yet been measured to the engine control program 2 in step 238.
  • the offline component 9 could also step 206 run again.
  • the o fline component is ended in step 240. If complete or partial processing of the measurement data has already taken place in step 234, the results of this processing are stored in a further data memory or made available to the user in another way, for example by graphic representation on the screen 11 or by printing on paper , Another evaluation 2003 P 07711 26

Abstract

Laufzeitmessungen von Funktionen eines Computerprogramms (2) sind ein Instrument, um das Computerprogramm (2) dahingehend zu optimieren, dass die Ressourcen eines Computersystems (1) optimal genutzt werden. Die Laufzeitmessung einer oder mehrerer vorgegebener Funktionen muss auf schnelle und reproduzierbare weise unter vorgegebenen Betriebsbedingungen des Computersystems (1) durchgeführt werden. Es wird eine Messmanager-Funktion (3) als Komponente des Computerprogramms (2) eingesetzt, welche während der Ausführung des Computerprogramms (2) bei jedem Aufruf einer Funktion abfragt, ob es sich um die vorgegebene bzw. eine der vorgegebenen Funktionen handelt. Ist diese Bedingung erfüllt, so wird mittels einer Zeitstempel-Funktion (4) zu Beginn und Ende der Ausführung der Funktion eine Zeitinformation abgespeichert, wobei auch Unterbrechungen der Ausführung der Funktion erkannt und bei der Laufzeitmessung berücksichtigt werden. Die Erfindung ist insbesondere bei der Entwicklung von Computerprogrammen für den Betrieb von Echtzeitsystemen für die Steuerung von Motoren in der Automobiltechnik von Vorteil.

Description

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.

Claims

2003 P 07711 27Patentansprüche
1. Verfahren zur Lau Zeitmessung einer vorgegebenen Funktion eines ersten Computerprogramms (2) , das von einem ersten Com- putersystem (1) ausgeführt wird, mit folgenden Schritten: a) wenn das erste Computerprogramm (2) eine erste Funktion aufruft, ruft das erste Computerprogramm (2) zu Beginn und zum Ende der Abarbeitung der ersten Funktion eine zweite Funktion (Messmanager-Funktion, 3) auf; b) die Messmanager-Funktion (3) prüft, ob die erste Funktion die vorgegebene Funktion ist und ruft, sofern diese Bedingung erfüllt ist, eine dritte Funktion (Zeitstempel- Funktion, 4) auf; und c) die Zeitstempel-Funktion (4) stellt mindestens eine Zeitinformation zur Verfügung.
2. Verfahren nach dem vorhergehenden Anspruch, wobei die Messmanager-Funktion (3) zusätzlich überprüft, ob mindestens ein Signal eine vorgegebene Bedingung erfüllt.
3. Verfahren nach einem der vorhergehenden Ansprüche, wobei zusätzlich bei jeder Unterbrechung der Ausführung der vorgegebenen Funktion zu Beginn und Ende der Unterbre- chung die Zeitstempel-Funktion (4) aufgerufen wird.
4. Verfahren nach einem der vorhergehenden Ansprüche, a) wobei das Verfahren nach einem der vorhergehenden Ansprüche mit einer Anzahl von Wiederholungen wiederholt durch- geführt wird; b) wobei während jeder Wiederholung die von der Zeitstempel-Funktion (4) zur Verfügung gestellten Informationen in einem ersten Datenspeicher (5) gespeichert werden; und c) wobei nach der letzten Wiederholung die im ersten Da- tenspeicher (5) gespeicherten Informationen in einen zweiten
Datenspeicher (13) gespeichert werden. 2003 P 07711 28
5. Verfahren nach dem vorhergehenden Anspruch, wobei ein Stoppsignal generiert und die wiederholte Durchführung des Verfahrens beendet wird, wenn die im ersten Datenspeicher (5) gespeicherte Informationsmenge die Spei- cherkapazität des ersten Datenspeichers erreicht oder überschreitet .
6. Verfahren nach einem der vorhergehenden Ansprüche, a) wobei der zeitliche Beginn des Verfahrens nach einem der vorhergehenden Ansprüche durch ein zweites Computerprogramm (Offline-Komponente, 9) auf einem zweiten Computersystem (8) vorgegeben wird; und b) wobei die Offline-Komponente (9) dem auf dem ersten Computersystem (1) ausgeführten ersten Computerprogramm (2) vorgibt, welche Funktion die vorgegebene Funktion ist.
7. Verfahren nach Anspruch 4 oder 6, wobei die O fline-Komponente (9) dem auf dem ersten Computersystem (1) ausgeführten ersten Computerprogramm (2) zu- sätzlich die Anzahl von Wiederholungen vorgibt.
8. Computerprogramm, dadurch gekennzeichnet, dass es bei Ablauf auf einem Computer oder Computer-Netzwerk das Verfahren nach einem der vorhergehenden Verfahrensansprüche ausführt.
9. Computerprogramm mit Programmcode-Mitteln, um ein Verfahren gemäß einem der vorhergehenden Verfahrensansprüche durch- zuführen, wenn das Computerprogramm auf einem Computer oder Computer-Netzwerk ausgeführt wird.
10. Computerprogramm mit Programmcode-Mitteln gemäß dem vorhergehenden Anspruch, die auf einem computerlesbaren Daten- träger gespeichert sind. 2003 P 07711 29
11. Datenträger oder Computersystem, auf dem eine Datenstruktur gespeichert ist, die nach einem Laden in einen Arbeitsund/oder Hauptspeicher eines Computers oder Computer- Netzwerkes das Verfahren nach einem der vorhergehenden Ver- fahrensansprüche ausführt.
12. Computerprogramm-Produkt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode-Mitteln, um alle Schritte gemäß einem der vorhergehenden Verfahrensansprüche durchzu- führen, wenn das Programm auf einem Computer oder Computer- Netzwerk ausgeführt wird.
13. Moduliertes Datensignal, welches von einem Computersystem oder Computernetzwerk ausführbare Instruktionen zum Ausführen eines Verfahrens nach einem der vorhergehenden Verfahrensansprüche enthält.
14. Computersystem oder Computernetzwerk, gekennzeichnet durch mindestens eine Einrichtung, die den Ablauf eines Ver- fahrens nach einem der vorhergehenden Verfahrensansprüche erlaubt.
15. Anordnung zur LaufZeitmessung einer Funktion eines ersten Computerprogramms (2), das von einem Computersystem (1) aus- geführt wird, wobei die Anordnung folgendes aufweist: a) Mittel zum Ausführen des ersten Computerprogramms (2); b) Mittel zum Aufrufen und Abarbeiten einer ersten Funktion während der Abarbeitung des ersten Computerprogramms (2) ; c) Mittel zum Aufrufen und Abarbeiten einer zweiten Funk- tion (Messmanager-Funktion, 3) zu Beginn und zum Ende der Abarbeitung der ersten Funktion, wobei die Mittel zum Abarbeiten der Messmanager-Funktion (3) Mittel zum Überprüfen aufweisen, ob die erste Funktion die vorgegebene Funktion ist; und d) Mittel zum Aufrufen und Abarbeiten einer dritten Funktion (Zeitstempel-Funktion, 4) , abhängig von den Überprüfungsmitteln, 2003 P 07711 30
wobei die Mittel zum Abarbeiten der Zeitstempel-Funktion (4) Mittel zum Zurverfügungstellen mindestens einer ZeitInformation aufweisen.
PCT/EP2004/052246 2003-10-23 2004-09-20 Verfahren und anordnung zur laufzeitmessung von funktionen WO2005041041A2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP04766827A EP1676202A2 (de) 2003-10-23 2004-09-20 Verfahren und anordnung zur laufzeitmessung von funktionen

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10349308 2003-10-23
DE10349308.5 2003-10-23

Publications (2)

Publication Number Publication Date
WO2005041041A2 true WO2005041041A2 (de) 2005-05-06
WO2005041041A3 WO2005041041A3 (de) 2006-02-16

Family

ID=34484935

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2004/052246 WO2005041041A2 (de) 2003-10-23 2004-09-20 Verfahren und anordnung zur laufzeitmessung von funktionen

Country Status (2)

Country Link
EP (1) EP1676202A2 (de)
WO (1) WO2005041041A2 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009056758A1 (de) * 2009-01-28 2010-07-29 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur Beeinflussung eines Steuergerätes und Manipulationseinheit
US8166344B2 (en) 2009-01-28 2012-04-24 Dspace Digital Signal Processing And Control Engineering Gmbh Method for controlling an operating mechanism and a manipulation unit
US8171341B2 (en) 2009-01-28 2012-05-01 Dspace Digital Signal Processing And Control Engineering Gmbh Method for controlling an operating mechanism and a manipulation unit

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480043A (zh) * 2016-12-23 2017-12-15 宝沃汽车(中国)有限公司 代码运行时间的测试方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4029104A1 (de) * 1990-09-13 1992-03-19 Siemens Ag Verfahren zur messung der programmlaufzeit einer datenverarbeitungsanlage
US5565856A (en) * 1993-10-05 1996-10-15 Nippondenso Co., Ltd. Abnormality detecting device for vehicle communication system and method of using same
US5872913A (en) * 1997-03-07 1999-02-16 International Business Machines Corporation System and method for low overhead, high precision performance measurements using state transistions
US5944840A (en) * 1997-09-10 1999-08-31 Bluewater Systems, Inc. Continuous monitor for interrupt latency in real time systems
US6016466A (en) * 1996-08-27 2000-01-18 Compuware Corporation Accurate profile and timing information for multitasking systems
US20020178209A1 (en) * 2001-03-05 2002-11-28 Jens Boettcher Method and device for determining the load of a computing element
FR2835069A1 (fr) * 2002-01-18 2003-07-25 Peugeot Citroen Automobiles Sa Procede de mesure de performances d'un calculateur

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4029104A1 (de) * 1990-09-13 1992-03-19 Siemens Ag Verfahren zur messung der programmlaufzeit einer datenverarbeitungsanlage
US5565856A (en) * 1993-10-05 1996-10-15 Nippondenso Co., Ltd. Abnormality detecting device for vehicle communication system and method of using same
US6016466A (en) * 1996-08-27 2000-01-18 Compuware Corporation Accurate profile and timing information for multitasking systems
US5872913A (en) * 1997-03-07 1999-02-16 International Business Machines Corporation System and method for low overhead, high precision performance measurements using state transistions
US5944840A (en) * 1997-09-10 1999-08-31 Bluewater Systems, Inc. Continuous monitor for interrupt latency in real time systems
US20020178209A1 (en) * 2001-03-05 2002-11-28 Jens Boettcher Method and device for determining the load of a computing element
FR2835069A1 (fr) * 2002-01-18 2003-07-25 Peugeot Citroen Automobiles Sa Procede de mesure de performances d'un calculateur

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009056758A1 (de) * 2009-01-28 2010-07-29 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur Beeinflussung eines Steuergerätes und Manipulationseinheit
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
US8166344B2 (en) 2009-01-28 2012-04-24 Dspace Digital Signal Processing And Control Engineering Gmbh Method for controlling an operating mechanism and a manipulation unit
US8171341B2 (en) 2009-01-28 2012-05-01 Dspace Digital Signal Processing And Control Engineering Gmbh Method for controlling an operating mechanism and a manipulation unit
DE102009056758B4 (de) * 2009-01-28 2017-07-27 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zur Beeinflussung eines Steuergerätes und Manipulationseinheit

Also Published As

Publication number Publication date
EP1676202A2 (de) 2006-07-05
WO2005041041A3 (de) 2006-02-16

Similar Documents

Publication Publication Date Title
DE102005001946B4 (de) System zur Steuerung des Verhaltens eines Fahrzeugs
DE4410775C2 (de) Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät
DE10211889B4 (de) Verarbeitungseinheit zur Ausführung von Ereignisprozessen in Echtzeit ohne Verursachung einer Prozessstörung
EP2016500A2 (de) Verfahren zur datenübertragung von und zu einem steuergerät
EP3080668B1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
DE102013000857A1 (de) Kompakte Funktionsablaufprotokollierung
DE4223454A1 (de) Datenuebertragungssystem fuer eine digitale signalverarbeitungsvorrichtung
DE4445651A1 (de) Verfahren zur Steuerung von technischen Vorgängen
DE10243856A1 (de) Regler und Verfahren zum Betreiben eines Reglers
EP1676202A2 (de) Verfahren und anordnung zur laufzeitmessung von funktionen
EP2083339A1 (de) Verfahren und Vorrichtung zur Ausführung von Tests mittels funktional kaskadierten Test- und Experimentiervorrichtungen
DE102006052757A1 (de) Automatisierungsgerät mit einer Verarbeitungseinheit und Verwendung einer Verarbeitungseinheit in einem Automatisierungsgerät
EP1119801B1 (de) Verfahren zum betrieb eines automatisierungssystems
EP1514180A2 (de) Reaktionszeit-beschränkung eines software-prozesses
EP1870787B1 (de) Verfahren zur Überwachung eines zyklischen Steuerungsprogramms
DE102004028819B4 (de) Verfahren zur Ermittlung und Übertragung von Programmlaufzeiten in eingebetteten Systemen
EP2592504B1 (de) Verfahren zur Abschätzung eines Ressourcenverbrauchs bei der Erzeugung eines Steuergeräteprogrammcodes
DE102006006843A1 (de) Verfahren zum Antworten auf einen Steuermodulausfall
EP0677147B1 (de) Controller in einem rechenwerk
DE102011052512A1 (de) Verfahren zur Verarbeitung von Daten in einem Beeinflussungsgerät
EP3331740B1 (de) Verfahren zum betreiben einer steuervorrichtung und diagnosesystem
DE102021132235B4 (de) Verfahren zur Simulation eines Steuergeräts auf einem Computer auf der Grundlage des AUTOSAR-Standards und Computer dafür
DE4319881B4 (de) Verfahren zur Verarbeitung von Interruptsignalen einer Interruptquelle
EP1640871A2 (de) Verfahren und Vorrichtung zum Bestimmen einer Systemlast eines Prozessorsystems
EP0612917B1 (de) Motorsteuerung

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004766827

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2004766827

Country of ref document: EP