System and method for managing messages transmitted in an interconnect network

Information

  • Patent Application
  • 20070297404
  • Publication Number
    20070297404
  • Date Filed
    September 06, 2006
    17 years ago
  • Date Published
    December 27, 2007
    16 years ago
Abstract
The system for managing messages transmitted in an interconnect network connecting blocks on a chip comprises agents linked by point-to-point links able to transmit, by static routing, messages comprising a priority information item quantified on N levels. The system comprises at least one agent (1) initiating request messages to at least one recipient agent (2). A request message comprises a header and, where appropriate, content data. The system comprises means (5) of generating a priority message, to a recipient agent (2), to which at least one request message has previously been transmitted with no response message received in return.
Description

Other aims, characteristics and advantages of the invention will become apparent from reading the description that follows, of a few examples that are by no means limiting, and given with reference to the appended drawings, in which:



FIG. 1 is a schematic view of an embodiment of a system for managing messages transmitted in an interconnect network of IP blocks on a silicon chip, according to one aspect of the invention; and



FIGS. 2 and 3 illustrate the propagation in the interconnect network of the level of the priority information of a priority message, according to one aspect of the invention.





As illustrated in FIG. 1, a system for managing messages transmitted in an interconnect network connecting blocks on a chip comprises an initiating agent 1 and a recipient agent 2. An interconnect network is described in document FR 2 858 895 to which the reader is referred. The document FR 2 858 895 gives an example of priority propagation.


The interconnect network comprises agents 1, 2, 9 and 10 linked by point-to-point links able to transmit, by static routing, messages comprising a priority information item quantified on N levels.


The links of the interconnect network are unidirectional links.


The number N of priority levels is unlimited, but it is preferably equal to 2 or 3.


Only one recipient agent 2 is represented in FIG. 1, but the invention applies to an embodiment in which several initiating agents exchange messages with a plurality of recipient agents. In this case, the resources are shared.


The system also comprises an assignment module 3, a module 4 for determining the value of a parameter representative of the state of the interconnect network, and a module 5 for generating priority messages. The assignment module 3 is capable of modifying or leaving unchanged the priority level of a request message sent by the initiating agent 1.


Furthermore, the system comprises a module 6 for managing information relating to the request messages transmitted by the assignment module 3 to the recipient agent 2. The management module 6 is used to manage or, in other words, to store and update, information concerning the request messages sent by the initiating agent 1 for the recipient agent 2.


The management module 6 comprises a module 7 for storing, and a module 8 for updating parameters representative of the request messages transmitted by the assignment module 3 to the recipient agent 2. The storage module 7 is used to store the values of said parameters in memory.


A number of switching agents can be disposed on the request message path between the initiating agent 1 and the recipient agent 2, and a number of switching agents can be disposed on the response message path between the recipient agent 2 and the initiating agent 1.


In this example, only one switching agent 9 and one switching agent 10 have respectively been represented on the request routing path between the initiating agent 1 and the recipient agent 2 and on the response routing path between the recipient agent 2 and the initiating agent 1.


The initiating agent 1 is connected to the assignment module 3 by a unidirectional link 11. The assignment module 3 is connected to an input of the switching agent 9 by a unidirectional link 12.


An output of the switching agent 9 is connected to the recipient agent 2 by a unidirectional link 13.


The recipient agent 2 is connected to an input of the switching agent 10 by a unidirectional link 14, and an output of the switching agent 10 is connected to the initiating agent 1 by a unidirectional link 15.


Furthermore, the unidirectional link 15 is connected, by a branch 15a, to the updating module 8 to enable the updating module 8 to receive as input the response messages from the recipient agent 2, in order to be able to update the values of the parameters stored by the storage module 7.


The determination module 4 is connected by a link 16 to the assignment module 3, and to the generation module 5 by a link 17.


The assignment module 3 is connected to the storage module 7 by a link 18. Thus, when the assignment module 3 transmits a request message sent by the initiating agent (1) to the recipient agent 2, the storage module 7 can store values of parameters representative of this request message with, where appropriate, a priority level modified by the assignment module 3.


Furthermore, the updating module 8 is connected to the storage module 7 by a link 19, enabling the updating module 8 to update the values of the parameters stored by the storage module 7.


The storage module 7 is connected to the generation module 5 by a link 20 in order to enable the header of a priority message to be constructed from data contained in the storage means 7, when the management module 6 decides to have a priority message generated by the generation module 5. Furthermore, the generation module 5 is connected to the link 12 by a link 21. The determination module 4 and management module 6 are connected by a link 22 for transmitting the current priority level defined by the determination module 4 in order for the management module 6 to be able to compare it with the priority level stored in the storage module 7, to determine whether a priority message must be sent.


The parameter representative of the state of the network, determined by the determination module 4, can, for example, be the quantity of data stored in a response queue of the initiating agent 1. The parameter representative of the state of the network, determined by the determination module 4, can also be the number of periods of the clock timing signal controlling the sending of messages from the initiating agent 1, separating the sending of a request message from said initiating agent 1 and the receipt of the associated response message. Furthermore, the parameter representative of the state of the network, determined by the determination module 4, can be a pseudo-data rate, calculated by adding up, for a request message sent by the initiating agent 1 to the recipient agent 2, and transmitted by the assignment module 3, the quantity of data associated with the message, and by subtracting a predetermined quantity of data for each period of the clock timing signal controlling the sending of messages from the initiating agent 1. The data associated with a request message can be the content data of the request, in a data write request for example, or the content of the response message associated with the request, in a data read request for example.


Of course, the parameter representative of the state of the network is not limited to these three examples.


In the rest of the description, the parameter representative of the state of the network is said pseudo-rate, and the determination module 4 determines the value of the pseudo-rate.


The description relates to the general case with N priority levels, but a case often used is with two priority levels: priority and non-priority.


When the initiating agent 1 sends a request message to the recipient agent 2, the latter is transmitted by the link 11.


Depending on the value of the pseudo-rate determined by the determination module 4 and transmitted to the assignment module 3 by the link 16, the assignment module 3 modifies or leaves unchanged the priority level included in the header of the message sent by the initiating agent 1.


The assignment module 3 comprises N−1 stored pseudo-rate threshold values, determining N ranges of pseudo-rate values respectively associated with N priority levels.


Depending on the determined value of the pseudo-rate, the assignment module 3 assigns the message sent by the initiating agent 1 the priority level corresponding to one of the N ranges containing the value of the pseudo-rate determined by the determination module 4.


Also, the assignment module 3 transmits the message sent by the initiating agent 1 over the link 12, either with the same priority information level or with a new priority level.


The storage module 7 is used to store the value of parameters representative of the request messages transmitted by the assignment module 3 to the recipient agent 2.


These parameters comprise, for example, an indicator representative of the initiating agent 1, an indicator representative of the recipient agent 2, the level of the priority information assigned by the assignment module 3 to the last request message sent by the initiating agent 1 or by the generation module 5 to the recipient agent 2, and a counter of the number of request messages transmitted by the assignment module 3 to the recipient agent 2 with no corresponding response message returned.


The updating module 8 is used, via the link 19, to update the value of the parameters stored in the storage module 7, according to the response messages transmitted by the recipient agent 2 to the initiating agent 1 via the links 14 and 15, also transmitted to the updating module 8 via the link 15a.


According to the values of the parameters stored in the storage module 7, transmitted to the generation module 5 via the link 20, the generation module 5 can generate a priority message destined for recipient agent 2 to which at least one request message has previously been transmitted without the initiating agent 1 having received the associated response message in return.


The priority level of this priority message is then propagated to the request messages previously transmitted by the initiating agent 1 to the recipient agent 2 that are blocked in the network between the initiating agent 1 and the recipient agent 2.


The recipient agent 2 is also capable, when it receives a priority message, of transmitting, in return, a response message of equal priority level, to the initiating agent 1, so as to propagate the priority level of the priority message over the routing path of the return messages to the initiating agent 1.


Thus, the priority level of this priority message can be propagated on this return path, which can contain response messages blocked in return. In combination with the priority propagation mechanism, these messages then benefit from the priority level of the priority message.


A priority message is sent by the generation module 5 when the initiating agent 1 is no longer sending request messages to the recipient agent 2, and there is at least one request message, of a priority level lower than the current priority level, previously transmitted with no response message received in return.


In practice, if the initiating agent 1 could send a new request message with a higher priority, the latter would propagate this priority using the priority propagation mechanisms provided. In other words, if the initiating agent 1 can send a message, it sends it with the current priority, which makes it pointless to send a priority message.


The mechanism for propagating the priority information level of a priority message or a message of higher priority level is illustrated in more detail in FIGS. 2 and 3.



FIG. 2 illustrates a switching agent comprising four inputs 20, 21, 22 and 23 and one output 24 for transmitting messages to the recipient agent 2.


An arbitration is applied for each output, in this case by an arbiter 25.


Four messages B1, B2, B3 and B4 are respectively input to the switching agent on the inputs 20, 21, 22 and 23.


P1, P2, P3 and P4 represent the respective priority levels propagated on the links of the inputs 20, 21, 22 and 23.


In this example, only the inputs 20 and 23 want to be assigned the output 24, the inputs 21 and 22 having not at this moment a message present as input for the output 24.


Also, the propagated priority Pp output from the switching agent will be equal to the maximum of the priority information level of the message B1, of the priority information level of the message B4, of the priority information level P1 associated with the input 20 link, and of the priority information level P4 associated with the input 23 link.


The priority message takes the same path as the blocked message that is to be unblocked. This priority message makes the blocked message similar to a message of equal priority level and thus favours its unblocking so that it can arrive at the recipient element. In other words, this priority message pushes the messages that are slowing down its progression, and finishes by propagating its priority on the path leading to the recipient element to the blocked message and thus favours its unblocking.


Since the progression of the priority message is favoured, and it cannot duplicate the blocked data packet, it will end up pushing the latter if the latter is still blocked, and thus, everything proceeds as if the blocked packet had inherited the priority level of the priority packet.


Such a priority propagation is illustrated in FIG. 3.


A priority message 30 is selected by an arbiter 31 dedicated to an output 31a of a first switching agent, while the message 32 that precedes it and that uses the path to the recipient element is being transferred through a second switching agent by being selected by an arbiter 33 of an output 33a of the second switching agent to the recipient agent.


A request message 34 to the recipient agent is blocked in a queue 35 into which the message 32 enters.


With the priority propagation, the priority information level of the priority message is propagated through the first two switching agents and will make an input 36 of a third switching agent priority, because all the messages present in the queue 35, including the message 34 that is to be pushed, inherit this priority level.


Also, the invention makes it possible to simulate an increase in the priority level of a request message already transmitted in the network, for which a response message is awaited.


In other words, when an initiating agent has sent a request message to a recipient agent, and this request has a low priority level, the priority being dependent on a parameter representative of the state of the network, and this request message is blocked at a point on the routing path from the initiating agent to the recipient agent because other messages of higher priority level are in front of it, the invention makes it possible to have this blocked message benefit from a higher priority level in order to route it to its destination. The response message can then be sent more quickly to the initiating agent.

Claims
  • 1. System for managing messages transmitted in an interconnect network connecting blocks on a chip, said system comprising agents linked by point-to-point links able to transmit, by static routing, messages comprising a priority information item quantified on N levels, and comprising at least one agent (1) initiating request messages to at least one recipient agent (2), a request message comprising a header and, where appropriate, content data, characterized in that it comprises means (4) of determining a current priority, means (5) of generating a priority message when said current priority is greater than the priority of the last request message previously transmitted by said initiating agent to said recipient agent with no response message received in return, and propagation means for propagating, in the interconnect network, based on a priority message sent by said generation means (5), the priority level of said priority message, to said request message or messages, so that said request messages present on the routing path of said recipient agent (2) are treated as request messages having a priority level equal to the priority level of said priority message.
  • 2. System according to claim 1, comprising, in addition: assignment means (3) designed to replace with the current priority, or leave unchanged, the initial priority level of a request message sent by said initiating agent (1) to said recipient agent (2), according to the value of a parameter representative of the state of the network; andmeans (6) of managing information relating to the request messages transmitted by said assignment means (3) to said recipient agent (2).
  • 3. System according to claim 2, in which said means of determining the current priority are designed to determine the current priority level according to the position of the value of a parameter representative of the state of the network, in relation to N−1 threshold values defining N ranges of values of said parameter, respectively associated with said N priority information levels.
  • 4. System according to claim 3, in which said management means (6) comprise storage means (7) and means (8) of updating parameters representative of the request messages transmitted by said assignment means (3) to a recipient agent, said parameters comprising an indicator representative of said initiating agent, an indicator representative of said recipient agent, the priority level assigned by said assignment means (3) to the last request message sent by said initiating agent or by said generation means to said recipient agent, and a counter of the number of request messages transmitted by said assignment means (3) to said recipient agent (2) and not having been the subject of a response message received by said initiating agent.
  • 5. System according to claim 3 or 4, in which said propagation means comprise transmission means, respectively dedicated to an output of an agent (9), designed to determine an input priority information item, respectively dedicated to an input of said agent, of value equal to the maximum level between a priority information item of a message present at said input and a link priority information item of the link from said input, and designed to propagate, over the link of the corresponding output, a priority information item of value equal to the maximum of the values of said input priority information items relating to the inputs comprising a message for which the input required said corresponding output.
  • 6. System according to claim 5, in which said propagation means are designed to propagate, at the output of a queue, a link priority information item equal to the maximum level of the priority information items of the messages present in said queue and a link priority information item of the input link of said queue.
  • 7. System according to one of claims 2 to 6, in which said parameter representative of the state of the network comprises the quantity of data stored in a queue of said initiating agent (1).
  • 8. System according to one of claims 2 to 6, in which said parameter representative of the state of the network comprises the number of periods of the clock timing signal controlling the sending of messages from said initiating agent (1) separating the sending of a request message from said initiating agent (1) and the receipt of the associated response message.
  • 9. System according to one of claims 4 to 6, in which said parameter representative of the state of the network comprises a pseudo-data rate, calculated by adding up, for a request message sent by the initiating agent (1) to said recipient agent, the quantity of data associated with said request message, and by subtracting a predetermined quantity of data for each period of the clock timing signal controlling the sending of messages from said initiating agent (1).
  • 10. System according to one of claims 2 to 9, comprising a threshold value defining two levels of priority information, corresponding to priority messages and non-priority messages.
  • 11. System according to one of the preceding claims, in which said recipient agent (2) is designed, in response to a priority message from said generation means (5) associated with said initiating agent (1), to transmit a priority message of equal priority level to said initiating agent (1).
  • 12. System according to one of claims 4 to 13, in which the storage means (7) comprise a CAM memory.
  • 13. Method of managing messages transmitted in an interconnect network connecting blocks on a chip, said network comprising agents linked by point-to-point links able to transmit, by static routing, messages comprising a priority information item quantified on N levels, and comprising at least one agent (1) initiating request messages to at least one recipient agent (2), a request message comprising a header and, where appropriate, content data, characterized in that a current priority is determined, a priority message is generated when said current priority is greater than the priority of the last request message previously transmitted by said initiating agent to said recipient agent with no response message received in return, and the priority level of said priority message is propagated in the interconnect network, based on a generated priority message, to said request message or messages, so that said request messages present on the routing path of said recipient agent (2) are treated as request messages having a priority level equal to the priority level of said priority message.
  • 14. Method according to claim 13, in which: the initial priority level of a request message sent by said initiating agent (1) to said recipient agent is replaced with the current priority or left unchanged, according to the value of a parameter representative of the state of the network; andinformation relating to the request messages transmitted, after assignment, to said recipient agent, is managed.
Priority Claims (1)
Number Date Country Kind
FR 06/05646 Jun 2006 FR national