FR2957436A1 - Microprocessor system for use in automobile, has non-volatile memory storing software, and memory portion readable by microprocessor, where software has cache software portions that are stored in cache memory portion - Google Patents

Microprocessor system for use in automobile, has non-volatile memory storing software, and memory portion readable by microprocessor, where software has cache software portions that are stored in cache memory portion Download PDF

Info

Publication number
FR2957436A1
FR2957436A1 FR1100121A FR1100121A FR2957436A1 FR 2957436 A1 FR2957436 A1 FR 2957436A1 FR 1100121 A FR1100121 A FR 1100121A FR 1100121 A FR1100121 A FR 1100121A FR 2957436 A1 FR2957436 A1 FR 2957436A1
Authority
FR
France
Prior art keywords
software
microprocessor
memory
hidden
memory portion
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
Application number
FR1100121A
Other languages
French (fr)
Inventor
Emil Saban
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Continental Automotive France SAS
Original Assignee
Continental Automotive France SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Continental Automotive France SAS filed Critical Continental Automotive France SAS
Priority to FR1100121A priority Critical patent/FR2957436A1/en
Publication of FR2957436A1 publication Critical patent/FR2957436A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Abstract

The system has a non-volatile memory i.e. flash ROM, storing software. The memory comprises a memory portion that serves as a cache memory portion (17) from an exterior of the system when the system is in non-current carrying state. The memory portion is only readable by a microprocessor. The software has cache software portions i.e. program libraries (16f-6s), stored in the cache memory portion. The software verifies the presence of an anti-theft control unit during its execution, so as to continue the execution of the software.

Description

La présente invention concerne un système microprocesseur et particulièrement un _moyen de protection contre une utilisation frauduleuse dudit système. Dans le domaine des systèmes microprocesseur, il est connu d'utiliser au moins un microprocesseur apte à exécuter au moins un logiciel. De manière classique pour que le système soit opérable, un logiciel, sous forme d'une liste d'instructions exécutables, est stocké dans une mémoire rémanente afin de réaliser un stockage persistant, y compris lorsque le système est hors tension. Lors de l'exécution, les instructions du logiciel sont soit chargées dans une autre mémoire de travail, soit directement lues dans la mémoire rémanente, pour être successivement exécutées par le microprocesseur. Le problème que l'on rencontre est que l'ensemble du logiciel est présent en un seul et même endroit. The present invention relates to a microprocessor system and particularly a means of protection against fraudulent use of said system. In the field of microprocessor systems, it is known to use at least one microprocessor capable of executing at least one software. Conventionally for the system to be operable, software, in the form of a list of executable instructions, is stored in nonvolatile memory in order to achieve persistent storage, even when the system is powered off. During execution, the instructions of the software are either loaded into another working memory, or read directly into the non-volatile memory, to be successively executed by the microprocessor. The problem is that all the software is present in one place.

Au stade de la conception/production du produit système microprocesseur, avant d'être chargée dans la mémoire rémanente dudit système microprocesseur, la liste d'instructions exécutables constitutive du logiciel est classiquement présente sous forme d'un ou de plusieurs fichiers informatiques. De tels fichiers, présents sur des systèmes et réseaux informatiques, peuvent aisément être copiés, et donc volés, piratés. Sachant que la partie matérielle du système microprocesseur est un produit le plus souvent standard, il est aisé de s'en procurer, parfois même auprès de plusieurs sources, même pour une personne non autorisée. Cette personne non autorisée, si elle dispose du logiciel peut aisément reconstituer le système microprocesseur. En phase d'utilisation du produit, la liste d'instructions exécutables constitutive du logiciel est classiquement chargée dans la mémoire rémanente du système microprocesseur. Cette mémoire, de manière classique pour des besoins de test et de mise au point du logiciel, est lisible, en plus du microprocesseur, par des moyens externes. Le logiciel peut par le biais d'un tel moyen de lecture être facilement copié et reproduit, y compris par une personne non autorisée. Cette personne non autorisée, si elle dispose d'un exemplaire du système microprocesseur original, peut aisément reconstituer le système microprocesseur, en reproduisant ledit logiciel sur une partie matérielle standard du système microprocesseur. L'objet de la présente invention est de séparer, dans les différentes phases de vie du produit le logiciel en une partie logicielle visible et au moins une partie logicielle cachée, afin de limiter l'accès en copie du logiciel complet et ainsi de limiter la reproduction et l'utilisation non autorisée du produit. L'invention concerne un système microprocesseur du type comprenant au moins un microprocesseur, au moins un logiciel et au moins une mémoire rémanente destinée à stocker ledit logiciel, y compris lorsque le système est hors tension, une partie de ladite mémoire étant une partie mémoire cachée de l'extérieur du système en ce qu'elle n'est lisible que par ledit microprocesseur, le logiciel comprenant une partie logicielle cachée stockée dans ladite partie mémoire cachée. Selon une autre caractéristique de l'invention, la partie logicielle cachée comprend un moyen de contrôle antivol, et le logiciel vérifie lors de son exécution la présence dudit moyen de contrôle antivol, afin de poursuivre ladite exécution. At the stage of the design / production of the microprocessor system product, before being loaded into the non-volatile memory of said microprocessor system, the list of executable instructions constituting the software is conventionally present in the form of one or more computer files. Such files, present on computer systems and networks, can easily be copied, and thus stolen, pirated. Knowing that the hardware part of the microprocessor system is a product most often standard, it is easy to obtain, sometimes even from several sources, even for an unauthorized person. This unauthorized person, if he has the software can easily restore the microprocessor system. During the use phase of the product, the list of executable instructions constituting the software is conventionally loaded into the non-volatile memory of the microprocessor system. This memory, in a conventional manner for purposes of testing and debugging the software, is readable, in addition to the microprocessor, by external means. The software can by such means of reading be easily copied and reproduced, including by an unauthorized person. This unauthorized person, if he has a copy of the original microprocessor system, can easily reconstruct the microprocessor system, reproducing said software on a standard hardware part of the microprocessor system. The object of the present invention is to separate, in the different phases of the product's life, the software into a visible software part and at least a hidden software part, in order to limit the copy access of the complete software and thus to limit the reproduction and unauthorized use of the product. The invention relates to a microprocessor system of the type comprising at least one microprocessor, at least one software and at least one non-volatile memory for storing said software, even when the system is powered off, a part of said memory being a hidden memory part from outside the system in that it is readable only by said microprocessor, the software comprising a hidden software portion stored in said hidden memory portion. According to another characteristic of the invention, the hidden software part comprises an antitheft control means, and the software verifies during its execution the presence of said antitheft control means, in order to continue said execution.

Selon une autre caractéristique de l'invention, le moyen de contrôle antivol comprend des fonctions essentielles du logiciel, la vérification de leur présence s'effectuant par leur utilisation par le logiciel. Selon une autre caractéristique de l'invention, lesdites fonctions essentielles sont choisies parmi des fonctions très peu évolutives du logiciel. According to another characteristic of the invention, the antitheft control means comprises essential functions of the software, the verification of their presence being effected by their use by the software. According to another characteristic of the invention, said essential functions are chosen from among very little software functions.

D'autres caractéristiques, détails et avantages de l'invention ressortiront plus clairement de la description détaillée donnée ci-après à titre indicatif en relation avec des dessins sur lesquels : la figure 1, présente une cartographie mémoire selon l'art antérieur, - la figure 2, présente une cartographie mémoire comparable selon l'invention, Un système microprocesseur classique comprend au moins un microprocesseur, au moins un logiciel et au moins une mémoire rémanente apte à stocker ledit logiciel. Un microprocesseur s'entend ici de toute unité de traitement logique, tel un processeur, un microprocesseur, un microcontrôleur ou tout dispositif équivalent. Ledit microprocesseur est apte à exécuter un logiciel. Ledit logiciel est composé d'une liste d'instructions exécutables. De manière classique, la mémoire rémanente, par exemple de type « Flash ROM » (mémoire morte de masse à semi-conducteurs réinscriptible, « ROM » étant l'acronyme anglais pour « Read Only Memory », c'est à dire mémoire à lecture simple), est lisible par le microprocesseur. Elle est de plus aussi lisible par des moyens externes, notamment pour la mise au point et le Other characteristics, details and advantages of the invention will emerge more clearly from the detailed description given below as an indication in relation to drawings in which: FIG. 1 shows a memory map according to the prior art; FIG. 2 shows a comparable memory map according to the invention. A conventional microprocessor system comprises at least one microprocessor, at least one software and at least one non-volatile memory capable of storing said software. A microprocessor here refers to any logical processing unit, such as a processor, a microprocessor, a microcontroller or any equivalent device. Said microprocessor is able to execute software. The software is composed of a list of executable instructions. In a conventional manner, the non-volatile memory, for example of the "Flash ROM" type (read-only mass memory with rewritable solid-state, "ROM" being the acronym for "Read Only Memory", ie memory to read simple), is readable by the microprocessor. It is also readable by external means, especially for the development and

test du logiciel. Une telle mémoire peut être écrite par le microprocesseur lui-même ou par un « claqueur » ou « brûleur » qui permet d'inscrire un logiciel dans ladite mémoire. Une telle mémoire peut être physiquement incluse dans le composant (circuit intégré) du microprocesseur, selon un mode de réalisation. Elle peut aussi se présenter sous forme d'un composant externe au microprocesseur, mais typiquement disposé sur un même circuit imprimé que ledit microprocesseur. Il est possible de disposer une partie de ladite mémoire rémanente de telle manière qu'elle ne soit lisible que par le microprocesseur et non par les moyens extérieurs classiques de mise au point et test. On dénomme par la suite cette partie de mémoire : partie mémoire cachée. Elle présente la caractéristique de ne pas être lisible de l'extérieur du système, et donc de ne pas être copiable. Elle n'est pas visible de l'extérieur et notamment pas depuis le port de traçage, et n'est pas exécutable pas à pas par un débuggeur externe. Ces caractéristiques, bien que limitatives pour la mise au point et le test d'un logiciel, s'avèrent fort avantageuses en ce qui concerne le but de l'invention : protéger une partie du logiciel en le rendant moins accessible et en le séparant du reste du logiciel. Le but de l'invention est atteint en séparant du reste du logiciel une partie logicielle choisie et en la cachant. Pour cela, cette partie logicielle choisie est, selon l'invention, stockée dans ladite partie mémoire cachée. Elle est dénommée dans la suite : partie logicielle cachée. software test. Such a memory can be written by the microprocessor itself or by a "clapper" or "burner" which makes it possible to register software in said memory. Such memory may be physically included in the microprocessor component (integrated circuit), according to one embodiment. It may also be in the form of a component external to the microprocessor, but typically disposed on the same printed circuit as said microprocessor. It is possible to dispose a part of said non-volatile memory in such a way that it can only be read by the microprocessor and not by the conventional external means of debugging and testing. This part of memory is called later: hidden memory part. It has the characteristic of not being legible from the outside of the system, and therefore not to be copiable. It is not visible from the outside and in particular not from the tracing port, and is not executable step by step by an external debugger. These characteristics, although limiting for the development and testing of a software, prove very advantageous with regard to the object of the invention: to protect a part of the software by making it less accessible and by separating it from the rest of the software. The object of the invention is achieved by separating from the rest of the software a selected software part and hiding it. For this, this selected software part is, according to the invention, stored in said hidden memory part. It is named in the following: hidden software part.

Selon un mode de réalisation, la partie logicielle cachée peut comprendre un moyen de contrôle antivol. Dans ce cas, le logiciel vérifie lors de son exécution la présence dudit moyen de contrôle antivol, afin de poursuivre ladite exécution. Ainsi, si le moyen de contrôle antivol est absent, et/ou ne peut être trouvé par le logiciel, le logiciel arrête son exécution. Le test de présence dudit moyen de contrôle antivol peut être réalisé au début de l'exécution du logiciel et/ou de manière régulière à tout moment durant l'exécution. Le moyen de contrôle antivol peut être réduit à une simple présence de la partie mémoire cachée, détectable par une lecture à une adresse dans la partie mémoire cachée. Une telle lecture si elle réussie atteste ainsi de la présence de la partie de mémoire cachée. According to one embodiment, the hidden software part may comprise an antitheft control means. In this case, the software verifies during its execution the presence of said antitheft control means, in order to continue said execution. Thus, if the antitheft control means is absent, and / or can not be found by the software, the software stops its execution. The presence test of said antitheft control means can be performed at the beginning of the execution of the software and / or regularly at any time during the execution. The anti-theft control means may be reduced to a mere presence of the hidden memory portion, detectable by reading at an address in the hidden memory portion. Such a reading if it succeeds thus testifies to the presence of the hidden memory part.

Le moyen de contrôle antivol peut encore comprendre un simple code inscrit dans la partie mémoire cachée. Ce code peut ensuite être lu par le logiciel et vérifié dans son authenticité par tout mécanisme de certification. Ce code peut encore servir à apparier un système microprocesseur avec par exemple un véhicule, un autre système microprocesseur ou encore un autre moyen de contrôle. Le moyen de contrôle antivol peut encore avantageusement comprendre un logiciel produisant un code ou une autorisation nécessaire à l'exécution du logiciel. The anti-theft control means may further comprise a simple code written in the hidden memory part. This code can then be read by the software and verified in its authenticity by any certification mechanism. This code can still be used to match a microprocessor system with for example a vehicle, another microprocessor system or another control means. The anti-theft control means may further advantageously include software producing code or authorization necessary for the execution of the software.

Selon un mode de réalisation préférentiel, le moyen de contrôle antivol comprend une partie utile du logiciel comprenant des fonctions ou bibliothèques de fonction essentielles de ce dernier. Ainsi, la vérification de présence est effectuée par le logiciel lorsqu'il tente d'utiliser ces fonctions essentielles. According to a preferred embodiment, the antitheft control means comprises a useful part of the software comprising essential functions or function libraries of the latter. Thus, the presence check is performed by the software when it tries to use these essential functions.

De plus, l'absence de l'une de ces fonctions, par exemple causée par l'utilisation, typiquement frauduleuse, d'un système microprocesseur standard ne comprenant pas de partie mémoire cachée ou comportant une telle partie mémoire cachée mais sans la partie logicielle cachée, rend le logiciel incomplet et ainsi inopérable, et contribue à renforcer la protection. In addition, the absence of one of these functions, for example caused by the use, typically fraudulent, of a standard microprocessor system not comprising a hidden memory part or having such a hidden memory part but without the software part hidden, makes the software incomplete and thus inoperable, and helps to strengthen the protection.

L'écriture d'une partie logicielle cachée dans la partie mémoire cachée permet ainsi avantageusement de différentier, en le signant, un système microprocesseur « amélioré » par ladite écriture, d'un système microprocesseur « standard » tel qu'il sort de chaîne de fabrication, et dont la partie mémoire cachée est restée vierge. The writing of a hidden software part in the hidden memory part thus advantageously makes it possible to differentiate, by signing it, a microprocessor system "improved" by said writing, of a "standard" microprocessor system such as it leaves the string of manufacturing, and whose hidden memory remained untouched.

L'écriture d'une partie logicielle cachée dans la partie mémoire cachée nécessite des outils spécifiques et ne peut être réalisée que par le fabricant du circuit intégré comprenant la mémoire. Ceci limite l'accès de ce moyen de protection et réduit ainsi la possibilité de reproduction non autorisée du système microprocesseur. The writing of a hidden software part in the hidden memory part requires specific tools and can only be performed by the manufacturer of the integrated circuit including the memory. This limits the access of this protection means and thus reduces the possibility of unauthorized reproduction of the microprocessor system.

Le contenu de ce qui est destiné à être ainsi caché devient plus difficilement modifiable, en ce qu'il participe à ce qui s'apparente à un cycle de fabrication matériel de type circuit intégré plus qu'à un cycle de fabrication logiciel. Selon un mode de réalisation avantageux, le code caché ou la partie logicielle cachée est défini et intégré au dossier de conception ou de définition du système microprocesseur sous forme par exemple de microcode dans le The content of what is intended to be so hidden becomes more difficult to modify, in that it participates in what appears to be a hardware integrated circuit cycle more than a software manufacturing cycle. According to an advantageous embodiment, the hidden code or the hidden software part is defined and integrated in the design or definition file of the microprocessor system, for example in the form of microcode in the

dossier VHDL (VHDL étant l'abréviation anglaise de « VHSICHDL », c'est à dire « Very High Speed Integrated Circuit Hardware Description Language ». Le VHDL est un langage de description matériel destiné à représenter le comportement ainsi que l'architecture d'un système électronique numérique) afférent au microprocesseur ou à la mémoire. Ainsi, dans les différents dossiers, est opérée une séparation du logiciel : le logiciel caché est défini avec le dossier matériel tandis que le logiciel visible est défini avec le dossier logiciel. Ces deux dossiers suivant des circuits différents, il devient plus difficile, pour une personne non autorisée, d'entrer en possession et de copier la totalité du logiciel. Dans le cas où le moyen de contrôle antivol comprend une partie du logiciel comprenant des fonctions essentielles il est intéressant de bien choisir quelles partie du logiciel sont cachées ou non. II a été vu précédemment que l'écriture d'une partie logicielle cachée dans la partie mémoire cachée nécessite des outils particuliers et ne peut être réalisée que par le fabricant. Une évolution éventuelle du logiciel contenu dans cette partie logicielle cachée devient ainsi presque aussi difficile qu'une évolution du circuit intégré contenant la mémoire et/ou le processeur. Il a été vu aussi que la partie logicielle cachée, puisque stockée dans la partie mémoire cachée est de ce fait non lisible, non éditable et non exécutable pas à pas. Aussi pour ces raisons, la partie logicielle cachée extraite du logiciel et comprenant les fonctions essentielles est choisie pour ne contenir que des fonctions très peu évolutives du logiciel. VHDL folder (VHDL is the English abbreviation of "VHSICHDL", ie "Very High Speed Integrated Hardware Circuit Language Description." VHDL is a hardware description language intended to represent the behavior and architecture of a digital electronic system) relating to the microprocessor or the memory. Thus, in the different files, a separation of the software is performed: the hidden software is defined with the hardware folder while the visible software is defined with the software file. These two files following different circuits, it becomes more difficult for an unauthorized person to enter possession and copy the entire software. In the case where the antitheft control means comprises a part of the software comprising essential functions it is interesting to choose which part of the software is hidden or not. It has been seen previously that the writing of a hidden software part in the hidden memory part requires particular tools and can only be performed by the manufacturer. A possible evolution of the software contained in this hidden software part thus becomes almost as difficult as an evolution of the integrated circuit containing the memory and / or the processor. It was also seen that the hidden software part, since stored in the hidden memory part, is therefore non-readable, non-editable and not executable step by step. Also for these reasons, the hidden software part extracted from the software and including the essential functions is chosen to contain only very little software evolution functions.

De plus, afin de limiter le nombre de configurations différentes de système microprocesseur « amélioré », ces fonctions cachées sont de préférence choisies parmi des fonctions génériques utilisées par de nombreuses applications. Les fonctions amenées à varier d'une utilisation à une autre du système microprocesseur, ou nécessitant une modification, par exemple en phase de réglage/mise au point, sont au contraire, de préférence stockées dans une partie non cachée de la mémoire. Ainsi elles bénéficient de la souplesse évolutive associée au logiciel. Afin d'illustrer plus en détail l'invention, il va maintenant être décrit, un 35 cas particulier d'application de l'invention à un système microprocesseur tel qu'utilisé de manière classique pour des applications automobiles. In addition, in order to limit the number of different configurations of "enhanced" microprocessor system, these hidden functions are preferably selected from generic functions used by many applications. The functions caused to vary from one use to another of the microprocessor system, or requiring a modification, for example in the tuning / focusing phase, are, on the contrary, preferably stored in an undisclosed part of the memory. Thus they benefit from the evolutionary flexibility associated with the software. In order to further illustrate the invention, a particular case of application of the invention to a microprocessor system as conventionally used for automotive applications will now be described.

La figure 1 présente une cartographie 1, selon l'art antérieur, de l'organisation de la mémoire d'un tel système microprocesseur. La cartographie complète 1 se décompose en différentes zones. Ainsi une zone 2 ou CALIB comprend les parties du logiciel relatives à la calibration et à la mise au point. Une zone 3 ou AGGR, pour « aggregate » en anglais, comprends plus particulièrement les objets ou fonctions spécifiques d'un système microprocesseur donné, encore dénommé applicatif. Une zone 4 ou HAL, pour « Hardware Abstraction Layer » en anglais, comprend une couche logicielle d'interfaces assurant une totale indépendance relativement au matériel sous-jacent. Une zone 5 ou BIOS comprend des bibliothèques 6a-6s, génériquement désignées 6, de fonctions utiles à l'applicatif. Enfin une zone 8 ou BOOT contient les fonctions du logiciel lancées en premier lors du démarrage du logiciel et qui permettent son initialisation et sa mise en route. La figure 2 présente une cartographie comparable 11, selon l'invention, de l'organisation de la mémoire d'un tel système microprocesseur. On retrouve dans cette cartographie 11, des zones identiques. Tous les éléments identiques sont repérés par le même signe de référence, augmenté de 10. Ainsi, la cartographie complète 11 se décompose en différentes zones. FIG. 1 presents a cartography 1, according to the prior art, of the organization of the memory of such a microprocessor system. Comprehensive mapping 1 breaks down into different areas. Thus a zone 2 or CALIB includes the parts of the software related to calibration and debugging. An area 3 or AGGR, for "aggregate" in English, more particularly understand the specific objects or functions of a given microprocessor system, also called application. A zone 4 or HAL, for "Hardware Abstraction Layer" in English, includes a software layer of interfaces ensuring complete independence with respect to the underlying hardware. A zone 5 or BIOS includes libraries 6a-6s, generically designated 6, functions useful to the application. Finally an area 8 or BOOT contains the software functions launched first at the start of the software and that allow its initialization and startup. FIG. 2 shows a comparable map 11, according to the invention, of the organization of the memory of such a microprocessor system. This map 11 contains identical zones. All the identical elements are identified by the same reference sign, increased by 10. Thus, the complete map 11 is broken down into different zones.

Une zone 12 ou CALIB comprend les parties du logiciel relatives à la calibration et à la mise au point. Une zone 13 ou AGGR comprends plus particulièrement les objets ou fonctions spécifiques de l'applicatif. Une zone 14 ou HAL comprend une couche logicielle d'interfaces assurant une totale indépendance relativement au matériel sous-jacent. Une zone 15 ou BIOS comprend des bibliothèques, génériquement désignées 16, de fonctions utiles à l'applicatif. Enfin une zone 18 ou BOOT contient les parties du logiciel lancées en premier lors du démarrage du logiciel et qui permettent son initialisation et sa mise en route. Relativement à l'art antérieur, la mémoire comprends en plus une zone 30 cachée 17. Il est par exemple choisi de cacher dans cette zone cachée 17 une partie des bibliothèques 16. Les bibliothèques 16a-16e (INJ, IGN, CRK, CAM, KNK) sont jugées dépendantes de l'applicatif ou encore destinées à évoluer et donc préférentiellement placées dans une zone visible 15 de la cartographie 35 mémoire 11. Au contraire il est estimé que les bibliothèques 16f-16s (DIP, DOP, A zone 12 or CALIB comprises the parts of the software relating to calibration and debugging. An area 13 or AGGR more particularly understand the specific objects or functions of the application. A zone 14 or HAL comprises a software interface layer providing complete independence with respect to the underlying hardware. An area 15 or BIOS includes libraries, generically designated 16, of functions useful to the application. Finally an area 18 or BOOT contains the parts of the software launched first at the start of the software and that allow its initialization and startup. In relation to the prior art, the memory further comprises a hidden zone 17. It is for example chosen to hide in this hidden zone 17 a portion of the libraries 16. The libraries 16a-16e (INJ, IGN, CRK, CAM, KNK) are considered dependent on the application or are intended to evolve and therefore preferentially placed in a visible zone 15 of the memory map 11. On the contrary, it is estimated that the 16f-16s libraries (DIP, DOP,

ADC, DCM, PIM, PWM, ASY, CAN, MCC, SPI, RAM, INT, TIM, SIG) sont suffisamment génériques et peu évolutives pour pouvoir être cachées dans la partie mémoire cachée 17. Ces bibliothèques 16f-16s constituent ici la partie logicielle cachée. Les fonctions qu'elles contiennent sont cependant indispensables à l'applicatif, et leur absence, du fait, par exemple, d'une utilisation d'un microprocesseur « standard » sur lequel serait copié le seul logiciel visible et copiable, rend l'exécution du logiciel impossible. ADC, DCM, PIM, PWM, ASY, CAN, MCC, SPI, RAM, INT, TIM, SIG) are sufficiently generic and not very scalable to be able to be hidden in the hidden memory portion 17. These libraries 16f-16s constitute here the part hidden software. The functions they contain, however, are essential to the application, and their absence, because, for example, a use of a "standard" microprocessor on which would be copied the only software visible and copiable, makes the execution impossible software.

Claims (4)

REVENDICATIONS1. Système microprocesseur du type comprenant au moins un microprocesseur, au moins un logiciel et au moins une mémoire rémanente destinée à stocker ledit logiciel, y compris lorsque le système est hors tension, une partie de ladite mémoire étant une partie mémoire cachée (17) de l'extérieur du système en ce qu'elle n'est lisible que par ledit microprocesseur, caractérisé en ce que le logiciel comprend une partie logicielle cachée (16f-16s) stockée dans ladite partie mémoire cachée (17). REVENDICATIONS1. Microprocessor system of the type comprising at least one microprocessor, at least one software and at least one nonvolatile memory for storing said software, even when the system is de-energized, a part of said memory being a hidden memory portion (17) of the outside the system in that it is readable only by said microprocessor, characterized in that the software comprises a hidden software portion (16f-16s) stored in said hidden memory portion (17). 2. Système selon la revendication 1, où la partie logicielle cachée (16f-16s) comprend un moyen de contrôle antivol, et où le logiciel vérifie lors de son exécution la présence dudit moyen de contrôle antivol, afin de poursuivre ladite exécution. 2. System according to claim 1, wherein the hidden software part (16f-16s) comprises antitheft control means, and wherein the software verifies at its execution the presence of said antitheft control means, in order to continue said execution. 3. Système selon la revendication 2, où le moyen de contrôle antivol comprend des fonctions essentielles du logiciel, la vérification de leur présence s'effectuant par leur utilisation par le logiciel. 3. System according to claim 2, wherein the antitheft control means comprises essential functions of the software, the verification of their presence being effected by their use by the software. 4. Système selon la revendication 3, où lesdites fonctions essentielles sont choisies parmi des fonctions très peu évolutives du logiciel. 4. System according to claim 3, wherein said essential functions are chosen from among very little software functions.
FR1100121A 2011-01-14 2011-01-14 Microprocessor system for use in automobile, has non-volatile memory storing software, and memory portion readable by microprocessor, where software has cache software portions that are stored in cache memory portion Pending FR2957436A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1100121A FR2957436A1 (en) 2011-01-14 2011-01-14 Microprocessor system for use in automobile, has non-volatile memory storing software, and memory portion readable by microprocessor, where software has cache software portions that are stored in cache memory portion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1100121A FR2957436A1 (en) 2011-01-14 2011-01-14 Microprocessor system for use in automobile, has non-volatile memory storing software, and memory portion readable by microprocessor, where software has cache software portions that are stored in cache memory portion

Publications (1)

Publication Number Publication Date
FR2957436A1 true FR2957436A1 (en) 2011-09-16

Family

ID=43810181

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1100121A Pending FR2957436A1 (en) 2011-01-14 2011-01-14 Microprocessor system for use in automobile, has non-volatile memory storing software, and memory portion readable by microprocessor, where software has cache software portions that are stored in cache memory portion

Country Status (1)

Country Link
FR (1) FR2957436A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4817140A (en) * 1986-11-05 1989-03-28 International Business Machines Corp. Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
US6681304B1 (en) * 2000-06-30 2004-01-20 Intel Corporation Method and device for providing hidden storage in non-volatile memory
US20040133734A1 (en) * 2002-11-29 2004-07-08 Jordan Marc Kevin Use of NAND flash for hidden memory blocks to store an operating system program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4817140A (en) * 1986-11-05 1989-03-28 International Business Machines Corp. Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
US6681304B1 (en) * 2000-06-30 2004-01-20 Intel Corporation Method and device for providing hidden storage in non-volatile memory
US20040133734A1 (en) * 2002-11-29 2004-07-08 Jordan Marc Kevin Use of NAND flash for hidden memory blocks to store an operating system program

Similar Documents

Publication Publication Date Title
US20210096879A1 (en) Linking Virtualized Application Namespaces at Runtime
US11137991B2 (en) Installation of software onto a computer
US9697010B2 (en) User selectable operating systems
FR2938358A1 (en) SECURE MEMORY INTERFACE
US10664598B1 (en) Firmware security patch deployment
CA2722074C (en) Computer device for the time-based management of digital documents
FR2980905A1 (en) METHOD FOR ERASING MEMORIZED INFORMATION IN NON-VOLATILE REINSTRIPTIBLE MEMORY, MEMORY STORAGE MEDIUM AND AUTOMOTIVE VEHICLE CALCULATOR
EP4068128A1 (en) Secure starting of a processing unit
US20150039872A1 (en) Multiple Signed Filesystem Application Packages
FR2857471A1 (en) Embedded system e.g. mobile telephone, managing method, involves creating and executing autonomous software component on system, where PLUG switching function controls redirection of processor towards non implemented function address
EP1607878A1 (en) Method and computer program for managing a virtual address used to program a DMA controller and associated system on a chip.
FR3017226A1 (en) METHOD FOR SECURING A PROGRAM CODE, SYSTEM AND CORRESPONDING PROCESSOR
FR2957436A1 (en) Microprocessor system for use in automobile, has non-volatile memory storing software, and memory portion readable by microprocessor, where software has cache software portions that are stored in cache memory portion
WO2012107189A2 (en) Computer reprogramming method, data storage medium and motor vehicle computer
FR2618926A1 (en) MEMORY DEVICE FOR CONTROLLING THE USE OF SOFTWARE, OF THE KEY TYPE
EP3674941A1 (en) Method for manufacturing a specific secure and modular business material application and associated operating system
EP0838053A1 (en) Method and device enabling a fixed programme to be developed
FR3025036B1 (en) PROCESS FOR AUTOMATICALLY PROCESSING A SOURCE CODE FOR ITS AERONAUTICAL CERTIFICATION; COMPUTER PROGRAM PRODUCT
FR3092676A1 (en) Method for updating an automotive computer so as to add additional functionality
WO2008125479A1 (en) Method of secure execution of an application
Daâssi et al. Comet: a new generation of widget for supporting user interface plasticity
FR2888651A1 (en) METHOD FOR AUTOMATICALLY TAKING INTO ACCOUNT AND PERSISTENT STORAGE OF VOLATILE PRIORI PERSONALIZATION PARAMETERS
FR2963128A1 (en) METHOD FOR DETECTING FAULT INJECTION ATTACK IN MEMORY DEVICE, AND CORRESPONDING DETECTION SYSTEM
CA2938678A1 (en) Electronic equipment including a partitioned start-up program, associated rail vehicle and rail system
FR2914448A1 (en) Secured execution computer environment protecting system for very high security digital apparatus i.e. payment terminal, has transcoder detecting whether descriptor returned by memory associates virtual address at physical address of ROM