Brevet FR2933826A1 — publié le 20100115

La présente invention concerne un réseau logique programmable tel que ceux connus sous l'abréviation FPGA (de l'anglais � Field Programmable Gate Array �, réseau de portes programmables sur site ou in situ), un commuta- tour d'interconnexion et une unité logique pour un tel réseau. ARRIERE PLAN DE L'INVENTION Un réseau logique programmable est un circuit intégré qui peut être programmé par un fabricant de dispo- sitifs intégrant un tel circuit ou par l'utilisateur afin d'adapter le circuit à l'application auquel il est destiné. Un tel réseau logique programmable peut ainsi remplacer plusieurs circuits intégrés spécialement. conçus pour des applications particulières (ou circuit ASIC, de l'anglais � Application Specific Integrated Circuit �). Un réseau logique programmable (ou configurable) comporte des blocs logiques programmables et une structure matricielle d'interconnexion ayant des noeuds formés par des commutateurs d'interconnexion programmables. Les blocs logiques sont reliés à la structure matricielle d'interconnexion par des unités de connexion disposées entre chaque paire de commutateurs d'interconnexion adjacents. Une telle architecture permet l'établissement de nombreux chemins de circulation des informations entre deux points du réseau, ces chemins étant déterminés par des algorithmes. Il est de la sorte difficile de prévoir le temps nécessaire pour transporter une information d'un point à un autre. En outre, ces circuits occupent une surface importante et sont gourmands en énergie. De tels circuits ne sont donc que peu ou pas utilisés lorsque la source d'alimentation est une batterie. OBJET DE L'INVENTION Un but de l'invention est de fournir un moyen pour obtenir un réseau logique programmable qui soit plus compact tout en étant flexible relativement performant notamment en ce qui concerne les temps de routage. RESUME DE L'INVENTION A cet effet, l'invention a pour objet un commutateur d'interconnexion de réseau logique programmable, comportant des ports d'entrée regroupant une pluralité d'entrées et des ports de sortie regroupant une pluralité de sorties, les entrées et les sorties étant reliées à une structure arborescente de liaison descendant des entrées vers les sorties et comportant des éléments de rou- tage organisés selon plusieurs niveaux pour relier par un chemin unique chaque entrée de tous les ports d'entrée à au moins une sortie de chaque port de sortie. Ainsi, les commutateurs d'interconnexion autorisent un grand nombre de possibilités de raccordement et présentent donc une flexibilité élevée. La structure arborescente et l'existence de chemins de routage uniques permettent d'avoir une bonne prédictibilité du routage et des temps de routage. De préférence, dans le commutateur d'intercon- nexion de l'invention : - les ports de sortie comprennent des ports de sortie vers des commutateurs d'interconnexion voisins et des ports de sortie vers des unités logiques voisines, - les ports d'entrée comprennent des ports d'entrée depuis les commutateurs d'interconnexion voisins et des ports d'entrée depuis les unités logiques voisines, - les éléments de routage comprennent des premiers éléments de routage disposés entre les ports d'entrée depuis les commutateurs d'interconnexionq voisins et les ports de sortie vers les commutateurs d'interconnexion voisins ; des deuxièmes éléments de routage disposés entre, d'une part, les ports d'entrée de-puis les unités logiques et, d'autre part, les premiers éléments de routage et des troisièmes éléments de rou- tage, les troisièmes éléments de routage étant; disposés entre, d'une part, les premiers éléments de routage et les deuxièmes éléments de routage et, d'autre part, les ports de sortie vers les unités logiques. Dans un mode de réalisation particulier : - les premiers éléments de routage ont des entrées reliées chacune à une entrée de chaque port d'entrée depuis les commutateurs d'interconnexion voisins, au moins une entrée reliée à une sortie d'un des deuxièmes éléments de routage, des sorties reliées chacune à une sortie de chaque port de sortie vers les commutateurs d'interconnexion voisins et des sorties reliées chacune à une entrée d'un des troisièmes éléments de routage ; - les deuxièmes éléments de routage ont des entrées reliées chacune à une des entrées de craque port d'entrée depuis les unités logiques et des scrties reliées chacune à l'entrée correspondante d'une partie des premiers éléments de routage et à une des entrées d'une partie des troisièmes éléments de routage ; - les troisièmes éléments de routage ont des entrées reliées aux sorties des premiers et deuxièmes éléments de routage et des sorties reliées chacune à une des sorties de chaque port de sortie vers les unités logi- ques. L'invention a également pour objet une unité logique de réseau logique programmable, comportant des blocs logiques reliés à des ports d'entrées regroupant une pluralité d'entrées et des ports de sorties regrou- pant une pluralité de sorties, les entrées, les sorties et les blocs logiques étant reliés à une structure arborescente de liaison, descendant des ports d'entrées vers les blocs logiques et montant des blocs logiques vers les ports de sorties, comportant des éléments de rcutage en- trant et des éléments de routage sortant organisés selon plusieurs niveaux, les éléments de routage entrant reliant par un chemin unique chaque entrée de tous les ports d'entrée à tous les blocs logiques et les éléments de routage sortant reliant par un chemin unique chaque sortie d'un bloc logique à tous les ports de sortie et aux éléments de routage entrant du même groupe. De préférence alors, chaque unité logique possède L niveaux hiérarchiques qui comportent chacun au moins un groupe Gn regroupant au moins : - Rn entrées et Sn sorties, - Qn groupes Gn-1 appartenant au niveau hiérarchique n-1 ayant chacun Rn-1 entrées et Sn-1 sorties, - Rn-1 éléments de routage entrant reliés chacun à tous les Qn groupes Gn-I, - Sn- éléments de routage sortant reliés à tous les Qn groupes Gn-1 et à un ensemble des éléments de routage entrant de ce groupe, chaque groupe du niveau le plus bas correspondant à un bloc logique. L'invention concerne en outre un réseau logique programmable comportant des commutateurs d'interconnexion reconfigurables et des unités logiques reconfigurables reliées entre eux par un maillage de communication tel que : 25 - chaque commutateur d'interconnexion est relié directement à quatre commutateurs d'interconnexion voisins, - chaque unité logique possède huit unités logi- ques voisines et est reliée à chacune d'elles par 30 l'intermédiaire d'un commutateur d'interconnexion. au moins un chemin unique est défini entre deux points du réseau. Dans la présente description, deux éléments sont reliés � l'un à l'autre lorsqu'une conduction électri-35 que est possible entre les deux éléments, cette conduc- 15 20 tion pouvant être activée ou inactivée selon qu'elle est exploitée ou pas dans la configuration finalement programmée. Ainsi, l'unité logique peut être programmée pour communiquer directement avec les unités logiques voisines en passant seulement par l'un des commutateurs voisins. Il est de la sorte possible de réduire la longueur des chemins entre deux points du réseau. Ceci permet de plus d'augmenter la densité d'unités logiques et de commutateurs d'interconnexion. Avantageusement, le réseau comprend des commutateurs d'interconnexion et/ou des unités logiques des types ci-dessus. Cette structure combine une architecture en maillage à l'extérieur des commutateurs d'interconnexion et une structure arborescente dans les commutateurs d'interconnexion et les unités logiques profitant des avantages de ces deux architectures. D'autres caractéristiques et avantages de l'invention ressortiront à la lecture de la description qui suit d'un mode de réalisation particulier non limita- tif de l'invention. BREVE DESCRIPTION DES DESSINS Il sera fait référence aux dessins annexés, parmi lesquels : - la figure 1 est une vue schématique partielle d'un réseau conforme à l'invention, - la figure 2 est une vue schématique agrandie de la zone II de la figure 1, - la figure 3 est une vue schématique de détail 30 d'une unité logique configurable de ce réseau, - la figure 4 est une vue schématique de détail d'un commutateur d'interconnexion de ce réseau. DESCRIPTION DETAILLEE DE L'INVENTION Dans la suite de la description, on enter..d par : 35 - commutateur d'interconnexion, un organe de rou- tage disposé à l'intersection de plusieurs canaux et programmable pour diriger des signaux provenant de certains des canaux vers un ou plusieurs des autres canaux, un tel organe de routage peut comprendre plusieurs éléments de routage tels que définis ci-dessous ; - élément de routage, un bloc de routage programmable par exemple de type � full crossbar � disposé dans un commutateur d'interconnexion ou une unité logique pour diriger et transmettre des signaux à l'intérieur du corn- mutateur d'interconnexion ou de l'unité logique ; - unité logique, un bloc logique unique ou une pluralité de blocs logiques reliés par des éléments de routage, un processeur ou tout autre élément susceptible d'être programmé pour réaliser une ou plusieurs opéra- tions logiques ; - bloc logique, un élément programmable, ou pas, pour réaliser une opération logique. En référence aux figures, le réseau logique programmable conforme à l'invention et ici décrit, générale- ment désigné en 1, est du type FPGA et comporte des commutateurs d'interconnexion 2 (couramment désignés par l'expression anglaise � switch box �) reconfigurables (le terme � reconfigurable � est ici utilisé dans le sens de programmable) et des unités logiques 3 reconfigurables reliées entre eux par un maillage de communication tel que : - chaque commutateur d'interconnexion 2 est relié directement à quatre commutateurs d'interconnexion 2 voisins, - chaque unité logique 3 possède huit unités logiques 3 voisines et est reliée à chacune d'elles par l'intermédiaire d'un commutateur d'interconnexion 2. Les commutateurs d'interconnexion 2 situés en bordure du ré-seau sont raccordés à des organes de communication avec l'extérieur du réseau. Chaque commutateur d'interconnexion 2 comprend des ports d'entrée depuis les commutateurs d'interconnexion I, des ports de sortie vers les commutateurs d'interconnexion 0, des ports d'entrée depuis les unités logiques I', des ports de sortie vers les unités logiques 0'. Chaque port d'entrée depuis les commutateurs d'interconnexion I possède M entrées, chaque port de sortie vers les commutateurs d'interconnexion 0 possède M sorties, chaque port d'entrée depuis les un__tés logiques I' possède N entrées, chaque port de sortie vers les uni-tés logiques 0' possède P sorties. Chaque commutateur d'interconnexion 2 comprend quatre ports d'entrée Il, 12, 13, I4 reliés respective- ment à ces quatre commutateurs d'interconnexion 2 voisins et quatre ports de sortie 01, 02, 03, 04 reliés respectivement à ces quatre commutateurs d'interconnexion 2 voisins. Les ports I et O peuvent comprendre plusieurs entrées et sorties respectivement, 32 dans le cas présent (toutes n'ont pas été représentées sur les figures afin de ne pas surcharger ces dernières), et sont disposés sur des côtés opposés du commutateur d'interconnex_on 2 qui est représenté ici sous une forme octogonale. Chaque commutateur d'interconnexion 2 comprend également des ports d'entrée 1'1, I'2, I'3, I'4 et des ports de sortie 0'1, 0'2, 0'3, 0'4 reliés aux quatre uni-tés logiques qui l'entourent. Les ports 0' et I' peuvent comprendre plusieurs sorties et plusieurs entrées, respectivement 4 et 16 dans le cas présent, et sont disposés sur des côtés opposés du commutateur d'interconnexion 2. Chaque commutateur d'interconnexion 2 comprend des premiers éléments de routage 4 au nombre de M, des deuxièmes éléments de routage 5 au nombre de N et des troisième éléments de routage 6 sont au nombre de P. Chaque port d'entrée I est relié à tous les ports de sortie O par les éléments de routage 4 programmables. Les éléments de routage 4 sont ici au nombre de 32 répartis par paires et possèdent chacun quatre entrées reliées chacune à une des entrées des ports I et quatre sorties reliées chacune à une des sorties des ports O. Chaque port d'entrée I' est relié à tous les ports de sortie 0' par les éléments de routage 5 programmables reliés aux éléments de routage 6 programmables. Les éléments de routage 5 sont ici au nombre de 4 et pos- sèdent quatre entrées et quatre sorties. Les éléments de routage 6 sont ici au nombre de 16, réparties en quatre groupes, et possèdent trois entrées et quatre sorties. Les quatre entrées de chaque élément de routage 5 sont reliées chacune à une des entrées des ports d'entrée I' et les quatre sorties de chaque élément de routage 5 sont reliées chacune, d'une part, à une entrée de chacun des éléments de routage 4 d'une paire et, d'autre part, à une des trois entrées de chacun des éléments de routage 6 d'un groupe associé. Les deux autres entrées des éléments de routage 6 sont reliées à la sortie de deux éléments de routage 4 et les sorties de chacun des éléments de routage 6 sont reliées chacune à une des entrées de chaque port de sortie O'. Chaque port d'entrée I' est relié à tous les ports de sortie 0 par les éléments de routage 4 et 5. Chaque port d'entrée I est ainsi également relié à tous les ports de sortie O' par les unités de routage 4 et 6. Les références 400, 500 et 600 figurant sur la figure 2 désignent l'ensemble des éléments de :routage 4, 5 et 6 respectivement. On comprend que : - les commutateurs d'interconnexion 2 communiquent entre eux via les éléments de routage 4 et avec les unités logiques 3 voisines par les éléments de routage 4 et 6 ; - les unités logiques 3 communiquent avec les unités logiques voisines via les éléments de routage 5 et les éléments de routage 6 des commutateurs d'interconnexion voisins (chacun des commutateurs d'interconnexion voisins d'une unité logique permet à cette unité logique d'être connectée aux trois autres unités logiques auquel ce commutateur d'interconnexion est relié, sans passer par un autre commutateur d'interconnexion). Chaque unité logique 3 comprend des blocs logi- ques 7 programmables pour réaliser des fonctions logiques élémentaires. Chaque unité logique 3 a une structure hiérarchisée qui possède plusieurs niveaux de hiérarchie et qui résulte d'une duplication de groupes. Le groupe Gi de plus bas niveau, ici appelé de premier niveau, comprend Ri entrées et SI sorties avec au moins : - QI blocs logiques 7 ayant chacun i entrées et j sorties, - un ensemble de routage de premier niveau. L'ensemble de routage de premier niveau com-20 prend : - i éléments de routage entrant 8 relié chacun à tous les blocs logiques de son groupe de premier niveau et comportant chacun yl entrées externes de ce groupe, - j éléments de routage sortant 9 reliés à tous 25 les blocs logiques 7 de son groupe de premier niveau et à tous les éléments de routage entrant 8 de ce groupe. Le groupe G2 de deuxième niveau comprend x groupes de premier niveau et un ensemble de routage de deuxième niveau. L'ensemble de routage de deuxième niveau est en 30 fait constitué de yl sous-ensembles de routage de même type que les ensembles de routage du premier niveau et comportant le même nombre d'éléments de routage entrant et sortant (les éléments de routage entrant et sortant de l'ensemble de routage de deuxième niveau ont été numéro- 35 tés 10 et 11). Ainsi, l'ensemble de routage du deuxième niveau de hiérarchie comporte : - R1 éléments de routage entrant 10 reliés chacun à un des éléments de routage entrant 8 de prem=_er niveau 5 de chaque groupe de premier niveau et à un des ports d'entrée, - SI éléments de routage sortant 11 reliés chacun à un des éléments de routage sortant 9 de premier niveau de chaque groupe G1 de premier niveau, à une partie des 10 éléments de routage entrant 10 de deuxième niveau et à un des ports de sortie. On comprend qu'ainsi le groupe Gn.i de niveau hiérarchique n+1 comprend des groupes Gn de niveau hiérarchique n et un ensemble de routage de niveau n+1 qui est 15 relié aux ensembles de routage de niveau n et qui comprend yn sous-ensembles de routage de même type que les ensembles de routage de niveau n. Les blocs logiques 7 sont ici au nombre de 16 regroupés en quatre groupes de premier niveau de 4 blocs 20 logiques 7 (ou clusters) et possèdent chacun six entrées et deux sorties. Chaque groupe de premier niveau comprend : - six éléments de routage entrant 8 de premier niveau ayant quatre sorties reliées chacune à une entrée 25 de tous les blocs logiques 7 de son groupe de premier ni-veau, - deux éléments de routage sortant 9 de premier niveau ayant quatre entrées reliées chacune à 1a sortie de chacun des blocs logiques 7 de son groupe de premier 30 niveau et trois sorties reliées chacune à une entrée de tous les éléments de routage entrants 8 de premier niveau de ce groupe. Le groupe de deuxième niveau incorpore les quatre groupes de premier niveau et l'ensemble de routage de 35 deuxième niveau qui comprend trois sous-ensembles de rou- tage identiques aux ensembles de routage de premier ni-veau, comprenant chacun : - six éléments de routage entrant 10 de deuxième niveau ayant chacun quatre sorties reliées chacune à une entrée d'un des éléments de routage entrant 8 de premier niveau de chaque groupe de premier niveau et deux entrées externes reliées chacune aux ports de sortie O' des commutateurs d'interconnexion 2 qui sont adjacents à l'unité logique 3 considérée, - deux éléments de routage sortant 11. de deuxième niveau ayant quatre entrées reliées chacune à une sortie d'un des éléments de routage sortant 9 de premier niveau de chaque groupe de premier niveau, et trois sorties reliées, d'une part, à une entrée de chacun des éléments de routage entrant 10 de deuxième niveau de l'ensemble de routage concerné et, d'autre part, aux ports d'entrée I' des commutateurs d'interconnexion 2 adjacents. La figure 3 représente ainsi un groupe de deuxième niveau comportant quatre groupes de premier ni- veau. Les commutateurs d'interconnexion 2 et les unités logiques 3 ont ainsi une structure arborescente selon laquelle il possible de relier deux points du réseau par un chemin unique en montant ou en descendant dans l'arborescence. Ceci permet d'avoir une bonne prédictibilité des temps de routage. Le mode de fabrication des circuits intégrés formant les réseaux logiques programmables ne fait pas l'objet de la présente invention. Il en est de même des principes de programmation des blocs logiques 7, des uni-tés de routage 4, 5, 6, des éléments de routage 8, 9, 10, 11 et des commutateurs d'interconnexion 2 qui sont connus en eux-mêmes et ne sont donc pas décrits ici. Bien entendu, l'invention n'est pas limitée au mode de réalisation décrit mais englobe toute variante entrant dans le champ de l'invention tel que définie par les revendications. L'unité logique décrite comprend des groupes de premier niveau (ou niveau inférieur) et un groupe de deuxième niveau (ou niveau supérieur). Dans l'unité logique, il est possible d'avoir plus de deux niveaux et par exemple des groupes de niveaux intermédiaires entre le groupe de niveau inférieur et le groupe de niveau supérieur. Dans l'unité logique, il serait possible d'avoir une architecture en maillage. Les nombres d'entrées et de sorties des ports, d'unités de routage et de blocs logiques, de même que leur répartition en paires ou en groupes peuvent: être mo- difiés. Ainsi, le nombre n d'éléments logiques, qui vaut 16 dans le mode de réalisation décrit peut être différent et par exemple égal à 8, 12 ou 32... Dans une version moins efficace, le réseau conforme à l'invention est réalisé à partir de commuta- teurs d'interconnexion et/ou d'unités logiques de struc- tures différentes de celles décrites ci-dessus. Cette architecture peut être mise en oeuvre pour des applications de FPGA embarqué (ou "embedded") ou sur circuit dédié (ou "stand alone"). REVENDICATIONS1. Commutateur d'interconnexion (2) de réseau logique programmable, comportant des ports d'entrée regrou- pant une pluralité d'entrées (I, I') et des ports de sortie regroupant une pluralité de sorties(O, O'), caractérisé en ce que les entrées et les sorties sont reliées à une structure arborescente de liaison descendant des entrées vers les sorties et comportant des éléments de rou- tage (4, 5, 6) organisés selon plusieurs niveaux pour relier par un chemin unique chaque entrée de tous les ports d'entrée à au moins une sortie de chaque port de sortie. 2. Commutateur d'interconnexion (2) selon la revendication 1, dans lequel : - les ports de sortie comprennent des ports de sortie vers des commutateurs d'interconnexion voisins (0) et des ports de sortie vers des unités logiques voisines (O'), - les ports d'entrée comprennent des ports 20 d'entrée depuis les commutateurs d'interconnexion voisins (I) et des ports d'entrée depuis les unités logiques voi- sines (I'), - les éléments de routage comprennent des premiers éléments de routage (4) disposés entre les ports 25 d'entrée depuis les commutateurs d'interconnexion voisins et les ports de sortie vers les commutateurs d'interconnexion voisins ; des deuxièmes éléments de routage (5) disposés entre, d'une part, les ports d'entrée depuis les unités logiques et, d'autre part, les premiers 30 éléments de routage et des troisièmes éléments de routage, les troisièmes éléments de routage (6) étant disposés entre, d'une part, les premiers éléments de routage et les deuxièmes éléments de routage et, d'autre part, les ports de sortie vers les unités logiques. 35 3. Commutateur d'interconnexion selon la revendi-cation 2, dans lequel : - les premiers éléments de routage (4; ont des entrées reliées chacune à une entrée de chaque port d'entrée depuis les commutateurs d'interconnexion voisins (I), au moins une entrée reliée à une sortie d'un des deuxièmes éléments de routage (5), des sorties reliées chacune à une sortie de chaque port de sortie vers les commutateurs d'interconnexion voisins (0) et des sorties reliées chacune à une entrée d'un des troisièmes éléments de routage (6) ; - les deuxièmes éléments de routage (5) ont des entrées reliées chacune à une des entrées de chaque port d'entrée depuis les unités logiques (I') et des sorties reliées chacune à l'entrée correspondante d'une partie des premiers éléments de routage et à une des entrées d'une partie des troisièmes éléments de routage - les troisièmes éléments de routage ont des entrées reliées aux sorties des premiers et deuxièmes éléments de routage et des sorties reliées chacune à une des sorties de chaque port de sortie vers les unités logiques (0�. 4. Commutateur d'interconnexion selon la revendication 3, dans lequel chaque port d'entrée depuis les commutateurs d'interconnexion (I) possède M entrées, cha- que port de sortie vers les commutateurs d'interconnexion (0) possède M sorties, chaque port d'entrée depuis les unités logiques (I') possède N entrées, chaque port de sortie vers les unités logiques (O') possède P sorties, et dans lequel les premiers éléments de routage (4) sont au nombre de M, les deuxièmes éléments de routage (5) sont au nombre de N et les troisième éléments de routage (6) sont au nombre de P. 5. Unité logique (3) de réseau logique programmable, comportant des blocs logiques (7) reliés à des ports d'entrées regroupant une pluralité d'entrées et des portsde sorties regroupant une pluralité de sorties, caractérisé en ce que les entrées, les sorties et :Les blocs logiques sont reliées à une structure arborescente de liai-son descendant des ports d'entrées vers les blocs logi- ques et montant des blocs logiques vers des ports de sorties et comportant des éléments de routage entrant (8, 9) et des éléments de routage sortant (10, 11) organisés selon plusieurs niveaux, les éléments de routage entrant reliant par un chemin unique chaque entrée de tous les ports d'entrée à tous les blocs logiques et les éléments de routage sortant reliant par un chemin unique chaque sortie d'un bloc logique à tous les ports de sorties et aux éléments de routage entrant du même groupe. 6. Unité logique selon la revendication 5, dans laquelle chaque unité logique (3) possède L niveaux hiérarchiques qui comportent chacun au moins un groupe Gn regroupant au moins : - Rn entrées et Sn sorties, - Qn groupes Gn-1 appartenant au niveau hiérarchi- que n-1 ayant chacun Rn-1 entrées et Sn-1 sorties, - Rn-1 éléments de routage entrant (8) reliés cha- cun à tous les Qn groupes Gn-1, - Sn-1 éléments de routage sortant (9) reliés à tous les Qn groupes Gn-1 et à un ensemble des éléments de routage entrant de ce groupe, chaque groupe du niveau le plus bas correspondant à un bloc logique. 7. Réseau logique programmable comportant des commutateurs d'interconnexion (2) reconfigurables et des unités logiques (3) reconfigurables reliées entre eux par un maillage de communication tel que : - chaque commutateur d'interconnexion est relié directement à quatre commutateurs d'interconnexion voisins, - chaque unité logique possède huit unités logi-ques voisines et est reliée à chacune d'elles par l'intermédiaire d'un commutateur d'interconnexion. - au moins un chemin unique est défini entre deux points du réseau. 8. Réseau selon la revendication 7, dans lequel les commutateurs d'interconnexion sont conformes à l'une des revendications 1 à 4. 9. Réseau selon la revendication 7 ou la revendication 8, dans lequel les unités logiques sont conformes à l'une quelconque des revendications 5 et 6.