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