FR 2012328 A1 19700320 FR 6918099 A 19690604 69 18099 1 2012328 ir Cette invention concerne des techniques pour effectuer des verrouillages dans les ordinateurs.Plus particulièrement, elle concerne un dispositif amélioré pour verrouiller deux chaines de programmes dans un dispositif à multitraitements. 5 Une nécessité fondamentale dans le fonctionnement d'un dispositif à multi-traitements est d'assurer que les unités de traitement individuelles dans le dispositif n'interfèrent pas de façon préjudiciable les unes avec les autres.Ainsi quand un conflit surgit à cause d'une demande simultanée pour l'accès au même module de mémoire, ou pour l'usage du même dispositif entrée-sortie, 10 il est nécessaire que toutes les unités de traitement de données sauf une soient amenées à attendre jusqu'à ce que l'accès demandé ou l'usage soit rendu accessible à chacun d'eux à leur tour. Des dispositifs pour assurer une telle attente sont bien connus. Cependant, une situation peut se produire dans laquelle des erreurs peu-15 vent être introduites à cause de l'entrée simultanée de deux ou plusieurs unités de traitement dans des chaines de programme qui interfèrent sur une durée plus longue qu'une simple instruction. Dans ce cas, le dispositif d'arrêt automatique mentionné ci-dessus qui est basé sur des circuits physiques, n'est pas capable d'effectuer l'arrêt et, en conséquence, il a été nécessaire d'assurer 20 des techniques de verrouillage commandées par des programmes pour une telle éventualité) ces techniques permettent au programmeur d'indiquer l'étendue de la chaine de programme sur laquelle il y a susceptibilité à l'interférence. Un exemple d'interférence de ce type se produit quand deux unités de traitement exécutent simultanément un programme de supervision qui ordonne une 25 mise en mémoire, ces interférences résultent dans le fait que le même bloc de mémoire est assigné aux deux à la fois. Ainsi, une technique appropriée est exigée pour empêcher une seconde unité de traitement d'entrer dans une section critique du programme de supervision dans lequel une première unité de traitement est déjà entré. 30 Un autre exemple d'interférence, se rencontre dans le cas où plusieurs unités de traitement partagent le travail nécessaire à l'exécution d'une certaine tâche et ajoutent des quantités à un même élément variable, cette opération impliquant l'extraction de l'élément de la mémoire, l'addition et le retour dans la mémoire. Dans ce cas, si une de ces unités de traitement extrait 35 l'élément variable pour essayer de l'augmenter, tandis qu'une autre unité de traitement est déjà entrain de modifier 1b même élément, il se produit en définitive que la seconde unité de traitement extrait l'élément avant qu'il soit mis à jour, par ce moyen perdant la part d'augmentation du premier. Le verrouillage, doit en conséquence, permettre seulement à une unité de traitement de 40 modifier la somme à n'importe quel moment donné. 69 18099 2 2012328 " De façon générale, la fonction d'un mécanisme de verrouillage est de mettre en série l'usage d'une entité telle qu'une chaine de programme, des tableaux ou des listes, des dispositifs etc..., par un ensemble d'utilisateurs de ces entités, tel que les traitements, exécutés par les éléments de trai-5 tement, les canaux d'entrée et sortie, et similaires. La fonction de verrouillage est effectuée dans les situations où l'absence de mise en série peut créer des erreurs à cause de l'ambiguité des autres raisons. Un mécanisme de verrouillage doit être capable de donner les résultats suivants : 10 1* Possibilité pour un utilisateur d'empêcher les autres utilisateurs d'utiliser de l'entité (opération de blocage) et de permettre par la suite aux autres utilisateurs d'utiliser l'entité (opération d'ouverture); 2. Possibilité d'existence simultanée dans le système d'autant de conditions de verrouillage qu'il est nécessaire ; et 15 3. Empêchement qu'un défaut dans le mécanisme de verrouillage puisse être causé par une synchronisation critique des événements. De plus, il est souhaitable que le mécanisme de verrouillage soit aussi capable de donner les résultats suivants : 1. Empêchement d'interférence entre les utilisateurs attendant une entité 20 st les utilisateurs actifs j 2. Activation d'un seul utilisateur lorsque plusieurs utilisateurs attendent une entité quand l'entité devient disponible et j 3. Spécification d'une limite de temps de façon que l'attente d'un utilisateur soit dirigée sur une fonction précise si cette limite de temps est 25 dépassée par le temps d'attente pour que l'entité soit ouverte. Plusieurs techniques sont connues, actuellement, pour réaliser des verrouillages. Ces techniques impliquent des frais considérables et sont en conséquence, ne sont économiquement intéressantes que pour la manipulation des verrouillages qui protègent de grandes parties de calcul des ordinateurs. 30 Quand on emploie des verrouillages pour synchroniser deux ensembles de tâches très proches qui comprennent respectivement un grand nombre de petits blocs de codage à verrouiller individuellement, il devient important de minimiser les frais associés aux procédés de verrouillage. Lin cas typique est celui d'un grand travail qui est subdivisé en tâches parallèles qui peuvent être * 35 respectivement exéputées simultanément par plusieurs systèmes de traitement de façon à réduire le temps de roulement d'un travail. Les techniques de verrouillage connues généralement impliquent la consommation inutile d'un grand nombre de cycles d'emmagasinage par les unités.de traitement en attente, ce qui entraine des retards pour le système de traitement actif. 40 Un composant essentiel de tous les dispositifs de verrouillage actuellement 69 18099 3 2012328 ' connus est un mécanisme de type "test suivi de commutation" (TS) qui fonctionne sur le contenu X d'un emplacement N dans la mémoire principale qui est accessible à tous les systèmes de traitement. La fonction générale de l'instruction TS est comme suit : 5 si X = 0 alors X est commuté pour devenir égal à 1 si X / 0 alors X n'est pas modifié mais une bascule à condition de branchement est commuté (un branchement est réalisé). Un élément nécessaire dans le mécanisme de TS et l'incorporation dedans d'un dispositif pour empêcher n'importe quel autre accès à l'emplacement N 10 de mémoire sus-mentionnée de se produire entre le test et la commutation. Ce qui suit sont des exemples de trois techniques connues pour exécuter le verrouillage, chacun de ces procédés dépendant fondamentalement du mécanisme TS : 1. "Arrêts dynamiques'' : 15 Une première unité de traitement sur le point d'entrer dans une section de programme susceptible d'interférence réalise des instructions qui testent si une autre unité de traitement est déjà dans la section. Si aucun autre système de traitement n'est dans cette section, un indicateur d'arrêt est mis à l'état actif et, la première unité de traitement rentre dans la section don-20 née. Cependant, si une autre unité de traitement est déjà dans la section, l'unité de traitement se branche à nouveau au test. Cette boucle continue à se produire jusqu'à ce que le verrouillage soit ouvert par l'unité de traitement se trouvant dans ladite section de programme. On se rend compte que l'exécution de ces tests répétés qu'un tel système constitue une charge lourde et 25 indésirable sur la mémoire commune. 2. File d'attente : □ans cette technique la séquence d'instructions de verrouillage précède l'accès à la section de programme susceptible d'interférences. Si elle trouve cette section déjà occupée, la tâche que l'unité de traitement est entrain 30 d'exécuter est placée à la queue d'une file d'attente des tâches et elle est marquée comme étant dans l'état "d'attente". Le fait que la tâche soit en attente pour un événement choisi, dans ce cas, l'abandon de la section sensible par l'unité de traitement réalisant dans cette section est enregistrée dans la représentation de cet événement. L'enregistrement peut consister par exemple, 35 dans l'insertion d'un indicateur représentant la tâche en attente. Après cela la tâche en attente est abandonnée par son unité de traitement et ce dernier est alors libre de commencer l'exécution d'une autre tâche prise dans la file d'attente des tâches prêtes à être exécutées. Quand l'événement se produit pour la tâche qui est en attente, cette 40 tâche est marquée comme n'étant plus dans l'état "d'attente" plus longtemps. 69 18099 4 2012328 ' par ce moyen elle devient exécutable par une unité de traitement disponible. De façon claire, la technique "de file de tâches en attente" est caractérisée par des suppléments de temps appréciables qui résultent de la création d'une information pour indiquer qu'une tâche est dans l'état "d'attente" et 5 de la nécessité d'emmagasiner et de charger à nouveau des registres du système à chaque changement de tâche. Si des couples "attente/reprise" sont employés pour la synchronisation de tâches de routine impliquant des intervalles d'attente courts mais fréquents à l'intérieur de tâches longues, l'avantage de l'utilisation d'un système à multi-traitements est perdu à cause de ces 10 suppléments de temps. 3. "Attente" programmée sur les unités de traitement elles-mêmes : Pour éviter les pertes de temps dues aux transports des tâches d'une région à une autre, la séquence de verrouillage peut être programmée de façon à placer l'unité de traitement essayant d'entrer dans une section sensible 15 occupée d'une mémoire commune dans l'état "d'attente". Ceci rend le système de traitement inactif pendant qu'elle attend j ainsi elle ne consomme pas inutilement des cycles de mémoire. Pour que l'unité de traitement en attente puisse reprendre le fonctionnement quand l'événement se produit, elle doit, avant d'entrer dans l'état d'attente fournir une information qui identifie 20 l'événement attendu. Ceci peut être accompli par exemple, en introduisant le numéro de l'unité de traitement dans une liste liée à l'emplacement N du verrouillage. Bien que la technique "de l'attente programmée sur les unités de traitement" soit supérieure aux techniques des "arrêts dynamiques" et, de la "file de tâches en attente", il implique aussi, beaucoup de tests et de trai-25 tements de listes pour être acceptable. De plus c'est du gaspillage qu'une unité de traitement reste inactive alors qu'il peut faire un travail productif. □n a vu que les systèmes de verrouillage actuellement connus imposent une charge lourde et indésirable sur la mémoire commune et introduisent des pertes de temps très désavantageuses. 30 En conséquence un objet important de cette invention est de fournir un dispositif amélioré pour les chaines de programme de verrouillage dans un système à multi-traitements. Un autre objet est de fournir un dispositif dans lequel le verrouillage exige seulement la mise en place du programme et l'exécution d'une simple paire 35 d'instructions de blocage/ouverture par action de verrouillage appliquée. Un autre objet est de fournir un dispositif en accord avec les objets précédents dans lequels des unités de traitement d'un système de multi-traitements essayant d'entrer dans une section d'un programme utilisée par une autre unité qont placés dans un état "d'attente" jusqu'à ce que l'utilisateur courant 40 ait terminé son utilisation de la section. 69 18099 5 2012328 ' Encore un autre objet est de fournir un dispositif en accord avec les objets précédents muni d'un système de sélection pour choisir à la fin de l'utilisation d'une section, l'unité en attente achnise à entrer dans la section. 5 Encore un autre objet ëst de fournir un dispositif en accord avec les objets précédents dans lesquels des entités ou des systèmes de traitement attendant d'entrer dans une section utilisée du programme sont maintenus dans un tel état pour seulement une durée choisie à la fin de laquelle ils sont déplacés de la tâche d'exécution qu'ils exécutent et rendent disponibles pour 10 exécuter une tâche différente à partir d'une file d'attente de tâche dans le système. De manière générale et en accord avec l'invention, on a réalisé dans un ordinateur qui comprend plusieurs unités actives pouvant entrer dans les mêmes sections d'un programme commun ou exécuter différents programmes sur la même 15 section de donnée, un dispositif pour empêcher plus d'une des unités d'entrer simultanément dans la même section du programme ou de donnée. Le dispositif comprend un dispositif à mémoire accessible à chacune des unités du système, dans lequel un emplacement a été choisi pour convenir une première configuration choisie de bit indiquant qu'une section donnée est déjà utilisée par une 20 des entités ou une seconde configuration choisie de bits pour indiquer que la section donnée est accessible aux unités cherchant à l'utiliser. Chacune des unités comporte un dispositif pour déterminer laquelle de ces configurations est présente, et pour indiquer que l'unité a fini d'utiliser la section. Chacune des unités comporte aussi des dispositifs sensibles à la détection de 25 l'existence de la première configuration pour amener l'unité effectuant cette détection'à suspendre son activité de traitement par rapport à la section. Il est de plus inclus dans chaque unité des moyens sensibles à la détection de la seconde configuration pour placer la première configuration dans l'emplacement et par ce moyen bloquer l'accès à la section pour toutes les unités 30 autres que celle qui effectue cette détection. Chaque unité contient également des dispositifs sensibles à la rencontre de la seconde instruction par l'entité utilisant la section permettant l'emmagasinage de la seconde configuration dans l'emplacement et des dispositifs répondant aux mémoires les dernières nommées pour émettre un signal aux autres entités disant que la suspension de 35 l'activité est maintenant terminée par rapport à la section. D'autres objets, caractéristiques et avantages de la présente invention, ressortiront mieux de l'exposé qui suit fait en référence aux dessins annexés à ce texte qui représentent un mode de réalisation préférée de celle-ci. Les figures 1A et 1B, assemblées comme le montre la figure 1 représentent 40 un dispositif construit en accord avec les principes de l'invention du concept 69 18099 6 2012328 inventif essentiel. La figure 1C est un diagramme d'un montage effectuant une étape du fonctionnement de ce dispositif. La figure 1D représente un montage pour effectuer une autre étape du fonctionnement de ce dispositif. 5 La figure 1E représente un élément également utilisé dans le fonctionnement de ce dispositif. La figure 1F montre le mécanisme émettant le signal de reprise. La figure 1G représente une réalisation généralisée du concept inventif essentiel. 10 Les figures 2A et 2B assemblées comme le montre la figure 2, décrivent une autre réalisation construite en accord avec les principes de l'invention, cette réalisation incluant une caractéristique dépendante du temps "attente". La figure 2C est un diagramme d'un montage pour effectuer une étape du fonctionnement du dispositif montré dans les figures 2, 2A et 2B. 15 La figure 2D est un diagramme pour effectuer une autre étape du fonction- ' nement de ce dispositif. La figure 2E représente un élément de circuit également employé dans le fonctionnement de la réalisation montrée dans les figures 2, 2A et 2B. La figure 2F montre le mécanisme faisant avancer le compteur d'instruction 20 et la mise en place du programme de la prochaine instruction. La figure 2G est une description d'une réalisation générale de l'invention > incluant la caractéristique de temps "attente". Les figures 3A, 3B et 30» assemblées comme le montre la figure 3, décrivent une autre réalisation, construite en accord avec l'invention et illustrant la 25 caractéristique choisie reprise. La figure 3D montre un élément de circuit effectuant une étape du fonctionnement du dispositif montré dans les figures 3, 3A, 3C. La figure 3C illustre l'émission du signal reprise dans le fonctionnement du dispositif montré dans les figures 3, 3A et 3C. 30 La figure 3F illustre l'avancement d'un compteur d'instructions et la mise en place d'un programme de la prochaine instruction dans le fonctionnement . de ce dispositif. La figure 3G représente une réalisation générale de l'invention qui comprend la caractéristique "reprise sélective". 35 Les figures 4A et 4B assemblées comme le montre la figure 4 représentent une partie d'une autre réalisation de l'invention, qui comprend une caractéristique "reprise d'une seule unité de traitement". Les figures 5A et 5B assemblées comme le montre la figure 5 représentent 40 une autre partie de cette dernière réalisation.- 69 18099 7 2012328 " La figure 5C représenta un élément de circuit pour l'avancement du compteur d'instruction dans la marche du dispositif montrée dans les figures 4, 4A, 4B et dans les figures 5, 5A et 5B. La figure 5D représente un élément de circuit pour l'utilisation de la 5 fonction d'accès de mémoire "lecture" et ^maintien" dans la marge de ce dispositif. La figure 5E représente un élément de circuit pour l'utilisation de la fonction de demande "mise en mémoire" dans la marge de ce dispositif. La figure 5F est une représentation générale de l'invention comprenant la 10 caractéristique "reprise d'une seule unité de traitement". La figure B est un diagramme de l'horloge A qui est employée pour commander un premier micro-programme utilisé par le dispositif montrée dans les figures 1, 1A-1F. La figure 7 est un diagramme de l'horloge B qui est employé pour ccmman-15 der un second micro-programme utilisé par le dispositif. La figure 8 est un diagramme de l'horloge C qui est utilisé pour commander un troisième micro-programme utilisé par ce dispositif. La figure 9 est un diagramme de l'horloge D qui est utilisé pour commander un premier micro-programme utilisé par le dispositif montré dans les figures 20 montrées 2, 2A-2F. La figure 10 est un diagramme de l'horloge E qui est employé pour commander un second micro-programme utilisé par le même dispositif. La figure 11 est un diagramme de l'horloge F qui est employée pour commander un troisième micro-programme utilisé par ce même dispositif. 25 La figure 12 est un diagramme de l'horloge G qui est employée pour com mander un premier micro-programme montré dans les figures 3.3A-3F. La figure 13 est un diagramme de l'horloge H qui est employée pour commander un second micro-programme utilisé par ce dispositif. La figure 14 est un diagramme de l'horloge J qui est employée pour com-30 mander un premier micro-programme utilisé par le dispositif montré dans les figures 4, 4A, 4B et dans les figures 5, 5A, 5E. La figure 15 est un diagramme de l'horloge K qui est employée pour commander un second micro-programme utilisé par ce dispositif et La figure 16 est un diagramme de 1'horloge L qui est employé pour corn-3B mander un troisième micro-programme utilisé par ce dispositif. L'invention décrite ci-dessous comprend essentiellement une addition relativement simple au matériel classique du système de traitement central grâce auquel le verrouillage peut être obtenu pratiquement sans addition de cycles. Il exige seulement la recherche et l'exécution d'une simple paire 40 d'instructions blocage/déblocage pour chacune des actions du verrouillage. 69 18099 8 2012328 Comme on le verra le concept inventif peut être mis en oeuvre dans plusieurs réalisations qui diffèrent en ce qui concerne leur fonctionnement et le nombre de cycles de mémoire que le fonctionnement exige. Cependant, ils sont tous basés sur les éléments suivants : 5 1- Un emplacement fixé pour contenir l'information de verrouillage dans une mémoire accessible à plusieurs unités de traitements. 2- Un cycle de mémoire spécial pour tester et mettre en pèace un verrouillage tel que l'interférence pendant chaque cycle soit impossible. 3- Un état "d'attente" dans lequel l'unité de traitement conserve l'état 10 d'une tâche sans consommer de cycles de mémoire, et dans lequel il entre automatiquement sur détection d'un verrouillage. 4- Des connexions accessibles à chaque unité de traitement par lesquelles une unité de traitement peut amener les unités de traitement en attente, ou certaines d'entre elles à reprendre le travail c'est-à-dire à quitter l'état 15 d'attente. Les éléments précédents sont rendus plus efficaces par deux instructions machine complémentaires à savoir : une instruction "test pour zéro et attente" (TZW) et une instruction "restauration" CRI). Comme on le verra ci-dessous, la paire d'instructions TZW/RI élimine 20 substantiellement l'interférence d'accès de mémoire se produisant à cause des tests répétés d'un emplacement de mémoire et élimine l'effet provenant des files d'attente et des manipulations de listes. Le montage représenté est installé dans chacune des unités de traitement impliquées. La mémoire est partagée. Bn se référera maintenant aux figures 1A, 1B, assemblées comme le montre 25 la figure 1, aux figures 1C-1F, qui décrivent une réalisation du concept essentiel de l'invention, et aux figures 6,7 et 8 qui Montrent des réalisations d'horloge pour commander des micro-programmes respectifs réalisés dans le fonctionnement de cette réalisation. Les horloges A, B, C dans les figures 6,7 et 8 respectivement comprennent 30 des chaines convenables d'étages de multi-vibrateurs monostables, chacun de ces étages étant légendé SS. Les multi-vibrateurs monostables sont disposés de façon que lors du retour d'un multi-vibrateur de son état quasi-stable à-son état stable, il commute le multi-vibrateur pour lequel sa sortie est appliquée à l'état quasi-stable à partir duquel il retourne automatiquement à son 35 état stable après le laps d'intervalle de temps déterminé par son calcul. L'action de commuter un multi-vibrateur monostable à son état quasi-stable sera désormais notée comme "déclenchement" ou "actionnement". Dans la description suivante, la forme d'onde de sortie se produisant pendant l'état quasi-stable d'un multi-vibrateur monostable est désignée par la même rotation que le multi-40 vibrateur lui-même. Ainsi par exemple, l'impulsion de sortie du multi-vibrateur 69 18099 9 2012328 " monostable A1 dans l'horloge A se réfère à l'impulsion A1. Revenant aux figures 1, et 1A-1F, il apparait ici que quand une instruction TZW est rencontrée une impulsion produite par le décodeur 101 (figure IA) sur la ligne 226 est appliquée au multi-vibrateur monostable A1 (figure 6) 5 pour amorcer le fonctionnement de l'horloge A. La sortie de l'impulsion A1 du multivibrateur A1 est appliquée à la porte 290 à travers un circuit OU 105 de façon à envoyer le champ d'adresse du registre d'instruction (IR) 100 au registre d'adresse de mémoire (HAR) 102. A la fin de l'impulsion A1, le multivibrateur monostable A2 est déclenché, sa sortie d'impulsion A2 étant appli-10 quée à la ligne 104 (figure 10) pour demander un accès de mémoire -"lecture" et pour maintenir la mémoire commune (non montrée) pour un emmagasinage ultérieur. Simultanément, une bascule 106 est enclenchée à son état "1". A la fin de l'impulsion A2, qui passe à travers un circuit OU 103, le multivibrateur monostable A3 est déclenché, son impulsion A3 étant appliquée à la porte 292 (figu-15 re 10) de façon è tester l'état de la bascule 106. Si pendant le temps d'un telessai, la bascule 106 est dans son état "1", la sortie se trouve sur la ligne 228 qui fonctionne de façon à déclencher le multi-vibrateur monostable A4. L'impulsion résultante A4 est employée pour retard, et à la fin de cette impulsion le multivibrateur monostable A3 est déclenché à travers le circuit 20 OU 103. Si à ce moment, cette bascule 106 est testée par l'impulsion A3, la bascule 106 est dans son état "zéro", alors une sortie se trouve sur la ligne 230 dans la sortie de la porte 292 et le multivibrateur monostable A5 est déclenché. Dans cette connexion, il est à remarquer que la bascule 106 est réenclenchée à son état "zéro" quand l'accès "lecture" est obtenu et l'informa-25 tionde la mémoire a été déplacée dans le registre' d'emmagasinage 110 (figure IB). Dans- la réalisation de l'invention, une configuration de tous les "0", par exemple est choisie pour indiquer qu'aucune unité de traitement, à un moment donné, n'utilise une section particulière d'un programme (verrouillage débloqué) et une configuration de tous les "1" est choisie pour indiquer qu'une 30 autre unité de traitement utilise la section particulière (verrouillage bloqué). A ce moment, c'est-à-dire avec l'accès "lecture" achevé il est nécessaire de tester si les bits du registre à mémoire 110 sont tous "zéro" ou ne sont pas tous "zéro". Si ce sont tous des "zéro", cette condition signifie que l'unité système de traitement cherchant à entrer dans une section particulière 35 du programme peut entrer dans une telle section puisque aucun verrouillage n'existe. Si les contenus des registres 110 ne sont pas tous "zéro", cela signifie qu'une unité de traitement cherchant à entrer doit attendre jusqu'à ce que la section de mémoire contenant l'information de verrouillage soit débloquée par l'unité de traitement utilisant cette section particulière du pro-40 gramme, un tel déblocage étant signifié par le placement de tous les "zéros" 69 18099 10 2012328 " dans l'emplacement d'emmagasinage. L'impulsion A5 est appliquée à la porte 294 (figure 1B) de façon à tester la sortie d'un élément de comparaison 108. L'élément de comparaison 108 compare les contenus du registre à mémoire 110 et celui d'un registre 112 qui contient toujours les "zéros". Ainsi, si les contenus du registre à mémoire 5 110 sont tous "zéros", une bascule de comparaison 114 est réglée à son état "zéro". Si, cependant, les contenus du registre à mémoire 110 ne sont pas tous "zéro" la bascule de comparaison 114 est réglée à son état "1". A ce moment critique quand l'impulsion A5 est terminée le multi-vibrateur monostable A6 est déclenché. L'impulsion résultante A6 est appliquée à la porte 10 296 (figure 1B) de façon à tester l'état de la bascule de comparaison 114. Si la bascule 114 est dans son état "zéro", alors une sortie apparait sur la ligne 234 à partir de la porte 296 déclenchant le multivibrateur monostable B1 de l'horloge B (figure 7), par ce moyen le fonctionnement de l'horloge B est amorcé. Comme on le comprendra davantage, le micro-programme commandé par 15 l'horloge A réalise l'instruction TZW. Le micro-programme commandé par l'horloge B permet l'accès d'une section d'un programme par une unité de traitement à l'exclusion des autres quand une telle section n'est pas protégée par un verrouillage. Une telle situation existe quand la bascule de comparaison 114 est dans son état "zéro". 20 Cependant, si pendant l'essai, la bascule de comparaison 114 est dans son état "1", une bascule d'attente 297 (figure 1C) est commutée à son état "1" et la sortie de la porte 296 apparaissant sur la ligne 232 déclenche le multivibrateur monostable A7 dans l'horloge A. L'impulsion A7 est appliquée au circuit OU 298 (figure 1D) de façon à demander un accès de mémoire "emmagasina': 25 ge". Il est aussi à remarquer que l'impulsion A7 en plus de l'apparition d'une impulsion sur la ligne de sortie 116 du circuit OU 298, place aussi une bascule 122 à son état "1". Un tel réglage de la bascule 122, n'a pas de signification à ce moment puisqu'il n'est pas nécessaire à ce moment de tester pour l'accomplissement de l'accès "emmagasinage". L'accès "eirmagasinage" est natu-30 Tellement, nécessaire pour compléter l'opération de mémoire. Il est rappelé que l'impulsion A2 a été appliquée à la ligne 104 pour effectuer le maintien de la mémoire pour des opérations "emmagasinage" ultérieures, de telles opérations nécessaires "d'emmagasinage" étant effectuées par le fonctionnement de l'impulsion A7 juste décrite. 35 II est aussi rappelé que quand la bascule de comparaison 114 a été testée par l'impulsion A6, si la bascule 114 a été dans son état "zéro" à ce moment, une sortie de la porte 296 se trouvera sur la ligne 234 et le multivibrateur monostable B1 sera déclenché puour amorcer le fonctionnement de l'horloge B. 40 L'impulsion B1 est appliquée à la porte 300 (figure 1B) pour transférer un "1" 69 18099 n 2012328 ' d'un registre 118 de "1" au registre d'eirmagasinage 110. A la fin de l'impulsion B1, le multi-vibrateur monostable B2 est déclenché et sa sortie d'impulsion résultante B2 est appliquée au circuit OU 298 de façon à demander un accès de mémoire "d'emmagasinage". Quand l'impulsion B2 se termine le mul-5 tivibrateur monostable B3 est déclenché et son impulsion de sortie résultante B3 est appliquée à un circuit OU 302 [figure 1E) par ce moyen une sortie apparait sur la ligne 120, une telle sortie étant un signal qui fait avancer le compteur d'instruction et met en place la prochaine instruction. Avec ce fonctionnement, l'unité de traitement obtenant l'entrée dans une 10 section particulière d'un programme obtient la commande de celui-ci tandis que protégé par le verrouillage, elle enmagasinB l'information "blocage" dans la forme de tous les "1" dans la mémoire afin d'arrêter n'importe quel autre système de traitement qui peut essayer d'obtenir l'accès à cette section. La dernière instruction d'une section à verrouillage est choisie pour être 15 une instruction de restauration [RI]. Quand l'unité de traitement commandée achève l'exécution d'une série d'instruction à verrouillage, il exécute l'instruction "restauration"(RI). Comme montré dans la figure 1A, quand une instruction RI est décodée la ligne de sortie 236 à partir du décodeur 101 est activée par ce moyen l'horloge C 20 (figure 8) commence son fonctionnement. L'horloge C est similaire en structure aux horloges A et B mais son but est de contrôler le micro-programme effectuant l'instruction RI. Sous la commande de l'horloge C, la sortie d'impulsion C1 du multivibrateur monostable C1 est appliquée à la porte 290 à travers un circuit OU 105 pour -25 transférer l'adresse d'un emplacement de verrouillage à partir du registre d'instruction 100 au registre d'adresse de mémoire (MAR) 102. A la fin de l'impulsions C1, le multivibrateur monostable C2 est déclenché et sa sortie d'impulsion résultante C2 est appliquée à la porte 304 (figure 1B) pour transférer le "zéro" du registre 112 au registre 110. A la fin de l'impulsion 30 C2, un multivibrateur monostable C3 est mis en action et sa sortie d'impulsion C3 est appliquée au circuit OU 298 (figure 1D) pour activer la ligne 116 et par ce moyen demander un accès de mémoire "emmagasinage"tout en commutant simultanément la bascule 122 à son état "1". Il est aussi à remarquer qu'à ce moment critique il est nécessaire de tester la fin de l'accès "etimagasinage". 35 En conséquence, à la fin de l'impulsion C3, et de la mise en oeuvre conséquente d'un multivibrateur monostable C4 à travers un circuit ou 107, l'impulsion C4 est appliquée à la porte 306 (figure 1D) pour tester la bascule 122. Si, à ce moment, la bascule 122 est dans son état "1", le multivibrateur monostable C5 sera déclenché. Cependant, si la bascule 122 est dans son état "zéro", alors 40 le multivibrateur monostable C6 est déclenché. L'impulsion C5 est utilisée 69 18099 12 2012328 ' pour retard seulement et à la fin le multivibrateur monostable C4 est à nouveau déclenché à travers le circuit OU 107. L'impulsion CB est appliquée à la ligne 124 (figure 1F) pour envoyer le signal "reprise" aux autres unités de traitement. L'impulsion B3 est appliquée au circuit OU 302 (figure 1E) pour 5 faire avancer par la ligne 120, le compteur d'instructions et pour mettre en place la prochaine instruction. A ce moment l'emplacement de verrouillage dans la mémoire contient tous les "zéros" et le verrouillage a été débloqué. En conséquence, avec le dispositif montré dans las figures 1A-1F, on réalise un verrouillage sensiblement exempt de cycles de mémoire supplémen-10 taires avec deux instructions de machine complémentaires c'est-à-dire, le test pour zéro et attente (TZW) et la restauration (RI). □ans la figure 1G, dans lequel on montre une réalisation générale, du mécanisme de base TZW/RI construit en accord avec les principes de l'invention, les séquences de commandes réalisant les instructions TZW et RI sont fournies 15 par des registres à décalage CS1, CS2 et CS3. Un simple bit "1" est inséré à la gauche du registre pendant la mise en action d'une séquence. Chaque étage actionne une étape de la séquence et la propagation cornue montré dans la figure 1G, est de gauche à droite. Le décodage d'une instruction TZW amorce une séquence de commande CS1 qui 20 comprend les étapes suivantes. 1/ L'envoi d'une adresse N du registre d'instruction IR au registre d'adresse de mémoire MAR. 2/ Le début d'un cycle de recherche et de maintien ou l'équivalence pour maintenir la connexion du bus au module d'errmagasinage choisi jusqu'à ce que 25 l'unité de traitement commence un second cycle de mémoire. 3/ La comparaison du contenu de mémoire juste reçu avec "0" et l'emmagasinage du résultat dans une bascule de comparaison. 4/ Si C (N) ^ 0 (la comparaison montre l'inégalité), alors l'unité de traitement est mise dans l'état d'attente par ce moyen, arrêtant tous ses 30 circuits de commande en séquence.Le compteur d'instruction n'avance pas. Si C (N) = 0 (la comparaison montre l'égalité), alors la séquence de commande CS2 est amorcée. La séquence de commandes CS2 bloque le verrouillage et permet au système de traitement de continuer. Les étapes sont : 35 1/ - Le passage.à "1" du bit de signal du registre à mémoire. 2/ - Lé début d'un cycle de mémoire d'emmagasinage. 3/ L'avancement d'un compteur d'instructio et le processus pour exécuter les instructions successives. Le décodage d'une instruction RI amorce la séquence de commandes CS3. Cette 40 séquence comprend les. étapes suivantes : 69 18099 13 2012328 1/ L'envoi d'une adresse N du registre d'instruction IR à la mémoire. 2/ La mise à "zéro" de tous les bits dans le registre demémoire. 3/ Le début d'un cycle "d'emmagasinage" dans la mémoire. 4/ L'envoi d'un signal à tout les unités de traitement pour reprendre le 5 traitement. 5/ L'avancement du compteur d'instruction. Sous la réception d'un signal de "reprise", une unité de traitement se trouvant dans l'état "d'attente" retournera à l'état actif, ainsi la reprise de la séquence normale. L'instruction TZW sera une fois encore effectuée puis-10 que le compteur d'instruction et le registre d'instruction n'auront pas été modifiées par l'instruction TZW qui originellement a rois l'unité de traitement dans l'état d'attente. En se référant maintenant aux figures 2A et 2B, assemblées comme le montre la figure 2, aux figures 2C-2E, et aux horloges D,E et F montrées dans les 15 figures 9, 10 8t 11 respectivement pour la description de structure et une explication du fonctionnement des autres réalisations construites en accord avec Ibs principes de l'invention. Les horloges 0, E et F sont similaires en structure et en fonctionnement aux horloges A, B et C respectivement. L'horloge D similaire à l'horloge A, commande le micro-programme pour réa-20 liser l'instruction TZW. En plus, elle effectue l'opération "intervalle" ou l'opération "limitation d'attente dans le temps". En considérant le fonctionnement de l'horloge D est mis en route quand une instruction TZW est rencontrée, mettant en action la ligne de sortie 240 du décodeur 241 (figure 2A). L'impulsion D1 est appliquée à une porte 290 de fa-25 çon à transférer l'adresse d'un registre d'instruction 126 (figure 2A) à un registre d'adresse de mémoire(MAR) 128 (figure 2B). Quand l'impulsion 01 est terminée le multivibrateur monostable D2 est mis en action et son impulsion de sortie D2 est appliquée à la ligne 243 pour solliciter l'accès de mémoire de lecture pour maintenir la mémoire pour une opération d'emmagasinage ultérieure. 30 Simultanément, une bascule 132 est commutée à son état "1" (figure 2E). Quand l'impulsion D2 est terminée, le multivibrateur monostable D3 agit à travers le circuit OU 245, l'impulsion D3 étant appliquée à la porte 295 de façon à tester la bascule 132. Si la bascule 132 est dans son état "1", alors la ligne de sortie 242 de la porte 295 est mise en oeuvre et le multivibrateur monostable 04 35 est déclenché, l'impulsion D4 étant utilisée pour retard seulement et, à la fin, le multivibrateur monostable D3 agit à nouveau à travers le circuit OU 245. Cependant, si au mime moment la bascule 132 est dans son état "zéro", alors une ligne de sortie 244 de la porte 295 agit par ce moyen, le multivibrateur monostable D5 est déclenché. Le dernier événement se produira quand l'ac-40 ces de "lecture" est complet et les données de mot ont été placées dans le 18099 14 2012328 registre d'emmagasinage 136. Qn reconnaît que les 5 premières étapes commandées par l'horloge 0 sont les mânes que celles commandées par les cinq premières étapes de l'horloge A. A ce moment, on désire tester si les bits du registre d'emmagasinage 136 sont tous "zéro" ou ne sont pas tous "zéro". Si ce sont tous des "zéro" ceci signifie qu'une unité de traitement peut pénétrer dans la section d'un programme protégée par le verrouillage. Si les bits du registre d'emmagasinage 136 ne sont pas tous "zéro" ceci signifie que l'unité de traitement doit attendre jusqu'à ce que la section de programme soit rendue libre par un autre système de traitement mettant à "zéros" tous les bits dans cet emplacement d'emmagasinage. L'impulsion D5 est appliquée à la porté 297 de façon à tester la sortie d'un élément de comparaison 134. Dans l'élément de comparaison 134, on compare le contenu du registre d'emmagasinage 136 avec le contenu du registre 138. Si à ce moment, les bits contenus dans le registre d'emmagasinage 136 sont tous des "zéro", une bascule de comparaison, 140 (figure 1B), est restaurée à son état "0". Cependant, si les bits contenus dans le registre d'emmagasinage 136 ne sont pas tous "0" alors la bascule 140 est mise à son état "1". A la fin de l'impulsion D5, le multivibrateur monostable D6 est mis en action. L'impulsion D6 est appliquée par une porte 308 (figure 2B). Si à ce moment, la bascule 140 est dans son état "1", la bascule "attente" (figure 2A) est placée à son état "1", l'impulsion apparaissant sur la ligne de sortie 312 de la porte 308 étant aussi appliquée à un circuitOU 310 pour fournir une sortie sur la ligne 142 demande un accès de mémoire "d'emmagasinage". Quand la bascule 140 est dans son état "1" la ligne 246 à la sortie de la porte 308 est activée par ce moyen le multivibrateur monostable D7 est mis en action. L'impulsion 07 est appliquée à un circuit ET 144 (figure 2A3. Si la bascule "attente" est dans son état "1" au même moment où l'impulsion D7 est appliquée au circuit ET 144, le circuit ET 144 est rendu actif par ce moyen, sa sortie est appliquée à la porte 314 pour envoyer le champ "intervalle" du registre d'instruction 126 au système chronométrique 316, le champ "intervalle" contenant l'information de durée de temps. Quand l'impulsion D7 se termine, le multivibrateur monostable D8 est déclenché, la sortie d'impulsion résultante D8 étant appliquée à un circuit ET 146 (figure 1A3. Si la bacule "attente" est dans son état "1", le circuit ET 146 est rendu actif par ce moyen sa sortie faisant passer le basculeur d'avance d'horloge 146 à l'état "1". L'horloge E permet de reconnaître la fin de l'intervalle d'attente. Ainsi quand, la bascule 146 est passée à l'état "1", l'horloge E (figure 10) fait fonctionner le compte à rebours du système chronométrique 316. Le fonctionnement de l'horloge E est amorcé par une impulsion de départ 69 18099 15 2012328 convenable (non montrée) à travers un circuit OU 255, qui met en action le multivibrateur monostable E1. L'impulsion E1 est appliquée à la porte 318 (figure 2A) pour tester l'état de la bascule 148. Si, à ce moment, la bascule 148 est dans son état "1", alors le multivibrateur monostable E2 est mis en 5 oeuvre par l'impulsion apparaissant sur la ligne de sortie 248 de la porte 318 Cependant, si la bascule 148 est dans son état *0", alors le multivibrateur monostable E3 est mis en oeuvre par l'impulsion apparaissant sur la ligne de sortie 250 de la porte 318 à travers un circuit OU. L'impulsion E3 est employée pour retard seulement et à la fin, le multivibrateur monostable E1 est 10 à nouveau mis en oeuvre à travers le circuit OU 255. L'impulsion E2 est appliquée au système chronométrique 316 pour le faire décroitre. L'horloge F montrée dans la figure 11 est utilisée pour tester la sortie d'un système chronométrique 316 à travers un décodeur 320. Le fonctionnement de l'horloge F est amorcé par l'impulsion de départ convenable 15 (fourni par un dispositif non montré) qui passe à travers un circuit OU 257 pour actionner un multivibrateur monostable F1. L'impulsion F1 est appliquée à un circuit ET 259 (figure 2A) comme l'est la sortie restaurée de la bascule "attente". Quand la bascule "attente"est dans son état "0" l'impulsion F1 est présente, le circuit ET 259 est rendu actif pour fournir une sortie sur la 20 ligne 254, une telle sortie passant à travers un circuit OU 261 pour actionner un multivibrateur monostable F2. On a vu dans la figure 2A que quand l'étage 320 a un réglage qui n'est pas tous les "0" une porte 301 a une sortie sur une ligne 252 et si le réglage du décodeur 320 est tous les "0" alors la porte 301 a'.unè sortie sur la ligne 256. Quand une sortie apparait sur la ligne 252, 25 elle est aussi effective, à travers un circuit OU 261 pour actionner le multivibrateur monostable F2. On montre ainsi qu'aussi longtemps que le système chronométrique 316 n'est pas pour tous "0", l'horloge F oscillera entre les étapes F1 et F2. Cependant, quand le système chronométrique 316 est arrivé à zéro par un compte, une impulsion de sortie apparait sur la ligne 256 à par-30 tir de la porte 301, le multivibrateur monostable F3 est alors actionné. L'impulsion F3 est employée pour restaurer la bascule 148 (figure 2A)àson état "0" L'impulsion F3 est aussi utilisée pour restaurer la bascule "attente" à son état "0". A la fin de l'impulsion F3, un multivibrateur monostable F4 est actionné. L'impulsion F4 est appliquée à une ligne 150 (figure 2C) pour amorcer 35 un programme d'interruption qui place la tâche en attente sur une file d'atten te de tâches, et place une tâche prête de la file d'attente des tâches. L'impulsion sur la ligne 150 est aussi employée pour régler une bascule 152 à son état "1". A la fin de l'impulsion F4, un multivibrateur monostable F5 agit à travers un circuit OU 303 (figure 11), l'impulsion F5 étant appliquée à une 40 porte 322 pour tester la bascule 152. Si, à ce moment critique, la bascule 152 69 18099 16 2012328; est dans son état "1", alors une impulsion apparait sur la ligne de sortie 258 de la porte 322 et un multivibrateur monostable F6 est actionné. Si, cependant, la bascule 152 est dans son état "0", alors une impulsion apparait sur la ligne de sortie 260 de la porte 322 et un multivibrateur monostable 5 F7 est déclenché. L'impulsion F6 est employée pour retard seulement et à la fin le multivibrateur monostable F5 agit à nouveau à travers le circuit OU 303. L'impulsion F7 est appliquée à uns ligne 154 (figure 2D), de façon à met-, tre en place la première instruction de la nouvelle tâche. A la fin de l'impulsion F7, le multivibrateur monostable F1 10 agit à nouveau à travers le circuit OU 257 et l'horloge F par ce moyen continue à tester le contenu du système chronométrique 316. L'impulsion B3 est appliquée à la ligne 313 (figure 2F) pour causer l'avancement du compteur d'instruction et la mise en place de la prochaine instruction. La figure 2G similaire à la figure 1G représente une réali-15 sation générale du concept inventif comprenant la caractéristique "attente limitée dans le temps". Cette caractéristique est basée sur la possibilité de fournir une indication d'intervalle de temps dans un champ spécial de l'instruction TZW. Une indication d'intervalle de zéro permettra à la minuterie de parcourir la période complète qui détermine la limite supérieure de l'in-20 tervalle. Ccxnme montré dans la figure 2G, la caractéristique d'attente limitée dans le temps emploie deux étapes additionnelles dans la séquence contrôlée par le registre à décalage CS1. Dans la cinquième étape, l'indication de l'intervalle est transmise au système chronométrique si le système de trai-25 tement est dans l'état "d'attente". A la sixième étape, la bascule d'avance d'impulsion pour la minuterie est mise à "1" permettant par ce moyen aux impulsions d'hrologe de compter à rebours. Après avoir atteint "zéro", la minuterie amorce une séquence de contrôle commandée par le registre à décalage CS4 qui comprend trois étapes, à savoir : 30 1. L'analyse du contenu des registres de l'unité de traite ment et des autres informations concernant les tâches en attente sur les files d'attente de tâches, et la restauration de bascules "d'attente" et "d'avance". 2. La charge des registres de l'unité de traitement avec les informations concernant une nouvelle tâche provenant de la file d'attente de 35 tâches. 3. Le commencement d'une séquence de recherche d'instructions (le compteur d'instruction est chargé quand la nouvelle tâche est extraite de la file d'attente de tâches). Cette troisième étape amorce effectivement la nouvelle tâche. 40 En considérant la différence entre les réalisations montrées 69 18099 17 2012328 dans les figures 1, 1A-1G et les figures 2,2A,2G, dans la première réalisation du concept essentiel de l'invention, le décodage de l'instruction TZW amorce la séquence de commande qui comprend : l'envoi de l'adresse pertinente du registre d'instruction au registre d'adresse de mémoire, le début d'un cycle 5 de recherche et de maintien, la comparaison du contenu de mémoire trouvé avec "zéro", et l'emmagasinage du résultat de comparaison dans une bascule. Si la comparaison ne montre pas une égalité, alors l'unité de traitement est mise en état "d'attente" stoppant par ce moyen tous ses circuits de mise en séquence et ne faisant pas avancer le compteur d'instructions, la comparaison montre 10 l'égalité, alors une séquence de commandes est amorcée, dans laquelle un cycle de mémoire d'emmagasinage est amorcé et le compteur d'instructions avance, ce qui assure l'exécution du processus des instructions successives. Le décodage d'une instruction RI amorce la séquence de commande qui comprend l'étape de l'envoi de l'adresse pertinente du registre d'instruction à .15 la mémoire, la mise à tous "zéros" de tous les bits dans le registre de mémoire, le commencement du cycle "emmagasinage" dans la mémoire, l'envoi d'un signal à toutes les unités de traitement pour reprendre le traitement et l'avance du compteur d'instruction. Après la réception du signal "reprise", un système de traitement qui est dans l'état "attente", retourne simplement à l'é-20 tat actif permettant par ce moyen une mise en séquence normale de reprendre. L'instruction TZW est une fois encore réalisée puisque le compteur d'instruction et le registre d'instruction du système de traitement en question ne sont pas altérés par l'instruction TZW qui originellement met le système de traitement dans l'état "attente". 25 Le concept essentiel résulte dans le fait que la tâche en attente est sus pendue dans l'unité de traitement jusqu'à ce qu'un signal de reprise soit reçu. Un tel dispositif ne peut être valable dans beaucoup de systèmes parce qu'une unité de traitement peut être ainsi immobilisée pour une longue période. En conséquence, dans les réalisations montrées dans les figures 2, 2A-2G un méca-30 nisme de minuterie est inclus pour limiter les intervalles de temps pendant lesquels une tâche en attente peut maintenir une unité de traitement à l'état inactif. Par l'action de ce mécanisme de minuterie quand l'intervalle de temps donné s'est écoulé, l'unité de traitement analyse automatiquement les tâches en attente dans la file d'attente de tâches, et de ce fait, il devient possi-35 ble d'exécuter certaines autres tâches qui peuvent exister sur la file en attente dans un état de disponibilité. La minuterie peut être réglée jusqu'à une valeur maximun. La valeur de l'intervalle peut être fournie par soit un champ d'instruction TZW, comme montré dans la réalisation des figures 2.2A-2F, par exemple, soit par la charge 40 préparatoire d'un registre dont l'adresse est implicitement ou explicitement 69 18099 précisée par l'instruction TZW. Alternativement l'intervalle peut être une quantité fixe. Pour les réalisations montrées dans les figures 2, 2A-2F, un champ spécial est fourni, c'est-à-dire; un champ "d'intervalle", dans l'instruction TZW. 5 Comme décrit en relation avec la réalisation générale montrée dans la fi gure 2G, l'intervalle précisé par l'instruction TZW est transféré dans un système de minuterie si le-système de traitement est dans l'état "d'attenté". Lors de l'étape donnée, la bascule d'avance de minuterie est réglée permettant aux impulsions d'horloge de compter le temps à rebours. Après avoir atteint l'état 10 "zéro", une séquence de commande est amorcée qui comprend l'analyse du contenu des registres de l'unité de traitement et d'autres informations concernant les tâches en attente sur les files d'attente de tâches et la restauration de bascules d'avance "d'attente" et des bascules d'avance chronométrées, la charge des registres de l'unité de traitement avec les informations concernant une 15 nouvelle tâche à partir de la file d'attente de tâches, et l'initiation de la séquence de mise en place de l'instruction, c'est-à-dire que le compteur d'instruction est chargé quand la nouvelle tâche est extraite de la file d'attente de tâches. La dernière étape amorce effectivement la nouvelle tâche. On réalise qu'il peut être possible qu'un certain nombre d'unités de trai-20 tement soient en attente pour des sections verrouillées identiques ou différentes. Si plusieurs unstés de traitement sont en attente au moment où un de ces verrouillages est ouvert, le dispositif d'exécution de l'instruction fondamentale RI permettra à toutes ces unités de traitement de reprendre simultanément, leur activité en recherchant l'accès à leurs emplacements de ver-25 rouillage respectifs. Quand plusieurs unités de traitement essaient simultané-d'accéder au même emplacement de la mémoire, l'un d'entre eux obtiendra l'accès en premier grâce au moyen de sélection qui existent dans tout système comprenant une mémoire commune. Il trouvera le verrouillage ouvert et accédera à la section protégée en fermant le verrouillage derrière lui. Les autres uni-30 tés de traitement obtiendront éventuellement aussi l'accès à l'emplacement de verrouillage mais ils le trouveront fermé et devront revenir à l'état "d'attente". Le mode de fonctionnement ci-dessus, quoique logiquement satisfaisant, gaspille les cycles de mémoire à cause de tâches recherchant l'ouverture d'un 35 seul et même verrouillage, ralentissant ainsi l'exécution de la tâche en activité. Un tel gaspillage peut être éliminé en ne permettant de reprendre leur activité qu'aux unités de traitement en attentB pour une certaine classe de verrouillage plutôt que pour n'importe quel verrouillage, ce qui peut être référé à une procédure "de reprise sélective". Une classe de verrouillage peut 40 être précisée de plusieurs manières, basées sur n'importe quel indicatif connu 2012328 69 18099 19 2012328 à la fois des tâches en attente et des tâches de reprise. Des exemples d'indicatif permettant de préciser la classe sont l'adresse d'emplacement de verrouillage pertinent, l'adresse modulo r, où r est inférieur au nombre d'adresses possibles, un nombre fourni à la fois par les instructions TZW et les 5 instructions RI, n'importe quel mot enregistré dans la mémoire du registre de l'unité de traitement ou dans l'emplacement de mémoire dont l'adresse est connue implicitement ou explicitement par précision des instructions TZW et RI, etc... Dans les figures 3 et 3A-.3F on montre une réalisation construite en ac-10 cord avec les principes de l'invention qui comprennent aussi une caractéristique "reprise sélective". Les horloges de micro-programme utilisées dans le fonctionnement de la réalisation montrée dans ces figures sont les horloges G et H montrées dans les figures 12 et 13 respectivement, les horloges G et H étant similaires en construction et fonctionnement aux horloges A-F. 15 En se référant maintenant aux figures 3, 3A-3F et aux figures 12 et13, il est rappelé que quand une unité de traitement termine l'exécution d'une série d'instructions qui est protégée par un verrouillage la dernière instruction est l'instruction RI. Ainsi, quand l'instruction RI apparait dans le champ codé OP d'un registre 20 d'instruction 156, la ligne de sortie 262 d'un décodeur 157 active le déclenchement du multivibrateur monostable G1 (figure 12). L'impulsion G1 est appliquée à une porte 159 de façon à transmettre l'adresse du verrouillage d'un registre d'instruction IR 156 à un registre d'adresse de mémoire (MAR) 158. A la fin de l'impulsion G1, un multivibrateur monostable G2 est activé et son 25 impulsion de sortie résultante G2 est appliquée a une porte 305 pour transférer "0" du registre de "0" 160 à un registre d'emmagasinage 162. A la fin de l'impulsion G2, un multivibrateur monostable G3 est activé et son impulsion de sortie G3 est appliquée à une ligne 164 (figure 30) pour demander un accès de mémoire "emmagasinage" et aussi pour mettre une bascule 166 à son 30 état "1". A ce moment, il est nécessaire de tester l'aboutissement de l'accès "d'emmagasinage". Dans ce but, à la fin de l'impulsion G3 et de l'activation du multivibrateur monostable G4 à travers un circuit DU 307, l'impulsion G4 est appliquée à une porte 309 pour tester la bascule 166. Si la bascule 166 est dans son état "1", une ligne de sortie 263 d'une porte 309 est activée 35 pour déclencher un multivibrateur monostable G5. Cependant, si à ce moment, la bascule 166 (figure 3D) est dans son état"zéro" alors la ligne de sortie 264 de la porte 309 est activée pour déclencher un multivibrateur monostable G6. L'impulsions G5 est employée pour retard seulement et à la fin l'impulsion G5, le multivibrateur monostable G4 est à nouveau activé à travers un 40 circuit OU 307. Il est à remarquer que G1-G5 fonctionnent de la même manière 69 18099 20 2012328 que C1-C5 pour exécuter l'instruction RI. L'impulsion G6 est appliquée à la ligne 168 qui diffuse le signal "reprise" de tous les systèmes de traitement (figure 3E). L'impulsion G6 est aussi appliquée à la porte 170 pour diffuser un signal"d'identificateur de classe" 5 à toutes les unités de traitement (figure 3A). Notons que le champ de droite du registre d'instruction 156 contient la partie "adresse de l'instruction" qui sert ici comme information "d'identificateur de classe". A la fin de l'impulsion G6, un multivibrateur monostable G7 est activé, son impulsion G7 étant appliquée à une ligne 172 (figure 3F) de façon à faire avancer le compteur 10 d'instruction et à mettre en place la prochaine instruction. Si une unité de traitement est dans l'état "attente" au même moment que les signaux de reprise sont diffusés, de tels signaux arriveront comme montré à la base de la figure 3B et mettront une des bascules 174-182 à son état "1". Dans cette connexion il est à remarquer que les signaux de reprise 15 montrés dans la figure 3B ne peuvent être effectifs que si une bascule d'attente 175 est dans son état "1", la sortie "1" de la bascule 175 étant une entrée des circuits ET dont les sorties respectives sont les entrées des bascules 174 à 182. Dans la figure 3C on a montré plusieurs registres"d'identificateur de classe" dans une unité de traitement qui sont respectivement 20 chargés avec les codes d'identificateur de classe à partir d'autres unités de traitement. On a ainsi vu que l'horloge G fonctionne: comme l'horloge C, pour commander la diffusion de l'instruction RI et aussi pour effectuer la diffusion de "l'identificateur de classe" à toutes les unités de traitement. En se référant à la figure 13, il est à remarquer que l'horloge H est 25 initialement mis en route par une impulsion de départ (fournie par un dispositif non montré) à travers un circuit DU 311 qui active un multivibrateur monostable H1, l'impulsion H1 étant appliquée à une ligne 324 (figure 3B) de façon à vérifier que la bascule "la plus à gauche" des bascules 174-182 est dans son état "1". Si une de ces dernières bascules est dans son état "1", 30 une bascule correspondante dans le groupe des bascules 184-192 est mise à son état "1". Cependant, si aucune des bascules 174-182 ne sont dans leur état "1", l'impulsion appliquée à la ligne 324 apparait comme une entrée au circuit OU 266 (figure 3C), par ce moyen la sortie du circuit OU 266 sur la ligne 267 déclenche un multivibrateur monostable H2. L'impulsion H2 est utilisée pour 35 retard seulement et à la fin, elle manoeuvre à nouveau le multivibrateur monostable H1 à travers le circuit OU 311. Si à ce moment, une des bascules 174-182 est dans son état "1", le circuit OU 326 (figure 3C) a une sortie qui est .appliquée à un circuit ET 328. Si, à ce moment, la bascule d'attente 175 est dans son état "1", un signal de sortie est produite à partir du circuit 40 ET 328 sur une ligne 268 qui sert à déclencher un multivibrateur monostable H3. 69 18099 21 2012328 Cependant, si à ce moment, la bascule 175 est dans son état "0", alors la sortie du circuit OU 326 entraine la production d'une sortie à partir du circuit ET 330 pour conditionner le circuit OU 266 et par ce moyen remettre en action le multivibrateur monostable H2 par l'activation de la ligne 267. 5 Si on suppose que le multivibrateur monostable H3 a été mis en action par le conditionnement du circuit ET 328, alors l'impulsion H3 est appliquée à la ligne 332 [figure 3B). L'impulsion H3 sert à contrôler les bascules 184-192 pour assurer que seule "la plus è gauche" de ces bascules est dans l'état "1". Il est possible qu'à cause du passage aléatoire à "1" des bascules 1Q 174-182, l'impulsion H1 appliquée à la ligne 324 soit divisée et entraine la mise à l'état "1" de plus d'une de bascule 184-192. L'impulsion H3 assure que seule une des bascules 184-192 est réglée à l'état "1" en déterminant celle qui est la plus à gauche parmi celles qui sont à l'état "1" et en restaurant toutes ces bascules placées à droite de celle-ci. 15 A la fin de l'impulsion H3 un multivibrateur monostable H4 est activé, l'impulsion H4 étant appliquée à une porte 334 (figure 3C) de façon à transférer le champ d'adresse duregistre d'instruction 156 à un élément de comparaison 194. L'impulsion H4 est aussi appliquée à une porte 336 (figure 1C) de façon à choisir un des identificateurs de classe et à le transférer à l'é-20 léipent de comparaison 194, l'identificateur de classe ainsi choisi dépendant du fait qu'une des bascules 184-192 est dans son état "1". En plus, l'impulsion H4 est appliquée à une porte 271 à travers un élément de retard 338 de façon à tester la sortie de l'élément de comparaison 194. Si une telle sortie montre l'égalité, alors une'ligne de sortie 272 d'une porte 271 est manoeuvrée 25 pour déclencher un multivibrateur monostable H7.- Cependant, si une telle sortie montre l'inégalité, alors la ligne de sortie 270 de la porte 271 est manoeuvrée pour déclencher le multivibrateur H5. L'impulsion H5 est appliquée à une porte 340 pour restaurer la bascule parmi les bascule 174-182 qui a été "la plus à gauche" des bascules à l'état 30 "1" quand l'impulsion H1 a été précédemment appliquée. A la fin de l'impulsion H5 un multivibrateur monostable H6 est manoeuvré, l'impulsion H6 étant appliquée à un circuit OU 342 pour restaurer toutes les bascules 184-192 à leur état "0". A la fin de l'impulsion H6, le multivibrateur monostable H1 est remis en action à travers un circuit OU 311. Dans ce dispositif l'horloge H 35 fonctionnera de façon à continuer à sélectionner la plus à gauche des bascules 174-182 jusqu'à ce qu'elle trouve un identificateur de classe qui concorde avec l'identificateur de classe spécifié dans le champ d'adresse du registre d'instruction 156. Si aucun identificateur de classe ne peut être trouvé alors l'horloge H reviendra simplement en arrière jusqu'au multivibrateur monostable 40 H1 et continuera un tel fonctionnement jusqu'à ce qu'une ou plusieurs des 69 18099 22 2012328 bascules 174-182 reviennent à l'état "1". Si la sortie de l'élément de comparaison 194 montre l'égalité quand elle est testée par l'impulsion de retard H4, alors le multivibrateur monostable H7 de l'horloge H sera actionné, l'impulsion H7 étant employée pour restaurer toutes les bascules 184-192 à leur état "0". L'impulsion H7 est aussi utilisée 5 pour restaurer toutes les bascules 174-182 à leur état "D" et pour restaurer la bascule "d'attente" 175 à son état "D". Dans la figure 3G, qui montre une réalisation générale en accord avec l'invention et comprenant la caractéristique "reprise sélective", on voit qu'à la quatrième étape de la séquence CS3 pour l'instruction RI, le champ d'adres-10 se de cette instruction est transféré pour être diffusé à toutes les autres unités de traitement, en parallèle avec le signal "reprise". Une unité de traitement recevant un ou plusieurs signaux de reprise choisira l'un d'eux par exemple, le "plus à gauche", qui est enregistré dans un registre de bascules où chaque position correspond à une unité de traitement. Dès qu'une 15 bascule est enclenchée d'autres réponses sont empêchées. La bascule unique, ayant été enclenchée, choisit l'identificateur de classe qui est présenté par l'unité de traitement correspondante et le transfère à un comparateur qui le compare avec l'identificateur de classe provenant de l'instruction TZW (l'usage de l'adresse d'instruction comme identificateur est montré ici). Si 20 une égalité existe la bascule "d'attente" est restaurée et l'instruction latente TZW est répétée, comme dans la réalisation fondamentale. Quel que soit le résultat de la comparaison, le registre à bascule est restauré, conditionnant par ce moyen le système de traitement à des signaux"de reprise" subséquents. 25 En considérant les réalisations montrées dans les figures 3, 3A-3G, on se rend compte que le nombre d'accès à la mémoire par les unités de traitement remises en marche par le fonctionnement de reprise sélective peut encore être excessif. En conséquence, dans la réalisation montrée dans les figures 4, 4A, 4B et les figures 5, 5A, 5E, un dispositif est illustré ne permettant 30 qu'à une seule de ces unités de traitement en attente de reprendre l'activité une fois qu'un tel verrouillage est ouvert. Essentiellement, dans cette réalisation une identification de toutes les unités de traitement rendues inactives par un verrouillage fermé particulier. L'unité de traitement effectuant l'instruction RI détermine automatiquement laquelle des unités de 35 traitement.en attente pendant le verrouillage particulier sera réactivée et n'etverra un signal de reprise qu'à cette unité. Dans la présente réalisation, cet enregistrement est réalisé dans l'emplacement du verrouillage lui-même qui contient un bit drapeau dont la valeur 40 indique si le verrouillage est fermé ou non, et un bit additionnel pour cha 69 18099 23 2012328 cune des unités de traitement du système. Si le bit de verrouillage associé à une unité de traitement donnée est dans l'état "1", ceci signifie que cette unité attend que le verrouillage soit ouvert. En se référant maintenant aux figures 4, 4A, 4B aux figures 5, 5A, 5E, et 5 aux figures 14, 15 et 16 les trois dernières figures respectivement décrivent les horloges J,K et L qui sont utilisées dans le fonctionnement de la réalisa-' tion montrée dans les figures 4, 4A, 4B et les figures 5, 5A, 5E. Les horloges J, K, L sont similaires en structure et en fonctionnement aux horloges A-H montrées dans les figures 6-13 respectivement. 10 Quand un décodeur 197 décode une instruction TZW, une sortie apparait sur la ligne de sortie 274 qui sert à déclencher un multivibrateur monostable J1. L'impulsion J1 est appliquée à une porte 350 à travers un circuit OU 351 de façon à transférer le champ 'adresse d'un registre d'instruction (RI) 196 à un registre d'adresse de mémoire (MAR) 198. A la finde l'impulsion J1 un 15 multivibrateur monostable J2 est actionné, l'impulsion J2 est appliquée à une ligne 200 (figure 5D) de façon à demander un accès de mémoire "lecture" et à maintenir la mémoire pour un fonctionnement d'emmagasinage ultérieur. Au même moment une bascule 204 est mise à l'état "1" . A la fin de l'impulsion J2, un multivibrateur monostable J3 est déclenché à travers un circuit OU 279, 20 l'impulsion J3 étant appliquée à une porte 281 de façon à tester l'état de la bascule 204. Si à ce point la bascule 204 est dans son état "1", alors une impulsion apparait sur la ligne de sortie 276 de la porte 281 et un multivibrateur monostable J4 est actionné, cependant, si la bascule 204 est dans son état "0" à ce moment, alors une impulsion apparait sur la ligne de sortie 278 de la 25 porte 281 et le multivibrateur monostable J5 est actionné.La bascule 204 sera dans son état "0" quand l'accès de "lecture" sera achevé et quand l'information aura été placée dans le registre d'emmagasinage. Il est à remarquer que le fonctionnement des multivibrateurs monostables J1-J4.est le même que celui des multivibrateurs monostables A1-A4 de l'horloge A. 30 II est remarqué dans les figures 5A et 5B que le registre d'emmagasinage comprend les bascules 205-216. La bascule la plus à gauche 205 est utilisée comme un bit drapeau pour indiquer que le verrouillage est soit fermé, soit ouvert. A chaque bascule restante désignée par les nombres 206-216, correspond une unité de traitement comprise dans le système. Dans l'exemple d'un 35 système décrit, il y a six unités de traitement, chacune des unités de traitement ainsi est assignée à une des bascules 206-216. Le reste de l'horloge J sert à assurer si une des six unités de traitement est mise dans l'état "attente" par l'emplacement de verrouillage en cause, que la bascule associée à ce système de traitement est placée à son état "1", avant que le mot de 40 verrouillage soit ré-emmagasiné dans la mémoire. Ainsi, l'emplacement contenant 18099 24 2012328 l'information de verrouillage sous la forme d'un drapeau indiquant si le verrouillage est fermé ou ouvert, contiendra aussi un bit pour chacune des unités de traitement dans le système indiquant si cette unité est dans l'état "attente" à cause du verrouillage considéré. 5 Ce système fonctionne de la manière suivante. Si la bascule 204 est dans son état "0", une impulsion apparait sur la ligne de sortie 278 de la porte 281 et un multivibrateur monostable J5 est actionné. L'impulsion J5 est appliquée à une porte 344 (figure 5A) de façon à transférer les contenus de la bascule 205 à la bascule 218. A la fin de l'im-1G pulsion J5, un multivibrateur monostable J6 est actionné. L'impulsion J6 est appliquée à une porte 346 (figure 5A) de façon à tester l'état de la bascule 218. Si la bascule 218 est dans son état "1", la bascule en "attente" 287 est mise à l'état "1" et l'impulsion apparaissant sur la ligne de sortie 232 de la porte 346 sert à actionner un multivibrateur monostable J7. L'effet de 15 l'impulsion J7 est différent pour chacune des unités de traitement dans le système, en ce sens qu'il est employé pour mettre à l'état "1", la bascule de registre d'emmagasinage particulier qui correspond à l'unité de traitement associée. Quand l'impulsion J7 est terminée, un multivibrateur monostable J8 est actionné et l'impulsion J8 est appliquée à un circuit OU 348 (figure 5E) 20 pour actionner la ligne 220 et par ce moyen demander un accès de mémoire "emmagasinage" . Si la ligne de sortie 288 de la porte 346 est actionnée par l'envoi de l'impulsion J6 à la porte 346 tandis que la bascule 218 est dans son état "0", le fonctionnement de l'horloge L, (figure 16) est amorcé. L'impulsion L1 est 25 utilisée pour mettre la bascule bit drapeau 205 dans le registre d'emmagasinage à l'état "1". A la fin de l'impulsion L1, un multivibrateur monostable L2 est actionné ; par ce moyen l'impulsion L2 est appliquée à un circuit OU 348 de façon à demander un accès de mémoire "d'emmagasinage". A la fin de l'impulsion L2, un multivibrateur monostable L3 est actionné et l'impulsion L3 est appli-30 quée à une ligne 224 à travers un circuit OU 227 (figure 5C) de façon à fournir un signal pour faire avancer le compteur d'instruction et mettre en place la prochaine instruction. Le micro-programme employé dans la réalisation de l'instruction de restauration (RI) est commandé par l'horloge K montrée dans la figure 15. Le fonc-35 tionnement de l'horloge K est déclenché par l'arrivéede l'instruction RI : par ce moyen la ligne de sortie 282 du décodeur 197 est activée pour déclencher un multivibrateur monostable K1. L'impulsion K1 est appliquée à la porte 350 à travers un circuit OU 351 de façon à transférer l'adresse de l'instruction RI du champ d'adresse du registre d'instruction (RI) 196 au registre d'adresse 40 de mémoire (MAR)198. A la fin de l'impulsion K.1 un multivibrateur monostable 18099 25 2012328 K2 est actionné, l'impulsion K2 étant employée pour placer la bascule 205 (figure 5AÎ à son état "0". L'impulsion K2 est aussi transmise par une ligne 352 à un circuit qui trouve la plus à gauche des bascules à l'état "1" dans l'ensemble de bascules 206-216 du registre d'emmagasinage envoyant le signal de reprise à l'unité de traitement identifié par cette bascule la plus à 5 gauche; l'unité de traitement ainsi identifiée est choisie comme la prochaine unité de traitement pour entrer dans la section de programme libérée par l'exécution de l'instruction RI. En plus, ce signal de reprise est employé dans l'unité de traitement qui l'envoie, pour restaurer à l'état "0", la bascule particulière du registre d'emmagasinage 205-216 correspondant à l'unité 10 de traitement pour laquelle le signal de reprise est envoyé ; les autres bascules de ce registre n'en sont pas affectées. A la fin de l'impulsion K2, un multivibrateur monostable K3 est actionné l'impulsion K3 étant appliquée à un circuit OU 348 (figure 5E) de façon à activer la ligne 220 et à demander par ce moyen un accès de mémoire "d'em-15 magasinage". L'impulsion K3 aussi à ce moment règle la bascule 222 à son état "1". A la fin de l'impulsion K3 un multivibrateur monostable K4 est actionné à travers un circuit OU 295 (figure 15), l'impulsion K4 étant employée pour tester l'état de la bascule 222 en l'appliquant à une porte 337. Si la bascule 222, à ce moment est dans son état "1", la ligne de sortie 284 sert à 20 déclencher le multivibrateur monostable K5. Cependant, si la bascule 222 est dans son état "0", alors la ligne de sortie 286 de la porte 337 devient actif et un multivibrateur K6 monostable est déclenché. L'impulsion K5 est employée pour retard seulement et à la fin, le multivibrateur monostable K4 est à nouveau mis en action à travers un circuit OU 295. L'impulsion K6 est appliquée 25 à la ligne 224 (figure 5C) de façon à fournir un signal pour faire avancer le compteur d'instruction et mettre en place la prochaine instruction. Dans la figure 5F qui montre une description d'une réalisation générale se rapportant à l'invention et comprenant la caractéristique "reprise par une seule unité de traitement". On voit qu'on a enregistré dans les bits du 30 mot à l'emplacement de verrouillage N, l'information indiquant quelles sont les unités de traitement en attente, chaque unité de traitement correspondant à un bit unique. Une unité de traitement particulière, c'est-à-dire, la "plus à gauche", est désignée pour redevenir active quand l'instruction RI sera exécutée. Ainsi, à l'étape 4 de la séquence CS1, amorcée par l'instruc-35 tion TZW, si la bascule de comparaison indique qu'il y a verrouillage, il y a l'amorçage de la séquence contrôlée par le registre à décalage CS5. La dernière séquence comprend deux étapes à savoir : 1/ - La mise à l'état "1" de la bascule du registre d'emmagasinage corres 40 pondant .à l'unité-de traitement exécutant l'instruction, les autres bascules 69 18099 26 2012328 étant inchangées. 2/- Le retour du contenu du registre d'emmagasinage à la mémoire. Cette étape marque l'attente du système de traitement dans le mot de verrouillage. Pendant l'instruction RI d'une unité de traitement, les modifications 5 suivantes sont faites dans le mécanisme fondamental des étapes de séquence commandées par un registre à décalage CS3. 3/ Au lieu de mettre à zéro le contenu entier du registre d'emmagasinage, le bit "drapeau" seul est mis à zéro. En plus, le bit le plus à gauche du reste du registre d'emmagasinage est détecté. Un signal de reprise est envoyé à 10 l'unité de traitement contenant ce bit, si n'importe quelque unité de traitement est en attente à cause du verrouillage en cause. Aussi, un tel bit est mis "à 0" dans le registre d'emmagasinage. 4/ Aucun signal n'est nécessaire à ce point. Le dispositif de reprise montré dans la réalisation des figures 4, 4A, 15 4B, 5, 5A-5E créera la reprise du traitement de son instruction TZW par l'unité de traitement signaléeet seulement par celle-ci. □n doit comprendre que la sélection d'une unité de traitement particulière pour la reprise du travail peut être obtenue autrement que par détection du "1" de tête du mot de verrouillage. Un code ou une adresse dans le mot de 20 verrouillage indiquant un mécanisme particulier peut être recherchée à la place du détecteur "1" de tête pour choisir une unité de traitement particulière pour reprendre le travail. Dans les réalisations montrées ci-dessus, construites en accord avec les principes de l'invention on trouve : 25 A- l'action de l'instruction TZW pour mettre en place un verrpuillage. B- L'action de l'instruction RI pour déconnecter le verrouillage mis en place par l'instruction TZW. C. La supposition que pour n'importe quel "programme verrouillé" particulier, tous les utilsateurs exécutent la séquence ouverture/fermeture de 30 l'ordre correct, puisque le verrouillage est fondamentalement destiné à leur propre protection. L'exécution d'une instruction RI sur un mot de verrouillage par une unité de traitement autre que celle qui exécute l'instruction TZW encore en application peut donner des résultats faux et nuisibles. Un mécanisme pour empêcher 35 de tels résultats, consisterait à associer un "numéro d'unité" avec le mot de vdrrouillage pour identifier l'unité de traitement qui a "arrêté" le code associé, et pour permettre à cette seule unité d'émettre un signal de reprise. Un tel mécanisme exigera l'insertion d'une comparaison dans l'instruction RI et un emmagasinage de numéro de l'unité de traitement dans le mot de verrouil-40 lage par l'instruction TZW. Un autre mécanisme pourrait être un mécanisme 18099 27 2012328 enregistrant l'identité des ensembles de mémoire bloqués par une unité de traitement par les instructions TZW et qui ne permettrait seulement que les instructions RI pour cet ensemble. Dans la réalisation montrée dans les figures 2, 2A-2F une tâche qui se voit interdite par un verrouillage est suspendue et mise sur la file d'attente de tâches. Cette action libère le système de traitement. Une instruction de reprise ultérieure pour cette tâche suspendue est mise en oeuvre de façon que la tâche en question soit à nouveau une candidate pour la sélection par une unité de traitement,c'est-à-dire est l'état "prêt". En considérant l'invention comme décrite dans les réalisations précédentes, on comprend qu'à l'intérieur du champ et de l'esprit de l'invention, des variations sont possibles. Par exemple, au lieu d'utiliser un emplacement dans la mémoire commune, les instructions TZW et RI pourraient utiliser à un ensemble de bascules fournies pour les instructions TZW et RI. de telles bascules étant accessibles à tous les systèmes de traitement. Le bit de verrouillage pourra être maintenu à l'intérieur des instructions TZW ou RI elles-mêmes plutôt que dans un emplacement de mémoire adressé séparément. Un tel dispositif économisera un accès de mémoire, mais naturellement, empêchera l'écriture des programmes re-entrants. Pour l'identification de verrouillage, un registre ou un champ autre qu'un registre d'instruction sera utilisé. Par exemple, pour une telle identification de verrouillage, un registre séparé sera fourni dans chacune des unités de traitement un tel registre étant chargé par une instruction spéciale ou à partir d'un champ des instructions TZW et RI. Alternativement pour l'identification de verrouillage, il peut être fourni un registre général, adressé par les deux instructions TZW et RI qui seraient chargées préalablement à ces instructions. Le tableau suivant montre les relations entre les étapes du fonctionnement sous le contrôle de l'horloge A montrée dans la figure 6. conditions d'enclenchement Le décodage de l'instruction TZW Fin de A1 Fin de A2 Fin de A4 Accès de lecture non réalisé O vO Fonctions réalisées Transfère le champ d'adresse du registre d'instruction (IR) 100 [figure 1 A3 au registre d'adresse de mémoire (MAR)102. Demande un accès de mémoire " de lecture" maintenant la mémoire pour un fonctionnement "d'emmagasinage" ultérieur. Constate si l'accès de "lecture" est réalisé Utilisé pour retard seulement Etape suivante CO O vO A2 A3 M CB A4, si l'accès de lecture n'est pas réalisé autrement A5. K) K> U> K> CO Numéro d'étaps A5 A6 A7 Conditions d'enclenchement Accès de "lecture" réalisé. Fin de A5 Fin de A6 Fonctions réalisées Compare le contenu du registre d'emmagasinage 110 avec tous les "0". Si égalité, la bascule de comparaison 114 (fig:. 1B] est restaurée à son; état "0". Si inégalité, elle est placée à son état "1". Teste l'état de la bascule de comparaison 114 (fig. 1B). Si 114 n'indique pas l'état zéro dans le registre d'emmagasinage, la bascule "d'attente" 297 est réglée (fig. 1A). Demande un accès de mémoire "d'emmagasinage Etape suivante A6 A7.Si la bascule indique un message de non zéro dans le registre d'emmagasinage autrement B1 (fig. 7). Le tableau suivant montre les relations entre les étapes du fonctionnement sous la commande l'horloge B montrée dans la figure 7. Ch -O Numéro d'étape B1 B2 B3 Conditions de déclenchement L'activallon de la ligne 234 (figure 1B) quand la bascule 114 (bascule de comparaison) est dans son état "0". Fin de A6 Fin de B1 Fin de B2 Fonctions réalisées Tranfère les contenus du registre de "1" 118 au registre d'emmagasinage 110 (fig. 1B) B3 Demande un accès de mémoire"d'emmagasinage (fig.1D) Fait avancer le compteur d'instruction (figure 1E). Le tableau suivant montre les relations entre les étapes du fonctionnement sous le contrôle de l'horloge C montrée dans la figure 8. Etape suivante B2 CD O vO o u o K> Ç> K> U» K) Numéro d'étape C1 C2 Condition de déclenchement quand une instruction RI apparait (fig. 1A) Fin de C1. Fin de C2. C4 Fin de C3 Fin de C5. Fonctions réalisées Elle transfère le champ d'adresse dans le registre d'instruction (RI) 100 (fig.1A) au registre d'adresse de mémoire (MAR) 102 (fig. 1B) Elle transfère le "0" du "zéro" du registre 112 au registre d'emmagasinage 110 (fig.1B). Elle demande un accès de mémoire "d'emmagasinage" (fig. 1D). Elle teste l'état de la bascule 122 pour vérifier si l'accès "d'emmagasinage" cr- co Etape suivante o sO NÛ C2 C3 w C4 K> O K) CjU K> 00 o vO Numéro d'étape C5 C6 C 7 Condition de déclenchement Le déclenchement de la ligne de sortie 237 de la porte 306. Le déclenchement de la i ligne da sortie 238 de la porte 306. Fin de C6 Fonctions réalisées est complet (fig.1D) Elle retarde seulement. Diffusion d'un signal de ?reprise" à tous les systèmes de traitement (fig.1F). Elle fait avancer le compteur d'instruction (figure 1E). Le tableau suivant montre les relations entre les étapes du fonctionnement sous le Etape suivante si la bascule 122 est dans son état "1"j C5. Si la bascule 122 8st dans son état "0", C6. C4 C7 contrôle de l'horloge D montrée dans la figure 10. CO O KO sO k3 K> o K) LU K) Conditions de déclenchement L'apparition de l'instruction TZW Fin de D1 Fin de D2 Finde D4. Le déclenchement de la ligne de sortie O . sO ' Fonctions réalisées Elle transfère le champ d'adresse du registre d'instruction IR 126 [figure 2A) au registre d'adresse de mémoire (MAR) 128 (figure 2B). Elle demande un accès de mémoire "de lecture" et maintient la mémoire pour un fonctionnement d'emmagasinage ultérieur (figure 2E) Elle vérifie si l'accès "de lecture" est complet. CD O Etape suivante sO sO D2 □3 D4, Si la bascule 132 est dans son état "1". 05 si la bascule 132 est dans son. état "0"(fig.2E). NO O hO UJ hJ 00 Numéro d'étape □5 Conditions de déclenchement 242 de la porte 295 (figure 2E). Le déclenchement de la ligne de sortie 244 de la porte 295 (figure 2E) □6 Fin de D5. O- ■43 Fonctions réalisées Retard seulement Elle compare le " D6 contenu du registre d'emmagasinage 136 avec tous les "D". Si égalité, elle règle la bascule 140 (bascule de comparaison) à son état "1". Si inégalité elle règle la bascule 140 à son état "0" (figure 2B) Elle teste l'état de la bascule 140. Si la bascule 140 est dans son état "1", la bascule "d'attente" est réglée' à son état "1" et un accès de mémoire "d'emmaga slnage" est demandé. étape suivante D2 D7.Si la bascule 140 est dans son état "1", B1 suit la bascule 140 est dans son état "0". CD O -O •sO 10 JS. O uo K) 00 o . vJD ' Numéro çl'étapa D 7 Conditions d'enclenchement Fin de D6. D8 Si l'unité de traitement: D.8 est en attente, transféra le champ "d'intervalle" : du registre d'instruction (IR) 126 au système chronométrique 316. : Fin dé D7. : Si le système de traitement est en attente, (la bas-: cule "d'attente" est dans son état "1") On règle la bascule 148 (bascule d'avance de minuterie) à 1. Le tableau suivant montre les relations entre les étapes du fonctionnement sous la commande de l'horloge E montrée dans la figure 10. Il est à remarquer que l'horloge E fonctionne de façon cyclique continuellement. Fonctions réalisées Etape suivante 00 O -o vO co U1 ho o NJ U> K) 00 Numéro d'étape E1 E2 Conditions de déclenchement Une impulsion de départ. Fin de E3. Le déclenchement de la ligne de sortie 248 de la porte 316 (fig. 2A). Le déclenchement de la ligne de sortie Fonctions réalisées Elle teste l'état de la bascule 148 (bascule d'avance de minuterie). Si la bascule 148 est dans son état "1" une ligne de sortie 248 de la porte 318 est manoeuvrée pour régler E2. Si la bascule 148 est dans son état "0", la ligne de sortie 250 de la porte 318 est manoeuvrée pour régler E3 (fig. 2A). Diminution d'une unité du contenu de la minuterie 316 (fig. 2A). O vO CD Etape suivante o -«O vO to CT) E3 N> O K5 UJ K) GO o sO Numéro d'étape Condition de déclenchement 250 de la porte 318 (fig.2A) Fin de E2. Fonctions réalisées Elle retarde seulement Etape suivante E1 00 O sO « Le tableau suivant montre les relations entre les étapes du fonctionnement sous la commande de l'horloge F montrée sur la figure 11. Il est à remarquer que l'horloge F fonctionne continuellement de façon cyclique. Numéro d'étape. Conditions de déclenchement . Fonctions réalisées Etape suivante F1 Impulsion de départ. Fin de F2. Fib de F7. (figure 11) Elle teste l'état de la bascule "attente" et la minuterie (fig.2A). Si la bascule "attente" est dans son état "1", si la minuterie n'est pas à "0", la ligne de sortie 252 de la porte 301 est actionnée pour amorcer F2 à travers un circuit □U 261 (fig. 11). Si la bascule "attente" est dans son état "0", w •m NJ ° NJ U> K> OO Numéro d'étape F2 Condition de déclenchement Le déclenchement de la ligne 252 Le déclenchement de la ligne 254. Le déclenchement de la ligne 256. O -O Fonctions réalisées la ligne de sortie 254 du circuit ET 259 est actionné pour amorcer F2 à travers un circuit □U 261. Si la minuterie 316 est à "0" la ligne de sortie 256 de la porte 301 est actionnée pour amorcer F3. Elle retarde seulement Etape suivante Elle restaure la bascule 146 (bascule d'avance de minuterie) à l'état "0". Elle restaure la bascule "d'attente" à l'état "0" F1 F4 CO Q O O CO es NJ O K) LfJ K> 00 Numéro d'étape F4 Conditions de déclenchement Fin de F3 du Fin de F4 F6 Le déclenchement de la ligne 258 Fonctions réalisées Elle effectue l'amorçage du programme d'interruption qui met une tâche en attente sur la file d'attente des tâches et capte une tâche prête de la file d'attente de tâche. Elle teste l'état de la bascule 152. Si la bascule 152 est dans son état "1", la ligne de sortie 258 de la porte 322 est actionnée pour amorcer F6. Si la bascule 152 est dans son état "0" la ligne de sortie 260 est actionnée pour amorcer F7. Elle retarde seulement o -o Numéro d'étape F 7 Conditions de déclenchement Le déclenchement de la ligne 260 Fonctions réalisées Elle applique une impulsion à la ligne 154 (fig. 2D) pour effectuer la mise en place de la première instruction de la nouvelle tâche. Etape suivante F1. CD O •O NÛ Le tableau suivant montre les relations entre les étapes du fonctionnement sous la commande de l'horloge G montrée dans la figure 12. Numéro d'étape G1 G2 G3 Conditions de déclenchement Le déclenchement de la ligne de sortie 262 du décodeur 157 à l'arrivée de l'instruction RI Fin de G1, Fin de G2 Fonctions réalisées Elle transfère le champ d'adresse du registre d'instruction (IRJ 156 au registre d'adresse de mémoire (MAR) 158 (fig. 3A). Elle transfère le "0" du registre d'emmagasinage 126 (figure 3A) Elle demande un accès de mémoire "d'emmagasinage" Etape suivante G2. G3. G4. 4» O K) O —* l-O OJ K) 00 Numéro d'étape G4 G5 Conditions d'enclanohement Fin de G3. Fin d8 G5. Le déclenchement de la ligne 263 (fig.3D> G6 Le déclenchement de la ligne 264. O sO Fonctions réalisées Elle teste l'état de la bascule 166 pour vérifier si l'accès "d'emmagasinage" est complet. Si la bascule 166 est dans son état "1", la ligne de sortie 263 de la porte 309 est activée. Si la bascule 166 est dans son état "0", la ligna de sortie 264 de la porte 309 est activée. Elle retarde seulement Elle emploie le signal de "reprise" qui est diffusé à tous les systèmes de traitement (fig. 3E). Elle diffuse le champd'adresse du registre d'instruction 156 (fig.3A). Etape suivante ^ O vO sO G4 G 7 NO O NO • UJ NO 00 o -o Numéro d'étape G7 Conditions de déclenchement Fin de GB Etape suivante Fonctions réalisées utilisé pour faire avancer le compteur d'instruction (fig. 3F). Le tableau suivant montra les relations antre les étapes du fonctionnement sous le contrôle de l'horloge H montrée dans la figure 13. Il est à remarquer qu8 cette horloge fonctionne continuellement de façon cyclique. Numéro d'étape H1 Conditions de déclenchement Impulsion de départ Fin de H2j Fin de HBi Fin de H7. (fig. 13). Fonctions réalisées Elle teste l'état des bascules 174-182. Si n'importe laquelle des bascules 174-182 est dans son état "1". la bascule la plus à gauche des dernières est trouvée et la bascule correspondante 184-192 est réglée à son état "1" (fig.3b, 3C). Si aucune des bascules 174-182 n'est dans l'état "1", .la îigivo de sovSia d«i ciâretJ.?; OU 2Wi Etape suivante CO O sO -c» M K3, O SJ ; UJ K> QO Numéro d'étape H2 Conditions dp déclenchement Le déclenchement de la ligne267 Le déclenchement de la ligne 268. O Fonctions réalisées est actionnée pour régler H2 (figure 13). Si aucune des bascules 174-182 n'est dans l'état "1" et si la bascule 175 ("d'attente") est dans l'état "0", la ligne 267 est actionnée pour régler H2 (fig.3C). Si aucune des bascules 174-182 n'est dans l'état "1" et la bascule 175 ("d'at tente") est dans l'état "1", la ligne de sortie 268 du circuit ET 328 est actionnée pour régler H3 (figure 3C). Elle retarde seulement. Elle contrôle l'état des bascules 184-192 pour garantir, que seulement une de ces • Etape suivante H1 OO O O sQ 01 K> O K> UJ K) 00 Numéro d'étape H4 Conditions de déclenchement Fin de H3 O vQ Fonctions réalisées bascules est dans l'état "1" (fig. 3B Elle transfère le champ d'adresse du registre d'instruction (RI) 156 à la l'unité de comparaison 194. Elle transfère l'identi ficateur de classe choisi. Elle teste la sortie de l'unité de comparaison 194. Si la sortie de l'unité de comparaison montre l'égalité, la ligne de sortie 272 de la porte 271 est actionnée pour régler H7. Si la sortie de l'unité de comparaison montre l'inégalité la ligne de sortie 270 de la portp 271 est actionnée pour amorcer H5 (figure 3C). Etape suivante H4 OO O -O V0 N> O ho. K> oo o- , -O ' Numéro d'étape H5 H6 Conditions de déclenchement .Le déclenchement de la ligne 270. Fin de H5. Fonctions réalisées La restauration de l'une des bascules choisies 174-182 à son état "0". Elle restaure toutes les bascules 184-192 à leur état "0". Elle restaure toutes les bascules 184-192 à leur état "O". Elle restaure toutes les bascules 174-182 à leur état "0". Elle restaure la bascule "d'attente" 175 à son état "0". Etape suivante H6 H1 cx> o sa .t» en Le tableau suivant montre les relations entre les étapes du fonctionnement sous le contrôle de l'horloge J montrée dans la figure 14. Numéro d'étape Conditions de déclenchement Fonctions réalisées Etape suivante J1 L'arrivée de 1'instruction TZW pour actionner la ligne de N3 Q — K> W *o GO Conditions de déclenchement sortie 274 du décodeur 197. Fin de J1 Fin de J2 Fin de J4 Fonctions réalisées Elle transfère le champd'adresse du registre d'instruction (IR) 196 au registre d'adresse de mémoire (MAR) 190. Ella demande l'accès de mémoire de "lecture" et maintient la mémoire pour un fonctionnement "d'emmagasinage" ultérieur. Elle teste la bascule 202 pour vérifier si l'accès "de lecture" est complet. Si la bascule 204 est dans son état "1", la ligne de sortie 276 de la porte 281 est actionnée pour amorcer J4. Si la bâscule 204 est dans son état "0", la ligne de sortir) 278 dw îa por'ca s 2é»1 eut astiorifïâB pour mava&r Etape suivant? J2 J3 Numéro d'étape Conditions de déclenchement J4 . Le déclenchement : de la ligne 276 J,5 • Le déclenchement • de la ligne 278. JB ' Fin de J5 Fonctions réalisées Etape suivante J5 (fig. 14). Elle retarde seulement Elle teste la bascule 204 du registre d'emmagasinage et place la bascule 218 dans l'état qu'il trouve pour la bascule 204. Elle teste l'état de la bascule 218 (fig. 5A). Si la bascule 218 est dans son état "1", alors la bascule 287 ("attente") est réglée à son état "1" et la ligne de ■ sortie 280 de la porte 346 est actionnée pour amorcer J7. ' Si la bascule 218 est dans son • état "0", la ligne de sortie 288 de la porte 346 est actionnée pour amorcer J1 (fig.16) J3 J6 Numéro d'étape ' J 7 J8 Conditions de déclenchement Le déclenchement dé la ligne 280 Fin de J7 Fonctions réalisées Régler l'une des bascules JB 206-216 qui est associée à l'unité de traitement à l'état "1" (fig. 5A et 5B). Elle demande un accès de mémoire d'emmagasinage. : Etape suivante Le tableau suivant montre las relations entre les étapes du fonctionnement sous }a commande de l'horloge K montrée dans la figure 15. Conditions de déclenchement Fonctions réalisées Etape suivante Numéro d'étape M- K2 Le déclenchement de la ligne de sortie 282 du décodeur 197 quand l'instruction RI apparait (figj 4A) Fin de K1 Elle transfère le champ d'adresse du registre d'instruction (RI) 196 au registre d'adresse de mémoire (MAR) 198 Elle règle la bascule 204 à son état "0". Elle choisit la bascule la plus à gauche des bascules 206-216 qui K2 Numéro d'étape K3 Conditions de déclenchement Fin de K2 K.4 Fin de K.3 Fin.de K.5 O- K Fonctions réalisées est dans l'état "1" et envoie un signal de reprise au système de traitement, après un retard,restaure la même bascule la plus à gauche à l'état "0" (fig. 5A et 5B) Elle demande l'accès de mémoire d'emmagasinage elle vérifie si l'accès "d'emmagasinage" est complet. Si la bascule 222 est dans l'état "1", la ligne de sortie 284 de la porte 337 est actionnée pour amorcer K5. Si la bascule 222 est dans l'état "0" la ligne de sortie 28B de la porte 337 est actionnée pour Etape suivante 00 O ■ o î K3 ^ K4 4* CD K» O K> N> 00» Numéro d'étapes K.5 K6 Conditions de déclenchement le déclenchement de la ligne 284 Le déclenchement de la ligne 286 Fonctions réalisées amorcer K6 (fig. 5E). Elle retarde seulement Elle fait avancer le compteur d'instruction Etape suivante K1 Le tableau suivant montre les relations entre les étapes du fonctionnement sous le contrôlé de l'horloge L montrée dans la figure 18. Numéro d'étape L1 L2 L3 Conditions de déclenchement Le déclenchement de la ligne de sortie 288 de la porte 346 Fin de L1 Fin de L2 Fonctions réalisées Elle règle la bascule 2D4 à l'état "1" (fig. 5A). Elle demande un accès de mémoire d'emmagasinage. Elle fait avancer le compteur d'instruction. Etape suivante L2 L3 1809$ 51 2012328 Bien que l'on ait décrit dans ce qui précède et représenté sur le dessin les caractéristiques essentielles de l'invention appliquées à un mode de réalisation préféré de celle-ci il est évident que l'homme de l'art peut y appor ter toutes modifications de forme ou de détail qu'il juge utiles sans pour autant sortir du cadre de ladite invention. * 4 * * ■ 69 18094 52 2012328 REVENDICATIONS 1. Dans un système de traitement de données comportant plusieurs unités de traitement qui peuvent être appelées à exécuter des programmes possédant une ou plusieurs sections identiques, ou des programmes différents utilisant un ou plusieurs groupes de données identiques, 5 un dispositif pour interdire l'accès simultané d'une telle section de programme ou d'un tel groupe de données par plusieurs unités de traitement, ce dispositif étant caractérisé par la combinaison des éléments suivants : a/ En association avec chacune des dites sections de programme et avec chacun des dits groupes de données, un emplacement de mémoire accessible à 10 toutes les unités de traitement et susceptible de contenir une configuration de digits d'un premier type pour indiquer que ladite section ou ledit groupe est en cours d'utilisation, et une configuration de digits d'un deuxième type pour indiquer que ladite section ou ledit groupe est disponible. b/ Dans chaque unité de traitement : 15 - des moyens de test pour déterminer lequel de ces deux types de configu rations est présent dans un de ces emplacements de mémoire déterminés, - des moyens commandés par la détection d'une configuration du premier type pour placer ladite unité dans un état "d'attente" empêchant ladite unité de continuer l'exécution de son programme en ce qui concerne la section asso- 20 ciée audit emplacement ou la partie comportant l'accès au groupe de données associé audit emplacement. - des moyens commandés par la détection d'une configuration du deuxième type pour commander l'enregistrement d'une configuration du premier type dans ledit emplacement de mémoire en vue d'empêcher les autres unités de traitement 25 d'accéder à la section de programme ou au groupe de données associé audit emplacement. - des moyens de libération pour commander l'enregistrement d'une configuration du deuxième type dans ledit emplacement de mémoire, lorsque l'unité a terminé l'exécution d'une section de programme associée audit emplacement 30 ou d'une partie de programme comportant l'accès au groupe de données associé audit emplacement, et pour envoyer à toutes les autres unités susceptibles d'utiliser ladite section ou ledit groupe, ou è certaines d'entre elles, un signal de reprise. > - des moyens commandés par la réception de ce signal de reprise pour per- 35 mettre à l'unité recevant ce signal de sortir à l'état d'"attente". 2. Dispositif conforme à la revendication 1, caractérisé en outre en ce que 69 1809e? 53 2012320 les moyens de teat et les moyens de libération sont commandés respectivement par des signaux résultant du décodage d'une première et d'une deuxième instruction . 5 3. Dispositif conforme à la revendication 1 ou 2 caractérisé en outre en ce que chaque unité de traitement comporte : - des moyens pour mesurer le temps écoulé à partir du moment où l'unité a été placée dans l'état d"'attente", - des moyens commandés par la détection du fait que ce temps a atteint une 10 durée déterminée avant que l'unité ait reçu un signal de reprise, pour obliger ladite unité à transférer les informations concernant le programme suspendu dans une file d'attente, et à rechercher dans cette file un prograrrme exécutable. 15 4. Dispositif conforme aux revendications 2 et 3 caractérisé en outre en ce que ladite durée est définie par une zone de la première instruction. 5. Dispositif conforme à l'une des revendications précédentes, caractérisé en outre en ce que : - le signal de reprise comporte un indicatif identifiant la section de programme que l'unité émettant ce signal vientde terminer ou le groupe de données que cette unité cesse d'utiliser. - chaque unité comporte des moyens pour comparer l'indicatif contenu dans un signal de reprise reçu avec un indicatif identifiant la section de programme ou le groupe de données impliqué dans une suspension de programme, et pour subordonner la sortie de l'état d'"attente" au résultat de cette comparaison. 6. Dispositif conforme à la revendication 5, caractérisé en outre en ce qee ledit indicatif est défini par une zone de la deuxième instruction. 30 7. Dispositif conforme à la revendication 5 ou 6, caractérisé en outre en ce que ledit indicatif est constitué par l'adresse de l'emplacement de mémoire associé à ladite section de programme ou audit groupe de données. 8. Dispositif conforme à l'une des revendications 5»6 ou 7,,caractérisé en 35 outre en ce que chaque unité comporte des moyens pour.traiter successivement les signaux de reprise, si cette unité reçoit des signaux de reprise provenant de plusieurs autres unités. 20 25 54 2012328 9. Dispositif conforme à une des revendications 1 è 4 et caractérisé en outre en ce que : a/ Chacun des dits; emplacements de mémoire comporte une position pour enregistrer le fait que la section de programme ou 18 groupe de données associé audit emplacement est en cours d'utilisation, et des poaitions associées à chacune des unités de traitement susceptibles d'accéder à ladite section de programme ou audit groupe de données. b/ Chacune des unités de traitement comporte : - des moyens commandés par la détection d'une configuration du premier type dans un des dits emplacements de mémoire pour enregistrer dans la position de cet emplacement associé à lédite unité, une information indiquant que l'unité est en "attente". - des moyens d'aiguillage pour aiguiller le signal de reprise de façon qus ce signal ne soit transmis qu'à une seule des unités en attente, ces moyens comportant des moyens pour lire le contenu de l'emplacement de mémoire en vue de détecter les unités en attante et des moyens pour sélectionner une de ces unités. - des moyens d'8ffacement pour commander l'effacement de l'information indiquant qu'une unité est en attente, lorsque cette unité quitte l'état d'attente. 10. Dispositif conforme aux revendications 2 et 9, caractérisé en outre en ce que les moyens d'aiguillage et les moyens d'effacement sont commandés par des signaux résultant du décodage dé la deuxième instruction.