i r —i ^ La présente invention concerne des ordinateurs destinés à traiter des informations et, plus particulièrement, un dispositif permettant d'exécuter sans danger dans un ordinateur des programmes comportant des erreurs, sans fausser les programmes en 5 voie d'exécution et les informations se rattachant à ces programmes qui sont emmagasinées dans la mémoire de l'ordinateur, et sans permettre l'exécution d'opérations non autorisées dans le dispositif. La présente invention concerne, en particulier, un dispositif de protection destiné à restreindre l'utilisation de la mémoi-10 re par un programme pouvant comporter des erreurs afin de protéger et de préserver l'intégrité des programmes en voie d'exécution et des informations mises en mémoire qui s'y rapportent, et pour restreindre l'établissement de communications avec des dispositifs extérieurs par l'intermédiaire d'un programme non corrigé. 15 Dans les ordinateurs, il est souvent souhaitable d'exécuter un programme alors qu'un second programme et les informations s'y rapportant sont encore emmagasinés en mémoire. Par exemple, dans un ordinateur destiné à la conduite de processus industriels, et dans lequel les progranmes en voie d'exécution 20 contrôlent ce processus, on ne peut pas utiliser complètement la capacité de l'ordinateur du fait que le processus contrôlé peut ne pas nécessiter cent pour cent du temps de fonctionnement de l'ordinateur. Cependant, la capacité de calcul doit être disponible si nécessaire. La capacité non utilisée par le programme, appelée 25 temps libre de l'ordinateur, est souvent utilisée pour exécuter un second programme qui peut encore comporter des erreurs . Pendant l'exécution de ce second programme, les programmes en voie d'exécution et les informations qui s'y rapportent, utilisés pour contrôler le processus, doivent être protégés. 30 Certains dispositifs de protection antérieurs ont utilisé une position de bit de chaque emplacement de mémoire pour représenter l'état de cet emplacement, identifiant s'il est disponible ou.non pour le second programme, pouvant comporter des erreurs, qui est en train d'être exécuté. De tels dispositifs sont rela-35 tivement inefficaces du fait qu'ils utilisent une large partie de la capacité disponible totale de la mémoire pour emmagasiner les informations de protection. D'autres dispositifs de protection ont aussi été utilisés, mais n'ont pas été entièrement satisfaisants. Par conséquent, il est souhaitable de réaliser un disposi-40 tif de protection possédant une meilleure efficacité et une plus à 69 04603 grande souplesse. La présente invention se propose de réaliser un dispositif de protection perfectionné pour un ordinateur. La présente invention se propose encore de réaliser un 5 dispositif plus souple, utilisable dans un ordinateur, afin de protéger cet ordinateur contre des opérations non autorisées commandées par des programmes qui peuvent encore comporter des erreurs de programmation. La présente invention se propose encore de réaliser un 10 dispositif de protection pour un ordinateur possédant une meilleure efficacité et une plus grande souplesse de fonctionnement. Le dispositif suivant la présente invention, utilise un mot de protection d'état pour chaque groupe des lignes de 512 emplacements de mémoire. Chaque volume d'emplacement de mémoire est, 15 à son tour, divisé en huit blocs de 64 mots, et les positions des différents bits du mot de protection d'état relatif à un volume, déterminent l'état de protection de chaque bloc de 64 mots. Les mots de protection d'état sont emmagasinés dans des emplacements prédéterminés de mémoire. L'unité arithmétique comporte un regis-20 de mots d'état, appelé registre L, destiné à emmagasiner un mot de protection d'état. Un autre registre, appelé registre V, est destiné à emmagasiner six bits identifiant le volume auquel se rapporte le mot d'état du registre L. Ces dispositifs comportent une bascule qui est dans un état prédéterminé lorsque le programme, 25 pouvant encore comporter des erreurs, est exécuté afin de définir un mode de fonctionnement protégé pour le dispositif. A chaque fois que la mémoire est adressée à partir du registre I ou du registre P de l'unité arithmétique pendant le mode protégé du dispositif, les six bits les plus significatifs de l'adresse sont comparés avec le 30 contenu du registre V pour déterminer si le mot d'état correct est emmagasiné dans le registre L. Si cette comparaison montre que le mot d'état correct n'est pas emmagasiné dans le registre L, les six bits les plus significatifs de l'adresse, sont transférés dans le registre V et la mémoire est adressée à partir du registre V 35 pour transférer le mot de protection d'état relatif à l'emplacement de mémoire adressé à partir de la mémoire jusqu'au registre L. L'adresse de mémoire est utilisée pour choisir les positions de bit correctes du mot de protection du registre L. Les bits d'état choisis sont décodés et appliqués sur des portes logi-40 ques qui reçoivent aussi des informations indiquant le but dans r n ? n 69 04603 3 r- /-. /■> o lequel la mémoire est adressée, c'est-à-dire le prélèvement d'une instruction ou l'exécution d'une instruction, et si une instruction est en train d'être exécutée, ces informations indiquent son identité, l'état de contrôle de séquence dans lequel fonctionne 5 le dispositif, l'existence d'une interruption de programme ou d'autres conditions pour le dispositif. Le circuit logique détermine le moment où une opération non autorisée, constituant une atteinte à la protection du dispositif, est sur le point de se réaliser. S'il y a atteinte à la protection du dispositif, un 10 signal MFVL apparaît, ce qui entraîne la mise en mémoire automatique du contenu du registre I dans un emplacement de mémoire prédéterminé. A la place de l'opération de prélèvement d'instruction normale, le contenu d'un autre emplacement de mémoire prédéterminé est automatiquement transféré vers l'unité arithmétique 15 pour faire débuter une action correctrice. Les positions de bit des mots d'état, assignés à chacun des blocs de 64 mots dans la mémoire, sont capables de définir au moins quatre états de protection, c'est-à-dire accessible, non accessible, accessible seulement pour la lecture ou le pré-20 lèvement d'une instruction, ou accessible pour la lecture ou l'écriture, mais non pour un prélèvement d'instruction. Les instructions ne pouvant pas agir sur le contenu des zones protégées de mémoire, peuvent être exécutées sans discrimination. Pour la plupart des instructions, les atteintes à la protection du dispo-25 sitif dépendent des instructions particulières qui sont exécutées, de l'état de protection de l'emplacement de mémoire adressé et d'autres conditions dans le système. Les atteintes à la protection du dispositif apparaissent pour n'importe quelle instruction qui commanderait normalement des opérations d'entrée/sortie, c'est-à-30 dire des transferts entre la mémoire et un dispositif périphérique de l'ordinateur. Afin d'assurer la liberté d'action des programmes en cours d'exécution, en répondant aux exigences du processus contrôlé, le dispositif laisse automatiquement le mode protégé en réponse à une interruption de programme. 35 La présente invention sera mieux comprise par la description suivante d'une forme de réalisation particulière donnée à titre d'exemple et représentée au dessin annexé, dans lequel : La figure 1 est un schéma de blocs représentant les éléments de mise en mémoire d'informations, les chemins de trans-40 fert des signaux de contrôle et d'information entre ces éléments, 69 04603 f \/y*- r *> O jCm >— / et les éléments de contrôle principaux de l'ordinateur. La figure 2 est un schéma représentant l'organisation du mot de contrôle. La figure 3 est un schéma représentant l'organisation 5 de la mémoire de l'ordinateur de la figure 1 suivant le dispositif de protection de la présente invention. La figure 4 est une représentation schématique d'un emplacement de mémoire contenant le mot de protection d'état associé à chaque volume de mémoire. 10 La figure 5 est un schéma représentant l'organisation d'un mot de protection d'état. La figure 6 est un schéma de blocs représentant la mise en mémoire des informations principales et les éléments logiques utilisés dans le dispositif de protection suivant la 15 présente invention. IXi point de vue de l'organisation générale du système, de l'acheminement des informations, de l'exécution des instructions, de la sélection et de la production des signaux, on ne décrira que ce qui est nécessaire à la compréhension de la présente invention. 20 Les éléments standard ou n'ayant pas de rappott immédiat avec la présente invention ne seront pas décrits. Les éléments des dispositifs suivant la présente invention et les signaux en provenant recevront, pour plus de clarté, des désignations suivant un code arbitraire. En général, les registres et les bascules sont 25 désignés par des lettres majuscules auxquelles sont ajoutés des nombres décimaux représentant les étages ou les durées de fonctionnement de ces étages . Seule la logique sera illustrée puisque l'appareillage est bien connu de ceux qui sont familiers avec cette technique. 30 La façon d'obtenir les différents signaux généralement disponibles dans les ordinateurs, ne sera pas décrite. On peut les obtenir en combinaison avec les signaux de référence par exemple en utilisant l'algèbre de Boole bien connu dans la technique. Les lettres et les nombres arbitraires désignant ces signaux ont été 35 choisis pour éviter toute confusion de terminologie et toute répétition du mot "contrôle". La figure 1 représente schématiquement un ordinateur destiné à contrôler ou surveiller un processus industriel. Les unités principales de l'ordinateur sont l'unité de contrôle ari-40 thmétique, la mémoire à noyaux magnétiques 13, la mémoire de gran- 69 04603 5 ° 0 0 r r ' . X- v_ - / de capacité 14 comprenant une unité d'emmagasinage a disque ou à tambour, l'unité d'interruption automatique de programme 15, le connecteur entrée/sortie 1G, la mémoire périphérique de transit entrée/sortie 16, à laquelle peuvent être reliés des dispositifs 5 périphériques tels qu'une perforatrice de bandes ou de cartes ou un lecteur de bandes ou de cartes . Un contrôleur périphérique 23 peut aussi être relié au dispositif d'aiguillage 12, d'autres dispositifs périphériques communiquant avec la mémoire 11 par l'intermédiaire du contrôleur périphérique 23. Les dispositifs périphé-10 riques peuvent comprendre par exemple des lignes de jonction, des imprimantes à grande vitesse, des lecteurs de cartes, des perforatrices de cartes, des unités de bandes magnétiques, des unités d'emmagasinage sur disque. Les lignes reliant les différentes unités illustrées dans la figure 1 représentent symboliquement les 15 chemins d'informations et le transfert du signal de contrôle dans l'ordinateur. L'ordinateur répond à plusieurs instructions distinctes qui sont fournies dans l'ordre séquentiel nécessaire pour réaliser des fonctions de traitement, de contrôle et de surveillance parti-20 culières. L'unité de mémoire à noyaux magnétiques 13 de la mémoire 11 emmagasine les mots d'information qui doivent être traités, les mots d'information qui sont le résultat du traitement, les mots d'information représentant les paramètres du processus et les autres informations provenant du processus, les mots d'instruction 25 et les mots auxiliaires pour l'adressage et le contrôle. Le dispositif d'aiguillage 12 comprend un circuit de contrôle pour permettre le transfert des informations entre l'unité de mémoire à noyaux magnétiques 13 et l'unité de contrôle arithmétique 10, et entre la mémoire de grande capacité 14 et le contrôleur périphé-30 rique 23. L'unité arithmétique de contrôle 10 contrôle la séquence des opérations requises pour l'exécution des instructions dans les différentes parties de l'ordinateur, réalise les opérations arithmétiques binaires, et sert de trajet pour le transfert des infor-35 mations entre la mémoire 11 et la mémoire périphérique de transit entrée/sortie 16 et le connecteur entrée/sortie 18. L'unité de contrôle arithmétique 10 contient les éléments logiques nécessaires pour accéder à la mémoire 11 et pour réaliser toutes les opérations requises pour l'exécution des instructions. L'unité de 40 contrôle arithmétique 10 communique avec la mémoire 11 pour obtenir 69 04603 6 r- f, f\ r~ r- -y les mots d'instruction afin de mémoriser les mots d'information sur lesquels les opérations ont été réalisées, les mots auxiliaires afin d'obtenir ou de mémoriser les mots d'information représentant les paramètres du processus et les autres informations 5 provenant du processus, et les mots d'information sur lesquels les opérations doivent être effectuées afin d'obtenir des signaux de contrôle pour synchroniser l'unité arithmétique de contrôle 10 avec les opérations de la mémoire 11. La mémoire périphérique de transit entrée/sortie 16 10 communique avec l'unité de contrôle arithmétique 10 par l'intermédiaire du connecteur entrée/sortie 18 et sert d'unité de transit d'informations, de translateur et d'unité de séquence pour les dispositifs périphériques 17. La mémoire périphirique de transit entrée/sortie 16 comprend plusieurs canaux, chacun étant relié à 15 un des canaux des dispositifs périphériques 17 pour effectuer les transferts d'informations entre la mémoire 11 et ce dispositif. On peut employer plusieurs mémoires périphériques de transit entrée/sortie pour communiquer avec l'unité de contrôle arithmétique 10 par l'intermédiaire du connecteur entrée/sortie 13 lorsque '20 les exigences des dispositifs périphériques d'un système particulier dépassent la capacité d'une mémoire périphérique de transit entrée/sortie unique. Le connecteur entrée/sortie 13 est un circuit de communication entre l'unité de contrôle arithmétique 10 et la mé-25 moire périphérique de transit entrée/sortie 16, et entre l'unité de contrôle arithmétique 10 et les dispositifs d'entrée et de sortie reliés au processus commandé et/ou contrôlé. Le connecteur entrée/sortie lo est relié à l'unité de contrôle arithmétique 10 par l'intermédiaire d'un canal entrée/sortie 25. Le connecteur 3C entrée/sortie 18 sert de multiplexeur pour les signaux d'entrée numériques ou analogiques provenant du processus, et de multiplexeur et d'amplificateur pour les signaux de sortie envoyés vers le processus. Les signaux d'entrée peuvent être fournis par des fermetures de contact, des générateurs d'impulsions, ou des dispositifs 35 de mesures. Le connecteur entrée/sortie 18 communique des informations de correction ou d'alarme au processus pour modifier les variables de contrôle du processus ou pour actionner les dispositifs d'alarme ou d'affichage convenables. On peut relier plusieurs connecteurs entrée/sortie à l'unité de contrôle arithmétique 10 si 40 les exigences du système dépassent la capacité d'un connecteur 69 04603 7 2002539 entrée/sortie unique. L'unité de contrôle arithmétique 10 utilise les informations de contrôle emmagasinées dans la mémoire 11 pour décider s'il est nécessaire d'actionner les dispositifs d'alarme ou de contrôle et fournir une information 5 d'alarme ou de contrôle au connecteur entrée/sortie 18. Le connecteur entrée/sortie 18 sert aussi de chemin de transfert pour les informations transmises entre l'unité de contrôle arithmétique 10 et la mémoire périphérique de transit entrée/ sortie 16. 10 L'unité d'interruption automatique de programme 15 détecte et identifie les signaux d'interruption de programme provenant de la mémoire périphérique de transit entrée/sortie 16 et du contrôleur périphérique 23 indiquant qJun dispositif périphérique est prêt à effectuer le transfert d'informations. 15 L'unité d'interruption automatique de programme 15 détecte aussi des signaux qui indiquent des variations de condition dans le processus contrôlé et/ou surveillé. Lorsque des signaux de demande d'interruption sont détectés, l'unité d'interruption automatique de programme 15 entraîne le transfert d'un mot 20 dans l'unité de contrôle arithmétique 10 à partir d'un emplacement de mémoire identifié par l'adresse de mémoire fournie par l'unité d'interruption automatique de programme 15, correspondant à la demande d'interruption ayant la plus haute priorité présente à ce moment. Ce mot peut être un mot d'instruction 25 unique ou la première instruction d'un sous-programme, ou peut être un mot de contrôle pour diriger un transfert d'informations avec un dispositif périphérique. L'unité d'information fondamentale utilisée dans le système décrit est le mot de vingt quatre bits . 30 Les bits compris entre 23 et 0 ont des valeurs significatives qui décroissent successivement. On utilise trois catégories de mots dans l'ordinateur de la figure 1, ces catégories sont : - le mot d'information, 35 - le mot d'instruction, - les mots auxiliaires pour l'adresse et le contrôle. Les mots auxiliaires sont soit des mots d'index soit des mots de contrôle. L'organisation de mots de contrôle est représentée 40 dans la figure 2. 69 04603. 2002539 Pendant les transferts d1 informations entre la mémoire II et certains dispositifs périphériques, les mots d'information binaires transférés sont divisés de façon sélective en deux bytes de douze bits chacun, trois bytes de nuit uits ou quatre bytes 5 de six bits. Dans un bue le commodité, un mot binaire peut être représenté de façon plus compacte par une série d'oc tees dans lesquels chaque chiffre ;ctal représente crois chiffres binaires adjacents . 10 Les opérations pour réaliser le traitement eu le contrôle sont effectuées dans l'ordinateur sous le contrôle d'une série de mots d'instruction, de différents types, e:nma.-asinés dans la mémoire à noyaux magnétiques li et exécutées l'une après l'autre. La séquence dans laquelle les instructions sont exé-15 cutées, est appelée la séquence de programme (ou séquence P) et est contrôlée par un compteur. Le code d'opération d'un mot d'instruction d'opérande complet (bits 23-lû) identifie l'opération ou la partie de programme à réaliser. La zone d'adresse de l'opérande (bits 13-0) 2Q désigne l'adresse d'un emplacement d'emmagasinage de la mémoire 11 à partir duquel est extrait un mot pour le traitement ou le contrôle, ou dans lequel un mot doit être emmagasiné pendant .l'exécution de l'instruction. D'autres mots d'instruction sont utilisés pour faire 25 débuter des sous-programmes qui réalisent des fonctions spéciales, par exemple qui indiquent si une adresse est une adresse finale ou plutôt si une information d'adresse doit être modifiée d'une quantité donnée. La figure 2 représente un mot de contrôle utilisé dans 30 les opérations d'exécution pour transférer les informations d'un dispositif périphérique dans la mémoire 11 (transfert en mémoire TIM) ou pour transférer des informations vers un dispositif périphérique à partir de la mémoire 11 (transfert hors de la mémoire TOM). La zone N (bits 23-18) du mot de contrôle précise, sous 35 une première forme complémentaire, le nombre de mots qui doit être transféré entre le dispositif périphérique correspondant et la mémoire II. La zone N peut désigner jusqu'à soixante trois mots. La zone C (bits 17 et 16) du mot de contrôle précise, à n'importe quel moment donné dans le temps, le nombre de bytes devant encore 40 être transféré entre le dispositif périphérique et la mémoire 11 8ad original 69 04603 9 2002539 pour que le transfert du mot de courant soit complet. La valeur initiale de la zone C est celle de la zone P. La zone P (bits 15 et 14) précise, sous une deuxième forme complémentaire, le nombre de bytes, un, deux, trois ou quatre, dans chaque mot transféré 5 entre le dispositif périphérique et la mémoire 11. La zone Y (bits 13-0) du mot de contrôle précise l'adresse de départ du groupe d'emplacements de mémoire, sauf un, vers laquelle ou à partir de laquelle l'information doit être transférée. 10 Les registres utilisés dans le système sont construits avec des bascules fournissant un emmagasinage temporaire pour un groupe de chiffres binaires d'informations ou de contrôle. Les bascules de chaque registre sont identifiées suivant la désignation du registre et la signification numérique des bits 15 d'informations qui y sont stockés. Ainsi, le flip-flop A23 erana-gasine le vingt-quatrième bit, c'est-à-dire le bit le plus significatif emmagasiné dans le registre A alors que le flip-flop 300 emmagasine le bit le moins significatif emmagasiné dans le registre B. Le mouvement d'informations entre les registres du système 20 s'effectue normalement par transfert parallèle des bits emmagasinés dans les bascules d'un registre jusqu'aux bascules prédéterminées du registre récepteur. Le mouvement d'informations peut aussi être accompli par un décalage série des bits entre certains registres . 25 La mémoire 11 de l'ordinateur peut emmagasiner jusqu'à trente deux mille sept cent soixante huit mots de 24 bits chacun plus un bit de parité. Quelques emplacements de mémoire ajnt réservés à des usages spéciaux par exemple pour fournir un registre arithmétique auxiliaire (registre Q) , des emplacements de 30 mémoire pour la protection contre les réponses erronées, des emplacements pour les informations d'alarme provenant d'erreurs, des emplacements d'emmagasinage de mots de contrôle d1interruption automatique de programme et des emplacements pour des informations semblables. 35 Les éléments d'emmagasinage sont décrits par exemple dans la publication de C.V.L. Smith "£lectronic Digital Computers", Chapitre 12, ilcGraw-Hill Company, Inc., lïew-York 1959. Pour obtenir une information à partir de la mémoire 11, l'adresse appropriée est fournie au registre d'adresse de mémoire oO. Les 40 circuits de décodage d'adresse et les amplificateurs sensibles 69 04603 10 2002539 (non représentés) entraînent le transfert du contenu de l'emplacement de mémoire indiqué à partir de l'unité de mémoire à noyaux magnétiques 13 jusqu'au registre d'informations de mémoire ci, d'une raçon uien connue, rendant le mot d'information accessible 5 à l'unité de contrôle arithmétique 1J. Lors de l'emmagasina-5e d'un mot d'information dans la mémoire à noyaux magnétiques lj, le mot d'inrormation est transféré par l'intermédiaire du dispositif d'aiguillage 12 à partir de l'unité de contrôle arithmétique 10 dans le registre J'infoi™:;-±j tions ui . L'adresse de l'emplacement d'emmagasinage ùdus Icrruil le mot d'information doit être transféré est placée dans le registre d'adresse où. Le dispositif de décodage des adres?2s et les dispositifs de commande d'interdiction (non représentes) de la mémoire il entraînent le transfert du m.-t d'informatisa '=■ 15 registre d'informations vers les noyaux magnétiques de l'emplacement de mémoire indiqué de la mémoire à noyaux magnétiques 13, d'une façon bien connue. Le registre d'adresse 80 est un registre de 15 bits, faisant partie de la mémoire 11, qui reçoit une adresse de 15 bit? 20 par l'intermédiaire du dispositif d'aiguillage 12 indiquant 1'emplacement d'emmagasinage de la mémoire à noyaux magnétiques 13 à partir duquel ou vers lequel un mot d'information doit être transféré par l'intermédiaire du registre d'informations ôl. Le registre d'informations 31 fait aussi partie de la mémoire il, 25 c'est un registre de vingt quatre bits pour emmagasiner temporairement un mot d'informations qui doit être emmagasiné par la mémoire à noyaux magnétiques 13 pendant une opération d'écriture dans la mémoire ou qui provient de la mémoire à noyaux magnéticuea 13 pendant une opération de lecture de la mémoire. Les mots 30 d'informations sont transférés à partir de l'unité de contrSle arithmétique 10 jusqu'au registre d'informations bl par l'intermédiaire du dispositif d'aiguillage 12 alors que les mots d'informations emmagasinés dans le registre d'informations 31 pendant une opération de lecture sont transférés directement dans l'unité 35 de contrôle arithmétique 10. Pendant une opération de lecture la mémoire 11 fournit un signal MDkY j. l'unité de contrôle arithmétique 10 lorsque le mot d'information provenant de l'emplacement de mémoire indiqué est disponible dans le registre d'informations 81. Le signal 40 MLRS est envoyé à l'unité de contrôle arithmétique 10 par la '' bad original 0 69 04603 il 2002539 mémoire il lorsque l'opération de lecture ou d'écriture est terminée. Les signaux MDi\Y et riLivS servent à synchroniser les opérations dans l'unité de contrôle arithmétique iû et les opérations dans la mémoire II . o L'unité de contrôle arithmétique 10 exerce un contrôle des opérations dans l'ordinateur en réponse â différentes instructions distinctes qui lui sont fournies tîar la mémoire il dans l'ordre séquentiel nécessaire pour réaliser un processus ou une jperation de conurole particulier. L'information traitée par j-0 l'unité de contrôle arithmétique 1-J est rournie principalement par la mémoire II. (jette information est haoituellemenc transférée dans ou hors de la mémoire il sous le contrôle de l'unité de contrôle arithmétique lu. L'unité de contrôle arithmétique J.0 (figure 1) comprend 15 les éléments suivants qui ne sont pas tous utilisés dans la présente invention et qui ne sont décrits que très brièvement pour permettre la compréhension du système : le registre BiJU, le registre 1101, le registre AI02, le registre V104, le registre L105, le compteur JlUô, l'additionneur parallèle 110, l'unité de 20 contrôle de séquence 111, l'unité de contrôle d'opérations 112 et les bascules 113 fournissant les signaux de contrôle. Le transfert d'informations entre les éléments du système se fait en parallèle. Le registre 3100 est un registre de vingt quatre bits comprenant les bascules B23-B00. Le registre BlOO emmagasine tous 25 les mots d'instructions et d'informations qui sont transférés vers ou à partir de la mémoire il. Pendant le transfert d'un mot d'instruction à partir de la mémoire il vers l'unité de contrôle arithmétique 10, le code d'opération, les bits d'index et le bit d'adresse du mot d'instruction sont transférés en parallèle à 30 partir du registre BlOO vers le registre 1101 alors que la zone d'adresse du mot d'instruction est transférée en parallèle à partir du registre BlOO vers l'additionneur parallèle 110. Tout le contenu du registre BlOO peut aussi être transféré en parallèle dans l'additionneur parallèle 100. Dans le transfert d'informa-35 tions à partir de l'unité de contrôle arithmétique 10, vers la mémoire 11, le mot d'informations dans le registre BlOO est transféré en parallèle vers le dispositif d'aiguillage 12. Les informations sont alors transférées en parallèle à partir du registre BlOO vers le dispositif d'aiguillage 12, le registre 1101 et 40 l'additionneur parallèle 110. bad original 69 04603 12 2002539 Le registre BlOO peut recevoir, par transfert parallèle, le contenu du registre d'informations 51 et le signal de sortie de l'additionneur parallèle 110, et le registre BlOO peut servir pour l'extension du registre AI02. 5 Le registre 1101 est un registre de 25 bits pour emmagasiner le mot d'instruction qui doit être exécuté par l'unité de contrôle arithmétique 10. Le registre 1101 comprend les bascules 123-100 et IRA. La position de bits supplémentaires a pour but de fournir une capacité d'adressage accrue. Le code 10 d'opération du mot d'instruction peut avoir n'importe quelle configuration parmi plusieurs configurations de bits, chaque configuration dirigeant un processus ou une opération de contrôle fondamentalement différent dans l'ordinateur. Le registre 1101 peut recevoir, par transfert parallèle, le contenu des bascules 15 B23-B14, le registre BlOO, le signal de sortie de l'additionneur parallèle 110et le contenu du compteur J106. Le contenu du registre 1101 est appliqué en parallèle à l'additionneur parallèle 110. Les informations emmagasinées dans les bascules 114-109 sont appliquées en parallèle au registre V104. De même, le 20 contenu des bascules 114-100 est appliqué en parallèle sur le registre P103 alors que le contenu des bascules 104-100 est appliqué sur le compteur J106. Pendant une opération de multiplication, le registre 1101 emmagasine le multiplicande et pendant une opération de division ce registre emmagasine le 25 diviseur. Le registre AI02 est un registre de 24 bits comprenant les bascules A23-AOO. Le registre A102 peut recevoir, par transfert parallèle, le signal de sortie de l'additionneur parallèle 110. Le contenu du registre A102 est aussi appliqué en parallèle 30 sur les entrées de l'additionneur parallèle 110. Le registre A102 emmagasine le premier terme d'une sonne pendant une opération d'addition, le minuende pendant une opération de soustraction et la somme ou la différence à la fin de cette opération. Pendant une opération de multiplication, le registre A102 emmagasine le 35 produit partiel et pendant une opération de division ce registre emmagasine les 24 Dits les plus significatifs du dividende. A la fin d'une opération de multiplication, le" registre A102 emmagasine les 24 bits les plus significatifs du produit et à la fin d'une opération de division il emmagasine les 24 bits du reste. 40 Comme il a été décrit pour le registre BlOO, le registre A102 peut 69 04603 13 2002539 être décalé vers la gauche ou vers la droite. De plus, le registre AI02 peut être décalé avec l'information transmise à la bascule A23 pour chaque position de bit décalé, avec l'information provenant de la bascule AOO ou d'une autre bascule du 5 registre A102. Pendant un décalage vers la gauche, le contenu de la bascule A23 est perdu. Le registre PI03 est un compteur de 15 bits comprenant les bascules P14-P00. La séquence avec laquelle les instructions successives sont exécutées, est contrôlée par le registre P103 qui 10 sert de compteur de progratiroe. Le comptage dans le registre P103 est utilisé pour fournir l'adresse des mots d'instruction dans la mémoire et est augmenté en réponse à l'exécution d'une instruction pour former l'adresse de l'instruction suivante à exécuter. La quantité dont est augmenté le comptage du registre P est dé-15 terminée par le type d'action requise dans l'unité de contrôle arithmétique 10, cette quantité est la suivante : - Séquence de programme normal : le comptage du registre P est augmenté de 1. Saut : le comptage du registre P est augmenté de 2. 20 - Aiguillage : le registre P est décalé d'une quantité précisée par la zone d'adresse de l'instruction d'aiguillage. Le registre P103 peut recevoir, par transfert parallèle, des informations provenant des bascules 114-100 du registre 1101. Le contenu du registre P103 peut être transféré en parallèle vers 25 le dispositif d'aiguillage 12 et vers l'additionneur parallèle 110. Le contenu des bascules P14-P00 du registre Pl03 est transféré vers le registre V104. Le registre V104 est un registre de 6 bits comprenant les bascules V05-V00. Le registre V104 est appelé registre d'adresse 30 de mots d'état ou registre de volume, ces mots d'état représentant le contenu de certains emplacements de la mémoire à njyaux magnétiques 13 et protégeant ce contenu d'un effacement par inadvertance. Ce registre peut emmagasiner jusqu'à 64 mots de protection. Le registre V104 peut recevoir, par transfert parallèle, des infor-35 mations provenant soit du registre P103 soit du registre 1101. Pendant un adressage de la mémoire II, le contenu du registre V104 est utilisé pour déterminer si le mot de protection d'état approprié est disponible ou non pour identifier l'état de protection de l'emplacement de mémoire à l'adresse indiquée. 40 Le registre L105 est un registre de 16 bits comprenant 69 04603 14 2002539 les bascules LI5-LOO. Le registre L105 est utilisé pour emmagasiner le mot d'état de protection approprié qui identifie l'état de protection pour 6 blocs de 64 mots dans des emplacements de mémoire dans la mémoire à noyaux magnétiques 13. Le registre L105 5 peut recevoir, par transfert parallèle, les bits de sortie choisis de l'additionneur parallèle 110. Le compteur J106 est un compteur de 5 bits comprenant les bascules J04-J00. Le compteur J est généralement utilisé pour compter les décalages pendant les opérations de décalage dans l'unité de contrôle arithmétique 10 et 10 est aussi utilisé pendant les opérations de multiplication et de division. Le cçmpteur J106 peut recevoir, par transfert parallèle, des informations provenant du registre 1101. Le contenu du compteur JI05 peut être transféré en parallèle dans le registre 1101. 15 Le registre Q de l'unité de contrôle arithmétique 10 comprend l'emplacement de mémoire 00010o de la mémoire à noyaux magnétiques 13 et est un registre auxiliaire utilisé pour seconder le registre A102 quand il réalise des opérations arithmétiques, et logiques. Le registre Q est utilisé pour emmagasiner le multipli-20 cateur et les bits les moins significatifs d'un produit pendant une opération de multiplication. Pendant une opération de division, le registre Q emmagasine les bits les moins significatifs du dividende et du quotient. Le registre Q peut être utilisé avec le registre A102 pour former un registre de longueur double qui peut 25 être décalé à droite ou à gauche. Le contenu du registre Q peut être directement affecté par certaines instructions. Le compteur parallèle 110 est un compteur parallèle classique de 2h- oits qui réalise toutes les opérations arithmétiques dans l'unité de contrôle arithmétique 10. L'additionneur 30 parallèle 110, peut recevoir, par transfert parallèle, le contenu du registre B1J0, du registre 1101, du registre AI02 et du registre PiwJ. Les signaux de sortie de l'additionneur parallèle 110 peuvent être appliqués au registre B100, au registre 1101, au registre àl02 et au registre L105. L'adaitionneur parallèle 110 35 sert aussi de mémoire de transit pendant les opérations d'entrée/ sortie impliquant des transferts d'informations avec la mémoire périphérique de transit entrée/sortie lô et le connecteur entrée/ sortie lo. Pendant les opérations d'entrée/sortie, l'additionneur parallèle 110 reçoit des informations d'entrée à partir du canal 40 I/O 25 ou canal entrée/sortie 25 et fournit ses informations de 8ad original 69 04603 15 2002539 sortie au canal I/O 25. L'unité de contrôle de séquence iil fournit des signaux d'horloge pour contrôler la séquence et le moment des apparitions des opérations dans l'unité de contrôle arithmétique 10. L'unité 5 de contrôle des opérations 112 répond à l'unité de contrôle de séquence 111, au code d'opération des mots d'instruction dans le registre 1101 par l'intermédiaire de la ligne 110', et au signal de début d'opérations d'entrée/sortie fourni par l'unité d'interruption automatique de programme 15 par la ligne 151, et fournit 10 les signaux de commande et les signaux logiques provoquant l'apparition des opérations et des transferts d'informations appropriés dans l'unité arithmétique de contrôle 10 pour exécuter l'instruction ou réaliser l'opération d'entrée/sortie. L'ensemble des bascules 113 fournissant des signaux de contrôle comprend diffé-15 rentes bascules qui emmagasinent temporairement les signaux utilisés dans le fonctionnement de l'unité de contrôle arithmétique 10. Ils sont branchés convenablement, avec une séquence appropriée, suivant des moyens bien connus non représentés. La mémoire périphérique de transit entrée/sortie 16 de 20 l'ordinateur comprend plusieurs canaux fournissant des chemins de transfert d'informations entre l'unité de contrôle arithmétique 10 et les dispositifs périphériques de l'ordinateur. Chaque canal est relié à un dispositif périphérique et fournit un transfert d'informations dans une seule direction entre l'unité de 25 contrôle arithmétique 10 et le dispositif périphérique. La mémoire périphérique de transit 16 comprend aussi un circuit logique de contrôle pour diriger le transfert des informations, par l'intermédiaire des canaux de la mémoire de transit 16, entre les dispositifs périphériques et l'unité de contrôle arithmétique 10, 30 d'une façon bien connue. Le circuit logique de contrôle reçoit des signaux de l'unité de contrôle arithmétique 10 identifiant l'opération à réaliser dans la mémoire de transit périphérique entrée/sortie 16 et le canal dans lequel le transfert d'informations doit s'effectuer. Lorsqu'un dispositif périphérique relié 35 à la mémoire périphérique de transit entrée/sortie 16 demande des informations à l'unité de contrôle arithmétique 10 ou est prêt à transmettre des informations à l'unité de contrôle 10, le circuit logique de contrôle de la mémoire périphérique de transit entrée/sortie 16 fournit un signal de demande d'interruption de 40 programme approprié à l'unité d'interruption automatique de 69 04603 iô 2002539 programme 15 par des canaux non représentés identifiant le canal qui demande l'interruption du programme. La mémoire périphérique de transit entrée/sortie 16 sert ainsi au transfert des informations de contrôle entre l'unité de contrôle arithmétique 10 et les 5 dispositifs périphériques qui y sont reliés et fait débuter l'interruption du programme principal de l'ordinateur lorsqu'un transfert d'informations est demandé par un dispositif périphérique . Le connecteur entrée/sortie 13 de l'ordinateur comprend 10 plusieurs canaux servant de chemins de transfert pour les informations d'essai, les informations de contrôle et les données entre l'unité de contrôle arithmétique 10 et la mémoire périphérique de transit entrée/sortie 16, et entre l'unité de contrôle arithmétique 10 et les éléments du système associés au processus contrôlé 15 et/ou surveillé comme indiqué schématiquement par la ligne 18'. Le connecteur entrée/sortie 18 comprend aussi un circuit logique pour diriger les transferts d'informations à travers ce connecteur 18 d'une façon prédéterminée. La communication d'informations de contrôle d'essai et de données à partir de l'unité de contrôle 20 arithmétique 10 vers le processus est effectuée par les instructions Gen II. De même, le transfert des informations à partir du processus jusqu'à l'unité de contrôle arithmétique 10 s'effectue par l'intermédiaire de l'exécution des instructions Gen II par le système. Le canal du connecteur entrée/sortie 18 utilisé dans un 25 transfert d'informations est choisi par les signaux d'identification des canaux transmis à ce connecteur entrée/sortie 18. La distribution des opérations dans le temps dans le connecteur entrée/sortie 1S est réalisée par les signaux produits dans l'unité de contrôle arithmétique 10. 30 Le mouvement d'informations entre les registres de l'unité de contrôle arithmétique 10 et les autres opérations sont synchronisés sous le contrôle d'un générateur de signaux d'horloge ou de rythme commun. Ce générateur de signaux d'horloge peut être un oscillateur stable couplé à un circuit convenable de mise en 35 forme d'ondes afin de produire un train d'impulsions rectangulaires uniformément espacées désignées par impulsions d'horloge TCK1 utilisées dans l'ordinateur. Le signal d'horloge de base de l'ordinateur est composé d'une série d'impulsions espacées l'une de l'autre dans le temps d'une durée de 100 nanosecondes, la fréquence 40 d'horloge étant 100 megahertzs. Les impulsions individuelles du 69 04603 train d'impulsions ont une largeur d'environ 25 nanosecondes. Pour contrôler et maintenir la succession des opérations dans un ordre déterminé et efficace dans l'unité arithmétique 10, on prévoit un circuit logique de contrôle de séquence (non repré-5 senté) comprenant cinq bascules de contrôle de séquence désignées par SCI, SC2, SC3, SC4 et SC5 afin de contrôler cinq états de contrôle de séquence s'excluant mutuellement lorsque la bascule appropriée est excitée. Le circuit logique de contrôle de séquence reçoit les signaux d'horloge TCK1 provenant du générateur de 10 signaux d'horloge. Dans l'état 1 de contrôle de séquence, le mot d'instruction emmagasiné dans l'emplacement de mémoire de la mémoire à noyaux magnétiques 13, emplacement qui est identifié par le comptage d'un programme dans le registre P103, est transféré à 15 partir du registre d'informations 81 par l'intermédiaire du registre BlOO au registre 1101 de l'unité de contrôle arithmétique 10. De plus, le comptage de programme du registre P103 peut être augmenté si l'exécution de l'instruction est terminée dans l'état 1 de contrôle de séquence, et un autre mouvement d'informations peut 20 apparaître entre les autres registres. L'état 2 de contrôle de séquence, lorsqu'il est demandé, est introduit lorsqu'une modification de la zone d'adresse d'opérande du mot d'instruction est nécessaire. L'état 3 de contrôle de séquence est normalement 25 introduit à la suite des états 1 ou 2 de contrôle de séquence pendant l'exécution de certaines instructions et pendant la réalisation d'une opération de transfert d'informations. L'état 4 de contrôle de séquence est ensuite introduit pendant l'exécution de la plupart des mots d'instruction et pendant 30 la réalisation d'une opération de transfert d'informations. L'état 4 de contrôle de séquence peut être prolon0é comme cela peut être nécessaire pour certaines commandes et opérations. L'état 5 de contrôle de séquence est introduit après l'état 4 de contrôle de séquence pour certaines instructions et 35 est utilisé pour réaliser certaines fonctions supplémentaires requises par certaines instructions et opérations . L'exécution de ces instructions et la réalisation d'une opération de transfert d'informations sont terminées pendant l'état 5 de contrôle de séquence. 40 Les signaux de contrôle de rythme nécessaires au 2002539 69 04603 2002539 contrôle de la séquence des opérations à l'intérieur de chaque état de contrôle de séquence et réalisant les changements désirés d'un état de contrôle de séquence à un autre sont produits principalement par un compteur de séquence comprenant les bascules, SCA, 5 SC3 et SCC, sous le contrôle des signaux d'horloge TCKl provenant du générateur de signaux d'horloge. Les états de ces bascules SCA, SCB et SCC définissent les périodes spécifiques avec lesquelles les différentes opérations sont réalisées. Un compteur de temps de décalage est relié au compteur 10 de séquence pour réaliser la distribution d'apparition de signaux dans le temps pendant l'extension de la durée normale de l'état 4 de contrôle de séquence. Le transfert d'informations entre la mémoire 11 et le processus contrôlé et/ou surveillé et entre la mémoire 11 et les 15 différents dispositifs périphériques peut être réalisé dans l'ordinateur de trois façons qui sont : - par transferts directs en mémoire (méthode bien connue). - par instruction spécifique de sous-programmes (méthode 20 bien connue) „ - suivant la présente invention, par opérations TIM/TOM c'est-à-dire transfert d'informations en mémoire / transfert d'informations hors de la mémoire. La méthode d'entrée/sortie de transfert direct en 25 mémoire utilise des canaux du dispositif d'aiguillage 12 ; les mots de contrôle emmagasinés dans la mémoire 11 contrôlent les opérations d'entrée/sortie de transfert direct en mémoire. Les instructions spéciales, aussi bien que les opérations TIM/TOM, utilisent le canal d'entrée/sortie (I/O) 25 et l'unité de contrôle 30 arithmétique 10. Le canal I/O 25 fonctionne en parallèle pour les dispositifs périphériques reliés à la mémoire périphérique de transit entrée/sortie 16. Lorsqu'un transfert d1informations avec un dispositif périphérique est demandé, l'adresse de la mémoire de transit et du dispositif approprié est envoyée sur le canal 35 I/O 25 pour commencer le transfert d'informations avec le dispositif approprié. Chaque mémoire de transit demande des ordres à l'unité de contrôle arithmétique 10 par l'intermédiaire du canal I/O 25. Pendant que le canal I/O 25 est utilisé pour effectuer un transfert d'informations avec un dispositif périphérique, ce 40 canal n'est pas disponible pour les autres dispositifs périphé 69 04603 19 2002539 riques pendant la durée de son utilisation réelle par le dispositif périphérique qui est en train de communiquer. Le transfert d'informations entre l'unité de contrôle arithmétique 10 et le dispositif périphérique, par une séquence 5 d'instructions ou sous-programme spécial nécessite des instructions d'exécution pour chaque caractère ou mot transféré par le canal I/O 25. Le registre A102, l'additionneur parallèle 110, le connecteur entrée/sortie 18 et la mémoire périphérique de transit entrée/sortie 16 constituent le trajet de transfert des 10 informations entre le dispositif périphérique de communication et l'unité de contrôle arithmétique 10 pendant l'exécution de n'importe quelle instruction. Il est nécessaire d'exécuter plusieurs instructions du sous-programme pour terminer le transfert d'informations du dispositif périphérique vers la mémoire 11. 15 Le transfert d'informations, suivant la présente invention, utilise aussi le canal I/O 25 et permet un transfert d'informations d'entrée/sortie plus rapide que la méthode utilisant les instructions par sous-programme parce qu'elle élimine les opérations normales d'organisation. Le chemin de transfert des 20 informations entre le dispositif périphérique en communication et la mémoire 11 pendant une opération de transfert d'informations comprend le registre BlOO et l'additionneur parallèle 110 de l'unité de contrôle arithmétique 10, le canal I/O 25 et le canal approprié de la mémoire périphérique de transit entrée/sortie 16. 25 Le contenu du registre A102 et de tous les autres registres de l'unité de contrôle arithmétique 10 n'est pas affecté. Une opération de transfert d'informations d'entrée/sortie comprend une séquence d'événements prédéterminés qui apparaissent automatiquement en réponse à une demande d'interruption de program-30 me provenant d'un des différents canaux choisis de la mémoire périphérique de transit entrée/sortie 16 reliés à différents dispositifs périphériques choisis correspondants. Lorsque l'unité d'interruption automatique de programme 15 autorise la demande d'interruption de programme, cette unité 15 fournit une adresse 35 d'interruption de programme automatique (réponse API). Lorsque la demande d'interruption est acceptée par l'unité de contrôle arithmétique 10, le contenu de l'emplacement de mémoire, identifié par l'adresse obtenue comme signal de réponse, est extrait de la mémoire. Le mot emmagasiné dans l'emplacement auquel se rapporte 40 cette adresse est soit un mot de contrôle de transfert en mémoire 69 04603 20 2002539 (TIM) soit un mot de contrôle de transfert en dehors de la mémoire (TCM) et est utilisé pour identifier les emplacements de mémoire à utiliser, la quantité d'informations à transférer, et l'organisation de l'information transférée, c'est-à-dire le 5 nombre de bytes contenu dans chaque mot de vingt quatre bits . Si un canal fournissant une demande d'interruption de programme à l'unité d'interruption automatique de programme 15 n'est pas associé à un tel mot de contrôle, il n'y aura pas d'opération de transfert suivant la présente invention. 10 Le dispositif de protection suivant la présente invention va maintenant être décrit en détail. lors de l'utilisation du dispositif de protection suivant la présente invention, on distingue les programmes en cours d'exécution qui ont été testés et dont toutes les erreurs de 15 programmation ont été corrigées, et les programmes qui n'ont pas été testés et qui peuvent contenir des erreurs. Le dispositif de protection suivant la présente invention, a une importance particulière lorsque les programmes non testés sont vérifiés dans un dispositif de traitement simultané de programmes, dans lequel 20 on est en train d'exécuter les programmes précédemment testés en même temps que le programme non testé, ou dans un ordinateur de contrôle de processus industriel, dans lequel le temps de fonctionnement qui n'est pas utilisé pour les.programmes en cours d'exécution qui ont été testés, est utilisé pour vérifier les programmes non 25 testés. Dans l'un ou l'autre cas, le programme non testé ne doit pas interférer avec les programmes en cours d'exécution et les informations mises en mémoire qui sont utilisées avec les programmes en cours d'exécution ne doivent pas être modifiées ni détruites. Une telle protection des programmes en cours d'exécution et 30 des informations qui leur sont associées, est particulièrement importante dans les ordinateurs de contrôle de processus industriel, dans lesquels une telle interférence provoquerait la perte du contrôle de l'appareil ou processus contrôlé. Le dispositif de protection, représenté en détail dans 35 la figure o, sera décrit en se référant au dispositif de la figure 1 précédemment décrit. Pour plus de clarté, tous les branchements existant entre les blocs de la figure 1 et de la figure û ne sont pas décrits en détail. D'après la description suivante, la façon dont on a réalisé ces divers branchements sera évidente à ceux 40 qui sont familiers avec cette technique. 69 04603 21 2002539 L'unité de mémoire 13 à noyaux magnétiques de la mémoire 11 comporte 32 768 emplacements de mise en mémoire pour emmagasiner les informations. Suivant le dispositif de protection de la présente invention, l'unité de mémoire 13 à noyaux magnétiques est divisée en soixante quatre volumes, dont chacun comporte cinq cent douze emplacements de mémoire. Les cinq cent douze emplacements de mémoire de chaque volume sont, a leur tour, divisés en huit blocs, dont chacun comporte soixante quatre emplacements de mémoire. Ainsi, l'unité de mémoire 13 à noyaux magnétiques comporte cinq cent 10 douze blocs, groupés en soixante quatre volumes de huit blocs, chaque bloc comportant soixante quatre emplacements de mémoire. La figure 3 est un schéma représentant la division des 32 763 mots de l'unité de mémoire 13 à noyaux magnétiques en cinq cent douze blocs de soixante quatre emplacements de mémoire. Dans 15 la figure 3, les adresses d'emplacements de mémoire sont exprimées en notation octale, par exemple l'emplacement de mémoire identifié par l'adresse binaire OOOOOOOOOOOOOOC est exprimé par OOOOOg avec la notation octale et l'adresse binaire 111111111111111 est exprimée par 77777g, dans la notation octale. Le premier volume, appe-20 lé V^s est constitué par les cinq cent douze premiers emplacements de mémoire, divisés en huit blocs de soixante quatre emplacements de mémoire, comme représenté. Les volumes deux à soixante quatre, appelés sont constitués par des groupes successifs de cinq cent douze emplacements de mémoire, comme représenté dans la 25 figure 3. Un mot de protection d'état de 24 bits est associé à chacun des soixante quatre volumes dans la mémoire comportant 32 768 mots. Comme représenté dans la figure 4, le mot de protection d'état associé au volume est emmagasiné dans l'emplacement 30 de mémoire 00100^, et les mots de protection d'état des volumes V2~Vg^ sont emmagasinés respectivement dans les emplacements de mémoire 00101„- 00177r* Ô o Chaque mot de protection d'état de 24 bits identifie l'état de protection des huit blocs consécutifs de soixante quatre 35 mots contenus dans le volume correspondant. Dans la figure 5, représentant l'organisation d'un mot de protection d'état, les positions de bit 0 et 1 du mot d'état définissent l'état de protection du premier bloc de soixante quatre mots du volume correspondant. Dans la figure 5, les lettres iCX représentent l'une quel-40 conque des combinaisons octales 00-07, 10-17, 20-27, 30-37, 40-47, 69 04603 22 2002539 50-57, 60-67 et 70-77 correspondant aux soixante quatre volumes. Par exemple, les bits 0 et 1 du mot de protection d'état du volume Vg-j définissent l'état de protection des emplacements de mémoire 76000-. - 76077^. La position de bit 2 du mot d'état n'est pas uti-5 lisée. Les positions de bit 3 et 4 du mot d'état définissent l'état de protection du second bloc de soixante quatre mots du volume correspondant. La position de bit 5 du mot d'état n'est pas utilisée. De même, les positions de bit 6 et 7, 9 et 10, 12 et 13, 15 et 16, 1S et 19, 21 et 22, définissent l'état de protection du ;0 troisième, quatrième, cinquième, sixième, septième et huitième bloc de soixante quatre mots du volume correspondant. Les positions de bit 2, 5, G, 11, 14, 17, 20 et 23 sont réservées pour une augmentation du dispositif de protection. Dans une variante, on peut utiliser un mot de protection d'état de 16 bits. 15 Le dispositif de protection suivant la présente invention possède quatre codes de protection pour définir l'état de protection de chaque bloc de soixante quatre emplacements de mémoire. Les quatre codes de protection sont les suivants : 20 Code de protection d'état 11 Ce code indique que le programme en 25 cours d'exécution peut utiliser sans restriction les emplacements de mémoire du bloc de 64 mots correspondant. Le programme en cours d'exécution peut lire le contenu des emplacements de mémoire du oloc, écrire des inrorma- 30 tions dans ces emplacements de mémoire et prélever des instructions à partir de ceux-ci. 4-0 35 01 Ce code indique que le programme en cours d'exécution peut seulement lire des informations à partir des emplacements de mémoire du bloc correspondant ou y prélever des instructions. Des opérations de lecture et de mise en mémoire ne sont pas permises dans le bloc, excepté par l'intermédiaire 69 04603 23 2002539 Code de protection d'état 01 5 10 10 15 20 25 00 30 d'une instruction adressée dans un sous programme. De plus, la mise en mémoire d'informations est toujours permise dans les emplacements de mémoire 00000-,-00017,, qui sont utilisés o o pour emmagasiner les mots d'index et les informations provenant du registre Q. Ce code indique que l'on peut exécuter soit des opérations de lecture, soit des opérations d'écriture dans le bloc correspondant, mais que l'on ne peut pas prélever une instruction dans ce bloc, à moins que ce soit l'instruction d'objet d'un ordre XEC, une instruction d'un sous-programme ou addressé par une interruption automatique de programme. En général, ce code identifie un bloc qui peut être utilisé à n'importe quelle fin sauf pour la mise en mémoire d ' ins truc t ions . Ce code indique que le bloc de mémoire de soixante quatre mots associé est inaccessible pour le programme en cours d'exécution, mis à part que le prélèvement d'une instruction appartenant à un sous-programme est permis que les instructions d'organisation appartenant à un sous-programme peuvent pénétrer dans cette zone, que le prélèvement d'une instruction d'objet d'un ordre XEC est permis, que l'adressage des emplacements de mémoire 00000o-00017Q est permis, et O Ô que le prélèvement ou l'exécution de 69 04603 24 2002539 Code de protection d'état 00 n'importe quelle instruction adressée par une interruption automatiq'j de programme est permis. L'unité arithmétique de contrôle comporte un registre L-105 qui emmagasine temporairement les mots de protection d'état lorsque l'ordinateur fonctionne dans le mode protégé ou dans ur_ 10 mode permettant un déroutement lorsqu'apparait une erreur dans le programme non testé. Un mot de protection d'état provenant de la mémoire, par l'intermédiaire d'un registre d'informations Cl, est mis en mémoire temporairement dans le registre BlOO. Le mot d'état conter-" 15 dans le registre BlOO est envoyé à l'additionneur parallèle II*-qui masque les bits inutilisés du mot d'état de 24 bits et tra'.--fère les seize bits de protection d'état vers le registre L105-Les bascules LOO et LOI, correspondant aux positions de bit O ec 1 du registre L105, emmagasinent les bits d'état pour le premir._ 20 bloc de 64 mots du volume correspondant, tandis que les bascules du registre L correspondant aux positions de bits 2 et 3, 4 et 6 et 7, 8 et 9, 10 et 11, 12 et 13, 14 et 15 du registre L105, emmagasinent les bits d'état correspondant respectivement au second, troisième, quatrième, cinquième, sixième, septième et 25 huitième bloc de soixante quatre mots du volume correspondant. Le registre V104 emmagasine les six bits les plus significatifs de l'adresse du mot de protection d'état contenu dans le registre L105 . Le contenu du registre V104 identifie a-1'"" le volume correspondant au mot d'état emmagasiné, à ce moment, 30 dans le registre L105 . Les six bits emmagasinés dans le regie V104 constituent aussi les six bits les moins significatifs de l'adresse de l'emplacement de mémoire contenant le mot d'état emmagasiné dans le registre L105. Tant que les emplacements de mémoire du volume identifié par le contenu du registre V104 se.:-. 35 adressés, le mot de protection d'état contenu dans le registre LJ. est valable et définit l'état de protection de l'emplacement mémoire adressé. A chaque fois que la mémoire est adressée à partir dn registre P103 ou du registre 1101, lorsque le dispositif foncti^" 40 ne dans le mode protégé, les six bits les plus significatifs de 8ad original 69 04603 25 2002539 l'adresse de mémoire sont comparés avec le contenu du registre V104. Si ces bits sont différents, il existe une "différence de volume" indiquant que le mot de protection d'état contenu dans le registre L105 n'est pas valable et ne définit pas l'état de pro-5 tection de l'emplacement de mémoire adressé. Le contenu du registre V104 est alors ajusté pour correspondre aux six bits les plus significatifs de l'emplacement de mémoire adressé, et le nouveau contenu du registre V104 est utilisé pour obtenir un mot de protection d'état valable à partir de la mémoire pour être emmagasiné "10 dans le registre L105. Si la comparaison montre que le contenu du registre V104 est identique aux six bits les plus sgnificatifs de l'emplacement de mémoire adressé, le contenu du registre V104 et du registre L105 n'est pas modifié. Les six bits les plus sgnificatifs de l'adresse contenue 15 soit dans le registre PI03 soit dans le registre 1101, c'est-à-dire les positions de bit 9 à 14 inclus, identifient un des soixante quatre volumes de l'unité de mémoire 13 à noyaux magnétiques . Ces bits, ainsi que les bits 00100-. par exemple, constituent l'adresse de l'emplacement de mémoire contenant le mot de 20 protection d'état correspondant à ce volume. Ainsi, si le contenu des positions de bits 9 à 14 inclus, de l'adresse contenue dans le registre P103 ou le registre 1101, est 00g, l'emplacement de mémoire contenant le mot d'étàt correspondant à ce volume, c'est-à-dire le volume V.,, est 00100~. De même, si le contenu des 1 (5 25 positions de bit 9 à 14 inclus est 07g, l'adresse de l'emplacement de mémoire contenant le mot d'état pour le volume V,. identifié de cette façon, est 001007„. O Les positions de bit 5 à 8 inclus de l'adresse contenue dans le registre P103 ou le registre 1101 identifient l'un des 30 huit blocs de 64 mots dans le volume défini par le contenu des positions de bit 9 à 14 inclus. Ainsi, comme représenté dans la figure 5, si le contenu des positions de bit 6 à 8 inclus de l'adresse de mémoire est 0o, l'emplacement de mémoire adressé se U trouve dans le premier bloc de 64 mots du volume, et les bascules 35 L00 et LOI du registre L105 contiennent les bits d'état correspondant à ce bloc de 64 mots. De même, si le contenu des positions de bit 6 à 8 inclus de l'adresse de mémoire est 6g, l'emplacement de mémoire adressé se trouve dans le septième bloc de 64 mots du volume, et les bascules L12 et Ll3 du registre L105 contiennent 40 le code d'état correspondant à ce bloc de 64 mots. 69 04603 26 2002539 Les positions de bit 0 à 5 inclus de l'adresse de mémoire contenue dans le registre P103 ou le registre 1101 identifient l'emplacement de mémoire particulier qui est adressé dans le bloc et le volume de mémoire identifiés par le contenu des posi-5 tions de bit 6 à 14 inclus. La figure 6 représente le dispositif de protection suivant la présente invention. Dans la figure 6, si la mémoire est adressée à partir du registre 1101, un signal de commande SAMI est fourni (par des moyens non représentés dans un but de clarté), 10 pour envoyer le contenu des positions de bit 14 à 9 inclus du registre I, représenté par les signaux de sortie FI14-FI09 des bascules correspondantes du registre I, vers les bornes de sortie des portes MA14-MA09 représentées par le bloc 150. Le signal de commande SAMI envoie le contenu des positions de bit 8 à 6 inclus 15 du registre I, représenté par les signaux de sortie FI0S-FI06 des bascules correspondantes du registre I, vers les bornes de sortie des portes MA06-MA08, représentées par le bloc 151. De même, le signal de commande SAMI envoie le contenu des positions de bit 5 à O inclus du registre I, représenté par les signaux de sortie 20 FI05-FI00 des bascules correspondantes du registre I, vers les bornes de sortie des portes MAC5-MA00, représentées par le bloc 152. De même, si la mémoire est adressée à partir du registre P103, un signal de commande SAMP est fourni par des moyens, non représentés, pour envoyer le contenu des positions de bit 14 à 9 inclus, 25 représenté dans les signaux de sortie FP14-FP09 des bascules correspondantes du registre P, vers les bornes de sortie des portes 150. Le signal de commande SAMP envoie aussi respectivement le contenu des positions de bit 8-6 du registre P, représenté par les signaux de sortie FP08-FP06 des bascules correspondantes du regis-30 tre P, et le contenu des positions de bit 5-0, représenté par les signaux de sortie FP05-FPOO des bascules correspondantes du registre P, vers les bornes de sortie des portes 151 et 152. Quelque soit le registre à partir duquel est adressée la mémoire, les signaux de sortie des portes 150 identifient le volume de mémoire 35 contenant l'emplacement de mémoire adressé, tandis que les signaux de sortie des portes 151 identifient le bloc de mémoire, dans le volume de mémoire choisi, contenant l'emplacement de mémoire adressé. Les signaux de sortie des portes 152 identifient l'emplacement de mémoire particulier à l'intérieur du bloc de mémoire 40 choisi. La réalisation particulière des portes 150, 151 et 152 69 04603 27 2002539 n'est pas expliquée en détail ici. Les portes sont d'un type bien connu et peuvent être facilement réalisées, par ceux qui sont familiers avec cette technique, d'après la description de leur fonctionnement. 5 L'adresse de mémoire représentée par les signaux de sor tie MA14-MAOJ des portes 150, 151 et 152, est transférée vers la mémoire par l'intermédiaire d'un dispositif d'aiguillage 12. Ces signaux de sortie MA14-MA09 des portes 150, sont aussi envoyés au registre V104 et aux portes MCM3-MCM1 représentééspar le bloc 155 . 10 On notera que dans la figure 1 les portes 150, 151 et 15 2 n'ont pas été représentées pour faciliter la description. Cependant, en pratique, elles sont branchées entre le registre IIOI et le registre P103, comme représenté dans la figure 6, pour constituer les trajets d'informations nécessaires, comme représenté dans la 15 figure 1. Les signaux de sortie MAO3-MAO6 des portes 151 sont appliqués sur les portes M31X-M3X1 représentées par le bloc 160, sur les portes M21X-M2X1 représentées par le bloc 161, sur les portes M11X-M1X1 représentées par le bloc 162, et sur les portes 20 M01X-M0X1 représentées par le bloc 163. Les six bits les plus significatifs de l'adresse de mémoire, comme représenté par les signaux de sortie MA14-MA09 des portes 150, sont emmagasinés dans le registre V104 en réponse à la production du signal de commande MTAV. Le signal de commande MTAV 25 est fourni par le circuit logique de "différence de volume" 168. Les portes 155 reçoivent les signaux de sortie MA14-MA09 des portes 150 et les signaux de sortie des bascules du registre V104 et comparent le contenu du registre V104, qui identifie le vo lume de mémoire auquel s'applique le mot de protection d'état con-30 tenu dans le registre L105, avec les six bits les plus significatifs de l'adresse de mémoire présente, comme représenté par les si gnaux de sortie des portes 150. Lorsque ces contenus ne sont pas identiques, ce qui indique que le mot d'état contenu dans le régis tre L105 ne s'applique pas à l'emplacement de mémoire adressé, les 35 portes 155 fournissent un ou plusieurs signaux de contrôle MCMl, MCM2 ou MCM3 suivant les signaux d'entrée qui leur sont appliqués. La porte MVDF, représentée par le bloc 165, reçoit les signaux de sortie des portes 155, en plus des signaux MF13, MF14 et MXAQ. La porte 165 fournit des signaux de sortie MVDF si un ou 40 plusieurs des signaux MCM1, MCM2 et MCM3 sont fournis par les 69 04603 28 2002539 portes 155, et si certaines autres conditions sont présentes : 1. Présence du signal MF13, ce qui signifie que l'ordinateur fonctionne dans un mode protégé (MTRK), que la "différence de volume" n'est pas le résultat 5 d'une atteinte à la protection de l'ordinateur (MTRP), que l'ordinateur n'est pas en train de transférer un nouveau mot d'état vers le registre L105 du fait de la "différence de volume" précédemment détectée (MAMV), que la "différence de volume" n'est 10 pas due à une interruption automatique de programme (SPÏI), et 2. présence soit du signal (SC01-MXAQ) , ce qui signifie que l'instruction prélevée à partir de la mémoire n'est pas l'instruction d'objet d'une instruction 15 XEC (XEXC) et n'appartient pas à un sous-programme (XQUA), soit du signal MF14, ce qui signifie que la mémoire est adressée à partir du registre 1101 (SAMI) pendant un état de contrôle de séquence autre que l'état 1 de contrôle de séquence (SCOl) et que 20 cet adressage n'est pas le résultat d'une interrup tion automatique de programme (SPI2), et que l'opérande qui est adressée ne l'est pas dans un sous-programme (MF17) . Si cette dernière condition n'existe pas, c'est-à-dire que l'opérande adressée 25 l'est dans un sous-programme, une fonction d'organi sation, qui ne peut pas interférer avec les programmes en cours d'exécution, est réalisée, et l'état de l'emplacement de mémoire adressé n'a pas besoin d'être vérifié, 30 Le signal de sortie MVDF de la porte 165 est appliqué sur le circuit logique de "différence de volume" 168. Le circuit logique 168 est relié à un générateur de signaux de cadence (non représenté), d'une façon bien connue dans la technique, pour en synchroniser les signaux de sortie. En réponse au signal 1IVDF et 35 à un signal de cadence, un signal de commande I-1TAV est fourni par le circuit logique 163 et envoyé au registre V104 pour transférer les six bits les plus significatifs du registre d'adresse 1101 ou du registre P103 vers le registre VI04. Le circuit logique de "différence de volume" fournit aussi un signal MAMV à l'apparition 40 du signal MTAV et d'un signal de cadence. Le signal MAMV est 69 04603 2 S 2002539 utilisé pour envoyer le nouveau contenu du registre VI0.4 vers les portes 152. Le signal de commande MAMV autorise aussi la porte MAO 5 faisant partie du bloc 151. Le circuit logique 26-1- fournit aussi un signal MLSi. à l'apparition du signal MAMV et d'un signal 5 de cadence, ce signal KLSk mettant toutes les bascules du registre L105 dans leur état excité. Le circuit logique iôC- fournit aussi un signal MALI à l'apparition du signal aAMV et d'un signal de cadence pour envoyer le nouveau mot de protection d'état, obtenu à partir de la mémoire et disponible à la sortie de l'additioa-10 neur parallèle 110, dans le registre L105 . Un signal, non représenté, est fourni en réponse soit au signal MVDF soit au signal MAMV pour maintenir l'unité arithmétique et de contrôle de la figure 1 dans l'état de contrôle de séquence où. il se trouve. Les bascules L15-L00 du registre L105 sont toutes mises 15 à l'état excité ou état "i", en réponse au signal MLSK fourni par le circuit logique de "différence de volume" 16S et au signal de cadence. En réponse au signal L-IaLI fourni par le circuit logique de "différence de volume" loS et à un signal de cadence, le mot de protection d'état est transféré à partir des sorties de l'addition-20 neur parallèle 110 dans le registre L105 . Les signaux de sortie FL14-FL00 et FL14-FL00 sont appliqués sur les portes 160-153. Les portes 160, 161, 162 et 163 reçoivent aussi les signaux de sortie MA0S-MA06 des portes 151. Les signaux de sortie des portes 160-163 sont appliqués sur les portes 170. Les signaux 25 de sortie des portes 160 représentent le code de protection d'état applicable, soit au septième, soit au huitième bloc de 64 mots du volume identifié dans le registre V104, en fonction du bloc de mémoire adressé, comme représenté par les signaux de sortie des portes 151. Les signaux de sortie des portes 151 représentent le 30 code de protection d'état applicable soit au cinquième, soit au sixième bloc de 64 mots du volume identifié dans le registre V104, en fonction du bloc de mémoire contenant l'emplacement de mémoire adressé, comme représenté par les signaux de sortie des portes 151. Les signaux de sortie MlIX et M1X1 des portes 162 représentent le 35 code de protection d'état applicable soit au troisième, soit au quatrième bloc de 64 mots du volume identifié dans le registre V104, en fonction du bloc de mémoire contenant l'emplacement de mémoire adressé, comme représenté par les signaux de sortie des portes 151. Les signaux de sortie MûlX et M0X1 des portes 163 40 représentent le code de protection d'état applicable soit au pre- bad original 69 04603 30 2002539 mier, soit au second bloc de 64 mots du volume identifié dar.s le registre V104, en fonction du bloc de mémoire contenant l'emplacement de mémoire adressé, comme indiqué par les s igna":: de sortie des portes 151. 5 Le signal de sortie MLIX des portes 170 est un "i" binaire si le bit le plus significatif du code de protection ~ état dans le registre L105, applicaole a l'emplacement de mémoire adressé, est un "l" binaire. De même, le signal de sortie MLXl des portes 17U est un "l" binaire si le bit le moins- " 13 du code de protection d'état dans le registre L105, w^lica . _ l'emplacement de mémoire adressé, est un "i" binaire. HaSi. signaux de sortie MLIX et MLXl des portes 170 représentent 1_ de protection d'état applicaole au bloc ce 64 mots du volu:ui_ f_ mémoire, correspondant au mot d'état contenu dans le registre '.'05. 15 et qui contient l'emplacement de mémoire adressé à partir du registre 1101 ou du registre P103. Les signaux de sortie des sortes 170 sont appliqués sur la porte ML11 représentée par le oloc 172, sur la porte ML01 représentée par le bloc 173, sur la MLOO représentée par le bloc 17^- et sur les portes MF04-MF0 20 représentées par le bloc 175 . Le signal de sortie MLii de la porte 172 est un ni binaire si le code de protection d'état applicable est 11. ^ signal de sortie 1-iLOi de la porte 173 est un "i" oinaire si ie code de protection d'état applicable est 01. Le signal de sortie 25 MLOO de la porte 174 est un !,l" binaire si le code de protection d'état applicable est 00. Les signaux de sortie des portes 1/2, 173 et 174 sont appliqués sur les portes 175 . Les portes 175 reçoivent aussi les signaux de sortie des portes HFIù, MF17, HF12 et MF10-MF06, représentées par le bl^.-30 et d'autres signaux fournis par l'ordinateur par des moyens représentés, c'est-à-dire les signaux SC01, 3C04, wDOi, IToK, MTRM, TSCA, SÂFW, DGN2 et MVDA, comme représenté dans la figure 6. Les signaux précédents appliqués sur les portes 175, sont fournis par un circuit logique approprié suivant des conditions particu-35 lières, comme il est bien connu dans la technique. Les portes 175 reçoivent aussi les signaux de sortie MLIX et MLXl provenant des portes 170. Les portes 175 et les portes icO qui leur sont associée définissent, pendant le mode protégé de l'ordinateur, les condi-40 tions pour lesquelles l'adressage de l'emplacement de mémoire iden- 8ad original 69 04603 31 2002539 tifié par le contenu du registre 1101 ou du registre Pl03' est permis et, par conséquent, définissent lorsqu'il y a atteinte à la protection de l'ordinateur. Les signaux de sortie des portes 175 sont appliqués sur la porte MFVL représentée par le bloc 185 . La 5 porte 1S5 est conçue de façon que l'apparition de ce signal de sortie MFVL indique une atteinte à la protection du dispositif si l'un quelconque des signaux de sortie MF04-MF01 des portes 175 est un 111" binaire. Le signal de sortie MFVL de la porte 185 est appliqué sur le circuit logique de protection ou de déroutement 190. 10 Les conditions particulières pour lesquelles apparaît une atteinte à la protection du dispositif et pour lesquelles le signal MFVL est fourni, ne sont pas décrites en détail ici. Il est évident que différentes conditions précédemment décrites, peuvent provoquer une atteinte à la protection et que le système peut être 15 conçu de façon que d'autres conditions, dépendant de l'ordinateur de traitement particulier utilisé, puissent aussi donner naissance à une atteinte à la protection. Le circuit logique de protection ou de déroutement 190 reçoit le signal de sortie de la porte 185. En réponse au signal 20 de sortie MFVL de la porte 185, le circuit logique de protection 190 fournit un signal MTRP qui fait débuter une action correctrice dans l'ordinateur. Lors du fonctionnement, les emplacements de mémoire contenant le programme en cours d'exécution précédemment testé, 25 reçoivent un code de protection d'état 00 pour éviter l'utilisation de ces emplacements par le programme non teste qui peut encore contenir des erreurs. Les emplacements de mémoire contenant des informations utilisées par le programme en cours d'exécution, et devant être protégés de toute modification, reçoivent un code de 30 protection d'état 01 qui permet à un programme non testé de lire une information à partir de ces emplacements de mémoire, mais empêche le programme non testé d'écrire une information dans ces emplacements de mémoire qui ont reçu ce code d'état. La zone d'information réservée seulement à la lecture peut aussi contenir des 35 sous-programmes couramment utilisés. Les emplacements de mémoire contenant le programme non testé recevront normalement, soit un code de protection d'état 11, permettant l'utilisation illimitée de ces emplacements de mémoire, soit un code 01 donnant toute liberté au programme non testé pour lire les informations ou les 40 instructions à partir de ces emplacements de mémoire. Une autre 69 04603 32 2002539 zone cie mémoire peut recevoir le code de protection d'état 10 et servir de zone auxiliaire, à partir de laquelle oa peuc lire des inromations, ou dans laquelle on peut emmagasiner des informations. Cependant, les programmes ne doivent pas être 5 mis en mémoire dans cette zone auxiliaire . Lors gu fonctionnement, une bascule de mise dans le mode protégé TaK (faisant partie des portes 175) esc aise à l'état 1 (par ces moyens non représentés) pour faire fonctionner le dispositif ce protection (l'ordinateur étant alors dans le mode 10 protégé). Dans le mode protégé, l'ordinateur est protégé contre toutes les actions destructrices entraînées par le programme non testé. Dans ce but, tous les accès de mémoire par l'intermédiaire de l'unité arithmétique et de contrôle 110 sont contrôlés, l'utilisation des emplacements de mémoire est contrôlée 15 par le code de protection d'état assigné à ces emplacements, ce qui préserve les zones de mémoire protégées ; des opérations d'entrée/sortie non autorisées sont évitées, et on évite l'entrée de l'ordinateur dans une boucle qui empêcherait de satisfaire d'autres conditions en temps réel. 20 A chaque fois que la mémoire est adressée à partir, soit du registre 1101 soit du registre P103, les six bits les plus significatifs de l'adresse de mémoire, identifiant le volume de mémoire contenant l'emplacement de mémoire adressé, sont comparés au contenu du registre V104 qui identifie le volume de 25 mémoire correspondant au mot de protection d'état emmagasiné à ce moment dans le registre L105 . S'il existe une différence entre les six bits les plus significatifs de l'adresse de mémoire et le contenu du registre V104, ce qui indique que le registre L105 ne contient pas le code de protection d'état 30 applicable à l'emplacement de mémoire adressé, l'un des signaux MCMi, 1.CM2 ou 1ÎCM3 apparaît. En réponse à l'un de ces signaux VlCrii, 1-ICM2 ou MCM3, le signal MVDF apparaît si la "différence de volume" indiquée n'est pas le résultat d'une atteinte précédente à la protection, si un nouveau mot d'état n'est pas transféré vers le registre L105 du fait d'une "différence de volume" précédemment détectée, et si une demande d'interruption de programme n'est pas en train d'être satisfaite. Le signal i-ÎVDS n'apparaîtra pas si, par exemple, la mémoire n'est pas adressée à partir du registre 1101. 40 A l'apparition du signal >IRLS provenant de la mémoire 69 04603 2002539 il, un signal MTAV apparaît, transférant les si:-: bits les plus significatifs de l'adresse de mémoire i partir soit du registre Ilûi soit du registre F1J3 vers le registre V.J^. La bascule A^V du circuit logique lôo est mise à l'état excité pour fournir un signal MAMV, adressant la métaoire à partir du registre ViO^ ec provoquant l'adressage de l'emplacement de mémoire contenant le mot de protection d'état correspondant à l'emplacement de mémoire adressé par l'intermédiaire du signal de sortie MAO6 des portes I5i. Le signal SAMP ou SAMI, suivant celui qui est disponible, devient un "3" binaire du fait que la mémoire est adressée à partir du registre V104. Du fait que le contenu du registre V104 correspond maintenant aux six bits les plus significatifs de l'adresse de l'emplacement de mémoire particulier, le signal MVDF devient un "O" binaire. Le mot de protection d'état adressé à partir du registre V104, est lu à partir de l'unité de mémoire 13 à noyaux magnétiques et transféré du registre d'informations Si au registre BiOO en réponse à un signal de commande. Un autre signal de commande transfère le contenu du registre BlOO vers l'additionneur parallèle 110. Un autre signal de cadence entraîne l'apparition d'un signal MLSr. à la sortie du circuit logique 168, ce signal mettant toutes les bascules du registre L105 à l'état "i". Puis, le signal MixLS apparaît, ce qui entraîne à son tour l'apparition du signal MALI pour transférer les seize bits du code de protection d'état du mot de protection d'état de 24 bits à partir de sorties de l'additionneur parallèle 110 vers le registre L105 . Après que le mot de protection d'état correct a été emmagasiné dans le registre L105, la mémoire est adressée de nouveau à partir du registre 1101 ou du registre P203 pour effectuer l'opération qui a entraîné la détection d'une "différence de volume". Cette fois, on peut terminer l'opération sans qu'il y ait atteinte à la protection ou déroutement. Lorsque le mot de protection d'état correct est contenu dans le registre L105, les bits 6-3 de l'adresse de mémoire indiquant le bloc de 64 mots du volume de mémoire contenant l'emplacement de mémoire adressé, sont utilisés par les portes 160-163 pour choisir le code de protection d'état convenable dans le registre L105 . Les bits du code de protection d'état choisis sont décodés dans les portes 170, 17 2, 173 et 174 et sont utilisés par les portes 175 pour vérifier s'il y a atteinte à la protection. En général, une atteinte à la protection est détectée : 8ad original 69 04603 34 2002539 a. Si l'emplacement de mémoire adressé se trouve dans une zone inaccessible (code d'état 00), si une instruction appartenant à un sous-programme est exécutée et que l'opérande n'est pas adressé dans ce sous-programme, ce qui indique que l'opération n'est pas une opération d'organisation, si l'opérande était adressé dans ce sous-programme, l'opération d'organisation serait effectuée sans affecter la sécurité du dispositif et aucun déroutement n'apparaîtrait (MF04) . b. L'emplacement de mémoire se trouve dans une zoor inaccessible (code d'état 00) et le dispositif se trouve soit dans l'état 3 de contrôle de séquence, soit dans l'état 2 de contrôle de séquence, exécutant un ordre LDX, cependant, si l'opérande est adressé dans un sous-programme, une opération d'organisation est indiquée et aucun déroutement n'apparaît (MF17) . c . L'emplacement de mémoire se trouve soit cL:ns une zone inaccessible, soit dans une zone où seule la lecture est autorisée (code d'état 00 ou 01), le dispositif est dans l!état 2 de contrôle de séquence exécutant une instruction DMT ou dans l'état 3 de contrôle de séquence exécutant une instruction STQ, à moins que les opérandes des instructions soient adressés dans un sous-programme, indiquant une opération d'organisation (MF02) . d. L'emplacement de mémoire se trouve dans une zone inaccessible ou dans une zone lecture/écriture (code d'état 00 ou 10) c'est-à-dire qu'une instruction est prélevée à partir de la mémoire et qu'elle n'est pas une instruction d'objet d'un ordre XEC et n'est pas une instruction d'un sous-programme (MF03) « e. L'emplacement de mémoire adressé se trouve dans une zone où seule la lecture est permise (code d'état Oi), l'ordre STA est en train d'être exécuté et, si l'ordre appartient à un sous-programme, l'opérande n'est pas adressé dans ce -9-ôus—p* ogramme—et—l-'-opé-r-a t ionpa r- c onséqueat— n-ie&fc—pas une opération d'organisation (MF02) . 3ien que les conditions mentionnées ci-dessus soient particulières à la forme de réalisation représentée, on peut y apporter toutes modifications en fonction des exigences de protection d'un ordinateur donné. Dans la forme de réalisation représentée, les conditions mentionnées pour une atteinte à la protec- BAD ORPWAk 69 04603 -5 2002539 tion du dispositif, servent à protéger de façon efficace ce dispositif contre les erreurs qui peuvent exister dans un programme non testé. Lorsque le mot de protection d'état correct a été obtenu 5 à partir de la mémoire et emmagasiné dans an registre L105, si on avait détecté une ''différence de volume", le code de protection d'état applicable à l'emplacement de mémoire adressé est vérifié. Si l'une quelconque des portes MF01-MF04, faisant partie du bloc 175, est mise à l'état excité, ce qui indique une atteinte à la 10 protection de l'ordinateur, la porte 185 fournit le signal MFVL. Le signal MFVL interdit certaines opérations dans l'unité arithmétique et de contrôle afin d'éviter l'interférence du progranme non testé avec les programmes en cours d'exécution. Par exemple, l'emmagasinage d'informations dans la mémoire peut 15 être interdit. Puis la bascule de protection appartenant au circuit logique 190 est mise à l'état "l", ce qui entraîne l'apparition du signal MTRP. Le contenu du registre 1101 est alors envoyé à l'entrée de l'additionneur parallèle 110 et des signaux de commande sont fournis pour transférer les signaux de sortie de 20 l'additionneur parallèle 110 vers le registre BlOO, ce qui complète le transfert du contenu du registre 1101 vers le registre BlOO. Des moyens, non représentés, fournissent alors un signal permettant une opération d'écriture .dans la mémoire. Les portes MAOO et MA04 sont autorisées par le signal MTRP pour adresser l'empla-25 cernent de mémoire 00021g, ce qui provoque la mise en mémoire, dans l'emplacement de mémoire 00021^, du contenu du registre 1101 qui a été transféré dans le registre B100. L'ordinateur passe ensuite dans l'état 1 de contrôle de séquence. La porte MA04 est autorisée par le signal MTRP 30 pour fournir l'adresse de l'emplacement de mémoire 00020.- au registre d'adresse 80. Le contenu de l'emplacement de mémoire 00020g comporte un ordre SPB' pour faire débuter l'exécution d'un programme correcteur. L'ordre SPB est transféré vers l'unité arithmétique et de contrôle et les bascules de mise dans le mode 35 protégé et de déroutement sont remises à l'état de repos. On exécute alors un programme d'erreur pour corriger la condition qui a fait apparaître une atteinte à la protection. Le dispositif de protection pour ordinateur suivant la préseuce invention, réalise une protection efficace et fiable 40 des programmes en cours d'exécution, et des informations qui y bad original 69 04603 J ^ 2002539 sont: associées, toui; en permettant que l'information de protection d'état pour tous les emplacements de mémoire soit emmagasinée dans une zone relativement peu importante ce la mémoire. La possibilité pour Its dispositifs de protection de faire la distinction entre différents types u ' ins truc c ions et de fournir au moins quatre états ce protection, augmente la souplesse de fonctionnement du dispos;:if„ La disponibilité d'un troisième bit de protection d'état Jur chaque bloc ce 64 mots, permet d'augmenter la capacité du dispositif pour obtenir huit états de protection pour chaque bloc. Le dispositif de protection pour ordinateur suivant la présente invention, empêche toutes les opérations d'entrée/sortie pendant l'exécution d'un programme non testé afin de protéger efficacement les programmes et les informations mis en mémoire et d'assurer qu'aucune action de commande non autorisée ne pourra s'effectuer. La satisfaction des interruptions de programme n'est pas restreinte puisque les dispositifs laissent automatiquement l'ordinateur en mode protégé, ou en mode permettant un déroutement, en réponse à une interruption de programme. Le dispositif protège aussi contre l'apparition de boucles qui peuvent être provoquées par un programme non testé interférant avec l'exécution du programme en cours, permettant ainsi la satisfaction des conditions en temps réel de l'ordinateur. Bien que la présente invention ait été décrite à l'aide d'un montage particulier, il est évident, pour ceux qui sont familiers avec cette technique, que l'on peut apporter différentes modifications dans la structure, le montage, le nombre de bits utilisés, les éléments, les matériaux et les composants qui ont été choisis ici pour un dispositif et des conditions de fonctionnement particuliers . bad original 69 04603 37 2002539 - REVENDICATIONS - 1. Dispositif de protection pour un ordinateur comportant une mémoire possédant plusieurs emplacements de mémoire pour emmagasiner des mots d'information et d'instruction, et une unité arithmétique pour communiquer avec la mémoire et pour traiter 5 les informations sous la direction des mots d'instruction, cette unité arithmétique possédant au moins un registre destiné à mémoriser une adresse d'un emplacement de mémoire, caractérisé par le fait qu'il comporte un dispositif de mise en mémoire pour emmagasiner plusieurs codes d'état, chacun de ces codes s'appliquant 10 à différents emplacements de mémoire choisis, et un circuit de protection répondant à l'information mise en mémoire dans le registre et au code d'état applicable contenu dans le dispositif de mise en mémoire des codes pour déterminer si la communication entre l'unité arithmétique et l'emplacement de raëmc _re identifié par 15 l'adresse contenue dans le registre sera permise ou non. 2. Dispositif de protection suivant 1, dans lequel le registre mémorise l'adresse d'un mot d'instruction à exécuter, caractérisé par le fait que le circuit de protection répond en fonction du type du mot d'instruction et du code d'état "applicable 20 pour déterminer si la conmunication peut être établie. 3 . Dispositif de protection suivant i, caractérisé par le fait qu'il comporte des moyens indiquant si l'adresse contenue dans le registre doit être utilisée ou non pour obtenir un mot d'information ou d'instruction à partir de la mémoire, le circuit 25 de protection répondant à ces moyens et au code d'état applicable pour déterminer si la communication peut être établie. 4. Dispositif de protection suivant 2, dans lequel le mot d'instruction mis en mémoire dans le registre rait partie d'un premier, second ou troisième type, caractérisé par le fait que le 30 circuit de protection comporte des circuits logiques répondant à une instruction du premier type, emmagasinée dans le registre pour permettre l'exécution de l'instruction par l'ordinateur, des circuits logiques répondant à une instruction du second type contenue dans le registre pour interdire l'exécution de l'instruction 35 dans l'ordinateur, et des circuits logiques répondant à une instruction du troisième type contenue dans le registre, et au code d'état applicable contenu dans le dispositif de mise en mémoire des codes soit pour autoriser, soit pour interdire l'exécution de 69 04603 2002539 l'instruction du troisième type. 5. Dispositif de protection suivant 4, dans lequel les mots d'instruction contiennent une adresse d'opérande, caractérisé par le fait que les circuits logiques répondent au code d'état, 5 contenu dans le dispositif de mise en mémoire des codes, applicable à l'emplacement de mémoire identifié par l'adresse d'opérande de l'instruction. 6. Dispositif de protection suivant 5, caractérisé par le fait que le code d'état applicable à l'emplacement c - mémoire 10 peut être choisi parmi quatre codes différents, le premier coda interdisant l'accès de l'emplacement de mémoire, le second code perisectant l'accès de l'emplacement de mémoire, et les troisième . at quatrième codes autorisant ou interdisant l'-accès de- l'empla- --cernent de mémoire adressé suivant l'instruction particulière qui 15 est exécutée. 7. Dispositif de protection suivant 4, faisane partie d'un ordinateur, comportant plusieurs organes périphériques destinés à recevoir ou à transmettre des informations à partir de l'unité arithmétique ou vers celle-ci, caractérisé par le fait 20 que les instructions du premier type, transfèrent les informations vers des organes périphériques ou à partir de ces derniers, que les instructions du second type n'affectant pas le contenu des emplacements de mémoire ou affectent seulement le contenu des emplacements de mémoire non protégés, et que les instructions du 25 troisième type pernsettent les opérations de lecture ou d'écriture affectant les emplacements de mémoire identifiés par le contenu de la zone réservée à l'opérande dans le mot d'instruction. 8. Dispositif de protection suivant 1, caractérisé par le fait qu'il comporte des moyens de blocage pour arrêter le fonc- 30 tionnement du circuit de protection. 9. Dispositif de protection suivant 1, caractérisé par le fait que le circuit de protection comporte des moyens qui fournissent un signal si la communication entre l'unité arithmétique e-t—l'emplacement de mémuiie adressé es L inLexd±te~;—l'ordinateur 35 répondant à ce signal pour interdire l'accès de cet emplacement de mémoire . 10. Dispositif de protection suivant 9, caractérisé par le fait que l'ordinateur fait débuter une action correctrice en réponse à ce signal. 69 04603 o9 2002539 11. Dispositif de protection suivant 9, faisant partie d'un ordinateur comportant un dispositif d'interruption de programme permettant 1'interruption de l'exécution du programme principal par l'intermédiaire de l'unité arithmétique, caractérisé par le 5 fait que le circuit de protection comporte des moyens répondant à une interruption de programme amorcée par le dispositif d'interruption de programme pour arrêter le fonctionnement du circuit de protection . 120 Dispositif de protection suivant 2, caractérisé par 10 le fait que le premier état du code permet un accès illimité à l'emplacement de mémoire correspondant, que le second état du code ne permet pas l'accès de l'emplacement de mémoire correspondant, que le troisième état du code permet le transfert du contenu de l'emplacement de mémoire correspondant à partir de la mémoire vers 15 l'unité aritlcnétique et que le quatrième état du code permet le transfert d'informations vers ou à partir de l'emplacement de mémoire correspondant, mais ne permet pas le transfert d'une instruction à partir de cet emplacement de mémoire vers l'unité arithmétique, le circuit de protection fournissant un signal lorsqu'il y 20 a atteinte à la protection de l'ordinateur, et l'ordinateur répondant à ce signal pour interdire l'exécution de l'instruction, contenue dans le registre, dans l'unité arithmétique. 13. Dispositif de protection suivant i, dans lequel plusieurs mots de protection d'état sont mémorisés dans des empla-25 cements particuliers de la mémoire, chaque mot de protection d'état comportant plusieurs codes d'état, et chaque code étant applicable à des emplacements différents de la mémoire, caractérisé par le fait que le circuit de protection comprend un registre de volume destiné à mémoriser le met identifiant les emplacements de mémoire jj auxquels sont applicables les codes d'état contenus dans le dispositif de mise en mémoire des codes, des moyens destinés à comparer l'adresse contenue dans le registre d'adresses avec le contenu du registre de volume et à fournir un signal si l'adresse contenue dans le registre d'adresses ne correspond pas aux emplacements de 35 mémoire identifiés par le contenu du registre de volume, un circuit logique répondant au signal fourni par les moyens de comparaison pour transférer, à partir du registre d'adresses au registre de volume, le mot identifiant les emplacements de mémoire qui correspondent à l'emplacement de mémoire indiqué par l'adresse conte-40 nue dans le registre d'adresses, des circuits de transfert 69 04603 40 2002539 répondant au contenu du registre de volume pour transférer, à partir de la mémoire vers le dispositif de mise en mémoire des codes, le mot de protection d'état applicable à l'eroplacernent de mémoire identifié par l'adresse contenue dans le registre d'adres-5 ses, et des moyens de contrôle, répondant au code d'état, du mot de protection d'état mis en mémoire, applicable à l'emplacement de mémoire identifié par l'adresse contenue dans le registre d'adresses pour contrôler l'accès, pour l'unité arithmétique, vers l'emplacement de mémoire identifié par l'adresse contenue dans le 10 registre d'adresses. 14. Dispositif de protection suivant 13, caractérisé par le fait que le circuit logique, répondant au signal fourni par les moyens de comparaison, répondent aussi au contenu du registre d'adresses pour entraîner la modification du contenu du registre 15 de volume pendant l'opération de transfert effectuée par les moyens de transfert, des moyens de décodage répondant à l'adresse contenue dans le registre d'adresses pour choisir, parmi les codes d'état mis en mémoire, celui qui est applicable à l'emplacement de mémoire identifié par l'adresse du registre d'adresses. 20 15. Dispositif de protection suivant 14, caractérisé par le fait que l'ordinateur qu'il protège comporte des moyens qui répondent au signal de sortie des moyens de décodage pour contrôler la communication entre l'unité arithmétique et l'emplacement de mémoire identifié par l'adresse contenue dans le registre 25 d'adresses . 16. Dispositif de protection suivant 13, caractérisé par le fait que le registre d'adresses comporte une première zone dont le contenu sert à identifier l'opération à réaliser dans l'ordinateur, et une seconde zone dont le contenu sert à identifier 30 un emplacement de mémoire avec lequel doit communiquer l'unité arithmétique en exécutant l'opération, les moyens de contrôle répondant au contenu de la première zone du registre d'adresses et au code d'état choisi pour déterminer si l'unité arithmétique peut ou non communiquer avec l'emplacement de mémoire identifié 35 nécessaire à l'exécution de l'opération indiquée dans la première zone du registre d'adresses.