專利名稱:快閃存儲(chǔ)器系統(tǒng)及其垃圾收集方法
快閃存儲(chǔ)器系統(tǒng)及其垃圾收集方法優(yōu)先權(quán)聲明本專利申請(qǐng)要求于2006年11月3日提交的韓國(guó)專利申請(qǐng)2006-108520的優(yōu)先權(quán),該申請(qǐng)整個(gè)內(nèi)容在此引入作為參考。技術(shù)領(lǐng)域示例實(shí)施例涉及存儲(chǔ)裝置,例如,涉及用于管理非易失性和電可擦除半 導(dǎo)體存儲(chǔ)器裝置,例如,快閃存儲(chǔ)器的裝置和方法。
背景技術(shù):
非易失性存儲(chǔ)器裝置可以在沒有提供驅(qū)動(dòng)電源的情況下保留存儲(chǔ)在單元 (cell)中的數(shù)據(jù)。在非易失性存儲(chǔ)器裝置中,快閃存儲(chǔ)器因?yàn)榫哂型瑫r(shí)電擦 除單元的功能而廣泛用于各種應(yīng)用,例如計(jì)算機(jī),存儲(chǔ)卡等等。隨著對(duì)例如 蜂窩電話、PDA、數(shù)碼相機(jī)等等便攜式信息裝置使用的增加,快閃存儲(chǔ)器代 替硬盤被廣泛地用作存儲(chǔ)裝置。快閃存儲(chǔ)器可以根據(jù)單元和位線的連接結(jié)構(gòu)被分成N OR型和N AND型。 因?yàn)樽x取速度較快而寫入操作較慢,因此NOR型快閃存儲(chǔ)器可以用作代碼存 儲(chǔ)器。因?yàn)閷懭胨俣容^快并且單位面積的價(jià)格較低,因此NAND型快閃存儲(chǔ) 器可以用作大容量存儲(chǔ)裝置。為了在快閃存儲(chǔ)器中寫入數(shù)據(jù),首先執(zhí)行擦除 操作,并且快閃存儲(chǔ)器可以具有這樣一種特性,即擦除單元多于寫入單元。 這個(gè)特性可能使得將快閃存儲(chǔ)器用作主存儲(chǔ)器變得更加困難。在快閃存儲(chǔ)器 被用作輔助存儲(chǔ)裝置的情況下,這樣一種特性也許會(huì)干擾硬盤的文件系統(tǒng)。 因此,可以在文件系統(tǒng)和快閃存儲(chǔ)器之間4吏用閃存轉(zhuǎn)換層(flash translation layer)(在下文中稱為"FTL"),以便隱藏快閃存儲(chǔ)器的擦除操作。FTL的功能可以包括邏輯地址-物理地址映射信息管理、由于意外的電源 中斷導(dǎo)致的數(shù)據(jù)保存管理、磨損(wear-out)管理等等。在標(biāo)題為"FLASH FILE SYSTEM"的美國(guó)專利No. 5404485 、標(biāo)題為"FLASH FILE SYSTEM OPTIMIZED FOR PAGE MODE FLASH TECHNOLOGIES"的美國(guó)專利No.5937425、以及標(biāo)題為"METHOD OF DRIVING REMAPPING IN FLASH MEMORY AND FLASH MEMORY ARCHITECTURE SUITABLE THEREFOR"的美囯專利No. 6381176中公開了映射函數(shù)的例子,它們的整 個(gè)內(nèi)容在此引入作為參考。在通過塊單元訪問快閃存儲(chǔ)器的情況下,快閃存儲(chǔ)器被分成多個(gè)存儲(chǔ)塊。 連續(xù)分配給存儲(chǔ)塊的編號(hào)稱為物理塊號(hào),并且用戶已知的劃分的塊的虛擬編 號(hào)稱為邏輯塊號(hào)。用于提供在邏輯塊號(hào)和物理塊號(hào)之間的映射的技術(shù)可以包 括塊映射技術(shù)、扇區(qū)映射技術(shù)和日志(log)映射技術(shù)。使用FTL的映射技術(shù), 可以把邏輯上連續(xù)地址的數(shù)據(jù)存儲(chǔ)在物理上不同的位置。在主機(jī)相對(duì)于預(yù)先寫入了數(shù)據(jù)的邏輯塊號(hào)發(fā)布寫入命令的情況下,F(xiàn)TL 可以使用將來自主機(jī)的數(shù)據(jù)寫入另 一位置和無效之前寫入的數(shù)據(jù)的技術(shù)。由 于這個(gè)FTL特性,會(huì)創(chuàng)建被無效數(shù)據(jù)填充的塊。在下文中,這樣的塊稱為"垃 圾塊"。垃圾塊可以被擦除以便轉(zhuǎn)換成可寫狀態(tài),并且可以被再使用,這被稱 作"垃圾收集"或"回收"??扉W存儲(chǔ)器的性能可以取決于這種操作執(zhí)行得有 多快。例如,在由于系統(tǒng)使用時(shí)間長(zhǎng)而使存儲(chǔ)的數(shù)據(jù)量增加并且可用的保留 塊的數(shù)目減少的情況中,垃圾收集的性能會(huì)變得更加重要。與快閃存儲(chǔ)器的性能一樣,它的可靠性也是有實(shí)際重要性的??扉W存儲(chǔ) 器可以反復(fù)地編程和擦除,并且每個(gè)塊的編程-擦除周期會(huì)被限制為給定數(shù) 量。例如,在認(rèn)為一個(gè)塊變得不可用之前,可以執(zhí)行擦除操作一萬次。如果 塊磨損,可能會(huì)在快閃存儲(chǔ)器的部分區(qū)域出現(xiàn)性能降低或使用損失。數(shù)據(jù)損 失或數(shù)據(jù)存儲(chǔ)能力喪失可能會(huì)給快閃存儲(chǔ)器系統(tǒng)的用戶帶來壞的影響??扉W存儲(chǔ)器系統(tǒng)中的塊(或物理位置)的磨損主要由擦除周期確定,并 且快閃存儲(chǔ)器可能在大約105次擦除之后不能再用。發(fā)明內(nèi)容示例實(shí)施例提供用于更加均勻地將存儲(chǔ)塊(或物理位置)的壽命周期分 布到快閃存儲(chǔ)器的整個(gè)區(qū)域中以延長(zhǎng)快閃存儲(chǔ)器的壽命的技術(shù)。在示例實(shí)施例中,提供垃圾收集方法,其包括將權(quán)重應(yīng)用到至少兩個(gè)因 子中的每一個(gè)以計(jì)算垃圾收集成本;使用計(jì)算的垃圾收集成本配置散列表; 從散列表中搜索具有最低垃圾收集成本的塊;以及對(duì)搜索到的塊執(zhí)行垃圾收 集。在示例實(shí)施例中,提供一種存儲(chǔ)器系統(tǒng),其包括主機(jī);快閃存儲(chǔ)器;以及接口裝置,其被配置為響應(yīng)于來自于主機(jī)的快閃存儲(chǔ)器的寫請(qǐng)求進(jìn)行操 作,其中依據(jù)寫請(qǐng)求,接口裝置被配置為將權(quán)重應(yīng)用到至少兩個(gè)或更多因子 中的每一個(gè)以計(jì)算垃圾收集成本,并且使用計(jì)算的垃圾收集成本來配置散列表;并且其中接口裝置被配置為從散列表中搜索具有最低垃圾收集成本的塊并且對(duì)搜索到的塊執(zhí)行垃圾收集。
圖1是示出根據(jù)示例實(shí)施例的快閃存儲(chǔ)器系統(tǒng)的方框圖。圖2是用于描述根振示例實(shí)施例的計(jì)算垃圾收集成本的方法的流程圖。圖4是示出圖3中舉例說明的數(shù)據(jù)列表的示例圖表。圖5是用于描述根據(jù)示例實(shí)施例的垃:歐收集方法的示圖。具4本實(shí)施方式從結(jié)合附圖進(jìn)行的詳細(xì)說明中將會(huì)清楚地理解本發(fā)明的示例實(shí)施例。現(xiàn)在將參考示出了本發(fā)明的一些示例實(shí)施例的附圖更全面地描述本發(fā)明 的各種示例實(shí)施例。在附圖中,為清楚起見會(huì)放大層和區(qū)域的厚度。在此公開本發(fā)明詳細(xì)的示例性實(shí)施例。然而,在此公開的特定的結(jié)構(gòu)和 功能細(xì)節(jié)僅僅是代表性的,是為了描述本發(fā)明的示例實(shí)施例。然而,本發(fā)明 可以具體實(shí)現(xiàn)為許多可替換的形式,并且本發(fā)明不應(yīng)該被看作是僅僅局限于 這里所闡述的實(shí)施例。因此,雖然本發(fā)明的示例實(shí)施例能夠具有各種修改和替代形式,但是仍 在附圖中以舉例的方式示出了本發(fā)明的實(shí)施例,并且將在這里對(duì)其進(jìn)行詳細(xì) 地描述。然而,應(yīng)該理解的是,沒有意圖將本發(fā)明的示例實(shí)施例限制為公開 的具體形式,相反地,本發(fā)明示例實(shí)施例將覆蓋屬于本發(fā)明范圍內(nèi)的所有修 改、等價(jià)物和替換物。在整個(gè)對(duì)附圖的描迷中,類似的號(hào)碼指示類似的元件。將會(huì)理解,盡管可以在這里使用術(shù)語(yǔ)第一、第二等等來描述不同的元素, 但這些元素不應(yīng)該受限于這些術(shù)語(yǔ)。這些術(shù)語(yǔ)僅僅用于區(qū)分一個(gè)元素與另一 個(gè)元素。例如,第一元素可以被稱作第二元素,并且類似地,第二元素也可 以被稱作第一元素,而不會(huì)脫離本發(fā)明示例實(shí)施例的范圍。正如在這里使用的,術(shù)語(yǔ)"和/或"包括一個(gè)或多個(gè)相關(guān)列出項(xiàng)的任意一個(gè)及其全部組合。將會(huì)理解,當(dāng)元件被稱為是"連接"或"耦合"到另一個(gè)元件時(shí),它可 以被直接連接或耦合到另一元件,或者可以存在居間的元件。與此相反,當(dāng) 元件被稱為是"直接連接"或"直接耦合"到另一個(gè)元件時(shí),不會(huì)存在居間 的元件。其它用于描述元件之間關(guān)系的詞語(yǔ)應(yīng)該以相似的方式進(jìn)行解l奪(例 如,"在...之間"與"直接在...之間"、"相鄰"與"直接相鄰"等等)。在這里使用的術(shù)語(yǔ)僅僅用于描述具體的實(shí)施例的目的,并且不意圖限制 本發(fā)明的示例實(shí)施例。正如在這里使用的,除非上下文清楚地指示其它含義, 否則單數(shù)形式的"一"、"一個(gè)"等意圖也包括復(fù)數(shù)形式。將會(huì)進(jìn)一步理解, 當(dāng)在這里使用時(shí),術(shù)語(yǔ)"包括"和/或"包含"指示所述特征、整體、步驟、 操作、元件和/或組件的存在,但是不排除存在或添加一個(gè)或更多其它特征、 整^L、步驟、操作、元件、組件和/或它們的組合。還應(yīng)注意,在一些可替換的實(shí)現(xiàn)方式中,提到的功能/動(dòng)作可以以附圖中 提到的順序以外的順序發(fā)生。例如,取決于所涉及的功能/動(dòng)作,連續(xù)示出的 兩個(gè)圖實(shí)際上可以基本同時(shí)地執(zhí)行,或者有時(shí)可以以相反順序執(zhí)行。此外,使用詞語(yǔ)"復(fù)合物"指的是單個(gè)復(fù)合物或者多個(gè)復(fù)合物。這些詞 語(yǔ)被用于表示一個(gè)或多個(gè)復(fù)合物,但是也可以僅僅指示單個(gè)復(fù)合物?,F(xiàn)在,為了更具體地描述本發(fā)明的示例實(shí)施例,將參考附圖詳細(xì)說明本 發(fā)明的不同實(shí)施例。然而,本發(fā)明不局限于示例實(shí)施例,而是可以以各種形 式具體實(shí)現(xiàn)。在附圖中,如果一層形成在另 一層或襯底之上,這指的是所述 層直接形成在另 一層或襯底上,或者有第三層插入在它們之間。在下列描述 中,相同的附圖標(biāo)記表示相同的元件。盡管本發(fā)明的示例實(shí)施例已經(jīng)出于舉例說明的目的被公開,但是本領(lǐng)域 技術(shù)人員將會(huì)理解,在沒有脫離如在所附的權(quán)利要求書中公開的本發(fā)明的范 圍和精神的情況下,可以進(jìn)行各種修改、添加和替換。現(xiàn)在將在下文中參考附圖更充分地描述本發(fā)明,附圖中示出了本發(fā)明的示例實(shí)施例。然而,本發(fā)明可以具體體現(xiàn)為許多不同的形式,并且不應(yīng)該把它看作是受限于這里闡述的實(shí)施例。相反,提供這些實(shí)施例是為了使本公開內(nèi)容徹底和完整,向本領(lǐng)域技術(shù)人員充分表達(dá)本發(fā)明的范圍。在附圖中,自始至終類似的數(shù)字指的是同樣的元件。圖1是示出根據(jù)示例實(shí)施例的快閃存儲(chǔ)器系統(tǒng)的方框圖。參見圖1,根據(jù)示例實(shí)施例的快閃存儲(chǔ)器系統(tǒng)iooo可以包括主機(jī)100和 外部存儲(chǔ)裝置200。外部存儲(chǔ)裝置200可以由接口裝置300和快閃存儲(chǔ)器400 構(gòu)成。接口裝置300可以被構(gòu)造為當(dāng)從主機(jī)100請(qǐng)求對(duì)快閃存儲(chǔ)器400的訪 問時(shí)控制快閃存儲(chǔ)器400。接口裝置300可以管理快閃存儲(chǔ)器400的映射信 息以便快閃存儲(chǔ)器400被用作像SRAM/HDD那樣的讀取、寫入和擦除操作 更自由地執(zhí)行的介質(zhì)。接口裝置300可以包括主機(jī)接口 310、中央處理單元(CPU) 320、工作 存儲(chǔ)器330、緩沖存儲(chǔ)器340和/或閃存控制器350。接口 310可以配置為與 主機(jī)200接口,并且CPU 320可以控制外部存儲(chǔ)裝置200的整體操作。工作 存儲(chǔ)器330可被用于存儲(chǔ)執(zhí)行FTL功能所必需的軟件以及存儲(chǔ)快閃存儲(chǔ)器 400的映射信息??扉W存儲(chǔ)器400的映射信息可以存儲(chǔ)在快閃存儲(chǔ)器400的 任何區(qū)城(例如,元區(qū)域)中,并且可以在加電時(shí)4皮自動(dòng)地加載到工作存儲(chǔ) 器330中。執(zhí)行FTL功能所需的軟件可以被存儲(chǔ)在快閃存儲(chǔ)器400的任何區(qū) 域(例如引導(dǎo)(boot)代碼區(qū)域)中,并且可以在加電時(shí)^皮自動(dòng)地加載到工 作存儲(chǔ)器330。在示例實(shí)施例中,工作存儲(chǔ)器330可被用于存儲(chǔ)在快閃存儲(chǔ)器400中執(zhí) 行垃圾收集所需要的信息,其在下文中被稱為垃圾收集成本??梢允褂么鎯?chǔ) 在工作存儲(chǔ)器330的散列表中的垃圾收集成本來執(zhí)行垃圾收集。只要快閃存 儲(chǔ)器400的寫操作被執(zhí)行或只要它結(jié)束,就可以更新垃圾收集成本。正如本領(lǐng)域技術(shù)人員所清楚了解的,能夠使用關(guān)鍵值進(jìn)行搜索的結(jié)構(gòu)被 稱作"散列表",并且使用散列表的搜索被稱作"散列"(hashing)。對(duì)散列表 中的記錄可以使用作為索引的通過用散列函數(shù)計(jì)算接收的關(guān)鍵值而獲得的散 列地址來進(jìn)行訪問。由于它的高速,使用散列表的搜索是有利的。將在下面 詳細(xì)說明計(jì)算垃圾收集成本的操作和使用計(jì)算的垃圾收集成本的垃圾收集方 法。參見圖1,當(dāng)在快閃存儲(chǔ)器400中存儲(chǔ)數(shù)據(jù)時(shí)或當(dāng)從快閃存儲(chǔ)器400中 讀出數(shù)據(jù)時(shí),緩沖存儲(chǔ)器340可被用于臨時(shí)存儲(chǔ)數(shù)據(jù)。例如,緩沖存儲(chǔ)器340 可以具有與快閃存儲(chǔ)器400的頁(yè)大小相對(duì)應(yīng)的存儲(chǔ)容量。工作存儲(chǔ)器320和 緩沖存儲(chǔ)器330可以用易失性存儲(chǔ)器,例如SRAM來實(shí)現(xiàn)。也可以使用一個(gè) 存儲(chǔ)器(例如,SRAM)來實(shí)現(xiàn)存儲(chǔ)器320和330。閃存控制器350可以被配 置成在CPU320的控制下控制對(duì)快閃存儲(chǔ)器400的訪問操作(例如讀取、寫入和擦除操作)??扉W存儲(chǔ)器400可以包括包含多個(gè)存儲(chǔ)塊的存儲(chǔ)單元陣列,每個(gè)存儲(chǔ)塊可以進(jìn)一步包括多個(gè)頁(yè)。 一個(gè)頁(yè)可以對(duì)應(yīng)于一個(gè)扇區(qū)或多個(gè)扇區(qū)。如上所述, 存儲(chǔ)單元陣列的存儲(chǔ)塊可以被分成數(shù)據(jù)區(qū)域、日志區(qū)域和元區(qū)域。存儲(chǔ)單元陣列可以進(jìn)一步包括用于存儲(chǔ)引導(dǎo)代碼和/或FTL的存儲(chǔ)塊。在示例實(shí)施例 中,快閃存儲(chǔ)器400可以具有陣列結(jié)構(gòu),但是不受限于此。存儲(chǔ)單元陣列的 結(jié)構(gòu)可以根據(jù)FTL的映射技術(shù)以多種方法實(shí)現(xiàn)。如上所述,由于快閃存儲(chǔ)器裝置的擦除前寫入(write-before-erase)的特 性,用于修正舊塊的技術(shù),即垃圾收集也許很重要。此外,快閃存儲(chǔ)器的資 源可能是有限的,并且它的可靠性與是否適當(dāng)?shù)胤峙洳脸螖?shù)有關(guān)。在示例 實(shí)施例中,可以通過較少的工作來恢復(fù)空閑塊以便快速地處理主機(jī)的寫入命 令。因此,在示例實(shí)施例中,可以預(yù)先計(jì)算用于執(zhí)行垃圾收集的成本,并且 可以根據(jù)計(jì)算的成本進(jìn)行垃圾收集。因而,可以更均勻地管理快閃存儲(chǔ)器的 再使用頻率并在整個(gè)存儲(chǔ)器中分配擦除分布。示例實(shí)施例可以使用利用散列 表的散列技術(shù)作為用于管理計(jì)算的垃圾收集成本的方法。由于搜索散列表的 速度,散列技術(shù)可以使空閑塊能夠被快速地生成。圖2是用于描迷根據(jù)示例實(shí)施例的計(jì)算垃圾收集成本的方法的流程圖。 可以響應(yīng)于從主機(jī)提供的寫入命令通過FTL計(jì)算在圖2中舉例說明的垃圾收 集成本。可替換地,可以在進(jìn)行寫操作時(shí)或執(zhí)行寫操作后計(jì)算垃圾收集成本。參見圖4,在計(jì)算垃圾收集成本之前,在S1000,可以選擇用于計(jì)算垃圾 收集成本的因子。在S1100,可以相對(duì)于每一個(gè)選擇的因子定義權(quán)重。反映 到垃圾收集成本的因子和權(quán)重值可以根據(jù)快閃存儲(chǔ)器的特征而彼此不同地定 義。例如,指示快閃存儲(chǔ)器的壽命的磨損水平信息和指示每塊有效頁(yè)數(shù)的信 息可以用作用于計(jì)算成本的因子。如果磨損水平的重要性程度相對(duì)較高,則 0.7的權(quán)重可以應(yīng)用于磨損水平,并且0.3的權(quán)重可以應(yīng)用于每塊有效頁(yè)數(shù)。 在示例實(shí)施例中,應(yīng)用于因子的權(quán)重的和被設(shè)置為1.0 (例如,0.7+0.3=1.0)。在S1200,可以使用定義的因子和各個(gè)因子的權(quán)重開相對(duì)于每個(gè)物理塊 號(hào)PBN計(jì)算垃圾收集成本CostpBN。可以通過下列等式計(jì)算成本。CostpBN = S(Factorn X Weighty)其中,CostpBN指示與物理塊號(hào)相對(duì)應(yīng)的垃圾收集成本,F(xiàn)actorn指示n個(gè)因子,Weightfet指示設(shè)置給每個(gè)因子的權(quán)重。通過該等式計(jì)算的垃圾收集成本CostPBN的低值指的是對(duì)應(yīng)的塊的擦除次數(shù)較小。通過該等式計(jì)算的垃圾收集 成本CostPBN的高值指的是對(duì)應(yīng)的塊的擦除次數(shù)較高。通過該等式計(jì)算的垃圾 收集成本C0StPBN的較低值指的是對(duì)應(yīng)的塊的有效頁(yè)數(shù)較小。通過該等式計(jì)算 的垃圾收集成本CostPBN的較高值指的是對(duì)應(yīng)的塊的有效頁(yè)數(shù)較高。在步驟S1300,所計(jì)算的各個(gè)物理塊號(hào)的垃圾收集成本可以存儲(chǔ)在散列表中。在示例實(shí)施例中,可以使用具有存儲(chǔ)在散列表中的具有最低值的垃圾收集成本的物 理塊來進(jìn)行垃圾收集。因而,可以首先對(duì)擦除次數(shù)和每塊有效頁(yè)數(shù)較小的塊 進(jìn)行垃圾收集。因此,快閃存儲(chǔ)器的性能和/或可靠性可以得到改提高。圖3是示出根據(jù)示例實(shí)施例的散列表的圖表,圖4是示出圖3中舉例說 明的數(shù)據(jù)列表的圖表。參照?qǐng)D3,根據(jù)示例實(shí)施例的散列表500可以包括散列索引510和主數(shù) 據(jù)列表530。在圖2中計(jì)算的垃圾收集成本值可以存儲(chǔ)在散列索引510中并 且具有0到N的值。例如,如果垃圾收集成本值的范圍是O到N,則散列表 的索引大小變成N+1。主數(shù)據(jù)列表530可以包括多個(gè)數(shù)據(jù)列表520,每個(gè)都對(duì)應(yīng)于索引。數(shù)據(jù) 列表520的示例配置在圖4中舉例說明。在示例實(shí)施例中示出了 一種示例, 其中使用雙鏈表方式配置每個(gè)數(shù)據(jù)列表520。從圖3和圖4處可了解到,每 個(gè)雙數(shù)據(jù)列表520可以包括指示下一節(jié)點(diǎn)的指針NEXT,和指示前一節(jié)點(diǎn)的 指針PREV。因此,可以前向和后向搜索列表??梢院苋菀椎剡M(jìn)行插入和刪 除節(jié)點(diǎn)。在示例實(shí)施例中,雙數(shù)據(jù)列表520的每個(gè)點(diǎn)可以包括兩個(gè)字節(jié)。分 別指示前一節(jié)點(diǎn)和下一節(jié)點(diǎn)的一對(duì)指針可以包括四個(gè)字節(jié)。然而,在圖3和 圖4中舉例說明的鏈表的形式不受上述示例的限制。例如,用于示例實(shí)施例 中的鏈表的配置可以實(shí)現(xiàn)為單鏈表或循環(huán)鏈表。返回到圖3,具有對(duì)應(yīng)的成本值的物理塊號(hào)(例如物理塊地址)可以存 儲(chǔ)在每個(gè)索引中。在示例實(shí)施例中, 一個(gè)物理塊號(hào)存儲(chǔ)在對(duì)應(yīng)的索引中。由 于各個(gè)物理塊號(hào)可以以鏈表的形式相互鏈接,因此盡管已知一個(gè)物理塊號(hào),例如,對(duì)應(yīng)于垃:改收集值"0"的索引OxFFOO對(duì)應(yīng)于物理塊號(hào)0x00F3。 物理塊號(hào)0x00F3的前一個(gè)物理塊號(hào)是0xFF00,物理塊號(hào)0x00F3的下一個(gè)物 理塊號(hào)是0x0004。物理塊號(hào)0x0004的下一個(gè)物理塊號(hào)是0x001 l,物理塊號(hào) 0x0011的下一個(gè)物理塊號(hào)是OxFFFF。在示例實(shí)施例中,以O(shè)xFFOO、 0x00F3、0x0004和0xFFFF這個(gè)次序排列物理塊號(hào),并且每一個(gè)物理塊號(hào)具有垃;及收 集成本值0。同樣地,物理塊號(hào)0x0010對(duì)應(yīng)于與垃:t及收集成本值(N-l)相對(duì)應(yīng) 的索引0xFF3F。物理塊號(hào)0x0010的前一個(gè)物理塊號(hào)是OxFFFF (也就是說, 空值(NULL)),并且物理塊號(hào)0x0010的下一個(gè)物理塊號(hào)是0x0082。物理塊 號(hào)0x0082的下一個(gè)物理塊號(hào)是OxOOFF,物理塊號(hào)0x00FF的下一個(gè)物理塊號(hào) 是OxFFFF。因?yàn)榫哂欣占杀局?到4的索引和具有垃圾收集成本值N 的索引沒有對(duì)應(yīng)的物理塊號(hào),因此可以分配'0xFFFF'狀態(tài)的值??梢砸?OxFFFF、 0x0010、 0x0082、 0x00FF和OxFFFF這種次序排列物理塊號(hào),并且 每一個(gè)物理塊號(hào)具有垃圾收集成本值(N-1)。圖5是用于描述根據(jù)示例實(shí)施例的垃圾收集方法的示圖。參見圖5,根據(jù)示例實(shí)施例中的垃圾收集方法,在S2000,從散列表530 中搜索具有最低成本的塊。搜索到的塊可以是將被用于垃圾收集的目標(biāo)塊。 在S2100,確定是否獲得(secure) N個(gè)塊作為搜索結(jié)果。如果是,則過程進(jìn) 行到S2200,其中相對(duì)于搜索到的N個(gè)塊進(jìn)行垃圾收集。如果否,則過程進(jìn) 行到S2000,其中從散列表530中搜索具有最低成本的塊。重復(fù)搜索操作直 到獲得N個(gè)塊為止??梢酝ㄟ^FTL的垃圾收集算法來確定將被用于垃圾收集的塊的數(shù)目(例 如,N),并且塊的數(shù)目可以改變。進(jìn)一步,在S2000,在搜索到成本值是M 的存儲(chǔ)塊為具有最低成本值的塊的情況中,具有該搜索到的塊的以鏈表形式 相互鏈接的塊可以被搜索以作為將被用于垃圾收集的塊。如果存在與成本值 M相對(duì)應(yīng)的N個(gè)存儲(chǔ)塊,則可以使用具有成本值M的N個(gè)存儲(chǔ)塊進(jìn)行垃圾 收集。另一方面,如果沒有與成本值M相對(duì)應(yīng)的N個(gè)存儲(chǔ)塊存在,則可以通 過額外地搜索具有成本值(M+l)的塊(或具有大于(M+l)的成本值的塊) 獲得N個(gè)存儲(chǔ)塊。然后,可以使用獲得的N個(gè)塊進(jìn)行垃圾收集。如上所述,散列表500和形成散列表500的主數(shù)據(jù)列表530的數(shù)據(jù)結(jié)構(gòu) 可以允許在垃圾收集成本的范圍內(nèi)的僅僅一次線性搜索。在線性搜索周期期 間,允許搜索時(shí)間為N次以搜索N個(gè)塊。如果垃圾收集成本不是由散列表形 成,則在全部搜索完將被用于垃圾收集的N個(gè)塊之前,要將需要N次的搜索 時(shí)間的線性搜索重復(fù)N次。因此,根據(jù)垃圾收集成本以散列表形式配置的示 例實(shí)施例有可能減少搜索將被用于垃圾收集的N個(gè)塊所花費(fèi)的時(shí)間。正如從上述描迷中所了解的,可以通過在整個(gè)存儲(chǔ)區(qū)域中更均勻地分配擦除分布和以更高的速度執(zhí)行垃圾收集,來提高快閃存儲(chǔ)器裝置的可靠性和/ 或性能。盡管結(jié)合附圖對(duì)示例實(shí)施例進(jìn)行了描述,但是示例實(shí)施例并不受限于此。 對(duì)于那些本領(lǐng)域技術(shù)人員將顯而易見的是,可以在沒有脫離所附的權(quán)利要求 書的范圍和精神的情況下對(duì)其進(jìn)行各種替換、修改和變化。
權(quán)利要求
1、一種垃圾收集方法,包括應(yīng)用一權(quán)重到至少兩個(gè)或更多因子中的每一個(gè),以計(jì)算垃圾收集成本;使用所計(jì)算的垃圾收集成本配置散列表;從所述散列表中搜索具有最低垃圾收集成本的塊;以及對(duì)搜索到的塊執(zhí)行垃圾收集。
2、 根據(jù)權(quán)利要求i所述的垃圾收集方法,其中所述因子中的每一個(gè)包括 至少磨損水平信息和每塊的有效頁(yè)數(shù)的信息中的任一個(gè)。
3、 根據(jù)權(quán)利要求i所述的垃圾收集方法,其中分配給所述因子的權(quán)重的 和具有i.o的值。
4、 根據(jù)權(quán)利要求i所述的垃圾收集方法,其中通過將相對(duì)于每個(gè)物理塊 的因子和權(quán)重的乘積相加來計(jì)算所述垃;及收集成本。
5、 根據(jù)權(quán)利要求l所述的址圾收集方法,其中所迷散列表包括與垃圾收集成本相對(duì)應(yīng)的多個(gè)數(shù)據(jù)列表。
6、 根據(jù)權(quán)利要求5所述的垃圾收集方法,其中所述多個(gè)數(shù)據(jù)列表中的每 一個(gè)都是鏈表。
7、 根據(jù)權(quán)利要求5所述的垃圾收集方法,其中所述多個(gè)數(shù)據(jù)列表中的每 一個(gè)是從單鏈表、雙鏈表和循環(huán)鏈表的組中選出的一個(gè)。
8、 根據(jù)權(quán)利要求l所述的垃圾收集方法,其中只要執(zhí)行對(duì)快閃存儲(chǔ)器裝 置的寫操作就更新所述垃圾收集成本。
9、 根據(jù)權(quán)利要求l所述的垃圾收集方法,其中只要快閃存儲(chǔ)器裝置的寫 操作結(jié)束就更新所述垃圾收集成本。
10、 根據(jù)權(quán)利要求1所述的垃圾收集方法,其中基于增加垃圾收集成本 來檢測(cè)塊。
11、 根據(jù)權(quán)利要求10所述的垃圾收集方法,其中在垃圾收集期間,對(duì)N 個(gè)塊執(zhí)行所述垃圾收集,其中N是大于1的整數(shù)。
12、 一種存儲(chǔ)器系統(tǒng),包括 主機(jī);快閃存儲(chǔ)器;以及接口裝置,其被配置為響應(yīng)于來自主機(jī)的對(duì)快閃存儲(chǔ)器的寫請(qǐng)求進(jìn)行操作,其中依據(jù)所述寫請(qǐng)求,所述接口裝置被配置為應(yīng)用權(quán)重到至少兩個(gè)或更 多因子中的每一個(gè),以計(jì)算垃圾收集成本,并使用所計(jì)算的垃圾收集成本配置散列表;以及其中所述接口裝置被配置成從所述散列表中搜索具有最低垃圾收集成本 的塊并且對(duì)搜索到的塊執(zhí)行垃圾收集。
13、 根據(jù)權(quán)利要求12所述的快閃存儲(chǔ)器系統(tǒng),其中所述因子中的每一個(gè)包括至少磨損水平信息和每塊的有效頁(yè)數(shù)的信息中的任一個(gè)。
14、 根據(jù)權(quán)利要.求12所述的快閃存儲(chǔ)器系統(tǒng),其中分配給所述因子的權(quán) 重的和具有1.0的值。
15、 根據(jù)權(quán)利要求12所述的快閃存儲(chǔ)器系統(tǒng),其中通過將相對(duì)于每個(gè)物 理塊的因子和權(quán)重的乘積相加來計(jì)算所述垃二t及收集成本。
16、 根據(jù)權(quán)利要求12所述的快閃存儲(chǔ)器系統(tǒng),其中所述散列表包括與所 述垃圾收集成本相對(duì)應(yīng)的多個(gè)數(shù)據(jù)列表。
17、 根據(jù)權(quán)利要求16所述的快閃存儲(chǔ)器系統(tǒng),其中所述多個(gè)數(shù)據(jù)列表中 的每一個(gè)都是鏈表。
18、 根據(jù)權(quán)利要求16所述的快閃存儲(chǔ)器系統(tǒng),其中所迷多個(gè)數(shù)據(jù)列表中 的每一個(gè)是從單鏈表、雙鏈表和循環(huán)鏈表的組中選出的 一個(gè)。
19、 根據(jù)權(quán)利要求12所述的快閃存儲(chǔ)器系統(tǒng),其中只要執(zhí)行對(duì)快閃存儲(chǔ) 器的寫操作就更新所述垃圾收集成本。
20、 根據(jù)權(quán)利要求12所述的快閃存儲(chǔ)器系統(tǒng),其中只要對(duì)快閃存儲(chǔ)器的 寫操作結(jié)束就更新所述垃圾收集成本。
21、 根據(jù)權(quán)利要求12所述的快閃存儲(chǔ)器系統(tǒng),其中所述接口裝置被配置 為基于增加垃圾收集成本來檢測(cè)塊。
22、 根據(jù)權(quán)利要求21所述的快閃存儲(chǔ)器系統(tǒng),其中所述接口裝置對(duì)N 個(gè)塊執(zhí)行所述垃圾收集,其中N是大于1的整數(shù)。
23、 如權(quán)利要求12所述的快閃存儲(chǔ)器系統(tǒng),其中所述快閃存儲(chǔ)器存儲(chǔ)軟 件以執(zhí)行閃存轉(zhuǎn)換層功能。
24、 根據(jù)權(quán)利要求12所迷的快閃存儲(chǔ)器系統(tǒng),其中所述接口裝置包括存 儲(chǔ)器,其中的用于執(zhí)行閃存轉(zhuǎn)換層功能的軟件從所述快閃存儲(chǔ)器加載。
25、 根據(jù)權(quán)利要求24所述的快閃存儲(chǔ)器系統(tǒng),其中所述存儲(chǔ)器包括DRAM和SRAM中的任一個(gè)。
26、 根據(jù)權(quán)利要求12所述的快閃存儲(chǔ)器系統(tǒng),其中所述散列表存儲(chǔ)在所 述快閃存儲(chǔ)器中。
27、 根據(jù)權(quán)利要求24所述的快閃存儲(chǔ)器系統(tǒng),其中從所述快閃存儲(chǔ)器加 載所述散列表到所述存儲(chǔ)器。
全文摘要
本發(fā)明涉及快閃存儲(chǔ)器系統(tǒng)及其垃圾收集方法。示例實(shí)施例提供垃圾收集方法,其包括應(yīng)用權(quán)重到至少兩個(gè)或更多因子中的每一個(gè)以計(jì)算垃圾收集成本;使用計(jì)算的垃圾收集成本配置散列表;從散列表中搜索具有最低垃圾收集成本的塊;以及對(duì)搜索到的塊執(zhí)行垃圾收集。
文檔編號(hào)G06F12/02GK101241471SQ200710144178
公開日2008年8月13日 申請(qǐng)日期2007年11月5日 優(yōu)先權(quán)日2006年11月3日
發(fā)明者宋東顯, 李時(shí)潤(rùn), 牟然振, 鄭明珍, 金莊煥, 黃在顯 申請(qǐng)人:三星電子株式會(huì)社