FR 2553541 A1 19850419 FR 8316488 A 19831017 Dispositif et procdcé pour le stockage rapide et stable d'informations. La présente invention concerne le traitement des données ou informations, et plus particulièrement leur stockage, lorsque celui-ci doit être effectué avec une haute sécurité. En de nombreuses applications, notamment celles liées à l'informatique répartie, il est souhaitable de disposer de mé10 moires stables. Une mémoire stable est un dispositif de stockage de données qui possède les propriétés suivantes: en premier lieu, le stockage physique de l'information est stable, c'est-à-dire 15 que l'information ne tend pas à disparaître lorsque le temps passe; en second lieu, l'opération d'écriture peut être rendue "atomique", c'est-à-dire que l'on peut être sur qu'une information présentée pour l'écriture est soit écrite correctement, soit pas écrite du tout. 20 Actuellement, les mémoires stables sont construites à partir de disques Bien que les disques ne fournissent pas directement un stockage stable des données, ils permettent d'obtenir un tel stockage stable, en particulier par usage conjoint de deux unités de disques Cette façon de faire présente cependant des inconvénients Le premier inconvénient est que le temps d'accès à une mémoire à disques n'est pas suffisamment court pour qu'une unité de stockage stable fondée sur des disques puisse être considérée comme une mémoire rapide L'autre inconvénient est que l'obtention. du caractère stable de la mémoire passe par la copie de la même information dans deux unités à disques L'exécution de cette double copie par le processeur de commande utilise la mémoire vive de ce dernier Il en résulte qu'une erreur intervenant dans ce processeur entre l'écriture dans l'un des disques et l'écriture dans l'autre disque compromettra 10 le caractère stable du stockage des informations. La présente invention vient résoudre ces inconvénients, en fournissant d'une part un dispositif de mémoire (ou stockage de données) qui soit d'accès rapide et puisse offrir un stockage stable, d'autre part en évitant au maximum l'intervention de la mémoire vive du processeur pour la recopie d'informations dans deux sections de mémoire différentes. Le dispositif de stockage de données proposé comprend, en 20 combinaison: une série de N bancs de mémoire non volatile, adressables de l'extérieur, pourvus de commandes sélectives d'écriture ou de lecture, et des moyens d'accès à clef propres à définir des clefs désignant chacune l'un des bancs de mémoire et à répondre ensuite à l'introduction de l'une-des clefs accompagnée d'une demande d'écriture ou de lecture par une autorisation 30 d'écriture ou de lecture sélectivement applicable au seul banc de mémoire défini par ladite clef, cette autorisation étant détruite après tout adressage d'un banc de mémoire ou par toute introduction d'une nouvelle clef, ce qui permet l'utilisation indépendante de chacun des N bancs de mémoire successivement par des processus différents sans risque d'accès incontrolé. Dans un mode de réalisation avantageux, les moyens d'accès à clef comprennent: une table d'accès à P cellules de N bits, chaque cellule pouvant, en fonction de son index k, recevoir ou délivrer en sortie de la table, un multiplet dont au plus un bit est différent des autres, et une série de N registres de droits d'accès reliés respec10 tivement aux N sorties de la table d'accès, lesquelles habilitent un registre au plus, désigné par le bit différent du multiplet défini par l'index en cours, chaque registre possédant trois états au moins,dont un état de repos ou absence de droit d'accès,ainsi que deux états respectifs de droit d'accès en écriture et en lecture, qui ne peuvent être pris que lorsque le registre est habilité. chaque banc de mémoire étant associé à l'un respectif des registres, de façon a ne répondre à l'adressage exté2 L rieur que si un droit d'accès en écriture ou lecture a été noté dans le registre associé. De préférence, les sorties des registres de droit d'accès sont appliquées à deux multiplexeurs respectifs d'écriture 25 et de lecture adressés selon le numéro du banc de mémoire en cours d'adressage, l'autorisation d'écriture ou de lecture étant donnée aux bancs de mémoire par la sortie du multiplexeur d'écriture ou du multiplexeur de lecture, respectivement. L'invention offre également un procédé de transfert de données entre un processeur et un dispositif de stockage de données tel que défini plus haut Le processeur est supposé chargé d'effectuer plusieurs processus indépendants. 35 Le procédé comporte les opérations suivantes: 255351 ' a) A chaque demande de mémoire nouvelle d'un processus, allouer à celuici un banc de mémoire libre, de rang noté i, et rechercher une clef k associée au rang i du banc, tout en ne communiquant audit processus que la clef k et l'adresse physique du banc, et b) n'exécuter d'opération d'écriture ou de lecture pour ledit processus que précédée d'une instruction d'ouverture d'accès comportant la clef k affectée au processus et la nature, écriture ou lecture, de l'opération, ce qui a pour effet d'autoriser l'accès physique au seul banc désigné, pour l'écriture ou la lecture, respectivement. Il peut arriver que plusieurs processus doivent partager le 15 même banc de mémoire En ce cas, en plus de ladite clef d'accès du dispositif de stockage d'informations, le processeur affecte à chacun des processus partageurs, dans son espace de travail, une clef de crytage respective, laquelle est associée à l'adresse, encryptée par cette clef, de la zone 20 réservée au processus. Très avantageusement, à chaque processus est associé en même temps un couple de zones appartenant à deux bancs de mémoire distincts: chaque opération d'écriture comprend 25 l'écriture dans l'une des zones, dont le registre est en accès écriture, tandis que celui de la seconde zone est sans accès, puis la recopie de la première zone dans la seconde, le registre de la première zone étant en accès lecture, puis celui de la seconde zone en accès écriture, 30 après quoi les deux registres retournent à l'état sans accès: la lecture est faite dans les deux zones, lesquelles doivent impérativement donner le même résultat. Pour obtenir l'écriture atomique, lors d'une anomalie dans l'écriture de la première zone, on arrête, et, à la reprise, on recopie la seconde zone dans la première, l'opération d'écriture n'étant pas faite, tandis que, lors d'une nomalie à la recopie de la première zone dans la seconde, on arrête, et, à la reprise, on recopie à nouveau la première zone dans la seconde, l'opération d'écriture étant faite. En certaines applications, il est souhaitable que le processeur soit ainsi associé à une unité de mémoire à deux disques du type stable Seules les données extraites du dispositif de stockage de données rapide sont alors transférées dans l'unité de mémoire à disques. D'autres caractéristiques et avantages de l'invention apparaltront à l'examen de la description détaillée ci-après, 15 et des dessins annexés, sur lesquels: la figure 1 illustre schématiquement un processeur associé à une mémoire stable rapide et à une unité à disques; la figure 2 illustre schématiquement la structure générale de la mémoire stable rapide; la figure 3 illustre un système de transactions en informatique répartie utilisant des mémoires stables; 25 les figures 4 et 5 illustrent de façon plus détaillée un exemple de réalisation d'une mémoire rapide stable; et les figures 6 et 7 sont deux organigrammes applicables 30 notamment au système de transaction de la figure 3. Les dessins présentent ici des objets de caractère certain. Ils sont à considérer comme incorporés à la description pour contribuer à la définition de l'invention. 2 553541 I Il sera fait référence dans la suite à différents documents, notés comme suit: (BANA-82) (GRAY-78) (GIFF-82) BANATRE M, LAPALME G. ENCHERE: A Distributed Auction Bidding System. 3rd Int Conf Distributed Computing System, (Miami October 82), pp 833,837. GRAY J N. Notes on Database Operating Systems. LCNS 60, Springer-Verlag, ( 1978), pp 393-481. GIFFORD D K. Information Storage in a Decentralized Computer System. CSL-81-8, Xeros Palo Alto Research Center, March 1982. LAMPSON B W, STURGIS H. Crash Recovery in a Distributed Data Storage System. Working Paper, Xerox PARC, November 1976. (LAMP-76) La présente invention s'applique notamment dans un système de transactions commerciales décentralisé, à l'aide de moyens informatiques distribués Certains aspects nécessaires à un tel système ont déjà été décrits (BANA-82). 20 En bref, il s'agit de permettre à des membres d'une organisation comprenant des vendeurs et des acheteurs, d'effectuer des échanges commerciaux, par exemple à la manière de la 25 "vente au cadran" En logique, l'entité de modélisation d'un échange commercial est la transaction. D'une manière générale, les transactions sont supposées posséder trois propriétés essentielles (GRAY-78): 30 i) la consistance ou cohérence: les transactions doivent obéir à des protocoles légaux; ii) l'atomicité: une transaction se produit ou ne se produit pas; 255354-1 iii) la durabilité: une fois qu'une transaction a été validée, elle ne peut plus être annulée. La structure de base du système de transactions est illus5 trée sur la figure 3 Elle comprend une série de processeurs d'application AP, qui ont la charge de traiter les transactions Les usagers, acheteurs et vendeurs, peuvent communiquer avec le système défini par ces processeurs d'application, par l'intermédiaire de stations de travail WP, 10 lesquelles ont pour but de permettre aux acheteurs et aux vendeurs de participer à des transactions Tous les processeurs d'application AP sont connectés à travers des moyens d'intercommunication, ou machine de communication MC Cela permet à des usagers de rejoindre ou de quitter le système, 15 ainsi que de lui communiquer des informations. La réalisation physique de la machine de communication MC peut prendre différentes formes, telles qu'un réseau local ou plusieurs réseaux locaux interconnectés par l'intermé20 diaire d'un réseau national (TRANSPAC ou autres). Le système, nommé ci-après ENCHERE,est constitué de deux niveaux, à savoir le niveau machine et le niveau d'application. Le niveau machine comprend des sites Si, articulés chacun autour d'un processeur d'application AP, des stations de travail WP, et la machine de communication MC. Si l'on considère une station de travail particulière, telle que W Pi, appartenant à un site Sj, c'est-à-dire connectée au processeur d'application A Pj, la station de travail WP. émet des ordres au site Sj, lequel les interprète Parmi ces ordres, une "vente nouvelle" fait démarrer une nouvelle 8 25535541 transaction Pour l'exécution de cette nouvelle transaction, plusieurs processus sont créés, l'un sur le site vendeur, et les autres sur les sites acheteur L'un d'eux, le processus de coordination, représente le vendeur; les autres, les processus esclaves, représentent les acheteurs qui vont participer à la vente Un tel groupe de processus coopérant dans le but d'effectuer une tâche commune, qui est ici la vente d'un produit, est appelé une "activité" Bien sur, plusieurs activités peuvent se dérouler au même moment. 10 Un tel système constitue un exemple du cas o peuvent se présenter deux types d'anomalies: des anomalies dues par exemple au logiciel, qui peuvent conduire à des actions indésirables ayant pour résultat notamment des accès en mémoire non contrôlés; divers types d'anomalies de matériel, dont la plus simple est la perte d'alimentation électrique, et qui peuvent aussi 20 avoir pour résultat des accès en mémoire incontrôlés. L'invention vient résoudre les problèmes exposés plus haut, à l'aide d'une mémoire stable particulière, et de moyens complémentaires éventuels. Une mémoire stable (LAMP-76) est un support d'information qi possède deux caractéristiques essentielles: i) un support physique non volatile, 30 ii) des opérations de lecture et d'écriture atomiques. Généralement le support physique utilisé pour réaliser une mémoire stable est un disque Bien qu'il ne possède pas la caractéristique (ii), il est possible de le programmer à et effet. Dans le système ENCHERE, chaque prooesseur d'application AP (Figure 1) est équipé d'une mémire stable qui contient: les variables stables de prooessus d'activité, qui sont modifiées par l'exécution d' activités atoniques imbriquées et détruites à la terminaison du processus créateur, par exem Dle la variable représentant EA(V) chez un processus, site vendeur EA(V) 10 désigne l'ensemble des acheteurs associés à un vendeur donné pour une transaction donnée; des objets (de type fichier) qui ont une durée de vie supérieure aux processus d'activités atomiques qui y accèdent et 15 les modifient Le catalogue des lots à vendre constitue un exemple de tels objets. Etant observé qu'il est irréaliste de ranger des variables stables sur un disque, principalement à cause de temps d'acce 20 la mémoire stable comporte deux niveaux: une mémoire à accès rapide stable (MRS) réalisée à partir d'une mémoire vive non volatile, pour ranger les variables stables, une unité de disque (UD) qui contient les objets. La mémoire stable rapide est le premier apport essentiel de l'invention. La mémoire stable rapide MRS (Figure 1) fait partie de l'espace d'adressage du processeur d'application AP. Le contenu des variables stables d'un processus dont le processeur AP a la charge est vulnérable aux comportements imprévisibles du processeur résultant d'une panne matérielle 2553541 (coupure de courant,) ou d'une faute logicielle (violation de la protection mémoire,) Pour y faire face, l'invention propose une mémoire MRS dotée de mécanismes de protection matériel et logiciel décrits ciaprès De préférence, le processeur AP utilise ainsi une unité de mémoire à disques UD, comme indiqué plus haut. La mémoire rapide stable MRS est composée de 8 bancs mémoires L'accès en lecture ou écriture à chacun des bancs est 10 protégé par une clé Ceci est illustré sur la figure 2. Sur cette figure: -Bi,if E 1,81 représente un banc mémoire, la taille de ce banc est fixée à 8 K octets, par exemple. 15 -Ri,i E 11,8 l est un registre " 2-bits" associé au banc Bi, il contient les droits d'accès courants du banc ( 00:pas d'accès, 01:accès en lecture seule, 10:accès en écriture seule, 11:accès en lecture et écriture). 20 -AT est une table d'accès de p= 32 octets Le bit j de l'octet k de cette table est positionné à 1 si le banc j de la mémoire est adressable k constitue "tla clé matérielle" d'accès au 25 banc j. Les accès élémentaires à la mémoire rapide stable MRS sont décrits ciaprès: Un processus P du processeur AP qui désire utiliser un banc mémoire doit d'abord l'acquérir en exécutant la primitive Allouer L'effet de cette primitive est, dans le processeur AP: d'allouer un banc libre Bi, i El 1,8 l, il de rechercher une entrée libre k dans la table AT,et positionner le bit i de AT Ekl à 1, de délivrer à P le couple (adr,k), adr étant l'adresse physique du banc et k la clé d'accès à ce banc. P ne peut copier le contenu d'un registre reg à l'adresse y en MRS qu'en exécutant le couple d'instructions suivant: ouvrir (k,E); écrire (reg,x), o x représente l'adresse y sui10 vie du mot à recopier. L'exécution de l'opération ouvrir a pour effet de charger le registre Ri associé au banc Bi (repéré par AT 1 k) avec le 15 droit d'accès "écrire". L'exécution de écrire (reg,x) ne copie le contenu de reg à l'adresse y dans la mémoire rapide stable MRS que si y est l'adresse d'un octet de Bi; dans le cas contraire l'opéra20 tion est rejetée Après l'exécution de l'opération, le banc Bi n'est plus accessible le contenu de Ri est "pas d'accès". Le traitement de la lecture est analogue à celui de l'écriture, à partir du couple d'instructions: ouvrir (k,L); 25 lire (req,x). Les opérations de lecture ou d'écriture d'une zone en mémoir rapide stable seront maintenant décrites. Les opérations de lecture et d'écriture d'une zone en mémoir E rapide stable MRS sont réalisées à partir des accès élémentaires lire ou écrire, chacun d'eux étant précédé d'une opération ouvrir. Dans la suite, il est admis qu'un banc est ouvert en écriture (respectivement lecture) si une opération d'écriture (respectivement de lecture) d'une zone est en cours. Les mécanismes matériels de protection d'accès décrits plus 40 haut assurent d'une part qu'aucun accès direct à un banc mémoire ne peut être effectué et d'autre part que tout accès est fortement contrôlé par l'utilisation de clés d'accès. Ces mécanismes, satisfaisants lorsqu'un banc n'est accédé que par un processus, ne le sont plus si plusieurs processus se le partagent Ils sont alors completes pour éviter qu'un processus, lors d'un accès au banc, n'endommage une zone d'un autre processus sur le même banc. Le mécanisme de protection associé au partage de banc est maintenant décrit Deux processus Pl et P 2 se partagent un même banc de la mémoire rapide stable (ci-après notée MRS). L'invention offre un mécanisme logiciel qui détecte les accès interdits de Pl à la zone des données de P 2 et réciproquement La solution proposée utilise l'encryptage FGIFF-82 l. Le système du processeur AP délivre, à chaque processus qui réserve une zone en mémoire MRS un doublet comprenant une clé d'encryptage et l'adresse de la zone encryptée avec cette clé. Tout accès ultérieur à cette zone ne peut etre fait que par un processus qui possède ce doublet Toute tentative de décryp25 tage, qui conduit à un échec, provoque une faute détectée par le système. Tous les accès définis jusqu'ici ne concernent que l'écriture ou la lecture d'une zone d'un banc de la MRS On décrira maintenant les opérations d'écriture et de lecture atomiques sur la mémoire rapide stable PRS. Le système alloue à chaque processus P implanté sur le processeur d'application un couple de zones (Zi,Zj) appartenant 35 à deux bancs distincts Bi et Bj, de sorte qu'une variable stable de P ait à tout moment deux copies sur deux bancs indépendants. A Ecriture atomique d'une variable stable V de P en MRS. Soient Vi et Vj les adresses de recopie de V sur les bancs Bi et Bj, l'écriture est décrite par l'algorithme suivant: 1-Bi ouvert en écriture Bj sans accès 2-écriture de V sur Vi 3-Bi ouvert en lecture Bj ouvert en écriture 4 écriture de Vi sur Vj -Bi sans accès Bj sans accès. 15 Cet algorithme assure qu'à l'issue de l'étape 5 les deux copies Vi et Vj de V en MRS sont identiques Ceci ne serait pas le cas si l'on effectuait l'écriture de V sur Vi puis l'écriture de V sur Vj, la copie de V en mémoire risquant 20 d'être modifiée suite à une anomalie entre les deux écritures (étapes 2 et 4). Admettant qu'une anomalie survienne à la phase 2, dans ce cas V n'est pas copié sur Vi Le mécanisme de récupération mis en oeuvre par le système assure que le banc Bj sera recopié sur le banc Bi à la reprise L'écriture atomique de V en MRS n'est pas faite. Admettant qu'une anomalie survienne en phase 4, la copie de 30 Vi sur Vj n'est pas effectuée A la reprise Bi est recopiée sur Bj, l'écriture de Vi sur Vj est donc réalisée L'écriture atomique de V en MRS est faite. Une remarque est à faire: Le bon fonctionnement de l'algorithme précédent suppose 255354 t que le passage de l'état (Bi ouvert en écriture _Bj ouvert en lecture) dans l'état (Bi ouvert en lecture Bj ouvert en écriture) est indivisible Dans le cas contraire, à la reprise après une anomalie, le banc Bj (resp Bi) ouvert en écriture est considéré comme inconsistant, il ne peut etre utilisé pour ré-initialiser Bi (resp Bj). B Lecture atomique d'une variable V en MRS. La lecture est décrite par l'algorithme suivant: 1-Bi ouvert en lecture Bj ouvert en lecture 2-si co les contenus de Vi et Vj sont égaux co (les symboles 15 co encadrent un commentaire recouvrant une série d'opérations de test aisément réalisables). Alors: co Vi est copié dans V (en mémoire vive) co sinon co erreur fatale, la modification anormale de Vi ou de Vj 25 n'a pas été détectée co fsi (fin du "si"). 3-Bi sans accès Bj sans accès. 30 Si une anomalie survient pendant le déroulement de la phase 2 l'opération est recommencée à la phase 1. On s'intéressera maintenant à la gestion de l'unité de dis35 que (UD), qui accompagne de préférence la mémoire stable MRS (figure 1). Les seuls objets transférés de l'espace adressable du processeur AP vers i'UD appartiennent à la MRS Les algorith5 mes utilisés pour effectuer la lecture ou l'écriture d'un objet sur 1 'UD sont similaires à ceux décrits dans LLAMP-761. Le fait que seuls les tbjets situés en MRS puissent être écrits sur 'UD assure que les deux copies OD 1 et OD 2 d'un objet O sur i'UD sont identiques (si l'écriture s'est déroulée correctement) En reffet l'objet O en MRS est protégé contre des accès incontrolés Ceci n'est pas le cas dans ELAMP-76 l o l'objet copié sur disque est en mémoire vive, il est donc susceptibli d'etre modifié entre les deux écritu15 res sur disque. En conclusion, il s'a lre que la mémoire rapide stable proposée présente des avanvages décisifs, dont: performance: le tem;ps d'accès aux informations rangées en MRS est très rapide, il n'est que deux fois supérieur au temps d'accès d'infor ations de même taille rangées en mémoire vive Il est'be-ucoup plus faible que celui généralemernt obtenu pour les amoires stables construites à partir 25 d'un disque A titre - e comparaison, le temps d'écriture de 256 octets avec un processeur I 8086 sur la MRS est de 0,5 ms, contre 9 ms pour le système à disques DFS avec des processeurs Alto. Sûreté: la MRS est protégée contre toute tentative d'accès erronés pendant sa mise à jour. Atomicité, tant à l écriture qu'à la lecture, à l'aide des moyens exposés plus haut. 16 255354 1 On décrira maintenant en référence aux figures 4 et 5 un mode de réalisation particulier de la mémoire stable rapide. Les entrées constituant l'instruction primitive, "allouer" 5 ou "ouvrir", suivant le cas, sont appliquées sous forme de huit fils à un tampon d'entrée 40 Cinq fils de sortie du tampon d'entrée 40 vont servir d'adresse à la table d'accès 41. Les trois autres fils de sortie du tampon 40 sont appliqués 10 tout d'abord à un décodeur 42 Le décodeur 42, de 3 en 8, comporte donc huit sorties qui vont servir d'entrées de données à la table d'accès 41 Ainsi, l'instruction d'allouer permet en même temps de définir l'index k par les adresses de la table d'accès 41, et le chargement d'une clé à travers le décodeur 42 Dans la clé, est seul positionné à 1 le bit dont le rang i correspond au banc libre Bl affecté au processus concerné. Les huit entrées-sorties de la table d'accès 41 sont également 20 appliquées à des portes respectives 43, qui, avec N paires de bascules bistables 44, forment les registres Ri précités. Pour l'instruction "ouvrir", la clé K est communiquée en tant qu'adresse à la table d'accès 41 comme précédemment Au lieu 25 d'être appliqués au décodeur 42, deux des trois autres fils issus du tampon 40 vont vers les bistables 44, à raison d'un fil pour chacun des deux bistables d'une même paire En réponse à l'information d'adresse qui lui est appliquée, la table d'accès délivre un bit à 1 sur une seule de ses huit sorties Les portes 43 n'habilitent ou ne valident alors que l'une des paires de bistables 44, qui seule pourra recevoir l'ordre d'écriture ou de lecture transmis par les deux lignes allant du tampon 40 aux bistables 44 L'instruction primitive d'ouverture est ainsi enregistrée dans les bistables 44. 35 Les sorties des bistables 44 sont regroupées, l'un des groupes concernant les bistables d'écriture, et les autres de lecture. Le groupe des lignes relatives aux bistables d'écriture est 17 2553541 appliqué à un multiplexeur d'écriture 45 Le groupe des lignes sortant des bistables de lecture est appliqué à un multiplexeur de lecture 46 Les deux multiplexeurs reçoivent les bits les plus significatifs de l'adresse des bancs de mémoire 5 (ceux qui sont représentatifs des numéros de bancs) , ces bits les plus significatifs étant véhiculés par des lignes notées ADMSB Enfin, les multiplexeurs d'écriture 45 et de lecture 46 fournissent respectivement des autorisations d'écriture notée WSEL et de lecture notée: RDSEL. 10 Sur la figure 5, un tampon noté 50 reçoit le signal de lecture RDSEL Les bancs de mémoire Bl à B 8 sont désignés par les références numériques 51 à 58 Des lignes d'adresses communes à tous les bancs notées ADBM sont appliquées aux bancs de mémoire 51 à 58 Le signal ADMSB déjà cité est appliqué à un décodeur 59, lequel n'active que l'un des bancs Bl à B 8. Chacun de ces bancs reçoit par ailleurs l'ordre d'écriture WSEL (s'il existe) Enfin, les sorties de données des bancs 51 à 58 sont réunies dans une ligne commune qui va vers le 20 tampon 50 Sous le contrôle du signal d'autorisation de lecture RDSEL, le tampon 50 peut délivrer ces données en tant que signal de sortie de données DD. On comprend maintenant qu'un ordre d'écriture ou de lecture 25 relatif à l'un des bancs de mémoire ne sera exécuté que si l'adresse contenue dans cet ordre correspond à ce qui a été défini par l'ordre d'ouverture précédent, tel qu'il a été mémorisé dans les bistables 44, et appliqué aux différents bancs de mémoire à travers les multiplexeurs 45 et 46. 30 On décrira maintenant un exemple avantageux de protocole de validation, qui met en lumière l'utilié de mémoires stables. Il est rappelé qu'une même activité fait intervenir un processus coordinateur, du côté du vendeur, et des processus esclaves, du côté des acheteurs. D'une manière générale, les esclaves envoient sur message "prêt à valider" au coordinateur Lorsque tous les esclaves ont envoyé ce message, le coordinateur peut prendre la dé10 cision de validation. Si un esclave(ou plusieurs)demande que l'activité avorte, alors le coordinateur procède à un tel avortement. Le graphe d'exécution d'un processus coordinateur est illustré sur-la figure 6. La prélude, à l'étape 60, se préoccupe de l'allocation de ressources, notamment l'allocation de canaux L'étape "action" 20 61 effectue l'analyse d'ordres émanant d'autres processus. En fonction de ces-ordres, sont exécutées des séquences spécifiques d'instructions Ensuite, à l'étape 62, le coordinateur reçoit des messages "prêt à valider" des esclaves Lorsqu'il a reçu tous ces messages "prêt à valider", il peut décider (étape 63) de permettre aux esclaves de valider (en envoyant le message "Valide", et ensuite de valider ses propres objets. Si au moins un esclave a eu des difficultés (il n'a pu envoyer le message "prêt à valider"), le coordinateur émet alors un message "avorte" vers tous les esclaves, et efface sa propre version provisoire (étape 64) Dans 30 le cas contraire, la version provisoire devient définitive à l'étape 64. La libération des ressources allouées est effectuée dans l'étape de postlude 65. Les flèches Ci désignent des points de contrôle, o l'état du processus est sauvegardé Si une anomalie intervient entre Ci et Ci+, le processus redémarrera au point Ci Une fois démarrée, l'exécution du postlude doit aller jusqu'à sa fin même s'il faut plusieurs tentatives (le postlude est idempotent). 19 2553541 Le graphe d'un processus esclave apparait sur la figure 7. Ses étapes 70 à 76 A ou 76 B se comprennent d'après le graphe du coordinateur On note l'aiguillage suivant qu'il y a validation ou avortement et l'existence des mêmes points de sauvegarde C (i allant de O à 5). Le comportement en cas d'anomalie est intéressant. Quant au coordinateur, son râle est de détecter le mauvais fontionnement des esclaves (en usant d'un recul approprié) valider ou avorter des activités. Une anomalie peut arriver avant ou après la validation. En présence d'une anomalie avant validation, le système part des représentations des processus sauvegardes en mémoire stable, et effectue les actions suivantes: re-exécution du prélude du coordinateur, ce qui réalloue les ressources requises (canaux, etc) nécessaire pour les inter20 actions entre processus ré-initialisation des variables locales à partir des informations sauvegardées en mémoire stable redémarrage du coordinateur depuis le point Ci, qui est le dernier point de contrdle exécuté par le coordinateur avant 25 l'anomalie. Le coordinateur peut présenter une anomalie après la décision de validation Si l'anomalie intervient pendant que le coordinateur effectuait une 'émission de validé" vers tous ses esclaves, 30 le système effectue les actions suivantes: exécution du prélude du coordinateur, redémarrage à partir du point de contr 8 le C 5. Du côté des esclaves, si une anomalie intervient avant vali35 dation, la reaction de chaque esclave est semblable à celle du coordinateur décrite plus haut. Si une anomalie intervient après que le message de prévalidation ait été envoyé, alors, après exécution de son prélude, l'esclave 40 concerné attend la validation du coordinateur. A noter que les esclaves peuvent soit directement recevoir des messages "avorté" du coordinateur, soit commettre un "suicide". Cette description rapide du système ENCHERE montre bien l'intérêt des mémoires stables, et leur rôle dans les protocoles impliqués pour la validation d'activités. 21 2553541 Revendications. 1 Dispositif de stockage de données, caractérisé en ce qu'il comprend, en combinaison: une série de N bancs de mémoire non volatile, adressables de l'extérieur, pourvus de commandes sélectives d'écriture ou de lecture, et des moyens d'accès à clef propres à définir des clefs désignant chacune l'un des bancs de mémoire et à répondre ensuite à l'introduction de l'une des clefs accompagnée d'une demande d'écriture ou de lecture par une autorisation d'écriture o de lecture sélectivement applicable au seul banc de 15 mémoire défini par ladite clef, cette autorisation étant détruite après tout adressage d'un banc de mémoire ou par toute introduction d'une nouvelle clef, ce qui permet l'utilisation indépendante de chacun des N bancs de mémoire successivement par des processus différents sans risque d'accès incontrôlé. 20 2 Dispositif selon la revendication 1, caractérisé en ce que les moyens d'accès à clef comprennent: une table d'accès à P cellules de N bits, chaque cellule 25 pouvant, en fonction de son index k, recevoir ou délivrer en sortie de la table, un multiplet dont au plus un bit est différent des autres, et une série de N registres de droits d'accès reliés respecti30 vement aux N sorties de la table d'accès, lesquelles habilitent un registre au plus, désigné par le bit différent du multiplet défini par l'index en cours, chaque registre possédant trois états au moins,dont un état de repos ou absence de droit d'accès,ainsi que deux états respectifs de droit d'accès en écriture et en lecture, qui ne peuvent être pris que lorsque le registre est habilité, chaque banc de mémoire étant associé à l'un respectif des registres, de façon à ne répondre à l'adressage extérieur que si un droit d'accès en écriture ou lecture a été noté dans le registre associé. 3 Dispositif de stockage de données selon la revendication 2, caractérisé en ce que les sorties des registres de droit d'accès sont appliquées à deux multiplexeurs respectifs d'écriture et de lecture, adressés selon le numéro du banc 10 de mémoire en cours d'adressage, l'autorisation d'écriture ou de lecture étant donnée aux bancs de mémoire par la sortie du multiplexeur d'écriture ou du multiplexeur de lecture, respectivement. 4 Procédé de transfert de données entre un processeur et un dispositif de stockage de données selon la revendication 1, ledit processeur étant chargé d'exécuter plusieurs processus indépendants, caractérisé par les opérations suivantes du processeur: a) à chaque demande de mémoire nouvelle d'un processus, allouer à celui-ci un banc de mémoire libre, de rang noté i, et rechercher une clef k associée au rang i du banc, tout en ne communiquant audit processus que la clef k et l'adresse 25 physique du banc, et b) n'exécuter d'opération d'écriture ou de lecture pour ledit processus que précédée d'une instruction d'ouverture d'accès comportant la clef k affectée au processus et la nature, écriture ou lecture, de l'opération, ce qui a pour effet d'autoriser l'accès physique au seul banc désigné, pour l'écriture ou la lecture, respectivement. Procédé selon la revendication 4, dans lequel plusieurs 35 processus partagent le même banc de mémoire, caractérisé en ce qu' en plus de ladi e clef d'accès du dispositif de stockage d'informations, le processeur affecte à chacun des processus partageurs, dans son espace de travail, une clef de crytage respective, laquelle est associée à l'adres5 se, encryptée par cette clef, de la zone réservée au processus. 6 Procédé selon l'une des revendications 4 et 5, caractérisé en ce qu'à chaque processus est associé en même temps 10 un couple de zones appartenant à deux bancs de mémoire distincts, en ce que chaque opération d'écriture comprend l'écriture dans l'une des zones, dont le registre est en accès écriture, tandis que celui de la seconde zone est sans accès, puis la recopie de la première zone dans la 15 seconde, le registre de la première zone étant en accès lecture, puis celui de la seconde zone en accès écriture, après quoi les deux registres retournent à l'état sans accès, et en ce que la lecture est faite dans les deux zones, lesquelles doivent impérativement donner le même résultat. 20 7 Procédé selon la revendication 6, caractérisé en ce que, lors d'une anomalie =-ns l'écriture de la première zone, on arrête, et, à la reprise, on recopie la seconde zone dans la première, l'opération d'écriture n'étant pas faite, tandis 25 que, lors d'une anomalie à la recopie de la première zone dits la seconde, on arrête et, à la reprise, on recopie à nouveau la première zone dans la seconde, l'opération d'écriture étant faite, ce qui permet une écriture atomique. 8 Procédé selon l'usne des revendications 4 à 7, dans lequel le processeur est encore associé à une unité de mémoire à deux disques du type stab e, caractérisé en ce que seules les données extraites du dispositif de stockage de données rapide sont transférées dans l'unité de mémoire à disques.