减轻存储器装置中的读取干扰效应
文献发布时间:2023-06-19 16:11:11
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及减轻存储器装置中的读取干扰效应。
背景技术
存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
本公开的一方面提供了一种方法,包括:通过处理装置维持多个裸片读取计数器,其中所述多个裸片读取计数器中的每一裸片读取计数器与存储器装置的相应裸片相关联;维持多个块读取计数器;维持与所述存储器装置相关联的总读取计数器;针对所述存储器装置的指定块确定块读取计数器的值和裸片读取计数器的值;基于所述块读取计数器的所述值、所述裸片读取计数器的所述值和所述总读取计数器的值而确定与所述存储器装置的所述指定块相关联的读取事件的所估计数目;以及响应于确定读取事件的所述所估计数目满足预定义准则,执行与所述存储器装置的所述指定块相关联的一或多个页面的媒体管理操作。
本公开的另一方面提供了一种系统,包括:多个存储器装置;处理装置,其与所述多个存储器装置以可操作方式耦合;以及直接存储器存取(DMA)控制器,其与所述多个存储器装置以可操作方式耦合,以执行包括以下各项的操作:从所述多个存储器装置中的存储器装置接收一或多个块读取计数器值、一或多个裸片读取计数器值和总读取计数器值;确定读取事件的多个估计数目,其中读取事件的每一估计数目与所述存储器装置的块相关联且基于块读取计数器值中的一个、裸片读取计数器值中的一个,和总读取计数器值;识别读取事件的相关联估计数目满足预定义准则的一或多个块;以及执行与读取事件的相关联估计数目满足预定义准则的每一经识别块相关联的一或多个页面的媒体管理操作。
本公开的另一方面提供了一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使得所述处理装置执行包括以下各项的操作:维持多个裸片读取计数器,其中所述多个裸片读取计数器中的每一裸片读取计数器与存储器装置的相应裸片相关联;维持多个块读取计数器;维持与所述存储器装置相关联的总读取计数器;针对所述存储器装置的指定块确定块读取计数器的值和裸片读取计数器的值;基于所述块读取计数器的所述值、所述裸片读取计数器的所述值和所述总读取计数器的值而确定与所述存储器装置的所述指定块相关联的读取事件的所估计数目;以及响应于确定读取事件的所述所估计数目满足预定义准则,执行与所述存储器装置的所述指定块相关联的一或多个页面的媒体管理操作。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限制于特定实施例,而是仅用于解释和理解。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2说明根据本公开的一些实施例的具有增强型直接存储器存取能力的矩阵读取干扰的实例工作流程。
图3为根据本公开的一些实施例的实施读取干扰矩阵的实例方法的流程图。
图4为根据本公开的一些实施例的使用具有DMA能力的控制器实施读取干扰矩阵的实例方法的流程图。
图5说明根据本公开的一些实施例的存储器子系统内的存储器装置和对应读取计数器的实例布置。
图6A说明根据本公开的一些实施例产生的确定矩阵读取值的实例第一步骤。
图6B说明根据本公开的一些实施例产生的实例读取干扰矩阵。
图7是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及减轻存储器装置中的读取干扰效应。存储器子系统可以为存储装置、存储器模块,或存储装置和存储器模块的组合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用存储器子系统,所述存储器子系统包含一或多个组件,例如存储数据的存储器装置。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
存储器子系统可以包含高密度非易失性存储器装置,其中当没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例为与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。每一裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由物理块的集合组成。每一块由页集合组成。每一页由存储器单元(“单元”)的集合组成。单元是存储信息的电子电路。取决于单元类型,单元可存储一或多个二进制信息位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(如“0”和“1”)或这种值的组合表示。
存储器装置可由以二维网格布置的位构成。存储器单元蚀刻到列(下文也称为位线)和行(下文也称为字线)的阵列中的硅晶片上。字线可以指存储器装置的存储器单元的一或多个行,所述一或多个行与一或多个位线一起使用以产生存储器单元中的每一个的地址。位线和字线的相交点构成存储器单元的地址。下文中,块是指用于存储数据的存储器装置的单元,并且可以包含存储器单元的群组、字线群组、字线或个别存储器单元。可以将一或多个块分组在一起以形成存储器装置的平面,以便允许在每一平面上进行并发操作。存储器装置可以包含执行两个或更多个存储器平面的并发存储器页存取的电路系统。例如,存储器装置可包含用于存储器装置的每一平面的相应存取线驱动器电路和电力电路以促进对包含不同页类型的两个或更多个存储器平面的页进行并发存取。
当从存储器单元读取数据时,附近或邻近的存储器单元可经历被称为读取干扰的事件。读取干扰为连续地从一个存储器单元进行读取而无介入擦除操作,从而使得其它附近存储器单元随时间推移而改变的结果。如果对存储器单元执行过多读取操作,那么存储在存储器装置的邻近存储器单元处的数据可损坏,这可导致存储在存储器单元处的数据的较高错误率。读取干扰可增加对存储器单元执行的后续操作(例如,读取和/或写入)的错误检测和校正操作(例如,错误控制操作)的使用。错误控制操作的增加的使用可导致存储器子系统的性能的劣化。另外,随着存储器单元或块的错误率持续增加,它可能最终超出存储器子系统的错误校正能力,从而导致数据的不可修复的损失。此外,由于存储器子系统的较多资源用于执行错误控制操作,所以较少资源可用于执行其它读取操作或写入操作。
与存储于块处的数据相关联的错误率可由于读取干扰而增加。因此,在对块执行阈值数目个读取操作后,存储器子系统可执行各种媒体管理操作,如数据完整性检查(在本文中也被称为“扫描”)以验证存储于块处的数据不包含错误。在数据完整性检查期间,针对存储在块处的数据确定一或多个可靠性统计数据。可靠性统计数据的一个实例是原始位错误率(RBER)。RBER对应于存储在块处的数据遇到的每单位时间的位错误数目。
有时,存储器子系统可监测对特定块执行的读取操作的数目,且在读取计数(即,读取操作的数目)满足和/或超过某一读取阈值时执行扫描操作。因此,确定何时在块层级处执行数据完整性检查所需的读取计数器的数目可消耗大量可用存储器空间(例如,RAM)。举例来说,对于具有16太字节的最大容量的存储器子系统,在块层级处维持读取计数将需要545,248个32位计数器,且将消耗超过2.26兆字节。
为了消耗较少存储器空间,存储器子系统可在裸片层级处而非在块层级处维持读取计数。每一裸片计数器含有基于窗计数极限的扫描触发事件。在窗计数极限内随机扫描块和处风险页面集合的行为问题(例如,扫描RBER)。扫描结果可导致刷新所述块或允许所述块保持在读取池中的决策。尽管解决读取干扰的此方法需要较少计数器(例如,用于存储器子系统中的每一裸片的16位计数器)为有效的,但窗计数极限应相对较低。此低窗计数极限可导致更多扫描,因此不利地影响存储器子系统的服务质量(QoS)。
本公开的各方面通过实施通过维持较少数目个读取计数器而减轻读取干扰效应的存储器子系统来解决上文所提到和其它缺陷。因此,存储器子系统控制器可针对存储器装置的每一裸片维持裸片读取计数器、针对每一裸片的块的数目维持块读取计数器,以及对用于存储器装置的读取操作的总数目进行计数的总读取计数器。举例来说,对于具有256个裸片且每一裸片具有1,352个块的存储器装置,存储器子系统控制器可维持256个裸片读取计数器(每一裸片一个裸片读取计数器)、1,352个块读取计数器(每一裸片的每一块编号一个块读取计数器),以及总读取计数器。在检测到读取页面事件后,总读取计数器、与正读取的裸片相关联的裸片读取计数器以及与正读取的块编号相关联的块读取计数器各自递增指定值(例如,1)。使用这三种类型的计数器,存储器子系统控制器为每一块填充读取计数值矩阵。每一块由矩阵中的块-裸片组合表示。
为了填充矩阵,存储器子系统控制器可首先计算与每一块相关联的读数的份额(即,块读取计数器值除以总读取计数器值)和与每一裸片相关联的读数的份额(即,裸片读取计数器值除以总读取计数器值)。存储器子系统控制器可接着将与块-裸片组合中的块相关联的读数的份额乘以与块-裸片组合中的裸片相关联的读数的份额。为了确定矩阵中的最终读取计数值,将所得值乘以总读取计数且舍入到最接近的整数。在一些实施方案中,存储器子系统控制器通过将块-裸片组合中的块读取计数器值乘以块-裸片组合中的裸片读取计数器值且除以总读取计数器值,舍入到最接近的整数而计算每一块-裸片组合的读取计数值。
矩阵读取值表示用于块-裸片组合的页面的读取事件的估计值。块-裸片组合表示所述存储器装置的特定块。一旦块-裸片组合的矩阵读取值达到阈值,存储器子系统控制器就可执行与块-裸片组合相关联的页面的数据完整性扫描。
在一些实施方案中,计数器值可维持在易失性存储器中且周期性地传输到非易失性存储器。矩阵读取值可在易失性存储器中确定且周期性地和/或在存储器子系统断电后传输到非易失性存储器。当存储器子系统通电时,存储在非易失性存储器中的矩阵读取值可传输到易失性存储器,其中可执行矩阵读取干扰操作。
在实施例中,存储器子系统控制器可使用直接存储器存取(DMA)能力增强。具有增强型DMA能力的控制器可被配置成执行从源存储器区域到目的地存储器区域的直接存储器传送,且可使用算术逻辑单元(ALU)执行基本算术。在实施方案中,可使用DMA的ALU执行上文所描述的读取值矩阵计算。此外,矩阵读取值可使用DMA从易失性存储器(例如,DRAM暂存)的一个区域传输到易失性存储器的另一区域,且最终传输到非易失性存储器装置。新近确定的矩阵读取值可与存储于非易失性存储器中的矩阵读取值相加,且存储器子系统控制器可使用相加矩阵读取值来确定块-裸片组合的读取值是否已达到阈值。存储器子系统控制器可使用DMA能力来执行与相关联矩阵读取值已达到或超过阈值的块-裸片组合相关联的页面的扫描。此外,增强型DMA控制器的ALU特征可执行读取矩阵值计算。
本公开的优点包含但不限于减少读取计数器的数目,因此减小用于维持读取计数器的存储器空间且释放用于其它数据的存储器空间。通过使用矩阵来估计每一块-裸片组合的读取计数,本公开的实施方案针对总读取计数器维持单个32位计数器,针对存储器装置中裸片的数目维持16位计数器加上针对存储器装置中的每一裸片的块的数目维持16位计数器。这可极大地减少由读取计数器消耗的存储器空间的量。此外,通过减少对处风险页面执行的数据完整性扫描的数目以及通过使用具有增强型直接存储器存取(DMA)能力的存储器子系统控制器来改进服务质量(QoS)。DMA在略过存储器子系统中的处理装置(例如,CPU)的同时将计数器值从一个存储器区域高效传送到另一存储器区域,与DMA的ALU特征耦合,降低了执行矩阵读取干扰实施方案所需的处理器工作负载,由此改进总体系统QoS。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。
存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的组合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或这类包含存储器和处理装置的计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的多个存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与...耦合”大体上是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中间组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等连接。
主机系统120可包含处理器芯片组和由所述处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如,将数据写入到存储器子系统110以及从存储器子系统110读取数据。
主机系统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)和五层级单元(PLC)每单元可以存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC、PLC或这种的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。
尽管描述了例如非易失性存储器单元的3D交叉点阵列和NAND类型快闪存储器(例如,2D NAND、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)、名称空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转化成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转化成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110为受管理存储器装置,其为具有裸片上的控制逻辑(例如,本地媒体控制器135)和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110包含矩阵读取干扰组件113,其可使用块-裸片组合的估计读取值填充读取干扰矩阵且识别待扫描的块-裸片组合的行为问题。在一些实施例中,存储器子系统控制器115包含矩阵读取干扰组件113的至少一部分。在一些实施例中,矩阵读取干扰组件113为主机系统110、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包含矩阵读取干扰组件113的至少一部分,且被配置成执行本文中所描述的功能性。
矩阵读取干扰组件113可维持多个读取计数器。读取计数器可包含用于存储器装置的总读取计数器、用于与所述存储器装置相关联的每一裸片的裸片读取计数器,和多个块读取计数器,其中块读取计数器的数目等于与所述存储器装置相关联的每一裸片的块的数目。
对于经检测的每一读取页面事件(例如,读取操作),矩阵读取干扰组件113可使总读取计数器,以及与读取页面事件的指定块相关联的裸片读取计数器和块读取计数器递增。读取操作可包含存储待读取数据的逻辑块地址。矩阵读取干扰组件113可将逻辑块地址转换为物理块地址。物理块地址可由字线和位线的相交点界定,且可指定存储待读取数据的物理块编号和物理裸片编号。矩阵读取干扰组件113可使以物理块地址指定的物理裸片编号的裸片读取计数器递增,且可使以物理块地址指定的物理块编号的块读取计数器递增。举例来说,如果所检测到的读取操作将读取存储在裸片编号253和块编号1,104处的数据,那么矩阵读取干扰组件113可使裸片读取计数器编号253和块读取计数器编号1,104以及总读取计数器递增。
矩阵读取干扰组件113可使用计数器来填充读取干扰矩阵。读取干扰矩阵中的值表示每一块已接收的读取事件的数目的估计值。读取干扰矩阵值可存储在非易失性存储器(例如,存储器装置130)中。矩阵读取干扰组件113可识别满足预定义准则(例如,满足和/或超过阈值极限)的读取干扰矩阵值。矩阵读取干扰组件113识别相关联读取矩阵值满足所述准则的块(使用矩阵中的块-裸片组合),且可执行与经识别块相关联的一或多个页面的媒体管理操作。媒体管理操作可包含执行与经识别块相关联的一或多个页面的扫描以确定一或多个页面的错误率。如果经识别块含有错误率超过错误阈值极限(即,扫描失败)的一或多个页面,那么矩阵读取干扰组件113可通过重新定位存储于块-裸片组合处的数据来刷新所述块。
在实施方案中,存储器子系统控制器110可使用直接存储器存取(DMA)能力增强。矩阵读取干扰组件113可利用DMA能力将数据从一个存储器区域高效地传输到另一存储器区域(例如,在易失性存储器内传输计数器值,和/或在易失性存储器与非易失性存储器之间传输矩阵值)。此外,矩阵读取干扰组件113可利用DMA增强型存储器子系统控制器的ALU组件来高效地计算读取矩阵值。下文描述关于矩阵读取干扰组件113的操作的另外细节。
图2说明根据本公开的一些实施例的具有增强型直接存储器存取(DMA)能力的矩阵读取干扰组件113的实例工作流程。矩阵读取组件113可针对存储器子系统中的每一存储器装置维持读取事件的所估计数目的矩阵。矩阵读取组件113可将读取计数器210维持在紧密耦合存储器(TCM)中。计数器210可包含总读取计数器212,其响应于通过所述存储器装置检测到的每一读取页面事件而递增。裸片计数器214可包含多个裸片计数器。裸片计数器的数目与存储于存储器装置上的裸片的数目相关。举例来说,对于具有范围从8到256的裸片的存储器子系统,存储于裸片计数器214中的裸片计数器的总数目将为256。块计数器216可包含多个块计数器。块计数器的数目与每一裸片的块的数目相关。举例来说,对于每一裸片存储1,352个块的存储器子系统,块计数器216可存储1,352个块计数器。在此实例中,计数器210可维持1个总读取计数器(RC)212、256个裸片计数器(DC)214和1,352个块计数器(BC)216。在一些实施方案中,总读取计数器(RC)212可为32位计数器,且裸片读取计数器(DC)214和块读取计数器(BC)216可为16位计数器。响应于检测到读取页面事件,每一相关计数器递增指定值(例如,递增1);也就是说,总读取计数器、与读取页面事件中指定的块相关联的裸片读取计数器和与读取页面事件中指定的块相关联的块读取计数器各自响应于检测到读取页面事件而递增。
矩阵读取干扰组件113可将来自计数器210的读取计数器值从TCM传输到易失性存储器的另一区域,例如DRAM暂存220。计数器值可在垃圾收集之后从TCM传输到DRAM暂存,一旦读取计数器在预定时间段后和/或在另一时间达到最大值。当计数器值从TCM传输到DRAM暂存时,计数器210中的计数器值复位。在实施方案中,TCM计数器可以预加载值复位。下文关于图3描述关于预加载值的另外细节。
一旦矩阵读取干扰组件113将计数器210的值传输到DRAM暂存220,矩阵读取干扰组件113就计算矩阵读取值224。如图2所示,可通过将针对特定裸片发生的读取事件的份额
矩阵读取干扰组件113可将矩阵读取值224传输到易失性存储器的另一区域,例如DRAM保存230。相加保持和保存组件232可将从DRAM暂存220接收到的矩阵读取值224与DRAM保存230中的现有矩阵读取值相加。相加保持和保存232中的矩阵值可在存储器子系统断电事件后且任选地以预定时间间隔传输到非易失性存储器240。在存储器子系统的通电事件后,存储于非易失性存储器240中的矩阵读取值可传输到DRAM保存230。矩阵读取干扰组件113可基于存储于DARM保存230中的矩阵读取值而执行读取干扰操作。读取干扰操作包含执行处风险页面的媒体管理。举例来说,读取干扰操作可包含执行处风险页面(即,与具有超过某一阈值的矩阵读取值的块-裸片组合相关联的页面)的数据完整性扫描,和重新定位存储于未通过所述数据完整性扫描的块(即,一或多个处风险页面的错误率高于某一阈值错误率值的块)上的数据。
矩阵读取干扰组件113工作流程可使用具有直接存储器存取(DMA)能力的存储器子系统控制器来增强。具有增强型DMA能力的存储器子系统控制器可从DRAM暂存220到DRAM保存230且在DRAM保存230与非易失性存储器240之间高效地传输矩阵读取值224。此外,具有增强型DMA能力的存储器子系统控制器可执行一定ALU操纵。具体地说,具有增强型DMA能力的存储器子系统控制器可通过执行上文所描述的算术计算来计算DRAM暂存220中的矩阵读取值224。此外,具有增强型DMA能力的存储器子系统控制器可通过将矩阵读取值224与DRAM保存230矩阵值相加来执行相加保持和保存232特征。具有增强型DMA能力的存储器子系统控制器也可执行读取干扰操作,即,将读取矩阵值与读取值阈值极限进行比较以确定是否执行数据完整性扫描。另外,具有增强型DMA能力的存储器子系统控制器可将存储于非易失性存储器240中的矩阵值传输到DRAM保存230,且可在DRAM暂存220中预加载计数器值。所有这些功能在由具有增强型DMA能力的存储器子系统控制器执行时降低处理器工作负载且改进总体系统服务质量。
图3为根据本公开的一些实施例的实施读取干扰矩阵的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的矩阵读取干扰组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在操作310处,处理逻辑维持多个裸片读取计数器。所述多个裸片读取计数器中的每一裸片读取计数器可与存储器装置的相应裸片相关联。在操作320处,处理逻辑维持多个块读取计数器。块读取计数器的数目可等于与存储器装置相关联的每一裸片的块的数目。举例来说,对于具有256个裸片且每一裸片具有1,352个块的存储器装置,处理逻辑维持256个裸片读取计数器和1,352个块读取计数器。在实施方案中,裸片读取计数器和块读取计数器为16位计数器。
在操作330处,处理逻辑维持与存储器装置相关联的总读取计数器。在实施方案中,总读取计数器为32位计数器。总读取计数器、裸片读取计数器和块读取计数器可维持在紧密耦合存储器中。
处理逻辑可检测读取页面事件,例如来自主机系统的读取操作。读取页面事件可包含逻辑块地址。处理逻辑可例如使用逻辑到物理(L2P)映射数据结构(例如,L2P表)将逻辑块地址转换成物理块地址。物理块地址可指定待从其读取数据的物理块和裸片。处理逻辑可识别与物理块地址中的块相关联的块读取计数器,以及与物理块地址中的裸片相关联的裸片读取计数器。响应于接收到读取页面事件,处理逻辑可将所识别的块读取计数器递增指定值(例如,递增一),将所识别的裸片读取计数器递增指定值(例如,递增一),且将总读取计数器递增指定值(例如,递增一)。
在操作340处,处理逻辑针对存储器装置的指定块确定块读取计数器的值和裸片读取计数器的值。
在操作350处,处理逻辑基于块读取计数器的值、裸片读取计数器的值和总读取计数器的值来确定与存储器装置的指定块相关联的读取事件的估计数目。为了确定与指定块相关联的读取事件的所估计数目,处理逻辑可将裸片读取计数器的值乘以块读取计数器的值且除以总读取计数器的值。矩阵读取值被舍入到最接近的整数。
在实施例中,处理逻辑可将总读取计数器的值、块读取计数器的值和裸片读取计数器的值从TCM传输到易失性存储器装置的暂存区域。处理逻辑可接着确定易失性存储器装置的暂存区域中的读取事件的所估计数目,且可保存易失性存储器装置中的读取事件的所估计数目。处理逻辑可将读取事件的新近确定的所估计数目与易失性存储器装置中存储的读取事件的所估计数目相加。响应于处理逻辑检测到存储器装置的断电事件,处理逻辑可将读取事件的所估计数目传输到非易失性存储器装置。另外或替代地,处理逻辑可以预定时间间隔或响应于另一事件而将读取事件的所估计数目传输到非易失性存储器装置。
在操作360处,响应于确定与指定块相关联的读取事件的所估计数目满足预定义准则,处理逻辑执行与存储器装置的指定块相关联的一或多个页面的媒体管理操作。预定义准则可为读取值阈值极限,使得处理逻辑执行与读取事件的所估计数目超过读取值阈值极限的指定块相关联的一或多个页面的媒体管理操作。在一些实施方案中,媒体管理操作可为与指定块相关联的一或多个页面的扫描以确定一或多个页面的错误率。扫描可为数据完整性检查以验证存储在与指定块相关联的一或多个页面处的数据并不包含超过错误阈值准则的错误。举例来说,扫描可确定与指定块相关联的一或多个页面的原始位错误率(RBER),且错误阈值准则可为RBER极限。
在实施例中,响应于针对存储器装置的每一块确定读取事件的所估计数目,处理逻辑可复位总读取计数器、所述多个裸片读取计数器和所述多个块读取计数器。在复位计数器后和/或在起始计数器之前,处理逻辑可使用指定值对计数器进行预加载。在一些实施方案中,处理逻辑可在指定范围内添加预加载计数。一些读取工作负载可以大多数读取干扰计数器同时或大约同时达到读取值阈值极限的方式执行。此现象有时被称作读取干扰扫描风暴,且可不利地影响存储器子系统的性能。为了避免读取干扰扫描风暴,处理逻辑可使计数器偏移各种预加载读取值。偏移值可以是预定义范围内的随机值,或可递增。举例来说,处理逻辑可以值100预加载第一裸片读取计数器,且增加每一后续裸片读取计数器的偏移值。处理逻辑可类似地预加载具有预定义范围内的偏移值的块读取计数器。处理逻辑可以预加载总读取计数器以与添加到裸片计数器和块计数器的偏移值匹配。
在实施例中,处理逻辑可预加载计数器值以考虑矩阵中的读取事件的所估计数目的任何不准确性。使用矩阵来估计每一块-裸片组合的读取事件的数目,而非具有用于存储器装置中的每一块的专用计数器可产生可能不如常规读取计数准确的读取计数。处理逻辑可应用6-西格玛随机读取偏移。在实施方案中,有限6-西格玛读取偏移可以在250到500计数范围内。此预加载计数可允许处理逻辑在读取值阈值极限或低于读取值阈值极限下扫描块,且避免真实读取计数高于读取值阈值极限的情形。处理逻辑可将第一预加载计数添加到总读取计数器、将第一预加载计数集添加到裸片读取计数器且将第二预加载计数集添加到块读取计数器。将第一预加载计数集中的每一预加载计数添加到裸片读取计数器中的一个,且将第二预加载计数集中的每一预加载计数添加到块读取计数器中的一个。
在实施例中,异步电力损耗事件可导致丢失当前读取计数。因此,响应于检测到异步电力损耗事件,处理逻辑可预加载计数器以补偿丢失读取事件的当前所估计数目的风险。处理逻辑可将第一预加载计数添加到总读取计数器,且将第二预加载计数添加到多个块读取计数器中的每一块读取计数器。在实施方案中,处理逻辑可将第三预加载计数添加到多个裸片读取计数器中的每一裸片读取计数器。为了避免丢失当前块读取计数,这些预加载计数值可相对较高。举例来说,添加到总读取计数器的预加载计数可为50,000,且添加到每一块读取计数器的预加载计数可为50,000的分数。在另一实例中,添加到每一块读取计数器的预加载计数可为50,000,且添加到总读取计数器的预加载计数可为50,000乘以块的数目。
响应于确定所述一或多个页面的错误率满足错误阈值准则(即,由于所述一或多个页面的错误率超过错误阈值极限而使得扫描失败),处理逻辑将存储在指定块处的数据重新定位到另一块。
另一方面,响应于确定一或多个页面中的每一个的错误率不满足错误阈值标准(即,由于扫描的每一页面的错误率未超过错误阈值极限而扫描通过),处理逻辑将保留存储在指定块处的数据。然而,与指定块相关联的一或多个页面中的至少一个接近故障的可能性很高。为确保以及时方式捕获故障,在扫描通过后,处理逻辑可以向与指定块关联的每一计数器添加预加载计数。因此,处理逻辑可将第一预加载计数添加到总读取计数器,将第二预加载计数添加到与指定块相关联的裸片读取计数器,且将第三预加载计数添加到与指定块相关联的块读取计数器。添加到总读取计数器的第一预加载计数应等于第二预加载计数加上第三预加载计数。预加载计数可以是准则的指定份额,例如,读取值阈值极限的25%、50%或75%。此添加的预加载计数可导致减少减弱的块上的读取计数的额外数目。
图4为根据本公开的一些实施例的使用具有DMA能力的控制器实施读取干扰矩阵的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的矩阵读取干扰组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在操作410处,处理逻辑从存储器装置接收一或多个块读取计数器值、一或多个裸片读取计数器值和总读取计数器值。
在操作420处,处理逻辑确定读取事件的多个估计数目。读取事件的每一所估计数目与存储器装置的块相关联,且基于块读取计数器值中的一个(即,与所述块相关联的块读取计数器值)、裸片读取计数器值中的一个(即,与所述块相关联的裸片读取计数器值)和总读取计数器值。
为了确定读取事件的多个所估计数目,对于每一指定块,处理逻辑将指定块的块读取计数器值乘以指定块的裸片读取计数器值且除以总读取计数器值。矩阵读取值被舍入到最接近的整数。
在实施例中,处理逻辑接收存储于非易失性存储器中的读取事件的现有所估计数目。处理逻辑可将读取事件的所述多个估计数目与读取事件的现有估计数目相加,以确定读取事件的经更新的相加估计数目。处理逻辑可周期性地(例如,以预定时间表,例如每一小时)或响应于所确定的事件,例如存储器子系统的断电事件而将读取事件的相加估计数目传输到非易失性存储器装置。
在操作430处,处理逻辑识别读取事件的相关联估计数目满足预定义准则的一或多个块。预定义准则可为读取值阈值极限,使得处理逻辑识别读取事件的相关联估计数目满足和/或超过读取值阈值极限的块。
在操作440处,处理逻辑执行与读取事件的相关联估计数目满足预定义准则的每一经识别块相关联的一或多个页面的媒体管理操作。执行媒体管理操作可包含执行与读取事件的相关联估计数目满足预定义准则的每一经识别块相关联的一或多个页面的扫描以确定一或多个页面的错误率。扫描可为数据完整性检查以验证存储在与所述块相关联的一或多个页面处的数据并不包含超过错误阈值准则的错误。举例来说,扫描可确定与块-裸片组合相关联的一或多个页面的原始位错误率(RBER),且错误阈值准则可为RBER极限。
在实施例中,响应于确定所述一或多个页面的错误率满足错误阈值准则(即,由于所述一或多个页面的错误率超过错误阈值极限而使得扫描失败),处理逻辑将存储在经识别块处的数据重新定位到另一块-裸片组合。
另一方面,响应于确定一或多个页面中的每一个的错误率不满足错误阈值标准(即,由于扫描的每一页面的错误率未超过错误阈值极限而扫描通过),处理逻辑将保留存储在所述块处的数据。然而,与经识别块相关联的一或多个页面中的至少一个接近故障的可能性很高。为确保以及时方式捕获故障,在扫描通过后,处理逻辑可以向与经识别块相关联的每一计数器添加预加载计数。因此,处理逻辑可将第一预加载计数添加到总读取计数器,将第二预加载计数添加到与经识别块相关联的裸片读取计数器,且将第三预加载计数添加到与经识别块相关联的块读取计数器。添加到总读取计数器的第一预加载计数应等于第二预加载计数加上第三预加载计数。预加载计数可以是准则的指定份额,例如,读取值阈值极限的25%、50%或75%。此添加的预加载计数可导致减少减弱的块上的读取计数的额外数目。
在实施例中,处理逻辑可使用指定值对计数器进行预加载。在一些实施方案中,处理逻辑可在指定范围内添加预加载计数。一些读取工作负载可以大多数读取干扰计数器同时或大约同时达到读取值阈值极限的方式执行。此现象有时被称作读取干扰扫描风暴,且可不利地影响存储器子系统的性能。为了避免读取干扰扫描风暴,处理逻辑可使计数器偏移各种预加载读取值。偏移值可以是预定义范围内的随机值,或可递增。举例来说,处理逻辑可以值100预加载第一裸片读取计数器,且增加每一后续裸片读取计数器的偏移值。处理逻辑可类似地预加载具有预定义范围内的偏移值的块读取计数器。处理逻辑可以预加载总读取计数器以与添加到裸片计数器和块计数器的偏移值匹配。
在实施例中,处理逻辑可预加载计数器值以考虑矩阵中的读取事件的所估计数目的任何不准确性。使用矩阵来估计每一块-裸片组合的读取事件的数目,而非具有用于存储器装置中的每一块的专用计数器可产生可能不如常规读取计数准确的读取计数。处理逻辑可应用6-西格玛随机读取偏移。在实施方案中,有限6-西格玛读取偏移可以在250到500计数范围内。此预加载内容可允许处理逻辑在读取值阈值极限或低于读取值阈值极限下扫描块且避免真实读取计数高于读取值阈值极限的情形。处理逻辑可将第一预加载计数添加到总读取计数器、将第一预加载计数集添加到裸片读取计数器且将第二预加载计数集添加到块读取计数器。将第一预加载计数集中的每一预加载计数添加到裸片读取计数器中的一个,且将第二预加载计数集中的每一预加载计数添加到块读取计数器中的一个。
在实施例中,异步电力损耗事件可导致丢失当前读取计数。因此,响应于检测到异步电力损耗事件,处理逻辑可预加载计数器以补偿丢失读取事件的当前所估计数目的风险。处理逻辑可将第一预加载计数添加到总读取计数器,且将第二预加载计数添加到多个块读取计数器中的每一块读取计数器。在实施方案中,处理逻辑可将第三预加载计数添加到多个裸片读取计数器中的每一裸片读取计数器。为了避免丢失当前块读取计数,这些预加载计数值可相对较高。举例来说,添加到总读取计数器的预加载计数可为50,000,且添加到每一块读取计数器的预加载计数可为50,000的分数。在另一实例中,添加到每一块读取计数器的预加载计数可为50,000,且添加到总读取计数器的预加载计数可为50,000乘以块的数目。
图5说明根据本公开的一些实施例的存储器子系统内的存储器装置和对应读取计数器的实例布置。一般来说,存储器子系统500可对应于图1的存储器子系统110。在一些实例中,如图1中所描述的矩阵读取干扰组件113可执行参考图5所描述的操作。
在图5的实例架构中,存储器子系统500中的存储器装置具有3个裸片(裸片-1510、裸片-2 520和裸片-3 530)。每一裸片具有6个块。举例来说,裸片-1 510具有块-1511、块-2 512、块-3 513、块-4 514、块-5 515和块-6 516。每一块可含有多个页面。应注意,为了易于解释,图5中的实例架构为极简说明,且存储器装置可具有更多个裸片且每一裸片可具有更多个块。
在实施方案中,存储器子系统检测读取页面事件(即,来自主机系统的读取请求)。读取页面事件可与逻辑块地址相关联。举例来说,读取请求可包含逻辑块地址。存储器子系统控制器可将逻辑块地址转换成物理块地址。物理块地址可包含存储待读取数据的块编号和裸片编号。
如图5中所说明,存储器子系统控制器检测读取页面事件540、541、542和543。读取页面事件540包含逻辑块地址,其在转换成物理块地址时引导存储器子系统控制器读取存储于裸片-1 510的块-1 511中的存储器页面。读取页面事件541包含逻辑块地址,其在转换成物理块地址时引导存储器子系统控制器读取存储于裸片-2 520的块-4 524中的存储器页面。读取页面事件542包含逻辑块地址,其在转换成物理块地址时引导存储器子系统控制器读取存储于裸片-3 530的块-5 535中的存储器页面。读取页面事件543包含逻辑块地址,其在转换成物理块地址时引导存储器子系统控制器读取存储于裸片-2 520的块-5 525中的存储器页面。
存储器子系统控制器可识别与每一读取页面事件相关联的读取计数器且使相关联计数器递增。具体地说,响应于检测到读取页面事件540,存储器子系统控制器可识别与裸片编号1(裸片号553)相关联的裸片计数器(DC 554)和与块编号1(块号560)相关联的块计数器(BC 559)。响应于检测到读取页面事件541,存储器子系统控制器可识别与裸片编号2(裸片号553)相关联的裸片计数器(DC 554)和与块编号4(块号560)相关联的块计数器(BC559)。响应于检测到读取页面事件542,存储器子系统控制器可识别与裸片编号3(裸片号554)相关联的裸片计数器(DC 554)和与块编号5(块号560)相关联的块计数器(BC 559)。响应于检测到读取页面事件543,存储器子系统控制器可识别与裸片编号2(裸片号554)相关联的裸片计数器(DC 554)和与块编号5(块号560)相关联的块计数器(BC 559)。
存储器子系统控制器可响应于检测到每一读取页面事件而使矩阵550中的每一裸片计数器递增。如图5所示,与裸片编号1(裸片号553)相关联的裸片计数器(DC 554)展示总计数1;与裸片编号2(裸片号553)相关联的裸片计数器(DC 554)展示总计数2;且与裸片编号3(裸片号553)相关联的裸片计数器(DC 554)展示总计数1。此外,与块编号1(块号560)相关联的块计数器(BC 559)展示总计数1;与块编号2(块号650)相关联的块计数器(BC 559)展示总计数0;与块编号3(块号650)相关联的块计数器(BC 559)展示总计数0;与块编号4(块号650)相关联的块计数器(BC 559)展示总计数1;与块编号5(块号650)相关联的块计数器(BC 559)展示总计数2;且与块编号6(块号650)相关联的块计数器(BC 559)展示总计数0。读取计数器(RC 552)展示接收到的总共4个读取页面事件。
图6A说明根据本公开的实施例的确定表示读取事件的所估计数目的矩阵读取值的实例第一步骤。图6A中的矩阵600表示针对每一块-裸片组合接收到的读数的份额。如图6A所示,读取干扰矩阵维持总读取计数RC 602;总读取计数为1000。读取干扰矩阵维持存储器装置中的每一裸片的裸片计数器。裸片编号展示于列603中,且裸片计数器展示于列604中。在图6A中说明的实例中,存储器装置中存在9个裸片;此仅仅为说明性的,且存储器装置中可存在更少或更多个裸片。列606展示针对每一裸片接收到的读数的份额,即,每一裸片计数器值除以总读取计数器值。
读取干扰矩阵还针对存储器装置中的每一裸片的块的数目维持块计数器。在图6A中说明的实例中,每一裸片存在13个块。这仅仅是说明性的,且存储器装置中的每一裸片可存在更少或更多个块。行610展示块编号,且行609展示用于每一块编号的块计数器。行608展示针对每一块编号接收到的读数的份额,即,每一块计数器值除以总读取计数器值。
通过将针对特定裸片接收到的读数的份额乘以针对特定块编号接收到的读数的份额来填充矩阵600。举例来说,存储在块-5裸片-6处的块的矩阵值为10%乘以12%,为0.01200。作为另一实例,存储在块-4裸片-7处的块的矩阵值为7%乘以2%,为0.00140。
图6B说明根据本公开的实施例产生的实例读取干扰矩阵650。通过将来自图6A中的矩阵600的值乘以总读取计数值652且舍入到最接近的整数来产生读取干扰矩阵650。举例来说,对于由块-裸片组合块-5与裸片-6表示的块,图6A中所说明的矩阵600中的值为0.01200。总读取计数RC 652为1,000。因此,块-裸片组合块-5与裸片-6的矩阵读取值为0.01200×1,000=12。作为另一实例,块-裸片组合块-4与裸片-7的矩阵600值为0.00140。此值乘以总读取计数为0.00140*1,000=1.4,舍入到最接近整数为1。因此,块-裸片组合块-4与裸片-7的读取干扰矩阵650值为1。存储在矩阵650中的矩阵读取值表示与存储器装置的每一块相关联的读取事件的所估计数目。
矩阵读取干扰组件(例如,来自图1的矩阵读取干扰组件113)识别矩阵650中的矩阵读取值满足和/或超过预定义准则,例如读取值阈值极限的块(即,矩阵中的块-裸片组合)。举例来说,如果读取值阈值极限被设置成50,那么矩阵读取干扰组件可将矩阵650中的块-裸片组合块-8裸片-3和块-8裸片-4识别为满足和/或超过读取值阈值极限。矩阵读取干扰组件可接着扫描与经识别块(块-8裸片-3和块-8裸片-4)相关联的页面以确定页面的错误率,且可刷新所述块,所述块具有错误率超过错误率阈值的一或多个页面。
图7说明算机系统700的实例机器,所述实例机器内可执行用于使得所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的矩阵读取干扰组件113的操作)。在替代性实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定待由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以执行本文中所论述的方法中的任何一或多种。
实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或RDRAM等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统718,其经由总线730彼此通信。
处理装置702表示一或多个通用处理装置,例如,微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702被配置成执行指令726以用于执行本文中所论述的操作和步骤。计算机系统700可进一步包含网络接口装置708以在网络720上通信。
数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),所述机器可读存储媒体上存储有一或多个指令集726或体现本文所描述的方法或功能中的任何一或多个的软件。指令726还可在其由计算机系统700执行期间完全或至少部分地驻存在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718,和/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令726包含用以实施对应于矩阵读取干扰组件(例如,图1的矩阵读取干扰组件113)的功能性的指令。尽管在实例实施例中机器可读存储媒体724展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的任何一种或多种的任何媒体。因此应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据操纵和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理数量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM以及磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读取的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,本公开的实施例已经参考其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
- 减轻存储器装置中的读取干扰效应
- 用于闪存存储器中读取端单元间干扰减轻的方法和装置