重置全部鎖成 功的鎖操作結(jié)果。
[0243] 以上數(shù)據(jù)同步的裝置實施例中的接收模塊301、映射模塊302、存儲模塊305可以 是上述實施例中虛擬鎖指令執(zhí)行裝置中的模塊,確定模塊303、鎖操作模塊304、緩存單元 305可以是上述實施例中物理鎖裝置中的模塊,而且,在映射模塊302和確定模塊303之間 存在數(shù)據(jù)傳遞的過程。
[0244] 在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳細(xì)描述 的部分,可以參見其它實施例的相關(guān)描述。
[0245] 需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列 的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述動作順序的限制,因為依 據(jù)本發(fā)明,某些步驟可以采用其它順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉, 說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和裝置并不一定是本發(fā)明所必 須的。
[0246] 本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可 以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲 介質(zhì)可以包括:ROM、RAM、磁盤或光盤等。
[0247] 以上對本發(fā)明實施例所提供的多核處理器、細(xì)粒度數(shù)據(jù)同步的方法及裝置進(jìn)行了 詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的 說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依 據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容 不應(yīng)理解為對本發(fā)明的限制。
【主權(quán)項】
1. 一種多核處理器,其特征在于,包括:物理鎖裝置和集成在每個處理器核上的虛擬 鎖指令執(zhí)行裝置,所述物理鎖裝置分別與每個所述虛擬鎖指令執(zhí)行裝置連接,所述物理鎖 裝置包括多個物理鎖,用于存儲數(shù)據(jù)對象的內(nèi)存空間包括多個虛擬鎖的標(biāo)識,所述虛擬鎖 的標(biāo)識為所述數(shù)據(jù)對象的一個存儲地址,且所述虛擬鎖的標(biāo)識的數(shù)量大于所述物理鎖的標(biāo) 識的數(shù)量; 所述虛擬鎖指令執(zhí)行裝置用于: 接收虛擬鎖指令,所述虛擬鎖指令用于指示執(zhí)行從虛擬鎖的標(biāo)識到物理鎖的標(biāo)識的映 射操作,所述虛擬鎖指令包括鎖操作類型標(biāo)識和目的虛擬鎖的標(biāo)識; 根據(jù)所述目的虛擬鎖的標(biāo)識映射出目的物理鎖的標(biāo)識,并向所述物理鎖裝置發(fā)送鎖操 作請求,所述鎖操作請求包括所述鎖操作類型標(biāo)識和所述目的物理鎖的標(biāo)識; 所述物理鎖裝置用于: 根據(jù)所述目的物理鎖的標(biāo)識,從所述多個物理鎖中確定所述目的物理鎖; 對所述目的物理鎖執(zhí)行所述鎖操作類型標(biāo)識對應(yīng)的鎖操作,得到針對所述目標(biāo)物理鎖 的鎖操作結(jié)果。2. 根據(jù)權(quán)利要求1所述的多核處理器,其特征在于,所述鎖操作請求還包括所述虛擬 鎖指令執(zhí)行裝置所屬的處理器核的標(biāo)識; 所述物理鎖裝置,還用于根據(jù)所述處理器核的標(biāo)識向所述虛擬鎖指令執(zhí)行裝置返回所 述鎖操作結(jié)果。3. 根據(jù)權(quán)利要求2所述的多核處理器,其特征在于,所述虛擬鎖指令執(zhí)行裝置包括虛 擬鎖的標(biāo)識寄存器和映射處理模塊,所述物理鎖裝置包括緩沖隊列存儲模塊和物理鎖操作 模塊;其中, 所述虛擬鎖的標(biāo)識寄存器,用于存儲所述目的虛擬鎖的標(biāo)識,所述目的虛擬鎖的標(biāo)識 包括所述目的虛擬鎖的標(biāo)識對應(yīng)的數(shù)據(jù)對象的一個地址; 所述映射處理模塊,用于根據(jù)所述虛擬鎖的標(biāo)識寄存器中存儲的所述虛擬鎖的標(biāo)識, 以及虛擬鎖的標(biāo)識與物理鎖的標(biāo)識的映射關(guān)系,映射出與所述虛擬鎖的標(biāo)識對應(yīng)的目的物 理鎖的標(biāo)識,并向所述物理鎖裝置發(fā)送鎖操作請求,所述鎖操作請求包括鎖操作類型標(biāo)識、 所述目的物理鎖的標(biāo)識和所述虛擬鎖指令執(zhí)行裝置所屬的處理器核的標(biāo)識; 所述緩沖隊列存儲模塊,用于緩存所述鎖操作請求; 所述物理鎖操作模塊用于: 從所述緩沖隊列存儲模塊中讀取排在所述緩沖隊列最前面的鎖操作請求; 根據(jù)所述鎖操作請求中的目的物理鎖的標(biāo)識確定所述目的物理鎖,對所述目的物理鎖 執(zhí)行所述鎖操作類型標(biāo)識對應(yīng)的鎖操作,得到針對所述目的物理鎖的鎖操作結(jié)果; 根據(jù)所述處理器核的標(biāo)識向所述虛擬鎖指令執(zhí)行裝置返回所述鎖操作結(jié)果。4. 根據(jù)權(quán)利要求2或3所述的多核處理器,其特征在于,所述虛擬鎖指令執(zhí)行裝置還包 括:虛擬鎖返回結(jié)果寄存器; 所述物理鎖操作模塊,具體用于返回所述鎖操作結(jié)果給所述虛擬鎖指令執(zhí)行裝置中的 虛擬鎖返回結(jié)果寄存器; 所述虛擬鎖返回結(jié)果寄存器,用于存儲接收到的所述鎖操作結(jié)果。5. 根據(jù)權(quán)利要求2-4中任一所述的多核處理器,其特征在于, 所述物理鎖操作模塊具體用于: 當(dāng)所述鎖操作類型標(biāo)識為加鎖的標(biāo)識vltrylock時,確定所述目的物理鎖的狀態(tài); 當(dāng)所述目的物理鎖處于空閑狀態(tài)時,獲取所述目的物理鎖,將所述目的物理鎖的狀態(tài) 修改到被占用狀態(tài),并向所述虛擬鎖指令執(zhí)行裝置返回表示獲取鎖成功的鎖操作結(jié)果; 當(dāng)所述目的物理鎖處于被占用狀態(tài)時,向所述虛擬鎖指令執(zhí)行裝置返回表示獲取鎖失 敗的鎖操作結(jié)果。6. 根據(jù)權(quán)利要求2-4中任一所述的多核處理器,其特征在于, 所述物理鎖操作模塊具體用于: 當(dāng)所述鎖操作類型標(biāo)識為解鎖的標(biāo)識vlunlock時,對所述目的物理鎖進(jìn)行解鎖操作, 并將所述目的物理鎖的狀態(tài)修改到空閑狀態(tài),得到表示解鎖成功的鎖操作結(jié)果; 當(dāng)所述鎖操作類型標(biāo)識為重置目的虛擬鎖的標(biāo)識vlreset時,對所述目的物理鎖進(jìn)行 重置操作,將所述目的物理鎖的狀態(tài)修改到空閑狀態(tài),得到表示重置目的物理鎖成功或失 敗的鎖操作結(jié)果。7. -種數(shù)據(jù)同步的方法,其特征在于,所述方法應(yīng)用于多核處理器,所述多核處理器包 括物理鎖裝置和多個處理器核,每個所述處理器核均包括一虛擬鎖指令執(zhí)行裝置,所述物 理鎖裝置分別與所述虛擬鎖指令執(zhí)行裝置連接,所述物理鎖裝置包括多個物理鎖,用于存 儲數(shù)據(jù)對象的內(nèi)存空間包括多個虛擬鎖的標(biāo)識,所述虛擬鎖的標(biāo)識為所述數(shù)據(jù)對象的一個 存儲地址,且所述虛擬鎖的標(biāo)識的數(shù)量大于所述物理鎖的標(biāo)識的數(shù)量,所述方法包括: 所述虛擬鎖指令執(zhí)行裝置接收虛擬鎖指令,所述虛擬鎖指令包括鎖操作類型標(biāo)識和目 的虛擬鎖的標(biāo)識,所述目的虛擬鎖的標(biāo)識為待同步數(shù)據(jù)對象的一個地址; 所述虛擬鎖指令執(zhí)行裝置根據(jù)所述目的虛擬鎖的標(biāo)識映射出目的物理鎖的標(biāo)識,向所 述物理鎖裝置發(fā)送鎖操作請求,所述鎖操作請求包括所述鎖操作類型標(biāo)識和所述目的物理 鎖的標(biāo)識; 所述物理鎖裝置根據(jù)所述目的物理鎖的標(biāo)識,從所述多個物理鎖中確定所述目的物理 鎖; 所述物理鎖裝置對所述目的物理鎖執(zhí)行所述鎖操作類型標(biāo)識對應(yīng)的鎖操作,得到針對 所述目的物理鎖的鎖操作結(jié)果,所述鎖操作的結(jié)果用于所述待同步數(shù)據(jù)對象的同步操作。8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述鎖操作請求還包括所述虛擬鎖指令 執(zhí)行裝置所屬的處理器核的標(biāo)識,所述方法還包括: 所述物理鎖裝置根據(jù)所述處理器核的標(biāo)識向所述虛擬鎖指令執(zhí)行裝置返回所述鎖操 作結(jié)果; 所述虛擬鎖指令執(zhí)行裝置接收所述物理鎖裝置返回的所述鎖操作結(jié)果,并存儲所述鎖 操作結(jié)果。9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述虛擬鎖指令執(zhí)行裝置接收虛擬鎖指 令之后,所述方法還包括: 所述虛擬鎖指令執(zhí)行裝置存儲所述目的虛擬鎖的標(biāo)識,所述目的虛擬鎖的標(biāo)識包括所 述目的虛擬鎖的標(biāo)識對應(yīng)的數(shù)據(jù)對象的一個地址; 所述虛擬鎖指令執(zhí)行裝置根據(jù)所述目的虛擬鎖的標(biāo)識映射出目的物理鎖的標(biāo)識,向所 述物理鎖裝置發(fā)送鎖操作請求,所述鎖操作請求包括所述鎖操作類型標(biāo)識和所述目的物理 鎖的標(biāo)識,包括: 所述虛擬鎖指令執(zhí)行裝置根據(jù)存儲的所述虛擬鎖的標(biāo)識,以及虛擬鎖的標(biāo)識與物理鎖 的標(biāo)識的映射關(guān)系,映射出與所述虛擬鎖的標(biāo)識對應(yīng)的目的物理鎖的標(biāo)識,并向所述物理 鎖裝置發(fā)送鎖操作請求,所述鎖操作請求包括鎖操作類型標(biāo)識、所述目的物理鎖的標(biāo)識和 所述虛擬鎖指令執(zhí)行裝置所屬的處理器核的標(biāo)識。10. 根據(jù)權(quán)利要求7-9任一所述的方法,其特征在于,所述物理鎖裝置根據(jù)所述目的物 理鎖的標(biāo)識,從所述多個物理鎖中確定所述目的物理鎖之前,所述方法還包括: 所述物理鎖裝置按照緩沖隊列的方式緩存接收的所述鎖操作請求; 從緩存的所述鎖操作請求中讀取排在所述緩沖隊列最前面的鎖操作請求。11. 根據(jù)權(quán)利要求7-10任一所述的方法,其特征在于,所述對所述目的物理鎖執(zhí)行所 述鎖操作類型標(biāo)識對應(yīng)的鎖操作,得到針對所述目的物理鎖的鎖操作結(jié)果,包括: 當(dāng)所述鎖操作類型標(biāo)識為加鎖的標(biāo)識vltrylock時,確定所述目的物理鎖的狀態(tài); 當(dāng)所述目的物理鎖處于空閑狀態(tài)時,獲取所述目的物理鎖,將所述目的物理鎖的狀態(tài) 修改到被占用狀態(tài),得到表示獲取鎖成功的鎖操作結(jié)果; 當(dāng)所述目的物理鎖處于被占用狀態(tài)時,得到表示獲取鎖失敗的鎖操作結(jié)果。12. 根據(jù)權(quán)利要求7-10任一所述的方法,其特征在于,所述對所述目的物理鎖執(zhí)行所 述鎖操作類型標(biāo)識對應(yīng)的鎖操作,得到針對所述目的物理鎖的鎖操作結(jié)果,包括: 當(dāng)所述鎖操作類型標(biāo)識為解鎖的標(biāo)識vlunlock時,對所述目的物理鎖進(jìn)行解鎖操作, 并將所述目的物理鎖的狀態(tài)修改到空閑狀態(tài),得到表示解鎖成功的鎖操作結(jié)果; 當(dāng)所述鎖操作類型標(biāo)識為重置目的虛擬鎖的標(biāo)識vlreset時,對所述目的物理鎖進(jìn)行 重置操作,將所述目的物理鎖的狀態(tài)修改到空閑狀態(tài),得到表示重置目的物理鎖成功或失 敗的鎖操作結(jié)果; 當(dāng)所述鎖操作類型標(biāo)識為重置全部虛擬鎖的標(biāo)識vlresetall時,對所述多個物理鎖 進(jìn)行重置操作,將所述多個物理鎖的狀態(tài)都修改到空閑狀態(tài),得到表示重置全部鎖成功的 鎖操作結(jié)果。
【專利摘要】本發(fā)明公開了一種多核處理器,包括:物理鎖裝置和集成在每個處理器核上的虛擬鎖指令執(zhí)行裝置,物理鎖裝置分別與每個虛擬鎖指令執(zhí)行裝置連接,物理鎖裝置包括多個物理鎖,用于存儲數(shù)據(jù)對象的內(nèi)存空間包括多個虛擬鎖的標(biāo)識,虛擬鎖的標(biāo)識為數(shù)據(jù)對象的一個存儲地址,且虛擬鎖的標(biāo)識的數(shù)量大于物理鎖的標(biāo)識的數(shù)量;虛擬鎖指令執(zhí)行裝置用于根據(jù)目的虛擬鎖的標(biāo)識映射出目的物理鎖的標(biāo)識,物理鎖裝置用于根據(jù)目的物理鎖的標(biāo)識,從多個物理鎖中確定目的物理鎖;對目的物理鎖執(zhí)行鎖操作類型標(biāo)識對應(yīng)的鎖操作,得到針對目標(biāo)物理鎖的鎖操作結(jié)果。本發(fā)明實施例提供的多核處理器,可以解決線程間的對數(shù)據(jù)對象的訪問沖突問題,又避免了物理鎖的內(nèi)存開銷。
【IPC分類】G06F9/52, G06F12/08
【公開號】CN105094993
【申請?zhí)枴緾N201510507602
【發(fā)明人】譚光明, 閆潔
【申請人】華為技術(shù)有限公司, 中國科學(xué)院計算技術(shù)研究所
【公開日】2015年11月25日
【申請日】2015年8月18日