FR 2799285 A1 20010406 FR 0010685 A 20000817 ENSEMBLE DE i\IENJOIRE POUR UN SUPPORT DE DONNEES, ET PROCEDE POUR LA GESTION DE INIENIOIRES La présente invention concerne un ensemble de mémoire ainsi qu'un procédé pour la gestion de mémoires, notamment pour des suhhol-ts de données portables sous la forme de cartes à puce. Tandis que les formes antérieures de cartes d'identification ne présentaient pas de mémoires de données, oui tout au plus une piste magnétique pont enregistrer et lire de faibles quantités de données, il est aujourd'hui possible d'utiliser circuits intéLrcs a semi-conducteUrS insérés dans de telles cartes. Dans le cas le plu,, simple, ce circuit à semi-conducteurs peut être réalisé sous la forme d tiri circuit à mémoire pourvu d'tili dispositif d'entrée-sortie, par exemple une mémoire EEPR01I (mémoire morte programmable et effaçable électriquement). Toutefois, pour (les applications plus complexes, il s'est avéré avantageux d'intégrer dans tille carte un microprocesseur complet, avec un système de bus reliant une unité centrale, une mémoire et des unités d'entrée-sortie. Des cartes à puce pourvues d'un microprocesseur, appelées cartes @i mémoire ( smart cards ), sont utilisées dans une multiplicité de formes pour lui nombre croissant de domaines d'application. Des cartes courantes sont par exemple les cartes selon la nonne ISO 7810, qui sont constituées d'tin support de carte réalisé en matière plastique, dans lequel sont introduits un circuit intégré à semi-conducteurs ainsi qu un clamp de contact pour réaliser des liaisons électriques avec un appareil de lecture correspondant. Par ailleurs, on utilise aussi d'autres formats, et le couplage galvanique à un appareil de lecture peut notamment être remplacé par une transmis sion de signaux sans contact. On trouve par exemple une vue d'ensemble des technologies connues de cartes à puce dans l'ouvrage de W. Rankl, W. Eftïl@g 1landbucli der Chipkarten , Munich : Cari Hanser Verlag, 2""` édition, 1996. De plus. on a déjà proposé de réduire le corps de carte, voire de le supprimer totalement, par exemple par le fait qu'un microprocesseur monopuce est incorporé clan; -- montres-bracelets, des bijoux, des vêtements ou autres objets usuels. La notion de carte à puce doit donc englober tous les objets transportables actuels et futurs dans lesquels est intégré un microprocesseur, afin de permettre à un possesseur ou 1101-teur (le l'objet d'entreprendre des interactions typiques (le cal-tcs à puce avec (les postes interactifs correspondants prévus à cet effet. Étant donné que la taille de la mémoire des cartes est limitée par rapport glu besoin de mémoire nécessaire pour leurs volumineux programmes, la configuration et l'exploitation des ensembles de mémoire de cartes à puce revêtent Lille illiportance particulière. Les cartes à puce habituelles possèdent typiquement une nlénloire lion volatile, réalisée sous forme d'EEPROM, pour des donnécs-objets lion éphémères ou encore persistantes, ainsi qu'une mémoire volatile, réalisée sous forme de mémoire v@ e (RAM), pour des données-objets épliénières. Du fait de contraintes topographi ques, les microprocesseurs sur des cartes à puce lie doivelit généralemc nt pas dépas ser une surface d'environ ?5 n]m, de sorte que l'espace mémoire qui peut être installé sur une carte à puce est très limité. Cette même raison limite cri outre - taille donc les performances de l'unité centrale. Afin d'utiliser optimalerlient l'espace mémoire disponible, il faut éviter le plus possible toute fragmentation. Afin d'éviter la fragmentation (les mémoire; dans des ensembles de traitement de données, on sait qu'on peut utiliser des procédés dits (le regroupement ( garbage collection ), comme ils sont décrits par exemple dans le document US 4 907 151. Les procédés connus de regroupelllent se basent principa lement sur le principe consistant à diviser la mémoire de travail cri deux zones (le préférence, et à n'utiliser initialement qu'une seule zone pour l'exécution d'un programme, jusqu'à ce qu'il n'y ait plus dans cette zone de secteurs de mémoire contigus suffïsaniment grands. Lorsque la zone (le mémoire utilisée est cri ce sens pleine . Une routine de regroupement identifïe toutes les données élénieiltair-es actives dan; la zone de mémoire utilisée, et les copie dans la seconde zone de mémoire, jusqu'alors lion utilisée, où elles sorti disposées de façon conti`atii=. La condition nécessaire pour pouvoir exécuter ces procédés courants est que la mémoire de travail disponible soit suffisamment grande pour que la capacité de fonctionnement de l'ensemble de processeur, dont elle fait partie, lie soit pas compromise par l'impossibilité d'utiliser une partie respective (le la mémoire (le travail. Les caries à puce ne remplissent généralement pas cette cond 1 tion. Leur mémoire (le travail, très petite par manque de place. doit être pr@itiquerllellt toUjc(rr; totalement disponible pour les applications présentes sur la carte à puce. Les -océ clés courants de regroupement ne conviennent donc pas pour les cartes à puce. Lit ce qui concerne l'organisation des données qui. SUI, tille carte à Alice. (létï ilissent tir] programme de carte, une évolution actuelle consiste, pour l alil]el dune procédure ou analogue dans l'ensemble de mémoire du rlllcroprocesseur exécutant le déroulement du programme, à lie plus appliquer (les agglomérations (le données lion str-licturées, niais des séquences ( franies ) str-ticttlrécs. Le concept général (les séquences (le piles de mémoire ( stack frarnes ) est coilrlu sur l'exemple (1e la nl;icliine virtuelle Java ( Java Virtual Machine ), entre autres par Jon Nlever. Troy Downing : Java Virtual Machine , Sébastopol, CA, USA : O'Reilly & , Asso ciates, Inc., 1997, pages 58 et 59, ainsi que Tim Lindliolni, Frank l'ellin : The 'a Vii-tual Machine Specitïcation , Reading, NIA, USA : Addison-%@'esley-, 1997, pages i)i) a 68. Ces techniques permettent certes d'obtenir des cartes a puce avantageuses sous de lnnltiples points de vue. Toutefois, la gestion des structures de données appliquées dans l'ensemble de mémoire devient plus compliquée et plus exigeante en ressources ; cri particulier, l'utilisation prévue de tells cartes suppose urge mémoire de travail utilisable à tout moment. La présente invention a donc pour but d'indiquer, pour des suppoi . de données portables activables et désactivables, notamment sous la forme de cartes à puce, des mesures qui améliorent les possibilités d'utilisation de la mémoire de travail. A cet effet, on doit notamment indiquer un ensemble de mémoire anicliol-é cri vue d'une défragnientation, ainsi qu'un procédé de défragnientation d'au moins une zone de mémoire d'un tel ensemble. On doit cri outre fournir la possibilité d'entreprendre un compactage de la mémoire de travail. afin de récupérer des zones de mémoire contiguës les plus grandes possibles. De plus, on doit indiquer un ensemble de mémoire ainsi qu'un procédé pour exploiter un ensemble de niénioire qui, lors de l'exécution d'un prograninie de carte, simplifient l'appel dune deuxième procédure ou méthode à partir d'une première procédure ou méthode eri cour d'exécution. Ce but est atteint par un ensemble de mémoire pour mi support de données portable activable et désactivable, qui est conçu pour exécuter des programmes clé support (le données qui produisent des données-objets éphénicres, et qui permet le rechargement ces programmes de support de données, caractérisé en ce qu'il comprend - un premier dispositif' de mémoire pour la mise en mémoire volatile de donnés, - un deuxième dispositif de mémoire pour la mise en mémoire non volatile de données, - le premier dispositif de mémoire comportant au moins Lille rode lie mémoire dans laquelle se trouvent des informations qui indiquent la position et la taille de rodes mémoire établies dans le deuxième dispositif de mémoire polir l'exécution d'au moins un programme de carte, et - une routine de programme, associée au dispositif de mémoire. défïnissarit à nouveau les informations présentes dans la zone de mémoire, #à la suite d'un pi-oceisris desactlvatlon qui a pour conséquence l'effacement des Contenus de données dans le premier dispositif de mémoire, de telle sorte que les zone, de mémoire désignées par ces informations occupent une lone de mémoire contiguë dans premier dispositif de mémoire. Selon un mode de réalisation de l'invention, la redéfinition des infoi-iliations s'effectue chaque fois juste après 1a réactivation d'titi support de données dés@ictivé. Selon un autre mode de réalisation, 1a routine (le programme effectuant la redéfinition (les informations 1.11t partie du système d'exploitation (lit Support de données. L'invention propose également lin support de données portable, ìctl\'@1blC et désactivable. L'invention propose également un procédé pour gérer l'ensemble de mémoire d'tin support de données portable, activable et désactivable. qui est conçu pour exécuter des programmes de support de données qui déposent, dans Lille mémoire de préférence volatile, données-objets épliénières dont la position et la taille sont définies par des lnforniatlons déposées dans une mémoire lion \'Olatlle, caractérisé cri ce que - juste après activation et ou juste avant la désacti\-@ttion du support (le données, les intormations conservées dans le deuxième dispositif de mémoire sont redéfinies. la redéfinition s'eitectuaiit de telle sorte que les zones de mémoire C111 premier dispositif mémoire qui sont désignées par les lit foi-ill@itiOrls occupent Lille 7.011c de mémoire contiguë. 1)e préférence, retape d'activation est obtenue par liaison @l\'cC Lille SOLlrCe (le courant d'exploitation. L'invention propose également un ensemble de illenlO11-C pOLlr un SnppOrt (le données portable activable et désactivable, qui est cOnÇll [)Oui- exécuter des progl-inlilies de support de données qui déposent des données-Ob_1ets ephénières. et (1l11 permet le rechargement (1C ces programmes de support (le données, caractérisé cri ce qu'il comprend - 11r1 premier dispositif de mémoire comportant une première 1011(' (le mémoire. @11l1S1 qn'Llrl deuxième dispositif de mémoire comportant Lille deuxième zone (le n1cr11O1l_C, q111 sont respectivement prévus pour recevoir -,iii 1111)1n5 Lille donnée objet prenant un état actif ou passif en fonction (lit déroulement (Vun programme de support de données, l'exécution d'un programme de support (le données s'effectuant initialement en utilisant respect ivenicnt (il] (les dispositifs (le mémoire, - des moyens pour passer du dispositif' de mémoire utilisé pour l'exécution d'un l)rogramme de supl)ort (le données sur l'autre dispositif de mémoire respectif, en réponse à titi cvènenlent prédéfini, - le changement du dispositif de mémoire mettant en route une routine de cotlll)ilctage associée Il l'cnsenlblc de mémoire, laquelle, selon mi llrocedc courant (le 1"e(,roupelllelll ( garbagr collection ) , dCIerlllltlc de façon srlccll %, r toutes les données-objets actives dans la première zone (le mémoire, et les copie de façon contiguë dans la zone de mémoire élu deuxième dispositif` de mémoire. 1)e préférence le premier et le deuxième dispositifs de mémoire sont conçu; comme premier et deuxième bancs de mémoire d'un dispositif de mémoire commun. L'invention propose: également un procédé pour gérer l'ensemble de mémoire d'lin sul)()ort (le données portable, qui co111porie ail mollis hile première et tille deuxième zones de mémoire qui sont respectivement prévues polir recevoir ail moins une donnée-objet prenant un état actif ou passif en fonction du déroulenlent d'un programme de support données, comprenant les étapes suivantes exécution d'un programme de support (le données cri utilisant Lille des zones de mémoire, cri rcponsc à un événement défini, changement de la zone (le mémoire utilisée, avec exécution consécutive d'un programme de support de données C11 utilisant 111 zone (le mémoire précédemment non utilisée, - le chanuenient de zone de mémoire s'effectuant par le t'ait aile tolltes les données-objets. actives sont copiées de la première dans la deumènle zone de mémoire selon un procédé courant de regroupement ( garbage collection 1, - toutes les données-objets de la première zone de mémoire étant rendues Inactives, et - toutes les données-objets de la deuxième zone de mémoire étant activées. 1_'invcntion propose également un ensemble de niéIlloil"e I)OUI- III SLIl)hol-t Lie dollllécs, comprenant - des registres associes ' un processeur, qui contiennent ail moins une larlablc tir pointeur- pour désigner une instruction de programme d'un programme @l exécuter. ainsi qu'une variable de pointeur pour désigner la zone (le données opérationnelles d'une l)rocédure pouvant être appelée clans le cadre du prograIliIlle, une première pile de mémoire pour mémoriser les données de -océdure d'au illoins une procédure pouvant être appelée au cours de l'exécution d'tin -Ogl-anltlle, les données de procédure COmpOrtant une zone de données opéra tionnelles avec des données produisant la capacité d*eXéCntiOn de la 111 -OCédtll-c, et titi secteur de paramètres pour recevoir des paramètres nécessaires lors de 'exécution de la procédure ; ainsi que - une deuxième pile de mémoire polir recevoir provisoirement, en provenance du processeur, des registres décrivant l'état de la 111-océdLlrc appel@lllte. 101-sqLl'une autre procédure a été appelée par une procédure actuellement exécutée dans le cadre de l'exécution du programme. Selon un mode de réalisation de l'invention, ICS (1On11éCS de procédure comportent en outre Lin secteur dans lequel se trouvent des variables locales utilises par la procédure. Selon titi autre mode de réalisation de l'invention, les données décrivant l'état d'une procédure appelante comprennent au moins une variable de pointeur pour désigner une instruction de programme du programme à exécuter ainsi qu'une variable de pointeur pour désigner une position dans la zone de données opci-@1tio11 nelles de la procédure appelante. L'invention propose également titi procédé pour appeler une procédure 1`1 1X11-til d'une autre procédure traitée au cours de l'exécution d'titi prograninie, dans titi ellseilihle (le mémoire qui est commandé par microprocesseur et qui Comporte (les re`,Tlstl-CS aSSOCICS a Un p1-OCeSSCLIr, qui contiennent au nloills tint variable de pOI111CL11 pour désigner une instruction de programme et une variable (le poilltetlr polir désigliei- la zone de données opérationnelles d'une procédure, et qui COnlporte Lille mémoire e11 piles pour mémoriser des données de procédure, caractérise par le.s étapes Sui\ alites -. - disposition des données de procédure de la procédure @ippelante et (le 1;1 procédure appelée dans une première partie de la mémoire en piles, les (loiinée; (le procédure étant respectivement divisées en une zone (le données opcratioll nclles avec des données produisant la capacité d'exéCutioll (le la J ) roccdLlre , et titi Secteur de paramètres pour recevoir des paramètres nécessaires lors (le l'exécution ; paraniétrage d'une deuxième partie de la mémoire en piles pour retcvoir pi-ovisoirenient des données décrivant l'état d'une procédure appelante. (lui proviennent du registre dans le processeur, - transmission des registres décrivant l'état d'une procédure appelante du processeur dans la deuxième partie de la mémoire en p11eS, lorS(qll'rlllc derlxiéllle procédul-e a été appelée ' partir d'une première procédure en couI-s d'exécution, - exéciItioll (le la pl-océdure appelée, - retransmission dans le processeur des registres transinl, dans la deuxICnle partie (le la mémoire en piles, a la fin de l'exécution de la 111'oCédrl1'e appelée. De préfèrence les données décrivant l'état de la procédure appelante sont, lors de la transmission dans la deII\Ienle partie de la mémoire en piles, adaptées a lie situation de traitelllent à la suite de l'exécution de la procédure appelée. Les para illètrcs qui se trouvent dans le secteur paramètres peuvent être déposé; par la procédure appelante, et si la procédure appelée délivre une v@Ilellr (le renvoi, CCIIC-C1 peut être déposée sur une position prédéfinie dans le secteur de paramètres de la procédure appelée. Des améliorations avantageuses et configurations supplélllentilireS olllIortrIlles des ensembles ou procédés selon l'invention peuvent être tirées des revendications secoli(lill1-es. L'Invention va être maintenant expliquée plus en détail. il titre d'exemple, il l'aide (l exellll)les de réalisation. Dans dessins annexés la fiplrc 1 représente une architecture sinlpllfée d'hile Ca1_tC a lIIICC, la Il(-llI'e 2A représente l'occupation mémoire d'riIl en@eMbIC (le illélilOi1@C COllititlle d'une mémoire LITROM d'une mémoire vive. dans un premier état d'exploitation, la figtIre 213 représente l'occupation mémoire dails riel dellxièllle état d'exploitation, la figure 'A représente l'occupation mémoire d'une niénlolre dune deux ènie tOrnle (le réalisation d'un ensemble mémoire, la tï@,iure 313 représente l'occupation mémoire d'une Illéllloire d'une autre fOrnle (le réalisation d'une carte à puce, la figure 4A représente autre forme de réalisation d'un cnsenlble de nléilloirc, avec un registre de processeur et deux piles (le lllélll( ) irC. (LUIS Un l , reiiliel, état ll'Cxploltatron. la figure 413 représente l'occupation mémoire (le la deuxlénle pile (le illénloll'C lors de l'appel d'une deuxième procédure par une première, la tigure -f(-' représente l'occupation mémoire de l'ensemble (le illéilloii-e selon la figure 3A lors de l'appel d*iine deuxième procédure par une première. La figure 1 représente schématiquement et sous une terme simplifiée l'architecture d'un support de données portable 1, pour lequel on supposera dan; la suite qu'il prend la forme d'une carte à puce. L'élément central de la carte à puce est un processeur de carte à puce avec une unité centrale (1e traitement 2, qui est reliée à une llléll)oire morte 3 (ROM). illlc mémoire vive 1 5 (RAM), une mémoire ELI'RONI 30 et une IIlt@rfaCC (I'CIltree-soi-tle La mémoire morte 3 contient le système d'exploitation pour l'unité Centrale (le traitement et est gravée lors de la fabrication de la carte à puce I. Pendant toute la durée de vie de la carte à puce, le contenu de la mémoire morte 3 lie peut pas , -e modifié. Le système d'exploitation peut notamment comprendre des routines pour gérer la structure de mémoire constituée de la mémoire vive 1 5 et de la mémoire EEPIZOM 30. La mémoire vive 15 est la mémoire de travail (le l'unité centrale (le traitement 3. File est volatile, ce qui veut dire que toutes les données qui @ sont déposées sont perdues lorsque la tension d'alimentation de la cill-te à hure est coupée. La mémoire EEPROM 30 est une zone de mémoire non volatile, dans laquelle des données ou des codes de programme peuvent être écrits et lilS sous le colltr(@le (fil système d'exploitation. L'interface d'entrée-sortie 4 sert à la communication de I11 carte à puce 1 1i\ec un appareil externe, ainsi qu'à l'alimentation électrique (le la carte. Mlle peut être @1 contact, c'e;t-.,l-dire sous la forme de faces de contact, ou sans contact, c'est-Ïi-(fil-c sou; la forI11C d'une antenne par exemple. La carte à puce est conçue pour l'exécution de programmes de carte élaborés dans un langage de programmation orienté objet, et elle autorise le chargement ulté rieur de tels programme; sur la carte. Les programmes (le carte (lu type indiqué utili sent, dans le contexte de l'exécution du programme. (les données-objets (Iil'ils produisent à cet effet. Les programmes de carte eux-mêmes résident dans la illéilloil-c non volatile 15 de la carte à puce, et les données-ohicts qu'ils produisent (111n; la mémoire volatile 30. La position des données-objets dans la mémoire vo1atilc, ainsi (111e leur 111111c. sont consianécs dans une zone définie 10 de la mémoire I''I''PIZ()NI lion volatile 15. Différentes variables de pointeur 20a, 20b, 20c, 20d se tromellt là cet cifct dans I11 Î0nc (le lllellloll-c 10, leur Colllellll pointant respectl\e11iciit \cl-@ le début (je zollcs (le mémoire as,#llclées 2@a, 251. -15c, 25d dans la mémoire vive volaille 31). [-es /oncs (le mémoire 2@a, 2@b, 25c. 25d (le la mémoire vive 30 scr\eflt 3 recc\o11- les repl-ésetlt;i tions (les d( lilées-objets éphémères pour un prograillinc (le carte (lui s'exécute s111- le colltl-Ôlcilr de la carte il puce. Une fois établies, les variables de pointeur et la (1i\ isioll ainsi obtenue de la mémoire vive 30 sont en prllicipe conservées à la Suite l'lllillallsatlon d'Lln programme de calrte. Lors de la suppression de l'alinientatloll ClectrKILIC, Seuls sont donc perdus les contemls des données-objets dans la mémoil v1\'c 30, tandis que les objets ellx-Illenles sont conservés 'es par les \'al'lahles de 1)Olilleur dans lit mémoire 11o11 Volaille 1 @. TOLItetoIS, par des modifications dans le deroulenlent d'un pI'ool'amlne (le carte, pal- l;1 modification de la strLICtLlre d'un programme de carte ou par la modification (lu nombre de progi-ammes de carte présents sur la carte à puce, la division en zone; dan, la mémoire vive 30, qui est nécessaire afin de pouvoir exécuter- le; programme;, petit se modifier. Si par exemple la taille de la zone de mémoire 25a se modifie, cela peut oii- des répercussions sur- les zones de mémoire consécutives 25b. 25c, 25d. Il petit l1otanlment se créci- des zones de mémoire auxquelles aucun progi-alilIlle (1c carte 'accède plus. Ainsi, si Lin programme de carte, par excinl)le du tait d'Linc nouvelle version, a besoin de plus de zone de mémoire dans la mémoire vive 30, on est alors obligé d'effectuer une nouvelle association dans la partie 11011 encore utilisée de mémoire vive 30. La zone de mémoire jusqu'alors associée au progi-arnnle devient sL1pel'fllle et constitue désormais une zone de inérllolre vacante. Lit cas de diminution de la zone de mémoire nécessaire. paI' exemple de la zone 15 l'alternative possible consiste soit a laisser inchangée la taille de la zone de i11é11i(11rC mais gaspiller ainsi de l'espace mémoire, soit a elltr2:pt'e@l@lre' la dI111111LItioIl col- espondante. niais autoriser' alors a nouveau l' d'une vacance dans l'occupation mémoire entre les zones de mémoire 25a et 25b. La zone (le mémoire vacante ainsi créée ne petit souvent plus être utilisée de façon opportune, labituelleinent, on supprime les zones de mémoire vacantes en effectuant ré(itllièrellIeilt une défragnlentation au cours de l'exploitation normale du concerné (1C tI'alternent de données. Toutefois, les techniques connues de défi'a`.; nlcnlallon (le mémoires dans lesquelles se trouvent des donnécs-oblets de progralll me@ de carte dont la programmation est orientée objet. ces techniques donc suppo SCIA tou,jottrS la présence d'un espace mémoire disponible suffisant. ()1-, pour des CILICsllolls Cie place, on ne petit lias fournir un espace mémoire col-I'espOll(l@iilt stil- (les caries 1`l puce. I.es lechiliques connues de defragnlentatlon ire sont donc pas appllcd hlc; aux cartes 'i puce. ("est poul-quoi, selon l'invention, on ellll-eprend Lille CIC1raglllellt@@@@U11 de la Illenl@lre \ lve 30Juste apr'es l'activation oll Juste @1Vant la désactl\',itlon du pl'occ@@@llr tic la carte à puce, donc api-é; l'achèvement de l'exécution des pi-ograinincs (le carte dans le cadre de l'exploitation normale, ou selon le cas avant soli coIllIllencellicnt. Pour L1110 défragnlentation effectuée a u11 tel moment, on n'a pas besoin (le tenu compte (les contenus des objets ephénleres mémorisés dans les zones de IIleniolrC 25a, 25b, 25C, 25d, pL11sqUC 1C contenu de la mémoire vive \'olalllC ?t) est (1C toute façon effacé. Les valeurs des variables de pointeur 20a, 20b. 20c, 20d dan; la zone 1() de la mémoire non volatile 15 peuvent donc être réglées ;i nouveau sans tenir aucun compte de la mémoire volaille 30. Le processus d'activation peut être obtenu par exemple par la liaison avec une source (1C courant (I'Cx()1(llt ou le rétablis serpent de l'alimentation électrique, et le processus de désactlvatlon par exemple par Vlnteriuptlon de l'al1mentatlon électrique ou la séparation d'une source de courant d'exploitation. On effectue opportunément une redéfinition des variables (le pointeur à chaque mise cri service de la carte à puce. La routine de programme eficctuant la redéfinition peut être, comme elle travaille uniquement avant ou après l'c-\éctltioll d'un programme de carte normal, réalisée sous forme (le programme relrltiveilleilt petit, et elle fait opportunément partie du svstènle d'exploitation (le la carte puce. La défragnlentation s'effectue par le fait que les variables (le pointeur 25a. 25b, 25c, 25(1 déposées dans la zone de mémoire l t) sont définies (le telle sorte que leurs contenus indiquent des zones de mémoire directement avoisinants dans la nlénloil@e vive ; la n1Cnlolre vive 30 est donc utilisée (1C telle Sorte qu'on \' Crée L1110 Zone Il 1)r'C contiguë la plus grande possible. La Il(-'Lire 213 illustre une occupation obtenue (1C la soi-te de la mémoire non volaille 15 d'Une carte a puce. Les contenus (les varlable5 (le pointeur 20a, 20b, 20c, 20d pointent respectivement vers le début de zones de mémoire 25a, 25b, 25c ou 25d dans la mémoire vive volatile 30, la taille respective (les zones de mémoire individuelles 25a, 25b. 25c ou 25d correspondant exactement à la taille nécessaire au programme de carte. et les zones (le mémoire 25a, 251, 25c Ou 2Jd formant conjointement une loue de mémoire contiguë. s@lns #, acancCS. La flgllrC 3A représente la mémoire -l0 d Une carie (I puce Conçue pour l'exécution (1C programmes de carte rechargeables. élaborés dans L111 langage (le progranlnlation orienté objet. Des programmes de carte de ce t`'pc ont généralement besoin pour leur exécution, pour la mémorisation de données-oh,jets utilisées clans le cadre du déroulcrnent du programme, d'un espace (1c lllélll()ire libre (disponible inlport@int par rapport à la mémoire vive (le la carte à 1)Llce. CeSt [10111 -qrlOi la mémoire 40 est (le préférence la mémoire lion volatile (le la carte à puce, c'est-à-dire habituellement sa mémoire LIA'RONI. La taille (le l'espace mémoire disponible est déterminée 11o11 Seulement par les moyens (1C mémorisation @ll\-111er@@C@, plais aussi par le,, performances du processeur de la carte a puce. CCS @C1')orI11@11cC@ sont elles aussi limitées par les conditions d'encombrement restreint. Cent I)OLIrqLloi les processeurs de cartes il puce lie peuvent généralement adi-essLi- qu'un espace mémoire limité. Cela étant, l'invention tire parti du fait que l'espace inéllloil-c adressable pal- un pl-OCesseur lie carte a puce est SOUVCUt inférieur- a l'espace 1)11ySILltleilleilt disponible. Selon l'invention, la illémolrC 40 est donc réalisée SOUS la f@llllle ' dCUX bancs (le niéniolrC 8t), 90, qui conipi-Cllllent chacun opportunément le nonlbrc nla\liwll d'emplacements de inénlon'e que peut adi-eSSer le 111-OCeSSellr (le la Ca1Te a puce. L'e\eCLiti011 d'Uil programme de carte S'eftCCtlle chaque toit e11 utilisant exactement un banc de mémoire. On supposera que seul le banc de ulenloll'e S() est Initialement utilisé pour- mémoriser des données de différentes doililées-objet; 45a. 45b. 45c. 45d dans le cadre d'un programme de carte s'exécutant sur le processeur de la carte .i puce. Sur la base de modifications de la structure, de la composition ou du 110111bre de programmes de carte pouvant être exécutés par la carte à 1)uce, des zones de mémoire 52)a, 50b, 50c comportant des données-objets qui ne sont plus utilisée; peuvent apparaître au fil de l'utilisation entre les zones de données des données objets 45a, 45b, 45c, 45d. Il arrive notamment que des données-objets individuelle; 45a, 45c, également appelées mortes , ne seront à un instant futur plus d'aucune d'utilité dans le cadre du pi-ogi-atililie de car-te. On peut reconnaitre ces données objets moi-les 45,1, 45e au frit que, par exemple. le prograilline Lie carte lie dispose plus Lie pointeul-s sur ces données-objets 45a. 45c. Afin (le fendre l'espace mémoire inutilisé et' Ou fragmenté L111 banc de Illéllloll,e 8(1 actuellement e11 service à 11ouveau utilisable pour une utilisation dans le cadre du 111-ograinine de Carte, on entreprend, a l'interventlotl (i'eveneinents 1)i-édétlills ou a Lies instants détermines, une transmission des données déposées dans le banc de ulenloll'C 80 dans l'autre balle de mémoire respectif 90, 11o11 utilisé C11 dernier lieu. A cet @t'f@t, On 111C2 C11 route une routine de compactage qui COri"Cspond fondamentale ment a Lui procédé courant de regroupement ( garba g e collection >?). Pendant la LILII-ée du changement de banc de mémoire, c'est-à-dire pendant l'eXéCLition de la 1-outille (le compactage, on n'exécute aucun autre programme (le carte. Les références de base ou encore les pointeurs de base sur les (loti nées-objet, 45i1, -15b. 45C, 45L1 déllo;ée; ',C troLIvent donc cil dehors de la niénioire de travail 1ï-atinctitable 80. La ti-ansillission s'effectue par le fait que. par (les pi-oces;iis (le copiage sélcc tif55,i, SSb, seules les données-objets encore actives. également appelées .. vivantes , sont copiées dans le banc de mémoire 90 lion utilisé en (Ici-nier lieu. de sorte qu'on v crée une zone partielle utilisée contiguë 60a, contenant toutes les données-ol)jets vivantes, et une zone partielle contiguë libre 6t)1 ) . Les données-objets mortes restent toutes dans le banc de mémoire 80. Lorsque toutes les (folirlées-()[)jets vivantes sont copiées, les bancs de mémoire échangent leurs r,ïlcs, ce qui veut (lire que le banc (le mémoire 90 est CIISUlte utilisé pour l'exécution (le programmes (le carte, tandis que le banc de mémoire 80, avec les données-oli.jets illortes qui sont restées, est libéré pour une réoccupation complète. Une technique appropriée pour la sélection des données-objets vivantes à copier est connue sous le nom de procédé ( opy-Liye , et décrite par exemple dans Jürgeti 1Jeyniann : Matlienlatical Modelling and Hardware Support of Garbage Collection , TL M-1NFO-06-90-122 350; 1 TUM-19022, Munich : Mathematisches Institut und Institut liir Inforniatik (fer Technisclien Universitât München , 1990, 5.30 à 35. Un copiage effectué de la sorte lors du changement du banc de mémoire utilisé permet de réaliser un processus combiné de défragmentation et de regroupement ( garbage collection ). La figure 3B représente une variante du processus combiné (le défcae(jnlentation et de regroupement de la figure 3A, dont l'utilisation est surtout opportune si la mémoire 40 comportant les balles de mémoire 80 et 90 est réalisée par Lille technique selon laquelle les accès d'écriture sont particulièrement lorius. c'est-à-dire si la mémoire 40 est par exemple une mémoire EEPROM. Afïli que le temps nécessaire pour l'exécution de la defragnientatlon, et donc polir le changement (le balle de mémoire, reste malgré tout le plus faible possible, on a prévu pour le processus (le copiage titi cache en mémoire vive 95. On y produit d'abord. air moyen d'étapes (le copiage sélectif 65a, 65b, la juxtaposition défragnientée (les (loti il écs-objets vivantes 45h, 45c. Pour chaque donnée-objet vivante copiée, on effectue dans le cache ell mémoire vive 95 une résolution et adaptation des références aux autres données objets se trouvant dans le cache en mémoire vive 95. Ensuite, le contenu (lu cache ci] mémoire vive 95 est copié par- un unique processus de copiage contigu 70 dans le banc (le mémoire 80. Si le volume de mémoire des données-objets vivantes dépasse la taille du cache en mémoire vive 95, le copiage s'ef@fèctuc cri plusieurs étapes partielles. cri fonction de cette taille. Après chaque étape partielle=, les références aux données-ohjets copiées qui sont encore présentes dans le banc (le mémoire -écé dcmment utilisé sont remplacées par des références renvoyant alX adresses (Lins le IlouveatI banc (le mémoire. La figure 4 illustre une autre forme de réalisation pour obtenir une gestion effi cace (le lit mémoire. La structure de la forme (1e réalisation qui est rellrésentéc sur la tig(ire 4A comprend les registres d'un microprocesseur réel ou vil-ttiel 100. ainsi qu'une mémoire en piles établie de préférence dans la rnémoirc vive, (111ï e=st (1i\ isée cri une pile de mémoire d'opérande 200 et une pile de mémoire de gestion 30r), Le processeur réel " virtuel 100 dispose d'une pluralité de registres. Un premier regïstrc 105 contient ici une variable de pointeur 105, désignée ci-après pointeur d'instruction (11'), qui pointe vers une instruction de programme: #à traiter actuelle ment par le microprocesseur de carte à puce. Un autre registre 110 contient une deuxième variable de pointeur, désignée ci-après pointeur" de pile (Sf'), qui est diri gée vers la pile de mémoire d'opérande 200 et y pointe sur la zone de données opérationnelles de la procédure exécutable par le niicropi"occs,cllr Lie la carte à puce qui est appelée par l'instruction programme qui doit être actuellement traitée. ()il entend par procédure ou méthode un code de données dont le traitement exécute Lille fonction, par exemple un type de calcul de base ou un processus défini. Le pointeur (l'instruction 105 et le pointeur de pile 110 constituent conjointement le contenu minimal d'un groupe registres 120 destiné à décrire l'état d'Lille procé dure. Le bloc 1.10 peut, comme suggère la figure 4A, comprendre d'autre; indica tions, qui sont alors déposées dans des registres supplémentaires correspondants. Un 1"e`_isti"e supplémentaire 115 dans processeur 100 contient une troisième variable (le pointeur. désignée ci-après pointeur de renvoi. qui est dirigée \ ers la pile de mémoire (le gestion 300 et y pointe sur le début du bloc de données qui. après le traitement de l'instruction actuellement traitée, c'est-à-dire après l'exécution clé la procédure respective devant actuellement être traitée, doit être transtéré dans le registre (iii processeur 1t)0. La pile de mémoire d'opérande 200 contient les information, nécessaires pour l'exécution d'Lille procédure ou méthode. Les paramètres associés .'l tille procédure SC tromcnt dans un premier secteur mémoire 205, les variables locales utilisées et produites par tille procédure trouvent dans un deuxiènic secteur 210, et les donnés réalisant la procédure, y compris les résultats intermédiaires obtenus au cour; Lie l'exécution de la procédure, se trouvent dans un autre secteur, la zone de données opérationnelles 215. La zone de données opérationnelles 2 15 petit conipor tel, Lille folle partielle distincte 220, dans laquelle sont déposés, initialement comme ré,llltat intermédiaire de la procédure exécutée, des données (lui sont destinés à être repri;c; par une autre procédure à appeler. Lors de l'appel de l'autre procédure, elles constituent les paramètres de celle-ci, et la zone partielle 220 dc@ lent ainsi 1c secteur de paramètres Lie la procédure appelée. En répétant le principe (le disposition décrit Cl-(ICSSII,, 011 peut trouver" dans la pile de mémoire d'opérande ,(1() les infoi"n1@1tIoil, concernant des procédnrCS supplémentaires. L.1 pile de mémoire de gestion 300 Sert a receloll" pl"o\ I,olrcll1Cr12 (les repro (Itictions 11e i"e,,-i;tres donnés respectifs du processeur 100, en h@lrticlllïer (l'un grolll)C de registres 120, qui décrit l'état d'une procédure et comprend les registres 1(l5 et 11t). .Au début de l'exécution d'un programme par le microprocesseur associé de la carte a puce, la pile de mémoire de gestion 300 est `généralement vide, comme le suggère la figure 4A. La figure 413 illustre la fonction de la pile de mémoire (le ;gestion 30(). 1:11e est utilisée lorsque le pointeur d'instruction 105, au cours (le l'cxéCLttlon (l'un programme. pointe sur une instr-UCtlon qui appelle, a partir- (l'Une p1'c 1111cre procédure act(IC11enlcilt exécutée, une ou deuxième procédure. .Avant le début de l'exécution de la deuxième procédure qui vient d'être appelée, les registres du processeur 1(l0 qui sont nécessaires pour la poursuite de l'exécution du IZrOgranlnle après l'exécution de la procédure appelée sont protégés. A cet , tel. comme le suggère la flèche 340, le groupe de registres 120, qui décrit l'état de la procédure actuelle, appelante, est copié du processeur 10() dans la pile de mémoire 300, et y est déposé comme groupe de registres 320. Le processus de copiage s'accompagne d'une adaptation du pointeur d'instruction 105 ainsi que du pointeur de pile 1 10, qui tient compte de la progression du programme ainsi que de l'occupation de la pile de mémoire 200 à la suite (le l'exécution de la procédure. Dans sa reproduction 3t)5, le pointeur d'instruction est ici réglé, par correction d'une valeur 4 (procédure 1 ). de telle sorte qu'il pointe sur la partie du programme qui kilt suite à l'appel (le la deuxième procédure. La reproduction 310 du pointeur (le pile est récolée de telle sorte (lu'elle pointe soit sur la position 225 d'un paramètre dans la pile de ménloir-e d'opérande oit se trouve une valeur de renvoi R formée par la procédure appelée, soit sur l élément le plus récent de la zone de données opérationnelles 215 de la première procédure, appelante. Lorsque l'état de la première procédure ou méthode, appelante. est protégé dans la pile (le mémoire de gestion 300, on effectue, comme l'illustre la tig(ire 4c, l'implantation des registres du processeur 100 pour exécuter la deuxième procédure, appelée. A cet effet, le pointeur de pile 110 est pointé sur le délllit (le la ro11e (le données opérationnelles 245 (le la deuxième procédure, appelée. La reproduction 310 (lit pointeur de pile dans la pile de mémoire de gestion 3t)0 pointe. confôrinénlent nu ré#Tla-e préalable entrepris lors du copiage, sur un 11,11-,Inlètl-c _225 (le la CICIIXlèlllC procé(ilire ou méthode. Les paramètres 225, 23(l, 235 (le la deuxième procédure. appelée. sont déposés par lit première procédure, appelante, et f-oilt initialement partie (le la 7( 1e (le données opérationnelles 215 de la I ) I-Cr111è1-c 111 oCC(l LI r-c, 11111cI@IlItC. nl;lts ait début de l'exécution (le la deuxième procédure, appelée. les I1;Ira@ll@trc@ 225, 23t1, 235 devicnncnt des variables locales de la deuxième procédure. Le secteur (le paramètres constitue ainsi une zone de chevauchement entre la première procédure, appelante et la deuxième procédure, appelée. Au cours de l'exécution de la deuxième procédure, appelée, des résultat intermédiaires Sont à nouveau produits, qui se trouvent initialement en principe dans la zone de données opérationnelles 245 de la deuxièllle 1)1-OCé(f(ire, appelée. Si deuxième procédure délivre une valeur de renvoi R, celle-ci se trouve également initialement dans la zone de données opérationnelles 245 de la (Ie(lxlellle 11rOCé(Ilire. Au plus tard à la fin de l'exécution de la detlxiènle procédure, la valeur de renvoi R est transmise à la position supérieure 225 du secteur (le paramètre; 220 entre première procédure, appelante et la deuxième procédure. appelée. La reproduction 310 du pointeur de pile dans la pile de mémoire de gestion 300 pointe également Sur la position supérieure 225 du secteur de paramètres 220. Lorsque l'exécution d'une procédure appelée est terminée, le grOUI)e de regis tres 320, déposé dans la pile de mémoire de gestion 300 et indiquant sous une forme adaptée l'état (le 1a procédure appelante, est chargé en retour de la pile de mémoire de gestion 300 dans le processeur 100, COlllllle le Suggère la flèche 35(), COlllol'nlé nient a la position qll'lildi(IUe alors le pointeur de ()lie M, l'exécution dit programme est ensuite poursuivie soit avec la valeur (le renvoi R remise par la prOCé(I(lre appelée, Soit avec l'élément le plus récent de la zone de données opera tionnelles de la procédure appelante. Il est possible qu une deuxième procédure, appelée. appelle elle-même a nouveau une troisième procédure ou méthode, et Cette (Iel-nlel-C une qu@lll'lellle, et ainsi de suite. Dans ce cas, le processeur de la carte à puce exécute à chaque fois les mêmes étapes que lors du premier appel dune deuxième procédure à partir d'une première procédure exécutée. Il copie d'abord le groupe de registres reproduisant l'état actuel (le la procédure appelante, à partir du processeur 100 et en entreprenant une adaptation du pointeur d'instruction et du hOillteul- de pïlc. dans la pile de mémoire (le gestion 300. et y génère un bloc de reproduction 330, qui est disposé en dessous (lu bloc de reproduction 320 de la dernière procédure appelée. lalsuite, le 1)0111teul (le pile dans le processeur 100 est pointe sur la Zone (le données opération nelles (le la nouvelle procédure appelée, et lance l'exécution (le la procédure. L'exécution est achevée par une éventuelle trailslllissiOll et] 1'elOur (l'une Valeur de rcllVO1 R l"1 une position prédéterminée dans le secteur (le paranlétrcs (le la p1-oCé(Itll-c appelante, et par le chargement en retour, de la pile de mémoire Lie gestion dans le processeur 10(i, du groupe de registres adapté 330 décrivant l'état (le la procédure appelant. Le principe décrit à l'aide de la figure 4 peut être prolongé d'une ill@illiére analogue pour- (les appels supplémentaires (le procédures -'l partir (le procédures actuellement exécutées. Le concept gestion de mémoire décrit à l'aide de la figure d possède l'a%-@illt;l(C (111C l'espace de mémoire de travail qui est nécessaire pour l'e\eclltloil (l'un programme peut être réparti sur des mémoires I)Ii1"siqlleiileilt distinctes l ( ) ( ), )(), 3 ( ) ( ). La configuration tecllnique des mémoires l0t), 20(), 31)() peut être adaptée aux e\1@, CI@CCS el`fectives. (Jans des applications oll J'espace mémoire est physique ment très liillite, c' -3-dire particulièrement polir des supports (le données portables sous la l'Orme de cartes a puce, 011 peut ainsi améliorer l'efficacité de l'exécution du programille, par le fait que la mémoire de travail rapide, ft)rtenicnt limitée, n'est chargée que d'opérations qui nécessitent effectivement une mémoire rapide. REVENDICATIONS 1. Ensemble de mémoire pour un support de données portable activable et désactl@ able, qlll est COllçLl polir exécuter des progran7mes de support de données (1111 produisent (les données-objets épbenleres, et q111 permet le reclmr-ement de ces "ogrammes (le support (le données, caractérise cri ce qu'il comprend - LIII premier dlsposltlf` de mémoire (30) polir la nllïe en mémoire \ ollillle de donnes. - ulI deuxième dispositif de mémoire ( 15) pour la mise e11 mémoire 110n volatile (le données, - le premier dispositif de mémoire (30) comportant ail moins Lille Zo11e de mémoire ( 10) dans laquelle se trouvent des informations (20a, 20b, 2f)c 20d) qui indiquent la position et la taille de zones de mémoire (2J1, 2Jb, 25c, établies dans le deuxième dispositif de mémoire ( 15) p0111" l'exécution d'1111 Moins un programme de carte, et - Lille routine de programme, associée ail dispositif de mémoire ( 1-5). définis- sant a nouveau les informations (20a, 20b, 20C, 2()d) présentés (laps 1l 6011e de mémoire (10), a la suite d*un processus de desactIVatlon (111i a pour conséquence l'effacement des co111eilLIS (le données dans le premier dispositif (le mémoire (30), (le telle sorte que les zone; de mémoire (25a. 251 ) , 25c 25d) désignées par ces informations occupent Lille zone de mémoire contiguë dans le premier dispositif de mémoire (30). 2. Ensemble de mémoire selon la revendication 1, car,ictérisé en ce que la redéfinition (les informations (20a, 20b, 20c. 20 (1 ) s'eflèctlle ClUIque lois juste @Illl-ès l'eZIctI\',ItIOn (FUIT support de données désactivé. 3. l'Alselllble de mémoire selon la revendication 1, caractérise cil ce que la -Oflne (le programme effectuant la redéfinition (les irlfôrnlatlollà (21),I, 2l)1 ) , 21)c, 211d) fIiit partie (lu système d'exploitation du support de données. -1. Support de données portable, activable et désactivable, caractérisé h;11- LIII ensemble (le mémoire selon l'une quelconque des revendications 1 à 3. 5. i'rOCédé I ) OUr 2érel- l'ellsellll)le (le IlléillOil-e d'1111 S11pI@01-t (le (101lllées porta ble, activable et désactivable, qui est conçu pour exécuter clés programmes de support de données qui déposent, dans une mémoire de préférence volatile, de, (lori néeS-objets éphénleres dont la position et la taille sont définies par (les lllforllla lions déposées dans une mémoire non volaille, caractérisé en ce que - buste a pi-ès l'activation et/ ou juste avant la désactl%'@itlon (lu support de donnée;, le; informations (20a, 20b, 20c, 20d) conservées dans le deuxième disposi tlf' de illénlolre ( 15) sont redéfinies, la redéfinition s'effectuant (le telle sol-te que les zones (le mémoire (25a, 25b. 25c, 25d) du premier dispositif (le niénioire ( A ) (lui sont désignées par les informations (20a, 20b, 20c. 20d) occupent une colle de illelllolre contiguë. Procédé selon la revendication 5, caractérise cri ce que l'étape (]'actlvatloll est obtenue par liaison avec une source de courant d'exploitation. 1?llselrble de mémoire pour un support de données portable activable et désactivable, qui est conçu pour exécuter des programmes de support (le données qui déposent des données-objets éphémères, et qui permet le rechargement de ces progralnnles de support de données, caractérise cri ce qu'il conlprend - Lui premier dispositif de mémoire comportant une première 7o11( de niénio1Ce (iS0). ainsi qu'un deuxième dispositif' de mémoire comportant Lille deuxième zone de inemolre (90), qui sont respect lveillent prévus pour recevoir ail illolns une donnée-objet (45a, 45b, 45c, 45d) prenant l111 étal actll` (lu passif` cil fonction du déroulement d'un programme (le support de données. l'e\Cclltl()11 d'un programme de support de données s'effectuant initialement cil iltilis respectivement Lin des dispositifs de mémoire (80, 9()), - des moyens pour passer du dispositif de mémoire Utilisé pour l'exécutloll d'un programme de support de données sur l'autre dïspositif (le iliéliloil"C respectif, cri réponse à un évènement prédéfïni, - le changement du dispositif de mémoire mettant cil route une routine de compactage associée à l'ensemble de mémoire, laquelle selon un océdé courant (le regroupement ( garbage collection ), déterniinc (le f@lçoll sélecti\e tolite; les données-objets actives (45b, 45c) (]ans la première folie (le inénioii"c (SU), et les copie de façon contiguë dans la zone de iliénil I"c (9t1) (ils (ICLlvièllle (lispositif'(ie mémoire. 8. Fnsenible de mémoire selon la revendication 7, caractérisé cil ce que le premier 8()) et le deuxième (90) dispositifs (le mémoire sont conçus comme einier et deuxième bancs de mémoire d'un dispositif de mémoire commun. 9. -nsemble de mémoire selon la revendication 7. caractérisé en ce qu'il comporte un dispositif de mémoire intermédiaire (95), dans lequel la routine de conipactage dépose les données-objets actives (45b, 45c). 10. Procédé pour gérer l'ensemble de mémoire d'un support de données porta ble, qui comporte au moins une première (80) et une deu\iérlle (90) zones de mémoire, qui sont respectivement prévues pour recevoir au moins une donnée-objet (45a, 45b, 45c, 45d) prenant un état actif ou passif en fonction (lu déroulenicnt d'un programme de support de données, caractérisé par les étapes suivantes exécution d'un programme de support de données cri utilisant une des zones de mémoire (80, 90), cri réponse à un événement défini, changement de la zone (le mémoire utilise. @iVec exécution consécutive d'un programme de support de donnée; en utilisant la zone (le mémoire précédemment non utilisée, - le cliangeinent de zone de mémoire s'effectuant par le tait que toutes les données-objets actives (45b, 45d) sont copiées (le la prcniière (8t)) dans la deuxième zone de mémoire (90) selon un procédé courant (le regroupement ( g@irb collection ), - toutes les données-objets (45a, 45b, 45c, 45d) de la première zone de mémoire (80) étant rendues inactives, et - toutes les données-objets de la deuxième zone de mémoire (90) étant activées. 1 1. Procédé selon la revendication 10, caractérisé cri ce que les (lonnées-oljet@ copiées (-15b. -15d) sont disposées dans une zone partielle conti(tië (6()a de la dcuménie zone (le mémoire (90). 1 _'. Procédé selon la revendication 10, caractérisé en ce (lue les donnécs-ohjets (4@h, 45d) sont d'aboi-(i copiées dans une nlemoire interinédl;iire (95) rapide Cil ternies (le temps d'accès, et la ré-affectation selon le procédé eniplo@é de re;(7roupc ment ( g arba g e collection ) s'effectue à partir de celle-ci. 1 _ 1,rlsemble de mémoire pour un support de données, caractérisé e11 ce (lu comporte - (les I-egistres associés un processeur (100), qui contiennent au moins tille variable de pointeur (105) pour désigner une instruction (le programme d'un @of?r311n111e a exécuter, ainsi qu'une variable de pointeur ( 110) pour désliller zone (le données opérationnelles (21 5) d'une procédure poll@'alit être @ilil1C1é( dans le cadre du programme, une première pile de mémoire (2()()) pour mémoriser le,, données (le procé dure d'au moins une procédure pouvant être appelée au cours de l'CXécution d'un programme, les données de procédure comportant une zone de données opérationnelles (215) avec des données produisant la capacité d'exécution de procédure, et un secteur de paramètres (205) pour recevoir des paraillétr nécessaires lors de l'exécution de la procédure ; ainsi que - une deuxième pile de mémoire (300) pour recevoir provisoireilleilt, cil prove nance du processeur (100), des registres décrivant l'état (le la procédure appe lante, lorsqu'une autre procédure a été appelée par une 111 océ(lur-c @ICtuellclllellt exécutée dans le cadre de l'exécution du programme. Filsemble de mémoire selon la revendication 13. caractérisé cri ce que les données (le procédure comportent ell outre un secteur (205. 22l1) clans lequel . trouvent (les variables locale; utilisées par la procédure. 5. Lnsenlble de niénloire selon la revendication 13, caractci-isé cri ce (lue les données décrivant l'état d'une procédure appelante comprennent au 1110111s tille var blé (1C pointeur (3()5) pour' désigner une instruction de programme dU cxcClltcr. 111r151 qu'une Variable de pointeur (31t)) pour dcsionel' Lille Poslllon (1@111@ l11 zone (le (données opérationnelles (215) de la 111-océ(lul-c appelarltc. . l":riscnilile de mémoire selon la revendication 13. caractérisé en ce (lue la 1lrCrllièrC et la (ICuXienle zones (200, 300) de la mémoire en piles ;011t Confi(-'llrécs (11311s (les structures de mémoire séparées. 1 ; . Support de données portable, caractérisé par un eliselilllle (le nlél11oirC selon l'une (ltlelcoll(luc des revendications 13 à 1(i. 1 Procédé pour appeler une procédure à partir d'une autre procédure traitée au cours de l'exécution d'r_rn programme, dans un ensemble de mémoire qui est corllill"lndé par microprocesseur et qui comporte des registres associés à un proces seur, qui contiennent au moins une variable de pointeur pour désigner une instruction (le pro,,ramme et une variable de pointeur pour désigner la zone (le données opéra tionnelles d'une procédure, et qui comporte une rllerlloire en piles pour nlénlorisci" des donnée; (le procédure, caractérisé par les étapes suivantes - disposition des données de procédure de la procédure appelante et de la -océdui-c appelée dans une première partie (200) de la inémoirc cil piles, les données de procédure étant respectivement divisées cri une zone de données opérationnelles (2l5) avec des données produisant la capacité d'exécution de procédure, et un secteur de paramètres (205) pour recevoir des paramètres nécessaires lors de l'exécution ; - parant étrage d'une deuxième partie (300) de la mémoire en piles pour rece voir provisoirement des données décrivant l'état d'une procédure appelante, qui proviennent du registre dans le processeur ( l00). - -ansinission des registres décrivant l'état dune procédure @Ihpcl;lrlte du processeur (100) dans la deuxième partie (300) de la mémoire cil piles, lorsqu'une deuxième procédure a été appelée à partir d'une prenlièrc procédure cil cours d exécution, - exécution de la procédure appelée, - -etransnlission dans le processeur (100) des registres translllis dans deuxième partie (300) de la mémoire en piles, à la tin de l'exécution de la procédure appelée. 1 Procédé selon la revendication 18, caractérisé cri ce que les données décri vant l'état (le la procédure appelante sont, lors de la transmission dans la deuxième partie (311t)) de la mémoire en piles, adaptées à la situation de traitement à la suite de l'exéCrrli(Irl (le la procédure appelée. ? l . Procédé selon la revendication 18, caractérisé en ce que les paramètres qui se trouvent dan; le secteur (le paramètres (22()) sont déposés par la procédure appc larlte. 21. Procédé selon la revendication , caractérisé cri cc que, si la procédure appelée délivre une valeur de renvoi (R), celle-ci est déposée sur aile position prédé finic (225) dans le secteur de paramètres (2(15) de la procédure appelée. 22. Procédé selon la revendication 2 , caractérisé en ce que les données décri vant l'état (le la procédure appelante contiennent aci moins une variable de pointeur (M0) (111i pointe vers 1a position prédéfinie du secteur de paramètres (205) qui contient la valeur de renvoi.