Brevet FR2954539A1 — publié le 20110624

Procédé et dispositif de détection de transferts erronés pour microcontrôleur ou microprocesseur en vue de garantir le partitionnement. La présente invention concerne le domaine général des calculateurs embarqués comprenant des processeurs ou des microcontrôleurs équipés d'unités de mémoire à accès direct. L'invention constitue une solution au problème lié aux risques de transactions erronées ou intempestives par l'intermédiaire de ces unités de mémoire à accès direct ou par l'intermédiaire de périphériques maîtres externes connectés au processeur. Elle permet également de compenser un dysfonctionnement de l'unité de surveillance des accès processeurs ou bien de pallier à son absence. Une difficulté courante, notamment dans le domaine aéronautique, lorsque l'on met au point un calculateur embarqué, réside dans la question de la certification. Classiquement, un calculateur comprend au moins un processeur, correspondant à une unité de calcul, et des périphériques, tels que des cartes électroniques assurant une pluralité de fonctions. Dans ce cas, le processus de certification du processeur d'une part, et des périphériques d'autre part, est bien maîtrisé de l'homme du métier. En général, les processeurs, simples unités de calcul, sont des COTS (Component Off The Shelf selon l'acronyme anglais), c'est-à-dire qu'ils sont choisis sur catalogue, et associés à des périphériques de gestion. Ces périphériques, développés pour assurer des fonctions spécifiques, sont certifiés séparément par le fabriquant du calculateur ou en vue d'être intégré à un calculateur particulier. Cependant, aujourd'hui, les calculateurs embarqués comportent de plus en plus de microcontrôleurs comprenant à la fois ù dans la même puce physique ù un ou plusieurs processeurs et ses périphériques tels que les interfaces avec la mémoire vive, externe au microcontrôleur, ou les interfaces d'entrées-sorties PCI par exemple. Cela rend plus délicate la certification car les microcontrôleurs présentent une observabilité limitée des transactions qui s'y déroulent. La problématique générale qui en découle a donc trait au partitionnement des tâches au sein d'un microcontrôleur. Un partitionnement satisfaisant doit être garanti afin d'assurer la sécurité des transactions dans le microcontrôleur. Dans le domaine de l'aéronautique, les développements actuels sont réalisés dans l'optique d'augmenter la part d'avionique modulaire intégrée, connu sous l'acronyme anglais d'IMA pour Integrated Modular Avionics. Le principe général de cette logique d'avionique modulaire intégrée consiste à créer, pour les périphériques des microcontrôleurs, l'illusion de ressources multiples en termes d'unités de calcul, c'est-à-dire de processeurs, et de mémoire. D'où le principe de cloisonnement, ou de partitionnement, qui consiste à faire en sorte qu'un problème sur une ressource ne doit pas impacter les autres ressources. Des normes internationales, en particulier la norme DO-178B pour le logiciel et DO-254 pour le matériel, viennent régir le niveau de sécurité à atteindre, notamment pour les calculateurs embarqués à bord d'aéronefs. S'agissant de plateformes de type IMA, la notion de partitionnement est la clef de voûte de l'architecture. Pour des plateformes ayant vocation à héberger des fonctions à haute criticité û correspondant par exemple au niveau de DAL, pour ou Design Assurance Level selon l'acronyme anglais, « A » selon la norme DO178 ou DO254 û, le fabriquant du calculateur doit être capable de démontrer la robustesse de ce partitionnement. Dans ce contexte, un mécanisme de vérification des accès mémoires effectués par le contrôleur intégré aux processeurs destinés à faire partie de calculateurs embarqués est connu de l'état de la technique. Ce type de mécanismes porte l'acronyme de MMU pour Memory Management Unit en anglais, signifiant littéralement unité de gestion de mémoire. Son rôle, comme son nom l'indique, est de contrôler les accès mémoire. Les processeurs anciens ne comprenaient pas ce type de mécanismes qui pouvait être un élément séparé. Aujourd'hui, la plupart des processeurs comprennent des MMU ; ceux-ci permettent de contrôler les accès mémoire pour toutes les transactions passant par le processeur et donc de garantir en grande partie à cette notion de partitionnement. Le problème des microcontrôleurs actuels est que ce mécanisme de vérification MMU est court-circuité lorsque des transactions passent par un périphérique maître externe ou par une unité de mémoire à accès direct, connue de l'homme du métier sous l'acronyme anglais de DMA pour Direct Access Memory. Les DMA sont placés après les MMU des processeurs. Ainsi, en cas de dysfonctionnement, il peut y avoir rupture du cloisonnement / partitionnement des ressources du microcontrôleur, ce qui, comme on l'a vu, peut s'avérer critique. Le problème réside également dans la garantie de partitionnement sur des processeurs ne comportant pas de MMU. Aujourd'hui, il semble impossible à l'homme du métier de parvenir à une certification d'un calculateur embarqué dans lequel des fonctions d'un microcontrôleur exploitent des unités de mémoire à accès direct (DMA), et/ou dans lequel ~o des périphériques maîtres externes effectuent des transferts concurrents à l'exécution de code par le microcontrôleur et/ou dans lequel le processeur ne possède pas de MMU. Selon l'état de la technique ancien, ce problème pouvait être résolu pour ces calculateurs comprenant d'une part un ou plusieurs processeur(s) sous forme de composant séparé, et d'autre part des 15 périphériques spécialement adaptés. En effet, il était possible de développer un périphérique de type contrôleur, comprenant des périphériques, des moyens de communication, des accès mémoires ...etc. et un composant spécialement développé pour contrôler les accès mémoire et les accès aux interfaces d'entrées-sorties. De cette manière, les bus de données entre le 20 processeur et le contrôleur étaient observables, et ledit contrôleur spécialement développé pouvait obtenir la certification idoine. Au contraire, aujourd'hui, les calculateurs embarqués comprennent comme élément de base, non plus un processeur, mais un microcontrôleur, comprenant à la fois le processeur, éventuellement 25 multicoeur, et un certain nombre de périphériques, avec les contrôleurs d'accès mémoire et les contrôleurs d'accès aux entrées-sorties de type PCI ou PCI Express par exemple au sein du même composant physique. Les bus de données intégrés dans la conception des microcontrôleurs ne sont pas aisément observables. 30 Dans ce cas, où l'on utilise des microcontrôleurs en vue de les intégrer à des calculateurs embarqués, la solution connue de l'homme du métier pour contourner ce problème consiste à n'effectuer aucune transaction passant par un DMA ou par un périphérique maître externe ; de ce fait, toutes les transactions sont soumises à un passage par le processeur 35 et à un contrôleur par le mécanisme de vérification des accès mémoire de type MMU. L'inconvénient de cette solution est évidemment de contraindre à ne pas utiliser les DMA, qui présentent pourtant, notamment, l'avantage important de permettre la réalisation d'échanges de données très rapidement. Le problème technique posé est donc celui de la possibilité de garantir la détectabilité d'accès erronés, réalisés via des unités de mémoire à accès direct ou via des périphériques maîtres externes, à des fins de garantir le cloisonnement des fonctions au sein d'un microcontrôleur. Dans ce but de résoudre ce problème, l'invention propose la programmation de compteurs internes au microcontrôleur ou, éventuellement, externes, de manière à vérifier que les transactions passant par les unités de mémoire à accès direct ou par les périphériques maîtres externes sont licites. L'invention a pour objet un procédé de détection de transactions intempestives ou erronées par l'intermédiaire d'une unité de mémoire à accès direct ou d'un périphérique maître externe, pour une mise en oeuvre sur un microcontrôleur, ledit microcontrôleur présentant une unité de mémoire à accès direct et au moins une interface reliée à ladite mémoire à accès direct et ledit microcontrôleur étant susceptible de mettre en oeuvre des transactions par l'intermédiaire de l'unité de mémoire à accès direct ou du périphérique maître externe connecté au microprocesseur ou microcontrôleur, en provenance et à destination d'une zone cible d'une interface cible du microcontrôleur, ladite interface cible pouvant être une zone privée d'un applicatif sur une mémoire externe au microcontrôleur, ledit microcontrôleur comprenant par ailleurs au moins une interface non cible, à destination de laquelle aucune transaction ne doit être effectuée, ledit procédé comprenant une étape de vérification du nombre de transactions sur ladite interface non cible, ledit nombre de transactions sur ladite interface non cible devant être nul. Dans un mode de réalisation préféré, le procédé selon l'invention comprend les étapes suivantes : • la programmation d'un ensemble de compteurs internes ou externes au microcontrôleur, lesdits compteurs étant configurés 35 pour: o compter le nombre de transactions dans la zone cible de l'interface cible du microcontrôleur ; o compter le nombre de transactions total sur ladite interface cible ; o vérifier que le nombre de transactions en dehors de la zone cible de l'interface cible du microcontrôleur est nul. • la vérification de l'égalité entre le nombre de transactions dans la zone cible de l'interface cible et le nombre de transactions total sur l'interface cible du microcontrôleur. La zone cible peut correspondre à une plage d'adresses de l'interface cible. Avantageusement, le procédé selon l'invention peut être mis en oeuvre au moyen des étapes suivantes : • la programmation d'un ou plusieurs compteur(s) de performance, pouvant être associé(s) à un contrôleur de mémoire interne au microcontrôleur, pour compter le nombre de transactions total vers toutes les interfaces, y compris l'interface cible ; • la programmation d'un pseudo-analyseur logique pour compter le nombre total de transaction dans la zone privée de l'applicatif encours; • la comparaison du nombre total calculé par le pseudoanalyseur logique avec le nombre total calculé par le compteur de performance de l'interface cible, pour vérifier leur égalité ; • la programmation d'un ensemble de compteurs de performances pour vérifier que le nombre de transactions sur les interfaces, non cibles, est nul. Selon un mode de réalisation, le microcontrôleur comprenant au moins une interface critique dans laquelle toute transaction en écriture est interdite, l'étape visant à vérifier que le nombre de transactions en dehors de la zone cible de l'interface cible du microcontrôleur est nul consiste à vérifier que le nombre de transactions en écriture sur l'interface critique est nul.35 L'invention consiste également en un dispositif de détection de transactions intempestives ou erronées par l'intermédiaire d'une unité de mémoire à accès direct ou d'un périphérique maître externe pour une utilisation dans un microcontrôleur, ledit microcontrôleur comprenant au moins un microprocesseur, une unité de mémoire à accès direct, et une ou plusieurs interfaces correspondant à une ou plusieurs unité(s) de mémoire externe et / ou à une ou plusieurs interface(s) d'entrées-sorties, ledit microcontrôleur étant par ailleurs susceptible de mettre en oeuvre des transactions par l'intermédiaire de l'unité de mémoire à accès direct, à destination d'une zone cible d'une interface cible du microcontrôleur, comportant par ailleurs une pluralité de compteurs internes et / ou externes au microcontrôleur, programmés pour superviser les transactions entre l'unité de mémoire à accès direct et ladite interface cible. Avantageusement, le dispositif selon l'invention peut assurer la 15 fonction d'unité de gestion de mémoire du processeur intégré au microcontrôleur. Avantageusement, le dispositif selon l'invention comprend au moins trois compteurs, configurés respectivement pour : • compter le nombre de transactions dans la zone cible de 20 l'interface cible du microcontrôleur ; • compter le nombre de transactions total sur ladite interface cible ; • vérifier que le nombre de transactions en dehors de la zone cible de l'interface cible du microcontrôleur est nul. 25 Selon un mode de réalisation du dispositif selon l'invention, le microcontrôleur comprenant au moins un microprocesseur comportant un bus de données et de monitoring par l'intermédiaire duquel transite l'ensemble des transactions au sein du microcontrôleur, une partie au moins des compteurs est connectée audit bus de données et de monitoring. 30 Selon un mode de réalisation du dispositif selon l'invention, le microcontrôleur comprenant une horloge, une partie au moins des compteurs est cadencée par ladite horloge du microcontrôleur. Selon un autre mode de réalisation du dispositif selon l'invention, dans lequel le microcontrôleur comprend une horloge, une partie au moins des compteurs sont des compteurs de performance comptabilisant le nombre de transactions aboutissant à un succès. Selon un mode de réalisation, dans lequel le microcontrôleur comprend des interfaces désactivées, le dispositif selon l'invention comprend un compteur configuré pour vérifier que le nombre de transactions sur lesdites interfaces désactivées est nul. Le dispositif selon l'invention peut comprendre une pluralité d'interfaces. Lesdites interfaces peuvent être des sous ensembles d'une même 10 interface physique, telle que différentes zones mémoires au sein d'une même unité de mémoire vive. La présente invention comprend également un microcontrôleur pour calculateur embarqué, comportant le dispositif de détection de transactions erronées ou intempestives décrit précédemment. 15 Avantageusement, le microcontrôleur selon l'invention comprend un ou plusieurs processeurs monocceur(s) ou multicceur(s). Enfin, un calculateur embarqué selon l'invention comprend un microcontrôleur tel que décrit ci-dessus. 20 D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit faite en regard des dessins annexés qui représentent : • la figure 1 : le schéma d'un module de calcul selon l'état de la technique ancien ; 25 • la figure 2 : le schéma d'un microcontrôleur récent, appelé à suppléer les microprocesseurs de l'état de la technique ancien ; • la figure 3 : le schéma d'un module de calcul mettant en oeuvre l'invention ; • la figure 4a : le schéma d'un premier exemple d'application de 30 l'invention ; • la figure 413 : le schéma d'un second exemple d'application de l'invention. La figure 1 présente un schéma de module de calcul Cl connu. 35 Ce module de calcul Cl comprend un processeur Pl1, conforme à l'état de la technique ancien, et disposant des moyens pour assurer la fonction de processeur P1 proprement dite, et un bus de communication LC. Via un bus externe LE, le processeur Pl1 est relié au bus de communication LC d'un bridge B spécifiquement conçu pour coopérer avec le processeur Pl 1 et être mis en oeuvre dans le module de calcul Cl. Ceci correspond à la pratique courante, selon l'état de la technique ancien, développée par les fabricants de calculateurs embarqués. Le bridge B comprend des bus internes LI et l'ensemble des éléments nécessaires à la gestion des entrées / sorties vis-à-vis d'un microprocesseur Pl1 et des interfaces, INT1, INT2, INT3 correspondant à différents périphériques, tels que des ports PCI, mémoire externe MEM...etc. Ces éléments nécessaires consistent généralement en un superviseur d'accès S, relié à la mémoire externe MEM par l'intermédiaire d'un bus externe LE. Le superviseur d'accès S communique avec une table de configuration des droits d'accès T, pour vérifier qu'un programme souhaitant effectuer une transaction au départ et à destination d'une zone privée Z1, Z2, Z3 d'un applicatif y est bien autorisé. Après leur contrôle par le superviseur d'accès S, des requêtes provenant de la mémoire externe MEM sont analysées par un contrôleur de mémoire CT, chargé de traduire ces requêtes et de les « orienter » vers la bonne interface INT1, INT2, INT3, MEM et de gérer une pile de requêtes. Enfin, un arbitre A a pour fonction d'arbitrer parmi la pile de requêtes gérées par le contrôleur de mémoire CT, celles qui consistent en des instructions d'écriture et celles qui consistent en des requêtes en lecture. L'arbitre A répartit ensuite les requêtes vers les bonnes interfaces INT1, INT2, INT3, MEM, éventuellement via une unité de mémoire à accès directe DMA, telle que décrite en préambule, ou via le processeur P1 Comme expliqué précédemment, le bridge B est développé spécifiquement pour un module de calcul Cl particulier. Les entrées / sorties de ce bridge B sont observables. Par ailleurs, le bridge B comprend des éléments, contrôleur de mémoire CT, arbitre A, qui permettent un contrôle des requêtes et des transactions effectuées entre la mémoire externe MEM et les différentes interfaces INT1, INT2, INT3, y compris lorsqu'une transaction est effectuée par l'intermédiaire de l'unité de mémoire à accès directe DMA. Or, comme le montre la figure 2 à travers un schéma représentatif de l'état de la technique actuel, les processeurs P22 les plus récents intègrent de plus en plus de fonctions, en termes de gestion des interfaces INT1, INT2, INT3, de contrôle de mémoire CT, d'arbitrage A, ou de gestion d'une unité de mémoire à accès direct DMA, ce qui en fait de véritables microcontrôleurs. Les modules de calcul C2 actuels basés sur ces processeurs P22 ne permettent plus d'employer des solutions spécifiques comme le bridge B 10 de la figure 1. L'inconvénient majeur a été évoqué plus haut : en cas de dysfonctionnement de l'unité de mémoire à accès direct DMA, il peut y avoir rupture du cloisonnement / partitionnement des ressources du microcontrôleur P22, et par conséquent, par exemple, une écriture 15 intempestive sur une interface INT1, INT2, INT3 ou une zone privée Z1, Z2, Z3 d'un applicatif. Afin de contrôler si une transaction intempestive s'est produite par l'intermédiaire de l'unité de mémoire à accès direct DMA, l'invention a pour 20 objet un dispositif représenté schématiquement à la figure 3. Le module de calcul C3 comprend un microcontrôleur P33 configuré conformément à l'invention. Le principe de l'invention consiste à programmer des compteurs PMI, PM2, PM3, ou des compteurs « intelligents », c'est-à-dire des pseudo- 25 analyseurs logiques TB, connu de l'homme du métier sous l'appellation anglaise de tracebuffer TB. La présence de ces compteurs PMI, PM2, PM3 et de ces tracebuffers TB doit permettre aux utilisateurs de mesurer plus précisément la performance des programmes exécutés sur le module de calcul C3. Les compteurs PMI ...etc. et pseudo-analyseurs logiques TB 30 peuvent aussi bien être internes qu'externes au microcontrôleur P33. Les compteurs PMI ...etc. représentés sur la figure 3 peuvent être cadencés par une horloge interne au microcontrôleur ; ils peuvent également constituer des compteurs de performance, connus sous l'appellation anglaise de perfomance monitor, aptes à compter le nombre de transactions aboutissant 35 à un succès. La surveillance menée par ces compteurs PMI ...etc. ou ces tracebuffers TB est destinée à couvrir les différents échanges de données, de façon à s'assurer que chaque transfert de données mettant en oeuvre l'unité de mémoire à accès direct DMA s'effectue bien dans la zone cible prévue de l'interface INT1, INT2, INT3 cible ou de la mémoire externe MEM. Par zone cible, on entend la zone à laquelle il est prévu d'accéder ; cette zone cible peut se trouver sur une interface INT1, INT2, INT3, correspondant par exemple à une carte PCI, ou être une plage d'adresses située dans une zone privée Z1, Z2, Z3 de la mémoire externe MEM associée à un applicatif. Dans la suite de la description, le terme `compteur' peut aussi bien faire référence à un simple compteur qu'à un compteur de performance. Le fonctionnement du procédé selon l'invention présente deux cas de figure. Lorsque l'unité de mémoire à accès direct DMA est inactive, l'objectif de la surveillance de l'unité de mémoire à accès direct DMA est de vérifier que celle-ci ne s'active pas de manière intempestive, c'est-à-dire non voulue. L'invention prévoie alors la programmation d'un compteur PMI associé à l'unité de mémoire à accès direct DMA pour vérifier que l'unité de mémoire à accès direct n'est pas déclenchée de façon intempestive : ce compteur PMI doit donc renvoyer normalement une valeur nulle. Alternativement, on peut programmer des compteurs PM2 associés aux différentes interfaces INT1, INT2, INT3. Ces compteurs doivent renvoyer une valeur nulle si aucune transaction n'est prévue sur ces interfaces. Lorsque l'unité de mémoire à accès direct DMA est active, l'objectif de la surveillance est de s'assurer que l'unité de mémoire à accès direct DMA n'effectue des transactions que dans les zones cibles prévues, et avec le nombre de transactions attendu. Le procédé selon l'invention comprend dans ce cas plusieurs fonctions : • la programmation d'un ensemble de compteurs internes ou externes PMI, PM2, PM3 au microcontrôleur P33, lesdits compteurs PMI, PM2, PM3 étant configurés pour : o compter le nombre de transactions dans la zone cible de l'interface cible INT1, INT2, INT3, MEM du microcontrôleur P33 ; o compter le nombre de transactions total sur ladite interface cible INT1, INT2, INT3, MEM ; 35 o vérifier que le nombre de transactions en dehors de la zone cible de l'interface cible INT1, INT2, INT3, MEM du microcontrôleur P33 est nul. • la vérification de l'égalité entre le nombre de transactions dans la zone cible de l'interface cible INT1, INT2, INT3, MEM et le nombre de transactions total sur l'interface cible INT1, INT2, INT3, MEM du microcontrôleur P33. Ce procédé peut être mis en oeuvre de la façon suivante : 10 • la programmation d'un ou plusieurs compteur(s) de performance PM3, pouvant être associé(s) à un contrôleur de mémoire CT, pour compter les transactions vers toutes les interfaces INT1, INT2, INT3, MEM y compris celle destinataire de la transaction, par exemple INT1 ; 15 • la programmation d'un pseudo-analyseur logique TB (tracebuffer) pour compter tous les transferts dans la zone privée Z1, Z2, ou Z3 de l'applicatif en cours ; cette zone privée Z1, Z2, ou Z3 est une zone mémoire pouvant être localisée soit en mémoire externe MEM, soit dans une zone 20 mappée d'entrées / sorties quelconque ; • la comparaison du comptage réalisé par le pseudoanalyseur logique TB avec le comptage réalisé par le compteur de performance PM2 de l'interface destinataire, par exemple INT1, pour vérifier l'égalité ; 25 • la vérification que les autres compteurs PM2 sur les interfaces non-destinataires, par exemple INT2, INT3, ont une valeur nulle, ou leur valeur avant le transfert s'ils ne sont pas remis à zéro. 30 Ce procédé peut être également mis en oeuvre de la façon suivante : • la programmation d'un pseudo-analyseur logique TB (tracebuffer) pour compter tous les transferts dans les zones externe à la zone cible ; on garantit alors le 35 partitionnement du système utilisant la zone cible. Par ailleurs, les microcontrôleurs actuels comprennent aussi généralement un compteur de performance PM4 au niveau du processeur PI, mais celui-ci n'est pas utilisé pour mettre en oeuvre le procédé selon l'invention. II est à noter qu'en plus du procédé, l'invention a également pour objet un dispositif comprenant les compteurs, et / ou compteurs de performances PM1, PM2, PM3, et pseudo-analyseur logique TB aptes à 1 o permettre la mise en oeuvre du procédé précédemment décrit, par l'intermédiaire d'une programmation approprié. La présente invention couvre également un microcontrôleur comprenant un tel dispositif, ainsi qu'un module de calcul ou calculateur équipé d'un tel microcontrôleur. 15 La présente invention concerne également les processeurs comprenant un tel dispositif mais ne possédant pas de MMU. Une mise en oeuvre de l'invention peut être prévue sur un microcontrôleur comprenant un bus de données et de monitoring par 20 l'intermédiaire duquel transite l'ensemble des transactions au sein du microcontrôleur ; dans ce cas, il peut être configuré de telle sorte qu'une partie au moins des compteurs PMI, PM2, PM3 est connectée audit bus de données et de monitoring. 25 Les figures 4a et 4b représentent des exemples de dysfonctionnements de l'unité de mémoire à accès direct DMA que le procédé selon l'invention permet de détecter. Dans le cas de la figure 4a, une requête 10 en vue d'une transaction de données est émise depuis la zone privée ZI d'un applicatif 30 dans la mémoire externe MEM. Cette requête traitée via l'unité de mémoire à accès directe DMA doit revenir 20 vers ladite zone privée Z1. Cependant, un dysfonctionnement de l'unité de mémoire à accès directe DMA entraîne une duplication du transfert, et en plus d'un accès à la zone privée Z1, il se produit un accès à l'interface INT3. Cette duplication intempestive est détectée, et par conséquent le traitement peut être arrêté, car un accès non prévu à l'interface INT3 est détecté par un compteur de performance PM2. Dans le cas de la figure 4b, un dysfonctionnement de l'unité de mémoire à accès directe DMA entraîne, en lieu et place d'un accès à la zone privée Z1, un accès à la zone privée Z3 d'un autre applicatif dans la mémoire externe MEM. Cette redirection intempestive est détectée, et par conséquent le traitement peut être arrêté, car il n'y a pas égalité entre le nombre de transactions totale et le nombre de transactions dans la zone cible Z1. En effet, par exemple, le pseudo-analyseur logique TB est configuré pour compter les transactions dans la zone privée Z1 de l'applicatif en cours. II renvoie une valeur incohérente vis-à-vis de celle mesurée par le compteur de performance PM3, qui a compté le nombre de transactions total. L'invention ne se limite pas à la protection d'une unité de mémoire à accès direct, mais peut être appliquée à toute autre entité d'un microcontrôleur, y compris le coeur processeur. En effet l'invention permet de couvrir un élément extérieur au microcontrôleur qui partage la mémoire principale (MEM) du microcontrôleur. Dans un mode de réalisation optionnel, la mise en oeuvre de l'invention assure, pour le processeur intégré (P1), une fonction de surveillance d'une unité de gestion de mémoire MMU, voire assure la fonction même d'unité de gestion de mémoire, de manière équivalente à une unité de type MMU si cette dernière n'est pas présente. L'invention a pour principal avantage de proposer un procédé et un dispositif associé permettant de détecter des accès erronés ou intempestifs réalisés via une unité de mémoire à accès direct DMA ou via des périphériques maîtres externes. REVENDICATIONS1. Procédé de détection de transactions intempestives ou erronées par l'intermédiaire d'une unité de mémoire à accès direct (DMA) ou d'un périphérique maître externe, pour une mise en oeuvre sur un microcontrôleur (P33), ledit microcontrôleur (P33) présentant une unité de mémoire à accès direct (DMA) et au moins une interface (INT1, INT2, INT3, MEM) reliée à ladite mémoire à accès direct (DMA) et ledit microcontrôleur (P33) étant susceptible de mettre en oeuvre des transactions par l'intermédiaire de l'unité de mémoire à accès direct (DMA) ou du périphérique maître externe connecté au microprocesseur ou microcontrôleur, en provenance et à destination d'une zone cible d'une interface cible (INT1, INT2, INT3, MEM) du microcontrôleur (P33), ladite interface cible (INT1, INT2, INT3, MEM) pouvant être une zone privée (Z1, Z2, Z3) d'un applicatif sur une mémoire externe (MEM) au microcontrôleur (P33), ledit microcontrôleur comprenant par ailleurs au moins une interface non cible (INT1, INT2, INT3, MEM), à destination de laquelle aucune transaction ne doit être effectuée, caractérisé en ce qu'il comprend une étape de vérification du nombre de transactions sur ladite interface non cible (INT1, INT2, INT3, MEM), ledit nombre de transactions sur ladite interface non cible (INT1, INT2, INT3, MEM) devant être nul. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comprend les étapes suivantes : • la programmation d'un ensemble de compteurs internes ou externes (PMI, PM2, PM3, TB) au microcontrôleur (P33), lesdits compteurs (PMI, PM2, PM3, TB) étant configurés pour : o compter le nombre de transactions dans la zone cible de l'interface cible (INT1, INT2, INT3, MEM) du microcontrôleur (P33) ; o compter le nombre de transactions total sur ladite interface cible (INT1, INT2, INT3, MEM) ;o vérifier que le nombre de transactions en dehors de la zone cible de l'interface cible (INT1, INT2, INT3, MEM) du microcontrôleur (P33) est nul. • la vérification de l'égalité entre le nombre de transactions dans la zone cible de l'interface cible (INT1, INT2, INT3, MEM) et le nombre de transactions total sur l'interface cible (INT1, INT2, INT3, MEM) du microcontrôleur (P33). 3. Procédé selon l'une quelconque des revendications 1 à 2, caractérisé 10 en ce que la zone cible correspond à une plage d'adresses de l'interface cible (INT1, INT2, INT3, MEM). 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce qu'il est mis en oeuvre au moyen des étapes suivantes : 15 • la programmation d'un ou plusieurs compteur(s) de performance (PM3), pouvant être associé(s) à un contrôleur de mémoire (CT) interne au microcontrôleur (P33), pour compter le nombre de transactions total vers toutes les interfaces (INT1, INT2, INT3, MEM), y compris l'interface cible ; 20 • la programmation d'un pseudo-analyseur logique (TB) pour compter le nombre total de transaction dans la zone privée (Z1, Z2, Z3) de l'applicatif en cours ; • la comparaison du nombre total calculé par le pseudoanalyseur logique (TB) avec le nombre total calculé par le 25 compteur de performance (PMI, PM2, PM3) de l'interface cible, pour vérifier leur égalité ; • la programmation d'un ensemble de compteurs de performances (PM2) pour vérifier que le nombre de transactions sur les interfaces, non cibles, est nul. 30 5. Procédé selon l'une quelconque des revendications 1 à 4, le microcontrôleur (P33) comprenant au moins une interface critique dans laquelle toute transaction en écriture est interdite, caractérisé en ce que l'étape visant à vérifier que le nombre de transactions en 35 dehors de la zone cible de l'interface cible (INT1, INT2, INT3, MEM)du microcontrôleur (P33) est nul consiste à vérifier que le nombre de transactions en écriture sur l'interface critique est nul. 6. Dispositif de détection de transactions intempestives ou erronées par l'intermédiaire d'une unité de mémoire à accès direct (DMA) ou d'un périphérique maître externe pour une utilisation dans un microcontrôleur (P33), ledit microcontrôleur (P33) comprenant au moins un microprocesseur (Pl), une unité de mémoire à accès direct (DMA), et une ou plusieurs interfaces (INT1, INT2, INT3, MEM) correspondant à une ou plusieurs unité(s) de mémoire externe (MEM) et / ou à une ou plusieurs interface(s) d'entrées-sorties (INT1, INT2, INT3), ledit microcontrôleur (P33) étant par ailleurs susceptible de mettre en oeuvre des transactions par l'intermédiaire de l'unité de mémoire à accès direct (DMA), à destination d'une zone cible d'une interface cible (INT1, INT2, INT3, MEM) du microcontrôleur (P33), caractérisé en ce qu'il comporte une pluralité de compteurs internes et / ou externes (PMI, PM2, PM3, TB) au microcontrôleur (P33), programmés pour superviser les transactions entre l'unité de mémoire à accès direct (DMA) et ladite interface cible (INT1, INT2, INT3, MEM). 7. Dispositif selon la revendication 6, caractérisé en ce qu'il assure la fonction d'unité de gestion de mémoire du processeur intégré au microcontrôleur. 8. Dispositif selon l'une quelconque des revendications 6 à 7, caractérisé en ce qu'il comprend au moins trois compteurs (TB, PM3, PM2), configurés respectivement pour : • compter le nombre de transactions dans la zone cible de l'interface cible (INT1, INT2, INT3, MEM) du microcontrôleur (P33) ; • compter le nombre de transactions total sur ladite interface cible (INT1, INT2, INT3, MEM) ; 30• vérifier que le nombre de transactions en dehors de la zone cible de l'interface cible (INT1, INT2, INT3, MEM) du microcontrôleur (P33) est nul. 9. Dispositif selon l'une quelconque des revendications 6 à 8, le microcontrôleur comprenant au moins un microprocesseur (Pl) comportant un bus de données et de monitoring par l'intermédiaire duquel transite l'ensemble des transactions au sein du microcontrôleur, caractérisé en ce qu'une partie au moins des compteurs (PMI, PM2, PM3) est connectée audit bus de données et de monitoring. 10. Dispositif selon l'une quelconque des revendications 6 à 9, le microcontrôleur (P33) comprenant une horloge, caractérisé en ce qu'une partie au moins des compteurs (PMI, PM2, PM3) est cadencée par ladite horloge du microcontrôleur (P33). 11. Dispositif selon l'une quelconque des revendications 6 à 10, le microcontrôleur (P33) comprenant une horloge, caractérisé en ce qu'une partie au moins des compteurs (PMI, PM2, PM3) sont des compteurs de performance comptabilisant le nombre de transactions aboutissant à un succès. 12. Dispositif selon l'une quelconque des revendications 6 à 11, le microcontrôleur comprenant des interfaces désactivées, caractérisé en ce que le dispositif comprend un compteur (PM2) configuré pour vérifier que le nombre de transactions sur lesdites interfaces désactivées est nul. 13. Dispositif selon l'une quelconque des revendications 6 à 12, comprenant une pluralité d'interfaces (INT1, INT2, INT3). 14. Dispositif selon la revendication 13, caractérisé en ce que lesdites interfaces (INT1, INT2, INT3, MEM) sont des sous ensembles d'unemême interface physique, telle que différentes zones mémoires au sein d'une même unité de mémoire vive. 15. Microcontrôleur pour calculateur embarqué, caractérisé en ce qu'il comporte le dispositif de détection de transactions intempestives ou erronées par l'intermédiaire d'une unité de mémoire à accès direct (DMA) ou d'un périphérique maître externe pour une utilisation dans un microcontrôleur (P33), selon l'une quelconque des revendications 6 à 14. 16. Microcontrôleur selon la revendication 15, caractérisé en ce qu'il comprend un ou plusieurs processeurs (P1) monocceur(s) ou multicceur(s). 17. Calculateur embarqué caractérisé en ce qu'il comprend un microcontrôleur (P33) selon l'une quelconque des revendications 15 à 16.20