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