CN108009044B - 一种实时校验flash数据正确性的方法 - Google Patents

一种实时校验flash数据正确性的方法 Download PDF

Info

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
Application number
CN201711100928.7A
Other languages
English (en)
Other versions
CN108009044A (zh
Inventor
吴�琳
韩强
段小虎
边庆
程俊强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian Aeronautics Computing Technique Research Institute of AVIC
Original Assignee
Xian Aeronautics Computing Technique Research Institute of AVIC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian Aeronautics Computing Technique Research Institute of AVIC filed Critical Xian Aeronautics Computing Technique Research Institute of AVIC
Priority to CN201711100928.7A priority Critical patent/CN108009044B/zh
Publication of CN108009044A publication Critical patent/CN108009044A/zh
Application granted granted Critical
Publication of CN108009044B publication Critical patent/CN108009044B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-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数据正确性的方法。该方法采用自带校验功能总线以及校验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发送中断信号来告知其发生错误。
CN201711100928.7A 2017-11-09 2017-11-09 一种实时校验flash数据正确性的方法 Active CN108009044B (zh)

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)

* Cited by examiner, † Cited by third party
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信息上报方法及系统

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