一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

读取干扰扫描合并的制作方法

2022-04-09 03:07:46 来源:中国专利 TAG:


1.本公开的实施例大体上涉及存储器子系统,且更特定来说,涉及管理包含具有不同特性的存储器组件的存储器子系统。


背景技术:

2.存储器子系统可为存储系统、存储器模块或存储装置与存储器模块的混合体。存储器子系统可包含存储数据的一或多个存储器组件。举例来说,所述存储器组件可为非易失性存储器组件及易失性存储器组件。一般来说,主机系统可利用存储器子系统来将数据存储于存储器组件处及从存储器组件检索数据。
附图说明
3.从下面给出的详细描述及从本公开的各种实施例的附图中,将更全面地理解本公开。
4.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
5.图2是根据本公开的一些实施例的使用具有分层粒度的读取计数器的实例方法的流程图。
6.图3是说明根据本公开的一些实施例的在物理块级及超级块级粒度下的读取计数器的框图。
7.图4是根据本公开的一些实施例的使用在物理块级粒度下的读取计数器来触发数据完整性扫描的实例方法的流程图。
8.图5是根据本公开的一些实施例的使用在超级块级粒度下的读取计数器来触发数据完整性扫描的实例方法的流程图。
9.图6是根据本公开的一些实施例的确定读取计数缩放因子的实例方法的流程图。
10.图7是说明根据本公开的一些实施例的用于存储读取计数缩放因子的数据结构的框图。
11.图8是根据本公开的一些实施例的在使读取计数器递增以触发数据完整性扫描时使用读取计数缩放因子的实例方法的流程图。
12.图9是根据本公开的一些实施例的在数据完整性扫描之后将分层准则用于块刷新的实例方法的流程图。
13.图10是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
14.本公开的方面涉及用以最小化存储器子系统中的系统带宽损失的跨越存储器组件的多个平面的读取干扰扫描合并。存储器子系统可为存储器装置、存储器模块或存储装置与存储器模块的混合体。下面结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供待存储在存储子
系统处的数据,并且可请求待从存储子系统检索的数据。
15.存储器组件可为存储器装置,例如非易失性存储器装置。非易失性存储器装置是一或多个裸片的封装。每一裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,nand装置),每一平面由一组物理块组成。对于一些存储器装置,块是可擦除的最小区域。每一块由一组页面组成。每一页面由存储数据位的一组存储器单元组成。当数据被写入存储器组件的存储器单元用于存储时,存储器单元可能劣化。因此,存储器组件的每一存储器单元可处置在存储器单元不再能够可靠地存储数据之前执行的有限数目个写入操作。存储在存储器组件的存储器单元处的数据可从存储器组件读取并传输到主机系统。当从存储器组件的存储器单元读取数据时,附近或邻近存储器单元可经历所谓的读取干扰。读取干扰是在不插入擦除操作的情况下从一个存储器单元连续读取的结果,其导致其它附近存储器单元随时间改变(例如,变为经编程的)。如果对存储器单元执行过多的读取操作,那么存储在存储器组件的邻近存储器单元处的数据可能被损坏或不正确地存储在存储器单元处。这可导致存储在存储器单元处的数据的更高数据错误率。这可增加对在存储器单元上执行的后续操作(例如,读取及/或写入)的错误检测及校正操作(例如,错误控制操作)的使用。错误控制操作的增加使用可导致常规存储器子系统的性能的降低。另外,随着存储器单元或块的错误率继续增加,其甚至可超过存储器子系统的错误校正能力,从而导致无法修复的数据丢失。此外,随着存储器子系统的更多资源被用于执行错误控制操作,更少资源可用于执行其它读取操作或写入操作。
16.由于读取干扰,与存储在块处的数据相关联的错误率可能增加。因此,在对块执行阈值数目个读取操作之后,存储器子系统可执行数据完整性检查(在本文也称为“扫描”),以验证存储在块处的数据不包含任何错误。在数据完整性检查期间,针对存储在块处的数据确定一或多个可靠性统计。可靠性统计的一个实例是原始位错误率(rber)。rber对应于存储在块处的数据每单位时间经历的位错误的数目。
17.常规上,如果块的可靠性统计超过阈值(指示至少部分归因于读取干扰的与存储在块处的数据相关联的高错误率),那么存储在块处的数据被重新定位到存储器子系统的新块(在本文也称为“折叠”)。将存储在块处的数据折叠到另一块可包含将数据写入到另一块以刷新由存储器子系统存储的数据。这样做可消除与数据相关联的读取干扰的影响,并在块处擦除数据。然而,如先前论述,读取干扰可影响邻近于对其执行读取操作的存储器单元的存储器单元。因此,如果更频繁地读取特定存储器单元,那么读取干扰可在块的存储器单元上引起不均匀应力。举例来说,邻近于被频繁读取的存储器单元的块的存储器单元可具有高错误率,而不邻近于所述存储器单元的存储器单元可具有较低错误率,这是归因于读取干扰对这些存储器单元的影响减少。
18.取决于主机系统针对特定存储器子系统的数据存取活动,读取干扰的影响可集中在块中的一或多个特定存储器页面上,或者跨越块的所有存储器页面更均匀分布。举例来说,如果读取应力集中在单个存储器页面上,那么所述块可被认为正在经历单字线(swl)读取干扰(也称为“行锤”读取干扰)。在存储在存储器子系统中的某一片数据的读取频率显著高于同一块中的其余数据的情况下,可发生单字线读取干扰。然而,如果读取应力跨越多个存储器页面均匀分布,那么所述块可被认为正在经历均匀读取干扰(也称为“全块”读取干扰)。在以大致相同频率读取块中的每一片数据的情况下,可发生均匀读取干扰。
19.常规存储器子系统使用扫描操作在块级下执行数据完整性检查。由于扫描操作是在块级下执行,所以存储器子系统监测对特定块执行的读取操作的数目,并在读取计数(即,读取操作的数目)满足或超过某一读取阈值时执行扫描操作。取决于实施方案,存储器子系统可维持跟踪对不同粒度的区段执行的读取操作的数目的读取计数器或多个读取计数器。举例来说,一些系统可为每一物理块维持单独读取计数器,而其它系统可为超级块(即,多个物理块的集合)维持读取计数器。在许多情形中,可用存储器空间(例如,ram)不足以支持针对每一物理块使用读取计数器。在这些情况下,存储器子系统可使用在超级块级下的读取计数器。控制器固件通常无法区分单字线读取干扰应力与均匀读取干扰应力,因此其利用基于单字线读取干扰应力设置的保守读取阈值。当物理块中的一个字线经历单字线读取干扰应力时,触发扫描的读取计数可比仅经历均匀读取干扰应力的另一物理块中的字线低2倍到50倍。如果两个物理块都是同一超级块的部分,并且存储器子系统为超级块维持公共读取计数器,那么读取操作的阈值数目将比由超级块中个别物理块中的任一者看到的实际读取数目显著更快地达到。因此,尽管扫描所述一个物理块可能是合适的,但是对于超级块中的其余物理块,可能不需要此扫描操作。以此方式执行不必要的扫描操作可导致存储器子系统执行过多的存储器管理操作。这可导致存储器子系统的性能降低,以及存储器子系统的功耗增加。系统带宽及其它资源也可能被占用达延长的时间段,从而阻碍将所述资源用于其它功能性。
20.本公开的方面通过使用具有分层粒度的读取计数器来解决以上及其它缺陷,其中粒度是基于对应块是否存储最近写入的数据。对于存储最近写入的数据的块(即,开放块),存储器子系统可在第一操作模式下操作,并利用在物理块级下的读取计数器来个别地跟踪对每一物理块执行的读取操作的数目。当数据的年限增加且块不再存储最近写入的数据(即,封闭块)时,例如如果较新数据已写入到存储器组件上的其它块,存储器子系统可切换到第二操作模式,并利用在超级块级下的读取计数器来跟踪对超级块中的所有块一起执行的读取操作的数目。通过在超级块级下跟踪封闭块上的读取计数,存储器子系统减少维持读取计数器所需的存储器空间开销,并释放所述存储器空间用于其它数据。通过在物理块级下跟踪开放块上的读取计数,存储器子系统减少读取计数累积并降低执行数据完整性扫描的频率,借此提高性能、降低功耗并释放系统资源用于其它功能性。因此,当执行读取干扰扫描时,存储器控制器将被占用更少时间,借此允许控制器有更多的时间来处置针对存储器组件的其它数据存取操作。
21.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含例如存储器组件112a到112n的媒体。存储器组件112a到112n可为易失性存储器组件、非易失性存储器组件或其组合。存储器子系统110可为存储器装置、存储器模块或存储器装置与存储器模块的混合体。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器及硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm)及非易失性双列直插式存储器模块(nvdimm)。
22.计算环境100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120例如使用存储器子系统110将数据写入到存
储器子系统110并从存储器子系统110读取数据。如本文使用,“耦合到”一般是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有介入组件),无论是有线的还是无线的,包含例如电、光学、磁的连接等。
23.主机系统120可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置、嵌入式计算机(例如,包含在交通工具、工业装备或联网商业装置中的嵌入式计算机),或包含存储器及处理装置的类似计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或向存储器子系统110写入数据。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中所使用的,“耦合到”通常是指组件之间的连接,其可为有线或无线的间接通信连接或直接通信连接(例如,没有中间组件),其包含例如电、光学、磁等的连接。物理主机接口的实例包含(但不限于)串行高级技术附件(sata)接口、外围组件互连快速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。主机系统120可进一步利用nvm快速(nvme)接口以在存储器子系统110通过pcie接口与主机系统120耦合时存取存储器组件112a到112n。所述物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。
24.存储器组件112a到112n可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含“与非”(nand)型快闪存储器。存储器组件112a到112n中的每一者可包含一或多个存储器单元阵列,例如单电平单元(slc)或多电平单元(mlc)(例如,三电平单元(tlc)或四电平单元(qlc))。在一些实施例中,特定存储器组件可包含存储器单元的slc部分及mlc部分两者。存储器单元中的每一者可存储由主机系统120使用的一或多个数据位。尽管描述例如nand型快闪存储器的非易失性存储器组件,但是存储器组件112a到112n可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112a到112n可为(但不限于)随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁随机存取存储器(mram)、“或非”(nor)快闪存储器、电可擦可编程只读存储器(eeprom)以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可根据体电阻的变化结合可堆叠的交叉栅格数据存取阵列执行位存储。另外,与许多基于快闪的存储器相对照,交叉点非易失性存储器可执行就地写入操作,其中可对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。此外,存储器组件112a到112n的存储器单元可被分组为存储器页面或块,其可指代用于存储数据的存储器组件的单位。块可进一步被分组成存储器组件112a到112n中的每一者上的一或多个平面,其中操作可同时对平面中的每一者执行。来自不同平面的对应块可在一条带中而不是横跨多个平面彼此相关联。
25.存储器系统控制器115(此后称为“控制器”)可与存储器组件112a到112n通信以执行例如在存储器组件112a到112n处读取数据、写入数据或擦除数据的操作以及其它此类操作。控制器115可包含例如一或多个集成电路及/或离散组件、缓冲器存储器或其组合的硬件。控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适处理器。控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明实例中,控制器115的本地存储器119包含经配置以存储用于执行各种过程、操作、逻辑流程以及控制存储器子系统110的操作的嵌入
式存储器,包含处置存储器子系统110与主机系统120之间的通信。在一些实施例中,本地存储器119可包含存储寄存器,其存储存储器指针、获取的数据等。本地存储器119还可包含用于存储微代码的只读存储器(rom)。尽管图1中的实例存储器子系统110已经说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
26.一般来说,控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换为指令或适当命令以实现对存储器装置112a到112n的期望存取。控制器115可负责其它操作,例如损耗均衡操作、垃圾收集操作、错误检测及错误校正码(ecc)操作、加密操作、高速缓存操作以及与存储器组件112a到112n相关联的逻辑块地址与物理块地址之间的地址转译。控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换为命令指令以存取存储器组件112a到112n,并且将与存储器组件112a到112n相关联的响应转换为用于主机系统120的信息。
27.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含可从控制器115接收地址并解码所述地址以存取存储器组件112a到112n的高速缓存或缓冲器(例如,dram)及地址电路系统(例如,行解码器及列解码器)。
28.存储器子系统110包含扫描确定组件113,其可用于确定何时对存储器组件112a到112n的块执行扫描或其它数据完整性检查。在一个实施例中,扫描确定组件113监测存储在存储器组件112a到112n的块中的数据的年限,并实施具有分层粒度的读取计数器用于跟踪所执行的读取操作的数目。所执行的读取操作的数目是扫描确定组件113可用于确定何时执行数据完整性扫描的一个度量。在一个实施方案中,读取计数器被维持在本地存储器119中。对于存储最近写入的数据的块(即,开放块),扫描确定组件113可利用在物理块级下的读取计数器来分别跟踪对每一物理块执行的读取操作的数目。在其它实施方案中,扫描确定组件113可利用读取计数器及某个其它粒度级,例如每字线、每字线群组或每某个其它存储器单位。当为较小存储单位维持读取计数器时,累积速率较低,并且在数据完整性扫描期间可扫描较少字线。因此,当对某一物理块执行读取操作时,使所述物理块的对应读取计数器递增定义量(例如,1)。当数据的年限增加且块不再存储最近写入的数据(即,封闭块)时,例如如果较新数据已写入存储器组件上的其它块,扫描确定组件113可利用在超级块级下的读取计数器来跟踪对超级块中的所有块一起执行的读取操作的数目。因此,当对作为超级块的部分的任何块执行读取操作时,使所述超级块的对应读取计数器递增。如果扫描确定组件113确定读取计数(即,针对个别物理块或超级块)满足第一阈值准则(例如,超过第一读取阈值),扫描确定组件113可执行数据完整性扫描以确定一个物理块或超级块中的所有块的错误率,这视情况而定。在确定对应错误率之后,扫描确定组件113可确定错误率中的任一者是否超过错误阈值,并且可重新定位来自所述块的数据并复位所述块的读取计数。下面描述关于扫描确定组件113的操作的进一步细节。
29.图2是根据本公开的一些实施例的使用具有分层粒度的读取计数器的实例方法的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的扫描确定组件113执行。尽管以特
定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可行的。
30.在操作210处,处理装置监测存储在存储器组件112a到112n上的各个块中的数据的年限。在一个实施例中,控制器115维持存储在存储器组件112a到112n上的所有块的索引。举例来说,索引可包含块的列表及指派到块中的每一者的循序索引号。当在存储器组件112a到112n上写入新块时,控制器115可向索引添加对应条目并指派索引号。每次指派新索引号时,索引号的值可递增一个单位。因此,索引号的值指示存储在块上的数据的年限,因为最近写入的块可被指派比先前写入的块更高的索引号。当块被擦除及/或被新数据盖写时,控制器115可将新索引号指派到块。在一个实施例中,控制器115在本地存储器119中维持索引。
31.在操作220处,处理装置确定特定块是否正在存储最近写入的数据。在一个实施例中,扫描确定组件113维持关于数据的年限的阈值准则,其中阈值准则用于确定数据是否最近被写入。举例来说,阈值准则可包含表示一定量的最近写入的数据的索引号。在一个实施例中,可根据一起存储一定量的数据(例如,1千兆位)的块的数目来定义阈值准则。因此,扫描确定组件113可确定某一块的索引号,确定所述索引号与索引中最高索引号之间的差异,并将所述差异与阈值准则进行比较。举例来说,如果某一块具有索引号为966,那么最高索引号为972意味着差异为6,且如果阈值准则设置为24个块,扫描确定组件113可确定存储在块中的数据满足阈值准则(即,小于或等于块的阈值数目)。相反,如果差异大于块的阈值数目,那么可认为数据不满足阈值准则。
32.如果块正在存储最近写入的数据,那么在操作230,处理装置维持第一操作模式,并使用物理块级读取计数器来跟踪对块执行的读取操作的数目。图3是说明根据本公开的一些实施例的在物理块级下的读取计数器的框图。如所说明,存在数个逻辑超级块s1、s2、s3,其各自包括跨越多个逻辑单元号(lun)lun1、lun2、lun3、lun4分条的数个物理块p0、p1。在一个实施例中,物理块是跨越存储器组件的多个lun(或平面)的块的条带的部分。此条带也可称为超级块。在一个实施例中,在第一操作模式中,扫描确定组件113在本地存储器119中针对超级块s1的lun中的每一者中的每一物理块p0、p1维持单独读取计数器c1到c8。如果给定超级块中的块中的任何一者正在存储最近写入的数据,那么扫描确定组件113可针对超级块中的块中的每一者使用单独物理块级计数器。每次对某一块(例如,lun1的p0)执行读取操作时,扫描确定组件113可使对应物理块级读取计数器(例如,c1)递增。
33.如果块没有正在存储最近写入的数据,那么在操作240,处理装置切换到第二操作模式,并使用超级块级读取计数器来跟踪对超级块执行的读取操作的数目。如在图3中所说明,如果给定超级块中的所有块都没有正在存储最近写入的数据,那么扫描确定组件113可针对超级块(例如,s2或s3)中的所有块使用单个超级块级计数器(例如,c9或c10)。每次对超级块中的块中的任一者执行读取操作时,扫描确定组件113可使对应超级块级读取计数器(例如,c9或c10)递增。
34.在操作250处,处理装置基于对应于超级块中的物理块的物理块级读取计数器中的任一者的最高值来设置超级块级读取计数器的值。当从第一模式转换到第二模式时,例
如如果超级块中的数据已经老化并且不再有资格作为最近写入的数据,那么扫描确定组件113可使用物理块级读取计数器的值来确定超级块级读取计数器的值。举例来说,如果确定超级块s1在某个时间点处不包含任何最近写入的数据,那么扫描确定组件113可从计数器c1到c8中的任一者识别最高读取计数值,并将所述值用作针对超级块s1的新超级块级读取计数器的值。
35.图4是根据本公开的一些实施例的使用在物理块级粒度下的读取计数器来触发数据完整性扫描的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的扫描确定组件113执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可行的。
36.在操作410处,处理装置进入针对超级块中每一物理块使用单独读取计数器的第一模式。如上文描述,如果给定超级块s1中的块(例如,lun1到lun4上的p0到p1中的任何一者正在存储最近写入的数据,那么扫描确定组件113可针对超级块中的块中的每一者使用单独物理块级计数器c1到c8。在操作420处,处理装置响应于接收到定向到对应块的读取请求而使物理块级读取计数器递增。举例来说,控制器115可接收指示特定逻辑数据地址的读取请求,并且可确定所述数据的对应物理块地址。控制器115接着可对所述块(例如,超级块s1中lun1的p0)执行读取操作,并且扫描确定组件113可使对应物理块级读取计数器(例如,c1)递增。
37.在操作430处,处理装置确定读取计数器c1的值(即,读取计数)是否满足读取阈值准则(即,满足或超过第一读取阈值)。读取计数表示自对第一块执行先前扫描操作或数据完整性检查以来第一块(例如,lun1的p0)已被读取的次数,此时读取计数将被复位。在其它实施方案中,当执行扫描操作或数据完整性检查时,不复位读取计数器,而是使读取计数阈值递增阈值量。第一读取阈值可表示在应执行扫描或其它数据完整性检查之前对给定存储器块进行的读取操作的数目。在一个实施例中,扫描确定组件113将读取计数与第一读取阈值进行比较,以确定读取计数是否满足或超过第一读取阈值。如果读取计数不满足或超过第一读取阈值,那么处理装置返回到操作410并继续监测存储器组件上的块的读取计数值。在另一实施例中,第一阈值准则包含读取计数低于第一读取阈值,使得如果读取计数不满足第一阈值准则,那么处理装置继续到操作440。
38.如果满足读取阈值准则,那么在操作440处,处理装置执行数据完整性扫描以确定块的错误率。由于读取干扰,与存储在块处的数据相关的错误率可能增加。因此,在对块执行阈值数目个读取操作之后,存储器子系统110可执行扫描或其它数据完整性检查,以验证存储在块处的数据不包含任何错误,或者错误数目适当地低。在扫描期间,扫描确定组件113识别一或多个可靠性统计,例如表示存储在块处的数据每单位时间经历的位错误的数目的原始位错误率(rber)。在一个实施例中,在扫描期间,扫描确定组件113从块读取原始码字(即,一系列固定数目个位)。扫描确定组件113可将码字应用于错误校正码(ecc)解码器以产生经解码码字并将经解码码字与原始码字进行比较。扫描确定组件113可对经解码
码字与原始码字之间的翻转位的数目进行计数,其中翻转位的数目与码字中的位的总数目的比率表示rber。扫描确定组件113可针对额外码字重复此过程,直到已扫描整个块。
39.在操作450处,处理装置确定块的错误率是否满足错误阈值准则(即,满足或超过错误阈值)。在一个实施例中,扫描确定组件113将错误率与表示存储器组件的错误校正能力的错误阈值进行比较。如果错误率不满足或超过错误阈值,那么处理装置返回到操作410并继续监测存储器组件上的块的读取计数值。在另一实施例中,错误阈值准则包含错误率低于错误阈值,使得如果错误率不满足错误阈值准则,那么处理装置继续到操作460。
40.如果满足错误阈值准则,那么在操作460,处理装置将来自块的数据重新定位到另一块,并复位读取计数器c1的读取计数值(例如,到0或到某个其它初始值)。在一个实施例中,扫描确定组件113读取存储在对应块(即,其错误率满足或超过错误阈值的块)中的数据,并将所述数据写入到另一块。一旦数据已被写入到另一块,就擦除存储在初始块中的数据并且初始块可用新数据进行编程。取决于实施例,将数据重新定位到同一存储器组件的同一平面的另一块、同一存储器组件上的另一平面或存储器子系统110的不同存储器组件。
41.图5是根据本公开的一些实施例的使用在超级块级粒度下的读取计数器来触发数据完整性扫描的实例方法的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的扫描确定组件113执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可行的。
42.在操作510,处理装置进入针对每一超级块使用单个读取计数器的第二模式。如上文描述,如果给定超级块s2中的块(例如,lun1到lun4上的p0到p1都没有正在存储最近写入的数据,那么扫描确定组件113可针对超级块s2使用单个超级块级计数器c9。在操作520,处理装置响应于接收到定向到超级块s2中的任何块的读取请求而使超级块级读取计数器c9递增。举例来说,控制器115可接收指示特定逻辑数据地址的读取请求,并且可确定所述数据的对应物理块地址。控制器115接着可对所述块(例如,超级块s2中lun1的p0)执行读取操作,并且扫描确定组件113可使对应超级块级读取计数器(例如,c9)递增。
43.在操作530处,处理装置确定读取计数器c9的值(即,读取计数)是否满足读取阈值准则(即,满足或超过第一读取阈值)。读取计数表示自对块执行先前扫描操作或数据完整性检查以来对应超级块s2中的块中的任一者已被读取的次数,此时读取计数将被复位。第一读取阈值可表示在应执行扫描或其它数据完整性检查之前对给定存储器块进行的读取操作的数目。在一个实施例中,扫描确定组件113将读取计数与第一读取阈值进行比较,以确定读取计数是否满足或超过第一读取阈值。如果读取计数不满足或超过第一读取阈值,那么处理装置返回到操作510并继续监测存储器组件上的块的读取计数值。在另一实施例中,第一阈值准则包含读取计数低于第一读取阈值,使得如果读取计数不满足第一阈值准则,那么处理装置继续到操作540。
44.如果满足读取阈值准则,那么在操作540处,处理装置执行数据完整性扫描以确定针对超级块s2中每一物理块的错误率。在扫描期间,扫描确定组件113识别一或多个可靠性
统计,例如表示存储在块处的数据每单位时间经历的位错误的数目的原始位错误率(rber)。在一个实施例中,在扫描期间,扫描确定组件113从块读取原始码字(即,一系列固定数目个位)。扫描确定组件113可将码字应用于错误校正码(ecc)解码器以产生经解码码字并将经解码码字与原始码字进行比较。扫描确定组件113可对经解码码字与原始码字之间的翻转位的数目进行计数,其中翻转位的数目与码字中的位的总数目的比率表示rber。扫描确定组件113可针对额外码字重复此过程,直到超级块中的每一块都已被扫描。
45.在操作550处,处理装置确定物理块中的任一者的错误率是否满足错误阈值准则(即,满足或超过错误阈值)。在一个实施例中,扫描确定组件113将块的错误率与表示存储器组件的错误校正能力的错误阈值进行比较。如果特定块的错误率不满足或超过错误阈值,那么处理装置返回到操作510并继续监测存储器组件上的块的读取计数值。在另一实施例中,错误阈值准则包含错误率低于错误阈值,使得如果错误率不满足错误阈值准则,那么处理装置继续到操作560。
46.如果满足错误阈值准则,那么在操作560,处理装置将来自块的数据重新定位到另一块,并复位读取计数器c9的读取计数值(例如,到0或到某个其它初始值)。在一个实施例中,扫描确定组件113读取存储在对应块(即,其错误率满足或超过错误阈值的块)中的数据,并将所述数据写入到另一块。一旦数据已被写入到另一块,就擦除存储在初始块中的数据并且初始块可用新数据进行编程。取决于实施例,将数据重新定位到同一存储器组件的同一平面的另一块、同一存储器组件上的另一平面或存储器子系统110的不同存储器组件。
47.图6是根据本公开的一些实施例的确定读取计数缩放因子的实例方法的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600由图1的扫描确定组件113执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可行的。
48.在操作610处,处理装置执行数据完整性扫描以识别与块中的每一字线相关联的一或多个可靠性统计,例如rber。在一个实施例中,在扫描期间,扫描确定组件113从每一字线读取原始码字(即,一系列固定数目个位),将所述码字应用于ecc解码器以产生经解码码字,并将经解码码字与原始码字进行比较。扫描确定组件113可对经解码码字与原始码字之间的翻转位的数目进行计数,其中翻转位的数目与码字中的位的总数目的比率表示rber。扫描确定组件113可针对额外码字重复此过程,直到块中的每一字线都已被扫描。
49.在操作620处,处理装置使用所确定错误率识别块中的一或多个单字线读取干扰受害区。单字线读取干扰受害区可具有显著高于其它字线区的错误率。在一个实施例中,扫描确定组件113可将每一字线的所确定错误率彼此进行比较,并识别最高错误率。举例来说,扫描确定组件可将具有超过所有字线错误率的平均值一定阈值量的所确定错误率的字线识别为组成单字线读取干扰受害区的字线。在一个实施例中,错误率高于第一阈值的字线可被视为单字线读取干扰受害区的部分,且错误率低于第二阈值的字线可被视为另一字线区的部分。
50.在操作630处,处理装置确定一或多个单字线读取干扰受害区及未受单字线读取干扰影响的其它字线区的读取干扰能力。在一个实施例中,扫描确定组件113将针对字线中的每一者的所确定错误率与针对块的错误阈值进行比较,以使结果正规化。扫描确定组件113可确定所确定错误率代表对应字线的错误阈值的百分比。举例来说,如果错误阈值为200,并且针对字线的所确定错误率为20,那么所得百分比为10%。剩余百分比(即90%)表示字线的读取干扰能力。在一个实施例中,扫描确定组件113针对一或多个单字线读取干扰受害区及其它字线区中的每一者做出类似确定。举例来说,来自单字线读取干扰受害区的字线具有180的错误率,给出90%的百分比,这指示读取干扰能力为10%。在一个实施例中,具有低于第一阈值的读取干扰能力的字线可被视为单字线读取干扰受害区的部分,并且具有高于第二阈值的读取干扰能力的字线可被视为另一字线区的部分。
51.在框640处,处理装置基于其它字线区的读取干扰能力与一或多个单字线读取干扰受害区的读取干扰能力的比率来确定读取计数缩放因子。在一个实施例中,扫描确定组件113确定被确定为其它字线区的部分的所有字线的第一平均读取干扰能力及被确定为一或多个单字线读取干扰受害者区的部分的所有字线的第二平均读取干扰能力。在另一实施例中,扫描确定组件113确定被确定为其它字线区的部分的所有字线的第一最大读取干扰能力及被确定为一或多个单字线读取干扰受害者区的部分的所有字线的第二最大读取干扰能力。扫描确定组件113可确定第一最大值与第二最大值的比率,其中所确定比率可用作读取计数缩放因子。举例来说,如果第一最大值为90%,且第二最大值为10%,那么所确定读取计数缩放因子为9。在一个实施例中,扫描确定组件113可将读取计数缩放因子的指示存储在数据结构700中,如在图7中说明。图7是说明根据本公开的一些实施例的用于存储读取计数缩放因子的数据结构700的框图。在一个实施例中,数据结构包含对应于存储器组件上的每一区段(例如,块)的条目,并且可例如存储在本地存储器119中。如所说明,每一条目可包含对应区段的标识符、所述区段的当前读取计数、所述区段的定义扫描阈值、所述区段中的一或多个单字线读取干扰受害区的指示以及针对所述区段的所确定缩放因子。
52.再次参考图6,在框650处,处理装置鉴于读取计数缩放因子服务于一或多个单字线读取干扰受害区及其它字线区的读取计数器。在一个实施例中,对于定向到一或多个单字线读取干扰受害区中的字线的每一读取操作,扫描确定组件113可将使块的读取计数器递增默认量(例如,1),并且对于定向到其它字线区中的字线的每一读取操作,扫描确定组件113可将使块的读取计数器递增缩放量(例如,1/9)。下面结合图8描述关于此读取计数缩放因子的使用的额外细节。
53.图8是根据本公开的一些实施例的在使读取计数器递增以触发数据完整性扫描时使用读取计数缩放因子的实例方法的流程图。方法800可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法800由图1的扫描确定组件113执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可行的。
54.在操作810处,处理装置从主机系统120或从存储器子系统110的某个其它组件接
收读取请求。在操作820处,处理装置确定读取请求是否被定向到存储在单字线读取干扰受害区中的数据。在一个实施例中,控制器115可接收指示特定逻辑数据地址的读取请求,并且可确定所述数据的对应物理块地址。如上文描述,数据结构700可包含指示所述区段中的一或多个单字线读取干扰受害区。因此,如果物理地址是在数据结构700中标识的地址范围的部分,那么控制器115可确定在读取请求中标识的数据存储在单字线读取干扰受害区中。否则,控制器115将读取请求视为被定向到块的其它字线区。
55.如果读取请求被定向到存储在单字线读取干扰受害区中的数据,那么在操作830,处理装置使针对块的读取计数器递增默认量。在一个实施例中,扫描确定组件使对应于经识别块的数据结构700中的读取计数器递增默认量(例如,1)。默认量是可配置参数并且在其它实施例中可具有其它值。
56.如果读取请求未被定向到存储在单字线读取干扰受害区中的数据,那么在操作840处,处理装置使针对块的读取计数器递增缩放量。在一个实施例中,缩放量包含表示缩放因子的倒数的值。举例来说,如果所确定缩放因子为9,那么缩放量可为1/9。
57.在操作850处,处理装置确定读取计数器的值(即,读取计数)是否满足读取阈值准则(即,满足或超过第一读取阈值)。读取计数表示自对块执行先前扫描操作或数据完整性检查以来块已被读取的次数,此时读取计数将被复位。第一读取阈值可表示在应执行扫描或其它数据完整性检查之前对给定存储器块进行的读取操作的数目。在一个实施例中,扫描确定组件113将读取计数与第一读取阈值进行比较,以确定读取计数是否满足或超过第一读取阈值。如果读取计数不满足或超过第一读取阈值,那么处理装置返回到操作810并等待从主机系统120接收另一读取请求。
58.如果满足读取阈值准则,那么在操作860处,处理装置执行数据完整性扫描以确定针对块的错误率。由于读取干扰,与存储在块处的数据相关的错误率可能增加。因此,在对块执行阈值数目个读取操作之后,存储器子系统110可执行扫描或其它数据完整性检查,以验证存储在块处的数据不包含任何错误,或者错误的数目适当地低。在扫描期间,扫描确定组件113识别一或多个可靠性统计,例如表示存储在块处的数据每单位时间经历的位错误的数目的rber。在一个实施例中,在扫描期间,扫描确定组件113从块读取原始码字(即,一系列固定数目个位)。扫描确定组件113可将码字应用于ecc解码器以产生经解码码字并将经解码码字与原始码字进行比较。扫描确定组件113可对经解码码字与原始码字之间的翻转位的数目进行计数,其中翻转位的数目与码字中的位的总数目的比率表示rber。扫描确定组件113可针对额外码字重复此过程,直到已扫描整个块。
59.在操作870处,处理装置确定块的错误率是否满足错误阈值准则(即,满足或超过错误阈值)。在一个实施例中,扫描确定组件113将错误率与表示存储器组件的错误校正能力的错误阈值进行比较。如果错误率不满足或超过错误阈值,那么处理装置返回到操作810并等待从主机系统120接收另一读取请求。
60.如果满足错误阈值准则,那么在操作880,处理装置将来自块的数据重新定位到另一块,并复位读取计数器的读取计数值(例如,到0或到某个其它初始值)。在一个实施例中,扫描确定组件113读取存储在块中的数据并将所述数据写入到另一块。一旦数据已被写入到另一块,就擦除存储在初始块中的数据并且初始块可用新数据进行编程。取决于实施例,将数据重新定位到同一存储器组件的同一平面的另一块、同一存储器组件上的另一平面或
存储器子系统110的不同存储器组件。
61.图9是根据本公开的一些实施例的在数据完整性扫描之后将分层准则用于块刷新的实例方法的流程图。方法900可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法900由图1的扫描确定组件113执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可行的。
62.在操作910处,处理装置执行数据完整性扫描以确定针对块上的每一字线的错误率。由于读取干扰,与存储在块处的数据相关的错误率可能增加。因此,在对块执行阈值数目个读取操作之后,存储器子系统110可执行扫描或其它数据完整性检查,以验证存储在块处的数据不包含任何错误,或者错误的数目适当地低。在扫描期间,扫描确定组件113识别一或多个可靠性统计,例如表示存储在块处的数据每单位时间经历的位错误的数目的rber。在一个实施例中,在扫描期间,扫描确定组件113从块读取原始码字(即,一系列固定数目个位)。扫描确定组件113可将码字应用于ecc解码器以产生经解码码字并将经解码码字与原始码字进行比较。扫描确定组件113可对经解码码字与原始码字之间的翻转位的数目进行计数,其中翻转位的数目与码字中的位的总数目的比率表示rber。扫描确定组件113可针对额外码字重复此过程,直到块中的每一字线都已被扫描。
63.在操作920处,处理装置确定块中的特定字线的最高错误率是否满足错误阈值准则(即,满足或超过错误阈值)。在一个实施例中,扫描确定组件113将块中的给定字线的最高错误率与表示存储器组件的错误校正能力的错误阈值进行比较。如果最高错误率不满足或超过错误阈值,那么处理装置返回到操作810并等待从主机系统120接收另一读取请求。
64.如果块的最高错误率满足错误阈值准则,那么在操作930,处理装置确定有多少字线具有满足错误阈值准则的错误率,并确定字线的数目是否满足折叠阈值准则。一般来说,错误阈值准则通常基于ecc解码器的硬解码阈值,以便最小化错误处置触发率。但实际上,对于读取重试及软解码能力,可存在显著读取干扰裕度。块中错误率最高的字线可受到局部读取应力(例如,单字线读取干扰应力)的影响,或者固有地比其它字线更弱。因而,可能不需要基于这一个字线来刷新整个块。因此,扫描确定组件113可在决定刷新块之前确定阈值数目个字线是否具有超过错误阈值的错误率。如果具有高错误率的字线的数目不满足折叠阈值准则,那么扫描确定组件可依赖内置于存储器子系统110中的错误处置过程来处置那些错误。
65.然而如果具有高错误率的字线的数目确实满足折叠阈值准则,那么在操作940,处理装置将来自块的数据重新定位到另一块,并复位读取计数器的读取计数值(例如,到0或到某个其它初始值)。在一个实施例中,扫描确定组件113读取存储在块中的数据并将所述数据写入到另一块。一旦数据已被写入到另一块,就擦除存储在初始块中的数据并且初始块可用新数据进行编程。取决于实施例,将数据重新定位到同一存储器组件的同一平面的另一块、同一存储器组件上的另一平面或存储器子系统110的不同存储器组件。
66.图10说明计算机系统1000的实例机器,在计算机系统1000内可执行用于致使所述
机器执行本文所论述的方法中的任一或多者的一组指令。在一些实施例中,计算机系统1000可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或者可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的扫描确定组件113的操作)。在替代实施例中,所述机器可连接(例如,联网)到lan、内联网、外联网及/或因特网中的其它机器。所述计算机可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
67.机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥或能够执行指定待由所述机器采取的动作的一组指令(循序或以其它方式)的任何机器。此外,虽然说明单个机器,但是术语“机器”也应被认为包含机器的任何集合,其个别地或共同地执行一组(或多组)指令以执行本文所论述的方法中的任一者或多者。
68.实例计算机系统1000包含处理装置1002、主存储器1004(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器1006(例如,快闪存储器、静态随机存取存储器(sram)等)及数据存储器装置1018,其经由总线1030彼此通信。
69.处理装置1002表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或者是实施其它指令集的处理器,或者是实施指令集的组合的处理器。处理装置1002也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似者。处理装置1002经配置以执行用于执行本文所论述的操作及步骤的指令1026。计算机系统1000可进一步包含网络接口装置1008以通过网络1020进行通信。
70.数据存储系统1018可包含机器可读存储媒体1024(也称为计算机可读媒体),在其上存储体现本文所描述的方法或功能中的任一者或多者的一或多组指令1026或软件。在由计算机系统1000执行指令1026期间,所述指令也可全部或至少部分地驻留在主存储器1004内及/或处理装置1002内,主存储器1004及处理装置1002也构成机器可读存储媒体。机器可读存储媒体1024、数据存储系统1018及/或主存储器1004可对应于图1的存储器子系统110。
71.在一个实施例中,指令1026包含用以实施对应于图1的扫描确定组件113的功能性的指令)。尽管在实例实施例中将机器可读存储媒体1024展示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被认为包含能够存储或编码一组指令以供机器执行并且致使机器执行本公开的方法中的任一者或多者的任何媒体。因此,术语“机器可读存储媒体”应被认为包含(但不限于)固态存储器、光学媒体及磁性媒体。
72.已经根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的某些部分。这些算法描述及表示是数据处理领域的技术人员用来最有效地向所属领域的其它技术人员传达其工作实质的方式。此处,算法通常被认为是导致所需结果的自洽操作序列。所述操作是需要对物理量的物理操纵的操作。通常但不是必须的,这些量采用能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。已经证明,有时主要出于通
用的原因将这些信号称为位、值、元素、符号、字符、项、数字或类似者是方便的。
73.然而,应牢记,所有这些及类似术语均应与适当物理量相关联并且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置将表示为计算机系统的寄存器及存储器内的物理(电子)数的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量。
74.本公开还涉及用于执行本文的操作的设备。此设备可经特定构造用于预期目的,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、cd-rom及磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或适用于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
75.本文提出的算法及显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文的教示的程序一起使用,或者可证明构造更专用设备来执行所述方法是方便的。各种这些系统的结构将如下文描述中所阐述那样出现。另外,未参考任何特定编程语言来描述本公开。将了解,可使用各种编程语言来实施如本文所描述的本公开的教示。
76.本公开可被提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以由机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
77.在前述说明书中,已经参考本公开的特定实例实施例描述本公开的实施例。显而易见的是,在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应被认为是说明意义而不是限制意义的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献