多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法和裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法和裝置,該方法包括:當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求在本地緩沖存儲(chǔ)器中發(fā)生訪存讀取失敗時(shí),識(shí)別數(shù)據(jù)讀取請(qǐng)求的請(qǐng)求數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù);當(dāng)請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),確定管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器;在確定的緩沖存儲(chǔ)器中查詢獲取請(qǐng)求數(shù)據(jù)??s小了獲取請(qǐng)求數(shù)據(jù)的查詢范圍,提高了在多核虛擬機(jī)系統(tǒng)中獲取請(qǐng)求數(shù)據(jù)的效率。
【專利說明】多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù),尤其涉及一種多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法和裝置。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,多核虛擬機(jī)技術(shù)也得到了飛速發(fā)展,在多核虛擬機(jī)技術(shù)中,多核系統(tǒng)中,包括多個(gè)可獨(dú)立工作的處理器,每個(gè)處理器有其對(duì)應(yīng)的緩沖存儲(chǔ)器,多個(gè)處理器通常采用集中式共享存儲(chǔ)器,即公用一個(gè)存儲(chǔ)器的存儲(chǔ)空間,多核虛擬機(jī)系統(tǒng)承載在多核系統(tǒng)中,一個(gè)虛擬機(jī)可運(yùn)行在一個(gè)處理器上,也可運(yùn)行在多個(gè)處理器上,多核虛擬機(jī)系統(tǒng)中,多個(gè)處理器對(duì)應(yīng)的緩沖存儲(chǔ)器中的共享數(shù)據(jù)必須保持一致性。
[0003]現(xiàn)有技術(shù)中,以基于基于監(jiān)聽式一致性協(xié)議來保證緩沖存儲(chǔ)器中的共享數(shù)據(jù)的一致性為例,各虛擬機(jī)運(yùn)行的處理器每次寫操作都是公開的,即當(dāng)某個(gè)物理處理器對(duì)應(yīng)的緩沖存儲(chǔ)器中的數(shù)據(jù)被改寫后,通過發(fā)送廣播消息,使總線上其他處理器將自身緩沖存儲(chǔ)器中相同數(shù)據(jù)塊作廢,當(dāng)多核虛擬機(jī)系統(tǒng)中某個(gè)虛擬機(jī)運(yùn)行的處理器發(fā)生讀數(shù)據(jù)缺失時(shí),則通過廣播消息的方式發(fā)起請(qǐng)求,總線上的其他處理器對(duì)總線進(jìn)行監(jiān)聽,并查詢自身對(duì)應(yīng)的緩沖存儲(chǔ)器中是否具有廣播消息中請(qǐng)求的數(shù)據(jù),若有,則向發(fā)送廣播消息的處理器發(fā)送響應(yīng)消息,發(fā)起請(qǐng)求的處理器從發(fā)送響應(yīng)消息的處理器對(duì)應(yīng)的緩沖存儲(chǔ)器中獲取所需數(shù)據(jù)。
[0004]然而,現(xiàn)有技術(shù)中,當(dāng)虛擬機(jī)運(yùn)行的處理器發(fā)生讀數(shù)據(jù)缺失時(shí),通過廣播消息的方式發(fā)起請(qǐng)求,總線上所有的處理器都需要查詢自身的緩沖存儲(chǔ)器中是否存儲(chǔ)有請(qǐng)求的存儲(chǔ)地址的數(shù)據(jù),而沒有該數(shù)據(jù)的處理器的查找過程浪費(fèi)了 CPU功耗,獲取請(qǐng)求數(shù)據(jù)的效率不聞。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法和裝置,以提高在多核虛擬機(jī)系統(tǒng)中獲取請(qǐng)求數(shù)據(jù)的效率。
[0006]第一方面,本發(fā)明實(shí)施例提供一種多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法,包括:當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求在本地緩沖存儲(chǔ)器中發(fā)生訪存讀取失敗時(shí),識(shí)別所述數(shù)據(jù)讀取請(qǐng)求的請(qǐng)求數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù);
[0007]當(dāng)所述請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),確定所述管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器;
[0008]在確定的所述緩沖存儲(chǔ)器中查詢獲取所述請(qǐng)求數(shù)據(jù)。
[0009]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,識(shí)別所述數(shù)據(jù)讀取請(qǐng)求的請(qǐng)求數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù)包括:
[0010]在本地的地址映射表中識(shí)別所述請(qǐng)求數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)地址的共享標(biāo)識(shí)是否有效,若有效,則確定所述請(qǐng)求數(shù)據(jù)為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù)。
[0011]結(jié)合第一方面,在第二種可能的實(shí)現(xiàn)方式中,當(dāng)所述請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),確定所述管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器包括:[0012]當(dāng)所述請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),根據(jù)寄存器的記錄查詢所述管理虛擬機(jī)當(dāng)前所使用的處理器;
[0013]確定所述管理虛擬機(jī)當(dāng)前所使用的處理器的緩沖存儲(chǔ)器為所述管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器。
[0014]結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式至第二種可能的實(shí)現(xiàn)方式中任一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,在確定的所述緩沖存儲(chǔ)器中查詢獲取所述請(qǐng)求數(shù)據(jù)包括:
[0015]在確定的所述緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù)據(jù);
[0016]若是,則獲取所述請(qǐng)求數(shù)據(jù);
[0017]若否,則向其他緩沖存儲(chǔ)器發(fā)送所述請(qǐng)求數(shù)據(jù)的查詢請(qǐng)求。
[0018]結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式至第二種可能的實(shí)現(xiàn)方式中任一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,在確定的所述緩沖存儲(chǔ)器中查詢獲取所述請(qǐng)求數(shù)據(jù)包括:
[0019]在確定的所述緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù)據(jù);
[0020]若是,則獲取所述請(qǐng)求數(shù)據(jù);
[0021]若否,則在共享狀態(tài)目錄中查詢所述請(qǐng)求數(shù)據(jù)所在的緩沖存儲(chǔ)器;
[0022]在查詢到的緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù)據(jù),若是,則獲取所述請(qǐng)求數(shù)據(jù),并更新所述共享狀態(tài)目錄。
[0023]第二方面,本發(fā)明實(shí)施例提供一種多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的裝置,包括:
[0024]識(shí)別模塊,用于當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求在本地緩沖存儲(chǔ)器中發(fā)生訪存讀取失敗時(shí),識(shí)別所述數(shù)據(jù)讀取請(qǐng)求的請(qǐng)求數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù);
[0025]確定模塊,用于當(dāng)所述請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),確定所述管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器;
[0026]獲取模塊,用于在確定的所述緩沖存儲(chǔ)器中查詢獲取所述請(qǐng)求數(shù)據(jù)。
[0027]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述識(shí)別模塊具體用于在本地的地址映射表中識(shí)別所述請(qǐng)求數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)地址的共享標(biāo)識(shí)是否有效,若有效,則確定所述請(qǐng)求數(shù)據(jù)為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù)。
[0028]結(jié)合第二方面,在第二種可能的實(shí)現(xiàn)方式中,所述確定模塊包括:
[0029]查詢單元,用于當(dāng)所述請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),根據(jù)寄存器的記錄查詢所述管理虛擬機(jī)當(dāng)前所使用的處理器;
[0030]確定單元,用于確定所述管理虛擬機(jī)當(dāng)前所使用的處理器的緩沖存儲(chǔ)器為所述管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器。
[0031]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式至第二種可能的實(shí)現(xiàn)方式中任一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述獲取模塊具體用于在確定的所述緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù)據(jù);若是,則獲取所述請(qǐng)求數(shù)據(jù);若否,則向其他緩沖存儲(chǔ)器發(fā)送所述請(qǐng)求數(shù)據(jù)的查詢請(qǐng)求。
[0032]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式至第二種可能的實(shí)現(xiàn)方式中任一種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述獲取模塊具體用于在確定的所述緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù)據(jù);若是,則獲取所述請(qǐng)求數(shù)據(jù);若否,則在共享狀態(tài)目錄中查詢所述請(qǐng)求數(shù)據(jù)所在的緩沖存儲(chǔ)器;在查詢到的緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù)據(jù),若是,則獲取所述請(qǐng)求數(shù)據(jù),并更新所述共享狀態(tài)目錄。
[0033]本發(fā)明實(shí)施例提供的多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法和裝置,通過管理虛擬機(jī),當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求在本地緩沖存儲(chǔ)器中發(fā)生訪存讀取失敗時(shí),識(shí)別數(shù)據(jù)讀取請(qǐng)求的請(qǐng)求數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù);當(dāng)請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),確定管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器;在確定的緩沖存儲(chǔ)器中查詢獲取請(qǐng)求數(shù)據(jù)。縮小了獲取請(qǐng)求數(shù)據(jù)的查詢范圍,提高了在多核虛擬機(jī)系統(tǒng)中獲取請(qǐng)求數(shù)據(jù)的效率。
【專利附圖】
【附圖說明】
[0034]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0035]圖1為本發(fā)明實(shí)施例所適用的多核虛擬機(jī)系統(tǒng)的網(wǎng)絡(luò)架構(gòu)示意圖;
[0036]圖2為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例一的流程示意圖;
[0037]圖3為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例二的流程示意圖;
[0038]圖4為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例三的流程示意圖;
[0039]圖5為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例四的流程示意圖;
[0040]圖6為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例五的流程示意圖;
[0041]圖7為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例六的場(chǎng)景圖;
[0042]圖8為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例六的流程示意圖;
[0043]圖9為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例七的場(chǎng)景圖;
[0044]圖10為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例七的流程示意圖;
[0045]圖11為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)裝置實(shí)施例一的結(jié)構(gòu)示意圖;
[0046]圖12為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)裝置實(shí)施例二的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0047]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0048]圖1為本發(fā)明實(shí)施例所適用的多核虛擬機(jī)系統(tǒng)的網(wǎng)絡(luò)架構(gòu)示意圖,多核虛擬機(jī)系統(tǒng)承載在多核系統(tǒng)中,例如多核計(jì)算機(jī),包括多個(gè)可獨(dú)立工作的處理器。在多核系統(tǒng)中,每個(gè)處理器有其對(duì)應(yīng)的緩沖存儲(chǔ)器,而多個(gè)處理器通常又采用集中式存儲(chǔ),即共用一個(gè)存儲(chǔ)器的存儲(chǔ)空間,各處理器之間通過總線S進(jìn)行通信。多核系統(tǒng)中可同時(shí)運(yùn)行多個(gè)虛擬機(jī),一個(gè)虛擬機(jī)可運(yùn)行在一個(gè)處理器上,也可運(yùn)行在多個(gè)處理器上。虛擬機(jī)分為管理虛擬機(jī)和客戶虛擬機(jī),管理虛擬機(jī)擁有訪問物理輸入輸出(Input/Output,以下簡稱:1/0)資源的權(quán)限,而客戶虛擬機(jī)沒有訪問I/O資源的權(quán)限,客戶虛擬機(jī)的處理器調(diào)度、緩沖存儲(chǔ)器分配和設(shè)備訪問等操作都需要管理虛擬機(jī)通過控制接口來管理和調(diào)度。[0049]實(shí)施例一
[0050]圖2為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例一的流程示意圖;本實(shí)施例以多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的裝置為執(zhí)行主體,該裝置配置在各個(gè)客戶虛擬機(jī)中,且由承載客戶虛擬機(jī)的處理器承載。本實(shí)施例的裝置配置于發(fā)送數(shù)據(jù)讀取請(qǐng)求的任意客戶虛擬機(jī)中,如圖2所示,本實(shí)施例的方法包括如下步驟:
[0051]SlOl:當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求在本地緩沖存儲(chǔ)器中發(fā)生訪存讀取失敗時(shí),識(shí)別數(shù)據(jù)讀取請(qǐng)求的請(qǐng)求數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù);若否,執(zhí)行S102,若是,執(zhí)行S103。
[0052]具體地,當(dāng)客戶虛擬機(jī)需要讀取數(shù)據(jù)時(shí),首先發(fā)送數(shù)據(jù)讀取請(qǐng)求,根據(jù)數(shù)據(jù)讀取請(qǐng)求在承載該客戶虛擬機(jī)的處理器所對(duì)應(yīng)的本地緩沖存儲(chǔ)器中讀取數(shù)據(jù),如果本地緩沖存儲(chǔ)器中沒有所需的數(shù)據(jù),即發(fā)生訪存讀失敗,則識(shí)別數(shù)據(jù)讀取請(qǐng)求的數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù),若否,執(zhí)行S102,若是,執(zhí)行S103。
[0053]S102:其他操作。
[0054]采用其他方式獲取請(qǐng)求數(shù)據(jù),例如可在其他所有緩沖存儲(chǔ)器中查詢獲取,或者直接從存儲(chǔ)器中將數(shù)據(jù)讀至本地緩沖存儲(chǔ)器中。
[0055]S103:當(dāng)請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),確定管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器。
[0056]當(dāng)請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),客戶虛擬機(jī)確定管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器,管理虛擬機(jī)可能運(yùn)行在一個(gè)或者多個(gè)處理器上,每個(gè)處理器對(duì)應(yīng)有緩沖存儲(chǔ)器,可選地,可先確定管理虛擬機(jī)對(duì)應(yīng)的處理器,再確定處理器對(duì)應(yīng)的緩沖存儲(chǔ)器,也可直接確定管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器。
[0057]S104:在確定的緩沖存儲(chǔ)器中查詢獲取請(qǐng)求數(shù)據(jù)。
[0058]獲取后的請(qǐng)求數(shù)據(jù)可遷移至該客戶虛擬機(jī)所對(duì)應(yīng)的本地緩沖存儲(chǔ)器中。
[0059]本實(shí)施例中,利用了管理虛擬機(jī)和客戶虛擬機(jī)對(duì)設(shè)備訪問的特殊性來進(jìn)行數(shù)據(jù)訪問。由于管理虛擬機(jī)負(fù)責(zé)進(jìn)行處理器調(diào)度、緩存存儲(chǔ)器調(diào)度和I/o資源訪問等,I/O資源的請(qǐng)求數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)地址中的數(shù)據(jù)是客戶虛擬機(jī)和管理虛擬機(jī)的共享數(shù)據(jù),因此,在客戶虛擬機(jī)進(jìn)行數(shù)據(jù)請(qǐng)求時(shí),若識(shí)別到當(dāng)前所請(qǐng)求數(shù)據(jù)是與管理虛擬機(jī)之間的共享數(shù)據(jù),因?yàn)楣蚕頂?shù)據(jù)有可能被管理虛擬機(jī)使用,所以可將查詢范圍縮小至管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器,若無法查詢獲得,再利用其他技術(shù)查詢。上述方案縮小了獲取請(qǐng)求數(shù)據(jù)的查詢范圍,提高了在多核虛擬機(jī)系統(tǒng)中獲取請(qǐng)求數(shù)據(jù)的效率。
[0060]實(shí)施例二
[0061]圖3為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例二的流程示意圖,如圖3所示,本實(shí)施例是在圖2所示實(shí)施例的基礎(chǔ)上,SlOl中識(shí)別數(shù)據(jù)讀取請(qǐng)求的請(qǐng)求數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù)的一種具體實(shí)現(xiàn)方式,該具體實(shí)現(xiàn)方式包括:
[0062]SlOla:在本地的地址映射表中識(shí)別請(qǐng)求數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)地址的共享標(biāo)識(shí)是否有效,若有效,則確定請(qǐng)求數(shù)據(jù)為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù),執(zhí)行S103,若無效,執(zhí)行 S102。
[0063]通常,在存儲(chǔ)器的存儲(chǔ)空間中,存儲(chǔ)I/O資源的數(shù)據(jù)的存儲(chǔ)地址中的數(shù)據(jù)為管理虛擬機(jī)和客戶虛擬機(jī)的共享數(shù)據(jù),因此,在本地的地址映射表中I/o資源的數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)地址中的共享標(biāo)識(shí)置為有效。若請(qǐng)求的數(shù)據(jù)的存儲(chǔ)地址為I/o資源的特定存儲(chǔ)地址,則該請(qǐng)求的數(shù)據(jù)就是與管理虛擬機(jī)的共享數(shù)據(jù)。
[0064]可選地,本地的地址映射表可以為旁路轉(zhuǎn)換緩沖(Transiation LookasideBuffer,以下簡稱:TLB),用于存儲(chǔ)虛擬地址到物理地址的轉(zhuǎn)換表,在TLB中設(shè)置一個(gè)共享標(biāo)識(shí)比特,用于表示客戶虛擬機(jī)與管理虛擬機(jī)共享TLB中對(duì)應(yīng)的物理地址中存儲(chǔ)的數(shù)據(jù)。
[0065]當(dāng)客戶虛擬機(jī)根據(jù)數(shù)據(jù)讀取請(qǐng)求在本地緩沖存儲(chǔ)中發(fā)生訪存讀取失敗時(shí),在本地的地址映射表中識(shí)別請(qǐng)求數(shù)據(jù)對(duì)應(yīng)的共享標(biāo)識(shí)是否有效,若有效,則確定請(qǐng)求數(shù)據(jù)為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù),執(zhí)行S103,若無效,執(zhí)行S102。
[0066]本實(shí)施例中,通過在本地的地址映射表中識(shí)別請(qǐng)求數(shù)據(jù)的共享標(biāo)識(shí)是否有效,若有效,則確定請(qǐng)求數(shù)據(jù)為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù),通過在本地地址映射表中添加共享標(biāo)識(shí)的方式來表示客戶虛擬機(jī)與管理虛擬機(jī)共享數(shù)據(jù),實(shí)現(xiàn)簡單,并且,采用本實(shí)施例的技術(shù)方案,縮小了獲取請(qǐng)求數(shù)據(jù)的查詢范圍,能夠有效提高多核虛擬機(jī)系統(tǒng)中獲取請(qǐng)求數(shù)據(jù)的效率。
[0067]實(shí)施例三
[0068]圖4為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例三的流程示意圖,本實(shí)施例是發(fā)送數(shù)據(jù)讀取請(qǐng)求的客戶虛擬機(jī)所使用的處理器為執(zhí)行主體,如圖4所示,本實(shí)施例是在圖2所示實(shí)施例的基礎(chǔ)上,S103中當(dāng)請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),確定管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器的一種具體實(shí)現(xiàn)方式,該具體實(shí)現(xiàn)方式包括:
[0069]S103a:當(dāng)請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),根據(jù)寄存器的記錄查詢管理虛擬機(jī)當(dāng)前所使用的處理器;
[0070]具體地,可通過寄存器來記錄管理虛擬機(jī)與當(dāng)前所使用的處理器的對(duì)應(yīng)關(guān)系,管理虛擬機(jī)所使用的處理器一般是固定的,當(dāng)請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),客戶虛擬機(jī)根據(jù)寄存器的記錄查詢管理虛擬機(jī)當(dāng)前所使用的處理器。
[0071]S103b:確定管理虛擬機(jī)當(dāng)前所使用的處理器的緩沖存儲(chǔ)器為管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器。
[0072]每個(gè)處理器具有相應(yīng)的緩沖存儲(chǔ)器,將管理虛擬機(jī)當(dāng)前所使用的處理器的緩沖存儲(chǔ)器作為管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器,以使管理虛擬機(jī)從相應(yīng)的緩沖存儲(chǔ)器中獲取所需請(qǐng)求數(shù)據(jù)。
[0073]本實(shí)施例中,通過當(dāng)請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),根據(jù)寄存器的記錄查詢管理虛擬機(jī)當(dāng)前所使用的處理器,確定管理虛擬機(jī)當(dāng)前使用的處理器的緩沖存儲(chǔ)器為管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器,實(shí)現(xiàn)簡單,采用本實(shí)施例的技術(shù)方案,縮小了獲取請(qǐng)求數(shù)據(jù)的查詢范圍,能夠有效提高多核虛擬機(jī)系統(tǒng)中獲取請(qǐng)求數(shù)據(jù)的效率。
[0074]實(shí)施例四
[0075]圖5為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例四的流程示意圖,本實(shí)施例應(yīng)用于基于監(jiān)聽式一致性協(xié)議的多核系統(tǒng)中,如圖5所示,本實(shí)施例是在圖2-圖4所示實(shí)施例的基礎(chǔ)上,S104在確定的緩沖存儲(chǔ)器中查詢獲取請(qǐng)求數(shù)據(jù)的一種具體實(shí)現(xiàn)方式,該具體實(shí)現(xiàn)方式包括:
[0076]S104a:在確定的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù);若是,執(zhí)行S104b,若否,執(zhí)行S104c。
[0077]可選地,作為一種可行的實(shí)現(xiàn)方式,客戶虛擬機(jī)在確定管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器后,向管理虛擬機(jī)對(duì)應(yīng)的緩沖存儲(chǔ)器發(fā)送請(qǐng)求數(shù)據(jù)的查詢請(qǐng)求,管理虛擬機(jī)當(dāng)前所使用的處理器根據(jù)上述查詢請(qǐng)求,查詢其對(duì)應(yīng)的緩沖存儲(chǔ)器中是否存在請(qǐng)求數(shù)據(jù);若是,客戶虛擬機(jī)則執(zhí)行S104b,若否,則執(zhí)行S104c。
[0078]作為另一種可行的實(shí)現(xiàn)方式,客戶虛擬機(jī)直接在確定的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù),若是,執(zhí)行S104b,若否,執(zhí)行S104c。
[0079]S104b:獲取請(qǐng)求數(shù)據(jù);
[0080]客戶虛擬機(jī)從管理虛擬機(jī)對(duì)應(yīng)的緩沖存儲(chǔ)器中獲取請(qǐng)求數(shù)據(jù)。
[0081]S104c:則向其他緩沖存儲(chǔ)器發(fā)送請(qǐng)求數(shù)據(jù)的查詢請(qǐng)求。
[0082]具體地,客戶虛擬機(jī)可通過廣播的方式向其他緩沖存儲(chǔ)器發(fā)送請(qǐng)求數(shù)據(jù)的查詢請(qǐng)求,其他緩沖存儲(chǔ)器中若存在請(qǐng)求數(shù)據(jù),則向客戶虛擬機(jī)發(fā)送請(qǐng)求響應(yīng)消息,客戶虛擬機(jī)則在發(fā)送請(qǐng)求響應(yīng)消息的處理器對(duì)應(yīng)的緩沖存儲(chǔ)器中獲取請(qǐng)求數(shù)據(jù),若否,則在存儲(chǔ)器中獲取所需的請(qǐng)求數(shù)據(jù)。
[0083]本實(shí)施例中,通過在確定的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù),若是,則獲取請(qǐng)求數(shù)據(jù),若否,則向其他緩沖存儲(chǔ)器發(fā)送請(qǐng)求數(shù)據(jù)的查詢請(qǐng)求,采用本實(shí)施例的技術(shù)方案,實(shí)現(xiàn)了在基于監(jiān)聽式一致性協(xié)議的多核系統(tǒng)中,無需系統(tǒng)中未存儲(chǔ)請(qǐng)求數(shù)據(jù)的處理器查詢其對(duì)應(yīng)的緩沖存儲(chǔ)器中是否存在請(qǐng)求數(shù)據(jù),縮小了獲取請(qǐng)求數(shù)據(jù)的查詢范圍,節(jié)省功耗,能夠有效提高多核虛擬機(jī)系統(tǒng)中獲取請(qǐng)求數(shù)據(jù)的效率。
[0084]實(shí)施例五
[0085]圖6為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例五的流程示意圖,本實(shí)施例是以發(fā)送數(shù)據(jù)讀取請(qǐng)求的客戶虛擬機(jī)所使用的處理器為執(zhí)行主體,本實(shí)施例應(yīng)用于基于目錄式一致性協(xié)議的多核系統(tǒng)中,如圖6所示,本實(shí)施例是在圖2-圖4所示實(shí)施例的基礎(chǔ)上,S104在確定的緩沖存儲(chǔ)器中查詢獲取請(qǐng)求數(shù)據(jù)的另一種具體實(shí)現(xiàn)方式,該具體實(shí)現(xiàn)方式包括:
[0086]S104a’:在確定的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù);若是,執(zhí)行S104b’,若否,執(zhí)行 S104c,。
[0087]本步驟與S104a相同,在此不再贅述。
[0088]S104b’:獲取請(qǐng)求數(shù)據(jù)。
[0089]本步驟與S104b相同,在此不再贅述。
[0090]S104c’:在共享狀態(tài)目錄中查詢請(qǐng)求數(shù)據(jù)所在的緩沖存儲(chǔ)器。
[0091 ] 在目錄式一致系統(tǒng)中,存在一個(gè)共享狀態(tài)目錄,作為一種實(shí)現(xiàn)方式,共享狀態(tài)目錄中記錄存儲(chǔ)器中每個(gè)數(shù)據(jù)塊的共享狀態(tài)以及所在的緩沖存儲(chǔ)器。在S104a’中,當(dāng)在確定的緩沖存儲(chǔ)器中查詢不存在請(qǐng)求數(shù)據(jù)時(shí),則在共享狀態(tài)目錄中直接查詢請(qǐng)求數(shù)據(jù)所在的緩沖存儲(chǔ)器。
[0092]作為另一種實(shí)現(xiàn)方式,共享狀態(tài)目錄中記錄存儲(chǔ)器中每個(gè)數(shù)據(jù)塊的共享狀態(tài)以及所在的虛擬機(jī)。在S104a’中,當(dāng)在確定的緩沖存儲(chǔ)器中查詢不存在請(qǐng)求數(shù)據(jù)時(shí),則在共享狀態(tài)目錄中查詢請(qǐng)求數(shù)據(jù)所在的虛擬機(jī),再確定虛擬機(jī)對(duì)應(yīng)的緩沖存儲(chǔ)器,以確定請(qǐng)求數(shù)據(jù)所在的緩沖存儲(chǔ)器。
[0093]S104d’:在查詢到的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù),若是,則獲取請(qǐng)求數(shù)據(jù),并更新共享狀態(tài)目錄。[0094]可選地,作為一種可行的實(shí)現(xiàn)方式,客戶虛擬機(jī)向查詢到的緩沖存儲(chǔ)器發(fā)送請(qǐng)求數(shù)據(jù)的查詢請(qǐng)求,緩沖存儲(chǔ)器所屬的處理器根據(jù)上述查詢請(qǐng)求,查詢其對(duì)應(yīng)的緩沖存儲(chǔ)器中是否存在請(qǐng)求數(shù)據(jù),若是,緩沖存儲(chǔ)器所屬的處理器則向發(fā)送查詢請(qǐng)求的客戶虛擬機(jī)發(fā)送請(qǐng)求響應(yīng)消息,客戶虛擬機(jī)則在發(fā)送請(qǐng)求響應(yīng)消息的處理器對(duì)應(yīng)的緩沖存儲(chǔ)器中獲取請(qǐng)求數(shù)據(jù),并更新共享狀態(tài)目錄,即在請(qǐng)求數(shù)據(jù)對(duì)應(yīng)的共享狀態(tài)目錄中添加客戶虛擬機(jī)標(biāo)識(shí),或者添加客戶虛擬機(jī)對(duì)應(yīng)的緩沖存儲(chǔ)器標(biāo)識(shí)。若緩沖存儲(chǔ)器所屬的處理器查詢緩沖存儲(chǔ)器中不存在請(qǐng)求數(shù)據(jù),則客戶虛擬機(jī)在存儲(chǔ)器中獲取所需的請(qǐng)求數(shù)據(jù)。
[0095]作為另一種可行的實(shí)現(xiàn)方式,客戶虛擬機(jī)直接在查詢到的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù),若是,則獲取請(qǐng)求數(shù)據(jù),并更新共享狀態(tài)目錄。
[0096]本實(shí)施例,通過在確定的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù);若是,則獲取請(qǐng)求數(shù)據(jù);若否,則在共享狀態(tài)目錄中查詢請(qǐng)求數(shù)據(jù)所在的緩沖存儲(chǔ)器;在查詢到的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù),若是,則獲取請(qǐng)求數(shù)據(jù),并更新共享狀態(tài)目錄。采用本實(shí)施例的技術(shù)方案,實(shí)現(xiàn)了在基于目錄式一致性協(xié)議的多核系統(tǒng)中,無需先查詢目錄,后查詢緩沖存儲(chǔ)器,縮小了獲取請(qǐng)求數(shù)據(jù)的查詢范圍,節(jié)省查詢時(shí)延,能夠有效提高多核虛擬機(jī)系統(tǒng)中獲取請(qǐng)求數(shù)據(jù)的效率。
[0097]實(shí)施例六
[0098]圖7為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例六的場(chǎng)景圖,圖8為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例六的流程示意圖,圖8以圖7所示場(chǎng)景為例,本實(shí)施例以基于監(jiān)聽式一致性協(xié)議的多核系統(tǒng)為例,圖7所示多核虛擬機(jī)系統(tǒng)中,包含4個(gè)處理器,分別為第一處理器O、第二處理器1、第三處理器2和第四處理器3,運(yùn)行有4個(gè)虛擬機(jī),第一處理器O上運(yùn)行第一客戶虛擬機(jī)1,第二處理器I運(yùn)行管理虛擬機(jī)0,第三處理器2運(yùn)行第二客戶虛擬機(jī)3,第四處理器3運(yùn)行第三客戶虛擬機(jī)2,每個(gè)處理器對(duì)應(yīng)有3級(jí)緩沖存儲(chǔ)器,各處理器之間通過總線S進(jìn)行通信,如圖6所示,共享標(biāo)識(shí)存儲(chǔ)于TLB中,存儲(chǔ)管理虛擬機(jī)與所使用的處理器的對(duì)應(yīng)關(guān)系的寄存器采用虛擬機(jī)標(biāo)識(shí)(Virtual MachineIdentifier,以下簡稱:vmid)寄存器。以第三客戶虛擬機(jī)2訪存讀數(shù)據(jù)缺失為例,本實(shí)施例的方法包括:
[0099]S701:第三客戶虛擬機(jī)2訪存讀數(shù)據(jù)時(shí),發(fā)生了 2級(jí)緩沖存儲(chǔ)器讀取失敗,查詢TLB確定第三客戶虛擬機(jī)2與管理虛擬機(jī)O共享該數(shù)據(jù)。
[0100]S702:第三客戶虛擬機(jī)2查詢vimd寄存器,確定管理虛擬機(jī)O所使用的處理器為第二處理器I。
[0101]S703:第三客戶虛擬機(jī)2所使用的第四處理器3向第二處理器I的2級(jí)緩沖存儲(chǔ)器發(fā)送數(shù)據(jù)請(qǐng)求。
[0102]S704:管理虛擬機(jī)O所使用的第二處理器I查詢其對(duì)應(yīng)的2級(jí)緩沖存儲(chǔ)器,發(fā)現(xiàn)該緩沖存儲(chǔ)器中不存在客戶虛擬機(jī)2請(qǐng)求的數(shù)據(jù)。
[0103]S705:第三客戶虛擬機(jī)2所使用的第四處理器3向其他緩沖存儲(chǔ)器發(fā)送請(qǐng)求數(shù)據(jù)的查詢請(qǐng)求。
[0104]本步驟同圖5中的S104c相似,在此不再贅述,在3級(jí)緩沖存儲(chǔ)器中獲取到請(qǐng)求的數(shù)據(jù)。
[0105]實(shí)施例七[0106]圖9為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例七的場(chǎng)景圖,圖10為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法實(shí)施例七的流程示意圖,圖10以圖9所示場(chǎng)景為例,本實(shí)施例以基于目錄式一致性協(xié)議的多核系統(tǒng)為例,圖9所示多核虛擬機(jī)系統(tǒng)中,包含4個(gè)處理器,分別為第一處理器O、第二處理器1、第三處理器2和第四處理器3,運(yùn)行有4個(gè)虛擬機(jī),第一處理器O上運(yùn)行第一客戶虛擬機(jī)1,第二處理器I運(yùn)行管理虛擬機(jī)0,第三處理器2運(yùn)行第二客戶虛擬機(jī)3,第四處理器3運(yùn)行第三客戶虛擬機(jī)2,每個(gè)處理器對(duì)應(yīng)有3級(jí)緩沖存儲(chǔ)器,各處理器之間通過總線S進(jìn)行通信,如圖8所示,共享標(biāo)識(shí)存儲(chǔ)于TLB中,存儲(chǔ)管理虛擬機(jī)與所使用的處理器的對(duì)應(yīng)關(guān)系的寄存器采用mid寄存器。以客戶虛擬機(jī)2訪存讀數(shù)據(jù)缺失為例,本實(shí)施例的方法包括:
[0107]S901:第三客戶虛擬機(jī)2訪存讀數(shù)據(jù)時(shí),發(fā)生了 2級(jí)緩沖存儲(chǔ)器讀取失敗,查詢TLB確定第三客戶虛擬機(jī)2與管理虛擬機(jī)O共享該數(shù)據(jù)。
[0108]S902:第三客戶虛擬機(jī)2查詢vimd寄存器,確定管理虛擬機(jī)O所使用的處理器為處理器I。
[0109]S903:第三客戶虛擬機(jī)2所使用的第四處理器3向第二處理器I的2級(jí)緩沖存儲(chǔ)器發(fā)送數(shù)據(jù)請(qǐng)求。
[0110]S904:管理虛擬機(jī)O所使用的第二處理器I查詢其對(duì)應(yīng)的2級(jí)緩沖存儲(chǔ)器,發(fā)現(xiàn)該緩沖存儲(chǔ)器中不存在第三客戶虛擬機(jī)2請(qǐng)求的數(shù)據(jù)。
[0111]S905:第三客戶虛擬機(jī)2所使用的第四處理器3在共享狀態(tài)目錄中查詢請(qǐng)求數(shù)據(jù)所在的緩沖存儲(chǔ)器。
[0112]本步驟與圖5中的S104c’相似,在此不再贅述。
[0113]S906:在查詢到的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù),若是,則獲取請(qǐng)求數(shù)據(jù),并更新共享狀態(tài)目錄。
[0114]本步驟與圖5中的S104d’相似,在此不再贅述,在3級(jí)緩沖存儲(chǔ)器中獲取到請(qǐng)求的數(shù)據(jù)。
[0115]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0116]圖11為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)裝置實(shí)施例一的結(jié)構(gòu)示意圖;本實(shí)施例的裝置包括識(shí)別模塊1001、確定模塊1002和獲取模塊1003,其中,識(shí)別模塊1001用于當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求在本地緩沖存儲(chǔ)器中發(fā)生訪存讀取失敗時(shí),識(shí)別數(shù)據(jù)讀取請(qǐng)求的請(qǐng)求數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù);確定模塊1002用于當(dāng)請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),確定管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器;獲取模塊1003用于在確定的緩沖存儲(chǔ)器中查詢獲取請(qǐng)求數(shù)據(jù)。
[0117]本實(shí)施例的裝置,可以用于執(zhí)行方法實(shí)施例一的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0118]在上述實(shí)施例的基礎(chǔ)上,識(shí)別模塊1001具體用于在本地的地址映射表中識(shí)別請(qǐng)求數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)地址的共享標(biāo)識(shí)是否有效,若有效,則確定請(qǐng)求數(shù)據(jù)為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù)。[0119]圖12為本發(fā)明多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)裝置實(shí)施例二的結(jié)構(gòu)示意圖;圖11是在圖10所示實(shí)施例的基礎(chǔ)上,確定模塊1002進(jìn)一步地,還包括查詢單元10021和確定單元10022,其中,查詢單元10021用于當(dāng)請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),根據(jù)寄存器的記錄查詢管理虛擬機(jī)當(dāng)前所使用的處理器;確定單元10022用于確定管理虛擬機(jī)當(dāng)前所使用的處理器的緩沖存儲(chǔ)器為管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器。
[0120]本實(shí)施例的裝置,可以用于執(zhí)行方法實(shí)施例三的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0121]在圖12所示實(shí)施例的基礎(chǔ)上,獲取模塊1003具體用于在確定的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù);若是,則獲取請(qǐng)求數(shù)據(jù);若否,則向其他緩沖存儲(chǔ)器發(fā)送請(qǐng)求數(shù)據(jù)的查詢請(qǐng)求。
[0122]本實(shí)施例的裝置,可以用于執(zhí)行方法實(shí)施例四的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0123]在圖12所示實(shí)施例的基礎(chǔ)上,獲取模塊1003具體用于在確定的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù);若是,則獲取請(qǐng)求數(shù)據(jù);若否,則在共享狀態(tài)目錄中查詢請(qǐng)求數(shù)據(jù)所在的緩沖存儲(chǔ)器;在查詢到的緩沖存儲(chǔ)器中查詢是否存在請(qǐng)求數(shù)據(jù),若是,則獲取請(qǐng)求數(shù)據(jù),并更新共享狀態(tài)目錄。
[0124]本實(shí)施例的裝置,可以用于執(zhí)行方法實(shí)施例五的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0125]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的方法,其特征在于,包括: 當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求在本地緩沖存儲(chǔ)器中發(fā)生訪存讀取失敗時(shí),識(shí)別所述數(shù)據(jù)讀取請(qǐng)求的請(qǐng)求數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù); 當(dāng)所述請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),確定所述管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器; 在確定的所述緩沖存儲(chǔ)器中查詢獲取所述請(qǐng)求數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,識(shí)別所述數(shù)據(jù)讀取請(qǐng)求的請(qǐng)求數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù)包括: 在本地的地址映射表中識(shí)別所述請(qǐng)求數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)地址的共享標(biāo)識(shí)是否有效,若有效,則確定所述請(qǐng)求數(shù)據(jù)為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)所述請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),確定所述管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器包括: 當(dāng)所述請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),根據(jù)寄存器的記錄查詢所述管理虛擬機(jī)當(dāng)前所使用的處理器; 確定所述管理虛擬機(jī)當(dāng)前所使用的處理器的緩沖存儲(chǔ)器為所述管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器。
4.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,在確定的所述緩沖存儲(chǔ)器中查詢獲取所述請(qǐng)求數(shù)據(jù)包 括: 在確定的所述緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù)據(jù); 若是,則獲取所述請(qǐng)求數(shù)據(jù); 若否,則向其他緩沖存儲(chǔ)器發(fā)送所述請(qǐng)求數(shù)據(jù)的查詢請(qǐng)求。
5.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,在確定的所述緩沖存儲(chǔ)器中查詢獲取所述請(qǐng)求數(shù)據(jù)包括: 在確定的所述緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù)據(jù); 若是,則獲取所述請(qǐng)求數(shù)據(jù); 若否,則在共享狀態(tài)目錄中查詢所述請(qǐng)求數(shù)據(jù)所在的緩沖存儲(chǔ)器; 在查詢到的緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù)據(jù),若是,則獲取所述請(qǐng)求數(shù)據(jù),并更新所述共享狀態(tài)目錄。
6.一種多核虛擬機(jī)系統(tǒng)獲取請(qǐng)求數(shù)據(jù)的裝置,其特征在于,包括: 識(shí)別模塊,用于當(dāng)根據(jù)數(shù)據(jù)讀取請(qǐng)求在本地緩沖存儲(chǔ)器中發(fā)生訪存讀取失敗時(shí),識(shí)別所述數(shù)據(jù)讀取請(qǐng)求的請(qǐng)求數(shù)據(jù)是否為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù); 確定模塊,用于當(dāng)所述請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),確定所述管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器; 獲取模塊,用于在確定的所述緩沖存儲(chǔ)器中查詢獲取所述請(qǐng)求數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述識(shí)別模塊具體用于在本地的地址映射表中識(shí)別所述請(qǐng)求數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)地址的共享標(biāo)識(shí)是否有效,若有效,則確定所述請(qǐng)求數(shù)據(jù)為客戶虛擬機(jī)與管理虛擬機(jī)的共享數(shù)據(jù)。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述確定模塊包括: 查詢單元,用于當(dāng)所述請(qǐng)求數(shù)據(jù)為共享數(shù)據(jù)時(shí),根據(jù)寄存器的記錄查詢所述管理虛擬機(jī)當(dāng)前所使用的處理器;確定單元,用于確定所述管理虛擬機(jī)當(dāng)前所使用的處理器的緩沖存儲(chǔ)器為所述管理虛擬機(jī)所對(duì)應(yīng)的緩沖存儲(chǔ)器。
9.根據(jù)權(quán)利要求6-8任一所述的裝置,其特征在于,所述獲取模塊具體用于在確定的所述緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù)據(jù);若是,則獲取所述請(qǐng)求數(shù)據(jù);若否,則向其他緩沖存儲(chǔ)器發(fā)送所述請(qǐng)求數(shù)據(jù)的查詢請(qǐng)求。
10.根據(jù)權(quán)利要求6-8任一所述的裝置,其特征在于,所述獲取模塊具體用于在確定的所述緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù)據(jù);若是,則獲取所述請(qǐng)求數(shù)據(jù);若否,則在共享狀態(tài)目錄中查詢所述請(qǐng)求數(shù)據(jù)所在的緩沖存儲(chǔ)器;在查詢到的緩沖存儲(chǔ)器中查詢是否存在所述請(qǐng)求數(shù) 據(jù),若是,則獲取所述請(qǐng)求數(shù)據(jù),并更新所述共享狀態(tài)目錄。
【文檔編號(hào)】G06F9/455GK103902352SQ201210587126
【公開日】2014年7月2日 申請(qǐng)日期:2012年12月28日 優(yōu)先權(quán)日:2012年12月28日
【發(fā)明者】李曄, 侯銳, 張立新, 江濤 申請(qǐng)人:華為技術(shù)有限公司, 中國科學(xué)院計(jì)算技術(shù)研究所