国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于hypervisor構(gòu)架的虛擬非易失閃存存儲器件設(shè)備設(shè)計(jì)方法

      文檔序號:7903298閱讀:247來源:國知局
      專利名稱:基于hypervisor構(gòu)架的虛擬非易失閃存存儲器件設(shè)備設(shè)計(jì)方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于嵌入式系統(tǒng)驅(qū)動程序設(shè)計(jì)領(lǐng)域,具體涉及對支持基于hypervisor構(gòu)架的虛擬nand flash設(shè)備的設(shè)計(jì)方法。
      背景技術(shù)
      hypervisor構(gòu)架指的是管理硬件資源和虛擬化環(huán)境維護(hù)的虛擬機(jī)監(jiān)控器及其上運(yùn)行著的多個(gè)客戶系統(tǒng)的體系結(jié)構(gòu)。在該構(gòu)架中,虛擬機(jī)監(jiān)控器(Virtual Machine Monitor,以下簡稱VMM)不只是一個(gè)完整的操作系統(tǒng),同時(shí)還支持多個(gè)客戶系統(tǒng)以任務(wù)的形式運(yùn)行。具體來說,VMM —方面需要管理眾多硬件資源(如CPU、內(nèi)存、1/0設(shè)備),分配內(nèi)存空間,并調(diào)度任務(wù)運(yùn)行,另一方面還需要為客戶系統(tǒng)提供運(yùn)行所需要的虛擬化環(huán)境,如抽象的硬件接口及客戶系統(tǒng)與VMM間的通信機(jī)制。nand flash是一種非易失閃存存儲器件,它具有較高的存儲密度和單位尺寸下較高的存儲容量,被廣泛用于娛樂電子設(shè)備中。這類電子設(shè)備一般將軟件系統(tǒng)保存在nand flash中,等待設(shè)備上電啟動后運(yùn)行位于flash中的軟件系統(tǒng),并在運(yùn)行過程中將數(shù)據(jù)永久的存儲在flash中。在hypervisor構(gòu)架中,多個(gè)客戶操作系統(tǒng)需要將其文件系統(tǒng)和運(yùn)行信息存儲于flash。為了使多個(gè)客戶系統(tǒng)能同時(shí)對nand flash操作,就需要提供一種機(jī)制,保證各個(gè)客戶系統(tǒng)互斥地對nand flash的訪問。目前流行的虛擬化方案有Vmware和Xen,但他們主要針對PC常用的外設(shè)進(jìn)行虛擬化,而nand flash主要應(yīng)用于嵌入式領(lǐng)域,故均未涉及nand flash設(shè)備的虛擬化。另外,同 Xen采用的分離驅(qū)動模型相比,本專利所敘述的方法不需專門編寫額外的前端驅(qū)動,也不會因?yàn)楹蠖蓑?qū)動進(jìn)行服務(wù)轉(zhuǎn)發(fā)而造成的客戶系統(tǒng)間外設(shè)訪問負(fù)載的不平衡。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供一種虛擬nand flash設(shè)備的設(shè)計(jì)方法。通過虛擬nand flash設(shè)備,多個(gè)客戶操作系統(tǒng)能夠共享該設(shè)備,并進(jìn)行直接的訪問。虛擬nand flash能夠最大限度的利用已有成熟驅(qū)動程序,僅進(jìn)行少量的修改,提高了可移植性。為了達(dá)到上述目的,本發(fā)明采用以下技術(shù)方案予以實(shí)現(xiàn)基于hypervisor構(gòu)架的虛擬非易失閃存存儲器件設(shè)備設(shè)計(jì)方法,客戶系統(tǒng)利用虛擬機(jī)監(jiān)控器中的實(shí)時(shí)線程作為服務(wù)代理,獲取對非易失閃存存儲器件資源的訪問要求; 客戶系統(tǒng)通過發(fā)消息的方式通知實(shí)時(shí)線程請求或釋放非易失閃存存儲器件的訪問權(quán),實(shí)時(shí)線程完成相應(yīng)要求后將結(jié)果以消息的方式發(fā)送回客戶操作系統(tǒng)。訪問非易失閃存存儲器件前先獲取互斥量結(jié)構(gòu)體,某個(gè)客戶系統(tǒng)一旦獲取該互斥量即可開始對非易失閃存存儲器件直接進(jìn)行訪問;若客戶系統(tǒng)希望申請已被占用的互斥量,則其代理的實(shí)時(shí)線程掛入該互斥量的任務(wù)等待鏈表,直至該互斥量被釋放后才被喚醒, 完成對非易失閃存存儲器件互斥量的申請。
      所述非易失閃存存儲器件是nand flash,nand flash具有較高的存儲密度和單位尺寸下較高的存儲容量。該方法可使得多個(gè)客戶系統(tǒng)利用同一硬件平臺上的nand flash硬件資源進(jìn)行文件系統(tǒng)和資源信息的存儲,從而在一個(gè)硬件平臺上整合多個(gè)操作系統(tǒng),適用于安全以及多核調(diào)度領(lǐng)域。


      圖1為雙客戶系統(tǒng)虛擬nand flash驅(qū)動框架結(jié)構(gòu)示意圖;圖2為雙客戶系統(tǒng)通過實(shí)時(shí)線程操作nand flash相關(guān)的互斥量過程示意圖;圖3為nand flash相關(guān)互斥量的申請過程示意圖;圖4為雙客戶系統(tǒng)操作nand flash互斥量執(zhí)行過程示意圖。
      具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明做進(jìn)一步詳細(xì)描述參見圖1-4,針對客戶系統(tǒng),將nand flash的訪問權(quán)設(shè)定為一個(gè)互斥量,當(dāng)客戶系統(tǒng)需要訪問nand flash時(shí),必須首先申請?jiān)摶コ饬?。若nand flash未被使用,則可申請到該互斥量,然后利用nand flash原有驅(qū)動程序執(zhí)行設(shè)備操作,使用完nand flash后釋放該互斥量(如圖1所示)。因VMM負(fù)責(zé)管理硬件資源,并將這些資源抽象成若干數(shù)據(jù)結(jié)構(gòu)。對nand flash 來說,VMM利用互斥量表示對該資源的訪問權(quán),其特點(diǎn)是最多只有一個(gè)用戶能訪問到nand flash。由于這個(gè)互斥量位于VMM端,客戶系統(tǒng)無法直接訪問,故需要通過nand flash相關(guān)的實(shí)時(shí)線程作為代理,訪問互斥量信息,并將結(jié)果反饋回客戶系統(tǒng)。為實(shí)現(xiàn)上述過程,需要在VMM端為每個(gè)客戶系統(tǒng)創(chuàng)建一個(gè)處理nand flash服務(wù)的實(shí)時(shí)線程,該線程優(yōu)先級較客戶系統(tǒng)高,且與其通信主要通過消息方式。該實(shí)時(shí)線程在啟動后即處于阻塞狀態(tài),當(dāng)有客戶系統(tǒng)發(fā)送nand flash訪問請求時(shí),才被喚醒并執(zhí)行相應(yīng)設(shè)備操作(如圖2所示)。當(dāng)客戶系統(tǒng)需要訪問nand flash設(shè)備時(shí),首先創(chuàng)建一個(gè)請求服務(wù)的消息,并向其對應(yīng)的服務(wù)線程發(fā)送該請求,后者由于優(yōu)先級較高而被立即喚醒并處理接收到的消息。通過該消息的具體參數(shù),識別出客戶系統(tǒng)需要訪問nand flash,則由該實(shí)時(shí)線程申請硬件資源對應(yīng)的互斥量,申請成功后向客戶系統(tǒng)發(fā)送響應(yīng)消息,客戶系統(tǒng)接著使用原有驅(qū)動程序訪問硬件外設(shè)(如圖3所示)。若申請互斥量失敗,說明互斥量之前已被申請過,則該客戶系統(tǒng)及其對應(yīng)的nand flash相關(guān)實(shí)時(shí)線程被阻塞,等待該互斥量被釋放。當(dāng)某個(gè)客戶系統(tǒng)完成nand flash操作時(shí),需要釋放該設(shè)備資源對應(yīng)的互斥量。具體來說,客戶系統(tǒng)創(chuàng)建一個(gè)釋放資源的消息,并向其對應(yīng)的服務(wù)線程發(fā)送該請求,后者由于優(yōu)先級較高而被立即喚醒并處理接收到的消息。通過該消息的具體參數(shù),識別出客戶系統(tǒng)需要放棄對nand flash的操作,則由該實(shí)時(shí)線程釋放該互斥量。在釋放互斥量的過程中,如果有其他實(shí)時(shí)線程等待該互斥量,則會喚醒該實(shí)時(shí)線程,使其獲得互斥量。也就是說,nand flash相關(guān)的互斥量被釋放后,等待訪問nand flash的實(shí)時(shí)線程會被喚醒并獲取該nandflash的訪問權(quán)。被喚醒的實(shí)時(shí)線程接著處理獲取到的互斥量,并創(chuàng)建一條成功獲取的消息,發(fā)送給等待著的客戶系統(tǒng)(如圖4所示)。虛擬nand flash的實(shí)施主要體現(xiàn)在對相關(guān)實(shí)時(shí)線程的創(chuàng)建、客戶系統(tǒng)與實(shí)時(shí)線程間的通信以及對互斥量的操作過程中。1)與nand flash相關(guān)實(shí)時(shí)線程的創(chuàng)建由于nand flash所代表的互斥量位于VMM地址空間中,客戶系統(tǒng)無法直接進(jìn)行申請或釋放等操作,故需要通過VMM端的實(shí)時(shí)線程操作互斥量,并由客戶系統(tǒng)通知實(shí)時(shí)線程完成特定的工作。也就是說,實(shí)時(shí)線程起到為客戶系統(tǒng)提供訪問互斥量的代理的作用。在VMM啟動并創(chuàng)建某個(gè)客戶系統(tǒng)時(shí),就需要創(chuàng)建與nand flash相關(guān)的實(shí)時(shí)線程。 通過等待客戶系統(tǒng)的請求消息,線程將自己阻塞,這類似于Iinux系統(tǒng)中的守護(hù)線程。2)客戶系統(tǒng)與實(shí)時(shí)線程間的通信客戶系統(tǒng)與實(shí)時(shí)線程間的通信是通過發(fā)送消息的方式實(shí)現(xiàn)的??蛻粝到y(tǒng)需要請求 nand flash服務(wù)時(shí),只要通過客戶系統(tǒng)與VMM間的接口函數(shù)向?qū)崟r(shí)線程發(fā)送某項(xiàng)消息。由于實(shí)時(shí)線程的優(yōu)先級較高,之前處于阻塞狀態(tài)的實(shí)時(shí)線程被喚醒并立即執(zhí)行。通過該消息的具體參數(shù),識別出客戶系統(tǒng)需要訪問nand flash,則由該實(shí)時(shí)線程申請?jiān)撚布Y源對應(yīng)的互斥量。在成功申請到互斥量后,實(shí)時(shí)線程創(chuàng)建一條響應(yīng)消息并將其發(fā)送給客戶系統(tǒng),使后者繼續(xù)執(zhí)行。類似的,當(dāng)客戶系統(tǒng)使用完nand flash,需要放棄相關(guān)服務(wù)時(shí),需要創(chuàng)建一條釋放消息并將其發(fā)送給實(shí)時(shí)線程。該實(shí)時(shí)線程通過消息的參數(shù)識別出客戶系統(tǒng)需要釋放互斥量,則調(diào)用函數(shù)將互斥量釋放,最后發(fā)送操作成功的消息給客戶系統(tǒng)。3)對互斥量的操作代表nand flash資源訪問權(quán)的互斥量在VMM啟動時(shí)就被初始化。當(dāng)某個(gè)與nand flash相關(guān)的實(shí)時(shí)線程作為客戶系統(tǒng)的代理來申請?jiān)撚布O(shè)備資源時(shí),會調(diào)用函數(shù)來申請對應(yīng)互斥量的使用權(quán)。若該互斥量當(dāng)前并未使用,則可直接申請到該互斥量,否則,需要將線程自身阻塞,掛入互斥量結(jié)構(gòu)體中的等待任務(wù)鏈表。當(dāng)實(shí)時(shí)線程執(zhí)行釋放互斥量的操作時(shí),會查看是否有任務(wù)在等待該互斥量,若有則喚醒等待著的實(shí)時(shí)線程,使其獲取該互斥量,并調(diào)度其執(zhí)行。最后創(chuàng)建操作完成的消息,并向客戶系統(tǒng)發(fā)送該消息。以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實(shí)施方式
      僅限于此,對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單的推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明由所提交的權(quán)利要求書確定專利保護(hù)范圍。
      權(quán)利要求
      1.基于hypervisor構(gòu)架的虛擬非易失閃存存儲器件設(shè)備設(shè)計(jì)方法,其特征在于客戶系統(tǒng)利用虛擬機(jī)監(jiān)控器中的實(shí)時(shí)線程作為服務(wù)代理,獲取對非易失閃存存儲器件資源的訪問要求;客戶系統(tǒng)通過發(fā)消息的方式通知實(shí)時(shí)線程請求或釋放非易失閃存存儲器件的訪問權(quán),實(shí)時(shí)線程完成相應(yīng)要求后將結(jié)果以消息的方式發(fā)送回客戶操作系統(tǒng)。
      2.如權(quán)利要求1所述的虛擬非易失閃存存儲器件設(shè)備設(shè)計(jì)方法,其特征在于訪問非易失閃存存儲器件前先獲取互斥量結(jié)構(gòu)體,某個(gè)客戶系統(tǒng)一旦獲取該互斥量即可開始對非易失閃存存儲器件直接進(jìn)行訪問;若客戶系統(tǒng)希望申請已被占用的互斥量,則其代理的實(shí)時(shí)線程掛入該互斥量的任務(wù)等待鏈表,直至該互斥量被釋放后才被喚醒,完成對非易失閃存存儲器件互斥量的申請。
      3.如權(quán)利要求1所述的虛擬非易失閃存存儲器件設(shè)備設(shè)計(jì)方法,其特征在于所述非易失閃存存儲器件是nand flash,nand flash具有較高的存儲密度和單位尺寸下較高的存儲容量。
      全文摘要
      本發(fā)明涉及一種虛擬nand flash設(shè)計(jì)方法,公開一種基于hypervisor構(gòu)架的虛擬nand flash設(shè)備設(shè)計(jì)方法。本發(fā)明主要是將nandflash的訪問權(quán)設(shè)置為一個(gè)互斥量結(jié)構(gòu)體,客戶系統(tǒng)利用虛擬機(jī)監(jiān)控器(VMM)中的實(shí)時(shí)線程作為服務(wù)代理來操作該互斥量??蛻粝到y(tǒng)和實(shí)時(shí)線程間通過消息的方式通信以進(jìn)行nand flash設(shè)備服務(wù)的請求和釋放。該方法可使得多個(gè)客戶系統(tǒng)利用同一硬件平臺上的nandflash硬件資源進(jìn)行文件系統(tǒng)和資源信息的存儲,從而在一個(gè)硬件平臺上整合多個(gè)操作系統(tǒng),適用于安全以及多核調(diào)度領(lǐng)域。
      文檔編號H04L29/08GK102325178SQ20111026362
      公開日2012年1月18日 申請日期2011年9月7日 優(yōu)先權(quán)日2011年9月7日
      發(fā)明者于濤, 馮升, 李國輝, 梅魁志, 馬振克 申請人:西安交通大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1