專利名稱:一種高速緩存的映射方法及存儲(chǔ)設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及緩存調(diào)度技術(shù)領(lǐng)域,特別是涉及一種高速緩存的映射方法及存儲(chǔ)設(shè)備。
背景技術(shù):
傳統(tǒng)機(jī)械硬盤由機(jī)械部件構(gòu)成,當(dāng)收到系統(tǒng)的讀寫數(shù)據(jù)指令后,需要移動(dòng)磁頭到數(shù)據(jù)所在位置,這些操作均需要耗費(fèi)時(shí)間。固態(tài)硬盤(SolidState Disk.1DE FLASH DISK),是用固態(tài)電子芯片陣列制成的硬盤,沒有任何機(jī)械部件,不需要尋找磁道操作,由地址轉(zhuǎn)換層直接轉(zhuǎn)換得到數(shù)據(jù)所在的地址,具有更好的讀寫性能。因此,固態(tài)硬盤相比于傳統(tǒng)機(jī)械硬盤,固態(tài)硬盤的讀寫性能更好。但固態(tài)硬盤的價(jià)格比較昂貴,以及固態(tài)硬盤具有有限的擦除次數(shù),使得固態(tài)硬盤一般只用作緩存?,F(xiàn)有技術(shù)中,基于固態(tài)硬盤的數(shù)據(jù)緩存策略為基于哈希表的組相聯(lián)的緩存方案,即為將整個(gè)固態(tài)硬盤硬盤空間邏輯上劃分為多個(gè)地址連續(xù)、容量相等但較小的SET (塊),數(shù)據(jù)空間也按相同的方法進(jìn)行劃分。采用一個(gè)哈希函數(shù),用以計(jì)算數(shù)據(jù)在緩存空間的SET位置,然后,在一個(gè)SET內(nèi)尋找可用的緩存空間,緩存數(shù)據(jù)。如果緩存空間有限,則需要對(duì)緩存空間的數(shù)據(jù)進(jìn)行調(diào)度。具體來說,將某個(gè)塊通過哈希函數(shù)映射到某個(gè)SET,最后,對(duì)數(shù)據(jù)的查找或讀/寫等操作就會(huì)在這個(gè)分割過后的較小的SET中進(jìn)行。而在采用將固態(tài)硬盤分割成多SET的結(jié)構(gòu)下,每個(gè)SET就是一個(gè)邏輯的使用空間。一旦某SET被頻繁使用,就會(huì)帶來很多的替換和擦除,這不僅會(huì)將頻繁使用的數(shù)據(jù)逐出固態(tài)硬盤,影響讀性能,而且,增加對(duì)某SET內(nèi)的數(shù)據(jù)的替換和擦除次數(shù),極大的影響了固態(tài)硬盤的使用壽命。
發(fā)明內(nèi)容
本發(fā)明實(shí)施方式提供一種高速緩存的映射方法及存儲(chǔ)設(shè)備,能夠更均衡地使用緩存空間,提聞緩存空間的使用壽命。第一方面,提供一種高速緩存的映射方法,包括獲取數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù),特征數(shù)據(jù)包括數(shù)據(jù)塊所在的數(shù)據(jù)空間的標(biāo)識(shí)和數(shù)據(jù)塊在所述數(shù)據(jù)空間的數(shù)據(jù)塊地址,數(shù)據(jù)空間劃分為多個(gè)數(shù)據(jù)塊;利用至少兩個(gè)哈希函數(shù)分別對(duì)特征數(shù)據(jù)進(jìn)行計(jì)算,獲得緩存空間中至少兩個(gè)緩存塊的緩存塊地址,緩存空間劃分為多個(gè)緩存塊,緩存塊的容量與數(shù)據(jù)塊的容量相同;根據(jù)緩存塊地址,獲取至少兩個(gè)緩存塊的映射數(shù)據(jù),映射數(shù)據(jù)包括映射特征數(shù)據(jù),映射特征數(shù)據(jù)用于記錄緩存塊所映射的數(shù)據(jù)塊的特征數(shù)據(jù);在至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù);若找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),則對(duì)找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。結(jié)合第一方面實(shí)現(xiàn)方式,在第一方面的第一種可能實(shí)現(xiàn)方式中,映射數(shù)據(jù)還包括狀態(tài)值,狀態(tài)值用于記錄緩存塊的狀態(tài);在至少兩個(gè)映射數(shù)據(jù)中查找與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射特征數(shù)據(jù)的步驟包括在至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù),狀態(tài)值為映射數(shù)據(jù)中用于記錄緩存塊狀態(tài)的數(shù)據(jù);若找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),則對(duì)找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作的步驟包括若找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù),則對(duì)找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。結(jié)合第一方面的第一種可能實(shí)現(xiàn)方式,在第一方面的第二種可能實(shí)現(xiàn)方式中,方法還包括若沒有找到映射數(shù)據(jù),則根據(jù)預(yù)設(shè)的調(diào)度策略從至少兩個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊中選取一個(gè)緩存塊;對(duì)選取的緩存塊進(jìn)行操作。結(jié)合第一方面的第二種可能實(shí)現(xiàn)方式,在第一方面的第三種可能實(shí)現(xiàn)方式中,根據(jù)預(yù)設(shè)的調(diào)度策略從至少兩個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊中選取一個(gè)緩存塊的步驟之后,在對(duì)選取的緩存塊進(jìn)行操作的步驟之前,還包括獲取選取的緩存塊所對(duì)應(yīng)的映射數(shù)據(jù);判斷映射數(shù)據(jù)中的狀態(tài)值是否有效;若映射數(shù)據(jù)中的狀態(tài)值為有效,則將選取的緩存塊中的內(nèi)容寫回映射數(shù)據(jù)中的映射特征數(shù)據(jù)所指示的數(shù)據(jù)空間的數(shù)據(jù)塊中,并刪除選取的緩存塊中的內(nèi)容;若映射數(shù)據(jù)中的狀態(tài)值為無效,則刪除選取的緩存塊中的內(nèi)容;對(duì)選取的緩存塊進(jìn)行操作的步驟包括將數(shù)據(jù)塊中的內(nèi)容寫入選取的緩存塊,并將映射數(shù)據(jù)中的映射特征值置為數(shù)據(jù)塊的特征數(shù)據(jù),以及將狀態(tài)值置為有效。結(jié)合第一方面的第二種可能實(shí)現(xiàn)方式,在第一方面的第四種可能實(shí)現(xiàn)方式中,預(yù)設(shè)的調(diào)度策略包括先入先出隊(duì)列策略、最近最少使用策略或者最不經(jīng)常使用頁置換策略。結(jié)合第一方面的第一種可能實(shí)現(xiàn)方式,在第一方面的第五種可能實(shí)現(xiàn)方式中,對(duì)找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊進(jìn)行操作的步驟包括將找到的映射數(shù)據(jù)中的狀態(tài)值置為無效。結(jié)合第一方面的第一種可能實(shí)現(xiàn)方式,在第一方面的第六種可能實(shí)現(xiàn)方式中,對(duì)找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊進(jìn)行操作的步驟包括刪除找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊中的內(nèi)容,并將數(shù)據(jù)塊中的內(nèi)容寫入找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊。第二方面,提供一種存儲(chǔ)設(shè)備,包括第一獲取模塊,用于獲取數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù),特征數(shù)據(jù)包括數(shù)據(jù)塊所在的數(shù)據(jù)空間的標(biāo)識(shí)和數(shù)據(jù)塊在數(shù)據(jù)空間的數(shù)據(jù)塊地址,數(shù)據(jù)空間劃分為多個(gè)數(shù)據(jù)塊;計(jì)算模塊,用于利用至少兩個(gè)哈希函數(shù)分別對(duì)特征數(shù)據(jù)進(jìn)行計(jì)算,獲得緩存空間中至少兩個(gè)緩存塊的緩存塊地址,緩存空間劃分為多個(gè)緩存塊,緩存塊的容量與數(shù)據(jù)塊的容量相同;第二獲模塊,用于根據(jù)緩存塊地址,獲取至少兩個(gè)緩存塊的映射數(shù)據(jù),映射數(shù)據(jù)包括映射特征數(shù)據(jù),映射特征數(shù)據(jù)用于記錄緩存塊所映射的數(shù)據(jù)塊的特征數(shù)據(jù);查找模塊,用于在至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù);第一操作模塊,用于在查找模塊找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù)時(shí),對(duì)找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。結(jié)合第二方面實(shí)現(xiàn)方式,在第二方面的第一種可能實(shí)現(xiàn)方式中,映射數(shù)據(jù)還包括狀態(tài)值,狀態(tài)值用于記錄緩存塊的狀態(tài);查找模塊具體用于在至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù),狀態(tài)值為映射數(shù)據(jù)中所記錄緩存塊的狀態(tài)值;第一操作模塊具體用于在查找模塊找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù),則對(duì)找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。結(jié)合第二方面的第一種可能實(shí)現(xiàn)方式,在第二方面的第二種可能實(shí)現(xiàn)方式中,存儲(chǔ)設(shè)備還包括選取模塊,用于在查找模塊沒有找到映射數(shù)據(jù)時(shí),根據(jù)預(yù)設(shè)的調(diào)度策略從至少兩個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊中選取一個(gè)緩存塊;第二操作模塊,用于對(duì)選取的緩存塊進(jìn)行操作。結(jié)合第二方面的第二種可能實(shí)現(xiàn)方式,在第二方面的第三種可能實(shí)現(xiàn)方式中,存儲(chǔ)設(shè)備還包括第三獲取模塊,用于獲取選取的緩存塊所對(duì)應(yīng)的映射數(shù)據(jù);判斷模塊,用于判斷映射數(shù)據(jù)中的狀態(tài)值是否有效;回寫刪除模塊,用于在判斷模塊判斷到映射數(shù)據(jù)狀態(tài)值為有效時(shí),將選取的緩存塊中的內(nèi)容寫回映射數(shù)據(jù)中的映射特征數(shù)據(jù)所指示的數(shù)據(jù)空間的數(shù)據(jù)塊中,并刪除選取的緩存塊中的內(nèi)容;刪除模塊,用在判斷模塊判斷到映射數(shù)據(jù)中的狀態(tài)值為無效時(shí),刪除選取的緩存塊中的內(nèi)容;第二操作模塊具體用于數(shù)據(jù)塊中的內(nèi)容寫入選取的緩存塊,并將映射數(shù)據(jù)中的映射特征值置為數(shù)據(jù)塊的特征數(shù)據(jù),以及將狀態(tài)值置為有效。結(jié)合第二方面的第二種可能實(shí)現(xiàn)方式,在第二方面的第四種可能實(shí)現(xiàn)方式中,預(yù)設(shè)的調(diào)度策略包括先入先出隊(duì)列策略、最近最少使用策略或者最不經(jīng)常使用頁置換策略。結(jié)合第二方面的第一種可能實(shí)現(xiàn)方式,在第二方面的第五種可能實(shí)現(xiàn)方式中,第一操作模塊具體用于在查找模塊找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù)時(shí),將找到的映射數(shù)據(jù)中的狀態(tài)值置為無效。結(jié)合第二方面的第一種可能實(shí)現(xiàn)方式,在第二方面的第六種可能實(shí)現(xiàn)方式中,第一操作模塊具體用于在查找模塊找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù)時(shí),刪除找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊中的內(nèi)容,并將數(shù)據(jù)塊中的內(nèi)容寫入找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊。本發(fā)明實(shí)施方式通過利用多個(gè)哈希函數(shù)分別對(duì)數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù)進(jìn)行計(jì)算,得到多個(gè)緩存塊地址。由于多個(gè)哈希函數(shù)之間不存在關(guān)聯(lián),則多個(gè)緩存塊地址之間也不存在關(guān)聯(lián),多個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊隨機(jī)分布在緩存空間中。由于數(shù)據(jù)塊對(duì)應(yīng)有多個(gè)緩存塊,每次將數(shù)據(jù)塊中的內(nèi)容調(diào)入緩存空間時(shí),則可能使用不同緩存塊來緩存塊來緩存所述內(nèi)容,使得緩存空間的使用更加均衡,提高緩存空間的使用壽命。
圖1是本發(fā)明高速緩存的映射方法第一實(shí)施方式的流程圖;圖2是本發(fā)明高速緩存的映射方法第一實(shí)施方式中一個(gè)數(shù)據(jù)塊對(duì)應(yīng)多個(gè)緩存塊、并且多個(gè)緩存塊均為空閑的示意圖;圖3是本發(fā)明高速緩存的映射方法第一實(shí)施方式中從數(shù)據(jù)塊對(duì)應(yīng)的多個(gè)空閑的緩存塊中選取一個(gè)緩存塊緩存數(shù)據(jù)塊的內(nèi)容的示意圖;圖4是本發(fā)明高速緩存的映射方法第二實(shí)施方式的流程圖;圖5是本發(fā)明高速緩存的映射方法第二實(shí)施方式中一個(gè)數(shù)據(jù)塊對(duì)應(yīng)多個(gè)緩存塊,并且多個(gè)緩存塊均被占用的示意圖;圖6是本發(fā)明高速緩存的映射方法第二實(shí)施方式中從數(shù)據(jù)塊對(duì)應(yīng)的多個(gè)被占用的緩存塊中選取一個(gè)緩存塊緩存數(shù)據(jù)塊的內(nèi)容的示意圖;圖7是本發(fā)明存儲(chǔ)設(shè)備第一實(shí)施方式的結(jié)構(gòu)圖;圖8是本發(fā)明存儲(chǔ)設(shè)備第二實(shí)施方式的結(jié)構(gòu)圖。
具體實(shí)施例方式請(qǐng)參閱圖1、圖2和圖3,圖1是本發(fā)明高速緩存的映射方法第一實(shí)施方式的流程圖,圖2是本發(fā)明高速緩存的映射方法第一實(shí)施方式中一個(gè)數(shù)據(jù)塊對(duì)應(yīng)多個(gè)緩存塊、并且多個(gè)緩存塊均為空閑的示意圖,圖3是本發(fā)明高速緩存的映射方法第一實(shí)施方式中從數(shù)據(jù)塊對(duì)應(yīng)的多個(gè)空閑的緩存塊選取一個(gè)緩存塊緩存數(shù)據(jù)塊的內(nèi)容的示意圖。如圖所示,所述方法包括步驟101 :獲取數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù),特征數(shù)據(jù)包括數(shù)據(jù)塊所在的數(shù)據(jù)空間的標(biāo)識(shí)和數(shù)據(jù)塊在數(shù)據(jù)空間的數(shù)據(jù)塊地址,數(shù)據(jù)空間劃分為多個(gè)數(shù)據(jù)塊;數(shù)據(jù)空間用于存儲(chǔ)數(shù)據(jù)。數(shù)據(jù)空間按照數(shù)據(jù)塊的大小進(jìn)行劃分,例如數(shù)據(jù)空間的
容量為M,數(shù)據(jù)塊的大小為N,則數(shù)據(jù)空間的數(shù)據(jù)塊的數(shù)量為數(shù)據(jù)空間的標(biāo)識(shí)為數(shù)據(jù)空
間的唯一標(biāo)記,用于區(qū)別不同的數(shù)據(jù)空間。需要說明的是特征數(shù)據(jù)為數(shù)據(jù)塊的唯一標(biāo)記,通過特征數(shù)據(jù)中的數(shù)據(jù)空間的標(biāo)識(shí)和數(shù)據(jù)塊的數(shù)據(jù)塊地址就能夠確定唯一的數(shù)據(jù)塊。步驟S102 :利用至少兩個(gè)哈希函數(shù)分別對(duì)特征數(shù)據(jù)進(jìn)行計(jì)算,獲得緩存空間中至少兩個(gè)緩存塊的緩存塊地址,緩存空間劃分為多個(gè)緩存塊,緩存塊的容量與數(shù)據(jù)塊的容量相同;緩存空間用于緩存數(shù)據(jù),并且緩存空間的讀寫速度優(yōu)于數(shù)據(jù)空間。通過緩存空間來緩存數(shù)據(jù),當(dāng)需要讀數(shù)據(jù)時(shí),直接從緩存空間中讀數(shù)據(jù),能夠有效地提高讀數(shù)據(jù)的速度,提升系統(tǒng)性能。其中,緩存空間按緩存塊的大小進(jìn)行劃分,并且緩存塊的容量與數(shù)據(jù)空間的數(shù)據(jù)塊的容量相同,從而保證緩存塊與數(shù)據(jù)塊的容量對(duì)應(yīng)關(guān)系。哈希函數(shù)為把任意長(zhǎng)度的輸入,通過散列算法,變換成固定長(zhǎng)度的輸出的一種函數(shù)。通過哈希函數(shù)能夠把容量較大的數(shù)據(jù)空間與容量較小的數(shù)據(jù)空間建立映射關(guān)系。在本發(fā)明實(shí)施方式中,采用了多個(gè)哈希函數(shù)建立數(shù)據(jù)空間與緩存空間的多種映射關(guān)系,就細(xì)化到緩存塊與數(shù)據(jù)塊而言,相當(dāng)于,一個(gè)數(shù)據(jù)塊對(duì)應(yīng)有多個(gè)侯選的緩存塊,一個(gè)數(shù)據(jù)塊可與多個(gè)侯選的緩存塊中的一個(gè)建立映射關(guān)系。進(jìn)一步的,由于多個(gè)哈希函數(shù)之間不存在關(guān)聯(lián),則多個(gè)緩存塊地址之間也不存在關(guān)聯(lián),多個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊隨機(jī)分布在緩存空間中。步驟S103 :根據(jù)緩存塊地址,獲取至少兩個(gè)緩存塊的映射數(shù)據(jù),映射數(shù)據(jù)包括映射特征數(shù)據(jù),映射特征數(shù)據(jù)用于記錄緩存塊所映射的數(shù)據(jù)塊的特征數(shù)據(jù);通過緩存塊的映射數(shù)據(jù)中的映射特征數(shù)據(jù)來記錄緩存塊當(dāng)前與哪個(gè)數(shù)據(jù)塊建立了映射關(guān)系。若緩存塊的映射數(shù)據(jù)中的映射特征數(shù)據(jù)記錄有數(shù)據(jù)塊的特征數(shù)據(jù),說明當(dāng)前緩存塊被占用了 ;若緩存塊的映射數(shù)據(jù)中的映射特征數(shù)據(jù)為空,或者為自定義的標(biāo)記緩存塊的狀態(tài)為空閑狀態(tài)的自定義值時(shí),則說明當(dāng)前緩存塊的狀態(tài)為空閑狀態(tài)的。當(dāng)然還可以用其他方式來標(biāo)記緩存塊的狀態(tài)是空閑狀態(tài)還占用狀態(tài),例如映射數(shù)據(jù)包括狀態(tài)值,通過狀態(tài)值記錄映射數(shù)據(jù)對(duì)應(yīng)緩存塊的狀態(tài),映射特征數(shù)據(jù)僅用來記錄數(shù)據(jù)塊的特征數(shù)據(jù)。步驟S104:在至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),若找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),則進(jìn)入步驟S105 ;
若找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),說明當(dāng)前的數(shù)據(jù)塊已經(jīng)與緩存空間中一個(gè)緩存塊建立映射關(guān)系,可以直接對(duì)該緩存塊進(jìn)行操作即可。步驟S105 :對(duì)找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作;所述操作包括讀操作、寫操作或者刪除操作,可根據(jù)實(shí)際情況,執(zhí)行相應(yīng)的操作。在本發(fā)明實(shí)施方式中,通過利用多個(gè)哈希函數(shù)分別對(duì)數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù)進(jìn)行計(jì)算,得到多個(gè)緩存塊地址。由于多個(gè)哈希函數(shù)之間不存在關(guān)聯(lián),則多個(gè)緩存塊地址之間也不存在關(guān)聯(lián),多個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊隨機(jī)分布在緩存空間中。由于數(shù)據(jù)塊對(duì)應(yīng)有多個(gè)緩存塊,每次將數(shù)據(jù)塊中的內(nèi)容調(diào)入緩存空間時(shí),則可能使用不同緩存塊來緩存塊來緩存所述內(nèi)容,使得緩存空間的緩存塊的使用更加均衡,提高緩存空間的使用壽命。請(qǐng)參閱圖2,圖2是本發(fā)明高速緩存的映射方法第二實(shí)施方式的流程圖。如圖所示,所述方法包括步驟201 :獲取數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù),特征數(shù)據(jù)包括數(shù)據(jù)塊所在的數(shù)據(jù)空間的標(biāo)識(shí)和數(shù)據(jù)塊在數(shù)據(jù)空間的數(shù)據(jù)塊地址,數(shù)據(jù)空間劃分為多個(gè)數(shù)據(jù)塊;數(shù)據(jù)空間用于存儲(chǔ)數(shù)據(jù),并且數(shù)據(jù)空間按照數(shù)據(jù)塊的大小進(jìn)行劃分。需要注意的是一個(gè)緩存空間可與多個(gè)數(shù)據(jù)空間建立映射關(guān)系。數(shù)據(jù)所在的數(shù)據(jù)塊的具體位置,可通過數(shù)據(jù)塊的特征數(shù)據(jù)中的數(shù)據(jù)空間的標(biāo)識(shí)和數(shù)據(jù)塊的數(shù)據(jù)塊地址確定唯一的數(shù)據(jù)塊。步驟S202 :利用至少兩個(gè)哈希函數(shù)分別對(duì)特征數(shù)據(jù)進(jìn)行計(jì)算,獲得緩存空間中至少兩個(gè)緩存塊的緩存塊地址,緩存空間劃分為多個(gè)緩存塊,緩存塊的容量與數(shù)據(jù)塊的容量相同;緩存空間用于緩存數(shù)據(jù),并且緩存空間的讀寫速度優(yōu)于數(shù)據(jù)空間。通過緩存空間來緩存數(shù)據(jù),能夠提高數(shù)據(jù)的讀寫速度。緩存空間按緩存塊的大小進(jìn)行劃分,并且緩存塊的容量與數(shù)據(jù)空間的數(shù)據(jù)塊的容量相同,從而保證緩存塊與數(shù)據(jù)塊的容量對(duì)應(yīng)關(guān)系。采用多個(gè)哈希函數(shù)建立數(shù)據(jù)空間與緩存空間的多種映射關(guān)系,使得一個(gè)數(shù)據(jù)塊可對(duì)應(yīng)有多個(gè)的緩存塊。當(dāng)需要緩存時(shí),將從多個(gè)緩存塊中選取一個(gè)緩存塊來緩存數(shù)據(jù)。步驟S203 :根據(jù)緩存塊地址,獲取至少兩個(gè)緩存塊的映射數(shù)據(jù),映射數(shù)據(jù)包括映射特征數(shù)據(jù)和狀態(tài)值,映射特征數(shù)據(jù)用于記錄緩存塊所映射的數(shù)據(jù)塊的特征數(shù)據(jù),狀態(tài)值用于記錄緩存塊的狀態(tài);映射特征數(shù)據(jù)來記錄緩存塊當(dāng)前映射的數(shù)據(jù)塊的特征數(shù),因此,通過映射特征數(shù)據(jù),可獲知緩存塊所映射的數(shù)據(jù)塊。步驟S204:在至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù),若找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù),則進(jìn)入步驟S205,否則進(jìn)入步驟S206 ;若找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù),則說明當(dāng)前的數(shù)據(jù)塊已經(jīng)與映射數(shù)據(jù)對(duì)應(yīng)的緩存塊建立映射關(guān)系,可以直接對(duì)該緩存塊進(jìn)行操作即可;若沒有找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù),則說明當(dāng)前的數(shù)據(jù)塊尚沒有與緩存空間中緩存塊建立映射關(guān)系。當(dāng)然,實(shí)際應(yīng)用中,映射數(shù)據(jù)也可僅包括映射特征數(shù)據(jù)。若映射數(shù)據(jù)中的映射特征數(shù)據(jù)記錄有數(shù)據(jù)塊的特征數(shù)據(jù),則說明映射數(shù)據(jù)對(duì)應(yīng)的緩存塊被占用;若映射數(shù)據(jù)中的映射特征數(shù)據(jù)為空,或者為自定義標(biāo)記緩存塊的狀態(tài)為空閑狀態(tài)的自定義值時(shí),則說明映射數(shù)據(jù)對(duì)應(yīng)的緩存塊的狀態(tài)為空閑狀態(tài)。步驟S205 :對(duì)找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作;若所述操作為讀操作,則步驟S205又可具體為讀找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊中的內(nèi)容。若所述操作為刪除操作,則步驟S205又可具體為將找到的映射數(shù)據(jù)中的狀態(tài)值置為無效。當(dāng)需要?jiǎng)h除緩存塊的內(nèi)容時(shí),將緩存塊的映射數(shù)據(jù)中的狀態(tài)值置為無效即可。緩存塊的映射數(shù)據(jù)中的狀態(tài)值為無效,說明當(dāng)前的緩存塊的狀態(tài)是空閑狀態(tài),沒有與數(shù)據(jù)塊建立映射關(guān)系。當(dāng)需要使用到該緩存塊時(shí),才將緩存塊中的內(nèi)容刪除,寫入新的內(nèi)容。通過這樣的方式,能夠進(jìn)一步的減少對(duì)緩存塊的擦除次數(shù),提高緩存空間的使用壽命。當(dāng)然,緩存塊的映射數(shù)據(jù)也可以不包括狀態(tài)值,當(dāng)需要?jiǎng)h除緩存塊的內(nèi)容時(shí),直接將緩存塊中的內(nèi)容擦除,再將緩存塊對(duì)應(yīng)的映射數(shù)據(jù)中的映射特征數(shù)據(jù)置為空或者自定義值即可。若所述操作為寫操作,則步驟S205又可具體為刪除映射數(shù)據(jù)對(duì)應(yīng)的緩存塊中的內(nèi)容,并將數(shù)據(jù)塊中的內(nèi)容寫入映射數(shù)據(jù)對(duì)應(yīng)的緩存塊。步驟S206 :根據(jù)預(yù)設(shè)的調(diào)度策略從至少兩個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊中選取一個(gè)緩存塊;其示意圖可參閱圖5和圖6。進(jìn)一步的,預(yù)設(shè)的調(diào)度策略包括先入先出隊(duì)列策略、最近最少使用策略或者最不經(jīng)常使用頁置換策略。其中,又可在緩存塊對(duì)應(yīng)的映射數(shù)據(jù)中設(shè)置統(tǒng)計(jì)數(shù)據(jù),以統(tǒng)計(jì)緩存塊的使用情況。預(yù)設(shè)的調(diào)度策略基于統(tǒng)計(jì)情況選取緩存塊。步驟S207 :獲取選取的緩存塊所對(duì)應(yīng)的映射數(shù)據(jù);步驟S208 :判斷映射數(shù)據(jù)中的狀態(tài)值是否有效,若映射數(shù)據(jù)中的狀態(tài)值為有效,則進(jìn)入步驟S209,否則,進(jìn)入步驟S210 ;若映射數(shù)據(jù)中的狀態(tài)值為有效,則說明所選取的緩存塊被占用,當(dāng)前所選取的緩存塊與數(shù)據(jù)空間中的一個(gè)數(shù)據(jù)塊存在映射關(guān)系。若映射數(shù)據(jù)中的狀態(tài)值為無效,則說明當(dāng)前所選取的緩存塊的狀態(tài)為空閑狀態(tài)。步驟S209 :將選取的緩存塊中的內(nèi)容寫回映射數(shù)據(jù)中的映射特征數(shù)據(jù)所指示的數(shù)據(jù)空間的數(shù)據(jù)塊中,并刪除選取的緩存塊中的內(nèi)容;由于選取的緩存塊中緩存有其他數(shù)據(jù)塊的內(nèi)容,因此在向選取的緩存塊寫入新的數(shù)據(jù)塊的內(nèi)容時(shí),需要預(yù)先將選取的緩存塊所緩存的內(nèi)容寫回對(duì)應(yīng)的數(shù)據(jù)塊中。步驟S210 :刪除選取的緩存塊中的內(nèi)容;選取的緩存塊對(duì)應(yīng)的映射數(shù)據(jù)中的狀態(tài)值為無效,說明選取的緩存塊中的內(nèi)容,已經(jīng)為無效內(nèi)容,直接擦除即可。步驟S211 :將數(shù)據(jù)塊中的內(nèi)容寫入選取的緩存塊,并將映射數(shù)據(jù)中的映射特征值置為數(shù)據(jù)塊的特征數(shù)據(jù),以及將狀態(tài)值置為有效。在本發(fā)明實(shí)施方式中,通過利用多個(gè)哈希函數(shù)分別對(duì)數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù)進(jìn)行計(jì)算,得到多個(gè)緩存塊的緩存塊地址。由于多個(gè)哈希函數(shù)之間不存在關(guān)聯(lián),則多個(gè)緩存塊地址之間也不存在關(guān)聯(lián),多個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊隨機(jī)分布在緩存空間中。當(dāng)需要緩存數(shù)據(jù)塊的數(shù)據(jù)時(shí),從多個(gè)緩存塊對(duì)應(yīng)的映射數(shù)據(jù)查找映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),若找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),則使用找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊來緩存數(shù)據(jù)塊的內(nèi)容,否則,根據(jù)預(yù)設(shè)的調(diào)度策略從多個(gè)緩存塊選取一個(gè)來緩存數(shù)據(jù)塊的內(nèi)容,從而使得每次緩存數(shù)據(jù)塊的數(shù)據(jù)時(shí),數(shù)據(jù)塊所映射的緩存塊可能不同,使得緩存空間的使用更加均衡,提高緩存空間的使用壽命。本發(fā)明又提供一種存儲(chǔ)設(shè)備實(shí)施方式。請(qǐng)參閱圖7,圖7是本發(fā)明存儲(chǔ)設(shè)備第一實(shí)施方式的結(jié)構(gòu)圖。如圖所示,所述存儲(chǔ)設(shè)備30包括第一獲取模塊301、計(jì)算模塊302、第二獲取模塊303、查找模塊304和第一操作模塊305。第一獲取模塊301獲取數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù),特征數(shù)據(jù)包括數(shù)據(jù)塊所在的數(shù)據(jù)空間的標(biāo)識(shí)和數(shù)據(jù)塊在數(shù)據(jù)空間的數(shù)據(jù)塊地址,數(shù)據(jù)空間劃分為多個(gè)數(shù)據(jù)塊。數(shù)據(jù)空間用于存儲(chǔ)數(shù)據(jù)。計(jì)算模塊302利用至少兩個(gè)哈希函數(shù)分別對(duì)特征數(shù)據(jù)進(jìn)行計(jì)算,獲得緩存空間中至少兩個(gè)緩存塊的緩存塊地址,緩存空間劃分為多個(gè)緩存塊,緩存塊的容量與數(shù)據(jù)塊的容量相同。緩存空間用于緩存數(shù)據(jù),并且緩存空間的讀寫速度優(yōu)于數(shù)據(jù)空間。緩存空間來緩存數(shù)據(jù),能夠提高數(shù)據(jù)的讀寫速度,提升系統(tǒng)性能。第二獲模塊303根據(jù)緩存塊地址,獲取至少兩個(gè)緩存塊的映射數(shù)據(jù),映射數(shù)據(jù)包括映射特征數(shù)據(jù)和狀態(tài)值,映射特征數(shù)據(jù)用于記錄緩存塊所映射的數(shù)據(jù)塊的特征數(shù)據(jù),狀態(tài)值用于記錄緩存塊的狀態(tài)。查找模塊304在至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù),狀態(tài)值為映射數(shù)據(jù)中所記錄緩存塊的狀態(tài)值。第一操作模塊305在查找模塊304找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù),則對(duì)找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。其中,映射數(shù)據(jù)包括映射特征數(shù)據(jù)和狀態(tài)值,狀態(tài)值記錄映射數(shù)據(jù)對(duì)應(yīng)的緩存塊的狀態(tài),映射特征數(shù)據(jù)記錄緩存塊所述映射的數(shù)據(jù)塊的特征數(shù)據(jù)。若狀態(tài)值為有效,則映射數(shù)據(jù)對(duì)應(yīng)的緩存塊為占用狀態(tài),若狀態(tài)值為無效,則映射數(shù)據(jù)對(duì)應(yīng)的緩存塊的狀態(tài)為空閑狀態(tài)。當(dāng)然,實(shí)際應(yīng)用中,映射數(shù)據(jù)也可僅包括映射特征數(shù)據(jù)。若映射數(shù)據(jù)中的映射特征數(shù)據(jù)記錄有數(shù)據(jù)塊的特征數(shù)據(jù),則說明映射數(shù)據(jù)對(duì)應(yīng)的緩存塊被占用;若映射數(shù)據(jù)中的映射特征數(shù)據(jù)為空,或者為自定義標(biāo)記緩存塊的狀態(tài)為空閑狀態(tài)的自定義值時(shí),則說明映射數(shù)據(jù)對(duì)應(yīng)的緩存塊的狀態(tài)為空閑狀態(tài)。則查找模塊304又可具體為在至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù)。第一操作模塊305又可具體為用于在查找模塊找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),對(duì)找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。進(jìn)一步的,若所述操作為刪除操作,則第一操作模塊305具體為在查找模塊304找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù)時(shí),將找到的映射數(shù)據(jù)中的狀態(tài)值置為無效。若所述操作為寫入操作,則第一操作模塊305具體為在查找模塊304找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù)時(shí),刪除找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊中的內(nèi)容,并將數(shù)據(jù)塊中的內(nèi)容寫入所述找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊。存儲(chǔ)設(shè)備30還包括選取模塊306、第三獲取模塊307、判斷模塊308、回寫刪除模塊309、刪除模塊310以及第二操作模塊。選取模塊306在查找模塊304沒有找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù)時(shí),根據(jù)預(yù)設(shè)的調(diào)度策略從至少兩個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊中選取一個(gè)緩存塊。預(yù)設(shè)的調(diào)度策略包括先入先出隊(duì)列策略、最近最少使用策略或者最不經(jīng)常使用頁置換策略。第三獲取模塊307獲取選取的緩存塊所對(duì)應(yīng)的映射數(shù)據(jù)。判斷模塊308判斷映射數(shù)據(jù)中的狀態(tài)值是否有效?;貙憚h除模塊309在判斷模塊判斷到映射數(shù)據(jù)狀態(tài)值為有效時(shí),將選取的緩存塊中的內(nèi)容寫回映射數(shù)據(jù)中的映射特征數(shù)據(jù)所指示的數(shù)據(jù)空間的數(shù)據(jù)塊中,并刪除選取的緩存塊中的內(nèi)容。刪除模塊310用在判斷模塊308判斷到映射數(shù)據(jù)中的狀態(tài)值為無效時(shí),刪除選取的緩存塊中的內(nèi)容。第二操作模塊311將數(shù)據(jù)塊中的內(nèi)容寫入選取的緩存塊,并將映射數(shù)據(jù)中的映射特征值置為數(shù)據(jù)塊的特征數(shù)據(jù),以及將狀態(tài)值置為有效。在本發(fā)明實(shí)施方式中,計(jì)算模塊302利用多個(gè)哈希函數(shù)分別對(duì)數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù)進(jìn)行計(jì)算,得到多個(gè)緩存塊地址。由于多個(gè)哈希函數(shù)之間不存在關(guān)聯(lián),則多個(gè)緩存塊地址之間也不存在關(guān)聯(lián),多個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊隨機(jī)分布在緩存空間中。查找模塊304和選取模塊306均從多個(gè)緩存塊地址對(duì)應(yīng)的緩存塊選擇一個(gè)合適緩存塊來緩存數(shù)據(jù)塊的內(nèi)容。由于與數(shù)據(jù)塊對(duì)應(yīng)的緩存塊的數(shù)量有多個(gè),則每次緩存數(shù)據(jù)塊的數(shù)據(jù)時(shí),數(shù)據(jù)塊所映射的緩存塊可能不同,從而使得緩存空間的使用更加均衡,提高緩存空間的使用壽命。請(qǐng)參閱圖8,圖8是本發(fā)明存儲(chǔ)設(shè)備第一實(shí)施方式的結(jié)構(gòu)圖。如圖所示,存儲(chǔ)設(shè)備40包括處理器401、數(shù)據(jù)空間402、緩存空間403和總線404。處理器401、數(shù)據(jù)空間402和緩存空間403均與總線404連接。處理器401獲取數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù),特征數(shù)據(jù)包括數(shù)據(jù)塊所在的數(shù)據(jù)空間402的標(biāo)識(shí)和數(shù)據(jù)塊在數(shù)據(jù)空間的數(shù)據(jù)塊地址,數(shù)據(jù)空間402劃分為多個(gè)數(shù)據(jù)塊;利用至少兩個(gè)哈希函數(shù)分別對(duì)特征數(shù)據(jù)進(jìn)行計(jì)算,獲得緩存空間403中至少兩個(gè)緩存塊的緩存塊地址,緩存空間403劃分為多個(gè)緩存塊,緩存塊的容量與數(shù)據(jù)塊的容量相同;根據(jù)緩存塊地址,獲取至少兩個(gè)緩存塊的映射數(shù)據(jù),映射數(shù)據(jù)包括映射特征數(shù)據(jù),映射特征數(shù)據(jù)用于記錄緩存塊所映射的數(shù)據(jù)塊的特征數(shù)據(jù);在至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù);若找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),則對(duì)找到映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。以上所述僅為本發(fā)明的實(shí)施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種高速緩存的映射方法,其特征在于,包括獲取數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù),所述特征數(shù)據(jù)包括所述數(shù)據(jù)塊所在的數(shù)據(jù)空間的標(biāo)識(shí)和數(shù)據(jù)塊在所述數(shù)據(jù)空間的數(shù)據(jù)塊地址,所述數(shù)據(jù)空間劃分為多個(gè)所述數(shù)據(jù)塊;利用至少兩個(gè)哈希函數(shù)分別對(duì)所述特征數(shù)據(jù)進(jìn)行計(jì)算,獲得緩存空間中至少兩個(gè)緩存塊對(duì)應(yīng)的緩存塊地址,所述緩存空間劃分為多個(gè)所述緩存塊,所述緩存塊的容量與所述數(shù)據(jù)塊的容量相同;根據(jù)所述緩存塊地址,獲取至少兩個(gè)所述緩存塊的映射數(shù)據(jù),所述映射數(shù)據(jù)包括映射特征數(shù)據(jù),所述映射特征數(shù)據(jù)用于記錄緩存塊所映射的數(shù)據(jù)塊的特征數(shù)據(jù);在所述至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與所述數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù);若找到映射特征數(shù)據(jù)與所述數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),則對(duì)所述找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述映射數(shù)據(jù)還包括狀態(tài)值,所述狀態(tài)值用于記錄緩存塊的狀態(tài);所述在所述至少兩個(gè)映射數(shù)據(jù)中查找與所述數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射特征數(shù)據(jù)的步驟包括在所述至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與所述數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù);所述若找到映射特征數(shù)據(jù)與所述數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),則對(duì)所述找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作的步驟包括若找到所述映射特征數(shù)據(jù)與所述所述數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及所述狀態(tài)值為有效的映射數(shù)據(jù),則對(duì)所述找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括若沒有找到所述映射數(shù)據(jù),則根據(jù)預(yù)設(shè)的調(diào)度策略從所述至少兩個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊中選取一個(gè)緩存塊同;對(duì)所述選取的緩存塊進(jìn)行操作。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述在所述根據(jù)預(yù)設(shè)的調(diào)度策略從所述至少兩個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊中選取一個(gè)緩存塊的步驟之后,在對(duì)所述選取的緩存塊進(jìn)行操作的步驟之前,還包括獲取所述選取的緩存塊所對(duì)應(yīng)的映射數(shù)據(jù);判斷所述映射數(shù)據(jù)中的狀態(tài)值是否有效;若所述映射數(shù)據(jù)中的狀態(tài)值為有效,則將所述選取的緩存塊中的內(nèi)容寫回所述映射數(shù)據(jù)中的映射特征數(shù)據(jù)所指示的數(shù)據(jù)空間的數(shù)據(jù)塊中,并刪除所述選取的緩存塊中的內(nèi)容; 若所述映射數(shù)據(jù)中的狀態(tài)值為無效,則刪除所述選取的緩存塊中的內(nèi)容;所述對(duì)所述選取的緩存塊進(jìn)行操作的步驟包括將所述數(shù)據(jù)塊中的內(nèi)容寫入所述選取的緩存塊,并將所述映射數(shù)據(jù)中的映射特征值置為所述數(shù)據(jù)塊對(duì)應(yīng)的特征數(shù)據(jù),以及將所述狀態(tài)值置為有效。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述預(yù)設(shè)的調(diào)度策略包括先入先出隊(duì)列策略、最近最少使用策略或者最不經(jīng)常使用頁置換策略。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對(duì)找到的所述映射數(shù)據(jù)對(duì)應(yīng)的緩存塊進(jìn)行操作的步驟包括將所述找到的映射數(shù)據(jù)中的狀態(tài)值置為無效。
7.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對(duì)找到的所述映射數(shù)據(jù)對(duì)應(yīng)的緩存塊進(jìn)行操作的步驟包括刪除所述找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊中的內(nèi)容,并將所述數(shù)據(jù)塊中的內(nèi)容寫入所述找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊。
8.一種存儲(chǔ)設(shè)備,其特征在于,包括第一獲取模塊,用于獲取數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù),所述特征數(shù)據(jù)包括所述數(shù)據(jù)塊所在的數(shù)據(jù)空間的標(biāo)識(shí)和數(shù)據(jù)塊在所述數(shù)據(jù)空間的數(shù)據(jù)塊地址,所述數(shù)據(jù)空間劃分為多個(gè)所述數(shù)據(jù)塊;計(jì)算模塊,用于利用至少兩個(gè)哈希函數(shù)分別對(duì)所述特征數(shù)據(jù)進(jìn)行計(jì)算,獲得緩存空間中至少兩個(gè)緩存塊的緩存塊地址,所述緩存空間劃分為多個(gè)所述緩存塊,所述緩存塊的容量與所述數(shù)據(jù)塊的容量相同;第二獲模塊,用于根據(jù)所述緩存塊地址,獲取至少兩個(gè)所述緩存塊的映射數(shù)據(jù),所述映射數(shù)據(jù)中的映射特征數(shù)據(jù)用于記錄緩存塊所映射的數(shù)據(jù)塊的特征數(shù)據(jù);查找模塊,用于在所述至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與所述數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù);第一操作模塊,用于在所述查找模塊找到映射特征數(shù)據(jù)與所述數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù)時(shí),對(duì)所述找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。
9.根據(jù)權(quán)利要求8所述的存儲(chǔ)設(shè)備,其特征在于,所述映射數(shù)據(jù)還包括狀態(tài)值,所述狀態(tài)值用于記錄緩存塊的狀態(tài);所述查找模塊具體用于在所述至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與所述數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及狀態(tài)值為有效的映射數(shù)據(jù),所述狀態(tài)值為映射數(shù)據(jù)中所記錄緩存塊的狀態(tài)值;所述第一操作模塊具體用于在所述查找模塊找到所述映射特征數(shù)據(jù)與所述數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及所述狀態(tài)值為有效的映射數(shù)據(jù),則對(duì)所述找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。
10.根據(jù)權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述存儲(chǔ)設(shè)備還包括選取模塊,用于在所述查找模塊沒有找到所述映射數(shù)據(jù)時(shí),根據(jù)預(yù)設(shè)的調(diào)度策略從所述至少兩個(gè)緩存塊地址所對(duì)應(yīng)的緩存塊中選取一個(gè)緩存塊;第二操作模塊,用于對(duì)所述選取的緩存塊進(jìn)行操作。
11.根據(jù)權(quán)利要求10所述的存儲(chǔ)設(shè)備,其特征在于,所述存儲(chǔ)設(shè)備還包括第三獲取模塊,用于獲取所述選取的緩存塊所對(duì)應(yīng)的映射數(shù)據(jù);判斷模塊,用于判斷所述映射數(shù)據(jù)中的狀態(tài)值是否有效;回寫刪除模塊,用于在所述判斷模塊判斷到映射數(shù)據(jù)狀態(tài)值為有效時(shí),將所述選取的緩存塊中的內(nèi)容寫回所述映射數(shù)據(jù)中的映射特征數(shù)據(jù)所指示的數(shù)據(jù)空間的數(shù)據(jù)塊中,并刪除所述選取的緩存塊中的內(nèi)容;刪除模塊,用在所述判斷模塊判斷到所述映射數(shù)據(jù)中的狀態(tài)值為無效時(shí),刪除所述選取的緩存塊中的內(nèi)容;第二操作模塊具體用于將所述數(shù)據(jù)塊中的內(nèi)容寫入所述選取的緩存塊,并將所述映射數(shù)據(jù)中的映射特征值置為所述數(shù)據(jù)塊對(duì)應(yīng)的特征數(shù)據(jù),以及將所述狀態(tài)值置為有效。
12.根據(jù)權(quán)利要求10所述的存儲(chǔ)設(shè)備,其特征在于,所述預(yù)設(shè)的調(diào)度策略包括先入先出隊(duì)列策略、最近最少使用策略或者最不經(jīng)常使用頁置換策略。
13.根據(jù)權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述第一操作模塊具體用于在所述查找模塊找到所述映射特征數(shù)據(jù)與所述所述數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及所述狀態(tài)值為有效的映射數(shù)據(jù)時(shí),將所述找到的映射數(shù)據(jù)中的狀態(tài)值置為無效。
14.根據(jù)權(quán)利要求9所述的存儲(chǔ)設(shè)備,其特征在于,所述第一操作模塊具體用于在所述查找模塊找到所述映射特征數(shù)據(jù)與所述數(shù)據(jù)塊的特征數(shù)據(jù)相同,以及所述狀態(tài)值為有效的映射數(shù)據(jù)時(shí),刪除所述找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊中的內(nèi)容,并將所述數(shù)據(jù)塊中的內(nèi)容寫入所述找到的映射數(shù)據(jù)對(duì)應(yīng)的緩存塊。
全文摘要
本發(fā)明公開了一種高速緩存的映射方法及存儲(chǔ)設(shè)備,方法包括獲取數(shù)據(jù)所在的數(shù)據(jù)塊的特征數(shù)據(jù),特征數(shù)據(jù)包括數(shù)據(jù)塊所在的數(shù)據(jù)空間的標(biāo)識(shí)和數(shù)據(jù)塊在數(shù)據(jù)空間的數(shù)據(jù)塊地址;利用至少兩個(gè)哈希函數(shù)分別對(duì)特征數(shù)據(jù)進(jìn)行計(jì)算,獲得緩存空間中至少兩個(gè)緩存塊的緩存塊地址;根據(jù)緩存塊地址,獲取至少兩個(gè)緩存塊的映射數(shù)據(jù),映射數(shù)據(jù)中的映射特征數(shù)據(jù)用于記錄緩存塊所映射的數(shù)據(jù)塊的特征數(shù)據(jù);在至少兩個(gè)映射數(shù)據(jù)中,查找映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù);若找到映射特征數(shù)據(jù)與數(shù)據(jù)塊的特征數(shù)據(jù)相同的映射數(shù)據(jù),則對(duì)找到的映射數(shù)據(jù)所對(duì)應(yīng)的緩存塊進(jìn)行操作。通過上述方式,本發(fā)明能夠更均衡地使用緩存空間,提高緩存空間的使用壽命。
文檔編號(hào)G06F12/08GK103019963SQ20121059059
公開日2013年4月3日 申請(qǐng)日期2012年12月31日 優(yōu)先權(quán)日2012年12月31日
發(fā)明者許保亮 申請(qǐng)人:華為技術(shù)有限公司