新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 面向動態(tài)應用的靈活操作系統(tǒng)

面向動態(tài)應用的靈活操作系統(tǒng)

—— 利用賽靈思 FPGA 的動態(tài)重配置功能,同構多線程執(zhí)行模型可同時兼得軟件靈活性和硬件性能
作者: 時間:2011-09-01 來源:電子產(chǎn)品世界 收藏

        一臺在未知的土地上行進的自動機器人;一部能夠根據(jù)信號強度改變解壓縮格式的視頻解碼器;一套寬帶電子對抗系統(tǒng);一種用于機動車輛的自適應圖像跟蹤算法……這些都屬于大量涌現(xiàn)的隨環(huán)境瞬變做出快速響應的新興嵌入式或者關鍵任務應用。在過去,靜態(tài)決策最壞情況分配曾為嚴格的實時約束提供了解決方案,而現(xiàn)在靈活性也成為一項要求。法國某研究項目建議使用的解決方案是一種分布在 資源上,對軟硬件線程進行管理的操作系統(tǒng)。

本文引用地址:http://m.butianyuan.cn/article/123139.htm

        我們的目標是設計一種支持新的系統(tǒng)分區(qū)類型的架構,讓軟/硬件組件遵循同一執(zhí)行模型。這就要求高度靈活的可擴展操作系統(tǒng)。

        近年來,特別是在嵌入式系統(tǒng)中,隨著片上系統(tǒng) (SoC) 密度的增大,可以通過并行處理任務和數(shù)據(jù),來增加運算單元,最終滿足設計約束的要求。目前,隨著異構計算內核的加入,這種趨勢仍在繼續(xù)。不過這種技術遇到了難以逾越的復雜性障礙,因為它需要對編程模型進行更高層次的抽象。

        為了攻克這些難題,我們建議定義一個統(tǒng)一的執(zhí)行模型,不管線程是映射到硬件還是軟件上都可以使用。該執(zhí)行模型的硬件實現(xiàn)高度依賴動態(tài)可重配置邏輯的使用。全分布式架構結合傳統(tǒng)多核軟件子系統(tǒng),可同時兼?zhèn)滠?硬件的優(yōu)點。軟件部分很適用于智能化事件控制和決策,而硬件部分則擅長于提高能效、吞吐量以及數(shù)字運算。通過兩者的結合,無論是針對每種特定的應用,還是針對某一應用的某一特定狀態(tài),我們都能在性能與資源利用率之間實現(xiàn)最佳平衡。

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

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

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

FOSFOR 架構基礎

        我們的目標是設計一種支持新的系統(tǒng)分區(qū)類型的架構,讓軟/硬件組件遵循同一執(zhí)行模型。這就要求高度靈活的可擴展操作系統(tǒng),能夠為軟件域和硬件域提供相似的接口。與傳統(tǒng)方法不同,這種操作系統(tǒng)是完全分布式的,整個平臺從應用的角度來看是同構的。這就意味著既能以靜態(tài)方式,也能以動態(tài)方式在軟件(處理器)或者硬件(可重配置單元)中部署應用線程,對分布式服務進行無差別的訪問。

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

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

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

 
圖 1:通用 FOSFOR 架構
圖中文字:
靈活的操作系統(tǒng)  軟件  線程  應用  中間件(虛擬化、分布、靈活性)  操作系統(tǒng) 1(X 服務)  操作系統(tǒng) n(Y 服務)  硬件抽象層 (HAL)  軟件通信單元  硬件通信單元  硬件  軟件節(jié)點 (GPP)  硬件節(jié)點(可重配置區(qū)域)  片上網(wǎng)絡  共享存儲器

全局架構

全局架構如圖 1 所示,其組成包括:

? 一系列非專用(通用)處理器 (GPP)。GPP 負責支持軟件線程的執(zhí)行,以及包括線程調度在內的一系列操作系統(tǒng)服務。GPP 在指令集架構和提供的服務數(shù)量方面不必同構。
? 一系列動態(tài)可重配置分區(qū)(也稱可重配置區(qū)域 (RR))。動態(tài)可重配置分區(qū)負責并行或串行執(zhí)行一系列硬件線程。與 GPP 相似,由于采用硬件操作系統(tǒng) (HwOS),RR 也支持操作系統(tǒng)服務的執(zhí)行。這些區(qū)域對應著精粒度 (FPGA) 或粗粒度(可重配置處理器)架構。
? 共享著一條或多條物理通信通道的虛擬通信通道,用于控制、數(shù)據(jù)和配置??刂仆ǖ镭撠煱巡僮飨到y(tǒng)服務之間的通信分配給執(zhí)行單元(GPP 和 RR)。數(shù)據(jù)通道負責傳輸與環(huán)境(器件、傳感器)有關的信息和線程之間的信息交換。配置通道負責在配置存儲器和執(zhí)行單元之間傳輸軟件線程(二進制代碼)和硬件線程(部分比特流)的配置。

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

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

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


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


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

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

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


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

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

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

        通信接口的靜態(tài)定義讓我們可以定義靜態(tài)的片上網(wǎng)絡。一般來說,硬件線程要求高帶寬和低時延,故片上網(wǎng)絡必須提供高性能。我們?yōu)?DRAFT 選擇的拓撲是一種胖樹拓撲的擴展。我們設計的主要目的是為了限制資源開銷,同時實現(xiàn)高性能的線程間通信。

        硬件平臺的異構性是設計人員部署應用時面臨的主要的復雜性障礙。在 FOSFOR 項目中,這種異構性不僅來自軟件域中的不同嵌入式處理器,還來自在單個平臺上同時集成軟件和硬件計算模型的做法。

        采用中間件在硬件和軟件間建立抽象層,并提供同構編程模型,可以很好地解決這一問題。中間件實現(xiàn)了一組虛擬通道,可以在不必理會線程的實現(xiàn)區(qū)域的情況下進行線程間通信。這些服務跨平臺分布,提供了一個靈活的可擴展抽象層,讓 FOSFOR 構想臻于完善。

性能加速

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

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

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

實現(xiàn)的結構數(shù)量

8

16

32

CLB Slice

2,408 (15%)

3,151 (20%)

4,327 (27%)

D 觸發(fā)器

5,498 (8.5%)

6,650 (10.4%)

8,918 (13.9%)

BRAM

8 (3.5%)

16 (7%)

32 (14%)


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

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

展望

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

        從行業(yè)角度來看,下一步是演示為確保執(zhí)行模型的同構性而添加的硬件的功能,這可以真正提升編程效率,同時還能在專用 IP 模塊上保持較低性能開銷。

        我們將在一個代表性的、基于搜索跟蹤算法的泰雷茲公司應用上演示我們的方法。跟蹤線程將被映射到可重配置分區(qū),并根據(jù)目標探測情況動態(tài)地創(chuàng)建。

 



關鍵詞: 賽靈思 FPGA

評論


相關推薦

技術專區(qū)

關閉