PROCEDE ET DISPOSITIF DE FILTRAGE DE TRANSACTIONS POUR
SYSTEME SUR PUCE
DOMAINE DE L'INVENTION
L'invention se rapporte au domaine des systèmes sur puce souvent désigné par le terme anglais System on chip ou son abréviation SoC.
L'invention concerne plus particulièrement les systèmes sur puce dans lesquels les interconnexions entre modules sont réalisées par des bus informatiques internes et des moyens de contrôle de routage associés.
ART ANTERIEUR
Un système sur puce (Soc), est un système complet embarqué sur une puce pouvant comprendre un ou plusieurs processeurs, de la mémoire, des périphériques d'interface et/ou d'autres composants nécessaires à la réalisation d'une fonction complexe. Un Soc peut également désigner un système mixte comprenant des éléments numériques, des éléments analogiques, et des convertisseurs analogiques/numériques.
Les SoC de type FPGA présentent généralement une architecture hiérarchisée : des modules « maîtres » effectuent des requêtes d'accès en lecture ou écriture à des modules dits « esclaves ». Par exemple, des maîtres typiques sont les processeurs ou les contrôleurs d'accès direct à la mémoire (DMA) ; des esclaves typiques sont les mémoires de stockage ou les périphériques réseau.
Les interconnexions entre des maîtres et des esclaves sont typiquement prises en charge par des bus informatiques internes compatibles avec un ou plusieurs protocoles de communication.
Par exemple, le protocole AMBA (« Advanced Microcontroller Bus Architecture ») est un standard de communication aujourd'hui largement utilisé notamment sur les SoC multiprocesseurs. Ce protocole se décline en plusieurs versions et variantes, dont par exemple AHB (« Advanced High- performance Bus ») et AXI (« Advanced extensible Interface ») qui sont
plus particulièrement dédiées aux transferts de données haut-débit par salves (« bursts »).
La figure 1 représente un bus informatique B assurant des interconnexions entre k modules maîtres Mi, i e [1, /c] et n modules esclaves Sj, j e [l, n] . Ce bus comprend k ports esclaves PSi, i e ll, k\ sur chacun desquels est connecté un module maître, et n ports maîtres PMj, j e l, nj , sur chacun desquels est connecté un module esclave. Ainsi, le bus est vu comme un esclave par chaque module maître, et vu comme un maître par chaque module esclave. Sur chaque liaison entre un port du bus et un module, des données peuvent être transmises selon un protocole de communication spécifique.
Le bus B comprend des moyens de routage internes, par exemple un ou plusieurs étages de commutateurs (« switches ») représentés sur la figure 1 par des flèches en pointillés. Ces moyens assurent le routage de communications entre un maître et un esclave, comme par exemple les requêtes d'accès en lecture ou écriture émise par un maître à destination d'un esclave.
Le bus B illustré sur la figure 1 réalise toutes les interconnexions possibles entre un des k maîtres et un des n esclaves, soit k * n interconnexions. Ainsi, l'esclave S1 peut par exemple recevoir des requêtes émises par plusieurs maîtres, et être en accès partagé entre ceux-ci. Le bus B autorise par ailleurs l'accès de maîtres de façon parallèle s'ils accèdent à des esclaves distincts au moyen de switches internes distincts.
La plupart des bus informatiques permettent de réaliser un grand nombre d'interconnexions physique entre des ports esclaves et des ports maîtres, sinon toutes celles techniquement possibles comme dans le cas du bus B. Cependant, la plupart des Soc incluant des bus informatiques vendus dans le commerce ne permettent pas d'exercer un contrôle fin des interconnexions physiques entre les maîtres et les esclaves.
Or, dans certaines architectures, on veut pouvoir interdire les communications sur certaines interconnexions de manière permanente ou temporaire pour des raisons de sécurité et/ou d'efficacité. C'est le cas par
exemple des systèmes sur puce de niveau de criticité A selon le standard RTCA DO-254, sur lesquels des connexions physiquement permises peuvent avoir des conséquences catastrophiques, comme par exemple, des systèmes sur puce dédiés au contrôle des commandes d'un aéronef.
A titre d'exemple, le connecteur NIC-301 pour architecture ARM est une boîte noire qui n'offre pas la possibilité d'interdire certaines interconnexions entre ses ports esclaves et ses ports maîtres.
Par ailleurs, des bus informatiques peuvent être sujets à des défaillances générant des aiguillages erronés pouvant alors causer des ralentissements dans les accès à un esclave voire leur blocage complet. Ces défaillances peuvent par exemple être causées par des éléments de type transistors, sensibles à des effets transitoires (Single Event Upset en anglais).
Ces attentes peuvent notamment s'avérer gênantes dans le cas ou des accès de haute priorité doivent être réalisés très rapidement. C'est le cas par exemple des systèmes sur puce de niveau de criticité A selon le standard RTCA DO-254, sur lesquels des pannes ou même des lenteurs de transaction peuvent avoir des conséquences catastrophiques, comme par exemple, des systèmes sur puce dédiés au contrôle des commandes d'un aéronef.
PRESENTATION DE L'INVENTION
L'invention vise à exercer un contrôle des communications entre des modules maîtres et des modules esclaves d'un système sur puce qui transitent par un bus informatique de sorte d'empêcher des communications non autorisées.
Pour ce faire, l'invention concerne notamment un procédé de filtrage d'accès dans un système sur puce comprenant au moins un module maître, au moins un module esclave et un bus, le bus comprenant au moins un port esclave, au moins un port maître et des moyens d'interconnexion entre au moins un des port esclave et au moins un des port maître, le procédé étant caractérisé en ce qu'il comprend les étapes suivantes mises en œuvre
lorsqu'une requête d'accès est routée depuis un module maître connecté à un port esclave vers un module esclave connecté à un port maître:
- une interception sur le lien entre le port maître et le module esclave d'une information de source avant que le module esclave ne reçoive la requête,
- une recherche de l'information de source dans au moins une liste de contrôle d'accès au module esclave, et
- un blocage de la requête de sorte que le module esclave ignore l'accès demandé, si l'information de source n'est pas trouvée dans l'au moins une liste de contrôle d'accès.
L'étape d'interception du procédé de filtrage proposé est réalisée en aval du bus d'interconnexion, au plus proche du module esclave. De la sorte, des accès interdits d'origines multiples peuvent être évités : non seulement des accès interdits provoqués par une requête mal configurée par le module maître émetteur, mais également des accès interdits provoqués par des erreurs de routage internes au bus d'interconnexion.
L'invention permet dès lors un contrôle fin des interconnexions sur n'importe quel bus informatique AMBA vendu dans le commerce, ou tout autre bus adapté pour réaliser des interconnexions entre des modules maîtres et des modules esclaves. L'adaptation d'un bus informatique pour les besoins d'interconnexion spécifiques d'un système sur puce n'est donc pas nécessaire, et réduit ainsi les coûts de conception et de fabrication du système sur puce.
Le procédé proposé peut avantageusement être complété par les caractéristiques suivantes prises individuellement ou combinées lorsque cela est techniquement possible.
L'information de source peut comprendre un identifiant unique du port esclave par lequel transite la requête.
Cet identifiant unique du port esclave permet d'identifier le routage réalisé par le bus depuis un port esclave vers un port maître, et donc autorise un filtrage par route suivie dans le bus d'interconnexion.
L'information de source peut en outre comprendre un identifiant du module maître ayant émis la requête. Ceci permet d'identifier de manière certaine la source de la requête, et donc d'opérer un filtrage par module maître.
L'information de source peut être formée par concaténation de l'identifiant du module maître et de l'identifiant unique du port esclave, de façon offrir un filtrage plus fin selon deux critères (module source et route suivie), et un transport compact de ces deux critères dans une même information de source, transportée par une seule requête.
L'identifiant du module maître peut en outre être associé à un contexte d'émission de la requête par le module maître. Ceci a pour effet d'offrir un critère de filtrage non binaire, et donc plus souple, des requêtes émanant d'un même module maître. Certaines requêtes émanant de ce module maître peuvent être filtrées, et certaines autres émanant du même module maître ne pas être filtrées, en fonction du contexte d'émission associé.
L'étape de recherche peut être réalisée dans deux listes de contrôle d'accès au module esclave, l'une contenant des informations de sources autorisées en lecture et l'autre contenant des informations de sources autorisées en écriture.
Le procédé selon l'invention peut être avantageusement mise en œuvre dans des architectures comprenant un bus de type AMBA.
Dans un mode de réalisation dans lequel le protocole de communication entre le port maître et le module esclave est le protocole AXI, l'étape de blocage peut comprendre un positionnement à zéro d'un signal transmis au module esclave, le signal étant AWVALID si la requête est une requête en écriture, ou ARVALID si la requête est une requête en lecture.
Dans un autre mode de réalisation dans lequel le protocole de communication entre le port maître et le module esclave est le protocole AHB ou AHB-lite, l'étape de blocage peut comprendre le positionnement à zéro d'un signal HSEL transmis au module esclave).
Dans un autre mode de réalisation dans lequel le protocole de communication entre le port maître et le module esclave est le protocole APB, l'étape de blocage peut comprendre le positionnement à zéro d'un signal PSEL transmis au module esclave.
Le procédé selon l'invention peut également comprendre une étape supplémentaire d'envoi d'un message d'exception vers un contrôleur d'interruption après un blocage de la requête. Un tel message permet d'avertir ce contrôleur de la survenance d'un blocage, de sorte que celui-ci puisse traiter le blocage de la manière la plus adéquate.
Il est également proposé un dispositif de contrôle d'accès à un module esclave par l'intermédiaire d'un bus d'interconnexion, comprenant des moyens de stockage et des moyens de traitement de données pour la mise en œuvre du procédé de filtrage précité.
II est en outre proposé un ensemble comprenant au moins un module maître, au moins un module esclave, un bus assurant une interconnexion entre au moins un des modules maîtres et au moins un des modules esclaves, et au moins un dispositif de contrôle d'accès lté que précité et connecté à un port maître du bus et à un des modules esclaves.
II est enfin proposé un système sur puce comprenant au moins un ensemble selon la revendication tel que précité.
DESCRIPTION DES FIGURES
D'autres caractéristiques, buts et avantages de l'invention ressortiront de la description qui suit, qui est purement illustrative et non limitative, et qui doit être lue en regard des dessins annexés sur lesquels :
- La figure 1 représente schématiquement un système sur puce connu.
- La figure 2 représente une séquence de signaux du protocole AXI émis au cours d'une lecture.
- La figure 3 représente une séquence de signaux du protocole AXI émis au cours d'une écriture.
- La figure 4 représente un diagramme d'étapes du procédé de filtrage selon l'invention.
- La figure 5 représente schématiquement un système sur puce protégé grâce à un dispositif de filtrage selon l'invention.
Sur l'ensemble des figures, les éléments similaires portent des références identiques.
DESCRIPTION DETAILLEE DE L'INVENTION
Le protocole AXI définit une interface unique pour décrire les communications entre un module maître et un module esclave, un module maître et le port esclave d'un bus, ou le port maître d'un bus et un module esclave.
Cette interface se compose de cinq canaux : deux canaux dédiés à la lecture (un canal de contrôle et un canal de données) et trois à l'écriture (un canal de contrôle, un canal de données et un canal de réponse).
Les canaux émettent chacun un ensemble de signaux de manière unidirectionnelle. Par exemple, le canal de contrôle de lecture émet des signaux de requête depuis le maître vers l'esclave, tandis que le canal de données de lecture retourne alors des signaux porteurs de données depuis l'esclave vers le maître.
Pour réaliser un transfert de données les signaux doivent être positionnés selon une séquence ordonnée. La figure 2 illustre par exemple une séquence de positionnement de signaux pour la lecture d'une salve de données.
EXEMPLE DE TRANSACTION EN LECTURE
La figure 2 illustre par exemple une séquence de positionnement de signaux pour une lecture par salves selon le protocole AXI, réalisée en quatre transferts de données. Les fonctions des signaux utilisés sont récapitulées dans le tableau ci-dessous :
Signal Source Description
ACLK Source Horloge de référence.
d'horloge
ARADDR Maître Adresse de lecture.
ARVALID Maître Positionné à 1 pendant la transmission par le
maître d'une adresse de lecture valide, sinon à 0.
ARREADY Esclave Indique si l'esclave est prêt (1 ) ou non (0) pour accepter une adresse de lecture et des signaux de contrôle associés.
RREADY Maître Indique si le maître est prêt (1 ) ou non (0) pour recevoir des données de lectures.
RDATA Esclave Données de lectures.
RVALID Esclave Indique si les données de lecture attendues sont prêtes pour le transfert (1 ) ou non (0)
RLAST Esclave Indique le dernier transfert de données en lecture.
En référence à la figure 2, une transaction en lecture selon le protocole AXI comprend les étapes suivantes.
Le signal ACLK est synchronisé sur l'horloge d'un maître. Le maître émet le signal ARADDR contenant une adresse de lecture A de l'esclave à laquelle il souhaite accéder en lecture. Parallèlement, le maître positionne à un le signal ARVALID pour signifier à l'esclave destinataire la validité de l'adresse A.
L'esclave confirme la disponibilité de l'adresse A en positionnant le signal ARREADY.
Le maître positionne ensuite le signal RREADY à un pour signifier à l'esclave qu'il est prêt à lire des données.
Les données de lecture sont ensuite transmises par l'esclave sur le signal RDATA. La figure 2 illustre une lecture de quatre transferts D(A0), D(A1 ), D(A2) et D(A3). Pendant chaque transfert, le signal RVALID est positionné à un par l'esclave pour signifier au maître la validité des données. Pour indiquer au maître qu'un transfert est le dernier, le signal RLAST est positionné à un au début du dernier transfert D(A3).
La lecture illustrée en figure 2 est réalisée en treize coups d'horloge (entre les coups d'horloge T0 et T13).
EXEMPLE DE TRANSACTION EN ECRITURE
La figure 3 présente un exemple une séquence de positionnement de signaux pour une écriture selon le protocole AXI également réalisée en quatre transferts de données. Les fonctions de ces signaux sont récapitulées dans le tableau ci-dessous :
Signal Source Description
ACLK Source Horloge de référence.
d'horloge
AWADDR Maître Adresse d'écriture.
AWVALID Maître Positionné à 1 pendant la transmission par le
maître d'une adresse d'écriture valide, sinon à 0.
AWREADY Esclave Indique si l'esclave est prêt (1 ) ou non (0) pour accepter une adresse d'écriture et des signaux de contrôle associés.
WREADY Esclave Indique si l'esclave est prêt (1 ) ou non (0) pour recevoir des données d'écriture.
WDATA Maître Données d'écriture.
WVALID Maître Indique si les données d'écriture sont prêtes pour le transfert (1 ) ou non (0) à l'esclave.
BRESP Esclave Résultat de l'écriture (2 bits) : OKAY, EXOKAY,
SLVERR, ou DECERR.
BVALID Esclave Positionné à 1 pendant la transmission par le
l'esclave d'un résultat d'écriture valide, sinon à 0.
WLAST Maître Indique le dernier transfert de données en écriture.
BREADY Maître Positionné à 1 pour signifier que le maître est prêt à recevoir un résultat d'écriture, sinon à 0.
En référence à la figure 3, une transaction en lecture selon le protocole AXI comprend les étapes suivantes.
Le signal ACLK est synchronisé sur une horloge source. Un maître émet le signal AWADDR contenant une adresse d'écriture A de l'esclave à laquelle il souhaite accéder. Parallèlement, le maître positionne à un le signal AWVALID pour signifier à l'esclave destinataire la validité de l'adresse A. L'esclave confirme la disponibilité de l'adresse A en positionnant le signal AWREADY à un.
L'esclave positionne ensuite le signal WREADY à un pour signifier au maître qu'il est prêt à recevoir des données à écrire.
Les données d'écriture sont ensuite transmises par le maître sur le signal WDATA. La figure 3 illustre une salve de quatre transferts D(A0), D(A1 ), D(A2) et D(A3). Au début du premier transfert, le signal BREADY est positionné à un par le maître pour indiquer qu'il est prêt à recevoir un résultat d'écriture qui sera transmis à la fin de la séquence. Pendant chaque transfert, le signal WVALID est positionné à un par le maître pour signifier à l'esclave la validité des données à écrire. Pour indiquer à l'esclave qu'un transfert D(A3) est le dernier, le signal WLAST est positionné à un au début du dernier transfert.
Pour confirmer l'écriture au maître, l'esclave positionne ensuite le signal BRESP à la valeur OKAY. Ce positionnement est accompagné d'un positionnement du signal BVALID à un pendant la durée de transmission de la valeur OKAY. Le maître repositionne enfin le signal BREADY à zéro une fois cette valeur reçue.
L'écriture illustrée en figure 3 est réalisée en dix coups d'horloge (entre les coups d'horloge T0 et T10).
D'autres protocoles de la famille AMBA (AHB, AHB-Lite) suivent le même principe général avec des signaux différents.
Chaque interface entre un bus conforme au standard AMBA et un module esclave ou maître peut implémenter un des protocoles de la famille AMBA.
En référence à la figure 5, soit un système sur puce comprenant au moins un module maître M1 , Mi, Mk, au moins un module esclave S1 , Sj, Sn et un bus B.
Le bus B comprend des moyens d'interconnexion pour faire communiquer au moins un module esclave Sj avec au moins un module M1 , Mi, Mk.
La route de communication entre un module maître Mi et un module esclave Sj comprend au moins deux liens de communication: un premier lien de communication entre le module maître Mi et un port esclave PSi du bus B, et un deuxième lien de communication entre un port maître PMj du bus B et le module esclave Sj. Les signaux émis par le module maître secondaire Mi transitent par le port esclave PSi, puis sont routés par le bus B vers le port maître PMj puis sont transmis au module esclave Sj connecté à ce port maître PMj. Les signaux émis par le module esclave Sj à destination du maître secondaire Mi suivent la même route en sens inverse.
Le procédé de filtrage selon l'invention va maintenant être décrit en référence au diagramme de la figure 4.
Dans le système décrit précédemment et illustré en figure 5, une requête est demandée par un module maître Mi et routée vers un module esclave Sj.
Une première étape « CATCH » consiste à intercepter en un point du système une information de source INFO avant que le module esclave Sj ne reçoive la requête.
Par information de source INFO, on entend une information transportée par un ou plusieurs signaux du protocole de communication utilisé, définissant de manière unique au moins une portion de route parcourue entre le module maître source et le point d'interception.
Dans une deuxième étape « SEARCH », l'information de source INFO est recherchée dans au moins une liste de contrôle d'accès Lj au module esclave Sj. Cette liste Lj préalablement enregistrée contient des
informations de sources autorisées par le système à réaliser des accès au module esclave Sj.
Dans une troisième étape de test « FOUND », on vérifie si l'information est trouvée dans cette liste Lj :
- Si l'information de source INFO n'est pas trouvée (« N »), on considère que le module maître Mi n'est pas autorisé à accéder à l'esclave Sj. La requête est alors bloquée « BLOCK » de manière à ce que le module esclave Sj ne puisse acquitter la requête.
- Sinon (« Y »), la requête est transmise au module esclave Sj.
L'étape d'interception « CATCH » est de préférence réalisée le plus près possible du module esclave Sj de manière à obtenir une information de source définissant une portion de route la plus longue possible, de préférence sur la liaison entre le port maître PMj du bus B par lequel la requête a transité et le module esclave Sj.
L'information de source INFO peut comprendre un identifiant unique IDPSi de port préalablement assigné au port esclave PSi par lequel la requête a transité. Dans ce cas, l'information de source INFO permet de déterminer le routage réalisé par le bus depuis un port esclave vers un port maître. On peut donc alors détecter des erreurs de routage causée par au moins un des bus traversés, et des erreurs causées par un module maître demandant un accès indu à un module esclave.
L'information de source INFO peut par ailleurs comprendre un identifiant IDMi qui identifie le module maître Mi ayant émis la requête. Ceci permet d'identifier de manière certaine la source de la requête.
Le protocole AXI peut être utilisé sur le lien de communication entre le port maître PMj et le module esclave Sj.
L'identifiant du module maître peut alors être détecté par interception des signaux suivants émis par le module maître vers le module esclave:
- le signal AWID sur le canal de contrôle, dans le cas d'une requête en écriture ;
- le signal WID sur le canal de données, dans le cas d'une requête en écriture ;
- le signal ARID sur le canal de contrôle, dans le cas d'une requête en lecture.
Un maître peut être amené à émettre différents types de requêtes à un même esclave : par exemple, un processeur peut émettre plusieurs requêtes en lecture à un périphérique de mémoire, chaque requête étant gérée dans un processus spécifique.
Par conséquent, une amélioration du procédé peut consister à joindre à associer l'identifiant IDMi à un contexte d'émission de la requête émise par un module maître Mi. Cette amélioration permet de réaliser une discrimination supplémentaire parmi les requêtes venant d'un même module maître. Ce contexte peut typiquement être un identifiant unique de processus.
Dans un mode de réalisation, une information de source INFO correspond à la concaténation de l'identifiant unique IDPSi du port esclave Psi et de l'identifiant IDMi caractéristique d'un type de requête émise par le module maître Mi. Cette structure permet un traitement simultané de ces deux identifiants dans les étapes d'interception « CATCH » et de recherche « SEARCH », et donc de raccourcir la durée de traitement du procédé.
On peut par ailleurs réaliser l'étape de recherche « SEARCH » dans deux listes d'accès distinctes LWj et LRj, la liste LRj contenant des informations de sources autorisées à réaliser des requêtes de lecture sur le module esclave Sj et la liste LWj contenant des informations de sources autorisées à réaliser des requêtes en écriture sur le module esclave Sj. Cette optimisation permet notamment de diminuer la durée de l'étape de recherche.
L'étape de blocage « BLOCK » peut être réalisée en modifiant à la volée le positionnement d'au moins un des signaux reçus du port maître PMj du dernier bus traversé et de transmettre ces signaux repositionnés au module esclave Sj de sorte que celui-ci ignore la requête initialement émise par le module maître Mi. Bien entendu, si la requête est trouvée dans la liste
correspondante, tous les signaux reçus du port maître sont transmis au module esclave sans modification.
Les signaux repositionnés dépendent du protocole de communication choisi entre le bus B et le module esclave Sj.
Dans le cas du protocole AXI, on peut repositionner à zéro le signal AWVALID si la requête est une requête en écriture. Cette valeur de zéro permet de faire croire au module esclave Sj qu'aucune adresse n'est disponible sur le canal de contrôle en écriture, et ainsi d'ignorer la requête. De la même manière, on peut repositionner à zéro le signal ARVALID si la requête est une requête en écriture. Cette valeur permet de faire croire au module esclave Sj qu'aucune adresse n'est disponible sur le canal de contrôle en lecture, et ainsi d'ignorer la requête.
Le même principe de repositionnement est applicable à d'autres protocoles :
- Dans le cas du protocole AHB ou le protocole AHB-lite, on peut positionner à zéro le signal HSEL.
- Dans le cas du protocole APB, on peut positionner à zéro le signal PSEL.
De manière préférée, le procédé comporte une étape supplémentaire d'envoi « ERR » d'un message d'exception EX vers un contrôleur d'interruption (non représenté) du système sur puce, après l'étape de blocage « BLOCK ». Ce contrôleur peut par exemple être intégré au maître Si ayant été à l'origine de la requête bloquée, de sorte que celui-ci puisse traiter le blocage de la manière la plus adéquate.
L'invention concerne par ailleurs un filtre Fj, j G [l, n] mettant en œuvre le procédé décrit précédemment. Ce filtre peut, au choix, être intégré à un bus, faire partie d'un module esclave, ou bien être se présenter sous la forme d'un module autonome placé sur la liaison entre un port maître d'un bus et un module esclave, comme illustré en figure 4.
Le filtre comprend des moyens de stockage pour le stockage d'au moins une liste de contrôle d'accès Lj, j G [l, n], par exemple une ou plusieurs
mémoires, par exemple de type flash, RAM tripliquée ou EEPROM. La taille de stockage de ces moyens est proportionnelle de la longueur d'encodage d'une information de source, et du nombre d'information de sources autorisées. Les informations de source autorisées contenues dans les listes stockées peuvent être écrites une seule fois avant la mise en service du système sur puce, ou être reconfigurées dynamiquement.
Le filtre comprend par ailleurs des moyens de traitement pour réaliser les différentes étapes du procédé de filtrage décrit. L'invention concerne également un ensemble illustré en figure 4 comprenant au moins un module maître Mi, i e [1, /c], au moins un module esclave Sj, j e [l, n], un bus B conforme au standard AMBA assurant une interconnexion entre au moins un des modules maîtres et au moins un des modules esclaves, et au moins un filtre Sj, j e l, nJ tel que décrit précédemment. Les moyens de stockage de chaque filtre Sj permettent de stocker les deux listes LRj et LWj déjà décrites.
Avantageusement, cet ensemble comporte autant de filtres positionnés que des modules esclaves, chaque filtre étant inséré entre le bus B et chaque module esclave, comme illustré en figure 4. Un tel ensemble est donc entièrement protégé contre toute requête non autorisée vers un module esclave quelconque.
L'invention concerne enfin un système sur puce comprenant au moins un ensemble tel que décrit précédemment.