EP1494408A2 - Système et procédé de communication entre des modules - Google Patents

Système et procédé de communication entre des modules Download PDF

Info

Publication number
EP1494408A2
EP1494408A2 EP04291345A EP04291345A EP1494408A2 EP 1494408 A2 EP1494408 A2 EP 1494408A2 EP 04291345 A EP04291345 A EP 04291345A EP 04291345 A EP04291345 A EP 04291345A EP 1494408 A2 EP1494408 A2 EP 1494408A2
Authority
EP
European Patent Office
Prior art keywords
request
address
slave
data
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP04291345A
Other languages
German (de)
English (en)
Other versions
EP1494408A3 (fr
Inventor
César Douady
Philippe Boucard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Arteris SAS
Original Assignee
Arteris SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Arteris SAS filed Critical Arteris SAS
Publication of EP1494408A2 publication Critical patent/EP1494408A2/fr
Publication of EP1494408A3 publication Critical patent/EP1494408A3/fr
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/22Communication route or path selection, e.g. power-based or shortest path routing using selective relaying for reaching a BTS [Base Transceiver Station] or an access point
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols

Definitions

  • the present invention relates to the field of communication between modules.
  • agent an element susceptible to receive or transmit data on a bus, for example a CPU, memory, input / output device, etc.
  • operand an element on which carries an operation.
  • a system including a coprocessor arithmetic and an SDRAM-type memory that contains data must, for an operation to be executed, transfer the operands stored in memory via the controller memory, then through the bus to the coprocessor. The results of the operation will be transferred to the same bus.
  • the invention aims to remedy the disadvantages of the system classic mentioned above.
  • the invention proposes a system and a method for particularly effective communication, allowing extremely fast communications between different agents while judiciously using the capabilities of the communication.
  • the communication system between modules comprises an initiator element, at least one intermediate element and a slave element.
  • the initiating element is equipped with means to elaborate a first request and means to send the first request to the intermediate element.
  • the first request includes the address of the initiator element, the address of the intermediate element, data and at least one instruction to be processed by the intermediate element.
  • the element intermediary is equipped with means to receive a request for source of the initiating element, means to develop a second request in response to the first request and means for send the second request to a slave element.
  • the second request includes the address of the slave element, at least one instruction to be processed by the slave element, data, and the address of the initiator element.
  • the slave element is equipped with means to receive a request from the intermediate element, and means for performing at least one instruction contained in the second query.
  • the slave element includes means for sending an acknowledgment to the item initiator in response to the second request.
  • the acknowledgment of receipt will be sent without going through the intermediate element. This reduces the number of messages to pass through the communication system.
  • the slave element includes means for sending data to the initiator element.
  • the system comprises a plurality of intermediate elements, an element intermediary of rank n comprising means for sending to a intermediate element of rank n + 1 a request of rank n + 1 in response to a request of rank n.
  • the request of rank n + 1 includes the address of the intermediate element of rank n + 1, at least one instruction before be treated by the intermediate element of rank n + 1, and the address of the initiating element.
  • a request can therefore pass in a large number intermediate elements, each carrying out the treatment for which it is intended and sending to the next element a new request.
  • the different queries can include a field of the sending element of said request, this field being preferably indicated with the address of the initiating element. So, an intermediate element sees the query as being directly emitted by the initiator element and not by the intermediate element, of rank immediately preceding.
  • the element intermediary includes means to develop a third request, the third request including the address of the element initiator, the address of an intermediate element, data, and less an instruction to be processed by the intermediate element, and means for sending the third request to said element intermediate.
  • said element intermediary includes means to develop a fourth query, the fourth query including the address of an element slave, data, and at least one instruction to be processed by the slave element, and means to send the fourth request to said slave element.
  • the slave element may include means for receiving the fourth request from the intermediate element, and the means to carry out at least one instruction contained in the fourth request.
  • Such a system is particularly well adapted for the case where the slave elements are memories, and the elements intermediaries are memory controllers.
  • the modules are part of an integrated circuit. It is particularly advantageous that only one integrated circuit understands the whole system, including the modules.
  • the modules are part of a plurality of integrated circuits arranged in a common carrier, and / or present on removable media connected to each other.
  • said removable media can be connected by a sheet of wires, a wire coaxial, differential pairs, laser diodes, etc.
  • a support can be formed by a printed circuit board provided with elements welded or removably attached.
  • a request subsequent request such as the second request, includes the address of the initiator element as the address of the issuer of the second request.
  • the slave element in response to the second request, sends, in addition, an acknowledgment of reception to the initiating element.
  • the slave element can send data to the initiator element or not to issue a response.
  • slave element an element located at the end of a chain agents involved in a transaction, likely to execute a statement, and report back to the initiator element of the transaction.
  • the response sent by a slave element to the initiating element is devoid of instruction.
  • the transaction may include a plurality of requests each comprising at least less an instruction and, where appropriate, a response consisting of a transaction identifier, the address of the initiator element, an accused reception and / or data.
  • the intermediate element in response to the first query, sends to another element intermediate a request including the address of the initiator element, the address of said other intermediate element, data, and at least an instruction to be processed by said other element intermediate.
  • an intermediate element of rank n in response to a request of rank n, sends to a intermediate element of rank n + 1, a request of rank n + 1 including the address of the initiating element, the address of the element intermediate of rank n + 1, data and at least one instruction to be processed by the intermediate element of rank n + 1.
  • the elements, initiators, intermediates and slave, of the interconnection system communicate according to the same protocol.
  • the first request includes the address of the slave element, and the number of data to to transfer.
  • the initiator element builds a query copy containing the address of the initiating element, the address of the the intermediate element, an instruction to be dealt with by the intermediate element, the address of the slave element and the number of used data, and sends the request to the intermediate element.
  • the intermediate element creates a storage request that includes the address of the initiating element, the address of the slave element, a instruction to be processed by the slave element, data resulting from the execution of the instruction processed by the element intermediate and sends the storage request to the slave element.
  • the slave element executes the instruction by storing the data.
  • the instruction to be processed by the slave element is an instruction loading said data.
  • the data contained in the copy request include the address of the intermediate element, and the address of the slave element.
  • a request includes the address of the initiator element, the address of the element recipient of the request, an operational instruction, the address of the data in a repository of the recipient element of the request, and an identifier of the request.
  • Operational instruction can be selected from a load, store or copy instruction.
  • a query can include the number of bytes of data in said request.
  • a request may include an element allowing make the link between a query and a response.
  • An initiator element can send a request before receiving a response to a request previously sent. This is particularly advantageous because initiator element is not slowed down by waiting for a response to a request for sending a subsequent request. We thus arrive at increase the speed of data processing by the element initiator.
  • the invention thus allows not only a saving on communication resources of a communication system but also an increase in the speed of data processing by different agents.
  • FIG. 1 shows a chip 1 of integrated circuits with an orientation indicator 2, and legs 3 for the communication with the outside of said chip 1.
  • the components of the puce 1, more and more numerous, are grouped into multi-synchronous modules 4.
  • Multi-synchronous module means a subset of circuit clocked by one or more dedicated clocks audit module.
  • An asynchronous communication management module 5 of messages connected to at least two multi-synchronous modules 4, here all the multi-synchronous modules 4, with point-to-point links 6, manages the communication between the different modules 4 of the chip 1 of integrated circuits.
  • the modules 4 communicate with the outside of the chip 1 by links 7 between the modules and legs 3 of the chip 1.
  • Two multi-synchronous modules 4 can also, if the design constraints require it, communicate directly through a point-to-point link 6 identical to point-to-point links 6 between the asynchronous communication management module 5 and each module multi-synchronous 4. However, it is preferable that communications between two synchronous modules 4 go through the management module of asynchronous communication 5.
  • a unique, predetermined, specific communication protocol is used for communications between said modules of the chip 1 taking place on the links 6.
  • Each point-to-point link 6 includes, for each end, transmission means and reception means of messages, each receiving means comprising a memory of first-in, first-out type, commonly referred to as a "FIFO stack".
  • clock data and other data are sent simultaneously.
  • the data the clock are phase shifted, and the arrival clock data do not have the same phase as the starting clock data.
  • the other data are then temporally dispersed. If the time dispersion is too important, a re-synchronization is performed.
  • Figure 2 shows a variant of the device of Figure 1.
  • the device comprises at least two management modules of asynchronous communication 5, here two are represented. He can be necessary, given the complexity of a circuit and its partition in a large number of multi-synchronous modules, to have several asynchronous communication management modules 5.
  • the circuit may comprise one or more modules 9, of which only one is shown here, not connected to communication management modules asynchronous 5. This device can be seen from the outside as a single asynchronous communication management module allowing find a device similar to that of Figure 1.
  • FIG. 3 is a block diagram of a management module Asynchronous communication 5.
  • This includes inputs 5a of receiving data messages from other modules and 5b outputs for transmitting data messages to others modules.
  • the input messages are stored temporarily, by example in a first-in, first-out memory, commonly referred to as a "FIFO stack" means for receiving point-to-point link messages 6. This temporary storage allows to be able to handle incoming messages, even if they arrive at a rate higher than the message processing capacity of the module 5.
  • the asynchronous communication management module 5 further comprises means 5c for routing messages of output to their recipient module, as well as 5d means for manage the routing of exit messages.
  • An input message is stored in the FIFO stack of message receiving means of a point-to-point link 6, then taken into account by module 5, which will manage its referral to its destination synchronous module 4 by the means 5c and 5d.
  • This message then leaves module 5 by the output 5b and passes through the message transmission means of a link point-to-point 6 to the synchronous module 4 of destination of the message.
  • the communication system comprises an element 11, called “initiating element", capable of generating a transaction resulting in a plurality of requests, an element intermediate 12, able to process a request and send a request, an intermediate element 13, able to receive a request and to transmit a request, and a slave element 14, able to send to the element initiator 11 of the data and / or acknowledgment of receipt.
  • the element initiator initiates the transaction by drawing up a request the address of said initiator element, the address of the intermediate element 12, an operational instruction to be executed by the element intermediate 12 and, in general, data.
  • the initiating element 11 also includes means for transmitting said request to destination of the intermediate element 12.
  • the intermediate element 12 receives the request sent by the initiator element 11 and performs a processing on the received data according to the operational instruction contained in the request 15 received.
  • Intermediate 12 includes a means to develop a second request 16 for the intermediate element 13 of the part of the initiator element 11, and means for sending said request 16.
  • the request 16 sent by intermediate element 12 to the intermediate element 13 includes the address of the element intermediate 13, the address of the initiator element 11 as address of the issuer of the said request, an instruction to be performed by the intermediate agent 13, and data.
  • Intermediate element 13 which also includes means of preparation and means of sending the request, upon receipt of the request 16 sent by the intermediate element 12, performs the defined by the operational instruction concluded in the said request 16 and prepare a request 17 containing, like the previous address, the address of the recipient of the said request 17, the address of the initiator element 11 as the sender's address of said request, data, and an operational instruction.
  • the generated query 17 by the intermediate element 13 can be sent directly to the slave element 14 or to another intermediate element, no represented, the transaction may pass through an unlimited number of intermediate elements, between the intermediate element 13 and the slave element 14.
  • the slave element 14 upon receipt of a request 17 from, either the intermediate element 13 or the last element intermediate chain of intermediate elements, performs the defined by the operational instruction contained in the received and, in response to that request, may transmit to the initiator element 11 the data and / or an acknowledgment of receipt.
  • the slave element 14 can also transmit nothing to the element initiator 11.
  • any request received by an element intermediate or by the slave element understands, as an address transmitter, the address of the initiating element 11.
  • each element intermediate and the slave element receives a request identical to that that he would have received if it was sent directly from the element initiator 11 to the element under consideration. We thus manage to avoid operating protocol changes.
  • different types can be provided operational instructions that can be contained in requests: an unacknowledged storage instruction, an instruction storage with acknowledgment of receipt, an instruction supply and storage in memory, an instruction supply, an unaccounted copy instruction of receipt and a copy command with acknowledgment of receipt.
  • a storage request may include an issuer address field, filled in with the item's address initiator 11, an address field of the recipient element of the query, a message size field, an operational code defining the operational instruction and a data field.
  • a supply request will have the same structure, with the exception of data field.
  • a copy request will have the same structure, to this the data field is populated with the item's address slave of destination.
  • each request also includes a relatively short field that allows for the link between a request and a response, as long as the element initiator does not wait for the answer to a first request to send another request.
  • FIG. 5 illustrates the case of an application of the invention in the field of telecommunications.
  • a data disaggregator receives as input a line of broadband telecommunications, carrying a very high number of flows, for example a thousand, which are multiplexed. He sends out thousand independent lines.
  • Such disaggregation of data requires the management of a context depending on each line.
  • context defining the requirements of each line.
  • Memories of first-in, first-out type are typically used for memorize the incoming packets associated with a line. Then, periodically, these first-in, first-out memories are dumped to line interfaces. If the number of memories is high, by example one thousand, material realization with a memory by flow is particularly expensive.
  • the invention proposes a first-input memory manager first out, allowing to reduce the number of memories with a dynamic allocation of a memory to a line resulting from the execution of management software by a hardware module.
  • an element is provided intermediate 12 formed by the memory manager and an element slave 14 formed by a memory.
  • Initiator element 11 sends a query 15 to the intermediate element 12.
  • the request 15 may understand the address of the initiator element 11, the address of the element intermediate 12, the number of bytes of data, the operational code the desired instruction, for example storage with an acknowledgment of receipt, the address in the intermediate element 12, the address of the slave element 14, the address in the slave element 14, and a transaction identifier.
  • the intermediate element 12, manager memories transforms the selected memory address into a physical address present in the memory formed by the element slave 14.
  • the intermediate element 12 launches a request 16 including, as the sender address, the address of the initiator element 11, as recipient address, the memory containing the address data selected, the number of data transmitted, the operational code of storage with acknowledgment of receipt, the actual address representing the selected memory, data and transaction ID.
  • the slave element 14 Upon receipt of the request 16 of the intermediate element 12, the slave element 14, here a memory, containing the data of the selected line, updates the data of the selected memory then sends an acknowledgment to the initiator element 11.
  • Figure 6 illustrates the case of an unstacking instruction of data stored in a memory and sending the data to the initiator element 19, which is here another initiating element.
  • Initiator element 19, initiator of the transaction initiates a request 20 loading data from a corresponding memory virtually to the telecommunication line being processed.
  • the request for the initiator element 19 is addressed to the memory manager, aka the intermediate element 12, and includes the address of the element initiator 19, the address of the intermediate element 12, the number bytes of data, the operational code of the storage instruction with acknowledgment, the virtual address of the selected memory and the identifier of the transaction.
  • the intermediate element 12 performs the transformation of the selected memory virtual address to a physical address present in the memory forming the slave element 14 and containing the data of the line processed by the initiating element 19.
  • the element intermediary 12 issues a supply request to the slave element 14.
  • the request includes as issuer address, the address of the initiating element 19, the address of the memory containing the data required for the processed line, the number of bytes, the operational instruction of storage with acknowledged receipt, the actual address representing the selected memory and the transaction identifier.
  • the slave element 14 Upon receipt of said request, the slave element 14 which contains the searched data updates the data of the memory selected then sends the data to the initiator element 19 under the form of a response 22 containing the address of the initiator element 19, the data and the identifier of the transaction.
  • Figure 7 illustrates the case of an intermediate element 12 receiving a request 16 from an intermediate element 12 who himself received a request from an initiator 11.
  • Intermediate element 12 develops a response and sends it to a slave element 23.
  • the slave element 23 develops a answer 24 and sends it to the initiator element 11. So it's possible to send a response through a number of elements intermediaries according to the system architecture.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)
  • Small-Scale Networks (AREA)

Abstract

Système de communication entre des modules, comprenant un élément initiateur 11, au moins un élément intermédiaire 12 et un élément esclave 14, l'élément initiateur 11 étant équipé de moyens pour élaborer et envoyer une première requête 15 à un l'élément intermédiaire 12, ladite première requête 15 comprenant l'adresse de l'élément initiateur, l'adresse de l'élément intermédiaire, des données, et au moins une instruction devant être traitée par l'élément intermédiaire 12, l'élément intermédiaire 12 étant équipé de moyens pour recevoir une requête en provenance de l'élément initiateur 11, pour élaborer une deuxième requête 16 en réponse à la première requête 15, et pour envoyer la deuxième requête 16 à un élément esclave 14, ladite deuxième requête 16 comprenant l'adresse de l'élément esclave, au moins une instruction devant être traitée par l'élément esclave, des données, et l'adresse de l'élément initiateur, l'élément esclave 14 étant équipé de moyens pour recevoir une requête 16 en provenance de l'élément intermédiaire 12, et pour exécuter au moins une instruction contenue dans la deuxième requête 16.

Description

La présente invention concerne le domaine de la communication entre des modules.
Dans le domaine de l'informatique, les systèmes classiques sont centrés autour d'un bus spécialisé qui interconnecte plusieurs agents entre eux. On entend ici par « agent », un élément susceptible de recevoir ou d'émettre des données sur un bus, par exemple une unité centrale, une mémoire, un dispositif d'entrée/sortie, etc.
Suivant un protocole spécifique et propre au bus, un seul agent peut émettre simultanément un message sur le bus. L'exécution d'un traitement impose d'avoir des opérandes présentes dans l'agent qui va exécuter le traitement et par conséquent réclame le transfert de données entre agents par l'intermédiaire du système de communication. On entend ici par « opérande » un élément sur lequel porte une opération.
Par exemple, un système comprenant un coprocesseur arithmétique et une mémoire de type SDRAM qui contient des données doit, pour qu'une opération puisse être exécutée, transférer les opérandes stockées dans la mémoire par l'intermédiaire du contrôleur de la mémoire, puis par l'intermédiaire du bus vers le coprocesseur. Les résultats de l'opération seront transférés sur le même bus.
Il en résulte une limitation du nombre des échanges due à l'utilisation d'un bus qui forme une ressource de communication unique et bornée, la bande passante du système de communication formé par le bus étant finie.
Dans des applications où une performance élevée est nécessaire, l'exécution d'un programme nécessite une organisation spécifique des instructions pour optimiser et séquencer au mieux les différents échanges entre les agents qui sont connectés au bus de communication, afin d'optimiser l'utilisation de la bande passante. Les compilateurs peuvent prendre en charge ce type de problème, mais d'un façon non optimale et moyennant qu'une partie des ressources du système soit utilisée pour la gestion de ces échanges. Le système perd alors en efficacité et les performances se dégradent d'autant plus vite qu'un nombre élevé d'agents se trouve présent sur le bus de communication.
Pour remédier à ces inconvénients, il est souhaitable que plusieurs requêtes puissent être émises simultanément entre les différents agents présents et que tous les agents travaillent en parallèle et de façon séquentielle sans qu'il soit nécessaire d'avoir un séquenceur général pour ordonnancer le flux général de données.
L'invention vise à remédier aux inconvénients du système classique évoqué ci-dessus.
L'invention propose un système et un procédé de communication particulièrement performants, permettant des communications extrêmement rapides entre différents agents tout en utilisant de façon judicieuse les capacités du système de communication.
Le système de communication entre des modules, selon un aspect de l'invention, comprend un élément initiateur, au moins un élément intermédiaire et un élément esclave. L'élément initiateur est équipé de moyens pour élaborer une première requête et de moyens pour envoyer la première requête à l'élément intermédiaire.
La première requête comprend l'adresse de l'élément initiateur, l'adresse de l'élément intermédiaire, des données et au moins une instruction devant être traitée par l'élément intermédiaire. L'élément intermédiaire est équipé de moyens pour recevoir une requête en provenance de l'élément initiateur, de moyens pour élaborer une deuxième requête en réponse à la première requête et de moyens pour envoyer la deuxième requête à un élément esclave.
La deuxième requête comprend l'adresse de l'élément esclave, au moins une instruction devant être traitée par l'élément esclave, des données, et l'adresse de l'élément initiateur. L'élément esclave est équipé de moyens pour recevoir une requête en provenance de l'élément intermédiaire, et de moyens pour exécuter au moins une instruction contenue dans la deuxième requête.
On autorise ainsi des opérations complexes qui ne nécessitent qu'un faible nombre de requêtes ou messages. On peut en général se passer de messages émis par l'élément intermédiaire vers l'élément initiateur ou encore de messages émis par l'élément esclave vers l'élément intermédiaire.
Dans un mode de réalisation de l'invention, l'élément esclave comprend des moyens pour envoyer un accusé de réception à l'élément initiateur en réponse à la deuxième requête. L'accusé de réception sera envoyé sans passer par l'élément intermédiaire. On réduit ainsi le nombre de messages devant passer par le système de communication.
Dans un mode de réalisation de l'invention, l'élément esclave comprend des moyens pour envoyer des données à l'élément initiateur.
Dans un mode de réalisation de l'invention, le système comprend une pluralité d'éléments intermédiaires, un élément intermédiaire de rang n comprenant des moyens pour envoyer à un élément intermédiaire de rang n+1 une requête de rang n+1 en réponse à une requête de rang n. La requête de rang n+1 comprend l'adresse de l'élément intermédiaire de rang n+1, au moins une instruction devant être traitée par l'élément intermédiaire de rang n+1, et l'adresse de l'élément initiateur.
Une requête peut donc passer dans un nombre important d'éléments intermédiaires, chacun y effectuant le traitement pour lequel il est prévu et envoyant à l'élément suivant une nouvelle requête.
Les différentes requêtes peuvent comprendre un champ d'adresse de l'élément émetteur de ladite requête, ce champ étant préférablement renseigné avec l'adresse de l'élément initiateur. Ainsi, un élément intermédiaire voit la requête comme étant directement émise par l'élément initiateur et non pas par l'élément intermédiaire, de rang immédiatement précédent.
Dans un mode de réalisation de l'invention, l'élément intermédiaire comprend des moyens pour élaborer une troisième requête, la troisième requête comprenant l'adresse de l'élément initiateur, l'adresse d'un élément intermédiaire, des données, et au moins une instruction devant être traitée par l'élément intermédiaire, et des moyens pour envoyer la troisième requête audit élément intermédiaire.
Dans un mode de réalisation de l'invention, ledit élément intermédiaire comprend des moyens pour élaborer une quatrième requête, la quatrième requête comprenant l'adresse d'un élément esclave, des données, et au moins une instruction devant être traitée par l'élément esclave, et des moyens pour envoyer la quatrième requête audit élément esclave.
L'élément esclave peut comprendre des moyens pour recevoir la quatrième requête en provenance de l'élément intermédiaire, et des moyens pour exécuter au moins une instruction contenue dans la quatrième requête. Un tel système est particulièrement bien adapté pour le cas où les éléments esclaves sont des mémoires, et les éléments intermédiaires sont des contrôleurs de mémoires.
Avantageusement, les modules font partie d'un circuit intégré. Il est particulièrement avantageux qu'un seul circuit intégré comprenne tout le système, y compris les modules.
Toutefois, on peut prévoir que les modules font partie d'une pluralité de circuits intégrés disposés dans un support commun, et/ou présent sur des supports amovibles connectés entre eux. Lesdits supports amovibles peuvent être reliés par une nappe de fils, un fil coaxial, des paires différentielles, des diodes laser, etc. Un support peut être formé par une carte de circuit imprimé pourvue d'éléments soudés ou fixés de façon amovible.
Dans un mode de réalisation de l'invention, une requête subséquente, telle que la deuxième requête, comprend l'adresse de l'élément initiateur en tant qu'adresse de l'émetteur de la deuxième requête.
L'invention propose également un procédé de communication entre les modules dans un système d'interconnexion comprenant au moins trois éléments, dans lequel :
  • un élément initiateur envoie une première requête à un élément intermédiaire, ladite première requête comprenant l'adresse de l'élément initiateur, l'adresse de l'élément intermédiaire, des données, et au moins une instruction devant être traitée par l'élément intermédiaire,
  • en réponse à la première requête, l'élément intermédiaire envoie à l'élément esclave une deuxième requête comprenant l'adresse de l'élément initiateur, l'adresse de l'élément esclave, des données, et au moins une instruction devant être traitée par l'élément esclave, et
  • en réponse à la deuxième requête, l'élément esclave exécute l'instruction contenue dans la deuxième requête.
On parvient ainsi à optimiser l'utilisation des ressources d'un système de communication en limitant le nombre de requêtes ou de messages émis.
Dans un mode de réalisation de l'invention, en réponse à la deuxième requête, l'élément esclave envoie, en outre, un accusé de réception à l'élément initiateur. L'élément esclave peut envoyer des données à l'élément initiateur ou encore ne pas émettre de réponse. On entend par élément esclave, un élément situé à la fin d'une chaíne d'agents concernés par une transaction, susceptible d'exécuter une instruction, et de rendre compte à l'élément initiateur de la transaction. En d'autres termes, la réponse envoyée par un élément esclave à l'élément initiateur est dépourvue d'instruction. Ainsi, la transaction peut comprendre une pluralité de requêtes comprenant chacune au moins une instruction et, le cas échéant, une réponse consistant en un identifiant de transaction, l'adresse de l'élément initiateur, un accusé de réception et/ou des données.
Dans un mode de réalisation de l'invention, en réponse à la première requête, l'élément intermédiaire envoie à un autre élément intermédiaire une requête comprenant l'adresse de l'élément initiateur, l'adresse dudit autre élément intermédiaire, des données, et au moins une instruction devant être traitée par ledit autre élément intermédiaire.
Dans un mode de réalisation de l'invention, en réponse à une requête de rang n, un élément intermédiaire de rang n envoie à un élément intermédiaire de rang n+1, une requête de rang n+1 comprenant l'adresse de l'élément initiateur, l'adresse de l'élément intermédiaire de rang n+1, des données et au moins une instruction devant être traitée par l'élément intermédiaire de rang n+1.
Avantageusement, les éléments, initiateurs, intermédiaires et esclave, du système d'interconnexion, communiquent selon un même protocole.
Dans un mode de réalisation de l'invention, la première requête comprend l'adresse de l'élément esclave, et le nombre de données à transférer. En d'autres termes, l'élément initiateur élabore une requête de copie comprenant l'adresse de l'élément initiateur, l'adresse de l'élément intermédiaire, une instruction devant être traitée par l'élément intermédiaire, l'adresse de l'élément esclave et le nombre de données utilisées, et envoie la requête à l'élément intermédiaire. L'élément intermédiaire élabore une requête de stockage comprenant l'adresse de l'élément initiateur, l'adresse de l'élément esclave, une instruction devant être traitée par l'élément esclave, des données résultant de l'exécution de l'instruction traitée par l'élément intermédiaire et envoie la requête de stockage à l'élément esclave. L'élément esclave exécute l'instruction en stockant les données.
L'instruction à traiter par l'élément esclave est une instruction de chargement desdites données. Les données contenues dans la requête de copie comprennent l'adresse de l'élément intermédiaire, et l'adresse de l'élément esclave. Une instruction de copie d'un élément vers un autre peut donc être exécutée avec un faible nombre de requêtes émises, d'où une augmentation de la disponibilité des ressources du système de communication.
Dans un mode de réalisation de l'invention, une requête comprend l'adresse de l'élément initiateur, l'adresse de l'élément destinataire de la requête, une instruction opérationnelle, l'adresse de données dans un référentiel de l'élément destinataire de la requête, et un identifiant de la requête. L'instruction opérationnelle peut être choisie parmi une instruction de chargement, de stockage ou de copie. Une requête peut comprendre le nombre d'octets de données dans ladite requête. Une requête peut comprendre un élément permettant de faire le lien entre une requête et une réponse. Un élément initiateur peut envoyer une requête avant d'avoir reçu une réponse à une requête envoyée antérieurement. Ceci est particulièrement avantageux, car l'élément initiateur n'est pas ralenti par l'attente d'une réponse à une requête pour l'envoi d'une requête ultérieure. On parvient ainsi à augmenter la vitesse de traitement des données par l'élément initiateur.
L'invention permet donc non seulement une économie sur les ressources de communication d'un système de communication, mais aussi un accroissement de la vitesse de traitement des données par les différents agents.
L'invention sera mieux comprise à la lecture de la description détaillée de quelques modes de réalisation pris à titre d'exemples nullement limitatifs et illustrés par les dessins annexés, sur lesquels :
  • la figure 1 est un schéma synoptique d'un dispositif de gestion de communication de messages d'une puce de circuit intégré;
  • la figure 2 est un schéma synoptique d'une variante d'un dispositif de gestion de communication d'une puce de circuit intégré;
  • la figure 3 est un schéma fonctionnel d'un module de gestion de communication asynchrone de messages; et
  • les figures 4 à 7 sont des schémas fonctionnels d'un système de communication selon un aspect de l'invention.
Sur la figure 1, on a représenté une puce 1 de circuits intégrés avec un indicateur d'orientation 2, et des pattes 3 pour la communication avec l'extérieur de ladite puce 1. Les composants de la puce 1, de plus en plus nombreux, sont regroupés en modules multi-synchrones 4. On entend par module multi-synchrone un sous-ensemble de circuit cadencé par une ou plusieurs horloges dédiées audit module.
Un module de gestion de communication asynchrone 5 de messages, relié à au moins deux modules multi-synchrones 4, ici tous les modules multi-synchrones 4, par des liaisons point-à-point 6, gère la communication entre les différents modules 4 de la puce 1 de circuits intégrés. Les modules 4 communiquent avec l'extérieur de la puce 1 par des liaisons 7 entre les modules et des pattes 3 de la puce 1. Deux modules multi-synchrones 4 peuvent également, si les contraintes de conception l'obligent, communiquer directement par une liaison point-à-point 6 identique aux liaisons point-à-point 6 entre le module de gestion de communication asynchrone 5 et chaque module multi-synchrone 4. Il est toutefois préférable que les communications entre deux modules synchrones 4 passent par le module de gestion de communication asynchrone 5.
Un ensemble 8 d'au moins une horloge, dédiée à un unique module multi-synchrone, détermine les références de cadencement des fréquences de fonctionnement dudit module multi-synchrone 4. Il est à noter que le module 5 est un cas particulier de module multi-synchrone, et qu'il possède également son propre ensemble 8 d'au moins une horloge.
Un unique protocole de communication prédéterminé spécifique est utilisé pour les communications entre lesdits modules de la puce 1 s'effectuant sur les liaisons 6.
Chaque liaison point-à-point 6 comprend, pour chaque extrémité, des moyens d'émission et des moyens de réception de messages, chaque moyen de réception comprenant une mémoire de type premier entré premier sorti, communément appelée "pile FIFO".
Sur une liaison 6, les données d'horloges et les autres données sont envoyées simultanément. Au cours du transport, les données d'horloge subissent un déphasage, et les données d'horloge d'arrivée n'ont pas la même phase que les données d'horloge de départ. Les autres données subissent alors une dispersion temporelle. Si la dispersion temporelle est trop importante, une re-synchronisation est effectuée.
La figure 2 présente une variante du dispositif de la figure 1. Le dispositif comprend au moins deux modules de gestion de communication asynchrones 5, ici deux sont représentés. Il peut être nécessaire, en regard de la complexité d'un circuit et de sa partition en un nombre important de modules multi-synchrones, de disposer de plusieurs modules de gestion de communication asynchrone 5. De plus, le circuit peut comprendre un ou plusieurs modules 9, dont un seul est représenté ici, non reliés aux modules de gestion de communication asynchrone 5. Ce dispositif peut être vu de l'extérieur comme un unique module de gestion de communication asynchrone permettant de retrouver un dispositif semblable à celui de la figure 1.
Cependant il existe une différence, car le fait de mettre plusieurs modules de gestion de communication asynchrone nécessite des étapes supplémentaires pour la communication entre deux modules synchrones, notamment une liaison 6 supplémentaire pour le transfert des échanges de données, et plusieurs traitements successifs correspondant au nombre de modules de gestion de communication asynchrone.
La figure 3 est un schéma fonctionnel d'un module de gestion de communication asynchrone 5. Celui-ci comprend des entrées 5a de réception de messages de données provenant d'autres modules et des sorties 5b de transmission de messages de données vers d'autres modules. Les messages en entrée sont stockés temporairement, par exemple dans une mémoire de type premier entré premier sorti, communément appelée "pile FIFO" des moyens de réception de messages d'une liaison point-à-point 6. Ce stockage temporaire permet de pouvoir gérer les messages en entrée, même si ceux-ci arrivent à une cadence supérieure à la capacité de traitement des messages du module 5. Le module de gestion de communication asynchrone 5 comprend en outre des moyens 5c pour aiguiller des messages de sortie vers leur module destinataire, ainsi que des moyens 5d pour gérer l'aiguillage des messages de sortie. Un message en entrée est donc stocké dans la pile FIFO des moyens de réception de messages d'une liaison point-à-point 6, puis pris en compte par le module 5, qui va gérer son aiguillage vers son module synchrone 4 de destination par les moyens 5c et 5d. Ce message quitte alors le module 5 par la sortie 5b et transite par les moyens d'émission de messages d'une liaison point-à-point 6 au module synchrone 4 de destination du message.
Comme illustré sur la figure 4, le système de communication comprend un élément 11, dit « élément initiateur », apte à générer une transaction se traduisant par une pluralité de requêtes, un élément intermédiaire 12, apte à traiter une requête et à envoyer une requête, un élément intermédiaire 13, apte à recevoir une requête et à émettre une requête, et un élément esclave 14, apte à envoyer à l'élément initiateur 11 des données et/ou un accusé de réception. L'élément initiateur initie la transaction en élaborant une requête comprenant l'adresse dudit élément initiateur, l'adresse de l'élément intermédiaire 12, une instruction opérationnelle devant être exécutée par l'élément intermédiaire 12 et, en général, des données. L'élément initiateur 11 comprend également des moyens d'émission de ladite requête à destination de l'élément intermédiaire 12.
L'élément intermédiaire 12 reçoit la requête 15 envoyée par l'élément initiateur 11 et effectue un traitement sur les données reçues en fonction de l'instruction opérationnelle contenue dans la requête 15 reçue. L'élément intermédiaire 12 comprend un moyen pour élaborer une deuxième requête 16 destinée à l'élément intermédiaire 13 de la part de l'élément initiateur 11, et un moyen pour envoyer ladite requête 16. La requête 16 envoyée par l'élément intermédiaire 12 à l'élément intermédiaire 13 comprend l'adresse de l'élément intermédiaire 13, l'adresse de l'élément initiateur 11 en tant qu'adresse de l'émetteur de ladite requête, une instruction opérationnelle devant être exécutée par l'agent intermédiaire 13, et des données.
L'élément intermédiaire 13, qui comprend également des moyens d'élaboration et des moyens d'envoi de requête, à réception de la requête 16 envoyée par l'élément intermédiaire 12, effectue le traitement défini par l'instruction opérationnelle conclue dans ladite requête 16 et élabore une requête 17 contenant, à l'instar de la précédente, l'adresse du destinataire de ladite requête 17, l'adresse de l'élément initiateur 11 en tant qu'adresse d'émetteur de ladite requête, des données, et une instruction opérationnelle. La requête 17 générée par l'élément intermédiaire 13 peut être envoyée directement à l'élément esclave 14 ou à un autre élément intermédiaire, non représenté, la transaction pouvant passer par un nombre non limité d'éléments intermédiaires, entre l'élément intermédiaire 13 et l'élément esclave 14.
L'élément esclave 14, à réception d'une requête 17 provenant, soit de l'élément intermédiaire 13 ou, soit du dernier élément intermédiaire de la chaíne d'éléments intermédiaires, effectue le traitement défini par l'instruction opérationnelle contenue dans la requête reçue et, en réponse à ladite requête, peut transmettre à l'élément initiateur 11 les données et/ou un accusé de réception. L'élément esclave 14 peut aussi ne rien transmettre à l'élément initiateur 11.
On comprend que toute requête reçue par un élément intermédiaire ou par l'élément esclave comprend, en tant qu'adresse d'émetteur, l'adresse de l'élément initiateur 11. Ainsi, chaque élément intermédiaire et l'élément esclave, reçoit une requête identique à celle qu'il aurait reçue si elle était envoyée directement de l'élément initiateur 11 à l'élément considéré. On parvient ainsi à éviter les modifications de protocole de fonctionnement.
À titre d'exemple, on peut prévoir différents types d'instructions opérationnelles pouvant être contenus dans les requêtes: une instruction de stockage sans accusé de réception, une instruction de stockage avec accusé de réception, une instruction d'approvisionnement et de stockage en mémoire, une instruction d'approvisionnement, une instruction de copie sans accusé de réception et une instruction de copie avec accusé de réception.
À titre d'exemple, une requête de stockage pourra comprendre un champ d'adresses d'émetteur, renseigné avec l'adresse de l'élément initiateur 11, un champ d'adresses de l'élément destinataire de la requête, un champ de taille de message, un code opérationnel définissant l'instruction opérationnelle et un champ de données. Une requête d'approvisionnement aura la même structure, à l'exception du champ de données. Une requête de copie aura la même structure, à ceci près que le champ de données est renseigné avec l'adresse de l'élément esclave de destination.
Il est particulièrement avantageux que chaque requête comprenne en outre un champ relativement court qui permette de faire le lien entre une requête et une réponse, dans la mesure où l'élément initiateur n'attend pas la réponse à une première requête pour émettre une autre requête.
La figure 5 illustre le cas d'une application de l'invention dans le domaine des télécommunications. Dans ce domaine, certains équipements jouent le rôle de désagrégateurs de données. Un désagrégateur de données reçoit en entrée une ligne de télécommunications haut débit, portant un nombre très élevé de flux, par exemple mille, qui sont multiplexés. Il envoie en sortie mille lignes indépendantes. Une telle désagrégation de données nécessite la gestion d'un contexte dépendant de chaque ligne. On entend ici par contexte, la définition des exigences de chaque ligne. Des mémoires de type premier entré premier sorti sont généralement utilisées pour mémoriser les paquets entrants associés à une ligne. Puis, périodiquement, ces mémoires, premier entré premier sorti sont vidées vers des interfaces de lignes. Si le nombre de mémoires est élevé, par exemple mille, la réalisation matérielle avec une mémoire par flux est particulièrement coûteuse.
L'invention propose un gestionnaire de mémoires premier entré premier sorti, permettant de réduire le nombre de mémoires avec une attribution dynamique d'une mémoire à une ligne résultant de l'exécution d'un logiciel de gestion par un module matériel.
Dans l'exemple illustré sur la figure 5, il est prévu un élément intermédiaire 12 formé par le gestionnaire de mémoires et un élément esclave 14 formé par une mémoire. L'élément initiateur 11 envoie une requête 15 à l'élément intermédiaire 12.
Dans le cas d'une transaction de copie, la requête 15 peut comprendre l'adresse de l'élément initiateur 11, l'adresse de l'élément intermédiaire 12, le nombre d'octets de données, le code opérationnel de l'instruction voulue, par exemple stockage avec accusé de réception, l'adresse dans l'élément intermédiaire 12, l'adresse de l'élément esclave 14, l'adresse dans l'élément esclave 14, et un identificateur de transaction. L'élément intermédiaire 12, gestionnaire de mémoires, transforme l'adresse de mémoire sélectionnée dans une adresse physique présente dans la mémoire formée par l'élément esclave 14.
L'élément intermédiaire 12 lance une requête 16 comprenant, comme adresse d'émetteur, l'adresse de l'élément initiateur 11, comme adresse de destinataire, la mémoire contenant les données de l'adresse sélectionnée, le nombre de données transmis, le code opérationnel de stockage avec accusé de réception, l'adresse réelle représentant la mémoire sélectionnée, les données et l'identificateur de transaction.
À réception de la requête 16 de l'élément intermédiaire 12, l'élément esclave 14, ici une mémoire, contenant les données de la ligne sélectionnée, met à jour les données de la mémoire sélectionnée puis envoie un accusé de réception à l'élément initiateur 11.
La figure 6 illustre le cas d'une instruction de dépilage des données présentes dans une mémoire et l'envoi desdites données à l'élément initiateur 19, qui est donc ici un autre élément initiateur. L'élément initiateur 19, initiateur de la transaction, lance une requête 20 de chargement de données provenant d'une mémoire correspondant virtuellement à la ligne de télécommunications traitée. La requête de l'élément initiateur 19 est adressée au gestionnaire de mémoires, alias l'élément intermédiaire 12, et comprend l'adresse de l'élément initiateur 19, l'adresse de l'élément intermédiaire 12, le nombre d'octets de données, le code opérationnel de l'instruction de stockage avec accusé réception, l'adresse virtuelle de la mémoire sélectionnée et l'identificateur de la transaction.
L'élément intermédiaire 12 effectue la transformation de l'adresse virtuelle de mémoire sélectionnée vers une adresse physique présente dans la mémoire formant l'élément esclave 14 et contenant les données de la ligne traitée par l'élément initiateur 19. L'élément intermédiaire 12 émet une requête 21 d'approvisionnement vers l'élément esclave 14. La requête comprend comme adresse d'émetteur, l'adresse de l'élément initiateur 19, l'adresse de la mémoire contenant les données voulues pour la ligne traitée, le nombre d'octets, l'instruction opérationnelle de stockage avec accusé réception, l'adresse réelle représentant la mémoire sélectionnée et l'identificateur de transaction.
À réception de ladite requête, l'élément esclave 14 qui contient les données recherchées met à jour les données de la mémoire sélectionnée puis envoie les données à l'élément initiateur 19 sous la forme d'une réponse 22 contenant l'adresse de l'élément initiateur 19, les données et l'identificateur de la transaction.
La figure 7 illustre le cas d'un élément intermédiaire 12 recevant une requête 16 en provenance d'un élément intermédiaire 12 qui a lui-même reçu une requête 15 en provenance d'un élément initiateur 11. L'élément intermédiaire 12 élabore une réponse et l'envoie à un élément esclave 23. L'élément esclave 23 élabore une réponse 24 et l'envoie à l'élément initiateur 11. Il est donc possible de faire transiter une réponse par un certain nombre d'éléments intermédiaires en fonction de l'architecture du système.

Claims (23)

  1. Système de communication entre des modules (5), caractérisé par le fait qu'il comprend un élément initiateur (11), au moins un élément intermédiaire (12) et un élément esclave (14), l'élément initiateur (11) étant équipé de moyens pour élaborer une première requête, et de moyens pour envoyer la première requête (15) à un l'élément intermédiaire (12), ladite première requête (15) comprenant l'adresse de l'élément initiateur, l'adresse de l'élément intermédiaire, des données, et au moins une instruction devant être traitée par l'élément intermédiaire, l'élément intermédiaire (12) étant équipé de moyens pour recevoir une requête en provenance de l'élément initiateur (11), de moyens pour élaborer une deuxième requête (16) en réponse à la première requête (15), et de moyens pour envoyer la deuxième requête (16) à un élément esclave (14), ladite deuxième requête (16) comprenant l'adresse de l'élément esclave, au moins une instruction devant être traitée par l'élément esclave, des données, et l'adresse de l'élément initiateur, l'élément esclave (14) étant équipé de moyens pour recevoir une requête (16) en provenance de l'élément intermédiaire (12), et de moyens pour exécuter au moins une instruction contenue dans la deuxième requête (16).
  2. Système selon la revendication 1, caractérisé par le fait que l'élément esclave (14) comprend des moyens pour envoyer un accusé de réception à l'élément initiateur (11) en réponse à la deuxième requête.
  3. Système selon la revendication 1 ou 2, caractérisé par le fait que l'élément esclave (14) comprend des moyens pour envoyer des données à l'élément initiateur (11).
  4. Système selon l'une quelconque des revendications précédentes, caractérisé par le fait qu'il comprend une pluralité d'éléments intermédiaires, un nième élément intermédiaire comprenant des moyens pour envoyer à un (n+1)ième élément intermédiaire une (n+1)ième requête en réponse à une nième requête, la (n+1)ième requête comprenant l'adresse du (n+1)ième élément intermédiaire, au moins une instruction devant être traitée par le (n+1)ième élément intermédiaire, et l'adresse de l'élément initiateur (11).
  5. Système selon l'une quelconque des revendications précédentes, caractérisé par le fait que la première requête comprend en plus l'adresse de l'élément esclave, et le nombre de données à transférer.
  6. Système selon l'une quelconque des revendications précédentes, caractérisé par le fait que l'élément intermédiaire (12) comprend une mémoire.
  7. Système selon l'une quelconque des revendications précédentes, caractérisé par le fait que lesdits modules (5) font partie d'un circuit intégré.
  8. Système selon l'une quelconque des revendications précédentes, caractérisé par le fait que lesdits modules (5) font partie d'une pluralité de circuits intégrés disposés dans un support commun, et/ou présent sur des supports amovibles connectés entre eux.
  9. Système selon l'une quelconque des revendications précédentes, caractérisé par le fait qu'une requête subséquente comprend l'adresse de l'élément initiateur en tant qu'adresse de l'émetteur de ladite requête subséquente.
  10. Procédé de communication entre des modules dans un système d'interconnexion comprenant au moins trois éléments, dans lequel:
    un élément initiateur envoie une première requête à un élément intermédiaire, ladite première requête comprenant l'adresse de l'élément initiateur, l'adresse de l'élément intermédiaire, des données, et au moins une instruction devant être traitée par l'élément intermédiaire,
    en réponse à la première requête, l'élément intermédiaire envoie à l'élément esclave une deuxième requête comprenant l'adresse de l'élément initiateur, l'adresse de l'élément esclave, des données, et au moins une instruction devant être traitée par l'élément esclave, et
    en réponse à la deuxième requête, l'élément esclave exécute l'instruction contenue dans la deuxième requête.
  11. Procédé selon la revendication 10, dans lequel en réponse à la deuxième requête, l'élément esclave envoie, en outre, un accusé de réception à l'élément initiateur.
  12. Procédé selon la revendication 10 ou 11, dans lequel en réponse à la deuxième requête, l'élément esclave envoie, en outre, des données à l'élément initiateur.
  13. Procédé selon l'une quelconque des revendications 10 à 12, dans lequel en réponse à la première requête, l'élément intermédiaire envoie à un autre élément intermédiaire une requête comprenant l'adresse de l'élément initiateur, l'adresse dudit autre élément intermédiaire, des données, et au moins une instruction devant être traitée par ledit autre élément intermédiaire.
  14. Procédé selon l'une quelconque des revendications 10 à 13, dans lequel en réponse à une nième requête, un nième élément intermédiaire envoie à un (n+1)ième élément intermédiaire une (n+1)ième requête comprenant l'adresse de l'élément initiateur, l'adresse du (n+1)ième élément intermédiaire, des données, et au moins une instruction devant être traitée par le (n+1)ième élément intermédiaire.
  15. Procédé selon l'une quelconque des revendications 10 à 14, dans lequel les éléments, initiateur, intermédiaires et esclave, du système d'interconnexion communiquent selon un même protocole.
  16. Procédé selon l'une quelconque des revendications 10 à 15, dans lequel en réponse à une requête de copie, l'élément intermédiaire interprète les données contenues dans ladite requête comme étant une adresse, et élabore une requête comprenant l'adresse de l'élément initiateur contenue dans la requête de copie, l'adresse d'un élément esclave, des données résultant de l'exécution de l'instruction traitée par l'élément intermédiaire, et au moins une instruction devant être traitée par l'élément esclave.
  17. Procédé selon la revendication 16, dans lequel l'instruction devant être traitée par l'élément esclave est une instruction de stockage desdites données.
  18. Procédé selon la revendication 16 ou 17, dans lequel les données contenues dans la requête de copie comprennent l'adresse de l'élément esclave.
  19. Procédé selon l'une quelconque des revendications 10 à 18, dans lequel une requête comprend l'adresse de l'élément initiateur, l'adresse de l'élément destinataire de la requête, une instruction opérationnelle, l'adresse de données dans un référentiel de l'élément destinataire de la requête, et un identifiant de requête.
  20. Procédé selon la revendication 19, dans lequel l'instruction opérationnelle est choisie parmi une instruction de chargement, de stockage ou de copie.
  21. Procédé selon la revendication 19 ou 20, dans lequel une requête comprend le nombre d'octets de données dans ladite requête.
  22. Procédé selon l'une quelconque des revendications 19 à 21, dans lequel une requête comprend un élément permettant de faire le lien entre une requête et une réponse.
  23. Procédé selon l'une quelconque des revendications 19 à 22, dans lequel un élément initiateur envoie une requête avant d'avoir reçu une réponse à une requête envoyée antérieurement.
EP04291345A 2003-07-04 2004-05-28 Système et procédé de communication entre des modules Withdrawn EP1494408A3 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0308225 2003-07-04
FR0308225A FR2857114B1 (fr) 2003-07-04 2003-07-04 Systeme et procede de communication entre des modules

Publications (2)

Publication Number Publication Date
EP1494408A2 true EP1494408A2 (fr) 2005-01-05
EP1494408A3 EP1494408A3 (fr) 2008-05-14

Family

ID=33427700

Family Applications (1)

Application Number Title Priority Date Filing Date
EP04291345A Withdrawn EP1494408A3 (fr) 2003-07-04 2004-05-28 Système et procédé de communication entre des modules

Country Status (3)

Country Link
US (1) US20050086412A1 (fr)
EP (1) EP1494408A3 (fr)
FR (1) FR2857114B1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720099B2 (en) 2007-08-13 2010-05-18 Honeywell International Inc. Common protocol and routing scheme for space data processing networks
US8031633B2 (en) 2007-08-13 2011-10-04 Honeywell International Inc. Virtual network architecture for space data processing

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2858895B1 (fr) * 2003-08-13 2006-05-05 Arteris Procede et dispositif de gestion de priorite lors de la transmission d'un message
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
FR2890766B1 (fr) * 2005-09-12 2007-11-30 Arteris Sa Systeme et procede de communication asynchrone sur circuit, entre des sous-circuits synchrones
FR2899413B1 (fr) * 2006-03-31 2008-08-08 Arteris Sa Systeme de commutation de message
FR2900017B1 (fr) * 2006-04-12 2008-10-31 Arteris Sa Systeme d'interconnexions de blocs fonctionnels externes sur puce muni d'un unique protocole parametrable de communication
FR2901437B1 (fr) * 2006-05-16 2008-08-08 Arteris Sa Procede de realisation d'un circuit de synchronisation de donnees echangees de maniere asynchrone entre deux blocs synchrones, et circuit de synchronisation elabore a partir d'un tel procede
FR2902957B1 (fr) * 2006-06-23 2008-09-12 Arteris Sa Systeme et procede de gestions de messages transmis dans un reseau d'interconnexions
FR2904445B1 (fr) * 2006-07-26 2008-10-10 Arteris Sa Systeme de gestion de messages transmis dans un reseau d'interconnexions sur puce
US8868397B2 (en) * 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US9495290B2 (en) * 2007-06-25 2016-11-15 Sonics, Inc. Various methods and apparatus to support outstanding requests to multiple targets while maintaining transaction ordering
US8972995B2 (en) 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US10921874B2 (en) 2017-03-06 2021-02-16 Facebook Technologies, Llc Hardware-based operating point controller for circuit regions in an integrated circuit
US11231769B2 (en) 2017-03-06 2022-01-25 Facebook Technologies, Llc Sequencer-based protocol adapter

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535405A (en) * 1993-12-23 1996-07-09 Unisys Corporation Microsequencer bus controller system
US5651002A (en) * 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US6434743B1 (en) * 1999-04-23 2002-08-13 Sun Microsystems, Inc. Method and apparatus for allocating stack slots
US6400720B1 (en) * 1999-06-21 2002-06-04 General Instrument Corporation Method for transporting variable length and fixed length packets in a standard digital transmission frame
KR100644596B1 (ko) * 2000-07-27 2006-11-10 삼성전자주식회사 버스 시스템 및 그 버스 중재방법
KR100467643B1 (ko) * 2000-12-28 2005-01-24 엘지전자 주식회사 무선 랜에서의 멀티미디어 데이터 전송 방법
US7164678B2 (en) * 2001-06-25 2007-01-16 Intel Corporation Control of processing order for received network packets
US7277449B2 (en) * 2002-07-29 2007-10-02 Freescale Semiconductor, Inc. On chip network
CN100390771C (zh) * 2003-05-07 2008-05-28 皇家飞利浦电子股份有限公司 用于发送数据的处理系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GUERRIER P ET AL: "A Generic Architecture for On-Chip Packet-Switched Interconnections" -, 27 mars 2000 (2000-03-27), pages 250-256, XP010377472 *
J.ROSENBERG,H.SCHULZERINNE: "SIP:Sesion Initiation Protocol" -, 27 février 2002 (2002-02-27), pages 1-194, XP015005931 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720099B2 (en) 2007-08-13 2010-05-18 Honeywell International Inc. Common protocol and routing scheme for space data processing networks
US8031633B2 (en) 2007-08-13 2011-10-04 Honeywell International Inc. Virtual network architecture for space data processing

Also Published As

Publication number Publication date
EP1494408A3 (fr) 2008-05-14
US20050086412A1 (en) 2005-04-21
FR2857114A1 (fr) 2005-01-07
FR2857114B1 (fr) 2005-09-30

Similar Documents

Publication Publication Date Title
EP1494408A2 (fr) Système et procédé de communication entre des modules
EP1507374B1 (fr) Procédé et dispositif de gestion de priorité lors de la transmission d'un message.
US20190004868A1 (en) System and method for distributed graphics processing unit (gpu) computation
CN106412137A (zh) 一种文件下载系统及文件下载方法
EP2507711B1 (fr) Controleur d'acces direct a une memoire pour le transfert direct de donnees entre memoires de plusieurs dispositifs peripheriques
JP2022551742A (ja) 会話メッセージ表示方法、装置、電子機器および記憶媒体
CN107370657A (zh) 设备间应用程序联动方法及系统
WO2007048987A1 (fr) Routeur et reseau de routage
EP1641197B1 (fr) Architecture de communication NoC (réseau sur puce ) pour applications de type flots de données
EP3217290A1 (fr) Systeme sur puce et procede d'echange de donnees entre noeuds de calculs d'un tel systeme sur puce
US8265095B2 (en) Resource management finite state machine for handling resource management tasks separate from a protocol finite state machine
EP1531589B1 (fr) Système et procédé de transmission d'une séquence de messages dans un réseau d'interconnexions
EP2254066A1 (fr) Méthode d'aide à la réalisation et de validation d'une plateforme avionique
EP1845456B1 (fr) Système d'interconnexions de blocs fonctionnels externes sur puce muni d'un unique protocole parametrable de communication
EP2507712B1 (fr) Systeme autorisant des transferts directs de donnees entre des memoires de plusieurs elements de ce systeme
FR2466808A1 (fr) Systeme pour controler la duree de l'intervalle de temps entre blocs dans un systeme de communication calculateur a calculateur
US20090132582A1 (en) Processor-server hybrid system for processing data
FR2815801A1 (fr) Protocole de transmission d'une pluralite de flux logiques d'echange multiple de couples de commande/reponse sur un canal physique unique d'echange entre maitre et esclave et systeme de suivi et de controle d'execution d'appliquettes
EP0524089A1 (fr) Structure de logiciel pour système de traitement de données, notamment pour système de télécommunications
CN105915587A (zh) 内容推送方法、系统、以及缓存服务器
FR3057127A1 (fr) Processeur adapte pour un reseau ethernet commute deterministe
FR3031822A1 (fr) Telechargement de donnees sur un equipement distant
US20230068635A1 (en) Cross machine request forwarding
CN110430256B (zh) 推送交易消息报文的方法、装置和计算机系统
EP1443734A1 (fr) Dispositif de traitement de données audio et vidéo pour une communication multimédia via un réseau local établi au sein d'un réseau asynchrone

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL HR LT LV MK

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

AK Designated contracting states

Kind code of ref document: A3

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL HR LT LV MK

18D Application deemed to be withdrawn

Effective date: 20071201