Brevet FR3123468A1 — publié le 20221202

Selon un aspect, il est proposé un système sur puce comprenant : - un moyen de surveillance (MM) pour détecter un comportement anormal du système sur puce, le moyen de surveillance étant configuré pour : • comparer le comportement du système sur puce avec au moins un paramètre de référence représentant un comportement anormal du système afin de détecter un comportement anormal du système sur puce, • générer une interruption (INT) quand un comportement anormal du système sur puce est détecté. Figure pour l’abrégé : Fig 1 Système sur puce Des modes de réalisation de la présente invention concernent un système sur puce, et plus particulièrement un système sur puce sécurisé contre les tentatives d’intrusions d’un utilisateur extérieur non autorisé. Un système sur puce (ou « SoC ») est un système électronique intégré capable de réaliser une pluralité de fonctions. Un système sur puce est utilisé par exemple à l’intérieur d’un dispositif électronique tel qu’un microcontrôleur. Il peut arriver que des utilisateurs extérieurs non autorisés essaient d’accéder au dispositif électronique qui comprend le système sur puce afin de prendre le contrôle de celui-ci et d’accéder aux données qui y sont stockées. Par exemple, ces utilisateurs extérieurs non autorisés peuvent essayer d’accéder au système sur puce via des utilisations multiples et répétées de périphériques du système sur puce ou en injectant des signaux de bruit ou des pointes de tension, par exemple dans la tension d’alimentation électrique du système sur puce. Les utilisateurs extérieurs non autorisés peuvent aussi réaliser des attaques par retrait de batterie sur le système sur puce. Ces attaques sont capables de modifier le comportement du système sur puce. En modifiant le comportement du système sur puce, l’utilisateur extérieur non autorisé peut provoquer une erreur dans un cœur de traitement ou dans une zone de mémoire du système sur puce lui-même, dans le but d’empêcher son fonctionnement et/ou d’essayer d’y accéder. Il existe donc un besoin pour une architecture d’un système sur puce qui soit robuste contre de telles attaques visant le comportement du système sur puce. Selon un aspect, il est proposé un système sur puce comprenant : - un moyen de surveillance pour détecter un comportement anormal du système sur puce, le moyen de surveillance étant configuré pour : • comparer le comportement du système sur puce avec au moins un paramètre de référence représentant un comportement anormal du système afin de détecter un comportement anormal du système sur puce, et • générer une interruption quand un comportement anormal du système sur puce est détecté. En surveillant le comportement du système sur puce, ce système sur puce est configuré pour détecter une tentative d’attaque sur le système sur puce par un utilisateur extérieur non autorisé. Quand le moyen de surveillance détecte une tentative d’attaque, le moyen de surveillance génère un signal d’interruption. Ce signal d’interruption peut être transmis à un maître du système sur puce afin d’exécuter une contre-mesure appropriée pour bloquer l’attaque. Les contre-mesures peuvent comprendre l’ajout d’un retard, la désactivation des périphériques du système sur puce, et/ou la désactivation de fonctions du système sur puce. Une autre contre-mesure peut aussi consister à demander une procédure d’authentification pour autoriser l’utilisateur à continuer d’utiliser le système sur puce et/ou pour réactiver des périphériques ou fonctions désactivé(e)s. Ceci permet d’augmenter le niveau de sécurité du système sur puce et en conséquence, par exemple, le niveau de protection des données qui y sont stockées et dans un dispositif électronique dans lequel le système sur puce peut être incorporé. Avantageusement, le moyen de surveillance est configuré pour surveiller au moins un type d’évènement sur le système sur puce, le moyen de surveillance comprenant, pour chaque type d’évènement à surveiller, un compteur configuré pour compter le nombre d’évènements dudit type d’évènement pendant un intervalle défini par un minuteur du système sur puce, et pour détecter un comportement anormal du système sur puce quand le nombre des évènements atteint un nombre défini par le paramètre de référence représentant un comportement anormal du système sur puce. Selon un mode de réalisation particulièrement avantageux, ledit au moins un paramètre de référence est stocké dans un registre non volatil. De préférence, le système sur puce comprend : - au moins un périphérique, - le moyen de surveillance étant configuré pour surveiller une fréquence d’utilisation dudit au moins un périphérique et pour détecter un comportement anormal du système sur puce quand la fréquence d’utilisation dudit au moins un périphérique atteint une valeur de fréquence d’utilisation maximale définie par ledit au moins un paramètre de référence. Selon un mode de réalisation particulièrement avantageux, le moyen de surveillance est configuré pour désactiver ledit au moins un périphérique quand le moyen de surveillance détecte un comportement anormal du système sur puce. Avantageusement, le moyen de surveillance est configuré pour surveiller la fréquence de cycle de réinitialisation du système sur puce et pour détecter un comportement anormal du système sur puce lorsque la fréquence du cycle de réinitialisation atteint une valeur de fréquence de cycle de réinitialisation maximale définie par ledit au moins un paramètre de référence. Selon un mode de réalisation particulièrement avantageux, le moyen de surveillance est configuré pour surveiller une fréquence de pics de tension d’alimentation et pour détecter un comportement anormal du système sur puce lorsque la fréquence de pics atteint une valeur de fréquence de pics maximale définie par ledit au moins un paramètre de référence. Selon un mode de réalisation particulièrement avantageux, le moyen de surveillance est configuré pour surveiller une fréquence de pointes de signal d’Entrée/Sortie et pour détecter un comportement anormal du système sur puce lorsque la fréquence de pointes de signal d’Entrée/Sortie atteint une valeur de fréquence de pointes maximale définie par ledit au moins un paramètre de référence. Selon un mode de réalisation particulièrement avantageux, le moyen de surveillance est configuré pour détecter un retrait d’une batterie du système sur puce. D’autres avantages et caractéristiques de l’invention apparaîtront à la lecture de la description détaillée de modes de réalisation et de mises en œuvre, en aucun cas restrictifs, et à l’étude des dessins annexés dans lesquels : représentent de façon schématique divers modes de réalisation et mises en œuvre de l’invention. La montre un système sur puce SOC comprenant un maître MS, une matrice de bus BM, des périphériques P1X, …, PNX, P1XZ, …, PNXZ, P1Y, …, PNY, un registre de configuration non volatil NVCR et un moyen de surveillance MM. Le maître MS est un cœur de traitement du système sur puce. Le système sur puce peut avoir plus d’un maître MS. La matrice de bus BM relie le maître MS aux périphériques. La matrice de bus BM relie aussi le maître MS au registre de configuration non volatil NVCR et au moyen de surveillance MM. Les périphériques sont classés dans différents domaines de périphériques. Par exemple, le domaine de périphérique PDX comprend les périphériques P1X, …, PNX et un sous-domaine PDXZ comprenant les périphériques P1XZ, …, PNXZ. Le domaine de périphérique PDY comprend les périphériques P1Y, …, PNY. Chaque domaine de périphérique comprend un décodeur de gestion de périphériques PMD. Le moyen de surveillance MM est configuré pour surveiller le comportement du système sur puce. En particulier, le moyen de surveillance MM est configuré pour surveiller des évènements particuliers, ces évènements étant définis comme au moins un élément du groupe comprenant une fréquence d’utilisation d’un périphérique ou d’un groupe de périphériques, une fréquence de réinitialisation du système sur puce SOC, une fréquence de pics (ou fréquence de pics de bruit) sur le signal de tension d’alimentation, une fréquence de pointes sur certaines lignes d’Entrée/Sortie, et un retrait d’une batterie du système sur puce SOC. Cette surveillance permet au moyen de surveillance MM de détecter un comportement anormal du système sur puce. Pour assurer sa sécurité, le moyen de surveillance MM peut être placé dans une zone de confiance et/ou une zone privilégiée du système sur puce SOC. Il est également possible d’utiliser n’importe quel autre matériel de sécurité ou mécanisme logiciel pour sécuriser le moyen de surveillance MM. Le moyen de surveillance MM est décrit plus en détail ci-dessous. Le moyen de surveillance MM est relié au registre de configuration non volatil NVCR via la matrice de bus BM. Le registre de configuration non volatil NVCR peut être mis en œuvre dans une mémoire flash ou dans une mémoire programmable une fois. Le registre de configuration non volatil NVCR peut être protégé par des méthodes habituelles. Le registre de configuration non volatil NVCR est configuré pour stocker des paramètres, également appelés paramètres de référence, pour surveiller le comportement du système sur puce SOC à l’aide du moyen de surveillance MM. En particulier, le registre de configuration non volatil NVCR est configuré pour stocker ces paramètres dans un tableau. Les paramètres du tableau peuvent être définis par l’utilisateur du système sur puce. Certains paramètres sont des valeurs de comparaison qui peuvent être utilisées pour détecter un comportement anormal du système sur puce. Les valeurs stockées dans le registre de configuration non volatil NVCR ne peuvent être définies que par un utilisateur autorisé. Plus particulièrement, comme paramètres pour la surveillance du système sur puce, l’utilisateur peut définir une fréquence d’utilisation maximale d’un périphérique ou d’un groupe de périphériques. La surveillance de la fréquence d’utilisation d’un périphérique permet de détecter les attaques par force brute et les attaques par épuisement des ressources réalisées contre ce périphérique. L’utilisateur peut aussi définir une fréquence de réinitialisation maximale du système sur puce. La surveillance de la fréquence de réinitialisation du système sur puce permet de détecter les attaques par force brute sur le système sur puce. L’utilisateur peut aussi définir une fréquence de pics maximale sur le signal de tension d’alimentation Vdd. La surveillance de la fréquence de pics sur le signal de tension d’alimentation permet de détecter une tentative pour provoquer une panne de certains registres internes du système sur puce, ou une tentative de rupture de certaines fonctions du système sur puce, ou une tentative de brouillage d’une utilisation de clé. L’utilisateur peut aussi définir une fréquence de pointes maximale sur certains signaux d’Entrée/Sortie ou sur un signal de réinitialisation du système sur puce. La surveillance de la fréquence de pointes sur des signaux d’Entrée/Sortie ou sur le signal de réinitialisation permet de détecter une tentative de brouillage d’une utilisation de clé ou une tentative de retournement du contenu du registre volatil. L’utilisateur peut aussi définir un paramètre de contrôle pour détecter un retrait de batterie. L’utilisateur peut aussi définir à quels modes de fonctionnement du périphérique ou du groupe de périphériques ces paramètres s’appliquent. Les modes de fonctionnement peuvent être privilégié, non privilégié, sécurisé, etc… selon la définition donnée par le cœur de processeur utilisé et/ou par l’architecture du système sur puce. Il peut en effet ne pas être utile de surveiller tous les modes de fonctionnement des périphériques. La montre un exemple de registre de configuration non volatil NVCR. Plus particulièrement, le registre peut comprendre une pluralité d’entrées ENT auxquelles sont associés des paramètres pour la surveillance du comportement du système sur puce. Chaque entrée du tableau définit un mot binaire MSK. Le mot binaire MSK est utilisé pour définir l’application pour les paramètres. De façon plus spécifique, le mot binaire MSK définit si les paramètres servent à surveiller la fréquence d’utilisation des périphériques, la fréquence de réinitialisation, la fréquence de pics sur le signal de tension d’alimentation, la fréquence de pointes de signaux d’Entrée/Sortie, ou à surveiller un retrait de batterie. Le mot binaire MSK d’une entrée peut comprendre quatre bits de poids fort MSB utilisés pour indiquer le domaine de périphérique auquel se rapportent les paramètres, pour indiquer que les paramètres servent à surveiller les pics de bruit ou les pointes, les réinitialisations ou un retrait de batterie. Ces bits MSB peuvent aussi être utilisés pour désactiver certaines entrées ou pour indiquer qu’une entrée est disponible. Par exemple, les bits MSB peuvent être égaux à « 0000 » pour désactiver une entrée. Dans ce cas, l’utilisateur peut facilement effacer une ou plusieurs entrées du tableau en programmant tous les bits d’une entrée à zéro. De même, les bits MSB peuvent être égaux à « 1111 » pour indiquer que l’entrée est disponible. Le mot binaire MSK d’une entrée peut aussi comprendre 32 bits de poids faible LSB pour désigner les périphériques du domaine de périphérique pour lesquels les mêmes paramètres s’appliquent. Un premier paramètre est un nombre maximal MAX_NB d’occurrences de l’évènement surveillé (utilisation de périphériques, utilisation de réinitialisations, nombre de pics sur le signal de tension d’alimentation, nombre de pointes sur des lignes d’Entrée/Sortie). Ce nombre maximal MAX_NB d’utilisations indique un comportement anormal du système sur puce lorsqu’il est atteint. Un deuxième paramètre définit un minuteur #TMR utilisé pour définir une durée maximale pour atteindre le nombre maximal d’utilisations tel que défini ci-dessus. Un troisième paramètre RM définit pour quel mode de fonctionnement (non privilégié, privilégié, sécurisé, non sécurisé…) de l’entrée la surveillance doit être réalisée. Le registre de configuration non volatil NVCR peut aussi stocker des bits de configuration CFB ou des bits d’option OPTB. La montre le moyen de surveillance MM du système sur puce SOC. Le moyen de surveillance MM comporte une machine à états finis FSM, une unité de comptage d’évènements ECU, un détecteur de bruit NDET et des registres d’utilisateur UREG. Le moyen de surveillance MM est relié à une pluralité de minuteurs TMR[0], TMR[1], …, TMR[Nt]. Le moyen de surveillance MM peut utiliser ces minuteurs pour surveiller une fréquence d’utilisation des périphériques, la fréquence de réinitialisation, la fréquence de pics de bruit sur le signal de tension d’alimentation ou la fréquence de pointes sur les lignes d’Entrée/Sortie. Le moyen de surveillance est configuré pour sélectionner le minuteur TMR[k] à utiliser pour cette surveillance entre les minuteurs TMR[0], TMR[1], …, TMR[Nt] d’après le minuteur #TMR indiqué dans le registre de configuration non volatil. Pour assurer leur sécurité, les minuteurs peuvent être placés dans une zone de confiance et/ou une zone privilégiée du système sur puce SOC. Il est également possible d’utiliser n’importe quel autre matériel de sécurité ou mécanisme logiciel pour sécuriser les minuteurs. Le moyen de surveillance MM est aussi configuré pour délivrer des signaux PR_SEL_PERIPH[i]. Les signaux PR_SEL_PERIPH[i] sont utilisés pour gérer un périphérique et/ou un groupe de périphériques à l’intérieur d’un même domaine de périphérique. En particulier, les signaux PR_SEL_PERIPH[i] sont utilisés pour activer ou désactiver les périphériques et/ou un groupe de périphériques. Les signaux PR_SEL_PERIPH[i] sont délivrés aux périphériques et/ou à des groupes de périphériques. Par exemple, sur la , le signal PR_SEL_PERIPH[X] est délivré au domaine de périphérique PDX, et le signal PR_SEL_PERIPH[Y] est délivré au domaine de périphérique PDY. Le moyen de surveillance MM est aussi configuré pour délivrer un signal LT_CONF. Le signal LT_CONF est utilisé pour configurer un tableau de conversion dans le décodeur de gestion de périphériques PMD d’un domaine de périphérique. Ce décodeur de gestion de périphériques sera décrit plus en détail ci-dessous. Le moyen de surveillance MM est aussi configuré pour délivrer une interruption INT. L’interruption INT est déclenchée quand la surveillance de périphériques détecte un comportement anormal du système sur puce. Plus particulièrement, le système sur puce est configuré pour délivrer l’interruption INT par l’intermédiaire d’une ligne d’interruption reliée au cœur de traitement de manière sécurisée pour éviter le masquage de l’interruption afin d’empêcher la désactivation de fonctions. Le moyen de surveillance MM est aussi configuré pour délivrer un signal EVENT_BUS. Le signal EVENT_BUS est utilisé pour relever le code du comportement anormal détecté. Plus particulièrement, la machine à états finis FSM est configurée pour surveiller le comportement du système sur puce selon les paramètres définis dans le registre de configuration non volatil NVCR afin d’être capable de détecter un comportement anormal du système sur puce. L’unité de comptage d’évènements ECU comprend une pluralité de compteurs configurés pour compter le nombre d’évènements dans ladite durée maximale (utilisations des périphériques, nombre de réinitialisations, nombre de pics sur le signal de tension d’alimentation ou nombre de pointes sur les lignes d’Entrée/Sortie). L’unité de comptage d’évènements ECU est décrite plus en détail ci-dessous relativement à la . Le détecteur de bruit NDET est configuré pour détecter les pics sur le signal de tension d’alimentation ou les pointes sur les lignes d’Entrée/Sortie, et sera décrit plus en détail relativement à la . Les registres d’utilisateur UREG permettent à l’utilisateur du système sur puce de configurer le moyen de surveillance MM et sont configurés pour recevoir des commandes d’un maître du système sur puce. La machine à états finis FSM est reliée aux registres d’utilisateur UREG. Dès que les commandes sont écrites dans les registres d’utilisateur UREG, la machine à états finis peut interpréter automatiquement ces commandes à la fin d’un cycle de bus. Les commandes peuvent être utilisées pour initialiser ou pour lire les différents éléments de l’unité de comptage d’évènements ECU. La représente le détecteur de bruit NDET. Le détecteur de bruit NDET comprend un chien de garde détecteur de Vdd VDD_WTCH configuré pour détecter les pics dans le signal de tension d’alimentation et au moins un détecteur de pointes GDET configuré pour détecter une pointe dans les lignes d’Entrée/Sortie. Le chien de garde détecteur de Vdd VDD_WTCH est configuré pour recevoir un signal de validation EN_VDD_WTCH, le signal de tension d’alimentation VDD, une limite minimum LBND et une limite maximum HBND. Le chien de garde détecteur de Vdd est configuré pour détecter un pic ou un bruit dans le signal de tension d’alimentation VDD quand la tension du signal de tension d’alimentation est au-dessus de la limite maximum HBND et sous la limite minimum LBND. Le chien de garde détecteur de Vdd est configuré en outre pour délivrer un signal NDETS quand un pic ou bruit est détecté sur le signal de tension d’alimentation. Le détecteur de pointes GDET est configuré pour recevoir un signal de validation EN_GDET utilisé pour activer le détecteur de pointes GDET et un signal IOS des lignes d’Entrée/Sortie et est configuré pour détecter une pointe dans les lignes d’Entrée/Sortie lorsque le signal dans les lignes d’Entrée/Sortie présente des variations rapides. Le détecteur de pointes GDET est configuré pour délivrer un signal GDETS quand une pointe est détectée dans les lignes d’Entrée/Sortie. En variante, un détecteur de pointes GDET peut être configuré pour recevoir un signal de réinitialisation du système sur puce. Dans ce cas, le détecteur de pointes GDET est configuré pour détecter une pointe dans le signal de réinitialisation lorsque le signal de réinitialisation présente une variation rapide. La représente l’unité de comptage d’évènements ECU du moyen de surveillance MM. L’unité de comptage d’évènements ECU est dans un domaine persistant, ce qui signifie que l’unité de comptage d’évènements ECU est alimentée par une alimentation de tension de batterie VBAT. L’alimentation de tension de batterie est fournie par une batterie extérieure. Ainsi, les données de l’unité de comptage d’évènements ECU ne sont pas perdues en cas de réinitialisation du système sur puce. Seul le moyen de surveillance MM est configuré pour réinitialiser l’unité de comptage d’évènements ECU lorsque cela est nécessaire. L’unité de comptage d’évènements ECU comprend au moins un élément parmi un compteur d’utilisations de périphérique PCNT[i], un compteur de pics de bruit NCNT, au moins un compteur de pointes GCNT[j], un compteur de réinitialisations RCNT, un dispositif de surveillance de batterie BTM. Ces compteurs peuvent être réinitialisés à l’aide d’un signal RST_CNT délivré par la machine à états finis FSM. Le compteur d’utilisations de périphérique PCNT[i] peut être un compteur d’une pluralité de compteurs d’utilisations de périphérique PCNT[0], …, PCNT[Np] configurés pour compter le nombre d’utilisations des périphériques du système sur puce. En particulier, les compteurs PCNT[0], …, PCNT[i], …, PCNT[Np] reçoivent respectivement des signaux P_SEL[0], …, P_SEL[i], …, P_SEL[Np]. Les signaux P_SEL[0], …, P_SEL[i], …, P_SEL[Np] indiquent quand un périphérique ou un groupe de périphériques est utilisé. Les compteurs d’utilisations de périphérique PCNT[0], …, PCNT[i], …, PCNT[Np] peuvent être initialisés par la machine à états finis FSM avec les paramètres stockés dans le registre de configuration non volatil NVCR. Les compteurs d’utilisations de périphérique PCNT[0], …, PCNT[i], …, PCNT[Np] peuvent être initialisés avec la valeur maximale MAX_NB définie par ces paramètres via le bus PRST_BUS. Dans ce cas, un compteur d’utilisations de périphérique est configuré pour décrémenter sa valeur de un à chaque utilisation des périphériques. Ainsi, un compteur d’utilisations de périphérique qui atteint une valeur de zéro indique un comportement anormal du système sur puce. Le compteur de pics de bruit NCNT est relié au chien de garde détecteur de Vdd VDD_WTCH du détecteur de bruit NDET pour recevoir des signaux de détection de bruit NDETS. Plus particulièrement, le compteur de pics de bruit NCNT peut être initialisé par la machine à états finis FSM avec les paramètres stockés dans le registre de configuration non volatil NVCR. Le compteur de pics de bruit peut être initialisé avec la valeur maximale MAX_NB définie par ces paramètres. Dans ce cas, le compteur de pics de bruit est configuré pour décrémenter sa valeur de un à chaque réception d’un signal de détection de bruit NDETS provenant du chien de garde détecteur de Vdd. Ainsi, le compteur de pics de bruit qui atteint une valeur de zéro indique un comportement anormal du système sur puce SOC. Ledit au moins un compteur de pointes GCNT[j] est relié au(x) détecteur(s) de pointes GDET respectif(s) du détecteur de bruit NDET pour recevoir des signaux de détection de pointes GDETS respectifs. Les compteurs de pointes GCNT[0], …, GCNT[Ng] sont configurés pour compter le nombre de pointes dans les lignes d’Entrée/Sortie ou sur le signal de réinitialisation. Plus particulièrement, les compteurs de pointes GCNT[0], …, GCNT[Ng] peuvent être initialisés par la machine à états finis en utilisant la valeur des paramètres stockés dans le registre de configuration non volatil NVCR. Les compteurs de pointes GCNT[0], …, GCNT[Ng] peuvent être initialisés avec la valeur maximale définie par ces paramètres. Dans ce cas, les compteurs de pointes sont configurés pour décrémenter leurs valeurs de un à chaque réception d’un signal de détection de pointes provenant des détecteurs de pointes. Ainsi, un compteur de pointes qui atteint une valeur de zéro indique un comportement anormal du système sur puce SOC. Le compteur de réinitialisation RCNT est configuré pour compter le nombre de réinitialisations du système sur puce au cours d’une durée définie par le minuteur TMR[k]. Le compteur de réinitialisation RCNT reçoit un signal INCR_ON_RST et un signal TIMER_RST. Le compteur de réinitialisation RCNT est configuré pour incrémenter sa valeur de un quand une réinitialisation se produit. Le moniteur de batterie BTM est utilisé pour détecter un retrait de l’alimentation par batterie (ou pile) du système sur puce et reçoit un signal SET_FLAG. En particulier, si on retire la batterie, la valeur d’un drapeau VBAT_OK est modifiée. Il est ainsi possible de détecter que la batterie a été retirée quand la valeur du drapeau VBAT_OK n’est pas égale à la valeur attendue. Enfin, le moteur de données DTM assure l’intégrité des données stockées. Le drapeau DATA_OK est utilisé pour empêcher les attaques de corruption de données. La machine à états finis FSM du moyen de surveillance MM est configurée pour lire les valeurs des différents éléments de l’unité de comptage d’évènements ECU et pour comparer ces valeurs à la valeur des paramètres stockés dans le registre de configuration non volatil NVCR. La machine à états finis FSM est configurée pour déclencher une interruption quand un compteur de l’unité de comptage d’évènements ECU a atteint pendant ladite durée la valeur maximale définie par les paramètres stockés dans le registre de configuration non volatil NVCR. Plus particulièrement, la machine à états finis FSM est configurée pour vérifier d’abord la valeur de VBAT_FLAG afin de savoir si la batterie a été retirée. Si la batterie a été retirée, la machine à états finis est configurée pour désactiver tous les périphériques, pour déclencher une interruption INT et pour indiquer via le signal EVENT_BUS que la batterie a été retirée. Si la batterie n’a pas été retirée, la machine à états finis FSM est configurée pour vérifier la valeur du drapeau DATA_OK afin de savoir si les données du système sur puce sont corrompues. Si la valeur du drapeau DATA_OK indique que les données n’ont pas été corrompues, la machine à états finis FSM est configurée pour lire les paramètres dans le registre de configuration non volatil NVCR. La machine à états finis est configurée pour initialiser la valeur des compteurs de l’unité de comptage d’évènements ECU selon la valeur des paramètres stockés dans le registre de configuration non volatil NVCR par l’intermédiaire du signal PRESET_BUS. La machine à états finis est également configurée pour initialiser le tableau de conversion du décodeur de gestion de périphériques du domaine de périphérique au moyen du signal LT_CONF avec le mode de fonctionnement indiqué par le registre de configuration non volatil NVCR. Ensuite, la machine à états finis surveille le comportement du système sur puce d’après les valeurs de compteurs de l’unité de comptage d’évènements ECU. Si un compteur de l’unité de comptage d’évènements ECU atteint la valeur maximale définie par les paramètres du registre de configuration non volatil NVCR, la machine à états finis FSM désactive les périphériques à l’aide du signal PR_SEL_PERIPH[i], déclenche une interruption INT et indique qu’une exception s’est produite au moyen du signal EVENT_BUS. Plus particulièrement, le signal de désactivation de périphériques PR_SEL_PERIPH[i] est transmis aux périphériques. La montre le décodeur de gestion de périphériques PMD plus en détail. Le décodeur de gestion de périphériques PMD comprend un décodeur principal PDEC configuré pour déterminer si un des périphériques du domaine de périphérique peut être utilisé pour exécuter une instruction transmise par la matrice de bus BM. Le décodeur principal PDEC délivre un signal PDEC_SEL[i] qui indique quel périphérique du domaine a été choisi pour exécuter l’instruction. Le décodeur de gestion de périphériques comprend aussi un tableau de conversion LT. Ce tableau de conversion LT peut être configuré en utilisant le signal LT_CONF délivré par le moyen de surveillance MM. Le tableau de conversion LT est configuré pour sélectionner un registre de mode RM[0], …, RM[Nr] selon le périphérique choisi PDEC_SEL[i]. En particulier, le tableau de conversion LT utilise des signaux EN_RM[0], EN_RM[Nr] pour sélectionner le registre de mode RM[0], …, RM[Nr]. Chaque registre de mode RM[0], …, RM[Nr] comprend le mode de fonctionnement défini dans le registre de configuration non volatil NVCR pour le périphérique choisi. Le décodeur de gestion de périphériques est configuré pour déterminer le mode de fonctionnement de l’instruction reçue en utilisant un circuit de détermination de mode de fonctionnement RMDC. Le circuit de détermination de mode de fonctionnement peut être un réseau combinatoire. Le décodeur de gestion de périphériques comprend un moyen de comparaison CM configuré pour déterminer si le mode de fonctionnement de l’instruction est égal au mode de fonctionnement défini dans le registre de mode RM[0], …, RM[Nr] sélectionné par le tableau de conversion LT. Le moyen de comparaison CM est configuré pour délivrer un signal MD_SEL[i] basé sur le résultat de la comparaison et sur le signal PR_SEL_PERIPH[i]. Le signal MD_SEL[i] est utilisé pour confirmer la sélection de périphérique réalisée par le décodeur principal PDEC. Plus particulièrement, si le mode de fonctionnement est égal au mode de fonctionnement défini dans le registre de configuration non volatil NVCR et dans le registre de mode RM[0], …, RM[Nr] sélectionné, cela signifie que les règles définies par les paramètres présents dans le registre de configuration non volatil s’appliquent. Dans ce cas, le signal PR_SEL_PERIPH[i] utilisé pour gérer les périphériques doit être pris en compte pour déterminer si le périphérique peut être sélectionné. Ceci permet la désactivation d’un périphérique ou d’un groupe de périphériques quand un comportement anormal du système sur puce est détecté par le moyen de surveillance. En particulier, le signal MD_SEL[i] est reçu en entrée d’une porte logique ET « ANDG » qui reçoit aussi le signal PDEC_SEL[i] sur une autre entrée. La porte logique ET ANDG est configurée pour délivrer le signal P_SEL[i]. Ainsi, en surveillant le comportement du système sur puce, le système sur puce est configuré pour détecter une tentative d’attaque sur le système sur puce par un utilisateur extérieur non autorisé. En particulier, le système sur puce est configuré pour détecter qu’un utilisateur extérieur non autorisé essaie d’accéder au système sur puce par des utilisations multiples et répétées des périphériques du système sur puce ou en injectant des signaux de bruit ou des pointes, par exemple dans la tension d’alimentation électrique du système sur puce. Le système sur puce est aussi configuré pour détecter qu’un utilisateur extérieur non autorisé exécute une attaque par retrait de batterie sur le système sur puce. Quand le moyen de surveillance détecte une tentative d’attaque, le moyen de surveillance génère un signal d’interruption. Ce signal d’interruption peut être transmis à un maître du système sur puce afin d’exécuter une contre-mesure appropriée pour bloquer l’attaque. Les contre-mesures peuvent consister à ajouter du retard et/ou à désactiver des périphériques du système sur puce (comme décrit plus haut) et/ou à désactiver des fonctions du système sur puce. Ceci permet d’augmenter le niveau de sécurité du système sur puce lui-même et donc, par exemple, le niveau de protection des données stockées dans ce dernier et dans un dispositif électronique dans lequel le système sur puce peut être incorporé. Système sur puce comprenant : - un moyen de surveillance (MM) pour détecter un comportement anormal du système sur puce, le moyen de surveillance étant configuré pour : • comparer le comportement du système sur puce avec au moins un paramètre de référence représentant un comportement anormal du système afin de détecter un comportement anormal du système sur puce, et • générer une interruption (INT) quand un comportement anormal du système sur puce est détecté. Système sur puce selon la revendication 1, dans lequel le moyen de surveillance (MM) est configuré pour surveiller au moins un type d’évènement sur le système sur puce, le moyen de surveillance (MM) comprenant, pour chaque type d’évènement à surveiller, un compteur (PCNT, NCNT, GCNT, RCNT) configuré pour compter le nombre d’évènements dudit type d’évènement pendant un intervalle défini par un minuteur (TMR) du système sur puce, et pour détecter un comportement anormal du système sur puce quand le nombre des évènements atteint un nombre (MAX_NB) défini par le paramètre de référence représentant un comportement anormal du système sur puce. Système sur puce selon la revendication 1 ou 2, dans lequel ledit au moins un paramètre de référence (MAX_NB, #TMR, RM) est stocké dans un registre non volatil (NVCR). Système sur puce selon l’une des revendications 1 à 3, comprenant : - au moins un périphérique (P1X, PNX, P1XZ, PNXZ, P1Y, PNY), - le moyen de surveillance (MM) étant configuré pour surveiller une fréquence d’utilisation dudit au moins un périphérique et pour détecter un comportement anormal du système sur puce quand la fréquence d’utilisation dudit au moins un périphérique atteint une valeur de fréquence d’utilisation maximale définie par ledit au moins un paramètre de référence. Système sur puce selon la revendication 4, dans lequel le moyen de surveillance (MM) est configuré pour désactiver ledit au moins un périphérique (P1X, PNX, P1XZ, PNXZ, P1Y, PNY) quand le moyen de surveillance détecte un comportement anormal du système sur puce. Système sur puce selon l’une des revendications 1 à 5, dans lequel le moyen de surveillance (MM) est configuré pour surveiller une fréquence de cycle de réinitialisation du système sur puce et pour détecter un comportement anormal du système sur puce lorsque la fréquence du cycle de réinitialisation atteint une valeur de fréquence de cycle de réinitialisation maximale définie par ledit au moins un paramètre de référence. Système sur puce selon l’une des revendications 1 à 6, dans lequel le moyen de surveillance (MM) est configuré pour surveiller une fréquence de pics de tension d’alimentation pour détecter un comportement anormal du système sur puce lorsque la fréquence de pics atteint une valeur de fréquence de pics maximale définie par ledit au moins un paramètre de référence. Système sur puce selon l’une des revendications 1 à 7, dans lequel le moyen de surveillance (MM) est configuré pour surveiller une fréquence de pointes de signal d’Entrée/Sortie et pour détecter un comportement anormal du système sur puce lorsque la fréquence de pointes de signal d’Entrée/Sortie atteint une valeur de fréquence de pointes maximale définie par ledit au moins un paramètre de référence. Système sur puce selon l’une des revendications 1 à 8, dans lequel le moyen de surveillance (MM) est configuré pour détecter un retrait d’une batterie du système sur puce.