检测比特错误的方法和电子电路以及数据存储设备 |
|||||||
申请号 | CN201410605602.X | 申请日 | 2014-09-30 | 公开(公告)号 | CN104575616B | 公开(公告)日 | 2017-11-03 |
申请人 | 英飞凌科技股份有限公司; | 发明人 | R·科; T·拉贝纳尔特; | ||||
摘要 | 提供了检测比特错误的方法和 电子 电路 以及数据存储设备。提供了一种在数据存储设备中检测比特错误的方法,所述方法包括:将在数据存储设备的读出操作期间 访问 的第一比特序列与对应于数据存储设备的预期 存储器 状态的第二比特序列进行比较。 | ||||||
权利要求 | 1.一种在数据存储设备中检测比特错误的方法,包括: |
||||||
说明书全文 | 检测比特错误的方法和电子电路以及数据存储设备技术领域[0001] 本公开涉及检测比特差错,并更具体地涉及一种在数据存储设备中检测比特错误的方法、数据存储设备和用于在数据存储设备中检测比特错误的电子电路。 背景技术[0002] 数据存储设备是各种计算机技术和电子数据处理应用中的重要部件。数据存储设备可用于例如存储用户数据,要对所述用户数据执行数据处理。作为另一个例子,执行相应应用的功能所需的工作数据或系统数据可以被存储在数据存储设备中。通常,在计算机和电子数据处理应用中,数据存储设备存储比特数据。 [0003] 数据存储设备被实现为各种类型和形式,并且可以包括但不限于例如光学、磁性或电子存储介质,或它们的组合。要被存储在数据存储设备中的数据类型和数量以及平均存储时间取决于应用的种类以及其中操作数据存储设备的系统或设备的使用和目的。 [0004] 在许多应用中,提供用于增强数据存储设备的可靠性、可用性和可服务性的措施,从而可以提高数据完整性。例如,可以提供检测和/或纠正在比特数据中可能的比特错误的能力。这些措施包括纠错码(ECC)方法,根据该方法,使用算法在所存储的存储数据的基础上计算冗余数据。纠错码经常用于其中需要高数据完整性的应用或设备中。例如,纠错码可与诸如RAM模块的存储器模块结合使用,或用在其它类型的易失性或非易失性存储器模块中。 [0005] 然而,由纠错码提供的纠错和检错能力是有限的,使得每数据比特寄存器的不超过n比特的错误可以被检测,其中,n取决于所使用的算法以及添加冗余数据产生的数据开销的百分比。期望以及在许多应用中有必要检测多于上述n比特的错误,例如,100%的比特错误。 [0006] 为了克服该问题,已知其中对存储器模块中数据进行计数的方法。例如,如果存储器模块的一部分的已擦除状态对应0比特,则处理步骤最后应该包括0。不像0的计数结果指示错误。当一个或多个错误发生时,不像0比特的数据比特数量可以被输出作为容错已擦除状态。 [0008] 公开了在数据存储设备中检测比特错误的方法。根据该方法,在数据存储设备的读出操作期间访问的第一比特序列与对应于数据存储设备的预期存储器状态的第二比特序列进行比较。 [0009] 进一步地,公开相应的数据存储设备,其包括用于存储比特数据的数据存储装置和比较装置。 [0010] 数据存储设备的比较装置被配置为将在数据存储设备的读出操作期间访问的第一比特序列与对应于数据存储设备的预期存储器状态的第二比特序列进行比较。 [0011] 此外,公开用于在数据存储设备中检测比特错误的电子电路,其中所述电子电路包括比较部件或装置,其被配置为将在数据存储设备的读出操作期间访问的第一比特序列与对应于数据存储设备的预期存储器状态的第二比特序列进行比较。附图说明 [0012] 附图被包括以提供对本公开的进一步理解并被并入本说明书中且构成本说明书的一部分。这些图示出本公开的实施例,并与描述一起用于解释本公开的原理。本公开的其他实施例和本公开的许多预期优点将容易被意识到,因为通过参考如下详细描述它们变得更好理解。 [0013] 图1描绘了示例性数据存储设备的示意结构,该数据存储设备包括数据存储装置和比较装置; [0014] 图2描绘了根据本公开的第一示例实施例的在数据存储设备中检测比特错误的方法的示意流程图; [0015] 图3描绘了用于检测比特错误的示例性电子电路的部件的示意结构,包括用于比较第一和第二比特序列的比较装置; [0016] 图4描绘了根据本公开的第二示例实施例的在数据存储设备中检测比特错误的方法的示意流程图; [0017] 图5描绘了根据本公开的第三示例实施例的在数据存储设备中检测比特错误的方法的示意流程图; [0018] 图6描绘了根据本公开的第四示例实施例的在数据存储设备中检测比特错误的方法的示意流程图; [0019] 图7描绘了根据本公开的第五示例实施例的在数据存储设备中检测比特错误的方法的示意流程图。 具体实施方式[0020] 在下面的详细描述中参考了附图,附图形成了详细描述的一部分,并且在附图中通过说明的方式示出了在其中可以实践本公开的具体的实施例。应当理解的是,可以在不脱离本公开的范围的情况下使用其它实施例并可以进行结构上的或其他变化。因此,下面的详细描述不应被视为具有限制意义,并且本公开的范围由所附的权利要求限定。 [0021] 图1描绘了示例性数据存储设备100的示意结构,该数据存储设备100包括数据存储部件或装置101以及比较部件或装置107。数据存储装置101可以包括存储器模块,例如,诸如RAM、DRAM、闪存的半导体存储器模块,或另一个方便的存储器模块。根据一个实施例,数据存储装置101包括纠错码存储器,即包括用于纠错码编码和/或解码的装置的存储器。虽然在本实施例中数据存储装置101可以包括存储器模块,但是本公开不限于存储器模块。 因此,在其他实施例中,数据存储装置101包括磁性和/或光学数据存储设备或另一类型的数据存储设备。 [0022] 根据图1中的实施例,数据存储装置101还包括用于存储比特数据的存储器区和/或存储器阵列102,其可通过读操作103和/或写操作来访问。此外,数据存储设备100可以包括读取寄存器104,其中可以存储在数据存储设备100的读出操作期间访问的第一比特序列105。 [0023] 此外,数据存储设备100可以具有第二比特序列106,其可对应于数据存储设备100的预期存储器状态。在一个实施例中,第二比特序列106对应于数据存储设备100的已擦除存储器状态。此外,第二比特序列106可对应于在存储器阵列102中存储的比特序列的组装缓冲器或存储器寄存器的已擦除存储器状态。在这种情况下,当0比特对应于已擦除存储器状态时,第二比特序列106的所有比特可以是0。可替换地,当1比特对应于已擦除存储器状态时,第二比特序列106的所有比特可以是1。 [0024] 如图1中所示,数据存储设备100还可以配备比较装置107,其被配置为将第一比特序列105与第二比特序列106进行比较。 [0025] 在一个实施例中,比较装置107包括XOR操作部件或装置。在一个实施例中,使用在数据存储设备中已经存在的XOR操作装置或XOR门。 [0026] 图2描绘了根据第一示例实施例的在数据存储设备中检测比特错误的方法200的示意流程图。详细地说,根据图2中的实施例的方法200包括动作S202,其中第一比特序105从读取寄存器104中读出。在S204,对第一比特序列105执行纠错码解码。进一步,在S206,第一比特序列105与对应于已擦除存储器状态的第二比特序列106进行比较。 [0027] 图3描绘了用于检测在数据存储设备100中的比特错误的示例性电子电路300的示意结构。根据图3所示的示例实施例,电子电路300与写入寄存器301连接。此外,在一个实施例中,电子电路300还可以包括纠错码编码器302。另外,写入寄存器301可以与纠错码编码器302连接,纠错码编码器302因此可以接收303a在写入寄存器301中写入的数据比特。 [0028] 响应于从写入寄存器301接收303a数据比特,纠错码编码器302可以执行纠错码编码,其产生纠错码比特304的输出303b和数据比特306的输出305。 [0029] 在一个实施例中,电子电路300还包括组装缓冲器307,用于纠错码比特304和数据比特306的中间存储。 [0030] 根据本公开的示例实施例,数据比特长度是例如128比特,其中纠错码比特长度是例如22比特。然而,根据其他实施例,数据比特长度短于或长于128比特,例如64比特或256比特。此外,根据可替换实施例,纠错码比特的比特长度短于或长于22比特。 [0031] 如图3所示,电子电路300还可以包括读取寄存器308和纠错码解码器309。类似地,读取寄存器308可以存储例如22比特长度的纠错码比特310和例如128比特长度的数据比特311,对应于从纠错码编码器302输出和存储在组装缓冲307中的纠错码比特304和数据比特 306。 [0032] 在本实施例中,纠错码比特310与数据比特311由纠错码解码器309读出,纠错码解码器309可以计算并输出312纠错码比较结果。 [0033] 此外,纠错码解码器309可以连接313到预取缓冲器314,用于输出和进一步处理所读出的数据。此外,纠错码解码器309的输出也可以被连接到复用器315,复用器315对以下进行复用:一方面的纠错码解码器309的纠错码经处理和/或经纠正的输出以及另一方面的存储在并从读取寄存器308输出316的比特。此外,在一个实施例中,复用器315被连接到比较部件或装置317。因此,读取寄存器308的输出316或从纠错码解码器309输出的比特可以选择性地在比较装置317中与比较比特进行比较。 [0034] 根据一个实施例,比较装置317执行XOR操作,并输出318对应的比较结果。 [0035] 此外,根据本公开的一个实施例,组装缓冲器307也被连接319到比较装置317。 [0036] 图4描绘了根据本公开的第二示例实施例的在数据存储设备中检测比特错误的方法400的示意流程图。 [0037] 类似于结合图2描述的第一实施例,根据方法400,在S402,第一比特序列105从读取寄存器104读出。进一步的,在S404,对第一比特序列105执行纠错码解码。 [0038] 在S406,产生第二比特序列106,其对应于已擦除存储器状态。最后,在S408,第一比特序列105和第二比特序列106在XOR操作中进行比较。 [0039] 结合图3描述的电子电路300可以执行不同的可能验证,其示例在以下图5至7中结合示例实施例来更详细地进行描述。 [0040] 图5描绘了根据本公开的第三示例实施例的在数据存储设备中检测比特错误的方法500的示意流程图。 [0041] 如图5所示,在S502,在组装缓冲器307中的纠错比特304和数据比特306被设置为0。在S504,从读出寄存器308读出的纠错比特310和数据比特311借助于纠错解码器309进行比较,而不使用地址比特(地址ECC关闭)。在一个实施例中,期望使用现有的纠错码电路以检测和纠正不准确的已擦除存储器区。然而,由于所使用的纠错码电路的受限大小,在单独利用该纠错码电路的情况下,可纠正比特错误的数量受限为n。 [0042] 在下文中,根据纠错码的类型,纠错码解码的一个或多个结果可以被检查。 [0043] 根据结合图5所讨论的示例第三实施例,使用DECTEC(双纠错三重检错)纠错码。然而,在本公开的其它实施例中,可以使用其它的纠错码。 [0044] 在S506,检查纠错码解码是否给出无失败结果。在这样的情况下,在S508,所有-0-标志被设置,根据本实施例其意指非容错擦除通过。否则,当在S506回答是否定时,在S510,1比特失败被检查。在这样的情况下,当在S510确定1比特失败时,在S512容错1通过被验证。 [0045] 否则,当在S510中回答为否时,在S514,检查2比特失败的发生。在这样的情况下,当在S514确定2比特失败时,在S516,容错2通过被验证。 [0047] 可能的是,4或更多比特失败可能发生,这被看作是0、1或2比特失败。因此,必须正式验证:如果在地址ECC关闭的情况下在纠错块(例如,图3中的纠错码编码器302)的输入上超过3个错误——例如在所有零数据上的3个1——发生,则至少一个1比特将保留在纠错块(例如,纠错解码器309)的输出上。 [0048] 因此,根据动作S520,纠错码解码器309的输出与所有0进行比较。当比较结果产生失败时,则根据动作S522,可以进行无擦除通过验证。然而,当比较是肯定的并且不导致失败时,则在S524,擦除通过可被验证。这符合理论:只有1或2比特是可纠正的,而3或更多比特可检测但不可修复。 [0049] 图6描绘了根据本公开的第四示例实施例的在数据存储设备中检测比特错误的方法600的示意流程图。 [0050] 如图6所示,根据动作S602,在组装缓冲器307中的所有数据比特被设置为0。进一步,在S604,在组装缓冲器307中的纠错比特304通过使用纠错码编码器302产生。在S606,从读取寄存器308读出第一比特序列104。 [0051] 进一步,在S608,第一比特序列104的数据比特311和纠错比特310使用XOR操作与第二比特序列105进行比较。然后,在S610确定在S608的比较是否导致失败。因此,当回答是肯定的使,在S612,指出0程序失败。否则,当答案是否定并因此没有失败检测发生时,在S614,0程序通过可以被验证。 [0052] 图7描绘了根据本公开的第五示例实施例的在数据存储设备中检测比特错误的方法700的示意流程图。 [0053] 如图7所示,根据动作S702,在组装缓冲器307中的所有数据比特306被设置为0。进一步,在S704,在组装缓冲器307中的纠错比特304通过使用纠错码编码器302来产生。在S706,从读取寄存器308读出第一比特序列104。 [0054] 进一步,在S708,第一比特序列104的数据比特311和纠错比特310使用XOR操作与第二比特序列105进行比较。然后,在S710确定在S608的比较是否导致失败。因此,当回答是肯定的时,在S712,数据程序失败被指出。否则,当答案是否定并因此没有失败检测发生时,在S714,数据程序通过可以被验证。 |