一种针对数据屏蔽的纠错方法、装置及存储介质与流程

文档序号:32393533发布日期:2022-11-30 09:18阅读:44来源:国知局
一种针对数据屏蔽的纠错方法、装置及存储介质与流程

1.本技术涉及计算机信息处理技术领域,具体涉及一种针对数据屏蔽的纠错方法、装置及存储介质。


背景技术:

2.对于存储芯片来说,其数据在写入读出的过程当中可能会发生数据的错误。为了解决这个问题,错误纠正编码(ecc)被应用到存储芯片中。
3.对于动态随机存储芯片(dram)来说,其标准有规定一些特定的功能,例如数据屏蔽(dm),字长截断(burst chop)。这些功能的启用,使得每次写操作写入芯片的数据位数是不一样的。但是,错误纠正编码(ecc)是针对所有数据做的一个编码。为了解决这个问题,常规的方法是在写入新的数据的时候,先做一个读操作,把原先存在存储单元中的数据读出来,然后对读出来的数据进行纠正。接着根据数据屏蔽或者字长截断的信号选择相应的数据,和外部新写入的数据组成一个数据包。该数据包再去编码得到错误纠正码,和数据再一起存入存储矩阵中。所以对于拥有数据屏蔽(dm)和字长截断(burst chop)的情况来说,整个数据的写入过程包括了先读后写两个步骤。这样对于拥有数据屏蔽(dm)或字长截断(burst chop)的写过程来说,其需要的时间相对于正常的写过程来说更久。对于低功耗双倍速率同步动态随机存储器(lpddr)来说,普通的写和拥有数据屏蔽(dm)的写是不同的命令,拥有不同的时间,所以能够满足前面描述的问题。但是对于普通的双倍速率同步动态随机存储器(dram)来说,并没有区分普通的写和拥有数据屏蔽(dm)的写。拥有数据屏蔽的时候的写和普通的写是相同的过程。此时写入的错误纠正编码是没有意义的,数据读出的时候不应该根据错误纠正编码对数据进行修正。因此,必须想办法在读取数据的时候区分数据是普通的写还是数据屏蔽(dm)的写写入的。


技术实现要素:

4.本技术实施例的目的在于提供一种针对数据屏蔽的纠错方法、装置及存储介质,用以解决现有技术中对于普通的双倍速率同步动态随机存储器(dram)来说,读取过程无法区分数据为普通的写还是数据屏蔽(dm)的写写入的问题。
5.为实现上述目的,本技术实施例提供一种针对数据屏蔽的纠错方法,包括步骤:获取目标数据,基于所述目标数据,生成对应的第一编码,所述第一编码中包含有第一错误纠正编码;在所述第一编码中选取两位作为数据屏蔽的标识位,其余位存储所述目标数据生成的所述第一错误纠正编码,将所述目标数据和所述第一编码写入存储阵列;读取所述目标数据和对应的所述第一编码,基于所述标识位处读取的标识码判断是否生成第二错误纠正编码,基于所述标识位处读取的所述标识码判断是否生成第二错误纠正编码的方法包括:若所述标识位处读取的两位所述标识码均为第一标识码,则对读取的所述目标数
据进行编码,生成所述第二错误纠正编码,对所述第一错误纠正编码和所述第二错误纠正编码进行比较,根据比较结果判断是否对所述目标数据进行修正,若所述标识位处读取的两位所述标识码中至少一位为第二标识码,则将读取的所述目标数据直接输出。
6.可选地,根据比较结果判断是否对所述目标数据进行修正的方法包括:若所述第一错误纠正编码和所述第二错误纠正编码相同,则将读取的所述目标数据直接输出;若所述第一错误纠正编码和所述第二错误纠正编码不同,则将所述比较结果输入解码器,根据所述解码器的输出对所述目标数据进行修正,输出修正后的所述目标数据。
7.可选地,所述目标数据为64比特数据,所述第一错误纠正编码和所述第二错误纠正编码为6比特海明码。
8.为实现上述目的,本技术还提供一种针对数据屏蔽的纠错装置,包括:存储器;以及与所述存储器连接的处理器,所述处理器被配置成:获取目标数据,基于所述目标数据,生成对应的第一编码,所述第一编码中包含有第一错误纠正编码;在所述第一编码中选取两位作为数据屏蔽的标识位,其余位存储所述目标数据生成的所述第一错误纠正编码,将所述目标数据和所述第一编码写入存储阵列;读取所述目标数据和对应的所述第一编码,基于所述标识位处读取的标识码判断是否生成第二错误纠正编码,基于所述标识位处读取的所述标识码判断是否生成第二错误纠正编码的方法包括:若所述标识位处读取的两位所述标识码均为第一标识码,则对读取的所述目标数据进行编码,生成所述第二错误纠正编码,对所述第一错误纠正编码和所述第二错误纠正编码进行比较,根据比较结果判断是否对所述目标数据进行修正,若所述标识位处读取的两位所述标识码中至少一位为第二标识码,则将读取的所述目标数据直接输出。
9.可选地,所述处理器还被配置成:根据比较结果判断是否对所述目标数据进行修正的方法包括:若所述第一错误纠正编码和所述第二错误纠正编码相同,则将读取的所述目标数据直接输出;若所述第一错误纠正编码和所述第二错误纠正编码不同,则将所述比较结果输入解码器,根据所述解码器的输出对所述目标数据进行修正,输出修正后的所述目标数据。
10.可选地,所述处理器还被配置成:所述目标数据为64比特数据,所述第一错误纠正编码和所述第二错误纠正编码为6比特海明码。
11.为实现上述目的,本技术还提供一种计算机存储介质,其上存储有计算机程序,其中所述计算机程序被机器执行时实现如上所述的方法的步骤。
12.本技术实施例具有如下优点:本技术实施例提供一种针对数据屏蔽的纠错方法,包括步骤:获取目标数据,基于所述目标数据,生成对应的第一编码,所述第一编码中包含有第一错误纠正编码;在所述第
一编码中选取两位作为数据屏蔽的标识位,其余位存储所述目标数据生成的所述第一错误纠正编码,将所述目标数据和所述第一编码写入存储阵列;读取所述目标数据和对应的所述第一编码,基于所述标识位处读取的标识码判断是否生成第二错误纠正编码,基于所述标识位处读取的所述标识码判断是否生成第二错误纠正编码的方法包括:若所述标识位处读取的两位所述标识码均为第一标识码,则对读取的所述目标数据进行编码,生成所述第二错误纠正编码,对所述第一错误纠正编码和所述第二错误纠正编码进行比较,根据比较结果判断是否对所述目标数据进行修正,若所述标识位处读取的两位所述标识码中至少一位为第二标识码,则将读取的所述目标数据直接输出。
13.通过上述方法,在错误纠正编码中设置数据屏蔽的标识位,区分普通的写和拥有数据屏蔽的写,解决了现有技术中对于普通的双倍速率同步动态随机存储器(dram)来说,无法区分读出的数据是普通写入还是拥有数据屏蔽的写入的问题,同时,当读取的两位所述标识码中只有一位为第二标识码时,由于有一位传输错误,则认为不需要进行编码和修正,可以节约时间。
附图说明
14.为了更清楚地说明本技术的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
15.图1为本技术实施例提供的一种针对数据屏蔽的纠错方法的流程图;图2为本技术实施例提供的一种针对数据屏蔽的纠错方法的标识位设置为第一标识码时的流程图;图3为本技术实施例提供的一种针对数据屏蔽的纠错方法的标识位设置为第二标识码时的流程图;图4为本技术实施例提供的一种针对数据屏蔽的纠错装置的模块框图。
具体实施方式
16.以下由特定的具体实施例说明本技术的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本技术的其他优点及功效,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
17.此外,下面所描述的本技术不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
18.本技术一实施例提供一种针对数据屏蔽的纠错方法,参考图1,图1为本技术的一实施方式中提供的一种针对数据屏蔽的纠错方法的流程图,应当理解的是,该方法还可以包括未示出的附加框和/或可以省略所示出的框,本技术的范围在此方面不受限制。
19.在步骤101处,获取目标数据,基于所述目标数据,生成对应的第一编码,所述第一编码中包含有第一错误纠正编码。
20.具体地,在目标数据写入时,除了需要存储的目标数据,同时写入第一编码。所述
第一编码中包含有第一错误纠正编码,错误纠正编码是存储数据按照一定的编码规则得到的。在一些实施例中,错误纠正编码为海明码,海明码是一种常用的错误纠正编码,其可用于发现并纠正一位目标数据的错误。
21.在步骤102处,在所述第一编码中选取两位作为数据屏蔽的标识位,其余位存储所述目标数据生成的所述第一错误纠正编码,将所述目标数据和所述第一编码写入存储阵列。
22.在一些实施例中,所述目标数据为64比特数据,所述第一错误纠正编码和所述第二错误纠正编码为6比特海明码。
23.具体地,在一些实施例中,以64比特目标数据加8比特第一编码为例,讲述区分普通写和带数据屏蔽(dm)写的方法,以及各自情况下写的过程。同时,只考虑最多1比特目标数据错误的情况,因为错误纠正编码只能用来纠正1比特目标数据的错误。对于64比特数据来说,8比特第一错误纠正码是有冗余的。在8比特第一编码中,选取2位作为数据屏蔽(dm)的标识位,剩余6比特为第一错误纠正编码。
24.在步骤103处,读取所述目标数据和对应的所述第一编码,基于所述标识位处读取的标识码判断是否生成第二错误纠正编码,基于所述标识位处读取的所述标识码判断是否生成第二错误纠正编码的方法包括:若所述标识位处读取的两位所述标识码均为第一标识码,则对读取的所述目标数据进行编码,生成所述第二错误纠正编码,对所述第一错误纠正编码和所述第二错误纠正编码进行比较,根据比较结果判断是否对所述目标数据进行修正,若所述标识位处读取的两位所述标识码中至少一位为第二标识码,则将读取的所述目标数据直接输出。
25.在一些实施例中,根据比较结果判断是否对所述目标数据进行修正的方法包括:若所述第一错误纠正编码和所述第二错误纠正编码相同,则将读取的所述目标数据直接输出;若所述第一错误纠正编码和所述第二错误纠正编码不同,则将所述比较结果输入解码器,根据所述解码器的输出对所述目标数据进行修正,输出修正后的所述目标数据。
26.具体地,标识位的设定规则如下:参考图2,如写入过程是正常的写过程,没有目标数据被屏蔽,则标识位设置为00(第一标识码),读取时,若读取的标识位为00,表示数据写入过程中没有存在数据屏蔽,读取时正常进行编码生成第二错误纠正编码,进行比较和修正。可以纠正1比特目标数据的错误。
27.进行比较和修正的方法包括:将新码(第二错误纠正编码)和读出的纠错码(第一错误纠正编码)就行比较,如果两者相同,则说明没有目标数据错误。如果不同,说明有目标数据错误,则比较结果会经过解码器,根据解码器的输出对目标数据进行修正,从而得到正确的目标数据。
28.参考图3,如写入过程是带有数据屏蔽的,则标识位设置为11(第二标识码),读取时,若读取的标识位为11,表示数据写入过程中存在数据屏蔽,目标数据直接读出,不进行编码和纠错的过程;若读取的标识位为01或者10的时候,两位标识位必然存在一位发生错误。因为假设只有1比特存储的内容会发生错误,因此认为数据没有错误,数据直接读出。
29.通过上述方法,在错误纠正编码中设置数据屏蔽的标识位,区分普通的写和拥有数据屏蔽的写,解决了现有技术中对于普通的双倍速率同步动态随机存储器(dram)来说,无法区分读出的数据是普通写入还是拥有数据屏蔽的写入,同时,当读取的两位所述标识码中只有一位为第二标识码时,由于有一位传输错误,则认为不需要进行编码和修正,可以节约时间。
30.图4为本技术实施例提供的一种针对数据屏蔽的纠错装置的模块框图。该装置包括:存储器201;以及与所述存储器201连接的处理器202,所述处理器202被配置成:获取目标数据,基于所述目标数据,生成对应的第一编码,所述第一编码中包含有第一错误纠正编码;在所述第一编码中选取两位作为数据屏蔽的标识位,其余位存储所述目标数据生成的所述第一错误纠正编码,将所述目标数据和所述第一编码写入存储阵列;读取所述目标数据和对应的所述第一编码,基于所述标识位处读取的标识码判断是否生成第二错误纠正编码,基于所述标识位处读取的所述标识码判断是否生成第二错误纠正编码的方法包括:若所述标识位处读取的两位所述标识码均为第一标识码,则对读取的所述目标数据进行编码,生成所述第二错误纠正编码,对所述第一错误纠正编码和所述第二错误纠正编码进行比较,根据比较结果判断是否对所述目标数据进行修正,若所述标识位处读取的两位所述标识码中至少一位为第二标识码,则将读取的所述目标数据直接输出。
31.在一些实施例中,所述处理器202还被配置成:根据比较结果判断是否对所述目标数据进行修正的方法包括:若所述第一错误纠正编码和所述第二错误纠正编码相同,则将读取的所述目标数据直接输出;若所述第一错误纠正编码和所述第二错误纠正编码不同,则将所述比较结果输入解码器,根据所述解码器的输出对所述目标数据进行修正,输出修正后的所述目标数据。
32.在一些实施例中,所述处理器202还被配置成:所述目标数据为64比特数据,所述第一错误纠正编码和所述第二错误纠正编码为6比特海明码。
33.具体实现方法参考前述方法实施例,此处不再赘述。
34.本技术可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本技术的各个方面的计算机可读程序指令。
35.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通
过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
36.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
37.用于执行本技术操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本技术的各个方面。
38.这里参照根据本技术实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本技术的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
39.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
40.也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
41.附图中的流程图和框图显示了根据本技术的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执
行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
42.注意,除非另有直接说明,否则本说明书(包含任何所附权利要求、摘要和附图)中所揭示的所有特征皆可由用于达到相同、等效或类似目的的可替代特征来替换。因此,除非另有明确说明,否则所公开的每一个特征仅是一组等效或类似特征的一个示例。在使用到的情况下,进一步地、较优地、更进一步地和更优地是在前述实施例基础上进行另一实施例阐述的简单起头,该进一步地、较优地、更进一步地或更优地后带的内容与前述实施例的结合作为另一实施例的完整构成。在同一实施例后带的若干个进一步地、较优地、更进一步地或更优地设置之间可任意组合的组成又一实施例。
43.虽然,上文中已经用一般性说明及具体实施例对本技术作了详尽的描述,但在本技术基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本技术精神的基础上所做的这些修改或改进,均属于本技术要求保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1