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

存儲(chǔ)驅(qū)動(dòng)器的存儲(chǔ)管理方法和系統(tǒng)與流程

文檔序號(hào):12157243閱讀:310來(lái)源:國(guó)知局
存儲(chǔ)驅(qū)動(dòng)器的存儲(chǔ)管理方法和系統(tǒng)與流程

本發(fā)明總體涉及存儲(chǔ)驅(qū)動(dòng)器,尤其涉及存儲(chǔ)驅(qū)動(dòng)器的存儲(chǔ)管理方法和系統(tǒng)。



背景技術(shù):

在固態(tài)驅(qū)動(dòng)器(SSD)中,垃圾回收(GC)用于通過(guò)對(duì)不再使用的存儲(chǔ)空間進(jìn)行回收而實(shí)現(xiàn)存儲(chǔ)管理。此方式所回收的存儲(chǔ)空間恢復(fù)為后續(xù)寫入操作中所使用的閑置存儲(chǔ)空間池(頁(yè))。在固態(tài)驅(qū)動(dòng)器中,數(shù)據(jù)按頁(yè)寫入,而按存儲(chǔ)塊擦除。此外,由于已有數(shù)據(jù)在讀取后不能再次寫回相同位置,因此在固態(tài)驅(qū)動(dòng)器中回收失效頁(yè)時(shí),需將包含該失效頁(yè)的整個(gè)存儲(chǔ)塊擦除。

在傳統(tǒng)系統(tǒng)中,固態(tài)驅(qū)動(dòng)器中的垃圾回收組件先選擇具有最小有效頁(yè)數(shù)的待刪除存儲(chǔ)塊,然后在將該待刪除存儲(chǔ)塊的有效頁(yè)復(fù)制到閑置存儲(chǔ)塊中后將該待刪除存儲(chǔ)塊刪除。然而,上述垃圾回收操作只有在固態(tài)驅(qū)動(dòng)器中發(fā)生寫入操作,而且所述固態(tài)驅(qū)動(dòng)器內(nèi)的控制器判斷固態(tài)驅(qū)動(dòng)器內(nèi)只剩下閾值數(shù)目的閑置存儲(chǔ)塊時(shí)才啟動(dòng)。所述閾值數(shù)目也可為單個(gè)閑置存儲(chǔ)塊。如此,則使得固態(tài)驅(qū)動(dòng)器內(nèi)的寫入操作發(fā)生延遲,從而對(duì)用戶體驗(yàn)造成影響。此外,垃圾回收操作的頻繁啟動(dòng)使得系統(tǒng)因耗費(fèi)更多的CPU周期而過(guò)載。其原因在于,每次垃圾回收操作中將有效頁(yè)復(fù)制至閑置存儲(chǔ)塊的過(guò)程均需使用內(nèi)存。



技術(shù)實(shí)現(xiàn)要素:

在一種實(shí)施方式中,公開(kāi)了一種存儲(chǔ)驅(qū)動(dòng)器的存儲(chǔ)管理方法。所述方法包括:確定存儲(chǔ)驅(qū)動(dòng)器內(nèi)的多個(gè)存儲(chǔ)塊中的每一個(gè)存儲(chǔ)塊的無(wú)效頁(yè)數(shù);識(shí)別出所述多個(gè)存儲(chǔ)塊中的一組目標(biāo)存儲(chǔ)塊,包括:確定所述多個(gè)存儲(chǔ)塊中具有 最大無(wú)效頁(yè)數(shù)的目標(biāo)存儲(chǔ)塊,以及重復(fù)該確定步驟,直至從所述多個(gè)存儲(chǔ)塊中所確定的一組目標(biāo)存儲(chǔ)塊的有效頁(yè)總數(shù)小于等于所述存儲(chǔ)驅(qū)動(dòng)器的至少一個(gè)閑置存儲(chǔ)塊和垃圾回收存儲(chǔ)塊的其中一個(gè)的閑置頁(yè)總數(shù);以及回收所述一組目標(biāo)存儲(chǔ)塊。

在另一實(shí)施方式中,公開(kāi)了一種存儲(chǔ)驅(qū)動(dòng)器的存儲(chǔ)管理方法。所述方法包括:確定所述存儲(chǔ)驅(qū)動(dòng)器內(nèi)的多個(gè)存儲(chǔ)塊中的每一個(gè)存儲(chǔ)塊的無(wú)效頁(yè)數(shù);通過(guò)重復(fù)選擇過(guò)程,識(shí)別出所述多個(gè)存儲(chǔ)塊中的一組存儲(chǔ)塊,其中,所述重復(fù)選擇過(guò)程包括在每次重復(fù)中選出所述多個(gè)存儲(chǔ)塊中具有最大無(wú)效頁(yè)數(shù)的一個(gè)存儲(chǔ)塊以組成所述一組存儲(chǔ)塊,所述重復(fù)選擇過(guò)程中的每一次后續(xù)重復(fù)均不包括已在上一次重復(fù)中被選擇的存儲(chǔ)塊,所述一組存儲(chǔ)塊的有效頁(yè)總數(shù)小于等于所述存儲(chǔ)驅(qū)動(dòng)器的至少一個(gè)閑置存儲(chǔ)塊和垃圾回收存儲(chǔ)塊的其中一個(gè)的閑置頁(yè)總數(shù);以及回收所述一組存儲(chǔ)塊。

在另一實(shí)施方式中,公開(kāi)了一種存儲(chǔ)驅(qū)動(dòng)器。所述存儲(chǔ)驅(qū)動(dòng)器包括:驅(qū)動(dòng)控制器,該驅(qū)動(dòng)控制器包括至少一個(gè)處理器;以及存有指令的計(jì)算機(jī)可讀介質(zhì),該指令在由所述至少一個(gè)處理器執(zhí)行時(shí)使得所述至少一個(gè)處理器實(shí)施操作,該操作包括:確定存儲(chǔ)驅(qū)動(dòng)器內(nèi)的多個(gè)存儲(chǔ)塊中的每一個(gè)存儲(chǔ)塊的無(wú)效頁(yè)數(shù);識(shí)別出所述多個(gè)存儲(chǔ)塊中的一組目標(biāo)存儲(chǔ)塊,包括:確定所述多個(gè)存儲(chǔ)塊中具有最大無(wú)效頁(yè)數(shù)的目標(biāo)存儲(chǔ)塊,以及重復(fù)該確定步驟,直至從所述多個(gè)存儲(chǔ)塊中所確定的一組目標(biāo)存儲(chǔ)塊的有效頁(yè)總數(shù)小于等于所述存儲(chǔ)驅(qū)動(dòng)器的至少一個(gè)閑置存儲(chǔ)塊和垃圾回收存儲(chǔ)塊的其中一個(gè)的閑置頁(yè)總數(shù);以及回收所述一組目標(biāo)存儲(chǔ)塊。

在另一實(shí)施方式中,公開(kāi)了一種用于存儲(chǔ)驅(qū)動(dòng)器內(nèi)存儲(chǔ)管理的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)裝置。所述非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)裝置在由計(jì)算裝置執(zhí)行時(shí)使得所述計(jì)算裝置:確定存儲(chǔ)驅(qū)動(dòng)器內(nèi)的多個(gè)存儲(chǔ)塊中的每一個(gè)存儲(chǔ)塊的無(wú)效頁(yè)數(shù);識(shí)別出所述多個(gè)存儲(chǔ)塊中的一組目標(biāo)存儲(chǔ)塊,包括:確定所述多個(gè)存儲(chǔ)塊中具有最大無(wú)效頁(yè)數(shù)的目標(biāo)存儲(chǔ)塊,以及重復(fù)該確定步驟,直至從所述多個(gè)存儲(chǔ)塊中所確定的一組目標(biāo)存儲(chǔ)塊的有效頁(yè)總數(shù)小于等于所述存儲(chǔ)驅(qū)動(dòng)器的至少一個(gè)閑置存儲(chǔ)塊和垃圾回收存儲(chǔ)塊的其中一個(gè)的閑置頁(yè)總數(shù); 以及回收所述一組目標(biāo)存儲(chǔ)塊。

應(yīng)當(dāng)理解的是,以上概略描述與以下詳細(xì)描述均僅在于例示和說(shuō)明,而不在于限制所要求保護(hù)的發(fā)明。

附圖說(shuō)明

所附各圖并入本發(fā)明之內(nèi)并構(gòu)成本發(fā)明的一部分,用于對(duì)例示實(shí)施方式進(jìn)行描述,并與說(shuō)明書一道闡明所公開(kāi)的原理。

圖1為用于實(shí)施各種實(shí)施方式的例示固態(tài)驅(qū)動(dòng)器框圖。

圖2為根據(jù)一種實(shí)施方式用于存儲(chǔ)驅(qū)動(dòng)器內(nèi)存儲(chǔ)管理的控制器框圖。

圖3為根據(jù)一種實(shí)施方式的存儲(chǔ)驅(qū)動(dòng)器內(nèi)存儲(chǔ)管理流程圖。

圖4A和4B為根據(jù)另一實(shí)施方式的存儲(chǔ)驅(qū)動(dòng)器內(nèi)存儲(chǔ)管理流程圖。

圖5A和5B所示為根據(jù)一種例示實(shí)施方式對(duì)一組目的存儲(chǔ)塊進(jìn)行回收以將其轉(zhuǎn)化為閑置存儲(chǔ)塊。

圖6為用于實(shí)施各種實(shí)施方式的例示計(jì)算機(jī)系統(tǒng)框圖。

具體實(shí)施方式

以下,參考附圖,對(duì)例示實(shí)施方式進(jìn)行描述。在任何方便之處,各圖中均采用相同附圖標(biāo)記指代相同或類似部件。雖然本文中描述了所公開(kāi)原理的實(shí)施例和特征,但是在不脫離所公開(kāi)實(shí)施方式的精神和范圍的前提下,還可進(jìn)行修改、調(diào)整以及做出其他實(shí)施方式。以下具體描述意在僅視作例示,而真正的范圍及精神如下附權(quán)利要求書所述。

以下對(duì)其他說(shuō)明性實(shí)施方式進(jìn)行陳述。在一種實(shí)施方式中,用于實(shí)施各種實(shí)施方式的固態(tài)驅(qū)動(dòng)器(SSD)102的框圖(例示)如圖1所示。主機(jī)104通過(guò)訪問(wèn)固態(tài)驅(qū)動(dòng)器102實(shí)現(xiàn)各種類型數(shù)據(jù)的存儲(chǔ)和獲取。主機(jī)104例如包括,但不限于,膝上型計(jì)算機(jī)、智能電話、照相機(jī)、平板電腦、計(jì)算機(jī)、智能電視、游戲設(shè)備、家庭影院系統(tǒng)、導(dǎo)航裝置。

主機(jī)104和固態(tài)驅(qū)動(dòng)器102之間的通信通過(guò)主機(jī)104內(nèi)的固態(tài)驅(qū)動(dòng)器接 口106以及固態(tài)驅(qū)動(dòng)器102內(nèi)的主機(jī)接口108實(shí)現(xiàn)。這些接口例如包括,但不限于,小型計(jì)算機(jī)系統(tǒng)接口(SCSI)、光纖通道、快速外圍組件互連(PCIe)、串行連接SCSI(SAS)、串行高技術(shù)配置(SATA)、并行高技術(shù)配置(PATA)以及通用串行總線(USB)。所述通信可包括用于在固態(tài)驅(qū)動(dòng)器102內(nèi)執(zhí)行數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)讀取以及數(shù)據(jù)擦除操作的命令。固態(tài)驅(qū)動(dòng)器102內(nèi)的驅(qū)動(dòng)控制器110通過(guò)閃存接口114和閃存通道116將所述命令轉(zhuǎn)化及執(zhí)行為針對(duì)閃存存儲(chǔ)器112的讀/寫請(qǐng)求。閃存存儲(chǔ)器112包括多個(gè)NAND型閃存存儲(chǔ)芯片,每個(gè)該存儲(chǔ)芯片包括多個(gè)存儲(chǔ)塊。每個(gè)存儲(chǔ)塊進(jìn)一步包括多個(gè)頁(yè),每個(gè)頁(yè)均為一個(gè)數(shù)據(jù)讀寫操作單位。舉例而言,一個(gè)存儲(chǔ)塊可包括64個(gè)頁(yè)或128個(gè)頁(yè)。

現(xiàn)在參考圖2,該圖所示為根據(jù)一種實(shí)施方式用于存儲(chǔ)驅(qū)動(dòng)器內(nèi)存儲(chǔ)管理的驅(qū)動(dòng)控制器110。所述存儲(chǔ)驅(qū)動(dòng)器為固態(tài)驅(qū)動(dòng)器。驅(qū)動(dòng)控制器110從主機(jī)104接收用于在所述固態(tài)驅(qū)動(dòng)器內(nèi)執(zhí)行數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)讀取以及數(shù)據(jù)擦除操作的命令。之后,驅(qū)動(dòng)控制器110通過(guò)閃存接口202將所述命令轉(zhuǎn)換及執(zhí)行為針對(duì)閃存存儲(chǔ)器的讀/寫請(qǐng)求。為實(shí)現(xiàn)此目的,驅(qū)動(dòng)控制器110包括損耗均衡模塊204、存儲(chǔ)監(jiān)測(cè)模塊206、垃圾回收模塊208、緩沖管理模塊210以及壞塊管理模塊212。

損耗均衡模塊204保有頁(yè)映射表,該頁(yè)映射表包括所述固態(tài)驅(qū)動(dòng)器內(nèi)每個(gè)存儲(chǔ)塊中的無(wú)效頁(yè)數(shù)、有效頁(yè)數(shù)以及閑置頁(yè)數(shù)。每當(dāng)執(zhí)行數(shù)據(jù)寫入操作時(shí),損耗均衡模塊204均對(duì)所述頁(yè)映射表進(jìn)行更新。存儲(chǔ)監(jiān)測(cè)模塊206與損耗均衡模塊204通信,以根據(jù)存于所述頁(yè)映射表中的數(shù)據(jù)確定所述固態(tài)驅(qū)動(dòng)器中閑置存儲(chǔ)塊的數(shù)目。每當(dāng)所述固態(tài)驅(qū)動(dòng)器的閑置存儲(chǔ)塊數(shù)降至小于一預(yù)設(shè)閾值(例如三個(gè)閑置存儲(chǔ)塊)時(shí),存儲(chǔ)監(jiān)測(cè)模塊206均與垃圾回收模塊208通信,以啟動(dòng)對(duì)所述固態(tài)驅(qū)動(dòng)器內(nèi)一個(gè)或多個(gè)存儲(chǔ)塊的回收。

垃圾回收模塊208通過(guò)所述頁(yè)映射表確定所述固態(tài)驅(qū)動(dòng)器內(nèi)的每個(gè)存儲(chǔ)塊中無(wú)效頁(yè)和有效頁(yè)的數(shù)目。無(wú)效頁(yè)為存有不可獲取或不再使用的損壞或過(guò)時(shí)數(shù)據(jù)的存儲(chǔ)單元。在此之后,垃圾回收模塊208識(shí)別出一組目標(biāo)存儲(chǔ)塊。

為實(shí)現(xiàn)此目的,垃圾回收模塊208先確定所述固態(tài)驅(qū)動(dòng)器內(nèi)具有最大無(wú)效頁(yè)數(shù)的目標(biāo)存儲(chǔ)塊。之后,垃圾回收模塊208重復(fù)所述確定步驟,直至所 述一組目標(biāo)存儲(chǔ)塊內(nèi)的有效頁(yè)總數(shù)小于等于且最接近于一個(gè)或多個(gè)閑置存儲(chǔ)塊或垃圾回收存儲(chǔ)塊內(nèi)的閑置頁(yè)總數(shù)。換句話說(shuō),每次重復(fù)后,垃圾回收模塊208均執(zhí)行檢查,以確定所選存儲(chǔ)塊內(nèi)的有效頁(yè)能否容納于所述閑置存儲(chǔ)塊的可用閑置頁(yè)中。只有當(dāng)上述條件滿足時(shí),垃圾回收模塊208才將所述一組目標(biāo)存儲(chǔ)塊內(nèi)的所選待回收存儲(chǔ)塊納入其中。

在此之后,垃圾回收模塊208通過(guò)將所述有效頁(yè)復(fù)制至所述一個(gè)或多個(gè)閑置存儲(chǔ)塊中,并將該一組目標(biāo)存儲(chǔ)塊中的每個(gè)存儲(chǔ)塊均轉(zhuǎn)化為閑置存儲(chǔ)塊,回收所述一組目標(biāo)存儲(chǔ)塊。其后,垃圾回收模塊208與損耗均衡模塊204通信,以對(duì)所述頁(yè)映射表進(jìn)行更新,從而反映出上述所做變更。以下結(jié)合圖3、圖4A和圖4B,對(duì)此方法進(jìn)行詳述。

此外,緩沖管理模塊210減少了所述固態(tài)驅(qū)動(dòng)器的隨機(jī)寫入,從而提高該所述固態(tài)驅(qū)動(dòng)器的使用壽命和性能。壞塊管理模塊212將壞的存儲(chǔ)塊隔離,并將此類壞的存儲(chǔ)塊添加至壞塊列表。因此,壞塊管理模塊212可阻止驅(qū)動(dòng)控制器110將數(shù)據(jù)寫入所述壞的存儲(chǔ)塊內(nèi)。

垃圾回收模塊208根據(jù)頁(yè)映射表中的最大無(wú)效頁(yè)數(shù)和最小有效頁(yè)數(shù)選擇待回收存儲(chǔ)塊。如此,可使更多無(wú)效頁(yè)閑置,并減少需復(fù)制至閑置存儲(chǔ)塊內(nèi)的有效頁(yè)數(shù),從而提高所述固態(tài)驅(qū)動(dòng)器的輸入/輸出性能,并在給定時(shí)間內(nèi)釋放更大空間。此外,由于一次垃圾回收操作可使一個(gè)以上存儲(chǔ)塊閑置,系統(tǒng)資源的使用得到了優(yōu)化,從而避免所述固態(tài)驅(qū)動(dòng)器中的寫入操作發(fā)生延遲,并使得用戶體驗(yàn)不受影響。

現(xiàn)在參考圖3,該圖為根據(jù)一種實(shí)施方式的存儲(chǔ)驅(qū)動(dòng)器內(nèi)存儲(chǔ)管理流程圖。所述存儲(chǔ)驅(qū)動(dòng)器可以為固態(tài)驅(qū)動(dòng)器。所述固態(tài)驅(qū)動(dòng)器內(nèi)的閃存存儲(chǔ)器包括多個(gè)NAND型閃存存儲(chǔ)芯片。每個(gè)存儲(chǔ)芯片包括多個(gè)存儲(chǔ)塊。在302中,確定所述多個(gè)存儲(chǔ)塊中每個(gè)存儲(chǔ)塊內(nèi)的無(wú)效頁(yè)數(shù)。此外,也可確定每個(gè)存儲(chǔ)塊內(nèi)的有效頁(yè)數(shù)。以下結(jié)合圖4,對(duì)此進(jìn)行進(jìn)一步說(shuō)明。

上述之后,在304中,在所述多個(gè)存儲(chǔ)塊中,識(shí)別出一組目標(biāo)存儲(chǔ)塊。為此,在304a中,確定所述多個(gè)存儲(chǔ)塊中具有最大無(wú)效頁(yè)數(shù)的目標(biāo)存儲(chǔ)塊。其后,在304b中,重復(fù)所述確定步驟(即304a),直至所述一組目標(biāo)存儲(chǔ)塊 內(nèi)的有效頁(yè)總數(shù)小于或等于一個(gè)或多個(gè)閑置存儲(chǔ)塊或垃圾回收存儲(chǔ)塊內(nèi)的閑置頁(yè)總數(shù)。換句話說(shuō),每次重復(fù)后,均執(zhí)行檢查,以確定所選存儲(chǔ)塊內(nèi)的有效頁(yè)能否容納于所述閑置存儲(chǔ)塊的可用閑置頁(yè)中。只有當(dāng)上述條件滿足時(shí),才將所述一組目標(biāo)存儲(chǔ)塊內(nèi)的所選待回收存儲(chǔ)塊納入其中。

因此,當(dāng)某一次重復(fù)中所選存儲(chǔ)塊的有效頁(yè)不能容納至所述閑置存儲(chǔ)塊內(nèi)時(shí),該次重復(fù)即為最后一次重復(fù)。在該最后一次重復(fù)中所確定的存儲(chǔ)塊并不納入所述待回收的一組目標(biāo)存儲(chǔ)塊中。在一種實(shí)施方式中,還進(jìn)一步確定所述目標(biāo)存儲(chǔ)塊是否在所述多個(gè)存儲(chǔ)塊中具有最小有效頁(yè)數(shù)。因此,在此實(shí)施方式中,目標(biāo)存儲(chǔ)塊應(yīng)該在所述多個(gè)存儲(chǔ)塊中具有最多的無(wú)效頁(yè)和最少的有效頁(yè)。以下結(jié)合圖4A和圖4B,對(duì)此進(jìn)行進(jìn)一步說(shuō)明。

舉例而言,所述閃存存儲(chǔ)器的存儲(chǔ)塊總數(shù)為24,而且具有一個(gè)閑置存儲(chǔ)塊,該閑置存儲(chǔ)塊具有128個(gè)頁(yè)。在第一次重復(fù)中,選擇所述24個(gè)存儲(chǔ)塊中具有最大無(wú)效頁(yè)數(shù)的存儲(chǔ)塊。在第二次重復(fù)中,選擇剩余23個(gè)存儲(chǔ)塊中具有最大無(wú)效頁(yè)數(shù)的存儲(chǔ)塊。將所選存儲(chǔ)塊納入所述待回收的一組目標(biāo)存儲(chǔ)塊內(nèi)的條件為,該所選存儲(chǔ)塊內(nèi)的有效頁(yè)可容納于所述閑置存儲(chǔ)塊的128個(gè)頁(yè)中。

上述之后,在306中,回收所述一組目標(biāo)存儲(chǔ)塊。在回收所述一組目標(biāo)存儲(chǔ)塊時(shí),首先將該一組目標(biāo)存儲(chǔ)塊中的每一個(gè)存儲(chǔ)塊的有效頁(yè)復(fù)制至所述一個(gè)或多個(gè)閑置存儲(chǔ)塊或垃圾回收存儲(chǔ)塊中的可用閑置頁(yè)中。其后,將所述一組目標(biāo)存儲(chǔ)塊轉(zhuǎn)化為閑置存儲(chǔ)塊。以下結(jié)合圖4A和圖4B,對(duì)此進(jìn)行進(jìn)一步說(shuō)明。存儲(chǔ)塊的所述回收過(guò)程的啟動(dòng)與所述存儲(chǔ)驅(qū)動(dòng)器內(nèi)的寫入操作無(wú)關(guān),從而避免所述固態(tài)驅(qū)動(dòng)器的寫入操作發(fā)生延遲,并使得用戶體驗(yàn)不受影響。

現(xiàn)在參考圖4A和圖4B,該圖為根據(jù)另一實(shí)施方式的存儲(chǔ)驅(qū)動(dòng)器內(nèi)存儲(chǔ)管理流程圖。所述存儲(chǔ)驅(qū)動(dòng)器為固態(tài)驅(qū)動(dòng)器。在402中,損耗均衡模塊204創(chuàng)建并保有頁(yè)映射表,該頁(yè)映射表表示所述固態(tài)驅(qū)動(dòng)器的存儲(chǔ)狀態(tài)。所述頁(yè)映射表存有所述存儲(chǔ)驅(qū)動(dòng)器中每個(gè)存儲(chǔ)塊的有效頁(yè)數(shù)及無(wú)效頁(yè)數(shù)。所述頁(yè)映射表還可存有每個(gè)存儲(chǔ)塊的閑置頁(yè)數(shù)。以下結(jié)合圖5A和圖5B所示例示實(shí)施方式,對(duì)所述頁(yè)映射表進(jìn)行詳細(xì)說(shuō)明。在404中,根據(jù)所述頁(yè)映射表,確定給定時(shí)間點(diǎn)上所述固態(tài)驅(qū)動(dòng)器中每個(gè)存儲(chǔ)塊的有效頁(yè)和無(wú)效頁(yè)數(shù)。

在406中,根據(jù)從所述頁(yè)映射表所獲得的信息,確定目標(biāo)存儲(chǔ)塊。該目標(biāo)存儲(chǔ)塊在所述多個(gè)存儲(chǔ)塊中具有最大無(wú)效頁(yè)數(shù)。之后,在408中,執(zhí)行檢查,以確定所述目標(biāo)存儲(chǔ)塊在所述多個(gè)存儲(chǔ)塊中是否具有最小有效頁(yè)數(shù)。換句話說(shuō),所確定的目標(biāo)存儲(chǔ)塊在所述多個(gè)存儲(chǔ)塊中,不僅具有最大無(wú)效頁(yè)數(shù),還具有最小有效頁(yè)數(shù)。

如果所述目標(biāo)存儲(chǔ)塊不具有最小有效頁(yè)數(shù),則控制返回406。此外,再次參考408,如果所述目標(biāo)存儲(chǔ)塊具有最小有效頁(yè)數(shù),則在410中執(zhí)行檢查,以確定所述目標(biāo)存儲(chǔ)塊中的有效頁(yè)數(shù)目是否小于或等于所述一個(gè)或多個(gè)閑置存儲(chǔ)塊或垃圾回收存儲(chǔ)塊中的閑置頁(yè)總數(shù)。換句話說(shuō),所述檢查用于確定所述目標(biāo)存儲(chǔ)塊中的有效頁(yè)能否被復(fù)制至閑置存儲(chǔ)塊或垃圾回收存儲(chǔ)塊中的可用閑置頁(yè)中。如果所述目標(biāo)存儲(chǔ)塊的有效頁(yè)數(shù)目滿足此條件,則在412中,將所述目標(biāo)存儲(chǔ)塊添加至被識(shí)別為待回收的一組目標(biāo)存儲(chǔ)塊中。在此之后,控制返回406,以確定另一目標(biāo)存儲(chǔ)塊。例如,在第一次重復(fù)中,在24個(gè)存儲(chǔ)塊當(dāng)中,識(shí)別出具有80個(gè)無(wú)效頁(yè)(在24個(gè)存儲(chǔ)塊當(dāng)中為最大)以及20個(gè)有效頁(yè)(在24個(gè)存儲(chǔ)塊當(dāng)中為最小)的目標(biāo)存儲(chǔ)塊。此外,在所述固態(tài)驅(qū)動(dòng)器中只有一個(gè)具有128個(gè)閑置頁(yè)的閑置存儲(chǔ)塊。在此情況下,由于20個(gè)有效頁(yè)可容易地容納至128個(gè)閑置頁(yè)中,因此將上述目標(biāo)存儲(chǔ)塊添加至待回收的一組目標(biāo)存儲(chǔ)塊中。在此之后,在第二次重復(fù)中,在23個(gè)剩余存儲(chǔ)塊當(dāng)中,識(shí)別出具有70個(gè)無(wú)效頁(yè)(在23個(gè)存儲(chǔ)塊當(dāng)中為最大)以及30個(gè)有效頁(yè)(在23個(gè)存儲(chǔ)塊當(dāng)中為最小)的目標(biāo)存儲(chǔ)塊。由于所述閑置存儲(chǔ)塊在容納了20個(gè)有效頁(yè)后還剩余108個(gè)閑置頁(yè),因此該第二次重復(fù)中所識(shí)別出的目標(biāo)存儲(chǔ)塊的30個(gè)頁(yè)也能復(fù)制至所述閑置存儲(chǔ)塊中。因此,該目標(biāo)存儲(chǔ)塊也納入所述一組目標(biāo)存儲(chǔ)塊中。此過(guò)程一直重復(fù),直至無(wú)法再將識(shí)別出的目標(biāo)存儲(chǔ)塊的有效頁(yè)復(fù)制至閑置存儲(chǔ)塊中為止。以下結(jié)合圖5A和圖5B例示實(shí)施方式,對(duì)此進(jìn)行進(jìn)一步說(shuō)明。

再次參考步驟410,如果所述目標(biāo)存儲(chǔ)塊中的有效頁(yè)數(shù)大于一個(gè)或多個(gè)閑置存儲(chǔ)塊或垃圾回收存儲(chǔ)塊內(nèi)的閑置頁(yè)總數(shù),則在414中,回收所述一組目標(biāo)存儲(chǔ)塊。換句話說(shuō),如果目標(biāo)存儲(chǔ)塊的有效頁(yè)無(wú)法容納于所述閑置存儲(chǔ)塊 的可用閑置頁(yè)中,則不將該目標(biāo)存儲(chǔ)塊添加至待回收的所述一組目標(biāo)存儲(chǔ)塊中。作為上示實(shí)施例的延續(xù),在第n次重復(fù)中,識(shí)別出具有60個(gè)無(wú)效頁(yè)和40個(gè)有效頁(yè)的目標(biāo)存儲(chǔ)塊。然而,由于所述閑置存儲(chǔ)塊僅剩28個(gè)閑置頁(yè),因此在該第n次重復(fù)中所識(shí)別出的目標(biāo)存儲(chǔ)塊的40個(gè)有效頁(yè)不能全部復(fù)制至所述閑置存儲(chǔ)塊。所以,不將此目標(biāo)存儲(chǔ)塊添加至待回收的所述一組目標(biāo)存儲(chǔ)塊中。

所述一組目標(biāo)存儲(chǔ)塊回收時(shí),在414a中,將該組中每個(gè)目標(biāo)存儲(chǔ)塊的有效頁(yè)均復(fù)制至所述一個(gè)或多個(gè)閑置存儲(chǔ)塊或所述垃圾回收存儲(chǔ)塊中。其后,在414b中,將該組中的每個(gè)目標(biāo)存儲(chǔ)塊轉(zhuǎn)化為閑置存儲(chǔ)塊。在416中,對(duì)所述頁(yè)映射表進(jìn)行更新,以反映出對(duì)所述一組目標(biāo)存儲(chǔ)塊及所述閑置存儲(chǔ)塊或垃圾回收存儲(chǔ)塊所做的變更。

由于待回收存儲(chǔ)塊根據(jù)所述頁(yè)映射表中的最大無(wú)效頁(yè)數(shù)和最小有效頁(yè)數(shù)選出,因此可使更多無(wú)效頁(yè)閑置,并可減少需復(fù)制至閑置存儲(chǔ)塊中的有效頁(yè)數(shù),從而提高所述固態(tài)驅(qū)動(dòng)器的輸入/輸出性能,并且在給定時(shí)間內(nèi)釋放更大空間。此外,由于一次垃圾回收操作可使得一個(gè)以上的存儲(chǔ)塊閑置,系統(tǒng)資源使用得到了優(yōu)化,從而避免所述固態(tài)驅(qū)動(dòng)器中的寫入操作發(fā)生延遲,并使得用戶體驗(yàn)不受影響。

現(xiàn)在參考圖5A和圖5B,該圖所示為根據(jù)一種例示實(shí)施方式對(duì)所述一組目標(biāo)存儲(chǔ)塊進(jìn)行回收,以將其轉(zhuǎn)化為閑置存儲(chǔ)塊。驅(qū)動(dòng)控制器110針對(duì)NAND型存儲(chǔ)芯片502實(shí)施存儲(chǔ)管理,該NAND型存儲(chǔ)芯片包括固態(tài)驅(qū)動(dòng)器內(nèi)的24個(gè)存儲(chǔ)塊(未示于圖5A和圖5B中)。存儲(chǔ)塊可以為有效塊(VLB)、閑置塊(FB)、垃圾回收塊(GCB)、犧牲塊(VB)以及壞塊(BB)。閑置塊為只含有閑置頁(yè)的存儲(chǔ)塊(如存儲(chǔ)塊504),垃圾回收塊為待垃圾回收器使用的閑置存儲(chǔ)塊(如存儲(chǔ)塊506),犧牲塊為被選為待擦除或刪除的存儲(chǔ)塊,或者無(wú)效頁(yè)多于有效頁(yè)的存儲(chǔ)塊(如存儲(chǔ)塊508~516),壞塊為已損壞或不用于數(shù)據(jù)存儲(chǔ)的存儲(chǔ)塊(如存儲(chǔ)塊518和520),有效塊為僅含有效頁(yè)的存儲(chǔ)塊(如存儲(chǔ)塊522和524)。

實(shí)施存儲(chǔ)管理操作時(shí),在每一次重復(fù)中,垃圾回收模塊208均訪問(wèn)頁(yè)映 射表526,以識(shí)別出NAND型存儲(chǔ)芯片502的24個(gè)存儲(chǔ)塊中具有最大無(wú)效頁(yè)數(shù)和最小有效頁(yè)數(shù)的目標(biāo)存儲(chǔ)塊。頁(yè)映射表526含有關(guān)于NAND型存儲(chǔ)芯片502的24個(gè)存儲(chǔ)塊中每個(gè)存儲(chǔ)塊的無(wú)效頁(yè)數(shù)、有效頁(yè)數(shù)及閑置頁(yè)數(shù)的細(xì)節(jié)。本領(lǐng)域技術(shù)人員容易理解的是,為了便于描述,所提及的無(wú)效、有效及閑置頁(yè)僅針對(duì)犧牲塊(即存儲(chǔ)塊508~516)和閑置塊(即存儲(chǔ)塊504)而言。

根據(jù)頁(yè)映射表526中的信息,在第一次重復(fù)中,垃圾回收模塊208識(shí)別出頁(yè)映射表526中的第20號(hào)存儲(chǔ)塊。如存儲(chǔ)頁(yè)布局框528所示,第20號(hào)存儲(chǔ)塊(即存儲(chǔ)塊508)之所以被識(shí)別是因?yàn)槠湓谒?4個(gè)存儲(chǔ)塊中具有最大無(wú)效頁(yè)數(shù)(即80)以及最小有效頁(yè)數(shù)(即20)。由于存儲(chǔ)塊504(即頁(yè)映射表526中的第2號(hào)存儲(chǔ)塊)的128個(gè)閑置頁(yè)中可容納20個(gè)有效頁(yè),因此將存儲(chǔ)塊508添加至待回收的一組目標(biāo)存儲(chǔ)塊中。在該20個(gè)有效頁(yè)復(fù)制后,閑置存儲(chǔ)塊504將剩余108個(gè)閑置頁(yè)。

在此之后,在第二次重復(fù)中,垃圾回收模塊208識(shí)別出頁(yè)映射表526中的第6號(hào)存儲(chǔ)塊。如存儲(chǔ)頁(yè)布局框530所示,第6號(hào)存儲(chǔ)塊(即存儲(chǔ)塊510)之所以被識(shí)別是因?yàn)榇鎯?chǔ)塊510在23個(gè)存儲(chǔ)塊(除存儲(chǔ)塊508)中具有最大無(wú)效頁(yè)數(shù)(即70)及最小有效頁(yè)數(shù)(即30)。由于存儲(chǔ)塊504的108個(gè)閑置頁(yè)中可容納30個(gè)有效頁(yè),因此將存儲(chǔ)塊510添加至所述一組目標(biāo)存儲(chǔ)塊中。在該30個(gè)有效頁(yè)復(fù)制后,閑置存儲(chǔ)塊504剩余78個(gè)閑置頁(yè)。此處必須注意的是,雖然在上述第二次重復(fù)中,頁(yè)映射表526的第8號(hào)存儲(chǔ)塊(即存儲(chǔ)塊516)具有最大無(wú)效頁(yè)數(shù)(75),但是由于該存儲(chǔ)塊在所述23個(gè)存儲(chǔ)塊中不具有最小有效頁(yè)數(shù),因此存儲(chǔ)塊516未被選擇。所以,垃圾回收模塊208繼續(xù)找到具有第二大無(wú)效頁(yè)數(shù)和最小有效頁(yè)數(shù)的存儲(chǔ)塊510。

類似地,在第三次重復(fù)中,垃圾回收模塊208從22個(gè)存儲(chǔ)塊(除存儲(chǔ)塊508和510外)中識(shí)別出第23號(hào)存儲(chǔ)塊。如存儲(chǔ)頁(yè)布局框532所示,第23號(hào)存儲(chǔ)塊為具有65個(gè)無(wú)效頁(yè)以及35個(gè)有效頁(yè)的存儲(chǔ)塊512。在將存儲(chǔ)塊512的35個(gè)有效頁(yè)納入后,存儲(chǔ)塊504剩余43個(gè)閑置頁(yè)。

在此之后,在第四次重復(fù)中,垃圾回收模塊208從21個(gè)存儲(chǔ)塊(除存儲(chǔ)塊508、510和512外)中識(shí)別出第4號(hào)存儲(chǔ)塊。如存儲(chǔ)頁(yè)布局框534所示, 頁(yè)映射表526的第4號(hào)存儲(chǔ)塊為具有60個(gè)無(wú)效頁(yè)以及40個(gè)有效頁(yè)的存儲(chǔ)塊514。在將存儲(chǔ)塊514的此40個(gè)有效頁(yè)復(fù)制至存儲(chǔ)塊504后,存儲(chǔ)塊504只剩下3個(gè)閑置頁(yè)。存儲(chǔ)頁(yè)布局框536所示為復(fù)制有效頁(yè)之前的存儲(chǔ)塊504,而存儲(chǔ)頁(yè)布局框538所示為在將所述一組目標(biāo)存儲(chǔ)塊的所有有效頁(yè)復(fù)制至存儲(chǔ)塊504內(nèi)后的存儲(chǔ)塊504。為了便于描述,存儲(chǔ)頁(yè)布局框528~538將無(wú)效頁(yè)和有效頁(yè)圖示為連續(xù)頁(yè)。然而,本領(lǐng)域技術(shù)人員容易理解的是,本發(fā)明并不限于此圖示情形。

在最后一次重復(fù)中,垃圾回收模塊208從20個(gè)存儲(chǔ)塊(除存儲(chǔ)塊508、510、512和514外)中識(shí)別出第8號(hào)存儲(chǔ)塊。第8號(hào)存儲(chǔ)塊為在此次重復(fù)中具有最大無(wú)效頁(yè)數(shù)(75)和最小有效頁(yè)數(shù)(50)的存儲(chǔ)塊516。然而,由于存儲(chǔ)塊504只剩下3個(gè)閑置頁(yè),因此無(wú)法將存儲(chǔ)塊516的所有有效頁(yè)均復(fù)制至存儲(chǔ)塊504中。所以,存儲(chǔ)塊516未被納入待回收的所述一組目標(biāo)存儲(chǔ)塊中。

如此,在最后一次重復(fù)后,識(shí)別出的所述一組待回收目標(biāo)存儲(chǔ)塊包括存儲(chǔ)塊508、510、512和514。在將這些存儲(chǔ)塊的有效頁(yè)復(fù)制至存儲(chǔ)塊504后,再將這些存儲(chǔ)塊中的每一個(gè)均轉(zhuǎn)化為閑置存儲(chǔ)塊。在此之后,損耗均衡模塊204對(duì)頁(yè)映射表526進(jìn)行更新,以反映對(duì)存儲(chǔ)塊508、510、512、514和504所做的變更。關(guān)于NAND型存儲(chǔ)芯片502的所述24個(gè)存儲(chǔ)塊中的每一個(gè)存儲(chǔ)塊的有效頁(yè)、無(wú)效頁(yè)和閑置頁(yè)的新數(shù)據(jù)展現(xiàn)于頁(yè)映射表538中。

現(xiàn)在參考圖6,該圖為用于實(shí)施各種實(shí)施方式的例示計(jì)算機(jī)系統(tǒng)框圖。計(jì)算機(jī)系統(tǒng)602可包括中央處理單元(“CPU”或“處理器”)604。處理器604可包括至少一個(gè)用于執(zhí)行程序組件的數(shù)據(jù)處理器,所述程序組件用于執(zhí)行用戶或系統(tǒng)生成的請(qǐng)求。用戶可包括使用例如本發(fā)明范圍內(nèi)的設(shè)備的個(gè)人、或此類設(shè)備本身。所述處理器可包括專用處理單元,例如集成系統(tǒng)(總線)控制器、存儲(chǔ)管理控制單元、浮點(diǎn)單元、圖形處理單元、數(shù)字信號(hào)處理單元等。所述處理器可包括微處理器,例如AMD速龍(Athlon)、毒龍(Duron)或皓龍(Opteron),ARM應(yīng)用處理器,嵌入式或安全處理器,IBM PowerPC,Intel Core、安騰(Itanium)、至強(qiáng)(Xeon)、賽揚(yáng)(Celeron)或其他處理器產(chǎn)品線 等。處理器604可通過(guò)主機(jī)、分布式處理器、多核、并行、網(wǎng)格或其他架構(gòu)實(shí)現(xiàn)。一些實(shí)施方式可使用嵌入式技術(shù),例如專用集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、現(xiàn)場(chǎng)可編程門陣列(FPGA)等。

處理器604可配置為通過(guò)輸入/輸出(I/O)接口606與一個(gè)或多個(gè)I/O設(shè)備進(jìn)行通信。I/O接口606可采用各種通信協(xié)議/方法,例如但不限于,音頻、模擬、數(shù)字、單聲道、RCA、立體聲、IEEE-1394、串行總線、通用串行總線(USB)、紅外、PS/2、BNC、同軸、組件、復(fù)合、數(shù)字視覺(jué)接口(DVI)、高清晰度多媒體接口(HDMI)、射頻天線、S-視頻,VGA、IEEE 802.n/b/g/n/x、藍(lán)牙、蜂窩(例如碼分多址(CDMA)、高速分組接入(HSPA+)、移動(dòng)通信全球系統(tǒng)(GSM)、長(zhǎng)期演進(jìn)(LTE)、WiMax等)等。

通過(guò)使用I/O接口606,計(jì)算機(jī)系統(tǒng)602可與一個(gè)或多個(gè)I/O設(shè)備進(jìn)行通信。舉例而言,輸入設(shè)備608可以為天線、鍵盤、鼠標(biāo)、操縱桿、(紅外)遙控、攝像頭、讀卡器、傳真機(jī)、加密狗、生物計(jì)量閱讀器、麥克風(fēng)、觸摸屏、觸摸板、軌跡球、傳感器(例如加速度計(jì)、光傳感器、GPS、陀螺儀、接近傳感器等)、觸控筆、掃描儀、存儲(chǔ)設(shè)備、收發(fā)器、視頻設(shè)備/視頻源、頭戴式顯示器等。輸出設(shè)備610可以為打印機(jī)、傳真機(jī)、視頻顯示器(例如陰極射線管(CRT)、液晶顯示器(LCD)、發(fā)光二極管(LED)、等離子等)、音頻揚(yáng)聲器等。在一些實(shí)施方式中,收發(fā)器612可與處理器604連接。收發(fā)器612可便于實(shí)施各類無(wú)線傳輸或接收。例如,收發(fā)器612可包括以可操作方式連接至收發(fā)器芯片(例如德州儀器(Texas Instruments)WiLink WL1283、博通(Broadcom)BCM4750IUB8、英飛凌科技(Infineon Technologies)X-Gold 618-PMB9800等)的天線,以實(shí)現(xiàn)IEEE 802.11a/b/g/n、藍(lán)牙、頻率調(diào)制(FM)、全球定位系統(tǒng)(GPS)、2G/3G HSDPA/HSUPA通信等。

在一些實(shí)施方式中,處理器604可配置為通過(guò)網(wǎng)絡(luò)接口616與通信網(wǎng)絡(luò)614進(jìn)行通信。網(wǎng)絡(luò)接口616可與通信網(wǎng)絡(luò)614通信。網(wǎng)絡(luò)接口616可采用連接協(xié)議,包括但不限于,直接連接、以太網(wǎng)(例如雙絞線10/100/1000BaseT)、傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)、令牌環(huán)、IEEE 802.11a/b/g/n/x等。通信網(wǎng)絡(luò)614可包括,但不限于,直接互連、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、無(wú) 線網(wǎng)絡(luò)(例如使用無(wú)線應(yīng)用協(xié)議)、因特網(wǎng)等。通過(guò)網(wǎng)絡(luò)接口616和通信網(wǎng)絡(luò)614,計(jì)算機(jī)系統(tǒng)602可與設(shè)備618、620和622通信。這些設(shè)備可包括,但不限于,個(gè)人計(jì)算機(jī)、服務(wù)器、傳真機(jī)、打印機(jī)、掃描儀以及各種移動(dòng)設(shè)備,例如蜂窩電話、智能電話(例如蘋果手機(jī)(AppleiPhone)、黑莓手機(jī)(Blackberry)、基于安卓(Android)系統(tǒng)的電話等)、平板電腦、電子書閱讀器(亞馬遜(Amazon)Kindle,Nook等)、膝上型計(jì)算機(jī)、筆記本電腦、游戲機(jī)(微軟(Microsoft)Xbox、任天堂(Nintendo)DS,索尼(Sony)PlayStation等)等。在一些實(shí)施方式中,計(jì)算機(jī)系統(tǒng)602可本身包含一個(gè)或多個(gè)上述設(shè)備。

在一些實(shí)施方式中,處理器604可配置為通過(guò)存儲(chǔ)接口624與一個(gè)或多個(gè)存儲(chǔ)設(shè)備(例如RAM 626、ROM 628等)進(jìn)行通信。存儲(chǔ)接口624可采用串行高級(jí)技術(shù)連接(SATA)、集成驅(qū)動(dòng)電子設(shè)備(IDE)、IEEE 1394、通用串行總線(USB)、光纖通道、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)等連接協(xié)議連接至存儲(chǔ)設(shè)備630,該存儲(chǔ)設(shè)備包括,但不限于,存儲(chǔ)器驅(qū)動(dòng)器、可移除磁盤驅(qū)動(dòng)器等。所述存儲(chǔ)器驅(qū)動(dòng)器還可包括磁鼓、磁盤驅(qū)動(dòng)器、磁光驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器、獨(dú)立磁盤冗余陣列(RAID)、固態(tài)存儲(chǔ)設(shè)備、固態(tài)驅(qū)動(dòng)器等。

存儲(chǔ)設(shè)備630可存儲(chǔ)一系列程序或數(shù)據(jù)庫(kù)組件,包括但不限于,操作系統(tǒng)632、用戶界面634、網(wǎng)頁(yè)瀏覽器636、郵件服務(wù)器638、郵件客戶端640、用戶/應(yīng)用程序數(shù)據(jù)642(例如本發(fā)明中所討論的任何數(shù)據(jù)變量或數(shù)據(jù)記錄)等。操作系統(tǒng)632可便于計(jì)算機(jī)系統(tǒng)602的資源管理和運(yùn)行。操作系統(tǒng)632例如包括,但不限于,蘋果Macintosh OS X、Unix、類Unix系統(tǒng)套件(例如伯克利軟件套件(BSD)、FreeBSD、NetBSD、OpenBSD等)、Linux套件(如紅帽(Red Hat)、Ubuntu、Kubuntu等)、IBM OS/2、微軟Windows(XP,Vista/7/8等)、蘋果iOS、谷歌(Google)安卓、黑莓操作系統(tǒng)等。用戶界面634可便于程序組件通過(guò)文本或圖形工具進(jìn)行顯示、執(zhí)行、互動(dòng)、操控或操作。例如,用戶界面可在以可操作方式連接至計(jì)算機(jī)系統(tǒng)602的顯示系統(tǒng)上提供計(jì)算機(jī)交互界面元件,如光標(biāo)、圖標(biāo)、復(fù)選框、菜單、滾動(dòng)條、窗口、窗口部件等。還可采用圖形用戶界面(GUI),包括但不限于,蘋果Macintosh操作系統(tǒng)的 Aqua、IBM OS/2、微軟Windows(例如Aero、Metro等)、Unix X-Windows、網(wǎng)頁(yè)界面庫(kù)(例如ActiveX、Java、Javascript、AJAX、HTML、Adobe Flash等)等。

在一些實(shí)施方式中,計(jì)算機(jī)系統(tǒng)602可執(zhí)行網(wǎng)頁(yè)瀏覽器636存儲(chǔ)的程序組件。網(wǎng)頁(yè)瀏覽器636可以為超文本瀏覽應(yīng)用程序,如微軟網(wǎng)絡(luò)探路者(Internet Explorer)、谷歌瀏覽器(Chrome)、謀智火狐(MozillaFirefox)、蘋果瀏覽器(Safari)等??墒褂肏TTPS(安全超文本傳輸協(xié)議)、安全套接字層(SSL)、安全傳輸層(TLS)等實(shí)現(xiàn)安全網(wǎng)頁(yè)瀏覽。網(wǎng)頁(yè)瀏覽器可使用AJAX、DHTML、Adobe Flash、JavaScript、Java、應(yīng)用程序編程接口(API)等工具。在一些實(shí)施方式中,計(jì)算機(jī)系統(tǒng)602可執(zhí)行郵件服務(wù)器638存儲(chǔ)的程序組件。郵件服務(wù)器638可以為微軟Exchange等因特網(wǎng)郵件服務(wù)器。所述郵件服務(wù)器可使用ASP、ActiveX、ANSI C++/C#、微軟.NET、CGI腳本、Java、JavaScript、PERL、PHP、Python、WebObjects等工具。所述郵件服務(wù)器還可使用因特網(wǎng)信息訪問(wèn)協(xié)議(IMAP)、郵件應(yīng)用程序編程接口(MAPI)、微軟Exchange、郵局協(xié)議(POP)、簡(jiǎn)單郵件傳輸協(xié)議(SMTP)等通信協(xié)議。在一些實(shí)施方式中,計(jì)算機(jī)系統(tǒng)602可執(zhí)行郵件客戶端640存儲(chǔ)的程序組件。郵件客戶端640可以為蘋果Mail、微軟Entourage、微軟Outlook、謀智Thunderbird等郵件查看程序。

在一些實(shí)施方式中,計(jì)算機(jī)系統(tǒng)602可存儲(chǔ)用戶/應(yīng)用程序數(shù)據(jù)642,例如本發(fā)明中所述數(shù)據(jù)、變量、記錄等。此類數(shù)據(jù)庫(kù)可以為容錯(cuò)、關(guān)系、可擴(kuò)展、安全數(shù)據(jù)庫(kù),例如甲骨文(Oracle)或賽貝斯(Sybase)?;蛘?,上述數(shù)據(jù)庫(kù)可通過(guò)數(shù)組、散列、鏈表、結(jié)構(gòu)、結(jié)構(gòu)化文本文件(例如XML)、表格等標(biāo)準(zhǔn)化數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),或者實(shí)施為面向?qū)ο蟮臄?shù)據(jù)庫(kù)(例如通過(guò)ObjectStore、Poet、Zope等)。上述數(shù)據(jù)庫(kù)可以為合并或分布數(shù)據(jù)庫(kù),有時(shí)分布于本發(fā)明所討論的上述各種計(jì)算機(jī)系統(tǒng)之間。應(yīng)該理解的是,可以以任何可工作的組合形式對(duì)上述任何計(jì)算機(jī)或數(shù)據(jù)庫(kù)組件的結(jié)構(gòu)及操作進(jìn)行組合、合并或分布。

可以理解的是,為了清楚起見(jiàn),以上已參考不同功能單元和處理器對(duì)本發(fā)明實(shí)施方式進(jìn)行了描述。然而,顯而易見(jiàn)的是,在不影響本發(fā)明的前提下, 還可將功能在不同功能單元、處理器或域之間進(jìn)行任何合適的分布。例如,描述為由各不同處理器或控制器實(shí)現(xiàn)的功能也可由同一處理器或控制器實(shí)現(xiàn)。因此,所指的特定功能單元僅視為指代用于提供所描述功能的合適手段,而不嚴(yán)格表示邏輯上或物理上的結(jié)構(gòu)或組織。

替代實(shí)施方式

在一種替代實(shí)施方式中,根據(jù)從所述頁(yè)映射表獲取的信息,識(shí)別一組目標(biāo)存儲(chǔ)塊,從而使得每個(gè)存儲(chǔ)塊中的無(wú)效頁(yè)數(shù)大于或等于最大無(wú)效頁(yè)閾值數(shù)。也就是說(shuō),對(duì)無(wú)效頁(yè)數(shù)超出給定閾值的存儲(chǔ)塊進(jìn)行選擇。例如,閃存存儲(chǔ)器內(nèi)的存儲(chǔ)塊總數(shù)為24,而所述最大無(wú)效頁(yè)閾值數(shù)可固定為40。其中,此24個(gè)存儲(chǔ)塊中的12個(gè)具有多于40個(gè)的無(wú)效頁(yè),因此被識(shí)別為所述一組目標(biāo)存儲(chǔ)塊。在只有當(dāng)所述閃存存儲(chǔ)器中僅剩下一個(gè)閑置存儲(chǔ)塊時(shí)才啟動(dòng)上述垃圾回收操作的情形中,所述最大無(wú)效頁(yè)閾值數(shù)將為零。其后,從所述一組目標(biāo)存儲(chǔ)塊中選擇子集。所述子集的選擇方式使得該子集內(nèi)的每個(gè)存儲(chǔ)塊的有效頁(yè)數(shù)小于或等于最小無(wú)效頁(yè)閾值數(shù)。例如,所述閃存存儲(chǔ)器內(nèi)的存儲(chǔ)塊總數(shù)為24,而所述最小無(wú)效頁(yè)閾值數(shù)可固定為40。其中,在406中識(shí)別為所述一組存儲(chǔ)塊的12個(gè)存儲(chǔ)塊當(dāng)中,只有六個(gè)存儲(chǔ)塊具有小于或等于40個(gè)有效頁(yè)。因此,這六個(gè)存儲(chǔ)塊選擇為所述子集。通過(guò)額外增添存儲(chǔ)塊內(nèi)閑置頁(yè)閾值數(shù)條件,可對(duì)由上述方法選出的子集作進(jìn)一步的調(diào)整。因此,在此情形中,對(duì)待回收存儲(chǔ)塊的選擇可取決于對(duì)三個(gè)條件的滿足,即無(wú)效頁(yè)閾值數(shù)、有效頁(yè)閾值數(shù)和存儲(chǔ)塊內(nèi)閑置頁(yè)閾值數(shù)。

上述之后,對(duì)所述一組目標(biāo)存儲(chǔ)塊進(jìn)行回收。在該一組目標(biāo)存儲(chǔ)塊內(nèi)的有效頁(yè)總數(shù)小于或等于所述存儲(chǔ)驅(qū)動(dòng)器的一個(gè)或多個(gè)閑置存儲(chǔ)塊中的總頁(yè)數(shù)。換言之,所述一組目標(biāo)存儲(chǔ)塊的選擇取決于閑置存儲(chǔ)塊的可用性。實(shí)施上述選擇的原因在于,為了對(duì)存儲(chǔ)塊進(jìn)行回收,必須在將該存儲(chǔ)塊回收轉(zhuǎn)化為閑置存儲(chǔ)塊之前首先將該存儲(chǔ)塊內(nèi)的有效頁(yè)復(fù)制至閑置存儲(chǔ)塊內(nèi)。因此,當(dāng)需要對(duì)一個(gè)以上的存儲(chǔ)塊進(jìn)行回收時(shí),僅對(duì)所有有效頁(yè)均可被復(fù)制至可用閑置存儲(chǔ)塊內(nèi)的存儲(chǔ)塊進(jìn)行選擇。

作為上述實(shí)施例的延續(xù),有12個(gè)存儲(chǔ)塊因其每一個(gè)內(nèi)的無(wú)效頁(yè)數(shù)均超出 所述最大無(wú)效頁(yè)閾值數(shù)(60)而被識(shí)別為所述一組存儲(chǔ)塊。此外,在所述存儲(chǔ)驅(qū)動(dòng)器中僅有一個(gè)具有128個(gè)頁(yè)的閑置存儲(chǔ)塊。對(duì)于待回收存儲(chǔ)塊,其有效頁(yè)需被首先復(fù)制至閑置存儲(chǔ)塊內(nèi)。因此,在此實(shí)施例中,只對(duì)五個(gè)存儲(chǔ)塊進(jìn)行回收。這是因?yàn)?,這些存儲(chǔ)塊內(nèi)的有效頁(yè)總數(shù)小于且?guī)缀醯扔?28。由于所述閑置存儲(chǔ)塊已不具有足夠納入其他存儲(chǔ)塊內(nèi)有效頁(yè)的空間,因此除了上述五個(gè)存儲(chǔ)塊,無(wú)法再對(duì)其他存儲(chǔ)塊進(jìn)行選擇。在一種實(shí)施方式中,可按照無(wú)效頁(yè)數(shù)的降序,對(duì)待回收存儲(chǔ)塊進(jìn)行選擇。換句話說(shuō),具有最大無(wú)效頁(yè)數(shù)的存儲(chǔ)塊為第一個(gè)待回收存儲(chǔ)塊,而具有第二大無(wú)效頁(yè)數(shù)的存儲(chǔ)塊為下一個(gè)待回收存儲(chǔ)塊。

本發(fā)明的各種實(shí)施方式提供了存儲(chǔ)驅(qū)動(dòng)器的存儲(chǔ)管理方法和系統(tǒng)。所述垃圾回收模塊根據(jù)所述頁(yè)映射表中的最大無(wú)效頁(yè)數(shù)和最小有效頁(yè)數(shù)選擇待回收存儲(chǔ)塊。如此,可使更多無(wú)效頁(yè)閑置,并減少需被復(fù)制至閑置存儲(chǔ)塊內(nèi)的有效頁(yè)數(shù),從而提高所述固態(tài)驅(qū)動(dòng)器的輸入/輸出性能,并且在給定時(shí)間內(nèi)釋放更大空間。此外,由于一次垃圾回收操作可使一個(gè)以上存儲(chǔ)塊閑置,系統(tǒng)資源使用得到優(yōu)化,從而避免所述固態(tài)驅(qū)動(dòng)器中的寫入操作發(fā)生延遲,而且避免用戶體驗(yàn)受到影響。

本說(shuō)明書已對(duì)存儲(chǔ)驅(qū)動(dòng)器的存儲(chǔ)管理方法和系統(tǒng)進(jìn)行了描述。所示各步驟用于描述所公開(kāi)的例示實(shí)施方式,而且應(yīng)該預(yù)見(jiàn)到的是,技術(shù)的不斷發(fā)展將改變特定功能的實(shí)現(xiàn)方式。所呈現(xiàn)的各實(shí)施例用于說(shuō)明而非限制目的。此外,為了描述的方便性,本文對(duì)各功能構(gòu)建模塊邊界的定義為任意性的。只要上述功能及其關(guān)系能夠獲得適當(dāng)執(zhí)行,也可按其他方式定義邊界。根據(jù)本申請(qǐng)的啟示內(nèi)容,替代方案(包括本申請(qǐng)所述方案的等同方案、擴(kuò)展方案、變形方案、偏差方案等)對(duì)于相關(guān)領(lǐng)域技術(shù)人員是顯而易見(jiàn)的。這些替代方案均落入所公開(kāi)實(shí)施方式的范圍和精神內(nèi)。

此外,一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可用于實(shí)施本發(fā)明的實(shí)施方式。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)是指可對(duì)處理器可讀取的信息或數(shù)據(jù)進(jìn)行存儲(chǔ)的任何類型的物理存儲(chǔ)器。因此,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可對(duì)由一個(gè)或多個(gè)處理器執(zhí)行的指令進(jìn)行存儲(chǔ),包括用于使處理器執(zhí)行根據(jù)本申請(qǐng)實(shí)施方式的步驟或階段 的指令?!坝?jì)算機(jī)可讀介質(zhì)”一詞應(yīng)理解為包括有形物件且不包括載波及瞬態(tài)信號(hào),即為非臨時(shí)性介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、易失性存儲(chǔ)器、非易失性存儲(chǔ)器、硬盤驅(qū)動(dòng)器、只讀光盤存儲(chǔ)器(CD-ROM)、DVD、閃存驅(qū)動(dòng)器、磁盤以及其他任何已知物理存儲(chǔ)介質(zhì)。

以上公開(kāi)內(nèi)容及實(shí)施例旨在于僅視為示例性內(nèi)容及實(shí)施例,所公開(kāi)實(shí)施方式的真正范圍和精神由以下權(quán)利要求指出。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1