電子發(fā)燒友網(wǎng)核心提示:對(duì)于系統(tǒng)設(shè)計(jì)人員而言,提高積體電路的整合度既是好消息,也帶來(lái)新問(wèn)題。好消息是,在每一個(gè)硅晶片的新制程節(jié)點(diǎn),晶片設(shè)計(jì)人員都能夠在一個(gè)晶片中封裝更多的元件,例如更多的處理器、加速器和周邊控制器。一個(gè)晶片內(nèi)建更多的元件,意味著更好的性能、更低的功率消耗以及更小的體積?! ?/p>
但是,更高的整合度也意味著以前由系統(tǒng)設(shè)計(jì)人員所做出的決定,現(xiàn)在是由晶片設(shè)計(jì)人員來(lái)完成,系統(tǒng)設(shè)計(jì)團(tuán)隊(duì)能夠?qū)崿F(xiàn)的創(chuàng)新會(huì)越來(lái)越少,也不太容易突出產(chǎn)品優(yōu)勢(shì)。更重要的是,系統(tǒng)設(shè)計(jì)人員要能夠理解晶片設(shè)計(jì)人員的思路,同時(shí)還可以自由地突顯自己產(chǎn)品的優(yōu)勢(shì)。
根據(jù)應(yīng)用分類 采用對(duì)應(yīng)方式
目前俄羅斯電子市場(chǎng)很多最重要的應(yīng)用都符合某種模式,包括視訊監(jiān)控、無(wú)線和有線通訊,以及高階工業(yè)控制等。在這些應(yīng)用中,系統(tǒng)收集寬頻訊號(hào),處理這些訊號(hào)以提取出資料,進(jìn)行大運(yùn)算量的分析,做出判斷,然后實(shí)施判斷。
例如,監(jiān)控系統(tǒng)須要處理來(lái)自攝影機(jī)的1,080條逐行掃描視訊。系統(tǒng)對(duì)視訊串流進(jìn)行處理、增強(qiáng)邊緣、識(shí)別出目標(biāo),最后分離出感興趣的目標(biāo)。此一處理過(guò)程通常使用標(biāo)準(zhǔn)化,雖然相對(duì)簡(jiǎn)單,但是需要大運(yùn)算量的演算法。
在下一階段,處理單元的目標(biāo)分析功能將更強(qiáng)大,例如探測(cè)是否有入侵,或識(shí)別出某些特定的人。這些演算法可能是專用的,會(huì)經(jīng)常變化。最后經(jīng)過(guò)分析,確定目前的狀態(tài)是否須要觸發(fā)警鈴、鎖閉大門,或者向公共安全機(jī)構(gòu)發(fā)出警報(bào)。
以軟體實(shí)現(xiàn)系統(tǒng)功能易被復(fù)制
設(shè)計(jì)團(tuán)隊(duì)採(cǎi)用叁種不同的途徑來(lái)實(shí)現(xiàn)這些系統(tǒng)。第一種途徑最初是透過(guò)運(yùn)行在微處理器上的軟體來(lái)實(shí)現(xiàn),最近,則採(cǎi)用特定應(yīng)用標(biāo)準(zhǔn)產(chǎn)品(ASSP),或者功能強(qiáng)大的32位元微控制器。
設(shè)計(jì)團(tuán)隊(duì)對(duì)軟體進(jìn)行除錯(cuò)、確定演算法,然后檢查系統(tǒng)性能。如果任務(wù)運(yùn)行太慢,設(shè)計(jì)人員會(huì)將其移動(dòng)到獨(dú)立的中央處理器(CPU)上?;蛘?,如果有數(shù)位訊號(hào)處理(DSP)核心等合適的加速器,IC上有向量處理器,則將其移動(dòng)到加速器上,進(jìn)而對(duì)其進(jìn)行加速。當(dāng)所有的任務(wù)滿足其時(shí)序要求后,可以在功能、時(shí)序和功率消耗上對(duì)系統(tǒng)進(jìn)行最終的驗(yàn)證。
在監(jiān)控實(shí)例中,系統(tǒng)控制軟體會(huì)運(yùn)行在一顆CPU核心上。標(biāo)準(zhǔn)影像處理演算法可以運(yùn)行在DSP核心標(biāo)準(zhǔn)函式庫(kù)的程式上,還可以手動(dòng)編寫更復(fù)雜的專用演算法,在所有可用CPU核心并存執(zhí)行。
這種設(shè)計(jì)方法有很大的優(yōu)勢(shì)。其重點(diǎn)一直是軟體,也就是系統(tǒng)功能。由于大部分系統(tǒng)功能體現(xiàn)在軟體上,因此當(dāng)出現(xiàn)問(wèn)題或須要進(jìn)行改動(dòng)時(shí),就比較容易對(duì)系統(tǒng)進(jìn)行修改。
但是,透過(guò)CPU或DSP核心上的軟體來(lái)執(zhí)行一種演算法,是最慢而且最耗損效能的方法。因此,對(duì)于性能或效率要求較高的系統(tǒng),以軟體為中心的方法并不是最佳方法。系統(tǒng)不同的特性體現(xiàn)在軟體上,因此有同樣硬體的競(jìng)爭(zhēng)對(duì)手很容易復(fù)製這些軟體,或者軟體有可能被敵方所利用。
以硬體當(dāng)作解決方案 設(shè)計(jì)彈性差
系統(tǒng)設(shè)計(jì)的另一種方法是直接根據(jù)系統(tǒng)要求來(lái)開(kāi)發(fā)硬體設(shè)計(jì),同時(shí)編寫在此一硬體上運(yùn)行的軟體。這是開(kāi)發(fā)大部分特殊應(yīng)用積體電路(ASIC)所採(cǎi)用的方法。一開(kāi)始,系統(tǒng)規(guī)劃人員確定需要哪些CPU、加速器、記憶體和控制器,把這些需求告訴晶片設(shè)計(jì)團(tuán)隊(duì),由他們來(lái)開(kāi)發(fā)ASIC。
在實(shí)例系統(tǒng)中,規(guī)劃人員可以選擇一對(duì)安謀國(guó)際(ARM)核心來(lái)運(yùn)行系統(tǒng)軟體,授權(quán)協(xié)力廠商影像處理引擎來(lái)處理最初的影像處理任務(wù),在進(jìn)程最后,針對(duì)復(fù)雜演算法設(shè)計(jì)訂製韌體編寫DSP管線程式碼。當(dāng)進(jìn)行IC設(shè)計(jì)時(shí),軟體團(tuán)隊(duì)會(huì)針對(duì)設(shè)計(jì)中完全不同的叁種引擎來(lái)使用叁組程式設(shè)計(jì)和除錯(cuò)工具。
以硬體為中心的方法有很大的優(yōu)勢(shì)。在所有方法中,它能夠?qū)崿F(xiàn)最大系統(tǒng)速率及最高功能效率。但這需要熟練的IC設(shè)計(jì)團(tuán)隊(duì),且在高階製程節(jié)點(diǎn),投入也會(huì)很大。而且,一旦設(shè)計(jì)好ASIC,就很難修改硬體或改正錯(cuò)誤,也很難應(yīng)對(duì)需求的變化,此一過(guò)程會(huì)很慢而且成本很高。軟體方案能夠節(jié)省時(shí)間,但是犧牲了ASIC方法的優(yōu)點(diǎn)--速度和功率消耗。
因此,雖然在理論上以硬體為中心的方法最適合對(duì)性能和功率消耗要求較高的設(shè)計(jì),但在實(shí)際情況下,設(shè)計(jì)團(tuán)隊(duì)只有在預(yù)期會(huì)有很大的銷售量能夠滿足成本要求,降低風(fēng)險(xiǎn)時(shí),或者他們知道系統(tǒng)硬體在產(chǎn)品生命週期過(guò)程中不會(huì)有太大的變化時(shí),才會(huì)開(kāi)發(fā)ASIC。實(shí)際上,面臨關(guān)鍵設(shè)計(jì)難題的團(tuán)隊(duì)很難實(shí)現(xiàn)系統(tǒng)IC設(shè)計(jì)時(shí),通常會(huì)放棄ASIC方法,轉(zhuǎn)而購(gòu)買與系統(tǒng)IC設(shè)計(jì)功能相近的ASSP。
活用現(xiàn)場(chǎng)可編程門陣列
現(xiàn)場(chǎng)可編程門陣列(FPGA)是系統(tǒng)設(shè)計(jì)人員的第三種方案(圖1)。在很多方法中,F(xiàn)PGA一直是以軟體為中心採(cǎi)用CPU架構(gòu)的方法,與以硬體為中心的ASIC方法之間的一種做法。在FPGA中實(shí)現(xiàn)的演算法,并不像軟體那么容易進(jìn)行修改,但是修改FPGA配置要比投入生產(chǎn)新版ASIC容易得多,即使這種修改只是在幾個(gè)金屬層上。
圖1 現(xiàn)場(chǎng)可編程門陣列發(fā)展藍(lán)圖
相反地,與在軟體中運(yùn)行任務(wù)相比,在FPGA中運(yùn)行相同的任務(wù)會(huì)非??欤夜β氏囊埠艿?。但是FPGA通常要比相等價(jià)格的ASIC速度慢,功能效率也要低一些。
因此,當(dāng)一種僅採(cǎi)用軟體的解決方案無(wú)法滿足速度和功率消耗要求,無(wú)法找到能夠突出產(chǎn)品優(yōu)勢(shì)的ASSP,或者使用ASIC不能滿足預(yù)算要求,達(dá)不到預(yù)期的產(chǎn)量,無(wú)法支援往后的系統(tǒng)改動(dòng)時(shí),系統(tǒng)設(shè)計(jì)人員會(huì)轉(zhuǎn)向採(cǎi)用FPGA。對(duì)于FPGA供應(yīng)商,這種情況經(jīng)常出現(xiàn),在最近幾年,F(xiàn)PGA的銷售要比其替代方案好得多。
在監(jiān)控實(shí)例中,設(shè)計(jì)人員可以結(jié)合使用運(yùn)行系統(tǒng)軟體的工業(yè)標(biāo)準(zhǔn)微處理器,以及實(shí)現(xiàn)商用硅智財(cái)(IP)進(jìn)行標(biāo)準(zhǔn)影像處理和訂製設(shè)計(jì)DSP管線的FPGA。這樣一來(lái),F(xiàn)PGA中的設(shè)計(jì)在功能模組層級(jí)上類似于ASIC,而在閘級(jí)實(shí)現(xiàn)起來(lái)卻是完全不同。
針對(duì)任務(wù)選擇最佳實(shí)現(xiàn)方法
在理想情況下,系統(tǒng)開(kāi)發(fā)人員不必在多種方法上進(jìn)行選擇。開(kāi)發(fā)人員可以針對(duì)每個(gè)任務(wù)來(lái)選擇最佳實(shí)現(xiàn)方法。可以在相應(yīng)的CPU軟體中實(shí)現(xiàn)很少改變而且不關(guān)鍵的任務(wù)。透過(guò)標(biāo)準(zhǔn)定義性能和功率消耗非常關(guān)鍵的任務(wù),如此一來(lái),這些任務(wù)不會(huì)改變,成為固定硬體。而有可能改變并且需要硬體支援的任務(wù),則在FPGA可程式設(shè)計(jì)邏輯架構(gòu)內(nèi)實(shí)現(xiàn)。
在過(guò)去的幾個(gè)硅晶片製程世代中,這實(shí)際上是常用的方法。那時(shí)的整合度較低,微處理器、加速器、復(fù)雜介面控制器及FPGA都是獨(dú)立的晶片。但是在90奈米(nm)製程世代,除了FPGA架構(gòu)外,系統(tǒng)單晶片(SoC)包括這些所有功能,而且由SoC設(shè)計(jì)人員而不是系統(tǒng)設(shè)計(jì)人員來(lái)確定大部分實(shí)現(xiàn)方法。系統(tǒng)設(shè)計(jì)人員選擇最合適的SoC,編寫自己的軟體,實(shí)現(xiàn)FPGA與SoC靈活的介面,進(jìn)而突出產(chǎn)品優(yōu)勢(shì)。
現(xiàn)在,情況又發(fā)生了變化。晶片開(kāi)發(fā)人員能夠使用大量的電晶體,支援FPGA的硅晶片融合。功能強(qiáng)大的微控制器增加專用硬體,因此它們看起來(lái)像是ASIC SoC。ASIC和ASSP能夠含有功能強(qiáng)大的32位元CPU,因此看起來(lái)像高階微控制器。新的SoC FPGA系列同時(shí)含有多核心CPU和專用硬體模組,契合實(shí)際需求,可支援系統(tǒng)設(shè)計(jì)人員根據(jù)不同的任務(wù)要求來(lái)選擇軟體、專用硬體或是可程式設(shè)計(jì)邏輯。
設(shè)計(jì)人員可以採(cǎi)用這類融合晶片,在一對(duì)功能強(qiáng)大的CPU核心上實(shí)現(xiàn)系統(tǒng)軟體及影像處理演算法的多執(zhí)行緒部分。他們可以在DSP硬式核心和可程式設(shè)計(jì)架構(gòu)上實(shí)現(xiàn)其他演算法,這些都是在一個(gè)晶片上實(shí)現(xiàn)。
日益攀升的開(kāi)發(fā)成本,使得ASIC的應(yīng)用領(lǐng)域越來(lái)越少,而硅晶片融合發(fā)展趨勢(shì)可支援實(shí)現(xiàn)叁種系統(tǒng)層級(jí)解決方案。微控制器、ASSP和FPGA變得幾乎是一樣的,但有一個(gè)重要的不同點(diǎn)。出于技術(shù)和智慧財(cái)產(chǎn)權(quán)法律的考慮,只有FPGA能夠?qū)崿F(xiàn)最先進(jìn)的可程式設(shè)計(jì)邏輯架構(gòu)。因此只有FPGA支援系統(tǒng)設(shè)計(jì)人員可在硬體層級(jí)實(shí)現(xiàn)其突出產(chǎn)品優(yōu)勢(shì)的策略。
硅晶片融合帶來(lái)各種可能
硅晶片融合將為今后幾年的系統(tǒng)開(kāi)發(fā)確定方向。一方面,將看到高階微控制器和ASSP成為系統(tǒng)的硬體基礎(chǔ),這些系統(tǒng)硬體將實(shí)現(xiàn)商品化,在市場(chǎng)上系統(tǒng)產(chǎn)品之間的不同體現(xiàn)在軟體上。另一方面,也會(huì)看到突出硬體優(yōu)勢(shì)、採(cǎi)用FPGA架構(gòu)的系統(tǒng)脫穎而出。
這種趨勢(shì)會(huì)進(jìn)一步加速,塬因是兩種新出現(xiàn)的技術(shù):叁維(3D)IC和異質(zhì)結(jié)構(gòu)程式設(shè)計(jì)系統(tǒng)。3D IC技術(shù)支援完全不同技術(shù)的IC整合,例如FPGA、微處理器、動(dòng)態(tài)隨機(jī)存取記憶體(DRAM)和射頻(RF)等,在一個(gè)堆疊中實(shí)現(xiàn)這些技術(shù),沒(méi)有獨(dú)立IC的晶片間時(shí)序和電源成本問(wèn)題。此一趨勢(shì)的一個(gè)早期例子是英特爾(Intel)凌動(dòng)(Atom)E6x5C系列,其整合Atom CPU和Altera FPGA。Atom為軟體提供業(yè)界標(biāo)準(zhǔn)架構(gòu),而FPGA能夠建立專用加速器和介面控制器。
E6x5C系列還滿足另一種新出現(xiàn)的技術(shù)的需求--異質(zhì)結(jié)構(gòu)程式設(shè)計(jì)環(huán)境。理想情況下,系統(tǒng)開(kāi)發(fā)人員只須要編寫并除錯(cuò)一個(gè)CPU的軟體就可以開(kāi)始設(shè)計(jì)。然后,開(kāi)發(fā)平臺(tái)會(huì)幫助他們找到關(guān)鍵程式碼片段,在多個(gè)CPU核心上分配任務(wù),共用快取記憶體,為關(guān)鍵程式碼核心建立硬體加速器。透過(guò)這種方法,設(shè)計(jì)團(tuán)隊(duì)能夠細(xì)緻地調(diào)整設(shè)計(jì),直至其滿足時(shí)序和功率消耗要求。
這種開(kāi)發(fā)環(huán)境的一個(gè)例子是Altera現(xiàn)在正在進(jìn)行的OpenCL-FPGA計(jì)畫(圖2)。其目的是提供單一的環(huán)境,讓系統(tǒng)開(kāi)發(fā)人員能夠在其中採(cǎi)用C語(yǔ)言開(kāi)發(fā)程式,隔離需要大量運(yùn)算的核心,產(chǎn)生平行硬體引擎來(lái)加速核心,整合最終的硬體軟體系統(tǒng)。
圖2 OpenCL-FPGA計(jì)畫
在提高硅晶片整合度需求的推動(dòng)下,融合功能逐漸將系統(tǒng)所有主要電子模組整合到一個(gè)封裝內(nèi),讓系統(tǒng)開(kāi)發(fā)人員能夠集中精力來(lái)突顯其最終產(chǎn)品的優(yōu)勢(shì)。FPGA表面上看起來(lái)越來(lái)越像ASSP和微控制器,而實(shí)際上增強(qiáng)系統(tǒng)開(kāi)發(fā)人員突出硬體優(yōu)勢(shì)的能力。新出現(xiàn)的3D IC技術(shù)及異質(zhì)結(jié)構(gòu)開(kāi)發(fā)環(huán)境將加速FPGA系統(tǒng)級(jí)IC從傳統(tǒng)微電子世界中脫穎而出。
圖3 硅晶片融合將為FPGA開(kāi)創(chuàng)出更多應(yīng)用可能。
評(píng)論