交換機設計問題:軟件(在CPU上運行轉發的程序)OR 硬件(CPU、網絡處理器(network processor,簡稱NP)、ASIC、FPGA)


參考資料:

  1. CPU/GPU/TPU/NPU傻傻分不清楚
  2. 終於有人講明白CPU/GPU/TPU/NPU...XPU都是些什么鬼了
  3. FPGA與ASIC:它們之間的區別以及使用哪一種?
  4. 交換機設計問題

1.CPU、網絡處理器(network processor,簡稱NP)、ASIC和FPGA簡介

  感悟:結構決定功能。先分析系統應該具備的功能,在設計其結構。
  ASIC(專用集成電路):是指依產品需求不同而定制化的特殊規格集成電路,由特定使用者要求和特定電子系統的需要而設計、制造。即:定制化芯片。ASIC很“專一”,只做一件事,所以就會比CPU、GPU(通用芯片)等能做很多件事的芯片在某件事上做的更好(萬能工具的效率永遠比不上專用工具),實現更高的處理速度和更低的能耗。但相應的,ASIC的生產成本也非常高。
  FPGA:現場可編程門陣列。它是一種集成電路,可以“現場”編程,按預期設計工作。這意味着它可以作為一個微處理器,或者一個加密單元,或者顯卡,甚至可以同時使用這三個功能。顧名思義,FPGA是現場可編程的。因此,與半導體鑄造廠不同,作為微處理器的FPGA可以重新編程,在現場充當顯卡。在FPGA上運行的設計通常使用硬件描述語言(如VHDL和Verilog)創建。
  ASIC和FPGA的區別:
  FPGA可重構電路。FPGA可以用不同的設計進行重新配置。他們甚至有能力重新配置芯片的一部分,而芯片的其余部分仍在工作!這個特性被廣泛應用於數據中心的加速計算。
  ASIC永久電路。一旦特定於應用的電路用膠帶固定在硅上,它就不能改變。電路在其整個工作壽命內也將同樣工作。
  ASIC的邏輯功能不能改變成其它任何東西,因為它的數字電路是由永久連接的門和硅觸發器組成的。FPGA可以重新編程,在現場充當顯卡、微處理器等。可以考慮使用樂高積木建造城堡與使用混凝土建造城堡。前者類似於FPGA,而后者類似於ASIC。你可以重復使用樂高積木創造一個不同的設計,但混凝土城堡是永久性的。

2.交換機的硬件處理具有速度快、成本低和功耗小等優點。

  硬件靈活性和速度的對比

名稱 速度 靈活性
交換機芯片 比CPU處理速度快兩個數量級 遠低於CPU和NP等可編程器件
網絡處理器(network processor,簡稱NP) 比CPU處理速度快一個數量級 可編程
CPU 可編程

  使用CPU處理:利用交換機CPU處理轉發規則,可以避免硬件靈活性差的問題。由於CPU處理數據包的能力變得越來越強,商用交換機很自然地也會采用這種更強的CPU。這樣,在軟件處理轉發速度與硬件差別變小的同時,靈活處理轉發規則的能力得到提升。
  使用NP處理:由於NP專門用來處理網絡的各種任務,如數據包轉發、路由查找和協議分析等,因此在網絡處理方面,NP比CPU具有更高效的處理能力。
  硬件處理模型:RMT、FlowAdapter

3.軟件處理:在處理器(CPU、NP)上運行轉發的程序

  軟件處理的優點:軟件方式可以最大限度地提升規則處理的靈活性,同時又能避免由於硬件自身內存較小、流表大小受限、無法有效處理突發流等問題。
  軟件處理的缺點:速度低。

4.軟硬件轉發

  用cpu運行經過專門設計的程序,把數據包緩存於cpu的內存中,實現數據包的循徑,轉發的,就是軟件轉發。
  硬件轉發往往指的是一些專門設計的asic硬件芯片。完成軟件轉發同樣的事情,但執行效率高得多。轉發率可以高出幾個量級。所以軟件轉發往往是相對於硬件ASIC轉發的泛稱。

總結:
  有人想在通用的CPU上實現Match-Action,但是基於速度方面的考慮,我們采用專用的硬件實現並行轉發,專用交換機的芯片比CPU快兩個數量級,比NPU快一個數量級,並且這個趨勢看上去是無法改變的。因此,我們思考:在流表內存受限的情況下,如何在硬件上實現Match-Action,並充分利用流水技術和並行思想(以提升速度)?(RMT)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM