Brevet FR2003948A1 — publié le 19691114

034S9 -i 2ÛÔ3948 La présente invention concerne un système d.'interruption qui est susceptible d'être utilise dans un système modulaire de traitement de données. 11 comporte des appareils' permettant d'autoriser non seulement 1 ' enregistrement et la reconnaissance 5 immédiate d'un ensemble complexe de' conditions d'interruption, mais aussi le simple enregistrement de ces conditions sans traitement immédiat. L'invention vise encore un système d'interruption qui peut fonctionner dans un mode ininterrompu, ou mode de commande de façon à exécuter des programmes objets qui jusqu'à 10 présent ne pouvaient être exécutés que dans le mode normal. Il vise un système d'interruption ayant des possibilités externes d'interruption, tout particulièrement à la suite d'incidents affectant les modules. L'invention concerne les systèmes de traitement de 1' '15 information. Elle concerne plus spécifiquement les systèmes de traitement de l'information cui fonctionnent sous le contrôle d'un programme exécutif par l'intermédiaire d'un appareillage d1 interruption. Le mode de fonctionnement du système est qualifié de "traitement par interruption". Cela englobe les systèmes 20 de traitement de l'information qui normalement exécutent un programme objet ou programme actif jusqu'à ce qu'une opération de "commande" soit demandée. Le système reçoit alors notification de cette demande de commande par un signal de condition d' interruption. L'arrivée de ce signal déterminait, dans les sys-25 tèmes antérieurs, presque inévitablement un arrêt immédiat du traitement par le processeur et un débranchement ou un saut du processeur en vue de l'exécution d'une routine d'interruption. Ce saut ou ce débranchement se produisait indépendamment de l'importance du motif de l'interruption relativement au programme me en cours subissant l'interruption. Les systèmes antérieurement connus comportaient ce dispositif d'interruption immédiate. Cn s'est rapidement aperçu que dans beaucoup de cas l'interruption déterminant l'arrêt, non seulement n'était pas réellement importante, mais encore 35 était, pour le fonctionnement du système, beaucoup plus gênante que la prolongation de sa cause même. Par exemple lorsqu'il était nécessaire d'achever le programme en cours à un instant futur défini, et que l'interruption empêchait cet achèvement, il était alors nécessaire de cher-40 cher à accélérer le traitement pour respecter le délai, en ac 69 03459 2 2003948 complissant concurremment certaines des opérations. Il s'agissait par conséquent de faire chevaucher quelques uns des segments du programme. Ce chevauchement non seulement exigeait des circuits plus complexes mais aussi une quantité appréciable de 5 logique additionnelle de commande. Lorsque cet effort supplémentaire est provoqué par exemple par un signal d'interruption indiquant simplement l'achèvement d'une opération d'entrée-sortie, il est évident que l'on doit empêcher ce signal d'interrompre le programme en cours à '10 l'instant donné. L'invention vise à améliorer ces systèmes antérieurement connus. l)ans le système selon l'invention, on fait intervenir un système de masquage permettant de prévenir sélectivement certaines interruptions. En outre,non seulement on empêche 15 l'interruption mais on positionne un bit de condition d'interruption, de telle sorte qu'une trace de la demande d'interruption reste en machine. Dans le cas d'une interruption pour-exécution d'une entrée-sortie, la trace de la demande d'interruption est enregistrée dans la machine, et le processeur n'est 20 pas automatiquement connecté à un module particulier de commande. Le processeur est libéré pour faire quelque chose de totalement différent, ultérieurement et à sa propre convenance, le programme de commande peut revenir dans le' processeur et examiner les conditions d'interruption qui y sont emmagasinées. Dès 25 lors, en cet instant, le programme de commande peut reprendre le module de contrôle d'entrée-sortie intéressé. Cette augmentation de la souplesse a été obtenue en intercalant logiquement le reigstre de masquage entre le registre des conditions d'interruption et les circuits de commande du processeur. Z>L) On obtient une amélioration supplémentaire en incor porant les bits du mode de commande dans le registre de masquage. Avec ce dispositif, le programme de commande du système peut faire passer le processeur du mode de commande à son mode normal de fonctionnement, tout en maintenant en fait le proces-^5 seur en mode de commande. Cela procure un certain nombre de résultats utiles et souhaitables. Le résultat le plus notable est l'aptitude du processeur à poursuivre l'exécution d'un programme en mode normal, en dépit de l'interruption, tout en restant sous contrôle du programme exécutif. Antérieurement, lorsqu' 40 arrivait une interruption, le processeur passait automatiquement 69 03459 3 20Ô3948 en mode de commande. Le programme exécutif commençait alors une série de tests afin de déterminer les détails des conditions d' interruption, maintenant, dans la plupart des cas, il est souhaitable de poursuivre l'exécution du programme normal, afin d' 5 obtenir plus de renseignements concernant la source d'interruption. Les systèmes antérieurs faisaient endosser la totalité de la responsabilité aux programmes de diagnostic contenus dans le programme exécutif. Dans le système selon l'invention, cette possibilité de poursuivre le fonctionnement du programme inter-10 rompu permet au système de recueillir des renseignements supplémentaires sur les causes véritables de l'interruption, sans que le programme normal soit continuellement interrompu. L'invention sera décrite ci-après de façon plus détaillée en se référant aux dessins ci-annexés, lesquels sont four-15 nis à titre purement illustratif et non limitatif et dans lesquels : La figure 1 est ùn schéma synoptique montrant 1'organisation d'un système de traitement de l'information susceptible d'utiliser par le dispositif d'interruption selon l'invention. 20 Les figures 2a et 2b réunies comme le montre la figure 2, représentent un schéma synoptique simplifié du module processeur central utilisé dans le dispositif de la figure 1. La figure 0 est un schéma synoptique simplifié du module de mémoire utilisé dans le schéma de la figure 1. 25 Les figures 4a et 4b réunies comme le montre la figure 4, est un diagramme d'interface et d'échange d'informations entre les modules du système. La figure 5 est un schéma de fonctionnement, illustrant dans ses grandes lignes, le contrôle d'interruption. 20 La figure 6 illustre le déroulement d'une séquence d'entrée dans la routine d'interruption d'ans le module processeur' central de la figure 2. La figure 7 est également un schéma de fonctionnement illustrant le déroulement d'un processus d'interruption-35 La figure 8 est un schéma synoptique des registres d'adresse d'interruption de base 1 et 2, ainsi que du registre d'index de base. La figure 9 est un schéma illustrant le fonctionnement du dispositif au cours d'une instruction de "saut" de la routine 40 d'interruption. 69 03459 4 2003948 La figure 10 est un schéma de fonctionnement illustrant le déroulement des opérations dans la section "avancée" ("ADVAST") du module processeur central de la figure 1, pendant l'exécution de l'instruction du.programme exécutif et d'organi-5 sation ("ESP"). La figure 11 est un schéma de fonctionnement, similaire à celui de la figure 9, pendant l'exécution d'une instruction d'interruption de calculateur N ("ICN"). La figure 12 est également un schéma de fonctionnement \ 10 de la section "avancée" ("ADVAST") du module processeur central, pendant le lancement d'une instruction d'entrée/sortie. La figure 15 est un schéma de fonctionnement de la section "avancée" ("AliVAST") du module processeur central, pendant l'exécution d'une instruction de retour de routine d' 15 interruption (1ER). La figure 14 est un schéma de fonctionnement pour la même instruction que dans le cas de la figure 12, mais concernant cette fois-ci la section finale ("ÏTNST") du module processeur central de la figure 2. 20 La procédure d'interruption constitue l'interface (ou frontière) entre le système caHé d'interruption ("hardware") et les routines programmées'de traitement des interruptions ("software"). La procédure d'interruption traite à la fois les interruptions et les demandes de récupération d'un programme 25 interrompu, à la fois pour le programme exécutif et d'organisation et pour l'utilisateur. La procédure d'interruption est mise en route par le système câblé d'interruption ou par un appel de procédure. La procédure d'interruption a pour rôle d'écarter du processeur les travaux des usagers, lors d'une interruption 50 en définissant l'état du processeur dans une table des tâches en cours. La détermination de l'interruption et l'ajustement des* registres sont effectués, et un état adéquat est affiché dans la table des travaux en cours et/ou dans la table d'interruption. La procédure d'interruption possède une zone fixe de 55 travail associée à cnacun des modules processeurs centraux. Ces zones de travail sont créées au moment de la compilation et utilisées au moment de l'interruption. Etant donné l'état des registres .du processeur à l'instant de l'interruption, certaines des variables intervenant dans les procédures d'interruption 40 sont nécessairement relatives au registre de base du programme. 69 03459 5 2003948 Il en résulte que la zone ce travail de la procédure d'interruption n'est pas manipulées exactement de la même manière que les autres zones de données. Lorsque la procédure d'interruption s'est acquittée de 5 sa tâche, elle prépare et appelle la procédure d'organisation, l'ar préparer on entend,, dans ce cas, positionner les registres voulus pour utiliser la pile et le code des tableaux de données de la procédure d'organisation. Les piles et les tableaux de données (un de chaque par processeur) de la procédure d'organi-10 sation sont établis sous forme de tableaux dans le seul langage logique disponible à l'instant de la compilation. L'essentiel du programme exécutif et d'organisation appelé ci-après "superviseur1 ne concerne pas les interruptions et n'est pas lui-même interruptible. oi une demande d'interruption est présentée, 15 alors que le superviseur traite des entrées-sorties, des attributions de mémoire, des établissements de fichiers, etc.. le système d'interruption enregistre la demande et effectue un retour au programme. Les l'outines internes standard fonctionnent effectivement comme si elles n'étaient pas interruptibles. 20 La figure 1 montre l'organisation générale d'un systè me de traitement d'information dans lequel on pourrait faire appel au système d'interruption selon l'invention. Le coeur du système est constitué par les modules-processeur centraux 1-1G0, les modules de mémoire 1-200, les modules d'entrées-sorties 25 1-500, et le pupitre 1-5CC contenant le module de contrôle de mémoire L.C^. Les trois modules de base (processeur, mémoire et entrées-sorties) sont enfermés dans des armoires constituant le système central. Un système central de traitement d'information peut comprendre un ou plusieurs modules processeurs, un ou plu-50 sieurs modules c.e commande d'entrées-sorties et au maximum seize modules de mémoire. Au total le nombi'e des processeurs et des modules de commande d'entrées-sorties peut être égal à quinze. Autrement dit si l'on a un seul processeur on peut utiliser quatorze modules d'entrées-sorties-55 Le système comprend un ou plusieurs modules de comman de eu modules de communication 1-400ÀE et le nombre voulu des dispositifs périphériques 1-400 AB comme dos unités de disque, des unités de bande magnétique, des lecteurs de cartes, etc.. 69 03459 6 2003948 Le nodule processeur central 1-lC'i est montré en détail sur la figure 2. Le nombre de nodules processeurs ainsi que le nombre des nodules de confonde d'entrées-sorties dépend uniquement de l'utilisation envisagée pour le système. Lorsque S l'on utilise'plus d'un processeur, le superviseur gère dynamiquement l'attribution des tâches aux différents processeurs au moyen des registres de commande des processeurs. L'importe quel programme peut être exécuté par n'importe quel processeur, aucune relation permanente de subordination n'étant définie entre ■Aû les pi-ocesseurs. oi l'on dispose de. plus d'un processeur et que les segments asynchrones d'un programme soient spécifiés, les segments peuvent "être exécutés simultanément sur les différents processeurs. Le rôle fondamental du processeur est d'exécuter les calcule arithmétiques et de contrôler les fonctions, les opérations de transfert de données et le traitement des interruptions. Le processeur comprend trois parties : la section "avancée" ou section d'initialisation 2-100, la section finale lâ ou section d'exécution 2-200 et la section de communication 2-300. D'une façon générale les fonctions de mise en relation d'extraction des données de la mémoire et de rangement des données en mémoire sont accomplies par la section de communication. Les calculs d'adresse sont effectués par la section •ZS d'initialisation et enfin les opérations normalement associées avec les manipulations de données sont effectuées par la section d'exécution. Le schéma synoptique de la figure 2 montre les principaux cheminements des données et des ordres entre les trois sections en question. On décrira les fonctions exercées par chacune des trois sections en se référant à la figure 2. Le module processeur est en rapport avec les modules de mémoire et les modules d'entrées-sorties par l'intermédiaire de la section de communication 2-500. Les éléments de la zone de communication qui coopèrent directement avec les autres modules sont les organes récepteurs 2-525, les organes émetteurs 2-519 et le bloc de synchronisation et de commande. Les organes récepteurs acceptent et normalisent les données jn provenance des modules de mémoire et des modules d'entrées-sorties. Les organes émetteurs 2-519 envoient les données du processeur vers kt les modules de mémoire et les modules d'entréës-sorties. Enfin 69 03459 7 2003948 le système de synchronisation et do commande assure le séquen-cement correct des opérations nécessitées par les communica-tions y compris la surve. llance du fonctionnement et le traitement des priorités et des conflits. 5 La section de communication surveille en permanence les opérations à l'intérieur du processeur en faisant office de détecteur pour les ox^anes se trouvant dans la section d'initialisation et la section d'exécution. Lorsque des accès à la mémoire sont demandés par ces organes, c'est la zcne do commu-1G nication qui assure les connexions voulues entre le processeur et le module de mémoire auquel on souhaite accéder. Description du fonctionnement logique - Typiquement une opération a son origine dans une lecture à partir d'une position de mémoire choisie. L'instruction pé-15 nètre dans le processeur central par les récepteurs 2-325 et elle est transmise au registre de lecture 2-523. Une vérification de parité est accomplie par le contrôleur de parité 2-321 sur l'information entrante et si l'on relève bien la parité correcte (impaire), le système de commande de la zone de communication 20 autorise l'information entrante a parvenir à l'une des quatre destinations possibles selon le type des données qui ont été extraites de la mémoire, les quatre organes en question sont : 1. - l'extension de pile 2-207, une mémoire locale compre nant 12 mots de 52 bits. 25 2. - La file d'attente provisoire 2-212 représentant quatre positions de mémoire dans la section d'exécution 2-2GC. -j>. - Le magasin des instructions à venir 2-119, une mémoire locale de 12 mots qui est contenue dans la section d'initialisation 2-100. j50 4. - La mémoire associative 2-113, une mémoire locale de 28 mots à l'intérieur de la section d'initialisation 2-100. La mémoire associative 2-113 est elle-même subdivisée, en deux parties, la file de stockage ou de rangement JTR, et la file des descripteurs ]?D. 55 L® choix de la destination, dans le processeur central, des données entrant par la section de communication dépend du contenu du registre de communication ce la section d'initialisation (2-307). Les liaisons entre les modules de mémoire et les quatre organes contenus dans le processeur cen-40 tral sont groupées en deux classes fonctionnelles : les liai 69 03459 8 2003948 sons de "nécessité" (automatiques) et les liaisons "à la demande" (sous contrôle du programmeur). La liaison de nécessité ou automatique est câblée et elle n'est pas directement sous contrôle du programme. lar contre la liaison à la demande est 5 directement commandée par les instructions, par exemple par un ordre de chargement de la pile à partir de la mémoire, ou au contraire de rangement de la pile dans la'mémoire. Si l'adresse requise comporte un calcul d'adresse fournissant une référence en mémoire, l'adresse obtenue est 10 confrontée avec les limites de la zone attribuée en mémoire, cela dans le comparateur 2-29 de la section d'initialisation 2-1OC. Toute tentative d'aller hors des limites prescrites déterminera l'émission d'une demande d'interruption à destination du registre des conditions d'interruption 2-55» L'adresse 15 est également présentée à la mémoire associative afin de savoir si le mot demandé n'est pas disponible localement dans la file de rangement ou dans la file des descripteurs de la mémoire associative 2-115. Si le mot demandé n'est pas disponible localement, l'adresse est envoyée dans le registre des adresses 20 de la section de communication 2-509, en même temps que des informations de commande indiquant à quelle destination doit aller le contenu lorsque celui-ci arrive de la mémoire. La file des descripteurs FD (en 2-113) est desservie par la section de communication à la fois en mode automatique et à la demande. Toute 25 demande d'extraction hors de la mémoire principale par le processeur central correspondant à un registre d'index de base ou à la table de référence du programme est placée dans la mémoire associative par la section de communication 2-300. La file de rangement FR de la mémoire associative 50 2-113 est surveillée en permanence par la section de communication 2-500 et elle est desservie en mode automatique. La file de rangement intervient pour des opérations du type "rangement seulement" et la section de communication range constamment en mémoire principale les données en provenance de la file de ran-35 gement afin de maintenir celle-ci disponible pour les besoins de la section d'exécution 2-200. La file des registres de base de la table des programmes offre l'emplacement local de stockage pour les dernières références en mémoire centrale concernant le registre de base 40 de la table de référence. Le registre de base de la table de 69 03459 9 20Ô3948 réi'ôrenco constitue un lieu local de stockage pour les mots de contrôle utilisas dans les débranche rient s et pour les mots contenant les limiles'de la zene supplémentaire enmémoire. Il est contenu dans la mémoire associative 2-115- L'exécution de tous 5 les débranchements de programme est opérée sous contrôle de la section d'initialisation 2-100. L'initialisation du registre de commande de débrar.cnenent est effectuée par la section d'initialisation 2-100 ainsi que l'émission du mot de contrôle de débranchement et la formation du mot de contrôle de retour. 10 La section de communication 2-500 surveille l'exten sion de pile 2-20'/ et commande l'exécution des opérations de rangement en mémoire et a'extraction de mémoire afin de conserver toujours un nombre prédéterminé -d'opérandes à la disposition de la section d'exécution 2-200» La section de communication 15 2-500 pilote le magasin des instructions à venir 2-119 de la même manière qu'il pilote l'extension de la pile 2-207- 'Toutefois il y a une différence, dans la mesure où le fonctionnement est unilatéral puisque l'on se borne à envoyer des données vers le magasin des instructions a venir. Ln outre la section de conmuni-20 cation assure le rangement à sens unique à partir de la file de rangement î?R,(en 2-115- partie inférieure) en transférant périodiquement des données à destination du module de mémoire afin de conserver de la place dana la file de rangement FR en 2-115, à disposition de la section d'exécution 2-200. La section 25 de communication fournit des données entrantes à la file temporaire 2-212 sur appel de la section d'initialisation qui à son tour initialise toutes les demandes de service. Les files d' indexage se trouvent dans la mémoire associative 2-115. Elles reçoivent des données entrantes sous contrôle de la section de 50 communication. La file d'indexage contient tous les mots qui sont référencés par une quelconque instruction d'indexage. La file du registre de base de la table des programmes contient les références les plus récentes aux segments de programme et aux procédures qui ont été mis en jeu pendant l'exécution du 55 programme? ôi la file des index ou la file des registres de base est pleine à un instant donné, la section de communication enlève les informations les plus anciennes poui1 les renvo:/er en mémoire centrale ou pour les détruire. Les données qui sortent de la section de communication transitent par le registre des 4-0 adresses de la section de communication ^-;>09 et le registre de 69 03459 10 2003948 rangement de la section de communication 2-301. Le registre des adresses 2-509 contient chaque fois l'adresse et les informations de contrôle, alors que le registre de rangement 2-501 contient les données. Avant la transmision des connées et de l'adresse 5 des parités sont ajoutées dans les deux cas par le générateur de parités 2-505-Section d'Initialisation - Toutes les instructions qui sent exécutées dans le pro-cesseur central sont d'abord traitées par la section "avancée" 10 ou section d'initialisation 2-100. Les instructions qui sent strictement du ressort de la section d'exécution 2-200 sont simplement décodées puis transmises à cette dernière. La section d'initialisation 2-100 relève également toutes les conditions .d'interruption, réagit aux situations spécifiques d'interruption 15 et contrôle les séquences préliminaires de traitement des interruptions. Dans le processeur central la section d'initialisation constitue la partie qui traite les programmes. Toutes les opérations de la section d'initialisation partent du magasin des ins-20 tructions à venir 2-119. Ce magasin des instructions à venir est une mémoire locale dont le rôle est de conserver en tampon les mots d'instruction du programme en cours très en avance sur leur exécution. La capacité de ce magasin d'instructions à venir 2-119 est de 12 mots à raison de 52 bits par mot. Comme l'instruc 25 tion la plus longue contient 4 caractères de 6 bits, on voit que ce magasin contient au minimum 24 instructions à venir. Avec ce degré d'anticipation, la section de communication maintient dans le magasin des instructions à venir 2-119 une avance suffisante par rapport aux opérations effectivement accomplies j>0 par la section d'initialisation pour "masquer" efficacement le temps d'obtention des mots d'instruction. La section de communication 2—500 pilote le magasin des instructions à venir 2-119 et il le dessert en mode automatique. Autrement dit la section de communication exécute automa-55 tiquement des opérations d'appel d'instructions, de façon à maintenir un nombre pré 69 03459 2003948 contient le caractère du code expiration et les caractères correspondants concernant les variantes et, ou l'adresse. Les caractères du code opération et de la variante sont'décodés par les organes de commande de la section d'initialisation pour déterminer 5 quelles opérations doivent être accomplies par la section d'initialisation, 3'il y a lieu. Si aucune opération n'est demandée à la section d'initialisation, l'instruction est transférée, à la file des instructions de la section d'exécution, ou plus brièvement file d1 exécution 2-211, et à la file temporaire 2-212 10 de la section d'exécution 2-200, car c'est dans cette dernière que s'accomxjlit effectivement la manipulation des opérantes prescrite par le code opération. Le décodeur 2-25 du code opération et de la variante déteriaine si des calculs d'adresse doivent être effectués par la section d'initialisation et, si c'est le cas, 15 quel registre de 'base il faut utiliser et quelles sont les limites à employer dans les registres de délimitation des zones en mémoire 2-27 du bloc de comparaison de la section d'initialisation 2-29. Si l'âdresse demandée est emmagasinée localement (dans la section d'initialisation) et n'exige aucune/intervention 20 de la section de communication 2-500, la mémoire associative 2-115 explore automatiquement la file locale (file des registres de base, file des index ou file de rangement) contenant le mot recherché, ce qui fait apparaître ce fiot à la sortie. Si le mot recherché doit être utilisé par la section d'initialisation, il 25 est désormais à la disposition de cette dernière à la sortie de la file. Si au contraire il est destiné à la section d'exécution la section d'initialisation transfère ce mot dans la file temporaire 2-212 qui constitue le lieu local de stockage de la file des opérandes pour la section d'exécution. Si le calcul d'adresse -jO conduit à une adresse qui n'est pas découverte dans la mémoire locale de la section d'initialisation, on doit procéder à une extraction à partir du module de mémoire intéressé, par les soins de la section de communication 2-200. Une fois que la section de communication 2-200 a reçu l'ordre d'aller extraire un mot ■y? destiné à la section d'exécution, la section d'initialisation 2-200 n'a pas à attendre l'obtention effective d^ ce mot et elle peut commencer immédiatement à s'occuper de l'instruction suivante. 69 03459 12 2003948 Le calcul d'adresse met en .jeu l'additionneur d'initialisation 2-105 qui a trois entrées, une pour la" syllabe d'adresse une pour le registre de base, et une pour la valeur d' indexation, ce qui permet d'exécuter le calcul d'adresse dans la 5 chaîne d'instruction en une seule passe. L'indexation est ap:>li-auée au calculateur d'adresses par le registre d'adresses de la section d'initialisation 2-105- Le registre d'adresses 2-105 sert d'accumulateur pour le calcul d'indexation. La file locale peut contenir jusqu'à 24 mots d'indexation, ce qui permet d'effectuer 10 la plus grande partie des indexations sans se reporter à la mémoiré principale. Section d'exécution - La section d'exécution 2-200 est la partie du processeur central qui accomplit les opérations arithmétiques et lo-15 giques ainsi que toutes les opérations de constitution et de surveillance des piles. Toutes les opérations intéressant la section d'exécution sont commandées par les instructions qui sont prélevées en séquences sur la file d'exécution 2-211 qui est chargée à partir du registre d'instructions 2-23 de la section 20 d'initialisation* Une fois que la section d'initialisation a terminé son traitement préliminaire,dans le cas évidemment.des instructions exigeant l'intervention de la section d'exécution, la section d'exécution place le code opération dans la file d'exécu-25 tion 2-211 et les syllabes de variante correspondantes, ou l'opérande stocké localement, dans la file temporaire 2-212. Si l'on a besoin d'un opérande qui doit venir de la mémoire principale, la section d'initialisation fournit à la section de communication une adresse dans la file temporaire et c'est à 50 cette adresse que la section de communication placera l'opérande lorsqu'elle l'aura obtenu. La file temporaire est desservie par la section de communication "à la demande". Les instructions sont transférées une à une de la file d'exécution vers le registre d'instructions FIR de la sec-55 tion d'exécution, cela en attendant la prise en charge par le bl.cc de calcul 2-215. Le bloc de calcul 2-215 comprend un comparateur 2-215A utilisé pour tous les tests de piles et de z-ones et aussi pour cies fonctions logiques comme la fonction "implication" ou la fonction "OU", ainsi que pour certaines rnani-40 pulations de zones, comme "remettre la zone à zéro" et "complé- 69 03459 -13 20Ô3948 menter la zone". Le détecteur de "UI.ù" 2-215B est utilisé peur la normalisation et la conversion des entiers en flottant. Il est également utilisé pour les tests de piles et de zones par comparaison à zéro. L'additionneur AlG est utilisé dans le cadre 5 des opérations arithmétiques comme l'addition, la soustraction, et la division, —es opérations de décalage ec de manipulation de zenes sont accomplies par le registre cyclique rapide 2-215C. Lnfin les multiplications se déroulent" dans le multiplicateur 2-21pB. Les données sur lesquelles opère le mode de cal-10 cul sont transférées de la file temporaire vers le registre de tête de pile (ï), montré en 2-201, qui fait office d'accumulateur pour lu section d'exécution. Le registre 2-203 de second rang de pile (3) et la mémoire d'extension de piles 2-207 contiennent également des opérandes. 15 Les résultats qui sont fournis par le "bloc de calcul à partir des données, peuvent être emx>ilc-s dans la pile pour stockage temporaire .jusqu'à ce qu'on en ait besoin à titre d'opérande ou "bien ils £>euvent être transférés du registre 2-201 de tête de pile (i1) vers la file de rangement Fil de la mémoire 20 associative 2-115 de la section d'initialisation, en vue d'un rangement ultérieur vers la mémoire principale. La mémoire d'extension de pile 2-207 de la section d'exécution est à remplissage "automatique". En effet la section de communication 2-500 surveille en permanence son contenu et 25 exécute automatiquement des opérations de rangement ou d'appel en mémoire permettant de conserver un nombre.prédéterminé d'opérandes à la disposition du bloc de calcul de la section d'exécution- La section d'exécution 2-200 ne dépend de la section 50 d'initialisation 2-200 et de la section de communication 2-500 que dans la mesure où elle ne peut fonctionner que s'il y a quelque caose dans la file d'exécution 2-211 et dans la file temporaire 2-212. Aussi longtemps qu'il y a une file d'instructions en attente d'exécution; la section d'exécution n'a pas à 55 s'arrêter pour attendre les sections a'initialisation ou de communication. Il existe une instruction spéciale qui arrête le fonctionnement de la section d'initialisation lorsque cette instruction apparaît dans le registre d'instruction d'initialisation. ~>ans ce cas la section d'initialisation ne recommence 40 pas à fonctionner avant que l'instruction en question se trouve dans le registre d'instruction' d1 ex;cuticn. 69 0B459 2003948 Fonctionnement de la pile - La pile contenue dans la section d'exécution comprend un registre de tête de pile C—) en 2-201, un registre (d) en 2-203 (second rang de la pile) et une extension de pile 2-2C? £ comprenant douze mots. Les oxvérandes sonb y-irnagasinées localement dans la mémoire de pile dans les limites offertes pcr celle-ci, à savoir quatorze mots de 52 bits. La pile d'opérandes peut se prolonger au-delà de cette limite, l'extension correspondante étant alors dans un module de mémoire. .Ao Les instructions du processeur central concernant la pile sont normalement référencées à partir des registres de tête (?) et de second rang (S) respectivement 2-201 et 2-203. Lorsque des données en trantes sont introduites dans la pile, elles occupent les positions successives en commençant par le J5 registre de tête (ï), en allant ensuite dans le registre de second rang (S), puis en progressant dans les positions successives de l'extension 2-2C7. Comme les opérations habituellement effectuées impliquent deux opérandes , le fait que ces deux opérandes soient disponibles dans les registres ï et d permet de passer à l'exécution. Dans le cas où il s'agit d'effectuer des opérations en double longueur, on utilise deux "positions adjacentes de la pile pour stocker successivement les bits de poids forts puis les bits de poids faibles de chaque opérande. Un registre additionnel, le registre de prolongèrent (P) visi-ble en 2-205 est mis en jeu dans certaines instructions en double précision par exemple pour la multiplication. Ce registre 2.-205 peut être considéré comme une extension du registre de tête 2-2C1. Sur la figure 2 on peut voir encore deux registres 3c d'adresse effective 2-311 et 2-313 et le registre des incidents du processeur 2-315 dont il sera question plus loin. Le module de mémoire qui est montré par la figure 3 assure le stockage sur des éléments de pellicule mince à accès rapide et aléatoire. Chaque module a une capacité de 16384 "^5^ mots, chaque mot comprenant 52 bits. Ce module conserve l'information, selon les prescriptions des modules de processeur central ou des modules d'entrées-sorties. Le module de mémoire est contenu physiquement dans deux armoires. Il porte 16 faisceaux omnibus permettant les échanges d'information avec au [■tç, maximum 16 autres modules. Chaque faisceau contient 52 lignes en 69 03459 15 2003948 parallèles pour l'entrée et 52 lignes en parallèle peur la sortie. Le système peut être étendu jusqu'à 16 modules de mémoire, ce qui lui confère alors une capacité de mémoire rapide de 262144- mots. c L'entrée en action du module de mémoire est déclenché 5 par une demande en provenance d'un nodule avec lequel il est lié. Le module demandeur expédie une demande, un signal de £.;/nchr nisation et des données (mot de contrôle). Le signal de demande (Rivii) est utilisé jjour le contrôle de priorité dans la logique ^ de traitement des priorités et de synchronisation 5-28 qui procède à l'évaluation de la demande. Les données en trantes vont dans les récepteurs 5-24. La demande d'accès à la mémoire est acceptée par celle-ci si son canal est celui qui a la priorité la plus élevée parmi tous les canaux actifs. Le signal de synchronisation (iiiiQ-STR) est utilisé xjour assurer le transfert des parties commande et adresse du mot de contrôle, à destination des zones correspondantes du module de mémoire. Le signal de synchronisation affiche, également un signal "occupé" qui sert à signaler l'état de la mémoire lors des demandes ultérieures 2q en provenance d'autres modules pendant l'achèvement du cycle d'accès en mémoire en cours. Un signal d'acceptation indiquant que le; module de mémoire a accepté le mot de conti'ôle -est envoyé à destination du module ayant fait initialement la demande. L-a partie code opération du mot de contrôle (voir 2^ plus loin) décrit le genre d'opération (de lecture ou d'écriture) qui doit êtra cccompli entre la mémoire et l'organe qui fait appel à celle-ci. Les quatre positions binaires du code opération ont les significations suivantes selon qu'elles sent occupées par un G ou par un 1 : Position 0 0 = Lecture " 1"= écriture .Position- 1 0 = un mot 1 = quatre mot:s Position 2 0 = normal 1 ) modifier l'étiquette Position 5 0 = tous zéros ou 1 = tous UI73, ou mot: normal d'incident ;C L'adresse est constituée par 18 bits, elle est donc suffisamment longue pour permettre 1 ' adressasje direct cie chacune des 262144 positions ae mémoire à l'extension maximale. Lorsqu'on spécifie une opération de mémoire concernant quatre moos, il faut; que los bits d'adresse 46 et 4*7 soient des 4G zéros poux1 que l'ordre normal des mots soit conservé, par exem- 69 03459 16 20Ô3948 pie de (j à ; pour les quatre mots choisis. Un code différent dans les deux hits les moins significatifs de l'adresse aura pour conséquence que ce sera le mot adressé qui sera traité le premier les trois autres étant ensuites traités cycliquement. 5 Un code opération de lecture, ou extraction de mémoire décrit l'une des quatre opérations possibles de transfert entre le module de mémoire et le dispositif ayant appelé. L'opération est reconnue par le bloc de synchronisation et de commande 3-10 et l'adresse est placée dans le registre d'adresse en mémoire 10 p-4-8. L'adresse spécifiée autorise les commutateurs et organes correspondants de commande de mémoire 3-54- qui choisissent la position correcte dans l'empilement 3-70 des mémoires à pellicule mince. Les signaux de commande du cycle de lecture en provenance du bloc de synchronisation de commande 3-10 font débuter le cycle 15 de lecture et les amplificateurs de lecture 3-68 reçoivent de l'information de sortie en provenance de la mémoire à pellicule f;ânce 3-70. Hn 3-52 se trouve aussi le registre de la prochaine adresse. Le registre intermédiaire de lecture 3-58 emmagasine 20 les quatre mots de donnée, le choix entre ces quatre mots A, B, C 3 étant effectué par les organes de sélection 3-60, 3-62, 3-ôA-, 3-66. Le sot est transféré à destination du module d'appel par la logique de sélection du canal de sortie 3-22, puis au travers des organes de commande ae canal 3-18 constituant l'étage final 25 de sortie du module de mémoire. Un signal de synchronisation est encore fourni à l'organe de commande de sortie 3-16 en vue d'assurer la transmission de ce signal S jusqu.'au module d'appel, cela en même temps que les données qui transitent en 3-18. L'organe de commande 3-16 assure également l'émission d'un éven-30 tuel signal d'erreur E à destination des processeurs. Une opération de lecture en mémoire comprend encore le recyclage du mot lu à destination de la position de mémoire d'où il a été extrait (réinscription). Ce résultat est obtenu à partir du registre intermédiaire 3-58 en utilisant l'organe de commande 3-56. En 35 3-20 se trouve encore un organe de contrôle de parité. Un code opération de rangement (écriture) concerne l'une des deux opérations d'écriture qu'il est possible d'effectuer pour transférer des informations entre le module d'appel et le module de mémoire de la figure 3» On peut avoir rangement simul-40 tané soit d'un mot soit de quatre mots. La demande est détectée 69 03459 17 20Ô3948 par la logique de priorité et de synchronisation 3-28. Le signal de synchronisation d'appel REQ-3TR assure le transfert du mot de contrôle à destination du bloc de synchronisation et de commande 3-10 et l'adresse est placée dans le registre d'adresse 3-4fa 5 dans le cas d'une opération de lecture, les commutateurs de né-moire et les organes de commande p-54 correspondant à l'adresse de mémoire spécifiée par le mot de contrôle sont choisis, et le cycle de rangement débute sous l'impulsion du bloc de synchronisation et de commande 3-10. Les données en 30 se trouvent dans 10 les receveurs 3-24 et transitent par le mélangeur 3-26» Elles sont transférées selon les prescriptions du mot de contrôle par les portes 3-36, 3-38, 3-40 et 3-42 à destination du registre d'écriture de 208-10 qui est indiqué en 3-50 et qui comprend les quatre- mots A, 3, G, D. Les données sont transférées par les 15 organes de commande 3-56 à destination de la mémoire à pellicules minces 3-70 et cela 'achève l'opération d'écriture. Le module de mémoire contrôle chaque moi; reçu ou émis en vue de déterminer si le nombre de ses bits (y compris le bit de contrôle) est effectivement impair. Lorsque l'on détecte une 20 parité incorrecte le moaule de mémoire interrompt les modules de processeur et conserve l'information concernant*1'incident dans le registre des incidents de mémoire 3-12. Des possibilités supplémentaires de contrôle sont offertes par un mode de fonctionnement pas à pas et par le contrôle automatique. Il est 25 prévu sur le module de mémoire un panneau de contrôle qui porte les voyants des organes de commande et des bascules et qui permet le fonctio: nement pas à pas sous commande manuelle aux fins de la maintenance. Chaque module de mémoire (voir la figure 1) est connecté en permanence au module de contrôle de mémoire 30 js.G;v: incorporé à la console 1-500. Ce module a la possibilité d'explorer automatiquement la totalité des emplacements et des fonctions de chacun des modules de mémoire 1-201 à 1-216. Le registre d'incidents de mémoire 3-12 contient des données d'incident y compris une copie'du mot de contrôle de p5 l'opération qui était en cours au moment où l'erreur a été détectée. On indique également le numéro de canal et le numéro de module de mémoire afin de faire apparaître les interconnexions qui sont en cause. On trouvera ci-dessous le format au mot d'incident. 69 03459 18 20Ô3948 O 3 4 6 7 11 12 15 16 19 20 22 CODE 0 Bits d' 0 N° de 0 OPERA erreur canal TION 5 25 26 27 29 30 47 48 >0 51 Iî° du modu 0 Adresse 0 Parité le de né- moire Les Lits c*erreur ont la signification suivante : 10 Position 7 erreur de parité sur le mot de contrôle Position 8 erreur de parité sur les données en trantes Position 9- adresse fausse dans le mot de contrôle Posit;ion 10 erreur de parité sur les données sortantes Position 11 code opération illégal dans le mot de code-con- trole. i? Le bit n° 51 du mot d'incident est utilise pour une parité afin de permettre un contrôle du mot d'instruction. Son rôle est d'indiquer la composition binaire globale d'un mot et d'offrir ainsi un moyen de détection des erreurs. 20 La figure 4 montre comment sont connectés les diffé rents modules dans un système global. Un module de mémoire 4-201 est en relation avec un module d'entrées-sorties 4-301 .et un module processeur central 4-101. Les communications entre les modules sont réalisées au 25 moyen de 16 faisceaux omnibus dont cnacun comprend 51 lignes en parallèle 401 pour l'entrée et 51 lignes en parallèle 403 pour la sortie, avec une ligne de parité 402 pout l'entrée et une ligne de parité 404 pour la sortie. Toutes les connexions sont réalisées au moyen de 30 blocs spéciaux d'interface dans les différents modules. La figure 4 montre les interconnexions entre les blocs, la configuration des blocs et les flux d'information dans le système. Les blocs d'interface^ contiennent les registres voulus d'extraction, de rangement et d'adresse, les circuits logiques, les cir-35 cuits de synchronisation et de commande, les organes d'excitation (d'émission) et de-réception permettant de coordonner les transferts a'information entre les modules. Chaque module d'entrées-sorties 4-301 a la possibilité de se raccorder avec 512 organes périphériques de sortie 69 03459 19 2003948 4-401A et d'entrée 4-4013, du type simplex (un seul sens de transmission) par ?''\2 canaux individuels de commande à savoir 2>o canaux de commande de sortie (JOB) et 255 canaux de commance d'entrée (COii) , et aussi par 64 faisceaux omnibus à savoir 52 5 bus de sortie (3o) et 52 bus d'entrée (3K). Les contrôleurs d'équipements périphériques qui sont installés dans des modules communs 4-400A pour les sorties, et 4-4003 pour les entrées, sont utilisés pour assurer le transfert correct des signaux d' information et de commande entre les modules d'entrées-sorties 10 4-301 et les divers organes périphériques. Ces contrôleurs contiennent tous les tampons voulus peur les données, afin qu'aucune donnée ne se perde pendant qu'un module d'en.trées-sorties est en train de desservir d'autres canaux. Des modules de communication sent utilisés spécifiquement pour assurer l'interface 15 entre les modules d'entrées-sorties 4-301 et les lignes de communication (par exemple les lignes aboutissant à des téléimprimeurs) , cela dans des conditions telles que soit réduite au minimum la possibilité qu'une panne affectant un seul composant puisse mettre hors circuit plus d'une seule ligne de communica-20 tion. Les circuits d'interface contenus dans les modules de communication assurent la compatibilité entre les dispositifs de communication et les modules d'entrée et sortie. Les échanges d'information entre les différentes parties du système comprennent trois phases différentes : entrée, 25 traitement, sortie. La mémoire à pellicules minces (dans les modules de mémoire) est un dispositif de stockage temporaire à accès rapide et aléatoire pour les informations devant être manipulées au cours de ces trois phases. Pendant la phase d'entrée, l'information est transférée des organes périphériques ;-j0 d'entrée 4-4013 vers la mémoire principale 4-201 en empruntant de les controleurs7périphériques 4-4003, les faisceaux omnibus d'entrée 411, 412, 413, 414, les modules d'entrées-sorties 4-301 et le sous-système disque. Pendant la phase de traitement l'information contenue dans la mémoire principale 4-201 est 35 transférée pour être manipulée par un processeur 4-401, ce après quoi l'information est renvoyée vers la mémoire principale 4-201. Pendant la phase de sortie l'information est extraite de la mémoire principale 4-201 et manipulée comme information sortante en se déplaçant en sens inverse de l'information 40 rentrante. 69 03459 20- 2003948 Les communications entre les équipements périphériques et les modules d'entrées-sorties sont manipulées par des contrôleurs d'équipements périphériques, des modules de communication et des "blocs de service incorporés aux modules d'entrées sorties. 5 ^es blocs de service contiennent les registres, les tampons et les circuits de commande qui sont nécessaires pour manipuler l'information d'entrées-sorties en caractères ou syllabes de diverses longueurs, à des vitesses diverses. Chacun des 64 faisceaux omnibus de transmission de données en entrée-sortie 10 à la possibilité de traiter en parallèle 48 bits d'information -voir en 411 et 431 sur la figure 4) plus un bit de parité (voir en 412 et 432). Le nombre de bits traités en parallèle au niveau des équipements périphériques dépendra des caractéristiques propres de chaque périphérique. Si un module d'entrées-sorties 15 est en communication avec des lignes de télétype débitant de ■ 8 à IOO mots par minute, il suffira de traiter les caractères de o bits en parallèle pour avoir la garantie que chacune des lignes individuelles de télétype est desservie sans pertes d'information. Les faisceaux omnibus d'entrée contiennent encore 20 une ligne pour un signal d'identification des données et une ligne pour un signal d'identification d'état. Les contrôleurs de périphériques 4-400A et 4-400B contiennent des organes d'excitation et de réception, des registres, les dispositifs de contrôle de parité, les tampons, les 25 convertisseurs et les circuits de synchronisation et de commande, leur rôle étant de stocker temporairement puis de transmettre les données entre les organes périphériques et les modules d'entrées-sorties. Les communications entre les modules d'entrées-sorties et les contrôleurs des organes d'entrées-sorties sont 30 assurés par 512 canaux de commande et 64 faisceaux omnibus de transfert._ Les 512 canaux de commande comprennent 256 canaux de commande d'entrée et 256 canaux de commande de sortie. Les signaux de commande qui sont expédiés en sortie du module d'entrées-sorties vers un contrôleur de périphériques comprennent 35 le signal de fin de message 441, le signal de démarrage 442 et le repère du mot d'adressage périphérique443- Les contrôleurs de périphériques envoient d'autre part au module d'entrées-sor-ties des signaux de demande de prise en charge 444 et d'-état 445. 69 03459 21 2003948 Les signaux de commande d'entrée qui sont envoyés par* lesmodules d'entrées-sorties au travers des canaux de comnan-de d'entrée (OCii) à destination des contrôleurs de périphériques comprennent le signal de repérage de l'identificateur de péri-5 phérique 451 et le signal de démarrage 452. Par le même canal, une demande de prise en charge453 est envoyée du contrôleur de périphériques vers le nodule d'entrées-sorties. Les transferts d'information sur les 52 faisceaux omnibus de sortie se font par mots de 48 bits de données, plus 10 un bit de parité. Les transferts d'information sur chaque faisceau omnibus d'entrée se font par mots de 48 bits de données, plus un bit de parité, avec encore un bit de synchronisation (d'état). Communications entre les modules d'entrées-sorties et les nro-15 cesseur's centraux - Ainsi que le montre la figure 4, les communications entre les processeurs et les modules d'entrées-sorties sont prises en charge, pour chaque processeur 4-101, par un bloc de communication 4-102 et pour chaque module d'entrées-sorties 4-501, 20 par un bloc de traitement 4-305. Le bloc de communication 4-101 comprend les organes d'émission et de réception 4-103 et 4-105 respectivement, qui sont nécessaires pour actionner leslignes d'émission de signaux à destination des modules d'entrées-sorties et pour recevoir les signaux standardisés en provenance 25 des modules d'entrées-sorties. Le bloc de traitement 4-305 du module d'entrées-sorties 4-301 contient les registres et les circuits de commande qui contrôlent les communications avec un processeur. Le processeur expédie en parallèle vers le module d'entréës-sorties 18 bits (en 461) pour l'adresse dans la pile pO des travaux, un bit (462) pour le "drapeau" de la pile des travaux et un bit de repérage (^*63)- -Inversement, le module d' entrées-sorties expédie en parallèle à destination du processeur 4-101 un bit d'interruption pour fin d'entrées-sorties (464). un bit d'interruption pour erreur de parité (455) et un bit d'in-35 terruption pour incapacité d'accéder à la mémoire_ (466). Communications entre les processeurs ou les modules d'entrées-sorties ,d ' uns r;art, et les modules ce mémoire-, d'autre 7. art - Les communications entre les processeurs et les modules d'entréës-sorties, d'une part et les moaules de mémoire, 40 d'autre part, sent assurées par les blocs de communication à 69 03459 22 2003948 savoir 4-102 pour les processeurs, 4-302 pour las modules d'en-trées-sorties et 4-202 pour les modules de mémoire. Les blocs de communication 4-102 et 4-i502 incorporés respectivement aux modules de processeur et aux modules d'entrées-sorties contiennent : 5 a)- des registres d'extraction et de rangement qui conservent momentanément les données en provenance des modules de mémoire ou à destination de ceux-ci. b) - des registres d'adresse-qui conservent momentanément les adresses dans les modules de mémoire. 1Q c) - des circuits logiques de contrôle de parité et de génération de parité qui vérifient la parité des données en provenance des modules de mémoire et qui engendrent les bits de parité pour les données à destination des modules de mémoire. d) - des circuits de synchronisation de commande assurant le 15 séquencemenu correct des opérations qui entrent en jeu dans les échanges. e) - des organes d'émission, respectivement 4-107 pour le processeur et 4-313 pour les modules d'entrées-sorties, afin d'activer les lignes à destination des modules de mémoire. 20 f) - des organes de réception, respectivement 4-109 pour les processeurs et 4-311 pour les modules d'entrées-sorties qui reçoivent et reforment les signaux en provenance des modules de mémoire• Le bloc de communication 4-202 de chacun des modules 25 de mémoire contient les organes d'émission 4-205 et 4-207 pour activer les lignes d'expédition de données à destination respectivement des processeurs et des.modules d'entrées-sorties et des organes de réception 4-203 et 4-209 pour recevoir et reformer les signaux de données en provenance respectivement des pro-50 cesse'urs et des modules d'entrées-sorties.- Quinze faisceaux omnibus de transmission de données sont prévus pour interconnecter le processeur 4-101 et les modules 4-301 avec les modules de mémoire 4-201. Chaque faisceau omnibus comprend 52 lignes en parallèle d'entrée de données, 52 lignes en parallèle de sortie 35 de données et le nombre voulu de lignes de commande. Les données qui sont transmises (par c :aque faisceau omnibus) à partir d'un processeur ou d'un modulo d'entrées-sorties, à destination d'un module de mémoire comprennent 51 bits d'information (voir en 401 et 421 sur la figure 4), un bit 69 03459 23 2003948 de parité (402 et 422) un "bit de repérage de la demande (-f-05 et 425), et enfin un "bit de repérage des mots, de données (406 et 426). Les données transmises en parallèle d'un nodule de mémoire à un processeur ou à un module d'entrée-sortie comprennent pi 5 bits de données O+Gp'et 42p), un bit de parité (404 et 424), un bit de repérage des mots de données (4Gy et 427) un signal de réjjonse (408 et 42o). Un signal de demande est envoyé par une ligne individuelle (410 et 4pO) , de chaque module d'entrées-sorties, ou module de processeur, à chacun des modules de mémoire 10 et enfin un signal d'interruption du processeur est envoyé par une ligne individuelle 420 de chaque module de mémoire vers chaque processeur. Le processeur comprend un système d'interruption très élaboré réagissant à 70 situations différentes d'erreur ou de 15 commande du système. Lors de la réception d'une interruption ou d'un appel du superviseur, le contrôle du processeur central est transféré du programme en cours au superviseur, autrement dit on passe du mode normal (également appelé mode esclave ou mode utilisateur) en mode de commande de type 1 (mode naître ou 20 mode exécutif). Le processeur central a trois modes différants de fonctionnement : le mode normal, le mode de commande de type 1 et le mode de commande de type 2. Les deux derniers, sont des modes exécutifs. Le mode normal utilise un jeu réduit d'instruction et il est sujet au nombre maximal d'interruptions. Les modes 25 de commande utilisent le jeu complet d'instructions et ne peuvent être interrompus que dans un nombre de cas minimum. Un programme en mode de commande peut chercher-à déterminer la cause d'une interruption en mode normal pour réduire la possibilité d'une interruption ultérieure, i-endant le déroulement d'un pO programme utilisateur, ou d'un programme de travail en mode normal, les conditions d'interruption qui peuvent interrompre l'exécution par l'utilisateur sont restreintes par le superviseur. Ce résultat est obtenu en agissant sur le contenu du registre de masquage d'interruption de l'utilisateur. 35 Chaque fois qu'intervient une interruption autorisée, le processeur est mis en mode de commande, il convient d'introduire des informations qui décrivent la structure du programme qui était temporairement suspendu. Ces données entrantes vont dans deux tables qui sont contenues dans la zone de rangement 40 du système de traitement. Il s'agit de la table des travaux en 69 03459 24 2003948 cours et de la table des- travaux en attente. La table des travaux en cours est un tableau contenant les renseignements qui sont nécessaires pour initialiser ou réinitialiser un programme qui a été introduit dans le système et qui se déroule effective-5 ment ou oui a été suspendu par le superviseur, mais qui doit être repris. La table des programmes en attente est un tableau décrivant l'état exact du processeur à l'instant de la suspension du superviseur. Une inscription à la table des travaux en cours se fait au moment du transfert du traitement d'un programme me utilisateur au superviseur. La table des travaux en cours comprend trois parties : démarrage, contrôle et comptage, état. A chaque interruption, la partie "état" contient une image des registres du module processeur central à l'instant de l'interruption, et une indication concernant l'état et portant sur la 15 raison pour laquelle ce programme utilisateur a été suspendu. L'inscription à la table d'attente est effectuée en même temps que de l'espace est alloué pour le reste des programmes. Une inscription dans la table d'attente est créée lors de la suspension temporaire d'une-phase superviseur et elle con-20 tient toutes les valeurs qui sont nécessaires pour faire repartir la phase superviseur qui a été suspendue. Il y a au moins une table d'attente pour chaque table des travaux en cours. On inscrit quelque chose dans la table chaque fois qu'une phase superviseur attend d'être reprise. Chaque inscription à la ta-25 ble d'attente comprend une zone d'états précisant si le programme est prêt à tourner, s'il est en attente d'une opération d'éntrées-sorties, etc.. Chaque table d'attente est reliée à la table correspondante des travaux en cours et à d'autres inscriptions sur la table s'il y en a. Sinon on indique que c'est la 30 dernière inscription à la table d'attente -dans la chaîne qui est connectée à la table des travaux en cours. Les inscriptions à la table d'attente sont liées à toutes les autres inscriptions à cette table afin d'en faciliter l'exploration. La figure 5 est un schéma de fonctionnement du disposi-35 tif d'interruption. On peut voir le déroulement des opérations après que le système de traitement a été intërror.pu alors qu'il exécutait un programme utilisateur, autrement d^t alors qu'il opérait dans le mode normal. Le passage du mode normal 5-10 en mode de commande de type 1 (en 5-6) implique un passage par 40 la commande d'interruption 5-14, au travers de la logique d' 69 03459 25 2003948 interruption 5-12. ï}. n'y a pas de relation directe entre les programmes en mode de commande (superviseur) de type 1 et le superviseur externe qui fonctionne en.aode normal 5-18. Une fois qu'on est passé en mode de commande de type 1 5 (5-16), un processeur peut être interrompu quelle que soit la position du registre de masquage, p^.r exemple en cas d'impossibilité pour le processeur d'accéder à la nemoire d'erreur de parité dans le processeur, d'instruction d'arrêt, etc.. Uneinter-ruption pendant le fonctionnement en mode de commande de type 1 10 fera passer le processeur en mode de commande de type 2 (5-24). L'apparition de n'importe laquelle des conditions d'interruption précitées, alors que le processeur est en mode 2, provoque l'arrêt du processeur (5-2o). Ponctions câblées au moment de l'interruption -15 i>e transfert de l'exécution du programme utilisateur (mode noraal) 5-10 à l'exécution de la routine d1 interruption du superviseur, (mode de commande de type 1) 5-16 est accompli par la logique du processeur central 5-12, après exécution de toutes les instructions contenues dans la file d'exécution 2-211. Les 20 configurations instantanées du registre de base du programme du compteur ordinal, du registre d'aaresses de la section d'initialisation et d'un certain nombre de bascules spécifiques de comman de, sont placés dans la pile des opérandes. La valeur instantanée du registre d'adresse de "base d'interruption nc 1 est placée 25 dans le registre de base du programme. La valeur de ce registre de base d'interruption est déterminée par le superviseur (au moment où le système fonctionne en mode utilisateur) et il désigne l'adresse de base de la routine d'interruption. Le compteur ordinal est mis à zéro. L'instruction suivante à exécuter est 50 prélevée dans la position de mémoire qui est obtenue à partir du contenu du compteur ordinal et de la correction par le registre de base. La routine d'interruption établit une instruction dans la table des travaux en cours, dans la enaîne de priorité de cette table, détei^aine la condition d'interruption et passe 55 le contrôle à la routine du superviseur qui est appelée par l'interruption. Après achèvement de la procédure d'interruption, la zone d'état de la table des travaux en cours est mise en position "prêt à l'exécution". Le processeur cnerche quoi faire, il parcourt les tables des travaux en attente et les tables des 40 travaux en cours et il choisit le programme ayant la priorité la 69 03459 25 2003948 plus élevée qui est prêt à 11 exécution• En cet instant la charge des processeurs est; examinée pour déterminer si l'on peut faire tourner plusieurs programmes dans le système» Interruptions dans le cas des multiprocesseurs -5 II s'agit ici d'un système de multiprocesseurs dans lequel tous les processeurs sont physiquement identiques. Il n'y a pas de relation de subordination entre les processeurs et dans ces conditions il faut veiller à ce qu'une interruption de commande ne provoque pas l'interruption de plus d'un processeur, par 10 exemple l'achèvement d'une opération d'entrées-sorties. Ce résultat est obtenu grâce au fait que le superviseur contrôle pour chaque processeur les registres individuels de masquage qui déterminent quelles conditions sont permises pour interrompre le processeur. Les zones critiques dos routines d'interruption du 15 superviseur sont "exclues". Si deux processeurs tentent d'utiliser la même routine "critique" d'interruption au même moment, le premier processeur verrouillera l'entrée de la routine et le second processeur trouvera l'entrée bloquée et sera détourné vers une autre fonction. 20 Le schéma de fonctionnement de la procédure d'interrup tion est montré par la figure i. Cette figure illustre- l'entrée de la routine d'interruption du processeur central. La séquence d'interruption commence par l'affichage d'un bit "m" dans le registre des conditions d'interruption 6-10, lors de la réception 25 par ce registre d'une condition d'interruption CI. Cela correspond à une interruption de type particulier, par exemple pour tentative de dépassement des limites assignées en mémoire. Si un bit m correspondant est affiché dans le registre de masquage d'interruption b-12, la conjonction des deux signaux sur la por-50 te 6-14- positionné le registre de débranchement d'interruption 6-16 et le processeur central déroule la séquence logique d'interruption sous contrôle câblé 6-18. Il s'agit du rangement des informations qui seront nécessaires pour le retour au programme, après le traitement de l'interruption. Les registres qui sont p5 ainsi rangésdans la pile de la s-ction d'exécution sont le registre d'adresse de la section d'initialisation 2-105, le compteur ordinal, le registre de base des données, et les bascules de commande. On teste en 6-20 si le processeur est en mode normal. Si c'est le cas on exécute (en 6-^0) les transferts suivants : 4-0 le registre de base de l'adresse d'interruption n° 1 identifiant 69 03459 27 2003948 le point de départ de lu procédure d'interruption est envoyé dans "1e registre de base du programme en cour..;, le compteur ordinal est remis à zéro cb l'on accomplit la procédure d'interruption o~-yd en mode de commande de type 1 , les contenus des registres à préserver étant rangés dans la zone désignée comme la table des travaux en cours. Lorsque la procédure d'interruption parvient au point qui spécifie un bit dans le registre de conditions d'interruption la procédure spécifique qui correspondà la condition de l'interruption est nise en jeu et son déroulement j se p-oursuit jusqu'à son achèvement, ce après quoi on fait retour au programme initial dans le mode souhaité, en 6-^4-. Si le processeur n'est pas en mode no mal on va en 6-22 où l'on teste si le processeur est en raode de commande de type 1. Si c'est le cas on passe en 5-26 où le registre de base 5 numéro 2 de l'adresse d'interruption est rangé dans le registre de base du programme, le compteur ordinal étant remis à zéro. On est êlIops conni uté en iaode.de commande de type 2 et c'est dans ce mode qu'est traitée l'interruption (en 6-28). Si l'on n'ëst pas en mode de commande de type 1 ce qui est donc 0 testé en 6-22, on parvient à l'arrêt en o_24. L'entrée en mode de coinnande du type 2, autrement dit la procédure restreinte d'interruption, est déterminée par des conditions comme l'erreur de parité, l'impossibilité d'accéder à la mémoire, et l'ordre d'arrêt. Les interruptions conduisant au mode de commande de 5 type 2 entraînent l'exécution d'un autre débranchement de routine d'interruption vers la procédure d'interruption du second niveau dont l'accès est défini par le registre de base de l'adresse d'interruption n° 2, le contenu de ce dernier étant charg dans le registre de base du programme'en cours et le compteur O ordinal étant remis à zéro en 6-26. Le processeur central exécute la séquence précédemment décrite mais correspondant au second niveau d'interruption {-6-28) et après achèvement de la procédure d'interruption il fait retour au programme en 6-^4 comme précédé mneiit. 5 Le nodule processeur détecte jusv/u'à 70. conditions différentes d' intei\ruption (tentatives d'aller en dehors de la zone de mémoire affectée, erreurs de parité, opérations invalides) lorsqu'une condition d'interruption est détectée, un bit affecté pour désigner cette condition est positionné dans le 0 registre de r/c bits des conditions d'interruption qui appartient 69 03459 28 2003948 à la section d'initialisation du processeur et qui est visible en 2-55 sur la figure 2 et en 6-10 sur la figure 6. La présence d'une condition d'interruption n'entraîne pas ipsô-facto l'interruption du module de processeur. D'une façon générale la détec-5 tion et le traitement ultérieur d'une condition d'interruption sont soumis à autorisation du superviseur. Ce résultat est obtenu au moyen du registre de masquage des interruptions qui a également 70 bits et que l'on peut voir en 2-35 sur- la figure 2, un élément unitaire de ce registre étant montré en 6-12 sur la figure 6. 10 D'une façon générale le bit de masquage 6-12 est affiché par le superviseur SUï5 et lorsqu'un bit est affiché en 6-10 par une condition d'interruption CI, l'interruption du processeur n'est ' effective que si le bit de masquage correspondant est positionné et si le module processeur est en mode normal de fonctionnement. 15 On réduit les possibilités d'interruption d'un module processeur en agissant sur le masque d'interruption 2-55, à la fois pendant le déroulement du programme utilisateur et pendant le fonctionnement du superviseur. Les interruptions qui deviennent effectives alors que l'on est sous contrôle du superviseur com-20 prennent des interruptions pour défaillance de l'équipement et les interruptions pour affichage de drapeaux dénotant l'absence de segments du superviseur. Une. telle condition d'interruption peut intervenir lorsqu'un module de processeur doit attendre pendant qu'un segment d'utilisation peu fréquente est appelé en mé-25 moire par le superviseur après détection du bit de drapeau. Les bits 69 et ?0 du masque d'interruption 2-55 ne sont pas utilisés pour masquer des conditions d'interruption. Ils sont utilisés pour faciliter le filtrage des étiquettes de l'extension de la pile et pour transférer les données au travers de 50 la section de communication du processeur central, ainsi que pour les transferts entre le registre de tête T de la pile et la file de rangement FR. Lorsqu'un bit de masquage est positionné, l'étiquette est forcée dans une configuration de non-opération pour tous les mots empruntant les cheminements précités. Lorsqu'un bit 55 de masquage est remis à zéro, les étiquettes passent inchangées. Les trois modes ou si l'on veut les trois niveaux de fonctionnement du module processeur .à savoir le ..iode normal, le mode de commande de type 1, le mode de commande de type 2) diffèrent principalement par leur susceptibilité à l'égard des inter-40 ruptions. Si les bits voulus du masque d'interruption sont effec 69 03459 29 2003948 tivement positionnés, une condition d'interruption incite le module processeur à suspendre l'exécution du programme en cours et à passer en mode de commande de type 1. Un programme utilisateur a la faculté de faire face à quelques unes des conditions d'in-5 terruption (par exemple aux débordements arithmétiques) mais il doit le déclarer au superviseur. Pour les conditions d'interruption qui n'ont pas été déclarées au superviseur, ce dernier conserve le contrôle des interrujjtions qui peuvent interrompre le module processeur en mode normal. Les interruptions autorisées 10 déj>endent de l'état du système à l'instant où le programme se déroule. C'est seulement en mode de commande de type 1 qu'un module processeur peut être mis en route sous contrôle d'un programme et c'est à ce niveau de fonctionnement que le superviseur 15 reçoit l'initiative des mains du programme utilisateur et rend l'initiative à ce programme utilisateur. La totalité du superviseur peut fonctionner en mode de commande de type 1 et occasionnellement en mode de commande de type 2, mais la plupart du temps le superviseur fonctionne en mode normal. Cela est 20 souhaitable pour que le superviseur puisse réagir en fonction de bits de présence et puisse répondre rapidement 'à des demandes extérieures dans certaines applications. Lorsque le superviseur fonctionne en mode normal la plupart des bits de masquage sont à zéro. En mode de commande de type 1 toute exécution 25 d'instruction valide qui est accompagnée de la détection de certaines conditions d'erreurs masquables provoque l'interruption du module processeur et le place en mode de commande 2. Le mode de commande 2 ne peut être interrompu que dans les conditions suivantes : impossibilité d'accéder à la mémoire, pO instruction STOP, erreurs de parité sur des données provenant de la mémoire, code opération ou variantes inconnus. Si l'on excepte l'interruption pour STOP, le mode de commande de type 2 est identique au mode de commande de type 1 quant à la susceptibilité aux interruptions. Les programmes comme les chargeurs de 55 base, les routines de diagnostic et les routines de récupération du système fonctionnent à ce niveau. Le superviseur amène le processeur en mode de coramande 2 lorsqu'il détecte une panne d'équipement» Si l'un des modules processeurs revient en mode normal 40 alors qu'un autre module processeur du système multi-processeurs 69 03459 se trouve en mode de commande de type 1, les circonstances dans lesquelles l'interruption du système est autorisée sont très rares (résultat obtenu en agissant sur le masque d'interruption), afin aue le nodule processeur qui se trouve en mode de commande 5 1 puisse desservir toutes les interruptions du système. Dans ces conditions on évite d'avoir deux modules processeurs qui réagissent à la même interruption. Lorsque tous les modules processeur sont en mode normal, les masques d'interruption sont positionnés de telle sorte que l'on n'ait jamais deux modules processeurs qui 10 soient interrompus pour la même condition d'interruption intéressant le système, (par exemple par l'achèvement d'une opération d'entrées-sorties)- Gha ue module processeur dessert ses propres interruptions- liées au processeur, par exemple le débordement de l'hor-15 loge incrémentielle, le débordement arithmétique, les erreurs de parité, et les tentatives de franchir les limites de la zone assignée en mémoire.. Après être entré en mode de commande de type 1, un module de processeur peut être interrompu (indépendamment du positionnement de son propre masque d'interruption) 20 pour variantes illégales, instructions STOP, impossibilité d'accès en mémoire, erreur de parité au niveau du processeur, etc L'apparition de l'une quelconque de ces conditions entraîne l'interruption du module processeur intéressé et son passage en mode de commande de tupe 2. Etant donné que la condition peut aussi 25 dépendre du processeur, elle est traitée par le module individuel de processeur. Si l'une quelconque de ces conditions apparaît alors que le module de processeur est en mode de commande de type 2, le module de processeur arrête totalement son fonctionnement" Selon le type d'interruption, le code opération de pG l'instruction qui est en cours de traitement dans la section d'initialisation peut être ou ne pas être transmis L la section d'exécution. Quelques interruptions (par exemple les tentatives de sortir des limites assignées en mémoire) empêchent la section d'exécution d'accomplir la partie de l'instruction qui la con-Ô'Ô cerne (G'est le cas par exemple pour une instruction de rangement de la pile en mémoire). Aussi longtemps que l'interruption n'a pas été traitée, l'instruction de débranchement vers la routine d'interruption appelle une séquence automatique qui est initia-lisée en réponse à tout bit d'interruption non masqué. Pendant 40 l'exécution de ce débrancxiement vers la routine d'interruption 2003948 69 03459 3"! 2003948 les contenus du registre- de "base du programme du compteur ordinal et du registre d'adresses de la section d'initialisation, ainsi que des bascules de contrôle et du registre des conditions d'interruption sont rangés dans la pile du processeur, les drapeau:: 5 de coriinan.de de 11 interruption étant positionnés dans son registre de tête T. Les fonctions de ces drapeaux sont -les suivantes : a) - Le bit 11 indique si oui ou non la pile était en mode extension à l'instant de l'interruption. 10 b) - Le bit 12 indique si les limites d'une zone supplénentaix-e étaient positionnées à l'instant de l'interruption. c) - Le bit 13 indique si la zone supplémentaire était une zone de lecture ou une zone d'écriture (O = lecture, 1 = écriture) d) - Le bit 14 indique si un débranchement vers un sous-programme 15 était en cours ou non. e) - Le bit 15 indique si un retour à partir d'un sous-programme était en cours on non. f) - Le bit 16 et le bit 17 indiquent le nombre de syllabes impliquées dans la dernière instruction exécutée, avant le traite tement du débranchement vers la routine d'interruption. Lorsque le module de processeur revient en mode normal par retour de la routine d'interruption, ce nombre de syllabes doit être soustrait du décompte de syllabes emmagasiné pendant le débranchement d'interruption si l'on souhaite répéter 25 la dernière instruction. Les bits 18 et 19 concernent uniquement les débranchements et retours de sous-programmes et ils indiquent les types de débranchement ou de retour qui sont en cours d'exécution. Le code est le suivant : pO Bit 18 Bit 19 Type 0 0 non-retour au segment 0 1 retour au segment 1 0 retour intra-segment 1 1 procédure 35 Les 11 bits de poids le plus faible, autrement dit les positions binaires allant de à pQ inclus, servent uniquement pour définir le type et la cause des interruptions se produisant pendant l'exécution d'une instruction de débranchement vers un scus-progi'amme ou de retour d'un sous-programme. 69 03459 32 20 Ô 3948 Les bits 15 à 30 sont rangés à titre d'information de contrôle lors du débranchement vers la routine d'interruption mais ils ne sont pas récupérés au -ornent du retour de la routine d'interruption. Ces bits constituent uniquement une assistance 5 pour 1'accomplissement de la routine d'interruption. Un module processeur est ramené en mode normal à partir du mode de commande de. type 1 par l'exécution d'une instruction de retour de la routine d'interruption. De même un notule de processeur est ramené du mode de commande.de type 2 au mode de commande de type 10 1 par l'exécution de l'instruction de retour de la routine d'interruption. Pendant l'exécution de l'instruction de retour de la routine d'interruption, le registre d'adresses de la section d'initialisation, le compteur ordinal et le registre de base du programme en cours sont replacés dans leur état initial à partir 15 des valeurs qui ont été rangées dans la pile du processeur au cours de l'exécution de l'instruction de débranchement vers la routine d'interruption. Si le module processeur est en mode de commande de type 1, l'exécution d'une instruction de retour de la routine d'interne- ruption ramène le module processeur en mode normal et au traitement du programme antérieurement en cours. Si le module de processeur est en mode de commande de type 2, il est ramené en mode de commande de type 1. Il est aussi possible au processeur de revenir en mode normal sans revenir au programme. Ce résultat 25 est obtenu par l'exécution des instructions de rangement de la pile dans le registre qui remet à zéro le bit de mode de commande, 67 ou 68, du registre de masquage d'interruption, 2-53» (voir aussi 6-12). Le traitement des interruptions provoquées par des 30 incidents concernant la mémoire, comme une erreur de parité en mémoire ou l'impossibilité d'accéder à la mémoire, est facilité par le registre des incidents du processeur montré en 2-315 sur la figure 2, ainsi eue par le registre des incidents en mémoire montré en 3-12 sur la figure 3. Le contenu du registre des inci-35 dents du processeur 2-315 peut être transféré dans le registre de tête ï de la pile au moyen des variantes de l'instruction de chargement de la pile à partir du registre. Le contenu du regis-trecLes incidents de mémoire 3-12 peut être transféré dans le registre de tête ï au moyen d'une variante spéciale de l'instruo-4-0 tion de chargement de la pile à partir de la mémoire o 69 03459 35 20Ô3948 gÀiil^AU I yGi»Ijx-JXCa..).j jJ 1 xi. j- ICr; iOol'.J.LCI. i j 11*. - j- -L Ju j -irGoI-J J.LL Hrli'.ô IUJO _L O... l'i—i i.O L-- I, .1'. .uTj U+[i i^X'.uXC-i.O 1J ' J.I-— -L - LCy'—'j-lj J.JuuiL ÏEitldJi 5ICLT Eri! ~ùz> O Gi i 1) x"_L x Gi. 1 xl't j-'-iir £1L.TL1J X'i1 x Cx^ 2 5 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 14 15 16 17 18 19 20 21 22 25 24 25 26 27 28 29 30 51 ^2 Registre T erreur sur aocuis de mémoire 1 Erreur sur nodule de mémoire 2 Erreur sur nodule de mémoire 5 Erreur sur module de mémoire 4 Erreur sur module de mémoire 5 Erreur sur module de mémoire 6 Erreur sur module de mémoire 7 Les registres d'in-Erreur sur module cidents en de mémoire 8 Erreur sur module de mémoire 9 memoxre des modules de mémoire définissent Erreur sur module le type de mémoire 10 d'erreur Erreur sur module de ;:ié:ioire 11 Erreur sur module de mémoire 12 Erreur dur module de mémoire 15 Erreur sur module de mémoire 14 Erreur sur module de mémoire 15 Erreur sur module de mémoire 16 Achèvement sui* module d'entrées-sorties 1 Erreur sur nodule d'entrées-sorties 1 -r 4- 4_- -i Interrup Interruption par le * , , - oions e.i module processeur 1 ternes 69 03459 34 20Ô3948 TABLEAU I (suite) 20 21 22 23 24 25 26 ' 27 28 29 30 31 32 33 34 33 36 37 38 39 40 41 42 43 44 45 46 47 48 49 33 34 35 36 37 33 39 40 41 42 43 44 45 46 47 48, 14n 15 16 17 18 19 20 21 22 23 24 25 26 27 > Registre S Achèvement sur module d1entrées-sorties 2 Erreur sur module d'entrées-sorties 2 Interruption par le nodule processeur 2 Interruption par le pupitre de 11 opérateur en provenance des nodules d'entrées-sorties et des nodules processeurs Registre T Positions en réserve pour interruptions externes (en vue des extensions futures) 1/16 s 1 s 1o s Horloge externe de temps réel Registre de hase de référence zone normale zone supplémentaire Violation des limites de zone pile En réserve Débordement de l'horloge incrémentale En réserve Débordement inférieur exposant Débordement supérieur exposant Débordement inférieur mantisse Débordement supérieur mantisse Opérande non-normalisé Division par zéro En réserve erreurs arithmétiques 69 03459 35 20Ô3948 TaBxiEAU I (suite) 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 *67 (CL1) *68 (Ci,*2) *69 : * 70 \ 29 30 .31 32 32 34 35) 36 37 38 39 40 41 42 43 Registre S 44 45 46 47 48 in reserve Tentative d'écriture dans une zone supplénenrairs de. mémoire en protection d'écriture Ecriture en mémoire rapportée au registre de x-éféx'ence de base Transfert d'un registre de classe ^ à la pile et vice-versa Transfert en pile d'un registre de classe B Transfert d'un registre de classe B vers la pile Transfert en pile d'un registre de Classe G En réserve Etiquettes non valides Bit d'étiquette d'interruption positionné las d'accès en mémoire Erreur de parité en mémoire Instruction STOP Code opération ou /variante inexistant Instruction non valide - Inter-rup.du proc .I\ ; lecture d'étiquettes modifiées ; initialisation de progr. d'E/S;Insertion de bits d'étiquettes; Registre d'adresse d'initialisation remis à zéro Transfert de pile à registre classe C non valide en mode normal-masque: mode de commande'! ou2 Retour de la routine d1interruption non valide en mode norn.ai-masque:moae de commande 1 ou 2 Forçage des étiquettes à zéro pour les données allant du registre ï vexvs la file de rangement Forçage des étiquettes à zére pour les données en transit vers le fond de la pile, ou en provenance de celui-ci 69 03459 36 2003948 * Il n'y a pas en fait de "bits de masquage pour les conditions d'interruption 67 et 68. Les bits d'affichage du raode de commande (1 ou 2) font office de bits de masquage pour ces interruptions. ** Il n'y a pas de véritable condition d'interruption associée 5 avec les bits de masquage 69 et 70 (Pile de rangement et pile) Oes bits et les bits de mode de commande ('i ou 2) sont chargés avec le reste du Registre de masquage des interruptions. Le tableau 1 ci-dessus contient la liste des conditions d'interruption reconnues dans le présent système de traitement de l'information. Dans la première colonne figure chaque fois la position binaire assignée à la condition d'interruption, à la fois dans le registre des conditions d'interruption 2-35 et dans le registre de masquage des conditions d'interruption 2-53-jJans -la seconde colonne on trouve chaque fois la position binaire correspondante dans le registre de tête ï et dans le registre 15 de second rang S de la pile de la section d'exécution du processeur, les contenus du registre des conditions d'interruption ou du registre de masquage d'interruption étant transférés dans ces registres T et 8 pendant l'exécution d'une instruction de transfert des registres à la pile. Les positions binaires 14 à 48 du 20 registre ï reçoivent les bits 1 à 35 des registres de conditions d'interruption ou de masquage,•alors que les positions binaires 14 à 48 du registre S reçoivent les bits 36 à 70. Oe changement de format doit être accompli avant que l'on puisse exécuter une instruction de rangement de la pile dans le registre pour posi-25 tionner le registre.de masquage des interruptions. L'utilisation d'une telle instruction de rangement de la pile pour le position nement du registre de masquage des interruptions et du registre des conditions d'interruption est limitée par le fait qu'elle n'est possible que si le module processeur est dans l'un des 50 deux modes de commande. Par contre, la consultation du registre des conditions d'interruption est à la fois possible et valable, quel que soit le mode de fonctionnement de la machine, si le registre des conditions d'interruption est correctement masqué. -Le registre des conditions d'interruption est remis à zéro s'il 55 est consulté alors que la machine est en mode de commande, lar contre, il n'est pas remis à zéro si l'on effectue un transfert de ce registre par une instruction de chargement de la pile alors que l'on est en moce normal de fonctionnement. 69 03459 3.7 20Ô3948 Ainsi que le montre le tableau 1 les bits d'interruption 1 à 16 sont les drapeaux d'erreurs en mémoire attribués aux 16 modules de mémoire du système. Lorsqu'un module de mémoire rencontre une parité incorrecte sur un mot de contrôle entrant 5 ou sur des données entrantes ou sortantes il positionne le bit d'interruption correspondant dans le registre des conditions d'interruption. Etant donné qu'un module de mémoire ne corrige pas les parités incorrectes sur les données sortantes, le module qui reçoit ces données devrait également reconnaître l'erreur. 10 Chaque module de mémoire contient un registre des in cidents en mémoire ?-12 qui définit le type de l'erreur en mémoire. Une variante spéciale de l'instruction de chargeaient de la pile à partir de la mémoire permet de transférer le contenu du registre des incidents de mémoire à destination de la pile du 15 processeur en vue d'analyser le type d'erreur. Les bits d'interruption 17 à 22 sont positionnés par les interruptions extérieures en provenance des modules d'entrées-sorties ou drautres modules processeurs. Une interruption pour achèvement d'une opération d'entrées-sorties représente un type d'interruption ne 20 correspondant pas à une erreur ou incident, puisqu'elle signifie simplement qu'un module d'entrées-sorties a achevé -une tâche déterminée. Far contre, une interruption pour erreur sur un module d'entrées-sorties fait savoir au superviseur qu'un incident affecte un module d'entrées-sorties. Chaque module 25 d'entrées-sorties contient encore son propre registre des incidents qui fournit des renseignements supplémentaires sur le type d'erreurs affectant le module d'entrées-sorties en question. Le registre des incidents du processeur est un registre de 26 bits, organisé de la façon suivante : les bits de 19 à 30 24 indiquent l'organe particulier du module de processeur qui est en cause. La correspondance est la suivante : bit 19 : index/file des registres de base; rangement en simple longueur seulement; bit 20 : section d'initialisation; extraction ou rangement en 35 simple longueur seulement; bit 21 : file temporaire; extraction en simple longueur seulement; bit 22 : file de rangement; rangement en simple longueur seulement ; bit 23 : pile; extraction ou rangement par groupes de quatre mots 40 bit 24 : instructions à venir; extraction seulement par groupes de quatre mots. 69 03459 38 2 0 6 3 9 48 Si le "bit 25 est positionné, cela signifie que la référence en mémoire vise un rangement. Sil est à zéro, cela indique une extraction. Le "bit 26 indique que l'on a relevé une étiquette invalide ou une étiquette d'interruption lors d'une ten-5 tative d'extraction à destination du magasin des instructions à venir. Lorsque l'on examine le registre des incidents du processeur, alors que ce dernier fonctionne dans l'un des deux modes de commandes, le registre d'incidents est remis à zéro. ïar contre, il reste inchangé si l'examen a lieu en mode normal. 10 Lorsqu'un module processeur exécute une instruction d'in terruption de calculateur N (voir la figure 11 concernant le schéma de fonctionnement de la section d'initialisation) le bit d'interruption correspondant (19 ou 22) qui est assigné à ce processeur est positionné dans le registre des conditions d'in-15 terruption du module processeur interrompu. Si le nodule processeur est en mode de commande de type 1 et se trouve effectivement en fonctionnement, il néglige cette interruption, quelle que soit la configuration du masque. Si le module processeur est un mode de commande de type 2, il néglige également cette inter-20 rupticn. Si un processeur est arrêté en mode de commande 1, avec un drapeau de HALTE 1 positionné, l'interruption provoque le redémarrage du processeur. Le tableau 2 indique comment le processeur réagit aux conditions d'interruption lorsqu'il est en mode normal. 69 03459 39 2063948 TABL5AU II REACTION DU kODULE PROCESSEUR AUX CCOITICKS D1 INTERRUPTION Conditions d' Bits du masque r.. ode CCI Interrup- Bits du interruption registre 1 pour 1 pour ? tion du registre des con posi comman proces de condi ditions tionné de seur tions d' d'inter 0 pour 0 pour ? interrup ruption remis normal tion po et du re -à zéro sitionné gistre de ? masquage Erreur sur les modules de mé 1-16 0 1 oui non. oui moire 1 à 16 y\ . 1 1 oui non OUI 0 0 oui non oui 1 0 oui oui oui Achèvement sur module d'entrées- V sorties 1 17 0 1 oui non oui s. 1 1 oui non oui Achèvement sur y module d'entrées- 20 0 0 oui non oui sorties 2 1 0 oui oui oui Erreur sur \ module d'entrées- 18 0 1 oui non oui sorties 1 1 1 oui non oui Erreur sur modu S le d'entrées- 21 0 0 oui non oui sorties 2 / 1 0 oui oui oui Interruption par \ le module pro 19 0 1 * * oui cesseur 1 > 1 1 * * oui Interruption par le module pro 22 0 0 oui non oui cesseur 2 1 0 oui oui oui Violation des li 36 0 1 oui non oui mites dans le re 1 1 oui non oui gistre de base de 0 G ' oui non oui référence 1 0 non oui oui Violation des li 37 0 ✓t / oui non oui mites d'une zone 1 1 oui non oui normale 0 0 oui non oui 1 0 non oui oui * Si le module pr ocesseur est en position HALTE ,en mode de corn de 1, 1'interruption entraîne le redéc arrage, sinon 1' exécuti 1 iris o ^ mz o n_c n ost termir.Se ^ t ^ : jr t srrucci en n'est 69 03459 40 20Ô3948 TABLEAU II (Suite) Violation des li 38 0 1 oui non oui mites d'une zone 1 1 oui non oui supplémentaire 0 0 oui non oui 1 0 ÎTon oui oui Violation des li 39 0 1 oui non oui mites de pile 1 1 oui non oui 0 0 oui non oui 1 0 * oui oui Débordement de 41 0 1 oui non oui l'horloge incré 1 1 oui non oui mentale 0 0 oui non oui 1 0 oui oui oui Débordement infé 4-3V rieur exposant Débordement supé 44 0 1 oui non oui rieur exposant Débordement infé 4-5 1 1 oui non oui rieur mantisse > Débordement supé 46 0 0 oui non oui rieur mantisse Opérande non 47 1 0 * oui oui normalisée Division par zéro N 00 •3" Tentative d'écri 52 0 1 oui non oui ture dans une zone 1 1 oui non oui supplémentaire de 0 0 oui non oui mémoire en protec 1 0 non oui oui tion d'écriture Ecriture en mémoi 53 0 1 oui non oui re rapportée au 1 1 oui non oui registre de réfé 0 0 oui non oui rence de base 1 0 non oui oui Transfert d'un re 54 0 1 oui non oui gistre de classe A 1 1 oui non oui à la pile et 0 0 oui non oui vice-versa 1 0 non oui oui Transfert en pi 55 0 1 Oui non non le d'un registre 1 1 oui non oui de classe B 0 0 oui non oui , 1 0 non oui oui * L'instruction en cours et toutes les instructions de la file d'attente d'exécution sont exécutées avant que le superviseur ne reprenne le contrôle. 69 03459 41 20Ô3948 Transfert d'un 56 0 1 oui non oui registre de 1 1 oui non oui classe B vers 0 0 oui non oui la pile 1 0 non oui oui Transfert en 57 0 -1 oui non oui pile d'un re 1 i oui non oui gistre de 0 0 oui non oui classe C 1 0 non oui oui Etiquettes non 59 0 1 * * oui valides 1 1 * * oui 0 0 * * oui 0 * * oui Etiquettes d'in 60 0 1 * * oui terruption 1 1 * * oui 0 0 * * oui 1 0 * * oui Pas d'accès à 61 0 1 * * oui la mémoire 1 1 * * oui 0 0 * • * oui 1 0 * oui Erreur de pari 62 0 1 * * oui té en mémoire 1 1 * * oui 0 0 * * oui 1 0 * * oui Instruction STOP 65 0 1 * HALTE oui 1 1 * * * oui 0 0 * STOP oui 1 0 * oui oui Code opération 64 0 1 oui oui ou variante non 1 1 oui oui existant 0 0 non oui * Voir le tableau 3 STOP correspond simplement au positionnement du bit de condition. ** Si l'on est en mode de commande 1 : aller en mode de c ommande 2 Si l'on est en mode de commande 2 : aller à STOP 69 03459 42 20 Ô 3948 Instruction illégale-Interruption du processeur N; lecture d'étiquettes modifiées; initialisation de programme d ' en-trées-sorties; insertion de bits à1 étiquettes 65 • 0 1 oui non oui 1 1 oui non oui 0 C oui non oui 1 0 non oui oui 15 Hegistre d'adresse 66 0 1 oui non oui de la section d'i 1 1 oui non oui nitialisation 0 0 oui non oui remis à zéro 1 0 oui oui oui Transfert de la 67* 0 1 oui non oui pile vers regis * 1 .oui non oui tre de classe C 0 0 non oui oui * 0 non oui oui Retour de la rou 68** 0 1 oui non oui tine d'interrup * * 1 oui non oui tion 0 0 non oui oui * * 0 non oui oui * Une instruction de transfert de la pile vers des registres de 20 25 classe G n'est pas valide, sauf en mode de commande 1 ou 2; il n'y a pas de masque effectif. ** L'instruction de retour de la routine d'instruction n'est valide qu'en mode de commande 1 ou 2; il n'y a pas de masque proprement dit. Le bit 2p du registre des conditions d'interruption est affecté au pupitre de l'opérateur et il est traité comme une interruption pour achèvement d'une opération d'entrées-sorties. Les bits 24 à 32 sont en réserve et ils sont câblés à des récepteurs du module processeur afin de pouvoir faire face à des interruptions externes dans un système étendu. Les bits 35, 54 et 35 sont assignés à une horloge externe de temps réel.. Les bits 36, 37» 58, 59 d'une part et 43, 44, 45, 46, 47, 48 d'autre part, sont utilisés pour indiquer respectivement les tentatives de franchir les limites assignées en mémoire et les erreurs arithmétiques. Le bit d'interruption 41 est positionné lorsque l'on 35 détecte un débordement de l'horloge incrémentale. Il s'agit d'un compteur de 32 bits organisé de la façon suivan.e. Les bits 1 à 18 constituent la partie programmable qui est incrémentée à chaque débordement de l'horloge libre, à savoir toutes les 0,8192 milliseconde alors que les bits 19 à 32 de ce même registre consti50 69 03459 4-3 20Ô3948 tuent une horloge libre cyclique qui avance au rythme d'hoi'loge de 20 LHz. Le temps maximal nécessaire pour parvenir au débordement de l'ensemble de l'horloge incrémentale (bits 1 à 32) est de 3,579 minutes. Les bits 1 à 17 peuvent être positionnés à 1' 5 avance à une valeur donnée au moyen d'une instruction de rangement de la pile en registre. Les bits 1 à 52 de l'horloge incrémentale peuvent être examinés au moyen d'une instruction de transfert de registre à pile, et si cette instruction se déroule en mode de commande les bits 1 à 32 sont automatiquement remis à 10 zéro. L'horloge incrémentale peut aussi être examinée en mode normal et dans ce cas son contenu n'est pas modifié. Etant donné que tous les bits sont extraits lors d'un mouvement de registre à pile mais que 17 bits seulement sont intéressés par le rangement de pile à registre, une routine con-15 tenant ces deux instructions qui ne prend pas plus de 0,8192 milliseconde peut être exécutée sans perdre un pas de comptage. Etant donné que l'horloge incrémentale est un fonctionnement permanent, les interruptions indésirables sont possibles. Le bit 41 du registre de masquage des conditions d'interruption devrait 20 être remis à zéro pour bloquer les interruptions de l'horloge. Les bits d'interruption 59, 64 et 68 sont utilisés pour indiquer les instructions, variantes et étiquettes non existants et non-valides. Les instructions non existantes sont traitées comme des instructions de non opération. 25 Les codes octaux d'instructions qui suivent ne sont pas utilisés et sont traités comme des instructions invalides : 15, 37, 47, 54 et 64. La survenue de n'importe lequel de ces codes opérations dans une chaîne d'instructions provoque le positionnement du bit d'interruption 64. La survenue d'une configu-30 ration de variante non existante provoquerait également le positionnement du bit d'interruption 64. Ces variantes sont les suivantes : YÂHiLJEPE CODE 0CT..L Base (B) X5,-X6 et X7 35 numéro de processeur (17) 00,20, 40 et 60 numéro du module d'entrées- CO, 20, 40, 60, 17, 37, 57 sorties T et 77 Registre (H) OX, 1X,35,36,43,44,45,45,47,5X 60,70,71,73,74 et 75 Conversion (Vo) X1 et X5 40 NB: dans ce qui précède "X" symbolise n'importe qu-^1 chiffre 69 03459 44 2003948 Le bit 65 signifie que l'interruption porte sur une instruction illégale masquable : interruption du processeur ou calculateur n° N, extraction d'étiquettes modifiées, initialisation d'un programme d'entrées-sorties ; positionnement de bits 5" dans une étiquette. Les bits d'interruption 54-, 55 s 56, et 57 sont utilisés pour indiquer des variantes non valides des instructions de transfert de registre à pile ou de rangement de pile en registre. Le tableau 5 ci-dessous dcnne la liste des variantes qui sont reconnues corme variantes non valides si iC elles ne sont pas correctement masquées. Les variantes sont groupées en trois catégories : (1) registre de classe A, pour l'usage général; (2) registre de classe B, réservé au superviseur; O) registre de classe C, utilisé dans le traitement des intérim ruptions. TABLEAU in VARIANTES DE loTHE ITOK VALIDE n S J>-h CLASSE Classe A Classe B REGISTRE CODE OCTAL Registre cyclique de décalage 40 Compteur ordinal 4-1 Registre de commande de débranchement 42 Registre du pointeur d'extension de 20 pile Registre d'index de base 21 Registre de base du programme 22 en cours Registre de base des données 23 Registre de limite inférieure de 24 zone normale Registre de limite supérieure de 25 zone normale Registre de limite inférieure de 26 zone supplémentaire 30* 31 Registre de comptage de programme_ Registre de limite inférieure de pile Registre de limite supérieure de 32 "pile Registre de base de la table de 33 référence * variante non existante pour le cas du rangement de la pile en registre ' - 69 03459 45 20Ô3948 Registre de limite de la table 34 de référence Registre CNR 57* Classe C: .Registre d'adresse de base d'inter- 61 ruption 1 Registre d^adrësse de base d'inter- 62 ruption 2 Registre des incidents de processeur 63 Registre d'adresses en mémoire asso- 64 ciative Registre ITC 65 Registre de masquage d'interruption 76 Registre des conditions d'inter- 77 ruption * variante non existante pour le cas du rangement de la pile en registre. Le bit 54 du registre de masquage d'interruption est utilisé pour masquer les variantes non valides intéressant les registres de classe A adressés- soit par une instruction de registre à pile (extraction) soit par une instruction àe pile à registre (rangement), bit 55 du registre de masquage est utilisé pour masquer les variantes non valides pour les registres de classe 3 adressés pai* l'instruction de registre à pile. Le bit 55 du registre de masquage est utilisé pour masquer les variantes non valides pour les registres de classe B adresséés par une" instruction de pile à registre. Enfin le bit 5? du registre de masquage estjiitilisé pour masquer les variantes non valides pour les registres de classe C adressés par une instruction de registre à pile. Enfin les drapeaux de mode de commande 1 et dejmode de commande 2 (bits 67 et 68 de registre des conditions d'interruption) sont utilisés peur masquer les variantes invalides pour les registres de classe C adressés par une instruction de pile à registre. Le bit d'interruption 59 indique l'utilisation d'étiquettes nen valides. On trouvera ci-après la liste des appels à a mémoire qui sont susceptibles d' être interrompus pour étiquettes non valides, avec chaque fois l'indication des corfigurations d'étiquette valides.Le bit d'interruption 60 indique le positionnement a'un bit d'étiquettes d'interruption et s'il est démasqué l'interruption est traitée inconditicnnclleaent. 69 03459 46 20Ô3948 APPEL A LA 1.2...0IHE ETIQUETTES VALIDES Extraction de mémoire vers registre d'adresse (zone supplémentaire) 5 Extraction de mémoire (zone supplémentaire) conditionnelle Extraction du mot de contrôle de débranchement pendant le débranchement vers un sous-progratine '10 Extraction du mot de contrôle de retour pendant un débranchement vers un sous-programme ou un retour Extraction du registre de limite de la table de référence des procédures appelées pendant le débranchement vers un sous-programme Extraction du registre de base de la table de référence et de la limite de la table de référence pour les procédures appelées pendant le débranchement vers un sous-programme Extraction normale du programme par le magasin des instructions à 25 venir 15 20 Toutes étiquettes sauf débranchement Toutes étiquettes sauf débranchement Seulement débranchement Seulement indirection Non-opération seulement Zone supplémentaire seulement Non-opération seulement Une interruption pour instruction STOP, qui est indiquée dans le bit d'interruption 63 est traitée différemment afin de procurer un BALTE de mode normal sous contrôle du . 'programme. Lorsque le mod.ule processeur d'un mode normal et que 30 le bit de masquage 63 est à zéro, l'exécution d'une instruction STOP aboutit à un arrêt du programme sans entrer dans une séquence de débranchement vers la routine d'interruption. (On trouvera au tableau II les résultats procurés par d'autres configurations de masque dans d'autres modes). 55 Le bit d'interruption 65 est positionné lorsque le registre d'adresse de la section d'initialisation est remis à zéro. Il y a des cas où il n'est pas souhaitable de traiter les" interruptions si le registre d'adresse de la section d'initialisation contient une adresse absolue. Le traitement d'une 4C interruption ne commencera pas aussi longtemps que le bit 66 du registre des conditions d'interruption n'aura pas été positionné, le contrôle étent rendu au programme en cours jusqu'à remise à zéro du registre d'adresse de la section d'initialisation. 69 03459 47 20 Ô 39.48 Le tableau II indique la façon dont le module de processeur réagit en fonction des diverses conditions d'interrup tien. Les actions indiquées dans la sixième colonne (interruption du processeur eu non) varient selon le mode de fonctionnement dans lequel se trouve le processeux*. Si le processeur est en mode normal un "1" dans le tableau II indique un passage en mode de commande 1. Si le processeur est en mode de commande 1 un »1" détermine le passage en mode de commande 2, et enfin si le processeur est en mode de commande 2 un "1" détermine le passage à HALTE. Le défaut d'accès en mémoire, les erreurs de parité et les interruptions pour étiquettes sont considérées comme des conditions physiques d'interruption. Le tableau IV ci-dessous indique les instructions et fonctions qui sont susceptibles d'être affectées par ces interruptions et l'action correspondante .pour toutes les configurations de masque-et pour les différents modes. TABLEAU IV INTERRUPTIONS POUR ERREUR Conditions d' Instructions ou fonctions Réactions du processeur interruption affectées critique ITon accès à Extraction de mémoire vers 1 la mémoire pile file temporaire Extraction de mémoire vers 2.Exécuter 1'instxmctioi pile (absolu) Extraction d'étiquettes 3.Achever le traitement modifiées d'instruction en cours dans la section d'initialisation 4.Si l'on est en mode de commande 1 exécuter le débranchement vers la routine d'interruption 5.Si l'on est en mode de commande 2, arrêter le fonctionnement 6.Si l'on est en raode normal et si le bit de masquage est positionne, exécuter la séquence de débranchement vers la routine d'interrurtien 69 03459 48 2003948 7.Si l'on est en mode normal et si le bit de masquage n'est j;as positionné poursuivre le traitement en séquence Indexation Indexation et modification d' index 1.Arrêter l'exécution de l'instruction en cours 2.Si l'on est en mode de commande 1, exécuter la séquence de débranchement à la routine d'interruption Extraction de mé3. moire vers registre d'adresse 4. Extraction conditionnelle de mémoire (première) c Débranchement pour modification d'index et test Si on est en mode de commande 2, arrêter Si l'on est en mode normal et si le bit de masquage est positionné, exécuter la séquence de débranchement vers la routine d1 interruption Si l'on e:--.t en mode normal et si le bit de masquage n'est pas positionné arrêter. Ranger la pile 1.Effacer le mot (dans la file de ran- en mémoire gement) qui est la cause de l'in- •o -î-i terru-otion. Ranger la pile à l'adresse absolue en mémoire 2.Exécuter l'instruction de rangement de la pile qui est en cours. 3.Si l'on est en mode de commande de type 1,exécuter la séquence de débranchement de la routine d'inter-runtion. 4. Si on esi en mode de commande de type 2, arreter. 5.Si l'on est en mode normal et si le bit de masquage est positionné, exécuter le débranchement à la routine d'interruption. 6.Si l'on est en mode normal et si le bit de masquage n'est pas positionné continuer en séquence. Débranchement vers un sous-programme Retour d'un sous-programme Extraction 1.arrêter l'exécution de l'instruction en cours 2.Si l'on est en mode de commande de type 1,exécuter la séquence de débranchement à la routine d'interruption. 3.Si l'on est en mode de commande de type 2, arrêter. 4.Si l'on bit de ï executen est en mode masquage est ;orn .1 et ie dé branchement vers la routine d'interruption. 69 03459 4-9 20Ô3948 Si l'on est en raode normal et si le "bit de masquage n'est pas positionné arrêter. D ébr anche neiit vers un sous-prcgranme Retour d'un s o us-pr ogr aime Rangements 1.Poursuivre l'exécution de l'instruction en cours 2.Si 1 ' on en incde de commande de type 1, exécuter la séquence de débranchement à la routine d'interruption. 3.Si l'on est en mode de commande- de type 2, arrêter. 4.Si l'on est en mode normal et si le bit de masquage est positionné, exécuter le débranchement vers la routine d'interruption. 5.Si l'on est en mode normal et si le bit de masquage n'est pas positionné, arrêter. Extraction d' 1. Achever l'instruction en cours• instructions de 2.Si l'on est en mode de commande de programme(Appel type 1,exécuter la séquence de dé-des instruc- branchement à la routine d'inter- tions à venir) ruption. 3.Si l'on est en mode de commande de type 2, arrêter 4.Si l'onest en mode normal et si le bit de masquage est positionné, exécuter le débranchement vers la routine d'interruption. 5-Si l'on est en mode normal et si le bit de masquage n'est pas positionné arrêter. Erreur de Extraction de 1.Placer le mot affecté par l'erreur parité la mémoire vers dans la file temijoraire la pile 2.Exécuter l'instruction intéressée extraction de 3.Achever le traitement de l'instruc-la n^oir vers section l«pxX.(*4re«M d'initialisation. a oo u aj 4.Si l'on est en mode de commande 1 Extx-aire et mo- exécuter le débranchement vers difier étiquettes le programme d'interruption. Extraire de né- 5-Si l'on est en mode de commande 2 moire condition- arrêter. neilement (seconde extraction)- -, . , -, -, , . -, 0.&1 l'on est en mode normal et si le bit de masquage est positionné', exécuter le débranchement vers le d'interruption. 69 03459 50 2003948 Indexation Indexation et modification d1 index. Extraction de la mémoire vers le registre d' adresses Extraction de mémoire conditionnelle (première extraction) Débranchement après modification d'index et test. Débranchement vers un sous-programme . Retour d'un sous-programme (Extractions) 7.Si .'on est en mode normal et si le bit de masquage n'est pas positionné continuer en séquence. 1.Ke pas permettre l'introduction de mots affectas par une erreur de parité dans la file des descriptifs. 2.Arrêter l'instruction en cours 3.Si l'on est en mode de commande 1, exécuter le débranchement vers la routine d'interruption. 4.Si l'on est en mode de commande 2, arrêter. 5.Si l'on est en mode normal et si le bit de masquage est positionné, exécuter le débranchement vers la routine d'interruption. 6.Si l'on est en mode normal et si le bit de.masquage n'est pas positionné arrêter. Extraction d'' instructions de programme (appel des instructions à venir) Interrup- Extraction de tion pour la mémoire étiquettes dans la pile Extraction de la mémoire dans la pile (adresses absolues) •1.Achever l'instruction en cours. 2.Si l'on est en mode de commande 1 exécuter le débranchement vers la routine d'interruption. ô.Si l'on est en mode de commande 2, arrêter. 4.Si l'on est en mode normal et si le bit de masquage est positionné, exécuter le débranchement vers la routine d'interruption. 5.Si l'on est en mode normal et si le bit de masquage n'est pas positionné, arrêter. 1.Placer le mot affecté par l'erreur dans la file temporaire. 2.Exécuter l'instruction intéressée. p.Achever le traitement de l'instruction en cours dans !*a section d' initialisation 4.Si l'on est en mode de commande 1 poursuivre en séquences. 03459 2003948 Extraire de mémoire et modifier étiquettes . Extraire de mémoire c ond i t i om e 11 e nen t (seconde extraction) Indexation Indexation et modification d'index Débranchement après modification d'index et test 5.Si l'on est en mode de commande 2, poursuivre en séquences. 6.Si l'on est en node nornai et si le bit de masquage est positions/;, exécuter le débranchement vers la routine d'interruption. 7-Si l'on est en node normal et si le bit de masquage n'est pas po- Extraction de la mémoire vers la pile Extraction de nié noire conditionnelle (première extraction) Débranchement d'un sous-progr amne Retour d'un sous-progranne (Extr ac t i ons) 1. Insérer le rcot en cause dans la file des descriptifs 2.Si l'on est en mode de commande 1 arrêter 1'exécution de 1'inscription et exécuter le débranchement vers la routine d'interruption. Si l'on est en mode de commande de typer 2, arrêter l'exécution de l'inscription et arrêter le fonctionnement. 4.Si l'on est en mode normal et si le bit de masquage est positionné arrêter l'exécution de 1'instrue-tion et exécuter le" débranchement vers la routine d'interruption. 5-Si l'on est en mode normal et si le bit de masquage n'est pas positionné, arrêter. Extraction d'instructions de programme (appel des instructions à venir) 1.Poursuivre en séquence jusqu'à ce que le mot: affecté par l'erreur se trouve au sonnet du magasin des instructions à venir. 2.Si l'on est en mode de commande de type 1,exécuter le débranchement à la routine d'interruption. 3-Si l'on est en node de commande de type 2, arrêter 4-.Si l'on est en mode normal et si le bit de masquage est positionné arrêter. 5-Si l'on est en mode normal et si le bit de masouare n'est nas positionne. °eter. 69,03459 52 20 6 3948 Les interruptions pour erreurs concerne/ont le fonctionnement de la pile du processeur sent traitées de la façon suivante . a.- Une interruption pour impossibilité d'accéder à la mémoire 5 détermine le passade de la pile du processeur en mode local et l'on suit la procédure décrite au tableau 4 ci-dessus, autrement dit les étapes de 2 à 7 concernant l'instruction d'extraction de la mémoire vers la pile. Bo - Une interruption pour erreur de parité permet le transfert 10 du mot affecté par l'erreur à destination de la pile du processeur. On applique ensuite la procédure décrite au tableau IV (étapes 2 à 7) pour l'instruction d'extraction de la mémoire vers la pile. La figure 7 montre l'organigramme suivi pendant le 15 traitement d'une interruption. Une demande émanant de l'utilisateur ou une interruption en provenance du système passe le contrôle du processeur au programme superviseur qui fonctionne en mode de commande de type 1 (blocs 7-10). Ensuite l'état du processeur, autrement dit l'image binaire des registres actifs du 20 processeur est préservée par introduction dans la zone de la table des travaux en cours (voir en 7 -12). Enfin les bits de masquage sont positionnés en 7-14 en vue de traiter l'interruption. Reste à déterminer, en 7-16 si un autre processeur est en train de traiter cette interruption. Si tel est le cas 25 on va en 7-18 où l'on explore la table des travaux en cours pour voir si un autre utilisateur peut être activé. S'il y a un autre utilisateur, les registres de l'utilisateur sont rangés en 7-20 et le processeur abandonne le mode superviseur pour donner le contrôle au programme utilisateur (Progr.). JO Si aucun autre processeur n'est en train de traiter les interruptions, (ce qui est testé en 7-16) on passe en 7-24 afin de déterminer s'il n'y a pas des interruptions non traitées dans les tables de travaux en attente de la mémoire. Il s'agit d'interruptions qui attendent d'être activées. S'il y en a on commen-35 ce par établir en 7-26 le cheminement nécessaire pour leur traitement. Si l'on ne trouve pas d'interruption non traitée, on explore les tables de travaux en attente en ^-28 a Si l'on ne trouve pas d'interruption, le processeur fait retour au programme utilisateur comme mentionné précédemment, en empruntant 40 les blocs 7-16, 7-20 et 7-22„ Par contre si l'on en trouve, on 69 03459 53 2003948 active le cheminement en 7-30, on achève le traitement en 7-?2 ce qui est indiqué en 7-34- lorsqu'il est terminé. ôi le traitement n'est pas achevé, l'interruption reste dans la table d'attente jusqu'à achèvenent, ce qui ccrresTJond au bloc 7-^6. 5 Î3ans la figure 8, on peut voir en 8-44- la première position "binaire du registre de base d'indexation (BXR bit 1) et en 8-4-8 la dixhuitième position binaire de ce registre qui comprend 18 positions et dans lequel se trouve l'adresse du premier iriot d'une zone de données pour un segment de xrogra.me 10 actif. Les registres d'adresses de base afinterruption(BIi!îi; et BIAR2) sont également des registres de 18 bits contenant les adresses de départ des routines résultant d'une interruption en mode normal, pour le premier, et d'une interruption en node de commande 1,pour le second. Le bit 1 de BIAR1 est indiqué en 15 8-4-2 alors que son bit 18 est indiqué en^^-4-6, alors que le bit 1 de BIAH2 est indiqué en 8-56 et le bit7ae BIAR2 est indiqué en 8-50. La caractéristique particulière de ces trois registres de base est qu'ils partagent des modules de circuit et 20 des sorties communes dans trois emplacements de cartes. La figure 8 est un schéma synoptique montrant les sorties de l'additionneur 8-10 de la section d'initialisation (voir en 2-103 sur la figure 2) ASU01 et ASU18 sont reliées au registre d'index de base et aussi comment le registre de tête de piles 8-34- (voir 25 également en 2-201 sur la figure 2) a ses sorties 31 à 48 qui aboutissent dans l'un ou l'autre des deux registres de base d'interruption BIAR1 et BIAR2. Enfin on peut voir sur la figure 8 comment les sorties des trois registres de base sont concentrées sur le faisceau omnibus de transfert des registres 8-58. ^0 Les trois registres BXR, 3IAR1 et 3IA32 ayant chacun 18 bits sont réalisés au mcyen de 27 éléments de 2 bits chacun. Sur chaque position de carte on installe 9 éléments. Les bits 1 à 6 des trois registres occupent donc les 9 éléments de la première carte, les bits 7 à. 12les 9 éléments de la seconde 35 carte, et les bits 13 à 16 les 9 éléments de la troisième carte. Les registres de base BXR, BIAIÎ1 et 3IAR2 se partagent 18 circuits communs de sortie ou mélangeurs dont on ne voitici que le premier 8-52 et le second 8-54. Chaque sortie reçoit un bit de chacune des trois positions de BXR, BIAR1 ou 3IAR2. Par exemple 4-C le mélangeur 8-52 reçoit les signaux de sortie des positions 69 03459 54- 2003948 binaires K° 1 (éléments EL1 et EL2) des trois registres do "base alors que le dernier mélangeur 8-54- reççit les signaux de sertie des positions "binaires N° 18 (appartenant aux éléments EL26 et EL27) dos trois registres BIAH.1, BXR et BIAR2. 5 Sur la figure 8 on peut encore voir les organes suivant qui ne sont pas autrement détaillés, le dispositif de contrôle des transferts d'adresse de la section d'initialisation 8-12 qui agit sur les portes de sortie de l'additionneur 8-10 et le registre de contx*ôIe de transfert des adresses de la section 10 d'exécution 8-14- qui agit sur les portes de sortie du registre de tête de pile 8-34-. Le registre de contrôle de lecture du registre de l'adresse de "base d'interruption 1 en 8-16, le registre de commande de lecture du registre d'index de base 8-18, le registre de commande de lecture du registre de l'adresse 15 de base d'interruption 2 en 8-20, le registre de contx'ôle d'écriture du registre d'adresses de base d'interruption 1, l'organe de contrôle d'écriture du registre de l'adresse de base d'interruption 2, en 8-40. Les routines d'interruption du module processeur démar-20 rent automatiquement lorsque cela est spécifié par les conditions temporaires existant dans le module processeur. Le débranchement vers la routine d'interruption est commandé par une logique oablée et il est exécuté chaque fois de la même manière. . La séquence d'ordres de la routine d'interruption dépend d'un 25 mot de contrôle du débranchement. Le débranchement vers la routine d'interruption est une routine automatique servant à traiter une interruption du module processeur. On commence par ranger le contenu du registre des conditions d'interruption, des bascules de contrôle, du 30 registre d'adresse de la section d'initialisation, du compteur ordinal et du registre d'adresse de base du programme dans les six positions supérieures de la pile de mémoire du processeur Les 70 bits du registre des conditions d'interruption sont pla-.cées dans les registres T et 5. Les données sont emmagasinées 35 dans la pile en plaçant en séquence les contenus des registres dans la file tei-vporaire et le code opération de l'instruction d'extraction de la mémoire vers la pile dans la file d'exécution. Après chaque transfert à destination de la file temporaire et de la file d'exécution, le code opération en question 40 ordonne à la section d'exécution de descendre d'un cran la tota 69 03459 55 20Ô3948 lité de la pile du processeur et de enarger le contenu de la pile temporaire dans le registre de tête T de la pile, rendant l'exécution de cette routine le mode de fonctionnement du nodule processeur est augmenté de 1. La figur::- 9 représente 5 un schéma de fonctionnement - du débranchement à la routine d'interruption. Quelle eue soit la phase ou l'instant, on autorise un transfert à destination de la file d'exécution (2-211 sur la figure 2) du code opération de l'instruction extraite de la mé-10 moire à destination de la pile. En 9-12 est autorisé le rangement du contenu du registre de base du programme en cours 2-101 à destination de l'additionneur 2-103 de la section d'initialisation, avec blocage automatique du transfert du contenu du registre d'adresse d'initialisation 2-105 vers l'additionneur 15 2-103. Pour autant que la section de communication n'est pas ' occupée pour desservir la file temporaire, ce qui est testé en 9-14, on a autorisation du transfert du contenu de l'omnibus de transfert des registres à'destination du registre temporaire, ce qui est effectivement réalisé en 9-18. Cn a testé en 9-16 si 20 la file d'exécution 2-211 était pleine. Si la réponse est non, autrement dit s'il y:a de la place, on peut charger en 9-20 le code opération dans ladite file d'exécution. En 9-22 on présente le contenu du compteur ordinal sur l'omnibus de transfert des registres. E:ç. 9-24 on teste si l'on est en mode normal ou 25 non. Si l'on est effectivement en mode normal on positionne le drapeau du mode de commande 1 (CL1) en 9-50 et l'on transfère le contenu du registre d'adresses de base d'interruption 1 dans le registre de base du programme en cours ce qui a lieu en 9-26. Si la réponse au test précédent est non, à savoir si le 50 nodule processeur est en mode de commande 1, on passe par la branche de droite de l'organigramme, autrement- dit on positionne en 9-52 le drapeau (0...2) du mode de commande 2 et l'on charge en 9-28 le registre de l'adresse de base de l'interruption 2 dans le registre de base du programme en cours. À l'instant 4 55 de la phase 2, on commence par tester si la file d'exécution est pleine et dès que la réponse est non (voir en 9-34) on transfère le contenu du compteur ordinal en voie de transit depuis 9-22 sur l'omnibus de transfert des registres, à destination de la file temporaire, ce qui est accompli en 9-36. Le compteur 40 ordinal est repositionné en 9-40. En 9-38 est effectué le char 69 03459 56 20Ô3948 gement du code opération dans la file d'exécution. " ' A un instant quelconque de la phase 3 on a l'autorisation du transfert du contenu du registre d'adresse d'initialisation dans la file temporaire en. 9-44; ce transfert étant e-récu-5 té à l'instant S. On a également en 9-46 transfert du code opération dans la file d'exécution, sous condition Que celle-ci ne scit pas pleine, état qui est testé en 9-42 (comme en 9-16 et 9-54). Le registre d'adresses d'initialisation est repositionné en 9-48. 10 A l'instant 7 de la phase 4 le contenu de l'addition neur de la section d.'initialisation, donc la somme du contenu du registre de hase du programme et du registre de l'index de hase est transféré, en 9-50, à destination du registre des instructions à venir, ou d'anticipation, 2-117 sur la figure 2. 15 En 9-52 on autorise l'entrée des bascules des drapeaux de commande sur 1'omnibus de transfert des registres, et en 9-56, corresjjondant à l'instant 8 de la phase 4, les contenus de ces bascules sont effectivement chargés. En 9-54 se trouve le test "la file d'exécution est-elle pleine?" (comme en 9-16, 9-34 20 et 9-42) et en 9-58 le chargement du code opération dans cette file lorsque la réponse à cette question est bien négative. En 9-60 et en 9-68 à n'importe quel instant' de la phase 5, les bits 35 à 7C du registre des conditions d'interruption sont présentés sur l'omnibus de transfert des registres. 25 Un premier transfert a lieu en 9-64 (si la file d'exécution n'est pas pleine ce qui est testé en 9-62) et un autre en 9-72 à l'instant 6 si la file d'exécution n'est pas pleine ce qui est testé en 9-70. En 9-66 et 9-74 se place l'habituel chargement du code opération dans la file d'exécution. Au même instant 30 en 9-76, on a repositionnement du drapeau (1 bit) de débranchement vers un sous-programme, du drapeau de débranchement vers la routine d'interruption et du registre des conditions d'interruption. La .section d'initialisation se prépare alors- à exécuter l'instruction contenue dans le registre des instructions à 35 venir (9-78). La figure 10 est un schéma de fonctionnement du système lors de l'exécution d'une instruction de transfert au superviseur. Le départ est en 10-10. On teste l'état de remplissage de la file d'exécution en 10-12 et l'en teste l'état de la 40 section de communication, en 10-14. Dès que la file d'exécution 69 03459 57 20Ô3948 n'est pas pleine et que la section âe communication n'est plus occupé g à desservir la file temporaire on peut transférer, en 10-16, le registre de base du programme dans la file temporaire et envoyer le code opération en 10-18 dans la file d'exécu-5 tion (à l'instant 2 de la phase 1), On teste en 10-20 si l'on est en node normal, si ce n'est pas le cas on va en 10-24 où l'on teste si l'on est en mode 1. Si l'en est en node normal, on procède en 10-21 au chargement du contenu du registre d'adresses de base de l'interruption 1 dans le registre de base du programme 10 en cours et l'on positionne en 10-28 la bascule du node de commande 1. S'il s'avère que le module processeur était en node de commande de type 1, on transfère en 1^-26 le contenu du registre d'adresses de base d'interruption 2 dans le registre de base du programme en cours et l'on positionne la bascule de mode de com-15 nande 2, en 10-50. Ces opérations ont lieu à l'instant 5 de la phase 2. En 10-52 on teste à nouveau la file d'exécution pour savoir si elle est pleine, et si ce n'est pas le cas, on peut - (au temps 4 de la phase 2) charger le code opération dans la file, ce qui a lieu en 10-56 et transférer le compteur ordinal 20 dans la file temporaire ce qui a lieu en 10-54. Le contenu du registre d'adresse de la section d'initialisation et la variante d'interruption sont envoyés en 10-58 à l'additionneur de la section d'initialisation. Ensuite le contenu de l'additionneur est transféré au compteur ordinal en 10-40, ce qui a lieu à l'ins-25 tant 4 de la phase 2. En phase 5 on autorise le transfert du registre d'adresse à destination de la file temporaire et après avoir testé en 10-42 la file d'exécution pour savoir si elle est pleine, on réalise, à l'instant 6 de la phase 55 si la file d'exécution n'est pas pleine, le transfert effectif du registre 50 d'adresse de la section d'initialisation vers la* file temporaire en 10-44, et le chargement du code opération vers la file d'exécution en 10-46. En 10-50 le registre de base du programme en cours et le compteur ordinal sont envoyés dans l'additionneur de la section d'initialisation et en 10-52 le contenu de l'addition-55 neur est envoyé dans le magasin des instructions à venir, ce qui a lieu au temps 9 de la phase 4. Enfin, les drapeaux de commande sont envoyés dans la file temporaire, le code opération est chargé dans la file d'exécution, le registre d'adresse de la section d'initialisation est 40 rex^ositionné, tout cela en 10-54, et l'en recherche la prochaine 69 03459 58 2003948 instruction (instant 9 de la phase 4). L'instruction d'interruption du processeur II est utilisée pour positionner un hit de condition d'interruption dans le registre des conditions d'interruption du nodule proces-5 seur spécifiquenient désigné par la syllabe de variante II. Le bit de condition d'interruption est positionné dans le module processeur spécifié quelle que soit la configuration du masque de ce module. Le module processeur ne sera pas interrompu à moins que le bit de condition soit masqué et que le nodule proie cesseur soit en mode normal. Si le module processeur est arrêté en mode de commande 1 et si le drapeau HALTE est positionné, l'interruption provoquera un redémarrage. La figure 11 est un schéma de fonctionnement correspondant à l'instruction d'interruption du processeur îT. Le dé-15 marrage a lieu en 11-10 en n'importe quel instant de la phase 1 par l'autorisation du transfert de la variante i. à destination de l'additionneur de la section d'initialisation. Le bit 65 du registre des conditions d'interruption appartenant au module processeur qui exécute l'instruction en question, est 20 positionné à l'instant 2 de la phase 1, ce qui est représenté par la case 11-12 de l'organigramme-. Cn'teste en 11-14- la valeur du bit correspondant du masque. On teste en 11-16 le mode de fonctionnement du processeur. 3i le bit est positionné (oui) et si le module processeur est én mode normal, on exécute un 25 débranchement à T1 du compteur T (2-201 de la figure 2) de la section d'initialisation et l'interruption est traitée. Si le processeur est en mode de commande à l'instant 3, le signal de sortie de l'additionneur (contenu du registre d'adresses de la section d'initialisation augmenté de la variable H) est envoyé 30 dans le registre d'adresse de la section d'initialisation ( en 11-2o). En 11-22 (instant 4) on examine la validité de la variante N. Si celle-ci a une configuration légale, le compteur de phase 2-205 de la section d'initialisation saute en phase 2. Si la variante U est illégale, le compteur de temps T revient 35 à l'instant 1. En un instant quelconque de la phase 2, on examine les bits 15, 16, 1y et 18 du registre d'adresse de la section d'initialisation et l'on autorise l'émetteur d'interruptions spécifié par cette configuration en 11-24. Enfin à l'instant 6, le contenu du registre cyclique de la section d'initia-40 lisation est transféré vers le registre d'instruction 2-25 69 03459 59 2003948 (voir la figure 2), et le registre d'adresse de la section d'initialisation est repositionné. La prochaine instruction en séquence est alors prête à être traitée en '11-26. 5 Si le nodule processeur n'est pas en nocle normal, on sort un diagnostic d'instruction illégale en 11-13. Si la variante 1\T est illégale on positionne le hit 64 du registre des conditions d'interruption en 11-28 et en sort un diagnostic d'erreurs en 11-30. Cn trouvei'a ci-après la table de configuration binaire 1C 15? 16, 17, 18 du registre d'adresse et des émetteurs d'interrup-tien correspondants. La figure 12 est un schéma de fonctionnement de la section d'initialisation, pour la mise en route d'une instructicn de programme d'entrée-sortie. Le départ est en 12-1C et en 15 12-12 se produit le positionnement du bit 65 du registre des conditions d'interruption. En 12-14 on vérifie si le bit correspondant du registre de masquage d'interruption est positionné et, si c'est le cas, on vérifie en 12-16 le mode de fonctionnement du module processeur'. Si ce dernier est en mode normal (autrement 20 dit s'il n'est pas en mode de commande) le processeur achève immédiatement l'exécution de l'instruction d'entrée-sortie avec émission d'un diagnostic d'instruction illégale, en 12-18. Si la machine est en mode de commande (réponse oui en 12-16), elle détermine ensuite si l'interruption correspond ou 25 . non à une variante illégale, ce qui est vérifié en 12-20. Si c'est le cas, on a achèvement immédiat sur diagnostic de variante illégale en 12-22 (à ce moment-là on se trouve déjà.à 1"instant 4 de la phase 1). Si le code opération est légal, on le charge dans la file d'exécution en 12-26, à condition évidemment que 350 l'on ait obtenu en 12-24 une réponse négative à la question " la file d'exécution est-elle pleine?". Si de la place reste encore disponible dans la file d'exécution, ce qui est testé en 12-28 selon le même schéma qu' en 12-24, et s'il n'y a pas de file de rangement, ce qui ost 35 testé en 12-30, on peut déterminer la priorité de l'opération d' entrée-sortie en 12-32. Si l'opération est prioritaire et si le 14ème bit du registre d'adresse est positionné (valeur 1) ce qui est vérifié en 12-34, le contenu du registre T est transféré dans un registre d'adresse de la pile des travaux et le 40 drax^eau de la pile est positionné, tout cela en 12-38. La machi 69 03459 60 2003948 ne recherche alors la prochaine instruction er: 12-40. Si le bit 14 du registre d'adresse de la section d'initialisation n'est pas positionné, on positionne simplement le diapeau en 12-36 avant de demander l'instruction suivante. 5 la figure 13 représente 1'organigramme da l'instruc tion de retour de la routine d'interruption. Les contenus des quatre positions supérieures de la pile du processeur sont chaînés respectivement dans les bascules de commande, dans le registre d'adresse ce la section d'initialisation, dans le comp-10 teur ordinal et dans le registre de base du programme en cours» Après le départ en 13-10 on vérifie l'état de la file d'exécution en 13-12 et le mode de fonctionnement du module processeur en 13-14. Si la file d'exécution n'est pas pleine et si le module processeur n'est pas en mode normal (réponse oui à la question 15 "mode de commande posée?" en 13-14), le nodule processeur est replacé en mode normal en 13-18. Si le module processeur est déjà en mode normal, en positionne le bit 68 du registre des conditions d'interruption et l'on sort un diagnostic d'instruction illégale. Donc, après retour en mode normal, en 13-18, le 20 code opération est chargé daru la file d'exécution en 13-20. On vérifie ensuite l'état de la file d'exécution en 13-22 et si celle-ci n'est pas pleine, le code opération de la file est chargé en 13-24. On vérifie en 13-26 si le drapeau de la file d'exécution est positionné et, si n'est le cas, on réduit le mo-25 de de fonctionnement du processeur de 1 étant donné que cette instruction doit être exécutée en mode de commande. La prochaine instruction qui est ax>pelée' en 13-30, est spécifiée par la somme du compteur ordinal et du registre de base du programme en cours qui est envoyé en 13-28, dans le registre des instructions à 30 venir. En un instant quelconque de la phase 1 l'opération bloque le transfert entre le registre d'adresse de la section d'initialisation et l'additionneur de la.section d'initialisation et autorise le transfert du compteur ordinal et du registre 35 de base du programme en cours à destination de l'additionneur de la section d'initialisation. En tout instant, à l'exception de l'instant 1 et de l'instant 2, les circuits logiques sont prêts pour le transfert du code opération de la file d'exécution vers la file d'exécution. En tout instant sauf à l'instant 40 3 où à l'instant 4, l'opération maintient autorisé le transfert 69 03459 61 2003948 des bits 1 à & du registre d'instruction de la section d'initialisation à destination de la file d'exécution. Le transfert se déroule s.lo^s à l'instant T2. Si la file d'exécution est pleine, le déroulement s'arrête aux instants 1 et 2 jusqu'à ce 5 que le code opération puisse entrer dans la file dlexécution* A. l'instant "2, le mode du module processeur- est réduit de 1. Si le nodule processeur est en node normal, le bit 65 du registre des conditions d'interruption est positionné, et l'interruption est traitée. A l'instant rf4 le code opération de la file d'exé-10 cution est placé dans la file d'exécution. A l'instant Ï5 et à condition que la section d'exécution ait effectivement traité une instruction de la file d'exécution, le contenu de l'additionneur est transféré vers le registre des instructions à venir et.le contenu du registre cyclique de la section d'initialisation est 15 transféré par le registre d'instructions dans cette section. La section d'initialisation est alors prête pour recevoir la prochaine instruction. La figure 14 concerne également le retour de la routine d'interruption. Alors que la figure 15 concernait plus spécifique-20 ment la section d1 initialisation, la figure 14- montre l'organigramme des transferts d'information à la section d'exécution. On a quatre transferts différents. Avant chaque transfert le processeur doit détei'miner si la pile de la section d'exécution est en état de recevoir un ordre de lecture. On a donc par 25 conséquent quatre tests s aï- la question "la pile est-elle prête à la lecture?" en 14—14-, 14—24-, 14-34- et 14-44. Si la répense est positive, la pile avance chaque fois d'un cran. Après départ en 14-10, autorisation de la section d'initialisation en 14-12 et contrôle de l'état de la pile en 30 14-14, pour savoir si cette dernière est disponible en lecture, le contenu du registre T de tête de pile (2-201 de la figure 2) est transféré dans les bascules de commande, en 14—16. Ensuite, le registre de second rang S de la pile (e.n 2-2G3)de la fig.2) émet ses bits 14 à 35 à destination des emplacements correspcn-35 dants du registre I1, en 14-18. Le pointeur de la tête d'extension des pilcc (2-2C7) transfère les bits correspondants dans le registre S en 14-20 et 1'extension de piles ust remontée d'un rang en 14-22» 69 03459 62 20Ô3948 Les trois autres transferts diffèrent du précédent par la destination des bits du registre de tête T qui sent envoyés dans le registre d'adresse de la section d'initialisation en 14-25, dans le compteur ordinal en 14-^6 et dans le 5 registre de base du programme en cours en 14-46. A chacun de ce, transferts du registre de tête succède un transfert du registre de second rang vers le registre de tête en 14-28, 14-38, 14-48. Les opérations 14-30 et 14-40 sont homologues de l'opération 14-2C et enfin en 14-32, 14-42 et 14-50, lajpile est remontée d1 10 un rang cornue en 14-22. Après le quatrième transfert, on a positionnement en 14-52 du drapeau de la file d'exécution et 1' opération est terminée. En ce qui concerne les phases de déroulement on peut dire ce qui suit : à l'instant T1 le module processeur autorise 15 un transfert du registre T vers les registres de la section d' initialisation. A l'instant T2 les contenus des bits 1 à 30 des registres T sont transférés vers les bascules de commande, et à l'instant T4 le contenu des bits 31 à 38 sent transférés dans les registres d'adresse de la section d'initialisation. A l'ins 20 tant Tôle contenu des bits 34 à 48 est transféré vers le compteur ordinal et enfin à l'instant TS le contenu des bits 31 à 48 est transféré vers le registre de base du programme et le drapeau de la file d'exécution est positionné. Pendant chacun des quatre transferts la pile avance d'un pas• 25 D'une façon générale lorsqu'une condition d'interrup tion se présente il s'ensuit toujours le positionnement d'un bit dans le registre des conditions d'interruption, afin d'enre gistrer cette condition. Il y a des circonstances dans lesquell il n'est pas souhaitable de réagir à la demande d'interruption. 50 c3i"la machine fonctionne en mode normal'et si le bit de masquag correspondant au bit du registre des conditions d'interruption n'est pas positionné, la machine continue à exécuter le program me qui a initialisé l'interruption. En dépit du fait que l'instruction qui a causé l'interruption est illégale la machine 35 exécutera le programme illégal sans être interrompue. Elle ne réagit donc pas à cette interruption. Si la machine travaillait en mode normal et que le bit de masquage correspondant au bit de condition d'interruption était positionné, la machine n'exécutera pas l'instruction illégale. Autrement dit, la machine ne 4-0 réagit à une interruption que lorsque le bit de condition d' 69 03459 2003948 interruption et le bit de masquage correspondant sont positionnés simultanément;. Il y a deux autres modes de fonctionnement de la machine. Dans les deux cas on dit qu'il s'agit de modes de comman-5 de que l'on distingue l'un de l'autre en appelant le premier mode de commande de type 1 et le second mode de commande de type 2. le mode de commande de la machine est spécifique, distinct et indépendant et presque toutes les instructions dont on dispose dans ce mode sent légales. Il y a des cas où il n'est pas souhaite table que la machine réagisse à la demande d'interruption lorsqu'elle est en mode de commande, même si cela serait souhaitable en mode normal. Dans le cas d'une interruption pour impossibilité d'accès en mémoire ou pour erreur de parité, lors d'une extraction de mémoire, la meilleure manière d'utiliser la machine est 15 de la laisser vérifier ses conditions d'interruption sans qu'elle soit continuellement interrompue pendant l'exécution en cours* Si la machine fonctionne en mode normal et que le bit correspondant du registre de masquage d'interruption se trouve positionné, lorsque l'on reçoit une demande d'interruption pour 20 erreur de parité c-u pour défaut d'accès à la mémoire, l'interruption sera immédiatement prise en compte avec passage du mode normal en mode de commande. Si la machine est en mode de commande les erreurs de parité constituent effectivement une cause d'interruption. Dans le système actuel en repasse du mode de commande 25 en mode normal, mais avec la connaissance du programme de mode de commande, et le programme de mode normal continue à marcher sans être interrompu automatiquement comme cela était le cas lorsqu'il était initialement en mode normal. Ce mode de fonctionnement du module processeur, en mode normal tout en étant piloté 50 par le mode de commande, est entièrement nouveau avec ce système. Comme le système n'est pas absolument en mode normal, on dit alors qu'il est en mode quasi-normal. La seule manière de revenir au mode normal dans les systèmes antérieurs était par retour au moyen du programme d' 35 interruption lui-même, ce que l'on a appelé retour de la routine d'interruption. Dorénavant le superviseur a la faculté de faire passer le processeur du mode de commande en mode normal sans perdre le contrôle. 69 03459 64 2003948 Ce résultat est accompli en chargeant le registre de masquage et d'interruption, fans le cas du retour de la routine d'interruption, le retour en mode'normal est totalement automatique. Il s'agit d'un automatisme totalement câblé qui ne saurait 5 être modifié en quoi que ce soit par le programmeur. Dans ce système d'interruption, le programmeur a 1-a faculté de modifier le mode de fonctionnement do la machine. Le programmeur n'a pas une autorité absolue pour changer, la mode de fonctionnement étant donné que la machine doit reconnaître qu'il '1C s'agit d'un fonctionnement sous contrôle superviseur et non point du fcnctionnemert normal d'un programme objet.- Le superviseur peut appeler les programmes de diagnostics en machine et-établir le mode do fonctionnement en positionnant le registre de masquage de telle façon que la machine scit en mode normal mais sous ccn-15 trôle du superviseur. Le programmeur est également autorisé à exécuter diverses instructions dent les programmes de diagnostics pourraient avoir besoin. Simultanément le programmeur reçoit des diagnostics à partir du mode dans lequel il peut fonctionner, soit avec une erreur de parité soit avec un défaut d'accès en 20 mémoire sans être interrompu? Cela signifie que le programmeur peut continuer à examiner les données pour déterminer quel bit a été perdu pendant la transmission et quelle mémoire est responsable du défaut d'accès. Le résultat de cet examen réside dans le fait que l'un des modules de mémoire ou l'un des modules jjroces-2^ seurs est reconnu comme défectueux. Une fois qu'il a été ainsi repéré il peut être remplacé et/ou réparé. Une fois que le défaut est repéré, le superviseur peut en être informé, de telle sorte qu'il puisse "réassigner le travail du processeur défectueux et procéder à une nouvelle allocation do-mémoire pour tenir compte 5C également des modules de mémoire reconnus défectueux. L'un des aspects de l'invention réside dans le fait que la machine peut effectivement repasser du mode de commande én mode normal sans cesser d'être sous contrôle du superviseur. Un autre aspect de 1'invention réside dans le fait que 35 le bit de masquage positionné, d'une part, indique au système ai le processeur souhaite être interrompu ou non et, d'autre part, offre ou retire la possibilité d'exécuter une instruction illégale, ou de sortir des limites prescrites de mémoire. Un programme utilisateur peut être autorisé à dépasser les limites de la me-.40 moire qui est allouée simplement en empêchant la. demande d'inter 69 03459 65 2003948 ruption de provoquer le passade du module processeur du mode normal en mode ce commande. Une trace de la demande d'interruption est conservée en machine même si le processeur r,-'a pas réagi. Ensuite la machine 5 peut examiner cette interruption à sa convenance. Sans les systèmes d'interruption antérieurement connus, la seule possibilité que le systciae avait de réagir à un signal d'achèvement d'une opération d'entrées-sorties était de passer par le système d'interruption. Sans de tels systèmes le iO module de commande d'entrées-sorties renvoyait au module processeur un descripteur de résultats et,immédiatement, le processeur s'engageait dans un débranchement automatique d'interruption sous contrôle dlune logique câblée» Avec l'actuel système de masquage, le signal d'inter-15 ruption en provenance du module de commande d'entrées-sorties n'interrompt pas immédiatement le pi'ocesseur, à moins que le système le souhaite, i'ar contre, le système gardera toujours une trace de l'interruption pour utilisation ultérieure. Grâce à cette connaissance des interruptions, le système peut libérer 20 le module de commande d'entrées-sorties en vue d'une utilisation ultérieure sans avoir jamais interrompu le module processeur. Ultérieurement le système peut s'intéresser à nouveau au processeur en question et examiner la condition d'interruption emmagasinée dans le registre des conditions d'interruption. 25 le système n'est pas automatiquement interrompu par l'achèvement de l'opération d'entrées-sorties. Le système n'a pas de soudaines interruptions tendant à imposer des chevauchements de programme, éventuellement pendant les quelques millisecondes qui pourraient être nécessaires pour achever le programme ne en cours• oi l'on souhaite faire fonctionner le sj^stème selon l'invention de la même manière que les systèmes antérieurement cornus on en a la possibilité. î7or. seulement le système actuel a tous les avantages antérieurement connus, mais en outre il 35 offre la possibilité de surmonter,sinon la totalité,du moins une partie,des inconvénients des systèmes antérieurement connus. Le système selon l'invention peut fonctionner de telle sorte que chaque condition d'interruption détermine autcmagique-40 ment 1'interruption du fonctionnement du processeur. Four cela : il suffit de mettre à un tous les bits du registre de masquage 69 03459 2003948 des interruptions. Si les "bits ne sont pas positionnés ainsi, le registre des conditions d'interruption conservera la trace des interruptions en vue d'un exa.::en et d'une exploitation ultérieure par le système. Cela peut être effectué à la diligence de l'opé-5 rateur, nais jamais autonatiouement à son détriment. Le système selon l'invention comprend des possibilités importantes d'interruption externes. Dans les systèmes antérieurement connus, les seuls signaux d'alarme oui étaient reçus de la mémoire étaient l'erreur de parité et le défaut d'accès en aé-10 moire. Dans le système selon l'invention chacun des nodules de mémoire, chacun des modules processeurs et chacun des modules de commande d'entrées-sorties fournit des renseignements sous la forme de signaux dits de défaillance ou d'incident. Ainsi dans chacun des modules de ménoix'e il est prévu un registre des inci-15 dents de mémoire, dans chacun des modules processeurs un registre des incidents de processeur, et dans chacun des modules de commande d'entrées-sorties un registre des incidents d'entrées-sorties . L'arrivée sui^an module de processeur d'un signal d'in-20 cident en provenance de l'un quelconque des modules de mémoire indique au module processeur que le module de mémoire en question est sujet à caution. On prendra l'exemple d'un module processeur ayant perdu l'aptitude à la génération des parités. Le module processeur 25' envoie des signaux d'erreur de parité au module de mémoire. Dans les systèmes antérieurement connus, il n'était pas conservé de trace de ce genre d'incident et le système ne prenait conscience de la situation que lorsque l'on rappelait l'information en provenance de la mémoire et que l'on constatait alors qu'elle était 1>C erronée. Avec le système selon l'invention le registre d'incident de mémoire du module récepteur indique par.une configuration adéquate de hits que le processeur n° 1, par exemple, a expédié-une erreur de parité. Simultanément il envoie un message d'inter-ruption au registre des conditions d'interruption de ce processeur, pour faire savoir que quelque chose n'a pas fonctionné correctement. Ce peut être de mauvaises données entrantes ou sortantes, ou un défaut d'accès en mémoire, etc.. Dès que le signal d'intérruption est reçu, le processeur explore son propre 4-C registre des conditions d'interruption. Une fois que le processeur a déterminé qu'il n'a pas reçu, une erreur de parité, par 69 03459 67 2003948 exemple il peux; conclure ^uô le problème" n1 est pas du côté de la mémoire nais du côté du processeur lui-même. icur confirmer ce diagnostic le système chargera exactement la mêiae tâche dons un autre processeur et relancei'a la même exécutior." Si le second 5 processeur exécute sans erreur er: riéraoire cela prc.ve que c'est le premier processeur qui est à l'origine- de la défaillance. L'erreur est donc découverte immédiatement, autrement dit strictement en temps réel et il n'est donc plus nécessaire d'attendre que le programme en cours ait totalement "déraille" pour 'iO découvrir l'existence d'un incident. Dans le système selon l'invention, chaque module processeur est muni d'un registre des conditions d'interruption de 70 positions binaires et d'un registre de masquage -cmrresponaant, avec également 70 positions binaires. Par conséquent chacune des 15 70 conditions d'interruption peut être correctement masquée. L'exécution d'un programme utilisateur permettant une interruption ou permettant l'apparition d'un état susceptible de causer une interruption est témporairement suspendue, pendant que le superviseur est rappelé en machine. Si le programme est un 20 de ceux déclaré T.>ar le superviseur comme autorisé à dépasser les limites allouées en mémoire, le superviseur aura remis à zéro le bit de siasquage correspondant à l'interruption en question et le processeur poursuivra l'exécution du programme, en dépit du fait que les limites en mémoire auront été dépassées. Si au 25 contraire il s'agit d'un programme à propos duquel le superviseur doit être averti des tentatives de franchissement des limites en mémoire, le superviseur aura déterminé le positionnement du bit de masquage correspondant. Dans ce cas si le programme tente de sortir de ses limites, le programme de commande est appelé en JG machine automatiquement, exactement comme dans les systèmes antérieurement connus. Lorsque le débranchement automatique à 1'interruption est appelé, la machine charge le registre d'adresse de hase et le registre de base du programme pour le superviseur, puis auto-35 matiquement le superviseur est appelé dans le processeur. Une procédure standard est alors mise en route pour détecter et examiner le contenu du registre des conditions d'interruption afin de connaître le motif de l'interruption. Gomme il peut y avoir plusieurs hits d'interruption positionnés dans le registre des 40 conditions d'interruption, on examine ensuite le registre de 69 03459 68 2003948 masquage afin de déterminer à quel bit des conditions" d'interruption correspond un bit ce masquage ijcsitionne. Les autres bits du registre des conditions d'interruption peuvent être négligés à moir.s que le processeur souhaite savoir combien de conditions 5 d'interruption sent apparues- Cn supposei'a par exemple que la machine a été en attente par suite d'une interruption pour violation des limites en mémoire. Lorsque cette interruption se produit cela peut signifier que le programme en cours est complètement terminé, de telle 10 sorte que la machine déclare que ce programme est disponible pour tous. La zone de mémoire contenant le pjrogramme peut être maintenant surchargée et les zones de données de la mémoire ne sont pas disponibles pour d'autres programmes. Tous ces renseignements sont contenus dans des tables, de telle sorte que l'étape 15 suivante consiste à aller vers la nouvelle table de travaux et à faire entrer les instructions au nouveau programme. Une partie de ce programrae suivant contient des renseignements générau.x, et parmi ceux-ci, la configuration que devra contenir le registre de masquage pendant l'exécution de ce nou-20 veau programme. Les registres de masquage sont chargés avec cette configuration et le programme est alors mis à la disposition de l'utilisateur. L'invention vise par conséquent un système d'interruption présentant diverses possibilités de réaction pour diffé-25 rents programmes. Si par exemple la machine travaille sur un problème de comptabilité, par exemple lë calcul de la paie du personnel et si un débordement apparaît dans le bloc arithmétique, l'utilisateur voudra être immédiatement mis au courant et par conséquent il faudra une interruption. Par contre si la machine 30 effectue des manipulations de données uniquement en vue de tester les diagnostics, 1'utilisateur .voudra être mis au courant d'un tel débordement, mais il est rare qu'il exige une interruption dans ce cas. L'ans un cas comme dans l'autre, le bit de conditions d'interruption est positionné dans le registre des conditions 35 d'interruption mais c'est seulement dans le travail de comptabilité que le débordement provoque l'interruption. L'utilisateur obtient une procédure d'interruption en fonction de ses besoins, même s'il n'est pas conscient qu'une sélection est faite. La machine décide du mode convenant le mieux à l'utilisateur, tout 4C cela sous commande du superviseur. 69 03459 2003948 REVENDICATION 1 - Un apj;ai'sil d'interruption destiné à être utilisé dans un système modulaire de traitement des données, ayant au moins un module processeur central, au moins un module de mémoire et au moins un nodule de commande d1entrées-sorties, 5 caractérisé en ce qu'il comprend des organes de réception et d'en magasinage qui sont incorporés audit module processeur central pour recevoir et emmagasiner chacun des signaux de conditions d'interruption, ainsi que des organes qui sont incorporés à cha-'cun des modules restants du système, en vue de fournir des signau: 10 de condition d'interruption destinés à être transmis vers lesdits organes de réception et d'emmagasinage, chacun des modules processeurs centraux comprenant des organes pour empêcher sélectivement les signau;-: de conditions d'interruption, en provenance des autres modules du système, qui sont reçus et emmagasinés, de pro-15 voquer l'interruption automatique du fonctionnement normal du module processeur intéressé. 2 - Un appareil suivant la revendication 1, caractérisé en ce eue les organes de réception et d'emmagasinage des signaux de conditions d'interruption contenus dans le module pro- 20 cesseur central comprennent un registre de conditions d'interruption qui esû constitué par plusieurs éléments de mémoire bistable correspondant quantitativement aux multiples conditions d'interruption que 11 on souhaite pouvoir respecter dans le système modulaire de traitement des données. 25 j - Un appareil suivant la revendication 2, carac térisé en ce que les organes qui sont'prévus dans le module processeur central pour empêcher sélectivement les signaux de conditions d'interruption reçus et emmagasinés d'interrompre automatiquement le fonctionnement normal du module processeur, sont 30 réalisés sous la forme d'un registre de masquage d'interruption comprenant plusieurs éléments de mémoire,et de plusieurs portes ET correspondantes, chacun des éléments de. mémoire constituant ce registre de masquage étant relié à l'une desdites portes ET, et chacun des éléments constituant le registre de conditions 55 d'interruption étant relié individuellement à l'une desdites portes LT afin de n'obtenir un signal de sortie, en provenance de chacune desdites portes ET, que lorsque l'or, reçoit concurremment 69 03459 70 2003948 un signal en provenance d'un élônent du registre de masquage et un signal en provenance de l'élément correspondant du registre de conditions d'interruption. 4 - Un appareil suivant la revendication 5> carac-5 térisô en ce qu'il comprend un organe de commutation de mode de fonctionnement qui est relie à toutes les portes xJI' en question, afin de modifier le mode de fonctionnement d'au moins un module processeur central lorsqu'est activée l'une quelconque des portes ET en question. 10 5 - Un appareil-d'interruption destiné à être uti lisé dans un système modulaire de traitement des données ayant plusieurs modules processeurs centraux, plusieurs modules de mémoire et plusieurs modules de commande d'entrées-sorties, caractérisé en ce qu'il comprend des organes de réception et 15 d'emmagasinage ,,ui sont incorporés à chacun desdits modules processeurs centraux en vue de recevoir et d'emmagasiner chacun des signaux de conditions d'interruption,- ainsi que des organes qui sont incorporés à chacun des modules processeurs centraux, à chacun des modules de mémoire et à chacun des modules de commande 20 des entrées-sorties, en vue de fournir des signaux de conditions d'interruption destinés à être transmis auxdits organes de réception et d'emmagasinage de chacun des modules processeurs centraux chacun desdits modules processeurs centraux comprenant encore des organes pour empêcher sélectivement les signaux de conditions 25 d'interruption, reçus et emmagasinés, de provoquer automatiquement l'interruption du fonctionnement normal du module processeur intéressé. 6 - Un appareil suivant la revendication 5, caractérisé en ce que les organes qui sent prévus dans chacun des mo-50 dules proeâsseurs centraux en vue de recevoir et d'emmagasiner chacun des différents signaux de conditions d'interruption, sont constitués scus la forme d'un registre de conditions d'interruption, et en ce que les organes qui sont jjrévus dans chacun des modules px-ocesseurs centraux pour emp.êcher les signaux de conai-55 tions d'interruption emmagasinés et stockés de provoquer automatiquement l'interruption du fonctionnement normal du module processeur, sont réalisés sous la forme d'un registre de masquage et de plusieurs jîortes ET, lesquelles portes ET sont reliées individuellement;, d'une part à chacun des éléments de mémoire du 40 registre de masquage et, d'autre part, à chacun des éléments de 69 03459 71 200 3948 mémoire du registre de conditions d'interruption. 7 - . Un appareil d'interruption destiné à ; être utilisé dans un système modulaire de traitement des données, ayant au moins un module processeur central, au moins un module de 5 mémoire et au moins un module de commande d'entrées-sorties, caractérisé en ce qu'il comprend des organes de réception et d'emmagasinage qui sont incorporés à chacun des modules processeurs centraux, afin de recevoir et d'emmagasiner chacun des signaux de conditions d'interruption, ainsi que des organes qui 10 sont incorporés audit module processeur central, audit module de mémoire et audit module de commande d'entrées-sorties, afin de fournir des signaux de conditions d'interruption qui sont destinés à être transmis vers lesaits organes de réception et d'emmagasinage, chacun desdits modules processeurs centraux comprenant 15 encore des organes pour empêcher sélectivement les signaux de conditions d'interruption ainsi reçus et emmagasinés de provoquer automatiquement l'interruption du fonctionnement normal du module processeur intéressé. 8 - Un appareil suivant la revendication 7, carac-20 térisé en ce que les organes qui sont incorporés à chacun des modules processeurs pour empêcher sélectivement l'interruption automatique du fonctionnement normal du module processeur, comprennent des organes pour autoriser sélectivement 1 ' interx-uption automatique dudit module processeur central. 25 9 - Un appareil suivant la revendication 8, carac térisé en ce que les organes pour autoriser sélectivement l'interruption dudit module processeur central comprennent des organes permettant de modifier le mode de fonctionnement du module processeur central et de le faire passer d'un mode normal de 30 fonctionnement à l'un des modes de fonctionnement dit de commande, en réponse à la réception d'un signal sélectif d'autorisation qui détermine l'interruption automatique du module processeur central. 10 - Un appareil d'interruption destiné à être uti-35 lisé dans un système de traitement des données qui comprend plusieurs modules fonctionnels, à savoir au moins ur module processeur central, au moins un module de mémoire et . .u mcins un module de commande d'entrées-sorties, caractérisé en ce qu'il comprend des organes qui sont incorporés audit module processeur 4-0 central en vue de recevoir et d'emmagasiner chacun des signaux 69 03459 72 2003948 de conditions d'interruption, des organes de commutation pour faire passer ledit module processeur central de son mode norr.al de fonctionnement à un autre mode de fonctionnement dit de commande, des organes qui sont connectés entre les organes d'emma-5 gasinage des conditions d'interruption et les organes de commutation, en vue d'autoriser sélectivement certains signaux prédé- * terminés de conditions d'interruption à inciter le module processeur central susdit à changer de mode de fonctionnement, et des organes qui sont connectés auxdits organes sélectifs d'autorisa-10 tion et qui réagissent aux signaux-émis par cés derniers organes et significatifs du mode de commande afin d'inciter ledit module processeur central à revenir à son mode de fonctionnement normal, tout en restant néanmoins scus la dépendance des signaux significatifs du mode de commande. 15 11 - Un appareil suivant la revendication 10, carac térisé en ce que les organes de commutation comprennent des moyens permettant de commuter automatiquement le module processeur central, du node de commande vers le mode normal de fonction nement. 20 12 - Un appareil d'interruption destiné à être uti lisé dans un système de traitement des données qui comprend plusieurs modules fonctionnels, à savoir au moins un module processeur central, au moins un module de mémoire et au moins un module de commande d'entrées-sorties-, caractérisé en ce qu'il 25 comprend des organes qui sont incorTjorés audit module processeur central en vue de recevoir et d'emmagasiner chacun des signaux de conditions d'interruption, des organes de commutation pour faire passer séquentiellement ledit module processeur centra.1 de son mode normal de fonctionnement dans plusieurs modes de 30 fonctionnement dits de commande, des organes qui sont connectés entre les organes d'emmagasinage des conditions d'interruption et les organes de commutation, en vue d'autoriser sélectivement" certains signaux prédéterminés de conditions d'interruption à inciter le module processeur central susdit à changer de mode de 35 fonctionnement et à abandonner l'un quelconque de ces modes de commande précédemment atteints, et enfin des organes -qui sont connectés auxdits organes sélectifs d'autorisation et qui réagissent à n'importe lesquels des signaux émis par ces derniers organes et significatifs des modes de commande, afin d'inciter 40 ledit module processeur central à revenir à son node normal de 69 03459 73 20Ô3948 fonctionnement tout en restant néanmoins sous la dépendance des-dits signaux significatifs des modes de commande. 13 - Un appareil suivant la revendication 12, caractérisé en ce que les organes de commutation séquentiels comprcn-5 nent des moyens pour commuter séquentiellement le module processeur central de son mode normal de fonctionnement vers un premie mode de commande et ensuite vers un second mode de commande. 14- - Un appareil d'interruption destiné à être utili sé dans un système de traitement des données qui comprend plu-10 sieurs modules fonctionnels, à savoir plusieurs modules processeurs centraux, plusieurs modules de mémoire et plusieurs modules de commande d'entrées-sorties, caractérisé en ce qu'il comprend des organes qui sont incorporés à chacun des modules processeurs centraux afin de recevoir et d'emmagasiner chacun des 15 signaux de conditions d'interruption, des organes de commutation pour faire passer sélectivement chacun des modoiles processeurs centraux de leur mode normal de fonctionnement dans au moins un autre mode de fonctionnement dit de commande, dés organes qui sont connectés entre les organes d'emmagasinage des conditions 20 d'interruption et les organes de commutation en vue d'autoriser sélectivement certains signaux prédéterminés de ccn.dit.ions d'interruption, en provenance de n'importe quel autre module du système, à inciter un module processeur1 central choisi à commuter son mode de fonctionnement, et des organes qui sont connec-25 tés aux organes sélectifs d'autorisation et qui réagissent aux signaux émis par ces derniers organes et caractéristiques du mode de commande, pour inciter le module processeur central choisi à passer à nouveau à son mode normal de fonctionnement, tout en restant néanmoins sous la dépendance desdits signaux ca-30 ractéristiques du mode de commande. 15 - Un appareil d'interruption destiné à être utili se dans un système modulaire de traitement des données qui comprend plusieurs modules processeurs centraux, plusieurs modules 69 03459 74- 20Ô3948 l'information choisie à l'instant où a lieu chacune de ces erreurs, en même. tenps qu'un code opération prédéterminé qui correspond ù ladite erreur et qui l'identifie, des erganes qui sont incorporés à chacun des modules processeurs centraux précités, 5 pour lire et p^our indiquer le contenu des organes de signalisation des incidents de chacun des nodules du système, et des organes pour recevoir et pour emmagasiner une indication des conditions d'interruption dans celui des modules processeurs centraux qui a requis 1'information à~1'emplacement choisi. 10 15 - Un appareil suivant la revendication 15» carac térisé en ce que des organes additionnels sont incorporés à chacun des modules processeurs en vue d'autoriser sélectivement le module processeur intéressé à réagir à la condition d'interruption par une commutation de son mode de fonctionnement. 15 1? - Un appareil suivant la revendication 15, carac térisé en ce que lesdits organes additionnels sont constitués par un registre de masquage qui comprend un certain nombre d'éléments bistables de mémoire, avec un nombre correspondant de portes ET qui sont connectées auxdits éléments bistables. 20 18 — Un appareil d'interruption destiné à être uti lisé dans un système modulaire de traitement des données qui comprend plusieurs modules processeurs centraux, plusieurs modules principaux de mémoire et plusieurs modules de commande d'entrées-sorties, caractérisé en ce qu'il comprend des organes qui sont 25 incorporés à chacun desdits modules de mémoire en vue de fournir un signal de défaillance, ou d'incident en mémoire, en provenance de chacun desdits modules.de mémoire, lorsque l'une quelconque parmi plusieurs erreurs est détectée dans le module intéressé, un registre d'incidents en mémoire qui est incorporé à chacun 50 desdits modules de mémoire et qui est est relié auxdits organes d'émission du signal d'incident de mémoire, l'occurrence de l'un quelconque desdits signaux d'erreur incitant l'adresse en mémoire qui est choisie à l'instant de la détection de cette erreur à être placée dans ledit registre d'incident en mémoire, en même 55 temps qu'un code opération prédéterminé qui correspond, à cette erreur et qui l'identifie, et des moyens qui sort incorporés à chacun d.esdits modules processeurs centraux pour lire le contenu dudit registre d'incident en mémoire et pour démarrer sélectivement une opération d'interruption pour erreur au sein du module 40 processeur central qui a requis l'information ayant donné lieu 69 03459 75 2003948 au signal d'erreur. 19 - Un appareil suivant la revendication 18, caractérisé en ce chacun des modules £;rcce3seurs centraux et chacun des nodules de commande d ' entrées-sorties comprend un regis- 5 tre d'incident qui est connecté au système de traitement des données de la nene façon que le sont les registres d'incidents en mémoire. 20 - Un appareil d'interruption destiné à être utilisé dans un système modulaire de traitement des données qui coa- 10 prend au moins un nodule processeur central, au coins un module principal de mémoire et au moins un module de commande d'entrées-sorties, caractérisé en ce qu'il comprend des organes qui sont incorpores à chacun desdits nodules de mémoire en vue de fournir un signai de défaillance eu a'incident en mémoire en provenance 15 de chacun des.its nodules de mémoire, cela lorsque l'on détecte dans le nodule intéressé une erreur de parité, une erreur d'adressage ou une opération non valide, des organes incorporés audit module de mémoire pour emmagasiner l'adresse en nénoire qui est choisie à l'instant où a lieu l'une quelconque des erreurs 20 susdites, cela en même temps qu'un code opération prédéterminé qui correspond à cette eri-eur et qui l'identifie, et des aoyens qui sont incorporés à chacun des nodules processeurs centraux peu lire le contenu desdits organes de stockage de l'adresse en mémoire et du code d'identification, et pour dénarrer une opération 25 d'interruption pour erreur au sein dudit nodule processeur central. 21 - Un appareil d'interruption pour un système de traitement des données, caractérisé en ce qu'il comprend plusieurs sources de signaux d'interruption qui sont réparties dans 30 1'ensemble du système et qui sont destinées à être activées individuellement en réponse à l'apparition de rjlusieurs types prédéterminés d'état du système, des organes pour recevoir et emmagasiner les multiples signaux d'interruption émanant desdites sources, des organes qui sont connectés dans ce système de maniè-35 re à passer le système de traitement des données de 1'exécution de programme objets normaux à l'exécution de programmes de commande, et des organes qui sont reliés à ces organes de commutation pour empêcher sélectivement lesdits organes de commutation de réagir automatiquement à la réception et l'emmagasinage de 40 l'un quelconque des signaux d'interruption. 69 03459 O 2003948 22 - Un appareil suivant la revendication 21, caractérisé en ce que les organes de réception et d'emmagasinage des signau:; de conditions d'interruption 3cm; réalisés sous la forme a'un registre de conditions d'interruption, et en ce que 5 les organes qui sont reliés aux organe-s de commutation pour empêcher sélectivement; leur activat ion sont réalisés sous la forme d'un registre de masquage des interruptions, avec un certain nombre de pertes 3ï qui sont connectées en correspondance avec chacune des positions de mémoire du registre de masquage, les-10 dites pertes étant connectées de manière similaire aux différentes positions de mémoire du registre de conditions d'interruption de telle sorte qu'elles soient activées par l'apparition conjointe de signaux de positionnement dans les positions de mémoire correspondances dudit registre de conditions d'interruption et 15 dudit registre de masquage des interruptions.