亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向BWDSP100數(shù)字信號處理器的操作系統(tǒng)內(nèi)核原型設(shè)計

        2014-04-29 00:00:00馬宏星耿銳

        摘 要:本文介紹了面向高性能數(shù)字信號處理器BWDSP100的操作系統(tǒng)內(nèi)核原型。該原型系統(tǒng)包括任務(wù)管理、通信管理、內(nèi)存管理、中斷管理、時鐘管理等5個主要功能,能夠為多任務(wù)應(yīng)用提供良好的運(yùn)行環(huán)境,可有效提高DSP的使用效率。

        關(guān)鍵詞:數(shù)字信號處理器;操作系統(tǒng)內(nèi)核;多任務(wù)

        中圖分類號:TP368.12

        BWDSP100是中國電子科技集團(tuán)公司第三十八研究所研制的一款32位高性能浮點(diǎn)通用數(shù)字信號處理器(DSP),是國家“核高基”科技重大專項研究成果。

        BWDSP100采用超長指令字和單指令多數(shù)據(jù)的并行結(jié)構(gòu),處理器內(nèi)核工作在500MHz時,運(yùn)算性能達(dá)到每秒鐘300億次浮點(diǎn)運(yùn)算操作(30GFLOPS)或每秒鐘80億次浮點(diǎn)乘法累加操作(8GMAC),特別適合于實時和大數(shù)據(jù)量的計算環(huán)境。

        BWDSP100是單核DSP,現(xiàn)階段應(yīng)用時一般按照單任務(wù)方式運(yùn)行。然而,某些應(yīng)用場景可能會要求DSP同時執(zhí)行多個任務(wù),即多任務(wù)的應(yīng)用方式。在這種方式下,通常需要引入一個實時操作系統(tǒng)內(nèi)核,管理系統(tǒng)中同時存在的多個任務(wù),依據(jù)預(yù)先指定的策略或當(dāng)前系統(tǒng)的運(yùn)行狀況進(jìn)行調(diào)度,滿足多任務(wù)運(yùn)行環(huán)境的需求[1]。目前已有一些面向DSP的商用操作系統(tǒng)內(nèi)核,有代表性的包括TI的DSP/BIOS[2]、Freescale的SmartDSP[3]和ENEA的OSEck[4]。

        本文討論了一種為BWDSP100設(shè)計的操作系統(tǒng)內(nèi)核原型。該原型包含任務(wù)管理、通信管理、內(nèi)存管理、中斷管理和時鐘管理等5個主要功能,允許用戶創(chuàng)建、刪除、運(yùn)行、掛起、調(diào)度多個任務(wù),提供了任務(wù)內(nèi)分配和釋放內(nèi)存、任務(wù)間通信和同步功能,提供了中斷服務(wù)程序的掛接和響應(yīng)能力,提供了運(yùn)行中系統(tǒng)時間維護(hù)的能力。該原型系統(tǒng)為BWDSP100提供了多任務(wù)運(yùn)行能力,提升了DSP的易用性,拓展了BWDSP100的應(yīng)用范圍。

        1 設(shè)計實現(xiàn)

        1.1 總體設(shè)計

        該操作系統(tǒng)內(nèi)核原型采用模塊化和層次化的思想構(gòu)造。該原型自下而上分為三層:硬件抽象層、功能實現(xiàn)層和用戶接口層,如圖1所示。

        硬件抽象層負(fù)責(zé)對BWDSP100硬件平臺進(jìn)行抽象,支持各個功能模塊的運(yùn)行,為兼容后續(xù)同系列其它型號處理器提供必要的支撐條件。功能實現(xiàn)層負(fù)責(zé)完成操作系統(tǒng)內(nèi)核提供的各項功能的實現(xiàn),在該原型系統(tǒng)中主要由5個功能模塊組成,分別實現(xiàn)任務(wù)管理、通信管理、內(nèi)存管理、中斷管理和時鐘管理功能。用戶接口層對功能實現(xiàn)層進(jìn)行封裝,向用戶提供編程接口。

        該操作系統(tǒng)內(nèi)核原型以源代碼形式發(fā)布給用戶使用。用戶利用該原型系統(tǒng)提供的編程接口編寫程序。用戶需要使用的內(nèi)核資源及其配置情況寫在Cfg.h文件中。任務(wù)的劃分方案、內(nèi)核數(shù)據(jù)劃分方案、用戶數(shù)據(jù)的劃分方案均依據(jù)此文件確定。Cfg.h與用戶應(yīng)用程序源碼、操作系統(tǒng)內(nèi)核源碼一起在Makefile和Linkcmd文件的指導(dǎo)下編譯和鏈接,產(chǎn)生可執(zhí)行的系統(tǒng)鏡像文件。系統(tǒng)鏡像文件可以通過BWDSP100的集成開發(fā)環(huán)境下載至硬件平臺上運(yùn)行和調(diào)試。操作系統(tǒng)內(nèi)核原型的應(yīng)用過程如圖2所示。

        該原型系統(tǒng)分為三個狀態(tài):初始化狀態(tài)、多任務(wù)運(yùn)行狀態(tài)和出錯狀態(tài),如圖3所示。操作系統(tǒng)內(nèi)核原型啟動時進(jìn)入初始化狀態(tài),完成對硬件的初始化、各個功能模塊的初始化、初始任務(wù)的建立、初始資源的分配等工作。初始化完畢后進(jìn)入多任務(wù)運(yùn)行狀態(tài),在該狀態(tài)下操作系統(tǒng)內(nèi)核正常工作,進(jìn)行諸如任務(wù)調(diào)度、中斷管理、內(nèi)存分配和釋放、時鐘管理等各種內(nèi)核活動,用戶應(yīng)用程序在此狀態(tài)下正常執(zhí)行。無論操作系統(tǒng)內(nèi)核處于何種狀態(tài),如果發(fā)生致命錯誤,則進(jìn)入出錯狀態(tài)。在出錯狀態(tài)下,系統(tǒng)停機(jī)。

        1.2 任務(wù)管理功能設(shè)計

        任務(wù)管理是多任務(wù)操作系統(tǒng)的基本能力。程序運(yùn)行的實例抽象成任務(wù)。為完成一項指定的應(yīng)用,可能需要一個或多個任務(wù)協(xié)同工作。在該原型系統(tǒng)中,每個任務(wù)擁有一個固定大小的任務(wù)描述符作為唯一的標(biāo)識,在該描述符中標(biāo)記了任務(wù)號、屬性、當(dāng)前任務(wù)執(zhí)行狀態(tài)等內(nèi)容。操作系統(tǒng)內(nèi)核依據(jù)描述符的內(nèi)容對任務(wù)進(jìn)行管理和調(diào)度。該原型系統(tǒng)中采用鏈表結(jié)構(gòu)管理所有的任務(wù)描述符。

        該原型系統(tǒng)采用三狀態(tài)的任務(wù)狀態(tài)設(shè)計,其狀態(tài)轉(zhuǎn)換圖如圖4所示。

        用戶程序可以創(chuàng)建新任務(wù)。新任務(wù)進(jìn)入就緒狀態(tài),之后由調(diào)度系統(tǒng)負(fù)責(zé)將其分派到DSP上執(zhí)行。正在執(zhí)行的任務(wù)處于運(yùn)行狀態(tài)。在運(yùn)行中,任務(wù)可以因執(zhí)行完畢主動退出,進(jìn)而結(jié)束該任務(wù)的執(zhí)行,并刪除相關(guān)的任務(wù)描述符結(jié)構(gòu),釋放占用的存儲空間。正在執(zhí)行的任務(wù)可以主動放棄DSP,或者被其它更高優(yōu)先級的任務(wù)搶占(如果該任務(wù)允許被搶占)而轉(zhuǎn)入休眠狀態(tài)。處于就緒狀態(tài)的任務(wù)也可以被掛起而轉(zhuǎn)入休眠狀態(tài)。處于休眠狀態(tài)的任務(wù)可以由中斷、調(diào)度等機(jī)制將其恢復(fù)至休眠前的狀態(tài)。三狀態(tài)的設(shè)計可以滿足應(yīng)用的需求。

        該原型系統(tǒng)中定義了16個任務(wù)優(yōu)先級,允許多個任務(wù)分配相同的優(yōu)先級。在調(diào)度時,不同優(yōu)先級的任務(wù)按照搶占方式調(diào)度,即高優(yōu)先級任務(wù)可以立即搶占低優(yōu)先級任務(wù)執(zhí)行;對于同一優(yōu)先級的任務(wù),按照時間片輪轉(zhuǎn)方式調(diào)度。這種調(diào)度設(shè)計可以滿足大部分應(yīng)用需求。

        1.3 通信管理功能設(shè)計

        任務(wù)間通信和同步是多任務(wù)操作系統(tǒng)的基本功能,是多個任務(wù)協(xié)同工作的必要條件。該原型系統(tǒng)提供了二進(jìn)制信號量機(jī)制和消息隊列機(jī)制。

        二進(jìn)制信號量用于提供任務(wù)間的同步能力。二進(jìn)制信號量又稱為互斥鎖,僅包含鎖定和空閑兩種狀態(tài)。二進(jìn)制信號量由用戶程序創(chuàng)建,在任務(wù)中執(zhí)行請求和釋放操作。在任意時刻,一個二進(jìn)制信號量至多有一個持有者。請求和釋放信號量操作在關(guān)中斷條件下執(zhí)行,保證操作的原子性。

        該原型系統(tǒng)提供阻塞和非阻塞兩種獲取二進(jìn)制信號量的方式。在阻塞式中,如果信號量處于鎖定狀態(tài),當(dāng)前任務(wù)將進(jìn)入休眠狀態(tài),并且掛載到該信號量的等待隊列中。使用非阻塞方式時,如果信號量處于鎖定狀態(tài),用戶接口會返回一個錯誤碼,任務(wù)可以繼續(xù)執(zhí)行。

        當(dāng)信號量釋放時,如果等待隊列非空,操作系統(tǒng)內(nèi)核將隊列中的任務(wù)喚醒并加入到就緒隊列中執(zhí)行。為避免死鎖,該原型系統(tǒng)采用優(yōu)先級天花板協(xié)議,即任務(wù)按照優(yōu)先級高低順序獲得信號量,并且信號量的持有者總是處于信號量的置頂優(yōu)先級運(yùn)行。

        消息隊列用于提供任務(wù)間數(shù)據(jù)傳遞的能力。該原型系統(tǒng)在內(nèi)核空間中維護(hù)一個消息的鏈表結(jié)構(gòu)。發(fā)送任務(wù)調(diào)用發(fā)消息接口將消息傳遞給消息隊列,內(nèi)核負(fù)責(zé)將新消息添加至消息隊列的隊尾。接收任務(wù)調(diào)用收消息接口從消息隊列中按照消息的類型字段取出消息。當(dāng)一個任務(wù)向不同的任務(wù)發(fā)送相同內(nèi)容的消息時,只需發(fā)送一個消息,并且將該消息的訪問計數(shù)字段置為重復(fù)次數(shù)。每當(dāng)有任務(wù)取此消息時,訪問計數(shù)字段減1。當(dāng)訪問計數(shù)字段減至0時,該消息將從消息隊列中移除。

        對于發(fā)消息操作,僅提供非阻塞式接口。發(fā)送者在發(fā)消息時,如果消息隊列已滿,則返回錯誤信息,發(fā)送者任務(wù)繼續(xù)執(zhí)行。對于收消息操作,提供阻塞式和非阻塞式兩種接口。接收者在接收操作執(zhí)行時,若有待取的消息存儲在消息隊列上,則接收者將立即獲得消息;若當(dāng)前沒有待取消息存儲在消息隊列上,那么接收者可以選擇阻塞或者不阻塞。在使用阻塞接口的情況下,接收者被插入到消息隊列的等待隊列上之后陷入休眠狀態(tài),等待下一個消息的到來;在使用非阻塞接口的情況下,接收者任務(wù)在獲得一個錯誤碼后可以繼續(xù)執(zhí)行。

        1.4 內(nèi)存管理能力設(shè)計

        操作系統(tǒng)內(nèi)核需要為用戶程序提供分配和釋放內(nèi)存塊的能力。BWDSP100采用指令存儲器和數(shù)據(jù)存儲器獨(dú)立的哈佛結(jié)構(gòu)。該原型系統(tǒng)中僅管理內(nèi)部數(shù)據(jù)存儲器。內(nèi)部數(shù)據(jù)存儲器劃分為四部分:靜態(tài)數(shù)據(jù)區(qū)、內(nèi)核數(shù)據(jù)區(qū)、用戶棧數(shù)據(jù)區(qū)、用戶堆數(shù)據(jù)區(qū),如圖5所示。

        靜態(tài)數(shù)據(jù)區(qū)用于存放全局?jǐn)?shù)據(jù)和靜態(tài)數(shù)據(jù)。內(nèi)核數(shù)據(jù)區(qū)存放操作系統(tǒng)內(nèi)核運(yùn)行時所需的全部數(shù)據(jù)結(jié)構(gòu),包括任務(wù)描述符、信號量、消息隊列等。用戶棧管理區(qū)為每個用戶任務(wù)劃分可配置大小的用戶棧,為用戶應(yīng)用程序的執(zhí)行提供支持。用戶堆管理區(qū)為用戶任務(wù)使用大量數(shù)據(jù)存儲空間提供支持,用戶任務(wù)可以調(diào)用該原型系統(tǒng)提供的分配函數(shù)接口從用戶堆管理區(qū)中獲取內(nèi)存塊,使用釋放接口將已獲得的內(nèi)存塊返回到用戶堆管理區(qū)中。

        1.5 中斷管理能力設(shè)計

        中斷是操作系統(tǒng)內(nèi)核接收外部信息的重要途徑。中斷管理器模塊負(fù)責(zé)封裝底層的設(shè)備接口操作,向操作系統(tǒng)其他部分提供與體系結(jié)構(gòu)無關(guān)的中斷抽象接口,允許用戶編寫中斷服務(wù)程序掛接到中斷上。中斷管理器提供統(tǒng)一的中斷向量表,表中記錄每個中斷向量所對應(yīng)的中斷處理例程。中斷管理器允許發(fā)生中斷嵌套。該原型系統(tǒng)維護(hù)統(tǒng)一的中斷處理棧,所有的中斷處理操作在同一個中斷處理棧中進(jìn)行。

        1.6 時鐘管理能力設(shè)計

        操作系統(tǒng)內(nèi)核的正常運(yùn)行需要系統(tǒng)時間的支持。該原型系統(tǒng)提供時鐘管理模塊用于維護(hù)唯一的系統(tǒng)時間。系統(tǒng)時間以滴答為單位記錄,表示從開機(jī)以來到現(xiàn)在的相對時間。時鐘的更新由定時器中斷服務(wù)程序負(fù)責(zé),在操作系統(tǒng)內(nèi)核初始化時配置硬件定時器按照固定時間間隔發(fā)出中斷,每一個定時器中斷的到來都會引起時鐘滴答更新。內(nèi)核和用戶任務(wù)均可以讀取當(dāng)前時間計數(shù)。利用時鐘管理能力可以實現(xiàn)時間片輪轉(zhuǎn)調(diào)度和性能分析等功能。

        2 實驗和結(jié)果分析

        通過操作系統(tǒng)內(nèi)核原型的引入,BWDSP100具備了多任務(wù)處理的能力。通過一些實驗測試該原型系統(tǒng)的能力。實驗時編寫用戶應(yīng)用程序,將應(yīng)用程序與操作系統(tǒng)內(nèi)核源碼在命令行下利用BWDSP100的開發(fā)工具進(jìn)行編譯和鏈接,生成可執(zhí)行的系統(tǒng)鏡像文件,在集成開發(fā)環(huán)境中加載和執(zhí)行該鏡像文件。在內(nèi)核和用戶應(yīng)用程序中調(diào)用打印函數(shù)輸出當(dāng)前執(zhí)行的信息,這些信息顯示在集成開發(fā)環(huán)境的輸出窗口中。

        2.1 時間片輪轉(zhuǎn)調(diào)度實驗

        在該實驗中,創(chuàng)建3個任務(wù)Task1、Task2和Task3,這三個任務(wù)處于同一優(yōu)先級,每個任務(wù)執(zhí)行一個無限循環(huán),在循環(huán)體中打印文本。這三個任務(wù)按照時間片輪轉(zhuǎn)方式調(diào)度。這個實驗可以驗證中斷管理、時間管理、任務(wù)管理和內(nèi)存管理能力。該實驗執(zhí)行后,集成開發(fā)環(huán)境的輸出窗口如圖6所示。

        從實驗結(jié)果中可以看出,操作系統(tǒng)內(nèi)核可以按照時間片輪轉(zhuǎn)的方式依次調(diào)度3個任務(wù)運(yùn)行,表明中斷管理、時間管理、任務(wù)管理和內(nèi)存管理能力均可以正常工作。

        2.2 信號量管理實驗

        在該實驗中,創(chuàng)建2個信號量和2個用戶任務(wù),任務(wù)TA1先獲取信號量SM1,在不釋放的情況下,調(diào)度任務(wù)TA2執(zhí)行,任務(wù)TA2嘗試獲取信號量SM1。獲取信號量均采用非阻塞方式。該實驗可以驗證任務(wù)管理和通信管理能力。該實驗執(zhí)行后,集成開發(fā)環(huán)境的輸出窗口如圖7所示。

        從實驗結(jié)果可以看出,在任務(wù)TA1持有信號量的情況下,操作系統(tǒng)內(nèi)核組織其他任務(wù)獲取同一信號量,表明該原型系統(tǒng)提供的信號量機(jī)制的正確性。

        2.3 消息隊列管理實驗

        在該實驗中,創(chuàng)建2個任務(wù)TA1和TA2,TA1發(fā)送消息,TA2接收消息,檢查TA2收到的消息與TA1發(fā)送的消息是否一致。該實驗可以驗證任務(wù)管理能力和通信管理能力。該實驗執(zhí)行后,集成開發(fā)環(huán)境的輸出窗口如圖8所示。

        從實驗結(jié)果可以看出,TA1任務(wù)發(fā)送了內(nèi)容為“USTC”的消息,TA2獲取的消息內(nèi)容與TA1發(fā)送的內(nèi)容完全一致,表明該原型系統(tǒng)提供的消息隊列機(jī)制的正確性。

        以上實驗表明,該原型系統(tǒng)的功能基本正確,能夠為BWDSP100和用戶應(yīng)用程序提供多任務(wù)運(yùn)行能力。

        3 結(jié)束語

        本文介紹的操作系統(tǒng)內(nèi)核原型針對BWDSP100設(shè)計,包含了多任務(wù)操作系統(tǒng)的基本功能,能夠為用戶程序提供多任務(wù)運(yùn)行環(huán)境。該原型的功能基本正確,效果良好。未來將開展多核化和優(yōu)化改進(jìn)工作,在博微系列DSP產(chǎn)品中得到進(jìn)一步的應(yīng)用。

        參考文獻(xiàn):

        [1]Tanenbaum A.S(著),陳向群(譯).現(xiàn)代操作系統(tǒng)(原書第三版)[M].北京:機(jī)械工業(yè)出版社,2009.

        [2]TI SYS/BIOS Real-time Operating System v6.x User’s Guide, TI Inc.,2010.

        [3]The Architectural Advantages of OSE in Telecom, Enea Inc.,2010.

        [4]SmartDSP OS Fact Sheet,F(xiàn)reescale Inc.,2004.

        作者簡介:馬宏星,工程師,主要研究方向:導(dǎo)航、SoC芯片設(shè)計、嵌入式軟件設(shè)計;耿銳,高級工程師,主要研究方向:數(shù)字信號處理器、基礎(chǔ)軟件。

        作者單位:中國電子科技集團(tuán)公司第38研究所,合肥 230031

        中文字幕日韩精品美一区二区三区| 精品高清免费国产在线| 成午夜福利人试看120秒| 国精品无码一区二区三区在线蜜臀| 日韩国产一区| 亚州韩国日本区一区二区片| 日本在线一区二区在线| 久久一本日韩精品中文字幕屁孩| 精品国产拍国产天天人| 香蕉视频一级片| 久久久久亚洲AV片无码乐播 | 最新永久无码AV网址亚洲| 国产在线视频网站不卡| 婷婷久久精品国产色蜜蜜麻豆| 少妇激情一区二区三区视频| 国产精品美女久久久久久2018 | 精品三级国产一区二区三 | 成年视频国产免费观看| 中文字幕精品一区二区日本 | 国产91精品成人不卡在线观看| 国产在线精品亚洲视频在线| 手机av在线中文字幕| 国产亚洲日本精品无码 | 亚洲七七久久综合桃花| 一本色道久久88综合亚洲精品 | 精品亚洲一区中文字幕精品| 青青草 视频在线观看| 久久久久女人精品毛片| 亚洲日产无码中文字幕| 久久狼人国产综合精品| 亚洲av成人片色在线观看高潮| 国产综合无码一区二区色蜜蜜| 九九精品视频在线观看| 蜜桃视频在线免费观看一区二区| 久久久亚洲av成人乱码| 亚洲 欧美 偷自乱 图片| 亚洲啪av永久无码精品放毛片| 高清国产日韩欧美| 四虎在线中文字幕一区| 国产freesexvideos中国麻豆| 亚洲中文字幕无码久久2020|