利用FPGA虛擬化突破時空限制
在傳統(tǒng)的FPGA開發(fā)模型中,使用者通常使用硬件描述語言(HDL)對應用場景進行建模,然后通過特定的FPGA開發(fā)工具將硬件模型映射到FPGA上,最終生成可以運行的FPGA映像。
這種開發(fā)模式的另外一個主要缺點是,F(xiàn)PGA只能由單一用戶開發(fā)和使用,而與應用場景、FPGA的產(chǎn)品種類等無關。比如對于一個對資源需求不大、而且不需要連續(xù)運行的應用而言,大部分FPGA的硬件資源在大部分時間內(nèi)都會閑置。很顯然,這樣很難在時空范圍內(nèi)對FPGA進行充分利用,見下圖。
為了提高FPGA的開發(fā)效率、更好的利用FPGA的邏輯資源、方便FPGA的大規(guī)模部署和應用,需要將FPGA進行一定程度的邏輯抽象,使頂層用戶不必太多關注于FPGA硬件邏輯的實現(xiàn)方式與細節(jié)。由此,F(xiàn)PGA虛擬化技術就應運而生。
可以說,F(xiàn)PGA虛擬化技術打破了時間和空間維度的限制,使用戶能夠輕松的在不同時間,對多個FPGA的各類資源進行充分的調(diào)度與使用,見上圖。
FPGA虛擬化技術目前仍在發(fā)展初期,是工業(yè)界和學術界研究的熱點。在本文中將介紹三種主流的FPGA虛擬化技術的實現(xiàn)方法:
FPGA Overlay
部分重構與虛擬化管理器
FPGA資源池與虛擬化框架
FPGA Overlay
Overlay本意是覆蓋或疊加,它在網(wǎng)絡技術里是一種構建虛擬邏輯網(wǎng)絡的方法。它的實現(xiàn)方法通常是在物理網(wǎng)絡架構的基礎上,增加一層虛擬的網(wǎng)絡平面,使得上層應用與底層物理網(wǎng)絡相分離。這個虛擬的網(wǎng)絡平面本質(zhì)上可以通過隧道封裝技術實現(xiàn),在數(shù)據(jù)中心網(wǎng)絡中常用的VxLAN就是Overlay的主流標準之一。
Overlay中增加虛擬層次的方法與本章開頭給出的FPGA虛擬化方法非常類似。事實上,F(xiàn)PGA Overlay可以說是目前應用最廣泛的FPGA虛擬化方法之一。和網(wǎng)絡技術相似,F(xiàn)PGA Overlay是一層位于FPGA硬件層之上,并連接頂層應用的虛擬可編程架構,如下圖所示。
Overlay的具體實現(xiàn)形式有很多種,它既可以是工程中常用的軟核通用處理器,也可以是一組支持更高級編程模型的可編程邏輯處理單元,稱為CGRA(Coarse-Grained Reconfigurable Array),或者是一些實現(xiàn)特定功能的專用處理器,如Virtual Box公司開發(fā)的針對加速向量計算的向量處理器(Vector Processor)等等。
使用Overlay的主要目的是為上層用戶提供一個他們更為熟悉的編程架構與接口,便于他們通過諸如C語言等高層語言對Overlay中的通用處理器等進行編程,而不需擔心具體的硬件電路實現(xiàn),由此實現(xiàn)了對FPGA底層硬件資源的抽象和虛擬化。
另外,由于Overlay層提供的邏輯處理單元或軟核處理器通常與底層FPGA硬件無關,因此方便了上層設計在不同F(xiàn)PGA架構之間的移植。
使用Overlay的另外一個好處是可以在很大程度上縮短FPGA的編譯時間。相比通常只有幾分鐘的軟件編譯時間,F(xiàn)PGA的編譯需要經(jīng)過邏輯綜合、映射、布局布線等多項步驟,對于一個中等規(guī)模的FPGA設計而言,整個編譯過程通常會長達幾個小時之久。由于Overlay層的邏輯架構相對固定,因此可以由Overlay的提供者提前進行全部或部分編譯。用戶在使用時,就只需編譯自己編寫的邏輯部分即可,這樣大大縮短了整體的開發(fā)時間,也方便對應用進行調(diào)試和修改。
Overlay技術與高層次綜合(High-Level Synthesis,簡稱HLS)技術的主要區(qū)別在于,前者引入的Overlay層往往并不能完全隱藏底層的FPGA結構,由此可能帶來額外的開發(fā)難度和成本。這通常體現(xiàn)在兩個方面:
第一,Overlay層往往不能實現(xiàn)上層用戶的全部邏輯。例如,使用軟核處理器時,通常用它們進行數(shù)據(jù)通路和邏輯的控制,此時仍然需要專門的硬件工程師開發(fā)數(shù)據(jù)通路的部分。
第二,Overlay還沒有一個業(yè)界統(tǒng)一的標準化開發(fā)模型。如果在Overlay中使用專門的處理器陣列或CGRA,由于目前并沒有一個類似在HLS中采用的通用標準,那么就需要軟件工程師提前學習和掌握所用的CGRA的編程模型,也需要有硬件工程師團隊負責在FPGA中實現(xiàn)和優(yōu)化Overlay層中的CRGA硬件電路。
部分可重構與虛擬化管理器
部分可重構(Partial Reconfiguration)是FPGA的主要特點之一,它體現(xiàn)了FPGA特有的靈活性。具體來說,部分可重構是指,可以將FPGA內(nèi)部劃分出一個或多個區(qū)域,并在FPGA運行過程中單獨對這些區(qū)域進行編程和配置,以改變區(qū)域內(nèi)電路的邏輯,但并不影響FPGA其他電路的正常運行。
部分可重構使得FPGA可以在時間和空間兩個維度,由硬件直接進行多任務的切換,如下圖所示。
利用部分可重構技術,可以將FPGA劃分成若干個子區(qū)域,作為虛擬FPGA供單個或多個用戶使用,同時保留一部分邏輯資源作為不可重配置區(qū)域,用來實現(xiàn)必要的基礎架構,如內(nèi)存管理與網(wǎng)絡通信等。
一個典型的例子是微軟的Catapult項目。在他們2014年ISCA會議上發(fā)表的文章中介紹,每個FPGA都在邏輯上被劃分成“Role”和“Shell”兩部分,如下圖所示。
其中,Role為可重構的邏輯單元,可以根據(jù)不同用戶應用進行編程和配置;Shell為不可重配置區(qū)域,包含了不同應用都可能需要的基礎架構,比如DRAM控制器、高速串行收發(fā)器、負責與主機通信的PCIe模塊與DMA、控制重構的Flash讀寫模塊,以及其他各種I/O接口等等。
在這篇文章中,微軟在其數(shù)據(jù)中心的1632臺服務器中部署了Intel的Stratix V系列FPGA,在Role部分對微軟必應(Bing)搜索引擎的文件排名運算進行了硬件加速,并達到了高達95%的吞吐量提升,同時功耗的增加不超過10%,總成本增加不超過30%。
另外一個基于FPGA部分可重構技術進行FPGA虛擬化的例子,是IBM的cloudFPGA項目。在它2015年發(fā)表的文章中,F(xiàn)PGA被劃分成三部分:管理層(Management Layer)、網(wǎng)絡服務層(Network Service Layer)以及虛擬FPGA層(vFPGA),如下圖所示。
其中,vFPGA本質(zhì)上就是一個或多個可以動態(tài)重構的FPGA區(qū)域,它們可以共同屬于一個用戶,或分屬多個用戶,運行著相同或不同的應用。
在一個vFPGA進行動態(tài)重構時,其他vFPGA的運行不會受到影響。管理層是不可被用戶配置的區(qū)域,主要負責對這些vFPGA進行內(nèi)存的分配和管理。vFPGA和管理層類似于傳統(tǒng)虛擬化架構中虛擬機和Hypervisor的關系。網(wǎng)絡服務層則主要負責控制多個vFPGA與數(shù)據(jù)中心網(wǎng)絡的通信,并在FPGA硬件上實現(xiàn)了L2-L4層網(wǎng)絡協(xié)議,供所有vFPGA使用。
為了通過部分重構技術進行FPGA虛擬化,通常都需要引入額外的管理層。與Hypervisor類似,管理層對虛擬后的FPGA進行各類資源的統(tǒng)一管理與調(diào)度,如Catapult項目中的Shell層,以及cloudFPGA項目中的Management層。
但是,管理層的引入勢必會占用原本可以用于應用邏輯的可編程資源,同時對系統(tǒng)的整體性能帶來負面影響。
另外,對FPGA強行劃分多個可重構區(qū)域,也可能會嚴重影響系統(tǒng)性能。比如,一旦劃分了可重構區(qū)域,就代表著其他應用邏輯不能使用該區(qū)域內(nèi)的硬件資源,這樣會嚴重影響編譯時布局布線的靈活度,導致某些時序路徑必須“繞道”,以避免這些可重構區(qū)域,從而造成過長的布線延時。另一方面,如果劃分了過少的可重構區(qū)域,就可能會造成FPGA資源的空置和浪費。
因此,如何優(yōu)化FPGA上可重構區(qū)域的劃分數(shù)目,以及針對動態(tài)重構進行布局布線工具的優(yōu)化設計,是當前學術界和工業(yè)界正在探索的問題。
FPGA資源池與虛擬化框架
為了實現(xiàn)多用戶的支持,與其在單一FPGA芯片上使用動態(tài)重構技術劃分多個可重構區(qū)域,也可以使用多個FPGA級聯(lián),使每個FPGA負責單個或少量用戶,并通過一個整體的虛擬化框架完成系統(tǒng)的集成與資源調(diào)度。同樣的,這個架構也可以支持單一個用戶同時需求多個FPGA的應用場景。這種多租戶的FPGA虛擬化架構通常需要軟硬件兩個層面的支持:
硬件層面,需要實現(xiàn)多FPGA互聯(lián),形成FPGA“資源池”,同時也要支持其他硬件結構,比如CPU、GPU,或者其他硬件加速器等。
軟件層面,需要有一個虛擬化框架,對用戶任務進行有效的FPGA部署。具體來說,就是對各類硬件資源進行分配調(diào)度,管理包括FPGA在內(nèi)的各個加速器之間的通信和數(shù)據(jù)傳輸,控制FPGA的連接方式,以及對FPGA進行動態(tài)重構和配置等等。
上文提到的微軟Catapult項目和IBM cloudFPGA項目都有各自的對多租戶的支持。比如,微軟在2016年MICRO會議上發(fā)表的論文提到,每個FPGA內(nèi)都集成了一個Elastic Router,多個用戶可配置模塊(Role)可以通過Elastic Router提供的虛擬通道與外界進行網(wǎng)絡通信,如下圖所示。
在更高層面,Catapult提出了一種“硬件即服務(Hardware-as-a-Service)”的使用模型,如下圖所示。
這個HaaS模型通過一個中心化的資源管理器(Resource Manager,RM),對數(shù)據(jù)中心里的FPGA資源進行統(tǒng)一管理和調(diào)度。每個FPGA資源池中,都有一個服務管理器(Service Manager,SM)通過API與RM進行通信。SM對整個資源池的FPGA進行管理,實現(xiàn)諸如FPGA負載均衡、互聯(lián)管理、故障處理等功能。
在cloudFPGA項目中,F(xiàn)PGA與CPU完全解耦,直接作為網(wǎng)絡設備接入數(shù)據(jù)中心網(wǎng)絡,并成為池化的硬件加速資源。同時,IBM提出了一個基于OpenStack的虛擬化框架和加速服務,使得用戶可以通過在FPGA中預先設定的management IP地址對FPGA資源池進行服務注冊、任務分配、FPGA配置以及使用。
在池化FPGA和虛擬化框架領域其他的代表性工作還有來自英國Maxeler公司開發(fā)的基于FPGA的數(shù)據(jù)流引擎(Dataflow Engine),及其一系列開發(fā)環(huán)境與框架。在傳統(tǒng)的基于CPU的計算架構中(見下圖),CPU通過讀取內(nèi)存中的指令和數(shù)據(jù)進行相應的計算,當前指令的計算結果會寫入內(nèi)存,并在讀取下一條指令和數(shù)據(jù),直到程序運行結束。
與之對應的,在基于數(shù)據(jù)流的架構中,只需在應用開始時從內(nèi)存中讀取數(shù)據(jù),隨后會在FPGA上進行數(shù)據(jù)流處理和計算,所有中間數(shù)據(jù)不會返回內(nèi)存,直到計算結束。這樣從根本上杜絕了訪存的性能瓶頸。多個數(shù)據(jù)流引擎的計算節(jié)點可以互聯(lián),并與x86 CPU、網(wǎng)絡單元、存儲單元等共同組成完整的計算集群,如下圖所示。
Maxeler還提供了一種類似于Java的編程語言,稱為MaxJ,用來對數(shù)據(jù)流圖進行描述和建模。然后通過對應的編譯器MaxCompiler,將數(shù)據(jù)流圖映射到底層的FPGA硬件平臺,從而對上層用戶虛擬化了底層電路邏輯的具體實現(xiàn)。
目前,這套數(shù)據(jù)流引擎架構已經(jīng)被用在多個高性能計算的應用場景,比如蒙特卡洛仿真、金融風險計算、科學計算,以及一些新興的應用場景,如卷積神經(jīng)網(wǎng)絡(CNN)的硬件加速等等。
在虛擬化框架協(xié)議方面的另一個主要工作是對MapReduce框架的FPGA支持。MapReduce是Google提出的針對大規(guī)模數(shù)據(jù)處理的并行計算框架,已被用于多種計算平臺和架構,如多核CPU、Xeon Phi和GPU等等。通過MapReduce框架,上層用戶只需要調(diào)用給定的軟件庫和API,而不需要知道底層的硬件結構。
MapReduce的核心即為map和reduce兩個函數(shù)的實現(xiàn),為了對MapReduce增加FPGA支持,可以首先設計map和reduce的FPGA硬件模塊以及對應的編程接口,然后通過MapReduce框架調(diào)用,這樣可以實現(xiàn)FPGA的分布式部署和配置。在這里,map和reduce的FPGA設計可以通過傳統(tǒng)的硬件描述語言(HDL)完成,也可以通過高層語言,如OpenCL等,并借助高層次綜合工具完成設計。
小結
與軟件虛擬化類似,F(xiàn)PGA虛擬化技術抽象了具體的FPGA體系結構與硬件資源,使得用戶能在更高的邏輯層級上利用FPGA進行應用的硬件加速。
上一篇:萊迪思半導體任命Sherri Luther為首席財務官
下一篇:小科普—什么是eFPGA
推薦閱讀
史海拾趣
近年來,隨著物聯(lián)網(wǎng)和大數(shù)據(jù)技術的快速發(fā)展,迪貝電子也積極探索將這些新技術應用于其產(chǎn)品中。公司推出了一系列智能氣體檢測和分析系統(tǒng),這些系統(tǒng)可以通過物聯(lián)網(wǎng)技術實現(xiàn)遠程監(jiān)控和數(shù)據(jù)傳輸,為用戶提供更加便捷、高效的服務。同時,迪貝電子還利用大數(shù)據(jù)技術對用戶的使用數(shù)據(jù)進行深度挖掘和分析,為產(chǎn)品的研發(fā)和優(yōu)化提供了有力的支持。這些創(chuàng)新舉措使得迪貝電子在氣體檢測及分析領域保持了領先地位,并為其未來的發(fā)展奠定了堅實的基礎。
CR Magnetics公司成立于1986年,自創(chuàng)立之初,公司便致力于提供高質(zhì)量的傳感器、傳感器組件等系列產(chǎn)品。憑借創(chuàng)始人的遠見卓識和團隊的共同努力,CR Magnetics很快在電子行業(yè)中嶄露頭角。公司總部位于美國密蘇里州圣路易斯市,擁有先進的生產(chǎn)設施和倉庫,為產(chǎn)品的研發(fā)和生產(chǎn)提供了堅實的基礎。
進入新世紀,ETA Electric Industry Co Ltd意識到技術創(chuàng)新是企業(yè)發(fā)展的關鍵。于是,公司開始加大研發(fā)投入,引進了一批高素質(zhì)的研發(fā)人員。他們專注于開發(fā)新型電子元器件,特別是在微型化、高性能方面取得了顯著成果。其中,他們研發(fā)的一種新型微型電容器,因其體積小、性能穩(wěn)定而廣受好評。這一技術創(chuàng)新不僅提升了公司的市場競爭力,還為公司贏得了更多的合作機會。
為了擴大市場份額,DYMO公司積極尋求與各大零售商和辦公用品供應商的合作。通過與這些合作伙伴建立緊密的合作關系,DYMO公司的產(chǎn)品得以更廣泛地進入市場,并被更多的消費者所熟知。此外,DYMO公司還積極開拓國際市場,將其產(chǎn)品銷往全球各地。
1985年,Cooper工業(yè)(后更名為庫柏工業(yè))收購了Bussmann公司,并成立了新的事業(yè)部——“Cooper Bussmann熔斷器”。這一收購為Bussmann帶來了更多的資源和市場機會,使其能夠進一步擴大生產(chǎn)規(guī)模,提升產(chǎn)品質(zhì)量,并加強在全球市場的布局。同時,Cooper工業(yè)的支持也幫助Bussmann鞏固了在電路保護領域的領先地位,并逐漸將其打造成為熔斷器電路保護及相關配件的最知名品牌。
北京人民電器廠有限公司,作為北方地區(qū)最大的低壓電器制造企業(yè),于1995年成功研發(fā)出全球首臺高分斷微型直流斷路器。這一創(chuàng)新成果不僅填補了國內(nèi)空白,更在國際上展現(xiàn)了中國在低壓電器領域的研發(fā)實力。該斷路器的誕生,標志著北京人民電器在直流斷路器技術領域邁出了堅實的一步,為后續(xù)的產(chǎn)品研發(fā)和市場拓展奠定了堅實的基礎。
學習嵌入式--選擇考研深造還是進入企業(yè)技術部工作學習? 本人為在校大學生,想請問各位, 想學好嵌入式是考研深造還是進入企業(yè)技術部邊工作邊學習? 就當前的社會形勢,那個各位實在? 請各位電子行業(yè)的前輩們指點迷津,分析分析當前高校關于嵌入式教學的情況 以及現(xiàn)在嵌入式行業(yè)的技術情形。 在此 ...… 查看全部問答∨ |
介紹 由于多種原因基于ARM的AT91的大多數(shù)應用代碼使用C語言編寫。然而,啟動順序要求初始化ARM處理器和嚴重依賴于寄存器結構的關鍵設備和內(nèi)存映射處理機,和存儲器重映射操作。由于這個原因,C啟動序列必須用匯編編寫。 這個應用筆記描述了一個AT ...… 查看全部問答∨ |
復合絕緣子憎水性帶電檢測儀 華北電力大學(北京) 國內(nèi)唯一一家010-60120676 13601208165 okgod123@126.com 于老師 填補我國復合絕緣子憎水性在線檢測領域空白的新型產(chǎn)品。結構簡單,操作方便,判斷 ...… 查看全部問答∨ |
昨天發(fā)工資,工資條上稅前工資漲了,結果實際收入?yún)s少了。媽的,一問HR,說以前公司避稅了,現(xiàn)在公司是正規(guī)企業(yè),全部要交稅了。操!… 查看全部問答∨ |
我?guī)臀遗笥褑栆粋€問題,希望大家能夠幫幫忙謝謝: 以下是她的問題: 她本專業(yè)學的是計算機的偏軟件,工作一年半,做的是硬件研發(fā),畫板子,寫程序都有.現(xiàn)在離職在讀工程碩士 最近要選方向 她 ...… 查看全部問答∨ |
我使用USART1模塊進行串口通訊,但調(diào)試的時候發(fā)現(xiàn)程序進不了中斷。 相關代碼: #include "msp430x14x.h" #define uchar unsigned char #define uint unsigned int #define URXD1 BIT7 #define UTXD1 BIT6 uchar dataSedBuffer[100]={ ...… 查看全部問答∨ |
由于本人轉(zhuǎn)行,不再從事WinCE開發(fā),這些書對我也無太大作用,近期還打算搬家,書籍攜帶不方便,決定將這些書籍轉(zhuǎn)讓給需要的人,讓其能發(fā)揮應有的作用。 本人愛護書籍,看書時也沒有筆畫的習慣,除了一本買的早翻的多,比較舊,其他都很新。 《Win ...… 查看全部問答∨ |
|
無條件恒流”轉(zhuǎn)變?yōu)椤坝袟l件恒流”的新型LED智能恒流驅(qū)動器 replyreload += \',\' + 765665;Timson,如果您要查看本帖隱藏內(nèi)容請回復… 查看全部問答∨ |
【FPGA讀書會】王金明_Verilog程序設計教程實例研讀,歡迎跟帖討論 學習FPGA的一個最簡單的方法,就是總結和研究別人設計的成果,并從中學到自己的需要的東西。從今日開始,我呼吁本壇(FPGA)XDJM靜下心來讀讀王金明_Verilog程序設計教程實例這本書,看看書中有那些金子能供我們撿到!   ...… 查看全部問答∨ |
- 復旦大學在集成電路領域獲關鍵突破!每秒存取25億次,史上最快!
- 星閃強勢入局,會給UWB與藍牙定位帶來哪些沖擊?
- 又兩款旗艦新車搭載星閃車鑰匙!誰在引爆這波汽車連接革命?
- 榜單首發(fā)!域控SerDes處于市場爆發(fā)周期,哪些供應商正在領跑市場
- 英特爾? 具身智能大小腦融合方案發(fā)布:構建具身智能落地新范式
- 車載UWB雷達技術:有哪些優(yōu)勢?
- 嵐圖開啟L3智駕:天元智能架構技術解讀
- 德州儀器如何通過7000多種車規(guī)芯片,引領汽車產(chǎn)業(yè)的創(chuàng)新
- 2025年上海國際車展技術前瞻 – 智駕安全(環(huán)境感知)
- 史上最嚴動力電池國標解讀:爆燃零容忍,倒逼廠家不打嘴炮真研發(fā)
- 揚杰科技2019年凈利增20%,碳化硅器件開發(fā)成功
- 超聲電子一季度凈利增11.22%,持續(xù)加碼新型特種印制電路
- 順絡電子Q1凈利同比增長12.6% 和潛在核心客戶合作持續(xù)深入
- 全球疫情下PCB行業(yè),應用市場折射出的危與機
- iQOO Neo3雙揚和HiFi一個都不少
- Nordic nRF52833 SOC可實現(xiàn)藍牙精確測向和智能手機連接
- 羅克韋爾自動化攜手百濟神州,共同研發(fā)創(chuàng)新抗癌藥品
- 羅克韋爾自動化攜手百濟神州,共同研發(fā)創(chuàng)新抗癌藥品
- STM32的庫如何實現(xiàn)對同一組IO口的一部分引腳進行讀寫
- STM32的GPIO口的8種配置模式