CN108009044B - 一种实时校验flash数据正确性的方法 - Google Patents
一种实时校验flash数据正确性的方法 Download PDFInfo
- Publication number
- CN108009044B CN108009044B CN201711100928.7A CN201711100928A CN108009044B CN 108009044 B CN108009044 B CN 108009044B CN 201711100928 A CN201711100928 A CN 201711100928A CN 108009044 B CN108009044 B CN 108009044B
- Authority
- CN
- China
- Prior art keywords
- flash
- data
- verification
- fpga
- check
- 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
Images
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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明一种实时校验FLASH数据正确性的方法属于高可靠容错计算机设计与综合验证技术领域。该方法采用自带校验功能总线以及校验FLASH等硬件电路,以及FPGA实现,在维护模式写入校验数据,在应用模式实现实时校验,不增加系统开销。为高可靠容错计算机提供了一种实时校验FLASH的解决方案。本发明的优点是在读取数据FLASH时完成校验,并且不增加系统开销。
Description
技术领域
本发明一种实时校验FLASH数据正确性的方法属于高可靠容错计算机设计与综合验证技术领域。
背景技术
在新一代战机的研制中,对容错计算机运行的可靠性越来越引起大家的重视,对系统测试验证的完整性也提出了更高的要求。传统校验数据FLASH的方法,主要在两个时机,第一,固化数据FLASH完毕后,对数据FLASH进行一次校验,校验正确后认为固化数据正确;第二,在测试阶段对数据FLASH进行测试,这两种方法均不能实时检测数据准确性,系统可靠性较低。另一种方法是设计一片校验FLASH,用于存储校验数据,先读取数据FLASH中的数据,由软件计算校验值,再读取校验FLASH中的数据,两者比对,这种方法能够实时校验FLASH中的数据,但是两次读取比对,系统开销大,性能会受到影响。
发明内容
本发明的目的:本发明提出一种实时校验FLASH数据正确性的方法。该方法采用自带校验功能总线以及校验FLASH等硬件电路,以及FPGA实现,在维护工作阶段写入校验数据,在应用工作阶段实现实时校验,不增加系统开销。为高可靠容错计算机提供了一种实时校验FLASH的解决方案。
本发明的技术方案:一种实时校验FLASH数据正确性的方法,所述方法基于一个硬件平台,所述硬件平台包括自带校验功能的总线、CPU、存储器、FPGA、校验FLASH硬件电路,校验FLASH硬件电路包括数据FLASH和校验FLASH,数据FLASH和校验FLASH的数据线、地址线、控制信号均接入FPGA,CPU、FPGA、存储器通过总线进行通讯,所述方法采取以下步骤:
(一)维护工作阶段
CPU以编程命令序列的方式,通过FPGA向数据FLASH固化数据,通过FPGA向校验FLASH中固化校验值,所述编程命令序列由一系列写操作构成;该阶段时FPGA给数据FLASH和校验FLASH分配不同的片选空间;数据和校验值的固化分为以下三个步骤:
1)CPU向数据FLASH所在片选空间发起编程命令序列,用于将数据固化到数据FLASH中,所述编程命令序列由一系列写操作构成;FPGA收到每次写操作后,控制数据FLASH的数据线、地址线、控制信号,实现对于数据FLASH的写操作,在编程命令序列执行完毕后,数据即被固化到数据FLASH中;
2)总线计算出数据FLASH中所固化数据的校验值,FPGA记录该校验值;
3)CPU从FPGA中读取该校验值,然后再向校验FLASH所在片选空间发起编程命令序列;所述编程命令序列由一系列写操作构成,用于将校验值固化到校验FLASH中;FPGA收到每次写操作后,控制校验FLASH的数据线、地址线、控制信号,实现对于校验FLASH的写操作;在编程命令序列执行完毕后,校验值即被固化到校验FLASH中;
(二)应用工作阶段
本方法在此阶段实现实时校验,硬件平台加电工作开始时,CPU要将数据FLASH中固化的数据读出,并写入到存储器;该阶段FPGA给数据FLASH和校验FLASH分配相同的片选空间;数据FLASH中固化数据的读取分为以下两个步骤:
1)CPU向数据FLASH和校验FLASH共同的片选空间发起读操作;FPGA收到读操作后,控制数据FLASH和校验FLASH的数据线、地址线、控制信号,实现对于数据FLASH和校验FLASH的并发读操作;FPGA将数据FLASH读操作返回的数据和校验FLASH读操作返回的校验值递交给总线;
2)总线依据获得的数据和校验值,进行校验判断,若校验结果正确,则说明硬件平台正常工作,若校验结果错误,则说明数据可能有误,总线向CPU发送中断信号来告知其发生错误。
本发明的优点是:
1、在读取数据FLASH和校验FLASH的同时完成校验,实现实时校验;
2、采用总线完成校验,不增加系统开销。
附图说明:
图1是硬件平台设计原理图
具体实施方式
下面结合附图对本发明进行进一步详细的说明。
数据FLASH中存储操作系统、驱动程序等关键的数据,如果数据FLASH中存储的数据出错,系统将不能正常工作,因此数据FLASH中存储的数据十分关键。一种实时校验FLASH数据正确性的方法,所述方法基于一个硬件平台,所述硬件平台包括以下几部分:自带校验功能的总线电路、CPU及存储器电路、FPGA电路、校验FLASH硬件电路,FPGA和CPU通过总线进行通讯,CPU与存储器连接,校验FLASH硬件电路包括数据FLASH和校验FLASH,数据FLASH和校验FLASH的数据线、地址线、控制信号均接入FPGA。各部件之间的通讯关系详见附图1。
所述方法有两个工作阶段,维护工作阶段写入校验数据,在应用工作阶段实现实时校验。所述方法采取以下两个工作阶段:
(一)维护工作阶段
维护工作阶段需要完成三项工作:数据FLASH需要完成数据的固化;总线需要计算出数据FLASH中所固化数据的校验值;校验FLASH需要完成校验值的固化。下面详细说明:
1、数据FLASH需要在此阶段完成数据的固化,由CPU向数据FLASH固化数据。数据FLASH固化数据采取以下三个步骤:
1)固化数据是以编程命令序列的方式执行的,CPU向数据FLASH所在片选空间发起编程命令序列,编程命令序列由4次写操作构成;
2)FPGA收到写操作指令后,FPGA控制数据FLASH的数据线、地址线、控制信号实现对于数据FLASH的写操作,FPGA将数据FLASH的片选信号、写使能信号置为有效,将总线上传来的数据固化到数据FLASH相应地址空间中,完成数据的固化;
3)重复执行1-2步骤,直到所有数据全部固化到数据FLASH中。
2、总线计算出数据FLASH中所固化数据的校验值,FPGA记录该校验值,需要采取以下两个步骤:
1)自带校验功能的总线具备校验位数据线,总线上的校验位数据线接入FPGA,当CPU向数据FLASH中固化数据的时候,通过总线将数据传送给数据FLASH,总线同时生成该数据的校验值;
2)FPGA记录该校验值。
3、校验FLASH需要完成校验值的固化,由CPU向校验FLASH固化校验值。校验FLASH固化数据采取以下三个步骤:
1)固化校验值是以编程命令序列的方式执行的,CPU从FPGA中读取校验值,CPU向校验FLASH所在片选空间发起编程命令序列,编程命令序列由4次写操作构成;
2)FPGA收到写操作指令后,FPGA控制校验FLASH的数据线、地址线、控制信号实现对于校验FLASH的写操作,FPGA将校验FLASH的片选信号、写使能信号置为有效,将校验值固化到校验FLASH相应地址空间中,完成校验值的固化;
3)重复执行1-2步骤,直到所有校验值全部固化到校验FLASH。
在维护工作阶段,完成数据FLASH中数据的固化和校验FLASH中校验值的固化,此阶段结束后将不再对数据FLASH和校验FLASH执行固化。
(二)应用工作阶段
硬件平台正常工作均处于应用工作阶段,本方法在此阶段实现实时校验。此阶段完成两项工作:读取数据FLASH中的数据和校验FLASH中的校验值;总线依据获得的数据和校验值进行校验判断。下面详细说明:
1、硬件平台加电工作开始时,CPU要将数据FLASH中固化的数据读出,并写入到存储器,该阶段FPGA给数据FLASH和校验FLASH分配相同的片选空间,数据FLASH中的数据和校验FLASH中校验值的读取分为以下两个步骤:
1)CPU向数据FLASH和校验FLASH共同的片选空间发起读操作;FPGA收到读操作后,控制数据FLASH和校验FLASH的数据线、地址线、控制信号,FGPA将数据FLASH的片选信号、读使能信号置为有效,FPGA将校验FLASH的片选信号、读使能信号置为有效,实现对于数据FLASH和校验FLASH的并发读操作;
2)FPGA将数据FLASH读操作返回的数据和校验FLASH读操作返回的校验值递交给总线。
2、总线获得的数据FLASH的数据和校验FLASH的校验值,总线进行校验判断,若校验结果正确,则说明硬件平台正常工作,若校验结果错误,则说明数据可能有误,总线向CPU发送中断信号来告知其发生错误。
本发明在硬件平台上电工作时,在CPU要将数据FLASH中固化的数据读出,并写入到存储器的时机,同时读取数据FLASH中的数据和校验FLASH校验值,由总线完成校验,完全不增加系统开销。为高可靠容错计算机提供了一种实时校验FLASH的解决方案。
Claims (1)
1.一种实时校验FLASH数据正确性的方法,其特征在于,所述方法基于一个硬件平台,所述硬件平台包括自带校验功能的总线、CPU、存储器、FPGA、校验FLASH硬件电路,校验FLASH硬件电路包括数据FLASH和校验FLASH,数据FLASH和校验FLASH的数据线、地址线、控制信号均接入FPGA,CPU、FPGA、存储器通过总线进行通讯,所述方法采取以下步骤:
(一)维护工作阶段
CPU以编程命令序列的方式,通过FPGA向数据FLASH固化数据,通过FPGA向校验FLASH中固化校验值,所述编程命令序列由一系列写操作构成;该阶段时FPGA给数据FLASH和校验FLASH分配不同的片选空间;数据和校验值的固化分为以下三个步骤:
1)CPU向数据FLASH所在片选空间发起编程命令序列,用于将数据固化到数据FLASH中,所述编程命令序列由一系列写操作构成;FPGA收到每次写操作后,控制数据FLASH的数据线、地址线、控制信号,实现对于数据FLASH的写操作,在编程命令序列执行完毕后,数据即被固化到数据FLASH中;
2)总线计算出数据FLASH中所固化数据的校验值,FPGA记录该校验值;
3)CPU从FPGA中读取该校验值,然后再向校验FLASH所在片选空间发起编程命令序列;所述编程命令序列由一系列写操作构成,用于将校验值固化到校验FLASH中;FPGA收到每次写操作后,控制校验FLASH的数据线、地址线、控制信号,实现对于校验FLASH的写操作;在编程命令序列执行完毕后,校验值即被固化到校验FLASH中;
(二)应用工作阶段
本方法在此阶段实现实时校验,硬件平台加电工作开始时,CPU要将数据FLASH中固化的数据读出,并写入到存储器;该阶段FPGA给数据FLASH和校验FLASH分配相同的片选空间;数据FLASH中固化数据和校验FLASH中校验值的读取分为以下两个步骤:
1)CPU向数据FLASH和校验FLASH共同的片选空间发起读操作;FPGA收到读操作后,控制数据FLASH和校验FLASH的数据线、地址线、控制信号,实现对于数据FLASH和校验FLASH的并发读操作;FPGA将数据FLASH读操作返回的数据和校验FLASH读操作返回的校验值递交给总线;
2)总线依据获得的数据和校验值,进行校验判断,若校验结果正确,则说明硬件平台正常工作,若校验结果错误,则说明数据可能有误,总线向CPU发送中断信号来告知其发生错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711100928.7A CN108009044B (zh) | 2017-11-09 | 2017-11-09 | 一种实时校验flash数据正确性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711100928.7A CN108009044B (zh) | 2017-11-09 | 2017-11-09 | 一种实时校验flash数据正确性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108009044A CN108009044A (zh) | 2018-05-08 |
CN108009044B true CN108009044B (zh) | 2021-06-01 |
Family
ID=62051558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711100928.7A Active CN108009044B (zh) | 2017-11-09 | 2017-11-09 | 一种实时校验flash数据正确性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108009044B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI441184B (zh) * | 2010-02-09 | 2014-06-11 | Silicon Motion Inc | 非揮發性記憶裝置及其資料處理方法 |
CN101976212B (zh) * | 2010-10-27 | 2012-01-25 | 西安空间无线电技术研究所 | 一种基于少量代码重加载的dsp抗单粒子纠错方法 |
CN103257905B (zh) * | 2013-05-02 | 2016-01-20 | 浙江中控技术股份有限公司 | 一种嵌入式计算机系统内存数据校验电路及方法 |
CN105335670A (zh) * | 2015-10-29 | 2016-02-17 | 深圳国微技术有限公司 | 一种实时完整性校验方法和校验电路及安全芯片 |
CN107239363B (zh) * | 2017-05-27 | 2020-04-24 | 北京东土军悦科技有限公司 | 一种ecc信息上报方法及系统 |
-
2017
- 2017-11-09 CN CN201711100928.7A patent/CN108009044B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108009044A (zh) | 2018-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918303B (zh) | 一种芯片、芯片调试方法及装置、设备、介质 | |
CN105205249B (zh) | 一种soc调试验证系统及其软硬件协同方法 | |
CN101504692B (zh) | 一种验证和测试片上系统的系统及方法 | |
JP2014203314A (ja) | Ecuシミュレーション装置 | |
CN102201267A (zh) | 基于FPGA实现Nandflash闪存控制器电路验证的平台系统及方法 | |
US20130198706A1 (en) | Format conversion from value change dump (vcd) to universal verification methodology (uvm) | |
US6285914B1 (en) | Verification method by means of comparing internal state traces | |
US8036874B2 (en) | Software executing device and co-operation method | |
CN109885905B (zh) | 一种提高数字电路功能验证效率的验证系统 | |
CN113485881B (zh) | 一种临时限速服务器的测试方法、装置、电子设备及介质 | |
CN115562982A (zh) | 参考模型调试方法、装置、电子设备和存储介质 | |
CN117077588B (zh) | 硬件加速仿真调试系统 | |
CN110674055A (zh) | 一种用于部件级和部件联合级的缓存一致性模拟验证方法 | |
CN115688676A (zh) | 基于tlm的gpu联合仿真系统 | |
US8140315B2 (en) | Test bench, method, and computer program product for performing a test case on an integrated circuit | |
CN102681525B (zh) | 一种转换控制器的验证方法及系统 | |
CN114741250A (zh) | 用于验证多级高速缓存器的系统及方法 | |
CN111400997A (zh) | 一种基于同步执行的处理器核验证方法、系统及介质 | |
CN108009044B (zh) | 一种实时校验flash数据正确性的方法 | |
CN103796009B (zh) | 一种fpga质量诊断测试系统 | |
US10970442B1 (en) | Method of debugging hardware and firmware of data storage | |
CN116663490A (zh) | 一种异步存储芯片的验证方法、平台、装置及介质 | |
CN101739473B (zh) | 电路模拟仿真系统 | |
CN102385547B (zh) | 一种dram控制器时序校验功能的验证方法及系统 | |
JP6910739B2 (ja) | 評価解析対象メモリ装置及びメモリ評価解析システム |
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 |