FR3103585A1 - 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 - Google Patents
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 Download PDFInfo
- Publication number
- FR3103585A1 FR3103585A1 FR1913126A FR1913126A FR3103585A1 FR 3103585 A1 FR3103585 A1 FR 3103585A1 FR 1913126 A FR1913126 A FR 1913126A FR 1913126 A FR1913126 A FR 1913126A FR 3103585 A1 FR3103585 A1 FR 3103585A1
- Authority
- FR
- France
- Prior art keywords
- slave
- chip
- master
- slave resource
- configuration
- 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- 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 OR CALCULATING; 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/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- 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
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)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (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.
Une première ressource esclave particulière (PH4) coopère avec un élément (EL4) du système sur puce, par exemple un générateur de signal d’horloge, et cet élément EL4 a les mêmes droits d’accès que ceux de la première ressource esclave particulière correspondante.
Figure pour l’abrégé : Fig 19
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, notamment la gestion du fonctionnement d’un tel système sur puce et plus particulièrement la gestion de la configuration des accès à des périphériques du système sur puce et à leurs ressources associées.
Une ressource associée à un périphérique est un élément du système sur puce, par exemple un générateur de signal d’horloge, coopérant avec le périphérique lors du fonctionnement du 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).
Il existe tout particulièrement un besoin de proposer une gestion de la configuration des accès à des périphériques et à leurs ressources (ou éléments) associées, par exemple mais non limitativement des générateurs de signaux d’horloges, de signaux de réinitialisation (reset), de signaux d’alimentation, permettant une simplification de programmation, de débogage du système sur puce tout en assurant une cohérence dans la configuration globale du système sur puce.
Selon un aspect, il est proposé un système sur puce, par exemple un microcontrôleur, 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»).
Par ailleurs au moins un équipement maître peut être contrôlable par un microprocesseur et comporte un port de sortie capable d’émettre des transactions ainsi qu’un port d’entrée capable de recevoir des transactions.
Ledit port d’entrée est alors considéré comme une ressource esclave et le port de sortie comme un équipement maître
Les ressources esclaves comportent une première ressource esclave particulière couplée à au moins un élément du système sur puce destiné à coopérer avec ladite première ressource esclave particulière lors du fonctionnement du système sur puce.
Bien entendu le système sur puce peut comporter en général plusieurs premières ressources esclaves particulières couplées à plusieurs éléments du système sur puce.
A titre d’exemple non limitatif, une première ressource esclave particulière appartient au groupe formé par un périphérique, une fonctionnalité d’un périphérique, et un port d’entrée d’un équipement maître contrôlable par un microprocesseur.
A titre d’exemple non limitatif ledit au moins un élément appartient au groupe formé par un générateur d’au moins un signal d’horloge, un générateur d’au moins un signal de réinitialisation, un bloc d’alimentation et au moins une broche configurable d’entrée/sortie du système sur puce.
Le système sur puce comporte par ailleurs un circuit d’interconnexion (connu par l’homme du métier sous la dénomination anglosaxonne «interconnect») couplé entre les équipements maîtres, les ressources esclaves et le ou lesdits éléments et capable de router des transactions (par exemple des transactions d’écriture ou de lecture) entre des équipements maîtres, des ressources esclaves et le ou lesdits éléments.
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 affectées aux équipements maîtres, aux ressources esclaves ainsi qu’audit au moins un élément.
L’ensemble d’informations de configuration 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.
Les informations de configuration affectées audit au moins un élément sont identiques aux informations de configuration affectées à ladite première ressource esclave particulière.
Ainsi toutes les ressources ou éléments du système sur puce par exemple utilisés par ou associés à un périphérique ont les mêmes droits d’accès que le périphérique.
Il y a, en d’autres termes, un héritage au niveau de chaque élément des informations de configuration affectées à la ressource esclave particulière qui lui est couplé et avec qui elle coopère lors du fonctionnement du circuit intégré.
Cette unique configuration entre une ressource esclave et le ou les éléments qui lui sont couplés, simplifie ainsi la programmation du système sur puce, le débogage et assure une cohérence de configuration.
Selon un mode de réalisation, le système comprend,
-un jeu de registres de configuration affecté à chaque ressource esclave et à chaque équipement maître, le jeu de registres de configuration affecté à une ressource esclave étant destiné à stocker les différentes informations de configuration affectées à cette ressource esclave, et
-un contrôleur de configuration configuré pour mettre à jour les contenus des jeux de registres de configuration avec ledit ensemble d’informations de configuration sous le contrôle d’un premier équipement maître dit gestionnaire.
-un jeu de registres de configuration affecté à chaque ressource esclave et à chaque équipement maître, le jeu de registres de configuration affecté à une ressource esclave étant destiné à stocker les différentes informations de configuration affectées à cette ressource esclave, et
-un contrôleur de configuration configuré pour mettre à jour les contenus des jeux de registres de configuration avec ledit ensemble d’informations de configuration sous le contrôle d’un premier équipement maître dit gestionnaire.
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 à un élément couplé à une première ressource esclave particulière est bien autorisée à accéder à cet élément, en utilisant ladite au moins une information de configuration jointe à ladite transaction ainsi que les informations de configuration affectées à cette première ressource esclave particulière.
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 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 et pour chaque élément, un module de vérification élémentaire configuré pour accéder aux informations de configuration affectées à la première ressource esclave particulière correspondante.
On a donc là 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 connecté par une liaison dédiée au jeu de registres de configuration affectés à cette ressource esclave et chaque module de vérification élémentaire affecté à élément est connecté par une liaison dédiée au jeu de registres de configuration affectés à la première ressource esclave particulière correspondante.
Ces liaisons spécifiques, par exemple des pistes métalliques, permettent d’éviter l’utilisation des bus du système sur puce.
Ledit ensemble d’informations de configuration comprend par exemple au moins une information d’identification affectée à chaque équipement maître.
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 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, 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é.
Ainsi l’ensemble d’informations de configuration du 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.
Selon un mode de réalisation, 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 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.
Selon un mode de réalisation, 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 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.
-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, et
-l’information d’identification correspondante.
Selon un mode de réalisation, 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 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 des informations d’identification des équipements maîtres correspondants.
-une deuxième 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 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 réalisation, 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 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.
-une troisième information 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.
Selon un mode de réalisation, 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é destinée à indiquer si cette ressource esclave est accessible par un équipement maître en mode sécurisé ou non.
Selon un mode de réalisation, 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 destinée à indiquer si cette ressource esclave est accessible par un équipement maître en mode privilégié ou non.
La notion de mode sécurisé ou de mode privilégié est bien connue de l’homme du métier
Dans ce qui précède, un ou plusieurs éléments coopèrent par exemple avec une seule ressource esclave.
Cela étant le système sur puce peut comporter d’autres ressources esclaves, appelées ici deuxièmes ressources esclaves particulières, par exemple des canaux d’un contrôleur DMA, susceptibles d’être accédées par plusieurs équipements maîtres, mais partageant au moins un même élément.
Par exemple un seul générateur de signal d’horloge et un seul générateur de signal de réinitialisation peuvent être affectés au contrôleur DMA et donc partagés par tous les canaux DMA.
Et en particulier pour des raisons de sécurité, il est hautement préférable de sélectionner celui des équipements maîtres qui va pouvoir avoir accès à ces générateurs, de façon à par exemple interdire à des équipements maîtres présentant un degré de sécurité moindre, de contrôler ces générateurs de signaux d’horloge et de réinitialisation.
Ainsi, selon un mode de réalisation, les ressources esclaves comportent plusieurs deuxièmes ressources esclaves particulières couplées au moins à un même élément du système sur puce, et susceptibles d’être accédées par plusieurs équipements maîtres, et les moyens de traitement comportant des moyens de sélection configurés pour sélectionner l’équipement maître autorisé à accéder audit au moins un même élément.
Les moyens de sélection peuvent comporter au moins un registre de sélection configuré pour stocker l’information d’identification de l’équipement maître autorisé à accéder audit au moins un même élément.
Le contrôleur de configuration est avantageusement également configuré pour mettre à jour le contenu du ou des registres de sélection.
Les moyens de vérification sont avantageusement également configurés pour vérifier si une transaction émanant d’un équipement maître et destinée audit au moins un même élément, est bien autorisée à accéder à ce même élément, en utilisant ladite au moins une information de configuration jointe à ladite transaction ainsi que le contenu du ou des registres de sélection.
Selon un mode de réalisation les moyens de vérification comportent pour chaque même élément un module de vérification élémentaire configuré pour accéder au contenu du ou des registres de sélection.
Et le module de vérification élémentaire est avantageusement connecté au ou aux registres de sélection par une liaison spécifique.
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 comportant une première ressource esclave particulière couplée à au moins un élément du système sur puce coopérant avec ladite première ressource esclave particulière lors du fonctionnement du système sur puce, un circuit d’interconnexion couplé entre les équipements maîtres et les ressources esclaves et le ou lesdits éléments et capable de router des transactions entre des équipements maîtres, des ressources esclaves et le ou lesdits éléments, 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 affectées aux équipements maîtres, aux ressources esclaves ainsi qu’audit au moins un élément, 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, les informations de configuration affectées audit au moins un élément étant identiques aux informations de configuration affectées à ladite première ressource esclave particulière, 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 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 affectées aux équipements maîtres, aux ressources esclaves ainsi qu’audit au moins un élément, 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, les informations de configuration affectées audit au moins un élément étant identiques aux informations de configuration affectées à ladite première ressource esclave particulière, 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 un adressage des ressources esclaves sans utiliser l’ensemble de ces informations de configuration.
Selon un mode de mise en œuvre, le procédé comprend un couplage de plusieurs premières ressources esclaves particulières à plusieurs éléments du système sur puce.
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,
-au moins un équipement maître est contrôlable par un microprocesseur et comporte un port de sortie capable d’émettre des transactions ainsi qu’un port d’entrée 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,
-une première ressource esclave particulière appartient au groupe formé par un périphérique, une fonctionnalité d’un périphérique, et un port d’entrée d’un équipement maître contrôlable par un microprocesseur, et
-ledit au moins un élément appartient au groupe formé par un générateur d’au moins un signal d’horloge, un générateur d’au moins un signal de réinitialisation, un bloc d’alimentation et au moins une broche configurable d’entrée/sortie du système sur puce.
-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,
-au moins un équipement maître est contrôlable par un microprocesseur et comporte un port de sortie capable d’émettre des transactions ainsi qu’un port d’entrée 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,
-une première ressource esclave particulière appartient au groupe formé par un périphérique, une fonctionnalité d’un périphérique, et un port d’entrée d’un équipement maître contrôlable par un microprocesseur, et
-ledit au moins un élément appartient au groupe formé par un générateur d’au moins un signal d’horloge, un générateur d’au moins un signal de réinitialisation, un bloc d’alimentation et au moins une broche configurable d’entrée/sortie du système sur puce.
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 d’un premier équipement maître dit gestionnaire.
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 à un élément couplé à une première ressource esclave particulière est bien autorisée à accéder à cet élément, ladite vérification comportant l’utilisation de ladite au moins une information de configuration jointe à ladite transaction ainsi que les informations de configuration affectées à cette première ressource esclave particulière.
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, et au niveau de chaque élément à partir des informations de configuration affectées à la première ressource esclave particulière correspondante.
Selon un mode de mise en œuvre ledit ensemble d’informations de configuration comprend au moins une information d’identification affectée à chaque équipement maître.
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 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.
-une troisième information 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.
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 les ressources esclaves comportent plusieurs deuxièmes ressources esclaves particulières couplées au moins à un même élément du système sur puce, et susceptibles d’être accédées par plusieurs équipements maîtres, et la phase de configuration comporte une sélection de l’équipement maître autorisé à accéder audit au moins un même élément.
Selon un mode de mise en œuvre, le procédé comprend un stockage de l’information d’identification de l’équipement maître autorisé à accéder audit au moins un même élément.
Selon un mode de mise en œuvre ladite vérification comprend également une vérification supplémentaire qu’une transaction émanant d’un équipement maître et destinée audit au moins un même élément, est bien autorisée à accéder à ce même élément, en utilisant ladite au moins une information de configuration jointe à ladite transaction ainsi que l’information d’identification de l’équipement maître autorisé à accéder audit au moins un même élément.
Selon un mode de mise en œuvre ladite vérification supplémentaire est effectuée localement au niveau de chaque même élément.
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:
illustrent de façon schématique des modes de mise en œuvre et de réalisation de l’invention.
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.
Outre ce qui vient d’être décrit, parmi les ressources esclaves, le périphérique PH4 est dans cet exemple, couplé à un élément EL4 destiné à coopérer avec le périphérique PH4 lors du fonctionnement du système sur puce.
Une telle ressource esclave est désignée dans la suite par l’expression «première ressource esclave particulière».
Bien entendu alors que pour des raisons de simplification de la figure, une seule première ressource esclave particulière PH4 a été représentée, certaines d’entre elles ou toutes les ressources esclaves peuvent être considérées comme des premières ressources esclaves particulières.
L’élément EL4 est par exemple un générateur de signal d’horloge ou un générateur de signal de réinitialisation sans que ces deux exemples ne soient limitatifs et exhaustifs.
On reviendra plus en détails ci-après sur la particularité d’un tel couplage entre un élément et une première ressource esclave particulière, mais on peut d’ores et déjà dire que des informations de configuration sont affectées à un tel élément et sont identiques à celles affectées à la première ressource esclave particulière coopérant avec cet élément.
A cet égard le système sur puce comporte également, associé à cet élément EL4, un module de vérification élémentaire RISUL4 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 là encore ce module de vérification élémentaire fait partie des moyens de vérification destinés à vérifier si une transaction destinée à cet élément est bien autorisée à accéder à cet élément.
A cet égard ce module de vérification élémentaire RISUL4 est connecté au jeu de registres de configuration RGCS4 affecté au périphérique PH4 par une liaison spécifique, par exemple des pistes métalliques.
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.
Un tel équipement maître peut aussi être un contrôleur d’accès direct en mémoire (DMA).
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.
Ainsi, lorsqu’un autre microprocesseur prend le contrôle d’un tel équipement maître LMk, 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é.
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.
On se réfère maintenant plus particulièrement aux figures 19 et 20 pour décrire le cas de la première ressource esclave particulière PH4 couplée à l’élément EL4 et coopérant avec celui-ci lors du fonctionnement du système sur puce MCU.
Bien entendu plusieurs éléments de nature différente pourraient être couplés au périphérique.
Chaque élément peut être par exemple un générateur d’au moins un signal d’horloge, un générateur d’au moins un signal de réinitialisation, un bloc d’alimentation ou au moins une broche configurable d’entrée/sortie du système sur puce.
Cet élément est susceptible de recevoir une transaction TR du type écriture.
Dans le cas d’un générateur de signal d’horloge la transaction peut par exemple comporter une indication visant à modifier la fréquence du ou des signaux d’horloge ou arrêter le générateur.
Dans le cas d’un générateur de signal de réinitialisation, la transaction peut par exemple comporter une indication visant à commander le générateur pour qu’il délivre effectivement le signal de réinitialisation.
Dans le cas d’un bloc d’alimentation, la transaction peut par exemple comporter une indication visant à commander l’arrêt ou le démarrage du bloc.
Dans le cas d’une une broche configurable d’entrée/sortie du système sur puce, la transaction peut par exemple viser à écrire un ou des bits dans des registres classiquement associés à une broche et destinés à configurer la broche (entrée, sortie) ou son routage au sein du système sur puce.
Comme indiqué ci-avant, les informations de configuration affectées à l’élément EL4 sont identiques aux informations de configuration affectées à la première ressource esclave particulière PH4.
Ainsi et plus généralement, toutes les ressources ou éléments du système sur puce utilisés par exemple par un périphérique ont les mêmes droits d’accès que le périphérique.
Il y a, en d’autres termes, un héritage au niveau de chaque élément des informations de configuration affectées à la ressource esclave particulière qui lui est couplé et avec qui elle coopère lors du fonctionnement du circuit intégré.
Cette unique configuration entre une ressource esclave et le ou les éléments qui lui sont couplés, simplifie ainsi la programmation du système sur puce, le débogage et assure une cohérence de configuration.
Plus précisément et comme illustré sur la figure 19, les moyens de vérification comportent avantageusement pour élément EL4, un module de vérification élémentaire RISUL4, par exemple de structure analogue au module de vérification élémentaire RISU, et configuré pour accéder aux informations de configuration affectées au périphérique PH4.
A cet égard, le module de vérification élémentaire RISUL4 est connecté par une liaison dédiée LDSL4 au jeu de registres de configuration RGCS4 affectés au périphérique PH4.
Pendant la phase de fonctionnement PHF du système sur puce, une transaction TR destinée à l’élément EL4 est analysée (figure 20) par le module RISUL4 en utilisant les informations de configuration contenues dans la transaction TR et celles contenues dans jeu de registres de configuration RGCS4 affectés au périphérique PH4.
Ceci permet de vérifier dans l’étape 260 l’autorisation d’accès de cette transaction TR à l’élément EL4 et d’effectuer par exemple ultérieurement des étapes analogues aux étapes 161 à 167 de la figure 16.
Sur la figure 19, un ou plusieurs éléments coopèrent avec une seule ressource esclave.
Cela étant le système sur puce peut comporter d’autres ressources esclaves, appelées ici deuxièmes ressources esclaves particulières, par exemple des canaux d’un contrôleur DMA, susceptibles d’être accédées par plusieurs équipements maîtres, mais partageant au moins un même élément.
Par exemple, comme illustré sur la figure 21, un seul générateur EL10 de signal de réinitialisation est affecté au contrôleur DMA et donc partagé par tous les canaux DMA CH101-CH108 qui sont ici désignés comme étant les deuxièmes ressources esclaves particulières.
Bien entendu d’autres éléments pourraient être partagés par tous les canaux DMA.
Les canaux DMA CH101-CH108 sont respectivement affectés de modules de vérification élémentaires RISU101-RISU108 respectivement couples aux registres de configuration correspondants RGCS101-RGCS108.
Et ici au moins deux des canaux DMA sont ici susceptibles d’être accédés par des équipements maîtres différents, par exemple le microprocesseur CPU1, ayant l’information d’identification CID1, et le microprocesseur CPU2, ayant l’information d’identification CID2.
Et en particulier pour des raisons de sécurité, il est hautement préférable de sélectionner celui des équipements maîtres qui va pouvoir avoir accès à ce générateur, de façon à par exemple interdire à des équipements maîtres présentant un degré de sécurité moindre, de contrôler ce générateur EL10.
Ainsi par exemple on désire que seul le microprocesseur puisse avoir accès à l’élément EL10.
A cet égard il est avantageusement prévu que les moyens de traitement comportent des moyens de sélection configurés pour sélectionner l’équipement maître autorisé à accéder à ce même élément EL10.
Les moyens de sélection comportent ici au moins un registre de sélection RGSEL configuré pour stocker l’information d’identification CID1 de l’équipement maître autorisé à accéder à ce même élément EL10.
Le contrôleur de configuration RIFC est avantageusement également configuré pour mettre à jour le contenu du ou des registres de sélection RGSEL.
Les moyens de vérification comportent pour le même élément EL10 un module de vérification élémentaire RISUL10 configuré pour accéder au contenu du ou des registres de sélection RGSEL.
Et le module de vérification élémentaire RISUL10 est avantageusement connecté au ou aux registres de sélection RGSEL par une liaison spécifique LDSL10.
Comme illustré sur la figure 22, les moyens de vérification sont avantageusement également configurés pour vérifier lors de la phase de fonctionnement PHF si une transaction TR émanant d’un équipement maître et destinée audit même élément EL10 est bien autorisée à accéder à ce même élément, en utilisant ladite au moins une information de configuration jointe à ladite transaction ainsi que le contenu du ou des registres de sélection RGSEL.
Plus précisément, lors de la phase de configuration PHCFG, l’équipement maître autorisé à accéder à l’élément EL10 est sélectionné (étape 2100) et son information d’identification CID1 est stockée dans le registre RGSEL.
Il convient de noter que cette sélection peut être fixée et non modifiable ou bien programmable.
Dans la phase de fonctionnement PHF, la transaction TR est analysée par le module RISUL10 en utilisant l’information d’identification CID contenue dans la transaction TR et celle, CID1, contenue dans le registre de sélection RGSEL (étape 2102).
En cas de concordance l’accès à l’élément EL10 est autorisée (étape 2103), sinon l’accès est refusé (étape 2104).
Il convient de noter que la présente invention est compatible avec l’invention décrite dans la demande de brevet français déposée aux noms des sociétés STMicroelectronics (Alps) SAS et STMicroelectronics (Grand Ouest) SAS, le même jour que la présente demande et ayant pour titre«Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant»
Claims (43)
- Système sur puce, comprenant plusieurs équipements maîtres, plusieurs ressources esclaves comportant une première ressource esclave particulière (PH4) couplée à au moins un élément (EL4) du système sur puce destiné à coopérer avec ladite première ressource esclave particulière lors du fonctionnement du système sur puce, un circuit d’interconnexion (INTC) couplé entre les équipements maîtres, les ressources esclaves et le ou lesdits éléments et capable de router des transactions entre des équipements maîtres, des ressources esclaves et le ou lesdits éléments, 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 affectées aux équipements maîtres, aux ressources esclaves ainsi qu’audit au moins un élément, l’ensemble d’informations de configuration étant utilisé pour définir une assignation d’au moins un équipement maître à certaines au moins des ressources esclaves, les informations de configuration affectées audit au moins un élément étant identiques aux informations de configuration affectées à ladite première ressource esclave particulière.
- Système sur puce selon la revendication 1, comprenant plusieurs premières ressources esclaves particulières couplées à plusieurs éléments du système sur puce (MCU).
- Système sur puce selon la revendication 1 ou 2, 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,
-au moins un équipement maître (LMk) est contrôlable par un microprocesseur et 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,
-une première ressource esclave particulière appartient au groupe formé par un périphérique, une fonctionnalité d’un périphérique, et un port d’entrée d’un équipement maître contrôlable par un microprocesseur, et
-ledit au moins un élément (EL4) appartient au groupe formé par un générateur d’au moins un signal d’horloge, un générateur d’au moins un signal de réinitialisation, un bloc d’alimentation et au moins une broche configurable d’entrée/sortie du système sur puce. - Système sur puce selon l’une des revendications précédentes, comprenant,
-un jeu de registres de configuration affecté à chaque ressource esclave et à chaque équipement maître, le jeu de registres de configuration affecté à une ressource esclave étant destiné à stocker les différentes informations de configuration affectées à cette ressource esclave, 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 d’un premier équipement maître dit gestionnaire. - 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 (RISUL4) configurés pour vérifier si une transaction émanant d’un équipement maître et destinée à un élément couplé à une première ressource esclave particulière est bien autorisée à accéder à cet élément, en utilisant ladite au moins une information de configuration jointe à ladite transaction ainsi que les informations de configuration affectées à cette première ressource esclave particulière.
- Système sur puce selon la revendication 5, 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 5 ou 6, 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 et pour chaque élément (EL4), un module de vérification élémentaire (RISUL4) configuré pour accéder aux informations de configuration affectées à la première ressource esclave particulière correspondante.
- Système sur puce selon la revendication 7, 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 et chaque module de vérification élémentaire (RISUL4) affecté à élément est connecté par une liaison dédiée (LDSL4) au jeu de registres de configuration (RGCS4) affectés à la première ressource esclave particulière correspondante (PH4).
- Système sur puce selon l’une des revendications précédentes, dans lequel ledit ensemble d’informations de configuration comprend au moins une information d’identification (CID) affectée à chaque équipement maître.
- Système sur puce selon la revendication9, 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 9 ou 10, 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 11, 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 12, 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 13, 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 9 à 14, 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 9 à 15, 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 les ressources esclaves comportent plusieurs deuxièmes ressources esclaves particulières (CH101-CH108) couplées au moins à un même élément (EL10) du système sur puce, et susceptibles d’être accédées par plusieurs équipements maîtres, et les moyens de traitement comportant des moyens de sélection configurés pour sélectionner l’équipement maître autorisé à accéder audit au moins un même élément.
- Système sur puce selon les revendications 9 et 17, dans lequel les moyens de sélection comportent au moins un registre de sélection (RGSEL) configuré pour stocker l’information d’identification (CID) de l’équipement maître autorisé à accéder audit au moins un même élément.
- Système sur puce selon les revendications 4 et 18, dans lequel le contrôleur de configuration (RIFC) est également configuré pour mettre à jour le contenu du ou des registres de sélection.
- Système sur puce selon la revendication 18 ou 19 prise en combinaison avec la revendication 5, dans lequel les moyens de vérification sont également configurés pour vérifier si une transaction émanant d’un équipement maître et destinée audit au moins un même élément est bien autorisée à accéder à ce même élément (EL10), en utilisant ladite au moins une information de configuration jointe à ladite transaction ainsi que le contenu du ou des registres de sélection.
- Système sur puce selon la revendication 20, dans lequel les moyens de vérification comportent pour chaque même élément un module de vérification élémentaire (RISUL10) configuré pour accéder au contenu du ou des registres de sélection.
- Système sur puce selon la revendication 21, dans lequel le module de vérification élémentaire est connecté au ou aux registres de sélection par une liaison spécifique (LDSL10).
- 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 comportant une première ressource esclave particulière couplée à au moins un élément du système sur puce coopérant avec ladite première ressource esclave particulière lors du fonctionnement du système sur puce, un circuit d’interconnexion couplé entre les équipements maîtres et les ressources esclaves et le ou lesdits éléments et capable de router des transactions entre des équipements maîtres, des ressources esclaves et le ou lesdits éléments, 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 affectées aux équipements maîtres, aux ressources esclaves ainsi qu’audit au moins un élément, 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, les informations de configuration affectées audit au moins un élément étant identiques aux informations de configuration affectées à ladite première ressource esclave particulière, 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 un adressage des ressources esclaves sans utiliser l’ensemble de ces informations de configuration. - Procédé selon la revendication 24, comprenant un couplage de plusieurs premières ressources esclaves particulières à plusieurs éléments du système sur puce.
- Procédé selon la revendication 24 ou 25, 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,
-au moins un équipement maître (LMk) est contrôlable par un microprocesseur et 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,
-une première ressource esclave particulière appartient au groupe formé par un périphérique, une fonctionnalité d’un périphérique, et un port d’entrée d’un équipement maître contrôlable par un microprocesseur, et
-ledit au moins un élément appartient au groupe formé par un générateur d’au moins un signal d’horloge, un générateur d’au moins un signal de réinitialisation, un bloc d’alimentation et au moins une broche configurable d’entrée/sortie du système sur puce. - Procédé selon l’une des revendications 24 à 26, comprenant une mise à jour des informations de configuration affectées à chaque ressource esclave et à chaque équipement maître, sous le contrôle d’un premier équipement maître dit gestionnaire (EMG).
- Procédé selon l’une des revendications 24 à 27, 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 à un élément (EL4) couplé à une première ressource esclave particulière (PH4) est bien autorisée à accéder à cet élément, ladite vérification comportant l’utilisation de ladite au moins une information de configuration jointe à ladite transaction ainsi que les informations de configuration affectées à cette première ressource esclave particulière.
- Procédé selon la revendication 28, dans lequel ladite vérification est effectuée en aval du circuit d’interconnexion (INTC).
- Procédé selon l’une des revendications 28 à 29, 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, et au niveau de chaque élément à partir des informations de configuration affectées à la première ressource esclave particulière correspondante.
- Procédé selon l’une des revendications 24 à 30, dans lequel ledit ensemble d’informations de configuration comprend au moins une information d’identification (CID) affectée à chaque équipement maître.
- Procédé selon la revendication 31, 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 31 ou 32, 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 33, 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 34, 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 35, 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 31 à 36, 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 31 à 37, 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 24 à 38, dans lequel les ressources esclaves comportent plusieurs deuxièmes ressources esclaves particulières (CH101-CH108) couplées au moins à un même élément (EL10) du système sur puce, et susceptibles d’être accédées par plusieurs équipements maîtres, et la phase de configuration comporte une sélection de l’équipement maître autorisé à accéder audit au moins un même élément.
- Procédé selon les revendications 31 et 39, comprenant un stockage de l’information d’identification (CID1) de l’équipement maître autorisé à accéder audit au moins un même élément.
- Procédé selon la revendication 39 ou 40 prise en combinaison avec la revendication 28, dans lequel ladite vérification comprend également une vérification supplémentaire qu’une transaction émanant d’un équipement maître et destinée audit au moins un même élément est bien autorisée à accéder à ce même élément, en utilisant ladite au moins une information de configuration jointe à ladite transaction ainsi que l’information d’identification (CID1) de l’équipement maître autorisé à accéder audit au moins un même élément.
- Procédé selon la revendication 41, dans lequel ladite vérification supplémentaire est effectuée localement au niveau de chaque même élément (EL10).
- Procédé selon l’une des revendications 24 à 42, dans lequel le système sur puce forme un microcontrôleur (MCU) ou un microprocesseur.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1913126A FR3103585B1 (fr) | 2019-11-22 | 2019-11-22 | 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 |
| US17/100,505 US11876732B2 (en) | 2019-11-22 | 2020-11-20 | Method for managing the configuration of access to peripherals and their associated resources of a system on chip, and corresponding system on chip |
| CN202011322375.1A CN112835846B (zh) | 2019-11-22 | 2020-11-23 | 片上系统 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1913126 | 2019-11-22 | ||
| FR1913126A FR3103585B1 (fr) | 2019-11-22 | 2019-11-22 | 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 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| FR3103585A1 true FR3103585A1 (fr) | 2021-05-28 |
| FR3103585B1 FR3103585B1 (fr) | 2023-04-14 |
Family
ID=70295215
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| FR1913126A Active FR3103585B1 (fr) | 2019-11-22 | 2019-11-22 | 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 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11876732B2 (fr) |
| CN (1) | CN112835846B (fr) |
| FR (1) | FR3103585B1 (fr) |
Families Citing this family (7)
| 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 |
| 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 |
| US12373374B2 (en) | 2019-11-22 | 2025-07-29 | STMicroelectronics (Grand Ouest) 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 |
| FR3129502B1 (fr) * | 2021-11-25 | 2024-08-30 | St Microelectronics Alps Sas | Gestion d’un pare-feu de mémoire dans un système sur puce |
| FR3142570B1 (fr) * | 2022-11-25 | 2025-07-18 | St Microelectronics 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. |
| FR3155075B1 (fr) * | 2023-11-03 | 2025-10-24 | St Microelectronics Int Nv | Identification de processeurs |
Citations (5)
| 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 |
| WO2016099812A1 (fr) * | 2014-12-20 | 2016-06-23 | Intel Corporation | Métadonnées de configuration de système sur puce |
| US10176131B1 (en) * | 2017-09-27 | 2019-01-08 | Xilinx, Inc. | Controlling exclusive access using supplemental transaction identifiers |
Family Cites Families (55)
| 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 |
| US6145041A (en) | 1998-04-24 | 2000-11-07 | Alcatel Usa Sourcing, Lp | Remote multi-level control bus |
| 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 |
| US7023979B1 (en) * | 2002-03-07 | 2006-04-04 | Wai Wu | Telephony control system with intelligent call routing |
| 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 |
| US7010722B2 (en) | 2002-09-27 | 2006-03-07 | Texas Instruments Incorporated | Embedded symmetric multiprocessor system debug |
| 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 |
| US7515831B2 (en) | 2005-02-25 | 2009-04-07 | O2Micro International Ltd. | System and method for auto-configuring a telecommunication device with an embedded controller |
| US7542784B2 (en) * | 2005-02-25 | 2009-06-02 | Kleer Semiconductor Corporation | High quality, low power, wireless audio system |
| 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 |
| KR101377787B1 (ko) | 2006-08-30 | 2014-03-25 | 코니카 미놀타 어드밴스드 레이어즈 인코포레이티드 | 광학 소자 성형 장치 |
| 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 | 分周回路 |
| 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 | 에스프린팅솔루션 주식회사 | 화상형성장치 및 그 제어 방법 |
| 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 |
| 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 |
| US10025746B2 (en) * | 2014-12-20 | 2018-07-17 | Intel Corporation | High performance interconnect |
| US9430347B2 (en) | 2014-12-23 | 2016-08-30 | Intel Corporation | Delayed authentication debug policy |
| US10037280B2 (en) | 2015-05-29 | 2018-07-31 | Qualcomm Incorporated | Speculative pre-fetch of translations for a memory management unit (MMU) |
| 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 |
| 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 |
| US10713062B2 (en) * | 2017-12-07 | 2020-07-14 | Dell Products, L.P. | System and method for configuring an information handling system |
| FR3078439A1 (fr) * | 2018-02-27 | 2019-08-30 | Stmicroelectronics (Rousset) Sas | Procede de gestion du routage de transactions entre des equipements sources, au moins un equipement cible, par exemple une memoire multiports, et systeme sur puce correspondant |
| US10990294B2 (en) * | 2018-03-26 | 2021-04-27 | Western Digital Technologies, Inc. | Non-volatile storage system with multi-read mode |
| US10635622B2 (en) | 2018-04-03 | 2020-04-28 | Xilinx, Inc. | System-on-chip interface architecture |
| FR3080198A1 (fr) * | 2018-04-16 | 2019-10-18 | Stmicroelectronics (Rousset) Sas | Procede de gestion du routage de transactions entre au moins un equipement source et au moins un equipement cible, par exemple une memoire multiports, et systeme sur puce correspondant |
| TWI698752B (zh) * | 2018-08-22 | 2020-07-11 | 新唐科技股份有限公司 | 積體電路、匯流排系統以及其控制方法 |
| TWM571980U (zh) * | 2018-09-19 | 2018-12-21 | 聚晶半導體股份有限公司 | 雙鏡頭模組 |
| 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 |
| 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 |
| 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 |
-
2019
- 2019-11-22 FR FR1913126A patent/FR3103585B1/fr active Active
-
2020
- 2020-11-20 US US17/100,505 patent/US11876732B2/en active Active
- 2020-11-23 CN CN202011322375.1A patent/CN112835846B/zh active Active
Patent Citations (5)
| 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 |
| WO2016099812A1 (fr) * | 2014-12-20 | 2016-06-23 | Intel Corporation | Métadonnées de configuration de système sur puce |
| US10176131B1 (en) * | 2017-09-27 | 2019-01-08 | Xilinx, Inc. | Controlling exclusive access using supplemental transaction identifiers |
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 |
Also Published As
| Publication number | Publication date |
|---|---|
| US11876732B2 (en) | 2024-01-16 |
| CN112835846A (zh) | 2021-05-25 |
| US20210160193A1 (en) | 2021-05-27 |
| CN112835846B (zh) | 2025-08-05 |
| FR3103585B1 (fr) | 2023-04-14 |
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 | |
| 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 | |
| EP1939753B1 (fr) | Protection de zones mémoire | |
| US11477187B2 (en) | API key access authorization | |
| EP4187393A1 (fr) | Gestion dynamique d'un pare-feu de mémoire | |
| FR2960668A1 (fr) | Procede et dispositif de configuration incrementale de modules de type ima | |
| FR2948789A1 (fr) | Composant logiciel et dispositif pour le traitement automatise de donnees multi-usages, mettant en oeuvre des fonctions ayant besoin de differents niveaux de surete ou limites de responsabilite | |
| FR2642544A1 (fr) | Systeme de traitement de donnees a programme de securite | |
| US9141368B2 (en) | Managing boot loaders for virtual hard disks | |
| US10521381B2 (en) | Self-moderating bus arbitration architecture | |
| FR2907572A1 (fr) | Dispositif pour controler la commutation d'une interface utilisateur.. | |
| EP1942417B1 (fr) | Circuit de protection de zones mémoire | |
| FR2931568A1 (fr) | Procedes et dispositif de mise en oeuvre de peripheriques multifonction avec un gestionnaire de peripherique standart unique | |
| FR3057081B1 (fr) | Processeur comprenant une pluralite de coeurs de calcul | |
| FR3089322A1 (fr) | Gestion des restrictions d’accès au sein d’un système sur puce | |
| EP4187392A1 (fr) | Procédé de gestion d'une mémoire au sein d'un système sur puce | |
| EP0822495B1 (fr) | Distribution de tickets dans un système informatique multinodal | |
| EP4187391A1 (fr) | Gestion d'un pare-feu de mémoire dans un système sur puce | |
| FR2869700A1 (fr) | Gestion de registres indexes dans un systeme sur une puce | |
| WO2002008897A1 (fr) | Protocole d'echange de messages entre applications implantees sur un systeme embarque, et systeme embarque correspondant | |
| CN120223344A (zh) | 一种基于云管理平台的资源管理方法以及云管理平台 | |
| EP4594869A2 (fr) | Terminal connecté comprenant des moyens pour incruster une image sécurisée dans une image non sécurisée | |
| FR3140458A1 (fr) | Terminal connecté comprenant des moyens pour incruster une image sécurisée dans une image non sécurisée. | |
| EP4453740A1 (fr) | Système sur puce comprenant au moins une iommu sécurisée |
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 |
|
| PLFP | Fee payment |
Year of fee payment: 6 |
|
| PLFP | Fee payment |
Year of fee payment: 7 |