FR 2136845 A1 19721229 FR 7116498 A 19710507 71 16498 1 2136845 La présente invention concerne le problème du multi-couplage de périphériques dans les processeurs de données incorporant ce qui peut être considéré comme une "micro-machine", à savoir la combinaison de: 5 — une mémoire de commande, contenant des micro-programmes, d*où peuvent être extraites des micro-instructions dont le rôle est généralement de décomposer le fonctionnement d'une instruction en provenance d'un organe extérieur faisant partie de l'environnement de la micro-machine, 10 - une mémoire de travail, constituée d'une pluralité de re» gistres dont la quasi-totalité est banalisée pour affectation de fonctions selon les besoins par les micro-instructions provenant de la mémoire de commande:- registres de transfert et de travail, affectés à la micro-machine et son environnement, accumulateur(s) 15 et registre(s) de base, mémoire(s) d'instructions, registres de travail affectés aux périphériques desservant cette micro-machine, et autres fonctions utiles pour l'exécution des micro—programmes et des liaisons entre la micro-machine et son environnement, 20 - lin opérateur, le plus souvent un simple additionneur- soustracteur avec organes de tests diversifiés, de préférence intercalé entre les registres de la mémoire de travail et son propre registre d'écriture—lecture, - des moyens d'échange entre la mémoire de commande et la 25 mémoire de travail et entre ces mémoires et au moins un organe extérieur de l'environnement de la micro-machine, et, - des moyens de liaisons et d'échanges entre cette micromachine et les différents périphériques affectés à sa desserte. L'organe extérieur sus-mentionné consiste essentiellement en 30 une mémoire capable de délivrer un par un des instructions et opérandes à la dite micro-machine pour l'exécution de programmes gérés par ledit environnement. Cette mémoire peut soit être la mémoire générale d'une unité calculatrice à laquelle se rattache le dit processeur pour former un système avec elle, soit la mémoire 35 centrale d'un système comprenant tme pluralité de processeurs dont un au moins incorpore une unité calculatrice. Dans la suite de l'exposé, cet organe extérieur, faisant donc partie de l'environnement avec lequel le processeur forme un système, sera simplement dénommée "mémoire centrale1'» 71 16498 2 2136845 Usuellement, un accès à un périphérique est assuré par l'intermédiaire d'une unité de liaison, ou coupleur, extérieur au système qu'il dessertet qui exécute des instructions reçues de ce système. Ces instructions, banalisées, peuvent être simples, con-5 cernant par exemple l'échange d'un seul mot, mais elles peuvent être plus complexes, concernant par exemple encore l'échange du contenu d'une zone de mémoire dont la longueur est dynamiquement définie au cours de 1 *opération» Chaque unité de liaison comporte donc, habituellement, outre une organisation directement liée à 10 la nature du périphérique, une organisation d'exécution de pro— grammes définis par de telles sinstructions bien qu'elles soient indépendantes du périphérique quant à leur fonctionnement interne au système» Le but de l'invention est de prévoir une organisation de 15 processeur qui, par la mise en oeuvre de sa micro-machine, assume-les fonctions de couplage spécifiques des périphériques qui le desservent, d'où une exploitation accrue de la micro-machine, donc un meilleur rendement du processeur et, par ailleurs, une réduction de la structure propre à chaque coupleur à sa seule or-20 ganisation de régie du fonctionnement du périphérique. Pour exposer cette organisation en son détaiH, on se reporte à la figure unique jointe qui représente un exemple non limitatif d'exécution d'un processeur selon la présente invention, exemple dont peuvent se déduire toutes variantes entrant dans le cadre de 25 l'invention. Cet exemple considère un processeur UT\. faisant partie d'un système à multiples processeurs, UT., UT., UT, ... desser- i j k vis par une mémoire centrale (MC) qui peut leur délivrer, un par un, des mots instructions et des mots opérandes selon les besoins 30 d'un programme, au moins, exécuté par une unité centrale ou calculatrice non représentée car extérieure au domaine propre de l'invention et qui peut être incorporée à l'un des processeurs ou former une unixé de régie hors processeurs. Le processeur UT. est représenté par sa micro-machine accrue 35 des moyens particuliers pour la mise en oeuvre de l'invention et les périphériques qui desservent le processeur et que doit, selon l'invention, desservir la micro-machine du processeur, sont pour partie montrés de Po à Pn, chacun associé à son coupleur, de Co à Cn. La micro-machine comporte une mémoire de commande (MD) conte 71 16498 3 2136845 nant des micro-programmes, de JIP1 à MPq distribués en zones dans cette mémoire et sélectionnables à partir du registre d'adresses de micro-programmes T. On a indiqué en V le registre de lecture de cette mémoire de micro-programmes (MD). La mémoire de travail (iSfr) 5 de la micro-machine est organisée en zones de mémoire, de ZI à Zm, sélectionnables à partir du registre d'adrêsses J, et est équipée de son registre d'écriture-lecture U. On a indiqué en OP un opérateur, tel qu'un additionneur-soustracteur et organes de test incorporés pour tests de parité, de débordement, etc.. bien que cet 10 opérateur puisse être établi en dehors de la mémoire (MT) proprement dite. La mémoire (î-IT) est constituée de registres banalisés, c'est à dire qu'en ses différentes zones, les registres n'ont pas d'affectations propres. Ces affectations leur seront données selon le micro-programme sélectionné en (MD) pour travailler en une zone 15 de mémoire Z de (MT) dont l'adresse est dés.ignée lors de cette sélection. Parmi ces affectations, de tels registres pourront être utilisés comme mémoire d'ordre ou compteur ordinal en chaque zone de mémoire Z. Toutefois, entre aussi dans le cadre de l'invention le cas où, en (>1T), deux registres indiqués en MO et CO sont par-20 ticularisés a priori pour ces fonctions qu'ils remplissent alors pour tout travail en partie au moins des zones Z de (MT),, On a indiqué en GT un registre pour le garage, quand de besoin, du contenu du registre d'adresses T et, s imilai renient, en GJ, un registre de garage éventuel du contenu du registre d'adres-25 ses J. Bien entan 'u, ce pourrait être deux registres de la mémoire (Jfr) et d'autres registres pourront être affectés au garage d'autres données du contexte d'une tâche interrompue dans la micro-machine au profit d'une tâche prioritaire sur celle en cours, ledit contexte contenant, en fait et notamment, le contenu du 30 registre U de la mémoire (MT) à l'instant d'une telle interruption. Les mots instructions et opérandes sont introduits un par un dans un registre M accessible à la mémoire centrale (>1C). En fait ce registre >i est un registre d'écriture-lecture de la mémoire 35 (MC) prévu particulier au processeur UT., tout autre processeur du système incorporant également un registre de ce genre en un mode î>référé d'exécution de l'invention. Pour l'écriture en mémoire (-NIC) des résultats d'un travail effectué par le processeur, ce registre M recevra un par un les mots "résultats" qui seront 71 16498 4 213bb*S transférés dans la mémoire (MC) à des adresses alors contenues dans un registre de sélection d'adresses en (MC), représenté en S» Dans un système à multi-processeurs et mémoire centrale en effet, il était usuel de ne prévoir qu'un registre du genre M et un > registre du genre S pour la mémoire centrale. Selon les tâches en cours dans le système, cette disposition entraînait des attentes d'exécution de travaux dans les processeurs qui pouvaient se révéler préjudiciables au fonctionnement et au rendement de l'ensemble:- une. instruction introduite dans le registre du genre M de 3 la mémoire centrale à destination d'un processeur tel que UT, devait bien entendu, attendre en ce registre un appel dudit processeur pour sa prise en charge et, pendant cette attente, la mémoire centrale ne pouvait desservir aucun autre processeur. Réciproquement, un rangement en mémoire centrale d'un résultat de 5 travail d'un processeur devait attendre la disponibilité à la fois du registre tel que M et du registre tel que S de la mémoire centrale. L'incorporation à chaque processeur de registres tels que M et S permet à l'unité centrale du système de continuer à travailler dans attente indue de disponibilité de la mémoire cen-0 traie et permet également aux processeurs de voir leurs travaux régularisés au mieux. Lorsqu'en effet, au cours de l'exécution d'une tâche, un mot, instruction ou opérande, est introduit en M dans un tel registre "tampon" d'un processeur, ce mot peut attendre, sans bloquer la mémoire centrale, que le processeur ait 5 terminé un travail en cours ne nécessitant pas l'exploitation immédiate dudit mot. Lorsque le travail en cours aura besoin de l'opérande, une micro-instruction viendra l'extraire de M. Lorsque le travail en cours est terminé et que la micro-machine exécute l'acquittement de ce travail, un micro-programme viendra 30 tester le contenu de M et, si alors et normalement, il s'agit d' un mot instruction, la micro-machine assurera l'exécution de cette instruction par sa décomposition normale pour le travail pour lequel elle a été introduite en M. En cette instruction pourra, par exemple, figurer une adresse de rangement en mémoire (MC) du 35 résultat d'exécution de l'instruction et cette adresse sera introduite en S pour le transfert de ce résultat dans (MC). En fait, et de façon générale, on peut dire que l'incorporation de registres M et S en chaque processeur permet un travail en parallèle des processeurs vis à vis de la mémoire centrale (MC) ainsi que de l'unité centrale régissant le système. 71 16498 5 2136845 Sur la figure, on a de plus indiqué conventionnellement différentes liaisons qui peuvent être établies entre les mémoires de commande (MD) et de travail (MT) pour leur coopération fonctionnelle dans l'exécution des micro-instructions et des mi-5 cro-programmes, surtout par des transferts entre les registres V et U. On a aussi indiqué de faoon conventionnelle que le registre TT de la mémoire (MT) était en liaisons bilatérales avec les coupleurs Co à Cn des périphériques Po à Pn» Chaque coupleur de périphérique ne comporte, dans un proces-10 seur établi en conformité de l'invention, qu'une organisation réduite propre à la commande d'extraction et d'introduction des données en ce périphérique* les micro-programmes de couplage permettant l'élimination dans ces coupleurs de toute organisation d'interprétation des commandes. Cette organisation réduite com-15 prendra, pour les périphériques de toutes natures, les éléments utiles et normaux de synchronisation entre les périphériques et . la micro-machine et la logique normale de suspension. Elle comprendra aussi, pour les bandes et rubans, le registre tampon usuel et, dans le cas de périphériques rapides, tels que disques ou 20 tambours magnétiques, nécessitant des opérations dont l'exécûtion doit être trop rapide pour pouvoir être prises en charge par la micro-maciiine, les cléments utiles à ces opérations tels que, par exemple et notamment, les éléments de conversion parallèle-série et série-parallèle des codes à écrire et à lire respective-25 ment sur et de ces périphériques» Les circuits de sélection d'emplacements de .;:ots à écrire ou lire peuvent également, si désiré, être inclus dans les coupleurs réduits pour disques et tambours, bien que, le plus souvent, cette sélection pourra être réalisée par un micro-programme et la commande directement donnée au cou-30 pleur du périphérique à partir de (>rr). Pour la mise en pratique de l'invention, il n'est d'ai31eurs pas besoin de décrire le détail de chaque coupleur réduit pour chaque type de périphérique, mais de considérer que, de fa-on classique, lorsqu'un périphérique a été appelé par la mémoire (MT) et que son coupleur a reçu 35 de cette mémoire les informations utiles et mis le périphérique en condition de délivrance ou de réception de données, ce coupleur émet un signal indiquant une telle condition pour signaler au processeur que l'échange désiré peut avoir lieu. De tels signaux , de so à sn dans 11exemple représenté, sont classiques en 71 16498 6 2136845 eux-mêmes mais leurs effets, et donc leur traitement, sont toutefois spécifiques dans un processeur établi en conformité de l'invention et, pour cela, ces signaux sont appliqués sur l'organisation particulière suivante:-5 Chacun des signaux so à sn est dirigé sur un codeur Ko à Kn et chaque codeur, lorsqu1 excité, délivre deux codes Ti et Ji pour l'initialisation des registres d'adresses T et J des mémoires (MD) et (wr) de la micro-machine. Comme les forçages de ces codes en T et J interrompend, en fait suspendent, un travail en cours dans 10 la mi cro-machine, ils ne sont dirigés sur les registres d'adresses qu'à travers des portes de mêmes dénominations Ti et Ji qui ne sont rendues passantes que lorsqu'lies reçoivent un signal d'acquittement ACQ marquant la fin d'exécution d'une micro-instruction dans un micro-programme en cours, provenant du registre IT 15 dans l'exemple considéré. Un tel signal d'acquittement commande alors en même temps le garage du contexte de la tâche en cours dans la micro-machine, fondamentalement le garage de l'adresse existant en T dans le registre GT par la porte gt et celui de l'adresse existant en J dans le registre GJ par la porte gjt le 20 garage du contenu de H étant assuré par ailleurs lors de cet acquittement, par exemple dans un registre de (MT) avec, éventuellement, d'autres données dudit contexte en de tels registres. Pour la lecture des sorties des codeurs K, les portes Ti et Ji reçoivent le signal s provenant du coupleur par un circuit OU" de 25 réunion de tous les signaux so à sn. Cette organisation provoque donc, en fait, une suspension du déroulement du micro-programme en cours dans la micro-machine. XI se peut toutefois qu'une telle suspension soit inopportune lors de l'apparition d'un signal s à la sortie d'un coupleur C, même 30 à l'acquittement d'une micro-instruction. En effet, pour certains périphériques, les échanges comportent, de façon impérative, plusieurs cycles de travail répétés ou répétitifs (échange du contenu d'une zone de mémoire par exemple) qui ne peuvent être interrompus, C'est pourquoi il est avantageux que soit établie, en un 35 processeur à multi-couplage de périphériques selon la présente invention, une hiérarchie des accès des périphériques à la micromachine » A cette fin, les sorties so à sn des coupleurs Co à Cn sont appliquées en commun sur un circuit de contrôle de hiérarchie CEE dont les sorties commandent des portes, de Ho à lin, in- 71 16498 7 2136845 •fcercalées entre les sorties des signaux so à sn des coupleurs et les entrées correspondantes des codeurs Ko à Kn. Ce sont alors les sorties de ce circuit CH qui sont réunies sur les entrées du circuit OU. Le circuit CH est agencé pour que, lorsque deux si-5 gnaux s coexistent, tout signal s ne disparaissant qu'une fois l'échange terminé pour son périphérique (ou étant mémorisé sur une mémoire unitaire en CH jusqu'à la fin de l'échange), une seule de ses sorties soit activée, celle correspondant à l'entrée activée de plus haut degré dans la hiérarchie pré-établie entre 10 les périphériques. La structure d'un tel circuit CH se conçoit directement:- il comporte autant de portes que de sorties s de coupleurs sauf une, celle de plus haute priorité dans la hiérarchie, et ces portes sont inhibées par l'activation des sorties s des coupleurs de plus hautes priorités dans la bifjrarchiec Eïi 15 considérant illustrativemerit que la hiérarchie est celle des indices, de sn à so, le signal de sortie sn lorsque "vrai" inhibera toutes les autres portes, celui de s(n-l) lorsque "vrai" inhibera les portes affectées aux sorties de s(n-2) à so, et ainsi de suite, 20 Pour mieux préciser l'organisation et le fonctionnement du processeur à multi-couplage de périphériques selon la présente invention, on va considérer, dans l'exemple représenté, le cas d'un échange entre un périphérique tel qu'un disque magnétique dont le système désire lire un secteur défini pour rangement du 25 contenu de ce secteur en mémoire centrale (MC) et la dite mémoire centrale. Pour une telle opération, une instruction en provenance de (MC) est introduite en M pour initialiser, dans une zone de mémoire de (>fr) deux registres de transfert par un compte de mots 30 à transférer en (MC) à partir du disque à une adresse de rangement en (MC). Ces deux données sont contenues dans la dite instruction. Si un travail est en cours dans le processeur, ce qui doit être normalement le cas lorsque ledit processeur est bien exploi-35 té dans le système dont il * ait partie, l'instruction attendra en M l'instant où la mémoire de commande (îîD) termine un micro—programme ou une partie de :::icro-programme .*;P pouvant permettre une interruption de la tâche en cours. L'instruction en M est alors prise en compte et en (MI)) se déroule un micro-programme de dé- 71 16498 8 2136845 composition de cette instruction qui initialise dans une zone de mémoire Z de (MT) alors affectée au périphérique désigné dans l'instruction, les deux registres susdits0 Par ce micro-programme de plus, et illustrativement, l'adresse du secteur du disque que 5 concerne l'échange est transmise au registre U et par suite au coupleur C de ce périphérique. Cette adresse pouvait être définie dans l'instruction lue en M mais, le plus souvent, elle le sera dans une seconde instruction provenant de (MC) appelée par le processeur après la dite initialisation0 Le coupleur ayant reçu cet-10 te adresse procède à la préparation du transfert en la décodant, sélectionnant le secteur et préparant le transfert vers le registre U des mots qui y seront lus. Dans ce cas, on suppose que le coupleur a conservé l'organisation de décodage d'adresse locale en plus de l'organisation de routage des mots de l'échange deraan-15 dé» Le signal qu'il émet à sa sortie s est alors fourni par la sortie "vraie" d'un comparateur du code d'adresse locale appliqué sur le coupleur avec le code d'adresse de lecture du disque. On pourrait, d'une autre façon, considérer que la sélection du secteur dépende d'un micro-programme exécuté par la micro-machine, 20 et le signal s serait délivré lorsque le coupleur serait "prêt" pour l'échange, aiguillages locaux conditionnés pour la lecture requise. Le coupleur délivrant donc son signal s et étant par exemple prioritaire sur celui qui présente un signal s de travail en 25 cours au circuit CH, à l'acquittement de la micro-instruction en cours dans la micro-machine, les codes Ti et Si définis par le codeur K correspondant au coupleur sont forcés dans les registres d'adresses T et J respectivement, après garage comme dit des contenus antérieurs de ces registres d'adresses et du reste du con-30 texte de la tâche suspendue, le signal s issu du circuit OU étant appliqué à cette fin sur une porte additionnelle R rendue passante par le signal d'acquittement ACQ. En variante, d'ailleurs, le garage de ccs adresses antérieures et du reste dudit contexte pourrait être assuré par une micro-instruction spéciale que le 35 signal s appelerait, par un codeur additionnel, en mémoire de commande (MD), les portes Ti et Ji étant alors commandées non plus par le signal s lui-même mais par le signal de fin d'exécution de cette micro-instruction (cette porte additionnelle pourrait être la porte R dont la sortie produirait l'appel de la micro-instruc-- 71 16498 9 2136845 tion susdite). Le si:'çnal s ayant été ainsi pris en compte par la micro-machine, le code d'adresse MP du micro-programme se trouve en T et le code d'adresse du bloc de registres Z se trouve en J» Le micro 5 programme ainsi appelé se déroule alors selon un processus interne à la micro-machine et qui n'a pas besoin d'être détaillé ici, pour, par exemple:- lire un mot sur le coupleur, le ranger en mémoire (MC) à l'adresse de rangement S, faire progresser cette adresse d'une unité et faire dégresser d'une unité le compte de 10 mots dans le registre initialisé par l'instruction de début, lire un second mot sur le coupleur et le ranger en (MC) et ainsi de suite jusqu'au compte de mots prévu par l'initialisation. En fin d'exécution, le micro-programme envoie au coupleur, par l'intermédiaire du registre U, un signal d'acquittement de l'échange et 15 ce coupleur étant alors désactivé son signal s disparait. Le programme de couplage qui avait été susnendu oeut alors, par exemple et illustrativement, reprendre dans la micro-machine, les données de son contexte étant l'objet d'un rappel automatique par la dernière instruction du micro-programme acquitté:- codes garés en GT 20 et GJ rappelés en T et J, et ainsi de suite. 71 16498 10 2136845 REVENDICATIONS • 1. - Processeur à multi-couplage de périphériques pour systè-me de traitement de l'information comportant une mémoire centrale pouvant délivrer un par un au processeur des mots instructions et opérandes et pouvant recevoir de ce processeur un par un les mots 5 résultant du travail effectué sur ces mots instructions et opérandes par une micro-machine qu'il incorpore et qui contient une mémoire de commande en laquelle sont rangés des micro-programmes de micro-instructions et une mémoire de travail divisée en zones de registres banalisés dont les affectations sont déterminées par 10 les dits micro-programmes lors de leur exécution, processeur caractérisé en ce qu'il incorpore des moyens propres à l'exécution par la dite micro-machine de toute fonction spécifique de couplage d'un périphérique à assurer pour un échange de mots entre ce périphérique et la dite mémoire centrale, l'organisation du 15 coupleur de ce périphérique étant limitée aux sseuls éléments utiles à la commande locale dudit périphérique et sa liaison avec la micro-machine du processeur. 2. - Processeur selon la revendication 1, caractérisé en ce que ces moyens incorporent une logique de forçage, dans les re- 20 gistres d'adresses de cette mémoire de commande et de cette mémoire de travail de la micro-machine, des codes d'adresses respectifs d'un micro-programme d'échange et d'une zone de travail de ce micro-programme pour cet échange et des moyens d'activati-on de la dite logique par tout signal en provenance d'un coupleur 25 d'un périphérique et indiquant qu'en suite à un appel d'échange adressé à ce périphérique par la micro-machine, ledit périphérique est prêt pour la réalisation de cet échange» 3. - Processeur selon la revendication 2, caractérisé en ce que ces moyens incorporent une organisation de rangement de con- 30 texte de toute tâche suspendue dans la micro-machine lors de l'ac-tivation de la dite logique de forçage» 4. - Processeur selon la revendication 3, caractérisé en ce que les dits codes d'adresses de la logique de forçage sont dérivés,lors de l'apparition d'un tel signal,de codeurs dont le hom- 35 bre de paires est égal à celui des périphériques9 à travers des circuits-portes rendus passants à l'acquittement de toute microinstruction de la tâche en cours dans la micro-machine » 71 16498 11 2136845 5. - Processeur selon la revendication 4, caractérisé en ce que, entre les entrées de lecture des dits codeurs par les dits signaux provenant des coupleurs, sont intercalés des circuits-portes dont chacun est Dlacé sous la commande d'une sortie d'un 5 circuit de détermination de priorité hiérarchisée des périphériques opérant sur les dits si/^naux en provenance des dits coupleurs, les sorties de ce circuit étant réunies pour la commande de la dite logique de forçage et de la dite organisation de Rangement de contexte de tâche interrompue* 10 6. - Processeur selon la revendication 1, caractérisé en ce qu'il incorpore, pour l'exécution des dits échanges entre la mémoire centrale et les périphériques, un registre tampon de mot provenant de ou à ranger dans la mémoire centrale et un registre tampon d'adresse de rangement et apoel en cette mémoire centrale» 15 7. - Système de traitement de l'information comportant une mémoire centrale et une pluralité de processeurs à multi-couplage de périphériques dont chacun incorpore une micro-machine, caractérisé en ce que chaque processeur incorpore des moyens propres à l'exécution par la micro-machine de toute fonction spécifique de 20 couplage de chacun de ses périphériques avec la dite mémoire centrale, chaque coupleur de ooriphérique étant limité aux seuls éléments utiles à la commande locale de son périphérique, et incorpora tin registre tampon de mot provenant de ou à ranger dans la dite mémoire centrale et un registre tampon d'adresse de ran-25 gement et appel de mots en cette mémoire centrale