EP3639140A1 - Dispositif de caracterisation et/ou de modelisation de temps d'execution pire-cas - Google Patents
Dispositif de caracterisation et/ou de modelisation de temps d'execution pire-casInfo
- Publication number
- EP3639140A1 EP3639140A1 EP18737666.0A EP18737666A EP3639140A1 EP 3639140 A1 EP3639140 A1 EP 3639140A1 EP 18737666 A EP18737666 A EP 18737666A EP 3639140 A1 EP3639140 A1 EP 3639140A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- characterization
- execution
- execution time
- configuration data
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Definitions
- the invention relates to the field of the design of embedded systems and the simulation of their operation.
- Critical embedded systems have the particular feature of being designed so as to know no fault and / or to have a very high tolerance in case of occurrence of a fault.
- the resources of these systems are doubled, tripled or even increased, so as to ensure redundancy in case of failure of one of the elements, as well as to ensure that all the calculations that these systems are responsible for performing are completed in the desired times.
- the invention improves the situation.
- the invention proposes a computing device for characterizing execution time by a processor, comprising a memory arranged to receive bench program data, characterization configuration data sets and case data sets. , and an arranged constructor, for each execution case data set, for determining a worst-case configuration data set of the processor and a set of initialization values from a case data set of execution, and determine a reference execution time by executing the bench program according to the execution case data set by the processor configured with the configuration data set with the set of initialization values, the set of reference execution times forming a set of reference execution times.
- the constructor is furthermore arranged, for each characterization configuration data set, to determine a set of characterization execution times, each characterization execution time set comprising a number of characterization execution times equal to number of elements of the reference execution time set and each characterization execution time being determined by executing the bench program by the configured processor with a characterization configuration data set and a set of initialization values representative of the bench program and the processor, and for determining a set of characterization coefficients by applying a maximum likelihood determination algorithm between the reference run time set and the character run time sets.
- the device is finally arranged to return the characterization configuration data set and the set of characterization coefficients.
- the device may have one or more of the following characteristics:
- the constructor is arranged to calculate the characterization coefficients by determining, for each set of characterization execution times, a plurality of estimation vectors in which, for each index, the value is zero or equal to one if the time of Index characterization execution is the closest to the reference execution time for this index among all the characterization execution times for this index, as well as a variance for each characterization execution time set to from the plurality of estimation vectors and the differences between the reference execution times and the identical index characterization execution times, and then calculating iteratively from a sliding window comprising for each iteration and for each characterization execution time set a number of execution times equal to the number of elements of the reference execution time set and which are the most recent:
- a plurality of estimators for the current iteration from a plurality of normal laws for each set of characterization execution times that have in common a variance derived from that of the previous iteration, and whose average is drawn each time from a characterization runtime selected by the sliding window of the current iteration, which normal law are each evaluated at the execution time of the reference execution time set corresponding to the one from which the average is determined,
- a new characterization execution time for each characterization execution time set by applying a normal law whose variance is that calculated for each characterization execution time set for the current iteration and the average is the highest index characterization run time in the sliding window, which normal law is evaluated at the run time of the highest index reference time set in the sliding window, and a new time of reference execution from the new characterization runtimes for each characterization runtime set and the characteristic coefficients for each characterization runtime set for the current iteration,
- the iterations being repeated until a condition relating to the number of iterations or a difference between the characterization coefficients for each set of consecutive iteration characterization run times is fulfilled, the set of coefficients characterization being defined from the characterization coefficients of the last iteration,
- the constructor is arranged to calculate the estimators according to the following formula:
- each z is an element of index i in the estimator z
- N denotes the normal law of mean m and of variance s
- Mk denotes the execution time of index i in the k-th time set of Characterization execution
- sig is the variance for the k-th characterization runtime set
- Mo designates the index execution time i in the reference run time set
- z is the index element i in the z-estimator for the k-th characterization runtime set
- Mk is the index execution time i in the k-th time-set of characterization execution
- Mo denotes the index execution time i in the reference execution time set
- N denotes the normal law of mean m and variance s
- Mk denotes the execution time of index i in the k-th characterization run time set
- sig is the variance for the k-th set characterization run time
- the constructor is arranged to calculate the new reference execution times according to the following formula:
- Mo denotes the index execution time i in the reference execution time set
- Mk denotes the index execution time i in the k-th characterization execution time set
- alph is the characterization coefficient associated with the kth characterization runtime set in the ith iteration.
- the invention also relates to a device for calculating a worst-case execution time base of a program by a processor comprising a memory arranged to receive program data, configuration data sets of characterization and a set of characterization coefficients obtained by the execution of the device described above, and a modeler arranged for:
- the device may have one or more of the following characteristics:
- modeler is furthermore arranged to extrapolate worst-case execution times
- the modeler is further arranged to determine a worst-case execution time with a corresponding probability by applying a pWCET algorithm to the worst-case execution time base.
- the invention also relates to a method for characterizing execution time by a processor, comprising the following operations:
- each characterization configuration data set determining a characterization execution time set, each characterization execution time set comprising a number of characterization execution times equal to the number of elements of the game of reference execution time and each characterization execution time being determined by executing the bench program by the configured processor with a characterization configuration data set and with a set of initialization values representative of the bench program and the processor,
- the method may have one or more of the following characteristics:
- the operation d) comprises calculating the characterization coefficients by determining, for each set of characterization execution times, a plurality of estimation vectors in which, for each index, the value is zero or equal to one if the time index characterization runtime is the closest to the reference execution time for this index among all the characterization runtimes for that index, plus a variance for each characterization runtime set from the plurality of estimation vectors and the differences between the reference execution times and the identical index characterization execution times, and then computing iteratively from a sliding window comprising for each iteration and for each set of characterization runtimes a number of equal execution times the number of elements in the reference runtime set that are the most recent:
- a plurality of estimators for the current iteration from a plurality of normal laws for each set of characterization execution times that have in common a variance derived from that of the previous iteration, and whose average is each time a characterization execution time selected by the sliding window of the current iteration, which normal laws are each evaluated at the execution time of the reference execution time set corresponding to that from which is the average,
- a new characterization execution time for each characterization execution time set by applying a normal law whose variance is that calculated for each characterization execution time set for the current iteration and the average is the highest index characterization run time in the sliding window, which normal law is evaluated at the run time of the highest index reference time set in the sliding window, and a new time of reference execution from the new characterization runtimes for each characterization runtime set and the characteristic coefficients for each characterization runtime set for the current iteration,
- the iterations being repeated until a condition relating to the number of iterations or a difference between the characterization coefficients for each set of consecutive iteration characterization run times is fulfilled, the set of coefficients characterization being defined from the characterization coefficients of the last iteration,
- the operation d) comprises calculating the estimators according to the following formula:
- each z is an element of index i in the estimator z
- N denotes the normal law of mean m and of variance s
- Mk denotes the execution time of index i in the k-th time set of Characterization execution
- sig is the variance for the k-th characterization runtime set
- Mo designates the index execution time i in the reference run time set
- operation d) comprises calculating the variances according to the following formula:
- z is the index element i in the z-estimator for the k-th characterization runtime set
- Mk is the index execution time i in the k-th time-set of characterization execution
- Mo denotes the index execution time i in the reference execution time set
- the operation d) comprises calculating the characterization coefficients according to the following formula:
- the operation d) comprises calculating the new characterization execution times according to the following formula:
- N denotes the normal law of mean m and variance s
- Mk denotes the execution time of index i in the k-th characterization run time set
- sig is the variance for the k-th set characterization run time
- operation d) comprises calculating the new reference execution times according to the following formula:
- Mo denotes the index execution time i in the reference execution time set
- Mk denotes the index execution time i in the k-th characterization execution time set
- alph is the characterization coefficient associated with the kth characterization runtime set in the ith iteration.
- the invention also relates to a method for calculating a worst-case execution time base of a program by a processor comprising a) receiving program data, characterization configuration data sets and a set of coefficients. characterization obtained by the execution of the device or method described above,
- a worst-case execution time base a plurality of worst-case execution times, which are each equal to the sum for each of the product characterization configuration data sets of one of the worst-case execution times. executions by the characterization coefficient associated with the characterization configuration data set which made it possible to obtain this execution time, so that the worst-case execution time base comprises a number of equal execution times the number of sets of initialization values for each characterization configuration data set.
- the method may have one or more of the following characteristics:
- FIG. 1 represents a schematic diagram of a device according to the invention
- FIG. 2 represents an exemplary implementation of a function by an element of FIG. 1,
- FIG. 3 represents an exemplary implementation of a function of FIG. 2,
- FIG. 4 represents an exemplary implementation of a function of FIG. 2,
- FIG. 5 represents an exemplary implementation of a function of FIG. 2,
- FIG. 6 represents an exemplary implementation of a function by an element of FIG. 1, and
- FIG. 7 represents an exemplary implementation of a function of FIG. 6.
- Figure 1 shows a device 2 according to the invention in its environment.
- the device 2 comprises a manufacturer 4, a modeler 6 and a memory 8.
- the memory 8 can be any type of data storage suitable for receiving digital data: hard disk, hard disk flash memory (SSD in English), flash memory in any form, RAM, disk magnetic, distributed storage locally or in the cloud, etc.
- the data calculated by the device can be stored on any type of memory similar to or on memory 8. This data can be erased after the device has completed its tasks or stored.
- the data stored in the memory 8 is program data to be tested, sets of processor factors and n-tuples representing execution times of a given program by a processor configured with a given set of factors. In the example described here, these data are calculated by the modeler 6. Alternatively, they could be obtained differently. The data stored in the memory 8 could also be arranged in another form.
- the constructor 4 and the modeler 6 are elements directly or indirectly accessing the memory 8. They can be made in the form of an appropriate computer code executed on one or more processors. By processors, it must be understood any processor adapted to the calculations described below. Such a processor can be made in any known manner, in the form of a microprocessor for a personal computer, a dedicated FPGA or SoC chip ("System on chip"), a computing resource on a grid, a microcontroller, or any other form to provide the computational power necessary for the embodiment described below. One or more of these elements can also be realized in the form of specialized electronic circuits such as an ASIC. A combination of processor and electronic circuits can also be considered.
- the function of constructor 4 is to determine a set of coefficients stored in an vector alph []. This set of coefficients is determined on the basis of a benchmark program for a processor that is to be characterized, as well as for a set of processor factors chosen for the processor that is to be characterized.
- a processor may be characterized by certain factors that will affect its operation. For example, these factors may be the activation state of one or more of the processor cores and / or their operating frequency, the operating state of one or more low-level RAMs, the state of of operation of one or more of the communication buses within the processor, the operating status of one or more of the processor buffers, the activation state of specific data processing functions, etc.
- the constructor 4 will determine a worst case execution time data set for the bench program for the given processor in a worst case configuration, as well as for each of the processor factor sets.
- the coefficient set will be computed to represent a match between the runtime data sets associated with each of the processor factor sets and the worst case run time set.
- the role of the modeller 6 is to exploit the set of coefficients.
- the modulator 6 receives simulation data 10 comprising program data to be qualified, the program to be qualified being considered sufficiently similar to the bench program.
- the simulation data is used with the processor factor sets to determine run time data sets of the program to be qualified for each of the processor factor sets, and then the coefficient set is used to generate a set of processor factors. worst case execution time data for the program to qualify.
- This worst case execution time data set can then be extended in a synthetic manner to generate a large number of execution times which are characteristic of the execution of the program to be qualified by the given processor under worst case conditions.
- This extended data is stored in worst case data 12 which can be used in accordance with what has been described in the patent application. French FR 15 51828 (or in another way) to determine a worst case execution time by the given processor for the program to qualify.
- the time to get the worst case runtime data set and its extension is much shorter than the time that would be needed to directly acquire runtimes for that same program by running it on the given processor for all events.
- the modeler 6 makes it possible to obtain a worst case execution data set comprising a very large number of data much faster than was previously possible. This is achieved by performing the most intensive computation amount only once to compute the coefficient set, and reusing them to qualify all subsequent programs, as long as they are sufficiently similar to the bench program.
- the device 2 can comprise the manufacturer 4 and the modeler 6 together, or only one of them.
- the modeler 6 could receive, in addition to the simulation data 10, data containing the set of coefficients as well as sets of processor factors.
- the device of the invention can be used in other applications than the determination of "worst-case" time of a task by a processor, since it is a question of studying the taking of values extremes of a physical parameter.
- the constructor 4 and the modeler 6 can be made in a great many ways and be, for example, coded in the form of a computer program.
- FIG. 2 represents an example of a function implemented by the manufacturer 4 to calculate the set of coefficients.
- the constructor 4 executes a function Trnl () to calculate the worst execution time data set case for the program bench for the processor given in a worst case configuration.
- Figure 3 shows an example of implementation of the function Trnl ().
- an index i is initialized to zero, and the bench program B and the processor P are received.
- a function Cas () receiving the program B bench is executed in order to determine all the possible execution cases for the program bench B.
- These possible execution cases are stored in a vector J.
- the program bench and cut automatically or manually into a plurality of call blocks interconnected by a sequencing graph of the program bench B, and the execution cases are generated taking into account the various hardware possibilities of execution of these call blocks, on all possible combinations of call blocks within the sequencing graph of the program bench B.
- the vector J can be received as a parameter, for example by the user.
- a loop is then started from an operation 320 in which the set of executions cases traveled and executed by the processor in order to derive a worst case execution time.
- the vector J is unstacked in a variable S
- the set of processor factors F is determined in an operation 330
- the processor is initialized in an operation 340
- a vector of initialization values V is generated by a function Rand () which receives the variable S as an argument in an operation 350.
- the function Rand () generates the vector of initialization values V randomly.
- the function Rand () could define the vector of initialization values V by choosing it from a group of vectors that are statistically representative with respect to the execution case S on the processor P.
- a function Wc () receiving the processor P and the variable S as arguments is executed in order to determine a set of processor factors F corresponding to the worst-case operation for the processor P in the execution case S.
- the function Wc () will generate a set of processor factors in which a only cores are enabled, with a minimum operating frequency, disabling the buffers, and providing a malfunction of the communication bus on the processor.
- the set of processor factors F can be received as a parameter, for example by the user.
- An Init () function is then executed in the operation 340 with the processor P and the set of processor factors F as arguments. This function accesses the processor P and configures it according to processor factor set F.
- the operation 350 can be performed after the operation 340, before it or in parallel.
- the worst-case execution time corresponding to the variable S is determined by executing an Ex () function in an operation 360.
- the Ex () function executes the execution case defined by the variable S with the initialization value vector V on the processor P initialized at operation 340.
- the resulting execution time is stored in the worst execution time data set case M0 [i], then the index i is incremented in an operation 370 and the loop resumes with the operation 340.
- the function Trnl () ends in an operation 399 with the return of the worst execution time data set case MO.
- Constructor 4 then executes a function Trn2 () in an operation 210 in which it determines a plurality of respective run time data sets at sets of processor factors selected from a set of processor factor sets.
- the set of processor factor sets is chosen so as to characterize the worst-case behavior of the processor P, in the manner of the eigenvectors of a matrix.
- each set of processor factors is defined by activating and / or optimizing one or more factors of the processor P, and setting all other factors to their worst case value.
- Figure 4 shows an example of implementation of the function Trn2 ().
- an index i is initialized to zero, and the set of processor factor sets F, the bench program B, the processor P are received, as well as the worst execution time data set case MO.
- the set of processor factor sets F received in operation 400 is distinct from that determined in operation 330.
- each set of factors of the set of processor factor sets F represents a configuration that the function aims to qualify.
- a variable T is created and receives the number of execution times contained in the worst execution time data set case MO.
- a variable K is created and receives the number of sets of processor factors contained in the set of processor factor sets F.
- a loop is then started in which a set of runtime data sets M1 to MK will be generated for each set of processor factors, each runtime data set M1 to MK receiving a number of times of execution time. execution equal to variable T.
- the index k of the processor factor set for which an execution time has to be determined for a given instance of the loop is determined in an operation 430 by calculating the index i modulo the variable K.
- the index j of the execution time in the execution time data set Mk is determined for a given instance of the loop is determined in an operation 440 by calculating the integer part of the division of the index i by the variable T.
- the operations 430 and 440 have the consequence that the execution time data sets Mk are determined increasingly, one execution time at a time. This can be done in another order, since a hazard is preserved so as not to bias the construction of the execution time data sets Mk.
- the processor P is initialized with the set of index processor factors k in the set of processor factor sets in an operation 450 similar to operation 340, then a vector of initialization values V is generated by applying a function Rand2 () to the program B bench in an operation 460 similarly to the operation 350.
- the function Rand2 () generates the vector of initialization values V randomly
- the function Rand2 () could define the vector of initialization values V by choosing it from a group of vectors that are representative of a statistical point of view compared to the execution case S on the processor P.
- the worst case execution time corresponding to the initialization value vector V is determined by executing an Ex () function in an operation 470.
- the Ex () function executes the execution case defined by the vector of values d initialization V for the program B bench on the processor P initialized in operation 450.
- the resulting execution time is stored in the execution time data set Mk [j], then the index i is tested in an operation 480 to determine if all the execution time data sets Mk have been calculated. .
- Constructor 4 then executes a function Fit () in an operation 220 in which it determines a set of coefficients alph [] which characterizes the correspondence between each of the execution time datasets M1 to MK with the time data set. worst case execution MO.
- Bayesian Model Averaging Bayesian Model Averaging
- the probability distribution function of a prediction on the basis of a plurality of models M1 to MK for explaining an MO model, may perhaps be written according to the formula [10] of Annex A.
- the Applicant's work has revealed that by correcting the bias of the execution time data sets M1 to MK, these can be rewritten as predictors f1 to fk, which makes it possible to define a distribution function. of conditional probability on each predictor fk, and to rewrite the formula [10] according to the formula [20] of Appendix A.
- each conditional probability distribution function on a predictor fk can then be approximated by means of of a normal distribution centered on a linear function of the predictor fk.
- the determination of the set of normal laws on the basis of the predictors fk then makes it possible to determine all the coefficients of the vector alph [].
- the Applicant uses the likelihood function of which it maximizes the logarithm according to the EM algorithm ("The EM algorithm and extensions” by Geoffrey J. McLachlan, and Thriyambakam Krishnan, 1997) which is an extension of the article " Maximum Likelihood from Incomplete Data via the EM Algorithm "by Dempster, Laird and Rubin in Journal of the Royal Statistical Society. Series B (Methodological), Vol. 39, No. 1. (1977), pp. 1- 38. This is done using the formula [30] of Appendix A.
- Figure 5 shows an exemplary implementation of the function for determining the vector alph [] for the execution time data sets M1-MK with respect to the runtime data set MO.
- the run time data sets MO to MK are received, as well as the number T of data in each run time dataset, and an index j is initialized to 1.
- the algorithm is initialized by calculating an estimator z (0) and a variance vector sig (0) by means of a function Min ().
- the function Min () receives the data sets MO to MK, and, for each execution time of each set Ml to MK, defines a value which it stores in z (0) which is equal to 1 if an execution time of given index is the closest among all the execution times of the same index of the execution time having this same index in MO.
- z (0) (r, i) is equal to 1 if Mr (i) is the closest to M0 (i) among all Mk (i). All other z (0) (k, i) are set to 0.
- each z (j) (k, i) is computed from the formula [50] of the appendix A, where N (X, Y) (z) denotes the normal distribution of mean X, of variance Y, calculated in z.
- the index i is between j and T + j-1, and the index k is between 1 and K.
- the vector z (j) therefore contains T * K values.
- the vector sig (j) is then evaluated in an operation 530 by applying the formula [40] of Appendix A, and the weight vector alph (j) is evaluated in an operation 540 by applying the formula [60] of the 'Annex A.
- the vectors sig (j) and alph (j) make it possible to define K normal laws determined on a window of index i between j and T + j-1 for each of the execution time data sets Mk for k between 1 and K.
- a function M () is executed, which calculates at a first time a new execution time Mk (T + j) for each k between 1 and K by applying the formula [70] of Annex A, that is to say by applying the normal distribution whose parameters have just been evaluated for the execution time window of index k whose values are those associated with indices lying between j-1 and T + j-1, with as average the last execution time of this window (that is to say Mk (T + jl)), as the variance the index value k of the vector sig (j), evaluated at the point M0 (T + jl).
- the runtime data set MO is also extended according to the formula [80] of Annex A.
- a test is then performed in an operation 560 to determine if the vector alph (j) is sufficiently close to the vector alph (jl), which makes it possible to determine that the algorithm has converged. If it is not, then j is incremented in an operation 570. Otherwise, the function Fit () then ends by returning the set of coefficients alph [j] in an operation 599.
- the length of the sliding window used is equal to T, that is to say the number of elements of MO. However, this length represents a maximum and could be lower.
- the length of the sliding window could be chosen from criteria such as the Continous Rank Probability Score (CRPS) or the Root Mean Square Error (RMSE).
- CRPS Continous Rank Probability Score
- RMSE Root Mean Square Error
- the operations 510, 530 and 550 may be adapted to a smaller length.
- FIG. 6 represents an exemplary implementation of a computation time calculation function worst case for a program TP on the basis of the characterization that has just been made.
- the worst-case execution time model for the program TP is determined by executing a function Use () which receives the program TP, the weight vector alph [] and the sets of factors F [ l] to F [K] as arguments.
- Figure 7 shows an example of implementing the Use () function.
- an index i is initialized to 0, and the sets of factors F, the new program TP, the processor P and the number of executions R are received.
- K is determined as the number of factor sets F.
- a loop is then executed to perform R executions of the new program TP on the processor P, initialized according to each set of factors F.
- an index k is calculated in an operation 710 as the remainder of the index i modulo K, and indicates which set of factors will be used. Then, or in parallel, an index j is defined in an operation 715 as the integer part of the index i divided by K. This will indicate the rank of the determined execution time.
- the function Rand () is executed with the new program TP to generate a vector of initialization values V, as for the operations 350 and 460.
- the processor P is initialized in an operation 725 with the set of factors F [k] identically to operations 340 and 450, and in an operation 730 the program TP is executed on the processor P initialized with the vector of initialization values V and the corresponding execution time is stored in the vector Mk [] at index j.
- a test of an operation 735 determines if i is strictly less than R. If this is the case, then it is incremented in an operation 740. If not, then the new program TP has been characterized and the model worst case ⁇ 0 is calculated in operations 745 to 775.
- the index j is reset to 0.
- a double loop is then started in which each index contribution j taken from each set of factors is grouped together to form a worst execution time index case j for the new TP program.
- the index k is initialized to 0 in the operation 750, and all the sets of factors are traversed for the index j given by adding to MTP0 [j] the value Mk [j] multiplied by alph [k] in an operation 755.
- MTP0 [j] progressively receives the contributions Mk [j] of each set of factors, a test in the operation 760 determines whether all the sets of factors have been traveled or not.
- the index k is incremented in the operation 765 and the loop in k resumes with the operation 755. If it is the case, then a test in operation 770 determines if all lines of MTP0 [] have been satisfied. If it is not the case, then the index j is incremented in the operation 775 and the loop in i resumes with the operation 750. If it is the case, then the function ends in 799. Then, an Extr () function is executed in an operation 610 on the worst execution time set MTPO case. The Extr () function extrapolates additional data in order to complete the worst case execution time set MTPO. For this, it applies the normal laws of each set of factors F [1] to F [K] in sliding window, as it was done with the operation 550, except that the variance sig (k) is fixed for each set of factors.
- a function pWCET calculates the worst case execution time with a corresponding probability with the result of the operation 630.
- this function can be performed in accordance with the teachings of the French patent application FR 51828 or in any other suitable manner.
- the invention therefore makes it possible to obtain results making it possible to determine the worst-case execution times of a program by a processor from a number of executions that is significantly lower than what was previously known (of the order 1,000 executions against more than 100,000 before). This makes it possible to modify the programs with greater certainty, since the question of validation of the latter by the processors is no longer a critical problem in terms of execution time. In addition, it also allows for comparison of processor banks for the execution of a given program. Indeed, it quickly becomes possible to compare the processors between them.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- Geometry (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Evolutionary Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Debugging And Monitoring (AREA)
- Complex Calculations (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1755208A FR3067482A1 (fr) | 2017-06-12 | 2017-06-12 | Dispositif de caracterisation et/ou de modelisation de temps d'execution pire-cas |
PCT/FR2018/051310 WO2018229392A1 (fr) | 2017-06-12 | 2018-06-06 | Dispositif de caracterisation et/ou de modelisation de temps d'execution pire-cas |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3639140A1 true EP3639140A1 (fr) | 2020-04-22 |
Family
ID=60019994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP18737666.0A Pending EP3639140A1 (fr) | 2017-06-12 | 2018-06-06 | Dispositif de caracterisation et/ou de modelisation de temps d'execution pire-cas |
Country Status (4)
Country | Link |
---|---|
US (1) | US11748530B2 (fr) |
EP (1) | EP3639140A1 (fr) |
FR (1) | FR3067482A1 (fr) |
WO (1) | WO2018229392A1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858272B (zh) * | 2020-06-29 | 2023-07-14 | 深圳优地科技有限公司 | 判断程序执行延迟方法、装置及终端设备 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1551828A (fr) | 1967-01-31 | 1968-12-27 | ||
GB0019341D0 (en) * | 2000-08-08 | 2000-09-27 | Easics Nv | System-on-chip solutions |
EP1331565B1 (fr) * | 2002-01-29 | 2018-09-12 | Texas Instruments France | Etablissement de profil d'exécution d'applications en conjonction avec une machine virtuelle |
US20050010907A1 (en) * | 2003-07-07 | 2005-01-13 | Namjoshi Kedar Sharadchandra | Method and apparatus for reducing a program size while maintaining branching time properties and automated checking of such reduced programs |
US7574695B2 (en) * | 2003-12-23 | 2009-08-11 | Ntt Docomo, Inc. | Performing checks on the resource usage of computer programs |
US8756044B2 (en) * | 2005-05-31 | 2014-06-17 | The Mathworks, Inc. | Graphical partitioning for parallel execution of executable block diagram models |
US8209701B1 (en) * | 2007-09-27 | 2012-06-26 | Emc Corporation | Task management using multiple processing threads |
EP2192492B1 (fr) * | 2008-11-24 | 2012-11-14 | Barcelona Supercomputing Center-Centro Nacional de Supercomputación | Procédé, mécanisme et produit de programme informatique pour l'exécution de plusieurs tâches dans un processeur multifilière et pour estimer les temps d'éxecution des tâches les plus défavorables |
US8316368B2 (en) * | 2009-02-05 | 2012-11-20 | Honeywell International Inc. | Safe partition scheduling on multi-core processors |
WO2012005639A1 (fr) * | 2010-07-06 | 2012-01-12 | Saab Ab | Simulation et essai d'avionique |
US9477928B2 (en) * | 2010-07-14 | 2016-10-25 | Fujitsu Limited | System and method for comparing software frameworks |
US9158592B2 (en) * | 2011-05-02 | 2015-10-13 | Green Hills Software, Inc. | System and method for time variant scheduling of affinity groups comprising processor core and address spaces on a synchronized multicore processor |
GB2491564A (en) * | 2011-05-24 | 2012-12-12 | Isis Innovation | Method of system monitoring |
US8875146B2 (en) * | 2011-08-01 | 2014-10-28 | Honeywell International Inc. | Systems and methods for bounding processing times on multiple processing units |
US9081583B2 (en) * | 2012-08-23 | 2015-07-14 | National Instruments Corporation | Compile time execution |
US9612868B2 (en) * | 2012-10-31 | 2017-04-04 | Honeywell International Inc. | Systems and methods generating inter-group and intra-group execution schedules for instruction entity allocation and scheduling on multi-processors |
FR3004825B1 (fr) * | 2013-04-19 | 2015-04-24 | Krono Safe | Procede d'allocation temporelle de taches permettant une recuperation d'erreur deterministe en temps reel |
US20160247081A1 (en) * | 2015-02-23 | 2016-08-25 | Honeywell International Inc. | Worst-case execution time statistical tool |
FR3033431A1 (fr) * | 2015-03-04 | 2016-09-09 | Inria Inst Nat De Rech En Informatique Et En Automatique | Dispositif de simulation |
US10733526B2 (en) * | 2015-12-09 | 2020-08-04 | International Business Machines Corporation | Estimation of latent waiting and service times from incomplete event logs |
US20180173622A1 (en) * | 2016-12-16 | 2018-06-21 | Hamilton Sundstrand Corporation | Deterministic timing evaluation |
WO2018115970A1 (fr) * | 2016-12-19 | 2018-06-28 | (Un)Manned N.V. | Procédé et appareil permettant l'exécution d'une application de boucle de commande en temps réel à partir d'une description de haut niveau |
-
2017
- 2017-06-12 FR FR1755208A patent/FR3067482A1/fr active Pending
-
2018
- 2018-06-06 US US16/621,379 patent/US11748530B2/en active Active
- 2018-06-06 EP EP18737666.0A patent/EP3639140A1/fr active Pending
- 2018-06-06 WO PCT/FR2018/051310 patent/WO2018229392A1/fr unknown
Also Published As
Publication number | Publication date |
---|---|
FR3067482A1 (fr) | 2018-12-14 |
US11748530B2 (en) | 2023-09-05 |
WO2018229392A1 (fr) | 2018-12-20 |
US20200159974A1 (en) | 2020-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Johannes | Deconvolution with unknown error distribution | |
CA2943397C (fr) | Procede d'estimation du caractere normal ou non d'une valeur mesuree d'un parametre physique d'un moteur d'aeronef | |
WO2017220923A1 (fr) | Procédé d'estimation du facteur d'intensité des contraintes et procédé de calcul de durée de vie associé | |
WO2011007058A1 (fr) | Simulation d'un agrégat évolutif du monde réel, notamment pour gestion de risque | |
US8732223B2 (en) | Deriving a function that represents data points | |
FR3095042A1 (fr) | Procede de definition d’un chemin | |
US9524481B2 (en) | Time series technique for analyzing performance in an online professional network | |
EP3639140A1 (fr) | Dispositif de caracterisation et/ou de modelisation de temps d'execution pire-cas | |
WO2008007026A2 (fr) | Procédé de modélisation de l'activité de commutation d'un circuit numérique | |
US20070124353A1 (en) | System and method for generating a probability distribution of computer performance ratios | |
FR3110725A1 (fr) | Procédé mis en oeuvre par ordinateur pour générer des modèles additifs généralisés | |
EP3265915B1 (fr) | Dispositif de simulation | |
Sainte-Marie et al. | Indices de Sobol généralisés aux variables dépendantes: tests de performance de l’algorithme HOGS couplé à plusieurs estimateurs paramétriques | |
FR3039677A1 (fr) | Procede de conception de pieces mecaniques, notamment d'aubes de turbomachine | |
WO2015067881A2 (fr) | Procede et dispositif de caracterisation d'un signal | |
FR3094816A1 (fr) | Procédé et dispositif d’estimation de valeurs d’une métrique additive | |
EP1688872A2 (fr) | Outil informatique de prévision | |
EP3459177A1 (fr) | Procédé de traitement d'un signal formé d'une séquence d'impulsions | |
FR3093878A1 (fr) | Procédé et dispositif d’estimation de distributions probabilistes d’une métrique additive | |
CN111753949B (zh) | 一种数据块处理方法、装置及电子设备 | |
FR3063358A1 (fr) | Procede d'estimation du temps d'execution d'une partie de code par un processeur | |
FR3084192A1 (fr) | Procede de rendu d'une scene tridimensionnelle, programme d'ordinateur et dispositif correspondants | |
WO2023135379A1 (fr) | Detection d'anomalies de mesure par filtre de kalman appliquee a la navigation | |
EP3908926A1 (fr) | Procédé de validation d'un système flots de données | |
EP4187388A1 (fr) | Procede et dispositif de detection de comportement aberrant dans un ensemble d'executions d'applications logicielles |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20191209 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20211214 |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230527 |