CN110968450A - 数据存储方法及装置、存储介质、电子设备 - Google Patents

数据存储方法及装置、存储介质、电子设备 Download PDF

Info

Publication number
CN110968450A
CN110968450A CN201811156165.2A CN201811156165A CN110968450A CN 110968450 A CN110968450 A CN 110968450A CN 201811156165 A CN201811156165 A CN 201811156165A CN 110968450 A CN110968450 A CN 110968450A
Authority
CN
China
Prior art keywords
check
chips
code
storage
interfaces
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811156165.2A
Other languages
English (en)
Inventor
林家圣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changxin Memory Technologies Inc
Original Assignee
Changxin Memory Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changxin Memory Technologies Inc filed Critical Changxin Memory Technologies Inc
Priority to CN201811156165.2A priority Critical patent/CN110968450A/zh
Publication of CN110968450A publication Critical patent/CN110968450A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开涉及计算机技术领域,尤其涉及一种数据存储方法及装置、存储介质、电子设备。所述方法包括:根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量;将各所述校验码分别划分为多个子校验码,其中,各所述校验码的所述多个子校验码的数量均与所述存储芯片的数量相同;通过各所述存储芯片上的所述接口并采用将一所述校验码的各所述子校验码分别存储在不同的所述存储芯片中的方式将各所述校验码的各所述子校验码分别存储至不同的所述存储芯片中。本公开提高了数据存储的可靠性,且存储步骤简单,易于执行。

Description

数据存储方法及装置、存储介质、电子设备
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据存储方法及装置、存储介质、电子设备。
背景技术
高带宽存储器(High Bandwidth Memory,HBM)是超微半导体和SK Hynix发起的一种基于3D堆栈工艺的高性能DRAM(Dynamic Random Access Memory,即动态随机存取存储器)。高带宽存储器中包括多个DRAM,其中DRAM的数量和规格根据具体的情况进行设置。
在向高带宽存储器中的DRAM中存储待存储数据时,首先结合校验方式例如SEC-DED海明码校验方式或者DEC-TED-BCH码校验方式等对待存储数据进行编码之后得到多个校验码,然后将各校验码存储至高带宽存储器中的DRAM中。
然而,由于根据不同的校验方式得到的校验码所能纠正的出现错误的比特数是有限的,例如,采用SEC-DED海明码校验方式得到的校验码最多只能纠正校验码中的一个比特的错误,采用DEC-TED-BCH码校验方式得到的校验码可以纠正校验码中的两个比特的错误。基于此,在上述高带宽存储器的数据存储方式中,在高带宽存储器中的一个DRAM中存在多个错误时,会出现多个错误均对应到一个校验码中的情况,在此情况下,若校验码中出现错误的比特数大于校验码本身能够纠正的比特数时,就无法对该校验码进行纠正,进而降低了待存储数据的纠错率,降低了待存储数据存储的可靠性。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种数据存储方法及装置、存储介质、电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
根据本公开的一个方面,提供一种数据存储方法,包括:
根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量;
将各所述校验码分别划分为多个子校验码,其中,各所述校验码的所述多个子校验码的数量均与所述存储芯片的数量相同;
通过各所述存储芯片上的所述接口并采用将一所述校验码的各所述子校验码分别存储在不同的所述存储芯片中的方式将各所述校验码的各所述子校验码分别存储至不同的所述存储芯片中。
在本公开的一种示例性实施例中,所述根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量包括:
获取所述待存储数据的比特数,并确定所述校验方式;
根据所述待存储数据的比特数并结合所述校验方式确定所述校验码的数量和各所述校验码的比特数;
根据所述校验码的数量和各所述校验码的比特数计算所述存储芯片的数量、各所述存储芯片上的接口的数量。
在本公开的一种示例性实施例中,所述根据所述校验码的数量和各所述校验码的比特数计算所述存储芯片的数量、各所述存储芯片上的接口的数量包括:
根据所述校验码的数量和各所述校验码中的数据码的比特数确定所述存储芯片中数据存储芯片的数量和各所述存储芯片上的接口的数量;
根据所述校验码的数量和所述校验码中的冗余码的比特数以及所述存储芯片上的接口的数量确定所述存储芯片中的冗余码存储芯片的数量;
根据所述冗余码存储芯片的数量和所述数据存储芯片的数量计算所述存储芯片的数量。
在本公开的一种示例性实施例中,所述校验方式为SEC-DED海明码校验方式或者DEC-TED-BCH码校验方式或者3EC-4ED-BCH码校验方式或者4EC-5ED-BCH码校验方式或者5EC-6ED-BCH码校验方式或者9EC-10ED-BCH码校验方式。
在本公开的一种示例性实施例中,所述待存储数据的比特数为1024;
若所述校验方式为SEC-DED海明码校验方式,则所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为128,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512;
若所述校验方式为DEC-TED-BCH码校验方式,则所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为128,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512;
若所述校验方式为3EC-4ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512;
若所述校验方式为4EC-5ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512。
在本公开的一种示例性实施例中,所述待存储数据的比特数为2048;
若所述校验方式为SEC-DED海明码校验方式,则所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;
若所述校验方式为DEC-TED-BCH码校验方式,则所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;
若所述校验方式为3EC-4ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;
若所述校验方式为4EC-5ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;
若所述校验方式为5EC-6ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;
若所述校验方式为9EC-10ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024。
在本公开的一种示例性实施例中,所述待存储数据的比特数为4096;
若所述校验方式为SEC-DED海明码校验方式,则所述数据存储芯片的数量为16,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048;
若所述校验方式为DEC-TED-BCH码校验方式,则所述数据存储芯片的数量为16,所述冗余码存储芯片的数量为4,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为512,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048;
若所述校验方式为3EC-4ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048;
若所述校验方式为4EC-5ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048;
若所述校验方式为5EC-6ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048;
若所述校验方式为9EC-10ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048。
根据本公开的一个方面,提供一种数据存储装置,包括:
确定模块,用于根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量;
划分模块,用于将各所述校验码分别划分为多个子校验码,其中,各所述校验码的所述多个子校验码的数量均与所述存储芯片的数量相同;
存储模块,用于通过各所述存储芯片上的所述接口并采用将一所述校验码的各所述子校验码分别存储在不同的所述存储芯片中的方式将各所述校验码的各所述子校验码分别存储至不同的所述存储芯片中。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述中任意一项所述的数据存储方法。
根据本公开的一个方面,提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述中任意一项所述的数据存储方法。
本公开一种示例实施例提供的数据存储方法及装置、存储介质、电子设备。根据待存储数据的比特数和校验方式确定校验码的数量、各校验码的比特数、存储芯片的数量和各存储芯片上的接口的数量,并将各校验码分别划分为多个子校验码,其中,各校验码的多个子校验码的数量均与存储芯片的数量相同;通过各存储芯片上的接口并采用将一校验码的各子校验码分别存储在不同的存储芯片中的方式将各校验码的各子校验码分别存储至不同的存储芯片中。一方面,通过将各校验码划分为多个子校验码,并通过各存储芯片上的接口将每个校验码的各子校验码分别存储至不同的存储芯片中,使得一个存储芯片仅存储每个校验码中的一个子校验码,即将每个校验码的各子校验码分散式存储在各存储芯片上,而不是将每个校验码直接存储在一个存储芯片上,这样使得在一个存储芯片中的多个接口中存储的数据发生错误时,降低了将多个错误对应到同一个校验码上的概率,进而提高了存储错误的数据被纠正的概率以及待存储数据的纠错率,从而提高了数据存储的可靠性;另一方面,仅将各校验码划分为多个子校验码,并采用分散式的存储方式实现数据的存储,存储步骤简单,易于执行。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
通过参照附图来详细描述其示例性实施例,本公开的上述和其它特征及优点将变得更加明显。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本公开一种数据存储方法的流程图;
图2为本公开一示例性实施例中提供的确定校验码的数量、各校验码的比特数、存储芯片的数量和各存储芯片上的接口的数量的流程图;
图3为本公开一示例性实施例中提供的计算存储芯片的数量、各存储芯片上的接口的数量的流程图;
图4为本公开一示例性实施例中提供的将各校验码的各子校验码分别存储至不同的存储芯片中的示意图一;
图5为本公开一示例性实施例中提供的将各校验码的各子校验码分别存储至不同的存储芯片中的示意图二;
图6为本公开一种数据存储装置的框图;
图7为本公开一示例性实施例中的电子设备的模块示意图;
图8为本公开一示例性实施例中的程序产品示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、组元、材料、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现、材料或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个软件硬化的模块中实现这些功能实体或功能实体的一部分,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例性实施例中首先公开了一种数据存储方法,参照图1所示,所述数据存储方法可以包括以下步骤:
步骤S110、根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量;
步骤S120、将各所述校验码分别划分为多个子校验码,其中,各所述校验码的所述多个子校验码的数量均与所述存储芯片的数量相同;
步骤S130、通过各所述存储芯片上的所述接口并采用将一所述校验码的各所述子校验码分别存储在不同的所述存储芯片中的方式将各所述校验码的各所述子校验码分别存储至不同的所述存储芯片中。
根据本示例性实施例中的数据存储方法,一方面,通过将各校验码划分为多个子校验码,并通过各存储芯片上的接口将每个校验码的各子校验码分别存储至不同的存储芯片中,使得一个存储芯片仅存储每个校验码中的一个子校验码,即将每个校验码的各子校验码分散式存储在各存储芯片上,而不是将每个校验码直接存储在一个存储芯片上,这样使得在一个存储芯片中的多个接口中存储的数据发生错误时,降低了将多个错误对应到同一个校验码上的概率,进而提高了存储错误的数据被纠正的概率以及待存储数据的纠错率,从而提高了数据存储的可靠性;另一方面,仅将各校验码划分为多个子校验码,并采用分散式的存储方式实现数据的存储,存储步骤简单,易于执行。
下面,将参照图1,对本示例性实施例中的数据存储方法作进一步说明。
步骤S110、根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量。
在本示例性实施例中,如图2所示,所述根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量可以包括:
步骤S210,获取所述待存储数据的比特数,并确定所述校验方式。
在本示例性实施例中,可以通过一获取模块获取待存储数据的比特数,即获取待存储数据,并统计待存储数据中的比特位的数量得到待存储数据的比特数。所述待存储数据可以为二进制的数据,即待存储数据由0和\或1组成。所述待存储数据的比特数例如可以为1024或者2048或者4096等,本示例性实施例对此不作特殊限定。所述校验方式可以为SEC-DED海明码校验方式或者DEC-TED-BCH码校验方式或者3EC-4ED-BCH码校验方式或4EC-5ED-BCH码校验方式或5EC-6ED-BCH码校验方式或者9EC-10ED-BCH码校验方式等,本示例性实施例对此不走特殊限定。需要说明的是,SEC-DED海明码校验方式可以纠正一个比特数的错误,DEC-TED-BCH码校验方式可以纠正两个比特数的错误,3EC-4ED-BCH码校验方式可以纠正三个比特数的错误、4EC-5ED-BCH码校验方式可以纠正四个比特数的错误、5EC-6ED-BCH码校验方式可以纠正五个比特数的错误、9EC-10ED-BCH码校验方式可以纠正九个比特数的错误。
步骤S220,根据所述待存储数据的比特数并结合所述校验方式确定所述校验码的数量和各所述校验码的比特数。
在本示例性实施例中,首先可以根据校验方式确定一预设比特数;然后,以该预设比特数为单元将待存储数据划分为多个子待存储数据,其中,每个子待存储数据的比特数即为预设比特数;再然后,根据校验方式对各子待存储数据进行编码,得到各子待存储数据的校验码,即在各子待存储数据中增加验证码和纠错码即可得到各子待存储数据的校验码,统计校验码的数量并分别统计各校验码的比特数,以得到校验码的数量的各校验码的比特数。需要说明的是,校验码的数量与子待存储数据的数量相同。各校验码中均包括数据码和冗余码,其中数据码指与校验码对应的子待存储数据,所述冗余码包括增加至校验码对应的子存储数据中的验证码和纠错码。所述根据校验方式确定预设比特数的方式包括根据校验方法获取可选的预设比特数,然后根据待存储数据的比特数并结合校验经验在可选的预设比特数中选择一个合适的预设比特数。
下面,举例对上述过程进行说明。若待存储数据的比特数为1024,校验方式为SEC-DED海明码校验方式,则在将预设比特数确定为64时,可以将待存储数据划分为16个子待存储数据,且每个子待存储数据的比特数均为64。根据SEC-DED海明码校验方式对各子待存储数据进行编码得到各子待存储数据的校验码,具体的,由于每个子待存储数据的比特数为64,根据SEC-DED海明码校验方式可知,需要在各子待存储数据中增加1个比特的验证码和7个比特的纠错码,即最终生成的各子待存储数据的校验码的比特数均为72,且各子待存储数据的校验码中包括64个比特的数据码和8个比特的冗余码。由于子待存储数据的数量为16个,因此校验码的数量也为16个。
若待存储数据的比特数为1024,校验方式为DEC-TED-BCH码校验方式,则在将预设比特数确定为64时,可以将待存储数据划分为16个子待存储数据,且每个待存储数据的比特数均为64。根据DEC-TED-BCH码校验方式对各子待存储数据进行编码得到各子待存储数据的校验码,具体的,由于每个子待存储数据的比特数均为64,根据DEC-TED-BCH码校验方式可知,需要在各子待存储数据中增加1个比特的验证码和14个比特的纠错码,即生成的各子待存储数据的校验码的比特数均为79,且各子待存储数据的校验码中包括64个比特的数据码和15个比特的冗余码。由于子待存储数据的数量为16个,因此校验码的数量也为16个。
步骤S230,根据所述校验码的数量和各所述校验码的比特数计算所述存储芯片的数量、各所述存储芯片上的接口的数量。
在本示例性实施例中,如图3所示,可以根据以下3个步骤计算存储芯片的数量、各存储芯片上的接口的数量。
步骤S310、根据所述校验码的数量和各所述校验码中的数据码的比特数确定所述存储芯片中数据存储芯片的数量和各所述存储芯片上的接口的数量。
在本示例性实施例中,由于校验码的数量和各校验码中的数据码的比特数、存储芯片中的数据存储芯片的数量以及各存储芯片上的接口数量满足以下公式:
ECC_word_number=DQ_number*data_chip_Number/X
其中,ECC_word_number为校验码的数量,DQ_number为各存储芯片上的接口数量、data_chip_Number为数据存储芯片的数量、X为各校验码中的数据码的比特数。
例如,在各校验码中的数据码的比特数为64,即X为64时,上述公式可以变化为:
ECC_word_number=DQ_number*data_chip_Number/64。
例如,在ECC_word_number为16时,DQ_number*data_chip_Number为1024,基于此,在data_chip_Number为4时,DQ_number为256,即各存储芯片上的接口数量均为256;在data_chip_Number为8时,DQ_number为128,即各存储芯片上的接口数量均为128;在data_chip_Number为2时,DQ_number为512,即各存储芯片上的接口数量均为512。
步骤S320、根据所述校验码的数量和所述校验码中的冗余码的比特数以及所述存储芯片上的接口的数量确定所述存储芯片中的冗余码存储芯片的数量。
在本示例性实施例中,校验码的数量、校验码中的冗余码的比特数、存储芯片上的接口的数量以及存储芯片中的冗余码存储芯片的数量符合以下公式。
ECC_word_numbe*ECC_redundant_bit<=DQ_number*ECC_chip_number;
其中,ECC_word_number为校验码的数量、ECC_redundant_bit为校验码中的冗余码的比特数、DQ_number为各存储芯片上的接口数量、ECC_chip_number为冗余码存储芯片的数量。
由上可知,ECC_chip_number的取值只要符合上述公式,则该取值均为正确,但是为了减少冗余码存储芯片的数量,使得其的利用率达到最大,进而降低封装难度,一般ECC_chip_number取符合上述公式的最小值。
例如,在ECC_word_number为16,DQ_number为256,即各存储芯片上的接口数量均为256,ECC_redundant_bit为8时,ECC_chip_number为1;在ECC_word_number为16,DQ_number为256,即各存储芯片上的接口数量均为256,ECC_redundant_bit为15时,ECC_chip_number为1。
需要说明的是,上述数据存储芯片上的接口数量与冗余码存储芯片上的接口数量均相同,都为上述存储芯片上的接口数量。所述数据存储芯片和校验码存储芯片上均可以存储数据码和/或冗余码。所述存储芯片、数据存储芯片、冗余码存储芯片均例如可以为DRAM或者ROM等,本示例性实施例对此不作特殊限定。
步骤S330、根据所述冗余码存储芯片的数量和所述数据存储芯片的数量计算所述存储芯片的数量。
在本示例性实施例中,可以将冗余码存储芯片的数量和数据存储芯片的数量求和之后得到的数据即为存储芯片的数量。例如,在待存储数据的比特数为1024、各校验码中的数据码的比特数字为64、ECC_word_number为16,data_chip_Number为4,DQ_number为256,即各存储芯片上的接口数量均为256、ECC_redundant_bit为8、ECC_chip_number为1时,存储芯片的数量为5。再例如,在待存储数据的比特数为1024、各校验码中的数据码的比特数字为64、ECC_word_number为16,data_chip_Number为4,DQ_number为256,即各存储芯片上的接口数量均为256、ECC_redundant_bit为15、ECC_chip_number为1时,存储芯片的数量为5。
需要说明的是,上述过程仅为示例性的,并不用于限定本发明,例如,由于存储芯片用于存储各校验码,因此,可根据校验码的数量、各校验码的比特数算出存储所有校验码总共需要的接口数,然后可以根据总共需要的接口数,并结合工作经验确定存储芯片的数量以及各存储芯片上的接口的数量。
下面,对根据待存储数据的比特数的不同,以及校验方式的不同并结合上述图3中的步骤计算出的数据存储芯片的数量、冗余码存储芯片的数量以及各存储芯片上的接口的数量进行说明。
在待存储数据的比特数为1024,校验方式为SEC-DED海明码校验方式,且各校验码中的数据码的比特数均为64时,有三种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量。第一种,所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为128;第二种,所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为256;第三种,所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512。
在待存储数据的比特数为1024,校验方式为DEC-TED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有三种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量。第一种,所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为128;第二种,所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为256;第三种,所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512。
在待存储数据的比特数为1024,校验方式为3EC-4ED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有一种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量,即所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512。
在待存储数据的比特数为1024,校验方式为4EC-5ED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有一种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量,即所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512。
在所述待存储数据的比特数为2048,校验方式为SEC-DED海明码校验方式,且各校验码中的数据码的比特数均为64时,有三种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量。第一种,所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为256;第二种,所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512,第三种,所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024。
在所述待存储数据的比特数为2048,校验方式为DEC-TED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有三种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量。第一种,所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为256;第二种,所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512;第三种,所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024。
在所述待存储数据的比特数为2048,校验方式为3EC-4ED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有一种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量,即所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024。
在所述待存储数据的比特数为2048,校验方式为4EC-5ED-BCH码校验方式,且各校验码中的数据码的比特数均为64,有一种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量,即所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024。
在所述待存储数据的比特数为2048,校验方式为5EC-6ED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有一种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量,即所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024。
在所述待存储数据的比特数为2048,校验方式为9EC-10ED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有一种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量,即所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024。
在所述待存储数据的比特数为4096,校验方式为SEC-DED海明码校验方式,且各校验码中的数据码的比特数均为64,有四种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量。第一种,所述数据存储芯片的数量为16,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为256;第二种,所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512;第三种,所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;第四种,所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048。
在所述待存储数据的比特数为4096,校验方式为DEC-TED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有四种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量。第一种,所述数据存储芯片的数量为16,所述冗余码存储芯片的数量为4,各所述存储芯片上的接口的数量均为256;第二种,所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为512;第三种,所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;第四种,所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048。
在所述待存储数据的比特数为4096,校验方式为3EC-4ED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有一种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量,即所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048。
在所述待存储数据的比特数为4096,校验方式为4EC-5ED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有一种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量,即所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048。
在所述待存储数据的比特数为4096,校验方式为5EC-6ED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有一种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量,即所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048。
在所述待存储数据的比特数为4096,校验方式为9EC-10ED-BCH码校验方式,且各校验码中的数据码的比特数均为64时,有一种可选的数据存储芯片和冗余码存储芯片的数量以及存储芯片上的接口的数量,即所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048。
在步骤S120、将各所述校验码分别划分为多个子校验码,其中,各所述校验码的所述多个子校验码的数量均与所述存储芯片的数量相同。
在本示例性实施例中,根据存储芯片的数量分别将各校验码均划分为多个子校验码。具体的,将一个校验码划分为多个子校验码的过程可以为:首先,获取一个校验码的比特数,并用该校验码的比特数除以存储芯片的数量,以得到各子校验码中的比特数,需要说明的是,若在该校验码的比特数无法整除存储芯片的数量时,可以首先将获取到的为整数的商确定为各子校验码的比特数,然后,将余数添加在任意的校验码中。例如,在校验码的比特数为72,存储芯片的数量为5时,用72除以5可得14余2,即将校验码划分为5个子校验码,即第一子校验码至第五子校验码,其中,第一子校验码和第二子校验码的比特数均为15,第三子校验码至第五子校验码的比特数均为14。再例如,在校验码的比特数为79,存储芯片的数量为5时,用79除以5可得15余4,即将校验码划分为5个子校验码,即第一子校验码至第五子校验码,其中,第一子校验码至第四子校验码的比特数均为16,第五子校验码的比特数为15。需要说明的是,上述过程仅对将一个校验码划分为多个子校验码的过程进行了说明,由于将各校验码划分为多个子校验码的过程相同,因此此处不再赘述。
在步骤S130中,通过各所述存储芯片上的所述接口并采用将一所述校验码的各所述子校验码分别存储在不同的所述存储芯片中的方式将各所述校验码的各所述子校验码分别存储至不同的所述存储芯片中。
在本示例性实施例中,在得到各校验码的多个子校验码时,首先将第一个校验码的多个子校验码分散存储至不同存储芯片中,然后,按照第一个校验码中的多个子校验码的存储方式将剩余的校验码的多个子校验码存储至不同的存储芯片中。
例如,如图4所示,若待存储数据的比特数为1024,校验方式为SEC-DED海明码校验方式,校验码的数量为16,分别为第一校验码至第十六校验码,各校验码的比特数为72,存储芯片的数量为5,分别为第一存储芯片至第五存储芯片,每个芯片上均包括256个接口(即DQ1~DQ256),各校验码均包括5个子校验码,分别为第一子校验码至第五子校验码,其中,每个校验码中的第一子校验码至第二子校验码的比特数均为15,每个校验码中的第三子校验码至第五子校验码的比特数均为14。具体的存储方式为:将第一校验码中的第一子校验码存储在第一存储芯片的上的第一接口至第十五接口(即DQ1~DQ15)中,第一校验码中的第二子校验码存储在第二存储芯片的上的第一接口至第十五接口(即DQ1~DQ15)上,第一校验码中的第三子校验码存储在第三存储芯片的上的第一接口至第十四接口(即DQ1~DQ14)上,第一校验码中的第四子校验码存储在第四存储芯片的上的第一接口至第十四接口上(即DQ1~DQ14),第一校验码中的第五子校验码存储在第五存储芯片的上的第一接口至第十四接口(即DQ1~DQ14)上;将第二校验码中的第一子校验码存储在第一存储芯片的上的第十六接口至第三十接口(即DQ16~DQ30)中,第二校验码中的第二子校验码存储在第二存储芯片的上的第十六接口至第三十接口(即DQ16~DQ30)上,第二校验码中的第三子校验码存储在第三存储芯片的上的第十五接口至第二十八接口(即DQ15~DQ28)上,第二校验码中的第四子校验码存储在第四存储芯片的上的第十五接口至第二十八接口(即DQ15~DQ28)上,第二校验码中的第五子校验码存储在第五存储芯片的上的第十五接口至第二十八接口(即DQ15~DQ28)上;同理,将第三校验码中的各子校验码至第十六校验码中的各子校验码存储在不同的存储芯片中。需要说明的是,在存储完成后,五个存储芯片总共还剩下128个接口,其中,第一存储芯片和第二存储芯片均剩余了16个接口,第三存储芯片至第五存储芯片均剩余了32个接口。需要说明的是,一个接口存储一个比特的数据。
再例如,如图5所示,若待存储数据的比特数为1024,校验方式为DEC-TED-BCH码校验方式,校验码的数量为16,分别为第一校验码至第十六校验码,各校验码的比特数为79,存储芯片的数量为5,分别为第一存储芯片至第五存储芯片,每个芯片上均包括256个接口(即DQ1~DQ256),各校验码均包括5个子校验码,分别为第一子校验码至第五子校验码,其中,每个校验码中的第一子校验码至第四子校验码的比特数均为16,每个校验码中的第五子校验码的比特数均为15。具体的存储方式为:将第一校验码中的第一子校验码存储在第一存储芯片的上的第一接口至第十六接口(即DQ1~DQ16)中,第一校验码中的第二子校验码存储在第二存储芯片的上的第一接口至第十六接口(即DQ1~DQ16)上,第一校验码中的第三子校验码存储在第三存储芯片的上的第一接口至第十六接口(即DQ1~DQ16)上,第一校验码中的第四子校验码存储在第四存储芯片的上的第一接口至第十六接口(即DQ1~DQ16)上,第一校验码中的第五子校验码存储在第五存储芯片的上的第一接口至第十五接口(即DQ1~DQ15)上;将第二校验码中的第一子校验码存储在第一存储芯片的上的第十七接口至第三十二接口(即DQ17~DQ32)中,第二校验码中的第二子校验码存储在第二存储芯片的上的第十七接口至第三十二接口(即DQ17~DQ32)上,第二校验码中的第三子校验码存储在第三存储芯片的上的第十七接口至第三十二接口(即DQ17~DQ32)上,第二校验码中的第四子校验码存储在第四存储芯片的上的第十七接口至第三十二接口(即DQ17~DQ32)上,第二校验码中的第五子校验码存储在第五存储芯片的上的第十六接口至第三十接口(即DQ16~DQ30)上;同理,将第三校验码中的各子校验码至第十六校验码中的各子校验码存储在不同的存储芯片中。需要说明的是,在存储完成后,五个存储芯片总共还剩下16个接口,其中,第一存储芯片至第四存储芯片均没有剩余的接口,第五存储芯片剩余了16个接口。需要说明的是,一个接口存储一个比特的数据。
综上所述,通过将各校验码划分为多个子校验码,并通过各存储芯片上的接口将每个校验码的各子校验码分别存储至不同的存储芯片中,使得一个存储芯片仅存储每个校验码中的一个子校验码,即将每个校验码的各子校验码分散式存储在各存储芯片上,而不是将每个校验码直接存储在一个存储芯片上,这样使得在一个存储芯片中的多个接口中存储的数据发生错误时,降低了将多个错误对应到同一个校验码上的概率,进而提高了存储错误的数据被纠正的概率以及待存储数据的纠错率,从而提高了数据存储的可靠性;此外,仅将各校验码划分为多个子校验码,并采用分散式的存储方式实现数据的存储,存储步骤简单,易于执行。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
在本公开的示例性实施例中,还提供了一种数据存储装置,如图6所示,所述数据存储装置可600可以包括:确定模块601、划分模块602、存储模块603,其中:
确定模块601,可以用于根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量;
划分模块602,可以用于将各所述校验码分别划分为多个子校验码,其中,各所述校验码的所述多个子校验码的数量均与所述存储芯片的数量相同;
存储模块603,可以用于通过各所述存储芯片上的所述接口并采用将一所述校验码的各所述子校验码分别存储在不同的所述存储芯片中的方式将各所述校验码的各所述子校验码分别存储至不同的所述存储芯片中。
上述中各数据存储装置模块的具体细节已经在对应的数据存储方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图7来描述根据本发明的这种实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:上述至少一个处理单元710、上述至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730、显示单元740。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元710执行,使得所述处理单元710执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元710可以执行如图1中所示的步骤S110、根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量;步骤S120、将各所述校验码分别划分为多个子校验码,其中,各所述校验码的所述多个子校验码的数量均与所述存储芯片的数量相同;步骤S130、通过各所述存储芯片上的所述接口并采用将一所述校验码的各所述子校验码分别存储在不同的所述存储芯片中的方式将各所述校验码的各所述子校验码分别存储至不同的所述存储芯片中。
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)7201和/或高速缓存存储单元7202,还可以进一步包括只读存储单元(ROM)7203。
存储单元720还可以包括具有一组(至少一个)程序模块7205的程序/实用工具7204,这样的程序模块7205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备770(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图8所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (10)

1.一种数据存储方法,其特征在于,包括:
根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量;
将各所述校验码分别划分为多个子校验码,其中,各所述校验码的所述多个子校验码的数量均与所述存储芯片的数量相同;
通过各所述存储芯片上的所述接口并采用将一所述校验码的各所述子校验码分别存储在不同的所述存储芯片中的方式将各所述校验码的各所述子校验码分别存储至不同的所述存储芯片中。
2.根据权利要求1所述的数据存储方法,其特征在于,所述根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量包括:
获取所述待存储数据的比特数,并确定所述校验方式;
根据所述待存储数据的比特数并结合所述校验方式确定所述校验码的数量和各所述校验码的比特数;
根据所述校验码的数量和各所述校验码的比特数计算所述存储芯片的数量、各所述存储芯片上的接口的数量。
3.根据权利要求2所述的数据存储方法,其特征在于,所述根据所述校验码的数量和各所述校验码的比特数计算所述存储芯片的数量、各所述存储芯片上的接口的数量包括:
根据所述校验码的数量和各所述校验码中的数据码的比特数确定所述存储芯片中数据存储芯片的数量和各所述存储芯片上的接口的数量;
根据所述校验码的数量和所述校验码中的冗余码的比特数以及所述存储芯片上的接口的数量确定所述存储芯片中的冗余码存储芯片的数量;
根据所述冗余码存储芯片的数量和所述数据存储芯片的数量计算所述存储芯片的数量。
4.根据权利要求1~3中任一项所述的数据存储方法,其特征在于,所述校验方式为SEC-DED海明码校验方式或者DEC-TED-BCH码校验方式或者3EC-4ED-BCH码校验方式或者4EC-5ED-BCH码校验方式或者5EC-6ED-BCH码校验方式或者9EC-10ED-BCH码校验方式。
5.根据权利要求3所述的数据存储方法,其特征在于,所述待存储数据的比特数为1024;
若所述校验方式为SEC-DED海明码校验方式,则所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为128,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512;
若所述校验方式为DEC-TED-BCH码校验方式,则所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为128,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512;
若所述校验方式为3EC-4ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512;
若所述校验方式为4EC-5ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512。
6.根据权利要求3所述的数据存储方法,其特征在于,所述待存储数据的比特数为2048;
若所述校验方式为SEC-DED海明码校验方式,则所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;
若所述校验方式为DEC-TED-BCH码校验方式,则所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;
若所述校验方式为3EC-4ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;
若所述校验方式为4EC-5ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;
若所述校验方式为5EC-6ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024;
若所述校验方式为9EC-10ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024。
7.根据权利要求3所述的数据存储方法,其特征在于,所述待存储数据的比特数为4096;
若所述校验方式为SEC-DED海明码校验方式,则所述数据存储芯片的数量为16,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为512,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048;
若所述校验方式为DEC-TED-BCH码校验方式,则所述数据存储芯片的数量为16,所述冗余码存储芯片的数量为4,各所述存储芯片上的接口的数量均为256,或者所述数据存储芯片的数量为8,所述冗余码存储芯片的数量为2,各所述存储芯片上的接口的数量均为512,或者所述数据存储芯片的数量为4,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为1024,或者所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048;
若所述校验方式为3EC-4ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048;
若所述校验方式为4EC-5ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048;
若所述校验方式为5EC-6ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048;
若所述校验方式为9EC-10ED-BCH码校验方式,则所述数据存储芯片的数量为2,所述冗余码存储芯片的数量为1,各所述存储芯片上的接口的数量均为2048。
8.一种数据存储装置,其特征在于,包括:
确定模块,用于根据待存储数据的比特数和校验方式确定校验码的数量、各所述校验码的比特数、存储芯片的数量和各所述存储芯片上的接口的数量;
划分模块,用于将各所述校验码分别划分为多个子校验码,其中,各所述校验码的所述多个子校验码的数量均与所述存储芯片的数量相同;
存储模块,用于通过各所述存储芯片上的所述接口并采用将一所述校验码的各所述子校验码分别存储在不同的所述存储芯片中的方式将各所述校验码的各所述子校验码分别存储至不同的所述存储芯片中。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~7中任意一项所述的数据存储方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~7中任意一项所述的数据存储方法。
CN201811156165.2A 2018-09-30 2018-09-30 数据存储方法及装置、存储介质、电子设备 Pending CN110968450A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811156165.2A CN110968450A (zh) 2018-09-30 2018-09-30 数据存储方法及装置、存储介质、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811156165.2A CN110968450A (zh) 2018-09-30 2018-09-30 数据存储方法及装置、存储介质、电子设备

Publications (1)

Publication Number Publication Date
CN110968450A true CN110968450A (zh) 2020-04-07

Family

ID=70028740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811156165.2A Pending CN110968450A (zh) 2018-09-30 2018-09-30 数据存储方法及装置、存储介质、电子设备

Country Status (1)

Country Link
CN (1) CN110968450A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022151730A1 (zh) * 2021-01-14 2022-07-21 长鑫存储技术有限公司 存储系统
WO2022151722A1 (zh) * 2021-01-14 2022-07-21 长鑫存储技术有限公司 存储系统
US11599417B2 (en) 2021-01-14 2023-03-07 Changxin Memory Technologies, Inc. Error correction system
US11791009B2 (en) 2021-01-14 2023-10-17 Changxin Memory Technologies, Inc. Error correction system
US11935616B2 (en) 2021-01-14 2024-03-19 Changxin Memory Technologies, Inc. Comparison system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339524A (zh) * 2008-05-22 2009-01-07 清华大学 大规模磁盘阵列存储系统的磁盘容错方法
CN104347122A (zh) * 2013-07-31 2015-02-11 华为技术有限公司 一种消息式内存模组的访存方法和装置
CN105511982A (zh) * 2015-12-18 2016-04-20 山东海量信息技术研究院 一种容忍dram颗粒失效的内存存取方法
CN108279910A (zh) * 2018-01-17 2018-07-13 珠海市杰理科技股份有限公司 程序代码烧写方法、装置、计算机设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339524A (zh) * 2008-05-22 2009-01-07 清华大学 大规模磁盘阵列存储系统的磁盘容错方法
CN104347122A (zh) * 2013-07-31 2015-02-11 华为技术有限公司 一种消息式内存模组的访存方法和装置
CN105511982A (zh) * 2015-12-18 2016-04-20 山东海量信息技术研究院 一种容忍dram颗粒失效的内存存取方法
CN108279910A (zh) * 2018-01-17 2018-07-13 珠海市杰理科技股份有限公司 程序代码烧写方法、装置、计算机设备和存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022151730A1 (zh) * 2021-01-14 2022-07-21 长鑫存储技术有限公司 存储系统
WO2022151722A1 (zh) * 2021-01-14 2022-07-21 长鑫存储技术有限公司 存储系统
US11599417B2 (en) 2021-01-14 2023-03-07 Changxin Memory Technologies, Inc. Error correction system
US11791009B2 (en) 2021-01-14 2023-10-17 Changxin Memory Technologies, Inc. Error correction system
US11886292B2 (en) 2021-01-14 2024-01-30 Changxin Memory Technologies, Inc. Memory system
US11935616B2 (en) 2021-01-14 2024-03-19 Changxin Memory Technologies, Inc. Comparison system

Similar Documents

Publication Publication Date Title
CN110968450A (zh) 数据存储方法及装置、存储介质、电子设备
US8856619B1 (en) Storing data across groups of storage nodes
US9009566B2 (en) Outputting information of ECC corrected bits
US8010875B2 (en) Error correcting code with chip kill capability and power saving enhancement
US8601339B1 (en) Layered coding techniques for data storage
US11099734B2 (en) Method, apparatus and computer program product for managing storage system
KR20090028507A (ko) 비휘발성 메모리 에러 보정 시스템 및 방법
JP2012108890A (ja) 同時読み出し及び書き込みメモリ動作を実行する方法及び装置
CN110618895A (zh) 一种基于纠删码的数据更新方法、装置和存储介质
US11074146B2 (en) Method, device and computer program product for managing redundant arrays of independent drives
US9734008B2 (en) Error vector readout from a memory device
KR20210074425A (ko) 에러를 정정하는 스토리지 컨트롤러, 이를 포함하는 스토리지 장치, 및 이의 동작 방법
US9552163B1 (en) Systems and methods for providing non-power-of-two flash cell mapping
CN110704325B (zh) 数据处理方法及装置、计算机存储介质及电子设备
US9733870B2 (en) Error vector readout from a memory device
US8707131B2 (en) Apparatus and method for fast tag hit
US20170004034A1 (en) Systems and methods for providing error code detection using non-power-of-two flash cell mapping
CN106528322B (zh) 检测数据的无记载损坏的方法和设备
US8539284B2 (en) Application reliability and fault tolerant chip configurations
US10177785B2 (en) Error detecting code with partial update
CN110322922B (zh) 带内动态随机存取存储器纠错编码的设备和系统
CN104346234A (zh) 一种内存访问的方法、设备及系统
CN115019870A (zh) Nand Flash页面数据纠错方法及系统
US11442639B2 (en) Method, apparatus, and storage medium for managing stripe in storage system
US10956261B2 (en) Volatile memory device and operating method thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200407