FR 2779844 A1 19991217 FR 9807431 A 19980612 La présente invention concerne les structures d'interconnexion pour l'échange de données entre les divers organes adressables d'un mi- crocalculateur, notamment le microcalculateur d'un dispositif médical implantable actif tel qu'un stimulateur ou défibrillateur cardiaque. Dans ces applications particulières, la consommation du microcal- culateur est un facteur qui doit être soigneusement maîtrisé, car elle a une incidence directe sur la durée de vie de l'implant, c'est-à-dire le nombre d'années au bout duquel une intervention sera nécessaire pour échanger l'implant, arrivé en fin de vie. À cet égard, l'utilisation de structures à microcalculateur de plus en plus complexes a conduit à la multiplication sur le microcircuit des mémoires vives (RAMs), mémoires mortes (ROMs), registres divers, ca- naux d'accès direct mémoire (DMA), éléments de gestion des interrup- tions, etc. (désignés par la suite sous le vocable générique d"'organes adressables" du microcalculateur). Ces divers organes sont interconnectés entre eux pour permettre l'échange de données au moyen d'une structure comprenant une artère commune d'interconnexion assurant le transfert parallèle, sur un grou- pe de conducteurs, des informations à échanger. La structure typique d'une telle artère d'interconnexion est celle du bus bidirectionnel sur lequel sont reliés tous les organes du microcalcu- lateur. L'échange de données peut avoir lieu dans un sens, par exemple de l'unité centrale vers une mémoire pour une instruction d'écriture, ou dans le sens inverse, par exemple d'une mémoire vers l'unité centrale pour une instruction de lecture. Avec la multiplication du nombre d'organes adressables connectés à un tel bus de données bidirectionnel apparaissent un certain nombre de difficultés qui ont une incidence sérieuse sur la consommation, fac- teur critique dans le domaine des dispositifs médicaux implantés com- me on l'a exposé plus haut. Tout d'abord, un bus bidirectionnel relié à des nombreux organes implique, du point de vue électrique, une capacité importante par rap- port à la masse. Cette capacité parasite va d'une part augmenter le temps nécessaire pour modifier l'état logique de l'artère commune, en raison du temps nécessaire à la charge de celle-ci par les conducteurs de bus, conduisant donc à des cycles de bus de plus en plus longs. D'au- tre part et surtout, la charge et la décharge de cette capacité à chaque changement d'état logique va augmenter sensiblement la consomma- tion énergétique du circuit. Diverses solutions ont été proposées pour remédier à cet inconvéni- ent, par exemple en augmentant la taille des conducteurs de bus pour pouvoir charger et décharger plus rapidement la capacité parasite. Mais l'augmentation de la taille des conducteurs de bus induit une ca- pacité encore plus grande, et se fait en outre au détriment de la surface du circuit, conséquence particulièrement fâcheuse dans le cas des dis- positifs médicaux implantables, dont la miniaturisation doit être par- ticulièrement étudiée. Un autre inconvénient est que chaque organe reçoit des signaux de transition du bus bidirectionnel, ce qui implique une consommation inutile. Une solution possible consiste à partager le bus bidirectionnel en une multitude de sous-bus bidirectionnels. Cette solution est pénali- sante d'un point de vue du routage, c'est-à-dire au détriment de la sur- face utilisée. Pour rester compatibles avec les temps de cycles imposés, les commandes des conducteurs de bus sont activées avec une certaine période de chevauchement, ce qui correspond à des courts-circuits et se fait au prix d'une augmentation transitoire de la consommation énergé- tique du circuit. D'autre part, les conducteurs des bus bidirectionnels connaissent trois états, à savoir '1', '0' et un état à haute impédance, ce dernier cor- respondant à une absence de circulation de données sur le bus, c'est-à- dire un état non piloté de ce dernier. Dans les microcalculateurs à fai- ble consommation, notamment ceux qui inhibent le fonctionnement de l'horloge système pour économiser l'énergie, il est essentiel que le cir- cuit ne cesse pas de fonctionner au moment o un segment de bus se trouve dans un état à haute impédance, car des entrées flottantes sur des circuits CMOS -conduiraient à des courants élevés allant à l'encon- tre de la recherche de l'économie de courant. Pour empêcher ceci, on peut placer sur le bus des circuits de verrouillage ou des circuits répé- teurs, qui maintiennent l'état du bus en l'absence de pilotage autre. Ces circuits permettent d'éviter toute entrée flottante, mais consomment de l'énergie pour leur mise à jour, à chaque transaction intervenant sur le bus. L'un des buts de l'invention est de remédier à ces divers inconvé- nients, en proposant une structure d'interconnexion évitant le recours à un bus bidirectionnel, cette dernière structure étant, comme on l'a indiqué, mal adaptée à des circuits à la fois complexes, miniaturisés et à faible consommation. L'abandon de l'architecture bidirectionnelle et de l'état à haute im- pédance permettra, comme on l'expliquera plus bas, de réduire très for- tement la capacité parasite dont on a exposé les inconvénients et de fai- re disparaître les problèmes liés à la présence de transitions d'un sens à l'autre sur le bus. Parmi les avantages procurés par l'invention, on peut ainsi citer: - moindre consommation pour une même topologie de circuit (c'est-à- dire pour un même nombre d'organes adressables différents inter- connectés entre eux); - possibilité de réduire le temps de cycle, pour augmenter la rapidité du calculateur; - topologie de circuit adaptée, donc gain de surface et miniaturisa- tion accrue de circuit. À cet effet, la structure d'interconnexion de l'invention comprend une artère d'interconnexion assurant le transfert parallèle sur un grou- pe de conducteurs des informations à échanger, configurée en au moins un anneau sur lequel les informations circulent en boucle fermée et de façon unidirectionnelle, cette artère comportant une pluralité de points de couplage aux organes du microcalculateur. Dans un mode de mise en oeuvre particulier, au moins certains des points de couplage comprennent une passerelle vers, et depuis, un au- tre anneau d'ordre inférieur, anneau sur lequel les informations circu- lent également en boucle fermée et de façon unidirectionnelle, de mani- ère à constituer une structure comportant une pluralité d'anneaux hié- rarchisés entre eux. Dans ce dernier cas, il est notamment prévu sur l'anneau d'ordre le plus élevé un point de couplage à une unité centrale de traitement. Par ailleurs, la passerelle comprend avantageusement des moyens multiplexeurs pour transférer sélectivement en aval sur l'anneau d'or- dre supérieur soit l'information reçue de l'anneau d'ordre inférieur, si le point de couplage correspondant à l'organe adressé se trouve sur cet anneau d'ordre inférieur ou sur un anneau d'ordre encore inférieur cou- plé à ce dernier, soit l'information reçue de l'anneau d'ordre supérieur en amont, dans le cas contraire. Avantageusement, au moins certains des points de couplage com- prennent un registre associé à l'organe correspondant du microcalcula- teur, notamment avec des moyens multiplexeurs pour transférer sélec- tivement en aval sur l'anneau soit le contenu du registre, si le point de couplage correspond à l'organe adressé, soit l'information reçue de l'an- neau en amont, dans le cas contraire. L'un des points de couplage peut être un point de couplage à un bus d'échange de données bidirectionnel, ce point de couplage étant alors de préférence situé sur l'anneau d'ordre le plus élevé et précédant im- médiatement l'unité centrale de traitement sur cet anneau. De préférence, les conducteurs de l'artère d'interconnexion opèrent en logique à deux niveaux, essentiellement sans état à haute impé- dance. De préférence également, le circuit du microcalculateur présente une topologie d'implantation dans laquelle les organes appartenant à un même anneau sont regroupés sur un domaine commun, ce domaine étant adjacent au domaine correspondant à l'anneau de même rang im- médiatement suivant, ou précédent, dans le sens de circulation de l'in- formation. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description ci-dessous d'un exemple de réalisation, faite en référence aux dessins annexes. La figure 1 illustre de façon schématique un anneau élémentaire de la structure d'interconnexion selon l'invention. La figure 2 montre une structure selon l'invention, comportant une pluralité d'anneaux associés en une structure hiérarchisée. La figure 3 montre la manière dont peut être insérée sur la boucle de la figure 1 une passerelle de couplage avec un anneau d'ordre supé- rieur. La figure 4 illustre une topologie préférentielle d'implantation des divers circuits d'une structure telle que celle de la figure 2. On va tout d'abord décrire en référence à la figure 1 une configura- tion élémentaire d'anneau qui, associée à d'autres configurations sem- blables, permettra d'obtenir la structure d'interconnexion de l'inven- tion. Cette configuration élémentaire comporte une pluralité d'étages 10, , 30 (ici au nombre de trois, ce nombre n'étant bien entendu aucu- nement limitatif et un anneau pouvant inclure un nombre bien supé- rieur d'étages). Chaque étage 10, 20, 30 comporte un registre 11, 21, 31 et un multiplexeur 12, 22, 32 à deux entrées A, B et une sortie. Les diverses entrées et sorties des registres et multiplexeurs sont toutes constituées d'un groupe de conducteurs sur lesquels sont trans- férées en parallèle les informations, par exemple des groupes de huit conducteurs (informations vectorisée sur huit bits), représentés par une simple ligne sur les dessins. Chaque registre 11, 21, 31 peut désigner un organe adressable d'un microcalculateur tel qu'une RAM, une ROM, une interface d'accès DMA, des registres de gestion des interruptions, de temporisation, etc. Chaque registre possède un port d'entrée et un port de sortie dis- tincts, chacun des ports étant unidirectionnel (entrée ou bien sortie) et fonctionne en logique à deux états, c'est-à-dire n'est pas susceptible de prendre un état indéfini à haute impédance. L'entrée 13, 23, 33 de chaque étage 10, 20, 30 est appliquée simul- tanément d'une part au port d'entrée du registre 11, 21, 31 respectif et d'autre part à l'un, A, des ports d'entrée du multiplexeur respectif 12, 22, 32. L'autre entrée, B, du multiplexeur est reliée au port de sortie du registre associé. Une logique de commande, non illustrée, active les signaux d'écri- ture W1, W2, W3 des registres 11, 21, 31 et de sélection SELl, SEL2, SEL3 des multiplexeurs 12, 22, 32. La sortie 14 de l'étage 10 (port de sortie du multiplexeur 12) est ap- pliquée à l'entrée 23 de l'étage 20, la sortie 24 de l'étage 20 (port de sor- tie du multiplexeur 22) est appliquée à l'entrée 33 de l'étage 30 et la sortie 34 de l'étage 30 (port de sortie du multiplexeur 32) est retournée à l'entrée 13 de l'étage 10 par une ligne 40, de manière à constituer un anneau fermé sur lequel les données pourront circuler de manière uni- directionnelle (c'est-à-dire de l'étage 10 vers l'étage 20, puis de l'étage 20 vers l'étage 30, puis de l'étage 30 vers l'étage 10, et ainsi de suite, mais jamais dans le sens contraire). Lorsqu'un organe du microcalculateur n'est pas adressé, le signal de sélection SEL correspondant du multiplexeur n'est pas activé et le multiplexeur transfère simplement (sélection du port A) le contenu ap- pliqué en entrée de l'étage à la sortie de ce même étage, puis à l'entrée de l'étage suivant. Si aucun signal de sélection n'est activé parmi les différents étages de l'anneau, la valeur de la donnée appliquée en entrée du premier éta- ge sera conservée tout au long de l'anneau, la boucle fermée de multi- plexeurs jouant un rôle de verrou. Avec une telle boucle, il existe une probabilité faible, mais non nul- le, de phénomènes d'oscillation. En effet, chaque multiplexeur présen- tant un retard non nul pour la transmission de l'entrée à la sortie, il pourrait y avoir propagation d'une perturbation transitoire sur la boucle, avec risque d'apparition d'un courant élevé associé à l'oscilla- tion. Pour pallier ce risque, la logique de commande est conçue pour maintenir l'état des signaux de sélection SEL utilisés lors du dernier cycle auquel l'anneau a été adressé et, lorsqu'aucun registre de l'an- neau n'a été adressé, le dernier signal de sélection SEL est maintenu activé (principe "du dernier accédé"). Lorsqu'en revanche l'organe adressable du microcalculateur corres- pondant à l'un des étages est adressé, pour un cycle de lecture ou d'écri- ture, le signal de sélection SEL correspondant du multiplexeur est activé (sélection du port B), de sorte que le multiplexeur transfère le contenu du registre vers la sortie de l'étage considéré, qui est ainsi ap- pliqué à l'étage suivant. S'il s'agit d'un cycle d'écriture, le signal d'écri- ture W est également activé, indiquant au registre adressé qu'il y a lieu de verrouiller les données appliquées en entrée de l'étage. Lorsqu'un re- gistre est adressé (sélection d'un étage), il produit donc une donnée qui sera introduite dans l'anneau et se propagera le long de celui-ci et en retour jusqu'au port d'entrée de l'étage sélectionné. On peut déjà remarquer que, dans cette structure élémentaire, on s'affranchit déjà de deux des inconvénients des bus bidirectionnels mentionnés plus haut: - on supprime les états à haute impédance, et donc la possibilité de signaux d'entrée flottants en fonction du séquencement, et - les signaux sont tous unidirectionnels et pilotés, et il n'existe aucu- ne possibilité, à aucun moment, d'avoir des conducteurs de bus agissant en sens opposé avec élévation du courant et consommation importante d'énergie. À partir de la configuration élémentaire d'anneau que l'on vient d'exposer, l'invention propose d'associer entre eux, par un couplage ap- proprié, une pluralité d'anneaux de manière à constituer une structure hiérarchique. La figure 2 illustre une telle structure hiérarchique. Le niveau le plus élevé est un anneau fermé unidirectionnel 50, que l'on appellera "anneau racine" auquel est couplée l'unité centrale de traitement CPU. Sur cet anneau racine 50 sont couplés par l'intermédiaire de passe- relles ougateways G1, G2 - GN une pluralités d'anneaux ou de grou- pes d'anneaux organisés en grappe ou clusters CL1, CL2... CLN. Une grappe peut être constituée d'un unique anneau 60 isolé, com- me illustré pour la grappe CLN, la hiérarchie ne comportant alors pour cette grappe que deux niveaux (anneau racine 50 et anneau d'extrémité 60). Une grappe peut également être constituée, comme illustré pour les grappes CL1 et CL2, d'un anneau 60 comportant lui aussi des passerel- les telles que G11, G12 ou G21, G22 vers des anneaux 70 de niveau encore inférieur, la hiérarchie comportant alors pour ces grappes trois niveaux dans cet exemple (anneaux 50, 60 et 70). Les étages 10, 20, 30... associés à chacun des organes adressables du microcalculateur sont situés sur les anneaux de plus bas niveau, les anneaux de niveau intermédiaire étant de préférence (mais non néces- sairement) uniquement des anneaux de transition ne comportant que des passerelles vers le niveau supérieur et les niveaux inférieurs. La figure 3 illustre la structure d'une passerelle G permettant le transfert de données entre deux niveaux de la hiérarchie. La structure de base de l'anneau est essentiellement la même que celle de la figure 1, avec une pluralité d'étages 10, 20, 30 associés chacun à un organe adressable du microcalculateur, à la différence près que l'on intercale la passerelle G sur le conducteur de retour 40 reliant la sortie 34 du dernier étage de l'anneau à l'entrée 13 du premier étage de ce même anneau. La passerelle G est constituée d'un étage 90 comportant une entrée 91 en provenance de l'anneau d'ordre supérieur, une sortie 92 à desti- nation de ce même anneau d'ordre supérieur, une entrée 93 en prove- nance de l'anneau d'ordre inférieur (reliée à la sortie 34 de l'étage 30) et une sortie 94 à destination de ce même anneau d'ordre inférieur (reliée à l'entrée 13 du premier étage 10). Le circuit comporte deux multiplexeurs 95, 96 à deux entrées A et B, commandés par un signal de sélection unique commun SELo. Le si- gnal d'entrée 91 est appliqué à l'entrée A du multiplexeur 95 et à l'en- trée B du multiplexeur 96, et l'entrée 93 est appliquée à l'entrée B du multiplexeur 95 et à l'entrée A du multiplexeur 96. La sortie 92 est re- liée à la sortie du multiplexeur 95, et la sortie 94 à la sortie du multi- plexeur 96. Avec une telle configuration, si le signal de sélection SELo n'est pas activé, les deux multiplexeurs transféreront sur leurs sorties respec- tives le signal présent sur leurs entrées A, de sorte que les signaux cir- culeront sans changement séparément sur chacun des deux anneaux. En revanche, si-le signal SEL0 est activé, l'entrée 91 sera reliée à la sortie 94 et l'entrée 93 à la sortie 92, de sorte que le signal amont pro- venant de l'anneau d'ordre supérieur sera transféré sur l'anneau d'or- dre inférieur en entrée du premier étage 10, et le signal recueilli en sor- tie du dernier étage 30 de l'anneau d'ordre inférieur sera appliqué en aval sur l'anneau d'ordre supérieur. Le signal de sélection SEL0 est activé chaque fois que l'un quelconque des étages de l'anneau d'ordre inférieur est adressé, c'est-à-dire, dans l'exemple illustré, chaque fois que l'un des signaux SEL1, SEL2 ou SEL3 est activé. Pour obtenir une structure hiérarchique à plus de deux niveaux, on peut remplacer un ou plusieurs des étages tels que 10, 20, 30 par une autre passerelle G, qui contrôlera le transfert des informations vers l'anneau ou les anneaux d'ordre inférieur, le signal de sélection de la passerelle étant activé chaque fois qu'un registre de l'anneau de niveau inférieur, ou de l'une des anneaux d'un niveau encore inférieur, dépen- dant de cette passerelle est activé. Il est ainsi possible, à partir de l'unité centrale CPU située sur l'an- neau racine 50, d'accéder à l'un quelconque des registres correspondant à un organe adressable, par activation appropriée des signaux de sé- lection des différents passerelles menant aux registres associés à cet organe adressé. La logique de commande des différentes passerelles peut être conçue de manière que seuls les segments (anneaux) du trajet de don- nées nécessaires pour véhiculer une donnée d'un registre source d'un anneau vers un registre destination d'un autre anneau aient effective- ment besoin de changer d'état. Dans ce cas, tous les autres segments de données situés ailleurs dans la hiérarchie de grappe sont entièrement statiques et ne consomment aucune énergie de transition. On peut grouper sur une même puce un nombre important d'orga- nes. Par exemple, une puce typique de stimulateur cardiaque program- mable DDD comporte de l'ordre de 160 registres différents à accéder (DMA, registres de temporisation, registres de gestion des interrup- tions, etc.) 31 RAMs et 12 ROMs différentes. Le nombre d'organes par anneau est choisi de manière à réaliser un compromis entre, d'une part, l'économie d'alimentation recherchée (en multipliant le nombre d'anneaux on augmente la sélectivité résul- tant de la structure hiérarchique, et donc ses performances) et la com- plexité de réalisation du système. En pratique, on peut situer l'opti- mum à environ 6 à 10, typiquement 8, organes adressables par anneau. Par ailleurs, cette structure hiérarchisée en grappe permet l'ajout de nouveaux organes adressables dans la hiérarchie sans modification substantielle de la consommation globale du circuit ni du temps d'accès aux organes déjà présents. En ce qui concerne l'anneau racine 50, sa structure est adaptée à sa position particulière. Il contient l'unité centrale CPU du microcalcula- teur et les passerelles G1, G2, GN vers toutes les grappes du système. Par ailleurs, pour assurer les échanges avec le monde extérieur, il est prévu une passerelle particulière GIO assurant l'interfaçage entre l'an- neau racine 50 et un bus bidirectionnel 80 de type classique nécessaire à l'interfaçage avec d'autres puces, par exemple des mémoires standard et des circuits de gestion des périphériques. En ce qui concerne les signaux de sélection des passerelles G1, G2, GN, GiO de l'anneau racine , ceux-ci doivent être commandés séparément afin de permettre aux données de se propager sur l'anneau racine à la fois pour les opérations d'écriture et de lecture de l'unité centrale, et c'est notamment pour cet- te raison que la passerelle GIO est positionnée juste avant l'unité cen- * trale CPU, dans le sens de propagation de données. En ce qui concerne la topologie des circuits, on prévoit une implan- tation adaptée pour que la circulation logique des informations dans les différents anneaux et grappes corresponde à une longueur de conduc- teur minimale sur le microcircuit. Par exemple, comme illustré figure 4, on regroupe les circuits des différentes grappes CL1, CL2, CL3 dans des mêmes domaines respec- tifs, et on place ces domaines sur le circuit de manière que le domaine correspondant à une grappe donnée soit adjacent au domaine corres- pondant à la grappe immédiatement suivante, etc. afin de minimiser les longueurs physiques de conducteur compte tenu du sens de circula- tion des informations à l'intérieur d'une même grappe et d'une grappe à la suivante. REVENDICATIONS 1. Une structure d'interconnexion pour l'échange de données entre les divers organes adressables d'un microcalculateur, notamment le mi- crocalculateur d'un dispositif médical implantable actif tel qu'un stimu- lateur ou défibrillateur cardiaque, cette structure comprenant une ar- tère d'interconnexion assurant le transfert parallèle sur un groupe de conducteurs des informations à échanger, caractérisée en ce que l'artère d'interconnexion est configurée en au moins un anneau (50; 60; 70) sur lequel les informations circulent en boucle fermée et de façon unidirectionnelle, cette artère comportant une pluralité de points de couplage aux organes du microcalculateur. 2. La structure de la revendication 1, dans laquelle au moins cer- tains des points de couplage comprennent une passerelle (G1, G2... GN) vers, et depuis, un autre anneau d'ordre inférieur, anneau sur lequel les informations circulent également en boucle fermée et de façon unidirectionnelle, de manière à constituer une structure compor- tant une pluralité d'anneaux hiérarchisés entre eux. 3. La structure de la revendication 2, comprenant sur l'anneau d'ordre le plus élevé (50) un point de couplage à une unité centrale de traitement (CPU). 4. La structure de la revendication 2, dans laquelle la passerelle (G) comprend des moyens multiplexeurs (95, 96) pour transférer sélec- tivement en aval sur l'anneau d'ordre supérieur soit l'information reçue de l'anneau d'ordre inférieur, si le point de couplage correspondant à l'organe adressé se trouve sur cet anneau d'ordre inférieur ou sur un anneau d'ordre encore inférieur couplé à ce dernier, soit l'information reçue de l'anneau d'ordre supérieur en amont, dans le cas contraire. 5. La structure de la revendication 1, dans laquelle au moins cer- tains des points de couplage (10, 20, 30) comprennent un registre (11, 21, 31) associé à l'organe correspondant du microcalculateur. 6. La structure de la revendication 5, comprenant des moyens mul- tiplexeurs (12, 22, 32) pour transférer sélectivement en aval sur l'an- neau soit le contenu du registre, si le point de couplage correspond à l'organe adressé, soit l'information reçue de l'anneau en amont, dans le cas contraire. 7. La structure de la revendication 1, dans laquelle l'un des points de couplage est un point de couplage (Gio) à un bus d'échange de don- nées bidirectionnel (80). 8. La structure des revendications 3 et 7 prises en combinaison, dans laquelle le point de couplage (GIO) au bus d'échange de données bidirectionnel est situé sur l'anneau d'ordre le plus élevé (50) et précède immédiatement l'unité centrale de traitement (CPU) sur cet anneau. 9. La structure de la revendication 1, dans laquelle les conducteurs de l'artère d'interconnexion opèrent en logique à deux niveaux, essen- tiellement sans état à haute impédance. 10. La structure de la revendication 2, dans laquelle le circuit du microcalculateur présente une topologie d'implantation dans laquelle les organes appartenant à un même anneau sont regroupés sur un do- maine commun (CPU, CL1, CL2, CL3), ce domaine étant adjacent au domaine correspondant à l'anneau de même rang immédiatement sui- vant, ou précédent, dans le sens de circulation de l'information.