??? 大多數的嵌入式產品都需要一個網絡或通信界面。由于具備低成本、普遍性、以及能透過像TCP/IP" title="TCP/IP">TCP/IP等通信協議連上因特網之特性,以太" title="以太">以太網絡(Ethernet)成為其中最廣為采用的網絡界面。
?
網絡子系統的需求,端視鎖定的應用種類,有相當大的差異。簡單的遠程控制和監控等應用,每秒只需要傳送數千位的數據;但反觀高階儲存或影音應用,每秒則需要支持高達gigabit的流量。
嵌入式解決方案的一項重要考慮因素就是處理器、IP核心、以及軟件組件的高彈性與擴充能力
您的應用可能在價位、效能、以及功能方面均面臨一系列的基本要求。在設計一款產品時,您必須在這些基本要求之間找出一個最好的平衡點。此外,在產品或設計周期中,為了因應市場的變化,您的需求可能會產生變動。因此,您必須采用一個高彈性、可擴充的平臺來開發您的產品,能讓您針對各項設計隨時進行調整,而不必更換平臺或合作廠商。
本文將介紹各項應用需求" title="應用需求">應用需求與網絡效能的關系,探討各項設計考慮因素,以及幾個能滿足需求的設計案例。
應用需求
根據OSI標準,Ethernet是一個實體層界面。在傳輸與網絡層中使用的各種通訊協議標準之間,TCP/IP通信協議套件是最常使用的標準,也因此成為在網絡上傳輸數據的現存業界標準,尤其是在嵌入式系統方面。
為簡化之故,我們在本文以后的章節中,使用TCP負載流量作為評估性能的主要標準。表1列出幾個范例應用與其TCP/IP負載流量的要求。
?
?
賽靈思嵌入式網絡解決方案
賽靈思嵌入式解決方案提供讓您開發各種嵌入式網絡系統的所有必要組件。賽靈思嵌入式解決方案的其中一項關鍵優勢,就是處理器、IP核心、以及軟件組件的高彈性與擴充能力。您有充裕的彈性啟動或關閉處理器、IP核心、以及軟件平臺中較高階的功能,并微調許多獨立參數,直到能在軟件層滿足各項應用需求為止。
此外,攸關效能高低的軟件功能,可運用效能測試工具來找出,并運用適合的硬件加速器來分擔處理作業負載。
以下介紹3個范例是運用Xilinx Platform Studio(XPS),來設計Ethernet子系統,以符合典型的應用效能需求。每種設計含有不同的系統架構,包括處理器組態、以太網絡媒體存取控制組件(MAC) IP組態、以及內存界面。
范例中還介紹這些硬件子系統可使搭配的各種TCP/IP軟件堆棧。由于硬件建置區塊與軟件層都入建客制化能力,您可根據應用要求,逐步擴充或調降這些范例系統的效能。
Ethernet“Lite”子系統
圖1顯示的“Lite”網絡子系統,足以支持遠程監控或各種控制應用的簡單網絡界面。在這類應用中,TCP/IP效能需求相當低(少于1 Mbps),因此您可以使用小型的TCP/IP堆棧LwIP(輕量級網絡通訊協議堆棧" title="協議堆棧">協議堆棧),而不需使用實時操作系統(RTOS)。
?
?
您可以運用Ethernet“Lite”IP中的簡單輪詢模式來進行建置此系統,而不被中斷。您也可以結合完整的軟件,包括一個簡單的應用層,然后全部整合至Xilinx FPGA中的local memory。在這種基本網絡子系統中,您可加入其它必要的I/O界面,像是RS-232 UART與GPIO(如圖1所示)。
典型的快速Ethernet (10/100)子系統
您可經由變更上述的最小規格系統,以達到更高的TCP/IP處理流量(10~50 Mbps),以及轉移至更常見的10/100 Ethernet解決方案,如圖2所示。關鍵的變更包括:
把直接內存存取(DMA)引擎加入至Ethernet MAC,成為由中斷驅動(interrupt-driven)的組件。
把外部內存加入到系統,將高速緩存加入處理器中。
使用更精密的TCP/IP堆棧,像是Linux操作系統中的?Clinux。
您可運用XPS中的Base System Builder精靈,輕易開發出MicroBlaze的設計。
高效能Gigabit Ethernet子系統
針對需要支持100 Mbps以上TCP/IP流量的應用,您可以有效運用已預先內建于幾款特定的Xilinx FPGA系列組件中的三模以太網絡媒體存取控制組件硬式IP(如圖3所示)。針對高階應用所需的500 Mbps以上的流量,您必須運用像是分散/收集DMA(SGDMA)等許多先進的DMA技術,搭配像是數據重新配置引擎(DRE)與檢查碼處理分流(CSO)等FPGA硬件加速器。
?
有幾款建置于Xilinx FPGA的高效能PowerPC? 405處理器,內建16-Kb指令,并以450MHz運作頻率進行數據擷取,可支持各種軟件平臺,包括Linux、VxWorks、Integrity、以及QNX,讓您能運用各種高效能網絡界面來開發各類系統。
圖4比較先前討論的3種網絡子系統TCP/IP負載流量。Y軸的流量數據是對數值,以方便比較差距極大的效能值。
影響TCP效能的因素
許多因素會影響TCP效能,包括硬件與軟件方面。在一個系統中,這些相關因素會影響TCP的流量:
1. 處理器
頻率頻率:TCP/IP通信協議堆棧通常會先將使用者緩沖區的負載流量復制到由堆棧控制的緩沖區,然后再復制到以太網絡媒體存取控制組件的FIFO組件。當在軟件中進行作業時,部份的內存復制作業會用到處理器周期。處理器亦涉及到運算TCP的檢查碼,包括從內存中讀取整個封包" title="封包">封包的數據。較快的處理器搭配較快的內存,能在更短的時間內執行兩項作業,并跟上數據傳輸的速度。
?
特色:TCP/IP通信協議堆棧涉及到存取封包的表頭與負載流量。表頭處理作業中,典型的存取作業包括讀取表頭中特定的信息位,造成位移;且每個封包都須逐一處理加法、乘法的運算。在像MicroBlaze軟式處理器這類可組態處理器中,您必須啟用相關指令,來執行位移緩存器或乘法運算,才能調校出更高的效能。
快取:一旦封包從以太網絡媒體存取控制組件復制到內存后,就會被傳送至TCP/IP通信協議堆棧的各功能層進行處理。此時TCP/IP堆棧中的封包處理碼則進入執行階段。把程序代碼與封包放在高速緩存的作法,能大幅提升處理器的效率,并增加Ethernet的頻寬。
2. 內存
內存存取時間與延遲對系統效能有極大的影響。典型的TCP/IP通信協議堆棧應用,無法配合local memory程序與數據都是外部內存的一部份。存取數據與指令所耗費的時間,對效能有極大的影響。內存因素通常和快取容量有直接的關系。增加指令與數據的快取容量,將有助于縮短外部內存的傳輸延遲與存取時間。
3. 以太網絡媒體存取控制組件
建置于FPGA的以太網絡媒體存取控制組件的外圍組件,在運作模式(無DMA與SGDMA相對問題)、封包FIFO的深度、DRE與CSO的支持能力、以及巨型訊框支持能力方面,都相當提供相當大的彈性。然而,上述每種選項被MAC組件所耗用的空間,將得以卸載處理器各項功能,進而增進效能。
4. TCP/IP通訊協議堆棧
最佳化與彈性的TCP/IP堆棧建置,是增進系統效能的重要因素。包括像在硬件中支持CSO、無復制作業的API(數據不必從應用程序復制到堆棧緩沖區)、以及配合應用軟件需求的可組態堆棧選項等TCP/IP堆棧功能都有助于改進系統效能。
5. 信息大小
信息(應用數據)的大小是另一項影響效能的因素。信息愈小,TCP/IP通訊協議表頭(像是TCP、IP、以及Ethernet表頭)的耗用資源比例就愈高,能取得的資料流量也隨之降低。
結論
各種嵌入式應用對網絡效能的需求有很大的差距,且會隨著產品生命周期的演進而有所改變。要設計出理想的產品來滿足各式各樣且持續演進的需求,您需要一種高彈性且可擴充的解決方案,針對您的應用需求進行客制化。
賽靈思針對PowerPC與MicroBlaze處理器所開發的嵌入式解決方案,搭配陣容完備的工具與可客制化IP,協助您開發可擴充的網絡子系統,并針對差異懸殊的各類應用需求,自行規劃適合的效能。