首页> 中国专利> 产生用于存储器子系统中的数据修改期间的错误检测的错误校验数据

产生用于存储器子系统中的数据修改期间的错误检测的错误校验数据

摘要

本发明涉及产生用于存储器子系统中的数据修改期间的错误检测的错误校验数据。接收存储第一数据的请求。接收所述第一数据及第一错误校验数据。所述第一错误校验数据可为基于所述第一数据的循环冗余校验CRC操作。通过修改所述第一数据来产生第二数据。通过使用所述第一错误校验数据及所述第一数据与所述第二数据之间的差来产生所述第二数据的第二错误校验数据。

著录项

  • 公开/公告号CN112214347A

    专利类型发明专利

  • 公开/公告日2021-01-12

    原文格式PDF

  • 申请/专利权人 美光科技公司;

    申请/专利号CN202010669367.8

  • 发明设计人 陈宁;李娟娥;朱方芳;

    申请日2020-07-13

  • 分类号G06F11/10(20060101);G11C29/42(20060101);

  • 代理机构11287 北京律盟知识产权代理有限责任公司;

  • 代理人王龙

  • 地址 美国爱达荷州

  • 入库时间 2023-06-19 09:32:16

说明书

技术领域

本发明的实施例大体上涉及存储器子系统,且更明确来说,涉及产生用于存储器子系统中的数据修改期间的错误检测的错误校验数据。

背景技术

存储器子系统可为存储装置、存储器模块及存储装置与存储器模块的混合。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可为(例如)非易失性存储器组件及易失性存储器组件。一般来说,主机系统可利用存储器子系统在存储器组件处存储数据及从所述存储器组件检索数据。

发明内容

本发明的一个实施例提供一种系统,其包括:存储器组件;处理装置,其可操作地与所述存储器组件耦合,以:接收存储第一数据的请求;接收所述第一数据及第一错误校验数据,所述第一错误校验数据是基于所述第一数据的循环冗余校验(CRC)操作;通过修改所述第一数据来产生第二数据;及通过使用所述第一错误校验数据及所述第一数据与所述第二数据之间的差来产生所述第二数据的第二错误校验数据。

本发明的另一实施例提供一种方法,其包括:接收存储第一数据的请求;接收所述第一数据及第一错误校验数据,所述第一错误校验数据是基于所述第一数据的循环冗余校验(CRC)操作;通过修改所述第一数据来产生第二数据;由处理装置通过使用所述第一错误校验数据及所述第一数据与所述第二数据之间的差来产生所述第二数据的第二错误校验数据。

本发明的又另一实施例提供一种方法,其包括:从主机系统接收检索第一数据的请求:检索与所述第一数据相关联的第二数据及所述第二数据的第二错误校验数据,所述第二数据对应于所述第一数据的修改,且所述第二错误校验数据是基于所述第二数据的循环冗余校验(CRC)操作;通过反转所述修改来从所述第二数据来产生所述第一数据;产生基于所述第二错误校验数据及所述第一数据与所述第二数据之间的差的第一错误校验数据;由处理装置通过比较所述第一错误校验数据与基于所述第一数据的所述CRC操作产生的错误校验数据来确定所述第一数据是否含有错误;及响应于确定所述第一数据不含所述错误,将所述第一数据提供到所述主机系统。

附图说明

从下文给出的详细描述及从本发明的各种实施例的附图将更加完全地理解本发明。然而,图式不应被理解为将本发明限于特定实施例,而仅是为了解释及理解。

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

图2是检测在数据加密期间是否已引入错误的实例方法的流程图。

图3是根据本发明的一些实施例的检测在数据解密期间是否已引入错误的实例方法的流程图。

图4是根据本发明的一些实施例的产生错误校验数据的实例方法的流程图。

图5是根据本发明的一些实施例的通过使用错误校验数据来检测针对检索请求的数据中的错误的实例方法的流程图。

图6是本发明的实施例可操作于其中的实例计算机系统的框图。

具体实施方式

本发明的方面涉及产生用于存储器子系统中的数据修改期间的错误检测的错误校验数据。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件(在下文也被称为“存储器装置”)的存储器子系统。主机系统可提供将存储在存储器子系统处的数据且可请求将从存储器子系统检索的数据。

存储器子系统可从主机系统接收附加有循环冗余校验(CRC)代码的消息数据以将所述消息数据及所述CRC代码存储到一或多个存储器组件。稍后,存储器子系统可以各种方式修改原始消息数据,例如加密或压缩原始消息数据及/或将元数据附加到原始消息数据。随后,存储器子系统可将经修改消息数据与原始CRC代码(即,从主机系统接收的CRC代码)一起存储。

稍后,主机系统可请求存储器子系统存取消息数据及CRC代码。作为响应,存储器子系统可检索经修改消息数据且从经修改消息数据获得原始消息数据。接着,存储器子系统可将经请求消息数据与原始CRC代码一起提供到主机系统。因此,主机系统可使用原始CRC代码及经检索消息数据来校验经检索消息数据是否损坏或是否含有错误。举例来说,主机系统可从经检索消息数据产生新的CRC代码,且可比较新的CRC代码与原始CRC代码。如果两个CRC代码匹配,则主机系统可确定经检索消息数据有效(即,相同于被请求存储的原始消息数据)。另一方面,如果两个CRC代码不匹配,则主机系统可确定经检索数据被损坏。在一些情况中,存储器子系统(而非主机系统)可使用新的CRC代码及原始CRC代码验证原始消息数据的完整性。

常规地,存储器子系统将原始CRC代码与通过加密、压缩及/或附加元数据修改的消息数据一起存储,以便验证经检索消息数据(即,从经修改消息数据改变回的消息数据)。因为在请求检索消息数据时,存储器子系统应存储主机系统的原始CRC代码,所以存储器子系统无法校验在消息数据被修改时是否已引入错误及/或引入错误的位置。举例来说,在修改(例如,加密)或反转修改(或取消修改)(例如,解密)期间可引入错误,其中数据大小保持相同。为了校验此错误,存储器子系统需要对应于经修改或未经修改消息数据的CRC代码,使得存储器子系统可比较对应CRC代码与基于经修改或未经修改消息数据产生的新的CRC代码。如果两个CRC代码相同,则存储器子系统可确定在(若干)修改期间未引入错误。然而,如果存储器子系统用针对经修改或未经修改消息数据的CRC代码替代原始CRC代码,则经检索消息数据无法被验证。因而,常规存储器子系统无法识别在存储及检索主机系统的消息数据时是否引入错误及/或引错误的位置。

本发明的方面通过具有在存储及/或检索数据期间在对从主机系统接收的数据执行的每一修改(例如,加密、压缩、附加元数据、解密、解压缩及/或截断)时产生错误校验数据(例如,CRC代码)的存储器子系统来解决上述及其它缺点。根据本发明的方面,为了存储数据,存储器子系统使用从主机系统接收的数据、对应于所述数据的错误校验数据及从修改(例如,加密、压缩及/或将元数据附加到来自主机系统的原始消息数据)产生的数据产生错误校验数据。为了检索数据,存储器子系统使用经修改数据、对应于经修改数据的错误校验数据及从反转修改(例如,解密、解压缩及/或截断)产生的数据产生错误校验数据。

本发明的优点包含(但不限于)通过检测在数据的存储及检索期间何时及/或是否引入错误且在检测时执行校正动作(例如,重复修改及/或反转修改)来保证存储及检索期间数据的完整性。因此,可改进存储器子系统的可靠性。

图1说明根据本发明的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类事物的组合。

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

计算环境100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用存储器子系统110(例如)来将数据写入到存储器子系统110及从存储器子系统110读取数据。如本文中使用,“耦合到”通常指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,无中介组件),无论是有线还是无线的,包含例如电、光、磁等的连接。

主机系统120可为计算装置,例如桌面计算机、膝上型计算机、网络服务器、移动装置或包含存储器及处理装置的此计算装置。主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM Express(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。

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

非易失性存储器装置(例如,存储器装置130)的实例包含负与(NAND)型快闪存储器。存储器装置130中的每一者可包含一或多个存储器单元阵列,例如单级单元(SLC)或多级单元(MLC)(例如,三级单元(TLC)或四级单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分及MLC部分、TLC部分或QLC部分。存储器单元中的每一者可存储由主机系统120使用的一或多个数据位。此外,存储器装置130的存储器单元可经分组为存储器页面或存储器块,其可指代用于存储数据的存储器组件的单位。

尽管描述了非易失性存储器组件(例如NAND型快闪存储器),但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、负或(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)及交叉点非易失性存储器单元阵列。交叉点非易失性存储器阵列可结合堆叠式交叉栅格式数据存取阵列基于体电阻变化执行位存储。另外,与许多基于快闪的存储器形成对照,交叉点非易失性存储器可执行原地写入操作,其中非易失性存储器单元被编程而无需事先擦除非易失性存储器单元。

存储器子系统控制器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相关联的逻辑块地址与物理块地址之间的地址转译。存储器子系统控制器115可进一步包含经由物理主机接口与主机系统120通信的主机接口电路系统。所述主机接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。

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

在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。

存储器子系统110包含错误检测组件113,其可用于产生错误校验数据或代码。在一些实施例中,存储器子系统控制器115包含错误检测组件113的至少一部分。举例来说,存储器子系统控制器115可包含经配置以执行存储于本地存储器119中的指令以用于执行本文中描述的操作的处理器117(处理装置)。在一些实施例中,错误检测组件113是主机系统110、应用或操作系统的部分。

错误检测组件113可接收存储消息数据及对应错误校验数据的请求。错误检测组件113可通过修改消息数据来产生另一消息数据。错误检测组件113也可通过使用接收的错误校验数据及消息数据与经修改消息数据之间的差来产生对应于经修改消息数据的错误校验数据。下文描述关于错误检测组件113的操作的进一步细节。

图2是根据本发明的一些实施例的检测在数据加密期间是否已引入错误的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,运行或执行于处理装置上的指令)或其组合。在一些实施例中,方法200由图1的错误检测组件113执行。尽管以特定顺序或次序展示,但除非另外指定,否则过程的次序可修改。因此,说明的实施例应仅被理解为实例,且说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中,可省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它工艺流程是可能的。

在操作210,处理装置从主机系统120接收消息数据(例如,M)。在一些实施例中,消息数据可包含N个二进制数据位,例如M

此外,在操作210,处理装置修改消息数据。在一些实施例中,处理装置加密消息数据以产生经加密数据M’。所得经加密数据也可具有含相同N个位的二进制数字。接着,处理装置存储经加密数据。此加密过程将响应于来自主机系统120的写入操作安全地存储消息数据。当主机系统120请求存取消息数据M时,处理装置解密经加密数据以将消息数据传回到主机系统120,如下文将关于图3描述。此外,处理装置可针对操作215创建原始消息数据的副本。另外,在操作210,处理装置可产生表示对原始消息数据M执行的修改的类型的元数据。处理装置可使经修改消息数据M’与原始数据M相关联以用于使用元数据进行检索。

在修改消息数据之后,在操作215,处理装置组合原始消息数据M与经加密数据M’。在修改原始消息数据M之前,处理装置可创建原始消息数据M的副本且使用此副本来与经加密数据M’组合。在一些实施例中,处理装置可计算两个数据M与M’之间的差以组合两个数据。特定来说,处理装置可对两个二进制数据M及M’应用互斥或(XOR)逻辑函数。在进一步实施例中,处理装置可在执行操作215之后删除原始数据M的副本。

在操作220,处理装置对原始数据M与经修改数据M’之间的差应用循环冗余校验(CRC)操作。结果,处理装置产生错误校验数据(例如,CRC*)。在一些实施例中,CRC*可具有R个二进制数据位,例如C*

在操作225,处理装置接收原始消息数据M的错误校验数据(例如,CRC)。处理装置可从主机系统接收错误校验数据或可通过对接收到的消息数据M执行CRC操作来产生错误校验数据。接着,处理装置通过确定两个错误校验数据之间的差来用增量错误校验数据(例如,CRC*)更新原始消息数据的错误校验数据(例如,CRC)。类似于操作215,处理装置可使用XOR逻辑函数来确定两个错误校验数据CRC与CRC*之间的差。通过更新对应于原始消息数据的错误校验数据CRC,处理装置产生经修改数据M’的错误校验数据(例如,CRC’)。即,经更新错误校验数据是对应于经修改数据M’的错误校验数据(例如,CRC’)。随后,处理装置可使用CRC’来检测是否存在在加密期间引入的任何错误,如下文将关于操作230及240描述。此错误可能是由噪声或在存储数据及/或检索所存储数据时的其它此类减损(例如由存储器子系统110的封装材料发射的α粒子,所述α粒子可导致存储于存储器单元中的数据值或数据位从‘0’值切换到‘1’值(或反之亦然))引起的。

在操作230,处理装置对经加密数据M’应用CRC操作。在一些实施例中,所得错误校验数据CRC”可具有R个二进制数据位。从CRC操作产生的任何错误校验数据将具有相同数目R个位。

接着,在操作240,处理装置基于两个错误校验数据CRC’及CRC”检测在操作210的加密期间是否已引入错误。如果两个错误校验数据具有相同值,则处理装置可确定经加密数据M’有效。否则,如果两个错误校验数据不匹配,则处理装置可确定经加密数据M’由于在操作210的加密期间引入的错误而无效。因而,通过基于使用增量错误校验数据(例如,CRC*)更新原始数据M的错误校验数据(例如,CRC),处理装置可产生对应于经修改数据M’的错误校验数据(例如,CRC’)以用于检测在操作210的修改期间引入的任何错误。

响应于确定经加密数据M’有效,处理装置可将经加密数据M’与其对应错误校验数据CRC’一起存储于存储器组件中。在其中CRC”匹配CRC’的此情况中,处理装置可存储CRC”(而非CRC’)。在进一步实施例中,处理装置可多次修改接收到的数据(例如,M)。在此情况中,处理装置可在每次执行修改时执行方法200以便保证经修改数据的完整性且相应地执行任何校正动作。

图3是根据本发明的一些实施例的检测在数据解密期间是否已引入错误的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,运行或执行于处理装置上的指令)或其组合。在一些实施例中,方法300由图1的错误检测组件113执行。尽管以特定顺序或次序展示,但除非另外指定,否则过程的次序可修改。因此,说明的实施例应仅被理解为实例,且说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中,可省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它工艺流程是可能的。

在操作310,处理装置接收经加密消息数据。在一些实施例中,处理装置可从方法200检索存储于存储器组件112中的经加密消息数据M’。在一些实施例中,处理装置可响应于来自主机系统120的请求读取经存储数据M’。请求可与存储图2中的M的请求相关联。即,主机系统120可将读取操作发送到处理装置以检索经传输到处理装置以进行存储的数据M。主机系统120可能未察觉到对M执行的加密。因此,响应于来自主机系统120的检索请求,处理装置可反转或撤销经存储数据M’的修改(即,解密)。为了确定如何反转修改或撤销修改,处理装置可从与经修改数据M’相关联的元数据识别对原始数据M执行的修改的类型。接着,处理装置可确定将经修改数据M’变回到原始数据M的操作。举例来说,如果来自图2的原始数据M已被加密成M’,则处理装置可解密经加密数据M’以获得原始数据M。因此,经加密数据M’及经解密数据M两者具有相同数目N个位。一旦经修改数据M’变回成原始数据M,处理装置便响应于读取操作将原始数据M提供到主机系统120(除非在反转修改过程中检测到错误,如下文将关于操作340描述)。

在操作315,处理装置确定经加密数据M’与经解密数据M之间的差。类似于操作215,处理装置可对两个数据应用XOR逻辑函数以确定所述数据之间的差。

在操作320,处理装置对从操作315确定的差执行CRC操作。结果,处理装置产生将用于确定经解密数据M的错误校验数据的增量错误校验数据(例如,CRC^),如下文将在操作325描述。

在操作325,处理装置接收对应于经检索数据M’的错误校验数据(例如,CRC’)。处理装置可检索已存储于存储器组件112中的与经修改数据M’相关联的CRC’。接着,处理装置可通过组合错误校验数据CRC’与增量错误校验数据CRC^来更新对应于经修改数据M’的错误校验数据(例如,CRC’)。错误校验数据两者可为二进制数字且具有相同数目R个位。因而,在一些实施例中,处理装置可使用XOR逻辑函数组合两个错误校验数据。因此,处理装置从XOR逻辑函数的所得乘积产生经解密数据M的错误校验数据(例如,CRC)。在一些实施例中,CRC可为具有R个位的二进制数字。处理装置可响应于检索请求向主机系统120提供经解密数据M的错误校验数据。

在操作330,处理装置对经解密数据M应用CRC操作且产生错误校验数据(例如,CRC**)。在操作340,为了检测在操作310的反转修改或解密期间是否引入错误或经反转修改数据M是否含有错误,处理装置确定经反转修改数据M的错误校验数据CRC**是否匹配通过用增量错误校验数据CRC^更新经修改数据M’的错误校验数据CRC’而确定的错误校验数据CRC。如果两个错误校验数据CRC及CRC**匹配,则处理装置可验证经解密数据M不含错误。在此情况中,图3中的经解密数据M应与来自图2的从主机系统120接收的原始数据M相同。另一方面,如果处理装置确定两个错误校验数据不匹配,则处理装置可向主机系统120通知检索经请求数据失败或返回到操作310。在进一步实施例中,如果已对从主机系统120接收的原始数据M应用多次修改,则处理装置可执行方法300多次。

图4是根据本发明的一些实施例的产生错误校验数据的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,运行或执行于处理装置上的指令)或其组合。在一些实施例中,方法400由图1的错误检测组件113执行。尽管以特定顺序或次序展示,但除非另外指定,否则过程的次序可修改。因此,说明的实施例应被理解为仅作为实例,且说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中,可省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它工艺流程是可能的。

在操作410,处理装置接收存储数据(例如,图2中的M)的请求。举例来说,处理装置可接收如由主机系统120所提供的存储M的请求。在其它实施例中,处理装置可从存储器子系统110接收请求。

在操作420,处理装置接收数据(例如,M)及数据的错误校验数据(例如,图2中的CRC)。在一些实施例中,处理装置可用请求接收数据。处理装置可从主机系统120或存储器子系统110接收数据。数据可呈二进制数字的形式。错误校验数据也可呈二进制数字的形式。在一些实施例中,错误校验数据可为通过对接收到的数据应用CRC操作而产生的循环冗余校验(CRC)代码。此外,错误校验数据可附加到接收到的数据。在此情况中,处理装置可从含有数据(例如,M)及对应错误校验数据(例如,CRC)的数据包读取错误校验数据(例如,CRC)。在一些实施例中,处理装置可从主机系统120或存储器子系统110接收错误校验数据。在一些其它实施例中,处理装置可对接收到的数据执行CRC操作以产生用于操作420的错误校验数据。在进一步实施例中,处理装置可创建接收到的数据的副本,以在关于操作430检测到错误的情况下执行校正动作,如下文将描述。

在操作430,处理装置通过修改数据来产生另一数据(例如,图2中的M’)。处理装置可修改数据,同时维持相同数据大小。举例来说,处理装置可加密M且产生M’,所述M’是具有与M的位数相同数目个位的经加密M。在一些实施例中,处理装置可识别修改(例如,加密)的类型且(例如)使用元数据将修改的类型连同M’一起存储。

在操作440,处理装置通过使用原始数据(例如,M)的错误校验数据(例如,CRC)及所述数据(例如,M)与经修改数据(例如,M’)之间的差来产生经修改数据(例如,M’)的错误校验数据(例如,图2中的CRC’)。即,处理装置可更新在操作420接收到的错误校验数据(例如,CRC)以便产生经修改数据的错误校验数据。处理装置可基于接收到的数据(例如,M)与在操作430产生的数据(例如,M’)的组合来更新操作420的错误校验数据。举例来说,处理装置可使用从原始数据M与经修改数据M’的组合产生的增量错误校验数据(例如,图2中的CRC*)。本文中使用的增量错误校验数据指代用于递增地更新原始数据的错误校验数据以达到经修改数据的错误校验数据的错误校验数据(从CRC操作计算)以验证从原始数据到经修改数据的数据修改产生的经修改数据。在一些实施例中,处理装置可使用两个数据之间的差组合原始数据与经修改数据。处理装置可使用XOR逻辑函数确定所述差。一旦处理装置确定M与M’之间的差,处理装置便可对所述差应用CRC操作以产生增量错误校验数据CRC*。在确定增量错误校验数据(例如,CRC*)之后,处理装置可通过用增量错误校验数据(例如,CRC*)更新原始数据(例如,M)的错误校验数据(例如,CRC)来继续产生经修改数据(例如,M’)的错误校验数据(例如,CRC’)。为了更新原始数据(例如,M)的错误校验数据(例如,CRC),处理装置可组合原始数据(例如,M)的错误校验数据(例如,CRC)与增量错误校验数据(例如,CRC*)。在一些实施例中,处理装置可对两个CRC(例如,CRC及CRC*)执行XOR逻辑函数。因而,在一些实施例中,处理装置可使用通过XOR逻辑函数确定的CRC与CRC*的差来组合CRC与CRC*。

在一些进一步实施例中,处理装置可通过比较来自操作440的经修改数据(例如,M’)的错误校验数据(例如,CRC’)与从经修改数据(例如,M’)的CRC操作产生的错误校验数据(例如,图2中的CRC”)来确定在操作430的修改期间是否已引入错误。错误可能是由诱发存储器组件112中的存储器单元的状态翻转到相反状态(例如,从‘1’值到‘0’值,且反之亦然)的任何减损引起。在一些实施例中,处理装置可比较使用增量错误校验数据(例如,CRC*)从原始数据(例如,M)的错误校验数据(例如,CRC)更新的错误校验数据(例如,CRC’)与从经修改数据(例如,M’)的CRC操作计算的错误校验数据(例如,CRC”)。基于所述比较,处理装置可确定两个错误校验数据是否匹配。在比较两个CRC时,处理装置可确定由每一CRC的二进制数字表示的值是否相同。

响应于确定CRC’匹配CRC”,处理装置可确定M’不含错误。接着,处理装置可存储M’与对应错误校验数据(例如,CRC’)。在存储M’时,处理装置可使M’与接收到的原始数据M相关联。处理装置可使用用于关联的标识符或元数据。以此方式,当处理装置从主机系统120接收检索M的请求时,处理装置可基于所述关联存取M’。

另一方面,假如CRC’不匹配CRC”,则处理装置可确定M’含有错误。接着,处理装置可再次对接收到的数据的副本执行操作430作为校正动作。在一些实施例中,处理装置可向主机系统120通知无法存储M。

图5是根据本发明的一些实施例的检测针对检索请求的数据中的错误的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,运行或执行于处理装置上的指令)或其组合。在一些实施例中,方法500由图1的错误检测组件113执行。尽管以特定顺序或次序展示,但除非另外指定,否则过程的次序可修改。因此,说明的实施例应被理解为仅作为实例,且说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中,可省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它工艺流程是可能的。

在操作510,处理装置从主机系统接收检索数据(例如,图3中的M)的请求。在操作520,处理装置检索与经请求数据相关联的另一数据(例如,图3中的M’)及对应于经检索数据的错误校验数据。在一些实施例中,经检索数据(例如,图3中的M’)可对应于被请求检索的数据(例如,图3中的M)的修改。举例来说,处理装置可从主机系统120接收数据(例如,图2中的M)来存储且随后从主机系统120接收检索数据(例如,图3中的M)的请求。然而,为了存储来自主机系统120的数据(例如,图2中的M),处理装置可将来自主机系统120的数据(例如,图2中的M)修改(例如,加密)成经修改数据(例如,图2中的M’)及代替地存储经修改数据(例如,图2中的M’)。因此,当从主机系统120接收检索数据(例如,图3中的M)的请求时,处理装置首先存取存储的经修改数据(例如,图2中的M’)。如下文将论述,从主机系统120接收的数据(例如,图2中的M)可不同于恢复的数据(例如,图3中的M),这是因为经恢复数据(例如,图3中的M)可能含有错误。

此外,在操作520,处理装置可检索基于经检索数据(例如,M’)的CRC操作的错误校验数据(例如,图3中的CRC’)。CRC’可通过附加到M’来与M’一起存储。在一些实施例中,经检索数据及错误校验数据两者可呈二进制数据的形式。

在操作530,处理装置通过反转修改来从经检索数据(例如,M’)产生经请求数据(例如,图3中的M)。在一些实施例中,处理装置可通过将经检索数据(例如,M’)修改回成经请求数据(例如,M)同时维持相同数据大小来反转修改。处理装置可基于与M’相关联的元数据确定如何将经检索数据(例如,M’)修改回去。举例来说,处理装置可从元数据M’识别对从主机系统120接收的数据执行的修改的类型(例如,加密)。接着,处理装置可基于从元数据M’确定的修改的类型确定撤销或反转修改(例如,加密)的操作(例如,解密)。

在操作540,处理装置基于经检索错误校验数据(例如,CRC’)及所述数据(例如,M)与经检索数据(例如,M’)之间的差产生错误校验数据(例如,图3中的CRC)。类似于操作440,处理装置可基于经检索数据(例如,M’)与用于检索请求的经反转修改数据(例如,M)的组合更新经检索错误校验数据(例如,M’)。处理装置可使用增量错误校验数据(例如,图3中的CRC^)来更新经检索错误校验数据(例如,CRC’)。举例来说,处理装置可基于经反转修改数据(例如,M)及经检索数据(例如,M’)产生增量错误校验数据(例如,CRC^)。处理装置可使用XOR逻辑函数来确定M与M’之间的差并对所述差应用CRC操作以产生增量错误校验数据(例如,CRC^)。在确定增量错误校验数据CRC^之后,处理装置可通过用增量错误校验数据(例如,CRC^)更新经检索错误校验数据(例如,CRC’)来继续产生经反转修改数据(例如,M)的错误校验数据(例如,CRC)。举例来说,处理装置可组合经检索错误校验数据(例如,CRC’)与增量错误校验数据CRC^。处理装置可针对组合对两个CRC(例如,CRC^及CRC’)执行XOR逻辑函数。经更新错误校验数据(例如,CRC’)将对应于经反转修改数据(例如,M)的错误校验数据(例如,CRC)。

在操作550,处理装置可通过比较经产生错误校验数据(例如,CRC)与基于对经反转修改数据(例如,M)的CRC操作的错误校验数据(例如,CRC**)来确定经反转修改数据(例如,M)是否含有错误。举例来说,处理装置可比较两个CRC且确定两个CRC是否具有相同值。响应于确定CRC与CRC**不匹配,处理装置可确定经反转修改M含有错误。在一些实施例中,处理装置可返回到操作530以再次产生M。在其它实施例中,处理装置可向主机系统120通知检索经请求数据错误或失败。另一方面,处理装置可确定CRC匹配CRC**。在此情况中,处理装置确定M不含错误。

在操作560,处理装置响应于确定经反转修改数据不含错误而基于请求将经反转修改数据(例如,M)提供到主机系统120。

在进一步实施例中,处理装置可将经反转修改数据及对应错误校验数据两者提供到主机系统120。作为响应,主机系统120可通过比较接收到的错误校验数据与新近使用对接收到的数据的CRC操作计算的错误校验数据来确定来自处理装置的接收到的数据是否相同于提供到处理装置以存储的数据。

图6说明用于导致机器执行本文论述的方法论中的任一或多者的一组指令可在其内执行的计算机系统600的实例机器。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),所述主机系统包含存储器子系统(例如,图1的存储器子系统110)、耦合到所述存储器子系统或利用所述存储器子系统或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的错误检测组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内部网、外部网及/或因特网中的其它机器。机器可以主从式网络环境中的服务器或客户端机器的身份操作、作为对等(或分布式)网络环境中的对等机器操作或作为云计算基础设施或环境中的服务器或客户端机器操作。

机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥或能够(循序或以其它方式)执行指定由所述机器所采取的动作的一组指令的任何机器。此外,虽然说明了单个机器,但术语“机器”还应被视为包含个别或联合执行一组(或多组)指令以执行本文中论述的方法论中的任一或多者的机器的任何集合。

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

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

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

在一个实施例中,指令626包含实施对应于错误检测组件(例如,图1的错误检测组件113)的功能性的指令。虽然在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应被理解为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”也应被理解为包含能够存储或编码由机器执行的一组指令且引起机器执行本发明的方法论中的任一或多者的任何媒体。术语“机器可读存储媒体”应相应地被理解为包含(但不限于)固态存储器、光学媒体及磁性媒体。

已依据对计算机存储器内的数据位的操作的算法及符号表示呈现前述详细描述的一些部分。这些算法描述及表示是由数据处理领域的技术人员用以向所属领域的其它技术人员最有效地传达其工作实质的方式。算法在本文且通常被设想为导致所期望结果的自相一致的操作序列。操作是需要物理操纵物理量的操作。通常,尽管不是必须的,但这些量采取能够被存储、组合、比较及以其它方式操纵的电或磁性信号的形式。已证明,有时主要由于习惯用法将这些信号称为位、值、元素、符号、字符、项、数字或类似物是方便的。

然而,应记住,全部这些及类似术语应与适当物理量相关联,且仅为应用于这些量的方便标签。本发明可参考计算机系统或类似电子计算装置的动作及过程,其将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵且变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。

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

本文中呈现的算法及显示器并不固有地涉及任何特定计算机或其它设备。各种通用系统可结合根据本文中的教示的程序使用,或其可证明构造更专门的设备来执行方法是方便的。用于各种这些系统的结构将如下文描述中陈述那样出现。另外,本发明不参考任何特定编程语言描述。应了解,多种编程语言可用于实施本文中所描述的本发明的教示。

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

在前述说明书中,已参考本发明的特定实例实施例描述本发明的实施例。将明显的是,在不背离以下权利要求书中所陈述的本发明的实施例的更宽精神及范围的情况下,可对其做出各种修改。说明书及图式应相应地以说明性意义而非限制性意义来看待。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号