CN115938461A - 存储装置、纠错存储系统、芯片和车辆 - Google Patents
存储装置、纠错存储系统、芯片和车辆 Download PDFInfo
- Publication number
- CN115938461A CN115938461A CN202211559070.1A CN202211559070A CN115938461A CN 115938461 A CN115938461 A CN 115938461A CN 202211559070 A CN202211559070 A CN 202211559070A CN 115938461 A CN115938461 A CN 115938461A
- Authority
- CN
- China
- Prior art keywords
- memory
- error
- data
- multiplexer
- correctable
- 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
- 238000012937 correction Methods 0.000 title claims abstract description 69
- 230000015654 memory Effects 0.000 claims abstract description 327
- 238000005192 partition Methods 0.000 claims description 78
- 238000012795 verification Methods 0.000 claims description 21
- 238000001514 detection method Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供了一种存储装置、纠错存储系统、芯片和车辆,存储装置,包括:第一存储器和第二存储器,第一存储器和第二存储器中的一个存储可纠错数据,第一存储器和第二存储器中的另一个用于存储可纠错数据对应的校验数据;在第一存储器和第二存储器中还包括可存储空间的情况下,可存储空间能够用于存储不可纠错数据,其中,可存储空间是第一存储器和第二存储器中剔除可纠错数据和校验数据所占用的存储空间之外的存储空间。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种存储装置、纠错存储系统、芯片和车辆。
背景技术
可纠错系统中,校验数据区和ECC数据区存在一起。
具体地,以32,7汉明码为例,一行为39比特,由32比特数据和7比特校验数据组成。
当应用中的数据无需ECC校验时,普通数据只能存储到32位,33至39位之间的数据无法被利用到,因此,存在存储空间的浪费。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的第一方面在于,提供了一种存储装置。
本发明的第二方面在于,提供了一种纠错存储系统。
本发明的第三方面在于,提供了一种芯片。
本发明的第四方面在于,提供了一种车辆。
有鉴于此,本发明的第一方面提供了一种存储装置,包括:第一存储器和第二存储器,第一存储器和第二存储器中的一个用于存储可纠错数据,第一存储器和第二存储器中的另一个用于存储可纠错数据对应的校验数据;在第一存储器和第二存储器还包括可存储空间的情况下,可存储空间能够用于存储不可纠错数据,其中,可存储空间是第一存储器和第二存储器中除去可纠错数据和校验数据所占用的存储空间之外的存储空间。
本申请的技术方案提出了一种用于存储装置,该存储器由第一存储器和第二存储器组成,其中,可纠错数据以及可纠错数据对应的校验数据分别存储在第一存储器和第二存储器中,以此降低可纠错数据和校验数据存储时对存储器的要求,同时,也便于利用上述存储器存储普通数据,进而实现存储器中存储空间的充分利用。
具体地,相关技术方案中,以32,7汉明码为例,一行为39比特,而作为普通数据仅能存储到32位,对于33位至39位之间无法进行数据存储,因此,存在存储空间的浪费。
本申请的技术方案在将可纠错数据和校验数据分开存储时,一行只需存储32比特,也即仅存储可纠错数据,而校验数据可采用另外一行进行存储。
以汉明码为例,校验数据的位数为7位,可通过添加一个0进行占位,从而形成8位的数据,在一行为32位的存储方式下,将4个可纠错数据所对应的校验数据组合,形成32位的组合校验数据,在此情况下,可纠错数据和组合校验数据同时为32位,因此,可以将存储空间中的每一行进行充分利用,同时,上述存储空间也可以用于存储不可纠错数据,以此实现了存储器空间的复用,从而提高了存储器的利用效率。
在其中一个技术方案中,可纠错数据和不可纠错数据的差异在于,可纠错数据具有对应的校验数据,而不可纠错数据不具有对应的校验数据。
在其中一个技术方案中,可纠错数据可以存储在第一存储器,还可以存储在第二存储器,同理,校验数据可以存储在第一存储器,也可以存储在第二存储器,可以理解的是,可纠错数据和校验数据可以根据实际使用需要在第一存储器和第二存储器之间替换,但不能同时存储在同一个存储器中。
在其中一个技术方案中,存储器可以是静态随机存取存储器(Static RandomAccess Memory,SRAM),其中,是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。
其中,存储装置,也即,误差校正码(Error Correcting Code,ECC)存储器,其中,ECC是一种能够实现“错误检查和纠正”的技术。
另外,本申请提出的存储装置还具有以下附加技术特征。
在上述技术方案中,第一存储器具有第一存储分区,第一存储分区用于存储可纠错数据,第一存储分区的容量为第一数值,第一存储分区的容量小于或等于第一存储器的容量;第二存储器具有第二存储分区,第二存储分区用于存储校验数据,第二存储分区的容量为第二数值;第二数值≥第一数值/第三数值;其中,第三数值的取值为以下中的一种:2、4、8。
在该技术方案中,ECC是在奇偶校验的基础上发展而来。在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低电平信号。
在数字电路中8个连续的比特是一个字节(byte),在内存中不带“奇偶校验”的内存中的每个字节只有8位,若它的某一位存储出了错误,就会使其中存储的相应数据发生改变而导致应用程序发生错误。而带有“奇偶校验”的内存在每一字节(8位)外又额外增加了一位用来进行错误检测。比如一个字节中存储了某一数值(1、0、1、0、1、0、1、1),把这每一位相加起来(1+0+1+0+1+0+1+1=5),5是奇数,如果采用奇校验(即一个字节(8位)加上检错的那1位共9位对应数字的和为奇数),那么检错的那一位就应该是0(5+0=5才是奇数),如果采用偶校验(即一个字节(8位)加上检错的那1位共9位对应数字的和为偶数)那么检错的那一位就应该是1(5+1=6才是偶数)当CPU返回读取存储的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。当CPU发现二者不同时就会尝试纠正这些错误。但Parity的不足是:当内存查到某个数据位有错误时,不能准确定位存在错误的数据位,也就不一定能修正错误。
Parity内存是通过在原来数据位的基础上增加一个校验位来检查数据位上8位数据的正确性,但随着数据位的增加校验位也成倍增加,八位数据位需要一位校验位,十六位数据位需要两位校验位。ECC也是在原来的数据位上外加校验位来实现的。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。ECC有更多位数的校验位,容错能力更强。
在本申请的技术方案中,通过限定第二数值≥第一数值/第三数值,其中,第三数值可以根据不同的算法进行选取,以便上述存储器能够适配现有纠错算法。
具体地,在ECC纠错算法可选用Hamming Code(汉明码)或Hsiao Code(萧氏码)的情况下,第一存储器的宽度为32位,第二存储器的容量至少为第一存储器的1/4,也即宽度为8位。
举例来说,对于每一个32位数据的可纠错数据,都有一个8比特字节来对应校验数据。由于32位可纠错数据只需7比特,所以每个字节的第8比特可以存为0进行补位。
在上述任一技术方案中,第一存储器具有第三存储分区,第二存储器具有第四存储分区;其中,第三存储分区和第四存储分区的访问地址连续。
在该技术方案中,通过限定第三存储分区和第四存储分区的访问地址连续,以便提高不可纠错数据访问的便利。
在其中一个技术方案中,第一存储分区和第二存储分区的访问地址连续,第三存储分区和第四存储分区的访问地址不连续。
在该技术方案中,可以根据实际设计需要选择第一存储分区和第二存储分区的访问地址,以便满足实际使用需要。
在上述任一技术方案中,第一存储分区的访问地址和第三存储分区的访问地址具有不同的地址段;和/或第二存储分区的访问地址与第四存储分区的访问地址具有不同的地址段。
在该技术方案中,通过为第一存储分区和第三存储分区设定不同的地址端,以便在进行数据的读取时,可以利用访问地址的地址段实现可纠错数据和不可纠错数据的区分,以便实现不同数据的有针对性的读取。
同理,通过为第二存储分区和第四存储分区设定不同的地址端,以便在进行数据的读取时,可以利用访问地址的地址段实现可纠错数据和不可纠错数据的区分,以便实现不同数据的有针对性的读取。
举例来说,访问地址位HADDR[20]为高是可纠错数据访问,HADDR[20]为低是不可纠错数据访问。
在上述任一技术方案中,在不存在可纠错数据和校验数据的情况下,第一存储器和第二存储器还能用于存储不可纠错数据。
在该技术方案中,在存储器不需要存储可纠错数据和校验数据的情况下,用于存储可纠错数据和校验数据的存储空间还能用于存储不可纠错数据,进而提高了存储器的利用率。
在其中一个技术方案中,可以根据实际使用需要设定第一存储分区和第二存储分区的大小,以便满足不同使用场景下的使用需要。
在其中一个技术方案中,存储装置为用于错误检查和纠错的存储装置。
本发明的第二方面提供了一种纠错存储系统,包括:如第一方面中任一项的存储装置。
在该技术方案中,提出了一种纠错存储系统,在该纠错存储系统中,包括如上文中的存储装置,因此,可纠错数据以及可纠错数据对应的校验数据分别存储在第一存储器和第二存储器中,以此降低可纠错数据和校验数据存储时对存储器的要求,同时,也便于利用上述存储器存储普通数据,进而实现存储器中存储空间的充分利用。
另外,本申请提出的纠错存储系统还具有以下附加技术特征。
在上述技术方案中,还包括:控制电路;第一多路选择器,第一多路选择器的第一输入端与控制电路连接,第一多路选择器的输出端与存储装置中的第一存储器、第二多路选择器的第一输入端和编码电路的输入端连接;编码电路,编码电路的输出端与第二多路选择器的第二输入端连接;第二多路选择器,第二多路选择器的输出端与存储装置中的第二存储器连接;解码电路,解码电路的输入端与第一存储器和第二存储器连接,解码电路的输出端与控制电路和第一多路选择器的第二输入端连接。
在该技术方案中,通过设置编码电路、第一多路选择器、第二多路选择器和解码电路,以便实现校验数据的生成,同时,也可以实现可纠错数据、不可纠错数据的读取和写入,进而兼容相关技术方案中的数据读取和写入。
具体地,编码电路能够基于纠错算法,如汉明码或萧氏码对可纠错数据进行编码,从而生成与可纠错数据对应的校验数据。
对应的,解码能够将读取的可纠错数据和对应的校验数据进行组合,形成新的数据,进而实现纠错和检测。
其中,第一多路选择器和第二多路选择器用于进行数据的混合以及访问某一访问地址数据的读取和写入。
在上述任一技术方案中,在纠错存储系统运行在第一模式的情况下,控制电路向第一多路选择器发送可纠错数据,第一多路选择器将可纠错数据发送至第一存储器和编码电路,编码电路对可纠错数据进行编码,得到校验数据,其中,校验数据通过第二多路选择器发送至第二存储器。
在该技术方案中,第一模式是可纠错数据的整字写,也即Word写,其中,控制电路从总线上获取可纠错数据,并将可纠错数据发送至第一多路选择器,以便第一多路选择器将可纠错数据送至编码电路和第一存储器,以便在第一存储器上存储可纠错数据,而编码电路对可纠错数据进行编码,得到校验数据,并将校验数据发送至第二多路选择器,以供第二多路选择器将校验书存储在第二存储器。
具体地,第一多路选择器将可纠错数据存储在第一存储器中的第一存储分区,第二多路选择器将校验数据存储在第二存储器中的第二存储分区。
其中,第一多路选择器和第二多路选择器中的“第一”、“第二”仅用于在多路选择器的数量为多个的情况下,区分不同多路选择器。
其中,多路选择器是数据选择器的别称。在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关。
在上述任一技术方案中,在纠错存储系统运行在第二模式的情况下,控制电路向第一存储器和第二存储器发起读操作,其中,解码电路根据可纠错数据和校验数据输出读取结果;第一多路选择器根据待写入的可纠错数据和读取结果更新可纠错数据,并将更新后的可纠错数据发送至第一存储器和编码电路,编码电路对更新后的可纠错数据进行编码,得到更新后的校验数据,其中,更新后的校验数据通过第二多路选择器发送至第二存储器。
在该技术方案中,第二模式是可纠错数据的字节写或半字写,也可以称之为Byte或HalfWord写。在该模式下,首先控制电路向第一存储器和第二存储器发送读操作,以便将第一存储器上的可纠错数据和第二存储器上的校验数据送至解码电路,此时,解码电路将其作为读取结果发送至第一多路选择器,以供第一多路选择器将待写入的可纠错数据和读取结果进行混合,进而更新可纠错数据。
其中,在可纠错数据更新之后,第一多路选择器可以将其发送至第一存储器和编码电路,以便实现第一存储器上的可纠错数据的更新,同时,编码电路在接收到更新后的可纠错数据之后,也会对更新的可纠错数据进行重新编码,以便更新校验数据,并利用编码电路与第二存储器的连接关系,将更新后的校验数据发送至第二存储器,以便在第二存储器中校验数据的更新。
在上述任一技术方案中,在纠错存储系统运行在第三模式的情况下,控制电路向第一存储器和第二存储器发起读操作,其中,解码电路根据可纠错数据和校验数据输出读取结果;控制电路输出读取结果。
在该技术方案中,第三模式可以是可纠错数据的读操作,其中,控制电路向第一存储器和第二存储器发送读操作,以便将第一存储器上的可纠错数据和第二存储器上的校验数据送至解码电路,此时,解码电路将其作为读取结果发送至控制电路,以便控制电路将其发送至总线,从而实现存储器中数据的读取。
在上述任一技术方案中,解码电路还用于:根据可纠错数据和校验数据输出状态标识信息;其中,状态标识信息包括单个位错误纠错或至少两个位错误检测。
在该技术方案中,解码电路利用校验数据对可纠错数据进行校验,并根据校验结果输出状态标识信息,以供用户进行查看。
具体地,状态标识信息可以是没有错误、单个位错误纠错、还可以是至少两个位错误检测。
具体地,在没有错误的情况下,无状态标识信息输出;而在存在单个位错误纠错的情况下,输出1比特错误,并对单个位错误进行纠正;而在至少两个位错误检测的情况下,输出2比特错误。
在其中一个技术方案中,单个位错误纠错位,Single Error Correction,SEC。
在其中一个技术方案中,至少两个位错误检测,Double Error Detection,DED。
基于此,在没有错误的情况下,SEC和DED均为0;
在存在单个位错误纠错的情况下,SEC为1,DED为0;
在存在至少两个位错误检测的情况下,SEC为0,DED为1。
在其中一个技术方案中,在存在至少两个位错误检测的情况下,不进行纠错,中止当前写操作,以供与控制电路通信的中央处理器进行处理,其中,中央处理器与控制电路之间通过总线通信。
在上述任一技术方案中,在纠错存储系统运行在第四模式的情况下,控制电路向第一多路选择器发送不可纠错数据,第一多路选择器将不可纠错数据发送至第一存储器或第二多路选择器;其中,在第二多路选择器接收到不可纠错数据的情况下,将不可纠错数据发送至第二存储器。
在该技术方案中,第四模式是不可纠错数据的写,也即将不可纠错数据写入到存储器,此时,控制电路可以利用第一多路选择器将不可纠错数据发送至第一存储器,以便在第一存储器存储;控制电路可以利用第一多路选择器将不可纠错数据发送至第二多路选择器,以供第二多路选择器将其发送至第二存储器,进而在第二存储器上存储。
在其中一个技术方案中,控制电路可以利用第一多路选择器将不可纠错数据中的部分数据发送至第一存储器,以便在第一存储器存储,同时,就将不可纠错数据中的剩余数据发送至第二多路选择器,以供第二多路选择器将其发送至第二存储器,进而在第二存储器上存储。
在上述技术方案中,可以根据实际写入需要将不可纠错数据存储在存储器中,以便满足不同场景下的写入需要。
在上述任一技术方案中,在纠错存储系统运行在第五模式的情况下,控制电路根据访问地址,获取第一存储器和/或第二存储器上的不可纠错数据。
在该技术方案中,第五模式可以是不可纠错数据的读,控制电路可以根据访问地址确定访问的存储器,进而从第一存储器或第二存储器上读取不可纠错数据。
本发明的第三方面提供了一种芯片,包括:如上述技术方案中任一项的纠错存储系统。
在该技术方案中,提出了一种芯片,其中,芯片具有上述纠错存储系统,因此,具有上述纠错存储系统的全部有益技术效果,在此不再进行赘述。
在上述技术方案中,该芯片可以是内存条上的芯片。
本发明的第四方面提供了一种车辆,包括:如上述芯片。
在该技术方案中,提出了一种车辆,在该车辆中具有上述芯片,因此,具有上述芯片的全部有益技术效果,在此不再进行赘述。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明实施例中存储装置的示意框图;
图2示出了本发明实施例中纠错存储系统的示意框图。
其中,图1和图2中的附图标记与部件名称之间的对应关系为:
102第一存储器,1022第一存储分区,1024第三存储分区,104第二存储器,1042第二存储分区,1044第四存储分区,202控制电路,204第一多路选择器,206编码电路,208第二多路选择器,210解码电路。
具体实施方式
为了能够更清楚地理解本发明的上述方面、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
在其中一个实施例中,如图1所示,提出了一种存储装置,包括:第一存储器102和第二存储器104,第一存储器102和第二存储器104中的一个用于存储可纠错数据,第一存储器102和第二存储器104中的另一个用于存储可纠错数据对应的校验数据;在第一存储器102和第二存储器104中还包括可存储空间的情况下,可存储空间能够用于存储不可纠错数据,其中,可存储空间是第一存储器102和第二存储器104中除去可纠错数据和校验数据所占用的存储空间之外的存储空间。
本申请的实施例提出了一种用于存储装置,该存储器由第一存储器102和第二存储器104组成,其中,可纠错数据以及可纠错数据对应的校验数据分别存储在第一存储器102和第二存储器104中,以此降低可纠错数据和校验数据存储时对存储器的要求,同时,也便于利用上述存储器存储普通数据,进而实现存储器中存储空间的充分利用。
具体地,相关实施例中,以32,7汉明码为例,一行为39比特,而作为普通数据仅能存储到32位,对于33位至39位之间无法进行数据存储,因此,存在存储空间的浪费。
本申请的实施例在将可纠错数据和校验数据分开存储时,一行只需存储32比特,也即仅存储可纠错数据,而校验数据可采用另外一行进行存储。
以汉明码为例,校验数据的位数为7位,可通过添加一个0进行占位,从而形成8位的数据,在一行为32位的存储方式下,将4个可纠错数据所对应的校验数据组合,形成32位的组合校验数据,在此情况下,可纠错数据和组合校验数据同时为32位,因此,可以将存储空间中的每一行进行充分利用,同时,上述存储空间也可以用于存储不可纠错数据,以此实现了存储器空间的复用,从而提高了存储器的利用效率。
在其中一个实施例中,可纠错数据和不可纠错数据的差异在于,可纠错数据具有对应的校验数据,而不可纠错数据不具有对应的校验数据。
在其中一个实施例中,可纠错数据可以存储在第一存储器102,还可以存储在第二存储器104,同理,校验数据可以存储在第一存储器102,也可以存储在第二存储器104,可以理解的是,可纠错数据和校验数据可以根据实际使用需要在第一存储器102和第二存储器104之间替换,但不能同时存储在同一个存储器中。
在其中一个实施例中,存储器可以是静态随机存取存储器(Static RandomAccess Memory,SRAM),其中,是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。
其中,存储装置,也即,误差校正码(Error Correcting Code,ECC)存储器,其中,ECC是一种能够实现“错误检查和纠正”的技术。
在上述实施例中,第一存储器102具有第一存储分区1022,第一存储分区1022用于存储可纠错数据,第一存储分区1022的容量为第一数值,第一存储分区1022的容量小于或等于第一存储器102的容量;第二存储器具有第二存储分区1042,第二存储分区1042用于存储校验数据,第二存储分区1042的容量为第二数值;第二数值≥第一数值/4。
在该实施例中,ECC是在奇偶校验的基础上发展而来。在数字电路中,最小的数据单位就是叫“比特(bit)”,也叫数据“位”,“比特”也是内存中的最小单位,它是通过“1”和“0”来表示数据高、低电平信号。
在数字电路中8个连续的比特是一个字节(byte),在内存中不带“奇偶校验”的内存中的每个字节只有8位,若它的某一位存储出了错误,就会使其中存储的相应数据发生改变而导致应用程序发生错误。而带有“奇偶校验”的内存在每一字节(8位)外又额外增加了一位用来进行错误检测。比如一个字节中存储了某一数值(1、0、1、0、1、0、1、1),把这每一位相加起来(1+0+1+0+1+0+1+1=5),5是奇数,如果采用奇校验(即一个字节(8位)加上检错的那1位共9位对应数字的和为奇数),那么检错的那一位就应该是0(5+0=5才是奇数),如果采用偶校验(即一个字节(8位)加上检错的那1位共9位对应数字的和为偶数)那么检错的那一位就应该是1(5+1=6才是偶数)当CPU返回读取存储的数据时,它会再次相加前8位中存储的数据,计算结果是否与校验位相一致。当CPU发现二者不同时就会尝试纠正这些错误。但Parity的不足是:当内存查到某个数据位有错误时,不能准确定位存在错误的数据位,也就不一定能修正错误。
Parity内存是通过在原来数据位的基础上增加一个校验位来检查数据位上8位数据的正确性,但随着数据位的增加校验位也成倍增加,八位数据位需要一位校验位,十六位数据位需要两位校验位。ECC也是在原来的数据位上外加校验位来实现的。它与Parity不同的是如果数据位是8位,则需要增加5位来进行ECC错误检查和纠正,数据位每增加一倍,ECC只增加一位检验位,也就是说当数据位为16位时ECC位为6位,32位时ECC位为7位,数据位为64位时ECC位为8位,依此类推,数据位每增加一倍,ECC位只增加一位。ECC有更多位数的校验位,容错能力更强。
在本申请的实施例中,通过限定第二数值≥第一数值/4,以便上述存储器能够适配现有纠错算法。
具体地,在ECC纠错算法可选用Hamming Code(汉明码)或Hsiao Code(萧氏码)的情况下,第一存储器102的宽度为32位,第二存储器104的容量至少为第一存储器102的1/4,也即宽度为8位。
举例来说,对于每一个32位数据的可纠错数据,都有一个8比特字节来对应校验数据。由于32位可纠错数据只需7比特,所以每个字节的第8比特可以存为0进行补位。
在上述任一实施例中,第一存储器102具有第三存储分区1024,第二存储器104具有第四存储分区1044;其中,第三存储分区1024和第四存储分区1044的访问地址连续。
在该实施例中,通过限定第三存储分区1024和第四存储分区1044的访问地址连续,以便提高不可纠错数据访问的便利。
在其中一个实施例中,第一存储分区1022和第二存储分区1042的访问地址连续,第三存储分区1024和第四存储分区1044的访问地址不连续。
在该实施例中,可以根据实际设计需要选择第一存储分区1022和第二存储分区1042的访问地址,以便满足实际使用需要。
在上述任一实施例中,第一存储分区1022的访问地址和第三存储分区1024的访问地址具有不同的地址段;和/或第二存储分区1042的访问地址与第四存储分区1044的访问地址具有不同的地址段。
在该实施例中,通过为第一存储分区1022和第三存储分区1024设定不同的地址端,以便在进行数据的读取时,可以利用访问地址的地址段实现可纠错数据和不可纠错数据的区分,以便实现不同数据的有针对性的读取。
同理,通过为第二存储分区1042和第四存储分区1044设定不同的地址端,以便在进行数据的读取时,可以利用访问地址的地址段实现可纠错数据和不可纠错数据的区分,以便实现不同数据的有针对性的读取。
举例来说,访问地址位HADDR[20]为高是可纠错数据访问,HADDR[20]为低是不可纠错数据访问。
在上述任一实施例中,在不存在可纠错数据和校验数据的情况下,第一存储器102和第二存储器104还能用于存储不可纠错数据。
在该实施例中,在存储器不需要存储可纠错数据和校验数据的情况下,用于存储可纠错数据和校验数据的存储空间还能用于存储不可纠错数据,进而提高了存储器的利用率。
在其中一个实施例中,可以根据实际使用需要设定第一存储分区1022和第二存储分区1042的大小,以便满足不同使用场景下的使用需要。
在其中一个实施例中,存储装置为用于错误检查和纠错的存储装置。
在其中一个实施例中,上文中的存储器可以是存储芯片。
在其中一个实施例中,提供了一种纠错存储系统,包括:如上述实施例中任一项的存储装置。
在该实施例中,提出了一种纠错存储系统,在该纠错存储系统中,包括如上文中的存储装置,因此,可纠错数据以及可纠错数据对应的校验数据分别存储在第一存储器102和第二存储器104中,以此降低可纠错数据和校验数据存储时对存储器的要求,同时,也便于利用上述存储器存储普通数据,进而实现存储器中存储空间的充分利用。
在上述实施例中,如图2所示,还包括:控制电路202;第一多路选择器204,第一多路选择器204的第一输入端与控制电路202连接,第一多路选择器204的输出端与存储装置中的第一存储器102、第二多路选择器208的第一输入端和编码电路206的输入端连接;编码电路206,编码电路206的输出端与第二多路选择器208的第二输入端连接;第二多路选择器208,第二多路选择器208的输出端与存储装置中的第二存储器104连接;解码电路210,解码电路210的输入端与第一存储器102和第二存储器104连接,解码电路210的输出端与控制电路202和第一多路选择器204的第二输入端连接。
在该实施例中,通过设置编码电路206、第一多路选择器204、第二多路选择器208和解码电路210,以便实现校验数据的生成,同时,也可以实现可纠错数据、不可纠错数据的读取和写入,进而兼容相关实施例中的数据读取和写入。
具体地,编码电路206能够基于纠错算法,如汉明码或萧氏码对可纠错数据进行编码,从而生成与可纠错数据对应的校验数据。
对应的,解码能够将读取的可纠错数据和对应的校验数据进行组合,形成新的数据,进而实现纠错和检测。
其中,第一多路选择器204和第二多路选择器208用于进行数据的混合以及访问某一访问地址数据的读取和写入。
在上述任一实施例中,在纠错存储系统运行在第一模式的情况下,控制电路202向第一多路选择器204发送可纠错数据,第一多路选择器204将可纠错数据发送至第一存储器102和编码电路206,编码电路206对可纠错数据进行编码,得到校验数据,其中,校验数据通过第二多路选择器208发送至第二存储器104。
在该实施例中,第一模式是可纠错数据的整字写,也即Word写,其中,控制电路202从总线上获取可纠错数据,并将可纠错数据发送至第一多路选择器204,以便第一多路选择器204将可纠错数据送至编码电路206和第一存储器102,以便在第一存储器102上存储可纠错数据,而编码电路206对可纠错数据进行编码,得到校验数据,并将校验数据发送至第二多路选择器208,以供第二多路选择器208将校验书存储在第二存储器104。
具体地,第一多路选择器204将可纠错数据存储在第一存储器102中的第一存储分区1022,第二多路选择器208将校验数据存储在第二存储器104中的第二存储分区1042。
其中,第一多路选择器204和第二多路选择器208中的“第一”、“第二”仅用于在多路选择器的数量为多个的情况下,区分不同多路选择器。
其中,多路选择器是数据选择器的别称。在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多路选择器或多路开关,其中,数据选择器可以从任意一路选数据出来,还可以从一路选1个字节,从另外一路选3个字节(字节写)或者从一路选2个字节,从另外一路选2个字节(半字写)。
在上述任一实施例中,在纠错存储系统运行在第二模式的情况下,控制电路202向第一存储器102和第二存储器104发起读操作,其中,解码电路210根据可纠错数据和校验数据输出读取结果;第一多路选择器204根据待写入的可纠错数据和读取结果更新可纠错数据,并将更新后的可纠错数据发送至第一存储器102和编码电路206,编码电路206对更新后的可纠错数据进行编码,得到更新后的校验数据,其中,更新后的校验数据通过第二多路选择器208发送至第二存储器104。
在该实施例中,第二模式是可纠错数据的字节写或半字写,也可以称之为Byte或HalfWord写。在该模式下,首先控制电路202向第一存储器102和第二存储器104发送读操作,以便将第一存储器102上的可纠错数据和第二存储器104上的校验数据送至解码电路210,此时,解码电路210将其作为读取结果发送至第一多路选择器204,以供第一多路选择器204将待写入的可纠错数据和读取结果进行混合,进而更新可纠错数据。
其中,在可纠错数据更新之后,第一多路选择器204可以将其发送至第一存储器102和编码电路206,以便实现第一存储器102上的可纠错数据的更新,同时,编码电路206在接收到更新后的可纠错数据之后,也会对更新的可纠错数据进行重新编码,以便更新校验数据,并利用编码电路206与第二存储器104的连接关系,将更新后的校验数据发送至第二存储器104,以便在第二存储器104中校验数据的更新。
在上述任一实施例中,在纠错存储系统运行在第三模式的情况下,控制电路202向第一存储器102和第二存储器104发起读操作,其中,解码电路210根据可纠错数据和校验数据输出读取结果;控制电路202输出读取结果。
在该实施例中,第三模式可以是可纠错数据的读操作,其中,控制电路202向第一存储器102和第二存储器104发送读操作,以便将第一存储器102上的可纠错数据和第二存储器104上的校验数据送至解码电路210,此时,解码电路210将其作为读取结果发送至控制电路202,以便控制电路202将其发送至总线,从而实现存储器中数据的读取。
在上述任一实施例中,解码电路210还用于:根据可纠错数据和校验数据输出状态标识信息;其中,状态标识信息包括单个位错误纠错或至少两个位错误检测。
在该实施例中,解码电路210利用校验数据对可纠错数据进行校验,并根据校验结果输出状态标识信息,以供用户进行查看。
具体地,状态标识信息可以是没有错误、单个位错误纠错、还可以是至少两个位错误检测。
具体地,在没有错误的情况下,无状态标识信息输出;而在存在单个位错误纠错的情况下,输出1比特错误,并对单个位错误进行纠正;而在至少两个位错误检测的情况下,输出2比特错误。
在其中一个实施例中,单个位错误纠错位,Single Error Correction,SEC。
在其中一个实施例中,至少两个位错误检测,Double Error Detection,DED。
基于此,在没有错误的情况下,SEC和DED均为0;
在存在单个位错误纠错的情况下,SEC为1,DED为0;
在存在至少两个位错误检测的情况下,SEC为0,DED为1。
在其中一个实施例中,在存在至少两个位错误检测的情况下,不进行纠错,中止当前写操作,以供与控制电路202通信的中央处理器进行处理,其中,中央处理器与控制电路202之间通过总线通信。
在上述任一实施例中,在纠错存储系统运行在第四模式的情况下,控制电路202向第一多路选择器204发送不可纠错数据,第一多路选择器204将不可纠错数据发送至第一存储器102或第二多路选择器208;其中,在第二多路选择器208接收到不可纠错数据的情况下,将不可纠错数据发送至第二存储器104。
在该实施例中,第四模式是不可纠错数据的写,也即将不可纠错数据写入到存储器,此时,控制电路202可以利用第一多路选择器204将不可纠错数据发送至第一存储器102,以便在第一存储器102存储;控制电路202可以利用第一多路选择器204将不可纠错数据发送至第二多路选择器208,以供第二多路选择器208将其发送至第二存储器104,进而在第二存储器104上存储。
在其中一个实施例中,控制电路202可以利用第一多路选择器204将不可纠错数据中的部分数据发送至第一存储器102,以便在第一存储器102存储,同时,就将不可纠错数据中的剩余数据发送至第二多路选择器208,以供第二多路选择器208将其发送至第二存储器104,进而在第二存储器104上存储。
在上述实施例中,可以根据实际写入需要将不可纠错数据存储在存储器中,以便满足不同场景下的写入需要。
在上述任一实施例中,在纠错存储系统运行在第五模式的情况下,控制电路202根据访问地址,获取第一存储器102和/或第二存储器104上的不可纠错数据。
在该实施例中,第五模式可以是不可纠错数据的读,控制电路202可以根据访问地址确定访问的存储器,进而从第一存储器102或第二存储器104上读取不可纠错数据。
在其中一个实施例中,提供了一种芯片,包括:如上述实施例中任一项的纠错存储系统。
在该实施例中,提出了一种芯片,其中,芯片具有上述纠错存储系统,因此,具有上述纠错存储系统的全部有益技术效果,在此不再进行赘述。
在上述实施例中,该芯片可以是内存条上的芯片。
在其中一个实施例中,提供了一种车辆,包括:如上述芯片。
在该实施例中,提出了一种车辆,在该车辆中具有上述芯片,因此,具有上述芯片的全部有益技术效果,在此不再进行赘述。
本申请的说明书和权利要求书中的术语“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的文字描述中,除非另有说明,“多个”的含义是两个或两个以上。另外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
在本发明的文字描述中,可以理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明的实施例和简化描述本发明的实施例,而不是指示或暗示所指的结构、装置、元件必须具有特定的方位、以特定的方位构造和操作,因此这些描述不能理解为对本发明的限制。
在本发明的文字描述中,可以理解的是,除有明确的规定和限定之外,术语“安装”、“相连”、“连接”应做广义理解,举例来说,可以是固定地连接,也可以是可拆卸地连接,或一体地连接;可以是机械结构连接,也可以是电气连接;可以是两者直接相连,也可以是两者通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的一般技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的权利要求书、说明书和说明书附图中,术语“多个”则指两个或两个以上,除非有额外的明确限定,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了更方便地描述本发明和使得描述过程更加简便,而不是为了指示或暗示所指的装置或元件必须具有所描述的特定方位、以特定方位构造和操作,因此这些描述不能理解为对本发明的限制;术语“连接”、“安装”、“固定”等均应做广义理解,举例来说,“连接”可以是多个对象之间的固定连接,也可以是多个对象之间的可拆卸连接,或一体地连接;可以是多个对象之间的直接相连,也可以是多个对象之间的通过中间媒介间接相连。对于本领域的一般技术人员而言,可以根据上述数据地具体情况理解上述术语在本发明中的具体含义。
在本发明的权利要求书、说明书和说明书附图中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本发明的权利要求书、说明书和说明书附图中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种存储装置,其特征在于,包括:
第一存储器和第二存储器,所述第一存储器和所述第二存储器中的一个用于存储可纠错数据,所述第一存储器和所述第二存储器中的另一个用于存储所述可纠错数据对应的校验数据;
在所述第一存储器和所述第二存储器中还包括可存储空间的情况下,所述可存储空间能够用于存储不可纠错数据,其中,所述可存储空间是所述第一存储器和所述第二存储器中除去所述可纠错数据和所述校验数据所占用的存储空间之外的存储空间。
2.根据权利要求1所述的存储装置,其特征在于,
所述第一存储器具有第一存储分区,所述第一存储分区用于存储所述可纠错数据,所述第一存储分区的容量为第一数值,所述第一存储分区的容量小于或等于所述第一存储器的容量;
所述第二存储器具有第二存储分区,所述第二存储分区用于存储所述校验数据,所述第二存储分区的容量为第二数值;
所述第二数值≥所述第一数值/第三数值;
其中,所述第三数值的取值为以下中的一种:
2、4、8。
3.根据权利要求2所述的存储装置,其特征在于,所述第一存储器具有第三存储分区,所述第二存储器具有第四存储分区;
其中,所述第三存储分区和所述第四存储分区的访问地址连续。
4.根据权利要求3所述的存储装置,其特征在于,所述第一存储分区的访问地址和所述第三存储分区的访问地址具有不同的地址段;和/或
所述第二存储分区的访问地址与所述第四存储分区的访问地址具有不同的地址段。
5.根据权利要求1至4中任一项所述的存储装置,其特征在于,
在不存在所述可纠错数据和所述校验数据的情况下,所述第一存储器和所述第二存储器还能用于存储所述不可纠错数据。
6.根据权利要求5所述的存储装置,其特征在于,
所述存储装置为用于错误检查和纠错的存储装置。
7.一种纠错存储系统,其特征在于,包括:
如权利要求1至6中任一项所述的存储装置。
8.根据权利要求7所述的纠错存储系统,其特征在于,还包括:
控制电路;
第一多路选择器,所述第一多路选择器的第一输入端与所述控制电路连接,所述第一多路选择器的输出端与所述存储装置中的第一存储器、第二多路选择器的第一输入端和编码电路的输入端连接;
所述编码电路,所述编码电路的输出端与所述第二多路选择器的第二输入端连接;
所述第二多路选择器,所述第二多路选择器的输出端与所述存储装置中的第二存储器连接;
解码电路,所述解码电路的输入端与所述第一存储器和所述第二存储器连接,所述解码电路的输出端与所述控制电路和所述第一多路选择器的第二输入端连接。
9.根据权利要求8所述的纠错存储系统,其特征在于,
在所述纠错存储系统运行在第一模式的情况下,所述控制电路向所述第一多路选择器发送可纠错数据,所述第一多路选择器将所述可纠错数据发送至第一存储器和编码电路,所述编码电路对所述可纠错数据进行编码,得到校验数据,其中,所述校验数据通过所述第二多路选择器发送至第二存储器。
10.根据权利要求8所述的纠错存储系统,其特征在于,
在所述纠错存储系统运行在第二模式的情况下,所述控制电路向所述第一存储器和所述第二存储器发起读操作,其中,解码电路根据所述可纠错数据和所述校验数据输出读取结果;
所述第一多路选择器根据待写入的所述可纠错数据和所述读取结果更新所述可纠错数据,并将更新后的所述可纠错数据发送至第一存储器和编码电路,所述编码电路对更新后的所述可纠错数据进行编码,得到更新后的校验数据,其中,更新后的所述校验数据通过所述第二多路选择器发送至第二存储器。
11.根据权利要求8所述的纠错存储系统,其特征在于,
在所述纠错存储系统运行在第三模式的情况下,所述控制电路向所述第一存储器和所述第二存储器发起读操作,其中,解码电路根据所述可纠错数据和所述校验数据输出读取结果;
所述控制电路输出所述读取结果。
12.根据权利要求10或11所述的纠错存储系统,其特征在于,所述解码电路还用于:
根据所述可纠错数据和所述校验数据输出状态标识信息;
其中,所述状态标识信息包括单个位错误纠错或至少两个位错误检测。
13.根据权利要求8至11中任一项所述的纠错存储系统,其特征在于,在所述纠错存储系统运行在第四模式的情况下,
所述控制电路向所述第一多路选择器发送不可纠错数据,所述第一多路选择器将所述不可纠错数据发送至所述第一存储器或所述第二多路选择器;
其中,在所述第二多路选择器接收到所述不可纠错数据的情况下,将所述不可纠错数据发送至所述第二存储器。
14.根据权利要求8至11中任一项所述的纠错存储系统,其特征在于,在所述纠错存储系统运行在第五模式的情况下,所述控制电路根据访问地址,获取所述第一存储器和/或所述第二存储器上的不可纠错数据。
15.一种芯片,其特征在于,包括:
如权利要求8至14中任一项所述的纠错存储系统。
16.一种车辆,其特征在于,包括:
如权利要求15所述的芯片。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211559070.1A CN115938461A (zh) | 2022-12-06 | 2022-12-06 | 存储装置、纠错存储系统、芯片和车辆 |
PCT/CN2023/075036 WO2024119610A1 (zh) | 2022-12-06 | 2023-02-08 | 存储装置、纠错存储系统、芯片和车辆 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211559070.1A CN115938461A (zh) | 2022-12-06 | 2022-12-06 | 存储装置、纠错存储系统、芯片和车辆 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115938461A true CN115938461A (zh) | 2023-04-07 |
Family
ID=86650390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211559070.1A Pending CN115938461A (zh) | 2022-12-06 | 2022-12-06 | 存储装置、纠错存储系统、芯片和车辆 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115938461A (zh) |
WO (1) | WO2024119610A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000099410A (ja) * | 1998-09-25 | 2000-04-07 | Nec Corp | メモリ制御回路と情報処理装置 |
KR102131802B1 (ko) * | 2013-03-15 | 2020-07-08 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 독출 방법, 비휘발성 메모리 장치, 및 메모리 시스템의 구동 방법 |
CN107924369B (zh) * | 2015-09-11 | 2021-08-31 | 东芝存储器株式会社 | 存储器装置 |
US11204835B2 (en) * | 2018-10-12 | 2021-12-21 | Supermem, Inc. | Error correcting memory systems |
CN110289041B (zh) * | 2019-06-25 | 2021-05-18 | 浙江大学 | 一种系统芯片中bist与ecc结合的存储器检测装置 |
-
2022
- 2022-12-06 CN CN202211559070.1A patent/CN115938461A/zh active Pending
-
2023
- 2023-02-08 WO PCT/CN2023/075036 patent/WO2024119610A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024119610A1 (zh) | 2024-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4071940B2 (ja) | メモリ設計のための共有式誤り訂正 | |
US8381077B2 (en) | Systems and methods for implementing error correction in relation to a flash memory | |
EP1204921B1 (en) | System and method for detecting double-bit errors and for correcting errors due to component failures | |
US20040088636A1 (en) | Error detection/correction code which detects and corrects a first failing component and optionally a second failing component | |
US5768294A (en) | Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address | |
US20030140300A1 (en) | (146,130) error correction code utilizing address information | |
JPH06324951A (ja) | 誤り検査/訂正機能を有するコンピュータ・システム | |
WO2012039983A1 (en) | Memory device with ecc history table | |
WO2004003750A2 (en) | Error detection/correction code which detects component failure and which provides single bit error correction upon such detection | |
JPS6061837A (ja) | エラ−訂正装置 | |
JPS6122826B2 (zh) | ||
US10917119B2 (en) | Data storage system and associated data storing method for reducing data error rate | |
EP0242595A2 (en) | Error detection using variable field parity checking | |
US5761221A (en) | Memory implemented error detection and correction code using memory modules | |
JPS6148061A (ja) | マルチプロセッサ・コンピュータ・システム | |
CN110716824B (zh) | 编码方法及使用所述编码方法的存储器存储装置 | |
KR20210156713A (ko) | 개선된 ecc 메모리 칩 인코더 및 디코더 | |
JPS6085627A (ja) | 巡回完全2進符号のデコ−ダ | |
CN115938461A (zh) | 存储装置、纠错存储系统、芯片和车辆 | |
US6003152A (en) | System for N-bit part failure detection using n-bit error detecting codes where n less than N | |
US9361180B2 (en) | Storing data by an ECC memory | |
JP3654655B2 (ja) | データ処理システム | |
US20190294497A1 (en) | Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same | |
CN111796774A (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
KR20070112953A (ko) | Ecc 제어회로, 제어방법 및 반도체 메모리 장치 |
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 |