The present invention relates to the field of communication networks and more particularly to methods for establishing communications between processing units in such networks.
The implementation of systems of processing units is constantly growing in many fields of technology, including as examples, automobile technology, industrial manufacturing technology, home entertainment technology and home appliance technology. In such systems, each of a number of processing units typically has to execute a particular predefined function. Such systems are sometimes identified as networked embedded systems.
Complex networked embedded systems can include a large number of processing units that may have to communicate with each other. Since even an automobile, not traditionally thought of as having networked electronic systems, may include 70 or more processing units, an effective and reliable communication platform has to be provided.
A simple network for connecting a plurality of processing units is a so-called bus network. In this network topology, a bus connecting all processing units can be represented as a straight line representing a shared communications medium. The communication between the processing units is governed by a bus controller connected to each processing unit.
Another common network topology is a ring network. Here, the media connecting several processing units can be represented by a closed ring. Access to the ring is controlled by bus controllers at the stations or processing units connected to the ring.
A common disadvantage of bus and ring networks is that they are single point of failure systems. If communications is disrupted between any two processing units in the network, the entire network fails. Furthermore the bandwidth of bus and ring networks is constrained because only one processing unit can use the bus or ring at any given time.
In a star-topology network, a central switch controls the access to the bus. The switch, which is connected to all processing units, handles accesses to external systems as well as the communications among the processing units within the star-topology network. In contrast to bus and ring networks, the central switch can allow several processing units to use the star-topology network concurrently.
If a specific processing unit fails or is disconnected from the central switch, the general functionality of the star-topology network is maintained. Nevertheless, a star-topology network system still has a single point of failure in the central switch. If the central switch fails, the entire star-topology network communication fails.
In some environments, and particularly in an automotive environment, processing units perform extremely specific tasks and are organized into subnetworks for performing higher level tasks made up of the specific tasks. Subnetworks can have different requirements relating to real-time behaviors, data exchange rates, signal transmission and signal processing.
Where communications between two processing units belonging to different subnetworks has to be established, the subnetworks are typically connected via gateway controllers. The overall architecture of this type of system can be characterized as heterogeneous.
Heterogeneous networks are a result of continuous integration of newly-developed different communication technologies into existing electronic embedded systems. A requirement for a gateway controller has two main disadvantages. First, the gateway controller represents a potential bottleneck for the data transfer within the network. Second, the gateway controller represents a single point of failure. If a gateway controller fails, all or a significant portion of the entire heterogeneous network may fail.
Furthermore a heterogeneous network may support only limited message routing. The routing of a message between different types of systems in the heterogeneous network can require significant computational efforts to deal with differences such as transmission rates, data formats, etc. The gateway controllers therefore must ordinarily have significant performance capabilities in order to establish fast and reliable message routing within an heterogeneous network.
Some of the disadvantages of the network topologies described above are overcome in neural networks. Neural networks feature an autonomic learning behavior. For instance, when a individual processing unit fails, its general functionality can be taken over by the remaining processing units. Neural networks therefore do not have single points of failure or create bottlenecks in message routing. The drawbacks of neural networks include high performance requirements for individual processing units as well as a need for a multiplicity of connections between individual processing units, which results in a complicated network architecture. These factors make neural networks costly and thus unlikely to be applicable to cost-constrained embedded processing.
If a processing unit 110 belonging to a ring subnetwork 114 wants to transmit a message to a processing unit 100 belonging to a bus subnetwork 104, the gateway controller 130 has to establish the connection between the two subnetworks as well as eventually resolve differences between the communication protocols implemented in the two subnetworks.
In the same way, the gateway controller 140 supports communication between the central switch 124 of the star subnetwork and the bus subnetwork 114. Communication between processing units 120 belonging to the star subnetwork and processing units 100 belonging to the bus subnetwork has to be established by both gateway controllers 130 and 140. Both of the gateway controllers 130 and 140 must have significant performance capabilities.
In the heterogenous network shown in
The present invention is a new network topology and a new method for message routing in a networked embedded computing system. Each processing unit is assigned a virtual address based on spatial coordinates. The coordinate system may be one-, two-, three- or multi-dimensional. According to the choice of the coordinate system, each processing unit is connected to one or more neighboring processing units. A received message can be routed by a first processing unit that has at least a first and a second port and a first virtual address based on a spatial coordinate system. A message received on the first port will include a target virtual address based on the spatial coordinate system. The receiving process unit compares its own virtual address to the virtual address received in the message. If the two addresses match, the first processing unit retains and processes the message.
In the following, embodiments of the invention will be described in greater detail by making reference to the drawings in which:
When the message has arrived at the chosen target processing unit, for example, processing unit 240, the processing unit 240 repeats the processing selecting a new target processing unit from its nearest neighbors, excluding the unit from which the message was received. Depending on the computation algorithm and the availability of the neighboring processing units 210 and 250 the message will be transferred to either the processing unit 250 or to the processing unit 210. The processing unit 250 or 210 will proceed in the same way and transfer the message to the target processing unit 220.
According to the ideal configuration illustrated in
In a preferred embodiment of the invention the determination of a neighboring processing unit to which a message is to be transferred is such that the distance to the target processing unit is minimized. Suppose that the processing unit 230 wants to transmit the message to the processing unit 240 but the processing unit 240 is not capable of receiving the message, then the processing unit 230 selects the processing unit 200 to send the message to.
If for any reason the processing unit 200 cannot receive the message from the processing unit 230, the processing unit 230 will identify another of its four neighboring processing units to which the message can be transferred. In such a case the message would be initially transferred away from target processing unit 220 rather than toward it. In this way it is guaranteed that the routing of a message does not stop before every effort is made to direct the message toward its target processing unit.
According to a further embodiment of the invention the message that has to be transferred between the processing unit 230 and the processing unit 220 may include a priority identifier indicating that the message is assigned a highest, real-time, priority value. Suppose that in order to transmit the message to its target virtual address the processing unit 230 wants to transmit the message to the processing unit 240, which is currently receiving another message with a lower priority from the processing unit 210. In such a case the transmission of the message with the lower priority would be interrupted in favor of the message with the higher priority. In this way the network provides a near real-time behavior and minimizes the time needed for a routing procedure.
The established communication path is indicated by the arrows 260, 262 and 264. In this circuit switch mode the connection 260 between the processing units 230 and 240 is maintained until the processing unit 230 receives a release identifier from the target processing unit 220. The same is true for the processing units 240 and 250.
The drawings represented by
If in step 302 a target virtual address of the message does not match the virtual address of the processing unit the message is further processed in step 306. In step 306 the message priority and the message type is determined. Then the method continues with step 308 in which a message transfer is calculated. According to the calculated message transfer, in the following step 310 a neighboring processing unit is identified. The method then proceeds with step 312. In step 312 the method checks whether the identified neighboring processing unit of step 310 is capable of receiving the message.
If in step 312 the identified neighboring processing unit is capable of receiving the message, the message is then sent to this identified neighboring processing unit in step 314. If in step 312 the neighboring processing unit is not capable of receiving a message then the method returns to step 310 and identifies another neighboring processing unit.
The data packet 404 comprises an arbitrary data sequence. This arbitrary data sequence may correspond to an encapsulated original message intended for a different kind of subnetwork with a different communication protocol. Finally the message trailer 406 indicates the end of a message.
The controller 602 performs an arbitration procedure for the routing of the message with the help of a computational algorithm which is stored in the control memory module 610. Depending on the virtual address of the processing unit stored in the register 616 the controller 602 identifies a neighboring processing unit to which the message has to be sent. According to this determination the controller 602 instructs the switch 604 to establish the corresponding connection to the corresponding port. The message is then transferred via the message converter 608 and the switch 604 establishes a connection to the corresponding port and finally to the corresponding neighboring processing unit.
The look-up table 612 is an optional feature when the processing unit is additionally connected to another non-space linked subnetwork. The look-up table 612 for mapping of legacy addresses connected to the controller 602 stores an address translation table for the conversion of the virtual addresses and the potentially involved non-space linked physical addresses of the individual processing units as well as of processing units belonging to a sub-network.
The register 616 in contrast is a significant feature of the central processing unit 600, since it stores the virtual space linked address of the processing unit which is needed for the routing of messages. Preferably the register 616 is designed as a non-volatile memory.
The parameter register module 614 which is connected bidirectionally to the controller 604 stores message state and message type parameters that are necessary for the message routing algorithm performed by the controller 602.
Number | Date | Country | Kind |
---|---|---|---|
03103603.1 | Sep 2003 | EP | regional |