當前位置:
首頁 > 科技 > 為什麼大型路由器交換機再另開發 CPU 而不用 Intel 至強系列呢?

為什麼大型路由器交換機再另開發 CPU 而不用 Intel 至強系列呢?

為什麼大型路由器交換機再另開發 CPU 而不用 Intel 至強系列呢?

Intel的CPU匯流排帶寬不夠用。

核心交換機的容量都是上T的,背板帶寬10T起步,我2008年做交換機那會,這麼一套東西如果投標的話,一套10T~20T左右交換容量的交換機,價格可以談到10萬左右(國產價格,思科的可能要100萬),2008年的時候至強的匯流排帶寬能到多少?

反正就算是今天,Intel的CPU內存帶寬也在100GB/s以內的範圍(多處理器也沒超過這個數量級),跟交換機有數量級的差異,這個性能對於交換機來說根本不夠用。

Intel的CPU吞吐量做一個二層交換機也許沒問題,但一個二層交換機便宜點的3000以內就可以搞定,3000塊錢可能還不夠買一個好一點的至強CPU呢。

如果Intel走異構計算這條路,那麼搞出點交換晶元應該沒難度的,Xeon Phi就是這個思路,但交換機這個市場已經不怎麼賺錢了,或者說Intel還看不上這點錢(賣超算比造交換機掙錢)。

為什麼大型路由器交換機再另開發 CPU 而不用 Intel 至強系列呢?

Xeon非常強,非常強,但術業有專攻啊。給PC或者伺服器多裝幾塊網卡,就可以當軟路由用了,Xeon此時傲視群雄,網卡跑滿時CPU依然有餘力給你掃雷,但是,你的機器能裝多少網卡呢?

下面是我前幾個月隨手拍的一張路由器的圖,應該算是大型路由器了吧。你看上面編號2和3的槽位,每個板40個萬兆口,一個櫃能裝十幾塊板,不夠可以集群擴展,最大幾十個機櫃,這時候什麼處理器能支撐住呢?

為什麼大型路由器交換機再另開發 CPU 而不用 Intel 至強系列呢?

答案是 什麼處理器都支撐不住。一般CPU主頻3G左右,假設轉發一個包需要1K時鐘周期,那每個核就有3M pps的轉發率,但這個型號路由器最老款最低配的版本也是11G pps的轉發率,至少需要堆幾十個CPU,堆這麼多CPU這不是在設計設備而是在設計電爐。

現在稍大型的路由器都是路由轉發分離的架構,一堆ASIC來做轉發,轉發能力比通用處理器強多了,還省電。控制平面需要CPU計算能力,但也不需要很強,各家都用的祖傳處理器,powerpc,mips,intel ixp都有,似乎沒見哪家用xeon的,雖然它計算能力更猛。

前兩年華為和英特爾當眾簽過一個合作協議,但我沒關注後續,也許以後SDN控制器或者網路安全產品會用英特爾產品吧。

為什麼大型路由器交換機再另開發 CPU 而不用 Intel 至強系列呢?

提到的DRAM帶來的延遲無法接受、 提到的匯流排帶寬不足,都在說CPU無法滿足轉發需求,實際上這些問題都存在通過增加帶寬、軟流水化解決的可能性。但是有一個CPU永遠無法解決的問題:低延遲查表。大型路由器還有一個很根本的功能是查表,查表是必須要用ASIC做的,更準確地說要用T-CAM做,T-CAM查路由表只需要一個周期。而CPU不可能同時支持這麼多比較:CPU內部能這樣全相聯查找的表最大也就是skylake開始的issue queue (97項),況且無法利用它來查路由表。而大型路由器需要什麼量級的比較呢?512k。

感謝靈劍指出問題。如果使用Hash表等手段實現,雖然複雜度也是O(1),但是前面的常數會比T-CAM大得多,查表延遲還是無法與ASIC抗衡。

為什麼大型路由器交換機再另開發 CPU 而不用 Intel 至強系列呢?

思科的nexus 7000的CPU用的就是xeon,不過這顆CPU只負責控制面,轉發麵是交給ASIC去處理的。

以下說一個拿CPU跑轉發的黑案例:前陣子有同行諮詢,說一個安防項目裡邊用國內某廠商的三層交換機做匯聚,前後端同一VLAN的話一點問題都沒有,只要有一個前端接到另一個VLAN,就會卡死導致系統幾乎不可用。

經排查發現只要把一個前端接到另一個VLAN,區區2Mbps的VLAN間路由流量就會導致那個交換機的CPU使用率暴漲到98%以上,我們懷疑這個所謂的三層交換機根本就是個二層交換機,調用CPU來跑路由,更換另一個型號之後一切正常,但原先那台交換機廠商不給退只能留著當庫存,真坑。

為什麼大型路由器交換機再另開發 CPU 而不用 Intel 至強系列呢?

專用集成電路是由特定使用者要求和特定電子系統的需要而設計、製造 。

對於路由器來說,本質上就是一個轉發問題,轉發實際上就是處理一個隊列的問題,也就是經典的生產者消費者問題。這麼確定的需求,這麼明確的指標,是不需要CPU的通用可編程能力的。

可以類比一下顯卡,為什麼不用CPU做圖像處理呢?

因為為了特定目標設計的晶元往往可以更好更快的完成任務。

實際上,每一塊背板上除了有專門的轉發ASIC,往往都還有一塊CPU,甚至有自己的操作系統,大型路由器往往是由很多個CPU組成的分散式系統。

舉個例子,這是Juniper的核心路由器PTX5000,這上面每一個背板上都有好幾個ASCI晶元用來轉發,每個上面還有個PMB,上面都有塊CPU來負責控制。

你可以簡單理解成,這一個大柜子,其實是好幾台電腦,每台電腦都有自己的CPU和轉發晶元(可以類比顯卡來理解)

所以這跟Intel 至強強不強沒關係,CPU就不是用來干這個事兒的,就如同你讓至強跑遊戲也不行一樣。

為什麼大型路由器交換機再另開發 CPU 而不用 Intel 至強系列呢?

為什麼大型路由器交換機再另開發 CPU 而不用 Intel 至強系列呢?

交換機,路由器這種要求高轉發的設備,一般還是用用線卡(ASIC處理器)來轉發,主控板輔以控制就可以了。目前國產或者國外的部分安全設備如,防火牆,流控設備等有很多是基於X86架構。如果運營商級別或者數據中心級別的防火牆如山石網科的設備,應該還是用的線卡轉發吧,不然單存靠CPU轉發上百萬兆的包,肯定不可能的。這種防火牆在做包的狀態檢測時用的CPU不知道用的哪種處理器。

為什麼大型路由器交換機再另開發 CPU 而不用 Intel 至強系列呢?

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!

TAG: |