使用網絡處理器構建 Gigabit 鏈路系統(如可編程 QoS 路由器等)時,在系統的結構設計、策略使用、應用開發等各個層次存在著如下的問題.
並行策略所引入的問題
網絡處理器中大量採用並行處理技術,它雖然提高了分組處理的效率,但是仍帶來了以下 3點問題:
(1) 同步問題
在 PLP 策略中,分組交由不同的 PE 處理.但由於分組的特點,不同 PE 所處理的分組並不總是相互獨立的,有時分組間也存在著一定的制約關係.這種制約關係主要體現在服務時序和資源操作兩個方面,對於服務時序引起的同步問題可通過維護分組處理狀態來解決,對於資源操作衝突則需要通過加鎖機制來解決.同樣的同步問題在 IPP 和 ILP 策略中也存在.
(2) 處理器資源調度問題
簡單的講,就是當一個待處理的分組到達時將由哪一個 PE 來服務以及如何來服務的問題.在調度時需要考慮包括系統負載和流量特性在內的多種信息,並要保證效率和公平性.目前此種資源調度算法一般分為靜態和動態兩類.一般採用靜態算法,即 PE(或硬體線程)靜態地對應不同的埠,不同的 PE(或硬體線程)只負責特定埠的收發操作.中採用了基於 EHDA(enhanced hash-based distribution algorithm)的動態分配算法,算法考慮了 TCP 與 UDP 兩種流的特性以及 PE 的負載情況.
實際上,網絡處理器內的其他共享資源(如網絡協處理器等)也存在著同樣的問題.
(3) 模塊間通信問題
為了解決同步以及系統控制等問題,網絡處理器內部 PE 間的通信以及與外部設備間的通信越來越多,甚至成為系統性能的瓶頸.為了提高系統集成度,大部分網絡處理器內部採用共享總線的通信方式,內部沒有其他專用的數據通路.但是這種結構卻嚴重地影響了系統的同步及通信策略.不過這一問題可以通過增加專用的數據總線得到改善,然而它將增加系統設計的開銷