WO2011111211A1 - メモリ診断方法、メモリ診断装置およびメモリ診断プログラム - Google Patents

メモリ診断方法、メモリ診断装置およびメモリ診断プログラム Download PDF

Info

Publication number
WO2011111211A1
WO2011111211A1 PCT/JP2010/054143 JP2010054143W WO2011111211A1 WO 2011111211 A1 WO2011111211 A1 WO 2011111211A1 JP 2010054143 W JP2010054143 W JP 2010054143W WO 2011111211 A1 WO2011111211 A1 WO 2011111211A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
area
memory
stored
diagnosis
Prior art date
Application number
PCT/JP2010/054143
Other languages
English (en)
French (fr)
Inventor
洋史 山田
康晴 板野
悦司 松山
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2010/054143 priority Critical patent/WO2011111211A1/ja
Priority to CN201080065344.0A priority patent/CN102782662B/zh
Priority to US13/579,982 priority patent/US9158618B2/en
Priority to JP2012504237A priority patent/JP5038549B2/ja
Priority to EP10847441.2A priority patent/EP2546752B1/en
Publication of WO2011111211A1 publication Critical patent/WO2011111211A1/ja

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/1004Adding 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
    • 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
    • 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

Definitions

  • the present invention relates to a memory diagnosis method, a memory diagnosis device, and a memory diagnosis program for diagnosing a rewritable memory in a process.
  • Non-Patent Document 1 International standards related to functional safety related to electricity, electronics, and programmable electronics in the process industry have been established (Non-Patent Document 1).
  • Non-Patent Document 1 is directed to a device that greatly affects human life due to a function or failure / failure of an electric / electronic device.
  • functional safety corresponds to transportation equipment, chemical plants, medical equipment, and the like.
  • Non-Patent Document 1 stipulates that countermeasures such as system reliability improvement by redundancy and diversification and installation of a self-diagnosis function are necessary for random hardware failures.
  • Non-Patent Document 1 defines four stages from SIL1 having a relatively low required safety level to SIL4 having the highest level.
  • Non-Patent Document 1 recommends fault detection and diagnosis for SIL2, and strongly recommends fault detection and diagnosis for SIL3 and SIL4.
  • the program In a device that performs processing by executing a program on a CPU (Central Processing Unit), the program is read from ROM (Read-Only Memory) to a fast access RAM (Random-Access Memory) for faster program operation. It is generally done in For this reason, the RAM contains a mixture of data that is changed during execution of the program and data that is not changed.
  • ROM Read-Only Memory
  • RAM Random-Access Memory
  • Data stored in RAM may cause RAM failure, manufacturing failure, or unintended modification of data due to cosmic rays or the like.
  • Patent Document 1 describes a method of checking a storage unit during control of a control target.
  • the check method of the storage means in Patent Document 1 is a RAM bank check method including a plurality of RAM banks for storing data, and the same check processing (control operation and Monitoring operation), and it is determined whether or not the two operation results (check results) are the same.
  • the result of the control calculation and the monitoring calculation is written into each RAM bank, the written value is read, and it is determined whether or not the two values match.
  • IEC 61508-1-IEC 61508-7 International Electrotechnical Commission: 1998-12-2000-03
  • the present invention has been made in view of the circumstances as described above, and provides a memory diagnosis method, a memory diagnosis device, and a memory diagnosis program capable of relatively easily diagnosing a memory used by a process during the execution of the process. For the purpose.
  • the memory diagnosis method is a method for diagnosing a memory used by a process during the execution of the process.
  • the first data stored in the variable region other than the region of the memory that stores the first data stored in the variable region is stored in the variable region of the memory that stores the first data that may be written by the process. Is stored in the save area, and the known data is written into the variable area where the first data stored in the save area is stored. Then, the data in the same area where the known data is written is read out, and it is determined whether or not it matches the written known data.
  • an error detection code is added in advance to the stored data and stored in the fixed area in the fixed area that is the memory area for storing the second data that is not changed during the execution of the process. . Then, the presence or absence of a data error is determined by comparing the error detection code calculated from the data read from the fixed area and the error detection code added and stored.
  • the memory diagnostic device diagnoses the memory used by the process during the execution of the process.
  • the variable region diagnosis unit is configured to store the first data stored in the variable region in the variable region of the memory that stores the first data that may be written by the process, other than the memory region that stores the first data. Is stored in the save area, and the known data is written into the variable area where the first data stored in the save area is stored. Then, the data in the same area where the known data is written is read out, and it is determined whether or not it matches the written known data.
  • the fixed area diagnosis unit adds an error detection code to the stored data in advance and stores the data in the fixed area in the fixed area that stores the second data that is not changed during the execution of the process. . Then, the presence or absence of a data error is determined by comparing the error detection code calculated from the data read from the fixed area and the error detection code added and stored.
  • the memory diagnostic program according to the third aspect of the present invention causes a computer to execute the memory diagnostic method according to the first aspect of the present invention when a process is being executed by the computer.
  • a memory in which data that cannot be rewritten by a process and data that can be rewritten can be diagnosed relatively easily during execution of the process.
  • FIG. 5 is a diagram for explaining an example of fixed area diagnosis according to Embodiment 1.
  • FIG. It is a figure explaining the example from which the fixed area diagnosis which concerns on Embodiment 1 differs.
  • FIG. It is a figure which shows the state which memorize
  • FIG. 6 is a flowchart showing an example of an operation for setting an error detection code in a fixed area according to the first embodiment.
  • 4 is a flowchart showing an example of operation of fixed area diagnosis according to the first embodiment.
  • 3 is a flowchart showing an example of operation of a variable region diagnosis according to the first embodiment.
  • It is a block diagram which shows the structural example of the brake control system which concerns on Embodiment 2 of this invention. It is a block diagram which shows the structural example of the process execution apparatus which concerns on Embodiment 3 of this invention.
  • FIG. 1 is a block diagram showing a configuration example of a process execution device according to Embodiment 1 of the present invention.
  • the process execution device 100 includes a memory diagnosis unit 1, a process execution unit 5, a ROM (Read-Only Memory) 6, and a RAM (Random-Access Memory) 7.
  • the RAM 7 is divided into a fixed area 8 and a variable area 9.
  • the memory diagnosis unit 1 includes a fixed region diagnosis unit 2, a variable region diagnosis unit 3, and a diagnosis result notification unit 4.
  • the ROM 6 stores a program for performing processing of the process execution unit 5, constant data, and other data.
  • the program and constant data in the ROM 6 are loaded into the fixed area 8 of the RAM 7.
  • the process execution unit 5 performs a target process of the process execution device 100 by a program loaded from the ROM 6 to the RAM 7 being executed by the CPU using the RAM 7 and the input / output device as resources.
  • the fixed area 8 of the RAM 7 is an area in which the program and constant data stored in the ROM 6 are loaded and the data is not rewritten during the process execution.
  • the variable area 9 of the RAM 7 is a storage area used as a work area during execution of a process.
  • the variable area 9 stores variables, constants, various parameters that are temporarily stored, and a CPU stack that is executing a process.
  • the diagnosis target is the RAM 7, but if it is a rewritable storage medium, the diagnosis target may be NVRAM (Non Volatile RAM), EEPROM (Electrically Erasable Programmable ROM), Flash ROM, or the like. It can be. Further, not only one type of storage medium but also a combination of RAM, NVRAM, EEPROM, etc. can be a diagnosis target.
  • the fixed area diagnosis unit 2 of the memory diagnosis unit 1 diagnoses whether the data stored in the fixed area 8 of the RAM 7 is correct during the process of the process execution unit 5.
  • the diagnosis of the fixed area 8 is performed by adding an error detection code to data stored in the fixed area 8 in advance, calculating an error detection code calculated from data read from the fixed area 8, and adding and storing the error detection code. Are compared to determine whether there is a data error.
  • the fluctuation area diagnosis unit 3 diagnoses whether or not the fluctuation area 9 of the RAM 7 operates normally during the process of the process execution unit 5.
  • the data stored in the fluctuation area 9 is stored in a save area other than the area where the data is stored, and the known data is written in the fluctuation area 9 where the data is stored. This is done by reading the data and determining whether it matches the known data that has been written.
  • the known data is data whose bit pattern is known by the fluctuation area diagnosis unit 3 before writing to the fluctuation area 9, and is compared with other data by the fluctuation area diagnosis section 3 after being written to the fluctuation area 9. It is possible data.
  • the known data may be fixed data defined by program data or data generated by performing some operation in the program or logic operation circuit. Fixed data includes data selected from a plurality of bit patterns.
  • the data generated by the calculation includes, for example, data calculated by a predetermined calculation formula from the number of times of memory diagnosis and the time, or data that generates a pseudo random number to generate a bit pattern.
  • data generated by calculation data obtained by reading data stored in the fluctuation region 9 and bit-inverting it can be used.
  • the diagnosis result notification unit 4 notifies the process execution unit 5 that there is a data error when the fixed region diagnosis unit 2 or the variable region diagnosis unit 3 detects a data error.
  • the memory diagnosis unit 1 similarly to the process execution unit 5, the memory diagnosis unit 1 performs a memory diagnosis process by executing a program loaded from the ROM 6 to the RAM 7 by the CPU using the RAM 7 as a resource. .
  • FIG. 2 is a block diagram illustrating an example of a hardware configuration of the process execution device according to the first embodiment.
  • the process execution device 100 includes a CPU 21, a RAM 7, a ROM 6, and an I / O 24.
  • the RAM 7, ROM 6 and I / O 24 are all connected to the CPU 21 via the internal bus 20.
  • the control program 25 stored in the ROM 6 and loaded into the RAM 7 runs on the CPU 21 to execute the process of the process execution device 100.
  • the RAM 7 loads the control program 25 stored in the ROM 6 and is used as a work area for the process execution unit 5 and the memory diagnosis unit 1.
  • the diagnosis target is the external RAM of the CPU 21, but the RAM incorporated in the CPU 21 may be used.
  • the ROM 6 is composed of a general read-only memory (Read-Only Memory), but besides that, a flash memory, a hard disk, a DVD-RAM (Digital Versatile Disc Random-Access Memory), and a DVD-RW (Digital Versatile Disc ReWritable). ) Or the like.
  • the ROM 6 stores in advance a program for performing processing of the process execution unit 5 and the memory diagnosis unit 1 using the CPU 21.
  • the I / O 24 includes a serial interface or a parallel interface that is connected to various input / output devices or communication devices in order for the process execution device 100 to exchange data with external devices.
  • the process execution apparatus 100 inputs and outputs data with external devices via the I / O 24.
  • FIG. 3 is a diagram illustrating an example of RAM allocation of the process execution device according to the first embodiment.
  • the RAM 7 stores various data such as program data (control, diagnosis) 71, variables 72, constants 73, operational parameters 74, and a CPU stack 75.
  • the RAM 7 further stores an error detection code 81 for program data.
  • Program data 71 and error detection code 81 are included in fixed area 8.
  • Other variables 72, constants 73, parameters 74, CPU stack 75, and the like are included in the change area 9.
  • error detection methods used for diagnosis of the fixed area 8 include error detection using double writing, parity code, checksum, Hamming code, cyclic redundancy check (CRC), or hash function.
  • the reference data for double writing or its bit inverted data is one type of error detection code 81.
  • the error detection code includes an error detection and correction code.
  • the fixed area diagnosis unit 2 adds an error detection code 81 to the data stored in the fixed area 8 before starting the process of the process execution unit 5. Then, during the process of the process execution unit 5, the error detection code calculated from the data read from the fixed area 8 is compared with the previously added error detection code 81 to determine the presence or absence of a data error.
  • FIG. 4 is a diagram for explaining an example of fixed area diagnosis according to the first embodiment.
  • bit-inverted program data is used as the error detection code 81.
  • Writing bit-inverted data is a kind of double writing.
  • the fixed region diagnosis unit 2 Prior to starting the process of the process execution unit 5, the fixed region diagnosis unit 2 inverts the program data and stores the data in the fixed region 8 as an error detection code 81.
  • the fixed area diagnosis unit 2 reads out the program data 71 from the fixed area 8 during the process of the process execution unit 5, inverts the bit, and compares it with the corresponding error detection code 81 (program data with the bit inverted) (FIG. 4 arrow). C). If there is a difference between the bit-inverted program data 71 and the error detection code 81, the fixed area diagnosis unit 2 determines that there is a failure in that portion of the RAM 7.
  • the fixed area diagnosis unit 2 does not need to collectively perform the bit inversion of the program data 71 and the error detection code 81 for the entire program data. Dividing into appropriate blocks, bit inversion and comparison may be performed for each block. In addition, since the diagnosis of the fixed area 8 can be interrupted and resumed at any time, it can be realized by a task having a lower priority than the process of the process execution unit 5.
  • FIG. 5 is a diagram for explaining a different example of the fixed area diagnosis according to the first embodiment.
  • a cyclic redundancy check code (CRC code) is used as the error detection code 81.
  • the fixed area diagnosis unit 2 divides the program data 71 into blocks and calculates a CRC code for each block.
  • the CRC code is stored in an area different from the program data 71.
  • the CRC codes of blocks # 1 to #n are stored in # 1CRC to #nCRC, respectively.
  • the fixed area diagnosis unit 2 stores the CRC code for each block of the program data 71 in the fixed area 8 before starting the process of the process execution unit 5.
  • the fixed area diagnosis unit 2 sequentially reads blocks of the program data 71 from the fixed area 8 during the process of the process execution unit 5 and calculates the CRC code. Then, the stored CRC code of the block is compared with the calculated CRC code. If there is a difference between the two CRC codes, the fixed area diagnosis unit 2 determines that the block has a failure. Also in this case, the diagnosis of the fixed area 8 can be interrupted and restarted at any time, and therefore can be realized by a task having a lower priority than the process of the process execution unit 5.
  • an error detection code to the error detection code 81 of the program data 71 and diagnose the fixed area 8 in which the error detection code 81 is stored.
  • a checksum and / or horizontal / vertical parity is added to the error detection code 81 (bit-inverted program data) in FIG. 4 to diagnose the area in which the error detection code 81 is stored.
  • FIGS. 6A to 6C are diagrams for explaining an example of the variable region diagnosis according to the first embodiment.
  • FIG. 6A shows a state where the variable area 9 is divided into blocks and the save area 91 is allocated.
  • FIG. 6B is a diagram illustrating a state in which a part of the data in the change area is stored in the save area.
  • FIG. 6B shows that the data of the block #x in the fluctuation area 9 is stored in the save area 91.
  • FIG. 6C is a diagram showing a state in which inspection data is stored in a part of the fluctuation region.
  • the example of FIG. 6C shows a state in which the inspection data 92 is stored in the saved block #x.
  • the inspection data 92 is known data held or generated by the variable region diagnosis unit 3.
  • the inspection data 92 is, for example, data with all bits being 1, data with all bits being 0, data in which bits 1 and 0 are alternately arranged (1010... Or 0101%), Or other fixed bits. Such as a pattern.
  • the fluctuation area diagnosis unit 3 writes predetermined inspection data 92 in the area where the saved data is stored. Then, the data is read from the same area where the inspection data 92 is written and compared with the original data written. If there is a difference between the written data and the read data bit, the fluctuation region diagnosis unit 3 determines that there is a failure in that portion of the RAM 7.
  • the variable area diagnosis unit 3 reads the data from the same area where the test data 92 is written, and then writes the data stored in the save area 91 to the original area. The save area 91 is released so that new data can be stored, and the variable area 9 of the RAM 7 returns to the state shown in FIG. 6A.
  • the fluctuation region diagnosis unit 3 performs the diagnosis of the RAM 7 for each block by sequentially changing the blocks in which the data is saved and the inspection data 92 is written. In addition, the inspection data 92 is written to and read from the save area 91 for diagnosis. If the save area 91 is not used by the process execution unit 5, it is not necessary to save the data in the save area 91 to another area.
  • a part of the data in the fluctuation area 9 is saved in an empty area (a saving area 91) of the RAM 7, and the predetermined inspection data 92 is written in the area where the saved data is stored. Therefore, it is desirable to carry out at least when the process using the saved data is in a waiting state. If possible, it is desirable that all processes of the process execution unit 5 (other than the processing of the memory diagnosis unit 1) are performed in a waiting state. In addition, when a task with the highest priority of the process execution unit 5 enters a waiting state, a diagnosis of one block in the change area 9 may be performed.
  • the variable region diagnosis unit 3 appropriately sets the size of the block of the unit for diagnosing the variable region 9 so that the processing of the process execution unit 5 is not hindered. That is, for example, the block size is set so that the time for writing the saved data to the original area is shorter than the time for which the process execution unit 5 can wait for the highest priority interrupt process. By doing so, even if an interrupt occurs during the variable area diagnosis, the process of the process execution unit 5 is not hindered by canceling the variable area diagnosis and writing the saved data in the original area.
  • the fluctuation area diagnosis unit 3 may change the inspection data 92 every time the block of the fluctuation area 9 is diagnosed. For example, a plurality of fixed bit patterns may be prepared, and different fixed bit patterns may be selected and used for diagnosis each time a block is diagnosed or for each block to be diagnosed. In addition to the fixed pattern data test using a fixed bit pattern, a check board test, a walking bit test, or a pseudo random data test can be performed. By changing the bit pattern of the inspection data 92, it is possible to detect a failure in which data of a certain bit is in a fixed state.
  • FIG. 7 is a flowchart showing an example of the operation for setting the error detection code of the fixed area according to the first embodiment.
  • the fixed area diagnosis unit 2 reads the start address and the end address of the fixed area 8 (step S10). It is assumed that these data are set in the program data 71. 1 is initially set to the block number variable i (step S11), and the error detection code 81 of the data of the i-th block in the fixed area 8 is calculated (step S12). The error detection code 81 may be given as data in the ROM 6. Then, the error detection code 81 is written in a predetermined part of the fixed area 8 (step S13).
  • the error detection code 81 is a CRC code
  • the CRC code of block # 1 is written in # 1 CRC as shown in FIG.
  • the error detection code 81 is bit inverted
  • the program data 71 is written with the bit inverted as shown in FIG.
  • the fixed area diagnosis unit 2 increments the block number variable i (step S14), and if there is a block of the number (remaining data) (step S15; YES), the process returns to step S12 and the data error of the block It repeats from calculating the detection code 81. If there is no i-th block (remaining data) in the fixed area 8 (step S15; NO), the error detection code setting process is terminated.
  • FIG. 8 is a flowchart showing an example of the operation of the fixed area diagnosis according to the first embodiment.
  • the fixed area diagnosis process always operates as a task having a lower priority than the process of the process execution unit 5.
  • the fixed area diagnosis unit 2 sets the head address of the block to be diagnosed (step S20), and reads the data of the block to be diagnosed (step S21). Then, an error detection code is generated from the read data (step S22).
  • error detection is a CRC method
  • a CRC code is calculated.
  • the error detection code 81 is bit-reversed data as shown in FIG. 4, data obtained by bit-reversing the read data is generated.
  • the fixed area diagnosis unit 2 reads the error detection code 81 of the block to be diagnosed (step S23) and compares it with the error detection code generated in step S22 (step S24). If the two codes match (step S24; YES), it is determined that the data of the block to be diagnosed is normal, and the process proceeds to the diagnosis of the next block. That is, the head address of the block to be diagnosed is incremented by one block (step S25), and if it is the fixed area 8 (step S26; YES), the process returns to step S21 and repeats from reading of the block to be diagnosed. If it is not the fixed area 8 (step S26; NO), the process returns to step S20 and the diagnosis is repeated from the head block of the fixed area 8.
  • step S22 If the error detection code generated in step S22 does not match the read error detection code 81 of the block to be diagnosed (step S24; NO), it is determined that there is an abnormality in the data of the block to be diagnosed.
  • the diagnosis result notification unit 4 notifies the process execution unit 5 that there is an error in the fixed area 8 (step S27). If there is an error in the program data, the fixed area diagnosis unit 2 ends the process.
  • FIG. 9 is a flowchart showing an example of the operation of the variable region diagnosis according to the first embodiment.
  • the variable area diagnosis unit 3 sets the head address of the block to be diagnosed (step S30), and writes the data of the block to be diagnosed in the save area 91 (step S31). Then, the inspection data 92 is written in the block to be diagnosed (step S32).
  • the inspection data 92 is data of a fixed bit pattern, a check board test, a walking bit test, or a pseudo random data test.
  • the fluctuation area diagnosis unit 3 reads data from the block to be diagnosed (step S33) and writes the data in the save area 91 to the block to be diagnosed (step S34).
  • the saved data can be restored at any time after the written data is read from the block to be diagnosed.
  • the variable region diagnosis unit 3 compares the data read in step S33 with the inspection data 92 (step S35). If the two match (step S35; YES), it is determined that the block to be diagnosed is normal, and the next block is diagnosed. That is, the head address of the block to be diagnosed is incremented (step S36), and if it is the change area 9 (step S37; YES), the process returns to step S31 and is repeated from saving the data of the block to be diagnosed. If it is not the fluctuation area 9 (step S37; NO), it returns to step S30 and repeats the diagnosis from the first block of the fluctuation area 9.
  • step S35 If the data read in step S33 and the inspection data 92 do not match (step S35; NO), it is determined that there is an abnormality in the block to be diagnosed.
  • the diagnosis result notification unit 4 notifies the process execution unit 5 that there is an error in the fluctuation region 9 (step S38). If there is an error in the program data 71, the variable region diagnosis unit 3 ends the process.
  • variable region diagnosis is performed at least when the process using the saved data is in the wait state, preferably in the time when all the processes are in the wait state.
  • the process execution unit 5 returns from the waiting state during the change area diagnosis (strictly speaking, from the start of the writing of the inspection data 92 to the start of writing of the data of the save area 91 to the diagnosis block). Then, the diagnosis processing of the block that has been diagnosed is temporarily stopped, and the saved data is written to the original block. In this case, when the process execution unit 5 enters a waiting state, the process restarts from writing the data of the block to be diagnosed into the save area 91 (step S31).
  • the fixed area 8 that stores data that cannot be rewritten by the process execution unit 5 such as the program data 71 can be diagnosed without rewriting data. .
  • the diagnosis such as the program counter of the CPU 21 can be performed regardless of the state of the process, the program for diagnosing the memory can be simplified.
  • the variable area 9 for storing data that may be rewritten by the process execution unit 5 such as the variable 72 or the CPU stack 75 is a comparison of the data that has been written and read with the predetermined inspection data 92 without using the error detection code. Diagnose by. As a result, even when the process execution unit 5 rewrites the data, the rewriting of the comparison source data and the calculation of the error detection code become unnecessary.
  • the fixed area 8 and the variable area 9 are mixed in the memory used by the process, it is possible to relatively easily diagnose the memory used by the process during the process. . In addition, all data areas can be easily diagnosed without losing data in the RAM 7.
  • FIG. 10 is a block diagram showing a configuration example of a brake control system according to Embodiment 2 of the present invention.
  • the process execution device 100 according to the first embodiment is used as a brake control device 110 for a railway vehicle.
  • the brake control system 200 includes a command device 120, a brake control device 110, and a brake device 130.
  • the brake control device 110 communicates with the brake device 130 of each vehicle constituting the railway vehicle via a network (not shown) between the vehicles.
  • Command device 120 commands brake control device 110 to decelerate the entire vehicle.
  • the brake control device 110 commands the braking device 130 of the vehicle to apply a braking force according to the excess of each vehicle.
  • the excessive weight of each vehicle is detected by the brake device 130 and transmitted to the brake control device 110.
  • the brake control apparatus 110 inputs the wheel rotational speed of each vehicle from the brake apparatus 130, and detects the sliding state of each wheel.
  • deceleration in principle, it is possible to determine that a wheel having a lower rotational speed is sliding on the basis of the wheel having the highest rotational speed (wheel peripheral speed).
  • the brake control device 110 commands the sliding vehicle to weaken the braking force. Then, the reduced braking force is distributed to other non-sliding vehicles so as to achieve the deceleration commanded for the entire vehicle, and the increased braking force is commanded to the brake device 130.
  • the brake control device 110 is configured similarly to the process execution device 100 of FIG. In FIG. 10, a communication unit that performs communication between the brake control device 110 and the command device 120 and between the brake control device 110 and the brake device 130 is omitted.
  • the process execution unit 5 of the brake control device 110 executes the above-described brake control process as a process.
  • the memory diagnosis unit 1 of the brake control device 110 performs diagnosis of the RAM 7 of the brake control device 110 during operation of the brake control device 110, that is, during normal operation of the railway vehicle.
  • the memory diagnostic unit 1 of the brake control device 110 diagnoses the RAM 7 as in the first embodiment.
  • the brake control device 110 calculates the braking force of each vehicle from the deceleration command, the speed of each vehicle, the excess weight of each vehicle, the rotational speed of the wheels, etc., at regular intervals, for example, every 10 msec.
  • the sliding state is detected and the braking force is calculated.
  • the memory diagnosis unit 1 performs the above-described memory diagnosis at a time when the arithmetic processing of the process execution unit 5 is not performed.
  • the memory diagnosis unit 1 saves and inspects at least the data in the fluctuation region 9 during a short time that does not take the speed interrupt processing time, for example, 500 ⁇ sec.
  • the size of one block to be diagnosed is set so that the data can be written and read.
  • the diagnosis of the fluctuation region 9 is performed for each block as described in the flowchart of FIG.
  • a diagnosis process for one block is performed during speed interruption.
  • the blocks to be diagnosed are sequentially advanced for each interrupt process, and when the diagnosis of all the blocks in the variable region 9 is completed, the process returns to the top and the diagnosis for each block is repeated.
  • the diagnosis of the fixed area 8 can be interrupted at any timing as described in the first embodiment, so that it may be performed in the idle time with the lowest priority task.
  • the brake control device 110 of the second embodiment it is possible to relatively easily diagnose all the RAMs 7 used by the brake control device 110 during normal operation of the railway vehicle. Since the diagnosis of the RAM 7 is performed during the operation of the railway vehicle, even if an abnormality occurs in the RAM 7 during the operation, the abnormality can be detected immediately and at least an emergency stop operation can be performed to avoid danger. Further, when the brake control device 110 has a redundant configuration, the operation can be continued by switching to the standby system. After that, it is possible to check and replace the abnormal part at an appropriate safe place and time. In this way, functional safety of the railway vehicle can be ensured.
  • the configuration of the memory diagnosis unit 1 and the like according to the second embodiment can be applied not only to the brake control device 110 but also to any control device that uses the memory of the railway vehicle.
  • FIG. 11 is a block diagram illustrating a configuration example of the process execution device according to the third embodiment of the present invention.
  • the memory diagnostic device 11 is provided independently of the CPU 21 that implements the process execution unit 5.
  • the memory diagnostic device 11 is connected to the internal bus 20 of the process execution device 100 so that the RAM 7 used by the process execution unit 5 can be read and written.
  • the CPU 21, RAM 7, ROM 6, and I / O 24 constituting the process execution apparatus 100 are the same as those in the first embodiment.
  • the control program 26 loaded into the RAM 7 includes the program of the process execution unit 5 but does not include the program of the memory diagnostic device 11.
  • the control program 26 stored in the ROM 6 and loaded in the RAM 7 runs on the CPU 21 to execute the process of the process execution unit 5.
  • the memory diagnostic device 11 is composed of hardware different from the process execution unit 5.
  • the memory diagnostic device 11 reads and writes the RAM 7 via the internal bus 20. Similar to the memory diagnostic unit 1 of the first embodiment, the memory diagnostic device 11 includes a fixed region diagnostic unit 12, a variable region diagnostic unit 13, and a diagnostic result notification unit 14, and operates in the same manner as the memory diagnostic unit 1.
  • the memory diagnostic device 11 can be configured by, for example, a microcomputer, an FPGA (Field Programmable Gate Array), or a dedicated LSI.
  • the memory diagnostic device 11 is activated after the program data is loaded from the ROM 6 to the RAM 7, and the fixed area diagnostic unit 12 adds an error detection code 81 to the fixed area 8 of the RAM 7.
  • the start address and the end address of the fixed area 8 are given, for example, by the activation process of the control program 26.
  • the fixed area diagnosis unit 12 compares the error detection code calculated from the data read from the fixed area 8 and the previously added error detection code 81 during the process of the process execution unit 5 to determine whether there is a data error. To do.
  • the process of the fixed area diagnosis unit 12 may be executed any time as long as the data read from the RAM 7 does not collide with the data read / write of another process. Therefore, if the process is interrupted when data read / write of another process occurs, the process may always be operated.
  • the fluctuation area diagnosis unit 13 diagnoses whether or not the fluctuation area 9 of the RAM 7 operates normally during the process of the process execution unit 5.
  • the diagnosis of the fluctuation area 9 is performed by temporarily storing the data stored in the fluctuation area 9 in a region other than the area where the data is stored, and writing known data in the fluctuation area 9 where the data is stored. The data is read and it is determined whether or not it matches the known data that has been written.
  • the fluctuation area diagnosis unit 13 diagnoses the fluctuation area 9 at a time when all processes of the process execution unit 5 are in a waiting state.
  • the fact that the process execution unit 5 is in a waiting state is notified from the CPU 21 by the process execution unit 5 via the internal bus 20.
  • a flag provided in the memory diagnostic device 11 can be turned on / off from the CPU 21 to notify whether or not it is in a waiting state.
  • the diagnosis result notification unit 14 notifies the process execution unit 5 that there is an error in the fixed region 8 or the variable region 9 when the fixed region diagnostic unit 12 or the variable region diagnostic unit 13 detects a failure in the RAM 7.
  • the save area 91 for temporarily storing the data of the fluctuation area 9 may be provided inside the memory diagnostic device 11. In that case, the save area 91 of the memory diagnostic apparatus 11 is also the target of the variable area diagnosis.
  • the memory diagnostic device 11 of the third embodiment operates in the same manner as the memory diagnostic unit 1 of the first embodiment, and has the same effect.
  • the central part that performs processing for the memory diagnosis unit 1 including the CPU 21, RAM 7, ROM 6, internal bus 20, and the like can be realized using a normal computer system, not a dedicated system.
  • a computer program for executing the above operation is stored and distributed on a computer-readable recording medium (flexible disk, CD-ROM, DVD-ROM, etc.), and the computer program is installed in the computer.
  • the memory diagnostic unit 1 that executes the above-described processing may be configured.
  • the computer program may be stored in a storage device included in a server device on a communication network such as the Internet, and the memory diagnostic unit 1 may be configured by being downloaded by a normal computer system.
  • the function of the memory diagnosis unit is realized by sharing the OS (operating system) and application programs, or by cooperation between the OS and application programs, only the application program part is stored in a recording medium or a storage device. May be.
  • the computer program may be posted on a bulletin board (BBS: Bulletin Board System) on a communication network, and the computer program may be distributed via the network.
  • BSS Bulletin Board System
  • the computer program may be started and executed in the same manner as other application programs under the control of the OS, so that the above-described processing may be executed.

Abstract

 プロセスの実行中にそれが使用するメモリの診断を比較的容易に行えるメモリ診断方法を提供する。固定領域(8)は、プロセス実行部(5)が変更しないデータを記憶する。変動領域(9)は、プロセス実行部(5)が書き込み処理を行う可能性のあるデータを記憶する。固定領域診断部(2)は、固定領域(8)に記憶するデータに予め誤り検出符号を付加する。そして、固定領域(8)から読み出したデータから演算した誤り検出符号と、予め付加した誤り検出符号とを比較してデータ誤りの有無を判断する。変動領域診断部(3)は、変動領域(9)に記憶しているデータを、記憶しているメモリの領域以外のメモリに一時的に記憶させ、その一時的に記憶させたデータを記憶していた変動領域(9)に既知のデータを書き込む。そして、既知のデータを書き込んだ同じ領域のデータを読み出して、書き込んだ既知のデータと一致するか否かを判断する。

Description

メモリ診断方法、メモリ診断装置およびメモリ診断プログラム
 本発明は、プロセスで書き換え可能なメモリを診断するメモリ診断方法、メモリ診断装置およびメモリ診断プログラムに関する。
 プロセス産業における電気・電子・プログラマブル電子関連の機能安全に関する国際規格が定められている(非特許文献1)。非特許文献1は、電気・電子機器などの機能または故障・障害によって人命に大きな影響を与えるものなどを対象とする。例えば、輸送機器、化学プラント、医療機器などにおける機能安全が相当する。
 安全性に影響を及ぼす要因として、主にハードウェアに関して、部品や材料の劣化、製品のばらつきなどにより起こるランダムハードウェア故障が想定される。非特許文献1は、ランダムハードウェア故障に対して、冗長化や多様化によるシステムの信頼性向上や、自己診断機能設置などの対策が必要であると規定している。また、確率論的危険(リスク)解析などによって、全体システムのリスクが許容リスクを下回るようにするために、当該安全装置の安全度水準(SIL=Safety Integrity Level)を決定することとしている。非特許文献1は、要求安全度水準が比較的低いSIL1から最も水準の高いSIL4まで4段階を規定している。非特許文献1は、SIL2に対して障害検出および診断を推奨しており、SIL3およびSIL4では、障害検出および診断を強く推奨している。
 CPU(Central Processing Unit)でプログラムを実行することによって処理を行う機器では、プログラム動作の高速化のため、ROM(Read-Only Memory)からアクセス速度の速いRAM(Random-Access Memory)にプログラムを読み込んで実行することが一般に行われている。このため、RAMには、プログラムの実行中に変更されるデータと変更されないデータが混在する。
 RAMに記憶されたデータは、RAMの故障、製造上の障害、または宇宙線等によるデータの意図しない改変が発生する可能性がある。RAMに記憶したデータが正常であることを定期的に確認するため、プログラムまたは他のロジック回路により診断する必要がある。
 例えば、特許文献1には、制御対象の制御中に、記憶手段をチェックする方法が記載されている。特許文献1の記憶手段のチェック方法は、データを記憶する複数のRAMのバンクを備えたRAMのバンクのチェック方法であって、チェック対象となる2つのRAMのバンクに同じチェック処理(制御演算と監視演算)を行い、その両演算結果(チェック結果)が同じか否かを判別するようにする。制御演算および監視演算した結果をそれぞれのRAMのバンクに書き込みし、その書き込みした値を読み出して、両者の値が一致するか否かを判定する。
特開2002-288047号公報
IEC 61508-1 ~ IEC 61508-7, International Electrotechnical Commission: 1998-12 ~ 2000-03
 プロセスの実行中に変更されるデータは、巡回冗長検査(以下、CRC=Cyclic Redundancy Check)または二重書き込み(double RAM)等を用いて診断を行う場合、データが変更されると同時に、確認元のデータ(CRC符号または比較元データ)を書き換える必要がある。そのため、ソフトウエア処理が煩雑になる。
 プロセスの実行中に変更されないデータは、チェッカーボード、ウォークビット等の診断を行う場合、診断の処理そのものが書き換えられる虞があるため、プログラムの動作を監視しながら書き込み、読み出しを行う必要がある。そのため、ソフトウエア処理が煩雑になる。
 本発明は、上述のような事情に鑑みてなされたもので、プロセスの実行中にそのプロセスが使用するメモリの診断を比較的容易に行えるメモリ診断方法、メモリ診断装置およびメモリ診断プログラムを提供することを目的とする。
 本発明の第1の観点に係るメモリ診断方法は、プロセスの実行中にプロセスが使用するメモリを診断する方法である。変動領域診断ステップは、プロセスが書き込み処理を行う可能性のある第1のデータを記憶するメモリの変動領域において、変動領域に記憶している第1のデータを、記憶しているメモリの領域以外の退避領域に記憶させ、その退避領域に記憶させた第1のデータを記憶していた変動領域に既知のデータを書き込む。そして、既知のデータを書き込んだ同じ領域のデータを読み出して、書き込んだ既知のデータと一致するか否かを判断する。また、固定領域診断ステップは、プロセスの実行中に変更されない第2のデータを記憶するメモリの領域である固定領域において、記憶するデータに予め誤り検出符号を付加して固定領域に記憶しておく。そして、固定領域から読み出したデータから演算した誤り検出符号と、付加して記憶した誤り検出符号とを比較してデータ誤りの有無を判断する。
 本発明の第2の観点に係るメモリ診断装置は、プロセスの実行中にプロセスが使用するメモリの診断を行う。変動領域診断部は、プロセスが書き込み処理を行う可能性のある第1のデータを記憶するメモリの変動領域において、変動領域に記憶している第1のデータを、記憶しているメモリの領域以外の退避領域に記憶させ、その退避領域に記憶させた第1のデータを記憶していた変動領域に既知のデータを書き込む。そして、既知のデータを書き込んだ同じ領域のデータを読み出して、書き込んだ既知のデータと一致するか否かを判断する。また、固定領域診断部は、プロセスの実行中に変更されない第2のデータを記憶するメモリの領域である固定領域において、記憶するデータに予め誤り検出符号を付加して固定領域に記憶しておく。そして、固定領域から読み出したデータから演算した誤り検出符号と、付加して記憶した誤り検出符号とを比較してデータ誤りの有無を判断する。
 本発明の第3の観点に係るメモリ診断プログラムは、コンピュータに、そのコンピュータでプロセスを実行しているときに、本発明の第1の観点に係るメモリ診断方法を実行させることを特徴とする。
 本発明によれば、プロセスが書き換えることのないデータと書き換える可能性のあるデータが混在するメモリを、プロセスの実行中に比較的容易に診断することができる。
本発明の実施の形態1に係るプロセス実行装置の構成例を示すブロック図である。 実施の形態1に係るプロセス実行装置のハードウェア構成の例を示すブロック図である。 実施の形態1に係るプロセス実行装置のRAM割当の例を示す図である。 実施の形態1に係る固定領域診断の例を説明する図である。 実施の形態1に係る固定領域診断の異なる例を説明する図である。 実施の形態1に係る変動領域診断の例を説明する図である。 変動領域の一部のデータを退避領域に記憶させた状態を示す図である。 変動領域の一部に検査用データを記憶させた状態を示す図である。 実施の形態1に係る固定領域の誤り検出符号を設定する動作の一例を示すフローチャートである。 実施の形態1に係る固定領域診断の動作の一例を示すフローチャートである。 実施の形態1に係る変動領域診断の動作の一例を示すフローチャートである。 本発明の実施の形態2に係るブレーキ制御システムの構成例を示すブロック図である。 本発明の実施の形態3に係るプロセス実行装置の構成例を示すブロック図である。
 (実施の形態1)
 図1は、本発明の実施の形態1に係るプロセス実行装置の構成例を示すブロック図である。プロセス実行装置100は、メモリ診断部1、プロセス実行部5、ROM(Read-Only Memory)6、およびRAM(Random-Access Memory)7から構成されている。RAM7は固定領域8と変動領域9に分けられる。メモリ診断部1は、固定領域診断部2、変動領域診断部3および診断結果通知部4を備える。
 ROM6にはプロセス実行部5の処理を行うプログラム、定数データおよびその他のデータが記憶されている。ROM6のプログラムと定数データは、RAM7の固定領域8にロードされる。プロセス実行部5は、ROM6からRAM7にロードされたプログラムが、RAM7および入出力装置などを資源として用いてCPUで実行されることによって、プロセス実行装置100の目的の処理を行う。
 RAM7の固定領域8は、ROM6に記憶されているプログラムと定数データがロードされ、プロセス実行中にデータが書き換えられることがない領域である。RAM7の変動領域9は、プロセスが実行中に作業領域として用いる記憶領域である。変動領域9には、変数、定数、一次記憶される各種のパラメータ、および、プロセス実行中のCPUスタックなどが記憶される。なお、本実施の形態では、診断対象をRAM7としているが、書き換え可能な記憶媒体であれば、NVRAM(Non Volatile RAM:不揮発性メモリ)、EEPROM(Electrically Erasable Programmable ROM)、Flash ROMなどでも診断対象とすることができる。また、1種類の記憶媒体に限らず、RAM、NVRAM、EEPROMなどの組合せを診断対象とすることもできる。
 メモリ診断部1の固定領域診断部2は、プロセス実行部5の処理中に、RAM7の固定領域8に記憶されたデータが正しいか否かを診断する。固定領域8の診断は、固定領域8に記憶するデータに予め誤り検出符号を付加しておいて、固定領域8から読み出したデータから演算した誤り検出符号と、付加して記憶した誤り検出符号とを比較してデータ誤りの有無を判断することによって行う。
 変動領域診断部3は、プロセス実行部5の処理中に、RAM7の変動領域9が正常に動作するか否かを診断する。変動領域9の診断は、変動領域9に記憶しているデータを記憶している領域以外の退避領域に記憶させ、そのデータを記憶していた変動領域9に既知のデータを書き込み、同領域のデータを読み出して、書き込んだ既知のデータと一致するか否かを判断することによって行う。
 既知のデータとは、変動領域9に書き込む前にそのビットパターンが変動領域診断部3で判っているデータであって、変動領域9に書き込んだのちも変動領域診断部3で他のデータと比較できるデータである。既知のデータには、プログラムのデータで定義される固定データと、プログラムまたは論理演算回路で何らかの演算を行って生成されるデータの場合がある。固定データには、複数のビットパターンから選択するものを含む。演算を行って生成されるデータには、例えば、メモリ診断を行う回数や時刻から所定の演算式で算出するデータ、あるいは擬似乱数を発生してビットパターンを生成するデータなどを含む。演算を行って生成されるデータとして、変動領域9に記憶しているデータを読み出してビット反転させたデータを用いることもできる。
 診断結果通知部4は、固定領域診断部2または変動領域診断部3でデータ誤りを検出した場合に、データ誤りがあったことをプロセス実行部5に通知する。
 実施の形態1では、メモリ診断部1は、プロセス実行部5と同じように、ROM6からRAM7にロードされたプログラムが、RAM7を資源として用いてCPUで実行されることによって、メモリ診断処理を行う。
 図2は、実施の形態1に係るプロセス実行装置のハードウェア構成の例を示すブロック図である。プロセス実行装置100は、図2に示すように、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-Only Memory)で構成されるが、それ以外にフラッシュメモリ、ハードディスク、DVD-RAM(Digital Versatile Disc Random-Access Memory)、DVD-RW(Digital Versatile Disc ReWritable)等の不揮発性メモリから構成される場合がある。ROM6は、CPU21を用いてプロセス実行部5およびメモリ診断部1の処理を行うためのプログラムを予め記憶する。
 I/O24は、プロセス実行装置100が外部の機器とデータの授受を行うために、様々な入出力装置または通信装置と接続する、シリアルインタフェースまたはパラレルインタフェースから構成される。プロセス実行装置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の診断に用いる誤り検出の方法として、2重書き込み、パリティ符号、チェックサム、ハミング符号、巡回冗長検査(CRC)、またはハッシュ関数を用いる誤り検出を含む。2重書き込みの参照用データまたはそのビット反転データは、誤り検出符号81の1種である。本実施の形態では、誤り検出符号は、誤り検出訂正符号を含むものとする。
 固定領域診断部2は、プロセス実行部5の処理を開始するのに先立って、固定領域8に記憶するデータに誤り検出符号81を付加する。そして、プロセス実行部5の処理中に、固定領域8から読み出したデータから演算した誤り検出符号と、先に付加した誤り検出符号81とを比較してデータ誤りの有無を判断する。
 図4は、実施の形態1に係る固定領域診断の例を説明する図である。図4の例では、誤り検出符号81として、ビット反転したプログラムデータを用いる。ビット反転したデータを書き込むことは、2重書き込みの一種である。プロセス実行装置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の例では、誤り検出符号81として、巡回冗長検査符号(CRC符号)を用いる。固定領域診断部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の例は、退避させたブロック#xに検査用データ92を記憶させた様子を示す。検査用データ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を書き込み読み出しして、診断する。退避領域91をプロセス実行部5で使用することがなければ、退避領域91のデータを別の領域に退避させる必要はない。
 変動領域9の診断は、変動領域9の一部のデータをRAM7の空いている領域(退避領域91)に退避させ、退避させたデータが記憶されていた領域に既定の検査用データ92を書き込むので、少なくとも退避させたデータを使用しているプロセスが待ち状態のときに行うのが望ましい。できれば、プロセス実行部5(メモリ診断部1の処理以外)のすべてのプロセスが待ち状態の時間に行うことが望ましい。その他、プロセス実行部5の最も優先順位の高いタスクが待ち状態になるときに、変動領域9の1つのブロックの診断を行ってもよい。
 変動領域診断部3では、変動領域9を診断する単位のブロックのサイズを、プロセス実行部5の処理に支障がないように適切に設定する。すなわち例えば、退避したデータを元の領域に書き込む時間が、プロセス実行部5の最も優先度の高い割り込みの処理を待たせることができる時間より短くなるように、ブロックのサイズを設定する。そうすれば、変動領域診断中に割り込みが発生した場合でも、変動領域診断を中止して退避したデータを元の領域に書き込めば、プロセス実行部5の処理には支障がない。
 変動領域診断部3は、変動領域9のブロックを診断するごとに、検査用データ92を変えてもよい。例えば、複数の固定ビットパターンを用意しておいて、1つのブロックを診断する回ごとに、または、診断するブロックごとに、異なる固定ビットパターンを選択して診断に用いてもよい。固定ビットパターンを用いる固定パターンデータテスト以外に、チェックボードテスト、ウォーキングビットテスト、または擬似ランダムデータテストを行うこともできる。検査用データ92のビットパターンを変えることによって、あるビットのデータが固定の状態になってしまう障害を検出することができる。
 図7は、実施の形態1に係る固定領域の誤り検出符号を設定する動作の一例を示すフローチャートである。プロセス実行装置100が起動されて、ROM6からRAM7の固定領域8にプログラムデータ71がロードされたのちに、図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;YES)、ステップS12に戻って、そのブロックのデータの誤り検出符号81を演算することから繰り返す。固定領域8にi番目のブロック(残りデータ)がなければ(ステップS15;NO)、誤り検出符号設定の処理を終了する。
 図8は、実施の形態1に係る固定領域診断の動作の一例を示すフローチャートである。例えば、固定領域診断の処理は、プロセス実行部5の処理より優先度の低いタスクとして常時動作する。
 固定領域診断部2は、診断するブロックの先頭アドレスを設定し(ステップS20)、診断するブロックのデータを読み出す(ステップS21)。そして、読み出したデータから誤り検出符号を生成する(ステップS22)。誤り検出がCRC方法の場合は、CRC符号を演算する。誤り検出符号81が図4のようなビット反転データの場合は、読み出したデータをビット反転させたデータを生成する。
 固定領域診断部2は、診断するブロックの誤り検出符号81を読み出し(ステップS23)、ステップS22で生成した誤り検出符号と比較する(ステップS24)。両者の符号が一致すれば(ステップS24;YES)、診断するブロックのデータは正常であると判断して、つぎのブロックの診断に移る。すなわち、診断するブロックの先頭アドレスを1ブロック分インクリメントして(ステップS25)、固定領域8であれば(ステップS26;YES)、ステップS21に戻って診断するブロックの読み出しから繰り返す。固定領域8でなければ(ステップS26;NO)、ステップS20に戻って、固定領域8の先頭のブロックから診断を繰り返す。
 ステップS22で生成した誤り検出符号と、読み出した診断するブロックの誤り検出符号81が一致しなければ(ステップS24;NO)、診断するブロックのデータに異常があると判断する。診断結果通知部4は、固定領域8にエラーがあることをプロセス実行部5に通知する(ステップS27)。プログラムデータにエラーがある場合は、固定領域診断部2は処理を終了する。
 図9は、実施の形態1に係る変動領域診断の動作の一例を示すフローチャートである。変動領域診断部3は、診断するブロックの先頭アドレスを設定し(ステップS30)、診断するブロックのデータを退避領域91に書き込む(ステップS31)。そして、診断するブロックに検査用データ92を書き込む(ステップS32)。検査用データ92は前述のとおり、固定ビットパターン、チェックボードテスト、ウォーキングビットテスト、または擬似ランダムデータテストのデータである。
 変動領域診断部3は、診断するブロックからデータを読み出し(ステップS33)、退避領域91のデータを診断するブロックに書き込む(ステップS34)。退避しておいたデータを戻すのは、診断するブロックから書き込んだデータを読み出したのちであればいつでもかまわない。変動領域診断部3は、ステップS33で読み出したデータと検査用データ92を比較する(ステップS35)。両者が一致すれば(ステップS35;YES)、診断するブロックは正常であると判断して、つぎのブロックの診断に移る。すなわち、診断するブロックの先頭アドレスをインクリメントして(ステップS36)、変動領域9であれば(ステップS37;YES)、ステップS31に戻って診断するブロックのデータを退避することから繰り返す。変動領域9でなければ(ステップS37;NO)、ステップS30に戻って、変動領域9の先頭のブロックから診断を繰り返す。
 ステップS33で読み出したデータと検査用データ92が一致しなければ(ステップS35;NO)、診断するブロックに異常があると判断する。診断結果通知部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は、速度割り込み処理の時間に掛からない短い時間、例えば500μsecの間に、少なくとも変動領域9のデータの退避、検査用データの書き込みおよび読み出しが行えるように、診断する1つのブロックのサイズを設定する。
 変動領域9の診断は、図9のフローチャートについて説明したように、ブロックごとに行う。鉄道車両のブレーキ制御の場合、速度割り込みの間に1つのブロックの診断処理を行う。診断するブロックを割り込み処理ごとに順次進めて、変動領域9すべてのブロックの診断を終えたら、先頭に戻ってブロックごとの診断を繰り返す。
 固定領域8の診断については、実施の形態1で説明したとおり、どのタイミングでも中断できるので、最も優先度の低いタスクで空き時間に行えばよい。
 以上説明したように、実施の形態2のブレーキ制御装置110によれば、鉄道車両の通常運転中に、そのブレーキ制御装置110が使用するRAM7すべての診断を比較的容易に行うことができる。鉄道車両の運転中にRAM7の診断を行うので、運転中にRAM7の異常が発生した場合でも、ただちに異常を検出し、少なくとも緊急停止の動作を行って危険を回避できる。また、ブレーキ制御装置110が冗長構成を備える場合は、待機系に切り替えて運転を継続することができる。そののち、しかるべき安全な場所と時間に、異常箇所の点検と交換を行うことができる。このようにして、鉄道車両の機能安全を確保することができる。
 なお、本実施の形態2のメモリ診断部1などの構成は、ブレーキ制御装置110に限らず、鉄道車両のメモリを使用するあらゆる制御装置に適用することができる。
 (実施の形態3)
 図11は、本発明の実施の形態3に係るプロセス実行装置の構成例を示すブロック図である。実施の形態3では、プロセス実行部5を実現するCPU21とは独立にメモリ診断装置11を備える。メモリ診断装置11は、プロセス実行部5が使用するRAM7の読み書きができるように、プロセス実行装置100の内部バス20に接続される。
 プロセス実行装置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(Field Programmable Gate Array)、または専用のLSIで構成することができる。
 メモリ診断装置11は、ROM6からRAM7にプログラムデータがロードされたのちに起動されて、固定領域診断部12は、RAM7の固定領域8に誤り検出符号81を付加する。固定領域8の先頭アドレスおよび末尾アドレスは、例えば制御プログラム26の起動処理で与えられる。
 固定領域診断部12は、プロセス実行部5の処理中に、固定領域8から読み出したデータから演算した誤り検出符号と、先に付加した誤り検出符号81とを比較してデータ誤りの有無を判断する。実施の形態3では、固定領域診断部12の処理は、RAM7からのデータ読み出しが他のプロセスのデータ読み書きと衝突しなかぎり、いつ実行されてもよい。したがって、他のプロセスのデータ読み書きが発生したときに処理を中断すれば、常時動作してよい。
 変動領域診断部13は、プロセス実行部5の処理中に、RAM7の変動領域9が正常に動作するか否かを診断する。変動領域9の診断は、変動領域9に記憶しているデータを記憶している領域以外に一時的に記憶させ、そのデータを記憶していた変動領域9に既知のデータを書き込み、同領域のデータを読み出して、書き込んだ既知のデータと一致するか否かを判断する。
 変動領域診断部13は、プロセス実行部5のすべてのプロセスが待ち状態の時間に、変動領域9の診断を行う。プロセス実行部5が待ち状態であることは、内部バス20を介して、プロセス実行部5によってCPU21から通知されるようにする。例えば、メモリ診断装置11の内部に設けたフラグを、CPU21からオン・オフすることによって、待ち状態かどうかを通知するようにできる。
 診断結果通知部14は、固定領域診断部12または変動領域診断部13で、RAM7の障害を検出した場合に、固定領域8または変動領域9にエラーがあることをプロセス実行部5に通知する。
 変動領域9のデータを一時的に記憶する退避領域91は、メモリ診断装置11の内部に備えられてもよい。その場合、メモリ診断装置11の退避領域91も変動領域診断の対象にする。
 実施の形態3のメモリ診断装置11は、実施の形態1のメモリ診断部1と同様に作用し、同等の効果を奏する。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 その他、前記のハードウェア構成やフローチャートは一例であり、任意に変更および修正が可能である。
 CPU21、RAM7、ROM6、内部バス20などから構成されるメモリ診断部1のための処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD-ROM、DVD-ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行するメモリ診断部1を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することでメモリ診断部1を構成してもよい。
 また、メモリ診断部の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
 また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS:Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
   1 メモリ診断部
   2 固定領域診断部
   3 変動領域診断部
   4 診断結果通知部
   5 プロセス実行部
   6 ROM
   7 RAM
   8 固定領域
   9 変動領域
  11 メモリ診断装置
  12 固定領域診断部
  13 変動領域診断部
  14 診断結果通知部
  20 内部バス
  21 CPU
  24 I/O
  25 制御プログラム
  81 誤り検出符号
  91 退避領域
  92 検査用データ
 100 プロセス実行装置
 110 ブレーキ制御装置
 120 指令装置
 130 ブレーキ装置
 200 ブレーキ制御システム

Claims (11)

  1.  プロセスの実行中に該プロセスが使用するメモリの診断を行うメモリ診断方法であって、
     前記プロセスが書き込み処理を行う可能性のある第1のデータを記憶する前記メモリの変動領域において、該変動領域に記憶している前記第1のデータを、記憶しているメモリの領域以外の退避領域に記憶させ、前記退避領域に記憶させた前記第1のデータを記憶していた前記変動領域に既知のデータを書き込み、同領域のデータを読み出して前記書き込んだ既知のデータと一致するか否かを判断する変動領域診断ステップと、
     前記プロセスの実行中に変更されない第2のデータを記憶する前記メモリの固定領域において、記憶するデータに予め誤り検出符号を付加して前記固定領域に記憶し、前記固定領域から読み出したデータから演算した誤り検出符号と、前記付加して記憶した誤り検出符号とを比較してデータ誤りの有無を判断する固定領域診断ステップと、
    を備えることを特徴とするメモリ診断方法。
  2.  前記プロセスが使用するメモリのすべての領域について前記変動領域診断ステップまたは前記固定領域診断ステップを行うことを特徴とする請求項1に記載のメモリ診断方法。
  3.  前記プロセスが使用するメモリを使用する、前記変動領域診断ステップおよび前記固定領域診断ステップ以外の、すべてのプロセスが待ち状態の時間に、前記変動領域診断ステップまたは前記固定領域診断ステップを行うことを特徴とする請求項1に記載のメモリ診断方法。
  4.  前記変動領域診断ステップは、前記変動領域を1または2以上の部分に分割し、前記分割した部分ごとに、前記変動領域に記憶している前記第1のデータを、前記退避領域に記憶させ、当該退避領域に記憶させた前記第1のデータを記憶していた前記変動領域に既知のデータを書き込み、同領域のデータを読み出して前記書き込んだ既知のデータと一致するか否かを判断することを特徴とする請求項1に記載のメモリ診断方法。
  5.  前記変動領域診断ステップは、チェックボードテスト、ウォーキングビットテスト、擬似ランダムデータテスト、または、固定パターンデータテストを含むことを特徴とする請求項1に記載のメモリ診断方法。
  6.  前記固定領域診断ステップは、2重化、パリティ符号、チェックサム、ハミング符号、巡回符号またはハッシュ関数を用いる誤り検出を含むことを特徴とする請求項1に記載のメモリ診断方法。
  7.  前記プロセスは、鉄道車両の制御処理を行い、
     前記鉄道車両の通常運転中に、前記変動領域診断ステップおよび前記固定領域診断ステップを行う、
    ことを特徴とする請求項1に記載のメモリ診断方法。
  8.  前記プロセスの演算を行っていない時間に、前記変動領域診断ステップを行うことを特徴とする請求項7に記載のメモリ診断方法。
  9.  前記変動領域を1または2以上の部分に分割した部分ごとに順次、所定の周期ごとの前記プロセスが演算を行っていない時間に、前記変動領域診断ステップを行い、前記変動領域を分割したすべての部分について前記変動領域診断ステップを行ったのちは、再度前記変動領域の先頭の前記部分から前記変動領域診断ステップを行う、ことを特徴とする請求項8に記載のメモリ診断方法。
  10.  プロセスの実行中に該プロセスが使用するメモリの診断を行うメモリ診断装置であって、
     前記プロセスが書き込み処理を行う可能性のある第1のデータを記憶する前記メモリの変動領域において、該変動領域に記憶している前記第1のデータを、記憶しているメモリの領域以外の退避領域に記憶させ、前記退避領域に記憶させた前記第1のデータを記憶していた前記変動領域に既知のデータを書き込み、同領域のデータを読み出して前記書き込んだ既知のデータと一致するか否かを判断する変動領域診断部と、
     前記プロセスの実行中に変更されない第2のデータを記憶する前記メモリの固定領域において、記憶するデータに予め誤り検出符号を付加して前記固定領域に記憶し、前記固定領域から読み出したデータから演算した誤り検出符号と、前記付加して記憶した誤り検出符号とを比較してデータ誤りの有無を判断する固定領域診断部と、
    を備えることを特徴とするメモリ診断装置。
  11.  コンピュータに、
     当該コンピュータでプロセスの実行中に、
     前記プロセスが書き込み処理を行う可能性のある第1のデータを記憶する前記メモリの変動領域において、該変動領域に記憶している前記第1のデータを、記憶しているメモリの領域以外の退避領域に記憶させ、前記退避領域に記憶させた前記第1のデータを記憶していた前記変動領域に既知のデータを書き込み、同領域のデータを読み出して前記書き込んだ既知のデータと一致するか否かを判断する変動領域診断ステップと、
     前記プロセスの実行中に変更されない第2のデータを記憶する前記メモリの固定領域において、記憶するデータに予め誤り検出符号を付加して前記固定領域に記憶し、前記固定領域から読み出したデータから演算した誤り検出符号と、前記付加して記憶した誤り検出符号とを比較してデータ誤りの有無を判断する固定領域診断ステップと、
    を実行させることを特徴とするメモリ診断プログラム。
PCT/JP2010/054143 2010-03-11 2010-03-11 メモリ診断方法、メモリ診断装置およびメモリ診断プログラム WO2011111211A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/JP2010/054143 WO2011111211A1 (ja) 2010-03-11 2010-03-11 メモリ診断方法、メモリ診断装置およびメモリ診断プログラム
CN201080065344.0A CN102782662B (zh) 2010-03-11 2010-03-11 存储器诊断方法、存储器诊断装置及存储器诊断程序
US13/579,982 US9158618B2 (en) 2010-03-11 2010-03-11 Memory diagnostic method, device, and non-transitory computer-readable storage medium for diagnosing a memory used by a process during execution of the process
JP2012504237A JP5038549B2 (ja) 2010-03-11 2010-03-11 メモリ診断方法、メモリ診断装置およびメモリ診断プログラム
EP10847441.2A EP2546752B1 (en) 2010-03-11 2010-03-11 Memory diagnostic method, memory diagnostic device, and memory diagnostic program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/054143 WO2011111211A1 (ja) 2010-03-11 2010-03-11 メモリ診断方法、メモリ診断装置およびメモリ診断プログラム

Publications (1)

Publication Number Publication Date
WO2011111211A1 true WO2011111211A1 (ja) 2011-09-15

Family

ID=44563053

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/054143 WO2011111211A1 (ja) 2010-03-11 2010-03-11 メモリ診断方法、メモリ診断装置およびメモリ診断プログラム

Country Status (5)

Country Link
US (1) US9158618B2 (ja)
EP (1) EP2546752B1 (ja)
JP (1) JP5038549B2 (ja)
CN (1) CN102782662B (ja)
WO (1) WO2011111211A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150118035A (ko) * 2014-04-11 2015-10-21 르네사스 일렉트로닉스 가부시키가이샤 반도체 디바이스, 진단 테스트, 및 진단 테스트 회로

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130138278A1 (en) * 2010-08-11 2013-05-30 Tatsuo Fujiwara Control method for aerodynamic brake device
JP5813450B2 (ja) * 2011-10-17 2015-11-17 日立オートモティブシステムズ株式会社 電子制御装置
JP6295113B2 (ja) * 2014-03-17 2018-03-14 ルネサスエレクトロニクス株式会社 自己診断装置及び自己診断方法
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
WO2020158075A1 (ja) * 2019-01-30 2020-08-06 デンソートリム株式会社 メモリの書き換え履歴記録装置
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59124097A (ja) * 1982-12-28 1984-07-18 Toshiba Corp メモリ検定方法
JP2006268266A (ja) * 2005-03-23 2006-10-05 Mitsubishi Electric Corp コントロールユニット

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 記憶手段のチェック方法、そのプログラム、その記録媒体及びその装置
ATE384331T1 (de) * 2001-11-12 2008-02-15 Siemens Ag Speichertest
TW200302966A (en) * 2002-01-29 2003-08-16 Matsushita Electric Ind Co Ltd Memory device, data processing method and data processing program
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
US8117412B2 (en) * 2008-03-12 2012-02-14 GM Global Technology Operations LLC Securing safety-critical variables

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59124097A (ja) * 1982-12-28 1984-07-18 Toshiba Corp メモリ検定方法
JP2006268266A (ja) * 2005-03-23 2006-10-05 Mitsubishi Electric Corp コントロールユニット

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150118035A (ko) * 2014-04-11 2015-10-21 르네사스 일렉트로닉스 가부시키가이샤 반도체 디바이스, 진단 테스트, 및 진단 테스트 회로
JP2015206785A (ja) * 2014-04-11 2015-11-19 ルネサスエレクトロニクス株式会社 半導体装置、診断テスト方法及び診断テスト回路
US10520549B2 (en) 2014-04-11 2019-12-31 Renesas Electronics Corporation Semiconductor device, diagnostic test, and diagnostic test circuit
KR102282626B1 (ko) * 2014-04-11 2021-07-28 르네사스 일렉트로닉스 가부시키가이샤 반도체 디바이스, 진단 테스트, 및 진단 테스트 회로

Also Published As

Publication number Publication date
US9158618B2 (en) 2015-10-13
EP2546752A1 (en) 2013-01-16
JPWO2011111211A1 (ja) 2013-06-27
CN102782662B (zh) 2016-03-16
US20120324294A1 (en) 2012-12-20
JP5038549B2 (ja) 2012-10-03
EP2546752B1 (en) 2018-09-19
CN102782662A (zh) 2012-11-14
EP2546752A4 (en) 2013-11-13

Similar Documents

Publication Publication Date Title
JP5038549B2 (ja) メモリ診断方法、メモリ診断装置およびメモリ診断プログラム
JP6393628B2 (ja) 車両制御装置
JP5911922B2 (ja) 安全関連制御ユニットおよび自動化設備の制御方法
KR20130031888A (ko) 데이터 메모리의 모니터링 방법
CN107463516B (zh) 控制装置
JP4941954B2 (ja) データエラー検出装置およびデータエラー検出方法
US10585772B2 (en) Power supply diagnostic strategy
JP5083890B2 (ja) エレベータの制御装置
JP2013175118A (ja) 制御装置、及びそのメモリ故障検出方法、その自己診断方法
JP4950214B2 (ja) データ記憶装置における停電を検出する方法、およびデータ記憶装置を復旧する方法
JP2016126692A (ja) 電子制御装置
JP6075262B2 (ja) 制御装置
JP7024582B2 (ja) 車載制御装置
EP3367242B1 (en) Method of error detection in a microcontroller unit
Panaroni et al. Safety in automotive software: An overview of current practices
JP6524989B2 (ja) 演算器の動作保証方法
JP2009506446A (ja) データ処理システムおよびその駆動方法
CN116931824A (zh) 以计算机辅助的方式运行存储单元和执行应用程序的方法
US8145953B2 (en) Programmable unit
JP6501703B2 (ja) 車載制御装置
JP2018063599A (ja) 相互監視システム
Liaigre Securing Automobile Architectures
JP2010108252A (ja) 命令コード群の実行方法、マイクロコンピュータ及びプログラム
Jiang et al. Approaching a SIL3-Compatible Failsafe Computer Control System in Safety-Critical Chassis Applications
JP2016089782A (ja) 電子制御装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080065344.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10847441

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012504237

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13579982

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2010847441

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE