欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)處理方法和電子設(shè)備與流程

文檔序號:12886993閱讀:207來源:國知局
一種數(shù)據(jù)處理方法和電子設(shè)備與流程

本發(fā)明涉及電子設(shè)備領(lǐng)域,特別涉及一種數(shù)據(jù)處理方法和電子設(shè)備。



背景技術(shù):

虛擬機(jī)的io性能是虛擬機(jī)的關(guān)鍵技術(shù)指標(biāo),目前采用半虛擬化機(jī)制來提高虛擬機(jī)的io吞吐量?,F(xiàn)有技術(shù)中,半虛擬化的io內(nèi)存共享環(huán)是由虛擬機(jī)分配的,而對應(yīng)的物理機(jī)上的物理內(nèi)存是散碎的。每次在執(zhí)行虛擬機(jī)的io操作時(shí),都需要完成負(fù)責(zé)從gpa到hva的轉(zhuǎn)換,處理過程繁瑣且效率低。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的實(shí)施方式提供了一種能夠有效的提高虛擬機(jī)的io性能的數(shù)據(jù)處理方法和電子設(shè)備。

為了解決上述技術(shù)問題,本發(fā)明提供了如下的技術(shù)方案:

本發(fā)明的一個(gè)方面提供了一種數(shù)據(jù)處理方法,其包括:

在運(yùn)行虛擬機(jī)并監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),生成需要被寫入或讀出的內(nèi)存數(shù)據(jù)在虛擬機(jī)的第一地址空間內(nèi)所對應(yīng)的地址參數(shù);

基于該地址參數(shù)從為所述虛擬機(jī)分配的連續(xù)地的第二地址空間中查詢與該地址參數(shù)對應(yīng)的物理內(nèi)存的第二地址;以及

將需要被輸入的內(nèi)存數(shù)據(jù)輸入至第二地址中,或者從所述第二地址中輸出需要被輸出的內(nèi)存數(shù)據(jù)。

進(jìn)一步地,作為非限定性的實(shí)施方式,根據(jù)本發(fā)明的數(shù)據(jù)處理方法還可包括:在虛擬機(jī)啟動(dòng)或者虛擬機(jī)在監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),從cpu中讀取其加載的關(guān)于虛擬機(jī)的第一地址空間的信息,所述第一地址空間的信息包括第一地址空間的首地址和第一地址空間的地址長度。

進(jìn)一步地,作為非限定性的實(shí)施方式,根據(jù)本發(fā)明的數(shù)據(jù)處理方法還可包括:

在虛擬機(jī)未被運(yùn)行的第一模式下,為虛擬機(jī)分配所述第二地址空間作為共享內(nèi)存;

從虛擬機(jī)的虛擬內(nèi)存中選擇第一地址空間;以及

將所述第一地址空間的信息存儲(chǔ)至虛擬機(jī)管理模塊中。

進(jìn)一步地,作為非限定性的實(shí)施方式,根據(jù)本發(fā)明的數(shù)據(jù)處理方法還可包括:在虛擬機(jī)運(yùn)行的第二模式下,cpu從虛擬機(jī)管理模塊中加載關(guān)于所述虛擬機(jī)的第一地址空間的信息。

根據(jù)本發(fā)明,所述在運(yùn)行虛擬機(jī)并監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),生成需要被寫入或讀出的內(nèi)存數(shù)據(jù)在虛擬機(jī)的第一地址空間內(nèi)所對應(yīng)的地址參數(shù)包括:

在在運(yùn)行虛擬機(jī)并監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),生成所述內(nèi)存數(shù)據(jù)對應(yīng)于第一地址空間的首地址的偏移地址信息;以及

基于所述偏移地址信息生成需要被寫入或讀出的內(nèi)存數(shù)據(jù)在虛擬機(jī)的第一地址空間內(nèi)所對應(yīng)的地址參數(shù)。

本發(fā)明的另一個(gè)方面提供了一種電子設(shè)備,其包括:

處理器,其配置為在運(yùn)行虛擬機(jī)并監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),生成需要被寫入或讀出的內(nèi)存數(shù)據(jù)在虛擬機(jī)的第一地址空間內(nèi)所對應(yīng)的地址參數(shù);

基于該地址參數(shù)從為所述虛擬機(jī)分配的連續(xù)地的第二地址空間中查詢與該地址參數(shù)對應(yīng)的物理內(nèi)存的第二地址;以及

將需要被輸入的內(nèi)存數(shù)據(jù)輸入至第二地址中,或者從所述第二地址中輸出需要被輸出的內(nèi)存數(shù)據(jù)。

進(jìn)一步地,作為非限定性的實(shí)施方式,根據(jù)本發(fā)明的電子設(shè)備中,所述處理器還進(jìn)一步配置為在虛擬機(jī)啟動(dòng)或者虛擬機(jī)在監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),從cpu中讀取其加載的關(guān)于虛擬機(jī)的第一地址空間的信息,所述第一地址空間的信息包括第一地址空間的首地址和第一地址空間的地址長度。

進(jìn)一步地,作為非限定性的實(shí)施方式,根據(jù)本發(fā)明的電子設(shè)備中,處理器還配置為在虛擬機(jī)未被運(yùn)行的第一模式下,為虛擬機(jī)分配所述第二地址空間作為共享內(nèi)存;

從虛擬機(jī)的虛擬內(nèi)存中選擇第一地址空間;以及

將所述第一地址空間的信息存儲(chǔ)至虛擬機(jī)管理模塊中。

進(jìn)一步地,作為非限定性的實(shí)施方式,根據(jù)本發(fā)明的電子設(shè)備中,處理器還配置為在虛擬機(jī)運(yùn)行的第二模式下,cpu從虛擬機(jī)管理模塊中加載關(guān)于所述虛擬機(jī)的第一地址空間的信息。

進(jìn)一步地,作為非限定性的實(shí)施方式,根據(jù)本發(fā)明的電子設(shè)備中,處理器還配置為在在運(yùn)行虛擬機(jī)并監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),生成所述內(nèi)存數(shù)據(jù)對應(yīng)于第一地址空間的首地址的偏移地址信息;以及

基于所述偏移地址信息生成需要被寫入或讀出的內(nèi)存數(shù)據(jù)在虛擬機(jī)的第一地址空間內(nèi)所對應(yīng)的地址參數(shù)。

基于以上所述的根據(jù)本發(fā)明的數(shù)據(jù)處理方法和電子設(shè)備,本發(fā)明的實(shí)施方式可具備如下顯著的有益效果:

本發(fā)明的實(shí)施方式通過在內(nèi)存空間中為虛擬機(jī)分配連續(xù)的內(nèi)存地址,而方便的建立虛擬機(jī)的虛擬地址與物理地址之間的映射關(guān)系,從而增加虛擬機(jī)io處理速率。

附圖說明

圖1為現(xiàn)有訪問流程機(jī)制流程圖圖;

圖2為根據(jù)本發(fā)明的實(shí)施方式的訪問流程機(jī)制效果圖;

圖3為根據(jù)本發(fā)明的實(shí)施方式的訪問流程機(jī)制原理示意圖;

圖4為本發(fā)明實(shí)施例的一種數(shù)據(jù)處理方法的流程圖;

圖5為本發(fā)明實(shí)施例中共享內(nèi)存訪問原理流程圖;

圖6為本發(fā)明實(shí)施例中的電子設(shè)備的原理結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面,結(jié)合附圖對本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)的描述,但不作為本發(fā)明的限定。

應(yīng)理解的是,可以對此處公開的實(shí)施方式做出各種修改。因此,上述說明書不應(yīng)該視為限制,而僅是作為實(shí)施方式的范例。本領(lǐng)域的技術(shù)人員將想到在本公開的范圍和精神內(nèi)的其他修改。

包含在說明書中并構(gòu)成說明書的一部分的附圖示出了本公開的實(shí)施方式,并且與上面給出的對本公開的大致描述以及下面給出的對實(shí)施方式的詳細(xì)描述一起用于解釋本公開的原理。

通過下面參照附圖對給定為非限制性實(shí)例的實(shí)施方式的優(yōu)選形式的描述,本發(fā)明的這些和其它特性將會(huì)變得顯而易見。

還應(yīng)當(dāng)理解,盡管已經(jīng)參照一些具體實(shí)例對本發(fā)明進(jìn)行了描述,但本領(lǐng)域技術(shù)人員能夠確定地實(shí)現(xiàn)本發(fā)明的很多其它等效形式,它們具有如權(quán)利要求所述的特征并因此都位于借此所限定的保護(hù)范圍內(nèi)。

當(dāng)結(jié)合附圖時(shí),鑒于以下詳細(xì)說明,本公開的上述和其他方面、特征和優(yōu)勢將變得更為顯而易見。

此后參照附圖描述本公開的具體實(shí)施方式;然而,應(yīng)當(dāng)理解,所公開的實(shí)施方式僅僅是本公開的實(shí)例,其可采用多種方式實(shí)施。熟知和/或重復(fù)的功能和結(jié)構(gòu)并未詳細(xì)描述以避免不必要或多余的細(xì)節(jié)使得本公開模糊不清。因此,本文所公開的具體的結(jié)構(gòu)性和功能性細(xì)節(jié)并非意在限定,而是僅僅作為權(quán)利要求的基礎(chǔ)和代表性基礎(chǔ)用于教導(dǎo)本領(lǐng)域技術(shù)人員以實(shí)質(zhì)上任意合適的詳細(xì)結(jié)構(gòu)多樣地使用本公開。

本說明書可使用詞組“在一種實(shí)施方式中”、“在另一個(gè)實(shí)施方式中”、“在又一實(shí)施方式中”或“在其他的實(shí)施方式中”,其均可指代根據(jù)本公開的相同或不同實(shí)施方式中的一個(gè)或多個(gè)。

下面,結(jié)合附圖詳細(xì)的說明本發(fā)明的實(shí)施方式。

虛擬機(jī)的數(shù)據(jù)的輸入輸出(io)性能是虛擬機(jī)的關(guān)鍵技術(shù)指標(biāo),現(xiàn)有技術(shù)中,在作為電信級的虛擬機(jī)中,大多使用的是半虛擬化機(jī)制來進(jìn)行數(shù)據(jù)的輸入輸出(io)操作。如果加速半虛擬化機(jī)制,則可以提高虛擬機(jī)的io吞吐量,滿足電信級需求。例如,提高虛擬機(jī)的報(bào)文收發(fā)效率或者使其達(dá)到線速等需求。針對上述問題的現(xiàn)有的解決方案包括virtio半虛擬化驅(qū)動(dòng),然而,該方案存在著一定的缺點(diǎn),包括:半虛擬化的io內(nèi)存共享環(huán)是虛擬機(jī)(guest)分配的,但在host上的內(nèi)存是散碎分布的,這就增加了物理機(jī)(host)上的內(nèi)存碎片;同時(shí)每次處理io內(nèi)存完時(shí),都需要完成從虛擬內(nèi)存到物理內(nèi)存地址的轉(zhuǎn)換過程。圖1為現(xiàn)有訪問流程機(jī)制效果圖。如圖1所示,在現(xiàn)有機(jī)制中,共享內(nèi)存在host上是非連續(xù)且分散的,這會(huì)很容易地形成內(nèi)存碎片。并且,現(xiàn)有機(jī)制中每次訪問物理地址需要經(jīng)過如圖1示出的12個(gè)步驟才可以訪問到目標(biāo)內(nèi)存,效率低下,不能滿足電信級需求。

在現(xiàn)有技術(shù)的基礎(chǔ)上,本發(fā)明實(shí)施例提供了一種可省略冗余的步驟操作,可以方便的從虛擬內(nèi)存映射到物理內(nèi)存上,可以方便直接的進(jìn)行讀寫,從而大大簡化了io操作。

如圖2所示,為根據(jù)本發(fā)明的一個(gè)實(shí)施方式的訪問流程機(jī)制的原理示意圖。圖3為根據(jù)本發(fā)明的實(shí)施方式的訪問流程機(jī)制原理示意圖;圖4為本發(fā)明實(shí)施例的一種數(shù)據(jù)處理方法的流程圖。

根據(jù)本發(fā)明實(shí)施例,處理器(例如cpu)可以為虛擬機(jī)分配物理內(nèi)存供虛擬機(jī)作為虛擬機(jī)虛擬內(nèi)存使用,以用于虛擬機(jī)的運(yùn)行。該分配的共享內(nèi)存在host的物理地址空間上是連續(xù)的,這將不易出現(xiàn)內(nèi)存碎片,并且,虛擬機(jī)在使用內(nèi)存地址時(shí)可以直接根據(jù)首地址以及與首地址的偏移信息或者直接可以根據(jù)虛擬內(nèi)存地址gpa的索引可以直接對應(yīng)到物理機(jī)上的物理內(nèi)存的地址hpa。在此基礎(chǔ)上,使用索引即可以得到實(shí)際的物理地址,因而只需要進(jìn)行1步操作即可訪問到共享內(nèi)存,效率相較于現(xiàn)有技術(shù)有了極大的提高,可以充分滿足電信級需求。

如圖4所示,本發(fā)明實(shí)施例中的數(shù)據(jù)處理方法可以包括:

在運(yùn)行虛擬機(jī)并監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),生成需要被寫入或讀出的內(nèi)存數(shù)據(jù)在虛擬機(jī)的第一地址空間內(nèi)所對應(yīng)的地址參數(shù);

基于該地址參數(shù)從為所述虛擬機(jī)分配的連續(xù)地的第二地址空間中查詢與該地址參數(shù)對應(yīng)的物理內(nèi)存的第二地址;以及

將需要被輸入的內(nèi)存數(shù)據(jù)輸入至第二地址中,或者從所述第二地址中輸出需要被輸出的內(nèi)存數(shù)據(jù)。

本發(fā)明實(shí)施例中,虛擬機(jī)運(yùn)行時(shí),處理器可以通過前端驅(qū)動(dòng)監(jiān)測到虛擬機(jī)的內(nèi)存訪問請求,該訪問請求可以在需要向內(nèi)存寫入數(shù)據(jù)或者從內(nèi)存讀出內(nèi)存數(shù)據(jù)的情況下生成,并且該訪問請求中包括關(guān)于所需訪問的內(nèi)存地址的索引信息,該索引信息可以是相對于首地址的偏移量,也可以是唯一對應(yīng)于物理內(nèi)存地址和虛擬內(nèi)存地址的標(biāo)識。上述索引信息作為第一地址空間的地址參數(shù)。處理器在接收到訪問請求后會(huì)從第二模式切換到第一模式,并通過后端驅(qū)動(dòng)基于上述第一地址空間的地址參數(shù)查詢對應(yīng)映射的物理內(nèi)存中的第二地址空間的地址,從而將需要被輸入的內(nèi)存數(shù)據(jù)輸入至第二地址中,或者從所述第二地址中輸出需要被輸出的內(nèi)存數(shù)據(jù)。由此,本發(fā)明實(shí)施例在物理內(nèi)存上的共享地址是連續(xù)的,從而大大避免了內(nèi)存碎片的產(chǎn)生;以及guest和host直接通過地址索引信息即可直接訪問到目標(biāo)內(nèi)存,這也充分避免了每次gap到hva的軟件轉(zhuǎn)換。

另外,本發(fā)明實(shí)施例中,在虛擬機(jī)啟動(dòng)或者虛擬機(jī)在監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),可以從處理器讀取其加載的關(guān)于虛擬機(jī)的第一地址空間的信息,所述第一地址空間的信息包括第一地址空間的首地址和第一地址空間的地址長度。

具體的,在虛擬機(jī)未運(yùn)行時(shí),處理器可以通過后端驅(qū)動(dòng)為虛擬機(jī)分配虛擬內(nèi)存,并將該虛擬內(nèi)存的首地址和地址長度信息加載到虛擬機(jī)管理模塊(vmcs)中,該虛擬機(jī)管理模塊可以為構(gòu)造為增加了兩個(gè)擴(kuò)展域,該兩個(gè)擴(kuò)展域分別用于存儲(chǔ)首地址和地址長度信息。同時(shí),處理器還可以從物理內(nèi)存中選擇出一連續(xù)地址作為第二地址空間,以用于虛擬機(jī)的運(yùn)行使用,并建立第一地址空間的地址和第二地址空間的地址的映射關(guān)系表,該映射關(guān)系表可以存儲(chǔ)在處理器中也可以存儲(chǔ)在其他的存儲(chǔ)器中,處理器可以基于上述第一地址空間的地址參數(shù)對應(yīng)的查詢到第二地址空間的地址信息,從而直接執(zhí)行數(shù)據(jù)的寫入或讀出。本發(fā)明實(shí)施例中第一地址空間的長度大于第二地址空間的長度。

另外,在運(yùn)行虛擬機(jī)的第二模式下,處理器可以從虛擬機(jī)管理模塊中加載關(guān)于第一地址空間的信息,其中包括虛擬內(nèi)存的長度length,以及首地址信息。從而使得虛擬機(jī)運(yùn)行時(shí)能夠?qū)?yīng)的查詢到第一地址空間的信息。

也就是說,根據(jù)本發(fā)明的數(shù)據(jù)處理方法可以包括:在虛擬機(jī)未被運(yùn)行的模式(第一模式)下,為虛擬機(jī)分配所述guest物理地址空間作為共享內(nèi)存;從虛擬機(jī)的虛擬內(nèi)存中選擇host物理地址空間,長度可為length,并利用共享內(nèi)存在host上的起始地址hva和未使用的guest地址段的起始地址gap建立一一映射的關(guān)系表,從而完成hva至gpa的映射關(guān)系的建立。由此,上述共享內(nèi)存在guest物理地址空間中的起始地址可以為gap,且長度可以為length;以及還可以將共享內(nèi)存在guest的起始地址gap及長度length等信息存儲(chǔ)至虛擬機(jī)管理模塊vmcs的兩個(gè)擴(kuò)展域,如ringbase_gpa和ringlen域中。

在運(yùn)行虛擬機(jī)(第二模式),處理器將自動(dòng)加載虛擬機(jī)管理模塊vmcs的ringbase_gpa和ringlen兩個(gè)與域中的信息加載到兩個(gè)寄存器中,如vrbr寄存器和vrlr寄存器。在啟動(dòng)虛擬機(jī)或者在虛擬機(jī)監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)(共享內(nèi)存)時(shí),從處理器的寄存器中讀取其加載的ringbase_gpa和ringlen中儲(chǔ)存的第一地址空間的信息,所述信息包括guest的起始地址gap及地址長度length,然后即可在虛擬機(jī)中預(yù)留出共享內(nèi)存所占用的空間。

所述在運(yùn)行虛擬機(jī)并監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),生成需要被寫入或讀出的內(nèi)存數(shù)據(jù)在虛擬機(jī)的host物理地址空間內(nèi)所對應(yīng)的地址參數(shù)包括:在在運(yùn)行虛擬機(jī)并監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),生成所述內(nèi)存數(shù)據(jù)對應(yīng)于host物理地址空間的起始地址hva的偏移地址信息;以及基于所述偏移地址信息生成需要被寫入或讀出的內(nèi)存數(shù)據(jù)在虛擬機(jī)的host物理地址空間內(nèi)所對應(yīng)的地址參數(shù)。

具體地,如圖5所示,為本發(fā)明實(shí)施例中共享內(nèi)存訪問原理流程圖,其中可以包括:

在判斷為需要訪問第一地址空間時(shí),獲得目標(biāo)內(nèi)存的索引index;

根據(jù)gpa和hap之間的映射關(guān)系并基于所述索引index,即可以得到目標(biāo)內(nèi)存(第二地址空間內(nèi)的目標(biāo)地址)。

通過本發(fā)明的上述數(shù)據(jù)處理方法,在內(nèi)存空間中為虛擬機(jī)分配連續(xù)的內(nèi)存地址,而方便的建立虛擬機(jī)的虛擬地址與物理地址之間的映射關(guān)系,從而增加虛擬機(jī)io處理速率。

另外,本發(fā)明實(shí)施例還提供了一種電子設(shè)備,該電子設(shè)備可以應(yīng)用上述數(shù)據(jù)處理方法,其可省略冗余的步驟操作,可以方便的從虛擬內(nèi)存映射到物理內(nèi)存上,可以方便直接的進(jìn)行讀寫,從而大大簡化了io操作。

如圖6所示為本發(fā)明實(shí)施例中的電子設(shè)備的原理結(jié)構(gòu)示意圖,其中該電子設(shè)備可以包括:處理器100和虛擬機(jī)管理模塊200。其中處理器100可以在運(yùn)行虛擬機(jī)并監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),生成需要被寫入或讀出的內(nèi)存數(shù)據(jù)在虛擬機(jī)的第一地址空間內(nèi)所對應(yīng)的地址參數(shù);基于該地址參數(shù)從為所述虛擬機(jī)分配的連續(xù)地的第二地址空間中查詢與該地址參數(shù)對應(yīng)的物理內(nèi)存的第二地址;以及將需要被輸入的內(nèi)存數(shù)據(jù)輸入至第二地址中,或者從所述第二地址中輸出需要被輸出的內(nèi)存數(shù)據(jù)。

處理器100(例如cpu)可以為虛擬機(jī)分配物理內(nèi)存供虛擬機(jī)作為虛擬機(jī)虛擬內(nèi)存使用,以用于虛擬機(jī)的運(yùn)行。該分配的共享內(nèi)存在host的物理地址空間上是連續(xù)的,這將不易出現(xiàn)內(nèi)存碎片,并且,虛擬機(jī)在使用內(nèi)存地址時(shí)可以直接根據(jù)首地址以及與首地址的偏移信息或者直接可以根據(jù)虛擬內(nèi)存地址gpa的索引可以直接對應(yīng)到物理機(jī)上的物理內(nèi)存的地址hpa。在此基礎(chǔ)上,使用索引即可以得到實(shí)際的物理地址,因而只需要進(jìn)行1步操作即可訪問到共享內(nèi)存,效率相較于現(xiàn)有技術(shù)有了極大的提高,可以充分滿足電信級需求。

虛擬機(jī)管理模塊200可以用于管理虛擬機(jī)的相關(guān)程序,本發(fā)明實(shí)施例中在虛擬機(jī)管理模塊200中增加了兩個(gè)擴(kuò)展域,分別用于存儲(chǔ)第一地址空間的首地址和地址長度,在啟動(dòng)虛擬機(jī)時(shí),處理器100可以從該兩個(gè)擴(kuò)展域中分別加載第一地址空間的首地址和地址長度到兩個(gè)寄存器中進(jìn)行存儲(chǔ),以便虛擬機(jī)對第一地址空間的訪問時(shí)使用。

本發(fā)明實(shí)施例中,虛擬機(jī)運(yùn)行時(shí),處理器100可以通過前端驅(qū)動(dòng)監(jiān)測到虛擬機(jī)的內(nèi)存訪問請求,該訪問請求可以在需要向內(nèi)存寫入數(shù)據(jù)或者從內(nèi)存讀出內(nèi)存數(shù)據(jù)的情況下生成,并且該訪問請求中包括關(guān)于所需訪問的內(nèi)存地址的索引信息,該索引信息可以是相對于首地址的偏移量,也可以是唯一對應(yīng)于物理內(nèi)存地址和虛擬內(nèi)存地址的標(biāo)識。上述索引信息作為第一地址空間的地址參數(shù)。處理器在接收到訪問請求后會(huì)從第二模式切換到第一模式,并通過后端驅(qū)動(dòng)基于上述第一地址空間的地址參數(shù)查詢對應(yīng)映射的物理內(nèi)存中的第二地址空間的地址,從而將需要被輸入的內(nèi)存數(shù)據(jù)輸入至第二地址中,或者從所述第二地址中輸出需要被輸出的內(nèi)存數(shù)據(jù)。由此,本發(fā)明實(shí)施例在物理內(nèi)存上的共享地址是連續(xù)的,從而大大避免了內(nèi)存碎片的產(chǎn)生;以及guest和host直接通過地址索引信息即可直接訪問到目標(biāo)內(nèi)存,這也充分避免了每次gap到hva的軟件轉(zhuǎn)換。

另外,本發(fā)明實(shí)施例中,在虛擬機(jī)啟動(dòng)或者虛擬機(jī)在監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),可以從處理器100讀取其加載的關(guān)于虛擬機(jī)的第一地址空間的信息,所述第一地址空間的信息包括第一地址空間的首地址和第二地址空間的地址長度。

具體的,在虛擬機(jī)未運(yùn)行時(shí),處理器100可以通過后端驅(qū)動(dòng)為虛擬機(jī)分配虛擬內(nèi)存,并將該虛擬內(nèi)存的首地址和地址長度信息加載到虛擬機(jī)管理模塊(vmcs)200中,該虛擬機(jī)管理模塊200可以為構(gòu)造為增加了兩個(gè)擴(kuò)展域,該兩個(gè)擴(kuò)展域分別用于存儲(chǔ)首地址和地址長度信息。同時(shí),處理器還可以從物理內(nèi)存中選擇出一連續(xù)地址作為第二地址空間,以用于虛擬機(jī)的運(yùn)行使用,并建立第一地址空間的地址和第二地址空間的地址的映射關(guān)系表,該映射關(guān)系表可以存儲(chǔ)在處理器中也可以存儲(chǔ)在其他的存儲(chǔ)器中,處理器可以基于上述第一地址空間的地址參數(shù)對應(yīng)的查詢到第二地址空間的地址信息,從而直接執(zhí)行數(shù)據(jù)的寫入或讀出。本發(fā)明實(shí)施例中第一地址空間的長度大于第二地址空間的長度。

另外,在運(yùn)行虛擬機(jī)的第二模式下,處理器100可以從虛擬機(jī)管理模塊中加載關(guān)于第一地址空間的信息,其中包括虛擬內(nèi)存的長度length,以及首地址信息。從而使得虛擬機(jī)運(yùn)行時(shí)能夠?qū)?yīng)的查詢到第一地址空間的信息。

也就是說,根據(jù)本發(fā)明的數(shù)據(jù)處理方法可以包括:在虛擬機(jī)未被運(yùn)行的模式(第一模式)下,為虛擬機(jī)分配所述guest物理地址空間作為共享內(nèi)存;從虛擬機(jī)的虛擬內(nèi)存中選擇host物理地址空間,長度可為length,并利用共享內(nèi)存在host上的起始地址hva和未使用的guest地址段的起始地址gap建立一一映射的關(guān)系表,從而完成hva至gpa的映射關(guān)系的建立。由此,上述共享內(nèi)存在guest物理地址空間中的起始地址可以為gap,且長度可以為length;以及還可以將共享內(nèi)存在guest的起始地址gap及長度length等信息存儲(chǔ)至虛擬機(jī)管理模塊vmcs的兩個(gè)擴(kuò)展域,如ringbase_gpa和ringlen域中。

在運(yùn)行虛擬機(jī)(第二模式),處理器將自動(dòng)加載虛擬機(jī)管理模塊vmcs的ringbase_gpa和ringlen兩個(gè)與域中的信息加載到兩個(gè)寄存器中,如vrbr寄存器和vrlr寄存器。在啟動(dòng)虛擬機(jī)或者在虛擬機(jī)監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)(共享內(nèi)存)時(shí),從處理器的寄存器中讀取其加載的ringbase_gpa和ringlen中儲(chǔ)存的第一地址空間的信息,所述信息包括guest的起始地址gap及地址長度length,然后即可在虛擬機(jī)中預(yù)留出共享內(nèi)存所占用的空間。

所述在運(yùn)行虛擬機(jī)并監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),生成需要被寫入或讀出的內(nèi)存數(shù)據(jù)在虛擬機(jī)的host物理地址空間內(nèi)所對應(yīng)的地址參數(shù)包括:在在運(yùn)行虛擬機(jī)并監(jiān)測到需要寫入或讀出內(nèi)存數(shù)據(jù)時(shí),生成所述內(nèi)存數(shù)據(jù)對應(yīng)于host物理地址空間的起始地址hva的偏移地址信息;以及基于所述偏移地址信息生成需要被寫入或讀出的內(nèi)存數(shù)據(jù)在虛擬機(jī)的host物理地址空間內(nèi)所對應(yīng)的地址參數(shù)。

具體地,處理器在第二模式下判斷為需要訪問第一地址空間時(shí),獲得目標(biāo)內(nèi)存的索引index;并在第一模式下根據(jù)gpa和hap之間的映射關(guān)系并基于所述索引index,即可以得到目標(biāo)內(nèi)存(第二地址空間內(nèi)的目標(biāo)地址)。

通過本發(fā)明的上述電子設(shè)備,可在內(nèi)存空間中為虛擬機(jī)分配連續(xù)的內(nèi)存地址(host物理地址空間),防止了內(nèi)存的散碎分布,從而方便地建立起虛擬機(jī)的虛擬地址與物理地址之間的映射關(guān)系,減少了中間操作步驟,從而顯著增加了虛擬機(jī)的io處理速率,提高了數(shù)據(jù)處理效率。

本發(fā)明所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的數(shù)據(jù)處理方法以及所應(yīng)用于的電子設(shè)備,僅僅是根據(jù)本發(fā)明的一種實(shí)施方式。此外,本發(fā)明還可以存在其它符合本發(fā)明精神的實(shí)施方式,其原理與上述說明書中公開的相同,因而在此不再贅述。

此外,本發(fā)明所屬領(lǐng)域的技術(shù)人員應(yīng)當(dāng)知曉,以上所述的實(shí)施方式僅為本發(fā)明的示例性實(shí)施方式,不用于限制本發(fā)明,本發(fā)明的保護(hù)范圍由權(quán)利要求書限定。本領(lǐng)域技術(shù)人員可以在本發(fā)明的實(shí)質(zhì)和保護(hù)范圍內(nèi),對本發(fā)明做出各種修改或等同替換,這種修改或等同替換也應(yīng)視為落在本發(fā)明的保護(hù)范圍內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
乡城县| 沂南县| 安庆市| 桂阳县| 南平市| 阳城县| 甘孜县| 井冈山市| 亚东县| 江华| 永和县| 大姚县| 金昌市| 昌图县| 泽普县| 邵东县| 横峰县| 张北县| 理塘县| 山西省| 油尖旺区| 贵德县| 凤凰县| 垣曲县| 广西| 灌云县| 洞口县| 东乡县| 云浮市| 贵港市| 信丰县| 驻马店市| 连南| 崇阳县| 高青县| 剑阁县| 离岛区| 宁化县| 黎平县| 兰坪| 抚顺县|