Patent ID: 7555001

Claim:
A system for routing a data packet between N elements comprising: N network interfaces respectively connected to the N elements, with N being an even integer; and an on-chip packet-switched communication network arranged in a ring structure comprising N routers respectively connected to said N network interfaces, N pairs of opposite unidirectional ring links, with each pair of ring links coupling two adjacent routers in the ring structure, and each ring link providing two virtual channels, and N/2 pairs of opposite uni-directional crossing links, with each pair of crossing links coupling two diametrically opposite routers in the ring structure; and processing circuitry distributed within said N routers and said N network interfaces for determining a direction of the data packet to be transmitted over a path from a source element to a destination element in the ring structure so as to avoid a deadlock with other data packets being transmitted, determining at each router in the path which virtual channel is to be used, and defining the path for the transmitted data packet so that the path includes at least one transition in the ring structure between two adjacent routers, or a crossing transition between two diametrically opposite routers followed by a circular path in the ring structure having at least one transition, with a direction of the circular path being identical for all transitions in the circular path; the data packet comprising a header including a first field defining at least one of the crossing transitions and the direction of the circular path in the ring structure, and a second field defining a destination router; said processing circuitry comprising N local preprocessing modules respectively in said N network interfaces, with one of said local preprocessing modules being connected to the source element for determining contents of the first and second fields; and each router comprising a routing module for routing the data packet based upon the contents of the first and second fields.