隨著時(shí)間的推移,該行業(yè)已轉(zhuǎn)向虛擬化功能和軟件定義網(wǎng)絡(luò) (SDN),以便在數(shù)據(jù)中心和網(wǎng)絡(luò)中的各種硬件平臺(tái)上實(shí)現(xiàn)靈活部署。軟件現(xiàn)在必須能夠跨多個(gè)軟件和硬件環(huán)境進(jìn)行轉(zhuǎn)移,以既具有成本效益又提供所需的靈活性以滿足一系列不斷變化的性能需求。
Open vSwitch (OVS) 是一個(gè)高級功能的例子,它曾經(jīng)是硬件,但通過虛擬化交換功能帶來了部署的靈活性。在此過程中,一些更適合硬件的功能(如數(shù)據(jù)包解析和分類)已成為瓶頸。尋找使用硬件加速這些虛擬功能同時(shí)保持部署靈活性的方法可以大大提高吞吐量并減少延遲。
帶有 FPGA 或?qū)S?a target="_blank">芯片的 SmartNIC 正在成為一種硬件和軟件混合的解決方案。為了與軟件功能一起發(fā)揮作用,關(guān)鍵的硬件功能必須虛擬化。
目前在使用 FPGA 加速虛擬環(huán)境時(shí)存在幾個(gè)挑戰(zhàn),主要?dú)w因于存儲(chǔ)容量、內(nèi)存的聚合隨機(jī)訪問性能和內(nèi)存訪問延遲:
第一個(gè)挑戰(zhàn)在于難以支持需要大量內(nèi)存并且需要以真正隨機(jī)訪問模式訪問的系統(tǒng)。即使現(xiàn)在的 FPGA 支持更大的芯片資源,甚至那些支持高帶寬內(nèi)存 (HBM) 的 FPGA,問題也變成了需要多少這些資源來支持高速隨機(jī)訪問要求。甚至還有第三種常見情況,即使用片外 QDR SRAM 來增加片上資源,它使用許多 I/O 資源來實(shí)現(xiàn)相對較低的密度。問題是,如何僅使用一個(gè)設(shè)備替換多個(gè)具有相同或更多內(nèi)存的 QDR 設(shè)備?
第二個(gè)挑戰(zhàn)可以概括為投資利用率或可移植性。許多需要數(shù)據(jù)包分類或 DPI 等功能的 最終用戶客戶在軟件方面投入了大量的開發(fā)工作。如果這些客戶需要中期性能提升或擴(kuò)大產(chǎn)品供應(yīng)范圍,除了可能重新設(shè)計(jì)相關(guān)硬件外,還需要大量的軟件返工。
虛擬加速器引擎方法
虛擬加速器引擎 (VAE) 方法允許用戶設(shè)計(jì) API 和 RTL 模塊接口,將軟件和系統(tǒng)設(shè)計(jì)的其余部分與底層實(shí)現(xiàn)隔離開來。這可以升級以支持性能提升,同時(shí)節(jié)省軟件開發(fā)和調(diào)試的工作量。此外,虛擬加速器方法在 OVS 等分層解決方案中表現(xiàn)良好,這些解決方案具有“回退”到較慢路徑的快速路徑,所有這些都使用相同的編程模型來管理表。
目前,有多種方法可以加速基于 FPGA 的設(shè)計(jì)。當(dāng)客戶特別基于 FPGA 設(shè)計(jì)系統(tǒng)時(shí),有兩種方法可以解決最常見的瓶頸挑戰(zhàn)。
該策略一直是定義一個(gè)通用 API 函數(shù)接口,該接口由一系列具有可擴(kuò)展性能的硬件環(huán)境支持。由于 API 有不同的性能規(guī)格可供選擇,因此不必知道硬件是什么。因此,從本質(zhì)上講,它本質(zhì)上是一種虛擬硬件解決方案。
在這里,硬件不會(huì)驅(qū)動(dòng)軟件決策。定義了軟件性能,選擇了硬件環(huán)境。因此:軟件定義,硬件加速。
由于軟件系統(tǒng)設(shè)計(jì)是在 API 級別使用未選擇的硬件環(huán)境執(zhí)行的,因此這些解決方案稱為虛擬加速器引擎。這允許系統(tǒng)在一系列硬件平臺(tái)選項(xiàng)上執(zhí)行這個(gè)軟件定義的功能,每個(gè)選項(xiàng)都可以提供不同的性能點(diǎn)。
虛擬加速器引擎的主要優(yōu)勢在于需要通過使用通用 API 來保護(hù)軟件投資的應(yīng)用程序,以便在許多不同的硬件環(huán)境中實(shí)現(xiàn)可傳輸性或性能擴(kuò)展。通過設(shè)計(jì)通用 API,系統(tǒng)設(shè)計(jì)人員可以將其無縫移植到一系列性能平臺(tái)上。
可能的 VAE 平臺(tái)
下圖描述了 VAE 的可擴(kuò)展硬件環(huán)境,該環(huán)境將執(zhí)行通用 API 和模塊接口。通過從低端、更具成本效益的硬件環(huán)境遷移到性能驅(qū)動(dòng)、硬件定義的系統(tǒng),一個(gè)常見的應(yīng)用程序可以體驗(yàn)高達(dá) 400 倍的性能提升。每個(gè)的基本性能取決于底層內(nèi)存在總的聚合隨機(jī)讀取和寫入方面的能力。
這種靈活性允許系統(tǒng)設(shè)計(jì)人員選擇實(shí)施適當(dāng)?shù)?VAE 平臺(tái)來實(shí)現(xiàn)所需的系統(tǒng)性能。
許多市場正在轉(zhuǎn)向軟件可移植的世界。雖然這在云計(jì)算中很常見,但在較低級別的系統(tǒng)功能中并不常見。
虛擬加速器引擎:軟件 + 固件 + 硬件
虛擬加速器引擎被定義為在系統(tǒng)功能級別提供縮放加速。通用 API 與硬件無關(guān)。它可以在未連接到專用 IC 的 CPU 或 FPGA 或連接到加速器 IC 的 FPGA 上運(yùn)行,例如 MoSys 加速器 IC 系列,包括帶寬引擎或具有內(nèi)存計(jì)算能力的可編程超高速引擎。
虛擬加速器引擎旨在支持諸如“數(shù)據(jù)包分類”之類的功能平臺(tái)。它是“虛擬的”,因?yàn)樗且环N抽象功能,可以是獨(dú)立軟件、FPGA RTL 或基于嵌入式固件的。
使用 MoSys 的通用軟件接口 (API) 和跨多個(gè)硬件環(huán)境的 RTL 模塊接口,系統(tǒng)設(shè)計(jì)人員可以重用內(nèi)部開發(fā)的軟件代碼來調(diào)整所需的性能。此外,所有基于 FPGA 的 VAE 都使用允許硬件可移植性的通用 RTL。具有通用 API 的 VAE 可以在 CPU 或通用 RTL 模塊接口上運(yùn)行,其中 FGPA 未連接到 MoSys IC 或 FPGA 連接到 MoSys 加速器引擎 IC。
軟件定義系統(tǒng)的時(shí)代
隨著軟件可移植性的發(fā)展,不僅在云中而且在獨(dú)立系統(tǒng)中,設(shè)計(jì)人員需要快速進(jìn)入具有不同性能/價(jià)格點(diǎn)的新系統(tǒng)設(shè)計(jì)。這就要求系統(tǒng)設(shè)計(jì)人員將應(yīng)用程序放入具有不同性能級別的硬件環(huán)境中,從而針對每個(gè)平臺(tái)進(jìn)行設(shè)計(jì)。
VAE 允許工程師在系統(tǒng)/應(yīng)用程序級別進(jìn)行思考,而無需擔(dān)心“我的硬件做什么?” 借助“功能平臺(tái)”,這些工程師可以先開發(fā)軟件定義的系統(tǒng),然后再從一系列性能環(huán)境中選擇硬件。
審核編輯:郭婷
-
FPGA
+關(guān)注
關(guān)注
1630文章
21779瀏覽量
604904 -
cpu
+關(guān)注
關(guān)注
68文章
10896瀏覽量
212520 -
接口
+關(guān)注
關(guān)注
33文章
8677瀏覽量
151593
發(fā)布評論請先 登錄
相關(guān)推薦
評論