大多數的嵌入式產品都需要一個網路或通訊界面。由於具備低成本、普遍性、以及能透過像TCP/IP等通訊協定連上網際網路之特性,乙太網路(Ethernet)成為其中最廣為採用的網路界面。
網路子系統的需求,端視鎖定的應用種類,而有相當大的差異。簡單的遠端控制和監控等應用,每秒只需要傳送數千位元的資料;但反觀高階儲存或影音應用,每秒則需要支援高達gigabit的流量。
嵌入式解決方案的一項重要考量因素就是處理器、IP核心、以及軟體元件的高彈性與擴充能力您的應用可能在價位、效能、以及功能方面均面臨一系列的基本要求。在設計一款產品時,您必須在這些基本要求之間找出一個最好的平衡點。此外,在產品或設計週期中,為了因應市場的變化,您的需求可能會產生變動。因此,您必須採用一個高彈性、可擴充的平台來開發您的產品,能讓您針對各項設計隨時進行調整,而不必更換平台或合作廠商。
本文將介紹各項應用需求與網路效能的關係,探討各項設計考量因素,以及幾個能滿足需求的設計案例。
應用需求
根據OSI標準,Ethernet是一個實體層界面。在傳輸與網路層中使用的各種通訊協定標準之間,TCP/IP通訊協定套件是最常使用的標準,也因此成為在網路上傳輸資料的現存業界標準,尤其是在嵌入式系統方面。
為簡化之故,我們在本文以後的章節中,使用TCP負載流量作為評估性能的主要標準。表1列出幾個範例應用與其TCP/IP負載流量的要求。
賽靈思嵌入式網路解決方案
賽靈思嵌入式解決方案提供讓您開發各種嵌入式網路系統的所有必要元件。賽靈思嵌入式解決方案的其中一項關鍵優勢,就是處理器、IP核心、以及軟體元件的高彈性與擴充能力。您有充裕的彈性啟動或關閉處理器、IP核心、以及軟體平台中較高階的功能,並微調許多獨立參數,直到能在軟體層滿足各項應用需求為止。
此外,攸關效能高低的軟體功能,可運用效能測試工具來找出,並運用適合的硬體加速器來分擔處理作業負載。
以下介紹三個範例是運用Xilinx Platform Studio(XPS),來設計Ethernet子系統,以符合典型的應用效能需求。每種設計含有不同的系統架構,包括處理器組態、乙太網路媒體存取控制元件(MAC) IP組態、以及記憶體界面。
此外,範例中還介紹這些硬體子系統可使搭配的各種TCP/IP軟體堆疊。由於硬體建置區塊與軟體層都入建客製化能力,您可根據應用要求,逐步擴充或調降這些範例系統的效能。
Ethernet「Lite」子系統
圖1顯示的「Lite」網路子系統,足以支援遠端監控或各種控制應用的簡單網路界面。在這類應用中,TCP/IP效能需求相當低(少於1 Mbps),因此您可以使用小型的TCP/IP堆疊LwIP(輕量級網路通訊協定堆疊),而不需使用即時作業系統(RTOS)。
您可以運用Ethernet「Lite」IP中的簡單輪詢模式來進行建置此系統,而不被中斷。您也可以結合完整的軟體,包括一個簡單的應用層,然後全部整合至Xilinx FPGA中的local memory。在這種基本網路子系統中,您可加入其他必要的I/O界面,像是RS-232 UART與GPIO(如圖1所示)。
圖1. Ethernet「Lite」
典型的快速Ethernet(10/100)子系統
您可經由變更上述的最小規格系統,以達到更高的TCP/IP處理流量(10至50 Mbps),以及轉移至更常見的10/100 Ethernet解決方案。關鍵的變更包括:
* 把直接記憶體存取(DMA)引擎加入至Ethernet MAC,成為由中斷驅動(interrupt-driven)的元件。
* 把外部記憶體加入到系統,將快取記憶體加入處理器中。
* 使用更精密的TCP/IP堆疊,像是Linux作業系統中的μClinux。
您可運用XPS中的Base System Builder精靈,輕易開發出MicroBlaze的設計。
高效能Gigabit Ethernet子系統
針對需要支援100 Mbps以上TCP/IP流量的應用,您可以有效運用已預先內建於幾款特定的Xilinx FPGA系列元件中的三模乙太網路媒體存取控制元件硬式IP。針對高階應用所需的500 Mbps以上的流量,您必須運用像是分散/收集DMA(SGDMA)等許多先進的DMA技術,搭配像是資料重新配置引擎(DRE)與檢查碼處理分流(CSO)等FPGA硬體加速器。
有幾款建置於Xilinx FPGA的高效能PowerPC 405處理器,內建16-Kb指令,並以450MHz運作時脈進行資料擷取,可支援各種軟體平台,包括Linux、VxWorks、Integrity、以及QNX,讓您能運用各種高效能網路界面來開發各類系統。
影響TCP效能的因素
許多因素會影響TCP效能,包括硬體與軟體方面。在一個系統中,這些相關因素會影響TCP的流量:
1. 處理器
a. 時脈頻率:TCP/IP通訊協定堆疊通常會先將使用者緩衝區的負載流量
複製到由堆疊控制的緩衝區,然後再複製到乙太網路媒體存取控制元
件的FIFO元件。當在軟體中進行作業時,部份的記憶體複製作業會用
到處理器週期。處理器亦涉及到運算TCP的檢查碼,包括從記憶體中
讀取整個封包的資料。較快的處理器搭配較快的記憶體,能在更短的
時間內執行兩項作業,並跟上資料傳輸的速度。
b. 特色:TCP/IP通訊協定堆疊涉及到存取封包的表頭與負載流量。表頭
處理作業中,典型的存取作業包括讀取表頭中特定的資訊位元,造成
位移;且每個封包都須逐一處理加法、乘法的運算。在像
MicroBlaze軟式處理器這類可組態處理器中,您必須啟用相關指
令,來執行位移暫存器或乘法運算,才能調校出更高的效能。
c. 快取:一旦封包從乙太網路媒體存取控制元件複製到記憶體後,就會
被傳送至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,協助您開發可擴充的網路子系統,並針對差異懸殊的各類應用需求,自行規劃適合的效能。