首页> 中国专利> 用于固态存储装置服务质量的可变读取扫描

用于固态存储装置服务质量的可变读取扫描

摘要

一种用于动态地确定何时或多久对固态存储驱动器进行读取扫描操作的方法和设备。一个解决方案调整读取扫描间隔作为进行读取扫描操作的部分。首先,为非易失性存储器阵列的多个存储块中的一个确定位错误率。接着,确定所述存储块的交叉温度度量。响应于所述交叉温度度量满足交叉温度阈值而改变读取扫描间隔。接着,响应于所述位错误率满足重定位阈值而将所述存储块中的数据重定位到空闲存储块。

著录项

  • 公开/公告号CN113297096A

    专利类型发明专利

  • 公开/公告日2021-08-24

    原文格式PDF

  • 申请/专利权人 西部数据技术公司;

    申请/专利号CN202010558378.9

  • 发明设计人 N.杨;P.多特雷;S.沙马;

    申请日2020-06-18

  • 分类号G06F12/02(20060101);G06F11/10(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人邱军

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 12:19:35

说明书

背景技术

固态存储驱动器(SSD)使用周期性数据完整性检查来确定是否对驱动器内处于劣化风险的位置处的数据进行数据清理操作或数据刷新操作。这一数据完整性检查在本文中称为读取扫描操作。这种风险位置可基于增加的编程/擦除(PE)循环数目、自写入数据以来的时间长度、交叉温度效应以及类似物而发展。

读取扫描、读取清理和/或数据刷新操作在存储装置带宽和时延方面是昂贵操作。实施读取扫描操作可能中断与SSD交互的主机、使用导致写入放大的额外PE循环,且花费时间来读取在存储装置上使用的所有逻辑擦除块(LEB)(也称为元块或超级块)。

在服务质量(QoS)至关重要的例如服务器应用的市场中实施SSD越来越需要SSD读取扫描操作与服务的质量和速度的智能平衡。因此,存在以比常规周期性方案更有效的方式实施SSD读取扫描操作的需要。

发明内容

本公开涉及一种用于对SSD动态地实施读取扫描操作的方法。首先,为非易失性存储器阵列的多个存储块中的一个确定位错误率。接着,确定存储块的交叉温度度量。可响应于交叉温度度量满足交叉温度阈值而改变读取扫描间隔。最后,响应于位错误率满足重定位阈值而将存储块中的数据重定位到空闲存储块。“读取扫描间隔”是指读取扫描操作的连续执行之间的时间段。

本公开还涉及一种设备,其包括读取扫描器、错误校正码解码器、健康管理器以及数据移动器。读取扫描器配置成从非易失性存储器阵列的多个存储块中的一个读取数据。非易失性存储器阵列包括多个存储器裸片。每一存储器裸片包含温度传感器。错误校正码解码器配置成确定由读取扫描器读取的数据的位错误率。健康管理器配置成基于由每一温度传感器报告的裸片温度来确定存储块跨越多个存储器裸片中的最热存储器裸片。数据移动器配置成响应于位错误率满足读取位错误率阈值而将数据从存储块移动到空闲存储块。读取扫描器配置成响应于确定存储块跨越最热存储器裸片而减小读取扫描操作的读取扫描间隔。

最后,本公开涉及一种设备,其包括多个存储块和存储控制器。存储控制器配置成确定多个存储块中的具有高于读取位错误率阈值的位错误率的存储块。存储控制器接着使用预定数目的不同读取电平迭代地尝试从存储块读取数据。响应于经由迭代读取成功地读取存储块的数据,存储控制器将存储块的一个或多个读取电平改变为用来成功地读取存储块的数据的预定数目的不同读取电平中的一个或多个。最后,存储控制器响应于改变一个或多个读取电平而增大多个存储块的读取扫描频率。

附图说明

为了容易地识别对任何特定元件或动作的论述,附图标记中的一个或多个最高有效数字是指首次介绍所述元件的图号。

图1是根据一个实施例的存储系统100的框图。

图2是一个实施例中的存储装置102的框图。

图3示出根据一个实施例的存储器阵列300。

图4是根据一个实施例的示例存储系统400的框图。

图5示出根据一个实施例的存储块配置500。

图6是根据一个实施例的示例存储系统600的框图。

图7示出与一个实施例相关的多级存储器单元700的配置参数。

图8示出根据一个实施例的多级存储器单元800的调整后的配置参数。

图9是根据一个实施例的示例存储系统900的框图。

图10示出用于与一个实施例一起使用的配置参数表1000。

图11示出根据一个实施例的存储块配置1100。

图12示出根据一个实施例的方法1200。

图13是可并入有某些实施例的计算装置1300的示例框图。

具体实施方式

当SSD已经历自数据写入以来的长时间段或高数目的PE循环时,位错误率可能增加。交叉温度效应也可能造成更高位错误率。因此,动态地实施的读取扫描解决方案可调整读取扫描的频率或用于启动读取扫描的间隔,或是否立刻启动读取扫描操作。可基于检测到的交叉温度条件、基于指示特定逻辑擦除块、元块或元块内的裸片的温度升高的温度扫描,和/或基于检测到因当前读取电平下的位错误率过高而需要改变读取电平的单元阈值电压分布(CVD)扫描来调整读取扫描频率。

“读取扫描操作”是指进行以识别和缓解或避免或计数数据或存储器单元和/或非易失性存储装置的其它组件中的错误的维护操作。读取扫描操作可互换地称为“读取扫描”或“读取扫描操作”。

在一个实施例中,读取扫描操作涉及从存储块中的存储器单元读取数据,或感测所述存储器单元的可确定物理特性或存储器状态。接下来,读取扫描操作检查存储器单元的存储器状态是否有任何错误,校正尽可能多的错误,且确定位错误率。接着,读取扫描操作确定位错误率是否满足阈值,例如读取位错误率阈值。

在一个实施例中,读取扫描操作从存储块的每一逻辑页或字线读取数据。在另一实施例中,读取扫描操作选择存储块的不到全部的逻辑页。换句话说,读取扫描操作可对从其中读取数据以用于读取扫描操作的存储块的逻辑页进行采样。

如果满足读取位错误率阈值,那么读取扫描操作可进行数据清理操作或数据刷新操作。在某些实施例中,读取扫描操作可始终包含数据清理操作或数据刷新操作。在其它实施例中,进行数据清理操作或数据刷新操作可以满足读取位错误率阈值的位错误率为条件。在这种实施例中,读取扫描操作可称为“读取清理”或“读取清理操作”。在这些实施例中,读取扫描操作可有条件地包含数据清理操作。

在某些实施例中,读取扫描操作可操作为前台进程,意味着读取扫描操作中断或延迟非易失性存储装置服务于主机的读取命令或写入命令。此外,读取扫描操作可能需要完成对特定存储块的工作,且由此延迟针对所述特定存储块上的数据的主机读取命令。因此,读取扫描操作可能影响主机与非易失性存储装置之间的服务质量水平。

“PE循环”是指存储器单元集合被编程和擦除的次数的计数。存储器单元集合可包含存储器单元的任何集合,包含数据块、字线、页、逻辑页、擦除块、逻辑擦除块、存储器阵列、存储器裸片或类似物。PE循环(PEC)可以数千单位指定,例如4k、50k以及类似物。

例如固态存储器的非易失性存储装置可能在更高温度下具有更低数据保持容量,且这种更低能力可在存储器磨损时进一步恶化。非易失性存储装置可配置成提供一定水平的错误校正容量。如果错误超过这一水平,那么具有这些错误的数据可能变得不可读。然而,在一个范围内的温度下存储在非易失性存储器介质上的数据可能呈现对数据保持问题的较低敏感性,即使存储器已经历磨损也是这样。

交叉温度是例如NAND快闪存储器的非易失性存储器介质中的常见现象,且与存储操作之间的温度差相关。“交叉温度”是指存储器单元被读取/感测时存储器单元的裸片温度不同于存储器单元被写入(编程)时同一存储器单元的裸片温度的条件。在某些实施例中,交叉温度可由称为交叉温度度量的值表示。在某些类型的非易失性存储器介质(例如NAND存储器单元)中,当存储器单元被写入时的裸片温度与存储器单元被读取时的裸片温度之间的差足够高时,存储器单元的数据可能变得不可读(读取命令导致错误)。目前,非易失性存储装置具有对策,使得可读取存储在经受交叉温度条件的非易失性存储器中的数据,然而,非易失性存储装置应检测交叉温度条件,使得可采用这些对策。

已知这一交叉温度现象产生单元阈值电压分布(CVD)的移位以及CVD的加宽两者。移位现象可能与不同NAND单元对交叉温度的不同敏感性相关。当CVD已移位足够远时,其可能影响位错误率,且因此可能促成要求数据清理操作的条件。

图1是根据所公开解决方案的示出存储系统100的一个实施例的示意性框图。存储系统100包括存储装置102、存储控制器104、存储器裸片108、主机110、用户应用程序112、存储客户端114、逻辑地址空间116、元数据118、快闪转译层120、数据总线122、总线124、至少一个主机126以及网络128。

“存储客户端”是指配置成与存储装置通信以便使用存储服务的任何硬件、软件、固件或逻辑组件或模块。存储客户端的实例包含但不限于操作系统、文件系统、数据库应用程序、数据库管理系统(“DBMS”)、服务器应用程序、服务器、卷管理器、核心程序层级进程、用户层级进程、应用程序、移动应用程序、线程、进程以及类似物。“硬件”是指体现为模拟和/或数字电路系统的功能元件。“固件”是指体现为存储在易失性存储器介质和/或非易失性存储器介质上的处理器可执行指令的逻辑。“软件”是指实施为机器存储器(例如,读取/写入易失性存储器介质或非易失性存储器介质)中的处理器可执行指令的逻辑。“逻辑”是指机器存储器电路、非暂时性机器可读介质和/或电路系统,其借助于其材料和/或材料能量配置包括可应用于影响装置的操作的控制和/或程序信号,和/或设定和值(例如电阻、阻抗、电容、电感、电流/电压额定值等)。磁性介质、电子电路、光电存储器(易失性和非易失性两者)以及固件是逻辑的实例。逻辑专门排除纯信号或软件本身(然而不排除包括软件且由此形成物质的配置的机器存储器)。

“数据块”是指使用存储命令可存取和/或可寻址的物理存储介质上的存储空间的最小物理量。物理存储介质可以是易失性存储器介质、非易失性存储器介质、永久性存储装置、非易失性存储装置、快闪存储介质、硬盘驱动器或类似物。某些常规存储装置将物理存储介质划分成卷或逻辑分区(也称为分区)。每一卷或逻辑分区可包含多个扇区。将一个或多个扇区组织成块(也称为数据块)。在例如那些与

“存储操作”是指为改变或获得由存储器单元的状态特性表示的数据的值而对存储器单元进行的操作。存储操作的实例包含但不限于从存储器单元读取数据(或感测存储器单元的状态)、将数据写入(或编程)到存储器单元和/或擦除存储在存储器单元中的数据。

“存储命令”是指与存储操作相关的任何命令。存储命令的实例包含但不限于读取命令、写入命令、维护命令、诊断命令、测试模式命令、对策命令以及存储控制器可从主机接收或向另一组件、装置或系统发出的任何其它命令。“对策命令”是指配置成实施对策以缓解或逆转存储块的劣化和/或劣化的存储块健康的存储命令。

“易失性存储器介质”是指配置成维持用来表示零或一的二进制值的可改变的物理特性的任何硬件、装置、组件、元件或电路,其中在去除主电源时或除非主电源用来刷新所表示的二进制值,可改变的物理特性恢复到不再表示二进制值的默认状态。易失性存储器介质的实例包含但不限于动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双倍数据速率随机存取存储器(DDR RAM)或其它随机存取固态存储器。

虽然易失性存储器介质在本文中称为“存储器介质”,但在各种实施例中,易失性存储器介质可更一般地称为易失性存储器。

在某些实施例中,可在字节层级下寻址存储在易失性存储器介质中的数据,这意味着将易失性存储器介质中的数据组织成各自具有唯一地址(例如逻辑地址)的数据字节(8位)。

“存储器”是指配置成、编程为、设计成、布置成或工程改造成保持数据的任何硬件、电路、组件、模块、逻辑、装置或设备。某些类型的存储器需要可获得恒定电源以存储和保持数据。当电源不可用时,其它类型的存储器保持和/或存储数据。

“不可校正位错误率”是指指示对被处理的给定数目的位来说不可校正且错误的位的数目的率的测量。在尝试一种或多种错误校正技术(例如使用错误校正码(ECC)、使用博斯(Bose)、乔杜里(Chaudhuri)、霍克文黑姆(Hocquenghem)(BCH)码、使用低密度奇偶校验(LDPC)算法以及类似物)之后,将不可校正的位视为不可校正的。

“失败位计数”是指针对给定测量单位的错误的位的数目的测量。错误的位是以一个值存储的位,但当读取或感测相同的位时,所述位指示不同的值。失败位计数可针对数据块(例如,4K)、擦除块、页、逻辑擦除块、区、命名空间或类似物测量。换句话说,失败位计数可以是在写入到数据块、物理擦除块或其它存储器单元分组的数据与随后从数据块、物理擦除块或其它存储器单元分组读取的数据之间不同的位的数目。

存储系统100包含至少一个存储装置102,所述存储装置102包括由总线124连接的存储控制器104和一个或多个存储器裸片108。在一些实施例中,存储系统100可包含两个或大于两个存储器装置。“存储装置”是指配置成、编程为、设计成或工程改造成在一段时间内存储数据且在存储装置不使用来自电源的电力时将数据保持在存储装置中的任何硬件、系统、子系统、电路、组件、模块、非易失性存储器介质、硬盘驱动器、存储阵列、装置或设备。存储装置的实例包含但不限于硬盘驱动器、快闪存储器、MRAM存储器、固态存储装置、集束磁盘(JBOD)、集束闪存(JBOF)、外部硬盘、内部硬盘以及类似物。

“存储器裸片”是指在其上制造给定功能电路的一小片半导性材料。通常,通过例如光刻的工艺在电子级硅(EGS)或其它半导体(例如GaAs)的单个晶片上大批地生产集成电路。将晶片切割(分割)成许多片,每一片含有电路的一个拷贝。这些片中的每一个称为裸片或存储器裸片。(在Wikipedia.com上搜索“裸片(集成电路)”,2019年10月9日,2019年11月18日访问。)

在一个实施例中,存储器裸片是包含用于操作为非易失性存储器介质和/或非易失性存储器阵列的一个或多个功能电路的裸片。“非易失性存储器介质”是指配置成在去除主电源之后维持用来表示零或一的二进制值的可改变的物理特性的任何硬件、装置、组件、元件或电路。可改变的物理特性的实例包含但不限于晶体管的阈值电压、存储器单元的电阻电平、通过存储器单元的电流电平、磁极定向、自旋转移力矩以及类似物。

可改变的物理特性使得一旦设定,物理特性就保持充分固定,使得当用于非易失性存储器介质的主电源不可用时,可在读取、检索或感测二进制值时测量、检测或感测可变的物理特性。换句话说,非易失性存储器介质是配置使得可在用于非易失性存储器介质的电源被去除且随后恢复之后检索存储在非易失性存储器介质上的数据的存储介质。非易失性存储器介质可包括一个或多个非易失性存储器元件,其可包含但不限于:芯片、封装、平面、存储器裸片以及类似物。

非易失性存储器介质的实例包含但不限于:ReRAM、忆阻器存储器、可编程金属化单元存储器、相变存储器(PCM、PCME、PRAM、PCRAM、双向通用存储器、硫属化物RAM或C-RAM)、NAND快闪存储器(例如,2D NAND快闪存储器、3D NAND快闪存储器)、NOR快闪存储器、纳米随机存取存储器(纳米RAM或NRAM)、基于纳米晶线的存储器、基于硅-氧化物的低于10纳米处理存储器、石墨烯存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)、可编程金属化单元(PMC)、导电桥接RAM(CBRAM)、磁阻性RAM(MRAM)、磁性存储介质(例如,硬盘、磁带)、光学存储介质或类似物。

虽然非易失性存储器介质在本文中称为“存储器介质”,但在各种实施例中,非易失性存储器介质可更一般地称为非易失性存储器。由于非易失性存储器介质能够在去除电源时存储数据,因此非易失性存储器介质也可称为记录介质、非易失性记录介质、非易失性存储介质、存储装置、非易失性存储器、易失性存储器介质、非易失性存储器介质、非易失性存储装置或类似物。

在某些实施例中,可在块层级下寻址存储在非易失性存储器介质中的数据,这意味着将非易失性存储器介质中的数据组织成各自具有唯一逻辑地址(例如,LBA)的数据块。在其它实施例中,可在字节层级下寻址存储在非易失性存储器介质中的数据,这意味着将非易失性存储器介质中的数据组织成各自具有唯一地址(例如逻辑地址)的数据字节(8位)。字节可寻址非易失性存储器介质的一个实例是存储类存储器(SCM)。

“非易失性存储器”是指非易失性存储器介质的简称。在某些实施例中,非易失性存储器介质是指非易失性存储器介质和逻辑、控制器、处理器、状态机和/或管理非易失性存储器介质并提供对非易失性存储器介质的存取的其它周边电路。“非易失性存储器阵列”是指组织成具有行和列的阵列结构的非易失性存储单元(也称为存储器单元或非易失性存储器单元)集合。存储器阵列可使用行识别符和列识别符来寻址。

“存储器单元”是指配置成在感测、读取或检测存储介质以确定最后一次存储在存储器单元中的二进制值时借助于存储介质的可确定物理特性来表示一个或多个二进制值的一种类型的存储介质。存储器单元和存储单元在本文中可互换地使用。

“存储单元”是指配置成在感测、读取或检测存储介质以确定由存储器单元的可确定特性存储或表示的二进制值时借助于存储介质的可确定特性来表示一个或多个二进制值的一种类型的存储介质。存储单元和存储器单元在本文中可互换地使用。

用来将数据存储在存储器单元中的可确定特性的类型可取决于使用的存储器或存储技术的类型而变化。举例来说,在其中每一存储器单元包括具有源极引线、漏极引线以及栅极的晶体管的快闪存储器单元中,可确定特性是在施加于栅极时使得存储器单元在漏极引线与源极引线之间传导电流的电压电平。在这一实例中,电压电平在本文中称为阈值电压。阈值电压也可称为控制栅极参考电压(CGRV)、读取电压或参考电压。

可确定物理特性的实例包含但不限于晶体管的阈值电压、存储器单元的电阻电平、通过存储器单元的电流电平、磁极定向、自旋转移力矩以及类似物。

每一存储装置102可包含两个或大于两个存储器裸片108,例如快闪存储器、纳米随机存取存储器(“纳米RAM或NRAM”)、磁阻性RAM(“MRAM”)、动态RAM(“DRAM”)、相变RAM(“PRAM”)等。在另外的实施例中,数据存储装置102可包含其它类型的非易失性和/或易失性数据存储装置,例如动态RAM(“DRAM”)、静态RAM(“SRAM”)、磁性数据存储装置、光学数据存储装置和/或其它数据存储技术。可将存储器裸片108配置到非易失性存储器阵列106中。“存储器阵列”是指组织成具有行和列的阵列结构的存储单元(也称为存储器单元)集合。存储器阵列可使用行识别符和列识别符来寻址。

因此,非易失性存储器阵列是具有存储器单元的存储器阵列,所述存储器单元配置使得用来表示所存储数据的存储器单元的特性(例如,阈值电压电平、电阻电平、导电性等)保持存储器单元的性质,而不需要使用电源来维持所述特性。

存储器阵列可使用行识别符和列识别符来寻址。本领域的技术人员认识到,存储器阵列可包括平面内的存储器单元集合、存储器裸片内的存储器单元集合、平面集合内的存储器单元集合、存储器裸片集合内的存储器单元集合、存储器封装内的存储器单元集合、存储器封装集合内的存储器单元集合,或具有其它已知存储器单元设定架构和配置。

存储器阵列可包含存储系统或存储器系统内的数个组织层级处的存储器单元集合。在一个实施例中,可将平面内的存储器单元组织成存储器阵列。在一个实施例中,可将存储器裸片的多个平面内的存储器单元组织成存储器阵列。在一个实施例中,可将存储器装置的多个存储器裸片内的存储器单元组织成存储器阵列。在一个实施例中,可将存储系统的多个存储器装置内的存储器单元组织成存储器阵列。

存储装置102(在本文中也称为存储装置)可以是如本文所描绘的主机110内的组件,且可使用数据总线122来连接,所述数据总线122例如周边组件互连高速(“PCI-e”)总线、串行高级技术附件(“串行ATA”)总线或类似物。在另一实施例中,存储装置102在主机110外部且连接通用串行总线(“USB”)连接、电气电子工程师学会(“IEEE”)1394总线(“火线”)或类似物。在其它实施例中,存储装置102使用周边组件互连(“PCI”)高速总线连接到主机110,所述周边组件互连高速总线使用外部电气或光学总线扩展或总线联网解决方案,例如无限频带或PCI高速高级切换(“PCIe-AS”)或类似物。

在各种实施例中,存储装置102可呈双列直插式存储器模块(“DIMM”)、子卡或微模块的形式。在另一实施例中,存储装置102是机架安装式刀片内的组件。在另一实施例中,存储装置102含于直接整合到更高层级装配件(例如,底板、膝上型计算机、图形处理器)上的封装内。在另一实施例中,包括存储装置102的各个组件直接集成到更高层级装配件上,而无需中间封装。

在又一实施例中,数据存储装置102可通过数据网络连接到主机110,而不是作为DAS直接连接到主机110。举例来说,数据存储装置102可包含存储区域网络(“SAN”)存储装置、网络附接存储(“NAS”)装置、网络共享或类似物。在一个实施例中,存储系统100可包含数据网络,例如因特网、广域网(“WAN”)、城域网(“MAN”)、局域网(“LAN”)、令牌环(tokenring)、无线网络、光纤通道网络、SAN、NAS、ESCON或类似物,或网络的任何组合。数据网络还可包含来自IEEE 802系列网络技术的网络,例如以太网、令牌环、Wi-Fi、Wi-Max以及类似物。数据网络可包含服务器、开关、路由器、电缆线、无线,以及用来促进主机110与数据存储装置102之间的联网的其它仪器。

存储系统100包含连接到存储装置102的至少一个主机110。“主机”是指配置成发送和接收存储命令的任何计算装置或计算机装置或计算机系统。主机的实例包含但不限于计算机、膝上型计算机、移动装置、电器、虚拟机、企业服务器、台式计算机、平板计算机、主框架以及类似物。

可使用多个主机110且其可包括服务器、存储区域网络(“SAN”)的存储控制器、工作站、个人计算机、膝上型计算机、手持式计算机、超级计算机、计算机集群、网络交换机、路由器或电器、数据库或存储电器、数据获取或数据捕获系统、诊断系统、测试系统、机器人、便携式电子装置、无线装置或类似物。在另一实施例中,主机110可以是客户端,且存储装置102自主地操作以服务从主机110发送的数据请求。在这一实施例中,主机110和存储装置102可使用计算机网络、系统总线、直接附接存储(DAS)或适合于计算机与自主存储装置102之间的连接的其它通信构件来连接。

所描绘实施例绘示作为主机110的部分与存储客户端114通信的用户应用程序112。在一个实施例中,用户应用程序112是在存储客户端114上或结合所述存储客户端114操作的软件应用程序。

存储客户端114管理文件和数据,并利用存储控制器104和相关联存储器裸片108的功能和特征。存储客户端的代表性实例包含但不限于服务器、文件系统、操作系统、数据库管理系统(“DBMS”)、卷管理器以及类似物。存储客户端114与存储装置102内的存储控制器104通信。在一些实施例中,存储客户端114可包含在主机126上操作或以其它方式可经由网络128访问的远程存储客户端。存储客户端可包含但不限于操作系统、文件系统、数据库应用程序、服务器应用程序、核心程序层级进程、用户层级进程、应用程序以及类似物。

存储客户端114可向主机110和/或用户应用程序112呈现逻辑地址空间116。逻辑地址空间116可包括多个(例如,一系列)逻辑地址。如本文中所使用,逻辑地址是指用于参考存储器资源(例如,数据)的任何识别符,包含但不限于逻辑块地址(LBA)、圆柱/头部/扇区(CHS)地址、文件名、对象识别符、索引节、通用唯一识别符(UUID)、全局唯一识别符(GUID)、散列代码、签名、索引条目、范围、程度或类似物。

“逻辑地址空间”是指存储器资源的逻辑表示。逻辑地址空间可包括多个(例如,一系列)逻辑地址。“逻辑地址”是指用于参考存储器资源(例如,数据)的任何识别符,包含但不限于逻辑块地址(LBA)、圆柱/头部/扇区(CHS)地址、文件名、对象识别符、索引节、通用唯一识别符(UUID)、全局唯一识别符(GUID)、散列代码、签名、索引条目、范围、程度或类似物。逻辑地址不指示数据在存储介质上的物理位置,而是对数据的抽象引用。“逻辑块地址”是指在块存储装置中用来使可用于跨存储介质存储用户数据的n个数据块中的每一个与地址相关联的值。在某些块存储装置中,逻辑块地址(LBA)可在每一卷或分区0到n个的范围内。在块存储装置中,每一LBA直接映射到特定数据块,且每一数据块映射到物理存储介质上的物理扇区的特定集合。

在一个实施例中,主机110(和/或存储客户端114)的装置驱动器可维护存储客户端114内的元数据118,例如逻辑到物理地址映射结构,以将逻辑地址空间116的逻辑地址映射到存储器裸片108上的存储位置。在另一实施例中,这种元数据118可由存储控制器104存储和维护。装置驱动器可配置成向一个或多个存储客户端提供存储服务。

存储客户端114可包括快闪转译层120。“快闪转译层”是指快闪存储器装置中的逻辑,其包含提供由存储客户端使用的逻辑块地址和存储控制器存储数据的物理块地址的抽象的逻辑到物理地址转译。逻辑到物理转译层将逻辑块地址(LBA)映射到存储在固态存储介质上的数据的物理地址。这一映射允许使用例如块地址的逻辑识别符在逻辑块地址空间中引用数据。逻辑识别符不指示数据在固态存储介质上的物理位置,而是对数据的抽象引用。

快闪转译层120接收已处理的数据以及一个或多个控制信号以确定快闪转译层队列深度。快闪转译层120可确定适当的物理地址以将数据和命令发送到存储器裸片108和易失性存储器。在某些实施例中,存储客户端114可包含快闪转译层120且可管理与快闪转译层120相关联的元数据118。在一个实施例中,快闪转译层120还从存储器裸片108接收数据输出。

在一个实施例中,存储系统100包含通过一个或多个计算机网络128连接到一个或多个主机126的一个或多个客户端。主机126可以是服务器、SAN的存储控制器、工作站、个人计算机、膝上型计算机、手持式计算机、超级计算机、计算机集群、网络交换机、路由器或电器、数据库或存储电器、数据获取或数据捕获系统、诊断系统、测试系统、机器人、便携式电子装置、无线装置或类似物。网络128可包含因特网、广域网(“WAN”)、城域网(“MAN”)、局域网(“LAN”)、令牌环、无线网络、光纤通道网络、SAN、网络附接存储(“NAS”)、ESCON或类似物,或网络的任何组合。网络128还可包含来自IEEE 802系列网络技术的网络,例如以太网、令牌环、WiFi、WiMax以及类似物。

网络128可包含服务器、开关、路由器、电缆线、无线,以及用来促进使主机110或主机与主机126或客户端联网的其它仪器。在一个实施例中,存储系统100包含作为对等体通过网络128进行通信的多个主机。在另一实施例中,存储系统100包含作为对等体通过网络128进行通信的多个存储器装置。本领域的技术人员将认识到包括具有一个或多个客户端之间的单个或冗余连接的一个或多个计算机网络和相关仪器的其它计算机网络,或具有一个或多个存储器装置或连接到一个或多个主机的一个或多个存储器装置的其它计算机。在一个实施例中,存储系统100包含在没有主机110的情况下通过网络128连接到主机126的两个或大于两个存储器装置。

在一个实施例中,存储客户端114通过包括输入/输出(I/O)接口的主机接口与存储控制器104通信。举例来说,存储装置102可支持由国际信息技术标准委员会(“INCITS”)维护的ATA接口标准、ATA包接口(“ATAPI”)标准、小型计算机系统接口(“SCSI”)标准和/或光纤通道标准。

在某些实施例中,将存储器装置的存储介质划分成卷或分区。每一卷或分区可包含多个扇区。传统上,扇区是512字节的数据。将一个或多个扇区组织成块(在本文中可互换地称为块和数据块两者)。

在一个示例实施例中,数据块包含4KB的八个扇区。在例如那些与

在一些实施例中,存储控制器104可配置成在一个或多个不对称一次写入存储介质(例如存储器裸片108内的固态存储存储器单元)上存储数据。

“一次写入存储介质”是指在其上写入或编程新数据或对数据的改变之前必须重新初始化(例如,擦除)的例如存储单元的存储介质。换句话说,一次写入存储介质的数据无法被覆写,一次写入存储介质必须在随后将数据写入到一次写入存储介质之前被擦除。读取扫描操作可能不可中断或可能不容易中断。

如本文中所使用,“不对称”存储介质是指针对不同存储操作具有不同时延的存储介质。许多类型的固态存储介质(例如,存储器裸片)是不对称的;例如,读取操作可能比写入/编程操作快得多,且写入/编程操作可能比擦除操作快得多(例如,读取存储介质可能比擦除快数百倍,且比编程存储介质快数十倍)。可将存储器裸片108分割成可作为组来擦除的存储器分区(例如,擦除块),以便尤其考虑到存储器裸片108的不对称性质或类似物。

因而,就地修改单个数据段可包含擦除包括数据的整个擦除块,并将经修改数据连同初始不变数据一起覆写到擦除块。这可能导致低效的写入放大,从而可能过度磨损存储器裸片108。“写入放大”是指在非易失性存储装置上进行的写入编程操作的测量,其导致比在第一情况下初始地写入数据更多次数地写入任何数据和(特定来说)用户数据。在某些实施例中,写入放大可计数由非易失性存储装置进行的写入操作的数目以便管理和维护存储在非易失性存储装置上的数据。在其它实施例中,写入放大测量在非易失性存储装置上的数据的初始存储之外写入的数据量、位的数目。

因此,在一些实施例中,存储控制器104可配置成异地写入数据。如本文中所使用,“异地”写入数据是指将数据写入到不同介质存储位置,而不是“就地”覆写数据(例如,覆写数据的初始物理位置)。异地修改数据可避免写入放大,这是由于不必擦除和重新复制具有将要修改的数据的擦除块上的现有有效数据。此外,异地写入数据可从许多存储操作的时延路径中去除擦除(例如,擦除时延不再是写入操作的主路径的部分)。

由存储管理器管理数据块具体包含针对读取操作、写入操作或维护操作寻址特定数据块。块存储装置可使可用于跨存储介质存储用户数据的n个块与逻辑地址相关联,从0到n编号。在某些块存储装置中,逻辑地址可在每一卷或分区0到n个的范围内。

在常规块存储装置中,逻辑地址直接映射到物理存储介质上的特定数据块。在常规块存储装置中,每一数据块映射到物理存储介质上的特定物理扇区集合。然而,某些存储装置并不直接或必定使逻辑地址与特定物理数据块相关联。这些存储装置可仿真常规块存储接口以维持与块存储客户端114的兼容性。

在一个实施例中,存储控制器104提供块I/O仿真层,其充当块装置接口或API。在这一实施例中,存储客户端114通过这一块装置接口与存储装置通信。在一个实施例中,块I/O仿真层根据这一块装置接口从存储客户端114接收命令和逻辑地址。因此,块I/O仿真层提供与块存储客户端114的存储装置兼容性。

在一个实施例中,存储客户端114通过包括直接接口的主机接口与存储控制器104通信。在这一实施例中,存储装置直接交换特定针对非易失性存储装置的信息。“非易失性存储装置”是指配置成在去除主电源之后维持用来表示零或一的二进制值的可改变的物理特性的任何硬件、装置、组件、元件或电路。非易失性存储装置的实例包含但不限于硬盘驱动器(HDD)、固态驱动器(SSD)、非易失性存储器介质以及类似物。

使用直接接口的存储装置可使用各种组织构造在存储器裸片108中存储数据,所述组织构造包含但不限于块、扇区、页、逻辑块、逻辑页、擦除块、逻辑擦除块、ECC码字、逻辑ECC码字或呈有利于存储器裸片108的技术特性的任何其它格式或结构。

存储控制器104从存储客户端114接收逻辑地址和命令,并进行与存储器裸片108相关的对应操作。存储控制器104可支持块I/O仿真、直接接口或两者。“存储控制器”是指配置成管理非易失性存储器介质上的数据操作的任何硬件、装置、组件、元件或电路,且可包括一个或多个处理器、可编程处理器(例如,FPGA)、ASIC、微控制器或类似物。在一些实施例中,存储控制器配置成将数据存储在非易失性存储器介质上和/或从非易失性存储器介质读取数据,以向/从非易失性存储器装置等等传送数据。

图2是存储装置102的框图。存储装置102可包含存储控制器104和非易失性存储器阵列106。非易失性存储器阵列106中的每一存储器裸片108可包含裸片控制器202和呈三维阵列形式的至少一个存储单元阵列210,以及读取/写入电路204。

存储单元阵列210可经由行解码器206通过对应于行的字线寻址,且经由列解码器208通过位线寻址。“字线”是指包括存储器单元集合的存储器阵列内的结构。存储器阵列配置使得在读取操作期间读取或感测字线的操作性存储器单元。类似地,存储器阵列配置使得在读取操作期间读取或感测字线的操作性存储器单元。读取/写入电路204包含多个感测块SB1、感测块SB2……感测块SBp(感测电路系统)且允许并行地读取或编程存储器单元页。在某些实施例中,跨存储器阵列的一行的每一存储器单元一起形成物理页。

物理页可包含沿着存储器阵列的一行的针对单个平面或针对单个存储器裸片的存储器单元。在一个实施例中,存储器裸片包含由两个相等大小的平面构成的存储器阵列。在一个实施例中,存储器裸片的一个平面的物理页包含四个数据块(例如,16KB)。在一个实施例中,存储器裸片的物理页(也称为“裸片页”)包含各自具有四个数据块(例如,32KB)的两个平面。

经由数据总线122在主机110与存储控制器104之间且经由总线124在存储控制器104与一个或多个存储器裸片108之间传送例如那些使存储操作130发生的命令和数据。

存储单元阵列210可以是二维的(在单个制造平面中的2D布置)或三维的(在多个制造平面中的3D布置)。存储单元阵列210可包括包含3D阵列的存储器单元的一个或多个阵列。在一个实施例中,存储单元阵列210可包括单片三维存储器结构(3D阵列),其中多个存储器层级在没有介入衬底的情况下形成于例如晶片的单个衬底上方(且未形成于所述单个基底中)。存储单元阵列210可包括任何类型的非易失性存储器,其单片地形成于具有安置在硅衬底上方的有源区域的存储器单元的阵列的一个或多个物理层级中。存储单元阵列210可在具有与存储器单元的操作相关联的电路系统(无论相关联电路系统在衬底上方或衬底内)的非易失性固态驱动器中。

“电路系统”是指具有至少一个分立电路的电路系统、具有至少一个集成电路的电路系统、具有至少一个专用集成电路的电路系统、形成由计算机程序配置的通用计算装置(例如,由至少部分地进行本文中所描述的进程或装置的计算机程序配置的通用计算机,或由至少部分地进行本文中所描述的进程或装置的计算机程序配置的微处理器)的电路系统、形成存储器装置(例如,随机存取存储器的形式)的电路系统或形成通信装置(例如,调制解调器、通信交换机或光电仪器)的电路系统。

字线可包括安置在衬底上方的层中的含有存储器单元的层的区段。多个字线可借助于沟槽或其它非导电隔离特征形成于单层上。

裸片控制器202与读取/写入电路204配合以对存储单元阵列210的存储器单元进行存储器操作,且包含状态机212、地址解码器214以及功率控制216。状态机212提供对存储器操作的芯片级控制。

地址解码器214提供由主机或存储控制器104使用的地址接口与由行解码器206和列解码器208使用的硬件地址之间的地址接口。功率控制216在存储器操作期间控制供应到各种控制线的功率和电压。功率控制216和/或读取/写入电路204可包含用于字线、源栅选择(SGS)晶体管、漏栅选择(DGS)晶体管、位线、衬底(2D存储器结构中)、电荷泵以及源极线的驱动器。在某些实施例中,功率控制216可检测突然断电并采取预防动作。功率控制216可包含各种第一电压产生器(例如,驱动器)以产生本文中所描述的电压。在一个方法中,感测块可包含位线驱动器和感测放大器。

在一些实施方案中,可组合组件中的一些。在各种设计中,除存储单元阵列210外,组件中的一个或多个(单独或以组合方式)可被视为配置成进行本文中所描述的技术的至少一个控制电路或存储控制器。举例来说,控制电路可包含以下中的任一个或组合:裸片控制器202、状态机212、地址解码器214、列解码器208、功率控制216、感测块SB1、感测块SB2……感测块SBp、读取/写入电路204、存储控制器104等等。

在一个实施例中,主机110是包含一个或多个处理器、一个或多个处理器可读存储装置(RAM、ROM、快闪存储器、硬盘驱动器、固态存储器)的计算装置(例如,膝上型计算机、台式计算机、智能手机、平板计算机、数码相机),所述存储装置存储用于编程存储控制器104以进行本文中所描述的方法的处理器可读代码(例如,软件)。主机还可包含额外系统存储器、与一个或多个处理器通信的一个或多个输入/输出接口和/或一个或多个输入/输出装置,以及本领域中众所周知的其它组件。

相关联电路系统通常用于存储器单元的操作且用于与存储器单元通信。作为非限制性实例,存储器装置可具有用于控制和驱动存储器单元的电路系统以实现例如编程和读取的功能。这一相关联电路系统可与存储器单元位于同一衬底上和/或处于单独衬底上。举例来说,用于存储器读写操作的存储控制器可位于单独的存储控制器芯片上和/或与存储器单元定位于同一衬底上。

本领域的技术人员将认识到,所公开的技术和装置不限于所描述的二维和三维示例性结构,而是覆盖如本文中所描述且如由本领域的技术人员所理解的技术的精神和范围内的所有相关存储器结构。

图3示出根据一个实施例的存储器阵列300。在所示出的实施例中,将存储器阵列300组织成如由逻辑擦除块302所绘示的逻辑擦除块(LEB)(在本文中也称为“元块”或“超级块”)。这些LEB包含由物理擦除块0 304、物理擦除块n 306、物理擦除块0 308、物理擦除块n310、物理擦除块0 312以及物理擦除块n 314示出的多个物理擦除块(PEB)。“物理擦除块”是指可以给定时间擦除(例如,由于存储器裸片上的存储单元的布线)的给定存储器裸片内的最小存储单元。

物理擦除块可定位于绘示为裸片0 316、裸片1 318以及裸片n 320的单独存储裸片中。在某些实施例中,将裸片划分成平面。“平面”是指准许在使用某些物理行地址和某些物理列地址的两个平面上进行某些存储操作的裸片的分区。

本领域的技术人员了解物理擦除块与逻辑擦除块之间的关系和差异,且可通过使用速记版本擦除块、块或存储块来指代一个或另一个或两者。本领域的技术人员从提及擦除块的上下文理解是提及物理擦除块还是逻辑擦除块(或元块或超级块)。在本领域中使用的概念和技术和在权利要求书中叙述的概念和技术可同样应用于物理擦除块或逻辑擦除块。

“擦除块”是指逻辑擦除块或物理擦除块。在一个实施例中,物理擦除块表示可以给定时间擦除(例如,由于存储器裸片上的存储单元的布线)的给定存储器裸片内的最小存储单元。在一个实施例中,逻辑擦除块表示可响应于接收擦除命令而由存储控制器擦除的最小存储单元或存储块。在这种实施例中,当存储控制器接收指定特定逻辑擦除块的擦除命令时,存储控制器可同时擦除逻辑擦除块内的每一物理擦除块。应注意,给定逻辑擦除块内的物理擦除块可视为在物理地址空间内为连续的,即使其驻留在单独裸片中也是这样。因此,术语“连续”可能不仅可应用于存储在同一物理介质内的数据,且还可应用于存储在单独介质内的数据。

“存储块”是指被组织使得可并行地对存储单元组进行存储操作的存储单元集合。对存储单元集合的组织可在物理层级或逻辑层级下实施。因此,在一个实施例中,存储块可包括例如字线的物理页、包括跨越平面和/或存储器裸片的物理页的逻辑页、包括物理页集合的物理擦除块、包括逻辑页集合的逻辑擦除块(LEB)或类似物。存储块在本文中可称为“块”、“存储器块”或LEB。

如本文中所使用,例如物理页、物理字线、物理擦除块、物理平面、物理存储器裸片或类似物的“物理”结构是指系统的控制器、管理器、模块或其它逻辑组件可在装置、系统或设备的组织中的物理抽象的一个或多个层级内的某一层级处控制和/或通信的单个物理结构。类似地,例如逻辑页、逻辑字线、逻辑擦除块、逻辑平面、逻辑存储器裸片或类似物的“逻辑”结构是指系统的控制器、管理器、模块或其它逻辑组件可在装置、系统或设备的组织中的物理抽象的一个或多个层级内的某一层级处控制和/或通信的相同类型的单个物理结构。应注意,“物理”结构和“逻辑”结构中的一个或另一个或两者可具有相异的地址,所述地址可用来相对于具有类似性质和类型的其它结构识别一个“物理”结构或“逻辑”结构。

“逻辑擦除块”是指存储块的另一术语。在某些实施例中,逻辑擦除块是指跨越平面、存储器裸片和/或芯片的逻辑页集合。由于物理页可能并不直接彼此耦合,所以将存储单元的这一组织视为是‘逻辑’的。然而,并行地操作物理页,如同其是单个页一样。以相似方式,可并行地操作多个物理擦除块,如同其是单个擦除块一样,且因此称为逻辑擦除块。术语逻辑擦除块、元块以及超级块在本文中可互换地使用。“逻辑页”是指视为用于存储操作的单个页的物理页集合。“物理页”是指物理页表示给定存储器裸片内的可在单个操作中写入的最小存储块。

将例如逻辑擦除块302的逻辑擦除块进一步划分成多个逻辑页(逻辑页322),所述逻辑页又包含多个物理页,例如物理页0 324、物理页n 326、物理页0 328、物理页n 330、物理页0 332以及物理页n 334。物理页可包含多个包,可将所述包分组成错误校正码(ECC)大块。

在一个实施例中,物理页表示给定裸片内的可以给定时间写入的最小存储块。在一个实施例中,逻辑页是由存储控制器支持的最小可写存储块。(在一个实施例中,存储控制器可包含配置成存储多达一逻辑页的数据的缓冲器;在填充缓冲器时,存储控制器可同时将缓冲器的内容写入到单个逻辑页。)在一些情况下,当并行地访问多个裸片时,跨多个裸片划分逻辑页可得到针对数据集合的更快访问时间。可将逻辑页配置映射到裸片上或跨多个存储器裸片的任何物理页,就如同逻辑擦除块一样。

在一些实施例中,存储控制器104可使元数据(也称为介质特性)与存储块(逻辑擦除块、物理擦除块、逻辑页和/或物理页)中的一个或多个相关联。存储控制器104可管理识别逻辑擦除块存储数据的逻辑地址的元数据,以及逻辑地址空间116(图1)内的每一逻辑擦除块、数据块或扇区的相应数目的所存储数据包。存储控制器104可在各种位置中存储元数据或介质特性数据,所述位置包含非易失性存储介质上、易失性存储器中、用每一逻辑擦除块存储的结构中或类似物。

“元数据”是指可用以促进非易失性存储装置的操作的系统数据。元数据与例如由应用程序产生的数据(即,“应用程序数据”)、由用户、主机产生的数据或将由操作系统视为“用户数据”的数据形式形成对比。

举例来说,逻辑擦除块可包含元数据,所述元数据指定但不限于使用统计(例如,在逻辑擦除块上进行的编程擦除循环的数目、健康统计(例如,指示已从逻辑擦除块读取受损数据的频率的值)、安全或访问控制参数、序列信息(例如,序列指示符)、持久性元数据标志(例如,指示包含在原子存储操作中)、事务识别符或类似物。在一些实施例中,逻辑擦除块包含识别逻辑擦除块存储数据的逻辑地址的元数据,以及每一逻辑块或扇区的相应数目的所存储数据块/包。

在某些实施例中,元数据包括逻辑擦除块的交叉温度、非易失性存储装置的开启逻辑擦除块的平均交叉温度、温度变化率、逻辑擦除块的平均编程擦除计数、逻辑擦除块的不可校正位错误率(UBER)、位错误率、逻辑擦除块的失败位计数以及电荷泄漏率。在一个实施例中,元数据可包括介质特性。“电荷泄漏率”是指当存储器单元处于被动状态、未读取或写入时电荷从存储器单元泄漏的速率。

图4示出根据在一个实施例中的存储系统400的示意性框图。在存储系统400中,存储装置102包含存储控制器402,所述存储控制器402包括R/W电路404、错误校正码解码器406以及快闪转译层120。非易失性存储器阵列106可包括各自具有温度传感器408的多个存储器裸片108。

R/W电路404或“读写电路”是指配置成和/或操作以从存储介质(例如存储阵列的存储单元)读取数据且将数据写入到存储介质的装置、组件、元件、模块、系统、子系统、电路系统、逻辑、硬件或电路。

错误校正码解码器406可配置成提供由R/W电路404读取的数据的位错误率和错误校正。“错误校正码解码器”是指配置成、编程为、设计成、布置成或工程改造成使用针对数据集(例如,码字)定义的冗余信息来检测和/或校正数据集中的错误的任何硬件、软件、固件、电路、组件、模块、逻辑、装置或设备。

在一个实施例中,错误校正码解码器可包括一种或多种类型的解码器,包含但不限于低密度奇偶校验(LDPC)解码器、里德-所罗门码(Reed-Solomon code)解码器、戈莱码(Golay code)解码器、博斯乔杜里霍克文黑姆(BCH)码解码器、涡轮码解码器、多维奇偶检验码解码器、汉明码(Hamming code)解码器、阿达马码(Hadamard code)解码器、扩展器码解码器、里德-穆勒码(Reed-Muller code)解码器、维特比(Viterbi)解码器、法诺解码器或类似物。

分配给每一存储器裸片108的温度传感器408可提供所述裸片处的物理温度读数。“温度传感器”是指可实施温度传感器的任何合适的技术,包含当前在常规存储器裸片温度传感器中采用的技术。此外,应注意,虽然在这一实施例中温度传感器可定位在存储器裸片中,但温度传感器可定位在存储系统中的另一组件(例如控制器)中,或可以是存储系统中的独立组件。

图5示出根据一个实施例的存储块配置500。非易失性存储器阵列106可包括多个存储器裸片108。每一存储器裸片108可并入有温度传感器408。可经由总线124将来自温度传感器408的指示存储器裸片温度的信号携带到存储控制器。存储器裸片可配置成以例如每秒的特定间隔报告记录裸片温度。裸片温度的值可驻留在存储器裸片108上的控制寄存器中,且存储器裸片108可响应于来自存储控制器的特定命令而报告裸片温度。或者,存储器裸片可自动报告其裸片温度,且当前裸片温度可保持在存储控制器的控制寄存器中。

图5示出存储块502的一个实例。在这一实例中,存储块可配置成跨越多个存储器裸片108上的物理擦除块。举例来说,如所示出,存储块502可包括存储器裸片D0、存储器裸片D1、存储器裸片D2以及存储器裸片D3的部分,例如物理擦除块。由于存储块是逻辑结构,所以可考虑到非易失性存储器阵列106的各种存储器裸片的故障、磨损或错误物理擦除块对存储块配置作出调整。

图6是根据一个实施例的存储系统600的示意性框图。存储系统600可包含包括存储控制器602和非易失性存储器阵列106的存储装置102。存储控制器602可进一步包括包含数据移动器606的R/W电路604、错误校正码解码器608、交叉温度管理器610,以及包含读取扫描器614和调整模块616的健康管理器612。本领域的技术人员应了解,在某些实施例中,这些组件可并入存储装置102的其它部件内或可由主机110实行。

R/W电路604配置成服务存储操作以向一个或多个存储客户端114提供存储服务。“存储操作”是指为改变或获得由存储器单元的状态特性表示的数据的值而对存储器单元进行的操作。存储操作的实例包含但不限于从存储器单元读取数据(或感测存储器单元的状态)、将数据写入(或编程)到存储器单元和/或擦除存储在存储器单元中的数据。R/W电路604与错误校正码解码器608协调以服务写入命令和读取命令。

“写入命令”是指配置成引导接收者将一个或多个数据块写入或存储在永久性存储介质(例如硬盘驱动器、非易失性存储器介质或类似物)上的存储命令。写入命令可包含可引起将数据写入到存储装置的物理存储介质的任何存储命令。写入命令可包含足够数据以填充一个或多个数据块,或写入命令可包含足够数据以填充一个或多个数据块的一部分。在一个实施例中,写入命令包含起始LBA和指示写入到存储介质上的数据的LBA数目的计数。“读取命令”是指从存储器单元读取数据的一种类型的存储命令。

在一个实施例中,交叉温度管理器610确定存储块的交叉温度度量。交叉温度管理器610可进一步配置成监测非易失性存储器阵列106的每一存储块的交叉温度度量。在某些实施例中,交叉温度管理器610在读取扫描操作期间确定所检查存储块的交叉温度度量。

交叉温度管理器610可通过比较当前裸片温度与最后一次写入到存储块时的裸片温度(在本文中称为写入温度或编程温度)来确定交叉温度。“写入温度”或“编程温度”是指当将数据写入或编程到存储器裸片或非易失性存储装置时存储器裸片或非易失性存储装置的裸片温度。可用存储介质上的存储块将数据最后一次写入到存储块时的裸片温度存储在元数据或介质特性中,或由存储控制器602管理的另一组表或管理数据中。

在一个实施例中,交叉温度管理器610可跟踪构成存储块的存储器裸片的平均当前裸片温度。在另一实施例中,交叉温度管理器610可跟踪每一存储块的每一物理擦除块的交叉温度条件。交叉温度管理器610可管理和/或维护非易失性存储器阵列106的一个或多个交叉温度阈值和/或一个或多个警报阈值。“阈值”是指高于其条件为真或将发生且低于其条件不为真或将不发生的水平、点或值。(在Merriam-Webster.com上搜索“阈值”。Merriam-Webster,2019年。网页。2019年11月14日编辑。)

“交叉温度阈值”是指预定义的一种类型的阈值,使得当值、额定值或条件满足交叉温度阈值时,组件、电路、装置、系统、设备或方法配置成用信号通知任一交叉温度条件。“警报阈值”是指预定义的一种类型的阈值,使得当值、额定值或条件满足警报阈值时,系统、设备或方法配置成用信号通知问题或错误或即将发生的问题或错误条件的可能性。

可定义一个或多个交叉温度阈值和/或一个或多个警报阈值,使得针对每一水平、健康、交叉温度和/或类似物存在一个。交叉温度管理器610可检测、确定、维护和/或计算每一存储块的交叉温度度量。“交叉温度度量”是指交叉温度条件的测量。在一个实施例中,交叉温度度量包括当编程/写入存储器单元时的裸片温度与当读取或尝试读取存储器单元时的裸片温度之间的差。

在一个实施例中,交叉温度管理器610可在读取扫描操作期间确定所检查存储块的交叉温度度量。当在读取扫描操作中检查、测试、监测的存储块的交叉温度度量满足交叉温度阈值时,交叉温度管理器610可减小读取扫描间隔。如果在读取扫描操作中所检查、测试或监测的存储块满足警报阈值,那么交叉温度管理器610可发起针对一个或多个其它存储块的立即读取扫描操作。

在一个实施例中,健康管理器612可管理和监测非易失性存储器阵列106的非易失性存储介质的健康。在一个实施例中,健康管理器612对非易失性存储器阵列106的一个或多个存储块或存储块中的每一个执行读取扫描操作。以这一方式,健康管理器612可管理存储块级别的健康。当健康管理器612检测具有导致更多位错误(更高位错误率)的健康状况的存储块时,健康管理器612可实施对策以降低位错误率、恢复数据和/或延长非易失性存储介质的使用寿命。

“误码率”是指所处理的总位数中的错误位数的测量。在某些实施例中,在错误校正码(ECC)解码器已作出一个或多个尝试以校正一个或多个错误位之后计算出位错误率。

“对策”是指配置成减轻负面属性、因素或条件的方法、过程步骤或操作。应注意,在某些情况下,可行的对策是不对所识别的负面属性、因素或条件采取动作。虽然不采取动作可能被视为消极活动,但在本文中将对负面属性、因素或条件的这种响应视为对策。

在某些实施例中,对策特定针对特定问题或问题的指示。可使用的对策的实例包含主动改变擦除块的裸片温度、将数据重定位到另一存储位置、调整警报阈值、使用单独的单元电压分布(CVD)表来管理一个或多个物理擦除块,以及不采取动作。

健康管理器612可包含读取扫描器614和调整模块616。读取扫描器614从非易失性存储器阵列106的存储块读取数据,且与健康管理器612协调以确定存储块的存储单元的健康。读取扫描器614可充当读取扫描操作的部分且可检查每一存储块的条件。对于具有劣化条件的存储块,健康管理器612可实施对策。

读取扫描器614可从与多个温度传感器相关联的存储器裸片108的非易失性存储器阵列106的多个存储块中的存储块读取数据。读取扫描器614可与错误校正码解码器608协调以确定存储块的每一读取的位错误率,这一位错误率可称为读取位错误率。如果读取位错误率满足读取位错误率阈值,那么健康管理器612与R/W电路604和数据移动器606通信以使存储块的数据移动到新存储块、空闲存储块。数据移动器606将数据从存储块移出到空闲存储块。

在某些实施例中,热点(局部升高的温度)可能在非易失性存储器阵列106的某一存储器裸片内产生。这些热点可能导致热点的存储单元中的数据在读取时具有更高位错误率。在某些实施例中,作为读取扫描操作的部分,健康管理器612可配置成检测这些热点和实施对策以解决、补救或减轻增加的位错误率和/或保留非易失性存储介质上的数据。

在一个实施例中,健康管理器612可确定一个或多个存储块跨越具有升高的裸片温度的存储器裸片。在一个实施例中,健康管理器612通过比较当前裸片温度与例如裸片温度阈值的参考裸片温度来作出这一确定。特定来说,健康管理器612可基于裸片温度来确定存储块跨越多个存储器裸片108中的最热存储器裸片。在一个实施例中,由每一存储器裸片上的温度传感器408报告裸片温度。最热存储器裸片可包括非易失性存储器阵列106内的一行的多个存储器裸片中的存储器裸片,且最热存储器裸片可以是具有最高裸片温度的行的存储器裸片。

如果健康管理器612确定由读取扫描器614读取(也就是测试或检查)的存储块跨越最热存储器裸片,那么读取扫描器614可减小读取扫描操作的读取扫描间隔。这意味着将更早实施读取扫描操作。在一个实施例中,读取扫描器614可将读取扫描间隔减小固定量,例如15分钟。或者或另外,在一个实施例中,读取扫描器614可将读取扫描间隔减小一百分比,例如百分之10。另外,或在另一实施例中,读取扫描器614或健康管理器612或存储控制器602可减小读取扫描间隔。另外,或在另一实施例中,例如通过使得健康管理器612或存储控制器602更频繁地运行读取扫描操作,读取扫描器614或健康管理器612或存储控制器602可增大读取扫描频率。“读取扫描频率”是指在特定时间段内进行读取扫描操作的频率的测量。

在一个实施例中,存储控制器602可包含具有调整模块616的健康管理器612。调整模块616对在用非易失性存储器阵列106进行存储操作时使用的参数和设定作出调整。在一个实施例中,读取扫描操作可包含调整模块616的使用。

在一个实施例中,调整模块616通过主动地设定和调整非易失性存储器阵列106的存储单元的配置参数来管理非易失性存储器阵列106。通过在错误发生之前主动地确定配置参数,调整模块616可在没有重试读取或进行针对所防止错误的其它补救措施的性能损失的情况下防止某些错误发生。在某些实施例中,调整模块616调适用于存储装置102的用例的配置参数以配置用例的存储单元,而不是使用默认配置参数。

配置参数是可借助于接口更改的存储单元集合的参数,例如读取阈值、写入或编程阈值、擦除阈值或类似物。用于修改配置参数的接口可包含可编程数据寄存器、非易失性存储器阵列106的控制总线的命令接口、存储装置102的装置驱动器的API、存储控制器104的控制参数,或类似物。

调整模块616参考存储单元集合的一个或多个介质特性以确定存储单元集合的配置参数。

“特性”是指对象或事物的任何性质、性状、质量或属性。特性的实例包含但不限于条件、使用准备度、使用未准备度、大小、重量、组成、特征集合以及类似物。“介质特性”是指特定存储单元集合的属性或统计,例如存储单元集合的编程/擦除循环计数、存储单元集合的读取计数、自存储单元集合的先前写入以来的保持时间(也称为数据保持时间)、例如逻辑或物理擦除块的存储单元集合的停留时间(例如,擦除块的编程与擦除块的擦除之间的时间)、存储单元集合的多个先前停留时间的平均值、存储单元集合的错误统计,或类似物。

存储单元集合的介质特性可以是实质上静态的或可以是动态的,且随时间推移改变。在一个实施例中,介质特性是与非易失性存储器介质的属性相关联的统计、启发式、数学模型、变换或其它描述符。

在一个实施例中,介质特性包含或涉及存储装置和/或非易失性存储器介质的品牌、型号、制造商、产品版本或类似物。在又一实施例中,介质特性可包含或涉及存储装置的和/或非易失性存储器介质的环境条件或使用,例如温度、用例(例如,高速缓存用例、存档用例、服务器用例、企业用例、消费者用例等)或类似物。

响应于确定存储单元集合的配置参数,调整模块616可配置存储单元集合以使用所确定的配置参数。调整模块616可周期性地更新存储单元集合的介质特性、更新存储单元集合的配置参数,以及重配置存储单元集合以使用所更新的配置参数。调整模块616可响应于指示所改变介质特性的存储单元集合的背景扫描或类似物而在启动操作期间的执行输入/输出操作期间用配置参数配置存储单元。

为了减少与跟踪每一存储单元、每一页、每一擦除块或类似物的配置参数相关联的负担,在一个实施例中,调整模块616可以组或集合管理配置参数。举例来说,调整模块616可确定和管理页、物理擦除块、逻辑擦除块、元块、超级块、存储块、字线、错误校正码大块或码字、芯片、裸片、裸片中的平面或其它存储区的组或集合的配置参数。调整模块616可对具有类似介质特性(例如类似错误率、类似年龄、类似PE循环计数、类似物理介质位置、以编程顺序的类似位置、类似架构、类似温度或交叉温度,或类似物)的页或其它存储区进行分组,且针对不同组确定不同配置参数设定。举例来说,在某些实施例中,调整模块616可对上页(例如,MSB页)、下页(例如,LSB页)、上和/或下页的子集、以页编程顺序的前N页的集合、以页编程顺序的中间N页的集合、以页编程顺序的后N页的集合和/或页的其它子集或其它存储区进行分组,且可通过组或集合来管理配置参数设定。

在一个实施例中,读取扫描操作可包含调整模块616的使用。在一个实施例中,如果读取扫描器614确定存储块的位错误率超过某一阈值,那么读取扫描器614可用信号通知调整模块616以确定针对存储块的调整,如果可作出调整的话。

在结合读取扫描操作来操作的调整模块616的一个示例实施例中,调整模块616可迭代地尝试使用预定数目的不同读取电平来读取存储块的数据。“读取电平”是指配置成测试或检查哪些存储器单元在电压电平下导通的电压电平。在某些实施例中,存储器单元可包括晶体管且读取电压是处于或高于存储器单元的阈值电压的电压电平,所述阈值电压使得存储器单元传导电流。

在某些实施例中,取决于用来在存储器单元上存储数据的编码类型和在每一存储器单元上编码的位的数目,使用单个读取电压的单个读取/感测操作可决定存储器单元的存储器状态。在其它实施例中,可使用各自在不同读取电压电平下进行的数个读取/感测操作来确定存储器单元的存储器状态。可接着将所确定的存储器状态解码成由存储器单元存储的数据位的表示。“读取电压”是对“读取阈值电压”的简写。“读取电平”是通常用来描述“读取电压”的另一术语,且两个术语在本文中可互换地使用。

响应于在迭代尝试中经由预定数目的不同读取电平中的最后一个成功地读取存储块的数据,调整模块616可响应于位错误率满足读取位错误率阈值而确定所读取的存储块的数据的位错误率且减小读取扫描间隔。以这一方式,所公开的解决方案可重配置含有受单元阈值电压分布移位影响的存储器单元的存储块。或者或另外,调整模块616可配置成调度随后读取扫描操作以开始于调整模块616已作出调整的存储块。

在某些实施例中,存储控制器602可配置成将对策实施为读取扫描操作的部分,其中对策包含冷却非易失性存储器阵列106的一个或多个存储器裸片。举例来说,在一个实施例中,存储控制器602可配置成冷却存储器裸片,所述存储器裸片是一起形成由读取扫描操作检查的存储块的多个存储器裸片108中的最热存储器裸片。在一个实施例中,存储控制器602通过启动例如风扇、液体冷却或类似物的主动冷却系统或子系统来冷却最热存储器裸片。

在一个实施例中,存储控制器602通过指示R/W电路604将来自主机的传入写入命令引导到不包含最热存储器裸片的一个或多个存储块来冷却最热存储器裸片。通过重新引导写入命令远离使用最热存储器裸片的一个或多个存储块,最热存储器裸片可具有因自然热耗散而冷却的机会。或者,此外,或在另一实施例中,存储控制器602可通过指示数据移动器606将跨越最热存储器裸片的每一存储块的数据移动到另一存储块集合,且暂时停止使用(读取和写入)最热存储器裸片使得这一裸片通过不使用而冷却,来冷却最热存储器裸片。

图7绘示具有示例编码或编程模型的例如多级NAND快闪存储单元或类似物的多级存储单元700的单元阈值电压分布和配置参数的曲线图。在所描绘的实施例中,使用格雷码(Gray code)编码模型来编码存储器状态,其中相邻存储器状态的二进制值在编码中相差单个位。“存储器状态”是指设计和/或配置成表示一个或多个数据位值的编码的存储器单元或存储单元的条件。在某些实施例中,可通过使用存储操作来改变存储器状态。在非易失性存储器单元中,存储器单元在没有电源的情况下维持其存储器状态。

“单元阈值电压分布”是指用于确定存储器单元集合中的每一存储器单元的阈值电压的过程或方法。单元阈值电压分布可直接称为单元电压分布且可使用首字母缩写“CVD”来指代。

可在非易失性存储器技术的研究和开发期间进行单元阈值电压分布以理解存储器单元在不同条件下表现如何。在某些实施例中,可在非易失性存储器的操作期间进行单元阈值电压分布以确定用来读取存储器单元的读取电平是否足够。如果第一组读取电平的位错误率不足,那么可采取对策以降低位错误率。

在某一实施例中,这些对策可包含调整配置参数,使得位错误率降低。在某些实施例中,确定单元阈值电压分布、相对于位错误率检查读取电平和其它介质特性以及采取任何对策的步骤可称为CVD扫描。归因于所涉及的各种步骤和所扫描的存储器单元的数目,CVD扫描可能需要大量时间来完成。“阈值电压”是指当施加于晶体管的栅极电极时使得晶体管在漏极电极与源极电极之间传导电流的电压电平。

图7绘示值“11”与最低存储器状态(标记为L0,“擦除”状态)相关联,值“01”与下一最低读取电压状态(标记为L1)相关联,值“00”与下一最高读取电压状态(标记为L2)相关联,且值“10”与最高读取电压状态(标记为L3)相关联。在图7中,将最低存储器状态L0描绘为低于所描绘的0.0V的负电压。读取电压的值、量值、大小以及类似物可根据制造商和非易失性存储器单元的类型而改变,所述非易失性存储器单元中的每一个由这一公开涵盖。在所描绘的实施例中,默认读取电平702、默认读取电平704以及默认读取电平706分别是分开存储器状态Lo和存储器状态L1、存储器状态L1和存储器状态L2以及存储器状态L2和存储器状态L3的读取电平。默认读取电平702、默认读取电平704以及默认读取电平706是介质特性或元数据的一个实例。

非易失性存储器存储控制器可将存储在多级存储单元中的电压的四个离散电平解译为表示两个二进制位,一个由单元编码中的最高有效位(MSB)表示,且一个由单元编码中的最低有效位(LSB)表示。可使用其它编程和编码模型。此外,某些非易失性存储器介质可具有大于四个可能的状态,从而允许将大于两个二进制值存储在单个多级存储单元中。存储器状态L0、存储器状态L1、存储器状态L2以及存储器状态L3可以或可以不连续;例如,在某些实施例中,电压电平由称为保护频带的带隙分开。举例来说,L0和L1可由0.3V分开。

在一个实施例中,LSB对应于数据的下页且MSB对应于数据的上页。在某些实施例中,多级存储单元可遵守两阶段编程模型,其包含在可写入MSB之前写入LSB,或反之亦然。在另一实施例中,LSB和MSB可分别由存储控制器编程。归因于对页配对(例如,将MLC单元的LSB位与不同MLC单元的MSB位配对)和页寻址(例如,在MSB页之前编程LSB页或反之亦然)的供应商或制造商要求,可采取这种途径。在某些情况下,在写入MSB之前写入LSB,在写入LSB之前写入MSB,或类似物。

在某些实施例中,非易失性存储器介质可采用两阶段编程模型。在这种模型中,首先借助于对下页的第一写入命令将二进制值写入到LSB。写入命令使得多级存储单元从其初始状态(例如,L0中的11状态)移动到配置使得随后读取00状态的中间状态(L1与L2之间的从下到中LM状态)。举例来说,将“0”写入到下页使得多级存储单元从L0状态(其中LSB和MSB都是1)改变到L2状态(其中LSB改变为0)。将“0”随后写入到上页使多级存储单元从中间状态(通常在L1状态与L2状态之间)移动到L2状态,使得MLC的两个位都是“0”。

因此,在这种实施例中,需要两个写入(一个到下页且一个到上页)以使多级单元从L0移动到L2,这是由于单元转变通过中间状态且MLC装置包含在编程上页之前编程下页且不允许在没有介入擦除操作的情况下对页进行部分编程。将“1”写入到上页或下页中的任一个将取决于这时下页的二进制值来使得MLC转变到L1或L3。此外,某一非易失性存储器介质供应商可强加在上页之前写入下页的要求,或类似物。在其它实施例中,非易失性存储器介质可采用两阶段编程模型,其中首先借助于对上页的第一写入命令将二进制值写入到MSB。

在某些实施例中,调整模块616针对住所(abode)(也就是存储器状态)L0、住所L1、住所L2、住所L3中的一个或多个单独地确定和管理读取电平或其它配置参数,从而确定对不同住所L0、住所L1、住所L2、住所L3中的配置参数的不同设定或调整。在一个实施例中,调整模块基于多级存储单元存储的二进制数据的子集(例如仅上页、仅下页或类似物)来调整一个或多个读取电平。在这种实施例中,检查LSB位的状态改变指示多级存储单元中的电压的方向正在改变。对于位值的格雷码编码(如图7中所描绘)和二进制码编码两者,多级存储单元的LSB在中间两个住所或状态(所描绘的实施例中的L1状态和L2状态)之间在二进制零与二进制一之间转变。

对于其它编码模型,MSB可在中间两个住所或状态之间在二进制零与二进制一之间转变,或类似物。对于格雷码或二进制码编码模型,LSB具有较低范围(包含较低两个状态或住所,L0和L1)中的读取电压的值“1”,且LSB具有较高范围(包含较高两个状态或住所,L2和L3)中的读取电压的值“0”。通过仅使用MLC存储单元的LSB来确定读取电平是否从已知读取电平偏离,在一个实施例中,调整模块可以类似方式通过计数或结算LSB数据集的二进制一和/或二进制零或类似物来作出确定,以确定SLC存储单元的读取电平是否从已知读取电平偏离。

对于某些类型的多级存储单元,默认读取电平704(例如,中间读取电平)以及相邻的L1状态和L2状态可能对读取干扰或可导致读取电压漂移的其它因素更敏感。另外,在某些实施例中,单个多级存储单元的LSB和MSB可表示存储在不同物理页中的数据。在一个实施例中,使用来自多个多级存储单元中的每一个的单个位作为数据集可减小检索数据集的读取操作的数目。在其它实施例中,来自多个多级存储单元中的每一个的单个位在下页中的使用简化检测读取电平与多级存储单元的已知读取电平的偏离和方向的过程。

在一个实施例中,方向模块可基于包含来自多级存储单元的一个或多个下页的数据的数据集来确定多级存储单元的分组的偏离方向。在某些实施例中,由于下页包含LSB,所以方向模块响应于下页的读取电平与下页的已知读取电平之间的差指示LSB的存储单元值已从二进制一转变到二进制零而确定读取电平朝向更大读取电压偏离。对于LSB从二进制一转变到二进制零,使用图7的编码模型的多级存储单元的读取电压从L0状态或L1状态漂移到L2状态或L3状态,从而指示应增大读取电平(702、704、706)中的一个或多个,以将读取电压置回初始L0状态或L1状态。

类似地,在某些实施例中,方向模块可响应于下页的读取电平与下页的已知读取电平之间的差指示LSB的存储单元值已从二进制零转变到二进制一而确定读取电平朝向更小读取电压偏离。对于LSB从二进制零转变到二进制一,多级存储单元的读取电压可从L3状态或L2状态漂移到L1状态或L0状态,从而指示应减小读取电平中的一个或多个,以将读取电压置回初始L3状态或L2状态。在某些实施例中,跨多个状态的偏离可能不大可能,且可使用LSB检测的偏离可能在L1状态与L2状态之间,从而指示在任一方向上的清楚的偏离方向。

在另一实施例中,可至少部分地基于用于非易失性存储器介质的存储单元的编码类型、非易失性存储器介质的存储单元的物理和/或电气架构或类似物来确定偏离方向。举例来说,可基于2位多级存储单元介质类型、基于数据集是否包含上页或下页、基于格雷码编码类型、基于所确定偏离的量值或类似物来确定偏离方向。在又一实施例中,来自单独或迥然不同的地址(例如不同的物理页或类似物)的LSB和MSB可变换或组合成单个数据集,或可以其它方式协调以确定偏离方向。

在某些实施例中,使用存储在多级存储单元中的每一位来确定读取电平调整可提高读取电平调整的准确度,但可能增大读取操作的数目或增加确定的复杂度。在一个实施例中,如果图6中所示出的错误校正码解码器608检测多级存储单元的分组的上页中的数据错误,那么R/W电路604可检索分组的一个或多个下页,且调整模块616可基于下页来调整分组的读取电平。

图8描绘多级存储单元800的调整后的配置参数的一个实施例,绘示非易失性存储器介质的多级存储单元集合的调整后的读取电平802、调整后的读取电平804以及调整后的读取电平806。在某些实施例中,读取电平是由制造商、供应商或类似物设定的默认配置参数,且调整模块(例如,调整模块616)可将图7中所示出的默认读取电平702、默认读取电平704以及默认读取电平706分别调整或配置成调整后的读取电平802、调整后的读取电平804以及调整后的读取电平806。在一个实施例中,调整模块确定对默认读取电平的不同调整,从而产生调整后的读取电平。在所描绘的实施例中,调整模块可针对具有不同量值、不同方向以及类似物的不同住所L0、住所L1、住所L2、住所L3单独地确定调整808、调整810以及调整812,从而针对不同住所L0、住所L1、住所L2、住所L3的介质特性单独地定制不同的调整后的读取电平802、调整后的读取电平804以及调整后的读取电平806。

调整后的读取电平比图7中的默认读取电平更密切地匹配图8的存储单元状态的实际分布。如果对应存储单元集合用图8的存储单元状态的分布使用默认读取电平702、默认读取电平704以及默认读取电平706,那么所述分布的已漂移经过默认读取电平的位置的部分将记录数据错误。类似地,由于不同住所L0、住所L1、住所L2、住所L3的电荷电平已在不同方向上漂移、泄漏、受干扰(或类似物)不同的量,所以在某些实施例中,针对每一住所L0、住所L1、住所L2、住所L3使用相同调整可能记录数据错误。通过配置对应存储单元集合以使用单独调整后的配置参数,调整模块可防止、避免或校正可能的数据错误。

在一个实施例中,调整模块616反应性地使用偏离模块、方向模块、调整模块或类似物来确定调整后的配置参数调整后的读取电平802、调整后的读取电平804以及调整后的读取电平806。在另一实施例中,调整模块基于对应存储单元集合的介质特性主动地使用介质特性模块和调整模块616来确定调整后的读取电平。

调整模块616确定调整后的读取电平802、调整后的读取电平804和/或调整后的读取电平806的过程是一种形式的维护,其中存储控制器104管理非易失性存储器阵列106以补偿使用存储装置102时的磨损和劣化。调整模块616确定和作出这些调整的过程可称为CVD扫描,这是由于所述过程可能涉及确定存储块的每一存储单元的阈值电压。

CVD扫描可作为独立维护操作或结合其它操作执行。在一个实施例中,CVD扫描可结合读取扫描操作运行。

图9是根据一个实施例的存储系统900的示意性框图。存储系统900包括跨非易失性存储器阵列106的存储器裸片108实施的多个存储块和存储控制器902。存储控制器902可包括具有数据移动器906的R/W电路904、错误校正码解码器908、交叉温度管理器910,以及包括读取扫描器914和调整模块916的健康管理器912。

存储控制器902可通过错误校正码解码器908的动作来确定多个存储块中的具有高于读取位错误率阈值920的位错误率918的存储块。确定位错误率918高于或满足读取位错误率阈值920可作为读取扫描操作的部分来完成和/或可作为CVD扫描(其中存储控制器902试图找到调整后的读取电平)的部分来完成。

在一个实施例中,作为进行CVD扫描的部分,存储控制器902也可确定改变读取扫描操作的读取扫描间隔。作为CVD扫描的部分,存储控制器902可通过读取扫描器914的动作使用预定数目的不同读取电平从存储块迭代地读取数据(或尝试读取数据,如果存在过多错误而不能正确读取数据的话)。在一个实例中,对数据的每一迭代读取都可使用更有可能校正和/或避免最后读取的位错误率的读取电平。当对数据的迭代读取导致更高位错误率时,存储控制器902可使用最后迭代读取的读取电平作为调整后的读取电平。响应于通过迭代尝试成功地读取存储块数据,可使用调整模块916将存储块的读取电平中的一个或多个改变为引起成功数据读取的预定数目的不同读取电平中的一个或多个。

预定数目的不同读取电平1010的实例在图10中示出为配置参数表1000的部分。配置参数表1000包含存储块的行,所述行各自具有存储块识别符1002。配置参数表1000包含三个示例读取电平:读取电平R1 1004、读取电平R2 1006以及读取电平R3 1008。当然,可在预定数目的不同读取电平1010的其它实施例中使用更多读取电平。

举例来说,行1012的SB0可使用可返回过高位错误率918的读取电平R1 1004来读取。存储控制器902可配置读取扫描器914以使用仍可能引起过高位错误率918的读取电平R2 1006尝试读取SB0。最后,读取扫描器914可使用读取电平R3 1008来读取SB0,读取电平R3 1008仍可能引起错误,但可将位错误率918减小到低于读取位错误率阈值920。调整模块916可接着改变将要使用读取电平R3 1008来读取的SB0的配置。一旦一个或多个读取电平已改变,存储控制器902就可指示读取扫描器914减小存储块的读取扫描频率,使得更频繁地扫描存储块。以这一方式,可基于CVD扫描和/或读取扫描操作中的一个或多个来动态地调整读取扫描频率。

在一个实施例中,存储控制器902可包含配置成确定存储块的交叉温度度量922的交叉温度管理器910。当存储块的交叉温度度量922满足交叉温度阈值926时,交叉温度管理器910可指示读取扫描器914改变读取扫描频率924。交叉温度管理器910可通过首先确定存储块数据的写入温度928,接着确定当前温度930来确定交叉温度度量922。交叉温度度量922可包括写入温度928与当前温度930之间的差。除了改变读取扫描频率作为CVD扫描和/或读取扫描操作的部分以外,在某些实施例中,也可基于存储块的交叉温度度量922来改变读取扫描频率。

存储控制器902可配置成执行例如读取扫描操作932和随后读取扫描操作934的多个读取扫描操作。在一些实施例中,存储控制器902可进一步测量数据保持裸片温度阈值936。本领域的技术人员将认识到,虽然在功能上方便的情况下指示这些参数,但图示不意图限制构建成在存储控制器902内实施这一功能性的电路系统的配置。

图10描绘配置参数表1000的实施例。配置参数表1000包含存储单元集合的多个行1012。在所描绘的实施例中,由存储块识别符1002组织存储单元、存储块的集合,且行1012对应于从SB0到SBn的存储块1002。每一行1012进一步包含对应存储块识别符1002的配置参数1014。在所描绘的实施例中,配置参数1014包含针对包含读取电平R1 1004、读取电平R21006以及读取电平R3 1008的读取电平的读取电压阈值调整,其中每一项作为与默认读取电压阈值的十六进制偏移。举例来说,在所描绘的实施例中,读取电压阈值调整在FAh(对应于十进制数-6的十六进制数,在二进制补码表示中,其中“h”表示十六进制)与05h(对应于十进制数5的十六进制数)之间改变,包含例如01h、02h、04h、FEh、FCh、FDh、FAh、03h以及05h的值。因此,配置参数表1000可含有用于读取扫描操作和/或CVD扫描操作中的预定数目的不同读取电平1010,如关于下图11所论述。

虽然如上文所描述,在所描绘的实施例中将配置参数1014示出为读取电压阈值调整,但在其它实施例中,配置参数1014可包含电阻率阈值、写入或编程阈值、擦除阈值和/或非易失性存储器介质的其它可更改参数。另外,借助于实例提供三个配置参数1014,且在其它实施例中,可包含配置参数的其它量和类型。举例来说,在一个实施例中,某些20nm非易失性存储器介质或类似物可具有使用不同寄存器或类似物来设定的十个不同读取电压阈值R1到读取电压阈值R10,且调整模块616可针对不同集合、组、存储区和/或不同住所/存储状态确定R1到R10的不同值。配置参数1014可包含绝对数据值、对数据值的偏移或调整、其它参数。配置更新模块可与调整模块616配合以更新配置参数表1000。

图11示出根据一个实施例的存储块配置1100。绘示存储块1102,所述存储块1102是多个存储块中的一个。所述多个存储块可包含下一存储块1104和最热存储器裸片1106,如所示出。

多个存储块中的每一个可跨越多个存储器裸片,例如在非易失性存储器阵列106内示出的存储器裸片108。每一存储器裸片108可并入有能够提供裸片温度的温度传感器408。

典型非易失性存储器阵列106可包括八个到十六个存储器裸片108,例如所示出的D0、D1、D2、D3、D4、D5、D6以及D7。在确定最热存储器裸片1106时,可考虑非易失性存储器阵列106的所有存储器裸片108,而不是仅考虑由存储块1102跨越的那些存储器裸片。那么,在所示出情况下,D2不仅是由存储块1102跨越的四个存储器裸片108(D0到D3)中的最热存储器裸片1106。D2可理解成是整个非易失性存储器阵列106(D0到D7)的最热存储器裸片1106。

与非易失性存储器阵列106通信的存储控制器可包含健康管理器,例如图9中所绘示的健康管理器912。当存储控制器迭代地尝试读取存储块1102中的数据时,健康管理器可基于存储块跨越的每一存储器裸片108的裸片温度来确定存储块1102包括多个存储器裸片108中的最热存储器裸片1106。健康管理器可响应于确定存储块1102包括最热存储器裸片1106而改变读取扫描频率。

在一个实施例中,健康管理器可使包含最热存储器裸片1106的存储块1102作为下一存储块1104排队以用于随后读取扫描操作。在另一实施例中,健康管理器可配置成重配置存储块1102以排除最热存储器裸片1106。举例来说,在这种配置中,存储块1102可包含D0、D1、D6以及D3,而不是D2。存储控制器还可配置成将数据从包含最热存储器裸片1106的存储块1102移动到未跨越最热存储器裸片1106的空闲存储块1108。“空闲存储块”是指可用于由于存储命令而接收用于写入到存储块的存储单元的数据的存储块。

图12示出根据一个实施例的用于动态地改变读取扫描操作发生的时间的方法1200。这一方法1200可在例如存储系统400、存储系统600或存储系统900的存储系统上实施。如将对本领域的技术人员显而易见,在提供等效功能性的同时,步骤的顺序可不同于所示出的顺序。本文中所呈现的操作顺序不意图为限制性的。

存储控制器的错误校正码解码器可首先确定1202非易失性存储器阵列的多个存储块中的存储块的位错误率。在一个实施例中,确定存储块的位错误率可包括对存储块的存储单元的一个或多个逻辑页进行采样。所采样逻辑页的位错误率可表示存储块的位错误率。

如果位错误率满足1204重定位阈值,那么数据移动器可将数据从存储块重定位1206到空闲存储块。“重定位阈值”是指当将要把存储块的数据从第一存储块移动到第二存储块时识别的阈值。

在一个实施例中,重定位存储块数据可包括存储控制器发起对非易失性存储器阵列106的数据清理操作。在一个实施例中,存储控制器902可进行数据刷新操作而不是数据清理操作。

“数据清理操作”是指其中从存储块读取存储块的数据块集合的有效数据并将其存储在非易失性存储装置上的新位置中(通常在非易失性存储器介质中)的操作。数据清理操作在存储块中留下无效数据且无效数据在擦除存储块时被删除。一旦数据清理操作成功地重定位有效数据,数据清理操作就配置将要擦除的存储块。

在某些实施例中,数据清理操作立刻擦除存储块。在其它实施例中,数据清理操作使稍后将要擦除的存储块排队。“有效数据”是指存储块的数据,所述数据由主机存储且应保留和维护直到主机指示所述数据不再需要且可以或应该删除为止。“无效数据”是指存储在存储块中的主机已肯定地删除或已指示不再需要且可删除的数据,因为数据已由数据的新版本或改变版本取代。在包括一次写入存储介质的存储单元的非易失性存储介质中。如果数据由主机修改,那么数据的修改后的版本使得存储在一次写入存储介质中的初始数据变成无效数据,数据因其不再表示数据的当前版本而失效。

“数据刷新操作”是指其中从存储块读取存储块的数据块集合的所有数据并将其存储在非易失性存储装置上的新位置中的操作。数据刷新操作不进行区分且不提供对存储块的无效数据和有效数据的不同处理。因此,数据刷新操作可比数据清理操作更快。

接下来,交叉温度管理器可确定1208存储块的交叉温度度量。如果交叉温度度量满足1210交叉温度阈值,那么调整模块可改变1212读取扫描间隔。在一个实施例中,改变读取扫描频率924可意味着减小读取扫描间隔,使得更频繁地进行读取扫描操作。在一个实施例中,改变读取扫描频率924可意味着增大读取扫描频率,使得更频繁地进行读取扫描操作。

存储控制器可基于由每一温度传感器报告的裸片温度来确定1214多个存储器裸片中的最热存储器裸片。在一些实施例中,可由存储控制器直接从温度传感器读取裸片温度。在另一实施例中,存储控制器可访问由另一过程(例如周期性温度扫描)更新的存储器位置,以包含例如每秒一次获取的温度传感器读数。

如果存储块跨越1216最热存储器裸片,那么调整模块可改变1218读取扫描间隔。调整模块可在下一次执行读取扫描操作时进一步调度1220读取扫描操作以开始于存储块。在一些实施例中,存储控制器902冷却1222最热存储器裸片,使得裸片温度下降到低于数据保持裸片温度阈值。数据保持裸片温度阈值可包括阈值,低于所述阈值,存储在非易失性存储介质上的数据具有可接受的较低位错误率。

图13是可并入有解决方案的实施例的计算装置1300的示例框图。图13仅示出实行本文中所描述的技术过程的方面的机器系统且不限制权利要求书的范围。本领域的技术人员将认识到其它变化、修改以及替代方案。在某些实施例中,计算装置1300包含数据处理系统1302、通信网络1304、通信网络接口1306、输入装置1308、输出装置1310以及类似物。

如图13中所描绘,数据处理系统1302可包含一个或多个处理器1312和存储子系统1314。“处理器”是指配置成接收、解译、解码以及执行机器指令的任何电路系统、组件、芯片、裸片、封装或模块。处理器的实例可包含但不限于中央处理单元、通用处理器、特殊应用处理器、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、芯片上系统(SoC)、虚拟处理器、处理器内核以及类似物。

处理器1312经由总线子系统1316与数个周边装置通信。这些周边装置可包含输入装置1308、输出装置1310、通信网络接口1306以及存储子系统1314。在一个实施例中,存储子系统1314包括一个或多个存储装置和/或一个或多个存储器装置。

在一个实施例中,存储子系统1314包含易失性存储器1318和非易失性存储器1320。“易失性存储器”是指易失性存储器介质的简称。在某些实施例中,易失性存储器是指易失性存储器介质和逻辑、控制器、处理器、状态机和/或管理易失性存储器介质并提供对易失性存储器介质的存取的其它周边电路。易失性存储器1318和/或非易失性存储器1320可存储单独或一起形成逻辑1322的计算机可执行指令,所述逻辑1322在由处理器1312应用和执行时实施本文中所公开的过程的实施例。

输入装置1308包含用于将信息输入到数据处理系统1302的装置和机构。这些可包含键盘、小键盘、并入到图形用户界面中的触摸屏、例如语音识别系统、麦克风的音频输入装置,以及其它类型的输入装置。在各种实施例中,输入装置1308可体现为计算机鼠标、轨迹球、轨迹板、操纵杆、无线遥控器、绘图平板、语音命令系统、眼睛跟踪系统以及类似物。输入装置1308通常允许用户经由例如点击按钮或类似物的命令选择出现在图形用户界面上的对象、图标、控制区域、文字以及类似物。

输出装置1310包含用于从数据处理系统1302输出信息的装置和机构。这些可包含同样在本领域中了解的图形用户界面、扬声器、打印机、红外LED等等。在某些实施例中,图形用户界面借助于有线连接直接耦合到总线子系统1316。在其它实施例中,图形用户界面借助于通信网络接口1306耦合到数据处理系统1302。举例来说,图形用户界面可包括单独计算装置1300(例如台式计算机、服务器或移动装置)上的命令行接口。

通信网络接口1306提供到数据处理系统1302外部的通信网络(例如,通信网络1304)和装置的接口。通信网络接口1306可充当用于从其它系统接收数据且将数据传输到其它系统的接口。通信网络接口1306的实施例可包含以太网接口、调制解调器(电话、卫星、电缆、ISDN)、(异步)数字订户线(DSL)、火线、USB、例如蓝牙或WiFi的无线通信接口、近场通信无线接口、蜂窝接口以及类似物。

通信网络接口1306可经由天线、电缆或类似物耦合到通信网络1304。在一些实施例中,通信网络接口1306可物理地集成在数据处理系统1302的电路板上,或在一些情况下可在软件或固件(例如“软调制解调器”或类似物)中实施。

计算装置1300可包含允许使用例如HTTP、TCP/IP、RTP/RTSP、IPX、UDP以及类似物的协议在网络上通信的逻辑。

易失性存储器1318和非易失性存储器1320是配置成存储计算机可读数据和指令以实施本文中所描述的过程的各种实施例的有形介质的实例。其它类型的有形介质包含可移动存储器(例如,可插拔USB存储器装置、移动装置SIM卡)、例如CD-ROM、DVD的光学存储介质、例如快闪存储器的半导体存储器、非暂时性只读存储器(ROM)、电池支持的易失性存储器、联网存储装置以及类似物。易失性存储器1318和非易失性存储器1320可配置成存储提供落入所要求解决方案的范围内的所公开过程和其其它实施例的功能性的基本编程和数据构造。

可将实施解决方案的实施例的一个或多个部分的逻辑1322存储在易失性存储器1318和/或非易失性存储器1320中。逻辑1322可由处理器1312从易失性存储器1318和/或非易失性存储器1320读取且执行。易失性存储器1318和非易失性存储器1320也可提供用于存储由逻辑1322使用的数据的存储库。

易失性存储器1318和非易失性存储器1320可包含数个存储器,所述存储器包含用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)和存储只读非暂时性指令的只读存储器(ROM)。易失性存储器1318和非易失性存储器1320可包含为程序和数据文件提供永久(非易失性)存储的文件存储子系统。易失性存储器1318和非易失性存储器1320可包含可移动存储系统,例如可移动快闪存储器。

总线子系统1316提供用于允许数据处理系统1302的各种组件和子系统按预期彼此通信的机构。虽然将通信网络接口1306示意性地描绘为单个总线,但总线子系统1316的一些实施例可利用多个相异的总线。

本领域的技术人员将容易地显而易见,计算装置1300可以是例如智能手机、台式计算机、膝上型计算机、机架安装式计算机系统、计算机服务器或平板计算机装置的装置。如本领域中通常已知的,计算装置1300可实施为一系列多个联网计算装置。另外,计算装置1300将通常包含操作系统逻辑(未示出),其类型和性质在本领域中众所周知。

本文中所使用的术语应被赋予相关领域中的普通含义,或由其在上下文中的使用指示的含义,但如果提供明确的定义,则以所述含义为准。

在本公开内,可将不同实体(其可不同地称为“单元”、“电路”、其它组件等)描述或要求为“配置”成进行一个或多个任务或操作。配置成[进行一个或多个任务]的[实体]的这一表述在本文中用来指结构(即,例如电子电路的物理物体)。更具体来说,这一表述用来指示这一结构布置成在操作期间进行一个或多个任务。即使结构当前未被操作,也可将所述结构称为“配置成”进行一些任务。“配置成将信用分配到多个处理器内核的信用分配电路”意图涵盖例如具有在操作期间进行这一功能的电路系统的集成电路,即使所论述的集成电路当前未被使用(例如,其未连接到电源)也是这样。因此,描述或叙述为“配置成”进行一些任务的实体是指物理物体,例如装置、电路、存储可执行以实施任务的程序指令的存储器等。这一短语在本文中并不用来指无形物体。

术语“配置成”并不意指“可配置成”。举例来说,虽然未编程的FPGA在编程之后“可配置成”进行一些具体功能,但所述未编程的FPGA将不会被视为“配置成”进行所述功能。

在所附权利要求书中叙述结构“配置成”进行一个或多个任务明确地不意图为所述权利要求元素援引35U.S.C.§112(f)。因此,本申请中并不另外包含“用于”[进行功能]“的构件”构造的权利要求书不应依据35U.S.C§112(f)解释。

如本文中所使用,术语“基于”用来描述影响确定的一个或多个因素。这一术语并不排除额外因素可能影响确定的可能性。也就是说,确定可仅仅基于指定因素或基于指定因素以及其它未指定的因素。考虑短语“基于B来确定A”。这一短语指定B为用于确定A或影响A的确定的因素。这一短语并不排除A的确定还可基于例如C的某一其它因素。这一短语还意图涵盖仅仅基于B来确定A的实施例。如本文中所使用,短语“基于”与短语“至少部分地基于”同义。

如本文中所使用,短语“响应于”描述触发效果的一个或多个因素。这一短语并不排除额外因素可能影响或以其它方式触发效果的可能性。也就是说,效果可能仅仅响应于那些因素,或可能响应于指定因素以及其它未指定因素。考虑短语“响应于B而进行A”。这一短语指定B为触发A的进行的因素。这一短语并不排除进行A还可响应于例如C的某一其它因素。这一短语还意图涵盖仅仅响应于B而进行A的实施例。

如本文中所使用,除非另外陈述,否则术语“第一”、“第二”等用作在其之前的名词标记,且并不暗示任何类型的排序(例如,空间、时间、逻辑等)。例如,在具有八个寄存器的寄存器组中,术语“第一寄存器”和“第二寄存器”可用来指代八个寄存器中的任两个,而不是例如仅指代逻辑寄存器0和1。

当在权利要求书中使用时,术语“或”用作包含性的或,而不是排他性的或。举例来说,短语“x、y或z中的至少一个”意味着x、y以及z中的任一个,以及其任何组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号