專利名稱:緩存目錄的實(shí)現(xiàn)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種緩存目錄的實(shí)現(xiàn)方法及裝置。
背景技術(shù):
處理器(CPU)是終端設(shè)備和服務(wù)器設(shè)備中必不可少的重要部件。隨著終端設(shè)備和服務(wù)器設(shè)備性能的不斷提高,多核處理器系統(tǒng)逐漸成為主流,例如常見(jiàn)的UMA(UniformMemory Access,統(tǒng)一內(nèi)存訪問(wèn))系統(tǒng)和 NUMA(Non-Uniform Memory Access,非統(tǒng)一內(nèi)存訪問(wèn))系統(tǒng)等,均包括多個(gè)處理器模塊。在多核處理器系統(tǒng)中,由于讀寫速度的差異,當(dāng)CPU進(jìn)行存儲(chǔ)器訪問(wèn)時(shí),會(huì)優(yōu)先從本地cache查找并獲取目標(biāo)數(shù)據(jù);若該CPU的本地高速緩沖存儲(chǔ)器(cache)中沒(méi)有存儲(chǔ)目標(biāo)數(shù)據(jù),則從其他CPU的cache中查找并獲取目標(biāo)數(shù)據(jù);若其他CPU的本地cache中沒(méi)有存儲(chǔ)目標(biāo)數(shù)據(jù),則從內(nèi)存中查找并獲取目標(biāo)數(shù)據(jù)。根據(jù)上述CPU查找及獲取目標(biāo)用戶的方法,需要對(duì)cache和內(nèi)存中的數(shù)據(jù)進(jìn)行緩存一致性處理,以對(duì)處理器系統(tǒng)中存儲(chǔ)的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。一種實(shí)現(xiàn)方法是通過(guò)建立緩存目錄、以目錄的方式記錄多CPU系統(tǒng)中的緩存數(shù)據(jù)和共享數(shù)據(jù)的位置和狀態(tài)。一種較為常見(jiàn)的緩存目錄是全映射目錄,該目錄完整的存儲(chǔ)了處理器系統(tǒng)中所有地址空間(包括內(nèi)存和cache)的數(shù)據(jù)信息,包括所有的共享數(shù)據(jù)在各處理器cache中的緩存信息。在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題由于處理器系統(tǒng)中的地址空間較大、處理器數(shù)量較多,所以全映射目錄所占的存儲(chǔ)空間較大,使得全映射目錄的訪問(wèn)速度慢且存儲(chǔ)使用率較低。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種緩存目錄的實(shí)現(xiàn)方法及裝置,能夠解決現(xiàn)有技術(shù)中緩存目錄的訪問(wèn)速度慢且存儲(chǔ)使用率較低的問(wèn)題。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案第一方面,本發(fā)明實(shí)施例提供了一種緩存目錄的實(shí)現(xiàn)方法,所述方法包括創(chuàng)建緩存目錄,所述緩存目錄包括公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄,所述公有數(shù)據(jù)目錄用于記錄公有數(shù)據(jù)的數(shù)據(jù)塊信息,所述私有數(shù)據(jù)目錄用于記錄私有數(shù)據(jù)的數(shù)據(jù)塊信當(dāng)接收到第一處理器發(fā)送的讀寫請(qǐng)求時(shí),確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,所述數(shù)據(jù)類型包括私有數(shù)據(jù)、或公有數(shù)據(jù);根據(jù)所述數(shù)據(jù)類型,在所述緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息。在一種可能的實(shí)現(xiàn)方式中,所述方法還包括接收第一處理器發(fā)送的讀寫請(qǐng)求,所述讀寫請(qǐng)求包括目標(biāo)數(shù)據(jù)的物理地址;所述當(dāng)接收到第一處理器發(fā)送的讀寫請(qǐng)求時(shí),確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,包括根據(jù)所述讀寫請(qǐng)求確定目標(biāo)數(shù)據(jù)的物理地址,檢測(cè)所述緩存目錄中是否記錄有所述目標(biāo)數(shù)據(jù)的物理地址。
在一種可能的情況下如果所述緩存目錄中沒(méi)有記錄所述目標(biāo)數(shù)據(jù)的物理地址,則確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù);則所述根據(jù)所述數(shù)據(jù)類型,在所述緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括在所述私有數(shù)據(jù)目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括所述目標(biāo)數(shù)據(jù)的物理地址以及對(duì)所述目標(biāo)數(shù)據(jù)塊進(jìn)行讀寫操作的處理器標(biāo)識(shí),即第一處理器的標(biāo)識(shí)。在另一種可能的情況下如果所述緩存目錄中記錄有所述目標(biāo)數(shù)據(jù)的物理地址,所述確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,包括(I)當(dāng)所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述緩存目錄中的私有數(shù)據(jù)目錄中時(shí),檢測(cè)所述私有數(shù)據(jù)目錄中該物理地址對(duì)應(yīng)的處理器標(biāo)識(shí)與第一處理器的標(biāo)識(shí)是否相同;若是,則確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù);若否,則確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù);則所述根據(jù)所述數(shù)據(jù)類型,在所述緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括如果確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù),則根據(jù)所述讀寫請(qǐng)求在所述私有數(shù)據(jù)目錄中更新所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,所述數(shù)據(jù)塊信息包括所述目標(biāo)數(shù)據(jù)的讀寫次數(shù)、讀寫時(shí)間;如果確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù),則將所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息記錄于所述公有數(shù)據(jù)目錄中,將所述目標(biāo)數(shù)據(jù)在所述私有數(shù)據(jù)目錄中的目錄項(xiàng)置為無(wú)效。(2)當(dāng)所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述緩存目錄中的公有數(shù)據(jù)目錄中時(shí),所述確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,包括確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù);則所述根據(jù)所述數(shù)據(jù)類型,在所述緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括在所述緩存目錄中的公有數(shù)據(jù)目錄中對(duì)所述目標(biāo)數(shù)據(jù)的位向量標(biāo)識(shí)進(jìn)行修改,在所述位向量標(biāo)識(shí)中增加第一處理器的信息。第二方面,本發(fā)明實(shí)施例還提供了一種緩存目錄的實(shí)現(xiàn)裝置,所述裝置包括建立單元,用于創(chuàng)建緩存目錄,所述緩存目錄包括公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄,所述公有數(shù)據(jù)目錄用于記錄公有數(shù)據(jù)的數(shù)據(jù)塊信息,所述私有數(shù)據(jù)目錄用于記錄私有數(shù)據(jù)的數(shù)據(jù)塊信息;確定單元,用于當(dāng)接收到第一處理器發(fā)送的讀寫請(qǐng)求時(shí),確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,所述數(shù)據(jù)類型包括私有數(shù)據(jù)、或公有數(shù)據(jù);記錄單元,用于根據(jù)所述確定單元確定的數(shù)據(jù)類型,在所述建立單元?jiǎng)?chuàng)建的緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息。在一種可能的實(shí)現(xiàn)方式中,所述裝置還包括接收單元,用于接收第一處理器發(fā)送的讀寫請(qǐng)求,所述讀寫請(qǐng)求包括目標(biāo)數(shù)據(jù)的物理地址。所述確定單元包括檢測(cè)模塊,用于根據(jù)所述讀寫請(qǐng)求確定目標(biāo)數(shù)據(jù)的物理地址,檢測(cè)所述緩存目錄中是否記錄有所述目標(biāo)數(shù)據(jù)的物理地址;在一種可能的情況下所述確定單元用于當(dāng)所述檢測(cè)模塊檢測(cè)緩存目錄中沒(méi)有記錄所述目標(biāo)數(shù)據(jù)的物理地址時(shí),確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù);
所述記錄單元具體用于在所述私有數(shù)據(jù)目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括所述目標(biāo)數(shù)據(jù)的物理地址以及對(duì)所述目標(biāo)數(shù)據(jù)塊進(jìn)行讀寫操作的處理器標(biāo)識(shí),即第一處理器的標(biāo)識(shí)。在另一種可能的情況下當(dāng)所述檢測(cè)模塊確定所述緩存目錄中記錄有所述目標(biāo)數(shù)據(jù)的物理地址時(shí),所述檢測(cè)模塊還用于進(jìn)一步確定所述目標(biāo)數(shù)據(jù)的在所述緩存目錄中的具體位置,所述具體位置包括私有數(shù)據(jù)目錄和公有數(shù)據(jù)目錄;(I)所述檢測(cè)模塊還用于當(dāng)確定所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述緩存目錄中的私有數(shù)據(jù)目錄時(shí),檢測(cè)所述私有數(shù)據(jù)目錄中該物理地址對(duì)應(yīng)的處理器標(biāo)識(shí)與第一處理器的標(biāo)識(shí)是否相同;若是,則所述確定單元確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù);若否,則所述確定單元確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù);所述記錄單元具體用于當(dāng)確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù)時(shí),根據(jù)所述讀寫請(qǐng)求在所述私有數(shù)據(jù)目錄中更新所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,所述數(shù)據(jù)塊信息包括所述目標(biāo)數(shù)據(jù)的讀寫次數(shù)、讀寫時(shí)間;以及所述記錄單元具體用于當(dāng)確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息記錄于所述公有數(shù)據(jù)目錄中,將所述目標(biāo)數(shù)據(jù)在所述私有數(shù)據(jù)目錄中的目錄項(xiàng)置為無(wú)效。(2)所述確定單元用于當(dāng)所述檢測(cè)模塊確定所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述公有數(shù)據(jù)目錄中時(shí),確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù);所述記錄單元用于在所述緩存目錄中的公有數(shù)據(jù)目錄中對(duì)所述目標(biāo)數(shù)據(jù)的位向量標(biāo)識(shí)進(jìn)行修改,在所述位向量標(biāo)識(shí)中增加第一處理器的信息。本發(fā)明實(shí)施例提供的緩存目錄的實(shí)現(xiàn)方法及裝置,建立緩存目錄、并將緩存目錄劃分為私有數(shù)據(jù)目錄和公有數(shù)據(jù)目錄,通過(guò)私有數(shù)據(jù)目錄記錄處理器系統(tǒng)中各處理器的私有數(shù)據(jù)的數(shù)據(jù)塊信息,通過(guò)公有數(shù)據(jù)目錄記錄處理器系統(tǒng)中多個(gè)處理器共享數(shù)據(jù)的數(shù)據(jù)塊信息。一方面,由于處理器系統(tǒng)的cache容量有限,所以能夠節(jié)省所述緩存目錄占用的存儲(chǔ)空間;另一方面,由于私有數(shù)據(jù)僅被唯一的處理器訪問(wèn),無(wú)需記錄其他處理器的訪問(wèn)信息,能夠有效的提升緩存目錄的使用效率。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例一提供的緩存目錄的實(shí)現(xiàn)方法的流程示意圖;圖2為本發(fā)明實(shí)施例二提供的緩存目錄的實(shí)現(xiàn)方法的流程示意圖;圖3為本發(fā)明實(shí)施例二提供的私有數(shù)據(jù)目錄的邏輯結(jié)構(gòu)圖;圖4、圖5、圖6為本發(fā)明實(shí)施例三提供的緩存目錄的實(shí)現(xiàn)裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例一本發(fā)明實(shí)施例提供了一種緩存目錄的實(shí)現(xiàn)方法,如圖1所示,所述方法包括101、目錄緩存控制器創(chuàng)建緩存目錄,所述緩存目錄包括公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄,所述公有數(shù)據(jù)目錄用于記錄公有數(shù)據(jù)的數(shù)據(jù)塊信息,所述私有數(shù)據(jù)目錄用于記錄私有數(shù)據(jù)的數(shù)據(jù)塊信息。值得說(shuō)明的是,本實(shí)施例緩存目錄用于記錄處理器模塊的cache中緩存數(shù)據(jù)的數(shù)據(jù)塊信息,所述處理器模塊包括多個(gè)處理器,所述cache供所述多個(gè)處理器公用。緩存目錄的目錄項(xiàng)的項(xiàng)數(shù)取決于cache中緩存數(shù)據(jù)的數(shù)據(jù)量,由于cache的存儲(chǔ)空間有限、且cache的存儲(chǔ)空間通常遠(yuǎn)小于處理器模塊內(nèi)存的存儲(chǔ)空間,所以本實(shí)施例中緩存目錄的目錄項(xiàng)的項(xiàng)數(shù)遠(yuǎn)小于現(xiàn)有技術(shù)中的全映射目錄。由于緩存目錄的容量較小,所以本實(shí)施例中緩存目錄的訪問(wèn)速度能夠得到較大的提升。102、當(dāng)接收到第一處理器發(fā)送的讀寫請(qǐng)求時(shí),所述目錄緩存控制器確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,所述數(shù)據(jù)類型包括私有數(shù)據(jù)、或公有數(shù)據(jù)。103、所述目錄緩存控制器根據(jù)所述數(shù)據(jù)類型,在所述緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息。值得說(shuō)明的是,由于私有數(shù)據(jù)僅被唯一的處理器訪問(wèn),所以在記錄私有數(shù)據(jù)時(shí),無(wú)需對(duì)私有數(shù)據(jù)進(jìn)行緩存一致性處理,僅記錄所述私有數(shù)據(jù)對(duì)應(yīng)的處理器標(biāo)識(shí),能夠有效的節(jié)省緩存目錄所占用的存儲(chǔ)空間,同時(shí)還可以記錄更多的公有數(shù)據(jù)的數(shù)據(jù)塊信息,提高緩存目錄的使用效率。本發(fā)明實(shí)施例提供的緩存目錄的實(shí)現(xiàn)方法,緩存目錄僅記錄cache中緩存數(shù)據(jù)的數(shù)據(jù)塊信息(無(wú)需記錄內(nèi)存中數(shù)據(jù)的數(shù)據(jù)塊信息),所以本實(shí)施例中的緩存目錄的容量較小,訪問(wèn)速度能夠得到較大的提升;另一方面,通過(guò)識(shí)別私有數(shù)據(jù)、并在私有數(shù)據(jù)目錄中記錄私有數(shù)據(jù)的數(shù)據(jù)塊信息,由于私有數(shù)據(jù)目錄占用的存儲(chǔ)空間較少,所以能夠有效的提升緩存目錄的使用效率。實(shí)施例二本發(fā)明實(shí)施例提供了一種緩存目錄的實(shí)現(xiàn)方法,如圖2所示,所述方法包括201、目錄緩存控制器創(chuàng)建緩存目錄,所述緩存目錄包括公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄,所述公有數(shù)據(jù)目錄用于記錄公有數(shù)據(jù)的數(shù)據(jù)塊信息,所述私有數(shù)據(jù)目錄用于記錄私有數(shù)據(jù)的數(shù)據(jù)塊信息。值得說(shuō)明的是,與現(xiàn)有技術(shù)中的全映射目錄不同,本實(shí)施例中的緩存目錄用于記錄處理器系統(tǒng)中緩存數(shù)據(jù)的數(shù)據(jù)塊信息。其中,所述公有數(shù)據(jù)的數(shù)據(jù)塊信息包括緩存數(shù)據(jù)的物理地址與位向量標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,所述位向量標(biāo)識(shí)包括N個(gè)指針,用于表征所述公有數(shù)據(jù)對(duì)應(yīng)的處理器,所述N是處理器的個(gè)數(shù);所述私有數(shù)據(jù)的數(shù)據(jù)信息包括緩存數(shù)據(jù)的物理地址以及該緩存數(shù)據(jù)對(duì)應(yīng)的處理器標(biāo)識(shí)。202、所述目錄緩存控制器接收第一處理器發(fā)送的讀寫請(qǐng)求,所述讀寫請(qǐng)求包括目標(biāo)數(shù)據(jù)的物理地址。本實(shí)施例提供的方法適用于多核處理器系統(tǒng)中的處理器模塊,該處理器模塊包括多個(gè)處理器、cache,以及內(nèi)存,其中,所述cache和內(nèi)存供所述多個(gè)處理器共用。203、所述目錄緩存控制器根據(jù)所述讀寫請(qǐng)求確定目標(biāo)數(shù)據(jù)的物理地址,檢測(cè)所述緩存目錄中是否記錄有所述目標(biāo)數(shù)據(jù)的物理地址;若否,則執(zhí)行204,若是,則執(zhí)行205。204、所述目錄緩存控制器確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù),在所述私有數(shù)據(jù)目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括所述目標(biāo)數(shù)據(jù)的物理地址以及對(duì)所述目標(biāo)數(shù)據(jù)塊進(jìn)行讀寫操作的處理器標(biāo)識(shí),即第一處理器的標(biāo)識(shí)。也就是說(shuō),本實(shí)施例提供的緩存目錄的實(shí)現(xiàn)方法,在對(duì)所有的數(shù)據(jù)進(jìn)行初始記錄時(shí),均作為私有數(shù)據(jù)進(jìn)行處理。如果后續(xù)存在其他處理器對(duì)某一數(shù)據(jù)進(jìn)行讀寫操作,則將該數(shù)據(jù)的數(shù)據(jù)類型修改為公有數(shù)據(jù)。205、所述目錄緩存控制器進(jìn)一步檢測(cè)所述目標(biāo)數(shù)據(jù)的物理地址在所述緩存目錄中的具體位置;如果所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述緩存目錄中的公有數(shù)據(jù)目錄中,執(zhí)行206 ;如果所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述緩存目錄中的私有數(shù)據(jù)目錄中,執(zhí)行207。206、所述目錄緩存控制器確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù);在所述緩存目錄中的公有數(shù)據(jù)目錄中對(duì)所述目標(biāo)數(shù)據(jù)的位向量標(biāo)識(shí)進(jìn)行修改,在所述位向量標(biāo)識(shí)中增加第一處理器的信息。由于公有數(shù)據(jù)會(huì)被多個(gè)處理器進(jìn)行讀寫操作,所以公有數(shù)據(jù)目錄中的每個(gè)目錄項(xiàng)包括N個(gè)指針(N是當(dāng)前處理器模塊中處理器的個(gè)數(shù)),這些指針構(gòu)成位向量標(biāo)識(shí),每個(gè)位向量標(biāo)識(shí)所占用的存儲(chǔ)空間為N比特。
207、所述目錄緩存控制器檢測(cè)所述目標(biāo)數(shù)據(jù)的物理地址對(duì)應(yīng)的處理器標(biāo)識(shí)與第一處理器的標(biāo)識(shí)是否相同;若是,則執(zhí)行208 ;若否,則執(zhí)行209。208、所述目錄緩存控制器確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù),根據(jù)所述讀寫請(qǐng)求在所述私有數(shù)據(jù)目錄中更新所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,所述數(shù)據(jù)塊信息包括所述目標(biāo)數(shù)據(jù)的讀寫次數(shù)、讀寫時(shí)間。具體的,為了便于理解,本發(fā)明實(shí)施例提供了一種私有數(shù)目目錄的邏輯結(jié)構(gòu)圖,如圖3所示,所述私有數(shù)據(jù)目錄項(xiàng)包括物理地址位(Block_Address表示私有數(shù)據(jù)的物理地址)、處理器標(biāo)識(shí)位(η表示私有數(shù)據(jù)對(duì)應(yīng)的處理器標(biāo)識(shí))、有效位(I表示當(dāng)前目錄項(xiàng)有效,O表示當(dāng)前目錄項(xiàng)無(wú)效)。其中,物理地址位的長(zhǎng)度取決于處理器模塊中地址線的長(zhǎng)度,處理器標(biāo)識(shí)位的長(zhǎng)度取決于處理器的個(gè)數(shù),有效位的長(zhǎng)度固定為I比特。具體的,如果當(dāng)前處理器模塊由N個(gè)處理器構(gòu)成,則處理器標(biāo)識(shí)位的長(zhǎng)度為L(zhǎng)og N比特。由此可見(jiàn),與公有數(shù)據(jù)目錄中的位向量標(biāo)識(shí)相比,記錄一個(gè)物理地址的數(shù)據(jù)塊信息能夠節(jié)省(N-Log N-1)比特,所以從目標(biāo)數(shù)據(jù)中識(shí)別出私有數(shù)據(jù)能夠有效的節(jié)省存儲(chǔ)空間。以包括N = 64個(gè)處理器的處理器模塊為例,記錄一個(gè)私有數(shù)據(jù)比記錄一個(gè)公有數(shù)據(jù)能夠節(jié)省N-Log N-1 = 57比特。值得說(shuō)明的是,在多處理器系統(tǒng),私有數(shù)據(jù)的數(shù)據(jù)量是很大的,例如=TPC-H程序中的私有數(shù)據(jù)量約為20% -25%, OLTP (On-Line Transaction Processing,聯(lián)機(jī)事務(wù)處理系統(tǒng))0racle數(shù)據(jù)庫(kù)中的私有數(shù)據(jù)量約為35%科學(xué)計(jì)算程序?yàn)?0%以上。所以,在多處理器系統(tǒng)中采用本實(shí)施例提供的方法,能夠有效提升緩存目錄的使用效率。
209、所述目錄緩存控制器確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù),將所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息記錄于所述公有數(shù)據(jù)目錄中,并將所述目標(biāo)數(shù)據(jù)在所述私有數(shù)據(jù)目錄中的目錄項(xiàng)置為無(wú)效。優(yōu)選的,當(dāng)所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中沒(méi)有空閑目錄項(xiàng)時(shí),所述方法還包括所述目錄緩存控制器在所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中確定指定目錄項(xiàng)作為可替換目錄項(xiàng),對(duì)該指定目錄項(xiàng)進(jìn)行替換,以記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息。例如,所述目錄緩存控制器可以為所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄分別設(shè)定時(shí)間閾值,將超過(guò)預(yù)設(shè)時(shí)間閾值還沒(méi)有被訪問(wèn)的目錄項(xiàng)確定為可替換目錄項(xiàng)??蛇x的,如果所述超過(guò)預(yù)設(shè)時(shí)間閾值還沒(méi)有被訪問(wèn)的目錄項(xiàng)為零,則所述目錄緩存控制器可以在所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中查找使用次數(shù)最少的目標(biāo)項(xiàng),確定該目錄項(xiàng)為可替換目錄項(xiàng)。需要特別強(qiáng)調(diào)的是,本發(fā)明實(shí)施例提供的緩存目錄的實(shí)現(xiàn)方法,只需修改目錄緩存結(jié)構(gòu)即可識(shí)別出私有數(shù)據(jù),無(wú)需對(duì)多處理器系統(tǒng)中的硬件或軟件進(jìn)行任何修改,便于實(shí)現(xiàn)。本發(fā)明實(shí)施例提供的緩存目錄的實(shí)現(xiàn)方法,緩存目錄僅記錄cache中緩存數(shù)據(jù)的數(shù)據(jù)塊信息(無(wú)需記錄內(nèi)存中數(shù)據(jù)的數(shù)據(jù)塊信息),所以本實(shí)施例中的緩存目錄的容量較小,訪問(wèn)速度能夠得到較大的提升;另一方面通過(guò)識(shí)別出私有數(shù)據(jù)并在所述私有數(shù)據(jù)目錄中對(duì)所述私有數(shù)據(jù)進(jìn)行記錄,能夠有效的提升緩存目錄的使用效率。實(shí)施例三本發(fā)明實(shí)施例提供了一種緩存目錄的實(shí)現(xiàn)裝置,能夠?qū)崿F(xiàn)上述方法實(shí)施例,如圖4所示,所述裝置包括建立單元41,用于創(chuàng)建緩存目錄,所述緩存目錄包括公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄,所述公有數(shù)據(jù)目錄用于記錄公有數(shù)據(jù)的數(shù)據(jù)塊信息,所述私有數(shù)據(jù)目錄用于記錄私有數(shù)據(jù)的數(shù)據(jù)塊信息;確定單元42,用于當(dāng)接收到第一處理器發(fā)送的讀寫請(qǐng)求時(shí),確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,所述數(shù)據(jù)類型包括私有數(shù)據(jù)、或公有數(shù)據(jù);記錄單元43,用于根據(jù)所述確定單元42確定的數(shù)據(jù)類型,在所述建立單元41創(chuàng)建的緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息。具體的,所述建立單元41創(chuàng)建的緩存目錄用于記錄處理器系統(tǒng)中緩存數(shù)據(jù)的數(shù)據(jù)塊信息;其中,所述公有數(shù)據(jù)的數(shù)據(jù)塊信息包括緩存數(shù)據(jù)的物理地址與位向量標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,所述位向量標(biāo)識(shí)包括N個(gè)指針,用于表征所述公有數(shù)據(jù)對(duì)應(yīng)的處理器,所述N是處理器的個(gè)數(shù);所述私有數(shù)據(jù)的數(shù)據(jù)信息包括緩存數(shù)據(jù)的物理地址以及該緩存數(shù)據(jù)對(duì)應(yīng)的處理器標(biāo)識(shí)。 進(jìn)一步的,如圖5所示,所述裝置還包括接收單元44,用于接收第一處理器發(fā)送的讀寫請(qǐng)求,所述讀寫請(qǐng)求包括目標(biāo)數(shù)據(jù)的物理地址。具體的,如圖5所示,所述確定單元42包括檢測(cè)模塊421,用于根據(jù)所述讀寫請(qǐng)求確定目標(biāo)數(shù)據(jù)的物理地址,檢測(cè)所述緩存目錄中是否記錄有所述目標(biāo)數(shù)據(jù)的物理地址;一方面,所述確定單元42用于當(dāng)所述檢測(cè)模塊421檢測(cè)緩存目錄中沒(méi)有記錄所述目標(biāo)數(shù)據(jù)的物理地址時(shí),確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù);所述記錄單元43具體用于在所述私有數(shù)據(jù)目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括所述目標(biāo)數(shù)據(jù)的物理地址以及對(duì)所述目標(biāo)數(shù)據(jù)塊進(jìn)行讀寫操作的處理器標(biāo)識(shí),即第一處理器的標(biāo)識(shí)。另一方面,當(dāng)所述檢測(cè)模塊421確定所述緩存目錄中記錄有所述目標(biāo)數(shù)據(jù)的物理地址時(shí),所述檢測(cè)模塊421還用于進(jìn)一步確定所述目標(biāo)數(shù)據(jù)的在所述緩存目錄中的具體位置,所述具體位置包括私有數(shù)據(jù)目錄和公有數(shù)據(jù)目錄;具體的,所述檢測(cè)模塊421還用于當(dāng)確定所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述緩存目錄中的私有數(shù)據(jù)目錄時(shí),檢測(cè)所述私有數(shù)據(jù)目錄中該物理地址對(duì)應(yīng)的處理器標(biāo)識(shí)與第一處理器的標(biāo)識(shí)是否相同;若是,則所述確定單元42確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù);若否,則所述確定單元42確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù);所述記錄單元43具體用于當(dāng)確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù)時(shí),根據(jù)所述讀寫請(qǐng)求在所述私有數(shù)據(jù)目錄中更新所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,所述數(shù)據(jù)塊信息包括所述目標(biāo)數(shù)據(jù)的讀寫次數(shù)、讀寫時(shí)間;以及所述記錄單元43具體還用于當(dāng)確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息記錄于所述公有數(shù)據(jù)目錄中,將所述目標(biāo)數(shù)據(jù)在所述私有數(shù)據(jù)目錄中的目錄項(xiàng)置為無(wú)效。再一方面,所述確定單元42用于當(dāng)所述檢測(cè)模塊421確定所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述公有數(shù)據(jù)目錄中時(shí),確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù);所述記錄單元43用于在所述緩存目錄中的公有數(shù)據(jù)目錄中對(duì)所述目標(biāo)數(shù)據(jù)的位向量標(biāo)識(shí)進(jìn)行修改,在所述位向量標(biāo)識(shí)中增加第一處理器的信息??蛇x的,如圖6所示,所述裝置還包括替換單元45,用于當(dāng)所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中沒(méi)有空閑目錄項(xiàng)時(shí),在所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中確定指定目錄項(xiàng)作為可替換目錄項(xiàng),對(duì)該指定目錄項(xiàng)進(jìn)行替換,以記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息。具體的,如圖6所示,所述替換單元45包括閾值設(shè)定模塊451,用于為所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄分別設(shè)定時(shí)間閾值,以使得所述替換單元45將超過(guò)預(yù)設(shè)時(shí)間閾值還沒(méi)有被訪問(wèn)的目錄項(xiàng)確定為可替換目錄項(xiàng)??蛇x的,如圖6所示,所述替換單元45還包括統(tǒng)計(jì)模塊452,用于當(dāng)所述閾值設(shè)定模塊451確定的超過(guò)預(yù)設(shè)時(shí)間閾值還沒(méi)有被訪問(wèn)的目錄項(xiàng)為零時(shí),在所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中查找使用次數(shù)最少的目標(biāo)項(xiàng),確定該目錄項(xiàng)為可替換目錄項(xiàng)。本發(fā)明實(shí)施例提供的緩存目錄的實(shí)現(xiàn)裝置,建立單元41建立的緩存目錄僅記錄cache中緩存數(shù)據(jù)的數(shù)據(jù)塊信息(無(wú)需記錄內(nèi)存中數(shù)據(jù)的數(shù)據(jù)塊信息),所以本實(shí)施例中的緩存目錄的容量較小,訪問(wèn)速度能夠得到較大的提升;另一方面本實(shí)施例中的緩存目錄的實(shí)現(xiàn)裝置能夠通過(guò)識(shí)別出私有數(shù)據(jù)并在所述私有數(shù)據(jù)目錄中對(duì)所述私有數(shù)據(jù)進(jìn)行記錄,從而有效的提升緩存目錄的使用效率。通過(guò)以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤,硬盤或光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍 之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種緩存目錄的實(shí)現(xiàn)方法,其特征在于,包括 創(chuàng)建緩存目錄,所述緩存目錄包括公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄,所述公有數(shù)據(jù)目錄用于記錄公有數(shù)據(jù)的數(shù)據(jù)塊信息,所述私有數(shù)據(jù)目錄用于記錄私有數(shù)據(jù)的數(shù)據(jù)塊信息;當(dāng)接收到第一處理器發(fā)送的讀寫請(qǐng)求時(shí),確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,所述數(shù)據(jù)類型包括私有數(shù)據(jù)、或公有數(shù)據(jù); 根據(jù)所述數(shù)據(jù)類型,在所述緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述緩存目錄用于記錄處理器系統(tǒng)中緩存數(shù)據(jù)的數(shù)據(jù)塊信息; 其中,所述公有數(shù)據(jù)的數(shù)據(jù)塊信息包括緩存數(shù)據(jù)的物理地址與位向量標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,所述位向量標(biāo)識(shí)包括N個(gè)指針,用于表征所述公有數(shù)據(jù)對(duì)應(yīng)的處理器,所述N是處理器的個(gè)數(shù);所述私有數(shù)據(jù)的數(shù)據(jù)信息包括緩存數(shù)據(jù)的物理地址以及該緩存數(shù)據(jù)對(duì)應(yīng)的處理器標(biāo)識(shí)。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述當(dāng)接收到第一處理器發(fā)送的讀寫請(qǐng)求時(shí),確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型之前,包括 接收第一處理器發(fā)送的讀寫請(qǐng)求,所述讀寫請(qǐng)求包括目標(biāo)數(shù)據(jù)的物理地址。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述當(dāng)接收到第一處理器發(fā)送的讀寫請(qǐng)求時(shí),確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,包括 根據(jù)所述讀寫請(qǐng)求確定目標(biāo)數(shù)據(jù)的物理地址,檢測(cè)所述緩存目錄中是否記錄有所述目標(biāo)數(shù)據(jù)的物理地址; 如果所述緩存目錄中沒(méi)有記錄所述目標(biāo)數(shù)據(jù)的物理地址,則確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù); 則所述根據(jù)所述數(shù)據(jù)類型,在所述緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括 在所述私有數(shù)據(jù)目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括所述目標(biāo)數(shù)據(jù)的物理地址以及對(duì)所述目標(biāo)數(shù)據(jù)塊進(jìn)行讀寫操作的處理器標(biāo)識(shí),即第一處理器的標(biāo)識(shí)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,如果所述緩存目錄中記錄有所述目標(biāo)數(shù)據(jù)的物理地址,所述確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,包括 當(dāng)所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述緩存目錄中的私有數(shù)據(jù)目錄中時(shí),檢測(cè)所述私有數(shù)據(jù)目錄中該物理地址對(duì)應(yīng)的處理器標(biāo)識(shí)與第一處理器的標(biāo)識(shí)是否相同;若是,則確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù);若否,則確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù); 則所述根據(jù)所述數(shù)據(jù)類型,在所述緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括 如果確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù),則根據(jù)所述讀寫請(qǐng)求在所述私有數(shù)據(jù)目錄中更新所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,所述數(shù)據(jù)塊信息包括所述目標(biāo)數(shù)據(jù)的讀寫次數(shù)、讀寫時(shí)間; 如果確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù),則將所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息記錄于所述公有數(shù)據(jù)目錄中,將所述目標(biāo)數(shù)據(jù)在所述私有數(shù)據(jù)目錄中的目錄項(xiàng)置為無(wú)效。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,當(dāng)所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述緩存目錄中的公有數(shù)據(jù)目錄中時(shí),所述確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,包括 確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù); 則所述根據(jù)所述數(shù)據(jù)類型,在所述緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括 在所述緩存目錄中的公有數(shù)據(jù)目錄中對(duì)所述目標(biāo)數(shù)據(jù)的位向量標(biāo)識(shí)進(jìn)行修改,在所述位向量標(biāo)識(shí)中增加第一處理器的信息。
7.根據(jù)權(quán)利要求1-6中任一項(xiàng)所述的方法,其特征在于,當(dāng)所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中沒(méi)有空閑目錄項(xiàng)時(shí),所述當(dāng)接收到第一處理器發(fā)送的讀寫請(qǐng)求時(shí),確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型之后,還包括 在所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中確定指定目錄項(xiàng)作為可替換目錄項(xiàng),對(duì)該指定目錄項(xiàng)進(jìn)行替換,以記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述在所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中確定指定目錄項(xiàng)作為可替換目錄項(xiàng),包括 為所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄分別設(shè)定時(shí)間閾值,將超過(guò)預(yù)設(shè)時(shí)間閾值還沒(méi)有被訪問(wèn)的目錄項(xiàng)確定為可替換目錄項(xiàng)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,當(dāng)所述超過(guò)預(yù)設(shè)時(shí)間閾值還沒(méi)有被訪問(wèn)的目錄項(xiàng)為零時(shí),所述在所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中確定指定目錄項(xiàng)作為可替換目錄項(xiàng),還包括 在所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中查找使用次數(shù)最少的目標(biāo)項(xiàng),確定該目錄項(xiàng)為可替換目錄項(xiàng)。
10.一種緩存目錄的實(shí)現(xiàn)裝置,其特征在于,包括 建立單元,用于創(chuàng)建緩存目錄,所述緩存目錄包括公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄,所述公有數(shù)據(jù)目錄用于記錄公有數(shù)據(jù)的數(shù)據(jù)塊信息,所述私有數(shù)據(jù)目錄用于記錄私有數(shù)據(jù)的數(shù)據(jù)塊信息; 確定單元,用于當(dāng)接收到第一處理器發(fā)送的讀寫請(qǐng)求時(shí),確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,所述數(shù)據(jù)類型包括私有數(shù)據(jù)、或公有數(shù)據(jù); 記錄單元,用于根據(jù)所述確定單元確定的數(shù)據(jù)類型,在所述建立單元?jiǎng)?chuàng)建的緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述建立單元?jiǎng)?chuàng)建的緩存目錄用于記錄處理器系統(tǒng)中緩存數(shù)據(jù)的數(shù)據(jù)塊信息; 其中,所述公有數(shù)據(jù)的數(shù)據(jù)塊信息包括緩存數(shù)據(jù)的物理地址與位向量標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,所述位向量標(biāo)識(shí)包括N個(gè)指針,用于表征所述公有數(shù)據(jù)對(duì)應(yīng)的處理器,所述N是處理器的個(gè)數(shù);所述私有數(shù)據(jù)的數(shù)據(jù)信息包括緩存數(shù)據(jù)的物理地址以及該緩存數(shù)據(jù)對(duì)應(yīng)的處理器標(biāo)識(shí)。
12.根據(jù)權(quán)利要求10或11所述的裝置,其特征在于,所述裝置還包括 接收單元,用于接收第一處理器發(fā)送的讀寫請(qǐng)求,所述讀寫請(qǐng)求包括目標(biāo)數(shù)據(jù)的物理地址。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述確定單元包括檢測(cè)模塊,用于根據(jù)所述讀寫請(qǐng)求確定目標(biāo)數(shù)據(jù)的物理地址,檢測(cè)所述緩存目錄中是否記錄有所述目標(biāo)數(shù)據(jù)的物理地址; 所述確定單元用于當(dāng)所述檢測(cè)模塊檢測(cè)緩存目錄中沒(méi)有記錄所述目標(biāo)數(shù)據(jù)的物理地址時(shí),確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù); 所述記錄單元具體用于在所述私有數(shù)據(jù)目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,包括所述目標(biāo)數(shù)據(jù)的物理地址以及對(duì)所述目標(biāo)數(shù)據(jù)塊進(jìn)行讀寫操作的處理器標(biāo)識(shí),即第一處理器的標(biāo)識(shí)。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,當(dāng)所述檢測(cè)模塊確定所述緩存目錄中記錄有所述目標(biāo)數(shù)據(jù)的物理地址時(shí),所述檢測(cè)模塊還用于進(jìn)一步檢測(cè)所述目標(biāo)數(shù)據(jù)的在所述緩存目錄中的具體位置,所述具體位置包括私有數(shù)據(jù)目錄和公有數(shù)據(jù)目錄; 所述檢測(cè)模塊具體用于當(dāng)確定所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述緩存目錄中的私有數(shù)據(jù)目錄時(shí),檢測(cè)所述私有數(shù)據(jù)目錄中該物理地址對(duì)應(yīng)的處理器標(biāo)識(shí)與第一處理器的標(biāo)識(shí)是否相同;若是,則所述確定單元確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù);若否,則所述確定單元確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù); 所述記錄單元具體用于當(dāng)確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為私有數(shù)據(jù)時(shí),根據(jù)所述讀寫請(qǐng)求在所述私有數(shù)據(jù)目錄中更新所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息,所述數(shù)據(jù)塊信息包括所述目標(biāo)數(shù)據(jù)的讀寫次數(shù)、讀寫時(shí)間;以及 所述記錄單元具體用于當(dāng)確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù)時(shí),將所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息記錄于所述公有數(shù)據(jù)目錄中,將所述目標(biāo)數(shù)據(jù)在所述私有數(shù)據(jù)目錄中的目錄項(xiàng)置為無(wú)效。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述確定單元具體用于當(dāng)所述檢測(cè)模塊確定所述目標(biāo)數(shù)據(jù)的物理地址記錄于所述公有數(shù)據(jù)目錄中時(shí),確定所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型為公有數(shù)據(jù); 所述記錄單元用于在所述緩存目錄中的公有數(shù)據(jù)目錄中對(duì)所述目標(biāo)數(shù)據(jù)的位向量標(biāo)識(shí)進(jìn)行修改,在所述位向量標(biāo)識(shí)中增加第一處理器的信息。
16.根據(jù)權(quán)利要求10-15中任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括 替換單元,用于當(dāng)所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中沒(méi)有空閑目錄項(xiàng)時(shí),在所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中確定指定目錄項(xiàng)作為可替換目錄項(xiàng),對(duì)該指定目錄項(xiàng)進(jìn)行替換,以記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息。
17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述替換單元包括閾值設(shè)定模塊,用于為所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄分別設(shè)定時(shí)間閾值,以使得所述替換單元將超過(guò)預(yù)設(shè)時(shí)間閾值還沒(méi)有被訪問(wèn)的目錄項(xiàng)確定為可替換目錄項(xiàng)。
18.根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述替換單元還包括統(tǒng)計(jì)模塊,用于當(dāng)所述閾值設(shè)定模塊確定的超過(guò)預(yù)設(shè)時(shí)間閾值還沒(méi)有被訪問(wèn)的目錄項(xiàng)為零時(shí),在所述公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄中查找使用次數(shù)最少的目標(biāo)項(xiàng),確定該目錄項(xiàng)為可替換目錄項(xiàng)。
全文摘要
本發(fā)明公開了一種緩存目錄的實(shí)現(xiàn)方法及裝置,涉及通信領(lǐng)域,用于解決現(xiàn)有技術(shù)中緩存目錄的訪問(wèn)速度慢且存儲(chǔ)使用率較低的問(wèn)題。本發(fā)明提供的方法包括創(chuàng)建緩存目錄,所述緩存目錄包括公有數(shù)據(jù)目錄和私有數(shù)據(jù)目錄,所述公有數(shù)據(jù)目錄用于記錄公有數(shù)據(jù)的數(shù)據(jù)塊信息,所述私有數(shù)據(jù)目錄用于記錄私有數(shù)據(jù)的數(shù)據(jù)塊信息;當(dāng)接收到第一處理器發(fā)送的讀寫請(qǐng)求時(shí),確定該讀寫請(qǐng)求對(duì)應(yīng)的目標(biāo)數(shù)據(jù)的數(shù)據(jù)類型,所述數(shù)據(jù)類型包括私有數(shù)據(jù)、或公有數(shù)據(jù);根據(jù)所述數(shù)據(jù)類型,在所述緩存目錄中記錄所述目標(biāo)數(shù)據(jù)的數(shù)據(jù)塊信息。本發(fā)明適用于通信領(lǐng)域,用于記錄多處理器系統(tǒng)中數(shù)據(jù)的數(shù)據(jù)塊信息。
文檔編號(hào)G06F12/08GK103049392SQ201210395299
公開日2013年4月17日 申請(qǐng)日期2012年10月17日 優(yōu)先權(quán)日2012年10月17日
發(fā)明者張悠慧, 李艷華, 鄭偉 申請(qǐng)人:華為技術(shù)有限公司, 清華大學(xué)