CN109923530A - 混合式存储器中的数据重新定位 - Google Patents

混合式存储器中的数据重新定位 Download PDF

Info

Publication number
CN109923530A
CN109923530A CN201780068955.2A CN201780068955A CN109923530A CN 109923530 A CN109923530 A CN 109923530A CN 201780068955 A CN201780068955 A CN 201780068955A CN 109923530 A CN109923530 A CN 109923530A
Authority
CN
China
Prior art keywords
memory
data
subset
data subset
stored
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.)
Pending
Application number
CN201780068955.2A
Other languages
English (en)
Inventor
埃马努埃莱·孔法洛涅里
马可·达拉波拉
保罗·阿马托
达尼洛·卡拉乔
达尼埃莱·巴卢智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN109923530A publication Critical patent/CN109923530A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

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)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

本发明包含用于混合式存储器中的数据重新定位的设备、方法及系统。若干个实施例包含:存储器,其中所述存储器包含第一类型的存储器及第二类型的存储器;及控制器,其经配置以至少部分地基于在对所述存储器执行的编程操作期间对应于存储在所述第一类型的存储器中的数据子集的地址被存取的频率而识别存储在所述第一类型的存储器中的所述数据子集以重新定位到所述第二类型的存储器。

Description

混合式存储器中的数据重新定位
技术领域
本发明一般来说涉及半导体存储器及方法,且更明确地说,涉及混合式存储器中的数据重新定位。
背景技术
通常提供存储器装置作为计算机或其它电子装置中的内部半导体集成电路及/或外部可移除式装置。存在包含易失性及非易失性存储器的许多不同类型的存储器。易失性存储器可需要电力来维持其数据,且可包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM),以及其它存储器。非易失性存储器可通过在未被供电时保留所存储数据而提供持久数据,且可包含NAND快闪存储器、NOR快闪存储器、只读存储器(ROM)及电阻可变存储器(例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁性随机存取存储器(MRAM)),以及其它存储器。
可将存储器装置组合在一起以形成固态驱动器(SSD)、嵌入式多媒体卡(e.MMC)及/或通用快闪存储(UFS)装置。SSD、e.MMC及/或UFS装置可包含非易失性存储器(例如,NAND快闪存储器及/或NOR快闪存储器),及/或可包含易失性存储器(例如,DRAM及/或SDRAM)以及各种其它类型的非易失性及易失性存储器。非易失性存储器可用于广泛范围的电子应用中,例如个人计算机、便携式存储棒、数码相机、蜂窝式电话、例如MP3播放器的便携式音乐播放器、电影播放器以及其它电子装置。
举例来说,快闪存储器装置可包含将数据存储在电荷存储结构(例如浮动栅极)中的存储器单元。快闪存储器装置通常使用允许高存储器密度、高可靠性及低电力消耗的单晶体管存储器单元。电阻可变存储器装置可包含可基于存储元件(例如,具有可变电阻的电阻式存储器元件)的电阻状态而存储数据的电阻式存储器单元。
可将存储器单元布置成阵列,且可将阵列架构中的存储器单元编程到目标(例如,期望)状态。举例来说,可将电荷置于快闪存储器单元的电荷存储架构(例如,浮动栅极)上或从所述电荷存储架构移除以将所述单元编程到特定数据状态。单元的电荷存储结构上的所存储电荷可指示所述单元的阈值电压(Vt)。快闪存储器单元的状态可通过感测单元的电荷存储结构上的所存储电荷(例如,Vt)而确定。
作为额外实例,电阻式存储器单元可经编程以通过使电阻式存储器元件的电阻电平变化而存储对应于目标数据状态的数据。可通过将电场源或能源(例如正电脉冲或负电脉冲(例如,正电压或电流脉冲或者负电压或电流脉冲))施加到单元(例如,施加到单元的电阻式存储器元件)达特定持续时间而将电阻式存储器单元编程到目标数据状态(例如,对应于特定电阻状态)。可通过感测响应于所施加询问电压而穿过单元的电流来确定电阻式存储器单元的状态。基于单元的电阻电平而变化的所感测电流可指示单元的状态。
可将单电平存储器单元(SLC)编程到可由二进制单位1或0表示的两种不同数据状态中的一目标状态。可将一些快闪存储器单元及电阻式存储器单元编程到两种以上数据状态(例如,1111、0111、0011、1011、1001、0001、0101、1101、1100、0100、0000、1000、1010、0010、0110及1110)中的一目标状态。这些单元可称为多状态存储器单元、多单位单元或多电平单元(MLC)。MLC可在不增加存储器单元的数目的情况下提供较高密度存储器,这是因为每一单元可表示一个以上数字(例如,一个以上位)。
附图说明
图1图解说明根据本发明的若干个实施例的具有若干个物理块的存储器阵列的一部分的图式。
图2是根据本发明的若干个实施例的包含主机及呈存储器装置形式的设备的计算系统的框图。
图3图解说明根据本发明的若干个实施例的存储器装置上的控制器。
图4图解说明根据本发明的若干个实施例的存储在存储器中且由表管理器管理的表中的条目的实例。
图5图解说明根据本发明的若干个实施例的用于识别数据以重新定位于存储器中的过程的概念性实例。
图6A到6B图解说明根据本发明的若干个实施例的用于操作存储器的方法。
图7图解说明根据本发明的若干个实施例的用于操作存储器的方法。
具体实施方式
本发明包含用于混合式存储器中的数据重新定位的设备、方法及系统。若干个实施例包含:存储器,其中所述存储器包含第一类型的存储器及第二类型的存储器;及控制器,其经配置以至少部分地基于在对所述存储器执行的编程操作期间对应于存储在所述第一类型的存储器中的数据子集的地址被存取的频率而识别存储在所述第一类型的存储器中的所述数据子集以重新定位到所述第二类型的存储器。
包含用作辅助存储装置(例如,除例如DRAM或SDRAM的主存储器之外,及/或独立于所述主存储器)的两种不同类型的存储器的存储器(例如本文中所描述的存储器)可称为混合式存储器。两种类型的存储器中的一者可具有比另一者更快的存取时间,且将少量数据的编程重新引导到具有较快存取时间的存储器可增加混合式存储器的性能(例如,增加速度、增加可靠性及/或减小功率消耗)。此外,将少量数据及/或被频繁地感测的数据从具有较慢存取时间的存储器重新定位到具有较快存取时间的存储器可增加混合式存储器的性能。
然而,以此方式为有效地增加混合式存储器的性能,在数据可被编程到及/或被重新定位到的具有较快存取时间的存储器中存在可用的自由空间可为有益的(例如,如果具有较快存取时间的存储器是满的,那么额外数据便不可被编程及/或被重新定位到所述存储器)。本发明的实施例可有效地识别正存储在具有较快存取时间的存储器中的数据(其可重新定位到具有较慢存取时间的存储器),并将所识别数据重新定位到具有较慢存取时间的存储器,以确保自由空间在具有较快存取时间的存储器中持续保持可用及维持混合式存储器的高性能。此外,本发明的实施例可有效地识别正存储在具有较慢存取时间的存储器中的数据(其可重新定位到具有较快存取时间的存储器),并将所识别数据重新定位到具有较快存取时间的存储器以增加混合式存储器的性能。本发明的实施例可协同地执行这些类型的数据的识别及重新定位两者,而无需使用可增加功率消耗且减小混合式存储器的性能的数据回路。
如本文中所使用,“若干个”某物可指一或多个此类事物。举例来说,若干个存储器单元可指一或多个存储器单元。另外,如本文中所使用,标号“R”、“B”、“S”及“N”(尤其相对于图式中的元件符号)指示本发明的若干个实施例可包含如此指定的若干个特定特征。
本文中的各图遵循其中第一个数字或前几个数字对应于图式的图编号且其余数字识别图式中的元件或组件的编号惯例。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,206在图2中可指元件“06”,且在图3中类似元件可指代为306。
图1图解说明根据本发明的若干个实施例的具有若干个物理块的存储器阵列101的一部分的图式。存储器阵列101可为(举例来说)NAND快闪存储器阵列。作为额外实例,存储器阵列101可为存储类存储器(SCM)阵列,例如3D XPoint存储器阵列、铁电RAM(FRAM)阵列或电阻可变存储器阵列(例如PCRAM、RRAM或自旋扭矩转移(STT)阵列),以及其它阵列。存储器阵列101可为混合式存储器的一部分,如本文中将进一步(例如,结合图2)描述。此外,尽管图1中未展示,但存储器阵列101可连同与其操作相关联的各种外围电路一起定位于特定半导体裸片上。
如图1中所展示,存储器阵列101具有若干个存储器单元物理块107-0(块0)、107-1(块1)、…、107-B(块B)。存储器单元可为单电平单元及/或多电平单元,例如双电平单元、三电平单元(TLC)或四电平单元(QLC)。作为实例,存储器阵列101中的物理块的数目可为128个块、512个块或1,024个块,但实施例并不限于2的特定幂或存储器阵列101中的任何特定数目个物理块。
若干个存储器单元物理块(例如,块107-0、107-1、…、107-B)可包含于一存储器单元平面中,且若干个存储器单元平面可包含于一裸片上。举例来说,在图1中所展示的实例中,每一物理块107-0、107-1、…、107-B可为单个裸片的一部分。即,图1中所图解说明的存储器阵列101的一部分可为一存储器单元裸片。
如图1中所展示,每一物理块107-0、107-1、…、107-B包含耦合到存取线(例如,字线)的若干个存储器单元物理行(例如,103-0、103-1、…、103-R)。每一物理块中的行(例如,字线)的数目可为32个,但实施例并不限于每物理块特定数目个行103-0、103-1、…、103-R。此外,尽管图1中未展示,但存储器单元可耦合到感测线(例如,数据线及/或数字线)。
如所属领域的技术人员将了解,每一行103-0、103-1、…、103-R可包含若干个存储器单元页(例如,物理页)。物理页是指编程及/或感测单位(例如,作为功能群组一起被编程及/或被感测的若干个存储器单元)。在图1中所展示的实施例中,每一行103-0、103-1、…、103-R包括一个存储器单元物理页。然而,本发明的实例不限于此。举例来说,在若干个实施例中,每一行可包括多个存储器单元物理页(例如,耦合到偶数编号位线的一或多个存储器单元偶数页,及耦合到奇数编号位线的一或多个存储器单元奇数页)。另外,对于包含多电平单元的实施例,存储器单元物理页可存储多个数据页(例如,逻辑页)(例如,上部数据页及下部数据页,其中物理页中的每一单元存储朝向上部数据页的一或多个位及朝向下部数据页的一或多个位)。
在本发明的若干个实施例中,且如图1中所展示,存储器单元页可包括若干个物理扇区105-0、105-1、…、105-S(例如,存储器单元的子集)。单元的每一物理扇区105-0、105-1、…、105-S可存储若干个数据逻辑扇区(例如,数据字)。另外,每一数据逻辑扇区可对应于特定数据页的一部分。作为实例,存储在特定物理扇区中的第一数据逻辑扇区可对应于对应于第一数据页的逻辑扇区,且存储在特定物理扇区中的第二数据逻辑扇区可对应于第二数据页。每一物理扇区105-0、105-1、…、105-S可存储系统及/或用户数据,及/或可包含额外开销数据,例如错误校正码(ECC)数据、逻辑块地址(LBA)数据及循环错误数据。
逻辑块寻址是可由用于识别数据逻辑扇区的主机使用的方案。举例来说,每一逻辑扇区可对应于唯一逻辑块地址(LBA)。另外,LBA还可对应于(例如,动态地映射到)物理地址。数据逻辑扇区可为若干个数据字节(例如,256个字节、512个字节、1,024个字节或4,096个字节)。然而,实施例并不限于这些实例。
应注意,物理块107-0、107-1、…、107-B、列103-0、103-1、…、103-R、扇区105-0、105-1、…、105-S及页的其它配置是可能的。举例来说,物理块107-0、107-1、…、107-B的行103-0、103-1、…、103-R可各自存储对应于单个逻辑扇区的数据,所述单个逻辑扇区可包含(举例来说)多于或少于512个数据字节。
图2是根据本发明的若干个实施例的包含主机202及呈存储器装置206形式的设备的计算系统200的框图。如本文中所使用,“设备”可指但不限于多种结构中的任一者或结构的组合,举例来说,例如一或若干电路、一或若干裸片、一或若干模块、一或若干装置或者一或若干系统。此外,在若干个实施例中,计算系统200可包含类似于存储器装置206的若干个存储器装置。
在图2中所图解说明的实施例中,存储器装置206可包含第一类型的存储器(例如,第一存储器阵列210)及第二类型的存储器(例如,若干个第二存储器阵列212-1、…、212-N)。存储器装置206可为混合式存储器装置,其中存储器装置206包含第一存储器阵列210,所述第一存储器阵列为与若干个第二存储器阵列212-1、…、212-N不同类型的存储器。第一存储器阵列210可为存储类存储器(SCM),所述存储类存储器可为非易失性存储器,由于所述非易失性存储器具有比若干个第二存储器阵列212-1、…、212-N更快的存取时间,因此所述非易失性存储器充当存储器装置206的存储器。举例来说,第一存储器阵列210可为3DXPoint存储器、FRAM或电阻可变存储器(例如PCRAM、RRAM或STT),以及其它存储器。若干个第二存储器阵列212-1、…、212-N可为NAND快闪存储器以及其它类型的存储器。
以类似于先前结合图1所描述的存储器阵列101的方式,存储器阵列210及存储器阵列212-1、…、212-N可各自具有若干个存储器单元物理块。此外,存储器阵列210及存储器阵列212-1、…、212-N可包含(例如,存储)若干个数据子集。每一相应数据子集可包含(例如,由以下各项构成)系统及/或用户(例如,主机)数据、元数据及ECC数据(例如,奇偶校验位)。这些数据子集在本文中可称为大管理单位(LMU),且可包含(举例来说)4kB的主机数据。
此外,存储器阵列210及/或存储器阵列212-1、…、212-N可包含(例如,存储)包含若干个条目的数据表。表中的每一相应条目可对应于若干个数据子集中的不同者。举例来说,表中的每一相应条目可包含指示其相应数据子集是否存储在存储器阵列210及/或存储器阵列212-1、…、212-N中的数据,及指示其相应数据子集在所述阵列中的位置的数据,如本文中将进一步描述(例如,结合图4)。每一相应表条目还可包含指示在对存储器阵列210及212-1、…、212-N执行的编程操作期间对应于相应表条目的相应数据子集的地址被存取的频率的数据,如本文中将进一步描述(例如,结合图4)。这些条目在本文中可称为小管理单位(SMU),且可包含(举例来说)64B的数据。在若干个实施例中,表条目的大小可小于SMU的大小。在此些实施例中,每一相应SMU可包含多个表条目。
尽管图2中所图解说明的实施例包含第一类型的存储器的一个存储器阵列,但本发明的实施例不限于此。举例来说,在若干个实施例中,存储器装置206可包含若干个SCM阵列。然而,存储器装置206可包含比第二类型的存储器少的第一类型的存储器。举例来说,存储器阵列210可存储比存储器阵列212-1、…、212-N中所存储的数据少的数据。
如图2中所图解说明,主机202可经由接口204耦合到存储器装置206。主机202与存储器装置206可在接口204上进行通信(例如,发送命令及/或数据)。主机202可为膝上型计算机、个人计算机、数码相机、数字记录与回放装置、移动电话、PDA、存储器读卡器、接口集线器以及其它主机系统,且可包含存储器存取装置(例如,处理器)。所属领域的一般技术人员将了解,“处理器”可打算为一或多个处理器,例如并行处理系统、若干协处理器等。
接口204可呈标准化物理接口的形式。举例来说,当存储器系统206用于计算系统200中的信息存储时,接口204可为串行高级技术附件(SATA)物理接口、外围组件互连高速(PCIe)物理接口、通用串行总线(USB)物理接口或小型计算机系统接口(SCSI)以及其它物理连接器及/或接口。然而,一般来说,接口204可提供接口以用于在存储器装置206与具有用于接口204的兼容接受器的主机(例如,主机202)之间传递控制、地址、信息(例如,数据)及其它信号。
存储器装置206包含控制器208以与主机202且与第一存储器阵列210及若干个第二存储器阵列212-1、…、212-N通信。控制器208可发送用以对第一存储器阵列210及若干个第二存储器阵列212-1、…、212-N执行操作的命令。控制器208可与第一存储器阵列210及若干个第二存储器阵列212-1、…、212-N通信以感测(例如,读取)、编程(例如,写入)、移动及/或擦除数据,以及其它操作。
控制器208可与存储器210及212-1、…、212-N包含于同一物理装置(例如,同一裸片)上。另一选择为,控制器208可包含于单独物理装置上,所述物理装置通信地耦合到包含存储器210及212-1、…、212-N的物理装置。在若干个实施例中,控制器208的组件可作为分布式控制器跨越多个物理装置而散布(例如,一些组件与存储器处于同一裸片上,且一些组件处于不同裸片、模块或电路板上)。
主机202可包含主机控制器以与存储器装置206通信。主机控制器可经由接口204将命令发送到存储器装置206。主机控制器可与存储器装置206及/或存储器装置206上的控制器208通信以读取、写入及/或擦除数据,以及其它操作。
存储器装置206上的控制器208及/或主机202上的主机控制器可包含控制电路及/或逻辑(例如,硬件及固件)。在若干个实施例中,存储器装置206上的控制器208及/或主机202上的主机控制器可为耦合到包含物理接口的印刷电路板的专用集成电路(ASIC)。此外,存储器装置206及/或主机202可包含易失性及/或非易失性存储器的缓冲区以及寄存器。
在若干个实施例中,控制器208可至少部分地基于在对存储器阵列210及212-1、…、212-N执行(例如,作为主机写入命令的结果而执行)的编程操作期间对应于存储在第一类型的存储器中(例如,存储器阵列210中)的数据子集(例如,LMU)的地址被存取的频率(例如,LBA识别数据子集的频率)而识别存储在第一类型的存储器中的数据子集以重新定位(例如,迁移)到第二类型的存储器(例如,存储器阵列212-1、…、212-N),并将所识别子集从第一类型的存储器重新定位到第二类型的存储器。举例来说,控制器208可从存储在第一类型的存储器中的若干个数据子集当中识别在对存储器阵列210及212-1、…、212-N执行的编程操作期间最不频繁地被存取的数据子集,并将所述数据子集重新定位到第二类型的存储器。所述识别及重新定位可使用存储在存储器阵列210中的表中的数据来执行,且将在本文中进一步描述。
此外,在若干个实施例中,控制器208可至少部分地基于在对存储在第二类型的存储器中的数据子集执行的感测操作期间所感测的数据量(例如,主机读取命令所请求的数据量)及/或在对存储器阵列210及212-1、…、212-N执行的感测操作期间对应于存储在第二类型的存储器中的数据子集的地址被存取的频率而识别存储在第二类型的存储器中的数据子集以重新定位到第一类型的存储器,并将所识别子集从第二类型的存储器重新定位到第一类型的存储器。举例来说,控制器208可确定在对存储在第二类型的存储器中的数据子集执行的感测操作期间所感测的数据量是否满足或超过特定阈值,且在确定所述数据量不满足或超过(例如,小于)特定阈值后即刻将所述数据子集重新定位到第一类型的存储器。本文中将进一步描述所述识别及重新定位。
图2中所图解说明的实施例可包含未图解说明以便不使本发明的实施例模糊的额外电路、逻辑及/或组件。举例来说,存储器装置206可包含地址电路以锁存通过I/O电路经由I/O连接器而提供的地址信号。地址信号可由行解码器及列解码器接收并解码以存取存储器阵列210及212-1、…、212-N。此外,存储器装置206可包含独立于存储器阵列210-1及212-1、…、212-N及/或除存储器阵列210-1及212-1、…、212-N之外的主存储器,例如DRAM或SDRAM。
图3图解说明根据本发明的若干个实施例的存储器装置上的控制器308。控制器308可为(举例来说)先前结合图2所描述的存储器装置206上的控制器208。举例来说,控制器308可与主机(例如,图2中的主机202)及/或存储器阵列(例如,图2中的第一存储器阵列210及/或若干个第二存储器阵列212-1、…、212-N)通信以读取、写入、移动及/或擦除去往及/或来自主机及/或存储器阵列的数据。
如图3中所展示,控制器308可包含前端管理器模块320、数据与媒体管理器模块330及后端管理器模块340。前端管理器320可从主机接收命令且解译那些命令。前端管理器320可执行对与命令相关联的数据逻辑地址的翻译。如本文中所使用,“模块”可包含可用于执行特定功能的硬件、固件、软件及/或逻辑。
数据与媒体管理器330可进一步处理从主机接收的命令。数据与媒体管理器330可包含数据管理器调度程序模块332、媒体翻译层(MTL)服务模块334及MTL管理器模块336。数据管理器调度程序332可确定将执行从主机接收的命令中的每一者的时间。MTL服务334可包含若干组应用程序编程接口(API)指令以为MTL管理器336提供功能性。举例来说,MTL服务334可包含API指令以执行逻辑地址到物理地址的翻译、从存储器阵列读取数据及/或将数据写入到存储器阵列,以及其它服务。
如图3中所展示,MTL管理器336可包含表管理器模块338-1、读取管理器模块338-2、加载管理器模块338-3、写入管理器模块338-4、刷新管理器模块338-5及清理管理器模块338-6以对存储器阵列执行操作。表管理器338-1可提供且管理可用于定位存储在存储器阵列中的数据(例如,数据子集)及识别在编程操作期间对应于存储在存储器阵列中的数据(例如,数据子集)的地址(例如,LBA)被存取的频率的信息(例如,数据)。此信息可存储在各类型的存储器阵列中的一者(例如,阵列210)中的表中。举例来说,表可包含若干条目,其中每一不同条目包含指示相应数据子集在存储器阵列中的位置的数据及指示在编程操作期间对应于所述相应子集的地址被存取的频率的数据。
举例来说,表管理器338-1可通过产生及存储用于第一类型的存储器(例如,阵列210)中的数据的逻辑转物理表而提供用于存储在存储器装置206的物理存储器阵列中的逻辑块的逻辑地址到物理地址映射。逻辑转物理表可在逻辑地址到物理地址映射中包含指示数据是否存储在第一类型的存储器(例如,阵列210)及/或第二类型的存储器(例如,阵列212-1、…、212-N)中的一或若干位。此些位在本文中可称为驻留数据或驻留位,且将在本文中进一步描述(例如,结合图4)。表管理器338-1还可产生并存储逻辑转物理指针以将数据定位于存储器阵列中。
此外,表管理器338-1可通过使用计数器在表中产生并存储指示数据在对存储器阵列执行的编程操作期间是否被存取及/或被存取的频率的一或若干位来提供存储在存储器阵列中的数据的频率信息。此些位在本文中可称为热度数据或热度位,且将在本文中进一步描述(例如,结合图4)。这些热度位还可在存储器的操作期间更新。举例来说,数据子集的热度位可在存储器的操作期间周期性地递减及/或可在所述子集于编程操作期间被存取后即刻递增,如本文中将进一步描述(例如,结合图5)。
此外,表管理器338-1可将数据子集(例如,每一相应子集的表条目)组织于第一类型的存储器中的若干个先进先出(FIFO)缓冲区中,其中每一相应缓冲区对应于不同热度数据。缓冲区可为(举例来说)环形缓冲区。数据子集在特定缓冲区中的位置及/或数据子集是否在缓冲区中可对应于在编程操作期间对应于所述数据子集的地址被存取的频率,所述频率可对应于链接到所述地址的数据的年限。举例来说,特定缓冲区中的最旧数据子集及/或已从所述缓冲区移除(例如,及在缓冲区中被另一子集替换)的数据子集可为对应于所述缓冲区的热度数据的最不频繁地被存取的数据子集。此些缓冲区将在本文中进一步描述(例如,结合图5)。
读取管理器338-2可通过将数据定位于存储器阵列中及致使将与感测命令相关联的数据传送到主机来执行感测(例如,读取)命令。举例来说,响应于从主机接收感测(例如,读取)命令,读取管理器338-2可起始感测操作以感测与命令相关联的数据。读取管理器338-2可使用存储在由表管理器338-1管理的表中的驻留数据来确定在感测操作期间待感测的数据是存储在第一类型的存储器(例如,阵列210)中还是第二类型的存储器(例如,阵列212-1、…、212-N)中,且可接着感测来自适当位置的数据并将所感测数据传送到主机。所感测数据可包括存储在存储器阵列中的若干个数据子集中的一或多者的一部分或全部。
在读取管理器338-2对第二类型的存储器(例如,如果所感测数据存储在阵列212-1、…、212-N中)执行感测操作后,加载管理器338-3可至少部分地基于在感测操作期间所感测的数据量及/或在由读取管理器338-2执行的感测操作期间对应于存储在第二类型的存储器中的数据子集的地址被存取的频率而识别存储在第二类型的存储器中的一或若干数据子集(例如,LMU)以重新定位到第一类型的存储器(例如,阵列210)。举例来说,如果在由读取管理器338-2执行的感测操作期间所感测的数据存储在第二类型的存储器中,且如果存储在第一类型的存储器中的数据量不满足或超过预定义阈值,那么加载管理器338-2可确定在感测操作期间所感测的数据量是否满足或超过特定阈值及/或数据被感测的频率是否满足或超过特定阈值。如果所感测的数据量不满足或超过所述特定阈值,及/或如果数据被感测的频率满足或超过所述特定阈值,那么加载管理器338-2可识别包含所感测数据的数据子集作为重新定位到第一类型的存储器的子集。
在识别用以重新定位到第一类型的存储器的数据子集之后,加载管理器338-3可继续进行重新定位(例如,迁移)。举例来说,加载管理器338-3可指示写入管理器338-4来执行编程操作以将在由读取管理器338-2执行的感测操作期间所感测的数据编程到第一类型的存储器,且可指示表管理器338-1用所感测数据被编程到的在第一类型的存储器中的位置来更新表中的所识别子集的位置(例如,驻留)数据。此外,如果不存在存储在第二类型的存储器中的所感测数据的备份副本,那么加载管理器338-3可使存储在第二类型的存储器中的数据的原始版本无效。然而,如果存在备份副本,那么此无效可不发生。
在若干个实施例中,所识别子集可为存储在第一类型的存储器中的数据子集的顺序群组(例如,群集)的一部分。在此些实施例中,可将整个子集群组(例如,群组中的所有数据子集,并非仅所识别子集)重新定位到第二类型的存储器。子集群组的大小可(举例来说)等于存储在第一类型的存储器中的数据页的大小。
写入管理器338-4可通过将与编程命令相关联的数据路由到第一类型的存储器(例如,阵列210)及/或第二类型的存储器(例如,阵列212-1、…、212-N)而执行编程(例如,写入)命令。举例来说,响应于从主机接收编程命令,写入管理器338-4可起始编程操作以对与命令相关联的数据进行编程。
写入管理器338-4可基于若干准则来确定是否将数据编程到第一类型的存储器、第二类型的存储器或两者。若干准则可包含被编程的数据的大小、存储器阵列中的可用空间量及/或数据被写入到存储器阵列的频率,以及其它准则。举例来说,如果存储在第一类型的存储器中的数据量满足或超过预定义阈值,那么写入管理器338-4可将数据编程到第二类型的存储器。此外,如果存储在第一类型的存储器中的数据量不满足或超过预定义阈值,但待编程的数据量满足或超过预定义阈值,那么写入管理器338-4也可将数据编程到第二类型的存储器。然而,如果存储在第一类型的存储器中的数据量不满足或超过所述预定义阈值,且如果待编程的数据量不满足或超过所述预定义阈值,那么写入管理器338-4可将数据编程到第一类型的存储器。
在存储在第一类型的存储器(例如,阵列210)中的数据量满足或超过所述预定义阈值后,刷新管理器338-5可至少部分地基于在由写入管理器338-4执行的编程操作期间对应于存储在第一类型的存储器中的数据子集的地址被存取的频率而识别存储在第一类型的存储器中的一或若干数据子集(例如,LMU)以重新定位到第二类型的存储器(例如,阵列212-1、…、212-N)。举例来说,刷新管理器338-5可在满足预定义阈值后即刻或在满足预定义阈值后发生下一功率循环时执行此识别。
作为实例,刷新管理器338-5可从存储在第一类型的存储器中的若干个数据子集当中识别在由写入管理器338-4执行的编程操作期间最不频繁地被存取的数据子集作为重新定位到第二类型的存储器的子集。刷新管理器338-5可使用存储在由表管理器338-1管理的表中的频率(例如,热度)数据来识别最不频繁地被存取的子集。此外,刷新管理器338-5可基于哪些子集在由表管理器338-1管理的缓冲区中及/或基于子集在缓冲区中的位置来识别最不频繁地被存取的子集。举例来说,刷新管理器338-5可将已从缓冲区移除的子集识别为最不频繁地被存取的子集。作为额外实例,刷新管理器338-5可基于缓冲区中的每一相应子集的表条目的位置来识别最不频繁地被存取的子集。本文中将进一步(例如,结合图5)描述对最不频繁地被存取的子集的识别。
在识别用以重新定位到第二类型的存储器的数据子集后,刷新管理器338-5可继续进行重新定位(例如,迁移)。举例来说,如果所识别子集的频率数据指示对应于所述子集的地址在一(例如,一个)编程操作期间已被存取,那么刷新管理器338-5可指示读取管理器338-2来执行感测操作以感测存储在所识别子集中的数据,指示写入管理器338-4来执行编程操作以将此所感测数据编程到第二类型的存储器、指示表管理器338-1用所感测数据被编程到的在第二类型的存储器中的位置来更新表中的所识别子集的位置(例如,驻留)数据且使存储在第一类型的存储器中的所识别子集中的数据无效。如果所识别子集的频率数据指示对应于所述子集的地址在任何编程操作期间未被存取,且如果存在存储在所识别子集中的数据的备份副本,那么刷新管理器338-5可检索数据的备份副本被存储的在第二类型的存储器中的位置,指示表管理器338-1用此所检索位置来更新表中的所识别子集的位置(例如,驻留)数据且使存储在第一类型的存储器中的所识别子集中的数据无效。如果不存在存储在所识别子集中的数据的备份副本,那么刷新管理器338-5可以类似于结合所识别子集的指示在编程操作期间对应于所述子集的地址被存取的频率数据所描述的方式的方式重新定位所识别子集。
清理管理器338-6可将无效数据子集(例如,无效LMU)复位为预定义值,且相应地更新复位LMU的状态(例如,将状态从无效改变为自由)。举例来说,如果主机更新了先前写入第一类型的存储器中的数据,且表管理器338-1实施不在原地更新(out-of-placeupdate)策略,那么可将经更新数据写入第一类型的存储器中的新物理位置中,且可使先前数据无效。无效数据可随后被清理管理器338-6清理。
图4图解说明根据本发明的若干个实施例的存储在存储器中且由表管理器管理的表中的条目440的实例。举例来说,条目440可为存储在第一类型的存储器(例如,先前结合图2所描述的阵列210,举例来说,其可为SCM)中且由先前结合图3所描述的表管理器模块338-1管理的表中的条目(例如,SMU)。此外,条目440可对应于存储在第一类型的存储器及/或第二类型的存储器(例如,先前结合图2所描述的阵列212-1、…、212-N,举例来说,其可为NAND快闪存储器)中的数据子集(例如,LMU)。
如图4中所展示,条目440可包含逻辑块地址(LBA)442、频率(例如,热度)数据444、驻留数据446及物理块地址(PBA)448。驻留数据446可指示数据子集是否存储在第一类型的存储器(例如,SCM)、第二类型的存储器(例如,快闪存储器)或两者中,且LBA 442及PBA 448可用于在其中存储数据子集的阵列中定位数据子集。
图4中所展示的表447图解说明可包含于条目440中的不同可能驻留数据(例如,位)的实例。在表447中所图解说明的实例中,驻留数据446可包含可指示数据子集是否存储在SCM中的第一位(例如,存储类驻留位)及可指示数据子集是否存储在快闪存储器中的第二位(例如,快闪驻留位)。举例来说,如表447中所图解说明,存储类驻留位为0及快闪驻留位为1指示数据子集存储在(例如,LBA 442映射到PBA 448以将数据定位在)快闪存储器中,存储类驻留位为1及快闪驻留位为0指示数据子集存储在(例如,LBA 442映射到PBA 448以将数据定位在)SCM中,且存储类驻留位为1及快闪驻留位为1指示数据子集存储在(例如,LBA 442映射到PBA 448以将数据定位在)SCM及快闪存储器两者中。针对未经映射LBA,存储类驻留位及快闪驻留位两者皆可默认为0。
频率(例如,热度)数据444可指示在编程操作期间对应于(例如,LBA识别)数据子集的地址被存取的频率。图4中所展示的表445图解说明可包含于条目440中的不同可能频率数据(例如,位)的实例。在表445中所图解说明的实例中,频率数据444可包含两个位,所述两个位可用于指示对应于数据子集的地址可被存取的四种可能频率。举例来说,如表445中所图解说明,频率位00指示数据子集已从快闪存储器重新定位到SCM,但在被重新定位之后的任何编程操作期间尚未被存取。频率位01指示在编程操作期间数据子集已被存取一次,此可发生在将数据直接写入到SCM期间或发生在子集已从快闪存储器重新定位之后对所述子集执行的第一次写入期间。频率位10指示在编程操作期间数据子集已被存取两次,且频率位11指示在编程操作期间数据子集已被存取三次或更多次。
图5图解说明根据本发明的若干个实施例的用于识别数据以重新定位于存储器中的过程的概念性实例550。举例来说,图5图解说明用于识别存储在第一类型的存储器中的数据子集(例如,LMU)以重新定位到第二类型的存储器的实例性过程。第一类型的存储器可为(举例来说)先前结合图2所描述的阵列210(例如,SCM),第二类型的存储器可为(举例来说)结合图2所描述的阵列212-1、…、212-N(例如,NAND快闪存储器),且所述过程可由(举例来说)先前分别结合图2及3所描述的控制器208及/或308执行。图5中所图解说明的圆圈表示数据子集。举例来说,图5中所图解说明的每一圆圈表示存储在第一类型的存储器中的一不同数据子集。
如本文中先前所描述,数据子集中的每一者可具有与其相关联的频率(例如,热度)数据,所述频率数据存储在第一类型的存储器的表中、指示在对存储器执行的编程操作期间对应于所述相应数据子集的地址被存取的频率。在图5中所图解说明的实例中,数据子集中每一者与四个可能频率值(例如,00、01、10或11)中的一者相关联,所述频率值类似于先前结合图4所描述的频率数据(例如,位)(例如,与位00相关联的数据子集已从快闪存储器重新定位到SCM,但在被重新定位之后的任何编程操作期间尚未被存取,与位01相关联的数据子集在编程操作期间已存取一次,与位10相关联的数据子集在编程操作期间已存取两次,且与位11相关联的数据子集在编程操作期间已存取三次或更多次)。集合552-1包括与位00相关联的数据子集,集合552-2包括与位01相关联的数据子集,集合552-3包括与位10相关联的数据子集,且集合552-4包括与位11相关联的数据子集。
如本文中先前所描述,数据子集552可至少部分地组织(例如,通过先前结合图3所描述的表管理器338-1)于第一类型的存储器中的FIFO缓冲区558中。在图5中所图解说明的实例中,第一类型的存储器包含四个FIFO缓冲区(例如,558-1、558-2、558-3及558-4),其中与频率位00相关联的数据子集(例如,集合552-1中的数据子集)组织于缓冲区558-1中,与频率位01相关联的数据子集(例如,集合552-2中的数据子集)组织于缓冲区558-2中,与频率位10相关联的数据子集(例如,集合552-3中的数据子集)组织于缓冲区558-3中,且与频率位11相关联的数据子集(例如,集合552-4中的数据子集)组织于缓冲区558-4中。
可根据数据子集在编程操作期间被存取的最近时间而将数据子集组织于每一相应缓冲区558-1、558-2、558-3及558-4中。如此,子集在相应缓冲区558-1、558-2、558-3及558-4中的位置可提供对在编程操作期间对应于所述子集的地址被存取的频率的进一步指示。此外,每一相应缓冲区558可比相应数据子集552小,使得根据数据子集被存取的最近时间仅组织更近时间被存取的数据。
举例来说,在将数据子集从快闪存储器重新定位到SCM时,可将子集置于缓冲区558-1中的第一(例如,最新)位置中,如图5中所图解说明。当将另一数据子集从快闪存储器重新定位到SCM时,可将所述子集置于缓冲区558-1中的第一位置中,且可将第一子集移动到缓冲区558-1中的下一位置,如图5中所图解说明。此过程可随着将额外数据子集从快闪存储器重新定位到SCM而继续直到将缓冲区558-1填满为止(例如,直到已将数据子集移动到缓冲区558-1中的最后位置为止)。如此,子集在缓冲区558-1中的位置越旧,所述子集越不频繁地被存取。举例来说,在缓冲区558-1中的数据子集当中,在缓冲区558-1中的最后(例如,最旧)位置中的数据子集最不频繁地被存取。
当将数据子集从快闪存储器重新定位到SCM而缓冲区558-1被填满时,可通过将最后位置中的数据子集(例如,最旧数据子集)从缓冲区558-1移除且将缓冲区558-1中的每一其它相应子集移动到其在缓冲区558-1中的相应下一位置而在缓冲区558-1中为所述数据子集腾出空间,如图5中所图解说明。接着可将新重新定位的数据子集置于缓冲区558-1中的第一(例如,最新)位置中。此过程可(举例来说)使用环形缓冲区(例如,缓冲区558-1可为环形缓冲区)来实施。集合552-1的子集554-1包括已从集合552-1中的缓冲区558-1移除的数据子集,如图5中所图解说明。
如此,数据子集是否被从缓冲区558-1移除可提供对在编程操作期间对应于所述子集的地址被存取的频率的进一步指示。举例来说,数据子集是否被从缓冲区558-1移除可提供对数据的年限的指示,借此区分最近写入的数据与较旧数据。举例来说,已从缓冲区558-1移除的数据子集(例如,子集554-1中的数据子集)是在与频率位00相关联的数据子集(例如,集合552-1中的数据子集)当中最不频繁地被存取的数据子集。如此,可将已从缓冲区558-1移除的子集中的一或多者识别为用以从第一类型的存储器(例如,SCM)重新定位到第二类型的存储器(例如,快闪存储器)的数据子集。
举例来说,可将已从缓冲区558-1移除的子集群组(例如,群集)识别为用以从SCM重新定位到快闪存储器的数据子集。举例来说,在图5中所图解说明的实例中,已将子集554-1中的数据子集的群组556-1识别为用以重新定位的子集。此群组可为来自缓冲区558-1的顺序子集群组,所述顺序子集群组的大小等于存储在快闪存储器中的数据页的大小。
如图5中所展示,在针对集合552-1中的数据子集发生第一次编程操作存取后,可将数据子集的频率位从00更新(例如,递增)到01,且可将数据子集从集合552-1移动到集合552-2。举例来说,可将数据子集置于集合552-2中的缓冲区558-2中的第一(例如,最新)位置中,如图5中所图解说明。此外,可将其第一次编程操作存取作为到SCM的直接写入的一部分发生的数据子集置于集合552-2中的缓冲区558-2中的第一位置中,如图5中所图解说明。
当另一数据子集进行其第一次编程操作时,可将所述子集置于缓冲区558-2中的第一位置中,且可将第一子集移动到缓冲区558-2中的下一位置,如图5中所图解说明。此过程可随着额外数据子集进行其相应第一次编程操作而继续直到将缓冲区558-2填满为止。如此,以类似于针对缓冲区558-1所描述的方式的方式,子集在缓冲区558-2中的位置越旧,所述子集越不频繁地被存取。
在数据子集进行其第一次编程操作而缓冲区558-2被填满时,可通过将最后位置中的数据子集(例如,最旧数据子集)从缓冲区558-2移除且将缓冲区558-2中的每一其它相应子集移动到其在缓冲区558-2中的相应下一位置而在缓冲区558-2中为所述子集腾出空间,如图5中所图解说明。接着可将新编程的数据子集置于缓冲区558-2中的第一位置中。集合552-2的子集554-2包括已从集合552-2中的缓冲区558-2移除的数据子集,如图5中所图解说明。
如此,数据子集是否被从缓冲区558-2移除可提供对在编程操作期间对应于所述子集的地址被存取的频率的进一步指示。举例来说,已从缓冲区558-2移除的数据子集(例如,子集554-2中的数据子集)是与频率位01相关联的数据子集(例如,集合552-2中的数据子集)当中最不频繁地被存取的数据子集。如此,可将已从缓冲区558-2移除的子集中的一或多者识别为用以从第一类型的存储器(例如,SCM)重新定位到第二类型的存储器(例如,快闪存储器)的数据子集。
举例来说,可将已从缓冲区558-2移除的子集群组(例如,群集)识别为用以从SCM重新定位到快闪存储器的数据子集。举例来说,在图5中所图解说明的实例中,已将子集554-2中的数据子集的群组556-2识别为用以重新定位的子集(例如,连同子集554-1中的数据子集一起)。此群组可为来自缓冲区558-2的顺序子集群组,所述顺序子集群组的大小等于存储在快闪存储器中的数据页的大小。
如图5中所展示,在针对集合552-2中的数据子集发生第二次编程操作存取后,可将数据子集的频率位从01更新(例如,递增)到10,且可将数据子集从集合552-2移动到集合552-3。举例来说,可将数据子集置于集合552-3中的缓冲区558-3中的第一位置中,如图5中所图解说明。当另一数据子集进行其第二次编程操作时,可将所述子集置于缓冲区558-3中的第一位置,且可将第一子集移动到缓冲区558-3中的下一位置,且此过程可随着额外数据子集进行其相应第二次编程操作而继续直到将缓冲区558-3填满为止(以类似于针对缓冲区558-1及558-2所描述的方式的方式)。
在数据子集进行其第二次编程操作而缓冲区558-3被填满时,可通过将最后位置中的数据子集从缓冲区558-3移除且将缓冲区558-3中的每一其它相应子集移动到其在缓冲区558-3中的相应下一位置而在缓冲区558-3中为所述子集腾出空间,如图5中所图解说明。接着可将新编程的数据子集置于缓冲区558-3中的第一位置中。集合552-3的子集554-3包括已从集合552-3中的缓冲区558-3移除的数据子集,且可包含子集群组(例如,群集)556-3,如图5中所图解说明。
如图5中所展示,可将已从缓冲区558-3移除的数据子集(例如,子集554-3中的数据子集)的频率位从10周期性地更新(例如,递减)到01,且可将这些数据子集从集合552-3移动到集合552-2。举例来说,可将这些数据子集置于集合552-2的子集554-2中,如图5中所图解说明。周期性更新可(举例来说)在对存储器执行预定义数目个编程操作后即刻发生,及/或可以轮转调度次序对数据子集进行周期性更新。
如图5中所展示,在针对集合552-3中的数据子集发生第三次编程操作存取后,可将数据子集的频率位从10更新(例如,递增)到11,且可将数据子集从集合552-3移动到集合552-4。举例来说,可将数据子集置于集合552-4中的缓冲区558-4中的第一位置中,如图5中所图解说明。当另一数据子集进行其第三次编程操作时,可将所述子集置于缓冲区558-4中的第一位置中,且可将第一子集移动到缓冲区558-4中的下一位置,且此过程可随着额外数据子集进行其相应第三次编程操作而继续直到将缓冲区558-4填满为止(以类似于针对缓冲区558-1及558-2以及558-3所描述的方式的方式)。
在数据子集进行其第三次编程操作而缓冲区558-4被填满时,可通过将最后位置中的数据子集从缓冲区558-4移除且将缓冲区558-4中的每一其它相应子集移动到其在缓冲区558-4中的相应下一位置而在缓冲区558-4中为所述子集腾出空间,如图5中所图解说明。接着可将新编程的数据子集置于缓冲区558-4中的第一位置中。集合552-4的子集554-4包括已从集合552-4中的缓冲区558-4移除的数据子集,且可包含子集群组(例如,群集)556-4,如图5中所图解说明。
如图5中所展示,可将已从缓冲区558-4移除的数据子集(例如,子集554-4中的数据子集)的频率位从11周期性地更新(例如,递减)到10,且可将这些数据子集从集合552-4移动到集合552-3。举例来说,可将这些数据子集置于集合552-3的子集554-3中,如图5中所图解说明。周期性更新可(举例来说)与结合集合552-3所描述的周期性更新同时发生(例如,两者可作为同一周期性更新的部分发生)。然而,应注意,在图5中所图解说明的实例中,此周期性更新并不包含更新已从缓冲区558-2或558-1(例如,子集554-2或子集554-1中的数据子集)移除的数据子集的频率位。即,已从缓冲区558-2及缓冲区558-1移除的数据子集的频率位并不作为周期性更新的一部分而递减。
图6A到6B图解说明根据本发明的若干个实施例的用于操作存储器(例如,先前结合图2所描述的存储器210(例如,SCM)及212-1、…、212-N(例如,快闪存储器))的方法660。方法660可由(举例来说)先前分别结合图2及3所描述的控制器206及/或306来执行。
在框662处,方法660包含起始编程操作以将数据编程到存储器,且在框664处,方法660包含确定存储在SCM中的数据量是否满足或超过预定义阈值,例如,SCM是否填满或接近填满(例如,在存储器的操作期间未频繁地满足或超过阈值)。
如果确定存储在SCM中的数据量不满足或超过此预定义阈值,那么在框666处确定在编程操作期间待编程的数据量是否满足或超过预定义阈值,例如4KB、128KB或512KB。如果确定待编程的数据量满足或超过此预定义阈值,那么在框668处可将数据编程到快闪存储器。然而,如果确定待编程的数据量不满足或超过此预定义阈值,那么在框670处可将数据编程到SCM。4KB的预定义阈值可确保仅将少量数据编程到SCM,128KB的预定义阈值可确保将随机写入存取中所涉及的数据编程到SCM,且512KB的预定义阈值可确保将所有数据编程到SCM。
如果在框664处确定存储在SCM中的数据量满足或超过预定义阈值,那么在框668处将在编程操作期间待编程的数据编程到快闪存储器,且方法660还进行到框672。在框672处,方法660包含识别存储在SCM中的一或若干数据子集(例如,LMU)以重新定位(例如,迁移)到快闪存储器。可至少部分地基于在对存储器执行的先前编程操作期间对应于存储在SCM中的数据子集的地址(例如,LBA)被存取的频率来识别子集,如本文中先前所描述。举例来说,所识别子集可包含尚未被存取及/或已存取一次的子集,如本文中先前所描述。
在框674处,方法660包含确定所识别子集是否具有与其相关联的指示所识别子集在先前编程操作期间已存取一次的频率数据(例如,先前结合图4及5所描述的频率数据01)。如果确定所识别子集具有与其相关联的指示其在先前编程操作期间已存取一次的频率数据,那么在框676处可感测存储在所识别子集中的数据,在框678处可将此所感测数据编程到快闪存储器,在框680处可用所感测数据被编程到的在快闪存储器中的位置来更新存储在SCM(如本文中先前所描述)中的表中的所识别子集的位置(例如,驻留)数据,且在框682处可使存储在SCM中的所识别子集中的数据无效。如果确定所识别子集不具有与其相关联的指示所识别子集在先前编程操作期间已存取一次的频率数据,那么方法660进行到框681。
在框681处,方法660包含确定所识别子集是否具有与其相关联的指示所识别子集在先前编程操作期间未被存取的频率数据(例如,先前结合图4及5所描述的频率数据00)。如果确定所识别子集不具有与其相关联的指示其在先前编程操作期间未被存取的频率数据,那么在框683处,方法660结束。如果确定所识别子集具有与其相关联的指示其在先前编程操作期间未被存取的频率数据,那么方法660进行到框684。
在框684处,方法660包含确定是否存在存储在快闪存储器中的所识别子集中的数据的备份副本。如果存在存储在快闪存储器中的数据的备份副本,那么在框686处可检索数据的备份副本在快闪存储器中存储的位置,在框688处可用所检索位置更新所识别子集的位置数据,且在框690处可使存储在SCM中的所识别子集中的数据无效。如果不存在存储在快闪存储器中的数据的备份副本,那么在框692处可感测存储在所识别子集中的数据,在框694处可将此所感测数据编程到快闪存储器,在框696处可用所感测数据被编程到的在快闪存储器中的位置来更新处存储在SCM(如本文中先前所描述)中的表中的所识别子集的位置(例如,驻留)数据,且在框698处可使存储在SCM中的所识别子集中的数据无效。
图7图解说明根据本发明的若干个实施例的用于操作存储器(例如先前结合图2所描述的存储器210(例如,SCM)及212-1、…、212-N(例如,快闪存储器))的方法761。方法761可由(举例来说)先前分别结合图2及3所描述的控制器206及/或306来执行。
在框763处,方法761包含起始感测操作以感测存储在存储器中的数据,且在框765处,方法761包含确定在感测操作期间待感测的数据是否存储在快闪存储器中。举例来说,可使用存储在SCM中的表中的位置(例如,驻留)数据来做出此确定,如本文中先前所描述。如果确定待感测的数据未存储在快闪存储器中,那么在框767处可从SCM感测数据。如果确定待感测的数据存储在快闪存储器中,那么在框769处可从快闪存储器感测数据,且方法761还进行到框771。
在框771处,方法761包含确定存储在SCM中的数据量是否满足或超过预定义阈值。此阈值可为(举例来说)在图6A的框664处所使用的相同阈值。如果确定存储在SCM中的数据量满足或超过预定义阈值,那么在框773处,方法761结束。如果确定存储在SCM中的数据量不满足或超过预定义阈值,那么方法761进行到框775。
在框775处,方法761包含确定在感测操作期间从快闪存储器所感测的数据量是否满足或超过特定阈值,例如4KB或512KB。4KB的阈值可确保仅将少量所感测数据重新定位到SCM,而512KB的阈值可确保将所有所感测数据重新定位到SCM。如果确定在感测操作期间所感测的数据量满足或超过特定阈值,那么在框777处,方法761结束。如果确定在感测操作期间所感测的数据量不满足或超过特定阈值,那么方法761进行到框779。
在框779处,方法761包含确定是否需要在感测操作期间所感测的数据的备份副本。此确定可为(举例来说)对配置位的检查。如果确定不需要所感测数据的备份副本,那么在框781处将所感测数据编程到SCM,在框783处可用所感测数据被编程到的在SCM中的位置来更新数据子集的位置数据,且在框785处可使存储在快闪存储器中的原始数据无效。如果确定需要所感测数据的备份副本,那么在框787处可将所感测数据编程到SCM,且在框789处可用所感测数据被编程到的在SCM中的位置来更新数据子集的位置数据。
尽管本文中已图解说明及描述了具体实施例,但所属领域的技术人员将了解,旨在实现相同结果的布置可替代所展示的具体实施例。本发明打算涵盖本发明的若干个实施例的变更形式或变化形式。应理解,已以说明性方式而非限定性方式做出以上说明。在审阅以上说明后,所属领域的技术人员将明了以上实施例的组合及在本文中未具体描述的其它实施例。本发明的若干个实施例的范围包含其中使用上述结构及方法的其它应用。因此,本发明的若干个实施例的范围应参考所附权利要求书连同此权利要求书授权的等效物的全部范围来确定。
在前述具体实施方式中,出于简化本发明的目的将一些特征一起分组于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比明确陈述于每一权利要求中更多的特征的意图。而是,如所附权利要求书反映:发明性标的物在于少于单个所揭示实施例的所有特征。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求独立地作为单独实施例。

Claims (20)

1.一种设备,其包括:
存储器,其中所述存储器包含第一类型的存储器及第二类型的存储器;及
控制器,其经配置以至少部分地基于在对所述存储器执行的编程操作期间对应于存储在所述第一类型的存储器中的数据子集的地址被存取的频率而识别存储在所述第一类型的存储器中的所述数据子集以重新定位到所述第二类型的存储器。
2.根据权利要求1所述的设备,其中所述控制器经配置以至少部分地基于在对存储在所述第二类型的存储器中的数据子集执行的感测操作期间所感测的数据量而识别存储在所述第二类型的存储器中的所述数据子集以重新定位到所述第一类型的存储器。
3.根据权利要求1所述的设备,其中指示在对所述存储器执行的编程操作期间对应于存储在所述第一类型的存储器中的所述数据子集的所述地址被存取的所述频率的数据包含于所述第一类型的存储器中。
4.根据权利要求1到3中任一权利要求所述的设备,其中所述控制器经配置以至少部分地基于存储在所述第一类型的存储器中的所述数据子集在所述第一类型的存储器中的先进先出FIFO缓冲区中的位置而识别所述数据子集以重新定位到所述第二类型的存储器。
5.一种设备,其包括:
存储器,其中所述存储器包含第一类型的存储器及第二类型的存储器;及
控制器,其经配置以至少部分地基于在对存储在所述第一类型的存储器中的数据子集执行的感测操作期间所感测的数据量而识别存储在所述第一类型的存储器中的所述数据子集以重新定位到所述第二类型的存储器。
6.根据权利要求5所述的设备,其中所述控制器经配置以至少部分地基于在对所述存储器执行的感测操作期间对应于存储在所述第一类型的存储器中的所述数据子集的地址被存取的频率而识别存储在所述第一类型的存储器中的所述数据子集以重新定位到所述第二类型的存储器。
7.根据权利要求5到6中任一权利要求所述的设备,其中所述控制器经配置以在对存储在所述第一类型的存储器中的所述数据子集执行所述感测操作后即刻识别存储在所述第一类型的存储器中的所述数据子集以重新定位到所述第二类型的存储器。
8.一种用于操作存储器的方法,其包括:
识别若干个数据子集当中在对所述存储器执行的编程操作期间最不频繁地被存取的数据子集,其中所述若干个数据子集存储在第一类型的存储器中;及
将所述所识别数据子集从所述第一类型的存储器重新定位到第二类型的存储器。
9.根据权利要求8所述的方法,其中在对所述存储器执行的编程操作期间最不频繁地被存取的所述数据子集是所述第一类型的存储器中的先进先出FIFO缓冲区中的最旧数据子集。
10.根据权利要求8到9中任一权利要求所述的方法,其中在对所述存储器执行的编程操作期间最不频繁地被存取的所述数据子集是已从所述第一类型的存储器中的先进先出FIFO缓冲区移除的数据子集。
11.根据权利要求8到9中任一权利要求所述的方法,其中:
所述第一类型的存储器包含若干个先进先出FIFO缓冲区,其中:
所述若干个FIFO缓冲区中的第一者包含已从所述第二类型的存储器重新定位到所述第一类型的存储器且在被重新定位之后在对所述存储器执行的编程操作期间未被存取的数据子集;
所述若干个FIFO缓冲区中的第二者包含在对所述存储器执行的编程操作期间被存取一次的数据子集;
所述若干个FIFO缓冲区中的第三者包含在对所述存储器执行的编程操作期间被存取两次的数据子集;且
所述若干个FIFO缓冲区中的第四者包含在对所述存储器执行的编程操作期间被存取三次或更多次的数据子集;且
在对所述存储器执行的编程操作期间最不频繁地被存取的所述数据子集是已从所述若干个FIFO缓冲区中的所述第一者或所述若干个FIFO缓冲区中的所述第二者移除的数据子集。
12.一种用于操作存储器的方法,其包括:
确定在对存储在第一类型的存储器中的数据子集执行的感测操作期间所感测的数据量是否满足或超过特定阈值;及
在确定所述数据量不满足或超过所述特定阈值后即刻将所述数据子集从所述第一类型的存储器重新定位到第二类型的存储器。
13.根据权利要求12所述的方法,其中:
所述数据子集是存储在所述第一类型的存储器中的数据子集群组中的一个数据子集;且
所述方法包含在确定所述数据量不满足或超过所述特定阈值后即刻将所述数据子集群组从所述第一类型的存储器重新定位到所述第二类型的存储器。
14.根据权利要求12所述的方法,其中将所述数据子集从所述第一类型的存储器重新定位到所述第二类型的存储器包含:
执行编程操作以编程在对所述第二类型的存储器的所述感测操作期间所感测的数据;及
用所述所感测数据被编程到的在所述第二类型的存储器中的位置来更新所述数据子集的位置数据。
15.根据权利要求14所述的方法,其中将所述数据子集从所述第一类型的存储器重新定位到所述第二类型的存储器包含使存储在所述第一类型的存储器中的所述数据子集中的数据无效。
16.一种设备,其包括:
存储器,其中所述存储器包含第一类型的存储器及第二类型的存储器;及
控制器,其经配置以:
至少部分地基于在对所述存储器执行的编程操作期间对应于存储在所述第一类型的存储器中的数据子集的地址被存取的频率而识别存储在所述第一类型的存储器中的所述数据子集以重新定位到所述第二类型的存储器;及
至少部分地基于在对存储在所述第二类型的存储器中的数据子集执行的感测操作期间所感测的数据量而识别存储在所述第二类型的存储器中的所述数据子集以重新定位到所述第一类型的存储器。
17.根据权利要求16所述的设备,其中所述控制器包含:
第一模块,其经配置以识别存储在所述第一类型的存储器中的所述数据子集以重新定位到所述第二类型的存储器;及
第二模块,其经配置以识别存储在所述第二类型的存储器中的所述数据子集以重新定位到所述第一类型的存储器。
18.根据权利要求16到17中任一权利要求所述的设备,其中所述控制器经配置以在存储在所述第一类型的存储器中的数据量满足或超过预定义阈值后即刻识别存储在所述第一类型的存储器中的所述数据子集以重新定位到所述第二类型的存储器。
19.根据权利要求16所述的设备,其中所述控制器经配置以在识别存储在所述第一类型的存储器中的所述数据子集以重新定位到所述第二类型的存储器后即刻进行以下操作:
执行感测操作以感测存储在所述第一类型的存储器中的所述所识别数据子集中的数据;
执行编程操作以将所述所感测数据编程到所述第二类型的存储器;
用所述所感测数据被编程到的在所述第二类型的存储器中的位置来更新所述所识别数据子集的位置数据;及
使存储在所述第一类型的存储器中的所述所识别数据子集中的所述数据无效。
20.根据权利要求16所述的设备,其中所述控制器经配置以在识别存储在所述第一类型的存储器中的所述数据子集以重新定位到所述第二类型的存储器后即刻进行以下操作:
检索存储在所述所识别数据子集中的数据的备份副本在所述第二类型的存储器中存储的位置;
用所述所检索位置来更新所述所识别数据子集的位置数据;及
使存储在所述第一类型的存储器中的所述所识别数据子集中的所述数据无效。
CN201780068955.2A 2016-11-08 2017-08-28 混合式存储器中的数据重新定位 Pending CN109923530A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/345,919 US10649665B2 (en) 2016-11-08 2016-11-08 Data relocation in hybrid memory
US15/345,919 2016-11-08
PCT/US2017/048849 WO2018089085A1 (en) 2016-11-08 2017-08-28 Data relocation in hybrid memory

Publications (1)

Publication Number Publication Date
CN109923530A true CN109923530A (zh) 2019-06-21

Family

ID=62064537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780068955.2A Pending CN109923530A (zh) 2016-11-08 2017-08-28 混合式存储器中的数据重新定位

Country Status (6)

Country Link
US (2) US10649665B2 (zh)
EP (1) EP3539005A4 (zh)
KR (1) KR102271643B1 (zh)
CN (1) CN109923530A (zh)
TW (1) TWI687807B (zh)
WO (1) WO2018089085A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114281251A (zh) * 2021-12-10 2022-04-05 重庆邮电大学 面向3d tlc闪存存储器的数据分配与重编程优化方法
CN114741025A (zh) * 2021-01-07 2022-07-12 美光科技公司 管理存储器对象

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740016B2 (en) * 2016-11-11 2020-08-11 Scale Computing, Inc. Management of block storage devices based on access frequency wherein migration of block is based on maximum and minimum heat values of data structure that maps heat values to block identifiers, said block identifiers are also mapped to said heat values in first data structure
JP6779821B2 (ja) * 2017-03-24 2020-11-04 キオクシア株式会社 メモリシステム及びデータの読み出し方法
US10957392B2 (en) 2018-01-17 2021-03-23 Macronix International Co., Ltd. 2D and 3D sum-of-products array for neuromorphic computing system
US10705963B2 (en) 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10705747B2 (en) 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US10809942B2 (en) * 2018-03-21 2020-10-20 Micron Technology, Inc. Latency-based storage in a hybrid memory system
TWI686698B (zh) * 2018-05-24 2020-03-01 大陸商深圳大心電子科技有限公司 邏輯轉實體表更新方法及儲存控制器
US10585795B2 (en) 2018-05-31 2020-03-10 Micron Technology, Inc. Data relocation in memory having two portions of data
US11138497B2 (en) 2018-07-17 2021-10-05 Macronix International Co., Ltd In-memory computing devices for neural networks
KR20200015185A (ko) * 2018-08-03 2020-02-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10916324B2 (en) 2018-09-11 2021-02-09 Micron Technology, Inc. Data state synchronization involving memory cells having an inverted data state written thereto
TW202014898A (zh) 2018-10-04 2020-04-16 宏碁股份有限公司 電腦系統、其遊戲載入方法及電腦程式產品
KR20200044312A (ko) 2018-10-19 2020-04-29 삼성전자주식회사 반도체 장치
US11636325B2 (en) 2018-10-24 2023-04-25 Macronix International Co., Ltd. In-memory data pooling for machine learning
US11562229B2 (en) 2018-11-30 2023-01-24 Macronix International Co., Ltd. Convolution accelerator using in-memory computation
US11934480B2 (en) 2018-12-18 2024-03-19 Macronix International Co., Ltd. NAND block architecture for in-memory multiply-and-accumulate operations
US11119674B2 (en) * 2019-02-19 2021-09-14 Macronix International Co., Ltd. Memory devices and methods for operating the same
US11132176B2 (en) 2019-03-20 2021-09-28 Macronix International Co., Ltd. Non-volatile computing method in flash memory
CN111857559A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 用于管理元数据的方法、装置和计算机程序产品
KR102089450B1 (ko) 2019-09-19 2020-05-26 한국과학기술정보연구원 데이터이주장치 및 그 동작 방법
KR20210045029A (ko) * 2019-10-16 2021-04-26 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
CN113297014B (zh) * 2020-02-22 2024-03-08 广州希姆半导体科技有限公司 待测内存容量的识别方法及装置、电子设备及存储介质
KR102425038B1 (ko) * 2020-10-26 2022-07-27 주식회사 에이직랜드 온칩 시스템의 데이터 관리 장치 및 방법
US11934692B2 (en) * 2021-12-20 2024-03-19 Micron Technology, Inc. Write booster buffer and hibernate

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020056025A1 (en) * 2000-11-07 2002-05-09 Qiu Chaoxin C. Systems and methods for management of memory
US7356651B2 (en) * 2004-01-30 2008-04-08 Piurata Technologies, Llc Data-aware cache state machine
US20090106518A1 (en) * 2007-10-19 2009-04-23 International Business Machines Corporation Methods, systems, and computer program products for file relocation on a data storage device
US20100235579A1 (en) * 2006-02-22 2010-09-16 Stuart David Biles Cache Management Within A Data Processing Apparatus
US20140104951A1 (en) * 2012-10-11 2014-04-17 Micron Technology, Inc. Sensing data stored in memory
US20150106582A1 (en) * 2013-10-14 2015-04-16 Electronics And Telecommunications Research Institute Apparatus and method for managing data in hybrid memory
US20150248244A1 (en) * 2014-03-03 2015-09-03 Dong-young Seo Method of operating a flash memory system using a migration operation
CN105122218A (zh) * 2013-03-14 2015-12-02 美光科技公司 包含训练、数据组织及/或遮蔽的存储器系统及方法
CN105474319A (zh) * 2013-08-12 2016-04-06 美光科技公司 用于配置混合存储器模块的存储器的i/o的设备及方法
US20160239222A1 (en) * 2015-02-17 2016-08-18 Nimble Storage, Inc. Access-based eviction of blocks from solid state drive cache memory

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124272B1 (en) 2003-04-18 2006-10-17 Symantec Corporation File usage history log for improved placement of files in differential rate memory according to frequency of utilizations and volatility of allocation space
US7844801B2 (en) * 2003-07-31 2010-11-30 Intel Corporation Method and apparatus for affinity-guided speculative helper threads in chip multiprocessors
US20050055495A1 (en) 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling
US20080140918A1 (en) 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US8850102B2 (en) 2007-08-23 2014-09-30 Nokia Corporation Flash memory with small data programming capability
JP5284685B2 (ja) 2008-05-16 2013-09-11 インターナショナル・ビジネス・マシーンズ・コーポレーション ファイルの再配置装置、再配置方法、及び再配置プログラム
US20100169708A1 (en) 2008-12-29 2010-07-01 John Rudelic Method and apparatus to profile ram memory objects for displacment with nonvolatile memory
US8171216B2 (en) * 2009-05-29 2012-05-01 Dell Products, Lp System and method for managing devices in an information handling system
US20110167197A1 (en) 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
US8341339B1 (en) 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
US8230123B2 (en) * 2010-08-23 2012-07-24 International Business Machines Corporation Using information on input/output (I/O) sizes of accesses to an extent to determine a type of storage device for the extent
US8356153B2 (en) 2010-11-19 2013-01-15 International Business Machines Corporation Adaptive wear leveling via monitoring the properties of memory reference stream
US9158706B2 (en) * 2011-10-31 2015-10-13 International Business Machines Corporation Selective space reclamation of data storage memory employing heat and relocation metrics
US20130219105A1 (en) 2012-02-16 2013-08-22 Micron Technology, Inc. Method, device and system for caching for non-volatile memory device
FR3027450B1 (fr) * 2014-10-20 2016-11-04 Commissariat Energie Atomique Dispositif memoire non volatile hybride et procede de fabrication d'un tel dispositif
US10116557B2 (en) * 2015-05-22 2018-10-30 Gray Research LLC Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020056025A1 (en) * 2000-11-07 2002-05-09 Qiu Chaoxin C. Systems and methods for management of memory
US7356651B2 (en) * 2004-01-30 2008-04-08 Piurata Technologies, Llc Data-aware cache state machine
US20100235579A1 (en) * 2006-02-22 2010-09-16 Stuart David Biles Cache Management Within A Data Processing Apparatus
US20090106518A1 (en) * 2007-10-19 2009-04-23 International Business Machines Corporation Methods, systems, and computer program products for file relocation on a data storage device
US20140104951A1 (en) * 2012-10-11 2014-04-17 Micron Technology, Inc. Sensing data stored in memory
CN105122218A (zh) * 2013-03-14 2015-12-02 美光科技公司 包含训练、数据组织及/或遮蔽的存储器系统及方法
CN105474319A (zh) * 2013-08-12 2016-04-06 美光科技公司 用于配置混合存储器模块的存储器的i/o的设备及方法
US20150106582A1 (en) * 2013-10-14 2015-04-16 Electronics And Telecommunications Research Institute Apparatus and method for managing data in hybrid memory
US20150248244A1 (en) * 2014-03-03 2015-09-03 Dong-young Seo Method of operating a flash memory system using a migration operation
US20160239222A1 (en) * 2015-02-17 2016-08-18 Nimble Storage, Inc. Access-based eviction of blocks from solid state drive cache memory

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741025A (zh) * 2021-01-07 2022-07-12 美光科技公司 管理存储器对象
CN114741025B (zh) * 2021-01-07 2023-08-04 美光科技公司 管理存储器对象
CN114281251A (zh) * 2021-12-10 2022-04-05 重庆邮电大学 面向3d tlc闪存存储器的数据分配与重编程优化方法
CN114281251B (zh) * 2021-12-10 2023-08-11 重庆邮电大学 面向3d tlc闪存存储器的数据分配与重编程优化方法

Also Published As

Publication number Publication date
WO2018089085A1 (en) 2018-05-17
EP3539005A1 (en) 2019-09-18
US10649665B2 (en) 2020-05-12
KR102271643B1 (ko) 2021-07-05
US20180129424A1 (en) 2018-05-10
KR20190067938A (ko) 2019-06-17
TW201818250A (zh) 2018-05-16
US20200233585A1 (en) 2020-07-23
TWI687807B (zh) 2020-03-11
EP3539005A4 (en) 2020-07-08

Similar Documents

Publication Publication Date Title
CN109923530A (zh) 混合式存储器中的数据重新定位
KR101343237B1 (ko) 메모리 블록 선택
US11232041B2 (en) Memory addressing
US10430330B2 (en) Handling of unaligned sequential writes
US20130151759A1 (en) Storage device and operating method eliminating duplicate data storage
CN111033477A (zh) 逻辑到物理映射
US11037627B2 (en) Cell block allocation for hybrid dual write
CN111052096A (zh) 缓存行数据
KR102378295B1 (ko) 저장 캐시 관리
WO2015054338A1 (en) System and method of storing data in a data storage device with a selection of two writing orders in order to improve the reading speed of a differential look ahead reading mode.
KR20210063432A (ko) 메모리에서의 데이터 재배치
US11126624B2 (en) Trie search engine
US11113205B2 (en) Die addressing using a reduced size translation table entry
US10282328B2 (en) Apparatus having direct memory access controller and method for accessing data in memory
KR20220119348A (ko) 분할된 저장장치에서의 스냅샷 관리
JP2021525924A (ja) データの2つの部分を有するメモリのデータの再配置
CN114730291A (zh) 具有分区的ssd的数据停放
CN109411000A (zh) 一种固态存储器的控制方法、固态存储器及存储介质
US11640336B2 (en) Fast cache with intelligent copyback
US20120198126A1 (en) Methods and systems for performing selective block switching to perform read operations in a non-volatile memory
Matsui et al. 3X Faster Speed Solid-State Drive with a Write Order Based Garbage Collection Scheme
JP2022551627A (ja) 自己適応型ウェアレベリングの方法及びアルゴリズム

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190621