The present invention relates to an electronic device as well as to a method for flow control within an electronic device.
Networks on chip NOC proved to be scalable interconnect structures which could become possible solutions for future on chip interconnections between so-called IP blocks, i.e. intellectual property blocks. IP blocks are usually modules on chip with a specific function like CPUs, memories, digital signal processors or the like. The IP blocks communicate with each other via the network on chip. The network on chip is typically composed of network interfaces and routers. The network interfaces serve to provide an interface between the IP block and the network on chip, i.e. they translate the information from the IP block to information which the network on chip can understand and vice versa. The routers serve to transport data from one network interface to another. For best effort communication, there is no guarantee regarding the latency of the throughput of the communication. For guaranteed throughput services, an exact value for the latency and throughput is required.
The communication within a network on chip NOC is packet-based, i.e. the packets are forwarded between the routers or between routers and network interfaces. A packet typically consists of a header and payload. As the network interface serves to translate information from the IP block to the network on chip, a network interface typically performs some sort of buffering in order to hide round chip latency as well as rate differences between the producer/consumer (IP block) and network. In “An Efficient On-Chip NI Offering Guaranteed Services, Shared-Memory Abstraction, and Flexible Network Configuration”, by Andrei R{hacek over (a)}dulescu et al., IEEE transactions on computer-aided design of integrated circuits and systems, volume 24, No. 1, January 2005, an implementation of a flow control mechanism based on credits in order to avoid an overflow of buffers in a network interface is described. A consumer network interface sends credits to the producer network interface when the consumer removes data from the consuming network interface. The credit value indicates the amount of data consumed by the consumer after a previous credit was sent. A limited number of bits is reserved to forward the credit information and is typically piggybacked to the packet header.
It is an object of the invention to provide an electronic device as well as a method for flow control with an improved and more efficient flow control.
This object is solved by an electronic device according to claim 1 as well as by a method for flow control according to claim 6.
Therefore, an electronic device is provided comprising a plurality of processing units, an interconnect means for coupling the plurality of processing units, and a plurality of interface means, arranged between one of the processing units and the interconnect means, for enabling a communication between the processing units and the interconnect means. The communication between the processing units is a packet-based communication via the interface means and the interconnect means. Each packet first comprises a first header followed by a payload. Said interface means comprise a flow control means for controlling the communication flow between two processing units based on flow control credit information, for inserting the first header in each packet, and for additionally inserting a second header into a packet according to an amount of required flow control credit information.
Accordingly, more credit information can be inserted into the communication if required, such that sufficient credit information can be introduced.
According to an aspect of the invention the flow control means can insert the second header at pre-defined positions such that a static implementation of the flow control is achieved.
According to an aspect of the invention the interface means comprises a slot table with flow control information, wherein the flow control means is adapted to insert the second header according to the flow control information stored in the slot table.
According to an aspect of the invention the flow control means is adapted to insert the second header if the flow control credit information exceed a pre-defined value. Accordingly, the flow control is performed dynamically and can better match the actual requirements of the communication.
The invention also relates to a method for flow control in an electronic device having a plurality of processing units; an interconnect means for coupling the plurality of processing units; and a plurality of interface means arranged between one of the processing units; and the interconnect means, for enabling a communication between the processing units and the interconnect means. The communication between the processing units is a packet-based communication via the interface means and the interconnect means. Each packet first comprises a first header followed by a payload. The communication flow between two processing units is controlled based on flow control credit information. The first header is inserted in each packet. Additionally, a second header is inserted according to an amount of required flow control credit information.
The invention is based on the idea to introduce additional redundant headers into a communication via the network on chip, wherein the additional headers are used to carry flow control credit information.
These and other aspects of the invention are apparent from and will be elucidated with reference to the embodiments described hereinafter and with respect to the following figures.
a shows a basic architecture of a network on chip according to a first embodiment;
b shows a schematic representation of the structure of a packet;
a shows a basic structure of a system on chip with a network on chip interconnect according to a first embodiment. A plurality of IP blocks IP are coupled to each other via a network on chip NOC. The network NOC comprises network interfaces NI for providing an interface between the IP block IP and the network on chip NOC. The network on chip NOC furthermore comprises a plurality of routers R. The network interface NI serves to translate the information from the IP block to a protocol, which can be handled by the network on chip NOC and vice versa. The routers R serve to transport the data from one network interface NI to another. The communication between the network interfaces NI will not only depend on the number of routers R in between them, but also on the topology of the routers R. The routers R may be fully connected, connected in a 2D mesh, connected in a linear array, connected in a torus, connected in a folded torus, connected in a binary tree or in a fat-tree fashion. The IP block IP can be implemented as modules on chip with a specific or dedicated function such as CPU, memory, digital signal processors or the like.
The information from the IP block IP that is transferred via the network on chip NOC will be translated at the network interface NI into packets with variable length. The information from the IP block IP will typically comprise a command followed by an address and an actual data to be transported over the network. The network interface NI will divide the information from the IP block IP into pieces called packets and will add a packet header to each of the packets. Such a packet header comprises extra information that allows the transmission of the data over the network (e.g. destination address or routing path, and flow control information). Accordingly, each packet is divided into flits (flow control digit), which can travel through the network on chip. The flit can be seen as the smallest granularity at which control is taken place. An end-to-end flow control is necessary to ensure that data is not send unless there is sufficient space available in the destination buffer.
b shows a schematic representation of a packet used for the communication in a network on chip according to
If all slots for a connection are allocated contiguously, only one header H will be send in an iteration of the slot table with a maximum value of c words. For a given size of a slot table and time needed to move one slot to another, the header rate will be 1/(slot_table_size*slot_duration). If a credit value of c words is sent per header, the rate of credit in terms of words is (header_rate*c) words per second. However, if the credit data rate is less than the consumer data rate, then an unstable system will be resulted.
Any combination of the first, second and third embodiment is possible. A network interface can for example insert a header if one or both conditions are present. In other words, the number of contiguous slots crosses or becomes equal to a fixed packet length or the credit values crosses a predefined credit value.
By choosing a lower predefined value or a short packet length, the amount of buffering required at the consumer side is lowered at the cost of sending additional headers H. If these values are programmable, a respective trade-off can be performed. Even more programmability and flexibility can be introduced by choosing these values for each of the channels FC, RC separately.
Although the concept of inserting additional redundant headers in order to send additional credit information is described with regard to a guaranteed throughput connection, the header insertion according to the first, second and third embodiment may also be applied to a best effort connection.
The header insertion unit HIU also receives the packet length pck_length as well as the current value of the credit C. These two values are compared to pre-stored threshold values in the unit U4 and U5, respectively. In other words, the packet lengths is compared to a packet length threshold PLT and the current credit is compared to a credit threshold CT. The outputs of the unit U4 and U5 are input to a AND unit U3, i.e. if the packet length as well as the credit value is above the respective threshold, a new additional and redundant header is inserted. Preferably, the header insertion is only allowed in the first word of a multi-word flit.
The insertion of additional flow control headers is automatically taken care by the network interface such that any IP block does not have to take care of such a function. A trade-off between the buffer size and the number of headers per channel can be performed.
In other words, an additional redundant header can be inserted if the value of the packet length is above a threshold value, and/or if the current credit value is above a credit threshold. Additionally or alternatively, the insertion of an additional redundant header can be performed according to the presence of an additional bit in the slot table. The usage of an additional bit in the slot table has the advantage that the unit U1 is not required.
The invention may also be implemented by a data processing system based on a single chip or on multiple chips. The data processing system may comprise a single or multiple above-mentioned electronic devices.
It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word “comprising” does not exclude the presence of elements or steps other than those listed in a claim. The word “a” or “an” preceding an element does not exclude the presence of a plurality of such elements. In the device claim in numerating several means, several of these means can be embodied by one and the same item of hardware. The mere fact that certain measures are resided in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
Furthermore, any reference signs in the claims shall not be constitute as limiting the scope of the claims.
Number | Date | Country | Kind |
---|---|---|---|
05102914.8 | Apr 2005 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB2006/051002 | 4/3/2006 | WO | 00 | 10/9/2007 |