Brevet FR2942332A1 — publié le 20100820

L'invention se place, de manière générale, dans le domaine de la fabrication de calculateurs électroniques de véhicule automobile. Les calculateurs électroniques de véhicule automobile comportent en général deux types de mémoires : une mémoire non volatile (ou ROM, acronyme anglais pour � Read Only Memory �), et une mémoire volatile (ou RAM, acronyme anglais pour � Random Access Memory �). La mémoire ROM contient des données qui ne s'effacent pas lorsqu'elle n'est plus alimentée en électricité. Elle stocke généralement des logiciels, c'est-à-dire des instructions de commande associées à des fonctions techniques de pilotage de tel ou tel composant ou groupe de composants du véhicule. La mémoire RAM, par opposition à la mémoire ROM, contient des données qui s'effacent et sont perdues dès que la mémoire RAM cesse d'être alimentée en électricité. Elle stocke généralement des données dynamiques, des valeurs temporaires de variables générées lors de l'exécution des instructions de commande mémorisées dans la mémoire ROM. De par sa structure, à capacité équivalente (c'est à dire, à volume de données susceptible d'être stocké égal), la mémoire ROM est plus coûteuse que la mémoire RAM. Les systèmes électromécaniques tels que, par exemple les moteurs à combustion interne équipant les véhicules automobiles, devenant de plus en plus complexes, le nombre de fonctions nécessaires à leur pilotage est de plus en plus grand, et la capacité de la mémoire nécessaire pour stocker les logiciels associés aux fonctions augmente également. Par conséquent, le prix des calculateurs électroniques s'en ressent. Pour limiter la capacité de la mémoire ROM d'un calculateur, on a jusqu'à présent cherché à optimiser les logiciels, c'est-à-dire à limiter au mieux le nombre d'instructions 25 associées à une fonction technique. Toutefois, cette stratégie montre ses limites. L'invention propose un nouveau procédé de mémorisation permettant de réduire la capacité de la mémoire ROM. Plus précisément, pour un calculateur électronique de véhicule automobile comprenant un processeur associé à une mémoire de type ROM, l'invention propose un procédé de 30 mémorisation comprenant les étapes suivantes, consistant à : • mémoriser sous une forme compressée dans la mémoire de type ROM, des instructions de commande associées à des fonctions techniques d'un premier type, c'est à dire des fonctions utilisées un petit nombre de fois durant une durée d'utilisation totale du calculateur et • mémoriser sous une forme non compressée dans la mémoire ROM, des instructions de commande associées à des fonctions techniques d'un deuxième type, c'est à dire des fonctions techniques utilisées durant la durée d'utilisation totale du calculateur, un nombre de fois très grand par rapport au nombre d'utilisations des fonctions du premier type. Ainsi, l'invention propose de réduire la capacité de la mémoire ROM en compressant les instructions de commande des fonctions techniques d'un premier type, les instructions de commande des fonctions techniques d'un deuxième type étant quant à elles mémorisées comme par le passé dans une version non compressée. La compression des instructions de commande peut se faire par exemple en utilisant un procédé de compression de données numériques connu (ZIP, RAR, ACE, etc.). Les fonctions techniques du premier type sont par exemple des fonctions de diagnostic du véhicule automobile ou des fonctions d'initialisation du calculateur. De telles fonctions sont utilisées en pratique assez rarement (lors d'un fonctionnement anormal du véhicule ou du calculateur ou lors d'un remplacement d'une batterie électrique du véhicule), c'est-à-dire qu'elles sont utilisées environ d'une à quelques dizaines de fois pendant la durée totale d'utilisation (ou durée de vie) du calculateur. On limite ainsi le nombre de décompressions des instructions associées aux fonctions du premier type. Une opération de décompression est en effet indispensable pour permettre l'exécution des dites instructions par le processeur, mais une opération de décompression demande du temps, de l'ordre de quelques dixièmes de millisecondes. Par conséquent, comme expliqué ci dessus, les fonctions du premier type à compresser sont celles utilisées rarement afin de limiter la perte de temps due aux décompressions. Les fonctions techniques du deuxième type sont par exemple les fonctions utilisées en continu et en boucle tout au long du fonctionnement du véhicule, ce qui implique des millions d'occurrences au minimum. Pour un calculateur comprenant un processeur associé à une mémoire de type ROM comprenant des instructions de commande associées à des fonctions d'un premier type et des instructions de commande associées à des fonctions d'un deuxième type mémorisées selon un procédé de mémorisation tel que décrit ci-dessus, l'invention propose également un procédé d'exécution d'une fonction d'un premier type comprenant les étapes suivantes, consistant à : • décompresser, dans une mémoire de type RAM associée au processeur, les instructions de commande associées à la fonction à exécuter, • faire exécuter par le processeur les instructions de commande mémorisées dans la mémoire RAM. Comme dit précédemment, l'exécution d'instructions de commande compressées doit être précédée d'une décompression desdites instructions. L'invention propose de décompresser ces instructions dans la mémoire RAM du calculateur, pour ne pas augmenter la capacité de la ROM. L'invention sera mieux comprise et d'autres caractéristiques et avantages apparaîtront à la lecture de la description qui va suivre, d'un exemple de mise en oeuvre d'un procédé de mémorisation et d'un procédé d'exécution selon l'invention. La description est à lire en relation avec les dessins dans lesquels : • la figure 1 est un schéma représentatif du contenu d'une mémoire ROM et d'une mémoire RAM d'un calculateur, selon l'art antérieur, • la figure 2 est un schéma représentatif du contenu d'une mémoire ROM et d'une 15 mémoire RAM d'un calculateur, selon l'invention, Sur la figure 1, selon l'art antérieur, on mémorise dans la mémoire ROM les instructions de commande associées à toutes les fonctions techniques du calculateur, en l'espèce les fonctions Func1, Func2, Func3, Func4 et Func5. Aucune instruction n'est mémorisée dans la RAM, dont l'usage est limité à la mémorisation temporaire 1 de données 20 d'exécution des instructions associées à l'une ou l'autre des fonctions mémorisées dans la mémoire ROM. Sur la figure 2, selon l'invention, on mémorise dans la mémoire ROM sous une forme compressée compFuncl , compFunc4 les instructions de commande des fonctions techniques d'un premier type, en l'espèce les fonctions Func1 et Func4. Une partie 1 de la 25 mémoire RAM est dédiée, comme dans l'art antérieur, à la mémorisation temporaire de données d'exécution. Une autre partie 2 de la mémoire RAM est dédiée à la décompression temporaire des instructions associées aux fonctions Func1, Func4, lorsque que l'exécution de l'une de ces fonctions est nécessaire. Comme on le voit clairement en comparant les figures 1 et 2, la capacité de la ROM est 30 diminuée avec l'invention. En contrepartie, la capacité de la RAM a un peu augmenté. Le coût total des mémoires a cependant diminué puisque la mémoire RAM est moins coûteuse que la mémoire ROM. La capacité globale des mémoires peut même être diminuée, notamment si un nombre important de fonctions peuvent être compressées. Le choix du nombre de fonctions à 35 cornpresser est ainsi un compromis entre le coût des mémoires lorsque les instructions d'une partie des fonctions sont mémorisées sous une forme compressée, le temps nécessaire à la décompression des fonctions et la fréquence d'utilisations des fonctions compressées. REVENDICATIONS1. Pour un calculateur électronique de véhicule automobile comprenant un processeur associé à une mémoire de type ROM, procédé de mémorisation comprenant les étapes suivantes, consistant à : • mémoriser sous une forme compressée dans la mémoire de type ROM, des instructions de commande associées à des fonctions techniques d'un premier type, c'est à dire des fonctions utilisées un petit nombre de fois durant une durée d'utilisation totale du calculateur et • mémoriser sous une forme non compressée dans la mémoire ROM, des instructions de commande associées à des fonctions techniques d'un deuxième type, c'est à dire des fonctions techniques utilisées durant la durée d'utilisation totale du calculateur, un nombre de fois très grand par rapport au nombre d'utilisations des fonctions du premier type. 2. Procédé selon la revendication 1, dans lequel les fonctions techniques du premier type sont des fonctions de diagnostic du véhicule automobile ou des fonctions d'initialisation du calculateur. 3. Pour un calculateur électronique de véhicule automobile comprenant un processeur associé à une mémoire de type ROM comprenant des instructions de commande associées à des fonctions d'un premier type et des instructions de commande associées à des fonctions d'un deuxième type mémorisées selon un procédé de mémorisation selon l'une des revendications 1 à 2, procédé d'exécution d'une fonction d'un premier type comprenant les étapes suivantes, consistant à : • décompresser, dans une mémoire (2) de type RAM associée au processeur, les instructions de commande associées à la fonction à exécuter • faire exécuter par le processeur les instructions de commande mémorisées dans la mémoire (2) RAM. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il est appliqué à un véhicule équipé d'un calculateur électronique.