讓我們來(lái)分別看一下可利用IP內(nèi)核滿足典型應(yīng)用性能要求的三種以太網(wǎng)子系統(tǒng)的例子。每種設(shè)計(jì)具有不同的系統(tǒng)架構(gòu):包括處理器配置、以太網(wǎng) MAC IP配置以及存儲(chǔ)器接口。此外,這些例子還突出了可與這些硬件子系統(tǒng)配合使用的不同TCP/IP軟件協(xié)議棧。由于硬件構(gòu)建模塊和軟件層都是可定制的,因此您可以根據(jù)應(yīng)用的需要對(duì)這些系統(tǒng)進(jìn)行增減。
簡(jiǎn)化以太網(wǎng)子系統(tǒng)
對(duì)于遠(yuǎn)程監(jiān)視或控制應(yīng)用中所需要的簡(jiǎn)單網(wǎng)絡(luò)接口來(lái)說(shuō),如圖3所示的最小化網(wǎng)絡(luò)子系統(tǒng)就足夠了。在此類應(yīng)用中,TCP/IP性能要求較低(<1Mbps),因此LwIP(簡(jiǎn)化版互聯(lián)網(wǎng)協(xié)議棧)這樣的小TCP/IP協(xié)議棧(不需要RTOS實(shí)時(shí)操作系統(tǒng))就足夠了。
圖3:規(guī)模最小的以太網(wǎng)系統(tǒng)。
這可以使用不間斷的以太網(wǎng)Lite IP在簡(jiǎn)單的查詢模式下實(shí)現(xiàn)。全部軟件,包括簡(jiǎn)單的應(yīng)用層,可全部存儲(chǔ)在FPGA中的本地存儲(chǔ)器中。如圖3中所示,其它需要的I/O接口,RS-232 UART和GPIO,可以增加到基本子系統(tǒng)中。
圖4:典型的10/100以太網(wǎng)系統(tǒng)架構(gòu)。
通過(guò)對(duì)圖3中的最小系統(tǒng)做一定的修改,可以實(shí)現(xiàn)更高TCP/IP吞吐能力(10-50Mbps),并轉(zhuǎn)向如圖4所示的更為典型的10/100以太網(wǎng)解決方案。主要的變化有:
1. 為以太網(wǎng)MAC增加直接存儲(chǔ)器訪問(wèn)(DMA)引擎,實(shí)現(xiàn)中斷驅(qū)動(dòng);
2. 為系統(tǒng)增加外部存儲(chǔ)器,為處理器增加緩存;
3. 更復(fù)雜的TCP/IP棧,如Linux(Clinux)系統(tǒng)TCP/IP協(xié)議棧。
對(duì)于需要100Mbps以上TCP/IP吞吐能力的應(yīng)用,可以考慮硬IP或軟IP內(nèi)核方式提供的三模式以太網(wǎng)MAC(圖5)。為獲得高端應(yīng)用所需要的500Mbps以上的吞吐能力,需要像分散/匯聚DMA(SGDMA)等高級(jí)DMA技術(shù),以及包括數(shù)據(jù)重排引擎(DRE)和校驗(yàn)和卸載 (CSO)等FPGA硬件加速器技術(shù)。
為滿足千兆以太網(wǎng)對(duì)更高數(shù)據(jù)吞吐率的需求,可能需要更高性能的嵌入式(硬)處理器或FPGA上實(shí)現(xiàn)的可定制軟處理器,以及更大的緩沖容量、如16Kbit指令和數(shù)據(jù)緩存。就軟件平臺(tái)來(lái)說(shuō),Linux、VxWorks、Integrity和QNX等軟件平臺(tái)中的高級(jí)TCP/IP棧支持諸如零拷貝和校驗(yàn)和旁路等功能。
包括硬件和軟件在內(nèi)的許多因素都會(huì)影響到TCP性能,并進(jìn)而影響系統(tǒng)TCP吞吐能力。這些因素包括:
1. 處理器,包括頻率、功能和緩存
a. 頻率:TCP/IP協(xié)議通常需要將載荷從用戶緩存拷貝到協(xié)議棧控制的緩存,然后再將其拷貝到以太網(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ò)程都需要相當(dāng)多的移位操作。此外在處理每個(gè)數(shù)據(jù)包時(shí)都需要進(jìn)行乘法操作。在可配置的處理器中,必須開(kāi)啟完成移位或乘法的指令才能獲得更高的性能;
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應(yī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支持以及超大幀支持方面。每一項(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)銷增加,從而會(huì)減小總體的數(shù)據(jù)載荷吞吐能力。
大多數(shù)應(yīng)用對(duì)于成本、性能和功能都有一組基本的需求。當(dāng)為特定應(yīng)用設(shè)計(jì)產(chǎn)品時(shí),設(shè)計(jì)人員必須在這些需求之間進(jìn)行正確的折衷,然而,為了適應(yīng)市場(chǎng)條件,這些要求在產(chǎn)品生命周期內(nèi)可能會(huì)發(fā)生變化。采用靈活可配置的平臺(tái)能夠在不改變?cè)O(shè)計(jì)平臺(tái)或供應(yīng)商的情況下根據(jù)需要對(duì)這些要求進(jìn)行重新平衡。容-源-電-子-網(wǎng)-為你提供技術(shù)支持
本文地址:http://www.4811775.com/dz/22/15469290073071.shtml
本文標(biāo)簽:
猜你感興趣:
數(shù)字信號(hào)傳輸系統(tǒng)分為基帶傳輸系統(tǒng)和頻帶傳輸系統(tǒng).頻帶傳輸系統(tǒng)也叫數(shù)字調(diào)制系統(tǒng)。數(shù)字調(diào)制信號(hào)又稱為鍵控信號(hào),數(shù)字調(diào)制過(guò)程中處理的是數(shù)字信號(hào),而載波有振幅、頻率和相
關(guān)鍵詞: 所屬欄目:設(shè)計(jì)編程
設(shè)計(jì)低功耗MCU并不容易,也沒(méi)有為您的特定嵌入式設(shè)計(jì)選擇合適的MCU。許多特定于應(yīng)用的注意事項(xiàng)都會(huì)起到作用,這使得比較MCU規(guī)格表具有挑戰(zhàn)性。本文分析了在分析競(jìng)爭(zhēng)性MCU替
關(guān)鍵詞: 所屬欄目:設(shè)計(jì)編程
近日,有媒體報(bào)道稱,北京微電子技術(shù)研究所日前成功研制出國(guó)內(nèi)首個(gè)自主可控的宇航用千萬(wàn)門(mén)級(jí)高性能高可靠FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)芯片。FPGA一直是國(guó)內(nèi)的短板,市場(chǎng)基本被
關(guān)鍵詞:單片機(jī) 所屬欄目:設(shè)計(jì)編程
嵌入式系統(tǒng)的工作原理和應(yīng)用 計(jì)算機(jī)作為20世紀(jì)人類社會(huì)最偉大的發(fā)明之一,近期也逐步邁入后PC時(shí)代。后PC時(shí)代的到來(lái)也標(biāo)志著嵌入式產(chǎn)品的誕生,如手機(jī)、PDA、數(shù)控機(jī)床等。
關(guān)鍵詞:嵌入式系統(tǒng)單片機(jī) 所屬欄目:設(shè)計(jì)編程
最近參與了一個(gè)項(xiàng)目,需要用嵌入式匯編寫(xiě)測(cè)試程序。匯編程序?qū)戇^(guò),C程序也寫(xiě)過(guò),但是將它們混合起來(lái)寫(xiě)還是第一次,完全沒(méi)有概念。只能上網(wǎng)找資料,自己慢慢摸索! ∽约阂
關(guān)鍵詞: 所屬欄目:設(shè)計(jì)編程
無(wú)
關(guān)鍵詞:嵌入式系統(tǒng)單片機(jī) 所屬欄目:設(shè)計(jì)編程
無(wú)
關(guān)鍵詞:嵌入式系統(tǒng)單片機(jī) 所屬欄目:設(shè)計(jì)編程
無(wú)
關(guān)鍵詞:嵌入式系統(tǒng)單片機(jī) 所屬欄目:設(shè)計(jì)編程
無(wú)
關(guān)鍵詞:嵌入式系統(tǒng)單片機(jī) 所屬欄目:設(shè)計(jì)編程
無(wú)
關(guān)鍵詞:嵌入式系統(tǒng)單片機(jī) 所屬欄目:設(shè)計(jì)編程
無(wú)
關(guān)鍵詞:嵌入式系統(tǒng)單片機(jī) 所屬欄目:設(shè)計(jì)編程
無(wú)
關(guān)鍵詞:嵌入式系統(tǒng)單片機(jī) 所屬欄目:設(shè)計(jì)編程
無(wú)
關(guān)鍵詞:嵌入式系統(tǒng)單片機(jī) 所屬欄目:設(shè)計(jì)編程
無(wú)
關(guān)鍵詞: 所屬欄目:設(shè)計(jì)編程