轉彎限制路由
路由算法決定數據包從網絡中的源路由器到目標路由器所遵循的路徑。設計路由算法時要重點考慮的一個方面是避免死鎖。轉彎限制路由[1] [2]是一種用於mesh拓撲系列的路由算法,它通過限制算法中允許的下一方向來避免死鎖,同時確定網絡中從源節點到目標節點的路由。
產生死鎖的原因
死鎖(如圖 1 所示)是由於緩衝區或連結等網絡資源飽和而無法進一步傳輸數據包的情況。死鎖[3]的主要原因是網絡中信道的循環獲取。 [4]例如,考慮網絡中有四個信道。四個數據包已經填滿了這四個信道的輸入緩衝區,需要轉發到下一個信道。現在假設所有這些通道的輸出緩衝區也充滿了需要傳輸到下一個信道的數據包。如果這四個信道形成一個循環,則無法繼續傳輸數據包,因為所有通道的輸出緩衝區和輸入緩衝區都已滿。這稱為循環獲取信道,會導致死鎖。
死鎖的解決方法
死鎖可以被預防、避免、檢測和解除。 [5]就延遲和資源而言,檢測和打破網絡中的死鎖是昂貴的。因此,簡單且低成本的解決方案是使用防止循環獲取信道的路由技術來避免死鎖。 [6]
轉彎限制路由背後的邏輯
輪流限制路由背後的邏輯源自一個關鍵特性。若且唯若所有四個可能的順時針(或逆時針)旋轉都已發生時,才可能出現循環獲取信道的現象。這意味著可以通過至少禁止順時針轉動之一和逆時針轉動之一來避免死鎖。圖 2 顯示了非限制路由算法中所有可能的順時針和逆時針轉彎。
轉彎限制路線示例
可以通過在路由算法中禁止四個可能的順時針轉彎中的至少一個和四個可能的逆時針轉彎中的至少一個來獲得轉彎限制路由。這意味著至少有 16 (4x4) [5]種可能的轉彎限制路由技術,因為總共有 4 個順時針轉彎和 4 個逆時針轉彎可供選擇。下面列出了其中一些技術。
XY 路由
XY 路由 [5] (如圖 3 所示)限制了從 y 軸到 x 軸的所有轉向。這避免了並不一定需要的兩個逆時針和兩個順時針轉向。因為它限制了允許的轉彎方向,我們可以把它作為轉彎限制路由的示例。
西優先路由
西優先路由[2] [5] (如圖 4 所示)限制所有轉向西方向(x軸負方向)的轉彎。這意味著如果在尋找路徑時需要,應首先選擇西向。
北最後路由
北最後路由 [2] [7] (如圖 5 所示)如果當前方向為北(y軸正方向),則不能轉向任何其他方向。這意味著如果在尋找路徑時需要,應最後選擇北方向。
負優先路由
負優先路由 [2] [7] (如圖6所示)禁止在上一方向為正時轉向負方向。西被認為是X維度的負方向,南被認為是Y維度的負方向。這意味著在進行任何其他轉彎之前,應在其中一個負方向上有越點。
轉彎限制路由的優點
例如,考慮下面的圖 7。假設有多個路由器,F1、F2 等,它們將數據包傳輸到一個擁擠但低成本的鏈路,從源路由器 S 到目標路由器 D。實施轉彎限制路由意味著現在可能會一些有從饋線路由器到路由器 S 的轉彎被限制。這些饋線路由器可能必須使用更長的路徑才能到達目的地 D,從而在一定程度上緩解從 S 到 D 的鏈路擁塞。
參考
- ^ Solihin, Yan. fundamentals of parallel computer architecture. solihin books. 2016: 390–392. ISBN 9780984163007.
- ^ 2.0 2.1 2.2 2.3 CHRISTOPHER J. GLASS AND LIONEL M. NI. The Turn Model for Adaptive Routing (PDF). Michigan State University. [2023-04-14]. (原始內容 (PDF)存檔於2016-12-03).
- ^ Solihin, Yan. fundamentals of parallel computer architecture. solihin books. 2016: 388–389. ISBN 9780984163007.
- ^ Coulouris, George. Distributed Systems Concepts and Design. Pearson. 2012. ISBN 978-0-273-76059-7.
- ^ 5.0 5.1 5.2 5.3 Solihin, Yan. fundamentals of parallel computer architecture. solihin books. 2016: 390. ISBN 9780984163007.
- ^ Havender, James W. Avoiding deadlock in multitasking systems. IBM Systems Journal. 1968, 7 (2): 74–84 [2023-04-14]. doi:10.1147/sj.72.0074. (原始內容存檔於2012-02-24).
- ^ 7.0 7.1 Solihin, Yan. Fundamentals of parallel computer architecture. Solihin books. 2016: 390–391. ISBN 9780984163007.
- ^ Solihin, Yan. fundamentals of parallel computer architecture. solihin books. 2016: 392.