CN114579044A - 存储器子系统中的温度感知数据管理 - Google Patents
存储器子系统中的温度感知数据管理 Download PDFInfo
- Publication number
- CN114579044A CN114579044A CN202111432869.XA CN202111432869A CN114579044A CN 114579044 A CN114579044 A CN 114579044A CN 202111432869 A CN202111432869 A CN 202111432869A CN 114579044 A CN114579044 A CN 114579044A
- Authority
- CN
- China
- Prior art keywords
- logical unit
- data
- classification
- version
- physical memory
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 title claims abstract description 251
- 238000013523 data management Methods 0.000 title abstract description 7
- 238000000034 method Methods 0.000 claims description 79
- 238000012545 processing Methods 0.000 claims description 73
- 230000008569 process Effects 0.000 claims description 39
- 230000004044 response Effects 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 29
- 230000003321 amplification Effects 0.000 description 9
- 238000003199 nucleic acid amplification method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000003491 array Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000005201 scrubbing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear 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)
Abstract
本申请案涉及存储器子系统中的温度感知数据管理。标识存储在存储器装置中的至少一个源物理存储器块。所述源物理存储器块包括至少一个逻辑单元。做出关于所述逻辑单元的年限特性是否满足阈值准则的确定。基于所述逻辑单元的所述年限特性是否满足所述阈值准则,为所述逻辑单元确定存储分类。所述分类包括热数据分类或冷数据分类。基于为所述逻辑单元所确定的所述存储分类标识目标物理存储器块,并将所述逻辑单元存储在所述所标识的目标物理存储器块中。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地,涉及存储器子系统中的温度感知数据管理。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。通常,主机系统可利用存储器子系统来将数据存储在存储器装置处并从存储器装置检索数据。
发明内容
根据本公开的一个实施例,提供一种系统。所述系统包括:存储器装置及处理装置。所述处理器装置与所述存储器装置操作地耦合,以执行包括以下的操作:标识存储在所述存储器装置中的至少一个源物理存储器块,其中所述源物理存储器块包括至少一个逻辑单元;确定所述逻辑单元的年限特性是否满足阈值准则;基于所述逻辑单元的所述年限特性是否满足所述阈值准则来确定所述逻辑单元的存储分类,其中所述存储分类包括热数据分类或冷数据分类中的一个;基于为所述逻辑单元所确定的所述存储分类标识目标物理存储器块;及将所述逻辑单元存储在所述所标识的目标物理存储器块中。
根据本公开的另一实施例,提供一种方法。所述方法包括:标识存储在存储器装置中的至少一个源物理存储器块,其中所述源物理存储器块包括至少一个逻辑单元;确定所述逻辑单元的年限特性是否满足阈值准则;基于所述逻辑单元的所述年限特性是否满足所述阈值准则,确定所述逻辑单元的存储分类,其中所述存储分类包括热数据分类或冷数据分类中的一个;基于为所述逻辑单元所确定的所述存储分类标识目标物理存储器块;及将所述逻辑单元存储在所述所标识的目标物理存储器块中。
根据本公开的又一实施例,提供一种非暂时性计算机可读存储媒体。所述非暂时性计算机可读存储媒体包括指令,所述指令在由处理装置执行时致使所述处理装置执行包括以下的操作:标识存储在存储器装置中的至少一个源物理存储器块,其中所述源物理存储器块包括至少一个逻辑单元;基于与所述逻辑单元相关联的一或多个与年限相关的计数器,确定所述逻辑单元将被存储在所指定的冷数据物理存储器块中;及将所述逻辑单元存储在所述冷数据物理存储器块中。
附图说明
从下文给出的详细描述且从本公开的各种实施例的附图将更全面理解本公开。然而,不应将图式用于将本公开限制于特定实施例,而仅为了解释及理解。
图1根据本公开的一些实施例说明包含存储器子系统的实例计算系统。
图2为根据本公开的一些实施例的执行温度感知数据管理操作的实例方法的流程图。
图3A根据本公开的一些实施例说明具有版本及重定位计数器的逻辑单元的实例。
图3B根据本公开的一些实施例说明更新逻辑单元版本计数器的实例。
图4A到4C根据本公开的一些实施例说明更新逻辑单元重定位计数器的实例。
图5A及5B根据本公开的一些实施例说明将冷逻辑单元与热逻辑单元分开的实例。
图6A根据本公开的一些实施例说明使用单光标寻址将逻辑单元重定位到对应于逻辑单元的温度分类的存储器块的实例方法的流程图。
图6B根据本公开的一些实施例说明使用多光标寻址将逻辑单元重定位到对应于逻辑单元的温度分类的存储器块的实例方法的流程图。
图7根据本公开的一些实施例说明使用后台处理将逻辑单元重定位到对应于逻辑单元的温度分类的存储器块的实例方法的流程图。
图8为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面是针对存储器子系统中的温度感知数据管理。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的组合。下文结合图1描述存储装置及存储器模块的实例。通常,主机系统可利用包含一或多个组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可提供待存储在存储器子系统处的数据,并且可请求待从存储器子系统检索的数据。
存储器子系统可包含高密度非易失性存储器装置,其中当没有向存储器装置供电时期望保留数据。对于一些类型的非易失性存储器装置(例如,“与非”(NAND)装置),数据存储在一组物理块中。每一块由一组页(“物理页”)组成。每一页由一组存储器单元组成,其中每一存储器单元可存储一或多个位的数据。对于一些存储器装置,例如NAND装置,块是可擦除的最小区域,并且块内的页不能单独擦除。对于此类装置,一次一个块地执行擦除操作。块的页可含有有效数据、无效数据或无数据。无效数据是在将新版本的数据存储在存储器装置上时被标记为过时的数据。有效数据是存储在存储器装置上的此类数据的最新版本。存储器子系统可基于从例如操作系统接收的信息将数据标记为无效。不含有数据的页包含先前已擦除且尚未被写入的页。
尽管存储器装置将数据存储在特定大小的页及块中,但存储器子系统可提供对其它大小的单元的支持,并且将这些单元映射到页或物理块。每一此类单元在本文中被称为逻辑单元,并且可为例如物理页、物理块、主机逻辑块、物理块的倍数或其它合适的大小。存储在每一逻辑单元中的数据可包含元数据及主机数据。
由主机系统提供的待存储在存储器子系统处的数据可为数据的逻辑单元,其中一些被主机比其它更频繁地写入或覆盖写入到存储器装置中。频繁写入的数据被称为“热数据”,并且可包含日记、文件系统元数据及其它频繁更新的数据。不频繁写入的数据被称为“冷数据”,并且可包含很少改变的操作系统数据、媒体文件及其它静态或很少更新的数据。
无用信息收集操作由某些类型的常规存储器子系统执行,其中必须擦除现有数据块,才能重写块上的任何数据。存储器子系统可启动无用信息收集操作,以将现有数据拷贝到新块中,以使得可改变现有数据的一部分。然而,冷数据不太可能改变。与热数据位于相同存储器块上的未改变冷数据可能因为位于相同块上的热数据发生改变而被无用信息收集操作多次拷贝到新块中。此重复写入先前已写入的数据,被称为写入放大,降低存储器子系统的性能。重复的写入操作会减少响应时间及吞吐量,并且也会减少存储数据的存储器装置的使用寿命。此外,主要含有热数据的“热块”更有可能被选择用于无用信息收集,因为热数据频繁无效,并且无用信息收集算法选择具有最少有效数据量的块进行无用信息收集。任何存储在热块中的冷数据都会增加无用信息收集工作量及写入放大,如上文所述,并且更有可能在无用信息收集操作中被处理,因为其与热数据在同一块中。含有主要有效且很少更新的冷数据静态的“冷块”不太可能被选择进行无用信息收集,并且存储在冷块中的任何无效热数据减少了可用存储量,并且可减少存储子系统为其自身操作保留的数据量(此被称为减少“过度配置”)。
本公开的方面通过具有可确定数据的温度分类并将不同温度分类的数据存储或移动到对应的不同物理存储器块的温度感知存储器子系统来解决上述及其它缺陷。因此,冷数据位于冷块中,热数据位于热块中(以此类推,如果还有其它存储器分类,例如暖数据)。温度感知存储器子系统可基于与逻辑单元的年限相关的逻辑单元的特性来确定逻辑单元的温度分类。与年限相关的特性可包含每次将逻辑单元写入到存储器装置时递增的版本计数器,并且可用于确定逻辑单元的相对年限。
本公开的优点包含但不限于由于在不同物理存储器块中存储不同温度的数据而导致的存储器子系统的性能的改进。由于存储在主要热块中的冷数据量减少,无用信息收集操作及写入放大减少。由于作为无用信息收集操作的一部分执行较少的写入操作,减小的写入放大可提供存储器子系统的改进的性能,并且增加的存储效率。减少对物理存储器块的写入次数还可增加存储器子系统的操作使用寿命,因为作为无用信息收集操作的一部分执行较少的写入操作。此外,由于减少了主要存储在冷块中的热数据量,因此也减少了过度配置,并且由于更多的存储器块可供存储器子系统使用而提高了存储效率。
图1根据本公开的一些实施例说明包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或此类组合。
存储器子系统110可为存储装置、存储器模块或存储装置及存储器模块的组合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它交通工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网商用装置中的计算机),或包含存储器及处理装置的此类计算装置。
计算系统100可包含主机系统120,所述主机系统耦合到一或多个存储器子系统110。在一些实施例中,主机系统120耦合到不同类型的多个存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与...耦合”通常是指组件之间的连接,所述连接可为间接通信连接或直接通信连接(例如,无需中间组件),无论有线还是无线的,包含例如电、光学、磁性等连接。
主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120例如使用存储器子系统110将数据写入到存储器子系统110,并且从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行先进技术总线附属(SATA)接口、快速外围组件互连(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接SCSI(SAS)、双倍数据速率(DDR)存储器总线、小计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接字接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120可进一步利用高速NVM(NVMe)接口存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1说明存储器子系统110作为实例。通常,主机系统120可经由同一通信连接、多个单独通信连接及/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器装置的一些实例(例如,存储器装置130)包含“与非”(NAND)类型快闪存储器及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,所述存储器装置为非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可结合可堆叠的交叉网格化数据存取阵列基于体电阻的改变执行位存储。此外,与许多基于快闪存储器的存储器相比,交叉点非易失性存储器可执行原地写入操作,其中可在不预先擦除非易失性存储器单元的情况下编程非易失性存储器单元。例如,NAND型快闪存储器包含二维NAND(2D NAND)及三维NAND(3D NAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如,单级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多级单元(MLC)、三级单元(TLC)、四级单元(QLC)及五级单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC、PLC或此类的任一组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可经分组为页,所述页可指代用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),可将页分组以形成块。
尽管描述了非易失性存储器组件,例如非易失性存储器单元的3D交叉点阵列及NAND类型快闪存储器(例如,2D NAND、3D NAND),但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM),磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻随机存取存储器(RRAM)、氧化物基RRAM(OxRAM)、“或非”(NOR)快闪存储器、或电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据的操作以及其它此类操作。存储器子系统控制器115可包含例如一或多个集成电路及/或离散组件的硬件、缓冲存储器或其组合。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统,以执行本文中所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适处理器。
存储器子系统控制器115可包含经配置以执行存储在本地存储器119中的指令的处理装置,例如,所述处理装置包含一或多个处理器(处理器117)。在所说明实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器经配置以存储用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流以及例程的指令。
在一些实施例中,本地存储器119可包含存储存储器指针、提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已被说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含控制器115,且替代地可依赖于外部控制(例如,由外部主机,或由与存储器子系统分开的处理器或控制器提供)。
通常,存储器子系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换为指令或适当的命令,以实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,例如损耗均衡操作、无用信息收集操作、错误检测与纠错码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器),其可从存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可从外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110为受管理存储器装置,其包含具有在裸片上的控制逻辑(例如,本地控制器132)的原始存储器装置130以及在相同存储器装置封装内用于媒体管理的控制器(例如,存储器子系统控制器115)。受管理存储器装置的实例为受管理NAND(MNAND)装置。
存储器子系统控制器115可执行媒体管理算法的操作,例如损耗均衡、刷新、无用信息收集、清理等。块可具有一些含有有效数据的页及一些含有无效数据的页。为避免等待块中所有页具有无效数据以便擦除及重用所述块,可调用下文中被称为“无用信息收集”的算法来允许将所述块擦除并作为空闲块释放用于后续的写入操作。无用信息收集是一组媒体管理操作,其包含,例如,选择含有有效及无效数据的块,选择块中含有有效数据的页,将有效数据拷贝到新位置(例如,另一块中的空闲页)),将先前所选择页中的数据标记为无效,并擦除所选择块。
由于无用信息收集可在擦除块之前将有效数据写入到不同的块,因此将数据多次重写到存储器子系统中的不同块。存储器子系统中数据的额外重写量在本文中被称为写入放大。写入放大可减少存储器子系统的使用寿命。为了减少写入放大,存储器子系统可包含超过在任何单个时间可用于存储来自主机系统的数据的块的总数目的一定数量的额外块。此类额外块可被视为过度配置。大量的过度配置可显著减少写入放大,因为由于无用信息收集尝试释放块而在存储器子系统内重写数据的次数减少了。
下文中的“无用信息收集操作”是指选择块,将有效数据从所选择块重写到新块,并擦除所选择块处所存储的所有无效数据及有效数据。可将来自多个所选择块的有效数据拷贝到较少数目个新块,且然后可擦除所选择块。因此,已被擦除的块的数目可增加,以使得更多的块可用于存储来自主机系统的后续数据。
为了选择待对其执行无用信息收集操作的块,常规存储器子系统选择具有最少量有效数据的块,因为在擦除所选择块之前,需要将较少的有效数据从所选择块重写到新块。在一些情况下,块可包含在相对较长时间段内有效的数据。此数据被称为冷数据。如果块包含大量有效冷数据,那么可能不会对所述块执行无用信息收集操作。因此,与无用信息收集操作将选择较少量的有效数据的其它块相比,对所述块执行较少无用信息收集操作。由于没有对具有大量有效冷数据的块执行无用信息收集操作,存储器子系统的大量容量被锁定在含有一定量无效数据连同有效冷数据的块中。存储冷数据的块的数目减少了存储器子系统中的过度配置量,且因此导致写入放大增加,因为额外写入操作是对其它块执行,而不是对具有有效冷数据的块执行。
存储器子系统110包含温度感知存储器管理组件113,所述温度感知存储器管理组件可确定数据的温度分类并且将不同温度分类的数据存储或移动到对应的不同物理存储器块(例如,在存储器装置130中)。在一些实施例中,存储器子系统控制器115包含温度感知存储器管理组件113的至少一部分。在一些实施例中,温度感知存储器管理组件113为主机系统110、应用程序或操作系统的一部分。在其它实施例中,本地媒体控制器135包含温度感知存储器管理组件113的至少一部分且经配置以执行本文中所描述的功能,确定数据的温度分类并且将不同温度分类的数据存储或移动到对应的不同物理存储器块(例如,在存储器装置130中)。
温度感知存储器管理组件113可基于与逻辑单元的年限相关的逻辑单元的特性来确定逻辑单元的温度分类,标识对应于温度分类的存储器块,及将逻辑单元存储或移动到对应存储器块。下文描述关于温度感知存储器管理组件113的操作的更多细节。
在特定实施例中,由温度感知存储器管理组件113用于确定逻辑单元的温度分类的与年限相关的特性可包含每次将逻辑单元写入到存储器装置时递增的版本计数器,并且可用于确定逻辑单元的相对年限。版本计数器可使用“当前版本计数器”变量来实施,所述变量在每次一组逻辑单元中的任何逻辑单元(例如,在存储器装置130中的物理存储器块中)被写入时递增。然后可通过从当前版本计数器减去逻辑单元的版本计数器来确定逻辑单元的年限。较大的差对应于较旧的逻辑单元,其可被分类为冷数据。较小的差对应于较新的逻辑单元,其可被分类为热数据。阈值版本值可用于确定将逻辑单元分类为热的还是冷的。例如,如果当前版本计数器与逻辑单元的版本计数器之间的差大于阈值版本值,那么逻辑单元可被分类为冷数据。否则,逻辑单元可被分类为热数据。
与年限相关的特性还可包含重定位计数器,所述重定位计数器每次将逻辑单元重定位到不同块时递增,并且在逻辑单元被覆盖写入时复位。重定位计数器的较低值指示逻辑单元可能比更高的重定位计数器较新地被覆盖写入,且因此与具有更高重定位计数器的逻辑单元相比相对较新。因此,重定位计数器的较低值对应于热数据,且较高值对应于冷数据。阈值重定位值可用于确定将逻辑单元分类为热的还是冷的。例如,如果重定位计数器大于阈值重定位值,那么逻辑单元可分类为冷数据。否则,重定位计数器可被分类为热数据。
当确定不同年限特性中的多于一个时,不同年限特性的阈值的组合可用于将逻辑单元分类为热的或冷的。例如,可确定版本计数器及重定位计数器的加权平均值并将其与阈值加权组合值进行比较。加权平均数可对每一特性进行相等地加权。替代地,每一特性可具有不同的权重。例如,当执行无用信息收集时,或在其它时间,例如在闲置时间期间(例如,当存储子系统未执行读取或写入操作时),可发生温度分类,以及基于温度分类将数据的逻辑单元移动到不同块。
图2为根据本公开的一些实施例的执行温度感知数据管理操作的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200为图1的温度感知存储器管理组件113执行。尽管以特定的顺序或次序展示,但除非另有所规定,否则可修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程也是可能的。
在操作210处,处理逻辑标识存储在存储器装置130中的至少一个源物理存储器块。源物理存储器块包含至少一个逻辑单元。操作210及方法200的其它操作可响应于无用信息收集事件(例如由执行无用信息收集操作的前台进程)来执行。
在操作220处,处理逻辑确定逻辑单元的年限特性是否满足阈值准则。逻辑单元的年限特性可为基于逻辑单元的数据已被写入到存储器装置的至少一个物理块的次数的版本计数,在所述状况下,阈值准则是阈值版本计数。当逻辑单元的版本计数与当前版本值之间的差满足阈值版本差时,逻辑单元的所确定存储分类可为热数据分类。当所确定存储分类是热数据分类时,目标物理存储器块可包含被指定为存储热数据的热数据物理存储器块。
当逻辑单元的版本计数与当前版本计数之间的差满足阈值版本差时,逻辑单元的所确定存储分类可为冷数据分类,例如,如参考图5A所描述。当逻辑单元的所确定存储分类是冷数据分类时,目标物理存储器块可包含被指定为存储冷数据的冷数据物理存储器块。
每一逻辑单元的年限特性可基于逻辑单元已被重定位或以其它方式从存储器装置的不同存储器块移动的次数的重定位计数。当逻辑单元在存储器装置中被覆盖时,重定位计数可被复位为初始值,例如0,因为覆盖写入逻辑单元对应于复位逻辑单元的年限以指示逻辑单元含有新数据。逻辑单元的所确定存储分类可基于重定位计数是否满足阈值重定位条件,如参考图5A所描述。例如,逻辑单元的所确定存储分类可在重定位计数满足阈值重定位计数时为冷数据分类,或在重定位计数不满足阈值重定位计数时为热数据分类。
在操作230处,处理逻辑基于逻辑单元的年限特性是否满足阈值准则来确定逻辑单元的存储分类,其中分类包含热数据分类或冷数据分类。在操作240处,处理逻辑基于为逻辑单元所确定的存储分类来标识目标物理存储器块。在操作250处,处理逻辑将逻辑单元存储在所标识目标物理存储器块中。处理装置可将逻辑单元的地址存储在一组冷数据逻辑单元地址中,例如日记或日志。当所述组冷数据逻辑单元地址满足阈值大小条件时,例如当日志的大小达到阈值大小(例如缓冲器大小等等)时,将日记中由地址标识的每一逻辑单元移动到冷数据物理存储器块。在后台闲置时间期间,处理装置可使用后台任务将逻辑单元的地址存储在日记中。在特定实施例中,处理装置可使用后台任务来执行方法200的每一操作。
图3A根据本公开的一些实施例说明具有版本及重定位计数器的逻辑单元的实例。块302A,其可为位于存储器装置130中的物理存储器块,含有一组逻辑单元304A中的十六个逻辑单元。逻辑单元标记为“单元:0”到“单元:16”。逻辑单元304A中的每一个例如可为物理页、物理块、主机逻辑块、物理块的倍数或其它合适的大小。逻辑单元304A中的每一个可含有主机数据(未展示)及元数据。逻辑单元的特性,例如单元标识符、版本计数器及重定位计数器,可存储在逻辑单元的元数据中,或存储在其它存储器区域中(例如,版本计数器及重定位计数器可与逻辑单元304A分开地存储在表中并且通过逻辑单元标识符与逻辑单元相关联)。
图3A中的每一逻辑单元(“单元”)包含单元标识符(展示为“单元X”,其中X是单元标识符)、版本计数器(“版本:X”,其中X是版本计数器的值),且重定位计数器(“重定位:X”,其中X是重定位计数器的值)。所述组逻辑单元304A中单元0到15的版本计数器分别为0到15(版本:0到版本:15),其指示相应逻辑单元的年限。单元0到15的重定位计数器都是0(重定位:0),此指示单元0到15中没有一个已被重定位到其它块。
可通过每次主机将数据写入到块302A的逻辑单元时使当前版本值递增并将逻辑单元的版本计数器的值设置为当前版本值来将版本计数器值指派给逻辑单元。当前版本值(展示为“当前版本:15”)表示最近指派的版本计数器值(或待指派的下一版本计数器值)。当前版本值可存储在块302A中或温度感知存储器管理组件113可存取的存储器中的别处。可通过从当前版本值(其在本实例中为15)减去逻辑单元的版本计数器来确定逻辑单元的年限。例如,单元0的年限是15(15-0),且单元14的年限是1(15-14)。由于15大于1,因此单元0比单元14旧。可使用其它技术来为版本计数器指派值,例如,在第一次写入逻辑单元时将版本计数器初始化为0,并且在写入逻辑单元时使逻辑单元的版本计数器递增。
每次主机将数据写入到逻辑单元时,通过将每一逻辑单元的重定位计数器设置(或复位)为初始值,例如0,可将重定位计数器值指派给逻辑单元。每次逻辑单元被重定位到物理存储器的不同块时,例如,通过由存储器子系统控制器115执行的无用信息收集过程,重定位计数器可递增。所展示的特定值,例如单元编号、版本计数器、重定位计数器及当前版本值,以及所展示的逻辑单元的数目,仅作为说明性实例展示,并且可使用任何合适的值来替代所展示的值。
图3B根据本公开的一些实施例说明更新逻辑单元版本计数器的实例。块302B,其可为图3A的物理存储器块302A的修改版本,含有一组逻辑单元304B。逻辑单元306B可通过存储器子系统控制器115覆盖写入逻辑单元304A的单元5、6及7产生。因此,逻辑单元304A的单元5、6及7变得无效,如通过逻辑单元304B的第二行中的单元5、6及7中的每一个上方X展示,且将单元5、6及7重写到块302B中的不同位置(例如,用与第二行中所展示的无效初始单元5、6及7的主机数据不同的主机数据)。基于在重写单元5、6及7之前最初为15的当前版本值确定新单元5、6及7的版本计数器。当单元5被重写时,当前版本值递增到16,且其值(16)用作单元5的版本计数器(在单元5中展示为“版本:16”)。类似地,当单元6被重写时,当前版本值递增到17,且将其值(17)指派给单元6,导致单元6的版本计数器为17(在单元6中展示为“版本:17”)。单元7的版本计数器通过类似的操作序列设置为18(在单元7中展示为“版本:18”)。当前版本值于是为18。
图4A到4C根据本公开的一些实施例说明更新逻辑单元重定位计数器的实例。如在图4A中所展示,可为图3B的物理存储器块302B的修改版本的块402A含有一组逻辑单元404A。逻辑单元404A可由存储器子系统控制器115将逻辑单元304B的单元0、5及14重定位到不同块408A来产生。例如,此重定位可作为无用信息收集操作的一部分发生。作为重定位的结果,逻辑单元404A的单元0、5及14已变为无效,如由单元0、5及14中的每一个上方的X所展示。此外,单元0、5及14已被移动到块408A,其中其被包含在一组逻辑单元410A中。由于单元0、5及14均已重定位一次,因此每一单元的重定位计数已递增1。逻辑单元410A中的单元0、5及14的重定位计数展示为“重定位:1”,指示那些逻辑单元中的每一个均具有1的重定位计数。作为重定位过程的一部分,单元0、5及14中的每一个的数据可从块402A拷贝到块408A。
位置之后的块402A的逻辑单元在图4B中展示为块402B。如在块402B中可看出,在重定位之前存储重定位单元0、5及14的位置是无效的,如由那些位置中的空白块所展示。被覆盖写入的单元5、6及7在被覆盖写入之前存储的位置也是无效的,如由那些位置中的空白块所展示。
图4C说明另外两个实例重写及另一实例重定位对图4A的块408A的逻辑单元410A的影响。如在图4A中所展示,块408A含有单元0、5及14。在第一实例重写中,单元5被重写,例如,因为主机已请求改变单元5中的主机数据的一部分。当单元5被重写时,块410A中的单元5的版本无效(如由块408C中单元5的位置上方的X所展示)。单元5被重写到块408C中的不同位置(展示在第一行的第四列中)。重写单元5的版本计数器是通过使当前版本值18递增到19,并将结果(19)指派给单元5的版本计数器(如由“版本:19”所展示)来确定。单元5的数据(包含主机数据及元数据)被拷贝,因此重定位计数器保持为1(如由单元5中的“重定位:1”所展示)。
在第二实例重写中,单元0被重写,例如,因为主机已请求改变单元0中的主机数据或主机可存取元数据(例如操作系统元数据)的一部分。当单元0被重写时,块410A中的单元0的版本无效(如由块408C中单元0的位置上方的X所展示)。单元0被重写到块408C中的不同位置(展示在第二行的第一列中)。重写单元0的版本计数器是通过使当前版本值19递增到20,并将结果(20)指派给单元0的版本计数器(如由“版本:20”所展示)来确定。
在实例重定位中,单元14被重定位到块410,例如,作为无用信息收集操作的结果。当单元14被重定位时,块410A中的单元14的版本无效(如由块408C中单元14的位置上方的X所展示),且单元14被拷贝到块412。作为重定位的结果,单元14的重定位计数器从1递增到2(如由块412的单元14中的“重定位:2”所展示)。在重定位期间,单元14的元数据(例如,版本计数器)及主机数据从块408C拷贝到块412(如由块412的单元14中的“版本:14”所展示)。
图5A及5B根据本公开的一些实施例说明将冷逻辑单元与热逻辑单元分开的实例。块502含有逻辑单元504,所述逻辑单元被命名为单元20到单元25。温度感知存储器管理组件113基于逻辑单元的年限特性(版本计数器及重定位计数器)将逻辑单元504中的每一个分类为热数据或冷数据。作为无用信息收集操作的一部分或响应于无用信息收集操作(例如,在前台进程中),温度感知存储器管理组件113可执行分类,如参考图6A和6B进一步所描述。替代地或另外地,温度感知存储器管理组件113可在闲置时间期间(例如,在后台进程中)执行分类,如参考图7进一步所描述。温度感知存储器管理组件113还可将逻辑单元504重定位到基于为块所确定的分类而标识的块506A、508A(例如,在物理存储器中)。
被分类为热数据的逻辑单元504可被重定位到对应于热数据的块506A。块506A可为例如无用信息收集操作将块重定位到的无用信息收集目标块。例如,单元20、21及23被分类为热数据,并且将其重定位到无用信息收集目标块506A。单元24及25可被分类为热或冷,此取决于使用哪一年限特性。如果被分类为热数据,那么单元24及25也被重定位到块506A。
被分类为冷数据的逻辑单元504可被重定位到块508A,所述块是所指定的冷数据目标块。例如,单元22被分类为冷数据,并且被重定位到冷数据目标块508A。可被分类为热或冷的单元24及25在其被分类为冷数据的情况下被重定位到冷数据目标块508A。
用于确定单元的温度分类的单元20到25的年限特性在表1中展示以及所确定温度分类。
表1
版本差列展示每一逻辑单元的版本计数与当前版本值(其为200)之间的差。版本差与逻辑单元的年限成正比。重定位计数器也与逻辑单元的年限成正比,因为更多的重定位指示逻辑单元可能比较少数目的重定位存在更长的时间段。可基于版本差、重定位计数器或两者来确定温度分类。为了基于其版本计数器确定逻辑单元的温度,可将版本差与阈值版本差进行比较。如果版本差大于阈值,那么逻辑单元可被分类为冷数据。否则(例如,如果版本差小于或等于阈值),那么逻辑单元可被分类为热数据。阈值版本差可基于特定的预期工作负荷来确定,对于所述特定的预期工作负荷,阈值版本差值可用于以可接受的准确性将逻辑单元分类为冷数据。因此,经验调谐过程可用于基于特定的预期工作负荷确定适当的阈值版本差。
在图5A的实例中,阈值版本差为100,所以大于100的版本差可被分类为冷数据。替代地或另外,为了基于其版本计数器确定逻辑单元的温度,可将版本计数器与阈值版本计数器进行比较。如果版本计数器大于阈值版本计数器,那么逻辑单元可被分类为冷数据。阈值版本计数器可为例如小于当前版本值减去阈值版本距离的值。如果版本计数器彼此独立地递增,例如,版本计数器通过使其递增而不是通过将其设置为当前版本值来更新,那么阈值版本计数器可通过从逻辑单元的版本计数器减去阈值版本差来确定。
在图5A的实例中,根据版本计数器,单元20被分类为热数据,因为其版本差为10,小于阈值版本差(如上文所描述,大于阈值版本差值100的版本差被分类为冷数据)。单元21未基于其版本计数器进行分类,因为版本计数器不可用于单元21,如在特定状况下未实施版本计数器的情况下可发生,例如针对由后台进程执行的分类。也就是说,例如,前台及后台进程可使用不同的年限特性。例如,前台进程(例如图6A及6B中所展示的方法)可使用版本计数器来确定温度分类。后台进程,例如图7中所展示的方法,可使用重定位计数器来确定温度分类(或反之亦然)。单元22被分类为冷数据,因为其版本差为120,大于阈值版本差。单元23被分类为热数据,因为其版本差为60,小于阈值版本差。单元24根据其版本计数器被分类为冷数据,因为其版本差为130,大于阈值版本差。单元25根据其版本计数器被分类为热数据,因为其版本差为80,小于阈值版本差。
为了基于其重定位计数器确定逻辑单元的温度,可将重定位计数器与阈值重定位计数器进行比较。如果重定位计数器大于阈值,那么逻辑单元可被分类为冷数据。否则(例如,如果版本差小于或等于阈值),那么逻辑单元可被分类为热数据。阈值重定位计数器可基于如上文针对阈值版本距离所描述的预期工作负荷来确定。
在图5A的实例中,在此实例中,阈值重定位计数器为50,因此大于50的重定位计数器可被分类为冷数据。单元20未根据其重定位计数器进行分类,因为其重定位计数器不可用,如在特定状况下未实施重定位计数器的情况下可发生,例如针对由前台进程执行的分类。根据其重定位计数器,单元21被分类为热数据,因为其重定位计数器为20,小于重定位计数器阈值(如上文所描述,大于阈值重定位计数器阈值50的重定位计数器被分类为冷数据)。单元22被分类为冷数据,因为其重定位计数器为70,大于重定位计数器阈值。单元23被分类为热数据,因为其重定位计数器为20,小于重定位计数器阈值。单元24根据其重定位计数器被分类为热数据,因为其重定位计数器为10,小于重定位计数器阈值。单元25根据其重定位计数器被分类为冷数据,因为其重定位计数器为90,大于重定位计数器阈值。
在特定实施例中,为了基于其版本计数器及其重定位计数器两者来确定逻辑单元的温度,可将版本计数器与阈值版本差进行比较并且可将重定位计数器与阈值重定位计数器进行比较。如果两个计数器产生相同的分类(例如,都对应于热数据或都对应于冷数据),那么分类可用作所确定温度。然而,如果版本计数器比较产生与重定位计数器不一致的结果,那么可做出关于将逻辑单元分类为热数据还是冷数据的决定,例如,通过优先考虑由年限特性中的一个(例如,版本或重定位)产生的分类,或通过启发法,例如选择远离其阈值的分类。不同分类的值不一定直接可比。例如,与10个版本相比,10个重定位可更强烈地指示逻辑单元是冷的,例如,因为重定位可不如版本增量频繁。因此,不同特性的值之间的比较可涉及在执行比较之前缩放特性中的一个(例如,将重定位乘以3)。选择离阈值更远的分类可涉及在比较不同特性值与其阈值的差之前缩放特性值中的至少一个(例如,版本、重定位或两者)。在其它实施例中,如果基于逻辑单元的两个不同年限特性的分类不一致,那么分类结果可被认为是无效的,在这种状况下,温度感知存储器管理组件113可确定不对其逻辑单元执行任何动作。
在特定实施例中,为了基于多个年限特性(例如版本计数器及重定位计数器)确定逻辑单元的温度,可确定特性的平均值或加权平均值并将其与阈值的加权平均值进行比较。如果特性中的一个提供更强的温度分类指示,那么可使用加权平均值。提供更强指示的特性可比提供更弱指示的其它特性具有更大的权重。例如,如果发现重定位计数提供比版本计数更强的指示,那么重定位计数可加权0.75倍,并且在确定加权平均值时版本计数可加权0.25倍。
在图5A的实例中,基于版本计数器年限特性为单元24及25所确定的温度分类与基于重定位计数器年限特性所确定的那些温度分类冲突。如上文所描述,单元24基于其版本计数器被分类为冷数据,但基于其重定位计数器被分类为热数据。此外,单元25基于其版本计数器被分类为热数据,但基于其重定位计数器被分类为冷数据。如上文所描述,这些冲突可通过以下操作解决:例如,通过优先考虑由年限特性中的一个(例如,版本或重定位)产生的分类;通过启发法,例如选择远离其阈值的分类;通过确定加权平均值,或通过忽略分类并对对应逻辑单元不执行任何操作。
图5B说明在基于图5A中所展示的分类将逻辑单元504重定位到块506B、508B之后的无用信息收集目标块506B及冷数据目标块508B。单元20、21及23已重定位到块506B,因为其在此实例中被分类为热块。此外,单元22、24及25已重定位到块508B,因为其在此实例中被分类为冷块。
图6A根据本公开的一些实施例说明使用单光标寻址将逻辑单元重定位到对应于逻辑单元的温度分类的存储器块的实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑,微码,装置的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法600为图1的温度感知存储器管理组件113执行。尽管以特定的顺序或次序展示,但除非另有所规定,否则可修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程也是可能的。
在操作602处,处理逻辑标识媒体管理事件的源块。源块可位于物理存储器中(例如,在存储器装置130中)。媒体管理事件可为例如,无用信息收集事件,写入均衡事件或在存储器子系统控制器115所检测到其它事件。方法600的操作中的一或多个可响应于无用信息收集事件或操作,或响应于另一类型的媒体管理事件或操作而被执行。方法600的操作中的一或多个可使用前台处理来执行,例如在存储器子系统正在处理写入、擦除及/或读取请求的时间期间。在操作604处,处理装置从源块读取逻辑单元。在操作606处,处理装置确定逻辑单元的温度分类。
在操作608处,处理逻辑确定温度分类是否为冷数据分类。如果温度分类不是冷的,那么在操作610处,处理逻辑将逻辑单元重定位到热数据块,例如无用信息收集目标块。如果温度分类是冷的,那么在操作612处,处理逻辑将逻辑单元的地址存储在冷数据缓冲器中。如果单个光标可用并且用于在操作630中寻址热数据块,那么方法600可使用冷数据缓冲器。(如果多个光标可用,那么图6B中所展示的方法620可用于寻址热数据块及冷数据块。)在操作614处,处理逻辑确定冷数据缓冲器大小(例如,存储在冷数据缓冲器中的地址的总大小)是否大于阈值大小(其可为缓冲器的容量,或其它合适的阈值)。如果不是,那么处理装置执行操作604以从源块读取另一逻辑单元。否则,如果冷数据缓冲器大小大于阈值大小,那么在操作616处,处理逻辑将具有存储在冷数据缓冲器中的地址的逻辑单元重定位到冷数据块。可存在多个冷数据块。例如,当冷数据块变满时,可分配另一冷数据块并用于存储随后标识的冷逻辑单元。
替代地,替代将逻辑单元的地址存储在冷数据缓冲器中并在达到缓冲器阈值时重定位逻辑单元(如上文针对操作612到616所描述),方法600可将逻辑单元的分类的指示存储在数据结构中,随后可使用所述标识来标识特定分类的逻辑单元并执行对应操作,例如将冷逻辑单元重定位到冷数据块。数据结构可为位图,例如,其含有对应于每一逻辑单元(或至少对应于每一有效逻辑单元)的位。位图中的位的值可由方法600设置以指示基于在操作606处所确定的温度分类将对应逻辑单元分类为热数据还是冷数据。例如,在随后的无用信息收集事件期间,位图可用于检索先前确定的有效逻辑单元的分类并将已被分类为冷(例如,具有对应于冷分类的位值)的逻辑单元重定位到专用冷数据块。
图6B根据本公开的一些实施例说明使用多光标寻址将逻辑单元重定位到对应于逻辑单元的温度分类的存储器块的实例方法620的流程图。方法620可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑,微码,装置的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法620为图1的温度感知存储器管理组件113执行。尽管以特定的顺序或次序展示,但除非另有所规定,否则可修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程也是可能的。
在操作622处,处理逻辑标识媒体管理事件的源块。源块可位于物理存储器中(例如,在存储器装置130中)。在操作624处,处理逻辑从源块读取逻辑单元。在操作626处,处理逻辑确定逻辑单元的温度分类。
在操作628处,处理逻辑确定温度分类是否为冷数据分类。如果温度分类不是冷的,那么在操作630处,处理逻辑将逻辑单元重定位到热数据块,例如无用信息收集目标块。如果温度分类是冷的,那么在操作632处,处理逻辑将逻辑单元重定位到冷数据块。所述方法可在操作630或操作632处使用多个光标重定位逻辑单元,例如,使用一个光标来寻址热数据块且使用另一个光标来寻址冷数据块。可存在多个冷数据块。例如,当冷数据块变满时,可分配另一冷数据块并用于存储随后标识的冷逻辑单元。
图7根据本公开的一些实施例说明使用后台处理将逻辑单元重定位到对应于逻辑单元的温度分类的存储器块的实例方法700的流程图。方法700可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑,微码,装置的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法700为图1的温度感知存储器管理组件113执行。尽管以特定的顺序或次序展示,但除非另有所规定,否则可修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程也是可能的。
在操作702处,处理逻辑开始后台处理任务。方法700可理解为冷数据合并任务。方法700的操作可在后台任务中执行,例如响应于后台闲置时间事件。例如,当存储器子系统控制器115不处理读取、写入或擦除操作时,可执行后台处理任务。在操作704处,处理逻辑标识存储在物理存储器中的热数据块。热数据块例如可为含有被分类为热数据的至少一个逻辑单元的数据块。作为另一实例,热数据块可为不是温度感知存储器管理组件113将标识的冷数据逻辑单元重定位到的所指定的冷数据块的数据块。在操作706处,处理逻辑从所标识热数据块读取逻辑单元。在操作708处,处理逻辑确定逻辑单元的温度分类。例如,可基于逻辑单元的重定位计数器来确定温度分类。替代地或另外,可基于逻辑单元的版本计数器或其它年限特性来确定温度分类。
在操作710处,处理逻辑确定温度分类是否为冷数据分类。如果不是,那么处理装置执行操作706以从所标识的热数据块读取另一逻辑单元。如果温度分类是冷数据分类,那么在操作712处,处理逻辑将逻辑单元的地址(由操作706读取)存储在冷数据缓冲器中。
在操作714处,处理逻辑确定冷数据缓冲器大小(例如,冷数据缓冲器的内容大小,其可为存储在冷数据缓冲器中的地址的总大小)是否大于阈值大小(其可为缓冲器的容量,或其它合适的阈值)。如果不是,那么处理装置执行操作706以从所标识的热数据块读取另一逻辑单元。否则,如果冷数据缓冲器大小大于阈值大小,那么在操作716处,处理逻辑将具有存储在冷数据缓冲器中的地址的逻辑单元重定位到冷数据块。
图8说明计算机系统800的实例机器,在所述计算机系统内可执行用于致使机器执行本文中所论述的方法中的任何一或多个的指令集。在一些实施例中,计算机系统800可对应于主机系统(例如,图1的主机系统120),其包含,耦合到,或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的温度感知存储器管理组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份运行,作为对等(或分布式)网络环境中的对等机器运行,或作为云计算基础设施或环境中的服务器或客户端机器运行。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、服务器、网络路由器、交换机或网桥,或能够执行规定由所述机器进行的动作的指令集(顺序或其它方式)的任何机器。此外,虽然说明单个机器,但术语“机器”还应被视为包含单独或联合执行一(或多个)指令集以执行本文所论述的方法中的任何一或多个的任何机器集合。
实例计算机系统800包含经由总线830彼此通信的处理装置802、主存储器804(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或RDRAM等的动态随机存取存储器(DRAM)、静态存储器806(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统818。
处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元,等等。更特定地,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集组合的处理器。处理装置802还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器,等等。处理装置802经配置以执行用于执行本文中所论述的操作及步骤的指令826。计算机系统800可进一步包含网络接口装置808以经由网络820进行通信。
数据存储系统818可包含机器可读存储媒体824(也被称作为计算机可读媒体),其上存储体现本文中所描述的方法或功能中的任何一或多个的一或多个指令826集或软件。指令826还可在计算机系统800执行所述指令期间完全或至少部分地驻留在主存储器804内及/或处理装置802内,主存储器804及处理装置802也构成机器可读存储媒体。机器可读存储媒体824、数据存储系统818及/或主存储器804可对应于图1的存储器子系统110。
在一个实施例中,指令826包含用以实施对应于温度感知存储器管理组件(例如,图1的温度感知存储器管理组件113)的功能的指令。虽然机器可读存储媒体824在实例实施例中被展示为单个媒体,但术语“机器可读存储媒体”应被视为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被视为包含能够存储或编码指令集以供机器执行且使机器执行本公开的方法中的任何一或多个的任何媒体。因此,术语“机器可读存储媒体”应被视为包含(但不限于)固态存储器、光学媒体及磁媒体。
已在计算机存储器内的算法及数据位的操作的符号表示方面来呈现前面的详细描述的一些部分。这些算法描述及表示为由所属数据处理领域的技术人员用于以向所属领域的其它技术人员传达其工作的本质的方式。算法此处且通常被认为导致所要结果的自洽操作序列。操作为需要物理操纵物理量的操作。通常,但非必需地,这些量可采取能够存储、组合、比较或以其它方式操纵的电或磁信号的形式。将这些信号称作位、值、元素、符号、字符、项、数字等等有时已证明是便利的(主要出于共用的原因)。
然而,应记住,所有这些术语及类似术语均与适当的物理量相关联,且仅作为应用于这些量的方便标签。本公开可是指计算机系统或类似电子计算装置的动作及过程,其将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储器系统内的物理量的其它数据。
本公开还涉及用于执行本文中操作的设备。此设备可为特定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘,只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡,或适用于存储电子指令的任何类型的媒体,每一者都耦合到计算机系统总线。
本文中所呈现的算法及显示并不与任何特定计算机或其它设备内在地相关。根据本文中的教示,各种通用系统可与程序一起使用,或可证明构造更专用的设备以执行所述方法为方便的。各种这些系统的结构将如下文描述中所阐明。另外,不参考任何特定编程语言描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
本公开可经提供作为计算机程序产品或软件,其可包含机器可读媒体,具有存储于其上的指令,所述指令可用于对计算机系统(或其它电子装置)进行编程以根据本公开执行处理。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁性磁盘存储媒体、光存储媒体、快闪存储器组件等。
在上述说明书中,本公开的实施例已参考其特定实例实施例进行描述。显而易见的是,在不脱离所附权利要求书中所阐明的本公开的实施例的更广泛的精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应考虑说明性而非限制性。
Claims (20)
1.一种系统,其包括:
存储器装置;及
处理装置,其与所述存储器装置操作地耦合,以执行包括以下的操作:
标识存储在所述存储器装置中的至少一个源物理存储器块,其中所述源物理存储器块包括至少一个逻辑单元;
确定所述逻辑单元的年限特性是否满足阈值准则;
基于所述逻辑单元的所述年限特性是否满足所述阈值准则,确定所述逻辑单元的存储分类,其中所述存储分类包括热数据分类或冷数据分类中的一个;
基于为所述逻辑单元所确定的所述存储分类标识目标物理存储器块;及
将所述逻辑单元存储在所述所标识的目标物理存储器块中。
2.根据权利要求1所述的系统,其中所述逻辑单元的所述年限特性包括基于所述逻辑单元的所述数据已被写入到所述存储器装置的至少一个物理块的次数的版本计数,且其中所述阈值准则包括阈值版本计数。
3.根据权利要求2所述的系统,其中当所述逻辑单元的所述版本计数与当前版本值之间的差满足阈值版本差时,所述逻辑单元的所述所确定存储分类是所述热数据分类。
4.根据权利要求3所述的系统,其中所述逻辑单元的所述所确定存储分类是所述热数据分类,并且其中所述目标物理存储器块包括被指定为存储被分类为热数据的数据的热数据物理存储器块。
5.根据权利要求3所述的系统,其中当所述逻辑单元的所述版本计数与当前版本计数之间的所述差不满足所述阈值版本差时,所述逻辑单元的所述所确定存储分类是所述冷数据分类。
6.根据权利要求5所述的系统,其中所述逻辑单元的所述所确定存储分类是所述冷数据分类,并且其中所述目标物理存储器块包括被指定为存储被分类为冷数据的数据的冷数据物理存储器块。
7.根据权利要求6所述的系统,其中将所述逻辑单元中的每一个存储在针对所述逻辑单元所标识的所述目标物理存储器块处包括将所述逻辑单元的地址存储在一组冷数据逻辑单元地址中,其中当所述组冷数据逻辑单元满足阈值大小条件时,将由所述组冷数据逻辑单元地址中的地址所标识的每一逻辑单元移动到所述冷数据物理存储器块。
8.根据权利要求7所述的系统,其中在后台闲置时间期间,后台任务执行所述将所述逻辑单元的所述地址存储在所述组冷数据逻辑单元地址中。
9.根据权利要求1所述的系统,其中每一逻辑单元的所述年限特性包括基于已将所述逻辑单元从所述存储器装置的第一物理存储器块移动到所述存储器装置的第二物理存储器块的次数的重定位计数,其中当所述逻辑单元在所述存储器装置中被覆盖写入时,所述重定位计数被复位为初始值,且
其中所述逻辑单元的所述所确定存储分类是基于所述重定位计数是否满足阈值重定位条件。
10.根据权利要求9所述的系统,其中当所述重定位计数满足阈值重定位计数时,所述逻辑单元的所述所确定存储分类是所述冷数据分类。
11.根据权利要求10所述的系统,其中当所述重定位计数不满足所述阈值重定位计数时,所述逻辑单元的所述所确定存储分类是所述热数据分类。
12.根据权利要求1所述的系统,其中所述标识至少一个源物理存储器块是响应于无用信息收集事件由无用信息收集进程执行。
13.根据权利要求1所述的系统,其中所述逻辑单元对应于所述物理存储器块的页。
14.一种方法,其包括:
标识存储在存储器装置中的至少一个源物理存储器块,其中所述源物理存储器块包括至少一个逻辑单元;
确定所述逻辑单元的年限特性是否满足阈值准则;
基于所述逻辑单元的所述年限特性是否满足所述阈值准则,确定所述逻辑单元的存储分类,其中所述存储分类包括热数据分类或冷数据分类中的一个;
基于为所述逻辑单元所确定的所述存储分类标识目标物理存储器块;及
将所述逻辑单元存储在所述所标识的目标物理存储器块中。
15.根据权利要求14所述的方法,其中所述逻辑单元的所述年限特性包括基于所述逻辑单元的所述数据已被写入到所述存储器装置的至少一个物理块的次数的版本计数,且其中所述阈值准则包括阈值版本计数。
16.根据权利要求15所述的方法,其中当所述逻辑单元的所述版本计数与当前版本值之间的差满足阈值版本差时,所述逻辑单元的所述所确定存储分类是所述热数据分类。
17.一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时致使所述处理装置执行包括以下的操作:
标识存储在存储器装置中的至少一个源物理存储器块,其中所述源物理存储器块包括至少一个逻辑单元;
基于与所述逻辑单元相关联的一或多个与年限相关的计数器,确定所述逻辑单元将被存储在所指定的冷数据物理存储器块中;及
将所述逻辑单元存储在所述冷数据物理存储器块中。
18.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述年限相关的计数器包括基于所述逻辑单元的所述数据已被写入到所述存储器装置的至少一个物理块的次数的版本计数,且
其中当所述版本计数满足阈值版本计数时,所述逻辑单元将被存储在所述所指定的冷数据物理存储器块中。
19.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述年限相关计数器包括基于已将所述逻辑单元从所述存储器装置的第一物理存储器块移动到所述存储器装置的第二物理存储器块的次数的重定位计数,其中当所述逻辑单元在所述存储器装置中被覆盖写入时,所述重定位计数被复位为初始值,且
其中当所述重定位计数满足阈值重定位计数时,所述逻辑单元将被存储在所述所指定的冷数据物理存储器块中。
20.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述处理装置将执行进一步包括以下的操作:
基于与所述逻辑单元相关联的所述一或多个与年限相关的计数器,确定所述逻辑单元将被存储在所指定的热数据物理存储器块中;及
将所述逻辑单元存储在所述所指定的热数据物理存储器块中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063119527P | 2020-11-30 | 2020-11-30 | |
US63/119,527 | 2020-11-30 | ||
US17/399,997 US20220171713A1 (en) | 2020-11-30 | 2021-08-11 | Temperature-aware data management in memory sub-systems |
US17/399,997 | 2021-08-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114579044A true CN114579044A (zh) | 2022-06-03 |
Family
ID=81752469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111432869.XA Withdrawn CN114579044A (zh) | 2020-11-30 | 2021-11-29 | 存储器子系统中的温度感知数据管理 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220171713A1 (zh) |
CN (1) | CN114579044A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11550711B2 (en) * | 2019-09-09 | 2023-01-10 | Micron Technology, Inc. | Dynamically adjusted garbage collection workload |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6622199B1 (en) * | 1999-07-02 | 2003-09-16 | Qualcomm Incorporated | Method for minimizing data relocation overhead in flash based file systems |
US20080147998A1 (en) * | 2006-12-18 | 2008-06-19 | Samsung Electronics Co., Ltd. | Method and apparatus for detecting static data area, wear-leveling, and merging data units in nonvolatile data storage device |
US20120297122A1 (en) * | 2011-05-17 | 2012-11-22 | Sergey Anatolievich Gorobets | Non-Volatile Memory and Method Having Block Management with Hot/Cold Data Sorting |
US20160335179A1 (en) * | 2015-05-11 | 2016-11-17 | Sk Hynix Memory Solutions Inc. | Data separation by delaying hot block garbage collection |
US20170139826A1 (en) * | 2015-11-17 | 2017-05-18 | Kabushiki Kaisha Toshiba | Memory system, memory control device, and memory control method |
CN106897026A (zh) * | 2016-10-07 | 2017-06-27 | 威盛电子股份有限公司 | 非易失性存储器装置及其地址分类方法 |
US20180088811A1 (en) * | 2016-09-23 | 2018-03-29 | Toshiba Memory Corporation | Storage device that compresses data received from a host before writing therein |
US20190179698A1 (en) * | 2017-12-08 | 2019-06-13 | Macronix International Co., Ltd. | Managing Data Arrangement in a Super Block |
CN110716883A (zh) * | 2018-07-13 | 2020-01-21 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111886591A (zh) * | 2019-09-12 | 2020-11-03 | 创新先进技术有限公司 | 日志结构存储系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576293B (zh) * | 2009-09-08 | 2015-08-26 | 国际商业机器公司 | 固态存储设备和分层存储系统中的数据管理 |
US8788778B1 (en) * | 2012-06-04 | 2014-07-22 | Western Digital Technologies, Inc. | Garbage collection based on the inactivity level of stored data |
-
2021
- 2021-08-11 US US17/399,997 patent/US20220171713A1/en not_active Abandoned
- 2021-11-29 CN CN202111432869.XA patent/CN114579044A/zh not_active Withdrawn
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6622199B1 (en) * | 1999-07-02 | 2003-09-16 | Qualcomm Incorporated | Method for minimizing data relocation overhead in flash based file systems |
US20080147998A1 (en) * | 2006-12-18 | 2008-06-19 | Samsung Electronics Co., Ltd. | Method and apparatus for detecting static data area, wear-leveling, and merging data units in nonvolatile data storage device |
US20120297122A1 (en) * | 2011-05-17 | 2012-11-22 | Sergey Anatolievich Gorobets | Non-Volatile Memory and Method Having Block Management with Hot/Cold Data Sorting |
US20160335179A1 (en) * | 2015-05-11 | 2016-11-17 | Sk Hynix Memory Solutions Inc. | Data separation by delaying hot block garbage collection |
US20170139826A1 (en) * | 2015-11-17 | 2017-05-18 | Kabushiki Kaisha Toshiba | Memory system, memory control device, and memory control method |
US20180088811A1 (en) * | 2016-09-23 | 2018-03-29 | Toshiba Memory Corporation | Storage device that compresses data received from a host before writing therein |
CN106897026A (zh) * | 2016-10-07 | 2017-06-27 | 威盛电子股份有限公司 | 非易失性存储器装置及其地址分类方法 |
US20190179698A1 (en) * | 2017-12-08 | 2019-06-13 | Macronix International Co., Ltd. | Managing Data Arrangement in a Super Block |
CN110716883A (zh) * | 2018-07-13 | 2020-01-21 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN111886591A (zh) * | 2019-09-12 | 2020-11-03 | 创新先进技术有限公司 | 日志结构存储系统 |
Also Published As
Publication number | Publication date |
---|---|
US20220171713A1 (en) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11782847B2 (en) | Performing a media management operation based on a sequence identifier for a block | |
US11609848B2 (en) | Media management based on data access metrics | |
US20220398045A1 (en) | Addressing zone namespace and non-zoned memory based on data characteristics | |
CN115080458A (zh) | 在存储器子系统中高速缓存逻辑到物理映射信息 | |
CN113093990B (zh) | 存储器子系统处的数据块切换 | |
US20240028239A1 (en) | Zone block staging component for a memory sub-system with zoned namespace | |
CN113849424A (zh) | 依序编程的存储器子系统中的直接高速缓存命中和传递 | |
US20220171713A1 (en) | Temperature-aware data management in memory sub-systems | |
WO2023201462A1 (en) | Namespace level valid translation unit count | |
US20230195350A1 (en) | Resequencing data programmed to multiple level memory cells at a memory sub-system | |
CN112805692A (zh) | 混合式双列直插式存储器模块中的高速缓存操作 | |
CN113961142B (zh) | 包含各种时延和容量的存储器装置的存储器子系统 | |
US11797198B2 (en) | Memory instruction for memory tiers | |
CN115639951A (zh) | 在存储器子系统中实施自动速率控制 | |
WO2022027578A1 (en) | Memory overlay using host memory buffer | |
CN113918479B (zh) | 用于并行独立线程的低位密度存储器高速缓存的方法及系统 | |
US11829646B2 (en) | Memory device performance based on storage traffic pattern detection | |
US11934685B2 (en) | Performing memory access operations based on quad-level cell to single-level cell mapping table | |
US11494111B2 (en) | Data operation based on valid memory unit count | |
US20240160349A1 (en) | Virtual management unit scheme for two-pass programming in a memory sub-system | |
US20240103752A1 (en) | Managing trim commands in a memory sub-system | |
CN115437555A (zh) | 基于取数据时间和有效性的存储器管理 | |
CN114077404A (zh) | 使存储器单元与主机系统解除关联 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220603 |