CN102782662B - 存储器诊断方法、存储器诊断装置及存储器诊断程序 - Google Patents
存储器诊断方法、存储器诊断装置及存储器诊断程序 Download PDFInfo
- Publication number
- CN102782662B CN102782662B CN201080065344.0A CN201080065344A CN102782662B CN 102782662 B CN102782662 B CN 102782662B CN 201080065344 A CN201080065344 A CN 201080065344A CN 102782662 B CN102782662 B CN 102782662B
- Authority
- CN
- China
- Prior art keywords
- data
- variable domain
- fixed area
- diagnosis
- error
- 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
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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
提供一种存储器诊断方法,能在进程的执行中比较容易地进行该进程所使用的存储器的诊断。固定区域(8)存储进程执行部(5)不变更的数据。变动区域(9)存储进程执行部(5)可能进行写入处理的数据。固定区域诊断部(2)预先对存储于固定区域(8)的数据附加错误检测码。然后,将由从固定区域(8)读出的数据运算所得的错误检测码与预先附加的错误检测码比较,判断有无数据错误。变动区域诊断部(3)将变动区域(9)所存储的数据,暂时存储在存储该数据的存储器区域以外的存储器,向存储该暂时被存储的数据的变动区域(9)写入已知数据。然后,将写入已知数据的相同区域的数据读出,判断其与写入的已知数据是否一致。
Description
技术领域
本发明涉及在进程中诊断可重写的存储器的存储器诊断方法、存储器诊断装置及存储器诊断程序。
背景技术
关于加工产业中的电气/电子/可编程电子相关的功能安全的国际规格被制定(非专利文献1)。非专利文献1以电气/电子设备等的功能或因故障/损坏对人的生命造成很大影响的事物为对象。例如,相当于输送设备、化学工厂、医疗设备等中的功能安全。
主要关于硬件,设想因部件、材料的变差、产品的偏差等引起的随机硬件故障作为影响波及安全性的因素。非专利文献1规定,对于随机硬件故障,需要通过冗余化、多样化而提高***的可靠性、设置自身诊断功能等对策。另外,依据概率论的危险(风险)分析等,为了使整体***的风险低于容许风险,决定该安全装置的安全性水平(SIL=SafetyIntegrityLevel,安全完整性水平)。非专利文献1规定了要求安全性水平从比较低的SIL1至最高水平的SIL4的4个等级。非专利文献1针对SIL2推荐故障检测及诊断,在SIL3及SIL4中,强烈推荐故障检测及诊断。
在通过用CPU(CentralProcessingUnit,中央处理单元)执行程序而进行处理的设备中,为了程序动作的高速化,一般地进行将程序从ROM(Read-OnlyMemory,只读存储器)读入访问速度快的RAM(Random-AccessMemory,随机存取存储器)并执行。因此,在RAM中,在程序的执行中变更的数据与未变更的数据混在一起。
RAM中存储的数据可能因RAM的故障、制造上的损坏、或宇宙射线等产生数据的非有意的改变。为了定期确认RAM所存储的数据是正常的,需要通过程序或其他逻辑电路进行诊断。
例如,在专利文献1中记载了在控制对象的控制中,校验存储单元的方法。专利文献1的存储单元的校验方法是一种RAM存储体的校验方法,该RAM具备存储数据的多个RAM存储体,该校验方法对成为校验对象的2个RAM的存储体进行相同校验处理(控制运算和监视运算),判断其两个运算结果(校验结果)是否相同。将控制运算及监视运算的结果写入各自的RAM的存储体,然后读出该写入值,判定两者的值是否一致。
现有技术文献
专利文献
专利文献1:日本特开2002-288047号公报
非专利文献
非专利文献1:IEC61508-1~IEC61508-7,国际电工委员会(InternationalElectrotechnicalCommission):1998-12~2000-03。
发明内容
发明要解决的课题
在进程的执行中变更的数据利用循环冗余校验(以下,CRC=CyclicRedundancyCheck,循环冗余校验)或双重写入(doubleRAM)等进行诊断的情况下,在变更数据的同时,需要重写确认基础的数据(CRC码或比较基础数据)。因此,软件处理变得复杂。
对在进程的执行中未变更的数据进行棋盘、移动位等诊断的情况下,因为存在着诊断的处理本身被重写的担忧,所以需要监视程序的动作,并进行写入、读出。因此,软件处理变得复杂。
本发明是鉴于上述那样的情况而做出的,其目的是,提供一种在进程的执行中比较容易地进行该进程所使用的存储器的诊断的存储器诊断方法、存储器诊断装置及存储器诊断程序。
用于解决课题的方案
本发明的第1观点所涉及的存储器诊断方法是一种在进程的执行中诊断进程所使用的存储器的方法。变动区域诊断步骤在存储进程可能进行写入处理的第1数据的存储器的变动区域中,将变动区域所存储的第1数据,存储在存储该第1数据的存储器区域以外的保存区域(退避領域),向曾存储过该保存区域所存储的第1数据的变动区域写入已知数据。然后,将写入已知数据的相同区域的数据读出,判断其与写入的已知数据是否一致。另外,固定区域诊断步骤在作为存储在进程的执行中未变更的第2数据的存储器区域的固定区域中,预先对存储的数据附加错误检测码并存储在固定区域。然后,将由从固定区域读出的数据运算所得的错误检测码与附加并存储的错误检测码比较,判断有无数据错误。
本发明的第2观点所涉及的存储器诊断装置在进程的执行中进行进程所使用的存储器的诊断。变动区域诊断部在存储可能进程进行写入处理的第1数据的存储器的变动区域中,将变动区域所存储的第1数据,存储在存储该第1数据的存储器区域以外的保存区域,向曾存储过该保存区域所存储的第1数据的变动区域写入已知数据。然后,将写入已知数据的相同区域的数据读出,判断其与写入的已知数据是否一致。另外,固定区域诊断部在存储在进程的执行中未变更的第2数据的存储器区域的固定区域中,预先对存储的数据附加错误检测码并存储在固定区域。然后,将由从固定区域读出的数据运算所得的错误检测码与附加并存储的错误检测码比较,判断有无数据错误。
本发明的第3观点所涉及的存储器诊断程序的特征在于,在计算机中,在该计算机中执行进程时,执行本发明的第1观点所涉及的存储器诊断方法。
发明的效果
依据本发明,能够在进程的执行中比较容易地对进程不重写的数据和可能进行重写的的数据混在一起的存储器进行诊断。
附图说明
图1是示出本发明的实施方式1所涉及的进程执行装置的结构示例的框图。
图2是示出实施方式1所涉及的进程执行装置的硬件结构的示例的框图。
图3是示出实施方式1所涉及的进程执行装置的RAM分配的示例的图。
图4是说明实施方式1所涉及的固定区域诊断的示例的图。
图5是说明实施方式1所涉及的固定区域诊断的不同示例的图。
图6A是说明实施方式1所涉及的变动区域诊断的示例的图。
图6B是示出将变动区域的一部分数据存储在保存区域的状态的图。
图6C是示出将校验用数据存储在变动区域的一部分的状态的图。
图7是示出设定实施方式1所涉及的固定区域的错误检测码的动作的一个示例的流程图。
图8是示出实施方式1所涉及的固定区域诊断的动作的一个示例的流程图。
图9是示出实施方式1所涉及的变动区域诊断的动作的一个示例的流程图。
图10是示出本发明的实施方式2所涉及的制动控制***的结构示例的框图。
图11是示出本发明的实施方式3所涉及的进程执行装置的结构示例的框图。
具体实施方式
(实施方式1)
图1是示出本发明的实施方式1所涉及的进程执行装置的结构示例的框图。进程执行装置100由存储器诊断部1、进程执行部5、ROM(Read-OnlyMemory,只读存储器)6、以及RAM(Random-AccessMemory,随机存取存储器)7构成。RAM7划分为固定区域8和变动区域9。存储器诊断部1具备固定区域诊断部2、变动区域诊断部3及诊断结果通知部4。
进行进程执行部5的处理的程序、常量数据及其他数据存储于ROM6。ROM6的程序和常量数据加载到RAM7的固定区域8。从ROM6加载到RAM7的程序将RAM7及输入输出装置等作为资源使用并由CPU执行,由此进程执行部5进行进程执行装置100的目标处理。
RAM7的固定区域8是加载ROM6所存储的程序和常量数据的、在进程执行中数据不重写的区域。RAM7的变动区域9是在进程执行中作为工作区域使用的存储区域。变量、常量、初次存储的各种参数、以及进程执行中的CPU栈等存储在变动区域9。此外,在本实施方式中,虽然以RAM7作为诊断对象,但只要是可重写的存储介质,即使是NVRAM(NonVolatileRAM,非易失性随机存取存储器)、EEPROM(ElectricallyErasableProgrammableROM,电可擦除可编程只读存储器)、闪速只读存储器(FlashROM)等也能够作为诊断对象。另外,不限于1种存储介质,RAM、NVRAM、EEPROM等的组合也能够作为诊断对象。
存储器诊断部1的固定区域诊断部2在进程执行部5的处理中,诊断存储于RAM7的固定区域8的数据是否正确。固定区域8的诊断通过下述方式进行,预先对存储于固定区域8的数据附加错误检测码,然后将由从固定区域8读出的数据运算所得的错误检测码与附加并存储的错误检测码比较,判断有无数据错误。
变动区域诊断部3在进程执行部5的处理中,诊断RAM7的变动区域9是否正常动作。变动区域9的诊断通过下述方式进行,将存储于变动区域9的数据存储在存储该数据的区域以外的保存区域,在存储该数据的变动区域9写入已知数据,读出相同区域的数据,判断其与写入的已知数据是否一致。
已知数据是在写入变动区域9之前在变动区域诊断部3中知道其位样式(bitpattern)的数据,在写入变动区域9之后也能够在变动区域诊断部3中与其他数据进行比较的数据。已知数据中,存在着由程序数据定义的固定数据、以及由程序或逻辑运算电路进行某些运算而生成的数据的情况。固定数据中包含从多个位样式中选择的样式。在进行运算而生成的数据中,包含例如由进行存储器诊断的次数、时刻按既定的运算式算出的数据、或者产生伪随机数而生成位样式的数据等。作为进行运算而生成的数据,也能够使用将存储于变动区域9的数据读出并位反转的数据。
诊断结果通知部4在固定区域诊断部2或变动区域诊断部3检测出数据错误的情况下,向进程执行部5通知存在数据错误。
在实施方式1中,与进程执行部5同样地,从ROM6加载到RAM7的程序将RAM7作为资源使用并由CPU执行,由此存储器诊断部1进行存储器诊断处理。
图2是示出实施方式1所涉及的进程执行装置的硬件结构的示例的框图。如图2所示,进程执行装置100具备CPU21、RAM7、ROM6及I/O24。RAM7、ROM6及I/O24的任一个经由内部总线20与CPU21连接。
存储于ROM6并加载到RAM7的控制程序25在CPU21上运行,由此执行进程执行装置100的处理。
RAM7加载ROM6所存储的控制程序25,并作为进程执行部5及存储器诊断部1的工作区域使用。虽然在图2所示的示例中,诊断对象是CPU21的外部RAM,但也可以是内置在CPU21中的RAM。
ROM6虽然由一般的读出专用存储器(Read-OnlyMemory,只读存储器)构成,但除此以外也存在着由闪速存储器、硬盘、DVD-RAM(DigitalVersatileDiscRandom-AccessMemory,数字多功能光盘随机存取存储器),DVD-RW(DigitalVersatileDiscReWritable,可重写数字多功能光盘)等非易失性存储器构成。ROM6预先存储用于使用CPU21进行进程执行部5及存储器诊断部1的处理的程序。
为了进程执行装置100与外部设备进行数据的收发,I/O24由与各种输入输出装置或通信装置连接的串行接口或并行接口构成。进程执行装置100经由I/O24与外部设备输入输出数据。
图3是示出实施方式1所涉及的进程执行装置的RAM分配的示例的图。在RAM7中存储有程序数据(控制、诊断)71、变量72、常量73、动作相关的参数74、CPU栈75等多种数据。在RAM7中还存储有程序数据的错误检测码81。程序数据71及错误检测码81包含于固定区域8。其他变量72、常量73、参数74及CPU栈75等包含于变动区域9。
在本实施方式中,作为用于固定区域8的诊断的错误检测方法,包含使用双重写入、奇偶校验码、校验和、汉明码、循环冗余校验(CRC)或哈希函数的错误检测。双重写入的参照数据或其位反转数据是错误检测码81的一种。在本实施方式中,错误检测码包含错误检测纠正码。
固定区域诊断部2在开始进程执行部5的处理之前,对存储于固定区域8的数据附加错误检测码81。然后,在进程执行部5的处理中,将由从固定区域8读出的数据运算所得的错误检测码与之前附加的错误检测码81比较,判断有无数据错误。
图4是说明实施方式1所涉及的固定区域诊断的示例的图。在图4的示例中,使用位反转的程序数据作为错误检测码81。写入位反转后的数据是双重写入的一种。如果启动进程执行装置100,则ROM6的数据61加载到RAM7的固定区域8。加载到固定区域8的程序数据71由CPU21执行,进行进程执行部5及存储器诊断部1的处理。
固定区域诊断部2在开始进程执行部5的处理之前,对程序数据进行位反转,作为错误检测码81存储于固定区域8。固定区域诊断部2在进程执行部5的处理中,从固定区域8将程序数据71读出并进行位反转,与对应的错误检测码81(位反转的程序数据)进行比较(图4的箭头C)。如果位反转的程序数据71与错误检测码81不同,则固定区域诊断部2判断RAM7的该部分存在损坏。
固定区域诊断部2不需要对程序数据全部成批进行程序数据71的位反转与错误检测码81的比较。分割成适当的块,分别对每块进行位反转及比较即可。另外,由于固定区域8的诊断能够随时中断、恢复,所以能够通过优先度低于进程执行部5的处理的任务实现。
图5是说明实施方式1所涉及的固定区域诊断的不同示例的图。在图5的示例中,使用循环冗余校验码(CRC码)作为错误检测码81。固定区域诊断部2将程序数据71分割成块,分别对每块运算CRC码。CRC码存储在与程序数据71不同的其他区域。在图5中,块#1~#n的各自的CRC码分别存储于#1CRC~#nCRC。
固定区域诊断部2在开始进程执行部5的处理之前,将程序数据71的每块的CRC码存储于固定区域8。固定区域诊断部2在进程执行部5的处理中,从固定区域8依次读出程序数据71的块,运算其CRC码。然后,将预先存储的该块的CRC码与运算的CRC码进行比较。如果2个CRC码不同,则固定区域诊断部2判断该块存在故障。在该情况下,由于固定区域8的诊断能够随时中断、恢复,所以也能够通过优先度低于进程执行部5的处理的任务实现。
进一步对程序数据71的错误检测码81附加错误检测码,也能够进行存储错误检测码81的固定区域8的诊断。例如,对图4的错误检测码81(位反转的程序数据)预先附加校验和和/或水平垂直奇偶校验,能够对存储错误检测码81的区域进行诊断。
图6A~图6C说明是实施方式1所涉及的变动区域诊断的示例的图。图6A示出将变动区域9分割成块并分配了保存区域91的情况。图6B是示出将变动区域的一部分数据存储于保存区域的状态的图。在图6B中,示出将变动区域9的块#x的数据存储于保存区域91。
图6C是示出将校验用数据存储于变动区域的一部分的状态的图。图6C的示例示出将校验用数据92存储于保存的块#x的情况。校验用数据92是变动区域诊断部3保持或生成的已知数据。校验用数据92例如是所有位是1的数据、所有位是0的数据、1和0的位交替排列的数据(1010…或0101…),或其他固定位样式等。
变动区域诊断部3向存储有保存的数据的区域写入既定的校验用数据92。然后,从写入校验用数据92的相同区域读出数据,与写入基础的数据进行比较。如果写入的数据与读出的数据的位存在着不同,则变动区域诊断部3判断在RAM7的该部分存在损坏。变动区域诊断部3在从写入校验用数据92的相同区域读出数据之后,将存储于保存区域91的数据写入原来的区域。释放保存区域91以便能够存储新的数据,RAM7的变动区域9回到图6A的状态。
变动区域诊断部3依次改变使数据保存并写入校验用数据92的块,对每块进行RAM7的诊断。另外,对于保存区域91也写入并读出校验用数据92,进行诊断。如果进程执行部5没有使用保存区域91,则不需要使保存区域91的数据保存到其他区域。
因为变动区域9的诊断使变动区域9的一部分数据保存至RAM7的空的区域(保存区域91),并在存储保存的数据的区域写入既定的校验用数据92,所以优选在至少使用保存的数据的进程处于等待状态时进行。如果可能,优选在进程执行部5(存储器诊断部1的处理以外)的全部进程处于等待状态时进行。此外,也可以在进程执行部5的优先顺序最高的任务变为等待状态时,进行变动区域9的一个块的诊断。
在变动区域诊断部3中,适当设定诊断变动区域9的单位的块的大小,以便不影响进程执行部5的处理。即,例如以使将保存的数据写入原来的区域的时间短于能够等候进程执行部5的优先度最高的中断处理的时间的方式设定块的大小。如果这样,即使在变动区域诊断中发生中断的情况下,如果中止变动区域诊断并将保存的数据写入原来的区域,则不影响进程执行部5的处理。
变动区域诊断部3也可以在每次诊断变动区域9的块时,改变校验用数据92。例如,也可以预先准备多个固定位样式,每诊断一个块,或对每个诊断的块,选择不同的固定位样式用于诊断。除使用固定位样式的固定样式数据测试以外,也能够进行棋盘测试、移动位测试、或伪随机数据测试。通过改变校验用数据92的位样式,能够检测某位数据变为固定状态的损坏。
图7是示出实施方式1所涉及的设定固定区域的错误检测码的动作的一个示例的流程图。启动进程执行装置100,在程序数据71从ROM6加载到RAM7的固定区域8之后,启动图7的处理。
固定区域诊断部2读入固定区域8的起始地址和结束地址(步骤S10)。这些数据是设定在程序数据71中的数据。块编号变量i初始设置为1(步骤S11),运算固定区域8的第i个块的数据的错误检测码81(步骤S12)。错误检测码81也可以用ROM6的数据赋予。然后,将错误检测码81写入固定区域8的既定部分(步骤S13)。
在错误检测码81是CRC码的情况下,如图5所示,将块#1的CRC码写入#1CRC。在错误检测码81是位反转的情况下,如图4所示,将程序数据71进行位反转并写入。
固定区域诊断部2将块编号变量i递增(步骤S14),如果该编号的块(剩余数据)存在(步骤S15:是),则返回步骤S12,从运算该块的数据的错误检测码81开始重复。如果在固定区域8第i个块(剩余数据)不存在(步骤S15:否),则结束设定错误检测码的处理。
图8是示出实施方式1所涉及的固定区域诊断的动作的一个示例的流程图。例如,固定区域诊断的处理作为优先度低于进程执行部5的处理的任务始终动作。
固定区域诊断部2设定诊断的块的起始地址(步骤S20),读出诊断的块的数据(步骤S21)。然后,由读出的数据生成错误检测码(步骤S22)。在错误检测是CRC方法的情况下,运算CRC码。在错误检测码81是图4那样的位反转数据的情况下,生成将读出的数据进行位反转的数据。
固定区域诊断部2读出诊断的块的错误检测码81(步骤S23),与步骤S22中生成的错误检测码进行比较(步骤S24)。如果两者的码一致(步骤S24:是),则判断诊断的块的数据是正常的,转向下一个块的诊断。即,诊断的块的起始地址递增1个块的量(步骤S25),如果是固定区域8(步骤S26:是),则返回步骤S21,从诊断的块的读出开始重复。如果不是固定区域8(步骤S26:否),则返回步骤S20,从固定区域8的起始的块开始重复诊断。
如果步骤S22中生成的错误检测码与读出的诊断的块的错误检测码81不一致(步骤S24:否),则判断诊断的块的数据中存在异常。诊断结果通知部4将固定区域8中存在错误的情况通知进程执行部5(步骤S27)。在程序数据中存在错误的情况下,固定区域诊断部2结束处理。
图9是示出实施方式1所涉及的变动区域诊断的动作的一个示例的流程图。变动区域诊断部3设定诊断的块的起始地址(步骤S30),将诊断的块的数据写入保存区域91(步骤S31)。然后,向诊断的块写入校验用数据92(步骤S32)。如前所述,校验用数据92是固定位样式、棋盘测试、移动位测试、或伪随机数据测试的数据。
变动区域诊断部3从诊断的块读出数据(步骤S33),将保存区域91的数据写入诊断的块(步骤S34)。预先保存的数据的恢复只要是在将写入的数据从诊断的块读出之后随时进行都无妨。变动区域诊断部3将步骤S33中读出的数据与校验用数据92进行比较(步骤S35)。如果两者一致(步骤S35:是),则判断诊断的块是正常的,转向下一个块的诊断。即,递增诊断的块的起始地址(步骤S36),如果是变动区域9(步骤S37:是),则返回步骤S31,从保存诊断的块的数据开始重复。如果不是变动区域9(步骤S37:否),则返回步骤S30,从变动区域9的起始的块开始重复诊断。
如果步骤S33中读出的数据与校验用数据92不一致(步骤S35:否),则判断诊断的块中存在异常。诊断结果通知部4将变动区域9中存在错误的情况通知进程执行部5(步骤S38)。在程序数据71中存在错误的情况下,变动区域诊断部3结束处理。
如前所述,变动区域诊断至少在使用保存的数据的进程处于等待状态时进行,优选在全部的进程处于等待状态时进行。另外,在变动区域诊断中(严格而言,从开始进行校验用数据92的写入至开始将保存区域91的数据写入诊断的块为止),在进程执行部5从等待状态恢复的情况下,暂时中止正在诊断的块的诊断处理,将保存的数据写入原来的块。在此情况下,在进程执行部5变为等待状态时,从将诊断的块的数据写入保存区域91(步骤S31)重新开始。
如以上说明那样,在本实施方式1的进程执行装置100中,存储程序数据71等进程执行部5未重写的数据的固定区域8,不进行数据重写就能够进行诊断。其结果是,因为能够不受CPU21的程序计数器等进程状态的影响地进行诊断,所以用于存储器诊断的程序的简化成为可能。而且,存储变量72或CPU栈75等可能由进程执行部5重写的数据的变动区域9,不使用错误检测码,而是通过写入并读出既定的校验用数据92的数据的比较进行诊断。其结果是,即使在进程执行部5重写数据时,也不需要比较基础的数据的重写及错误检测码的运算。
依据本实施方式1,即使在进程使用的存储器中固定区域8和变动区域9混在一起的情况下,也能够在进程执行中比较容易地进行该进程所使用的存储器的诊断。而且,不造成RAM7数据的缺损,能够容易地诊断全部数据区域。
(实施方式2)
图10是示出本发明的实施方式2所涉及的制动控制***的结构示例的框图。在实施方式2的制动控制***200中,将实施方式1的进程执行装置100作为铁道车辆的制动控制装置110使用。制动控制***200由指令装置120、制动控制装置110及制动装置130构成。制动控制装置110经由各车辆间的网络(未图示)与构成铁道车辆的各车辆的制动装置130通信。指令装置120对制动控制装置110,指示全体车辆的减速度。
制动控制装置110对该车辆的制动装置130指示相应于各车辆的载重的制动力。各车辆的载重由制动装置130检测,发送给制动控制装置110。另外,制动控制装置110从制动装置130输入各车辆的车轮转速,检测各车轮的滑行状态。在减速中,原则上以转速(车轮的圆周速度)最快的车轮为基准,能够判断转速慢于该基准的车轮正在滑行。制动控制装置110对于正在滑行的车辆,指示减弱制动力。然后,将减弱的制动力的量分配给其他没有滑行的车辆,对其制动装置130指示增加的制动力,以作为车辆整体满足所指示的减速度。
制动控制装置110与图1的进程执行装置100结构相同。在图10中,省略了制动控制装置110与指令装置120之间、以及制动控制装置110与制动装置130之间进行通信的通信部。制动控制装置110的进程执行部5将上述制动控制处理作为进程执行。制动控制装置110的存储器诊断部1在制动控制装置110的动作中即铁道车辆的通常驾驶中,实施制动控制装置110的RAM7的诊断。制动控制装置110的存储器诊断部1与实施方式1同样地进行RAM7的诊断。
制动控制装置110在每个一定的周期,例如每10msec,由减速度的指令、各车辆的速度、各车辆的载重、车轮的转速等运算各车辆的制动力,另外,检测滑行状态,并进行制动力的运算。存储器诊断部1在不进行其进程执行部5的运算处理时,进行所述的存储器诊断。
一般在铁道车辆的制动控制中,作为状态的变化,车轮转速的变化是最快的,因此以最短的周期进行车轮转速的检测处理。例如,在以5msec为周期进行车轮转速检测的中断的情况下,存储器诊断部1设定诊断的1个块的大小,以便在不占用速度中断处理的时间的短时间例如在500μsec期间,至少能进行变动区域9的数据的保存、校验用数据的写入及读出。
如关于图9的流程图所说明的那样,对每个块进行变动区域9的诊断。在铁道车辆的制动控制的情况下,在速度中断期间进行1个块的诊断处理。每次中断处理依次推进诊断的块,如果变动区域9全部的块的诊断结束,则返回起始的块重复每个块的诊断。
如实施方式1中所说明的那样,固定区域8的诊断在任何定时都能够中断,因此通过优先度最低的任务在空闲时间执行即可。
如以上说明的那样,依据实施方式2的制动控制装置110,能够在铁道车辆的通常驾驶中,比较容易地进行该制动控制装置110所使用的RAM7全部的诊断。因为在铁道车辆的驾驶中进行RAM7的诊断,所以即使在驾驶中RAM7发生异常的情况下,也能够立即检测异常,并至少进行紧急停止的动作避免危险。另外,在制动控制装置110具备冗余结构的情况下,能够切换到备用***继续驾驶。其后,能够在适当的安全的地方和时间,进行异常部位的检修和更换。如此,能够确保铁道车辆的功能安全。
此外,本实施方式2的存储器诊断部1等的结构不限于制动控制装置110,能够适用于使用铁道车辆的存储器的所有控制装置。
(实施方式3)
图11是示出本发明的实施方式3所涉及的进程执行装置的结构示例的框图。在实施方式3中,实现进程执行部5的CPU21具备独立的存储器诊断装置11。存储器诊断装置11连接至进程执行装置100的内部总线20,以便能够进行进程执行部5所使用的RAM7的读写。
构成进程执行装置100的CPU21、RAM7、ROM6及I/O24,与实施方式1相同。但是,在加载到RAM7中的控制程序26中,包含进程执行部5的程序,但不包含存储器诊断装置11的程序。在实施方式3中,存储于ROM6并加载到RAM7的控制程序26在CPU21上运行,由此执行进程执行部5的处理。
存储器诊断装置11由与进程执行部5不同的硬件构成。存储器诊断装置11经由内部总线20进行RAM7的读写。存储器诊断装置11与实施方式1的存储器诊断部1同样,具备固定区域诊断部12、变动区域诊断部13及诊断结果通知部14,并与存储器诊断部1同样地动作。存储器诊断装置11能够由例如微型计算机、FPGA(FieldProgrammableGateArray,现场可编程门阵列)、或专用的LSI构成。
在程序数据从ROM6加载到RAM7之后启动存储器诊断装置11,固定区域诊断部12对RAM7的固定区域8附加错误检测码81。固定区域8的起始地址及结束地址由例如控制程序26的启动处理赋予。
在进程执行部5的处理中,固定区域诊断部12将由从固定区域8读出的数据运算所得的错误检测码,与预先附加的错误检测码81进行比较,判断有无数据错误。在实施方式3中,只要从RAM7的数据读出与其他进程的数据读写不冲突,固定区域诊断部12的处理随时执行都可以。因此,如果在其他进程的数据读写发生时中断处理,则也可以始终运行。
在进程执行部5的处理中,变动区域诊断部13诊断RAM7的变动区域9是否正常动作。变动区域9的诊断使变动区域9中所存储的数据暂时存储在存储该数据的区域以外,在存储该数据的变动区域9写入已知数据,然后读出相同区域的数据,判断其与写入的已知数据是否一致。
变动区域诊断部13在进程执行部5的全部的进程处于等待状态时,进行变动区域9的诊断。进程执行部5处于等待状态的情况是经由内部总线20,由进程执行部5从CPU21通知的。例如,通过CPU21将设置于存储器诊断装置11内部的标志设置为开/闭,能够通知是否处于等待状态。
在固定区域诊断部12或变动区域诊断部13检测出RAM7的损坏的情况下,诊断结果通知部14向进程执行部5通知固定区域8或变动区域9存在错误。
暂时存储变动区域9的数据的保存区域91也可以设置在存储器诊断装置11的内部。在此情况下,存储器诊断装置11的保存区域91也作为变动区域诊断的对象。
实施方式3的存储器诊断装置11与实施方式1的存储器诊断部1同样地作用,起到同等的效果。
应该认为本次公开的实施方式是对全部方面的例示而不是限制。本发明的范围不是由上述的说明而是由权利要求书示出,并且意在包含与权利要求书均等的意义及范围内的全部变更。
此外,所述的硬件结构、流程图是一个示例,能进行任意变更及修正。
用于由CPU21、RAM7、ROM6、内部总线20等构成的存储器诊断部1的处理的中心的部分,不依赖于专用***,能使用通常的计算机***实现。例如,也可以将用于执行所述动作的计算机程序存放于计算机可读取的存储介质(软盘、CD-ROM、DVD-ROM等)并发布,在计算机中安装该计算机程序,由此构成执行所述处理的存储器诊断部1。另外,也可以预先在具有因特网等通信网络上的服务器装置的存储装置中存放该计算机程序,并由通常的计算机***下载等,从而构成存储器诊断部1。
另外,在通过OS(操作***)与应用程序的分担、或OS与应用程序的协作来实现存储器诊断部的功能的情况等中,也可以仅将应用程序部分存放在存储介质、存储装置。
另外,也能够在载波中叠加计算机程序并经由通信网络发送。例如,也可以在通信网络上的公告板(BBS:BulletinBoardSystem,公告板***)中公告所述计算机程序,并经由网络发送所述计算机程序。而且,也可以构成为通过启动该计算机程序、在OS的控制下、与其他应用程序同样地执行,从而能够执行所述的处理。
标号的说明
1存储器诊断部
2固定区域诊断部
3变动区域诊断部
4诊断结果通知部
5进程执行部
6ROM
7RAM
8固定区域
9变动区域
11存储器诊断装置
12固定区域诊断部
13变动区域诊断部
14诊断结果通知部
20内部总线
21CPU
24I/O
25控制程序
81错误检测码
91保存区域
92校验用数据
100进程执行装置
110制动控制装置
120指令装置
130制动装置
200制动控制***。
Claims (10)
1.一种存储器诊断方法,用于在进程的执行中进行该进程所使用的存储器的诊断,其特征在于,具备:
变动区域诊断步骤,在存储所述进程可能进行写入处理的第1数据的所述存储器的变动区域中,分配了存储所述第1数据的存储区域以外的保存区域,将该变动区域所存储的所述第1数据,存储在所述保存区域,向曾存储过所述保存区域所存储的所述第1数据的所述变动区域写入已知数据,读出该区域的数据,判断其与所述写入的已知数据是否一致;以及
固定区域诊断步骤,在存储于所述进程的执行中未变更的第2数据的所述存储器的固定区域中,预先对存储的数据附加错误检测码并存储在所述固定区域,将由从所述固定区域读出的数据运算所得的错误检测码与所述附加并存储的错误检测码比较,判断有无数据错误。
2.如权利要求1所述的存储器诊断方法,其特征在于,对于所述进程所使用的存储器的全部区域,进行所述变动区域诊断步骤或所述固定区域诊断步骤。
3.如权利要求1所述的存储器诊断方法,其特征在于,在所述进程中的、所述变动区域诊断步骤及所述固定区域诊断步骤以外的全部的进程处于等待状态时,进行所述变动区域诊断步骤或所述固定区域诊断步骤。
4.如权利要求1所述的存储器诊断方法,其特征在于,所述变动区域诊断步骤将所述变动区域分割成1个或2个以上的部分,对所述每个分割后的部分,将存储于所述变动区域的所述第1数据存储在所述保存区域,向存储在该保存区域存储的所述第1数据的所述变动区域写入已知数据,读出相同区域的数据,判断其与所述写入的已知数据是否一致。
5.如权利要求1所述的存储器诊断方法,其特征在于,所述变动区域诊断步骤包含棋盘测试、移动位测试、伪随机数据测试、或固定样式数据测试。
6.如权利要求1所述的存储器诊断方法,其特征在于,所述固定区域诊断步骤包含使用双重化、奇偶校验码、校验和、汉明码、循环码或哈希函数的错误检测。
7.如权利要求1所述的存储器诊断方法,其特征在于,
所述进程进行铁道车辆的控制处理,
在所述铁道车辆的通常驾驶中,进行所述变动区域诊断步骤及所述固定区域诊断步骤。
8.如权利要求7所述的存储器诊断方法,其特征在于,在不进行所述进程的运算时,进行所述变动区域诊断步骤。
9.如权利要求8所述的存储器诊断方法,其特征在于,将所述变动区域分割成1个或2个以上的部分,对每个部分依次地,在每个既定的周期的所述进程不进行运算时,进行所述变动区域诊断步骤,在对将所述变动区域分割后的全部的部分进行所述变动区域诊断步骤之后,再次从所述变动区域的起始的所述部分进行所述变动区域诊断步骤。
10.一种存储器诊断装置,用于在进程的执行中进行该进程所使用的存储器的诊断,其特征在于,具备:
变动区域诊断部,在存储所述进程可能进行写入处理的第1数据的所述存储器的变动区域中,分配了存储所述第1数据的存储区域以外的保存区域,将该变动区域所存储的所述第1数据,存储在所述保存区域,向曾存储过所述保存区域所存储的所述第1数据的所述变动区域写入已知数据,读出该区域的数据,判断其与所述写入的已知数据是否一致;以及
固定区域诊断部,在存储于所述进程的执行中未变更的第2数据的所述存储器的固定区域中,预先对存储的数据附加错误检测码并存储在所述固定区域,将由从所述固定区域读出的数据运算所得的错误检测码与所述附加并存储的错误检测码比较,判断有无数据错误。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/054143 WO2011111211A1 (ja) | 2010-03-11 | 2010-03-11 | メモリ診断方法、メモリ診断装置およびメモリ診断プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102782662A CN102782662A (zh) | 2012-11-14 |
CN102782662B true CN102782662B (zh) | 2016-03-16 |
Family
ID=44563053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080065344.0A Active CN102782662B (zh) | 2010-03-11 | 2010-03-11 | 存储器诊断方法、存储器诊断装置及存储器诊断程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9158618B2 (zh) |
EP (1) | EP2546752B1 (zh) |
JP (1) | JP5038549B2 (zh) |
CN (1) | CN102782662B (zh) |
WO (1) | WO2011111211A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2012020549A1 (ja) * | 2010-08-11 | 2013-10-28 | ナブテスコ株式会社 | 空力ブレーキ装置の制御方法 |
JP5813450B2 (ja) * | 2011-10-17 | 2015-11-17 | 日立オートモティブシステムズ株式会社 | 電子制御装置 |
JP6295113B2 (ja) * | 2014-03-17 | 2018-03-14 | ルネサスエレクトロニクス株式会社 | 自己診断装置及び自己診断方法 |
JP6496562B2 (ja) * | 2014-04-11 | 2019-04-03 | ルネサスエレクトロニクス株式会社 | 半導体装置、診断テスト方法及び診断テスト回路 |
CN104407929B (zh) * | 2014-12-19 | 2017-10-24 | 重庆川仪自动化股份有限公司 | 一种可变存储器校验的方法及*** |
JP6306530B2 (ja) * | 2015-03-12 | 2018-04-04 | 日立オートモティブシステムズ株式会社 | 自動車用電子制御装置 |
JP6717059B2 (ja) * | 2016-06-06 | 2020-07-01 | オムロン株式会社 | 制御システム |
DE102016211124A1 (de) * | 2016-06-22 | 2017-12-28 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Bearbeiten von Binärcodedaten |
KR102565005B1 (ko) * | 2016-08-04 | 2023-08-07 | 에스케이하이닉스 주식회사 | 저항 변화 메모리의 수명 연장 방법 및 그 방법을 이용하는 데이터 저장 시스템 |
DE102016223341A1 (de) * | 2016-11-24 | 2018-05-24 | Robert Bosch Gmbh | Integrierte Schaltung mit Hardwareprüfeinheit zum Überprüfen von ausgewählten Speicherzugriffen |
CN113396398B (zh) * | 2019-01-30 | 2023-11-28 | 株式会社电装多利牡 | 存储器的改写历史记录装置 |
SE1951008A1 (en) * | 2019-09-04 | 2021-03-05 | Fingerprint Cards Ab | Secure storage of sensor setting data |
US11249839B1 (en) * | 2020-08-14 | 2022-02-15 | Rockwell Automation Technologies, Inc. | Method and apparatus for memory error detection |
CN113296430B (zh) * | 2021-04-13 | 2022-10-18 | 东风汽车集团股份有限公司 | 主从芯片处理单元逻辑运算数据流故障监测方法及*** |
CN115904797B (zh) * | 2023-02-27 | 2023-05-09 | 北京控达科技有限公司 | 基于现场可编程门阵列的cpu内存诊断方法、***和设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1435758A (zh) * | 2002-01-29 | 2003-08-13 | 松下电器产业株式会社 | 存储装置、数据处理方法以及数据处理程序 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59124097A (ja) * | 1982-12-28 | 1984-07-18 | Toshiba Corp | メモリ検定方法 |
US5257190A (en) * | 1991-08-12 | 1993-10-26 | Crane Harold E | Interactive dynamic realtime management system for powered vehicles |
JP3039455B2 (ja) * | 1997-06-30 | 2000-05-08 | 日本電気株式会社 | 半導体メモリ装置テスト方法及び半導体メモリ装置 |
US5894549A (en) * | 1997-12-12 | 1999-04-13 | Scenix Semiconductor, Inc. | System and method for fault detection in microcontroller program memory |
JP3578638B2 (ja) * | 1998-08-25 | 2004-10-20 | 株式会社日立ユニシアオートモティブ | マイコン用メモリの診断装置 |
JP2002091834A (ja) * | 2000-09-19 | 2002-03-29 | Nissan Motor Co Ltd | Rom診断装置 |
JP2002288047A (ja) | 2001-03-27 | 2002-10-04 | Toyoda Mach Works Ltd | 記憶手段のチェック方法、そのプログラム、その記録媒体及びその装置 |
WO2003043022A2 (de) * | 2001-11-12 | 2003-05-22 | Siemens Aktiengesellschaft | Speichertest |
US7328380B2 (en) * | 2003-09-11 | 2008-02-05 | Hewlett-Packard Development Company, L.P. | Memory scrubbing logic |
US7143314B2 (en) * | 2003-10-01 | 2006-11-28 | General Motors Corporation | Method and apparatus for ensuring integrity of critical RAM variables |
JP4184354B2 (ja) * | 2005-03-23 | 2008-11-19 | 三菱電機株式会社 | コントロールユニット |
US8117412B2 (en) * | 2008-03-12 | 2012-02-14 | GM Global Technology Operations LLC | Securing safety-critical variables |
-
2010
- 2010-03-11 JP JP2012504237A patent/JP5038549B2/ja active Active
- 2010-03-11 US US13/579,982 patent/US9158618B2/en active Active
- 2010-03-11 CN CN201080065344.0A patent/CN102782662B/zh active Active
- 2010-03-11 WO PCT/JP2010/054143 patent/WO2011111211A1/ja active Application Filing
- 2010-03-11 EP EP10847441.2A patent/EP2546752B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1435758A (zh) * | 2002-01-29 | 2003-08-13 | 松下电器产业株式会社 | 存储装置、数据处理方法以及数据处理程序 |
Also Published As
Publication number | Publication date |
---|---|
EP2546752A4 (en) | 2013-11-13 |
JP5038549B2 (ja) | 2012-10-03 |
WO2011111211A1 (ja) | 2011-09-15 |
CN102782662A (zh) | 2012-11-14 |
EP2546752A1 (en) | 2013-01-16 |
US9158618B2 (en) | 2015-10-13 |
US20120324294A1 (en) | 2012-12-20 |
JPWO2011111211A1 (ja) | 2013-06-27 |
EP2546752B1 (en) | 2018-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102782662B (zh) | 存储器诊断方法、存储器诊断装置及存储器诊断程序 | |
CN102841828B (zh) | 逻辑电路中的故障检测和减轻 | |
JP5911922B2 (ja) | 安全関連制御ユニットおよび自動化設備の制御方法 | |
CN102822807A (zh) | 控制计算机***、用于控制控制计算机***的方法及控制计算机***的使用 | |
KR20130031888A (ko) | 데이터 메모리의 모니터링 방법 | |
JP4917604B2 (ja) | 記憶装置構成およびその駆動方法 | |
JP2021531568A (ja) | コモンモード障害信号に応じたメモリスキャン動作 | |
JP5464128B2 (ja) | Ram故障診断装置、そのプログラム | |
JP6341795B2 (ja) | マイクロコンピュータ及びマイクロコンピュータシステム | |
JP2010160649A (ja) | 制御装置および制御方法 | |
JP2013175118A (ja) | 制御装置、及びそのメモリ故障検出方法、その自己診断方法 | |
CN105335279B (zh) | 单片机中闪存程序自动检测及修复方法和装置 | |
JP2020016511A (ja) | 半導体集積回路および回転検出装置 | |
US7725644B2 (en) | Memory device and an arrangement for protecting software programs against inadvertent execution | |
JP5453984B2 (ja) | Ram診断装置、そのプログラム | |
JP4851525B2 (ja) | データ処理システムおよびその駆動方法 | |
JPH09120376A (ja) | データ処理装置 | |
JP6914430B2 (ja) | メモリ診断装置及びメモリ診断方法 | |
JP6501703B2 (ja) | 車載制御装置 | |
WO2022254521A1 (ja) | 監視システム、監視方法、監視装置および機能制限装置 | |
CN116931825A (zh) | 运行存储单元以及执行具有存储器检查的应用程序的方法 | |
CN116931824A (zh) | 以计算机辅助的方式运行存储单元和执行应用程序的方法 | |
US20090222702A1 (en) | Method for Operating a Memory Device | |
Liaigre | Securing Automobile Architectures | |
US20190052286A1 (en) | Error detector and/or corrector checker method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |