WO2021157103A1 - 情報処理装置、制御方法およびプログラム - Google Patents
情報処理装置、制御方法およびプログラム Download PDFInfo
- Publication number
- WO2021157103A1 WO2021157103A1 PCT/JP2020/015668 JP2020015668W WO2021157103A1 WO 2021157103 A1 WO2021157103 A1 WO 2021157103A1 JP 2020015668 W JP2020015668 W JP 2020015668W WO 2021157103 A1 WO2021157103 A1 WO 2021157103A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- result
- processor
- processing
- memory
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 title claims description 26
- 230000015654 memory Effects 0.000 claims description 190
- 230000004044 response Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 152
- 230000001052 transient effect Effects 0.000 description 70
- 238000010586 diagram Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 12
- 230000008439 repair process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1497—Details of time redundant execution on a single processing unit
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1608—Error detection by comparing the output signals of redundant hardware
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1633—Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
- G06F11/167—Error detection by comparing the memory output
-
- 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/14—Error detection or correction of the data by redundancy in operation
-
- 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/16—Error detection or correction of the data by redundancy in hardware
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/165—Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
Definitions
- This disclosure relates to information processing devices, control methods and programs.
- a transient failure occurs during the execution of arithmetic processing in the information processing device, and an arithmetic result different from the desired one may be output.
- Such a transient failure occurs, for example, due to garbled data in a register in the processor, garbled data on a bus, malfunction of the processor, or the like.
- the system may be temporarily stopped due to the failure.
- Such temporary outages in the systems that support social infrastructure will have a significant impact.
- a temporary stop occurs in the system incorporated in the production line, the production efficiency is lowered.
- Patent Document 1 discloses a Triple Modular Redundant (TMR) technique for tripling a processing circuit. According to the TMR technology, even if a transient failure occurs in one of the three processing circuits, the failure can be corrected by the remaining two processing circuits. This avoids a temporary system outage.
- TMR Triple Modular Redundant
- the present disclosure has been made in view of the above problems, and an object thereof is information processing capable of suppressing an increase in hardware cost and a temporary stoppage of a system due to a transient failure. To provide equipment, control methods and programs.
- the information processing apparatus that executes arithmetic processing includes a first processing circuit and a second processing circuit.
- the first processing circuit executes arithmetic processing N times in succession.
- the second processing circuit executes arithmetic processing N times in succession.
- N is an integer greater than or equal to 2.
- the first processing circuit and the second processing circuit are made by at least one first result of the first result of N times of arithmetic processing executed by the first processing circuit and the second processing circuit.
- the at least one first result and the at least one second result The operation is continued based on each.
- the probability of a transient failure occurring during the execution of arithmetic processing is generally low. Therefore, it is presumed that the at least one first result and the at least one second result that match each other are the results of arithmetic processing in which a transient failure does not occur during execution. As a result, the operation can be continued using the first processing circuit and the second processing circuit with highly reliable results. In this way, even if a transient failure occurs, the operation can be continued, and a temporary stop of the system due to the transient failure can be suppressed.
- the first processing circuit includes a first memory and a first processor that executes arithmetic processing using the first memory.
- the second processing circuit includes a second memory and a second processor that executes arithmetic processing using the second memory.
- the first processor executes N times of arithmetic processing using N different areas of the first memory.
- the second processor executes N times of arithmetic processing using N different regions of the second memory.
- data in a part of N areas of the first memory and a part of N areas of the second memory due to a transient failure before the start of arithmetic processing. Even if ghosts occur, at least one first result and at least one second result are in agreement.
- a transient failure that can occur before the start of arithmetic processing can occur, for example, due to a soft error or the like. Therefore, the first processor and the second processor can continue to operate based on the at least one first result and the at least one second result that match each other. That is, even if a transient failure occurs before the start of the arithmetic processing, the first processing circuit and the second processing circuit can continue to operate.
- the first processor obtains data of an area used in the arithmetic processing in which a result different from at least one first result is output out of the N areas of the first memory.
- the data of the area used in the arithmetic processing in which at least one first result is output is overwritten.
- the second processor uses the data of the area used in the arithmetic processing in which a result different from the at least one second result is output out of the N areas of the second memory, and the data of the area used in the arithmetic processing. The result of is overwritten with the data of the area used in the output arithmetic processing.
- the first processing circuit includes a first memory and a first processor that executes arithmetic processing using the first memory.
- the second processing circuit includes a second memory and a second processor that executes arithmetic processing using the second memory.
- the first processor When the target data used for the arithmetic processing is written to the first memory, the first processor also writes the two copy data obtained by copying the target data to the first memory.
- the target data used for the arithmetic processing is written to the second memory, the second processor also writes the two copy data obtained by copying the target data to the second memory.
- the first processor reads the target data and the two copy data from the first memory before executing the arithmetic processing, and responds that two or more of the read target data and the two copy data match.
- the second processor reads the target data and the two copy data from the second memory before executing the arithmetic processing, and responds that two or more of the read target data and the two copy data match. Then, the arithmetic processing is executed using the two or more matching data.
- each of the first memory and the second memory one of the target data and the two copy data due to a transient failure (for example, a soft error) before the start of the arithmetic processing. Even if the data is garbled, the arithmetic processing is executed using the remaining two data. As a result, even if a transient failure occurs before the start of the arithmetic processing, the arithmetic processing is executed using the correct data in which the transient failure does not occur, and the result of the arithmetic processing is obtained. The operation can be continued based on.
- a transient failure for example, a soft error
- the first processor in the first memory depending on the fact that two of the read target data and the two copy data match and the remaining one data is different from the two data.
- the area where one data is stored is overwritten by one of the two data.
- one data is stored in the second memory according to the fact that two of the read target data and the two copy data match and the remaining one data is different from the two data.
- the area that has been created is overwritten with one of the two data.
- the first processor writes the results of N times of arithmetic processing in N different areas of the first memory, respectively.
- the second processor writes the result of N times of arithmetic processing into N different areas of the second memory, respectively.
- the first processor writes the data of the area in which the result different from the at least one first result is written among the N areas of the first memory, and the at least one first result is written. Overwrite with the data of the area.
- the second processor writes the data of the area in which the result different from the at least one second result is written among the N areas of the second memory, and the data of the area in which the result different from the at least one second result is written is written. Overwrite with the data of the area.
- the information processing apparatus that executes arithmetic processing includes a first processing circuit and a second processing circuit.
- the control method of the information processing apparatus includes a step in which the first processing circuit executes arithmetic processing N times in succession, and a step in which the second processing circuit executes arithmetic processing N times in succession.
- N is an integer greater than or equal to 2.
- the control method further comprises a first result of at least one of the first results of N times of arithmetic processing performed by the first processing circuit and the second processing circuit. The at least one first result and at least one, depending on the agreement with at least one second result of the second result of the N operations performed by the second processing circuit Each of the steps is provided to continue the operation based on the second result.
- the program causes a computer to execute the above control method.
- These disclosures can also suppress an increase in the cost required for hardware and can suppress a temporary stop due to a transient failure.
- FIG. It is the schematic which shows the overall structure of the control system which concerns on embodiment. It is a figure which shows the reference example of the processing using two processing circuits. It is a figure which shows the Example of the processing using two processing circuits. It is a schematic diagram which shows the hardware configuration example of a standard PLC. It is a schematic diagram which shows the hardware configuration example of a safety PLC. It is a schematic diagram which shows the hardware configuration example of a coupler. It is a schematic diagram which shows the hardware configuration example of the safety IO unit which concerns on Specific Example 1. FIG. It is a figure which shows the specific example 1 of the processing using two processing circuits when a transient failure does not occur.
- FIG. 1 It is a figure which shows the specific example 1 of the processing using two processing circuits when a transient failure occurs. It is a figure which shows an example of the data restoration processing in a specific example 1. It is a flowchart which shows the flow of processing in a safety IO unit. It is a figure which shows an example of the processing of the specific example 1 when the data which shows an address is garbled. It is a schematic diagram which shows the hardware configuration example of the safety IO unit which concerns on Specific Example 2. It is a figure which shows the writing process of data to a main memory. It is a figure which shows the reading process of the data from a main memory. It is a figure which shows the area of the main memory which concerns on Specific Example 2. FIG.
- FIG. 1 is a schematic view showing the overall configuration of the control system according to the embodiment.
- the control system 1 exemplified in FIG. 1 includes a standard PLC (programmable logic controller) 100, a safety PLC 200, one or more couplers 300, and one or more safety IO units 400 as main components.
- PLC programmable logic controller
- the standard PLC100 executes standard control for an arbitrary control target according to a standard control program created in advance.
- Standard control is a general term for processing for controlling a control target according to a predetermined requirement specification.
- the control target is, for example, a servo motor, a robot, or the like.
- the safety PLC200 executes safety control for an arbitrary control target independently of the standard PLC100.
- the safety PLC 200 illustrated in FIG. 1 is connected to the standard PLC 100 via a local bus.
- "Safety control” is a general term for processing to prevent human safety from being threatened by equipment or machines.
- the “safety control” is designed to meet the requirements for realizing the safety function specified in, for example, IEC 61508.
- the coupler 300 mediates the exchange of data between the standard PLC 100 and the safety IO unit 400.
- the coupler 300 is electrically connected to the standard PLC 100 via the field network 2.
- the field network 2 is a communication medium for realizing data transmission for FA (Factory Automation).
- FA Vectory Automation
- frame transmission is possible at a predetermined cycle, and the data arrival time for each node in the network is guaranteed.
- EtherCAT registered trademark
- EtherCAT registered trademark
- the coupler 300 transmits the data received from the standard PLC 100 to the safety IO unit 400, and when the data is received from the safety IO unit 400, prepares to store the received data in the next arriving frame.
- the safety IO unit 400 is connected to the safety PLC 200 or the coupler 300 via the local bus. Further, any safety device (not shown) is connected to the safety IO unit 400. Safety devices include light curtains, emergency stop buttons, safety door switches and the like.
- the safety IO unit 400 receives the input signal from the safety device and provides the input signal to the safety PLC 200. Alternatively, the safety IO unit 400 receives an input signal from the safety device and provides the input signal to the standard PLC 100 via the coupler 300. The input signal provided to the standard PLC100 is provided to the safe PLC200.
- the safety IO unit 400 outputs an output signal to the safety device in response to a command from the safety PLC 200.
- the safety IO unit 400 outputs an output signal to the safety device in response to a command from the safety PLC 200 via the coupler 300 and the standard PLC 100.
- the safety IO unit 400 receives an input signal from the safety device, provides the input signal, outputs an output signal to the safety device, and the like for each predetermined cycle (hereinafter, referred to as “safety task cycle”). Perform arithmetic tasks related to.
- the safety PLC 200 executes safety control in response to the input signal provided by the safety IO unit 400. For example, when the safety device, which is a light curtain, provides an input signal indicating the intrusion of a person, the safety PLC 200 cuts off the power supply to the controlled object of the standard PLC 100 and temporarily stops the control system 1. Alternatively, when the safety device, which is an emergency stop button, provides an input signal indicating that the button is pressed, the safety PLC 200 cuts off the power supply to the controlled object of the standard PLC 100 and temporarily stops the control system 1.
- the safety PLC 200 is designed to temporarily stop the control system 1 even when a failure or abnormality occurs in the safety IO unit 400.
- the safety PLC 200 normally executes the safety control. Can not. Therefore, the safety IO unit 400 has a function of detecting that a transient failure has occurred during the execution of the calculation task. However, if the safety IO unit 400 outputs a failure signal when it detects that a transient failure has occurred, the control system 1 is stopped.
- the control system 1 can be incorporated into a production line that operates 24 hours x 365 days. In such a production line, if the control system 1 is temporarily stopped, a great deal of damage can occur.
- the safety IO unit 400 which is the information processing device according to the present embodiment, has two processing circuits so as to continue normal operation even if a transient failure occurs in one processing circuit.
- one of the two processing circuits will be referred to as an A channel circuit, and the other will be referred to as a B channel circuit.
- the safety IO unit 400 has two processing circuits (A channel circuit and B channel circuit). As a result, the cost required for hardware is reduced as compared with the case of designing a safety IO unit using TMR technology.
- FIG. 2 is a diagram showing a reference example of processing using two processing circuits.
- the A channel circuit and the B channel circuit execute arithmetic tasks in parallel for each safety task cycle.
- Temporary failure can occur accidentally with a low probability. Therefore, it is rare that a transient failure occurs in both the A channel circuit and the B channel circuit in the same safety task cycle.
- the results of the calculation tasks will match.
- the results of the arithmetic tasks will be inconsistent. Therefore, by collating the results of the calculation tasks of the A channel circuit and the B channel circuit, it is possible to detect the presence or absence of a transient failure. That is, it is possible to detect that a transient failure has occurred according to the inconsistency in the results of the calculation tasks of the A channel circuit and the B channel circuit.
- the safety IO unit has no choice but to output a failure signal, judging that normal operation cannot be continued according to the disagreement between the results of the two calculation tasks.
- the control system 1 is stopped by the safety control of the safety PLC 200. Therefore, when the processing of the reference example illustrated in FIG. 2 is executed, the control system 1 is temporarily stopped when a transient failure occurs in one processing circuit.
- the safety IO unit 400 executes the following processing in order to continue normal operation even if a transient failure occurs in one processing circuit.
- FIG. 3 is a diagram showing an example of processing using two processing circuits.
- the A channel circuit continuously executes the same arithmetic tasks T1 and T2 in the safety task cycle.
- the B channel circuit continuously executes the same calculation tasks T3 and T4 in the safety task cycle.
- the arithmetic tasks T1 and T2 executed by the A channel circuit are the same as the arithmetic tasks T3 and T4 executed by the B channel circuit. That is, the safety IO unit 400 executes the same calculation tasks T1 to T4 in the safety task cycle. Then, the safety IO unit 400 collates the results of the calculation tasks T1 to T4 for each safety task cycle, and detects whether or not a transient failure has occurred based on the collation results.
- the safety IO unit 400 determines that no transient failure has occurred in any of the calculation tasks T1 to T4 according to the same result of the calculation tasks T1 to T4, and any one of them. The operation may be continued based on the calculation result.
- the result of an arithmetic task in which a transient failure occurred during execution is usually different from the result of an arithmetic task in which a transient failure did not occur during execution. Further, when a transient failure occurs during execution, the result of the calculation task usually differs depending on the content of the transient failure. It is extremely rare for both the A-channel circuit and the B-channel circuit to have the same transient failure in one safety task cycle.
- the A channel circuit and the B channel circuit are the first result of at least one of the results (first result) of the calculation tasks T1 and T2, and the calculation task.
- the operation is continued based on the matching result. That is, the A channel circuit continues the operation based on the first result of at least one of the results of the calculation tasks T1 and T2.
- the B-channel circuit continues its operation based on at least one second result of the results of the arithmetic tasks T3 and T4.
- FIG. 4 is a schematic diagram showing a hardware configuration example of a standard PLC.
- the standard PLC 100 illustrated in FIG. 4 includes a processor 102, a main memory 104, a storage 110, a field network controller 108, and a local bus controller 116. These components are connected via the processor bus 118.
- the processor 102 mainly corresponds to an arithmetic processing unit that executes control operations related to standard control, and is composed of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and the like. Specifically, the processor 102 reads the programs (as an example, the system program 1102 and the standard control program 1104) stored in the storage 110, expands them in the main memory 104, and executes the programs according to the control target. It realizes control calculation and various processes as described later.
- the programs as an example, the system program 1102 and the standard control program 1104
- the main memory 104 is composed of volatile memories such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory).
- the storage 110 is composed of, for example, a non-volatile storage device such as an SSD (Solid State Drive) or an HDD (Hard Disk Drive).
- the storage 110 stores a system program 1102 for realizing basic functions, a standard control program 1104 created according to a control target, and setting information 1106 for defining processing in the standard PLC 100.
- the field network controller 108 exchanges data with an arbitrary device (for example, a coupler 300) via the field network 2.
- the local bus controller 116 exchanges data with an arbitrary unit (for example, a safety PLC200) connected to the standard PLC100 via the local bus.
- an arbitrary unit for example, a safety PLC200
- FIG. 5 is a schematic diagram showing a hardware configuration example of the safety PLC.
- the safety PLC 200 illustrated in FIG. 5 includes a processor 202, a main memory 204, a storage 210, and a local bus controller 216. These components are connected via the processor bus 218.
- the processor 202 mainly corresponds to a calculation processing unit that executes control calculations related to safety control, and is composed of a CPU, a GPU, and the like.
- the main memory 204 is composed of a volatile memory such as a DRAM or SRAM.
- the storage 210 is composed of, for example, a non-volatile storage device such as an SSD or an HDD.
- the storage 210 stores a system program 2102 for realizing basic functions, a safety program 2104 created according to the required safety function, and setting information 2106 for defining processing in the safety PLC 200. NS.
- the local bus controller 216 exchanges data with the safety IO unit 400 connected to the safety PLC 200 via the local bus.
- FIG. 6 is a schematic view showing a hardware configuration example of the coupler.
- the coupler 300 illustrated in FIG. 6 includes a processor 302, a main memory 304, a storage 310, a field network controller 308, and a local bus controller 316. These components are connected via the processor bus 318.
- the processor 302 mainly corresponds to an arithmetic processing unit that executes a control operation for operating the coupler 300, and is composed of a CPU, a GPU, and the like.
- the main memory 304 is composed of a volatile memory such as a DRAM or SRAM.
- the storage 310 is composed of, for example, a non-volatile storage device such as an SSD or an HDD.
- the storage 310 stores the system program 3102 for realizing the basic functions and the setting information 3106 for defining the processing by the coupler 300.
- the field network controller 308 exchanges data with an arbitrary device (for example, standard PLC100) via the field network 2.
- an arbitrary device for example, standard PLC100
- the local bus controller 316 exchanges data with the safety IO unit 400 connected to the coupler 300 via the local bus.
- FIG. 7 is a schematic diagram showing a hardware configuration example of the safety IO unit according to the first embodiment.
- the safety IO unit 400 illustrated in FIG. 7 includes two processing circuits, a storage 410, a local bus controller 420, and a safety IO module 430. These components are connected via the processor bus 440.
- the A channel circuit 40A which is one of the two processing circuits, is composed of the processor 401 and the main memory 403.
- the B channel circuit 40B which is the other of the two processing circuits, is composed of a processor 404 and a main memory 406.
- Processors 401 and 404 correspond to arithmetic processing units that execute control operations related to signal input / output and management functions required to realize safety control, and are composed of a CPU, MPU (Micro Processing Unit), and the like.
- the processors 401 and 404 have built-in registers 402 and 405, respectively.
- the registers 402 and 405 temporarily hold the calculation result by the processors 401 and 404, and hold the address when reading and writing the main memories 403 and 406.
- the main memories 403 and 406 are composed of volatile memories such as DRAM and SRAM.
- the SRAM uses a flip-flop as the structure of the storage unit, does not require a refresh operation, and has an advantage that it can operate at a higher speed than the DRAM. Therefore, it is preferable to use SRAM as the main memories 403 and 406.
- the main memories 403 and 406 are SRAMs.
- the storage 410 is composed of, for example, a non-volatile storage device such as an SSD or an HDD.
- the storage 410 stores the IO programs 41A1, 41A2, 41B1, 41B2 and the collation repair programs 42A, 42B for realizing the IO function.
- the IO programs 41A1 and 41A2 and the collation repair program 42A are executed in the A channel circuit 40A.
- the IO programs 41B1 and 41B2 and the collation repair program 42B are executed in the B channel circuit 40B.
- the local bus controller 420 exchanges data with a device (for example, safety PLC200, coupler 300) to which the safety IO unit 400 is connected via the local bus.
- a device for example, safety PLC200, coupler 300
- the safety IO module 430 is electrically connected to the safety device, accepts inputs such as detection results by the safety device, and outputs a signal to the safety device.
- the storage 410 shared by the A channel circuit 40A and the B channel circuit 40B is provided.
- storage may be provided in each of the A channel circuit 40A and the B channel circuit 40B.
- the A channel circuit 40A and the B channel circuit 40B may be connected by using serial communication instead of the processor bus 440.
- the transient failure may occur due to, for example, garbled data in the registers 402 and 405 in the processors 401 and 404, garbled data on the processor bus 440, malfunction of the processors 401 and 404, and the like.
- the processor 401 uses the data in the state where the transient failure has occurred, By calculating by 404, the calculation result is different from the desired result. Therefore, the operation of the safety IO module 430 becomes an abnormal state.
- FIG. 8 is a diagram showing a specific example 1 of processing using two processing circuits when a transient failure has not occurred.
- FIG. 9 is a diagram showing a specific example 1 of processing using two processing circuits when a transient failure occurs.
- FIG. 10 is a diagram showing an example of data restoration processing in Specific Example 1.
- the processor 401 of the A channel circuit 40A continuously executes the same arithmetic tasks T1 and T2 in the safety task cycle.
- the processor 404 of the B channel circuit 40B continuously executes the same arithmetic tasks T3 and T4 in the safety task cycle.
- the arithmetic tasks T1 and T2 executed by the processor 401 are the same as the arithmetic tasks T3 and T4 executed by the processor 404. That is, the safety IO unit 400 executes the same calculation tasks T1 to T4 in the safety task cycle. However, the safety IO unit 400 executes the calculation tasks T1 to T4, respectively, using four different memory areas.
- the area 403a used in the first calculation task T1 and the area 403b used in the second calculation task T2 are set.
- the area 406a used in the first calculation task T3 and the area 406b used in the second calculation task T4 are set.
- the processor 401 constituting the A channel circuit 40A writes the data used in the arithmetic task T1 to the area 403a of the main memory 403 constituting the A channel circuit before executing the arithmetic task T1.
- the processor 401 writes the data “X” and “Y” to the area 403a before executing the arithmetic task T1.
- the processor 401 writes the data “X” and “Y” used in the arithmetic task T2 to the area 403b of the main memory 403 before executing the arithmetic task T2.
- the processor 404 constituting the B channel circuit 40B inputs the data “X” and “Y” used in the arithmetic task T3 to the main components of the B channel circuit before executing the arithmetic task T3. Write to area 406a of memory 406. Similarly, the processor 404 writes the data “X” and “Y” used in the arithmetic task T4 to the area 406b of the main memory 406 before executing the arithmetic task T4.
- the timing of writing the data "X” and "Y” to the areas 403a, 403b, 406a, and 406b is defined by the IO programs 41A1, 41A2, 41B1, 41B2, respectively.
- the timing may be, for example, the previous safety task cycle or the activation of the safety IO unit 400.
- the addresses in the areas 403a, 403b, 406a, and 406b in which the data "X" and "Y" are written are defined by the IO programs 41A1, 41A2, 41B1, 41B2, respectively.
- the processor 401 starts the calculation task T1 in synchronization with the start timing of the safety task cycle.
- the processor 401 reads the data “X” and “Y” from the area 403a of the main memory 403 and executes an operation using the data “X” and “Y”. .. Then, the processor 401 writes the data "Z" which is the calculation result to the area 403a of the main memory 403.
- the processor 401 starts the calculation task T2 after the calculation task T1 is completed.
- the calculation task T2 differs from the calculation task T1 only in that the area 403b is used instead of the area 403a in the main memory 403. That is, the processor 401 reads the data “X” and “Y” from the area 403b and executes the operation using the data “X” and “Y”. Then, the processor 401 writes the data "Z" which is the calculation result in the area 403b.
- the processor 404 starts the calculation task T3 in synchronization with the start timing of the safety task cycle.
- the calculation task T3 differs from the calculation task T1 only in that the area 406a of the main memory 406 is used instead of the area 403a in the main memory 403. That is, the processor 404 reads the data "X” and "Y” from the area 406a of the main memory 406, and executes the operation using the data "X” and "Y”. Then, the processor 404 writes the data "Z" which is the calculation result to the area 406a of the main memory 406.
- the processor 404 starts the calculation task T4 after the calculation task T3 is completed.
- the calculation task T4 differs from the calculation task T3 only in that the area 406b is used instead of the area 406a in the main memory 406. That is, the processor 401 reads the data “X” and “Y” from the area 406b and executes the operation using the data “X” and “Y”. Then, the processor 404 writes the data "Z" which is the calculation result in the area 406b.
- the calculation tasks T1 to T4 are executed according to the IO programs 41A1, 41A2, 41B1, 41B2, respectively. That is, the addresses in the areas 403a, 403b, 406a, and 406b to which the data "X" and "Y” are read out are defined by the IO programs 41A1, 41A2, 41B1, 41B2, respectively.
- the IO programs 41A1, 41A2, 41B1, 41B2 define the same calculation contents using the data "X” and "Y”.
- the addresses in the areas 403a, 403b, 406a, and 406b in which the data "Z" is written are defined by the IO programs 41A1, 41A2, 41B1, 41B2, respectively.
- the IO programs 41A1, 41A2, 41B1, 41B2 are different from each other only in the address of the memory area to be read and written, and define the same operation content.
- the results (data “Z”) of the calculation tasks T1 to T4 are all the same as shown in FIG. ..
- the result of the calculation task T4 (data "Z'") is the result of the calculation tasks T1 to T3, as shown in FIG. (Data "Z") is different.
- data garbled due to a soft error or the like occurs in the area 406b before the start of the calculation task T4, and the data "X" is garbled into the data "X'".
- the processors 401 and 404 collate the results of the calculation tasks T1 to T4 after the two calculation tasks. When all the results of the calculation tasks T1 to T4 match, the processors 401 and 404 determine that a transient failure including garbled data has not occurred, and operate based on the results of the calculation tasks T1 to T4. To continue.
- the processors 401 and 404 match the results ( Hereinafter, it is also referred to as “common result”), and it is determined that it is the result of the calculation task in which no transient failure has occurred. Then, the processors 401 and 404 continue the operation based on the result. In the example shown in FIG. 9, the results of the calculation tasks T1 and T2 and the results of the calculation task T3 are in agreement. Therefore, the processor 401 continues the operation based on the results of the calculation tasks T1 and T2, and the processor 404 continues the operation based on the results of the calculation task T3.
- the processors 401 and 404 overwrite the data in the memory area used in the calculation task in which the common result is calculated with the memory area used in the calculation task in which the result different from the common result is calculated.
- the processor 404 outputs the data of the area 406a used in the calculation task T3 in which the result matching the calculation tasks T1 and T2 is output, and the result different from the result of the calculation task T3 is output.
- the area 406b used in task T4 is overwritten.
- the erroneous data in the memory area where the transient failure has occurred is restored to the correct data in the memory area where the transient failure has not occurred.
- the collation processing of the arithmetic tasks T1 to T4 by the processors 401 and 404 is defined by the collation repair programs 42A and 42B, respectively. Further, the repair processing of the areas 403a and 403b by the processor 401 is defined by the collation repair program 42A. Similarly, the repair process of the areas 406a and 406b by the processor 404 is defined by the collation repair program 42B.
- FIG. 11 is a flowchart showing a processing flow in the safety IO unit.
- the processors 401 and 404 determine whether or not the tact start timing has been reached (step S1). If the tact start timing has not been reached (NO in step S1), the process returns to step S1 again.
- step S1 parallel processing of steps S2 and S3 and steps S4 and S5 is executed.
- step S2 the processor 401 of the A channel circuit 40A executes the first calculation task T1 using the area 403a of the main memory 403.
- step S3 the processor 401 executes the second calculation task T2 using the area 403b of the main memory 403.
- step S4 the processor 404 of the B channel circuit 40B executes the first calculation task T3 using the area 406a of the main memory 406.
- step S4 executes the second calculation task T4 using the area 406b of the main memory 406.
- step S6 the processors 401 and 404 collate the results of the calculation tasks T1 to T4.
- step S7 When all the results of the calculation tasks T1 to T4 match (YES in step S7), the processors 401 and 404 determine that all of the calculation tasks T1 to T4 have been completed normally, and based on the results of the calculation tasks T1 to T4. And continue the operation (step S10). After step S10, the process ends.
- step S7 When all the results of the calculation tasks T1 to T4 do not match (NO in step S7), the processors 401 and 404 have the result of at least one of the results of the calculation tasks T1 and T2 and the result of the calculation tasks T3 and T4. It is determined whether or not there is a match with at least one result of (step S8).
- step S8 If YES in step S8, the data in the memory area used for the unmatched calculation task is restored (step S9). After repairing the data, the process proceeds to step S10.
- the processor 401 overwrites the data in the area 403a on the area 403b in the main memory 403.
- the processor 401 overwrites the data in the area 403b with the area 403a in the main memory 403.
- the processor 404 overwrites the data in the area 406a with the area 406b in the main memory 406.
- the processor 404 overwrites the data in the area 406b with the area 406a in the main memory 406.
- the processor 401 When the results of the calculation tasks T1 and T3 match and the results of the calculation tasks T2 and T4 do not match, the processor 401 overwrites the data in the area 403a on the area 403b in the main memory 403. .. Further, the processor 404 overwrites the data in the area 406a with the area 406b in the main memory 406. When the results of the calculation tasks T1 and T4 match and the results of the calculation tasks T2 and T3 do not match, the processor 401 overwrites the data in the area 403a on the area 403b in the main memory 403. .. Further, the processor 404 overwrites the data in the area 406b in the area 406a in the main memory 406.
- the processor 401 When the results of the calculation tasks T2 and T3 match and the results of the calculation tasks T1 and T4 do not match, the processor 401 overwrites the data in the area 403b on the area 403a in the main memory 403. .. Further, the processor 404 overwrites the data in the area 406a with the area 406b in the main memory 406. When the results of the calculation tasks T2 and T4 match and each of the calculation tasks T1 and T3 does not match the results of the calculation tasks T2 and T4, the processor 401 overwrites the data in the area 403b on the area 403a in the main memory 403. .. Further, the processor 404 overwrites the data in the area 406b in the area 406a in the main memory 406.
- step S8 If NO in step S8, the processors 401 and 404 output an abnormal signal and stop the operation (step S11). After step S11, the process ends.
- the A channel circuit 40A includes the main memory 403 and the processor 401 that executes the arithmetic task using the main memory 403.
- the B-channel circuit 40B includes a main memory 406 and a processor 404 that executes arithmetic tasks using the main memory 406.
- the processor 401 executes the arithmetic tasks T1 and T2, respectively, using the two regions 403a and 403b of the main memory 403 that are different from each other.
- the processor 404 executes arithmetic tasks T3 and T4, respectively, using two different regions 406a and 406b of the main memory 406.
- the processor 401 executes the two arithmetic tasks T1 and T2, respectively, using the different areas 403a and 403b of the main memory 403.
- the processor 404 executes the two arithmetic tasks T3 and T4, respectively, using the different areas 406a and 406b of the main memory 406.
- the result of the calculation task using the other of the areas 403a and 403b (common).
- the result) and the result (common result) of the calculation task using the other of the regions 406a and 406b match.
- the processors 401 and 404 can continue the operation based on the common result. That is, even if a transient failure occurs in the main memory 403 before the start of the calculation task, the A channel circuit 40A and the B channel circuit 40B can continue to operate.
- the processor 401 uses the data of the area of the main memory 403 areas 403a and 403b used in the calculation task for which the result different from the common result is output, and the area used in the calculation task for which the common result is output. Overwrite with the data of.
- the processor 404 uses the data of the area of the main memory 406 areas 406a and 406b used in the calculation task in which the result different from the common result is output in the calculation task in which the common result is output. Overwrite with the data in the specified area.
- the data stored in the main memory includes data indicating a value and data indicating an address in the main memory. If a transient failure (for example, garbled data due to a soft error) occurs in the area where the data indicating the value is stored, the value will be garbled from the original state. Even in this case, the processor can continue the operation. On the other hand, if a transient failure occurs in the area where the data indicating the address is stored, the address will be garbled from the original state. It is possible that the garbled address does not exist in main memory. In this case, the processor determines that it is an exception (abnormality) and stops the processing.
- a transient failure for example, garbled data due to a soft error
- FIG. 12 is a diagram showing an example of the processing of Specific Example 1 when the data indicating the address is garbled.
- the data indicating the address stored in the area 403a of the main memory 403 constituting the A channel circuit 40A is garbled so as to indicate the address that does not exist in the main memory 403. Therefore, when the processor 401 executes the calculation task T1, the process is forcibly terminated according to the fact that the data read from the area 403a indicates an address that does not exist in the main memory 403. Therefore, the results of the calculation tasks T1 and T2 cannot be obtained. As a result, the collation processing of the calculation tasks T1 to T4 is not executed, and the operation of the safety IO unit 400 is not continued.
- the safety IO unit 400 according to the second embodiment is designed so that the operation can be continued even if a transient failure occurs in the area where the data indicating the address is stored.
- FIG. 13 is a schematic view showing a hardware configuration example of the safety IO unit according to the second embodiment.
- the safety IO unit 400 exemplified in FIG. 13 differs from the safety IO unit 400 illustrated in FIG. 7 only in that the storage 410 stores the read / write program 43.
- the processor 401 writes and reads data to the main memory 403 according to the read / write program 43.
- the processor 404 writes and reads data to and from the main memory 406 according to the read and write program 43.
- FIG. 14 is a diagram showing a process of writing data to the main memory.
- the processors 401 and 404 write the target data to be written to the main memories 403 and 406, respectively
- the processors 401 and 404 copy the target data twice, and the two copied data are also the main memory 403. , 406 respectively.
- the target data and the two copy data are written at the same time in each of the main memories 403 and 406.
- the data is tripled in each of the main memories 403 and 406.
- the target data and the two copy data are the same. However, if a soft error occurs due to the influence of cosmic rays or neutron rays, for example, data will be garbled in either the target data or the two copy data.
- FIG. 15 is a diagram showing a process of reading data from the main memory. As shown in FIG. 15, when the target data to be read is read from the main memories 403 and 406, the processors 401 and 404 also read two copy data together with the target data. Each of the processors 401 and 404 collates the read target data and the two copy data with each other.
- each of the processors 401 and 404 determines that no data garbled has occurred in either the target data or the two copy data, and uses the target data. Perform arithmetic tasks.
- each of the processors 401 and 404 if two of the read target data and the two copy data match and the remaining one does not match, the two matching data are not garbled and the remaining one data is not garbled. It is judged that the data is garbled. Then, each of the processors 401 and 404 overwrites one of the two matching data with the area in which the remaining one data is stored. As a result, the garbled data is repaired. After that, the processors 401 and 404 execute the calculation task using one of the two matching data.
- FIG. 16 is a diagram showing an area of the main memory according to the second embodiment.
- the main memory 403 includes areas 403c, 403d, 403e.
- the main memory 406 includes areas 406c, 406d, 406e.
- Areas 403c and 406c are areas where only data is read during the calculation task.
- the area 403c is used by both the first calculation task T1 and the second calculation task T2 by the processor 401.
- the area 406c is used by both the first arithmetic task T3 and the second arithmetic task T4 by the processor 404.
- Areas 403d, 403e, 406d, and 406e are areas where data is written during the calculation task.
- the area 403d is used in the first calculation task T1 by the processor 401.
- the area 403e is used in the second calculation task T2 by the processor 401.
- Region 406d is used in the first arithmetic task T3 by processor 404.
- the area 406e is used in the second calculation task T4 by the processor 404.
- FIG. 17 is a diagram showing a specific example 2 of processing using two processing circuits when data garbled occurs.
- FIG. 18 is a diagram showing an example of the restoration process of the data “X” shown in FIG.
- the processor 401 of the A channel circuit 40A continuously executes the same arithmetic tasks T1 and T2 in the safety task cycle.
- the processor 401 executes the calculation tasks T1 and T2 using the data “X” and “Y” stored in the area 403c of the main memory 403.
- the processor 401 writes the results (data “Z”) of the calculation tasks T1 and T2 in the areas 403d and 403e, respectively.
- the processor 404 of the B channel circuit 40B continuously executes the same arithmetic tasks T3 and T4 in the safety task cycle.
- the processor 404 executes arithmetic tasks T3 and T4 using the data “X” and “Y” stored in the area 406c of the main memory 406.
- the processor 404 writes the results (data “Z”) of the arithmetic tasks T3 and T4 in the areas 406d and 406e, respectively.
- the data written in the main memories 403 and 406 are tripled. Therefore, the data "X” and the two copy data “X_Copy1" and “X_Copy2" are written in the areas 403c and 406c.
- the data “X” is written and a transient failure occurs in the portion, and the data “X” is disguised as the data “X'”. There is.
- the processor 404 Before executing each of the arithmetic tasks T3 and T4, the processor 404 reads the target data and the two copy data from the area 406c of the main memory 406, and collates these three data. In the example shown in FIG. 17, no transient failure has occurred in the main memory 406. Therefore, the target data (data "X", "Y") and the two copy data match. Since the target data and the two copy data match, the processor 404 executes the calculation tasks T3 and T4 using the target data (data “X” and “Y”) as they are.
- the processor 401 reads the target data and the two copy data from the area 403c of the main memory 403, and collates these three data. Since the data "X” is garbled as the data "X'", the data "X'” does not match the two copy data "X_Copy1" and "X_Copy2". On the other hand, the two copy data "X_Copy1" and "X_Copy2" match. Therefore, as shown in FIG. 18, the processor 401 overwrites the data "X'" on one of the two matching copy data "X_Copy1" and "X_Copy2".
- the processor 401 can execute the arithmetic tasks T1 and T2 using the restored data "X” (or copy data "X_Copy1" and "X_Copy2"). That is, as shown in FIG. 17, even if the data "X" is the data indicating the address, the processor 401 can continue the calculation tasks T1 and T2 without determining an exception (abnormality).
- the processors 401 and 404 continue the operation based on the results of the arithmetic tasks T1 to T4.
- FIG. 19 is a diagram showing a specific example 2 of processing using two processing circuits when a transient failure occurs during execution of a calculation task.
- FIG. 20 is a diagram showing an example of the restoration process of the data “Z” shown in FIG.
- a transient failure occurs during execution of the calculation task T3 by the processor 404, and a calculation result (data “Z'”) different from the result of another calculation task (data “Z”). Is written in area 406d.
- the processors 401 and 404 determine that the arithmetic tasks T1, T2, and T4 have been executed normally, and the arithmetic tasks T1, T2, and T4 Continue the operation based on the result of. In this way, even if a transient failure occurs during the execution of the calculation task, the operation of the safety IO unit 400 is continued, and the temporary stop of the control system 1 can be avoided.
- the processor 404 overwrites the data in the area 406e in which the result of the normally executed calculation task T4 is written in the area 406d in which the result of the calculation task T3 is written. As a result, the erroneous data "Z'" is restored to the normal data "Z".
- the processor 401 when the processor 401 writes the target data used for the arithmetic tasks T1 and T2 to the main memory 403, the processor 401 also copies the target data to the main memory. Write to 403. Similarly, when the target data used for the arithmetic tasks T3 and T4 is written to the main memory 406, the processor 404 also writes the two copy data obtained by copying the target data to the main memory 406.
- the processor 401 reads the target data and the two copy data from the main memory 403 before executing each of the arithmetic tasks T1 and T2.
- the processor 404 reads the target data and the two copy data from the main memory 406 before executing each of the arithmetic tasks T3 and T4.
- Each of the processors 401 and 404 executes an arithmetic task using the two or more matching data according to the matching of the read target data and the two or more data out of the two copy data.
- the calculation task can be performed using the remaining two data. Will be executed.
- the calculation task is executed using the correct data without data garbled, and the operation can be continued based on the result of the calculation task.
- Each of the processors 401 and 404 stores the one data according to the fact that two of the read target data and the two copy data match and the remaining one data is different from the two data. The area is overwritten with one of the two data.
- the garbled data is restored to the correct data.
- the processor 401 writes the results of the calculation tasks T1 and T2 to two different areas 403d and 403e of the main memory 403, respectively.
- the processor 404 writes the results of the arithmetic tasks T3 and T4 to two different regions 406d and 406e of the main memory 406, respectively.
- the processors 401 and 404 match at least one of the results of the calculation tasks T1 and T2 and the result of at least one of the results of the calculation tasks T3 and T4. Continue operation based on the result (common result).
- the processor 401 overwrites the data of the area in which the result different from the common result is written in the areas 403d and 403e of the main memory 403 with the data of the area in which the result of the common result is written.
- the processor 404 overwrites the data in the area 406d, 406e of the main memory 406 in which the result different from the common result is written with the data in the area in which the common result is written.
- each of the processors 401 and 404 executes the calculation task twice in succession in each safety task cycle.
- each of the processors 401 and 404 may execute the calculation task N times in succession in each safety task cycle.
- N is an integer greater than or equal to 2.
- the processor 401 executes N times of calculation tasks by using N different areas in the main memory 403.
- the processor 404 executes N arithmetic tasks, respectively, using N different regions in the main memory 406.
- the processor 401 writes the results of N times of calculation tasks to N different areas in the main memory 403.
- the processor 404 writes the results of N arithmetic tasks to N different regions in the main memory 406, respectively.
- the processors 401 and 404 determine whether or not the following condition A is satisfied.
- Condition A The first result of at least one of the results of N times of arithmetic processing executed by the processor 401 (first result) and the result of N times of arithmetic processing executed by the processor 404 (second result). The result of) is consistent with at least one second result. Then, the processors 401 and 404 may continue the operation based on the at least one first result and the at least one second result, respectively, depending on the condition A being satisfied.
- the processors 401 and 404 may determine whether or not the following condition B is satisfied in addition to the above condition A.
- Condition B Of the results of the 2N calculation tasks, the result equal to or more than the reference number of times matches the at least one first result (or the at least one second result). The reference number of times is, for example, an integer of 3 or more. Then, the processors 401 and 404 may continue the operation based on the at least one first result and the at least one second result, respectively, depending on satisfying the above conditions A and B.
- the reference number of times may be set to exceed N.
- N 2
- the processors 401 and 404 may continue the operation based on the four or more results according to the fact that three or more of the results of the four arithmetic tasks match. ..
- N 3
- the processors 401 and 404 may continue the operation based on the four or more results according to the fact that four or more of the results of the six arithmetic tasks match. ..
- the operation of the safety IO unit 400 can be continued.
- the safety IO unit 400 includes two processing circuits (A channel circuit 40A and B channel circuit 40B).
- at least one of the standard PLC100, the safety PLC200 and the coupler 300 may include two processing circuits, which may perform the same processing as the A channel circuit 40A and the B channel circuit 40B described above.
- at least one of the standard PLC100, the safety PLC200 and the coupler 300 can continue to operate even in the event of a transient failure. As a result, the frequency of stopping the control system 1 is suppressed.
- a different reference number may be set for each device according to the characteristics required for the device. For example, the reliability of the result of the arithmetic task required by the control PLC 100 is lower than the reliability of the result of the arithmetic task required by the safety IO unit 400. Therefore, the reference number of times set in the control PLC 100 may be less than the reference number of times set in the safety IO unit 400.
- this embodiment includes the following disclosures.
- FIG. 1 An information processing device (400) that executes arithmetic processing.
- the first processing circuit (40A) and Equipped with a second processing circuit (40B) The first processing circuit (40A) executes the arithmetic processing N times in succession.
- the second processing circuit (40B) executes the arithmetic processing N times in succession.
- N is an integer greater than or equal to 2
- the first processing circuit (40A) and the second processing circuit (40B) are at least one of the first results of N times of the arithmetic processing executed by the first processing circuit (40A). Depending on whether the first result matches at least one second result of the second result of the arithmetic processing N times executed by the second processing circuit (40B).
- An information processing apparatus (400) that continues its operation based on the at least one first result and the at least one second result, respectively.
- the first processing circuit (40A) includes a first memory (403) and a first processor (401) that executes the arithmetic processing using the first memory (403).
- the second processing circuit (40B) includes a second memory (406) and a second processor (404) that executes the arithmetic processing using the second memory (406).
- the first processor (401) executes the arithmetic processing N times, respectively, using N different regions (403a, 403b) of the first memory (403).
- the second processor (404) uses N different regions (406a, 406b) of the second memory (406) to execute the arithmetic processing N times, respectively, according to the configuration 1.
- the first processor (401) outputs a result different from the at least one first result among the N areas (403a, 403b) of the first memory (403).
- the data of the area used in the above is overwritten with the data of the area used in the arithmetic processing in which the at least one first result is output.
- the second processor (404) outputs a result different from the at least one second result among the N areas (406a, 406b) of the second memory (406).
- the information processing unit (400) according to configuration 2, wherein the data of the region used in the above is overwritten with the data of the region used in the arithmetic processing in which the at least one second result is output.
- the first processing circuit (40A) includes a first memory (403) and a first processor (401) that executes the arithmetic processing using the first memory (403).
- the second processing circuit (40B) includes a second memory (406) and a second processor (404) that executes the arithmetic processing using the second memory (406).
- the first processor (401) writes the target data used in the arithmetic processing to the first memory (403)
- the two copy data obtained by copying the target data are also the first.
- Write to memory (403) When the second processor (404) writes the target data used in the arithmetic processing to the second memory (406), the two copy data obtained by copying the target data are also the second copy data.
- the first processor (401) writes the result of the arithmetic processing N times to N different areas (403d, 403e) of the first memory (403), respectively.
- the second processor (404) writes the result of the arithmetic processing N times to N different regions (406d, 406e) of the second memory (406), respectively.
- the first processor (401) is data of an area in which a result different from the at least one first result is written in the N areas (403d, 403e) of the first memory (403). Is overwritten with the data in the area where the at least one first result is written.
- the second processor (404) is data of an area in which a result different from at least one second result is written in the N areas (406d, 406e) of the second memory (406).
- the information processing unit (400) according to the configuration 5 or 6, wherein the data in the area where the at least one second result is written is overwritten.
- the first processing circuit (40A) and Including the second processing circuit (40B) The control method is A step in which the first processing circuit (40A) executes the arithmetic processing N times in succession,
- the second processing circuit (40B) includes a step of continuously executing the arithmetic processing N times.
- N is an integer greater than or equal to 2, and further
- the first processing circuit (40A) and the second processing circuit (40B) are at least one of the first results of the N times of the arithmetic processing executed by the first processing circuit (40A).
- An information processing method comprising a step of continuing an operation based on the at least one first result and the at least one second result.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Hardware Redundancy (AREA)
- Retry When Errors Occur (AREA)
Abstract
演算処理を実行する情報処理装置は、第1の処理回路と、第2の処理回路とを備える。第1の処理回路は、演算処理をN回連続して実行する。第2の処理回路は、演算処理をN回連続して実行する。Nは2以上の整数である。第1の処理回路および第2の処理回路は、第1の処理回路によって実行されたN回の演算処理の結果のうちの少なくとも1つの結果と、第2の処理回路によって実行されたN回の演算処理の結果のうちの少なくとも1つの結果とが一致することに応じて、動作を継続する。これにより、ハードウェアに要するコストの増大を抑制するとともに、一過性の故障による一時的な停止を抑制できる。
Description
本開示は、情報処理装置、制御方法およびプログラムに関する。
情報処理装置における演算処理の実行中において一過性の故障が生じ、所望とは異なる演算結果が出力され得る。このような一過性の故障は、例えば、プロセッサ内のレジスタにおけるデータ化け、バス上でのデータ化け、プロセッサの誤動作などに起因して生じる。一過性の故障が起こり得る情報処理装置をシステムに適用すると、当該故障によるシステムの一時的な停止が生じうる。社会インフラを支えるシステムにおいて、このような一時的な停止が生じると、重大な影響を及ぼす。また、生産ラインに組み込まれるシステムにおいて一時的な停止が生じると、生産効率が低下する。
このようなシステムの一時的な停止を回避するための技術が開発されている。例えば、特開2019-8781号公報(特許文献1)は、処理回路を三重化する三重モード冗長(Triple Modular Redundant(TMR))技術を開示している。TMR技術によれば、3つの処理回路のうち1つの処理回路において一過性の故障が生じたとしても、残りの2つの処理回路によって当該故障を訂正することができる。これにより、システムの一時的な停止を回避できる。
しかしながら、特許文献1に記載の技術では、同一の処理回路を3つ用意する必要があるため、処理回路を構成するハードウェアに要するコストが増大する。
本開示は、上記の問題に鑑みてなされたものであり、その目的は、ハードウェアに要するコストの増大を抑制するとともに、一過性の故障によるシステムの一時的な停止を抑制可能な情報処理装置、制御方法およびプログラムを提供することである。
本開示の一例によれば、演算処理を実行する情報処理装置は、第1の処理回路と、第2の処理回路とを備える。第1の処理回路は、演算処理をN回連続して実行する。第2の処理回路は、演算処理をN回連続して実行する。Nは2以上の整数である。第1の処理回路および第2の処理回路は、第1の処理回路によって実行されたN回の演算処理の第1の結果のうちの少なくとも1つの第1の結果と、第2の処理回路によって実行されたN回の演算処理の第2の結果のうちの少なくとも1つの第2の結果とが一致することに応じて、上記少なくとも1つの第1の結果および上記少なくとも1つの第2の結果に基づいて動作をそれぞれ継続する。
この開示によれば、3つの処理回路を必要とするTMR技術と比較して、ハードウェアに要するコストの増大を抑制できる。
演算処理の実行中に一過性の故障が生じる確率は一般に低い。そのため、互いに一致する上記少なくとも1つの第1の結果と上記少なくとも1つの第2の結果とは、実行中に一過性の故障の生じていない演算処理の結果であると推定される。これにより、第1の処理回路および第2の処理回路、信頼性の高い結果を用いて動作を継続できる。このように、一過性の故障が生じたとしても、動作を継続させることができ、一過性の故障によるシステムの一時的な停止を抑制できる。
上述の開示において、第1の処理回路は、第1のメモリと、第1のメモリを用いて演算処理を実行する第1のプロセッサとを含む。第2の処理回路は、第2のメモリと、第2のメモリを用いて演算処理を実行する第2のプロセッサとを含む。第1のプロセッサは、第1のメモリの互いに異なるN個の領域を用いて、N回の演算処理をそれぞれ実行する。第2のプロセッサは、第2のメモリの互いに異なるN個の領域を用いて、N回の演算処理をそれぞれ実行する。
この開示によれば、第1のメモリのN個の領域のうちの一部および第2のメモリのN個の領域のうちの一部において、演算処理の開始前の一過性の故障によってデータ化けが生じたとしても、少なくとも1つの第1の結果と少なくとも1つの第2の結果とが一致する。演算処理の開始前に生じうる一過性の故障は、例えばソフトエラーなどによって起こりうる。そのため、第1のプロセッサおよび第2のプロセッサは、互いに一致する上記少なくとも1つの第1の結果および上記少なくとも1つの第2の結果に基づいて運転をそれぞれ継続できる。すなわち、演算処理の開始前に一過性の故障が生じた場合であっても、第1の処理回路および第2の処理回路は、動作を継続できる。
上述の開示において、第1のプロセッサは、第1のメモリのN個の領域のうち、上記少なくとも1つの第1の結果と異なる結果が出力された演算処理において用いられた領域のデータを、上記少なくとも1つの第1の結果が出力された演算処理において用いられた領域のデータで上書きする。第2のプロセッサは、第2のメモリのN個の領域のうち、上記少なくとも1つの第2の結果と異なる結果が出力された演算処理において用いられた領域のデータを、上記少なくとも1つの第2の結果が出力された演算処理において用いられた領域のデータで上書きする。
この開示によれば、誤ったデータが正しいデータに修復される。その結果、誤ったデータが次回の演算タスクに引き継がれることを回避できる。
上述の開示において、第1の処理回路は、第1のメモリと、第1のメモリを用いて演算処理を実行する第1のプロセッサとを含む。第2の処理回路は、第2のメモリと、第2のメモリを用いて演算処理を実行する第2のプロセッサとを含む。第1のプロセッサは、演算処理に用いられる対象データを第1のメモリに書き込むとき、対象データをコピーすることにより得られる2つのコピーデータも第1のメモリに書き込む。第2のプロセッサは、演算処理に用いられる対象データを第2のメモリに書き込むとき、対象データをコピーすることにより得られる2つのコピーデータも第2のメモリに書き込む。第1のプロセッサは、演算処理を実行する前に、第1のメモリから対象データおよび2つのコピーデータを読み出し、読み出した対象データおよび2つのコピーデータのうち2以上のデータが一致することに応じて、一致する当該2以上のデータを用いて演算処理を実行する。第2のプロセッサは、演算処理を実行する前に、第2のメモリから対象データおよび2つのコピーデータを読み出し、読み出した対象データおよび2つのコピーデータのうち2以上のデータが一致することに応じて、一致する当該2以上のデータを用いて演算処理を実行する。
この開示によれば、第1のメモリおよび第2のメモリの各々において、演算処理の開始前の一過性の故障(例えばソフトエラー)により対象データおよび2つのコピーデータのうちのいずれか1つのデータにデータ化けが生じたとしても、残り2つのデータを用いて演算処理が実行される。これにより、演算処理の開始前に一過性の故障が生じた場合であっても、当該一過性の故障の生じていない正しいデータを用いて演算処理が実行され、当該演算処理の結果に基づいて動作を継続できる。
上述の開示において、第1のプロセッサは、読み出した対象データおよび2つのコピーデータのうち2つのデータが一致し、残り1つのデータが2つのデータと異なることに応じて、第1のメモリにおいて、1つのデータが格納されていた領域を、2つのデータの一方で上書きする。
第2のプロセッサは、読み出した対象データおよび2つのコピーデータのうち2つのデータが一致し、残り1つのデータが2つのデータと異なることに応じて、第2のメモリにおいて、1つのデータが格納されていた領域を、2つのデータの一方で上書きする。
この開示によれば、一過性の故障によりデータ化けしたデータが正しいデータに修復される。その結果、誤ったデータが次回の演算タスクに引き継がれることを回避できる。
上述の開示において、第1のプロセッサは、N回の演算処理の結果を、第1のメモリの互いに異なるN個の領域にそれぞれ書き込む。第2のプロセッサは、N回の演算処理の結果を、第2のメモリの互いに異なるN個の領域にそれぞれ書き込む。第1のプロセッサは、第1のメモリのN個の領域のうち、上記少なくとも1つの第1の結果と異なる結果が書き込まれた領域のデータを、上記少なくとも1つの第1の結果が書き込まれた領域のデータで上書きする。第2のプロセッサは、第2のメモリのN個の領域のうち、上記少なくとも1つの第2の結果と異なる結果が書き込まれた領域のデータを、上記少なくとも1つの第2の結果が書き込まれた領域のデータで上書きする。
この開示によれば、誤ったデータが正しいデータに修復される。その結果、誤ったデータが次回の演算タスクに引き継がれることを回避できる。
本開示の一例によれば、演算処理を実行する情報処理装置は、第1の処理回路と、第2の処理回路とを含む。情報処理装置の制御方法は、第1の処理回路が演算処理をN回連続して実行するステップと、第2の処理回路が演算処理をN回連続して実行するステップとを備える。Nは2以上の整数である。制御方法は、さらに、第1の処理回路および第2の処理回路が、第1の処理回路によって実行されたN回の演算処理の第1の結果のうちの少なくとも1つの第1の結果と、第2の処理回路によって実行されたN回の演算処理の第2の結果のうちの少なくとも1つの第2の結果とが一致することに応じて、上記少なくとも1つの第1の結果および上記少なくとも1つの第2の結果に基づいて動作をそれぞれ継続するステップを備える。
本開示の一例によれば、プログラムは、上記の制御方法をコンピュータに実行させる。これらの開示によっても、ハードウェアに要するコストの増大を抑制するとともに、一過性の故障による一時的な停止を抑制できる。
本開示によれば、ハードウェアに要するコストの増大を抑制するとともに、一過性の故障による一時的な停止を抑制できる。
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
§1 適用例
航空宇宙システム、自動車、医療機器、通信機器、産業機器など様々に分野において、情報処理装置の一過性の故障によるシステムの一時的な停止を抑制することが望まれる。本発明は、このような様々な分野のシステムに適用され得る。以下では、本発明の適用例として、FA(Factory Automation)分野に組み込まれる制御システムについて説明するが、本発明の適用例は、当該制御システムに限定されない。
航空宇宙システム、自動車、医療機器、通信機器、産業機器など様々に分野において、情報処理装置の一過性の故障によるシステムの一時的な停止を抑制することが望まれる。本発明は、このような様々な分野のシステムに適用され得る。以下では、本発明の適用例として、FA(Factory Automation)分野に組み込まれる制御システムについて説明するが、本発明の適用例は、当該制御システムに限定されない。
図1は、実施形態に係る制御システムの全体構成を示す概略図である。図1に例示される制御システム1は、主要なコンポーネントとして、標準PLC(プログラマブルロジックコントローラ)100と、安全PLC200と、1以上のカプラ300と、1以上の安全IOユニット400とを含む。
標準PLC100は、予め作成された標準制御プログラムに従って、任意の制御対象に対する標準制御を実行する。「標準制御」は、予め定められた要求仕様に沿って、制御対象を制御するための処理の総称である。制御対象は、例えばサーボモータ、ロボットなどである。
安全PLC200は、標準PLC100とは独立して、任意の制御対象に対するセーフティ制御を実行する。図1に例示される安全PLC200は、ローカルバスを介して標準PLC100に接続される。「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理の総称である。「セーフティ制御」は、例えばIEC 61508などに規定されたセーフティ機能を実現するための要件を満たすように設計される。
カプラ300は、標準PLC100と安全IOユニット400との間のデータの遣り取りを仲介する。カプラ300は、フィールドネットワーク2を介して、標準PLC100と電気的に接続されている。フィールドネットワーク2は、FA(Factory Automation)用のデータ伝送を実現するための通信媒体である。フィールドネットワーク2において、予め定められた周期でフレーム伝送が可能になっており、ネットワーク内の各ノードに対するデータ到着時間が保証される。このようなデータ到着時間が保証されるプロトコルの一例として、本実施の形態に従う制御システム1においては、フィールドネットワーク2にはEtherCAT(登録商標)を採用する。
カプラ300は、標準PLC100から受信したデータを安全IOユニット400へ送信するとともに、安全IOユニット400からデータを受信すると、当該受信したデータを次に到着するフレームに格納する準備を行う。
安全IOユニット400は、安全PLC200またはカプラ300にローカルバスを介して接続される。さらに、安全IOユニット400には任意の安全デバイス(図示せず)が接続される。安全デバイスには、ライトカーテン、非常停止ボタン、セーフティドアスイッチなどが含まれる。
安全IOユニット400は、安全デバイスからの入力信号を受け付けて、安全PLC200へ当該入力信号を提供する。あるいは、安全IOユニット400は、安全デバイスからの入力信号を受け付けて、カプラ300を介して標準PLC100へ当該入力信号を提供する。標準PLC100へ提供された入力信号は、安全PLC200へ提供される。
さらに、安全IOユニット400は、安全PLC200からの指令に応じて、安全デバイスへ出力信号を出力する。あるいは、安全IOユニット400は、カプラ300および標準PLC100を介した安全PLC200からの指令に応じて、安全デバイスへ出力信号を出力する。
安全IOユニット400は、予め定められた周期(以下、「セーフティタスク周期」と称する。)ごとに、安全デバイスからの入力信号の受け付け、当該入力信号の提供、安全デバイスへの出力信号の出力などに関する演算タスクを実行する。
安全PLC200は、安全IOユニット400から提供された入力信号に応じて、セーフティ制御を実行する。例えば、安全PLC200は、ライトカーテンである安全デバイスから人の侵入を示す入力信号が提供されると、標準PLC100の制御対象への電源供給を遮断し、制御システム1を一時的に停止させる。あるいは、安全PLC200は、非常停止ボタンである安全デバイスからボタン押下を示す入力信号が提供されると、標準PLC100の制御対象への電源供給を遮断し、制御システム1を一時的に停止させる。
このように、安全IOユニット400は、人の安全が脅かされることを防止するためのセーフティ制御に直接関わる。従って、安全PLC200は、安全IOユニット400に故障や異常が発生したときにも、制御システム1を一時的に停止させるように設計されている。
安全IOユニット400に備えられる処理回路による演算タスクの実行中において一過性の故障が生じ、当該故障が訂正されないまま安全IOユニット400が動作し続けると、安全PLC200は、セーフティ制御を正常に実行できない。そのため、安全IOユニット400は、演算タスクの実行中に一過性の故障が生じたことを検知する機能を有する。ただし、一過性の故障が生じたことを検知したときに安全IOユニット400が故障信号を出力すると、制御システム1が停止される。制御システム1は、24時間×365日稼働する生産ラインに組み込まれ得る。このような生産ラインにおいて、制御システム1が一時的に停止すると、多大な損害が生じ得る。
そのため、本実施の形態に係る情報処理装置である安全IOユニット400は、1つの処理回路に一過性の故障が生じた場合であっても正常な動作を継続するように、2つの処理回路を有する。以下、2つの処理回路のうちの一方をAチャンネル回路と呼び、他方をBチャンネル回路と呼ぶ。
特許文献1に記載のTMR技術を用いて、処理回路を三重化することにより、3つの処理回路のうち1つの処理回路に一過性の故障が生じた場合であっても、残りの2つの処理回路を用いて動作を継続できる。しかしながら、TMR技術を用いると処理回路を構成するハードウェアに要するコストが増大する。そこで、本実施の形態に係る安全IOユニット400は、2つの処理回路(Aチャンネル回路およびBチャンネル回路)を有する。これにより、TMR技術を用いて安全IOユニットを設計する場合に比べて、ハードウェアに要するコストを低減させている。
図2は、2つの処理回路を用いた処理の参考例を示す図である。図2に例示される参考例では、Aチャンネル回路およびBチャンネル回路は、セーフティタスク周期ごとに、並行して演算タスクを実行する。
一過性の故障は、低い確率で偶発的に起こり得る。そのため、同じセーフティタスク周期において、Aチャンネル回路およびBチャンネル回路の両者に一過性の故障が生じることは稀である。
Aチャンネル回路およびBチャンネル回路のいずれにおいても一過性の故障が生じていないと、演算タスクの結果は一致する。一方、Aチャンネル回路およびBチャンネル回路の少なくとも一方において一過性の故障が生じると、演算タスクの結果が不一致となる。そのため、Aチャンネル回路およびBチャンネル回路の演算タスクの結果を照合することにより、一過性の故障の発生の有無を検知できる。すなわち、Aチャンネル回路およびBチャンネル回路の演算タスクの結果が不一致であることに応じて、一過性の故障が生じたことを検知できる。
しかしながら、図2に例示される参考例では、Aチャンネル回路およびBチャンネル回路のどちらに一過性の故障が生じたかを判定できない。そのため、安全IOユニットは、2つの演算タスクの結果が不一致であることに応じて、正常な動作を継続できないと判断し、故障信号を出力するしかない。その結果、安全PLC200のセーフティ制御により、制御システム1が停止されてしまう。従って、図2に例示される参考例の処理を実行した場合、1つの処理回路に一過性の故障が生じると、制御システム1が一時的に停止する。
本実施の形態に係る安全IOユニット400は、1つの処理回路に一過性の故障が生じた場合であっても正常な動作を継続するために、以下のような処理を実行する。
図3は、2つの処理回路を用いた処理の実施例を示す図である。図3に示されるように、Aチャンネル回路は、セーフティタスク周期において、同一の演算タスクT1,T2を連続して実行する。Bチャンネル回路は、セーフティタスク周期において、同一の演算タスクT3,T4を連続して実行する。また、Aチャンネル回路が実行する演算タスクT1,T2は、Bチャンネル回路が実行する演算タスクT3,T4と同一である。すなわち、安全IOユニット400は、セーフティタスク周期において、同一の演算タスクT1~T4を実行する。そして、安全IOユニット400は、セーフティタスク周期ごとに、演算タスクT1~T4の結果を照合し、照合結果に基づいて一過性の故障が生じたか否かを検知する。
演算タスクT1~T4の全てにおいて一過性の故障が生じていない場合、演算タスクT1~T4の結果は同一となる。そのため、安全IOユニット400は、演算タスクT1~T4の結果が同一であることに応じて、演算タスクT1~T4のいずれにおいても一過性の故障が生じていないと判断し、いずれか1つの演算結果に基づいて動作を継続させればよい。
実行中に一過性の故障が生じた演算タスクの結果は、通常、実行中に一過性の故障が生じていない演算タスクの結果と異なる。また、実行中に一過性の故障が生じた場合、演算タスクの結果は、通常、当該一過性の故障の内容に応じて異なる。1つのセーフティタスク周期において、Aチャンネル回路およびBチャンネル回路の両方に同一内容の一過性の故障が生じることは、非常に稀である。
そこで、本実施の形態に係る安全IOユニット400では、Aチャンネル回路およびBチャンネル回路は、演算タスクT1,T2の結果(第1の結果)のうちの少なくとも1つの第1の結果と、演算タスクT3,T4の結果(第2の結果)のうちの少なくとも1つの第2の結果とが一致することに応じて、当該一致する結果に基づいて動作を継続する。すなわち、Aチャンネル回路は、演算タスクT1,T2の結果のうちの上記少なくとも1つの第1の結果に基づいて動作を継続する。Bチャンネル回路は、演算タスクT3,T4の結果のうちの上記少なくとも1つの第2の結果に基づいて動作を継続する。これにより、ハードウェアに要するコストの増大を抑制できるとともに、一過性の故障によるシステムの一時的な停止を抑制できる。
§2 具体例1
<標準PLCのハードウェア構成>
図4は、標準PLCのハードウェア構成例を示す模式図である。図4に例示される標準PLC100は、プロセッサ102と、メインメモリ104と、ストレージ110と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
<標準PLCのハードウェア構成>
図4は、標準PLCのハードウェア構成例を示す模式図である。図4に例示される標準PLC100は、プロセッサ102と、メインメモリ104と、ストレージ110と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
プロセッサ102は、主として、標準制御に係る制御演算を実行する演算処理部に相当し、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。具体的には、プロセッサ102は、ストレージ110に格納されたプログラム(一例として、システムプログラム1102および標準制御プログラム1104)を読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。
メインメモリ104は、例えばDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)のような揮発性メモリによって構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などによって構成される。
ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、制御対象に応じて作成された標準制御プログラム1104、および標準PLC100での処理を規定するための設定情報1106が格納される。
フィールドネットワークコントローラ108は、フィールドネットワーク2を介して任意のデバイス(例えばカプラ300)との間でデータを遣り取りする。
ローカルバスコントローラ116は、ローカルバスを介して、標準PLC100に接続される任意のユニット(例えば安全PLC200)との間でデータを遣り取りする。
<安全PLCのハードウェア構成>
図5は、安全PLCのハードウェア構成例を示す模式図である。図5に例示される安全PLC200は、プロセッサ202と、メインメモリ204と、ストレージ210と、ローカルバスコントローラ216とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。
図5は、安全PLCのハードウェア構成例を示す模式図である。図5に例示される安全PLC200は、プロセッサ202と、メインメモリ204と、ストレージ210と、ローカルバスコントローラ216とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。
プロセッサ202は、主として、セーフティ制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。
メインメモリ204は、例えばDRAMやSRAMのような揮発性メモリによって構成される。ストレージ210は、例えば、SSDやHDDなどの不揮発性記憶装置などによって構成される。
ストレージ210には、基本的な機能を実現するためのシステムプログラム2102、要求されるセーフティ機能に応じた作成された安全プログラム2104、および安全PLC200での処理を規定するための設定情報2106が格納される。
ローカルバスコントローラ216は、ローカルバスを介して、安全PLC200に接続される安全IOユニット400との間でデータを遣り取りする。
<カプラのハードウェア構成>
図6は、カプラのハードウェア構成例を示す模式図である。図6に例示されるカプラ300は、プロセッサ302と、メインメモリ304と、ストレージ310と、フィールドネットワークコントローラ308と、ローカルバスコントローラ316とを含む。これらのコンポーネントは、プロセッサバス318を介して接続されている。
図6は、カプラのハードウェア構成例を示す模式図である。図6に例示されるカプラ300は、プロセッサ302と、メインメモリ304と、ストレージ310と、フィールドネットワークコントローラ308と、ローカルバスコントローラ316とを含む。これらのコンポーネントは、プロセッサバス318を介して接続されている。
プロセッサ302は、主として、カプラ300を動作させるための制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。
メインメモリ304は、例えばDRAMやSRAMのような揮発性メモリによって構成される。ストレージ310は、例えば、SSDやHDDなどの不揮発性記憶装置などによって構成される。
ストレージ310には、基本的な機能を実現するためのシステムプログラム3102およびカプラ300での処理を規定するための設定情報3106が格納される。
フィールドネットワークコントローラ308は、フィールドネットワーク2を介して、任意のデバイス(例えば標準PLC100)との間でデータを遣り取りする。
ローカルバスコントローラ316は、ローカルバスを介して、カプラ300に接続される安全IOユニット400との間でデータを遣り取りする。
<安全IOユニットのハードウェア構成>
図7は、具体例1に係る安全IOユニットのハードウェア構成例を示す模式図である。図7に例示される安全IOユニット400は、2つの処理回路と、ストレージ410と、ローカルバスコントローラ420と、安全IOモジュール430とを含む。これらのコンポーネントは、プロセッサバス440を介して接続されている。
図7は、具体例1に係る安全IOユニットのハードウェア構成例を示す模式図である。図7に例示される安全IOユニット400は、2つの処理回路と、ストレージ410と、ローカルバスコントローラ420と、安全IOモジュール430とを含む。これらのコンポーネントは、プロセッサバス440を介して接続されている。
2つの処理回路の一方であるAチャンネル回路40Aは、プロセッサ401およびメインメモリ403によって構成される。2つの処理回路のうちの他方であるBチャンネル回路40Bは、プロセッサ404およびメインメモリ406によって構成される。
プロセッサ401,404は、セーフティ制御を実現するために必要な信号の入出力および管理機能に係る制御演算を実行する演算処理部に相当し、CPUやMPU(Micro Processing Unit)などによって構成される。プロセッサ401,404は、それぞれレジスタ402,405を内蔵している。レジスタ402,405は、プロセッサ401,404による演算結果を一時的に保持したり、メインメモリ403,406を読み書きする際のアドレスを保持したりする。
メインメモリ403,406は、例えばDRAMやSRAMのような揮発性メモリによって構成される。SRAMは、記憶部の構造としてフリップフロップを用いており、リフレッシュ動作を必要とせず、DRAMより高速に動作できるという利点を有する。そのため、SRAMをメインメモリ403,406として用いることが好ましい。以下、メインメモリ403,406がSRAMであるとものとして説明する。
ストレージ410は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。ストレージ410には、IO機能を実現するためのIOプログラム41A1,41A2,41B1,41B2と、照合修復プログラム42A,42Bとが格納される。IOプログラム41A1,41A2および照合修復プログラム42Aは、Aチャンネル回路40Aにおいて実行される。IOプログラム41B1,41B2および照合修復プログラム42Bは、Bチャンネル回路40Bにおいて実行される。
ローカルバスコントローラ420は、ローカルバスを介して、安全IOユニット400が接続されるデバイス(例えば安全PLC200、カプラ300)との間でデータを遣り取りする。
安全IOモジュール430は、安全デバイスと電気的に接続され、安全デバイスによる検出結果などの入力を受け付けたり、安全デバイスへ信号を出力したりする。
なお、図7の例では、Aチャンネル回路40AおよびBチャンネル回路40Bに共用されるストレージ410が設けられる。しかしながら、Aチャンネル回路40AおよびBチャンネル回路40Bの各々にストレージが設けられてもよい。また、Aチャンネル回路40AとBチャンネル回路40Bとは、プロセッサバス440ではなく、シリアル通信を用いて接続されてもよい。
<一過性の故障について>
一過性の故障は、例えば、プロセッサ401,404内のレジスタ402,405におけるデータ化け、プロセッサバス440上でのデータ化け、プロセッサ401,404の誤動作などに起因して生じ得る。
一過性の故障は、例えば、プロセッサ401,404内のレジスタ402,405におけるデータ化け、プロセッサバス440上でのデータ化け、プロセッサ401,404の誤動作などに起因して生じ得る。
さらに、近年、半導体デバイスの高集積化および微細化に伴い、α粒子や宇宙線中性子によるソフトエラーが急増している。一過性の故障は、ソフトエラーによるデータ化けによっても生じ得る。積み上げ型(スタック型)の構造を有するDRAMでは、ソフトエラー耐性が高い。一方、フリップフロップ構造を有するSRAMでは、微細化によりソフトエラー耐性が低下する。そのため、SRAMによって構成されるメインメモリ403,406を用いる場合、メインメモリ403,406にソフトエラーが起こり得る。
演算処理(演算タスク)の開始前においてメインメモリ403,406にソフトエラーなどに起因する一過性の故障が生じた場合、当該一過性の故障が生じた状態のデータを用いてプロセッサ401,404が演算することにより、演算結果が所望の結果と異なる。そのため、安全IOモジュール430の動作が異常状態となる。
具体例1に係る安全IOユニット400は、演算処理の実行中において一過性の故障が生じた場合に限らず、演算処理の開始前においてメインメモリ403,406に一過性の故障が生じた場合であっても、正常な動作を継続するように以下のような処理を実行する。
<安全IOユニットにおける処理の具体例1>
図8から図10を参照して、2つの処理回路を用いた処理の具体例について説明する。図8は、一過性の故障が生じていないときの、2つの処理回路を用いた処理の具体例1を示す図である。図9は、一過性の故障が生じたときの、2つの処理回路を用いた処理の具体例1を示す図である。図10は、具体例1におけるデータの修復処理の一例を示す図である。
図8から図10を参照して、2つの処理回路を用いた処理の具体例について説明する。図8は、一過性の故障が生じていないときの、2つの処理回路を用いた処理の具体例1を示す図である。図9は、一過性の故障が生じたときの、2つの処理回路を用いた処理の具体例1を示す図である。図10は、具体例1におけるデータの修復処理の一例を示す図である。
図8および図9に示されるように、Aチャンネル回路40Aのプロセッサ401は、セーフティタスク周期において、同一の演算タスクT1,T2を連続して実行する。Bチャンネル回路40Bのプロセッサ404は、セーフティタスク周期において、同一の演算タスクT3,T4を連続して実行する。また、プロセッサ401が実行する演算タスクT1,T2は、プロセッサ404が実行する演算タスクT3,T4と同一である。すなわち、安全IOユニット400は、セーフティタスク周期において、同一の演算タスクT1~T4を実行する。ただし、安全IOユニット400は、互いに異なる4つのメモリ領域を用いて、演算タスクT1~T4をそれぞれ実行する。
具体的には、Aチャンネル回路40Aを構成するメインメモリ403において、1回目の演算タスクT1で使用される領域403aと2回目の演算タスクT2で使用される領域403bとが設定される。同様に、Bチャンネル回路40Bを構成するメインメモリ406において、1回目の演算タスクT3で使用される領域406aと2回目の演算タスクT4で使用される領域406bとが設定される。
Aチャンネル回路40Aを構成するプロセッサ401は、演算タスクT1を実行する前に、演算タスクT1で使用されるデータを、Aチャンネル回路を構成するメインメモリ403の領域403aに書き込む。図8および図9に例示される実施例では、プロセッサ401は、演算タスクT1の実行前に、データ「X」および「Y」を領域403aに書き込んでいる。同様に、プロセッサ401は、演算タスクT2を実行する前に、演算タスクT2で使用されるデータ「X」および「Y」をメインメモリ403の領域403bに書き込む。
Bチャンネル回路40Bを構成するプロセッサ404は、プロセッサ401と同様に、演算タスクT3を実行する前に、演算タスクT3で使用されるデータ「X」および「Y」を、Bチャンネル回路を構成するメインメモリ406の領域406aに書き込む。同様に、プロセッサ404は、演算タスクT4を実行する前に、演算タスクT4で使用されるデータ「X」および「Y」をメインメモリ406の領域406bに書き込む。
なお、領域403a,403b,406a,406bへのデータ「X」および「Y」を書き込むタイミングは、IOプログラム41A1,41A2,41B1,41B2によってそれぞれ定義されている。当該タイミングは、例えば前回のセーフティタスク周期であってもよいし、安全IOユニット400の起動時であってもよい。また、データ「X」および「Y」が書き込まれる領域403a,403b,406a,406b内のアドレスは、IOプログラム41A1,41A2,41B1,41B2によってそれぞれ定義される。
プロセッサ401は、セーフティタスク周期の開始タイミングと同期して、演算タスクT1を開始する。図8および図9に例示される実施例では、プロセッサ401は、メインメモリ403の領域403aからデータ「X」および「Y」を読み出し、データ「X」および「Y」を用いた演算を実行する。そして、プロセッサ401は、演算結果であるデータ「Z」をメインメモリ403の領域403aに書き込む。
プロセッサ401は、演算タスクT1の終了後に演算タスクT2を開始する。演算タスクT2は、メインメモリ403内の領域403aの代わりに領域403bを用いる点でのみ演算タスクT1と相違する。すなわち、プロセッサ401は、領域403bからデータ「X」および「Y」を読み出し、データ「X」および「Y」を用いた演算を実行する。そして、プロセッサ401は、演算結果であるデータ「Z」を領域403bに書き込む。
同様に、プロセッサ404は、セーフティタスク周期の開始タイミングと同期して、演算タスクT3を開始する。演算タスクT3は、メインメモリ403内の領域403aの代わりにメインメモリ406の領域406aを用いる点でのみ演算タスクT1と相違する。すなわち、プロセッサ404は、メインメモリ406の領域406aからデータ「X」および「Y」を読み出し、データ「X」および「Y」を用いた演算を実行する。そして、プロセッサ404は、演算結果であるデータ「Z」をメインメモリ406の領域406aに書き込む。
プロセッサ404は、演算タスクT3の終了後に演算タスクT4を開始する。演算タスクT4は、メインメモリ406内の領域406aの代わりに領域406bを用いる点でのみ演算タスクT3と相違する。すなわち、プロセッサ401は、領域406bからデータ「X」および「Y」を読み出し、データ「X」および「Y」を用いた演算を実行する。そして、プロセッサ404は、演算結果であるデータ「Z」を領域406bに書き込む。
演算タスクT1~T4は、IOプログラム41A1,41A2,41B1,41B2に従ってそれぞれ実行される。すなわち、データ「X」および「Y」の読み出し先となる領域403a,403b,406a,406b内のアドレスは、IOプログラム41A1,41A2,41B1,41B2によってそれぞれ定義されている。IOプログラム41A1,41A2,41B1,41B2は、データ「X」および「Y」を用いた同一の演算内容を定義する。データ「Z」が書き込まれる領域403a,403b,406a,406b内のアドレスは、IOプログラム41A1,41A2,41B1,41B2によってそれぞれ定義されている。このように、IOプログラム41A1,41A2,41B1,41B2は、読み出しおよび書き込みの対象先となるメモリ領域のアドレスについてのみ互いに異なり、同一の演算内容を定義している。
Aチャンネル回路40AおよびBチャンネル回路40Bのいずれにおいても一過性の故障が生じていない場合、図8に示されるように、演算タスクT1~T4の結果(データ「Z」)は全て同一となる。一方、演算タスクT4の開始前または実行中において一過性の故障が生じると、図9に示されるように、演算タスクT4の結果(データ「Z’」)が、演算タスクT1~T3の結果(データ「Z」)と異なる。図9の例では、演算タスクT4の開始前において領域406bにソフトエラーなどに起因するデータ化けが生じ、データ「X」がデータ「X’」に化けている。
そこで、プロセッサ401,404は、2回の演算タスクの後に、演算タスクT1~T4の結果を照合する。演算タスクT1~T4の結果が全て一致することに応じて、プロセッサ401,404は、データ化けを含む一過性の故障が生じていないと判断し、演算タスクT1~T4の結果に基づいて動作を継続させる。
演算タスクT1,T2の結果のうちの少なくとも1つの結果と、演算タスクT3,T4の結果のうちの少なくとも1つの結果とが一致することに応じて、プロセッサ401,404は、一致する当該結果(以下、「共通結果」とも称する。)が一過性の故障の生じていない演算タスクの結果であると判断する。そして、プロセッサ401,404は、当該結果に基づいて動作を継続させる。図9に示す例では、演算タスクT1,T2の結果と、演算タスクT3の結果とが一致している。そのため、プロセッサ401は、演算タスクT1,T2の結果に基づいて動作を継続させ、プロセッサ404は、演算タスクT3の結果に基づいて動作を継続させる。
さらに、プロセッサ401,404は、上記共通結果が演算された演算タスクで用いられるメモリ領域のデータを、上記共通結果と異なる結果が演算された演算タスクで用いられたメモリ領域に上書きする。図10に示す例では、プロセッサ404は、演算タスクT1,T2と一致する結果が出力された演算タスクT3において用いられた領域406aのデータを、演算タスクT3の結果と異なる結果が出力された演算タスクT4において用いられた領域406bに上書きする。これにより、一過性の故障が生じたメモリ領域の誤ったデータが、一過性の故障の生じていないメモリ領域の正しいデータに修復される。その結果、誤ったデータが次回の演算タスクに引き継がれることを回避できる。
プロセッサ401,404による演算タスクT1~T4の照合処理は、照合修復プログラム42A,42Bによってそれぞれ定義される。また、プロセッサ401による領域403a,403bの修復処理は、照合修復プログラム42Aによって定義される。同様に、プロセッサ404による領域406a,406bの修復処理は、照合修復プログラム42Bによって定義される。
<安全IOユニットにおける処理の流れ>
図11は、安全IOユニットにおける処理の流れを示すフローチャートである。まず、プロセッサ401,404は、タクト開始のタイミングに到達したか否かを判断する(ステップS1)。タクト開始のタイミングに到達していない場合(ステップS1でNO)、処理は再度ステップS1に戻る。
図11は、安全IOユニットにおける処理の流れを示すフローチャートである。まず、プロセッサ401,404は、タクト開始のタイミングに到達したか否かを判断する(ステップS1)。タクト開始のタイミングに到達していない場合(ステップS1でNO)、処理は再度ステップS1に戻る。
タクト開始のタイミングに到達すると(ステップS1でYES)、ステップS2,S3と、ステップS4,S5との並行処理が実行される。ステップS2において、Aチャンネル回路40Aのプロセッサ401は、メインメモリ403の領域403aを用いて1回目の演算タスクT1を実行する。演算タスクT1の実行が完了すると、ステップS3において、プロセッサ401は、メインメモリ403の領域403bを用いて2回目の演算タスクT2を実行する。ステップS4において、Bチャンネル回路40Bのプロセッサ404は、メインメモリ406の領域406aを用いて1回目の演算タスクT3を実行する。演算タスクT3の実行が完了すると、ステップS4において、プロセッサ404は、メインメモリ406の領域406bを用いて2回目の演算タスクT4を実行する。
ステップS3,S5が完了すると、ステップS6において、プロセッサ401,404は、演算タスクT1~T4の結果を照合する。
演算タスクT1~T4の結果が全て一致する場合(ステップS7でYES)、プロセッサ401,404は、演算タスクT1~T4の全てが正常に終了したと判断し、演算タスクT1~T4の結果に基づいて運転を継続させる(ステップS10)。ステップS10の後、処理は終了する。
演算タスクT1~T4の結果が全て一致しない場合(ステップS7でNO)、プロセッサ401,404は、演算タスクT1,T2の結果のうちの少なくとも1つの結果と、演算タスクT3,T4の結果のうちの少なくとも1つの結果とが一致するか否か判断する(ステップS8)。
ステップS8でYESの場合、一致しない演算タスクに用いられるメモリ領域のデータが修復される(ステップS9)。データを修復した後、処理はステップS10に移る。
例えば、演算タスクT1の結果が他の3つの演算タスクの結果と異なる場合、プロセッサ401は、メインメモリ403において、領域403aのデータを領域403bに上書きする。演算タスクT2の結果が他の3つの演算タスクの結果と異なる場合、プロセッサ401は、メインメモリ403において、領域403bのデータを領域403aに上書きする。演算タスクT3の結果が他の3つの演算タスクの結果と異なる場合、プロセッサ404は、メインメモリ406において、領域406aのデータを領域406bに上書きする。演算タスクT4の結果が他の3つの演算タスクの結果と異なる場合、プロセッサ404は、メインメモリ406において、領域406bのデータを領域406aに上書きする。
演算タスクT1,T3の結果が一致し、演算タスクT2,T4の各々が演算タスクT1,T3の結果の一致しない場合、プロセッサ401は、メインメモリ403において、領域403aのデータを領域403bに上書きする。さらに、プロセッサ404は、メインメモリ406において、領域406aのデータを領域406bに上書きする。演算タスクT1,T4の結果が一致し、演算タスクT2,T3の各々が演算タスクT1,T4の結果の一致しない場合、プロセッサ401は、メインメモリ403において、領域403aのデータを領域403bに上書きする。さらに、プロセッサ404は、メインメモリ406において、領域406bのデータを領域406aに上書きする。演算タスクT2,T3の結果が一致し、演算タスクT1,T4の各々が演算タスクT1,T3の結果の一致しない場合、プロセッサ401は、メインメモリ403において、領域403bのデータを領域403aに上書きする。さらに、プロセッサ404は、メインメモリ406において、領域406aのデータを領域406bに上書きする。演算タスクT2,T4の結果が一致し、演算タスクT1,T3の各々が演算タスクT2,T4の結果の一致しない場合、プロセッサ401は、メインメモリ403において、領域403bのデータを領域403aに上書きする。さらに、プロセッサ404は、メインメモリ406において、領域406bのデータを領域406aに上書きする。
ステップS8でNOの場合、プロセッサ401,404は、異常信号を出力し、運転を停止させる(ステップS11)。ステップS11の後、処理は終了する。
<作用・効果>
以上のように、具体例1によれば、Aチャンネル回路40Aは、メインメモリ403と、メインメモリ403を用いて演算タスクを実行するプロセッサ401とを含む。Bチャンネル回路40Bは、メインメモリ406と、メインメモリ406を用いて演算タスクを実行するプロセッサ404とを含む。プロセッサ401は、メインメモリ403の互いに異なる2個の領域403a,403bを用いて、演算タスクT1,T2をそれぞれ実行する。プロセッサ404は、メインメモリ406の互いに異なる2個の領域406a,406bを用いて、演算タスクT3,T4をそれぞれ実行する。
以上のように、具体例1によれば、Aチャンネル回路40Aは、メインメモリ403と、メインメモリ403を用いて演算タスクを実行するプロセッサ401とを含む。Bチャンネル回路40Bは、メインメモリ406と、メインメモリ406を用いて演算タスクを実行するプロセッサ404とを含む。プロセッサ401は、メインメモリ403の互いに異なる2個の領域403a,403bを用いて、演算タスクT1,T2をそれぞれ実行する。プロセッサ404は、メインメモリ406の互いに異なる2個の領域406a,406bを用いて、演算タスクT3,T4をそれぞれ実行する。
上記の構成によれば、プロセッサ401は、メインメモリ403の異なる領域403a,403bを用いて2回の演算タスクT1,T2をそれぞれ実行する。同様に、プロセッサ404は、メインメモリ406の異なる領域406a,406bを用いて2回の演算タスクT3,T4をそれぞれ実行する。これにより、領域403a,403bの一方、および/または,領域406a,406bの一方においてソフトエラーなどに起因するデータ化けが生じたとしても、領域403a,403bの他方を用いた演算タスクの結果(共通結果)と、領域406a,406bの他方を用いた演算タスクの結果(共通結果)とは一致する。そのため、プロセッサ401,404は、当該共通結果に基づいて運転を継続できる。すなわち、演算タスクの開始前にメインメモリ403に一過性の故障が生じた場合であっても、Aチャンネル回路40AおよびBチャンネル回路40Bは、動作を継続できる。
プロセッサ401は、メインメモリ403の領域403a,403bのうち、上記共通結果と異なる結果が出力された演算タスクにおいて用いられた領域のデータを、上記共通結果が出力された演算タスクにおいて用いられた領域のデータで上書きする。同様に、プロセッサ404は、メインメモリ406の領域406a,406bのうち、上記共通結果と異なる結果が出力された演算タスクにおいて用いられた領域のデータを、上記共通結果が出力された演算タスクにおいて用いられた領域のデータで上書きする。
上記の構成によれば、誤ったデータが正しいデータに修復される。その結果、誤ったデータが次回の演算タスクに引き継がれることを回避できる。
§3 具体例2
メインメモリが記憶するデータには、値を示すデータ、メインメモリ内のアドレスを示すデータが含まれる。値を示すデータが記憶される領域に一過性の故障(例えばソフトエラーによるデータ化け)が生じた場合、値が本来の状態から化けることになる。この場合であっても、プロセッサは演算を継続できる。一方、アドレスを示すデータが記憶される領域に一過性の故障が生じた場合、アドレスが本来の状態から化けることになる。化けた後のアドレスがメインメモリに存在しないことも有り得る。この場合、プロセッサは、例外(異常)と判断し、処理を停止させる。
メインメモリが記憶するデータには、値を示すデータ、メインメモリ内のアドレスを示すデータが含まれる。値を示すデータが記憶される領域に一過性の故障(例えばソフトエラーによるデータ化け)が生じた場合、値が本来の状態から化けることになる。この場合であっても、プロセッサは演算を継続できる。一方、アドレスを示すデータが記憶される領域に一過性の故障が生じた場合、アドレスが本来の状態から化けることになる。化けた後のアドレスがメインメモリに存在しないことも有り得る。この場合、プロセッサは、例外(異常)と判断し、処理を停止させる。
図12は、アドレスを示すデータにデータ化けが生じたときの、具体例1の処理の一例を示す図である。図12に示す例では、Aチャンネル回路40Aを構成するメインメモリ403の領域403aに格納されたアドレスを示すデータが、メインメモリ403に存在しないアドレスを示すようにデータ化けしている。そのため、プロセッサ401が演算タスクT1を実行する際に、領域403aから読み出したデータがメインメモリ403に存在しないアドレスを示すことに応じて、処理を強制終了させる。そのため、演算タスクT1,T2の結果が得られない。その結果、演算タスクT1~T4の照合処理が実行されず、安全IOユニット400の運転が継続されない。
具体例2に係る安全IOユニット400は、アドレスを示すデータが記憶される領域に一過性の故障が生じた場合であっても、運転を継続できるように設計される。
<安全IOユニットにおけるハードウェア構成>
図13は、具体例2に係る安全IOユニットのハードウェア構成例を示す模式図である。図13に例示される安全IOユニット400は、図7に例示される安全IOユニット400と比較して、ストレージ410が読出書込プログラム43を記憶する点でのみ相違する。
図13は、具体例2に係る安全IOユニットのハードウェア構成例を示す模式図である。図13に例示される安全IOユニット400は、図7に例示される安全IOユニット400と比較して、ストレージ410が読出書込プログラム43を記憶する点でのみ相違する。
プロセッサ401は、読出書込プログラム43に従って、メインメモリ403に対するデータの書き込みおよび読み出しを実行する。同様に、プロセッサ404は、読出書込プログラム43に従って、メインメモリ406に対するデータの書き込みおよび読み出しを実行する。
<メインメモリへのデータの書き込みおよび読み出し>
図14は、メインメモリへのデータの書き込み処理を示す図である。図14に示されるように、プロセッサ401,404は、書き込み対象となる対象データをメインメモリ403,406にそれぞれ書き込む際に、対象データを2回コピーし、コピーした2つのコピーデータもメインメモリ403,406にそれぞれ書き込む。このように、メインメモリ403,406の各々において、対象データと2つのコピーデータとは同時に書き込まれる。これにより、メインメモリ403,406の各々において、データが三重化される。
図14は、メインメモリへのデータの書き込み処理を示す図である。図14に示されるように、プロセッサ401,404は、書き込み対象となる対象データをメインメモリ403,406にそれぞれ書き込む際に、対象データを2回コピーし、コピーした2つのコピーデータもメインメモリ403,406にそれぞれ書き込む。このように、メインメモリ403,406の各々において、対象データと2つのコピーデータとは同時に書き込まれる。これにより、メインメモリ403,406の各々において、データが三重化される。
書き込み直後において、対象データと2つのコピーデータとは同一となる。しかしながら、例えば宇宙線や中性子線の影響によりソフトエラーが生じると、対象データおよび2つのコピーデータのいずれかにおいてデータ化けが生じる。
図15は、メインメモリからのデータの読み出し処理を示す図である。図15に示されるように、プロセッサ401,404は、読み出し対象となる対象データをメインメモリ403,406からそれぞれ読み出す際に、対象データとともに2つのコピーデータも読み出す。プロセッサ401,404の各々は、読み出した対象データおよび2つのコピーデータを互いに照合する。
プロセッサ401,404の各々は、読み出した対象データおよび2つのコピーデータが全て一致する場合、対象データおよび2つのコピーデータのいずれかにおいてもデータ化けが生じていないと判断し、対象データを用いて演算タスクを実行する。
プロセッサ401,404の各々は、読み出した対象データおよび2つのコピーデータのうち2つが一致し、残り1つが一致しない場合、一致する2つのデータにデータ化けが生じておらず、当該残り1つのデータにデータ化けが生じていると判断する。そして、プロセッサ401,404の各々は、一致する2つのデータの一方を、当該残り1つのデータが記憶される領域に上書きする。これにより、データ化けが生じたデータが修復される。その後、プロセッサ401,404は、一致する2つのデータの一方を用いて演算タスクを実行する。
上記の処理により、対象データおよび2つのコピーデータのいずれかにおいてデータ化けが生じたとしても、読み出し処理において、データ化けの生じたデータが修復され、演算タスクが継続される。
<安全IOユニットにおける処理の実施例>
図16から図20を参照して、2つの処理回路を用いた処理の具体例2について説明する。図16は、具体例2に係るメインメモリの領域を示す図である。図16に示されるように、メインメモリ403は、領域403c,403d,403eを含む。メインメモリ406は、領域406c,406d,406eを含む。
図16から図20を参照して、2つの処理回路を用いた処理の具体例2について説明する。図16は、具体例2に係るメインメモリの領域を示す図である。図16に示されるように、メインメモリ403は、領域403c,403d,403eを含む。メインメモリ406は、領域406c,406d,406eを含む。
領域403c,406cは、演算タスク中においてデータの読み出しのみが行われる領域である。領域403cは、プロセッサ401による1回目の演算タスクT1および2回目の演算タスクT2の両者で使用される。領域406cは、プロセッサ404による1回目の演算タスクT3および2回目の演算タスクT4の両者で使用される。
領域403d,403e,406d,406eは、演算タスク中においてデータの書き込みが行われる領域である。領域403dは、プロセッサ401による1回目の演算タスクT1で使用される。領域403eは、プロセッサ401による2回目の演算タスクT2で使用される。領域406dは、プロセッサ404による1回目の演算タスクT3で使用される。領域406eは、プロセッサ404による2回目の演算タスクT4で使用される。
図17は、データ化けが生じたときの、2つの処理回路を用いた処理の具体例2を示す図である。図18は、図17に示すデータ「X」の修復処理の一例を示す図である。
図17に示されるように、Aチャンネル回路40Aのプロセッサ401は、セーフティタスク周期において、同一の演算タスクT1,T2を連続して実行する。プロセッサ401は、メインメモリ403の領域403cに記憶されたデータ「X」および「Y」を用いて演算タスクT1,T2を実行する。プロセッサ401は、演算タスクT1,T2の結果(データ「Z」)を領域403d,403eにそれぞれ書き込む。同様に、Bチャンネル回路40Bのプロセッサ404は、セーフティタスク周期において、同一の演算タスクT3,T4を連続して実行する。プロセッサ404は、メインメモリ406の領域406cに記憶されたデータ「X」および「Y」を用いて演算タスクT3,T4を実行する。プロセッサ404は、演算タスクT3,T4の結果(データ「Z」)を領域406d,406eにそれぞれ書き込む。
上述したように、メインメモリ403,406に書き込まれるデータは三重化されている。そのため、データ「X」および2つのコピーデータ「X_Copy1」,「X_Copy2」が領域403c,406cに書き込まれている。図17に示す例では、メインメモリ403において、演算タスクの開始前に、データ「X」が書き込まれて部分に一過性の故障が生じ、データ「X」がデータ「X’」に化けている。
プロセッサ404は、演算タスクT3,T4の各々を実行する前に、メインメモリ406の領域406cから、対象データと2つのコピーデータとをそれぞれ読み出し、これら3つのデータを照合する。図17に示す例では、メインメモリ406において一過性の故障が生じていない。そのため、対象データ(データ「X」,「Y」)とその2つのコピーデータとは一致する。プロセッサ404は、対象データとその2つのコピーデータとが一致していることから、対象データ(データ「X」,「Y」)をそのまま用いて演算タスクT3,T4を実行する。
同様に、プロセッサ401は、演算タスクT1,T2の各々を実行する前に、メインメモリ403の領域403cから、対象データと2つのコピーデータとをそれぞれ読み出し、これら3つのデータを照合する。データ「X」がデータ「X’」に化けているため、データ「X’」は、2つのコピーデータ「X_Copy1」,「X_Copy2」と一致しない。一方、2つのコピーデータ「X_Copy1」,「X_Copy2」は一致する。そのため、図18に示されるように、プロセッサ401は、一致する2つのコピーデータ「X_Copy1」,「X_Copy2」のうちの一方で、データ「X’」を上書きする。これにより、データ「X’」は、演算タスクT1の前において、データ「X」に修復される。その結果、プロセッサ401は、修復されたデータ「X」(またはコピーデータ「X_Copy1」,「X_Copy2」)を用いて演算タスクT1,T2を実行できる。すなわち、図17に示されるように、データ「X」がアドレスを示すデータであったとしても、プロセッサ401は、例外(異常)と判断せず、演算タスクT1,T2を継続できる。
そして、正しいデータを用いて演算タスクT1~T4が実行されるため、演算タスクT1~T4の結果が一致する。これにより、プロセッサ401,404は、演算タスクT1~T4の結果に基づいて動作を継続させる。
図19は、演算タスクの実行中に一過性の故障が生じたときの、2つの処理回路を用いた処理の具体例2を示す図である。図20は、図19に示すデータ「Z」の修復処理の一例を示す図である。
図19に示されるように、プロセッサ404による演算タスクT3の実行中に一過性の故障が生じ、他の演算タスクの結果(データ「Z」)とは異なる演算結果(データ「Z’」)が領域406dに書き込まれている。しかしながら、演算タスクT1,T2,T4の結果が一致していることから、プロセッサ401,404は、演算タスクT1,T2,T4が正常に実行されたものと判断し、演算タスクT1,T2,T4の結果に基づいて動作を継続させる。このように、演算タスクの実行中に一過性の故障が生じたとしても、安全IOユニット400の動作が継続され、制御システム1の一時的な停止を回避できる。
さらに、図20に示されるように、プロセッサ404は、正常に実行された演算タスクT4の結果が書き込まれた領域406eのデータを、演算タスクT3の結果が書き込まれた領域406dに上書きする。これにより、誤ったデータ「Z’」が正常なデータ「Z」に修復される。
<作用・効果>
以上のように、具体例2によれば、プロセッサ401は、演算タスクT1,T2に用いられる対象データをメインメモリ403に書き込むとき、対象データをコピーすることにより得られる2つのコピーデータもメインメモリ403に書き込む。同様に、プロセッサ404は、演算タスクT3,T4に用いられる対象データをメインメモリ406に書き込むとき、対象データをコピーすることにより得られる2つのコピーデータもメインメモリ406に書き込む。
以上のように、具体例2によれば、プロセッサ401は、演算タスクT1,T2に用いられる対象データをメインメモリ403に書き込むとき、対象データをコピーすることにより得られる2つのコピーデータもメインメモリ403に書き込む。同様に、プロセッサ404は、演算タスクT3,T4に用いられる対象データをメインメモリ406に書き込むとき、対象データをコピーすることにより得られる2つのコピーデータもメインメモリ406に書き込む。
さらに、プロセッサ401は、演算タスクT1,T2の各々を実行する前に、メインメモリ403から対象データおよび2つのコピーデータを読み出す。同様に、プロセッサ404は、演算タスクT3,T4の各々を実行する前に、メインメモリ406から対象データおよび2つのコピーデータを読み出す。プロセッサ401,404の各々は、読み出した対象データおよび2つのコピーデータのうち2以上のデータが一致することに応じて、一致する当該2以上のデータを用いて演算タスクを実行する。
上記の構成によれば、メインメモリ403,406の各々において、対象データおよび2つのコピーデータのうちのいずれか1つのデータにデータ化けが生じたとしても、残り2つのデータを用いて演算タスクが実行される。これにより、一過性の故障によりデータ化けが生じた場合であっても、データ化けの生じていない正しいデータを用いて演算タスクが実行され、当該演算タスクの結果に基づいて動作を継続できる。
プロセッサ401,404の各々は、読み出した対象データおよび2つのコピーデータのうち2つのデータが一致し、残り1つのデータが当該2つのデータと異なることに応じて、当該1つのデータが格納されていた領域を、当該2つのデータの一方で上書きする。
上記の構成によれば、データ化けしたデータが正しいデータに修復される。その結果、誤ったデータが次回の演算タスクに引き継がれることを回避できる。
プロセッサ401は、演算タスクT1,T2の結果を、メインメモリ403の互いに異なる2個の領域403d,403eにそれぞれ書き込む。同様に、プロセッサ404は、演算タスクT3,T4の結果を、メインメモリ406の互いに異なる2個の領域406d,406eにそれぞれ書き込む。そして、プロセッサ401,404は、演算タスクT1,T2の結果のうちの少なくとも1つの結果と、演算タスクT3,T4の結果のうちの少なくとも1つの結果とが一致することに応じて、当該一致する結果(共通結果)に基づいて動作を継続する。
プロセッサ401は、メインメモリ403の領域403d,403eのうち、上記共通結果と異なる結果が書き込まれた領域のデータを、上記共通結果の結果が書き込まれた領域のデータで上書きする。同様に、プロセッサ404は、メインメモリ406の領域406d,406eのうち、上記共通結果と異なる結果が書き込まれた領域のデータを、上記共通結果が書き込まれた領域のデータで上書きする。
上記の構成によれば、誤ったデータが正しいデータに修復される。その結果、誤ったデータが次回の演算タスクに引き継がれることを回避できる。
§4 変形例
<変形例1>
上記の具体例1,2では、プロセッサ401,404の各々は、セーフティタスク周期ごとに、演算タスクを2回連続して実行する。しかしながら、プロセッサ401,404の各々は、セーフティタスク周期ごとに、演算タスクをN回連続して実行してもよい。Nは2以上の整数である。
<変形例1>
上記の具体例1,2では、プロセッサ401,404の各々は、セーフティタスク周期ごとに、演算タスクを2回連続して実行する。しかしながら、プロセッサ401,404の各々は、セーフティタスク周期ごとに、演算タスクをN回連続して実行してもよい。Nは2以上の整数である。
なお、具体例1に対する変形例では、プロセッサ401は、メインメモリ403における互いに異なるN個の領域を用いて、N回の演算タスクをそれぞれ実行する。同様に、プロセッサ404は、メインメモリ406における互いに異なるN個の領域を用いて、N回の演算タスクをそれぞれ実行する。
また、具体例2に対する変形例では、プロセッサ401は、メインメモリ403における互いに異なるN個の領域にN回の演算タスクの結果をそれぞれ書き込む。同様に、プロセッサ404は、メインメモリ406における互いに異なるN個の領域にN回の演算タスクの結果をそれぞれ書き込む。
プロセッサ401,404は、以下の条件Aを満たすか否かを判定する。
条件A:プロセッサ401によって実行されたN回の演算処理の結果(第1の結果)のうちの少なくとも1つの第1の結果と、プロセッサ404によって実行されたN回の演算処理の結果(第2の結果)のうちの少なくとも1つの第2の結果とが一致する。
そして、プロセッサ401,404は、上記の条件Aを満たすことに応じて、上記少なくとも1つの第1の結果および少なくとも1つの第2の結果に基づいて動作をそれぞれ継続すればよい。
条件A:プロセッサ401によって実行されたN回の演算処理の結果(第1の結果)のうちの少なくとも1つの第1の結果と、プロセッサ404によって実行されたN回の演算処理の結果(第2の結果)のうちの少なくとも1つの第2の結果とが一致する。
そして、プロセッサ401,404は、上記の条件Aを満たすことに応じて、上記少なくとも1つの第1の結果および少なくとも1つの第2の結果に基づいて動作をそれぞれ継続すればよい。
さらに、プロセッサ401,404は、上記の条件Aに加えて、以下の条件Bを満たすか否かを判定してもよい。
条件B:2N回の演算タスクの結果のうち基準回数以上の結果が、上記少なくとも1つの第1の結果(または上記少なくとも1つの第2の結果)と一致する。基準回数は、例えば3以上の整数である。
そして、プロセッサ401,404は、上記の条件AおよびBを満たすことに応じて、上記少なくとも1つの第1の結果および少なくとも1つの第2の結果に基づいて動作をそれぞれ継続してもよい。
条件B:2N回の演算タスクの結果のうち基準回数以上の結果が、上記少なくとも1つの第1の結果(または上記少なくとも1つの第2の結果)と一致する。基準回数は、例えば3以上の整数である。
そして、プロセッサ401,404は、上記の条件AおよびBを満たすことに応じて、上記少なくとも1つの第1の結果および少なくとも1つの第2の結果に基づいて動作をそれぞれ継続してもよい。
基準回数は、Nを超える回数に設定されてもよい。例えばN=2のとき、プロセッサ401,404は、4回の演算タスクの結果のうち3つ以上の結果が一致することに応じて、当該4つ以上の結果に基づいて動作を継続すればよい。例えばN=3のとき、プロセッサ401,404は、6回の演算タスクの結果のうち4つ以上の結果が一致することに応じて、当該4つ以上の結果に基づいて動作を継続すればよい。これにより、2N回の演算タスクのうち半数未満の演算タスクにおいて一過性の故障が生じたとしても、安全IOユニット400の動作を継続させることができる。
<変形例2>
上記の説明では、安全IOユニット400が2つの処理回路(Aチャンネル回路40AおよびBチャンネル回路40B)を備えるものとした。しかしながら、標準PLC100、安全PLC200およびカプラ300の少なくとも1つが2つの処理回路を備え、当該2つの処理回路が、上記のAチャンネル回路40AおよびBチャンネル回路40Bと同様の処理を実行してもよい。これにより、標準PLC100、安全PLC200およびカプラ300の少なくとも1つは、一過性の故障が生じたとしても動作を継続できる。その結果、制御システム1の停止の頻度が抑制される。
上記の説明では、安全IOユニット400が2つの処理回路(Aチャンネル回路40AおよびBチャンネル回路40B)を備えるものとした。しかしながら、標準PLC100、安全PLC200およびカプラ300の少なくとも1つが2つの処理回路を備え、当該2つの処理回路が、上記のAチャンネル回路40AおよびBチャンネル回路40Bと同様の処理を実行してもよい。これにより、標準PLC100、安全PLC200およびカプラ300の少なくとも1つは、一過性の故障が生じたとしても動作を継続できる。その結果、制御システム1の停止の頻度が抑制される。
なお、変形例1と組み合わせる場合、装置に要求される特性に応じて、装置ごとに異なる基準回数が設定されてもよい。例えば、制御PLC100において要求される、演算タスクの結果の信頼性は、安全IOユニット400において要求される、演算タスクの結果の信頼性よりも低い。そのため、制御PLC100に設定される基準回数は、安全IOユニット400に設定される基準回数よりも少なくてもよい。
§5 付記
以上のように、本実施の形態は以下のような開示を含む。
以上のように、本実施の形態は以下のような開示を含む。
(構成1)
演算処理を実行する情報処理装置(400)であって、
第1の処理回路(40A)と、
第2の処理回路(40B)とを備え、
前記第1の処理回路(40A)は、前記演算処理をN回連続して実行し、
前記第2の処理回路(40B)は、前記演算処理をN回連続して実行し、
Nは2以上の整数であり、
前記第1の処理回路(40A)および前記第2の処理回路(40B)は、前記第1の処理回路(40A)によって実行されたN回の前記演算処理の第1の結果のうちの少なくとも1つの第1の結果と、前記第2の処理回路(40B)によって実行されたN回の前記演算処理の第2の結果のうちの少なくとも1つの第2の結果とが一致することに応じて、前記少なくとも1つの第1の結果および前記少なくとも1つの第2の結果に基づいて動作をそれぞれ継続する、情報処理装置(400)。
演算処理を実行する情報処理装置(400)であって、
第1の処理回路(40A)と、
第2の処理回路(40B)とを備え、
前記第1の処理回路(40A)は、前記演算処理をN回連続して実行し、
前記第2の処理回路(40B)は、前記演算処理をN回連続して実行し、
Nは2以上の整数であり、
前記第1の処理回路(40A)および前記第2の処理回路(40B)は、前記第1の処理回路(40A)によって実行されたN回の前記演算処理の第1の結果のうちの少なくとも1つの第1の結果と、前記第2の処理回路(40B)によって実行されたN回の前記演算処理の第2の結果のうちの少なくとも1つの第2の結果とが一致することに応じて、前記少なくとも1つの第1の結果および前記少なくとも1つの第2の結果に基づいて動作をそれぞれ継続する、情報処理装置(400)。
(構成2)
前記第1の処理回路(40A)は、第1のメモリ(403)と、前記第1のメモリ(403)を用いて前記演算処理を実行する第1のプロセッサ(401)とを含み、
前記第2の処理回路(40B)は、第2のメモリ(406)と、前記第2のメモリ(406)を用いて前記演算処理を実行する第2のプロセッサ(404)とを含み、
前記第1のプロセッサ(401)は、前記第1のメモリ(403)の互いに異なるN個の領域(403a,403b)を用いて、N回の前記演算処理をそれぞれ実行し、
前記第2のプロセッサ(404)は、前記第2のメモリ(406)の互いに異なるN個の領域(406a,406b)を用いて、N回の前記演算処理をそれぞれ実行する、構成1に記載の情報処理装置(400)。
前記第1の処理回路(40A)は、第1のメモリ(403)と、前記第1のメモリ(403)を用いて前記演算処理を実行する第1のプロセッサ(401)とを含み、
前記第2の処理回路(40B)は、第2のメモリ(406)と、前記第2のメモリ(406)を用いて前記演算処理を実行する第2のプロセッサ(404)とを含み、
前記第1のプロセッサ(401)は、前記第1のメモリ(403)の互いに異なるN個の領域(403a,403b)を用いて、N回の前記演算処理をそれぞれ実行し、
前記第2のプロセッサ(404)は、前記第2のメモリ(406)の互いに異なるN個の領域(406a,406b)を用いて、N回の前記演算処理をそれぞれ実行する、構成1に記載の情報処理装置(400)。
(構成3)
前記第1のプロセッサ(401)は、前記第1のメモリ(403)の前記N個の領域(403a,403b)のうち、前記少なくとも1つの第1の結果と異なる結果が出力された前記演算処理において用いられた領域のデータを、前記少なくとも1つの第1の結果が出力された前記演算処理において用いられた領域のデータで上書きし、
前記第2のプロセッサ(404)は、前記第2のメモリ(406)の前記N個の領域(406a,406b)のうち、前記少なくとも1つの第2の結果と異なる結果が出力された前記演算処理において用いられた領域のデータを、前記少なくとも1つの第2の結果が出力された前記演算処理において用いられた領域のデータで上書きする、構成2に記載の情報処理装置(400)。
前記第1のプロセッサ(401)は、前記第1のメモリ(403)の前記N個の領域(403a,403b)のうち、前記少なくとも1つの第1の結果と異なる結果が出力された前記演算処理において用いられた領域のデータを、前記少なくとも1つの第1の結果が出力された前記演算処理において用いられた領域のデータで上書きし、
前記第2のプロセッサ(404)は、前記第2のメモリ(406)の前記N個の領域(406a,406b)のうち、前記少なくとも1つの第2の結果と異なる結果が出力された前記演算処理において用いられた領域のデータを、前記少なくとも1つの第2の結果が出力された前記演算処理において用いられた領域のデータで上書きする、構成2に記載の情報処理装置(400)。
(構成4)
前記第1の処理回路(40A)は、第1のメモリ(403)と、前記第1のメモリ(403)を用いて前記演算処理を実行する第1のプロセッサ(401)とを含み、
前記第2の処理回路(40B)は、第2のメモリ(406)と、前記第2のメモリ(406)を用いて前記演算処理を実行する第2のプロセッサ(404)とを含み、
前記第1のプロセッサ(401)は、前記演算処理に用いられる対象データを前記第1のメモリ(403)に書き込むとき、前記対象データをコピーすることにより得られる2つのコピーデータも前記第1のメモリ(403)に書き込み、
前記第2のプロセッサ(404)は、前記演算処理に用いられる対象データを前記第2のメモリ(406)に書き込むとき、前記対象データをコピーすることにより得られる2つのコピーデータも前記第2のメモリ(406)に書き込み、
前記第1のプロセッサ(401)は、
前記演算処理を実行する前に、前記第1のメモリ(403)から前記対象データおよび前記2つのコピーデータを読み出し、
読み出した前記対象データおよび前記2つのコピーデータのうち2以上のデータが一致することに応じて、一致する当該2以上のデータを用いて前記演算処理を実行し、
前記第2のプロセッサ(404)は、
前記演算処理を実行する前に、前記第2のメモリ(406)から前記対象データおよび前記2つのコピーデータを読み出し、
読み出した前記対象データおよび前記2つのコピーデータのうち2以上のデータが一致することに応じて、一致する当該2以上のデータを用いて前記演算処理を実行する、構成1に記載の情報処理装置(400)。
前記第1の処理回路(40A)は、第1のメモリ(403)と、前記第1のメモリ(403)を用いて前記演算処理を実行する第1のプロセッサ(401)とを含み、
前記第2の処理回路(40B)は、第2のメモリ(406)と、前記第2のメモリ(406)を用いて前記演算処理を実行する第2のプロセッサ(404)とを含み、
前記第1のプロセッサ(401)は、前記演算処理に用いられる対象データを前記第1のメモリ(403)に書き込むとき、前記対象データをコピーすることにより得られる2つのコピーデータも前記第1のメモリ(403)に書き込み、
前記第2のプロセッサ(404)は、前記演算処理に用いられる対象データを前記第2のメモリ(406)に書き込むとき、前記対象データをコピーすることにより得られる2つのコピーデータも前記第2のメモリ(406)に書き込み、
前記第1のプロセッサ(401)は、
前記演算処理を実行する前に、前記第1のメモリ(403)から前記対象データおよび前記2つのコピーデータを読み出し、
読み出した前記対象データおよび前記2つのコピーデータのうち2以上のデータが一致することに応じて、一致する当該2以上のデータを用いて前記演算処理を実行し、
前記第2のプロセッサ(404)は、
前記演算処理を実行する前に、前記第2のメモリ(406)から前記対象データおよび前記2つのコピーデータを読み出し、
読み出した前記対象データおよび前記2つのコピーデータのうち2以上のデータが一致することに応じて、一致する当該2以上のデータを用いて前記演算処理を実行する、構成1に記載の情報処理装置(400)。
(構成5)
前記第1のプロセッサ(401)は、読み出した前記対象データおよび前記2つのコピーデータのうち2つのデータが一致し、残り1つのデータが前記2つのデータと異なることに応じて、前記第1のメモリ(403)において、前記1つのデータが格納されていた領域を、前記2つのデータの一方で上書きし、
前記第2のプロセッサ(404)は、読み出した前記対象データおよび前記2つのコピーデータのうち2つのデータが一致し、残り1つのデータが前記2つのデータと異なることに応じて、前記第2のメモリ(406)において、前記1つのデータが格納されていた領域を、前記2つのデータの一方で上書きする、構成4に記載の情報処理装置(400)。
前記第1のプロセッサ(401)は、読み出した前記対象データおよび前記2つのコピーデータのうち2つのデータが一致し、残り1つのデータが前記2つのデータと異なることに応じて、前記第1のメモリ(403)において、前記1つのデータが格納されていた領域を、前記2つのデータの一方で上書きし、
前記第2のプロセッサ(404)は、読み出した前記対象データおよび前記2つのコピーデータのうち2つのデータが一致し、残り1つのデータが前記2つのデータと異なることに応じて、前記第2のメモリ(406)において、前記1つのデータが格納されていた領域を、前記2つのデータの一方で上書きする、構成4に記載の情報処理装置(400)。
(構成6)
前記第1のプロセッサ(401)は、N回の前記演算処理の結果を、前記第1のメモリ(403)の互いに異なるN個の領域(403d,403e)にそれぞれ書き込み、
前記第2のプロセッサ(404)は、N回の前記演算処理の結果を、前記第2のメモリ(406)の互いに異なるN個の領域(406d,406e)にそれぞれ書き込み、
前記第1のプロセッサ(401)は、前記第1のメモリ(403)の前記N個の領域(403d,403e)のうち、前記少なくとも1つの第1の結果と異なる結果が書き込まれた領域のデータを、前記少なくとも1つの第1の結果が書き込まれた領域のデータで上書きし、
前記第2のプロセッサ(404)は、前記第2のメモリ(406)の前記N個の領域(406d,406e)のうち、前記少なくとも1つの第2の結果と異なる結果が書き込まれた領域のデータを、前記少なくとも1つの第2の結果が書き込まれた領域のデータで上書きする、構成5または6に記載の情報処理装置(400)。
前記第1のプロセッサ(401)は、N回の前記演算処理の結果を、前記第1のメモリ(403)の互いに異なるN個の領域(403d,403e)にそれぞれ書き込み、
前記第2のプロセッサ(404)は、N回の前記演算処理の結果を、前記第2のメモリ(406)の互いに異なるN個の領域(406d,406e)にそれぞれ書き込み、
前記第1のプロセッサ(401)は、前記第1のメモリ(403)の前記N個の領域(403d,403e)のうち、前記少なくとも1つの第1の結果と異なる結果が書き込まれた領域のデータを、前記少なくとも1つの第1の結果が書き込まれた領域のデータで上書きし、
前記第2のプロセッサ(404)は、前記第2のメモリ(406)の前記N個の領域(406d,406e)のうち、前記少なくとも1つの第2の結果と異なる結果が書き込まれた領域のデータを、前記少なくとも1つの第2の結果が書き込まれた領域のデータで上書きする、構成5または6に記載の情報処理装置(400)。
(構成7)
演算処理を実行する情報処理装置(400)の情報処理方法であって、
前記情報処理装置(400)は、
第1の処理回路(40A)と、
第2の処理回路(40B)とを含み、
前記制御方法は、
前記第1の処理回路(40A)が前記演算処理をN回連続して実行するステップと、
前記第2の処理回路(40B)が前記演算処理をN回連続して実行するステップとを備え、
Nは2以上の整数であり、さらに、
前記第1の処理回路(40A)および前記第2の処理回路(40B)が、前記第1の処理回路(40A)によって実行されたN回の前記演算処理の第1の結果のうちの少なくとも1つの第1の結果と、前記第2の処理回路(40B)によって実行されたN回の前記演算処理の第2の結果のうちの少なくとも1つの第2の結果とが一致することに応じて、前記少なくとも1つの第1の結果および前記少なくとも1つの第2の結果に基づいて動作をそれぞれ継続するステップを備える、情報処理方法。
演算処理を実行する情報処理装置(400)の情報処理方法であって、
前記情報処理装置(400)は、
第1の処理回路(40A)と、
第2の処理回路(40B)とを含み、
前記制御方法は、
前記第1の処理回路(40A)が前記演算処理をN回連続して実行するステップと、
前記第2の処理回路(40B)が前記演算処理をN回連続して実行するステップとを備え、
Nは2以上の整数であり、さらに、
前記第1の処理回路(40A)および前記第2の処理回路(40B)が、前記第1の処理回路(40A)によって実行されたN回の前記演算処理の第1の結果のうちの少なくとも1つの第1の結果と、前記第2の処理回路(40B)によって実行されたN回の前記演算処理の第2の結果のうちの少なくとも1つの第2の結果とが一致することに応じて、前記少なくとも1つの第1の結果および前記少なくとも1つの第2の結果に基づいて動作をそれぞれ継続するステップを備える、情報処理方法。
(構成8)
構成7に記載の情報処理方法をコンピュータに実行させるプログラム。
構成7に記載の情報処理方法をコンピュータに実行させるプログラム。
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、2 フィールドネットワーク、40A Aチャンネル回路、40B Bチャンネル回路、41A1,41A2,41B1,41B2 IOプログラム、42A,42B 照合修復プログラム、43 読出書込プログラム、100 標準PLC、102,202,302,401,404 プロセッサ、104,204,304,403,406 メインメモリ、108,308 フィールドネットワークコントローラ、110,210,310,410 ストレージ、116,216,316,420 ローカルバスコントローラ、118,218,318,440 プロセッサバス、200 安全PLC、300 カプラ、400 安全IOユニット、402,405 レジスタ、403a,~403e,406a~406e 領域、430 安全IOモジュール、1102,2102,3102 システムプログラム、1104 標準制御プログラム、1106,2106,3106 設定情報、2104 安全プログラム、T1~T4 演算タスク。
Claims (8)
- 演算処理を実行する情報処理装置であって、
第1の処理回路と、
第2の処理回路とを備え、
前記第1の処理回路は、前記演算処理をN回連続して実行し、
前記第2の処理回路は、前記演算処理をN回連続して実行し、
Nは2以上の整数であり、
前記第1の処理回路および前記第2の処理回路は、前記第1の処理回路によって実行されたN回の前記演算処理の第1の結果のうちの少なくとも1つの第1の結果と、前記第2の処理回路によって実行されたN回の前記演算処理の第2の結果のうちの少なくとも1つの第2の結果とが一致することに応じて、前記少なくとも1つの第1の結果および前記少なくとも1つの第2の結果に基づいて動作をそれぞれ継続する、情報処理装置。 - 前記第1の処理回路は、第1のメモリと、前記第1のメモリを用いて前記演算処理を実行する第1のプロセッサとを含み、
前記第2の処理回路は、第2のメモリと、前記第2のメモリを用いて前記演算処理を実行する第2のプロセッサとを含み、
前記第1のプロセッサは、前記第1のメモリの互いに異なるN個の領域を用いて、N回の前記演算処理をそれぞれ実行し、
前記第2のプロセッサは、前記第2のメモリの互いに異なるN個の領域を用いて、N回の前記演算処理をそれぞれ実行する、請求項1に記載の情報処理装置。 - 前記第1のプロセッサは、前記第1のメモリの前記N個の領域のうち、前記少なくとも1つの第1の結果と異なる結果が出力された前記演算処理において用いられた領域のデータを、前記少なくとも1つの第2の結果が出力された前記演算処理において用いられた領域のデータで上書きし、
前記第2のプロセッサは、前記第2のメモリの前記N個の領域のうち、前記少なくとも1つの第2の結果と異なる結果が出力された前記演算処理において用いられた領域のデータを、前記少なくとも1つの第2の結果が出力された前記演算処理において用いられた領域のデータで上書きする、請求項2に記載の情報処理装置。 - 前記第1の処理回路は、第1のメモリと、前記第1のメモリを用いて前記演算処理を実行する第1のプロセッサとを含み、
前記第2の処理回路は、第2のメモリと、前記第2のメモリを用いて前記演算処理を実行する第2のプロセッサとを含み、
前記第1のプロセッサは、前記演算処理に用いられる対象データを前記第1のメモリに書き込むとき、前記対象データをコピーすることにより得られる2つのコピーデータも前記第1のメモリに書き込み、
前記第2のプロセッサは、前記演算処理に用いられる対象データを前記第2のメモリに書き込むとき、前記対象データをコピーすることにより得られる2つのコピーデータも前記第2のメモリに書き込み、
前記第1のプロセッサは、
前記演算処理を実行する前に、前記第1のメモリから前記対象データおよび前記2つのコピーデータを読み出し、
読み出した前記対象データおよび前記2つのコピーデータのうち2以上のデータが一致することに応じて、一致する当該2以上のデータを用いて前記演算処理を実行し、
前記第2のプロセッサは、
前記演算処理を実行する前に、前記第2のメモリから前記対象データおよび前記2つのコピーデータを読み出し、
読み出した前記対象データおよび前記2つのコピーデータのうち2以上のデータが一致することに応じて、一致する当該2以上のデータを用いて前記演算処理を実行する、請求項1に記載の情報処理装置。 - 前記第1のプロセッサは、読み出した前記対象データおよび前記2つのコピーデータのうち2つのデータが一致し、残り1つのデータが前記2つのデータと異なることに応じて、前記第1のメモリにおいて、前記1つのデータが格納されていた領域を、前記2つのデータの一方で上書きし、
前記第2のプロセッサは、読み出した前記対象データおよび前記2つのコピーデータのうち2つのデータが一致し、残り1つのデータが前記2つのデータと異なることに応じて、前記第2のメモリにおいて、前記1つのデータが格納されていた領域を、前記2つのデータの一方で上書きする、請求項4に記載の情報処理装置。 - 前記第1のプロセッサは、N回の前記演算処理の結果を、前記第1のメモリの互いに異なるN個の領域にそれぞれ書き込み、
前記第2のプロセッサは、N回の前記演算処理の結果を、前記第2のメモリの互いに異なるN個の領域にそれぞれ書き込み、
前記第1のプロセッサは、前記第1のメモリの前記N個の領域のうち、前記少なくとも1つの第1の結果と異なる結果が書き込まれた領域のデータを、前記少なくとも1つの第1の結果が書き込まれた領域のデータで上書きし、
前記第2のプロセッサは、前記第2のメモリの前記N個の領域のうち、前記少なくとも1つの第2の結果と異なる結果が書き込まれた領域のデータを、前記少なくとも1つの第2の結果が書き込まれた領域のデータで上書きする、請求項4または5に記載の情報処理装置。 - 演算処理を実行する情報処理装置の制御方法であって、
前記情報処理装置は、
第1の処理回路と、
第2の処理回路とを含み、
前記制御方法は、
前記第1の処理回路が前記演算処理をN回連続して実行するステップと、
前記第2の処理回路が前記演算処理をN回連続して実行するステップとを備え、
Nは2以上の整数であり、
前記制御方法は、さらに、
前記第1の処理回路および前記第2の処理回路が、前記第1の処理回路によって実行されたN回の前記演算処理の第1の結果のうちの少なくとも1つの第1の結果と、前記第2の処理回路によって実行されたN回の前記演算処理の第2の結果のうちの少なくとも1つの第2の結果とが一致することに応じて、前記少なくとも1つの第1の結果および前記少なくとも1つの第2の結果に基づいて動作をそれぞれ継続するステップを備える、制御方法。 - 請求項7に記載の制御方法をコンピュータに実行させるプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20917839.1A EP4102370A4 (en) | 2020-02-04 | 2020-04-07 | INFORMATION PROCESSING APPARATUS, CONTROL METHOD AND PROGRAM |
US17/795,780 US12106103B2 (en) | 2020-02-04 | 2020-04-07 | Information processing device, control method, and non-transitory computer readable medium |
CN202080093490.8A CN114981781A (zh) | 2020-02-04 | 2020-04-07 | 信息处理装置、控制方法和程序 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020017052A JP6729825B1 (ja) | 2020-02-04 | 2020-02-04 | 情報処理装置、制御方法およびプログラム |
JP2020-017052 | 2020-02-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021157103A1 true WO2021157103A1 (ja) | 2021-08-12 |
Family
ID=71663939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2020/015668 WO2021157103A1 (ja) | 2020-02-04 | 2020-04-07 | 情報処理装置、制御方法およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US12106103B2 (ja) |
EP (1) | EP4102370A4 (ja) |
JP (1) | JP6729825B1 (ja) |
CN (1) | CN114981781A (ja) |
WO (1) | WO2021157103A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023073928A (ja) * | 2021-11-16 | 2023-05-26 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0471038A (ja) * | 1990-07-12 | 1992-03-05 | Toshiba Corp | 電子計算機の二重化方式 |
JPH11296394A (ja) * | 1998-04-15 | 1999-10-29 | Nec Corp | 二重化情報処理装置 |
JP2000298594A (ja) * | 1999-04-13 | 2000-10-24 | Nec Corp | フォールトトレラント制御方法および冗長コンピュータシステム |
JP2011113399A (ja) * | 2009-11-27 | 2011-06-09 | Toshiba Corp | 計算機、保護制御装置 |
JP2019008781A (ja) | 2017-05-15 | 2019-01-17 | ザ・ボーイング・カンパニーThe Boeing Company | 高データインテグリティ処理システム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8886994B2 (en) * | 2009-12-07 | 2014-11-11 | Space Micro, Inc. | Radiation hard and fault tolerant multicore processor and method for ionizing radiation environment |
US9221492B2 (en) | 2011-09-14 | 2015-12-29 | Robert Bosch Automotive Steering Gmbh | Method for operating an electrical power steering mechanism |
DE102011053580A1 (de) | 2011-09-14 | 2013-03-14 | Zf Lenksysteme Gmbh | Verfahren zum betrieb einer elektrischen hilfskraftlenkung |
US9026847B2 (en) * | 2012-12-21 | 2015-05-05 | Advanced Micro Devices, Inc. | Hardware based redundant multi-threading inside a GPU for improved reliability |
US10423421B2 (en) * | 2012-12-28 | 2019-09-24 | Intel Corporation | Opportunistic utilization of redundant ALU |
US9329936B2 (en) * | 2012-12-31 | 2016-05-03 | Intel Corporation | Redundant execution for reliability in a super FMA ALU |
GB2537942B (en) * | 2015-05-01 | 2017-06-14 | Imagination Tech Ltd | Fault tolerant processor for real-time systems |
US9734006B2 (en) | 2015-09-18 | 2017-08-15 | Nxp Usa, Inc. | System and method for error detection in a critical system |
US20210141697A1 (en) * | 2018-03-06 | 2021-05-13 | DinoplusAI Holdings Limited | Mission-Critical AI Processor with Multi-Layer Fault Tolerance Support |
-
2020
- 2020-02-04 JP JP2020017052A patent/JP6729825B1/ja active Active
- 2020-04-07 CN CN202080093490.8A patent/CN114981781A/zh active Pending
- 2020-04-07 WO PCT/JP2020/015668 patent/WO2021157103A1/ja unknown
- 2020-04-07 US US17/795,780 patent/US12106103B2/en active Active
- 2020-04-07 EP EP20917839.1A patent/EP4102370A4/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0471038A (ja) * | 1990-07-12 | 1992-03-05 | Toshiba Corp | 電子計算機の二重化方式 |
JPH11296394A (ja) * | 1998-04-15 | 1999-10-29 | Nec Corp | 二重化情報処理装置 |
JP2000298594A (ja) * | 1999-04-13 | 2000-10-24 | Nec Corp | フォールトトレラント制御方法および冗長コンピュータシステム |
JP2011113399A (ja) * | 2009-11-27 | 2011-06-09 | Toshiba Corp | 計算機、保護制御装置 |
JP2019008781A (ja) | 2017-05-15 | 2019-01-17 | ザ・ボーイング・カンパニーThe Boeing Company | 高データインテグリティ処理システム |
Non-Patent Citations (1)
Title |
---|
See also references of EP4102370A4 |
Also Published As
Publication number | Publication date |
---|---|
CN114981781A (zh) | 2022-08-30 |
EP4102370A1 (en) | 2022-12-14 |
JP6729825B1 (ja) | 2020-07-22 |
US20230055743A1 (en) | 2023-02-23 |
JP2021124880A (ja) | 2021-08-30 |
US12106103B2 (en) | 2024-10-01 |
EP4102370A4 (en) | 2024-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5742753A (en) | Mesh interconnected array in a fault-tolerant computer system | |
US20090044044A1 (en) | Device and method for correcting errors in a system having at least two execution units having registers | |
JPH01154240A (ja) | 単一レールインターフェイスにエラーチェック機能を有する二重レールプロセッサ | |
JP2006285631A (ja) | 二重化システム | |
WO2021157103A1 (ja) | 情報処理装置、制御方法およびプログラム | |
CN102521086B (zh) | 基于锁步同步的双模冗余系统及其实现方法 | |
JP3063334B2 (ja) | 高信頼度化情報処理装置 | |
WO2021181712A1 (ja) | データ処理装置、データ処理方法およびプログラム | |
WO2021161549A1 (ja) | データ処理装置、制御方法およびプログラム | |
WO2022185582A1 (ja) | データ処理装置、データ処理方法およびプログラム | |
JP3139738B2 (ja) | 論理回路 | |
JP7554924B2 (ja) | 保安装置および保安方法 | |
JPS5911455A (ja) | 中央演算処理装置の冗長システム | |
WO2016075800A1 (ja) | プログラマブル回路 | |
JPS6095663A (ja) | 2重化磁気デイスク装置の自動切換装置 | |
JP2017059017A (ja) | メモリアクセス部を備える制御装置 | |
JPH11338712A (ja) | 割込順序保存回路 | |
JPH08305637A (ja) | 記憶装置 | |
JPS6322342B2 (ja) | ||
JPS5999556A (ja) | 情報処理装置 | |
JPH05324487A (ja) | メモリ制御システム | |
JPS61101845A (ja) | 情報処理装置の試験方式 | |
JPH06149603A (ja) | チェック機能付リアルタイム制御回路 | |
JPH02238539A (ja) | メモリ制御方式 | |
JPH04211841A (ja) | 二重化処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20917839 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2020917839 Country of ref document: EP Effective date: 20220905 |