Data processing system and method for configuring a network on an at least one integrated circuit
The invention relates to a method for configuring a network on at least one integrated circuit, the integrated circuit comprising a first module, a second module, and a connection means, a connection being established between the first module and the second module by creating the contents of the connection means. The invention also relates to a data processing system on an at least one integrated circuit, the integrated circuit comprising a first module, a second module, and a connection means, wherein a connection is established between the first module and the second module by creating the contents of the connection means.
Networks-on-Chip (NoC) have become an important component in Systems- on-Chip (SoC), because they are scalable and provide decoupling between computation and communication. A Network-on-Chip is able to provide communication services to users of the network; these users are typically referred to as modules (e.g. processing units, memory modules) or other IP blocks. The modules provide the functionality of a data processing system, which system is often referred to as a System-on-Chip (SoC). In order to provide the decoupling between computation and communication in a reliable and scalable manner, the network must provide communication services with guaranteed communication properties. Examples of such communication properties are: delivery, in-order delivery, and throughput over a bound time interval.
Communication services and their properties are given on a per-connection basis. With guaranteed delivery no data which is sent through the connection is dropped in the network, i.e. if the network accepts data at a network input, it is guaranteed that it will deliver the data at a network output. With guaranteed in-order delivery the order in which data is delivered at a network output is the same as the order in which the data entered the network. With guaranteed throughput over a bound time interval P the network guarantees that it will transfer data at an agreed rate over any interval P. If properties of a communication service are guaranteed for a connection, no data outside the connection will corrupt the service and its guaranteed properties. To set up a connection in the network (with
all its properties) a number of configuration or programming actions are required. When there are many connections, the amount of time needed for these configuration actions may become significant.
Before data can be sent from one module to another, a connection must be set up in the network, which provides the desired guaranteed services. In order to get a connection existent in the network resources must be reserved for that connection. Typically, the system is 'clean' at startup which means that no reservations have been made yet. When the integrated circuit is in operation, resources are reserved by configuring or programming them. This procedure is referred to as setting up a connection. Typically, the resources or connection means which are used to set up a connection comprise at least one network interface unit and/or at least one router or switch. Examples of these network components can be found in the articles:
- "An Efficient On-Chip Network Interface Offering Guaranteed Services, Shared-Memory Abstraction, and Flexible Network Programming", by Andrei Radulescu, John Dielissen, Kees Goossens, Edwin Rijpkema, and Paul Wielage, Design Automation and Test Conference (DATE 2004), Paris, February 2004; and
- "Trade Offs in the Design of a Router with Both Guaranteed and Best-Effort Services for Networks on Chip", by E. Rijpkema, K. Goossens, A. Radulescu, J. Dielissen, J. van Meerbergen, P. Wielage, and E. Waterlander, IEEE Proceedings Computers and Digital Techniques, September 2003.
It is an object of the invention to reduce the configuration time in and the cost of a network of the kind set forth. This object is achieved by providing a method as claimed in claim 1 and a data processing system as claimed in claim 8.
In the method and data processing system according to the invention the contents of the connection means are created using a single signaling means. In this manner, frequently used connections remain configured when the integrated circuit is in operation, and no time and resources are lost to set up these connections repeatedly. This concept is particularly advantageous if it is certain that these 'preset' connections are always used, and if at design-time it is clear that these connections will be set up frequently in the network. For example, a CPU module will certainly need a connection to a memory controller module, so it makes sense to (at least partially) set up this connection beforehand using a single signaling
means. Furthermore, connections can be used from the controller unit to any of the network interlace units, in order to facilitate the configuration of connections at run-time.
In an embodiment of the invention, which is defined in claim 2, the signaling means comprises a power-up signal. In this manner, the contents of the connection means can be given fixed values at design-time, and at power-up of the integrated circuit the connections are preset.
In another embodiment of the invention, which is defined in claim 3, the signaling means comprises a reset signal. In this manner, the contents of the connection means can be created at start-up or reset of the integrated circuit, and the connections remain available at run-time .
In a further embodiment of the invention, which is defined in claim 4, the signaling means comprises a signal dedicated to creating the contents of the connection means. This is an alternative implementation wherein the single signaling means does not comprise existing signals such as power-up or reset, but a dedicated signal. In an aspect of the invention, which is defined in claim 5, the connection means comprises a first network interface unit for coupling the first module to the network, and the connection means further comprises a second network interface unit for coupling the second module to the network. The configuration data for the connections can be kept in the network interface units. In a further aspect of the invention, which is defined in claim 6, the first network interface unit comprises a first set of configuration registers, and the second network interlace unit comprises a second set of configuration registers, the contents of the configuration registers in the first set and the second set being set at startup or reset of the integrated circuit. The contents of the configuration registers can be used to define the connections in the network.
In yet a further aspect of the invention, which is defined in claim 7, the first network interface unit comprises a first set of configuration registers, and the second network interlace unit comprises a second set of configuration registers, the contents of the configuration registers being set when the integrated circuit is being designed. In this manner, the configuration registers contain fixed values which cannot be reprogrammed.
The present invention is described in more detail with reference to the drawings, in which:
Fig. 1 illustrates an example of a network on an integrated circuit;
Fig. 2 illustrates that connections are set up between modules in the network;
Fig. 3 illustrates an example of configuration registers which need to be configured for setting up a connection between modules; Fig. 4A illustrates how a first part of a connection from a first network interlace unit to a second network interface unit is configured;
Fig. 4B illustrates how a second part of a connection from a first network interlace unit to a second network interface unit is configured;
Fig. 4C illustrates how a first part of a connection from a third network interlace unit to a fourth network interface unit is configured;
Fig. 4D illustrates how a second part of a connection from a third network interlace unit to a fourth network interface unit is configured;
Fig. 5 illustrates an example of a generic architecture for bit configuration loading; Fig. 6 illustrates an example of a one-configuration architecture for bit configuration loading;
Fig. 7 illustrates an example of a multiple-configuration non-programmable architecture for bit configuration loading.
Fig. 1 illustrates an example of a network on an integrated circuit. The network comprises routers or switches RO, Rl, R2, R3, network interface units NIO, Nil, ...
., NI7, modules or IP blocks IPO, IPl, , IP8, and a controller unit Ctrl. The modules or IP blocks IPO, IPl, , IP8 are components which provide the functionality of the data processing system. The network interface units NIO, Nil, ... ., NI7 are service access points which are arranged to provide communication services to the modules IPO, IPl, , IP8. The routers RO, Rl, R2, R3 provide the scalable bandwidth means of the network. Connections must be set up to enable communication between the modules IPO, IPl, , IP8. Other formats for communication are possible, but the concept of connections is typical for guaranteed communication services in a Network-on-Chip environment.
For example, if a first module IPO should communicate with a second module IPl, and a third module IP2 should communicate with a fourth module IP5, then two connections must be set up. This is illustrated in Fig. 2. Setting up a connection involves configuring (programming) the network interface units NIO, Nil, ... ., NI7 which are coupled
to the modules IPO, IPl, , IP8 between which the connection must be established.
Alternatively, the routers RO, Rl, R2, R3 must be configured for establishing a connection, or both the network interface units and the routers must be configured. The configuration of the network interface units NIO, Nil, ... ., NI7 is performed by a controller unit Ctrl. The controller unit Ctrl first sets up a connection between itself and each of the network interface units NIO, Nil, ... ., NI7 that need to be configured.
Fig. 3 illustrates an example of configuration registers which need to be configured for setting up a connection between modules. Fig. 4 shows a network interface unit which can be used to establish four connections. For each of the connections a threshold, flow control value, path, and other values need to be configured.
Fig. 4A illustrates how a first part of a connection from a first network interlace unit Nil to a second network interface unit NI2 is configured. For example, the path through the network, the queue that is to be used when packets arrive at NI2, and (if guaranteed throughput is to be used) the time slots for traffic in the Nil to NI2 direction must be configured. In order to configure this, a connection is set up from the controller unit Ctrl and Nil; via this connection the values of the configuration registers of Nil are set. Fig. 4B illustrates how a second part of a connection from a first network interface unit Nil to a second network interface unit NI2 is configured. For that purpose the controller unit Ctrl sets up a connection between itself and NI2. The configuration registers in NI2 are set with the appropriate values. Hence, the network interface units for both directions of data traffic must be configured.
Fig. 4C illustrates how a first part of a connection from a third network interlace unit NI3 to a fourth network interface unit NI5 is configured. Fig. 4D illustrates how a second part of a connection from a third network interface unit NI3 to a fourth network interlace unit NI5 is configured. Again, the controller unit Ctrl must set up connections between itself and the respective network interface units NI3, NI5 to set the values of the configuration registers in the network interface units. So, in order to set up two connections for the users of the network, four additional connections must be set up to configure the network interface units. Setting up many of these additional connections may take quite some time and occupies valuable resources at run-time.
In the method according to the invention the connection means (which in the above example comprise the network interface units) are at least partially created using a single signaling means, for example a power-up, reset or dedicated signal. In this way, the connections can be created at initialization of the integrated circuit and remain available at
run-time without having to be re-created. Frequently used connections are already configured when the integrated circuit is in operation, and no time and resources are lost to set up these connections. This concept is particularly advantageous if it is certain that these 'preset' connections are always used, and at design-time it is clear that these connections will be set up frequently in the network. For example, a CPU module will certainly need a connection to a memory controller module, so it makes sense to set up this connection at power-up, startup or reset of the integrated circuit. Furthermore, connections can be used from the controller unit to any of the network interface units, in order to facilitate the configuration of connections at run-time. It is very beneficial to (partially) preset the connections between the controller unit and any of the network interface units. In case there is a dedicated queue in network interlace unit NIO for each of the network interface units Nil -6 all these connections can be preset at design-time. If there is a single queue to be used in any of the connections to the other network interface units, then it makes sense to only preset the connections in the direction from Nil -6 to NIO and to set up the connections from NIO to Nil -6 at run-time. There are two alternatives for presetting the connections:
(1) The values of the configuration registers in the network interface units are set at the actual startup or reset of the integrated circuit using a reset signal or a dedicated signal. This saves time when the integrated circuit is in operation. The startup or reset of the integrated circuit puts the system in such a state that some connections have already been set up or partially set up. In this case the full system flexibility remains available, because the values of the configuration registers can be overwritten if necessary.
(2) The values of the configuration registers in the network interface units are set and fixed at the actual design-time of the integrated circuit, and a power-up signal is used to activate the integrated circuit. In other words, the values of the configuration registers are hard-coded in the network interface units. In this way, the run-time configuration of the network interface units can be avoided and some of the hardware needed for this run-time configuration can be dispensed with. For example, it is assumed that network interface unit NI6 supports 6 connections and these connections are always configured in a fixed way. So, the network interface units are configured such that they permanently support these 6 connections. The hardware needed to support these 6 connections is not configurable anymore. At run-time configuration time can be saved and the additional connections needed to configure the 6 connections can be dispensed with. In case there was a dedicated queue in
network interface unit NIO for each of the other network interface units, the queue for NI6 can also be dispensed with.
Fig. 5 illustrates an example of a generic architecture for bit configuration loading. This architecture can be incorporated in the network interface unit to facilitate the creation of the contents of the connection means at power-up, startup or reset of the integrated circuit. Typically, a flip-flop FF or another memory device holds data and can be programmed at run-time via a first input line "data". In an architecture according to the invention a second input line can be used to load a predetermined configuration by means of a single signaling means, e.g. a power-up, reset or dedicated signal. During the configuration of the Network-on-Chip a "mode = 2" signal controls this network device such that one of a number of predetermined configurations is loaded. Ci can be either "0" or "1". All configuration data in the network devices can loaded in a similar manner so that communication channels can be set up, thereby establishing connections between the modules interconnected by the Network-on-Chip. Fig. 6 illustrates an example of a one-configuration architecture for bit configuration loading. In this particular embodiment only one configuration is possible. It is noted that C is a binary constant value and that the logic of the multiplexers can be reduced both in Fig. 5 and Fig. 6.
Fig. 7 illustrates an example of a multiple-configuration non-programmable architecture for bit configuration loading. In this particular embodiment, it is not required to program the memory device at run-time and therefore the input line for the "data" signal is not present. Multiple configurations are possible, of which one is selected using a configuration selection signal. If only a single configuration is needed which does not need to be reprogrammed, the implementation can be reduced to a single wire. It is remarked that the scope of protection of the invention is not restricted to the embodiments described herein. Neither is the scope of protection of the invention restricted by the reference symbols in the claims. The word 'comprising' does not exclude other parts than those mentioned in a claim. The word 'a(n)' preceding an element does not exclude a plurality of those elements. Means forming part of the invention may both be implemented in the form of dedicated hardware or in the form of a programmed general- purpose processor. The invention resides in each new feature or combination of features.