掌桥专利:专业的专利平台
掌桥专利
首页

减轻写入干扰的写入操作

文献发布时间:2023-06-19 11:27:38


减轻写入干扰的写入操作

技术领域

本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及执行减轻存储器子系统中的写入干扰的写入操作。

背景技术

存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据和从存储器装置检索数据。

发明内容

在一个方面中,本申请案提供一种系统,其包括:存储器装置;以及处理装置,其以操作方式与所述存储器装置耦合以执行包括以下各项的操作:接收写入主机数据集合的请求;执行第一多个写入操作以将所述主机数据集合的第一部分写入到以第一模式布置的所述存储器装置的存储器单元的第一集合,其中以所述第一模式布置的存储器单元的所述第一集合包括所述存储器装置的每一字线上的交替存储器单元且排除邻近于存储器单元的所述第一集合的存储器单元的第二集合;以及执行第二多个写入操作以将所述主机数据集合的第二部分写入到以第二模式布置的存储器单元的所述第二集合,其中以所述第二模式布置的存储器单元的所述第二集合包括在所述存储器装置的每一字线上的邻近于存储器单元的所述第一集合的其它交替存储器单元。

在另一方面中,本申请案提供一种方法,其包括:执行第一写入操作以将主机数据集合的第一部分写入到存储器装置的第一位置;监视从执行所述第一写入操作时起经过的时间以确定所述经过的时间是否满足时间条件;响应于确定所述经过的时间不满足所述时间条件:由处理装置执行第二写入操作以将所述主机数据集合的第二部分写入到所述存储器装置的第二位置,其中所述第二位置不邻近于所述第一位置;以及继续监视所述经过的时间以确定所述经过的时间是否满足所述时间条件;以及响应于确定所述经过的时间满足所述时间条件,执行第三写入操作以将所述主机数据集合的第三部分写入到所述存储器装置的第三位置,其中所述第三位置邻近于所述第一位置。

在另一方面中,本申请案提供一种包括指令的非暂时性计算机可读存储介质,所述指令在由处理装置执行时使所述处理装置进行以下操作:执行第一写入操作以将主机数据集合的第一部分写入于所述存储器装置的第一位置上;监视从执行所述第一写入操作时起经过的时间以确定所述经过的时间是否满足时间条件;响应于确定所述经过的时间不满足所述时间条件:执行第二写入操作以将所述主机数据集合的第二部分写入于所述存储器装置的第二位置上,其中所述第二位置不邻近于所述第一位置;以及继续监视所述经过的时间以确定所述经过的时间是否满足所述时间条件;以及响应于确定所述经过的时间满足所述时间条件,执行第三写入操作以将所述主机数据集合的第三部分写入于所述存储器装置的第三位置上,其中所述第三位置邻近于所述第一位置。

附图说明

根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,附图不应视为将本公开限制于具体实施例,而是仅用于解释和理解。

图1图解说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。

图2A-2B描绘根据本公开的一些实施例的响应于主机请求而以延迟执行邻近单元中的写入操作的实例。

图3A-3B描绘根据本公开的一些实施例的以延迟执行来自多个主机请求的写入操作的实例。

图4是根据本公开的一些实施例的以延迟执行邻近单元中的写入操作的实例方法的流程图。

图5是根据本公开的一些实施例的使用时间条件执行写入操作的流程图。

图6是可在其中操作本公开的实施例的实例计算机系统的框图。

具体实施方式

本公开的方面是针对执行减轻存储器子系统中的写入干扰的写入操作。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可以提供数据以存储在存储器子系统处并且可以请求从存储器子系统检索数据。

存储器装置可为非易失性存储器装置,其为一或多个裸片的封装。封装中的裸片可指配给一或多个通道以用于与存储器子系统控制器通信。非易失性存储器装置包含经分组为页以存储数据位的单元(即,存储信息的电子电路)。非易失性存储器装置可包含例如作为非易失性存储器单元的交叉点阵列的三维交叉点(“3D交叉点”)存储器装置,其可与可堆叠交叉网格化数据存取阵列结合基于体电阻的改变而执行位存储。非易失性存储器装置的另一实例为与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。

存储器装置中的每一个可包含一或多个存储器单元阵列。取决于单元类型,单元可以存储二进制信息的一或多个位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可由二进制值表示,例如“0”和“1,或这些值的组合。举例来说,单电平单元(SLC)可存储一个信息位且具有两个逻辑状态。

当数据常规地写入到用于存储的存储器装置的存储器单元时,邻近(例如,邻接、相邻、附近、紧靠等)存储器单元可经历称为“写入干扰”的情况。写入干扰是对特定存储器单元连续地写入数据而不写入和/或刷新存储于附近存储器单元处的数据,从而造成附近存储器单元随时间改变状态(例如,经编程状态改变)的结果。如果对特定存储器单元(下文也被称作“侵略单元”)执行太多写入操作,那么存储于存储器装置的邻近或接近的存储器单元(下文也被称作“受害单元”或“目标单元”)处的数据可变为被破坏或不正确地存储。在写入操作期间从侵略单元产生的热量可造成受害单元的记忆合金结晶,从而使其质量降级。因此,在传统的存储器子系统中,当读取存储于邻近或接近存储器单元处的数据时可导致较高错误率。较高错误率(例如,原始位错误率或RBER)可增加使用错误检测及校正操作(例如,错误控制操作)用于对存储器单元执行的后续操作(例如,读取和/或写入)。错误控制操作的增加使用可导致常规存储器子系统的性能降低。由于存储器子系统的更多资源用以执行错误控制操作,因此较少资源可用以执行其它读取操作或写入操作。因此,由于在特定时间量内可执行较少读取操作和写入操作,因此存储器子系统的性能会降低。

为了减轻写入干扰对存储于存储器子系统处的数据的影响,常规存储器子系统通常利用各种写入刷新过程。举例来说,常规存储器子系统可基于对受管理单元执行的写入操作的数目执行写入刷新。受管理单元可被定义为受存储器装置管理和/或由存储器装置操作的用户数据的单元。受管理单元可由数据的大小(例如,字节)界定。通常,存储器子系统将对存储器装置的受管理单元执行的写入操作的数目存储为存储器装置上的元数据。对受管理单元执行的写入操作的数目可从存储于存储器装置处的元数据读取,且用以确定存储器装置的部分(例如,接近存储器单元)中的一或多个的干扰计数。所述干扰计数可对应于在无用于特定受管理单元的介入写入或刷新操作的情况下对特定受管理单元执行的写入操作的数目。一旦干扰计数超过写入操作的阈值数目,就可刷新存储器装置的受管理单元的数据(即,复制且写入到同一或不同存储器装置的另一受管理单元)。此外,一些常规存储器子系统可利用对存储器装置执行的写入操作的单个计数而不是每一受管理单元的单独计数。一旦写入操作的数目满足阈值条件(例如,满足或超过阈值),那么识别存储器装置的存储器单元以用于刷新操作。

在一些实例中,刷新存储于一或多个存储器单元处的数据可包含从所述一或多个存储器单元读取数据,随后将数据写入回到所述一或多个存储器单元。由于数据最近写入回到存储器单元上,因此写入干扰(例如,产生于由于写入干扰带来的单元状态改变的读取错误)的影响可随着进一步时间过去而减轻。在一些实例中,刷新数据可包含清除现有逻辑到物理地址数据映射且再次设定逻辑到物理地址映射。由于除实际主机数据操作(例如,读取、写入等)之外还执行写入刷新过程中涉及的操作,因此写入刷新的过程可减少装置使用寿命且增加读取时间。另外,在交叉点阵列类型存储器中,存储器装置的受管理单元可相对小,且写入计数的数目由于交叉点阵列类型存储器的高耐久性而可为数百万。干扰计数的存储可导致存储器子系统的大量开销专用于存储对存储器装置的受管理单元执行的写入操作的数目。此外,在常规存储器子系统中,每当对特定受管理单元执行写入操作时,从存储器装置读取与特定受管理单元的写入操作的数目相关联的元数据,将其递增以反映最近执行的写入操作,并且接着将经更新元数据写回到存储器装置。针对存储器装置的每一受管理单元执行维持写入计数元数据的过程。每当执行写入操作时这些操作的执行消耗存储器子系统的大量资源。此外,存储器装置可包含数十万的受管理单元。维持此大量受管理单元的写入计数元数据消耗存储器子系统的大量计算资源。这导致存储器子系统性能的降低以及较少容量的存储器子系统用以存储用户数据。

本公开的方面通过执行写入操作以在特定单元中存储数据以产生最小延迟量(例如,滞后时间、等待时间等)而不造成写入主机数据的两个连续写入操作之间的延迟以缓解或避免写入干扰,来解决上述和其它缺陷。最小延迟可对应于基于各种因数的阈值时间,例如实验、系统规范等。邻近单元中的写入操作之间的最小延迟可允许邻近单元耗散热量且降低温度。因此,存储器单元可在下一写入操作发生之前恢复并且可被防止结晶。随着邻近单元中的写入操作之间的延迟增加,RBER继续减小,达到错误率可被完全减弱的程度。本公开通过利用各种写入操作模式而提供在邻近单元的写入操作中实施延迟,所述各种写入操作模式致使主机数据写入到彼此不邻近的存储器单元以用于连续写入操作直到足够延迟已发生为止。举例来说,可使用第一模式,其可包含执行写入操作以将主机数据集合写入到多个单元,其中数据的一部分写入到用于第一写入操作的第一单元,随后跳过阵列中的下一单元,且数据的下一部分写入到不邻近于第一单元的第二单元以用于连续的下一写入操作。第一模式可继续直到满足时间条件。举例来说,当从第一写入操作起经过的时间高于阈值时间时可满足时间条件。一旦满足时间条件,那么可使用第二模式,其中执行下一连续写入操作以将主机数据的下一部分写入到邻近于第一单元的单元,且继续将主机数据的剩余部分写入到使用第一模式跳过的单元。使用交替模式,写入主机数据的总时间可保持不变,同时设计引入邻近单元的写入操作之间的最小延迟。可使用各种其它模式来实现使写入干扰的影响最小化的两个邻近单元之间的足够延迟,如贯穿本公开所描述。

本公开的优点包含但不限于存储于存储器子系统处的数据的增加的可靠性。由于写入干扰应力对存储于附近单元中的数据的影响减轻,因此存储于存储器子系统处的数据中发现的错误的数目减少。与存储于附近存储器单元处的数据相关联的减少的错误率可减小由存储器子系统执行的错误校正操作的数目且改进存储器子系统的性能。另外,实施对邻近单元的写入之间的延迟而不会有执行由主机系统请求的写入操作的总时间的任何增加。此外,通过引入固有延迟而不是执行写入刷新以补偿写入干扰的影响,专用于执行清除和重写用于写入刷新的数据的计算资源量减小。由于较少计算资源专用于执行错误校正和写入刷新操作,因此计算资源可用以执行用于主机系统的其它操作(例如,读取和写入数据),且用以存储来自主机系统的数据的存储器子系统的容量增加。这带来存储器子系统的性能的改进。

图1图解说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含介质,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。

存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡,和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。

计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。

计算系统100可包含主机系统120,所述主机系统耦合到一或多个存储器子系统110。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1图解说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文所使用,“耦合到”或“与耦合”大体上指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,无介入组件),无论是有线还是无线的,包含例如电学、光学、磁性及类似方式的连接。

主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如,将数据写入到存储器子系统110以及从存储器子系统110读取数据。

主机系统120可以是计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机系统120可通过物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可以进一步利用NVM快速(NVMe)接口存取组件(例如存储器装置130)。物理主机接口可以提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1图解说明存储器子系统110作为实例。一般来说,主机系统120可经由相同通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。

存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。

非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)类型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪存储器的存储器对比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含(例如)二维NAND(2D NAND)和三维NAND(3D NAND)。

存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单电平单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多电平单元(MLC)、三电平单元(TLC)和四电平单元(QLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,页可指用以存储数据的存储器装置的逻辑单元。关于一些类型的存储器(例如,NAND),可将页分组以形成块。例如3D交叉点等一些类型的存储器可跨越裸片和通道将页分组。

虽然描述例如3D交叉点非易失性存储器单元阵列和NAND型快闪存储器(例如,2DNAND、3D NAND)等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,电可擦除可编程只读存储器(EEPROM)。

存储器子系统控制器115(为简单起见,控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,以及其它这类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。

存储器子系统控制器115可包含经配置以执行存储于本地存储器119中的指令的处理器117(例如,处理装置)。在所示实例中,存储器子系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流和例程。

在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然在图1中的实例存储器子系统110已示出为包含存储器子系统控制器115,但在本公开的另一个实施例中,存储器子系统110不包含存储器子系统控制器115,且可改为依赖于外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。

通常,存储器子系统控制器115可以从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理MU地址、物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可以包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。

在一些实施例中,存储器装置130包含本地介质控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行介质管理操作)。在一些实施例中,存储器装置130可以是受管理存储器装置,其为与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行介质管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。

存储器子系统110包含可造成邻近存储器单元的写入操作之间的延迟的延迟处置组件113。在一些实施例中,存储器子系统控制器115包含延迟处置组件113的至少一部分。举例来说,存储器子系统控制器115可包含经配置以执行存储于本地存储器119中的指令以执行本文所描述的操作的处理器117(处理装置)。在一些实施例中,延迟处置组件113是主机系统110、应用程序或操作系统的部分。

延迟处置组件113可用于以延迟执行邻近单元中的写入操作。可执行写入操作以使得数据以至少最小延迟写入到邻近存储器单元。在一实例中,控制器115可执行第一写入操作以在数据块的第一单元上写入主机数据集合的第一部分。延迟处置组件113可监视从执行第一写入操作时起经过的时间以确定经过的时间是否满足时间条件。举例来说,如果经过的时间大于阈值时间,那么可满足时间条件。如果确定不满足时间条件(例如,经过的时间小于或等于阈值时间),那么控制器可执行第二写入操作以在数据块的不邻近于第一单元的第二单元上写入主机数据集合的第二部分。延迟处置组件113可继续监视从第一写入操作时起经过的时间,且直到满足时间条件为止,控制器115可继续对不邻近于第一单元的单元进行写入。当确定满足时间条件时(例如,经过的时间大于阈值时间),控制器115可将日期写入到邻近于第一单元的单元。因此,延迟处置组件113造成邻近的第一和第二单元之间的写入操作具有延迟。下文描述关于延迟处置组件113的操作的其它细节。

图2A-2B描绘根据本公开的一些实施例的响应于主机请求而以延迟执行存储器装置200的邻近单元中的写入操作的实例。存储器装置200包含字线205a-f和位线210a-f。例如在位置220a-220z和230a-230z的存储器单元等存储器单元位于字线205a-f和位线210a-f中的每一个的相交点处。

当对特定存储器单元(例如,侵略单元)执行写入操作时,写入干扰应力会影响存储于与被执行写入操作的存储器单元邻近的存储器单元(例如,受害单元)处的数据。邻近单元可包含彼此接近、在附近、相邻、邻接等的单元。存储器单元距另一存储器单元越远,写入干扰应力对彼此的影响越小。在一实例中,如果对在位置220d的存储器单元执行写入操作,那么写入干扰会对存储于全部邻近于在位置220d的位置230a、230e、230g和230d的存储器单元处的数据具有最高影响。随着单元之间的距离增加,写入干扰的影响变得减少。因此,来自位置220d的写入干扰影响在不邻近于位置220d的位置处最小化,例如位置220a、220b、230b、220g、220h、220e、220j、230b等。另外,虽然在一些实例中,邻近单元可包含紧靠侵略单元的单元,但在其它实例中,邻近单元可包含不紧靠侵略单元的单元。单元是否被视为邻近单元可取决于存储器子系统的特定技术实施方案和阵列布局的尺寸。举例来说,如果单元彼此相对靠近地放置,那么被视为侵略单元中的写入操作的受害单元的单元的范围可变宽且将包含更多装置。举例来说,在存储器子系统的一些配置中,作为220d的对角线单元的单元220a、220b、220g、220h可受单元220d中的写入操作影响,因为所述单元的放置极为接近单元220d。在此情况下,对角线单元可视为侵略单元的邻近单元。此外,在对特定存储器单元执行写入操作之后随着时间过去,从写入操作产生的热量耗散且在从写入操作执行时起特定时间量过去之后,写入干扰对邻近于特定单元的单元的影响最小化。举例来说,如果在时间t1对在位置220d的存储器单元执行写入操作,那么在时间t1之后的特定时间延迟量之后,来自在位置220d上写入的数据的写入干扰对邻近位置230a、230e、230g和230d的影响最小化。延迟可为两个操作之间的滞后、间隙或等待时间。足以最小化对邻近单元的写入干扰影响的时间可基于存储器子系统的规范而变化。

在本公开的实施例中,存储器子系统可接收写入主机数据集合的请求且可执行写入操作以将主机数据集合写入到存储器装置200的存储器单元。为了减轻由对特定存储器单元执行的写入操作导致的写入干扰对其邻近单元的影响,存储器子系统执行写入操作以使得在对邻近单元的写入之间经过的时间满足足以克服对邻近单元执行写入操作的写入干扰影响的阈值时间,而不增加针对主机请求写入数据的总时间。举例来说,如果对在位置220d的存储器单元执行写入操作,那么存储器子系统对不邻近于位置220d的位置执行后续写入操作。即,存储器子系统跳过在位于230a、230e、230g和230d的存储器单元中的任一个处执行后续写入操作,且对除位置230a、230e、230g和230d以外的另一存储器单元位置执行写入操作。存储器子系统随后在从在存储器单元位置220d执行写入操作时起已经过最小时间延迟(例如,在存储器子系统内定义的阈值时间)之后对位于230a、230e、230g和230d的单元中的一个执行写入操作。以此方式,在由存储器子系统执行的连续写入操作之间不经历等待时间,而对于邻近单元之间的写入操作固有地引入延迟,且执行主机系统的写入操作的总时间与执行邻近单元中的连续写入操作相比未增加。

在一些实施方案中,存储器子系统可使用写入操作的特定模式以使得数据写入到其中在写入干扰影响仍存在的时间期间对特定单元执行写入操作的写入干扰影响最小化的位置。存储器子系统可使用写入操作的另一模式,以在已经过使写入干扰影响最小化的足够时间延迟之后的时间将剩余数据写入到存储器装置200中的邻近于特定单元的剩余单元。

在一实施例中,存储器子系统可接收写入主机数据集合的请求且可执行多个写入操作以将主机数据集合写入到存储器装置200的存储器单元。举例来说,在一个实施方案中,存储器子系统可使用类似于棋盘模式的模式,其中使用交替位置用于在连续写入操作中写入主机数据的部分。如图2A所示,存储器子系统使用交替存储器单元遵循第一模式执行所述多个写入操作。根据第一模式,存储器子系统使用字线205a开始写入操作,且执行所述多个写入操作中的第一写入操作以将主机数据集合的第一部分写入到位于第一位置220a(例如,在字线205a和位线210a处)的第一存储器单元。随后存储器子系统在字线205a上继续,但绕过下一位线210b以跳过存储器单元230a上的写入,且执行所述多个写入操作中的第二写入操作以将主机数据集合的第二部分写入到位于位置220b(例如,在字线205a和位线210c处)的第二存储器单元。存储器子系统继续在字线205a上执行写入操作,跳过在每隔一个位线处的存储器单元(例如,230b、230c),直到没有字线205a上的位线仍待写入为止。以此方式,存储器子系统执行一个单元中的写入操作,且跳过在受到先前写入操作对前一单元的写入干扰影响的邻近单元处执行后续写入操作。存储器子系统随后继续对下一字线205b进行写入。存储器子系统跳过对位线210a上的存储器单元230d的写入,因为单元230d邻近于已执行写入操作的单元220a定位。存储器子系统对存储器单元220d等等执行所述多个写入操作中的后续写入操作,从而跳过字线205b上的每个交替存储器单元(例如,230e、230f等)。写入操作的第一模式可继续用于存储器装置200上的每一字线,从而避免在用于连续写入操作的邻近存储器单元中的写入以完成写入主机数据集合,从而最小化写入干扰。

在一个实施方案中,存储器子系统可监视从执行第一写入操作以在存储器单元220a处写入主机数据集合的第一部分时起已经过的时间(“经过的时间”)。存储器子系统可确定经过的时间是否满足时间条件。举例来说,如果经过的时间大于阈值时间,那么经过的时间可满足时间条件。存储器子系统可基于存储器子系统的规范界定阈值时间(例如,最小延迟时间),使得阈值时间足以最小化侵略单元对受害单元的写入干扰影响。如果确定经过的时间不满足时间条件(例如,经过的时间等于或低于阈值时间),那么存储器子系统继续使用第一模式执行所述多个写入操作的其余部分,在存储器单元220b、220c、220d等等中写入主机数据的部分,如上文参考图2A所描述。存储器子系统还继续监视经过的时间以确定在执行所述多个写入操作中的每一写入操作之后经过的时间是否满足时间条件。

在一个实施方案中,如果确定经过的时间满足时间条件(例如,经过的时间大于阈值时间),那么存储器子系统可停止使用第一模式执行写入操作的其余部分。举例来说,如图2A中所描绘,在对字线205e的存储器单元220m进行写入之后,存储器子系统确定经过的时间大于阈值时间,且停止使用第一模式执行字线205e中的后续写入操作。实际上,在确定满足时间条件之后,存储器子系统即刻可切换到使用第二模式(例如,反棋盘模式),其中存储器子系统在邻近于先前跳过的侵略单元的位置处写入主机数据的剩余部分。举例来说,如图2B中所描绘,存储器子系统执行写入操作以在存储器单元230a上写入主机数据集合的一部分,所述存储器单元邻近于被执行第一写入操作的第一位置220a。对位置220a的写入操作与对在位置230a的邻近单元的写入操作之间经过的时间满足时间条件,因为经过的时间大于阈值时间(例如,最小延迟时间)。因此,到在130a处的邻近单元上写入数据的时候,来自写入操作的写入干扰对位于220a的侵略单元的影响在位于230a的邻近单元上最小化。存储器子系统继续在剩余存储器单元230b、230c、230d等等(例如,在使用第一模式执行写入操作期间跳过的单元)中写入主机数据集合的剩余部分,直到在存储器装置200中写入主机数据的剩余部分,从而在存储器单元230g处完成写入操作。

在一个实施方案中,即使确定经过的时间满足时间条件(例如,经过的时间大于阈值时间),存储器子系统仍然可停止使用第一模式执行写入操作。举例来说,存储器子系统可在跳过字线205d上的位线210b的相交点处的存储器单元之后继续在存储器单元220n处写入数据。存储器子系统可继续写入数据直到在最后字线205f上的最后存储器单元220z处写入数据为止。在某一实施方案中,由于存储器子系统的规范,继续写入数据直到字线的末尾可保证经过的时间大于阈值时间。在这些情况下,存储器子系统可使用第一模式执行写入操作直到到达字线的末尾,而无需监视经过的时间以确定是否满足时间条件,因为到达到字线的末尾的时候,经过的时间默认已知大于此类存储器子系统中的阈值时间。在那时,存储器子系统可切换到使用如图2B所示的第二模式执行写入操作,在此情况下存储器子系统在邻近于第一存储单元220a的存储器单元230a中写入数据,且两个邻近单元中的写入操作之间经过的时间大于设计的阈值时间。

在实施方案中,如果由于存储器子系统的特定规范当字线结束时未满足经过的时间,那么存储器子系统不切换到使用如图2B所示的第二模式写入数据,因为写入干扰的影响在邻近单元上尚未最小化。在这些情况下,存储器子系统可对不同数据单位执行后续写入操作,例如对不同的块、平面或存储器装置。在实施方案中,当存储器子系统使用第二模式执行写入操作且在完全完成写入主机数据之前到达最后字线的末尾(例如,已使用全部存储器单元)时,存储器子系统可遵循图2A和2B中描述的模式将主机数据写入到另一数据单位(例如,不同的块、平面或存储器装置等)。

在一些实施方案中,存储器子系统跟踪所述多个写入操作中针对侵略单元的写入操作中的每一个的个别经过的时间,且确定个别经过的时间中的每一个是否满足时间条件,并且接着基于相应个别经过的时间中的每一个满足时间条件的确定而将数据写入到侵略单元的邻近单元中的每一个。

在一些实施方案中,由存储器子系统使用的模式在存储器子系统内预定义。存储器子系统可识别对应于将遵循特定模式写入数据的存储器单元的可用位置。举例来说,对于在图2A中描述的第一模式,存储器子系统可将存储器单元220a、220b、220c至220z识别为用于与第一模式一起使用的可用存储器单元。即,在存储器子系统完成对单元220a写入数据之后,将可用于执行后续写入操作的下一存储器单元识别为220b等等。类似地,对于图2B中示出的第二模式,存储器子系统可将存储器单元230a、230b、230c至230z识别为用于与第二模式一起使用的可用存储器单元。可在可用于由存储器子系统使用的存储器单元的预定义列表中识别存储器单元的次序。所述预定义列表可存储于元数据中。

在一些实施方案中,存储器子系统通过跟踪已被写入的存储器单元和仍待写入的存储器单元而执行写入操作。举例来说,存储器子系统可跟踪使用存储器单元220a执行写入操作。存储器子系统可动态地确定通过跳过到在下一位线210b中写入数据而跳过邻近存储器单元230a。存储器子系统可检测哪些单元邻近于单元220a且跟踪邻近单元。对于后续写入操作,存储器子系统跳过在所识别邻近单元中写入数据。存储器子系统的跳过决策可基于系统中的先前定义和加载的信息和/或逻辑(例如,包含但不限于延迟处置组件113的部分)而做出。如果写入之间经过的时间等于或低于预定义阈值,那么存储器子系统跳过对邻近单元的写入。预定义阈值也可存储作为延迟处置组件113的部分。此信息是每技术节点定义的,且在系统中预编程。

图3A-3B描绘根据本公开的一些实施例的从多个主机请求执行存储器装置300的存储器单元中的写入操作的实例。主机系统(例如,在图1中的主机系统120)可对存储器子系统(例如,在图1中的存储器子系统110)发起数据操作(例如,写入、读取、擦除等)。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便在存储器子系统处的存储器装置上存储数据且从存储器子系统上的存储器装置读取数据。如由主机请求指定,待读取或写入的数据在下文中被称作“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名称空间),其为主机系统与主机数据关联的位置。逻辑地址信息(例如,LBA、名称空间)可以是主机数据的元数据的部分。

在一实施例中,存储器子系统可接收写入主机数据的第一集合(“第一数据集”)的第一请求和写入主机数据的第二集合(“第二数据集”)的第二请求。存储器子系统可执行写入操作以在存储器装置300上写入主机数据的第一集合和主机数据的第二集合,使得对侵略单元和邻近于侵略单元的受害单元的写入操作之间经过的时间满足时间条件(例如,大于阈值时间)。

在一个实施方案中,确定在执行用于第一数据集的第一写入操作与用于第二数据集的第一写入操作之间经过的时间满足时间条件。在一个实例中,由于第一数据集包含写入时间长于阈值时间的大量数据,因此可满足时间条件。在另一实例中,因为在从用于第一数据集的第一写入操作时起已经过阈值时间之后接收第二请求,所以可满足时间条件。当经过的时间满足时间条件时,存储器子系统可继续使用如图2A中所描述的第一模式执行第二数据集的第一操作。替代地,存储器子系统可切换到使用如图2B中所描述的第二模式写入第二数据集。

在一个实例中,如图3A所示,存储器子系统接收第一数据集且执行写入操作以在存储器单元320a至320n中使用第一模式写入第一数据集。在第一数据集的最后部分写入到单元320n之后,确定经过的时间已满足时间条件。存储器子系统随后接收第二数据集且继续执行写入操作以在存储器单元320o、320p等中使用第一模式写入第二数据集(例如,继续跳过交替的单元)。当到达字线305f的末尾时(例如,在单元320z中写入的数据),存储器子系统可切换到使用如图2B中所描述的第二模式执行剩余写入操作。在这样做时,对邻近单元320a和330a的写入操作之间经过的时间满足时间条件。

在另一实例中,并非继续使用第一模式执行用于第二数据集的写入操作且在单元320o中写入,在确定经过的时间满足时间条件之后,存储器子系统可即刻切换到第二模式(例如,逆模式)且在单元330a中开始写入第二数据集,且继续在单元330b、330c等中写入,如图3B中所描绘。在这样做时,对邻近单元320a和330a的写入操作之间经过的时间满足时间条件。

在一个实施方案中,确定在执行用于第一数据集的第一写入操作与用于第二数据集的第一写入操作之间经过的时间不满足时间条件(例如,经过的时间等于或小于阈值时间)。举例来说,在时间t1接收的第一数据集可包含可在时间t2完全写入于存储器单元320a中的少量数据。可在时间t3接收第二数据集,其中时间t2与时间t3之间经过的时间小于阈值时间。因此,存储器子系统继续在存储器单元320b、320c等等中使用第一模式执行用于第二数据集的写入操作,使得不对邻近数据单元执行用于第二数据集的写入操作。一旦确定从对单元320a的写入操作时起经过的时间满足阈值时间,存储器子系统就可继续在存储器单元320o、320p等中使用第一模式写入剩余数据。替代地,存储器子系统可在经过的时间满足时间条件之后切换到第二模式,将第二数据集的剩余部分写入到存储器单元330a、330b、330c等等。在这样做时,对邻近单元320a和330a的写入操作之间经过的时间满足时间条件。

在某一实施方案中,使用除棋盘和反棋盘模式外的不同模式来执行写入操作。举例来说,并非跳过邻近于侵略单元的一个存储器单元,存储器子系统可在侵略单元中写入数据之后跳过两个或更多个存储器单元,且继续所述模式。可使用各种其它模式,其可导致存储器子系统在彼此不邻接的单元中执行连续写入操作,同时在具有满足时间条件的经过的时间的邻近单元中执行写入操作。即使已使用特定模式描述图2A-2B和图3A-3B中的概念,但存储器子系统可使用所述模式以不限于特定模式的延迟实现邻近单元中的写入操作。

图4是根据本公开的一些实施例的以延迟执行邻近单元中的写入操作的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的延迟处置组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述处理程序的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各种实施例中可以省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程是可能的。

在操作410,处理逻辑接收写入主机数据集合的请求。在一些实例中,处理逻辑可接收写入主机数据的第一集合的第一请求和写入主机数据的第二集合的第二请求。在操作420,处理逻辑执行写入操作以将主机数据集合的第一部分写入到以第一模式布置的存储器装置的存储器单元的第一集合。以第一模式布置的存储器单元的第一集合包含在存储器装置的每一字线上的交替存储器单元,且排除邻近于存储器单元的第一集合的存储器单元的第二集合。在一实例中,写入操作是连续写入操作。

在操作430,处理逻辑执行第二多个写入操作以将主机数据集合的第二部分写入到以第二模式布置的存储器单元的第二集合。以第二模式布置的存储器单元的第二集合包含在存储器装置的每一字线上的邻近于存储器单元的第一集合的其它交替存储器单元。在一实例中,存储器单元的第二集合中的每一个可邻近于存储器单元的第一集合中的每一个。在一些实例中,对以第一模式布置的存储器单元的第一集合执行所述第一多个写入操作以及对以第二模式布置的存储器单元的第二集合执行所述第二多个写入操作致使在对存储器装置的邻近单元的写入之间经过的时间满足时间条件。在一实例中,当经过的时间大于阈值时间时经过的时间满足时间条件。在一实例中,先前逻辑对以第二模式布置的存储器单元的第二集合执行所述第二多个写入操作致使以第一模式布置的存储器单元的第一集合中的交替存储器单元中的一个邻近于以第二模式布置的存储器单元的第二集合中的其它交替存储器单元中的对应一个。在一些实例中,第一模式和第二模式是识别分别用于执行所述第一多个写入操作和所述第二多个写入操作的可用存储器单元的预定义模式。

图5是根据本公开的一些实施例的用于使用时间条件执行写入操作的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的延迟处置组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述处理程序的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各种实施例中可以省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程是可能的。

在操作510,处理逻辑执行第一写入操作以在存储器装置的第一位置上写入主机数据集合的第一部分。在一实例中,所述第一位置对应于存储器装置的第一存储单元。存储器单元可位于字线和位线的相交点处。

在操作520,处理逻辑监视从执行第一写入操作时起经过的时间以确定经过的时间是否满足时间条件。在一实例中,当经过的时间大于阈值时间时经过的时间满足时间条件,且当经过的时间等于或小于阈值时间时经过的时间不满足时间条件。

在操作530,处理逻辑响应于确定经过的时间不满足时间条件而执行第二写入操作以在存储器装置的第二位置上写入主机数据集合的第二部分,其中所述第二位置不邻近于所述第一位置。在一实例中,根据致使第一位置不邻近于第二位置的第一模式执行第一写入操作和第二写入操作。在一些实例中,第一模式是识别用于执行写入操作的可用位置的预定义模式。另外,处理逻辑继续监视经过的时间以确定经过的时间是否满足时间条件。

在操作540,处理逻辑响应于确定经过的时间满足时间条件而执行第三写入操作以在存储器装置的第三位置上写入主机数据集合的第三部分,其中第三位置邻近于所述第一位置。另外,在执行第三写入操作之后,处理逻辑执行第四写入操作以在存储器装置的第四位置上写入主机数据集合的第四部分,其中第四位置邻近于第二位置。在一实例中,根据致使第三位置邻近于第一位置且第四位置邻近于第二位置的第二模式执行第二写入操作和第四写入操作。

此外,响应于确定经过的时间满足时间条件且在执行第三写入操作之前,处理逻辑执行第五写入操作以在存储器装置的第五位置上写入主机数据集合的第五部分,其中第五位置不邻近于所述第一位置或第二位置。

图6图解说明计算机系统600的实例机器,在所述实例机器内可执行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600可对应于包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120)或可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的延迟处置组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。

机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、开关或桥接器、或能够(依序或以其它方式)执行指定由机器采取的动作的一组指令的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多个)指令集以进行本文中所论述的方法中的任何一或多种。

实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),如同步DRAM(SDRAM)或RDRAM等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统618,它们经由总线630彼此通信。

处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602经配置以执行指令626以用于执行本文中所论述的操作及步骤。计算机系统600可以进一步包含网络接口装置608以在网络620上通信。

数据存储系统618可包含机器可读存储介质624(也称为计算机可读介质),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任一或多种的软件。指令626还可在由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储介质。机器可读存储介质624、数据存储系统618和/或主存储器604可以对应于图1的存储器子系统110。

在一个实施例中,指令626包含实施对应于延迟处置组件(例如,图1的延迟处置组件113)的功能性的指令。尽管在实例实施例中将机器可读存储介质624展示为单个介质,但术语“机器可读存储介质”应被认为包含存储一组或多组指令的单个介质或多个介质。术语“机器可读存储介质”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何介质。因此,应认为术语“机器可读存储介质”包含但不限于固态存储器、光学介质以及磁性介质。

已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是产生期望的结果的操作的自洽序列。操作是要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。

然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本发明还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储介质中,如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的介质,它们各自耦合到计算机系统总线。

本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。此外,并不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本发明的教示。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读介质。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、快闪存储器组件等。

在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

相关技术
  • 减轻写入干扰的写入操作
  • 用于闪存存储器中写入端单元间干扰减轻的方法和装置
技术分类

06120112938309