CN117539675A - 数据的处理方法、存储器控制器以及存储系统 - Google Patents
数据的处理方法、存储器控制器以及存储系统 Download PDFInfo
- Publication number
- CN117539675A CN117539675A CN202311247611.1A CN202311247611A CN117539675A CN 117539675 A CN117539675 A CN 117539675A CN 202311247611 A CN202311247611 A CN 202311247611A CN 117539675 A CN117539675 A CN 117539675A
- Authority
- CN
- China
- Prior art keywords
- data
- symbols
- memory
- readback
- matrix
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 298
- 238000003672 processing method Methods 0.000 title claims abstract description 42
- 238000012937 correction Methods 0.000 claims abstract description 80
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 24
- 239000008187 granular material Substances 0.000 claims description 115
- 239000011159 matrix material Substances 0.000 claims description 58
- 208000011580 syndromic disease Diseases 0.000 claims description 31
- 238000013500 data storage Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 239000002245 particle Substances 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000008188 pellet Substances 0.000 description 2
- 206010009944 Colon cancer Diseases 0.000 description 1
- AFCARXCZXQIEQB-UHFFFAOYSA-N N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CCNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 AFCARXCZXQIEQB-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本公开的至少一实施例提供了数据的处理方法、存储器控制器以及存储系统。该数据的处理方法包括:从单个存储通道读取四笔突发数据;将四笔突发数据组织为一组纠错码字,其中,一组纠错码字包括k个读回数据码元和m个读回校验码元,m个读回校验码元的总位宽是一个码元的位宽的八倍;以及基于一组纠错码字进行解码操作,以得到纠错后码元,该数据的处理方法可以通过从单个存储通道读取四笔突发数据经由一次ECC操作即可实现例如两个或更多个码元或符号的同时纠错。
Description
技术领域
本公开的实施例涉及本公开的实施例涉及数据的处理方法、存储器控制器、存储系统、电子装置以及存储介质。
背景技术
数据在传输、通信和存储过程中容易受到环境等因素干扰,从而导致数据错误。例如,双倍数据速率(Double Data Rate,DDR)存储器(例如,DDR SDRAM或DDR内存)在工作过程中难免会受到诸如电磁等环境因素的干扰,从而导致内存出现错误。对于稳定性要求高的用户来说,内存错误可能会引起致命性的问题。例如,对于服务器而言,其对DDR数据可靠性要求比较高,DDR存储器纠错技术就能提高服务器内存的稳定性和纠错能力,例如支持错误检查和纠正(Error Correcting Code,ECC)的内存条可以提高服务器内存的稳定性和纠错能力。
对于一些DDR内存而言,当出现可纠正错误(CE)时,并不会一出错就需要替换掉内存DIMM。然而,一旦出现不可纠正错误(UE)时,目前内存颗粒若出现2个同时出错的情况下,就会报出不可纠正错误,这种情况下一般就会丢失数据并且数据无法恢复。数据的丢失将影响处理器或其他计算单元执行相应运算,导致相关功能或应用无法正常运行,甚至引起宕机。
发明内容
本公开的第一方面提供了一种数据的处理方法包括:从单个存储通道读取四笔突发数据;将四笔突发数据组织为一组纠错码字,其中,一组纠错码字包括k个读回数据码元和m个读回校验码元,m个读回校验码元的总位宽是一个码元的位宽的八倍;以及基于一组纠错码字进行解码操作,以得到纠错后码元。
本公开的第二方面提供了一种存储器控制器,包括:读取单元,被配置为:从单个存储通道读取四笔突发数据;将四笔突发数据组织为一组纠错码字,其中,一组纠错码字包括k个读回数据码元和m个读回校验码元,m个读回校验码元的总位宽是一个码元的位宽的八倍,以及解码单元,被配置为:基于一组纠错码字进行解码操作,以得到纠错后码元。
本公开的第三方面提供了一种存储系统,包括:如上所述的存储器控制器;以及存储单元,包括单个存储通道。
本公开的第四方面提供了一种电子装置,包括:一个或多个处理器;存储器,包括一个或多个计算机程序模块;其中,一个或多个计算机程序模块被存储在存储器中并被配置为由一个或多个处理器执行以实施如上所述的处理方法。
本公开的第五方面提供了一种非瞬时可读存储介质,其上存储有计算机可执行指令,其中,计算机可执行指令在被处理器执行时,以实施如上所述的处理方法。
附图说明
为了更清楚地说明本公开的实施例的技术方案,下面将对本公开的实施例的附图作简单地介绍。明显地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了根据本公开的至少一实施例的数据的处理方法的流程图;
图2示出了根据本公开的至少一实施例的存储器控制器的示意图;
图3示出了根据本公开的至少一实施例的同时纠正多个内存颗粒出错的结构图;
图4示出了根据本公开的至少一实施例的存储系统的示意图;
图5示出了根据本公开的至少一实施例的内存子系统的示意图;
图6示出了根据本公开的至少一实施例的电子装置的示意图;以及
图7示出了根据本公开的至少一实施例的非瞬时可读存储介质的示意图。
具体实施方式
现在将详细参考本公开的具体实施例,在附图中例示了本公开的示例。尽管将结合具体实施例描述本公开,但将理解,不是想要将本公开限于描述的实施例。相反,想要覆盖由所附权利要求限定的在本公开的精神和范围内包括的变更、修改和等价物。应注意,本文描述的方法操作都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
为了使本领域技术人员更好地理解本公开,下面结合附图和具体实施方式对本公开作进一步详细说明。
注意,接下来要介绍的示例仅是具体的示例,而不作为限制本公开的实施例必须为示出和描述的具体的外形、硬件、连接关系、操作、数值、条件、数据、顺序等等。本领域技术人员可以通过阅读本说明书来运用本公开的构思来构造本说明书中未提到的更多实施例。
本公开中使用的术语是考虑到关于本公开的功能而在本领域中当前广泛使用的那些通用术语,但是这些术语可以根据本领域普通技术人员的意图、先例或本领域新技术而变化。此外,特定术语可以由申请人选择,并且在这种情况下,其详细含义将在本公开的详细描述中描述。因此,说明书中使用的术语不应理解为简单的名称,而是基于术语的含义和本公开的总体描述。
本公开中使用了流程图来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,根据需要,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
首先对本申请涉及的缩略词和相关术语进行定义、说明。
双符号纠错(DSC,Double-Symbol Correction):可以一次同时纠正两个symbol的技术。
DDR(Double Data Rate):双倍速率。
DDR SDRAM:双倍速率同步动态随机存储器,人们习惯称为DDR。
错误检查纠正(Error Check Correction,ECC):一种能够实现“错误检查和纠正”的技术,可提高计算机运行的稳定性和增加可靠性。
RS(Reed-Solomon)编码:又称里德所罗门码或里所码(即Reed-solomon code),是一种前向纠错的信道编码,对由校正过采样数据所产生的多项式有效。RS码是一类纠错能力很强的特殊的非二进制BCH码。对于任选正整数S可构造一个相应的码长为n=qS-1的q进制BCH码,而q作为某个素数的幂。当S=1,q>2时所建立的码长n=q-1的q进制BCH码,称它为RS码。当q=2m(m>1),其码元符号取自于F(2m)的二进制RS码可用来纠正突发差错,它是最常用的RS码。
MDEC(Multi Device Error Correction):多颗粒出错纠正
SDDC(Single Device Data Correction):纠正一个颗粒上的数据
DDDC(Double Device Data Correction):纠正两个颗粒上的数据
内存通道(Channel):简称通道,每个内存控制器可以有多个内存通道,例如常见的内存通道0,内存通道1。
UE(Uncorrectable Error):不可纠正错误。
CE(Correctable Error):可纠正错误。
数据存储颗粒(Data Device):存储数据的存储颗粒,在DDR内存中,也称为数据内存颗粒。
校验存储颗粒(ECC Device):存储校验位的存储颗粒,在DDR内存中,也称为校验内存颗粒。
存储颗粒:数据存储颗粒和校验存储颗粒统称为存储颗粒。存储颗粒在DDR内存中,也称为内存颗粒,并且可以作为数据内存颗粒和校验内存颗粒的统称。
符号(symbol):又称码元,ECC纠错时最小的单元,一般有x4和x8颗粒,对应symbol就为4比特(bit)和8比特数据。
ECC字(ECC Word),执行ECC操作的对象数据,在例如支持ECC的存储器架构中,以数据位+校验信息的形式体现。
可以理解的是,上面定义的术语只是在特定应用场景下的示例性定义,以便更好的理解本申请。例如,上面描述的针对特定内存的示例性定义可以扩展到其他类型的内存或其他存储器。
对于存储器(例如DDR内存),目前如果出现两个存储颗粒同时出错,目前的系统将会报出不可纠正错误,将无法纠正回来,重读后仍是不可纠正错误,数据将会被丢失,严重的话系统将导致系统宕机。如果使用硬件记录下之前的可纠正错误位置等信息及算法后处理来达到逐个纠正两个内存颗粒的目的,也能解决部分两个同时出错的问题。但有一系列前提条件,且覆盖率较低。
示例性的纠正2个错误的主流方法有DDDC,其主要包含了如下要点:
●需要打开锁同步(lockstep);
●算法上,ECC使用了奇偶校验位(Parity)+循环冗余校验码(CRC);
●一次算法运算,只能纠一个内存颗粒;
●当要纠正第二个内存颗粒时,须先把之前出错的内存颗粒替换写入到冗余内存颗粒(spare device)中,再使用算法找到第二个出错的内存颗粒。
●只能分时纠正两个内存颗粒的出错。若同时两个内存颗粒出错,则DDDC技术无能为力,系统将报出不可纠正错误。
本公开的至少一实施例提供的技术使用的硬件结构,将无需要任何前提条件,当多个数据颗粒出随机错误时,每个颗粒出错1比特至2比特,不用打开锁同步,也无需要硬件记录之前信息,硬件即可完成多颗粒的错误纠正,可以大大提高纠错能力,另外,可以提高存储器(例如内存)的可靠性,进一步降低数据丢失与系统宕机的风险。
本公开的至少一实施例提出一种数据的处理方法和存储器控制器、存储系统、电子装置以及存储介质,例如,当任何时刻出现多个存储颗粒出错时,每个存储颗粒出错例如1-2比特时,利用本公开的至少一实施例的硬件结构,无需软件参与,以及无需依据历史记录信息,硬件将能同时纠正多个存储颗粒出错。大大提高存储器的可靠性,降低数据丢失与系统宕机的风险。
以下参照附图,对本公开的至少一实施例的数据的处理方法、存储器控制器、存储系统、电子装置及存储介质分别进行详细介绍。
首先,以下介绍本公开的实施例的数据的处理方法,该数据的处理方法可以应用于如下文进一步描述的存储器控制器、存储系统、电子装置、以及其他合适的软件或硬件、或硬件和软件的结合。
图1示出了根据本公开的至少一实施例的数据的处理方法100的流程图,该处理方法可以包括步骤S102~S106。
在步骤S102中,从单个存储通道读取四笔突发数据。
在一些实施例中,四笔突发数据可以与存储到单个存储通道中的编码数据相对应,编码数据可以由对写入单个存储通道的k个数据码元进行编码而得到,编码数据可以包括k个数据码元和m个校验码元,其中m个校验码元的总位宽是可以一个码元的位宽的八倍。
在一些实施例中,取决于存储器的存储通道中的数据存储颗粒和校验存储颗粒的布置,每一笔突发数据中包括的数据位和校验位可以改变。例如,示例性的DDR4或DDR5中,单个存储通道可以包括8个x4的数据内存颗粒和2个x4的校验内存颗粒(ecc内存颗粒),每一笔突发数据(Burst)包括8*4=32比特的数据位以及2*4=8比特的校验位。然而,本公开不限于此。但可以理解的是,为纠正一个码元,一般需要两倍于一个码元的位宽的校验码元。例如,一个码元的位宽为4比特,一般需要8比特的校验码元来进行纠错。
在一些实施例中,数据码元可以在解码操作中被解码和纠错(如有必要),以得到用于执行计算以实现预定功能的数据或指令。校验码元可以在解码和纠错(如有必要)中提供信息以保证得到正确的数据。
示例性的存储通道可以是诸如DDR4或DDR5中的两个内存通道(内存通道0(Ch0)和内存通道1(Ch1))之一。
在步骤S104中,将四笔突发数据组织为一组纠错码字,其中,一组纠错码字包括k个读回数据码元和m个读回校验码元,m个读回校验码元的总位宽是一个码元的位宽的八倍。
在一些实施例中,该四笔突发数据(本文也称为读回编码数据,其本质是从单个存储通道读取的编码数据)与编码数据相对应,以便得到相应的正确的数据,然而编码数据在传输过程中或者在存储单元(包括存储通道)中会受到诸如电磁等环境因素的干扰,从而出现数据错误。因此,k个读回数据码元(即从单个存储通道读回的数据码元)和m个读回校验码元(即从单个存储通道读回的校验码元)可能与编码数据所包括的k个数据码元和m个校验码元不同。
在一些实施例中,存储单元可以是存储器本身,例如DDR存储器或DDR内存。在另一些实施例中,存储单元可以是存储器中的存储阵列。
在步骤S106中,基于一组纠错码字进行解码操作,以得到纠错后码元。
这里的解码操作可以指对上述一组纠错码字进行ECC操作,以得到纠错后的数据码元和/或纠错后的校验码元。
如此,根据本公开的至少一实施例的数据的处理方法通过从单个存储通道读取四笔突发数据经由一次ECC操作即可实现例如两个或更多个码元或符号的同时纠错。例如,在不打开锁同步的情况下,就能有效解决多个码元半芯片(half-chip)同时出错的问题。
在一些示例中,两个或更多个码元或符号的错误可以发生在两个或更多个的存储颗粒中,因而可以实现两个或更多个存储颗粒的纠错。
以下对本公开的至少一实施例的数据的处理方法的其他方面进行详细的描述。
例如,根据本公开的至少一实施例的数据的处理方法,将四笔突发数据组织为一组纠错码字,包括:将单个存储通道读取的四笔突发数据中对应于相同存储颗粒的相同引脚的突发数据组合为k个读回数据码元或m个读回校验码元之一,以得到k个读回数据码元和m个读回校验码元;以及连接k个读回数据码元和m个读回校验码元以得到一组纠错码字。
例如,将单个存储通道读取的四笔突发数据中对应于相同数据存储颗粒的相同引脚的突发数据组合为k个读回数据码元之一,将单个存储通道读取的四笔突发数据中对应于相同校验存储颗粒的数据组合为m个读回校验码元之一,从而得到k个读回数据码元或m个读回校验码元(统称为多个符号),并且将多个符号连接为一组纠错码字(即ECC字)。
本公开的发明人意识到,多笔数据中错误的比特位通常对应于相同的存储颗粒的引脚(pin),其中一个引脚对应于一笔数据的一个比特。例如,当在存储颗粒的一个引脚上发生错误时,从多笔数据中对应于该引脚的数据通常都是错误的。基于此,根据本公开的至少一实施例的数据的处理方法以存储颗粒的引脚为单位,将四笔突发数据中对应于相同存储颗粒的相同引脚的数据组合为一个符号(即4比特的符号),以针对单个存储通道得到多个符号,并且将多个符号连接为一组纠错码字,即针对单个存储通道形成一组纠错码字。这种以存储颗粒的引脚为单位的ECC字的组织方式可以将四笔突发数据中针对同一引脚的出错的数据反映到单个符号中,因而可以提高纠错能力。
当然,本公开的实施例不限于此,可以将四笔突发数据中对应于相同存储颗粒的相同引脚的数据以两个或更多个为单位或组合为一个符号(即8比特或更多比特的符号),以针对单个存储通道得到多个符号,并且将多个符号组织(例如连接)为一组纠错码字。
例如,根据本公开的至少一实施例的数据的处理方法,单个存储通道包括8个数据存储颗粒和2个校验存储颗粒。8个数据存储颗粒和2个校验存储颗粒中的每个存储颗粒的位宽为4比特。
如此,根据本公开的至少一实施例的数据的处理方法可以应用于特定的应用场景当中,例如单个存储通道可以是DDR5的Ch0或Ch1之一或者其他具有相同结构的存储器,以实现相应存储器的多个符号的纠错。
当然,实施例不限于此,在其他变型中,单个存储通道可以包括第一数量的数据存储颗粒和第二数据的校验存储颗粒,数据存储颗粒和校验存储颗粒中每个存储颗粒的位宽可以相同或不同,并且位宽可以是4比特、8比特或其他比特。
例如,根据本公开的至少一实施例的数据的处理方法,将单个存储通道读取的四笔突发数据中对应于相同存储颗粒的相同引脚突发数据组合为一组纠错码字,包括:针对8个数据存储颗粒和2个校验存储颗粒中的每个存储颗粒进行如下操作,得到包括32个数据符号和8个校验符号的数据来作为一组纠错码字:将四笔突发数据中对应于4比特位中的第一比特位的数据组织为第一符号;将四笔突发数据中对应于4比特位中的第二比特位的数据组织为第二符号;将四笔突发数据中对应于4比特位中的第三比特位的数据组织为第三符号;以及将四笔突发数据中对应于4比特位中的第四比特位的数据组织为第四符号。
如此,根据本公开的至少一实施例的数据的处理方法可以针对8个x4数据存储颗粒和2个x4校验存储颗粒实现以引脚为单元的ECC字的组织。
当然,实施例不限于此,在如上所述的其他变型中,可以类似地组合一组纠错码字,只要将四笔突发数据中对应于多个比特位中的相同比特位的数据组织为一个符号。
例如,根据本公开的至少一实施例的数据的处理方法,单个存储通道为DDR5的单个内存通道。例如,该单个内存通道可以DDR5的Ch0或Ch1。
如此,根据本公开的至少一实施例的数据的处理方法可以适用于DDR5。
例如,根据本公开的至少一实施例的数据的处理方法,编码和解码操作可以使用类范德蒙矩阵或RS码。
关于类范德蒙矩阵或RS码的技术例如可以参见申请公布号为CN112688693A、标题为“一种内存多矩阵编码方法、纠错方法及相关装置”的申请,申请公布号为CN116092567A、标题为“数据的处理方法、处理装置以及存储系统”的申请,申请公布号为CN116028260A、标题为“数据的处理方法、处理装置以及存储系统”的申请,申请公布号为CN110071727A、标题为“编码方法、译码方法、纠错方法及装置”的申请。这些申请通过引用结合于本文,并且作为本文的一部分。
下面示例性地描述编码和解码操作可以使用类范德蒙矩阵一个或多个方面。
例如,根据本公开的至少一实施例的数据的处理方法,对写入单个存储通道的k个数据码元进行编码,包括:基于编码矩阵对k个数据码元进行编码;基于一组纠错码字进行解码操作,以得到纠错后码元,包括:基于解码矩阵对一组纠错码字进行解码,得到伴随式数据;以及利用伴随式数据得到纠错后码元,其中,编码矩阵为至少k+m行k列的矩阵并且包括类范德蒙矩阵,解码矩阵为至少m行k+m列的矩阵并且包括类范德蒙矩阵,其中,类范德蒙矩阵是与范德蒙矩阵相关联的矩阵,其中,k≤pn-1,m≤pn,其中,n为每个码元的比特数,p为单个比特的容纳能力。
如此,根据本公开的至少一实施例的数据的处理方法基于类范德蒙矩阵,相对于RS码,可以支持更多的校验码元与数据码元,提高了码率,从而提高了纠错能力、并且易于扩展。然而,实施例不限于此,也可以通过其他方法实现上述编码和解码。
在一些实施例中,根据本公开的至少一实施例的处理方法,编码矩阵可以包括第一区间和第二区间,其中,第一区间可以包括k行k列的单位矩阵,第二区间可以包括m行k列的类范德蒙矩阵;并且基于编码矩阵对k个数据码元进行编码,可以包括:使用k行k列的单位矩阵乘以k个数据码元,得到k个数据码元;以及使用m行k列的类范德蒙矩阵乘以k个数据码元,得到m个校验码元。
如此,根据本公开的至少一实施例的处理方法可以形成多种编码矩阵,提高形成的编码矩阵的灵活性。可以理解,编码矩阵还可以附加地包括其他区间,可以在其他区间中设置0或1或其他合适的数值而不影响上述编码的实现。
在一些实施例中,根据本公开的至少一实施例的处理方法,解码矩阵可以包括第三区间和第四区间,其中,第三区间可以包括m行k列的类范德蒙矩阵,第四区间可以包括m行m列的单位矩阵;并且基于解码矩阵对读回编码数据进行解码,得到伴随式数据,可以包括:使用解码矩阵乘以k个读回数据码元与m个读回校验码元,得到伴随式数据。
如此,根据本公开的至少一实施例的处理方法可以形成多种解码矩阵,提高形成的解码矩阵的灵活性。可以理解,解码矩阵还可以附加地包括其他区间,可以在其他区间中设置0或1或其他合适的数值而不影响上述解码的实现。
在一些实施例中,根据本公开的至少一实施例的处理方法,利用伴随式数据得到纠错后码元,可以包括:读取伴随式数据;响应于伴随式数据全部为0,输出k个读回数据码元作为纠错后码元,其中,伴随式数据全部为0可以指示k个读回数据码元与m个读回校验码元没有错误;响应于伴随式数据有一个1,输出k个读回数据码元作为纠错后码元,其中,伴随式数据有一个1可以指示k个读回数据码元没有错误并且m个读回校验码元中与其为1的伴随式数据相对应的读回校验码元有错误;响应于伴随式数据有v个1,利用伴随式数据对k个读回数据码元和m个读回校验码元中的错误码元进行纠错,以得到纠错后码元,其中,伴随式数据有v个1可以指示k个读回数据码元中与其为1的伴随式数据相对应的v1个读回数据码元有错误以及m个读回校验码元中与其为1的伴随式数据相对应的v2个读回校验码元有错误,其中v≥2,v1≤m,v2≤m,v1+v2=v。
如此,根据本公开的至少一实施例的处理方法可以基于得到的伴随式数据确定读回数据码元和读回校验码元是否错误以及错误位置。
例如,根据本公开的至少一实施例的数据的处理方法,类范德蒙矩阵包括范德蒙矩阵、范德蒙矩阵的左右翻转、范德蒙矩阵的上下翻转或范德蒙矩阵的转置。
例如,根据本公开的至少一实施例的数据的处理方法,编码和解码操作可以使用范德蒙矩阵。示例性的范德蒙矩阵可以具有以下形式:
例如,根据本公开的至少一实施例的数据的处理方法,可以根据ECC字适应性地调整类范德蒙矩阵的行数和列数。
与根据本公开的至少一实施例的数据的处理方法相对应,本公开还提供了一种存储器控制器。
图2示出了根据本公开的至少一实施例的存储器控制器200的示意图。如图2所示,该存储器控制器200包括读取单元210以及解码单元220。解码单元可以是解码器或解码器的一部分。可以理解的是,存储器控制器200可以替代地或附加地包括其他单元,例如用于执行编码操作的编码单元(或称为编码器)。例如,读取单元210可以作为存储器控制器的收发单元的一部分,并且解码单元220可以作为存储器控制器的编解码单元的一部分。
读取单元210被配置为从单个存储通道读取四笔突发数据;将四笔突发数据组织为一组纠错码字,其中,一组纠错码字包括k个读回数据码元和m个读回校验码元,m个读回校验码元的总位宽是一个码元的位宽的八倍。
解码单元220被配置为:基于一组纠错码字进行解码操作,以得到纠错后码元。
如此,根据本公开的至少一实施例的数据的存储器控制器通过从单个存储通道读取四笔突发数据经由一次ECC操作即可实现例如两个或更多个码元或符号的同时纠错。例如,在不打开锁同步的情况下,就能有效解决多个码元半芯片(half-chip)同时出错的问题。
以下对本公开的至少一实施例的存储器控制器的示例性其他方面进行详细的描述。
例如,根据本公开的至少一实施例的数据的存储器控制器,读取单元还被配置为:将单个存储通道读取的四笔突发数据中对应于相同存储颗粒的相同引脚的突发数据组合为k个读回数据码元或m个读回校验码元之一,以得到k个读回数据码元和m个读回校验码元;以及连接k个读回数据码元和m个读回校验码元以得到一组纠错码字。
例如,根据本公开的至少一实施例的数据的存储器控制器,单个存储通道包括8个数据存储颗粒和2个校验存储颗粒,8个数据存储颗粒和2个校验存储颗粒中的每个存储颗粒的位宽为4比特。
例如,根据本公开的至少一实施例的数据的存储器控制器,读取单元还被配置为:针对8个数据存储颗粒和2个校验存储颗粒中的每个存储颗粒进行如下操作,得到包括32个数据符号和8个校验符号的数据来作为一组纠错码字:将四笔突发数据中对应于4比特位中的第一比特位的数据组织为第一符号;将四笔突发数据中对应于4比特位中的第二比特位的数据组织为第二符号;将四笔突发数据中对应于4比特位中的第三比特位的数据组织为第三符号;以及将四笔突发数据中对应于4比特位中的第四比特位的数据组织为第四符号。
例如,根据本公开的至少一实施例的数据的存储器控制器,单个存储通道为DDR5的单个内存通道。
以上仅结合图2描述了根据本公开的至少一实施例的存储器控制器200的部分,并且存储器控制器200的其余部分可以对本公开的结合图1描述的数据的处理方法100的各个方面进行引用,并且根据本公开的结合图1描述的数据的处理方法100的各个方面的效果同样可以映射到本公开的结合图2描述存储器控制器200,在此不在赘述。
例如,根据本公开的至少一实施例的存储器控制器200替代地或附加地包括编码单元,以执行上述编码。
下面通过图3来描述可以利用根据本公开的至少一实施例的数据的处理方法或存储器控制器的示例应用场景。可以理解的是,图3所示出的应用场景仅是示例性的,而没有穷尽列举说明上述数据的处理方法或存储器控制器的各个方面,并且结合图3描述的各方面与结合图1和图2描述的各方面可以相互引用,而不超出本公开的范围。
在该示例应用场景中,以DDR5的Ch0作为上述单个存储通道,当任何时刻出现多个内存颗粒出错时,每个内存颗粒出错1-2比特时,可以利用本发明方法的硬件结构,无需软件参与,以及无需依据历史记录信息,硬件将能同时纠正多个内存颗粒出错。如此,大大提高内存的可靠性,降低数据丢失与系统宕机的风险。
图3示出了根据本公开的至少一实施例的同时纠正多个内存颗粒出错的结构图。
在图3所示的应用场景中,以一个内存颗粒出错一比特为例,一次ECC运算,最大可以同时纠正4个内存颗粒出错。使用此方法,可以达成以下技术效果:
●可以纠4个内存颗粒出错,每个内存颗粒出错1比特数据;且出错比特位置任意。
●可以纠3个内存颗粒出错,其中两个内存颗粒出错1比特数据,另一内存颗粒出错2比特。出错的内存颗粒可以任意,出错的比特位置也是任意;
●可以纠2个内存颗粒出错,两个内存颗粒可以是各有两比特数据出错,也可以是1个内存颗粒错1比特,1个内存颗粒错3比特。出错的内存颗粒可以任意,出错的比特位置也是任意;
●可以纠正1个内存颗粒出错,错4比特。则为内存支持四位纠错(x4chipkill)。出错的内存颗粒可以任意。
下面详细介绍参见图3所示的应用场景的一个或多个方面。
参见图3,DDR5 Ch0包括8个x4数据内存颗粒(图3中示出为“x4”的8个内存颗粒)以及2个x4校验内存颗粒(图3中示出为“ecc”的2个内存颗粒)。
从DDR5 Ch0中读取或接收四笔突发数据Burst0、Burst1、Burst2以及Burst3。其中,Burst0包括对应于8个x4数据内存颗粒的数据D0、D4、D8、D12、D16、D20、D24、D28以及对应于两个x4校验内存颗粒的数据C0和C4;Burst1包括对应于8个x4数据内存颗粒的数据D1、D5、D9、D13、D17、D21、D25、D29以及对应于两个x4校验内存颗粒的数据C1和C5;Burst2包括对应于8个x4数据内存颗粒的数据D2、D6、D10、D14、D18、D22、D26、D30以及对应于两个x4校验内存颗粒的数据C2和C6;Burst3包括对应于8个x4数据内存颗粒的数据D3、D7、D11、D15、D19、D23、D27、D31以及对应于两个x4校验内存颗粒的数据C3和C7。
示例性地,四笔突发数据中的D0-D31以及C0-C7可以是针对与D0-D31相对应的数据进行编码而生成的。在没有发生错误的情况下,D0-D31与该相对应的数据一致,而在发生错误的情况下,D0-D31与该相对应的数据不一致。
在图3的示例应用场景中,以x4比特的内存颗粒为例,纠正多个比特出错,无需打开锁同步功能。在写入数据时,一笔数据仅写入到一个内存通道的四笔突发数据。如图中所示DDR5 Ch0,写入的一笔数据对应于或体现在Burst0/1/2/3中。读取的四笔突发数据Burst0/1/2/3共160比特,组成一组ECC字。
组成一组ECC字通过将四笔突发数据中对应于内存颗粒(数据内存颗粒和校验内存颗粒)的相同存储颗粒的相同引脚(体现为相同存储颗粒的相同比特位)的数据组织为一个符号来实现。
例如,图3中部示出的4个4×4的方框分别示例性地示出了4个x4比特的内存颗粒的四笔突发数据(即图3上部的4个虚线框)的数据结构的详细示意图。4×4的方框中的每一行对应于相应x4比特的内存颗粒的四笔突发数据之一,4×4的方框中的每一列对应于相应x4比特的内存颗粒的4个比特位之一。
图3底部示出了4个4比特的符号(symbol),其中每个符号由相应x4比特的内存颗粒的四笔突发数据中对应于相同比特位的数据组成。
由此,针对DDR5 Ch0的内存颗粒,示例性的ECC字组成结构为:
符号1为第一个x4数据内存颗粒的Burst0/1/2/3四笔数据中对应的D0/D1/D2/D3的最高比特位bit3数据而组成的一个符号;
符号2为第一个x4数据内存颗粒的Burst0/1/2/3四笔数据中对应的D0/D1/D2/D3的bit2数据而组成的一个符号;
符号3为第一个x4数据内存颗粒的Burst0/1/2/3四笔数据中对应的D0/D1/D2/D3的bit1数据而组成的一个符号;
符号4为第一个x4数据内存颗粒的Burst0/1/2/3四笔数据中对应的D0/D1/D2/D3的bit0数据而组成的一个符号;
…
DDR5数据位宽40比特(8个数据内存颗粒+2个校验内存颗粒),每一比特数据位置(即比特位),对应Burst0/1/2/3四笔数据,每个位置共有4比特数据,组成一个符号。以这种方式,就组成了32个数据符号+8个校验符号。
ECC组织好之后,可以利用例如上述基于范德蒙矩阵的算法,可以达到一次ECC运算,可同时纠正4个符号出错的场景,且无需像DDDC使用替换颗粒芯片的方式,也不用打开锁同步,在提高纠错能力与概率的同时,并不会对DDR的性能产生负面影响,且不用软件参与。
在上述示例应用场景中,可以完成对多个内存颗粒同时出错时进行纠正,能有效解决多个芯片出错报UE的问题,从而提高内存的可靠性与健壮性,降低数据丢失与宕机的风险。例如,继续参见图3,在图3的应用场景中示例性地示出了4个内存颗粒出现错误情况,其中图3上部的4个虚线框所示的内存颗粒中的数据错误分别位于图3中部所示的相应的数据内存颗粒中的4个比特位中的第二比特位、第三比特位、第三比特位以及第三比特位(即错误的比特由深灰色示出),由此组织的32个数据符号+8个校验符号中有4个错误符号。进一步地,通过例如基于范德蒙矩阵的算法,可以达到一次ECC运算,可同时纠正4个符号出错,实现4个数据内存颗粒的纠错。当然,实施例不限于此,错误也可以位于校验内存颗粒、或者数据内存颗粒和校验内存颗粒两者,错误也可以位于其他比特位,或者错误也可以位于单个内存颗粒、两个内存颗粒、三个内存颗粒等,从而实现相应数量的内存颗粒的纠错。上述示例应用场景只是实现根据本公开的至少一实施例的数据的处理方法和存储器控制器的一部分或附加方面,上述示例应用场景的其他方面可以参照根据本公开的至少一实施例的数据的处理方法和存储器控制器及其附加方面。
图4示出了根据本公开的至少一实施例的存储系统400的示意图。如图4所示,存储系统400包括存储器控制器410和存储单元420。
存储器控制器410可以是参见图2描述的存储器控制器。存储单元420可以包括存储通道。在一些实施例中,存储单元420可以是存储器本身,例如DDR存储器或DDR内存。在另一些实施例中,存储单元可以是存储器中的存储阵列。
图5示出了根据本公开的至少一实施例的内存子系统500的示意图。这里的内存子系统500可以是上文的存储系统400的一个示例性实例。
参见图5,内存子系统500可以包括内存控制器510和内存单元520。内存控制器510可以是上文的存储器控制器的一个示例性实例,内存单元520可以是上文的存储单元的一个示例性实例,例如内存单元可以是DDR,例如上文的DDR5。内存控制器510也通常被称为主控芯片。
内存单元520可以包括DDR列组525。DDR列组525可以是上文的DDR5 Ch0的一个示例性实例。DDR列组525可以包括多个DRAM颗粒,例如DRAM颗粒522、DRAM颗粒524以及DRAM颗粒526等,这些DRAM颗粒可以是上文的数据存储颗粒和校验存储颗粒或者数据内存颗粒和校验内存颗粒的一个示例性示例。另外,DRAM颗粒可以包括编码器、解码器等,以在对DRAM颗粒进行读写操作时执行相应的编码操作和ECC操作。内存单元520可以是双列直插内存单元(DIMM)、直接焊接在电路板上的多颗DRAM颗粒(也称为DRAM颗粒芯片)或者其他形式。
继续参见图5,内存控制器510可以经由DDR通道与内存单元520进行交互。虽然图5以一个DDR通道作为示例,然而实施例不限于此,内存子系统500还可以包含多个DDR通道。另外,内存单元520可以包括多个DDR列组,本公开的至少一实施例不以此为限。
图6示出了根据本公开的至少一实施例的电子装置600的示意图。
如图6所示,电子装置600包括处理器610和存储器620。存储器620包括一个或多个计算机程序模块621。一个或多个计算机程序模块621被存储在存储器620中并被配置为由处理器610执行,该一个或多个计算机程序模块621包括用于执行根据本公开的至少一实施例的数据的处理方法的指令,其被处理器610执行时,可以执行根据本公开的至少一实施例的数据的处理方法及其附加方面的一个或多个步骤。存储器620和处理器610可以通过总线系统和/或其他形式的连接机构(未示出)互连。例如,该总线可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
示例性地,处理器610可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其他形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构、RISC-V架构等。处理器610可以为通用处理器或专用处理器,可以控制电子装置600中的其他组件以执行期望的功能。
示例性地,存储器620可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块621,处理器610可以运行一个或多个计算机程序模块621,以实现电子装置600的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
例如,电子装置600还可以包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等输入装置;包括诸如液晶显示器、扬声器、振动器等输出装置;包括例如磁带、硬盘(HDD或SDD)等存储装置;例如还可以包括诸如LAN卡、调制解调器等的网络接口卡等通信装置。通信装置可以允许电子装置600与其他设备进行无线或有线通信以交换数据,经由诸如因特网的网络执行通信处理。根据需要驱动器连接至I/O接口。可拆卸存储介质,诸如磁盘、光盘、磁光盘、半导体存储器等,根据需要安装在该驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储装置。
例如,该电子装置600还可以进一步包括外设接口(图中未示出)等。该外设接口可以为各种类型的接口,例如为USB接口、闪电(lighting)接口等。该通信装置可以通过无线通信来与网络和其他设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi(例如基于IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n标准)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其他合适的通信协议。
该电子装置600例如可以是片上系统(SOC)或者包括该SOC的设备,例如,可以为手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪、家用电器、通信基站、工业控制器、服务器等任何设备,也可以为任意的数据处理装置及硬件的组合,本公开的实施例对此不作限制。该电子装置600的具体功能和技术效果可以参考上文中关于根据本公开的至少一实施例的数据的处理方法及其附加方面的描述,此处不再赘述。
图7示出了根据本公开的至少一实施例的非瞬时可读存储介质700的示意图。
如图7所示,非瞬时可读存储介质700上存储有计算机指令710,该计算机指令710被处理器执行时执行如上所述的数据的处理方法及其附加方面中的一个或多个步骤。
示例性地,该非瞬时可读存储介质700可以是一个或多个计算机可读存储介质的任意组合,例如,一个计算机可读存储介质包含用于从单个存储通道读取四笔突发数据的程序代码、用于将四笔突发数据组织为一组纠错码字的程序代码以及用于基于一组纠错码字进行解码操作,以得到纠错后码元的程序代码。
示例性地,当该程序代码由计算机读取时,计算机可以执行该计算机存储介质中存储的程序代码,执行例如根据本公开的至少一实施例的数据的处理方法及其附加方面的一个或多个步骤。
示例性地,该非瞬时可读存储介质可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、闪存、以及其他的非瞬时可读存储介质或其任意组合。
在上文的详细描述中,出于解释而非限制的目的,阐述了具体细节,以便提供对本公开中描述的各个方面和实施例的透彻理解。在一些情况下,省略了对众所周知的设备、组件、电路和方法的详细描述,以免用不必要的细节来模糊本文公开的实施例的描述。本文列举本文公开的原理、方面和实施例的所有声明,以及其具体示例,旨在涵盖其结构等同物和功能等同物两者。另外,这种等同物旨在包括当前已知的等同物以及将来开发的等同物,即,开发的执行相同功能的任何元件,而不管结构如何。因此,例如,可以理解,本文的框图可以表示体现所描述的实施例的原理的说明性电路系统或其他功能单元的概念图。这样的功能和所示的功能块将被理解为是硬件实施的和/或计算机实施的。
本公开的各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
需要说明的是,在本文中,诸如第一、第二等的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且进一步包括没有明确列出的其他要素,或者是进一步包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本公开的优选实施例,并不用于限制本公开;本公开的范围由权利要求确定。
Claims (18)
1.一种数据的处理方法,包括:
从单个存储通道读取四笔突发数据;
将所述四笔突发数据组织为一组纠错码字,其中,所述一组纠错码字包括k个读回数据码元和m个读回校验码元,所述m个读回校验码元的总位宽是一个码元的位宽的八倍;以及
基于所述一组纠错码字进行解码操作,以得到纠错后码元。
2.根据权利要求1所述的处理方法,其中,将所述四笔突发数据组织为所述一组纠错码字,包括:
将所述单个存储通道读取的四笔突发数据中对应于相同存储颗粒的相同引脚的突发数据组合为所述k个读回数据码元或所述m个读回校验码元之一,以得到所述k个读回数据码元和所述m个读回校验码元;以及
连接所述k个读回数据码元和所述m个读回校验码元以得到所述一组纠错码字。
3.根据权利要求2所述的方法,其中,所述单个存储通道包括8个数据存储颗粒和2个校验存储颗粒,8个数据存储颗粒和2个校验存储颗粒中的每个存储颗粒的位宽为4比特。
4.根据权利要求3所述的方法,其中,将所述单个存储通道读取的四笔突发数据中对应于相同存储颗粒的相同引脚突发数据组合为一组纠错码字,包括:
针对8个数据存储颗粒和2个校验存储颗粒中的每个存储颗粒进行如下操作,得到包括32个数据符号和8个校验符号的数据来作为所述一组纠错码字:
将所述四笔突发数据中对应于4比特位中的第一比特位的数据组织为第一符号;
将所述四笔突发数据中对应于4比特位中的第二比特位的数据组织为第二符号;
将所述四笔突发数据中对应于4比特位中的第三比特位的数据组织为第三符号;以及
将所述四笔突发数据中对应于4比特位中的第四比特位的数据组织为第四符号。
5.根据权利要求3所述的方法,其中,所述单个存储通道为DDR5的单个内存通道。
6.根据权利要求1-5中任一项所述的处理方法,其中,
对写入所述单个存储通道的k个数据码元进行编码,包括:
基于编码矩阵对k个数据码元进行编码;
基于所述一组纠错码字进行解码操作,以得到纠错后码元,包括:
基于解码矩阵对所述一组纠错码字进行解码,得到伴随式数据;以及
利用所述伴随式数据得到纠错后码元,
其中,所述编码矩阵为至少k+m行k列的矩阵并且包括类范德蒙矩阵,所述解码矩阵为至少m行k+m列的矩阵并且包括所述类范德蒙矩阵,其中,所述类范德蒙矩阵是与范德蒙矩阵相关联的矩阵,其中,k≤pn-1,m≤pn,其中,n为每个码元的比特数,p为单个比特的容纳能力。
7.根据权利要求6所述的处理方法,其中,所述编码矩阵包括第一区间和第二区间,其中,所述第一区间包括k行k列的单位矩阵,所述第二区间包括m行k列的类范德蒙矩阵;并且
基于所述编码矩阵对k个数据码元进行编码,包括:
使用所述k行k列的单位矩阵乘以所述k个数据码元,得到所述k个数据码元;以及
使用所述m行k列的类范德蒙矩阵乘以所述k个数据码元,得到所述m个校验码元。
8.根据权利要求6所述的处理方法,其中,所述解码矩阵包括第三区间和第四区间,其中,所述第三区间包括m行k列的类范德蒙矩阵,所述第四区间包括m行m列的单位矩阵;并且
基于解码矩阵对所述一组纠错码字进行解码,得到伴随式数据,包括:
使用所述解码矩阵乘以所述k个读回数据码元与所述m个读回校验码元,得到所述伴随式数据。
9.根据权利要求6所述的处理方法,其中,利用所述伴随式数据得到所述纠错后码元,包括:
读取所述伴随式数据;
响应于所述伴随式数据全部为0,输出所述k个读回数据码元作为所述纠错后码元,其中,所述伴随式数据全部为0指示所述k个读回数据码元与所述m个读回校验码元没有错误;
响应于所述伴随式数据有一个1,输出所述k个读回数据码元作为所述纠错后码元,其中,所述伴随式数据有一个1指示所述k个读回数据码元没有错误并且所述m个读回校验码元中与其为1的伴随式数据相对应的读回校验码元有错误;
响应于所述伴随式数据有v个1,利用所述伴随式数据对所述k个读回数据码元和所述m个读回校验码元中的错误码元进行纠错,以得到所述纠错后码元,其中,所述伴随式数据有v个1指示所述k个读回数据码元中与其为1的伴随式数据相对应的v1个读回数据码元有错误以及所述m个读回校验码元中与其为1的伴随式数据相对应的v2个读回校验码元有错误,其中v≥2,v1≤m,v2≤m,v1+v2=v。
10.根据权利要求6中任一项所述的处理方法,其中,所述类范德蒙矩阵包括范德蒙矩阵、范德蒙矩阵的左右翻转、范德蒙矩阵的上下翻转或范德蒙矩阵的转置。
11.一种存储器控制器,包括:
读取单元,被配置为:
从单个存储通道读取四笔突发数据;
将所述四笔突发数据组织为一组纠错码字,其中,所述一组纠错码字包括k个读回数据码元和m个读回校验码元,所述m个读回校验码元的总位宽是一个码元的位宽的八倍,以及
解码单元,被配置为:
基于所述一组纠错码字进行解码操作,以得到纠错后码元。
12.根据权利要求11所述的存储器控制器,其中,所述读取单元还被配置为:
将所述单个存储通道读取的四笔突发数据中对应于相同存储颗粒的相同引脚的突发数据组合为所述k个读回数据码元或所述m个读回校验码元之一,以得到所述k个读回数据码元和所述m个读回校验码元;以及
连接所述k个读回数据码元和所述m个读回校验码元以得到所述一组纠错码字。
13.根据权利要求12所述的存储器控制器,其中,所述单个存储通道包括8个数据存储颗粒和2个校验存储颗粒,8个数据存储颗粒和2个校验存储颗粒中的每个存储颗粒的位宽为4比特。
14.根据权利要求13所述的存储器控制器,其中,所述读取单元还被配置为:
针对8个数据存储颗粒和2个校验存储颗粒中的每个存储颗粒进行如下操作,得到包括32个数据符号和8个校验符号的数据来作为所述一组纠错码字:
将所述四笔突发数据中对应于4比特位中的第一比特位的数据组织为第一符号;
将所述四笔突发数据中对应于4比特位中的第二比特位的数据组织为第二符号;
将所述四笔突发数据中对应于4比特位中的第三比特位的数据组织为第三符号;以及
将所述四笔突发数据中对应于4比特位中的第四比特位的数据组织为第四符号。
15.根据权利要求13所述的方法,其中,所述单个存储通道为DDR5的单个内存通道。
16.一种存储系统,包括:
根据权利要求12所述的存储器控制器;以及
存储单元,包括所述单个存储通道。
17.一种电子装置,包括:
一个或多个处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述一个或多个处理器执行以实施根据权利要求1-10中任一项所述的处理方法。
18.一种非瞬时可读存储介质,其上存储有计算机可执行指令,
其中,所述计算机可执行指令在被处理器执行时,以实施根据权利要求1-10中任一项所述的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311247611.1A CN117539675A (zh) | 2023-09-25 | 2023-09-25 | 数据的处理方法、存储器控制器以及存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311247611.1A CN117539675A (zh) | 2023-09-25 | 2023-09-25 | 数据的处理方法、存储器控制器以及存储系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117539675A true CN117539675A (zh) | 2024-02-09 |
Family
ID=89781333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311247611.1A Pending CN117539675A (zh) | 2023-09-25 | 2023-09-25 | 数据的处理方法、存储器控制器以及存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117539675A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4327382A (en) * | 1979-01-30 | 1982-04-27 | Sony Corporation | Method and apparatus for editing digital signals recorded on a record medium |
CN116028260A (zh) * | 2023-01-09 | 2023-04-28 | 海光信息技术股份有限公司 | 数据的处理方法、处理装置以及存储系统 |
CN116092567A (zh) * | 2023-01-09 | 2023-05-09 | 海光信息技术股份有限公司 | 数据的处理方法、处理装置以及存储系统 |
CN116244108A (zh) * | 2023-01-09 | 2023-06-09 | 海光信息技术股份有限公司 | 存储器控制器和存储器的数据写入和读取方法及存储系统 |
-
2023
- 2023-09-25 CN CN202311247611.1A patent/CN117539675A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4327382A (en) * | 1979-01-30 | 1982-04-27 | Sony Corporation | Method and apparatus for editing digital signals recorded on a record medium |
CN116028260A (zh) * | 2023-01-09 | 2023-04-28 | 海光信息技术股份有限公司 | 数据的处理方法、处理装置以及存储系统 |
CN116092567A (zh) * | 2023-01-09 | 2023-05-09 | 海光信息技术股份有限公司 | 数据的处理方法、处理装置以及存储系统 |
CN116244108A (zh) * | 2023-01-09 | 2023-06-09 | 海光信息技术股份有限公司 | 存储器控制器和存储器的数据写入和读取方法及存储系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2907033B1 (en) | Method and apparatus for error correction using ldpc codes | |
US8713411B2 (en) | Encoding and/or decoding memory devices and methods thereof | |
US9912355B2 (en) | Distributed concatenated error correction | |
KR20150091148A (ko) | 계층적 반복 에러 교정을 위한 종료 기준 | |
US11404136B2 (en) | Memory device protection using interleaved multibit symbols | |
US9698830B2 (en) | Single-bit first error correction | |
US12081234B2 (en) | ECC memory chip encoder and decoder | |
CN108733504B (zh) | 一种四维奇偶校验码与汉明码相结合的存储器校验编码及检错纠错方法 | |
US11881277B2 (en) | Memory device and operating method thereof | |
CN116028260B (zh) | 数据的处理方法、处理装置以及存储系统 | |
CN114360623A (zh) | 用于存储器纠错的方法、存储器控制器及计算机系统 | |
US10256843B2 (en) | Systems, methods, and devices for encoding and decoding data using multi-layer integrated interleaved codes | |
CN116092567B (zh) | 数据的处理方法、处理装置以及存储系统 | |
US11237901B2 (en) | Error correction using hierarchical decoders | |
KR102678314B1 (ko) | 유저 데이터에 대한 에러 정정을 수행하는 에러 정정 회로 및 이를이용한 에러 정정 방법 | |
CN117539675A (zh) | 数据的处理方法、存储器控制器以及存储系统 | |
US9170881B2 (en) | Solid state device coding architecture for chipkill and endurance improvement | |
US10951238B1 (en) | Memory system and method for controlling non-volatile memory | |
CN108170554B (zh) | 一种nand的数据编码方法和装置 | |
CN111367708B (zh) | 多个存储器件共享的错误校正系统 | |
RU2297029C2 (ru) | Самокорректирующееся устройство | |
RU2297036C2 (ru) | Отказоустойчивое устройство | |
Kousa et al. | Error control coding for multi-level cell memories |
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 |