TW201821996A - 管理記憶體裝置中記憶體單元的實體資訊的方法及系統 - Google Patents

管理記憶體裝置中記憶體單元的實體資訊的方法及系統 Download PDF

Info

Publication number
TW201821996A
TW201821996A TW106111654A TW106111654A TW201821996A TW 201821996 A TW201821996 A TW 201821996A TW 106111654 A TW106111654 A TW 106111654A TW 106111654 A TW106111654 A TW 106111654A TW 201821996 A TW201821996 A TW 201821996A
Authority
TW
Taiwan
Prior art keywords
memory
entity information
block
information
data block
Prior art date
Application number
TW106111654A
Other languages
English (en)
Other versions
TWI625626B (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 旺宏電子股份有限公司
Application granted granted Critical
Publication of TWI625626B publication Critical patent/TWI625626B/zh
Publication of TW201821996A publication Critical patent/TW201821996A/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/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; 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/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, 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/60Details of cache 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/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

接收要求以存取包括於記憶體裝置的記憶體單元的實體資訊。判斷實體資訊在快取記憶體中的實體資訊表中是否可用。若記憶體單元的實體資訊在表單中是可用的,從表單中存取實體資訊。若實體資訊在表單中是不可用的,存取快取記憶體中的全域指引目錄,其指示在非揮發性記憶體中儲存全數的實體資訊區塊的位置。從全域指引目錄,判斷非揮發性記憶體中儲存包括記憶體單元的實體資訊的特定實體資訊區塊的特定位置。特定實體資訊區塊被載入至表單中,並且實體從特定實體資訊區塊存取記憶體單元的實體資訊。

Description

管理記憶體裝置中記憶體單元的實體資訊的方法及系統
以下揭露大致上係關於用以管理記憶體裝置中記憶體單元的實體資訊的方法及系統。
一些記憶體裝置會保存關於其組成記憶體單元的實體狀態的實體資訊。實體資訊的保存例如是以記憶體區塊(block)、頁(page)或子頁(sub-page)為單位(granularity)。在執行記憶體操作時,部分的實體資訊將被存取。
本揭露描述一種用以管理記憶體裝置中記憶體單元的實體資訊的技術及系統。在一些實施例中,記憶體裝置包括非揮發性記憶體,像是快閃記憶體以及具有快取記憶體的裝置控制器。快取記憶體例如是隨機存取記憶體(Random Access Memory,RAM)。記憶體裝置可將記憶體裝置中所有記憶體單元的實體資訊紀錄在儲存於非揮發性記憶體中的實體資訊區塊當中。記憶體單元對應非揮發性記憶體中的一部分,像是記憶體區塊、頁或子頁。實體資訊區塊中較小的一部分(像是對應實體資訊區塊子集合的一或多個資料塊(chunk),其包括非揮發性記憶體中一記憶體單元子集合的實體資訊)儲存在快取記憶體當中。實體在快取記憶體中,資料塊儲存在一種稱之為快取實體資訊表的資料結構實體當中。裝置控制器更可在快取記憶體中保存一全域指引目錄(global directory),以指示實體資訊區塊在非揮發性記憶體中的位置。
當接收到用以存取記憶體單元的實體資訊的要求時(例如在對記憶體單元作垃圾回收(garbage collection)時),裝置控制器會先檢查快取實體資訊表中是否存在所要求的實體資訊。若是,裝置控制器將回應此要求,自快取記憶體提供實體資訊。若所要求的實體資訊不存在於快取記憶體當中,裝置控制器將利用全域指引目錄,判斷具有所要求的實體資訊的實體資訊區塊存在於非揮發性記憶體中何處。一旦判斷出所要求的實體資訊的實體資訊區塊在非揮發性記憶體中的位置,裝置控制器將把包括目標實體資訊區塊的資料塊載入至快取實體資訊表中的項目當中。
在一些實施例中,實體為了將資料塊載入至快取實體資訊表,既存的資料塊必須先從表中剔除(evict)(像是在快取實體資訊表沒有可用的閒置空間時)。在剔除一資料塊之前,裝置控制器會檢查此資料塊中的一或多個項目是否是已使用(dirty)的,例如,自此資料塊被載入至快取實體資訊表時起,所對應的記憶體單元的實體狀態已改變。資料塊未使用(clean)或已使用的狀態是由關聯的標記位元來指示。在從快取實體資訊表剔除具有已使用實體資訊的資料塊之前,此資料塊會先實體被寫回非揮發性記憶體。一旦被寫回非揮發性記憶體,已使用標記會被設定為未使用,且快取實體資訊表中的項目將由包括所要求的實體資訊的新資料塊覆寫。裝置控制器接著將回應要求,自新載入的資料塊提供實體資訊。
一般而言,實體可透過接收用以存取記憶體裝置中記憶體單元的實體資訊的一要求來管理記憶體裝置中記憶體單元的實體資訊。回應於接收此要求,將判斷記憶體單元的實體資訊在快取記憶體的表單中是否是可用的。表單儲存著對應全數實體資訊區塊中的一子集合的資訊,當中包括記憶體裝置中的多個記憶體單元的實體資訊。當判斷出記憶體單元的實體資訊在表單中是可用的,將從表單中存取記憶體單元的實體資訊。當判斷出記憶體單元的實體資訊在表單中是不可用的,將存取儲存在快取記憶體中的全域指引目錄。全域指引目錄可指示非揮發性記憶體中全數實體資訊區塊的儲存位置。從全域指引目錄當中,可判斷出一實體特定實體資訊區塊在非揮發性記憶體中的儲存位置。特定實體資訊區塊包括記憶體單元的實體資訊。回應於此一判斷,此特定實體資訊區塊將從非揮發性記憶體中的特定位置被載入至表單中。來自特定實體資訊區塊的記憶體單元的實體資訊將被載入至表單中。
特定實施方式可包括以下一或多個特徵。表單可儲存一或多個記憶體資料塊,各記憶體資料塊包括一或多個儲存一或多個記憶體單元的實體資訊的項目,此一或多個記憶體單元包含於全數的實體資訊區塊的子集合中的一實體資訊區塊。判斷記憶體單元的實體資訊在表單中是否可用包括判斷對應特定實體資訊區塊的記憶體資料塊是否存在於表單中。全域指引目錄可包括多個項目,其指示對應全數實體資訊區塊的全數記憶體資料塊在非揮發性記憶體中所儲存的位置。
表單可儲存一或多個記憶體資料塊,各記憶體資料塊包括一或多個項目,各個項目儲存一或多個記憶體單元的實體資訊項目,此一或多個記憶體單元的實體資訊包含於實體一實體資訊區塊當中,此實體資訊區塊包含於全數實體資訊區塊的一子集合。將特定實體資訊區塊從非揮發性記憶體中的特定位置載入至表單,當中可包括在非揮發性記憶體的特定位置中,存取對應此特定實體資訊區塊的特定記憶體資料塊,並將此特定記憶體資料塊載入至表單中。
將特定記憶體資料塊載入至表單中,當中可包括辨識存在於表單中欲剔除的既存記憶體資料塊。可判斷關聯於此既存記憶體資料塊的一或多個記憶體單元的實體資訊是否有被更新。當判斷關聯於此既存記憶體資料塊的一或多個記憶體單元的實體資訊並未被更新時,將以特定記憶體資料塊替換此既存記憶體資料塊。當判斷關聯於此既存記憶體資料塊的一或多個記憶體單元的實體資訊已被更新時,從全域指引目錄判斷對應於此既存記憶體資料塊的一第二實體資訊區塊在非揮發性記憶體中的一第二位置。回應於判斷此第二位置,將存取非揮發性記憶體中的第二實體資訊區塊。可辨識第二實體資訊區塊中的一或多個記憶體單元,第二實體資訊區塊中的此一或多個記憶體單元係對應於關聯實體既存記憶體資料塊中具有更新後實體資訊的一或多個記憶體單元。第二實體資訊區塊中被辨識出來的一或多個記憶體單元的實體資訊可被來自既存記憶體資料塊中對應記憶體單元的更新後實體資訊更新。既存記憶體資料塊可被特定記憶體資料塊更新。
表單中的各記憶體單元可包括指示此記憶體單元的實體資訊是否已被更新的已使用標記。判斷關聯於既存記憶體資料塊的一或多個記憶體單元的實體資訊是否已被更新,當中可包括檢查各一或多個記憶體單元的關聯已使用標記的狀態。當關聯已使用標記具有第一值,將判斷此記憶體單元的實體資訊已被更新。當關聯已使用標記具有第二值,將判斷此記憶體單元的實體資訊尚未被更新。
表單中的各記憶體單元可包括指示此記憶體單元的實體資訊是否已被更新的已使用標記。將第二實體資訊區塊中被辨識出的一或多個記憶體單元的實體資訊更新成來自既存記憶體資料塊的對應記憶體單元的更新後實體資訊,當中可包括回應於更新第二實體資訊區塊中被辨識出的一或多個記憶體單元的實體資訊,清除關聯於表單中對應記憶體單元的一或多個已使用標記的值。
可偵測存在於表單中的一或多個記憶體單元的實體狀態。接收要求以存取記憶體單元的實體資訊,當中可包括接收要求以更新記憶體單元的實體狀態。回應接收要求以更新記憶體單元的實體狀態,表單中關聯於此記憶體單元的項目可被更新。此項目可包括此記憶體單元的實體資訊。關聯於此項目的已使用標記可被設成第一值以指示關聯於此項目的記憶體單元的實體資訊已被更新。
對一或多個記憶體單元偵測實體狀態,當中可包括檢查各記憶體單元的閥電壓設定(threshold voltage setting)、健康狀態(health status)或有效性狀態(validity status)至少其一。更新表單中關聯於記憶體單元的項目,當中可包括更新包含於項目中的一或多個位元,此一或多個位元可用來表示以下至少其一:針對記憶體單元的閥電壓設定、針對記憶體單元的健康狀態、針對記憶體單元的有效性狀態、針對記憶體單元的內容的編碼類型(encode type)、針對記憶體單元的位元錯誤率、或針對記憶體單元的抹除計數(erase count)、編程計數(program count)或讀取計數(read count)其中之一。
接收要求以更新記憶體單元的實體狀態,當中可包括在對記憶體單元進行讀取或寫入操作之後,跟著接收要求以更新記憶體單元的實體狀態。
記憶體單元可包括記憶體區塊、記憶體頁、記憶體子頁的其中之一。
就另一方面,記憶體系統包括非揮發性記憶體,其包括多個記憶體單元;快取記憶體,其耦接至非揮發性記憶體;以及裝置控制器,其耦接至非揮發性記憶體以及快取記憶體。裝置控制器用以接收要求以存取包含於非揮發性記憶體的記憶體單元的實體資訊。回應接收此要求,裝置控制器判斷記憶體單元的實體資訊在快取記憶體中的表單裡是否是可用的(available),此表單係儲存對應全數實體資訊區塊的一子集合的資訊,其包括記憶體裝置中的多個記憶體單元的實體資訊。當判斷出記憶體單元的實體資訊在表單中是可用的,裝置控制器將從此表單中存取記憶體單元的實體資訊。當判斷出記憶體單元的實體資訊在此表單中是不可用的,裝置控制器將存取儲存於快取記憶體中的全域指引目錄,全域指引目錄可指示在非揮發性記憶體中,儲存全數實體資訊區塊的位置。裝置控制器可透過全域指引目錄來判斷實體實體非揮發性記憶體中儲存特定實體資訊區塊的特定位置,此特定實體資訊區塊包括記憶體單元的實體資訊。回應於此判斷,裝置控制器可將此特定實體資訊區塊從非揮發性記憶體中的特定位置載入至表單中,並從載入至此表單的特定實體資訊區塊中存取記憶體單元的實體資訊。
特定實施方式可包括以下一或多個特徵。表單可儲存一或多個記憶體資料塊,各記憶體資料塊包括一或多個項目,此一或多個項目儲存一或多個記憶體單元的實體資訊項目,此一或多個記憶體單元的實體資訊包含於一實體資訊區塊,此實體資訊區塊包含於全數實體資訊區塊的一子集合中實體。判斷記憶體單元的實體資訊在表單中是否可用包括判斷對應特定實體資訊區塊的記憶體資料塊是否存在於表單中。全域指引目錄可包括多個項目,其指示對應全數實體資訊區塊的全數記憶體資料塊在非揮發性記憶體中的位置。
表單可儲存一或多個記憶體資料塊,各記憶體資料塊包括一或多個儲存一或多個記憶體單元的實體資訊的項目,該一或多個記憶體單元包含於全數的實體資訊區塊的子集合中的一實體資訊區塊。將特定實體資訊區塊從非揮發性記憶體中的特定位置載入至表單,當中包括從非揮發性記憶體的特定位置,存取對應此特定實體資訊區塊的特定記憶體資料塊,並將此特定記憶體資料塊載入至表單中。
將特定記憶體資料塊載入至表單中,當中可包括辨識存在於表單中欲剔除的既存記憶體資料塊。可判斷關聯於此既存記憶體資料塊的一或多個記憶體單元的實體資訊是否有被更新。當判斷出關聯於此既存記憶體資料塊的一或多個記憶體單元的實體資訊並未被更新,將以此特定記憶體資料塊替換既存記憶體資料塊。當判斷出關聯於此既存記憶體資料塊的一或多個記憶體單元的實體資訊已被更新,將從全域指引目錄判斷對應於此既存記憶體資料塊的一第二實體資訊區塊在非揮發性記憶體中的一第二位置。回應於判斷此第二位置,將可存取非揮發性記憶體中的第二實體資訊區塊。可辨識第二實體資訊區塊中的一或多個記憶體單元,第二實體資訊區塊中的此一或多個記憶體單元係對應於實體既存記憶體資料塊中具有更新後實體資訊的一或多個記憶體單元。第二實體資訊區塊中被辨識出的此一或多個記憶體單元的實體資訊可被來自既存記憶體資料塊中對應記憶體單元的更新後實體資訊更新。既存記憶體資料塊可被特定記憶體資料塊更新。
表單中的各記憶體單元可包括指示記憶體單元的實體資訊是否已被更新的已使用標記。判斷關聯於既存記憶體資料塊的一或多個記憶體單元的實體資訊是否已被更新,當中可包括檢查各一或多個記憶體單元的關聯已使用標記的狀態。當關聯已使用標記具有第一值,將判斷此記憶體單元的實體資訊已被更新。當關聯已使用標記具有第二值,將判斷此記憶體單元的實體資訊尚未被更新。
表單中的各記憶體單元可包括指示記憶體單元的實體資訊是否已被更新的已使用標記。將第二實體資訊區塊中被辨識出的一或多個記憶體單元的實體資訊更新成來自既存記憶體資料塊的對應記憶體單元的更新後實體資訊,當中可包括回應於更新第二實體資訊區塊中被辨識出的一或多個記憶體單元的實體資訊,清除關聯於表單中對應記憶體單元的一或多個已使用標記的值。
裝置控制器更可用以偵測表單中的一或多個記憶體單元的實體狀態。接收要求以存取記憶體單元的實體資訊,當中可包括接收要求以更新記憶體單元的實體狀態。回應接收此要求以更新記憶體單元的實體狀態,表單中關聯於此記憶體單元的項目可被更新。此項目可包括此記憶體單元的實體資訊。關聯於此項目的已使用標記可被設成第一值以指示關聯於此項目的記憶體單元的實體資訊已被更新。
對一或多個記憶體單元偵測實體狀態可包括檢查各記憶體單元的閥電壓設定、健康狀態或有效性狀態至少其一。更新表單中關聯於記憶體單元的項目,當中可包括以下至少其中之一:更新包含於項目中的一或多個位元,此一或多個位元表示針對記憶體單元的閥電壓設定、針對記憶體單元的健康狀態、針對記憶體單元的有效性狀態、針對記憶體單元的內容的編碼類型、針對記憶體單元的位元錯誤率、或針對記憶體單元的抹除計數、編程計數或讀取計數其中之一。
非揮發性記憶體可包括NAND快閃記憶體、NOR快閃記憶體或相變化記憶體(Phase Change Memory,PCM)其中之一。快取記憶體可包括靜態隨機存取記憶體(Static Random Access Memory,SRAM)、動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)或電阻式隨機存取記憶體(Resistive Random Access Memory,RRAM)其中之一。
記憶體單元可包括記憶體區塊、記憶體頁或記憶體子頁的其中之一。
以上技術的實施包括方法、系統、計算機程式產品以及計算機可讀取媒體。所述的計算機程式產品可以合適地內嵌於儲存著可被一或多個處理器執行的指令的非暫態機器可讀取媒體(non-transitory machine-readable medium)當中。指令可用來使一或多個處理器執行上述動作。所述的計算機可讀取媒體儲存著指令,當指令由一或多個處理器執行,可使一或多個處理器執行所述動作。
在上述方式中,記憶體裝置中的裝置控制器可有效率地管理記憶體裝置中記憶體單元(例如記憶體頁、子頁或記憶體區塊)的實體資訊。透過將完整的實體資訊儲存於非揮發性記憶體中,並緩存(caching)部分的實體資訊於快取記憶體中,並按需求在非揮發性記憶體和快取記憶體之間作換進/換出(swap in/out),儲存在快取記憶體中實體資訊的數量可被限制並獨立於記憶體裝置中實體資訊的總量。隨著記憶體裝置中記憶體區塊的大小越來越大,當中記憶體單元的實體資訊的對應數量也越多,此技術是相當有用的。由於只需將有限數量的實體資訊儲存在快取記憶體當中,快取記憶體的大小可受限制。這有助於限制記憶體裝置的成本,因為快取記憶體往往較非揮發性記憶體來得昂貴。
技術可被應用在各類型的非揮發性記憶體上,像是NAND快閃記憶體、NOR快閃記憶體、相變化記憶體(PCM)或其他類似者。新增或替代地,技術可被應用在各類型的快取記憶體上,像是靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、電阻式隨機存取記憶體(RRAM)或其他類似者。在部分實施例中,可使用額外層級的快取,例如,儲存著另一部分實體資訊區塊的第三級快取記憶體。
以下的附圖和描述中闡述了一或多個揭露的實施例的細節。其他特徵、方面以及優點可透過描述、附圖和申請專利範圍而變得更容易理解。
第1圖繪示依據一或多個實施例,使用快取實體資訊表實體的系統100的例子。系統100包括儲存裝置110以及與其耦接的主機裝置130。儲存裝置110包括裝置控制器112以及非揮發性記憶體120。裝置控制器112包括常駐記憶體(resident memory)113以及快取記憶體(cache memory)114。常駐記憶體113儲存實體資訊指引目錄(directory)115以及映射資訊指引目錄117。快取記憶體114儲存實體資訊單元116以及映射資訊單元118。非揮發性記憶體120儲存實體資訊區塊122、映射資訊單元124、以及資料單元126。主機裝置130包括處理器132。在一些實施例中,主機裝置130亦包括快取記憶體134,快取記憶體134儲存實體資訊單元136。
裝置控制器112係微處理器或特殊應用微控制器。在一些實施例中,裝置控制器112是針對儲存裝置110的記憶體控制器。以下段落中描述的各式技術係基於以裝置控制器112作為記憶體控制器的實施例。然而,在一些實施例中,裝置控制器112包含於主機裝置130中,而儲存裝置110包括非揮發性記憶體120。在此情況下,裝置控制器112作為主機控制器。以下段落中描述的各式技術亦適用於此實施例,例如,以裝置控制器112作為主機控制器。
處理器132用以執行指令並處理資料。指令及/或資料儲存在非揮發性記憶體120當中,例如資料單元126裡。在一些實施例中,處理器132係微處理器或特殊應用微控制器。
非揮發性記憶體120用於指令及/或資料的長期儲存。在一些實施例中,非揮發性記憶體120是快閃記憶體(flash memory),例如反及閘(NAND)快閃記憶體裝置或反或閘(NOR)快閃記憶體裝置。在一些實施例中,非揮發性記憶體120可以是其它類型的非揮發性記憶體,例如相變化記憶體(phase change memory, PCM)裝置。在一些實施例中,儲存裝置110包括多個非揮發性記憶體裝置120。
在一些實施例中,例如當非揮發性記憶體120是快閃記憶體或PCM裝置時,非揮發性記憶體120中的資料單元126對應於記憶體區塊。在此情況下,抹除操作是以記憶體區塊為單位來執行,記憶體區塊包括多個記憶體頁。舉例來說,在部分實施例中,記憶體裝置120是大小以8十億位元組(gigabytes,GB)為數量級的NAND快閃記憶體裝置。NAND快閃記憶體裝置包括2048個記憶體區塊。各記憶體區塊包括256個頁,各個頁的大小是以16千位元組(kilobytes,Kb)為數量級。
頁為記憶體執行讀取及寫入操作時的基本單位。一個頁包括用以儲存資料的資料區域以及用以儲存詮釋資料(metadata)的小型備用(spare)帶外區(out-of-band area,OOB)。在部分實施例中,取決於對頁或對應於記憶體區塊中其他頁所執行的操作,頁的實體條件(physical condition)將隨之改變。如下所述,頁的實體條件反映了頁的實體資訊,其儲存在實體資訊區塊中。頁的實體資訊可例如包括:頁被抹除的次數、用以檢查資料正確性的錯誤更正碼(error correction code,ECC)資訊、頁的健康狀態、頁的有效性狀態、以及對頁所設定的閥電壓。在部分實施例中,頁的有效性狀態可以是兩個不同狀態(例如有效及無效)的其中之一。在此情況下,當資料被寫入頁中,頁的狀態會改變成有效。當頁中的資料已過時(out of date)或損毀,頁的狀態為無效。然而,在一些其他的實施例中,頁的有效性狀態可以是三個不同狀態中的其中一個。在此情況下,除了上述的有效及無效狀態,頁亦可以處於閒置(free)/抹除(erased)狀態。當沒有資料被寫入頁當中,頁處於抹除狀態。當對抹除頁執行寫入操作,則頁的狀態將改變為有效。
在部分實施例中,針對非揮發性記憶體120中所有記憶體單元的實體資訊被共同地存在實體資訊區塊122當中。在部分實施例中,實體資訊區塊122是那些包括儲存關於資料單元126的實體資訊的頁的記憶體區塊。在本文中,記憶體單元是記憶體裝置120中的合適部分。舉例來說,記憶體單元可以是頁、子頁(例如一個字元(word))或是記憶體區塊。以下段落描述的技術係以頁作為單位的記憶體單元來實現。然而,本揭露之技術亦適用於以記憶體區塊、子頁或記憶體裝置120中其他合適部分為單位的記憶體單元來實現。
頁中的實體資訊122包括多個項目,各項目提供資料單元126一頁的實體資訊。在部分實施例中,項目可用來識別關聯的資料單元,並包括關於關聯頁的實體狀態的一位元組(byte)的資訊。舉例來說,頁的位元組項目所提供的關聯頁的實體資訊如表1所示。 表1
在部分實施例中,實體資訊區塊122被分成多個部分,此些部分稱為資料塊(chunk)。在此情況下,實體資訊係以資料塊為單位而傳遞於實體資訊區塊122和快取記憶體114。在部分實施例中,包含於一資料塊中的實體資訊對應於非揮發性記憶體120的一記憶體區塊。舉例來說,在部分實施例中,記憶體裝置120包括2048個記憶體區塊,各記憶體區塊包括256個頁。實體資訊區塊122的總大小(包括針對各資料頁的1-位元組項目)為2048*256*1位元組=524kB。對應記憶體區塊的一個資料塊包括針對256個頁的256-位元組的項目。故在此情況下,實體資訊區塊122包括2048個資料塊,各資料塊的大小為256位元組。
在部分實施例中,資料塊表示實體資訊區塊122中的不同部分,使得資料塊中的實體資訊對應於非揮發性記憶體120中的不同區段,例如頁或子頁。舉例來說,在部分實施例中,各資料塊的大小為1kB、2kB或一些其他合適的大小。
映射資訊單元124儲存將邏輯記憶體位址(例如,由主機裝置130所存取的記憶體位址)映射至實體記憶體位址的資訊(例如,非揮發性記憶體120中儲存資料單元126的位址)。映射資訊單元124可以是任何適合的資料結構,例如表(table)、陣列(array)或其他類似者。在以下段落中將進一步描述,全域指引目錄中的項目包括針對實體資訊區塊122的辨識碼以及實體資訊區塊在非揮發性記憶體120中所存放的位置(例如,實體記憶體位址)。新增或替代地,在部分實施例中,存放實體資訊區塊的位置係快取記憶體114或快取記憶體134中的位置。
在部分實施例中,裝置控制器為快取記憶體控制器,其中,非揮發性記憶體120例如是快閃記憶體裝置。裝置控制器112用以將處理器132存取的部分編程指令碼或資料從非揮發性記憶體120載入(load)至快取記憶體114。裝置控制器112亦用以將實體資訊區塊122的資料塊載入至快取記憶體114,例如,載入至實體資訊單元116中。裝置控制器112可利用儲存在常駐記憶體113中的資訊(例如,實體資訊指引目錄115及/或映射資訊指引目錄117)將實體資訊區塊122的資料塊載入至實體資訊單元116,細節將於後述。
在部分實施例中,快取記憶體114包括SRAM、DRAM、RRAM或其他類似的RAM記憶體裝置其中之一,其較非揮發性記憶體120快速,但容量較非揮發性記憶體120小。除了存於快取記憶體中的編程指令碼及/或資料,快取記憶體114的容量並不足以存放非揮發性記憶體120中所有記憶體單元的所有實體資訊區塊。因此,快取記憶體中的實體資訊單元116儲存實體資訊區塊122的子集合。舉例來說,實體資訊單元116中的快取實體資訊表儲存多個資料塊,此些資料塊為全數實體資訊區塊122中的一子集合。考量上述例子,在部分實施例中,實體資訊區塊122的總大小為524kB,其分割成2048個資料塊。在此例子中,實體資訊單元116中的快取實體資訊表儲存了全數2048個資料塊中的64個資料塊。
在部分實施例中,常駐記憶體113中的實體資訊指引目錄115以及映射資訊指引目錄117形成快閃記憶體轉換層(Flash Translation Layer,FTL),其例如將主機裝置130存取的編程指令碼及/或資料的邏輯記憶體位址映射至非揮發性記憶體裝置120上資料單元126的實體位址。
在部分實施例中,當存取一邏輯位址(例如,主機裝置130提出讀取或寫入要求),裝置控制器會檢查映射資訊單元118以決定非揮發性記憶體120中對應的實體位址。映射資訊單元118會暫存一部分邏輯位址對實體位址的映射關係,而映射資訊單元124儲存完整的邏輯位址對實體位址的映射關係。若在映射資訊單元118中找到所要求的邏輯位址的項目,裝置控制器112將從此項目取得對應的實體位址。另一方面,若在映射資訊單元118中找不到所要求的邏輯位址的項目,裝置控制器112將查找(look up)常駐記憶體中的映射資訊指引目錄117,以將項目從映射資訊單元124載入至快取記憶體114中的映射資訊單元118。
基於從項目中所取得的實體位址,裝置控制器112將針對對應此實體實體位址的資料單元查找實體資訊。裝置控制器112會先檢查實體資訊是否存在於快取記憶體114中的實體資訊單元116,若存在的話,裝置控制器112將從實體資訊單元116讀取實體資訊。另一方面,若裝置控制器112判斷實體資訊並不存在於快取記憶體114中的實體資訊單元116,則裝置控制器112將查找實體資訊指引目錄,以決定目標實體資訊區塊122在非揮發性記憶體120中所存放的位置。裝置控制器112可將目標實體資訊區塊122從非揮發性記憶體120讀取至快取記憶體中的實體資訊單元116,並接著從載入至實體資訊單元116的目標實體資訊區塊122中存取實體資訊。
透過上述方式,實體資訊指引目錄115、映射資訊指引目錄117或兩者,係作為全域指引目錄。實體資訊指引目錄115及/或映射資訊指引目錄117例如是以表、陣列或其他類似者之合適資料結構的形式來保存。以下段落將進一步描述,實體資訊指引目錄115中的項目係包括針對實體資訊區塊的辨識碼以及非揮發性記憶體120中實體資訊區塊所存放的實體記憶體位址。
在部分實施例中,映射資訊單元118中的項目為映射資訊單元124中項目的子集合。在部分實施例中,映射資訊單元118中的項目複製(replicate)了映射資訊單元124中的項目。類似地,在部分實施例中,實體資訊單元116中的項目為實體資訊區塊122的子集合。在部分實施例中,實體資訊單元116中的項目複製了所有的實體資訊區塊122。
在部分實施例中,實體資訊區塊122的子集合係保存於主機裝置130中的快取記憶體134,新增或替代地,保存於實體資訊單元116中的儲存媒體。在此實施例中,舉例來說,實體資訊單元136儲存對應實體資訊區塊122的一子集合的資料塊。除了管理儲存在實體資訊單元116中的實體資訊資料塊,裝置控制器112亦用以管理存於實體資訊單元136中的實體資訊資料塊。
在部分實施例中,裝置控制器所執行的操作可以是不同的,取決於是否服務來自主機裝置130的讀取或寫入要求,或是裝置控制器112是否執行垃圾回收(garbage collection)操作。舉例來說,在部分實施例中,裝置控制器112從主機裝置130接收讀取要求。裝置控制器112執行邏輯對實體的位址查找,以決定對應來自主機裝置130的要求所指示的邏輯位址的實體實體位址。裝置控制器112先是檢查快取記憶體114中的映射資訊單元118是否存在邏輯對實體的位址映射。若存在,裝置控制器112將從映射資訊單元118讀取對應邏輯位址的實體位址。
另一方面,若映射資訊單元118中不存在邏輯對實體位址的映射,裝置控制器112將查找映射資訊指引目錄117,以決定非揮發性記憶體120中映射資訊單元124中的邏輯對實體位址映射的位置。一旦決定了位置,裝置控制器112將把邏輯對實體位址的映射從映射資訊單元124載入至映射資訊單元118,並從映射資訊單元118讀取對應邏輯位址的實體位址。
利用以上述方式讀取的實體位址,裝置控制器112將針對記憶體單元查找對應的實體資訊。在部分實施例中,實體資訊係取自快取記憶體114中的實體資訊單元116。在一些其他的實施例中,可基於實體資訊指引目錄115中的項目來查找實體資訊區塊112的位置,並將對應的實體資訊區塊122載入至實體資訊單元116,以取得實體資訊。在部分實施例中,裝置控制器112可從實體資訊中取得針對記憶體單元的一或多個閥電壓(Vth)設定或錯誤更正碼(ECC)設定。裝置控制器112可利用實體實體位址來存取記憶體單元,以讀取所要求的資料,並利用閥電壓位準來執行讀取操作,並對儲存在記憶體單元中的內容採用ECC設定。
作為另一個例子,在部分實施例中,裝置控制器112從主機裝置130接收寫入要求。一旦收到此寫入要求,裝置控制器112將針對欲寫入的更新資料,配置(allocate)一空白記憶體單元(例如頁)。利用空白記憶體單元的實體位址,裝置控制器將例如透過上述的方式,查找出對應的實體資訊。在部分實施例中,透過查找實體資訊,裝置控制器112將取得針對記憶體單元的ECC設定。
裝置控制器112可將欲寫入的資料編程至空白的記憶體單元。在寫入資料後,裝置控制器112將更新記憶體單元的對應實體資訊,並將其記錄為有效。裝置控制器112亦可查找對應於讀取要求中一邏輯位址的原始實體位址(例如,利用前述的映射資訊118及/或映射資訊指引目錄117)。裝置控制器112可取得對應原始實體位址的實體資訊,並更新實體資訊以將原始實體位址的內容標記為無效。裝置控制器112亦可更新映射資訊單元118中的項目,以將新編程的記憶體單元的實體位址映射(mapping)至寫入要求中所指示的邏輯位址。可對映射資訊單元124作類似的更新,以將新編程的記憶體單元的實體位址映射至寫入要求中所指示的邏輯位址。
作為另一個例子,在部分實施例中,裝置控制器112會執行垃圾回收操作。在此情況下,裝置控制器112可選擇欲被執行垃圾回收的記憶體單元。基於所選的記憶體單元的實體位址,裝置控制器112可查找出對應此記憶體單元的實體資訊。在部分實施例中,裝置控制器112可從實體資訊中獲悉針對記憶體單元的閥電壓(Vth)設定或ECC設定,及/或基於實體資訊來判斷記憶體單元的資料內容的有效性狀態。
裝置控制器112可將非揮發性記憶體120中的空白記憶體單元(即,用來寫入所選記憶體單元的資料內容的記憶體單元)配置為垃圾回收程序的一部分。利用空白記憶體單元的實體位址,裝置控制器將例如透過上述方式查找出對應的實體資訊。在部分實施例中,裝置控制器112可藉由查找實體資訊,以取得針對記憶體單元的ECC設定。
裝置控制器112可從所選記憶體單元中讀取有效資料,並將此資料寫入空白記憶體單元中。在將有效資料傳遞至空白資料單元後,裝置控制器112將更新對應所選記憶體單元的實體資訊,以將原始實體位址的內容標記為無效。裝置控制器112亦可更新映射資訊單元118中的項目,以將新編程的記憶體單元的實體位址映射至先前與被選作垃圾回收的記憶體單元的邏輯位址。可對映射資訊單元124的項目作類似的更新,以將新編程的記憶體單元的實體位址映射至先前關聯至所選記憶體單元的邏輯位址。
第2圖繪示依據一或多個實施例,用以管理快取記憶體210和非揮發性記憶體220之間的記憶體單元的實體資訊的例示架構200。在部分實施例中,快取記憶體210類似於快取記憶體114,而非揮發性記憶體220類似於非揮發性記憶體120。
快取記憶體210包括全域指引目錄212以及快取實體資訊表214。快取實體資訊表214儲存多個資料塊,例如資料塊216。各個資料塊包括多個項目,例如資料塊項目218。
非揮發性記憶體220儲存多個實體資訊區塊,像是實體資訊區塊222及224,並儲存多個資料區塊,例如資料區塊226及228。各個實體資訊區塊儲存多個實體資訊頁,例如儲存在實體資訊區塊222中的實體資訊頁222a以及222b,以及儲存在實體資訊區塊224中的實體資訊頁224a以及224b。各個資料區塊儲存多個資料頁,例如資料區塊226的資料頁226a及226b,以及存於資料區塊228中的資料頁228a及228b。
如圖所示,各個實體資訊頁,例如222a、222b、224a、224b,具有多個項目,各項目提供針對一資料頁的實體狀態資訊(例如,閥電壓設定、健康狀態、或有效性狀態的其中一或多者)。各個資料頁,例如226a、226b、228a、228b,包括用以儲存內容(例如,編程指令碼及/或資料)的資料部分,以及儲存關於頁的實體資訊或其他類似者的詮釋資料部分。
在部分實施例中,全域指引目錄212類似於前述的實體資訊指引目錄115。裝置控制器(如裝置控制器112)可利用全域指引目錄212來指示對應實體資訊區塊(如實體資訊區塊222及224)的資料塊的位置。
在本文中,實體資訊區塊是非揮發性記憶體220中包括實體資訊頁(像是實體資訊頁222a、222b、224a、224b)的記憶體區塊。資料區塊是非揮發性記憶體220中包括資料頁(像是資料頁226a、226b、228a、228b)的記憶體區塊。如全域指引目錄212中的項目所示,非揮發性記憶體220包括X個(X為>0的整數)實體資訊區塊0、1、…至X-1。
全域指引目錄212包括X個項目,各項目可指示非揮發性記憶體220中實體資訊區塊的位置,或是指示包括實體資訊區塊的資料塊的位置。舉例來說,全域指引目錄212中的項目212a提供了關於對應實體資訊區塊0的資料塊的位置資訊;全域指引目錄212中的項目212b提供了關於對應實體資訊區塊1的資料塊的位置資訊;全域指引目錄212中的項目212x提供了關於對應實體資訊區塊X-1的資料塊的位置資訊。
第2圖繪示的實施例中全域指引目錄212僅儲存在快取記憶體210當中。然而,在部分實施例中,全域指引目錄的副本(copy)亦儲存在非揮發性記憶體220當中。新增或替代地,在部分實施例中,全域指引目錄的一部分可儲存在快取記憶體210,而剩下部分的全域指引目錄可儲存在非揮發性記憶體220。在部分實施例中,全域指引目錄212可僅儲存在非揮發性記憶體220。在此情況下,裝置控制器112可從全域指引目錄在非揮發性記憶體220中的位置,對全域指引目錄進行存取。
在部分實施例中,快取實體資訊表214類似於實體資訊單元116中的快取實體資訊表。快取實體資訊表214儲存資料塊的子集合,此子集合對應於儲存在非揮發性記憶體220中的實體資訊區塊的一部分。舉例來說,非揮發性記憶體220包括X個實體資訊區塊,例如實體資訊區塊222及224。快取實體資訊表214儲存Y個資料塊0、1…至Y-1(其中Y為整數,0<Y<X),此Y個資料塊包括實體資訊的副本,其中此實體資訊儲存在所述X個實體資訊區塊中的一子集合當中。實體實體舉例來說,如第2圖所示,快取實體資訊表214包括針對資料塊216的項目。
各個資料塊對應一或多個實體資訊區塊,例如實體資訊區塊222及224中的一或多者。如第2圖所示,各個資料塊儲存針對Z個(其中Z為>0的整數)實體資訊頁(例如實體資訊頁222a、222b、224a、224b的一或多者)的項目(在此例子的實施例中,一個記憶體單元指的是一個頁)。
資料塊中的各個資料塊項目(例如實體資訊頁)包括多個位元,此些位元提供關於對應資料頁的實體狀態。在部分實施例中,資料塊項目中的實體狀態資訊包括對應頁的健康狀態以及此頁中資訊的有效性。舉例來說,如前所述,在部分實施例中,各個資料塊項目為1個位元組。如第2圖所示,資料塊項目218作為資料塊216中多個項目的其中之一,並指示了由資料塊項目位元組的位元所提供的實體資訊。由218a所表示的兩個位元,如位元5及4,提供了對應頁的健康狀態資訊。如圖所示,兩位元218a所表示的健康狀態資訊可指示G/N/P/R,其分別對應:頁的健康狀態良好(good)、頁的健康狀態普通(normal)、頁的健康狀態不良(poor)、以及頁需被汰換(retired)的訊息。兩位元218a的不同值可以表示不同的健康狀態。
在本文中,健康狀態係指示用來維持頁中資料的錯誤更正碼(ECC)的類型。舉例來說,健康狀態良好代表頁的位元錯誤率(Bit Error Rate,BER)是低的。在此情況下,裝置控制器可使用適用於低BER的ECC(例如伯斯-喬赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem, BCH)碼。健康狀態普通指的是頁的BER落在中間範圍。在此情況下,裝置控制器可使用適用於中間範圍BER的ECC,例如低密度同位元查核(Low-Density Parity-Check,LDPC)碼。健康狀態不良指的是頁的BER是高的。在此情況下,裝置控制器可使用適用於高BER的ECC,像是合適的獨立硬碟冗餘陣列(Redundant Array of Independent Disks,RAID)碼。健康狀態為需汰換指的是頁的BER高於一預選的高閥值。在此情況下,裝置控制器可汰換此頁,例如對此頁編程虛擬資料(dummy data)。
在部分實施例中,針對不同健康狀態條件的BER閥值為預先選擇,並在記憶體裝置的製造過程中被編程寫入。舉例來說,非揮發性記憶體晶片的製造商可在儲存裝置(如儲存裝置110)中包括一ECC電路,以處理記憶體頁中的錯誤位元。在部分實施例中,針對每1kB的資料,ECC電路可提供至多40位元錯誤更正。在此情況下,可設定BER<20位元/1kB為低BER(指示健康狀態良好);BER<30位元/1kB為中間範圍BER(指示健康狀態普通);BER<40位元/1kB為高BER(指示健康狀態不良);BER>40位元/1kB為頁必需汰換。
透過如上述方式檢查頁的健康狀態,裝置控制器可依需要而動態地改變對頁所採用的ECC。頁(或記憶體區塊)的健康狀態可隨時間改變,例如,頁在經過多個抹除/編程循環後,其健康狀態會變得較弱。舉例來說,頁的BER在經過10個抹除/編程循環後可能是2位元/1kB,但在經過2000個抹除/編程循環後,其BER將增加至20位元/1kB。作為頁資料讀取的一部分(例如執行垃圾回收操作時)實體,裝置控制器在存取頁的實體資訊時可更新健康狀態,因此,當接下來要把資料寫入此頁時,裝置控制器可採用合適的錯誤保護等級。
資料塊項目218的四個位元,例如第2圖218b中所表示的位元3、2、1、0,指示對應頁的有效性狀態。如圖所示,位元3、1、0被設定成表示頁為有效的位元值V,而位元2被設定成表示頁為無效的I。在部分實施例中,V=1且I=0;在其他實施例中,V=0且I=1。在本文中,由218b所表示的有效性狀態位元可指示頁資料在實體空間(例如,儲存在非揮發性記憶體220中的副本)中是否為有效。一旦資料頁的內容在邏輯空間(例如,快取記憶體210中的資料頁副本)中被更新,對應的實體資訊頁中的有效性狀態將被更新,以表示實體空間中的資料頁的內容為無效。在此情況下,在從快取記憶體中移除資料頁的副本之前,裝置控制器將對非揮發性記憶體220寫入資料頁的新副本的更新內容,並將先前儲存在非揮發性記憶體之中的副本設定為無效。在對快取記憶體210抹除之前,裝置控制器會參照實體資訊頁中的有效性狀態,以於非揮發性記憶體220中的對應資料頁存入有效內容。
剩下的兩個位元,如218c所表示的位元7、6,可提供對應頁的讀取閥電壓(Vth)設定的資訊。如圖所示,兩位元的閥電壓設定資訊可指示值0、1、2或3的其中之一,以分別表示:最低位準的讀取閥電壓、位準較普通等級低的讀取閥電壓、普通位準的讀取閥電壓、和位準較普通等級高的讀取閥電壓。兩位元218c的不同值可表示不同位準的閥電壓。
本文中,閥電壓(Vth)設定218c可用來指示裝置控制器需對記憶體頁施加多少電壓以讀取頁的內容。當記憶體頁被編程,閥電壓在對應的實體資訊頁中會初始地被設定成預設值,例如位準2(普通)。在執行區塊抹除操作(記憶體區塊中的所有記憶體頁一起被抹除)之後,當前的值將被重置。
在一些情況中,在讀取操作過程中欲施加至一記憶體頁的實際閥電壓會變得和編程在實體資訊頁中的預設值不同。舉例來說,普通位準的Vth可能會因為維持(retention)因素(相當於編程至記憶體頁的資料的老化程度函數,例如,一或多個已編程位元可能因所施加的電壓而變動,造成不正確的讀取)而變得不正確,例如過高。在此情況下,Vth設定將從位準2(普通)更新為位準1(較低),甚至或位準0(最低)。因此,在部分實施例中,裝置控制器會在資料塊項目218的2-位元Vth欄位218c中,將Vth設定從位準2(普通)更新為位準1或位準0。
新增或替代地,在對記憶體頁作多次讀取後,欄位218c中的預設Vth值(位準2或普通)可能會因為讀取擾動(read disturbance)而變得不正確,例如過低。以預設值來讀取此記憶體頁將可能產生位元錯誤。在此情況下,裝置控制器會在資料塊項目218的2-位元Vth欄位218c中,將Vth設定從位準2(普通)更新至位準3(較高)。因此,裝置控制器將以較高位準的Vth來讀取記憶體頁,以降低位元錯誤率。
新增或替代地,在對當前或鄰近的字元線編程後,欄位218c中的預設Vth值(位準2或普通)可能會因編程擾動(program disturbance)而變得不正確。以預設值來讀取此記憶體頁可能會產生位元錯誤。在此情況下,裝置控制器可例如透過參照表2所示的編程次序表,在2-位元Vth欄位218c中,將Vth設定從位準2(普通)更新成不同的位準。裝置控制器接著會以欄位218c中所指示的更新後Vth位準來讀取記憶體頁,以降低位元錯誤率。 表2
利用上述方式檢查頁的閥電壓(Vth)設定,裝置控制器可在讀取操作過程中,視需要而動態地改變施加至頁上的閥電壓。如前所述,頁的閥電壓可能隨時間或因重複的編程操作而改變。在讀取頁資料、編程字元線的過程中存取頁的實體資訊,或基於頁的老化程度(age)存取頁的實體資訊,裝置控制器可更新Vth設定,因此,當接下來要從頁中讀取資料時,裝置控制器可採用準確的Vth位準。
資料塊項目218中的資訊亦可表示非揮發性記憶體220中實體資訊區塊的實體資訊頁的各項目資訊。舉例來說,資料塊項目218中表示閥電壓設定、健康狀態或有效性狀態資訊的位元係類似於實體資訊頁222a、222b、224a或224b的各項目中表示閥電壓設定、健康狀態或有效性狀態資訊的位元。
在部分實施例中,除了閥電壓設定、健康狀態或有效性狀態,資料塊項目中的實體狀態還可包括其他資訊。舉例來說,資料塊項目中的實體資訊可包括對頁的抹除計數、編程計數或讀取計數,其分別表示頁已被抹除、編程或讀取的次數。
如前所述,在部分實施例中,在資料頁被載入快取記憶體210後,資料頁的實體資訊會改變(例如,針對讀取或寫入操作)。舉例來說,裝置控制器(如裝置控制器112)一旦對頁作存取,將判斷出資料頁的閥電壓設定、健康狀態及/或有效性已經和實體對應資料塊項目所指示的實體資訊變得不同,其中此些對應的資料塊項目係儲存在快取實體資訊表214當中。在此情況下,裝置控制器214將更新對應資料塊項目中的實體資訊。裝置控制器亦可將包括更新後資料塊項目的關聯資料塊在快取實體資訊表214中標記成已使用(dirty)的。
在部分實施例中,快取實體資訊表214的資料塊中的項目各自具有一關聯的已使用標記(dirty flag),例如,以一位元的值來指示資料塊從非揮發性記憶體220被載入至快取實體資訊表214後,此資料塊中關聯的實體資訊頁的實體資訊是否已經改變。
在部分實施例中,資料塊包括一全域已使用標記。當實體資訊頁中的實體資訊被更新,裝置控制器將對包括此實體資訊頁的資料塊設定一已使用標記(在一些實施例中,例如將位元值設成1;在其他實施例中,例如將位元值設成0),以指示此資料塊包括至少一個已更新的資料塊項目(如實體資訊頁)。
快取實體資訊表214的資料塊的已使用標記可用來指示快取實體資訊表214的資料塊中的實體資訊內容係不同於儲存在非揮發性記憶體220的對應實體資訊區塊中的實體資訊內容。以下將進一步說明,當資料塊從快取實體資訊表214被移除(例如使空間變為可供載入不同的資料塊),若此資料塊已被設定已使用標記,裝置控制器將把此資料塊中的實體資訊寫回非揮發性記憶體220中的實體資訊區塊。
在部分實施例中,當裝置控制器(如裝置控制器112)接收例如來自主機裝置130的要求以存取資料頁中的資料,裝置控制器將利用映射資訊指引目錄117執行位址轉換,以設置(locate)非揮發性記憶體220或快取記憶體210中的資料頁(例如在資料區塊中)來服務此要求。作為服務此要求的一部分,裝置控制器會存取關聯的實體資訊頁以判斷頁的閥電壓設定、頁的健康狀態及/或頁的資訊是否有效。裝置控制器會先檢查快取實體資訊表214,判斷關聯於此要求的資料頁的目標實體資訊頁是否存在於快取實體資訊表214的資料塊中的項目。若目標實體資訊頁存在於快取實體資訊表214的資料塊,實體資訊將直接從快取實體資訊表214中的資料塊項目被存取。
另一方面,若目標實體資訊頁不存在於快取實體資訊表214當中,裝置控制器將查找全域指引目錄212中的項目,以判斷非揮發性記憶體220中存放關聯實體資訊頁的資料塊或實體資訊區塊的位置。一旦從全域指引目錄212判斷出在非揮發性記憶體220中的位置,裝置控制器將把實體實體對應實體資訊區塊的資料塊載入至快取實體資訊表214中的位置,其中此資料塊係包括目標實體資訊頁。舉例來說,在部分實施例中,一要求頁(request page)的實體資訊係包含於實體資訊區塊224。藉由查找在全域指引目錄212中實體資訊區塊224的項目,裝置控制器可判斷出非揮發性記憶體220中實體資訊區塊224的位置。裝置控制器可自全域指引目錄212所指示的非揮發性記憶體220中實體資訊區塊224的位置,對實體資訊區塊224作存取,並將包括實體資訊區塊224的資料塊載入至快取實體資訊表214的項目。裝置控制器可接著從最近載入的資料塊中的資料塊項目查找目標實體資訊頁。
在部分實施例中,裝置控制器可將既存資料塊從快取實體資訊表214中剔除(evict),以騰出空間從非揮發性記憶體220載入新的資料塊。這可以例如是當快取實體資訊表214已滿的情況。裝置控制器可利用合適的剔除策略來選擇欲剔除的既存資料塊。舉例來說,裝置控制器可利用最近最少使用替換演算法(least recently used,LRU)策略、分段式LRU陣列快取(segmented LRU array cache)策略或其他類似者,從快取實體資訊表214中選出欲剔除的資料塊。
若被選作欲剔除的資料塊被載入至快取實體資訊表214後皆未被更新,例如,資料塊的已使用標記並未被設定,則此資料塊將單純地被替換成新的資料塊,而不會有進一步操作。另一方面,若被剔除的資料塊有被設定已使用標記(表示資料塊被載入至快取實體資訊表214之後,至少有一資料塊項目包括已更新的實體資訊),則在此資料塊被替換成新資料塊之前,此資料塊中的實體資訊將被寫回至非揮發性記憶體220當中。
裝置控制器可將資料塊中的實體資訊寫入非揮發性記憶體220中的對應實體資訊區塊。在部分實施例中,裝置控制器會在非揮發性記憶體220中的新位置創建實體資訊的新副本,並將資料塊內容寫入新的實體資訊。裝置控制器接著會更新針對實體資訊區塊的全域指引目錄212中的項目,以指向(point to)非揮發性記憶體220中的位置。
在此些操作之後,對應於實體資訊區塊的實體實體資料塊將被載入至快取實體資訊表214,並被存入先前被剔除資料塊所佔據的項目當中,其中,此資料塊係包括目標實體資訊頁。
第3圖繪示依據一或多個實施例,查找記憶體裝置中的記憶體單元的實體資訊的程序300的一例。在部分實施例中,程序300是由裝置控制器(例如裝置控制器112)來執行,以於非揮發性記憶體120和快取記憶體114中的實體資訊單元116之間移轉對應於實體資訊區塊122的資料塊(或相當於在非揮發性記憶體220和快取記憶體210的快取實體資訊表214之間移轉對應於實體資訊區塊222或226的資料塊)。因此,以下段落將基於裝置控制器112以及系統100來說明程序300。然而,在其他實施例中,程序300可由其他裝置或系統來執行。
程序300始於步驟302,也就是在發動對記憶體單元的實體資訊進行存取時。舉例來說,在部分實施例中,裝置控制器112對記憶體區塊(像是記憶體區塊226或228其中之一)執行垃圾回收,並存取對應記憶體區塊中的一或多個資料頁(像是資料頁226a及226b,或是資料頁228a及228b)以檢查其有效性,並在抹除記憶體區塊之前搬移(migrate)資料。在其他一些實施例中,裝置控制器112從主機裝置130接收要求以存取資料頁(例如對資料頁作讀取或寫入)。在其他情況中,裝置控制器112可存取資料頁的實體資訊,以例如決定頁的閥電壓設定、健康狀態及/或有效性資訊。因此,裝置控制器可發動對目標實體資訊頁實體的存取,例如實體資訊頁222a、222b、224a、224b其中之一,其中此目標實體資訊頁係包括所要求的資料頁的實體資訊。
在步驟304,將判斷目標實體資訊是否存在於快取記憶體。舉例來說,裝置控制器112可檢查快取記憶體中的快取實體資訊表(例如快取記憶體210中的快取實體資訊表214),以判斷包括對應於目標實體資訊頁的項目的資料塊是否存在於快取實體資訊表當中。
若在步驟304判斷出目標實體資訊不存在於快取記憶體當中,則在步驟306,查找具有目標實體資訊的資料塊在非揮發性記憶體中的位置。舉例來說,若裝置控制器112判斷出具有目標實體資訊頁的資料塊不存在於快取實體資訊表214當中,則裝置控制器將存取全域指引目錄212。藉由檢查全域指引目錄212中的項目,例如項目212a、212b或212x,裝置控制器112將判斷出非揮發性記憶體220中包括目標實體資訊頁的實體資訊區塊、實體資訊區塊的位置、或包括目標實體資訊頁的實體資訊區塊的資料塊。
在步驟308,將判斷快取記憶體中是否有可用的空間以供載入具有目標實體資訊的資料塊。舉例來說,一旦裝置控制器112透過查找全域指引目錄212而判斷出包括目標實體資訊頁的一實體資訊區塊、或此實體資訊區塊的一資料塊在非揮發性記憶體220中的位置實體,裝置控制器112接著將把資料塊載入至快取實體資訊表214中。
為了將資料塊載入至快取實體資訊表214當中,裝置控制器112會檢查快取實體資訊表214中是否有任何可用的空間以載入此資料塊。若快取實體資訊表214已滿,裝置控制器112將檢查快取實體資訊表中活動(active)的資料塊的已使用標記,以判斷是否有任何活動的資料塊是未使用(clean)的。若有任何活動的資料塊是未使用的,裝置控制器112將單純地對未使用的資料塊所佔據的空間載入具有目標實體資訊頁的新資料塊,以取代此未使用的資料塊。
若在步驟308判斷出快取記憶體中並沒有空間可供載入具有目標實體資訊的資料塊,則在步驟310,既存資料塊將從快取記憶體中被選擇並被沖出(flushed)。舉例來說,在部分實施例中,裝置控制器112會判斷出並沒有活動的資料塊(例如快取實體資訊表214中的資料塊)是未使用的,像是所有資料塊的已使用標記皆被設定。在此情況下,裝置控制器112將利用合適的剔除策略,從多個活動的資料塊中選擇剔除其一。在部分實施例中,所選的資料塊是已使用的,例如,此資料塊被載入至快取記憶體後,此資料塊中的一或多個項目的實體資訊已被更新。因此,在將所選的資料塊替換成欲從非揮發性記憶體載入的資料塊之前,裝置控制器112會先將所選已使用資料塊中的實體資訊寫回非揮發性記憶體220中。在部分實施例中,可更新多個資料塊。例如,若各個資料塊的大小為1kB,則一個16kB的頁可更新16個資料塊。在此情況下,多個資料塊可被沖出快取記憶體以騰出可用空間。
如前所述,在部分實施例中,裝置控制器112可針對非揮發性記憶體220中對應所選資料塊的實體資訊頁選擇一新位置,並將所選資料塊的資訊內容從快取記憶體210提交(commit)至非揮發性記憶體220中的新實體資訊頁當中。接著,裝置控制器112將針對全域指引目錄212中的對應實體資訊頁更新位置,以指向非揮發性記憶體中實體資訊頁的新位置。
在部分實施例中,裝置控制器112可藉由檢查全域指引目錄212中的項目,以查找實體資訊區塊在非揮發性記憶體220中的位置,其中此實體資訊區塊包括對應於所選資料塊的實體資訊頁實體。接著,裝置控制器112可在非揮發性記憶體220中指示的位置對此實體資訊頁進行存取,並將此實體資訊頁的內容以來自快取記憶體210的所選資料塊的資訊進行覆寫實體。
一旦在步驟310將所選資料塊從快取記憶體寫回非揮發性記憶體,或是在步驟308判斷出快取記憶體有可用空間,則在步驟312,具有目標實體資訊的資料塊將從非揮發性記憶體載入至快取記憶體。舉例來說,在一些實施例中,裝置控制器會在步驟308判斷出快取實體資訊表214中的一或多個活動資料塊是未使用的。在此情況下,裝置控制器將選擇一未使用的資料塊,以用來跟欲從非揮發性記憶體載入的資料塊作替換。或者,所選資料塊的實體資訊在被提交至非揮發性記憶體之後,此所選資料塊可用來跟欲從非揮發性記憶體載入的資料塊作替換。在另一情況中,裝置控制器112可將包括目標實體資訊頁的實體資訊區塊、或是此實體資訊區塊的資料塊,實體實體自非揮發性記憶體載入至快取實體資訊表214中的選定空間中。
在步驟312將具有目標實體資訊的資料塊從非揮發性記憶體載入至快取記憶體後,或是在步驟304判斷出針對記憶體單元的目標實體資訊存在於快取記憶體中,則在步驟314,從被載入至快取記憶體的資料塊中存取記憶體單元的目標實體資訊。舉例來說,在一些實施例中,裝置控制器112在步驟304對快取實體資訊表214作初始的查找之後,將判斷包括目標實體資訊頁的資料塊是否存在於快取實體資訊表214當中。在此情況下,裝置控制器112將從快取實體資訊表214的對應資料塊項目取得實體資訊,並判斷關聯資料頁的閥電壓設定、健康狀態、有效性狀態中的一或多者。
在部分實施例中,主機裝置130中的實體資訊單元136的容量較快取記憶體中的實體資訊單元116大。在此情況下,主機裝置中的實體資訊單元136將可在實體資訊單元116容量不足時,緩存額外的實體資訊頁。若裝置控制器112在步驟304對快取實體資訊表214作初始的查找之後,判斷實體資訊單元116中(例如在快取實體資訊表214中)並不存在包括目標實體資訊頁的資料塊,且非揮發性記憶體120為忙碌中(busy),則裝置控制器112將檢查實體資訊單元136中是否有可用的資料塊。若此資料塊存在於實體資訊單元136中,裝置控制器112將從主機裝置130要求此資料塊。
在其他實施例中,裝置控制器112可將包括目標實體資訊頁的資料塊從非揮發性記憶體220載入至快取實體資訊表214當中,如步驟306~312所述。在此情況下,在把資料塊載入至快取實體資訊表214之後,裝置控制器112可從快取實體資訊表214中對應目標實體資訊頁的資料塊項目取得實體資訊,並判斷關聯資料頁的閥電壓設定、健康狀態、有效性狀態中的一或多者。新增或替代地,裝置控制器112可回應於針對資訊的要求,對主機裝置130發送實體資訊。
在上述方式中,裝置控制器112可藉由將完整的實體資訊儲存在非揮發記憶體中並將部分實體資訊緩存在快取記憶體中,以有效率地管理記憶體單元的實體資訊,並按需求在快取記憶體和非揮發性記憶體之間作換進/換出。裝置控制器可利用快取記憶體中的快取實體資訊表(其大小係遠小於非揮發性記憶體中實體資訊區塊的整體大小),故可限制用來儲存記憶體單元的實體資訊的快取記憶體數量。裝置控制器可利用全域指引目錄,在快取實體資訊表中的資料塊和非揮發性記憶體中的實體資訊區塊之間傳遞實體資訊。
第4圖繪示依據一或多個實施例,更新記憶體單元的實體資訊的程序400的一例。在部分實施例中,裝置控制器112在存取記憶體單元(例如存取資料頁)時將執行程序400。因此,以下段落將基於裝置控制器112以及系統100來說明程序400。然而,在其他實施例中,程序400可由其他裝置或系統來執行。
程序400始於步驟402,也就是在對記憶體單元查找實體資訊時。舉例來說,在部分實施例中,裝置控制器112會對記憶體區塊(像是記憶體區塊226或228其中之一)執行垃圾回收,並存取對應記憶體區塊中的一或多個資料頁(像是資料頁226a及226b,或是資料頁228a及228b),以檢查其有效性以於抹除記憶體區塊之前搬移資料。在其他一些實施例中,裝置控制器112會從主機裝置130接收要求以存取資料頁(例如對資料頁作讀取或寫入)。在其他實施例中,作為回應所述要求或垃圾回收操作以對資料頁作存取的一部分,裝置控制器112將對頁存取實體資訊。
參考關於程序300的描述,在部分實施例中,裝置控制器可存取快取實體資訊表214中活動資料塊中的項目(當中存有關於所要求的資料頁的實體資訊頁)。在其他一些實施例中,在把對應的實體資訊區塊或是實體資訊的資料塊從非揮發性記憶體220載入至快取實體資訊表214之後,裝置控制器將存取實體資訊。在此情況下,裝置控制器係判斷關聯於所要求的資料頁的實體資訊頁係不存在於快取實體資訊表214當中。裝置控制器可對全域指引目錄212進行查找,以判斷對應的實體資訊區塊或實體資訊的資料塊在非揮發性記憶體220中的位置。一旦判斷出位置,裝置控制器將把對應的實體資訊區塊或實體資訊的資料塊從非揮發性記憶體220載入至快取實體資訊表214。
在步驟404,更新記憶體單元的實體資訊。舉例來說,一旦對資料頁讀取或寫入,裝置控制器112將判斷出此資料頁的實體資訊已經被改變。如前所述,在部分實施例中,實體資訊包括頁的閥電壓設定、健康裝置或有效性狀態。當執行讀取或寫入操作,裝置控制器112可判斷出錯誤位元改變的數量,以更新頁的健康狀態。或者,一旦對頁寫入新資料,裝置控制器112可將有效性狀態設定為無效,以指示此頁為已使用的,並指示儲存在非揮發性記憶體中的對應頁資料為無效,例如過期。因此,裝置控制器112將更新對應資料塊項目中的頁的實體資訊(例如,更新如資料塊項目218所描述的一或多個位元),其中,此資料塊項目係在快取實體資訊表214中的關聯活動資料塊當中項目實體項目。
在步驟406,對資料塊設定已使用標記。舉例來說,一旦更新快取實體資訊表214中關聯的活動資料塊中對應目標資料頁的資料塊項目,裝置控制器112將設定此資料塊的標記位元以指示此資料塊是已使用的,例如指示此資料塊中的一或多個資料塊項目包括更新後的實體資訊。因此,當從快取實體資訊表214中移除此資料塊,此資料塊中的資訊將被寫回至非揮發性記憶體當中,如程序300以及以下段落所描述。
第5圖繪示依據一或多個實施例,將已使用資料塊沖出快取實體資訊表的程序500的一例。在部分實施例中,裝置控制器112會在使快取實體資訊表214有空間供資料塊從非揮發性記憶體220載入時(如程序300的步驟310所描述)執行程序500。因此,以下段落係基於裝置控制器112以及系統100來說明程序500。然而,在其他實施例中,程序500可由其他裝置或系統來執行。
程序500始於步驟502,也就是在寫回包含在已使用資料塊中的更新後實體資訊時。舉例來說,當裝置控制器112試圖將實體資訊區塊或包括部分實體資訊區塊的資料塊從非揮發性記憶體220載入至快取記憶體210中的快取實體資訊表214,裝置控制器112判斷出快取實體資訊表214中並沒有未使用的資料塊,如程序300中的步驟308及310所述。因此,裝置控制器將從快取實體資訊表214選擇欲剔除的已使用資料塊,以騰出可用的空間,如步驟310所描述。裝置控制器將把包含在已使用資料塊中的實體資訊寫回非揮發性記憶體220中。
如前所述,在部分實施例中,裝置控制器112會在非揮發性記憶體220中選擇新的實體資訊區塊,並將所選已使用資料塊的資訊從快取記憶體210提交至非揮發性記憶體220中的新實體資訊區塊。在此實施例中,裝置控制器112會把全部的實體資訊從快取實體資訊表214中的資料塊寫回至非揮發性記憶體220的新實體資訊區塊中。接著,裝置控制器112將更新全域指引目錄212中對應實體資訊區塊的位置,以指向非揮發性記憶體中實體資訊區塊的新位置。
在部分實施例中,裝置控制器112可透過檢查全域指引目錄212來查找對應所選已使用資料塊的實體資訊區塊在非揮發性記憶體220中的位置。裝置控制器112可存取非揮發性記憶體220中所指示的位置的實體資訊區塊,並將此實體資訊區塊的內容更新成來自快取記憶體210的所選已使用資料塊的資訊。
在部分實施例中,裝置控制器可將非揮發性記憶體中既存實體資訊區塊的完整資訊更新成快取實體資訊表214中資料塊的實體資訊內容。在其他一些實施例中,裝置控制器112可辨識資料塊中的已使用實體資訊頁,像是基於檢查資料塊項目的有效性狀態位元以辨識無效的實體資訊頁。在此情況下,裝置控制器112僅會更新實體資訊區塊中的實體資訊頁,此實體資訊頁係對應快取實體資訊表中資料塊的已使用實體資訊頁。
在步驟504,對資料塊重設已使用標記。舉例來說,在把更新後的資訊存入非揮發性記憶體220中的所選已使用資料塊後,裝置控制器112將重設快取實體資訊表214中資料塊的已使用標記。新的資料塊接下來將從非揮發性記憶體220載入,以取代既存的資料塊,如程序300的步驟312所描述。
本揭露以及其他例子可由一或多個計算機程式產品來實現,例如,編碼在計算機可讀取媒體以供資料處理設備執行或控制其操作的計算機程式指令的一或多個模組。計算機可讀取媒體可以是機器可讀取的儲存裝置、機器可讀取的儲存基體(substrate)、記憶體裝置或其中一或多者的結合。「資料處理設備」一詞涵蓋所有用以處理資料的設備、裝置以及機器,例如包括可編程的處理器、計算機或多個處理器或計算機。除了硬體,裝置還可包括創造針對所述計算機程式的執行環境的程式碼,例如構成處理器韌體的程式碼、協定堆疊(protocol stack)、資料庫管理系統、作業系統或其中一或多者的結合。
系統可包含所有的設備、裝置以及用以處理資料的機器,例如包括可編程的處理器、計算機或多個處理器或計算機。除了硬體,系統還可包括創造針對所述計算機程式的執行環境的程式碼,例如構成處理器韌體的程式碼、協定堆疊、資料庫管理系統、作業系統或其中一或多者的結合。
計算機程式(亦可被理解為程式、軟體、軟體應用、指令碼(script)或字碼)可被寫入程任何形式的程式語言,包括編譯語言或解釋語言,並且能以任何形式配置,包括作為獨立程式或模組、元件、子程序或其他適用於計算機環境的單元。計算機程式不一定要對應至檔案系統中的檔案。程式可以被儲存在包存其他程式或資料(例如,儲存在標記語言(markup language)文件的一或多個指令碼)的檔案中的一部分,或是被儲存在專用於所述的程式的單一檔案中,或是被儲存在多個協同(coordinated)檔案中(例如,儲存一或多個模組、子程式或部分字碼)。計算機程式可配置在某一站點的一或個計算機上執行,或者在多個站點間分布並且透過通訊網路互連。
本揭露所描述的程序及邏輯流程可被執行一或多個計算機程式的可編程處理器執行,以實現本文中所描述的功能。程序及邏輯流程還可由專用邏輯電路,例如現場可規劃邏輯閘陣列(Field Programmable Gate Array,FPGA)或特殊應用積體電路(Application Specific Integrated Circuit,ASIC)來實現。
適合執行機算機程式的處理器包括,舉例來說,通用和專用微處理器以及任何種類的數位計算機的任何一或多個處理器。通常,處理器從唯讀記憶體或隨機存取記憶體或二者中接收指令和資料。計算機的關鍵元件可包括用來執行指令的處理器以及用來儲存指令和資料的一或多個記憶體裝置。通常,計算機還可包括用以儲存資料的一或多個儲存裝置,例如磁碟、磁性光碟或光碟,或者,計算機可操作地耦接至一或多個儲存裝置,以實現資料從儲存裝置的接收、傳送或收發。然而,計算機並不需具有該些裝置。用以儲存計算機程式指令以及資料的計算機可讀取媒體可包括任何非揮發性記憶體、媒體以及記憶體裝置,例如包括半導體記憶體裝置,像是EPROM、EEPROM以及快閃記憶體裝置;磁碟,像是內部硬碟或可移除式磁碟;磁性光碟;CD ROM以及DVD-ROM磁碟。處理器和記憶體可實現為或是被整合為專用邏輯電路。
雖然說明書包括許多細節,但是它們不應該被解釋為對所要求或可能要求的範圍的限制,而是對針對具體實施方式的特徵的描述。在本說明書中在單獨的實施方式的情形中描述的某些特徵還可以在單個實施方式中組合實施。相反地,在單個實施方式的情形中描述的各種特徵也可以在多個實施方式中單獨實施或實施為任何合適的子組合。此外,雖然上述特徵被描述為以某些組合工作甚至初始地聲明為如此,但是所要求的組合中的一或多個特徵可以在一些情形中從組合中除去,並且所要求的組合可以涉及子組合或子組合的變化形式。類似地,雖然在附圖中以特定次序描繪了操作,這應該不被理解為為了獲得期望的結果而要求這樣的操作以所示的特定次序或順序次序執行,或要求所有示出的操作都被執行。
僅揭露了一些例示和實現方式。基於已公開內容可以做出所描述的示例和實現方式的變化、修改和增強以及其他實現方式。
100‧‧‧系統
130‧‧‧主機裝置
132‧‧‧處理器
134‧‧‧快取記憶體
136‧‧‧實體資訊
110‧‧‧儲存裝置
112‧‧‧裝置控制器
113‧‧‧常駐記憶體
114‧‧‧快取記憶體
115‧‧‧實體資訊指引目錄
116‧‧‧實體資訊
117‧‧‧映射資訊指引目錄
118‧‧‧映射資訊單元
120‧‧‧非揮發性記憶體
122‧‧‧實體資訊區塊
124‧‧‧映射資訊單元
126‧‧‧資料單元
200‧‧‧架構
210‧‧‧快取記憶體
212‧‧‧全域指引目錄
212a、212b、212x‧‧‧全域指引目錄中的項目
214‧‧‧快取實體資訊表
216‧‧‧資料塊
218‧‧‧資料塊項目
218a、218b、218c‧‧‧資料塊項目中的位元欄位
220‧‧‧非揮發性記憶體
222、224‧‧‧實體資訊區塊
222a、222b、224a、224b‧‧‧實體資訊頁
226‧‧‧資料區塊
226a、226b、228a、228b‧‧‧資料頁
300、400、500‧‧‧程序
302、304、306、308、310、312、314、402、404、406、502、504‧‧‧步驟
第1圖繪示依據一或多個實施例之使用快取實體資訊表的系統的例子。 第2圖繪示依據一或多個實施例,用以管理快取記憶體和非揮發性記憶體之間的記憶體單元的實體資訊的例示架構。 第3圖繪示依據一或多個實施例,查找記憶體裝置中的記憶體單元的實體資訊的程序的一例。 第4圖繪示依據一或多個實施例,更新記憶體單元的實體資訊的程序的一例。 第5圖繪示依據一或多個實施例,將已使用資料塊沖出快取實體資訊表的程序的一例。

Claims (16)

  1. 一種管理記憶體裝置中的記憶體單元的實體資訊的方法,該方法包括: 接收一要求,以存取包括於該記憶體裝置的一記憶體單元的實體資訊; 回應於接收該要求,判斷該記憶體單元的該實體資訊在一快取記憶體中的一表單中是否可用,該表單儲存對應一全數的實體資訊區塊中一子集合的資訊,該全數的實體資訊區塊包括該記憶體裝置中的複數個記憶體單元的實體資訊; 當判斷該記憶體單元的該實體資訊在該表單中是可用的,從該表單中存取該記憶體單元的該實體資訊;以及 當判斷出該記憶體單元的該實體資訊在該表單中是不可用的: 存取存在於該快取記憶體中的一全域指引目錄,該全域指引目錄指示在一非揮發性記憶體中,儲存該全數的實體資訊區塊的位置; 從該全域指引目錄,判斷儲存著包括該記憶體單元的該實體資訊的一特定實體資訊區塊在該非揮發性記憶體中的一特定位置; 回應於該判斷,將該特定實體資訊區塊從該非揮發性記憶體中的該特定位置載入至該表單中,以及 從被載入至該表單的該特定實體資訊區塊中存取該記憶體單元的該實體資訊。
  2. 如申請專利範圍第1項所述之方法,其中該表單儲存一或多個記憶體資料塊,各該記憶體資料塊包括一或多個項目,該一或多個項目儲存著包含於該全數的實體資訊區塊的該子集合中的一實體資訊區塊的一或多個記憶體單元的實體資訊, 其中判斷該記憶體單元的該實體資訊在該表單中是否可用包括判斷對應該特定實體資訊區塊的一記憶體資料塊是否存在於該表單中,以及 其中該全域指引目錄包括多個項目,以指示對應該全數的實體資訊區塊的一全數的記憶體資料塊在該非揮發性記憶體中所儲存的位置。
  3. 如申請專利範圍第1項所述之方法,其中該表單儲存一或多個記憶體資料塊,各該記憶體資料塊包括一或多個項目,該一或多個項目儲存著包含於該全數的實體資訊區塊的該子集合中的一實體資訊區塊的一或多個記憶體單元的實體資訊,以及 其中將該特定實體資訊區塊從該非揮發性記憶體中的該特定位置載入至該表單包括: 自該非揮發性記憶體的該特定位置,存取對應該特定實體資訊區塊的一特定記憶體資料塊;以及 將該特定記憶體資料塊載入至該表單。
  4. 如申請專利範圍第3項所述之方法,其中將該特定記憶體資料塊載入至該表單包括: 辨識該表單中欲剔除的一既存記憶體資料塊; 判斷關聯於該既存記憶體資料塊的一或多個記憶體單元的實體資訊是否有被更新; 當判斷關聯於該既存記憶體資料塊的該一或多個記憶體單元的該實體資訊並未被更新時,將該既存記憶體資料塊替換成該特定記憶體資料塊;以及 當判斷關聯於該既存記憶體資料塊的該一或多個記憶體單元的該實體資訊已被更新時: 從該全域指引目錄判斷對應於該既存記憶體資料塊的一第二實體資訊區塊在該非揮發性記憶體中的一第二位置, 回應於判斷該第二位置,存取該非揮發性記憶體中的該第二實體資訊區塊, 辨識該第二實體資訊區塊中的一或多個記憶體單元,該第二實體資訊區塊中的該一或多個記憶體單元對應於關聯具有更新後實體資訊的該既存記憶體資料塊的該一或多個記憶體單元; 將該第二實體資訊區塊中被辨識的該一或多個記憶體單元的實體資訊更新成來自該既存記憶體資料塊中對應記憶體單元的該更新後實體資訊,以及 將該既存記憶體資料塊以該特定記憶體資料塊取代。
  5. 如申請專利範圍第4項所述之方法,其中該表單中的各記憶體單元包括指示該記憶體單元的該實體資訊是否已被更新的一已使用標記,以及 其中判斷關聯於該既存記憶體資料塊的該一或多個記憶體單元的該實體資訊是否已被更新包括: 針對該一或多個記憶體單元的每一者,檢查一關聯已使用標記的一狀態; 當該關聯已使用標記具有一第一值,判斷該記憶體單元的該實體資訊已被更新;以及 當該關聯已使用標記具有一第二值,判斷該記憶體單元的該實體資訊尚未被更新。
  6. 如申請專利範圍第4項所述之方法,其中該表單中的各記憶體單元包括指示該記憶體單元的該實體資訊是否已被更新的一已使用標記,以及 其中將該第二實體資訊區塊中被辨識出的該一或多個記憶體單元的該實體資訊更新成來自該既存記憶體資料塊的對應記憶體單元的該更新後實體資訊包括: 回應於更新該第二實體資訊區塊中被辨識出的該一或多個記憶體單元的該實體資訊,清除關聯於該表單中對應記憶體單元的一或多個已使用標記的值。
  7. 如申請專利範圍第1項所述之方法,更包括偵測存在於該表單中的一或多個記憶體單元的實體狀態,以及 其中接收該要求以存取該記憶體單元的該實體資訊包括: 接收一要求以更新該記憶體單元的該實體狀態, 回應接收該要求以更新該記憶體單元的該實體狀態: 更新該表單中關聯於該記憶體單元的一項目,該項目包括該記憶體單元的該實體資訊,以及 將關聯於該項目的一已使用標記設成一第一值以指示關聯於該項目的該記憶體單元的該實體資訊已被更新。
  8. 如申請專利範圍第7項所述之方法,其中對該一或多個記憶體單元偵測該實體狀態包括針對各該記憶體單元檢查一閥電壓設定、一健康狀態或一有效性狀態至少其一,以及 其中更新該表單中關聯於該記憶體單元的該項目包括更新包含於該項目中的一或多個位元,該一或多個位元表示以下至少其一:針對該記憶體單元的一閥電壓設定、針對該記憶體單元的一健康狀態、針對該記憶體單元的一有效性狀態、針對該記憶體單元的內容的一編碼類型、針對該記憶體單元的一位元錯誤率、或針對該記憶體單元的一抹除計數、一編程計數或一讀取計數其中之一。
  9. 一種記憶體系統,包括: 一非揮發性記憶體,包括多個記憶體單元; 一快取記憶體,耦接至該非揮發性記憶體;以及 一裝置控制器,耦接至該非揮發性記憶體以及該快取記憶體,該裝置控制器用以執行操作包括: 接收一要求,以存取包括於該非揮發性記憶體的一記憶體單元的實體資訊; 回應於接收該要求,判斷該記憶體單元的該實體資訊在一快取記憶體中的一表單中是否可用,該表單儲存對應一全數的實體資訊區塊中一子集合的資訊,該全數的實體資訊區塊包括複數個記憶體單元的實體資訊; 當判斷該記憶體單元的該實體資訊在該表單中是可用的,從該表單中存取該記憶體單元的該實體資訊;以及 當判斷出該記憶體單元的該實體資訊在該表單中是不可用的: 存取存在於該快取記憶體中的一全域指引目錄,該全域指引目錄指示在該非揮發性記憶體中,儲存該全數的實體資訊區塊的位置; 從該全域指引目錄,判斷儲存著包括該記憶體單元的該實體資訊的一特定實體資訊區塊在該非揮發性記憶體中的一特定位置; 回應於該判斷,將該特定實體資訊區塊從該非揮發性記憶體中的該特定位置載入至該表單中,以及 從被載入至該表單的該特定實體資訊區塊中存取該記憶體單元的該實體資訊。
  10. 如申請專利範圍第9項所述之記憶體系統,其中該表單儲存一或多個記憶體資料塊,各該記憶體資料塊包括一或多個項目,該一或多個項目儲存著包含於該全數的實體資訊區塊的該子集合中的一實體資訊區塊的一或多個記憶體單元的實體資訊, 其中判斷該記憶體單元的該實體資訊在該表單中是否可用包括判斷對應該特定實體資訊區塊的一記憶體資料塊是否存在於該表單中,以及 其中該全域指引目錄包括多個項目,以指示對應該全數的實體資訊區塊的一全數的記憶體資料塊在該非揮發性記憶體中所儲存的位置。
  11. 如申請專利範圍第9項所述之記憶體系統,其中該表單儲存一或多個記憶體資料塊,各該記憶體資料塊包括一或多個項目,該一或多個項目儲存著包含於該全數的實體資訊區塊的該子集合中的一實體資訊區塊的一或多個記憶體單元的實體資訊,以及 其中將該特定實體資訊區塊從該非揮發性記憶體中的該特定位置載入至該表單包括: 自該非揮發性記憶體的該特定位置,存取對應該特定實體資訊區塊的一特定記憶體資料塊;以及 將該特定記憶體資料塊載入至該表單。
  12. 如申請專利範圍第11項所述之記憶體系統,其中將該特定記憶體資料塊載入至該表單包括: 辨識該表單中欲剔除的一既存記憶體資料塊 判斷關聯於該既存記憶體資料塊的一或多個記憶體單元的實體資訊是否有被更新; 當判斷關聯於該既存記憶體資料塊的該一或多個記憶體單元的該實體資訊並未被更新時,將該既存記憶體資料塊以該特定記憶體資料塊替換;以及 當判斷關聯於該既存記憶體資料塊的該一或多個記憶體單元的該實體資訊已被更新時: 從該全域指引目錄判斷對應於該既存記憶體資料塊的一第二實體資訊區塊在該非揮發性記憶體中的一第二位置, 回應於判斷該第二位置,存取該非揮發性記憶體中的該第二實體資訊區塊, 辨識該第二實體資訊區塊中的一或多個記憶體單元,該第二實體資訊區塊中的該一或多個記憶體單元對應於關聯具有更新後實體資訊的該既存記憶體資料塊的該一或多個記憶體單元; 將該第二實體資訊區塊中被辨識的該一或多個記憶體單元的實體資訊更新成來自該既存記憶體資料塊中對應記憶體單元的該更新後實體資訊,以及 將該既存記憶體資料塊以該特定記憶體資料塊取代。
  13. 如申請專利範圍第12項所述之記憶體系統,其中該表單中的各記憶體單元包括指示該記憶體單元的該實體資訊是否已被更新的一已使用標記,以及 其中判斷關聯於該既存記憶體資料塊的該一或多個記憶體單元的該實體資訊是否已被更新包括: 針對該一或多個記憶體單元的每一者,檢查一關聯已使用標記的一狀態; 當該關聯已使用標記具有一第一值,判斷該記憶體單元的該實體資訊已被更新;以及 當該關聯已使用標記具有一第二值,判斷該記憶體單元的該實體資訊尚未被更新。
  14. 如申請專利範圍第12項所述之記憶體系統,其中該表單中的各記憶體單元包括指示該記憶體單元的該實體資訊是否已被更新的一已使用標記,以及 其中將該第二實體資訊區塊中被辨識出的該一或多個記憶體單元的該實體資訊更新成來自該既存記憶體資料塊的對應記憶體單元的該更新後實體資訊包括: 回應於更新該第二實體資訊區塊中被辨識出的該一或多個記憶體單元的該實體資訊,清除關聯於該表單中對應記憶體單元的一或多個已使用標記的值。
  15. 如申請專利範圍第9項所述之記憶體系統,其中該裝置控制器更用以偵測存在於該表單中的一或多個記憶體單元的實體狀態,以及 其中接收該要求以存取該記憶體單元的該實體資訊包括: 接收一要求以更新該記憶體單元的該實體狀態, 回應接收該要求以更新該記憶體單元的該實體狀態: 更新該表單中關聯於該記憶體單元的一項目,該項目包括該記憶體單元的該實體資訊,以及 將關聯於該項目的一已使用標記設成一第一值以指示關聯於該項目的該記憶體單元的該實體資訊已被更新。
  16. 如申請專利範圍第15項所述之記憶體系統,其中對該一或多個記憶體單元偵測該實體狀態包括針對各該記憶體單元檢查一閥電壓設定、一健康狀態或一有效性狀態至少其一,以及 其中更新該表單中關聯於該記憶體單元的該項目包括更新包含於該項目中的一或多個位元,該一或多個位元表示以下至少其一:針對該記憶體單元的一閥電壓設定、針對該記憶體單元的一健康狀態、針對該記憶體單元的一有效性狀態、針對該記憶體單元的內容的一編碼類型、針對該記憶體單元的一位元錯誤率、或針對該記憶體單元的一抹除計數、一編程計數或一讀取計數其中之一。
TW106111654A 2016-12-14 2017-04-07 管理記憶體裝置中記憶體單元的實體資訊的方法及系統 TWI625626B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/378,508 US10318423B2 (en) 2016-12-14 2016-12-14 Methods and systems for managing physical information of memory units in a memory device
US15/378,508 2016-12-14

Publications (2)

Publication Number Publication Date
TWI625626B TWI625626B (zh) 2018-06-01
TW201821996A true TW201821996A (zh) 2018-06-16

Family

ID=62489314

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106111654A TWI625626B (zh) 2016-12-14 2017-04-07 管理記憶體裝置中記憶體單元的實體資訊的方法及系統

Country Status (3)

Country Link
US (2) US10318423B2 (zh)
CN (1) CN108228471B (zh)
TW (1) TWI625626B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI768346B (zh) * 2018-09-07 2022-06-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
TWI773343B (zh) * 2021-05-26 2022-08-01 中華電信股份有限公司 分散式物件資料儲存系統、方法及電腦可讀媒介

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10339324B2 (en) * 2016-12-22 2019-07-02 Apple Inc. Tamper-proof storage using signatures based on threshold voltage distributions
US10705762B2 (en) * 2018-08-30 2020-07-07 Micron Technology, Inc. Forward caching application programming interface systems and methods
KR102709412B1 (ko) 2019-01-24 2024-09-24 삼성전자주식회사 복수의 컨트롤러를 포함하는 메모리 시스템
US11286027B1 (en) 2019-09-09 2022-03-29 Brunswick Corporation Marine engines and cooling systems for cooling lubricant in a crankcase of a marine engine
US11072408B1 (en) 2019-09-09 2021-07-27 Brunswick Corporation Marine engines and cooling systems for cooling lubricant in a crankcase of a marine engine
US11409446B2 (en) * 2020-11-11 2022-08-09 Micro Technology, Inc. Media management on power-up
US11352937B1 (en) 2021-02-08 2022-06-07 Brunswick Corporation Marine drives and cooling systems for marine drives having a crankcase cooler
US20240134801A1 (en) * 2022-10-19 2024-04-25 Samsung Electronics Co., Ltd. Methods and system for efficient access to solid state drive

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7882299B2 (en) 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
US7475321B2 (en) * 2004-12-29 2009-01-06 Intel Corporation Detecting errors in directory entries
US7856522B2 (en) 2007-05-16 2010-12-21 Oracle International Corporation Flash-aware storage optimized for mobile and embedded DBMS on NAND flash memory
CN101339490A (zh) * 2007-07-02 2009-01-07 佛山市顺德区顺达电脑厂有限公司 闪存的驱动装置及方法
US20100185806A1 (en) * 2009-01-16 2010-07-22 Arvind Pruthi Caching systems and methods using a solid state disk
US8612666B2 (en) 2009-06-30 2013-12-17 Intel Corporation Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US8225030B2 (en) * 2009-09-30 2012-07-17 Dell Products L.P. Systems and methods for using a page table in an information handling system comprising a semiconductor storage device
WO2011044154A1 (en) * 2009-10-05 2011-04-14 Marvell Semiconductor, Inc. Data caching in non-volatile memory
US8369156B2 (en) * 2010-07-13 2013-02-05 Sandisk Technologies Inc. Fast random access to non-volatile storage
TWI421683B (zh) * 2010-11-01 2014-01-01 Phison Electronics Corp 資料管理方法、記憶體控制器與記憶體儲存裝置
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
JP2012203560A (ja) * 2011-03-24 2012-10-22 Toshiba Corp キャッシュメモリおよびキャッシュシステム
TWI457755B (zh) * 2011-08-22 2014-10-21 Phison Electronics Corp 資料寫入方法、記憶體控制器與儲存裝置
EP2837134B1 (en) * 2012-04-13 2019-02-27 Citrix Systems Inc. Method and system for caching snmp data
TWI486765B (zh) * 2012-06-11 2015-06-01 Phison Electronics Corp 記憶體管理方法、記憶體控制器與記憶體儲存裝置
KR101988434B1 (ko) * 2012-08-31 2019-06-12 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 서브-블록 관리 방법
US8984235B2 (en) * 2012-11-14 2015-03-17 Hitachi, Ltd. Storage apparatus and control method for storage apparatus
CN103488578B (zh) * 2012-12-28 2016-05-25 晶天电子(深圳)有限公司 虚拟存储设备(vmd)应用/驱动器
CN103077119A (zh) * 2012-12-31 2013-05-01 记忆科技(深圳)有限公司 数据处理系统及方法
CN103136121B (zh) * 2013-03-25 2014-04-16 中国人民解放军国防科学技术大学 一种固态盘的缓存管理方法
US20140304453A1 (en) * 2013-04-08 2014-10-09 The Hong Kong Polytechnic University Effective Caching for Demand-based Flash Translation Layers in Large-Scale Flash Memory Storage Systems
KR102108839B1 (ko) * 2013-06-12 2020-05-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
CN106909318B (zh) * 2013-12-23 2020-05-08 华为技术有限公司 固态硬盘使用方法及装置
US9286209B2 (en) * 2014-04-21 2016-03-15 Avago Technologies General Ip (Singapore) Pte. Ltd. System, method and computer-readable medium using map tables in a cache to manage write requests to a raid storage array
CN105022589A (zh) * 2014-04-29 2015-11-04 光宝科技股份有限公司 电子装置及其操作方法
US9507722B2 (en) 2014-06-05 2016-11-29 Sandisk Technologies Llc Methods, systems, and computer readable media for solid state drive caching across a host bus
KR20160057186A (ko) * 2014-11-13 2016-05-23 에스케이하이닉스 주식회사 반도체 메모리 시스템 및 그것의 동작 방법
US10025747B2 (en) * 2015-05-07 2018-07-17 Samsung Electronics Co., Ltd. I/O channel scrambling/ECC disassociated communication protocol
US20170024326A1 (en) * 2015-07-22 2017-01-26 CNEX-Labs, Inc. Method and Apparatus for Caching Flash Translation Layer (FTL) Table
CN105159622B (zh) * 2015-10-22 2016-10-12 湖南国科微电子股份有限公司 一种减小ssd读写io时延的方法与系统
US10291739B2 (en) * 2015-11-19 2019-05-14 Dell Products L.P. Systems and methods for tracking of cache sector status
CN105740162B (zh) * 2015-12-31 2018-08-07 上海盈方微电子有限公司 应用于nand存储器的nftl数据存储系统及方法
US20170277629A1 (en) * 2016-03-25 2017-09-28 Alibaba Group Holding Limited Extending the useful lifespan of nonvolatile memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI768346B (zh) * 2018-09-07 2022-06-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
TWI773343B (zh) * 2021-05-26 2022-08-01 中華電信股份有限公司 分散式物件資料儲存系統、方法及電腦可讀媒介

Also Published As

Publication number Publication date
US10318423B2 (en) 2019-06-11
US20180165198A1 (en) 2018-06-14
CN108228471B (zh) 2021-08-03
TWI625626B (zh) 2018-06-01
US20190272231A1 (en) 2019-09-05
US10990528B2 (en) 2021-04-27
CN108228471A (zh) 2018-06-29

Similar Documents

Publication Publication Date Title
TWI625626B (zh) 管理記憶體裝置中記憶體單元的實體資訊的方法及系統
US10657047B2 (en) Data storage device and method of performing partial garbage collection
US20210081315A1 (en) Reconstruction of address mapping in a host of a storage system
US8812816B2 (en) Garbage collection schemes for index block
US8478796B2 (en) Uncorrectable error handling schemes for non-volatile memories
US20130173954A1 (en) Method of managing bad storage region of memory device and storage device using the method
US20100191897A1 (en) System and method for wear leveling in a data storage device
US11874769B2 (en) Maintaining data consistency in a memory sub-system that uses hybrid wear leveling operations
CN109952565B (zh) 内存访问技术
KR20210057193A (ko) 소계 기입 카운터에 기초한 하이브리드 웨어 레벨링 동작 수행
WO2020164064A1 (en) Partial caching of media address mapping data
US11526438B2 (en) Memory system capable of increasing storage efficiency and operation method thereof
KR102302426B1 (ko) 저장 디바이스 상의 네임스페이스에서의 오류 검사
US10732877B1 (en) Smart mapping table update post background operations
CN113031856A (zh) 存储器子系统中的断电数据保护
KR20220005111A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11868643B2 (en) Background memory scan block selection
KR20210034677A (ko) 인-플레이스 데이터 대체 매체를 위한 하이브리드 웨어 레벨링
CN113590503B (zh) 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统
KR20210038692A (ko) 비휘발성 메모리를 위한 멀티-레벨 웨어 레벨링
CN113590502B (zh) 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统
US20230350798A1 (en) Namespace management for memory sub-systems
US20240069771A1 (en) Read operations for mixed data
JP2024043337A (ja) メモリシステム
US12105621B2 (en) Logical to physical (L2P) address mapping with fast L2P table load times