亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于緩存一致性原理的原子操作實(shí)現(xiàn)方法及裝置的制造方法_2

文檔序號(hào):9375234閱讀:來源:國(guó)知局
一種基于緩存一致性原理的原子操作實(shí)現(xiàn)方法,包括:
[0045]S101、當(dāng)處理器對(duì)鎖定地址執(zhí)行原子操作時(shí),將所述鎖定地址的協(xié)議初始狀態(tài)轉(zhuǎn)換為保持態(tài);
[0046]其中,在所述鎖定地址處于保持態(tài)時(shí),阻止其他處理器對(duì)所述鎖定地址的讀寫操作;
[0047]具體的,在MESI協(xié)議中,一個(gè)緩存行(即鎖定地址)只有處于獨(dú)占態(tài)(E)或修改態(tài)(M)時(shí)才能執(zhí)行寫操作,并且在任意時(shí)刻,系統(tǒng)中只存在一個(gè)M態(tài)數(shù)據(jù)副本,其它副本無效;緩存行處于獨(dú)占態(tài)(E)、修改態(tài)(M)或者共享態(tài)(S)時(shí)均可執(zhí)行讀操作,對(duì)應(yīng)系統(tǒng)中存在一個(gè)或多個(gè)副本。緩存一致性協(xié)議本身沒有約束對(duì)同一地址的兩次讀寫操作是否原子執(zhí)行,即在處理器對(duì)緩存行進(jìn)行讀操作和寫操作之間,其它處理器可以訪問該緩存行,從而導(dǎo)致讀操作和寫操縱的指令處理效率低下。
[0048]因此,在MESI協(xié)議中,定義一個(gè)新的保持態(tài)。例如,在MESI協(xié)議中,定義兩種保持態(tài)為“獨(dú)占保持態(tài)”和“修改保持態(tài)”,記為E_W和M_W,緩存行處于保持態(tài)期間,只允許當(dāng)前處理器對(duì)該緩存行的讀寫操作,其它處理器核發(fā)起的對(duì)該地址的訪問阻塞。
[0049]需要說明的是,本實(shí)施例這種將鎖定地址的協(xié)議初始狀態(tài)轉(zhuǎn)換為保持態(tài)這種方法,不僅適用于MESI協(xié)議,其他一致性協(xié)議也適用,例如=MOESI協(xié)議和MESIF協(xié)議。
[0050]S102、執(zhí)行所述處理器對(duì)所述鎖定地址的讀寫操作。
[0051]具體的,本實(shí)施例通過緩存一致性維護(hù)機(jī)制即可實(shí)現(xiàn)原子操作,無需鎖定總線和緩存行,對(duì)系統(tǒng)的性能影響小,效率高。
[0052]本發(fā)明實(shí)施例提供的一致性原理的原子操作實(shí)現(xiàn)方法,包括當(dāng)處理器對(duì)鎖定地址執(zhí)行原子操作時(shí),將所述鎖定地址的協(xié)議初始狀態(tài)轉(zhuǎn)換為保持態(tài);其中,在所述鎖定地址處于保持態(tài)時(shí),阻止其他處理器對(duì)所述鎖定地址的讀寫操作;執(zhí)行所述處理器對(duì)所述鎖定地址的讀寫操作,當(dāng)所述鎖定地址處于保持態(tài)時(shí),處理器的緩存一致性維護(hù)機(jī)制保證只有當(dāng)前處理器能夠?qū)λ鲦i定地址執(zhí)行讀寫操作,其它處理器對(duì)所述鎖定地址的操作均需暫停等待,從而保證處理器對(duì)鎖定地址的原子操作。
[0053]參見圖2,本發(fā)明實(shí)施例提供的另一種基于緩存一致性原理的原子操作實(shí)現(xiàn)方法,包括:
[0054]S201、當(dāng)處理器對(duì)鎖定地址執(zhí)行原子操作時(shí),將所述鎖定地址的協(xié)議初始狀態(tài)轉(zhuǎn)換為保持態(tài);
[0055]S202、設(shè)置所述處理器對(duì)所述鎖定地址的保持時(shí)長(zhǎng);
[0056]S203、執(zhí)行所述處理器對(duì)所述鎖定地址的讀寫操作;
[0057]S204、當(dāng)所述鎖存地址處于保持態(tài)的時(shí)長(zhǎng)大于所述保持時(shí)長(zhǎng)時(shí),解除所述鎖定地址的保持態(tài);
[0058]S205、恢復(fù)與所述保持態(tài)相對(duì)應(yīng)的協(xié)議狀態(tài)。
[0059]具體的,在本實(shí)施例中,可以為每個(gè)E_W態(tài)及M_W態(tài)關(guān)聯(lián)一個(gè)超時(shí)計(jì)數(shù)器,當(dāng)讀寫保持態(tài)的保持時(shí)間達(dá)到超時(shí)計(jì)數(shù)器定義的時(shí)間(周期數(shù))時(shí),觸發(fā)超時(shí)事件,解除讀寫保持
??τ O
[0060]優(yōu)選的,在本發(fā)明的另一實(shí)施例中,將所述鎖定地址的協(xié)議初始狀態(tài)轉(zhuǎn)換為保持態(tài),包括:
[0061]若所述鎖定地址的協(xié)議初始狀態(tài)為無效態(tài)或者共享態(tài),則所述處理器請(qǐng)求獨(dú)占保持態(tài);
[0062]若所述鎖定地址的協(xié)議初始狀態(tài)為獨(dú)占態(tài),則將所述獨(dú)占態(tài)轉(zhuǎn)換為獨(dú)占保持態(tài);
[0063]若所述鎖定地址的協(xié)議初始狀態(tài)為修改態(tài),則將所述修改態(tài)轉(zhuǎn)換為修改保持態(tài)。
[0064]具體的,在MESI協(xié)議中,若初始狀態(tài)為無效態(tài)(I)或共享態(tài)(S),處理器請(qǐng)求獨(dú)占保持態(tài)(E_W)數(shù)據(jù)副本,系統(tǒng)中的其它副本無效,同時(shí),設(shè)置保持時(shí)長(zhǎng)T ;
[0065]若初始狀態(tài)為獨(dú)占態(tài)(E),將緩存行狀態(tài)轉(zhuǎn)換為獨(dú)占保持態(tài)(E_W),系統(tǒng)中的其它副本無效,同時(shí),設(shè)置保持時(shí)長(zhǎng)T ;
[0066]若初始狀態(tài)為修改態(tài)(E),將緩存行狀態(tài)轉(zhuǎn)換為修改獨(dú)占保持態(tài)(M_W),系統(tǒng)中的其它副本無效,同時(shí),設(shè)置保持時(shí)長(zhǎng)T。
[0067]優(yōu)選的,在本發(fā)明的另一實(shí)施例中,
[0068]若所述鎖定地址處于獨(dú)占保持態(tài),則執(zhí)行所述處理器的讀操作時(shí),保持所述鎖定地址處于獨(dú)占保持態(tài)不變;執(zhí)行所述處理器的寫操作時(shí),將所述鎖定地址的協(xié)議狀態(tài)變?yōu)樾薷谋3謶B(tài);
[0069]若所述鎖定地址處于修改保持態(tài),則執(zhí)行所述處理器的讀操作和寫操作時(shí),所述鎖定地址的協(xié)議狀態(tài)不變。
[0070]具體的,若讀寫保持態(tài)為E_W,處理器在對(duì)緩存行執(zhí)行讀操作時(shí),直接從緩存行讀取相應(yīng)數(shù)據(jù),保持E_W狀態(tài)不變,可根據(jù)需要選擇是否重置超時(shí)間隔;處理器對(duì)緩存行執(zhí)行寫操作時(shí),直接將相關(guān)數(shù)據(jù)寫入緩存行,緩存行狀態(tài)變?yōu)镸_W狀態(tài),可根據(jù)需要選擇是否重置超時(shí)間隔。
[0071]若讀寫保持態(tài)SM_W,處理器在對(duì)緩存行執(zhí)行讀操作時(shí),直接從緩存行讀取相應(yīng)數(shù)據(jù),保持M_W狀態(tài)不變,可根據(jù)需要選擇是否重置超時(shí)間隔;處理器對(duì)緩存行執(zhí)行寫操作時(shí),直接將相關(guān)數(shù)據(jù)寫入緩存行,緩存行狀態(tài)也不變,即一致保持M_W狀態(tài),同時(shí)也可根據(jù)需要選擇是否重置超時(shí)間隔。
[0072]需要說明的是,本實(shí)施例中的“可根據(jù)需要選擇是否重置超時(shí)間隔”為:若處理器在保持時(shí)長(zhǎng)內(nèi)已經(jīng)完成了讀寫操作,則處理器可以選擇提前解除鎖定地址的保持態(tài);若處理器在保持時(shí)長(zhǎng)內(nèi)不能完成讀寫操作,則可以選擇延長(zhǎng)保持時(shí)長(zhǎng)。
[0073]優(yōu)選的,在本發(fā)明的另一實(shí)施例中,若所述鎖定地址處于獨(dú)占保持態(tài),并且所述鎖存地址處于獨(dú)占保持態(tài)的時(shí)長(zhǎng)大于所述保持時(shí)長(zhǎng),將所述鎖定地址的協(xié)議狀態(tài)轉(zhuǎn)換為獨(dú)占態(tài);
[0074]若所述鎖定地址處于修改保持態(tài),并且所述鎖存地址處于修改保持態(tài)的時(shí)長(zhǎng)大于所述保持時(shí)長(zhǎng),將所述鎖定地址的協(xié)議狀態(tài)轉(zhuǎn)換為修改態(tài)。
[0075]具體的,緩存行處于保持態(tài)的時(shí)長(zhǎng)大于所述保持時(shí)長(zhǎng),則將保持態(tài)轉(zhuǎn)換為對(duì)應(yīng)的穩(wěn)態(tài),即獨(dú)占保持態(tài)(E_W)轉(zhuǎn)換為獨(dú)占態(tài)(E),修改保持態(tài)(M_W)轉(zhuǎn)換為修改態(tài)(M)。
[0076]參見圖3,本發(fā)明實(shí)施例提供的一種基于緩存一致性原理的原子操作實(shí)現(xiàn)裝置,包括:
[0077]協(xié)議狀態(tài)轉(zhuǎn)換模塊100,用于當(dāng)處理器對(duì)鎖定地址執(zhí)行原子操作時(shí),將所述鎖定地址的協(xié)議初始狀態(tài)轉(zhuǎn)換為保持態(tài);
[0078]其中,在所述鎖定地址處于保持態(tài)時(shí),阻止其他處理器對(duì)所述鎖定地址的讀寫操作;
[0079]執(zhí)行模塊200,用于執(zhí)行所述處理器對(duì)所述鎖定地址的讀寫操作。
[0080]本發(fā)明實(shí)施例提供的一致性原理的原子操作實(shí)現(xiàn)裝置,包括協(xié)議狀態(tài)轉(zhuǎn)換模塊100,用于當(dāng)處理器對(duì)鎖定地址執(zhí)行原子操作時(shí),將所述鎖定地址的協(xié)議初始狀態(tài)轉(zhuǎn)換為保持態(tài);其中,在所述鎖定地址處于保持態(tài)時(shí),阻止其他處理器對(duì)所述鎖定地址的讀寫操作;執(zhí)行模塊200,用于執(zhí)行所述處理器對(duì)所述鎖定地址的讀寫操作,當(dāng)所述鎖定地址處于保持態(tài)時(shí),處理器的緩存一致性維護(hù)機(jī)制保證只有當(dāng)前處理器能夠?qū)λ鲦i定地址執(zhí)行讀寫操作,其它處理器對(duì)所述鎖定地址的操作均需暫停等待,從而保證處理器對(duì)鎖定地址的原子操作。
[0081]參見圖4,本發(fā)明實(shí)施例提供的另一種基于緩存一致性原理的原子操作實(shí)現(xiàn)裝置,包括:
[0082]協(xié)議狀態(tài)轉(zhuǎn)換模塊100,用于當(dāng)處理器對(duì)鎖定地址執(zhí)行原子操作時(shí),將所述鎖定地址的協(xié)議初始狀態(tài)轉(zhuǎn)換為保持態(tài);
[0083]其中,在
當(dāng)前第2頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1