国产精品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>

      一種多核處理器、數(shù)據(jù)同步的方法及裝置的制造方法_2

      文檔序號:9375381閱讀:來源:國知局
      理鎖成功 或失敗的鎖操作結(jié)果;
      [0057] 當(dāng)所述鎖操作類型標(biāo)識為重置全部虛擬鎖的標(biāo)識vlresetall時(shí),對所述多個(gè)物 理鎖進(jìn)行重置操作,將所述多個(gè)物理鎖的狀態(tài)都修改到空閑狀態(tài),得到表示重置全部鎖成 功的鎖操作結(jié)果。
      [0058] 與現(xiàn)有技術(shù)中針對每個(gè)數(shù)據(jù)對象都要分配一把物理鎖,導(dǎo)致物理鎖占用大量的內(nèi) 存空間相比,本發(fā)明實(shí)施例提供的多核處理器,通過硬件來實(shí)現(xiàn)物理鎖,通過虛擬鎖的標(biāo)識 與物理鎖的標(biāo)識之間的映射來保證對數(shù)據(jù)對象的同步,每個(gè)數(shù)據(jù)對象的虛擬鎖的標(biāo)識為該 數(shù)據(jù)對象的在內(nèi)存中的一個(gè)地址,因此虛擬鎖的標(biāo)識沒有占用額外的內(nèi)存,而且,一個(gè)物 理鎖的標(biāo)識可以對應(yīng)多個(gè)虛擬鎖的標(biāo)識,虛擬鎖的標(biāo)識的數(shù)量遠(yuǎn)遠(yuǎn)小于物理鎖的標(biāo)識的數(shù) 量,因此,只需要較少的硬件開銷就可以解決線程間的對數(shù)據(jù)對象的訪問沖突問題,又減少 了物理鎖的內(nèi)存開銷。
      【附圖說明】
      [0059] 為了更清楚地說明本發(fā)明實(shí)施例技術(shù)方案,下面將對實(shí)施例和現(xiàn)有技術(shù)描述中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施 例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲 得其它的附圖。
      [0060] 圖1是本發(fā)明一個(gè)實(shí)施例提供的多核處理器的結(jié)構(gòu)示意圖;
      [0061] 圖2是本發(fā)明另一實(shí)施例提供的多核處理器的結(jié)構(gòu)示意圖;
      [0062] 圖3是本發(fā)明實(shí)施例中鎖虛擬化機(jī)制的原理圖;
      [0063] 圖4是本發(fā)明實(shí)施例中線程數(shù)與物理鎖的數(shù)量關(guān)系示意圖;
      [0064] 圖5是本發(fā)明實(shí)施例中vLock指令執(zhí)行裝置和pLock裝置內(nèi)部結(jié)構(gòu)以及指令執(zhí)行 流程的示意圖;
      [0065] 圖6是本發(fā)明實(shí)施例中針對任意內(nèi)存空間內(nèi)地址進(jìn)行數(shù)據(jù)同步的底層操作流程;
      [0066] 圖7是本發(fā)明實(shí)施例提供的數(shù)據(jù)同步的方法的一實(shí)施例示意圖;
      [0067] 圖8是本發(fā)明實(shí)施例中數(shù)據(jù)同步的裝置的一實(shí)施例示意圖;
      [0068] 圖9是本發(fā)明實(shí)施例中數(shù)據(jù)同步的裝置的另一實(shí)施例示意圖;
      [0069] 圖10是本發(fā)明實(shí)施例中數(shù)據(jù)同步的裝置的另一實(shí)施例示意圖。
      【具體實(shí)施方式】
      [0070] 本發(fā)明實(shí)施例提供一種多核處理器、數(shù)據(jù)同步的方法及裝置??梢砸欢ǔ潭壬辖?決線程間的對數(shù)據(jù)對象的訪問沖突問題,又減少了物理鎖的內(nèi)存開銷。本發(fā)明
      [0071] 為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的 附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是 本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù) 人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范 圍。
      [0072] 下面通過具體實(shí)施例,分別進(jìn)行詳細(xì)的說明。
      [0073] 圖1為本發(fā)明實(shí)施例中多核處理器的一結(jié)構(gòu)示意圖。如圖1所示,本發(fā)明實(shí)施例 提供一種多核處理器。所述處理器可以是多核或眾核處理器。
      [0074] 如圖1所示,所述多核處理器包括物理鎖(pLock)裝置110和多個(gè)處理器核,每個(gè) 處理器核中包括一個(gè)vLock指令執(zhí)行裝置120,所述pLock裝置110分別與每個(gè)vLock指令 執(zhí)行裝置120連接。所述物理鎖裝置110包括多個(gè)物理鎖,用于存儲數(shù)據(jù)對象的內(nèi)存空間 包括多個(gè)虛擬鎖的標(biāo)識,所述虛擬鎖的標(biāo)識為所述數(shù)據(jù)對象的一個(gè)存儲地址,且所述虛擬 鎖的標(biāo)識的數(shù)量大于所述物理鎖的標(biāo)識的數(shù)量;通常是虛擬鎖的數(shù)量遠(yuǎn)遠(yuǎn)大于所述物理鎖 的數(shù)量;
      [0075] 所述虛擬鎖指令執(zhí)行裝置120,用于:
      [0076] 接收虛擬鎖指令,所述虛擬鎖指令用于指示執(zhí)行從虛擬鎖的標(biāo)識到物理鎖的標(biāo)識 的映射操作,所述虛擬鎖指令包括鎖操作類型標(biāo)識和目的虛擬鎖的標(biāo)識;
      [0077] 根據(jù)所述目的虛擬鎖的標(biāo)識映射出目的物理鎖的標(biāo)識,并向所述物理鎖裝置發(fā)送 鎖操作請求,所述鎖操作請求包括所述鎖操作類型標(biāo)識和所述目的物理鎖的標(biāo)識;
      [0078] 所述物理鎖裝置110,用于:
      [0079] 根據(jù)所述目的物理鎖的標(biāo)識,從所述多個(gè)物理鎖中確定所述目的物理鎖;
      [0080] 對所述目的物理鎖執(zhí)行所述鎖操作類型標(biāo)識對應(yīng)的鎖操作,得到針對所述目標(biāo)物 理鎖的鎖操作結(jié)果。
      [0081 ] 本發(fā)明實(shí)施例中的數(shù)據(jù)對象通常為細(xì)粒度數(shù)據(jù)對象。
      [0082] 本發(fā)明實(shí)施例中的接收虛擬鎖指令的虛擬鎖指令執(zhí)行裝置可以是任意一個(gè)虛擬 鎖指令執(zhí)行裝置120,針對上述過程的描述也可以理解為:
      [0083] 假設(shè)處理器有N個(gè)處理器核,N為正整數(shù),所述N個(gè)vLock指令執(zhí)行裝置120包括: 設(shè)置在第i個(gè)處理器核中的第i個(gè)vLock指令執(zhí)行裝置120, i為小于或等于N的正整數(shù); 也就是說,通過將i取為不同的值,第i個(gè)vLock指令執(zhí)行裝置120可以是所述N個(gè)vLock 指令執(zhí)行裝置120中的任一個(gè)。
      [0084] 所述第i個(gè)vLock指令執(zhí)行裝置120,用于接收虛擬鎖指令,所述虛擬鎖指令用于 指示執(zhí)行虛擬鎖的標(biāo)識(vLock IDentity,vID)到物理鎖的標(biāo)識(pLock IDentity,pID)的 映射操作,所述虛擬鎖指令包括鎖操作類型標(biāo)識和目的虛擬鎖的標(biāo)識,目的vID可以是所 述該第i個(gè)vLock指令執(zhí)行裝置準(zhǔn)備同步的數(shù)據(jù)的首地址,也就是其準(zhǔn)備同步的數(shù)據(jù)對象 的首地址,將所述目的vID映射為目的pID,向所述物理鎖裝置110發(fā)送鎖操作請求,所述鎖 操作請求包括所述鎖操作類型標(biāo)識和所述目的PlD ;
      [0085] 所述pLock裝置110,用于接收所述鎖操作請求,根據(jù)所述鎖操作類型標(biāo)識對所述 目的PlD對應(yīng)的物理鎖(pLock)進(jìn)行相應(yīng)的鎖操作,得到鎖操作的結(jié)果。
      [0086] 鎖操作請求中還可以攜帶所述第i個(gè)核的標(biāo)識,當(dāng)攜帶所述第i個(gè)核的標(biāo)識時(shí),所 述pLock裝置110向所述第i個(gè)vLock指令執(zhí)行裝置120返回鎖操作的結(jié)果。
      [0087] 請參考圖2,本發(fā)明實(shí)施例中,所述vLock指令執(zhí)行裝置120具體可以包括:虛擬 鎖的標(biāo)識(vLock IDentity,vID)寄存器,虛擬鎖返回結(jié)果(vLock Ret,vRet)寄存器,以 及,映射處理模塊;所述pLock裝置110具體可以包括:緩沖隊(duì)列存儲模塊,pLock操作模 塊,以及pLock向量存儲模塊。其中,映射處理模塊和pLock操作模塊都通過硬件實(shí)現(xiàn),具 體可以邏輯電路,PLock向量存儲模塊中存儲有多個(gè)物理鎖,物理鎖可以是通過邏輯電路來 實(shí)現(xiàn)。
      [0088] 其中,上述各個(gè)功能模塊的功能如下:
      [0089] 所述VlD寄存器,用于存儲所述細(xì)粒度數(shù)據(jù)的虛擬鎖的標(biāo)識VlD ;
      [0090] 所述映射處理模塊,用于根據(jù)所述虛擬鎖的標(biāo)識寄存器中存儲的所述細(xì)粒度數(shù)據(jù) 的虛擬鎖的標(biāo)識,以及虛擬鎖的標(biāo)識與物理鎖的標(biāo)識的映射關(guān)系,映射出與所述虛擬鎖對 應(yīng)的目標(biāo)物理鎖的標(biāo)識,并向所述物理鎖裝置發(fā)送針對所述目標(biāo)物理鎖的鎖操作請求,所 述鎖操作請求包括鎖操作類型標(biāo)識、所述目標(biāo)物理鎖的標(biāo)識和所述虛擬鎖指令執(zhí)行裝置所 屬的處理器核的標(biāo)識;
      [0091] 所述緩沖隊(duì)列存儲模塊用于緩存接收到的鎖操作請求;
      [0092] 所述pLock操作模塊,用于從所述緩沖隊(duì)列存儲模塊中提取當(dāng)前的鎖操作請求, 也就是排在緩沖隊(duì)列最前面的鎖操作請求,根據(jù)所述鎖操作類型標(biāo)識對所述PlD對應(yīng)的 pLock進(jìn)行相應(yīng)的鎖操作。
      [0093] 進(jìn)一步的,所述pLock操作模塊,還可用于返回操作結(jié)果給所述第i個(gè)vLock指令 執(zhí)行裝置中的vRet寄存器;
      [0094] 所述vRet寄存器,用于存儲接收到的鎖操作結(jié)果。
      [0095] 值得說明的是,所述VlD可以由用戶軟件(用戶函數(shù))寫入所述VlD寄存器,鎖操 作類型標(biāo)識可以由用戶軟件下發(fā)給核中的vLock指令執(zhí)行裝置中的映射處理模塊,鎖操作 類型標(biāo)識可以是通過所述vLock指令下發(fā),用戶軟件還可以從vRet寄存器讀取vLock指令 的操作結(jié)果。
      [0096] 由上可見,本發(fā)明實(shí)施例提供的多核處理器:
      [0097] 通過將虛擬鎖的標(biāo)識VlD映射為物理鎖的標(biāo)識pID,進(jìn)而對pID對應(yīng)的物理鎖進(jìn)行 鎖操作,虛擬鎖可以是數(shù)據(jù)對象內(nèi)存空間的地址,所以不需要為虛擬鎖實(shí)際分配內(nèi)存空間, 不會因此產(chǎn)生內(nèi)存開銷;而且一個(gè)物理鎖的標(biāo)識可以對應(yīng)多個(gè)虛擬鎖的標(biāo)識,物理鎖的標(biāo) 識的數(shù)量遠(yuǎn)遠(yuǎn)小于虛擬鎖的標(biāo)識的數(shù)量,因此用少量的硬件物理鎖開銷就可以解決線程間 的對數(shù)據(jù)對象的訪問沖突問題,又避免了物理鎖的內(nèi)存開銷。
      [0098] 另外,本發(fā)明實(shí)施例提供的多核處理器不改變現(xiàn)有的處理器核微體系結(jié)構(gòu),只增 量式地在處理器中添加少量硬件電路,就可以實(shí)現(xiàn)細(xì)粒度數(shù)據(jù)同步;
      [0099] 而且,本發(fā)明技術(shù)方案由在多核處理器中增加硬件電路實(shí)現(xiàn),獨(dú)立于多核處理器 的其它部分,與多核處理器的原有功能互不影響。
      [0100] 下面,對本發(fā)明技術(shù)方案作進(jìn)一步詳細(xì)描述。
      [0101] 本發(fā)明技術(shù)方案包括鎖虛擬化機(jī)制、指令集擴(kuò)展和硬件實(shí)現(xiàn)三部分,下面分別敘 述。
      [0102] 鎖虛擬化機(jī)制:
      [0103] 如圖3所示,是本發(fā)明實(shí)施例中鎖虛擬化機(jī)制的原理圖。邏輯上,任意大小的虛擬 鎖(vLock)的標(biāo)識,都可以通過一個(gè)哈希(Hash)函數(shù)(如模余運(yùn)算)映射到固定大小的物 理鎖(pLock)的標(biāo)識。
      [0104] 本發(fā)明實(shí)施例中,采用虛擬鎖(VLock)機(jī)制,為每個(gè)存在訪問競爭的數(shù)據(jù)對象分 配一個(gè)vLock,但無需為vLock實(shí)際分配內(nèi)存空間。本發(fā)明實(shí)施例中,可以用不同的虛擬鎖 的標(biāo)識(vLock IDentity,vID)來表示不同的vLock。本發(fā)明實(shí)施例中,可采用數(shù)據(jù)對象的 首地址作為對應(yīng)于該數(shù)據(jù)對象的虛擬鎖的標(biāo)識vID,數(shù)據(jù)對象首地址通常是64位無符號整 數(shù)。
      [0105] 本發(fā)明實(shí)施例中,另外提供物理鎖(pLock)向量。pLock向量可以包括多個(gè)pLock, 每個(gè)pLock可占用1比特(bit)存儲空間,其中,所述pLock的值為0時(shí)表示鎖未被占用, 為1時(shí)表示鎖已被占用,或者,所述pLock的值為1時(shí)表示鎖未被占用,為0時(shí)表示鎖已被 占用。當(dāng)然,也可以用其他方式來表示物理鎖的使用狀態(tài)。本
      當(dāng)前第2頁1 2 3 4 5 6 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1