WO2014111589A1 - Interface reseau d'un soc comportant un controleur de communication ameliore - Google Patents
Interface reseau d'un soc comportant un controleur de communication ameliore Download PDFInfo
- Publication number
- WO2014111589A1 WO2014111589A1 PCT/EP2014/051092 EP2014051092W WO2014111589A1 WO 2014111589 A1 WO2014111589 A1 WO 2014111589A1 EP 2014051092 W EP2014051092 W EP 2014051092W WO 2014111589 A1 WO2014111589 A1 WO 2014111589A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- communication
- resource
- network
- data
- interface
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/39—Credit based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/828—Allocation of resources per group of connections, e.g. per group of users
-
- 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
Definitions
- the present invention relates to the field of systems on chips or SoC (System on Chip) implementing a Network on Chip or NoC (Network on Chip), and more particularly that of the network interfaces of a network on a chip.
- SoC System on Chip
- NoC Network on Chip
- heterogeneous on-chip architectures composed of processing elements still called resources of different natures and which can be in the form of processing processor (s), hardware accelerator (s), reconfigurable unit (s), memory (s) ).
- FIGS 1 and 2 illustrate an example network architecture on chip or NoC (NoC for "Network on Chip”) according to the prior art.
- This architecture comprises a plurality of resources 1 able to communicate with each other and to exchange data.
- Links marked 2 connect said resources 1, while nodes noted 3 allow for them to establish a physical connection between the various links 2 and a referral communications.
- an element 5 is provided to enable communication to be initiated on the network.
- This element generally called a network controller 5, has the possibility of programming the communications between a plurality of network resources intended to perform tasks such as data processing. such as calculations, or data storage, or data encoding / decoding ( Figure 1).
- Each resource 1 of the network structure comprises a part or means that is called functional heart or processing unit 12, dedicated in particular to data processing and / or calculations, and another part or means that is called network interface 13, and which allows the resource 1 to communicate with the network ( Figure 2).
- the network interfaces 13 make it possible to disregard communications at the level of the processing units.
- the role of a network interface is to locally manage the incoming and outgoing communications of the processing unit so that, from the latter, everything happens as if the connections with the other processing units were of the point-to-point type. .
- the network interfaces make it possible to communicate with each other different processing units.
- the network interfaces can be connected to one or more nodes of the network.
- a network-on-chip thus uses an interface layer to manage the communications between the different elements or resources of the network.
- the execution of an application by a system-on-a-chip may require the cooperation of several resources. This cooperation is usually organized and synchronized by the network controller 5.
- the network controller 5 tracks the evolution of the data stream through the network. It sends commands for receiving data, processing and then sending data to the different processing units via their associated network interfaces.
- the units report to the network controller their respective activities, for example by an interrupt mechanism.
- the network controller then makes decisions on the following actions to be performed by the processing unit (s).
- a network on a chip can, according to a known operating mode, allow each resource of the network to process a set of data coming from one or more transmitting resources and to send back a result of this treatment to one or more receiving resources according to a scenario that has been determined before.
- This scenario can be established using a sequence of programming called "configurations". These configurations are typically passed to the resources by the network controller.
- EP 1 835 411 A1 discloses a control system for programming configuration sequences for communication controllers. More specifically, the network controller provides each pair of network interface and associated processing unit with a configuration or sequence of configurations to be adopted for the execution of a task. Each configuration is described by a configuration content that is to say a set of configuration parameter values stored in the network interface, each configuration content defining a communication configuration of the interface and / or an operating configuration of the processing unit.
- a network interface may include a local interface controller for providing configuration sequences and managing the parameterization, as well as a configuration management unit.
- a network interface also includes an input controller module (not shown) associated with one or more input storage means from which input data from the resource will pass.
- These storage means may for example be in the form of one or more FIFO units, or one or more memories, the input controller module of which is capable of knowing the filling ratio as well as the free addresses.
- the input controller module allows the resource to transmit special data called "credits" to other network resources, according to a credit issuing mechanism for synchronizing communications in the network.
- Such a mechanism described for example in document EP 1 641 197 A1 provides that a first resource, when it is intended to receive data to be processed or transmitted that comes from a second resource, sends credits to the second resource to indicate to the latter that it is authorized to send said data to be processed or transmitted, in accordance with what is indicated by a current credit management configuration that the first resource uses.
- the number of credits sent by the first resource can be used to indicate to the second resource, the amount of data that this second resource is allowed to send to the first resource. This number of credits depends on the free space available to the first resource as well as the amount of data that the first resource is supposed to receive from the second resource. As previously described, this amount of data is indicated in the current credit management configuration that the first resource uses.
- the second resource is likely to issue as much data as the number of credits sent by the first resource allows it.
- sending credits from the first resource to the second resource allows the opening of a path for data from the second resource for the first resource.
- This credit sending mechanism makes it possible to ensure that data sent by the second resource can be received by the first resource.
- a network interface also includes an output communication controller module.
- the output communication controller module is associated with one or more output storage means from which data outgoing from the resource will pass.
- These storage means may be in the form of one or more FIFO units, or one or more memories whose outgoing information controller module can know the fill rate and free addresses.
- the output communication controller module may be provided in particular for, depending on how it is set up, create data packets to be transmitted to one or more other receiving resources.
- the data streams can be of static type, with fixed exchanged data volumes, or of dynamic type, with variable exchanged data volumes.
- Such a network uses a complex communication protocol, which requires a long time to establish connections and is effective only for transfers of a large amount of data.
- connection-then-credit flow control protocol for heterogeneous multicore systems-on-chip N. Concer, et al. Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on, 29 (6): 869-882, June 2010, provides a protocol for establishing a connection before starting a data transfer by sending a credit.
- a disadvantage of this protocol is that it is necessary to know the volume of data to be exchanged at the start of the communication.
- a disadvantage of this implementation is that the volumes of data to be processed are limited and it is necessary to know in a predictive way the maximum amount of information that will be transmitted.
- the present invention relates to a network interface for a first resource of a SoC system-on-chip adapted to interface a data processing unit of said first resource with a NoC network of said system-on-a-chip, the network interface being provided with a controller.
- input communication system comprising:
- an output communication controller comprising:
- the network interface is further provided with an input or output controller comprising:
- the interface may further comprise means for, following a detection of a communication link closure indication signal from a network interface of the second resource, producing a link closure acknowledgment signal of communication.
- the interface may also include means for, subsequent to closing said communication link between the first resource and the second resource, producing a configuration change trigger signal to the network interface controller.
- the given communication controller of the network interface may be provided with at least one credit counter, the given communication controller further comprising: means for, following receipt of a link closure acknowledgment signal of communication, produce a reset signal of the credit counter.
- the network interface may furthermore comprise means for when a link closure acknowledgment flag has been detected, transmitting a signal signifying the closure of said link destined for said processing unit.
- the network interface may furthermore comprise means for detecting a type of static or dynamic communication link established between the first resource and said second resource.
- This network interface can thus know if the amount of data of a data stream that it transmits and / or receives is likely to evolve during a communication with another network interface of another resource of the network.
- the first resource may be transmitting data to be processed to the second resource, the second resource being for its part receiving data to be processed from the first resource.
- the signal indicating closure of said link to the second resource can then be included in data transmitted to the second resource.
- the other communication controller may also include:
- the present invention also relates to a system-on-a-chip comprising several resources connected to a network-on-a-chip by dedicated network interfaces, a network interface being adapted to interface a data processing unit of a resource with the on-chip network, the system comprising means for establishing a communication between a first and a second resource via respectively first and second associated network interfaces, wherein the first network interface is provided with an output communication controller comprising: means for receiving credits able to receive credits from the second network interface, and
- the second network interface is provided with an input communication controller comprising:
- the system being comprising means for establishing a dynamic communication between the first and second resources, for which the number of data to be exchanged is not known to the network interfaces during the establishment of the communication,
- the output communication controller of the first interface comprising:
- the input communication controller of the second interface comprising:
- the input controller of the second interface also comprises means for, following the reception of a communication closure message, sending on the network on a chip a message of acknowledgment of closure of communication to the first resource, and wherein the output controller of the first interface further comprises means for receiving the communication closure acknowledgment message sent by the second resource.
- the present invention also provides a system-on-a-chip comprising several resources connected to a network-on-a-chip by dedicated network interfaces, a network interface being adapted to interface a data processing unit of a resource with the on-chip network, the system comprising means for establishing a communication between a first and a second resource via respectively first and second associated network interfaces, wherein the first network interface is provided with an output communication controller comprising:
- the second network interface being provided with an input communication controller comprising:
- the system comprising means for establishing a dynamic communication between the first and second resources, for which the number of data to be exchanged is not known from the network interfaces during the establishment of the communication, and
- the input communication controller of the second interface comprises:
- the output communication controller of the first interface comprising:
- the output controller of the first interface may furthermore comprise means for, following the reception of a communication closure message, sending on the network on a chip a communication closure acknowledgment message destined for the second resource.
- the input controller of the second interface further comprises means for receiving the communication closure acknowledgment message sent by the first resource.
- a network interface may comprise means for, following the closure of a dynamic communication, indicate the end of the communication to a network interface controller which can then reconfigure this network interface for a new communication.
- a network interface may also comprise means for, following the closing of a dynamic communication, indicate the end of the communication to the processing unit of the resource associated with this network interface.
- the system-on-a-chip can be configured so that during a given communication between the first and the second resource, the data transmitted by the first interface always pass through the same physical link of communication of the network on chip and the credits issued by the second interface always transit through the same physical communication link network on chip, to ensure respectively the temporal scheduling of data and credits.
- FIG. 3 illustrates exchanges between network interfaces of a system-on-a-chip
- FIGS. 4A-4C illustrate a first end-of-communication management mode between resource network interfaces of a system-on-a-chip according to an implementation mode of the invention
- FIGS. 5A-5B illustrate a second end-of-communication management mode between resource network interfaces of a system-on-a-chip according to an implementation mode of the invention
- FIGS. 6A-6D illustrate data formats to be processed and credit formats that can be exchanged within a system-on-a-chip according to one embodiment of the invention
- FIGS. 7A and 7B respectively illustrate an example of an adaptive device for triggering sending of data, an example of an adaptive device for triggering sending of credits.
- FIG. 3 An example of an exchange between a first network interface 130a of a first resource A and a second network interface 130b of a second resource B, via a NoC network of a SoC on-chip system implemented according to the invention, is illustrated in Figure 3.
- the network interfaces 130a, 130b each include an input communication controller 132 (not shown for the first interface 130a) and an output communication controller 134 (not shown for the second interface 130b).
- Data to be transmitted originating from a processing unit (not shown in FIG. 3) of the first resource A, and in the form of a data stream S 4, are received by the output communication controller 134a of the first network interface 130a and transmitted to the input communication controller 132b of the second network interface 130b which then restores a data stream S 7 to a processing unit not shown in Figure 3) of the second resource B.
- the output communication controller 134a of the first network interface 130a transmits data S 6 to an input communication controller 132b of the second network interface 130b, when the input communication controller has previously received it.
- 132b of the second network interface 130b transmitted credits S 5 to the output communication controller 134a of the first network interface 130a allowing the sending of data S 6 and indicating to the first resource A, the amount of data S 6 that it is authorized to transmit.
- the network interfaces 130a, 130b are furthermore respectively provided with a first local interface controller 170a, and a second local interface controller 170b provided to allow a configuration or a series of configurations to be adopted at the interfaces.
- the communication controllers 134a and 132b can receive a given information indicative of the type of communication intended to be established between the first network interface 130a and the second network interface 130b, in particular if this communication is of static type or of dynamic type.
- This information may be in the form of a configuration and indicate in the case of a static communication, the amount of data to be exchanged between the first resource A and the second resource B or in the case of a dynamic communication indicate that the volume of data exchanged between the first resource A and the second resource B is not known during the establishment of the communication and will be decided during the communication.
- the data transmitting processing unit may transmit a data termination signal S 8 to terminate the communication.
- This signal S 8 is then transmitted to the output communication controller 134a of the first resource A and indicates that all the data intended to transit on the link between the first resource A and the second resource B have been transmitted.
- the output communication controller 134a may thus comprise means for detecting a signal or end of data transmission information, indicating an end of communication. This signal S 8 end of data transmission can be advantageously contained in a data stream to be transmitted.
- the output communication controller 134a of the first interface 130a can produce and send a communication close message S 9 indicating that the communication between the network interface 130a of the first resource A and the network interface 130b of the second resource B is completed ( Figure 4A).
- the input controller 132b of the second network interface 130b may be provided to generate and return an acknowledgment signal 0 If communication closure ( Figure 4B).
- the communication controllers 134a, 132b of the first network interface 130a and the second network interface 130b can be further adapted to indicate, through a configuration-waits Su signal, to their interface controllers. respective networks 170a, 170b that they are waiting for a new configuration to be executed (FIG. 4C).
- the network interface controllers 170a, 170b can directly reconfigure their respective interfaces to enable them to perform another communication.
- Reconfiguration means allowing the interfaces to implement a configuration change.
- the communication controllers 134a, 132b may also indicate via another communication closure indication signal S 12 intended for the processing units (not shown) to which their communication interfaces 130a, 130b, respectively are associated, that the communication established between the first resource A and the second resource B is completed, closed.
- the processing unit performs an iterative processing, it enables the processing unit to be told that it can stop this processing.
- the communication closure message S 9 sent by the output communication controller 134a of the first interface 130a may be sent once all data from the first resource A for the second resource B has been transmitted.
- this communication closure message S 9 can accompany or even be included in a data packet containing the last data from the first resource A and transmitted to the second resource B.
- the communication controller of the second interface 130b is sent once all the data from the first resource A and for the second resource B has been transmitted .
- the acknowledgment signal S 0 for canceling communication may also make it possible to trigger a reset of a credit counter of the output communication controller 134a counting a number of available credits.
- 130a can then receive credits again, as soon as a new credit management configuration is executed.
- Network interfaces can also be provided so that the transmission of the acknowledgment signal 0 If communication closure allows to reset a credit counter counting down a number of credits sent by the input communication controller 132b in order to allow use of these newly available credits for another communication.
- the criterion of end of communication and therefore of closing the static communication between these two resources can be directly associated, for the first resource, with a total number of credits receivable or data to be sent and associated, for the second resource, to a total number of credits to be issued or data receivable.
- each resource can conclude that the communication is completed.
- the communication controllers 132, 134 can directly signal the end of the transfer and transmit a Su signal to their respective network interface controllers that they are waiting for a new configuration to execute.
- the second data-receiving resource B may be the one that terminates a communication with the first data-sending resource A.
- an end-of-data transmission signal Si 8 may be transmitted by the processing unit (not shown) of the second resource B to the input communication controller 132b of the network interface 130b of the second resource B.
- a communication closure message S 19 is then transmitted by the network interface 130b of the second resource B to the output communication controller 134a of the first data-sending resource A.
- a communication closure acknowledgment signal S 2 o can then be transmitted by the output controller 134a of the first resource A to the input controller 132b of the second resource B.
- a packet may be formed of data associated with protocol information such as the source or destination of the packet. To reduce the bandwidth cost associated with this protocol information, multiple data may be bundled into a single packet.
- an output communication controller can send a new packet only if a number of available data corresponding to a setpoint X sec are present. in a memory of this output communication controller.
- the network interfaces of the resources of a system-on-a-chip according to the invention may also comprise means for forcing the sending of data.
- means for transmitting a forcing signal for sending data to the communication controller output 134a may be provided. These means can be integrated into a processing unit of a resource.
- the decision of the transmission of the forcing signal can thus be taken internally by the processing unit and can be derived from the application to which the system-on-a-chip is submitted. For example, for a system-on-a-chip application to image processing, the processing unit of a resource may consider an image size, or a number of pixels per image line to make that decision. transmission of the forcing signal.
- Delay triggering means may also be implemented at the output communication controller to force a sending of the available data present in a memory of the output communication controller 134a in less than a set amount, as soon as data is available. remained available for a period of time greater than a predetermined set time in a memory of the output communication controller.
- the reception by the output communication interface of the first resource of the signal "send forcing" or a signal from the delay triggering means triggers the transmission of data to the second resource B, as the number of credits available to the first resource A is enough.
- Such forcing of sending data can advantageously be realized when it is desired to terminate a communication and may be necessary in certain cases not to "forget” to transmit data, or to prevent data from being sent. to a wrong addressee.
- provision could be made for the reception of an end of communication indicator by the output controller 134a to cause, in succession or simultaneously (in the same packet), the sending of the latest available data and the sending of a message of communication closure.
- a forcing of sending credits can be implemented in the same way.
- the amount of credit sent by that controller may be in accordance with a predetermined threshold that may have been set or set through a configuration. This can help avoid sending too many credits that could clog the network, or limit the bandwidth.
- delay trigger means can be provided to trigger the sending of these credits, even when the number of credits available in the memory of the input communication controller is less than the predetermined threshold initially defined.
- dynamic threshold calculation means are implemented to force the sending of credits even when the number of credits available in the memory of the input communication controller is less than predetermined threshold.
- These dynamic threshold calculation means count the number of data received by the input communication controller of a network interface and increment, at each reception of a new datum, a modulo counter Y sec , with Y sec equal to the set the size of the credits. If all data packet sizes received match the original setpoint, this counter remains at zero and the default threshold is used.
- the counter value is used as the new provisional credit sending threshold, then the counter is reset and the threshold is reset to its initial value.
- such forcing of sending credits can advantageously be realized when it is desired to terminate a communication and may be necessary in certain cases, so as not to forget to send the last credits to the communication being closed, or to avoid sending credits to the wrong recipient.
- FIGS. 6A-6D Examples of structures of the data packets that can be used, and to transit and within a network on a chip of a system-on-a-chip according to the invention are given in FIGS. 6A-6D.
- a data packet of several words, also called flits, of 32 bits, is shown.
- Each flit may be formed of 32 bits numbered 31 to 0, plus 2 control bits, a first control bit numbered 33 to indicate the beginning of a packet, a second control bit numbered 32 indicating the end of a package.
- the first flit comprises in the header, a packet type indicator PKT_TYPE field, that is to say if this packet is a packet of data to process or a packet of credits.
- Information for routing the packet is contained in a ROUTING field.
- the following flits contain fields DATA 0 , ..., DATA N _i corresponding to data to be transmitted. The end of the packet is indicated in the last flit.
- a packet indicating a termination of communication is illustrated.
- the header flit of this packet is similar to that of the data packet described above in connection with FIG. 6A, with the exception of an "end" bit whose logical state, for example set to ⁇ '. , indicates an end of communication.
- a credit packet is illustrated.
- the PKT_TYPE field is set to a value indicating that the package contains credit information.
- An additional field NUM is indicative of a number of credits. In the example of FIG. 6C, NUM is such that the packet has k credits.
- FIG. 6D another packet of credits is illustrated.
- This packet has an end field set to a logical value ⁇ indicative of a communication end and a number of credits equal to one.
- FIG. 7A an exemplary data sending management device to be processed from a network interface of the first resource A for transmitting data to the second resource B is illustrated.
- This device comprises a first register 212 indicating a total number of data to be processed. This total number of data is set by configuration and has a fixed value N fixed when the link between the first resource A and the second resource B is of static type.
- the first register 212 can be set to a particular value, for example with all its bits set to 0, to enable dynamic communication detection by the network interface.
- a register specific to the indication of the type of communication can be provided with for example values 0 or 1 to indicate one or the other type.
- the device also comprises a counter 214 indicating a current number of data sent by the first resource A, while a register 218 indicates, meanwhile, a current number of data available to be transmitted.
- a register 220 makes it possible to indicate the setpoint size X sec of the data packets, that is to say the number of data that a data packet contains in normal operation.
- This size is established by configuration.
- control means 230 for sending data trigger a data transmission provided that a sufficient number of credits received indicated by a register 228 are available.
- Means 235 for formatting the data in packets as illustrated above can also be provided.
- FIG. 7B a corresponding example of implementation of a credit transfer management device of a network interface of the second resource B intended to issue credits to the first resource A, and whose operating principle has been described previously, is illustrated.
- This device comprises a first register 252 indicating a total number of credits to be issued, which is established by configuration. This total number of credits has a fixed fixed value when the communication between the first resource A and the second resource B is of static type.
- the register 252 can be set to a particular value, for example with all its bits at 0, to make it possible to distinguish with the case of a static communication and to indicate to the second resource B that the Data volume during the exchange with the first resource A is unknown in advance, and will be determined during or even at the end of the communication.
- the device also comprises a counter 254 indicating a current number of credits sent to the first resource A, associated with a counter 256 of data received from the first resource.
- a counter 258 indicates a current number of credits available.
- This counter 258 initially takes a value corresponding to an available memory size, then is incremented when data is consumed by the second resource B, and decremented when credits are sent to the first resource A.
- the set size Y sec of the credit packets established by configuration is indicated by a register 260.
- control means 270 for sending credits trigger a credit issuance, after formatting the credit data in the form of packets using a module 275.
- the network interfaces are preferably capable of knowing the transmission order of the data or credits they receive that have been issued by another interface, to ensure that the communication closure message does not end too early communication and that end-of-communication data or credits are not lost.
- the scheduling of the data or credits sent can be provided by the network, or by the type of packet structure used (which may possibly contain information on the configuration to which the data / credits are attached).
- networks-on-a-chip are often designed so that for a given communication, the same physical link is used during the communication so that a first packet sent before a second packet necessarily arrives before that second packet at the receiving network interface.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
L'invention concerne une interface réseau (130a) pour une première ressource (A) de réseau sur puce adaptée à interfacer une unité de traitement de données de ladite première ressource avec ledit réseau, l'interface réseau étant dotée d'un contrôleur de communication de sortie comprenant des moyens de détection d'un indicateur (S8) de fin de communication entre la première ressource (A) et au moins une deuxième ressource (B) avec laquelle un lien de communication est établi, ainsi que des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, produire un signal d'indication de fermeture (S9) dudit lien à destination de la deuxième ressource.
Description
INTERFACE RESEAU D'UN SoC COMPORTANT UN CONTROLEUR DE COMMUNICATION
AMELIORE
DESCRIPTION
DOMAINE TECHNIQUE
La présente invention concerne le domaine des systèmes sur puce ou SoC (System on Chip) mettant en œuvre un réseau sur puce ou NoC (Network on Chip), et plus particulièrement celui des interfaces réseau d'un réseau sur puce.
ART ANTÉRIEUR
Pour répondre aux besoins d'applications telles que du décodage vidéo haute-résolution ou de la transmission de données sans-fil haut-débit, il est connu de mettre en œuvre des architectures de réseau sur puce dites « hétérogènes », c'est à dire composées d'éléments de traitement encore appelés ressources de natures différentes et qui peuvent être sous forme de processeur(s) de traitement, d'accélérateur(s) matériels, d'unité(s) reconfigurable(s), de mémoire(s).
Les figures 1 et 2 illustrent un exemple d'architecture de réseau sur puce ou NoC (NoC pour « Network on Chip ») selon l'art antérieur.
Cette architecture comprend une pluralité de ressources 1 aptes à communiquer entre elles et à s'échanger des données. Des liens notés 2, permettent de relier lesdites ressources 1, tandis que des nœuds notés 3 permettent quant à eux d'établir une connexion physique entre les différents liens 2 ainsi qu'un aiguillage des communications.
Parmi l'ensemble des ressources 1 compris dans une telle architecture, un élément 5 est prévu pour permettre d'initier les communications sur le réseau.
Cet élément généralement nommé contrôleur de réseau 5, a la possibilité de programmer les communications entre une pluralité de ressources du réseau destinées à réaliser des tâches telles que des traitements de données
élémentaires, par exemple des calculs, ou des stockages de données, ou des codages/décodages de données (figure 1).
Chaque ressource 1 de la structure de réseau comporte une partie ou des moyens que l'on appelle cœur fonctionnel ou unité de traitement 12, dédiée notamment aux traitements de données et/ou aux calculs, ainsi qu'une autre partie ou des moyens que l'on nomme interface réseau 13, et qui permet à la ressource 1 de communiquer avec le réseau (figure 2).
Les interfaces réseau 13 permettent de faire abstraction des communications au niveau des unités de traitement. Le rôle d'une interface réseau est de gérer localement les communications entrantes et sortantes de l'unité de traitement de sorte que, vu de cette dernière, tout se passe comme si les connexions avec les autres unités de traitement étaient de type point à point. Les interfaces réseau permettent de faire communiquer entre elles des unités de traitement de nature différentes. En outre, les interfaces réseau peuvent être reliées à un ou plusieurs nœuds du réseau.
Un réseau sur puce utilise ainsi une couche d'interface permettant de gérer les communications entre les différents éléments ou ressources du réseau.
L'exécution d'une application par un système sur puce peut requérir la coopération de plusieurs ressources. Cette coopération est généralement organisée et synchronisée par le contrôleur de réseau 5.
Le contrôleur de réseau 5 suit l'évolution du flot de données à travers le réseau. Il envoie des ordres de réception de données, de traitement puis d'émission de données aux différentes unités de traitement via leurs interfaces réseau associées.
A chaque étape de traitement, les unités rendent compte au contrôleur de réseau de leurs activités respectives, par exemple par un mécanisme d'interruption. Le contrôleur de réseau prend alors des décisions sur les actions suivantes à réaliser par la ou les unités de traitement.
Ce type de fonctionnement en mode centralisé est simple à mettre en œuvre mais peu performant en termes de latence. En effet, le contrôleur de réseau est sans cesse interrompu et le flot de données s'écoule par à-coups. Par ailleurs, il ne
permet pas aisément un changement d'échelle lorsque le nombre de ressources et donc d'unités de traitement croît.
En vue d'effectuer un traitement de flots de données, un réseau sur puce, peut, selon un mode de fonctionnement connu, permettre à chaque ressource du réseau de traiter un ensemble de données venant d'une ou plusieurs ressources émettrices et de renvoyer un résultat de ce traitement vers une ou plusieurs ressources réceptrices selon un scénario qui aura été déterminé auparavant. Ce scénario peut être établi à l'aide d'une séquence de programmations appelées « configurations ». Ces configurations sont généralement transmises aux ressources par le contrôleur de réseau.
Le document EP 1 835 411 Al divulgue un système de contrôle permettant de programmer des séquences de configurations pour des contrôleurs de communication. Plus précisément, le contrôleur de réseau fournit à chaque couple d'interface réseau et unité de traitement associée une configuration ou une séquence de configurations à adopter pour l'exécution d'une tâche. Chaque configuration est décrite par un contenu de configuration c'est-à-dire un ensemble de valeurs de paramètres de configuration stocké dans l'interface réseau, chaque contenu de configuration définissant une configuration de communication de l'interface et/ou une configuration opératoire de l'unité de traitement.
Une interface réseau peut comprendre un contrôleur d'interface local permettant de fournir des séquences de configurations et de gérer le paramétrage, ainsi qu'une unité de gestion des configurations.
Une interface réseau comprend également un module contrôleur d'entrée (non représenté) associé à un ou plusieurs moyens de stockage en entrée, d'où transiteront des données entrantes de la ressource. Ces moyens de stockage peuvent se présenter par exemple sous forme d'une ou plusieurs unités FIFO, ou d'une ou plusieurs mémoires, dont le module contrôleur d'entrée est susceptible de connaître le taux de remplissage ainsi que les adresses libres.
En fonction de la manière dont il est paramétré, le module contrôleur d'entrée permet notamment à la ressource de transmettre des données spéciales
appelées « crédits » à d'autres ressources du réseau, selon un mécanisme d'émission de crédits servant à synchroniser les communications dans le réseau.
Un tel mécanisme décrit par exemple dans le document EP 1 641 197 Al, prévoit qu'une première ressource, lorsqu'elle est destinée à recevoir des données à traiter ou à transmettre qui proviennent d'une seconde ressource, envoie préalablement des crédits vers la seconde ressource pour signifier à cette dernière qu'elle est autorisée à envoyer lesdites données à traiter ou à transmettre, conformément à ce qui est indiqué par une configuration de gestion de crédits courante que la première ressource utilise.
Le nombre de crédits envoyé par la première ressource pourra permettre d'indiquer à la seconde ressource, la quantité de données que cette seconde ressource est autorisée à envoyer vers la première ressource. Ce nombre de crédits dépend de la place libre dont la première ressource dispose en entrée, ainsi que de la quantité de données que la première ressource est censée recevoir de la part de la seconde ressource. Comme cela a été décrit auparavant, cette quantité de données est indiquée dans la configuration de gestion de crédits courante que la première ressource utilise.
Une fois qu'elle est autorisée à émettre grâce à la réception de crédits, la seconde ressource est susceptible d'émettre autant de données que le nombre de crédits envoyés par la première ressource le lui permet.
Ainsi, l'envoi de crédits de la première ressource vers la seconde ressource permet l'ouverture d'un chemin pour des données provenant de la seconde ressource et destinées à la première ressource. Ce mécanisme d'envoi de crédits permet d'assurer qu'une donnée émise par la seconde ressource peut être réceptionnée par la première ressource.
Une interface réseau comprend également un module contrôleur de communication de sortie.
Le module contrôleur de communication de sortie est associé à un ou plusieurs moyens de stockage en sortie, d'où transiteront des données sortantes de la ressource. Ces moyens de stockage peuvent se présenter sous forme d'une ou plusieurs
unités FIFO, ou d'une ou plusieurs mémoires dont le module contrôleur d'informations sortantes pourra connaître le taux de remplissage et les adresses libres.
Le module contrôleur de communication de sortie peut être prévu notamment pour, en fonction de la manière dont il est paramétré, créer des paquets de données à transmettre vers une ou plusieurs autres ressources réceptrices.
Dans un réseau sur puce, les flots de données peuvent être de type statique, avec des volumes de données échangées fixes, ou de type dynamique, avec des volumes de données échangées variables.
Pour certaines applications, telle que le décodage vidéo, il est préférable d'établir un flot de données dynamique dans la mesure où le volume de données à traiter peut évoluer au cours du temps.
Différentes solutions aux problématiques liées à la gestion de flots de données dynamiques ont été présentées.
Le document:"5eparai7on of data flow and controlflow in reconfigurable multi-core SoCs using the Gannet service-based architecture", W. Vanderbauwhede, In Adaptive Hardware and Systems, 2007. AHS 2007. Second NASA/ESA Conférence on, pages 326 -333, aug. 2007 présente une solution pour configurer des communications sur un réseau sur puce. Cette solution nécessite deux réseaux distincts : un premier réseau pour acheminer des données de contrôle, un deuxième réseau pour des données à traiter ce qui représente un coût matériel non négligeable. Par ailleurs, la gestion des communications est réalisée par le biais d'un contrôleur de réseau sous forme d'un microcontrôleur.
Un tel réseau utilise un protocole de communication complexe, qui requiert une longue durée pour établir des connexions et n'est efficace que pour des transferts d'une quantité importante de données.
Le document: "The connection-then-credit flow control protocol for heterogeneous multicore systems-on-chip" , N. Concer, and al. Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on, 29(6):869 -882, june 2010, présente un protocole permettant d'établir une connexion avant de débuter un transfert de données par un envoi de crédit.
Un inconvénient de ce protocole est qu'il est nécessaire de connaître le volume de données à échanger au démarrage de la communication.
Le document "An Optimized Message Passing Framework for Parallel Implementation of Signal Processing Applications", de Sa ha et al., In Design, Automation and Test in Europe, 2008. DATE '08, pages 1220-1225, march 2008, présente une solution pour la gestion de flots de données dynamiques à l'aide d'une interface de communication appelée SPI « Signal Passing Interface ».
Un inconvénient lié à cette implémentation vient du fait que les volumes de données à traiter sont limités et qu'il est nécessaire de connaître de façon prédictive la quantité maximale d'information qui sera transmise.
Il se pose le problème de mettre en œuvre une nouvelle interface réseau dans un réseau sur puce, permettant de gérer de façon efficace des flots de données dynamiques et permettant de préférence de gérer à la fois des flots de données statique et dynamique, et qui ne présente pas les inconvénients évoqués ci-dessus.
EXPOSÉ DE L'INVENTION
La présente invention concerne une interface réseau pour une première ressource d'un système sur puce SoC adaptée à interfacer une unité de traitement de données de ladite première ressource avec un réseau NoC dudit système sur puce, l'interface réseau étant dotée d'un contrôleur de communication d'entrée comprenant :
- des moyens d'émission de crédits, aptes à émettre des crédits en direction d'une ou de plusieurs ressources du réseau,
- des moyens de réception de données, aptes à recevoir des données à traiter en provenance d'une ou de plusieurs ressources du réseau,
l'interface réseau étant dotée en outre d'un contrôleur de communication de sortie comprenant :
- des moyens de réception de crédits aptes à recevoir des crédits en direction d'une ou de plusieurs ressources du réseau,
- des moyens d'émission de données, aptes à émettre des données à traiter en direction d'une ou de plusieurs ressources du réseau.
Selon l'invention, l'interface réseau est en outre dotée d'un contrôleur d'entrée ou de sortie comprenant :
- des moyens de détection d'un indicateur de fin de communication entre la première ressource et au moins une deuxième ressource avec laquelle un lien de communication est établi,
- des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, produire un signal d'indication de fermeture dudit lien à destination de la deuxième ressource.
Avec des ressources munies d'une telle interface réseau, on peut mettre en œuvre des échanges de données selon un lien dynamique.
Avec des ressources munies d'une telle interface réseau, on peut mettre en œuvre une gestion des fins de communications entre ressources d'un réseau sur puce, sans qu'un contrôleur de communication général ait à transmettre un signal indicateur de fin de communication individuellement à chacune des ressources.
L'interface peut comprendre en outre des moyens pour, consécutivement à une détection d'un signal d'indication de fermeture de lien de communication provenant d'une interface réseau de la deuxième ressource, produire un signal d'acquittement de fermeture de lien de communication.
L'interface peut également comprendre des moyens pour, consécutivement à une fermeture dudit lien de communication entre la première ressource et la deuxième ressource, produire un signal de déclenchement de changement de configuration à destination du contrôleur d'interface réseau.
Le contrôleur de communication donné de l'interface réseau peut être doté d'au moins un compteur de crédits, le contrôleur de communication donné comprenant en outre : des moyens pour, consécutivement à une réception d'un signal d'acquittement de fermeture de lien de communication, produire un signal de réinitialisation du compteur de crédits.
L'interface réseau peut comprendre en outre des moyens pour lorsqu'un indicateur d'acquittement de fermeture de lien a été détecté, émettre un signal signifiant la fermeture dudit lien à destination de ladite unité de traitement.
L'interface réseau peut comprendre en outre des moyens de détection d'un type de lien de communication, statique ou dynamique établi entre la première ressource et ladite deuxième ressource.
Cette interface de réseau peut ainsi savoir si la quantité de données d'un flot de données qu'elle émet et/ou reçoit est susceptible d'évoluer au cours d'une communication avec une autre interface réseau d'une autre ressource du réseau.
Lors de la communication entre ladite première ressource et ladite deuxième ressource, la première ressource peut être émettrice de données à traiter à destination de la deuxième ressource, la deuxième ressource étant quant à elle réceptrice de données à traiter en provenance de la première ressource. Le signal d'indication de fermeture dudit lien à destination de la deuxième ressource peut être alors inclus dans des données transmises vers la deuxième ressource.
Parmi lesdits contrôleurs de communication de sortie et contrôleur de communication d'entrée, l'autre contrôleur de communication peut également comprendre :
- des moyens de détection d'un indicateur de fin de communication entre la première ressource et au moins une autre ressource avec laquelle un lien de communication est établi,
- des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, produire un signal d'indication de fermeture dudit lien à destination de ladite autre ressource.
La présente invention concerne également un système sur puce comprenant plusieurs ressources reliées à un réseau sur puce par des interfaces réseau dédiées, une interface réseau étant adaptée à interfacer une unité de traitement de données d'une ressource avec le réseau sur puce, le système comprenant des moyens d'établissement d'une communication entre une première et une deuxième ressource via respectivement des première et deuxième interfaces réseau associées, dans lequel la première interface réseau est dotée d'un contrôleur de communication de sortie comprenant :
- des moyens de réception de crédits aptes à recevoir des crédits en provenance de la deuxième interface réseau, et
- des moyens d'émission de données, aptes à émettre sur le réseau, à destination de la deuxième ressource, des données à traiter délivrées par la première ressource, et
dans lequel la deuxième interface réseau est dotée d'un contrôleur de communication d'entrée comprenant :
- des moyens d'émission de crédits, aptes à émettre sur le réseau, des crédits à destination de la première ressource du réseau, et
- des moyens de réception de données, aptes à recevoir des données à traiter en provenance de la première ressource du réseau et à destination de la deuxième ressource,
le système étant comprenant des moyens d'établissement d'une communication dynamique entre les première et deuxième ressources, pour laquelle le nombre de données à échanger n'est pas connu des interfaces réseau lors de l'établissement de la communication,
le contrôleur de communication de sortie de la première interface comprenant :
- des moyens de réception d'un indicateur de fin de communication entre la première ressource et la deuxième ressource avec laquelle une communication dynamique est établie, et
- des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, envoyer sur le réseau sur puce un message de fermeture de communication à destination de la deuxième ressource, l'envoi d'un tel message mettant fin à ladite communication dynamique et à l'envoi de données relatives à cette communication, et
en ce que le contrôleur de communication d'entrée de la deuxième interface comprenant :
- des moyens de réception du message de fermeture de communication envoyé par la première interface réseau, la réception d'un tel message
mettant fin à l'attente de données à traiter par la deuxième ressource lors de cette communication dynamique et à l'envoi de crédits relatifs à cette communication.
Avantageusement, le contrôleur d'entrée de la deuxième interface comprend également des moyens pour, consécutivement à la réception d'un message de fermeture de communication, envoyer sur le réseau sur puce un message d'acquittement de fermeture de communication à destination de la première ressource, et dans lequel le contrôleur de sortie de la première interface comprend en outre des moyens de réception du message d'acquittement de fermeture de communication envoyé par la deuxième ressource.
La présente invention prévoit également, un système sur puce comprenant plusieurs ressources reliées à un réseau sur puce par des interfaces réseau dédiées, une interface réseau étant adaptée à interfacer une unité de traitement de données d'une ressource avec le réseau sur puce, le système comprenant des moyens d'établissement d'une communication entre une première et une deuxième ressource via respectivement des première et deuxième interfaces réseau associées, dans lequel la première interface réseau est dotée d'un contrôleur de communication de sortie comprenant :
- des moyens de réception de crédits aptes à recevoir des crédits en provenance de la deuxième interface réseau, et
- des moyens d'émission de données, aptes à émettre sur le réseau, à destination de la deuxième ressource, des données à traiter délivrées par la première ressource,
la deuxième interface réseau étant dotée d'un contrôleur de communication d'entrée comprenant :
- des moyens d'émission de crédits, aptes à émettre sur le réseau, des crédits à destination de la première ressource du réseau, et
- des moyens de réception de données, aptes à recevoir des données à traiter en provenance de la première ressource du réseau et à destination de la deuxième ressource,
le système comprenant des moyens d'établissement d'une communication dynamique entre les première et deuxième ressources, pour laquelle le nombre de données à échanger n'est pas connu des interfaces réseau lors de l'établissement de la communication, et
le contrôleur de communication d'entrée de la deuxième interface comprend :
- des moyens de réception d'un indicateur de fin de communication entre la première ressource et la deuxième ressource avec laquelle une communication dynamique est établie, et
- des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, envoyer sur le réseau sur puce un message de fermeture de communication à destination de la première ressource, l'envoi d'un tel message mettant fin à ladite communication dynamique et à l'envoi de crédits relatifs à cette communication, et
le contrôleur de communication de sortie de la première interface comprenant :
- des moyens de réception du message de fermeture de communication envoyé par la deuxième interface réseau, la réception d'un tel message mettant fin à l'attente de crédits par la première interface lors de cette communication dynamique et à l'envoi de données relatives à cette communication.
Le contrôleur de sortie de la première interface peut comprendre en outre des moyens pour, consécutivement à la réception d'un message de fermeture de communication, envoyer sur le réseau sur puce un message d'acquittement de fermeture de communication à destination de la deuxième ressource, et dans lequel le contrôleur d'entrée de la deuxième interface comprend en outre des moyens de réception du message d'acquittement de fermeture de communication envoyé par la première ressource.
Avantageusement, une interface réseau peut comprendre des moyens pour, suite à la fermeture d'une communication dynamique, indiquer la fin de la
communication à un contrôleur d'interface réseau qui peut ensuite reconfigurer cette interface réseau pour une nouvelle communication.
Une interface réseau peut également comprendre des moyens pour, suite à la fermeture d'une communication dynamique, indiquer la fin de la communication à l'unité de traitement de la ressource associée à cette interface réseau.
Selon une possibilité de mise en œuvre du système sur puce dans lequel des communications statique ou dynamique peuvent être établies entre deux interfaces réseau associées à deux ressources, une communication étant statique ou dynamique selon que la quantité de données à échanger et respectivement connue ou inconnue lors de l'établissement de la communication entre les ressources.
Le système sur puce peut être configuré de sorte que lors d'une communication donnée entre la première et la deuxième ressource, les données émises par la première interface transitent toujours par le même lien physique de communication du réseau sur puce et les crédits émis par la deuxième interface transitent toujours par le même lien physique de communication du réseau sur puce, afin d'assurer respectivement l'ordonnancement temporel des données et des crédits.
BRÈVE DESCRIPTION DES DESSINS
La présente invention sera mieux comprise à la lecture de la description d'exemples de réalisation donnés, à titre purement indicatif et nullement limitatif, en faisant référence aux dessins annexés sur lesquels :
- les figures 1 et 2 illustrent un système sur puce SoC suivant l'art antérieur ;
- la figure 3 illustre des échanges entre des interfaces réseaux d'un système sur puce ;
- les figures 4A-4C illustrent un premier mode de gestion de fin de communication entre des interfaces réseaux de ressources d'un système sur puce selon un mode de mise en œuvre de l'invention ;
- les figures 5A-5B illustrent un deuxième mode de gestion de fin de communication entre des interfaces réseaux de ressources d'un système sur puce selon un mode de mise en œuvre de l'invention ;
- les figures 6A-6D illustrent des formats de données à traiter et des formats de crédits susceptibles d'être échangés au sein d'un système sur puce selon un mode de mise en œuvre de l'invention ;
- les figures 7A et 7B illustrent respectivement un exemple de dispositif adaptatif de déclenchement d'envoi de données, un exemple de dispositif adaptatif de déclenchement d'envoi de crédits.
Des parties identiques, similaires ou équivalentes des différentes figures portent les mêmes références numériques de façon à faciliter le passage d'une figure à l'autre.
Les différentes parties représentées sur les figures ne le sont pas nécessairement selon une échelle uniforme, pour rendre les figures plus lisibles. EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS
Un exemple d'échange entre une première interface réseau 130a d'une première ressource A et une deuxième interface réseau 130b d'une deuxième ressource B, via un réseau NoC d'un système sur puce SoC mis en œuvre suivant l'invention, est illustré sur la figure 3.
Les interfaces réseaux 130a, 130b, comportent chacune un contrôleur de communication d'entrée 132 (non représenté pour la première interface 130a) et un contrôleur de communication de sortie 134 (non représenté pour la deuxième interface 130b).
Des données à transmettre, provenant d'une unité de traitement (non représentée sur la figure 3) de la première ressource A, et sous forme d'un flot de données S4 sont reçues par le contrôleur de communication de sortie 134a de la première interface réseau 130a et transmises à destination du contrôleur de communication d'entrée 132b de la deuxième interface réseau 130b qui restitue alors un flot de données S7 à une unité de traitement non représentée sur la figure 3) de la deuxième ressource B.
Dans cet exemple, le contrôleur de communication de sortie 134a de la première interface réseau 130a, transmet des données S6 à un contrôleur de communication d'entrée 132b de la deuxième interface réseau 130b, lorsqu'au préalable le contrôleur de communication d'entrée 132b de la deuxième interface réseau 130b a transmis des crédits S5 au contrôleur de communication de sortie 134a de la première interface réseau 130a autorisant l'envoi de données S6 et indiquant à la première ressource A, la quantité de données S6 qu'elle est autorisée à émettre.
En fonctionnement normal, les échanges de données et de crédits se déroulent de manière continue, les données produites par le contrôleur de sortie d'une ressource émettrice sont transmises au fur et à mesure de la production au contrôleur de communication d'entrée de la ressource réceptrice.
Les interfaces réseau 130a, 130b, sont dotées en outre respectivement d'un premier contrôleur d'interface 170a local, et d'un deuxième contrôleur d'interface 170b local prévus pour permettre de faire adopter aux interfaces une configuration ou une série de configurations.
Au début d'une communication entre les ressources A et B, les contrôleurs de communication 134a et 132b peuvent recevoir une information donnée indicatrice du type de communication destinée à être établie entre la première interface réseau 130a et la deuxième interface réseau 130b, en particulier si cette communication est de type statique ou de type dynamique.
Cette information donnée peut être sous forme d'une configuration et indiquer dans le cas d'une communication statique, la quantité de données destinées à être échangées entre la première ressource A et la deuxième ressource B ou dans le cas d'une communication dynamique indiquer que le volume de données échangées entre la première ressource A et la deuxième ressource B n'est pas connu lors de l'établissement de la communication et sera décidé au cours de la communication.
Pour terminer une communication établie notamment entre la première ressource A et la deuxième ressource B, et éventuellement permettre par la suite de reconfigurer une nouvelle communication, par exemple pour atteindre une autre
destination, l'unité de traitement émettrice des données peut émettre un signal S8 de fin de transmission de données pour mettre fin à la communication.
Ce signal S8 est alors transmis au contrôleur de communication de sortie 134a de la première ressource A et indique que la totalité des données prévues pour transiter sur le lien entre la première ressource A et la deuxième ressource B ont été transmises. Le contrôleur de communication de sortie 134a peut ainsi comporter des moyens de détection d'un signal ou d'une information de fin de transmission de données, indiquant une fin de communication. Ce signal S8 de fin de transmission de données peut être avantageusement contenu dans un flot de données à transmettre.
Suite à cet événement, le contrôleur de communication de sortie 134a de la première interface 130a peut produire et envoyer un message de fermeture de communication S9 indiquant que la communication entre l'interface réseau 130a de la première ressource A et l'interface réseau 130b de la deuxième ressource B est terminée (figure 4A).
Suite à la réception d'un tel message de fermeture de communication
S9, le contrôleur d'entrée 132b de la deuxième interface réseau 130b peut être prévu pour produire et renvoyer un signal d'acquittement Si0 de fermeture de communication (figure 4B).
Ensuite, les contrôleurs de communication 134a, 132b de la première interface réseau 130a et de la deuxième interface réseau 130b peuvent être en outre adaptés pour indiquer, par le biais d'un signal Su d'attente de configuration, à leurs contrôleurs d'interface réseau respectifs 170a, 170b qu'ils sont en attente d'une nouvelle configuration à exécuter (figure 4C).
Ainsi, les contrôleurs d'interface réseau 170a, 170b, peuvent directement reconfigurer leurs interfaces respectives pour leur permettre d'effectuer une autre communication. Par reconfiguration, on entend ici permettre aux interfaces de mettre en œuvre un changement de configuration.
Dans cet exemple de réalisation, pour assurer un enchaînement de configurations il n'est pas obligatoire de prévoir un contrôleur de réseau tel qu'évoqué précédemment dans la partie art antérieur de la présente demande. En se passant d'un
contrôleur de réseau général, on met ainsi en œuvre un réseau sur puce amélioré en termes de latence et de performances.
Selon une possibilité de mise en œuvre, les contrôleurs de communication 134a, 132b, peuvent également indiquer par le biais d'un autre signal S12 d'indication de fermeture de communication destiné aux unités de traitement (non représentées) auxquelles leurs interfaces de communication 130a, 130b, sont respectivement associées, que la communication établie entre la première ressource A et la deuxième ressource B est terminée, fermée.
Par exemple, dans un cas où l'unité de traitement réalise un traitement itératif, cela permet d'indiquer à l'unité de traitement qu'elle peut cesser ce traitement.
Le message de fermeture de communication S9 envoyé par le contrôleur de communication de sortie 134a de la première interface 130a peut être envoyé une fois que toutes les données provenant de la première ressource A et destinées à la deuxième ressource B ont été transmises.
Selon une mise en œuvre particulière, ce message de fermeture de communication S9 peut accompagner, voire être inclus dans un paquet de données contenant les dernières données en provenance de la première ressource A et transmises à la deuxième ressource B.
Lorsqu'on introduit un tel message dans le contenu des données elles- mêmes, un gain de temps, et de bande passante peut être réalisé.
Le message d'acquittement Si0 de fermeture de communication envoyé par le contrôleur de communication d'entrée 132b de la deuxième interface 130b est envoyé une fois que toutes les données provenant de la première ressource A et destinées à la deuxième ressource B ont été transmises.
On s'assure ainsi que lorsque les contrôleurs de communication d'entrée 132b, et de sortie 134a émettent le signal Su de fin de communication aux unités de traitement respectives avec lesquelles la première interface réseau 130a et la deuxième interface réseau 130b sont respectivement associées, qu'il n'y a plus de trafic de données et/ou de crédits en transit dans le réseau.
Le signal d'acquittement Si0 de fermeture de communication peut permettre de déclencher en outre une réinitialisation d'un compteur de crédits du contrôleur de communication de sortie 134a décomptant un nombre de crédits disponibles.
Le contrôleur de communication de sortie 134a de la première interface
130a peut alors recevoir à nouveau des crédits, dès lors qu'une nouvelle configuration de gestion de crédits sera exécutée.
De cette manière, on empêche que des crédits reçus par la première ressource A et en provenance d'une précédente ressource émettrice, c'est-à-dire une ressource ayant émis ces crédits lors d'une précédente communication, soient utilisés pour envoyer des données à une nouvelle ressource réceptrice d'une nouvelle configuration alors que cette ressource n'est pas censée les recevoir.
Les interfaces réseau peuvent être également prévues de sorte que l'émission du signal d'acquittement Si0 de fermeture de communication permette de réinitialiser un compteur de crédits décomptant un nombre de crédits envoyés par le contrôleur de communication d'entrée 132b afin de permettre l'utilisation de ces crédits nouvellement disponibles pour une autre communication.
Dans le cas où un lien statique est établi entre la première ressource A et la deuxième ressource B, le critère de fin de communication et donc de fermeture de la communication statique entre ces deux ressources, peut être directement associé, pour la première ressource, à un nombre total de crédits à recevoir ou de données à envoyer et associé, pour la seconde ressource, à un nombre total de crédits à émettre ou de données à recevoir.
Dans ce cas, lorsque le nombre de crédits à émettre/recevoir ou le nombre de données à émettre/recevoir est atteint, chaque ressource peut conclure que la communication est terminée.
Ainsi, dans le cas d'une communication statique une émission d'un message de fermeture de communication tel que celui S9, peut ne pas être nécessaire. Les contrôleurs de communication 132, 134 peuvent directement signaler la fin du
transfert et émettre un signal Su à leurs contrôleurs d'interface réseau respectifs qu'ils sont en attente d'une nouvelle configuration à exécuter.
Selon une variante illustrée sur les figures 5A-5B, la deuxième ressource B réceptrice de données, peut être celle qui met fin à une communication avec la première ressource A émettrice de données.
Pour cela, un signal Si8 de fin de transmission de données peut être émis par l'unité de traitement (non représentée) de la deuxième ressource B vers le contrôleur de communication d'entrée 132b de l'interface réseau 130b de la deuxième ressource B.
Un message S19 de fermeture de communication est ensuite émis par l'interface réseau 130b de la deuxième ressource B au contrôleur de communication de sortie 134a de la première ressource A émettrice de données.
Un signal d'acquittement S2o de fermeture de communication peut être ensuite émis par le contrôleur de sortie 134a de la première ressource A à destination du contrôleur d'entrée 132b de la deuxième ressource B.
Les données transitant dans le réseau sont transférées sous forme de paquets. Un paquet peut être formé de données associées à des informations de protocole telles que la source ou la destination du paquet. Pour réduire le cout en bande- passante lié à ces informations de protocole, plusieurs données peuvent être groupées dans un même paquet.
Dans un réseau sur puce tel que précédemment décrit, il peut être prévu, en mode de fonctionnement normal, qu'un contrôleur de communication de sortie ne puisse envoyer un nouveau paquet que si un nombre de données disponibles correspondant à une consigne Xsec sont présentes dans une mémoire de ce contrôleur de communication de sortie.
Les interfaces réseau des ressources d'un système sur puce suivant l'invention peuvent également comprendre des moyens de forçage d'envoi de données.
Lorsque des données en nombre insuffisant pour former un paquet complet restent en attente d'envoi, afin d'éviter une situation de blocage, des moyens pour émettre un signal de forçage d'envoi de données au contrôleur de communication
de sortie 134a peuvent être prévus. Ces moyens peuvent être intégrés à une unité de traitement d'une ressource.
La décision de l'émission du signal de forçage peut être ainsi prise en interne par l'unité de traitement et peut déprendre de l'application à laquelle le système sur puce est soumis. Par exemple, pour une application du système sur puce à un traitement d'image, l'unité de traitement d'une ressource peut considérer une taille d'image, ou un nombre de pixels par ligne d'image pour prendre cette décision d'émission du signal de forçage.
Des moyens de déclenchement à retard peuvent être également mis en œuvre au niveau du contrôleur de communication de sortie pour forcer un envoi des données disponibles présentes dans une mémoire du contrôleur de communication de sortie 134a en quantité inférieure à une consigne, dès que des données sont restées disponibles pendant un laps de temps supérieur à une durée de consigne prédéterminée dans une mémoire du contrôleur de communication de sortie.
Dans l'un ou l'autre des cas, même si le nombre de données à transmettre présentes en mémoire de la première ressource A est inférieur à un seuil d'envoi, la réception par l'interface de communication de sortie de la première ressource du signal « de forçage d'envoi » ou d'un signal en provenance des moyens de déclenchement à retard, permet de déclencher la transmission des données vers la deuxième ressource B, dès lors que le nombre de crédits à disposition de la première ressource A est suffisant.
Un tel forçage d'envoi de données peut avantageusement être réalisé lorsque l'on souhaite mettre fin à une communication et peut s'avérer nécessaire dans certains cas pour ne pas « oublier » de transmettre des données, ou éviter que des données ne soient émises vers un mauvais destinataire. On pourra par exemple prévoir que la réception d'un indicateur de fin de communication par le contrôleur de sortie 134a entraîne, successivement ou simultanément (dans un même paquet), l'envoi des dernières données disponibles et l'envoi d'un message de fermeture de communication.
Un forçage d'envoi de crédits peut être de la même manière mis en œuvre.
Au niveau du contrôleur de communication d'entrée de l'interface réseau d'une ressource, la quantité de crédits envoyée par ce contrôleur peut être conforme à un seuil prédéterminé qui peut avoir été établi ou fixé par le biais d'une configuration. Cela peut permettre d'éviter un envoi trop fréquent de crédits susceptible d'encombrer le réseau, ou d'en limiter la bande passante.
Selon une première possibilité dans le cas où des crédits sont restés disponibles pendant un temps supérieur à une durée prédéterminée dans une mémoire d'un contrôleur de communication d'entrée, des moyens de déclenchement à retard peuvent être prévus pour déclencher l'envoi de ces crédits, même lorsque le nombre de crédits disponibles en mémoire du contrôleur de communication d'entrée est inférieur au seuil prédéterminé défini initialement.
Selon une deuxième possibilité qui peut être éventuellement combinée avec la première, des moyens de calcul de seuil dynamique sont mis en œuvre pour forcer l'envoi de crédits même lorsque le nombre de crédits disponibles en mémoire du contrôleur de communication d'entrée est inférieur au seuil prédéterminé. Ces moyens de calcul de seuil dynamique comptabilisent le nombre de données reçues par le contrôleur de communication d'entrée d'une interface réseau et incrémentent, à chaque réception d'une nouvelle donnée, un compteur modulo Ysec, avec Ysec égal à la consigne sur la taille des crédits. Si toutes les tailles de paquets de données reçues correspondent à la consigne d'origine, ce compteur reste à zéro et c'est le seuil par défaut qui est employé.
Si des paquets de données de taille inférieure à Ysec sont reçus, la valeur du compteur, alors non nulle, est utilisée comme nouveau seuil provisoire d'envoi des crédits, puis le compteur est remis à zéro et le seuil rebascule sur sa valeur initiale.
Comme dans le cas des données, un tel forçage d'envoi de crédits peut avantageusement être réalisé lorsque l'on souhaite mettre fin à une communication et peut s'avérer nécessaire dans certains cas, pour ne pas oublier d'envoyer les derniers crédits relatifs à la communication en cours de fermeture, ou pour éviter d'envoyer des crédits vers un mauvais destinataire. On pourra par exemple prévoir que la réception d'un indicateur de fin de communication par le contrôleur d'entrée 132b entraîne,
successivement ou en simultanément (même paquet), l'envoi des derniers crédits disponibles et l'envoi d'un message de fermeture de communication.
Des exemples de structures des paquets de données, susceptibles d'être utilisés, et de transiter et au sein d'un réseau sur puce d'un système sur puce suivant l'invention, sont données sur les figures 6A-6D.
Sur la figure 6A, un paquet de données de plusieurs mots, également appelés flits, de 32 bits, est représenté.
Chaque flit peut être formé de 32 bits numérotés de 31 à 0, auxquels s'ajoutent 2 bits de contrôle, un premier bit de contrôle numéroté 33 permettant d'indiquer le début d'un paquet, un deuxième bit de contrôle numéroté 32 indiquant la fin d'un paquet. Le premier flit, comporte en en-tête, un champ PKT_TYPE indicateur de type de paquet, c'est-à-dire si ce paquet est un paquet de données à traiter ou un paquet de crédits. Des informations pour le routage du paquet sont contenues dans un champ ROUTING. Les flits suivants contiennent des champs DATA0,..., DATAN_i correspondant à des données à transmettre. La fin du paquet est indiquée dans le dernier flit.
Sur la figure 6B, un paquet indicateur d'une fin de communication est illustré. Le flit d'en-tête de ce paquet est similaire à celui du paquet de données décrit précédemment en liaison avec la figure 6A, à l'exception d'un bit « end » dont l'état logique, par exemple mis à Ί', indique une fin de communication.
Sur la figure 6C, un paquet de crédit est illustré. Le champ PKT_TYPE est mis à une valeur indiquant que le paquet contient une information de crédit. Un champ additionnel NUM est indicateur d'un nombre de crédit. Dans l'exemple de la figure 6C, NUM est tel que le paquet comporte k crédits.
Sur la figure 6D, un autre paquet de crédits est illustré. Ce paquet comporte un champ end mis à une valeur logique Ύ indicatrice d'une fin de communication et un nombre de crédits égal à un.
Sur la figure 7A, un exemple de dispositif de gestion d'envoi de données à traiter d'une interface réseau de la première ressource A destinée à émettre des données vers la deuxième ressource B, est illustré.
Ce dispositif comprend un premier registre 212 indiquant un nombre total de données à traiter. Ce nombre total de données est établi par configuration et a une valeur déterminée N fixe lorsque le lien entre la première ressource A et la deuxième ressource B est de type statique.
En cas d'établissement d'une communication dynamique, le premier registre 212 peut être mis à une valeur particulière, par exemple avec tous ses bits mis à 0, pour permettre une détection de communication dynamique par l'interface réseau.
Selon une variante de réalisation, un registre spécifique à l'indication du type de communication, statique ou dynamique, peut être prévu avec par exemple des valeurs 0 ou 1 pour indiquer l'un ou l'autre type.
Le dispositif comporte également un compteur 214 indiquant un nombre courant de données envoyées par la première ressource A, tandis qu'un registre 218 indique, quant à lui, un nombre courant de données disponibles à émettre.
Un registre 220 permet d'indiquer la taille consigne Xsec des paquets de données, c'est-à-dire le nombre de données qu'un paquet de données contient en fonctionnement normal.
Cette taille est établie par configuration.
En fonction de l'état des registres 214, 218, 220, et d'une éventuelle réception d'un signal S 0 de forçage d'envoi de données ou d'un signal Si2o provenant du dispositif de déclenchement à retard, des moyens de commande 230 d'envoi de données déclenchent une émission de données à condition qu'un nombre suffisant de crédits reçus indiqué par un registre 228 soient disponibles.
Des moyens 235 de mise en forme des données sous forme de paquets tels qu'illustrés précédemment peuvent être également prévus.
Sur la figure 7B, un exemple correspondant de mise en œuvre d'un dispositif de gestion d'envoi de crédits d'une interface réseau de la deuxième ressource B destinée à émettre des crédits vers la première ressource A, et dont le principe de fonctionnement a été décrit précédemment, est illustré.
Ce dispositif comprend un premier registre 252 indiquant un nombre total de crédits à émettre, qui est établi par configuration.
Ce nombre total de crédits a une valeur déterminée fixe lorsque la communication entre la première ressource A et la deuxième ressource B est de type statique.
En cas de communication dynamique, le registre 252 peut être mis à une valeur particulière, par exemple avec tous ses bits à 0, pour permettre d'établir une distinction avec le cas d'une communication statique et indiquer à la deuxième ressource B que le volume de données au cours de l'échange avec la première ressource A est non connu à l'avance, et sera déterminé au cours, voire à la fin de la communication.
Le dispositif comporte également un compteur 254 indiquant un nombre courant de crédits envoyés vers la première ressource A, associé à un compteur 256 de données reçues de la première ressource.
Un compteur 258 indique quant à lui un nombre courant de crédits disponibles.
Ce compteur 258 prend initialement une valeur correspondant à une taille mémoire disponible, puis est incrémenté lorsque des données sont consommées par la deuxième ressource B, et décrémenté lorsque des crédits sont envoyés vers la première ressource A.
La taille de consigne Ysec des paquets de crédits établie par configuration est indiquée par un registre 260.
En fonction de l'état des registres 254, 256, 258, 260, et d'une éventuelle réception d'un signal S2io de forçage d'envoi de crédits ou d'un signal S22o provenant du dispositif de déclenchement à retard, des moyens de commande 270 d'envoi de crédits déclenchent une émission de crédits, après une mise en forme des données de crédits sous forme de paquets à l'aide d'un module 275.
Les interfaces réseau sont de préférence capables de connaître l'ordre d'émission des données ou crédits qu'elles reçoivent et qui ont été émis par une autre interface, afin d'assurer que le message de fermeture de communication ne mette pas fin trop tôt à la communication et que des données ou crédits de fin de communication ne soient pas perdus.
L'ordonnancement des données ou crédits envoyés peut être assuré par le réseau, ou par le type de structure de paquets utilisé (qui peut éventuellement contenir une information sur la configuration à laquelle se rattache les données/crédits).
Dans le cas des systèmes sur puce, les réseaux sur puce sont souvent conçus de sorte que pour une communication donnée, un même lien physique est utilisé pendant la communication de sorte qu'un premier paquet envoyé avant un second paquet arrive nécessairement avant ce second paquet au niveau de l'interface réseau destinataire.
Il est néanmoins possible que les données transitant d'une première interface réseau vers une seconde interface réseau empruntent un premier lien physique de communication et que des crédits transitant de la seconde vers la première interface réseau empruntent un second lien physique, l'ordonnancement des données et des crédits étant également assuré dans ce cas.
Claims
1. Système sur puce comprenant plusieurs ressources reliées à un réseau sur puce par des interfaces réseau dédiées, une interface réseau (130a) étant adaptée à interfacer une unité de traitement de données d'une ressource avec le réseau sur puce, le système comprenant des moyens d'établissement d'une communication entre une première et une deuxième ressource via respectivement des première et deuxième interfaces réseau associées, dans lequel la première interface réseau est dotée d'un contrôleur de communication de sortie (134a) comprenant :
- des moyens de réception de crédits aptes à recevoir des crédits en provenance de la deuxième interface réseau, et
- des moyens d'émission de données, aptes à émettre sur le réseau, à destination de la deuxième ressource, des données à traiter délivrées par la première ressource, et
dans lequel la deuxième interface réseau est dotée d'un contrôleur de communication d'entrée comprenant :
- des moyens d'émission de crédits, aptes à émettre sur le réseau, des crédits à destination de la première ressource du réseau, et
- des moyens de réception de données, aptes à recevoir des données à traiter en provenance de la première ressource du réseau et à destination de la deuxième ressource,
le système étant caractérisé en ce qu'il comprend des moyens d'établissement d'une communication dynamique entre les première et deuxième ressources, pour laquelle le nombre de données à échanger n'est pas connu des interfaces réseau lors de l'établissement de la communication, et
en ce que le contrôleur de communication de sortie (134a) de la première interface comprend :
- des moyens de réception d'un indicateur (S8) de fin de communication entre la première ressource (A) et la deuxième ressource (B) avec laquelle une communication dynamique est établie, et
- des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, envoyer sur le réseau sur puce un message de fermeture de communication (S9) à destination de la deuxième ressource, l'envoi d'un tel message mettant fin à ladite communication dynamique et à l'envoi de données relatives à cette communication, et
en ce que le contrôleur de communication d'entrée de la deuxième interface comprend :
- des moyens de réception du message de fermeture de communication envoyé par la première interface réseau, la réception d'un tel message mettant fin à l'attente de données à traiter par la deuxième ressource lors de cette communication dynamique et à l'envoi de crédits relatifs à cette communication.
2. Système sur puce selon la revendication 1, dans lequel le contrôleur d'entrée de la deuxième interface comprend en outre des moyens pour, consécutivement à la réception d'un message de fermeture de communication, envoyer sur le réseau sur puce un message d'acquittement de fermeture de communication (S9) à destination de la première ressource, et dans lequel le contrôleur de sortie de la première interface comprend en outre des moyens de réception du message d'acquittement de fermeture de communication envoyé par la deuxième ressource.
3. Système sur puce comprenant plusieurs ressources reliées à un réseau sur puce par des interfaces réseau dédiées, une interface réseau (130a) étant adaptée à interfacer une unité de traitement de données d'une ressource avec le réseau sur puce, le système comprenant des moyens d'établissement d'une communication entre une première et une deuxième ressource via respectivement des première et deuxième interfaces réseau associées, dans lequel la première interface réseau est dotée d'un contrôleur de communication de sortie (134a) comprenant :
- des moyens de réception de crédits aptes à recevoir des crédits en provenance de la deuxième interface réseau, et
- des moyens d'émission de données, aptes à émettre sur le réseau, à destination de la deuxième ressource, des données à traiter délivrées par la première ressource, et
dans lequel la deuxième interface réseau est dotée d'un contrôleur de communication d'entrée comprenant :
- des moyens d'émission de crédits, aptes à émettre sur le réseau, des crédits à destination de la première ressource du réseau, et
- des moyens de réception de données, aptes à recevoir des données à traiter en provenance de la première ressource du réseau et à destination de la deuxième ressource,
le système étant caractérisé en ce qu'il comprend des moyens d'établissement d'une communication dynamique entre les première et deuxième ressources, pour laquelle le nombre de données à échanger n'est pas connu des interfaces réseau lors de l'établissement de la communication, et
en ce que le contrôleur de communication d'entrée (132b) de la deuxième interface comprend :
- des moyens de réception d'un indicateur (S8) de fin de communication entre la première ressource (A) et la deuxième ressource (B) avec laquelle une communication dynamique est établie, et
- des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, envoyer sur le réseau sur puce un message de fermeture de communication (S9) à destination de la première ressource, l'envoi d'un tel message mettant fin à ladite communication dynamique et à l'envoi de crédits relatifs à cette communication, et
en ce que le contrôleur de communication de sortie de la première interface comprend :
- des moyens de réception du message de fermeture de communication envoyé par la deuxième interface réseau, la réception d'un tel message mettant fin à l'attente de crédits par la première interface lors de cette communication dynamique et à l'envoi de données relatives à cette communication.
4. Système sur puce selon la revendication 3, dans lequel le contrôleur de sortie de la première interface comprend en outre des moyens pour, consécutivement à la réception d'un message de fermeture de communication, envoyer sur le réseau sur puce un message d'acquittement de fermeture de communication (S9) à destination de la deuxième ressource, et dans lequel le contrôleur d'entrée de la deuxième interface comprend en outre des moyens de réception du message d'acquittement de fermeture de communication envoyé par la première ressource.
5. Système sur puce selon l'une des revendications précédentes, dans lequel suite à la fermeture d'une communication dynamique, une interface réseau comprend des moyens pour indiquer la fin de la communication à un contrôleur d'interface réseau qui peut ensuite reconfigurer cette interface réseau pour une nouvelle communication.
6. Système sur puce selon l'une des revendications précédentes, dans lequel, suite à la fermeture d'une communication dynamique, une interface réseau indique la fin de la communication à l'unité de traitement de la ressource associée à cette interface réseau.
7. Système sur puce selon l'une des revendications précédentes, dans lequel des communications statique ou dynamique peuvent être établies entre deux interfaces réseau associées à deux ressources, une communication étant statique ou dynamique selon que la quantité de données à échanger et respectivement connue ou inconnue lors de l'établissement de la communication entre les ressources.
8. Système sur puce selon l'une des revendications précédentes, dans lequel lors d'une communication donnée entre la première et la deuxième ressource, les données émises par la première interface transitent toujours par le même lien physique de communication du réseau sur puce et les crédits émis par la deuxième interface transitent toujours par le même lien physique de communication du réseau sur
puce, afin d'assurer respectivement l'ordonnancement temporel des données et des crédits.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/762,040 US9910822B2 (en) | 2013-01-21 | 2014-01-21 | Network interface for a SoC comprising an improved communication controller |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1350519 | 2013-01-21 | ||
FR1350519A FR3001311B1 (fr) | 2013-01-21 | 2013-01-21 | Interface reseau d'un soc comportant un controleur de communication ameliore |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014111589A1 true WO2014111589A1 (fr) | 2014-07-24 |
Family
ID=47989274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2014/051092 WO2014111589A1 (fr) | 2013-01-21 | 2014-01-21 | Interface reseau d'un soc comportant un controleur de communication ameliore |
Country Status (3)
Country | Link |
---|---|
US (1) | US9910822B2 (fr) |
FR (1) | FR3001311B1 (fr) |
WO (1) | WO2014111589A1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10846591B2 (en) * | 2015-12-29 | 2020-11-24 | Synopsys, Inc. | Configurable and programmable multi-core architecture with a specialized instruction set for embedded application based on neural networks |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090013331A1 (en) * | 2007-07-06 | 2009-01-08 | Xmos Limited | Token protocol |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020099851A1 (en) * | 2001-01-22 | 2002-07-25 | Shah Hemal V. | Decoupling TCP/IP processing in system area networks |
US8020163B2 (en) * | 2003-06-02 | 2011-09-13 | Interuniversitair Microelektronica Centrum (Imec) | Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof |
FR2875982B1 (fr) * | 2004-09-28 | 2006-12-22 | Commissariat Energie Atomique | Architecture de communication semi-automatique noc pour applications "flots de donnees" |
FR2898753B1 (fr) | 2006-03-16 | 2008-04-18 | Commissariat Energie Atomique | Systeme sur puce a controle semi-distribue |
US7577820B1 (en) * | 2006-04-14 | 2009-08-18 | Tilera Corporation | Managing data in a parallel processing environment |
US8631106B2 (en) * | 2006-06-19 | 2014-01-14 | Kaiyuan Huang | Secure handle for intra- and inter-processor communications |
US8683000B1 (en) * | 2006-10-27 | 2014-03-25 | Hewlett-Packard Development Company, L.P. | Virtual network interface system with memory management |
KR20120037785A (ko) * | 2010-10-12 | 2012-04-20 | 삼성전자주식회사 | 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법 |
BR112015001818A2 (pt) * | 2012-07-27 | 2017-08-08 | Adaptive Spectrum & Signal Alignment Inc | sistema de gerenciamento e métodos de gerenciamento de transmissão duplex por divisão de tempo (tdd) através de cobre |
FR3001310B1 (fr) * | 2013-01-21 | 2015-02-27 | Commissariat Energie Atomique | Interface de reseau sur puce dotee d'un systeme adaptatif de declenchement d'envoi de donnees |
US20170220499A1 (en) * | 2016-01-04 | 2017-08-03 | Gray Research LLC | Massively parallel computer, accelerated computing clusters, and two-dimensional router and interconnection network for field programmable gate arrays, and applications |
-
2013
- 2013-01-21 FR FR1350519A patent/FR3001311B1/fr not_active Expired - Fee Related
-
2014
- 2014-01-21 WO PCT/EP2014/051092 patent/WO2014111589A1/fr active Application Filing
- 2014-01-21 US US14/762,040 patent/US9910822B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090013331A1 (en) * | 2007-07-06 | 2009-01-08 | Xmos Limited | Token protocol |
Non-Patent Citations (3)
Title |
---|
DAVID WENTZLAFF ET AL: "On-Chip Interconnection Architecture of the Tile Processor", IEEE MICRO, IEEE SERVICE CENTER, LOS ALAMITOS, CA, US, vol. 27, no. 5, 1 September 2007 (2007-09-01), pages 15 - 31, XP011196754, ISSN: 0272-1732, DOI: 10.1109/MM.2007.4378780 * |
JOVEN, JAUME; ANGIOLINI, FEDERICO; CASTELLS-RUFAS, DAVID; DE MICHELI, GIOVANNI; CARRABINA, JORDI: "QoS-ocMPI: QoS-aware on-chip Message Passing Library for NoC-based Many-Core MPSoCs", 4 August 2010 (2010-08-04), XP002713021, Retrieved from the Internet <URL:http://infoscience.epfl.ch/record/154788/files/pmea-final31.pdf> [retrieved on 20130916] * |
ZHONGHAI LU: "BUILDING COMMUNICATIONPRIMITIVES FOR NOC", 22 May 2003 (2003-05-22), XP002713023, Retrieved from the Internet <URL:http://www.imit.kth.se/courses/2B1457/NoC_Course/PDF_present/Communication_Permititives_Zhonghai.pdf> [retrieved on 20130916] * |
Also Published As
Publication number | Publication date |
---|---|
US20150319106A1 (en) | 2015-11-05 |
FR3001311A1 (fr) | 2014-07-25 |
US9910822B2 (en) | 2018-03-06 |
FR3001311B1 (fr) | 2016-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1835411B1 (fr) | Systeme sur puce a controle semi-distribue | |
EP2282456B1 (fr) | Réseau de communication sur puce avec garantie de service | |
EP2793431B1 (fr) | Méthode distribuée d'acquisition de données dans un réseau afdx | |
EP1641197B1 (fr) | Architecture de communication NoC (réseau sur puce ) pour applications de type flots de données | |
FR2883116A1 (fr) | Architecture de communication globalement asynchrone pour systeme sur puce. | |
FR2820921A1 (fr) | Dispositif et procede de transmission dans un commutateur | |
EP1884875A1 (fr) | Système de gestion de messages transmis dans un réseau d'interconnexions sur puce | |
EP2923461B1 (fr) | Dispositif et procédé de retransmission de données dans un commutateur réseau | |
FR2996976A1 (fr) | Arrangement de mesure reparti pour un dispositif d'acquisition de moteur integre avec acceleration tcp | |
FR2804812A1 (fr) | Procede et dispositif de communication entre un premier et un deuxieme reseau | |
FR2824434A1 (fr) | Procede de diffusion d'un paquet de donnees au sein d'un reseau commute, base sur un calcul optimise de l'arbre de recouvrement | |
WO2014111589A1 (fr) | Interface reseau d'un soc comportant un controleur de communication ameliore | |
EP2757486A1 (fr) | Interface de réseau sur puce dotée d'un système adaptatif de déclenchement d'envoi de données | |
EP1845456B1 (fr) | Système d'interconnexions de blocs fonctionnels externes sur puce muni d'un unique protocole parametrable de communication | |
WO2015177452A1 (fr) | Commutateur de trames numeriques | |
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 | |
FR2983019A1 (fr) | Reseau de transmission d'informations et noeud de reseau associe | |
EP4203419A1 (fr) | Mise en communication automatique de sondes reseau | |
EP2652628B1 (fr) | Dispositif de connexion ethernet multiple a une unite informatique et ensemble unite informatique et equipements relies ensemble | |
FR3103583A1 (fr) | Système de gestion des données partagées | |
FR2999368A1 (fr) | Dispositif d'entrees sorties transferant et/ou recevant des donnees a un dispositif de controle. | |
FR2978850A1 (fr) | Dispositif pour echanger des donnees entre au moins deux applications | |
FR2765429A1 (fr) | Allocation a une pluralite d'elements d'autorisations d'acces a une ressource partagee | |
FR3079695A1 (fr) | Analyse et filtrage de donnees dans un systeme de transmission de donnees | |
FR2820917A1 (fr) | Procede et appareil de commutation permettant un routage de paquets non-bloquant "au niveau chemin", suite a des evenements de connexion/deconnexion de liens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14702213 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14762040 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14702213 Country of ref document: EP Kind code of ref document: A1 |