自從賽靈思在上世紀(jì) 80 年代初期開發(fā)和推出世界首款 FPGA 后,這些用途豐富的可編程邏輯器件就成為硬件工程師的 MacGyver 萬能工具。賽靈思最近發(fā)布了SDx系列開發(fā)環(huán)境(即 SDAccel、SDSoC 和 SDNet),使軟件開發(fā)人員和系統(tǒng)工程師(非 FPGA 設(shè)計人員)能夠利用賽靈思器件輕松創(chuàng)建自己的定制化軟件定義硬件,從而助力更多創(chuàng)意頭腦實現(xiàn)非凡的創(chuàng)新技術(shù)。
介紹這些新型環(huán)境以及賽靈思及其聯(lián)盟成員提供的其他軟件開發(fā)資源之前,我們先來思量一下處理架構(gòu)的演變及其對軟件開發(fā)的影響。
這是軟件問題...
2000 年以前,典型的微處理器主要由一個帶有板載內(nèi)存的巨型單片處理器內(nèi)核和一些其他零部件組成,使 MPU 成為一種用以開發(fā)新一代應(yīng)用的相對簡單直觀的平臺。在那之前的三十年里,微處理器廠商每隔 22 個月就會以摩爾定律的增長速度推出具有更高容量和性能的器件。他們會簡單地以增加時鐘速率的方式來提高性能。當(dāng)時速度最快的單片 MPU 是英特爾奔騰4處理器 (Pentium 4 Pro),其極限速度剛剛超過 4GHz。這種演進對于開發(fā)人員來說非常重要,因為隨著每代產(chǎn)品的推出,他們的程序會變得日趨復(fù)雜,能執(zhí)行更細化的功能,而且程序運行速度更快。
圖 1:Zynq UltraScale+ MPSoC
但在 21 世紀(jì)初期,半導(dǎo)體行業(yè)改變了游戲規(guī)則,迫使開發(fā)人員根據(jù)一套新的規(guī)則進行調(diào)整。這種轉(zhuǎn)變起始于人們意識到了如果 MPU 產(chǎn)業(yè)繼續(xù)在新的單片 MPU 架構(gòu)中提高時鐘速率,那么鑒于芯片工藝技術(shù)的發(fā)展路線圖以及日趨惡化的晶體管漏電流問題,MPU 將很快達到與太陽相同的功率密度。
正因為如此,MPU 產(chǎn)業(yè)快速向同質(zhì)多處理架構(gòu)轉(zhuǎn)型;在這種同質(zhì)多處理架構(gòu)中,計算任務(wù)被分配給多個以較低時鐘速率運行的小型內(nèi)核。新的處理模型讓 MPU 和半導(dǎo)體廠商能夠繼續(xù)生產(chǎn)新一代容量更高的器件,并將更多功能集成到單個芯片中以獲得更高性能。然而,現(xiàn)有程序無法利用新型分布式架構(gòu),因此軟件開發(fā)人員必須想辦法開發(fā)出能夠跨多個處理器內(nèi)核高效運行的程序。
SDAccel 環(huán)境包括一個快速的架構(gòu)優(yōu)化編譯器,能高效利用片上 FPGA 資源。
同時,后來的幾代芯片工藝技術(shù)繼續(xù)使晶體管數(shù)量成倍增長,讓半導(dǎo)體公司能夠采取另一個創(chuàng)新舉措,即將不同類型的內(nèi)核集成到同一顆芯片中,創(chuàng)建出 SoC。這些異構(gòu)多處理器架構(gòu)給嵌入式軟件開發(fā)人員提出了更多挑戰(zhàn),使軟件開發(fā)人員不得不開發(fā)定制軟件協(xié)議棧,讓應(yīng)用能夠在目標(biāo)系統(tǒng)上實現(xiàn)最佳運行。
如今,半導(dǎo)體行業(yè)又一次改變游戲規(guī)則,但這次軟件開發(fā)人員則對轉(zhuǎn)變持歡迎態(tài)度。面對另一個功耗窘境,半導(dǎo)體和系統(tǒng)公司正在將目光轉(zhuǎn)向由 FPGA 加速的異構(gòu)處理架構(gòu)。這種架構(gòu)將 MPU 與 FPGA 緊密配合在一起,能以最小的功耗成本提高系統(tǒng)性能。這種新興架構(gòu)最顯著的應(yīng)用是用于新型數(shù)據(jù)中心處理架構(gòu)中。在一篇現(xiàn)在著名的論文中,微軟研究人員展示了在架構(gòu)上將 MPU 與 FPGA 組合在一起能實現(xiàn) 90% 的性能提升,同時功耗僅僅增加 10%,在單位功耗性能方面遠遠優(yōu)于 MPU 與高功耗 GPU 相結(jié)合而實現(xiàn)的架構(gòu)。
通過 FPGA 加速的異構(gòu)多處理架構(gòu)的優(yōu)勢已經(jīng)超出了數(shù)據(jù)中心應(yīng)用范疇。賽靈思 Zynq-7000 All Programmable SoC 器件在單芯片上完美集成了 ARM 處理器和可編程邏輯,讓采用該器件的嵌入式系統(tǒng)受益良多。使用即將推出的 Zynq UltraScale+ MPSoC 的系統(tǒng)注定將會更加出色。Zynq UltraScale+ MPSoC 在單個器件中集成了多個 ARM 內(nèi)核(4 個 Cortex-A53 應(yīng)用處理器、2 個 Cortex-R5 實時處理器和 1 個 Mali-400MP GPU)、可編程邏輯、多級安全、更高安全性以及高級電源管理模塊(如圖 1 所示)。
不過,要讓這些 FPGA 加速的異構(gòu)架構(gòu)適合大規(guī)模部署并方便軟件開發(fā)人員使用,F(xiàn)PGA廠商必須開發(fā)新的環(huán)境。在這方面,賽靈思提供了三個開發(fā)平臺:針對數(shù)據(jù)中心開發(fā)人員的 SDAccel、針對嵌入式系統(tǒng)開發(fā)人員的 SDSoC,以及針對網(wǎng)絡(luò)線卡架構(gòu)師和開發(fā)人員的 SDNet。這些賽靈思新環(huán)境讓開發(fā)人員能夠輕松將代碼的緩慢部分放在可編程邏輯上編程以加速程序,從而創(chuàng)建出最佳系統(tǒng)。
面向 OpenCL、C/C++ 的 SDAccel 通過編程實現(xiàn) FPGA 加速處理
最新的賽靈思 SDAccel 開發(fā)環(huán)境為數(shù)據(jù)中心應(yīng)用開發(fā)人員提供一套基于 FPGA 的完整軟硬件解決方案(圖 2)。SDAccel 環(huán)境包含一個能有效利用片上 FPGA 資源的快速的架構(gòu)優(yōu)化編譯器。該環(huán)境為開發(fā)人員提供類似于 CPU/GPU 的熟悉的工作環(huán)境和軟件開發(fā)流程,并具有一個用于代碼開發(fā)、特性分析與調(diào)試的基于 Eclipse 的集成設(shè)計環(huán)境 (IDE)。利用該環(huán)境,開發(fā)人員可以創(chuàng)建針對不同數(shù)據(jù)中心應(yīng)用可即時換入換出而優(yōu)化的動態(tài)重配置加速器, 可即時換入換出。開發(fā)人員可使用該環(huán)境創(chuàng)建諸多應(yīng)用,這些應(yīng)用能在運行時間內(nèi)將眾多內(nèi)核換入和換出 FPGA,且不會干擾服務(wù)器 CPU 與 FPGA 之間的接口連接,從而實現(xiàn)不間斷的應(yīng)用加速。SDAccel 環(huán)境針對的是基于 x86 服務(wù)器處理器的主機系統(tǒng),并提供現(xiàn)成商用插電式 PCIe 卡,以增加 FPGA 功能。
憑借 SDAccel 環(huán)境,開發(fā)人員即使先前沒有 FPGA 經(jīng)驗也能使用 SDAccel 似曾相識的工作流程來優(yōu)化他們的應(yīng)用,并充分發(fā)揮 FPGA 平臺作用。該 IDE 提供編碼模板和軟件庫,并可用來針對所有開發(fā)目標(biāo)進行編譯、調(diào)試和特性分析,包括 x86 上的仿真、使用快速仿真進行性能驗證,以及 FPGA 處理器上本地執(zhí)行。該開發(fā)環(huán)境在面向數(shù)據(jù)中心的 FPGA 平臺上執(zhí)行應(yīng)用,而且能自動插入工具以實現(xiàn)所有開發(fā)目標(biāo)。賽靈思設(shè)計的 SDAccel 環(huán)境能夠讓 CPU 和 GPU 開發(fā)人員輕松將應(yīng)用遷移到 FPGA 上,同時在熟悉的工作流程中維護和重用 OpenCL、C 和 C++ 代碼。
圖 2: 面向 OpenCL、C 和 C++ 的 SDAccel 開發(fā)環(huán)境可將單位功耗性能提高 25 倍,利用 FPGA 實現(xiàn)數(shù)據(jù)中心應(yīng)用加速。
SDAccel 庫對于 SDAccel 環(huán)境能實現(xiàn)類似于 CPU/GPU 的開發(fā)體驗起到了重大作用。SDAccel 庫包含低級數(shù)學(xué)庫以及生產(chǎn)力更高的庫(如 BLAS、OpenCV 和 DSP 庫)。這些庫用 C++(而非 RTL)編寫而成,因此開發(fā)人員可在所有開發(fā)和調(diào)試階段完全按所編寫的內(nèi)容來使用它們。在項目早期,所有開發(fā)工作都在 CPU 主機上完成。因為 SDAccel 庫用 C++ 編寫,所以它們能夠與 CPU 目標(biāo)(創(chuàng)建一個虛擬原型)的應(yīng)用代碼一起編譯,從而允許所有測試、調(diào)試和初始特性分析在主機上進行。這個階段無需 FPGA。
SDSOC 支持 ZYNQ SOC 和 MPSOC 系統(tǒng)的嵌入式開發(fā)
賽靈思為嵌入式系統(tǒng)開發(fā)人員設(shè)計了 SDSoC 開發(fā)環(huán)境,用以針對賽靈思 Zynq SoC和即將推出的 Zynq UltraScale+ MPSoC 進行編程。SDSoC 環(huán)境提供極大簡化的嵌入式C/C++ 應(yīng)用編程體驗,包括一個可在裸機或操作系統(tǒng)(例如 Linux 和 FreeRTOS)上運行的簡單易用的 Eclipse IDE。該環(huán)境是一種用于異構(gòu) Zynq SoC 和 Zynq MPSoC 平臺部署的綜合而全面的開發(fā)平臺(圖 3)。SDSoC 環(huán)境還配套提供業(yè)界首款 C/C++ 全系統(tǒng)優(yōu)化編譯器,支持系統(tǒng)級特性分析、可編程邏輯中的自動軟件加速、自動系統(tǒng)連接生成,以及可加快編程速度的多種庫。該環(huán)境還為客戶和第三方平臺開發(fā)人員提供開發(fā)流程,以使平臺能夠在 SDSoC 開發(fā)環(huán)境中使用。
圖 3: SDSoC 開發(fā)環(huán)境提供熟悉的嵌入式 C/C++ 應(yīng)用開發(fā)體驗,包括簡單易用的 Eclipse IDE 和綜合而全面的設(shè)計環(huán)境,以實現(xiàn)異構(gòu) Zynq All Programmable SoC 和 MPSoC 部署。
SDSoC 為 ZC702 和 ZC706 等 Zynq All Programmable SoC 開發(fā)板,以及包括 ZedBoard、MicroZed、ZYBO 和視頻與成像開發(fā)套件等在內(nèi)的第三方和市場專用平臺提供板支持包 (BSP)。BSP 包含能夠從軟件開發(fā)人員和系統(tǒng)架構(gòu)師的代碼中將平臺抽象出來的元數(shù)據(jù),以簡化智能異構(gòu)系統(tǒng)的創(chuàng)建、集成和驗證。
SDNET 支持 FPGA 加速線卡的設(shè)計和編程
SDNet 是一種軟件定義規(guī)范環(huán)境,它使用直觀的類似于 C 的高級語言來設(shè)計要求并創(chuàng)建網(wǎng)絡(luò)線卡規(guī)范(圖 4)。該環(huán)境使網(wǎng)絡(luò)架構(gòu)師和開發(fā)人員能夠創(chuàng)建“軟”定義網(wǎng)絡(luò),將可編程性和智能化從控制層擴展到數(shù)據(jù)層。
傳統(tǒng)的軟件定義網(wǎng)絡(luò)架構(gòu)采用固定的數(shù)據(jù)層硬件,通過狹窄的南向 API 連接到控制層,而軟定義網(wǎng)絡(luò)則不然,其基于可編程數(shù)據(jù)層,具有內(nèi)容智能功能和寬泛的北向 API 控制層連接。這樣能實現(xiàn)多種突破性的功能,包括: 支持獨立的線速服務(wù),避免各種協(xié)議的復(fù)雜性;提供以流程為單位的靈活服務(wù);支持革命性的創(chuàng)新型“無損業(yè)務(wù)”升級,同時以 100% 的線路速率運行。
圖4: SDNet 環(huán)境使網(wǎng)絡(luò)架構(gòu)師能以類似于 C 的語言創(chuàng)建規(guī)范。硬件團隊完成設(shè)計后,開發(fā)人員可使用 SDNet 現(xiàn)場為線卡升級或添加協(xié)議。
這些獨特的功能使運營商和多業(yè)務(wù)系統(tǒng)運營商 (MSO) 能夠動態(tài)提供差異化服務(wù),且不會對現(xiàn)有服務(wù)造成任何中斷,也不需要硬件質(zhì)量認(rèn)證或進行上門服務(wù)。該環(huán)境的動態(tài)服務(wù)提供功能使服務(wù)提供商能夠增加營收并加快服務(wù)上市速度,同時降低資本支出和運營支出。網(wǎng)絡(luò)設(shè)備供應(yīng)商意識到同樣能夠通過 SDNet 平臺獲得相同的優(yōu)勢,使他們能夠通過部署 SDNet 環(huán)境編程的內(nèi)容感知式數(shù)據(jù)層硬件,實現(xiàn)更大的差異化。
MathWorks 和賽靈思技術(shù)的這種組合幫助公司客戶打造出眾多創(chuàng)新產(chǎn)品。
嵌入式開發(fā)環(huán)境
為了進一步幫助嵌入式軟件工程師進行編程,賽靈思提供全套嵌入式工具和運行時間環(huán)境,以幫助嵌入式軟件開發(fā)人員從概念到生產(chǎn)高效編程。賽靈思為開發(fā)人員提供一個名為賽靈思軟件開發(fā)套件 (SDK) 的基于 Eclipse 的 IDE,其中包含編輯器、編譯器、調(diào)試器、驅(qū)動程序和多種庫,針對的是 Zynq SoC 或含有賽靈思 32 位 MicroBlaze 軟核的 FPGA。該環(huán)境開箱即用并支持多種高級功能,例如構(gòu)建在賽靈思獨特 Zynq SoC 和 MPSoC 之上的安全和虛擬化軟件驅(qū)動程序。這讓開發(fā)人員可以構(gòu)建智能、安全的真正差異化的連接系統(tǒng)。
賽靈思提供全套開源資源,可用以開發(fā)、引導(dǎo)、運行、調(diào)試和維護在賽靈思 SoC或仿真平臺上運行的 Linux 應(yīng)用。賽靈思提供實例應(yīng)用、內(nèi)核構(gòu)建、Yocto 方法、多處理與實時解決方案、驅(qū)動程序和論壇,以及社區(qū)鏈接。Linux 開源開發(fā)人員會找到一個非常舒適的環(huán)境,在其中進行學(xué)習(xí)和開發(fā),并與其他具有相同興趣和需求的用戶互動交流。
不斷壯大的強大編程環(huán)境聯(lián)盟
除了為開發(fā)人員提供新的 SDx 開發(fā)環(huán)境和 SDK 以外,賽靈思還在過去十年中與很多已經(jīng)具有完善開發(fā)環(huán)境的公司組建了強大的聯(lián)盟,這些開發(fā)環(huán)境都在特定的細分市場為開發(fā)人員服務(wù)。
美國國家儀器公司 (NI)(美國德克薩斯州 Austin)提供的硬件開發(fā)平臺倍受控制和測試系統(tǒng)創(chuàng)新人員青睞。賽靈思的 FPGA 和 Zynq SoC 則為 NI RIO 平臺注入動力。NI 的 LabVIEW 開發(fā)環(huán)境是一款用戶友好型圖形化程序,可以運行賽靈思的 Vivado Design Suite,這樣 NI 的客戶就無需知道任何 FPGA 設(shè)計細節(jié),有些客戶或許都不知道賽靈思器件位于 RIO 平臺的核心。但他們可在 LabVIEW 環(huán)境中對系統(tǒng)簡單編程,并讓 NI 的硬件為他們所開發(fā)的設(shè)計實現(xiàn)進行性能加速。
MathWorks(美國馬薩諸塞州 Natick)在十多年前就在其 MATLAB、Simulink、HDL Coder 和 Embedded Coder 中提供了 FPGA 支持,賽靈思的 ISE 和 Vivado 工具可在其中全自動運行。這樣,用戶(主要是數(shù)學(xué)專業(yè)的算法開發(fā)人員)就可以在開發(fā)算法時簡便地在 FPGA 架構(gòu)上運行算法,并顯著提升算法性能。
賽靈思在十多年前為其 ISE 開發(fā)環(huán)境添加了名為 System Generator 的 FPGA 架構(gòu)級工具,最近,又將該工具添加到 Vivado Design Suite 中,以便讓具有 FPGA 知識背景的團隊能夠?qū)υO(shè)計進行調(diào)整,以進一步提升算法性能。MathWorks 和賽靈思技術(shù)的這種組合幫助公司客戶打造出出眾多創(chuàng)新產(chǎn)品。
ARM、勞特巴赫有限公司 (Lauterbach)、日本橫河數(shù)字計算機公司 (Yokogawa Digital Computer Corp) 和京都微機集團 (Kyoto Microcomputer Corp) 等眾多賽靈思聯(lián)盟成員可提供支持 SDx 和 Alliance 環(huán)境的開發(fā)工具。在 OS 和中間件支持方面,賽靈思以及聯(lián)盟成員為客戶提供多種軟件選擇,諸如 Linux、RTOS、裸機,甚至包括管理程序和支持 Trust-Zone 內(nèi)核的解決方案,滿足保密性和安全性需求。
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618663 -
半導(dǎo)體
+關(guān)注
關(guān)注
335文章
28919瀏覽量
238169 -
芯片工藝
+關(guān)注
關(guān)注
0文章
13瀏覽量
7253
發(fā)布評論請先 登錄
電子萬能試驗機與液壓萬能試驗機的區(qū)別
如何成為一名電源設(shè)計師
萬能遙控器設(shè)置方法_萬能遙控器代碼

KMS8_V3.1oem系統(tǒng)的萬能激活工具
WIFI萬能鑰匙的安全性研究
NI License Activator1.2萬能工具應(yīng)用程序下載包

評論