Brevet FR3124284A1 — publié le 20221223

Selon un aspect, il est proposé un système sur puce comprenant : - au moins un dispositif maître (Mj, My), - au moins un dispositif esclave (Sk), - une interface de connexion (BM) configurée pour acheminer des signaux entre ledit au moins un dispositif maître (Mj, My) et ledit au moins un dispositif esclave (Sk), l’interface de connexion étant configurée pour fonctionner selon des paramètres de configuration, - un bus de configuration (CFB) connecté à l’interface de connexion (BM), le bus de configuration (CFB) étant configuré pour délivrer de nouveaux paramètres de configuration à l’interface de connexion afin d’adapter le fonctionnement de l’interface de connexion. Figure pour l’abrégé : Figure 2 Système sur puce comprenant une interface de connexion entre des dispositifs maîtres et des dispositifs esclaves Les modes de réalisation de la présente invention concernent un système sur puce (également désigné par l’acronyme « SoC »), et plus particulièrement une interface de connexion entre des dispositifs maîtres et des dispositifs esclaves du système sur puce. Un système sur puce est un système électronique intégré configuré pour réaliser une pluralité de fonctions. Le système sur puce peut être utilisé dans un dispositif électronique tel qu’un microcontrôleur et peut comprendre une pluralité de composants. Par exemple, les composants peuvent comprendre au moins un cœur de traitement, une ou plusieurs mémoire(s) volatile et non volatile, par exemple une mémoire flash, et une pluralité de périphériques. Certains de ces composants sont utilisés comme dispositifs maîtres, comme le cœur de traitement. D’autres composants sont utilisés comme dispositifs esclaves, comme les périphériques. Les composants du système sur puce sont interconnectés via au moins une interface de connexion (également appelée interface d’interconnexion). Par exemple, une interface de connexion peut être une matrice de bus principal ou une interface de connexion à l’intérieur d’un domaine périphérique pour accéder aux différents périphériques du domaine périphérique. Ces interfaces de connexion sont configurées de façon statique, par exemple en mode « codé en dur », de sorte qu’après une première phase de configuration initiale, la configuration de la matrice de bus ne peut plus être modifiée. Par conséquent, en utilisant de telles interfaces de connexion, la polyvalence du système sur puce est limitée. En particulier, on ne peut pas adapter la communication entre les composants du système sur puce à des applications spécifiques. Il se pose donc le problème de fournir un système sur puce présentant une polyvalence améliorée. Selon un aspect, il est proposé un système sur puce comprenant : - au moins un dispositif maître, - au moins un dispositif esclave, - une interface de connexion configurée pour acheminer des signaux entre ledit au moins un dispositif maître et ledit au moins un dispositif esclave, l’interface de connexion étant configurée pour fonctionner selon des paramètres de configuration, et - un bus de configuration connecté à l’interface de connexion, le bus de configuration étant configuré pour délivrer de nouveaux paramètres de configuration à l’interface de connexion afin d’adapter le fonctionnement de l’interface de connexion. Dans un tel système sur puce, le fonctionnement de l’interface de connexion peut être modifié avec de nouveaux paramètres de configuration. Par conséquent, le système sur puce présente une polyvalence d’emploi améliorée, grâce à la possibilité de modifier le fonctionnement de l’interface de connexion. Par exemple, un tel système sur puce permet de modifier un tableau d’acheminement et un tableau de réaffectation de l’interface de connexion. Le système sur puce peut aussi permettre de modifier une politique d’arbitrage de l’interface de connexion afin d’adapter les priorités entre les dispositifs maîtres. Le système sur puce peut aussi permettre d’activer ou de désactiver les dispositifs maîtres et les dispositifs esclaves. Avantageusement, l’interface de connexion comprend : - au moins un étage d’entrée relié audit au moins un dispositif maître, - au moins un étage de sortie relié audit au moins un dispositif esclave, - au moins un décodeur relié audit au moins un étage d’entrée et audit au moins un étage de sortie. En particulier, ledit au moins un étage d’entrée, ledit au moins un étage de sortie et ledit au moins un décodeur sont configurés pour fonctionner selon lesdits paramètres de configuration. Plus particulièrement, le bus de configuration est relié audit au moins un étage d’entrée, audit au moins un étage de sortie et audit au moins un décodeur et est configuré pour leur délivrer les nouveaux paramètres de configuration afin de définir leur fonctionnement. De préférence, ledit au moins un étage de sortie comprend un arbitre et un circuit logique de sortie. Selon un mode de réalisation particulièrement avantageux, le système sur puce comprend une mémoire reliée au bus de configuration, les nouveaux paramètres de configuration étant stockés dans ladite mémoire. Selon un mode de réalisation particulièrement avantageux, le système sur puce comprend des paramètres de configuration par défaut codés à un niveau de transfert de registres. De préférence, l’interface de connexion comprend un circuit de sélection configuré pour sélectionner les paramètres de configuration à appliquer parmi les nouveaux paramètres de configuration et les paramètres de configuration par défaut. Avantageusement, le circuit de sélection est configuré pour sélectionner le nouveau paramètre de configuration à appliquer selon une valeur d’un bit de garde qui garantit que le nouveau paramètre de configuration est valide. Ainsi, le bit de garde peut être utilisé pour garantir qu’un nouveau paramètre de configuration n’est pas corrompu. Selon un mode de réalisation particulièrement avantageux, la mémoire dans laquelle les nouveaux paramètres de configuration sont stockés est une mémoire flash. En variante, les nouveaux paramètres de configuration sont stockés dans une mémoire programmable une fois. En variante, les nouveaux paramètres de configuration sont stockés dans une pluralité de registres de configuration de système. De tels registres de configuration de système sont dans un domaine persistant, c’est-à-dire qu’ils sont alimentés par une pile afin de ne pas perdre d’informations pendant la mise en veille. 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 une pluralité de dispositifs maîtres M et une pluralité de dispositifs esclaves S. Le système sur puce peut aussi comprendre au moins une mémoire MEM, par exemple une mémoire flash, avec une interface flash pour communiquer avec la mémoire. Le système sur puce peut aussi comprendre des caches d’instructions « I-cache ». Le système sur puce peut aussi comporter un accès direct à la mémoire universel GPDMA1, différents bus comme des bus haute performance évolués AHB1, AHB4 et des bus périphériques évolués APB, APB1, APB2, APB4. Par exemple, le système sur puce peut comprendre différentes unités de traitement comme dispositifs maîtres M. Le système sur puce peut comprendre des périphériques IP#1, …, IP#6 comme dispositifs esclaves S. Les périphériques peuvent être organisés en différents domaines PHD et sous-domaines. Le système sur puce SOC comprend aussi différentes interfaces de connexion entre les dispositifs maîtres et les dispositifs esclaves. En particulier, le système sur puce comprend au moins une matrice de bus BM comme interface de connexion. La matrice de bus BM est une interface de connexion qui est reliée d’un côté aux maîtres M et de l’autre côté directement aux dispositifs esclaves S ou à un domaine périphérique PHD. La matrice de bus BM est configurée pour acheminer les signaux entre les dispositifs maîtres M et soit les dispositifs esclaves S, soit le domaine périphérique PHD afin de permettre une communication entre les dispositifs maîtres M et soit les dispositifs esclaves S, soit le domaine périphérique PHD. La matrice de bus BM est agencée en lignes et colonnes. Chaque ligne est reliée à un port maître Mp0, …, Mp N de la matrice de bus BM. Chaque colonne est reliée à un port esclave Sp 0 , …, Sp N de la matrice de bus BM. Sur la , les connexions entre les lignes et les colonnes sont représentées par des points. Selon les connexions définies par la matrice de bus, chaque esclave S peut communiquer avec différents maîtres M, et chaque maître M peut communiquer avec différents esclaves S. La matrice de bus BM est codée en dur. Une interface de connexion, nommée sous-matrice SM, est aussi incluse dans chaque domaine périphérique PDM ou sous-domaine. Une telle sous-matrice SM comprend d’un premier côté un port relié à la matrice de bus BM et de l’autre côté un port relié aux périphériques ou aux sous-domaines. La représente un exemple de deux connexions d’une matrice de bus. En particulier, la matrice de bus est configurée pour relier un dispositif maître Mj à un dispositif esclave Sk, et pour relier un dispositif maître My au dispositif esclave Sk. Ainsi, la matrice de bus comprend deux ports esclaves Spj et Spy reliés respectivement aux dispositifs maîtres Mj et My, et un port maître Mpk relié au dispositif esclave Sk. La matrice de bus comprend aussi un étage d’entrée ISBMj, ISBMy pour chaque dispositif maître Mj, My relié à la matrice de bus BM. Chaque étage d’entrée ISBMj, ISBMy est configuré pour enregistrer et maintenir un transfert entrant provenant du dispositif maître Mj, My relié à cet étage d’entrée ISBMj, ISBMy. En particulier, chaque étage d’entrée ISBMj, ISBMy est configuré pour maintenir le transfert entrant lorsque le dispositif esclave Sk est occupé. La matrice de bus comprend aussi un décodeur DBMjk, DBMyk pour chaque connexion entre un port esclave Spj, Spy et un port maître Mpk (c’est-à-dire pour chaque point de la matrice). Chaque décodeur est configuré pour sélectionner un dispositif esclave. En particulier, le décodeur met en œuvre un tableau d’acheminement pour chaque dispositif maître. Le décodeur est capable de mettre en œuvre un mécanisme de réaffectation et est en outre configuré pour acheminer les messages du dispositif esclave connecté au décodeur jusqu’au maître. La matrice de bus BM comprend un étage de sortie pour chaque dispositif esclave S relié à la matrice de bus. Par exemple, sur la , la matrice de bus comprend un étage de sortie OSBMk relié au port maître My et au dispositif esclave Sk. L’étage de sortie OSBMk est relié aux décodeurs DBMjk et DBMyk et à tous les autres décodeurs DBMk de la ligne connectée au port maître My. Chaque étage de sortie comprend un arbitre ABT, configuré pour déterminer quel port esclave a accès au dispositif esclave partagé, et une logique de sortie OLBM. La logique de sortie OLBM est configurée pour décider quand communiquer avec le dispositif maître sélectionné par l’arbitre. La représente une connexion d’une sous-matrice SM. La sous-matrice est configurée pour relier un dispositif maître à différents dispositifs esclaves. Par exemple, la connexion de la sous-matrice SM montrée sur la relie un maître M à un dispositif esclave Sx. Ainsi, pour chaque connexion, la sous-matrice comprend un port esclave Sp relié au dispositif maître M, et un port maître Mpx relié au dispositif esclave Sx. La sous-matrice SM comprend un étage d’entrée ISSM relié à un port maître de la matrice de bus. L’étage d’entrée ISSM est configuré pour enregistrer et maintenir un transfert entrant provenant de la matrice de bus. En particulier, l’étage d’entrée ISSM est configuré pour maintenir le transfert entrant lorsque le dispositif esclave S est occupé. La sous-matrice SM comprend aussi un décodeur DSMx, pour chaque connexion entre un étage d’entrée ISSM et un étage de sortie OSSMx de la sous-matrice SM. Le décodeur DSMx est configuré pour sélectionner un dispositif esclave et pour mettre en œuvre un tableau d’affectation. Chaque étage de sortie OSSMx comprend une logique de sortie OLSM. La logique de sortie OLSM est configurée pour décider quand communiquer avec le dispositif maître. La matrice de bus BM et toutes les sous-matrices SM sont configurées pour fonctionner selon des paramètres de configuration. Par exemple, les paramètres de configuration sont utilisés pour définir le fonctionnement de chaque étage d’entrée ISBM, ISSM. En particulier, les paramètres de configuration peuvent être utilisés pour désactiver un dispositif maître. Les paramètres de configuration sont aussi utilisés pour définir le fonctionnement de chaque décodeur DBM, DSM. En particulier, les paramètres de configuration peuvent définir la carte d’acheminement et le tableau de réaffectation de la matrice de bus BM ou de la sous-matrice SM. Les paramètres de configuration sont aussi utilisés pour définir le fonctionnement de chaque étage de sortie OSBM, OSSM. En particulier, les paramètres de configuration peuvent être utilisés pour désactiver un dispositif esclave et pour définir la politique d’arbitrage. Le système sur puce est configuré pour modifier les paramètres de configuration afin d’adapter le fonctionnement de la matrice de bus et de chaque sous-matrice. Ceci permet d’améliorer la polyvalence du système sur puce. Plus particulièrement, le système sur puce SOC comprend des paramètres de configuration par défaut codés au niveau d’un transfert de registres (c’est-à-dire codés en « RTL »). Les paramètres de configuration par défaut définissent un fonctionnement par défaut de la matrice de bus et de chaque sous-matrice. Le fonctionnement par défaut de la matrice de bus et de chaque sous-matrice est choisi au moment de la conception du système sur puce. En particulier, les paramètres de configuration par défaut sont choisis pour garantir la fonctionnalité de la matrice de bus et de chaque sous-matrice dans tous les scénarios possibles. Néanmoins, les paramètres de configuration peuvent être modifiés pendant le temps d’exécution pour améliorer les performances et la flexibilité de la matrice de bus et de chaque sous-matrice. En effet, comme montré sur les figures 1 et 2, la matrice de bus BM et toutes les sous-matrices SM sont reliées à un bus de configuration. Plus particulièrement, chaque étage d’entrée ISBM, ISSM, chaque décodeur DBM, DSM et chaque étage de sortie OSBM, OSSM de la matrice de bus BM et de chaque sous-matrice SM est relié à un bus de configuration CFB. Le bus de configuration CFB est configuré pour délivrer de nouveaux paramètres de configuration à la matrice de bus BM et à chaque sous-matrice SM. Les nouveaux paramètres de configuration permettent de modifier le fonctionnement de la matrice de bus BM et de chaque sous-matrice SM, et ils sont stockés dans une mémoire MEM, comme une mémoire flash ou une mémoire programmable une fois ou une pluralité de registres de configuration de système dans un domaine persistant. En particulier, la mémoire flash est configurée pour comprendre une zone de mémoire flash dédiée au stockage des nouveaux paramètres de configuration. Cette zone de mémoire flash peut être protégée de telle manière que seul un utilisateur autorisé peut accéder à ces paramètres et modifier leurs valeurs. En variante, la mémoire programmable une fois comprend une zone de mémoire dédiée au stockage des nouveaux paramètres de configuration pour les interfaces de connexion. Cette zone de mémoire peut aussi être protégée. En variante, certains registres de système de configuration dans un domaine persistant sont dédiés au stockage des nouveaux paramètres de configuration pour les interfaces de connexion. La matrice de bus BM et les sous-matrices SM comprennent des circuits de sélection. Les figures 4 et 5 représentent différents circuits de sélection SELC1, SELC2. Les circuits de sélection sont configurés pour sélectionner les paramètres de configuration entre les paramètres de configuration par défaut DCFP et les nouveaux paramètres de configuration NCFP. En particulier, chaque élément de la matrice de bus et de chaque sous-matrice comprend un tel circuit de sélection. Plus particulièrement, chaque étage d’entrée ISBM, ISSM comprend un circuit de sélection SELC1 et/ou SELC2 configuré pour sélectionner les paramètres de configuration de cet étage d’entrée. Chaque décodeur DBM, DSM comprend aussi un circuit de sélection configuré pour sélectionner les paramètres de configuration de ce décodeur. Chaque étage de sortie comprend aussi un circuit de sélection configuré pour sélectionner les paramètres de configuration de cet étage de sortie. Comme montré sur la , chaque circuit de sélection SELC1 comprend des registres de paramètres appropriés. Les registres de paramètres appropriés RPR1 sont configurés pour stocker des paramètres de configuration par défaut DCFP codés au niveau d’un transfert de registres. Ces paramètres par défaut DCFP sont associés à l’élément de l’interface de connexion (c’est-à-dire l’étage d’entrée, le décodeur ou l’étage de sortie) qui comprend le circuit de sélection SELC1. Les registres de paramètres appropriés RPR1 comprennent aussi un registre volatil CFVR1 relié au bus de configuration CFB et configuré pour stocker de nouveaux paramètres de configuration NCFP fournis par le bus de configuration CFB. En particulier, le système sur puce peut être configuré pour lire les nouveaux paramètres de configuration NCFP stockés dans la mémoire MEM après une réinitialisation du système sur puce. Ensuite, le système sur puce peut être configuré pour délivrer les nouveaux paramètres de configuration au registre volatil CFVR1 via le bus de configuration CFG. Le registre volatil CFVR1 peut aussi être configuré pour stocker un bit de garde GB1. Le bit de garde GB1 est configuré pour valider la possibilité d’utiliser les nouveaux paramètres de configuration. La valeur du bit de garde GB1 est définie selon une valeur d’un code de correction d’erreurs de la mémoire MEM après la lecture des nouveaux paramètres de configuration NCFP. En particulier, si le code de correction d’erreurs indique que les nouveaux paramètres de configuration sont corrompus, la valeur du bit de garde GB1 est réglée pour empêcher l’utilisation des nouveaux paramètres de configuration. Si le code de correction d’erreurs indique que les nouveaux paramètres de configuration ne sont pas corrompus, la valeur du bit de garde GB1 est réglée pour permettre l’utilisation des nouveaux paramètres de configuration. Le circuit de sélection SELC1 comprend aussi un multiplexeur MUX1. Le multiplexeur MUX1 comprend deux entrées configurées pour recevoir les paramètres de configuration par défaut DCFP et les nouveaux paramètres de configuration NCFP et une sortie configurée pour délivrer les paramètres de configuration sélectionnés SCFP. Le multiplexeur MUX1 comprend aussi une broche de sélection pour sélectionner les paramètres de configuration entre les paramètres de configuration par défaut DCFP et les nouveaux paramètres de configuration NCFP. La broche de sélection est configurée pour recevoir un signal de sélection SEL1. En particulier, le circuit de sélection SELC1 comprend une porte logique ET ANDG1 utilisée pour générer le signal de sélection SEL1. La porte logique ANDG1 est en outre configurée pour recevoir le bit de garde GB, un signal de réinitialisation RST1 et un signal de désactivation DSB1. Ainsi, le signal de sélection SEL1 est configuré pour sélectionner les nouveaux paramètres de configuration NCFP uniquement lorsque le bit de garde GB1 indique que les nouveaux paramètres de configuration NCFP sont valides. Le circuit de sélection SELC1 peut être codé à un niveau de transfert de registres. Comme montré sur la , un autre circuit de sélection SELC2 peut aussi être utilisé pour appliquer des signaux SGT à travers un circuit de porte logique. Le circuit de sélection SELC2 est configuré pour appliquer les signaux SGT à travers un circuit de porte logique selon un bit sélecteur SGB. Plus particulièrement, le circuit de sélection SELC2 comprend des registres de paramètres appropriés RPR2 qui stockent un bit sélecteur par défaut DGB codé à un niveau de transfert de registres. Les registres de paramètres appropriés RPR2 comprennent également un registre volatil CFVR2 relié au bus de configuration CFB. Ce registre volatil CFVR2 est configuré pour stocker un nouveau bit sélecteur NGB fourni par le bus de configuration CFB et il peut être aussi configuré pour stocker un bit de garde GB2. Le bit de garde GB2 est configuré pour valider la possibilité d’utiliser le nouveau bit sélecteur NGB. Le circuit de sélection SELC2 comprend en outre une porte logique ET ANDG2 utilisée pour générer un signal de sélection SEL2. La porte logique ANDG2 est configurée pour recevoir le bit de garde GB2, un signal de réinitialisation RST2 et un signal de désactivation DSB2. Le circuit de sélection SELC2 comprend aussi un multiplexeur MUX2. Le multiplexeur MUX2 comprend deux entrées configurées pour recevoir le bit sélecteur par défaut DGB et le nouveau bit sélecteur NGB et une sortie configurée pour délivrer le bit sélecteur SGB choisi. Le multiplexeur MUX2 comprend aussi une broche de sélection configurée pour recevoir le signal de sélection SEL2. Ainsi, le signal de sélection SEL2 est configuré pour sélectionner le nouveau bit sélecteur NGB uniquement lorsque le bit de garde GB2 indique que le nouveau bit sélecteur NGB est valide. Le circuit de sélection SELC2 comprend aussi une porte ET ANDG3 ayant une première entrée reliée à la sortie du multiplexeur MUX2 pour recevoir le bit sélecteur SGB choisi, et d’autres entrées configurées pour recevoir les signaux SGT à appliquer. Par conséquent, la porte ANDG3 peut appliquer les signaux SGT selon la valeur du bit sélecteur SGB choisi. Ces signaux SGT appliqués peuvent donc être transmis à un sous-circuit SBC pour être appliqués. Ainsi, un tel circuit de sélection SELC2 est configuré pour appliquer des signaux SGT à travers un circuit de porte logique afin d’activer ou de désactiver certaines fonctions ou certains paramètres de la matrice de bus BM ou de la sous-matrice SM. Système sur puce comprenant : - au moins un dispositif maître (Mj, My, M), - au moins un dispositif esclave (Sk, Sx), - une interface de connexion (BM, SM) configurée pour acheminer des signaux entre ledit au moins un dispositif maître (Mj, My, M) et ledit au moins un dispositif esclave (Sk, Sx), l’interface de connexion étant configurée pour fonctionner selon des paramètres de configuration, et - un bus de configuration (CFB) connecté à l’interface de connexion (BM, SM), le bus de configuration (CFB) étant configuré pour délivrer de nouveaux paramètres de configuration à l’interface de connexion afin d’adapter le fonctionnement de l’interface de connexion. Système sur puce selon la revendication 1, dans lequel l’interface de connexion comprend : - au moins un étage d’entrée (ISBM, ISSM) relié audit au moins un dispositif maître (Mj, My, M), - au moins un étage de sortie (OSBM, OSSM) relié audit au moins un dispositif esclave (Sk, Sx), - au moins un décodeur (DBM, DSM) relié audit au moins un étage d’entrée (ISBM, ISSM) et audit au moins un étage de sortie (OSBM, OSSM), dans lequel ledit au moins un étage d’entrée (ISBM, ISSM) ledit au moins un étage de sortie (OSBM, OSSM) et ledit au moins un décodeur (DBM, DSM) sont configurés pour fonctionner selon lesdits paramètres de configuration, et dans lequel le bus de configuration (CFB) est relié audit au moins un étage d’entrée (ISBM, ISSM), audit au moins un étage de sortie (OSBM, OSSM) et audit au moins un décodeur (DBM, DSM) et est configuré pour leur délivrer les nouveaux paramètres de configuration afin de définir leur fonctionnement. Système sur puce selon la revendication 2, dans lequel ledit au moins un étage de sortie (OSBM, OSSM) comprend un arbitre et un circuit logique de sortie (OLBM, OLSM). Système sur puce selon l’une des revendications 1 à 3, comprenant une mémoire (MEM) reliée au bus de configuration, les nouveaux paramètres de configuration étant stockés dans ladite mémoire. Système sur puce selon l’une des revendications 1 à 4, comprenant des paramètres de configuration par défaut (DCFP) codés à un niveau de transfert de registres. Système sur puce selon la revendication 5, dans lequel l’interface de connexion comprend un circuit de sélection (SELC) configuré pour sélectionner les paramètres de configuration à appliquer parmi les nouveaux paramètres de configuration et les paramètres de configuration par défaut. Système sur puce selon la revendication 6, dans lequel le circuit de sélection (SELC) est configuré pour sélectionner les nouveaux paramètres de configuration (NCFP) à appliquer selon une valeur d’un bit de garde (GB) qui garantit que le nouveau paramètre de configuration (NCFP) est valide. Système sur puce selon l’une des revendications 1 à 7, dans lequel la mémoire dans laquelle les nouveaux paramètres de configuration sont stockés est une mémoire flash. Système sur puce selon l’une des revendications 1 à 7, dans lequel la mémoire dans laquelle les nouveaux paramètres de configuration sont stockés est une mémoire programmable une fois. Système sur puce selon l’une des revendications 1 à 7, dans lequel la mémoire dans laquelle les nouveaux paramètres de configuration sont stockés est une pluralité de registres de configuration de système.