第三個十年:FPGA成為SoC
2003 年,互聯(lián)網(wǎng)泡沫破滅的時候,Altera開始了他的第三個十年。這是大結(jié)局的一年:哥倫比亞號航天飛機(jī)悲劇謝幕,先驅(qū)者10號失去聯(lián)絡(luò),最后一臺大眾甲殼 蟲駛出裝配線。但這也是開始的一年:伊拉克戰(zhàn)爭,美國股市大牛市的開始,私人開發(fā)的SpaceShipOne第一次超音速飛行,中國第一次載人航天。
在系統(tǒng)設(shè)計領(lǐng)域,F(xiàn)PGA悄然向下一階段發(fā)展。使用最先進(jìn)的CMOS技術(shù),F(xiàn)PGA的邏輯密度和速度足以在一個芯片中實(shí)現(xiàn)CPU內(nèi)核及其外設(shè)。 Altera發(fā)布了Nios,這一RISC CPU內(nèi)核針對FPGA進(jìn)行了優(yōu)化,合作伙伴也開發(fā)了在FPGA中實(shí)現(xiàn)的其他流行CPU內(nèi)核。Avalon是一種多主機(jī)總線體系結(jié)構(gòu),適用于CPU和芯片 系統(tǒng)之間的可編程邏輯規(guī)范互聯(lián)。市場上還出現(xiàn)了SoPC Builder,這款工具可以自動的在基于FPGA的SoC中裝入知識產(chǎn)權(quán)(IP)。
這些底層工作導(dǎo)致人們對可編程邏輯進(jìn)行全新的思考。設(shè)計人員會繼續(xù)在CPLD中開發(fā)膠合邏輯。對高性能有要求的設(shè)計人員會繼續(xù)在數(shù)據(jù)包交換、信號處理和相關(guān)應(yīng)用中實(shí)現(xiàn)更快、功能更強(qiáng)大的加速器和子系統(tǒng)。而此外,在Altera的第三個十年,F(xiàn)PGA作為芯片系統(tǒng)冉冉升起。
以CPU為中心的時期
即使在這十年中,SoC也趨向于采用簡單模式,以它們所替代的電路板級計算機(jī)為基礎(chǔ)。一片SoC通常包括一個CPU內(nèi)核,一個本地高速緩存或者緊耦合SRAM,一個DRAM控制器,一條片內(nèi)微處理器總線,以及應(yīng)用程序所需要的外設(shè)控制器等(圖1)。這類應(yīng)用會包括DMA控制器或者應(yīng)用加速器,適用于經(jīng)常性的繁雜任務(wù),例如,數(shù)據(jù)傳送、加密計算,或者快速傅里葉變換(FFT)等。
圖1.一個典型的以CPU為中心的Soc設(shè)計
在FPGA中實(shí)現(xiàn)SoC有很大的優(yōu)點(diǎn)。設(shè)計人員可以只選擇CPU內(nèi)核中需要的硬件模塊。數(shù)字加速器可以使用Altera FPGA中的高速數(shù)字信號處理(DSP)模塊,其算術(shù)性能要遠(yuǎn)遠(yuǎn)高于微處理器和DSP芯片組合所能達(dá)到的水平。設(shè)計人員還可以使用嵌入在FPGA架構(gòu)中的 可編程邏輯、DSP模塊以及RAM模塊實(shí)現(xiàn)定制加速器??梢园堰@些加速器設(shè)計用作微處理器總線單元,或者獨(dú)立直通處理器,開發(fā)與微處理器控制平面相獨(dú)立的 數(shù)據(jù)平面。
據(jù)Altera產(chǎn)品規(guī)劃經(jīng)理Bernhard Friebe,提高集成度的一個重要優(yōu)點(diǎn)是能效。FPGA中的RAM和DSP模塊等硬件功能的能效不會低于等價的ASIC或者貨架功能產(chǎn)品的能效。在可編 程邏輯中實(shí)現(xiàn)的功能的功耗通常要比等價的標(biāo)準(zhǔn)產(chǎn)品高,但并不總是這樣。但是,在這一時期,很多系統(tǒng)的主要能耗來自I/O。數(shù)據(jù)通過FPGA架構(gòu)傳送不但非 常快,而且效率要遠(yuǎn)遠(yuǎn)高于通過芯片邊界進(jìn)行傳送。通過限制FPGA內(nèi)部寬帶數(shù)據(jù)傳送,系統(tǒng)設(shè)計人員能夠有效的降低系統(tǒng)級能耗。
由于已經(jīng)有了硬件和IP來支持以CPU為中心的SoC,因此,Altera的重點(diǎn)放在了工具流程上。很顯然,SoC開發(fā)人員的工具需求與傳統(tǒng)邏輯設(shè) 計人員的完全不同。傳統(tǒng)上,接口或者數(shù)據(jù)通路組件設(shè)計人員會以VHDL或者Verilog的形式詳細(xì)的表達(dá)他們的設(shè)計,然后,每一個單元要通過邏輯驗(yàn)證、 映射至FPGA資源以及時序收斂等步驟。
而SoC設(shè)計人員更關(guān)注抽象級。硬件足夠快,片內(nèi)RAM容量足夠大?總線和存儲器帶寬夠用嗎?總線接口能夠互聯(lián)嗎?由于能夠充分重新使用IP,因 此,設(shè)計投入的重點(diǎn)由全部SoC邏輯轉(zhuǎn)向編寫軟件,利用已有IP開發(fā)一個或者兩個新模塊,將其置入到設(shè)計中。換句話說,SoC開發(fā)人員就像系統(tǒng)設(shè)計人員那 樣進(jìn)行思考,而不像芯片設(shè)計人員那樣。
這樣帶來的一個結(jié)果就是Altera于2005年首次推出的漸進(jìn)式編譯功能。設(shè)計投入一般是集中在SoC的一個或者兩個模塊上,而硬件大部分工作保 持不變。Altera的漸進(jìn)式編譯特性支持設(shè)計人員對設(shè)計中的一部分重新進(jìn)行設(shè)計,一般是固定位置和引腳約束,不需要通過工具鏈重新運(yùn)行整個設(shè)計。這不僅 節(jié)省了編譯時間,而且降低了已經(jīng)設(shè)計好的硬件部分受到干擾的風(fēng)險。
SoC設(shè)計還導(dǎo)致偏向使用FPGA I/O引腳。作為總線橋接或者加速器,F(xiàn)PGA會有突發(fā)或者流形式的數(shù)據(jù)流過芯片,一般是從一條標(biāo)準(zhǔn)總線到另一條總線。一般而言,只有較少的時鐘域,大部分是由總線定義的。
以CPU為中心的SoC帶來了新需求。通常會有標(biāo)準(zhǔn)外部總線,例如,PCI或者USB。而現(xiàn)在,F(xiàn)PGA會最先使用總線,而不僅僅是總線上的一個用 戶。當(dāng)然還會有DRAM端口,使得FPGA面臨如何使用DDR SDRAM接口技術(shù)的難題。在片內(nèi)外設(shè)控制器和外部器件之間還會有很多串行或者并行連接。這種多樣性意味著更多的引腳,I/O上更多的信號和更大的電壓變 化,以及更多的時鐘域。這些變化反映在越來越復(fù)雜的FPGA I/O單元和時鐘網(wǎng)絡(luò)上。
內(nèi)核和多核
半導(dǎo)體工藝一直在不斷改進(jìn),晶體管密度也越來越高。但是在Altera的第三個十年中,越來越難以進(jìn)一步提高電路速度了。相應(yīng)的,CPU生產(chǎn)商關(guān)注 的重點(diǎn)從提高時鐘頻率轉(zhuǎn)向兩個、四個甚至管芯上更多的CPU內(nèi)核——多核體系結(jié)構(gòu)。SoC設(shè)計人員在ASIC設(shè)計和FPGA設(shè)計上都緊隨其后。
多核思路體現(xiàn)在FPGA使用上有兩個明顯的方向。一個思路就是簡單的復(fù)制CPU內(nèi)核。這相對比較容易將多個處理器內(nèi)核編譯到FPGA中。但是將其連 接起來就不那么容易了。這里,可編程邏輯提供了豐富的資源,設(shè)計人員幾乎可以實(shí)現(xiàn)從陣列到緊耦合內(nèi)核,直至共享L2高速緩存體系結(jié)構(gòu)的所有一切,設(shè)計實(shí)現(xiàn) 多主機(jī)Avalon?總線上的獨(dú)立CPU。
多核的另一個思路采用了不同的方法:異構(gòu)系統(tǒng)。實(shí)現(xiàn)一個CPU內(nèi)核例化的同一總線、IP和工具支持同時實(shí)現(xiàn)CPU內(nèi)核和多個對等的加速器 (圖2)。這也導(dǎo)致完全不同的多核設(shè)計思路:以軟件為中心的方法。
圖2.一個異構(gòu)多核SoC設(shè)計
設(shè)計同構(gòu)多核系統(tǒng)非常直觀,極其簡單。您需要知道比單個CPU速度快多少倍。使用更多的CPU,多出一個或者兩個也有可能降低效率。根據(jù)您期望的線 程之間共享的存儲器等級,選擇互聯(lián)體系結(jié)構(gòu)。在CPU之間劃分軟件線程,仿真系統(tǒng),并重復(fù)直至符合規(guī)范要求。這一過程一直是以硬件為中心的,選擇一種體系 結(jié)構(gòu),實(shí)現(xiàn)它,然后,劃分代碼,適配到硬件中。
但是,能夠建立自己的加速器則創(chuàng)立了全新的方法。它是這樣工作的。分析您的代碼,找到熱點(diǎn)。對于最難處理的代碼部分,建立定制加速器,這節(jié)省了 CPU周期,降低了能耗。仿真系統(tǒng),然后再分析步驟,并重復(fù),直到性能滿足要求。這一方法從一個CPU內(nèi)核上的工作軟件開始,產(chǎn)生定制滿足實(shí)際系統(tǒng)軟件要 求的多個硬件加速器。系統(tǒng)第一次反映了軟件需求,而不是強(qiáng)制軟件符合要求。
2006年,Altera推出了兩項(xiàng)創(chuàng)新,支持這種異構(gòu)多核設(shè)計風(fēng)格。一項(xiàng)是編譯器,將一組可執(zhí)行ANSI C代碼轉(zhuǎn)換成加速器,針對Altera FPGA中的Nios? CPU內(nèi)核進(jìn)行了優(yōu)化。這種C語言至硬件加速(C2H)編譯器工具自動完成以軟件為中心的設(shè)計中最耗時和最容易出錯的步驟:生成加速器。
第二項(xiàng)創(chuàng)新則不太明顯。如果您對比一個快速單核處理器與時鐘速度較慢的一組等價處理器的功耗,由于高效的加速器,動態(tài)功耗會大幅度下降。但是泄漏 ——多年來一直難以解決的問題,不論電路是否工作,都隨著晶體管數(shù)量的增加而增大。因此,對于多核設(shè)計,泄漏電流對能效的影響最大。
Altera以第二項(xiàng)創(chuàng)新——可編程功耗技術(shù)來解決這一問題。硬件和軟件工具相結(jié)合,對于時序不關(guān)鍵的通路,選擇慢速低泄漏電路,減小了FPGA中的泄漏電流,同時實(shí)現(xiàn)了時序收斂。結(jié)果是,不管深亞微米工藝的泄漏有多大,都滿足了異構(gòu)多核設(shè)計的能耗要求。
一致性和增強(qiáng)
最后階段標(biāo)志著Altera第三個十年的結(jié)束:IP選擇的一致性。逐漸的,系統(tǒng)設(shè)計領(lǐng)域更加關(guān)注最棘手問題的特殊解決方案。特別是,嵌入式系統(tǒng)開發(fā) 人員幾乎都采用了C語言,嵌入式計算普遍采用ARM?內(nèi)核,一些接口標(biāo)準(zhǔn)開始成為某些應(yīng)用的主要標(biāo)準(zhǔn),例如,高速系統(tǒng)總線、背板鏈接和芯片間互聯(lián)等。由 此,Altera開發(fā)創(chuàng)新技術(shù)來支持這些解決方案。
一個例子是,編程人員表達(dá)并行代碼的方式。C語言雖然能夠很好的定義順序執(zhí)行的程序,但是無法表達(dá)熟練的編程人員使用的并行處理方法。但是,名為 OpenCL?的C衍生語言可以。2011年,Altera推出了一組工具,支持編程人員采用越來越流行的OpenCL編寫并行算法,將其翻譯成FPGA 中的并行硬件以及傳統(tǒng)CPU中的控制代碼,這不需要專門的FPGA設(shè)計知識。
多核SoC越來越一致的使用ARM Cortex?-A類CPU內(nèi)核帶來了第二項(xiàng)創(chuàng)新。只要每一個設(shè)計團(tuán)隊(duì)希望有不同的CPU,F(xiàn)PGA供應(yīng)商就要滿足這些需求,在可編程邏輯中實(shí)現(xiàn)軟核。但是這種靈活性有其成本:占用邏輯單元、高功耗和低速。
Altera則采用了別的方法:在越來越多的嵌入式和無線應(yīng)用中使用Cortex-A9。2012年,公司開始推出具有管芯硬核處理器子系統(tǒng)的 FPGA樣片:雙核Cortex-A9群,有自己的高速緩存、本地RAM、經(jīng)過優(yōu)化的存儲器控制器,以及部分外設(shè)控制器,這些都在ASIC類型基于單元的 硬件中實(shí)現(xiàn)。芯片設(shè)計人員非常小心的優(yōu)化子系統(tǒng)和可編程邏輯架構(gòu)之間的互聯(lián),以實(shí)現(xiàn)異構(gòu)多核系統(tǒng)。
這種多核處理器系統(tǒng)和FPGA之間不斷的融合帶來了另一項(xiàng)更關(guān)鍵的創(chuàng)新。2013年,Altera發(fā)布其下一代高端FPGA不僅由傳統(tǒng)的代工線合作 伙伴制造,而且還由Intel公司制造,使用了14 nm三柵極工藝,這源自Intel自己的CPU和SoC。從ASIC定位的代工線市場轉(zhuǎn)向擅長CPU的代工線,Altera FPGA獨(dú)辟蹊徑來解決功耗和性能問題,優(yōu)化半導(dǎo)體工藝特性,而不是優(yōu)化滿足ASIC代工線要面對的各種市場需求,這對于工藝單元、本地RAM和高速互聯(lián) 都非常關(guān)鍵。
Altera相信,這種選擇的結(jié)果是打破FPGA業(yè)界多年以來所習(xí)慣的性能和能耗模式。這是新十年最好的開始。
評論
查看更多