亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

目錄設(shè)計(jì)方法及裝置制造方法

文檔序號(hào):6544321閱讀:166來源:國(guó)知局
目錄設(shè)計(jì)方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種目錄設(shè)計(jì)方法及裝置,屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】。方法包括:根據(jù)緩存塊的數(shù)目,建立多個(gè)目錄集合,每個(gè)目錄集合中包括多個(gè)目錄組,每個(gè)目錄組中包括多個(gè)目錄項(xiàng),一個(gè)目錄項(xiàng)與一個(gè)緩存塊對(duì)應(yīng);分別為多個(gè)目錄組配置標(biāo)簽,標(biāo)簽用于標(biāo)識(shí)目錄組所包括的所有目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);分別為每個(gè)目錄集合、每個(gè)目錄組、每條目錄項(xiàng)及每個(gè)標(biāo)簽設(shè)置索引;存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽。本發(fā)明在為每個(gè)目錄組配置一個(gè)標(biāo)簽后,可實(shí)現(xiàn)一個(gè)標(biāo)簽標(biāo)識(shí)一個(gè)目錄組中全部目錄組對(duì)應(yīng)的緩存塊的占用狀態(tài),不但節(jié)省了目錄占用的存儲(chǔ)空間,還降低了遠(yuǎn)端節(jié)點(diǎn)對(duì)本地內(nèi)存的訪問延時(shí),提升了多處理器系統(tǒng)的性能。
【專利說明】目錄設(shè)計(jì)方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及一種目錄設(shè)計(jì)方法及裝置。
【背景技術(shù)】
[0002]在計(jì)算機(jī)領(lǐng)域中,一個(gè)多處理器系統(tǒng)不但包括本地節(jié)點(diǎn),還包括多個(gè)遠(yuǎn)端節(jié)點(diǎn)。其中,本地節(jié)點(diǎn)至少包括一個(gè)節(jié)點(diǎn)控制器、一個(gè)或多個(gè)本地內(nèi)存。一個(gè)本地內(nèi)存通常劃分為多個(gè)緩存塊,每個(gè)緩存塊的大小一般為64字節(jié)或128字節(jié)。節(jié)點(diǎn)控制器上存儲(chǔ)了一個(gè)包含多條目錄項(xiàng)的目錄,每條目錄項(xiàng)用來記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)一個(gè)緩存塊的占用狀態(tài)。當(dāng)遠(yuǎn)端節(jié)點(diǎn)請(qǐng)求一個(gè)本地內(nèi)存時(shí),節(jié)點(diǎn)控制器根據(jù)存儲(chǔ)的目錄確定是否有其他遠(yuǎn)端節(jié)點(diǎn)占用了所請(qǐng)求的本地內(nèi)存。而為了使節(jié)點(diǎn)控制器能夠快速且精確地確定是否有其他遠(yuǎn)端節(jié)點(diǎn)占用了所請(qǐng)求的內(nèi)存,如何進(jìn)行目錄設(shè)計(jì),成為了本領(lǐng)域技術(shù)人員關(guān)注的一個(gè)問題。
[0003]現(xiàn)有技術(shù)在進(jìn)行目錄設(shè)計(jì)時(shí),通常采取三種方式。第一種方式為Ι-bit(比特)目錄設(shè)計(jì)方式,一條目錄項(xiàng)占用lbit,一條目錄項(xiàng)中以二進(jìn)制數(shù)值O或I表示一個(gè)緩存塊的占用狀態(tài);第二種方式為2-bit目錄設(shè)計(jì)方式,一條目錄項(xiàng)占用2bit,一條目錄項(xiàng)中以兩個(gè)二進(jìn)制數(shù)表示一個(gè)緩存塊的占用狀態(tài);其中,占用狀態(tài)至少包括可能態(tài)(表示任意可能的狀態(tài))、共享態(tài)(表示多個(gè)遠(yuǎn)端節(jié)點(diǎn)共享緩存塊)及無效態(tài)(表示沒有任何遠(yuǎn)端節(jié)點(diǎn)占用緩存塊)。第三種方式為精確目錄設(shè)計(jì)方式,一條目錄項(xiàng)占用多個(gè)bit,一條目錄項(xiàng)中包括一個(gè)緩存塊的占用狀態(tài)和占用信息。其中,占用狀態(tài)同樣分為可能態(tài)、共享態(tài)及無效態(tài);占用信息用來表示哪個(gè)或哪幾個(gè)遠(yuǎn)端節(jié)點(diǎn)占用了該緩存塊。
[0004]在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
[0005]無論針對(duì)上述哪一種目錄設(shè)計(jì)方式,當(dāng)本地內(nèi)存的存儲(chǔ)空間越來越大時(shí),將生成海量的目錄項(xiàng),在對(duì)包含海量目錄項(xiàng)的目錄進(jìn)行存儲(chǔ)時(shí),將占用大量的存儲(chǔ)空間。以本地內(nèi)存的總存儲(chǔ)空間為IT(百萬兆)為例,則即便采取占用存儲(chǔ)空間最小的ι-bit目錄設(shè)計(jì)方式,生成的目錄項(xiàng)也需2G(千兆)存儲(chǔ)空間進(jìn)行存儲(chǔ)。而占用太多的存儲(chǔ)空間來存儲(chǔ)目錄會(huì)存在目錄設(shè)計(jì)的成本高、復(fù)雜度高及技術(shù)要求高的缺陷,且還將導(dǎo)致遠(yuǎn)端節(jié)點(diǎn)對(duì)本地內(nèi)存的訪問延時(shí)過大,進(jìn)而給多處理器系統(tǒng)的性能造成不良影響。

【發(fā)明內(nèi)容】

[0006]為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種目錄設(shè)計(jì)方法及裝置。所述技術(shù)方案如下:
[0007]第一方面,提供了一種目錄設(shè)計(jì)方法,所述方法包括:
[0008]根據(jù)緩存塊的數(shù)目,建立多個(gè)目錄集合,每個(gè)目錄集合中包括多個(gè)目錄組,每個(gè)目錄組中包括多個(gè)目錄項(xiàng),一個(gè)目錄項(xiàng)與一個(gè)緩存塊對(duì)應(yīng);
[0009]分別為所述多個(gè)目錄組配置標(biāo)簽,所述標(biāo)簽用于標(biāo)識(shí)所述目錄組所包括的所有目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);
[0010]分別為每個(gè)目錄集合、每個(gè)目錄組、每條目錄項(xiàng)及每個(gè)標(biāo)簽設(shè)置索引。[0011]存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽。
[0012]在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽之后,所述方法還包括:
[0013]當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目標(biāo)目錄項(xiàng)的標(biāo)簽索引信息,獲取所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽;
[0014]根據(jù)所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);
[0015]基于所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)所述遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
[0016]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽之后,所述方法還包括:
[0017]當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的集合索弓I信息,確定所述目標(biāo)目錄項(xiàng)所在目錄集合;
[0018]根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息,在所述目標(biāo)目錄項(xiàng)所在目錄集合中查找所述目標(biāo)目錄項(xiàng)所在目錄組;
[0019]如果查找到所述目標(biāo)目錄項(xiàng)所在目錄組,則根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目錄項(xiàng)索引信息確定所述目標(biāo)目錄項(xiàng);
[0020]根據(jù)所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);
[0021 ] 基于所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)所述遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
[0022]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述在所述目標(biāo)目錄項(xiàng)所在目錄集合中查找所述目標(biāo)目錄項(xiàng)所在目錄組之后,所述方法還包括:
[0023]如果未查找到所述目標(biāo)目錄項(xiàng)所在目錄組,則在所述目標(biāo)目錄項(xiàng)所在目錄集合中,查找第一目錄組,所述第一目錄組為全部目錄項(xiàng)均處于未占用狀態(tài)的目錄組;
[0024]如果查找到所述第一目錄組,則根據(jù)所述第一目錄組對(duì)應(yīng)的目錄組索引信息和所述目標(biāo)目錄項(xiàng)的集合索引信息,生成第一標(biāo)簽索引信息;
[0025]根據(jù)所述第一標(biāo)簽索引信息,獲取第一標(biāo)簽;
[0026]更新所述第一標(biāo)簽,并將所述第一目錄組對(duì)應(yīng)的目錄組索引信息更新為所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
[0027]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述根據(jù)所述第一目錄組對(duì)應(yīng)的目錄組索引信息和所述目標(biāo)目錄項(xiàng)的集合索引信息,生成第一標(biāo)簽索引信息,包括:
[0028]將所述目錄組索引信息的多個(gè)數(shù)據(jù)位置于所述集合索引信息的多個(gè)數(shù)據(jù)位之前,組合成新的數(shù)據(jù)位;
[0029]將所述新的數(shù)據(jù)位確定為所述第一標(biāo)簽索引信息的數(shù)據(jù)位。
[0030]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述在所述目標(biāo)目錄所在的目錄集合中,查找第一目錄組之后,所述方法還包括:[0031]如果未查找到所述第一目錄組,則根據(jù)預(yù)設(shè)策略查找第二目錄組;
[0032]根據(jù)所述第二目錄組對(duì)應(yīng)的目錄組索引信息和所述目標(biāo)目錄項(xiàng)的集合索引信息,生成第二標(biāo)簽索引信息;
[0033]根據(jù)所述第二標(biāo)簽索引信息,獲取第二標(biāo)簽;
[0034]更新所述第二標(biāo)簽,并將所述第二目錄組對(duì)應(yīng)的目錄組索引信息更新為所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
[0035]第二方面,提供了一種目錄設(shè)計(jì)裝置,所述裝置包括:
[0036]目錄建立模塊,用于根據(jù)緩存塊的數(shù)目,建立多個(gè)目錄集合,每個(gè)目錄集合中包括多個(gè)目錄組,每個(gè)目錄組中包括多個(gè)目錄項(xiàng),一個(gè)目錄項(xiàng)與一個(gè)緩存塊對(duì)應(yīng);
[0037]標(biāo)簽配置模塊,用于分別為所述多個(gè)目錄組配置標(biāo)簽,所述標(biāo)簽用于標(biāo)識(shí)所述目錄組所包括的所有目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);
[0038]索引設(shè)置模塊,用于分別為每個(gè)目錄集合、每個(gè)目錄組、每條目錄項(xiàng)及每個(gè)標(biāo)簽設(shè)置索引;
[0039]存儲(chǔ)模塊,用于存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽。
[0040]在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0041]標(biāo)簽獲取模塊,用于當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目標(biāo)目錄項(xiàng)的標(biāo)簽索引信息,獲取所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽;
[0042]狀態(tài)確定模塊,用于根據(jù)所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);
[0043]響應(yīng)模塊,用于基于所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)所述遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
[0044]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,
[0045]所述裝置還包括:
[0046]目錄集合確定模塊,用于當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的集合索引信息,確定所述目標(biāo)目錄項(xiàng)所在目錄集合;
[0047]目錄組查找模塊,用于根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息,在所述目標(biāo)目錄項(xiàng)所在目錄集合中查找所述目標(biāo)目錄項(xiàng)所在目錄組;
[0048]目錄項(xiàng)確定模塊,用于當(dāng)查找到所述目標(biāo)目錄項(xiàng)所在目錄組時(shí),根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目錄項(xiàng)索引信息確定所述目標(biāo)目錄項(xiàng);
[0049]所述狀態(tài)確定模塊,用于根據(jù)所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);
[0050]所述響應(yīng)模塊,用于基于所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)所述遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
[0051]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0052]所述目錄組查找模塊,還用于當(dāng)未查找到所述目標(biāo)目錄項(xiàng)所在目錄組時(shí),在所述目標(biāo)目錄項(xiàng)所在目錄集合中,查找第一目錄組,所述第一目錄組為全部目錄項(xiàng)均處于未占用狀態(tài)的目錄組;[0053]索引信息生成模塊,用于如果查找到所述第一目錄組,則根據(jù)所述第一目錄組對(duì)應(yīng)的目錄組索引信息和所述目標(biāo)目錄項(xiàng)的集合索引信息,生成第一標(biāo)簽索引信息;
[0054]所述標(biāo)簽獲取模塊,用于根據(jù)所述第一標(biāo)簽索引信息,獲取第一標(biāo)簽;
[0055]更新模塊,用于更新所述第一標(biāo)簽,并將所述第一目錄組對(duì)應(yīng)的目錄組索引信息更新為所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
[0056]結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述索引信息生成模塊,用于將所述目錄組索引信息的多個(gè)數(shù)據(jù)位置于所述集合索引信息的多個(gè)數(shù)據(jù)位之前,組合成新的數(shù)據(jù)位;將所述新的數(shù)據(jù)位確定為所述第一標(biāo)簽索引信息的數(shù)據(jù)位。
[0057]結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0058]所述目錄組查找模塊,用于當(dāng)未查找到所述第一目錄組時(shí),根據(jù)預(yù)設(shè)策略查找第
二目錄組;
[0059]索引信息生成模塊,用于根據(jù)所述第二目錄組對(duì)應(yīng)的目錄組索引信息和所述目標(biāo)目錄項(xiàng)的集合索引信息,生成第二標(biāo)簽索引信息;
[0060]所述標(biāo)簽獲取模塊,用于根據(jù)所述第二標(biāo)簽索引信息,獲取第二標(biāo)簽;
[0061]所述更新模塊,用于更新所述第二標(biāo)簽,并將所述第二目錄組對(duì)應(yīng)的目錄組索引信息更新為所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
[0062]本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
[0063]在根據(jù)緩存塊的數(shù)目,建立包括多個(gè)目錄項(xiàng)和多個(gè)目錄組的層次化目錄集合,并為每個(gè)目錄組配置一個(gè)標(biāo)簽后,可實(shí)現(xiàn)一個(gè)標(biāo)簽標(biāo)識(shí)一個(gè)目錄組中全部目錄組對(duì)應(yīng)的緩存塊的占用狀態(tài),從而節(jié)省了目錄占用的存儲(chǔ)空間,僅用片上內(nèi)存便可對(duì)生成的目錄進(jìn)行存儲(chǔ),無需引入片外內(nèi)存。不但節(jié)省了設(shè)計(jì)成本,降低了目錄設(shè)計(jì)的復(fù)雜度,還降低了遠(yuǎn)端節(jié)點(diǎn)對(duì)本地內(nèi)存的訪問延時(shí),提升了多處理器系統(tǒng)的性能。
【專利附圖】

【附圖說明】
[0064]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例。
[0065]圖1是本發(fā)明實(shí)施例提供的一種多處理器系統(tǒng)的系統(tǒng)架構(gòu)圖;
[0066]圖2是本發(fā)明實(shí)施例提供的一種緩存塊和目錄項(xiàng)的對(duì)應(yīng)關(guān)系圖;
[0067]圖3是本發(fā)明實(shí)施例提供的一種目錄設(shè)計(jì)的方法流程圖;
[0068]圖4是本發(fā)明實(shí)施例提供的一種目錄設(shè)計(jì)的方法流程圖;
[0069]圖5是本發(fā)明實(shí)施例提供的第一種目錄集合的結(jié)構(gòu)示意圖;
[0070]圖6是本發(fā)明實(shí)施例提供的一種緩存塊和標(biāo)簽的對(duì)應(yīng)關(guān)系圖;
[0071]圖7是本發(fā)明實(shí)施例提供的第二種目錄集合的結(jié)構(gòu)示意圖;
[0072]圖8是本發(fā)明實(shí)施例提供的第一種內(nèi)存物理地址的示意圖;
[0073]圖9是本發(fā)明實(shí)施例提供的一種目錄訪問的方法流程圖;
[0074]圖10是本發(fā)明實(shí)施例提供的第二種內(nèi)存物理地址的示意圖;
[0075]圖11是本發(fā)明實(shí)施例提供的一種目錄設(shè)計(jì)裝置的結(jié)構(gòu)示意圖?!揪唧w實(shí)施方式】
[0076]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0077]在對(duì)本發(fā)明實(shí)施例作詳細(xì)描述之前,先對(duì)對(duì)處理系統(tǒng)進(jìn)行介紹。參見圖1,一個(gè)多處理器(CPU)系統(tǒng)中包括本地節(jié)點(diǎn)100和多個(gè)遠(yuǎn)端節(jié)點(diǎn)101。本地節(jié)點(diǎn)100與各個(gè)遠(yuǎn)端節(jié)點(diǎn)101通過節(jié)點(diǎn)間網(wǎng)絡(luò)102進(jìn)行連接。本地節(jié)點(diǎn)100通過節(jié)點(diǎn)控制器103與節(jié)點(diǎn)間網(wǎng)絡(luò)102連接。其中,本地節(jié)點(diǎn)100包括了一個(gè)節(jié)點(diǎn)控制器103、一個(gè)或多個(gè)本地內(nèi)存104及一個(gè)本地網(wǎng)絡(luò)106。本地內(nèi)存104或通過本地網(wǎng)絡(luò)106與節(jié)點(diǎn)控制器103相連,或直接與節(jié)點(diǎn)控制器103相連。進(jìn)一步地,節(jié)點(diǎn)控制器103上存儲(chǔ)有一個(gè)目錄105,或節(jié)點(diǎn)控制器103與存儲(chǔ)有目錄105的存儲(chǔ)介質(zhì)相連。節(jié)點(diǎn)控制器103通過目錄105控制本地內(nèi)存104。當(dāng)遠(yuǎn)端節(jié)點(diǎn)需要訪問本地內(nèi)存時(shí),內(nèi)存訪問請(qǐng)求(讀內(nèi)存請(qǐng)求或?qū)憙?nèi)存請(qǐng)求)從遠(yuǎn)端節(jié)點(diǎn)101通過節(jié)點(diǎn)間網(wǎng)絡(luò)102到達(dá)節(jié)點(diǎn)控制器103。為了維護(hù)緩存一致性(Cache Coherence)節(jié)點(diǎn)控制器需要訪問目錄來確定是否有遠(yuǎn)端節(jié)點(diǎn)占用了所請(qǐng)求的本地內(nèi)存,然后決定是否向遠(yuǎn)端節(jié)點(diǎn)發(fā)起偵聽消息。進(jìn)一步地,參見圖2,目錄105包括多個(gè)目錄項(xiàng),每個(gè)目錄項(xiàng)與本地內(nèi)存104的一個(gè)緩存塊相對(duì)應(yīng),用來標(biāo)識(shí)緩存塊的占用狀態(tài),即一個(gè)目錄項(xiàng)用來記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)一個(gè)緩存塊的占用信息。
[0078]圖3是本發(fā)明實(shí)施例提供的一種目錄設(shè)計(jì)方法,參見圖3,本發(fā)明實(shí)施例提供的方法流程包括:
[0079]301、根據(jù)緩存塊的數(shù)目,建立多個(gè)目錄集合,每個(gè)目錄集合中包括多個(gè)目錄組,每個(gè)目錄組中包括多個(gè)目錄項(xiàng),一個(gè)目錄項(xiàng)與一個(gè)緩存塊對(duì)應(yīng)。
[0080]302、分別為多個(gè)目錄組配置標(biāo)簽,標(biāo)簽用于標(biāo)識(shí)目錄組所包括的所有目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài)。
[0081]303、分別為每個(gè)目錄集合、每個(gè)目錄組、每條目錄項(xiàng)及每個(gè)標(biāo)簽設(shè)置索引。
[0082]304、存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽。
[0083]本發(fā)明實(shí)施例提供的方法,在根據(jù)緩存塊的數(shù)目,建立包括多個(gè)目錄項(xiàng)和多個(gè)目錄組的層次化目錄集合,并為每個(gè)目錄組配置一個(gè)標(biāo)簽后,可實(shí)現(xiàn)一個(gè)標(biāo)簽標(biāo)識(shí)一個(gè)目錄組中全部目錄組對(duì)應(yīng)的緩存塊的占用狀態(tài),從而節(jié)省了目錄占用的存儲(chǔ)空間,僅用片上內(nèi)存便可對(duì)生成的目錄進(jìn)行存儲(chǔ),無需引入片外內(nèi)存。不但節(jié)省了設(shè)計(jì)成本,降低了目錄設(shè)計(jì)的復(fù)雜度,還降低了遠(yuǎn)端節(jié)點(diǎn)對(duì)本地內(nèi)存的訪問延時(shí),提升了多處理器系統(tǒng)的性能。
[0084]可選地,存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽之后,方法還包括:
[0085]當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)內(nèi)存訪問請(qǐng)求攜帶的目標(biāo)目錄項(xiàng)的標(biāo)簽索引信息,獲取目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽;
[0086]根據(jù)目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);
[0087]基于目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
[0088]可選地,存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽之后,方法還包括:
[0089]當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)內(nèi)存訪問請(qǐng)求攜帶的集合索引信息,確定目標(biāo)目錄項(xiàng)所在目錄集合;
[0090]根據(jù)內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息,在目標(biāo)目錄項(xiàng)所在目錄集合中查找目標(biāo)目錄項(xiàng)所在目錄組;
[0091]如果查找到目標(biāo)目錄項(xiàng)所在目錄組,則根據(jù)內(nèi)存訪問請(qǐng)求攜帶的目錄項(xiàng)索引信息確定目標(biāo)目錄項(xiàng);
[0092]根據(jù)目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);
[0093]基于目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
[0094]可選地,在目標(biāo)目錄項(xiàng)所在目錄集合中查找目標(biāo)目錄項(xiàng)所在目錄組之后,方法還包括:
[0095]如果未查找到目標(biāo)目錄項(xiàng)所在目錄組,則在目標(biāo)目錄項(xiàng)所在目錄集合中,查找第一目錄組,第一目錄組為全部目錄項(xiàng)均處于未占用狀態(tài)的目錄組;
[0096]如果查找到第一目錄組,則根據(jù)第一目錄組對(duì)應(yīng)的目錄組索引信息和目標(biāo)目錄項(xiàng)的集合索引信息,生 成第一標(biāo)簽索引信息;
[0097]根據(jù)第一標(biāo)簽索引信息,獲取第一標(biāo)簽;
[0098]更新第一標(biāo)簽,并將第一目錄組對(duì)應(yīng)的目錄組索引信息更新為內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
[0099]可選地,根據(jù)第一目錄組對(duì)應(yīng)的目錄組索引信息和目標(biāo)目錄項(xiàng)的集合索引信息,生成第一標(biāo)簽索引信息,包括:
[0100]將目錄組索引信息的多個(gè)數(shù)據(jù)位置于集合索引信息的多個(gè)數(shù)據(jù)位之前,組合成新的數(shù)據(jù)位;
[0101]將新的數(shù)據(jù)位確定為第一標(biāo)簽索引信息的數(shù)據(jù)位。
[0102]可選地,在目標(biāo)目錄所在的目錄集合中,查找第一目錄組之后,方法還包括:
[0103]如果未查找到第一目錄組,則根據(jù)預(yù)設(shè)策略查找第二目錄組;
[0104]根據(jù)第二目錄組對(duì)應(yīng)的目錄組索引信息和目標(biāo)目錄項(xiàng)的集合索引信息,生成第二標(biāo)簽索引信息;
[0105]根據(jù)第二標(biāo)簽索引信息,獲取第二標(biāo)簽;
[0106]更新第二標(biāo)簽,并將第二目錄組對(duì)應(yīng)的目錄組索引信息更新為內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
[0107]上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本發(fā)明的可選實(shí)施例,在此不再
--贅述。
[0108]圖4是本發(fā)明實(shí)施例提供的一種目錄設(shè)計(jì)方法,現(xiàn)以執(zhí)行主體為圖1中節(jié)點(diǎn)控制器為例,對(duì)本發(fā)明實(shí)施例提供的目錄設(shè)計(jì)方式進(jìn)行詳細(xì)地解釋說明。參見圖4,本發(fā)明實(shí)施例提供的方法流程包括:
[0109]401、根據(jù)緩存塊的數(shù)目,建立多個(gè)目錄集合,每個(gè)目錄集合中包括多個(gè)目錄組,每個(gè)目錄組中包括多個(gè)目錄項(xiàng),一個(gè)目錄項(xiàng)與一個(gè)緩存塊對(duì)應(yīng)。
[0110]其中,緩存塊的大小通常為64字節(jié)。當(dāng)然,緩存塊的大小除上述64字節(jié)外,還可為其他大小,例如,32字節(jié)或128字節(jié)等等,本實(shí)施例對(duì)緩存塊的大小不作具體限定。在確定緩存塊的大小后,本地節(jié)點(diǎn)的緩存塊的數(shù)目取決于本地節(jié)點(diǎn)的總存儲(chǔ)空間。以本地節(jié)點(diǎn)的
總存儲(chǔ)空間為1T、緩存塊的大小為64字節(jié)為例,則緩存塊的數(shù)目總共有—=2j4對(duì)于數(shù)




26目眾多的緩存塊,需為每一個(gè)緩存塊建立一個(gè)目錄項(xiàng),以記錄遠(yuǎn)端節(jié)點(diǎn)對(duì)緩存塊的占用狀態(tài)。其中,一個(gè)緩存塊可被一個(gè)遠(yuǎn)端節(jié)點(diǎn)占用,也可被多個(gè)遠(yuǎn)端節(jié)點(diǎn)占用,還可不被任何遠(yuǎn)端節(jié)點(diǎn)占用。在進(jìn)行目錄設(shè)計(jì)時(shí),我們采取如圖5所示的層次化目錄設(shè)計(jì)方式。首先,根據(jù)緩存塊的數(shù)目建立多個(gè)目錄集合,之后在每一個(gè)目錄集合中設(shè)置多個(gè)目錄組,最后在每個(gè)目錄組中設(shè)置多個(gè)目錄項(xiàng),從而完成目錄的層次化設(shè)置。以本地節(jié)點(diǎn)的總存儲(chǔ)空間為IT為例,則通常建立1000個(gè)目錄集合,每個(gè)目錄集合中一般包括16個(gè)目錄組,每個(gè)目錄組中包括1000個(gè)目錄項(xiàng),每個(gè)目錄項(xiàng)記錄一個(gè)緩存塊的占用狀態(tài)。此外,由于受限于存儲(chǔ)空間的大小限制,一個(gè)目錄集合中通常不會(huì)包含大量的目錄組。通常情況下,一個(gè)目錄集合中僅包括幾個(gè)或幾十個(gè)目錄組。進(jìn)一步地,若想提高目錄的設(shè)計(jì)精度,還可通過減少每個(gè)目錄項(xiàng)包括的目錄項(xiàng)個(gè)數(shù)的方式實(shí)現(xiàn)。但是減少每個(gè)目錄項(xiàng)包括的目錄項(xiàng)個(gè)數(shù),則意味著目錄集合的增加,進(jìn)而目錄占用的內(nèi)存也會(huì)加大。為了追求設(shè)計(jì)精度,可使用片外內(nèi)存來存儲(chǔ)目錄,比如使用 SDRAM (Synchronous Dynamic Random Access Memory,同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器)。
[0111]402、分別為多個(gè)目錄組配置標(biāo)簽,標(biāo)簽用于標(biāo)識(shí)目錄組所包括的目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài)。
[0112]在本發(fā)明實(shí)施例中,為了減少用于存儲(chǔ)目錄的內(nèi)存使用量,增加了標(biāo)簽的設(shè)計(jì)。其中,每個(gè)標(biāo)簽占用lbit,每個(gè)標(biāo)簽與一個(gè)目錄組相對(duì)應(yīng),用于標(biāo)識(shí)與該目錄組對(duì)應(yīng)的緩存塊的占用狀態(tài)。步驟401中生成的目錄中包括多少個(gè)目錄組,便存在多少個(gè)標(biāo)簽,多個(gè)標(biāo)簽可構(gòu)成一個(gè)如圖6所示的標(biāo)簽向量。該標(biāo)簽向量可對(duì)本地內(nèi)存的全部緩存塊的占用狀態(tài)進(jìn)行標(biāo)識(shí)。繼續(xù)以圖5為例,由于圖5中包括1000*16=16000個(gè)目錄組,所以當(dāng)本地內(nèi)存的總存儲(chǔ)空間為IT時(shí),總共需配置16000個(gè)標(biāo)簽。如果一個(gè)標(biāo)簽為0,則該標(biāo)簽所標(biāo)識(shí)的所有緩存塊為未占用狀態(tài)(沒有任何的遠(yuǎn)端節(jié)點(diǎn)對(duì)緩存塊進(jìn)行占用);如果一個(gè)標(biāo)簽為1,則該標(biāo)簽所標(biāo)識(shí)的所有緩存塊為可能態(tài)(指代任意可能的狀態(tài),緩存塊可能未被占用、可能被一個(gè)遠(yuǎn)端節(jié)點(diǎn)占用、可能被多個(gè)遠(yuǎn)端節(jié)點(diǎn)占用)。
[0113]此外,在初次執(zhí)行本實(shí)施例提供的方法時(shí),也即未有任何遠(yuǎn)端節(jié)點(diǎn)對(duì)本地節(jié)點(diǎn)的緩存塊進(jìn)行占用時(shí),全部的標(biāo)簽都為O ;當(dāng)在后續(xù)過程中,本地節(jié)點(diǎn)的節(jié)點(diǎn)控制器接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),標(biāo)簽會(huì)進(jìn)行更新;也即,當(dāng)緩存塊由未占用狀態(tài)變?yōu)檎加脿顟B(tài)時(shí),該緩存塊對(duì)應(yīng)的目錄項(xiàng)的標(biāo)簽將由O變?yōu)镮。相應(yīng)地,若緩存塊由占用狀態(tài)變?yōu)槲凑加脿顟B(tài),也即,遠(yuǎn)端節(jié)點(diǎn)釋放了該緩存塊,則該緩存塊對(duì)應(yīng)的目錄項(xiàng)的標(biāo)簽將由I變?yōu)镺。在本發(fā)明實(shí)施例中,一個(gè)標(biāo)簽便可標(biāo)識(shí)一個(gè)目錄組所包括的全部目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),相較于現(xiàn)有技術(shù)中的目錄設(shè)計(jì)方式而言,可大大節(jié)省目錄占用的存儲(chǔ)空間。
[0114]403、分別為每個(gè)目錄集合、每個(gè)目錄組、每條目錄項(xiàng)及每個(gè)標(biāo)簽設(shè)置索引。
[0115]在本發(fā)明實(shí)施例中,由于目錄中包括海量的數(shù)據(jù),所以在查詢緩存塊的占用狀態(tài)時(shí),若以遍歷的方式進(jìn)行查詢則將消耗大量的時(shí)間。以本地內(nèi)存的總存儲(chǔ)空間為IT為例,則生成的目錄中一共包含1000個(gè)目錄集合、16000個(gè)目錄組、234個(gè)目錄項(xiàng),若不對(duì)目錄集合、目錄組、目錄項(xiàng)及標(biāo)簽設(shè)置索引的話,則在查找一個(gè)待訪問緩存塊對(duì)應(yīng)的目標(biāo)目錄項(xiàng)時(shí),將極其耗時(shí)。所以在根據(jù)上述步驟401和步驟402進(jìn)行目錄設(shè)計(jì)后,還需為目錄集合、目錄組、目錄項(xiàng)及標(biāo)簽設(shè)置索引,以便在海量數(shù)據(jù)中快速鎖定目標(biāo)目錄項(xiàng)所在目錄中的位置。
[0116]在為每個(gè)目錄集合、每個(gè)目錄組、每條目錄項(xiàng)及每個(gè)標(biāo)簽設(shè)置索引時(shí),可采取用二進(jìn)制數(shù)進(jìn)行索引的方式。以為目錄集合設(shè)置索引為例,若存在1000個(gè)目錄集合,則可用10位的二進(jìn)制數(shù)對(duì)1000個(gè)目錄集合進(jìn)行索引。依次以0000000000、0000000001、0000000010等對(duì)1000個(gè)目錄集合進(jìn)行標(biāo)識(shí)。目錄組、目錄項(xiàng)及標(biāo)簽的設(shè)置索引方式同目錄集合的設(shè)置索引方式一致,此處不再贅述。當(dāng)然,除了上述以二進(jìn)制數(shù)進(jìn)行索引的方式外,還可采取其他索引方式,本實(shí)施例對(duì)此不作具體限定。本發(fā)明實(shí)施例僅以二進(jìn)制數(shù)進(jìn)行索引的方式進(jìn)行舉例說明。此外,在如圖5所示的目錄中,每個(gè)目錄集合中除包括各個(gè)目錄組以外,還可包括各個(gè)目錄組對(duì)應(yīng)的目錄組索引信息(Tag),包括目錄組索引信息(Tag)的目錄集合如圖7所示。
[0117]404、存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽。
[0118]在本發(fā)明實(shí)施例中,在存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽時(shí),可將上述各項(xiàng)存儲(chǔ)在本地節(jié)點(diǎn)的節(jié)點(diǎn)控制器上;還可將上述各項(xiàng)存儲(chǔ)在于節(jié)點(diǎn)控制器連接的其他存儲(chǔ)介質(zhì)上。具體采取何種存儲(chǔ)方式本實(shí)施例對(duì)此不作具體限定。可視情況而定。以本地節(jié)點(diǎn)的總存儲(chǔ)空間為IT為例,則采用本發(fā)明實(shí)施例提供的目錄設(shè)計(jì)方式標(biāo)簽的內(nèi)存消耗為lTB/64byte/lKbit=16Mbit ;Tag 的內(nèi)存消耗 lK*16*14bit=224Kbit ;目錄項(xiàng)的內(nèi)存消耗1K*16*1K*目錄項(xiàng)長(zhǎng)度=16Μ*目錄項(xiàng)長(zhǎng)度。由上述計(jì)算可見,該目錄設(shè)計(jì)占用內(nèi)存有限,完全可以由片上內(nèi)存來完成。所以相較于現(xiàn)有的目錄設(shè)計(jì)方式而言,大大降低了內(nèi)存消耗。
[0119]需要說明的是,在通過上述步驟401至404進(jìn)行層次化的目錄設(shè)計(jì)后,當(dāng)節(jié)點(diǎn)控制器接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),便可根據(jù)內(nèi)存訪問請(qǐng)求中攜帶的信息進(jìn)行目錄訪問,從而確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),并根據(jù)目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。詳細(xì)過程參見下述步驟405至步驟407。
[0120]405、當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)內(nèi)存訪問請(qǐng)求攜帶的目標(biāo)目錄項(xiàng)的標(biāo)簽索引信息,獲取目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽。
[0121]其中,內(nèi)存訪問請(qǐng)求中包括目標(biāo)內(nèi)存的物理地址。該目標(biāo)內(nèi)存的物理地址中包括標(biāo)簽索引信息、目錄項(xiàng)索引信息及緩存塊索引信息。參見圖8,以本地節(jié)點(diǎn)的總存儲(chǔ)空間為IT為例,則目標(biāo)內(nèi)存的物理地址共有40bit。其中,標(biāo)簽索引信息占據(jù)24bit,目錄項(xiàng)索引信息占據(jù)lObit,緩存塊索引信息占據(jù)6bit。
[0122]在本發(fā)明實(shí)施例中,節(jié)點(diǎn)控制器在接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求后,將根據(jù)該內(nèi)存訪問請(qǐng)求攜帶的相關(guān)信息進(jìn)行目錄的訪問,也即在存儲(chǔ)于自身的目錄中查找目標(biāo)目錄項(xiàng)(請(qǐng)求緩存塊對(duì)應(yīng)的目錄項(xiàng)),或在與其相連的存儲(chǔ)有目錄的存儲(chǔ)介質(zhì)中查找目標(biāo)目錄項(xiàng),確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài)。而為了確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),還需先確定目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽。在獲取目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽時(shí),由于內(nèi)存訪問請(qǐng)求中攜帶目標(biāo)目錄項(xiàng)的標(biāo)簽索引信息,而一個(gè)標(biāo)簽索引信息能夠唯一標(biāo)識(shí)一個(gè)標(biāo)簽,所以根據(jù)該標(biāo)簽索引信息便可獲取到目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽。在本發(fā)明實(shí)施例中,由于在步驟402中為一個(gè)目錄組分配一個(gè)標(biāo)簽,所以通過目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,便可確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài)。
[0123]406、根據(jù)目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài)。
[0124]在本發(fā)明實(shí)施例中,標(biāo)簽占用lbit。如果目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽為0,則確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊為未占用狀態(tài),也即沒有任何的遠(yuǎn)端節(jié)點(diǎn)對(duì)目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊進(jìn)行讀寫操作;如果目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽為1,則確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊為可能態(tài)(任意可能的狀態(tài)),目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊可能被一個(gè)遠(yuǎn)端節(jié)點(diǎn)占用,也可能被多個(gè)遠(yuǎn)端節(jié)點(diǎn)占用,甚至也可能未被任何遠(yuǎn)端節(jié)點(diǎn)所占用。
[0125]407、基于目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
[0126]在本發(fā)明實(shí)施例中,若根據(jù)上述步驟406確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊為未占用狀態(tài),則節(jié)點(diǎn)控制器可直接分配目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊給遠(yuǎn)端節(jié)點(diǎn),以供遠(yuǎn)端節(jié)點(diǎn)進(jìn)行讀寫操作。若根據(jù)上述步驟406確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊為可能態(tài),則節(jié)點(diǎn)控制器還需向除發(fā)送內(nèi)存訪問請(qǐng)求之外的其他遠(yuǎn)端節(jié)點(diǎn)發(fā)送偵聽消息,以確定是否有遠(yuǎn)端節(jié)點(diǎn)對(duì)目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊進(jìn)行占用。若節(jié)點(diǎn)控制器確定有其他遠(yuǎn)端節(jié)點(diǎn)占用了目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊,且其他遠(yuǎn)端節(jié)點(diǎn)允許共享該緩存塊,則節(jié)點(diǎn)控制器可直接分配目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊給遠(yuǎn)端節(jié)點(diǎn),以供遠(yuǎn)端節(jié)點(diǎn)進(jìn)行讀寫操作。若節(jié)點(diǎn)控制器確定有其他遠(yuǎn)端節(jié)點(diǎn)占用了目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊,且其他遠(yuǎn)端節(jié)點(diǎn)不允許共享該緩存塊,則節(jié)點(diǎn)控制器便不能分配該緩存塊給遠(yuǎn)端節(jié)點(diǎn)進(jìn)行讀寫操作,針對(duì)該種情況,節(jié)點(diǎn)控制器可向發(fā)送內(nèi)存訪問請(qǐng)求的遠(yuǎn)端節(jié)點(diǎn)回應(yīng)訪問失敗信息,以對(duì)遠(yuǎn)端節(jié)點(diǎn)進(jìn)行提醒。
[0127]此外,遠(yuǎn)端節(jié)點(diǎn)在占用緩存塊進(jìn)行讀寫操作后,一般會(huì)立即釋放占用的緩存塊。而節(jié)點(diǎn)控制器對(duì)這一情況是未知的,需遠(yuǎn)端節(jié)點(diǎn)主動(dòng)將緩存塊釋放消息發(fā)送給節(jié)點(diǎn)控制器,以便節(jié)點(diǎn)控制器根據(jù)緩存塊釋放消息進(jìn)行標(biāo)簽的更新。若遠(yuǎn)端節(jié)點(diǎn)未將緩存塊釋放消息發(fā)送給節(jié)點(diǎn)控制器,則若其他遠(yuǎn)端節(jié)點(diǎn)請(qǐng)求該遠(yuǎn)端節(jié)點(diǎn)之前占用的緩存塊,則節(jié)點(diǎn)控制器將不會(huì)分配對(duì)應(yīng)的緩存塊給其他遠(yuǎn)端節(jié)點(diǎn)。為了避免該種情況的發(fā)生,節(jié)點(diǎn)控制器在響應(yīng)其他遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求時(shí),還需發(fā)送偵聽消息,以確定是否真正有遠(yuǎn)端節(jié)點(diǎn)占用了請(qǐng)求的緩存塊。
[0128]需要說明的是,在進(jìn)行層次化目錄設(shè)計(jì)之后,除了采取上述步驟405至步驟407所示的基于標(biāo)簽索引信息的目錄訪問方式外,還可采取基于集合索引信息、目錄組索引信息及目錄項(xiàng)索引信息的目錄訪問方式。具體過程詳見如圖9所示的步驟901至步驟910。
[0129]901、當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)內(nèi)存訪問請(qǐng)求攜帶的集合索引信息,確定目標(biāo)目錄項(xiàng)所在目錄集合。
[0130]其中,內(nèi)存訪問請(qǐng)求中包括目標(biāo)內(nèi)存的物理地址。該目標(biāo)內(nèi)存的物理地址中包括目錄組索引信息、集合索引信息、目錄項(xiàng)索引信息及緩存塊索引信息。參見圖10,以本地節(jié)點(diǎn)的總存儲(chǔ)空間為IT為例,則目標(biāo)內(nèi)存的物理地址共有40bit。其中,目錄組索引信息占據(jù)14bit,集合索引信息占據(jù)lObit,目錄項(xiàng)索引信息占據(jù)lObit,緩存塊索引信息占據(jù)6bit。
[0131]在本發(fā)明實(shí)施例中,節(jié)點(diǎn)控制器在接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求后,將根據(jù)該內(nèi)存訪問請(qǐng)求攜帶的相關(guān)信息進(jìn)行目錄的訪問,也即在存儲(chǔ)于自身的目錄中查找目標(biāo)目錄項(xiàng)(請(qǐng)求緩存塊對(duì)應(yīng)的目錄項(xiàng)),或在與其相連的存儲(chǔ)有目錄的存儲(chǔ)介質(zhì)中查找目標(biāo)目錄項(xiàng),確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài)。而為了確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),還需先確定目標(biāo)目錄項(xiàng)所在目錄集合。在確定目標(biāo)目錄項(xiàng)所在目錄集合時(shí),由于內(nèi)存訪問請(qǐng)求中攜帶集合索引信息,而一個(gè)集合索引信息能夠唯一標(biāo)識(shí)一個(gè)目錄集合,所以根據(jù)該集合索引信息便可確定目標(biāo)目錄項(xiàng)所在目錄集合。
[0132]902、根據(jù)目錄組索引信息,在目標(biāo)目錄項(xiàng)所在目錄集合中查找目標(biāo)目錄項(xiàng)所在目錄組;如果查找到目標(biāo)目錄項(xiàng)所在目錄組,則執(zhí)行步驟903 ;如果未查找到目標(biāo)目錄項(xiàng)所在目錄組,則執(zhí)行步驟905。[0133]在本發(fā)明實(shí)施例中,在確定目標(biāo)目錄項(xiàng)所在目錄集合后,接下來便要在目標(biāo)目錄項(xiàng)所在目錄集合中查找目標(biāo)目錄項(xiàng)所在目錄組。在查找目標(biāo)目錄項(xiàng)所在目錄組時(shí),具體可采用下述方式:由于目標(biāo)目錄項(xiàng)所在目錄集合中的每個(gè)目錄組均對(duì)應(yīng)一個(gè)目錄組索引信息(Tag),所以可將內(nèi)存訪問請(qǐng)求攜帶的目錄索引信息同目標(biāo)目錄項(xiàng)所在目錄集合中每一個(gè)目錄組的目錄組索引信息進(jìn)行比較;如果內(nèi)存訪問請(qǐng)求攜帶的目錄索引信息同目標(biāo)目錄項(xiàng)所在目錄集合中一個(gè)目錄組的目錄組索引信息相同,則執(zhí)行下述步驟903;如果內(nèi)存訪問請(qǐng)求攜帶的目錄索引信息同目標(biāo)目錄項(xiàng)所在目錄集合中任一個(gè)目錄組的目錄組索引信息均不相同,則執(zhí)行下述步驟905。
[0134]903、根據(jù)目錄項(xiàng)索引信息確定目標(biāo)目錄項(xiàng);根據(jù)目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài)。
[0135]由于已根據(jù)上述步驟901確定了目標(biāo)目錄項(xiàng)所在目錄集合,根據(jù)上述步驟902確定了目標(biāo)目錄項(xiàng)所在目錄組,所以本步驟僅需根據(jù)目錄項(xiàng)索引信息對(duì)目標(biāo)目錄項(xiàng)進(jìn)行定位即可。由于一個(gè)目錄項(xiàng)索引信息可對(duì)目錄組中一個(gè)目錄項(xiàng)進(jìn)行唯一標(biāo)識(shí),所以根據(jù)目錄項(xiàng)索引信息遍歷目標(biāo)目錄項(xiàng)所在目錄組,便可查找到目標(biāo)目錄項(xiàng)。由于目標(biāo)目錄項(xiàng)所在目錄組對(duì)應(yīng)一個(gè)標(biāo)簽,所以根據(jù)目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,便可確定目標(biāo)目錄想對(duì)應(yīng)的緩存塊的占用狀態(tài)。確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài)的方式同上述步驟406 —致,此處不再贅述。在執(zhí)行完本步驟后,執(zhí)行下述步驟904。
[0136]904、基于目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
[0137]該步驟同上述407同理,此處不再贅述。
[0138]905、在目標(biāo)目錄項(xiàng)所在目錄集合中,查找第一目錄組,第一目錄組為全部目錄項(xiàng)均處于未占用狀態(tài)的目錄組;如果查找到第一目錄組,則執(zhí)行步驟907 ;如果未查找到第一目錄組,則執(zhí)行步驟908。
[0139]由于未在目標(biāo)目錄項(xiàng)所在目錄集合中,查找到目標(biāo)目錄項(xiàng)所在目錄組,因此要進(jìn)行目錄組的替換操作,以便后續(xù)過程中節(jié)點(diǎn)控制器根據(jù)目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài)響應(yīng)遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。在進(jìn)行目錄替換操作時(shí),首先在目標(biāo)目錄項(xiàng)所在目錄集合中查找第一目錄組,也即第一目錄組中所有目錄項(xiàng)對(duì)應(yīng)的緩存塊均為被任何遠(yuǎn)端節(jié)點(diǎn)占用;若在目標(biāo)目錄項(xiàng)所在目錄集合中查找到第一目錄組,則執(zhí)行下述步驟906 ;若在目標(biāo)目錄項(xiàng)所在目錄集合中未查找到第一目錄組,則執(zhí)行下述步驟908。
[0140]906、根據(jù)第一目錄組對(duì)應(yīng)的目錄組索引信息和目標(biāo)目錄項(xiàng)的集合索引信息,生成第一標(biāo)簽索引信息。
[0141]在本發(fā)明實(shí)施例中,在根據(jù)第一目錄組對(duì)應(yīng)的目錄組索引信息和目標(biāo)目錄項(xiàng)的集合索引信息,生成第一標(biāo)簽索引信息時(shí),具體可采取下述方式實(shí)現(xiàn):
[0142]將目錄組索引信息的多個(gè)數(shù)據(jù)位置于集合索引信息的多個(gè)數(shù)據(jù)位之前,組合成新的數(shù)據(jù)位;將新的數(shù)據(jù)位確定為第一標(biāo)簽索引信息的數(shù)據(jù)位。
[0143]以本地內(nèi)存的總存儲(chǔ)空間為IT為例,則第一目錄組的目錄組索引信息為14位,目標(biāo)目錄項(xiàng)的集合索引信息為10位。以第一目錄組的目錄組索引信息為
00000000000011,目標(biāo)目錄項(xiàng)的集合索引信息為1000000001為例,則第一標(biāo)簽索引信息為000000000000111000000001。在執(zhí)行完本步驟后,執(zhí)行下述步驟907。
[0144]907、根據(jù)第一標(biāo)簽索引信息,獲取第一標(biāo)簽;更新第一標(biāo)簽,并將第一目錄組對(duì)應(yīng)的目錄組索引信息更新為內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
[0145]在本發(fā)明實(shí)施例中,由于一個(gè)標(biāo)簽索引信息可對(duì)一個(gè)標(biāo)簽進(jìn)行唯一標(biāo)識(shí),所以根據(jù)第一標(biāo)簽的索引信息即可快速在存儲(chǔ)的多個(gè)標(biāo)簽中獲取到第一標(biāo)簽。在獲取到第一標(biāo)簽后,對(duì)第一標(biāo)簽進(jìn)行更新,即將第一標(biāo)簽置O。并將第一目錄組對(duì)應(yīng)的目錄組索引信息更新為內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。也即,將第一目錄組對(duì)應(yīng)的目錄組索引信息和標(biāo)簽索引信息進(jìn)行了替換,得到了一個(gè)新的目錄組。
[0146]908、根據(jù)預(yù)設(shè)策略查找第二目錄組。
[0147]在本發(fā)明實(shí)施例中,預(yù)設(shè)策略可為L(zhǎng)RU (Least Recently Used近期最少使用)策略。也即在查找第二目錄組時(shí),可將目標(biāo)目錄項(xiàng)所在目錄集合中近期最少被訪問的目錄組作為第二目錄組。若近期最少被訪問的目錄組存在多個(gè),比如,近期訪問次數(shù)為O次的目錄組存在多個(gè),則可在多個(gè)目錄組任意選擇一個(gè)目錄組作為第二目錄組。其中,近期可指代當(dāng)前時(shí)間與前一個(gè)小時(shí)或前一分鐘或前一秒中之間的時(shí)間范圍,本實(shí)施例對(duì)近期所指代的時(shí)間范圍大小不進(jìn)行具體限定。
[0148]909、根據(jù)第二目錄組對(duì)應(yīng)的目錄組索引信息和目標(biāo)目錄項(xiàng)的集合索引信息,生成第二標(biāo)簽索引信息。
[0149]該步驟同上述步驟906同理,此處不再贅述。
[0150]910、根據(jù)第二標(biāo)簽索引信息,獲取第二標(biāo)簽;更新第二標(biāo)簽,并將第二目錄組對(duì)應(yīng)的目錄組索引信息更新為內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
[0151]在本發(fā)明實(shí)施例中,由于一個(gè)標(biāo)簽索引信息可對(duì)一個(gè)標(biāo)簽進(jìn)行唯一標(biāo)識(shí),所以根據(jù)第二標(biāo)簽的索引信息即可快速在存儲(chǔ)的多個(gè)標(biāo)簽中獲取到第二標(biāo)簽。在獲取到第二標(biāo)簽后,對(duì)第二標(biāo)簽進(jìn)行更新,即將第二標(biāo)簽置I。并將第二目錄組對(duì)應(yīng)的目錄組索引信息更新為內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。也即,將第二目錄組對(duì)應(yīng)的目錄組索引信息和標(biāo)簽索引信息進(jìn)行了替換,得到了一個(gè)新的目錄組。
[0152]需要說明的是,本地內(nèi)存除了可由節(jié)點(diǎn)控制器進(jìn)行控制之外,還可由HA(HomeAgent,本地代理)進(jìn)行控制。其中,HA 為 NUMA (Non Uniform Memory Access Achitecture,非一致訪問分布共享存儲(chǔ)技術(shù))系統(tǒng)中用于管理系統(tǒng)內(nèi)存的節(jié)點(diǎn),可以認(rèn)為是一個(gè)維護(hù)CC協(xié)議的內(nèi)存控制器。如果圖1中本地內(nèi)存104由HA進(jìn)行管理,HA通過本地網(wǎng)絡(luò)106與節(jié)點(diǎn)控制器103相連,則節(jié)點(diǎn)控制器103此時(shí)就是一個(gè)網(wǎng)絡(luò)互連芯片。
[0153]本發(fā)明實(shí)施例提供的方法,在根據(jù)緩存塊的數(shù)目,建立包括多個(gè)目錄項(xiàng)和多個(gè)目錄組的層次化目錄集合,并為每個(gè)目錄組配置一個(gè)標(biāo)簽后,可實(shí)現(xiàn)一個(gè)標(biāo)簽標(biāo)識(shí)一個(gè)目錄組中全部目錄組對(duì)應(yīng)的緩存塊的占用狀態(tài),從而節(jié)省了目錄占用的存儲(chǔ)空間,僅用片上內(nèi)存便可對(duì)生成的目錄進(jìn)行存儲(chǔ),無需引入片外內(nèi)存,不但節(jié)省了設(shè)計(jì)成本,降低了目錄設(shè)計(jì)的復(fù)雜度,還降低了遠(yuǎn)端節(jié)點(diǎn)對(duì)本地內(nèi)存的訪問延時(shí),提升了多處理器系統(tǒng)的性能。
[0154]圖11是本發(fā)明實(shí)施例提供的一種目錄設(shè)計(jì)裝置,參見圖11,該裝置包括:目錄建立模塊1101、標(biāo)簽配置模塊1102、索引設(shè)置模塊1103、存儲(chǔ)模塊1104。
[0155]其中,目錄建立模塊1101,用于根據(jù)緩存塊的數(shù)目,建立多個(gè)目錄集合,每個(gè)目錄集合中包括多個(gè)目錄組,每個(gè)目錄組中包括多個(gè)目錄項(xiàng),一個(gè)目錄項(xiàng)與一個(gè)緩存塊對(duì)應(yīng);標(biāo)簽配置模塊1102目錄建立模塊1101連接,用于分別為多個(gè)目錄組配置標(biāo)簽,標(biāo)簽用于標(biāo)識(shí)目錄組所包括的所有目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);索引設(shè)置模塊1103與標(biāo)簽配置模塊1102連接,用于分別為每個(gè)目錄集合、每個(gè)目錄組、每條目錄項(xiàng)及每個(gè)標(biāo)簽設(shè)置索引;存儲(chǔ)模塊1104索引設(shè)置模塊1103連接,用于存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽。
[0156]可選地,該裝置還包括:
[0157]標(biāo)簽獲取模塊,用于當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)內(nèi)存訪問請(qǐng)求攜帶的目標(biāo)目錄項(xiàng)的標(biāo)簽索引信息,獲取目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽;
[0158]狀態(tài)確定模塊,用于根據(jù)目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);
[0159]響應(yīng)模塊,用于基于目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
[0160]可選地,該裝置還包括:
[0161]目錄集合確定模塊,用于當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)內(nèi)存訪問請(qǐng)求攜帶的集合索引信息,確定目標(biāo)目錄項(xiàng)所在目錄集合;
[0162]目錄組查找模塊,用于根據(jù)內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息,在目標(biāo)目錄項(xiàng)所在目錄集合中查找目標(biāo)目錄項(xiàng)所在目錄組;
[0163]目錄項(xiàng)確定模塊,用于當(dāng)查找到目標(biāo)目錄項(xiàng)所在目錄組時(shí),根據(jù)內(nèi)存訪問請(qǐng)求攜帶的目錄項(xiàng)索引信息確定目標(biāo)目錄項(xiàng);
[0164]狀態(tài)確定模塊,用于根據(jù)目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài);
[0165]響應(yīng)模塊,用于基于目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
[0166]可選地,該裝置還包括:
[0167]目錄組查找模塊,用于當(dāng)未查找到目標(biāo)目錄項(xiàng)所在目錄組時(shí),在目標(biāo)目錄項(xiàng)所在目錄集合中,查找第一目錄組,第一目錄組為全部目錄項(xiàng)均處于未占用狀態(tài)的目錄組;
[0168]索引信息生成模塊,用于如果查找到第一目錄組,則根據(jù)第一目錄組對(duì)應(yīng)的目錄組索弓I信息和目標(biāo)目錄項(xiàng)的集合索弓I信息,生成第一標(biāo)簽索弓I信息;
[0169]標(biāo)簽獲取模塊,用于根據(jù)第一標(biāo)簽索引信息,獲取第一標(biāo)簽;
[0170]更新模塊,用于更新第一標(biāo)簽,并將第一目錄組對(duì)應(yīng)的目錄組索引信息更新為內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
[0171]可選地,索引信息生成模塊,用于將目錄組索引信息的多個(gè)數(shù)據(jù)位置于集合索引信息的多個(gè)數(shù)據(jù)位之前,組合成新的數(shù)據(jù)位;將新的數(shù)據(jù)位確定為第一標(biāo)簽索引信息的數(shù)據(jù)位。
[0172]可選地,該裝置還包括:
[0173]目錄組查找模塊,用于當(dāng)未查找到第一目錄組時(shí),根據(jù)預(yù)設(shè)策略查找第二目錄組;
[0174]索引信息生成模塊,用于根據(jù)第二目錄組對(duì)應(yīng)的目錄組索引信息和目標(biāo)目錄項(xiàng)的集合索引信息,生成第二標(biāo)簽索引信息;
[0175]標(biāo)簽獲取模塊,用于根據(jù)第二標(biāo)簽索引信息,獲取第二標(biāo)簽;
[0176]更新模塊,用于更新第二標(biāo)簽,并將第二目錄組對(duì)應(yīng)的目錄組索引信息更新為內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。[0177]綜上所述,本發(fā)明實(shí)施例提供的裝置,在根據(jù)緩存塊的數(shù)目,建立包括多個(gè)目錄項(xiàng)和多個(gè)目錄組的層次化目錄集合,并為每個(gè)目錄組配置一個(gè)標(biāo)簽后,可實(shí)現(xiàn)一個(gè)標(biāo)簽標(biāo)識(shí)一個(gè)目錄組中全部目錄組對(duì)應(yīng)的緩存塊的占用狀態(tài),從而節(jié)省了目錄占用的存儲(chǔ)空間,僅用片上內(nèi)存便可對(duì)生成的目錄進(jìn)行存儲(chǔ),無需引入片外內(nèi)存,不但節(jié)省了設(shè)計(jì)成本,降低了目錄設(shè)計(jì)的復(fù)雜度,還降低了遠(yuǎn)端節(jié)點(diǎn)對(duì)本地內(nèi)存的訪問延時(shí),提升了多處理器系統(tǒng)的性倉(cāng)泛。
[0178]需要說明的是:上述實(shí)施例提供的目錄設(shè)計(jì)裝置在進(jìn)行目錄設(shè)計(jì)時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的目錄設(shè)計(jì)裝置與目錄設(shè)計(jì)法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。
[0179]上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0180]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
[0181]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種目錄設(shè)計(jì)方法,其特征在于,所述方法包括: 根據(jù)緩存塊的數(shù)目,建立多個(gè)目錄集合,每個(gè)目錄集合中包括多個(gè)目錄組,每個(gè)目錄組中包括多個(gè)目錄項(xiàng),一個(gè)目錄項(xiàng)與一個(gè)緩存塊對(duì)應(yīng); 分別為所述多個(gè)目錄組配置標(biāo)簽,所述標(biāo)簽用于標(biāo)識(shí)所述目錄組所包括的所有目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài); 分別為每個(gè)目錄集合、每個(gè)目錄組、每條目錄項(xiàng)及每個(gè)標(biāo)簽設(shè)置索引; 存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽。
2.根據(jù)權(quán)利要 求1所述的方法,其特征在于,所述存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽之后,所述方法還包括: 當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目標(biāo)目錄項(xiàng)的標(biāo)簽索引信息,獲取所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽; 根據(jù)所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài); 基于所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)所述遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽之后,所述方法還包括: 當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的集合索引信息,確定所述目標(biāo)目錄項(xiàng)所在目錄集合; 根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息,在所述目標(biāo)目錄項(xiàng)所在目錄集合中查找所述目標(biāo)目錄項(xiàng)所在目錄組; 如果查找到所述目標(biāo)目錄項(xiàng)所在目錄組,則根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目錄項(xiàng)索引信息確定所述目標(biāo)目錄項(xiàng); 根據(jù)所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài); 基于所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)所述遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述在所述目標(biāo)目錄項(xiàng)所在目錄集合中查找所述目標(biāo)目錄項(xiàng)所在目錄組之后,所述方法還包括: 如果未查找到所述目標(biāo)目錄項(xiàng)所在目錄組,則在所述目標(biāo)目錄項(xiàng)所在目錄集合中,查找第一目錄組,所述第一目錄組為全部目錄項(xiàng)均處于未占用狀態(tài)的目錄組; 如果查找到所述第一目錄組,則根據(jù)所述第一目錄組對(duì)應(yīng)的目錄組索引信息和所述目標(biāo)目錄項(xiàng)的集合索引信息,生成第一標(biāo)簽索引信息; 根據(jù)所述第一標(biāo)簽索引信息,獲取第一標(biāo)簽; 更新所述第一標(biāo)簽,并將所述第一目錄組對(duì)應(yīng)的目錄組索引信息更新為所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述第一目錄組對(duì)應(yīng)的目錄組索引信息和所述目標(biāo)目錄項(xiàng)的集合索引信息,生成第一標(biāo)簽索引信息,包括: 將所述目錄組索引信息的多個(gè)數(shù)據(jù)位置于所述集合索引信息的多個(gè)數(shù)據(jù)位之前,組合成新的數(shù)據(jù)位; 將所述新的數(shù)據(jù)位確定為所述第一標(biāo)簽索引信息的數(shù)據(jù)位。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述在所述目標(biāo)目錄所在的目錄集合中,查找第一目錄組之后,所述方法還包括: 如果未查找到所述第一目錄組,則根據(jù)預(yù)設(shè)策略查找第二目錄組; 根據(jù)所述第二目錄組對(duì)應(yīng)的目錄組索引信息和所述目標(biāo)目錄項(xiàng)的集合索引信息,生成第二標(biāo)簽索引信息; 根據(jù)所述第二標(biāo)簽索引信息,獲取第二標(biāo)簽; 更新所述第二標(biāo)簽,并將所述第二目錄組對(duì)應(yīng)的目錄組索引信息更新為所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
7.一種目錄設(shè)計(jì)裝置,其特征在于,所述裝置包括: 目錄建立模塊,用于根據(jù)緩存塊的數(shù)目,建立多個(gè)目錄集合,每個(gè)目錄集合中包括多個(gè)目錄組,每個(gè)目錄組中包括多個(gè)目錄項(xiàng),一個(gè)目錄項(xiàng)與一個(gè)緩存塊對(duì)應(yīng); 標(biāo)簽配置模塊,用于分別為所述多個(gè)目錄組配置標(biāo)簽,所述標(biāo)簽用于標(biāo)識(shí)所述目錄組所包括的所有目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài); 索引設(shè)置模塊,用于分別為每個(gè)目錄集合、每個(gè)目錄組、每條目錄項(xiàng)及每個(gè)標(biāo)簽設(shè)置索引 ; 存儲(chǔ)模塊,用于存儲(chǔ)多個(gè)目錄集合及多個(gè)標(biāo)簽。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 標(biāo)簽獲取模塊,用于當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目標(biāo)目錄項(xiàng)的標(biāo)簽索引信息,獲取所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽; 狀態(tài)確定模塊,用于根據(jù)所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài); 響應(yīng)模塊,用于基于所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)所述遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 目錄集合確定模塊,用于當(dāng)接收到遠(yuǎn)端節(jié)點(diǎn)發(fā)送的內(nèi)存訪問請(qǐng)求時(shí),根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的集合索引信息,確定所述目標(biāo)目錄項(xiàng)所在目錄集合; 目錄組查找模塊,用于根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息,在所述目標(biāo)目錄項(xiàng)所在目錄集合中查找所述目標(biāo)目錄項(xiàng)所在目錄組; 目錄項(xiàng)確定模塊,用于當(dāng)查找到所述目標(biāo)目錄項(xiàng)所在目錄組時(shí),根據(jù)所述內(nèi)存訪問請(qǐng)求攜帶的目錄項(xiàng)索引信息確定所述目標(biāo)目錄項(xiàng); 所述狀態(tài)確定模塊,用于根據(jù)所述目標(biāo)目錄項(xiàng)所在目錄組的標(biāo)簽,確定所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài); 所述響應(yīng)模塊,用于基于所述目標(biāo)目錄項(xiàng)對(duì)應(yīng)的緩存塊的占用狀態(tài),響應(yīng)所述遠(yuǎn)端節(jié)點(diǎn)的內(nèi)存訪問請(qǐng)求。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 所述目錄組查找模塊,用于當(dāng)未查找到所述目標(biāo)目錄項(xiàng)所在目錄組時(shí),在所述目標(biāo)目錄項(xiàng)所在目錄集合中,查找第一目錄組,所述第一目錄組為全部目錄項(xiàng)均處于未占用狀態(tài)的目錄組; 索引信息生成模塊,用于如果查找到所述第一目錄組,則根據(jù)所述第一目錄組對(duì)應(yīng)的目錄組索引信息和所述目標(biāo)目錄項(xiàng)的集合索引信息,生成第一標(biāo)簽索引信息; 所述標(biāo)簽獲取模塊,用于根據(jù)所述第一標(biāo)簽索引信息,獲取第一標(biāo)簽; 更新模塊,用于更新所述第一標(biāo)簽,并將所述第一目錄組對(duì)應(yīng)的目錄組索引信息更新為所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述索引信息生成模塊,用于將所述目錄組索引信息的多個(gè)數(shù)據(jù)位置于所述集合索引信息的多個(gè)數(shù)據(jù)位之前,組合成新的數(shù)據(jù)位;將所述新的數(shù)據(jù)位確定為所述第一標(biāo)簽索引信息的數(shù)據(jù)位。
12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括: 所述目錄組查找模塊,用于當(dāng)未查找到所述第一目錄組時(shí),根據(jù)預(yù)設(shè)策略查找第二目錄組; 索引信息生成模塊,用于根據(jù)所述第二目錄組對(duì)應(yīng)的目錄組索引信息和所述目標(biāo)目錄項(xiàng)的集合索引信息,生成第二標(biāo)簽索引信息; 所述標(biāo)簽獲取模塊,用于根據(jù)所述第二標(biāo)簽索引信息,獲取第二標(biāo)簽; 所述更新模塊,用于更新所述第二標(biāo)簽,并將所述第二目錄組對(duì)應(yīng)的目錄組索引信息更新為所述內(nèi)存訪問請(qǐng)求攜帶的目錄組索引信息。
【文檔編號(hào)】G06F17/30GK103970678SQ201410159502
【公開日】2014年8月6日 申請(qǐng)日期:2014年4月21日 優(yōu)先權(quán)日:2014年4月21日
【發(fā)明者】趙亞飛, 姚策, 褚小偉 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1