當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]可擴(kuò)展動(dòng)態(tài)重配置的新型FPGA平臺(tái)設(shè)計(jì)

新型 FPGA 平臺(tái)具有高度的靈活性和可擴(kuò)展性,且集成度高,能夠在單個(gè)或兩個(gè)芯片上集成一個(gè)完整的異構(gòu)動(dòng)態(tài)運(yùn)算系統(tǒng)。

  自適應(yīng)硬件在諸如導(dǎo)彈電子和軟件無(wú)線電等功耗和系統(tǒng)尺寸有限,同時(shí)對(duì)環(huán)境高度敏感的應(yīng)用中非常有用。采用動(dòng)態(tài)重配置技術(shù),可以在不增加系統(tǒng)功耗或電路板尺寸的情況下,實(shí)現(xiàn)支持不同應(yīng)用模式的專(zhuān)用架構(gòu)。傳統(tǒng)解決方案?jìng)?cè)重于控制部分,現(xiàn)在看來(lái)似乎已經(jīng)不能有效地滿足執(zhí)行單元的數(shù)量及其異構(gòu)性要求。只有采用兼具靈活性和可擴(kuò)展性的分布式方案,才能夠創(chuàng)建出面向未來(lái)的架構(gòu)。

  雖然這種技術(shù)潛力無(wú)限,但對(duì)整個(gè)業(yè)界來(lái)說(shuō),動(dòng)態(tài)重配置的使用仍然有相當(dāng)大的難度。工程師需要一種清晰明確的設(shè)計(jì)方式,既能夠充分地發(fā)揮動(dòng)態(tài)重配置的優(yōu)勢(shì),又不影響應(yīng)用描述,而且最重要的是,不增加開(kāi)發(fā)成本。為了將動(dòng)態(tài)性和高性能結(jié)合起來(lái),我們建議采用基于多線程的執(zhí)行模型對(duì)異構(gòu)性進(jìn)行抽象。開(kāi)發(fā)人員可以將應(yīng)用當(dāng)作線程集來(lái)進(jìn)行編程,而不必考慮線程是在標(biāo)準(zhǔn)處理器還是專(zhuān)用硬件上執(zhí)行。在這種情況下,動(dòng)態(tài)重配置的作用是進(jìn)行線程優(yōu)先調(diào)度(thread preemption)和上下文切換。由法國(guó)國(guó)家研究署 (French National Research Agency (ANR)) 贊助的 FOSFOR(靈活的可重配置平臺(tái)操作系統(tǒng))項(xiàng)目就專(zhuān)門(mén)負(fù)責(zé)開(kāi)發(fā)這種新一代嵌入式、分布式實(shí)時(shí)操作系統(tǒng)。

  1 FOSFOR 架構(gòu)基礎(chǔ)

  我們的目標(biāo)是設(shè)計(jì)一種支持新的系統(tǒng)分區(qū)類(lèi)型的架構(gòu),讓軟/硬件組件遵循同一執(zhí)行模型。這就要求高度靈活的可擴(kuò)展操作系統(tǒng),能夠?yàn)檐浖蚝陀布蛱峁┫嗨频慕涌?。與傳統(tǒng)方法不同,這種操作系統(tǒng)是完全分布式的,整個(gè)平臺(tái)從應(yīng)用的角度來(lái)看是同構(gòu)的。這就意味著既能以靜態(tài)方式,也能以動(dòng)態(tài)方式在軟件(處理器)或者硬件(可重配置單元)中部署應(yīng)用線程,對(duì)分布式服務(wù)進(jìn)行無(wú)差別的訪問(wèn)。

  為了實(shí)現(xiàn)高效率,我們?cè)诰o鄰可重配置區(qū)的硬件中實(shí)現(xiàn)操作系統(tǒng)服務(wù)。我們?cè)诋悩?gòu)操作系統(tǒng)內(nèi)核之間實(shí)現(xiàn)了一個(gè)通信層,以確保從應(yīng)用角度看服務(wù)是同構(gòu)的。因此,將操作系統(tǒng)當(dāng)作大量模塊和執(zhí)行單元部署在架構(gòu)上,可以充分發(fā)揮虛擬化機(jī)制的優(yōu)勢(shì),從而使應(yīng)用線程在未預(yù)知任務(wù)的情況下運(yùn)行和通信。

  從編程人員的角度來(lái)看,該應(yīng)用只是個(gè)線程集。我們可以利用賽靈思 FPGA 的動(dòng)態(tài)重配置功能來(lái)提議這種硬件線程的新概念,同時(shí)也可采用與軟件線程相同的方式來(lái)實(shí)現(xiàn)這一概念。我們的實(shí)現(xiàn)方式充分發(fā)揮了專(zhuān)用計(jì)算 IP 模塊的性能優(yōu)勢(shì)。

  除了要考慮到多處理器 SoC 中的執(zhí)行單元,存儲(chǔ)器結(jié)構(gòu)還必須滿足以下幾項(xiàng)要求:應(yīng)用線程需要的數(shù)據(jù)存儲(chǔ)、每個(gè)線程執(zhí)行上下文的存儲(chǔ)以及線程間的數(shù)據(jù)交換。對(duì)于執(zhí)行上下文的存儲(chǔ),我們認(rèn)為有多種可能性。一種方式是集中存儲(chǔ)執(zhí)行上下文,這樣為將其分配到不同執(zhí)行單元提供介質(zhì)。我們可以確認(rèn)平臺(tái)內(nèi)的三種通信流:應(yīng)用數(shù)據(jù)、控制信號(hào)和重配置/執(zhí)行上下文。對(duì)于硬件線程之間的高帶寬數(shù)據(jù)路徑,我們使用專(zhuān)用的片上網(wǎng)絡(luò) (NoC)。

  

 

  圖1 通用 FOSFOR 架構(gòu)

  圖中文字:

  靈活的操作系統(tǒng) 軟件 線程 應(yīng)用 中間件(虛擬化、分布、靈活性) 操作系統(tǒng) 1(X 服務(wù)) 操作系統(tǒng) n(Y 服務(wù)) 硬件抽象層 (HAL) 軟件通信單元 硬件通信單元 硬件 軟件節(jié)點(diǎn) (GPP) 硬件節(jié)點(diǎn)(可重配置區(qū)域) 片上網(wǎng)絡(luò) 共享存儲(chǔ)器[!--empirenews.page--]2 全局架構(gòu)

 

  全局架構(gòu)如圖1 所示,其組成包括:

  一系列非專(zhuān)用(通用)處理器 (GPP)。GPP 負(fù)責(zé)支持軟件線程的執(zhí)行,以及包括線程調(diào)度在內(nèi)的一系列操作系統(tǒng)服務(wù)。GPP 在指令集架構(gòu)和提供的服務(wù)數(shù)量方面不必同構(gòu)。

  一系列動(dòng)態(tài)可重配置分區(qū)(也稱(chēng)可重配置區(qū)域 (RR))。動(dòng)態(tài)可重配置分區(qū)負(fù)責(zé)并行或串行執(zhí)行一系列硬件線程。與 GPP 相似,由于采用硬件操作系統(tǒng) (HwOS),RR 也支持操作系統(tǒng)服務(wù)的執(zhí)行。這些區(qū)域?qū)?yīng)著精粒度 (FPGA) 或粗粒度(可重配置處理器)架構(gòu)。

  共享著一條或多條物理通信通道的虛擬通信通道,用于控制、數(shù)據(jù)和配置??刂仆ǖ镭?fù)責(zé)把操作系統(tǒng)服務(wù)之間的通信分配給執(zhí)行單元(GPP 和 RR)。數(shù)據(jù)通道負(fù)責(zé)傳輸與環(huán)境(器件、傳感器)有關(guān)的信息和線程之間的信息交換。配置通道負(fù)責(zé)在配置存儲(chǔ)器和執(zhí)行單元之間傳輸軟件線程(二進(jìn)制代碼)和硬件線程(部分比特流)的配置。

  每個(gè)處理器都有自己的本地存儲(chǔ)器。該存儲(chǔ)器負(fù)責(zé)存儲(chǔ)本地?cái)?shù)據(jù),在適用的情況下,也可存儲(chǔ)軟件代碼。連接到數(shù)據(jù)通道的共享存儲(chǔ)器可以實(shí)現(xiàn)不同處理器上線程間的數(shù)據(jù)共享。每個(gè)執(zhí)行單元都可以訪問(wèn)共享存儲(chǔ)器上存儲(chǔ)的數(shù)據(jù)和軟件執(zhí)行資源程序。每個(gè)資源還可以訪問(wèn)配置存儲(chǔ)器,以保存和恢復(fù)其執(zhí)行上下文。采用這種結(jié)構(gòu),可以在任何執(zhí)行資源上實(shí)現(xiàn)任何線程或服務(wù)。

  在 RR 內(nèi)部,只有硬件任務(wù)需要?jiǎng)討B(tài)重配置。負(fù)責(zé)托管任務(wù)的動(dòng)態(tài)區(qū)域 (DR) 被包含操作系統(tǒng)服務(wù)硬件實(shí)現(xiàn)的靜態(tài)區(qū)域 (SR) 所包圍,同時(shí)在 RR 內(nèi)外部提供通信介質(zhì)。內(nèi)部數(shù)據(jù)流通信依靠專(zhuān)用的片上網(wǎng)絡(luò)。DR 和 SR 之間的接口采用總線宏并且有固定的位置。為實(shí)現(xiàn)該約束以及通信介質(zhì)異構(gòu)性的抽象,我們采用中間件方案來(lái)提供到可重配置分區(qū)的虛擬訪問(wèn)。RR 根據(jù)圖 2 中定義的模型構(gòu)建。FOSFOR 原型平臺(tái)由能夠直接支持這種架構(gòu)模型的動(dòng)態(tài)可重配置 FPGA 器件構(gòu)成。我們選用了 Virtex-5? 器件,因?yàn)槠淠軌蛑嘏渲镁匦螀^(qū)域。

  我們根據(jù)預(yù)先測(cè)算的應(yīng)用線程資源需求定義了調(diào)度/布局算法,以確保每個(gè) RR 中 FPGA 元件(LUT、寄存器、分布式存儲(chǔ)器、I/O)的高效利用。

  

 

  圖2 可重配置區(qū)域結(jié)構(gòu)

  圖中文字:

  控制 上下文(比特流) 靜態(tài)區(qū)域 可重配置區(qū)域 靜態(tài)區(qū)域 數(shù)據(jù) 硬件操作系統(tǒng) 控制 動(dòng)態(tài)區(qū)域 線程 數(shù)據(jù) 片上網(wǎng)絡(luò) 硬件分區(qū)

  3 操作系統(tǒng)、片上網(wǎng)絡(luò)及中間件

  為具備靈活性,F(xiàn)OSFOR 架構(gòu)使用了至少兩個(gè)操作系統(tǒng)實(shí)例:一個(gè)為運(yùn)行在每個(gè)處理器上且負(fù)責(zé)處理軟件線程的軟件操作系統(tǒng);另一個(gè)為能夠管理硬件線程的硬件操作系統(tǒng)。為了在性能、開(kāi)發(fā)時(shí)間以及標(biāo)準(zhǔn)化之間實(shí)現(xiàn)最佳平衡,我們使用了現(xiàn)有的軟件操作系統(tǒng)和全新的硬件操作系統(tǒng)。

  該硬件操作系統(tǒng)利用賽靈思 FPGA 的動(dòng)態(tài)部分重配置功能,在調(diào)度硬件線程方面與傳統(tǒng)操作系統(tǒng)調(diào)度軟件線程一樣靈活。

  對(duì)軟件操作系統(tǒng)的要求是實(shí)時(shí)行為、能夠處理多個(gè)處理器并提供基本的進(jìn)程間通信服務(wù)。我們選用了一個(gè)免費(fèi)的開(kāi)源操作系統(tǒng) RTEMS。出于兼容性原因,我們選用了 LEON Sparc 軟核處理器,同軟件節(jié)點(diǎn)一樣,其也是免費(fèi)和開(kāi)源的。

  該硬件操作系統(tǒng)(HwOS)利用賽靈思 FPGA 的動(dòng)態(tài)部分重配置功能,在調(diào)度硬件線程方面與傳統(tǒng)操作系統(tǒng)調(diào)度軟件線程一樣靈活。硬件線程由動(dòng)態(tài)和靜態(tài)兩大部分組成。動(dòng)態(tài)部分內(nèi)含一個(gè)用來(lái)執(zhí)行線程功能的 IP 模塊和一個(gè)用來(lái)使服務(wù)調(diào)用次序與硬件操作系統(tǒng)同步的有限狀態(tài)機(jī)。靜態(tài)部分則內(nèi)含一個(gè)與硬件操作系統(tǒng)相連的控制接口和一個(gè)用于與其它軟硬件任務(wù)進(jìn)行交換數(shù)據(jù)的網(wǎng)絡(luò)接口。

  為支持多種線程間數(shù)據(jù)傳輸需要,我們開(kāi)發(fā)出了一種靈活的片上網(wǎng)絡(luò) DRAFT。傳統(tǒng)操作系統(tǒng)的通信服務(wù)足以支持軟件線程間的通信。但在我們的設(shè)計(jì)中,操作系統(tǒng)還需要支持硬件線程間的通信。為此,我們專(zhuān)門(mén)設(shè)計(jì)了 DRAFT 網(wǎng)絡(luò)。我們針對(duì)一個(gè)或者多個(gè) DR 逐一綜合硬件線程,同時(shí)靜態(tài)地定義每個(gè) DR 接口。

  通信接口的靜態(tài)定義讓我們可以定義靜態(tài)的片上網(wǎng)絡(luò)。一般來(lái)說(shuō),硬件線程要求高帶寬和低時(shí)延,故片上網(wǎng)絡(luò)必須提供高性能。我們?yōu)?DRAFT 選擇的拓?fù)涫且环N胖樹(shù)拓?fù)涞臄U(kuò)展。我們?cè)O(shè)計(jì)的主要目的是為了限制資源開(kāi)銷(xiāo),同時(shí)實(shí)現(xiàn)高性能的線程間通信。

  硬件平臺(tái)的異構(gòu)性是設(shè)計(jì)人員部署應(yīng)用時(shí)面臨的主要的復(fù)雜性障礙。在 FOSFOR 項(xiàng)目中,這種異構(gòu)性不僅來(lái)自軟件域中的不同嵌入式處理器,還來(lái)自在單個(gè)平臺(tái)上同時(shí)集成軟件和硬件計(jì)算模型的做法。

  采用中間件在硬件和軟件間建立抽象層,并提供同構(gòu)編程模型,可以很好地解決這一問(wèn)題。中間件實(shí)現(xiàn)了一組虛擬通道,可以在不必理會(huì)線程的實(shí)現(xiàn)區(qū)域的情況下進(jìn)行線程間通信。這些服務(wù)跨平臺(tái)分布,提供了一個(gè)靈活的可擴(kuò)展抽象層,讓 FOSFOR 構(gòu)想臻于完善。[!--empirenews.page--]4 性能加速

 

  構(gòu)建硬件操作系統(tǒng)的主要原因出于性能和靈活性方面的考慮。該操作系統(tǒng)本可以采用純軟件或純硬件。由于每次調(diào)用操作系統(tǒng)原語(yǔ)都會(huì)涉及開(kāi)銷(xiāo),即線程等待時(shí)間,操作系統(tǒng)速度越快,浪費(fèi)的時(shí)間就越少。為了評(píng)估開(kāi)銷(xiāo),我們必須就硬件操作系統(tǒng)的時(shí)序和原始的軟件操作系統(tǒng) RTEMS 做一比較。

  硬件本地運(yùn)行只需要數(shù)十個(gè)周期,而為了訪問(wèn)共享存儲(chǔ)器,硬件全局運(yùn)行需要數(shù)百個(gè)周期。經(jīng)我們?cè)u(píng)估,與軟件操作系統(tǒng)的運(yùn)行結(jié)果相比,本地創(chuàng)建-刪除操作速度提高了 60 倍,其它操作速度也提高了約 50 倍。

  硬件操作系統(tǒng)的資源使用(表 1)相差較大,這主要取決于激活的服務(wù)的數(shù)量及功能,比如我們?yōu)槊宽?xiàng)服務(wù)選擇對(duì)象(信號(hào)量、線程等)的數(shù)量。我們使用賽靈思 Virtex-5 FX100T 來(lái)實(shí)現(xiàn)系統(tǒng)。表中列出了硬件操作系統(tǒng)使用的資源。余下的資源可用于實(shí)現(xiàn)其它系統(tǒng)組件及硬件線程自身。

  表1 硬件操作系統(tǒng) (Virtex-5 FX100) 的資源使用情況

  

 

  對(duì)于網(wǎng)絡(luò)性能,在 DRAFT 連接 8 個(gè)32 位字寬、緩沖深度為 4 個(gè)字,頻率為100MHz 的組件的配置下,片上網(wǎng)絡(luò)可使每個(gè)連接的組件的最大數(shù)據(jù)速率高達(dá) 1,040Mbps。網(wǎng)絡(luò)的拓?fù)浜吐酚蓞f(xié)議保證不會(huì)出現(xiàn)爭(zhēng)用和擁堵現(xiàn)象。在兩個(gè)互連的組件間,至少一直保留著一條通信路徑。數(shù)據(jù)通過(guò) DRAFT 的平均時(shí)延接近 45 個(gè)時(shí)鐘周期(450 納秒),這符合許多應(yīng)用的要求。

  5 結(jié)語(yǔ)

  我們提議采用一種創(chuàng)新型的操作系統(tǒng),可以在由多個(gè)處理器和動(dòng)態(tài)可重配置硬件 IP 模塊構(gòu)成的異構(gòu)多核架構(gòu)上提供基于多線程的同構(gòu)執(zhí)行模型。硬件操作系統(tǒng)負(fù)責(zé)管理硬件線程,一般用于線程創(chuàng)建和抑制,以及信息量和消息隊(duì)列服務(wù)。在通信方面,我們建議改進(jìn)用于數(shù)據(jù)交換的胖樹(shù)拓?fù)淦暇W(wǎng)絡(luò)、用于硬件線程管理的專(zhuān)用總線以及為實(shí)現(xiàn)操作系統(tǒng)間同步的通信層。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉