Você está na página 1de 17

Routing Algorithms in NoC

Scope of Presentation:
1. 2. 3. 4. 5. 6. 7. Concept of Deadlock, Livelock and Starvation Taxonomy of Routing Algorithms in NoC Network Flow Control in NoC Classical Routing Algorithms Adaptive Routing Algorithms Genetic Algorithm based Routing Algorithm Artificial Neural Network bases Routing Algorithm

1. Deadlock, Livelock and Starvation


Deadlock : Routing is in deadlock when two packets are waiting each other to be routed forward. Both of the packets reserve some resources and both are waiting each other to release the resources.

Livelock : Livelock occurs when a packet keeps spinning around its destination without ever reaching it. This problem exists in nonminimal routing algorithms. Livelock should be cut out to guarantee packets throughput.
Starvation : Using different priorities can cause a situation where some packets with lower priorities never reach their destinations. This occurs when the packets with higher priorities reserve the resources all the time. Starvation can be avoided by using a fair routing algorithm or reserving some bandwidth only for low-priority packets.

2. Taxonomy of Routing Algorithms in NoC


Based on : 1. No. of Destinations: Unicast or Multicast 2. Routing Decision Locality: Source or Distributed 3. Implementation: LUT or FSM 4. Adaptability: Deterministic or Adaptive 5. Progressiveness: Progressive or Backtrace-enabled 6. Minimality: Profitable or Misrouting 7. No. of paths: Fully Adaptive or Partially Adaptive

3. Network Flow Control in NoC


Network flow control, also called as routing mode, determines how packets are transmitted inside a network.

Types:
Store-and-Forward Routing : Packets move in one piece, and entire packet has
to be stored in the routers memory before it can be forwarded to the next router. So the buffer memory has to be as large as the largest packet in the network.

Virtual cut-through Routing: A router can begin to send packet to the next
router as soon as the next router gives a permission. Packet is stored in the router until the forwarding begins. Forwarding can be started before the whole packet is received and stored to router.

Wormhole Routing: In wormhole routing packets are divided to small and equal
sized flits (flow control digit or flow control unit). A first flit of a packet is routed similarly as packets in the virtual cut-through routing. After first flit the route is reserved to route the remaining flits of the packet. This route is called wormhole. It requires less memory than other two.

4. Classical Routing Algorithm


4.1 Dimension Order Routing
4.1.1 XY routing

4.2 Turn Models 4.3 Deterministic Routing Algorithms


4.3.1 Shortest Path Routing 4.3.2 Source Routing 4.3.3 Destination-tag Routing 4.3.4 Topology Adaptive Routing

4.4 Stochastic Routing Algorithms


4.4.1 Flooding Algorithms

4.5 Gaming and Graph Theory Derived Routing Algorithms


4.5.1 A-Star Routing Algorithm 4.5.2 Dijkstras Algorithm 4.5.3 Floyd Warshall Algorithm

4.1 Dimension Order Routing


Dimension order routing (DOR) is a typical minimal turn algorithm. The algorithm determines to what direction packets are routed during every stage of the routing. Pseudo Code:
4.1.1 XY Routing

Note: There are other varients of the XY Routing Algorithm as well, such as the Pseudo Adaptive XY Routing & the Surrounding XY Routing.

4.2 Turn Models

Some more Pseudo Codes

4.3 Deterministic Routing Algorithms


Deterministic routing algorithms route packets every time from a certain point A to a certain point B along a fixed path. Deterministic algorithms are used in both regular and irregular networks. They suit well on real time systems because packets always reach the destination in correct order and so a reordering is not necessary. 4.3.1 Shortest Path Routing: A shortest path routing is the simplest deterministic routing algorithm. Packets are always routed along the shortest possible path. Types of Shortest Path Routing : 1. Distance Vector Routing 2. Link State Routing 4.3.2 Source Routing: In a source routing a sender makes all decisions about a routing path of a packet. The whole route is stored in a header of packet before sending, and routers along the path do the routing just like the sender has determined it. Types: Arbitration look ahead scheme (ALOAS) is a faster version of source routing. The information of routing path has been supplied to routers along the path before the packets are even sent. A contention-free routing is a algorithm based on routing tables and time division multiplexing (TDM).

4.3.3 Destination-tag Routing: A destination-tag routing is a bit like an inversed version of the source routing. The sender stores the address of the receiver, also known as a destination-tag, to the header of the packet in the beginning of the routing. Every router makes a routing decisions independently on the grounds of the address of the receiver. 4.3.4 Topology Adaptive Routing: A topology adaptive routing algorithm is slightly adaptive. The algorithm works like a basic deterministic algorithm but it has one feature which makes it suitable to dynamic networks. Systems administrator can update the routing tables of the routers if necessary.

4.4 Stochastic Routing Algorithms


Routing with stochastic routing algorithms is based on coincidence and an assumption that every packet sooner or later reaches its destination. Stochastic algorithms are typically simple and fault-tolerant. 4.4.1 Flooding Algorithm: Types: 1. Probabilistic Flood 2. Directed Flood 3. Random Walk 4. Valiants Random Algorithm

Summary of Classical Routing Algorithm

4.5 Gaming & Graph Theory based Routing Algorithm


4.5.1 A-Star Algorithm

Path Scoring: F = G + H where G = movement cost to move from the starting point A to a given square on the grid, following the path generated to get there. H = the estimated movement cost to move from that given square on the grid to the final destination, point B. This is often referred to as the heuristic. Our path is generated by repeatedly going through our open list and choosing the square with the lowest F score.

4.5.2 Dijkstras Algorithm: Please refer the book on graph theory

4.5.3 Floyd-Warshall Algorithm : Please refer the book on graph theory

5. Adaptive Routing Algorithm


5.1 Minimal Adaptive Routing 5.2 Fully Adaptive Routing -- 5.2.1 Congestion Look Ahead 5.3 Turnaround Routing

6. Genetic Algorithm bases Routing Algorithm

7. Artificial Neural Network based Routing Algorithm

Você também pode gostar