Brevet FR3117225A1 — publié le 20220610

Le procédé de réinitialisation d’un dispositif maître, configuré pour initier des transactions sur un bus d’un système sur puce, comprend une surveillance d’un état terminé ou non des transactions initiées par le dispositif maître. En cas de réception d’une commande de réinitialisation du dispositif maître, le procédé comprend une transmission d’une commande de réinitialisation effective au dispositif maître lorsque les transactions initiées par le dispositif maître sont à l’état terminé. Figure de l’abrégé : figure 1 Procédé de réinitialisation d’un dispositif maître d’un système sur puce et système sur puce correspondant Des modes de mise en œuvre et de réalisation concernent les systèmes sur puce, et en particulier la réinitialisation de dispositifs maîtres capables d’initier des transactions sur un bus de système sur puce. Les systèmes sur puce comprennent typiquement un ou plusieurs dispositif(s) maître(s) capable(s) d’initier des transactions sur un ou plusieurs bus. Une transaction est typiquement initiée par l’émission d’une requête par un maître, et s’achève par la réception d’une réponse émise par un dispositif esclave ou par un autre dispositif maître qui possède une interface de control fonctionnant en mode esclave. Les transactions « non-résolues » (usuellement « outstanding » en anglais) peuvent être initiées consécutivement, c’est-à-dire que de nouvelles requêtes peuvent être émises par le maître avant réception des réponses aux requêtes précédentes. Lors de la réinitialisation d'un dispositif maître, le système doit tenir compte des transactions en cours sur le bus. En effet, si une réinitialisation d'un maître se produit alors que le maître émet une transaction sur le bus, la transaction peut être incomplète et le bus peut se bloquer, au point de nécessiter une réinitialisation du système complet. Et, si une réinitialisation d'un maître se produit alors que le maître attend la réponse d’une transaction sur le bus, des réponses orphelines seront présentes sur le bus et ne seront pas comprises par le maître après réinitialisation, au risque de produire un dysfonctionnement du dispositif maître. Pour tenir compte de ces contraintes, une solution classique est de réinitialiser le système complet, ou une partie cohérente du système, pour retrouver après redémarrage un état vierge, connu, maitrisé du système ou de la partie du système. Cette solution n’est pas applicable aux systèmes sur puce comprenant plusieurs dispositifs maîtres, dans lesquels l’un des maîtres exécute une fonction critique, tel que le contrôle d’un moteur. Une autre solution classique est d’attendre que le dispositif maître entre dans un état d’attente d’interruption (« Wait For Interrupt » en anglais) pour garantir qu'aucune transaction n’est en cours lors de la réinitialisation. Cette solution ne fonctionne pas lorsque le processeur est bloqué de façon logicielle, par exemple dans une boucle infinie, et n’entre pas dans l’état d’attente d’interruption. Dans ce cas, la réinitialisation ne se produit jamais et une réinitialisation du système complet doit être appliquée. Une autre solution classique est de réinitialiser le bus affecté par la transaction en même temps que le maître. Cela requiert une architecture de bus spécifique et une corrélation profonde entre l'infrastructure de bus et le dispositif maître, qui peut limiter le choix des dispositifs maîtres dans le système et/ou contraindre l’architecture du système d’interconnexion. Il existe donc un besoin de sécuriser les réinitialisations des dispositifs maîtres des systèmes sur puce, sans subir les contraintes susmentionnées, c’est-à-dire notamment sans réinitialiser tous les dispositifs connectés sur le bus, d’être compatible avec les blocages logiciels, et sans imposer l’infrastructure des bus et des dispositifs maîtres qui y sont connectés. Selon un aspect, il est proposé à cet égard un procédé de réinitialisation d’un dispositif maître configuré pour initier des transactions sur un bus d’un système sur puce, comprenant une surveillance d’un état terminé ou non des transactions initiées par le dispositif maître, et, en cas de réception d’une commande de réinitialisation du dispositif maître, une réinitialisation effective du dispositif maître lorsque les transactions initiées par le dispositif maître sont à l’état terminé. En d’autres termes, il est proposé d’intercepter une commande de réinitialisation et de ne la retransmettre au dispositif maître seulement lorsque toutes les transactions précédentes sur le bus sont terminées. Cela permet de garantir un état compatible des transactions sur le bus avec la réinitialisation du dispositif maître, et d’éviter notamment la présence d’une transaction incomplète sur le bus et une réception d’une réponse orpheline par le dispositif maître. Le procédé selon cet aspect est en outre compatible avec tout type de bus de protocole de communication associé. Selon un mode de mise en œuvre, la surveillance comprend une détection de signaux transitant sur des ports d’entrée et de sortie d’une interface entre le dispositif maître et le bus. Une détection de la présence de signaux sur l’entrée et la sortie de l’interface peut en effet permettre de surveiller si les transactions initiées par le dispositif maître sont terminées ou non, de façon avantageusement simple et compatible avec tout type de protocole de communication. Selon un mode de mise en œuvre, une transaction comprend une émission d’une requête sur le port de sortie de l’interface et une réception d’une réponse sur le port d’entrée de l’interface, et ladite surveillance comprend un comptage du nombre de requêtes émises sur le port de sortie et un comptage du nombre de réponses reçues sur le port d’entrée, un nombre de réponses reçues égal au nombre de requêtes émises étant représentatif de l’état terminé des transactions initiées par le dispositif maître. Ainsi, tant que la différence entre le nombre compté de requêtes émises et le nombre compté de réponses reçues n’est pas nulle, les transactions initiées par le dispositif maître sur les bus sont à l’état non-terminé. Selon un mode de mise en œuvre, un signal de blocage est généré au moment de la réception de la commande de réinitialisation du dispositif maître, de façon à bloquer l’initiation d’une nouvelle transaction par le dispositif maître. En cas de réception de la commande de réinitialisation du dispositif maître pendant la transmission d’une requête, le signal de blocage est avantageusement généré après la fin de la transmission de cette requête. Le signal de blocage peut être généré à cet égard immédiatement après la fin de l’émission d’une requête par le dispositif maître, si la commande de réinitialisation est reçue pendant cette émission, afin de bloquer l’initiation d’une prochaine (nouvelle) transaction. Selon un mode de mise en œuvre, la génération du signal de blocage comprend une activation d’un signal de réinitialisation effective, et la réinitialisation effective du dispositif maître comprend une désactivation du signal de réinitialisation effective, lorsque les transactions initiées par le dispositif maître sont à l’état terminé et lorsque la commande de réinitialisation reçue a pris fin. Par « activation d’un signal », on entend « placement du signal à un premier niveau logique », par exemple le niveau haut pour un « 1 » logique, et par « désactivation », on entend « placement du signal à un deuxième niveau logique », par exemple le niveau bas pour un « 0 » logique. La commande de réinitialisation, vue par le dispositif maître, est en effet typiquement communiquée par une activation d’un signal, ici appelé signal de réinitialisation effective, qui impose un arrêt de l’activité et une remise à zéro du dispositif maître, suivi d’une désactivation du signal de réinitialisation effective qui autorise un redémarrage de l’activité remise à zéro. Une transaction comprend typiquement une réponse transmise sur le bus, et, avantageusement, les réponses transmises sur le bus lorsque le signal de réinitialisation effective est activé ne sont pas communiquées au dispositif maître et sont effacées du bus. Par « effacées du bus », on entend que les réponses sont reçues, et éventuellement confirmées, de manière à clore la transaction du point de vue du dispositif émetteur de la réponse. Selon un autre mode de mise en œuvre, la génération du signal de blocage comprend une transmission au dispositif maître d’un signal d’état du bus forcé à l’état occupé, la réinitialisation effective du dispositif maître comprenant une activation impulsionnelle d’un signal de réinitialisation effective. En effet, un signal d’état du bus peut classiquement être prévu, par exemple pour communiquer un état prêt (« ready » en anglais) ou un état occupé (« busy » en anglais) afin de réaliser une procédure d’établissement de liaison (« handshake » selon le terme anglais usuel), et, ce signal d’état du bus est avantageusement forcé à l’état occupé, afin de bloquer l’initiation d’une nouvelle transaction en réutilisant la fonction initiale du signal d’état. Cela présente l’avantage de s’adapter parfaitement dans un système prévoyant ce type de signal d’état du bus, comme par exemple dans les protocoles de communication sur les bus du type architecture avancée de bus de microcontrôleur « AMBA » (pour « Advanced Microcontroller Bus Architecture » selon le terme usuel anglais). Par exemple, une transaction comprenant une réponse transmise sur le bus, les réponses transmises sur le bus lorsque le signal d’état du bus est forcé à l’état occupé peuvent être communiquées au dispositif maître. Le dispositif maître peut ainsi réceptionner les données et les « effacer » du bus, c’est-à-dire clore la transaction du point de vue du périphérique émetteur de la réponse. Selon un mode de mise en œuvre, une commande auxiliaire de réinitialisation est générée en cas de réception d’une commande de réinitialisation du dispositif maître, et si les transactions initiées par le dispositif maître sont à l’état non-terminé après expiration d’un temps de réponse maximal. La commande auxiliaire permet ainsi de bénéficier d’une alternative dans le processus de réinitialisation en cas de problème conduisant à des transactions qui ne seraient jamais terminées. La commande auxiliaire de réinitialisation peut par exemple être destinée à un dispositif de commande sécurisé, capable de prendre une décision sécurisée en la matière, ou éventuellement à commander en dernier recours une réinitialisation du système complet. Selon un autre aspect, il est proposé un système sur puce comprenant un bus et au moins un dispositif maître configuré pour initier des transactions sur le bus, dans lequel un circuit de gestion de réinitialisation comportant une entrée destinée à recevoir une commande de réinitialisation du dispositif maître, est configuré pour surveiller un état terminé ou non des transactions initiées par le dispositif maître, et, en cas de réception d’une commande de réinitialisation sur l’entrée, pour réinitialiser le dispositif maître de façon effective lorsque les transactions initiées par le dispositif maître sont à l’état terminé. Selon un mode de réalisation, le circuit de gestion de réinitialisation est configuré pour détecter des signaux transitant sur des ports d’entrée et de sortie d’une interface entre le dispositif maître et le bus, afin de surveiller ledit état terminé ou non desdites transactions. Selon un mode de réalisation, une transaction comprend une émission d’une requête sur le port de sortie de l’interface et une réception d’une réponse sur le port d’entrée de l’interface, et le circuit de gestion de réinitialisation est configuré pour surveiller ledit état terminé ou non desdites transactions en comptant le nombre de requêtes émises sur le port de sortie et en comptant le nombre de réponses reçues sur le port d’entrée, un nombre de réponses reçues égal au nombre de requêtes émises étant représentatif de l’état terminé des transactions initiées par le dispositif maître. Selon un mode de réalisation, le circuit de gestion de réinitialisation est configuré pour générer un signal de blocage au moment de la réception de la commande de réinitialisation du dispositif maître sur l’entrée, de façon à bloquer l’initiation d’une nouvelle transaction par le dispositif maître. En cas de réception de la commande de réinitialisation du dispositif maître pendant la transmission d’une requête, le circuit de gestion de réinitialisation est avantageusement configuré pour générer le signal de blocage après la fin de la transmission de cette requête. Avantageusement, le circuit de gestion de réinitialisation est configuré pour générer le signal de blocage en activant un signal de réinitialisation effective, et pour réinitialiser le dispositif maître de façon effective en désactivant le signal de réinitialisation effective, lorsque les transactions initiées par le dispositif maître sont à l’état terminé et lorsque la commande de réinitialisation reçu sur l’entrée a pris fin. Avantageusement, une transaction comprend une réponse transmise sur le bus, et le circuit de gestion de réinitialisation est configuré pour ne pas communiquer au dispositif maître et effacer du bus les réponses transmises sur le bus lorsque le signal de réinitialisation effective est activé. Selon un mode de réalisation, le circuit de gestion de réinitialisation est configuré pour générer le signal de blocage en transmettant au dispositif maître un signal d’état du bus forcé à l’état occupé, et pour réinitialiser le dispositif maître de façon effective en activant de façon impulsionnelle un signal de réinitialisation effective. Avantageusement, une transaction comprend une réponse transmise sur le bus, et le circuit de gestion de réinitialisation est configuré pour communiquer au dispositif maître les réponses transmises sur le bus, lorsque le signal d’état du bus est forcé à l’état occupé. Selon un mode de réalisation, le circuit de gestion de réinitialisation est configuré pour générer une commande auxiliaire de réinitialisation, en cas de réception d’une commande de réinitialisation du dispositif maître, et si les transactions initiées par le dispositif maître sont à l’état non-terminé après expiration d’un temps de réponse maximal. D’autres avantages et caractéristiques de l’invention apparaîtront à l’examen de la description détaillée de modes de réalisation et de mise en œuvre, nullement limitatifs, et des dessins annexés, sur lesquels : illustrent des modes de réalisation et de mise en œuvre de l’invention. La représente un système sur puce SYS comprenant un premier dispositif maître MT_A connecté sur un premier bus BUS_1 par l’intermédiaire d’une première interface INTF_A, ainsi qu’un deuxième dispositif maître MT_B connecté sur un deuxième bus BUS_2 par l’intermédiaire d’une deuxième interface INTF_B. Les dispositifs maîtres MT_A, MT_B sont capables d’initier des transactions sur les bus BUS_1, BUS_2. Une transaction est initiée par l’émission d’une requête, et est close, ou terminée, par la réception d’une réponse à la requête. Les dispositifs maîtres MT_A, MT_B peuvent par exemple être des unités de traitement, du type processeurs, de fonction centrale ou spéciale, ou encore des éléments de fonction particulière tel qu’un dispositif d’accès direct en mémoire DMA (pour « Direct Memory Access » en anglais). Les dispositif maître MT_A, MT_B peuvent être capable d’alterner entre des fonctions du type maitre ou du type esclaves sur des interfaces différentes, les interface INTF_A, INTF_B respectives étant les interfaces du type maître (les interfaces du type esclave ne sont pas représentées). Des périphériques PRPH_1, PRPH_N, par exemple de fonctions du type esclave, sont connectés sur le premier bus BUS_1, et des périphériques PRPH_N+1, PRPH_M, par exemple de fonctions du type esclave, sont connectés sur le deuxième bus BUS_2. Le premier bus BUS_1 et le deuxième bus BUS_2 sont dans cet exemple reliés par une passerelle BRDG permettant de traduire des communications d’un bus à l’autre. Par exemple le premier bus BUS_1 peut être du type AXI (« Advanced eXtensible Interface » en anglais, et bien connu de l’homme de l’art) et le deuxième bus peut être du type AHB (« Advanced High-performance Bus » en anglais, et bien connu de l’homme de l’art) Bien entendu, d’autres types de bus de système sur puce sont envisageable, notamment les bus usuellement nommées AMBA et bien connu par l’homme du métier (pour « Advanced Microcontroller Bus Architecture » en anglais), tels que les bus APB (« Advanced Peripheral Bus » en anglais) ou ASB (pour « Advanced System Bus » en anglais). Par ailleurs, les deux bus BUS_1, BUS_2 peuvent être de même technologie et ne former qu’un seul et même bus, ou encore d’autres bus de technologies non-mentionnées ici pourraient être prévus dans le système sur puce SYS. Le système sur puce SYS comporte un dispositif contrôleur d’horloge et de réinitialisation RCC destiné à fournir des signaux d’horloge (non représentés) et des commandes de réinitialisation COM_RST destinées notamment aux dispositifs maîtres MT_A, MT_B, et plus généralement aux périphériques connectés sur les bus BUS_1, BUS_2 du système sur puce SYS. La voie de transmission des commandes de réinitialisation COM_RST n’est pas en relation avec les communications transmises sur les bus BUS_1, BUS_2 et, pour cette raison, est dite asynchrone. Un circuit de gestion de réinitialisation GST_A, GST_B est prévu pour chaque, ou pour au moins un, dispositif maître MT_A, MT_B. Les circuits de gestion de réinitialisation GST_A, GST_B sont configurés pour recevoir la commande de réinitialisation asynchrone COM_RST destiné au dispositif maître respectif MT_A, MT_B. Chaque circuit de gestion de réinitialisation GST_A, GST_B est configuré pour retransmettre au dispositif maître MT_A, MT_B correspondant une commande de réinitialisation COM_RST_EFF, de façon effective vis-à-vis de l’état des transactions en cours au moment de la commande de réinitialisation COM_RST. En effet, chaque circuit de gestion de réinitialisation GST_A, GST_B comporte une entrée destinée à recevoir la commande de réinitialisation COM_RST du dispositif maître MT_A, MT_B, et est configuré pour surveiller un état terminé ou non des transactions initiées par le dispositif maître MT_A, MT_B. En cas de réception d’une commande de réinitialisation RST sur l’entrée, le circuit de gestion de réinitialisation GST_A, GST_B est configuré pour réinitialiser le dispositif maître MT_A, MT_B de façon effective lorsque les transactions initiées par le dispositif maître sont à l’état terminé. La réinitialisation du dispositif maître est faite au moyen de la commande de réinitialisation dite « effective » COM_RST_EFF. Dans cet exemple, les circuits de gestion de réinitialisation GST_A, GST_B sont interposés aux interfaces INTF_A, INTF_B entre le dispositif maître respectif MT_A, MT_B et le bus respectif BUS_1, BUS_2, par exemple afin de détecter des signaux transitant sur des ports d’entrée et de sortie desdites interfaces INTF_A, INTF_B. On se réfère à cet égard à la . La illustre un exemple de réalisation d’un circuit de gestion de réinitialisation GST tel que décrit précédemment en relation avec la . Le circuit de gestion de réinitialisation GST est interposé à l’interface entre le dispositif maître respectif et le bus BUS. Le circuit de gestion de réinitialisation GST est configuré pour transmettre, sans modifier, des requêtes émises par le dispositif maître sur un port de sortie MT_OUT de l’interface et des réponses reçues sur un port d’entrée MT_IN de l’interface. Dans un exemple d’interface comportant des registres d’entrée-sortie prévus pour faire transiter les données des transactions (usuellement désignés « register slice » en anglais), la surveillance de l’état terminé ou non-terminé des transactions initiées par le dispositif maître peut par exemple être faite sur lesdits registres. Le circuit de gestion de réinitialisation GST comporte un élément de synchronisation RST_SYNC ayant une entrée connectée à la voie de transmission de commande de réinitialisation COM_RST émise par le dispositif contrôleur d’horloge et de réinitialisation RCC. L’élément de synchronisation RST_SYNC est configuré pour synchroniser une commande de réinitialisation effective COM_RST_EFF, avec l’obtention d’un état terminé des transactions initiées sur le bus BUS par le dispositif maître. Le circuit de gestion de réinitialisation GST comporte un compteur de requêtes CNT_REQ configuré pour compter le nombre de requêtes émises par le dispositif maître, et un compteur de réponses CNT_ANS configuré pour compter le nombre de réponses reçues. Par exemple, le compteur de requêtes CNT_REQ est capable de détecter des signaux transitant sur le port de sortie MT_OUT de l’interface, pour compter lesdites requêtes ; et, de façon similaire, le compteur de réponse CNT_ANS est capable de détecter des signaux transitant sur le port d’entrée MT_IN de l’interface, pour compter lesdites réponses. A cet effet, les compteurs peuvent se baser sur seulement une partie des signaux du protocole pour détecter une requête ou une réponse, et sont par exemple réalisés par un circuit de logique combinatoire. Les nombres comptés sont communiqués à l’élément de synchronisation RST_SYNC, qui est configuré pour soustraire le nombre de réponses comptées au nombre de requêtes comptées, le résultat donnant le nombre de transaction en cours sur le bus BUS. Avantageusement pour limiter la taille des compteurs, un même compteur peut être incrémenté pour chaque requête émise, et décrémenté pour chaque réponse reçue, de façon à être directement représentatif du nombre de transactions en cours sur le bus BUS. En d’autres termes, les compteurs n’ont pas besoin d’effectuer une lecture des signaux et une analyse de leur contenu, mais la simple détection d’une présence d’un signal, par exemple en transit dans les registres d’entrée-sortie ou par une détection logique sur les signaux de protocole, permet d’effectuer les comptages pour surveiller l’état terminé ou non des transactions initiées par le dispositif maître Ainsi, un nombre nul de transaction en cours sur le bus BUS est représentatif d’un état terminé des transactions initiées par le dispositif maître, tandis qu’un nombre non-nul de transaction en cours sur le bus BUS est représentatif d’un état non-terminé des transactions initiées par le dispositif maître. Comme il apparaîtra plus en détails dans la suite, l’élément de synchronisation RST_SYNC est configuré pour générer un signal de blocage afin de bloquer l’initiation d’une nouvelle transaction par le dispositif maître, au moment de la réception de la commande de réinitialisation RST sur l’entrée. Le signal de blocage peut par exemple être matérialisé par une activation d’un signal de réinitialisation effective RST_EFF (figures 4 à 6) par lequel est portée la commande de réinitialisation effective COM_RST_EFF. On notera une distinction entre la commande de réinitialisation effective et le signal de réinitialisation effective. En effet, la commande de réinitialisation effective communique une logique d’instruction, et est portée par le signal de réinitialisation effective. Le signal de réinitialisation effective peut avoir deux niveaux logiques, un niveau haut ou un niveau bas, dont les valeurs logiques et la traduction de ces valeurs en termes d’instruction sont choisis arbitrairement. On dira que le signal de réinitialisation effective est « activé » au niveau choisi pour produire un effet de commande, et que le signal de réinitialisation effective est « désactivé » au niveau de repos, choisi pour ne pas produire d’effet de commande propre. On définit de façon conventionnelle que le signal de réinitialisation effective est activé au niveau haut et désactivé au niveau bas. La commande de réinitialisation effective produit quant à elle une « remise à zéro » des éléments variables du dispositif maître ainsi qu’un blocage de son activité sur le bus lorsque le signal de réinitialisation effective est activé, puis un redémarrage à l’état initial et un fonctionnement normal du dispositif maître sont permis lorsque le signal de réinitialisation effective est désactivé. Ainsi, dans cet exemple, l’élément de synchronisation RST_SYNC active le signal de réinitialisation effective RST_EFF (figures 4 à 6) pour bloquer l’initiation d’une nouvelle transaction par le dispositif maître, et désactive le signal de réinitialisation effective RST_EFF lorsque les transactions initiées sur le bus BUS sont à l’état terminé, et que la commande de réinitialisation RST est terminée. L’élément de synchronisation RST_SYNC peut être configuré pour fournir un signal de confirmation de réinitialisation ACKRST (usuellement « acknowledgment » en anglais), après la réinitialisation effective. Dans cet exemple particulier de réalisation, le circuit de gestion de réinitialisation GST comporte en outre un élément de réception ANS_DRP configuré pour effacer du bus d’éventuelles réponses transmises lorsque le dispositif maître est bloqué de la sorte. Les réponses reçues lorsque le dispositif maître est bloqué ne sont pas communiquées au dispositif maître. Par « effacées du bus », on entend que les réponses sont reçues, et éventuellement qu’un signal de confirmation (par exemple du type « acknowledgement » en anglais) est émis à destination du périphérique émetteur de la réponse, de manière à clore la transaction sur le bus BUS correctement selon le protocole utilisé. Par ailleurs, le circuit de gestion de réinitialisation GST peut comporter une entrée de réinitialisation propre, destinée à recevoir un signal de réinitialisation RST_GST dédié au circuit de gestion de réinitialisation GST. Cela est prévu notamment pour une commande de réinitialisation du système complet, y compris du circuit de gestion de réinitialisation GST, pour repartir d’un état vierge. On se réfère désormais aux figures 3 à 6. La est un diagramme fonctionnel illustrant un exemple d’exécution de la réinitialisation d’un dispositif maître, mise en œuvre par un circuit de gestion de réinitialisation GST tel que décrit précédemment en relation avec la . Les figures 4, 5 et 6 sont des diagrammes temporels représentant les signaux en jeu lors de l’exécution de la réinitialisation selon cet exemple, et pour différentes situations. Dans les dessins, par concision, le terme « réinitialisation » est remplacé par le terme anglais usuel « reset ». A une étape 310 du procédé de réinitialisation du dispositif maître 300, une commande de réinitialisation du dispositif maître est reçue. Le procédé comprend d’une part une étape 320 de vérification si une transaction est en train d’être initiée par le dispositif maître, c’est-à-dire si la génération d’une requête est en cours. Par exemple, le compteur de requête CNT_REQ peut être prévu à cet effet et transmettre l’information à l’élément de synchronisation RST_SYNC. Si une requête est en cours de génération lors de la réception de la commande de réinitialisation 310, alors l’étape 320 attend (Y) jusqu’à ce que la requête ait fini d’être générée. S’il n’y a pas de génération de requête en cours ou lorsque la requête a fini d’être générée (N), alors le signal de réinitialisation effective est activé à l’étape 330, de façon à bloquer l’initiation d’une nouvelle transaction par le dispositif maître. Ensuite, à une étape 340, le procédé attend (Y) qu’il n’y ait plus de réponse en attente aux requête précédemment initiées par le dispositif maître. En d’autres termes, l’étape 340 correspond à la surveillance d’un état terminé ou non des transactions initiées par le dispositif maître. Après l’étape 340, lorsque toutes les réponses en attente sont reçues, et donc que les transactions initiées sont à l’état terminé (N), le procédé comprend une étape 350 de vérification que la commande de réinitialisation a pris fin, et éventuellement d’attente (N) que la commande de réinitialisation prenne fin. Comme mentionné précédemment pour la commande de réinitialisation effective, la commande de réinitialisation reçue à l’étape 310 comprend l’activation d’un signal, et prend fin lorsque que ce signal est désactivé. Enfin, à l’étape 360, le signal de réinitialisation effective est désactivé après que les transactions initiées soient à l’état terminé 340 (Y), et après que le signal de commande de réinitialisation soit désactivé 350 (N). En outre, après l’étape 360, le procédé peut comprendre la transmission du signal de confirmation de réinitialisation ACKRST (non représentée). La représente les signaux générés lors du procédé 300 dans le cas où aucune transaction TRSCT n’a été initiée avant ou pendant la réception de la commande de réinitialisation COM_RST. Ainsi, le nombre de transactions en cours TRSCT_NB est nul, et le signal de réinitialisation effective RST_EFF est activé et désactivé en même temps que le signal de réinitialisation RST. En d’autres termes, la réinitialisation effective COM_RST_EFF est commandée au dispositif maître en même temps que la commande de réinitialisation COM_RST est reçue. La représente les signaux générés lors du procédé 300 dans le cas où une transaction TRSCT est initiée par le dispositif maître pendant la réception de la commande de réinitialisation COM_RST. Ainsi, le signal de réinitialisation effective RST_EFF est activé après la fin de la génération de la requête REQ, et le nombre de transactions en cours TRSCT_NB vaut 1, ce qui est représentatif d’un état non-terminé des transactions initiées par le dispositif. Le signal de réinitialisation est maintenu activé jusqu’à ce que le nombre de transactions en cours TRSCT_NB devienne nul. A l’issue de la réception de la réponse ANS à la requête REQ, le nombre de transactions en cours TRSCT_NB est nul, les transactions initiées par le dispositif maître sont donc à l’état terminé, et le signal de réinitialisation effective RST_EFF est désactivé. Après la commande de réinitialisation effective COM_RST_EFF, la confirmation ACKRST peut être transmise. La représente les signaux générés lors du procédé 300 dans le cas où des transactions TRSCT sont initiées par le dispositif maître avant et pendant la réception de la commande de réinitialisation COM_RST. Le nombre de transactions en cours TRSCT_NB est donc à 1 au moment de la réception de la commande de réinitialisation COM_RST, et porté à 2 à l’issue de la génération d’une deuxième requête REQ2. Le nombre de transaction en cours TRSCT_NB revient à 1 après la réception de la réponse ANS1 à la première requête REQ1, et devient nul après la réception de la réponse ANS2 à deuxième requête REQ2. Les réponses ANS1, ANS2 ne sont pas communiquées au dispositif maître et sont effacées du bus. Lorsque les transactions initiées par le dispositif maître sont à l’état terminé (i.e. le nombre de transactions en cours TRSCT_NB est nul), le signal de réinitialisation effective RST_EFF est désactivé et la confirmation ACKRST peut être transmise. La illustre un exemple de réalisation du circuit de gestion de réinitialisation GST en alternative à l’exemple décrit précédemment en relation avec la . Les éléments communs entre ces exemples de réalisation supportent néanmoins les mêmes références et ne seront pas tous détaillés à nouveau dans la suite. Cet exemple diffère de l’exemple en relation avec la en ce que le circuit GST ne comporte pas l’élément de réception ANS_DRP, mais comporte un circuit de blocage BUS_GAT configuré pour transmettre un signal d’état BUS_ST du bus BUS au dispositif maître. Le signal d’état BUS_ST est destiné à réaliser une procédure d’établissement de liaison (« handshake » en anglais) entre le dispositif maître et le bus BUS, afin de déterminer si le bus BUS peut accepter une nouvelle requête. Le signal d’état BUS_ST peut typiquement avoir un état prêt (« ready » en anglais) ou un état occupé (« busy » en anglais). Ce type de signal d’état BUS_ST est par exemple utilisé dans la communication sur un bus d’interface extensive avancée « AXI » (pour « Advanced eXtensible Interface » en anglais). Sommairement, dans la procédure d’établissement de liaison dans le protocole AXI, un signal de validité « valid » est envoyé par le dispositif maître pour informer le périphérique de destination que les informations sur le bus BUS peuvent être lues. Le signal d’état BUS_ST est fourni par un system de gestion de flux, intégré au bus BUS pour informer que le bus est prêt, et donc opérationnel pour accepter une nouvelle transaction, ou qu’il est occupé et donc pas opérationnel pour accepter une nouvelle transaction. Si un signal occupé est transmis au dispositif maître, alors ce dernier ne peut pas envoyer de nouvelle requête. Le circuit de gestion de réinitialisation GST peut être configuré pour retransmettre le signal d’état BUS_ST reçu sur le bus BUS, en fonctionnement normal. Et, en cas de réception d’une commande de réinitialisation COM_RST, l’élément de synchronisation est avantageusement configuré pour forcer le signal d’état BUS_ST à l’état occupé, afin de bloquer l’initiation d’une nouvelle transaction par le dispositif maître. Ainsi, dans cet exemple, la génération du signal de blocage permettant de bloquer l’initiation d’une nouvelle transaction par le dispositif maître, est exécutée par le forçage à l’état occupé du signal d’état BUS_ST. Dans cet exemple, les réponses transmises sur le bus lorsque le signal d’état du bus BUS_ST est forcé à l’état occupé sont communiquées normalement au dispositif maître. On se réfère désormais aux figures 8 à 10. La est un diagramme fonctionnel illustrant l’exécution de la réinitialisation d’un dispositif maître, mise en œuvre par un circuit de gestion de réinitialisation GST tel que décrit précédemment en relation avec la . Les figures 9 et 10 sont des diagrammes temporels représentant les signaux en jeu lors de l’exécution de la réinitialisation selon cet exemple, et pour différentes situations. A une étape 810 du procédé de réinitialisation du dispositif maître 800, une commande de réinitialisation du dispositif maître est reçue. Le procédé comprend une étape de vérification 820 si une transaction est en train d’être initiée par le dispositif maître, similaire à l’étape de vérification 320 décrite précédemment en relation avec la . S’il n’y a pas de génération de requête en cours ou lorsque la requête a fini d’être générée (N), alors le signal d’état du bus est forcé à l’état occupé BSY, lors d’une étape 830, de façon à bloquer l’initiation d’une nouvelle transaction par le dispositif maître. Une étape de surveillance 840 attend (Y) un état terminé des transactions initiées par le dispositif maître. Après l’étape 840, lorsque toutes les réponses en attente sont reçues, et donc que les transactions initiées sont à l’état terminé (N), la commande de réinitialisation effective est générée lors d’une étape 850. La réinitialisation effective est commandée par une impulsion du signal de réinitialisation effective, c’est-à-dire une activation du signal pendant une durée suffisamment longue pour réinitialiser le dispositif maître, et une désactivation du signal. Bien entendu, une étape de vérification (non représentée) similaire à l’étape de vérification 350 décrite précédemment en relation avec la peut être prévue entre l’étape de surveillance 840 et l’étape de génération de la commande de réinitialisation effective 850. Et, après l’étape 850, le procédé 800 peut aussi comprendre la transmission du signal de confirmation de réinitialisation ACKRST (non représenté). La représente les signaux générés lors du procédé 800 dans le cas où une transaction TRSCT est initiée par le dispositif maître pendant la réception de la commande de réinitialisation COM_RST. Ainsi, le signal d’état du bus BUS_ST est initialement à l’état prêt RDY, et est forcé à l’état occupé BSY après la fin de la génération de la requête REQ. Bien entendu, le nombre de transactions en cours TRSCT_NB passe à 1, et représente un état non-terminé des transactions initiées par le dispositif maître. Le signal d’état du bus BUS_ST est occupé BSY jusqu’à ce que le nombre de transactions en cours TRSCT_NB devienne nul. A l’issue de la réception de la réponse ANS à la requête REQ, le nombre de transactions en cours TRSCT_NB est nul, ce qui représente un état terminé des transactions initiées par le dispositif maître. En conséquence, la commande de réinitialisation effective COM_RST_EFF est générée sous la forme d’une activation impulsionnelle du signal de réinitialisation effective RST_EFF. En outre, le signal d’état du bus BUS_ST n’est plus forcé et reprend sa fonction d’établissement de liaison et repasse par exemple à l’état prêt RDY. Après la commande de réinitialisation effective COM_RST_EFF, la confirmation ACKRST peut être transmise. La représente les signaux générés lors du procédé 800 dans le cas où des transactions TRSCT sont initiées par le dispositif maître avant et pendant la réception de la commande de réinitialisation COM_RST. Le nombre de transaction en cours TRSCT_NB est donc à 1 au moment de la réception de la commande de réinitialisation COM_RST. Avant de recevoir la commande de réinitialisation COM_RST, le signal d’état du bus BUS_ST n’est pas forcé à l’état occupé (BSY) et reste prêt RDY. A l’issue de la génération d’une deuxième requête REQ2, le nombre de transaction en cours TRSCT_NB est porté à 2, et, étant représentatif d’un état non-terminé des transactions sur le bus, le signal d’état du bus BUS_ST est forcé à l’état occupé BSY. Le nombre de transaction en cours TRSCT_NB revient à 1 après la réception de la réponse ANS2 à la deuxième requête REQ2, et devient nul après la réception de la réponse ANS1 à première requête REQ1. Les réponses ANS2, ANS1 sont communiquées au dispositif maître normalement. Lorsque les transactions initiées par le dispositif maître sont à l’état terminé (i.e. le nombre de transaction en cours TRSCT_NB est nul), la commande de réinitialisation effective COM_RST_EFF est générée sous la forme d’une impulsion dans le signal de réinitialisation effective RST_EFF, le signal d’état du bus BUS_ST repasse à l’état prêt RDY et la confirmation ACKRST peut être transmise. Les réponses ANS2, ANS1 peuvent être reçues dans un ordre différent de l’ordre d’émission des requêtes REQ1, REQ2. On remarquera que de façon avantageusement simple et polyvalente, la surveillance ne comprend pas une identification des réponses reçues, et ne tient donc pas compte de l’ordre de réception des réponse reçues pour évaluer l’état terminé ou non des transactions initiées par le maître. Par ailleurs, tous les modes de réalisation et de mise en œuvre décrit précédemment en relation avec les figures 1 à 10 peuvent prévoir une commande auxiliaire de réinitialisation générée, si les transactions initiées par le dispositif maître sont à l’état non-terminé après expiration d’un temps de réponse maximal. Par exemple un chronomètre peut être prévu dans les circuits de gestions de réinitialisation GST, dont l’action pourrait être situé, dans boucle ( Y ) des étapes d’attente de réception de réponse 340, 840 (en relation avec les figures 3 et 8) de la surveillance d’un état terminé ou non des transactions initiées par le dispositif maître. Et, si au-delà d’une durée maximale arbitrairement choisie les transactions initiées sont restées à l’état non-terminé, alors la commande de réinitialisation auxiliaire peut être transmis à un éventuel dispositif de contrôle sécurisé, ou par exemple afin de réinitialiser tous les périphériques du système sur puce, en tant que solution de dernier recours. Procédé de réinitialisation d’un dispositif maître (MT_A, MT_B) configuré pour initier des transactions (TRSCT) sur un bus (BUS_1, BUS_2) d’un système sur puce (SYS), comprenant une surveillance d’un état terminé ou non des transactions (TRSCT) initiées par le dispositif maître, et, en cas de réception d’une commande de réinitialisation (COM_RST) du dispositif maître, une réinitialisation effective (COM_RST_EFF) du dispositif maître lorsque les transactions initiées par le dispositif maître sont à l’état terminé. Procédé selon la revendication 1, dans lequel ladite surveillance comprend une détection de signaux transitant sur des ports d’entrée (MT_IN) et de sortie (MT_OUT) d’une interface entre le dispositif maître et le bus (INTF_A, INTF_B). Procédé selon la revendication 2, dans lequel une transaction comprend une émission d’une requête (REQ) sur le port de sortie (MT_OUT) de l’interface et une réception d’une réponse (ANS) sur le port d’entrée (MT_IN) de l’interface, et ladite surveillance comprend un comptage du nombre de requêtes émises (CNT_REQ) sur le port de sortie et un comptage du nombre de réponses reçues (CNT_ANS) sur le port d’entrée, un nombre de réponses reçues égal au nombre de requêtes émises étant représentatif de l’état terminé des transactions (TRSCT) initiées par le dispositif maître. Procédé selon l’une des revendications précédentes, dans lequel un signal de blocage est généré au moment de la réception de la commande de réinitialisation (COM_RST) du dispositif maître, de façon à bloquer l’initiation d’une nouvelle transaction par le dispositif maître (MT_A, MT_B). Procédé selon la revendication 4, dans lequel la génération du signal de blocage comprend une activation d’un signal de réinitialisation effective (RST_EFF), et la réinitialisation effective (COM_RST_EFF) du dispositif maître comprend une désactivation du signal de réinitialisation effective (RST_EFF), lorsque les transactions initiées par le dispositif maître sont à l’état terminé et lorsque la commande de réinitialisation reçue (COM_RST) a pris fin. Procédé selon la revendication 5, dans lequel une transaction comprend une réponse (ANS) transmise sur le bus, et les réponses transmises sur le bus lorsque le signal de réinitialisation effective (RST_EFF) est activé ne sont pas communiquées au dispositif maître (MT_A, MT_B) et sont effacées du bus. Procédé selon la revendication 4, dans lequel la génération du signal de blocage comprend une transmission au dispositif maître (MT_A, MT_B) d’un signal d’état du bus (BUS_ST) forcé à l’état occupé (BSY), la réinitialisation effective (COM_RST_EFF) du dispositif maître comprenant une activation impulsionnelle d’un signal de réinitialisation effective (RST_EFF). Procédé selon la revendication 7, dans lequel une transaction comprend une réponse (ANS) transmise sur le bus, et les réponses transmises sur le bus lorsque le signal d’état du bus (BUS_ST) est forcé à l’état occupé (BSY) sont communiquées au dispositif maître (MT_A, MT_B). Procédé selon l’une des revendications précédentes, dans lequel, une commande auxiliaire de réinitialisation est générée en cas de réception d’une commande de réinitialisation (COM_RST) du dispositif maître, et si les transactions (TRSCT) initiées par le dispositif maître sont à l’état non-terminé après expiration d’un temps de réponse maximal. Système sur puce comprenant un bus (BUS_1, BUS_2) et au moins un dispositif maître (MT_A, MT_B) configuré pour initier des transactions sur le bus, dans lequel un circuit de gestion de réinitialisation (GST_A, GST_B) comportant une entrée destinée à recevoir une commande de réinitialisation du dispositif maître (COM_RST), est configuré pour surveiller un état terminé ou non des transactions initiées par le dispositif maître, et, en cas de réception d’une commande de réinitialisation (COM_RST) sur l’entrée, pour réinitialiser (COM_RST_EFF) le dispositif maître de façon effective lorsque les transactions initiées par le dispositif maître sont à l’état terminé. Système sur puce selon la revendication 10, dans lequel le circuit de gestion de réinitialisation (GST_A, GST_B) est configuré pour détecter des signaux transitant sur des ports d’entrée (MT_IN) et de sortie (MT_OUT) d’une interface (INTF_A, INTF_B) entre le dispositif maître et le bus, afin de surveiller ledit état terminé ou non desdites transactions. Système sur puce selon la revendication 11, dans lequel une transaction comprend une émission d’une requête (REQ) sur le port de sortie (MT_OUT) de l’interface et une réception d’une réponse (ANS) sur le port d’entrée (MT_IN) de l’interface, et le circuit de gestion de réinitialisation (GST) est configuré pour surveiller ledit état terminé ou non desdites transactions en comptant le nombre de requêtes (CNT_REQ) émises sur le port de sortie et en comptant le nombre de réponses (CNT_ANS) reçues sur le port d’entrée, un nombre de réponses reçues égal au nombre de requêtes émises étant représentatif de l’état terminé des transactions initiées par le dispositif maître. Système sur puce selon l’une des revendications 10 à 12, dans lequel le circuit de gestion de réinitialisation (GST) est configuré pour générer un signal de blocage au moment de la réception de la commande de réinitialisation (COM_RST) du dispositif maître sur l’entrée, de façon à bloquer l’initiation d’une nouvelle transaction par le dispositif maître. Système sur puce selon la revendication 13, dans lequel le circuit de gestion de réinitialisation (GST) est configuré pour générer le signal de blocage en activant un signal de réinitialisation effective (RST_EFF), et pour réinitialiser (COM_RST_EFF) le dispositif maître de façon effective en désactivant le signal de réinitialisation effective (RST_EFF), lorsque les transactions initiées par le dispositif maître sont à l’état terminé et lorsque la commande de réinitialisation (COM_RST) reçue sur l’entrée a pris fin. Système sur puce selon la revendication 14, dans lequel une transaction comprend une réponse (ANS) transmise sur le bus, le circuit de gestion de réinitialisation (GST) est configuré pour ne pas communiquer au dispositif maître et effacer du bus les réponses transmises sur le bus lorsque le signal de réinitialisation effective (RST_EFF) est activé. Système sur puce selon la revendication 13, dans lequel le circuit de gestion de réinitialisation (GST) est configuré pour générer le signal de blocage en transmettant au dispositif maître un signal d’état du bus (BUS_ST) forcé à l’état occupé (BSY), et pour réinitialiser (COM_RST_EFF) le dispositif maître de façon effective en activant de façon impulsionnelle un signal de réinitialisation effective (RST_EFF). Système sur puce selon la revendication 16, dans lequel une transaction comprend une réponse (ANS) transmise sur le bus, et le circuit de gestion de réinitialisation (GST) est configuré pour communiquer au dispositif maître les réponses transmises sur le bus lorsque le signal d’état du bus (BUS_ST) est forcé à l’état occupé (BSY). Système sur puce selon l’une des revendications 10 à 17, dans lequel le circuit de gestion de réinitialisation (GST) est configuré pour générer une commande auxiliaire de réinitialisation, en cas de réception d’une commande de réinitialisation (COM_RST) du dispositif maître, et si les transactions initiées par le dispositif maître sont à l’état non-terminé après expiration d’un temps de réponse maximal.