[go: up one dir, main page]

TW201814527A - 非依電性記憶體裝置及其位址分類方法 - Google Patents

非依電性記憶體裝置及其位址分類方法 Download PDF

Info

Publication number
TW201814527A
TW201814527A TW105134260A TW105134260A TW201814527A TW 201814527 A TW201814527 A TW 201814527A TW 105134260 A TW105134260 A TW 105134260A TW 105134260 A TW105134260 A TW 105134260A TW 201814527 A TW201814527 A TW 201814527A
Authority
TW
Taiwan
Prior art keywords
data
logical address
data item
write command
address
Prior art date
Application number
TW105134260A
Other languages
English (en)
Other versions
TWI652570B (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 威盛電子股份有限公司
Priority to CN201611101194.XA priority Critical patent/CN106897026B/zh
Publication of TW201814527A publication Critical patent/TW201814527A/zh
Application granted granted Critical
Publication of TWI652570B publication Critical patent/TWI652570B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

一種非依電性記憶體裝置及其位址分類方法。非依電性記憶體裝置包括非依電性記憶體以及控制器。控制器依照主機的寫入命令而存取非依電性記憶體。控制器可以進行位址分類方法。位址分類方法包括:提供資料查找表,其中該資料查找表包括多個資料項目,每一個資料項目包括邏輯位址資訊、計數器值與計時器值;依據寫入命令的邏輯位址而查找資料查找表,以獲得對應計數器值與對應計時器值;以及依據對應計數器值與對應計時器值來決定寫入命令的邏輯位址是否為熱資料位址。

Description

非依電性記憶體裝置及其位址分類方法
本發明是有關於一種記憶體裝置,且特別是有關於一種非依電性記憶體裝置及其位址分類方法。
與傳統的硬碟機(hard disk drives)相比,由於快閃記憶體(flash)儲存設備的讀/寫性能佳且功耗低,使得快閃記憶體被廣泛應用於資料儲存系統中。然而,將資料寫入快閃記憶體的關鍵因素是寫入放大(Write Amplification, WA)。寫入放大影響快閃記憶體的性能和耐久性。當主機對快閃記憶體儲存設備發出寫入動作/指令時,快閃記憶體儲存設備會將此主機寫入動作/指令轉化(或解碼)為多個內部寫入動作/指令。所述「將一個主機寫入動作/指令轉化為多個內部寫入動作/指令」即為寫入放大。寫入放大主要是為了內部寫入操作,例如垃圾收集(garbage collection)、磨損平衡(wear leveling)及/或其他管理性寫入操作,以便管理資料更新和儲存耐久性(storage endurance)。
寫入放大也取決於寫入工作負荷(write workloads)。在實際寫入工作負荷中,通常有一些資料被更頻繁地更新。這些被頻繁更新的資料通常被稱為熱資料(hot data)。其他資料的更新可能較不頻繁。更新較不頻繁的資料通常被稱為冷資料(cold data)。將冷資料與熱資料混合在一起寫入相同的記憶塊中,其往往導致更高的寫入放大。因此,在將主機的資料寫入快閃記憶體前,快閃記憶體儲存設備需要分辨主機的資料是否為熱資料。
本發明提供一種非依電性記憶體裝置及其位址分類方法,其可以分辨來自主機的寫入命令的邏輯位址是否為熱資料位址。
本發明的實施例提供一種非依電性記憶體裝置。非依電性記憶體裝置包括非依電性記憶體以及控制器。控制器耦接至非依電性記憶體。控制器可以進行位址分類方法,來決定來自主機的寫入命令的邏輯位址是否為熱資料位址。控制器依照主機的寫入命令而存取非依電性記憶體。其中,位址分類方法包括:提供資料查找表,其中該資料查找表包括多個資料項目,每一個資料項目包括邏輯位址資訊、計數器值與計時器值;依據寫入命令的邏輯位址而查找資料查找表,以獲得對應計數器值與對應計時器值;以及依據對應計數器值與對應計時器值來決定寫入命令的邏輯位址是否為熱資料位址。
本發明的實施例提供一種非依電性記憶體裝置的位址分類方法,以決定來自主機的寫入命令的邏輯位址是否為熱資料位址。所述位址分類方法包括:提供資料查找表,其中該資料查找表包括多個資料項目,每一個資料項目包括邏輯位址資訊、計數器值與計時器值;由控制器依據寫入命令的邏輯位址而查找資料查找表,以獲得對應計數器值與對應計時器值;以及由控制器依據對應計數器值與對應計時器值來決定寫入命令的邏輯位址是否為熱資料位址。
基於上述,本發明實施例所提供的非依電性記憶體裝置及其位址分類方法,其使用了一個資料查找表,其中此資料查找表包括多個資料項目,而每一個資料項目包括邏輯位址資訊、計數器值與計時器值。依據寫入命令的邏輯位址可以從資料查找表中查找出對應計數器值與對應計時器值。控制器可以檢查對應計數器值與對應計時器值,來決定寫入命令的邏輯位址是否為熱資料位址。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。
圖1是依照本發明一實施例說明一種非依電性記憶體裝置100的電路方塊示意圖。依照設計需求,非依電性記憶體裝置100可以是隨身碟、固態硬碟(solid state disc, SSD)或是其他儲存裝置。非依電性記憶體裝置100可以耦接至主機(host)10。此主機10可以是電腦、手持式電話、多媒體播放器、相機或是其他電子裝置。非依電性記憶體裝置100包括控制器110以及非依電性記憶體120。依照設計需求,非依電性記憶體120可以是反及快閃記憶體(NAND flash memory)或是其他非依電性儲存電路/元件。
控制器110耦接至該非依電性記憶體。控制器110可以依照主機10的寫入命令(write command)而存取非依電性記憶體120。當主機10發出一個寫入命令給非依電性記憶體裝置100時,控制器110可以進行「位址分類方法」,來決定來自主機10的寫入命令的邏輯位址是否為熱資料(hot data)位址。所謂「熱資料」是指近期很可能被修改的資料。在寫入命令的邏輯位址被判定為熱資料位址(或者不是熱資料位址)後,控制器110可以依據判定結果,以及依據此寫入命令的邏輯位址,來將主機10的資料寫入非依電性記憶體120。因為在將資料寫入非依電性記憶體120的過程中,「所寫入資料是否為熱資料」已被考慮,因此可以有效降低寫入放大(Write Amplification, WA)。例如,基於熱資料位址的判定而將冷資料與熱資料分別寫入非依電性記憶體120不同的記憶塊中,因此垃圾回收操作(garbage collection operation)的效率可以被提昇。換句話說,上述控制器110所進行的「位址分類方法」,也可被視為「(冷)熱資料識別方法」,控制器110能從主機10發出的寫入命令之邏輯位址識別出主機即將要寫入的資料是否為(冷)熱資料,並進行相應處理。
於圖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。
圖2是依照本發明一實施例說明一種位址分類方法的流程示意圖。請參照圖1與圖2,資料分類電路114可以在步驟S210中提供資料查找表(data look-up table),所述資料查找表可以快速暫存(cache)一組或多組資料項目資訊(data entry information),以識別熱資料。其中,所述資料查找表包括多個資料項目,而每一個資料項目各自包括邏輯位址資訊、計數器(counter)值與計時器(timer)值。在一些實施例中,所述邏輯位址資訊可以是邏輯塊位址(logical block address, LBA)或是其他邏輯位址。中央處理單元111可以直接使用主機10的寫入命令的邏輯塊位址而在所述資料查找表尋找具有相同邏輯塊位址的資料項目。在另一些實施例中,所述邏輯位址資訊可以是一種具唯一性的識別碼。中央處理單元111可以將主機10的寫入命令的邏輯位址轉換為對應的識別碼,然後使用此對應的識別碼而在所述資料查找表尋找具有相同識別碼的資料項目。
在主機10發出寫入命令(步驟S220)後,中央處理單元111可以依據寫入命令的邏輯位址查找資料分類電路114的所述資料查找表,以獲得對應的資料項目(步驟S230)。中央處理單元111可以從所述對應的資料項目中獲得對應計數器值與對應計時器值。計數器值用於追踪某一個邏輯位址的資料頻率資訊(data frequency information),亦即這個邏輯位址的被寫入頻率。計時器值用於追踪某一個邏輯位址的資料是否最近被存取,亦即這個邏輯位址在目前時間窗中是否曾被更新資料。因此,控制器111可以在步驟S240中依據對應計數器值與對應計時器值來決定主機10的寫入命令的邏輯位址是否為熱資料位址。
圖3是依照本發明另一實施例說明一種位址分類方法的流程示意圖。圖3所示步驟S210、步驟S220、步驟S230與步驟S240可以參照圖2的相關說明來類推,故不再贅述。請參照圖1與圖3,在主機10發出寫入命令(步驟S220)後,中央處理單元111可以將寫入命令的邏輯塊位址映射/轉換到邏輯位址資訊(步驟S310)。例如,寫入命令的邏輯塊位址可以被映射/轉換到對應的識別碼,然後中央處理單元111可以使用此對應的識別碼而在資料分類電路114的所述資料查找表尋找具有相同識別碼的資料項目。「將寫入命令的邏輯塊位址映射到對應的識別碼」可以通過多級散列函數(hash functions)或其他轉換函數來實現,以減少搜尋的負擔。
中央處理單元111在步驟S230中可以依據步驟S310的邏輯位址資訊(例如識別碼)來查找資料分類電路114的所述資料查找表,以判斷資料查找表中有沒有對應資料項目的邏輯位址資訊可以吻合主機10的寫入命令的邏輯位址。若資料查找表中有對應資料項目的邏輯位址資訊可以吻合主機10的寫入命令的邏輯位址,則中央處理單元111在步驟S230中可以獲得對應的資料項目,進而從所述對應的資料項目中獲得對應計數器值Vc與對應計時器值Vt。
除此之外,中央處理單元111在步驟S230中還可以,依照主機10的寫入命令的邏輯位址來更新對應計數器值Vc與對應計時器值Vt。當所述資料查找表中的一個對應資料項目的邏輯位址資訊吻合主機10的寫入命令的邏輯位址時,資料分類電路114可以將此對應資料項目的對應計數器值Vc累進加一來追踪資料的寫入頻率,以及將此對應資料項目的對應計時器值Vt設置為第一邏輯態(例如邏輯1)以表示最近被存取。
於圖3所示實施例中,步驟S240包括子步驟S241、S242、S243、S244與S245。若步驟S230的判斷結果表示資料分類電路114的所述資料查找表中有對應資料項目的邏輯位址資訊可以吻合主機10的寫入命令的邏輯位址,則中央處理單元111可以進行步驟S241。中央處理單元111在步驟S241中可以檢查從資料查找表中找出的對應計數器值Vc與對應計時器值Vt。當對應計數器值Vc超出預設範圍且該對應計時器值Vt為一第一邏輯態時,中央處理單元111將主機10的寫入命令的邏輯位址判定為熱資料位址(步驟S242)。依照設計需求,所述預設範圍可以是單邊界範圍或是雙邊界範圍。舉例來說,在一些實施例中,步驟S241可以檢查對應計數器值Vc是否大於門檻值Th1(對應計數器值Vc大於門檻值Th1表示超出預設範圍),其中門檻值Th1可以依照設計需求來決定。在另一些實施例中,步驟S241可以檢查對應計數器值Vc是否小於門檻值Th2(對應計數器值Vc小於門檻值Th2表示超出預設範圍),其中門檻值Th2可以依照設計需求來決定。依照設計需求,所述第一邏輯態可以是邏輯1或是邏輯0。舉例來說,在一些實施例中,步驟S241可以檢查對應計時器值Vt是否為邏輯1,而以邏輯1表示對應的邏輯位址在目前時間窗中曾被更新資料。在另一些實施例中,步驟S241可以檢查對應計時器值Vt是否為邏輯0,而以邏輯0表示對應的邏輯位址在目前時間窗中曾被更新資料。
當對應計數器值Vc超出預設範圍且對應計時器值Vt為第二邏輯態時,中央處理單元111將主機10的寫入命令的該邏輯位址判定為次熱資料位址(步驟S243)。當對應計數器值Vc不超出預設範圍且對應計時器值Vt為第一邏輯態時,中央處理單元111將主機10的寫入命令的邏輯位址判定為次冷資料位址(步驟S244)。當對應計數器值Vc不超出預設範圍且對應計時器值Vt為第二邏輯態時,中央處理單元111將主機10的寫入命令的邏輯位址判定為冷資料位址(步驟S245)。
在其他實施例中,若步驟S230的判斷結果表示資料分類電路114的所述資料查找表中沒有對應資料項目的邏輯位址資訊可以吻合主機10的寫入命令的邏輯位址,則中央處理單元111可以無條件地將主機10的寫入命令的邏輯位址所對應的新資料項目加入資料分類電路114的所述資料查找表中,其中該新資料項目的邏輯位址資訊吻合寫入命令的邏輯位址,新資料項目的計數器值被設置為1,以及新資料項目的該計時器值被設置為第一邏輯態(例如為邏輯1)。在圖3所示實施例中,若步驟S230的判斷結果表示資料分類電路114的所述資料查找表中沒有對應資料項目的邏輯位址資訊可以吻合主機10的寫入命令的邏輯位址,則中央處理單元111可以進行步驟S320。
步驟S320可以決定是否將主機10的寫入命令的邏輯位址所對應的新資料項目加入資料分類電路114的所述資料查找表中。舉例來說,中央處理單元111可以依據隨機值或偽隨機(Pseudo Random)值而決定是否將主機10的寫入命令的邏輯位址所對應的新資料項目加入資料分類電路114的所述資料查找表中。其中,新資料項目的邏輯位址資訊吻合該寫入命令的邏輯位址,新資料項目的計數器值被設置為1,以及新資料項目的計時器值被設置為第一邏輯態(例如為邏輯1)。舉例來說,若偽隨機值大於門檻值Th3,則表示要將新資料項目加入資料查找表中。若偽隨機值小於門檻值Th3,則表示不要將新資料項目加入資料查找表中。若步驟S320的判斷結果表示不要將新資料項目加入資料分類電路114的所述資料查找表中,則中央處理單元111可以將主機10的寫入命令的邏輯位址判定為冷資料位址(步驟S245)。若步驟S320的判斷結果表示要將新資料項目加入資料分類電路114的所述資料查找表中,則控制器110可以進行步驟S330。
當步驟S320作出插入決定時,由於所述資料查找表的暫存容量有限,儲存在這個資料查找表的一個資料項目很可能會被移除。步驟S330可以將新資料項目加入資料分類電路114的所述資料查找表中。當控制器110決定將寫入命令的邏輯位址所對應的新資料項目加入資料分類電路114的所述資料查找表且所述資料查找表已滿時,資料分類電路114可以在步驟S330中從資料查找表的這些資料項目中選擇並刪除一個可移除資料項目,其中所述可移除資料項目的計數器值不超出所述預設範圍(例如不大於門檻值Th1),且計時器值為第二邏輯態(例如為邏輯0)。在完成步驟S330後,中央處理單元111可以將主機10的寫入命令的邏輯位址判定為次冷資料位址(步驟S244)。
在另一些實施例中,資料分類電路114可以維護一個移除候選清單。資料分類電路114可以將資料查找表的這些資料項目中具有計數器值不超出預設範圍且計時器值為第二邏輯態的所有資料項目加入此移除候選清單中。計數器值不超出預設範圍(例如不大於門檻值Th1)且計時器值為第二邏輯態(例如為邏輯0),表示此資料項目所對應的邏輯位址被存取的頻率相對較低,並且此資料項目所對應的邏輯位址最近已有一段時間都沒有被存取過。為了減少搜尋的負擔,硬體/韌體可以在運行時(runtime)去維護這個移除候選清單。當控制器110於步驟S320已決定將寫入命令的邏輯位址所對應的新資料項目加入資料查找表但是資料查找表已滿時,資料分類電路114於步驟S330可以從所述移除候選清單中選擇一個可移除資料項目,然後資料分類電路114可以從所述資料查找表與所述移除候選清單中移除這個可移除資料項目。附帶一提的是,當所述移除候選清單中的一個對應資料項目的邏輯位址資訊吻合主機10的寫入命令的邏輯位址時,資料分類電路114可以從所述移除候選清單中移除此對應資料項目,且將所述資料查找表中的此對應資料項目的對應計數器值累進加一,以及將所述資料查找表中的此對應資料項目的對應計時器值設置為第一邏輯態(例如為邏輯1)。
為了隨時獲得寫入工作負荷(write workloads)的變化,對於儲存在這個資料查找表的所有資料項目,每隔一預設時間,資料分類電路114可以將這些資料項目的計數器值分別除以一個參數f,以及將這些資料項目的計時器值重置為第二邏輯態(例如為邏輯0)。上述機制可以獲得相對的負載變化且避免計數器溢位的問題。
舉例來說,圖4是依照本發明一實施例說明資料查找表的刷新(refresh)流程示意圖。請參照圖1與圖4,資料分類電路114可以利用主機命令計數器值host_write_count來計數主機10的寫入命令的次數。在主機10發出一次寫入命令(步驟S220)後,資料分類電路114可以將主機命令計數器值host_write_count累進加一(步驟S410)。資料分類電路114可以在步驟S420判斷主機命令計數器值host_write_count是否大於等於門檻值N,其中門檻值N可以視設計需求來決定。當步驟S420判斷結果表示主機命令計數器值host_write_count小於門檻值N時,資料分類電路114會等待主機10發出下一個寫入命令(步驟S430)。在主機10發出下一個寫入命令(步驟S430)後,資料分類電路114可以再一次回到步驟S410,以便將主機命令計數器值host_write_count累進加一。
當步驟S420判斷結果表示主機命令計數器值host_write_count大於等於門檻值N時,資料分類電路114可以進行步驟S440。資料分類電路114在步驟S440中可以將每一個資料項目的計數器值Vc分別除以一個參數f,以及將每一個資料項目的計時器值Vt重置為第二邏輯態(例如為邏輯0)。上述參數f可以依照設計需求來決定。舉例來說,上述參數f可以是2或是其他實數。因此,在每N個主機寫入請求時,每一個資料項目的計數器值Vc分別被除以f,且每一個資料項目的定時器值Vt被重置為第二邏輯態。例如,對於每8192個主機寫入命令,所有的計數器值Vc都被除以f = 2,且所有的計時器值Vt都被重置為邏輯0。
圖4所示資料查找表的刷新流程為一個示例。在其他實施例中,資料查找表中的這些資料項目可以不同步刷新。舉例來說,當資料查找表中的一個對應資料項目的邏輯位址資訊吻合主機10的寫入命令的邏輯位址時,資料分類電路114可以對這個對應資料項目啟動一個計時操作。當此計時操作的計時結果已達某一預設時間(此預設時間可以依照設計需求來決定)時,資料分類電路114可以停止此計時操作,且將這個對應資料項目的對應計數器值Vc除以參數f,以及將這個對應資料項目的對應計時器值Vt重置為第二邏輯態(例如為邏輯0)。不同的資料項目,其計時操作的起始時間點往往不同。因此,資料查找表中的這些資料項目可以不同步刷新。值得一提的是,在此計時操作的計時結果達到所述預設時間之前,若來自主機10的另一寫入命令的邏輯位址吻合這個相同的對應資料項目的邏輯位址資訊,則資料分類電路114可以重置這個對應資料項目的計時操作的計時結果(重新計時),且將這個對應資料項目的對應計數器值Vc累進加一,以及將這個對應資料項目的對應計時器值Vt設置為第一邏輯態(例如為邏輯1)。
值得注意的是,在不同的應用情境中,上述控制器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)。另外,本發明的裝置和方法可以通過硬體和軟體的組合來實現。
舉例來說,在另一實施例中,資料分類電路114的例子包括動態隨機存取記憶體(dynamic random access memory, DRAM)、靜態隨機存取記憶體(static random access memory, SRAM)或是其他揮發性記憶體(volatile memory)。資料分類電路114用以存放所述資料查找表。上述位址分類方法可以由中央處理單元111來執行。在中央處理單元111執行上述位址分類方法的過程中,中央處理單元111可以存取/管理存放在資料分類電路114中的所述資料查找表。
再舉例來說,圖5是依照本發明另一實施例說明一種非依電性記憶體裝置500的電路方塊示意圖。非依電性記憶體裝置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中。因此,圖3與圖4的相關說明亦可以適用於圖5所示非依電性記憶體裝置500。
綜上所述,本發明諸實施例所提供的非依電性記憶體裝置及其位址分類方法,其使用了一個資料查找表,以便對主機10的冷熱資料進行分類。此資料查找表包括多個資料項目,而每一個資料項目包括邏輯位址資訊、計數器值Vc與計時器值Vt。上述諸實施例揭示一種即時方案(on-the-fly approach),其可以根據資料邏輯塊位址的寫入頻率(計數器值Vc)和最近被存取狀況(計時器值Vt)來獲得寫入工作負荷變化。依據寫入命令的邏輯位址可以從資料查找表中查找出對應計數器值與對應計時器值。控制器可以檢查對應計數器值與對應計時器值,來決定寫入命令的邏輯位址是否為熱資料位址。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧主機
100、500‧‧‧非依電性記憶體裝置
110、110’‧‧‧控制器
111‧‧‧中央處理單元
112‧‧‧記憶體控制電路
113‧‧‧記憶體緩衝器
114‧‧‧資料分類電路
115‧‧‧錯誤檢查糾正(ECC)電路
120‧‧‧非依電性記憶體
S210~S240、S241~S245、S310~S330、S410~S440‧‧‧步驟
圖1是依照本發明一實施例說明一種非依電性記憶體裝置的電路方塊示意圖。 圖2是依照本發明一實施例說明一種位址分類方法的流程示意圖。 圖3是依照本發明另一實施例說明一種位址分類方法的流程示意圖。 圖4是依照本發明一實施例說明資料查找表的刷新(refresh)流程示意圖。 圖5是依照本發明另一實施例說明一種非依電性記憶體裝置的電路方塊示意圖。

Claims (24)

  1. 一種非依電性記憶體裝置,包括: 一非依電性記憶體;以及 一控制器,耦接至該非依電性記憶體,用以進行一位址分類方法來決定來自一主機的一寫入命令的一邏輯位址是否為熱資料位址,以及依照該寫入命令而存取該非依電性記憶體,其中該位址分類方法包括:提供一資料查找表,其中該資料查找表包括多個資料項目,每一個資料項目包括一邏輯位址資訊、一計數器值與一計時器值;由該控制器依據該寫入命令的該邏輯位址而查找該資料查找表,以獲得一對應計數器值與一對應計時器值;以及由該控制器依據該對應計數器值與該對應計時器值來決定該寫入命令的該邏輯位址是否為熱資料位址。
  2. 如申請專利範圍第1項所述的非依電性記憶體裝置,其中當該對應計數器值超出一預設範圍且該對應計時器值為一第一邏輯態時,該控制器將該寫入命令的該邏輯位址判定為熱資料位址,以及當該對應計數器值不超出該預設範圍且該對應計時器值為一第二邏輯態時,該控制器將該寫入命令的該邏輯位址判定為冷資料位址。
  3. 如申請專利範圍第2項所述的非依電性記憶體裝置,其中當該對應計數器值超出該預設範圍且該對應計時器值為該第二邏輯態時,該控制器將該寫入命令的該邏輯位址判定為次熱資料位址,以及當該對應計數器值不超出該預設範圍且該對應計時器值為該第一邏輯態時,該控制器將該寫入命令的該邏輯位址判定為次冷資料位址。
  4. 如申請專利範圍第1項所述的非依電性記憶體裝置,其中當該資料查找表中的一對應資料項目的該邏輯位址資訊吻合該寫入命令的該邏輯位址時,該控制器將該對應資料項目的該對應計數器值累進加一,以及將該對應資料項目的該對應計時器值設置為一第一邏輯態。
  5. 如申請專利範圍第4項所述的非依電性記憶體裝置,其中每隔一預設時間,該控制器將該些資料項目的該些計數器值分別除以一參數,以及將該些資料項目的該些計時器值重置為一第二邏輯態。
  6. 如申請專利範圍第4項所述的非依電性記憶體裝置,其中當該對應資料項目的該邏輯位址資訊吻合該寫入命令的該邏輯位址時,該控制器對該對應資料項目啟動一計時操作;當該計時操作的一計時結果已達一預設時間時,該控制器停止該計時操作,將該對應資料項目的該對應計數器值除以一參數,以及將該對應資料項目的該對應計時器值重置為一第二邏輯態。
  7. 如申請專利範圍第6項所述的非依電性記憶體裝置,其中當在該計時操作的該計時結果達到該預設時間之前來自該主機的另一寫入命令的一邏輯位址吻合該對應資料項目的該邏輯位址資訊時,該控制器重置該對應資料項目的該計時操作的該計時結果,將該對應資料項目的該對應計數器值累進加一,以及將該對應資料項目的該對應計時器值設置為該第一邏輯態。
  8. 如申請專利範圍第1項所述的非依電性記憶體裝置,其中當該資料查找表中的所有資料項目的該些邏輯位址資訊皆不吻合該寫入命令的該邏輯位址時,該控制器將該寫入命令的該邏輯位址所對應的一新資料項目加入該資料查找表中,其中該新資料項目的該邏輯位址資訊吻合該寫入命令的該邏輯位址,該新資料項目的該計數器值被設置為1,以及該新資料項目的該計時器值被設置為一第一邏輯態。
  9. 如申請專利範圍第1項所述的非依電性記憶體裝置,其中當該資料查找表中的所有資料項目的該些邏輯位址資訊皆不吻合該寫入命令的該邏輯位址時,該控制器依據一隨機值或一偽隨機值而決定是否將該寫入命令的該邏輯位址所對應的一新資料項目加入該資料查找表中,其中該新資料項目的該邏輯位址資訊吻合該寫入命令的該邏輯位址,該新資料項目的該計數器值被設置為1,以及該新資料項目的該計時器值被設置為一第一邏輯態。
  10. 如申請專利範圍第1項所述的非依電性記憶體裝置,其中當該控制器決定將該寫入命令的該邏輯位址所對應的一新資料項目加入該資料查找表且該資料查找表已滿時,該控制器從該資料查找表的該些資料項目中選擇並刪除一可移除資料項目,其中該可移除資料項目的該計數器值不超出一預設範圍,且該可移除資料項目的該計時器值為一第二邏輯態。
  11. 如申請專利範圍第1項所述的非依電性記憶體裝置,其中該控制器將該資料查找表的該些資料項目中具有該計數器值不超出一預設範圍且該計時器值為一第二邏輯態的所有資料項目加入一移除候選清單,當該控制器決定將該寫入命令的該邏輯位址所對應的一新資料項目加入該資料查找表且該資料查找表已滿時,該控制器從該移除候選清單中選擇一可移除資料項目,以及從該資料查找表與該移除候選清單中移除該可移除資料項目。
  12. 如申請專利範圍第11項所述的非依電性記憶體裝置,其中當該移除候選清單中的一對應資料項目的該邏輯位址資訊吻合該寫入命令的該邏輯位址時,該控制器從該移除候選清單中移除該對應資料項目,將該資料查找表中的該對應資料項目的該對應計數器值累進加一,以及將該資料查找表中的該對應資料項目的該對應計時器值設置為一第一邏輯態。
  13. 一種非依電性記憶體裝置的位址分類方法,以決定來自一主機的一寫入命令的一邏輯位址是否為熱資料位址,所述位址分類方法包括: 提供一資料查找表,其中該資料查找表包括多個資料項目,每一個資料項目包括一邏輯位址資訊、一計數器值與一計時器值; 由一控制器依據該寫入命令的該邏輯位址而查找該資料查找表,以獲得一對應計數器值與一對應計時器值;以及 由該控制器依據該對應計數器值與該對應計時器值來決定該寫入命令的該邏輯位址是否為熱資料位址。
  14. 如申請專利範圍第13項所述的位址分類方法,其中所述決定該寫入命令的該邏輯位址是否為熱資料位址的步驟包括: 當該對應計數器值超出一預設範圍且該對應計時器值為一第一邏輯態時,由該控制器將該寫入命令的該邏輯位址判定為熱資料位址;以及 當該對應計數器值不超出該預設範圍且該對應計時器值為一第二邏輯態時,由該控制器將該寫入命令的該邏輯位址判定為冷資料位址。
  15. 如申請專利範圍第14項所述的位址分類方法,其中所述決定該寫入命令的該邏輯位址是否為熱資料位址的步驟更包括: 當該對應計數器值超出該預設範圍且該對應計時器值為該第二邏輯態時,該控制器將該寫入命令的該邏輯位址判定為次熱資料位址;以及 當該對應計數器值不超出該預設範圍且該對應計時器值為該第一邏輯態時,該控制器將該寫入命令的該邏輯位址判定為次冷資料位址。
  16. 如申請專利範圍第13項所述的位址分類方法,更包括: 當該資料查找表中的一對應資料項目的該邏輯位址資訊吻合該寫入命令的該邏輯位址時,由該控制器將該對應資料項目的該對應計數器值累進加一,以及將該對應資料項目的該對應計時器值設置為一第一邏輯態。
  17. 如申請專利範圍第16項所述的位址分類方法,更包括: 每隔一預設時間,由該控制器將該些資料項目的該些計數器值分別除以一參數,以及將該些資料項目的該些計時器值重置為一第二邏輯態。
  18. 如申請專利範圍第16項所述的位址分類方法,更包括: 當該對應資料項目的該邏輯位址資訊吻合該寫入命令的該邏輯位址時,由該控制器對該對應資料項目啟動一計時操作;以及 當該計時操作的一計時結果已達一預設時間時,由該控制器停止該計時操作,將該對應資料項目的該對應計數器值除以一參數,以及將該對應資料項目的該對應計時器值重置為一第二邏輯態。
  19. 如申請專利範圍第18項所述的位址分類方法,更包括: 當在該計時操作的該計時結果達到該預設時間之前來自該主機的另一寫入命令的一邏輯位址吻合該對應資料項目的該邏輯位址資訊時,由該控制器重置該對應資料項目的該計時操作的該計時結果,將該對應資料項目的該對應計數器值累進加一,以及將該對應資料項目的該對應計時器值設置為該第一邏輯態。
  20. 如申請專利範圍第13項所述的位址分類方法,更包括: 當該資料查找表中的所有資料項目的該些邏輯位址資訊皆不吻合該寫入命令的該邏輯位址時,由該控制器將該寫入命令的該邏輯位址所對應的一新資料項目加入該資料查找表中,其中該新資料項目的該邏輯位址資訊吻合該寫入命令的該邏輯位址,該新資料項目的該計數器值被設置為1,以及該新資料項目的該計時器值被設置為一第一邏輯態。
  21. 如申請專利範圍第13項所述的位址分類方法,更包括: 當該資料查找表中的所有資料項目的該些邏輯位址資訊皆不吻合該寫入命令的該邏輯位址時,由該控制器依據一隨機值或一偽隨機值而決定是否將該寫入命令的該邏輯位址所對應的一新資料項目加入該資料查找表中,其中該新資料項目的該邏輯位址資訊吻合該寫入命令的該邏輯位址,該新資料項目的該計數器值被設置為1,以及該新資料項目的該計時器值被設置為一第一邏輯態。
  22. 如申請專利範圍第13項所述的位址分類方法,更包括: 當該控制器決定將該寫入命令的該邏輯位址所對應的一新資料項目加入該資料查找表且該資料查找表已滿時,由該控制器從該資料查找表的該些資料項目中選擇並刪除一可移除資料項目,其中該可移除資料項目的該計數器值不超出該預設範圍,且該可移除資料項目的該計時器值為一第二邏輯態。
  23. 如申請專利範圍第13項所述的位址分類方法,更包括: 由該控制器將該資料查找表的該些資料項目中具有該計數器值不超出該預設範圍且該計時器值為一第二邏輯態的所有資料項目加入一移除候選清單;以及 當該控制器決定將該寫入命令的該邏輯位址所對應的一新資料項目加入該資料查找表且該資料查找表已滿時,由該控制器從該移除候選清單中選擇一可移除資料項目,以及從該資料查找表與該移除候選清單中移除該可移除資料項目。
  24. 如申請專利範圍第23項所述的位址分類方法,更包括: 當該移除候選清單中的一對應資料項目的該邏輯位址資訊吻合該寫入命令的該邏輯位址時,由該控制器從該移除候選清單中移除該對應資料項目,將該資料查找表中的該對應資料項目的該對應計數器值累進加一,以及將該資料查找表中的該對應資料項目的該對應計時器值設置為一第一邏輯態。
TW105134260A 2016-10-07 2016-10-24 非依電性記憶體裝置及其位址分類方法 TWI652570B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611101194.XA CN106897026B (zh) 2016-10-07 2016-12-05 非易失性存储器装置及其地址分类方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/287,743 US10733107B2 (en) 2016-10-07 2016-10-07 Non-volatile memory apparatus and address classification method thereof
US15/287,743 2016-10-07

Publications (2)

Publication Number Publication Date
TW201814527A true TW201814527A (zh) 2018-04-16
TWI652570B TWI652570B (zh) 2019-03-01

Family

ID=61828894

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105134260A TWI652570B (zh) 2016-10-07 2016-10-24 非依電性記憶體裝置及其位址分類方法

Country Status (2)

Country Link
US (1) US10733107B2 (zh)
TW (1) TWI652570B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080205B2 (en) * 2019-08-29 2021-08-03 Micron Technology, Inc. Classifying access frequency of a memory sub-system component
CN110851273B (zh) * 2019-10-31 2022-07-15 山东省计算中心(国家超级计算济南中心) 一种基于混合内存的程序处理方法和基于混合内存的设备
US11941285B2 (en) * 2021-04-20 2024-03-26 Micron Technology, Inc. Mitigating slow read disturb in a memory sub-system
US11829636B2 (en) * 2021-09-01 2023-11-28 Micron Technology, Inc. Cold data identification
US12061556B2 (en) * 2022-09-12 2024-08-13 Innogrit Corporation Hot/cold address/data determination using hash addresses for a data storage system
US20250044986A1 (en) * 2023-08-03 2025-02-06 Western Digital Technologies, Inc. Skipping completion for repeat lbas based upon lba tracking

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902628B (zh) 2012-09-18 2016-06-01 记忆科技(深圳)有限公司 一种基于闪存实现的冷热数据自动分离方法、系统及闪存
US20140089564A1 (en) 2012-09-27 2014-03-27 Skymedi Corporation Method of data collection in a non-volatile memory
US9342389B2 (en) 2013-04-04 2016-05-17 SK Hynix Inc. Neighbor based and dynamic hot threshold based hot data identification
CN104133774A (zh) 2013-05-02 2014-11-05 擎泰科技股份有限公司 管理非易失性存储器的方法及其非易失性存储装置
US20140328127A1 (en) 2013-05-02 2014-11-06 Skymedi Corporation Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same
CN103455283B (zh) 2013-08-19 2016-01-20 华中科技大学 一种混合存储系统
CN103631538B (zh) 2013-12-05 2017-04-05 华为技术有限公司 冷热数据识别门限值计算方法、装置和系统
US9513815B2 (en) 2013-12-19 2016-12-06 Macronix International Co., Ltd. Memory management based on usage specifications
CN103810113B (zh) 2014-01-28 2016-07-06 华中科技大学 一种非易失存储器和动态随机存取存储器的融合内存系统
US9612964B2 (en) 2014-07-08 2017-04-04 International Business Machines Corporation Multi-tier file storage management using file access and cache profile information
WO2016135955A1 (ja) 2015-02-27 2016-09-01 株式会社日立製作所 不揮発性メモリデバイス
WO2016174744A1 (ja) * 2015-04-28 2016-11-03 株式会社日立製作所 不揮発性メモリの制御方法、制御装置、および半導体記憶装置
US20170024326A1 (en) * 2015-07-22 2017-01-26 CNEX-Labs, Inc. Method and Apparatus for Caching Flash Translation Layer (FTL) Table

Also Published As

Publication number Publication date
TWI652570B (zh) 2019-03-01
US20180101314A1 (en) 2018-04-12
US10733107B2 (en) 2020-08-04

Similar Documents

Publication Publication Date Title
US11126544B2 (en) Method and apparatus for efficient garbage collection based on access probability of data
TWI652570B (zh) 非依電性記憶體裝置及其位址分類方法
CN106897026B (zh) 非易失性存储器装置及其地址分类方法
US8321624B2 (en) Memory device and management method of memory device
TWI660346B (zh) 記憶體管理方法以及儲存控制器
KR102706808B1 (ko) 중첩된 범위들을 갖는 명령들에 대한 병렬 오버랩 관리
JP7308025B2 (ja) 集積回路装置及びストレージ装置
TW201734794A (zh) 非揮發性記憶體裝置及其操作方法
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US8706953B2 (en) Data storage device and method performing background operation with selected data compression
TWI631463B (zh) 非揮發性記憶體裝置及其操作方法
JP6102515B2 (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
US20170322747A1 (en) Information processing apparatus and method for deduplication
CN105917303B (zh) 一种控制器、识别数据块稳定性的方法和存储系统
CN108027764A (zh) 可转换的叶的存储器映射
CN107102953B (zh) 非易失性存储器装置及其迭代排序方法
KR20190048453A (ko) 저장 장치 및 메모리 시스템
JP2015053075A (ja) メモリシステム、情報処理装置および記憶装置
US9880930B2 (en) Method for operating controller and method for operating device including the same
TWI594253B (zh) 非依電性記憶體裝置及其空頁偵測方法
TWI592943B (zh) 資料儲存裝置、記憶體控制器及其資料管理方法
CN112306403B (zh) 基于数据图的概率存储数据
TWI900800B (zh) 鍵值持久儲存設備及用於其的兩級索引的方法
TWI849854B (zh) 利用雜湊位址確定熱/冷位址/資料的資料儲存系統、方法和非暫態電腦可讀取儲存媒體
JP5807693B2 (ja) メモリコントローラ、メモリシステム及びアドレス変換方法