可擴(kuò)展的嵌入式網(wǎng)絡(luò)平臺(tái)
作者:Navanee Sundaramoorthy
賽靈思產(chǎn)品營(yíng)銷(xiāo)經(jīng)理
navanee@xilinx.com
Sathya Thammanur
賽靈思軟件總工程師
sathyanarayanan.thammanur@xilinx.com
大多數(shù)嵌入式產(chǎn)品都需要某種形式的網(wǎng)絡(luò)或通信接口。以太網(wǎng)由于(Ethernet)成本低、幾乎無(wú)處不在,且可以利用TCP/IP等因特網(wǎng)協(xié)議連接因特網(wǎng),成為目前在嵌入式產(chǎn)品中應(yīng)用最廣泛的網(wǎng)絡(luò)接口之一。
根據(jù)目標(biāo)應(yīng)用的不同,網(wǎng)絡(luò)子系統(tǒng)的要求也變化相當(dāng)大。簡(jiǎn)單的遠(yuǎn)程控制和監(jiān)控應(yīng)用只需要每秒數(shù)千比特的傳輸能力,而高端存儲(chǔ)可視頻應(yīng)用則需要持續(xù)的每秒千兆比特的吞吐能力。
賽靈思嵌入式解決方案的一個(gè)主要優(yōu)點(diǎn)就是其處理器、IP內(nèi)核以及軟件組件的靈活性和可擴(kuò)展能力
任何應(yīng)用都有包括價(jià)格、性能和功能在內(nèi)的一組基本要求。而設(shè)計(jì)產(chǎn)品的過(guò)程中要在這些基本要求之間進(jìn)行適當(dāng)折衷。此外,在產(chǎn)品設(shè)計(jì)以及其生命周期中,為了適應(yīng)市場(chǎng)情況,這些基本要求也會(huì)發(fā)生變化。因此,利用靈活可擴(kuò)展的平臺(tái)實(shí)現(xiàn)產(chǎn)品設(shè)計(jì)非常重要,因?yàn)殪`活可擴(kuò)展的平臺(tái)允許在不改變平臺(tái)或供應(yīng)商的情況下進(jìn)行設(shè)計(jì)折衷和設(shè)計(jì)修改。
在本文中,我們將討論與網(wǎng)絡(luò)性能相關(guān)的一些應(yīng)用要求,相應(yīng)的設(shè)計(jì)折衷,并給出滿(mǎn)足要求的一些設(shè)計(jì)實(shí)例。
應(yīng)用要求
根據(jù)OSI標(biāo)準(zhǔn),以太網(wǎng)屬于物理層接口。在用于傳輸和網(wǎng)絡(luò)層的多種協(xié)議標(biāo)準(zhǔn)中,TCP/IP協(xié)議組是最常用的標(biāo)準(zhǔn),特別是在嵌入式系統(tǒng)中,已經(jīng)成為網(wǎng)絡(luò)傳輸?shù)氖聦?shí)標(biāo)準(zhǔn)。
為簡(jiǎn)單起見(jiàn),在本文的其它部分,我們將使用TCP載荷作為性能比較的主要指標(biāo)。表1列出了一些典型應(yīng)用以及相應(yīng)的TCP/IP載荷吞吐能力要求。
賽靈思嵌入式網(wǎng)絡(luò)解決方案
賽靈思嵌入式解決方案為您提供了構(gòu)建范圍廣泛的嵌入式網(wǎng)絡(luò)子系統(tǒng)所需要的所有組件和資源。賽靈思嵌入式解決方案的一個(gè)主要優(yōu)點(diǎn)是其處理器、IP內(nèi)核以及軟件組件的靈活性和可擴(kuò)展能力。其強(qiáng)大的靈活性允許您根據(jù)需要開(kāi)啟或禁止處理器、IP內(nèi)核以及軟件平臺(tái)的高級(jí)功能,并且可以對(duì)許多獨(dú)立參數(shù)進(jìn)行精細(xì)調(diào)整,直到在軟件級(jí)滿(mǎn)足應(yīng)用的要求。
此外,利用建模工具可以識(shí)別任何關(guān)鍵性能的軟件功能,并將其分流至適當(dāng)?shù)挠布铀倨鱽?lái)完成。
讓我們來(lái)分別看一下三種不同以太網(wǎng)子系統(tǒng)的例子。您可以利用Xilinx Platform Studio(XPS)完成設(shè)計(jì),并滿(mǎn)足此類(lèi)典型應(yīng)用的性能要求。每種設(shè)計(jì)具有不同的系統(tǒng)架構(gòu),包括處理器配置、Ethernet MAC IP配置以及存儲(chǔ)器接口。此外,這些例子中還突出了在這些硬件子系統(tǒng)中可以使用的不同TCP/IP軟件棧。由于硬件構(gòu)建模塊和軟件層都是可定制的,因此您可以根據(jù)應(yīng)用的需要對(duì)這些示例系統(tǒng)進(jìn)行增減。
表1:不同應(yīng)用的網(wǎng)絡(luò)吞吐量要求
簡(jiǎn)化以太網(wǎng)子系統(tǒng)
對(duì)于遠(yuǎn)程監(jiān)視或控制應(yīng)用中所需要的簡(jiǎn)單網(wǎng)絡(luò)接口來(lái)說(shuō),如圖1所示的最小化網(wǎng)絡(luò)子系統(tǒng)就足夠了。在此類(lèi)應(yīng)用中,TCP/IP性能要求較低( 1兆比特/秒),因此可以使用LwIP(簡(jiǎn)化版因特網(wǎng)協(xié)議棧),而不需要RTOS實(shí)時(shí)操作系統(tǒng)。
MicroBlaze “Lite” Ethernet Subsystem:MicroBlaze以太網(wǎng)簡(jiǎn)化子系統(tǒng)
Local Memory:本地存儲(chǔ)器
MicroBlaze Processor:MicroBlaze 處理器
Ethernet Lite 簡(jiǎn)化以太網(wǎng)
圖 1.簡(jiǎn)化以太網(wǎng)子系統(tǒng)
利用不帶中斷的Ethernet Lite IP在簡(jiǎn)單的查詢(xún)模式下實(shí)現(xiàn)設(shè)計(jì)就可以了。同時(shí)還可以將全部軟件,包括簡(jiǎn)單的應(yīng)用層,都存儲(chǔ)在Xilinx FPGA中的本地存儲(chǔ)器中。對(duì)于這一基本網(wǎng)絡(luò)子系統(tǒng),還可以增加其它需要的I/O接口,如RS-232 UART和GPIO。如圖1所示。
典型的快速Ethernet (10/100) 子系統(tǒng)
通過(guò)對(duì)前面的最小系統(tǒng)做一定的修改,可以實(shí)現(xiàn)如圖2所示的更為典型的10/100以及網(wǎng)解決方案,從而獲得更高的TCP/IP吞吐能力(10-50兆比特/秒)。主要的變化有:
為Ethernet MAC增加直接存儲(chǔ)器訪問(wèn)(DMA)引擎,實(shí)現(xiàn)中斷驅(qū)動(dòng)方式。
為系統(tǒng)增加外部存儲(chǔ)器,為處理器增加緩存。
利用更復(fù)雜的TCP/IP棧,如Linux (μClinux)系統(tǒng)TCP/IP協(xié)議棧。
利用XPS中的基本系統(tǒng)構(gòu)建向?qū)В˙ase System Builder wizard)可以容易地創(chuàng)建這樣的MicroBlaze設(shè)計(jì)。
高性能千兆位以太網(wǎng)子系統(tǒng)
對(duì)于需要100 兆比特/秒以及TCP/IP吞吐能力的應(yīng)用,可以利用專(zhuān)用Xilinx FPGA系列器件中內(nèi)建的三模式以太網(wǎng)MAC硬IP,如圖3所示。為獲得高端應(yīng)用所需要的500+ 兆比特/秒吞吐能力,需要同時(shí)配合使用環(huán)形緩沖(scatter/gather)DMA(SGDMA)等高級(jí)DMA技術(shù),以及數(shù)據(jù)對(duì)齊引擎(DRE)和校驗(yàn)和分流(CSO)等FPGA硬加速器。
幾款Xilinx FPGA器件上實(shí)現(xiàn)的高性能PowerPC 405內(nèi)建了運(yùn)行在450 MHz 的16-Kb指令和數(shù)據(jù)緩存,可以支持Linux、VxWorks、Integrity和QNX等軟件平臺(tái),因此可設(shè)計(jì)出帶有高性能網(wǎng)絡(luò)接口的系統(tǒng)。
MicroBlaze 10/100 Ethernet Subsystem:MicroBlaze 10/100 以太網(wǎng)子系統(tǒng)
Local Memory:本地存儲(chǔ)器
Cache:緩存
MicroBlaze Processor:MicroBlaze 處理器
External Memory Controller:外部存儲(chǔ)器控制器
Interrupt Controller:中斷控制器
Timer:定時(shí)器
圖 2. 10/100以太網(wǎng)
PowerPC Gigabit Ethernet Subsystem:PowerPC千兆比特以太網(wǎng)子系統(tǒng)
Local Memory:本地存儲(chǔ)器
Cache:緩存
Timer:定時(shí)器
External Memory Controller:外部存儲(chǔ)器控制器
Interrupt Controller:中斷控制器
圖 3 –千兆比特以太網(wǎng)
Average TCP/IP Throughput(Logarithmic Scale):平均TCP/IP吞吐量(對(duì)數(shù)坐標(biāo))
PowerPC Gigabit Ethernet Subsystem:PowerPC 千兆比特以太網(wǎng)子系統(tǒng)
MicroBlaze 10/100 Ethernet μClinux
MicroBlaze Ethernet Lite LwIP
Sample Xilinx Networking Solutions:賽靈思網(wǎng)絡(luò)解決方案實(shí)例
圖 4.不同賽靈思網(wǎng)絡(luò)解決方案性能比較
圖4中的表對(duì)于前面所給出的三種網(wǎng)絡(luò)子系統(tǒng)的TCP/IP載荷吞吐能力進(jìn)行了比較。需要指出的是,由于三種子系統(tǒng)性能差異巨大,因此Y軸采用的是對(duì)數(shù)坐標(biāo)。
影響TCP性能的因素
許多因素都會(huì)影響到TCP性能,包括硬件和軟件。下面列出了這些會(huì)影響系統(tǒng)TCP吞吐能力的相關(guān)因素:
1. 處理器
a.頻率:TCP/IP協(xié)議通常需要將載荷從用戶(hù)緩存拷貝到協(xié)議??刂频木彺妫缓笤賹⑵淇截惖揭蕴W(wǎng)MAC的FIFO中去。這些存儲(chǔ)器拷貝操作有些是以軟件方式完成的,因此需要處理器的處理周期。同時(shí)處理器還參與TCP校驗(yàn)和的計(jì)算,計(jì)算過(guò)程中需要將整個(gè)數(shù)據(jù)包從存儲(chǔ)器讀出。更快的處理器配合更快的存儲(chǔ)器能在更短的時(shí)間內(nèi)完成這些操作,從而可以保持較高的數(shù)據(jù)速率。
b.功能:TCP/IP協(xié)議棧需要對(duì)數(shù)據(jù)包的頭和載荷進(jìn)行訪問(wèn)處理。做為頭處理的一部分,典型的訪問(wèn)包括讀取頭信息的特定位。因此每個(gè)數(shù)據(jù)包的處理過(guò)程都需要一些移位、相加和簡(jiǎn)潔操作。在可配置的MicroBlaze這樣的軟處理器中,必須開(kāi)戶(hù)完成移位或乘法的指令才能獲得更高的性能。
c.緩存:數(shù)據(jù)包從以太網(wǎng)MAC被拷貝到存儲(chǔ)器中之后,將會(huì)通過(guò)TCP/IP協(xié)議棧的不同層。然后TCP/IP棧中的數(shù)據(jù)包處理代碼會(huì)被執(zhí)行。將所有代碼和數(shù)據(jù)包讀到緩存中會(huì)大大提高處理器效率并提高以太網(wǎng)帶寬。
2. 存儲(chǔ)器:存儲(chǔ)器訪問(wèn)時(shí)間和延遲對(duì)于系統(tǒng)性能有巨大的影響。典型應(yīng)用中,TCP/IP協(xié)議棧系統(tǒng)并不存儲(chǔ)在本地存儲(chǔ)器中,程序和數(shù)據(jù)存儲(chǔ)在外部存儲(chǔ)器中。存取數(shù)據(jù)和指令所花費(fèi)的時(shí)間對(duì)于性能有很大影響。存儲(chǔ)器因素通常與緩存大小有關(guān)。提高指令和數(shù)據(jù)緩存大小有助于減輕外部存儲(chǔ)器延遲和存取時(shí)間所帶來(lái)的影響。
3. 以太網(wǎng)MAC:在FPGA中實(shí)現(xiàn)的以及網(wǎng)MAC外設(shè)提供了很大的靈活性,特別是在工作模式(無(wú)DMA與SGDMA)、數(shù)據(jù)包FIFO深度、DRE支持、CSO支持以及巨型幀(jumbo frame)支持方面。這些功能中的每一項(xiàng)都會(huì)影響到MAC所需要的資源,以及其能夠從處理器分流的功能多少,從而對(duì)整體性能造成影響。
4. TCP/IP協(xié)議棧:靈活的優(yōu)化TCP/IP協(xié)議棧是影響系統(tǒng)性能的重要因素。對(duì)硬件CSO和零拷貝API(數(shù)據(jù)不需要從應(yīng)用拷貝到協(xié)議棧緩存)以及可配置棧選項(xiàng)等TCP/IP棧功能的支持都需要系統(tǒng)性能支持。
5. 消息大?。合ⅲ☉?yīng)用數(shù)據(jù))的大小是影響性能的另一個(gè)因素。隨著消息變小,TCP/IP協(xié)議頭(如TCP、IP和以太網(wǎng)頭)的開(kāi)銷(xiāo)增加,從而會(huì)減小總體的數(shù)據(jù)載荷吞吐能力。
結(jié)論
嵌入式性能對(duì)網(wǎng)絡(luò)性能的要求差異很大,這些要求在產(chǎn)品生命周期中也在不斷演變。為了讓設(shè)計(jì)滿(mǎn)足范圍如此寬且在不斷變化的要求,需要靈活可擴(kuò)展的解決方案。
賽靈思公司的包括PowerPC 和 MicroBlaze處理器、全面的設(shè)計(jì)工具和可定制IP在內(nèi)的嵌入式解決方案可幫助設(shè)計(jì)人員構(gòu)建可擴(kuò)展的網(wǎng)絡(luò)子系統(tǒng),其性能可以滿(mǎn)足范圍廣泛的不同應(yīng)用的需要。
有關(guān)這些網(wǎng)絡(luò)解決方案的更詳細(xì)信息,請(qǐng)參考賽靈思應(yīng)用指南XAPP433、XAPP730、XAPP902和XAPP807。這些應(yīng)用指南可從 www.xilinx.com/cn/apps下載。
評(píng)論