FR3103586A1 - Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant - Google Patents
Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant Download PDFInfo
- Publication number
- FR3103586A1 FR3103586A1 FR1913124A FR1913124A FR3103586A1 FR 3103586 A1 FR3103586 A1 FR 3103586A1 FR 1913124 A FR1913124 A FR 1913124A FR 1913124 A FR1913124 A FR 1913124A FR 3103586 A1 FR3103586 A1 FR 3103586A1
- Authority
- FR
- France
- Prior art keywords
- master
- configuration
- information
- chip
- slave
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7814—Specially adapted for real time processing, e.g. comprising hardware timers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Hardware Redundancy (AREA)
- Storage Device Security (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Abstract
Système sur puce, comprenant plusieurs équipements maîtres, plusieurs ressources esclaves, un circuit d’interconnexion (INTC) couplé entre les équipements maîtres et les ressources esclaves et capable de router des transactions entre des équipements maîtres et des ressources esclaves, et des moyens de traitement (MT) au moins configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce (MCU) au moins un schéma de configuration (SCH) de ce système défini par un ensemble d’informations de configuration comportant au moins une information d’identification (CID) affectée à chaque équipement maître, ces informations d’identification étant destinées à être jointes à toutes les transactions (TR) émises par les équipements maîtres correspondants, l’ensemble de ces informations de configuration n’étant pas utilisé pour l’adressage des ressources esclaves destinataires desdites transactions et étant utilisé pour définir une assignation d’au moins un équipement maître à certaines au moins des ressources esclaves. Figure pour l’abrégé : Fig 1
Description
Des modes de mise en œuvre et de réalisation de l’invention concernent les circuits intégrés, notamment les systèmes sur puce (SoC: System on Chip), par exemple un microcontrôleur (multi-cœurs ou mono-cœur), ou un microprocesseur, et plus particulièrement la gestion du fonctionnement d’un tel système sur puce.
Afin de contribuer à garantir la fiabilité d’un système sur puce, il peut être requis de restreindre l’accès d’un ou de plusieurs équipements maîtres à des ressources esclaves spécifiques. Une telle caractéristique est désignée par l’homme du métier sous le vocable anglosaxon de «isolation».
Il existe un besoin de rendre une gestion de ces restrictions d’accès simple à mettre en œuvre et à implémenter tout particulièrement dans le cas où cette gestion est dynamique, par exemple lorsqu’elle dépend des applications envisagées pour le système sur puce, par exemple des applications envisagées sur les multiples cœurs de la puce.
Il existe également un besoin de proposer un système sur puce, par exemple un microcontrôleur ou un microprocesseur, permettant tous les cas d’utilisation émanant des divers utilisateurs du système sur puce ainsi que toutes les configurations d’une manière flexible, et incluant en particulier un mode basse consommation (low power mode).
Selon un aspect, il est proposé un système sur puce comprenant plusieurs équipements maîtres, par exemple, lorsque le système forme en particulier un microcontrôleur, au moins un microprocesseur et généralement plusieurs microprocesseurs, un contrôleur d’accès direct en mémoire (DMA: Direct Memory Access…) sans que ces exemples ne soient limitatifs.
Le système sur puce comporte par ailleurs plusieurs ressources esclaves.
A titre d’exemple non limitatif, une ressource esclave peut appartenir au groupe formé par au moins un périphérique, par exemple un périphérique du type I2C («Inter Integrated Circuit»), du type SPI («Serial Peripheral Interface), du type UART («Universal Asynchronous Receiver Transmitter), ou bien une horloge temps réel (RTC «Real Time Clock»), une fonctionnalité («feature» en langue anglaise) d’un périphérique, par exemple une ligne d’alarme du périphérique RTC, un moyen de mémoire interne au système sur puce, une interface mémoire interne au système sur puce et destinée à être couplée à un moyen de mémoire externe au système sur puce, par exemple une mémoire du type DDR («Double Data Rate»).
Le système sur puce comporte par ailleurs un système d’interconnexion (connu par l’homme du métier sous la dénomination anglosaxonne «interconnect») couplé entre les équipements maîtres et les ressources esclaves et capable de router des transactions (par exemple des transactions d’écriture ou de lecture) entre les équipements maîtres et les ressources esclaves.
Le système sur puce comporte par ailleurs des moyens de traitement au moins configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce au moins un schéma de configuration de ce système sur puce, ce schéma de configuration étant défini par un ensemble d’informations de configuration comportant au moins une information d’identification affectée à chaque équipement maître.
Ces informations d’identification sont destinées à être jointes à toutes les transactions émises par les équipements maîtres correspondants.
Elles servent en particulier à désigner les équipement maîtres correspondants.
Par ailleurs, l’ensemble de ces informations de configuration, et en particulier les informations d’identification, n’est pas utilisé pour l’adressage des ressources esclaves destinataires desdites transactions mais est utilisé pour définir une assignation d’au moins un équipement maître à certaines au moins des ressources esclaves, ou bien une assignation de certaines au moins des ressources esclaves à au moins un équipement maître.
Par ailleurs, l’adressage des ressources esclaves destinataires desdites transactions est effectué au moyen d’un champ d’adressage contenu dans la transaction considérée. Et non seulement l’ensemble des informations de configuration n’est pas utilisé pour l’adressage des ressources esclaves destinataires des transactions mais également, le contenu du champ d’adressage d’une transaction n’est pas utilisé pour définir ladite assignation d’au moins un équipement maître à certaines au moins des ressources esclaves.
Ainsi, l’assignation d’un ou des équipements maîtres à une ou à plusieurs ressources esclaves permet de gérer l’architecture d’isolation des différentes ressources esclaves et des différents équipements maîtres et ce d’une façon extrêmement simple et flexible par cet ensemble d’informations de configuration.
Il est tout à fait possible, dans un cas extrêmement simple, que l’ensemble d’informations de configuration ne comporte que les informations d’identification affectées aux équipements maîtres. Et on voit alors que ces seules informations d’identification permettent aisément de gérer et de définir l’architecture d’isolation du système sur puce.
Cela étant, comme on le verra plus en détails ci-après, l’ensemble d’informations de configuration peut comporter en général d’autres informations de configuration que l’information d’identification, ce qui va permettre d’affiner l’architecture d’isolation, et ce avec une plus grande flexibilité.
Selon un mode de réalisation, les équipements maîtres peuvent comporter plusieurs microprocesseurs et des équipements maîtres contrôlables par ces microprocesseurs.
Par ailleurs, certains au moins des équipements maîtres contrôlables par un microprocesseur peuvent être affectés des mêmes informations d’identification que l’information d’identification du microprocesseur.
Ceci permet de définir un groupe ou compartiment d’équipements maîtres identifiés par une même information d’identification. Et, les équipements maîtres d’un même compartiment pourront par exemple avoir accès à des ressources mémoire identiques.
Cela étant, il est également possible qu’un équipement maître contrôlable par un microprocesseur soit affecté d’une information d’identification différente de l’information d’identification du microprocesseur.
Ce peut être par exemple le cas d’un équipement maître du type PCI express (PCI-E) auquel on ne souhaite pas donner un accès à certaines zones mémoire qui peuvent être par ailleurs accédées par le microprocesseur.
Il est également possible qu’au moins un équipement maître contrôlable par un microprocesseur comporte un port de sortie capable d’émettre des transactions ainsi qu’un port d’entrée capable de recevoir des transactions. Le port d’entrée est alors considéré comme étant une ressource esclave et le port de sortie comme un équipement maître.
Un tel équipement maître ayant un port d’entrée et un port de sortie peut être par exemple un contrôleur USB ou bien un contrôleur d’une carte SD.
Les moyens de traitement sont avantageusement configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce un schéma initial de configuration formant ledit schéma de configuration.
Dans un tel cas, on est en fait dans le cadre d’une configuration statique dans laquelle le schéma de configuration correspond à un schéma initial de configuration implémenté qui ne subit aucune modification au cours du fonctionnement du système sur puce.
En variante, il est tout à fait possible que les moyens de traitement soient configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce un schéma initial de configuration ayant un ensemble initial d’informations de configuration, les moyens de traitement étant alors également configurés pour modifier la valeur d’au moins une information de configuration de cet ensemble initial de façon à obtenir ledit ensemble d’informations de configuration définissant le schéma de configuration.
En d’autres termes, dans ce cas «dynamique», l’utilisateur a la possibilité, après avoir implémenté le schéma initial de configuration, de modifier ultérieurement ce schéma initial de configuration.
Que l’on soit dans un cas de configuration statique ou dans un cas de configuration dynamique, les moyens de traitement comprennent avantageusement des moyens d’installation comportant parmi les équipements maîtres un premier équipement maître dit gestionnaire, ce premier équipement maître gestionnaire étant configuré pour, en réponse à un premier démarrage ou démarrage à froid («cold boot») du système sur puce, effectuer une phase de démarrage à l’issue de laquelle ce premier équipement maître gestionnaire est configuré pour au moins permettre l’implémentation du schéma initial de configuration.
Ce premier équipement maître gestionnaire peut comprendre un microprocesseur ou en variante un circuit logique matériel.
Par ailleurs, la désignation du premier équipement maître gestionnaire peut être fixée lors de la réalisation du système sur puce.
En d’autres termes, le système sur puce une fois réalisé, va imposer par construction un premier équipement maître gestionnaire parmi les équipements maîtres du système sur puce.
En variante, pour permettre une plus grande flexibilité, il est possible que les moyens d’installation comportent un registre de désignation, programmable, permettant de désigner le premier équipement maître gestionnaire.
Ce registre programmable peut être formé par exemple de plusieurs mémoires OTP («One Time Programmable») permettant à l’utilisateur du système sur puce, en fonction de son application, de désigner en programmant ces mémoires OTP, l’un des équipements maîtres comme premier équipement maître gestionnaire.
De façon notamment à ne pas générer de conflit lors de la phase de configuration du système sur puce, les moyens d’installation sont en outre avantageusement configurés pour rendre temporairement inopérants tous les autres équipements maîtres tant que le premier équipement maître gestionnaire n’a pas terminé sa phase de démarrage.
Rendre temporairement inopérant un équipement maître tel qu’un microprocesseur peut par exemple s’effectuer en forçant le signal de réinitialisation (reset) à zéro, ce qui permet de maintenir le microprocesseur dans un état de veille.
Selon un mode de réalisation, les moyens d’installation comportent en outre une mémoire de démarrage configurée pour stocker un programme de démarrage exécutable uniquement par le premier équipement maître gestionnaire lors du premier démarrage (démarrage à froid) du système sur puce.
D’une façon générale, les moyens de traitement comportent, de préférence, des moyens de configuration, configurés pour permettre à un utilisateur du système sur puce de définir le schéma initial de configuration et des moyens d’allocation configurés pour implémenter le schéma initial de configuration.
A cet égard, les moyens de configuration comportent par exemple une entrée configurée pour recevoir un programme utilisateur contenant au moins des instructions représentatives du schéma initial de configuration, ainsi qu’une mémoire programme destinée à stocker le programme utilisateur.
Les moyens d’allocation comportent par exemple quant à eux, ledit premier équipement maître gestionnaire qui est configuré pour, à l’issue de sa phase de démarrage, exécuter le programme utilisateur afin d’implémenter ledit schéma initial de configuration.
L’utilisateur peut donc très simplement définir de façon logicielle le schéma initial de configuration du système sur puce et c’est le premier équipement maître gestionnaire qui, à l’issue de sa phase de démarrage, va exécuter le programme utilisateur afin d’implémenter le schéma initial de configuration.
Le mode de réalisation prévoyant un équipement maître gestionnaire qui est le seul autorisé à implémenter le schéma initial de configuration et à le modifier éventuellement peut être considéré de façon indépendante ou bien en combinaison avec l’un au moins des modes de réalisation précédents ou suivants.
Ainsi lorsque ce mode de réalisation est considéré de façon indépendante, il est proposé selon un autre aspect un système sur puce, comprenant plusieurs équipements maîtres, plusieurs ressources esclaves, un circuit d’interconnexion couplé entre les équipements maîtres et les ressources esclaves et capable de router des transactions entre des équipements maîtres et des ressources esclaves, et des moyens de traitement au moins configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce au moins un schéma de configuration de ce système, les moyens de traitement comprenant des moyens d’installation comportant parmi les équipements maîtres un premier équipement maître dit gestionnaire, ce premier équipement maître gestionnaire étant configuré pour permettre l’implémentation du schéma de configuration.
Comme indiqué ci-avant ce schéma de configuration peut être un schéma initial de configuration ou bien un schéma initial de configuration modifié par le premier équipement maître gestionnaire.
Ce premier équipement maître gestionnaire peut être également configuré pour modifier le schéma de configuration de façon à implémenter un nouveau schéma de configuration qui pourra être éventuellement de nouveau modifié par l’équipement maître gestionnaire.
Dans ce qui précède, on a considéré qu’il n’y avait qu’un seul équipement maître gestionnaire opérant en réponse au premier démarrage du système sur puce.
Cela étant, il est possible, en variante, qu’il y ait un transfert («handover») entre un équipement maître initial et un autre équipement maître désigné comme étant un nouvel équipement maître gestionnaire.
Plus précisément, et selon un mode de réalisation, les moyens d’installation comportent alors parmi les équipements maîtres un équipement maître dit «équipement gestionnaire initial», configuré pour, lors du premier démarrage (ou démarrage à froid) du système sur puce, effectuer une phase de démarrage à l’issue de laquelle il est configuré pour autoriser un démarrage d’un autre équipement maître désigné comme étant un nouvel équipement maître gestionnaire, ce nouvel équipement maître gestionnaire formant alors ledit premier équipement maître gestionnaire, ce premier équipement maître gestionnaire étant configuré pour, à l’issue de sa phase de démarrage, permettre l’implémentation du schéma initial de configuration.
Un tel mode de réalisation est par exemple avantageux lorsque l’équipement maître gestionnaire initial est défini par défaut lors de la réalisation du système sur puce et que l’utilisateur souhaite lors de la phase de configuration, compte tenu de son application, modifier l’équipement maître gestionnaire.
Dans une telle variante de réalisation (changement d’équipement maître gestionnaire), l’équipement maître gestionnaire initial peut comprendre un microprocesseur et le nouvel équipement maître gestionnaire peut comprendre un autre microprocesseur.
Il est également possible que l’équipement maître gestionnaire initial comprenne un circuit logique matériel et que le nouvel équipement maître gestionnaire comprenne un microprocesseur.
Là encore, les moyens d’installation sont en outre avantageusement configurés pour rendre temporairement inopérants tous les autres équipements maîtres tant que la phase de démarrage de l’équipement maître gestionnaire initial et celle du nouvel équipement maître gestionnaire ne sont pas terminées.
Toujours dans le cas de cette variante de réalisation (changement d’équipement maître gestionnaire) les moyens d’installation peuvent comporter une mémoire de démarrage configurée pour stocker un programme de démarrage exécutable uniquement par l’équipement maître gestionnaire initial lors du premier démarrage (démarrage à froid) du système sur puce et une mémoire programmable configurée pour stocker le programme de démarrage du nouvel équipement maître gestionnaire.
Toujours dans le cas de cette variante de réalisation avec changement d’équipement maître gestionnaire, les moyens de configuration peuvent comporter là encore une entrée configurée pour recevoir un programme utilisateur contenant au moins des instructions représentatives du schéma initial de configuration, cette mémoire programme étant également destinée à stocker le programme utilisateur et les moyens d’allocation comportent là encore le premier équipement maître gestionnaire configuré pour, à l’issue de sa phase de démarrage, exécuter ledit programme utilisateur afin d’implémenter ledit schéma initial de configuration.
Quelle que soit la variante de réalisation qui vient d’être exposée (changement ou non d’équipement maître gestionnaire au cours de la phase de configuration du système sur puce), il est également possible pour l’utilisateur de changer d’équipement maître gestionnaire au cours de la phase de fonctionnement proprement dit du système sur puce (c’est-à-dire au cours de l’exécution de son programme utilisateur).
Plus précisément, dans cette optique, le premier équipement maître gestionnaire (qui est celui qui est effectivement gestionnaire à l’issue de la phase de configuration du système sur puce) est en outre configuré pour, après avoir permis d’implémenter le schéma de configuration initiale, désigner, au cours de l’exécution d’un programme utilisateur par les moyens de traitement, un deuxième équipement maître en tant que nouvel équipement maître gestionnaire, le premier équipement maître étant alors configuré pour perdre sa qualité d’équipement maître gestionnaire.
Comme on le verra plus en détail ci-après, il est possible de prévoir un registre dit registre gestionnaire, destiné à contenir l’information d’identification de l’équipement maître gestionnaire courant. Et, la désignation par l’équipement maître gestionnaire courant d’un autre équipement maître en tant qu’équipement maître gestionnaire, peut alors avantageusement se faire par l’écriture dans ce registre gestionnaire, par l’équipement maître gestionnaire courant, de l’information d’identification du nouvel équipement maître qui sera alors l’équipement maître gestionnaire. Et, comme le registre gestionnaire ne comporte plus l’information d’identification du précédent équipement maître gestionnaire, celui-ci a de facto perdu sa qualité d’équipement maître gestionnaire.
Par ailleurs, il est tout à fait possible, dans certains cas, de prévoir que l’on puisse changer plusieurs fois d’équipement maître gestionnaire au cours de l’exécution du programme utilisateur.
Un tel changement peut être décidé lors du fonctionnement du système sur puce, ou bien être fixé lors la fabrication du système sur puce.
Le nombre de changements peut aussi être fixé.
En d’autres termes, et selon un mode de réalisation, tout nouvel équipement maître gestionnaire peut être configuré pour à son tour désigner un nouvel équipement maître gestionnaire et perdre alors sa qualité d’équipement maître gestionnaire.
Le mode de réalisation prévoyant un transfert d’équipement maître gestionnaire peut être considéré de façon indépendante ou bien en combinaison avec l’un au moins des modes de réalisation précédents ou suivants.
Ainsi lorsque ce mode de réalisation est considéré de façon indépendante, il est proposé selon un autre aspect un système sur puce, comprenant plusieurs équipements maîtres, plusieurs ressources esclaves, un circuit d’interconnexion couplé entre les équipements maîtres et les ressources esclaves et capable de router des transactions entre des équipements maîtres et des ressources esclaves, et des moyens de traitement au moins configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce au moins un schéma de configuration de ce système, les moyens de traitement comprenant des moyens d’installation comportant parmi les équipements maîtres un équipement maître dit gestionnaire, cet équipement maître gestionnaire étant configuré pour permettre l’implémentation du schéma de configuration et étant capable de désigner un nouvel équipement gestionnaire en perdant alors sa qualité d’équipement maître gestionnaire.
On va maintenant revenir plus en détails sur l’ensemble d’informations de configuration définissant le schéma de configuration.
Comme on l’a vu précédemment, dans un cas extrêmement simple, il est possible que cet ensemble ne comporte que les informations d’identification des équipements maîtres.
Cela étant, d’autres informations de configuration peuvent compléter cet ensemble.
Ainsi, selon un mode de réalisation, l’ensemble d’informations de configuration définissant le schéma de configuration peut comprendre en outre, pour au moins une ressource esclave, une information d’inaccessibilité destinée à indiquer que cette ressource esclave est inaccessible par tout équipement maître.
Il est en effet tout à fait possible que dans certaines applications, l’utilisateur décide qu’une ressource esclave ne doit absolument pas être utilisée par aucun équipement maître.
Selon encore un mode de réalisation, l’ensemble d’informations de configuration définissant le schéma de configuration peut comprendre en outre pour chaque ressource esclave non inaccessible, une information de filtrage destinée à indiquer, en se basant uniquement sur les informations d’identification des équipements maîtres, si cette ressource esclave peut être accédée par n’importe quel équipement maître ou par seulement un ou plusieurs équipements maîtres.
En d’autres termes, on peut, avec cette information de filtrage, activer ou désactiver le filtrage sur les informations d’identification des équipements maîtres. Ainsi, si le filtrage est activé, alors cela signifie que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres.
Si le filtrage est désactivé, cela veut dire que la ressource esclave peut être accédée par n’importe quel équipement maître, donc, quelle que soit l’information d’identification jointe à la transaction, mais bien sûr sous réserve que d’autres restrictions d’accès ne soient pas appliquées comme on le verra plus en détails ci-après.
En d’autres termes, si aucune autre restriction d’accès n’est appliquée et que le filtrage est désactivé, alors la ressource esclave peut être accédée par n’importe quel équipement maître.
Dans le cas où ce filtrage est activé, il est alors avantageusement prévu plusieurs autres informations de configuration.
Ainsi, l’ensemble d’informations de configuration définissant un schéma de configurations peut alors comprendre pour chaque ressource esclave non inaccessible,
-une première information d’accès, destinée à indiquer, dans le cas où l’information de filtrage indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par un ou plusieurs équipements maîtres ayant la même information d’identification.
-une première information d’accès, destinée à indiquer, dans le cas où l’information de filtrage indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par un ou plusieurs équipements maîtres ayant la même information d’identification.
En d’autres termes, dans ce cas, la ressource esclave ne peut être accédée que par une transaction ne comportant que cette information d’identification.
Et bien entendu, l’ensemble des informations de configuration comporte ces informations d’identification correspondantes.
Toujours dans le cas où l’information de filtrage indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, l’ensemble d’informations de configuration définissant le schéma de configurations peut alors comprendre en outre, pour chaque ressource esclave non inaccessible,
-une deuxième information d’accès destinée à indiquer que cette ressource esclave peut être accédée par des équipements maîtres ayant des informations d’identification différentes.
-une deuxième information d’accès destinée à indiquer que cette ressource esclave peut être accédée par des équipements maîtres ayant des informations d’identification différentes.
Ce peut être le cas par exemple pour un moyen de mémoire interne ou pour l’interface mémoire destinée à être couplée à un moyen de mémoire externe par exemple.
Et, dans ce cas, l’ensemble d’informations de configuration comprend bien entendu la liste des informations d’identification des équipements maîtres correspondants.
Cela étant, même si certaines ressources esclaves peuvent être accédées par des équipements maîtres ayant des informations d’identification différentes, il est également possible que, parmi ces ressources esclaves, au moins l’une d’entre elles ne puisse pas être accédée de façon simultanée par plusieurs équipements maîtres, de façon en particulier à éviter des conflits.
Aussi, est-il avantageusement prévu que l’ensemble d’informations de configuration définissant le schéma de configuration comprenne en outre pour au moins une des ressources esclaves pouvant être accédées par les équipements maîtres de ladite liste,
-une troisième information destinée à indiquer que ladite une au moins des ressources esclaves ne peut être accédée que par un seul équipement maître à la fois,
-l’équipement maître désirant accéder à cette ressource esclave étant alors configuré pour utiliser un sémaphore.
-une troisième information destinée à indiquer que ladite une au moins des ressources esclaves ne peut être accédée que par un seul équipement maître à la fois,
-l’équipement maître désirant accéder à cette ressource esclave étant alors configuré pour utiliser un sémaphore.
En d’autres termes, l’équipement maître de la liste qui souhaitera accéder à cette ressource esclave devra d’abord «prendre» le sémaphore avant de pouvoir accéder. Si le sémaphore n’est pas disponible, l’équipement maître ne pourra pas accéder à cette ressource esclave et devra attendre que le sémaphore se libère.
Il est par ailleurs particulièrement avantageux de définir un mode sécurisé et/ou un mode privilégié («privileged mode») pour les équipements maîtres et les ressources esclaves.
La notion de mode sécurisé ou de mode privilégié est bien connue de l’homme du métier.
Par exemple, pour un processeur en mode sécurisé, un logiciel d’exploitation (Operating System: OS) dédié peut être utilisé avec des ressources qui ne sont pas accessibles dans un mode non sécurisé.
Dans un mode privilégié, l’équipement peut bénéficier de droits privilégiés pour des accès à des ressources que n’auront pas d’autres équipements qui ne sont pas en mode privilégié.
Ainsi, selon un mode de réalisation, l’ensemble d’informations de configuration définissant le schéma de configuration peut comprendre en outre pour chaque ressource esclave non inaccessible, une information de sécurité destinée à indiquer si cette ressource esclave est accessible par un équipement maître en mode sécurisé ou non.
L’ensemble d’informations de configuration définissant le schéma de configuration peut comprendre en outre pour chaque ressource esclave non inaccessible, une information de privilège destinée à indiquer si cette ressource esclave est accessible par un équipement maître en mode privilégié ou non.
Dans tout ce qui précède, la notion de filtrage et l’ensemble des informations de configuration s’appliquent à toute ressource esclave quelle que soit sa nature.
Par conséquent cela s’applique en particulier à des périphériques.
Il est donc possible en particulier d’isoler un périphérique dans un contexte d’exécution particulier pour par exemple des raisons de sécurité et/ou de sureté.
Mais cela s’applique également en particulier à des fonctionnalités de périphériques.
De ce fait il est donc avantageusement possible d’effectuer en particulier un filtrage par fonctionnalité («feature») de périphérique.
Et là encore il est donc possible en particulier d’isoler une fonctionnalité à l’intérieur d’un périphérique dans un contexte d’exécution particulier pour par exemple des raisons de sécurité et/ou de sureté.
Par ailleurs, l’ensemble d’informations de configuration définissant un schéma de configuration peut comprendre en outre cette fois-ci pour chaque équipement maître, outre son information d’identification, une information de sécurité destinée à indiquer si cet équipement maître est configuré en mode sécurisé ou non.
De même, l’ensemble d’informations de configuration définissant le schéma de configuration peut comprendre en outre pour chaque équipement maître, outre son information d’identification, une information de privilège destinée à indiquer si cet équipement maître est configuré en mode privilège ou non.
Le premier équipement maître gestionnaire est quant à lui de préférence configuré pour être en mode sécurisé et en mode privilège à l’issue de sa phase de démarrage.
Toute ressource esclave peut être accessible en lecture ou en écriture.
Cela étant, cet accès en lecture ou en écriture peut être restreint en fonction des différentes informations de configuration énoncées ci-avant.
Mais, il est possible de définir pour certaines au moins des ressources esclaves, une information dite d’accès public («public read enable») permettant à n’importe quel équipement maître d’accéder en lecture à cette ressource esclave.
Comme on l’a vu ci-avant, il est possible de modifier un schéma de configuration en modifiant au moins une information de configuration. Cela étant, il est possible également que l’ensemble d’informations de configuration définissant le schéma de configurations comprenne en outre pour certaines au moins de ressources esclaves et certains au moins des équipements maîtres, une information de verrouillage destinée à indiquer si leurs informations de configuration peuvent ou non être modifiées.
Comme indiqué ci avant, les moyens d’allocation comprennent le premier équipement maître gestionnaire.
Cela étant, les moyens d’allocation comprennent également, selon un mode de réalisation,
-un jeu de registres de configuration affecté à chaque ressource esclave et à chaque équipement maître, et
-un contrôleur de configuration configuré pour mettre à jour les contenus des jeux de registres de configuration avec ledit ensemble d’information de configuration sous le contrôle du premier équipement maître gestionnaire.
-un jeu de registres de configuration affecté à chaque ressource esclave et à chaque équipement maître, et
-un contrôleur de configuration configuré pour mettre à jour les contenus des jeux de registres de configuration avec ledit ensemble d’information de configuration sous le contrôle du premier équipement maître gestionnaire.
Et, un jeu de registres de configuration affecté à une ressource esclave est avantageusement destiné à stocker les différentes informations de configuration définies ci-avant et affectées à cette ressource esclave.
Par ailleurs, un jeu de registres de configuration affecté à chaque équipement maître est destiné à stocker l’information d’identification affectée à cet équipement maître et les informations de configuration de type sécurité et/ou privilège définies ci-avant.
Comme indiqué ci-avant, les moyens de traitement peuvent être configurés pour utiliser un programme utilisateur pour modifier le schéma initial de configuration après son implémentation et implémenter en conséquence le schéma de configuration et éventuellement remodifier tout ancien schéma de configuration.
Et, à cet égard, seul l’équipement maître qui a la qualité d’équipement maître gestionnaire est avantageusement configuré pour modifier un schéma de configuration.
Plus précisément, et selon un mode de réalisation, pour modifier un schéma de configuration, l’équipement maître gestionnaire est configuré pour commander le contrôleur de configuration de façon à ce qu’il mette à jour les contenus des registres de configuration avec l’ensemble d’informations de configuration définissant le nouveau schéma de configuration à implémenter.
En ce qui concerne maintenant les transactions véhiculées entre les équipements maîtres et les ressources esclaves, chaque transaction émise par un équipement maître comprend, selon un mode de réalisation, un champ d’adressage dont le contenu est destiné à adresser la ressource esclave destinataire de cette transaction et le contenu du champ d’adressage n’appartient pas audit ensemble d’information de configuration.
En effet, comme indiqué ci-avant, le contenu du champ d’adressage n’intervient pas dans la définition du schéma de configuration.
Selon un mode de réalisation, les moyens de traitement comportent en outre des moyens d’adjonction configurés pour ajouter à chaque transaction émise par un équipement maître, au moins l’information d’identification de cet équipement maître, cette information d’identification n’appartenant pas au champ d’adressage de la transaction.
Les moyens d’adjonction sont en outre avantageusement configurés pour ajouter à chaque transaction émise par un équipement maître, l’information de sécurité et/ou l’information de privilège si ces deux informations ou l’une des deux informations ne figurent pas déjà dans la transaction émise par l’équipement maître.
En effet, certains équipements maîtres peuvent déjà émettre une transaction contenant des bits représentatifs de leur mode sécurisé et/ou privilège. Et dans ce cas, il n’est pas nécessaire bien entendu que les moyens d’adjonction procèdent à une telle adjonction.
Selon un mode de réalisation, les moyens d’adjonction comportent, pour chaque équipement maître, une unité de gestion élémentaire configurée pour accéder à l’information d’identification affectée à cet équipement maître et éventuellement à l’information de sécurité et/ou à l’information de privilège, et pour ajouter à toute transaction émise par l’équipement maître, cette information d’identification et éventuellement à l’information de sécurité et/ou l’information de privilège.
Une telle «décentralisation» des moyens d’adjonction en des unités locales affectées à chaque équipement maître, permet une plus grande homogénéité d’implémentation du système sur puce et permet aisément de rajouter un équipement maître si nécessaire sans devoir modifier les autres unités de gestion élémentaire.
Chaque unité de gestion élémentaire affectée à un équipement maître est de préférence connectée par une liaison dédiée au moins au jeu de registres de configuration affecté à cet équipement maître.
En d’autres termes, on ne passe pas par les bus de communication du circuit d’interconnexion mais par une liaison dédiée, par exemple des pistes métalliques du circuit intégré.
Ceci simplifie la réalisation et la programmation du système sur puce.
Selon un mode de réalisation, au moins une information de configuration est destinée à être jointe à chaque transaction et les moyens de traitement comportent des moyens de vérification configurés pour vérifier si une transaction émanant d’un équipement maître et destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave en utilisant ladite au moins une information de configuration jointe à ladite transaction.
En particulier, les moyens de vérification sont configurés pour vérifier si une transaction émanant d’un équipement maître et destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave, en utilisant ladite au moins une information de configuration jointe à ladite transaction.
A cet égard, le terme «utiliser» doit s’entendre dans un sens très large. En effet, même si l’information de filtrage est désactivée (signifiant que n’importe quel équipement maître peut accéder à une ressource esclave, sous réserve d’autres restrictions d’accès) cette information de filtrage est basée sur les informations d’identification et par conséquent ces dernières sont utilisées.
Selon un autre mode de réalisation, il est possible que les moyens de vérification soient configurés pour vérifier si une transaction émanant d’un équipement maître et destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave en utilisant au moins ladite information de sécurité et ladite information de privilège jointes à ladite transaction.
Ainsi, il est possible, si par exemple l’information de filtrage est désactivée, que l’accès à une ressource esclave soit conditionné au mode sécurisé/ou privilégié.
Selon un autre mode de réalisation, les moyens de vérification sont configurés pour vérifier si une transaction émanant de l’équipement maître et destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave en utilisant la ou les informations de configuration jointes à ladite transaction ainsi que certaines au moins des autres informations de configuration de l’ensemble d’information de configuration, affectées à cette ressource esclave.
Les moyens de vérification sont avantageusement configurés pour effectuer ladite vérification en aval du circuit d’interconnexion.
En effet, effectuer une vérification en aval du circuit d’interconnexion et non pas en amont permet là encore une homogénéité d’implémentation et permet aisément de rajouter une ressource esclave de façon facilitée ou encore d’avoir une granularité au registre ou au bit près.
Pour compléter cette homogénéité d’implémentation et cette facilité de rajout d’une ressource esclave si nécessaire, les moyens de vérification comportent avantageusement pour chaque ressource esclave un module de vérification élémentaire configuré pour accéder à l’ensemble d’informations de configuration affectées à cette ressource esclave.
On retrouve donc là encore une décentralisation des moyens de vérification en des modules localisés.
Chaque module de vérification élémentaire affecté à une ressource esclave est là encore connecté avantageusement par une liaison dédiée au jeu de registres de configuration affecté à cette autre ressource esclave, par exemple par des pistes métalliques.
Comme indiqué ci-avant, l’équipement gestionnaire courant est identifié par son information d’identification contenue dans un registre gestionnaire.
Aussi, selon un mode de réalisation, les moyens de traitement comportent également un module de vérification auxiliaire affecté audit contrôleur, et configuré pour interdire l’accès audit contrôleur à tout équipement maître ayant une information d’identification différente de celle contenue dans ledit registre gestionnaire.
Dans le cas où une transaction de lecture émise par un équipement maître et destinée à une ressource esclave n’est pas autorisée à accéder à cette ressource esclave, les moyens de vérification sont en outre configurés pour renvoyer à l’équipement maître une indication de refus d’accès (par exemple un bit ayant la valeur logique «0») et renvoyer à l’équipement maître gestionnaire une notification d’accès illégal contenant un identifiant de la ressource esclave, une indication du type d’accès (ici un accès en lecture) et l’information d’identification d’équipement maître à l’origine de cette transaction refusée.
Par ailleurs, dans le cas où une transaction d’écriture émise par un équipement maître et destinée à une ressource esclave n’est pas autorisée à accéder à cette ressource esclave, les moyens de vérification sont configurés pour ignorer cette transaction et renvoyer à l’équipement maître gestionnaire, également une notification d’accès illégal contenant un identifiant de cette ressource esclave, une indication du type d’accès (ici un accès en écriture) et l’information d’identification de l’équipement maître à l’origine de cette transaction refusée.
Comme on l’a vu ci-avant, il est possible que parmi les équipements maîtres, figure au moins un équipement maître ayant un port esclave et un port maître, par exemple un contrôleur USB, avec des informations de configuration affectées au port esclave et des informations de configuration affectées au port maître.
Il est également possible que cet équipement maître ayant un port esclave et un port maître soit dans un premier temps contrôlé par un premier microprocesseur puis dans un deuxième temps par un deuxième microprocesseur, les deux microprocesseurs ayant des informations de configuration différentes. Et, il est avantageux que lorsqu’un processeur contrôle un tel équipement maître, les informations de configuration du port d’entrée soient dupliquées au niveau du port de sortie.
Ainsi, selon un mode avantageux de réalisation, les moyens de traitement comportent des moyens d’héritage configurés pour, sur commande et en tenant compte de règles d’héritage, remplacer certaines au moins des informations de configuration affectées au port maître par les informations de configuration homologues affectées au port esclave ou bien conserver les informations de configuration affectées au port maître.
Ainsi, lorsqu’un autre microprocesseur prend le contrôle d’un tel équipement maître, les moyens d’héritage peuvent permettre par une simple commutation, et si les règles d’héritage l’autorisent, de conférer au port maître les informations de configuration du port esclave qui correspondent à celles de l’autre microprocesseur.
Mais les règles d’héritage interdisent par exemple de définir un port d’un périphérique en mode sécurisé si l’équipement maître qui le contrôle n’est pas lui-même en mode sécurisé.
Le mode de réalisation prévoyant des moyens d’héritage peut être considéré de façon indépendante ou bien en combinaison avec l’un au moins des modes de réalisation précédents ou suivants.
Ainsi lorsque ce mode de réalisation est considéré de façon indépendante, il est proposé selon un autre aspect un système sur puce, comprenant plusieurs équipements maîtres comprenant parmi les équipements maîtres, au moins un équipement maître ayant un port esclave et un port maître, plusieurs ressources esclaves, un circuit d’interconnexion couplé entre les équipements maîtres et les ressources esclaves et capable de router des transactions entre des équipements maîtres et des ressources esclaves, et des moyens de traitement au moins configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce au moins un schéma de configuration de ce système comportant des information de configuration.
Selon cet aspect des informations de configuration sont affectées au port esclave et des informations de configuration sont affectées au port maître et les moyens de traitement comportent des moyens d’héritage configurés pour, sur commande et en tenant compte de règles d’héritage, remplacer certaines au moins des informations de configuration affectées au port maître par les informations de configuration homologues affectées au port esclave ou bien conserver les informations de configuration affectées au port maître.
Ainsi, plus en détail et selon un mode possible de réalisation, les moyens d’héritage comportent,
-au sein de l’unité de gestion élémentaire affectée au port maître, un jeu de commutateurs commandables connectés à certains au moins des registres de configuration affectés au port esclave et aux registres de configuration homologue affectés au port maître, et
-des moyens de commande configurés pour commander le jeu de commutateurs de façon à sélectionner soit les registres de configuration correspondants affectés au port maître soit les registres de configuration correspondants affectés au port esclave.
-au sein de l’unité de gestion élémentaire affectée au port maître, un jeu de commutateurs commandables connectés à certains au moins des registres de configuration affectés au port esclave et aux registres de configuration homologue affectés au port maître, et
-des moyens de commande configurés pour commander le jeu de commutateurs de façon à sélectionner soit les registres de configuration correspondants affectés au port maître soit les registres de configuration correspondants affectés au port esclave.
Selon un autre mode de réalisation, il est possible que le système sur puce comprenne:
-parmi les équipements maîtres, plusieurs microprocesseurs,
-parmi les ressources esclaves, au moins une ressource esclave configurée pour générer au moins un signal d’interruption destiné à l’un des microprocesseurs qui est assigné à cette ressource esclave,
-plusieurs fils d’interruption respectivement connectés aux microprocesseurs et à ladite au moins une ressource esclave et capables de véhiculer des signaux d’interruption (ces fils d’interruption peuvent être bien entendu des pistes métalliques).
Dans ce cas, les moyens de traitement comprennent avantageusement des moyens de filtrage d’interruption configurés pour router le signal d’interruption émis par ladite ressource esclave uniquement sur le fil d’interruption connecté au microprocesseur qui lui est assigné.
-parmi les équipements maîtres, plusieurs microprocesseurs,
-parmi les ressources esclaves, au moins une ressource esclave configurée pour générer au moins un signal d’interruption destiné à l’un des microprocesseurs qui est assigné à cette ressource esclave,
-plusieurs fils d’interruption respectivement connectés aux microprocesseurs et à ladite au moins une ressource esclave et capables de véhiculer des signaux d’interruption (ces fils d’interruption peuvent être bien entendu des pistes métalliques).
Dans ce cas, les moyens de traitement comprennent avantageusement des moyens de filtrage d’interruption configurés pour router le signal d’interruption émis par ladite ressource esclave uniquement sur le fil d’interruption connecté au microprocesseur qui lui est assigné.
Ceci permet avantageusement d’éviter un espionnage de l’activité du microprocesseur considéré par l’observation du signal d’interruption.
Le mode de réalisation prévoyant des moyens de filtrage d’interruption peut être considéré de façon indépendante ou bien en combinaison avec l’un au moins des modes de réalisation précédents ou suivants.
Ainsi lorsque ce mode de réalisation est considéré de façon indépendante, il est proposé selon un autre aspect un système sur puce, comprenant plusieurs équipements maîtres, plusieurs ressources esclaves, un circuit d’interconnexion couplé entre les équipements maîtres et les ressources esclaves et capable de router des transactions entre des équipements maîtres et des ressources esclaves.
Selon cet autre aspect le système sur puce comprend:
-parmi les équipements maîtres, plusieurs microprocesseurs,
-parmi les ressources esclaves, au moins une ressource esclave configurée pour générer au moins un signal d’interruption destiné à l’un des microprocesseurs qui est assigné à cette ressource esclave,
-plusieurs fils d’interruption respectivement connectés aux microprocesseurs et à ladite au moins une ressource esclave et capables de véhiculer des signaux d’interruption (ces fils d’interruption peuvent être bien entendu des pistes métalliques), et
-des moyens de filtrage d’interruption configurés pour router le signal d’interruption émis par ladite ressource esclave uniquement sur le fil d’interruption connecté au microprocesseur qui lui est assigné.
-parmi les équipements maîtres, plusieurs microprocesseurs,
-parmi les ressources esclaves, au moins une ressource esclave configurée pour générer au moins un signal d’interruption destiné à l’un des microprocesseurs qui est assigné à cette ressource esclave,
-plusieurs fils d’interruption respectivement connectés aux microprocesseurs et à ladite au moins une ressource esclave et capables de véhiculer des signaux d’interruption (ces fils d’interruption peuvent être bien entendu des pistes métalliques), et
-des moyens de filtrage d’interruption configurés pour router le signal d’interruption émis par ladite ressource esclave uniquement sur le fil d’interruption connecté au microprocesseur qui lui est assigné.
Les moyens de filtrage d’interruption sont avantageusement incorporés au moins en partie dans le module de vérification élémentaire affecté à la ressource esclave.
Et, selon un mode de réalisation, les moyens de filtrage d’interruption comportent
-dans le module de vérification élémentaire, plusieurs interrupteurs commandables connectés entre la sortie de la ressource esclave configurée pour délivrer le signal d’interruption, et respectivement les fils d’interruption connectés au microprocesseur, et
-des moyens de commande configurés pour fermer l’interrupteur connecté entre ladite sortie et le fil d’interruption connecté au microprocesseur assigné à ladite ressource esclave, et pour ouvrir le ou les autres interrupteurs.
-dans le module de vérification élémentaire, plusieurs interrupteurs commandables connectés entre la sortie de la ressource esclave configurée pour délivrer le signal d’interruption, et respectivement les fils d’interruption connectés au microprocesseur, et
-des moyens de commande configurés pour fermer l’interrupteur connecté entre ladite sortie et le fil d’interruption connecté au microprocesseur assigné à ladite ressource esclave, et pour ouvrir le ou les autres interrupteurs.
Selon un autre mode de réalisation, le système sur puce peut comprendre
-parmi les équipements maîtres un premier microprocesseur configuré pour démarrer lors d’un premier démarrage du système sur puce (démarrage à froid) de façon à permettre l’implémentation du schéma de configuration, et un deuxième équipement maître, par exemple un deuxième microprocesseur ou une machine d’états matérielle, et
-des moyens de restauration configurés pour en cas de sortie d’un mode de veille du système sur puce, permettre au deuxième équipement maître de restaurer le schéma de configuration à la place du premier microprocesseur.
-parmi les équipements maîtres un premier microprocesseur configuré pour démarrer lors d’un premier démarrage du système sur puce (démarrage à froid) de façon à permettre l’implémentation du schéma de configuration, et un deuxième équipement maître, par exemple un deuxième microprocesseur ou une machine d’états matérielle, et
-des moyens de restauration configurés pour en cas de sortie d’un mode de veille du système sur puce, permettre au deuxième équipement maître de restaurer le schéma de configuration à la place du premier microprocesseur.
Un tel mode de réalisation permet avantageusement une restauration du schéma de configuration par, par exemple un microprocesseur ayant une plus faible consommation, au lieu d’utiliser le premier microprocesseur qui peut être plus lent et/ou avoir une consommation plus élevée.
Le mode de réalisation prévoyant des moyens de restauration peut être considéré de façon indépendante ou bien en combinaison avec l’un au moins des modes de réalisation précédents ou suivants.
Ainsi lorsque ce mode de réalisation est considéré de façon indépendante, il est proposé selon un autre aspect un système sur puce, comprenant plusieurs équipements maîtres, plusieurs ressources esclaves, un circuit d’interconnexion couplé entre les équipements maîtres et les ressources esclaves et capable de router des transactions entre des équipements maîtres et des ressources esclaves et des moyens de traitement au moins configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce au moins un schéma de configuration de ce système.
Selon cet autre aspect le système sur puce comprend
-parmi les équipements maîtres, un premier microprocesseur configuré pour démarrer lors d’un premier démarrage du système sur puce (démarrage à froid) de façon à permettre l’implémentation du schéma de configuration, et un deuxième équipement maître, par exemple un deuxième microprocesseur ou une machine d’états matérielle, et
-des moyens de restauration configurés pour en cas de sortie d’un mode de veille du système sur puce, permettre au deuxième équipement maître de restaurer le schéma de configuration à la place du premier microprocesseur.
-parmi les équipements maîtres, un premier microprocesseur configuré pour démarrer lors d’un premier démarrage du système sur puce (démarrage à froid) de façon à permettre l’implémentation du schéma de configuration, et un deuxième équipement maître, par exemple un deuxième microprocesseur ou une machine d’états matérielle, et
-des moyens de restauration configurés pour en cas de sortie d’un mode de veille du système sur puce, permettre au deuxième équipement maître de restaurer le schéma de configuration à la place du premier microprocesseur.
Plus précisément, selon un mode de réalisation, le premier microprocesseur est configuré en tant qu’équipement maître gestionnaire avant le passage en mode veille du système sur puce, et les moyens de restauration comprennent
-une première mémoire de sauvegarde destinée à sauvegarder le schéma de configuration à restaurer,
-une deuxième mémoire programme configurée pour stocker sur commande du premier microprocesseur, un programme de restauration exécutable par le deuxième équipement maître,
-un moyen de stockage sécurisé, par exemple un ou plusieurs registres matériels, configurés pour stocker une signature dudit programme de restauration ainsi que l’adresse de début du programme de restauration dans ladite deuxième mémoire programme,
-une source de réveil destinée à générer un signal de réveil au deuxième équipement maître lors de la sortie du système sur puce du mode veille, et
-une machine d’état configurée pour, en présence du signal de réveil, maintenir le premier microprocesseur en état de veille, vérifier ladite signature, et en cas de vérification réussie, conférer temporairement au deuxième équipement maître la qualité d’équipement maître gestionnaire et autoriser l’exécution du programme de restauration par le deuxième équipement maître, puis lorsque la restauration est terminée, retirer la qualité d’équipement maître gestionnaire au deuxième équipement maître et permettre la sortie de veille du premier microprocesseur et redonner au premier microprocesseur sa qualité d’équipement maître gestionnaire.
-une première mémoire de sauvegarde destinée à sauvegarder le schéma de configuration à restaurer,
-une deuxième mémoire programme configurée pour stocker sur commande du premier microprocesseur, un programme de restauration exécutable par le deuxième équipement maître,
-un moyen de stockage sécurisé, par exemple un ou plusieurs registres matériels, configurés pour stocker une signature dudit programme de restauration ainsi que l’adresse de début du programme de restauration dans ladite deuxième mémoire programme,
-une source de réveil destinée à générer un signal de réveil au deuxième équipement maître lors de la sortie du système sur puce du mode veille, et
-une machine d’état configurée pour, en présence du signal de réveil, maintenir le premier microprocesseur en état de veille, vérifier ladite signature, et en cas de vérification réussie, conférer temporairement au deuxième équipement maître la qualité d’équipement maître gestionnaire et autoriser l’exécution du programme de restauration par le deuxième équipement maître, puis lorsque la restauration est terminée, retirer la qualité d’équipement maître gestionnaire au deuxième équipement maître et permettre la sortie de veille du premier microprocesseur et redonner au premier microprocesseur sa qualité d’équipement maître gestionnaire.
Selon encore un mode de réalisation, le système sur puce peut comprendre parmi les équipements maîtres un port d’accès de test destiné à être couplé à un outil de débogage externe, ce port d’accès de test étant affecté d’une information d’identification de test et toute ressource esclave est configurée pour accepter de recevoir une transaction comportant cette information d’identification de test, après vérification de ladite information de sécurité et de ladite information de privilège jointes à ladite transaction.
Le mode de réalisation prévoyant un outil de débogage externe peut être considéré de façon indépendante ou bien en combinaison avec l’un au moins des modes de réalisation précédents ou suivants.
Ainsi lorsque ce mode de réalisation est considéré de façon indépendante, il est proposé selon un autre aspect un système sur puce, comprenant plusieurs équipements maîtres, plusieurs ressources esclaves, un circuit d’interconnexion couplé entre les équipements maîtres et les ressources esclaves et capable de router des transactions entre des équipements maîtres et des ressources esclaves.
Selon cet autre aspect le système sur puce comprend parmi les équipements maîtres un port d’accès de test destiné à être couplé à un outil de débogage externe, ce port d’accès de test étant affecté d’une information d’identification de test et toute ressource esclave est configurée pour accepter de recevoir une transaction comportant cette information d’identification de test, après vérification d’une information de sécurité et d’une information de privilège jointes à ladite transaction.
Et, seul l’équipement maître gestionnaire est de préférence configuré pour affecter l’information d’identification de test uniquement au port d’accès de test.
Selon un autre aspect, il est proposé un procédé de gestion du fonctionnement d’un système sur puce, le système sur puce comprenant plusieurs équipement maîtres, plusieurs ressources esclaves, un circuit d’interconnexion couplé entre les équipements maîtres et les ressources esclaves et capable de router des transactions entre des équipements maîtres et des ressources esclaves, le procédé comprenant
-une phase de configuration comportant
.une définition d’au moins un schéma de configuration par un ensemble d’informations de configuration incluant au moins une information d’identification affectée à chaque équipement maître, cet ensemble d’informations de configuration permettant de définir une assignation d’au moins un équipement maître à certaines au moins des ressources esclaves, et
.une implémentation au sein du système sur puce dudit au moins un schéma de configuration, et
-une phase de fonctionnement comportant une adjonction au moins de ces informations d’identification à toutes les transactions émises par les équipements maîtres correspondants, et un adressage des ressources esclaves sans utiliser l’ensemble de ces informations de configuration.
-une phase de configuration comportant
.une définition d’au moins un schéma de configuration par un ensemble d’informations de configuration incluant au moins une information d’identification affectée à chaque équipement maître, cet ensemble d’informations de configuration permettant de définir une assignation d’au moins un équipement maître à certaines au moins des ressources esclaves, et
.une implémentation au sein du système sur puce dudit au moins un schéma de configuration, et
-une phase de fonctionnement comportant une adjonction au moins de ces informations d’identification à toutes les transactions émises par les équipements maîtres correspondants, et un adressage des ressources esclaves sans utiliser l’ensemble de ces informations de configuration.
Selon un mode de mise en œuvre une ressource esclave appartient au groupe formé au moins par un périphérique, une fonctionnalité d’un périphérique, un moyen de mémoire interne au système sur puce, une interface mémoire interne au système sur puce et destinée à être couplée à un moyen de mémoire externe au système sur puce.
Selon un mode de mise en œuvre, au moins un équipement maître comprend un microprocesseur.
Selon un mode de mise en œuvre, les équipements maîtres comportant des microprocesseurs et des équipements maîtres contrôlables par ces microprocesseurs, on affecte à certains au moins des équipements maîtres contrôlables par un microprocesseur, les mêmes informations d’identification que l’information d’identification du microprocesseur.
Selon un mode de mise en œuvre, on affecte à au moins un équipement maître contrôlable par un microprocesseur, une information d’identification différente de l’information d’identification dudit microprocesseur.
Selon un mode de mise en œuvre, au moins un équipement maître contrôlable par un microprocesseur comporte un port de sortie capable d’émettre des transactions ainsi qu’un port d’entrée capable de recevoir des transactions, et ledit port d’entrée étant considéré comme une ressource esclave et le port de sortie comme un équipement maître.
Selon un mode de mise en œuvre, ladite phase de configuration comprend une implémentation au sein du système sur puce d’un schéma initial de configuration formant ledit schéma de configuration.
Selon un mode de mis en œuvre, ladite phase de configuration comprend une implémentation au sein du système sur puce d’un schéma initial de configuration ayant un ensemble initial d’informations de configuration, et le procédé comprend une modification de la valeur d’au moins une information de configuration de cet ensemble initial de façon à obtenir ledit ensemble d’informations de configuration définissant ledit schéma de configuration.
Selon un mode de mise en œuvre, la phase de configuration comprend une désignation parmi les équipements maîtres, d’un premier équipement maître dit gestionnaire, ce premier équipement maître gestionnaire effectuant, en réponse à un premier démarrage du système sur puce, une phase de démarrage àl’issue de laquelle ce premier équipement maître gestionnaire autorise l’implémentation dudit schéma initial de configuration.
Selon un mode de mise en œuvre, la désignation du premier équipement maître gestionnaire est fixée et résulte de la réalisation du système sur puce.
Selon un mode de mise en œuvre, la désignation du premier équipement maître gestionnaire est programmable.
Selon un mode de mise en œuvre, on rend temporairement inopérants tous les autres équipements maîtres tant que le premier équipement maître gestionnaire n’a pas terminé sa phase de démarrage.
Selon un mode de mise en œuvre, la phase de configuration comprend un stockage d’un programme de démarrage exécutable uniquement par le premier équipement maître gestionnaire lors dudit premier démarrage du système sur puce.
Selon un mode de mise en œuvre, la phase de configuration comprend une réception d’un programme utilisateur contenant au moins des instructions représentatives dudit schéma initial de configuration, un stockage du programme utilisateur, ledit premier équipement maître gestionnaire exécutant, à l’issue de sa phase de démarrage, ledit programme utilisateur afin d’implémenter ledit schéma initial de configuration.
Selon un mode de mise en œuvre, la phase de configuration comporte une désignation parmi les équipements maîtres, d’un équipement maître dit équipement maître gestionnaire initial, effectuant, lors du premier démarrage du système sur puce, une phase de démarrage àl’issue de laquelle il autorise un démarrage d’un autre équipement maître désigné comme étant un nouvel équipement maître gestionnaire et formant ledit premier équipement maître gestionnaire permettant au moins, à l’issue de sa phase de démarrage, au moins l’implémentation dudit schéma initial de configuration.
Selon un mode de mise en œuvre, on rend temporairement inopérants tous les autres équipements maîtres tant que la phase de démarrage de l’équipement maître gestionnaire initial et celle du nouvel équipement maître gestionnaire ne sont pas terminées.
Selon un mode de mise en œuvre, la phase de configuration comprend un stockage d’un programme de démarrage exécutable uniquement par l’équipement maître gestionnaire initial lors dudit premier démarrage du système sur puce et un stockage du programme de démarrage du nouvel équipement maître gestionnaire.
Selon un mode de mise en œuvre, la phase de configuration comprend une réception d’un programme utilisateur contenant au moins des instructions représentatives dudit schéma initial de configuration, un stockage du programme utilisateur, ledit premier équipement maître gestionnaire exécutant, à l’issue de sa phase de démarrage, ledit programme utilisateur afin d’implémenter ledit schéma initial de configuration.
Selon un mode de mise en œuvre, la phase de fonctionnement comprend une désignation par le premier équipement maître gestionnaire désigne, après qu’il a permis d’implémenter le schéma d’assignation initial, d’un deuxième équipement maître en tant que nouvel équipement maître gestionnaire, le premier équipement maître perdant alors sa qualité d’équipement maître gestionnaire.
Selon un mode de mise en œuvre, lors de la phase de fonctionnement tout nouvel équipement maître gestionnaire désigne à son tour un nouvel équipement maître gestionnaire et perd alors sa qualité d’équipement maître gestionnaire.
Selon un mode de mise en œuvre l’ensemble d’informations de configuration du schéma de configuration comprend en outre, pour au moins une ressource esclave, une information d’inaccessibilité indiquant si cette ressource esclave est ou non, inaccessible par tout équipement maître.
Selon un mode de mise en œuvre, l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible, une information de filtrage indiquant si cette ressource esclave peut être accédée par n’importe quel équipement maître ou par seulement un ou plusieurs équipements maîtres.
Selon un mode de mise en œuvre, l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible,
-une première information d’accès indiquant, dans le cas où l’information de filtrage indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par un ou plusieurs équipements maîtres ayant la même information d’identification, et
-l’information d’identification correspondante
-une première information d’accès indiquant, dans le cas où l’information de filtrage indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par un ou plusieurs équipements maîtres ayant la même information d’identification, et
-l’information d’identification correspondante
Selon un mode de mise en œuvre, l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible,
-une deuxième information d’accès indiquant, dans le cas où l’information de filtrage indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par des équipements maîtres ayant des informations d’identification différentes, et
-la liste des informations d’identification des équipements maîtres correspondants.
-une deuxième information d’accès indiquant, dans le cas où l’information de filtrage indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par des équipements maîtres ayant des informations d’identification différentes, et
-la liste des informations d’identification des équipements maîtres correspondants.
Selon un mode de mise en œuvre l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour une au moins des ressources esclaves pouvant être accédée par les équipements maîtres de ladite liste, une troisième information indiquant que ladite une au moins des ressources esclaves ne peut être accédée que par un seul équipement maître à la fois, l’équipement maître désirant accéder à cette ressource esclave lors de la phase de fonctionnement utilisant un sémaphore.
Selon un mode de mise en œuvre, l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible, une information de sécurité indiquant si cette ressource esclave est accessible par un équipement maître en mode sécurisé ou non.
Selon un mode de mise en œuvre, l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible, une information de privilège indiquant si cette ressource esclave est accessible par un équipement maître en mode privilégié ou non.
Selon un mode de mise en œuvre, l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque équipement maître, outre son information d’identification, une information de sécurité indiquant si cet équipement maître est configuré en mode sécurisé ou non.
Selon un mode de mise en œuvre, l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque équipement maître, outre son information d’identification, une information de privilège indiquant si cet équipement maître est configuré en mode privilège ou non.
Selon un mode de mise en œuvre, le procédé comprend une configuration du premier équipement maître gestionnaire en mode sécurisé et en mode privilège à l’issue de sa phase de démarrage.
Selon un mode de mise en œuvre, l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour certaines au moins des ressources esclaves et certains au moins des équipements maîtres, une information de verrouillage indiquant si leurs informations de configuration peuvent ou non être modifiées.
Selon un mode de mise en œuvre, le procédé comprend une mise à jour des informations de configuration affectées à chaque ressource esclave et à chaque équipement maître, sous le contrôle du premier équipement maître gestionnaire.
Selon un mode de mise en œuvre, la phase de fonctionnement comprend une exécution d’un programme utilisateur pour modifier le schéma initial de configuration après son implémentation et implémenter en conséquence ledit schéma de configuration et éventuellement remodifier tout ancien schéma de configuration.
Selon un mode de mise en œuvre, seul l’équipement maître qui a la qualité d’équipement maître gestionnaire est autorisé à modifier un schéma de configuration.
Selon un mode de mise en œuvre,chaque transaction émise par un équipement maître comprend un champ d’adressage dont le contenu adresse la ressource esclave destinataire de cette transaction, et le contenu du champ d’adressage n’appartient pas audit ensemble d’informations de configuration.
Selon un mode de mise en œuvre,chaque transaction émise par un équipement maître comprend un champ d’adressage dont le contenu adresse la ressource esclave destinataire de cette transaction, et la phase de fonctionnement comprend l’adjonction à chaque transaction émise par un équipement maître, d’au moins l’information d’identification de cet équipement maître, ladite information d’identification n’appartenant pas au champ d’adressage de la transaction.
Selon un mode de mise en œuvre, la phase de fonctionnement comprend l’adjonction à chaque transaction émise par un équipement maître, de l’information de sécurité et/ou de l’information de privilège si ces deux informations ou l’une de ces deux informations ne figurent pas déjà dans la transaction émise par l’équipement maître.
Selon un mode de mise en œuvre, au moins une information de configuration est jointe à chaque transaction, et la phase de fonctionnement comprend une vérification si une transaction émanant d’un équipement maître et destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave, ladite vérification comportant l’utilisation de ladite au moins une information de configuration jointe à ladite transaction.
Selon un mode de mise en œuvre, ladite vérification comporte l’utilisation d’au moins ladite information d’identification jointe à ladite transaction.
Selon un mode de mise en œuvre, ladite vérification comprend l’utilisation d’au moins ladite information de sécurité et de ladite information de privilège jointes à ladite transaction.
Selon un mode de mise en œuvre, ladite vérification comprend l’utilisation de la ou les informations de configuration jointes à ladite transaction ainsi que des autres informations de configuration de l’ensemble d’informations de configuration affectées à cette ressource esclave.
Selon un mode de mise en œuvre, ladite vérification est effectuée en aval du circuit d’interconnexion.
Selon un mode de mise en œuvre, ladite vérification comprend des vérifications locales effectuées au niveau des ressources esclaves à partir des informations de configuration respectivement affectées à ces ressources esclaves.
Selon un mode de mise en œuvre, le procédé comprend en outre dans le cas où une transaction de lecture émise par un équipement maître et destinée à une ressource esclave n’est pas autorisée à accéder à cette ressource esclave, un renvoi à l’équipement maître d’une indication de refus d’accès et un renvoi à l’équipement maître gestionnaire, d’une notification d’accès illégal contenant un identifiant de cette ressource esclave, une indication du type d’accès et l’information d’identification de l’équipement maître à l’origine de cette transaction refusée.
Selon un mode de mise en œuvre, le procédé comprend en outre, dans le cas où une transaction d’écriture émise par un équipement maître et destinée à une ressource esclave n’est pas autorisée à accéder à cette ressource esclave, le fait d’ignorer cette transaction et un renvoi à l’équipement maître gestionnaire, d’une notification d’accès illégal contenant un identifiant de cette ressource esclave, une indication du type d’accès et l’information d’identification de l’équipement maître à l’origine de cette transaction refusée.
Selon un mode de mise en œuvre, le procédé comprend un stockage de l’information d’identification de l’équipement maître gestionnaire courant, et une vérification auxiliaire comportant une comparaison entre l’information d’identification de l’équipement maître gestionnaire courant et l’information d’identification d’un équipement maître désirant modifier au moins une information de configuration, et une interdiction de modification de ladite au moins une information de configuration à tout équipement maître ayant une information d’identification différente de celle de l’équipement maître gestionnaire.
Selon un mode de mise en œuvre, parmi les équipements maîtres au moins un équipement maître a un port esclave et un port maître, des informations de configuration étant affectées au port esclave et des informations de configuration étant affectées au port maître, et le procédé comprend en outre, sur commande, et en tenant compte de règles d’héritage, un remplacement de certaines au moins des informations de configuration affectées au port maître par les informations de configuration homologues affectées au port esclave ou bien une conservation des informations de configuration affectées au port maître.
Selon un mode de mise en œuvre,
-plusieurs microprocesseurs figurent parmi les équipements maîtres, et au moins une ressource esclave génère au moins un signal d’interruption destiné à l’un des microprocesseurs qui est assigné à cette ressource esclave,
-plusieurs microprocesseurs figurent parmi les équipements maîtres, et au moins une ressource esclave génère au moins un signal d’interruption destiné à l’un des microprocesseurs qui est assigné à cette ressource esclave,
-plusieurs fils d’interruptions sont respectivement connectés aux microprocesseurs et à ladite au moins une ressource esclave et capables de véhiculer des signaux d’interruption,
-et le procédé comprend un routage du signal d’interruption émis par ladite ressource esclave uniquement sur le fil d’interruption connecté au microprocesseur qui lui est assigné.
-et le procédé comprend un routage du signal d’interruption émis par ladite ressource esclave uniquement sur le fil d’interruption connecté au microprocesseur qui lui est assigné.
Selon un mode de mise en œuvre,
- un premier microprocesseur est configuré pour démarrer lors d’un premier démarrage du système sur puce de façon à permettre l’implémentation du schéma de configuration,
- en cas de sortie d’un mode veille du système sur puce, le procédé comprend une restauration du schéma de configuration par un deuxième équipement maître.
- un premier microprocesseur est configuré pour démarrer lors d’un premier démarrage du système sur puce de façon à permettre l’implémentation du schéma de configuration,
- en cas de sortie d’un mode veille du système sur puce, le procédé comprend une restauration du schéma de configuration par un deuxième équipement maître.
Selon un mode de mise en œuvre, le premier microprocesseur étant l’équipement maître gestionnaire avant le passage en mode veille, la restauration comprend
-une sauvegarde du schéma de configuration à restaurer,
-un stockage sur commande du premier microprocesseur, d’un programme de restauration exécutable par le deuxième équipement maître,
-un stockage sécurisé d’une signature dudit programme de restauration ainsi que de l’adresse de début du programme de restauration,
- une génération d’un signal de réveil au deuxième équipement maître lors de la sortie du système sur puce du mode veille, et
- en présence dudit signal de réveil, un maintien du premier microprocesseur en état de veille, une vérification de ladite signature, et en cas de vérification réussie, une allocation temporaire au deuxième équipement maître de la qualité d’équipement maître gestionnaire et une exécution du programme de restauration par le deuxième équipement maître, puis lorsque la restauration est terminée, un retrait de la qualité d’équipement maître gestionnaire au deuxième équipement maître, une sortie de veille du premier microprocesseur, et une allocation au premier microprocesseur sa qualité d’équipement maître gestionnaire.
-une sauvegarde du schéma de configuration à restaurer,
-un stockage sur commande du premier microprocesseur, d’un programme de restauration exécutable par le deuxième équipement maître,
-un stockage sécurisé d’une signature dudit programme de restauration ainsi que de l’adresse de début du programme de restauration,
- une génération d’un signal de réveil au deuxième équipement maître lors de la sortie du système sur puce du mode veille, et
- en présence dudit signal de réveil, un maintien du premier microprocesseur en état de veille, une vérification de ladite signature, et en cas de vérification réussie, une allocation temporaire au deuxième équipement maître de la qualité d’équipement maître gestionnaire et une exécution du programme de restauration par le deuxième équipement maître, puis lorsque la restauration est terminée, un retrait de la qualité d’équipement maître gestionnaire au deuxième équipement maître, une sortie de veille du premier microprocesseur, et une allocation au premier microprocesseur sa qualité d’équipement maître gestionnaire.
Selon un mode de mise en œuvre, le procédé comprend une affectation à un port d’accès de test faisant partie des équipements maîtres et destiné à être couplé à un outil de débogage externe, d’une information d’identification de test, et toute ressource esclave accepte de recevoir une transaction comportant cette information d’identification de test, après vérification de ladite information de sécurité et de ladite information de privilège jointes à ladite transaction.
Selon un mode de mise en œuvre, seul l’équipement maître gestionnaire affecte l’information d’identification de test uniquement au port d’accès de test.
Selon un mode de mise en œuvre, le système sur puce forme un microcontrôleur ou un microprocesseur.
D’autres avantages et caractéristiques de la description apparaîtront à l’examen de la description détaillée de modes de mise en œuvre et de réalisation, nullement limitatifs, et des dessins annexés:
Sur la figure 1, la référence MCU désigne un système sur puce («System On Chip») formant ici un microcontrôleur, bien que cet exemple ne soit pas limitatif.
Le système sur puce MCU comprend ici plusieurs équipements maîtres CPU1, CPU2, LM3…LMj…LMk.
Dans cet exemple, les équipements maîtres CPU1 et CPU2 sont des microprocesseurs et les autres équipements maîtres peuvent être par exemple des équipements maîtres de type accès direct en mémoire (DMA: Direct Memory Access) ou bien par exemple des contrôleurs USB ou encore un équipement maître du type PCI express, sans que cette liste d’exemples ne soit exhaustive.
Le système sur puce MCU comporte également plusieurs ressources esclaves IMM1, IMTM2, PH3, PH4, PH5, PH60 et PH61.
D’une façon générale, une ressource esclave appartient au groupe formé au moins par un périphérique, une fonctionnalité d’un périphérique, un moyen de mémoire interne au système sur puce MCU, une interface mémoire interne au système sur puce et destinée à être couplée à un moyen de mémoire externe au système sur puce.
Ainsi, dans l’exemple illustré, la ressource esclave IMM1 est un moyen de mémoire au système sur puce.
Le terme «moyen de mémoire» s’entend ici d’une façon générale et incorpore par exemple une mémoire complète ou alors une ou plusieurs zones mémoire par exemple.
La ressource esclave IMTM2 est ici une interface mémoire interne destinée à être couplée à un moyen de mémoire externe EXMM, par exemple une mémoire DRAM.
Les ressources esclaves PH3, PH4 et PH5 sont des périphériques, par exemple un périphérique du type UART, un contrôleur I2C, un contrôleur SPI.
La référence PH6 désigne ici un dispositif d’horloge temps réel (RTC: Real time Clock) comportant par exemple le module PH60 destiné à délivrer le signal d’horloge et le module PH61 destiné par exemple à délivrer une alarme.
Dans ce cas, les modules PH60 et PH61 qui sont des fonctionnalités du dispositif d’horloge temps réel PH6 sont considérés comme des ressources esclaves.
La structure des équipements maîtres et des ressources esclaves est classique et connue en soi.
Le système sur puce MCU comporte par ailleurs un circuit d’interconnexion INTC capable de router des transactions entre des équipements maîtres et des ressources esclaves.
La structure d’un tel circuit d’interconnexion, qui est en général un circuit d’interconnexion multicouches, ainsi que le protocole permettant l’échange et le routage des transactions à l’intérieur du circuit d’interconnexion sont bien connus de l’homme du métier.
Celui-ci pourra par exemple se référer notamment:
-à l’article de Venkateswara Rao et autres intitulé «A Frame work on AMBA bus based Communication Architecture to improve the Real Time Computing Performance in MPSoC», International Journal of Computer Applications (0975-8887), Volume 91 - N° 5, Avril 2014,
ou
-à une présentation générale de ces circuits d’interconnexion effectuée en 2015 par A. Gerstlauer et disponible à l’adresse internet http://users.ece.utexas.edu/~gerstl/ee382v_f14/lectures/lecture_12.pdf.
-à l’article de Venkateswara Rao et autres intitulé «A Frame work on AMBA bus based Communication Architecture to improve the Real Time Computing Performance in MPSoC», International Journal of Computer Applications (0975-8887), Volume 91 - N° 5, Avril 2014,
ou
-à une présentation générale de ces circuits d’interconnexion effectuée en 2015 par A. Gerstlauer et disponible à l’adresse internet http://users.ece.utexas.edu/~gerstl/ee382v_f14/lectures/lecture_12.pdf.
Par ailleurs, à titre indicatif mais non limitatif, on peut utiliser par exemple le circuit d’interconnexion commercialisé par la société ARM sous la référence NIC-400 (version R0p3).
Le système sur puce comporte également, associé à chaque équipement maître et à chaque ressource esclave, un jeu de registres de configuration comportant plusieurs registres de configuration destinés à stocker respectivement des informations de configuration dont on reviendra plus en détail ci-après sur la signification.
La référence RGCM1 désigne le jeu de registres de configuration associé à l’équipement maître CPU1.
La référence RGCM2 désigne le jeu de registres de configuration associé à l’équipement maître CPU2.
La référence RGCM3 désigne le jeu de registres de configuration affecté à l’équipement maître LM3.
La référence RGCMj désigne le jeu de registres de configuration affecté à l’équipement maître LMj
Par ailleurs, le système sur puce comporte ici l’équipement maître LMk, par exemple un contrôleur USB contrôlable par un microprocesseur, par exemple le microprocesseur CPU1, et cet équipement maître LMk comporte un port de sortie PS capable d’émettre des transactions ainsi qu’un port d’entrée PE capable de recevoir des transactions.
Le port d’entrée PE est alors considéré comme une ressource esclave et le port de sortie PS est alors considéré comme un équipement maître.
Aussi, la référence RGCMk désigne le jeu de registres de configuration affecté à l’équipement maître PS.
La référence RGCS1 désigne le jeu de registres de configuration affecté à la ressource esclave IMM1.
La référence RGCS2 désigne le jeu de registres de configuration associé à la ressource esclave IMTM2.
La référence RGSC3 désigne le jeu de registres de configuration associé au périphérique PH3.
La référence RGCS4 désigne le jeu de registres de configuration affecté au périphérique PH4.
La référence RGCS5 désigne le jeu de registres de configuration affecté au périphérique PH5.
La référence RGCS60 désigne le jeu de registres de configuration affecté à la fonctionnalité PH60.
Et, la référence RGCS61 désigne le jeu de registres de configuration affecté à la fonctionnalité PH61.
Par ailleurs, il est prévu dans cet exemple, un registre RDS, dit registre de désignation, dont on reviendra plus en détail sur la fonctionnalité mais dont on peut d’ores et déjà indiquer qu’il sert à désigner un équipement maître ayant la qualité d’équipement maître gestionnaire.
Par ailleurs, le registre RGG, dit registre gestionnaire, dont on reviendra également ci-après plus en détail sur la fonctionnalité, sert à désigner l’équipement maître gestionnaire courant, qui, comme on le verra plus en détail ci-après, peut éventuellement être modifié au cours du fonctionnement du système sur puce MCU, c’est-à-dire ici lors de l’exécution d’un programme utilisateur.
Les différents jeux de registres de configuration sont représentés ici au sein d’un contrôleur RIFC.
Cela étant, ils pourraient être disposés à l’extérieur du contrôleur.
Le système sur puce MCU comporte également, associé à chaque équipement maître, une unité de gestion élémentaire RIMU1, RIMU2, RIMU3, RIMUj, RIMUk.
On reviendra plus en détail sur la structure et la fonctionnalité de ces unités de gestion élémentaire mais on peut d’ores et déjà dire qu’ils font partie de moyens d’adjonction destinés à ajouter à toute transaction émise par un équipement maître, une information d’identification CID et éventuellement une information de sécurité et/ou une information de privilège.
Le système sur puce comporte également, associé à chaque ressource esclave, un module de vérification élémentaire RISU1, RISU2, RISU3, RISU4, RISU5, RISU60 et RISU61 dont on reviendra également plus en détail ci-après sur la structure et la fonctionnalité.
On peut d’ores et déjà dire que ces modules de vérification élémentaire font partie des moyens de vérification destinés à vérifier si une transaction destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave.
Les différentes unités de gestion élémentaire RIMU et les différents modules de vérification élémentaire RISU sont respectivement connectés aux jeux de registres de configuration correspondants par des liaisons spécifiques, par exemple des pistes métalliques.
Alors que les modules de vérification élémentaires RISUi ont été représentés sur la figure 1 à l’extérieur des périphériques correspondants, il est tout à fait possible de prévoir un ou plusieurs périphériques ayant leur module de vérification élémentaire correspondant, intégré au périphérique lui-même.
Si l’on se réfère maintenant plus particulièrement à la figure 2, le système sur puce MCU comporte des moyens de traitement MT, répartis notamment au sein des différents éléments qui ont été décrits en référence à la figure 1, et configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce, au cours d’une phase de configuration PHCFG (étape 20), un schéma de configuration SCH qui est défini par l’ensemble des informations de configuration qui vont être stockées dans les différents jeux de registres de configuration.
Avant de revenir plus en détail sur la constitution de ces informations de configuration, on peut d’ores et déjà noter que l’utilisateur a la possibilité d’implémenter une configuration statique ou dynamique.
Plus précisément, comme illustré sur la figure 3, les moyens de traitement sont configurés pour permettre à un utilisateur du système sur puce d’implémenter (étape 20) un schéma initial de configuration SCHI qui va former le schéma de configuration SCH.
En d’autres termes, selon cette variante, une fois le schéma initial de configuration implémenté, celui-ci reste valable au cours de l’utilisation ou phase de fonctionnement du système sur puce.
En variante, comme illustré sur la figure 4, il est possible à un utilisateur, au cours de la phase de configuration PHCFG, de faire implémenter par les moyens de traitement MT (étape 200) un schéma initial de configuration ayant un ensemble initial d’informations de configuration puis de faire modifier (étape 201) le schéma initial de configuration par les moyens de traitement en modifiant la valeur d’au moins une information de configuration, par exemple, de cet ensemble initial de façon à obtenir l’ensemble d’information de configuration définissant un nouveau schéma de configuration SCH.
Les moyens de traitement comprennent des moyens d’installation qui comportent parmi les équipements maîtres un premier équipement maître dit gestionnaire.
Comme illustré sur la figure 5, ce premier équipement maître gestionnaire EMG est configuré pour, en réponse à un premier démarrage 50, ou démarrage à froid (cold boot) du système sur puce, effectuer une phase de démarrage à l’issue de laquelle ce premier équipement maître gestionnaire EMG est configuré pour au moins permettre l’implémentation 51 du schéma initial de configuration SCHI.
Comme illustré schématiquement sur la figure 6, la désignation du premier équipement maître gestionnaire EMG peut être fixée lors de la réalisation 60 du système sur puce MCU, par exemple par un codage en dur.
En variante, il est possible pour l’utilisateur d’utiliser le registre des désignations RDS programmable permettant de désigner le premier équipement maître gestionnaire EMG.
Plus précisément, comme illustré sur la figure 7, lors de la fourniture 70 du système sur puce MCU, l’utilisateur peut procéder à une programmation 71 du registre de désignation RDS, par exemple en programmant ou non des séries de mémoires du type OTP formant le registre de désignation RDS de façon à désigner l’équipement maître gestionnaire EMG, qui est par exemple dans cet exemple le microprocesseur CPU1.
De façon notamment à éviter des conflits, les moyens d’installation sont en outre configurés, comme illustré sur la figure 8, pour rendre temporairement inopérants (étape 81) tous les autres équipements maîtres LM2, LM3, LMj, LMk, CPU2 tant que le premier équipement maître gestionnaire EMG, ici le microprocesseur CPU1, n’a pas terminé sa phase de démarrage 80.
Lorsqu’un équipement maître est un microprocesseur, on peut le rendre inopérant en forçant par exemple le signal de réinitialisation (reset) à 0 ce qui le maintient en état de veille.
Lorsque les autres équipements maîtres sont des équipements contrôlés par un microprocesseur, ils sont bien entendu inopérants tant que le processeur lui-même est inopérant.
A titre d’exemple, comme illustré sur la figure 9, les moyens d’installation comportent outre l’équipement maître gestionnaire EMG, une mémoire de démarrage (boot ROM) BMM configurée pour stocker, dans une étape de stockage 91, un programme de démarrage BPR exécutable uniquement par le premier équipement maître gestionnaire CPU1 lors du premier démarrage ou du démarrage à froid du système sur puce (étapes 90 et 92).
Les moyens d’installation comportent par ailleurs une entrée INP (figure 1) configurée pour recevoir un programme utilisateur. Ce programme utilisateur peut être par exemple stocké sur une carte SD coopérant avec ladite entrée INP.
Ce programme utilisateur UPR (figure 9) est reçu de l’entrée INP dans l’étape 94 et stocké (étape 95) dans une mémoire programme PMM.
Ce programme utilisateur UPR contient au moins des instructions représentatives du schéma initial de configuration SCHI.
Les moyens de traitement comportent alors des moyens d’allocation permettant d’implémenter le schéma initial de configuration.
Dans cet exemple, les moyens d’allocation comportent le premier équipement maître gestionnaire (par exemple le microprocesseur CPU1) configuré pour, à l’issue de sa phase de démarrage, exécuter (étape 93) le programme utilisateur UPR afin d’implémenter le schéma initial de configuration.
Alors que l’on a décrit ici comme premier équipement maître gestionnaire EMG un microprocesseur, par exemple le microprocesseur CPU1, il est tout à fait possible en variante que le premier équipement maître gestionnaire comprenne un circuit logique matériel.
Alors que l’on vient de décrire un seul équipement maître gestionnaire lors de la phase de configuration PHCFG, il est possible, comme illustré schématiquement sur la figure 10, de modifier l’équipement maître gestionnaire lors de cette phase de configuration.
Plus précisément, les moyens d’installation comportent alors parmi les équipements maîtres, un équipement maître dit équipement maître gestionnaire initial, par exemple le microprocesseur CPU1, configuré pour lors du premier démarrage du système sur puce, effectuer une phase de démarrage à l’issue de laquelle il est configuré pour autoriser un démarrage d’un autre équipement maître désigné comme étant un nouvel équipement maître gestionnaire, par exemple le microprocesseur CPU2.
Ce nouvel équipement maître gestionnaire forme alors ledit premier équipement maître gestionnaire qui est configuré pour à l’issue de sa phase de démarrage, au moins permettre l’implémentation du schéma initial de configuration.
L’équipement maître gestionnaire initial peut comprendre un microprocesseur et le nouvel équipement maître gestionnaire peut comprendre un autre microprocesseur.
En variante, l’équipement maître gestionnaire initial peut comprendre un circuit logique matériel et le nouvel équipement maître gestionnaire peut comprendre un microprocesseur.
Et, là encore, les moyens d’installation sont configurés pour rendre temporairement inopérants tous les autres équipements maîtres tant que la phase de démarrage de l’équipement maître gestionnaire initial et celle du nouvel équipement maître gestionnaire ne sont pas terminées.
A titre d’exemple illustré sur la figure 10, les moyens d’installation comportent à cet égard une mémoire de démarrage BMM configurée pour stocker (étape 100) un programme de démarrage BPR1 exécutable uniquement par l’équipement maître gestionnaire initial CPU1 lors du premier démarrage ou démarrage à froid 101 du système sur puce MCU.
Les moyens d’installation comportent également une mémoire programme PMM configurée pour stocker le programme de démarrage BPR2 du nouvel équipement maître gestionnaire CPU2.
Il est alors prévu une réception via par exemple l’entrée INP, du programme de démarrage BPR2 et du programme utilisateur UPR, ces deux programmes étant stockés (étape 104) dans la mémoire programme PMM.
Lors du démarrage à froid 101, l’équipement maître gestionnaire initial CPU1 exécute son programme de démarrage BPR1 (étape 102) et autorise alors le démarrage du microprocesseur CPU2 qui est le nouvel équipement maître gestionnaire.
Celui-ci exécute dans l’étape 105 son programme de démarrage PBR2 puis le programme utilisateur UPR (étape 106) afin d’implémenter le schéma initial de configuration SCHI.
Bien entendu, comme indiqué ci-avant, dans l’étape 107, les autres équipements maîtres LM2, LM3, LMj et LMk sont inopérants.
Alors que l’on a vu précédemment qu’il était possible de changer d’équipement maître gestionnaire au cours de la phase de configuration, il est également possible, comme illustré sur la figure 11, de changer d’équipement maître gestionnaire au cours de la phase de fonctionnement PHF du système sur puce, c’est-à-dire lors de l’exécution du programme utilisateur après implémentation du schéma de configuration.
Plus précisément, sur la figure 11, le microprocesseur CPU1 est un premier équipement maître gestionnaire. Et, lors de l’exécution 110 du programme utilisateur UPR, les moyens de traitement MT modifient (étape 111) l’équipement maître gestionnaire EMG qui, dans ce cas, devient un nouvel équipement maître gestionnaire CPU2.
Il est bien entendu possible que ce nouvel équipement maître gestionnaire CPU2 puisse à son tour désigner (étape 112) un nouvel équipement maître gestionnaire et perdre alors sa qualité d’équipement maître gestionnaire. A titre d’exemple ce nouvel équipement maître gestionnaire peut être de nouveau le microprocesseur CPU1.
A cet égard, seul l’équipement maître gestionnaire peut désigner un nouvel équipement maître gestionnaire. Et par exemple ceci s’effectue par une écriture dans le registre gestionnaire RGG par l’actuel équipement maître gestionnaire, de l’information d’identification du nouvel équipement maître gestionnaire.
Dès cet instant, l’ancien équipement maître gestionnaire a alors perdu sa qualité d’équipement maître gestionnaire.
On se réfère maintenant plus particulièrement à la figure 12 pour illustrer un exemple d’ensemble d’informations de configuration définissant un schéma de configuration SCH.
L’ensemble d’informations de configuration comporte pour chaque équipement, une information d’indentification CID. Cette information d’indentification permet d’identifier l’équipement maître parmi la liste des équipements maîtres.
Cette information d’indentification CID peut être par exemple un mot numérique.
Le jeu d’informations de configuration d’un équipement maître peut également comporter une information de sécurité SEC, par exemple un bit, indiquant, selon la valeur logique du bit, si cet équipement maître est configuré en mode sécurisé ou non.
Le jeu d’informations de configuration pour un équipement maître peut également comporter une information de privilège PRV, par exemple un bit, indiquant selon la valeur logique du bit si cet équipement maître est configuré en mode privilégié ou non.
Cette information de privilège peut comporter plusieurs bits si plusieurs niveaux de modes privilégiés sont prévus.Enfin, il peut être prévu une information de verrouillage LKM, par exemple un ou plusieurs bits, qui, selon la valeur logique du ou des bits, indiquent si l’une au moins des informations de configuration, par exemple les informations de configuration SEC et PRV, ou encore l’information d’identification CID, peuvent ou non être modifiées.
Il est également possible de prévoir un ou plusieurs bits de verrouillage permettant de verrouiller le contenu du registre gestionnaire RGG désignant l’information d’identification de l’équipement maître gestionnaire.
Ces informations de configuration associées à l’équipement maître sont stockées (étape 120) dans le jeu de registre de configuration correspondant RGCMi.
En ce qui concerne une ressource esclave, l’ensemble d’informations de configuration qui lui est associé peut comprendre par exemple une information d’inaccessibilité INAC, par exemple un bit, destiné à indiquer, selon la valeur logique du bit, que cette ressource esclave est inaccessible par tout équipement maître.
Le schéma de configuration SCH comprend en outre pour une ressource esclave non inaccessible, une information de filtrage IFLT, par exemple un bit, destinée à indiquer, en se basant uniquement sur les informations d’identification CID des équipements maîtres, si cette ressource esclave peut être accédée par n’importe quel équipement maître ou par seulement un ou plusieurs équipements maîtres.
Ainsi, par exemple, si l’information de filtrage a la valeur logique «0», cela signifie qu’il n’y a pas de filtrage appliqué sur les informations d’identification et que par conséquent, une ressource esclave peut être accédée par tout équipement maître, sous réserve d’autres restrictions d’accès éventuelles que l’on verra plus en détail ci-après.
En fait, ces ensembles d’informations de configuration permettent d’assigner à une ressource esclave, au moins un équipement maître.
Il convient de noter que plusieurs équipements maîtres peuvent avoir la même information d’identification CID.
C’est le cas par exemple lorsque ces équipements maîtres comportent un microprocesseur et un ou plusieurs équipements maîtres contrôlables par ce microprocesseur. On forme alors dans ce cas un compartiment désigné par l’information d’identification CID.
Tous les équipements maîtres de ce compartiment peuvent alors avoir par exemple accès aux mêmes ressources mémoire.
Il est également possible qu’un équipement maître contrôlé par un microprocesseur, n’ait, pour des raisons de sécurité, pas la même information d’identification que le microprocesseur. C’est par exemple le cas pour un équipement du type PCI-E. Dans ce cas, ceci permet de limiter l’accès à certaines ressources mémoire de cet équipement maître du type PCI-E.
L’ensemble d’informations de configuration définissant le schéma de configuration peut comprendre en outre pour la ressource esclave non accessible, une première information d’accès IAC1 destinée à indiquer, dans le cas où l’information de filtrage IFLT (IFLT=1 par exemple) indique que la ressource esclave considérée peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par un ou plusieurs équipements maîtres ayant la même information d’identification CID.
Dans ce cas bien entendu, l’ensemble d’informations de configuration comporte cette information d’identification correspondante CID.
Comme indiqué ci-avant, cette information d’identification CID peut se rapporter à un seul équipement maître ou alors à plusieurs équipements maîtres d’un même compartiment.
L’ensemble d’informations de configuration définissant le schéma de configuration SHC peut comprendre en outre pour cette ressource esclave non accessible, une deuxième information d’accès IAC2 destinée à indiquer, dans le cas où l’information de filtrage IFLT (IFLT=1) indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par des équipements maîtres ayant des informations d’identification CID différentes. Et, dans ce cas, l’ensemble d’informations de configuration de cette ressource esclave comporte la liste CID1….CID4, par exemple, des informations d’identification des équipements maîtres correspondants.
Une telle ressource esclave qui peut être accédée par plusieurs équipements maîtres séquentiellement ou simultanément, peut être par exemple un moyen de mémoire.
Par contre, il est possible pour cette ressource esclave pouvant être accédée par les équipements maîtres de ladite liste, que l’ensemble d’informations de configuration comprenne une troisième information IAC3 destinée à indiquer que cette ressource esclave ne peut être accédée que par un seul équipement maître à la fois, l’équipement maître désirant accéder à cette ressource esclave étant configuré pour utiliser un sémaphore SMP.
C’est le cas par exemple lorsqu’une ressource esclave peut être accédée par deux microprocesseurs. Seul le microprocesseur qui prend le sémaphore peut accéder à cette ressource esclave et tant que le microprocesseur n’a pas relâché le sémaphore, l’autre microprocesseur ne peut pas y accéder. Il ne pourra y accéder que lorsqu’il aura pris à son tour le sémaphore SMP.
L’ensemble d’informations de configuration définissant le schéma de configuration SCH pour cette ressource esclave peut comprendre également une information de sécurité ISEC, par exemple un bit, destiné à indiquer si cette ressource esclave est accessible par un équipement maître sécurisé ou non.
De même, l’ensemble d’informations de configuration peut comporter pour cette ressource esclave une information de privilège, par exemple un bit, IPRV, destiné à indiquer si cette ressource esclave est accessible par un équipement maître en mode privilégié ou non.
Et, là encore, il est possible également d’utiliser une information de verrouillage LKS destinée à indiquer si les informations de configuration de cette ressource esclave peuvent ou non être modifiées.
Toutes ces informations de configuration affectées à une ressource esclave sont stockées (étape 121) dans le jeu de registres de configuration correspondant RGCSi.
Il convient de noter ici que le premier équipement maître gestionnaire, par exemple le microprocesseur CPU1, est configuré pour être en mode sécurisé et en mode privilège à l’issue de sa phase de démarrage.
Comme indiqué ci-avant, les moyens d’allocation permettant d’implémenter le schéma de configuration, en particulier le schéma initial de configuration, comportent les jeux de registres de configuration affectés à chaque ressource esclave et à chaque équipement maître ainsi que le contrôleur de configuration RIFC configuré pour mettre à jour les contenus des jeux de registres de configuration avec l’ensemble d’informations de configuration sous le contrôle du premier équipement maître gestionnaire.
Ceci est illustré schématiquement sur la figure 13.
Plus précisément, l’équipement maître gestionnaire CPU1 commande (étape 130) une mise à jour du schéma de configuration SCH qui est effectuée par le contrôleur de configuration RIFC qui met à jour les contenus des jeux de registres RGCMi et RGCSi (étape 131).
Et, seul l’équipement maître qui a la qualité d’équipement maître gestionnaire est configuré pour modifier un schéma de configuration.
On se réfère maintenant plus particulièrement à la figure 14 pour décrire un exemple de contenu d’une transaction TR.
D’une façon générale, ici, chaque transaction TR émise par un équipement maître comprend un champ d’adressage ADR dont le contenu est destiné à adresser la ressource esclave destinataire de cette transaction.
Mais le contenu du champ d’adressage ADR n’appartient pas audit ensemble d’informations de configuration.
En d’autres termes, le contenu du champ d’adressage n’est pas utilisé seul ou en combinaison, pour définir les assignations des équipements maîtres auxdites ressources esclaves.
Plus précisément, comme illustré sur la figure 14, chaque transaction TR comporte l’information d’identification CID de l’équipement maître émetteur de cette transaction, l’information de sécurité SEC, une indication EXE destinée à indiquer si cette transaction contient ou non une instruction d’exécution, l’information de privilège PRV, une information RW indiquant s’il s’agit d’une transaction en lecture ou en écriture, le champ d’adressage ADR et un champ de données DATA.
Les moyens de traitement du système sur puce comportent des moyens d’adjonction configurés pour ajouter à chaque transaction émise par un équipement maître au moins l’information d’identification de cet équipement maître CID, cette information d’identification n’appartenant pas au champ d’adressage ADR de la transaction.
Les moyens d’adjonction sont en outre configurés pour ajouter à chaque transaction émise par un équipement maître l’information de sécurité SEC et/ou l’information de privilège si ces deux informations ne figurent pas déjà dans la transaction émise par l’équipement maître.
Comme illustré sur la figure 15, ces moyens d’adjonction comportent pour chaque équipement maître EMi, l’unité de gestion élémentaire associée RIMUi qui est reliée au jeu de registres de configuration correspondant RGCMi par la liaison spécifique LDMi.
Ainsi, l’unité de gestion élémentaire RIMUi complète la transaction initiale TRI émise par l’équipement maître EMi en lui adjoignant (étape 150) l’information d’identification CID et éventuellement les informations SEC et PRV, la transaction complète TR étant ensuite délivrée sur le bus lié au circuit d’interconnexion INTC.
Matériellement, cette unité de gestion élémentaire RIMUi peut comprendre un circuit logique.
Les moyens de traitement MT peuvent également comporter des moyens de vérification configurés pour vérifier si une transaction TR émanant d’un équipement maître et destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave en utilisant au moins l’information de configuration jointe à ladite transaction, et en général certaines au moins des autres informations de configuration de l’ensemble d’informations de configuration affectées à cette ressource esclave.
Plus précisément, comme illustré sur la figure 16, les moyens de vérification sont configurés pour effectuer ladite vérification en aval du circuit d’interconnexion INTC et ces moyens de vérification comportent pour chaque ressource esclave le module de vérification élémentaire RISUi qui est configuré pour accéder à l’ensemble d’informations de configuration affecté à cette ressource esclave et stocké dans le jeu de registres de configuration correspondant RGCSi, par l’intermédiaire de la liaison spécifique LDSi.
La vérification d’autorisation d’accès est effectuée dans l’étape 160.
Cette vérification permet de définir si dans l’étape 161 l’accès de la transaction TR destiné à la ressource esclave RSSi est autorisé ou non.
C’est par exemple le cas si l’indication de filtrage IFLT est activée et que la ressource esclave ne peut être accédée que par un ou plusieurs équipements maîtres ayant la même information d’identification, et que l’information d’identification contenue dans la transaction TR ne correspond pas à l’information d’identification stockée dans le jeu de registres RGCSi.
Les moyens de vérification déterminent alors si la transaction refusée est une transaction de lecture (étape 163).
Si tel est le cas, l’unité de gestion élémentaire RISUi renvoie à l’équipement maître EMi émetteur de la transaction refusée (étape 164) une indication de refus d’accès IR, par exemple un 0.
En parallèle, le module de vérification élémentaire RISUi renvoie (étape 165) à l’équipement maître gestionnaire EMG une notification d’accès illégal NIAC contenant un identifiant IDRSSi de la ressource esclave RSSi, l’information d’identification CIDi de l’équipement maître EMI à l’origine de cette transaction refusée, ainsi que le type de transaction (ici le type lecture).
Si la transaction refusée est une transaction d’écriture, alors cette transaction est purement et simplement ignorée (étape 167) mais le module de vérification élémentaire RISUi renvoie tout de même à l’équipement maître gestionnaire EMG la notification d’accès illégal contenant là encore l’identifiant IDRSSi, l’information d’identification CIDi de l’équipement maître EMI à l’origine de la transaction refusée et le type de la transaction refusée, ici le type écriture.
Structurellement, un module de vérification élémentaire RISU peut comporter un circuit logique.
On a vu précédemment que seul l’équipement maître gestionnaire peut envoyer une transaction au contrôleur de configuration pour par exemple mettre à jour des registres de configuration.
Il convient donc à cet égard de vérifier qu’une transaction arrivant au contrôleur de configuration est bien émise par l’équipement maître gestionnaire.
C’est le rôle d’un module de vérification auxiliaire RISUC affecté au contrôleur de configuration RIFC (figure 17).
A cet égard, lorsqu’une transaction TRC, contenant notamment l’information d’identification CID de l’équipement maître à l’origine de cette transaction TRC, est délivrée (étape 170) au module de vérification auxiliaire RISUC, celui-ci, connecté au registre gestionnaire RGG contenant l’information d’identification CID de l’équipement gestionnaire courant, par exemple le microprocesseur CPU1, vérifie que l’information d’identification CID contenue dans la transaction TRC correspond bien à l’information d’identification CID1 (étape 171).
Si tel n’est pas le cas, l’accès au contrôleur RIFC est refusé (étape 173).
Par contre, s’il y a concordance entre les deux informations d’identification, alors la transaction TRC est bien délivrée au contrôleur de configuration RIFC (étape 172).
On a vu précédemment que parmi les équipements maîtres, il est possible qu’il en existe au moins un équipement maître ayant un port esclave et un port maître.
C’est le cas par exemple pour l’équipement maître LMk (figure 18) ayant un port d’entrée PE (port esclave) et un port de sortie PS (port maître).
Un tel équipement maître peut être par exemple un contrôleur USB qui est contrôlable par un microprocesseur mais qui peut être également contrôlable au cours de l’exécution du programme utilisateur, par un autre microprocesseur.
Le port esclave PE est associé à un module de vérification élémentaire RISUk connecté au jeu de registres de configuration correspondant RGCSk et le port maître PS est associé à une unité de gestion élémentaire RIMUk connectée au jeu de registres de configuration correspondant RGCMk mais également au jeu de registres de configuration RGCSk.
On suppose dans un premier temps que cet équipement maître LMk est contrôlé par le microprocesseur CPU1.
Dans ce cas, le jeu de registres de configuration RGCSk auquel est relié le module de vérification élémentaire RISUk contient l’information d’identification CID1 du microprocesseur 1 ainsi que les informations de privilège et de sécurité correspondant à celles du microprocesseur CPU1.
Le jeu de registres RGCMk comporte également l’information d’identification CID1 du microprocesseur CPU1 ainsi que les informations de sécurité et de privilège correspondantes.
Les moyens de traitement comportent alors des moyens d’héritage MINH (figure 18) configurés pour, sur commande et en tenant compte de règles d’héritage, remplacer certaines au moins des informations de configuration affectées au port maître par des informations de configuration homologues affectées au port esclave ou bien conserver des informations de configuration affectées au port maître.
Plus précisément, ces moyens d’héritage MINH comportent un jeu de commutateurs commandables SW, réalisés par exemple sous forme matérielle, connecté au jeu de registres RGMk et au jeu de registres RGCSk, sélectivement.
Les moyens d’héritage MINH comportent également des moyens de commande MCM, par exemple réalisés sous forme logicielle au sein du microprocesseur CPU1, et capables d’émettre un signal de commande CSP destiné à commander le jeu d’interrupteur SW en tenant compte des règles d’héritage.
Tant que l’équipement maître LMk est contrôlé par le microprocesseur CPU1, les moyens de commande MCM placent l’interrupteur SW dans la position A de façon à adjoindre à la transaction émise par le port maître PS, l’information d’identification CID1 ainsi que les informations correspondantes de privilège et de sécurité.
Par contre, si à un instant donné il y a une modification du schéma de configuration de sorte que c’est par exemple le microprocesseur CPU2 qui doit prendre le contrôle de l’équipement maître LMk, alors, il y a
-d’une part une mise à jour du jeu de registres de configuration RGCSk avec la nouvelle information d’identification CID2 du microprocesseur CPU2 et avec les informations de privilège et de sécurité correspondantes et,
-d’autre part, un basculement du commutateur SW sur la position B de façon que, automatiquement, l’information d’identification CID2 du microprocesseur CPU2 et les informations de sécurité et de privilège correspondantes soient jointes à la transaction émise par le port maître PS sur le circuit d’interconnexion INTC.
-d’une part une mise à jour du jeu de registres de configuration RGCSk avec la nouvelle information d’identification CID2 du microprocesseur CPU2 et avec les informations de privilège et de sécurité correspondantes et,
-d’autre part, un basculement du commutateur SW sur la position B de façon que, automatiquement, l’information d’identification CID2 du microprocesseur CPU2 et les informations de sécurité et de privilège correspondantes soient jointes à la transaction émise par le port maître PS sur le circuit d’interconnexion INTC.
En d’autres termes, sans qu’il soit nécessaire d’effectuer une reprogrammation complète du système sur puce, il y a un héritage automatique par une simple commutation, des nouvelles informations affectées au port esclave vers le port maître.
Il est également possible que figurent parmi les équipements maîtres, non seulement plusieurs microprocesseurs, par exemple les microprocesseurs CPU1 et CPU2, mais également parmi les ressources esclaves, au moins une ressource esclave, par exemple le périphérique PH5, configurée pour générer au moins un signal d’interruption destiné à l’un des microprocesseurs qui est assigné à cette ressource esclave.
Ceci est illustré schématiquement sur la figure 19.
A cet égard, plusieurs fils d’interruption FRQ1, FRQ2 sont respectivement connectés aux microprocesseurs CPU1 et CPU2 et à ladite au moins une ressource esclave PH5.
Ces fils d’interruption sont capables de véhiculer les signaux d’interruption IRQ.
Les moyens de traitement comprennent alors des moyens de filtrage d’interruption MFIRQ configurés pour router le signal d’interruption IRQ émis par ladite ressource esclave PH5 uniquement sur le fil d’interruption connecté au microprocesseur qui lui est assigné, par exemple ici uniquement sur le fil d’interruption FRQ1 connecté au microprocesseur CPU1 qui est assigné au périphérique PH5.
Comme illustré sur la figure 19, ces moyens de filtrage MFIRQ sont incorporés au moins en partie dans le module de vérification élémentaire RISU5 affecté à la ressource esclave PH5.
Plus précisément, dans le module de vérification élémentaire RISU5 sont prévus plusieurs interrupteurs commandables SW1, SW2 connectés entre la sortie de la ressource esclave configurée pour délivrer le signal d’interruption IRQ, et respectivement les fils d’interruption FRQ1 et FRQ2 connectés aux microprocesseurs CPU1 et CPU2.
Les moyens de filtrage d’interruption comportent également des moyens de commande MCM1, incorporés ou non dans le module de vérification élémentaire RISU5, et configurés pour fermer l’interrupteur, (ici l’interrupteur SW1) connecté entre ladite sortie SS5 et le fil d’interruption FRQ1 connecté au microprocesseur CPU1 assigné à ladite ressource esclave, et pour ouvrir l’autre interrupteur SW2.
Ainsi, il ne sera pas possible d’espionner l’activité du microprocesseur CPU1 au moyen des signaux d’interruption.
Il est également possible, selon un mode de réalisation, que les équipements maîtres comprennent un premier microprocesseur, par exemple le microprocesseur CPU1, configuré pour démarrer lors du premier démarrage ou démarrage à froid du système sur puce (étapes 2000 et 2010, figure 20) de façon à permettre l’implémentation 2020 du schéma de configuration SCH, et un deuxième microprocesseur CPU2.
A un moment donné, le système sur puce MCU peut passer dans un état de veille (étape 2030).
Il est alors prévu des moyens de restauration MRST configurés pour, en cas de sortie de l’état de veille du système sur puce (étape 2040) permettre au deuxième processeur CPU2 de restaurer (étape 2050) le schéma de configuration à la place du premier microprocesseur CPU1.
Ceci est particulièrement avantageux lorsque le deuxième microprocesseur est par exemple plus rapide et/ou présente une consommation moindre que celle du premier microprocesseur CPU1.
A cet égard, les moyens de restauration MRST comprennent (figure 21) une première mémoire de sauvegarde MM1 destinée à sauvegarder le schéma de configuration SCH à restaurer, ainsi qu’une deuxième mémoire programme MM2 configurée pour stocker sur commande du premier microprocesseur (qui est configuré en temps qu’équipement maître gestionnaire avant le passage en mode veille du système sur puce MCU), un programme de restauration PRGR exécutable par le deuxième microprocesseur CPU2.
Les moyens de restauration MRST comportent également un moyen de stockage sécurisé RGSS, par exemple un système de registre matériel protégé, configuré pour stocker une signature du programme de restauration, ainsi que l’adresse de début du programme de restauration dans la deuxième mémoire programme MM2.
Les moyens de restauration MRST comportent également une source de réveil POR, de structure classique, destinée à générer un signal de réveil SRV du deuxième microprocesseur CPU2 lors de la sortie du système sur puce du mode veille.
Les moyens de restauration MRST comportent par ailleurs une machine d’état STM.
Comme illustré sur la figure 22, cette machine d’état STM est configurée pour, en présence du signal de réveil SRV,
-maintenir le premier microprocesseur CPU1 en veille (étape 2200) par exemple en forçant le signal de réinitialisation (reset) à 0,
-vérifier la signature SGN (étape 2210) puis,
-en cas de vérification réussie (étape 2220), conférer temporairement au deuxième microprocesseur CPU2 (étape 2230) la qualité d’équipement maître gestionnaire (en stockant dans le registre gestionnaire RGG l’information d’identification CID2 de ce deuxième microprocesseur) et autoriser l’exécution (étape 2240) du programme de restauration PRGR par le deuxième microprocesseur CPU2.
-maintenir le premier microprocesseur CPU1 en veille (étape 2200) par exemple en forçant le signal de réinitialisation (reset) à 0,
-vérifier la signature SGN (étape 2210) puis,
-en cas de vérification réussie (étape 2220), conférer temporairement au deuxième microprocesseur CPU2 (étape 2230) la qualité d’équipement maître gestionnaire (en stockant dans le registre gestionnaire RGG l’information d’identification CID2 de ce deuxième microprocesseur) et autoriser l’exécution (étape 2240) du programme de restauration PRGR par le deuxième microprocesseur CPU2.
Puis, lorsque la restauration du schéma de configuration SCH est terminée, la machine d’état est configurée pour
-retirer la qualité d’équipement maître gestionnaire au deuxième microprocesseur CPU2 (étape 2250),
-permettre la sortie de veille du premier microprocesseur CPU1 (étape 2260) en relâchant par exemple le signal de réinitialisation et en redonnant au premier microprocesseur CPU1 sa qualité d’équipement maître gestionnaire (étape 2270) en inscrivant dans le registre gestionnaire l’information d’identification CID1 de ce premier microprocesseur CPU1.
-retirer la qualité d’équipement maître gestionnaire au deuxième microprocesseur CPU2 (étape 2250),
-permettre la sortie de veille du premier microprocesseur CPU1 (étape 2260) en relâchant par exemple le signal de réinitialisation et en redonnant au premier microprocesseur CPU1 sa qualité d’équipement maître gestionnaire (étape 2270) en inscrivant dans le registre gestionnaire l’information d’identification CID1 de ce premier microprocesseur CPU1.
Selon encore un autre mode de réalisation, il est possible que le système sur puce comprenne, comme illustré sur la figure 23, parmi les équipements maîtres, un port d’accès de test DAP, conforme par exemple, à la norme JTAG, destiné à être couplé à un outil de débogage externe DBT.
Ce port d’accès de test DAP est affecté d’une information d’identification de test Debug_CID stockée dans un registre de test RGCDAP connecté à l’unité de gestion élémentaire RIMUDAP affectée à ce port d’accès de test.
Et, comme illustré sur la figure 24, seul l’équipement maître gestionnaire EMG est configuré pour affecter l’information d’identification de test Debug_CID uniquement au port d’accès de test DAP. En effet, toute ressource esclave RSS est configurée pour accepter de recevoir une transaction TR comportant cette information d’identification de test Debug_CID, après vérification de ladite information de sécurité (SEC) et ladite information de privilège (PRV) jointes à ladite transaction.
En effet, les accès émanant du port d’accès de test respectent les notions de privilège et de sécurité
Ainsi même si une telle transaction est destinée à être délivrée à une ressource esclave quelle que soit son information d’identification CID, les informations de sécurité et de privilège jointes à cette transaction doivent avantageusement correspondre à celles affectées à cette ressource esclave.
Claims (119)
- Système sur puce, comprenant plusieurs équipements maîtres, plusieurs ressources esclaves, un circuit d’interconnexion (INTC) couplé entre les équipements maîtres et les ressources esclaves et capable de router des transactions entre des équipements maîtres et des ressources esclaves, et des moyens de traitement (MT) au moins configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce (MCU) au moins un schéma de configuration (SCH) de ce système défini par un ensemble d’informations de configuration comportant au moins une information d’identification (CID) affectée à chaque équipement maître, ces informations d’identification étant destinées à être jointes à toutes les transactions (TR) émises par les équipements maîtres correspondants, l’ensemble de ces informations de configuration n’étant pas utilisé pour l’adressage des ressources esclaves destinataires desdites transactions et étant utilisé pour définir une assignation d’au moins un équipement maître à certaines au moins des ressources esclaves.
- Système sur puce selon la revendication 1, dans lequel une ressource esclave appartient au groupe formé au moins par un périphérique (PH3), une fonctionnalité (PH60) d’un périphérique (PH6), un moyen de mémoire (IMM1) interne au système sur puce, une interface mémoire (INTM2) interne au système sur puce et destinée à être couplée à un moyen de mémoire (EXMM)externe au système sur puce.
- Système sur puce selon l’une des revendications précédentes, dans lequel au moins un équipement maître (CPU1) comprend un microprocesseur.
- Système sur puce selon la revendication 3, dans lequel les équipements maîtres comportent des microprocesseurs (CPU1, CPU2) et des équipements maîtres contrôlables par ces microprocesseurs, et certains au moins des équipements maîtres contrôlables par un microprocesseur sont affectés des mêmes informations d’identification (CID) que l’information d’identification (CID) du microprocesseur.
- Système sur puce selon la revendication 4, dans lequel au moins un équipement maître contrôlable par un microprocesseur (CPU1) est affecté d’une information d’identification différente de l’information d’identification (CID) dudit microprocesseur.
- Système sur puce selon la revendication 4 ou 5 prise en combinaison avec la revendication 2, dans lequel au moins un équipement maître (LMk) contrôlable par un microprocesseur comporte un port de sortie (PS) capable d’émettre des transactions ainsi qu’un port d’entrée (PE) capable de recevoir des transactions, ledit port d’entrée étant considéré comme une ressource esclave et le port de sortie comme un équipement maître.
- Système sur puce selon l’une des revendications précédentes, dans lequel les moyens de traitement (MT) sont configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce un schéma initial de configuration (SCHI) formant ledit schéma de configuration (SCH).
- Système sur puce selon l’une des revendications 1 à 6, dans lequel les moyens de traitement (MT) sont configurés pour permettre à un utilisateur du système sur puce d’implémenter au sein du système sur puce un schéma initial de configuration (SCHI) ayant un ensemble initial d’informations de configuration et pour modifier la valeur d’au moins une information de configuration de cet ensemble initial de façon à obtenir ledit ensemble d’informations de configuration définissant ledit schéma de configuration (SCH).
- Système sur puce, selon la revendication 7 ou 8, dans lequel les moyens de traitement (MT) comportent des moyens de configuration configurés pour permettre à un utilisateur du système sur puce de définir ledit schéma initial de configuration et des moyens d’allocation configurés pour implémenter le schéma initial de configuration.
- Système sur puce selon l’une des revendications précédentes prise en combinaison avec la revendication 7 ou 8, dans lequel les moyens de traitement (MT) comprennent des moyens d’installation comportant parmi les équipements maîtres, un premier équipement maître dit gestionnaire (EMG), ce premier équipement maître gestionnaire étant configuré pour, en réponse à un premier démarrage du système sur puce, effectuer une phase de démarrage àl’issue de laquelle ce premier équipement maître gestionnaire est configuré pour au moins permettre l’implémentation dudit schéma initial de configuration.
- Système sur puce selon la revendication 10, dans lequel la désignation du premier équipement maître gestionnaire (EMG) est fixée lors de la réalisation du système sur puce.
- Système sur puce selon la revendication 10, dans lequel les moyens d’installation comportent un registre de désignation programmable (RDS) permettant de désigner le premier équipement maître gestionnaire.
- Système sur puce selon l’une des revendications 10 à 12, dans lequel les moyens d’installation sont en outre configurés pour rendre temporairement inopérants tous les autres équipements maîtres tant que le premier équipement maître gestionnaire (EMG) n’a pas terminé sa phase de démarrage.
- Système sur puce selon l’une des revendications 10 à 13, dans lequel les moyens d’installation comportent en outre une mémoire de démarrage (BMM) configurée pour stocker un programme de démarrage (BPR) exécutable uniquement par le premier équipement maître gestionnaire (EMG) lors dudit premier démarrage du système sur puce.
- Système sur puce selon les revendications 9 et 14, dans lequel les moyens de configuration comportent une entrée (INP) configurée pour recevoir un programme utilisateur (UPR) contenant au moins des instructions représentatives dudit schéma initial de configuration et une mémoire programme destinée à stocker le programme utilisateur, et les moyens d’allocation comportent ledit premier équipement maître gestionnaire configuré pour, à l’issue de sa phase de démarrage, exécuter ledit programme utilisateur afin d’implémenter ledit schéma initial de configuration
- Système sur puce selon l’une des revendications 10 à 15, dans lequel le premier équipement maître gestionnaire (EMG) comprend un microprocesseur.
- Système sur puce selon l’une des revendications 10 à 15, dans lequel le premier équipement maître gestionnaire (EMG) comprend un circuit logique matériel.
- Système sur puce selon la revendication 10, dans lequel les moyens d’installation comportent parmi les équipements maîtres, un équipement maître dit équipement maître gestionnaire initial (CPU1), configuré pour, lors du premier démarrage du système sur puce, effectuer une phase de démarrage àl’issue de laquelle il est configuré pour autoriser un démarrage d’un autre équipement maître (CPU2) désigné comme étant un nouvel équipement maître gestionnaire et formant ledit premier équipement maître gestionnaire configuré pour, à l’issue de sa phase de démarrage, au moins permettre l’implémentation dudit schéma initial de configuration.
- Système sur puce selon la revendication 18, dans lequel l’équipement maître gestionnaire initial comprend un microprocesseur (CPU1) et le nouvel équipement maître gestionnaire comprend un autre microprocesseur (CPU2).
- Système sur puce selon la revendication 18, dans lequel l’équipement maître gestionnaire initial comprend un circuit logique matériel et le nouvel équipement maître gestionnaire comprend un microprocesseur (CPU2).
- Système sur puce selon l’une des revendications 18 à 20, dans lequel les moyens d’installation sont en outre configurés pour rendre temporairement inopérants tous les autres équipements maîtres tant que la phase de démarrage de l’équipement maître gestionnaire initial (CPU1) et celle du nouvel équipement maître gestionnaire (CPU2) ne sont pas terminées.
- Système sur puce selon l’une des revendications 18 à 21, dans lequel les moyens d’installation comportent en outre une mémoire de démarrage (BMM) configurée pour stocker un programme de démarrage exécutable uniquement par l’équipement maître gestionnaire initial (CPU1) lors dudit premier démarrage et une mémoire programme (PMM) configurée pour stocker le programme de démarrage (BPR2) du nouvel équipement maître gestionnaire.
- Système sur puce selon les revendications 9 et 22, dans lequel les moyens de configuration comportent une entrée (INP) configurée pour recevoir un programme utilisateur contenant au moins des instructions représentatives dudit schéma initial de configuration, ladite mémoire programme étant également destinée à stocker le programme utilisateur, et les moyens d’allocation comportent ledit premier équipement maître gestionnaire configuré pour, à l’issue de sa phase de démarrage, exécuter ledit programme utilisateur afin d’implémenter ledit schéma initial de configuration.
- Système selon l’une des revendications 10 à 23, dans lequel le premier équipement maître gestionnaire (CPU1) est en outre configuré pour, après avoir permis d’implémenter le schéma d’assignation initial, désigner, au cours de l’exécution d’un programme utilisateur par les moyens de traitement, un deuxième équipement maître (CPU2) en tant que nouvel équipement maître gestionnaire, le premier équipement maître étant alors configuré pour perdre sa qualité d’équipement maître gestionnaire.
- Système selon la revendication 24, dans lequel tout nouvel équipement maître gestionnaire (CPU2) est configuré pour à son tour désigner un nouvel équipement maître gestionnaire (CPU1) et perdre alors sa qualité d’équipement maître gestionnaire.
- Système sur puce selon l’une des revendications précédentes, dans lequel l’ensemble d’informations de configuration du schéma de configuration comprend en outre, pour au moins une ressource esclave, une information d’inaccessibilité (INAC) destinée à indiquer que cette ressource esclave est inaccessible par tout équipement maître.
- Système sur puce selon l’une des revendications précédentes, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible, une information de filtrage (IFLT) destinée à indiquer si cette ressource esclave peut être accédée par n’importe quel équipement maître ou par seulement un ou plusieurs équipements maîtres.
- Système sur puce selon la revendication 27, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible,
-une première information d’accès (IAC1) destinée à indiquer, dans le cas où l’information de filtrage indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par un ou plusieurs équipements maîtres ayant la même information d’identification, et
-l’information d’identification correspondante (CID). - Système sur puce selon la revendication 27, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible,
-une deuxième information d’accès (IAC2) destinée à indiquer, dans le cas où l’information de filtrage indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par des équipements maîtres ayant des informations d’identification différentes, et
-la liste (CID1…CID4) des informations d’identification des équipements maîtres correspondants. - Système sur puce selon la revendication 29, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour une au moins des ressources esclaves pouvant être accédée par les équipements maîtres de ladite liste, une troisième information (IAC3) destinée à indiquer de ladite une au moins des ressources esclaves ne peut être accédée que par un seul équipement maître à la fois, l’équipement maître désirant accéder à cette ressource esclave étant configuré pour utiliser un sémaphore.
- Système sur puce selon l’une des revendications précédentes, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible, une information de sécurité (ISEC) destinée à indiquer si cette ressource esclave est accessible par un équipement maître en mode sécurisé ou non.
- Système sur puce selon l’une des revendications précédentes, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible, une information de privilège (IPRV) destinée à indiquer si cette ressource esclave est accessible par un équipement maître en mode privilégié ou non.
- Système sur puce selon l’une des revendications précédentes, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque équipement maître, outre son information d’identification (CID), une information de sécurité (SEC) destinée à indiquer si cet équipement maître est configuré en mode sécurisé ou non.
- Système sur puce selon l’une des revendications précédentes, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque équipement maître, outre son information d’identification, une information de privilège (PRV) destinée à indiquer si cet équipement maître est configuré en mode privilège ou non.
- Système sur puce selon les revendications 10, 33 et 34, dans lequel le premier équipement maître gestionnaire (EMG) est configuré pour être en mode sécurisé et en mode privilège à l’issue de sa phase de démarrage.
- Système sur puce selon l’une des revendications précédentes, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour certaines au moins des ressources esclaves et certains au moins des équipements maîtres, une information de verrouillage (LKM, LKS) destinée à indiquer si leurs informations de configuration peuvent ou non être modifiées.
- Système sur puce selon l’une des revendications précédentes prise en combinaison avec les revendications 9 et 10, dans lequel les moyens d’allocation comprennent outre le premier équipement maître gestionnaire (EMG),
-un jeu de registres de configuration affecté à chaque ressource esclave et à chaque équipement maître, et
-un contrôleur de configuration (RIFC) configuré pour mettre à jour les contenus des jeux de registres de configuration avec ledit ensemble d’informations de configuration sous le contrôle du premier équipement maître gestionnaire. - Système sur puce selon la revendication 37, dans lequel un jeu de registres de configuration affecté à une ressource esclave est destiné à stocker les différentes informations de configuration définies dans les revendications 26 à 32 et 36 et affectées à cette ressource esclave et un jeu de registres de configuration affecté à chaque équipement maître est destiné à stocker l’information d’identification affecté à cet équipement maître et les informations de configuration affectées à cet équipement maître définies dans les revendications 33, 34 et 36.
- Système sur puce selon l’une des revendications précédentes prise en combinaison avec la revendication 8, dans lequel les moyens de traitement (MT) sont configurés pour exécuter un programme utilisateur pour modifier le schéma initial de configuration après son implémentation et implémenter en conséquence ledit schéma de configuration et éventuellement remodifier tout ancien schéma de configuration.
- Système sur puce selon la revendication 39 prise en combinaison avec l’une des revendications 10 à 20, dans lequel seul l’équipement maître qui a la qualité d’équipement maître gestionnaire est configuré pour modifier un schéma de configuration (SCH).
- Système sur puce selon les revendications 38 et 40, dans lequel pour modifier un schéma de configuration, l’équipement maître gestionnaire est configuré pour commander le contrôleur de configuration (RIFC) de façon à ce qu’il mette à jour les contenus des registres de configuration avec l’ensemble d’informations de configuration définissant le nouveau schéma de configuration à implémenter.
- Système sur puce selon l’une des revendications précédentes, dans lequel chaque transaction (TR) émise par un équipement maître comprend un champ d’adressage (ADR) dont le contenu est destiné à adresser la ressource esclave destinataire de cette transaction, et le contenu du champ d’adressage n’appartient pas audit ensemble d’informations de configuration.
- Système sur puce selon l’une des revendications précédentes, dans lequel chaque transaction (TR) émise par un équipement maître comprend un champ d’adressage dont le contenu est destiné à adresser la ressource esclave destinataire de cette transaction, et les moyens de traitement (MT) comportent en outre des moyens d’adjonction configurés pour ajouter à chaque transaction émise par un équipement maître, au moins l’information d’identification (CID) de cet équipement maître, ladite information d’identification n’appartenant pas au champ d’adressage de la transaction.
- Système sur puce selon la revendication 43 prise en combinaison avec la revendication 34 ou 35, dans lequel les moyens d’adjonction sont en outre configurés pour ajouter à chaque transaction émise par un équipement maître, l’information de sécurité (SEC) et/ou l’information de privilège (PRV) si ces deux informations ne figurent pas déjà dans la transaction émise par l’équipement maître.
- Système sur puce selon l’une des revendications 43 ou 44, dans lequel les moyens d’adjonction comportent pour chaque équipement maître, une unité de gestion élémentaire (RIMUi) configurée pour accéder à l’information d’identification affectée à cet équipement maître et éventuellement à l’information de sécurité et/ou à l’information de privilège, et pour ajouter à toute transaction émise par l’équipement maître, cette information d’identification et éventuellement l’information de sécurité et/ou l’information de privilège.
- Système sur puce selon les revendications 38 et 45, dans lequel chaque unité de gestion élémentaire (RIMUi) affectée à un équipement maître est connectée par une liaison dédiée (LDMi) au moins au jeu de registres de configuration (RGCMi) affectés à cet équipement maître.
- Système sur puce selon l’une des revendications précédentes, dans lequel au moins une information de configuration est destinée à être jointe à chaque transaction, et les moyens de traitement (MT) comportent des moyens de vérification configurés pour vérifier si une transaction émanant d’un équipement maître et destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave, en utilisant ladite au moins une information de configuration jointe à ladite transaction.
- Système sur puce selon la revendication 47, dans lequel les moyens de vérification sont configurés pour vérifier si une transaction émanant d’un équipement maître et destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave, en utilisant au moins ladite information d’identification (CID) jointe à ladite transaction.
- Système sur puce selon la revendication 47 ou 48 prise en combinaison avec les revendications 33 et 34, dans lequel les moyens de vérification sont configurés pour vérifier si une transaction émanant d’un équipement maître et destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave, en utilisant au moins ladite information de sécurité (SEC) et ladite information de privilège (PRV) jointes à ladite transaction.
- Système sur puce selon l’une des revendications 47 à 49 prise en combinaison avec les revendications 24 à 31 et 34, dans lequel les moyens de vérification sont configurés pour vérifier si une transaction émanant d’un équipement maître et destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave, en utilisant la ou les informations de configuration jointes à ladite transaction (TR) ainsi que les autres informations de configuration de l’ensemble d’informations de configuration affectées à cette ressource esclave.
- Système sur puce selon l’une des revendications 47 à 50, dans lequel les moyens de vérification sont configurés pour effectuer ladite vérification en aval du circuit d’interconnexion (INTC).
- Système sur puce selon l’une des revendications 47 à 51, dans lequel les moyens de vérification comportent pour chaque ressource esclave, un module de vérification élémentaire (RISUi) configuré pour accéder à l’ensemble d’informations de configuration affectées à cette ressource esclave.
- Système sur puce selon les revendications 37 et 52, dans lequel chaque module de vérification élémentaire (RISUi) affecté à une ressource esclave est connecté par une liaison dédiée (LDSi) au jeu de registres de configuration (RGCSi) affectés à cette ressource esclave.
- Système sur puce selon la revendication 52 ou 53, dans lequel les moyens de traitement comportent un registre gestionnaire (RGG) destiné à contenir l’information d’identification de l’équipement maître gestionnaire courant, et un module de vérification auxiliaire (RISUC) affecté audit contrôleur et configuré pour interdire l’accès audit contrôleur à tout équipement maître ayant une information d’identification différente de celle contenue dans ledit registre gestionnaire.
- Système sur puce selon l’une des revendications 47 à 54 prise en combinaison avec l’une des revendications 10 à 20, dans lequel les moyens de vérification sont en outre configurés pour, dans le cas où une transaction de lecture émise par un équipement maître et destinée à une ressource esclave n’est pas autorisée à accéder à cette ressource esclave, renvoyer à l’équipement maître une indication de refus d’accès (IR) et renvoyer à l’équipement maître gestionnaire, une notification d’accès illégal (NIAC) contenant un identifiant de cette ressource esclave, une indication du type d’accès et l’information d’identification de l’équipement maître à l’origine de cette transaction refusée.
- Système sur puce selon l’une des revendications 47 à 55 prise en combinaison avec l’une des revendications 10 à 20, dans lequel les moyens de vérification sont en outre configurés pour, dans le cas où une transaction d’écriture émise par un équipement maître et destinée à une ressource esclave n’est pas autorisée à accéder à cette ressource esclave, ignorer cette transaction et renvoyer à l’équipement maître gestionnaire, une notification d’accès illégal (NIAC) contenant un identifiant de cette ressource esclave, une indication du type d’accès et l’information d’identification de l’équipement maître à l’origine de cette transaction refusée.
- Système sur puce selon l’une des revendications précédentes, comprenant parmi les équipements maîtres au moins un équipement maître ayant un port esclave et un port maître, des informations de configuration étant affectées au port esclave et des information de configuration étant affectés au port maître, et dans lequel les moyens de traitement comportent des moyens d’héritage (MINH) configurés pour, sur commande et en tenant compte de règles d’héritage, remplacer certaines au moins des informations de configuration affectées au port maître par les informations de configuration homologues affectées au port esclave ou bien conserver les informations de configuration affectées au port maître.
- Système sur puce selon les revendications 37, 45 et 57, dans lequel les moyens d’héritage (MINH) comportent
-au sein de l’unité de gestion élémentaire (RIMUk) affectée au port maître, un jeu de commutateurs commandables connectés à certains au moins des registres de configuration affectés au port esclave et aux registres de configuration homologues affectés au port maître, et
-des moyens de commande (MCM) configurés pour commander le jeu de commutateurs de façon à sélectionner soit les registres de configuration correspondants affectés au port maître soit les registres de configuration correspondants affectés au port esclave. - Système sur puce selon l’une des revendications précédentes, comprenant
-parmi les équipements maîtres, plusieurs microprocesseurs,
-parmi les ressources esclaves au moins une ressource esclave configurée pour générer au moins un signal d’interruption destiné à l’un des microprocesseurs qui est assigné à cette ressource esclave,
-plusieurs fils d’interruptions respectivement connectés aux microprocesseurs et à ladite au moins une ressource esclave et capables de véhiculer des signaux d’interruption, et
- système sur puce dans lequel les moyens de traitement comprennent des moyens de filtrage d’interruption (MFIRQ) configurés pour router le signal d’interruption émis par ladite ressource esclave uniquement sur le fil d’interruption connecté au microprocesseur qui lui est assigné. - Système sur puce selon les revendications 52 et 59, dans lequel les moyens de filtrage d’interruption (MFIRQ) sont incorporés au moins en partie dans le module de vérification élémentaire (RISU5) affecté à ladite ressource esclave.
- Système sur puce selon la revendication 60, dans lequel les moyens de filtrage d’interruption (MFIRQ) comportent
-dans le module de vérification élémentaire, plusieurs interrupteurs commandables connectés entre la sortie de la ressource esclave configurée pour délivrer le signal d’interruption et respectivement les fils d’interruptions connectés aux microprocesseurs, et
-des moyens de commande configurés pour fermer l’interrupteur connecté entre ladite sortie et le fil d’interruption connecté au microprocesseur assigné à ladite ressource esclave, et pour ouvrir le ou les autres interrupteurs. - Système sur puce selon l’une des revendications précédentes, comprenant
-parmi les équipements maîtres un premier microprocesseur configuré pour démarrer lors d’un premier démarrage du système sur puce de façon à permettre l’implémentation du schéma de configuration, et un deuxième équipement maître, par exemple un deuxième microprocesseur, et
-des moyens de restauration (MRST) configurés pour, en cas de sortie d’un mode de veille du système sur puce, permettre au deuxième équipement maître de restaurer le schéma de configuration à la place du premier microprocesseur. - Système sur puce selon la revendication 62 prise en combinaison avec l’une des revendications 10 à 20, dans lequel le premier microprocesseur est configuré en tant qu’équipement maître gestionnaire avant le passage en mode veille, et les moyens de restauration (MRST) comprennent
-une première mémoire de sauvegarde destinée à sauvegarder le schéma de configuration à restaurer,
-une deuxième mémoire programme configurée pour stocker sur commande du premier microprocesseur, un programme de restauration exécutable par le deuxième équipement maître,
-un moyen de stockage sécurisé configuré pour stocker une signature dudit programme de restauration ainsi que l’adresse de début du programme de restauration dans ladite deuxième mémoire programme,
- une source de réveil destinée à générer un signal de réveil au deuxième équipement maître lors de la sortie du système sur puce du mode veille, et
-une machine d’état (STM) configurée pour en présence dudit signal de réveil, maintenir le premier microprocesseur en état de veille, vérifier ladite signature, et en cas de vérification réussie, conférer temporairement au deuxième équipement maître la qualité d’équipement maître gestionnaire et autoriser l’exécution du programme de restauration par le deuxième équipement maître, puis lorsque la restauration est terminée, retirer la qualité d’équipement maître gestionnaire au deuxième équipement maître, permettre la sortie de veille du premier microprocesseur, et redonner au premier microprocesseur sa qualité d’équipement maître gestionnaire. - Système sur puce selon l’une des revendications précédentes prise en combinaison avec la revendication 49, comprenant parmi les équipements maîtres un port d’accès de test (DAP), destiné à être couplé à un outil de débogage externe, ce port d’accès de test étant affecté d’une information d’identification de test (Debug_CID), et toute ressource esclave est configurée pour accepter de recevoir une transaction comportant cette information d’identification de test, après vérification de ladite information de sécurité (SEC) et de ladite information de privilège (PRV) jointes à ladite transaction.
- Système sur puce selon la revendication 64, prise en combinaison avec l’une des revendications 10 à 20, dans lequel seul l’équipement maître gestionnaire est configuré pour affecter l’information d’identification de test uniquement au port d’accès de test (DAP).
- Système sur puce selon l’une des revendications précédentes, formant un microcontrôleur (MCU) ou un microprocesseur.
- Procédé de gestion du fonctionnement d’un système sur puce, le système sur puce comprenant plusieurs équipement maîtres, plusieurs ressources esclaves, un circuit d’interconnexion couplé entre les équipements maîtres et les ressources esclaves et capable de router des transactions entre des équipements maîtres et des ressources esclaves, le procédé comprenant
-une phase de configuration (PHCFG) comportant
.une définition d’au moins un schéma de configuration par un ensemble d’informations de configuration incluant au moins une information d’identification (CID) affectée à chaque équipement maître, cet ensemble d’informations de configuration permettant de définir une assignation d’au moins un équipement maître à certaines au moins des ressources esclaves, et
.une implémentation au sein du système sur puce dudit au moins un schéma de configuration, et
-une phase de fonctionnement (PHF) comportant une adjonction au moins de ces informations d’identification à toutes les transactions émises par les équipements maîtres correspondants, et un adressage des ressources esclaves sans utiliser l’ensemble de ces informations de configuration. - Procédé selon la revendication 67, dans lequel une ressource esclave appartient au groupe formé au moins par un périphérique (PH3), une fonctionnalité (PH60, PH61) d’un périphérique (PH6), un moyen de mémoire interne au système sur puce, une interface mémoire interne au système sur puce et destinée à être couplée à un moyen de mémoire externe au système sur puce.
- Procédé selon l’une des revendications 67 ou 68, dans lequel au moins un équipement maître comprend un microprocesseur (CPU1).
- Procédé selon la revendication 69, dans lequel, les équipements maîtres comportant des microprocesseurs et des équipements maîtres contrôlables par ces microprocesseurs, on affecte à certains au moins des équipements maîtres contrôlables par un microprocesseur, les mêmes informations d’identification que l’information d’identification (CID) du microprocesseur.
- Procédé selon la revendication 70, dans lequel on affecte à au moins un équipement maître contrôlable par un microprocesseur, une information d’identification différente de l’information d’identification (CID) dudit microprocesseur.
- Procédé selon la revendication 70 ou 71 prise en combinaison avec la revendication 68, dans lequel au moins un équipement maître contrôlable par un microprocesseur comporte un port de sortie (PS) capable d’émettre des transactions ainsi qu’un port d’entrée (PE) capable de recevoir des transactions, et ledit port d’entrée est considéré comme une ressource esclave et le port de sortie comme un équipement maître.
- Procédé selon l’une des revendications 67 à 72, dans lequel ladite phase de configuration (PHCFG) comprend une implémentation au sein du système sur puce d’un schéma initial de configuration formant ledit schéma de configuration.
- Procédé selon l’une des revendications 67 à 72, dans lequel ladite phase de configuration (PHCFG) comprend une implémentation au sein du système sur puce d’un schéma initial de configuration ayant un ensemble initial d’informations de configuration, et le procédé comprend une modification de la valeur d’au moins une information de configuration de cet ensemble initial de façon à obtenir ledit ensemble d’informations de configuration définissant ledit schéma de configuration.
- Procédé selon l’une des revendications 73 ou 74, dans lequel la phase de configuration (PHCFG) comprend une désignation parmi les équipements maîtres, d’un premier équipement maître dit gestionnaire, ce premier équipement maître gestionnaire effectuant, en réponse à un premier démarrage du système sur puce, une phase de démarrage àl’issue de laquelle ce premier équipement maître gestionnaire autorise l’implémentation dudit schéma initial de configuration.
- Procédé selon la revendication 75, dans lequel la désignation du premier équipement maître gestionnaire (CPU1) est fixée et résulte de la réalisation du système sur puce.
- Procédé selon la revendication 75, dans lequel la désignation du premier équipement maître gestionnaire (CPU1) est programmable.
- Procédé selon l’une des revendications 75 à 77, dans lequel on rend temporairement inopérants tous les autres équipements maîtres tant que le premier équipement maître gestionnaire (EMG) n’a pas terminé sa phase de démarrage.
- Procédé selon l’une des revendications 75 à 78, dans lequel la phase de configuration (PHCFG) comprend un stockage d’un programme de démarrage exécutable uniquement par le premier équipement maître gestionnaire lors dudit premier démarrage du système sur puce.
- Procédé selon la revendication 79, dans lequel la phase de configuration (PHCFG) comprend une réception d’un programme utilisateur contenant au moins des instructions représentatives dudit schéma initial de configuration, un stockage du programme utilisateur, ledit premier équipement maître gestionnaire exécutant, à l’issue de sa phase de démarrage, ledit programme utilisateur afin d’implémenter ledit schéma initial de configuration.
- Procédé selon la revendication 75, dans lequel la phase de configuration (PHCFG) comporte une désignation parmi les équipements maîtres, d’un équipement maître dit équipement maître gestionnaire initial, effectuant, lors du premier démarrage du système sur puce, une phase de démarrage àl’issue de laquelle il autorise un démarrage d’un autre équipement maître désigné comme étant un nouvel équipement maître gestionnaire et formant ledit premier équipement maître gestionnaire permettant au moins, à l’issue de sa phase de démarrage, au moins l’implémentation dudit schéma initial de configuration.
- Procédé selon la revendication 81, dans lequel on rend temporairement inopérants tous les autres équipements maîtres tant que la phase de démarrage de l’équipement maître gestionnaire initial (CPU1) et celle du nouvel équipement maître gestionnaire (CPU2) ne sont pas terminées.
- Procédé selon l’une des revendications 81 ou 82, dans lequel la phase de configuration (PHCFG) comprend un stockage d’un programme de démarrage exécutable uniquement par l’équipement maître gestionnaire initial lors dudit premier démarrage du système sur puce et un stockage du programme de démarrage du nouvel équipement maître gestionnaire.
- Procédé selon la revendication 83, dans lequel la phase de configuration (PHCFG) comprend une réception d’un programme utilisateur contenant au moins des instructions représentatives dudit schéma initial de configuration, un stockage du programme utilisateur, ledit premier équipement maître gestionnaire exécutant, à l’issue de sa phase de démarrage, ledit programme utilisateur afin d’implémenter ledit schéma initial de configuration.
- Procédé selon l’une des revendications 75 à 84, dans lequel la phase de fonctionnement (PHF) comprend une désignation par le premier équipement maître gestionnaire désigne, après qu’il a permis d’implémenter le schéma d’assignation initial, d’un deuxième équipement maître en tant que nouvel équipement maître gestionnaire, le premier équipement maître perdant alors sa qualité d’équipement maître gestionnaire.
- Procédé selon la revendication 85, dans lequel lors de la phase de fonctionnement (PHF) tout nouvel équipement maître gestionnaire désigne à son tour un nouvel équipement maître gestionnaire et perd alors sa qualité d’équipement maître gestionnaire.
- Procédé selon l’une des revendications 67 à 86, dans lequel l’ensemble d’informations de configuration du schéma de configuration comprend en outre, pour au moins une ressource esclave, une information d’inaccessibilité (INAC) indiquant si cette ressource esclave est ou non, inaccessible par tout équipement maître.
- Procédé selon l’une des revendications 67 à 87, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible, une information de filtrage (IFLT) indiquant si cette ressource esclave peut être accédée par n’importe quel équipement maître ou par seulement un ou plusieurs équipements maîtres.
- Procédé selon la revendication 88, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible,
-une première information d’accès (IAC1) indiquant, dans le cas où l’information de filtrage indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par un ou plusieurs équipements maîtres ayant la même information d’identification, et
-l’information d’identification correspondante. - Procédé selon la revendication 88, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible,
-une deuxième information d’accès (IAC2) indiquant, dans le cas où l’information de filtrage indique que la ressource esclave peut être accédée par seulement un ou plusieurs équipements maîtres, que cette ressource esclave peut être accédée par des équipements maîtres ayant des informations d’identification différentes, et
-la liste des informations d’identification des équipements maîtres correspondants. - Procédé selon la revendication 90, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour une au moins des ressources esclaves pouvant être accédée par les équipements maîtres de ladite liste, une troisième information (IAC3) indiquant de ladite une au moins des ressources esclaves ne peut être accédée que par un seul équipement maître à la fois, l’équipement maître désirant accéder à cette ressource esclave lors de la phase de fonctionnement utilisant un sémaphore (SMP).
- Procédé selon l’une des revendications 67 à 91, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible, une information de sécurité (ISEC) indiquant si cette ressource esclave est accessible par un équipement maître en mode sécurisé ou non.
- Procédé selon l’une des revendications 67 à 92, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque ressource esclave non inaccessible, une information de privilège (IPRV) indiquant si cette ressource esclave est accessible par un équipement maître en mode privilégié ou non.
- Procédé selon l’une des revendications 67 à 93, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque équipement maître, outre son information d’identification, une information de sécurité (SEC) indiquant si cet équipement maître est configuré en mode sécurisé ou non.
- Procédé selon l’une des revendications 67 à 94, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour chaque équipement maître, outre son information d’identification, une information de privilège (PRV) indiquant si cet équipement maître est configuré en mode privilège ou non.
- Procédé selon les revendications 75, 94 et 95, comprenant une configuration du premier équipement maître gestionnaire (CPU1) en mode sécurisé et en mode privilège à l’issue de sa phase de démarrage.
- Procédé selon l’une des revendications 67 à 96, dans lequel l’ensemble d’informations de configuration définissant le schéma de configuration comprend en outre pour certaines au moins des ressources esclaves et certains au moins des équipements maîtres, une information de verrouillage (LKM, LKS) indiquant si leurs informations de configuration peuvent ou non être modifiées.
- Procédé selon l’une des revendications 67 à 97 prise en combinaison avec la revendication 75, comprenant une mise à jour des informations de configuration affectées à chaque ressource esclave et à chaque équipement maître, sous le contrôle du premier équipement maître gestionnaire (EMG).
- Procédé selon l’une des revendications 67 à 98 prise en combinaison avec la revendication 74, dans lequel la phase de fonctionnement (PHF) comprend une exécution d’un programme utilisateur pour modifier le schéma initial de configuration après son implémentation et implémenter en conséquence ledit schéma de configuration et éventuellement remodifier tout ancien schéma de configuration.
- Procédé selon la revendication 99 prise en combinaison avec l’une des revendications 75 à 82, dans lequel seul l’équipement maître qui a la qualité d’équipement maître gestionnaire (EMG) est autorisé à modifier un schéma de configuration.
- Procédé selon l’une des revendications 67 à 100, dans lequel chaque transaction (TR) émise par un équipement maître comprend un champ d’adressage dont le contenu adresse la ressource esclave destinataire de cette transaction, et le contenu du champ d’adressage n’appartient pas audit ensemble d’informations de configuration.
- Procédé selon l’une des revendications 67 à 100, dans lequel chaque transaction (TR) émise par un équipement maître comprend un champ d’adressage dont le contenu adresse la ressource esclave destinataire de cette transaction, et la phase de fonctionnement comprend l’adjonction à chaque transaction émise par un équipement maître, d’au moins l’information d’identification de cet équipement maître, ladite information d’identification n’appartenant pas au champ d’adressage de la transaction.
- Procédé selon la revendication 102 prise en combinaison avec la revendication 94 ou 95, dans lequel la phase de fonctionnement (PHF) comprend l’adjonction à chaque transaction émise par un équipement maître, de l’information de sécurité et/ou de l’information de privilège si ces deux informations ou l’une de ces deux informations ne figurent pas déjà dans la transaction émise par l’équipement maître.
- Procédé selon l’une des revendications 67 à 103, dans lequel au moins une information de configuration est jointe à chaque transaction, et la phase de fonctionnement (PHF) comprend une vérification si une transaction émanant d’un équipement maître et destinée à une ressource esclave est bien autorisée à accéder à cette ressource esclave, ladite vérification comportant l’utilisation de ladite au moins une information de configuration jointe à ladite transaction.
- Procédé selon la revendication 104, dans lequel ladite vérification comporte l’utilisation d’au moins ladite information d’identification (CID) jointe à ladite transaction.
- Procédé selon la revendication 104 ou 105 prise en combinaison avec les revendications 94 et 95, dans lequel ladite vérification comprend l’utilisation d’au moins ladite information de sécurité (SEC) et de ladite information de privilège (PRV) jointes à ladite transaction.
- Procédé selon l’une des revendications 104 à 106 prise en combinaison avec les revendications 87 à 93 et 97, dans lequel ladite vérification comprend l’utilisation de la ou les informations de configuration jointes à ladite transaction (TR) ainsi que des autres informations de configuration de l’ensemble d’informations de configuration affectées à cette ressource esclave.
- Procédé selon l’une des revendications 104 à 107, dans lequel ladite vérification est effectuée en aval du circuit d’interconnexion (INTC).
- Procédé selon l’une des revendications 104 à 108, dans lequel ladite vérification comprend des vérifications locales (RISUi) effectuées au niveau des ressources esclaves à partir des informations de configuration respectivement affectées à ces ressources esclaves.
- Procédé selon l’une des revendications 104 à 109 prise en combinaison avec l’une des revendications 75 à 82, comprenant en outre dans le cas où une transaction de lecture émise par un équipement maître et destinée à une ressource esclave n’est pas autorisée à accéder à cette ressource esclave, un renvoi à l’équipement maître d’une indication de refus d’accès (IR) et un renvoi à l’équipement maître gestionnaire, d’une notification d’accès illégal (NIAC) contenant un identifiant de cette ressource esclave, une indication du type d’accès et l’information d’identification de l’équipement maître à l’origine de cette transaction refusée.
- Procédé selon l’une des revendications 104 à 110 prise en combinaison avec l’une des revendications 75 à 82, comprenant en outre, dans le cas où une transaction d’écriture émise par un équipement maître et destinée à une ressource esclave n’est pas autorisée à accéder à cette ressource esclave, le fait d’ignorer cette transaction et un renvoi à l’équipement maître gestionnaire, d’une notification d’accès illégal (NIAC) contenant un identifiant de cette ressource esclave, une indication du type d’accès et l’information d’identification de l’équipement maître à l’origine de cette transaction refusée.
- Procédé selon l’une des revendications 67 à 111 prise en combinaison avec l’une des revendications 75 à 82, comprenant un stockage de l’information d’identification de l’équipement maître gestionnaire courant, et une vérification auxiliaire comportant une comparaison (171) entre l’information d’identification de l’équipement maître gestionnaire courant et l’information d’identification d’un équipement maître désirant modifier au moins une information de configuration, et une interdiction de modification de ladite au moins une information de configuration à tout équipement maître ayant une information d’identification différente de celle de l’équipement maître gestionnaire.
- Procédé selon l’une des revendications 67 à 112, comprenant parmi les équipements maîtres au moins un équipement maître ayant un port esclave (PS) et un port maître (PE), des informations de configuration affectées au port esclave et des informations de configuration affectées au port maître, le procédé comprenant en outre, sur commande et en tenant compte de règles d’héritage, un remplacement de certaines au moins des informations de configuration affectées au port maître par les informations de configuration homologues affectées au port esclave ou bien une conservation des informations de configuration affectées au port maître.
- Procédé selon l’une des revendications 67 à 113, comprenant,
-plusieurs microprocesseurs figurant parmi les équipements maîtres,
et au moins une ressource esclave générant au moins un signal d’interruption (IRQ) destiné à l’un des microprocesseurs qui est assigné à cette ressource esclave,
-plusieurs fils d’interruptions (FRQ1, FRQ2) étant respectivement connectés aux microprocesseurs et à ladite au moins une ressource esclave et capables de véhiculer des signaux d’interruption,
-un routage du signal d’interruption émis par ladite ressource esclave uniquement sur le fil d’interruption connecté au microprocesseur qui lui est assigné. - Procédé selon l’une des revendications 67 à 114, comprenant
- un premier microprocesseur (CPU1) configuré pour démarrer lors d’un premier démarrage du système sur puce de façon à permettre l’implémentation du schéma de configuration,
- en cas de sortie d’un mode veille du système sur puce, une restauration du schéma de configuration par un deuxième équipement maître (CPU2). - Procédé selon la revendication 115 prise en combinaison avec l’une des revendications 75 à 82, dans lequel le premier microprocesseur étant l’équipement maître gestionnaire avant le passage en mode veille, la restauration (205) comprend
-une sauvegarde du schéma de configuration à restaurer,
-un stockage sur commande du premier microprocesseur, d’un programme de restauration exécutable par le deuxième équipement maître,
-un stockage sécurisé d’une signature dudit programme de restauration ainsi que de l’adresse de début du programme de restauration,
- une génération d’un signal de réveil au deuxième équipement maître lors de la sortie du système sur puce du mode veille, et
- en présence dudit signal de réveil, un maintien du premier microprocesseur en état de veille, une vérification de ladite signature, et en cas de vérification réussie, une allocation temporaire au deuxième équipement maître de la qualité d’équipement maître gestionnaire et une exécution du programme de restauration par le deuxième équipement maître, puis lorsque la restauration est terminée, un retrait de la qualité d’équipement maître gestionnaire au deuxième équipement maître, une sortie de veille du premier microprocesseur, et une allocation au premier microprocesseur sa qualité d’équipement maître gestionnaire. - Procédé selon l’une des revendications 67 à 116 prise en combinaison avec la revendication 106, comprenant une affectation à un port d’accès de test (DAP) faisant partie des équipements maitres et destiné à être couplé à un outil de débogage externe, d’une information d’identification de test (Debug_CID), et toute ressource esclave accepte de recevoir une transaction comportant cette information d’identification de test, après vérification de ladite information de sécurité (SEC) et de ladite information de privilège (PRV) jointes à ladite transaction.
- Procédé selon la revendication 117, prise en combinaison avec l’une des revendications 75 à 82, dans lequel seul l’équipement maître gestionnaire affecte l’information d’identification de test uniquement au port d’accès de test (DAP).
- Procédé selon l’une des revendications précédentes, dans lequel le système sur puce forme un microcontrôleur (MCU) ou un microprocesseur.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1913124A FR3103586B1 (fr) | 2019-11-22 | 2019-11-22 | Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
US16/951,198 US11700174B2 (en) | 2019-11-22 | 2020-11-18 | Method for managing the operation of a system on chip, and corresponding system on chip |
CN202011319314.XA CN112948321B (zh) | 2019-11-22 | 2020-11-23 | 用于管理片上系统的操作的方法和对应的片上系统 |
US17/587,954 US20220156217A1 (en) | 2019-11-22 | 2022-01-28 | Method for managing the operation of a system on chip, and corresponding system on chip |
US18/321,516 US11962462B2 (en) | 2019-11-22 | 2023-05-22 | Method for managing the operation of a system on chip, and corresponding system on chip |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1913124 | 2019-11-22 | ||
FR1913124A FR3103586B1 (fr) | 2019-11-22 | 2019-11-22 | Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
Publications (2)
Publication Number | Publication Date |
---|---|
FR3103586A1 true FR3103586A1 (fr) | 2021-05-28 |
FR3103586B1 FR3103586B1 (fr) | 2023-04-14 |
Family
ID=70295214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1913124A Active FR3103586B1 (fr) | 2019-11-22 | 2019-11-22 | Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
Country Status (3)
Country | Link |
---|---|
US (2) | US11700174B2 (fr) |
CN (1) | CN112948321B (fr) |
FR (1) | FR3103586B1 (fr) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220045901A1 (en) * | 2020-08-07 | 2022-02-10 | Arris Enterprises Llc | Electronic device, method for electronic device, computer readable medium, and apparatus |
FR3129499A1 (fr) | 2021-11-25 | 2023-05-26 | STMicroelectronics (Grand Ouest) SAS | Gestion dynamique d’un pare-feu de mémoire |
FR3129502A1 (fr) | 2021-11-25 | 2023-05-26 | STMicroelectronics (Alps) SAS | Gestion d’un pare-feu de mémoire dans un système sur puce |
EP4375846A1 (fr) | 2022-11-25 | 2024-05-29 | STMicroelectronics (ALPS) SAS | Système sur puce comportant un système d'isolation des ressources et procédé de gestion de l'isolation des ressources correspondant |
EP4375845A1 (fr) | 2022-11-25 | 2024-05-29 | STMicroelectronics (Grand Ouest) SAS | Procédé de gestion de l'isolation de ressources d'un système sur puce, et système sur puce correspondant |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3103586B1 (fr) | 2019-11-22 | 2023-04-14 | St Microelectronics Alps Sas | Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
US20220156217A1 (en) * | 2019-11-22 | 2022-05-19 | Stmicroelectronics (Rousset) Sas | Method for managing the operation of a system on chip, and corresponding system on chip |
FR3103584B1 (fr) | 2019-11-22 | 2023-05-05 | St Microelectronics Alps Sas | Procédé de gestion du débogage d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
FR3103585B1 (fr) | 2019-11-22 | 2023-04-14 | Stmicroelectronics Grand Ouest Sas | Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
CN113297563B (zh) * | 2021-06-18 | 2023-01-24 | 海光信息技术股份有限公司 | 访问片上系统特权资源的方法、装置及片上系统 |
FR3128545A1 (fr) * | 2021-10-25 | 2023-04-28 | STMicroelectronics (Grand Ouest) SAS | Procédé de transaction entre une application et un périphérique |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120079590A1 (en) * | 2010-09-24 | 2012-03-29 | Sastry Manoj R | Method for enforcing resource access control in computer systems |
US20120239895A1 (en) * | 2010-09-21 | 2012-09-20 | Texas Instruments Incorporated | Memory Management Unit that Applies Rules Based on Privilege Identifier |
FR3003054A1 (fr) * | 2013-03-06 | 2014-09-12 | Sagem Defense Securite | Procede et dispositif de filtrage de transactions pour systeme sur puce |
US9946674B2 (en) * | 2016-04-28 | 2018-04-17 | Infineon Technologies Ag | Scalable multi-core system-on-chip architecture on multiple dice for high end microcontroller |
US10176131B1 (en) * | 2017-09-27 | 2019-01-08 | Xilinx, Inc. | Controlling exclusive access using supplemental transaction identifiers |
US20190303328A1 (en) * | 2018-04-03 | 2019-10-03 | Xilinx, Inc. | System-on-chip interface architecture |
Family Cites Families (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5919255A (en) | 1997-03-12 | 1999-07-06 | Texas Instruments Incorporated | Method and apparatus for processing an interrupt |
FR2766937B1 (fr) * | 1997-07-31 | 2001-04-27 | Sqware T | Protocole et systeme de liaison par bus entre elements d'un microcontroleur |
US6145041A (en) | 1998-04-24 | 2000-11-07 | Alcatel Usa Sourcing, Lp | Remote multi-level control bus |
US6546496B1 (en) | 2000-02-16 | 2003-04-08 | 3Com Corporation | Network interface with power conservation using dynamic clock control |
US7139947B2 (en) | 2000-12-22 | 2006-11-21 | Intel Corporation | Test access port |
US7228440B1 (en) | 2002-02-13 | 2007-06-05 | Lsi Corporation | Scan and boundary scan disable mechanism on secure device |
US7421478B1 (en) | 2002-03-07 | 2008-09-02 | Cisco Technology, Inc. | Method and apparatus for exchanging heartbeat messages and configuration information between nodes operating in a master-slave configuration |
US7023979B1 (en) | 2002-03-07 | 2006-04-04 | Wai Wu | Telephony control system with intelligent call routing |
US7010722B2 (en) | 2002-09-27 | 2006-03-07 | Texas Instruments Incorporated | Embedded symmetric multiprocessor system debug |
US6829698B2 (en) * | 2002-10-10 | 2004-12-07 | International Business Machines Corporation | Method, apparatus and system for acquiring a global promotion facility utilizing a data-less transaction |
US6762638B2 (en) * | 2002-10-16 | 2004-07-13 | International Business Machines Corporation | Circuit for preserving data in a flip-flop and a method of use |
US20030108030A1 (en) * | 2003-01-21 | 2003-06-12 | Henry Gao | System, method, and data structure for multimedia communications |
GB0301448D0 (en) * | 2003-01-22 | 2003-02-19 | Falanx Microsystems As | Microprocessor systems |
US20040158784A1 (en) | 2003-02-06 | 2004-08-12 | Transwitch Corporation | Microprocessor based self-diagnostic port |
US7039894B2 (en) | 2003-04-28 | 2006-05-02 | International Business Machines Corporation | Method, system and program product for specifying and using dials having phased default values to configure a simulated or physical digital system |
US20050188248A1 (en) | 2003-05-09 | 2005-08-25 | O'brien John | Scalable storage architecture |
US20050235281A1 (en) * | 2004-04-19 | 2005-10-20 | Telefonaktiebolaget L M Ericsson (Publ) | Combined software installation package |
FR2880963B3 (fr) | 2005-01-19 | 2007-04-20 | Atmel Corp | Points d'arrets logiciels destines a etre utilises avec des dispositifs a memoire |
US7542784B2 (en) | 2005-02-25 | 2009-06-02 | Kleer Semiconductor Corporation | High quality, low power, wireless audio system |
US7515831B2 (en) | 2005-02-25 | 2009-04-07 | O2Micro International Ltd. | System and method for auto-configuring a telecommunication device with an embedded controller |
US20070116023A1 (en) * | 2005-11-23 | 2007-05-24 | Broadcom Corporation | Method and apparatus for dynamically configuring a generic processing module |
US7554357B2 (en) * | 2006-02-03 | 2009-06-30 | Lattice Semiconductor Corporation | Efficient configuration of daisy-chained programmable logic devices |
US7988441B2 (en) * | 2006-08-30 | 2011-08-02 | Konica Minolta Opto, Inc. | Optical element molding apparatus |
US8160056B2 (en) | 2006-09-08 | 2012-04-17 | At&T Intellectual Property Ii, Lp | Systems, devices, and methods for network routing |
US7817470B2 (en) | 2006-11-27 | 2010-10-19 | Mosaid Technologies Incorporated | Non-volatile memory serial core architecture |
US8151118B2 (en) * | 2007-01-29 | 2012-04-03 | Microsoft Corporation | Master-slave security devices |
JP2008206038A (ja) | 2007-02-22 | 2008-09-04 | Fujitsu Ltd | 分周回路 |
US20080209007A1 (en) * | 2007-02-27 | 2008-08-28 | Tekelec | Methods, systems, and computer program products for accessing data associated with a plurality of similarly structured distributed databases |
US8706914B2 (en) * | 2007-04-23 | 2014-04-22 | David D. Duchesneau | Computing infrastructure |
US7870455B2 (en) | 2007-12-12 | 2011-01-11 | Infineon Technologies Ag | System-on-chip with master/slave debug interface |
US8254355B2 (en) | 2008-09-17 | 2012-08-28 | Airhop Communications, Inc. | Method and apparatus for utilizing a second receiver to establish time and frequency |
US8234489B2 (en) | 2009-07-15 | 2012-07-31 | Arm Limited | Set of system configuration registers having shadow register |
US20110016310A1 (en) * | 2009-07-20 | 2011-01-20 | Infineon Technologies Ag | Secure serial interface with trusted platform module |
US8516551B2 (en) * | 2010-07-28 | 2013-08-20 | Intel Corporation | Providing a multi-phase lockstep integrity reporting mechanism |
US9065799B2 (en) * | 2011-04-15 | 2015-06-23 | Lockheed Martin Corporation | Method and apparatus for cyber security |
KR101766835B1 (ko) * | 2011-05-04 | 2017-08-09 | 에스프린팅솔루션 주식회사 | 화상형성장치 및 그 제어 방법 |
US9053233B2 (en) * | 2011-08-15 | 2015-06-09 | Freescale Semiconductor, Inc. | Method and device for controlling debug event resources |
US8954721B2 (en) * | 2011-12-08 | 2015-02-10 | International Business Machines Corporation | Multi-chip initialization using a parallel firmware boot process |
US11144630B2 (en) | 2011-12-30 | 2021-10-12 | Bedrock Automation Platforms Inc. | Image capture devices for a secure industrial control system |
US8995272B2 (en) | 2012-01-26 | 2015-03-31 | Brocade Communication Systems, Inc. | Link aggregation in software-defined networks |
US20140006644A1 (en) | 2012-06-28 | 2014-01-02 | Lsi Corporation | Address Remapping Using Interconnect Routing Identification Bits |
GB2500074B (en) | 2012-07-09 | 2014-08-20 | Ultrasoc Technologies Ltd | Debug architecture |
US9091727B1 (en) | 2012-10-16 | 2015-07-28 | Xilinx, Inc. | Configuration and testing of multiple-die integrated circuits |
IL224112A (en) * | 2013-01-03 | 2017-02-28 | B G Negev Tech And Applications Ltd | A method for finding non-essential flip-flops that do not require keeping the media in standby mode in the vlsi circuit |
GB2518257A (en) * | 2013-09-13 | 2015-03-18 | Vodafone Ip Licensing Ltd | Methods and systems for operating a secure mobile device |
US10440080B2 (en) * | 2013-10-18 | 2019-10-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Software-defined media platform |
US9842043B2 (en) | 2014-02-18 | 2017-12-12 | Hariprakash Agrawal | System and method to implement an electronic document based automated testing of a software application |
US9473489B2 (en) * | 2014-09-29 | 2016-10-18 | Aerohive Networks, Inc. | Private simultaneous authentication of equals |
US10025746B2 (en) * | 2014-12-20 | 2018-07-17 | Intel Corporation | High performance interconnect |
US9727679B2 (en) | 2014-12-20 | 2017-08-08 | Intel Corporation | System on chip configuration metadata |
US9430347B2 (en) | 2014-12-23 | 2016-08-30 | Intel Corporation | Delayed authentication debug policy |
US9639184B2 (en) * | 2015-03-19 | 2017-05-02 | Apple Inc. | Touch input cursor manipulation |
US10037280B2 (en) | 2015-05-29 | 2018-07-31 | Qualcomm Incorporated | Speculative pre-fetch of translations for a memory management unit (MMU) |
US10426865B2 (en) * | 2015-12-18 | 2019-10-01 | Bionutratech, Inc. | Absorbent pad that includes a fatty acid composition for odor control |
US11088876B1 (en) * | 2016-03-28 | 2021-08-10 | Marvell Asia Pte, Ltd. | Multi-chip module with configurable multi-mode serial link interfaces |
US10372883B2 (en) * | 2016-06-24 | 2019-08-06 | Scripps Networks Interactive, Inc. | Satellite and central asset registry systems and methods and rights management systems |
US10063389B2 (en) | 2016-07-07 | 2018-08-28 | Caterpillar Inc. | Identifying and configuring multiple smart devices on a CAN bus |
US11112418B1 (en) * | 2016-07-29 | 2021-09-07 | Labrador Diagnostics Llc | Systems and methods for multi-analysis |
BR112019016249A2 (pt) * | 2017-02-23 | 2020-04-07 | Maven Wireless Sweden Ab | portadoras agregadas de roteamento em um sistema de antenas distribuídas (das) |
US20190019147A1 (en) * | 2017-07-13 | 2019-01-17 | FedEx Supply Chain Logistics & Electronics, Inc. | System and method for device clearing and re-inventory |
JP6965626B2 (ja) * | 2017-08-17 | 2021-11-10 | 富士通株式会社 | ストレージ制御装置、および制御プログラム |
US10713062B2 (en) | 2017-12-07 | 2020-07-14 | Dell Products, L.P. | System and method for configuring an information handling system |
US10990294B2 (en) | 2018-03-26 | 2021-04-27 | Western Digital Technologies, Inc. | Non-volatile storage system with multi-read mode |
TWI698752B (zh) | 2018-08-22 | 2020-07-11 | 新唐科技股份有限公司 | 積體電路、匯流排系統以及其控制方法 |
TWM571980U (zh) | 2018-09-19 | 2018-12-21 | 聚晶半導體股份有限公司 | 雙鏡頭模組 |
US11082339B2 (en) * | 2018-10-12 | 2021-08-03 | Hewlett Packard Enterprise Development Lp | Domain name system (DNS) optimization for wide area networks |
US11050570B1 (en) * | 2018-11-21 | 2021-06-29 | Amazon Technologies, Inc. | Interface authenticator |
FR3093830B1 (fr) | 2019-03-11 | 2021-03-12 | St Microelectronics Rousset | Procédé de gestion d’accès à un bus partagé, et dispositif électronique correspondant |
US10917378B1 (en) * | 2019-05-21 | 2021-02-09 | Juniper Networks, Inc. | Facilitating communication between network devices of a virtual router redundancy protocol (VRRP) group |
US11144235B1 (en) * | 2019-08-07 | 2021-10-12 | Xlnx, Inc. | System and method for evaluating memory system performance |
US11182110B1 (en) * | 2019-08-21 | 2021-11-23 | Xilinx, Inc. | On-chip memory block circuit |
US11175839B1 (en) * | 2019-10-22 | 2021-11-16 | Amazon Technologies, Inc. | Independently configurable remapping for interconnect access requests |
FR3103585B1 (fr) | 2019-11-22 | 2023-04-14 | Stmicroelectronics Grand Ouest Sas | Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
FR3103586B1 (fr) * | 2019-11-22 | 2023-04-14 | St Microelectronics Alps Sas | Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
FR3103584B1 (fr) | 2019-11-22 | 2023-05-05 | St Microelectronics Alps Sas | Procédé de gestion du débogage d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
-
2019
- 2019-11-22 FR FR1913124A patent/FR3103586B1/fr active Active
-
2020
- 2020-11-18 US US16/951,198 patent/US11700174B2/en active Active
- 2020-11-23 CN CN202011319314.XA patent/CN112948321B/zh active Active
-
2023
- 2023-05-22 US US18/321,516 patent/US11962462B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120239895A1 (en) * | 2010-09-21 | 2012-09-20 | Texas Instruments Incorporated | Memory Management Unit that Applies Rules Based on Privilege Identifier |
US20120079590A1 (en) * | 2010-09-24 | 2012-03-29 | Sastry Manoj R | Method for enforcing resource access control in computer systems |
FR3003054A1 (fr) * | 2013-03-06 | 2014-09-12 | Sagem Defense Securite | Procede et dispositif de filtrage de transactions pour systeme sur puce |
US9946674B2 (en) * | 2016-04-28 | 2018-04-17 | Infineon Technologies Ag | Scalable multi-core system-on-chip architecture on multiple dice for high end microcontroller |
US10176131B1 (en) * | 2017-09-27 | 2019-01-08 | Xilinx, Inc. | Controlling exclusive access using supplemental transaction identifiers |
US20190303328A1 (en) * | 2018-04-03 | 2019-10-03 | Xilinx, Inc. | System-on-chip interface architecture |
Non-Patent Citations (1)
Title |
---|
VENKATESWARA RAO: "A Frame work on AMBA bus based Communication Architecture to improve the Real Time Computing Performance in MPSoC", INTERNATIONAL JOURNAL OF COMPUTER APPLICATIONS, vol. 91, no. 5, April 2014 (2014-04-01), pages 0975 - 8887 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220045901A1 (en) * | 2020-08-07 | 2022-02-10 | Arris Enterprises Llc | Electronic device, method for electronic device, computer readable medium, and apparatus |
FR3129499A1 (fr) | 2021-11-25 | 2023-05-26 | STMicroelectronics (Grand Ouest) SAS | Gestion dynamique d’un pare-feu de mémoire |
FR3129502A1 (fr) | 2021-11-25 | 2023-05-26 | STMicroelectronics (Alps) SAS | Gestion d’un pare-feu de mémoire dans un système sur puce |
EP4187391A1 (fr) | 2021-11-25 | 2023-05-31 | STMicroelectronics (ALPS) SAS | Gestion d'un pare-feu de mémoire dans un système sur puce |
EP4187393A1 (fr) | 2021-11-25 | 2023-05-31 | STMicroelectronics (Grand Ouest) SAS | Gestion dynamique d'un pare-feu de mémoire |
EP4375846A1 (fr) | 2022-11-25 | 2024-05-29 | STMicroelectronics (ALPS) SAS | Système sur puce comportant un système d'isolation des ressources et procédé de gestion de l'isolation des ressources correspondant |
EP4375845A1 (fr) | 2022-11-25 | 2024-05-29 | STMicroelectronics (Grand Ouest) SAS | Procédé de gestion de l'isolation de ressources d'un système sur puce, et système sur puce correspondant |
FR3142569A1 (fr) | 2022-11-25 | 2024-05-31 | STMicroelectronics (Grand Ouest) SAS | Procédé de gestion de l’isolation de ressources d’un système sur puce, et système sur puce correspondant. |
FR3142570A1 (fr) | 2022-11-25 | 2024-05-31 | STMicroelectronics (Alps) SAS | Système sur puce comportant un système d’isolation des ressources et procédé de gestion de l’isolation des ressources correspondant. |
Also Published As
Publication number | Publication date |
---|---|
CN112948321A (zh) | 2021-06-11 |
US20230291645A1 (en) | 2023-09-14 |
US11962462B2 (en) | 2024-04-16 |
CN112948321B (zh) | 2024-03-05 |
FR3103586B1 (fr) | 2023-04-14 |
US20210160134A1 (en) | 2021-05-27 |
US11700174B2 (en) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR3103586A1 (fr) | Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant | |
FR3103585A1 (fr) | Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant | |
EP1939753B1 (fr) | Protection de zones mémoire | |
CN109416657B (zh) | 在空中固件更新期间的容错变量区域重新铺设 | |
FR3103584A1 (fr) | Procédé de gestion du débogage d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant | |
EP1643344B1 (fr) | Procédé de gestion des licenses des logiciels exécutées sur des plateformes partionnables d'un système à processeurs multiples | |
EP2839408A1 (fr) | Procede de gestion securisee d'un espace memoire pour microcontroleur | |
FR2893156A1 (fr) | Procede et systeme de calcul intensif multitache et multiflot en temps reel. | |
WO2011020954A2 (fr) | COMPOSANT LOGICIEL ET DISPOSITIF POUR LE TRAITEMENT AUTOMATISÉ DE DONNÉES MULTI-USAGES, METTANT EN œUVRE DES FONCTIONS AVANT BESOIN DE DIFFÉRENTS NIVEAUX DE SÛRETÉ OU LIMITES DE RESPONSABILITÉ | |
US20220156217A1 (en) | Method for managing the operation of a system on chip, and corresponding system on chip | |
EP2466470A1 (fr) | Module matériel de sécurité et procédé de traitement dans un tel module | |
CN114363295A (zh) | 一种租户服务器的管理方法及装置 | |
FR3054902B1 (fr) | Procede et dispositif de distribution de partitions sur un processeur multi-coeurs | |
EP1942417B1 (fr) | Circuit de protection de zones mémoire | |
EP4187393A1 (fr) | Gestion dynamique d'un pare-feu de mémoire | |
EP1594065A1 (fr) | Système sur une puce avec unité d'arbitrage, et clé de stockage l'incorporant | |
FR3089656A1 (fr) | Procédé et dispositif de contrôle d'accès à une ressource partagée entre tâches logicielles exécutées dans un contexte applicatif prédéterminé | |
FR3057081B1 (fr) | Processeur comprenant une pluralite de coeurs de calcul | |
US7386774B1 (en) | Memory unit with controller managing memory access through JTAG and CPU interfaces | |
WO2013110816A2 (fr) | Procédé d'utilisation d'une mémoire partagée | |
CA2278664C (fr) | Procede et dispositif de traitement de plusieurs applications techniques avec pour chacune d'elles la surete qui lui est propre | |
EP4187391A1 (fr) | Gestion d'un pare-feu de mémoire dans un système sur puce | |
EP3648491B1 (fr) | Element securise multi-configurations et procede associe | |
EP4187392A1 (fr) | Procédé de gestion d'une mémoire au sein d'un système sur puce | |
EP1250645B1 (fr) | Systeme de gestion de peripheriques dans un circuit integre |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20210528 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |
|
PLFP | Fee payment |
Year of fee payment: 5 |