TWI703571B - 數據儲存裝置及其操作方法 - Google Patents
數據儲存裝置及其操作方法 Download PDFInfo
- Publication number
- TWI703571B TWI703571B TW105123159A TW105123159A TWI703571B TW I703571 B TWI703571 B TW I703571B TW 105123159 A TW105123159 A TW 105123159A TW 105123159 A TW105123159 A TW 105123159A TW I703571 B TWI703571 B TW I703571B
- Authority
- TW
- Taiwan
- Prior art keywords
- garbage collection
- flux
- memory
- memory block
- block
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明涉及一種用於操作數據儲存裝置的方法,其包括:確定使用記憶塊的一有效頁面分佈特徵值;以及基於使用記憶塊的有效頁面分佈特徵值執行一垃圾收集操作。
Description
各個實施例總體係關於包括作為儲存介質的非依電性記憶體裝置的數據儲存裝置。
最近,計算機環境範例已經轉變為普及的計算系統使得計算機系統可隨時隨地被使用。由於此,例如行動電話、數位相機和筆記型電腦的便攜式電子裝置的使用已經迅速增加。通常,這些便攜式電子裝置使用利用了記憶體裝置的數據儲存裝置。數據儲存裝置被用於儲存要被用於便攜式電子裝置中的數據。
由於沒有機械驅動部件,使用記憶體裝置的數據儲存裝置具有以下優點:優良的穩定性和耐久性、高資訊存取速度和低功耗。具有這些優點的數據儲存裝置包括通用序列匯流排(USB)記憶體裝置、具有各種介面的記憶卡、通用快閃儲存(UFS)裝置和固態硬碟(SSD)。
本申請請求於2016年3月7日向韓國知識產權局提交的申請號為10-2016-0027151的韓國申請的優先權,其全文透過引用併入本文。
各個實施例涉及數據儲存裝置的操作方法,其能夠根據有效頁面分佈特徵值(distribution characteristic)最佳化垃圾收集操作。
在一實施例中,用於操作數據儲存裝置的方法可以包括:確定與應當被保護的空記憶塊的最小數量成正比並且與表示使用記憶塊的有效頁面被分佈的狀態的使用記憶塊的有效頁面分佈特徵值成反比的觸發值;在當前空記憶塊的數量大於觸發值的情況下,透過第一垃圾收集通量執行垃圾收集操作;以及在當前空記憶塊的數量等於或小於觸發值的情況下,透過第二垃圾收集通量執行垃圾收集操作。
在一實施例中,用於操作數據儲存裝置的方法可以包括:確定使用記憶塊的有效頁面分佈特徵值;以及基於使用記憶塊的有效頁面分佈特徵值執行垃圾收集操作。
在一實施例中,數據儲存裝置可以包括:記憶體裝置,其包括多個記憶塊;以及控制器,其適於確定在多個記憶塊中的使用記憶塊的有效頁面分佈特徵值,並且基於使用記憶塊的有效頁面分佈特徵值執行垃圾收集操作。
根據一實施例,數據儲存裝置的垃圾收集操作可以被最佳化,並因此數據儲存裝置的操作速度可以被提升。
100:數據儲存裝置
200:控制器
210:控制單元
230:隨機存取記憶體
300:非依電性記憶體裝置
310:記憶體單元區域
320:列解碼器
330:行解碼器
340:數據讀取/寫入塊
350:電壓發生器
360:控制邏輯
S100:第一步驟
S110:步驟
S120:步驟
S200:第二步驟
S210:步驟
S211:步驟
S213:步驟
S230:步驟
S231:步驟
S233:步驟
1000:數據處理系統
1100:主機裝置
1200:數據儲存裝置
1210:控制器
1211:主機介面單元
1212:控制單元
1213:記憶體介面單元
1214:隨機存取記憶體
1215:錯誤校正碼(ECC)單元
1220:非依電性記憶體裝置
2000:數據處理系統
2100:主機裝置
2200:固態硬碟(SSD)
2210:控制器
2211:記憶體介面單元
2212:主機介面單元
2213:錯誤校正碼(ECC)單元
2214:控制單元
2215:隨機存取記憶體
2220:緩衝記憶體裝置
2231:非依電性記憶體裝置
2232:非依電性記憶體裝置
223n:非依電性記憶體裝置
2240:電源
2241:輔助電源
2250:訊號連接器
2260:電源連接器
3000:計算機系統
3100:網路配接器
3200:中央處理單元(CPU)
3300:數據儲存裝置
3400:隨機存取記憶體(RAM)
3500:唯讀記憶體(ROM)
3600:用戶介面
3700:系統匯流排
〔圖1〕是示出根據本發明的實施例的數據儲存裝置的方塊圖。
〔圖2〕是示出根據本發明的實施例的圖1中所示的隨機存取記憶體中要被驅動的軟體的簡圖。
〔圖3〕是示出根據本發明的實施例的由圖2的垃圾收集模組執行的垃圾收集操作的簡圖。
〔圖4〕是示出根據本發明的實施例的垃圾收集操作的流程圖。
〔圖5〕是示出根據本發明的實施例的其中數據被高效地寫入記憶塊中且因此觸發值較小的示例的簡圖。
〔圖6〕是示出根據本發明的實施例的其中數據被低效地寫入記憶塊中且因此觸發值較大的示例的簡圖。
〔圖7〕是示出根據本發明的實施例的第一垃圾收集操作和第二垃圾收集操作的簡圖。
〔圖8〕是示出根據本發明的實施例的包括數據儲存裝置的數據處理系統的方塊圖。
〔圖9〕是示出根據本發明的實施例的包括固態硬碟(SSD)的數據處理系統的方塊圖。
〔圖10〕是示出根據本發明的實施例的圖9中所示的SSD控制器的示例性配置的方塊圖。
〔圖11〕是示出根據本發明的實施例的包括數據儲存裝置的計算機系統的方塊圖。
〔圖12〕是示出根據本發明的實施例的包括在數據儲存裝置中的非依電性記憶體裝置的方塊圖。
在本發明中,在閱讀以下結合附圖的示例性實施例之後,本發明的優點、特徵及實現它們的方法將變得更顯而易見。然而,本發明可以不同的形式被呈現並且不應被解釋為限於本文所闡述的實施例。相反,這些實施例被提供以充分詳細地描述本發明以使得本發明所屬領域內的技術人員能夠實施本發明。
在此應當理解的是,本發明的實施例不限於附圖中所示出的細節並且附圖不一定按比例繪製,並且在一些實例中,為了更清楚地描述本發明的某些特徵,比例可能已經被放大。儘管特定的術語被用於本文,但應當理解的是,本文所使用的術語只是為了描述特定的實施例而不是為了限定本發明的範圍。
如本文所使用的,術語“和/或”包括一個或多個相關所列項目的任何和所有的組合。將被理解的是,當元件被稱作“在另一個元件上”、“連接至”或“聯接至”另一個元件時,其可以直接在其它的元件上、連接或聯接至其它的元件或者中間元件可以存在。如本文所使用的,除非上下文清楚地另外表明,否則單數形式也旨在包括複數形式。將進一步理解的是,在本說明中使用的術語“包括”、“包括有”、“包含”和/或“包含有”說明至少一個所述特徵、步驟、操作和/或元件的存在,但不排除其一個或多個其它的特徵、步驟、操作和/或元件的存在或添加。
在下文中,數據儲存裝置的操作方法將會參照附圖並透過實施例的各個示例進行描述。
現在參照圖1,根據本發明的實施例的數據儲存裝置100被提供。
根據圖1的實施例,數據儲存裝置100可以包括控制器200和非依電性記憶體裝置300。控制器200可以包括控制單元210和隨機存取記憶體230。
數據儲存裝置100可以儲存要被例如行動電話、MP3播放器、筆記型電腦、桌上型電腦、遊戲機、電視(TV)、車載資訊娛樂系統等的主機裝置(未示出)存取的數據。數據儲存裝置100也可以被稱作記憶體系統。
根據與主機裝置電聯接的介面的協定,數據儲存裝置100可以被製成各種儲存裝置中的任意一種。例如,數據儲存裝置100可以被配置為各種儲存裝置中的任意一種,例如,固態硬碟,MMC、eMMC、RS-MMC和微型-MMC形式的多媒體卡,SD、迷你-SD和微型-SD形式的安全數位卡,通用序列匯流排(USB)儲存裝置,通用快閃儲存(UFS)裝置,個人電腦記憶卡國際協會(PCMCIA)卡類型儲存裝置,外圍組件互聯(PCI)卡類型儲存裝置,高速PCI(PCI-E)卡類型儲存裝置,標準快閃(CF)卡,智能媒體卡和記憶棒(memory stick)等。
數據儲存裝置100可以被製成例如堆疊封裝(POP)、系統級封裝(SIP)、系統級晶片(SOC)、多晶片封裝(MCP)、板上晶片(COB)、晶圓級製造封裝(WFP)和晶圓級堆疊封裝(WSP)的各種封裝中的任意一種。
控制單元210可以驅動編碼類型的指令或算法(例如軟體),並可以分析並處理從主機裝置輸入的請求。控制單元210可以透過記憶體控制單元(未示出)控制非依電性記憶體裝置300以處理來自主機裝置的請求。
隨機存取記憶體230可以儲存要被控制單元210驅動的軟體。而且,隨機存取記憶體230可以儲存軟體的驅動所必需的數據,例如元數據。即,隨機存取記憶體230可以作為控制單元210的工作記憶體操作。隨機存取記憶體230可以臨時儲存要被從主機裝置傳輸至非依電性記憶體裝置300或從非依電性記憶
體裝置300傳輸至主機裝置的數據。換言之,隨機存取記憶體230可以作為數據緩衝記憶體或者數據快取記憶體操作。
非依電性記憶體裝置300可以作為數據儲存裝置100的儲存介質操作。非依電性記憶體裝置300可以由例如NAND快閃記憶體裝置、NOR快閃記憶體裝置、使用鐵電電容的鐵電隨機存取記憶體(FRAM)、使用隧道磁阻(TMR)層的磁性隨機存取記憶體(MRAM)、使用硫系合金的相變隨機存取記憶體(PCRAM)以及使用過渡金屬氧化物的電阻隨機存取記憶體(RERAM)的各種非依電性記憶體裝置中的任意一種配置。鐵電隨機存取記憶體(FRAM)、磁性隨機存取記憶體(MRAM)、相變隨機存取記憶體(PCRAM)以及電阻隨機存取記憶體(RERAM)是能夠隨機存取記憶體單元的非依電性隨機存取記憶體。非依電性記憶體裝置300可以被NAND快閃記憶體裝置與上述各種非依電性隨機存取記憶體裝置的結合配置。在下文的描述中,由NAND快閃記憶體裝置配置的非依電性記憶體裝置300(在下文中被稱作快閃記憶體裝置)將會被例示。
快閃記憶體裝置300可以包括記憶體單元區域310。記憶體單元區域310可以包括多個記憶塊。多個記憶塊的每個可以包括多個頁面。從操作的角度或實體的(或結構的)角度來看,包括在記憶體單元區域310中的記憶體單元可以被配置成分層記憶體單元組或記憶體單元單元(memory cell unit)。例如,被聯接至相同字線並且要被同時讀取和寫入(或編程)的記憶體單元可以被配置成頁面P。在下文的描述中,為便於解釋,被配置成頁面P的記憶體單元將被稱作“頁面”。而且,要被同時擦除的記憶體單元可以被配置成記憶塊B。
在下文的描述中,例如,記憶體區域310被8個記憶塊B1至B8配置。而且,也作為一個示例,記憶塊B1至B8的每個被示為包括4個頁面P1至P4。記憶塊和頁面的數量可以在不脫離本發明的範圍的情況下透過設計改變。
圖2是示出根據本發明的實施例的圖1中所示的隨機存取記憶體230中要被驅動的軟體示例的簡圖。
數據儲存裝置100的控制單元210可以驅動被稱作快閃轉換層FTL的軟體以控制快閃記憶體裝置300的至少一個固有操作並為主機裝置提供裝置兼容性。透過快閃轉換層FTL的驅動,數據儲存裝置100可被主機裝置識別為一般的數據儲存裝置,例如硬碟。
負載於隨機存取記憶體230上的快閃轉換層FTL可以由用於執行各種功能的模組和驅動模組所需要的元數據配置。例如,如圖2所示,快閃轉換層FTL可以包括位址映射表MAP、損耗均衡模組WLM、壞塊管理模組BBM和垃圾收集模組GCM。快閃轉換層FTL的配置不限於上述模組,並且可以進一步包括模組,例如用於並列操作多個快閃記憶體裝置300的交錯模組、用於管理意外斷電的突然斷電管理模組和在相關領域內已知的其它模組。
在主機裝置存取數據儲存裝置100(例如,請求讀取操作或寫入操作)的情況下,主機裝置可以將邏輯位址提供至數據儲存裝置100。快閃轉換層FTL可以將提供的邏輯位址轉換為快閃記憶體裝置300的實體位址,並透過參照被轉換的實體位址執行被請求的操作。為了使這個位址轉換操作被執行,位址轉換數據(例如位址映射表MAP)可以被包括在快閃轉換層FTL中。
損耗均衡模組WLM可以管理快閃記憶體裝置300的記憶塊B1至B8的損耗水平。透過擦除操作和寫入操作,快閃記憶體裝置300的記憶體單元可能老化。老化的記憶體單元(即,損壞的記憶體單元)可能導致故障,諸如,例如實體缺陷。為了防止某個記憶塊比其它記憶塊損壞得更快,損耗均衡模組WLM可以管理各自的記憶塊的擦除-寫入計數,以這種方式達到均衡。
壞塊管理模組BBM可以管理在快閃記憶體裝置300的記憶塊B1至B8中已經出現故障的記憶塊。如上所述,諸如例如實體缺陷的故障可出現在損
壞的記憶體單元中。儲存在故障的記憶體單元中的數據不可以被正常讀出。此外,數據不可以被正常儲存在故障的記憶體單元中。壞塊管理模組BBM可以使其不被使用的方式管理包括故障記憶體單元的記憶塊。
由於快閃記憶體裝置300的結構特點,其不支持數據的重寫。即,將數據儲存在已被寫入數據的記憶體單元中是不可能的。因此,為了將數據重寫入已被寫入數據的記憶體單元中,應當首先進行擦除操作。這也被稱作寫入前的擦除操作。
快閃記憶體裝置300的擦除操作需要很長的時間。由於該原因,在擦除已被寫入數據的記憶體單元之後,控制單元210不將數據重寫入擦除的記憶體單元中。而是,控制單元210將要被寫入已被寫入數據的記憶體單元中的數據儲存在恢復至擦除狀態的記憶體單元中。透過控制單元210的該操作,有效數據和無效數據被混合在快閃記憶體裝置300中。視情況需要,控制單元210可以執行將有效數據收集至一個地方並擦除無效數據的一系列操作(即,垃圾收集操作)。垃圾收集操作可以被稱為合併操作。
垃圾收集模組GCM可以對快閃記憶體裝置300的記憶塊B1至B8執行垃圾收集操作,如圖3所示。垃圾收集模組GCM可以執行垃圾收集操作,同時執行來自主機裝置的請求。另外,垃圾收集模組GCM可以執行垃圾收集操作,作為用於管理快閃記憶體裝置300的內部操作,而不管來自主機裝置的請求。
圖3示出根據本發明的實施例的由圖2的垃圾收集模組GCM執行的垃圾收集操作。
根據圖3的實施例,沒有被寫入任何數據的記憶塊(例如,擦除的記憶塊)被定義為空塊EB。處於擦除狀態的空塊EB包括多個空頁面EP。已被寫入儲存在其中的一些數據的記憶塊被定義為使用塊UB。使用塊UB可以包括至少一個空頁面EP、有效數據被儲存在其中的至少一個頁面(下文中稱作有效頁
面VP)和無效數據被儲存在其中的至少一個頁面(下文中稱作無效頁面IVP)。在使用記憶塊中,被確定為垃圾收集操作的目標的記憶塊,即,要對其執行垃圾收集操作的記憶塊被定義為棄置(victim)塊VB。
在第一棄置塊VB1的頁面P1至P4中,有效頁面P3和P4(除了空頁面P1和P2以外)可以被分別複製到空塊EB1的空頁面P1和P2。而且,在第二棄置塊VB2的頁面P1至P4中,有效頁面P3和P4(除了無效頁面P1和P2以外)可以被分別複製到空塊EB1的空頁面P3和P4。複製有有效頁面的空塊EB1可以因此成為使用塊UB3。在有效頁面被複製之後,各自的棄置塊VB1和VB2可以被擦除並成為空塊EB2和EB3。
垃圾收集(GC)操作包括將有效頁面VP從棄置塊VB複製到空塊EB的操作(即,寫入操作),和擦除棄置塊VB的操作。因此,垃圾收集(GC)操作可消耗控制器200的很多資源並且可需要很長的操作時間。因此,當垃圾收集(GC)操作被執行的時機或者垃圾收集(GC)操作所需要的時間被最佳化時,數據儲存裝置100的操作速度可以被提升。可替換地,當垃圾收集(GC)操作被執行的量,即垃圾收集(GC)執行量或處理量(下文中稱為垃圾收集通量)被最佳化時,數據儲存裝置100的操作速度可被提升。
圖4是示出根據本發明的實施例的垃圾收集操作的流程圖。
根據圖4的實施例,由垃圾收集模組(GCM)執行的垃圾收集操作可以包括第一步驟(即,步驟S100)和第二步驟(即,步驟S200)。為了便於解釋,第一步驟將參照圖4至圖6進行描述,並且第二步驟將隨後參照圖4和圖7進行描述。
第一步驟(即,步驟S100)可以是確定要被執行的垃圾收集是何種類型的步驟。第一步驟(即,步驟S100)可以包括確定或計算觸發值TV的步驟S110以及根據觸發值TV確定要被執行的垃圾收集的類型的步驟S120。
在步驟S110中,觸發值TV(或確定參考值)可以被確定。觸發值TV可以如方程1計算。
其中,為了提供用於性能提升的內部操作所必需的空記憶體區域(例如,保留區域或過量供給區域),MEB(下文中稱作最小的空塊)是空記憶塊的安全的最小數量。
VPDC是記憶塊B1至B8的(或中的)有效頁面分佈特徵值,UBVPA是使用塊的有效頁面的平均值,以及NUB是使用塊的數量。
有效頁面分佈特徵值VPDC透過將使用塊的有效頁面的平均值(下文中稱作平均有效頁面)UBVPA除以使用塊的數量NUB計算得出。有效頁面分佈特徵值VPDC可以與平均有效頁面UBVPA成正比。較小的有效頁面分佈特徵值VPDC意味著使用塊的平均有效頁面UBVPA較少。因此,較小的有效頁面分佈特徵值VPDC意味著數據被低效地寫入記憶塊中,即,數據透過被分散在許多記憶塊上而被寫入。相反地,較大的有效頁面分佈特徵值VPDC意味著使用塊的平均有效頁面UBVPA較多。因此,較大的有效頁面分佈特徵值VPDC意味著數據被高效地寫入記憶塊中,即,數據透過被集中在某些記憶塊上而被寫入。
觸發值TV透過將最小空塊MEB除以有效頁面分佈特徵值VPDC計算得出。觸發值TV與有效頁面分佈特徵值VPDC成反比。因此,如果有效頁面分佈特徵值VPDC增加,則觸發值TV下降。換言之,如果數據被高效地寫入到記憶塊中,則觸發值TV下降。相反地,如果有效頁面分佈特徵值VPDC下降,則觸發值TV增加。換言之,如果數據被低效地寫入到記憶塊中,則觸發值TV增加。
由於觸發值TV係根據有效頁面分佈特徵值VPDC確定,所以觸發值TV是指示數據是被高效地寫入還是被低效地寫入的資訊。因此,觸發值TV可以被用作用於確定隨後要被執行的垃圾收集的類型的參考值。
即,在步驟S120中,可以作比較以確定當前空塊的數量NEB是否大於觸發值TV。根據比較空塊的數量NEB和觸發值TV的結果,第一類型垃圾收集操作GC1或第二類型垃圾收集操作GC2可以被執行。例如,在空塊的數量NEB大於觸發值TV的情況下,進程可以進入到步驟S210,並且第一類型垃圾收集操作GC1可以被執行。相反地,在空塊的數量NEB等於或小於觸發值TV的情況下,進程可以進入到步驟S230,並且第二類型垃圾收集操作GC2可以被執行。
圖5是示出數據被高效地寫入到記憶塊中並且因此觸發值TV較小的情況的簡圖。作為示例,最小空塊MEB被假定為“1”。
根據圖5的實施例,空塊的數量NEB可以被確定為三“3”,即,空塊B3、B4和B8。使用塊的數量NUB可以被確定為“5”,即,使用塊B1、B2、B5、B6和B7。平均有效頁面UBVPA隨後可以透過將使用塊B1、B2、B5、B6和B7的有效頁面的總數“10(=2+2+4+1+1)”除以使用塊的數量NUB“5”而被確定為“2”。觸發值TV可以透過將最小空塊MEB“1”除以有效頁面分佈特徵值VPDC“0.4”而被確定為“2.5”。
因為空塊的數量NEB“3”大於觸發值TV“2.5”,這意味著有效頁面更密集地集中於使用塊B1、B2、B5、B6和B7中。因為有效頁面更密集地集中在使用塊B1、B2、B5、B6和B7中,所以空塊EB比最小空塊MEB更安全,並且由於該原因,沒有必要急於執行垃圾收集操作。因此,在空塊的數量NEB大於觸發值TV的情況下,其中非垃圾收集操作比垃圾收集操作被更密集地集中執行的第一類型垃圾收集操作GC1被執行。
圖6是示出數據被低效地寫入到記憶塊中並且因此觸發值TV較大的情況的簡圖。作為示例,最小空塊MEB被假定為“1”。
根據圖6的實施例,空塊的數量NEB可以被確定為“1”,即,空塊B8。使用塊的數量NUB可以被確定為“7”,即,塊B1至B7。透過將使用塊B1至B7的有效頁面的總數“12(2+2+1+1+4+1+1)”除以使用塊的數量NUB“7”,平均有效頁面UBVPA可以被確定為“1.71”。觸發值TV可以透過將最小空塊MEB“1”除以有效頁面分佈特徵值VPDC“0.245”被確定為“4.08”。
因為空塊的數量NEB“1”等於或小於觸發值TV“4.08”,這意味著有效頁面被分散在使用塊B1至B7中的各處。因為有效頁面被分散在使用塊B1至B7中的各處,所以空塊EB沒有最小空塊MEB安全,並且由於該原因,有必要急於執行垃圾收集操作。因此,在空塊的數量NEB等於或小於觸發值TV的情況下,其中垃圾收集操作比非垃圾收集操作被更密集地集中執行的第二類型垃圾收集操作GC2可以被執行。
再次參照圖4,第二步驟(即,步驟S200)可以是執行在第一步驟中確定的類型的垃圾收集操作垃圾收集通量的步驟。第二步驟(即,步驟S200)可以包括其中第一類型垃圾收集操作GC1被執行的步驟S210和其中第二類型垃圾收集操作GC2被執行的步驟S230。
其中第一類型垃圾收集操作GC1被執行的步驟S210可以包括確定第一垃圾收集通量GCTH1的步驟S211和透過第一垃圾收集通量GCTH1執行垃圾收集操作的步驟S213。
在步驟S211中,第一垃圾收集通量GCTH1可以被確定。第一垃圾收集通量GCTH1可以按照方程2計算。
其中,方程2中的縮寫詞的解釋如下。
LPD意為由於垃圾收集操作被執行而降低的性能的極限值(下文中稱作極限性能)。極限性能LPD用於限制垃圾收集通量。換言之,極限性能LPD可以用於控制垃圾收集操作被執行的比例以及非垃圾收集操作被執行的比例。
RGCTH作為函數f(v)的變量意為被需要的垃圾收集通量。所需要的垃圾收集通量RGCTH可以透過將棄置塊的有效頁面分佈特徵值VVPDC除以
使用塊的有效頁面分佈特徵值VPDC計算得出。棄置塊的有效頁面分佈特徵值VVPDC透過將棄置塊的平均有效頁面VBVPA除以棄置塊的數量NVB計算得出。使用塊的有效頁面分佈特徵值VPDC透過將使用塊的平均有效頁面UBVPA除以使用塊的數量NUB計算得出。
假設棄置塊的有效頁面分佈特徵值VVPDC較小並且使用塊的有效頁面分佈特徵值VPDC較大,即,數據被低效地寫入棄置塊中並且數據被高效地寫入使用塊中。在這種情況下,透過執行垃圾收集操作而獲得的收益通常較大。即,在這種情況下,儘管垃圾收集操作被執行至較小程度,但空塊可以被容易地保護。因此,以如果棄置塊的有效頁面分佈特徵值VVPDC較小並且使用塊的有效頁面分佈特徵值VPDC較大,則垃圾收集操作被執行至較小程度這樣的方式,所需要的垃圾收集通量RGCTH可以被設為與棄置塊的有效頁面分佈特徵值VVPDC成正比並且與使用塊的有效頁面分佈特徵值VPDC成反比。
假設棄置塊的有效頁面分佈特徵值VVPDC較大並且使用塊的有效頁面分佈特徵值VPDC較小,即,數據被高效地寫入棄置塊中並且數據被低效地寫入使用塊中。在這種情況下,透過執行垃圾收集操作而獲得的收益可能較小。即,在這種情況下,儘管垃圾收集操作被執行至較大程度,但空塊可能不被容易地保護。因此,以如果棄置塊的有效頁面分佈特徵值VVPDC較大並且使用塊的有效頁面分佈特徵值VPDC較小,則垃圾收集操作被執行至較大程度這樣的方式,所需要的垃圾收集通量RGCTH可以被設為與棄置塊的有效頁面分佈特徵值VVPDC成正比並且與使用塊的有效頁面分佈特徵值VPDC成反比。
RUB作為函數f(v)的另一個變量意為使用塊與總體記憶塊的比例。使用塊的比例RUB透過將使用塊的數量NUB除以總體塊的數量NTB計算得出。使用塊的比例RUB用於透過變量RGCTH控制被施加在函數f(v)上的影響。
第一垃圾收集通量GCTH1可以根據極限性能LPD和函數f(v)被確定。因此,如圖7所示,第一垃圾收集通量GCTH1可以在極限性能LPD內變化。儘管所需要的垃圾收集通量由函數f(v)確定,但是垃圾收集通量可以由極限性能LPD限定。換言之,透過極限性能LPD,非垃圾收集操作EGC可以比垃圾收集操作GC更密集地被集中執行。由於該原因,第一類型垃圾收集操作GC1可以被定
義為其中非垃圾收集操作EGC被執行的比例高於垃圾收集操作GC被執行的比例的垃圾收集操作。
例如,非垃圾收集操作EGC可以包括用於處理來自主機裝置的請求的操作,例如,快閃記憶體裝置300的讀取和寫入操作,到主機裝置的數據輸入操作/來自主機裝置的數據輸出操作等。非垃圾收集操作EGC被執行得越多,則數據儲存裝置100達到數據輸入/輸出量令人滿意的目標通量TGTH變得越容易。
其中第二類型垃圾收集操作GC2被執行的步驟S230可以包括確定第二垃圾收集通量GCTH2的步驟S231和透過第二垃圾收集通量GCTH2執行垃圾收集操作的步驟S233。
在步驟S231中,第二垃圾收集通量GCTH2可以被確定。第二垃圾收集通量GCTH2可以按照方程3被計算。
其中,方程3中的縮寫詞的解釋如下。
RGCTH作為函數f(v)的變量是所需要的垃圾收集通量。所需的垃圾收集通量RGCTH透過將棄置塊的有效頁面分佈特徵值VVPDC除以使用塊的有效頁面分佈特徵值VPDC計算得出。棄置塊的有效頁面分佈特徵值VVPDC透過將棄置塊的平均有效頁面VBVPA除以棄置塊的數量NVB計算得出。使用塊的有效頁面分佈特徵值VPDC透過將使用塊的平均有效頁面UBVPA除以使用塊的數量NUB計算得出。
假設棄置塊的有效頁面分佈特徵值VVPDC較小並且使用塊的有效頁面分佈特徵值VPDC較大,即,數據被低效地寫入棄置塊中並且數據被高效
地寫入使用塊中。在這種情況下,透過執行垃圾收集操作所獲得的收益較大。即,在這種情況下,儘管垃圾收集操作被執行至較小程度,但是空塊可以被容易保護。因此,以如果棄置塊的有效頁面分佈特徵值VVPDC較小並且使用塊的有效頁面分佈特徵值VPDC較大,則垃圾收集操作被執行至較小程度這種方式,所需的垃圾收集通量RGCTH可以被設為與棄置塊的有效頁面分佈特徵值VVPDC成正比並且與使用塊的有效頁面分佈特徵值VPDC成反比。
假設棄置塊的有效頁面分佈特徵值VVPDC較大並且使用塊的有效頁面分佈特徵值VPDC較小,即,數據被高效地寫入棄置塊中並且數據被低效地寫入使用塊中。在這種情況下,透過執行垃圾收集操作所獲得的收益可能較小。即,在這種情況下,儘管垃圾收集操作被執行至較大程度,但是空塊可能不被容易保護。因此,以如果棄置塊的有效頁面分佈特徵值VVPDC較大並且使用塊的有效頁面分佈特徵值VPDC較小,則垃圾收集操作被執行至較大程度這種方式,所需的垃圾收集通量RGCTH可以被設為與棄置塊的有效頁面分佈特徵值VVPDC成正比並且與使用塊的有效頁面分佈特徵值VPDC成反比。
RUB是函數f(v)的另一個變量並且意為使用塊與總體記憶塊的比例。使用塊的比例RUB透過將使用塊的數量NUB除以總體塊的數量NTB計算得出。使用塊的比例RUB用於透過變量RGCTH控制被施加在函數f(v)上的影響。
第二垃圾收集通量GCTH2可以根據函數f(v)被確定。因此,如圖7所示,第二垃圾收集通量GCTH2可以在目標通量TGTH內變化。即,為了保護空塊,儘管當垃圾收集操作被執行時沒有達到目標通量TGTH,但垃圾收集操作GC仍可以更集中的方式被執行第二垃圾收集通量GCTH2。由於該原因,第二類型垃圾收集操作GC2可以被定義為其中垃圾收集操作GC被執行的比例高於非垃圾收集操作EGC被執行的比例的垃圾收集操作。
圖8是示出根據本發明的實施例的包括數據儲存裝置1200的數據處理系統1000的方塊圖。
根據圖8的實施例,數據處理系統1000可以包括主機裝置1100和數據儲存裝置1200。
數據儲存裝置1200可以包括控制器1210和非依電性記憶體裝置1220。數據儲存裝置1200可以透過被聯接至例如行動電話、MP3播放器、筆記型電腦、桌上型電腦、遊戲機、電視(TV)、車載資訊娛樂系統等的主機裝置1100而使用。數據儲存裝置1200也可以被稱作記憶體系統。
控制器1210可以包括主機介面單元1211、控制單元1212、記憶體介面單元1213、隨機存取記憶體1214和錯誤校正碼(ECC)單元1215。
控制單元1212可以響應於來自主機裝置1100的請求控制控制器1210的一般操作。控制單元1212可以驅動用於控制非依電性記憶體裝置1220的韌體或軟體。
控制單元1212可以執行上文參照圖4至圖7所描述的垃圾收集操作。因此,數據儲存裝置1200的垃圾收集操作可以被最佳化,並因此數據儲存裝置1200的操作速度可以被提升。
隨機存取記憶體1214可以被用作控制單元1212的工作記憶體。隨機存取記憶體1214可以被用作臨時儲存從非依電性記憶體裝置1220中讀取出的數據或主機裝置1100提供的數據的緩衝記憶體。
主機介面單元1211可以連接主機裝置1100與控制器1210。例如,主機介面單元1211可以透過諸如通用序列匯流排(USB)協定、通用快閃儲存(UFS)協定、多媒體卡(MMC)協定、外圍組件互聯(PCI)協定、高速PCI(PCI-E)協定、並列高級技術附件(PATA)協定、串列高級技術附件(SATA)協定、小型計算機系統介面(SCSI)協定和串列SCSI(SAS)協定等多種介面協定中的一種與主機裝置1100通信。
記憶體介面單元1213可以連接控制器1210與非依電性記憶體裝置1220。記憶體介面單元1213可以向非依電性記憶體裝置1220提供命令和位址。而且,記憶體介面單元1213可以與非依電性記憶體裝置1220交換數據。
錯誤校正碼(ECC)單元1215可以ECC-編碼要被儲存在非依電性記憶體裝置1220中的數據。而且,錯誤校正碼(ECC)單元1215可以ECC-解碼從非依電性記憶體裝置1220中讀取出的數據。
非依電性記憶體裝置1220可以被用作數據儲存裝置1200的儲存介質。非依電性記憶體裝置1220可以包括多個非依電性記憶體晶片(或裸晶)NVM_1至NVM_k。
控制器1210和非依電性記憶體裝置1220可以被製成各種數據儲存裝置中的任意一種。例如,控制器1210和非依電性記憶體裝置1220可以被集成到一個半導體裝置中並且可以被製成MMC、eMMC、RS-MMC和微型-MMC形式的多媒體卡,SD、迷你-SD和微型-SD形式的安全數位卡,通用序列匯流排(USB)儲存裝置,通用快閃儲存(UFS)裝置,個人計算機儲存卡國際協會(PCMCIA)卡,標準快閃(CF)卡,智能媒體卡,記憶棒等中的任意一種。
圖9是示出根據本發明的實施例的包括固態硬碟(SSD)2200的數據處理系統2000的方塊圖。
根據圖9的實施例,數據處理系統2000可以包括主機裝置2100和固態硬碟(SSD)2200。
SSD 2200可以包括SSD控制器2210、緩衝記憶體裝置2220、非依電性記憶體裝置2231至223n、電源2240、訊號連接器2250和電源連接器2260。
SSD控制器2210可以響應於來自主機裝置2100的請求存取非依電性記憶體裝置2231至223n。
緩衝記憶體裝置2220可以臨時儲存要被儲存在非依電性記憶體裝置2231至223n中的數據。而且,緩衝記憶體裝置2220可以臨時儲存從非依電性記憶體裝置2231至223n中讀取出的數據。在SSD控制器2210的控制下,被臨時儲存在緩衝記憶體裝置2220中的數據可以被傳輸至主機裝置2100或者非依電性記憶體裝置2231至223n。
非依電性記憶體裝置2231至223n可以被用作SSD 2200的儲存介質。非依電性記憶體裝置2231至223n可以分別透過多個通道CH1至CHn與SSD控制器2210聯接。一個或多個非依電性記憶體裝置可以被聯接至一個通道。被聯接至每個通道的非依電性記憶體裝置可以被聯接至相同的訊號匯流排和數據匯流排。
電源2240可以將透過電源連接器2260輸入的電力PWR提供至SSD 2200的內部。電源2240可以包括輔助電源2241。輔助電源2241可以供應電力以使得SSD 2200在發生突然斷電時被正常終止。輔助電源2241可以包括具有較大電容、能夠充電電力PWR的電容器。
SSD控制器2210可以透過訊號連接器2250與主機裝置2100交換訊號SGL。訊號SGL可以包括命令、位址和數據等。訊號連接器2250可以根據主機裝置2100和SSD 2200之間的介面方案由例如並列高級技術附件(PATA)、串列高級技術附件(SATA)、小型計算機系統介面(SCSI)、串列SCSI(SAS)、外圍組件互聯(PCI)、高速PCI(PCI-E)和通用快閃儲存(UFS)協定中的一個的連接器配置。
圖10是示出圖9中所示的固態硬碟(SSD)控制器2210的示例性配置的方塊圖。
根據圖10的實施例,SSD控制器2210可以包括記憶體介面單元2211、主機介面單元2212、錯誤校正碼(ECC)單元2213、控制單元2214和隨機存取記憶體(RAM)2215。
記憶體介面單元2211可以向非依電性記憶體裝置2231至223n提供例如命令和位址的控制訊號。而且,記憶體介面單元2211可以與非依電性記憶體裝置2231至223n交換數據。在控制單元2214的控制下,記憶體介面單元2211可以將從緩衝記憶體裝置2220中傳輸的數據分散至各自的通道CH1至CHn。而且,在控制單元2214的控制下,記憶體介面單元2211可以將從非依電性記憶體裝置2231至223n讀取出的數據傳輸至緩衝記憶體裝置2220。
主機介面單元2212可以提供與和某協定對應的主機裝置2100的連接。例如,主機介面單元2212可以透過並列高級技術附件(PATA)、串列高級技術附件(SATA)、小型計算機系統介面(SCSI)、串列SCSI(SAS)、外圍組件互聯(PCI)、高速PCI(PCI-E)和通用快閃儲存(UFS)協定中的一個與主機裝置2100通信。此外,主機介面單元2212可以執行支持主機裝置2100的磁碟仿真功能以將SSD 2200識別為硬式磁碟機(HDD)。
控制單元2214可以分析並處理從主機裝置2100輸入的訊號SGL。控制單元2214可以根據用於驅動SSD 2200的韌體或軟體控制緩衝記憶體裝置2220和非依電性記憶體裝置2231至223n的操作。隨機存取記憶體2215可被用作用於驅動韌體或軟體的工作記憶體。
控制單元2214可以執行上文參照圖4至圖7所描述的垃圾收集操作。因此,SSD 2200的垃圾收集操作可以被最佳化,並因此SSD 2200的操作速度可以被提升。
在被儲存在緩衝記憶體裝置2220中的數據中,錯誤校正碼(ECC)單元2213可以產生要被傳輸至非依電性記憶體裝置2231至223n的奇偶校驗數據。產生的奇偶校驗數據可以和數據一起被儲存在非依電性記憶體裝置2231至223n中。錯誤校正碼(ECC)單元2213可以檢測從非依電性記憶體裝置2231至223n中讀取出的數據的錯誤。當檢測的錯誤位於可校正的範圍內時,錯誤校正碼(ECC)單元2213可以校正檢測的錯誤。
圖11是示出根據本發明的實施例的包括數據儲存裝置3300的計算機系統3000的方塊圖。
根據圖11的實施例,計算機系統3000可以包括被電聯接至系統匯流排3700的網路配接器3100、中央處理單元(CPU)3200、數據儲存裝置3300、隨機存取記憶體(RAM)3400、唯讀記憶體(ROM)3500和用戶介面3600。數據儲存裝置3300可以是圖1中所示的數據儲存裝置100、圖8中所示的數據儲存裝置1200或圖9中所示的SSD 2200。
網路配接器3100可以提供計算機系統3000和外部網路之間的連接。中央處理單元3200可以執行用於驅動存在於RAM 3400處的操作系統或應用程序的一般計算處理。
數據儲存裝置3300可以儲存計算機系統3000內所需的一般數據。例如,用於驅動計算機系統3000的操作系統、應用程序、各種程序模組、程序數據和用戶數據可以被儲存在數據儲存裝置3300中。
RAM 3400可以被用作計算機系統3000的工作記憶體。一經啟動,被從數據儲存裝置3300中讀取出的操作系統、應用程序、各種程序模組和驅動
程序所需的程序數據可以被加載到RAM 3400上。在操作系統被驅動前啟動的基本輸入/輸出系統(BIOS)可以被儲存在ROM 3500中。在計算機系統3000和用戶之間的資訊交換可以透過用戶介面3600實現。
圖12是示出根據本發明的實施例的包括在數據儲存裝置中的非依電性記憶體裝置300的方塊圖。
根據圖12的實施例,非依電性記憶體裝置300可以包括記憶體單元陣列310、列解碼器320、行解碼器330、數據讀取/寫入塊340、電壓發生器350和控制邏輯360。
記憶體單元陣列310可以包括被佈置在字線WL1至WLm和位線BL1至BLn彼此交叉的區域處的記憶體單元MC。
列解碼器320可以透過字線WL1至WLm與記憶體單元陣列310聯接。列解碼器320可以根據控制邏輯360的控制來操作。列解碼器320可以解碼由外部裝置(未示出)提供的位址。列解碼器320可以基於解碼的結果選擇並驅動字線WL1至WLm。例如,列解碼器320可以將由電壓發生器350提供的字線電壓提供給字線WL1至WLm。
數據讀取/寫入塊340可以透過位線BL1至BLn與記憶體單元陣列310聯接。數據讀取/寫入塊340可以包括分別對應於位線BL1至BLn的讀取/寫入電路RW1至RWn。數據讀取/寫入塊340可以根據控制邏輯360的控制來操作。數據讀取/寫入塊340可以根據操作模式作為寫入驅動器或讀出放大器來操作。例如,數據讀取/寫入塊340可以作為將由外部裝置提供的數據在寫入操作中儲存在記憶體單元陣列310中的寫入驅動器來操作。又例如,數據讀取/寫入塊340可以作為在讀取操作中從記憶體單元陣列310中讀取出數據的讀出放大器來操作。
行解碼器330可以根據控制邏輯360的控制來操作。行解碼器330可以解碼由外部裝置提供的位址。基於解碼的結果,行解碼器330可以將分別對應於位線BL1至BLn的數據讀取/寫入塊340的讀取/寫入電路RW1至RWn與數據輸入/輸出線(或數據輸入/輸出緩衝區)聯接。
電壓發生器350可以產生要被用在非依電性記憶體裝置300的內部操作中的電壓。由電壓發生器350產生的電壓可以被施加於記憶體單元陣列
310的記憶體單元。例如,在編程操作中產生的編程電壓可以被施加於待對其執行編程操作的記憶體單元的字線。又例如,在擦除操作中產生的擦除電壓可以被施加於待對其執行擦除操作的記憶體單元的阱區。還例如,在讀取操作中產生的讀取電壓可以被施加於待對其執行讀取操作的記憶體單元的字線。
基於由外部裝置提供的控制訊號,控制邏輯360可以控制非依電性記憶體裝置300的一般操作。例如,控制邏輯360可以控制非依電性記憶體裝置300的操作,例如,非依電性記憶體裝置300的讀取、寫入和擦除操作。
還注意到,在一些實例中,除非另有明確說明,否則對於相關領域的技術人員將顯而易見的是,結合一個實施例所描述的特徵或元件可以被單獨地使用或與另一個實施例的其它特徵或元件相組合地使用。
儘管各個實施例在上文中已經被描述,但是本領域技術人員將要理解的是,所描述的實施例僅是示例。因此,本文所描述的數據儲存裝置的操作方法不應限於所描述的實施例。對於相關領域內的技術人員將是顯而易見的是,可以做出各種改變和變型而不脫離如權利要求所限定的本發明的精神和範圍。
S100:第一步驟
S110:步驟
S120:步驟
S200:第二步驟
S210:步驟
S211:步驟
S213:步驟
S230:步驟
S231:步驟
S233:步驟
Claims (18)
- 一種用於操作數據儲存裝置的方法,其包括:確定使用記憶塊的有效頁面分佈特徵值;以及基於該使用記憶塊的有效頁面分佈特徵值執行垃圾收集操作,其中該垃圾收集操作包括第一類型垃圾收集操作和第二類型垃圾收集操作,其中執行該垃圾收集操作包括:根據比較觸發值和空記憶塊的數量的結果,執行該第一類型垃圾收集操作和該第二類型垃圾收集操作中的一種,該觸發值基於該使用記憶塊的有效頁面分佈特徵值確定,其中透過將使用記憶塊的有效頁面的平均值除以使用記憶塊的數量,來確定該使用記憶塊的有效頁面分佈特徵值。
- 如請求項1所述的方法,其中透過將空記憶塊的最小數量除以該有效頁面分佈特徵值來確定該觸發值。
- 如請求項1所述的方法,其中,在該空記憶塊的數量大於該觸發值的情況下,確定該第一類型垃圾收集操作將被執行,以及在該空記憶塊的數量等於或小於該觸發值的情況下,確定該第二類型垃圾收集操作將被執行。
- 如請求項3所述的方法,其中該第一類型垃圾收集操作被執行第一垃圾收集通量,該第一垃圾收集通量與所需垃圾收集通量和使用記憶塊的比例成正比,以及 其中該第二類型垃圾收集操作被執行第二垃圾收集通量,該第二垃圾收集通量與所需垃圾收集通量和使用記憶塊的比例成正比。
- 如請求項4所述的方法,其中透過將表示被選為該垃圾收集操作的目標的棄置記憶塊的有效頁面被分佈的狀態的棄置記憶塊的有效頁面分佈特徵值除以該使用記憶塊的有效頁面分佈特徵值,來確定該所需垃圾收集通量。
- 如請求項5所述的方法,其中透過將棄置記憶塊的有效頁面的平均值除以棄置記憶塊的數量,來確定該棄置記憶塊的有效頁面分佈特徵值。
- 如請求項4所述的方法,其中透過將該使用記憶塊的數量除以總體記憶塊的數量,來確定該使用記憶塊的比例。
- 如請求項4所述的方法,其中透過將該所需垃圾收集通量乘以限定該所需垃圾收集通量的極限值,來確定該第一垃圾收集通量。
- 如請求項4所述的方法,其中透過使用該所需垃圾收集通量,來確定該第二垃圾收集通量。
- 一種數據儲存裝置,其包括:記憶體裝置,其包括多個記憶塊;以及控制器,其適於確定在該多個記憶塊中的使用記憶塊的有效頁面分佈特徵值,並且基於該使用記憶塊的有效頁面分佈特徵值執行垃圾收集操作,其中該垃圾收集操作包括第一類型垃圾收集操作和第二類型垃圾收集操作, 其中該控制器根據比較觸發值和空記憶塊的數量的結果,來執行該第一類型垃圾收集操作和該第二類型垃圾收集操作中的一種,該觸發值基於該使用記憶塊的有效頁面分佈特徵值確定,其中該控制器透過將使用記憶塊的有效頁面的平均值除以使用記憶塊的數量,來確定該使用記憶塊的有效頁面分佈特徵值。
- 如請求項10所述的裝置,其中該控制器透過將空記憶塊的最小數量除以該有效頁面分佈特徵值,來確定該觸發值。
- 如請求項10所述的裝置,其中在該空記憶塊的數量大於該觸發值的情況下,該控制器確定該第一類型垃圾收集操作將被執行,以及在該空記憶塊的數量等於或小於該觸發值的情況下,該控制器確定該第二類型垃圾收集操作將被執行。
- 如請求項12所述的裝置,其中該控制器透過第一垃圾收集通量執行該第一類型垃圾收集操作,該第一垃圾收集通量與所需垃圾收集通量和使用記憶塊的比例成正比,以及其中該控制器透過第二垃圾收集通量執行該第二類型垃圾收集操作,該第二垃圾收集通量與所需垃圾收集通量和使用記憶塊的比例成正比。
- 如請求項13所述的裝置,其中該控制器透過將表示被選作該垃圾收集操作的目標的棄置記憶塊的有效頁面被分佈的狀態的棄置記憶塊的有效頁面分佈特徵值除以該使用記憶塊的有效頁面分佈特徵值,來確定該所需垃圾收集通量。
- 如請求項14所述的裝置,其中該控制器透過將棄置記憶塊的有效頁面的平均值除以該棄置記憶塊的數量,來確定該棄置記憶塊的有效頁面分佈特徵值。
- 如請求項13所述的裝置,其中該控制器透過將該使用記憶塊的數量除以總體記憶塊的數量,來確定該使用記憶塊的比例。
- 如請求項13所述的裝置,其中該控制器透過將該所需垃圾收集通量乘以限定該所需垃圾收集通量的極限值,來確定該第一垃圾收集通量。
- 如請求項13所述的裝置,其中該控制器透過使用該所需垃圾收集通量,來確定該第二垃圾收集通量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160027151A KR102596400B1 (ko) | 2016-03-07 | 2016-03-07 | 데이터 저장 장치 및 데이터 저장 장치의 동작 방법 |
KR10-2016-0027151 | 2016-03-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201732832A TW201732832A (zh) | 2017-09-16 |
TWI703571B true TWI703571B (zh) | 2020-09-01 |
Family
ID=59724212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105123159A TWI703571B (zh) | 2016-03-07 | 2016-07-22 | 數據儲存裝置及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10275349B2 (zh) |
KR (1) | KR102596400B1 (zh) |
CN (1) | CN107168886B (zh) |
TW (1) | TWI703571B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180024751A1 (en) * | 2016-07-19 | 2018-01-25 | Western Digital Technologies, Inc. | Metadata management on a storage device |
KR20180089742A (ko) * | 2017-02-01 | 2018-08-09 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP2019046530A (ja) | 2017-09-07 | 2019-03-22 | 東芝メモリ株式会社 | メモリシステム |
KR20190043863A (ko) * | 2017-10-19 | 2019-04-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
TWI659304B (zh) * | 2017-10-20 | 2019-05-11 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
TWI658462B (zh) | 2018-01-19 | 2019-05-01 | 慧榮科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |
US10621084B2 (en) * | 2018-03-05 | 2020-04-14 | International Business Machines Corporation | Efficient garbage collection in the presence of block dependencies |
JP6901427B2 (ja) | 2018-03-27 | 2021-07-14 | キオクシア株式会社 | ストレージ装置、コンピュータシステムおよびストレージ装置の動作方法 |
KR102620255B1 (ko) * | 2018-05-18 | 2024-01-04 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US10740229B2 (en) * | 2018-07-04 | 2020-08-11 | SK Hynix Inc. | Memory system and operating method thereof |
KR102634631B1 (ko) * | 2018-07-11 | 2024-02-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR20200085513A (ko) | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
US11567665B2 (en) | 2020-08-31 | 2023-01-31 | Micron Technology, Inc. | Data dispersion-based memory management |
TW202213084A (zh) * | 2020-09-28 | 2022-04-01 | 韓商愛思開海力士有限公司 | 儲存裝置、儲存裝置的控制方法及記錄媒體 |
KR102569823B1 (ko) * | 2021-02-24 | 2023-08-24 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130326120A1 (en) * | 2012-05-31 | 2013-12-05 | Silicon Motion, Inc. | Data storage device and operating method for flash memory |
US20150347295A1 (en) * | 2014-06-02 | 2015-12-03 | DongHyuk IHM | Method of operating a memory system using a garbage collection operation |
US9223694B2 (en) * | 2012-06-29 | 2015-12-29 | SK Hynix Inc. | Data storage device and operating method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488153A (zh) * | 2009-02-12 | 2009-07-22 | 浙江大学 | 嵌入式Linux下大容量闪存文件系统的实现方法 |
KR20140142759A (ko) * | 2013-05-31 | 2014-12-15 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 그의 동작방법과 비휘발성 메모리 장치를 포함하는 시스템 |
TWI524183B (zh) | 2014-01-09 | 2016-03-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
IN2015CH01601A (zh) * | 2015-03-28 | 2015-05-01 | Wipro Ltd |
-
2016
- 2016-03-07 KR KR1020160027151A patent/KR102596400B1/ko active IP Right Grant
- 2016-07-06 US US15/202,885 patent/US10275349B2/en active Active
- 2016-07-22 TW TW105123159A patent/TWI703571B/zh active
- 2016-08-15 CN CN201610671727.1A patent/CN107168886B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130326120A1 (en) * | 2012-05-31 | 2013-12-05 | Silicon Motion, Inc. | Data storage device and operating method for flash memory |
US9223694B2 (en) * | 2012-06-29 | 2015-12-29 | SK Hynix Inc. | Data storage device and operating method thereof |
US20150347295A1 (en) * | 2014-06-02 | 2015-12-03 | DongHyuk IHM | Method of operating a memory system using a garbage collection operation |
Also Published As
Publication number | Publication date |
---|---|
US20170255550A1 (en) | 2017-09-07 |
KR102596400B1 (ko) | 2023-11-01 |
KR20170104286A (ko) | 2017-09-15 |
US10275349B2 (en) | 2019-04-30 |
CN107168886A (zh) | 2017-09-15 |
CN107168886B (zh) | 2021-06-22 |
TW201732832A (zh) | 2017-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI703571B (zh) | 數據儲存裝置及其操作方法 | |
TWI704487B (zh) | 資料儲存設備及其操作方法 | |
US8843697B2 (en) | Operating method of data storage device | |
US20180130537A1 (en) | Data storage device and operating method thereof | |
US11086772B2 (en) | Memory system performing garbage collection operation and operating method of memory system | |
KR102233400B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN111916140B (zh) | 控制器及其操作方法以及包括控制器的存储器系统 | |
US11526439B2 (en) | Storage device and operating method thereof | |
US20200310956A1 (en) | Data storage device and operating method thereof | |
US10671527B2 (en) | Data storage device and method for operating the same | |
US10558562B2 (en) | Data storage device and operating method thereof | |
KR20210147696A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102434840B1 (ko) | 데이터 저장 장치 | |
KR102474937B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US10515693B1 (en) | Data storage apparatus and operating method thereof | |
KR102425470B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102372828B1 (ko) | 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치 | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
US10657046B2 (en) | Data storage device and operating method thereof | |
KR20230037255A (ko) | 이벤트 로그 관리 방법, 컨트롤러 및 저장 장치 | |
US11429530B2 (en) | Data storage device and operating method thereof | |
US10726938B2 (en) | Data storage device and operating method thereof | |
KR20200073122A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20190099570A (ko) | 데이터 저장 장치 및 그것의 동작 방법 |