專利名稱:混合緩存的固態(tài)硬盤預(yù)取方法和固態(tài)硬盤ssd的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域,特別涉及到混合緩存的固態(tài)硬盤預(yù)取方法和固態(tài)硬盤SSD。
背景技術(shù):
在計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)時(shí),由于Flash本身具有讀寫(xiě)不対稱的問(wèn)題,特別是隨機(jī)寫(xiě)速度表現(xiàn)不如人意,利用基于Flash的SSD來(lái)緩存和預(yù)取大量的順序數(shù)據(jù)流,可能會(huì)造成SSD上產(chǎn)生大量的寫(xiě)操作,甚至產(chǎn)生嚴(yán)重的交織隨機(jī)讀寫(xiě)情況,在最壞的情況下不僅不能節(jié)能,還會(huì)引起系統(tǒng)性能的下降,導(dǎo)致SSD壽命降低
發(fā)明內(nèi)容
本發(fā)明的主要目的為提供一種減少SSD寫(xiě)次數(shù)、有效延長(zhǎng)SSD壽命的混合緩存的固態(tài)硬盤預(yù)取方法和固態(tài)硬盤SSD。本發(fā)明提出ー種混合緩存的固態(tài)硬盤預(yù)取方法,包括步驟固態(tài)硬盤SSD在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求時(shí),查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊;將所述預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中;將已存有數(shù)據(jù)的存儲(chǔ)塊的地址指針存儲(chǔ)至被占?jí)K鏈表中。優(yōu)選地,所述固態(tài)硬盤SSD在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求吋,查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊的步驟之后還包括將所述預(yù)取數(shù)據(jù)請(qǐng)求的順序流數(shù)據(jù)中訪問(wèn)頻率超過(guò)預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù),存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中。優(yōu)選地,所述將預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中的步驟之后還包括將所述順序流數(shù)據(jù)的地址指針存儲(chǔ)至所述SSD的順序鏈表中。優(yōu)選地,所述將預(yù)取數(shù)據(jù)請(qǐng)求的順序流數(shù)據(jù)中訪問(wèn)頻率超過(guò)預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù),存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中的步驟之后還包括將所述熱點(diǎn)數(shù)據(jù)的地址指針存儲(chǔ)至所述SSD的隨機(jī)鏈表中。優(yōu)選地,所述混合緩存的固態(tài)硬盤預(yù)取方法,還包括步驟所述SSD在判定所述順序流數(shù)據(jù)被替換后,將所述順序流數(shù)據(jù)所在的頁(yè)置為無(wú)效頁(yè);啟動(dòng)垃圾回收模式,在所有頁(yè)均為無(wú)效頁(yè)的存儲(chǔ)塊中,選擇擦除次數(shù)最少的存儲(chǔ)快進(jìn)行擦除回收;將已擦除的存儲(chǔ)塊的地址指針存儲(chǔ)至空閑塊鏈表中。本發(fā)明還提出ー種混合緩存的固態(tài)硬盤SSD,包括
空閑存儲(chǔ)塊查找模塊,用于在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求時(shí),查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊;存儲(chǔ)塊數(shù)據(jù)管控模塊,用于將所述預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中;存儲(chǔ)塊指針管控模塊,用于將已存有數(shù)據(jù)的存儲(chǔ)塊的地址指針存儲(chǔ)至被占?jí)K鏈表中。優(yōu)選地,所述混合緩存的固態(tài)硬盤SSD還包括存儲(chǔ)塊熱點(diǎn)數(shù)據(jù)管控模塊,用于將所述預(yù)取數(shù)據(jù)請(qǐng)求的順序流數(shù)據(jù)中訪問(wèn)頻率超過(guò)預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù),存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中。優(yōu)選地,所述混合緩存的固態(tài)硬盤SSD還包括
順序鏈表管控模塊,用于將所述順序流數(shù)據(jù)的地址指針存儲(chǔ)至所述SSD的順序鏈表中。優(yōu)選地,所述混合緩存的固態(tài)硬盤SSD還包括隨機(jī)鏈表管控模塊,用于將所述熱點(diǎn)數(shù)據(jù)的地址指針存儲(chǔ)至所述SSD的隨機(jī)鏈表中。優(yōu)選地,所述混合緩存的固態(tài)硬盤SSD還包括無(wú)效頁(yè)管控模塊,用于在判定所述順序流數(shù)據(jù)被替換后,將所述順序流數(shù)據(jù)所在的頁(yè)置為無(wú)效頁(yè);擦除回收模塊,用于啟動(dòng)垃圾回收模式,在所有頁(yè)均為無(wú)效頁(yè)的存儲(chǔ)塊中,選擇擦除次數(shù)最少的存儲(chǔ)快進(jìn)行擦除回收;回收塊指針管控模塊,用于將已擦除的存儲(chǔ)塊的地址指針存儲(chǔ)至空閑塊鏈表中。本發(fā)明在順序流預(yù)取中,基于空間局部性原則,將同一個(gè)順序流的數(shù)據(jù)存儲(chǔ)在同ー個(gè)塊中,從而讓同一個(gè)塊中的頁(yè)同時(shí)或者在臨近時(shí)間被替換,減少SSD寫(xiě)次數(shù),有效延長(zhǎng)SSD壽命。
圖I為本發(fā)明第一實(shí)施例中混合緩存的固態(tài)硬盤預(yù)取方法的預(yù)取架構(gòu)圖;圖2為本發(fā)明第一實(shí)施例中混合緩存的固態(tài)硬盤預(yù)取方法的流程圖;圖3為本發(fā)明第二實(shí)施例中混合緩存的固態(tài)硬盤預(yù)取方法的流程圖;圖4為本發(fā)明第三實(shí)施例中混合緩存的固態(tài)硬盤預(yù)取方法的流程圖;圖5為本發(fā)明第四實(shí)施例中混合緩存的固態(tài)硬盤預(yù)取方法的流程圖;圖6為本發(fā)明第五實(shí)施例中混合緩存的固態(tài)硬盤SSD的結(jié)構(gòu)示意圖;圖7為本發(fā)明第六實(shí)施例中混合緩存的固態(tài)硬盤SSD的結(jié)構(gòu)示意圖;圖8為本發(fā)明第七實(shí)施例中混合緩存的固態(tài)硬盤SSD的結(jié)構(gòu)示意圖;圖9為本發(fā)明第八實(shí)施例中混合緩存的固態(tài)硬盤SSD的結(jié)構(gòu)示意圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)ー步說(shuō)明。
具體實(shí)施例方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖I和圖2所示,圖I為本發(fā)明第一實(shí)施例中混合緩存的固態(tài)硬盤預(yù)取方法的預(yù)取架構(gòu)圖;圖2為本發(fā)明第一實(shí)施例中混合緩存的固態(tài)硬盤預(yù)取方法的流程圖。該實(shí)施例提到的混合緩存的固態(tài)硬盤預(yù)取方法,包括步驟S101,固態(tài)硬盤SSD在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求時(shí),查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊;在SSD后臺(tái)頁(yè)面管理中,SSD內(nèi)部維護(hù)兩個(gè)塊鏈表空閑塊鏈和被占用塊鏈。通過(guò)FTL (Flash translator! layer,閃存轉(zhuǎn)換層)中的地址映射表對(duì)應(yīng)SSD上物理塊地址??臻e塊鏈表如圖I中的空閑塊池中的塊,每ー個(gè)塊的所有頁(yè)都為空,通過(guò)垃圾回收后的塊將鏈接到其中,在緩存請(qǐng)求到來(lái)時(shí),分配給緩存頁(yè)面。步驟S102,將預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中; 步驟S103,將已存有數(shù)據(jù)的存儲(chǔ)塊的地址指針存儲(chǔ)至被占?jí)K鏈表中。被占用的塊中的頁(yè)面被部分或者全部占用,這是為了將相關(guān)性較強(qiáng)的頁(yè)面保存在相同的SSD塊中,從而減少SSD內(nèi)部碎片的產(chǎn)生。因此,當(dāng)一個(gè)空閑塊中的一個(gè)頁(yè)面被占用時(shí),其剰余的空閑頁(yè)面可能會(huì)被跳過(guò)。在順序流預(yù)取中,基于空間局部性原則,將同一個(gè)順序流的數(shù)據(jù)存儲(chǔ)在同一個(gè)塊中,從而讓同一個(gè)塊中的頁(yè)同時(shí)或者在臨近時(shí)間被替換,減少SSD寫(xiě)次數(shù),有效延長(zhǎng)SSD壽命。如圖3所示,圖3為本發(fā)明第二實(shí)施例中混合緩存的固態(tài)硬盤預(yù)取方法的流程圖。步驟S201,固態(tài)硬盤SSD在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求時(shí),查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊;步驟S202,將預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中;步驟S203,將預(yù)取數(shù)據(jù)請(qǐng)求的順序流數(shù)據(jù)中訪問(wèn)頻率超過(guò)預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù),存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中;步驟S204,將已存有數(shù)據(jù)的存儲(chǔ)塊的地址指針存儲(chǔ)至被占?jí)K鏈表中。對(duì)于緩存的訪問(wèn)頻度較高的數(shù)據(jù),按照其熱度大小分類,將熱度較高的數(shù)據(jù)存放在同一存儲(chǔ)塊中,從而使同一個(gè)塊中的頁(yè)同時(shí)或者在臨近時(shí)間被替換,減少SSD寫(xiě)次數(shù),有效延長(zhǎng)SSD壽命。如圖4所示,圖4為本發(fā)明第三實(shí)施例中混合緩存的固態(tài)硬盤預(yù)取方法的流程圖。步驟S301,固態(tài)硬盤SSD在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求吋,查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊;步驟S302,將預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中;步驟S303,將順序流數(shù)據(jù)的地址指針存儲(chǔ)至SSD的順序鏈表中;步驟S304,將預(yù)取數(shù)據(jù)請(qǐng)求的順序流數(shù)據(jù)中訪問(wèn)頻率超過(guò)預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù),存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中;步驟S305,將熱點(diǎn)數(shù)據(jù)的地址指針存儲(chǔ)至SSD的隨機(jī)鏈表中;步驟S306,將已存有數(shù)據(jù)的存儲(chǔ)塊的地址指針存儲(chǔ)至被占?jí)K鏈表中。SSD的順序鏈表Sssd和隨機(jī)鏈表Rssd通過(guò)位圖的方式存儲(chǔ)在特定的塊中,位圖存儲(chǔ)指向SSD物理頁(yè)面的指針。在運(yùn)行時(shí),將鏈表的位圖讀入DRAM中,如果訪問(wèn)命中,則通過(guò)地址映射表找到相應(yīng)的頁(yè)面,并將對(duì)應(yīng)的數(shù)據(jù)讀取出來(lái)。本實(shí)施例在SSD內(nèi)部利用特定的頁(yè)面管理方式,對(duì)寫(xiě)入緩存和預(yù)取數(shù)據(jù)進(jìn)行優(yōu)化布局,將數(shù)據(jù)重新整合并分組存放,有利于使同一個(gè)塊中的頁(yè)同時(shí)或者在臨近時(shí)間被替換,減少SSD寫(xiě)次數(shù),有效延長(zhǎng)SSD壽命。如圖5所示,圖5為本發(fā)明第四實(shí)施例中混合緩存的固態(tài)硬盤預(yù)取方法的流程圖。步驟S401,固態(tài)硬盤SSD在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求時(shí),查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊;步驟S402,將預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中;步驟S403,將已存有數(shù)據(jù)的存儲(chǔ)塊的地址指針存儲(chǔ)至被占?jí)K鏈表中;步驟S404,SSD在判定順序流數(shù)據(jù)被替換后,將順序流數(shù)據(jù)所在的頁(yè)置為無(wú)效頁(yè);步驟S405,啟動(dòng)垃圾回收模式,在所有頁(yè)均為無(wú)效頁(yè)的存儲(chǔ)塊中,選擇擦除次數(shù)最少的存儲(chǔ)快進(jìn)行擦除回收;步驟S406,將已擦除的存儲(chǔ)塊的地址指針存儲(chǔ)至空閑塊鏈表中。當(dāng)一個(gè)頁(yè)面被替換時(shí),其對(duì)應(yīng)的被占?jí)K的頁(yè)被置為無(wú)效頁(yè)。垃圾回收模塊根據(jù)空閑塊鏈以及空閑頁(yè)面情況,自動(dòng)啟動(dòng)并進(jìn)行垃圾回收,垃圾回收的過(guò)程同時(shí)兼顧時(shí)間和空間局部性,將熱點(diǎn)數(shù)據(jù)和順序數(shù)據(jù)存放在相同的塊中。耗損平衡模塊,通過(guò)分析各個(gè)塊的寫(xiě)和擦除次數(shù),來(lái)優(yōu)先選擇擦除次數(shù)較少的塊進(jìn)行緩存服務(wù),避免SSD因擦除次數(shù)過(guò)多而影響SSD的使用壽命。如圖6所示,圖6為本發(fā)明第五實(shí)施例中混合緩存的固態(tài)硬盤SSD的結(jié)構(gòu)示意圖。該實(shí)施例提到的混合緩存的固態(tài)硬盤SSD,包括空閑存儲(chǔ)塊查找模塊10,用于在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求時(shí),查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊;存儲(chǔ)塊數(shù)據(jù)管控模塊20,用于將預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中;存儲(chǔ)塊指針管控模塊30,用于將已存有數(shù)據(jù)的存儲(chǔ)塊的地址指針存儲(chǔ)至被占?jí)K鏈表中。在SSD后臺(tái)頁(yè)面管理中,SSD內(nèi)部維護(hù)兩個(gè)塊鏈表空閑塊鏈和被占用塊鏈。通過(guò)FTL (Flash translator! layer,閃存轉(zhuǎn)換層)中的地址映射表對(duì)應(yīng)SSD上物理塊地址??臻e塊鏈表如圖I中的空閑塊池中的塊,每一個(gè)塊的所有頁(yè)都為空,通過(guò)垃圾回收后的塊將鏈接到其中,在緩存請(qǐng)求到來(lái)時(shí),分配給緩存頁(yè)面。被占用的塊中的頁(yè)面被部分或者全部占用,這是為了將相關(guān)性較強(qiáng)的頁(yè)面保存在相同的SSD塊中,從而減少SSD內(nèi)部碎片的產(chǎn)生。因此,當(dāng)一個(gè)空閑塊中的一個(gè)頁(yè)面被占用時(shí),其剩余的空閑頁(yè)面可能會(huì)被跳過(guò)。在順序流預(yù)取中,基于空間局部性原則,將同一個(gè)順序流的數(shù)據(jù)存儲(chǔ)在同一個(gè)塊中,從而讓同一個(gè)塊中的頁(yè)同時(shí)或者在臨近時(shí)間被替換,減少SSD寫(xiě)次數(shù),有效延長(zhǎng)SSD壽命。如圖7所示,圖7為本發(fā)明第六實(shí)施例中混合緩存的固態(tài)硬盤SSD的結(jié)構(gòu)示意圖?;旌暇彺娴墓虘B(tài)硬盤SSD還包括存儲(chǔ)塊熱點(diǎn)數(shù)據(jù)管控模塊40,用于將預(yù)取數(shù)據(jù)請(qǐng)求的順序流數(shù)據(jù)中訪問(wèn)頻率超過(guò)預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù),存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中。、
對(duì)于緩存的訪問(wèn)頻度較高的數(shù)據(jù),按照其熱度大小分類,將熱度較高的數(shù)據(jù)存放在同一存儲(chǔ)塊中,從而使同一個(gè)塊中的頁(yè)同時(shí)或者在臨近時(shí)間被替換,減少SSD寫(xiě)次數(shù),有效延長(zhǎng)SSD壽命。如圖8所示,圖8為本發(fā)明第七實(shí)施例中混合緩存的固態(tài)硬盤SSD的結(jié)構(gòu)示意圖?;旌暇彺娴墓虘B(tài)硬盤SSD還包括順序鏈表管控模塊50,用于將順序流數(shù)據(jù)的地址指針存儲(chǔ)至SSD的順序鏈表中。隨機(jī)鏈表管控模塊60,用于將熱點(diǎn)數(shù)據(jù)的地址指針存儲(chǔ)至SSD的隨機(jī)鏈表中。SSD的順序鏈表Sssd和隨機(jī)鏈表Rssd通過(guò)位圖的方式存儲(chǔ)在特定的塊中,位圖存儲(chǔ)指向SSD物理頁(yè)面的指針。在運(yùn)行時(shí),將鏈表的位圖讀入DRAM中,如果訪問(wèn)命中,則通過(guò)地址映射表找到相應(yīng)的頁(yè)面,并將對(duì)應(yīng)的數(shù)據(jù)讀取出來(lái)。本實(shí)施例在SSD內(nèi)部利用特定的頁(yè)面管理方式,對(duì)寫(xiě)入緩存和預(yù)取數(shù)據(jù)進(jìn)行優(yōu)化布局,將數(shù)據(jù)重新整合并分組存放,有利于使 同一個(gè)塊中的頁(yè)同時(shí)或者在臨近時(shí)間被替換,減少SSD寫(xiě)次數(shù),有效延長(zhǎng)SSD壽命。如圖9所示,圖9為本發(fā)明第八實(shí)施例中混合緩存的固態(tài)硬盤SSD的結(jié)構(gòu)示意圖?;旌暇彺娴墓虘B(tài)硬盤SSD還包括無(wú)效頁(yè)管控模塊70,用于在判定順序流數(shù)據(jù)被替換后,將順序流數(shù)據(jù)所在的頁(yè)置為無(wú)效頁(yè);擦除回收模塊80,用于啟動(dòng)垃圾回收模式,在所有頁(yè)均為無(wú)效頁(yè)的存儲(chǔ)塊中,選擇擦除次數(shù)最少的存儲(chǔ)快進(jìn)行擦除回收;回收塊指針管控模塊90,用于將已擦除的存儲(chǔ)塊的地址指針存儲(chǔ)至空閑塊鏈表中。當(dāng)一個(gè)頁(yè)面被替換時(shí),其對(duì)應(yīng)的被占?jí)K的頁(yè)被置為無(wú)效頁(yè)。垃圾回收模塊根據(jù)空閑塊鏈以及空閑頁(yè)面情況,自動(dòng)啟動(dòng)并進(jìn)行垃圾回收,垃圾回收的過(guò)程同時(shí)兼顧時(shí)間和空間局部性,將熱點(diǎn)數(shù)據(jù)和順序數(shù)據(jù)存放在相同的塊中。耗損平衡模塊,通過(guò)分析各個(gè)塊的寫(xiě)和擦除次數(shù),來(lái)優(yōu)先選擇擦除次數(shù)較少的塊進(jìn)行緩存服務(wù),避免SSD因擦除次數(shù)過(guò)多而影響SSD的使用壽命。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種混合緩存的固態(tài)硬盤預(yù)取方法,其特征在于,包括步驟 固態(tài)硬盤SSD在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求時(shí),查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊; 將所述預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中; 將已存有數(shù)據(jù)的存儲(chǔ)塊的地址指針存儲(chǔ)至被占?jí)K鏈表中。
2.根據(jù)權(quán)利要求I所述的混合緩存的固態(tài)硬盤預(yù)取方法,其特征在于,所述固態(tài)硬盤SSD在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求時(shí),查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊的步驟之 后還包括 將所述預(yù)取數(shù)據(jù)請(qǐng)求的順序流數(shù)據(jù)中訪問(wèn)頻率超過(guò)預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù),存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中。
3.根據(jù)權(quán)利要求2所述的混合緩存的固態(tài)硬盤預(yù)取方法,其特征在于,所述將預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中的步驟之后還包括 將所述順序流數(shù)據(jù)的地址指針存儲(chǔ)至所述SSD的順序鏈表中。
4.根據(jù)權(quán)利要求2或3所述的混合緩存的固態(tài)硬盤預(yù)取方法,其特征在于,所述將預(yù)取數(shù)據(jù)請(qǐng)求的順序流數(shù)據(jù)中訪問(wèn)頻率超過(guò)預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù),存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中的步驟之后還包括 將所述熱點(diǎn)數(shù)據(jù)的地址指針存儲(chǔ)至所述SSD的隨機(jī)鏈表中。
5.根據(jù)權(quán)利要求4所述的混合緩存的固態(tài)硬盤預(yù)取方法,其特征在于,還包括步驟 所述SSD在判定所述順序流數(shù)據(jù)被替換后,將所述順序流數(shù)據(jù)所在的頁(yè)置為無(wú)效頁(yè); 啟動(dòng)垃圾回收模式,在所有頁(yè)均為無(wú)效頁(yè)的存儲(chǔ)塊中,選擇擦除次數(shù)最少的存儲(chǔ)快進(jìn)行擦除回收; 將已擦除的存儲(chǔ)塊的地址指針存儲(chǔ)至空閑塊鏈表中。
6.一種混合緩存的固態(tài)硬盤SSD,其特征在于,包括 空閑存儲(chǔ)塊查找模塊,用于在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求時(shí),查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊; 存儲(chǔ)塊數(shù)據(jù)管控模塊,用于將所述預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中; 存儲(chǔ)塊指針管控模塊,用于將已存有數(shù)據(jù)的存儲(chǔ)塊的地址指針存儲(chǔ)至被占?jí)K鏈表中。
7.根據(jù)權(quán)利要求6所述的混合緩存的固態(tài)硬盤SSD,其特征在于,還包括 存儲(chǔ)塊熱點(diǎn)數(shù)據(jù)管控模塊,用于將所述預(yù)取數(shù)據(jù)請(qǐng)求的順序流數(shù)據(jù)中訪問(wèn)頻率超過(guò)預(yù)設(shè)頻率閾值的數(shù)據(jù)作為熱點(diǎn)數(shù)據(jù),存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中。
8.根據(jù)權(quán)利要求7所述的混合緩存的固態(tài)硬盤SSD,其特征在于,還包括 順序鏈表管控模塊,用于將所述順序流數(shù)據(jù)的地址指針存儲(chǔ)至所述SSD的順序鏈表中。
9.根據(jù)權(quán)利要求7或8所述的混合緩存的固態(tài)硬盤SSD,其特征在于,還包括 隨機(jī)鏈表管控模塊,用于將所述熱點(diǎn)數(shù)據(jù)的地址指針存儲(chǔ)至所述SSD的隨機(jī)鏈表中。
10.根據(jù)權(quán)利要求9所述的混合緩存的固態(tài)硬盤SSD,其特征在于,還包括無(wú)效頁(yè)管控模塊,用于在判定所述順序流數(shù)據(jù)被替換后,將所述順序流數(shù)據(jù)所在的頁(yè)置為無(wú)效頁(yè); 擦除回收模塊,用于啟動(dòng)垃圾回收模式,在所有頁(yè)均為無(wú)效頁(yè)的存儲(chǔ)塊中,選擇擦除次數(shù)最少的存儲(chǔ)快進(jìn)行擦除回收; 回收塊指針管控模塊,用于將已擦除的存儲(chǔ)塊的地址指 針存儲(chǔ)至空閑塊鏈表中。
全文摘要
本發(fā)明公開(kāi)了一種混合緩存的固態(tài)硬盤預(yù)取方法和固態(tài)硬盤SSD,其方法包括步驟固態(tài)硬盤SSD在存儲(chǔ)預(yù)取數(shù)據(jù)請(qǐng)求時(shí),查找空閑塊鏈表中的地址指針指向的空閑的存儲(chǔ)塊;將所述預(yù)取數(shù)據(jù)請(qǐng)求中的同一個(gè)順序流中的順序流數(shù)據(jù)存儲(chǔ)至同一個(gè)空閑的存儲(chǔ)塊的空閑頁(yè)中;將已存有數(shù)據(jù)的存儲(chǔ)塊的地址指針存儲(chǔ)至被占?jí)K鏈表中。本發(fā)明在順序流預(yù)取中,基于空間局部性原則,將同一個(gè)順序流的數(shù)據(jù)存儲(chǔ)在同一個(gè)塊中,從而讓同一個(gè)塊中的頁(yè)同時(shí)或者在臨近時(shí)間被替換,減少SSD寫(xiě)次數(shù),有效延長(zhǎng)SSD壽命。
文檔編號(hào)G06F12/06GK102768645SQ20121019582
公開(kāi)日2012年11月7日 申請(qǐng)日期2012年6月14日 優(yōu)先權(quán)日2012年6月14日
發(fā)明者葛雄資 申請(qǐng)人:國(guó)家超級(jí)計(jì)算深圳中心(深圳云計(jì)算中心)