国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

統(tǒng)一優(yōu)先級軟/硬件任務(wù)協(xié)同調(diào)度下的任務(wù)間通信機(jī)制

發(fā)布時間:2010-3-24 08:56    發(fā)布者:李寬
關(guān)鍵詞: 機(jī)制 , 任務(wù) , 通信 , 硬件
引言

目前,在面向應(yīng)用的嵌入式體系結(jié)構(gòu)的研究中,為了能同時利用通用處理器(CPU)的靈活性和專用集成電路(ASIC)的高效性,一些研究者將系統(tǒng)中性能要求較高的模塊用FPGA等可編程器件實現(xiàn),與通用處理器集成可重構(gòu)片上系統(tǒng)。隨著現(xiàn)場可編程門陣列(FPGA)技術(shù)的.快速發(fā)展,可重構(gòu)技術(shù)開始受到研究者們越來越多的關(guān)注。但是可重構(gòu)計算的發(fā)展現(xiàn)狀是硬件遠(yuǎn)遠(yuǎn)領(lǐng)先于軟件,在可重構(gòu)計算中需要一個操作系統(tǒng)來管理新的可重構(gòu)硬件資源,屏蔽硬件細(xì)節(jié),并向開發(fā)人員提供高層次的編程模型。因此一些研究者將由可編程器件實現(xiàn)的任務(wù)模塊抽象為硬件任務(wù),并納入可重構(gòu)實時操作系統(tǒng)的統(tǒng)一管理,由可重構(gòu)實時操作系統(tǒng)負(fù)責(zé)任務(wù)調(diào)度、系統(tǒng)資源管理以及任務(wù)間的通信和同步等工作。

迄今,對可重構(gòu)系統(tǒng)任務(wù)間通信的研究取得了一些成果。例如,Miljan Vuletic等人在參考文獻(xiàn)中將純軟件任務(wù)環(huán)境的虛擬存儲訪問向可重構(gòu)環(huán)境進(jìn)行了擴(kuò)展,以方便應(yīng)用編程和移植;Philip Garcia等人在參考文獻(xiàn)中對硬件任務(wù)接口進(jìn)行了研究,以實現(xiàn)對硬件任務(wù)的統(tǒng)一封裝。但這些研究僅著眼于底層數(shù)據(jù)的交互,而沒有考慮通信中伴隨的上層任務(wù)間的同步和互斥邏輯;另外,張磊等人在參考文獻(xiàn)中對軟/硬件任務(wù)互斥進(jìn)行了研究,但沒有考慮大量數(shù)據(jù)跨越CPU和FPGA邊界的情況。因此,本文在這些研究成果的基礎(chǔ)上,結(jié)合底層實現(xiàn)和上層邏輯對基于統(tǒng)一優(yōu)先級調(diào)度的可重構(gòu)系統(tǒng)中軟/硬件任務(wù)間通信進(jìn)行探討。

1 可重構(gòu)系統(tǒng)中軟/硬件任務(wù)間通信分析

1.1 相關(guān)概念

硬件任務(wù),是指由可重構(gòu)硬件資源實現(xiàn)的功能模塊,相對于軟件任務(wù)具有以下特點:

    ①硬件任務(wù)的數(shù)量受限于可重構(gòu)資源的數(shù)量;
    ②硬件任務(wù)可以實現(xiàn)微觀并行;
    ③硬件任務(wù)通過配置可重構(gòu)資源來建立,建立時間長,不可以忽略不計;
    ④由于硬件任務(wù)在運行的切換開銷較大,因此不必像軟件任務(wù)那樣進(jìn)行切換來分享CPU,而是可以獨享相應(yīng)的資源。

為了支持統(tǒng)一優(yōu)先級調(diào)度,軟/硬件任務(wù)可統(tǒng)一表示為Ti(ai,ei,di,ci,wi,hi)。其中,ai表示任務(wù)到達(dá)時間,ei表示任務(wù)最壞運行時間,di表示任務(wù)完成截止時間,ci表示任務(wù)配置時間,wi和hi表示硬件任務(wù)的寬度和高度。由于硬件任務(wù)和軟件任務(wù)具有不同的特點,從而可將其中任務(wù)間的通信和同步分為3類,即軟件任務(wù)(SWT)之間、軟/硬件任務(wù)之間以及硬件任務(wù)(HWT)之間。

1.2 分層的通信模型

對于任何一個操作系統(tǒng)來說,任務(wù)間的通信和同步都是必不可少的。系統(tǒng)中各任務(wù)的運行不僅與任務(wù)的應(yīng)用邏輯相關(guān)還與系統(tǒng)的狀態(tài)相關(guān),而系統(tǒng)的狀態(tài)又由系統(tǒng)中運行的多個任務(wù)決定,因此任務(wù)間的通信往往伴隨著同步和互斥的實現(xiàn)。為了便于任務(wù)間的通信,從傳統(tǒng)純軟件任務(wù)環(huán)境向可重構(gòu)環(huán)境的擴(kuò)展,將其分為邏輯機(jī)制和物理實現(xiàn)兩個層次。其中邏輯層主要負(fù)責(zé)多個任務(wù)間同步控制以及數(shù)據(jù)的保護(hù),與底層的數(shù)據(jù)交互無關(guān);而物理層則負(fù)責(zé)底層數(shù)據(jù)交互的實現(xiàn),即邏輯層和物理層以松耦合的方式組合,從而方便了系統(tǒng)的移植和通信機(jī)制的擴(kuò)展。

就邏輯機(jī)制層而言,在傳統(tǒng)的純軟件任務(wù)的環(huán)境中,運行于CPU上的多個軟件任務(wù)具有宏觀上并行微觀上串行的特點,操作系統(tǒng)在對這些任務(wù)的資源共享和數(shù)據(jù)交互的管理上已有信號量、互斥量、消息隊列等成熟的通信機(jī)制。但在可重構(gòu)系統(tǒng)中,軟件任務(wù)和硬件任務(wù)分別運行于CPU和FPGA上,軟/硬件任務(wù)間及硬件任務(wù)間具有微觀并行性,因此需要擴(kuò)展這些通信機(jī)制對硬件任務(wù)的支持,以實現(xiàn)跨越CPU和FPGA邊界的軟/硬件任務(wù)間通信。這主要表現(xiàn)在針對不同類型的任務(wù)采取不同的后續(xù)措施上,同時向上層應(yīng)用提供統(tǒng)一的通信接口。

而對于物理層的實現(xiàn),考慮到分布式存儲中消息傳遞方式實現(xiàn)的通信開銷較大且實現(xiàn)復(fù)雜,采用圖1所示的系統(tǒng)結(jié)構(gòu)。CPU、FPGA以及系統(tǒng)主存掛接到總線上組成RSOPC。CPU除運行一定的用戶軟件任務(wù)之外,還負(fù)責(zé)提供操作系統(tǒng)服務(wù),包括任務(wù)調(diào)度、資源管理、通信和同步管理等。操作系統(tǒng)通過統(tǒng)一的軟/硬件任務(wù)視圖——任務(wù)控制塊來對各個任務(wù)進(jìn)行管理。硬件任務(wù)(HWT)運行于FPGA上,并由FPGA給每個硬件任務(wù)提供一個統(tǒng)一的硬件任務(wù)接口(HTI)供操作系統(tǒng)和硬件任務(wù)的交互,同時每個硬件任務(wù)在CPU上有代理任務(wù)與其對應(yīng)。而軟件任務(wù)的代碼和數(shù)據(jù)以及硬件任務(wù)的配置數(shù)據(jù)都存放于系統(tǒng)內(nèi)存中,CPU通過片上總線讀取存儲器中的硬件任務(wù)配置數(shù)據(jù)對FPGA進(jìn)行配置。



為了方便應(yīng)用編程和移植,系統(tǒng)主存和FPGA的局部存儲器統(tǒng)一編址,且該地址由基址和偏移兩部分組成;芬皂摓閱挝唬撇怀^頁的大小,即設(shè)系統(tǒng)的地址空間為2n,頁大小為2k,則基址的取值范圍為[O,2n/2k],而偏移的取值范圍為[O,2k]。Main_Memory和 Local_Memory分配有不同的基址,在編譯器的支持下,全局?jǐn)?shù)據(jù)和軟件任務(wù)的局部數(shù)據(jù)存放于Main_Memory,而硬件任務(wù)的局部數(shù)據(jù)存放于 Local_Memory。在應(yīng)用層,任務(wù)可通過統(tǒng)一的全局地址訪問數(shù)據(jù),在物理實現(xiàn)上硬件任務(wù)只能直接訪問Local_Memory的數(shù)據(jù);而當(dāng)其數(shù)據(jù)需跨越CPU和FPGA邊界時,則通過如消息隊列服務(wù)等固定的幾種方式向OS發(fā)出申請,并由0S控制數(shù)據(jù)的遷移以及遷移前后被遷移數(shù)據(jù)地址在 Main_Memory范圍和Local_Memmory范圍的映射,地址的映射主要通過設(shè)置HWTI中的地址寄存器來實現(xiàn),詳見2.2.2節(jié)。在這種設(shè)計前提下,進(jìn)行應(yīng)用設(shè)計時不必關(guān)心任務(wù)的實現(xiàn)方式。

2 可重構(gòu)系統(tǒng)中消息隊列通信機(jī)制

消息隊列是一種靈活的通信機(jī)制,它允許一個任務(wù)或中斷服務(wù)子程序向另一個任務(wù)發(fā)送以指針方式定義的變量或其他任務(wù)。

2.1 μC/OS—II簡介

μC/OS—II是一個專門為計算機(jī)嵌入式應(yīng)用設(shè)計的源碼開放的可移植、可固化、多任務(wù)的占先式實時內(nèi)核,提供基于靜態(tài)優(yōu)先級的搶占式調(diào)度,且具有執(zhí)行效率高、占用空間小、實時性能優(yōu)良和可擴(kuò)展性強等特點。在任務(wù)通信方面,μC/OS—II提供了信號量、互斥量、消息隊列、消息郵箱和事件標(biāo)志組五種通信機(jī)制。

2.2 消息隊列通信實現(xiàn)的支持機(jī)制

2.2.1 硬件任務(wù)接口與硬件任務(wù)代理

軟/硬件任務(wù)問消息隊列通信的邏輯框圖如圖2所示。軟/硬件任務(wù)分別通過自身和代理調(diào)用0SQ_Request向0S申請消息隊列服務(wù),使得在通信邏輯層 OS可將軟/硬件任務(wù)同等看待。這方便了現(xiàn)有通信邏輯向可重構(gòu)系統(tǒng)的擴(kuò)展,同時OS提供的通信服務(wù)由軟件實現(xiàn)相對于硬件實現(xiàn)更具靈活性。



由圖2可見,硬件任務(wù)在申請消息隊列服務(wù)時需要硬件任務(wù)接口(HWTI)、硬件任務(wù)代理(HWTAgent)和中斷的支持。一次典型的消息申請消息服務(wù)的執(zhí)行過程可描述為:

    ①硬件任務(wù)將申請的服務(wù)類型及參數(shù)等放入HWTI中的相應(yīng)寄存器;
    ②硬件任務(wù)向CPU發(fā)送中斷;
    ③CPU響應(yīng)中斷,在中斷服務(wù)程序里喚醒硬件任務(wù)代理;
    ④硬件任務(wù)代理獲得調(diào)度,調(diào)用系統(tǒng)調(diào)用以取得消息,將消息在Local Memory的地址存入HWTI中的地址寄存器中并喚醒硬件任務(wù);
    ⑤硬件任務(wù)繼續(xù)執(zhí)行。

HWTI是用戶硬件任務(wù)和操作系統(tǒng)之間的橋梁,由一組寄存器組成,主要包括控制寄存器、狀態(tài)寄存器、參數(shù)寄存器、地址寄存器等。

HWTAgent本質(zhì)上是一個運行于CPU上的軟件任務(wù),它充當(dāng)了OS與運行于FPGA上的硬件任務(wù)的橋梁。HWTAgent的存在使得在通信邏輯層OS 可以將硬件任務(wù)和軟件任務(wù)同等看待,從而方便了軟/硬件任務(wù)統(tǒng)一優(yōu)先級的調(diào)度,而HWTAgent對應(yīng)代碼段的執(zhí)行則實現(xiàn)通信物理層功能。 HWTAgent,的設(shè)置同時也是出于這樣一種考慮:中斷服務(wù)程序應(yīng)執(zhí)行盡可能少的代碼,否則將影響系統(tǒng)的實時性。由于在消息隊列通信中需要設(shè)置HW— TI中的寄存器,同時可能涉及大量數(shù)據(jù)的遷移,若將這部分工作由中斷服務(wù)來完成,將會影響對后續(xù)高優(yōu)先級硬件任務(wù)請求的響應(yīng)。而設(shè)置HWTAgent后,中斷服務(wù)程序只需將請求類型放入TCB然后激活HWTAgent即可,而將其他的任務(wù)交由軟件任務(wù)HWTAgent來完成,從而能盡快響應(yīng)后續(xù)高優(yōu)先級硬件任務(wù)的請求。

2.2.2 硬件任務(wù)對全局?jǐn)?shù)據(jù)的訪問

由前所述,數(shù)據(jù)訪問的同步和保護(hù)等服務(wù)由運行于CPU上的0S提供。當(dāng)硬件任務(wù)向OS申請消息時,若分配得的消息存在于Main_Memory上,則 HWTAgent會把消息從Main_Memory遷移到Local_Memory;而當(dāng)數(shù)據(jù)遷移完成后HWTAgent還需完成消息地址的轉(zhuǎn)換,即將硬件任務(wù)當(dāng)前可用的消息在Local_Memory中的地址存入HWTI中的地址寄存器中。由于Main_Memory和Local_Memory統(tǒng)一編址,0S控制著系統(tǒng)的存儲布局信息,因此地址的轉(zhuǎn)換是可以實現(xiàn)的。

2.3 可重構(gòu)系統(tǒng)中消息隊列通信的實現(xiàn)

針對消息隊列的操作主要有4種,即創(chuàng)建消息隊列、刪除消息隊列、申請消息和發(fā)送消息。這里規(guī)定消息的申請不能由中斷服務(wù)子程序調(diào)用,主要是因為消息的申請可能引起任務(wù)的阻塞,而消息隊列的創(chuàng)建和刪除只能由軟件任務(wù)調(diào)用。這也是可以理解的,因為硬件任務(wù)一般作為大數(shù)據(jù)處理的加速器使用,而應(yīng)用的控制邏輯仍由軟件任務(wù)實現(xiàn)。

由1.2的敘述可知,需擴(kuò)展消息隊列通信對硬件任務(wù)的支持,同時為了維護(hù)邏輯層與物理層的松耦合性,有關(guān)數(shù)據(jù)遷移和地址轉(zhuǎn)換的部分均由HWTAgent完成。采取如下具體措施,以實現(xiàn)基于統(tǒng)一優(yōu)先級的軟/硬件任務(wù)間消息隊列通信:

①在有關(guān)消息隊列的內(nèi)核部分增加一個查找被阻塞任務(wù)中最高優(yōu)先級的系統(tǒng)調(diào)用0SQFindHighPrio(),若消息隊列當(dāng)前有被阻塞任務(wù)則返回其中具有最高優(yōu)先級任務(wù)的優(yōu)先級,否則返回一1;

②針對硬件任務(wù)服務(wù)申請的中斷服務(wù)程序只需調(diào)用OSAgentRdy()喚醒請求任務(wù)對應(yīng)的代理任務(wù),OSAgent—Rdy()定義為 OSAgentRdy(INT8U reqType,INT8U tid,void*param),其中reqType為請求類型,tid為請求任務(wù)的id,param為請求附帶的參數(shù);

③HWTAgent獲得調(diào)用后根據(jù)情況執(zhí)行后續(xù)操作(針對因申請消息隊列服務(wù)而喚醒的部分),其執(zhí)行偽代碼如下(記當(dāng)前操作的消息隊列為Q,發(fā)出申請的任務(wù)為T,具有最高優(yōu)先級的被阻塞任務(wù)為T1):




以上執(zhí)行過程可描述如下:①判斷申請的服務(wù)類型;②若是發(fā)送消息請求則調(diào)用OSQFindHighPrio()查找被阻塞的最高優(yōu)先級;③若Q中沒有被阻塞的任務(wù)或被阻塞任務(wù)中具有最高優(yōu)先級的任務(wù)是SWT,則需進(jìn)行數(shù)據(jù)遷移;④利用遷移后的消息地址調(diào)用OSQPost;⑤否則Q中具有最高優(yōu)先級的被阻塞任務(wù)為HWT,不需數(shù)據(jù)遷移而直接激活該任務(wù);⑥否則若是獲取消息請求則調(diào)用OSQPend()以獲取消息;⑦若獲得的消息存放于 Main_Memory,則需進(jìn)行數(shù)據(jù)遷移;⑧由于獲得消息而激活發(fā)送請求的硬件任務(wù)T。

3 模擬實驗及分析

本文針對由CPU和FPGA組成的可重構(gòu)系統(tǒng)提出了一種分層的軟/硬件任務(wù)間通信方式,并在其上實現(xiàn)了消息隊列通信。考慮到CPU具有更高的靈活性而 FPGA具有更高的數(shù)據(jù)量處理效率,將硬件任務(wù)作為大數(shù)據(jù)處理的加速器使用,而通信的系統(tǒng)控制部分由運行于CPU上的0S負(fù)責(zé)。這一實現(xiàn)具有以下優(yōu)點:

    ①由軟件實現(xiàn)系統(tǒng)控制更具靈活性,分層的通信結(jié)構(gòu)使系統(tǒng)層次更加清晰,方便移植;
    ②向上層應(yīng)用程序員屏蔽軟硬件底層差異,使得應(yīng)用程序員可以將注意力集中于應(yīng)用邏輯的處理上;
    ③硬件任務(wù)代理的設(shè)置減輕了中斷服務(wù)程序的壓力,保證了對后續(xù)高優(yōu)先級硬件任務(wù)請求的響應(yīng)能力。

為了證明HWTAgent能保證后續(xù)高優(yōu)先級硬件任務(wù)的請求能得到及時響應(yīng),現(xiàn)對有HwTAgent和無HWTAgent兩種情況下同級中斷的響應(yīng)時間進(jìn)行比較。記消息長度為L,使用和不使用HWTAgent時響應(yīng)時間分別為t1和t2,單位為CPU時鐘周期數(shù)。

圖3為使用與不使用HWAgent下對后續(xù)硬件任務(wù)請求的響應(yīng)時間隨消息長度改變的情況。



由圖3可知,不采用HWTAgent時最壞情況下的響應(yīng)時間會隨消息長度的增加而延長;而使用HWTAgent后,響應(yīng)時間為一固定值,且接近最好情況的響應(yīng)時間?梢,HWTAgent可有效地保證對后續(xù)高優(yōu)先級硬件任務(wù)請求的響應(yīng)能力。

結(jié)語

本文對可重構(gòu)系統(tǒng)中任務(wù)間的通信機(jī)制進(jìn)行了探討,提出了一種分層的通信機(jī)制,方便了通信邏輯層的擴(kuò)展以及通信物理層的移植,并在其上實現(xiàn)了消息隊列通信,且用模擬實驗證明了其有效性。

參考文獻(xiàn)

   1. 周學(xué)功 可重構(gòu)嵌入式系統(tǒng)樣機(jī)平臺與操作系統(tǒng)研究 2007
   2. Vuletid M.Pozzi L.Ienne P Seamless Hardware-Software Integration in Reconfigurable Computing Systems 2005(2)
   3. Garcia P.Compton K A Reconfigurable Hardware Interface for a Modern Computing System 2007
   4. 張磊.郭兵.張傳武.沈艷 基于統(tǒng)一調(diào)度的RTOS軟/硬件任務(wù)資源競爭機(jī)制研究與設(shè)計 [期刊論文] -計算機(jī)應(yīng)用2007(11)
   5. 周博.王石記.邱衛(wèi)東.彭澄廉 SHUM- UCOS:基于統(tǒng)一多任務(wù)模型可重構(gòu)系統(tǒng)的實時操作系統(tǒng) [期刊論文] -計算機(jī)學(xué)報2006(2)
   6. Labrosses Jean J.邵貝貝 嵌入式實時操作系統(tǒng)μC/OS-II 2003

作者:曾蜀芳,郭兵 (四川大學(xué)) 沈艷 (電子科技大學(xué))
來源:單片機(jī)與嵌入式系統(tǒng)應(yīng)用 2009 (4)
本文地址:http://m.qingdxww.cn/thread-9790-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲夜夜骑| 亚洲国产美女精品久久| 亚洲精品色| 午夜五月天| 成人麻豆日韩在无码视频| 久久九九免费| 综合色一色综合久久网vr| 欧美特级大片| 天天看片天天爽| 天天做天天爱天天射| 99精品国产电影| 久久综合中文字幕无码| 四虎www.| 日本三级视频在线播放| 四虎亚洲| vidosgratis tv少女| 色怕怕| 色综合久久综合| 日本一区二区三区精品| 伊人久久大香线蕉资源| 在线观看视频中文字幕| 和尚轮流澡到高潮H| 在线看片亚洲| 亚洲国产精选| 亚洲视频大全| 亚洲午夜精品久久久久久成年| 阿片在线播放| 秋霞久久久久久一区二区| 午夜在线观看福利| 天天逼逼| 夜夜爽一区二区三区精品| 久久99re8热在线播放| 亚洲欧美日韩精品久久奇米色影视 | 日韩一卡 二卡 三卡 四卡 免费视频 | 一区二区三区免费在线| 久久一er精这里有精品| 天天精品视频在线观看资源| 亚洲国产精品区| 亚洲伊人久久大香线蕉在观| 1300部真实小Y女视频合集| 久久亚洲电影www电影网|