TW201833754A - 非依電性記憶體裝置及其迭代排序方法 - Google Patents

非依電性記憶體裝置及其迭代排序方法 Download PDF

Info

Publication number
TW201833754A
TW201833754A TW106103464A TW106103464A TW201833754A TW 201833754 A TW201833754 A TW 201833754A TW 106103464 A TW106103464 A TW 106103464A TW 106103464 A TW106103464 A TW 106103464A TW 201833754 A TW201833754 A TW 201833754A
Authority
TW
Taiwan
Prior art keywords
blocks
candidate
candidate entity
block
sorted set
Prior art date
Application number
TW106103464A
Other languages
English (en)
Other versions
TWI655573B (zh
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 TW201833754A publication Critical patent/TW201833754A/zh
Application granted granted Critical
Publication of TWI655573B publication Critical patent/TWI655573B/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
    • 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/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile 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/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • 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/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一種非依電性記憶體(NVM)裝置及其迭代排序方法。所述NVM裝置可以進行迭代排序方法來從非依電性記憶體的多個實體塊中選擇一個目標實體塊,以及對該目標實體塊進行管理操作。迭代排序方法包括:從所述實體塊中選擇多個候選實體塊加入排序集合,依照元資料來排序在排序集合中的所有候選實體塊,從排序集合中取走具有最大(或最小)元資料的一個候選實體塊作為該目標實體塊,以及保留排序集合中的M個候選實體塊且將其餘候選實體塊從排序集合捨棄。

Description

非依電性記憶體裝置及其迭代排序方法
本發明是有關於一種記憶體裝置,且特別是有關於一種非依電性記憶體裝置及其迭代排序方法。
與傳統的硬碟機(hard disk drives)相比,由於快閃記憶體(flash memory)儲存設備的讀/寫性能佳且功耗低,使得快閃記憶體被廣泛應用於資料儲存系統中。快閃轉換層(Flash Translation Layer, FTL)是快閃記憶體型儲存設備的核心部分。快閃轉換層不僅負責排程資料路徑任務(data path tasks,亦即有關於性能),而且還管理著快閃記憶體的可靠性(reliability,亦即有關於耐久性)。快閃轉換層為習知技藝,故不再贅述。
快閃轉換層操作,例如磨損平衡(wear leveling)、垃圾收集(garbage collection)或巡檢讀取(patrol read),利用了來自於儲存設備的多個實體塊(block)的一些元資料(metadata)。這些實體塊的每一者各自具有不同的元資料,以記錄自己實體塊本身的管理資訊或計數值。例如,每個實體塊的所述元資料可能包括編程/抹除(program/erase)計數、無效資料計數(invalid data count)以及時間標記(time stamp)。每當快閃轉換層需要執行磨損平衡、垃圾收集或巡檢讀取時,所述元資料(即這些實體塊)需要被排序(或至少需要找到最大或最小值)。如何找出這些元資料的最大值(或最小值),或是排序這些元資料,是一個重要的課題。
本發明提供一種非依電性記憶體裝置及其迭代排序方法,以從多個候選實體塊中選擇一個目標實體塊去進行管理操作。
本發明的實施例提供一種非依電性記憶體裝置。非依電性記憶體裝置包括非依電性記憶體以及控制器。非依電性記憶體具有多個實體塊。控制器耦接至非依電性記憶體。控制器可以進行迭代排序方法來從這些實體塊的K個候選實體塊中選擇一個目標實體塊,以及對該目標實體塊進行管理操作。迭代排序方法包括:從所述K個候選實體塊中任意選擇N-M個候選實體塊加入排序集合,依照元資料(metadata)來排序該排序集合中的所有候選實體塊,經排序後從該排序集合中取走具有最大元資料或最小元資料的一個候選實體塊作為該目標實體塊,以及在從該排序集合中取走該目標實體塊後保留該排序集合中的M個候選實體塊且將其餘候選實體塊從該排序集合捨棄。其中,K、M、N為整數,且K>N>M。
本發明的實施例提供一種非依電性記憶體裝置的迭代排序方法,用以從多個實體塊的K個候選實體塊中選擇一個目標實體塊,以便對該目標實體塊進行一管理操作。所述迭代排序方法包括下述步驟。從所述K個候選實體塊中任意選擇N-M個候選實體塊加入排序集合。依照元資料來排序該排序集合中的所有候選實體塊。經排序後,從該排序集合中取走具有最大元資料或最小元資料的一個候選實體塊作為該目標實體塊。在從該排序集合中取走該目標實體塊後,保留該排序集合中的M個候選實體塊,且將其餘候選實體塊從該排序集合捨棄。其中,K、M、N為整數,且K>N>M。
基於上述,本發明實施例所提供的非依電性記憶體裝置及其迭代排序方法,其可以在一個排序集合中保留了前次迭代的M個候選實體塊,並且從非依電性記憶體裝置的多個實體塊中任意選擇N-M個實體塊加入該排序集合,然後依照元資料來排序該排序集合中的所有實體塊。藉由迭代抽樣方法(iterative sampling method)找最大值/最小值塊,然後去進行管理操作。該排序集合中的實體塊的數量可以遠小於非依電性記憶體裝置的實體塊的數量。與傳統解決方案相比較,由於更小的排序空間,因此複雜度低得多,且搜索延遲較小。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
圖1是依照本發明一實施例說明一種非依電性記憶體裝置100的電路方塊(circuit block)示意圖。依照設計需求,非依電性記憶體裝置100可以是隨身碟、固態硬碟(solid state disc, SSD)或是其他儲存裝置。非依電性記憶體裝置100可以耦接至主機(host)10。此主機10可以是電腦、手持式電話、多媒體播放器、相機或是其他電子裝置。非依電性記憶體裝置100包括控制器110以及非依電性記憶體120。依照設計需求,非依電性記憶體120可以是反及快閃記憶體(NAND flash memory)或是其他非依電性儲存電路/元件。非依電性記憶體120具有多個實體塊(block),以便存放資料。
控制器110耦接至非依電性記憶體120。控制器110可以依照主機10的寫入命令(write command)的邏輯位址而存取非依電性記憶體120。在一些實施例中,所述邏輯位址資訊可以是邏輯塊位址(logical block address, LBA)或是其他邏輯位址。當主機10對非依電性記憶體裝置100發出一個寫入命令時,控制器110會將此主機寫入命令轉換(或解碼)為多個內部寫入動作/指令。所述「將一個主機寫入命令轉換為多個內部寫入動作/指令」即為寫入放大(Write Amplification, WA)。寫入放大主要是為了內部寫入操作,例如垃圾收集(garbage collection)、磨損平衡(wear leveling)及/或其他管理性寫入操作,以便管理資料更新和儲存耐久性(storage endurance)。除此之外,控制器110還可以對存取非依電性記憶體120進行其他管理操作,例如巡檢讀取(patrol read)或是其他快閃轉換層(Flash Translation Layer, FTL)操作等。所述管理操作(例如磨損平衡、垃圾收集或巡檢讀取)為習知技藝,故不再贅述。
管理操作往往需要利用來自於非依電性記憶體120的多個實體塊的一些元資料(metadata)。這些實體塊的每一者各自具有不同的元資料,以記錄自己實體塊本身的管理資訊或計數值。例如,每個實體塊的所述元資料可能包括編程/抹除(program/erase)計數、無效資料計數(invalid data count)以及時間標記(time stamp)。每當控制器110需要執行管理操作(例如磨損平衡、垃圾收集或巡檢讀取)時,所述元資料(即這些實體塊)需要被排序(或至少需要找到最大或最小值),以便從這些實體塊找出一個目標實體塊。控制器110還可以對存取非依電性記憶體120進行「迭代排序方法」,來從非依電性記憶體120的K個候選實體塊中選擇一個目標實體塊,以及對該目標實體塊進行管理操作(容後詳述)。
於圖1所示實施例中,控制器110包括中央處理單元111、記憶體控制電路112、記憶體緩衝器113、迭代排序電路114與錯誤檢查糾正(Error Checking and Correcting,以下稱ECC)電路115。中央處理單元111經由通訊介面耦接至主機10。依照設計需求,所述通訊介面包括小型電腦系統介面(small computer system interface, SCSI)、串列連接小型電腦系統介面(Serial Attached SCSI, SAS)、增強型小型裝置介面(Enhanced Small Disk Interface, ESDI)、串列先進技術連接(serial advanced technology attachment, SATA)、快速週邊元件互連(peripheral component interconnect express, PCI-express)、整合式電子裝置(integrated drive electronics, IDE)介面、通用串列匯流排(universal serial bus, USB)、雷電(Thunderbolt)介面或其他介面。本實施例並沒有限制主機10與非揮發性記憶體裝置100之間的介面結構。
當主機10發出寫入命令時,待寫入的資料可以被暫存於記憶體緩衝器113,而中央處理單元111可以將主機10的寫入命令(包含邏輯位址)轉換/解碼為對應的內部控制信號(包含非依電性記憶體120的實體位址),並將內部控制信號提供給記憶體控制電路112與/或記憶體緩衝器113。記憶體緩衝器113的例子包括動態隨機存取記憶體(dynamic random access memory, DRAM)、靜態隨機存取記憶體(static random access memory, SRAM)或是其他揮發性記憶體(volatile memory)。ECC電路115可以執行ECC演算法,以便將暫存於記憶體緩衝器113的資料加以編碼為碼字(codeword)。在一些實施例中,ECC電路115可以執行BCH(Bose-Chaudhuri-Hocquengh)碼演算法、低密度同位檢查(Low Density Parity Check,LDPC)碼演算法或是其他ECC演算法。依照內部控制信號,記憶體控制電路112可以定址/控制非依電性記憶體120,以便將碼字寫入非依電性記憶體120。
當主機10發出讀取命令時,中央處理單元111可以將主機10的讀取命令(包含邏輯位址)轉換/解碼為對應的內部控制信號(包含非依電性記憶體120的實體位址)。依照內部控制信號,記憶體控制電路112可以定址/控制非依電性記憶體120,以便將非依電性記憶體120內的碼字讀出。ECC電路115可以執行ECC演算法,以便將碼字解碼為資料,並將經解碼的資料暫存於記憶體緩衝器113。然後,中央處理單元111可以將暫存於記憶體緩衝器113的資料回傳給主機10。
控制器110的迭代排序電路114可以對存取非依電性記憶體120進行「迭代排序方法」,來從非依電性記憶體120的K個候選實體塊中選擇一個目標實體塊。依據迭代排序電路114所選擇的目標實體塊,中央處理單元111可以對該目標實體塊進行管理操作。舉例來說,圖2是依照本發明一實施例說明一種迭代排序方法的流程示意圖。本實施例所提出的想法是藉由迭代抽樣方法(iterative sampling method)找最大值/最小值塊。圖2所示流程繪示了一次迭代的各個步驟。請參照圖1與圖2,控制器110的迭代排序電路114可以在步驟S210中判定此次迭代是否為首次迭代。若步驟S210判定此次迭代為首次迭代,則迭代排序電路114可以進行步驟S220。若步驟S210判定此次迭代非為首次迭代,則迭代排序電路114可以進行步驟S230。
於步驟S220中,控制器110的迭代排序電路114可以從非依電性記憶體120的K個候選實體塊中任意選擇N個候選實體塊作為排序集合,其中K、N為整數,且K>N。於步驟S230中,控制器110的迭代排序電路114可以從非依電性記憶體120的K個候選實體塊中任意選擇N-M個候選實體塊加入該排序集合,其中M為整數,且K>N>M。本實施例並不限定步驟S220與步驟S230中所述「任意選擇」的實現方式。舉例來說(但不限於此),所述「任意選擇」可以是利用任何隨機演算法而從多個實體塊中選擇一個或多個候選實體塊。
所述K個候選實體塊的定義,是指在非依電性記憶體120的所有實體塊中,適合進行某一個管理操作的部份實體塊集合。迭代排序電路114可以從這些K個候選實體塊選擇一個目標實體塊,然後中央處理單元111可以對該目標實體塊進行管理操作。舉例來說,當該管理操作為磨損平衡(wear leveling)操作時,所述K個候選實體塊為在非依電性記憶體120的所有實體塊中的所有自由實體塊。當該管理操作為垃圾收集(garbage collection)操作時,所述K個候選實體塊為在非依電性記憶體120的所有實體塊中的所有已寫滿實體塊。當該管理操作為巡檢讀取(patrol read)操作時,所述K個候選實體塊為在非依電性記憶體120的所有實體塊中的所有已寫滿實體塊。
於步驟S240中,控制器110的迭代排序電路114可以依照元資料(metadata)來排序在所述排序集合中的所有候選實體塊。本實施例並不限定步驟S240的排序操作的實施方式。舉例來說,迭代排序電路114可以採用任何排序演算法,來依照元資料(metadata)對在所述排序集合中的所有候選實體塊進行排序。該排序集合中的候選實體塊的數量N可以遠小於非依電性記憶體120的所有候選實體塊的數量K。所述數量N可以依照設計需求來決定。例如,非依電性記憶體120的所有候選實體塊的數量K可能是幾百萬(或更多),而該排序集合中的候選實體塊的數量N可以是幾個或幾十個(例如N=30)。與傳統解決方案相比較,由於更小的排序空間,因此複雜度低得多,且搜索延遲較小。
依照管理操作的需求,在步驟S240的所述排序操作,可以是遞增排序,也可以是遞減排序。舉例來說,當該管理操作為磨損平衡(wear leveling)操作時,步驟S240的所述元資料為編程/抹除計數(program/erase),而步驟S240的所述排序操作可以是遞增排序。當該管理操作為垃圾收集(garbage collection)操作時,步驟S240的所述元資料為無效資料計數(invalid data count),而步驟S240的所述排序操作可以是遞減排序。當該管理操作為巡檢讀取(patrol read)操作時,步驟S240的所述元資料為時間標記(time stamp),而步驟S240的所述排序操作可以是遞增排序。
於步驟S250中,控制器110的迭代排序電路114可以從該排序集合中取走具有最大元資料(或最小元資料)的一個候選實體塊作為該目標實體塊。舉例來說,當該管理操作為磨損平衡(wear leveling)操作時,步驟S250可以從該排序集合中取走具有最小元資料(最小編程/抹除計數)的一個候選實體塊作為該目標實體塊。當該管理操作為垃圾收集(garbage collection)操作時,步驟S250可以從該排序集合中取走具有最大元資料(最大無效資料計數)的一個候選實體塊作為該目標實體塊。當該管理操作為巡檢讀取(patrol read)操作時,步驟S250可以從該排序集合中取走具有最小元資料(最早時間標記)的一個候選實體塊作為該目標實體塊。因此,控制器110的中央處理單元111可以對該目標實體塊進行管理操作。
於步驟S260中,控制器110的迭代排序電路114可以保留該排序集合中的M個候選實體塊,且將其餘候選實體塊從該排序集合捨棄。所述數量M可以依照設計需求來決定。步驟S260可以從該排序集合中保留具有最大元資料(或最小元資料)的M個候選實體塊。舉例來說,當該管理操作為磨損平衡(wear leveling)操作時,步驟S260可以從該排序集合中保留具有最小元資料(最小編程/抹除計數)的M個候選實體塊。當該管理操作為垃圾收集(garbage collection)操作時,步驟S260可以從該排序集合中保留具有最大元資料(最大無效資料計數)的M個候選實體塊。當該管理操作為巡檢讀取(patrol read)操作時,步驟S260可以從該排序集合中保留具有最小元資料(最早時間標記)的M個候選實體塊。
舉例來說,圖3A至圖3E與圖4A至圖4E是以磨損平衡作為應用例,說明在迭代排序方法進行過程中的所述排序集合SS示意圖。在圖3A至圖3E與圖4A至圖4E所示實施例中,排序集合SS中的候選實體塊的數量N被設定為8,而該排序集合中的候選實體塊的保留數量M被設定為2。依照設計需求,在其他實施例中,數量N與/或數量M可以被設定為其他數值。
圖3A至圖3E說明控制器110在進行首次迭代的過程。在排序集合SS沒有有效候選實體塊時,或是非依電性記憶體裝置100被初始化後,則迭代排序電路114可以進行步驟S220,以從非依電性記憶體120的K個候選實體塊中任意選擇N個候選實體塊作為排序集合SS。請參照圖3A,迭代排序電路114從非依電性記憶體120的K個候選實體塊中任意選擇8個候選實體塊(例如圖3A所示候選實體塊B1~B8)作為排序集合SS。其中,假設候選實體塊B1的編程/抹除計數PE(元資料)為10,候選實體塊B2的編程/抹除計數PE為14,候選實體塊B3的編程/抹除計數PE為7,候選實體塊B4的編程/抹除計數PE為68,候選實體塊B5的編程/抹除計數PE為52,候選實體塊B6的編程/抹除計數PE為33,候選實體塊B7的編程/抹除計數PE為3,而候選實體塊B8的編程/抹除計數PE為25。
請參照圖3B,控制器110的迭代排序電路114於步驟S240中依照編程/抹除計數PE來排序在所述排序集合SS中的所有候選實體塊B1~B8(遞增排序)。
請參照圖3C,控制器110的迭代排序電路114於步驟S250中可以從排序集合SS中取走具有最小編程/抹除計數PE的一個候選實體塊作為該目標實體塊。於圖3C所示實施例中,候選實體塊B7是排序集合SS中的具有最小編程/抹除計數PE的候選實體塊。因此,迭代排序電路114可以從排序集合SS中取走候選實體塊B7作為該目標實體塊。控制器110的中央處理單元111可以對候選實體塊B7(目標實體塊)進行磨損平衡操作(管理操作)。
請參照圖3D,控制器110的迭代排序電路114於步驟S260中可以保留排序集合SS中的2個候選實體塊,且將其餘候選實體塊從排序集合SS捨棄。於圖3D所示實施例中,步驟S260可以從排序集合SS中保留具有最小編程/抹除計數PE(元資料)的2個候選實體塊B3與B1。排序集合SS中的其餘候選實體塊B2、B8、B6、B5與B4會被捨棄。
圖3E繪出捨棄了其餘候選實體塊後的排序集合SS。於圖3E所示實施例中,候選實體塊B3與B1被保留在排序集合SS中。在一些實施例中,圖3E所示留有候選實體塊B3與B1的排序集合SS可以被儲存在非依電性記憶體120。在另一些實施例中,圖3E所示留有候選實體塊B3與B1的排序集合SS可以被儲存在依電性記憶體(例如記憶體緩衝器113或是其他隨機存取記憶體)中。在斷電之前,被儲存在依電性記憶體中的排序集合SS可以被存儲至非依電性記憶體120,以便在斷電(power loss)期間保留圖3E所示留有候選實體塊B3與B1的排序集合SS。斷電後,依電性記憶體中的排序集合SS將被丟失。當在下次上電(power on)時,控制器110的迭代排序電路114可以選擇使用(或不使用)在非依電性記憶體120中留有候選實體塊的排序集合SS。若系統選擇不使用在非依電性記憶體120中的排序集合SS,則在電源接通後,迭代排序電路114將重新進行上述迭代排序方法的首次迭代過程。若系統選擇使用在非依電性記憶體120中的排序集合SS,則在電源接通後,迭代排序電路114將從非依電性記憶體120取出圖3E所示留有候選實體塊B3與B1的排序集合SS,以待下一次迭代所使用。
圖4A至圖4E說明控制器110在進行第二次迭代的過程。當再一次進行磨損平衡操作(管理操作)時,上述迭代排序方法會被再次執行。在排序集合SS具有有效候選實體塊時,則迭代排序電路114可以進行步驟S230,以從非依電性記憶體120的K個候選實體塊中任意選擇N-M個候選實體塊加入排序集合SS。例如,請參照圖4A,迭代排序電路114從非依電性記憶體120的K個候選實體塊中任意選擇6個(N-M個)候選實體塊(例如圖4A所示候選實體塊B9~B14)加入排序集合SS。其中,假設候選實體塊B9的編程/抹除計數PE(元資料)為61,候選實體塊B10的編程/抹除計數PE為9,候選實體塊B11的編程/抹除計數PE為4,候選實體塊B12的編程/抹除計數PE為29,候選實體塊B13的編程/抹除計數PE為12,而候選實體塊B14的編程/抹除計數PE為23。
請參照圖4B,控制器110的迭代排序電路114於步驟S240中依照編程/抹除計數PE來排序在所述排序集合SS中的所有候選實體塊B3、B1與B9~B14(遞增排序)。
請參照圖4C,控制器110的迭代排序電路114於步驟S250中可以從排序集合SS中取走具有最小編程/抹除計數PE的一個候選實體塊作為該目標實體塊。於圖4C所示實施例中,候選實體塊B11是排序集合SS中的具有最小編程/抹除計數PE的候選實體塊。因此,迭代排序電路114可以從排序集合SS中取走候選實體塊B11作為該目標實體塊。控制器110的中央處理單元111可以對候選實體塊B11(目標實體塊)進行磨損平衡操作(管理操作)。
請參照圖4D,控制器110的迭代排序電路114於步驟S260中可以保留排序集合SS中的2個候選實體塊,且將其餘候選實體塊從排序集合SS捨棄。於圖4D所示實施例中,步驟S260可以從排序集合SS中保留具有最小編程/抹除計數PE(元資料)的2個候選實體塊B3與B10。排序集合SS中的其餘候選實體塊B1、B13、B14、B12與B9會被捨棄。
圖4E繪出捨棄了其餘候選實體塊後的排序集合SS。於圖4E所示實施例中,候選實體塊B3與B10被保留在排序集合SS中,以待下一次迭代所使用。以此類推,當快閃轉換層需要進行磨損平衡時,上述迭代過程會被重複進行。
值得注意的是,在不同的應用情境中,上述控制器110、中央處理單元111、記憶體控制電路112、迭代排序電路114及/或ECC電路115的相關功能可以利用一般的編程語言(programming languages,例如C或C++)、硬體描述語言(hardware description languages,例如Verilog HDL或VHDL)或其他合適的編程語言來實現為軟體、韌體或硬體。可執行所述相關功能的軟體(或韌體)可以被佈置為任何已知的計算機可存取媒體(computer-accessible medias),例如磁帶(magnetic tapes)、半導體(semiconductors)記憶體、磁盤(magnetic disks)或光盤(compact disks,例如CD-ROM或DVD-ROM),或者可通過互聯網(Internet)、有線通信(wired communication)、無線通信(wireless communication)或其它通信介質傳送所述軟體(或韌體)。所述軟體(或韌體)可以被存放在計算機的可存取媒體中,以便於由計算機的處理器來存取/執行所述軟體(或韌體)的編程碼(programming codes)。另外,本發明的裝置和方法可以通過硬體和軟體的組合來實現。
舉例來說,圖5是依照本發明另一實施例說明一種非依電性記憶體裝置500的電路方塊(circuit block)示意圖。非依電性記憶體裝置500包括控制器110’以及非依電性記憶體120。於圖5所示實施例中,控制器110’包括中央處理單元111、記憶體控制電路112、記憶體緩衝器113與ECC電路115。圖5所示非依電性記憶體裝置500、控制器110’、非依電性記憶體120、中央處理單元111、記憶體控制電路112、記憶體緩衝器113與ECC電路115可以參照圖1所示非依電性記憶體裝置100、控制器110、非依電性記憶體120、中央處理單元111、記憶體控制電路112、記憶體緩衝器113與ECC電路115的相關說明來類推,故不再贅述。於圖5所示實施例中,迭代排序電路114已被省略,而迭代排序電路114的功能可以利用韌體及/或軟體方式實現於中央處理單元111中。
綜上所述,本發明諸實施例所述非依電性記憶體裝置及其迭代排序方法,其可以在一個排序集合SS中保留了前次迭代的M個候選實體塊。當再一次進行管理操作時,所述非依電性記憶體裝置可以從非依電性記憶體120的多個候選實體塊中任意選擇N-M個候選實體塊加入排序集合SS,然後依照元資料來排序在排序集合SS中的所有候選實體塊。經排序後,所述非依電性記憶體裝置可以從排序集合SS中取走具有最大(或最小)元資料的一個候選實體塊作為目標實體塊,以便對該目標實體塊進行某一管理操作。在從排序集合SS中取走該目標實體塊後,所述非依電性記憶體裝置可以保留排序集合SS中的M個候選實體塊,且將其餘候選實體塊從排序集合SS捨棄。保留了M個候選實體塊的排序集合SS可以被保存,以待下一次迭代所使用。藉由迭代抽樣方法(iterative sampling method)找最大值/最小值塊,排序集合SS中的實體塊的數量可以遠小於非依電性記憶體120的實體塊的數量。與傳統解決方案相比較,由於更小的排序空間,因此複雜度低得多,且搜索延遲較小。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機
100、500‧‧‧非依電性記憶體裝置
110、110’‧‧‧控制器
111‧‧‧中央處理單元
112‧‧‧記憶體控制電路
113‧‧‧記憶體緩衝器
114‧‧‧迭代排序電路
115‧‧‧錯誤檢查糾正(ECC)電路
120‧‧‧非依電性記憶體
B1~B14‧‧‧候選實體塊
PE‧‧‧編程/抹除計數
S210~S260‧‧‧步驟
SS‧‧‧排序集合
圖1是依照本發明一實施例說明一種非依電性記憶體裝置的電路方塊(circuit block)示意圖。 圖2是依照本發明一實施例說明一種迭代排序方法的流程示意圖。 圖3A至圖3E與圖4A至圖4E是以磨損平衡作為應用例,說明在迭代排序方法進行過程中的所述排序集合SS示意圖。 圖5是依照本發明另一實施例說明一種非依電性記憶體裝置的電路方塊(circuit block)示意圖。

Claims (10)

  1. 一種非依電性記憶體裝置,包括: 一非依電性記憶體,具有多個實體塊;以及 一控制器,耦接至該非依電性記憶體,用以進行一迭代排序方法來從該非依電性記憶體的該些實體塊的K個候選實體塊中選擇一個目標實體塊,以及對該目標實體塊進行一管理操作; 其中該迭代排序方法包括:從所述K個候選實體塊中任意選擇N-M個候選實體塊加入一排序集合,依照元資料來排序該排序集合中的所有候選實體塊,經排序後從該排序集合中取走具有最大元資料或最小元資料的一個候選實體塊作為該目標實體塊,以及在從該排序集合中取走該目標實體塊後保留該排序集合中的M個候選實體塊且將其餘候選實體塊從該排序集合捨棄,其中K、M、N為整數,且K>N>M。
  2. 如申請專利範圍第1項所述的非依電性記憶體裝置,其中該迭代排序方法更包括:在首次迭代中,從所述K個候選實體塊中任意選擇N個候選實體塊作為該排序集合。
  3. 如申請專利範圍第1項所述的非依電性記憶體裝置,其中當該管理操作為磨損平衡操作時,所述K個候選實體塊為該非依電性記憶體的該些實體塊中的所有自由實體塊,所述元資料為編程/抹除計數,該控制器從該排序集合中取走具有最小編程/抹除計數的一個候選實體塊作為該目標實體塊,且該控制器保留該排序集合中具有最小編程/抹除計數的M個候選實體塊且將其餘候選實體塊從該排序集合捨棄。
  4. 如申請專利範圍第1項所述的非依電性記憶體裝置,其中當該管理操作為垃圾收集操作時,所述K個候選實體塊為該非依電性記憶體的該些實體塊中的所有已寫滿實體塊,所述元資料為無效資料計數,該控制器從該排序集合中取走具有最大無效資料計數的一個候選實體塊作為該目標實體塊,且該控制器保留該排序集合中具有最大無效資料計數的M個候選實體塊且將其餘候選實體塊從該排序集合捨棄。
  5. 如申請專利範圍第1項所述的非依電性記憶體裝置,其中當該管理操作為巡檢讀取操作時,所述K個候選實體塊為該非依電性記憶體的該些實體塊中的所有已寫滿實體塊,所述元資料為時間標記,該控制器從該排序集合中取走具有最早時間標記的一個候選實體塊作為該目標實體塊,且該控制器保留該排序集合中具有最早時間標記的M個候選實體塊且將其餘候選實體塊從該排序集合捨棄。
  6. 一種非依電性記憶體裝置的迭代排序方法,用以從一非依電性記憶體的多個實體塊的K個候選實體塊中選擇一個目標實體塊,以便對該目標實體塊進行一管理操作,所述迭代排序方法包括: 從所述K個候選實體塊中任意選擇N-M個候選實體塊加入一排序集合,其中K、M、N為整數,且K>N>M; 依照元資料來排序該排序集合中的所有候選實體塊; 經排序後,從該排序集合中取走具有最大元資料或最小元資料的一個候選實體塊作為該目標實體塊;以及 在從該排序集合中取走該目標實體塊後,保留該排序集合中的M個候選實體塊,且將其餘候選實體塊從該排序集合捨棄。
  7. 如申請專利範圍第6項所述的迭代排序方法,更包括: 在首次迭代中,從所述K個候選實體塊中任意選擇N個候選實體塊作為該排序集合。
  8. 如申請專利範圍第6項所述的迭代排序方法,其中當該管理操作為磨損平衡操作時,所述K個候選實體塊為該非依電性記憶體的該些實體塊中的所有自由實體塊,所述元資料為編程/抹除計數,所述從該排序集合中取走具有最大元資料或最小元資料的一個候選實體塊之步驟是從該排序集合中取走具有最小編程/抹除計數的一個候選實體塊作為該目標實體塊,且所述保留該排序集合中的M個候選實體塊之步驟是保留該排序集合中具有最小編程/抹除計數的M個候選實體塊且將其餘候選實體塊從該排序集合捨棄。
  9. 如申請專利範圍第6項所述的迭代排序方法,其中當該管理操作為垃圾收集操作時,所述K個候選實體塊為該非依電性記憶體的該些實體塊中的所有已寫滿實體塊,所述元資料為無效資料計數,所述從該排序集合中取走具有最大元資料或最小元資料的一個候選實體塊之步驟是從該排序集合中取走具有最大無效資料計數的一個候選實體塊作為該目標實體塊,且所述保留該排序集合中的M個候選實體塊之步驟是保留該排序集合中具有最大無效資料計數的M個候選實體塊且將其餘候選實體塊從該排序集合捨棄。
  10. 如申請專利範圍第6項所述的迭代排序方法,其中當該管理操作為巡檢讀取操作時,所述K個候選實體塊為該非依電性記憶體的該些實體塊中的所有已寫滿實體塊,所述元資料為時間標記,所述從該排序集合中取走具有最大元資料或最小元資料的一個候選實體塊之步驟是從該排序集合中取走具有最早時間標記的一個候選實體塊作為該目標實體塊,且所述保留該排序集合中的M個候選實體塊之步驟是保留該排序集合中具有最早時間標記的M個候選實體塊且將其餘候選實體塊從該排序集合捨棄。
TW106103464A 2016-12-14 2017-02-02 非依電性記憶體裝置及其迭代排序方法 TWI655573B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/378,044 2016-12-14
US15/378,044 US10824554B2 (en) 2016-12-14 2016-12-14 Method and apparatus for efficiently sorting iteration with small sorting set

Publications (2)

Publication Number Publication Date
TW201833754A true TW201833754A (zh) 2018-09-16
TWI655573B TWI655573B (zh) 2019-04-01

Family

ID=59676364

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106103464A TWI655573B (zh) 2016-12-14 2017-02-02 非依電性記憶體裝置及其迭代排序方法

Country Status (3)

Country Link
US (1) US10824554B2 (zh)
CN (1) CN107102953B (zh)
TW (1) TWI655573B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096215B (zh) * 2018-01-29 2023-03-14 群联电子股份有限公司 存储器管理方法、存储器储存装置及存储器控制电路单元
US10713155B2 (en) * 2018-07-19 2020-07-14 Micron Technology, Inc. Biased sampling methodology for wear leveling
CN114503086A (zh) * 2019-10-09 2022-05-13 美光科技公司 自适应损耗平衡方法及算法
US11967391B2 (en) * 2021-08-06 2024-04-23 SK Hynix Inc. System and method for testing multicore SSD firmware based on preconditions generation

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933847A (en) 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
US20080096523A1 (en) 2003-07-22 2008-04-24 Niklas Lundin An Arrangement, a Node and a Method Relating to Handling of Lost/Discarded Data Packets
CN100353341C (zh) 2004-04-30 2007-12-05 联发科技股份有限公司 可循序写入数据至闪存中的系统及其方法
TWI368224B (en) * 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
US8352470B2 (en) * 2008-05-23 2013-01-08 International Business Machines Corporation Adaptive aggregation: improving the performance of grouping and duplicate elimination by avoiding unnecessary disk access
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8892144B2 (en) 2011-10-25 2014-11-18 At&T Intellectual Property I, L.P. Dynamic bearer management
US8712963B1 (en) * 2011-12-22 2014-04-29 Emc Corporation Method and apparatus for content-aware resizing of data chunks for replication
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9967558B1 (en) * 2013-12-17 2018-05-08 Google Llc Adaptive motion search control for variable block size partitions in video coding
KR101465447B1 (ko) * 2014-03-31 2014-12-10 성균관대학교산학협력단 외부 병합 정렬 방법, 외부 병합 정렬 시스템 및 외부 병합 정렬을 위한 분산 처리 시스템
CN105161137B (zh) 2015-08-27 2019-04-19 大唐微电子技术有限公司 一种MLC架构中Nand Flash控制器电路实现装置
US10620931B2 (en) * 2016-07-13 2020-04-14 At&T Mobility Ii Llc Automated device memory clean up mechanism

Also Published As

Publication number Publication date
CN107102953B (zh) 2020-04-28
US10824554B2 (en) 2020-11-03
TWI655573B (zh) 2019-04-01
CN107102953A (zh) 2017-08-29
US20180165010A1 (en) 2018-06-14

Similar Documents

Publication Publication Date Title
CN107025071B (zh) 非易失性存储器装置及其垃圾收集方法
TWI693516B (zh) 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置
US8769375B2 (en) Data storage device related method of operation
US9778885B2 (en) Compressor resources for high density storage units
JP5192587B2 (ja) メモリシステムのコピーバック最適化
US10795827B2 (en) Adaptive management of intermediate storage
TWI655573B (zh) 非依電性記憶體裝置及其迭代排序方法
US20110276777A1 (en) Data storage device and related method of operation
CN106897026B (zh) 非易失性存储器装置及其地址分类方法
US10318202B2 (en) Non-volatile memory apparatus and data deduplication method thereof
KR20190048453A (ko) 저장 장치 및 메모리 시스템
TWI652570B (zh) 非依電性記憶體裝置及其位址分類方法
TWI501244B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US9880930B2 (en) Method for operating controller and method for operating device including the same
TWI594253B (zh) 非依電性記憶體裝置及其空頁偵測方法
CN111625187B (zh) 一种存储器及其控制方法与存储系统
CN107402725B (zh) 非易失性存储装置及其数据去重复方法
TWI553477B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
TWI675373B (zh) 低密度奇偶檢查裝置與其操作方法
TW202109542A (zh) 冷區域判斷方法、記憶體控制電路單元與記憶體儲存裝置
US20240233813A1 (en) Dummy data-based read reference voltage search of nand memory