11303559

Method, Apparatus and Computer Storage Medium for Deadlock-Free Adaptive Routing in Two-Dimensional Mesh Network Based on the Overlapping Virtual Network Partitioning Scheme

PublishedApril 12, 2022
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
15 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. An adaptive routing method for two-dimensional mesh networks-on-chip, the adaptive routing method comprising: using x dimension and y dimension to partition a two-dimensional mesh network into eight virtual sub-networks, according to offsets between a source node and a destination node of a packet along the x dimension or the y dimension; setting classes of the packet corresponding to each of the eight virtual sub-networks, then merging the eight virtual sub-networks into four virtual networks; determining a class of the packet, according to the source node and destination node of the packet; and, injecting the packet into one of the four virtual networks to route based on the class of the packet; wherein, a step of using x dimension and y dimension to partition a two-dimensional mesh network into eight virtual sub-networks includes: partitioning the two-dimensional mesh network into eight virtual sub-networks as follows: (1) x+y+(1), (2) x+y+(2), (3) x+y−(1), (4) x+y−(2), (5) x−y+(1), (6) x−y+(2), (7) x−y−(1), (8) x−y−(2); each conventional virtual network in a two-dimensional mesh appears twice in the eight sub-virtual networks, wherein packets are classified into eight classes according to the eight virtual sub-networks; and, wherein a step of setting classes of the packets corresponding to each of the eight virtual sub-networks, includes: according to the eight virtual sub-networks (1) x+y+(1), (2) x+y+(2), (3) x+y−(1), (4) x+y−(2), (5) x−y+(1), (6) x−y+(2), (7) x−y−(1), (8) x−y−(2), set classes of packets into eight classes; considering a packet with offsets along x+ dimension and y+ dimension, setting the classes of the packet along x+ dimension and y+ dimension into class 1 and class 2, where the class 1 is x+y+(1), and the class 2 is x+y+(2); considering a packet with offsets along x+ dimension and y− dimension, setting the classes of the packet along x+ dimension and y− dimension into class 3 and class 4, where the class 3 is x+y−(1), and the class 4 is x+y−(2); considering a packet with offsets along x− dimension and y+ dimension, setting the classes of the packet along x− dimension and y+ dimension into class 5 and class 6, where the class 5 is x−y+(1), and the class 6 is x−y+(2); and, considering a packet with offsets along x− dimension and y− dimension, setting the classes of the packet along x− dimension and y− dimension into class 7 and class 8, where the class 7 is x−y−(1), and the class 8 is x−y−(2); and, wherein a step of merging the eight virtual sub-networks into four virtual networks includes: merging the eight virtual sub-networks into four virtual networks as follows: (1) x*y−, (2) x*y+, (3) x−y*, (4) x+y*; and, wherein a step of injecting the packet into one of the four virtual networks to route based on the class of the packet includes: calculating a first offset along the x dimension and a second offset along the y dimension between the source node and the destination node of the packet; wherein according to the first offset and the second offset, the packet is injected into a corresponding virtual network to route following these rules: if the first offset and the second offset are both greater than zero, the packet is injected into x*y+ virtual network or x+y* virtual network; if the first offset is greater than zero and the second offset is less than zero, the packet is injected into x*y− virtual network or x+y* virtual network; if the first offset is less than zero and the second offset is greater than zero, the packet is injected into x*y+ virtual network or x−y* virtual network; and, if the first offset and the second offset are both less than zero, the packet is injected into x*y− virtual network or x−y* virtual network; and, after the step of merging the eight virtual sub-networks into four virtual networks, further comprising: a physical x channel is assigned virtual channels c x,1 and c x,2 , a y channel is assigned virtual channels c y,1 , and c y,2 ; then the four virtual networks are assigned these virtual channels: x*y−(c x,1 ,c y,1− ), x*y+(c x,1 ,c y,1 +), x−y* (c x,2 −,c y,2 ), and x+y* (c x,2 +,c y,2 ) for x and y channels in the four virtual networks; the x*y− virtual networks and the x*y+ virtual networks are assigned the virtual channels c x,1 along the x dimension, and the x−y* virtual networks and the x+y* virtual networks are assigned the virtual channels c y,2 along the y dimension; and, before a step of injecting the packet into one of the virtual networks to route based on the class of the packet further comprising: setting deadlock-free routing algorithm rules for the packet to route in the virtual network; and, according to the class of the packet and the deadlock-free routing algorithm rules, any packet can be routed with full adaptivity in the four virtual network.

2

2. The method according to claim 1 , wherein according to the eight virtual sub-networks: (1) x+y+(1), (2) x+y+(2), (3) x+y−(1), (4) x+y−(2), (5) x−y+(1), (6) x−y+(2), (7) x−y−(1), and (8) x−y−(2), set following rules for the deadlock-free routing algorithm, where two prevented turns and two special turns are set: packets of the class 2 in the x*y+ virtual network of a first group are not allowed to turn to a c y,1 + channel from a c x,1 + channel; packets of the class 5 in the x−y* virtual network of a second group are not allowed to turn to a c y,2 + channel from a c x,2 − channel; packets of the class 3 in the x+y* virtual network of the second group turn from a c y,2 − channel to a c x,1 + channel, first, they change channel to the virtual network of the first group, and then when returning back to y− direction via the c y,2 − channel, change channel again to return back to the virtual network of the second group; and, packets of the class 8 in the x*y− virtual network of the second group turn from a c y,1 − channel to a c x,2 − channel, first, they change channel to the virtual network of the second group, and then when returning back to the y direction via the c y,1 − channel, change channel again to return back to the virtual network of the first group.

3

3. The method according to claim 1 , further comprising: calculating offsets along x dimension and y dimension, which are the destination node relative to the source node, the first offset is x offset =x d −x s , the second offset is y offset =y d -y s , where (x s ,y s ) and (x d ,y d ) are coordinates of source node and destination node, respectively; and, wherein when a packet falls in x*y− virtual network, it is delivered by using a deadlock-free fully adaptive routing, that includes: if x offset <0 and y offset <0, and the packet occupies a c y,1 − channel, then the next hop is a c x,2 − channel or a c y,2 − channel; if x offset <0 and y offset <0, and the packet occupies a c x,1 − channel, then the next hop is the c x,1 − channel or the c y,1 − channel; if x offset <0 and y offset <0, and the packet occupies the c x,2 − channel, then the next hop is the c x,2 − channel or the c y,1 − channel; if x offset >0 and y offset <0, then the next hop is a c x,1 + channel or the c y,1 − channel; if x offset =0 and y offset <0, then the next hop is the c y,1 − channel; if x offset >0 and y offset =0, then the next hop is the c x,1 + channel; and, if x offset <0 and y offset =0, and packet of the class 8 occupies the c y,1 − channel or the c x,2 − channel, then the next hop is the c x,2 − channel; otherwise the next hop is the c x,1 − channel; and, wherein when a packet falls in the x*y+ virtual network, it is delivered by using a deadlock-free adaptive routing, that includes: if x offset >0 and y offset >0, and the packet occupies the c x,1 + channel, then the next hop is the c x,1 + channel; otherwise, the packet occupies a c y,1 + channel, then the next hop is the c x,1 + channel or the c y,1 + channel; if x offset <0 and y offset >0, then the next hop is the c x,1 − channel or the c y,1 + channel; if x offset =0 and y offset >0, then the next hop is the c y,1 + channel; if x offset <0 and y offset =0, then the next hop is the c x,1 − channel; and, if x offset >0 and y offset =0, then the next hop is the c x,1 + channel; and, wherein when a packet falls in the x−y* virtual network, it is delivered by using a deadlock-free adaptive routing, that includes: if x offset <0 and y offset >0, and the packet occupies the c x,2 − channel, then the next hop is the c x,2 − channel; otherwise, the packet occupies a c y,2 + channel, then the next hop is the c x,2 − channel or the c y,2 + channel; if x offset <0 and y offset <0, then the next hop is the c x,2 − channel or the c y,2 − channel; if x offset =0 and y offset >0, then the next hop is the c y,2 + channel; if x offset =0 and y offset <0, then the next hop is the c y,2 − channel; and, if x offset <0 and y offset =0, then the next hop is the c x,2 − channel; and, wherein when a packet falls in x+y* virtual network, it is delivered by using a deadlock-free fully adaptive routing, that includes: if x offset >0 and y offset <0, and the packet occupies the c y,2 − channel, then the next hop is the c x,1 + channel or the c y,2 − channel; if x offset >0 and y offset <0, and packet of the class 3 occupies a c x,2 + channel, then the next hop is the c x,2 + channel or the c y,2 − channel; if x offset >0 and y offset <0, and the packet occupies the c x,1 + channel, then the next hop is the c x,1 + channel or the c y,2 − channel; if x offset >0 and y offset >0, then the next hop is the c x,2 + channel or the c y,2 + channel; if x offset =0 and y offset <0, then the next hop is the c y,2 − channel; if x offset =0 and y offset >0, then the next hop is the c y,2 + channel; and, if x offset >0 and y offset =0, and packet of the class 3 occupies a c y,2 − channel or the c x,1 + channel, then the next hop is the c x,1 + channel; otherwise the next hop is the c x,2 + channel.

4

4. The method according to claim 1 , further comprising: according to state of fault nodes in the two-dimensional mesh network, keep safety information of each of the four virtual networks, before injecting the packet into a corresponding virtual network for routing, and, based on the class of the packet and the safety information, the packet is injected into a corresponding virtual network for a deadlock-free fully adaptive fault-tolerant routing; wherein a step of setting safety information of each virtual network includes: any fault-free node is set to unsafe in a virtual network, if it has two faulty or unsafe neighbors along x dimension and y dimension; each fault-free node keeps its state in the four virtual networks; in addition, each fault-free node keeps safety information of its fault-free neighbors in all the four virtual networks; therefore, 16 bits data at most should be kept at each fault-free router in a two-dimensional mesh networks-on-chip.

5

5. The method according to claim 4 , further comprising: calculating offsets along x dimension and y dimension which are a destination node relative to a source node; wherein the first offset is x offset =x d −x s , the second offset is y offset =yd−ys, where (x s ,y s ) and (x d ,y d ) are coordinates of the source node and the destination node, respectively; wherein when a packet falls in the x*y− virtual network, it is delivered by using a fault-tolerant adaptive routing, that includes: if x offset <0 and y offset <0, and the packet occupies a c y,1 − channel, moreover, both neighbors along minimum paths of x− direction and y− direction are safe, then the next hop is a c x,2 − channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset <0, and the packet occupies a c x,1 − channel, moreover, both neighbors along minimum paths of the x− direction and the y− direction are safe, then the next hop is the c x,1 − channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset <0, and the packet occupies the c x,2 − channel, moreover, both neighbors along minimum paths of x− direction and y− direction are safe, then the next hop is the c x,2 − channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset <0, and both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is a c x,1 + channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset <0, and the neighbor along minimum paths of y− direction is safe, then the next hop is the c y,1 − channel; if x offset >0 and y offset =0, and the neighbor along minimum paths of x+ direction is safe, then the next hop is the c x,1 + channel; if x offset and, if x offset <0 and y offset =0, and packet of the class 8 occupies the c x,2 − channel or the c y,1 − channel, moreover, the neighbor along minimum paths of x− direction is safe, then the next hop is the c x,2 − channel; otherwise, the neighbor along minimum paths is safe, then the next hop is the c x,1 − channel; and, wherein when minimum path neighbors are unsafe, and the packet occupies an x channel, the packet turns to the x*y+ virtual network; if minimum path neighbors are unsafe, and the packet occupies a y channel in this case, misroute the packet to a x channel until the y− channel is available, then the packet routes along the minimum path in the y− direction; and, wherein when a packet falls in the x*y+ virtual network, it is delivered by using fault-tolerant adaptive routing, that includes: if x offset >0 and y offset >0, and the packet occupies the c x,1 + channel, moreover, both neighbors along minimum paths of x+ direction and y+ direction are safe, then the next hop is the c x,1 + channel; otherwise, if the packet does not occupy the c x,1 + channel, then the next hop is the c x,1 + channel or a c y,1 + channel, and the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset >0, and, both neighbors along minimum paths of x− direction and y+ direction are safe, then the next hop is the c x,1 − channel or the c y,1 + channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset >0, and the neighbor along minimum paths of y+ direction is safe, then the next hop is the c y,1 + channel; if x offset >0 and y offset =0, and the neighbor along minimum paths of x+ direction is safe, then the next hop is the c x,1 + channel; and, if x offset <0 and y offset =0, and the neighbor along minimum paths of x− direction is safe, then the next hop is the c x,1 − channel; and, wherein when minimum path neighbors are unsafe, and the packet occupies an x channel, the packet turns to the x*y− virtual network; if minimum path neighbors are unsafe, and the packet occupies a y channel in this case, misroute the packet to a x channel until the y+ channel is available, then the packet routes along minimum path in the y+ direction; and, wherein when a packet falls in the x−y* virtual network, it is delivered by using a fault-tolerant adaptive routing, that includes: if x offset <0 and y offset >0, and the packet occupies the c x,2− channel, moreover, both neighbors along minimum paths of x− direction and y+ direction are safe, then the next hop is the c x,2− channel; otherwise, if the packet does not occupy the c x,2− channel, then the next hop is the c x,2− or a c y,2+ channel, and the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset <0, and, both neighbors along minimum paths of x− direction and y− direction are safe, then the next hop is the c x,2 − channel or a c y,2 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset >0, and the neighbor along minimum paths of y+ direction is safe, then the next hop is the c y,2 + channel; if x offset =0 and y offset <0, and the neighbor along minimum paths of y− direction is safe, then the next hop is the c y,2 − channel; and, if x offset <0 and y offset =0, and the neighbor along minimum paths of x− direction is safe, then the next hop is the c x,2 − channel; and, wherein when minimum path neighbors are unsafe, and the packet occupies a y channel, the packet turns to the x+y* virtual network; if the minimum path neighbors are unsafe, and the packet occupies an x channel in this case, misroute the packet to a y channel until the x− channel is available, then the packet routes along minimum path in the x− direction; and, wherein when a packet falls in the x+y* virtual network, it is delivered by using a fault-tolerant adaptive routing, that includes: if x offset >0 and y offset <0, and the packet occupies the c y,2 − channel, moreover, both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is the c x,1 + channel or the c y,2 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset <0, and the packet occupies the c x,1+ channel, moreover, both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is the c x,1+ channel or the c y,2− channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset <0, and the packet occupies a c x,2 + channel, moreover, both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is the c x,2 + channel or the c y,2 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset >0, and both neighbors along the minimum paths of x+ direction and y+ direction are safe, then the next hop is the c x,2 + channel or the c y,2 + channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset <0, and the neighbor along minimum paths of y− direction is safe, then the next hop is the c y,2 − channel; if x offset =0 and y offset >0, and the neighbor along minimum paths of y+ direction is safe, then the next hop is the c y,2 + channel; and, if x offset >0 and y offset =0, and the packet of the class 3 occupies the c x,1 + channel or the c y,2 − channel, moreover, the neighbor along minimum paths of x+ direction is safe, then the next hop is the c x,1 + channel; otherwise, the packet does not occupy the above stated channel, and the neighbor along the minimum paths is safe, then the next hop is the c x,2 + channel; wherein when the minimum path neighbors are unsafe, and the packet occupies a y channel, the packet turns to the x−y* virtual network; if the minimum path neighbors are unsafe, and the packet occupies an x channel in this case, misroute the packet along y direction until a minimum x+ channel is available, then the packet routes along the minimum path in the x+ direction.

6

6. An adaptive routing apparatus for two-dimensional mesh networks-on-chip, the adaptive routing apparatus comprising: a data storage; and a processor communicatively connected to the data storage, the processor being configured to use x dimension and y dimension to partition a two-dimensional mesh network into eight virtual sub-networks, according to offsets between a source node and a destination node of a packet along the x dimension or the y dimension; set classes of the packet corresponding to each of the eight virtual sub-networks, then merging the eight virtual sub-networks into four virtual networks; determine a class of the packet, according to the source node and destination node of the packet; and, inject the packet into one of the four virtual networks to route based on the class of the packet; wherein, a step of using x dimension and y dimension to partition a two-dimensional mesh network into eight virtual sub-networks includes: partition the two-dimensional mesh network into eight virtual sub-networks as follows: (1) x+y+(1), (2) x+y+(2), (3) x+y−(1), (4) x+y−(2), (5) x−y+(1), (6) x−y+(2), (7) x−y−(1), (8) x−y−(2); each conventional virtual network in a two-dimensional mesh appears twice in the eight sub-virtual networks, wherein packets are classified into eight classes according to the eight virtual sub-networks; and, wherein a step of setting classes of the packets corresponding to each of the eight virtual sub-networks, includes: according to the eight virtual sub-networks (1) x+y+(1), (2) x+y+(2), (3) x+y−(1), (4) x+y−(2), (5) x−y+(1), (6) x−y+(2), (7) x−y−(1), (8) x−y−(2), set classes of packets into eight classes; considering a packet with offsets along x+ dimension and y+ dimension, setting the classes of the packet along x+ dimension and y+ dimension into class 1 and class 2, where the class 1 is x+y+(1), and the class 2 is x+y+(2); considering a packet with offsets along x+ dimension and y− dimension, setting the classes of the packet along x+ dimension and y− dimension into class 3 and class 4, where the class 3 is x+y−(1), and the class 4 is x+y−(2); considering a packet with offsets along x− dimension and y+ dimension, setting the classes of the packet along x− dimension and y+ dimension into class 5 and class 6, where the class 5 is x−y+(1), and the class 6 is x−y+(2); and, considering a packet with offsets along x− dimension and y− dimension, setting the classes of the packet along x− dimension and y− dimension into class 7 and class 8, where the class 7 is x−y−(1), and the class 8 is x−y−(2); and, wherein a step of merging the eight virtual sub-networks into four virtual networks includes: merging the eight virtual sub-networks into four virtual networks as follows: (1) x*y−, (2) x*y+, (3) x−y*, (4) x+y*; and, wherein a step of injecting the packet into one of the four virtual networks to route based on the class of the packet includes: calculating a first offset along the x dimension and a second offset along the y dimension between the source node and the destination node of the packet; wherein according to the first offset and the second offset, the packet is injected into a corresponding virtual network to route following these rules: if the first offset and the second offset are both greater than zero, the packet is injected into x*y+ virtual network or x+y* virtual network; if the first offset is greater than zero and the second offset is less than zero, the packet is injected into x*y− virtual network or x+y* virtual network; if the first offset is less than zero and the second offset is greater than zero, the packet is injected into x*y+ virtual network or x−y* virtual network; and, if the first offset and the second offset are both less than zero, the packet is injected into x*y− virtual network or x−y* virtual network; and, after the step of merging the eight virtual sub-networks into four virtual networks, further comprising: a physical x channel is assigned virtual channels c x,1 and c x,2 , a y channel is assigned virtual channels c y,1 , and c y,2 ; then the four virtual networks are assigned these virtual channels: x*y−(c x,1 ,c y,1 −), x*y+(c x,1 ,c y,1 +), x−y* (c x,2 −,c y,2 ), and x+y* (c x,2 +,c y,2 ) for x and y channels in the four virtual networks; the x*y− virtual networks and the x*y+ virtual networks are assigned the virtual channels c x,1 along the x dimension, and the x−y* virtual networks and the x+y* virtual networks are assigned the virtual channels c y,2 along the y dimension; and, before a step of injecting the packet into one of the virtual networks to route based on the class of the packet further comprising: setting deadlock-free routing algorithm rules for the packet to route in the virtual network; and, according to the class of the packet and the deadlock-free routing algorithm rules, any packet can be routed with full adaptivity in the four virtual network.

7

7. The apparatus according to claim 6 , wherein according to the eight virtual sub-networks: (1) x+y+(1), (2) x+y+(2), (3) x+y−(1), (4) x+y−(2), (5) x−y+(1), (6) x−y+(2), (7) x−y−(1), and (8) x−y−(2), set following rules for the deadlock-free routing algorithm, where two prevented turns and two special turns are set: packets of the class 2 in the x*y+ virtual network of a first group are not allowed to turn to a c y,1 + channel from a c x,1 + channel; packets of the class 5 in the x−y* virtual network of a second group are not allowed to turn to a c y,2 + channel from a c x,2 − channel; packets of the class 3 in the x+y* virtual network of the second group turn from a c y,2 − channel to a c x,1 + channel, first, they change channel to the virtual network of the first group, and then when returning back to y− direction via the c y,2 − channel, change channel again to return back to the virtual network of the second group; and, packets of the class 8 in the x*y− virtual network of the second group turn from a c y,1 − channel to a c x,2 − channel, first, they change channel to the virtual network of the second group, and then when returning back to the y direction via the c y,1 − channel, change channel again to return back to the virtual network of the first group.

8

8. The apparatus according to claim 6 , wherein the processor is further configured to calculate offsets along x dimension and y dimension, which are the destination node relative to the source node, the first offset is x offset =x d −x s , the second offset is y offset =y d −y s , where (x s ,y s ) and (x d ,y d ) are coordinates of source node and destination node, respectively; and, wherein when a packet falls in x*y− virtual network, it is delivered by using a deadlock-free fully adaptive routing, that includes: if x offset <0 and y offset <0, and the packet occupies a c y,1 − channel, then the next hop is a c x,2 − channel or a c y,2 − channel; if x offset <0 and y offset <0, and the packet occupies a c x,1 − channel, then the next hop is the c x,1 − channel or the c y,1 − channel; if x offset <0 and y offset <0, and the packet occupies the c x,2 − channel, then the next hop is the c x,2 − channel or the c y,1 − channel; if x offset >0 and y offset <0, then the next hop is a c x,1 + channel or the c y,1 − channel; if x offset =0 and y offset <0, then the next hop is the c y,1 − channel; if x offset >0 and y offset =0, then the next hop is the c x,1 + channel; and, if x offset <0 and y offset =0, and packet of the class 8 occupies the c y,1 − channel or the c x,2 − channel, then the next hop is the c x,2 − channel; otherwise the next hop is the c x,1 − channel; and, wherein when a packet falls in the x*y+ virtual network, it is delivered by using a deadlock-free adaptive routing, that includes: if x offset >0 and y offset >0, and the packet occupies the c x,1 + channel, then the next hop is the c x,1 + channel; otherwise, the packet occupies a c y,1 + channel, then the next hop is the c x,1 + channel or the c y,1 + channel; if x offset <0 and y offset >0, then the next hop is the c x,1 − channel or the c y,1 + channel; if x offset =0 and y offset >0, then the next hop is the c y,1 + channel; if x offset <0 and y offset =0, then the next hop is the c x,1 − channel; and, if x offset >0 and y offset =0, then the next hop is the c x,1 + channel; and, wherein when a packet falls in the x−y* virtual network, it is delivered by using a deadlock-free adaptive routing, that includes: if x offset <0 and y offset >0, and the packet occupies the c x,2 − channel, then the next hop is the c x,2 − channel; otherwise, the packet occupies a c y,2 + channel, then the next hop is the c x,2 − channel or the c y,2 + channel; if x offset <0 and y offset <0, then the next hop is the c x,2 − channel or the c y,2 − channel; if x offset =0 and y offset >0, then the next hop is the c y,2 + channel; if x offset =0 and y offset <0, then the next hop is the c y,2 − channel; and, if x offset <0 and y offset =0, then the next hop is the c x,2 − channel; and, wherein when a packet falls in x+y* virtual network, it is delivered by using a deadlock-free fully adaptive routing, that includes: if x offset >0 and y offset <0, and the packet occupies the c y,2 − channel, then the next hop is the c x,1 + channel or the c y,2 − channel; if x offset >0 and y offset <0, and packet of the class 3 occupies a c x,2 + channel, then the next hop is the c x,2 + channel or the c y,2 − channel; if x offset >0 and y offset <0, and the packet occupies the c x,1 + channel, then the next hop is the c x,1 + channel or the c y,2 − channel; if x offset >0 and y offset >0, then the next hop is the c x,2 + channel or the c y,2 + channel; if x offset =0 and y offset <0, then the next hop is the c y,2 − channel; if x offset =0 and y offset >0, then the next hop is the c y,2 + channel; and, if x offset >0 and y offset =0, and packet of the class 3 occupies a c y,2 − channel or the c x,1 + channel, then the next hop is the c x,1 + channel; otherwise the next hop is the c x,2 + channel.

9

9. The apparatus according to claim 6 , wherein the processor is further configured to keep safety information of each of the four virtual networks before injecting the packet into a corresponding virtual network for routing, according to state of fault nodes in the two-dimensional mesh network, and, based on the class of the packet and the safety information, the packet is injected into a corresponding virtual network for a deadlock-free fully adaptive fault-tolerant routing; wherein a step of setting safety information of each virtual network includes: any fault-free node is set to unsafe in a virtual network, if it has two faulty or unsafe neighbors along x dimension and y dimension; each fault-free node keeps its state in the four virtual networks; in addition, each fault-free node keeps safety information of its fault-free neighbors in all the four virtual networks; therefore, 16 bits data at most should be kept at each fault-free router in a two-dimensional mesh networks-on-chip.

10

10. The apparatus according to claim 9 , wherein the processor is further configured to calculate offsets along x dimension and y dimension which are a destination node relative to a source node; wherein the first offset is x offset =x d −x s , the second offset is y offset =yd−ys, where (x s ,y s ) and (x d ,y d ) are coordinates of the source node and the destination node, respectively; wherein when a packet falls in the x*y− virtual network, it is delivered by using a fault-tolerant adaptive routing, that includes: if x offset <0 and y offset <0, and the packet occupies a c y,1 − channel, moreover, both neighbors along minimum paths of x− direction and y− direction are safe, then the next hop is a c x,2 − channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset <0, and the packet occupies a c x,1 − channel, moreover, both neighbors along minimum paths of the x− direction and the y− direction are safe, then the next hop is the c x,1 − channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset <0, and the packet occupies the c x,2 − channel, moreover, both neighbors along minimum paths of x− direction and y− direction are safe, then the next hop is the c x,2 − channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset <0, and both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is a c x,1 + channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset <0, and the neighbor along minimum paths of y− direction is safe, then the next hop is the c y,1 − channel; if x offset >0 and y offset =0, and the neighbor along minimum paths of x+ direction is safe, then the next hop is the c x,1 + channel; and, if x offset <0 and y offset =0, and packet of the class 8 occupies the c x,2 − channel or the c y,1 − channel, moreover, the neighbor along minimum paths of x− direction is safe, then the next hop is the c x,2 − channel; otherwise, the neighbor along minimum paths is safe, then the next hop is the c x,1 − channel; and, wherein when minimum path neighbors are unsafe, and the packet occupies an x channel, the packet turns to the x*y+ virtual network; if minimum path neighbors are unsafe, and the packet occupies a y channel in this case, misroute the packet to a x channel until the y− channel is available, then the packet routes along the minimum path in the y− direction; and, wherein when a packet falls in the x*y+ virtual network, it is delivered by using fault-tolerant adaptive routing, that includes: if x offset >0 and y offset >0, and the packet occupies the c x,1 + channel, moreover, both neighbors along minimum paths of x+ direction and y+ direction are safe, then the next hop is the c x,1 + channel; otherwise, if the packet does not occupy the c x,1 + channel, then the next hop is the c x,1 + channel or a c y,1 + channel, and the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset >0, and, both neighbors along minimum paths of x− direction and y+ direction are safe, then the next hop is the c x,1 − channel or the c y,1 + channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset >0, and the neighbor along minimum paths of y+ direction is safe, then the next hop is the c y,1 + channel; if x offset >0 and y offset =0, and the neighbor along minimum paths of x+ direction is safe, then the next hop is the c x,1 + channel; and, if x offset <0 and y offset =0, and the neighbor along minimum paths of x− direction is safe, then the next hop is the c x,1 − channel; and, wherein when minimum path neighbors are unsafe, and the packet occupies an x channel, the packet turns to the x*y− virtual network; if minimum path neighbors are unsafe, and the packet occupies a y channel in this case, misroute the packet to a x channel until the y+ channel is available, then the packet routes along minimum path in the y+ direction; and, wherein when a packet falls in the x−y* virtual network, it is delivered by using a fault-tolerant adaptive routing, that includes: if x offset <0 and y offset >0, and the packet occupies the c x,2− channel, moreover, both neighbors along minimum paths of x− direction and y+ direction are safe, then the next hop is the c x,2− channel; otherwise, if the packet does not occupy the c x,2− channel, then the next hop is the c x,2− or a c y,2+ channel, and the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset <0, and, both neighbors along minimum paths of x− direction and y− direction are safe, then the next hop is the c x,2 − channel or a c y,2 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset >0, and the neighbor along minimum paths of y+ direction is safe, then the next hop is the c y,2 + channel; if x offset =0 and y offset <0, and the neighbor along minimum paths of y− direction is safe, then the next hop is the c y,2 − channel; and, if x offset <0 and y offset =0, and the neighbor along minimum paths of x− direction is safe, then the next hop is the c x,2 − channel; and, wherein when minimum path neighbors are unsafe, and the packet occupies a y channel, the packet turns to the x+y* virtual network; if the minimum path neighbors are unsafe, and the packet occupies an x channel in this case, misroute the packet to a y channel until the x− channel is available, then the packet routes along minimum path in the x− direction; and, wherein when a packet falls in the x+y* virtual network, it is delivered by using a fault-tolerant adaptive routing, that includes: if x offset >0 and y offset <0, and the packet occupies the c y,2 − channel, moreover, both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is the c x,1 + channel or the c y,2 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset <0, and the packet occupies the c x,1+ channel, moreover, both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is the c x,1+ channel or the c y,2− channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset <0, and the packet occupies a c x,2 + channel, moreover, both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is the c x,2 + channel or the c y,2 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset >0, and both neighbors along the minimum paths of x+ direction and y+ direction are safe, then the next hop is the c x,2 + channel or the c y,2 + channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset <0, and the neighbor along minimum paths of y− direction is safe, then the next hop is the c y,2 − channel; if x offset =0 and y offset >0, and the neighbor along minimum paths of y+ direction is safe, then the next hop is the c y,2 + channel; and, if x offset >0 and y offset =0, and the packet of the class 3 occupies the c x,1 + channel or the c y,2 − channel, moreover, the neighbor along minimum paths of x+ direction is safe, then the next hop is the c x,1 + channel; otherwise, the packet does not occupy the above stated channel, and the neighbor along the minimum paths is safe, then the next hop is the c x,2 + channel; wherein when the minimum path neighbors are unsafe, and the packet occupies a y channel, the packet turns to the x−y* virtual network; if the minimum path neighbors are unsafe, and the packet occupies an x channel in this case, misroute the packet along y direction until a minimum x+ channel is available, then the packet routes along the minimum path in the x+ direction.

11

11. An adaptive non-transitory computer storage medium for two-dimensional mesh networks-on-chip, which, when executed by computer, cause the computer to perform a method, the method comprising using x dimension and y dimension to partition a two-dimensional mesh network into eight virtual sub-networks, according to offsets between a source node and a destination node of a packet along the x dimension or the y dimension; setting classes of the packet corresponding to each of the eight virtual sub-networks, then merging the eight virtual sub-networks into four virtual networks; determining a class of the packet, according to the source node and destination node of the packet; and, injecting the packet into one of the four virtual networks to route based on the class of the packet; wherein, a step of using x dimension and y dimension to partition a two-dimensional mesh network into eight virtual sub-networks includes: partitioning the two-dimensional mesh network into eight virtual sub-networks as follows: (1) x+y+(1), (2) x+y+(2), (3) x+y−(1), (4) x+y−(2), (5) x−y+(1), (6) x−y+(2), (7) x−y−(1), (8) x−y−(2); each conventional virtual network in a two-dimensional mesh appears twice in the eight sub-virtual networks, wherein packets are classified into eight classes according to the eight virtual sub-networks; and, wherein a step of setting classes of the packets corresponding to each of the eight virtual sub-networks, includes: according to the eight virtual sub-networks (1) x+y+(1), (2) x+y+(2), (3) x+y−(1), (4) x+y−(2), (5) x−y+(1), (6) x−y+(2), (7) x−y−(1), (8) x−y−(2), set classes of packets into eight classes; considering a packet with offsets along x+ dimension and y+ dimension, setting the classes of the packet along x+ dimension and y+ dimension into class 1 and class 2, where the class 1 is x+y+(1), and the class 2 is x+y+(2); considering a packet with offsets along x+ dimension and y− dimension, setting the classes of the packet along x+ dimension and y− dimension into class 3 and class 4, where the class 3 is x+y−(1), and the class 4 is x+y−(2); considering a packet with offsets along x− dimension and y+ dimension, setting the classes of the packet along x− dimension and y+ dimension into class 5 and class 6, where the class 5 is x−y+(1), and the class 6 is x−y+(2); and, considering a packet with offsets along x− dimension and y− dimension, setting the classes of the packet along x− dimension and y− dimension into class 7 and class 8, where the class 7 is x−y−(1), and the class 8 is x−y−(2); and, wherein a step of merging the eight virtual sub-networks into four virtual networks includes: merging the eight virtual sub-networks into four virtual networks as follows: (1) x*y−, (2) x*y+, (3) x−y*, (4) x+y*; and, wherein a step of injecting the packet into one of the four virtual networks to route based on the class of the packet includes: calculating a first offset along the x dimension and a second offset along the y dimension between the source node and the destination node of the packet; wherein according to the first offset and the second offset, the packet is injected into a corresponding virtual network to route following these rules: if the first offset and the second offset are both greater than zero, the packet is injected into x*y+ virtual network or x+y* virtual network; if the first offset is greater than zero and the second offset is less than zero, the packet is injected into x*y− virtual network or x+y* virtual network; if the first offset is less than zero and the second offset is greater than zero, the packet is injected into x*y+ virtual network or x−y* virtual network; and, if the first offset and the second offset are both less than zero, the packet is injected into x*y− virtual network or x−y* virtual network; and, after the step of merging the eight virtual sub-networks into four virtual networks, further comprising: a physical x channel is assigned virtual channels c x,1 and c x,2 , a y channel is assigned virtual channels c y,1 , and c y,2 ; then the four virtual networks are assigned these virtual channels: x*y−(c x,1 ,c y,1 −), x*y+(c x,1 ,c y,1 +), x−y* (c x,2 −,c y,2 ), and x+y* (c x,2 +,c y,2 ) for x and y channels in the four virtual networks; the x*y− virtual networks and the x*y+ virtual networks are assigned the virtual channels c x,1 along the x dimension, and the x−y* virtual networks and the x+y* virtual networks are assigned the virtual channels c y,2 along the y dimension; and, before a step of injecting the packet into one of the virtual networks to route based on the class of the packet further comprising: setting deadlock-free routing algorithm rules for the packet to route in the virtual network; and, according to the class of the packet and the deadlock-free routing algorithm rules, any packet can be routed with full adaptivity in the four virtual network.

12

12. The computer storage medium according to claim 11 , wherein according to the eight virtual sub-networks: (1) x+y+(1), (2) x+y+(2), (3) x+y−(1), (4) x+y−(2), (5) x−y+(1), (6) x−y+(2), (7) x−y−(1), and (8) x−y−(2), set following rules for the deadlock-free routing algorithm, where two prevented turns and two special turns are set: packets of the class 2 in the x*y+ virtual network of a first group are not allowed to turn to a c y,1 + channel from a c x,1 + channel; packets of the class 5 in the x−y* virtual network of a second group are not allowed to turn to a c y,2 + channel from a c x,2 − channel; packets of the class 3 in the x+y* virtual network of the second group turn from a c y,2 − channel to a c x,1 + channel, first, they change channel to the virtual network of the first group, and then when returning back to y− direction via the c y,2 − channel, change channel again to return back to the virtual network of the second group; and, packets of the class 8 in the x*y− virtual network of the second group turn from a c y,1 − channel to a c x,2 − channel, first, they change channel to the virtual network of the second group, and then when returning back to the y direction via the c y,1 − channel, change channel again to return back to the virtual network of the first group.

13

13. The computer storage medium according to claim 12 , further comprising: calculating offsets along x dimension and y dimension, which are the destination node relative to the source node, the first offset is x offset =x d −x s , the second offset is y offset =y d −y s , where (x s ,y s ) and (x d ,y d ) are coordinates of source node and destination node, respectively; and, wherein when a packet falls in x*y− virtual network, it is delivered by using a deadlock-free fully adaptive routing, that includes: if x offset <0 and y offset <0, and the packet occupies a c y,1 − channel, then the next hop is a c x,2 − channel or a c y,2 − channel; if x offset <0 and y offset <0, and the packet occupies a c x,1 − channel, then the next hop is the c x,1 − channel or the c y,1 − channel; if x offset <0 and y offset <0, and the packet occupies the c x,2 − channel, then the next hop is the c x,2 − channel or the c y,1 − channel; if x offset >0 and y offset <0, then the next hop is a c x,1 + channel or the c y,1 − channel; if x offset =0 and y offset <0, then the next hop is the c y,1 − channel; if x offset >0 and y offset =0, then the next hop is the c x,1 + channel; and, if x offset <0 and y offset =0, and packet of the class 8 occupies the c y,1 − channel or the c x,2 − channel, then the next hop is the c x,2 − channel; otherwise the next hop is the c x,1 − channel; and, wherein when a packet falls in the x*y+ virtual network, it is delivered by using a deadlock-free adaptive routing, that includes: if x offset >0 and y offset >0, and the packet occupies the c x,1 + channel, then the next hop is the c x,1 + channel; otherwise, the packet occupies a c y,1 + channel, then the next hop is the c x,1 + channel or the c y,1 + channel; if x offset <0 and y offset >0, then the next hop is the c x,1 − channel or the c y,1 + channel; if x offset =0 and y offset >0, then the next hop is the c y,1 + channel; if x offset <0 and y offset =0, then the next hop is the c x,1 − channel; and, if x offset >0 and y offset =0, then the next hop is the c x,1 + channel; and, wherein when a packet falls in the x−y* virtual network, it is delivered by using a deadlock-free adaptive routing, that includes: if x offset <0 and y offset >0, and the packet occupies the c x,2 − channel, then the next hop is the c x,2 − channel; otherwise, the packet occupies a c y,2 + channel, then the next hop is the c x,2 − channel or the c y,2 + channel; if x offset <0 and y offset <0, then the next hop is the c x,2 − channel or the c y,2 − channel; if x offset =0 and y offset >0, then the next hop is the c y,2 + channel; if x offset =0 and y offset <0, then the next hop is the c y,2 − channel; and, if x offset <0 and y offset =0, then the next hop is the c x,2 − channel; and, wherein when a packet falls in x+y* virtual network, it is delivered by using a deadlock-free fully adaptive routing, that includes: if x offset >0 and y offset <0, and the packet occupies the c y,2 − channel, then the next hop is the c x,1 + channel or the c y,2 − channel; if x offset >0 and y offset <0, and packet of the class 3 occupies a c x,2 + channel, then the next hop is the c x,2 + channel or the c y,2 − channel; if x offset >0 and y offset <0, and the packet occupies the c x,1 + channel, then the next hop is the c x,1 + channel or the c y,2 − channel; if x offset >0 and y offset >0, then the next hop is the c x,2 + channel or the c y,2 + channel; if x offset =0 and y offset <0, then the next hop is the c y,2 − channel; if x offset =0 and y offset >0, then the next hop is the c y,2 + channel; and, if x offset >0 and y offset =0, and packet of the class 3 occupies a c y,2 − channel or the c x,1 + channel, then the next hop is the c x,1 + channel; otherwise the next hop is the c x,2 + channel.

14

14. The computer storage medium according to claim 11 , further comprising: according to state of fault nodes in the two-dimensional mesh network, keep safety information of each of the four virtual networks, before injecting the packet into a corresponding virtual network for routing, and, based on the class of the packet and the safety information, the packet is injected into a corresponding virtual network for a deadlock-free fully adaptive fault-tolerant routing; wherein a step of setting safety information of each virtual network includes: any fault-free node is set to unsafe in a virtual network, if it has two faulty or unsafe neighbors along x dimension and y dimension; each fault-free node keeps its state in the four virtual networks; in addition, each fault-free node keeps safety information of its fault-free neighbors in all the four virtual networks; therefore, 16 bits data at most should be kept at each fault-free router in a two-dimensional mesh networks-on-chip.

15

15. The computer storage medium according to claim 14 , further comprising: calculating offsets along x dimension and y dimension which are a destination node relative to a source node; wherein the first offset is x offset =x d −x s , the second offset is y offset =yd−ys, where (x s ,y s ) and (x d ,y d ) are coordinates of the source node and the destination node, respectively; wherein when a packet falls in the x*y− virtual network, it is delivered by using a fault-tolerant adaptive routing, that includes: if x offset <0 and y offset <0, and the packet occupies a c y,1 − channel, moreover, both neighbors along minimum paths of x− direction and y− direction are safe, then the next hop is a c x,2 − channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset <0, and the packet occupies a c x,1 − channel, moreover, both neighbors along minimum paths of the x− direction and the y− direction are safe, then the next hop is the c x,1 − channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset <0, and the packet occupies the c x,2 − channel, moreover, both neighbors along minimum paths of x− direction and y− direction are safe, then the next hop is the c x,2 − channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset <0, and both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is a c x,1 + channel or the c y,1 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset <0, and the neighbor along minimum paths of y− direction is safe, then the next hop is the c y,1 − channel; if x offset >0 and y offset =0, and the neighbor along minimum paths of x+ direction is safe, then the next hop is the c x,1 + channel; and, if x offset <0 and y offset =0, and packet of the class 8 occupies the c x,2 − channel or the c y,1 − channel, moreover, the neighbor along minimum paths of x− direction is safe, then the next hop is the c x,2 − channel; otherwise, the neighbor along minimum paths is safe, then the next hop is the c x,1 − channel; and, wherein when minimum path neighbors are unsafe, and the packet occupies an x channel, the packet turns to the x*y+ virtual network; if minimum path neighbors are unsafe, and the packet occupies a y channel in this case, misroute the packet to a x channel until the y− channel is available, then the packet routes along the minimum path in the y− direction; and, wherein when a packet falls in the x*y+ virtual network, it is delivered by using fault-tolerant adaptive routing, that includes: if x offset >0 and y offset >0, and the packet occupies the c x,1 + channel, moreover, both neighbors along minimum paths of x+ direction and y+ direction are safe, then the next hop is the c x,1 + channel; otherwise, if the packet does not occupy the c x,1 + channel, then the next hop is the c x,1 + channel or a c y,1 + channel, and the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset >0, and, both neighbors along minimum paths of x− direction and y+ direction are safe, then the next hop is the c x,1 − channel or the c y,1 + channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset >0, and the neighbor along minimum paths of y+ direction is safe, then the next hop is the c y,1 + channel; if x offset >0 and y offset =0, and the neighbor along minimum paths of x+ direction is safe, then the next hop is the c x,1 + channel; and, if x offset <0 and y offset =0, and the neighbor along minimum paths of x− direction is safe, then the next hop is the c x,1 − channel; and, wherein when minimum path neighbors are unsafe, and the packet occupies an x channel, the packet turns to the x*y− virtual network; if minimum path neighbors are unsafe, and the packet occupies a y channel in this case, misroute the packet to a x channel until the y+ channel is available, then the packet routes along minimum path in the y+ direction; and, wherein when a packet falls in the x−y* virtual network, it is delivered by using a fault-tolerant adaptive routing, that includes: if x offset <0 and y offset >0, and the packet occupies the c x,2− channel, moreover, both neighbors along minimum paths of x− direction and y+ direction are safe, then the next hop is the c x,2− channel; otherwise, if the packet does not occupy the c x,2− channel, then the next hop is the c x,2− or a c y,2+ channel, and the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset <0 and y offset <0, and, both neighbors along minimum paths of x− direction and y− direction are safe, then the next hop is the c x,2 − channel or a c y,2 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset >0, and the neighbor along minimum paths of y+ direction is safe, then the next hop is the c y,2 + channel; if x offset =0 and y offset <0, and the neighbor along minimum paths of y− direction is safe, then the next hop is the c y,2 − channel; and, if x offset <0 and y offset =0, and the neighbor along minimum paths of x− direction is safe, then the next hop is the c x,2 − channel; and, wherein when minimum path neighbors are unsafe, and the packet occupies a y channel, the packet turns to the x+y* virtual network; if the minimum path neighbors are unsafe, and the packet occupies an x channel in this case, misroute the packet to a y channel until the x− channel is available, then the packet routes along minimum path in the x− direction; and, wherein when a packet falls in the x+y* virtual network, it is delivered by using a fault-tolerant adaptive routing, that includes: if x offset >0 and y offset <0, and the packet occupies the c y,2 − channel, moreover, both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is the c x,1 + channel or the c y,2 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset <0, and the packet occupies the c x,1+ channel, moreover, both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is the c x,1+ channel or the c y,2− channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset <0, and the packet occupies a c x,2 + channel, moreover, both neighbors along minimum paths of x+ direction and y− direction are safe, then the next hop is the c x,2 + channel or the c y,2 − channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset >0 and y offset >0, and both neighbors along the minimum paths of x+ direction and y+ direction are safe, then the next hop is the c x,2 + channel or the c y,2 + channel; the packet is delivered along remaining direction if one of the neighbors is unsafe or faulty; if x offset =0 and y offset <0, and the neighbor along minimum paths of y− direction is safe, then the next hop is the c y,2 − channel; if x offset =0 and y offset >0, and the neighbor along minimum paths of y+ direction is safe, then the next hop is the c y,2 + channel; and, if x offset >0 and y offset =0, and the packet of the class 3 occupies the c x,1 + channel or the c y,2 − channel, moreover, the neighbor along minimum paths of x+ direction is safe, then the next hop is the c x,1 + channel; otherwise, the packet does not occupy the above stated channel, and the neighbor along the minimum paths is safe, then the next hop is the c x,2 + channel; wherein when the minimum path neighbors are unsafe, and the packet occupies a y channel, the packet turns to the x−y* virtual network; if the minimum path neighbors are unsafe, and the packet occupies an x channel in this case, misroute the packet along y direction until a minimum x+ channel is available, then the packet routes along the minimum path in the x+ direction.

Patent Metadata

Filing Date

Unknown

Publication Date

April 12, 2022

Inventors

Dong Xiang
Yuan Cai
Xiang Ji

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “METHOD, APPARATUS AND COMPUTER STORAGE MEDIUM FOR DEADLOCK-FREE ADAPTIVE ROUTING IN TWO-DIMENSIONAL MESH NETWORK BASED ON THE OVERLAPPING VIRTUAL NETWORK PARTITIONING SCHEME” (11303559). https://patentable.app/patents/11303559

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.