Brevet FR3003110A1 — publié le 20140912

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 5 lesquels les interconnexions entre modules sont réalisées par des bus informatiques internes. ART ANTERIEUR Un système sur puce (SoC), est un système complet embarqué sur une 10 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. Les SoC 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 15 à 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 20 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 25 plusieurs versions et variantes, dont par exemple AHB (« Advanced Highperformance 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 »). En référence à la figure 1, un bus informatique B assure des 30 interconnexions entre k modules maîtres Mi, i e R,k]] et n modules esclaves Sj, JE R,n]]. Le bus B comprend k ports esclaves PSi, e R,k]] sur chacun desquels est connecté un module maître, et n ports maîtres PMj, je ft1,n, 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. 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 51 peut par exemple recevoir des requêtes émises par les plusieurs maîtres, et être en accès partagé alternativement entre ceux-ci. Lors d'un accès concurrent, le maître M1 peut être en cours d'accès à 51, tandis que le maître M2 reste en attente. Une fois l'accès par M1 terminé, le maitre M2 peut à son tour réaliser un accès à 51. Cependant, si un maître tombe en panne alors qu'une transaction est en cours entre ce maître et un esclave, tous les autres maîtres en attente d'un accès au même esclave sont maintenus en attente puisque la transaction 20 en cours n'est pas terminée. 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 25 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. Par ailleurs, certains systèmes sur puce font une distinction physique entre des maîtres principaux de haute priorité et des maîtres secondaires de plus 30 basse priorité. Sur de tels systèmes, les accès demandés par un maître principal doivent être prioritaire par rapport aux accès demandés par un module esclave ; par conséquent, le blocage d'une transaction en cours impliquant un module maître secondaire alors qu'un maître principal est maintenu en attente peut avoir des conséquences dramatiques. PRESENTATION DE L'INVENTION L'invention vise à résoudre les problèmes de l'art antérieur. Pour ce faire, l'invention concerne notamment un procédé de surveillance de transactions dans un système sur puce comprenant au moins un module maître principal , au moins un module maître secondaire, au moins un module esclave et un bus connecté à chaque module, le bus comprenant des moyens d'interconnexion pour faire communiquer un module esclave commun avec au moins un module maître principal et avec au moins un module maître secondaire, le procédé comprenant les étapes suivantes mises en oeuvre au cours de chaque transaction entre un module maître secondaire et un module esclave commun : un démarrage d'un compteur lors d'une détection initiale d'un signal de début de transaction, une attente d'une détection finale d'un signal de fin de transaction dans un délai prédéterminé, une clôture de la transaction si le temps écoulé depuis le démarrage du compteur est supérieur au délai prédéterminé, et une réinitialisation du compteur. Le procédé décrit permet notamment de détecter des blocages de transactions entre un module maître secondaire et un module esclave interconnectés au moyen de n'importe quel bus informatique AMBA vendu dans le commerce ou tout autre bus réalisation des interconnexions entre modules maîtres et esclaves. L'adaptation d'un bus informatique AMBA pour les besoins d'un système sur puce à haut niveau de criticité n'est donc pas nécessaire. Le procédé permet en outre de garantir un accès à un module esclave pour un maître principal dans un délai d'attente borné et connu. 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 5 ê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 10 émis au cours d'une écriture. La figure 4 représente un diagramme d'étapes du procédé de surveillance selon l'invention. La figure 5 représente schématiquement un système sur puce protégé grâce à un dispositif de surveillance selon l'invention. 15 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 20 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 25 données) Trois canaux dédiés à l'écriture (un canal de contrôle, un canal de données et un canal de réponse). Les canaux transportent chacun un ensemble de signaux émis par une source et ce de manière unidirectionnelle. Par exemple, le canal de contrôle 30 de lecture transporte des signaux de requête depuis un maître vers un esclave, tandis que le canal de données de lecture retourne alors des signaux porteurs de données depuis un esclave vers un maître. Pour réaliser une transaction de données en lecture ou en écriture les signaux doivent être positionnés selon une séquence ordonnée. Deux exemples de séquence de positionnement pour une lecture et une écriture selon le protocole AXI vont maintenant être détaillés. Tous les signaux cités dans ces exemples sont décrits dans la spécification du protocole AXI. 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 d'horloge Horloge de référence. 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. RVALI D 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 TO 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 d'horloge Horloge de référence. AWADDR Maître Adresse d'écriture. AVVVALI D 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. VVVAL I D 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 écriture 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 AVVVALID 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 VVVALID 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 TO et T10). D'autres signaux du protocole AXI sont en pratique positionnés pendant une lecture ou une écriture mais ils ne sont pas détaillés dans le présent document dans un souci de simplicité. D'autres protocoles de la famille AMBA (AHB, AHB-Lite,) suivent le même 15 principe général de transaction en écriture/écriture 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. 20 Le procédé de surveillance selon l'invention va maintenant être décrit en référence aux figures 4 et 5. En référence à la figure 5, soit un système sur puce comprenant au moins un module maître principal Ma, au moins un maître secondaire Ml, ..., Mi, 25 ..., Mk, au moins un module esclave Si, Sj, ..., Sn et un bus B. Le bus B comprend des moyens d'interconnexion pour faire communiquer au moins un module esclave commun Sj avec au moins un module maître principal Ma et au moins un module maître secondaire M1, ..., Mi, ..., Mk. Dans le présent document, un module esclave dit « commun » désignera un 30 module esclave sur lequel plusieurs modules maître concurrents peuvent accéder par l'intermédiaire du bus B. La route de communication entre un module maître secondaire Mi et un module esclave Sj comprend au moins deux liens de communication: un premier lien de communication entre le module maître secondaire Mi et un port esclave PSi du bus B, et un deuxième lien de communication entre un 5 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 10 sens inverse. De manière similaire, la route de communication entre un module maître principal Ma et le module esclave Sj comprend deux liens de communication : un premier lien de communication entre le module maître Ma et un port esclave PSa du bus B, et un deuxième lien de communication 15 entre le port maître PMj du bus B et le module esclave commun Sj. Les signaux émis par le module maître Ma transitent par le port esclave PSa, 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 20 route en sens inverse. Les deux routes de communications entre le module esclave partage Sj et les modules maître concurrents Ma et Mi ont donc une portion de route commune. 25 Une transaction est en cours entre un module maître (principal Ma ou secondaire Mi) et un module esclave Sj commun. Dans la suite, on prendra l'exemple d'une transaction impliquant un module maître secondaire Mi, mais le procédé s'applique également dans le contexte d'une transaction impliquant un module maitre principal Ma. 30 En référence au diagramme de la figure 4, une première étape « DET » détecte sur la route entre le module maître secondaire Mi et le module esclave Sj un premier signal U1 marquant le début d'une transaction. Lorsque ce premier signal est détecté, un compteur est démarré « COUNT ». Dans le présent document, le terme démarrage » signifie que le compteur entre dans un état dans lequel il s'incrémente de manière autonome, et on définit la valeur du compteur t, comme l'incrément cumulé depuis l'instant de démarrage du compteur. L'instant de démarrage est sensiblement proche de l'instant de réception du premier signal U1 de sorte que la valeur du compteur est sensiblement proportionnelle au temps écoulé depuis l'instant de détection de ce premier signal. Dans une deuxième étape « WAIT », un deuxième signal U2 marquant la fin 10 d'une transaction est attendu. Cette étape d'attente WAIT est réalisée pendant un délai Tm= prédéterminé, et comprend au moins une comparaison de la valeur du compteur t, avec le délai Tm= : si le deuxième signal U2 est détecté dans le délai imparti (t, Tin'), la durée de la transaction est considérée comme anormalement longue, et une étape de clôture « TERM » de la transaction en cours est alors 20 réalisée, permettant de libérer l'accès au module esclave Sj pour d'autres maîtres maintenus en attente. Le compteur est ensuite réinitialisé « RESET », c'est-à-dire que d'une part l'incrémentation du compteur est arrêtée et que d'autre part le compteur est configuré pour un redémarrage ultérieur. Cette réinitialisation peut par 25 exemple comprendre une remise à zéro du compteur, si la valeur mesurée par le compteur après son démarrage est comptée à partir de zéro. A l'issue du procédé décrit, le module principal Ma peut accéder librement au module esclave commun Sj et initier des transactions plus prioritaires. Par ailleurs, si le module maître impliqué dans la transaction est un module 30 maître principal, le procédé décrit permet de d'éviter un blocage permanent du module esclave commun, ce module étant par définition prioritaire par rapport aux modules maîtres secondaires. Le protocole AXI peut être utilisé sur au moins une portion de route entre le 5 module maître Ma, Mi et le module esclave Sj: par exemple, sur le lien de communication entre le module maître Ma, Mi et le port esclave PSi, sur le lien de communication entre le port maître PMj et le module esclave Sj, ou bien sur ces deux liens. Ainsi, des signaux du protocole AXI peuvent être détectés sur cette portion de route et utilisés comme premier signal U1 ou 10 deuxième signal U2 dans le procédé selon l'invention. L'étape de détection initiale DET du signal U1 marquant le début de la transaction peut être réalisée sur le lien de communication entre le module maître Mi et le port esclave PSi du bus B. Cet emplacement de détection permet de déterminer avec certitude le module maître Mi à l'origine de la 15 transaction en cours parmi l'ensemble des modules maîtres secondaires Ml, Mk connectés au même bus B. On peut également réaliser la détection finale du signal U2 marquant la fin de la transaction sur le lien de communication entre le module maître Mi et le port esclave PSi. Le signal U2 étant généralement émis par le module 20 esclave, ce mode de réalisation permet de détecter des lenteurs de communication provoquées par le module esclave Sj, si celui-ci tarde à émettre le signal U2, mais aussi de détecter des problèmes de routage entre le module maître et le module esclave. On pourra par exemple dans ce mode de réalisation détecter des routages incorrects ou même bloqués 25 suite à une défaillance du bus B. Le compteur peut être synchronisé avec une horloge utilisée pour synchroniser des signaux de communication entre le module maître et le module esclave. Le compteur peut être incrémenté à chaque coup d'horloge, et l'étape d'attente WAIT comprendre une vérification de la 30 détection finale du signal de fin de transaction pour chaque coup d'horloge : la détection initiale et la détection finale sont ainsi précises à un coup d'horloge près. On peut par exemple incrémenter le compteur pour chaque front montant détecté sur le signal ACLK d'un lien de communication suivant le protocole AXI ; le délai Tm= peut alors être vu comme un nombre maximal de coups d'horloge. Dans une variante de réalisation, la détection initiale et la détection finale sont réalisées sur le lien de communication entre le module maître Mi et le port esclave PSi du bus B, ce lien de communication suivant le protocole AXI. Dans ce mode de réalisation préféré, les signaux de début de transaction U1 et de fin de transaction U2 sont des signaux définis par le protocole AXI pour des transactions en lecture ou en écriture. Si la transaction en cours est une lecture : le signal U1 peut être un front montant du signal ARVALID. Comme il a été exposé précédemment, le signal ARVALID est maintenu à un pendant la transmission d'une adresse de lecture sur le signal ARADDR auquel le module maître veut accéder sur le module esclave. - le signal U2 peut quant à lui être un front descendant du signal RLAST, signal positionné à un pendant le dernier transfert de données de la transaction en lecture. Une absence de front descendant sur le signal RLAST après une détection d'un front montant sur le signal ARVALID dans le délai Tm= permet ainsi de détecter une lenteur ou un blocage provoqué par le bus B ou bien le module esclave Sj pendant une lecture. Par ailleurs, si la transaction en cours est une écriture : le signal U1 peut être un front montant du signal AVVVALID. Comme il a été également exposé, le signal AVVVALID est maintenu à un pendant la transmission d'une adresse d'écriture sur le signal AWADDR auquel le module maître veut accéder sur le module esclave. le signal U2 peut quant à lui être un front descendant du signal WLAST ou BVALID : o un front descendant du signal WLAST est positionné par le module maître pendant le dernier transfert de données de la transaction en écriture ; o un front descendant du signal BVALID est positionné à un pendant que le module esclave transmet le résultat de l'écriture sur le signal BRESP. Une absence de front descendant sur le signal WLAST après une détection d'un front montant sur le signal ARVALID dans le délai Tm= permet ainsi de détecter une lenteur ou un blocage provoqué par le maître Mi pendant une écriture, tandis qu'une absence de front descendant sur le signal BVALID après une détection d'un front montant sur le signal ARVALID dans le délai Tm= permet de détecter une lenteur ou un blocage provoqué par le bus B ou bien le module esclave Sj pendant une écriture. L'étape de clôture TERM peut comprendre une injection d'un message à destination du maître simulant un résultat erroné de transaction, par exemple la valeur SLVERR dans le cas du protocole AXI. Ainsi, la clôture de la transaction peut être effectuée immédiatement et de manière cohérente de sorte que le module maître puisse tenter ultérieurement une transaction du même type à la même adresse. L'injection peut être réalisée sur un lien de communication suivant le protocole AXI par une séquence de positionnements à la volée de signaux à destination du module maître : Si la transaction est une lecture, le signal RVALID est positionné à un, le signal RRESP est positionné à la valeur SLVERR pendant au moins un coup d'horloge, et le signal RVALID est ensuite positionné à 0 ; Si la transaction est une écriture, le signal BVALID est positionné à un, le signal BRESP est positionné à la valeur SLVERR pendant au moins un coup d'horloge, et le signal BVALID est ensuite positionné à 0. Le procédé peut en outre comporter une étape supplémentaire d'envoi « ERR » d'un message d'exception EX vers un contrôleur d'interruption (non représenté sur les figures) après la clôture TERM. Cette étape ERR permet notamment de notifier un problème de blocage ou de lenteur au module maître Mi initiateur de la transaction, le module esclave cible Sj, ou bien à tout autre module tiers du système sur puce. L'invention ne se limite pas uniquement à la surveillance de signaux définis par le protocole AXI et réalisée dans le mode de réalisation préféré décrit ci- dessus. En effet, le procédé de surveillance selon l'invention peut être généralisé à tout protocole du standard AMBA ou à toute combinaison de protocoles de la famille AMBA utilisée sur une route de communication entre un module maître et un module esclave interconnectés par au moins un bus B. L'invention concerne par ailleurs un dispositif de surveillance WDi, j E ftl, k]] de transactions comprenant des moyens de détection de signaux, des moyens de stockage, N compteurs et des moyens de traitement configurés pour mettre en oeuvre N fois en parallèle le procédé de surveillance de transactions déjà décrit. Les moyens de stockage du dispositif sont prévus pour le stockage de N délais, par exemple une ou plusieurs mémoires flash ou EEPROM. Les délais stockés peuvent être écrits une seule fois avant la mise en service du système sur puce, ou être reconfigurées dynamiquement ; un délai est lu au moins une fois au cours d'une exécution du procédé de surveillance selon l'invention. Le dispositif de surveillance WDi, j E ftl, k]] peut, au choix, être intégré à un bus, faire partie d'un module maître, ou bien être se présenter sous la forme d'un module autonome placé sur la liaison entre un module maître 30 secondaire et un port esclave d'un bus, comme illustré en figure 5. Un dispositif de surveillance WDa peut être placé sur une liaison entre le bus et un module maître principal. Ainsi, le nombre de dispositifs utilisés est adapté au nombre de ports esclaves du bus B utilisés dans le circuit ; les ports esclaves non sollicités n'ont en effet pas besoin d'être surveillés. Dans une variante, le dispositif de surveillance surveille des transactions sur 5 un lien de communication sur lequel transitent des signaux selon le protocole AXI. On a vu précédemment que deux signaux du protocole AXI marquant la fin d'une transaction en écriture peuvent être détectés : WLAST ou BVALID. Aussi, on peut prévoir pour une même transaction en écriture, deux exécutions parallèles du procédé de surveillance décrit, chacune 10 sollicitant un compteur spécifique du dispositif de surveillance et attendant un signal spécifique de fin d'écriture (WLAST ou BVALID). Cette mise en oeuvre simultanée permet de détecter une défaillance d'un module maître, d'un bus de communication et/ou d'un module esclave dans une même écriture. 15 En référence à la figure 5, l'invention concerne également un ensemble comprenant au moins un module maître principal Ma, au moins un module maître secondaire Mi, i e ft1,k, au moins un module esclave Sj, JE R,n]] et un bus B connecté à chaque module par un lien de communication, et au 20 moins un dispositif de surveillance WDi, ieR,k]] tel que décrit précédemment. Le bus B comprend des moyens d'interconnexion pour faire communiquer un module esclave commun Sj avec au moins un module maître principal Ma et avec au moins un module maître secondaire Mi. Le bus B illustré en 25 figure 5 réalise par exemple toutes les interconnexions possibles entre des modules maîtres et des modules esclaves, si bien que tous les modules esclaves sont des modules communs partagés entre plusieurs modules maîtres. Chaque dispositif de surveillance de transactions WDi, e R,k]] est placé 30 sur un lien de communication entre un module maître secondaire Mi, E ftl, k]] et le bus B. L'ensemble peut donc comporter autant de dispositifs de surveillance que de modules maîtres secondaires, comme illustré en figure 5. Un tel ensemble permet de surveiller la durée de toutes les transactions demandées par tous les modules maîtres secondaires du système. De même, un dispositif de surveillance WDa peut être placé sur chaque 5 liaison entre un module maître principal Ma et le bus B. L'invention concerne enfin un système sur puce comprenant au moins un ensemble tel que décrit précédemment. 10 REVENDICATIONS1. Procédé de surveillance de transactions dans un système sur puce comprenant au moins un module maître principal (Ma), au moins un module maître secondaire (M1, ..., Mi, ..., Mk), au moins un module esclave (51, Sj, ..., Sn) et un bus (B) connecté à chaque module par un lien de communication, le bus (B) comprenant des moyens d'interconnexion pour faire communiquer un module esclave commun (Sj) avec au moins un module maître principal (Ma) et avec au moins un module maître secondaire (M1, ..., Mi, ..., Mk), le procédé comprenant les étapes suivantes mises en oeuvre au cours de chaque transaction entre un module maître (Ma, Mi) et un module esclave commun (Sj) : un démarrage (COUNT) d'un compteur lors d'une détection initiale (DET1) d'un signal (U1) de début de transaction, une attente (WAIT) d'une détection finale (DET2) d'un signal (U2) de fin de transaction dans un délai Tm= prédéterminé, une clôture (TERM) de la transaction si le temps écoulé t, depuis le démarrage du compteur est supérieur au délai Tm= prédéterminé, une réinitialisation (RESET) du compteur. 2. Procédé selon la revendication 1, dans lequel la détection initiale (DET1) est réalisée sur le lien de communication entre le module maître (Ma, Mi) et le bus (B). 3. Procédé selon l'une des revendications 1 et 2, dans lequel la détection finale (DET2) est réalisée sur le lien de communication entre le module maître (Ma, Mi) et le bus (B). 4. Procédé selon l'une des revendications 1 à 3, dans lequel les signaux qui transitent sur le lien de communication entre le module maître (Ma, 3 0 0 3 1 1 0 18 Mi) et le bus (B), et/ou sur le lien de communication entre le bus (B) et le module esclave (Sj) sont conformes au protocole de communication AXI. 5. Procédé selon la revendication 4, dans lequel l'étape d'attente (WAIT) 5 comprend une vérification de la détection finale (DET2) du signal de fin de transaction pour chaque incrémentation du compteur, ledit compteur étant incrémenté à chaque détection sur un lien de communication selon le protocole AXI d'un front montant du signal ACLK. 10 6. Procédé selon l'une des revendications 4 à 5, la détection initiale (DET1) est réalisée sur un lien de communication selon le protocole AXI, la transaction est une lecture, et le signal (U1) de début de transaction est un front montant du signal ARVALID. 15 7. Procédé selon l'une des revendications 4 à 6, dans lequel la détection finale (DET2) est réalisée sur un lien de communication selon le protocole AXI, la transaction est une lecture, et le signal (U2) de fin de transaction est un front descendant du signal RLAST. 20 8. Procédé selon l'une des revendications 4 à 7, dans lequel la détection initiale (DET1) est réalisée sur un lien de communication selon le protocole AXI, la transaction est une écriture, et le signal (U1) de début de transaction est un front montant du signal AVVVALID. 25 9. Procédé selon l'une des revendications 4 à 8, dans lequel la détection finale (DET2) est réalisée sur un lien de communication selon le protocole AXI, la transaction est une écriture, et le signal (U2) de fin de transaction est un front descendant du signal BVALID. 30 10. Procédé selon l'une des revendications 4 à 9, dans lequel la détection finale (DET2) est réalisée sur un lien de communication suivant le 3 0 0 3 1 1 0 19 protocole AXI, la transaction est une écriture, et le signal (U2) de fin de transaction est un front descendant du signal WLAST. 11. Procédé selon l'une des revendications 4 à 10, dans lequel l'étape de 5 clôture (TERM) comprend une injection sur un lien de communication suivant le protocole AXI de la valeur SLVERR à destination du module maître. 12. Dispositif (WD1, WDi, WDk) de surveillance de transactions 10 comprenant des moyens de détection de signaux, des moyens de stockage, N compteurs et des moyens de traitement configurés pour mettre en oeuvre N fois en parallèle le procédé de surveillance de transactions selon l'une des revendications 1 à 11. 15 13. Système sur puce comprenant au moins un module maître principal (Ma), au moins un maître secondaire (M1, ..., Mi, ..., Mk), au moins un module esclave (Si, Sj, ..., Sn) et un bus (B) connecté à chaque module par un lien de communication, le bus (B) comprenant des moyens d'interconnexion pour faire communiquer un module esclave 20 commun (Sj) avec au moins un module maître principal (Ma) et avec au moins un module maître secondaire (M1, ..., Mi, ..., Mk), et au moins un dispositif de surveillance de transactions (WD1, WDi, WDk) selon la revendication 12, chaque dispositif de surveillance étant placé sur un lien de communication entre un module maître secondaire (M1, ..., Mi, 25 Mk) et le bus (B). 14. Système sur puce selon la revendication 13, dans lequel un dispositif de surveillance (WDa) est également placé sur un lien de communication entre un module maître principal (Ma) et le bus (B).