Legal claims defining the scope of protection, as filed with the USPTO.
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.
Unknown
April 12, 2022
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.