Brevet FR2606902A1 — publié le 19880520

- 1 - CIRCUIT INTEGRE ET PROCEDE DE TRAITEMENT NUMERIQUE A MODULE AUTO-CADENCE L'invention concerne un circuit intégré de trai- tement numérique de données organisé à l'aide d'opérateurs arithmétiques, d'opérateurs logiques, d'opérateurs mémoires, d'opérateurs entrée/sortie, contrôlés par une horloge et par une unité de contrôle qui reçoit des instructions d'un géné- rateur d'instructions et qui transmet aux opérateurs des com- mandes opératives. Un circuit intégré de ce genre est connu du docu- ment intitulé "A single chip, highly integrated, user program- mable microcomputer" D. STAMM, D. BUDDE et B. MORGAN, PHILA- DELPHIE 1977, IEEE International Solid State Circuit Conferen- ce (1977, page 142). Dans un tel circuit intégré on peut distinguer globalement deux parties: l'unité de traitement des données et l'unité de contrôle. L'unité de traitement est formée de plusieurs opérateurs: des opérateurs arithmétiques, des opé- rateurs logiques, tels que des registres, de la logique combi- natoire (masquage, extension, mise à zéro, décalage), des opé- rateurs d'entrée/sortie, etc... Chaque opérateur est défini par sa fonction et par le temps nécessaire pour effectuer cet- te fonction. L'unité de contrôle décode les instructions et envoie les commandes appropriées aux opérateurs qui effectuent alors l'opération demandée par l'instruction. L'unité de trai- tement et l'unité de contrôle sont séquencées par des horlo- ges. Pour définir le séquencement, il faut définir le temps de cycle machine. Ce temps de cycle machine correspond à la microcommande, générée par l'instruction, pour laquelle le temps mis par la donnée pour traverser les opérateurs nécés- --2-- saires pour l'exécution de cette microcommande est maximal. Ce temps de cycle machine est divisé en un nombre fixe de phases, la durée de chaque phase étant un nombre fixe de demi-périodes d'horloge. Chaque phase valide les commandes envoyées par l'u- nité de contrôle à un opérateur donné. Les opérateurs d'une chaîne de traitement sont donc actifs suivant les phases suc- cessives du cycle machine. Or un tel circuit intégré de trai- tement numérique de données présente des inconvénients dans l'échange de signaux de contrôle et de données. Cet échange est en effet basé sur un séquencement global des commandes. Tous les signaux de séquencement de chacun des opérateurs sont générés de façon globale à l'extérieur de l'unité de traite- ment. Cela multiplie le nombre de signaux à générer et augmen- te la complexité des interconnexions. De même le temps de cycle machine est déterminé par l'instruction nécessitant le temps d'exécution le plus long, c'est-à-dire la chaîne la plus longue à parcourir, même si de nombreuses instructions ne nécessitent pas cette durée. De plus dans le cas d'une conception modulaire d'un circuit intégré de traitement numérique, l'optimisation du séquencement est spécifique à chaque circuit développé. L'ajout d'un opérateur dans le circuit développé est rendu très difficile dans un cadre aussi rigide et nécessite souvent la modification de ce séquenceur. L'invention a pour but de supprimer ces diffé- rents inconvénients pour permettre une plus grande modularité du circuit intégré afin de réduire son temps de conception. Pour cela l'invention utilise des modules pré-analysés quant à la fonction qu'ils effectuent et quant au séquencement qui leur est nécessaire. Dans ce but l'invention telle que définie dans le préambule est remarquable en ce que le circuit intégré de traitement numérique comprend au moins un opérateur qui est muni d'un portier qui reçoit i sémaphores d'entrée et émet j sémaphores de sortie, avec i et j non nuls, le portier rece- - 3 - vant de l'unité de contrôle i signaux de contrôle d'entrée et j signaux de contrôle de sortie des données de l'opérateur, et, après réception d'au moins un sémaphore d'entrée, prove- nant d'un portier précédent, validé par son signal de contrôle d'entrée, par un signal de nouvelle instruction et par un si- gnal de validation de l'opérateur issus de l'unité de contrô- le, délivrant à son opérateur des signaux adaptés aux paramè- tres fonctionnels dudit opérateur, et, afin d'opérer d'une ma- nière auto-cadencée, le portier, à l'issue du traitement par l'opérateur, validant la sortie des données par l'opérateur vers au moins un opérateur suivant en émettant au moins un sé- maphore de sortie validé par un signal de contrôle de sortie, le sémaphore de sortie étant transmis à au moins un portier suivant afin que ce portier suivant positionne son propre opé- rateur pour réceptionner lesdites données, ledit portier com- prenant en outre des moyens d'inversion de l'état logique des sémaphores d'entrée déjà validés par leurs signaux de contrôle d'entrée lorsque l'opérateur n'a plus besoin de données d'en- trée, afin d'en avertir les portiers précédents concernés, et des moyens de réception des sémaphores de sortie validés dont l'état logique a été inversé par des portierssuivants, lesdits moyens de réception renvoyant à l'unité de contrôle un signal de fin d'exécution, la transmission des sémaphores s'opérant successivement jusqu'au portier final, le circuit intégré com- prenant des modules constitués chacun de l'opérateur et de son portier, modules qui échangent des données par leurs opéra- teurs et des sémaphores par leurs portiers, ce qui assure un séquencement auto-cadencé-à chaque module, les modules et l'u- nité de contrôle étant pilotés par l'horloge et par le généra- teur d'instructions. Afin de pallier les déficiences des solutions an- térieures, l'invention concerne un nouveau mode de protocole et donc de séquencement. L'utilisation de phases générées par un séquenceur externe à l'unité de traitement est supprimée. A chaque opérateur, on associe un portier qui en fait un opéra- - 4 - teur auto-cadencé. Le portier associé à un opérateur gère les échan- ges de données avec les opérateurs amonts et avals par appli- cation d'un protocole. De plus, le portier génère les signaux de cadencement propres à l'opérateur auquel il est associé. De ce fait, chaque opérateur a un séquencement local. Le portier échange également des signaux avec le contrôle. A chaque bus de données reliant des opérateurs, on ajoute pour cela une connexion supplémentaire reliant les portiers associés à ces opérateurs. L'état logique sur ce fil indique au portier la validité ou non des données sur le bus associé. Cette connexion supplémentaire est appelée un séma- phore. Les opérateurs peuvent être différenciés suivant le fonctionnement interne de l'opérateur, selon qu'il compor- te ou non une fonction interne de mémorisation des données. Le portier associé à un opérateur mémorisant les données four- nies, libère ses sémaphores d'entrée validés sitôt cette mémo- risation faite. Dans le cas o la mémorisation est inexistan- te, le maintien de la donnée en entrée nécessite le maintien du sémaphore entrant, tant que les données issues du traite- ment de l'opérateur ne sont pas mémorisées dans un autre opé- rateur de la chaîne de traitement. Cela introduit deux types de portier, l'un libérant les sémaphores entrants validés du- rant l'exécution du traitement par la partie opérative asso- ciée, l'autre ne libérant les sémaphores entrants qu'au moment o les sémaphores sortants validés sont libérés par les por- tiers des opérateurs suivants dans la chaîne de traitement. Une autre différenciation intervient selon le nombre d'entrées et de sorties: certains opérateurs ne possè- dent pas d'entrée mais seulement des sorties, ou ne possèdent pas de sortie mais seulement des entrées. Le cas le plus cou- rant restant qu'un opérateur possède des entrées et des sor- ties. Afin de traiter le séquencement des opérateurs -5- qui ne présentent pas de sorties de données, le circuit inté- gré de traitement numérique de données comprend en outre au moins un opérateur muni d'un portier qui reçoit des signaux de contrôle de l'unité de contrôle, et, après réception d'au moins un sémaphore d'entrée validé par un signal de contrôle d'entrée, par un signal de nouvelle instruction et par un si- gnal de validation de l'opérateur issus de l'unité de contrô- le, délivrant à son opérateur des signaux adaptés aux paramè- tres fonctionnels dudit opérateur, et, afin d'assurer un sé- quencement auto-cadencé, le portier, à l'issue du traitement par l'opérateur, renvoyant à l'unité de contrôle un signal de fin d'exécution, ledit portier comprenant en outre des moyens d'inversion de l'état logique des sémaphores d'entrée déjà validés par leurs signaux de contrôle d'entrée lorsque l'opé- rateur n'a plus besoin de données d'entrée afin d'en avertir les portiers précédents concernés. Afin de traiter le séquencement des opérateurs qui ne présentent pas d'entrées de données, le circuit intégré de traitement numérique de données comprend-en outre au moins un opérateur muni d'un portier qui reçoit des signaux de con- trôle de l'unité de contrôle, et, après réception d'un signal de nouvelle instruction et d'un signal de validation-de l'opé- rateur issus de l'unité de contrôle, délivrant-à son opérateur des signaux adaptés aux paramètres fonctionnels dudit opéra- teur, et, afin d'assurer un séquencement auto-cadencé, le por- tier, à l'issue du traitement par l'opérateur., validant la sortie des données par l'opérateur vers au moins un opérateur suivant en émettant au moins un sémaphore de sortie validé par un signal de contrôle de sortie, le sémaphore de sorties étant. transmis à au moins un portier suivant afin que ce portier suivant positionne son propre opérateur pour réceptionner les- dites données, ledit portier comprenant en outre des moyens de réception des sémaphores de sortie validés dont l'état lo- gique a été inversé par les portiers suivants, lesdits moyens de réception renvoyant à l'unité de contrôle un signal de fin -6- d'exécution. L'opérateur et son portier sont utilisés suivant différents modes de fonctionnement, quatre cas se présentent: - l'opérateur traite une donnée entrante et fournit une don- née consécutivement en sortie (exemple: registre, unité arithmétique et logique), - l'opérateur ne fournit qu'une donnée en sortie (exemple: mémoire RAM en lecture, mémoire ROM en table de constan- tes), - l'opérateur ne traite qu'une donnée en entrée (exemple: chargement d'un compteur, écriture dans la RAM), - un opérateur, à la demande du contrôle, peut ne réaliser ni entrée ni sortie mais exécuter une opération interne (exem- ple: activation d'un compteur précédemment chargé). Le protocole de fonctionnement entre deux modules i et 2 successifs (portier + opérateur) qui se transmettent des données, se décompose de la manière suivante: - lorsque l'opérateur 1 a traité ses données, le portier 1 active son sémaphore de sortie qui est le sémaphore d'en- trée du portier 2, - le portier 2 détecte cette activation et commence à envoyer des signaux de cadencement à l'opérateur 2, - l'opérateur 2 récupère les données envoyées par l'opérateur 1, - l'opérateur 2 traite les données au rythme du cadencement délivré par son portier, - lorsque l'opérateur 2 a terminé le traitement, le portier 2 active son sémaphore de sortie. Deux cas se présentent: - lorsque l'opérateur 2 est un opérateur qui possède une fonction de mémorisation et lorsque l'opérateur 2 a mémori- sé les données, le portier 2 désactive son sémaphore d'en- trée. - lorsque l'opérateur 2 ne possède pas de fonction de mémori- sation, le portier 2 ne désactive son sémaphore d'entrée -7 - que lorsque son propre sémaphore de sortie a été désactivé. Pour cela l'invention est remarquable en ce que le portier comprend i circuits de validation d'entrée qui re- çoivent chacun un des i sémaphores d'entrée et un des i si- gnaux de contrôle d'entrée, et j circuits de validation de sortie qui reçoivent chacun un des j signaux de contrôle de sortie ainsi que le signal de fin de traitement de l'opérateur et qui délivrent chacun un des j sémaphores de sortie, les circuits de validation d'entrée commandant un générateur d'une impulsion qui est contrôlé par le signal de nouvelle instruc- tion et par le signal de validation de l'opérateur et qui est réuni à un registre à décalage à k étages qui délivre les si- gnaux adaptés aux paramètres fonctionnels de l'opérateur ainsi que le signal de fin de traitement par l'opérateur, et qui ac- tive les circuits de validation de sortie afin qu'ils émettent leurs sémaphores de sortie, chacun des i circuits de valida- tion d'entrée comprenant un moyen d'inversion de l'état logi- que de leur sémaphore d'entrée, moyen qui est opérationnel pour chaque circuit de validation d'entrée sélectionné, lors- qu'un signal de libération de sémaphore a été généré, le por- tier comprenant en outre un autre générateur d'une impulsion lui-même commandé par le signal de fin de traitement par l'o- pérateur et par tous les sémaphores de sortie précédemment va- lidés après qu'ils ont été inversés par les portiers suivants, l'autre générateur d'impulsion renvoyant à l'unité de contrôle le signal de fin d'exécution. Il est également possible à chaque portier de dialoguer avec l'unité de contrôle à l'aide d'un sémaphore. Pour cela chaque portier reçoit de l'unité de contrôle son si- gnal de nouvelle instruction et émet son signal de fin d'exé- cution, sous la forme d'un sémaphore dont l'état logique peut être inversé par le portier pour transmettre à l'unité de con- trôle le message de fin d'exécution. Les signaux adaptés délivrés par le portier à son opérateur sont paramétrables afin de les rendre adaptables aux -8- paramètres propres à chaque opérateur, paramètres qui définis- sent la fonction et le temps de traitement de chaque opéra- teur. Pour cela le nombre d'étages et le nombre de sorties du registre à décalage sont déterminés par la fonction et par le temps de traitement de l'opérateur. Lors de la conception du circuit intégré de trai- tement numérique, les opérateurs et leurs portiers peuvent constituer une bibliothèque de modules précaractérisés, qui peuvent être asssemblés pour constituer ledit circuit intégré. Les portiers placés en bibliothèque sont de conception analo- gue, mais il est possible au moment de la conception d'adapter certaines caractéristiques à l'opérateur auquel le portier est associé. Ainsi, selon que l'opérateur possède ou non la fonc- tion de mémorisation des données, le portier pourra désactiver son sémaphore d'entrée soit respectivement dès que l'opérateur n'a plus besoin des données d'entrée, soit lorsque les séma- phores de sortie validés auront été désactivés par les por- tiers suivants. Cette possibilité est obtenue à la conception du circuit intégré. Pour cela, lorsque l'opérateur dispose d'une mé- morisation interne, le signal de libération des sémaphores qui opère sur les i circuits de validation d'entrée, est obtenu par la validation de la fin du traitement de l'opérateur, en réunissant une sortie du registre à décalage aux circuits de validation d'entrée. De même lorsquel'opérateur ne dispose pas d'une mémorisation interne, le signal de libération des séma- phores, qui opère sur les i circuits de validation d'entrée, est obtenu en réunissant la sortie de l'autre générateur d'une impulsion avec les circuits de validation d'entrée afin que la validation ne puisse s'effectuer que lorsque le portier sui- vant a renvoyé le sémaphore inversé. Une autre possibilité de rendre paramétrable le portier est d'adapter le cadencement qu'il fournit à l'opéra- teur en adaptant ce cadencement à la tâche effectuée par l'o- pérateur au cours d'une instruction. Ainsi une opération logi- -9- que ET, OU, sur des données ou une opération arithmétique (ad- dition avec retenue) effectuées toutes les deux par le même opérateur arithmétique et logique, ne vont pas nécessiter le même temps d'exécution. Pour cela le portier paramétrable en temps permet dynamiquement de s'adapter à ce temps d'exécu- tion, en disposant du type d'opération à exécuter à partir de- l'unité de contrôle. Pour rendre -le portier paramétrable en temps, l'unité de contrôle délivre à l'opérateur un signal de type d'opération que le portier prend en compte afin qu'au cours d'une quelconque opération d'un opérateur le nombre d'étages concernés du registre à décalage soit paramétré de sorte que la durée allouée au traitement soit la plus proche possible du temps nécessaire à l'opérateur pour cette opération. Dans certaines chaînes de traitement du circuit intégré de traitement, il apparaît des boucles de traitement o la sortie du dernier opérateur est reliée à l'entrée du premier opérateur. Mais lorsque le traitement total a été ef- fectué par la boucle, la sortie des données d'un quelconque des opérateurs de la boucle peut être effectuée rapidement, sans passer par les opérateurs devenus inopérant à l'aide d'un bus d'extraction. Pour cela dans une chaîne d'opérateurs de rang n à (n+p), avec n et p entiers non nuls, l'opérateur de rang n est réuni à l'opérateur de rang (n+p) par un bus d'ex- traction de données. L'invention se caractérise également par un pro- cédé de fonctionnement d'un circuit intégré de traitement nu- mérique tel que défini dans le préambule, le circuit intégré selon l'invention comprenant au moins un opérateur muni d'un portier, l'opérateur possédant une fonction de mémorisation, ledit procédé comprenant les étapes suivantes: a. réception par un circuit d 'entrée de validation du por- tier d'au moins un sémaphore d'entrée qui est validé par un signal de contrôle d'entrée issu de l'unité de contrôle et activation d'un générateur d'impulsion du portier, - 10 - b. émission par le générateur d'impulsion d'une impulsion sur l'entrée d'un registre à décalage à k étages, c. émission par le registre à décalage de signaux adaptés aux paramètres de l'opérateur, d. émission par le registre à décalage, sur les circuits de sortie de validation du portier, d'un signal d'achèvement du traitement par l'opérateur, e. inversion de l'état logique du sémaphore d'entrée lorsque l'opérateur n'a plus besoin de données d'entrée, afin de transmettre au portier qui le précède le message de prise en compte des données, f. émission par le portier d'au moins un sémaphore de sortie validé par un signal de contrôle de sortie sur au moins un portier suivant, g. réception des données de l'opérateur par l'opérateur sui- vant, h. envoi à l'unité de contrôle du signal de fin d'exécution après inversion de l'état logique des sémaphores de sortie validés. De même l'invention se caractérise également par un procédé de fonctionnement d'un circuit intégré de traite- ment numérique tel que défini dans le préambule, le circuit intégré selon l'invention comprenant au moins un opérateur mu- ni d'un portier, l'opérateur ne possédant pas une fonction de mémorisation, ledit procédé comprenant les étapes suivantes: a. réception par un circuit d'entrée de validation du portier d'au moins un sémaphore d'entrée qui est validé par un si- gnal de contrôle d'entrée issu de l'unité de contrôle et activation d'un générateur d'impulsions du portier, b. émission par le générateur d'impulsion d'une impulsion sur l'entrée d'un registre à décalage à k étages, c. émission par le registre à décalage de signaux adaptés aux paramètres de l'opérateur, d. émission par le registre à décalage, sur les circuits de sortie de validation du portier, d'un signal d'achèvement - 11 - du traitement par l'opérateur, e. émission par le portier d'au moins un sémaphore de sortie validé par un signal de contrôle de sortie sur au moins un portier suivant, f. réception des données de l'opérateur par l'opérateur suiv- ant, g. réception du sémaphore de sortie inversé par le portier suivant correspondant à la prise en compte des données par l'opérateur suivant, et génération d'une impulsion de libération du sémaphore d'entrée, h. désactivation du sémaphore d'entrée par inversion du si- gnal afin d'avertir le portier précédent de la fin de traitement. i. envoi à l'unité de contrôle du signal de fin d'exécution après inversion de l'état logique des sémaphores de sortie validés. Le circuit intégré de traitement numérique (CITN) selon l'invention présente plusieurs avantages. - Le séquencement des opérateurs est local dans la nouvelle approche, il suffit d'avoir une horloge unique pour tout le CITN. Le nombre de signaux de séquencement parcourant le CITN est réduit à la seule transmission de l'horloge. - Les performances du CITN sont améliorées, car la notion de cycle machine fixe n'existe plus, les opérateurs étant auto-cadencés, le temps nécessaire au traitement des don- nées dans une chaîne d'opérateurs auto-cadencés ne dépen- dant que des opérateurs eux-mêmes. Ce temps est égal à la somme des temps demandés par chaque opérateur traversé. Une instruction n'utilise donc que le temps qui lui est vrai- ment nécessaire. - La conception modulaire est très simple dans cette appro- che. On peut sans problème rajouter un opérateur auto-ca- dencé à un circuit déjà développé. Il n'est pas nécessaire de redéfinir le séquencement de l'unité de traitement du CITN. Cette approche donne beaucoup de souplesse dans la - 12 - conception d'un CITN. La modularité offre de plus une testabilité ac- crue de l'ensemble, grâce à la simplicité d'interconnexion des opérateurs. Il suffit de rajouter sur les sémaphores les plus caractéristiques, des plots de test sous pointes pour tester *les opérateurs les plus complexes. L'invention sera mieux comprise à l'aide des fi- gures suivantes données à titre d'exemple non limitatif qui représentent: Figures 1A et 1B: respectivement un schéma logi- que et un diagramme des temps de l'art antérieur. Figure 2: un schéma général d'un module selon l'invention. Figure 3: un schéma d'un module placé entre deux modules voisins. Figure 4: un schéma détaillé d'un portier selon l'invention paramétrable en mode fixe à la conception. Figure 5: un schéma détaillé d'un portier selon l'invention paramétrable en mode dynamique à la conception. Figure 6: un schéma électrique du contrôle de l'état logique d'un sémaphore d'entrée. Figure 7A: un schéma logique d'un exemple d'une chaîne de modules présentant différentes configurations d'en- trée et de sortie. Figure 7B: le diagramme des temps de la figure 7A. Pour ne pas alourdir le texte dans toutes les fi- gures, une connexion barrée indique qu'il s'agit d'un bus de données à plusieurs bits. Il faut en conséquence répéter la connexion concernée autant de fois qu'il y a de bits transfé- rés. Les figures 1A et 1B fournissent une illustration dans un cas simple du protocole d'échange de données selon l'art antérieur. L'unité de contrôle 5 fournit une micro-instruc- - 13 - tion composée des commandes C1, C2, C3 à trois opérateurs 1, 2, 3. Cette micro-instruction est validée par trois phases P1, P2, P3 afin que les trois opérateurs effectuent successivement leurs opérations. Les données d'entrée E entrent dans le pre- mier opérateur et les données de sortie S sont extraites du troisième opérateur. Les opérateurs 1 et 3 nécessitent chacun une demi-période d'horloge pour traiter les données. Les pha- ses P1 et P3, validant les bus de commandes opératives C1 et C3 ont donc également une durée d'une demi-période d'horloge. Par contre, l'opérateur 2 nécessite une période entière d'hor- loge, et par conséquent P2 validant le bus C2 dure une période d'horloge. Le temps de cycle machine est égal ici à deux pé- riodes d'horloge. Ces trois phases sont apparentes dans le document de l'art antérieur déjà cité. Elles sont fournies aux diffé- rentes unités qui constituent le circuit intégré. Ceci néces- site un travail important d'interconnexion et occupe une par- tie importante de la surface du circuit intégré. La figure 2 représente le schéma général d'un mo- dule selon l'invention. Le module 11 est constitué d'un por- tier 12 et d'un opérateur 13. Le portier 12 reçoit de l'uni- té de contrôle 10 des signaux 14 de contrôle d'entrée et de contrôle de sortie, un signal de nouvelle instruction et un signal de validation de l'opérateur, et lui transmet un signal de fin d'exécution 19. Une horloge 16 contrôle le fonctionne- ment du portier 12. L'unité de contrôle 10 reçoit sur les con- nexions 20, des instructions d'un générateur d'instructions non représenté. L'unité de contrôle transmet à l'opérateur 13 des commandes opératives 15. Ces commandes opératives consti- tuent les signaux de travail pour effectuer par exemple, dans un opérateur arithmétique et logique, une addition, un décala- ge, une multiplication, etc... Le portier 12 reçoit i sémapho- res d'entrée SEi et transmet j sémaphores de sortie SSj. Le portier 12 fournit à l'opérateur 13 les signaux de cadencement 17 qui lui sont nécessaires. L'opérateur 13 reçoit des don- -14 -. nées d'entrée DEi sous la forme de i mots de plusieurs bits. De même il fournit des données de sortie DSj sous la forme de j mots de plusieurs bits. Lorsque l'opérateur 13 justifie l'utilisation d'un portier 12 paramétrable en temps en mode dynamique, il est nécessaire que le portier 12 reçoive également le type d'instruction envoyé à l'opérateur. Ceci est effectué à l'aide de la connexion 18, qui, en transmettant au portier le type d'instruction à exécuter, lui permet d'adapter en conséquence le cadencement qu'il fournit à l'opérateur. La figure 3 représente un schéma d'un module dis- posé entre deux modules voisins. Le portier 12 échange avec le portierprécédent 12a un des i sémaphores SEi, les autres provenant d'autres portiers, tel que SD sur la figure 3, et échange avec le portier suivant 12b un des j sémaphores SSj. De même l'opérateur 13 reçoit de l'opérateur précédent 13a un des bus de données DEi et transmet à l'opérateur suivant 13b un des bus de données DSj. Les autres bus de données DEi pro- viennent d'autres opérateurs, par exemple DD sous le contrôle du sémaphore SD. Le portier 12 reçoit de l'unité de contrôle 10 les i signaux de contrôle d'entrée CEi et les j signaux de contrôle de sortie CSj. Ces signaux contrôlent respectivement les sémaphores d'entrée SEi et de sortie SSj. Le portier 12 reçoit également en provenance de l'unité de contrôle, un si- gnal de validation 21 de l'opérateur, et un signal de nouvelle instruction 22. Le portier transmet vers l'unité de contrôle un signal de fin d'exécution 23. Ces signaux de nouvelle ins- truction 22 et de fin d'exécution 23 sont transmis à l'unité de contrôle 10 à travers un circuit de contrôle 24 sous forme d'un sémaphore de contrôle 25. Dans ce cas, le circuit de con- trôle possède des moyens d'inversion de l'état logique du sé- maphore de contrôle 25 ainsi qu'un générateur d'impulsion et l'unité de contrôle possède des moyens de réception du séma- phore inversé. Le générateur d'impulsion génère le signal de - 15 - nouvelle instruction. Le circuit de contrôle 24 peut être in- corporé au portier 12. La figure 4 représente un schéma détaillé d'un portier paramétrable à la conception en mode fixe. Pour sim- plifier, le portier 12 représenté comprend seulement deux sé- maphores d'entrée et deux sémaphores de sortie. Le circuit de validation d'entrée 31 reçoit le sémaphore SE1, le signal de contrôle d'entrée CE1 et un signal de libération de sémaphore 33. Le circuit de validation 31 ac- tive le générateur d'impulsion 35 par un signal de déclenche- ment 37. De la même manière, le circuit de validation d'entrée reçoit le sémaphore SE2, le signal de contrôle d'entrée CE2 et le signal de libération de sémaphore 33. Il active le géné- rateur d'impulsion 35 par le signal de déclenchement 34. Le générateur d'impulsion 35 est également con- trôlé par l'horloge 16, par le signal de nouvelle instruction 22 et par le signal de validation de l'opérateur 21. Le générateur d'impulsion émet une impulsion vers un registre à décalage constitué dans l'exemple de quatre éta- ges 361, 362, 363, 364 reliés entre eux en série selon l'art connu. Le registre à décalage fournit à l'opérateur les si- gnaux de cadencement 17 qui lui sont nécessaires. Le circuit de validation de sortie 41 reçoit le signal de contrôle de sortie CS1 et la sortie 39 du registre à décalage, et fournit le sémaphore SS1. De même le circuit de validation de sortie 40 reçoit le signal de contrôle de sortie CS2 et la sortie 39 du registre à décalage, et fournit le sé- maphore SS2. Les deux sémaphores SS1 et SS2 peuvent activer un autre générateur d'impulsion 38 qui reçoit également la sortie 39 du registre à décalage et l'horloge 16. Cet autre généra- teur d'impulsion 38 émet le signal de fin d'instruction 23. Selon que l'opérateur présente ou non une fonc- tion de mémorisation, le signal de libération des sémaphores 33 va pouvoir être issu de deux voies différentes. Ceci est déterminé par le câblage initial à la conception du circuit. - 16 - Deux cas sont à considérer: - Lorsque l'opérateur possède une fonction de mémorisation des données, par exemple un registre, une mémoire, les don- nées sont alors mémorisées dans l'opérateur. Le temps de traitement par l'opérateur est connu à l'avance, et en con- séquence le sémaphore peut être libéré après un délai fixé à l'avance. Ce délai fixe est obtenu en réalisant l'une des connexions 451, 452, 453 ou 454. Dans ce cas le commutateur est dans la position 46 et fournit ainsi le signal de libération du sémaphore 33 aux circuits de validation d'en- trée 30 et 31. Les données à l'entrée de l'opérateur, peu- vent alors être changées, et l'opérateur précédent peut être prévenu qu'il est libre de prendre en compte une nou- velle instruction. Ceci est obtenu par l'intermédiaire du circuit d'entrée sélectionné 30 ou 31 du portier 12, qui modifie l'état logique du sémaphore échangé avec le portier de l'opérateur précédent 13a. - Lorsque l'opérateur ne comporte pas d'élément de mémorisa- tion, il ne faut pas modifier les données à l'entrée tant que l'opérateur suivant 13b a toujours -besoin de données valides sur son entrée. C'est la réception des sémaphores de sortie SS1, SS2 désactivés, qui libère les sémaphores d'entrée SE1, SE2. Ceci est contrôlé par l'autre générateur d'impulsion 38 qui examine l'état logique sur les sémapho- res entre le portier 12 et les portiers suivants. Lorsque l'état logique des sémaphores validés ont été inversés, le générateur d'impulsion 38 délivre une impulsion qui est transmise au circuit d'entrée du portier. Dans ce cas le commutateur 50 est dans la position 47 et fournit le signal de libération du sémaphore aux circuits de validation d'en- trée 30 et 31. Ceci permet de changer l'état du sémaphore échangé avec le portier 12a de l'opérateur précédent 13a, et de signaler à l'unité de contrôle que l'opérateur 13 est prêt à accepter une nouvelle instruction. Dans le cas d'un opérateur comportant un élément de mémori- - 17 - sation, le générateur d'impulsion 38 a pour but de signaler à l'unité de contrôle la disponibilité de l'opérateur. Le début d'exécution d'une opération est fixé par l'unité de contrôle qui émet les commandes suivantes (figures 3 et 4): - initialisation du début d'une nouvelle instruction par la connexion 22, - si l'opérateur est concerné par cette opération, il reçoit alors une information de validation par la connexion 21, - si l'opérateur comporte plusieurs bus de données en entrée l'unité de contrôle lui signale sur quel bus les données à traiter sont à prélever à l'aide des signaux de contrôle CE1 ou CE2, si l'opérateur est relié à un bus de sortie, qui peut être utilisé par plusieurs opérateurs suivants, l'unité de con- trôle indique quel est l'opérateur suivant en sélectionnant le signal de contrôle CS1 ou CS2. Le circuit sélectionné examine alors l'état logi- que de son sémaphore. Par exemple l'état logique 1 indique au circuit d'entrée que les données sont valides et peuvent être traitées. A partir de ce moment, le générateur d!impulsion émet une impulsion qui initialise l'opération à effectuer par l'opérateur. Deux cas sont alors à considérer selon la du- rée du traitement: - Si l'opérateur est simple, c'est-à-dire dont le temps d'exécution est inférieur ou égal à une demi-période de l'horloge principale, alors une seule impulsion est suffi- sante pour que la fonction soit exécutée. Dans ce cas le registre à décalage ne comporte qu'une seule cellule. Un exemple typique de ce genre d'opérateur est un registre verrouillable. - Si l'opérateur est plus complexe, ou requiert plus de temps de traitement, la durée d'exécution de l'opération est ajustée par pas de demi-périodes de l'horloge principale, - 18 - de telle façon que cette durée soit toujours strictement supérieure à la durée d'exécution de l'opérateur. Ceci est aisément obtenu en modifiant le nombre de cellules du re- gistre à décalage. On peut ainsi par exemple approcher au plus près le temps d'accès tacc d'une mémoire interne. Le nombre de cellules nécessaire est déterminé par la rela- tion: n = 1 + Jtacc - tacc(modulo T/2)j/(T/2) Avec un exemple à 4 registres, lorsque l'impul- sion envoyée par le générateur d'impulsion 35 parvient à la sortie 364 du registre à décalage, les données sont valides à la sortie de l'opérateur. Ceci est indiqué à l'opérateur sui- vant par l'intermédiaire d'un des sémaphores SS1 ou SS2, par exemple par un état logique 1. Cette sélection est faite par l'unité de contrôle. La figure 5 représente un schéma d'un portier se- lon l'invention paramétrable à la conception en mode dynami- que. Les mêmes éléments que ceux de la figure 4 y sont indi- qués avec les mêmes repères. Mais pour rendre le portier 12 paramétrable dynamiquement, ce portier comprend un autre com- mutateur 51 qui est commandé par la connexion 52. Celle-ci prélève dans les commandes opératives 15, celle correspondant au type d'instruction à exécuter. Ainsi pour un opérateur à fonctions multiples, certaines tâches peuvent nécessiter un temps court et d'autres un temps long. Ce commutateur 51 per- met ainsi de prélever le signal de fin de traitement de l'opé- rateur, qui apparaît sur la connexion 39, sur différentes sor- ties du registre à décalage. Ceci permet de ne laisser à l'o- pérateur que juste le temps qui lui est nécessaire pour effec- tuer chaque opération. Il est ainsi possible d'améliorer l'optimisation du temps d'exécution d'un opérateur selon le type d'opération qu'il a à effectuer. Il peut s'agir par exemple d'une unité arithmétique et logique qui a à effectuer successivement une opération logique qui ne prend qu'un temps élémentaire, puis - 19 - une opération arithmétique qui, avec la propagation de la re- tenue, nécessite plusieurs temps élémentaires. Cette program- mation permet de n'utiliser que le nombre de temps élémentai- res nécessaires. D'une façon générale, pour chaque portier, le nombre de circuits d'entrée est identique au nombre de chemins de données qui sont connectés à l'entrée de l'opérateur. De même le nombre de circuits de sortie est identique au nombre de destinations de données issues de l'opérateur. Enfin le nombre de registres à décalage permet de fixer la durée en nombre de demi-périodes de l'horloge principale, qui est allouée à l'opérateur pour réaliser la fonction qui lui est demandée. Le principe du protocole par sémaphore utilise les deux états logiques du sémaphore, selon que l'échange se fait en provenance ou vers l'autre portier. La figure 6 indi- que un exemple de réalisation de ce changement d'état logique. Ainsi supposons que le signal de libération de sémaphore 33 soit à l'état logique O. Lorsque le signal de contrôle d'en- trée CE1 et le sémaphore d'entrée SE1 sont à l'état logique 1, le signal de déclenchement 37 est à l'état haut, et le proto- cole s'effectue comme décrit précédemment. Lorsque le signal de libération de sémaphore 33 passe à l'état logique 1 selon le processus décrit, le niveau logique du sémaphore SE1 est abaissé par le transistor MOS 60, ce qui transmet au portier précédent l'indication que l'opérateur n'a plus besoin de don- nées en entrée, libérant ainsi le portier précédent. La figure 7A représente, à titre d'exemple très simplifié, une chaîne fictive de traitement de données o différents types d'opérateurs sont représentés: - le module 70 est une ROM ne disposant que d'un bus de sor- tie de données, - les modules 71 et 75 sont des registres disposant chacun d'un bus d'entrée et d'un bus de sortie de données, - le module 72 est une unité arithmétique et logique qui dis- - 20 - pose de deux bus d'entrée et d'un bus de sortie, - le module 73 est un compteur qui dispose d'un bus d'entrée de données, - le module 74 est une RAM qui dispose d'un bus d'entrée et d'un bus de sortie de données. A l'aide des signaux de commande et des commandes opératives issus de l'unité de contrôle, le circuit effectue, par exemple, les opérations suivantes: - le module 70 (ROM) transfère ses données au module 71 (re- gistre) qui les mémorise, - le module 71 transfère ses données, en les maintenant sur ses sorties, au module 72 (unité arithmétique et logique sans mémorisation), - le module 74 transfère ses données au module 72, le module 7.2 calcule les résultats et les transfère au module 75 (registre) qui les mémorise, le module 72 trans- fère également les résultats au module 73 (compteur) qui retarde la remise à zéro du sémaphore par rapport au module (registre), - le module 75 (registre) présente les données au module 74 (RAM), - le module 73 (compteur) libère le sémaphore, ce qui permet au module 72 de libérer les sémaphores 82 et 84, - le module 74 (RAM) passe en mode écriture, mémorise la don- née et libère le sémaphore. Le diagramme des temps de cet exemple est repré- senté sur la figure 78 en ce qui concerne l'échange des séma- phores 81 à 86 dans le cas du fonctionnement qui vient d'être décrit. - 21 - REVENDICATIONS: 1. Circuit intégré de traitement numérique de don- nées organisé à l'aide d'opérateurs arithmétiques, d'opéra- teurs logiques, d'opérateurs mémoire, d'opérateurs entrée/sor- tie contrôlés par une horloge et par une unité de contrôle qui reçoit des instructions d'un générateur d'instructions et qui transmet aux opérateurs des commandes opératives, caracté- risé en ce que le circuit intégré comprend au moins un opéra- teur qui est muni d'un portier qui reçoit i sémaphores d'en- trée et émet j sémaphores de sortie, avec i et j non nuis, le portier recevant de l'unité de contrôle i signaux de contrôle d'entrée et j signaux de contrôle de sortie des données de l'opérateur, et, après réception d'un quelconque sémaphore d'entrée, provenant d'un portier précédent, validé par son si- gnal de contrôle d'entrée, par un signal de nouvelle instruc- tion et par un signal de validation de l'opérateur issus de l'unité de contrôle, délivrant à son opérateur des signaux adaptés aux paramètres fonctionnels dudit opérateur, et, afin d'opérer d'une manière autocadencée, le portier, à l'issue du traitement par l'opérateur, validant la sortie des données par l'opérateur vers un opérateur suivant en émettant au moins un sémaphore de sortie validé par le signal de contrôle de sor- tie, le sémaphore de sortie étant transmis à au moins un por- tier suivant afin que ce portier suivant positionne son propre opérateur pour réceptionner lesdites données, ledit portier comprenant en outre des moyens d'inversion de l'état logique des sémaphores d'entrée lorsque l'opérateur n'a plus besoin de données d'entrée, afin d'en avertir un portier précédent, et des moyens de réception du sémaphore de sortie validé dont l'état logique a été inversé par le portier suivant, lesdits moyens de réception renvoyant à l'unité de contrôle un signal de fin d'exécution, la transmission des sémaphores s'opérant successivement jusqu'au portier final, le circuit intégré com- prenant des modules constitués chacun de l'opérateur et de son portier, modules qui échangent des données par leurs opéra- -22 - teurs et des sémaphores par leurs portiers, ce qui assure un séquencement auto-cadencé à chaque module, les modules et l'u- nité de contrôle étant pilotés par l'horloge et par le généra- teur d'instructions. 2. Circuit intégré selon la revendication 1, carac- térisé en ce qu'il comprend en outre au moins un opérateur mu- ni d'un portier qui reçoit des signaux de contrôle de l'unité de contrôle, et, après réception d'au moins un sémaphore d'en- trée validé par. un signal de contrôle d'entrée, par un signal de nouvelle instruction et par un signal de validation de l'o- pérateur issus de l'unité de contrôle, délivrant à son opéra- teur des signaux adaptés aux paramètres fonctionnels dudit opérateur, et, afin d'assurer un séquencement auto-cadencé, le portier, à l'issue du traitement par l'opérateur, renvoyant à l'unité de contrôle un signal de fin d'exécution, ledit por- tier comprenant en outre des moyens d'inversion de l'état lo- gique des sémaphores d'entrée lorsque l'opérateur n'a plus besoin de données d'entrée afin d'en avertir le portier précé- dent. 3. Circuit intégré selon une des revendications 1 ou 2, caractérisé en ce qu'il comprend en outre au moins un opérateur muni d'un portier qui reçoit des signaux de contrô- le de l'unité de contrôle, et, après réception d'un signal de nouvelle instruction et d'un signal de validation de l'opéra- teur issus de l'unité de contrôle, délivrant à son opérateur des signaux adaptés aux paramètres fonctionnels dudit opéra- teur, et, afin d'assurer un séquencement auto-cadencé, le por- tier, à l'issue du traitement par l'opérateur, validant la sortie des données par l'opérateur vers un opérateur suivant en émettant au moins un sémaphore de sortie préalablement va- lidé par un signal de contrôle de sortie, le sémaphore de sor- tie étant transmis à au moins un autre portier afin que cet autre portier positionne son propre opérateur pour réception- ner lesdites données, ledit portier comprenant en outre des moyens de réception du sémaphore de sortie dont l'état logique - 23 - a été inversé par le portier suivant, lesdits moyens de récep- tion renvoyant à l'unité de contrôle un signal de fin d'exécu- tion. 4. Circuit intégré selon une des revendications 1 à 3, caractérisé en ce que les signaux adaptés délivrés par le portier à son opérateur sont paramétrables afin de les rendre adaptables aux paramètres propres à chaque opérateur, paramè- tres qui définissent la fonction et le temps de traitement de chaque opérateur. 5. Circuit intégré selon une des revendications 1 à 4, caractérisé en ce que chaque portier reçoit de l'unité de contrôle son signal de nouvelle instruction et émet son signal de fin d'exécution, sous la forme d'un sémaphore dont l'état logique peut être inversé par le portier pour transmettre à l'unité de contrôle le message de fin d'exécution. 6. Circuit intégré selon une des revendications 1 à , caractérisé en ce que dans une chaîne d'opérateurs de rang n à (n+p), avec n et p entiers non nuls, l'opérateur de rang n est réuni à l'opérateur de rang (n+p) par un bus d'extraction de données. 7. Circuit intégré selon une des revendications 1 à 6, caractérisé en ce que le portier comprend i circuits de va- lidation d'entrée qui reçoivent chacun un des i sémaphores d'entrée et un des i signaux de contrôle d'entrée, et j cir- cuits de validation de sortie qui reçoivent chacun un des j signaux de contrôle de sortie ainsi que le signal de fin de traitement de l'opérateur et qui délivrent chacun un des j sémaphores de sortie, les circuits de validation d'entrée com- mandant un générateur d'une impulsion qui est contrôlé par le signal de nouvelle instruction et par le signal de validation de l'opérateur et qui est réuni à un registre à décalage à k étages qui délivre les signaux adaptés aux paramètres fonc- tionnels de l'opérateur ainsi que le signal de fin de traite- ment par l'opérateur, et qui active les circuits de valida- tion de sortie afin qu'ils émettent leurs sémaphores de sor- - 24 - tie, chacun des i circuits de validation d'entrée comprenant un moyen d'inversion de l'état logique de leur sémaphore d'en- trée, moyen qui est opérationnel pour chaque circuit de vali- dation d'entrée sélectionné lorsqu'un signal de libération de sémaphore a été généré, le portier comprenant en outre un au- tre générateur d'une impulsion lui-même commandé par le signal de fin de traitement par l'opérateur et par tous les séma- phores de sortie précédemment validés après qu'ils ont été in- versés par les portiers suivants, l'autre générateur d'impul- sion renvoyant à l'unité de contrôle le signal de fin d'exécu- tion. 8. Circuit intégré selon la revendication 7, carac- térisé en ce que, lorsque l'opérateur dispose d'une mémorisa- tion interne, le signal de libération des sémaphores qui opère sur les i circuits de validation d'entrée, est obtenu par la validation de la fin du traitement de l'opérateur, en réunis- sant une sortie du registre à décalage aux circuits de valida- tion d'entrée. 9. Circuit intégré selon la revendication 7, carac- térisé en ce que, lorsque l'opérateur ne dispose pas d'une mé- morisation interne, le signal de libération des sémaphores, qui opère sur les i circuits de validation d'entrée, est obte- nu en réunissant la sortie de l'autre générateur d'une impul- sion avec les circuits de validation d'entrée afin que la va- lidation ne puisse s'effectuer que lorsque le-portier suivant a renvoyé le sémaphore inversé. 10. Circuit intégré selon une des revendications 7 à 9, caractérisé en ce que le nombre d'étages et le nombre de sorties du registre à décalage sont déterminés par la fonction et par le temps de traitement de l'opérateur. 11. Circuit intégré selon la revendication 10, carac- térisé en ce que l'unité de contrôle délivre au portier un si- gnal de type d'opération afin qu'au cours d'une quelconque opération d'un opérateur le nombre d'étages concernés du re- gistre à décalage soit paramètre de sorte que la durée allouée - 25 - au traitement soit la plus proche possible du temps nécessaire à l'opérateur pour cette opération. 12. Circuit intégré selon une des revendications 5 à 11, caractérisé en ce que pour chaque portier le signal de nouvelle instruction et le signal de fin d'exécution action- nent, sous le contrôle de l'horloge, un générateur d'une im- puision d'un circuit de contrôle qui émet un sémaphore de con- trôle, le circuit de contrôle possédant des moyens d'inver- sion de l'état logique du sémaphore et l'unité de contrôle possédant des moyens de réception du sémaphore inversé. 13. Procédé de fonctionnement d'un circuit intégré de traitement numérique de données organisé à l'aide d'opéra- teurs arithmétiques, d'opérateurs logiques, d'opérateurs mé- moire, d'opérateurs entrée/sortie, contrôlés par une horloge et par une unité de contrôle qui reçoit des instructions d'un générateur d'instructions et qui transmet aux opérateurs des commandes opératives, caractérisé en ce qu'au moins un opéra- teur étant muni d'un portier, l'opérateur possédant une fonc- tion de mémorisation, le procédé comprend les étapes suivan- tes: a. réception par un circuit d'entrée de validation du portier d'au moins un sémaphore d'entrée qui est validé par un si- gnal de contrôle d'entrée issu de l'unité de contrôle et activation d'un générateur d'impulsion du portier, b. émission par le générateur d'impulsion d'une impulsion sur l'entrée d'un registre à décalage à k étages, c. émission par le registre à décalage de signaux adaptés aux paramètres de l'opérateur, d. émission par le registre à décalage, sur au moins un cir- cuit de sortie de validation du portier, d'un signal d'a- chèvement du traitement par l'opérateur, e. inversion de l'état logique du sémaphore d'entrée lorsque l'opérateur n'a plus besoin de données d'entrée, afin de transmettre au portier qui le précède le message de prise en compte des données, -26- f. émission par le portier d'au moins un sémaphore de sortie sur au moins un portier suivant, g. réception des données de l'opérateur par l'opérateur sui- vant. h. envoi à l'unité de contrôle du signal de fin d'exécution après inversion de l'état logique des sémaphores de sortie validés. 14. Procédé de fonctionnement d'un circuit intégré de traitement numérique de données organisé à l'aide d'opéra- teurs arithmétiques, d'opérateurs logiques, d'opérateurs mé- moire, d'opérateurs entrée/sortie, contrôlés par une horloge et par une unité de contrôle qui reçoit des instructions d'un générateur d'instructions et qui transmet aux opérateurs des commandes opératives, caractérisé en ce qu'au moins un opéra- teur étant muni d'un portier, l'opérateur ne possédant pas une - fonction de mémorisation, le procédé comprend les étapes sui- vantes: a. réception par un circuit d'entrée de validation du portier d'au moins un sémaphore d'entrée qui est validé par un si- gnal de contrôle d'entrée issu de l'unité de contrôle et activation d'un générateur d'impulsion du portier, b. émission par le générateur d'impulsion d'une impulsion sur l'entrée d'un registre à décalage à k étages, c. émission par le registre à décalage de signaux adaptés aux paramètres de l'opérateur, d. émission par le registre à décalage, sur au moins un cir- cuit de sortie de validation du portier, d'un signal d'a- chèvement du traitement par l'opérateur, e. émission par le portier d'au moins un sémaphore de sortie sur au moins un portier suivant, f. réception des données de l'opérateur par l'opérateur sui- vant, g. réception du sémaphore de sortie inversé par le portier suivant correspondant à la prise en compte des données par l'opérateur suivant, et génération d'une impulsion de -27- libération du sémaphore d'entrée, h. désactivation du sémaphore d'entrée par inversion du si- gnal afin d'avertir le portier précédent de la fin de traitement, i. envoi à l'unité de contrôle du signal de fin d'exécution après inversion de l'état logique des sémaphores de sortie validés. 15. Procédé selon une des revendications 13 ou 14, caractérisé en ce que, pour extraire le résultat obtenu à l'issue d'un traitement en boucle mettant en oeuvre plusieurs modules formés chacun d'un opérateur et d'un portier, le pro- cédé comprend une étape d'extraction du résultat de l'un des modules de la boucle à l'aide d'un bus d'extraction parallèle.