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