《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 解決方案 > 在FPGA中置入可配置的32位處理器增加設(shè)計(jì)靈活度

在FPGA中置入可配置的32位處理器增加設(shè)計(jì)靈活度

在FPGA中置入可配置的處理器能夠?yàn)槟鷰?lái)許多固定結(jié)構(gòu)微處理器所無(wú)法提供的功能和選擇
2011-07-27
作者:Navanee Sundaram 賽靈思公司
關(guān)鍵詞: FPGA 嵌入式系統(tǒng) MCU

        嵌入式系統(tǒng)與桌面PC結(jié)構(gòu)非常不同,但其底層技術(shù)發(fā)展卻是一樣的,而且遵循著類(lèi)似發(fā)展趨勢(shì)。當(dāng)桌面PC轉(zhuǎn)向64位架構(gòu)來(lái)滿足不斷增長(zhǎng)的存儲(chǔ)器要求時(shí),嵌入式系統(tǒng)也由于同樣的原因快速轉(zhuǎn)向32位處理器。桌面/服務(wù)器計(jì)算市場(chǎng)主要圍繞x86架構(gòu),大多數(shù)創(chuàng)新和差異都在系統(tǒng)級(jí),如雙核、四核或多核架構(gòu)、集成圖像處理器單元和存儲(chǔ)器控制器等等。同樣,嵌入式系統(tǒng)則主要圍繞簡(jiǎn)單的32位RISC處理器,多核架構(gòu)、集成外設(shè)以及可配置處理等系統(tǒng)級(jí)進(jìn)展,使得設(shè)計(jì)人員能夠快速適應(yīng)不斷變化的應(yīng)用要求。    

    根據(jù)iSuppli的研究報(bào)告,200732位微控制器(MCU)市場(chǎng)將超過(guò)8MCU市場(chǎng)。如圖1所示, 32MCU市場(chǎng)的增長(zhǎng)速度超過(guò)了半導(dǎo)體市場(chǎng)其它部分的增長(zhǎng)速度,而8MCU市場(chǎng)的份額過(guò)去幾年時(shí)間里則有所下降。  

    這一趨勢(shì)的主要推動(dòng)力是嵌入式系統(tǒng)中軟件內(nèi)容和復(fù)雜性不斷增加,因此直接產(chǎn)生的后果是需要更寬的存儲(chǔ)器總線(32位)來(lái)滿足軟件程序所使用的代碼和數(shù)據(jù)要求。與傳統(tǒng)微處理器不同,32位處理器不需要分段等存儲(chǔ)器管理技巧就可以處理更大的存儲(chǔ)器空間,因此使編程更容易。8MCU必須采用難學(xué)難用的匯編語(yǔ)言來(lái)滿足小存儲(chǔ)器空間限制(少于32K字節(jié)),而許多32位嵌入式應(yīng)用則可以利用C/C++來(lái)編程,從而提高了嵌入式軟件開(kāi)發(fā)人員生產(chǎn)力。更為重要的是,越來(lái)越多的操作系統(tǒng)(實(shí)時(shí)和非實(shí)時(shí))都提供現(xiàn)成的驅(qū)動(dòng)程序和軟件庫(kù),從而使軟件開(kāi)發(fā)人員能夠集中于應(yīng)用本身的開(kāi)發(fā)。  

集成 = 更低的價(jià)格  

    在摩爾定律的指引下,越來(lái)越細(xì)的硅工藝線寬使得32位嵌入式解決方案的成本不斷降低,從而可以滿足更多的應(yīng)用對(duì)價(jià)格的要求。此外,集成外設(shè)和片上存儲(chǔ)器進(jìn)一步降低了元器件和總體材料清單成本。通過(guò)集成針對(duì)手機(jī)和游戲機(jī)等垂直應(yīng)用而優(yōu)化的外設(shè),許多器件的價(jià)格大大降低,直接推動(dòng)了市場(chǎng)增長(zhǎng)。  

    價(jià)格壓力還導(dǎo)致只能在這些系統(tǒng)中集成一組固定的外設(shè),因此通常的外設(shè)組合是面向大批量應(yīng)用的。然而,不可能有適用于所有應(yīng)用的萬(wàn)能器件,因此許多小批量、中等規(guī)模甚至大批量應(yīng)用都無(wú)法直接利用成品集成解決方案。其結(jié)果是設(shè)計(jì)人員必須采用額外的芯片來(lái)擴(kuò)展外設(shè)、分流處理器的負(fù)擔(dān),或增加膠合邏輯。這也是可配置處理解決方案產(chǎn)生的原因。 

可配置32位處理 

    根據(jù)Gartner Dataquest的報(bào)告如圖2所示,基于FPGA嵌入式處理方案的應(yīng)用正在增長(zhǎng),2010,40%FPGA設(shè)計(jì)將包括嵌入式處理器。因?yàn)槟軌蚨ㄖ茲M足特定應(yīng)用或產(chǎn)品的要求,嵌入系統(tǒng)設(shè)計(jì)人員正在越來(lái)越多地采用基于FPGA的可配置處理解決方案。這一方法的主要優(yōu)點(diǎn)是可通過(guò)集成降低成本,同時(shí)還可實(shí)現(xiàn)產(chǎn)品在市場(chǎng)上的差異化。  

    通過(guò)選擇同一FPGA系列中的不同器件,或者將設(shè)計(jì)重新適配到新的FPGA器件中,能夠針對(duì)更高性能、更低成本、或者不同的I/O標(biāo)準(zhǔn)進(jìn)行個(gè)性設(shè)計(jì)。這樣可以降低設(shè)計(jì)過(guò)時(shí)的風(fēng)險(xiǎn),從而保證設(shè)計(jì)是未來(lái)可用的。對(duì)于必須有長(zhǎng)使用壽命的產(chǎn)品(如汽車(chē)或工業(yè)應(yīng)用),這是特別關(guān)鍵的一個(gè)因素。  

    可配置處理系統(tǒng)的配置(或定制)的層面包括:    

處理器配置:  

  • 乘法器、除法器、浮點(diǎn)單元以及其它。  
  • 指令或數(shù)據(jù)緩沖配置。  
  • 協(xié)處理器或硬件加速器。  

系統(tǒng)配置  

  • I/O外設(shè)選擇、定制、DMA選擇。  
  • 存儲(chǔ)器外設(shè)選擇、定制。  

應(yīng)用配置  

  • RTOS選擇、定制。  
  • 應(yīng)用庫(kù)/中間件定制。 

    許多產(chǎn)品都包括需要某種形式網(wǎng)絡(luò)或通信接口的嵌入式系統(tǒng)。由于以太網(wǎng)成本低、幾乎無(wú)處不在,并且可以利用TCP/IP等因特網(wǎng)協(xié)議連接因特網(wǎng),因此以太網(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ù)千bps的傳輸能力,而高端存儲(chǔ)可視頻應(yīng)用則需要持續(xù)的Gbps吞吐能力。  

    為簡(jiǎn)單起見(jiàn),我們將使用TCP載荷吞吐能力做為性能比較的主要指標(biāo)。表1列出了一些典型應(yīng)用以及相應(yīng)的TCP/IP載荷吞吐能力要求。  

表一、示例應(yīng)用的網(wǎng)絡(luò)吞吐量要求 

例子應(yīng)用 

吞吐量要求 

工業(yè)控制/監(jiān)視 

< 1 Mbps  

安全/監(jiān)控 

10-50 Mbps  

廣播質(zhì)量視頻流 

50-500 Mbps  

可配置的嵌入式網(wǎng)絡(luò) 

    基于FPGA的處理解決方案提供的強(qiáng)大靈活性允許您根據(jù)需要開(kāi)啟或禁止處理器、IP內(nèi)核以及軟件平臺(tái)的高級(jí)功能,并且可以對(duì)許多獨(dú)立參數(shù)進(jìn)行精細(xì)調(diào)整,直到在軟件一級(jí)滿足應(yīng)用的要求。此外,利用建模工具可以識(shí)別任何性能關(guān)鍵的軟件功能并將其分流至適當(dāng)?shù)挠布铀倨骰騾f(xié)處理器來(lái)完成。  

    讓我們來(lái)分別看一下可利用IP內(nèi)核滿足典型應(yīng)用性能要求的三種以太網(wǎng)子系統(tǒ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)行增減。  

簡(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)就足夠了。在此類(lèi)應(yīng)用中,TCP/IP性能要求較低(< 1 Mbps),因此LwIP(簡(jiǎn)化版因特網(wǎng)協(xié)議棧)這樣的小TCP/IP堆棧(不需要RTOS實(shí)時(shí)操作系統(tǒng))就足夠了。  

    這可以使用不間斷的Ethernet Lite IP在簡(jiǎn)單的查詢模式下實(shí)現(xiàn)。全部軟件,包括簡(jiǎn)單的應(yīng)用層,可全部存儲(chǔ)在FPGA中的本地存儲(chǔ)器中。如圖3中所示其它需要的I/O接口,RS-232 UARTGPIO可以增加到基本子系統(tǒng)中。  

    通過(guò)對(duì)圖3中的最小系統(tǒng)做一定的修改,可以實(shí)現(xiàn)更高TCP/IP吞吐能力(10-50 Mbps),并轉(zhuǎn)向如圖4所示的更為典型的10/100以及網(wǎng)解決方案。 

主要的變化有:  

  • 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é)議棧。 

      對(duì)于需要100 Mbps以上TCP/IP吞吐能力的應(yīng)用,可以考慮硬IP或軟IP內(nèi)核方式提供的三模式以太網(wǎng)MAC(圖5)。為獲得高端應(yīng)用所需要的500+ Mbps吞吐能力,需要同時(shí)配合使用環(huán)形緩沖(scatter/gather)DMA(SGDMA)等高級(jí)DMA技術(shù),以及數(shù)據(jù)對(duì)齊引擎(DRE)和校驗(yàn)和分流(CSO)等FPGA硬加速器。

 

    為滿足千兆以太網(wǎng)對(duì)更高數(shù)據(jù)吞吐率的需求,可能需要更高性能的嵌入式(硬)處理器或FPGA上實(shí)現(xiàn)的可定制軟處理器,以及更大的緩沖容量、如16 kbit指令和數(shù)據(jù)緩存。就軟件平臺(tái)來(lái)說(shuō),Linux、VxWorks、IntegrityQNX等軟件平臺(tái)中的高級(jí)TCP/IP棧支持諸如零拷貝和校驗(yàn)和旁路等功能。  

    包括硬件和軟件在內(nèi)的許多因素都會(huì)影響到TCP性能,并進(jìn)而影響系統(tǒng)TCP吞吐能力。這些因素包括:  

處理器,包括頻率、功能和緩存:  

    頻率TCP/IP協(xié)議通常需要將載荷從用戶緩存拷貝到協(xié)議??刂频木彺?,然后再將其拷貝到以太網(wǎng)MACFIFO中去。這些存儲(chǔ)器拷貝操作有些是以軟件方式完成的,因此需要處理器的處理周期。同時(shí)處理器還參與TCP校驗(yàn)和的計(jì)算,計(jì)算過(guò)程中需要將整個(gè)數(shù)據(jù)包從存儲(chǔ)器讀出。更快的處理器配合更快的存儲(chǔ)器能在更短的時(shí)間內(nèi)完成這些操作,從而可以保持較高的數(shù)據(jù)速率。  

    功能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)啟完成移位或乘法的指令才能獲得更高的性能。  

    緩存數(shù)據(jù)包從以太網(wǎng)MAC被拷貝到存儲(chǔ)器中之后,將會(huì)通過(guò)TCP/IP協(xié)議棧的不同層。然后TCP/IP棧中的數(shù)據(jù)包處理代碼會(huì)被執(zhí)行。將所有代碼和數(shù)據(jù)包讀到緩存中會(huì)大大提高處理器效率并提高以太網(wǎng)帶寬。 

    存儲(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)的影響。  

    以太網(wǎng)MACFPGA中實(shí)現(xiàn)的以太網(wǎng)MAC外設(shè)提供了很大的靈活性,特別是在工作模式無(wú)DMASGDMA、數(shù)據(jù)包FIFO深度、DRE支持、CSO支持以及巨型幀jumbo frame支持方面。每一項(xiàng)都會(huì)影響到MAC所需要的資源,以及其能夠從處理器分流的功能多少,從而對(duì)整體性能造成影響。  

    TCP/IP協(xié)議棧靈活的優(yōu)化TCP/IP協(xié)議棧是影響系統(tǒng)性能的重要因素。對(duì)硬件CSO和零拷貝API(數(shù)據(jù)不需要從應(yīng)用拷貝到協(xié)議棧緩存)以及可配置棧選項(xiàng)等TCP/IP棧功能的支持可幫助提高系統(tǒng)性能。  

   信息多少信息(應(yīng)用數(shù)據(jù))的大小是影響性能的另一個(gè)因素。隨著信息減少,TCP/IP協(xié)議頭(如TCP、IP和以太網(wǎng)頭)的開(kāi)銷(xiāo)增加,從而會(huì)減小總體的數(shù)據(jù)載荷吞吐能力。  

    大多數(shù)應(yīng)用對(duì)于價(jià)格、性能和功能都有一組基本的要求。當(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)行重新平衡。  

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。