Brevet FR2766596A1 — publié le 19990129

UNITÉ DE GESTION MéMOIRE La présente invention concerne une unité de gestion mémoire de microprocesseur, pour convertir une adresse logique en une adresse physique. La présente invention concerne également un microprocesseur comprenant un chemin d' adresses logiques ou physiques pour l'adressage d'un plan mémoire. De façon classique, on désigne par T1 adresse logique" une adresse qui transite dans le compteur ordinal PC ("Program Cbunter") d1un microprocesseur. Par "adresse physique", on désigne l'adresse "vraie" où se trouve, dans la mémoire d'un microprocesseur, la donnée ou le code instruction référencé par l'adresse logique. La manipulation d'adresses logiques au lieu d' adresses physiques simplifie considérablement le travail des prograrrrneurs en faisant apparaître des zones mémoire virtuelles ayant des valeurs d'adresses plus simples à manipuler que les adresses physiques - Notamment, une adresse logique peut être d'une longueur inférieure à une adresse physique (par exemple 8 bits contre 16 bits). Également, une zone mémoire virtuelle est généralement référencée à l'adresse zéro. Classiquement, la transformation d'une adresse logique en une adresse physique est faite par concaténation d'une adresse de poids fort avec 1 'adresse logique, l'adresse logique représentant les bits de poids faible de l'adresse physique. Cette opération est réalisée de façon automatique au moyen d'un circuit logique appelé unité de gestion mémoire MMU ("Memory Management Unit") qui est un élément du microprocesseur. Pour fixer les idées, la figure 1 représente très schématiquement une unité MMU classique disposée sur le chemin d'adresses allant du compteur ordinal PC au plan mémoire MEM d'un microprocesseur, prévue pour transformer une adresse logique LAD en adresse physique PAD. L'unité wU comprend un registre RI contenant une première adresse de poids fort et un registre RD contenant une deuxième adresse de poids fort. L'une de ces deux adresses est sélectionnée par un multiplexeur MUX commandé par un signal de sélection SLCT pour former les bits de poids fort HPADde l'adresse physique PAD. Les bits de poids faible LPAD de 1'adresse physique sont les bits de 1 'adresse logique LAD présentée à l'unité MMU. Lorsque le programne d'une application doit être chargé dans la mémoire du microprocesseur, le système d'exploitation ("Operating System") du microprocesseur charge dans le registre Rl une adresse de poids fort pour le stockage des codes instructions et dans le registre RD une adresse de poids fort pour le stockage des données, ou variables du programme. Une application peut ainsi posséder au moins une zone mémoire pour les données et une zone mémoire pour les codes instructions, chaque zone mérroire étant appelée une ';page mémoire". Cette méthode de transformation des adresses logiques en adresses physiques de l'art antérieur présente divers inconvénients. D'une part, la taille d'une page mémoire imposée par la concaténation d'adresses de poids fort et de poids faible peut être supérieure aux besoins réels d'une application. La réservation de pages mémoire de tailles prédéterminées est donc une méthode peu souple qui convient mal aux microprocesseurs ayant une mémoire de taille réduite, par exemple les microprocesseurs présents dans les cartes à puce ou des étiquettes électroniques. D'autre part, il est nécessaire, pour générer le signal SLCT de commande du multiplexeur MUX, de savoir quelle est la zone mémoire à adresser. Une méthode connue consiste à procéder à un décodage préalable du code instruction associé à 1 'adresse logique LARD, afin de déterminer si cette adresse correspond à un code instruction ou à une donnée. Par exemple, si l'instruction est du type JUMP, LADi (saut du compteur ordinal au code instruction présent à l'adresse LADi), le registre RI doit être sélectionné par le multiplexeur MUX. Par contre, si 1 'instrucbn est du type LCAD,Ri,LADi (charger le contenu d'un registre Ri à l'adresse LADi), c' est le registre RD qui doit être sélectionné. Ainsi, un premier objectif de la présente invention est de prévoir une unité de gestion mémoire qui ne présente pas de tels incoovénients. Par ailleurs, un autre objectif de la présente invention, indépendant du premier. est de prévoir un moyen simple et pratique pour cloisonner le plan mémoire d'un microprocesseur et interdire l'accès à des zones de la mémoire qui ne doivent pas être lues par des personnes non autorisées. Ces objectifs sont atteints grâce à une unité de gestion mémoire, pour convertir une adresse logique en une adresse physique, comprenant des moyens pour additionner une adresse offset à l'adresse logique à convertir. Par "adresse offset", on désigne une valeur de décalage qui, ajoutée à une adresse logique, donne une adresse physique. Ainsi, 1' espace de la mémoire physique réservé au stockage des données et des codes instructions d'une application peut coïncider exactement, en encombrement, avec la taille de la mémoire virtuelle définie par un ensemble d'adresses logiques. Selon un mode de réalisation l'unité de gestion mémoire comprend un circuit additionneur comportant une entrée d'adresse logique et une entrée d'adresse offset, au moins un premier et un second registres contenant des adresses offset, et des moyens de sélection de l'une des adresses offset sur l'entrée d'adresse offset du circuit additionneur. Le premier seuil d'adresse logique peut par exemple représenter la limite entre une zone mémoire virtuelle utilisée pour stockage de codes instructions et une zone mémoire virtuelle utilisée pour le stockage de données. Avantageusement, les registres contenant les adresses offset sont protégés au moins en écriture. Selon un mode de réalisation, les moyens de sélection comprennent des moyens pour comparer l'adresse logique à convertir à un premier seuil d adresse logique, et sont agencés pour sélectionner 1 'une des adresses offset en fonction du résultat de la comparaison. Selon un mode de réalisation, l'unité de gestion mémoire comprend des moyens d'inhibition agencés pour que l'unité de gestion mémoire délivre, sur réception d'un signal d'inhibition, l'adresse logique à convertir, ou agencés pour appliquer une adresse offset de consigne sur l'entrée d'adresse offset du circuit additionneur sur réception d'un signal d' inhibition. La pré sente invention concerne également un microprocesseur comprenant une unité de gestion mémoire selon l'invention. Selon un mode de réalisation, le microprocesseur comprend des moyens pour comparer une adresse logique ou une adresse physique correspondante à un seuil de violation d'adresse, et délivrer un signal de violation d'adresse quand l'adresse logique ou physique est supérieure au seuil de violation. Selon un mode de réalisation, le signal de violation est un signal d'inhibition de l'unité de gestion mémoire. Avantageusement, le microprocesseur comprend un décodeur d'interruption agencé pour délivrer un signal d'interruption çy une adresse de secours sur réception du signal de viola~ön d'adresse logique. Avantageusement, 1 adresse de secours est 1 'adresse d'un programme de traitement des cas de violation d'adresse. La présente invention concerne également un procédé de conversion d'une adresse logique en une adresse physique, comprenant les opérations consistant à définir dans un plan mémoire virtuel au moins deux zones merire adjacentes comprenant une zone basse et une zone haute ; définir dans un plan mémoire physique une première et une deuxième adresses physiques ; sur réception d'une adresse logique à convertir, déterminer la zone du plan mémoire virtuel contenant l'adresse à convertir, et si la zone déterminée est la zone basse, additionner à l'adresse logique la première adresse physique, si la zone déterminée est la zone haute, additionner à l'adresse logique la différence entre la deuxième adresse physique et la taille de la zone basse du plan mémoire virtuel. Ce procédé, qui peut être mis en oeuvre au moyen de l'unité de gestion mémoire selon l'invention, permet avantageusement de définir un espace mémoire virtuel contenant deux zones mémoire adjacentes, par exemple une zone mémoire pour des données et une zone mémoire pour des codes instruction. La pré sente invention concerne également un microprocesseur comprenant un système d'exploitation et une unité de gestion mémoire agencés pour mettre en oeuvre le procédé de l'invention. Ces caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante d'un exemple de réalisation d'une unité de gestion mémoire selon l'invention, du procédé de conversiez d'adresses selon l'invention, ainsi que de certains aspects 2+un microprocesseur selon l'invention, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles - la figure 1 précédement décrite représente schématiquement une unité de gestion mémoire de l'art antérieur, - la figure 2 représente sous forme de blocs une unité de gestion mémoire selon 1' invention et certains aspects d'un microprocesseur selon l'invention comprenant l'unité de gestion mémoire, et - la figure 3 illustre le procédé de l'invention et représente la correspondance entre un plan mémoire virtuel selon l'invention et le plan mémoire physique d'un microprocesseur. Description d'une unité de gestion rném > ire selon l'invention La figure 2 représente une unité de gestion mémoire MMUl selon 1'invention, ainsi que certains éléments d'un microprocesseur MP ayant une relation fonctionnelle directe avec l'unité MMU1. Ces éléments du microprocesseur seront considérés carme optionnels dans un premier temps. Ils sont représentés en traits pointillés et seront décrits plus loin. L ' unité MMUl est disposée sur le chemin d' adresses du microprocesseur MP, entre le compteur ordinal PC et le plan mémoire physique prEM du microprocesseur (représenté en figure 3). L'unité MMU1 reçoit sur son entrée IM1 une adresse logique LADi à convertir, fournie classiquement par le compteur ordinal PC, et délivre sur sa sortie IM2 une adresse physique PADi. L'unité MMUl comprend un circuit additionneur ADD recevant sur sa première entrée Al 1' adresse logique à convertir LADi et sur sa deuxième entrée A2 une adresse offset délivrée par un multiplexeur MUNI. La sortie du circuit additionneur ADD forme la sortie de 1 ' unité MMU1. Le multiplexeur MUX1 reçoit sur une première entrée El une adresse offset OAD1 stockée dans un registre OR1 sur une deuxième entrée E2 une adresse offset QAD2 stockée dans un registre 0R2, et sur une troisième entrée E3 une adresse offset de consigne IOAD3, ici égale à zéro. Le multiplexeur ME1 recopie à sa sortie l'une des adresses offset OAD1 ou QAD2 en fonction de la valeur d ' un signal de sélection SEL. Le signal de sélection SEL est délivré par un comparateur logique CMPl recevant sur une entrée l'adresse logique LADi et sur une autre entrée une valeur de seuil TAD1 stockée dans un registre TR1. Le signal SEL est à 1 ou à O selon que l'adresse logique LADi est supérieure ou inférieure au seuil TAD1. Par ailleurs, le multiplexeur MUX1 recopie sur sa sortie l'adresse offset de consigne IOAD3 sur réception d'un signal d' inhibition INKIB prioritaire sur le signal SEL. Enfin, l'unité r comprend également un comparateur logique CMP2 recevant en entrée l'adresse logique LADi et une valeur TAD2 représentant un seuil de violation d'adresse logique, stockée dans un registre TR2. Le comparateur délivre un signal de violation d' adresse logique VLT lorsque l'adresse logique LADi est supérieure au seuil TAD2. Le fonctionnement de unité MMU1 est particulièrement simple, la conversion réalisée consistant à additionner 1 'adresse logique LADi avec l'adresse offset délivrée par le multiplexeur MUX1. Selon le mode de réalisation décrit, trois cas peuvent se présenter, résumés par le tableau ci-après. Cas Signal SEL Signal INHIB PADi LADi # TAD1 1 0 LADi + CADl LADi 2 TAD1 O O LAD + QAD2 1 LADi + IOAD3 Exemple de mise en oeuvre dynamique de l'unité de gestion zn:ire On va maintenant décrire en relation avec la figure 3 un exemple de mise en oeuvre dynamique de l'unité MMU1, permettant de créer un plan mémoire virtuel continu comprenant deux zones mémoires adjacentes. En pratique, cette mise en oeuvre est effectuée par le programme racine, ou système d'exploitation du microprocesseur, au moment où un espace de travail pour une application doit être créé dans la mémoire physique. Le système d'exploitation est par exemple disposé dans la mémoire RoM du microprocesseur, non accessible en écriture. Comme illustré par la figure 3, le système d'exploitation définit tout d'abord un plan mémoire virtuel LMEM composé de deux zones LMEM1 et LMEM2 adjacentes, d'une taille spécifiée en fonction des besoins de l'application. La zone basse LMEM 1 comprend par exemple les codes instructions du programme de l'application et la zone haute LMEM2 est par exemple réservée au stockage des données de l'application (variables, paramètres, etc.). L'adresse logique la plus basse du plan mémoire virtuel LMEM est choisie égale à O. La taille de la zone basse LMEM1 est désignée LAD1 et la taille totale du plan mémoire virtuel est désignée LAD2. La valeur LAD1 représente également l'adresse la plus basse et la valeur LAD2 l'adresse la plus haute de la zone haute LMEM2. La zone basse LMEM1 du plan mémoire virtuel étant ici réservée aux codes instructions, elle doit correspondre, dans le plan mémoire physique PMEM du microprocesseur, à une zone PMEM1 de la mémoire rémanente (ou permanente) du microprocesseur, par exemple une mémoire EEPROM. Par ailleurs, la zone haute LMEM2 du plan mémoire virtuel étant ici réservée aux données de l'application, elle doit correspondre à une zone PMEM2 de la mémoire volatile du microprocesseur, par exemple une mémoire RAM. Le système d'exploitation définit ainsi dans mémoire rémanente du plan mémoire physique une adresse physique PAD1 qui représente 1 'adresse basse de la zone PMEM1. Également, le système d'exploitation définit dans la mémoire volatile du plan mémoire physique PMEM une adresse physique PAD2 qui représente l'adresse basse de la zone PMEM2. Le système d'exploitation charge ensuite dans la zone PMEM1 de la mémoire physique le prcgramle de l'application et réserve la zone PMEM2 pour le stockage des données de l'application. Enfin, le système d'exploitation charge dans les registres de l'unité de gestion mémoire MMU1 les valeurs suivantes : - dans le registre TR1 du comparateur CMP1 : TAD1 = LAD1, - dans le registre TR2 du comparateur CMP2 : TAD2 = LAD2, - dans le registre offset OR1 : OAD1 = PAD1, - dans le registre offset OR2 : OAD2 = PAD2 - LAD1. On peut noter ici que, lorsque le système d'exploitation à la main sur le microprocesseur, l'unité MMU1 peut être maintenue dans l'étant inhibé grâce au signal INHIB. Si l'adresse offset de consigne IOAD3 envoyée sur l'entrée A2 de l'additionneur ADD est 1'adresse zéro, la sortie de l'unité nT1 recopie 1' adresse LADi fournie en entrée. Le système d'exploitation travaille alors sur des adresses physiques. Par ailleurs, si le microprocesseur comporte de façon classique un mode de fonctionnement "superviseur" et un mode de fonctionnement "protégé", le signal classique SUP du mode superviseur peut être utilisé comme signal d'inhibition. Une fois l'unité MMU1 programmée, le système d'exploitation cède la main au programme de l'application. Par exemple, le microprocesseur passe du mode superviseur au mode protégé, le signal SUP étant mis à O. La première adresse logique LADi du programme de l'application, ici l'adresse zéro, est placée dans le compteur ordinal PC et le signal INHIB mis à 0. Pendant l'exécution du prograrrrre de l'application, l'unité wJ1 transforme les adresses logiques en adresse physique de la façon suivante - si 1' adresse logique LADi est inférieure à LADi, le signal SEL est à O et 1' adresse physique PADi est égale à PADi = LADi + PAD1 - si l'adresse logique LADi est supérieure ou égale à LAD1, le signal SEL est à 1 et l'adresse physique PADi est égale à PADi = LADi + (PAD2 - LAD1) On voit donc que l'unité MMU1 selon l'invention convertit toutes les adresses de la zone mémoire virtuelle LMEM1 en adresses de la zone mémoire physique PMEM1 et toutes les adresses de la zone virtuelle LMEM2 en adresses de la zone physique PMEM2. Des objectifs de l'invention sont donc atteints, à savoir le fait que - 1' espace mémoire total PMEM1 + PMEM2 occupé dans la mémoire physique PMEM correspond exactement à 1 espace mémoire LMEM nécessaire à l'application. I1 n'y a pas de place perdue. - l'espace mémoire virtuel LMEM est continu et comprend deux zones adjacentes, 1 'une pour les codes programme, 1 'autre pour les données, de sorte que le travail du programmeur (celui qui crée les programmes d'applications) est considérablement simplifié. De plus, le choix de l'adresse offset QAD1 (PAD1) ou OAD2 (PAD2-LAD1) à appliquer aux adresses logiques pour leur conversion se fait de façon simple et avantageuse grâce au test effectué par le comparateur CMP1, permettant de délivrer le signal SEL. Variantes envisageables de l'unité de gestion mémoire et draines d'application La présente invention est susceptible de nombreuses variantes de réalisation. Par exemple, plusieurs registres de sélection du type CMP1 peuvent être prévus en combinaison avec plusieurs registres offset du type OR1, OR2 de manière à faire éclater le plan mémoire virtuel en plusieurs zones du type PMEM1, PMEM2 de la mémoire physique PMEM du microprocesseur. Inversement, un mode de réalisation simplifié de 1 'unité MMU1 consiste à appliquer une seule adresse offset sur l'entrée A2 de l'additionneur ADD. Également, quand 1' adresse offset de consigne IOAD3 est égale à zéro, 1' inhibition de l'unité MMWl peut être obtenue de diverses manières, par exemple au moyen d'un bus d'adresse courtcircuitant le chemin d'adresse traversant l'unité MMU1. Enfin, bien que le comparateur CMP2 ait été présenté comme un élément de l'unité MMU1, il doit être noté que ce moyen de test peut être agencé en tout autre point du microprocesseur où cheminent des adresses, comme cela sera décrit plus loin. Par ailleurs, l'adresse offset de consigne IOAD3 appliquée sur 1' entrée E3 du multiplexeur MUX1, prioritaire sur les autres adresses offset lorsque 1'unité MMU1 est placée dans l'état inhibé, peut être différente de zéro. Par exemple, 1' adresse offset de consigne IQAD3 peut être choisie égale à zéro à la sortie d'usine du microprocesseur et être ensuite portée à une valeur prédéterminée irréversible, après que l'on ait chargé dans la mémoire PMEM une ou plusieurs applications. Cette valeur prédéterminée peut être rendue irréversible par claquage de fusibles, ou tout autre moyen connu. D'autre part, bien que l'on ait proposé plus haut de prévoir une première zone mémoire virtuelle IMEMI pour le stockage des codes instruction et une deuxième zone mémoire virtuelle LMEM2 pour le stockage des données, il est bien évident que ces zones mémoires peuvent contenir chacune des codes instruction, ou des données, ou un mélange des deux. Par exemple, quand la mémoire physique PMEM du microprocesseur est très encombrée et n' offre pas une zone continue de taille suffisante pour stocker le programme d'une application, une partie du programme peut être stockée dans cette zone, par exemple PMEM1, et la partie restante du programme stockée dans une deuxième zone, par exemple PMEM2. Également, bien que l'on ait proposé de localiser les zones mémoire PMEM1 et PMEM2 respectivement en mémoire rémanente et en rrmoire volatile, il est bien évident que, selon les besoins, ces zones peuvent être localisées dans une mémoire de même nature, rémanente ou volatile. Enfin, les termes "adresses logiques" et "adresses physiques" ne doivent pas être interprétés de façon limitative, comme signifiant uniquement que 1 'unité de gestion mémoire selon l'invention est en prise directe avec la mémoire physique d'un microprocesseur. En effet, plusieurs conversions d'adresses en cascade peuvent être envisagées. Par exemple, dans le cas d'un vaste plan mémoire comportant des adresses codées sur 16 ou 32 bits, ou plus, "l'adresse physique" délivrée par l'unité de gestion mémoire selon l'invention peut être choisie de 8 bits seulement et être concaténée avec des bits de poids fort afin d'obtenir une adresse physique adaptée au plan mémoire. Ainsi, l'unité de gestion mémoire selon l'invention doit être considérée, de façon générale, comme un convertisseur d'adresses. Aspects de 1'invention relatifs à la protection de la mémoire physique d' un mic-aprocesseur Dans le cadre de 1' exemple de mise en oeuvre dynamique décrit plus haut, on va maintenant décrire un exemple d'utilisation du signal de violation d'adresse logique VLT, qui est émis quand 1' adresse logique présentée par le compteur ordinal PC est supérieure à la valeur d'adresse la plus haute LAD2 de 1'espace mémoire virtuel dédié à l'application. Selon un aspect de l'invention, on considère que la violation de l'espace mémoire virtuel peut être accidentelle ou volontaire. Par exemple, une violation volontaire peut permettre de sortir du programme de l'application en cours d'exécution afin de redonner la main au système d'exploitation. Une violation volontaire peut également être frauduleuse et être le fait d'une personne cherchant à pénétrer des zones mémoire interdites. La présente invention propose qu'une violation d'adresse redonne la main au système d' exploitation ou envoie le microprocesseur dans un programme particulier, par exemple un programme de traitement des violations d'adresses. Ce programme particulier peut être prévu pour faire la distinction, selon l'adresse logique refusée, entre une violation accidentelle, une violation volontaire non frauduleuse et une violation volontaire frauduleuse ayant pour but d' accéder à une zone mémoire interdite. Selon le type de violation, ce programme peut redonner la main au système d' exploitation ou passer la main à encore un autre programne, spécifique au cas de violation rencontré. Par exemple, un programme spécifique aux traitement des violations frauduleuses pourrait permettre de détruire le programne de l'application responsable de la violation. A cet effet, selon l'invention, le signal de violation VLT délivré par le comparateur CMP2 est utilisé pour générer un signal d' interruption. Plus particulièrement, le décodeur d'interruption ID ("Interrupt decoder") du microprocesseur, en lui -même connu, est agencé pour comporter une entrée de traitement du signal de violation VLT. Lorsque le signal VLT est reçu, le décodeur ID délivre d'une part un signal d'interruption IT et d'autre part une adresse de secours EMXD correspondant à 1 'adresse d'un programme, par exemple le programme de traitement évoqué plus haut. Parallèlement, le contenu du compteur ordinal IIPC est sauvé dans un registre SVEPC. Dans le mode de réalisation représenté en figure 2, l'adresse de secours EMAD est appliquée en entrée d'un multiplexeur MUX2 interposé entre le compteur ordinal PC et 1 'entrée IM1 de l'unité MMLJl. Sur réception de du signal d' interruption rT, le multiplexeur MUX2 ferme le chemin d'adresses entre le compteur ordinal PC et l'unité MMW1 et applique à l'unité MMU1 l'adresse de secours EMXD. Parallèlement, l'unité MMU1 est inhibée par le signal VLT, utilisé ici comme signal d'inhibition INHIB. Si le microprocesseur comporte de façon classique un mode de fonctionnement superviseur et un mode de fonctionnement protégé, le décodeur ID délivre également un signal RQSUP de retour au mode superviseur, qui force le microprocesseur à quitter le mode protégé dans lequel s'exécute l'application. En mode superviseur, et de façon classique, le système d'exploitation a le contrôle exclusif du microprocesseur. Sur l'entrée d'inhibition du multiplexeur MUX1, le signal du mode superviseur SUP est combiné au signal VLT par une porte logique afin de maintenir l'unité MMU1 inhibée pendant le mode superviseur. En définitive, la présente invention offre un moyen simple et pratique pour cloisonner le plan mémoire dun microprocesseur et interdire l'accès à des zones de la médire qui ne doivent pas être lues par des personnes non autorisées. Ainsi, le contrôle par un circuit à logique câblée des adresses logiques, puis l'émission d'une interruption en cas de violation d'adresse et, accessoirement, le renvoi du tnicroprocesseur dans un programme de traitement des violations d'adresses ainsi que, de façon optionnelle, le renvoi du microprocesseur au mode. t superviseur, est un aspect de la présente invention qui convient particulièrement bien aux applications où un haut niveau de sécurité est exigé, notamment dans le domaine des cartes à puces, des étiquettes électroniques,.. L'home de l'art notera que cet aspect de 1' invention est indépendant de la manière dont on convertit les adresses logiques. Pour fixer les idées, considérons par exemple le cas ou l'additionneur ADD de la figure 2 est supprimé et remplacé par une simple juxtaposition de la sortie du multiplexeur MUX1 et du chemin sur lequel circule les adresses logiques LADi. L'adresse physique PADi est dans ce cas le résultat de la concaténation de l'adresse offset OAD1, QAD2 ou IOAD3 présente à la sortie du multiplexeur MUX1, qui représente maintenant les bits de poids fort de 1' adresse physique, et de 1' adresse logique LADi présentée à l'unité MMU1, qui représente maintenant les bits de poids faible. On voit que le test réalisé par le comparateur CMP2 est toujours valable et que le signal d'interruption IT est émis par le décodeur ID quand l'adresse logique LADi dépasse la valeur de seuil TAD2. Bien entendu, on ne bénéficie pas, avec ce mode de réalisation, des avantages de l'additionneur ADD. Ainsi, en se référant à l'exemple de la figure 3, on doit placer dans le registre OR2 une adresse offset 0AD2 égale aux poids forts de l'adresse PAD2, de sorte que l'on perd dans la zone PMEM2 un segment mémoire équivalent à la taille de la zone LMEM1, compris entre l'adresse PAD2//0 et PAD2//LAD1, "//" étant le symbole de la concaténation. D'autre part, le comparateur CMP2 et le registre TR2 peuvent être placés sur le chemin des adresses physiques. Dans ce cas, on place dans le registre TR1 une valeur de seuil d'adresse physique. En se référant à nouveau à 1 'exemple de la figure 3, cette valeur de seuil est égale à PAD2+(LAD2-LAD1) si la transformation des adresses logiques est faite par addition, ou à PAD2//LAD2 si la transformation est faite par concaténation. III Enfin, il ressort des lignes qui précèdent que cet t aspect de 1' invention peut également être mis en oeuvre dans un microprocesseur ne comportant pas une unité de gestion mémoire MMU, le microprocesseur travaillant uniquement sur des adresses physiques. Par ailleurs, la détection d'une violation d'adresse par détection du dépassement d'un seuil donne de bons résultas quelque soit le nombre de zones mémoire du type PMEM1, PMEMZ réservées à une application dans le plan mémoire physique, dans la mesure où le système d'exploitation attribue à chaque application un seul plan mémoire virtuel continu. En effet, dans ce cas, une violation d'adresse se traduit toujours par un dépassement de l'adresse logique la plus haute du plan mémoire virtuel de l'application, ou un dépassement de la plus haute 44 adresse de la zone mémoire la plus haute attribuée à l'application dans la mémoire physique. Toutefois, si le système d'exploitation affecte à une application plusieurs plan mémoire virtuels, par exemple un plan mémoire virtuel pour les données et un plan mémoire virtuel pour les codes instriiction, il faut tester chaque adresse relativement à la limite haute du plan mémoire concerné. Enfin, le fait que la détection d'une violation d'adresse puisse reposer uniquement sur une détection d'un dépassement de zone mémoire par valeur supérieure est également un aspect de l'invention. En effet, selon l'invention, les registres OR1, OR2 contenant les adresses offset OAD1, OAD2 sont des registres protégés, au moins en écriture. Dans ces conditions, il n'est pas nécessaire de détecter un dépassement par valeur inférieure de la zone mémoire la plus basse réservée à l'application dans la mémoire physique. La présente invention propose par exemple que l'accès aux registres OR1, OR2 soit réservé au système d'exploitation, ou soumis au contrôle et à l'accord du système d'exploitation. Ceci peut être obtenu de diverses manières à la portée de I'homrie de 1 'art. Par exemple, si le microprocesseur comporte un mode superviseur, l'accès au registres OR1, OR2 peut être assujetti à la condition que le signal SUP du mode superviseur soit présent, seul le système d'exploitation étant actif en mode superviseur. Sinon, la protection des registres OR1, OR2 peut être obtenue par le fait que l'utilisateur n'a pas accès au bas niveau de programmation du microprocesseur, et ne peut donc pas programmer le microprocesseur en code objet (ou code machine), la programmation se faisant par compilation d'un langage de haut niveau en un code dit "intermédiaire", ou "P-code", chargé dans la mémoire du microprocesseur et exécuté par un programme dit "interpréteur". Dans ce cas, les instructions relatives à la progrtwmmation des registres OR1, OR2 peuvent être supprimées du jeu d'instructions de haut niveau, de sorte que l'utilisateur n'a pas la possibilité de d'intervenir sur ces registres. Comme autre solution, la programnation des registres OR1, OR2 peut être placée sous le contrôle du programme interpréteur, qui autorise ou non 1écriture ou la lecture des registres OR1, OR2 selon la valeur d'adresse offset à y écrire ou y lire. En définitive, la prévision d'adresses offset protégées au moins en écriture est également un aspect de 1'invention qui permet de ramener la détection des violations d'adresses logiques à une simple détection d'un dépassement d'une limite haute, ce qui simplifie avantageusement la réalisation du circuit à logique câblée effectuant cette détection, ici le comparateur CMP2 et le registre TR2. REVENDICATIONS 1. Unité de gestion mémoire (MMU1), pour convertir une adresse logique (LADi) en une adresse physique (PADi), caractérisée en ce qu'elle comprend des moyens pour additionner une adresse offset (QAD1, OAD2) à l'adresse logique (LADi) à convertir. 2. Unité de gestion mémoire selon la revendication 1, comprenant un circuit additionneur (ADD) comportant une entrée d'adresse logique (Al) et une entrée d'adresse offset (A2), au moins un premier (OR1) et un second (OR2) registres contenant des adresses offset (OAD1, CAD2), et des moyens (TR1, CMP1, MUX1) de sélection de l'une des adresses offset (OAD1, OAD2) sur l'entrée d'adresse offset (Al) du circuit additionneur. 3. Unité de gestion mémoire selon la revendication 2, dans laquelle les registres (OR1, OR2) contenant les adresses offset (OAD1, OAD2) sont protégés au moins en écriture. 4. Unité de gestion mémoire selon l'une des revendications précédentes, dans laquelle les moyens de sélection (TR1, CMP1, MUX1) comprennent des moyens (TR1, CMP1) pour ccmparer l'adresse logique à convertir (LADi) à un premier seuil (TAD1) d'adresse logique, et sont agencés pour sélectionner (SEL) l'une des adresses offset (OAD1, OAD2) en fonction du résultat de la comparaison. 5. Unité de gestion mémoire selon l'une des revendications précédentes, comprenant des moyens d'inhibition (MUX1, E3, ADD) agencés pour que l'unité de gestion mémoire délivre, sur réception d'un signal d'inhibition (INHIB, VLT, SUP), l'adresse logique (LADi) à convertir. 6. Unité de gestion mémoire selon l'une des revendications 1 à 4, comprenant des moyens d' inhibition (MUX1, E3) agencés pour appliquer une adresse offset de consigne (LAD3) sur l'entrée d'adresse offset (A2) du circuit additionneur (ADD) sur réception d'un signal d'inhibition (INHIB, VLT, SUP). 7. Microprocesseur (MP) comprenant une unité de gestion mémoire (min1) selon l'une des revendications précédentes. 8. Microprocesseur selon la revendication 7, comprenant des moyens (TR2, CMP2) pour comparer une adresse logique (LADi) ou une adresse physique (PA?i) correspondante à un seuil de violation (TAD2) d'adresse, et délivrer un signal de violation d'adresse (VLT) quand l'adresse logique ou physique est supérieure au seuil de violation (TAD2). 9. Microprocesseur selon la revendication 8, dans lequel le signal de violation (VLT) est un signal d'inhibition (rNHIB) de l'unité de gestion mémoire. 10. Microprocesseur selon 1 'une des revendications 8 et 9, comprenant un décodeur d' interruption (ID) agencé pour délivrer un signal d'interruption (IT) et une adresse de secours (EMAD) sur réception du signal de violation (VLT) d'adresse logique. 11. Microprocesseur selon la revendication 10, dans lequel l'adresse de secours (EMXD) est l'adresse d'un programme de traitement des cas de violation d'adresse. 12. Microprocesseur selon l'une des revendications 8 à 11, comportant un mode de fonctionnement superviseur et un mode de fonctionnement protégé, comprenant un décodeur d' interruption (ID) agencé pour délivrer un signal de retour au mode superviseur (RQSUP) sur réception du signal de violation (VLT) d'adresse logique. 13. Procéda de conversion d'une adresse logique (LADi) en une adresse physique (PADi), comprenant les opérations consistant à - définir dans un plan mémoire virtuel (LMEM) au moins deux zones mémoire adjacentes (LMEM1, LMEM2) comprenant une zone basse (LMEM1) et une zone haute (LMEM2), - définir dans un plan mémoire physique (PMEM) une première (PAD1) et une deuxième (PAD2) adresses physiques, - sur réception d'une adresse logique (LADi) à convertir, déterminer la zone (LMEM1, LMEM2) du plan mémoire virtuel (LMEM) contenant l'adresse (LADi) à convertir, et - si la zone déterminée est la zone basse (LMEM1), additionner à l'adresse logique (LADi) la première adresse physique (PAD1), - si la zone déterminée est la zone haute (IMEM2), additionner à l'adresse logique (LADi) la différence (PAD2-LAD1) entre la deuxième adresse physique (PAD2) et la taille (LAD1) de la zone basse (LMEM1) du plan mémoire virtuel (IMEM). 14. Microprocesseur (MP) comprenant un système d'exploitation et une unité de gestion mémoire