CN112041931A - 跟踪逻辑块地址的数据温度 - Google Patents

跟踪逻辑块地址的数据温度 Download PDF

Info

Publication number
CN112041931A
CN112041931A CN201980029110.1A CN201980029110A CN112041931A CN 112041931 A CN112041931 A CN 112041931A CN 201980029110 A CN201980029110 A CN 201980029110A CN 112041931 A CN112041931 A CN 112041931A
Authority
CN
China
Prior art keywords
data
accumulator
logical block
stripe
temperature
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.)
Granted
Application number
CN201980029110.1A
Other languages
English (en)
Other versions
CN112041931B (zh
Inventor
K·K·姆奇尔拉
彼特·西恩·费利
A·马尔谢
S·瑞特南
H·R·桑吉迪
V·P·拉亚普鲁
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 CN112041931A publication Critical patent/CN112041931A/zh
Application granted granted Critical
Publication of CN112041931B publication Critical patent/CN112041931B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0608Saving storage space on storage systems
    • 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/0653Monitoring storage devices or systems
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Read Only Memory (AREA)

Abstract

多种应用可包含如下设备和/或方法:其包含通过一或多个数据温度分析器操作多个累加器来对到逻辑块地址范围的主机写入计数,跟踪存储器装置的逻辑块地址的数据温度。主机写入的数据的数据温度是覆写逻辑块地址处的数据的频率的度量。在各种实施例中,跟踪可包含使所述多个累加器中的每一个进行的计数的起点交错以提供逻辑块地址带区到温度区中的后续分组,这可达成更好的数据分离。可基于一或多个数据温度分析器对所述多个累加器的交错操作提供的分组,将从主机接收的具有逻辑块地址的数据路由到与温度区相关联的块。公开了额外的设备、系统和方法。

Description

跟踪逻辑块地址的数据温度
优先权申请
本申请案主张2018年3月19日申请的美国申请案序列号15/924,951的优先权益,其以全文引用的方式并入本文中。
背景技术
存储器装置通常提供为计算机或其它电子装置中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性和非易失性存储器。易失性存储器需要功率来维持其数据,且易失性存储器的实例包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)等等。非易失性存储器可在未被供电时保持所存储数据,且非易失性存储器的实例包含快闪存储器、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、静态RAM(SRAM)、可擦除可编程ROM(EPROM)、电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)、磁阻式随机存取存储器(MRAM)和三维(3D)XPointTM存储器等等。
快闪存储器用作广泛范围的电子应用的非易失性存储器。快闪存储器装置通常包含允许高存储器密度、高可靠性和低功耗的单晶体管浮动栅极或电荷阱存储器单元的一或多个群组。两种常见类型的快闪存储器阵列架构包含NAND和NOR架构,所述架构以每一个的基本存储器单元配置所布置的逻辑形式来命名。存储器阵列的存储器单元通常布置成矩阵。在实例中,阵列的一行中的每一浮动栅极存储器单元的栅极耦合到存取线(例如,字线)。在NOR架构中,阵列的一列中的每一存储单元的漏极耦合到数据线(例如,位线)。在NAND架构中,阵列中的串中的存储器单元在源极线与位线之间源极到漏极地串联耦合在一起。
NOR及NAND架构半导体存储器阵列均通过解码器来存取,所述解码器通过选择耦合到特定存储器单元的栅极的字线来激活特定存储器单元。在NOR架构半导体存储器阵列中,一旦被激活,选定存储器单元便使其数据值置于位线上,从而依据特定单元经编程的状态而使不同电流流动。在NAND架构半导体存储器阵列中,将高偏压电压施加于漏极侧选择栅极(SGD)线。以指定传递电压(例如,Vpass)驱动耦合到每一群组的非所选存储器单元的栅极的字线,以使每一群组的非所选存储器单元作为传递晶体管操作(例如,以不受其所存储的数据值限制的方式传递电流)。电流随后从源极线穿过每个串联耦合的群组流动到位线,仅受每个群组中的所选择的存储器单元限制,从而将所选择的存储器单元的行的当前经编码数据值置于位线上。
NOR或NAND架构半导体存储器阵列中的每个快闪存储器单元可以个体地或共同地编程到一或数个经编程状态。举例来说,单层级单元(SLC)可表示两个编程状态(例如,1或0)中的一个,从而表示一个数据位。然而,闪存存储器单元也可表示大于两个的经编程状态中的一个,从而允许制造较高密度的存储器而不增加存储器单元的数目,这是因为每一单元可表示大于一个的二进制数字(例如,大于一个位)。此类单元可被称为多状态存储器单元、多数字单元或多层级单元(MLC)。在某些实例中,MLC可指代每单元可存储两个数据位(例如,四个经编程状态中的一个)的存储器单元,三层级单元(TLC)可指代每单元可存储三个数据位(例如,八个经编程状态中的一个)的存储器单元,且四层级单元(QLC)可每单元存储四个数据位。MLC在本文中以其较广泛情形使用,以指代每单元可存储大于一个数据位(即,可表示大于两个经编程状态)的任何存储器单元。
传统的存储器阵列是布置于半导体衬底的表面上的二维(2D)结构并且可被称为平面存储器阵列。为了增加给定区域的存储器容量且降低成本,已减小个别存储器单元的大小。然而,个别存储器单元大小的减小存在技术限制,因此2D存储器阵列的存储器密度也存在技术限制。作为响应,正开发三维(3D)存储器结构,例如3D NAND架构半导体存储器装置,以进一步增大存储器密度且降低存储器成本。
这类3D NAND装置通常包含存储单元串,其串联(例如,以漏极到源极方式)耦合于接近源极的一或多个源极侧选择栅极(SGS)与接近位线的一或多个漏极侧选择栅极(SGD)之间。在实例中,SGS或SGD可包含一或多个场效应晶体管(FET)或金属氧化物半导体(MOS)结构装置等。在一些实例中,所述串将竖直延伸通过含有相应字线的多个竖直间隔开的层。半导体结构(例如,多晶硅结构)可邻近于存储单元串而延伸以形成用于所述串的存储单元的通道。在竖直串的实例中,多晶硅结构可呈竖直延伸柱的形式。在一些实例中,串可以“折叠”,并因此相对于U形支柱而布置。在其它实例中,多个竖直结构可彼此上下堆叠以形成存储单元串的堆叠阵列。
存储器阵列或装置可组合在一起以形成存储器系统的存储体,例如固态驱动器(SSD)、通用快闪存储(UFSTM)装置、多媒体卡(MMC)固态存储装置、嵌入式MMC装置(eMMCTM)等。SSD尤其可用作计算机的主存储装置,其在例如性能、大小、重量、强度、操作温度范围和功率消耗上具有优于具有移动部件的传统硬盘驱动器的优点。举例来说,SSD可具有减少的寻道时间、时延或与磁盘驱动器相关联的其它延迟(例如,机电等)。SSD使用例如快闪存储器单元等非易失性存储器单元来避免内部电池电源要求,因此允许驱动器更为多功能且紧凑。
SSD可包含若干存储器装置,包含若干裸片或逻辑单元(例如,逻辑单元数字或LUN),且可包含执行操作存储器装置或与外部系统介接所需的逻辑功能的一或多个处理器或其它控制器。这种SSD可包含一或多个快闪存储器裸片,其上包含数个存储器阵列和外围电路系统。快闪存储器阵列可包含组织成多个物理页的多个存储器单元块。在许多实例中,SSD还会包含DRAM或SRAM(或其它形式的存储器裸片或其它存储器结构)。SSD可结合存储器操作从主机接收命令,所述存储器操作例如在存储器装置和主机之间传送数据(例如,用户数据和相关联的完整性数据,例如误差数据和地址数据等)的读取或写入操作,或从存储器装置擦除数据的擦除操作。
在基于NAND快闪的存储系统中,可关于覆写数据的频率,也就是说,主机处理器或处理器将数据写入到地址的频率,将存储于NAND存储器装置中的数据分类,其中逻辑块地址(LBA)可提供为地址。一或多个主机处理器在本文中可以被称为主机或主机处理器。主机数据通常由不同风格的数据组成,其中LBA处的数据可按数据温度分类。数据温度是存取频率的度量。冷数据是不被主机频繁覆写的地址处的数据。冷数据可被视为静态数据,例如通常不被重写的媒体文件,其实例可包含但不限于操作系统(OS)、视频文件、音乐文件和图片。热数据是频繁被主机覆写的地址处的数据。可高效地由主机连续覆写的热数据可包含例如但不限于系统元数据。元数据是关于其它数据的信息的数据。数据温度还可包含其它温度,例如用于重写的存取频率的正常、升温和其它刻度。在用于SSD和移动装置应用的工作负载中,主机当发送写入命令给存储器装置时不指定哪些数据热以及哪些数据冷。
为维持用于主机数据的自由块连续池,固件在系统层级连续进行垃圾收集(GC)。用于装置的固件可包括当由例如处理器的控制器执行时可致使装置执行操作的指令,例如微码。用于NAND装置结构的GC程序是针对当NAND装置中的自由物理空间变低时恢复自由空间。GC通常包含将逻辑有效页从源块重新复制到目的地块。然而,GC可为致使写入放大的因素。写入放大是与快闪存储器和固态驱动器相关联的条件,在所述条件中,以物理方式写入到存储媒体的信息的实际量是打算写入的逻辑量的倍数。
由于快闪存储器是在其可被重写之前经擦除,因此执行这些操作的过程引起通过移动实现对主机数据和元数据不止一次的重写。与写入操作相比,擦除操作是与较粗粒度相关联。因此,比来自主机的新数据量实际所需的更大部分的快闪被擦除和重写。此倍增效应增加在SSD寿命内所需的写入数目,缩短其可以可靠地操作的时间。写入放大因子可被计算为表示相对于主机的快闪控制器必须写入的数据量,固态存储控制器必须写入的数据量的数值。所述数值可计算为写入到快闪存储器的数据量除以由主机写入的数据量的速率。写入放大因子一意味着写入到快闪存储器的数据量等于由主机写入的数据量。包含GC程序的效率的多个要素贡献于写入放大因子。垃圾收集侵蚀到存储器控制器的带宽中,这是因为控制器现在必须服务主机以及垃圾收集事件两者。增强存储器结构和过程以最小化或减小垃圾收集可允许存储器控制器增加其服务主机的最大时间。在基于NAND快闪的存储系统中,基于存储系统改进NAND快闪可包含改进NAND存储器装置内的数据存储的布置中的垃圾收集。
附图说明
不一定按比例绘制的图式通过实例而非作为限制大体上说明本文件中论述的各种实施例。
图1说明根据各种实施例的包含存储器装置的环境的实例。
图2和3说明根据各种实施例的三维NAND架构半导体存储器阵列的实例的示意图。
图4说明根据各种实施例的存储器模块的实例框图。
图5是根据各种实施例的说明可在其上实施一或多个实施例的机器的实例的框图。
图6是根据各种实施例的主机与系统的实例操作的框图。
图7是根据各种实施例的仅具有包括数个带区累加器的单个累加器的实例数据温度分析器的功能图。
图8是根据各种实施例的具有多个累加器的实例温度分析器的功能图。
图9是说明根据各种实施例的使多个累加器交错的实例的时序图。
图10是根据各种实施例的操作NAND装置的实例方法的特征的流程图。
具体实施方式
在各种实施例中,可如下实施固件:其使有效LBA的整个范围分离成多个区间,跟踪每一LBA区间的主机LBA覆写,并且为每一LBA区间指配各种程度的热度。热度表征可实施为实时过程。这类实时表征可提供闭环反馈,跟踪主机使用模型的任何改变。可通过将冷数据和热数据分开来使写入放大降到最低。此策略可在其中主机将驱动器分割成媒体分区和元数据分区的工作负载中,具有巨大写入放大和性能益处。另外,通过能够使冷数据(例如媒体数据)和热数据(例如元数据)路由到单独块中,可以减少垃圾收集工作量。虽然已充分理解数据分离的益处,但如本文所教示的数据分离可适用于存储器系统的每个改变的工作负载,可包含跟踪主机数据模式的改变。
例如移动电子装置(例如,智能电话、平板计算机等)、用于汽车应用的电子装置(例如,汽车传感器、控制单元、驾驶员辅助系统、乘客安全或舒适系统等)和连接因特网的电器设备或装置(例如,物联网(IoT)装置等)的电子装置尤其取决于电子装置的类型、使用环境、性能期望等而具有变化的存储需要。
电子装置可分解为若干主要组件:处理器(例如,中央处理单元(CPU)或其它主处理器);存储器(例如,一或多个易失性或非易失性随机存取存储器(RAM)存储器装置,例如动态RAM(DRAM)、移动或低功率双数据速率同步DRAM(DDR SDRAM)等);和存储装置(例如,非易失性存储器(NVM)装置,例如快闪存储器、只读存储器(ROM)、SSD、MMC,或其它存储卡结构或组合件等)。在某些实例中,电子装置可包含用户接口(例如,显示器、触摸屏、键盘、一或多个按钮等)、图形处理单元(GPU)、功率管理电路系统、基带处理器或一或多个收发器电路等。
图1说明包含被配置成在通信接口上通信的主机装置105和存储器装置110的环境100的实例。主机装置105或存储器装置110可包含在多种产品150中,例如物联网(IoT)装置(例如,电冰箱或其它电器、传感器、电机或致动器、移动通信装置、汽车、无人机等),以支持产品150的处理、通信或控制。
存储器装置110包含存储器控制器115和包含例如数个个别存储器裸片(例如,三维(3D)NAND裸片的堆叠)的存储器阵列120。在3D架构半导体存储器技术中,堆叠竖直结构,从而增加层次数、物理页且因此增加存储器装置(例如,存储装置)的密度。在实例中,存储器装置110可以是主机装置105的离散存储器或存储装置组件。在其它实例中,存储器装置110可以是集成电路(例如,芯片上系统(SoC)等)的部分,其与主机装置105的一或多个其它组件堆叠或以其它方式包含在一起。
可使用一或多个通信接口在存储器装置110与主机装置105的一或多个其它组件之间传送数据,如串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、通用快闪存储(UFS)接口、eMMCTM接口或一或多个其它连接器或接口。主机装置105可包含主机系统、电子装置、处理器、存储卡读卡器,或在存储器装置110外部的一或多个其它电子装置。在一些实例中,主机105可为具有参考图5的机器500论述的组件中的某一部分或全部的机器。
存储器控制器115可从主机105接收指令,并且可与存储器阵列通信,以便将数据传送到存储器阵列的存储器单元、平面、子块、块或页中的一或多个(例如,写入或擦除)或传送来自存储器阵列的存储器单元、平面、子块、块或页中的一或多个的数据(例如,读取)。存储器控制器115可以包含电路系统或固件等,包含一或多个组件或集成电路。举例来说,存储器控制器115可包含一或多个存储器控制单元、电路或组件,其被配置成控制跨存储器阵列120的存取并且提供主机105与存储器装置110之间的转译层。存储器控制器115可包含一或多个输入/输出(I/O)电路、线或接口以向存储器阵列120传送数据或传送来自存储器阵列120的数据。存储器控制器115可以包含存储器管理器125和阵列控制器135。
存储器管理器125尤其可包含电路系统或固件,例如与各种存储器管理功能相关联的多个组件或集成电路。出于当前描述的目的,将在NAND存储器的上下文中描述实例存储器操作和管理功能。本领域的技术人员将认识到,其它形式的非易失性存储器可具有类似的存储器操作或管理功能。此类NAND管理功能包含耗损均衡(例如,垃圾收集或回收)、错误检测或校正、块引退,或一或多个其它存储器管理功能。存储器管理器125可将主机命令(例如,从主机接收到的命令)解析或格式化为装置命令(例如,与存储器阵列的操作相关联的命令等),或产生用于阵列控制器135或存储器装置110的一或多个其它组件的装置命令(例如,以实现各种存储器管理功能)。
存储器管理器125可包含一组管理表130,其配置成维持与存储器装置110的一或多个组件相关联的各种信息(例如,与耦合到存储器控制器115的存储器阵列或一或多个存储单元相关联的各种信息)。举例来说,管理表130可以包含关于耦合到存储器控制器115的一或多个存储器单元块的块年龄、块擦除计数、错误历史或一或多个错误计数(例如,写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)的信息。在某些实例中,如果针对错误计数中的一或多个检测到的错误的数目高于阈值,则位错误可称为不可校正位错误。管理表130可以维持可校正或不可校正位错误等的计数。
阵列控制器135尤其可包含被配置成控制与以下操作相关联的存储器操作的电路系统或组件:向耦合到存储器控制器115的存储器装置110的一或多个存储器单元写入数据、从所述存储器单元读取数据或擦除所述存储器单元。存储器操作可基于例如从主机105接收或由存储器管理器125在内部产生的主机命令(例如,与耗损均衡、错误检测或校正等相关联)。
阵列控制器135可包含错误校正码(ECC)组件140,所述ECC组件可尤其包含ECC引擎、或被配置成检测或校正与向耦合到存储器控制器115的存储器装置110的一或多个存储器单元写入数据或从中读取数据相关联的错误的其它电路系统。存储器控制器115可被配置成有效地检测与各种操作或数据存储相关联的错误现象(例如,位错误、操作错误等等)并从所述错误现象中恢复,同时维持在主机105与存储器装置110之间传送的数据的完整性,或维持所存储的数据的完整性(例如,使用冗余RAID存储等等),并可移除(例如,引退)发生故障的存储器资源(例如,存储器单元、存储器阵列、页、块等等)以防止未来错误。
存储器阵列120可包含布置在例如数个装置、平面、子块、块或页中的若干存储器单元。作为一个实例,48GB TLC NAND存储器装置可包含每页18,592字节(B)的数据(16,384+2208字节)、每块1536页、每平面548块和每装置4个或更多个平面。作为另一实例,32GBMLC存储器装置(每单元存储两个数据位(即,4个可编程状态))可包含每页18,592字节(B)的数据(16,384+2208字节)、每块1024页、每平面548个块以及每装置4个平面,但与对应TLC存储器装置相比所需的写入时间为一半且编程/擦除(P/E)循环为两倍。其它实例可以包含其它数量或布置。在一些实例中,存储器装置或其部分可在SLC模式中或在所需MLC模式(例如TLC、QLC等)中选择性操作。
在操作中,数据通常成页地写入到NAND存储器装置110或从NAND存储器装置110读取,且成块地擦除。然而,可视需要对存储器单元的更大或更小群组执行一或多个存储器操作(例如,读取、写入、擦除等)。NAND存储器装置110的数据传递大小通常称为页;而主机的数据传递大小通常称为扇区。
虽然数据页可包含数个字节的用户数据(例如,包含数个数据扇区的数据有效负载)和其对应的元数据,但页的大小经常仅指代用以存储用户数据的字节的数目。作为一实例,具有4KB的页大小的数据页可包含4KB的用户数据(例如,假定512B的扇区大小的8个扇区)以及对应于用户数据的若干字节(例如32B、54B、224B等)的元数据,例如完整性数据(例如错误检测或校正代码数据)、地址数据(例如逻辑地址数据等)或与用户数据相关联的其它元数据。
不同类型的存储器单元或存储器阵列120可提供不同的页大小,或可能需要与其相关联的不同量的元数据。举例来说,不同存储器装置类型可具有不同位错误率,这可导致必需要不同量的元数据来确保数据页的完整性(例如,具有较高位错误率的存储器装置可要求比具有较低位错误率的存储器装置更多字节的错误校正码数据)。作为一实例,多层级单元(MLC)NAND快闪装置可具有比对应单层级单元(SLC)NAND快闪装置高的位错误率。因此,MLC装置可需要比对应SLC装置更多的用于错误数据的元数据字节。
图2说明包含数个存储器单元串(例如,第一A0存储器串205A0到第三A0存储器串207A0、第一An存储器串205An到第三An存储器串207An、第一B0存储器串205B0到第三B0存储器串207B0、第一Bn存储器串205Bn到第三Bn存储器串207Bn等)的3D NAND架构半导体存储器阵列200的实例示意图,所述存储器单元串组织成块(例如,块A 201A、块B 201B等)和子块(例如,子块A0 201A0、子块An 201An、子块B0 201B0、子块Bn 201Bn等)。存储器阵列200表示在存储器装置的块、装置或其它单元中通常将找到的较大数目的相似结构的一部分。
每一存储器单元串包含若干层次的电荷存储晶体管(例如,浮动栅极晶体管、电荷-结构等),所述电荷存储晶体管在Z方向上以源极到漏极方式堆叠于源极线(SRC)235或源极侧选择栅极(SGS)(例如,第一到第三A0 SGS 231A0-233A0、第一到第三An SGS 231An-233An、第一到第三B0 SGS 231B0-233B0、第一到第三Bn SGS 231Bn-233Bn等)与漏极侧选择栅极(SGD)(例如,第一到第三A0 SGD 226A0-228A0、第一到第三An SGD 226An-228An、第一到第三B0 SGD 226B0-228B0、第一到第三Bn SGD 226Bn-228Bn等)之间。3D存储器阵列中的每一存储器单元串可沿着X方向布置为数据线(例如,位线(BL)BL0-BL2 220-222),且沿着Y方向布置为物理页。
在物理页内,每一层次表示一行存储器单元,且每一存储器单元串表示一列。子块可包含一或多个物理页。块可包含数个子块(或物理页)(例如,128、256、384等)。虽然本文中说明为具有两个块,每个块具有两个子块,每个子块具有单个物理页,每个物理页具有三个存储器单元串,且每个串具有8个层次的存储器单元,但是在其它实例中,存储器阵列200可以包含更多或更少的块、子块、物理页、存储器单元串、存储器单元或层次。举例来说,每一存储器单元串按需要可包含更多或更少层次(例如,16、32、64、128等),以及电荷存储晶体管上方或下方一或多个额外层次的半导体材料(例如,选择栅极、数据线等)。作为实例,48GB TLC NAND存储器装置可包含每页18,592字节(B)的数据(16,384+2208字节)、每块1536页、每平面548个块,以及每装置4个或更多个平面。
存储器阵列200中的每一存储器单元包含耦合到(例如,电连接到或以其它方式可操作地连接到)存取线(例如,字线(WL)WL00-WL70 210A-217A、WL01-WL71 210B-217B等)的控制栅极(CG),所述存取线按需要跨越特定层次或层次的一部分共同地耦合控制栅极(CG)。可以使用相应存取线来存取或控制3D存储器阵列中的特定层且因此串中的特定存储器单元。可以使用各种选择线来存取选择栅极的群组。举例来说,可使用A0 SGD线SGDA0225A0来存取第一到第三A0 SGD 226A0-228A0,可使用An SGD线SGDAn 225An来存取第一到第三An SGD 226An-228An,可使用B0 SGD线SGDB0 225B0来存取第一到第三B0 SGD 226B0-228B0,且可使用Bn SGD线SGDBn 225Bn来存取第一到第三Bn SGD 226Bn-228Bn。可使用栅极选择线SGS0 230A来存取第一A0 SGS 231A0到第三A0 SGS 233A0和第一An SGS 231An到第三An SGS 233An,且可使用栅极选择线SGS1 230B来存取第一B0 SGS 231B0到第三B0 SGS233B0和第一Bn SGS 231Bn到第三Bn SGS 233Bn
在实例中,存储器阵列200可包含数个层级的半导体材料(例如,多晶硅等),其被配置成耦合所述阵列的相应层次的每一存储器单元的控制栅极(CG)或选择栅极(或CG或选择栅极的一部分)。可以使用位线(BL)和选择栅极等的组合来存取、选择或控制阵列中的特定存储器单元串,且可使用一或多个存取线(例如,字线)来存取、选择或控制特定串中的一或多个层次的特定存储器单元。
图3说明NAND架构半导体存储器阵列300的一部分的实例示意图,所述阵列包含布置于串(例如,第一串305到第三串307)和层次(例如,展示为相应字线(WL)WL0 310到WL7317、漏极侧选择栅极(SGD)线325、源极侧选择栅极(SGS)线330等)的二维阵列中的多个存储器单元302以及感测放大器或装置360。举例来说,存储器阵列300可说明例如图2中所说明的3D NAND架构半导体存储器装置的存储器单元的一个物理页的部分的实例示意图。
每一存储器单元串使用相应源极侧选择栅极(SGS)(例如,第一SGS 331到第三SGS333)耦合到源极线(SRC),且使用相应漏极侧选择栅极(SGD)(例如,第一SGD 326到第三SGD328)耦合到相应数据线(例如,第一到第三位线(BL)BL0-BL2 320-322)。尽管在图3的实例中说明为具有8个层次(例如,使用字线(WL)WL0 310到WL7 317)和三个数据线(BL0 326到BL2 328),但其它实例按需要可包含具有更多或更少层次或数据线的存储器单元串。
在如实例存储器阵列300的NAND架构半导体存储器阵列中,可通过感测与含有所选择的存储器单元的特定数据线相关联的电流或电压变化来存取所选择的存储器单元302的状态。可使用一或多个驱动器(例如,通过控制电路、一或多个处理器、数字逻辑等)存取存储器阵列300。在实例中,取决于将对特定存储器单元或存储器单元组执行的所需操作的类型,一或多个驱动器可通过将特定电势驱动到一或多个数据线(例如,位线BL0-BL2)、存取线(例如,字线WL0-WL7)或选择栅极来激活特定存储器单元或存储器单元组。
为将数据编程或写入到存储器单元,编程电压(Vpgm)(例如一或多个编程脉冲等)可施加到所选字线(例如,WL4),且因此,施加到耦合到所选字线的每一存储器单元的控制栅极(例如,耦合到WL4的存储器单元的第一控制栅极(CG)341到第三CG 343)。举例来说,编程脉冲可在15V处或附近开始,并且在某些实例中,可在每个编程脉冲施加期间在量值上增加。在将编程电压施加于选定字线的同时,可将例如接地电势(例如,Vss)的电势施加到以编程为目标的存储器单元的数据线(例如,位线)和衬底(且因此源极与漏极之间的通道),从而导致从通道到目标存储器单元的浮动栅极的电荷转移(例如,直接注入或佛勒-诺德海姆(Fowler-Nordheim,FN)隧穿等)。
相比之下,可将传递电压(Vpass)施加到具有不以编程为目标的存储器单元的一或多个字线,或可将禁止电压(例如,Vcc)施加到具有不以编程为目标的存储器单元的数据线(例如,位线),使得例如禁止电荷从通道转移到此类非目标存储器单元的浮动栅极。传递电压可以取决于例如施加的传递电压与以编程为目标的字线的接近度而可变。禁止电压可包含电源电压(Vcc),例如相对于接地电势(例如,Vss)的来自外部源或电源(例如,电池、AC-DC转换器等)的电压。
作为一实例,如果将编程电压(例如,15V或更高)施加于特定字线,例如WL4,那么可将10V的传递电压施加到一或多个其它字线,例如WL3、WL5等,以禁止非目标存储器单元的编程,或保持并不以编程为目标的这类存储器单元上存储的值。随着所施加编程电压与非目标存储器单元之间的距离增大,制止对非目标存储器单元进行编程所需的传递电压可减小。举例来说,在将15V的编程电压施加到WL4的情况下,可将10V的传递电压施加到WL3和WL5,可将8V的传递电压施加到WL2和WL6,可将7V的传递电压施加到WL1和WL7等。在其它实例中,传递电压或字线的数目等等可更高或更低、或更大或更小。
耦合到数据线(例如,第一、第二、第三或第四位线(BL0-BL2)320-322)中的一或多个的感测放大器360可通过感测特定数据线上的电压或电流,检测相应数据线中的每一存储器单元的状态。
在一或多个编程脉冲(例如,Vpgm)的施加之间,可执行验证操作以确定所选存储器单元是否已到达其既定经编程状态。如果所选存储器单元已达到其预期经编程状态,则可以禁止其进一步编程。如果所选存储器单元尚未达到其既定编程状态,则可施加额外编程脉冲。如果所选存储器单元在特定数目的编程脉冲(例如,最大数目)之后尚未达到其既定经编程状态,那么可以将所选存储器单元或与这类所选存储器单元相关联的串、块或页标记为有缺陷的。
为了擦除存储器单元或存储器单元群组(例如,擦除通常成块或子块地执行),可(例如,使用一或多个位线、选择栅极等)将擦除电压(Vers)(例如,通常Vpgm)施加到以擦除为目标的存储器单元的衬底(且因此源极与漏极之间的通道),同时目标存储器单元的字线保持在例如接地电势(例如,Vss)的电势下,从而导致从目标存储器单元的浮动栅极到通道的电荷转移(例如,直接注入或佛勒-诺德海姆(FN)隧穿等)。
图4说明存储器装置400的实例框图,其包含具有多个存储器单元404的存储器阵列402,以及一或多个电路或组件以提供与存储器阵列402的通信或在存储器阵列402上执行一或多个存储器操作。存储器装置400可包含行解码器412、列解码器414、感测放大器420、页缓冲器422、选择器424、输入/输出(I/O)电路426和存储器控制单元430。
存储器阵列402的存储器单元404可布置于块中,例如第一块402A和第二块402B。每个块可包含子块。举例来说,第一块402A可包含第一子块402A0和第二子块402An,且第二块402B可包含第一子块402B0和第二子块402Bn。每个子块可以包含数个物理页,每个页包含数个存储器单元404。虽然在本文中说明为具有两个块,每一块具有两个子块,并且每一子块具有数个存储器单元404,但是在其它实例中,存储器阵列402可以包含更多或更少的块、子块、存储器单元等。在其它实例中,存储器单元404可以布置成若干行、列、页、子块、块等,并使用例如存取线406、第一数据线410或一或多个选择栅极、源极线等进行存取。
存储器控制单元430可根据在控制线432上接收的一或多个信号或指令控制存储器装置400的存储器操作,所述一或多个信号或指令包含例如指示所需操作(例如,写入、读取、擦除等)的一或多个时钟信号或控制信号,或在地址线416上接收的地址信号(A0-AX)。在存储器装置400外部的一或多个装置可控制控制线432上的控制信号的值或地址线416上的地址信号的值。在存储器装置400外部的装置的实例可包含但不限于主机、存储器控制器、处理器或图4中未说明的一或多个电路或组件。
存储器装置400可使用存取线406和第一数据线410向(例如,写入或擦除)或从(例如,读取)存储单元404中的一或多个传送数据。行解码器412和列解码器414可接收和解码来自地址线416的地址信号(A0-AX),可确定将存取哪些存储器单元404,且可将信号提供到例如上文描述的存取线406(例如,多个字线(WL0-WLm)中的一或多个)或第一数据线410(例如,多个位线(BL0-BLn)中的一或多个)中的一或多个。
存储器装置400可包含例如感测放大器420的感测电路系统,其被配置成使用第一数据线410来确定(例如,读取)存储器单元404上的数据的值,或确定待写入到存储器单元404的数据的值。举例来说,在存储器单元404的选定串中,响应于读取电流在存储器阵列402中穿过选定串流动到数据线410,感测放大器420中的一或多个可以读取选定存储器单元404中的逻辑电平。
在存储器装置400外部的一或多个装置可使用I/O线(DQ0-DQN)408、地址线416(A0-AX)或控制线432与存储器装置400通信。输入/输出(I/O)电路426可根据例如控制线432和地址线416,使用I/O线408将数据的值传送进出存储器装置400,例如进出页缓冲器422或存储器阵列402。页缓冲器422可存储从在存储器装置400外部的一或多个装置接收的数据,然后将所述数据编程到存储器阵列402的相关部分中,或者可存储从存储器阵列402读取的数据,然后将所述数据发射到在存储器装置400外部的一或多个装置。
列解码器414可接收地址信号(A0-AX)并且将其解码为一或多个列地址信号(CSEL1-CSELn)。选择器424(例如,选择电路)可接收列选择信号(CSEL1-CSELn)且选择页缓冲器422中表示将从存储器单元404读取或将编程到存储器单元404中的数据的值的数据。可使用第二数据线418在页缓冲器422与I/O电路426之间传送所选数据。
存储器控制单元430可以从外部源或电源(例如,内部或外部电池、AC-DC转换器等)接收正和负电源信号,例如电源电压(Vcc)434和负电源(Vss)436(例如,接地电势)。在某些实例中,存储器控制单元430可包含调节器428以内部地提供正或负电源信号。
图5说明其上可执行本文中论述的技术(例如,方法)中的任何一或多种的实例机器500的框图。在替代实施例中,机器500可操作为独立装置或可连接(例如,联网)到其它机器。在联网部署中,机器500可在服务器-客户端网络环境中以服务器机器、客户端机器或两者的能力操作。在实例中,机器500可以充当对等(P2P)(或其它分布式)网络环境中的对等机器。机器500可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、IoT装置、汽车系统,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的指令的任何机器。另外,虽然仅说明单个机器,但术语“机器”也将视为包含个别地或共同地执行一(或多个)指令集以进行本文中所论述的方法中的任何一或多种(例如云计算、软件即服务(SaaS)、其它计算机集群配置)的任何机器总集。
如本文所描述,实例可包含逻辑、组件、装置、封装或机构,或者可通过逻辑、组件、装置、封装或机构操作。电路系统是在包含硬件(例如,简单电路、门、逻辑等)的有形实体中实施的电路的总集(例如,集合)。电路系统成员可随时间推移和基础硬件变化而为灵活的。电路系统包含在操作时可单独或组合地进行具体任务的部件。在实例中,电路系统的硬件可被永恒地设计成执行特定操作(例如,硬接线)。在实例中,电路系统的硬件可以包含可变连接的物理组件(例如,执行单元、晶体管、简单电路等),包含物理上经修改(例如,以磁性方式、以电学方式、恒定集结粒子的可移动放置等)以编码特定操作的指令的计算机可读媒体。在连接物理组件时,硬件构成的基础电特性例如从绝缘体改变成导体或从导体改变成绝缘体。指令使得参与的硬件(例如,执行单元或加载机构)能够经由可变连接产生硬件中的电路系统的部件以当在操作中时进行特定任务的部分。因此,当装置正在操作时,计算机可读媒体以通信方式耦合到电路系统的其它组件。在一实例中,物理组件中的任一个可用于超过一个电路系统的超过一个部件中。举例来说,在操作下,执行单元可在一个时间点下用于第一电路系统的第一电路,并且由第一电路系统中的第二电路再使用,或在不同时间下由第二电路系统中的第三电路再使用。
机器(例如,计算机系统)500(例如,主机装置105、存储器装置110等)可包含硬件处理器502(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合,例如存储器控制器115等)、主存储器504和静态存储器506,其中的一些或全部可经由互联件(例如,总线)508彼此通信。机器500可另外包含显示单元510、字母数字输入装置512(例如,键盘)和用户接口(UI)导航装置514(例如,鼠标)。在一实例中,显示单元510、输入装置512和UI导航装置514可为触摸屏显示器。机器500可另外包含存储装置(例如,驱动单元)521、信号产生装置518(例如,扬声器)、网络接口装置520,以及一或多个传感器516,例如全球定位系统(GPS)传感器、指南针、加速度计或其它传感器。机器500可以包含输出控制器528,例如串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接,以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
存储装置521可包含机器可读媒体522,在所述机器可读媒体上存储体现本文中所描述的技术或功能中的任何一或多个或者供本文中所描述的技术或功能中的任何一或多个利用的一或多组数据结构或指令524(例如,软件)。指令524还可以在其由机器500执行期间完全或至少部分地驻留于主存储器504内、静态存储器506内或硬件处理器502内。在实例中,硬件处理器502、主存储器504、静态存储器506或存储装置521中的一个或任何组合可构成机器可读媒体522。
虽然机器可读媒体522说明为单个媒体,但术语“机器可读媒体”可包含被配置成存储一或多个指令524的单个媒体或多个媒体(例如,集中式或分布式数据库,或相关联的高速缓冲存储器和服务器)。
术语“机器可读媒体”可包含能够存储、编码或载送用于由机器500执行且使机器500执行本公开的技术中的任何一或多个的指令,或能够存储、编码或载送由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例可包含固态存储器,以及光学和磁性媒体。在实例中,集中式机器可读媒体包括具有质量不变(例如静止)的多个粒子的机器可读媒体。因此,集中式机器可读媒体是非暂时性传播信号。集中式机器可读媒体的特定实例可以包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和快闪存储器装置;磁盘,例如内部硬盘和可拆卸磁盘;磁光盘;和CD-ROM和DVD-ROM盘。
指令524(例如,软件、程序、操作系统(OS)等)或其它数据存储在存储装置521上,可由存储器504存取以供处理器502使用。存储器504(例如,DRAM)通常是快速但易失性的,且因此是不同于适用于长期存储(包含在处于“关断”状态时的存储)的存储装置521(例如,SSD)的类型的存储装置。供用户或机器500使用的指令524或数据通常加载于主存储器504中以供处理器502使用。当存储器504已满时,可分配来自存储装置521的虚拟空间以增补存储器504;然而,因为存储装置521通常比存储器504慢且写入速度通常比读取速度慢至少两倍,所以虚拟存储器的使用由于存储装置等待时间(相比于存储器504,例如DRAM)可能极大地降低用户体验。此外,用于虚拟存储器的存储装置521的使用可极大地减少存储装置521的可用使用寿命。
相比于虚拟存储器,虚拟存储器压缩(例如,
Figure BDA0002749606740000141
内核特征“ZRAM”)使用存储器的部分作为压缩块存储以避免寻呼到存储装置521。在压缩块中进行寻呼,直到有必要将此类数据写入到存储装置521为止。虚拟存储器压缩增大了存储器504的可用大小,同时减少了对存储装置521的损耗。
针对移动电子装置优化的存储装置或移动存储装置传统上包含MMC固态存储装置(例如,微安全数字(microSDTM)卡等)。MMC装置包含与主机装置的数个并行接口(例如,8位并行接口),且通常是从主机装置可拆卸和分离的组件。相比之下,eMMCTM装置附接到电路板且视为主机装置的组件,其读取速度堪比基于串行ATATM(串行高级技术(AT)附件,或SATA)的SSD装置。然而,对移动装置性能的需求继续增大,以便完全启用虚拟或扩增现实装置,利用提高的网络速度等。响应于此需求,存储装置已从并行通信接口转换到串行通信接口。包含控制器和固件的通用快闪存储(UFS)装置使用具有专用读取/写入路径的低电压差分信令(LVDS)串行接口与主机装置通信,从而进一步推进了更高的读取/写入速度。
指令524可以进一步利用多个传送协议中的任一个(例如,帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)经由网络接口装置520使用发射媒体在通信网络526上发射或接收。实例通信网络可包含局域网(LAN)、广域网(WAN)、分组数据网络(例如因特网)、移动电话网络(例如蜂窝网络)、简易老式电话(POTS)网络和无线数据网络(例如称为
Figure BDA0002749606740000142
的电气电子工程师学会(IEEE)802.11系列标准、称为
Figure BDA0002749606740000151
的IEEE 802.16系列标准)、IEEE 802.15.4系列标准、对等式(P2P)网络等等。在实例中,网络接口装置520可包含一或多个物理插口(例如,以太网、同轴或电话插口)或一或多个天线以连接到通信网络526。在实例中,网络接口装置520可以包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一种进行无线通信。术语“发射媒体”应被视为包含能够存储、编码或载送指令以由机器500执行的任何无形媒体,且包含数字或模拟通信信号或用以促进此软件的通信的其它无形媒体。
图6是主机662与系统661的实例操作的实施例的框图。系统661可包含控制器、随机存取存储器(RAM)、固件和NAND。主机662可发射导向前端663以用于NAND的控制和命令。前端663可包含控制器和其它使NAND与主机662介接的电路系统。固件可提供用以执行对LBA带区的实时监测的指令并且可包含LBA带区累加器664。整组LBA可划分成例如LBA 0-A、LBA A-B、……、LBA Y-最大值等范围。LBA的数目可在不同范围当中变化。LBA带区累加器664提供覆写计算器,所述覆写计算器将主机662写入到所述组LBA范围中的每一范围的次数进行计数。LBA带区累加器664中的计数可提供给LBA查找表(LUT)665以用于实时LBA带区热度分组。LUT 665可存储于系统661的RAM中。
系统661的固件的指令结合LUT 665可基于LBA带区热度将前端663处接收到的主机数据路由到不同主机光标。NAND的主机光标是主机块,其中NAND的主机块是NAND的存储来自主机662的数据的块。主机数据针对不同程度的热度路由到NAND的多个开放主机块666-1、666-2、……、666-M。固件可根据不同数据温度将数据温度分离。举例来说,数据温度可为热、正常和冷,如图6中作为实例所示。固件可实施其它温度水平。固件可设置覆写参数以定义不同数据温度。这类参数可包含写入到与每一数据温度对应的范围的量,固件可通过对系统661的操作分析来调整所述写入量。
实时跟踪数据温度的相对直观的实施可包含针对每一LBA群组的写入计数累加。使用这种方法需要注意的一点是,主机(即,关于存储器平台的用户设备)可在任何时间切换工作负载,并且另外,可切换LBA带区的应用。举例来说,用户主机可在驱动器寿命的第一个10%内使用LBA带区X用于热数据,但在驱动器寿命的剩余部分内使用LBA带区X用于冷数据。在此情况下,问题可包含系统可如何克服在驱动器寿命的剩余部分内带区X的高写入计数饱和。如果在剩余的LBA带区比LBA带区X获得显著更高的写入计数之前,系统仅依赖于写入计数,那么带区X将继续分组为最热带区。此情境可引起明显欠佳设计。
在另一方法中,可为每个LBA带区加时戳。在写入(TBW)或时间戳之间的特定时间量内不使用LBA带区的任何时间,LBA带区可标记为冷带,不过所述带上的写入计数比重的冷带的写入计数高。将每一LBA带区加时戳的此方法可在主机在随机基础上接触每个LBA带区的情况下失效。在此实例中,就写入的数据量来说,带区X可显著下降,但就主机接触带的频率来说,频率可与其它LBA带区处于同等水平。在此情况下,将每一LBA带区上的最新存取加时戳不满足目标。
在各种实施例中,可维持多个数据温度分析器。本文中的数据温度分析器是可关于LBA处覆写分析给定数据的一组一或多个电路。所述组电路可实现为具有如下指令的硬件:以所述指令定义的方式详细检查给定数据的结构并且找到数据部分之间的模式和关系。所述指令可实现为可由控制器执行的所存储指令。所述指令可维持为用于NAND存储器装置的固件。
每一数据温度分析器可关于训练大小和更新大小进行结构化操作。训练大小可处理为需要进行分析以指配每一LBA带区的温度的总写入数据量。更新大小是在确定数据温度分析器何时获取LBA带区的数据温度快照时使用的写入大小间隔。训练大小和更新大小可用以确定将由固件实施和运行的数据温度分析器的数目。可通过训练大小和更新大小的比(训练大小)/(更新大小)计算数据温度分析器的数目。
在操作中,多个数据温度分析器的起点可在更新大小上彼此交错。在数据温度分析器跟踪的总主机数据命中完整训练大小的任何时间,给定数据温度分析器可捕获每一LBA带区的数据温度的快照。一旦捕获快照,写入计数器可重置到数据温度分析器中的参考水平,例如零,以开始从所述参考水平起再次对到带区的主机写入计数。此过程可针对写入的主机数据的每一完整训练大小并且用于多个数据温度分析器中的每一数据温度分析器进行重复。
图7是仅具有具数个带区累加器的单个累加器764的实例数据温度分析器767的实施例的功能图。单个累加器764累加来自累加器764的数个带区累加器的总累计式写入(TCW)。累加器764可包含LBA带区-1写入累加器、LBA带区-2写入累加器、……、LBA带区-N写入累加器。LBA带区-1写入累加器、LBA带区-2写入累加器、……、LBA带区-N写入累加器中的每一个对到其对应LBA带区的写入的数目计数。
用于数据温度分析器767的输入可包含主机数据写入请求762。主机数据写入请求762可包含具有开始LBA地址和写入到数据温度分析器767工作时所针对的NAND所需的LBA的数目的主机命令。数据温度分析器767可包含LBA带区标识符768,其确定与主机数据写入请求762对应的计数将被更新的适当LBA带区累加器。另外,主机数据写入请求762可导向累加器764以提供TCW。数据温度分析器767可包含TCW与训练长度的比较769-1。如果TCW小于训练长度,那么累加器764维持其计数直到接收到下一主机写入请求。如果TCW大于训练长度,那么过程转到数据温度分析器767的分析器769-2。在分析器769-2激活的情况下,重置信号发送到累加器764以重置每一LBA带区的写入累加器的计数并且将总累计式写入计数重置到参考水平,例如零。
分析器769-2可通过每一带区的累计式写入将LBA带区排序,并且可分配用于每一LBA带区的数据温度。具有最小写入大小的带区处于最低温度且具有最大写入大小的带区处于最高温度。分析器769-2可数目X的LBA带区映射到数目Y的温度区中。分析器769-2可将所述映射作为输出提供到LBA温度LUT 765。通过分析器769-2的映射提供从数据温度分析器767的累加器764的取样时间起的数据温度分布的快照,其可更新LBA范围的数据温度。以与数据温度分析器767的累加器764类似的操作方式布置的另一数据温度分析器的另一累加器可提供另一快照,其可在关于到NAND存储器装置的主机写入的稍后时间更新LBA范围的数据温度。
图8是具有多个累加器的实例温度分析器的实施例的功能图。虽然图7的数据温度分析器767是实施的多个数据温度分析器中的一个数据温度分析器,但数据温度分析器867包含数个累加器ACC1、ACC2、……、ACCM,其可提供数据温度分析器767是其中一个的多个数据温度分析器的计数功能性。数个累加器ACC1、ACC2、……、ACCM中的每一累加器针对LBA地址划分成的多个LBA范围中的每一个对到每一LBA范围的主机写入的数目计数。另外,累加器ACC1、ACC2、……、ACCM中的每一累加器可产生针对所述LBA范围的TCW,并且可由数据温度分析器867以独立于累加器中的其它累加器的方式进行操作。
用于数据温度分析器867的输入可包含主机数据写入请求862。主机数据写入请求862可包含具有开始LBA地址和写入到NAND所需的LBA的数目的主机命令。数据温度分析器867可确定针对适当的LBA带区更新所写入的主机的哪个计数。数据温度分析器867可选择累加器ACC1、ACC2、……、ACCM中的其TCW大于预定训练长度的一个累加器。数据温度分析器867可选择累加器ACC1、ACC2、……、ACCM中的其TCW等于预定训练长度的一个累加器。所选择累加器对用于NAND存储器装置的带区集中的带区的累加计数和累加计数的累计量可作为当前样本提供给分析器869。通过将来自累加器ACC1、ACC2、……、ACCM中的所选择累加器的当前样本呈现到分析器869,分析器869可发送重置信号给所选择的累加器以将LBA带区的计数重置到参考,例如零,并且将所选择累加器中的TCW重置到对应参考,例如零。
分析器869可通过每一带区的累计式写入将LBA带区排序,并且可分配用于每一LBA带区的数据温度。具有最小写入大小的带区处于最低温度且具有最大写入大小的带区处于最高温度。分析器869可将数目X的LBA带区映射到数目Y的温度区中。分析器869可将映射作为输出提供到LBA温度LUT 865。当前样本从取样时间起提供数据温度分布的快照。累加器ACC1、ACC2、……、ACCM中的下一个所选择的累加器可提供另一快照,其可更新LBA范围的数据温度。
图9是说明使多个累加器交错的实例的实施例的时序图。时序是关于主机写入数据的量并非时间。为易于呈现,示出了四个累加器。累加器的数目可多于或少于四个。累加器1可来自第一数据温度分析器或可为共同数据温度分析器的第一累加器。累加器2可来自第二数据温度分析器或可为共同数据温度分析器的第二累加器。累加器3可来自第三数据温度分析器或可为共同数据温度分析器的第三累加器。累加器4可来自第四数据温度分析器或可为共同数据温度分析器的第四累加器。通过每一累加器针对每一LBA范围对主机计数的累加的起点可在更新大小上与多个累加器中的另一累加器的起点,使得累加器中的每一个相对于参考计数(例如参考零)以写入到NAND存储器装置的主机数据的不同量开始其计数。
在图9的实例中,更新大小选择为写入的0.5GB主机数据,不过可使用用于更新大小的其它大小。对于写入的每0.5GB主机数据,从累加器中的一个(累加器1、……、累加器4)使用其相关联分析器捕获写入的主机数据的快照。所捕获的快照提供对温度LUT表的更新。在此实例中,在累加器1上使用其相关联分析器取得快照,随后在蓄积器2上使用其相关联分析器取得快照,在蓄积器3上使用其相关联分析器取得快照,并且在蓄积器4上使用其相关联分析器4取得快照。可以环圈方式捕获快照,其中中累加器4上使用其相关联分析器取得快照之后,再次在累加器1上使用其相关联分析器取得快照。在累加器1上使用其相关联分析器取得此下一个快照之后是在累加器2上使用其相关联分析器取得快照,在累加器3上使用其相关联分析器取得快照,并且在累加器4上使用其相关联分析器4取得快照。此过程可以其环圈方式继续。
每一累加器的使用其相关联分析器取得的快照可从其训练长度导出。可从先前写入的主机数据的历史的分析确定训练长度。在此实例中,可从2GB历史的先前写入主机数据导出训练长度。取决于NAND存储器装置的特定实施方案和主机使用,训练长度可大于或小于2GB。在图9的实例中,起始累加器1以从参考零计数开始对到LBA范围集的主机数据写入计数。在从累加器1的参考零计数起有0.5GB的主机数据写入之后,起始累加器2以从其参考零计数起对到LBA范围集的主机数据写入计数。在从累加器1的参考零计数起等于1.0GB主机数据写入的另一0.5GB主机数据写入之后,起始累加器3以从其参考零计数起对到LBA范围集的主机数据写入计数。在从累加器1的参考零计数起等于1.5GB主机数据写入的另一0.5GB主机数据写入之后,起始累加器4以从其参考零计数起对到LBA范围集的主机数据写入计数。
在972处,累加器1具有等于训练长度的TCW,其触发LBA带区的数据温度的快照1和到参考零的重置事件,以累加到每一LBA范围的主机数据写入的计数和针对累加器1的TCW的计数。此快照可用作数据温度LUT表,其可用以基于所接收的逻辑块地址属于的逻辑块地址的带区集中的一带区并且基于快照1更新的数据温度查找表,将具有从主机接收的逻辑块地址的数据路由到与数个数据温度区中的一温度区相关联的物理块。温度区可包含冷区、正常区和热区。在各种实施例中,温度区集可包含比冷区、正常区和热区更多的温度区。在从与累加器1相关联的分析器导出快照之后,可重置主机数据写入计数并且可重启主机数据写入大小累加。
在974处,累加器2具有等于训练长度的TCW,其触发LBA带区的数据温度的快照2和到参考零的重置事件,以累加到每一LBA范围的主机数据写入的计数和针对累加器2的TCW的计数。快照2而非快照1可用作数据温度LUT表,其中通过快照2更新的数据温度LUT表可用以将具有从主机接收的逻辑块地址的数据路由到与温度区相关联的物理块。在快照从与累加器2相关联的分析器导出之后,可重置主机数据写入计数并且可针对累加器2重新开始主机数据写入大小累加。
在976处,累加器3具有等于训练长度的TCW,其触发LBA带区的数据温度的快照3和到参考零的重置事件,以累加到每一LBA范围的主机数据写入的计数和针对累加器3的TCW的计数。快照3而非快照1或2可用作数据温度LUT表,其中通过快照3更新的数据温度LUT表可用以将具有从主机接收的逻辑块地址的数据路由到与温度区相关联的物理块。在快照从与累加器3相关联的分析器导出之后,可重置主机数据写入计数并且可针对累加器3重新开始主机数据写入大小累加。
在978处,累加器4具有等于训练长度的TCW,其触发LBA带区的数据温度的快照4和到参考零的重置事件,以累加到每一LBA范围的主机数据写入的计数和针对累加器4的TCW的计数。快照4而非快照1、2或3可用作数据温度LUT表,其中通过快照4更新的数据温度LUT表可用以将具有从主机接收的逻辑块地址的数据路由到与温度区相关联的物理块。在快照从与累加器4相关联的分析器导出之后,可重置主机数据写入计数并且可针对累加器4重新开始主机数据写入大小累加。
在982处,累加器1再次具有等于训练长度的TCW,其触发LBA带区的数据温度的另一快照1和到参考零的重置事件,以累加到每一LBA范围的主机数据写入的计数和针对累加器1的TCW的计数。此新的快照1可用作数据温度LUT表,其可用以将具有从主机接收的逻辑块地址的数据路由到与温度区相关联的物理块。982处的事件可处理为与事件974相关联的过程的重复。
在984处,累加器2再次具有等于训练长度的TCW,其触发LBA带区的数据温度的另一快照2和与事件974相关联的过程的重复。在986处,累加器3再次具有等于训练长度的TCW,其触发LBA带区的数据温度的另一快照3和与事件976相关联的过程的重复。在988处,累加器4再次具有等于训练长度的TCW,其触发LBA带区的数据温度的另一快照4和与事件978相关联的过程的重复。
图10是操作NAND装置的实例方法的实施例的特征的流程图。在1010处,针对用于NAND存储器装置的逻辑块地址带区集中的每一带区,累加写入到所述集中的逻辑块地址带区的主机数据的计数,其中所述累加在用于NAND存储器装置的多个累加器中的每一累加器中执行。所述多个累加器中的每一累加器可构造成一组多个温度分析器中的温度分析器的单个累加器,其中每一温度分析器与所述组中的其它温度分析器隔开。在1020处,使每一累加器对所述计数的所述累加的起点在更新大小上与所述多个累加器中的另一累加器的起点交错。所述累加器中的每一个可相对于参考零计数以写入到所述NAND存储器装置的主机数据的不同量开始其计数。
在1030处,当逻辑块地址带区集中的带区的累加计数的累计量达到所述累加器中的一累加器的训练大小时,更新数据温度查找表。更新所述数据温度查找表可包含通过多个累加器中的相应累加器的每一带区的累加计数将逻辑块地址带区集中的带区排序,以及分配用于每一经排序带区的数据温度。更新所述数据温度查找表可包含使用多个累加器中的每一累加器按序列以环圈方式更新所述数据温度查找表,其中通过最后一个开始的累加器更新所述数据温度查找表之后是通过第一个开始的累加器更新所述数据温度查找表。
在1040处,从主机接收具有逻辑块地址的数据并且基于逻辑块地址带区集中的所接收的逻辑块地址属于的带区并且基于数据温度查找表,将所接收的数据路由到与数个数据温度区中的一温度区相关联的块。路由所接收的数据可包含控制所接收的数据到存储器阵列的根据热、正常和冷参数布置的开放块中的路由。控制所接收的数据到存储器阵列的开放块中的路由可包含控制路由所接收的数据以使得无效数据大体处于具有热数据的块中。路由所接收的数据可包含控制所接收的数据到存储器阵列的根据冷块参数和热块参数布置的开放块中的路由。
方法1000或类似于方法1000的方法的变型可包含可取决于这类方法和/或其中实施这类方法的系统架构的应用进行组合的数个不同实施例。这类方法可包含将NAND存储器装置的整个有效范围的逻辑块地址分离成逻辑块地址带区集中的带区。方法1000或类似方法可包含将每一累加器的计数设置为零,并且当逻辑块地址带区集中的带区的累加计数的累计量达到相应累加器的训练大小时开始另一计数。方法1000或类似方法可包含基于连续LBA带区的一或多个梯度,自适应地调整逻辑块地址带区集中的LBA带区的数目。
在各种实施例中,一种设备可包括:存储器装置,其具有存储器单元的存储器阵列,所述存储器阵列布置于存储器单元块中;和固件,其具有所存储指令以在与逻辑块地址对应布置的所述存储器阵列上操作。所述指令可包含以下操作:针对用于所述存储器装置的逻辑块地址带区集中的每一带区,累加写入到所述集中的逻辑块地址带区的主机数据的计数,其中每一计数的所述累加在用于所述存储器装置的多个累加器中的每一累加器中执行;和使每一累加器对所述计数的所述累加的起点在更新大小上与所述多个累加器中的另一累加器的起点交错。所述累加器中的每一个可相对于参考零计数以写入到NAND存储器装置的主机数据的不同量开始其计数。所述操作可包含以下操作:当所述逻辑块地址带区集中的所述带区的所述累加计数的累计量达到所述累加器中的一累加器的训练大小时,更新数据温度查找表;和从主机接收具有逻辑块地址的数据并且基于所述逻辑块地址带区集中的所述所接收的逻辑块地址属于的带区并且基于所述数据温度查找表,将所述所接收的数据路由到与数个数据温度区中的一温度区相关联的块。所述设备可包含每一累加器的设置为零的所述计数,以及当所述逻辑块地址带区集中的所述带区的所述累加计数的所述累计量等于相应累加器的训练大小时开始的另一计数。
所述数据温度查找表的更新可包含:通过使用所述多个累加器中的所述相应累加器对每一带区的所述累加计数对所述逻辑块地址带区集中的所述带区的排序;和用于每一经排序带区的数据温度的分配。所述数据温度查找表的更新可包含通过使用借助一累加器产生的条目对所述数据温度查找表的更新,所述累加器具有由来自最后一个更新所述数据温度查找表的累加器的所述更新大小触发的起点。所述数据温度查找表的更新可包含通过使用所述多个累加器中的每一累加器按序列以环圈方式对所述数据温度查找表的更新,其中通过最后一个开始的累加器对所述数据温度查找表的更新之后是通过第一个开始的累加器对所述数据温度查找表的更新。
所述数据温度查找表可包含所述逻辑块地址带区集中的每一带区到数个数据温度区中的温度区中的映射。所述数个数据温度区包含被标识为热、正常和冷的数据温度区。所述存储器装置可实现为具有三维存储器阵列的NAND存储器装置。所述存储器装置可实现为具有二维存储器阵列的NAND存储器装置。
在各种实施例中,一种系统可包括:一或多个主机处理器;控制器,其经耦合以与所述一或多个主机处理器通信;存储器装置集,其耦合到所述控制器,所述存储器装置集包含NAND存储器装置,所述NAND存储器装置具有布置于存储器单元块中的存储器阵列,和固件,在所述固件中存储指令以在与逻辑块地址对应布置的所述NAND存储器装置上操作。所述指令可包含以下操作:针对用于所述NAND存储器装置的逻辑块地址带区集中的每一带区,累加写入到所述集中的逻辑块地址带区的主机数据的计数,每一计数的所述累加在用于所述NAND存储器装置的多个累加器中的每一累加器中执行;和使每一累加器对所述计数的所述累加的起点在更新大小上与所述多个累加器中的另一累加器的起点交错。所述累加器中的每一个可相对于参考零计数以写入到所述NAND存储器装置的主机数据的不同量开始其计数。所述操作可包含以下操作:通过相应带区的写入的所述累加计数将所述逻辑块地址带区集中的每一带区排序;分配用于每一经排序带区的数据温度;根据所述分配的数据温度,将所述经排序带区映射到数个温度区中;和基于所述映射,控制具有从主机接收的逻辑块地址的数据的路由。
这类系统的变型可包含可取决于所述系统和/或这类系统的架构的应用进行组合的数个不同实施例。所述多个累加器中的每一累加器可构造成一组多个温度分析器中的温度分析器的单个累加器,其中每一温度分析器与所述组中的其它温度分析器隔开。所述固件可与在所述数据路由的所述控制中使用的数据温度查找表相关联,其中所述数据温度查找表当所述逻辑块地址带区集中的所述带区的所述累加计数的累计量达到所述多个累加器中的累加器的训练大小时经更新。所述数据温度查找表的所述更新可包含由一累加器产生的条目的使用,所述累加器具有由来自最后一个更新所述数据温度查找表的累加器的所述更新大小触发的起点。所述数据温度查找表的更新可包含按序列以环圈方式对所述多个累加器中的每一累加器的使用,其中通过最后一个开始的累加器对所述数据温度查找表的更新之后是通过第一个开始的累加器对所述数据温度查找表的更新。所述逻辑块地址带区集可在LBA带区的数目上基于连续LBA带区的一或多个梯度而为自适应的。
在各种实施例中,如本文所教示,通过一或多个数据温度分析器使主机数据写入累加器交错可通过实时跟踪主机覆写速率,提供将主机数据分组成NAND存储器装置的经分类热块和冷块。累加器与其相关联数据温度分析器的此布置可提供跟踪任何主机变型的闭环反馈。这类布置可允许通过跟踪LBA带区层级而非个别LBA层级处的热度来增强或优化系统层级存储器要求。此分组过程可使用标记为热数据的主机写入数据提供有效操作性能改进。
使用一或多个数据温度分析器对主机数据写入累加器的起点交错来跟踪逻辑块地址范围的数据温度可提供对存储器装置(例如NAND存储器装置)中的存储器空间更高效使用,这又可提供减小的写入放大。减小的写入放大可减小存储器装置的耐久性要求。NAND存储器装置的耐久性相对于所述存储器装置的其它规范的折衷可提供NAND存储器装置的更佳编程速度或错误容限。
减小的写入放大也可增加NAND存储器装置的写入性能。使用本文所教示的布置和技术,LBA带区的数目可基于每个LBA带区的覆写速率的梯度而扩大或缩小。梯度意指在将LBA的空间分割成LBA带区时,两个直接相邻的连续LBA带区(例如带区X和带区X+1)之间的覆写差。这些相邻带区也可被称作共轭带区。如果增加LBA带区计数会改进梯度,那么可使LBA带区计数进一步递增。如果共轭LBA带区不展示显著梯度,那么此现象指示LBA带区分割大于用户数据分割。在此情况下,可以减小LBA带区粒度。通过分析到LBA范围的主机数据写入的改变并且相对于界定带区的LBA的间隔调整LBA带区的结构,可使LBA带区的数目收敛到随用户工作负载而变的最优值。
考虑以下实例,如果LBA带区X的覆写速率是A且共轭LBA带区X+1的覆写速率显著大于(>>)A,则未知是整个带区X+1具有大于带区X的覆写速率还是仅带区X+1的较小部分具有大于带区X的覆写速率。有可能带区X+1的较小热子带在与其它子带相比时可具有较大覆写速率。另一方面,如果带区X和带区X+1具有类似覆写速率,那么以相当高的置信度假设这些带区内的整个LBA范围不具有覆写速率为高的超级热(相对非常频繁的主机数据写入)子带的封包。如果带区X和带区X+1之间的覆写速率存在巨大差异,那么可减小LBA带区的大小以致力于缩小/缩窄带区X+1的具有较高覆写速率的子带或部分。因此,LBA带区的数目可基于共轭LBA带区之间的覆写差而动态地改变。
与NAND存储器的操作相关联的固件可将LBA带区的数目结构化为基于LBA带区的梯度为自适应的。举例来说,如果两个共轭LBA带区在覆写速率上与剩余的LBA带区相比具有较大增量,那么这可指示LBA带区处于粗层级并且提供减小LBA带区粒度的机会。另一方面,如果共轭LBA带区相对于相同覆写速率恰好具有相同大小,其中覆写经归一化到LBA带区大小,那么提供将LBA带区合并成单个LBA带区的机会。LBA带区较少可将存储器要求降到最低。LBA带区较少暗示数据温度分析器中的计数器较少。计数器较少暗示存储器大小较小。在其它情况下,较大数目的LBA带区可有助于达成较小粒度并且提供垃圾收集优化。
考虑以下具有256GB密度并且开始10个带区且初始带区大小为26GB的实例。假设LBA带区0横跨范围0GB-26GB LBA,且LBA带区1横跨范围26GB-52GB LBA。还假设45GB-50GB在与其它LBA范围相比时被更频繁覆写。在此情况下,带区1在与带区0相比时具有较高覆写速率。然而,LBA带区1是从26GB-45GB的较慢覆写速率与从45GB-50GB的较高覆写速率的混合。基于带区0和带区1之间的增量,可猜测LBA带区1中的一子带(在此实例中,45GB-50GB)在与其它子带(25GB-4 5GB)相比时很可能具有较高覆写速率。减小LBA粒度可有助于将LBA0-45GB分组到较少覆写冷带区并且将LBA 45GB-50GB分组到高覆写速率热带区,并且进而达成更佳数据分离。
以上详细描述包含对随附图式的参考,所述随附图式形成详细描述的部分。所述图借助于图示展示可实践本发明的具体实施例。这些实施例在本文中也称为“实例”。此类实例可包含除了所展示或描述的那些要素之外的要素。然而,本发明人还预期其中仅提供所展示或所描述的那些元件的实例。此外,本发明的发明人还预期使用相对于特定实例(或其一或多个方面)或相对于本文展示或描述的其它实例(或其一或多个方面)而展示或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
在本文件中,术语如专利文件中所常见而使用术语“一”以包含一个或多于一个,其独立于“至少一个”或“一或多个”的任何其它例子或使用。在此文献中,术语“或”用于指代非排它性或,使得除非另有指示,否则“A或B”可包含“A而非B”、“B而非A”以及“A和B”。在所附权利要求书中,术语“包含(including)”和“其中(in which)”用作相应术语“包括(comprising)”和“其中(wherein)”的简洁英文等效术语。并且,在所附权利要求书中,术语“包含”和“包括”为开放式的,即,包含除权利要求中此术语之后所列的要素之外的要素的系统、装置、制品或过程仍被认为落在该权利要求的范围内。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅用作标记,且并不意图对其对象施加数字要求。
在不同实例中,本文中所描述的组件、控制器、处理器、单元、引擎或表可尤其包含存储于物理装置上的物理电路系统或固件。如本文中所使用,“处理器”意指任何类型的计算电路,如但不限于微处理器、微控制器、图形处理器、数字信号处理器(DSP)或任何其它类型的处理器或处理电路,包含处理器或多核心装置的群组。
如本文所使用,操作存储器单元包含从存储器单元读取、对存储器单元写入或擦除存储器单元。使存储器单元置于既定状态中的操作在本文中被称作“编程”,且可包含对存储器单元写入或从存储器单元擦除(例如,存储器单元可经编程为擦除状态)。
根据一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如,处理器、控制器、固件等)能够确定(例如,选择、设置、调整、计算、改变、清除、传达、调适、导出、定义、利用、修改、应用等)一定数量的损耗循环或损耗状态(例如,记录损耗循环、当其发生时对存储器装置的操作计数、跟踪其起始的存储器装置的操作、评估对应于损耗状态的存储器装置特性等)。
根据一或多个实施例,存储器存取装置可配置成为存储器装置提供每一存储器操作的磨损循环信息。存储器装置控制电路(例如,控制逻辑)可被编程为补偿对应于磨损循环信息的存储器装置性能改变。存储器装置可接收损耗循环信息且响应于损耗循环信息而确定一或多个操作参数(例如,值、特性)。
将理解,当一元件被称作“在另一元件上”、“连接到另一元件”或“与另一元件耦合”时,其可直接在另一元件上、与另一元件直接连接或耦合,或可存在中间元件。相比之下,当一元件被称作“直接在另一元件上”、“直接连接到另一元件”或“与另一元件直接耦合”时,不存在中间元件或层。如果两个元件在图式中展示为被线连接,那么除非另外指明,否则所述两个元件可耦合或直接耦合。
本文中描述的方法实例可至少部分地由机器或计算机实施。一些实例可包括编码有指令的计算机可读媒体或机器可读媒体,所述指令可用于配置电子装置以执行如在以上实例中所描述的方法。这类方法的实施方案可包含代码,如微码、汇编语言代码、高级语言代码或类似物。这类代码可包括用于执行各种方法的计算机可读指令。代码可以形成计算机程序产品的一部分。此外,代码可例如在执行期间或在其它时间有形地存储于一或多个易失性或非易失性有形计算机可读媒体上。这些有形计算机可读媒体的实例可包含但不限于:硬盘、可装卸式磁盘、可装卸式光盘(例如,压缩光盘和数字视频光盘)、盒式磁带、存储器卡或棒、随机存取存储器(RAM)、只读存储器(ROM)、固态驱动器(SSD)、通用快闪存储(UFS)装置、嵌入式MMC(eMMC)装置等等。
以上描述意在为说明性的而非限制性的。举例来说,上文所描述的实例(或其一个或多个方面)可彼此组合使用。例如所属领域的普通技术人员在研究以上描述后可使用其它实施例。另外,在以上具体实施方式中,可将各种特征分组在一起以简化本发明。不应将这一情况解释为希望未要求保护的公开特性对任何权利要求来说是必需的。实际上,本发明主题可在于比特定所公开实施例的所有特征要少。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求作为一单独实施例而独立存在,且预期这些实施例可以各种组合或排列彼此组合。

Claims (25)

1.一种方法,其包括:
针对用于NAND存储器装置的逻辑块地址带区集中的每一带区,累加写入到所述集中的逻辑块地址带区的主机数据的计数,所述累加在用于NAND存储器装置的多个累加器中的每一累加器中执行;
使每一累加器对所述计数的所述累加的起点在更新大小上与所述多个累加器中的另一累加器的起点交错,使得所述累加器中的每一个相对于参考零计数以写入到所述NAND存储器装置的主机数据的不同量开始其计数;
当所述逻辑块地址带区集中的所述带区的所述累加计数的累计量达到所述累加器中的一累加器的训练大小时,更新数据温度查找表;和
从主机接收具有逻辑块地址的数据并且基于所述逻辑块地址带区集中的所述所接收的逻辑块地址属于的带区并且基于所述数据温度查找表,将所述所接收的数据路由到与数个数据温度区中的一温度区相关联的块。
2.根据权利要求1所述的方法,其中所述多个累加器中的每一累加器被构造成一组多个温度分析器中的温度分析器的单个累加器,每一温度分析器与所述组中的其它温度分析器隔开。
3.根据权利要求1所述的方法,其中所述方法包含将所述NAND存储器装置的整个有效范围的逻辑块地址分离成所述逻辑块地址带区集中的所述带区。
4.根据权利要求1所述的方法,其中所述方法包含将每一累加器的所述计数设置为零,并且当所述逻辑块地址带区集中的所述带区的所述累加计数的所述累计量达到相应累加器的训练大小时开始另一计数。
5.根据权利要求1所述的方法,其中更新所述数据温度查找表包含:
通过所述多个累加器中的所述相应累加器的每一带区的所述累加计数将所述逻辑块地址带区集中的所述带区排序;和
分配用于每一经排序带区的数据温度。
6.根据权利要求1所述的方法,其中更新所述数据温度查找表包含使用借助一累加器产生的条目更新所述数据温度查找表,所述累加器具有由来自最后一个更新所述数据温度查找表的累加器的所述更新大小触发的起点。
7.根据权利要求6所述的方法,其中更新所述数据温度查找表包含使用所述多个累加器中的每一累加器按序列以环圈方式更新所述数据温度查找表,其中通过最后一个开始的累加器更新所述数据温度查找表之后是通过第一个开始的累加器更新所述数据温度查找表。
8.根据权利要求1所述的方法,其中路由所述所接收的数据包含控制所述所接收的数据到所述存储器阵列的根据热、正常和冷参数布置的开放块中的路由。
9.根据权利要求8所述的方法,其中控制所述所接收的数据到所述存储器阵列的开放块中的路由包含控制路由所述所接收的数据以使得无效数据大体处于具有热数据的块中。
10.根据权利要求1所述的方法,其中路由所述所接收的数据包含控制所述所接收的数据到所述存储器阵列的根据冷块参数和热块参数布置的开放块中的路由。
11.一种设备,其包括:
存储器装置,其具有存储器单元的存储器阵列,所述存储器阵列布置于存储器单元块中;和
固件,其具有所存储指令以在与逻辑块地址对应布置的所述存储器阵列上操作,所述指令包含以下操作:
针对用于所述存储器装置的逻辑块地址带区集中的每一带区,累加写入到所述集中的逻辑块地址带区的主机数据的计数,每一计数的所述累加在用于所述存储器装置的多个累加器中的每一累加器中执行;
使每一累加器对所述计数的所述累加的起点在更新大小上与所述多个累加器中的另一累加器的起点交错,使得所述累加器中的每一个相对于参考零计数以写入到NAND存储器装置的主机数据的不同量开始其计数;
当所述逻辑块地址带区集中的所述带区的所述累加计数的累计量达到所述累加器中的一累加器的训练大小时,更新数据温度查找表;和
从主机接收具有逻辑块地址的数据并且基于所述逻辑块地址带区集中的所述所接收的逻辑块地址属于的带区并且基于所述数据温度查找表,将所述所接收的数据路由到与数个数据温度区中的一温度区相关联的块。
12.根据权利要求11所述的设备,其中所述设备包含每一累加器的设置为零的所述计数,以及当所述逻辑块地址带区集中的所述带区的所述累加计数的所述累计量等于相应累加器的训练大小时开始的另一计数。
13.根据权利要求11所述的设备,其中所述数据温度查找表的更新包含:
通过使用所述多个累加器中的所述相应累加器对每一带区的所述累加计数对所述逻辑块地址带区集中的所述带区的排序;和
用于每一经排序带区的数据温度的分配。
14.根据权利要求11所述的设备,其中所述数据温度查找表的更新包含通过使用借助一累加器产生的条目对所述数据温度查找表的更新,所述累加器具有由来自最后一个更新所述数据温度查找表的累加器的所述更新大小触发的起点。
15.根据权利要求11所述的设备,其中所述数据温度查找表的更新包含通过使用所述多个累加器中的每一累加器按序列以环圈方式对所述数据温度查找表的更新,其中通过最后一个开始的累加器对所述数据温度查找表的更新之后是通过第一个开始的累加器对所述数据温度查找表的更新。
16.根据权利要求11所述的设备,其中所述数据温度查找表包含所述逻辑块地址带区集中的每一带区到数个数据温度区中的温度区中的映射。
17.根据权利要求16所述的设备,其中所述数个数据温度区包含被标识为热、正常和冷的数据温度区。
18.根据权利要求11所述的设备,其中所述存储器装置是具有三维存储器阵列的NAND存储器装置。
19.根据权利要求11所述的设备,其中所述存储器装置是具有二维存储器阵列的NAND存储器装置。
20.一种系统,其包括:
一或多个主机处理器;
控制器,其经耦合以与所述一或多个主机处理器通信;
存储器装置集,其耦合到所述控制器,所述存储器装置集包含
NAND存储器装置,所述NAND存储器装置具有布置于存储器单元块中的存储器阵列,和
固件,在所述固件中存储指令以在与逻辑块地址对应布置的所述NAND存储器装置上操作,所述指令包含以下操作:
针对用于所述NAND存储器装置的逻辑块地址带区集中的每一带区,累加写入到所述集中的逻辑块地址带区的主机数据的计数,每一计数的所述累加在用于所述NAND存储器装置的多个累加器中的每一累加器中执行;
使每一累加器对所述计数的所述累加的起点在更新大小上与所述多个累加器中的另一累加器的起点交错,使得所述累加器中的每一个相对于参考零计数以写入到所述NAND存储器装置的主机数据的不同量开始其计数;
通过相应带区的写入的所述累加计数将所述逻辑块地址带区集中的每一带区排序;
分配用于每一经排序带区的数据温度;
根据所述分配的数据温度,将所述经排序带区映射到数个温度区中;和
基于所述映射,控制具有从主机接收的逻辑块地址的数据的路由。
21.根据权利要求20所述的系统,其中所述多个累加器中的每一累加器被构造成一组多个温度分析器中的温度分析器的单个累加器,每一温度分析器与所述组中的其它温度分析器隔开。
22.根据权利要求20所述的系统,其中所述固件是与在所述数据路由的所述控制中使用的数据温度查找表相关联,所述数据温度查找表当所述逻辑块地址带区集中的所述带区的所述累加计数的累计量达到所述多个累加器中的累加器的训练大小时经更新。
23.根据权利要求20所述的系统,其中所述数据温度查找表的所述更新包含由一累加器产生的条目的使用,所述累加器具有由来自最后一个更新所述数据温度查找表的累加器的所述更新大小触发的起点。
24.根据权利要求20所述的系统,其中所述数据温度查找表的更新包含按序列以环圈方式对所述多个累加器中的每一累加器的使用,其中通过最后一个开始的累加器对所述数据温度查找表的更新之后是通过第一个开始的累加器对所述数据温度查找表的更新。
25.根据权利要求20所述的系统,其中所述逻辑块地址带区集在逻辑块地址带区的数目上基于连续逻辑块地址带区的一或多个梯度而为自适应的。
CN201980029110.1A 2018-03-19 2019-03-07 跟踪逻辑块地址的数据温度 Active CN112041931B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/924,951 2018-03-19
US15/924,951 US10365854B1 (en) 2018-03-19 2018-03-19 Tracking data temperatures of logical block addresses
PCT/US2019/021169 WO2019182760A1 (en) 2018-03-19 2019-03-07 Tracking data temperatures of logical block addresses

Publications (2)

Publication Number Publication Date
CN112041931A true CN112041931A (zh) 2020-12-04
CN112041931B CN112041931B (zh) 2024-04-16

Family

ID=67394302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980029110.1A Active CN112041931B (zh) 2018-03-19 2019-03-07 跟踪逻辑块地址的数据温度

Country Status (3)

Country Link
US (2) US10365854B1 (zh)
CN (1) CN112041931B (zh)
WO (1) WO2019182760A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11056156B2 (en) 2017-08-31 2021-07-06 Micron Technology, Inc. Optimized scan interval
US11068197B2 (en) 2018-03-19 2021-07-20 Micron Technology, Inc. Tracking data temperatures of logical block addresses

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10403378B1 (en) * 2018-02-09 2019-09-03 Micron Technology, Inc. Performing an operation on a memory cell of a memory system at a frequency based on temperature
US11416163B2 (en) * 2020-04-09 2022-08-16 SK Hynix Inc. Systems and methods for dynamic logical block address distribution between multicores
US11694017B2 (en) * 2020-07-15 2023-07-04 Micron Technology, Inc. Temperature-based on board placement of memory devices
US11442654B2 (en) * 2020-10-15 2022-09-13 Microsoft Technology Licensing, Llc Managing and ranking memory resources

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120033503A1 (en) * 2010-08-09 2012-02-09 Juhyung Kim Charge trap flash memory device and an erasing method thereof
CN102985976A (zh) * 2010-04-18 2013-03-20 桑迪士克技术有限公司 包括减小其他存储单元的影响的对非易失性存储器的编程
US20140050026A1 (en) * 2012-08-16 2014-02-20 Tseng-Ho Li Method of Executing Wear Leveling in a Flash Memory Device According to Ambient Temperature Information and Related Flash Memory Device
US20150310938A1 (en) * 2014-04-25 2015-10-29 Seagate Technology Llc Temperature Tracking to Manage Threshold Voltages in a Memory
JP2016170846A (ja) * 2015-03-16 2016-09-23 セイコーエプソン株式会社 半導体集積回路装置及びそれを用いた電子機器
US20160283138A1 (en) * 2015-03-25 2016-09-29 Sk Hynix Memory Solutions Inc. Memory system and operating method thereof

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US8015433B2 (en) * 2006-09-13 2011-09-06 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory for storage of failure-related data
KR100817087B1 (ko) 2007-02-13 2008-03-27 삼성전자주식회사 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법
US9396103B2 (en) 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
US8572310B2 (en) 2007-11-06 2013-10-29 Samsung Electronics Co., Ltd. Invalidating storage area of non-volatile storage medium based on metadata
JP2009211234A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8140739B2 (en) 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
KR100929371B1 (ko) 2009-03-18 2009-12-02 한국과학기술원 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법
US7916528B2 (en) * 2009-03-30 2011-03-29 Seagate Technology Llc Predictive thermal preconditioning and timing control for non-volatile memory cells
US7818525B1 (en) 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
US8489907B2 (en) 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
JP5349256B2 (ja) * 2009-11-06 2013-11-20 株式会社東芝 メモリシステム
US8966319B2 (en) 2011-02-22 2015-02-24 Apple Inc. Obtaining debug information from a flash memory device
US9047955B2 (en) 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
US8510636B2 (en) 2011-04-01 2013-08-13 Intel Corporation Dynamic read channel calibration for non-volatile memory devices
WO2012145117A2 (en) 2011-04-22 2012-10-26 Rambus Inc. Memory components and controllers that calibrate multiphase synchronous timing references
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US8880779B2 (en) 2011-08-05 2014-11-04 Apple Inc. Debugging a memory subsystem
KR101438716B1 (ko) 2011-08-09 2014-09-11 엘에스아이 코포레이션 I/o 디바이스 및 컴퓨팅 호스팅 상호동작
US8621178B1 (en) 2011-09-22 2013-12-31 Emc Corporation Techniques for data storage array virtualization
KR101419004B1 (ko) 2012-05-03 2014-07-11 주식회사 디에이아이오 비휘발성 메모리 시스템
US20130343131A1 (en) 2012-06-26 2013-12-26 Lsi Corporation Fast tracking for flash channels
US20140254042A1 (en) * 2013-03-07 2014-09-11 Seagate Technology Llc Dynamic allocation of lba to un-shingled media partition
US9747202B1 (en) * 2013-03-14 2017-08-29 Sandisk Technologies Llc Storage module and method for identifying hot and cold data
US9195396B2 (en) * 2013-03-14 2015-11-24 SanDisk Technologies, Inc. Estimating access frequency statistics for storage device
US9715519B2 (en) * 2013-03-15 2017-07-25 Sandisk Technologies Llc Managing updates to multiple sets of metadata pertaining to a memory
US9342389B2 (en) 2013-04-04 2016-05-17 SK Hynix Inc. Neighbor based and dynamic hot threshold based hot data identification
US20170148510A1 (en) 2013-05-31 2017-05-25 Sandisk Technologies Llc Updating read voltages
WO2014209234A1 (en) 2013-06-26 2014-12-31 Agency For Science, Technology And Research Method and apparatus for hot data region optimized dynamic management
US9036413B2 (en) 2013-09-27 2015-05-19 Seagate Technology Llc Flash memory reference voltage detection with tracking of cross-points of cell voltage distributions using histograms
US9405717B2 (en) 2013-11-21 2016-08-02 Sandisk Technologies Llc Memory device debugging on host platforms
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9996297B2 (en) * 2014-11-14 2018-06-12 SK Hynix Inc. Hot-cold data separation method in flash translation layer
US9576671B2 (en) 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
US20170024326A1 (en) 2015-07-22 2017-01-26 CNEX-Labs, Inc. Method and Apparatus for Caching Flash Translation Layer (FTL) Table
US9733861B2 (en) * 2015-07-24 2017-08-15 Sk Hynix Memory Solutions Inc. Data temperature profiling by smart counter
JP6637836B2 (ja) 2016-05-12 2020-01-29 株式会社ダイヘン 送電装置、受電装置、および、非接触充電システム
US10241877B2 (en) * 2016-12-12 2019-03-26 International Business Machines Corporation Data storage system employing a hot spare to proactively store array data in absence of a failure or pre-failure event
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10446197B2 (en) 2017-08-31 2019-10-15 Micron Technology, Inc. Optimized scan interval
US10365854B1 (en) 2018-03-19 2019-07-30 Micron Technology, Inc. Tracking data temperatures of logical block addresses

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102985976A (zh) * 2010-04-18 2013-03-20 桑迪士克技术有限公司 包括减小其他存储单元的影响的对非易失性存储器的编程
US20120033503A1 (en) * 2010-08-09 2012-02-09 Juhyung Kim Charge trap flash memory device and an erasing method thereof
US20140050026A1 (en) * 2012-08-16 2014-02-20 Tseng-Ho Li Method of Executing Wear Leveling in a Flash Memory Device According to Ambient Temperature Information and Related Flash Memory Device
US20150310938A1 (en) * 2014-04-25 2015-10-29 Seagate Technology Llc Temperature Tracking to Manage Threshold Voltages in a Memory
JP2016170846A (ja) * 2015-03-16 2016-09-23 セイコーエプソン株式会社 半導体集積回路装置及びそれを用いた電子機器
US20160283138A1 (en) * 2015-03-25 2016-09-29 Sk Hynix Memory Solutions Inc. Memory system and operating method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11056156B2 (en) 2017-08-31 2021-07-06 Micron Technology, Inc. Optimized scan interval
US11068197B2 (en) 2018-03-19 2021-07-20 Micron Technology, Inc. Tracking data temperatures of logical block addresses

Also Published As

Publication number Publication date
US11068197B2 (en) 2021-07-20
CN112041931B (zh) 2024-04-16
WO2019182760A1 (en) 2019-09-26
US10365854B1 (en) 2019-07-30
US20190369905A1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
US11720489B2 (en) Scheme to improve efficiency of device garbage collection in memory devices
US11768765B2 (en) Host device physical address encoding
US11487652B2 (en) Host logical-to-physical information refresh
US11735269B2 (en) Secure erase for data corruption
CN112115069B (zh) 适于主机写入活动的垃圾收集
CN111758091A (zh) 单电平单元高速缓存管理
CN112041931B (zh) 跟踪逻辑块地址的数据温度
US11163692B2 (en) Memory constrained translation table management
CN113168377A (zh) Slc高速缓存分配
US20210200635A1 (en) Nand device mixed parity management
US11972294B2 (en) Allocation schema for a scalable memory area
CN112214422A (zh) 静态slc高速缓存的动态大小
US11914490B2 (en) Reactive read based on metrics to screen defect prone memory blocks
CN111381778A (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
GR01 Patent grant
GR01 Patent grant