EP2965260A1 - Procede et dispositif de filtrage de transactions pour systeme sur puce - Google Patents
Procede et dispositif de filtrage de transactions pour systeme sur puceInfo
- Publication number
- EP2965260A1 EP2965260A1 EP14708032.9A EP14708032A EP2965260A1 EP 2965260 A1 EP2965260 A1 EP 2965260A1 EP 14708032 A EP14708032 A EP 14708032A EP 2965260 A1 EP2965260 A1 EP 2965260A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- slave
- master
- module
- request
- access
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
Definitions
- the invention relates to the field of systems-on-chip often referred to as the English word System on chip or its abbreviation SoC.
- the invention relates more particularly to systems on a chip in which interconnections between modules are performed by internal computer buses and associated routing control means.
- Soc system-on-a-chip
- a Soc is a complete on-chip system that can include one or more processors, memory, interface peripherals, and / or other components required to perform a complex function.
- a Soc can also designate a mixed system comprising digital elements, analog elements, and analog / digital converters.
- FPGA-type SoCs generally have a hierarchical architecture: "master” modules perform read or write access requests to so-called “slave” modules.
- masters are processors or DMA controllers
- slaves are storage memories or network devices.
- Interconnections between masters and slaves are typically supported by internal computer buses compatible with one or more communication protocols.
- AMBA Advanced Microcontroller Bus Architecture
- AHB Advanced High-Performance Bus
- AXI Advanced Extensible Interface
- FIG. 1 represents a computer bus B providing interconnections between k master modules Mi, i e [1, / c] and n slave modules Sj, j e [l, n].
- This bus comprises k slave ports PSi, i e ll, k ⁇ on each of which is connected a master module, and n master ports PMj, j e l, nj, on each of which is connected a slave module.
- the bus is seen as a slave by each master module, and seen as a master by each slave module.
- data can be transmitted according to a specific communication protocol.
- the bus B comprises internal routing means, for example one or more switch stages represented in FIG. 1 by dashed arrows. These means ensure the routing of communications between a master and a slave, such as read or write access requests issued by a master to a slave.
- the bus B illustrated in FIG. 1 carries out all possible interconnections between one of the k masters and one of the n slaves, ie k * n interconnections.
- the slave S1 can for example receive requests issued by several masters, and be in shared access between them.
- Bus B also allows parallel access of masters if they access separate slaves by means of separate internal switches.
- the NIC-301 connector for ARM architecture is a black box that does not offer the possibility of prohibiting certain interconnections between its slave ports and its master ports.
- computer buses may be subject to failures generating erroneous switches which can then cause slowdowns in access to a slave or even their complete blockage.
- failures can for example be caused by transistors-type elements, sensitive to transient effects (Single Event Upset).
- the invention aims to exert a control of the communications between master modules and slave modules of a system-on-a-chip which transit by a computer bus so as to prevent unauthorized communications.
- the invention particularly relates to an access filtering method in a system on a chip comprising at least one master module, at least one slave module and a bus, the bus comprising at least one slave port, at least one port master and interconnection means between at least one of the slave port and at least one of the master port, the method being characterized in that it comprises the following steps implemented when an access request is routed from a master module connected to a slave port to a slave module connected to a master port:
- the interception step of the proposed filtering method is carried out downstream of the interconnection bus, as close as possible to the slave module.
- forbidden accesses of multiple origins can be avoided: not only prohibited accesses caused by a request incorrectly configured by the sending master module, but also forbidden accesses caused by routing errors internal to the interconnection bus.
- the invention therefore allows fine control of the interconnections on any commercially available AMBA computer bus, or any other bus adapted to perform interconnections between master modules and slave modules. Adapting a computer bus for the specific interconnection requirements of a system-on-a-chip is therefore not necessary, and thus reduces the costs of designing and manufacturing the system-on-a-chip.
- the proposed method may advantageously be supplemented by the following characteristics taken individually or combined when technically possible.
- the source information may include a unique identifier of the slave port through which the request passes.
- the source information may further include an identifier of the master module that issued the request. This makes it possible to identify with certainty the source of the request, and thus to operate filtering by master module.
- the source information can be formed by concatenating the identifier of the master module and the unique identifier of the slave port, so as to offer a finer filtering according to two criteria (source module and route followed), and a compact transport of these two criteria in the same source information, carried by a single request.
- the identifier of the master module may also be associated with a context of transmission of the request by the master module. This has the effect of offering a non-binary filtering criterion, and therefore more flexible, requests from the same master module. Some requests from this master module may be filtered, and some others from the same master module may not be filtered, depending on the associated broadcast context.
- the search step may be performed in two access control lists to the slave module, one containing information of sources authorized for reading and the other containing information of sources authorized for writing.
- the method according to the invention can advantageously be implemented in architectures comprising an AMBA type bus.
- the blocking step may comprise a zero positioning of a signal transmitted to the slave module, the signal being AWVALID if the query is a write request, or ARVALID if the request is a read request.
- the blocking step may comprise the zero positioning of an HSEL signal transmitted to the slave module) .
- the blocking step may include the zero positioning of a PSEL signal transmitted to the slave module.
- the method according to the invention may also comprise an additional step of sending an exception message to an interrupt controller after a blocking of the request.
- a message can notify the controller of the occurrence of a blockage, so that it can handle the blockage in the most appropriate manner.
- a device for controlling access to a slave module via an interconnection bus comprising storage means and data processing means for implementing the aforementioned filtering method.
- an assembly comprising at least one master module, at least one slave module, a bus providing interconnection between at least one of the master modules and at least one of the slave modules, and at least one access control device As mentioned above and connected to a bus master port and to one of the slave modules.
- FIG. 1 schematically represents a known on-chip system.
- FIG. 2 represents a sequence of signals of the AXI protocol transmitted during a reading.
- FIG. 3 represents a signal sequence of the AXI protocol transmitted during a write.
- FIG. 4 represents a step diagram of the filtering method according to the invention.
- FIG. 5 schematically shows a system-on-chip protected by a filter device according to the invention.
- the AXI protocol defines a single interface to describe the communications between a master module and a slave module, a master module and the slave port of a bus, or the master port of a bus and a slave module.
- This interface consists of five channels: two dedicated playback channels (one control channel and one data channel) and three write channels (a control channel, a data channel, and a response channel).
- the channels each transmit a set of signals unidirectionally.
- the read control channel transmits request signals from the master to the slave, while the read data channel then returns data carrying signals from the slave to the master.
- FIG. 2 illustrates, for example, a signal positioning sequence for reading a burst of data.
- FIG. 2 illustrates, for example, a signal positioning sequence for a burst reading according to the AXI protocol, carried out in four data transfers.
- the functions of the signals used are summarized in the table below:
- ARREADY Slave Indicates whether the slave is ready (1) or not (0) to accept a read address and associated control signals.
- RREADY Master Indicates whether the master is ready (1) or not (0) to receive read data.
- RVALID Slave Indicates whether the expected read data is ready for transfer (1) or not (0)
- a read transaction according to the AXI protocol comprises the following steps.
- the ACLK signal is synchronized to the clock of a master.
- the master sends the signal ARADDR containing a read address A of the slave to which it wishes to access reading.
- the master sets the signal ARVALID to signify to the recipient slave the validity of the address A.
- the slave confirms the availability of address A by positioning the ARREADY signal.
- the master then sets the RREADY signal to one to indicate to the slave that he is ready to read data.
- FIG. 2 illustrates a reading of four transfers D (A0), D (A1), D (A2) and D (A3).
- the RVALID signal is set to one by the slave to indicate to the master the validity of the data.
- the signal RLAST is set to one at the beginning of the last transfer D (A3).
- the reading illustrated in FIG. 2 is carried out in thirteen clock shots (between clock ticks T0 and T13).
- FIG. 3 shows an example of a signal positioning sequence for writing according to the AXI protocol also carried out in four data transfers.
- the functions of these signals are summarized in the table below:
- AWREADY Slave Indicates whether the slave is ready (1) or not (0) to accept a write address and associated control signals.
- WREADY Slave Indicates whether the slave is ready (1) or not (0) to receive write data.
- WVALID Master Indicates whether the write data is ready for transfer (1) or not (0) to the slave.
- a read transaction according to the AXI protocol comprises the following steps.
- the ACLK signal is synchronized to a source clock.
- a master transmits the AWADDR signal containing a write address A of the slave to which it wishes to access.
- the master sets the signal AWVALID to indicate to the receiving slave the validity of the address A.
- the slave confirms the availability of the address A by setting the signal AWREADY to one.
- the slave then sets the WREADY signal to one to indicate to the master that it is ready to receive data to write.
- FIG. 3 illustrates a burst of four transfers D (A0), D (A1), D (A2) and D (A3).
- the signal BREADY is set to one by the master to indicate that it is ready to receive a write result which will be transmitted at the end of the sequence.
- the signal WVALID is set to one by the master to signify to the slave the validity of the data to be written.
- the signal WLAST is set to one at the beginning of the last transfer.
- the slave then sets the BRESP signal to OKAY. This positioning is accompanied by a positioning of the signal BVALID to one during the duration of transmission of the OKAY value. The master finally repositions the BREADY signal to zero once this value is received.
- the writing illustrated in FIG. 3 is made in ten clock strokes (between the clock ticks T0 and T10).
- Each interface between an AMBA-compliant bus and a slave or master module can implement one of the AMBA family protocols.
- a system-on-a-chip comprising at least one master module M1, Mi, Mk, at least one slave module S1, Sj, Sn and a bus B.
- the bus B comprises interconnection means for communicating at least one slave module Sj with at least one module M1, Mi, Mk.
- the communication path between a master module Mi and a slave module Sj comprises at least two communication links: a first communication link between the master module Mi and a slave port PSi of the bus B, and a second communication link between a port master PMj of the bus B and the slave module Sj.
- the signals emitted by the secondary master module Mi pass through the slave port PSi, then are routed by the bus B to the master port PMj and are then transmitted to the slave module Sj connected to this master port PMj.
- the signals emitted by the slave module Sj destined for the secondary master Mi follow the same route in the opposite direction.
- a request is requested by a master module Mi and routed to a slave module Sj.
- a first step "CATCH" is to intercept at a point in the system information source INFO before the slave module Sj receives the request.
- INFO source information means information transported by one or more signals of the communication protocol used, which uniquely defines at least a portion of the route traveled between the source master module and the interception point.
- the source information INFO is searched for in at least one access control list Lj to the slave module Sj.
- This list Lj previously recorded contains source information authorized by the system to make accesses to the slave module Sj.
- the "CATCH" interception step is preferably performed as close as possible to the slave module Sj so as to obtain source information defining a longest possible portion of the road, preferably on the link between the master port PMj of bus B through which the request has passed and the slave module Sj.
- the INFO source information may include a unique port identifier IDPSi previously assigned to the slave port PSi through which the request has transited.
- IDPSi unique port identifier
- the INFO source information makes it possible to determine the routing performed by the bus from a slave port to a master port. It is therefore possible to detect routing errors caused by at least one of the crossed buses, and errors caused by a master module requesting unauthorized access to a slave module.
- the INFO source information may further include an IDMi identifier that identifies the master module Mi that issued the request. This makes it possible to identify with certainty the source of the request.
- the AXI protocol can be used on the communication link between the master port PMj and the slave module Sj.
- the identifier of the master module can then be detected by interception of the following signals transmitted by the master module to the slave module:
- the signal AWID on the control channel in the case of a write request
- the WID signal on the data channel in the case of a write request
- the ARID signal on the control channel in the case of a read request.
- a master may need to issue different types of requests to the same slave: for example, a processor may issue multiple read requests to a memory device, each request being handled in a specific process.
- an improvement of the method can consist in attaching to associate the identifier IDMi to a transmission context of the request sent by a master module Mi. This improvement makes it possible to perform additional discrimination among the requests coming from the same module master.
- This context can typically be a unique process identifier.
- source information INFO corresponds to the concatenation of the unique identifier IDPSi of the slave port Psi and the identifier IDMi characteristic of a type of request issued by the master module Mi.
- the search step "SEARCH” can furthermore be carried out in two distinct access lists LWj and LRj, the list LRj containing information of sources authorized to carry out read requests on the slave module Sj and the list LWj containing source information authorized to perform write requests on the slave module Sj. This optimization makes it possible in particular to reduce the duration of the search step.
- the "BLOCK" blocking step can be performed by modifying on the fly the positioning of at least one of the signals received from the master port PMj of the last bus traversed and of transmitting these repositioned signals to the slave module Sj so that the latter ignore the request originally issued by the master module Mi.
- the query is found in the list corresponding, all signals received from the master port are transmitted to the slave module without modification.
- the repositioned signals depend on the communication protocol chosen between the bus B and the slave module Sj.
- the AWVALID signal can be repositioned to zero if the request is a write request. This value of zero makes it possible to make the slave module Sj believe that no address is available on the write control channel, and thus to ignore the request.
- the ARVALID signal can be reset to zero if the request is a write request. This value makes it possible to make the slave module Sj believe that no address is available on the read control channel, and thus to ignore the request.
- the HSEL signal can be set to zero.
- the PSEL signal can be set to zero.
- the method comprises an additional step of sending "ERR" of an exception message EX to an interruption controller (not shown) of the system-on-a-chip, after the blocking step "BLOCK".
- This controller can for example be integrated with the master If having originated the blocked request, so that it can handle the blockage in the most appropriate manner.
- the invention also relates to a filter Fj, G [l, n] implementing the method described above.
- This filter can, optionally, be integrated in a bus, be part of a slave module, or be in the form of a standalone module placed on the link between a master port of a bus and a slave module , as illustrated in FIG.
- the filter comprises storage means for storing at least one access control list Lj, G [l, n], for example one or more memories, for example flash type, triplicated RAM or EEPROM.
- the storage size of these means is proportional to the encoding length of a source information, and the number of information sources allowed.
- Authorized source information contained in stored lists may be written only once before the system-on-a-chip provisioning, or dynamically reconfigured.
- the filter further comprises processing means for performing the various steps of the filtering method described.
- the invention also relates to an assembly illustrated in FIG. 4 comprising at least one master module Mi, ie [1, / c], at least one slave module Sj, I [l, n], a bus B conforming to the AMBA standard providing a interconnection between at least one of the master modules and at least one of the slave modules, and at least one filter Sj, jel, nJ as described above.
- the storage means of each filter Sj make it possible to store the two lists LRj and LWj already described.
- this set comprises as many positioned filters as slave modules, each filter being inserted between the bus B and each slave module, as illustrated in FIG. 4. Such a set is therefore entirely protected against any unauthorized request to any slave module. .
- the invention relates to a system-on-chip comprising at least one set as described above.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
Abstract
L'invention concerne notamment un procédé de filtrage d'accès dans un système sur puce comprenant au moins un module maître, au moins un module esclave et un bus, le bus comprenant au moins un port esclave, au moins un port maître et des moyens d'interconnexion entre au moins un des port esclave et au moins un des port maître, le procédé étant caractérisé en ce qu'il comprend les étapes suivantes mises en œuvre lorsqu'une requête d'accès est routée depuis un module maître connecté à un port esclave vers un module esclave connecté à un port maître : une interception sur le lien entre le port maître et le module esclave d'une information de source avant que le module esclave ne reçoive la requête, une recherche de l'information de source dans au moins une liste de contrôle d'accès au module esclave, un blocage de la requête de sorte que le module esclave ignore l'accès demandé si l'information de source n'est pas trouvée dans l'au moins une liste de contrôle d'accès.
Description
PROCEDE ET DISPOSITIF DE FILTRAGE DE TRANSACTIONS POUR
SYSTEME SUR PUCE
DOMAINE DE L'INVENTION
L'invention se rapporte au domaine des systèmes sur puce souvent désigné par le terme anglais System on chip ou son abréviation SoC.
L'invention concerne plus particulièrement les systèmes sur puce dans lesquels les interconnexions entre modules sont réalisées par des bus informatiques internes et des moyens de contrôle de routage associés.
ART ANTERIEUR
Un système sur puce (Soc), est un système complet embarqué sur une puce pouvant comprendre un ou plusieurs processeurs, de la mémoire, des périphériques d'interface et/ou d'autres composants nécessaires à la réalisation d'une fonction complexe. Un Soc peut également désigner un système mixte comprenant des éléments numériques, des éléments analogiques, et des convertisseurs analogiques/numériques.
Les SoC de type FPGA présentent généralement une architecture hiérarchisée : des modules « maîtres » effectuent des requêtes d'accès en lecture ou écriture à des modules dits « esclaves ». Par exemple, des maîtres typiques sont les processeurs ou les contrôleurs d'accès direct à la mémoire (DMA) ; des esclaves typiques sont les mémoires de stockage ou les périphériques réseau.
Les interconnexions entre des maîtres et des esclaves sont typiquement prises en charge par des bus informatiques internes compatibles avec un ou plusieurs protocoles de communication.
Par exemple, le protocole AMBA (« Advanced Microcontroller Bus Architecture ») est un standard de communication aujourd'hui largement utilisé notamment sur les SoC multiprocesseurs. Ce protocole se décline en plusieurs versions et variantes, dont par exemple AHB (« Advanced High- performance Bus ») et AXI (« Advanced extensible Interface ») qui sont
plus particulièrement dédiées aux transferts de données haut-débit par salves (« bursts »).
La figure 1 représente un bus informatique B assurant des interconnexions entre k modules maîtres Mi, i e [1, /c] et n modules esclaves Sj, j e [l, n] . Ce bus comprend k ports esclaves PSi, i e ll, k\ sur chacun desquels est connecté un module maître, et n ports maîtres PMj, j e l, nj , sur chacun desquels est connecté un module esclave. Ainsi, le bus est vu comme un esclave par chaque module maître, et vu comme un maître par chaque module esclave. Sur chaque liaison entre un port du bus et un module, des données peuvent être transmises selon un protocole de communication spécifique.
Le bus B comprend des moyens de routage internes, par exemple un ou plusieurs étages de commutateurs (« switches ») représentés sur la figure 1 par des flèches en pointillés. Ces moyens assurent le routage de communications entre un maître et un esclave, comme par exemple les requêtes d'accès en lecture ou écriture émise par un maître à destination d'un esclave.
Le bus B illustré sur la figure 1 réalise toutes les interconnexions possibles entre un des k maîtres et un des n esclaves, soit k * n interconnexions. Ainsi, l'esclave S1 peut par exemple recevoir des requêtes émises par plusieurs maîtres, et être en accès partagé entre ceux-ci. Le bus B autorise par ailleurs l'accès de maîtres de façon parallèle s'ils accèdent à des esclaves distincts au moyen de switches internes distincts.
La plupart des bus informatiques permettent de réaliser un grand nombre d'interconnexions physique entre des ports esclaves et des ports maîtres, sinon toutes celles techniquement possibles comme dans le cas du bus B. Cependant, la plupart des Soc incluant des bus informatiques vendus dans le commerce ne permettent pas d'exercer un contrôle fin des interconnexions physiques entre les maîtres et les esclaves.
Or, dans certaines architectures, on veut pouvoir interdire les communications sur certaines interconnexions de manière permanente ou temporaire pour des raisons de sécurité et/ou d'efficacité. C'est le cas par
exemple des systèmes sur puce de niveau de criticité A selon le standard RTCA DO-254, sur lesquels des connexions physiquement permises peuvent avoir des conséquences catastrophiques, comme par exemple, des systèmes sur puce dédiés au contrôle des commandes d'un aéronef.
A titre d'exemple, le connecteur NIC-301 pour architecture ARM est une boîte noire qui n'offre pas la possibilité d'interdire certaines interconnexions entre ses ports esclaves et ses ports maîtres.
Par ailleurs, des bus informatiques peuvent être sujets à des défaillances générant des aiguillages erronés pouvant alors causer des ralentissements dans les accès à un esclave voire leur blocage complet. Ces défaillances peuvent par exemple être causées par des éléments de type transistors, sensibles à des effets transitoires (Single Event Upset en anglais).
Ces attentes peuvent notamment s'avérer gênantes dans le cas ou des accès de haute priorité doivent être réalisés très rapidement. C'est le cas par exemple des systèmes sur puce de niveau de criticité A selon le standard RTCA DO-254, sur lesquels des pannes ou même des lenteurs de transaction peuvent avoir des conséquences catastrophiques, comme par exemple, des systèmes sur puce dédiés au contrôle des commandes d'un aéronef.
PRESENTATION DE L'INVENTION
L'invention vise à exercer un contrôle des communications entre des modules maîtres et des modules esclaves d'un système sur puce qui transitent par un bus informatique de sorte d'empêcher des communications non autorisées.
Pour ce faire, l'invention concerne notamment un procédé de filtrage d'accès dans un système sur puce comprenant au moins un module maître, au moins un module esclave et un bus, le bus comprenant au moins un port esclave, au moins un port maître et des moyens d'interconnexion entre au moins un des port esclave et au moins un des port maître, le procédé étant caractérisé en ce qu'il comprend les étapes suivantes mises en œuvre
lorsqu'une requête d'accès est routée depuis un module maître connecté à un port esclave vers un module esclave connecté à un port maître:
- une interception sur le lien entre le port maître et le module esclave d'une information de source avant que le module esclave ne reçoive la requête,
- une recherche de l'information de source dans au moins une liste de contrôle d'accès au module esclave, et
- un blocage de la requête de sorte que le module esclave ignore l'accès demandé, si l'information de source n'est pas trouvée dans l'au moins une liste de contrôle d'accès.
L'étape d'interception du procédé de filtrage proposé est réalisée en aval du bus d'interconnexion, au plus proche du module esclave. De la sorte, des accès interdits d'origines multiples peuvent être évités : non seulement des accès interdits provoqués par une requête mal configurée par le module maître émetteur, mais également des accès interdits provoqués par des erreurs de routage internes au bus d'interconnexion.
L'invention permet dès lors un contrôle fin des interconnexions sur n'importe quel bus informatique AMBA vendu dans le commerce, ou tout autre bus adapté pour réaliser des interconnexions entre des modules maîtres et des modules esclaves. L'adaptation d'un bus informatique pour les besoins d'interconnexion spécifiques d'un système sur puce n'est donc pas nécessaire, et réduit ainsi les coûts de conception et de fabrication du système sur puce.
Le procédé proposé peut avantageusement être complété par les caractéristiques suivantes prises individuellement ou combinées lorsque cela est techniquement possible.
L'information de source peut comprendre un identifiant unique du port esclave par lequel transite la requête.
Cet identifiant unique du port esclave permet d'identifier le routage réalisé par le bus depuis un port esclave vers un port maître, et donc autorise un filtrage par route suivie dans le bus d'interconnexion.
L'information de source peut en outre comprendre un identifiant du module maître ayant émis la requête. Ceci permet d'identifier de manière certaine la source de la requête, et donc d'opérer un filtrage par module maître.
L'information de source peut être formée par concaténation de l'identifiant du module maître et de l'identifiant unique du port esclave, de façon offrir un filtrage plus fin selon deux critères (module source et route suivie), et un transport compact de ces deux critères dans une même information de source, transportée par une seule requête.
L'identifiant du module maître peut en outre être associé à un contexte d'émission de la requête par le module maître. Ceci a pour effet d'offrir un critère de filtrage non binaire, et donc plus souple, des requêtes émanant d'un même module maître. Certaines requêtes émanant de ce module maître peuvent être filtrées, et certaines autres émanant du même module maître ne pas être filtrées, en fonction du contexte d'émission associé.
L'étape de recherche peut être réalisée dans deux listes de contrôle d'accès au module esclave, l'une contenant des informations de sources autorisées en lecture et l'autre contenant des informations de sources autorisées en écriture.
Le procédé selon l'invention peut être avantageusement mise en œuvre dans des architectures comprenant un bus de type AMBA.
Dans un mode de réalisation dans lequel le protocole de communication entre le port maître et le module esclave est le protocole AXI, l'étape de blocage peut comprendre un positionnement à zéro d'un signal transmis au module esclave, le signal étant AWVALID si la requête est une requête en écriture, ou ARVALID si la requête est une requête en lecture.
Dans un autre mode de réalisation dans lequel le protocole de communication entre le port maître et le module esclave est le protocole AHB ou AHB-lite, l'étape de blocage peut comprendre le positionnement à zéro d'un signal HSEL transmis au module esclave).
Dans un autre mode de réalisation dans lequel le protocole de communication entre le port maître et le module esclave est le protocole APB, l'étape de blocage peut comprendre le positionnement à zéro d'un signal PSEL transmis au module esclave.
Le procédé selon l'invention peut également comprendre une étape supplémentaire d'envoi d'un message d'exception vers un contrôleur d'interruption après un blocage de la requête. Un tel message permet d'avertir ce contrôleur de la survenance d'un blocage, de sorte que celui-ci puisse traiter le blocage de la manière la plus adéquate.
Il est également proposé un dispositif de contrôle d'accès à un module esclave par l'intermédiaire d'un bus d'interconnexion, comprenant des moyens de stockage et des moyens de traitement de données pour la mise en œuvre du procédé de filtrage précité.
II est en outre proposé un ensemble comprenant au moins un module maître, au moins un module esclave, un bus assurant une interconnexion entre au moins un des modules maîtres et au moins un des modules esclaves, et au moins un dispositif de contrôle d'accès lté que précité et connecté à un port maître du bus et à un des modules esclaves.
II est enfin proposé un système sur puce comprenant au moins un ensemble selon la revendication tel que précité.
DESCRIPTION DES FIGURES
D'autres caractéristiques, buts et avantages de l'invention ressortiront de la description qui suit, qui est purement illustrative et non limitative, et qui doit être lue en regard des dessins annexés sur lesquels :
- La figure 1 représente schématiquement un système sur puce connu.
- La figure 2 représente une séquence de signaux du protocole AXI émis au cours d'une lecture.
- La figure 3 représente une séquence de signaux du protocole AXI émis au cours d'une écriture.
- La figure 4 représente un diagramme d'étapes du procédé de filtrage selon l'invention.
- La figure 5 représente schématiquement un système sur puce protégé grâce à un dispositif de filtrage selon l'invention.
Sur l'ensemble des figures, les éléments similaires portent des références identiques.
DESCRIPTION DETAILLEE DE L'INVENTION
Le protocole AXI définit une interface unique pour décrire les communications entre un module maître et un module esclave, un module maître et le port esclave d'un bus, ou le port maître d'un bus et un module esclave.
Cette interface se compose de cinq canaux : deux canaux dédiés à la lecture (un canal de contrôle et un canal de données) et trois à l'écriture (un canal de contrôle, un canal de données et un canal de réponse).
Les canaux émettent chacun un ensemble de signaux de manière unidirectionnelle. Par exemple, le canal de contrôle de lecture émet des signaux de requête depuis le maître vers l'esclave, tandis que le canal de données de lecture retourne alors des signaux porteurs de données depuis l'esclave vers le maître.
Pour réaliser un transfert de données les signaux doivent être positionnés selon une séquence ordonnée. La figure 2 illustre par exemple une séquence de positionnement de signaux pour la lecture d'une salve de données.
EXEMPLE DE TRANSACTION EN LECTURE
La figure 2 illustre par exemple une séquence de positionnement de signaux pour une lecture par salves selon le protocole AXI, réalisée en quatre transferts de données. Les fonctions des signaux utilisés sont récapitulées dans le tableau ci-dessous :
Signal Source Description
ACLK Source Horloge de référence.
d'horloge
ARADDR Maître Adresse de lecture.
ARVALID Maître Positionné à 1 pendant la transmission par le
maître d'une adresse de lecture valide, sinon à 0.
ARREADY Esclave Indique si l'esclave est prêt (1 ) ou non (0) pour accepter une adresse de lecture et des signaux de contrôle associés.
RREADY Maître Indique si le maître est prêt (1 ) ou non (0) pour recevoir des données de lectures.
RDATA Esclave Données de lectures.
RVALID Esclave Indique si les données de lecture attendues sont prêtes pour le transfert (1 ) ou non (0)
RLAST Esclave Indique le dernier transfert de données en lecture.
En référence à la figure 2, une transaction en lecture selon le protocole AXI comprend les étapes suivantes.
Le signal ACLK est synchronisé sur l'horloge d'un maître. Le maître émet le signal ARADDR contenant une adresse de lecture A de l'esclave à laquelle il souhaite accéder en lecture. Parallèlement, le maître positionne à un le signal ARVALID pour signifier à l'esclave destinataire la validité de l'adresse A.
L'esclave confirme la disponibilité de l'adresse A en positionnant le signal ARREADY.
Le maître positionne ensuite le signal RREADY à un pour signifier à l'esclave qu'il est prêt à lire des données.
Les données de lecture sont ensuite transmises par l'esclave sur le signal RDATA. La figure 2 illustre une lecture de quatre transferts D(A0), D(A1 ), D(A2) et D(A3). Pendant chaque transfert, le signal RVALID est positionné à un par l'esclave pour signifier au maître la validité des données. Pour indiquer au maître qu'un transfert est le dernier, le signal RLAST est positionné à un au début du dernier transfert D(A3).
La lecture illustrée en figure 2 est réalisée en treize coups d'horloge (entre les coups d'horloge T0 et T13).
EXEMPLE DE TRANSACTION EN ECRITURE
La figure 3 présente un exemple une séquence de positionnement de signaux pour une écriture selon le protocole AXI également réalisée en quatre transferts de données. Les fonctions de ces signaux sont récapitulées dans le tableau ci-dessous :
Signal Source Description
ACLK Source Horloge de référence.
d'horloge
AWADDR Maître Adresse d'écriture.
AWVALID Maître Positionné à 1 pendant la transmission par le
maître d'une adresse d'écriture valide, sinon à 0.
AWREADY Esclave Indique si l'esclave est prêt (1 ) ou non (0) pour accepter une adresse d'écriture et des signaux de contrôle associés.
WREADY Esclave Indique si l'esclave est prêt (1 ) ou non (0) pour recevoir des données d'écriture.
WDATA Maître Données d'écriture.
WVALID Maître Indique si les données d'écriture sont prêtes pour le transfert (1 ) ou non (0) à l'esclave.
BRESP Esclave Résultat de l'écriture (2 bits) : OKAY, EXOKAY,
SLVERR, ou DECERR.
BVALID Esclave Positionné à 1 pendant la transmission par le
l'esclave d'un résultat d'écriture valide, sinon à 0.
WLAST Maître Indique le dernier transfert de données en écriture.
BREADY Maître Positionné à 1 pour signifier que le maître est prêt à recevoir un résultat d'écriture, sinon à 0.
En référence à la figure 3, une transaction en lecture selon le protocole AXI comprend les étapes suivantes.
Le signal ACLK est synchronisé sur une horloge source. Un maître émet le signal AWADDR contenant une adresse d'écriture A de l'esclave à laquelle il souhaite accéder. Parallèlement, le maître positionne à un le signal AWVALID pour signifier à l'esclave destinataire la validité de l'adresse A. L'esclave confirme la disponibilité de l'adresse A en positionnant le signal AWREADY à un.
L'esclave positionne ensuite le signal WREADY à un pour signifier au maître qu'il est prêt à recevoir des données à écrire.
Les données d'écriture sont ensuite transmises par le maître sur le signal WDATA. La figure 3 illustre une salve de quatre transferts D(A0), D(A1 ), D(A2) et D(A3). Au début du premier transfert, le signal BREADY est positionné à un par le maître pour indiquer qu'il est prêt à recevoir un résultat d'écriture qui sera transmis à la fin de la séquence. Pendant chaque transfert, le signal WVALID est positionné à un par le maître pour signifier à l'esclave la validité des données à écrire. Pour indiquer à l'esclave qu'un transfert D(A3) est le dernier, le signal WLAST est positionné à un au début du dernier transfert.
Pour confirmer l'écriture au maître, l'esclave positionne ensuite le signal BRESP à la valeur OKAY. Ce positionnement est accompagné d'un positionnement du signal BVALID à un pendant la durée de transmission de la valeur OKAY. Le maître repositionne enfin le signal BREADY à zéro une fois cette valeur reçue.
L'écriture illustrée en figure 3 est réalisée en dix coups d'horloge (entre les coups d'horloge T0 et T10).
D'autres protocoles de la famille AMBA (AHB, AHB-Lite) suivent le même principe général avec des signaux différents.
Chaque interface entre un bus conforme au standard AMBA et un module esclave ou maître peut implémenter un des protocoles de la famille AMBA.
En référence à la figure 5, soit un système sur puce comprenant au moins un module maître M1 , Mi, Mk, au moins un module esclave S1 , Sj, Sn et un bus B.
Le bus B comprend des moyens d'interconnexion pour faire communiquer au moins un module esclave Sj avec au moins un module M1 , Mi, Mk.
La route de communication entre un module maître Mi et un module esclave Sj comprend au moins deux liens de communication: un premier lien de communication entre le module maître Mi et un port esclave PSi du bus B, et un deuxième lien de communication entre un port maître PMj du bus B et le module esclave Sj. Les signaux émis par le module maître secondaire Mi transitent par le port esclave PSi, puis sont routés par le bus B vers le port maître PMj puis sont transmis au module esclave Sj connecté à ce port maître PMj. Les signaux émis par le module esclave Sj à destination du maître secondaire Mi suivent la même route en sens inverse.
Le procédé de filtrage selon l'invention va maintenant être décrit en référence au diagramme de la figure 4.
Dans le système décrit précédemment et illustré en figure 5, une requête est demandée par un module maître Mi et routée vers un module esclave Sj.
Une première étape « CATCH » consiste à intercepter en un point du système une information de source INFO avant que le module esclave Sj ne reçoive la requête.
Par information de source INFO, on entend une information transportée par un ou plusieurs signaux du protocole de communication utilisé, définissant de manière unique au moins une portion de route parcourue entre le module maître source et le point d'interception.
Dans une deuxième étape « SEARCH », l'information de source INFO est recherchée dans au moins une liste de contrôle d'accès Lj au module esclave Sj. Cette liste Lj préalablement enregistrée contient des
informations de sources autorisées par le système à réaliser des accès au module esclave Sj.
Dans une troisième étape de test « FOUND », on vérifie si l'information est trouvée dans cette liste Lj :
- Si l'information de source INFO n'est pas trouvée (« N »), on considère que le module maître Mi n'est pas autorisé à accéder à l'esclave Sj. La requête est alors bloquée « BLOCK » de manière à ce que le module esclave Sj ne puisse acquitter la requête.
- Sinon (« Y »), la requête est transmise au module esclave Sj.
L'étape d'interception « CATCH » est de préférence réalisée le plus près possible du module esclave Sj de manière à obtenir une information de source définissant une portion de route la plus longue possible, de préférence sur la liaison entre le port maître PMj du bus B par lequel la requête a transité et le module esclave Sj.
L'information de source INFO peut comprendre un identifiant unique IDPSi de port préalablement assigné au port esclave PSi par lequel la requête a transité. Dans ce cas, l'information de source INFO permet de déterminer le routage réalisé par le bus depuis un port esclave vers un port maître. On peut donc alors détecter des erreurs de routage causée par au moins un des bus traversés, et des erreurs causées par un module maître demandant un accès indu à un module esclave.
L'information de source INFO peut par ailleurs comprendre un identifiant IDMi qui identifie le module maître Mi ayant émis la requête. Ceci permet d'identifier de manière certaine la source de la requête.
Le protocole AXI peut être utilisé sur le lien de communication entre le port maître PMj et le module esclave Sj.
L'identifiant du module maître peut alors être détecté par interception des signaux suivants émis par le module maître vers le module esclave:
- le signal AWID sur le canal de contrôle, dans le cas d'une requête en écriture ;
- le signal WID sur le canal de données, dans le cas d'une requête en écriture ;
- le signal ARID sur le canal de contrôle, dans le cas d'une requête en lecture.
Un maître peut être amené à émettre différents types de requêtes à un même esclave : par exemple, un processeur peut émettre plusieurs requêtes en lecture à un périphérique de mémoire, chaque requête étant gérée dans un processus spécifique.
Par conséquent, une amélioration du procédé peut consister à joindre à associer l'identifiant IDMi à un contexte d'émission de la requête émise par un module maître Mi. Cette amélioration permet de réaliser une discrimination supplémentaire parmi les requêtes venant d'un même module maître. Ce contexte peut typiquement être un identifiant unique de processus.
Dans un mode de réalisation, une information de source INFO correspond à la concaténation de l'identifiant unique IDPSi du port esclave Psi et de l'identifiant IDMi caractéristique d'un type de requête émise par le module maître Mi. Cette structure permet un traitement simultané de ces deux identifiants dans les étapes d'interception « CATCH » et de recherche « SEARCH », et donc de raccourcir la durée de traitement du procédé.
On peut par ailleurs réaliser l'étape de recherche « SEARCH » dans deux listes d'accès distinctes LWj et LRj, la liste LRj contenant des informations de sources autorisées à réaliser des requêtes de lecture sur le module esclave Sj et la liste LWj contenant des informations de sources autorisées à réaliser des requêtes en écriture sur le module esclave Sj. Cette optimisation permet notamment de diminuer la durée de l'étape de recherche.
L'étape de blocage « BLOCK » peut être réalisée en modifiant à la volée le positionnement d'au moins un des signaux reçus du port maître PMj du dernier bus traversé et de transmettre ces signaux repositionnés au module esclave Sj de sorte que celui-ci ignore la requête initialement émise par le module maître Mi. Bien entendu, si la requête est trouvée dans la liste
correspondante, tous les signaux reçus du port maître sont transmis au module esclave sans modification.
Les signaux repositionnés dépendent du protocole de communication choisi entre le bus B et le module esclave Sj.
Dans le cas du protocole AXI, on peut repositionner à zéro le signal AWVALID si la requête est une requête en écriture. Cette valeur de zéro permet de faire croire au module esclave Sj qu'aucune adresse n'est disponible sur le canal de contrôle en écriture, et ainsi d'ignorer la requête. De la même manière, on peut repositionner à zéro le signal ARVALID si la requête est une requête en écriture. Cette valeur permet de faire croire au module esclave Sj qu'aucune adresse n'est disponible sur le canal de contrôle en lecture, et ainsi d'ignorer la requête.
Le même principe de repositionnement est applicable à d'autres protocoles :
- Dans le cas du protocole AHB ou le protocole AHB-lite, on peut positionner à zéro le signal HSEL.
- Dans le cas du protocole APB, on peut positionner à zéro le signal PSEL.
De manière préférée, le procédé comporte une étape supplémentaire d'envoi « ERR » d'un message d'exception EX vers un contrôleur d'interruption (non représenté) du système sur puce, après l'étape de blocage « BLOCK ». Ce contrôleur peut par exemple être intégré au maître Si ayant été à l'origine de la requête bloquée, de sorte que celui-ci puisse traiter le blocage de la manière la plus adéquate.
L'invention concerne par ailleurs un filtre Fj, j G [l, n] mettant en œuvre le procédé décrit précédemment. Ce filtre peut, au choix, être intégré à un bus, faire partie d'un module esclave, ou bien être se présenter sous la forme d'un module autonome placé sur la liaison entre un port maître d'un bus et un module esclave, comme illustré en figure 4.
Le filtre comprend des moyens de stockage pour le stockage d'au moins une liste de contrôle d'accès Lj, j G [l, n], par exemple une ou plusieurs
mémoires, par exemple de type flash, RAM tripliquée ou EEPROM. La taille de stockage de ces moyens est proportionnelle de la longueur d'encodage d'une information de source, et du nombre d'information de sources autorisées. Les informations de source autorisées contenues dans les listes stockées peuvent être écrites une seule fois avant la mise en service du système sur puce, ou être reconfigurées dynamiquement.
Le filtre comprend par ailleurs des moyens de traitement pour réaliser les différentes étapes du procédé de filtrage décrit. L'invention concerne également un ensemble illustré en figure 4 comprenant au moins un module maître Mi, i e [1, /c], au moins un module esclave Sj, j e [l, n], un bus B conforme au standard AMBA assurant une interconnexion entre au moins un des modules maîtres et au moins un des modules esclaves, et au moins un filtre Sj, j e l, nJ tel que décrit précédemment. Les moyens de stockage de chaque filtre Sj permettent de stocker les deux listes LRj et LWj déjà décrites.
Avantageusement, cet ensemble comporte autant de filtres positionnés que des modules esclaves, chaque filtre étant inséré entre le bus B et chaque module esclave, comme illustré en figure 4. Un tel ensemble est donc entièrement protégé contre toute requête non autorisée vers un module esclave quelconque.
L'invention concerne enfin un système sur puce comprenant au moins un ensemble tel que décrit précédemment.
Claims
REVENDICATIONS
Procédé de filtrage d'accès dans un système sur puce comprenant au moins un module maître (M1 , Mi, Mk), au moins un module esclave (S1 , Sj, ...,Sn) et un bus (B), le bus (B) comprenant au moins un port esclave (PS1 , PSi, PSn), au moins un port maître (PS1 , PSj, ...,PSn) et des moyens d'interconnexion entre au moins un des port esclave et au moins un des port maître, le procédé étant caractérisé en ce qu'il comprend les étapes suivantes mises en œuvre lorsqu'une requête d'accès est routée depuis un module maître (Mi) connecté à un port esclave (PSi) vers un module esclave (Sj) connecté à un port maître (PMj):
- une interception (CATCH) sur le lien entre le port maître (PMj) et le module esclave (Sj) d'une information de source (INFO) avant que le module esclave (Sj) ne reçoive la requête,
- une recherche (SEARCH) de l'information de source (INFO) dans au moins une liste (Lj) de contrôle d'accès au module esclave (Sj),
- un blocage (BLOCK) de la requête de sorte que le module esclave (Sj) ignore l'accès demandé, si l'information de source n'est pas trouvée dans l'au moins une liste (Lj) de contrôle d'accès.
Procédé de filtrage d'accès selon la revendication 1 , dans lequel l'information de source (INFO) comprend un identifiant unique (IDPSi) du port esclave (PSi) par lequel transite la requête.
Procédé de filtrage d'accès selon l'une des revendications 1 à 2, dans lequel l'information de source (INFO) comprend un identifiant (IDMi) du module maître (Mi) ayant émis la requête.
4. Procédé de filtrage d'accès selon la revendication 2 prise en combinaison avec la revendication 3, dans lequel l'information de source est la concaténation de l'identifiant (IDMi) du module maître (Mi) et de l'identifiant unique (IDPSi) du port esclave (PSi).
5. Procédé de filtrage d'accès selon l'une des revendications 3 à 4, dans lequel l'identifiant (IDMi) du module maître (Mi) est associé à un contexte d'émission de la requête par le module maître (Mi). 6. Procédé de filtrage d'accès selon l'une des revendications 1 à 5, dans lequel l'étape de recherche est réalisée dans deux listes de contrôle d'accès au module esclave (Sj), l'une (LRj) contenant des informations de sources autorisées en lecture et l'autre (LWj) contenant des informations de sources autorisées en écriture.
7. Procédé de filtrage d'accès selon l'une des revendications 1 à 6, dans lequel le protocole de communication entre le port maître (PMj) et le module esclave (Sj) est le protocole AXI et dans lequel l'étape de blocage comprend un positionnement à zéro d'un signal transmis au module esclave, le signal étant AWVALID si la requête est une requête en écriture, ou ARVALID si la requête est une requête en lecture.
8. Procédé de filtrage d'accès selon l'une des revendications 1 à 6, dans lequel le protocole de communication entre le port maître (PMj) et le module esclave (Sj) est le protocole AHB ou AHB-lite et dans lequel l'étape de blocage comprend le positionnement à zéro d'un signal HSEL transmis au module esclave (Sj).
9. Procédé de filtrage d'accès selon l'une des revendications 1 à 6, dans lequel le protocole de communication entre le port maître (PMj) et le module esclave (Sj) est le protocole APB et dans lequel l'étape de
blocage comprend le positionnement à zéro d'un signal PSEL transmis au module esclave (Sj).
10. Procédé de filtrage d'accès selon l'une des revendications 1 à 9, comprenant une étape supplémentaire d'envoi (ERR) d'un message d'exception (EX) vers un contrôleur d'interruption après un blocage de la requête.
1 1 . Dispositif (F1 , Fj, Fn) de contrôle d'accès à un module esclave par l'intermédiaire d'un bus d'interconnexion, comprenant des moyens de stockage et des moyens de traitement de données pour la mise en œuvre du procédé de filtrage selon l'une des revendications 1 à 10.
12. Ensemble comprenant au moins un module maître (M1 , Mi, Mk), au moins un module esclave (S1 , Sj, Sn), un bus (B) assurant une interconnexion entre au moins un des modules maîtres et au moins un des modules esclaves, et au moins un dispositif de contrôle d'accès (F1 , Fj, Fn) selon la revendication 1 1 connecté à un port maître (PM1 , PMj, PMn) du bus (B) et à un des modules esclaves (S1 , Sj, Sn).
13. Ensemble selon la revendication 12, dans lequel le bus (B) est de type AMBA. 14. Système sur puce comprenant au moins un ensemble selon l'une des revendications 12 à 13.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1352016A FR3003054B1 (fr) | 2013-03-06 | 2013-03-06 | Procede et dispositif de filtrage de transactions pour systeme sur puce |
PCT/EP2014/054273 WO2014135591A1 (fr) | 2013-03-06 | 2014-03-05 | Procede et dispositif de filtrage de transactions pour systeme sur puce |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2965260A1 true EP2965260A1 (fr) | 2016-01-13 |
Family
ID=48901080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP14708032.9A Withdrawn EP2965260A1 (fr) | 2013-03-06 | 2014-03-05 | Procede et dispositif de filtrage de transactions pour systeme sur puce |
Country Status (5)
Country | Link |
---|---|
US (1) | US20160019180A1 (fr) |
EP (1) | EP2965260A1 (fr) |
FR (1) | FR3003054B1 (fr) |
IL (1) | IL241074A0 (fr) |
WO (1) | WO2014135591A1 (fr) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3026869B1 (fr) * | 2014-10-07 | 2016-10-28 | Sagem Defense Securite | Systeme embarque sur puce a haute surete de fonctionnement |
GB2548387B (en) * | 2016-03-17 | 2020-04-01 | Advanced Risc Mach Ltd | An apparatus and method for filtering transactions |
FR3089322B1 (fr) | 2018-11-29 | 2020-12-18 | St Microelectronics Rousset | Gestion des restrictions d’accès au sein d’un système sur puce |
FR3103585B1 (fr) | 2019-11-22 | 2023-04-14 | Stmicroelectronics Grand Ouest Sas | Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
FR3103586B1 (fr) * | 2019-11-22 | 2023-04-14 | St Microelectronics Alps Sas | Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
FR3103584B1 (fr) * | 2019-11-22 | 2023-05-05 | St Microelectronics Alps Sas | Procédé de gestion du débogage d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5987557A (en) * | 1997-06-19 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU) |
US6092110A (en) * | 1997-10-23 | 2000-07-18 | At&T Wireless Svcs. Inc. | Apparatus for filtering packets using a dedicated processor |
US6158008A (en) * | 1997-10-23 | 2000-12-05 | At&T Wireless Svcs. Inc. | Method and apparatus for updating address lists for a packet filter processor |
US20040030861A1 (en) * | 2002-06-27 | 2004-02-12 | Bart Plackle | Customizable computer system |
GB0420057D0 (en) * | 2004-09-09 | 2004-10-13 | Level 5 Networks Ltd | Dynamic resource allocation |
WO2008091575A2 (fr) * | 2007-01-22 | 2008-07-31 | Vast Systems Technology Corporation | Procédé et système de modélisation d'un bus pour une conception de système comprenant un ou plusieurs processeurs programmables |
US7769933B2 (en) * | 2007-04-27 | 2010-08-03 | Atmel Corporation | Serialization of data for communication with master in multi-chip bus implementation |
US7743186B2 (en) * | 2007-04-27 | 2010-06-22 | Atmel Corporation | Serialization of data for communication with different-protocol slave in multi-chip bus implementation |
US7814250B2 (en) * | 2007-04-27 | 2010-10-12 | Atmel Corporation | Serialization of data for multi-chip bus implementation |
US7761632B2 (en) * | 2007-04-27 | 2010-07-20 | Atmel Corporation | Serialization of data for communication with slave in multi-chip bus implementation |
US8127058B1 (en) * | 2008-07-29 | 2012-02-28 | Marvell International Ltd. | System and method of video decoding using hybrid buffer |
JP2010211347A (ja) * | 2009-03-09 | 2010-09-24 | Renesas Electronics Corp | 情報処理装置及びエラー検出方法 |
US8489792B2 (en) * | 2010-03-12 | 2013-07-16 | Lsi Corporation | Transaction performance monitoring in a processor bus bridge |
US8949500B2 (en) * | 2011-08-08 | 2015-02-03 | Lsi Corporation | Non-blocking processor bus bridge for network processors or the like |
US8549630B2 (en) * | 2010-03-05 | 2013-10-01 | The Regents Of The University Of California | Trojan-resistant bus architecture and methods |
US8458791B2 (en) * | 2010-08-18 | 2013-06-04 | Southwest Research Institute | Hardware-implemented hypervisor for root-of-trust monitoring and control of computer system |
JP5617429B2 (ja) * | 2010-08-19 | 2014-11-05 | ソニー株式会社 | バスシステムおよびバスシステムと接続機器とを接続するブリッジ回路 |
US8789170B2 (en) * | 2010-09-24 | 2014-07-22 | Intel Corporation | Method for enforcing resource access control in computer systems |
KR101841173B1 (ko) * | 2010-12-17 | 2018-03-23 | 삼성전자주식회사 | 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법 |
US9348775B2 (en) * | 2012-03-16 | 2016-05-24 | Analog Devices, Inc. | Out-of-order execution of bus transactions |
BR112016001014A2 (pt) * | 2013-07-18 | 2017-08-22 | Benjamin A Gittins | Computing architecture with peripherals |
-
2013
- 2013-03-06 FR FR1352016A patent/FR3003054B1/fr active Active
-
2014
- 2014-03-05 WO PCT/EP2014/054273 patent/WO2014135591A1/fr active Application Filing
- 2014-03-05 EP EP14708032.9A patent/EP2965260A1/fr not_active Withdrawn
- 2014-03-05 US US14/772,059 patent/US20160019180A1/en not_active Abandoned
-
2015
- 2015-09-02 IL IL241074A patent/IL241074A0/en unknown
Non-Patent Citations (1)
Title |
---|
See references of WO2014135591A1 * |
Also Published As
Publication number | Publication date |
---|---|
WO2014135591A1 (fr) | 2014-09-12 |
US20160019180A1 (en) | 2016-01-21 |
FR3003054A1 (fr) | 2014-09-12 |
IL241074A0 (en) | 2015-11-30 |
FR3003054B1 (fr) | 2016-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2965260A1 (fr) | Procede et dispositif de filtrage de transactions pour systeme sur puce | |
CN102326362B (zh) | 灵活地将终端逻辑集成到各种平台的装置、方法和系统 | |
US8677030B2 (en) | Apparatus and method for managing packet classification tables | |
JP7420484B2 (ja) | 第1のクロックドメインと第2のクロックドメインとの間で伝送される主信号のためのエラーチェック | |
EP2507711B1 (fr) | Controleur d'acces direct a une memoire pour le transfert direct de donnees entre memoires de plusieurs dispositifs peripheriques | |
FR2863076A1 (fr) | Systeme cryptographique haut debit a architecture modulaire. | |
FR2925191A1 (fr) | Architecture de traitement numerique a haute integrite a multiples ressources supervisees | |
FR2867338A1 (fr) | Procede et dispositif de commutation entre des agents | |
WO2014135513A1 (fr) | Procédé de contrôle de bande passante pour système sur puce | |
EP2507712B1 (fr) | Systeme autorisant des transferts directs de donnees entre des memoires de plusieurs elements de ce systeme | |
US8112507B2 (en) | Remote node list searching mechanism for storage task scheduling | |
EP2965214A1 (fr) | Procede de surveillance de communications pour systeme sur puce | |
EP3557433B1 (fr) | Procédé de gestion du routage de transactions entre au moins un équipement source et au moins un équipement cible, par exemple une mémoire multiports, et système sur puce correspondant | |
EP0344035A1 (fr) | Réseau de transmission d'informations numériques entre plusieurs stations | |
WO2020109733A2 (fr) | Gestion des données pour le stockage de trames de données dans la mémoire d'un système de transmission de données | |
US20040225748A1 (en) | Systems and methods for deleting transactions from multiple fast data streams | |
EP3531419A1 (fr) | Procédé de gestion du routage de transactions entre des équipements sources, au moins un équipement cible, par exemple une mémoire multiports, et système sur puce correspondant | |
FR2919401A1 (fr) | Procede de test des chemins de donnees dans un circuit electronique | |
FR2869700A1 (fr) | Gestion de registres indexes dans un systeme sur une puce | |
EP4273720A1 (fr) | Systeme sur puce integrant un circuit d´acces direct en memoire et procede correspondant | |
EP2157516B1 (fr) | Systéme de traitement de données disposant de moyens de traitement répartis pour exploiter des latences intrinsèques du système | |
WO2020089558A1 (fr) | Système de transmission de données | |
FR2827995A1 (fr) | Procede et dispositif de gestion de memoire | |
FR2996935A1 (fr) | Procede et dispositif de traitement d'interruptions dans un systeme multiprocesseur |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20151002 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAX | Request for extension of the european patent (deleted) | ||
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20160510 |