CN106815101B - 嵌入式系统外部易失性存储器高可靠性存储与诊断方法 - Google Patents
嵌入式系统外部易失性存储器高可靠性存储与诊断方法 Download PDFInfo
- Publication number
- CN106815101B CN106815101B CN201510864079.7A CN201510864079A CN106815101B CN 106815101 B CN106815101 B CN 106815101B CN 201510864079 A CN201510864079 A CN 201510864079A CN 106815101 B CN106815101 B CN 106815101B
- Authority
- CN
- China
- Prior art keywords
- region
- data
- diagnostic
- program
- diagnosis
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及嵌入式外部易失性存储器高可靠性存储与诊断方法。本发明首先将数据存储区域分为数据区域和数据备份区域,CPU将数据区域和数据备份区域分别按地址平均分为8部分,按顺序对数据区域部分进行诊断;在诊断的过程中,先将一部分数据区域数据拷贝到相应的备份区域中,再对数据区域进行数据诊断,诊断结束将备份区域数据拷贝回相应数据区域;本发明诊断程序运行在系统空闲时间,可以把主控制器从繁重的存储器的诊断程序中解放出来,和传统的诊断方法相比,主控制器运行开销比较小,主控制器利用率比较高。本发明能够方便实现程序运行空间的切换,不需要动态更改程序的运行空间,程序设计简单,减少了程序运行空间动态变换产生的故障。
Description
技术领域
本发明涉及一种嵌入式系统外部易失性存储器高可靠性存储与诊断方法,属于工业过程控制领域。
背景技术
在工业过程控制领域,嵌入式系统应用比较普遍,由于工业环境的越来也复杂,各种干扰因素也越来越多,以及随着芯片技术的不断发展,嵌入式系统主频不断增加,在嵌入式系统中,外部存储器产生的故障率也越来越多。
为了确保嵌入式系统应可靠地运行,需对嵌入式系统进行诊断,外部易失性存储器作为嵌入式系统的重要组成部分,对它的诊断不可缺少,找到一种安全可靠和实用的存储和诊断方法,是嵌入式系统研究与开发的一个重要问题。
外部易失性存储器诊断方法大多数是基于MCU利用诊断程序定时的对外部存储器诊断的方法,当需要对存储器某一块地址区域诊断时,都会先将这块区域的数据拷贝到某一空闲区域,然后才能对这块区域进行诊断,诊断程序运行空间在MCU的片内存储器,由于内部存储器存储空间较小,大量的用户程序没办法运行,只能等诊断程序运行完成才能在外部存储器运行用户程序,所以传统的方法,诊断程序占用MCU时间较多,MCU的利用率较低;另外,有一些方法为了提高MCU的利用率,诊断程序也在外部存储器中运行,这样涉及到数据区的拷贝和数据恢复,以及比较棘手的程序运行空间的动态分配,由于涉及到程序运行空间的动态分配,所以程序设计比较复杂,MCU的效率提高有限。
发明内容
针对现有技术中存在的上述不足之处,本发明要解决的技术问题是提供一种嵌入式系统外部易失性存储器的存储与诊断方法,主要用于嵌入式系统外部易失性存储器的存储与诊断。
本发明为实现上述目的所采用的技术方案是:一种嵌入式系统外部易失性存储器高可靠性存储与诊断方法,用于嵌入式控制器在运行的过程中对外部易失性存储器进行数据存储和数据诊断,包括以下步骤:
将RAM平均划分为两个区域:诊断区域和备份区域;
MCU将诊断区域和备份区域分别进行2n等分区,n为大于2的自然数;
MCU按次序对诊断区域分别进行诊断:MCU对某一诊断区域进行诊断时,首先将诊断区域的数据拷贝到备份区域,然后再对诊断区域进行数据诊断,诊断区域中某一区域进行数据诊断时,通过控制电路使程序运行于除此区域以外的诊断区域和相对应的数据备份区域中,诊断完成后将备份区域的数据拷贝回诊断区域。
所述将RAM平均划分为两个区域:诊断区域和备份区域,具体为:RAM按地址线Amax=0和Amax=1平均分为诊断区域和数据备份区域。
所述MCU将诊断区域和备份区域分别进行2n等分区,具体为:对诊断区域和数据备份区域按地址线Amax-n-Amax-1分别进行2n等分区,诊断区域和备份区域中相应序号的部分相互对应。
所述MCU具备EBI总线,对应EBI0与EBI1的设备分别对应于不同的系统地址,EBI0与EBI1的片选相与后接到外部存储器,从而实现用不同的系统地址对同一个RAM进行访问。
所述MCU在正常运行时将程序分为3个部分:数据拷贝程序、数据诊断程序和用户应用程序,分别对应于不同线程;数据拷贝程序根据不同的系统EBI地址将某一诊断区域的数据拷贝到序号相应的备份区域中,且数据拷贝程序优先级最高,在拷贝的过程中不允许其他线程打断;数据诊断程序通过传统的RAM测试方法对某一诊断区域进行诊断,且数据诊断程序优先级比较低,可以在MCU空闲时对诊断区域进行数据诊断;用户应用程序用于实现嵌入式系统的功能需求;
当某一诊断区域进行数据诊断时,数据诊断程序和用户应用程序运行在除该诊断区域以外的诊断区域和与该诊断区域相对应的备份区域中。
所述控制电路根据I/O[1:n+1]、Add[max-n:max-1]和EBI0控制Amax输出状态;当Amax=0时,MCU访问诊断区域,当Amax=1时,MCU访问备份区域。
本发明是用来实现一种嵌入式系统外部易失性存储器高可靠性存储与诊断方法,为嵌入式系统运行提供了保证。它具有如下优点:
1.效率高、实时性好,对主控制器依赖性小。本发明应用硬件电路实现诊断区域和备份区域的切换,响应快,实时性好,对主控制器的依赖性小,诊断程序运行在系统空闲时间,可以把主控制器从繁重的存储器的诊断程序中解放出来,和传统的诊断方法相比,效率较高。
2.程序设计简单。本发明应用硬件电路和软件配合的方式,能够方便实现程序运行空间的切换,不需要动态更改程序的运行空间,程序设计简单,减少了程序运行空间动态变换产生的故障。
3.通用性强。对于嵌入式系统来说,外部易失性存储器是不可缺少的组成部分,本发明能实现实时性的存储和数据诊断,对外部易失性存储和MCU的参数没有特殊要求,通用性强。
附图说明
图1是本发明嵌入式系统外部易失性存储器存储与诊断功能图;
图2是本发明嵌入式系统MCU数据拷贝的功能图;
图3是本发明嵌入式系统MCU数据诊断的功能图;
图4是本发明嵌入式系统MCU用户程序运行的功能图;
图5是本发明嵌入式系统控制电路的电路图;
图6是本发明嵌入式系统外部易失性存储器存储与诊断的流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
本发明是基于嵌入式系统外部易失性存储器存储与诊断进行的,如图1所示,MCU将诊断区域和备份区域分别进行8分区,MCU按次序对诊断区域分别进行诊断;当MCU对某一数据区域诊断时,先将诊断区域数据拷贝到备份区域,然后再对诊断区域进行数据诊断,诊断完成后将备份区域数据拷贝回诊断区域。
MCU在正常运行时将程序主要分为3个部分:数据拷贝程序、数据诊断程序和用户应用程序,分别对应于不同线程;数据拷贝程序根据不同的系统EBI地址将某一诊断区域数据拷贝到相应备份区域中,且数据拷贝程序优先级最高,在拷贝的过程中不允许其他线程打断;数据诊断程序通过传统的RAM测试方法对某一诊断区域进行诊断,且数据诊断程序优先级比较低,可以在MCU空闲时对诊断区域进行数据诊断;用户应用程序实现嵌入式系统的功能需求;
MCU的程序运行空间在外部易失性存储器中,当某一数据区域进行数据诊断时,数据诊断程序和用户应用程序运行空间在除此区域以外的诊断区域和相对应的备份区域中。
图2是嵌入式系统MCU数据拷贝的功能图,数据拷贝程序的优先级最高,在数据拷贝的过程中挂起其他线程,不允许系统做其他工作,防止数据拷贝没有完成,而程序运行更改了诊断区域的数据值;数据的拷贝在EBI0对应的设备地址中进行,程序设计功能比较简单,就是将诊断区域的数据按地址增加的顺序逐个拷贝到备份区域。
图3为嵌入式系统MCU数据诊断的功能图。数据诊断的工作量比较大,为了不占用大量的系统有效时间,因为,将数据诊断的程序的优先级设置成最低,也就是说,系统在空闲时间进行数据区域的诊断;数据诊断在EBI1对应的设备地址中进行,诊断方法可以用一些传统的RAM测试方法,可以选择Walk-path、Parity-bit、Abraham等方法,具体方法在IEC61508-2-A.6中有具体介绍。
图4为MCU用户程序运行的功能图。用户程序运行的过程中,且数据诊断程序还没有运行完,MCU配合控制电路使MCU的运行空间为(程序运行区域1+程序运行区域2+程序运行区域3),也就是说,诊断区域诊断没有完成,程序不能在此空间运行,因此,将备份区域空间补充到诊断区域空间,使系统默认为一个连续的空间,从而不需要动态分配程序运行空间,程序设计简单。
图5是嵌入式系统存储控制电路的电路图,其功能就是用户程序运行的过程中,且诊断程序还没有运行完,程序不能在诊断空间运行,控制电路配合MCU将备份区域空间补充到诊断区域空间,使系统默认为一个连续的空间,就是图4所说的程序运行空间变为(程序运行区域1+程序运行区域2+程序运行区域3)。
当诊断没结束用户程序运行时具体工作流程为:在诊断程序开始运行时,通过I/0管脚(I/01、I/02、I/03)输出和地址线(A14、A15、A16)相同的电平,I/04为高电平;当程序运行时要访问诊断区域时,经过U2、U3、U4同或门后,均为高电平,EBI0片选经过非门后也是高电平,经过U5相与后电平仍然是高电平,A17为低,经过或门U6变为高电平,这样MCU访问的是诊断区域的空间,但经过控制电路将区域指到了备份区域,使系统默认为一个连续的空间;当访问其他区域时,I/0管脚(I/01、I/02、I/03)输出和地址线(A14、A15、A16)电平有一组或多组不同,I/04为高电平,经过U2、U3、U4同或门后,再经过U5相与后电平会为低电平,A17为低,经过或门U6仍然为低电平,不影响其他区域的访问。
当诊断已经结束用户程序运行时具体工作流程为:I/04为低电平,当程序运行时要访问诊断区域时,经过U2、U3、U4同或门后,均为低电平,EBI0片选经过非门后也是高电平,经过U5相与后电平仍然是低电平,经过或门后不影响A17的状态,因此不影响在外部存储器的访问。
图6是嵌入式系统外部易失性存储器存储与诊断的流程图,首先要确定数据诊断区域,并将诊断区域的数据拷贝到数据备份区域,此时拷贝程序的优先级是比较高的,直到拷贝结束才能进行其他程序的操作,判断是不是运行用户程序,当用户程序运行时不进行数据诊断,当系统空闲,用户程序完成时进行数据诊断,数据诊断完成后将备份数据拷贝回数据区,这样完成了一个区域块的诊断,同样可以对其他区域块进行诊断。
Claims (5)
1.一种嵌入式系统外部易失性存储器高可靠性存储与诊断方法,用于嵌入式控制器在运行的过程中对外部易失性存储器进行数据存储和数据诊断,其特征在于,包括以下步骤:
将RAM平均划分为两个区域:诊断区域和备份区域;
MCU将诊断区域和备份区域分别进行2n等分区,n为大于2的自然数;MCU按次序对诊断区域分别进行诊断:MCU对某一诊断区域进行诊断时,首先将诊断区域的数据拷贝到备份区域,然后再对诊断区域进行数据诊断,诊断区域中某一区域进行数据诊断时,通过控制电路使程序运行于除此区域以外的诊断区域和相对应的数据备份区域中,诊断完成后将备份区域的数据拷贝回诊断区域;所述MCU在正常运行时将程序分为3个部分:数据拷贝程序、数据诊断程序和用户应用程序,分别对应于不同线程;数据拷贝程序根据不同的系统EBI地址将某一诊断区域的数据拷贝到序号相应的备份区域中,且数据拷贝程序优先级最高,在拷贝的过程中不允许其他线程打断;数据诊断程序通过传统的RAM测试方法对某一诊断区域进行诊断,且数据诊断程序优先级比较低,可以在MCU空闲时对诊断区域进行数据诊断;用户应用程序用于实现嵌入式系统的功能需求;当某一诊断区域进行数据诊断时,数据诊断程序和用户应用程序运行在除该诊断区域以外的诊断区域和与该诊断区域相对应的备份区域中。
2.根据权利要求1所述的嵌入式系统外部易失性存储器高可靠性存储与诊断方法,其特征在于,所述将RAM平均划分为两个区域:诊断区域和备份区域,具体为:RAM按地址线Amax=0和Amax=1平均分为诊断区域和数据备份区域。
3.根据权利要求1所述的嵌入式系统外部易失性存储器高可靠性存储与诊断方法,其特征在于,所述MCU将诊断区域和备份区域分别进行2n等分区,具体为:对诊断区域和数据备份区域按地址线Amax-n-Amax-1分别进行2n等分区,诊断区域和备份区域中相应序号的部分相互对应。
4.根据权利要求1所述的嵌入式系统外部易失性存储器高可靠性存储与诊断方法,其特征在于,所述MCU具备EBI总线,对应EBI0与EBI1的设备分别对应于不同的系统地址,EBI0与EBI1的片选相与后接到外部存储器,从而实现用不同的系统地址对同一个RAM进行访问。
5.根据权利要求1所述的嵌入式系统外部易失性存储器高可靠性存储与诊断方法,其特征在于,所述控制电路根据I/O[1:n+1]、Add[max-n:max-1]和EBI0控制Amax输出状态;当Amax=0时,MCU访问诊断区域,当Amax=1时,MCU访问备份区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510864079.7A CN106815101B (zh) | 2015-11-27 | 2015-11-27 | 嵌入式系统外部易失性存储器高可靠性存储与诊断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510864079.7A CN106815101B (zh) | 2015-11-27 | 2015-11-27 | 嵌入式系统外部易失性存储器高可靠性存储与诊断方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106815101A CN106815101A (zh) | 2017-06-09 |
CN106815101B true CN106815101B (zh) | 2019-09-06 |
Family
ID=59107205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510864079.7A Active CN106815101B (zh) | 2015-11-27 | 2015-11-27 | 嵌入式系统外部易失性存储器高可靠性存储与诊断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106815101B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930572B (zh) * | 2020-09-21 | 2021-01-12 | 南京芯驰半导体科技有限公司 | 一种在环双备份系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601498A (zh) * | 2003-09-25 | 2005-03-30 | 国际商业机器公司 | 存储器映射输入/输出构造中存储器资源的基于位置的分配 |
CN101122880A (zh) * | 2007-09-17 | 2008-02-13 | 福建星网锐捷网络有限公司 | 内嵌调试器的嵌入式系统及嵌入式系统调试方法 |
US7913120B2 (en) * | 2007-02-22 | 2011-03-22 | Arm Limited | Selective disabling of diagnostic functions within a data processing system |
CN102012791A (zh) * | 2010-10-15 | 2011-04-13 | 中国人民解放军国防科学技术大学 | 基于Flash的数据存储PCIE板卡 |
CN103282892A (zh) * | 2011-02-18 | 2013-09-04 | 三菱电机株式会社 | 存储器诊断装置、存储器诊断方法以及程序 |
KR20130117077A (ko) * | 2012-04-17 | 2013-10-25 | (주)테너지 | 차량용 전자 제어 장치의 동작 방법 |
CN103927187A (zh) * | 2014-05-09 | 2014-07-16 | 成都凯智科技有限公司 | 嵌入式系统程序执行方法 |
CN104412327A (zh) * | 2013-01-02 | 2015-03-11 | 默思股份有限公司 | 内建自测试以及修复装置及方法 |
-
2015
- 2015-11-27 CN CN201510864079.7A patent/CN106815101B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601498A (zh) * | 2003-09-25 | 2005-03-30 | 国际商业机器公司 | 存储器映射输入/输出构造中存储器资源的基于位置的分配 |
US7913120B2 (en) * | 2007-02-22 | 2011-03-22 | Arm Limited | Selective disabling of diagnostic functions within a data processing system |
CN101122880A (zh) * | 2007-09-17 | 2008-02-13 | 福建星网锐捷网络有限公司 | 内嵌调试器的嵌入式系统及嵌入式系统调试方法 |
CN102012791A (zh) * | 2010-10-15 | 2011-04-13 | 中国人民解放军国防科学技术大学 | 基于Flash的数据存储PCIE板卡 |
CN103282892A (zh) * | 2011-02-18 | 2013-09-04 | 三菱电机株式会社 | 存储器诊断装置、存储器诊断方法以及程序 |
KR20130117077A (ko) * | 2012-04-17 | 2013-10-25 | (주)테너지 | 차량용 전자 제어 장치의 동작 방법 |
CN104412327A (zh) * | 2013-01-02 | 2015-03-11 | 默思股份有限公司 | 内建自测试以及修复装置及方法 |
CN103927187A (zh) * | 2014-05-09 | 2014-07-16 | 成都凯智科技有限公司 | 嵌入式系统程序执行方法 |
Non-Patent Citations (1)
Title |
---|
Embedded memory diagnostic data compression using differential address;Chin Lung Su;《2005 IEEE VLSI-TSA International Symposium on VLSI Design》;20051231;第20-23页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106815101A (zh) | 2017-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Park et al. | {iJournaling}:{Fine-Grained} Journaling for Improving the Latency of Fsync System Call | |
US20120011401A1 (en) | Dynamically modeling and selecting a checkpoint scheme based upon an application workload | |
CN105103144B (zh) | 用于存储器的自适应控制的设备及方法 | |
Shi et al. | Mrtuner: a toolkit to enable holistic optimization for mapreduce jobs | |
CN102722432B (zh) | 追踪内存访问的方法和装置 | |
US20090204959A1 (en) | Method and apparatus for virtual processor dispatching to a partition based on shared memory pages | |
US20110185359A1 (en) | Determining A Conflict in Accessing Shared Resources Using a Reduced Number of Cycles | |
US20120166498A1 (en) | Garbage collection in a multiple virtual machine environment | |
CN102081554A (zh) | 云计算操作系统及其内核控制系统及方法 | |
EP3239844A1 (en) | Processing method and device for memory page in memory | |
US20120151502A1 (en) | Apparatus and method for dynamically reconfiguring state of application program in a many-core system | |
CN108710583A (zh) | Ssd写缓存区的管理方法、装置、计算机设备及介质 | |
CN103927130B (zh) | 基于内存管理单元mmu的统一内外存架构 | |
US20140115291A1 (en) | Numa optimization for garbage collection of multi-threaded applications | |
WO2024120205A1 (zh) | 一种应用性能优化方法、装置、电子设备及存储介质 | |
CN110427289A (zh) | 自动测试ssd掉电对数据一致性影响的方法及装置 | |
WO2016138785A1 (zh) | 一种运行进程的方法及装置 | |
CN103970256A (zh) | 一种基于内存压缩和cpu动态调频的节能方法及系统 | |
CN104360927A (zh) | 一种基于numa的计算机体系结构的监控信息采集方法 | |
CN104572279A (zh) | 一种支持节点绑定的虚拟机动态调度方法 | |
CN106815101B (zh) | 嵌入式系统外部易失性存储器高可靠性存储与诊断方法 | |
CN110209354B (zh) | 用于处理数据的方法、装置、设备和介质 | |
CN103729166A (zh) | 程序的线程关系确定方法、设备及系统 | |
CN107066281B (zh) | 一种基于dss数据系统快速加载大型数据群的方法 | |
US20140040900A1 (en) | Storage managing device and method and electronic apparatus |
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 |