CN117369733B - 集成电路、数据处理系统和车辆 - Google Patents
集成电路、数据处理系统和车辆 Download PDFInfo
- Publication number
- CN117369733B CN117369733B CN202311674636.XA CN202311674636A CN117369733B CN 117369733 B CN117369733 B CN 117369733B CN 202311674636 A CN202311674636 A CN 202311674636A CN 117369733 B CN117369733 B CN 117369733B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- error detection
- chip
- circuit
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 29
- 230000015654 memory Effects 0.000 claims abstract description 374
- 238000001514 detection method Methods 0.000 claims abstract description 350
- 238000012795 verification Methods 0.000 claims abstract description 28
- 238000012937 correction Methods 0.000 claims description 96
- 230000001172 regenerating effect Effects 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 abstract description 7
- 238000000034 method Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 8
- 230000008439 repair process Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 239000000446 fuel Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 241001244708 Moroccan pepper virus Species 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种集成电路、数据处理系统和车辆。该集成电路包括片内存储电路、存储控制电路和第一差错检测电路,片内存储电路包括第一存储器和第二存储器,第一存储器用于存储目标数据,第二存储器用于目标数据的第一校验信息;第一存储器和第二存储器为磁性随机存储器或可变电阻式存储器;存储控制电路用于对第一存储器、第二存储器和与集成电路连接的片外存储器执行读/写操作;第一差错检测电路用于基于第一校验信息对目标数据进行差错检测,在确定目标数据存在差错的情况下,基于第一校验信息和/或目标数据的备份数据对目标数据进行恢复。该集成电路能够兼顾数据的正确率、性能和生产成本。
Description
技术领域
本申请涉及集成电路技术领域,尤其涉及一种集成电路、数据处理系统和车辆。
背景技术
如微控制单元(MCU)和片上系统(SoC)等芯片通常会集成非易失性存储器(Non-Volatile Memory,NVM),用于存储掉电后需要保持的数据。传统的芯片中通常采用闪存(Flash)工艺来实现NVM,Flash存储器成本低、存储密度大且稳定性较好。
但是,随着摩尔定律的发展,特别是在28nm之后的先进工艺节点Flash生产变得极其的困难。目前业界主流的芯片代工厂的flash工艺均停留在了28nm工艺节点,并宣布不再研发28nm以下的flash工艺。如果选择在芯片内部集成flash,会导致芯片无法采用更先进制程,进而会导致芯片失去先进制程所带来的性能和成本优势。
新一代的NVM技术可以采用更先进的制程进行设计,使得芯片能够采用更先进的制程进行设计,且相较于Flash新一代的NVM具有更高的读写速度,更长的寿命,更低的功耗等优点。但是,新一代的NVM技术仍处于发展期,稳定性有待提升。
发明内容
有鉴于现有技术中存在的上述问题,本申请提供了一种集成电路、数据处理系统和车辆,本申请实施例采用的技术方案如下所示。
本申请第一方面提供了一种集成电路,包括:
片内存储电路,包括第一存储器和第二存储器,所述第一存储器用于存储目标数据,所述第二存储器用于存储所述目标数据的第一校验信息;所述第一存储器和所述第二存储器为磁性随机存储器或可变电阻式存储器;
存储控制电路,用于对所述第一存储器、所述第二存储器和与所述集成电路连接的片外存储器执行读/写操作;所述片外存储器用于存储所述目标数据的备份数据;
第一差错检测电路,用于基于所述第一校验信息对所述目标数据进行差错检测,在确定所述目标数据存在差错的情况下,基于所述第一校验信息和/或所述目标数据的备份数据对所述目标数据进行恢复,通过所述存储控制电路将恢复后的目标数据回写到所述第一存储器。
在一些实施例中,所述目标数据包括多个第一数据单元,所述第一校验信息包括多个第一纠错码,多个所述第一纠错码与多个所述第一数据单元一一对应;所述第一差错检测电路具体用于:
基于所述第一纠错码,对所述第一数据单元进行差错检测;
在确定该第一数据单元存在第一数据量的数据差错的情况下,基于该第一纠错码对该第一数据量的数据差错进行恢复,并通过所述存储控制电路将恢复后的第一数据单元回写到所述第一存储器;
在确定该第一数据单元存在第二数据量的数据差错的情况下,获取所述目标数据的备份数据,基于所述备份数据对该第一数据单元进行恢复,并将恢复后的第一数据单元回写到所述第一存储器。
在一些实施例中,所述第一差错检测电路还用于:
在确定所述第一纠错码存在差错的情况下,基于所述第一数据单元对所述第一纠错码进行恢复,将恢复后的第一纠错码回写到所述第二存储器。
在一些实施例中,所述目标数据包括多个第二数据单元;所述第一校验信息包括多个第一检错码,多个所述第一检错码与多个所述第二数据单元一一对应;所述第一差错检测电路具体用于:
基于所述第一检错码对相对应的第二数据单元进行差错检测;
在确定所述第二数据单元存在差错的情况下,获取所述目标数据的备份数据,基于所述备份数据对该第二数据单元进行恢复,并将恢复后的第二数据单元回写到所述第一存储器。
在一些实施例中,所述片内存储电路具有与所述目标数据相对应第一片内地址空间、与所述第一校验信息相对应的第二片内地址空间,以及不同于所述第一片内地址空间和所述第二片内地址空间的第三片内地址空间;
所述第一差错检测电路具体用于:
在所接收的读请求指向所述第一片内地址空间的情况下,通过所述存储控制电路从所述第一存储器读取所述目标数据,并基于该读请求反馈所述目标数据;或者
在所接收的读请求指向所述第二片内地址空间的情况下,通过所述存储控制电路从所述第二存储器读取所述第一校验信息,并基于该读请求反馈所述第一校验信息;或者
在所接收的读请求指向所述第三片内地址空间的情况下,通过所述存储控制电路从所述第一存储器读取所述目标数据并从所述第二存储器读取所述第一校验信息;基于该读请求反馈检测通过的目标数据或恢复后的目标数据。
在一些实施例中,所述第一差错检测电路还用于:
接收用于请求将目标数据写入所述片内存储电路的写请求;
基于所述目标数据,获取所述目标数据的第一校验信息;
通过所述存储控制电路将所述目标数据写入所述第一存储器,并将所述第一校验信息写入所述第二存储器。
在一些实施例中,所述存储控制电路包括:
第一存储控制器,用于对所述第一存储器执行读/写操作;
第二存储控制器,用于对所述第二存储器执行读/写操作;
第三存储控制器,用于与集成电路外部的片外存储器连接并对所述片外存储器执行读写操作。
在一些实施例中,所述目标数据包括一个或多个第一数据块,所述片外存储器还用于存储所述目标数据的第二校验信息,所述第二校验信息包括与所述第一数据块一一对应的第一校验码;
所述集成电路还包括交叉检测电路,所述交叉检测电路用于:
在满足第一预设条件的情况下,通过所述存储控制电路从所述第一存储器读取所述第一数据块,并从所述片外存储器读取相对应的第一校验码;
基于所述第一校验码,对所述目标数据的第一数据块进行差错检测;
在确定所述第一数据块存在差错的情况下,通过所述存储控制电路从所述片外存储器读取所述备份数据,基于所述备份数据对该存在差错的第一数据块进行恢复,将恢复后的第一数据块回写到所述第一存储器。
在一些实施例中,所述交叉检测电路具体用于:
在满足所述第一预设条件的情况下,向所述第一差错检测电路发送请求读取所述第一数据块的读请求,通过该读请求触发所述第一差错检测电路利用所述第一校验信息对所述第一数据块进行差错检测;
接收所述第一差错检测电路发送的检测通过的第一数据块或恢复后的第一数据块。
在一些实施例中,所述第一差错检测电路具体用于:
接收所述交叉检测电路发送的恢复后的第一数据块;
基于恢复后的第一数据块重新生成相对应的第一校验信息,
通过所述存储控制电路将恢复后的第一数据块回写到所述第一存储器;
通过所述存储控制电路将重新生成的第一校验信息写入所述第二存储器,以替换所述第二存储器中相对应的第一校验信息。
在一些实施例中,所述片外存储器还用于存储所述目标数据的第二校验信息;所述集成电路还包括第二差错检测电路,所述第二差错检测电路用于:
通过所述存储控制电路从所述片外存储器读取所述备份数据和所述第二校验信息;
基于所述第二校验信息对所述备份数据进行差错检测;
在确定所述备份数据存在差错的情况下,基于所述第二校验信息和/或所述目标数据对所述备份数据进行恢复,通过所述存储控制电路将恢复后的备份数据回写到所述片外存储器。
在一些实施例中,所述备份数据包括多个第三数据单元,所述第二校验信息包括与所述第三数据单元一一对应的多个第二纠错码;所述第二差错检测电路具体用于:
基于所述第二纠错码,对所述第三数据单元进行差错检测;
在确定该第三数据单元存在第一数据量的数据差错的情况下,基于该第二纠错码对该第一数据量的数据差错进行恢复;通过所述存储控制电路将恢复后的第三数据单元回写到所述片外存储器;
在确定该第三数据单元存在第二数据量的数据差错的情况下,通过所述第一差错检测电路获取所述目标数据;基于所述目标数据对该第三数据单元进行恢复;通过所述存储控制电路将恢复后的第三数据单元回写到所述片外存储器。
在一些实施例中,所述备份数据包括多个第四数据单元;所述第二校验信息包括多个第二检错码,多个所述第二检错码与多个所述第四数据单元一一对应;所述第二差错检测电路具体用于:
基于所述第二检错码,对所述第四数据单元进行差错检测;
在确定所述第四数据单元存在差错的情况下,通过所述第一差错检测电路获取所述目标数据;基于所述目标数据对该第四数据单元进行恢复;通过所述存储控制电路将恢复后的第四数据单元回写到所述片外存储器。
在一些实施例中,所述片外存储器具有与所述备份数据相对应的第一片外地址空间,与所述第二校验信息相对应的第二片外地址空间,以及不同于所述第一片外地址空间和所述第二片外地址空间的第三片外地址空间;所述第二差错检测电路具体用于:
在所接收的读请求指向所述第一片外地址空间的情况下,通过所述存储控制电路从所述片外存储器读取所述备份数据,并基于该读请求反馈所述备份数据;或者
在所接收的读请求指向所述第二片外地址空间的情况下,通过所述存储控制电路从所述片外存储器读取所述第二校验信息,并基于该读请求反馈所述第二校验信息;或者
在所接收的读请求指向所述第三片外地址空间的情况下,通过所述存储控制电路从所述片外存储器读取所述备份数据和所述第二校验信息;基于该读请求反馈检测通过的备份数据或恢复后的备份数据。
在一些实施例中,所述备份数据包括一个或多个第二数据块,所述第一校验信息包括与所述第二数据块一一对应的第二校验码;所述集成电路还包括交叉检测电路,所述交叉检测电路用于:
在满足第二预设条件的情况下,通过所述第二差错检测电路获取所述第二数据块,通过所述第一差错检测电路获取所述第二校验码;
基于所述第二校验码,对所述第二数据块进行差错检测;
在确定所述第二数据块存在差错的情况下,通过所述第一差错检测电路获取所述目标数据;基于所述目标数据对该存在差错的第二数据块进行恢复;通过所述第二差错检测电路将恢复后的第二数据块回写到所述片外存储器。
在一些实施例中,所述交叉检测电路具体用于:
在满足第二预设条件的情况下,向所述第二差错检测电路发送请求读取所述第二数据块的读请求,通过该读请求触发所述第二差错检测电路利用所述第二校验信息对所述第二数据块进行差错检测;
接收所述第二差错检测电路发送的检测通过的第二数据块或恢复后的第二数据块。
在一些实施例中,所述第二差错检测电路具体用于:
接收所述交叉检测电路发送的恢复后的第二数据块;
基于恢复后的第二数据块重新生成相对应的第二校验信息;
通过所述存储控制电路将恢复后的第二数据块和所述第二校验信息,写入所述片外存储器,并替换所述片外存储器中相对应的第二校验信息。
在一些实施例中,所述集成电路还包括系统访问控制器,所述系统访问控制器通过片上总线与一个或多个数据处理电路连接;所述系统访问控制器用于:
接收所述数据处理电路发送的请求读取所述目标数据的读请求;
将请求读取所述目标数据的读请求发送至所述第一差错检测电路;
接收所述第一差错检测电路反馈的检测通过的目标数据或恢复后的目标数据,并通过所述片上总线将检测通过的目标数据或恢复后的目标数据反馈至所述数据处理电路;或者
接收所述数据处理电路发送的请求读取所述备份数据的读请求;
将请求读取所述备份数据的读请求发送至所述第二差错检测电路;
接收所述第二差错检测电路反馈的检测通过的备份数据或恢复后的备份数据,并通过所述片上总线将检测通过的备份数据或恢复后的备份数据反馈至所述数据处理电路。
本申请第二方面提供了一种数据处理系统,包括如上所述的集成电路,以及用于存储所述目标数据的备份数据的片外存储器;所述集成电路的存储控制电路还用于对所述片外存储器执行读/写操作。
本申请第三方面提供了一种车辆,包括如上所述的数据处理系统。
本申请实施例的集成电路,能够在一定程度上克服所述目标数据和所述第一校验信息出现共因失效,能够显著提高片内存储电路中数据的正确率。而且由于第一存储器和第二存储器为磁性随机存储器(MRAM)或可变电阻式存储器(RRAM),可采用例如小于28nm的先进制程进行设计和制造,使得集成电路整体能够采用例如小于28nm的先进制程进行设计和制造,有益于提高集成电路的整体性能,且有益于降低生产成本。
附图说明
图1为本申请第一种实施例的集成电路的原理图。
图2为本申请第二种实施例的集成电路的原理图。
图3为本申请第三种实施例的集成电路的原理图。
图4为本申请第四种实施例的集成电路的原理图。
图5为本申请第五种实施例的集成电路的原理图。
图6为本申请第六种实施例的集成电路的原理图。
图7为本申请第六种实施例的集成电路的数据流图。
具体实施方式
此处参考附图描述本申请的各种方案以及特征。
应理解的是,可以对此处申请的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本申请的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本申请的实施例,并且与上面给出的对本申请的大致描述以及下面给出的对实施例的详细描述一起用于解释本申请的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本申请的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本申请进行了描述,但本领域技术人员能够确定地实现本申请的很多其它等效形式都应视为位于本申请所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本申请的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本申请的具体实施例;然而,应当理解,所申请的实施例仅仅是本申请的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本申请模糊不清。因此,本文所申请的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本申请。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本申请的相同或不同实施例中的一个或多个。
本申请实施例提供了一种集成电路,图1为本申请第一种实施例的集成电路的原理图,参见图1所示,本申请实施例的集成电路包括片内存储电路110、存储控制电路120和第一差错检测电路130。
所述片内存储电路110包括第一存储器111和第二存储器112,所述第一存储器111用于存储目标数据,所述第二存储器112用于存储所述目标数据的第一校验信息。所述第一存储器111和所述第二存储器112可为磁性随机存储器(Magnetic Random Access Memory,缩写MRAM)或可变电阻式存储器(Resistive Random Access Memory,缩写RRAM)。
可选的,所述片内存储电路110不仅限于包括第一存储器111和第二存储器112,所述片内存储电路110还可包括第三存储器、第四存储器或其他存储器等等。所述第一存储器111不仅限于存储所述目标数据,还可用于存储其他数据。类似的,所述第二存储器112也不仅限于存储所述第一校验信息,也可用于存储其他数据。例如,所述第一存储器111和/或所述第二存储器112也可用于存储所述集成电路运行过程中的临时文件或其他文件。
所述存储控制电路120用于对所述第一存储器111和所述第二存储器112执行读/写操作。可以理解的是,所述存储控制电路120可用于向所述第一存储器111写入所述目标数据,或者从所述第一存储器111读取所述目标数据。所述存储控制电路120还可用于向所述第二存储器112写入所述第一校验信息,或者从所述第二存储器112读取所述第一校验信息。
可选的,所述存储控制电路120可通过单一的控制电路形成,也可通过多个能够单独执行读/写操作的控制电路形成。可选的,所述存储控制电路120包括第一存储控制器121和第二存储控制器122,如图2所示。所述第一存储控制器121可用于对所述第一存储器111执行读/写操作,所述第二存储控制器122可用于对所述第二存储器112执行读/写操作。如此,有益于提高读写效率。
所述第一差错检测电路130用于基于所述第一校验信息对所述目标数据进行差错检测,在确定所述目标数据存在差错的情况下,基于所述第一校验信息和/或所述目标数据的备份数据对所述目标数据进行恢复,通过所述存储控制电路120将恢复后的目标数据回写到所述第一存储器111。
可选的,在数据写入过程中,所述第一差错检测电路130可用于接收写请求,该写请求可用于请求将目标数据写入所述片内存储电路110。所述第一差错检测电路130可响应于该写请求,基于所述目标数据获取所述目标数据的第一校验信息。通过所述存储控制电路120将所述目标数据写入所述第一存储器111,并将所述第一校验信息写入所述第二存储器112。优选的,所述第一差错检测电路130可基于所述目标数据和所述目标数据的存储地址,生成所述第一校验信息。当然,所述第一校验信息不仅限于由所述第一差错检测电路130来生成,所述第一校验信息也可由其他具有数据处理功能的电路来生成。
可选的,所述目标数据可包括程序文件及所述集成电路掉电后需要保存的各种数据。例如,所述目标数据可包括系统文件、系统数据、应用程序文件、应用程序数据、日志文件、车辆的传感器数据、车辆的行车记录等等。所述第一校验信息用于对所述目标数据进行差错检测,所述第一校验信息可包括但不限于错误检查和纠正校验码(ECC)、BCH码(BCHcodes、Bose–Chaudhuri–Hocquenghem codes)、循环冗余码(CRC)、哈希码(Hash)等等。
可选的,所述第一校验信息可包括单一类型的校验信息,所述第一差错检测单路可基于该单一类型的校验信息对目标数据进行差错检测。所述第一校验信息也可包括多种类型的校验信息,所述第一差错检测电路130可从多种类型的校验信息中择一对所述目标数据进行差错检测,或者所述第一差错检测电路130也可基于多种类型的校验信息依次对所述目标数据进行差错检测,以提高差错检测的准确性。
可选的,所述第一校验信息可配置为既能够对所述目标数据进行差错检测,还能够对存在差错的目标数据进行恢复。此时,所述第一差错检测电路130在确定所述目标数据存在差错的情况下,可基于所述第一校验信息对所述目标数据进行恢复。
可选的,所述第一校验信息也可配置为能够对所述目标数据的特定类型差错进行恢复。在确定所述目标数据存在该特定类型差错的情况下,可基于所述第一校验信息对所述目标数据进行恢复。在确定所述目标数据存在其他类型差错的情况下,可基于所述目标数据的备份数据对所述目标数据进行恢复。
可选的,所述第一校验信息也可不具有对所述目标数据进行恢复的能力。此时,在确定所述目标数据存在差错的情况下,可基于所述备份数据对所述目标数据进行恢复。
可选的,所述备份数据可存储在所述片内存储电路110中的一个存储器中。例如,所述备份数据可存储在所述第一存储器111或所述第二存储器112中。或者,所述备份数据也可存储在所述片内存储电路110中所述第一存储器111和第二存储器112之外的其他存储器中,如第三存储器或第四存储器中。
可选的,所述备份数据也可存储在所述集成电路之外的片外存储器中,如图3所示。如此,能够在一定程度上避免目标数据和备份数据出现共因失效,可提高系统的可靠性。可选的,所述片外存储器可为闪存(Flash)或其他类型的存储器。
可选的,所述存储控制电路120还可用于从所述片外存储器中读取所述备份数据。也即,所述存储控制电路120不仅限于能够对片内存储电路110中的存储器执行读/写操作,还可用于对片外存储器执行读写操作。
可选的,所述存储控制电路120还可包括第三存储控制器123,所述第三存储控制器123可用于与所述集成电路之外的片外存储器连接,并对所述片外存储器执行读写操作,如图3所示。在确定所述目标数据存在差错,且需要利用备份数据对所述目标数据进行修复的情况下,所述第一差错检测电路130可通过所述第三存储控制器123,从所述片外存储器读取所述备份数据。继而,利用所述备份数据对所述目标数据进行恢复。
本申请实施例的集成电路,片内存储电路110包括第一存储器111和第二存储器112,通过第一存储器111存储目标数据,通过第二存储器112存储目标数据的第一校验信息,第一差错检测电路130能够通过存储控制电路120分别从所述第一存储器111和所述第二存储器112读取目标数据和第一校验信息,基于第一校验信息对目标数据进行差错检测,在确定目标数据存在差错的情况下,基于第一校验信息和/或目标数据的备份数据对目标数据进行恢复,通过存储控制电路120将恢复后的目标数据回写到所述第一存储器111。如此,能够在一定程度上克服所述目标数据和所述第一校验信息出现共因失效,能够显著提高片内存储电路110中数据的正确率。而且由于第一存储器111和第二存储器112为磁性随机存储器(MRAM)或可变电阻式存储器(RRAM),可采用例如小于28nm的先进制程进行设计和制造,使得集成电路整体能够采用例如小于28nm的先进制程进行设计和制造,有益于提高集成电路的整体性能,且有益于降低生产成本。
在一些实施例中,所述目标数据包括多个第一数据单元。所述第一校验信息包括多个第一纠错码,多个所述第一纠错码与多个所述第一数据单元一一对应。可选的,所述第一纠错码可配置为能够对第一数据单元中第一数据量的数据差错进行检测和纠错。
在此基础上,可通过所述第一差错检测电路130基于所述第一纠错码,对所述第一数据单元进行差错检测。如果确定该第一数据单元存在第一数据量的数据差错,则基于该第一纠错码对该第一数据量的数据差错进行恢复,并通过所述存储控制电路120将恢复后的第一数据单元回写到所述第一存储器111。
可选的,所述第一纠错码包括但不限于ECC码、BCH码等等。举例来说,所述第一纠错码可包括ECC纠错码。所述第一数据单元可包括例如32bit或64bit的数据单元。在数据写入过程中,可通过所述第一差错检测电路130基于每个32bit或64bit的数据单元生成一个与之相对应的ECC纠错码,将该32bit或64bit的数据单元存储在第一存储器111中,将相对应的ECC纠错码存储在第二存储器112中。所述第一差错检测电路130还可生成第一数据单元和所述第一纠错码的映射关系。在此基础上,所述第一差错检测电路130可基于该映射关系,从第一存储器111中读取该32bit或64bit的数据单元,并从第二存储器112读取相对应的ECC纠错码。所述ECC纠错码可配置为能够对该32bit或64bit的数据单元中的1bit数据差错进行检测和纠错。在确定该32bit或64bit的数据单元中存在1bit数据差错时,通过ECC纠错码对该1bit数据差错进行纠错,之后,将恢复后的32bit或64bit的数据单元回写到第一存储器111中。
可选的,所述第一纠错码还可配置为能够对第一数据单元中第二数据量的数据差错进行检测,但不能对第二数据量的数据差错进行纠错,所述第二数据量可大于所述第一数据量。在此基础上,所述第一差错检测电路130还可基于所述第一纠错码检测所述第一数据单元中是否存在第二数据量的数据差错。如果确定该第一数据单元存在第二数据量的数据差错,则获取所述目标数据的备份数据,基于所述备份数据对该第一数据单元进行恢复,并将恢复后的第一数据单元回写到所述第一存储器111。
示例性的,所述ECC纠错码还可配置为能够对例如32bit或64bit的数据单元中2bit数据差错进行检测,但不能对2bit数据差错进行纠错。所以,在确定该32bit或64bit的数据单元中存在2bit数据差错时,可从例如片外存储器获取备份数据,基于备份数据对该2bit数据差错进行恢复。之后,将恢复后的32bit或64bit的数据单元回写到第一存储器111中。
可选的,基于所述第一纠错码对所述第一数据单元中第一数据量的数据差错进行检测和纠错,与基于所述第一纠错码对所述第一数据单元中第二数据量的数据差错进行检测,可以同步执行,也可分步执行。例如,可基于ECC纠错码同步检测32bit或64bit的数据单元中是否存在1bit数据差错和2bit数据差错。
可选的,所述第一差错检测电路130在基于所述第一纠错码对所述第一数据单元进行差错检测过程中,还可检测所述第一纠错码是否存在差错。如果确定所述第一纠错码存在差错,可基于所述第一数据单元对所述第一纠错码进行恢复,将恢复后的第一纠错码回写到所述第二存储器112。例如,所述第一差错检测单元在利用ECC算法基于该ECC纠错码,对该32bit或64bit的数据单元进行差错检测过程中还可确定ECC纠错码是否存在差错。如果确定所述ECC纠错码存在差错,可基于该32bit或64bit的数据单元对所述ECC纠错码进行恢复,并将恢复后的ECC纠错码回写到第二存储器112。
在一些实施例中,所述目标数据包括多个第二数据单元。所述第一校验信息还可包括多个第一检错码,多个所述第一检错码与多个所述第二数据单元一一对应。可选的,所述第一检错码可配置为能够对第二数据单元进行差错检测,但不能对第二数据单元进行纠错。
可通过所述第一差错检测电路130基于所述第一检错码对相对应的第二数据单元进行差错检测。在确定所述第二数据单元存在差错的情况下,获取所述目标数据的备份数据,基于所述备份数据对该第二数据单元进行恢复,并将恢复后的第二数据单元回写到所述第一存储器111。
可选的,所述第一检错码可包括但不限于CRC码、HASH码等等。示例性的,所述第二数据单元可包括32bit或64bit的数据单元,所述第一检错码可包括CRC检错码。在数据写入过程中,可通过所述第一差错检测电路130将待写入的目标数据划分为多个32bit或64bit的数据单元,基于各个32bit或64bit的数据单元生成与之相对应的CRC检错码。将该32bit或64bit的数据单元写入第一存储器111,将CRC检错码写入第二存储器112,并生成该32bit或64bit的数据单元和CRC检错码的映射关系。
所述CRC检错码可配置为能够对该32bit或64bit的数据单元进行差错检测,但不能对该32bit或64bit的数据单元进行恢复。所述第一差错检测电路130可基于所述CRC检错码对该32bit或64bit的数据单元进行差错检测。如果该32bit或64bit的数据单元存在差错,则所述第一差错检测电路130获取备份数据,基于备份数据恢复该32bit或64bit的数据单元,将恢复后的32bit或64bit的数据单元回写到第一存储器111。
在实际应用时,所述第一校验信息可包括第一纠错码,也可包括第一检错码,或者可同时包括第一纠错码和第一检错码。在此基础上,所述第一差错检测电路130可仅基于第一纠错码对目标数据进行差错检测,也可仅基于第一检错码对目标数据进行差错检测,亦或者还可分别基于第一纠错码和第一检错码对目标数据进行差错检测,以提高集成电路的数据稳定性和安全性。
可选的,所述第二数据单元与所述第一数据单元可为相同的数据单元,也可为不同的数据单元。例如,在数据写入过程中,可通过所述第一差错检测电路130将待写入的目标数据划分为多个32bit或64bit的数据单元,基于各个32bit或64bit的数据单元分别生成ECC纠错码和CRC检错码。在数据读取过程中,所述第一差错检测电路130可基于ECC纠错码对该32bit或64bit的数据单元中1bit的数据差错进行检测和纠错,对该32bit或64bit的数据单元中2bit的数据差错进行检测。对于检测通过的32bit或64bit的数据单元或恢复后的32bit或64bit的数据单元,还可利用CRC检错码对该32bit或64bit的数据单元其他类型的数据差错进行检测。如果确定该32bit或64bit的数据单元存在差错,则可获取备份数据,基于备份数据对该32bit或64bit的数据单元进行恢复。
在一些实施例中,所述片内存储电路110具有与所述目标数据相对应第一片内地址空间、与所述第一校验信息相对应的第二片内地址空间,以及不同于所述第一片内地址空间和所述第二片内地址空间的第三片内地址空间。
所述第一差错检测电路130用于接收指向所述片内存储电路110的读请求。在所接收的读请求指向所述第一片内地址空间的情况下,通过所述存储控制电路120从所述第一存储器111读取所述目标数据,并基于该读请求反馈所述目标数据。
在所接收的读请求指向所述第二片内地址空间的情况下,通过所述存储控制电路120从所述第二存储器112读取所述第一校验信息,并基于该读请求反馈所述第一校验信息。
在所接收的读请求指向所述第三片内地址空间的情况下,通过所述存储控制电路120从所述第一存储器111读取所述目标数据并从所述第二存储器112读取所述第一校验信息;基于该读请求反馈检测通过的目标数据或恢复后的目标数据。
如此,可通过所述第一差错检测电路130从所述片内存储电路110中读取第一校验信息,可在不对所述目标数据进行差错检测的情况下直接从所述第一存储器111读取目标数据,也可在对所述目标数据进行差错检测的情况下读取检测通过的目标数据或恢复后的目标数据,能够提高数据读取的灵活性。
可选的,所述第一存储器111和所述第二存储器112均可具有保留地址空间,可利用保留地址空间存储所述目标数据和所述第一校验信息之外的其他数据。
配合图4所示,在一些实施例中,所述片外存储器还用于存储所述目标数据的第二校验信息。所述集成电路还包括第二差错检测电路140。所述第二差错检测电路140可通过所述存储控制电路120从所述片外存储器读取所述备份数据和所述第二校验信息。基于所述第二校验信息对所述备份数据进行差错检测。如果确定所述备份数据存在差错,则可基于所述第二校验信息和/或所述目标数据,对所述备份数据进行恢复,通过所述存储控制电路120将恢复后的备份数据回写到所述片外存储器。如此,使得所述集成电路不仅能够对所述目标数据进行差错检测,还能够对所述片外存储器中的备份数据进行差错检测,在保障所述备份数据的正确率的基础上,也能够间接保障所述目标数据的正确率。
可选的,所述第二差错检测电路140还可响应请求将备份数据写入片外存储器的写请求,基于所述备份数据生成第二校验信息。通过所述存储控制电路120将所述备份数据和所述第二校验信息写入所述片外存储器。优选的,所述第二差错检测电路140可响应于写请求,基于所述备份数据和所述备份数据的存储地址,生成所述备份数据的第二校验信息。
在一些实施例中,所述备份数据包括多个第三数据单元,所述第二校验信息还包括与所述第三数据单元一一对应的多个第二纠错码。可选的,所述第二纠错码可配置为能够对第三数据单元中第一数据量的数据差错进行检查和纠错。可通过所述第二差错检测电路140基于所述第二纠错码,对所述第三数据单元中是否存在第一数据量的数据差错进行检测。在确定该第三数据单元存在第一数据量的数据差错的情况下,基于该第二纠错码对该第三数据单元中的第一数据量的数据差错进行恢复。通过所述存储控制电路120将恢复后的第三数据单元回写到所述片外存储器。
可选的,所述二纠错码还可配置为能够对第三数据单元中第二数据量的数据差错进行检测,但不能对第二数据量的数据差错进行纠错。在此基础上,还可基于所述第二纠错码对所述第三数据单元中第二数据量的数据差错进行检测。如果确定所述第三数据单元中存在第二数据量的数据差错,则通过所述第一差错检测电路130获取所述目标数据。基于所述目标数据对该第三数据单元进行恢复,通过所述存储控制电路120将恢复后的第三数据单元回写到所述片外存储器。
可选的,所述第二差错检测电路140在基于所述第二纠错码对所述第三数据单元进行差错检测过程中,还可检测所述第二纠错码是否存在差错。如果确定所述第二纠错码存在差错,可基于所述第三数据单元对所述第二纠错码进行恢复,将恢复后的第二纠错码回写到所述片外存储器中。
可选的,所述备份数据的第三数据单元与所述目标数据的第一数据单元的数据量可以相同,也可以不同。例如,所述第三数据单元也可包括例如32bit或64bit的数据单元。所述第二纠错码也可包括ECC纠错码。所述第二差错检测电路140基于ECC纠错码对32bit或64bit的数据单元进行差错检测及纠错的过程,与所述第一差错检测电路130基于ECC纠错码对32bit或64bit的数据单元进行差错检测及纠错的过程类似,此处不再赘述。
可以理解的是,将目标数据划分为第一数据单元的数据粒度,以及将备份数据划分为第三数据单元的数据粒度,均可根据实际需要进行设定,不仅限于32bit或64bit。所述第一纠错码和所述第二纠错码可选用多种不同类型的具有对数据进行检错和纠错功能的编码。例如,ECC码、BCH码、纠随机错误码、纠突发错误码、纠随机与突发错误码、纠同步错误码等等。所述第一纠错码和所述第二纠错码所能够纠正和检测的数据差错不仅限于1bit数据差错和2bit数据差错,在选用不同类型的纠错码时,所能够纠正和检测的错误可能相同,也可能不相同。所述第一纠错码和所述第二纠错码可采用相同类型的纠错码,也可采用不同类型的纠错码。
在一些实施例中,所述备份数据包括多个第四数据单元,所述第二校验信息还包括多个第二检错码,多个所述第二检错码与多个所述第四数据单元一一对应。可选的,所述第二检错码可配置为能够对第四数据单元进行差错检测,但不能对第四数据单元进行纠错。
可通过所述第二差错检测电路140基于所述第二检错码,对所述第四数据单元进行差错检测。如果所述第四数据单元存在差错,通过所述第一差错检测电路130获取所述目标数据,基于所述目标数据对该第四数据单元进行恢复,通过所述存储控制电路120将恢复后的第四数据单元回写到所述片外存储器。
可选的,所述第二检错码可包括CRC码或HASH码等等。示例性的,所述第二检错码可包括CRC检错码,所述第四数据单元可包括32bit或64bit的数据单元,所述第二差错检测单元可基于该CRC检错码对该32bit或64bit的数据单元进行差错检测。具体过程与第一差错检测单元基于CRC检错码对32bit或64bit的数据单元进行差错检测类似,此处不再赘述。
可选的,所述第四数据单元与所述第三数据单元可以为相同的数据单元,也可以为不同的数据单元。所述备份数据中的第四数据单元与所述目标数据中第二数据单元的数据量可以相同,也可以不同。
可选的,所述第二校验信息可仅包括所述第二纠错码,可仅包括所述第二检错码,也可同时包括所述第二纠错码和所述第二检错码。在此基础上,所述第二差错检测电路140可仅基于所述第二纠错码对所述备份数据进行差错检测,也可仅基于所述第二检错码对所述备份数据进行差错检测,亦或者可分别基于所述第二纠错码和所述第二检错码对所述备份数据进行差错检测,以提高所述备份数据的稳定性和安全性。
在一些实施例中,所述片外存储器具有与所述备份数据相对应的第一片外地址空间,与所述第二校验信息相对应的第二片外地址空间,以及不同于所述第一片外地址空间和所述第二片外地址空间的第三片外地址空间。
所述第二差错检测电路140可用于接收指向所述片外存储器的读请求。在所接收的读请求指向所述第一片外地址空间的情况下,通过所述存储控制电路120从所述片外存储器读取所述备份数据,并基于该读请求反馈所述备份数据。
在所接收的读请求指向所述第二片外地址空间的情况下,通过所述存储控制电路120从所述片外存储器读取所述第二校验信息,并基于该读请求反馈所述第二校验信息。
在所接收的读请求指向所述第三片外地址空间的情况下,通过所述存储控制电路120从所述片外存储器读取所述备份数据和所述第二校验信息;基于该读请求反馈检测通过的备份数据或恢复后的备份数据。
如此,可通过所述第二差错检测电路140从所述片外存储器中读取第二校验信息,或者基于读请求反馈未进行差错检测的备份数据、检测通过的备份数据或恢复后的备份数据,能够提高数据读取的灵活性。
例如,在所述第一差错检测电路130确定所述目标数据存在差错,需要利用备份数据对所述目标数据进行恢复的情况下,所述第一差错检测电路130可向所述第二差错检测电路140发送指向所述第一片外地址空间或所述第三片外地址空间的读请求。所述第二差错检测电路140可响应于该读请求,反馈未进行差错检测的备份数据、检测通过的备份数据或恢复后的备份数据。
可选的,所述片外存储器还可具有保留地址空间,可利用所述片外存储器的保留地址空间存储所述备份数据和所述第二校验信息之外的其他数据。
配合图5所示,在一些实施例中,所述集成电路还可包括系统访问控制器150,所述系统访问控制器150可通过片上总线160与一个或多个数据处理电路连接。例如,所述系统访问控制器150可通过片上总线160与芯片中的一个或多个硬件域连接。所述系统访问控制器150可通过片上总线160接收所述数据处理电路发送的读请求。基于读请求所请求访问的地址空间,将所述读请求下发至所述第一差错检测电路130或所述第二差错检测电路140。
具体来说,如果该读请求指向片内存储电路110的片内地址空间,则将读请求下发至所述第一差错检测电路130。通过所述第一差错检测电路130从片内存储电路110读取相对应的数据。如果该读请求指向片外存储器的片外地址空间,则将该读请求下发至第二差错检测电路140。通过所述第二差错检测电路140从片外存储器读取相对应的差错检测电路。
例如,在确定所述数据处理电路发送的读请求指向第三片内地址空间的情况下,可将该读请求发送至第一差错检测电路130。所述第一差错检测电路130在确定该读请求指向第三片内地址空间的情况下,通过第一存储控制器121基于该读请求,从第一存储器111读取相对应的目标数据。通过第二存储控制器122基于目标数据和第一校验信息之间的映射关系,从第二存储器112读取所述第一校验信息。所述第一差错检测电路130基于第一校验信息对目标数据进行差错检测。如果检测通过,则将检测通过的目标数据反馈给系统访问控制器150,通过系统访问控制器150将检测通过的目标数据反馈至数据处理电路。如果确定目标数据存在差错,则基于第一校验信息和/或所述目标数据的备份数据,对所述目标数据进行恢复,通过系统访问控制器150将恢复后的目标数据反馈至数据处理电路。在数据读取环节对目标数据进行差错检测,能够确保数据读取的正确性,进而提系统稳定性。
又例如,在确定所述数据处理电路发送的读请求指向第三片外地址空间的情况下,可将该读请求发送至第二差错检测电路140。所述第二差错检测电路140在确定该读请求指向第三片外地址空间的情况下,通过片外存储控制器基于该读请求,从片外存储器读取相对应的备份数据和第二校验信息。基于所述第二校验信息对所述备份数据进行差错检测。将检测通过的备份数据或恢复后的备份数据反馈至系统访问控制器150,通过系统访问控制器150将检测通过的备份数据或恢复后的备份数据反馈至数据处理电路。
可以理解的是,所述系统访问控制器150也可通过所述第一差错检测电路130读取第一存储器111或所述第二存储器112中的其他数据,也可通过所述第二差错检测电路140从所述片外存储器读取其他数据。在所述集成电路中未设置第二差错检测电路140的情况下,所述系统访问控制器150也可通过所述第一差错检测电路130或存储控制电路120从所述片外存储器读取数据。
配合图6和图7所示,在一些实施例中,所述集成电路还可包括交叉检测电路170。所述目标数据可包括一个或多个第一数据块,所述第二校验信息还可包括与所述第一数据块一一对应的第一校验码。所述第一校验码可配置为能够对所述第一数据块进行差错检测,但不能对所述第一数据块进行纠错。
所述交叉检测电路170可配置为在满足第一预设条件的情况下,通过所述第一差错检测电路130访问所述片内存储控制器获取一个或多个所述第一数据块。通过所述存储控制电路120从所述片外存储器读取该一个或多个所述第一数据块的第一校验码。基于所述第一校验码对相对应的第一数据块进行差错检测。如果所述第一数据块存在差错,通过所述存储控制电路120从所述片外存储器读取备份数据,基于所述备份数据对该存在差错的第一数据块进行恢复。继而,通过所述第一差错检测电路130将恢复后的第一数据回写到所述第一存储器111。
将第一校验码存储在片外存储器中,能够避免因集成电路发生共因失效导致所述第一数据块和所述第一校验码同时损坏,能够进一步提高数据安全性和稳定性。
可选的,在满足第一预设条件的情况下,所述交叉检测电路170可向所述第一差错检测电路130发送指向第一片内存储空间的读请求,请求所述第一差错检测电路130反馈未进行差错检测的第一数据块,以提高响应速度,缩短交叉的差错检测所需时间。
可选的,在满足第一预设条件的情况下,所述交叉检测电路170可向所述第一差错检测电路130发送指向第三片内存储空间的读请求,请求所述第一差错检测电路130基于所述第一校验信息对所述目标数据中的第一数据块进行差错检测。所述第一差错检测电路130将检测通过的第一数据块或恢复后的第一数据块反馈至所述交叉检测电路170。继而,所述交叉检测电路170基于所述第一校验码对所述第一数据块进行交叉的差错检测。如此,能够对目标数据进行多重差错检测,避免片内存储电路110中的数据出现数据错误,适于应用在例如车辆等对于数据的正确性要求较高的应用场景,能够提高车辆整体的安全性。
可选的,所述第一预设条件可包括时间条件、运行状态条件或其他条件。所述交叉检测电路170可在所述集成电路启动过程中,对所述第一存储器111中各个第一数据块进行差错检测及修复,以确保所述集成电路启动完成后能够稳定运行。
所述交叉检测电路170可在集成电路启动完成后,对所述第一存储器111中各个第一数据块进行差错检测及修复。如此,既能够确保片内存储电路110中数据的正确性,还能够避免影响系统启动速度。
所述交叉检测电路170可定期对所述第一存储器111中各个第一数据块进行差错检测及修复,以确保所述片内存储电路110中数据的正确性。例如,可采用定时器按照预设时间间隔触发所述交叉检测电路170,按照预设顺序向所述第一差错检测电路130发送指向第三片内地址空间的读请求,通过所述第一差错检测电路130按照预设顺序对各个第一数据块进行差错检测。继而,通过交叉检测电路170对检测通过的第一数据块或恢复后的第一数据块进行交叉的差错检测。
所述第一差错检测电路130可配置为在确定所述目标数据存在差错的情况下,向所述交叉检测电路170发送用于记录目标数据存在差错这一故障事件的故障信息。所述故障信息可包括但不限于时间信息、地址信息、差错内容、数据量等等。在此基础上,所述交叉检测电路170可统计所述目标数据的差错次数,在所述目标数据的差错次数达到检错阈值的情况下,所述交叉检测电路170可利用所述第一校验码对所述目标数据中的第一数据块进行交叉的差错检测。
举例来说,可预先将所述第一存储器111的地址空间划分为若干个片内子地址空间。所述交叉检测电路170可统计各个片内子地址空间中目标数据的差错次数,在差错次数达到检错阈值的情况下,触发所述交叉检测电路170利用所述第一校验码对该片内子地址空间中第一数据块进行交叉的差错检测。
可选的,所述第一差错检测电路130还可配置为:如果接收到所述交叉检测电路170的写请求,请求将恢复后的第一数据块回写到所述第一存储器111,可基于恢复后的第一数据块重新生成相对应的第一校验信息,将重新生成的第一校验信息写入所述第二存储器112,以替换所述第二存储器112中的第一校验信息。如此,能够保证目标数据和第一校验信息一致,避免因数据恢复造成目标数据和第一校验信息不一致,有利于提高系统稳定性和安全性。
可选的,所述交叉检测电路170还可用于将所述目标数据划分为多个第一数据块,基于所述第一数据块生成相对应的第一校验码。通过所述第二差错检测电路140将所述第一校验码写入到所述片外存储器中,并生成所述第一数据块和所述第一校验码之间的映射关系。
可选的,所述第一校验码也可通过所述第一差错检测电路130、所述第二差错检测电路140或其他电路生成。例如,所述第一差错检测电路130可响应于请求将目标数据写入所述第一存储器111的写请求,基于所述目标数据生成第一纠错码、第一检错码和第一校验码。通过所述第一存储控制器121将所述目标数据写入所述第一存储器111,通过所述第二存储控制器122将所述第一纠错码和所述第一校验码写入所述第二存储器112,通过所述存储控制电路120将所述第一校验码写入所述片外存储器。
可选的,所述第一校验码可包括各种能够对所述第一数据块进行差错检测的编码。例如,CRC码或HASH码等等。示例性的,可通过所述交叉检测电路170预先将所述目标数据划分为4KB的数据块,利用CRC算法基于各个4KB的数据块,分别计算出32bit的CRC校验码。在满足第一预设条件的情况下,通过所述交叉检测电路170利用CRC算法基于4KB的数据块计算另一个CRC校验码,将该另一个CRC校验码与片外存储器中保存的CRC校验码进行比较。如果两个CRC校验码一致,则确定第一数据块检测通过。如果两个CRC校验码不一致,则确定第一数据块存在差错。
继续配合图6和图7所示,在一些实施例中,所述备份数据可包括一个或多个第二数据块,所述第一校验信息可包括与所述第二数据块一一对应的第二校验码。所述第二校验码可配置为能够对所述第二数据块进行差错检测,但不能对所述第二数据块进行纠错。所述交叉检测电路170还可配置为在满足第二预设条件的情况下,通过所述第二差错检测电路140从所述片外存储器中获取一个或多个第二数据块,通过所述第一差错检测电路130从所述第二存储器112中获取相对应的第二校验码。基于所述第二校验码对所述第二数据块进行差错检测。如果所述第二数据块存在差错,通过所述第一差错检测电路130获取所述目标数据,基于所述目标数据对该存在差错的第二数据块进行恢复,通过所述存储控制电路120将恢复后的第二数据块回写到所述片外存储器。如此,能够片外存储器中的备份数据进行交叉的差错检测,能够保证片外存储器中备份数据的正确性、安全性和稳定性。
可选的,在满足第二预设条件的情况下,所述交叉检测电路170可向所述第二差错检测电路140发送指向第一片外存储空间的读请求,请求所述第二差错检测电路140反馈未进行差错检测的第二数据块,以快速的对备份数据进行交叉的差错检测。
可选的,在满足第二预设条件的情况下,所述交叉检测电路170可向所述第二差错检测电路140发送指向第三片外存储空间的读请求,请求所述第二差错检测电路140基于所述第二校验信息对所述备份数据中的第二数据块进行差错检测。所述第二差错检测电路140将检测通过的第二数据块或恢复后的第二数据块反馈至所述交叉检测电路170。继而,所述交叉检测电路170基于所述第二校验码对所述第二数据块进行交叉的差错检测。如此,能够对备份数据进行多种检测,能够提高备份数据的正确率。
可选的,所述第二预设条件可包括时间条件、运行状态条件或其他条件。所述交叉检测电路170可在所述集成电路启动过程中,对所述片外存储器中各个第二数据块进行差错检测及修复,以确保所述集成电路启动完成后能够稳定运行。
所述交叉检测电路170可在集成电路启动完成后,对所述片外存储器中各个第二数据块进行差错检测及修复。如此,既能够确保片外存储器中数据的正确性,还能够避免影响系统启动速度。
所述交叉检测电路170可定期对所述片外存储器中各个第二数据块进行差错检测及修复,以确保所述片外存储其中数据的正确性。例如,可采用定时器按照预设时间间隔触发所述交叉检测电路170,按照预设顺序向所述第二差错检测电路140发送指向第三片外地址空间的读请求,通过所述第二差错检测电路140按照预设顺序对各个第二数据块进行差错检测。继而,通过交叉检测电路170对检测通过的第二数据块或恢复后的第二数据块记性交叉的差错检测。
所述第二差错检测电路140可配置为在确定所述备份数据存在差错的情况下,向所述交叉检测电路170发送用于记录备份数据存在差错的故障信息。所述故障信息可包括但不限于时间信息、地址信息、差错内容、数据量等等。在此基础上,所述交叉检测电路170可统计所述备份数据的差错次数,在所述备份数据的差错次数达到检错阈值的情况下,所述交叉检测电路170可利用所述第二校验码对所述备份数据中的第二数据块进行交叉的差错检测。
举例来说,可预先将所述片外存储器的地址空间划分为若干个片外子地址空间。所述交叉检测电路170可统计各个片外子地址空间中备份数据的差错次数,在差错次数达到检错阈值的情况下,触发所述交叉检测电路170利用所述第二校验码对该片外子地址空间中第二数据块进行交叉的差错检测。
可选的,所述第二数据块的数据量与所述第一数据块的数据量可以相同,也可以不同。在所述第二数据块的数据量与所述第一数据块的数据量相同的情况下,所述第二数据块与所述第一数据块可以一一对应。也即,所述第二数据块可为相对应的第一数据块的备份数据块。
可选的,所述第二差错检测电路140还可配置为:如果接收到所述交叉检测电路170的写请求,请求将恢复后的第二数据块回写到所述片外存储器,可基于恢复后的第二数据块重新生成相对应的第二校验信息,将重新生成的第二校验信息回写到所述片外存储器,以替换所述片外存储器中的第二校验信息。如此,能够避免因数据恢复造成备份数据和第二校验信息不一致。
可选的,所述交叉检测电路170还可用于将所述备份数据划分为多个第二数据块,基于所述第二数据块生成相对应的第二校验码。通过所述第一差错检测电路130将所述第二校验码写入所述第二存储器112中,并生成所述第二数据块和所述第二校验码之间的映射关系。
可选的,所述第二校验码也可通过所述第一差错检测电路130、所述第二差错检测电路140或其他电路生成。例如,所述第二差错检测电路140可响应于请求将备份数据写入所述片外存储器的写请求,基于所述备份数据生成所述第二纠错码、第二检错码和所述第二校验码。通过所述存储控制电路120将所述备份数据、所述第二纠错码和所述第二检错码写入所述片外存储器。通过所述第一差错检测电路130访问所述第二存储控制器122,将所述第二校验码写入所述第二存储器112。
可选的,所述第二校验码可包括各种能够对所述第二数据块进行差错检测的编码。例如,CRC码或HASH码等等。举例来说,可通过所述交叉检测电路170预先将所述备份数据划分为4KB的数据块,利用CRC算法基于各个4KB的数据块,分别计算出32bit的CRC校验码。在满足第二预设条件的情况下,通过所述交叉检测电路170利用CRC算法基于4KB的数据块计算另一个CRC校验码,将该另一个CRC校验码与第二存储器112中保存的CRC校验码进行比较。如果两个CRC校验码一致,则确定第二数据块检测通过。如果两个CRC校验码不一致,则确定第二数据块存在差错。
可选的,所述交叉检错电路还可用于将所述第一差错检测电路130发送的请求读取所述备份数据或所述第一校验码的读请求,发送至所述第二差错检测电路140。或者,所述交叉检测电路170还可用于将所述第二差错检测电路140发送的请求读取所述目标数据或所述第二校验码的读请求,发送至所述第一差错检测电路130。如此,有利于简化集成电路的电路连接关系。
本申请实施例还提供了一种数据处理系统,包括如上任一项所述的集成电路和片外存储器。所述片外存储器用于存储所述目标数据的备份数据。所述集成电路的存储控制电路120还用于对所述片外存储器执行读/写操作。
本申请实施例还提供了一种车辆,包括如上任一实施例所述的数据处理系统。可选的,本申请实施例中的车辆可以是“汽车”、“车辆”和“整车”或者其它相似术语包括一般的机动车辆,例如包括轿车、SUV、MPV、公交车、卡车和其它载货或者载客车辆,包括各种船、艇在内的水运工具,以及航空器等,包括混合动力车辆、电动车辆、燃油车辆、插电式混合动力车辆、燃料电池汽车以及其它代用燃料车辆。其中,混合动力车辆指的是具有两种或者多种动力源的车辆,电动车辆包括纯电动汽车、增程式电动汽车等,本申请对此不做具体限定。
以上实施例仅为本申请的示例性实施例,不用于限制本申请,本申请的保护范围由权利要求书限定。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。
Claims (18)
1.一种集成电路,其特征在于,包括:
片内存储电路,包括第一存储器和第二存储器,所述第一存储器用于存储目标数据,所述目标数据包括一个或多个第一数据块;所述第二存储器用于存储所述目标数据的第一校验信息;所述第一存储器和所述第二存储器为磁性随机存储器或可变电阻式存储器;
存储控制电路,用于对所述第一存储器、所述第二存储器和与所述集成电路连接的片外存储器执行读/写操作;所述片外存储器用于存储所述目标数据的备份数据和所述目标数据的第二校验信息,所述第二校验信息包括与所述第一数据块一一对应的第一校验码;
第一差错检测电路,用于基于所述第一校验信息对所述目标数据进行差错检测,在确定所述目标数据存在差错的情况下,基于所述第一校验信息和/或所述目标数据的备份数据对所述目标数据进行恢复,通过所述存储控制电路将恢复后的目标数据回写到所述第一存储器;
交叉检测电路,用于在满足第一预设条件的情况下,向所述第一差错检测电路发送请求读取所述第一数据块的读请求,通过该读请求触发所述第一差错检测电路利用所述第一校验信息对所述第一数据块进行差错检测;接收所述第一差错检测电路发送的检测通过的第一数据块或恢复后的第一数据块,并从所述片外存储器读取相对应的第一校验码;基于所述第一校验码,对所述目标数据的第一数据块进行差错检测;在确定所述第一数据块存在差错的情况下,通过所述存储控制电路从所述片外存储器读取所述备份数据,基于所述备份数据对该存在差错的第一数据块进行恢复,将恢复后的第一数据块回写到所述第一存储器。
2.根据权利要求1所述的集成电路,其特征在于,所述目标数据包括多个第一数据单元,所述第一校验信息包括多个第一纠错码,多个所述第一纠错码与多个所述第一数据单元一一对应;所述第一差错检测电路具体用于:
基于所述第一纠错码,对所述第一数据单元进行差错检测;
在确定该第一数据单元存在第一数据量的数据差错的情况下,基于该第一纠错码对该第一数据量的数据差错进行恢复,并通过所述存储控制电路将恢复后的第一数据单元回写到所述第一存储器;
在确定该第一数据单元存在第二数据量的数据差错的情况下,获取所述目标数据的备份数据,基于所述备份数据对该第一数据单元进行恢复,并将恢复后的第一数据单元回写到所述第一存储器。
3.根据权利要求2所述的集成电路,其特征在于,所述第一差错检测电路还用于:
在确定所述第一纠错码存在差错的情况下,基于所述第一数据单元对所述第一纠错码进行恢复,将恢复后的第一纠错码回写到所述第二存储器。
4.根据权利要求1至3任一项所述的集成电路,其特征在于,所述目标数据包括多个第二数据单元;所述第一校验信息包括多个第一检错码,多个所述第一检错码与多个所述第二数据单元一一对应;所述第一差错检测电路具体用于:
基于所述第一检错码对相对应的第二数据单元进行差错检测;
在确定所述第二数据单元存在差错的情况下,获取所述目标数据的备份数据,基于所述备份数据对该第二数据单元进行恢复,并将恢复后的第二数据单元回写到所述第一存储器。
5.根据权利要求1所述的集成电路,其特征在于,所述片内存储电路具有与所述目标数据相对应第一片内地址空间、与所述第一校验信息相对应的第二片内地址空间,以及不同于所述第一片内地址空间和所述第二片内地址空间的第三片内地址空间;
所述第一差错检测电路具体用于:
在所接收的读请求指向所述第一片内地址空间的情况下,通过所述存储控制电路从所述第一存储器读取所述目标数据,并基于该读请求反馈所述目标数据;或者
在所接收的读请求指向所述第二片内地址空间的情况下,通过所述存储控制电路从所述第二存储器读取所述第一校验信息,并基于该读请求反馈所述第一校验信息;或者
在所接收的读请求指向所述第三片内地址空间的情况下,通过所述存储控制电路从所述第一存储器读取所述目标数据并从所述第二存储器读取所述第一校验信息;基于该读请求反馈检测通过的目标数据或恢复后的目标数据。
6.根据权利要求1所述的集成电路,其特征在于,所述第一差错检测电路还用于:
接收用于请求将目标数据写入所述片内存储电路的写请求;
基于所述目标数据,获取所述目标数据的第一校验信息;
通过所述存储控制电路将所述目标数据写入所述第一存储器,并将所述第一校验信息写入所述第二存储器。
7.根据权利要求1所述的集成电路,其特征在于,所述存储控制电路包括:
第一存储控制器,用于对所述第一存储器执行读/写操作;
第二存储控制器,用于对所述第二存储器执行读/写操作;
第三存储控制器,用于与集成电路外部的片外存储器连接并对所述片外存储器执行读写操作。
8.根据权利要求1所述的集成电路,其特征在于,所述第一差错检测电路具体用于:
接收所述交叉检测电路发送的恢复后的第一数据块;
基于恢复后的第一数据块重新生成相对应的第一校验信息,
通过所述存储控制电路将恢复后的第一数据块回写到所述第一存储器;
通过所述存储控制电路将重新生成的第一校验信息写入所述第二存储器,以替换所述第二存储器中相对应的第一校验信息。
9.根据权利要求1所述的集成电路,其特征在于,所述片外存储器还用于存储所述目标数据的第二校验信息;所述集成电路还包括第二差错检测电路,所述第二差错检测电路用于:
通过所述存储控制电路从所述片外存储器读取所述备份数据和所述第二校验信息;
基于所述第二校验信息对所述备份数据进行差错检测;
在确定所述备份数据存在差错的情况下,基于所述第二校验信息和/或所述目标数据对所述备份数据进行恢复,通过所述存储控制电路将恢复后的备份数据回写到所述片外存储器。
10.根据权利要求9所述的集成电路,其特征在于,所述备份数据包括多个第三数据单元,所述第二校验信息包括与所述第三数据单元一一对应的多个第二纠错码;所述第二差错检测电路具体用于:
基于所述第二纠错码,对所述第三数据单元进行差错检测;
在确定该第三数据单元存在第一数据量的数据差错的情况下,基于该第二纠错码对该第一数据量的数据差错进行恢复;通过所述存储控制电路将恢复后的第三数据单元回写到所述片外存储器;
在确定该第三数据单元存在第二数据量的数据差错的情况下,通过所述第一差错检测电路获取所述目标数据;基于所述目标数据对该第三数据单元进行恢复;通过所述存储控制电路将恢复后的第三数据单元回写到所述片外存储器。
11.根据权利要求9所述的集成电路,其特征在于,所述备份数据包括多个第四数据单元;所述第二校验信息包括多个第二检错码,多个所述第二检错码与多个所述第四数据单元一一对应;所述第二差错检测电路具体用于:
基于所述第二检错码,对所述第四数据单元进行差错检测;
在确定所述第四数据单元存在差错的情况下,通过所述第一差错检测电路获取所述目标数据;基于所述目标数据对该第四数据单元进行恢复;通过所述存储控制电路将恢复后的第四数据单元回写到所述片外存储器。
12.根据权利要求9所述的集成电路,其特征在于,所述片外存储器具有与所述备份数据相对应的第一片外地址空间,与所述第二校验信息相对应的第二片外地址空间,以及不同于所述第一片外地址空间和所述第二片外地址空间的第三片外地址空间;所述第二差错检测电路具体用于:
在所接收的读请求指向所述第一片外地址空间的情况下,通过所述存储控制电路从所述片外存储器读取所述备份数据,并基于该读请求反馈所述备份数据;或者
在所接收的读请求指向所述第二片外地址空间的情况下,通过所述存储控制电路从所述片外存储器读取所述第二校验信息,并基于该读请求反馈所述第二校验信息;或者
在所接收的读请求指向所述第三片外地址空间的情况下,通过所述存储控制电路从所述片外存储器读取所述备份数据和所述第二校验信息;基于该读请求反馈检测通过的备份数据或恢复后的备份数据。
13.根据权利要求9至12中任一项所述的集成电路,其特征在于,所述备份数据包括一个或多个第二数据块,所述第一校验信息包括与所述第二数据块一一对应的第二校验码;所述交叉检测电路还用于:
在满足第二预设条件的情况下,通过所述第二差错检测电路获取所述第二数据块,通过所述第一差错检测电路获取所述第二校验码;
基于所述第二校验码,对所述第二数据块进行差错检测;
在确定所述第二数据块存在差错的情况下,通过所述第一差错检测电路获取所述目标数据;基于所述目标数据对该存在差错的第二数据块进行恢复;通过所述第二差错检测电路将恢复后的第二数据块回写到所述片外存储器。
14.根据权利要求13所述的集成电路,其特征在于,所述交叉检测电路具体用于:
在满足第二预设条件的情况下,向所述第二差错检测电路发送请求读取所述第二数据块的读请求,通过该读请求触发所述第二差错检测电路利用所述第二校验信息对所述第二数据块进行差错检测;
接收所述第二差错检测电路发送的检测通过的第二数据块或恢复后的第二数据块。
15.根据权利要求13所述的集成电路,其特征在于,所述第二差错检测电路具体用于:
接收所述交叉检测电路发送的恢复后的第二数据块;
基于恢复后的第二数据块重新生成相对应的第二校验信息;
通过所述存储控制电路将恢复后的第二数据块和所述第二校验信息,写入所述片外存储器,并替换所述片外存储器中相对应的第二校验信息。
16.根据权利要求9至12中任一项所述的集成电路,其特征在于,所述集成电路还包括系统访问控制器,所述系统访问控制器通过片上总线与一个或多个数据处理电路连接;所述系统访问控制器用于:
接收所述数据处理电路发送的请求读取所述目标数据的读请求;
将请求读取所述目标数据的读请求发送至所述第一差错检测电路;
接收所述第一差错检测电路反馈的检测通过的目标数据或恢复后的目标数据,并通过所述片上总线将检测通过的目标数据或恢复后的目标数据反馈至所述数据处理电路;或者
接收所述数据处理电路发送的请求读取所述备份数据的读请求;
将请求读取所述备份数据的读请求发送至所述第二差错检测电路;
接收所述第二差错检测电路反馈的检测通过的备份数据或恢复后的备份数据,并通过所述片上总线将检测通过的备份数据或恢复后的备份数据反馈至所述数据处理电路。
17.一种数据处理系统,其特征在于,包括如权利要求1至16中任一项所述的集成电路,以及用于存储所述目标数据的备份数据的片外存储器;所述集成电路的存储控制电路还用于对所述片外存储器执行读/写操作。
18.一种车辆,其特征在于,包括如权利要求17所述的数据处理系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311674636.XA CN117369733B (zh) | 2023-12-07 | 2023-12-07 | 集成电路、数据处理系统和车辆 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311674636.XA CN117369733B (zh) | 2023-12-07 | 2023-12-07 | 集成电路、数据处理系统和车辆 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117369733A CN117369733A (zh) | 2024-01-09 |
CN117369733B true CN117369733B (zh) | 2024-02-23 |
Family
ID=89402636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311674636.XA Active CN117369733B (zh) | 2023-12-07 | 2023-12-07 | 集成电路、数据处理系统和车辆 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117369733B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997002529A1 (en) * | 1995-06-30 | 1997-01-23 | Quantum Corporation | Method and apparatus to protect data within a disk drive buffer |
US6848070B1 (en) * | 1999-11-24 | 2005-01-25 | Intel Corporation | Error correcting code scheme |
KR20070015884A (ko) * | 2005-08-01 | 2007-02-06 | 가부시키가이샤 히타치세이사쿠쇼 | 반도체 기억장치 |
CN105843775A (zh) * | 2016-04-06 | 2016-08-10 | 中国科学院计算技术研究所 | 片上数据划分读写方法、系统及其装置 |
CN106951342A (zh) * | 2017-03-17 | 2017-07-14 | 数据通信科学技术研究所 | 一种TF卡片内Flash的纠错方法 |
CN115408730A (zh) * | 2022-08-29 | 2022-11-29 | 南京芯驰半导体科技有限公司 | 数据处理方法、芯片、电子设备及存储介质 |
CN116457761A (zh) * | 2020-12-08 | 2023-07-18 | 华为技术有限公司 | 一种存储装置、存储控制装置及片上系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7478203B2 (en) * | 2006-03-08 | 2009-01-13 | Sun Microsystems, Inc. | Technique for eliminating dead stores in a processor |
US10248497B2 (en) * | 2014-10-22 | 2019-04-02 | Advanced Micro Devices, Inc. | Error detection and correction utilizing locally stored parity information |
US9912355B2 (en) * | 2015-09-25 | 2018-03-06 | Intel Corporation | Distributed concatenated error correction |
-
2023
- 2023-12-07 CN CN202311674636.XA patent/CN117369733B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997002529A1 (en) * | 1995-06-30 | 1997-01-23 | Quantum Corporation | Method and apparatus to protect data within a disk drive buffer |
US6848070B1 (en) * | 1999-11-24 | 2005-01-25 | Intel Corporation | Error correcting code scheme |
KR20070015884A (ko) * | 2005-08-01 | 2007-02-06 | 가부시키가이샤 히타치세이사쿠쇼 | 반도체 기억장치 |
CN105843775A (zh) * | 2016-04-06 | 2016-08-10 | 中国科学院计算技术研究所 | 片上数据划分读写方法、系统及其装置 |
CN106951342A (zh) * | 2017-03-17 | 2017-07-14 | 数据通信科学技术研究所 | 一种TF卡片内Flash的纠错方法 |
CN116457761A (zh) * | 2020-12-08 | 2023-07-18 | 华为技术有限公司 | 一种存储装置、存储控制装置及片上系统 |
CN115408730A (zh) * | 2022-08-29 | 2022-11-29 | 南京芯驰半导体科技有限公司 | 数据处理方法、芯片、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117369733A (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2715550B1 (en) | Apparatus and methods for providing data integrity | |
US7599235B2 (en) | Memory correction system and method | |
KR101536853B1 (ko) | 데이터 무결성을 제공하기 위한 방법 및 장치 | |
CN107943609B (zh) | 存储器模块、存储器控制器和系统及其相应操作方法 | |
TWI514139B (zh) | 實體頁、邏輯頁及碼字對應 | |
TWI442407B (zh) | 在固態儲存系統中之資料回復 | |
TWI465897B (zh) | 記憶體模組之錯誤檢查與校正系統以及方法 | |
US10884848B2 (en) | Memory device, memory system including the same and operation method of the memory system | |
US11170869B1 (en) | Dual data protection in storage devices | |
CN115083486A (zh) | 带有混合奇偶的tlc数据编程 | |
US11030040B2 (en) | Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system | |
CN111475327A (zh) | 存储系统及其操作方法 | |
US11726665B1 (en) | Memory extension with error correction | |
CN102369515A (zh) | 用于数据存活性的系统和方法 | |
CN100468367C (zh) | 固态存储器的安全存储系统及方法 | |
CN117369733B (zh) | 集成电路、数据处理系统和车辆 | |
CN111221681A (zh) | 一种存储器的修复方法及装置 | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
CN117632579B (zh) | 存储器控制方法和存储器存储装置 | |
US20240061744A1 (en) | Command address fault detection | |
CN116266472A (zh) | 存储器装置交叉矩阵奇偶校验 | |
CN114446356A (zh) | Qlc数据编程 | |
CN114080596A (zh) | 用于存储器的数据保护方法及其存储装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |