FR3005183A1 - COMPUTER ASSISTED METHOD OF SIMULATION OF A COMPUTER APPLICATION INTENDED TO OPERATE ON A CALCULATION PLATFORM - Google Patents
COMPUTER ASSISTED METHOD OF SIMULATION OF A COMPUTER APPLICATION INTENDED TO OPERATE ON A CALCULATION PLATFORM Download PDFInfo
- Publication number
- FR3005183A1 FR3005183A1 FR1300958A FR1300958A FR3005183A1 FR 3005183 A1 FR3005183 A1 FR 3005183A1 FR 1300958 A FR1300958 A FR 1300958A FR 1300958 A FR1300958 A FR 1300958A FR 3005183 A1 FR3005183 A1 FR 3005183A1
- Authority
- FR
- France
- Prior art keywords
- application
- module
- instructions
- model
- modeling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/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/3447—Performance evaluation by modeling
-
- 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
-
- 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/3457—Performance evaluation by 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/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Ce procédé de simulation comprend les étapes de : - établir un modèle d'application (16) numérique modélisant l'application, le modèle d'application (16) comprenant au moins un module paramétrable modélisant des instructions, chaque module comprenant au moins un paramètre descriptif décrivant une opération correspondant aux instructions modélisées par le module; et - générer une séquence de stimuli (19) à partir du modèle d'application et des paramètres des modules, la séquence de stimuli simulant une séquence de requêtes de l'application à destination d'un système d'exploitation ou de ressources matérielles d'une plateforme de calcul.This simulation method comprises the steps of: - establishing a digital application model (16) modeling the application, the application model (16) comprising at least one parameterizable module modeling instructions, each module comprising at least one parameter description describing an operation corresponding to the instructions modeled by the module; and - generating a stimulus sequence (19) from the application model and the parameters of the modules, the stimulus sequence simulating a sequence of requests from the application to an operating system or hardware resources. a computing platform.
Description
Procédé assisté par ordinateur de simulation d'une application informatique destinée à fonctionner sur une plateforme de calcul La présente invention concerne le domaine de la conception de plateformes de calcul.The present invention relates to the field of design of computing platforms.
Les plateformes de calculs, embarquées ou non, sont présentes dans de nombreux domaines techniques. Des plateformes de calcul embarquées sont présentes en particulier dans le domaine automobile, le domaine ferroviaire ou encore le domaine avionique. Une plateforme de calcul est un dispositif électronique et informatique dédié à l'exécution d'une ou plusieurs applications informatiques. Afin d'explorer en avance de phase des architectures possibles pour la plateforme de calcul, il est envisageable de modéliser la plateforme de calcul et les applications, afin d'évaluer les performances de l'ensemble. Néanmoins, la plateforme de calcul et les applications sont souvent développées par des fournisseurs différents, et, pour des raisons de confidentialité, en particulier dans le domaine avionique, le fournisseur d'une application fournit rarement le code applicatif de cette application. Il est possible d'effectuer l'analyse de dimensionnement de la plateforme de calcul à partir d'applications de test représentatives des applications qui seront effectivement exécutées sur le plateforme de calcul. Mais l'analyse de la compatibilité, entre la plateforme de calcul et les applications, qui en résulte, reste souvent trop imprécise. Un des buts de l'invention est de proposer un procédé assisté par ordinateur de simulation d'une application destinée à être exécuté sur une plateforme de calcul, qui permette d'obtenir des résultats avec une précision satisfaisante.Computing platforms, embedded or not, are present in many technical fields. Embedded computing platforms are present in particular in the automotive field, the railway field or the avionics field. A computing platform is an electronic and computer device dedicated to the execution of one or more computer applications. In order to explore in advance possible architectures for the computing platform, it is conceivable to model the computing platform and the applications, in order to evaluate the performances of the whole. Nevertheless, the computing platform and the applications are often developed by different suppliers, and, for reasons of confidentiality, in particular in the avionics field, the provider of an application rarely provides the application code of this application. It is possible to perform the sizing analysis of the computing platform from test applications representative of the applications that will actually be executed on the computing platform. But the analysis of compatibility, between the computing platform and applications, which results, often remains too imprecise. One of the aims of the invention is to propose a computer-assisted method for simulating an application intended to be executed on a computing platform, which makes it possible to obtain results with satisfactory accuracy.
A cet effet, l'invention propose un procédé assisté par ordinateur de simulation d'une application informatique comprenant des instructions, le procédé de simulation comprenant les étapes de : - établir un modèle d'application numérique modélisant l'application, le modèle d'application comprenant au moins un module paramétrable modélisant des instructions, chaque module comprenant au moins un paramètre descriptif décrivant une opération correspondant aux instructions modélisées par le module; et - générer une séquence de stimuli à partir du modèle d'application et des paramètres des modules, la séquence de stimuli simulant une séquence de requêtes de l'application à destination d'un système d'exploitation ou de ressources matérielles d'une plateforme de calcul.For this purpose, the invention proposes a computer-assisted method for simulating a computer application comprising instructions, the simulation method comprising the steps of: - establishing a digital application model modeling the application, the model of application comprising at least one parameterizable module modeling instructions, each module comprising at least one descriptive parameter describing an operation corresponding to the instructions modeled by the module; and - generating a stimulus sequence from the application model and the parameters of the modules, the stimulus sequence simulating a sequence of requests from the application to an operating system or hardware resources of a platform Calculation.
Selon d'autres modes de mise en oeuvre, le procédé comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles : - le modèle d'application comprend au moins un module d'appel de service modélisant des instructions d'appel d'un service d'un système d'exploitation d'une plateforme de calcul ;; - le modèle d'application comprend au moins un module de traitement modélisant des instructions de traitement de données ; - un module de traitement comprend un ou plusieurs paramètre(s) choisi(s) parmi : le type de traitement, le nombre de variable(s), le type de variable(s), le nombre d'immédiat(s), le type d'immédiat(s) ; - le modèle d'application comprend au moins un module de contrôle modélisant une structure de contrôle de l'application ; - au moins un module de contrôle comprend un ou plusieurs paramètre(s) choisi(s) parmi : le type de structure de contrôle, une probabilité de test positif et un nombre d'itérations d'une boucle ; - la séquence de stimuli est générée en parcourant les modules suivant l'ordre d'exécution défini par les modules de contrôle ; - le modèle comprend au moins un module d'appel de fonction simulant l'appel d'une fonction de l'application définie par un ensemble d'instructions de l'application. - la séquence de stimuli est générée en parcourant les modules suivant l'ordre d'exécution défini par les modules de d'appel de fonction. - le procédé comprend l'application de la séquence de stimuli en entrée d'un modèle numérique de plateforme de calcul et le relevé des traces du fonctionnement du modèle de plateforme de calcul. L'invention concerne également un produit programme d'ordinateur pour la simulation d'une application informatique comprenant des instructions, le produit programme d'ordinateur étant exécutable sur un ordinateur et comprenant : - une interface permettant d'établir un modèle d'application modélisant l'application, le modèle d'application comprenant au moins un module paramétrable modélisant des instructions de l'application, chaque module comprenant au moins un paramètre descriptif décrivant une opération correspondant aux instructions modélisées par le module; et - un générateur pour lire le modèle d'application et générer une séquence de stimuli à partir du modèle d'application et des paramètres des modules, la séquence de stimuli simulant une séquence de requêtes de l'application à destination d'un système d'exploitation ou de ressources matérielles d'une plateforme de calcul. L'invention et ses avantages seront mieux compris à l'étude de la description qui va suivre, donnée uniquement à titre d'exemple et faite en référence aux dessins annexés, sur lesquels : - la Figure 1 est une vue schématique d'une plateforme de calcul pour la mise en oeuvre d'applications informatiques ; - La Figure 2 est une vue schématique d'un ordinateur sur lequel est installé un logiciel de simulation d'une application informatique et un modèle de plateforme de calcul ; - la Figure 3 illustre un modèle d'application modélisant une application informatique ; et - les Figures 4 et 5 illustrent des modèles modélisant des fonctions d'applications informatiques.According to other embodiments, the method comprises one or more of the following characteristics, taken in isolation or in any technically possible combination: the application model comprises at least one service call module modeling instructions for use; calling a service from an operating system of a computing platform; the application model comprises at least one processing module modeling data processing instructions; a treatment module comprises one or more parameters chosen from among: the type of treatment, the number of variable (s), the type of variable (s), the number of immediate (s), the type of immediate (s); the application model comprises at least one control module modeling an application control structure; - At least one control module comprises one or more parameter (s) chosen (s) from: the type of control structure, a positive test probability and a number of iterations of a loop; the stimulus sequence is generated by traversing the modules according to the execution order defined by the control modules; the model comprises at least one function call module simulating the call of a function of the application defined by a set of instructions of the application. the stimulus sequence is generated by traversing the modules according to the execution order defined by the function call modules. the method comprises the application of the stimulus sequence at the input of a digital model of computing platform and the recording of the traces of the operation of the computing platform model. The invention also relates to a computer program product for the simulation of a computer application comprising instructions, the computer program product being executable on a computer and comprising: an interface making it possible to establish an application model modeling the application, the application model comprising at least one parameterizable module modeling instructions of the application, each module comprising at least one descriptive parameter describing an operation corresponding to the instructions modeled by the module; and a generator for reading the application model and generating a stimulus sequence from the application model and the parameters of the modules, the stimulus sequence simulating a sequence of requests from the application to an application system. exploitation or material resources of a computing platform. The invention and its advantages will be better understood on studying the description which follows, given solely by way of example and with reference to the appended drawings, in which: FIG. 1 is a schematic view of a platform computing for the implementation of computer applications; - Figure 2 is a schematic view of a computer on which is installed a computer application simulation software and a computing platform model; - Figure 3 illustrates an application model modeling a computer application; and Figures 4 and 5 illustrate models modeling computer application functions.
La plateforme de calcul 2 représentée sur la Figure 1 est configurée pour la mise en oeuvre d'applications A1, A2...An informatiques. La plateforme de calcul 2 comprend au moins un calculateur 4 possédant des ressources matérielles 6 et au moins un système d'exploitation (« Operating System » en anglais) pour l'exécution de la ou chaque application A1, A2...An par les ressources matérielles 6 sous le contrôle du ou de chaque système d'exploitation OS. Une application contient un ensemble d'instructions générant lors de l'exécution de l'application des requêtes à exécuter par les composant matériels 6 de la plateforme de calcul 2 sous le contrôle du système d'exploitation OS. La plateforme de calcul 2 comprend ici un seul calculateur 4. En variante, une plateforme de calcul comprend plusieurs calculateurs interconnectés par un bus de communication, chaque calculateur comprenant des composants matériels. La plateforme de calcul 2 comprend ici un seul système d'exploitation OS. En variante, une plateforme de calcul comprend plusieurs systèmes d'exploitation. Une plateforme de calcul comprenant plusieurs calculateurs comprend par exemple un système d'exploitation par calculateur. Une plateforme de calcul peut comprend plusieurs systèmes d'exploitation pour un même calculateur. Le système d'exploitation OS forme une interface entre les applications et les ressources matérielles. Il comprend une pluralité de services Si, S2... Sn propre à être appelés par les applications A1, A2. .An et mis en oeuvres par les ressources matérielles.The computing platform 2 shown in Figure 1 is configured for the implementation of computer applications A1, A2 ... An. The computing platform 2 comprises at least one computer 4 having hardware resources 6 and at least one operating system ("Operating System" in English) for the execution of the or each application A1, A2 ... An by the hardware resources 6 under the control of the or each operating system OS. An application contains a set of instructions generating, during the execution of the application, queries to be executed by the hardware components 6 of the computing platform 2 under the control of the operating system OS. The computing platform 2 here comprises a single computer 4. Alternatively, a computing platform comprises a plurality of computers interconnected by a communication bus, each computer comprising hardware components. The computing platform 2 here comprises a single operating system OS. In a variant, a computing platform comprises several operating systems. A computing platform comprising several computers comprises for example a computer operating system. A computing platform can include several operating systems for the same computer. The OS operating system forms an interface between applications and hardware resources. It comprises a plurality of services Si, S2 ... Sn adapted to be called by the applications A1, A2. .An and implemented by material resources.
Un service Si, S2,.. .Sn est un ensemble prédéfini d'opérations effectuées par les ressources matérielles.An Si, S2, ... .Sn service is a predefined set of operations performed by hardware resources.
Les ressources matérielles 6 sont du type microprocesseur, mémoire cache (mémoire Li, mémoire L2, etc.), mémoire vive RAM (SRAM, DRAM, etc.), mémoire morte ROM, mémoire statique RAM, composant programmable (type FPGA, CPLD, EPLD, autre), interface d'entrées/sorties (ou interface I/O pour « Input/Output » en anglais), bus de communication, et tout autre composant matériel qui peut être intégré dans une plateforme de calcul. Les requêtes d'une application sont par exemple du type : requête de calcul à exécuter par un processeur ou par un composant programmable (type FPGA, CPLD, EPLD, autre), requête d'écriture ou de lecture dans une mémoire ou des registres, requête d'accès à une interface d'entrées/sorties, requête d'accès à un bus de communication, et tout autre requête d'accès à une ressource matérielle de la plateforme de calcul. Une application est programmée sous la forme d'un code. Une application se décompose en fonctions informatiques. Chaque fonction est une partie du code codant une séquence d'instructions pour la réalisation d'une tâche déterminée. Il est possible de décomposer une fonction en opérations de différents types, chaque opération incluant une ou plusieurs instructions de la fonction. Il est en particulier possible de distinguer les opérations de contrôle, les opérations de traitement, les opérations d'appels de service et les opérations d'appel de fonction.The hardware resources 6 are of the microprocessor type, cache memory (Li memory, L2 memory, etc.), RAM (SRAM, DRAM, etc.), ROM memory, RAM static memory, programmable component (FPGA type, CPLD, EPLD, other), input / output interface (or I / O interface for "Input / Output" in English), communication bus, and any other hardware component that can be integrated into a computing platform. The requests of an application are for example of the type: computation request to be executed by a processor or by a programmable component (type FPGA, CPLD, EPLD, other), request for writing or reading in a memory or registers, access request to an input / output interface, access request to a communication bus, and any other request for access to a hardware resource of the computing platform. An application is programmed as a code. An application breaks down into computer functions. Each function is a part of the code encoding a sequence of instructions for performing a particular task. It is possible to break a function into operations of different types, each operation including one or more instructions of the function. In particular, it is possible to distinguish the control operations, the processing operations, the service call operations and the function call operations.
Une opération de contrôle (ou structure de contrôle) est un ensemble d'instructions codant un passage d'une opération de la fonction à une autre. Les opérations de contrôle déterminent l'ordre d'exécution des opérations de la fonction. Les opérations de contrôle comprennent, à titre d'exemple non limitatif, les sauts conditionnels, les tests alternatifs et les boucles.A control operation (or control structure) is a set of instructions that encodes a passage from one operation of the function to another. The control operations determine the order of execution of the operations of the function. The control operations include, as a non-limiting example, conditional jumps, alternative tests and loops.
Une opération de traitement est un ensemble d'instructions codant un traitement de données. Les opérations de traitement comprennent, à titre d'exemple non limitatif, les opérations de calcul (addition, multiplication...) et les opérations de manipulation des données (décalage de variables dans une mémoire, échange de variables dans une mémoire...) Une opération d'appel de fonction est un ensemble d'instructions codant un appel à une autre fonction de l'application. Les opérations d'appel de fonction déterminent l'ordre d'exécution des différentes fonctions de l'application. Une opération d'appel de service est un ensemble d'instructions codant un appel à un service du système d'exploitation OS. Les opérations d'appel de service comprennent par exemple la lecture d'une mémoire, l'écriture d'une mémoire, la réalisation d'un calcul par le processeur, ...A processing operation is a set of instructions encoding a data processing. The processing operations include, by way of non-limiting example, calculation operations (addition, multiplication, etc.) and data manipulation operations (shift of variables in a memory, exchange of variables in a memory, etc.). ) A function call operation is a set of instructions that encodes a call to another function of the application. Function call operations determine the order of execution of the various functions of the application. A service call operation is a set of instructions that encodes a call to a service of the OS operating system. Service call operations include, for example, reading a memory, writing a memory, performing a calculation by the processor, etc.
Un procédé assisté par ordinateur de simulation d'une application destinée à être exécutée sur une plateforme de calcul, comprend une étape de modélisation d'application, dans laquelle on établit un modèle d'application numérique modélisant l'application, et une étape de génération de séquences de stimuli, dans laquelle, à partir du modèle d'application, on génère des séquences de stimuli pour stimuler un modèle de plateforme. Une séquence de stimuli simule une séquence de requêtes générée par l'application à destination des ressources matérielles 6 de la plateforme de calcul 2 sous contrôle du système d'exploitation.A computer simulation method of an application to be executed on a computing platform includes an application modeling step, in which a digital application model modeling the application, and a generating step are established. Stimulus sequences, in which, from the application model, stimulus sequences are generated to stimulate a platform model. A stimulus sequence simulates a sequence of requests generated by the application to the hardware resources 6 of the computation platform 2 under control of the operating system.
Comme illustré sur la Figure 2, l'étape de modélisation est mise en oeuvre à l'aide d'un ordinateur 10 sur lequel est installé un logiciel de modélisation 12 comprenant des instructions propre à être exécutées par l'ordinateur 10. Le logiciel de modélisation 12 comprend une interface de modélisation 14 permettant à un opérateur d'établir un modèle d'application 16. Un modèle d'application 16 se présente sous la forme d'un fichier numérique codant le modèle d'application 16. Le logiciel de modélisation 12 permet d'associer un module paramétrable à chaque opération de chaque fonction de l'application. Une application est ainsi modélisée par une pluralité de modules, chaque module décrivant une opération associée respective. Chaque module est formé d'un paramètre descriptif ou d'une liste de paramètres descriptifs décrivant l'opération associée. Les paramètres décrivent notamment le type d'opération et des caractéristiques particulières de cette opération, en particulier des caractéristiques influençant le dimensionnement la plateforme de calcul pour l'exécution de l'application. Les paramètres d'un module décrivent l'opération mais ne permettent pas de déterminer les instructions de la portion de code correspondante. Les paramètres décrivant une opération sont différents d'une opération à une autre. Il existe différents modules correspondant à différentes opérations. De préférence, le logiciel de modélisation 12 comprend une bibliothèque 17 contenant des modules prédéfinis, sélectionnables et paramétrables par l'intermédiaire de l'interface de modélisation 14 pour l'établissement du modèle d'application 16. De préférence, le logiciel de modélisation 12 permet de créer et d'enregistrer de nouveaux modules. Les modules comprennent des modules de traitement modélisant des opérations de traitement de données, des modules de contrôle modélisant des opérations de contrôle, des modules d'appel de fonction modélisant des opérations d'appel de fonction et des modules d'appel de service, modélisant des opérations d'appel de service.As illustrated in FIG. 2, the modeling step is carried out using a computer 10 on which a modeling software 12 is installed, comprising instructions that can be executed by the computer 10. modeling 12 includes a modeling interface 14 allowing an operator to establish an application model 16. An application model 16 is in the form of a digital file encoding the application model 16. The modeling software 12 makes it possible to associate a parameterizable module with each operation of each function of the application. An application is thus modeled by a plurality of modules, each module describing a respective associated operation. Each module consists of a descriptive parameter or a list of descriptive parameters describing the associated operation. The parameters describe in particular the type of operation and the particular characteristics of this operation, in particular the characteristics influencing the sizing of the computing platform for the execution of the application. The parameters of a module describe the operation but do not make it possible to determine the instructions of the corresponding portion of code. The parameters describing an operation are different from one operation to another. There are different modules corresponding to different operations. Preferably, the modeling software 12 comprises a library 17 containing predefined, selectable and parameterizable modules via the modeling interface 14 for the establishment of the application model 16. Preferably, the modeling software 12 allows you to create and save new modules. The modules include processing modules modeling data processing operations, control modules modeling control operations, function call modules modeling function call operations and service call modules, modeling service call operations.
Les modules de traitement comprennent des modules de calcul modélisant des opérations de calcul sur des données. Les paramètres d'un module de calcul comprennent, à titre d'exemple non limitatif, le type de calcul (arithmétique, ...), le nombre de variables, le type de variables (entier, flottant...), le nombre d'immédiats, le type d'immédiats ... Trois opérations et des paramètres descriptifs associés sont donnés ci-dessous à titre d'exemple : a = b + c : 3 variables entières, 0 immédiat, 1 opération arithmétique d = 3,5 : 1 variable flottante, 1 immédiat flottant, 1 opération arithmétique e = (f + 3)/2 : 2 variables entières, 2 immédiats entiers, 2 opérations arithmétiques Les modules de traitement comprennent des modules de manipulation de variables modélisant des opérations de manipulation de variables, par exemple des opérations de décalage des variables dans une mémoire ou d'échange de variables dans une mémoire. Les paramètres des modules de manipulation de variables comprennent par exemple le nombre de variables manipulées, le type des variables manipulées (entier, flottant...), le type de manipulation (échange, rotation, empilage, dépilage...). Les modules de contrôle comprennent des modules d'ouverture de boucle, modélisant une instruction d'ouverture de boucle et des modules de fermeture de boucle, modélisant une instruction de fin de boucle. Les paramètres d'un module d'ouverture de boucle ou d'un module de fermeture de boucle comprennent à titre d'exemple le type de boucle (« tant que », « jusqu'à ce que » ...) et un coefficient de pondération indiquant un nombre d'itérations de la boucle. Les modules de contrôle comprennent des modules de test alternatif, modélisant des instructions de test alternatif. Les paramètres d'un module de test alternatif associé à un test comprennent par exemple le type de test (« si », « sinon », « selon ») et une valeur de probabilité que le test soit positif. Les modules d'opération de contrôle comprennent des modules de fermeture de boucle et des modules de fermeture de test, modélisant une instruction délimitant la fin d'un bloc d'instructions à exécuter dans une boucle ou en fonction du résultat d'un test.The processing modules comprise calculation modules modeling calculation operations on data. The parameters of a calculation module include, as a non-limiting example, the type of calculation (arithmetic, ...), the number of variables, the type of variables (integer, floating ...), the number Immediate, the type of immediate ... Three operations and associated descriptive parameters are given below as an example: a = b + c: 3 integer variables, 0 immediate, 1 arithmetic operation d = 3, 5: 1 floating variable, 1 floating instant, 1 arithmetic operation e = (f + 3) / 2: 2 integer variables, 2 immediate integers, 2 arithmetic operations Processing modules include variable manipulation modules modeling manipulation operations variables, for example operations to offset variables in a memory or exchange of variables in a memory. The parameters of the variable manipulation modules include for example the number of variables manipulated, the type of variables handled (integer, floating ...), the type of manipulation (exchange, rotation, stacking, unstacking ...). The control modules include loop-open modules, modeling a loop-open command, and loop-close modules, modeling an end-of-loop instruction. The parameters of a loop opening module or a loop closure module include, as an example, the type of loop ("as long as", "until" ...) and a coefficient weighting indicating a number of iterations of the loop. The control modules include alternative test modules, modeling alternative test instructions. The parameters of an alternative test module associated with a test include for example the type of test ("if", "otherwise", "according to") and a probability value that the test is positive. The control operation modules include loop closure modules and test closure modules, modeling an instruction delimiting the end of a block of instructions to be executed in a loop or depending on the result of a test.
Les modules d'appel de fonction modélisent l'appel d'une autre fonction de l'application pour exécuter la fonction appelée à son début ou pour retourner à une autre fonction ayant appelé la fonction à laquelle appartient le module d'appel de fonction. Les paramètres d'un module d'appel de fonction comprennent un identificateur de la fonction à appeler ou de la fonction à laquelle il faut retourner.The function call modules model the call of another function of the application to execute the called function at its beginning or to return to another function that has called the function to which the function call module belongs. The parameters of a function call module include an identifier of the function to be called or the function to be returned.
Les modules d'appel de service modélisent l'appel à un service du système d'exploitation. Les paramètres d'un module d'appel de service comprennent un identificateur du service à appeler. Les modules cités et leurs paramètres sont donnés à titre d'exemples non limitatifs. D'autres modules et d'autres paramètres sont envisageables. Le logiciel de modélisation 12 permet de regrouper les modules d'une même fonction dans un bloc de fonction. La bibliothèque 17 comprend avantageusement des blocs de fonction prédéfinis, correspondant à des fonctions classiques ou récurrentes. De préférence, le logiciel de modélisation 12 permet de générer et d'enregistrer des blocs de fonction dans la bibliothèque 17 en vue d'une utilisation ultérieure. La Figure 3 illustre un modèle d'application 16 modélisant une application A comprenant trois fonctions, chaque fonction étant modélisée par un bloc de fonction F1, F2, F3 contenant une pluralité de modules. Le premier bloc de fonction F1 comprend successivement un module d'appel de service M11, un module de traitement M12, un module de contrôle M13, un module de traitement M14, un module d'appel de fonction M15 pour appeler la deuxième fonction F2, un module de contrôle M16 et un module d'appel de fonction M17 pour appeler la fonction F3. Le deuxième bloc de fonction F2 comprend successivement un module de traitement M21, un module de traitement M22 et un module d'appel de fonction M23 pour retourner à la fonction F1. Le troisième bloc de fonction F3 comprend un module de contrôle M31, un module de traitement M32, un module d'appel de service M33, un module de contrôle M34 et un module d'appel de fonction M35 pour appeler la fonction F1 en l'exécutant depuis le début. La troisième fonction F3 correspond typiquement à la réalisation d'une boucle. En revenant à la Figure 2, l'étape de génération de séquences de stimuli est mise en oeuvre sur l'ordinateur 10 à l'aide du logiciel 12 qui comprend un générateur de stimuli 18. Le générateur de stimuli 18 est propre à générer des séquences de stimuli 19 à partir du modèle d'application 16 et des paramètres des modules, chaque séquence de stimuli 19 simulant des requêtes générées par l'application et étant destinée à stimuler un modèle de plateforme de calcul 20. Une séquence de stimuli 19 se présente sous la forme d'un fichier numérique exécutable par le modèle de plateforme de calcul 20.Service call modules model the call to an operating system service. The parameters of a service call module include an identifier of the service to call. The modules mentioned and their parameters are given as non-limiting examples. Other modules and other parameters are possible. The modeling software 12 makes it possible to group the modules of the same function in a function block. The library 17 advantageously comprises predefined function blocks corresponding to conventional or recurrent functions. Preferably, the modeling software 12 makes it possible to generate and save function blocks in the library 17 for later use. Figure 3 illustrates an application model 16 modeling an application A comprising three functions, each function being modeled by a function block F1, F2, F3 containing a plurality of modules. The first function block F1 successively comprises a service call module M11, a processing module M12, a control module M13, a processing module M14, a function call module M15 to call the second function F2, an M16 control module and a function call module M17 to call the function F3. The second function block F2 successively comprises a processing module M21, a processing module M22 and a function call module M23 to return to the function F1. The third function block F3 comprises a control module M31, a processing module M32, a service call module M33, a control module M34 and a function call module M35 to call the function F1 into the running from the beginning. The third function F3 typically corresponds to the realization of a loop. Returning to FIG. 2, the step of generating stimulus sequences is implemented on the computer 10 using the software 12 which comprises a stimulus generator 18. The stimulus generator 18 is able to generate stimuli 18. Stimulus sequences 19 from the application model 16 and the parameters of the modules, each stimulus sequence 19 simulating requests generated by the application and being intended to stimulate a model of computing platform 20. A sequence of stimuli 19 is present in the form of a digital file executable by the computing platform model 20.
Le modèle de plateforme de calcul 20 comprend une partie système d'exploitation, modélisant le système d'exploitation OS de la plateforme de calcul et ses services Si, S2...Sn, et une partie matérielle, modélisant les composant matériels 6 de la plateforme de calcul. Un stimulus est propre à être envoyé en entrée du modèle de plateforme de calcul 20 lors de l'exécution du modèle de plateforme de calcul 20. Le modèle de plateforme de calcul 20 est propre à fournir des traces indicatives du fonctionnement du modèle de plateforme de calcul 20 (consommation énergétique, temps de calcul, disponibilité) pour vérifier que la plateforme de calcul modélisée serait susceptible de permettre une exécution de l'application dans des conditions satisfaisantes. Le générateur de stimuli 18 est propre à générer, pour chaque module d'appel de service, des stimuli correspondant à l'appel d'un service du modèle de plateforme de calcul 20. Le générateur de stimuli 18 est propre à générer des stimuli à partir d'un module de traitement. Pour ce faire, une règle associée à chaque module de traitement est exécutée par le générateur de stimuli pour générer des stimuli.The computing platform model 20 includes an operating system part, modeling the operating system OS of the computing platform and its services Si, S2 ... Sn, and a hardware part, modeling the hardware components 6 of the computing platform. A stimulus is adapted to be sent as input to the computation platform model 20 when the computation platform model 20 is executed. The computation platform model 20 is able to provide indicative traces of the operation of the platform model of the computation platform 20. calculation 20 (energy consumption, calculation time, availability) to verify that the modeled computing platform would be able to allow execution of the application under satisfactory conditions. The stimulus generator 18 is able to generate, for each service call module, stimuli corresponding to the call of a service of the computing platform model 20. The stimulus generator 18 is able to generate stimuli to from a processing module. To do this, a rule associated with each processing module is executed by the stimulus generator to generate stimuli.
Un exemple d'instruction d'un code codant un calcul, de module de calcul associé et de stimulus généré à partir de ce module de calcul est donné ci-dessous : - code : a = b + c (où a,b,c variables entières) - paramètres descriptifs du module de calcul : type de calcul : arithmétique nombre de variables : 3 variables type de variables : entier, entier, entier - stimuli : utilisation du microprocesseur lecture d'une mémoire utilisation du microprocesseur écriture en mémoire L'opération de calcul est une somme de deux variables entières donnant un résultat entier.An example of an instruction of a code encoding a calculation, associated calculation module and stimulus generated from this calculation module is given below: - code: a = b + c (where a, b, c integer variables) - descriptive parameters of the calculation module: type of calculation: arithmetic number of variables: 3 variables type of variables: integer, integer, integer - stimuli: use of the microprocessor reading of a memory use of the microprocessor writing in memory The computation operation is a sum of two integer variables giving an integer result.
Les paramètres du module de calcul associé comprennent le type de calcul (arithmétique), nombre de variables (3) et le type de variable (entières). Les stimuli sont des requêtes informatiques destinées au modèle de plateforme de calcul 20 et nécessaires à la réalisation d'un calcul selon les paramètres du module de calcul, à savoir une utilisation du microprocesseur et lecture de la mémoire pour lire les variables d'entrée (variables b et c), une utilisation du microprocesseur pour effectuer le calcul (somme des variables b et c) et une écriture dans la mémoire pour écrire le résultat du calcul (variable a). Les stimuli sont élaborés par le générateur de stimuli 18 uniquement à partir du module de calcul et de la règle associée, sans connaître le code. En particulier, le module de calcul n'indique pas le nom des variables, ni le type de calcul arithmétique effectué (addition, soustraction, multiplication...). Le module de calcul est anonyme vis-à-vis du code. Le module de calcul ne permet pas de déterminer la portion de code applicatif auquel il correspond. Le générateur de stimuli 18 est propre à lire les modules selon l'ordre d'exécution définit par les modules de contrôle et les modules d'appel de fonction du modèle d'application 16, de telle manière à générer des séquences de stimuli modélisant l'exécution de l'application. Le générateur de stimuli 18 est propre à générer des stimuli pour la vérification d'un test de contrôle (test alternatif, test d'ouverture de boucle, test de fermeture de boucle...). Selon un premier exemple illustré sur la Figure 4, une modèle F4 d'une fonction comprenant une boucle répétée N fois (N est en nombre entier égal ou supérieur à 2) comprend un module d'ouverture de boucle M41 et un module de fermeture de boucle M42 encadrant un module d'appel de service M43 et un module de calcul M44.The parameters of the associated calculation module include the type of calculation (arithmetic), number of variables (3) and the type of variable (integers). The stimuli are computer queries intended for the computing platform model 20 and necessary for performing a calculation according to the parameters of the calculation module, namely a use of the microprocessor and reading of the memory to read the input variables ( variables b and c), a use of the microprocessor to perform the calculation (sum of variables b and c) and a write in the memory to write the result of the calculation (variable a). The stimuli are elaborated by the stimulus generator 18 only from the calculation module and the associated rule, without knowing the code. In particular, the calculation module does not indicate the name of the variables, nor the type of arithmetic calculation performed (addition, subtraction, multiplication ...). The calculation module is anonymous vis-à-vis the code. The calculation module does not make it possible to determine the portion of application code to which it corresponds. The stimulus generator 18 is able to read the modules according to the execution order defined by the control modules and the function call modules of the application model 16, so as to generate stimulus sequences modeling the execution of the application. The stimulus generator 18 is capable of generating stimuli for the verification of a control test (alternative test, loop opening test, loop closure test, etc.). According to a first example illustrated in FIG. 4, a model F4 of a function comprising an N times repeated loop (N is an integer equal to or greater than 2) comprises a loop opening module M41 and a closure module of loop M42 enclosing a service call module M43 and a calculation module M44.
Le générateur de stimuli 18 génère à partir du modèle de la fonction F4 une séquence de stimuli comprenant la répétition N fois de stimuli de vérification du test d'ouverture de boucle, de stimuli d'appel de service, de stimuli de calcul et de stimuli de fermeture de boucle. Selon un deuxième exemple illustré sur la Figure 5, un modèle F5 d'une fonction comprenant un test alternatif « si sinon » comprend successivement un module de test « si » M51, un module d'appel de service M52, un module de traitement M53, un module de test « sinon » M54, un module de traitement M55 et un module de fin de test M56. Le module de test « si » contient par exemple comme paramètre une probabilité que le test « si» soit positif, et le module de test « sinon » contient comme paramètre une probabilité complémentaire de celle du module de test « si ». Ce paramètre est fixé par le fournisseur d'application qui peut estimer statistiquement la probabilité que le test soit positif ou négatif. Pour générer des stimuli, le générateur de stimuli 18 effectue par exemple un tirage au sort, et, en fonction du résultat du tirage au sort, génère une séquence de stimuli correspondant aux modules M53 et M54 ou une séquence de stimuli correspondant au module M56.The stimulus generator 18 generates from the F4 model a stimulus sequence comprising the N times repetition of test stimuli of the loop-open test, service-call stimuli, computational stimuli, and stimuli. loop closure. According to a second example illustrated in FIG. 5, a model F5 of a function comprising an alternative test "if not" successively comprises an "if" test module M51, a service call module M52, an M53 processing module , an "otherwise" test module M54, a processing module M55 and an end-of-test module M56. The "if" test module contains, for example, as a parameter a probability that the "if" test is positive, and the "otherwise" test module contains as a parameter a probability complementary to that of the "if" test module. This parameter is set by the application provider who can statistically estimate the probability that the test is positive or negative. To generate stimuli, the stimulus generator 18 performs for example a draw, and, depending on the result of the draw, generates a stimulus sequence corresponding to the modules M53 and M54 or a stimulus sequence corresponding to the module M56.
Dans l'exemple illustré, les probabilités des modules de test M51 et M52 sont par exemple respectivement de 80% et 20% Le générateur de stimuli 18 tire au sort un nombre entre 0 et 100. Si ce nombre est compris entre 0 et 80, il génère une séquence de stimuli correspondant au module d'appel de service M52 et au module de traitement M53.In the example illustrated, the probabilities of the test modules M51 and M52 are for example 80% and 20% respectively. The stimulus generator 18 draws a number between 0 and 100. If this number is between 0 and 80, it generates a stimulus sequence corresponding to the service call module M52 and the processing module M53.
Si le nombre est compris entre 80 et 100, il passe au module de test « sinon » M54 qui indique la fin des modules associés au module de test « si » et génère une séquence de stimuli correspondant au module de traitement M55 et s'arrête au module de fin de test M56. Les modèles des Figures 4 et 5 et les générations de stimuli correspondantes sont donnés uniquement à titre d'exemple non limitatif. Les modèles des Figures 4 et 5 sont simples pour des raisons de facilité de compréhension. En pratique, une application est modélisée par un ensemble de fonctions, avec des appels entre les fonctions, chaque fonction pouvant contenir des tests conditionnels et des boucles imbriqués les uns dans les autres.If the number is between 80 and 100, it passes to the test module "else" M54 which indicates the end of the modules associated with the test module "si" and generates a stimulus sequence corresponding to the processing module M55 and stops the end of test module M56. The models of FIGS. 4 and 5 and the corresponding stimulus generations are given by way of non-limiting example only. The models in Figures 4 and 5 are simple for ease of understanding. In practice, an application is modeled by a set of functions, with calls between functions, each function can contain conditional tests and loops nested within each other.
En outre, une plateforme de calcul peut être prévue pour l'exécution de plusieurs applications, éventuellement avec une partition temporelle des applications. Le générateur de stimuli est propre à générer des séquences de stimuli pour chaque application. Le modèle de plateforme de calcul comprend un ordonnanceur prévu pour venir récupérer les séquences de stimuli correspondant à chaque application en fonction de la partition temporelle, comme cela est le cas pour une plateforme de calcul. Le procédé selon l'invention permet de générer un modèle d'application comprenant des modules paramétrable possédant des paramètres descriptifs qui permettent de décrire l'enchaînement des opérations, des appels de fonction et de service, et les caractéristiques de ces opérations et ces appels (type des données, nature des appels, etc.). La connaissance de ces paramètres descriptifs permet de générer des séquences de stimuli représentatives de celles que fournirait l'application au cours de son exécution, ce qui permet de réaliser des simulations plus fiables sur le modèle de plateforme de calcul. Il en résulte que la conception et le dimensionnement de la plateforme de calcul sont plus rapides et plus précis. Le modèle d'application peut être généré sans connaître l'application dans sa version définitive. Le modèle d'application s'adapte rapidement à des modifications de l'application, via le remplacement d'un ou plusieurs modules et/ou via la modification du paramétrage d'un ou plusieurs modules.In addition, a computing platform can be provided for the execution of several applications, possibly with a temporal partition of the applications. The stimulus generator is able to generate stimulus sequences for each application. The computing platform model includes a scheduler designed to retrieve the stimulus sequences corresponding to each application according to the time partition, as is the case for a computing platform. The method according to the invention makes it possible to generate an application model comprising parameterizable modules having descriptive parameters that make it possible to describe the sequence of operations, function and service calls, and the characteristics of these operations and these calls ( type of data, nature of calls, etc.). The knowledge of these descriptive parameters makes it possible to generate sequences of stimuli representative of those which the application would provide during its execution, which makes it possible to carry out more reliable simulations on the computing platform model. As a result, the design and sizing of the computing platform is faster and more accurate. The application model can be generated without knowing the application in its final version. The application model adapts quickly to changes in the application, by replacing one or more modules and / or by changing the setting of one or more modules.
De préférence, le modèle d'application est généré par le fournisseur d'application et utilisé par le fournisseur de plateforme de calcul pour exécuter un modèle de plateforme de calcul afin de dimensionner une plateforme de calcul pour l'exécution de l'application. Le modèle d'application et les modules ne reprennent aucun nom de variable ou de fonction (par exemple des fonctions classiques intégrées à l'application) afin de préserver la confidentialité du code. La connaissance du modèle d'application ne permet pas de remonter au code.Preferably, the application model is generated by the application provider and used by the computing platform provider to execute a computing platform model to size a computing platform for the execution of the application. The application template and modules do not include any variable or function names (for example, built-in functions built into the application) to maintain code confidentiality. Knowledge of the application model does not allow to go back to the code.
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1300958A FR3005183A1 (en) | 2013-04-24 | 2013-04-24 | COMPUTER ASSISTED METHOD OF SIMULATION OF A COMPUTER APPLICATION INTENDED TO OPERATE ON A CALCULATION PLATFORM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1300958A FR3005183A1 (en) | 2013-04-24 | 2013-04-24 | COMPUTER ASSISTED METHOD OF SIMULATION OF A COMPUTER APPLICATION INTENDED TO OPERATE ON A CALCULATION PLATFORM |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3005183A1 true FR3005183A1 (en) | 2014-10-31 |
Family
ID=49209421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1300958A Withdrawn FR3005183A1 (en) | 2013-04-24 | 2013-04-24 | COMPUTER ASSISTED METHOD OF SIMULATION OF A COMPUTER APPLICATION INTENDED TO OPERATE ON A CALCULATION PLATFORM |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR3005183A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6973417B1 (en) * | 1999-11-05 | 2005-12-06 | Metrowerks Corporation | Method and system for simulating execution of a target program in a simulated target system |
FR2973908A1 (en) * | 2011-04-05 | 2012-10-12 | Thales Sa | METHOD FOR MODELING, SIMULATION AND EVALUATION IN ADVANCE OF PHASE OF A CALCULATION PLATFORM |
-
2013
- 2013-04-24 FR FR1300958A patent/FR3005183A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6973417B1 (en) * | 1999-11-05 | 2005-12-06 | Metrowerks Corporation | Method and system for simulating execution of a target program in a simulated target system |
FR2973908A1 (en) * | 2011-04-05 | 2012-10-12 | Thales Sa | METHOD FOR MODELING, SIMULATION AND EVALUATION IN ADVANCE OF PHASE OF A CALCULATION PLATFORM |
Non-Patent Citations (2)
Title |
---|
BAMMI J R ET AL: "SOFTWARE PERFORMANCE ESTIMATION STRATEGIES IN A SYSTEM-LEVEL DESIGNTOOL", PROCEEDINGS OF THE 8TH. INTERNATIONAL WORKSHOP ON HARDWARE/SOFTWARE CODESIGN. CODES 2000. SAN DIEGO, CA, MAY 3 - 5, 2000; [PROCEEDINGS OF THE INTERNATIONAL WORKSHOP ON HARDWARE/SOFTWARE CODESIGN], NEW YORK, NY : ACM, US, 3 May 2000 (2000-05-03), pages 82 - 86, XP000966204, ISBN: 978-1-58113-214-4, DOI: 10.1109/HSC.2000.843712 * |
MICHAËL LAFAYE ET AL: "A new modeling approach for IMA platform early validation", PROCEEDINGS OF THE 7TH INTERNATIONAL WORKSHOP ON MODEL-BASED METHODOLOGIES FOR PERVASIVE AND EMBEDDED SOFTWARE, MOMPES '10, 1 January 2010 (2010-01-01), New York, New York, USA, pages 17 - 20, XP055019314, ISBN: 978-1-45-030123-7, DOI: 10.1145/1865875.1865878 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101983206B1 (en) | Data records selection | |
US10656962B2 (en) | Accelerate deep neural network in an FPGA | |
US9396095B2 (en) | Software verification | |
US20130145347A1 (en) | Automatic modularization of source code | |
FR2865047A1 (en) | Optimized codes generating system for material platform, has code optimization and generation device with two inputs for receiving code sequences and optimization rules from analysis module, to deliver optimized codes | |
Silvetti et al. | An active learning approach to the falsification of black box cyber-physical systems | |
GB2508970A (en) | Verifying logic design of a processor with an instruction pipeline by comparing the output from first and second instances of the design | |
Lin et al. | Hard-odt: Hardware-friendly online decision tree learning algorithm and system | |
AU2017274407B2 (en) | Format-specific data processing operations | |
Holley et al. | Enrichment patterns for big data | |
US9348733B1 (en) | Method and system for coverage determination | |
FR3005183A1 (en) | COMPUTER ASSISTED METHOD OF SIMULATION OF A COMPUTER APPLICATION INTENDED TO OPERATE ON A CALCULATION PLATFORM | |
US11868693B2 (en) | Verification performance profiling with selective data reduction | |
Brandner et al. | Reducing OpenMP to FPGA round-trip times with predictive modelling | |
KR102117165B1 (en) | Method and apparatus for testing intermediate language for binary analysis | |
Ottlik et al. | Trace-based context-sensitive timing simulation considering execution path variations | |
Ingole et al. | Instruction set design for elementary set in tensilica xtensa | |
Baker et al. | Quality assurance and error identification for the Community Earth System Model | |
CN114207594B (en) | Static analysis and runtime analysis of computer program system | |
US20160110162A1 (en) | Non-recursive cascading reduction | |
US20230095571A1 (en) | Methods and systems of sequential latent inference of complex knowledge | |
Meira et al. | “Overloaded!”—A Model-based Approach to Database Stress Testing | |
Schmid et al. | Cost-Efficient Construction of Performance Models | |
CN117893214A (en) | Big data wind control processing method and system applying AI | |
Basmaci | A Correlation Study Between Source Code Features and Benchmark Stability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 4 |
|
PLFP | Fee payment |
Year of fee payment: 5 |
|
PLFP | Fee payment |
Year of fee payment: 6 |
|
ST | Notification of lapse |
Effective date: 20200108 |