?
隨著芯片和系統(tǒng)設(shè)計(jì)變得越來(lái)越異構(gòu),FPGA 在一些關(guān)鍵的功能中變得越來(lái)越受歡迎。
隨著 FPGA 越來(lái)越被視為異構(gòu)設(shè)計(jì)中的關(guān)鍵組件,它的特性日益豐富,人們對(duì)它的關(guān)注度也日益提升。
在過(guò)去,只要產(chǎn)品的出貨量達(dá)到一定程度,F(xiàn)PGA 就會(huì)被降級(jí)為測(cè)試用芯片,最終被功耗更低和性能更高的 ASIC 取代。在過(guò)去的二十年中,F(xiàn)PGA 在整個(gè)供應(yīng)鏈中的地位逐漸上升,從最初的邏輯器件到如今的協(xié)處理器,它正逐漸被應(yīng)用在從數(shù)據(jù)中心到超級(jí)計(jì)算機(jī)的各種高性能關(guān)鍵任務(wù)中。
現(xiàn)在,作為降低主處理器集群工作負(fù)荷的一種方式,它們被嵌入到采用 CPU 集群的大型設(shè)備中,和 CPU 分享相同的總線進(jìn)行預(yù)處理或后處理。嵌入式 FPGA 還被用于網(wǎng)絡(luò)加速,執(zhí)行報(bào)文處理,在報(bào)文交換前或者必須由 CPU 決定如何處理這些信息之前,對(duì)報(bào)文進(jìn)行深度檢測(cè)、加密 / 壓縮或其他類型的報(bào)文處理任務(wù)。在無(wú)線應(yīng)用中,嵌入式 FPGA 被用作數(shù)字前端,在功率放大器和無(wú)線卡之間,或者在通信鏈路中執(zhí)行線性化、預(yù)失真和其他任務(wù)。
因?yàn)?FPGA 是可編程的,所以在系統(tǒng)運(yùn)行期間,可以使用它們對(duì)系統(tǒng)進(jìn)行優(yōu)化。多年來(lái),移動(dòng)基站一直依賴 FPGA,主要原因是移動(dòng)基站的總體部署數(shù)量不大、功耗不是主要考慮因素、定價(jià)不像消費(fèi)類設(shè)備或者移動(dòng)設(shè)備那樣要求嚴(yán)苛。OneSpin 解決方案營(yíng)銷副總裁 Dave Kelf 說(shuō):“移動(dòng)基站供應(yīng)商真正需要的是在系統(tǒng)運(yùn)行期間對(duì) FPGA 進(jìn)行重新配置?!?/p>
一段時(shí)間以來(lái),移動(dòng)基站提供商對(duì)嵌入式 FPGA 表現(xiàn)出了足夠的興趣。一方面,協(xié)議處理這種大活仍需要處理器來(lái)處理,另一方面,其它的一些任務(wù)中會(huì)使用許多固定功能執(zhí)行調(diào)制和誤差校正?!斑@是一些固定功能,必須非常高效和快速地工作,這是 ASIC 的強(qiáng)項(xiàng)所在,”Kelf 說(shuō)。“但是有的時(shí)候可能會(huì)使用不同的調(diào)制方案,能夠在需要時(shí)切換調(diào)制方案是很有競(jìng)爭(zhēng)力的。
在一些芯片中嵌入其它類型的芯片并不是什么新鮮事兒。早在 1990 年代,賽靈思就在他們的 FPGA 里面嵌入了 PowerPC 架構(gòu)的處理器,Altera 和 Xilinx 也都在他們的 FPGA 里嵌入了 ARM 架構(gòu)的 CPU。真正的改變?cè)谟?FPGA 實(shí)現(xiàn)了專用的 SoC 功能,即多個(gè)處理器、緩存加上一些硬線接口完成的功能,F(xiàn)PGA 不再僅僅具備嵌入式處理能力,它還具備了一些 SoC 功能。Synopsys 高級(jí)產(chǎn)品營(yíng)銷經(jīng)理 Joe Mallett 說(shuō)。
“當(dāng)您將 SoC 功能嵌入到 FPGA 里面時(shí),可以簡(jiǎn)化電路板的設(shè)計(jì),”Mallett 說(shuō)?!澳憧梢詮?BOM(物料清單)中剔除掉不少器件,而且不再需要有一顆微處理器啟動(dòng) FPGA 并管理系統(tǒng)的運(yùn)行?!?/p>
嵌入式 FPGA 還可以帶來(lái)功耗和和成本上的優(yōu)勢(shì),Achronix 市場(chǎng)副總裁 Steve Mensor 說(shuō)。 “這種方法確實(shí)會(huì)增加 ASIC 的尺寸,但是同時(shí)你能省掉了一個(gè)非常昂貴的器件 - 處理器。你可以減少電路板面積,節(jié)省很多外圍組件,這些都對(duì)應(yīng)著大量的成本,而且,功耗還可以降低一半?!?/p>
是否嵌入 FPGA,最終取決于它能在多大程度上增強(qiáng)系統(tǒng)表現(xiàn)。
“當(dāng)涉及到芯片之間的通信時(shí),無(wú)論是 FPGA 到 ASIC,還是其它任何芯片類型,特別是在高帶寬應(yīng)用中,信號(hào)肯定需要通過(guò)某種類型的高速管道,”Mensor 說(shuō)?!巴ㄐ殴艿赖难舆t不會(huì)降低系統(tǒng)的最大運(yùn)行速度,但是由于芯片之間需要來(lái)回交互,就在總體上降低了整個(gè)系統(tǒng)的性能。因此,如果可以消除這種延遲,系統(tǒng)性能肯定會(huì)大幅提高。因此,使用了嵌入式 FPGA,就相當(dāng)于將之前 ASCI 之間的通信帶寬提高到了無(wú)限大。因?yàn)檫@里的 FPGA 功能都是線對(duì)線連接,最大延遲為單個(gè)時(shí)鐘周期,而且如果要使用外設(shè)寄存器,那就相當(dāng)于直接進(jìn)入邏輯部分,這個(gè)延遲基本上為零個(gè)時(shí)鐘周期?!?/p>
Mensor 還指出,嵌入式 FPGA 還可以在其他方面提升系統(tǒng)帶寬?!叭绻闾貏e分析一下 FPGA 就會(huì)發(fā)現(xiàn),F(xiàn)PGA 芯片的總吞吐量越多,芯片就越昂貴。這是一個(gè)簡(jiǎn)單的堆砌問(wèn)題,如果你必須放更多的引腳,芯片面積和封裝也就會(huì)越大?!?/p>
Mallett 也同意這種觀點(diǎn)?!扒度胧?FPGA 第一大好處就是它簡(jiǎn)化了 BOM,并降低了成本。此外,嵌入式 FPGA 頁(yè)可以在 28nm 或者更加先進(jìn)的工藝制程上制造,這樣便可以得到先進(jìn)節(jié)點(diǎn)的高性能和低功耗優(yōu)勢(shì)。有很多通用功能,人們傳統(tǒng)上會(huì)把它放到 FPGA 中,將它變成 SoC 的一部分并以硬化子系統(tǒng)的方式發(fā)揮作用,F(xiàn)PGA 架構(gòu)和其它部件進(jìn)行耦合,然后你才可能在系統(tǒng)中使用這些功能?!?/p>
嵌入式 FPGA 的另一個(gè)獨(dú)特特性是它們與處理器緊密耦合?!八麄儧](méi)有通過(guò)高速接口進(jìn)行耦合,因此您可以把軟件和硬件結(jié)合起來(lái)完成一件事情,這樣的性能肯定更好。此外,F(xiàn)PGA 的的可擴(kuò)展性意味著它可以進(jìn)行適配調(diào)整,使之適應(yīng)于特定的應(yīng)用?!癕allett 說(shuō)。
?
互連是關(guān)鍵
所有這一切聽(tīng)起來(lái)都很簡(jiǎn)單,但是人們使用 FPGA 的心態(tài)已經(jīng)發(fā)生了很大的變化。
“曾經(jīng),F(xiàn)PGA 只能算是二等公民,系統(tǒng)中最酷最主要的事情 - 主要是與性能密切相關(guān)的處理任務(wù) - 是由 CPU 或主 ASIC 或 SoC 完成的,F(xiàn)PGA 只被分派完成一些最微不足道的任務(wù),”,NetSpeed Systems 的營(yíng)銷和業(yè)務(wù)開(kāi)發(fā)副總裁 Anush Mohandass 說(shuō)?!癈CIX 聯(lián)盟所做的工作能使得 FPGA 成為一等公民。它現(xiàn)在可以訪問(wèn)與 CPU 相同的內(nèi)存,可以訪問(wèn)與主處理器相同的信息。微軟這樣的公司已經(jīng)意識(shí)到 FPGA 可以加速工作運(yùn)行,并改變?nèi)蝿?wù)的運(yùn)行方式?!保ㄎ④泴?shí)驗(yàn)室在 Hotchips 2014 上發(fā)表了一篇論文,詳細(xì)介紹了如果通過(guò)將任務(wù)卸載到 FPGA 來(lái)降低近 20%的功耗并改進(jìn)性能。)
這些進(jìn)展催生了一些新的想法,即可以在 FPGA 中執(zhí)行任務(wù),并通過(guò)芯片到芯片的互聯(lián)接口與主處理器連接,他說(shuō)。
Mohandass 說(shuō):“嵌入式 FPGA 將工作思路提高了一個(gè)層次,而這也正是 Facebook、阿里巴巴和亞馬遜等許多數(shù)據(jù)中心提供商正在實(shí)現(xiàn)的?!八麄兊能浖\(yùn)行得非常快。新的算法不斷出現(xiàn),他們想加快搜索速度,加快人們?cè)L問(wèn)購(gòu)物清單的速度,這些算法會(huì)以一個(gè)月到三個(gè)月的節(jié)奏發(fā)生變化。如果你想做一個(gè)硬件芯片實(shí)現(xiàn)它,將需要三年時(shí)間,當(dāng)做出來(lái)時(shí)算法早就過(guò)時(shí)了。嵌入式 FPGA 使得人們可以將一塊 FPGA 放在 SoC 中,他們需要改變的完成可以通過(guò)這個(gè) FPGA 實(shí)現(xiàn)。這就是軟件可編程硬件,您可以獲得 ASIC 或 SoC 的優(yōu)勢(shì),同時(shí)又能得到可編程性?!?/p>
驗(yàn)證挑戰(zhàn)
嵌入式 FPGA 的驗(yàn)證有幾個(gè)重要的挑戰(zhàn)。Cadence 的系統(tǒng)和驗(yàn)證部門(mén)產(chǎn)品管理高級(jí)組長(zhǎng) Frank Schirrmeister 指出。“第一個(gè)挑戰(zhàn)是您怎么在構(gòu)建一顆芯片時(shí)驗(yàn)證它,這是一個(gè)非常奇怪的問(wèn)題。此外,那些使用嵌入了 FPGA 的芯片的人也同樣面臨驗(yàn)證上的挑戰(zhàn)。如果這里有一顆嵌入了 Xilinx Zynq FPGA 的芯片,它們需要具有相當(dāng)全面的驗(yàn)證流程,比如對(duì)其中的處理器子系統(tǒng)的表示,以及用于軟件開(kāi)發(fā)的軟件視圖。驗(yàn)證的挑戰(zhàn)主要來(lái)自于你向現(xiàn)有系統(tǒng)中添加哪些東西?!?/p>
而且,具體到實(shí)際的系統(tǒng),為了得到最佳的存儲(chǔ)空間和性能,還需要科學(xué)地判斷是把一部分功能做到軟件中,還是添加一個(gè)專用的加速器來(lái)實(shí)現(xiàn)它?!坝腥さ囊稽c(diǎn)是,當(dāng)你的系統(tǒng)里有嵌入式 FPGA 時(shí),你可以做實(shí)驗(yàn)確定分工。在 ASIC 世界里,當(dāng)你開(kāi)始流片時(shí),所有的事情都確定下來(lái)了?!彼f(shuō)?!暗窃谇度胧?FPGA 世界中,你確實(shí)需要理解把一些功能移到硬件中會(huì)怎樣幫助提升性能等等。有些事情可以試來(lái)試去,而且有一些虛擬平臺(tái)幫助確定在哪里添加 TLM 模型。FPGA 供應(yīng)商會(huì)提供一些高級(jí)綜合工具,允許工程師訪問(wèn)具體的 block。 另一個(gè)有趣的概念是使用 OpenCL 編程?!?/p>
更多有關(guān)嵌入式 FPGA 的資訊,歡迎訪問(wèn) 與非網(wǎng)嵌入式 FPGA 專區(qū)
與非網(wǎng)編譯內(nèi)容,未經(jīng)許可,不得轉(zhuǎn)載!