TWI536163B - 記憶體區塊之先佔式廢棄項目收集 - Google Patents

記憶體區塊之先佔式廢棄項目收集 Download PDF

Info

Publication number
TWI536163B
TWI536163B TW100123168A TW100123168A TWI536163B TW I536163 B TWI536163 B TW I536163B TW 100123168 A TW100123168 A TW 100123168A TW 100123168 A TW100123168 A TW 100123168A TW I536163 B TWI536163 B TW I536163B
Authority
TW
Taiwan
Prior art keywords
update block
data
block
update
amount
Prior art date
Application number
TW100123168A
Other languages
English (en)
Other versions
TW201216059A (en
Inventor
威廉 吳
夏伊 崔斯特
黃建民
尼爾 大衛 賀區森
史蒂芬 斯普勞斯
Original Assignee
桑迪士克科技公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 桑迪士克科技公司 filed Critical 桑迪士克科技公司
Publication of TW201216059A publication Critical patent/TW201216059A/zh
Application granted granted Critical
Publication of TWI536163B publication Critical patent/TWI536163B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Description

記憶體區塊之先佔式廢棄項目收集
本申請案一般而言係關於記憶體裝置。更具體而言,本申請案係關於可再程式化非揮發性半導體快閃記憶體中之區塊之廢棄項目收集。
本申請案主張2010年6月30日申請之第12/828,241號美國申請案之優先權,第12/828,241號美國申請案之全部內容特此以引用之方式併入本文中。
已廣泛採用非揮發性記憶體系統(諸如快閃記憶體)在消費產品中使用。快閃記憶體可以不同形式存在,舉例而言以可在主機裝置之間攜載或作為嵌入於一主機裝置中之一固態磁碟(SSD)之一可攜式記憶體卡之形式。當將資料寫入至一習用快閃記憶體系統時,一主機通常將資料寫入至該記憶體系統之一邏輯位址空間內之位址,及自該記憶體系統之該邏輯位址空間內之位址讀取資料。該記憶體系統然後通常在邏輯位址空間與該記憶體之實體區塊或後設區塊之間映射資料,其中資料係儲存於對應於該邏輯位址空間中之範圍之固定邏輯群組中。通常,每一固定邏輯群組係儲存於該記憶體系統之一單獨實體區塊中。該記憶體系統追蹤該邏輯位址空間如何映射至該實體記憶體中但主機對此不知曉。主機追蹤在該邏輯位址空間內其資料檔案之位址但該記憶體系統通常在不知曉此映射之情況下操作。
在一邏輯位址空間中操作之記憶體系統之一缺點係分散(fragmentation)。由一主機檔案系統所寫入之資料可常常分散於邏輯位址空間中,其中諸多固定邏輯群組僅部分地以新資料更新。由於由該主機檔案系統進行之自由空間之累積分散,且可能甚至由於由該主機檔案系統進行之個別檔案之固有分散,而可發生分散。先前所寫入之資料可由於刪除而變得過時且導致進一步之分散。該等分散之邏輯群組將需要全部重寫於一不同實體區塊中。重寫該等分散之邏輯群組可涉及自該邏輯群組之現有位置複製不相關資料(稱為廢棄項目收集之一處理程序)。隨著分散增加,一記憶體系統之傳送速度可減小。
為提供對記憶體系統度量之一量測,可對記憶體系統實施測試以評估記憶體系統之寫入效能。舉例而言,記憶體系統可具有可由諸如例如來自SD協會之速度等級規範之協定所規定之傳送速度規範。該速度等級規範包含速度等級2、4及6,其分別表示記憶體系統之保證最小傳送速度:2 MB/s、4 MB/s及6 MB/s。在一記憶體系統上運行之一速度等級測試量測諸如以下度量:一可定址單元之循序寫入效能(Pw)、一檔案分配表(FAT)寫入之時間(Tfw)及多個FAT寫入之時間之滾動平均值(Tfw(avg))。所運行之該速度等級測試亦可量測具有分散之記憶體系統之效能(Pc),其包含對應之讀取效能量測。在一速度等級測試期間發生之廢棄項目收集活動可不利地影響測試結果。
為解決上述問題,本發明揭示一種用於控制一記憶體裝置中之廢棄項目收集之方法及系統。
根據本發明之一第一態樣,揭示一種用於最佳化包含一控制器之一記憶體裝置之效能之方法。該方法包含接收傳入資料以用於寫入至一邏輯可定址單元,判定欲針對一廢棄項目收集操作執行之廢棄項目收集之一量,及在該所判定廢棄項目收集量小於一預定臨限值之情況下起始該廢棄項目收集操作以實施該預定臨限值。該方法進一步包含將該傳入資料寫入至對應於該邏輯可定址單元之至少一個實體後設區塊。以此方式,即使當前不需要廢棄項目收集,該控制器仍可以先佔式方式執行廢棄項目收集。亦揭示一種系統,其包含複數個記憶體區塊及實施此方法之一記憶體控制器。
根據另一態樣,揭示一種判定當在一記憶體裝置中執行一廢棄項目收集操作時之一操作模式之方法,該記憶體裝置包含判定用以執行該廢棄項目收集操作之操作模式之一控制器,且以該所判定模式執行該廢棄項目收集操作。記憶體裝置可具有不同操作模式。記憶體裝置在一種模式中可比在另一模式中更高效地執行廢棄項目收集。該控制器可藉由分析廢棄項目收集效能之至少一個指示符(諸如操作模式中之一最大廢棄項目收集量)來分析哪一操作模式更高效地執行廢棄項目收集。依據該分析,該控制器可以該所判定模式來執行廢棄項目收集。舉例而言,該控制器可以該所判定模式以先佔式方式執行廢棄項目收集以便高效地執行廢棄項目收集。亦揭示一種系統,其包含複數個記憶體區塊及實施此方法之一記憶體控制器。
圖1至圖3中展示適合用於實施本發明之態樣之一快閃記憶體系統。圖1之一主機系統100將資料儲存至一快閃記憶體102中及自該快閃記憶體102擷取資料。該快閃記憶體可嵌入於該主機內,諸如以安裝於一個人電腦中之一固態磁碟(SSD)機之形式。另一選擇係,記憶體102可係透過一機械與電氣連接器之配合部件104及106以可抽換方式連接至主機之一卡之形式,如圖1中所圖解說明。經組態以用作一內部或嵌入式SSD機之一快閃記憶體可看起來類似於圖1之示意圖,其中主要差異係記憶體系統102之位置位於主機內部。SSD機可係離散模組之形式,其係用於使磁碟機旋轉之插入式替換物。
一市售SSD機之一項實例係SanDisk公司生產之一32十億位元組SSD。市售可抽換式快閃記憶體卡之實例包含CompactFlash(CF)、MultiMediaCard(MMC)、Secure Digital(SD)、miniSD、Memory Stick、SmartMedia、TransFlash及microSD卡。雖然此等卡中之每一者根據其標準化規範具有一獨特機械及/或電介面,但每一卡中所包含之快閃記憶體系統類似。此等卡皆可自SanDisk公司(本申請案之受讓人)購得。SanDisk亦以其Cruzer商標提供一系列快閃磁碟機,其係小封裝形式之手持式記憶體系統,其具有一通用串列匯流排(USB)插頭以用於藉由插入至主機之USB插孔中而與一主機連接。此等記憶體卡及快閃磁碟機中之每一者包含與主機介接並控制其內之快閃記憶體之操作之控制器。
可使用SSD、記憶體卡及快閃磁碟機之主機系統係數量眾多且多種多樣。其包含個人電腦(PC)(諸如桌上型或膝上型及其他可攜式電腦)、蜂巢式電話、個人數位助理(PDA)、數位照相機、數位電影攝像機及可攜式音訊播放器。對可攜式記憶體卡應用而言,一主機可包含一內建插孔以用於一或多種類型之記憶體卡或快閃磁碟機,或一主機可能需要一記憶體卡插入其中之配接器。記憶體系統通常含有其自己的記憶體控制器及驅動程式但亦存在某些唯記憶體系統,其替代地由記憶體所連接至之主機所執行之軟體來控制。在含有控制器之某些記憶體系統中,尤其係嵌入於一主機內之彼等記憶體系統,記憶體、控制器及驅動程式常常形成於一單個積體電路晶片上。
就記憶體102而言,圖1之主機系統100可視為具有兩個主要部件,其由電路與軟體之一組合構成。其係一應用程式部分108及與記憶體102介接之一驅動程式部分110。在一PC中,舉例而言,應用程式部分108可包含運行文書處理、圖形、控制或其他流行應用軟體之一處理器(諸如一微處理器)或其他類型之控制器。在一相機、蜂巢式電話或其他主要專用於執行一單組功能之主機系統中,應用程式部分108包含運行操作相機以拍攝且儲存圖片、操作蜂巢式電話以撥打及接收電話及諸如此類之軟體之一處理器或其他類型之控制器。
圖1之記憶體系統102包含快閃記憶體112及電路114,兩者皆與卡所連接至之主機介接以來回傳遞資料,並控制記憶體112。在資料程式化及讀取期間,控制器114通常在由主機100使用之資料之邏輯位址與記憶體112之實體位址之間進行轉換。控制器114可包括一處理器、一微控制器、一專用積體電路(ASIC)、一場可程式化閘陣列、一邏輯數位電路或其他目前已知或以後開發之邏輯處理能力。
圖2概念性地圖解說明用作下文進一步說明中之一實例之快閃記憶體胞陣列112(圖1)之一組織。快閃記憶體胞陣列112可包含多個記憶體胞陣列,其各自由一單個或多個記憶體控制器114單獨控制。四個記憶體胞平面或子陣列202、204、206及208可係位於一單個積體記憶體胞晶片上、位於兩個晶片上(每一晶片上兩個平面)或位於四個單獨晶片上。該具體配置對下文論述而言並不重要。當然,在一系統中可存在其他數目個平面,諸如1、2、8、16或更多個。將該等平面個別地劃分成記憶體胞群組,其形成最小抹除單位,在下文稱為區塊。在圖2中藉由矩形展示記憶體胞區塊,諸如區塊210、212、214及216,其位於各別平面202、204、206及208中。在每一平面中可存在數十或數百個區塊。
如上文所提及,記憶體胞區塊係抹除單位,即實體上可一起抹除之最小記憶體胞數目。然而,為增強並行度,以更大之後設區塊單位來操作區塊。將來自每一平面之一個區塊在邏輯上鏈接在一起以形成一後設區塊。展示四個區塊210、212、214及216形成一個後設區塊218。一後設區塊內之所有記憶體胞通常被一起抹除。用於形成一後設區塊之區塊不需要限制於在其各別平面內之相同相對位置,如在由區塊222、224、226及228構成之一第二後設區塊220中所示。雖然通常較佳跨越所有平面延伸後設區塊,但為了高系統效能,記憶體系統可操作有由在不同平面中之一個、兩個或三個區塊中之任一者或全部動態形成後設區塊之能力。此允許後設區塊之大小能夠更密切地匹配在一次程式化操作中可供儲存之資料量。
出於操作目的,如圖3中所圖解說明,又將個別區塊劃分成記憶體胞頁。舉例而言,區塊210、212、214及216中每一者之記憶體胞各自被劃分為八個頁P0至P7。另一選擇係,每一區塊內可存在16、32或更多個記憶體胞頁。頁係一區塊內之資料程式化及讀取單位,其含有一次程式化或讀取之最小資料量。然而,為增強記憶體系統操作並行度,可將兩個或兩個以上個區塊內之此等頁在邏輯上鏈接成後設頁。圖3中圖解說明一後設頁302係由來自四個區塊210、212、214及216中每一者之一個實體頁形成。舉例而言,後設頁302包含該四個區塊中每一者中之頁P2,但一後設頁中之各頁未必需要在該等區塊中之每一者內具有相同相對位置。一後設頁係最大程式化單位。
圖4圖解說明邏輯可定址單元與每記憶體胞三個位元之一記憶體(D3記憶體)中之實體後設區塊之對準。舉例而言,該記憶體可係由SanDisk公司生產之具有2 GB至32 GB之一總容量之一32 nm或43 nm D3快閃記憶體。圖4意欲圖解說明邏輯可定址單元與實體後設區塊之間的誤對準且未必暗示以圖中所展示之次序執行可定址單元寫入。
在一項實例中,一安全數位(SD)記憶體之邏輯可定址單元大小係4 MB,如單元402、404及406所示。然而,一D3記憶體中之實體後設區塊大小係3 MB,如後設區塊408、410、412及414所示。在圖4中,虛線各自表示1 MB之大小。因此,邏輯可定址單元之邊界中之一者或兩者並不與實體後設區塊邊界對準。由於此誤對準,在將資料寫入至一特定邏輯可定址單元之情況下,實體上將該資料寫入至兩個後設區塊,如圖5中所示,因此在該等後設區塊中之一者或兩者中產生未使用空間(圖5中之交叉陰影線區指示該等後設區塊中之寫入有資料之空間且空白區指示未使用空間)。在需要多個廢棄項目收集操作以恢復未使用空間之情況下,未使用空間可導致記憶體系統之循序寫入效能Pw非最佳的。4 MB之邏輯可定址單元大小及3 MB之實體後設區塊大小之本實例僅出於圖解說明之目的。涵蓋其他值。
特定而言,首先,若將資料寫入至可定址單元402,則整個後設區塊408及後設區塊410之1 MB寫入有該傳入資料,且該可定址單元402在圖5中稱為一類型A可定址單元502。後設區塊408已滿且關閉,而後設區塊410具有2 MB之未使用空間。其次,若將資料寫入至可定址單元404,則後設區塊410之2 MB及後設區塊412之2 MB寫入有該傳入資料。可定址單元404稱為一類型B可定址單元504。在此情形下,後設區塊410及412皆未滿且每一後設區塊具有1 MB之未使用空間。最後,若將資料寫入至可定址單元406,則後設區塊412之1 MB及整個後設區塊414寫入有該傳入資料。可定址單元406稱為一類型C可定址單元506。在此情形下,後設區塊412具有2 MB之未使用空間且後設區塊414已滿且關閉。
具有寫入至其之傳入資料之一後設區塊亦可稱為一更新區塊。若當欲寫入傳入資料時無未使用更新區塊可用,則需要一或多個廢棄項目收集操作來創建更新區塊以用於儲存該傳入資料。如下文進一步詳述,一類型A或C寫入所致之開放更新區塊將需要2 MB之未來廢棄項目收集。一類型B寫入將產生兩個開放更新區塊,其各自將需要1 MB之未來廢棄項目收集。在一類型B寫入之情形下,若欲僅創建一個更新區塊,則僅需要1 MB之未來廢棄項目收集。因此,平均而言,該等寫入類型中之任一者將產生最多2 MB之廢棄項目收集。
然而,在某些情況下,可需要大於2 MB之一廢棄項目收集操作以在一D3記憶體中創建一未使用更新區塊。當所有開放更新區塊各自具有1 MB之資料時第一情況發生。若一類型B寫入發生,則需要兩個未使用更新區塊以寫入傳入資料。因此,將需要各自2 MB之兩個廢棄項目收集,總共4 MB之廢棄項目收集。當存在一個具有2 MB之資料之開放更新區塊且剩餘之開放更新區塊各自具有1 MB之資料時第二情況發生。同樣,若一類型B寫入發生,則需要兩個未使用更新區塊以寫入傳入資料。在此情形下,將需要分別1 MB及2 MB之最少兩個廢棄項目收集,總共3 MB之廢棄項目收集。
在一速度等級操作期間,針對一可定址單元之每一寫入,將傳入資料之寫入寫入至構成該可定址單元之記錄單元。在一習用記憶體系統中,當一更新區塊已滿時觸發一廢棄項目收集操作。然而,若在速度等級操作之一量測段期間發生一廢棄項目收集操作,則Pw度量(一可定址單元之循序寫入效能)可受到負面影響且可不滿足由速度等級規範所指示之所期望最小傳送速度。如上文所論述,最糟情景將需要各自2 MB之兩個廢棄項目收集操作,總共4 MB。一D3記憶體中之一4 MB廢棄項目收集操作將負面影響該Pw度量。
圖6係圖解說明涉及記憶體區塊之先佔式廢棄項目收集之最佳化記憶體裝置之效能之一方法600的一流程圖。為避免上文所闡述之最糟情景,當存在一傳入資料寫入時(諸如每當存在一傳入資料寫入時),方法600執行預定量之先佔式廢棄項目收集操作。舉例而言,在一D3記憶體中,先佔式廢棄項目收集量可係2 MB。方法600允許記憶體裝置在一速度操作期間滿足執行工作(諸如一廢棄項目收集操作)之預算。方法600可作為一忙碌時間處理程序(諸如在主機命令期間操作)或空閒時間處理程序(諸如在主機命令之間操作)來執行。舉例而言,記憶體系統102中之記憶體控制器114可實施方法600。圖6中所闡述之方法600之步驟中之每一者可單獨或與其他步驟組合執行。
在步驟602處,由記憶體裝置接收欲寫入至一邏輯可定址單元之傳入資料。可將任一類型之資料(包含FAT資料及非FAT資料)寫入至記憶體。方法600可未必知曉一速度等級操作是否已開始,而是可一直操作。在步驟604處,判定由於資料寫入而所需之廢棄項目收集量。如上文所詳述,若在一資料寫入時無未使用更新區塊可用,則一或多個開放更新區塊經受一廢棄項目收集操作以創建未使用更新區塊。若一未使用更新區塊係可用的,則可能在步驟604處不需要任何量之廢棄項目收集。
在步驟606處,比較在步驟604處所判定之廢棄項目收集量與一預定臨限值。舉例而言,該臨限值可係用於一D3記憶體之2 MB,或可係另一量。可選擇2 MB臨限值用於一D3記憶體以使得在一速度等級操作期間記憶體之循序寫入效能Pw不受負面影響。若在步驟606處該廢棄項目收集量小於或等於該臨限值,則在步驟608處基於一演算法來選擇一或多個區塊用於一廢棄項目收集操作。另一選擇係,步驟606可判定該廢棄項目收集量是否小於或等於一第一臨限值且大於或等於一第二臨限值。若如此,可在步驟608處基於一演算法來選擇一或多個區塊用於一廢棄項目收集操作。
在步驟608處,可使用一或多個演算法來選擇區塊。一個實例性演算法可包含一做最少工作(或複製最少量)演算法。該做最少工作演算法可分析一或多個更新區塊中之資料以判定待合併之具有最少量資料之更新區塊。該做最少工作演算法可檢查更新區塊資源中之一寫入指標作為填充該更新區塊所需之一空間量之指示符。另一實例性演算法可包含一最近最少使用(LRU)演算法以選擇最近最少使用之更新區塊。當為了選擇一或多個最近最少使用之更新區塊時,該LRU演算法可追蹤曾使用之區塊。又一實例性演算法可包含一最近最多使用(MRU)演算法以選擇最近最多使用之更新區塊。當為了選擇一或多個最近最多使用之更新區塊時,該MRU演算法可追蹤曾使用之區塊。
即使在步驟604處所判定之量小於臨限量(諸如步驟606中之臨限值),方法600仍強制該臨限量之廢棄項目收集。當記憶體裝置係處於一穩定狀態時(例如,當記憶體裝置中之所有更新區塊皆係資料寫入之結果時),所判定廢棄項目收集量小於該臨限值之情況可發生。在步驟610處,藉由將資料自其他區塊複製至在步驟608處所選擇之更新區塊來執行強制臨限量之廢棄項目收集操作。作為該廢棄項目收集操作之一結果,創建一或多個未使用更新區塊。最終,在步驟612處,將傳入資料寫入至該等所創建之未使用更新區塊且方法600完成。
圖7展示當記憶體裝置處於一穩定狀態時經受圖6中所示之方法600之更新區塊之一實例。頂部列之更新區塊702至708展示一類型C資料寫入之前之開放更新區塊,且下部列之更新區塊710至718展示該類型C資料寫入之後之更新區塊。在該頂部列中,更新區塊702及704皆係一先前類型B資料寫入之一結果,更新區塊706係一先前類型C資料寫入之一結果,且更新區塊708係一先前類型A資料寫入之一結果。
如上文所論述,一類型C傳入資料寫入需要兩個更新區塊以儲存資料。對至一D3記憶體之一類型C寫入而言,以3 MB之資料完全填充一個更新區塊且以1 MB之資料填充一第二更新區塊且其保持開放。舉例而言,圖7之底部列中之更新區塊718展示一類型C寫入之後之開放更新區塊。若在資料寫入時無未使用更新區塊可用,則選擇更新區塊702用於廢棄項目收集,此乃因其係最近最少使用之開放更新區塊。更新區塊702經受1 MB之廢棄項目收集,從而在該寫入之後產生一完整更新區塊710。然而,由於當使用方法600時強制一臨限量(2 MB)之廢棄項目收集,因此亦可選擇更新區塊704用於一廢棄項目收集操作。更新區塊704經受1 MB之先佔式廢棄項目收集且在該寫入之後產生一完整更新區塊712。更新區塊714及716在該寫入之後分別保持處於具有與更新區塊706及708相同之資料之相同狀態。
圖8展示當記憶體裝置處於一穩定狀態時經受圖6中所示之方法600之更新區塊之另一實例。與圖7類似,頂部列之更新區塊802至806展示一類型C資料寫入之前之開放更新區塊,且底部列之更新區塊808至814展示在該類型C資料寫入之後之更新區塊。在該頂部列中,更新區塊802係一先前類型B資料寫入之一結果,且更新區塊804及806皆係先前類型C資料寫入之一結果。
在圖8中所繪示之實例中,針對一D3記憶體之一類型C傳入資料寫入以3 MB之資料完全填充一個更新區塊且以1 MB之資料填充一第二更新區塊。該第二更新區塊(舉例而言,更新區塊814)在該資料寫入之後保持開放。若在資料寫入時未使用更新區塊可用,則在一習用記憶體裝置中將不需要廢棄項目收集用於創建用於該資料寫入之更新區塊。然而,根據方法600,選擇更新區塊802及804用於先佔式廢棄項目收集,此乃因其係最近最少使用之更新區塊。每一更新區塊802及804經受1 MB之廢棄項目收集。因此,更新區塊802在該資料寫入之後產生一完整更新區塊808。自更新區塊804廢棄項目收集另一1 MB,從而產生更新區塊810。更新區塊810保持開放,此乃因仍存在1 MB之可用空間。更新區塊812在該寫入之後保持處於具有與更新區塊806相同之資料之相同狀態。在此實例中,藉由方法600對更新區塊802及804兩者進行先佔式廢棄項目收集,此乃因未必需要任何量之廢棄項目收集。舉例而言,僅對區塊804進行部分的廢棄項目收集。
圖9展示當記憶體裝置處於一穩定狀態時經受圖6中所示之方法600之更新區塊之一進一步實例。頂部列之更新區塊902至906展示一類型C資料寫入之前之開放更新區塊,且底部列之更新區塊908至914展示在該類型C資料寫入之後之更新區塊。在該頂部列中,更新區塊902及906皆係一先前類型C資料寫入之一結果,且更新區塊904係一先前類型A資料寫入之一結果。
針對一D3記憶體之一類型C傳入資料寫入以3 MB之資料完全填充一個更新區塊且以1 MB之資料填充一第二更新區塊。該第二更新區塊(舉例而言,更新區塊914)在該類型C資料寫入之後保持開放。若未使用更新區塊可用,則在一習用記憶體裝置中將不需要廢棄項目收集用於創建用於該資料寫入之未使用更新區塊。然而,根據方法600選擇更新區塊902用於廢棄項目收集,此乃因其係最近最少使用之更新區塊。更新區塊902經受2 MB之廢棄項目收集,從而在該資料寫入之後產生一完整更新區塊908。更新區塊910及912在該資料寫入之後分別保持處於具有與更新區塊904及906相同之資料之相同狀態。在此實例中,對更新區塊902進行先佔式廢棄項目收集,此乃因該類型C寫入不需要任何量之廢棄項目收集。
返回參考圖6,若在步驟606處於步驟604處所判定之廢棄項目收集量大於臨限值,則方法600繼續至步驟614。在步驟614處,選擇一或多個替代更新區塊(未必係最近最少使用之更新區塊)用於一廢棄項目收集操作。當記憶體裝置處於一初始條件狀態時(例如,當該記憶體裝置中之更新區塊並非全部係資料寫入之一結果時),此情況發生。最近最少使用之更新區塊(若被選擇)可需要經受大於臨限量之廢棄項目收集,因此導致對一速度等級操作之一負面影響。藉由選擇替代更新區塊,仍可執行所需廢棄項目收集而不會不利地影響速度等級操作之循序寫入效能量測。
在步驟614處所選擇之替代更新區塊取決於步驟602處之資料寫入之類型。若發生一類型A或類型C寫入,則在步驟614處選擇具有最少量之所需廢棄項目收集之一開放更新區塊用於廢棄項目收集操作。若在步驟616處所選開放更新區塊不需要大於臨限量之廢棄項目收集,則在步驟610處藉由將資料自其他區塊複製至所選開放更新區塊來執行廢棄項目收集操作。然後在步驟612處將傳入資料寫入至所創建之未使用更新區塊。然而,若在步驟616處所選開放更新區塊需要大於臨限量之廢棄項目收集,則在步驟618處將傳入資料寫入至一非揮發性儲存區域,諸如寫入至二進制快取記憶體或隨機存取記憶體。在步驟620處仍執行臨限量之一廢棄項目收集操作。舉例而言,可將資料寫入至緩衝隨機存取記憶體(BRAM)。可將資料維持於BRAM中直至廢棄項目收集完成釋放一更新區塊之處理程序。
若在步驟602處發生一類型B寫入,則在步驟614處選擇一或多個替代開放更新區塊用於一廢棄項目收集操作。若不存在未使用更新區塊,則在步驟614處選擇一或多個開放更新區塊。舉例而言,可在第一2 MB之寫入期間選擇一第一開放更新區塊,且可當寫入第二2 MB時選擇一第二開放更新區塊。作為另一實例,可同時選擇多個更新區塊。若在步驟616處廢棄項目收集兩個所選更新區塊所需之資料總量大於臨限量,則在步驟618處將傳入資料寫入至一暫時儲存區域。在步驟620處仍執行臨限量之一廢棄項目收集。然而,若在步驟616處廢棄項目收集兩個所選更新區塊所需之資料總量小於或等於臨限量,則在步驟610處執行廢棄項目收集操作。在此情形下,首先對具有小於或等於臨限量之一半之所選更新區塊進行廢棄項目收集,隨後對另一所選更新區塊進行一廢棄項目收集操作。在步驟612處將傳入資料寫入至所創建之未使用更新區塊。
圖10展示當記憶體裝置位於一初始條件狀態時經受圖6中所示之方法600之更新區塊之一實例。頂部列之更新區塊1002至1006展示一類型B資料寫入之前之開放更新區塊,且底部列之更新區塊1008至1014展示該類型B資料寫入之後之更新區塊。在該頂部列中,更新區塊1002係一先前類型C資料寫入之一結果。更新區塊1004填充有1.5 MB之資料且更新區塊1006填充有2.5 MB之資料。因此,更新區塊1004將需要1.5 MB之未來廢棄項目收集且更新區塊1006將需要0.5 MB之未來廢棄項目收集。
針對一D3記憶體之一類型B傳入資料寫入將以2 MB之資料填充兩個更新區塊每一者,從而使兩個更新區塊在該資料寫入之後開放,具有1 MB之可用空間。在此情形下,更新區塊1014及1016(舉例而言)在一類型B寫入之後展示所得開放更新區塊。由於一類型B寫入產生兩個開放更新區塊,因此需要對兩個當前開放更新區塊進行廢棄項目收集以便創建兩個未使用更新區塊。在此實例中,若選擇兩個最近最少使用之開放更新區塊,則將廢棄項目收集大於2 MB之臨限量。特定而言,更新區塊1002將經受2 MB之廢棄項目收集且更新區塊1004將經受1.5 MB之廢棄項目收集,從而產生總共3.5 MB之廢棄項目收集。
由於廢棄項目收集量超過臨限值,因此選擇替代更新區塊用於廢棄項目收集而非最近最少使用之更新區塊。在此實例中,選擇更新區塊1004及1006用於廢棄項目收集,其中首先對更新區塊1006進行廢棄項目收集,此乃因其係小於或等於臨限值之一半(例如,0.5 MB)之區塊,且更新區塊1006之廢棄項目收集在資料寫入之後產生完整更新區塊1012。更新區塊1004經受1.5 MB之一量之廢棄項目收集,從而在資料寫入之後產生完整更新區塊1010。更新區塊1008在資料寫入之後保持與更新區塊1002相同。藉由在此情景中選擇替代更新區塊而非最近最少使用之更新區塊,仍以先佔式方式執行臨限量之廢棄項目收集。
圖11係圖解說明涉及圖12之狀態機之最佳化記憶體裝置之效能之一替代方法1100之一流程圖。替代選擇最近最少使用之更新區塊用於廢棄項目收集(諸如上文相對於圖6之方法600之步驟608所論述),方法1100闡述用於選擇一開放更新區塊用於廢棄項目收集之一替代演算法。當記憶體裝置係處於一穩定狀態時(例如,當記憶體裝置中之所有更新區塊皆係資料寫入之結果時),可使用方法1100。方法1100允許記憶體裝置在一速度等級操作期間滿足執行工作(諸如一廢棄項目收集操作)之預算。方法1100可作為一忙碌時間處理程序或空閒時間處理程序來執行。舉例而言,記憶體系統102中之記憶體控制器114可實施方法1100。圖11中所闡述之方法1100之步驟中之每一者可單獨或與其他步驟組合執行。
在方法1100中,總是選擇兩個更新區塊用於廢棄項目收集操作。該兩個更新區塊皆處於兩種狀態中之一者,狀態A或狀態B,如圖12中所示。在狀態A中,由於一先前類型A或類型C資料寫入,更新區塊1202係未使用的且更新區塊1204係一開放更新區塊。更新區塊1202不含有資料且不需要未來廢棄項目收集,而更新區塊1204具有1 MB之資料且將需要2 MB之未來廢棄項目收集。狀態B包含更新區塊1206及1208,由於一先前類型B資料寫入,其皆係開放更新區塊。每一更新區塊1206及1208含有2 MB之資料且將需要1 MB之未來廢棄項目收集。一旦發現兩個更新區塊皆處於狀態A或狀態B,則一記憶體裝置可利用方法1100。當記憶體裝置處於一初始條件狀態時可利用方法600之步驟614至618中所闡述之替代更新區塊選擇,以便達成使用方法1100所需之穩定狀態。
狀態A與狀態B之間及狀態A與狀態B內的轉變需要在一D3記憶體中之2 MB之廢棄項目收集。由於為了狀態之間及狀態內的轉變而總是執行2 MB之廢棄項目收集,因此滿足廢棄項目收集預算且一速度等級操作不會受到負面影響。在方法1100之步驟1102處,由記憶體裝置接收欲寫入至一邏輯可定址單元之傳入資料。可將任一類型之資料(包含FAT資料及非FAT資料)寫入至記憶體。方法1100並不知曉一速度等級操作是否已開始,而是可一直操作。
在步驟1104處,判定兩個所選更新區塊是處於狀態A還是狀態B,如圖12中所闡述。若該等更新區塊皆處於狀態A,則方法1100繼續至步驟1106,在其處判定步驟1102處發生之資料寫入之類型。若資料寫入係一類型A或類型C資料寫入,則在步驟1110處對更新區塊1202及1204進行廢棄項目收集以使得更新區塊保持處於狀態A。特定而言,由於一類型A或類型C資料寫入產生含有1 MB之資料及2 MB之可用空間之一開放更新區塊,因此更新區塊1202及1204保持處於狀態A。然而,若在步驟1106處資料寫入之類型係一類型B寫入,則在步驟1112處更新區塊1202及1204經受廢棄項目收集以使得該等更新區塊轉變至狀態B且該等更新區塊變成更新區塊1206及1208。在此情形下,由於該類型B資料寫入產生各自含有2 MB之資料及1 MB之可用空間之兩個開放更新區塊,因此更新區塊1202及1204轉變至狀態B。在步驟1110及1112中,亦將欲寫入之傳入資料儲存於一或多個更新區塊中。
另一方面,在步驟1104處,若判定兩個所選更新區塊皆處於狀態B,則方法1100繼續至步驟1108。在步驟1108處,判定步驟1102處已發生之資料寫入之類型。若該資料寫入係一類型A或類型C資料寫入,則在步驟1114處對更新區塊1206及1208進行廢棄項目收集以使得該等更新區塊轉變至狀態A且變成更新區塊1202及1204。特定而言,由於一類型A或類型C資料寫入產生含有1 MB之資料及2 MB之可用空間之一開放更新區塊,因此更新區塊1206及1208轉變至狀態A。然而,若步驟1108處資料寫入之類型係一類型B寫入,則在步驟1116處對更新區塊1206及1208進行廢棄項目收集以使得該等更新區塊保持處於狀態B。在此情形下,由於該類型B資料寫入產生各自含有2 MB之資料及1 MB之可用空間之兩個開放更新區塊,因此更新區塊1206及1208保持處於狀態B。如之前,在步驟1114及1116兩者中,將欲寫入之傳入資料儲存於一或多個更新區塊中。
圖13係圖解說明涉及將與廢棄項目收集相關之資料之至少一部分複製至一揮發性記憶體之最佳化記憶體裝置之效能之一方法1300之一流程圖。在一項實施例中,可將一更新區塊之控制資訊中之某些資訊或全部資訊複製至一隨機存取記憶體或其他類型之揮發性記憶體。在另一實施例中,可將經受廢棄項目收集之分散資料中之某些資料或全部資料複製至一隨機存取記憶體或其他類型之揮發性記憶體。此後,可將所複製之分散資料複製至一非揮發性記憶體中。在又一實施例中,可將控制資訊中之某些資訊或全部資訊及經受廢棄項目收集之分散資料中之某些資料或全部資料複製至一隨機存取記憶體或其他類型之揮發性記憶體。
使用揮發性記憶體(諸如隨機存取記憶體)來暫時儲存資訊(諸如控制資訊)之一部分可在一速度等級操作期間改良記憶體裝置之效能。方法1300可作為一忙碌時間處理程序或空閒時間處理程序來執行。舉例而言,記憶體控制器114可實施方法1300。圖13中所闡述之方法1300之步驟中之每一者可單獨或以組合方式執行。
在步驟1302處,由記憶體裝置接收欲寫入至一邏輯可定址單元之傳入資料。在步驟1304處,比較已接收之該傳入資料之數量與一臨限值。資料數量之偵測可限制於當依記錄單元之長度接收資料之開始時。當依記錄單元之長度接收欲寫入至一邏輯可定址單元之資料時,可已開始一速度等級操作。舉例而言,若一可定址單元具有4 MB之一長度,則記錄單元具有16 kB之一長度。若步驟1304處所偵測之資料之數量低於臨限值,則方法1300返回至步驟1302以接收更多傳入資料。
然而,若在步驟1304處資料之數量處於臨限值或高於臨限值,則方法1300繼續至步驟1306。臨限值可係邏輯可定址單元之80%,或可係另一數量或百分比。在步驟1306處將傳入資料寫入至記憶體裝置之實體區塊。在步驟1308處,對該記憶體裝置中之任何開放更新區塊執行廢棄項目收集。可視需要在步驟1308處執行任一量之廢棄項目收集而不會負面影響速度等級操作。對該速度等級操作不存在負面影響是因為未使用一速度等級操作之第一可定址單元寫入來量測循序寫入效能Pw。
在一項實施例中,在1308處所執行之廢棄項目收集操作之後,識別欲寫入之下一資料之寫入類型,如步驟1310處所示。可藉由檢查正寫入之可定址單元之邏輯開始位址來判定寫該入類型,類型A、B或C,如先前所闡述。
在一項實施例中,可將與廢棄項目收集相關之資料中之某些資料或部分資料自動寫入至一揮發性記憶體。在一替代實施例中,可依據廢棄項目收集之一或多個特性而將與廢棄項目收集相關之資料中之某些資料或部分資料寫入至一揮發性記憶體。舉例而言,對是否寫入與廢棄項目收集相關之資料之一部分之判定可取決於寫入類型。特定而言,可依據所識別之寫入類型而將關於一更新區塊之控制資訊儲存於一隨機存取記憶體或一快閃記憶體中。作為另一實例,對是否寫入與廢棄項目收集相關之資料之一部分之判定可取決於該寫入是否填充該更新區塊。具體而言,作出是否將資訊之一部分寫入至一揮發性記憶體之一判定。舉例而言,該判定可基於分析下一傳入資料。特定而言,在步驟1312處,判定所識別之寫入類型之下一傳入資料是否將填充一更新區塊並創建一完整區塊。若該寫入類型之下一傳入資料將完全填充該更新區塊,則將資訊之一部分儲存於揮發性記憶體中,諸如在步驟1316處將控制資訊儲存於一隨機存取記憶體(RAM)中。該控制資訊可包含邏輯可定址單元至一實體後設區塊之映射資訊或其他資訊。控制資訊之實例包含(但不限於)邏輯群組、後設區塊數目、寫入指標及頁標籤。
藉由將控制資訊儲存於一RAM中而非快閃記憶體中,可擴展記憶體裝置中之可使用更新區塊之最大數目,從而產生由於資源缺乏所致之強制廢棄項目收集操作之一減少。然而,若在步驟1312處該寫入類型之下一傳入資料將不完全填充該更新區塊,則在步驟1314處將邏輯可定址單元之控制資訊儲存於快閃記憶體中。
若將控制資訊儲存於一RAM中,可在快速記憶體中設定對應於該邏輯可定址單元之一電力循環旗標或其他指示符。藉由使用一電力循環旗標,若在具有儲存於RAM中之控制資訊之更新區塊關閉之前發生至該記憶體裝置之電力之一損失,則在該記憶體裝置之重新初始化後可發生控制資訊之恢復。在重新初始化開始之後,若設定電力循環旗標,則可重新建構控制資訊(即使先前儲存於RAM中之控制資訊丟失)。重新建構控制資訊之一個方式係藉由使用自由更新區塊清單,其係自由之更新區塊之一清單。特定而言,可使用自由更新區塊清單來判定係自由之更新區塊,且可分析與彼等自由更新區塊相關聯之資料之至少一部分。舉例而言,可分析標頭資訊(諸如,第一頁中之標頭資訊),以便可判定含於更新區塊中之資料。一旦判定含於更新區塊中之資料,即可建構控制資訊。在記憶體裝置之重新初始化之後,可隨後在另一更新區塊之廢棄項目收集之後將此更新區塊之重新建構之控制資訊儲存於快閃記憶體中。或者,可將此更新區塊之重新建構之控制資訊再次儲存於揮發性記憶體(諸如RAM)中。
圖14圖解說明選擇用以執行廢棄項目收集(諸如一先佔式廢棄項目收集)之操作模式之一流程圖。一特定記憶體裝置可以不同操作模式以不同方式執行廢棄項目收集。一種操作模式可比另一操作模式更高效地執行廢棄項目收集。舉例而言,一32奈米快閃記憶體可以一第一操作模式操作(諸如一忙碌週期中之廢棄項目收集)及以一第二操作模式操作(諸如在邏輯可定址單元之一寫入期間之廢棄項目收集)。可以該第一操作模式執行之32奈米快閃記憶體之廢棄項目收集量可不同於可針對該第二操作模式執行之廢棄項目收集量。作為另一實例,一70奈米快閃記憶體可以一第一操作模式(諸如一忙碌週期中之廢棄項目收集)與以該第二操作模式(諸如在邏輯可定址單元之一寫入期間之廢棄項目收集)不同地執行廢棄項目收集。
先前,當由於記憶體約束而需要執行廢棄項目收集時執行廢棄項目收集。相比而言,當快閃記憶體係更高效地執行廢棄項目收集時可以一所選操作模式執行廢棄項目收集,諸如圖14中所圖解說明。如上文所論述,可以先佔式方式執行廢棄項目收集(諸如相對於圖6所論述)。在以先佔式方式執行廢棄項目收集時,快閃記憶體可判定較佳(或最佳)執行廢棄項目收集之操作模式。舉例而言,快閃記憶體可判定廢棄項目收集若在一忙碌週期期間執行則更高效。若如此,快閃記憶體可在該忙碌週期期間執行先佔式廢棄項目收集。作為另一實例,快閃記憶體可判定廢棄項目收集若在邏輯可定址單元之一寫入期間執行則更高效。若如此,快閃記憶體可在邏輯可定址單元之一寫入期間執行先佔式廢棄項目收集。
圖14係圖解說明展示選擇用以執行廢棄項目收集之模式之一具體實例(亦即,藉由監測廢棄項目收集量而最佳化記憶體裝置之效能)之一方法1400之一流程圖。記憶體可基於一或多個指示符(諸如基於不同操作週期中之最大廢棄項目收集量之指示符)而判定用以執行廢棄項目收集之模式。特定而言,方法1400監測記憶體裝置之一單個忙碌週期中之最大廢棄項目收集量及一邏輯可定址單元之一寫入期間所複製的最大廢棄項目收集量。藉由使用方法1400,可以先佔式方式執行一忙碌週期中之最大量之廢棄項目收集,即使不需要。方法1400可作為一忙碌時間處理程序或空閒時間處理程序來執行。舉例而言,記憶體控制器114可實施方法1400。圖14中所闡述之方法1400之步驟中之每一者可單獨或以組合方式執行。
在步驟1402處,由記憶體裝置接收欲寫入至一邏輯可定址單元之傳入資料。在接收傳入資料之後,在步驟1404處存取兩個參數。第一參數係可在記憶體裝置之一單個忙碌週期中執行之最大廢棄項目收集量。一忙碌週期可包括自記憶體裝置之一資料讀取或至該記憶體裝置之一資料寫入之持續時間。第二參數係可在邏輯可定址單元之一寫入期間執行之最大廢棄項目收集量。可能該兩個參數可相等,但更可能該第二參數將高於該第一參數。可將該兩個參數儲存於一RAM中。如圖14中所示,相互比較該兩個參數以判定記憶體裝置更高效地進行廢棄項目收集之模式。在一替代實施例中,記憶體裝置可包含用以指示更高效地進行廢棄項目收集之模式之一不同指示符。舉例而言,記憶體裝置可包含指示更高效地進行廢棄項目收集之模式之一garbage_collection_mode_flag。以此方式,記憶體裝置不需要判定哪一模式更高效(諸如藉由存取最大量),且可簡單存取該旗標來判定更高效的模式。
在步驟1406處,若第二參數高於第一參數,則方法1400繼續至步驟1408。在步驟1408處,起始更新區塊之廢棄項目收集多達第二參數之量。透過步驟1408及1410執行廢棄項目收集操作直至廢棄項目收集量達到第二參數之量。若在步驟1406處第二參數不高於第一參數,則在步驟1412處起始更新區塊之廢棄項目收集多達第一參數之量。在此情形下,透過步驟1412及1414執行廢棄項目收集操作直至廢棄項目收集量達到第一參數之量。當使用方法1400時,使在至一單個邏輯可定址單元之一寫入期間之一廢棄項目收集操作期間所複製之資料量最大化。特定而言,即使將該邏輯可定址單元完全寫入至更新區塊,然後廢棄項目收集仍在該更新區塊上繼續直至達到根據該第一或第二參數之最大量。
旨在將前述詳細說明視為說明性而非限制性,且應理解以下申請專利範圍(包含所有等效形式)旨在界定本發明之精神及範疇。
100...主機系統
102...快閃記憶體
104...配合部件
106...配合部件
108...應用程式部分
110...驅動程式部分
112...快閃記憶體
114...電路(控制器)
202...平面或子陣列
204...平面或子陣列
206...平面或子陣列
208...平面或子陣列
210...區塊
212...區塊
214...區塊
216...區塊
218...後設區塊
220...後設區塊
222...區塊
224...區塊
226...區塊
228...區塊
302...後設頁
402...單元
404...單元
406...單元
408...後設區塊
410...後設區塊
412...後設區塊
414...後設區塊
702...更新區塊
704...更新區塊
706...更新區塊
708...更新區塊
710...更新區塊
712...更新區塊
714...更新區塊
716...更新區塊
718...更新區塊
802...更新區塊
804...更新區塊
806...更新區塊
808...更新區塊
810...更新區塊
812...更新區塊
814...更新區塊
902...更新區塊
904...更新區塊
906...更新區塊
908...更新區塊
910...更新區塊
912...更新區塊
914...更新區塊
1002...更新區塊
1004...更新區塊
1006...更新區塊
1008...更新區塊
1010...更新區塊
1012...更新區塊
1014...更新區塊
1016...更新區塊
1202...更新區塊
1204...更新區塊
1206...更新區塊
1208...更新區塊
圖1係與具有非揮發性記憶體之一記憶體系統連接之一主機之一方塊圖。
圖2圖解說明圖1之系統之一實例性實體記憶體組織。
圖3展示圖2之實體記憶體之一部分之一分解圖。
圖4圖解說明邏輯可定址單元與實體後設區塊之對準。
圖5圖解說明在將資料寫入至記憶體系統之後實體後設區塊之可能狀態。
圖6係圖解說明涉及記憶體區塊之先佔式廢棄項目收集之最佳化記憶體裝置之效能之一方法之一流程圖。
圖7圖解說明根據圖6之方法經受效能最佳化之記憶體區塊之一第一實例。
圖8圖解說明根據圖6之方法經受效能最佳化之記憶體區塊之一第二實例。
圖9圖解說明根據圖6之方法經受效能最佳化之記憶體區塊之一第三實例。
圖10圖解說明根據圖6之方法經受效能最佳化之記憶體區塊之一第四實例。
圖11係圖解說明涉及圖12之狀態機之最佳化記憶體裝置之效能的替代方法的一流程圖。
圖12圖解說明與用於最佳化一記憶體裝置之效能之圖11之一替代方法相關之一狀態機。
圖13係圖解說明涉及將控制資訊複製至一隨機存取記憶體之最佳化記憶體裝置之效能之一方法的一流程圖。
圖14係涉及監測廢棄項目收集量之最佳化記憶體裝置之效能之一方法的一流程圖。
100...主機系統
102...快閃記憶體
104...配合部件
106...配合部件
108...應用程式部分
110...驅動程式部分
112...快閃記憶體
114...電路(控制器)

Claims (22)

  1. 一種在一記憶體裝置中之廢棄項目收集之方法,該方法包括:藉助該記憶體裝置中之一控制器:接收欲寫入至一邏輯可定址單元之傳入資料;判定欲針對一廢棄項目收集操作執行之廢棄項目收集之一量;在該所判定廢棄項目收集量小於一預定臨限值之情況下,起始該廢棄項目收集操作以實現該預定臨限值;選擇一最近最少使用之更新區塊用於該廢棄項目收集操作;在用於該最近最少使用之更新區塊之該所判定廢棄項目收集量係大於該預定臨限值之情況下:選擇一替代更新區塊用於該廢棄項目收集操作而非該所選最近最少使用之更新區塊;(A)在用於該替代更新區塊之該所判定廢棄項目收集量係大於該預定臨限值之情況下:(1)將該傳入資料寫入至一暫時儲存空間;且(2)將第一數量之資料自一完整區塊複製至該替代更新區塊,其中該第一數量係等於該預定臨限值;且(B)在用於該替代更新區塊之該所判定廢棄項目收集量係小於該預定臨限值之情況下,將第二數量之資料自該替代更新區塊複製至一開放更新區塊,其中該 第二數量係小於該預定臨限值;及將該傳入資料寫入至對應於該邏輯可定址單元之至少一個實體後設區塊。
  2. 如請求項1之方法,其中起始該廢棄項目收集操作包括:選擇一最近最少使用之更新區塊用於該廢棄項目收集操作;及將等於該預定臨限值之一定數量之資料自一完整區塊複製至該最近最少使用之更新區塊,其中該預定臨限值包括該所判定廢棄項目收集量。
  3. 如請求項1之方法,其中:該邏輯可定址單元之一大小係四百萬位元組;該實體後設區塊之一大小係三百萬位元組;且該預定臨限值包括兩百萬位元組。
  4. 如請求項1之方法,其中起始該廢棄項目收集操作包括:選擇一第一最近最少使用之更新區塊用於該廢棄項目收集操作;將第一數量之資料自該第一最近最少使用之更新區塊複製至一第一開放更新區塊,其中該第一資料數量係小於該預定臨限值;選擇一第二最近最少使用之更新區塊用於該廢棄項目收集操作;及將第二數量之資料自另一完整區塊複製至該第二最近 最少使用之更新區塊,其中該第二資料數量係等於自該預定臨限值減去該第一資料數量;其中該預定臨限值包括該所判定廢棄項目收集量。
  5. 如請求項4之方法,其中:該邏輯可定址單元之一大小係四百萬位元組;該實體後設區塊之一大小係三百萬位元組;該第一數量之資料包括一百萬位元組;且該預定臨限值包括兩百萬位元組。
  6. 如請求項1之方法,其中:該邏輯可定址單元之一大小係四百萬位元組;該實體後設區塊之一大小係三百萬位元組;且該預定臨限值包括兩百萬位元組。
  7. 如請求項1之方法,其中該暫時儲存空間包括二進制快取記憶體。
  8. 如請求項1之方法,其進一步包括:藉助該記憶體裝置中之該控制器:將該傳入資料自該暫時儲存空間複製至一開放更新區塊。
  9. 一種最佳化一記憶體裝置之效能之方法,該方法包括:藉助該記憶體裝置中之一控制器:接收欲寫入至一邏輯可定址單元之傳入資料;判定一第一更新區塊及一第二更新區塊是否處於一第一狀態或一第二狀態,其中該第一狀態包括:不包括資料之該第一更新區塊及包括資料之該第二更新區塊,且 其中該第二狀態包括:包含資料之該第一更新區塊及該第二更新區塊兩者;回應於判定該第一更新區塊及該第二更新區塊處於該第一狀態:將該傳入資料寫入至該第一更新區塊及該第二更新區塊以便將該第一更新區塊及該第二更新區塊置於該第二狀態;且回應於判定該第一更新區塊及該第二更新區塊處於該第二狀態:將該傳入資料寫入至該第一更新區塊及該第二更新區塊以便將該第一更新區塊及該第二更新區塊置於該第一狀態。
  10. 如請求項9之方法,其中:該邏輯可定址單元之一大小係四百萬位元組;該實體後設區塊之一大小係三百萬位元組;該預定臨限值包括兩百萬位元組;該第一狀態包括:該第二更新區塊在該第二更新區塊之一邏輯開端處包括一百萬位元組之資料;且該第二狀態包括:該第一更新區塊在該第一更新區塊之一邏輯結尾處包括兩百萬位元組之資料;及該第二更新區塊在該第二更新區塊之該邏輯開端處 包括兩百萬位元組之資料。
  11. 如請求項9之方法,其中將該傳入資料寫入至該第一更新區塊及該第二更新區塊以便將該第一更新區塊及該第二更新區塊置於該第二狀態包括:起始一廢棄項目收集操作以自該第二更新區塊實施該預定臨限值;及將該傳入資料寫入至該第一更新區塊及該第二更新區塊。
  12. 如請求項9之方法,將該傳入資料寫入至該第一更新區塊及該第二更新區塊以便將該第一更新區塊及該第二更新區塊置於該第一狀態包括:起始一廢棄項目收集操作以自該第一更新區塊及該第二更新區塊實施該預定臨限值;及將該傳入資料寫入至該第一更新區塊及該第二更新區塊。
  13. 如請求項9之方法,其進一步包括:藉助該記憶體裝置中之該控制器:(1)選擇一最近最少使用之更新區塊用於一廢棄項目收集操作;(2)在針對該最近最少使用之更新區塊之該所判定廢棄項目收集量係大於一預定臨限值之情況下:選擇一替代更新區塊用於該廢棄項目收集操作而非該所選最近最少使用之更新區塊;(A)在用於該替代更新區塊之該所判定廢棄項目 收集量係大於該預定臨限值之情況下:(i)將該傳入資料寫入至一暫時儲存空間;且(ii)將第一數量之資料自該替代更新區塊複製至一開放更新區塊,其中該第一數量係等於該預定臨限值;且(B)在用於該替代更新區塊之該所判定廢棄項目收集量係小於該預定臨限值之情況下,將第二數量之資料自該替代更新區塊複製至一開放更新區塊,其中該第二數量係小於該預定臨限值;且(3)反覆步驟(1)及(2)直至該第一更新區塊及該第二更新區塊處於該第一狀態或該第二狀態。
  14. 一種記憶體裝置,其包括:一記憶體;及一控制器,其與該記憶體連通,該控制器經組態以:接收欲寫入至一邏輯可定址單元之傳入資料;判定欲針對一廢棄項目收集操作執行之廢棄項目收集之一量;在該所判定廢棄項目收集量係小於一預定臨限值之情況下,起始該廢棄項目收集操作以實現該預定臨限值;選擇一最近最少使用之更新區塊用於該廢棄項目收集操作;在用於該最近最少使用之更新區塊之該所判定廢棄項目收集量係大於該預定臨限值之情況下: 選擇一替代更新區塊用於該廢棄項目收集操作而非該所選最近最少使用之更新區塊;(A)在用於該替代更新區塊之該所判定廢棄項目收集量係大於該預定臨限值之情況下:(1)將該傳入資料寫入至一暫時儲存空間;且(2)將第一數量之資料自一完整區塊複製至該替代更新區塊,其中該第一數量係等於該預定臨限值;且(B)在用於該替代更新區塊之該所判定廢棄項目收集量係小於該預定臨限值之情況下,將第二數量之資料自該替代更新區塊複製至一開放更新區塊,其中該第二數量係小於該預定臨限值;及將該傳入資料寫入至對應於該邏輯可定址單元之至少一個實體後設區塊。
  15. 如請求項14之記憶體裝置,其中該控制器經組態以藉由以下各項起始該廢棄項目收集操作:選擇一最近最少使用之更新區塊用於該廢棄項目收集操作;及將等於該預定臨限值之一定數量之資料自一完整區塊複製至該最近最少使用之更新區塊,其中該預定臨限值包括該所判定廢棄項目收集量。
  16. 如請求項14之記憶體裝置,其中該控制器經組態以藉由以下各項起始該廢棄項目收集操作:選擇一第一最近最少使用之更新區塊用於該廢棄項目 收集操作;將第一數量之資料自該第一最近最少使用之更新區塊複製至一第一開放更新區塊,其中該第一資料數量係小於該預定臨限值;選擇一第二最近最少使用之更新區塊用於該廢棄項目收集操作;及將第二數量之資料自另一完整區塊複製至該第二最近最少使用之更新區塊,其中該第二資料數量係等於自該預定臨限值減去該第一資料數量,且其中該預定臨限值包括該所判定廢棄項目收集量。
  17. 一種判定當在一記憶體裝置中執行一廢棄項目收集操作時之一操作模式之方法,該方法包括:藉助該記憶體裝置中之一控制器:存取欲在一忙碌週期中執行廢棄項目收集之一第一最大量,其中該忙碌週期包括自該記憶體裝置之一資料讀取或至該記憶體裝置之一傳入資料寫入之一持續時間;及存取欲在不同於該忙碌週期之週期期間針對一廢棄項目收集操作執行廢棄項目收集之一第二最大量;比較廢棄項目收集該第一最大量與廢棄項目收集該第二最大量;基於廢棄項目收集該第一最大量與廢棄項目收集該第二最大量之比較,判定用以執行該廢棄項目收集操作之操作模式; 回應於判定用以執行該廢棄項目收集操作之操作模式,以該所判定模式執行該廢棄項目收集操作。
  18. 如請求項17之方法,其中不同於該忙碌週期之該週期包括一邏輯可定址單元之一寫入週期。
  19. 如請求項18之方法,其中判定用以執行該廢棄項目收集操作之操作模式進一步包括:回應於該第一最大量係大於該第二最大量,判定在該忙碌週期期間用以執行該廢棄項目收集操作;及回應於該第二最大量係大於該第一最大量,判定在該寫入週期期間用以執行該廢棄項目收集操作。
  20. 如請求項17之方法,其進一步包括判定欲針對該廢棄項目收集操作執行之廢棄項目收集之一量;且其中執行該廢棄項目收集操作包括回應於判定該廢棄項目收集量係小於該預定臨限值而以該所判定模式起始該廢棄項目收集操作。
  21. 一種記憶體裝置,其包括:一記憶體;及一控制器,其與該記憶體連通,該控制器經組態以:存取欲在一忙碌週期中執行廢棄項目收集之一第一最大量,其中該忙碌週期包括自該記憶體裝置之一資料讀取或至該記憶體裝置之一傳入資料寫入之一持續時間;及存取欲在不同於該忙碌週期之週期期間針對一廢棄 項目收集操作執行廢棄項目收集之一第二最大量;比較廢棄項目收集該第一最大量與廢棄項目收集該第二最大量;基於廢棄項目收集該第一最大量與廢棄項目收集該第二最大量之比較,判定用以執行該廢棄項目收集操作之操作模式;回應於判定用以執行該廢棄項目收集操作之操作模式,以該所判定模式執行該廢棄項目收集操作。
  22. 如請求項21之記憶體裝置,其中不同於該忙碌週期之該週期包括一邏輯可定址單元之一寫入週期。
TW100123168A 2010-06-30 2011-06-30 記憶體區塊之先佔式廢棄項目收集 TWI536163B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/828,241 US8626986B2 (en) 2010-06-30 2010-06-30 Pre-emptive garbage collection of memory blocks

Publications (2)

Publication Number Publication Date
TW201216059A TW201216059A (en) 2012-04-16
TWI536163B true TWI536163B (zh) 2016-06-01

Family

ID=44628234

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100123168A TWI536163B (zh) 2010-06-30 2011-06-30 記憶體區塊之先佔式廢棄項目收集

Country Status (6)

Country Link
US (1) US8626986B2 (zh)
EP (1) EP2588962B1 (zh)
KR (1) KR20130142103A (zh)
CN (1) CN103080911B (zh)
TW (1) TWI536163B (zh)
WO (1) WO2012012085A2 (zh)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US20110119462A1 (en) * 2009-11-19 2011-05-19 Ocz Technology Group, Inc. Method for restoring and maintaining solid-state drive performance
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8874872B2 (en) 2011-01-21 2014-10-28 Seagate Technology Llc Garbage collection management in memories
US10049040B2 (en) * 2011-01-21 2018-08-14 Seagate Technology Llc Just in time garbage collection
JP5917163B2 (ja) * 2011-01-27 2016-05-11 キヤノン株式会社 情報処理装置、その制御方法及びプログラム並びに記憶媒体
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US9734050B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US10120694B2 (en) 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
TWI524183B (zh) * 2014-01-09 2016-03-01 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN104793891B (zh) * 2014-01-17 2018-01-12 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器存储装置
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US9996303B2 (en) * 2014-05-08 2018-06-12 Kabushiki Kaisha Toshiba Hybrid-HDD that gives up old NAND data at the last moment
KR102317599B1 (ko) * 2014-05-26 2021-10-26 삼성전자 주식회사 전자 장치 및 전자 장치의 단편화 분석 방법
KR20160024550A (ko) * 2014-08-26 2016-03-07 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10127157B2 (en) * 2014-10-06 2018-11-13 SK Hynix Inc. Sizing a cache while taking into account a total bytes written requirement
US9798657B2 (en) 2014-10-15 2017-10-24 Samsung Electronics Co., Ltd. Data storage device including nonvolatile memory device and operating method thereof
KR102211868B1 (ko) 2014-12-15 2021-02-04 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
CN106445397B (zh) * 2015-07-28 2019-07-09 群联电子股份有限公司 存储器管理方法、存储器控制电路单元及存储器存储装置
CN107533523A (zh) * 2015-09-30 2018-01-02 慧与发展有限责任合伙企业 使用存储器控制器基于存储器初始化状态指示符管理存储器的存取
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
CN107025063B (zh) * 2016-01-29 2020-04-14 深圳大心电子科技有限公司 内存管理方法、内存储存装置及内存控制电路单元
US10467394B2 (en) * 2016-07-11 2019-11-05 International Business Machines Corporation Pointing device biometrics for continuous user authentication
KR102475798B1 (ko) 2016-07-14 2022-12-12 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11188456B2 (en) * 2017-03-21 2021-11-30 Western Digital Technologies Inc. Storage system and method for predictive block allocation for efficient garbage collection
US11269764B2 (en) 2017-03-21 2022-03-08 Western Digital Technologies, Inc. Storage system and method for adaptive scheduling of background operations
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US10353628B2 (en) 2017-04-13 2019-07-16 Samsung Electronics Co., Ltd. Opportunity window hints for background operations in SSD
KR20180135188A (ko) 2017-06-12 2018-12-20 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190078134A (ko) 2017-12-26 2019-07-04 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20190102790A (ko) * 2018-02-27 2019-09-04 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법과, 이를 포함하는 메모리 시스템
US11593262B1 (en) * 2018-04-25 2023-02-28 Seagate Technology Llc Garbage collection command scheduling
CN108874682A (zh) * 2018-04-27 2018-11-23 江苏华存电子科技有限公司 一种提升闪存垃圾数据回收方法
TW202001565A (zh) * 2018-06-21 2020-01-01 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置
US11030094B2 (en) 2018-07-31 2021-06-08 SK Hynix Inc. Apparatus and method for performing garbage collection by predicting required time
KR20200033459A (ko) 2018-09-20 2020-03-30 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR102620731B1 (ko) 2018-09-27 2024-01-05 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20200064567A (ko) 2018-11-29 2020-06-08 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작방법
KR20200073017A (ko) 2018-12-13 2020-06-23 에스케이하이닉스 주식회사 데이터 저장 장치와, 그것의 동작 방법
US11693596B2 (en) 2020-08-13 2023-07-04 Seagate Technology Llc Pre-emptive storage strategies to reduce host command collisions
US11467942B2 (en) 2020-12-16 2022-10-11 Western Digital Technologies, Inc. Predictive performance indicator for storage devices
US11507502B2 (en) 2021-02-23 2022-11-22 Western Digital Technologies, Inc. Data storage device performance prediction based on valid fragment count
US20210216239A1 (en) * 2021-03-27 2021-07-15 Intel Corporation Host controlled garbage collection in a solid state drive
US11556275B2 (en) * 2021-05-18 2023-01-17 Micron Technology, Inc. Techniques for page line filler data
US11894060B2 (en) 2022-03-25 2024-02-06 Western Digital Technologies, Inc. Dual performance trim for optimization of non-volatile memory performance, endurance, and reliability
CN116841453A (zh) * 2022-03-25 2023-10-03 中移(苏州)软件技术有限公司 一种数据回收方法、系统、装置及计算机可读存储介质
CN115756331B (zh) * 2022-11-23 2023-08-04 东土科技(宜昌)有限公司 充电数据的高效存储方法、装置、存储介质以及电子设备
CN116610597B (zh) * 2023-07-20 2023-10-17 合肥康芯威存储技术有限公司 一种存储器件及其垃圾回收的控制方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP3967121B2 (ja) 2001-12-11 2007-08-29 株式会社ルネサステクノロジ ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム
US20080082736A1 (en) 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US20060161724A1 (en) * 2005-01-20 2006-07-20 Bennett Alan D Scheduling of housekeeping operations in flash memory systems
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7594067B2 (en) 2005-10-20 2009-09-22 Stec, Inc. Enhanced data access in a storage device
US7451265B2 (en) 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
US7515500B2 (en) 2006-12-20 2009-04-07 Nokia Corporation Memory device performance enhancement through pre-erase mechanism
US7774389B2 (en) * 2007-01-17 2010-08-10 Microsoft Corporation Optimized garbage collection techniques
US8370562B2 (en) 2007-02-25 2013-02-05 Sandisk Il Ltd. Interruptible cache flushing in flash memory systems
US7743203B2 (en) 2007-05-11 2010-06-22 Spansion Llc Managing flash memory based upon usage history
US20090006720A1 (en) 2007-06-27 2009-01-01 Shai Traister Scheduling phased garbage collection and house keeping operations in a flash memory system
US8706983B2 (en) * 2010-06-30 2014-04-22 Sandisk Technologies Inc. Garbage collection of memory blocks using volatile memory

Also Published As

Publication number Publication date
EP2588962A2 (en) 2013-05-08
CN103080911B (zh) 2016-11-23
CN103080911A (zh) 2013-05-01
EP2588962B1 (en) 2020-03-18
US8626986B2 (en) 2014-01-07
WO2012012085A3 (en) 2012-03-15
KR20130142103A (ko) 2013-12-27
WO2012012085A2 (en) 2012-01-26
US20120005405A1 (en) 2012-01-05
TW201216059A (en) 2012-04-16

Similar Documents

Publication Publication Date Title
TWI536163B (zh) 記憶體區塊之先佔式廢棄項目收集
TWI514137B (zh) 使用揮發性記憶體的記憶體區塊之廢棄項目收集
US10838859B2 (en) Recency based victim block selection for garbage collection in a solid state device (SSD)
TWI597605B (zh) 用於資料儲存裝置的損耗平均方法
US8909986B2 (en) Data storing method for solid state drive to preserve data integrity after power failure
US11354236B2 (en) Garbage collection method for data storage device
US20130073798A1 (en) Flash memory device and data management method
TWI524183B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20100169588A1 (en) Optimized memory management for random and sequential data writing
JP4977703B2 (ja) 予定再生操作を伴う不揮発性メモリ
JP5068754B2 (ja) 改良されたホストインターフェイス
TWI498735B (zh) 由主機至儲存裝置之刪除資料的暗示
KR20110103165A (ko) 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템
TWI430091B (zh) Semiconductor memory device
TW201401050A (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
TW201508748A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI454922B (zh) 記憶體儲存裝置及其記憶體控制器與資料寫入方法
TW201835769A (zh) 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元
TW202036300A (zh) 資料儲存裝置以及非揮發式記憶體控制方法
KR20160119607A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN112799601A (zh) 有效数据合并方法、存储器存储装置及控制电路单元
EP4231131A1 (en) Data storage method and device
EP4180937A1 (en) Memory controller, storage device, and operating method of storage device
Mir et al. A High Performance Reconfigurable Architecture for Flash File Systems.
CN117349227A (zh) 文件处理方法、电子设备和存储介质

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees