Brevet FR3026869A1 — publié le 20160408

Système embarqué sur puce à haute sûreté de fonctionnement DOMAINE TECHNIQUE GENERAL L'invention se rapporte au domaine des systèmes sur puce (« System on Chip - SOC »). L'invention concerne plus particulièrement l'architecture d'un système embarqué sur puce à haute sûreté de fonctionnement. ETAT DE LA TECHNIQUE La présence de systèmes de commande et d'affichage numérique dans les aéronefs modernes nécessite l'utilisation embarquée de moyens de calcul. De tels moyens peuvent se présenter sous la forme de système embarqué sur puce (« System on Chip - SOC »). Un tel système peut comprendre un ou plusieurs modules maîtres de traitement tels des processeurs, et des modules esclaves tels des périphériques d'interface mémoire ou de communication. L'utilisation de tels systèmes sur puce pour des applications critiques comme le pilotage et la surveillance d'un aéronef dans le domaine de l'aéronautique nécessite que ces systèmes présentent une sureté de fonctionnement maximale, toute panne ou anomalie de fonctionnement pouvant avoir des conséquences catastrophiques sur la vie des occupants de l'aéronef. Il est notamment nécessaire de pouvoir prouver le déterminisme du fonctionnement du composant, sa résistance aux pannes et son pire temps d'exécution («VVorst Case Execution Time»). Or les systèmes sur puce existants ne permettent pas d'assurer une sureté de fonctionnement suffisante pour de telles applications critiques. En effet, les différents modules de traitement d'un système sur puce existant partagent 2 3026869 généralement une partie de la mémoire cache et les modules esclaves du système ce qui les rend sujet aux pannes. De plus les systèmes existants ne permettent généralement pas de désactiver leurs modules non utilisés, embarquent un microcode difficilement certifiable et manquent de documentation 5 ce qui rend difficile la preuve du déterminisme de leur fonctionnement. Il existe donc un besoin d'un système sur puce présentant une architecture permettant de prouver sa résistance aux pannes de fonctionnement interne et le déterminisme de son fonctionnement. 10 PRESENTATION DE L'INVENTION La présente invention se rapporte ainsi selon un premier aspect à un système embarqué sur une puce (SoC) comprenant un ensemble de modules maîtres et de modules esclaves, 15 lesdits modules maîtres étant parmi : - un module de traitement principal ayant des droits d'accès prioritaires sur l'ensemble des composants du système embarqué sur puce et un contrôleur d'accès direct à la mémoire (DMA) associé audit module de traitement principal ; - au moins un module de traitement secondaire et un contrôleur d'accès direct à 20 la mémoire (DMA) associé à chaque module de traitement secondaire ; chaque module maître étant configuré pour être connecté à une source d'horloge, une alimentation, et des modules esclaves parmi : - un ensemble de périphériques connectés au module maître par un lien de communication dédié, dits « périphériques de proximité », 25 - au moins une mémoire interne, - un ensemble de périphériques et de mémoires externes partagés par les modules maîtres, 3 3026869 caractérisé en ce que ladite source d'horloge, l'alimentation, les périphériques de proximité et une mémoire cache d'un module de traitement maître et de son contrôleur d'accès direct à la mémoire (DMA) sont dédiés audit module de traitement maître et non 5 partagés avec les autres modules de traitement de l'ensemble de modules maîtres, ladite au moins une mémoire interne de chaque module de traitement maître et de son contrôleur d'accès direct à la mémoire (DMA) est dédiée audit module de traitement maître, ledit module de traitement principal pouvant toutefois y 10 accéder. Une telle architecture permet de ségréger chaque module de traitement accompagné de son contrôleur d'accès direct à la mémoire, de ses périphériques de proximité et de sa mémoire interne du reste du système sur puce. Une telle ségrégation permet de renforcer le déterminisme de fonctionnement du système 15 ainsi que sa résistance aux pannes. Selon une caractéristique avantageuse et non limitative, le système selon le premier aspect peut comprendre au moins deux étages d'interconnexions : - un premier étage connectant chaque module maître à sa mémoire interne, - un deuxième étage connectant les modules maîtres à des modules esclaves de 20 l'ensemble de périphériques et de mémoires externes partagés, lesdits modules esclaves étant distribués, selon leurs fonctions, leurs priorités et/ou leurs besoins en bande passante, sur plusieurs interconnects sans communication directe les uns avec les autres, un interconnect étant constitué de plusieurs ports maîtres reliés à plusieurs ports 25 esclaves au travers d'un ou plusieurs étages de commutateurs (« switchs »), Ceci permet de diminuer le nombre de modules maitres et esclaves connectés à un même interconnect et donc de diminuer la complexité de l'arbitrage et d'améliorer le déterminisme et la sureté du fonctionnement du système sur puce. La sureté de fonctionnement du système est également 4 3026869 renforcée par l'impossibilité de communication directe entre deux modules esclaves connectés à deux interconnects différents sans passer par un module maitre. De plus, ledit deuxième étage d'interconnexion et l'ensemble de 5 périphériques et de mémoires externes partagés peuvent être connectés à une source d'horloge et une alimentation distinctes de celles desdits modules maitres. Ceci renforce la résistance aux pannes du système sur puce. De plus, ledit système peut comprendre un maitre externe apte à être 10 connecté aux périphériques partagés par les interconnects du deuxième étage d'interconnexion. Ceci permet au système sur puce de donner accès à ses modules esclaves à un composant extérieur. Par ailleurs, les périphériques de proximité et la mémoire interne d'un 15 module maitre peuvent être connectés à l'alimentation et à la source d'horloge de ce module maitre. L'interface de communication des périphériques de proximité d'un module maitre avec ce module maître peut être, en alternative, connectée à la source d'horloge de ce module maître. 20 Selon une autre alternative, les périphériques de proximité et la mémoire interne d'un module maitre peuvent être connectées à une alimentation et une source d'horloge dédiées. Ceci renforce la résistance aux pannes du système sur puce en empêchant qu'une panne d'horloge ou d'alimentation puisse affecter les 25 périphériques de proximité ou les mémoires internes de plusieurs modules de traitement. A titre d'exemple, les périphériques de proximité d'un module maître peuvent être parmi un contrôleur de réinitialisation (« reset »), un chien de garde (« watchdog »), un contrôleur d'interruption, un contrôleur de temps réel, des 5 3026869 périphériques spécifiques aux applications aéronautiques, un contrôleur d'accès direct à la mémoire (DMA). Les périphériques de proximité d'un module de traitement secondaire peuvent être parmi un contrôleur de temps réel, un chien de garde 5 (« watchdog »), un contrôleur d'accès direct à la mémoire (DMA), un contrôleur d'interruption. Ceci permet à chaque module de traitement d'accéder directement à ces périphériques toujours avec le même temps d'accès, sans la latence supplémentaire qui pourrait être due à un accès concurrent d'un autre module 10 maitre. Par ailleurs, les interconnects peuvent être parmi : - un interconnect de mémoires externes regroupant un ensemble de modules esclaves contrôleurs de mémoires externes et/ou de liens séries tels que des liens SPI (« Serial Peripheral Interface ») pour l'interface avec les mémoires 15 externes ; - un interconnect de communication regroupant un ensemble de modules esclaves comprenant des périphériques de communication, par exemple parmi : Ethernet, ARINC, UART (« Universal Asynchronous Receiver Transmitter »), SPI (« Serial Peripheral Interface »), AFDX («Avionics Full DupleX switched 20 ethernet »), A429 (ARINC 429), A825 (ARINC 825), CAN (Controller Area Network), I2C. - un interconnect de contrôle regroupant un ensemble de modules esclaves comprenant des périphériques de contrôle pour des applications spécifiques à l'aéronautique, par exemple des modules de contrôle configurés pour mettre en 25 oeuvre des fonctions propres au contrôle moteur ou au calcul de freinage ; - un interconnect de personnalisation connecté à une zone programmable pour l'ajout de fonctions personnalisées ; Ceci permet de limiter le nombre de modules esclaves connectés à chaque interconnect et de regrouper sur un même interconnect les modules 6 3026869 esclaves selon leur fonction afin de diminuer la complexité de la structure interne de ces interconnects. Chaque interconnect peut comprendre des mécanismes de surveillance et de détection de pannes. 5 Ceci permet de surveiller les échanges entre modules au niveau des interconnect afin d'éviter la transmission de commandes ou d'informations erronées ainsi que le blocage d'un interconnect du fait d'un dysfonctionnement d'un des modules. A titre d'exemple les différents étages de commutateurs internes à 10 chaque interconnect peuvent être regroupés de la manière suivante : - les modules maîtres sont regroupés en groupes de modules maitres au niveau d'un premier étage de premiers commutateurs selon les modules esclaves auxquels ils doivent pouvoir se connecter, leur fonction, leur priorité et/ou leur besoin en bande passante, chaque groupe de modules maîtres étant connecté à 15 un commutateur, - les sorties de ces premiers commutateurs sont connectés à un deuxième étage de commutateurs regroupant des modules esclaves en groupes de modules esclaves en fonction des modules maîtres qui y sont connectés, de leur fonction et/ou de leur besoin en bande passante, un seul lien de communication 20 connectant un groupe de modules maîtres et un groupe de modules esclaves. De plus, lesdits modules esclaves peuvent être regroupés en groupes de modules esclaves parmi les groupes suivants : - modules esclaves dédiés au module de traitement principal utilisant un bus de communication rapide, 25 - modules esclaves dédiés au module de traitement principal utilisant un bus de communication lent, - modules esclaves partagés entre les différents groupes de modules maîtres utilisant un bus de communication rapide, 7 3026869 - modules esclaves partagés entre les différents groupes de modules maîtres utilisant un bus de communication lent. Ceci permet de diminuer le nombre et la complexité des chemins physiques internes de l'interconnect et de diminuer le nombre d'étages de 5 commutateurs et le nombre de commutateurs pour que la latence de l'interconnect soit plus faible et l'arbitrage moins complexe. Les modules de traitement peuvent être disposés dans le système embarqué sur puce de manière à être ségrégés physiquement. Ceci permet de réduire la probabilité de panne commune en cas 10 d'altération de type SEU (« Single Event Upset ») ou MBU (« Multiple Bit Upset »). PRESENTATION DES FIGURES 15 D'autres caractéristiques et avantages apparaîtront à la lecture de la description qui va suivre d'un mode de réalisation. Cette description sera donnée en référence aux dessins annexés dans lesquels : - la figure 1 illustre schématiquement l'architecture d'un système sur puce selon un mode de réalisation de l'invention ; 20 - la figure 2 représente un exemple détaillé d'un système sur puce selon un mode de réalisation de l'invention ; - la figure 3 illustre l'architecture d'un interconnect dans un système sur puce selon un mode de réalisation de l'invention ; - la figure 4 représente un exemple d'architecture d'interconnect selon l'état 25 de la technique ; - la figure 5 représente un exemple d'architecture d'interconnect selon un mode de réalisation de l'invention. 8 3026869 DESCRIPTION DETAILLEE En référence à la figure 1, une mode de réalisation de l'invention 5 concerne un système embarqué sur puce 100 (SoC). Un tel système comprend un ensemble de modules maîtres et de modules esclaves. Le système 100 comprend parmi ces modules maitres des modules de traitement tels des processeurs ou des coeurs d'un processeur multicoeurs, de tels processeurs pouvant appartenir à diverses familles de 10 processeurs. Le système 100 comprend notamment parmi ces modules maîtres un module de traitement principal 101a et un ou plusieurs modules de traitement secondaires 101b. Le module de traitement principal a accès à toutes les ressources activées dans le système et contrôle son bon fonctionnement. Les 15 modules de traitement secondaires peuvent être utilisés en tant que coprocesseurs pour fournir une puissance de calcul supplémentaire, des fonctionnalités spécifiques ou permettre une maintenance. Le système sur puce 100 peut comprendre également comme module maitre un contrôleur d'accès direct à la mémoire (DMAO, DMA1) 102a, 102b associé à chaque module de 20 traitement et permettant d'alléger les modules de traitement pour la prise en charge des transferts de données. Un système équivalent pourrait être envisagé sans DMA, les modules de traitement prenant alors en charge les transferts de données avec la mémoire. Chaque module de traitement 101a, 101b comprend une mémoire cache 25 103a, 103b. La mémoire cache de chaque module de traitement lui est propre et n'est pas partagée avec les autres modules de traitement afin d'assurer une ségrégation complète des modules de traitement et de diminuer le risque de défaillance de mode commun. De même, chaque module de traitement est connecté à une source 30 d'alimentation et une source d'horloge qui lui sont propres. Ceci assure 9 3026869 l'indépendance des modules de traitement les uns par rapport aux autres et réduit la probabilité de panne commune en cas de panne de l'alimentation ou de la source d'horloge de l'un des modules de traitement. Les modules de traitement peuvent également être ségrégés 5 physiquement en étant disposés sur le système embarqué en des localisations distinctes et éloignées les unes des autres, par exemple en les disposant chacun à un coin du composant. Ceci permet de réduire la probabilité de panne commune en cas d'altération de type SEU (« Single Event Upset ») ou MBU (« Multiple Bit Upset »). 10 Afin de diminuer les conflits entre les différents modules de traitement, le module de traitement principal 101a est le seul module maitre possédant des droits d'accès à l'ensemble des composants du système sur puce 100. De plus, le module de traitement principal est prioritaire sur tous les autres modules maitres dans tous ces accès aux modules esclaves du système sur puce 100. Le 15 déterminisme du fonctionnement du système sur puce 100 est ainsi renforcé. De plus, le module de traitement principal 101a contrôle l'activation et la désactivation de l'ensemble des autres modules du système sur puce 100, y compris les modules de traitement secondaire. Le module de traitement principal peut réinitialiser un module de traitement secondaire. Le module de traitement 20 principal 101a est également en charge de l'analyse de l'état de santé du système sur puce 100 et de prise de sanctions lors d'une détection de panne. Le module de traitement 101 peut ainsi désactiver les modules qui seraient inutilisés ou qui présenteraient un comportement erroné en cas de panne. Avantageusement, le module de traitement principal 101a est toujours 25 actif. Il est notamment utilisé pour toutes les applications ne nécessitant l'utilisation que d'un seul module de traitement. Par ailleurs, le système 100 peut prévoir une connexion pour un maitre externe 111 de façon à donner accès à celui-ci aux modules esclaves du système sur puce 100. Un tel maitre externe peut consister en un coeur, un 30 processeur ou un microcontrôleur, ou bien en un autre périphérique. 10 3026869 Chaque module maitre peut être connecté à des modules esclaves parmi : - au moins une mémoire interne 104a, 104b, - un ensemble de périphériques connectés au module maître par un lien de 5 communication dédié, dits « périphériques de proximité » 105a, 105b, - un ensemble de périphériques et de mémoires externes 106 partagés par les modules maîtres. La mémoire interne 104a, 104b d'un module de traitement et de son contrôleur d'accès direct à la mémoire DMA est dédiée à ce module de 10 traitement et n'est pas partagée avec les autres modules de traitement. Toutefois, le module de traitement principal 101a peut accéder à l'ensemble des mémoires internes de tous les modules de traitement secondaires 101b, par exemple pour faire de la surveillance de données ou pour utiliser la zone mémoire d'un module de traitement secondaire inactif pour 15 étendre sa capacité interne de stockage. A l'inverse les modules de traitement secondaires ne sont physiquement pas reliés à la mémoire interne du module de traitement principal afin de garantir la ségrégation du module de traitement principal. Le maitre externe n'a pas non plus accès aux mémoires internes des 20 différents modules de traitement. Ceci permet également de garantir au module de traitement principal un temps d'accès constant à sa mémoire interne. Une telle mémoire interne peut consister en une mémoire à accès direct RAM (« Random Access Memory ») interne et/ou en une mémoire Flash. Chaque module de traitement peut être relié à sa mémoire interne par le biais 25 d'un bus de type AXI-M. La mémoire interne d'un module de traitement peut être connectée à la source d'horloge et à l'alimentation de ce module de traitement de façon à diminuer la probabilité de panne de mode commun. Afin de renforcer la 11 3026869 ségrégation, cette mémoire interne peut également être connectée à une alimentation et à une source d'horloge séparée. De plus, le système sur puce 100 peut comprendre une mémoire supplémentaire 107, par exemple de type DPRAM («Dual Ported Random 5 Access Memory »), dédiée à l'échange de données entre deux modules de traitement et accessible par ces modules de traitement. Chaque module de traitement peut également être relié à des périphériques de proximité 105a, 105b. De tels périphériques sont dédiés à chaque module de traitement et ne sont accessibles que par celui-ci afin 10 d'assurer la ségrégation des modules de traitement les uns par rapport aux autres et de diminuer la probabilité de panne de mode commun. Le maitre externe n'a pas non plus accès à ces périphériques de proximité. Ceci permet de ne pas avoir d'arbitrage à effectuer entre les différents modules de traitement et donc de renforcer le déterminisme du fonctionnement du système 100. 15 Chaque module de traitement peut ainsi être relié aux périphériques de proximité standards des processeurs existants, tels que les périphériques de proximité suivants : - un chien de garde (« watchdog », « VVD ») pour s'assurer de la bonne exécution d'une application par le module de traitement, 20 - un contrôleur de temps réel (« RTC ») pour cadencer l'exécution d'une application, - un contrôleur d'accès direct à la mémoire (DMA) pour gérer le fonctionnement du module DMA du module de traitement, - un contrôleur d'interruption (« IRQ »), 25 - un contrôleur de réinitialisation (« reset Controller »), - des périphériques spécifiques aux applications aéronautiques. 12 3026869 Contrairement au module de traitement principal, les modules de traitement secondaires ne sont pas reliés à de tels périphériques de surveillance et de configuration puisqu'ils n'ont besoin que des périphériques permettant d'assurer leur propre bon fonctionnement. 5 Comme la mémoire interne, les périphériques de proximité d'un module de traitement peuvent être connectés à la source d'horloge et à l'alimentation de ce module de traitement de façon à diminuer la probabilité de panne de mode commun. Alternativement, afin de renforcer encore la résistante aux pannes, seule l'interface de communication des périphériques de proximité 105a, 105b 10 d'un module de traitement avec ce module de traitement est connectée à la source d'horloge de ce module de traitement et les modules de traitement sont connectés à une alimentation séparée. Afin de renforcer la ségrégation, les périphériques de proximité peuvent également être connectés à une alimentation et une source d'horloge dédiées. 15 Chaque module de traitement peut être relié à ses périphériques de proximité par le biais d'un bus de type AHB-PP (« Advanced High-performance Bus »). Chaque module de traitement dispose donc de ses propres mémoire cache, mémoire interne et périphériques de proximité, non partagés avec les 20 autres modules de traitement du système sur puce 100, alimentés par ses propres alimentation et source d'horloge. De plus, le module de traitement principal est le seul à avoir accès à l'ensemble des modules du système sur puce, de manière prioritaire, et à disposer des périphériques de surveillance et de configuration du système sur 25 puce. Une telle architecture maximise ainsi la ségrégation des différents modules de traitement, minimise la probabilité de panne de mode commun et renforce le déterminisme du fonctionnement du système sur puce. 13 3026869 Chaque module maitre peut également être connecté à un ensemble de périphériques et de mémoires externes 106 partagés par les modules maîtres comme représenté en figure 1. Comme indiqué ci-dessus le module de traitement principal a 5 systématiquement la priorité sur les autres modules de traitement pour ses accès aux périphériques et mémoires externes 106 partagés. Le détail des types de périphériques et de mémoires externes partagés auxquels peuvent être connectés les modules maitres est décrit dans les paragraphes ci-dessous et illustré en Figures 1 et 2. 10 Chaque module maitre peut notamment être connecté à des contrôleurs de mémoires externes 108 tels que des contrôleurs de mémoire SDRam (« Synchronous Dynamic Random Access Memory ») / DDR (« Double Data Rate ») ou flash, de mémoire ou des contrôleurs QSPI («Quad Serial Peripheral Interface ») 15 Le maitre externe peut ne pas avoir accès aux contrôleurs de mémoire externe 108. Chaque module maitre peut également être connecté à des périphériques de communication 109 tels que des contrôleurs AFDX (« Avionics Full Duplex »), pAFDX, A429, Ethernet, UART, SPI, I2C, A285 /CAN. 20 Chaque module maitre peut également avoir accès à des périphériques de contrôle 110 pour des applications spécifiques à l'aéronautique. De tels périphériques peuvent notamment être configurés pour mettre en oeuvre des fonctions propres au contrôle moteur ou au calcul du freinage tel qu'une fonction d'acquisition de capteurs (ACQ), une fonction de pilotage (ACT), une fonction de 25 protection (PROTECT) ou une fonction de liens inter-calculateurs (LINK) Enfin chaque module maitre peut être connecté à une zone programmable 122 constitué de circuits FPGA (« Field Programmable Gate Arrays ») permettant l'ajout au système sur puce de fonctions personnalisées. L'ensemble des périphériques et de mémoires externes partagées 106 30 peut être connecté à une source d'horloge et une alimentation distinctes de 14 3026869 celles auxquelles sont connectés les modules de traitement. L'interface de communication des périphériques de proximité 105a, 105b d'un module maitre avec ce module maître peut aussi être connectée à la source d'horloge de ce module maître La probabilité de panne de mode commun affectant une portion 5 importante du système sur puce suite à une panne d'horloge ou d'alimentation est ainsi réduite. Les modules maitres sont reliés aux modules esclaves par le biais de réseaux d'interconnexion notés interconnects. Comme représenté en figure 3, un interconnect est constitué de ports 10 maitres 301 sur chacun desquels est connecté un module esclave 302, reliés au travers d'un ou plusieurs étages de commutateurs (« switchs ») à des ports esclaves 303 sur chacun desquels est connecté un module maitre 304. Un premier étage d'interconnexion peut être utilisé pour connecter les modules maitres à la mémoire interne, et éventuellement à la mémoire externe si 15 elle n'est pas partagée. Comme représenté en figure 2, un deuxième étage d'interconnexion peut être utilisé pour connecter les modules maitres aux modules esclaves de l'ensemble de périphériques. Chaque étage d'interconnexion peut comporter un ou plusieurs interconnects. Dans une telle architecture, dans laquelle les périphériques et mémoires 20 partagés ne sont pas connectés à la même source d'horloge que celle des modules maitres, le premier étage d'interconnexion sert également à resynchroniser les signaux des modules maitres sur un domaine d'horloge identique à celui des périphériques partagés 106. Le premier étage d'interconnexion peut alors comporter deux 25 interconnects pour chaque module de traitement : un interconnect pour la connexion des maitres à la mémoire interne et à la mémoire externe via les contrôleurs de mémoire externe, et un interconnect intermédiaire entre le module de traitement et le deuxième étage pour la connexion des périphériques partagés. Ces deux interconnects peuvent être connectés aux mêmes sources d'horloge et alimentation que celles du module de traitement dont ils dépendent. 15 3026869 Au niveau du deuxième étage d'interconnexion, les modules esclaves sont distribués sur plusieurs interconnects selon leurs fonctions, leurs priorités et/ou leurs besoins en bande passante. Ceci permet de diminuer le nombre de modules esclaves connectés à un même interconnect et donc de diminuer la 5 complexité de l'arbitrage et d'améliorer le déterminisme et la sureté du fonctionnement du système sur puce. Un interconnect peut être utilisé pour chaque catégorie de modules parmi l'ensemble de périphériques et de mémoires partagés décrits ci-dessus, à savoir : 10 - un interconnect de mémoires externes 118 regroupant un ensemble de modules esclaves contrôleurs de mémoires externes et/ou de liens séries tels que SPI pour l'interface avec les mémoires externes ; - un interconnect de communication 119 regroupant un ensemble de modules esclaves comprenant des périphériques de communication, 15 - un interconnect de contrôle 120 regroupant un ensemble de modules esclaves comprenant des périphériques de contrôle pour des applications spécifiques à l'aéronautique; - un interconnect de personnalisation 121 connecté à une zone programmable pour l'ajout de fonctions personnalisées. 20 Aucune communication directe n'est possible entre deux interconnects du deuxième étage d'interconnexion. Une transmission de données entre deux de ces interconnects n'est donc possible que sur requête d'un module maitre. Un interconnect supplémentaire peut également être utilisé pour connecter chaque module de traitement à ses périphériques de proximité dans le 25 cas où la connexion employée entre un module de traitement et ses périphériques de proximité n'est pas multiports. Chaque interconnect peut également comprendre des mécanismes dédiés à la surveillance des échanges des données sur l'interconnect et à la détection d'éventuelles pannes. De tels mécanismes peuvent par exemple être 30 utilisés pour éviter le blocage de l'interconnect en cas d'interruption d'un échange 16 3026869 de données en cours, pour vérifier les droits d'accès d'un module maitre à un module esclave lors d'une requête d'échange de données, ainsi que pour surveiller les transactions sur les bus AXI et AHB. Dans les systèmes existants, les interconnects relient généralement 5 chacun des ports maitres à chacun des ports esclaves indépendamment des autres liaisons assurées par l'interconnect. Le nombre de liaisons internes à l'interconnect et le nombre de commutateurs à utiliser augmentent alors très rapidement avec l'augmentation du nombre de modules maitres et esclaves connectés à l'interconnect. 10 A titre d'exemple, l'application d'une telle stratégie de construction d'un interconnect à l'interconnect de contrôle décrit ci-dessus conduirait à une architecture telle que celle représentée en figure 4. Une telle architecture n'est pas souhaitable dans le cadre d'un système sur puce utilisé pour des applications aéronautiques en raison de sa complexité et des problèmes 15 d'arbitrage engendrés par cette complexité. Le système sur puce selon l'invention propose une nouvelle stratégie de construction d'interconnect dans laquelle les modules maitres sont regroupés en groupes de modules maitres au niveau d'un premier étage de premiers commutateurs selon les modules esclaves auxquels ils doivent pouvoir se 20 connecter, leur fonction, leur priorité et/ou leur besoin en bande passante, chaque groupe de modules maîtres étant connecté à un commutateur. Ainsi le premier étage de commutateurs de l'interconnect comporte au plus autant de commutateurs que de groupes de maitres. Les sorties de ces premiers commutateurs sont ensuite connectés à un 25 deuxième étage de commutateurs regroupant des modules esclaves en groupes de modules esclaves en fonction des modules maîtres qui y sont connectés, de leur fonction et/ou de leur besoin en bande passante, un seul lien de communication connectant un groupe de modules maîtres et un groupe de modules esclaves. 30 Les modules esclaves peuvent par exemple être regroupés en groupes de modules esclaves parmi les groupes suivants : 17 3026869 - modules esclaves dédiés au module de traitement principal utilisant un bus de communication rapide, - modules esclaves dédiés au module de traitement principal utilisant un bus de communication lent, 5 - modules esclaves partagés entre les différents groupes de modules maîtres utilisant un bus de communication rapide, - modules esclaves partagés entre les différents groupes de modules maîtres utilisant un bus de communication lent. Ainsi le deuxième étage de commutateurs comporte au plus autant de 10 commutateurs que de groupes de modules esclaves et l'interconnect comporte au plus autant de chemins physiques internes que le produit du nombre de groupes de modules maitres par le nombre de groupes de modules esclaves. Une telle stratégie de génération d'un interconnect permet de diminuer le nombre et la complexité des chemins physiques internes de l'interconnect et de 15 diminuer le nombre d'étages de commutateurs et le nombre de commutateurs pour que la latence de l'interconnect soit plus faible et l'arbitrage moins complexe et déterministe. A titre d'exemple l'application d'une telle stratégie à l'interconnect de contrôle décrit ci-dessus est illustrée en figure 5. 20 Le module de traitement principal 101a et le maitre externe 111 sont les seuls modules maitres à avoir accès à tous les modules esclaves connectés à l'interconnect de contrôle. Ces deux modules maitres sont donc regroupés dans un premier groupe de modules maitres sur un premier commutateur 112. Le module de traitement secondaire 101b et le DMA 102a (DMAO) du 25 module de traitement principal ont accès aux mêmes modules esclaves, à savoir la mémoire partagée 107 et les contrôleurs Ethernet. Ils peuvent donc être regroupés en un second groupe de modules maitres sur un second commutateur. Néanmoins, leurs besoins en bande passante étant très différents, le choix peut être fait de les maintenir séparés et connectés à deux 18 3026869 commutateurs différents 113 et 114. Un commutateur différent peut donc être utilisé pour chacun de ces modules maitres. Enfin le DMA 102b (DMA1) du module de traitement secondaire n'ayant accès qu'aux contrôleurs Ethernet, il n'est pas non plus regroupé avec les 5 modules maitres précédemment cités. Du côté des modules esclaves, les modules tels qu'un module de lien inter-calculateur LINK, une centrale d'acquisition ACQ, une centrale de pilotage ACT et un module de protection PROTEC n'étant accessibles que par les modules maitres du premier groupe de modules maitres défini ci-dessus et 10 regroupant le module de traitement principal et le maitre externe, ces modules esclaves sont regroupés en un premier groupe de modules esclaves. Tous ces modules sont connectés au même commutateur 115 du deuxième étage de commutateurs de l'interconnect. Un seul lien physique reliant le commutateur du premier groupe de 15 modules maitres au premier groupe de modules esclaves est alors nécessaire pour relier le module de traitement principal 101a et le maitre externe 111 à tous les modules esclaves du premier groupe de modules esclaves. De même, les deux contrôleurs Ethernet ayant des fonctions similaires sont regroupés selon leur fonction en un second groupe de modules esclaves sur 20 un second commutateur 116 du deuxième étage de commutateurs de l'interconnect. Enfin un commutateur supplémentaire 117 est utilisé pour connecter les différents commutateurs du premier étage de commutateurs de l'interconnect au module esclave de mémoire partagée. 25 Le DMA 102b du module de traitement secondaire n'étant relié qu'aux contrôleurs Ethernet, aucun commutateur supplémentaire n'est requis au premier étage de l'interconnect pour relier le DMA 102b au commutateur 116 regroupant les deux contrôleurs Ethernet. 19 3026869 Au total, l'interconnect de contrôle ainsi constitué ne nécessite que six commutateurs 112 à 117 et huit liens physiques internes pour interconnecter cinq modules maitres et sept modules esclaves. Afin de renforcer le déterminisme du fonctionnement du système sur puce 5 et de diminuer la latence en réduisant l'arbitrage, chaque interconnect peut être configuré de façon à donner systématiquement la priorité aux liens physiques connectés au commutateur du module de traitement principal ou au groupe de modules maitres comprenant le module de traitement principal. L'invention propose donc un système sur puce présentant une grande 10 sûreté de fonctionnement grâce au déterminisme de son fonctionnement et à sa résistance aux pannes. Un tel système peut donc être utilisé pour les applications critiques du domaine de l'aéronautique telles que le contrôle du moteur, du freinage, des actionneurs électriques d'un aéronef. Un tel système sur puce peut également être utilisé dans d'autres domaines nécessitant une importante sureté 15 de fonctionnement tels que l'automobile, le domaine médical... 20 REVENDICATIONS1. Système embarqué sur une puce (SoC) (100) comprenant un ensemble de modules maîtres et de modules esclaves, Lesdits modules maîtres étant parmi : - un module de traitement principal (101a) ayant des droits d'accès prioritaires sur l'ensemble des composants du système embarqué sur puce et un contrôleur d'accès direct à la mémoire (DMA) (102a) associé audit module de traitement principal (101a) ; - au moins un module de traitement secondaire (101b) et un contrôleur d'accès direct à la mémoire (DMA) (102b) associé à chaque module de traitement secondaire (101b) ; chaque module maître étant configuré pour être connecté à une source d'horloge, une alimentation, et des modules esclaves parmi : - un ensemble de périphériques connectés au module maître par un lien de communication dédié, dits « périphériques de proximité » (105a, 105b), - au moins une mémoire interne (104a, 104b), - un ensemble (106) de périphériques et de mémoires externes partagés par les modules maîtres, Caractérisé en ce que ladite source d'horloge, l'alimentation, les périphériques de proximité (105a, 105b) et une mémoire cache (103a, 103b) d'un module de traitement maître et de son contrôleur d'accès direct à la mémoire (DMA) sont dédiés audit module de traitement maître et non partagés avec les autres modules de traitement de l'ensemble de modules maîtres, ladite au moins une mémoire interne (104a, 104b) de chaque module de traitement maître et de son contrôleur d'accès direct à la mémoire (DMA) est 21 3026869 dédiée audit module de traitement maître, ledit module de traitement principal pouvant toutefois y accéder (101a). 2. Système selon la revendication précédente comprenant au moins deux 5 étages d'interconnexions : - un premier étage connectant chaque module maître à sa mémoire interne (104a, 104b), - un deuxième étage connectant les modules maîtres à des modules esclaves de l'ensemble (106) de périphériques et de mémoires externes partagés, lesdits 10 modules esclaves étant distribués, selon leurs fonctions, leurs priorités et/ou leurs besoins en bande passante, sur plusieurs interconnects sans communication directe les uns avec les autres, un interconnect étant constitué de plusieurs ports maîtres reliés à plusieurs ports esclaves au travers d'un ou plusieurs étages de commutateurs (« switchs »), 3. Système selon la revendication 2 dans lequel ledit deuxième étage d'interconnexion et l'ensemble de périphériques et de mémoires externes partagés sont connectés à une source d'horloge et une alimentation distinctes de celles desdits modules maitres. 4. Système selon l'une des revendications 2 ou 3 comprenant un maitre externe (111) apte à être connecté aux périphériques partagés par les interconnects du deuxième étage d'interconnexion. 25 5. Système selon l'une quelconque des revendications précédentes dans lequel les périphériques de proximité (105a, 105b) et la mémoire interne (104a, 104b) d'un module maitre sont connectés à l'alimentation et à la source d'horloge de ce module maitre. 15 20 22 3026869 6. Système selon l'une quelconque des revendications 1 à 4 dans lequel l'interface de communication des périphériques de proximité (105a, 105b) d'un module maitre avec ce module maître est connectée à la source d'horloge de ce 5 module maître. 7. Système selon l'une quelconque des revendications 1 à 4 dans lequel les périphériques de proximité (105a, 105b) et la mémoire interne (104a, 104b) d'un module maitre sont connectés à une alimentation et une source d'horloge 10 dédiées. 8. Système selon l'une quelconque des revendications précédentes dans lequel les périphériques de proximité (105a, 105b) d'un module maître sont parmi un contrôleur de réinitialisation (« reset »), un chien de garde (« watchdog »), un 15 contrôleur d'interruption, un contrôleur de temps réel, des périphériques spécifiques aux applications aéronautiques, un contrôleur d'accès direct à la mémoire. 9. Système selon l'une quelconque des revendications 1 à 7, dans lequel les 20 périphériques de proximité (105b) d'un module de traitement secondaire sont parmi un contrôleur de temps réel, un chien de garde (« watchdog »), un contrôleur d'accès direct à la mémoire (DMA), un contrôleur d'interruption. 10. Système selon l'une des revendications 2 à 9 dans lequel les 25 interconnects sont parmi : - un interconnect de mémoires externes (118) regroupant un ensemble de modules esclaves contrôleurs de mémoires externes et/ou de liens séries pour l'interface avec les mémoires externes (108); 23 3026869 - un interconnect de communication (119) regroupant un ensemble de modules esclaves comprenant des périphériques de communication (109), - un interconnect de contrôle (120) regroupant un ensemble de modules esclaves comprenant des périphériques de contrôle (110) pour des applications 5 spécifiques à l'aéronautique; - un interconnect de personnalisation (121) connecté à une zone programmable (122) pour l'ajout de fonctions personnalisées ; 11. Système selon la revendication 10 dans lequel l'interconnect de 10 communication regroupe un ensemble de périphériques de communication (109) parmi : Ethernet, ARINC, UART (« Universal Asynchronous Receiver Transmitter »), SPI (« Serial Peripheral Interface »), AFDX («Avionics Full DupleX switched ethernet »), A429 (ARINC 429), A825 (ARINC 825), CAN (Controller Area Network), 120. 15 12. Système selon l'une quelconque des revendications 10 à 11 dans lequel l'interconnect de contrôle regroupe des modules de contrôle configurés pour mettre en oeuvre des fonctions propres au contrôle moteur ou au calcul de freinage. 20 13. Système selon l'une des revendications 2 à 12 dans lequel chaque interconnect comprend des mécanismes de surveillance et de détection de pannes. 14. Système selon l'une des revendications 2 à 13 dans lequel les différents 25 étages de commutateurs internes à chaque interconnect sont regroupés de la manière suivante : - les modules maîtres sont regroupés en groupes de modules maitres au niveau d'un premier étage de premiers commutateurs selon les modules esclaves 24 3026869 auxquels ils doivent pouvoir se connecter, leur fonction, leur priorité et/ou leur besoin en bande passante, chaque groupe de modules maîtres étant connecté à un commutateur, - les sorties de ces premiers commutateurs sont connectés à un deuxième étage 5 de commutateurs regroupant des modules esclaves en groupes de modules esclaves en fonction des modules maîtres qui y sont connectés, de leur fonction et/ou de leur besoin en bande passante, un seul lien de communication connectant un groupe de modules maîtres et un groupe de modules esclaves. 10 15. Système selon la revendication 14 dans lequel lesdits modules esclaves sont regroupés en groupes de modules esclaves parmi les groupes suivants : - modules esclaves dédiés au module de traitement principal (101a) utilisant un bus de communication rapide, - modules esclaves dédiés au module de traitement principal (101a) utilisant un 15 bus de communication lent, - modules esclaves partagés entre les différents groupes de modules maîtres utilisant un bus de communication rapide, - modules esclaves partagés entre les différents groupes de modules maîtres utilisant un bus de communication lent. 20 16. Système selon l'une quelconque des revendications précédentes dans lequel les modules de traitement sont disposés dans le système embarqué sur puce de manière à être ségrégés physiquement.