Altera SoC FPGA架構(gòu)解析
SoC FPGA器件在一個(gè)器件中同時(shí)集成了處理器和FPGA體系結(jié)構(gòu)。將兩種技術(shù)合并起來具有很多優(yōu)點(diǎn),包括更高的集成度、更低的功耗、更小的電路板面積,以及處理器和FPGA之間帶寬更大的通信等等。這一同類最佳的器件發(fā)揮了處理器與FPGA系統(tǒng)融合的優(yōu)勢(shì),同時(shí)還保留了獨(dú)立處理器和FPGA方法的優(yōu)點(diǎn)。
本文引用地址:http://www.ex-cimer.com/article/235601.htm目前,市場(chǎng)上主要有三種SoC FPGA,它們的處理器都是完全專用的“硬核”處理器子系統(tǒng),而不是FPGA架構(gòu)中的軟核知識(shí)產(chǎn)權(quán)(IP)。所有這三種器件都采用了全功能ARM處理器,具有完整的存儲(chǔ)器層次結(jié)構(gòu),以及專用外設(shè),啟動(dòng)、運(yùn)行和工作都與“普通”的ARM處理器一樣。
Microsemi SmartFusion2 SoC FPGA基于ARM Cortex-M3嵌入式處理器,主要面向微控制器應(yīng)用。Altera SoC和Xilinx Zynq-7000器件使用了雙核ARM Cortex-A9應(yīng)用處理器。除了處理器,SoC FPGA還有豐富的外設(shè)、片內(nèi)存儲(chǔ)器、FPGA類型的邏輯陣列,以及大量的I/O。
這幾種可編程SoC產(chǎn)品表面上看來來都一樣。它們都在一個(gè)器件中集成了ARM處理器、各種外設(shè)和FPGA。而實(shí)際上,仔細(xì)的評(píng)估這些器件,更深入的了解數(shù)據(jù)資料是非常關(guān)鍵的。應(yīng)針對(duì)具體應(yīng)用來評(píng)估底層體系結(jié)構(gòu)及其內(nèi)涵。SoC FPGA體系結(jié)構(gòu)非常重要。仔細(xì)的檢查和思考會(huì)發(fā)現(xiàn)在體系結(jié)構(gòu)上有很多明顯的不同。
設(shè)計(jì)人員應(yīng)如何選擇?本文介紹了在為應(yīng)用選擇最佳可編程SoC時(shí)應(yīng)進(jìn)行的設(shè)計(jì)考慮,綜合考慮后作出工程決定。選擇標(biāo)準(zhǔn)主要集中在六個(gè)方面:系統(tǒng)性能、系統(tǒng)可靠性和靈活性、系統(tǒng)成本、功耗、未來發(fā)展路線圖、開發(fā)工具。
1.系統(tǒng)性能
SoC FPGA體系結(jié)構(gòu)的兩方面最終決定在不同的單元之間能否高效的傳送數(shù)據(jù):互聯(lián),以及片內(nèi)和片外存儲(chǔ)器帶寬。
SoC體系結(jié)構(gòu)要考慮的第一項(xiàng)是Level-3 (L3)互聯(lián)。顧名思義,L3是L1和L2 Cache之下的一級(jí)數(shù)據(jù)傳輸層。L3互聯(lián)的重要性體現(xiàn)在,它是提高性能的交換中心。
不同SoC FPGA供應(yīng)商在L3系統(tǒng)互聯(lián)上的特性有所不同。Altera SoC FPGA提供由三種交換架構(gòu)構(gòu)成的L3系統(tǒng)互聯(lián)——L3主交換、L3主機(jī)外設(shè)交換、L3從機(jī)外設(shè)交換,使用ARM的AMBA NIC-301網(wǎng)絡(luò)互聯(lián)基礎(chǔ)結(jié)構(gòu)來實(shí)現(xiàn),如圖1所示。
圖1.Altera SoC FPGA互聯(lián)體系結(jié)構(gòu)
Altera SoC使用精簡分層總線,無阻塞交換體系結(jié)構(gòu)減小了延時(shí)?;ヂ?lián)設(shè)計(jì)支持來自多個(gè)主機(jī)的同時(shí)多路會(huì)話,提供足夠的帶寬,因此,每一主機(jī)能夠連續(xù)運(yùn)行(“無阻塞”)。對(duì)于仲裁,能夠?yàn)槊恳恢鳈C(jī)分配優(yōu)先級(jí),指導(dǎo)總線仲裁。使用最近使用(LRU)算法對(duì)優(yōu)先級(jí)相同的主機(jī)進(jìn)行仲裁。其他廠家的SoC FPGA體系結(jié)構(gòu)可能使用多級(jí)層次,這需要分布式仲裁,但這會(huì)帶來延時(shí)。分布式仲裁類似于有多個(gè)數(shù)據(jù)流仲裁。這種方法要求使用中心服務(wù)質(zhì)量(QoS)模塊以確保主機(jī)不會(huì)擁塞。分布式仲裁也有調(diào)整問題,會(huì)與DDR存儲(chǔ)器控制器端口仲裁沖突。
SoC FPGA體系結(jié)構(gòu)最顯著的優(yōu)勢(shì)是處理器與FPGA的片內(nèi)緊密耦合。為實(shí)現(xiàn)這種性能優(yōu)勢(shì),處理器至FPGA互聯(lián)應(yīng)有足夠的帶寬(寬度和速度),選擇類型合適的互聯(lián)也非常重要,這不能成為系統(tǒng)數(shù)據(jù)傳輸?shù)钠款i。
在結(jié)構(gòu)方面,在其他廠家SoC FPGA器件中,數(shù)據(jù)通路和控制通路會(huì)競(jìng)爭(zhēng)并占用帶寬。處理器需要訪問FPGA邏輯中硬件加速器并對(duì)其進(jìn)行設(shè)置。如果這些控制會(huì)話過程與數(shù)據(jù)流出現(xiàn)競(jìng)爭(zhēng),那將會(huì)阻塞大吞吐量數(shù)據(jù)流,輸入數(shù)據(jù)連續(xù)處理的過程會(huì)出現(xiàn)中斷。相似的,寬帶數(shù)據(jù)流會(huì)延時(shí)控制信號(hào),增加了控制延時(shí)。
為防止出現(xiàn)這種情況,Altera SoC FPGA采用了第二個(gè)低延時(shí)、無阻塞“輕量”互聯(lián)橋接。處理器通過這一簡單的32位ARM Advanced eXtensible Interface (AXI)接口來訪問FPGA中的控制寄存器,不會(huì)阻塞或者影響大吞吐量數(shù)據(jù)流,如圖2中的藍(lán)色部分所示。同時(shí),處理器和FPGA之間的寬帶數(shù)據(jù)連接支持32位、64位以及128位寬度會(huì)話,如圖2中的紅色部分所示。
圖2.Altera SoC FPGA含有大吞吐量數(shù)據(jù)通路和無阻塞低延時(shí)控制通路
2.系統(tǒng)可靠性和靈活性
高度集成的SoC FPGA還有助于建立更可靠的系統(tǒng)。兩個(gè)重要的方面體現(xiàn)了SoC FPGA器件的不同之處:系統(tǒng)中有多少存儲(chǔ)器保護(hù)? SoC FPGA怎樣應(yīng)對(duì)軟件缺陷?
對(duì)錯(cuò)誤探測(cè)、糾正和監(jiān)視的需求已經(jīng)成為當(dāng)今設(shè)計(jì)的發(fā)展趨勢(shì)。隨著存儲(chǔ)器容量和密度的不斷增長,對(duì)錯(cuò)誤檢查和糾正的需求也在增長,也越來越重要。大部分現(xiàn)代系統(tǒng)包括專用硬件來幫助實(shí)現(xiàn)數(shù)據(jù)完整性。
從SoC FPGA角度看,這包括糾錯(cuò)碼,即ECC保護(hù)——它不僅僅是存儲(chǔ)器控制器保護(hù)的一部分,而且還集成在處理器的片內(nèi)存儲(chǔ)器、高速緩存,以及外設(shè)緩沖中。ECC電路使系統(tǒng)更可靠,系統(tǒng)不受意外數(shù)據(jù)錯(cuò)誤或者數(shù)據(jù)損壞的影響。
表1總結(jié)了Altera SoC的硬件ECC與其它廠家的對(duì)比
表1.SoC FPGA中的ECC
值得重點(diǎn)介紹的另一方面是NAND閃存。NAND閃存適用于文件系統(tǒng)存儲(chǔ),但有時(shí)候可靠性不如NOR閃存。因此,NAND閃存的ECC被用于消除錯(cuò)誤。早期版本的NAND閃存控制器包括單比特ECC保護(hù)。這雖然有一些優(yōu)點(diǎn),但是CPU必須參與其中,CPU必須通過軟件管理ECC,導(dǎo)致對(duì)性能有明顯的影響。大部分現(xiàn)代NAND閃存控制器都包括多比特ECC保護(hù)。特別是,在Altera SoC FPGA中實(shí)現(xiàn)的NAND閃存控制器包括對(duì)512字節(jié)段的4比特、8比特和16比特硬件糾錯(cuò),以及對(duì)1,024字節(jié)段的24比特硬件糾錯(cuò)。這實(shí)現(xiàn)了功能更強(qiáng)更需要的保護(hù)功能,而且不會(huì)降低性能。
存儲(chǔ)器保護(hù)通常是先進(jìn)的處理器具有的一種特性。不論是被稱為存儲(chǔ)器管理單元(MMU)還是存儲(chǔ)器保護(hù)單元(MPU),處理器的存儲(chǔ)器保護(hù)單元都能夠防止錯(cuò)誤或者非法的處理器會(huì)話讀取或者損害其他的存儲(chǔ)器區(qū)域。在Cortex-A9處理器中,ARM的TrustZone技術(shù)擴(kuò)展了這一保護(hù)概念,為安全敏感的系統(tǒng)提供了系統(tǒng)級(jí)方法。
某些SoC FPGA將存儲(chǔ)器保護(hù)擴(kuò)展到了FPGA。為什么這一存儲(chǔ)器保護(hù)來自FPGA,又用于FPGA呢?處理器和FPGA可以共享一個(gè)外部DDR存儲(chǔ)器接口,以便降低成本,減小電路板空間,節(jié)省功耗。假設(shè)定制FPGA邏輯恰好覆寫了一段屬于處理器數(shù)據(jù)、應(yīng)用程序代碼,或者操作系統(tǒng)(OS)內(nèi)核的存儲(chǔ)器,那么會(huì)怎樣呢?這會(huì)導(dǎo)致系統(tǒng)故障或者將處理器指向錯(cuò)誤的方向。
為防止出現(xiàn)這種情況,為操作系統(tǒng)和嵌入式應(yīng)用軟件指定了特定的存儲(chǔ)器區(qū)域,而其他存儲(chǔ)器區(qū)域可以專門用于基于FPGA的功能,如圖3所示。通過存儲(chǔ)器保護(hù),基于FPGA的功能不會(huì)損壞操作系統(tǒng)或者嵌入式軟件區(qū)域。
圖3.DDR存儲(chǔ)器保護(hù),處理器和FPGA共享公共的存儲(chǔ)器。
看門狗定時(shí)器可以防止出錯(cuò)的軟件將系統(tǒng)阻塞。在以前的雙芯片分立方案,即處理器加FPGA的解決方案中,如果處理器運(yùn)行出錯(cuò)導(dǎo)致看門狗復(fù)位,F(xiàn)PGA仍然能夠運(yùn)行。體系結(jié)構(gòu)設(shè)計(jì)良好的SoC FPGA必須支持同樣的“獨(dú)立”行為,而且還提供選擇給系統(tǒng)設(shè)計(jì)人員來決定是否重新配置FPGA。在很多情況下,很關(guān)鍵的是當(dāng)處理器自己復(fù)位時(shí),F(xiàn)PGA邏輯需要繼續(xù)監(jiān)視并響應(yīng)外部激勵(lì)。因此,在這種條件下,檢查FPGA怎樣重新配置非常重要。
dc相關(guān)文章:dc是什么
fpga相關(guān)文章:fpga是什么
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論