Brevet FR2936384A1 — publié le 20100326

B9029 - 08-GR2-180 1 DISPOSITIF D'ÉCHANGE DE DONNÉES ENTRE CCI*D?OSANTS D'UN CIRCUIT INTÉGRÉ Domaine de l'invention La présente invention concerne un dispositif et un procédé d'échange de données ou messages entre modules, par exemple des microprocesseurs ou des mémoires, d'un circuit intégré. Exposé de l'art antérieur De façon générale, l'échange de données entre modules d'un circuit intégré est réalisé par l'intermédiaire d'un module d'interconnexion (en anglais Interconnect). On appelle module maître ou module initiateur un module relié au module d'inter-connexion pouvant initier un échange de données et on appelle module cible ou module esclave un module, relié au module d'interconnexion, qui ne peut que répondre à une requête d'un module initiateur. Selon un exemple classique de dispositif d'échange de données, le module d'interconnexion comprend un bus d'échange de données, qui est partagé entre les modules du circuit intégré, et un module d'arbitrage qui commande l'accès au bus. Le bus se divise, par exemple, en un bus de transmission d'adresses d'emplacements d'une mémoire et un bus de transmission de données. Toutefois, la gestion du transfe=t de messages sur un B9029 - 08-GR2-180 2 bus partagé devient difficile dès que le nombre de modules initiateurs et cibles raccordés au bus est important, notamment en raison du fait que toutes les requêtes doivent transiter par le module d'arbitrage. Un autre exemple de dispositif d'échange de données concerne les réseaux sur puce (en anglais Network on Chip ou NoC) pour lesquels les données sont échangées par paquets, au moins un paquet comprenant un en-tête identifiant le module cible auquel le paquet est destiné. Il s'agit, par exemple, de la technologie commercialisée par la société ST Microelectronics sous l'appellation STNoC. Les modules initiateurs et/ou les modules cibles sont généralement répartis en plusieurs emplacements du circuit intégré et, pour chaque module initiateur et cible, le module d'interconnexion comprend des éléments de logique conditionnelle, par exemple des multiplexeurs, par l'=_ntermédiaire desquels les données à transmettre sont sélectionnées. Avec l'augmentation du nombre de modules initiateurs et cibles et les contraintes actuelles relatives aux dimensions des circuits intégrés, il devient de plus en plus difficile de concevoir le module d'interconnexion, c'est-à-dire de disposer au niveau du circuit intégré les éléments constituants le module d'inter-connexion de façon à relier tous les modules initiateurs et cibles du circuit intégré. La qualité de service d'un dispositif d'échange de données peut se définir comme la capacité du dispositif à transmettre dans de bonnes conditions des données en termes de disponibilité, de débit, de délais de transmission, etc. L'un des paramètres définissant la qualité de service est la latence qui correspond à la durée s'écoulant entre l'émission d'une requête par un module initiateur et la réalisation de l'opération objet de la requête. Un autre paramètre est la bande passante (de l'anglais Bandwidth) qui correspond à la quantité de données que l'on peut faire transiter par le module d'inter- connexion pendant une durée donnée. Un autre paramètre de la B9029 - 08-GR2-180 3 qualité de service correspond à la capacité du dispositif à offrir aux modules initiateurs et cibles des débits et des temps de réponse différenciés par modules. On parle alors d'attribution des ressources du dispositif d'échange de données. Il s'avère difficile avec les dispositifs d'échange de données existants d'obtenir une qualité de service satisfaisante. En particulier, l'attribution différenciée selon les modules et modifiable dans le temps des ressources du dispositif d'échange de données est difficile à mettre en oeuvre de façon simple. Résumé La présente invention vise à résoudre tout ou partie des inconvénients décrits précédemment ainsi que d'autres. En particulier, la présente invention vise à supprimer l'utilisation d'éléments de logique conditionnelle au niveau du module d'interconnexion pour faciliter la conception d'un dispositif d'échange de données entre modules d'un circuit intégré. Selon un autre objet, le dispositif d'échange de données permet, de façon simple, de modifier l'attribution des ressources entre les modules initiateurs. Pour atteindre tout ou partie de ces objets, ainsi que d'autres, un exemple de réalisation de la présente invention prévoit un procédé de transmission de messages à partir de premiers modules d'un circuit intégré vers au moins un second module du circuit intégré. Les premiers modules génèrent des premiers messages numériques et les transforment en seconds mes-sages numériques obtenus par application d'une transformation orthogonale ou quasi-orthogonale aux premiers messages. Les seconds messages des premiers modules sont additionnés puis transmis au second module. Selon un exemple de réalisation de l'invention, le procédé comprend les étapes suivantes : (a) amener chaque premier module, pour chaque premier message à transmettre, à fournir, à des cycles successifs, les B9029 - 08-GR2-180 4 seconds messages en appliquant la transformation orthogonale ou quasi-orthogonale audit premier message ; (b) fournir, à chaque cycle, un troisième message par addition des seconds messages fournis par les premiers modules 5 audit cycle ; (c) transmettre successivement les troisièmes messages au second module ; et (d) amener le second module à décoder les troisièmes messages pour obtenir à nouveau les premiers messages. 10 Selon un exemple de réalisation de l'invention, un vecteur parmi des vecteurs orthogonaux est associé à chaque premier module. A l'étape (a), pour chaque premier module, les bits à une position donnée des seconds messages sont obtenus à partir du bit à la position donnée du premier message et du 15 vecteur associé. A l'étape (d), le bit da premier message de l'un des premiers modules à la position donnée est obtenu à partir des bits à la position donnée des troisièmes messages. Selon un exemple de réalisation de l'invention, le procédé consiste à modifier l'attribution des vecteurs selon les 20 premiers modules dans le temps. Selon un exemple de réalisation de l'invention, le procédé consiste à attribuer, à au moins l'un des premiers modules, plusieurs vecteurs parmi les vecteurs orthogonaux, ledit premier module transmettant simultanément plusieurs seconds 25 messages obtenus à partir des premiers messages et desdits plu-sieurs vecteurs associés. Selon un exemple de réalisation ce l'invention, chaque vecteur est obtenu à partir de l'une des lignes d'une matrice correspondant à la représentation binaire d'une matrice d'Hadamard. 30 Selon un exemple de réalisation de l'invention, à l'étape (d), le bit du premier message de l'un des premiers modules à la position donnée est obtenu à partir des bits à la position donnée des troisièmes messages et de la ligne associée de la matrice d'Hadamard. B9029 - 08-GR2-180 Un exemple de réalisation de la présente invention prévoit également un circuit intégré comprenant des premiers modules et au moins un second module reliés à un module d'interconnexion. Les premiers modules sont adaptés à fournir 5 des seconds messages numériques par application d'une transformation orthogonale ou quasi-orthogonale à des premiers messages numériques. Le module d'interconnexion comprend des additionneurs adaptés à additionner les seconds messages des premiers modules et un bus de transmission des seconds messages additionnés jusqu'au second module. Selon un exemple de réalisation de l'invention, le module d'interconnexion ne comprend pas d'éléments de logique conditionnelle. Selon un exemple de réalisation de l'invention, chaque premier module est adapté, pour chaque premier message à transmettre, à fournir, à des cycles successifs, les seconds messages en appliquant la transformation orthogonale ou quasi-orthogonale au premier message. Les additionneurs sont adaptés, à chaque cycle, à fournir un troisième message par addition des seconds messages fournis par les premiers modules audit cycle. Le bus de transmission est adapté à transmettre successivement les troisièmes messages au second module. Le second module est adapté à décoder les troisièmes messages pour ob-venir à nouveau les premiers messages. Selon un exemple de réalisation de l'invention, un vecteur parmi des vecteurs orthogonaux est associé à chaque premier module. Chaque premier module est adapté à fournir les bits à une position donnée des seconds messages à partir du bit à la position donnée du premier message et du vecteur associé. Le second module est adapté à fournir le bit du premier message de l'un des premiers modules à la position donnée à partir des bits à la position donnée des troisièmes messages. Selon un exemple de réalisation de l'invention, le circuit comprend un module de commande adapté à modifier l'attribu-35 tion des vecteurs selon les premiers modules dans le temps. B9029 - 08-GR2-180 6 Selon un exemple de réalisation de l'invention, le circuit comprend un nombre P d'additionneurs. Chaque second message est codé sur un nombre M de bits. Les additionneurs forment une succession d'additionneurs. Chaque additionneur est 5 relié à l'un des premiers modules par une liaison parallèle de transmission d'au moins du nombre M de bits. L'un des additionneurs est relié au second module par le bus de transmission. Ledit bus de transmission est adapté à la transmission en parallèle d'un nombre T de bits avec : T = Ceil(Log2(P)*M)+Y où Oeil correspond à la fonction partie entière par excès, où Log2 correspond à la fonction logarithme en base 2 et où Y est un nombre entier, éventuellement nul, correspondant à des bits n'appartenant pas aux troisièmes messages. Selon un exemple de réalisation de l'invention, au moins l'un des premiers modules est re=lié à l'additionneur associé par une liaison parallèle de transmission d'un nombre de bits égal au produit du nombre M et d'un nombre entier supérieur ou égal à 2. 20 Un exemple de réalisation de la présente invention prévoit également un appareil électronique comportant un circuit intégré tel que défini précédemment. Brève description des dessins Ces objets, caractéristiques et avantages, ainsi que 25 d'autres seront exposés en détail dans la description suivante d'exemples de réalisation particuliers faite à titre non- limitatif en relation avec les fig=es jointes parmi lesquelles : la figure 1 représente, de façon schématique, un 30 dispositif d'échange de données d'un circuit intégré ; la figure 2 illustre, de façon partielle et schéma- tique, un exemple classique de réalisation d'un module d'inter- connexion ; la figure 3 représente, de façcn partielle et sché-35 matique, un exemple de réalisation d'un dispositif d'échange de 10 15 B9029 - 08-GR2-180 7 données selon l'invention illustrant la transmission de données de modules initiateurs vers des modules cibles d'un circuit intégré ; la figure 4 représente, sous la forme d'un schéma par 5 blocs, un exemple de procédé de transmission de données par le dispositif de la figure 3 ; la figure 5 représente, de façon schématique, un chronogramme de transmission de données par un dispositif d'échanges classique et par le dispositif d'échanges de la 10 figure 3 ; la figure 6 illustre, de façon schématique, un exemple d'évolution de l'attribution entre les modules initiateurs des ressources du dispositif d'échange de données de la figure 3 ; et la figure 7 représente, de façon partielle et 15 schématique, un exemple de réalisation d'un dispositif d'échange de données selon l'invention illustrant la transmission de données des modules cibles vers les modules initiateurs. Description détaillée Par souci de clarté, de mêmes éléments ont été désignés 20 par de mêmes références aux différentes figures. La figure 1 représente, sous la forme d'un schéma par blocs, un exemple de réalisation d'un dispositif d'échange de données 5 d'un circuit intégré 10. Le circuit intégré 10 comprend un nombre P de modules 25 initiateurs 12 Unit', Init2, ..., Initp) adaptés à échanger des données avec un nombre N de modules cibles (Target1, Target2, TargetN) 14. Un module initiateur correspond, par exemple, à un processeur, à une interface avec un bus externe, etc. Un module cible 14 correspond, par exemple, à une mémoire vive. Le 30 nombre P est au moins supérieur ou égal à 2. Le nombre N peut être égal à 1. L'échange de données est réalisé par l'intermédiaire d'un module d'interconnexion 16 (Interconnect). Chaque module initiateur 12 et chaque module cible 14 est adapté à échanger avec le module d'interconnexion 16 des messages ayant 35 chacun un nombre M de bits. B9029 - 08-GR2-180 8 La figure 2 représente, de façon schématique et partielle, un exemple de réalisation classique d'un module d'inter-connexion 16 à bus partagé pour la transmission d'un signal à 1 bit depuis trois modules initiateurs 12 (Initl, Init2 et Init3) vers un module cible 14 (Targetl). Le moc.ule initiateur Initl fournit un signal à un bit S1 à une première entrée d'un multiplexeur 18. Le module initiateur Init2 fournit un signal à un bit S2 à la seconde entrée du multiplexeur 18. Le multiplexeur 18 est commandé par un signal de commande Cl fourni par un module d'arbitrage 19 (Arbiter). La sortie S1 du multiplexeur 18 est fournie à une entrée d'un multiplexeur 20. Le module initiateur Init3 fournit un signal S3 à un bit à la seconde entrée du multiplexeur 20. Le multiplexeur 20 est commandé par un signal de commande C2 fourni par un module d'arbitrage 21 (Arbiter). La sortie 02 du multiplexeur 20 est fournie au module cible 14. En fonction des signaux de commande Cl et C2 fournis par les modules d'arbitrage 19, 21, le module cible 14 reçoit l'un des signaux S1, S2 ou S3. L'ensemble comprenan: les modules d'arbitrage 19, 21, les multiplexeurs 18, 20 et les liaisons entre les multiplexeurs 18, 20 et les modules InitL à Init3 et Targetl constitue le module d'interconnexion 16. Avec le module d'interconnexion 16, seul le message fourni par l'un des modules initiateurs peut être effectivement transmis à l'un des modules cibles à un instant donné. En outre, la sélection du message à transmettre étant réalisée par l'intermédiaire d'éléments de logique conditionnelle, par exemple des multiplexeurs, il apparaît que la conception du module d'inter-connexion 16 devient rapidement complexe lorsque le nombre de modules initiateurs croît, notamment en raison du fait que les modules initiateurs sont généralement répartis à différents emplacements du circuit intégré. En outre, la présence d'éléments de logique conditionnelle au niveau du module d'interconnexion 16 conduit à une limitation en fréquence du transfert de données. Un exemple de réalisation de la présente invention prévoit un dispositif d'échange de données comprenant un module B9029 - 08-GR2-180 9 d'interconnexion qui ne comprend pas d'éléments de logique conditionnelle. Pour ce faire, un exemple de réalisation de la présente invention prévoit de coder chaque message initial à transmettre par un module initiateur selon une transformation orthogonale ou quasi-orthogonale. Les messages codés fournis par les modules initiateurs sont alors additionnés pour former des messages intermédiaires transmis sur le bus partagé. A partir des messages intermédiaires, un module de décodage extrait les différents messages initiaux qui sont fournis aux modules cibles correspondants. Le module d'interconnexion ne comprend donc que des additionneurs. La conception du module d'interconnexion est ainsi simplifiée. De façon avantageuse, les messages initiaux correspondent à des messages qui seraient fournis par un procédé de transmission de messages par paquets sur un réseau sur puce. La figure 3 représente un exemple de réalisation selon l'invention d'un dispositif d'échange de données 25 d'un circuit intégré 30. Dans le présent exemple de réalisation, le circuit 30 comprend un seul module cible 14 (Targetl). Le dispositif 25 comprend un module de codage 32 au niveau de chaque module initiateur 12 et un module d'interconnexion 34 comprenant des additionneurs 35 (ADD2, ..., ADDp) reliés l'un à la suite de l'autre. A titre de variante, un module de codage 32 peut être commun à plusieurs modules initiateurs 12. Chaque module de codage 32 fournit, à partir d'un message initial à transmettre, un nombre Q de messages codés, ayant chacun M bits, à des cycles de fonctionnement successifs au module d'interconnexion 34. Le module d'interconnexion 34 réalise, à chaque cycle successif, la somme des P messages codés pour obtenir un message intermédiaire codé sur T bits. Chaque message intermédiaire est fourni à un module de décodage 36. A partir des Q messages intermédiaires reçus, le module de décodage 36 détermine les messages initiaux qui sont transmis au module cible 14. Plus précisément, chaque additionneur ADDi, où i est un entier compris entre 3 et P, reçoit le message codé fourni par le module de codage 32 associé au module initiateur Initi et B9029 - 08-GR2-180 10 le message fourni par l'additionneur ADDi_l. L'additionneur ADD2 reçoit les messages fournis par les modules de codage 32 associés aux modules initiateurs Initl et Init2. L'additionneur ADDp fournit le message intermédiaire au module de décodage 36. Selon un autre exemple de réalisation, le circuit 30 comprend plusieurs modules cibles 14. Un même module de décodage 36 peut alors être relié à chaque module cible et, après décodage, diriger chaque message initial vers le module cible 14 auquel le message initial est destiné. A titre de variante, chaque module cible 14 peut comprendre son propre module de décodage 36. Le circuit intégré 30 comprend également un module de commande 38 (Controller) recevant un signal S fourni par le module cible 14 et fournissant un signal de commande COM aux modules initiateurs 12. Dans la suite de la description, on appelle message initial mesi le message à transmettre par le module initiateur Initi, où i varie entre 1 et P. En outre, on appelle bit_mesi,j le bit à la position j du message mesi, où j varie entre 1 et M. On appelle message codé mes'i,k le message codé fourni à un instant tk, où k varie entre 1 et Q, par le module initiateur Initi à partir du message mesi. On appelle bit_mes'i,k,j le bit à la position j du message codé mes'i,k. On appelle mes_intk le message intermédiaire reçu par le module de décodage 36 à l'instant k. La figure 4 représente, sous la forme d'un schéma par blocs, un exemple de procédé de transmission de messages depuis les modules initiateurs 12 vers le module cible 14. A l'étape 40, chaque module initiateur Initi prépare le message initial mesi à transmettre. A titre d'illustration, on considère que P est égal à 3 et que M est égal à 4. Les messages initiaux à transmettre par les modules initiateurs Init1, Init2 et Init3 sont, par exemple, donnés par les relations suivantes : mes' _ "0 1 0 1" (1) B9029 - 08-GR2-180 11 mes2 = "1 1 0 0" mes3 = "0 0 1 1" A l'étape 42, le module de codage 32 du module initiateur Initi détermine les messages codés mes'i,k à transmettre, où k varie entre 1 et Q, à partir du message initial mesi. Dans le présent exemple de réalisation, pour permettre la transmission simultanée de messages par les P modules initiateurs 12, le codage met en oeuvre des vecteurs de codage Vh, où h est un entier compris entre 1 et P. Les vecteurs de codage Vh sont obtenus à partir d'une matrice d'Hadamard. Il s'agit de vecteurs de dimension P+1. On appelle coor_Jh,q la coordonnée de position q du vecteur de codage Vh. Pour obtenir les vecteurs de codage, on utilise la fonction d'Hadamard H suivante de dimension (P+1)*(P+l) : 1 1 1 1 1 1 - 1 1 - 1 H = 1 1 - 1 - 1 (2) 1 - 1 - 1 1 J On appelle Hh,g l'élément de la matrice H à la ligne h et à la colonne g. On détermine alors une pseudomatrice d'Hadamard H' obtenue en remplaçant chaque valeur "1" de la matrice d'Hadamard H par la valeur "0" et chaque valeur "-l" par la valeur "1". La matrice H' correspond à la représentation binaire de la matrice H. La matrice H' correspondant à la matrice H de la relation (2) est la suivante : 0 1 0 1 H' = 0 0 1 1 0 1 1 0 La premièré ligne della matrice H' n'est pas prise en compte, ce qui est indiqué par les symboles "x". On appelle H'h,g l'élément de la matrice H' à la ligne h et à la colonne g. Les coordonnées coor_Vh,q du vecteur de codage Vh sont 35 définies à partir de la matrice H' de la façon suivante : (3) B9029 - 08-GR2-180 12 coor Vh,q = H'h+l,q (4) Dans le présent exemple donné à titre d'illustration, les vecteurs de codage V1, V2, V3 sont : 1 0 1 V1 = 0 V2 = 1,V3 = 1 1~ X11 0) (5) Dans le présent exemple de réalisation, on associe le vecteur de codage Vi au module initiateur Initi. Pour chaque message initial mesi, le module de décodage détermine le nombre Q de messages codés mes'i,k où k varie de 1 à Q. Dans le présent exemple de réalisation, Q est égal à P+l. Plus précisément, pour chaque bit bit mesi,j du message initial mesi, le module de codage 32 associé détermine le bit bit mes'i,j,k du message codé mes'i,k de la façon suivante : bit_mes' i , j , k = bit _mesi , j coor__Vi, k (6) où le symbole O correspond à l'opération logique "OU Exclusif" (en anglais XOR). Avec les messages initiaux mes', mes2 et mesi de l'exemple précédent donné à titre d'illustration, on obtient les messages codés suivants : (7) mes'1,1 = "0 1 0 1" mes'2,1 = "1 1 0 0" mes'3,1 = "0 0 1 1" mes'1,2 = "1 0 1 0" mes'2,2 = "1 1 0 0" mes'312 = "1 1 0 0" mes'1,3 = "0 1 0 1" mes'2,3 = "0 0 1 1" mes'3,3 = "1 1 0 0" mes'1,4 = "1 0 1 0" mes'2,4 = "0 0 1 1" mes'3~4 = "0 0 1 1" A l'étape 44, les messages mes'i,k sont successivement fournis au module d'interconnexion 34 aux instants successifs tk où k varie entre 1 et P+l. Les messages codés mes'i,k sont additionnées bits à bits par les additionneurs 35 lors de leur transmission vers le module de décodage 6. Le message intermédiaire mes_intk, reçu à l'instant tk par le module de décodage 36, est constitué de la juxtaposition de M messages élémentaires el mess intk,j où j varie entre 1 et M. La valeur numérique de B9029 - 08-GR2-180 13 chaque message élémentaire el_mess_intk,j est donnée par la relation suivante : P el _ mes _ intk,j = E bit _ mes'i,k,j (8) i=1 Lors des additions des messages codés mes'i,k, i variant de 1 à p, pour transmettre le message intermédiaire mes intk, le nombre de "fils conducteurs" constituant le module d'interconnexion 34 et reliant les additionneurs 35 entre eux jusqu'au module de décodage 36, croît régulièrement pour per-mettre le codage sous forme binaire des messages intermédiaires élémentaires el mes intk,j. En effet, le nombre de bits T du message intermédiaire mes_intk, c'est-à-dire le nombre de "fils conducteurs" entre l'additionneur ADDp associé au module initiateur Initp et le module de décodage 36, est donné par la relation suivante : T = Ceil (Log2 (P) *M) (9) où Oeil correspond à la fonction partie en-:ière par excès et où Log2 correspond à la fonction logarithme en base 2. En pratique, le nombre T peut être légèrement supérieur à la valeur donnée par la relation (9), certains bits du message mes_intk pouvant être réservés à d'autres fonctions. Dans l'exemple donné à titre d'illustration, en représentant les messages intermédiaires, non pas sous forme binaire, mais sous la forme d'un vecteur ligne dont les coordonnées correspondent aux valeurs numériques des messages intermédiaires élémentaires, les messages intermédiaires sont donnés par les relations suivantes : mes int1="l 2 1 2" (10) mes int2="3 2 1 0" mes int3="l 2 1 2" mesint4="l 0 3 2" A l'étape 46, le module de décodage 36 détermine les 35 messages initiaux mesi, où i varie entre 1 et P, à partir des B9029 - 08-GR2-180 14 messages intermédiaires mes_intk où k varie entre 1 et Q=P+1. Pour ce faire, le module de décodage utilise la matrice d'Hadamard H. Le bit bit_mesi, est obtenu de la façon suivante : P+l bit _ mesi,i = sign( E Hi+l,k * el _ mes _ intk,i) (11) k=1 où sign correspond à la fonction signe, sign(x) étant égal à "1" lorsque la valeur x est positive ou nulle et égal à "0" dans le 10 cas contraire. Dans l'exemple précédent donné à titre d'illustration, les bits du message initial mes' sont obtenus de la façon suivante : bit_mesl,l sign(1-3+1-1) = sign(-2) = "0" (12) 15 bitmes',2 sign(2-2+2-0) = sign(2) = "1" bitmes',3 sign(1-1+1-3) = sign(-2) = "0" bit_mes',4 = sign(2-0+2-2) = sign (2) = "1" A l'étape 48, le module de décodage 36 transmet les messages initiaux reconstitués au module cible 14. 20 La figure 5 illustre, de façon schématique, l'ordre de succession de transmission de messages par un dispositif d'échange de données classique et par le dispositif d'échange de données selon le présent exemple de réalisation dans l'exemple précédent donné à titre d'illustration dans lequel trois modules 25 initiateurs Init', Init2, et Init3 doivent transmettre chacun un message, respectivement mes', mes2 et mes3. Pour un dispositif d'échange de données classique, les modules initiateurs transmettent successivement chacun leur message. A titre d'exemple, à l'instant le module initiateur 30 Init' transmet le message mes', les autres modules initiateurs ne transmettant aucun message, à l'instant t2, le module initiateur Init2 transmet le message mes2, les autres modules initiateurs ne transmettant aucun message et à l'instant t3, le module initiateur Init3 transmet le message mes3, les autres 35 modules initiateurs ne transmettant aucun message. B9029 - 08-GR2-180 15 Selon le présent exemple de réalisation de l'invention, à l'instant t1, les modules initiateurs transmettent simultanément les messages codés mes'1,1, mes'2,1 et mes'3,1. A l'instant t2, les modules initiateurs transmettent simultanément les messages codés mes'1,2, mes'2,2 et mes'3,2. A l'instant t3, les modules initiateurs transmettent simultanément les messages codés mes'1,3, mes'2,3 et mes'3,3 et à l'instant t4, les modules initiateurs transmettent simultanément les messages codés mes' 1, 4, mes' 2, 4 et mes' 3, 4 . A l'instant t4, le module de déco- dage 36 détermine les trois messages mes1, mes2 et mes3 à partir des messages intermédiaires reçus qui correspondent chacun à la somme des message codés fournis aux instants t1 à t4. A partir de la figure 5, il apparaît que le procédé de transmission de messages selon le présent exemple de réalisation de l'invention requiert un cycle élémentaire de fonctionnement supplémentaire par rapport à un procédé classique pour assurer la transmission des messages mes1, mes2 et mes3. Toutefois, la Demanderesse a mis en évidence que l'accroissement du nombre de cycles est compensé par l'aug- mentation de la fréquence de transmission de données pouvant être mise en oeuvre en raison de la simplification de la structure du module d'interconnexion 34. L'augmentation des performances globales de rapidité de transmission de données du dispositif d'échange de données 25 selon le présent exemple de réalisation par rapport à un dispositif d'échange de données classique, ayant par exemple la structure décrite précédemment en référence avec la figure 2, est indiquée dans le tableau ci-dessous pour plusieurs exemples de nombres de modules initiateurs P : Nombre de modules initiateurs P 3 7 15 31 Accroissement du nombre de cycles 25 % 12 % 6 % 3 % de fonctionnement Augmentation de la fréquence de 30 % 30 % 35 % 35 % fonctionnement Augmentation des performances 5 % 18 % 24 % 27 % B9029 - 08-GR2-180 16 En outre, la Demanderesse a mis en évidence que pour chaque bit bit mesi,j d'un message mesi, il peut ne pas être nécessaire de transmettre tous les bits bit_mes'i,k,j où k varie entre 1 et P+l. Ceci peut permettre de réduire le nombre de bits à transmettre et donc de simplifier encore davantage la structure du module d'interconnexion 34. La figure 6 illustre un exemple de réalisation de l'attribution des ressources du dispositif d'échange de données 25 selon le présent exemple de réalisation de l'invention pour la transmission de messages par les modules initiateurs 12. Selon le présent exemple de réalisation de l'invention, l'attribution de ressources est réalisée en attribuant à chaque module initiateur un nombre de vecteurs de codage Vh, éventuellement nul, qu'il peut utiliser. La répartition des vecteurs de codage entre les modules initiateurs peut varier dans le temps. En attribuant plusieurs vecteurs de codage à un même module initiateur, on permet à un même module initiateur de transmettre simultanément plusieurs messages initiaux. L'attribution des vecteurs de codage entre les modules initiateurs est réalisée par le module de commande 38. En figure 6, on a, à titre d'exemple, représenté des phases de fonctionnement successives AT1, AT2 et AT3 du dispositif d'échange de données 25. Pendant la phase AT1, le vecteur de codage V1 est attribué au module initiateur Init1, le vecteur de codage V2 est attribué au module initiateur Init2 et le vecteur de codage V3 est attribué au module initiateur Init3. Pendant la phase de fonctionnement AT1, à chaque cycle élémentaire de fonctionnement du module d'interconnexion, chaque module initiateur peut transmettre un message codé au module d'interconnexion 34. Pendant la phase de fonctionnement AT2, aucun vecteur de codage n'est attribué au module initiateur Initl, deux vecteurs de codage V1 et V2 sont attribués au module initiateur Init2 et le vecteur de codage V3 est attribué au module initiateur Init3. Ceci signifie que le module initiateur Init2 transmet au module d'interconnexion 34, à chaque cycle B9029 - 08-GR2-180 17 élémentaire de fonctionnement, deux messagjes codés associés à deux messages initiaux différents et que le module initiateur Init3 transmet un message codé associé un unique message initial. Tout se passe comme si le module initiateur Init2 transmettait simultanément deux messages initiaux. Pendant la phase de fonctionnement AT2, le module initiateur Initl ne transmet pas de message. Pendant la phase de fonctionnement AT3, le vecteur de codage VI est attribué au module initiateur Initl, deux vecteurs de codage V2 et V3 sont attribués au module initiateur Init3 et aucun vecteur de codage n'est attribué au module initiateur Init2. Ceci signifie que le module initiateur Init3 transmet au module d'interconnexion 34, à chaque cycle élémentaire de fonctionnement, deux messages codés associés à deux messages initiaux différents. Tout se passe comme si le module initiateur Init3 transmettait simultanément deux messages initiaux. Pendant la phase de fonctionnement AT3, le module initiateur Init2 ne transmet pas de message. De façon à permettre à un module initiateur Initi de transmettre un nombre W de messages codés simultanément, il faut que le module initiateur Initi soit relié à l'additionneur ADDi associé par une liaison permettant la transmission de W fois M bits. Pour permettre l'attribution d'au moins un vecteur de codage supplémentaire à un même module initiateur Initi sans devoir augmenter le nombre de "fils conducteurs" reliant la sortie de l'additionneur ADDi à l'additionneur ADDi+1, il suffit d'attribuer à un module initiateur Initi un vecteur de codage normalement attribué à un module initiateur Initj ou j est strictement inférieur à i. Le présent exemple de réalisation de l'invention permet donc de modifier le débit de transmission autorisé pour chaque module utilisateur. En outre, l'attribution des vecteurs de codage pendant les phases de fonctionnement peut être réalisée par le module de commande 38 de façon logicielle, ce qui permet de l'adapter facilement à chaque type de circuit intégré. L'attribution de ressources selon les phases de fonctionnement B9029 - 08-GR2-180 18 successives peut être fixée une fois pour toutes. A titre de variante, le module de commande 38 peut tenir compte du signal S fourni par le module cible 14 pour modifier l'attribution des vecteurs de commande. Le signal S peut être fourni par le module 14 après décodage des messages fournis par les modules initiateurs. De ce fait, un module initiateur peut émettre une requête d'augmentation de l'attribution de ressources. Cette requête sera alors relayée par le module cible 14 au module de commande 38. Selon une variante, chaque module initiateur ou au moins certains d'entre eux sont reliés directement au module de commande 38 pour transmettre directement au module de commande 38 une requête d'augmentation de l'attribution de ressources. La figure 7 représente un exemple de réalisation du module d'interconnexion 34 illustrant la transmission de messages des modules cibles 14 jusqu'aux modules initiateurs 12. Les modules cibles 14 sont reliés à un module de codage 50 (Cod) adapté à fournir sur un bus de transmission de données 52 des messages codés aux modules initiateurs 12. Chaque module cible 14 est relié au module de codage 50 par une liaison à m bits. Le bus 52 est un bus à T bits. Chaque module initiateur 12 est associé à un module de décodage 54 (Decod) recevant les messages transmis sur le bus 52. La transmission de données des nodules cible 14 vers les modules initiateurs 12 est réalisée de façon analogue à ce qui a été décrit précédemment pour la transmission de données des modules initiateurs 12 vers les modules cibles 14. Les messages à transmettre par les modules cibles 14 sont codés de façon analogue à ce qui a été décrit précédemment, par exemple en utilisant une transformation orthogonale mettant en oeuvre une matrice d'Hadamard. Le message intermédiaire transmis sur le bus 52 est ensuite décodé par chaque module de décodage 54 pour retrouver le message initial destiné au module initiateur 12 associé. Des modes de réalisation particuliers de la présente 35 invention ont été décrits. Diverses variantes et modifications B9029 - 08-GR2-180 19 apparaîtront à l'homme de l'art. En particulier, dans l'exemple de réalisation décrit en relation avec la figure 7, le module de codage 50 est commun aux modules cibles 14. Toutefois, chaque module cible 14 pourrait être associé à un module de décodage qui lui est propre. Dans ce cas, le bus 52 comprend des additionneurs réalisant l'addition des messages fournis par chaque module de codage de façon analogue à ce qui a été décrit précédemment en relation avec la figure 3 pour l'addition des messages codés fournis par les modules de codage associés aux modules initiateurs. En outre, dans l'exemple de réalisation décrit en relation avec la figure 3, entre les additionneurs 35 d'au moins une paire d'additionneurs successifs, on peut prévoir un étage de séquencement à base de bascules (en anglais flip flop), ce qui revient à prévoir une architecture pipeline pour le module d'interconnexion 34. REVENDICATIONS1. Procédé de transmission de messages à partir de premiers modules (12, 32) d'un circuit intégré (30) vers au moins un second module (14, 36) du circuit intégré, caractérisé en ce que les premiers modules génèrent des premiers messages numériques et les transforment en seconds messages numériques obtenus par application d'une transformation orthogonale ou quasi-orthogonale aux premiers messages, les seconds messages des premiers modules étant additionnés puis transmis au second module. 2. Procédé selon la revendication 1, comprenant les étapes suivantes : (a) amener chaque premier module (12, 32), pour chaque premier message à transmettre, à fournir, à des cycles successifs, les seconds messages en appliquant la transformation orthogonale ou quasi-orthogonale audit premier message ; (b) fournir, à chaque cycle, un -troisième message par addition des seconds messages fournis par les premiers modules audit cycle ; (c) transmettre successivement les troisièmes messages 20 au second module (14, 36) ; et (d) amener le second module à décoder les troisièmes messages pour obtenir à nouveau les premiers messages. 3. Procédé selon la revendication 2, dans lequel un vecteur parmi des vecteurs orthogonaux est associé à chaque 25 premier module (12, 36), et dans lequel, à l'étape (a), pour chaque premier module, les bits à une position donnée des seconds messages sont obtenus à partir du bit à la position donnée du premier message et du vecteur associé, et dans lequel, à l'étape (d), le bit du premier message de l'un des premiers 30 modules à la position donnée est obtenu à partir des bits à la position donnée des troisièmes messages. 4. Procédé selon la revendication 3, consistant à modifier l'attribution des vecteurs selon les premiers modules (12, 36) dans le temps.B9029 - 08-GR2-180 21 5. Procédé selon la revendication 3, consistant à attribuer, à au moins l'un des premiers modules (12), plusieurs vecteurs parmi les vecteurs orthogonaux, ledit premier module transmettant simultanément plusieurs seconds messages obtenus à partir des premiers messages et desdits plusieurs vecteurs associés. 6. Procédé selon la revendication 4, dans lequel chaque vecteur est obtenu à partir de l'une des lignes d'une matrice correspondant à la représentation binaire d'une matrice d'Hadamard. 7. Procédé selon la revendication 6, dans lequel, à l'étape (d), le bit du premier message de l'un des premiers modules à la position donnée est obtenu à partir des bits à la position donnée des troisièmes messages et de la ligne associée de la matrice d'Hadamard. 8. Circuit intégré (30) comprenant des premiers modules (12, 32) et au moins un second module (14, 36) reliés à un module d'interconnexion (34), caractérisé en ce que les premiers modules sont adaptés à fournir des seconds messages numériques par application d'une transformation orthogonale ou quasi-orthogonale à des premiers messages numériques, le module d'interconnexion comprenant des additionneurs (35) adaptés à additionner les seconds messages des premiers modules et un bus de transmission des seconds messages additionnés jusqu'au second module. 9. Circuit intégré selon la revendication 8, dans lequel le module d'interconnexion (34) ne comprend pas d'éléments de logique conditionnelle. 10. Circuit intégré selon la revendication 8 ou 9, dans lequel chaque premier module (12, 32) est adapté, pour chaque premier message à transmettre, à fournir, à des cycles successifs, les seconds messages en appliquant la transformation orthogonale ou quasi-orthogonale au premier message, dans lequel les additionneurs (35) sont adaptés, à chaque cycle, à fournir un troisième message par addition des seconds messages fournisB9029 - 08-GR2-180 22 par les premiers modules audit cycle, dans lequel le bus de transmission est adapté à transmettre successivement les troisièmes messages au second module (14, 36), et dans lequel le second module est adapté à décoder les troisièmes messages pour obtenir à nouveau les premiers messages. 11. Circuit intégré selon la revendication 10, dans lequel un vecteur parmi des vecteurs orthogonaux est associé à chaque premier module (12, 32), et dans lequel chaque premier module est adapté à fournir les bits à une position donnée des seconds messages à partir du bit à la position donnée du premier message et du vecteur associé et dans lequel le second module (14, 36) est adapté à fournir le bit du premier message de l'un des premiers modules à la position donnée à partir des bits à la position donnée des troisièmes messages. 12. Circuit intégré selon la revendication 11, comprenant un module de commande (38) adapté à mDdifier l'attribution des vecteurs selon les premiers modules (12 dans le temps. 13. Circuit intégré selon l'une quelconque des revendications 8 à 12, comprenant un nombre P d'additionneurs (35), dans lequel chaque second message est codé sur un nombre M de bits, et dans lequel les additionneurs forment une succession d'additionneurs, chaque additionneur étant relié à l'un des premiers modules (12, 32) par une liaison parallèle de transmission d'au moins du nombre M de bits, l'un des additionneurs étant relié au second module (14, 36) par le bus de transmission, ledit bus de transmission étant adapté à la transmission en parallèle d'un nombre T de bits avec : T = Ceil(Log2(P)*M)+Y où Oeil correspond à la fonction partie entière par excès, où Log2 correspond à la fonction logarithme en base 2 et où Y est un nombre entier, éventuellement nul, correspondant à des bits n'appartenant pas aux troisièmes messages. 14. Circuit intégré selon la revendication 13, dans lequel au moins l'un des premiers modules (12, 32) est relié à 35 l'additionneur (35) associé par une liaison parallèle de trans-B9029 - 08-GR2-180 23 mission d'un nombre de bits égal au produit du nombre M et d'un nombre entier supérieur ou égal à 2. 15. Appareil électronique comportant un circuit intégré selon l'une quelconque des revendications 8 à 14.