1. Field Of The Invention
The present invention relates to a control unit in a network, a network, and a routing method for messages in a network.
2. Description Of Related Art
Networks are currently used in many fields; i.e., components exchange data packets via network structures such as network controllers. Depending on the design of a network, however, congestion may occur in the forwarding from one network controller to another; i.e., packets cannot be forwarded because the buffers of the subsequent controllers are not able to receive additional packets. This effect is observed in practically all network designs, and in the best case the probability of occurrence may be minimized.
In the research field, the congestion problem is usually solved using adaptive routing algorithms which recognize congestion and correspondingly use alternative routes for data packets. However, these methods depend on a large number of possible routes, and likewise may not be able to completely solve the congestion problem. Published European patent document EP 1895720 A1 provides an example of one approach to the problem using adaptive routing methods in an on-chip network.
For certain applications of networks, for example on-chip networks in motor vehicle control units, congestion as well as adaptive routing algorithms result in nondeterministic packet propagation times, and thus, unpredictable overall timing response in the control unit. Furthermore, adaptive routing methods require additional outlays, such as extra space due to additional logic systems on the controllers, in order to be able to optimally determine a route.
The present invention provides a network controller in a network, a network, and a routing method for messages in a network, which network controllers in the network exchange priority information concerning the messages stored in their message memories. In the event of message congestion, i.e., congestion of a full message memory of a first of the network controllers, by comparing the priority information a process may be initiated in which a first lower-priority message in the full message memory is exchanged, i.e., replaced, with a second higher-priority message from a message memory of a second, adjacent network controller, the second message being provided for transmission into the full message memory of the first network controller. Thus, the present invention describes an advantageous routing method for reducing negative effects of message congestion or for reducing message congestion with comparatively low computing effort; this method is able in particular to reduce the propagation times of messages of high/highest priority in the event of message congestion. One particular advantage is that the routing functions without complicated computer equipment for adaptive/dynamic route planning, and in addition, information storage such as propagation time tables and the like is not required; instead, the congestion problem is addressed by easily implemented communication of two adjacent network controllers of a network. Technical complexity and therefore costs are thus spared. The routing according to the present invention is thus particularly advantageous for on-chip networks or networks on a printed circuit board, for example, in which space and cost savings are particularly important.
In one advantageous embodiment, a network controller initiates a message exchange when its message memory is full, and by comparing the priority information of its own messages to the received priority information of the messages of an adjacent controller determines that in the adjacent controller a message of higher priority than the priority of a message stored in its own, full message memory is provided for the transmission into the full message memory. This embodiment achieves the described advantages of the routing method for the case that the message memory of a network controller according to the present invention is full. It is advantageous that only the initiating network controller needs to be designed for comparing the priority information and for initiating a message exchange; for example, such a network controller may be used on a network node which is particularly susceptible to having a full message memory.
Another advantageous embodiment is directed to a network controller which initiates a message exchange when the message memory of its adjacent controller is full, and by comparing the priority information of its own messages to the received priority information of the messages of an adjacent controller determines that a message is stored in the adjacent controller which has a lower priority than a message that is stored in its own message memory of the network controller, and is provided for a transmission into the message memory of the adjacent controller. This embodiment achieves the described advantages of the routing method for the case that the message memory of an adjacent controller of a network controller according to the present invention is full. It is advantageous that only the initiating network controller needs to be designed for comparing the priority information and for initiating a message exchange; for example, such a network controller may be used adjacently to a network node which is particularly susceptible to having a full message memory.
In another advantageous embodiment, lower-priority messages may be elevated in priority by the network controllers as a function, for example, of the number of replacement operations and/or the number of network controllers visited. The situation may thus be avoided that lower-priority messages have very long propagation times, or in the extreme case never even reach the destination, due to message congestion and in particular also due to the exchange with higher-priority messages.
The network controller according to the present invention may advantageously have a reserved memory location for buffering a message when messages of different priority are exchanged. In one particular embodiment, this memory location is implemented as a separate buffer of the network controller. As the result of a reserved memory location, in the event of message congestion messages of different priority may be exchanged even when the data transmission paths, the involved network controllers, or the messages to be exchanged are not suitable for simultaneous transmission or for simultaneous message exchange.
In one advantageous exemplary embodiment, the priority information between the two adjacent network controllers is transmitted via different data channels than the messages. Burdening the message transmission rate with further transmissions on the same data channels is thus avoided. In an alternative advantageous embodiment, the priority information is transmitted via the same data channels as the messages. The complexity of further connections may advantageously be avoided in this way.
It may be advantageous to provide the priority information of the messages in the data packet formats of the messages in order to avoid the complexity or the data load of additional transmission of priority information. Optionally, it may also be advantageous to transmit the priority information separately from, i.e., in addition to, the messages, for example for the case that a specified data packet format does not provide or allow storage of such information.
The routing according to the present invention, i.e., the network controller according to the present invention and the network according to the present invention, is/are explained below using the particularly advantageous example of an on-chip network, without thereby limiting the present invention to this type of network. Rather, the present invention may also be used without limitation for other networks.
A typical on-chip network connects the components of a chip via a number of network controllers. These controllers by default usually have at least one internal buffer in which the controllers are able to buffer data packets prior to forwarding.
Messages according to the related art are then conducted in this on-chip network 100 via routes which are fixed or also, for example, dynamically determined by the network. If the buffer/message memory of one network controller is full, in a standard design this network controller blocks the receipt of further packets. In a system design according to the present invention, an adjacent network controller which intends to send data to the blocking network controller is able to exchange priority information with the blocking network controller and forward high-priority messages to same. This results in a targeted exchange of messages of different priority between two network controllers in the event of congestion. On its route, the high-priority blocked message takes the place of a low-priority blocking message. The displaced message is assigned the place of the released high-priority message. Under certain circumstances, a definitely determinable maximum propagation time may thus be associated with a highest-priority message. For this purpose, the message priority is incorporated into the format of the data packet, for example, or is transmitted separately.
For example, message congestion results in on-chip network 100 in
Such message congestion is particularly critical for high-priority messages which are stored in message memory 115 of network controller 110 and which are intended for transmission via communication connection 192 to network controller 120, or via network controller 120 and forward via communication connection 193, for example.
The routing according to the present invention is explained, with reference to
According to the present invention, to solve the message congestion problem, at least for higher-priority messages, network controllers 210 and 220 exchange priority information concerning messages 201, 203 and 202, 204, respectively, stored in their message memories 212a, 212b and 222a, 222b, respectively. For example, by comparing the exchanged priority information it is determined that message 203 stored in network controller 210 is intended for transmission via communication connection 292 to network controller 220, or via network controller 220 forward to communication connections 293 or 295, and also that this message 203 has a higher priority than message 204 stored in network controller 220. Based on this determination and the message congestion identified as a result of full message memory 222a, 222b, messages 203 and 204 are then exchanged according to the present invention between network controllers 210 and 220; i.e., message 203 is transmitted from network controller 210 to network controller 220 and is deleted from message memory segment 212b of network controller 210; similarly, message 204 is transmitted from network controller 220 to network controller 210 and is deleted from message memory segment 222b of network controller 220.
This message exchange according to the present invention may, for example, occur simultaneously if communication connection 292 and network controllers 210 and 220 are designed accordingly.
Alternatively, as shown in
The exchange protocol between network controller 210 and its adjacent controller 220 is described in greater detail below, with reference to
In the first example, it is assumed that message memory 212a, 212b of network controller 210 is full, and that adjacent controller 220 has at least one message 204 stored in its message memory 222a, 222b which is provided for transmission via communication line 292 to network controller 210, or for transmission via communication line 292 and via network controller 210 forward via communication lines 291 or 294. Thus, message congestion exists between network controller 210 and adjacent controller 220. In the present example, adjacent controller. 220 now transmits the priority information of the highest-priority message which is provided for transmission on or via network controller 210, for example, transmission of message 204 to network controller 210. Alternatively, it may be provided that adjacent controller 220 transmits the priority information of all messages 202 and 204 stored in its message memory 222a, 222b, respectively, or at least of all messages 204 which are provided for transmission to network controller 210, to this network controller 210. Network controller 210 now compares the priority information received from adjacent controller 220 to the priority information of messages 201 and 203 stored in its message memory 212a, 212b, respectively. In the event that the priority of message 204 is higher than the priority of one of messages 201 and 203, network controller 210 initiates the exchange of messages with adjacent controller 220 via a signal. Similarly as in
In the second example, message memory 222a, 222b of adjacent controller 220 is full, and message congestion exists between network controller 210 and adjacent controller 220. In this example, adjacent controller 220 now sends priority information of all of its stored messages 202 and 204, or preferably, only the priority information of the lowest-priority message of messages 202 and 204, to network controller 210. As described above, network controller 210 compares the received priority information to the priority information of its own messages 201 and 203, and initiates a message exchange in the event that one of its messages 201 or 203 has a higher priority than one of messages 202 or 204, and in the event that this message, similarly as in
As an alternative to the buffer shown in
The priority information of the messages may preferably be stored in the data packet format of the messages, for example in the message header. An alternative option is a separate transmission via the communication connections of the message transmission, or also via separate communication connections between the network controllers of an on-chip network. The communication connections illustrated in
These requirements may be met at the protocol level via multiple data lines or, for example, also via multiplex methods.
On the system/network level, the present invention may preferably be implemented in such a way that all network controllers are able to operate according to the present invention. For example, all controllers conduct the priority information of the highest-priority packets in their buffer to the adjacent nodes, which are located on the route of these messages. A network controller which is not able to forward the messages in its full message memory on account of congestion situations checks at its message inputs the priority information of its adjacent controllers. The network controller having the full message memory recognizes whether a message which has a higher priority than that of one of its buffered messages must be received from one of its neighbors. In this case, the network controller having the full message memory initiates a message exchange as described above. The role of the initiator of the protocol may also be switched, as likewise described above. For this purpose, the adjacent controllers having a full message memory conduct the information concerning the lowest message priority of messages in their message memories to all adjacent network controllers. A network controller recognizes when it must send a higher-priority message to the adjacent controller, and initiates the message exchange.
On the network level, it may also preferably be provided that a network controller exchanges priority information and messages according to the present invention not with just one adjacent controller, but, rather, with multiple adjacent controllers, optionally also at the same time. In such a case, a network controller may have not only one message memory and/or buffer, but, rather, multiple message memories or buffers, preferably one message memory and/or one buffer for each adjacent controller.
As a result of the method according to the present invention, in the event of congestion the forwarding of a highest-priority packet (message) is hindered only by the resulting complexity of the protocol. A clear dependency on lower-priority packets which could prevent forwarding due to congestion is lacking. The maximum propagation time of a highest-priority packet may thus be determined according to the formula below. n is the number of network controllers which a packet must pass on its route from the starting controller to the end controller. In the worst case, the above method must be carried out for each of these n controllers. In addition, m is the number of time units required by the method for exchanging messages, and t is the number of time units (for example, clock cycles or time requirements for asynchronous networks) required for transmitting a packet between two adjacent controllers. Thus, the maximum propagation time for highest-priority packets for a known route directly results as
T=(n−1)*(m+t)
However, it has been assumed that only one message/one packet, or a sufficiently small number of highest-priority messages/packets, is present in the network. The method has no deterministic propagation time prediction in the event that congestion were caused exclusively by highest-priority messages, for example (i.e., a message memory of a network controller is full with highest-priority messages, forwarding of these messages is not possible, and in an adjacent network controller another highest-priority message must wait due to this congestion).
For low-priority packets, it is difficult to make statements concerning the propagation time in any event. To prevent the situation that lower-priority messages have very long transmission times or possibly do not reach their destination at all due to the method according to the present invention, it is proposed that the low-priority messages are elevated in priority, for example as a function of the number of network controllers passed through, and/or also as a function of the number of message exchange processes according to the present invention in which the messages were involved.
To design the message routing in an on-chip network in a particularly efficient manner, it is also proposed to combine the method according to the present invention with existing routing methods, for example dynamic routing methods. In such a case, the method according to the present invention may be taken into account in the algorithm of the dynamic route determination.
Number | Date | Country | Kind |
---|---|---|---|
10 2009 002 007.1 | Mar 2009 | DE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2010/052146 | 2/19/2010 | WO | 00 | 12/5/2011 |