CN117453146A - 数据读取方法、系统、eFlash控制器及存储介质 - Google Patents
数据读取方法、系统、eFlash控制器及存储介质 Download PDFInfo
- Publication number
- CN117453146A CN117453146A CN202311773830.3A CN202311773830A CN117453146A CN 117453146 A CN117453146 A CN 117453146A CN 202311773830 A CN202311773830 A CN 202311773830A CN 117453146 A CN117453146 A CN 117453146A
- Authority
- CN
- China
- Prior art keywords
- efflash
- eflash
- data
- main
- auxiliary
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000001360 synchronised effect Effects 0.000 claims description 41
- 238000012795 verification Methods 0.000 claims description 12
- 238000012937 correction Methods 0.000 claims description 11
- 230000006399 behavior Effects 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种数据读取方法、系统、eFlash控制器及存储介质,该系统包括eFlash控制器、一主eFlash和至少一副eFlash,主eFlash和副eFlash在读数据前写入相同数据;eFlash控制器包括数据选择单元、与主eFlash对应的第一eFlash控制单元,以及与副eFlash对应的第二eFlash控制单元,第一eFlash控制单元和第二eFlash控制单元在CPU向eFlash控制器发起读指令时,同步对其对应的eFlash进行读操作;数据选择单元根据读取结果选择主eFlash或副eFlash的读数据。该方案能够在eFlash发生故障时省去切换时间,提高数据读取的实时性。
Description
技术领域
本发明涉及技术领域,尤指一种数据读取方法、系统、eFlash控制器及存储介质。
背景技术
随着智能技术如汽车智能化程度的快速发展,嵌入式系统划定安全优先顺序的需求日益迫切,确保安全的启动过程是保护任何嵌入式系统的首要步骤,也是在应用中预防恶意软件壁垒的必要部分。在电动化、智能化、网联化的趋势下,汽车数据安全越来越重要。eFlash闪存是嵌入式系统中常用的非易失存储器,存储启动的关键信息,对其中数据的正确读取和正确性校验对系统的安全性尤为重要。为了保证系统能够稳定可靠的启动成功,一般会对eFlash数据进行校验或进行冗余设计。
冗余设计普遍采用一个主eFlash和一个备用eFlash;当主eFlash无法正常工作时,才会自动切换到另一个备用eFlash中工作,这种情况下,当检测到eFlash发生故障再切换到副eFlash的中间过程需要一定的切换时间,这个换时间对系统读取的实时性会产生一定的影响。因此,需要一种在eFlash发生故障时不需要切换时间的数据读取方法。
发明内容
本发明的目的是提供一种数据读取方法、系统、eFlash控制器及存储介质,解决现有技术中eFlash发生故障时需要一定切换时间的问题。
本发明提供的技术方案如下:
本发明提供一种数据读取系统,包括:eFlash控制器、一个主eFlash和至少一个副eFlash,且所述主eFlash和所述副eFlash在读数据前写入相同数据;
所述eFlash控制器包括数据选择单元、与所述主eFlash对应的第一eFlash控制单元,以及与所述副eFlash对应的第二eFlash控制单元,
所述第一eFlash控制单元和所述第二eFlash控制单元在CPU向所述eFlash控制器发起读指令时,同步对其对应的eFlash进行读操作;
所述数据选择单元根据读取结果选择所述主eFlash或所述副eFlash的读数据。
通过设置第一eFlash控制单元和第二eFlash控制单元,并在CPU向eFlash控制器发起读指令时,同步对主eFlash和副eFlash进行读操作,使得系统能够根据读取结果选择主eFlash或副eFlash的读数据,从而即使某个eFlash发生故障,也无需进行eFlash的切换,省去了eFlash的切换时间,提高了数据读取的实时性。
在一些实施方式中,所述数据选择单元在所述主eFlash和所述副eFlash的读数据相同时,选择所述主eFlash的读数据。
在一些实施方式中,所述第一eFlash控制单元和所述第二eFlash控制单元还用于记录其对应的eFlash的内存纠错信息,所述内存纠错信息包括可纠正错误信息和不可纠正错误信息;
所述数据选择单元在所述主eFlash和所述副eFlash的读数据不同,且至少一个eFlash发生不可纠正错误时,选择未发生不可纠正错误的一个eFlash的读数据;和/或,
所述数据选择单元在所述主eFlash和所述副eFlash的读数据不同,且各个eFlash均未发生不可纠正错误时,丢弃数据;和/或,
所述数据选择单元在所述主eFlash和所述副eFlash的读数据不同,且各个eFlash均发生不可纠正错误时,丢弃数据。
在一些实施方式中,所述eFlash控制器还包括同步校验单元,所述同步校验单元分别与所述第一eFlash控制单元、所述第二eFlash控制单元连接,用于对所述第一eFlash控制单元和所述第二eFlash控制单元是否同步进行校验,并在不同步时进行异常中断。
通过设置同步校验单元,能够对第一eFlash控制单元和第二eFlash控制单元是否同步进行校验,以保证主eFlash或副eFlash的读数据同步,便于进行后续的比较判断;且能够在第一eFlash控制单元和第二eFlash控制单元不同步时,或主eFlash和副eFlash均故障进行异常中断或锁步报错,避免系统长时间不能获取准确的读数据。
在一些实施方式中,所述同步校验单元在所述第一eFlash控制单元和所述第二eFlash控制单元行为状态不一致时进行锁步报错;和/或,
所述同步校验单元在所述主eFlash和所述副eFlash的数据使能信号不同时进行锁步报错;和/或,
所述同步校验单元在所述主eFlash和所述副eFlash的读数据不同但均未发生不可纠正错误时进行锁步报错;和/或,
所述同步校验单元在所述主eFlash和所述副eFlash的读数据均包含多bit错误时进行锁步报错。
在一些实施方式中,所述主eFlash或所述副eFlash在发生不可纠正错误时通过OTA技术对该eFlash的数据进行升级。
另外,本发明还提供一种数据读取方法,应用于eFlash控制器,所述eFlash控制器中包括数据选择单元、第一eFlash控制单元和第二eFlash控制单元,包括步骤:
在接收CPU发送的读指令时,同步控制所述第一eFlash控制单元对主eFlash,以及所述第二eFlash控制单元对副eFlash进行读操作,所述主eFlash和所述副eFlash在读数据前写入相同数据;
根据读取结果选择所述主eFlash或所述副eFlash的读数据。
在一些实施方式中,所述的据读取结果选择所述主eFlash或所述副eFlash的读数据具体包括:
在所述主eFlash和所述副eFlash的读数据相同时,选择所述主eFlash的读数据;
在所述主eFlash和所述副eFlash的读数据不同,且至少一个eFlash发生不可纠正错误时,选择未发生不可纠正错误的一个eFlash的读数据;
在所述主eFlash和所述副eFlash的读数据不同,且各个eFlash均未发生不可纠正错误时,丢弃数据;
在所述主eFlash和所述副eFlash的读数据不同,且各个eFlash均发生不可纠正错误时,丢弃数据。
另外,本发明还提供一种eFlash控制器,包括:
第一eFlash控制单元,与主eFlash连接;
第二Flash控制单元,与副eFlash连接,且在接收CPU发送的读指令时,所述第一eFlash控制单元和所述第二Flash控制单元同步对所述主eFlash和所述副eFlash进行读操作,所述主eFlash和所述副eFlash在读数据前写入相同数据;
数据选择单元,用于根据读取结果选择所述主eFlash或所述副eFlash的读数据。
另外,本发明还提供一种存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述的数据读取方法所执行的操作。
根据本发明提供的一种数据读取方法、系统、eFlash控制器及存储介质,通过设置第一eFlash控制单元和第二eFlash控制单元,并在CPU向eFlash控制器发起读指令时,同步对主eFlash和副eFlash进行读操作,使得系统能够根据读取结果选择主eFlash或副eFlash的读数据,从而即使某个eFlash发生故障,也无需进行eFlash的切换,省去了eFlash的切换时间,提高了数据读取的实时性。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对本方案的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明实施例的系统结构示意图;
图2是本发明实施例的eFlash数据读取流程示意图。
图中标号:1-主eFlash;2-副eFlash;3-eFlash控制器;4-CPU;11-数据选择单元;12-第一eFlash控制单元;13-第二eFlash控制单元;14-同步校验单元。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
eFlash闪存是嵌入式系统中常用的非易失存储器,存储启动的关键信息,对其中数据的正确读取和正确性校验对系统的安全性尤为重要。为了保证系统能够稳定可靠的启动成功,一般会对eFlash数据进行校验或进行冗余设计。
冗余设计普遍采用一个主eFlash和一个备用eFlash;当主eFlash无法正常工作时,才会自动切换到另一个备用eFlash中工作,这种情况下,当检测到eFlash发生故障再切换到副eFlash的中间过程需要一定的切换时间,这个换时间对系统读取的实时性会产生一定的影响。
在一个实施例中,参考说明书附图1,本发明提供一种数据读取系统,包括:eFlash控制器3、一个主eFlash1和至少一个副eFlash2。
本申请不限定eFlash的数量,但由于eFlash同时发生故障的可能性较低,一般采用一个主eFlash1(即附图1中的eFlash1)和一个副eFlash2(即附图中的eFlash2)即可。为了保证本方案实施的可行性和准确性,主eFlash1和副eFlash2在读数据前需写入相同数据。
具体的,本申请的eFlash可配置为lock-step模式(锁步模式),当处于lock-step模式时,存在一个主eFlash1 和一个副eFlash2,可以通过寄存器配置两块eFlash的主、副关系。在使用lock-step模式前,主eFlash1和副eFlash2写入相同数据。
eFlash控制器3包括数据选择单元11、与主eFlash1对应的第一eFlash控制单元12,以及与副eFlash2对应的第二eFlash控制单元13。
第一eFlash控制单元12(即附图1中的eFlash1控制单元)和第二eFlash控制单元13(即附图1中的eFlash2控制单元)在CPU4向eFlash控制器3发起读指令时,同步对其对应的eFlash进行读操作;数据选择单元11根据读取结果选择主eFlash1或副eFlash2的读数据。
本申请的eFlash控制器3与CPU4连接,用于接收CPU4下发的指令如读指令,并向CPU4发送对应的数据如读数据。
数据选择单元11与第一eFlash控制单元12、第二eFlash控制单元13连接,用于根据读取结果选择主eFlash1或副eFlash2的读数据,并将选择的读数据发送至CPU4。数据选择单元11为现有技术中常规的数据选择模块,其具体实现方式不做限制。
本申请的核心构思是在第一eFlash控制单元12、第二eFlash控制单元13对其对应的eFlash进行读操作时,保证两侧的读操作的同步进行,对从两片eFlash 中读出的数据进行一定的数据分析,并根据分析结果对数据进行选择。由于两片eFlash 均带有ECC (ErrorChecking and Correcting,错误检查和纠正)校验和纠错功能,对于数据中出现单bit错误,ECC校验算法会自动对数据进行纠正;当出现多bit错误时寄存器会记录对应的eFlash控制单元中会产生ECC错误信息,并产生中断,ECC错误信息用于作为数据选择的依据。
通过设置第一eFlash控制单元12和第二eFlash控制单元13,并在CPU4向eFlash控制器3发起读指令时,同步对主eFlash1和副eFlash2进行读操作,使得系统能够根据读取结果选择主eFlash1或副eFlash2的读数据,从而即使某个eFlash发生故障,也无需进行eFlash的切换,省去了eFlash的切换时间,提高了数据读取的实时性。
在一个实施例中,在前述实施例的基础上,数据选择单元11根据读取结果选择主eFlash1或副eFlash2的读数据时,会根据实际情况进行调整。
数据选择单元11在主eFlash1和副eFlash2的读数据相同时,选择主eFlash1的读数据。由于系统通常是优先选择一个eFlash进行操作,即主eFlash1,在主eFlash1和副eFlash2的读数据相同时,即表明主eFlash1和副eFlash2均无故障,则继续选择主eFlash1的读数据。
优选的,第一eFlash控制单元12和第二eFlash控制单元13还用于记录其对应的eFlash的内存纠错信息,内存纠错信息包括可纠正错误信息和不可纠正错误信息。可纠正错误是指eFlash可自己进行纠错、改正的错误,如单bit错误,eFlash 通常都自带有ECC 校验和纠错功能,对于数据中出现单bit错误,ECC校验算法会自动对数据进行纠正;不可纠正错误是指eFlash无法自己进行纠错、改正的错误,如多bit错误。
数据选择单元11在主eFlash1和副eFlash2的读数据不同,且至少一个eFlash发生不可纠正错误时,选择未发生不可纠正错误的一个eFlash的读数据;
在主eFlash1和副eFlash2的读数据不同时,表明主eFlash1和副eFlash2至少一个出现故障,此时根据记录判断主eFlash1和副eFlash2是否发生不可纠正错误,若存在至少一个eFlash发生不可纠正错误时,选择未发生不可纠正错误的一个eFlash的读数据,该读数据是正确的读数据。
数据选择单元11在主eFlash1和副eFlash2的读数据不同,且各个eFlash均未发生不可纠正错误时,丢弃数据;
在主eFlash1和副eFlash2的读数据不同时,表明主eFlash1和副eFlash2至少一个出现故障,此时根据记录判断主eFlash1和副eFlash2是否发生不可纠正错误,若各个eFlash均未发生不可纠正错误时,表明出现其它异常错误,此时丢弃数据。
数据选择单元11在主eFlash1和副eFlash2的读数据不同,且各个eFlash均发生不可纠正错误时,丢弃数据。
在主eFlash1和副eFlash2的读数据不同时,表明主eFlash1和副eFlash2至少一个出现故障,此时根据记录判断主eFlash1和副eFlash2是否发生不可纠正错误,若各个eFlash均发生不可纠正错误时,则丢弃数据,并进行锁步报错,以便对主eFlash1和副eFlash2进行修复。
在一个实施例中,参考说明书附图1,在前述实施例的基础上,eFlash控制器3还包括同步校验单元14,同步校验单元14分别与第一eFlash控制单元12、第二eFlash控制单元13连接,用于对第一eFlash控制单元12和第二eFlash控制单元13是否同步进行校验,并在不同步时进行异常中断。
由于本申请的重点是保证第一eFlash控制单元12和第二eFlash控制单元13同步对其对应的eFlash进行读操作,为了判断第一eFlash控制单元12和第二eFlash控制单元13是否同步,通过设置同步校验单元14,能够对第一eFlash控制单元12和第二eFlash控制单元13是否同步进行校验,以保证主eFlash1或副eFlash2的读数据同步,便于进行后续的比较判断;且同步校验单元14能够在第一eFlash控制单元12和第二eFlash控制单元13不同步时,或主eFlash1和副eFlash2均故障进行异常中断或锁步报错,避免系统长时间不能获取准确的读数据。同步校验单元14采用现有技术,在此不做限制。
优选的,同步校验单元14在第一eFlash控制单元12和第二eFlash控制单元13行为状态不一致时进行锁步报错;和/或,同步校验单元14在主eFlash1和副eFlash2的数据使能信号不同时进行锁步报错;和/或,同步校验单元14在主eFlash1和副eFlash2的读数据不同但均未发生不可纠正错误时进行锁步报错;和/或,同步校验单元14在主eFlash1和副eFlash2的读数据均包含多bit错误时进行锁步报错。
进一步优选的,参考说明书附图2,主eFlash1或副eFlash2在发生不可纠正错误时通过OTA技术(Over-the-Air Technology,空中下载,是车载系统的在线升级技术)对该eFlash的数据进行升级。
具体的,在主eFlash1或副eFlash2在发生不可纠正错误时,会进行中断操作,中断产生后通过CPU判断是否需要进行OTA升级。
在一个实施例中,本发明还提供一种数据读取方法,应用于eFlash控制器,eFlash控制器中包括数据选择单元、第一eFlash控制单元和第二eFlash控制单元,第一eFlash控制单元和第二eFlash控制单元在CPU向eFlash控制器发起读指令时,同步对其对应的eFlash进行读操作;数据选择单元根据读取结果选择主eFlash或副eFlash的读数据。
本申请的eFlash可配置为lock-step模式(锁步模式),当处于lock-step模式时,存在一个主eFlash 和一个副eFlash,可以通过寄存器配置两块eFlash的主、副关系。在使用lock-step模式前,主eFlash和副eFlash写入相同数据。
该数据读取方法包括步骤:
S1、在接收CPU发送的读指令时,同步控制第一eFlash控制单元对主eFlash,以及第二eFlash控制单元对副eFlash进行读操作,主eFlash和副eFlash在读数据前写入相同数据;
S2、根据读取结果选择主eFlash或副eFlash的读数据。
本申请的核心构思是在第一eFlash控制单元、第二eFlash控制单元对其对应的eFlash进行读操作时,保证两侧的读操作的同步进行,对从两片eFlash 中读出的数据进行一定的数据分析,并根据分析结果对数据进行选择。由于两片eFlash 均带有ECC 校验和纠错功能,对于数据中出现单bit错误,ECC校验算法会自动对数据进行纠正;当出现多bit错误时寄存器会记录对应的eFlash 控制单元中会产生ECC错误信息,并产生中断,ECC错误信息用于作为数据选择的依据。
通过设置第一eFlash控制单元和第二eFlash控制单元,并在CPU向eFlash控制器发起读指令时,同步对主eFlash和副eFlash进行读操作,使得系统能够根据读取结果选择主eFlash或副eFlash的读数据,从而即使某个eFlash发生故障,也无需进行eFlash的切换,省去了eFlash的切换时间,提高了数据读取的实时性。
优选的,第一eFlash控制单元和第二eFlash控制单元还用于记录其对应的eFlash的内存纠错信息,内存纠错信息包括可纠正错误信息和不可纠正错误信息。可纠正错误是指eFlash可自己进行纠错、改正的错误,如单bit错误,eFlash 通常都自带有ECC 校验和纠错功能,对于数据中出现单bit错误,ECC校验算法会自动对数据进行纠正;不可纠正错误是指eFlash无法自己进行纠错、改正的错误,如多bit错误。
在一个实施例中,在上一实施例的基础上,据读取结果选择主eFlash或副eFlash的读数据具体包括:
在主eFlash和副eFlash的读数据相同时,选择主eFlash的读数据;由于系统通常是优先选择一个eFlash进行操作,即主eFlash,在主eFlash和副eFlash的读数据相同时,即表明主eFlash和副eFlash均无故障,则继续选择主eFlash的读数据。
在主eFlash和副eFlash的读数据不同,且至少一个eFlash发生不可纠正错误时,选择未发生不可纠正错误的一个eFlash的读数据;在主eFlash和副eFlash的读数据不同时,表明主eFlash和副eFlash至少一个出现故障,此时根据记录判断主eFlash和副eFlash是否发生不可纠正错误,若存在至少一个eFlash发生不可纠正错误时,选择未发生不可纠正错误的一个eFlash的读数据,该读数据是正确的读数据。
在主eFlash和副eFlash的读数据不同,且各个eFlash均未发生不可纠正错误时,丢弃数据;在主eFlash和副eFlash的读数据不同时,表明主eFlash和副eFlash至少一个出现故障,此时根据记录判断主eFlash和副eFlash是否发生不可纠正错误,若各个eFlash均未发生不可纠正错误时,表明出现其它异常错误,此时丢弃数据。
在主eFlash和副eFlash的读数据不同,且各个eFlash均发生不可纠正错误时,丢弃数据;在主eFlash和副eFlash的读数据不同时,表明主eFlash和副eFlash至少一个出现故障,此时根据记录判断主eFlash和副eFlash是否发生不可纠正错误,若各个eFlash均发生不可纠正错误时,则丢弃数据,并进行锁步报错,以便对主eFlash和副eFlash进行修复。
在一个实施例中,本发明还提供一种eFlash控制器,本申请的eFlash控制器与CPU连接,用于接收CPU下发的指令如读指令,并向CPU发送对应的数据如读数据;本申请的eFlash控制器还与主eFlash和副eFlash连接,用于在接收CPU下发的读指令时,对主eFlash和副eFlash进行读操作,以获取读数据。
eFlash控制器包括:第一eFlash控制单元、第二eFlash控制单元和数据选择单元。
第一eFlash控制单元与主eFlash连接;第二Flash控制单元与副eFlash连接,且在接收CPU发送的读指令时,第一eFlash控制单元和第二Flash控制单元同步对主eFlash和副eFlash进行读操作,主eFlash和副eFlash在读数据前写入相同数据;在主eFlash和副eFlash的读数据不同,且至少一个eFlash发生不可纠正错误时,选择未发生不可纠正错误的一个eFlash的读数据;在主eFlash和副eFlash的读数据不同,且各个eFlash均未发生不可纠正错误时,丢弃数据;在主eFlash和副eFlash的读数据不同,且各个eFlash均发生不可纠正错误时,丢弃数据。
数据选择单元,用于根据读取结果选择主eFlash或副eFlash的读数据。具体的,在主eFlash和副eFlash的读数据相同时,选择主eFlash的读数据;
通过设置第一eFlash控制单元和第二eFlash控制单元,并在CPU向eFlash控制器发起读指令时,同步对主eFlash和副eFlash进行读操作,使得系统能够根据读取结果选择主eFlash或副eFlash的读数据,从而即使某个eFlash发生故障,也无需进行eFlash的切换,省去了eFlash的切换时间,提高了数据读取的实时性。
eFlash控制器还包括同步校验单元,同步校验单元分别与第一eFlash控制单元、第二eFlash控制单元连接,用于对第一eFlash控制单元和第二eFlash控制单元是否同步进行校验,并在不同步时进行异常中断。
本申请的重点是保证第一eFlash控制单元和第二eFlash控制单元同步对其对应的eFlash进行读操作,为了判断第一eFlash控制单元和第二eFlash控制单元是否同步,通过设置同步校验单元,能够对第一eFlash控制单元和第二eFlash控制单元是否同步进行校验,以保证主eFlash或副eFlash的读数据同步,便于进行后续的比较判断;且同步校验单元能够在第一eFlash控制单元和第二eFlash控制单元不同步时,或主eFlash和副eFlash均故障进行异常中断或锁步报错,避免系统长时间不能获取准确的读数据。
优选的,同步校验单元在第一eFlash控制单元和第二eFlash控制单元行为状态不一致时进行锁步报错;和/或,同步校验单元在主eFlash和副eFlash的数据使能信号不同时进行锁步报错;和/或,同步校验单元在主eFlash和副eFlash的读数据不同但均未发生不可纠正错误时进行锁步报错;和/或,同步校验单元在主eFlash和副eFlash的读数据均包含多bit错误时进行锁步报错。
进一步优选的,主eFlash1或副eFlash2在发生不可纠正错误时通过OTA技术对该eFlash的数据进行升级。
具体的,在主eFlash1或副eFlash2在发生不可纠正错误时,会进行中断操作,中断产生后通过CPU判断是否需要进行OTA升级。
在一个实施例中,本发明还提供一种存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现上述实施例的数据读取方法所执行的操作。例如,计算机可读存储介质可以是只读内存(ROM)、随机存取存储器(RAM)、只读光盘(CD-ROM)、磁带、软盘和光数据存储设备等。它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据读取系统,其特征在于,包括:eFlash控制器、一个主eFlash和至少一个副eFlash,且所述主eFlash和所述副eFlash在读数据前写入相同数据;
所述eFlash控制器包括数据选择单元、与所述主eFlash对应的第一eFlash控制单元,以及与所述副eFlash对应的第二eFlash控制单元,
所述第一eFlash控制单元和所述第二eFlash控制单元在CPU向所述eFlash控制器发起读指令时,同步对其对应的eFlash进行读操作;
所述数据选择单元根据读取结果选择所述主eFlash或所述副eFlash的读数据。
2.根据权利要求1所述的数据读取系统,其特征在于,所述数据选择单元在所述主eFlash和所述副eFlash的读数据相同时,选择所述主eFlash的读数据。
3.根据权利要求1所述的数据读取系统,其特征在于,所述第一eFlash控制单元和所述第二eFlash控制单元还用于记录其对应的eFlash的内存纠错信息,所述内存纠错信息包括可纠正错误信息和不可纠正错误信息;
所述数据选择单元在所述主eFlash和所述副eFlash的读数据不同,且至少一个eFlash发生不可纠正错误时,选择未发生不可纠正错误的一个eFlash的读数据;和/或,
所述数据选择单元在所述主eFlash和所述副eFlash的读数据不同,且各个eFlash均未发生不可纠正错误时,丢弃数据;和/或,
所述数据选择单元在所述主eFlash和所述副eFlash的读数据不同,且各个eFlash均发生不可纠正错误时,丢弃数据。
4.根据权利要求1-3任一项所述的数据读取系统,其特征在于,所述eFlash控制器还包括同步校验单元,所述同步校验单元分别与所述第一eFlash控制单元、所述第二eFlash控制单元连接,用于对所述第一eFlash控制单元和所述第二eFlash控制单元是否同步进行校验,并在不同步时进行异常中断。
5.根据权利要求4所述的数据读取系统,其特征在于,所述同步校验单元在所述第一eFlash控制单元和所述第二eFlash控制单元行为状态不一致时进行锁步报错;和/或,
所述同步校验单元在所述主eFlash和所述副eFlash的数据使能信号不同时进行锁步报错;和/或,
所述同步校验单元在所述主eFlash和所述副eFlash的读数据不同但均未发生不可纠正错误时进行锁步报错;和/或,
所述同步校验单元在所述主eFlash和所述副eFlash的读数据均包含多bit错误时进行锁步报错。
6.根据权利要求1所述的数据读取系统,其特征在于,所述主eFlash或所述副eFlash在发生不可纠正错误时通过OTA技术对该eFlash的数据进行升级。
7.一种数据读取方法,应用于eFlash控制器,所述eFlash控制器中包括数据选择单元、第一eFlash控制单元和第二eFlash控制单元,其特征在于,包括步骤:
在接收CPU发送的读指令时,同步控制所述第一eFlash控制单元对主eFlash,以及所述第二eFlash控制单元对副eFlash进行读操作,所述主eFlash和所述副eFlash在读数据前写入相同数据;
根据读取结果选择所述主eFlash或所述副eFlash的读数据。
8.根据权利要求7所述的数据读取方法,其特征在于,所述的据读取结果选择所述主eFlash或所述副eFlash的读数据具体包括:
在所述主eFlash和所述副eFlash的读数据相同时,选择所述主eFlash的读数据;
在所述主eFlash和所述副eFlash的读数据不同,且至少一个eFlash发生不可纠正错误时,选择未发生不可纠正错误的一个eFlash的读数据;
在所述主eFlash和所述副eFlash的读数据不同,且各个eFlash均未发生不可纠正错误时,丢弃数据;
在所述主eFlash和所述副eFlash的读数据不同,且各个eFlash均发生不可纠正错误时,丢弃数据。
9.一种eFlash控制器,其特征在于,包括:
第一eFlash控制单元,与主eFlash连接;
第二Flash控制单元,与副eFlash连接,且在接收CPU发送的读指令时,所述第一eFlash控制单元和所述第二Flash控制单元同步对所述主eFlash和所述副eFlash进行读操作,所述主eFlash和所述副eFlash在读数据前写入相同数据;
数据选择单元,用于根据读取结果选择所述主eFlash或所述副eFlash的读数据。
10.一种存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求7或8所述的数据读取方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311773830.3A CN117453146B (zh) | 2023-12-22 | 2023-12-22 | 数据读取方法、系统、eFlash控制器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311773830.3A CN117453146B (zh) | 2023-12-22 | 2023-12-22 | 数据读取方法、系统、eFlash控制器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117453146A true CN117453146A (zh) | 2024-01-26 |
CN117453146B CN117453146B (zh) | 2024-04-05 |
Family
ID=89582190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311773830.3A Active CN117453146B (zh) | 2023-12-22 | 2023-12-22 | 数据读取方法、系统、eFlash控制器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117453146B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02148127A (ja) * | 1988-11-29 | 1990-06-07 | Hitachi Ltd | 磁気ディスク制御装置 |
JPH11167497A (ja) * | 1997-12-04 | 1999-06-22 | Nec Kofu Ltd | メモリ再書き込み動作誤り検出装置及び方法 |
CN101488077A (zh) * | 2009-02-24 | 2009-07-22 | 浪潮电子信息产业股份有限公司 | 冗余磁盘控制服务器系统 |
CN102866698A (zh) * | 2012-09-29 | 2013-01-09 | 南京国电南自美卓控制系统有限公司 | 一种分布式控制系统控制器的hmi冗余通讯方法 |
CN103186348A (zh) * | 2011-12-27 | 2013-07-03 | 杭州信核数据科技有限公司 | 存储系统及其数据读写方法 |
JP2016091480A (ja) * | 2014-11-11 | 2016-05-23 | 三菱電機株式会社 | 二重化制御システム |
CN106775504A (zh) * | 2017-03-16 | 2017-05-31 | 北京飞杰信息技术有限公司 | 双控磁盘阵列系统及其数据存取方法 |
CN107766003A (zh) * | 2017-10-31 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种存储双活方法、装置、系统及计算机可读存储介质 |
CN111984365A (zh) * | 2020-07-22 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种虚拟机虚拟磁盘双活实现方法及系统 |
KR20210060280A (ko) * | 2019-11-17 | 2021-05-26 | 주식회사 이볼케이노 | 영어 문장 학습을 위한 이미지 구조화 시스템 |
CN113225207A (zh) * | 2021-04-16 | 2021-08-06 | 北京科东电力控制系统有限责任公司 | 一种电力系统双活主备调消息同步方法和装置 |
CN114089923A (zh) * | 2021-11-29 | 2022-02-25 | 新华三大数据技术有限公司 | 一种双活存储系统及其数据处理方法 |
CN116072163A (zh) * | 2021-11-03 | 2023-05-05 | 长鑫存储技术有限公司 | 一种读取系统及方法 |
CN116301627A (zh) * | 2023-03-20 | 2023-06-23 | 中国航空无线电电子研究所 | 一种NVMe控制器及其初始化、数据读写方法 |
-
2023
- 2023-12-22 CN CN202311773830.3A patent/CN117453146B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02148127A (ja) * | 1988-11-29 | 1990-06-07 | Hitachi Ltd | 磁気ディスク制御装置 |
JPH11167497A (ja) * | 1997-12-04 | 1999-06-22 | Nec Kofu Ltd | メモリ再書き込み動作誤り検出装置及び方法 |
CN101488077A (zh) * | 2009-02-24 | 2009-07-22 | 浪潮电子信息产业股份有限公司 | 冗余磁盘控制服务器系统 |
CN103186348A (zh) * | 2011-12-27 | 2013-07-03 | 杭州信核数据科技有限公司 | 存储系统及其数据读写方法 |
CN102866698A (zh) * | 2012-09-29 | 2013-01-09 | 南京国电南自美卓控制系统有限公司 | 一种分布式控制系统控制器的hmi冗余通讯方法 |
JP2016091480A (ja) * | 2014-11-11 | 2016-05-23 | 三菱電機株式会社 | 二重化制御システム |
CN106775504A (zh) * | 2017-03-16 | 2017-05-31 | 北京飞杰信息技术有限公司 | 双控磁盘阵列系统及其数据存取方法 |
CN107766003A (zh) * | 2017-10-31 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种存储双活方法、装置、系统及计算机可读存储介质 |
KR20210060280A (ko) * | 2019-11-17 | 2021-05-26 | 주식회사 이볼케이노 | 영어 문장 학습을 위한 이미지 구조화 시스템 |
CN111984365A (zh) * | 2020-07-22 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种虚拟机虚拟磁盘双活实现方法及系统 |
CN113225207A (zh) * | 2021-04-16 | 2021-08-06 | 北京科东电力控制系统有限责任公司 | 一种电力系统双活主备调消息同步方法和装置 |
CN116072163A (zh) * | 2021-11-03 | 2023-05-05 | 长鑫存储技术有限公司 | 一种读取系统及方法 |
CN114089923A (zh) * | 2021-11-29 | 2022-02-25 | 新华三大数据技术有限公司 | 一种双活存储系统及其数据处理方法 |
CN116301627A (zh) * | 2023-03-20 | 2023-06-23 | 中国航空无线电电子研究所 | 一种NVMe控制器及其初始化、数据读写方法 |
Non-Patent Citations (1)
Title |
---|
解彦;周昌义;周盛雨;石磊;: "基于单片SRAM的EDAC电路设计", 微计算机信息, no. 07, 15 July 2011 (2011-07-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117453146B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102084350B (zh) | 数据的远程副本的验证 | |
WO2017215377A1 (zh) | 内存硬错误的处理方法及装置 | |
EP2527985A1 (en) | System and method for 1553 bus operation self checking | |
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
WO2007096997A1 (ja) | メモリ制御装置およびメモリ制御方法 | |
JP2009295252A (ja) | 半導体記憶装置及びそのエラー訂正方法 | |
CN114385418A (zh) | 通信设备的保护方法、装置、设备和存储介质 | |
CN117453146B (zh) | 数据读取方法、系统、eFlash控制器及存储介质 | |
CN111428280B (zh) | SoC安全芯片密钥信息完整性存储及错误自修复方法 | |
US6539338B1 (en) | Self-diagnostic testing of a network interface adapter | |
US7814071B2 (en) | Apparatus, system, and method for maintaining dynamic persistent data | |
CN114442953B (zh) | 一种数据校验的方法、系统、芯片和电子设备 | |
CN111880961A (zh) | 用于透明寄存器数据错误检测和纠正的系统和方法 | |
EP3882774A1 (en) | Data processing device and data processing method | |
EP4341814A1 (en) | Error rates for memory with built in error correction and detection | |
JPH08297588A (ja) | 二重照合装置 | |
JP3235785B2 (ja) | 二重化情報処理装置 | |
CN111522686A (zh) | 一种非易失性数据的读写方法及装置 | |
US11520653B2 (en) | System and method for controlling faults in system-on-chip | |
US6986079B2 (en) | Memory device method for operating a system containing a memory device for fault detection with two interrupt service routines | |
JP2000105675A (ja) | ディスクアレイ装置 | |
JP7364263B2 (ja) | 多重化回路装置及びエラー修復方法 | |
KR0152240B1 (ko) | 메모리 데이타 불일치 검출 및 복구 방법 | |
US11831337B2 (en) | Semiconductor device and error detection methods | |
WO2021227926A1 (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 |