WO2021111639A1 - コントローラ - Google Patents

コントローラ Download PDF

Info

Publication number
WO2021111639A1
WO2021111639A1 PCT/JP2019/047960 JP2019047960W WO2021111639A1 WO 2021111639 A1 WO2021111639 A1 WO 2021111639A1 JP 2019047960 W JP2019047960 W JP 2019047960W WO 2021111639 A1 WO2021111639 A1 WO 2021111639A1
Authority
WO
WIPO (PCT)
Prior art keywords
error
cpu
unit
authority
peripheral device
Prior art date
Application number
PCT/JP2019/047960
Other languages
English (en)
French (fr)
Inventor
直輝 伊藤
洋平 塚本
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2019/047960 priority Critical patent/WO2021111639A1/ja
Priority to JP2021558771A priority patent/JP7012915B2/ja
Priority to DE112019007853.4T priority patent/DE112019007853T5/de
Priority to KR1020227017549A priority patent/KR20220074993A/ko
Priority to CN201980102700.2A priority patent/CN114761935A/zh
Priority to TW109111943A priority patent/TW202122997A/zh
Publication of WO2021111639A1 publication Critical patent/WO2021111639A1/ja
Priority to US17/712,577 priority patent/US20220222187A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/27Built-in tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors

Definitions

  • the present invention relates to a controller.
  • controller In embedded systems used in equipment such as factories and power plants, or in transportation such as trains, control is realized by a controller.
  • a controller There are various implementation forms of the controller.
  • a central processing unit device hereinafter referred to as a CPU device
  • a peripheral device having an I / O (Input / Output) device or a communication device used for network connection. Is combined, the CPU device and the I / O device are connected by a bus, and the CPU device and the I / O device are generally operated in cooperation with each other.
  • the controller is, for example, a PLC (Programmable Logic Controller).
  • a multi-CPU configuration in which a plurality of CPU devices are provided in the controller as a means for speeding up the control by the controller in order to improve the performance of the system.
  • the control program executed by each CPU device is designed for each CPU device.
  • peripheral devices used by each CPU device are also provided. As a result, the degree of coupling of the control program of each CPU device is lowered, and the speed of the controller is increased.
  • a CPU device that controls a certain peripheral device is called a management device.
  • the CU device itself serves as a management device for a plurality of peripheral devices. From the viewpoint of peripheral devices, only one of the CPU devices is the management device.
  • the CPU device which is the management device of the peripheral device, has an error handling method in case an error occurs in the peripheral device. Therefore, when an error occurs in the peripheral device, the management device detects the error, diagnoses it, and takes necessary measures.
  • the “diagnosis” is, for example, a process in which the management device reads an error code from a peripheral device in which an error has occurred and interprets the error content.
  • the “necessary process” is, for example, a stop or partial stop of all functions as a controller. Alternatively, the "necessary process” is a recovery process such as resetting the peripheral device in which the error has occurred by continuing the control of the peripheral device in which the error has not occurred without stopping the function as the controller.
  • OpenMP parallelization technology
  • OpenMP's parallelization technology automatically divides one control program and executes it in parallel.
  • OpenMP aims to speed up the control by the controller.
  • a parallelization technique such as OpenMP is applied to a controller having a conventional multi-CPU configuration, it is expected that the degree of coupling of control programs executed by each CPU device will be high. The reason for this is that the original control program to be divided is designed to be executed by one CPU device.
  • input information input to a certain peripheral device is read by a plurality of CPU devices regardless of whether the device is a management device, and the read input information is used as an opportunity for a plurality of CPU devices.
  • the following is necessary for failure management in an environment where the control program is divided and the control program with a high degree of coupling is executed in parallel by the controller with a multi-CPU configuration. That is, when an error occurs in the peripheral device, after the management device detects the error, the management device needs to diagnose the peripheral device, determine the necessary countermeasure, and then notify the other CPU device of the decision result. There is. In such a case, the CPU device other than the management device has no error handling method. Therefore, even if the CPU device other than the management device fails to read due to an error in the peripheral device, the CPU device continues the control using the information one cycle before, and waits for some notification from the management device.
  • the management device detects the error due to the failure in reading the next cycle, so that it takes time to detect the error in the peripheral device. There is a problem that it requires.
  • Patent Document 1 is a prior art related to the problem that the time from the occurrence of an error in a peripheral device to the detection of an error becomes long.
  • the CPU device is composed of a dual system of a main station and a substation, and a means for communicating with each other including a managed peripheral device is provided.
  • Patent Document 1 when a communication failure such as a read failure occurs between the main station and the peripheral device, the slave station tries to read the peripheral device instead and determines the error status of the peripheral device. It states that error detection and error content identification can be performed quickly by the processing of the slave station.
  • Patent Document 1 does not solve the problem that it takes time to detect an error after an error occurs in the peripheral device.
  • the present invention manages a controller having a multi-CPU configuration after an error occurs in a peripheral device when a plurality of CPU devices execute a control program having a relatively high degree of coupling divided by parallel technology in parallel. It is an object of the present invention to shorten the time until the CPU device, which is a device, detects an error of a peripheral device.
  • the controller of the present invention With multiple central processing unit units, Peripherals that read data from multiple central processing unit devices, To be equipped.
  • the plurality of central processing unit devices A management device that is a central processing unit device having the first authority to manage the peripheral device, and an authority to diagnose the error of the peripheral device in which an error has occurred, which is lower than the first authority.
  • Including general equipment that is a central processing unit equipment with a secondary authority The general device is A reading unit that reads data from the peripheral device, A diagnostic unit that executes diagnosis of the peripheral device based on the second authority when data reading from the peripheral device fails.
  • the management device is With the diagnosis as an opportunity, a communication unit that receives an error notification indicating an error of the peripheral device, and When the error notification is received, the coping unit that deals with the error of the peripheral device based on the first authority, and the coping unit. To be equipped.
  • the management device receives an error notification indicating an error of the peripheral device, triggered by the diagnosis by the general device. Therefore, according to the present invention, when a plurality of CPU devices execute a control program having a relatively high degree of coupling divided by parallelization technology in parallel, an error occurs in a peripheral device before the management device. The time until the CPU device detects an error in the peripheral device can be shortened.
  • FIG. 5 is a diagram showing a hardware configuration of an I / O device according to a first embodiment.
  • FIG. FIG. 5 is a flowchart showing the operation of the error detection unit in the figure of the first embodiment.
  • FIG. FIG. 2 is a diagram showing a hardware configuration of an I / O device according to a second embodiment.
  • FIG. 4 is a diagram showing a hardware configuration of a controller according to a fourth embodiment.
  • FIG. 5 is a diagram showing a hardware configuration of an authorized device in the figure of the fourth embodiment.
  • FIG. 5 is a flowchart showing the operation of the error detection unit in the figure of the fourth embodiment.
  • FIG. FIG. 4 is a diagram for supplementing the hardware configuration of the CPU device 100.
  • the plurality of CPU devices includes a management device and a general device.
  • the management device is a CPU device having the first authority to manage peripheral devices.
  • the general device is a CPU device having a second authority, which is a lower authority than the first authority, and is an authority for diagnosing an error in a peripheral device in which an error has occurred.
  • the first authority is an authority that allows writing to peripheral devices.
  • the second authority is the authority that cannot write to the peripheral device, and is the authority that allows the error code to be read from the peripheral device.
  • Embodiment 1 The controller 10 of the first embodiment will be described with reference to FIGS. 1 to 6.
  • the CPU device 100 that detects an error in the peripheral device causes the other CPU device 100 to perform the error. Notify the error.
  • the management device can quickly know the occurrence of an error in the peripheral device.
  • the controller 10 will be described below with reference to the drawings.
  • FIG. 1 shows the hardware configuration of the controller 10 of the first embodiment.
  • the controller 10 includes a plurality of CPU devices 100 and a peripheral device 200 for reading data from the plurality of CPU devices 100.
  • a plurality of CPU devices 100 storing a control program described later and a plurality of peripheral devices are connected via a bus 400.
  • the CPU device is a device that periodically executes a stored control program.
  • a peripheral device is a device that inputs / outputs data by communicating with a device different from the CPU device.
  • three CPU devices 100 are identified by identifiers # 1, # 2, and # 3.
  • the CPU device 100 may be referred to as CPU device # 1.
  • two peripheral devices 200 are identified by identifiers # 1 and # 2.
  • peripheral device 200 may be referred to as peripheral device # 1.
  • Peripheral device 200 assumes I / O device 200.
  • the I / O device may be referred to as the I / O device 200.
  • the peripheral device # 1 is described as CPU # 1
  • the peripheral device # 2 is described as CPU # 2.
  • the management device of the peripheral device # 1 is the CPU device # 1
  • the management device of the peripheral device # 2 is the CPU device # 2.
  • the correspondence between the peripheral device and the management device is defined by the error processing information 122 described later.
  • FIG. 2 shows the hardware configuration of the CPU device 100.
  • the CPU device 100 includes a processor 110, a main storage device 120, an auxiliary storage device 130, and a communication interface device 140 as hardware.
  • the processor 110 is connected to the main storage device 120, the auxiliary storage device 130, and the communication interface device 140 by the bus 150.
  • the main storage device 120 stores the control program 121 executed by the processor 110 and the error processing information 122.
  • the auxiliary storage device 130 non-volatilely stores information and data stored in the main storage device 120.
  • the processor 110 loads the control program 121 and the error processing information 122 from the auxiliary storage device 130 into the main storage device 120, and reads the loaded control program 121 and the error processing information 122 from the main storage device 120 for execution.
  • the communication interface device 140 is used for communication between the hardware of any two of the processor 110, the main storage device 120, and the auxiliary storage device 130, communication between the CPU devices 100, or communication between the CPU device 100 and the peripheral device 200. Will be done.
  • the CPU device 100 includes a reading unit 111, an error detecting unit 112, and a communication unit 113 as functional elements.
  • the functions of the reading unit 111, the error detecting unit 112, and the communication unit 113 are realized by the control program 121.
  • the reading unit 111 reads data from the peripheral device 200.
  • the error detection unit 112 is a diagnostic unit.
  • the processor 110 is a device that executes the control program 121.
  • the processor 110 is an IC (Integrated Circuit) that performs arithmetic processing.
  • Specific examples of the processor 110 are a CPU (Central Processing Unit), a DSP (Digital Signal Processor), and a GPU (GraphicsS Processing Unit).
  • FIG. 3 shows the hardware configuration of the I / O device 200.
  • the I / O device includes a processor 210, a main storage device 220, an auxiliary storage device 230, a communication interface device 240, and an external input / output device 250 as hardware.
  • the processor 210 is connected to the main storage device 220, the auxiliary storage device 230, the communication interface device 240, and the external input / output device 250 by the bus 260.
  • the processor 210 performs processing such as simple calculation according to the state of the external input / output device 250 and generation of an error code based on the result of self-diagnosis.
  • the main storage device 220 and the auxiliary storage device 230 store the result of self-diagnosis executed by the processor 210 and an error code.
  • the communication interface device 240 is used for communication between the hardware of any two of the processor 210, the main storage device 220, the auxiliary storage device 230, and the external input / output device 250, and for communication between the peripheral device 200 and the CPU device 100. Will be done.
  • the external input / output device 250 takes in data from an external device different from the CPU device 100, and outputs the data to the external device.
  • the I / O device 200 includes a response unit 211 as a functional element.
  • the response unit 211 cooperates with the external input / output device 250 to transmit the requested data to the CPU device 100 via the communication interface device 240.
  • the function of the response unit 211 is realized by the program 201.
  • the program 201 is stored in the auxiliary storage device 230.
  • the processor 210 loads the main storage 220 program 201 from the auxiliary storage 230 and reads the program 201 from the main storage 220.
  • the processor 210 is a device that executes the program 201. Specific examples of the processor 210 are the same as those of the processor 110.
  • FIG. 4 shows error processing information 122.
  • the error processing information 122 is stored in the auxiliary storage device 130.
  • the processor 110 loads the error processing information 122 from the auxiliary storage device 130 into the main storage device 120, and refers to the error processing information 122 from the main storage device 120.
  • the error processing information 122 is defined in advance by the administrator according to the system configuration of the controller 10.
  • the defined error processing information 122 is stored in the auxiliary storage device 130.
  • peripheral devices included in the controller 10 are defined in the left column.
  • the contents of the simple diagnostic process are defined in the center column.
  • the "contents of the simple diagnosis process" is the content of the process to be performed by the CPU device 100 that detects the error when an error occurs in the peripheral device.
  • the CPU device 100 In the right column, the CPU device 100 that should be the management device for peripheral devices is defined.
  • the record of the I / O device # 1 will be described. This record is referred to as the first record.
  • the management device of the I / O device # 1 is the CPU device # 1.
  • the following (1) to (3) show the contents of the simple diagnosis process of the first record.
  • the error code "aa” means a specific error code.
  • the CPU device 100 does not send an error notification to the CPU device # 1 which is a management device, and continues the process.
  • the record of I / O device # 2 will be described. This record is referred to as the second record.
  • the management device of the I / O device # 2 is the CPU device # 2.
  • the following (1) to (3) show the contents of the simple diagnosis process of the second record.
  • the CPU device 100 transmits an error notification accompanied by an interrupt to all the CPU devices 100.
  • “Bb” means a specific error code different from “aa”.
  • the read error code is other than "bb"
  • the CPU device 100 does not transmit the error notification and continues the process.
  • FIG. 5 is a flowchart showing the operation of the error detection unit 112.
  • FIG. 6 shows the operation of the controller 10 of the first embodiment.
  • the events shown in frames 711, 712, 713, 714, 715, 716 of FIG. 6 indicate non-periodic processing.
  • the event shown in the frame 721, 722, 723, 724, 725 of FIG. 8, which will be described later, the event shown in the frame 731, 732, 733, 734, 735, 736, 737, 738, 739 of FIG. 9, and the frame 741 of FIG. , 742, 734, 744, 745, 746 also indicate non-periodic processing.
  • the operation of the controller 10 will be described with reference to FIGS. 5 and 6. In the following description, the operation of the controller 10 will be described assuming that an error occurs in the I / O device # 1 in FIG.
  • the reading unit 111 reads data to the I / O device # 1.
  • the error detection unit 112 determines whether or not the data read by the read unit 111 is successful. If successful, the process ends, and if unsuccessful, the process proceeds to step S12.
  • the error detection unit 112 determines whether or not its CPU device is the management device of the I / O device # 1 with reference to the error processing information 122. If it is a management device, the process proceeds to step S13, and if it is not a management device, the process proceeds to step S14.
  • the error detection unit 112 of the management device executes a preset error handling method.
  • the error detection unit 112 of the general device executes the simple diagnosis process on the I / O device # 1 with reference to the “simple diagnosis process” of the error processing information 122.
  • ⁇ Preset> The designer of the control program 121 stored in the CPU device 100 considers the influence of the error of the I / O device on the system in which the controller 10 is used in advance, and describes the error to be performed by the management device in step S13. Decide how to deal with it. Further, the designer of the control program 121 defines the content of the error processing information 122 in advance and sets it in the auxiliary storage device 130 of each CPU device 100. After the system is activated, the error detection unit 112 of each CPU device 100 periodically executes the process of FIG.
  • the content of the simple diagnosis process in step S14 of FIG. 5 is the “simple diagnosis process” of the error processing information 122 of FIG.
  • the simple diagnostic process in step S14 is a simple process that can be performed within the range of the second authority allowed for the CPU device 100 of the general device.
  • the simple diagnostic process in step S14 is, for example, reading an error code.
  • the control program 121 that executes the simple diagnostic processing is not "design for each CPU device on the premise of a multi-CPU configuration".
  • the control program 121 assumes the following.
  • the control program on which the control program 121 is based is divided by using the parallelization technique.
  • the control program 121 is a program in which the control program on which the control program is based is divided.
  • the control program 121 divided from the original control program is stored in each CPU device 100, and each CPU device 100 executes the control program 121 in parallel. As described above, the control program 121 assumes that the degree of coupling is relatively high.
  • step S21 the reading unit 111 of the CPU device # 1 succeeds in reading the external input / output device 250 of the I / O device # 1.
  • step S22 an error occurs in the I / O device # 1 immediately after the reading by the CPU device # 1 is successful.
  • the CPU device # 1, the CPU device # 2, and the CPU device # 3 refer to the input information input to the external input / output device 250 of the I / O device # 1 in order.
  • the CPU device # 1, the CPU device # 2, and the CPU device # 3 execute their respective control programs 121 in parallel.
  • the reading unit 111 of the CPU device # 2 refers to the input information of the I / O device # 1. Since an error has occurred in the I / O device # 1, the read unit 111 of the CPU device # 2 fails to read.
  • the error detection unit 112 of the CPU device # 2 detects the reading failure of the reading unit 111. As shown in the error processing information 122, the CPU device # 2 is not the management device of the I / O device # 1.
  • the error detection unit 112 of the CPU device # 2 which is a general device, reads the error code from the peripheral device 200, the I / O device # 1, as the execution of the diagnosis by the simple diagnosis process, and executes the error code.
  • an error notification is transmitted to the CPU device # 1 which is the management device. Specifically, it is as follows.
  • the error detection unit 112 which is a diagnostic unit, detects a read failure of the I / O device # 1
  • the I / O device # 2 follows the error processing information 122 as shown in the flowchart of FIG.
  • the simple diagnostic process for 1 is executed.
  • step S24 it is assumed that the error detection unit 112 has acquired the error code "aa" from the I / O device # 1. Since the error code is "aa" in step S25, the error detection unit 112 of the CPU device # 2 notifies the CPU device # 1, which is the management device of the I / O device # 1, that an error has occurred.
  • the communication unit 113 receives an error notification 601 indicating an error of the peripheral device 200, the I / O device # 1, triggered by the diagnosis by the simple diagnosis process by the CPU device # 2, which is a general device.
  • the error detection unit 112 is a coping unit.
  • the error detection unit 112 which is a coping unit, receives the error notification 601, it deals with the error of the peripheral device 200 based on the first authority. Specifically, it is as follows.
  • step S26 in the CPU device # 1 which is the management device, an interrupt is generated during the execution of the control program 121 triggered by the reception of the error notification 601 and the error detection unit 112 of the CPU device # 1 is the I / O device. Execute the error handling method of # 1 with the highest priority.
  • the error handling method by the management device varies depending on the specifications of the peripheral device or the content of the error.
  • the CPU device # 1, which is the management device determines the coping method after confirming the error code content of the I / O device # 1.
  • step S27 the error detection unit 112 of the CPU device # 1 which is the management device determines that the system should be stopped as an error handling method, and notifies all other CPU devices of the error and interrupts.
  • the management notification 602, which is an accompanying notification, is transmitted.
  • the error detection unit 112 of the CPU device # 1 causes all the other CPU devices to stop the execution of the control program 121 by the management notification 602.
  • the error detection unit 112 of the CPU device # 1 executes a reset process on the I / O device # 1 in which the error has occurred to try to recover the error.
  • error notification 601 may or may not be accompanied by an interrupt to the control program 121 depending on the content of the error code.
  • the error detection unit 112 can determine whether or not an interrupt is involved depending on the content of the error code.
  • the error notification 601 defined in the error processing information 122 of FIG. 4 may be broadcast to all CPU devices as defined in the second record, instead of transmitting only the management device. .. Further, in the case of a serious error in which the error detection unit 112 fails to read the error code in the simple diagnosis process, this broadcast transmission stops the execution of the control program 121 for all the CPU devices.
  • the content may be accompanied by an interrupt.
  • the error processing information 122 defines a simple diagnostic process that can be executed within the range of the second authority allowed for the general device.
  • the error notification 601 is transmitted to the management device by the simple diagnostic process. Therefore, the CPU device 100 of the general device performs a simple diagnostic process based on the error processing information 122, and when an error occurs in the peripheral device, the management device causes an error in the peripheral device without waiting for the next cycle read cycle. You can know. Therefore, when a plurality of CPU devices execute a control program having a relatively high degree of coupling divided by parallelization technology in parallel, an error occurs in the peripheral device, and then the CPU device, which is the management device, becomes the peripheral device. The time to detect an error can be shortened.
  • FIG. 7 shows the configuration of the I / O device of the second embodiment.
  • FIG. 8 shows the operation of the controller 10 of the second embodiment.
  • the I / O device 200 of FIG. 7 includes a broadcast transmission unit 212 as a functional element.
  • the configuration of the CPU device 100 is the same as that of FIG. 2 of the first embodiment.
  • the configuration of the controller 10 is the same as that in FIG.
  • the CPU device 100 which is a general device, reads the error code from the peripheral device 200 and then manages the CPU device 100 to have an error handling method. It was necessary to send the error notification 601 to the device.
  • the broadcast transmission unit 212 of the I / O device 200 transmits the error notification 601 to each CPU device 100.
  • Steps S31 to S34 in FIG. 8 are the same as steps S31 to S34 in FIG.
  • the CPU device # 1, the CPU device # 2, and the CPU device # 3 execute the process shown in FIG.
  • the result of reading the error code is sent as a broadcast.
  • step S31 the reading unit 111 of the CPU device # 1 succeeds in reading the external input / output device 250 of the I / O device # 1.
  • step S32 an error occurs in the I / O device # 1 immediately after the reading by the CPU device # 1 is successful.
  • step S33 after the error occurs, the reading unit 111 of the CPU device # 2, which is a general device, refers to the input information of the I / O device # 1 as the reading of the I / O device # 1.
  • step S34 the error detection unit 112 of the CPU device # 2 detects a reading failure by the reading unit 111, and executes a simple diagnostic process according to the definition of the error processing information 122.
  • the error detection unit 112 of the CPU device # 2 transmits an error code read request to the I / O device # 1.
  • the broadcast transmission unit 212 of the peripheral device I / O device # 1 broadcasts an error notification 601 to the plurality of CPU devices 100 when the diagnosis by the simple diagnosis process is executed by the general device. Send.
  • the broadcast transmission unit 212 of the I / O device # 1 receives the error code read request, the broadcast transmission unit 212 sends the error code read result corresponding to the error notification 601 to all the CPU devices 100 via the communication interface device 240. Send information.
  • the broadcast transmission unit 212 of the I / O device # 1 may limit the CPU device 100 for broadcast transmission depending on its own error status, or may limit the CPU device 100, which is a management device, to the CPU device # 1.
  • the error notification 601 may be sent directly.
  • the error notification 601 may be accompanied by an interrupt.
  • the I / O device broadcasts the error code reading result as an error notification 601 to all the CPU devices. Therefore, in a situation where the I / O device can respond, the management device can receive the error notification from the I / O device without waiting for the error notification 601 from the general device. The error detection time of the device can be shortened.
  • Embodiment 3 The controller 10 of the third embodiment will be described with reference to FIG.
  • the configuration of the controller 10 of the third embodiment is the same as that of the controller 10 of the first embodiment.
  • the management device aggregates the contents indicated by the error notification 601 transmitted by the general device. Based on the aggregation result, the management device executes the error handling method for the I / O device in which the error has occurred.
  • the initial minor error may become a serious error due to the spread of the error, and the error status may change.
  • the controller 10 of the third embodiment can deal with the error transition early and appropriately even if the error situation changes.
  • a plurality of error codes are defined as the error codes in the error processing information 122 of FIG. 4, such as aa1, aa2, aa3, and aa4.
  • the error detection unit 112 of the CPU device 100 detects an error in the I / O device 200, it transmits an error notification 601 including an error code to the management device.
  • the simple error detection unit 112 of each CPU device 100 transmits an error notification 601 including an error code to the management device.
  • the management device receives the error notification 601 from all the CPU devices 100. For example, the management device may deal with the error based on the most serious error code in the error notification 601 or the I / O device based on the error code contained in the latest error notification 601. You may deal with 200 errors. In this way, the management device aggregates the contents of the error code included in the received error notification 601. At this time, the error detection unit 112 of the management device may deal with the error when it reaches a state where it can deal with the error without waiting until the error notification 601 is received from all the CPU devices 100.
  • FIG. 9 shows the operation of the controller 10 of the third embodiment.
  • the operation of the controller 10 will be described with reference to FIG. Steps S41 to S44 of FIG. 9 are the same as steps S21 to S24 of FIG. CPU device # 1, CPU device # 2 and CPU device # 3 execute the process shown in FIG.
  • step S41 the reading unit 111 of the CPU device # 1 succeeds in reading the external input / output device 250 of the I / O device # 1.
  • an error occurs in the I / O device # 1.
  • step S43 after an error occurs in the I / O device # 1, the reading unit 111 of the CPU device # 2, which is a general device, refers to the input information of the I / O device # 1 by reading the data.
  • the error detection unit 112 of the CPU device # 2 detects a reading failure by the reading unit 111, and executes a simple diagnostic process in the I / O device # 1 based on the error processing information 122.
  • step S45 the error detection unit 112 of the CPU device # 2 transmits an error notification 601 including an error code to the CPU device # 1 which is a management device.
  • step S46 the error detection unit 112 of the CPU device # 1 transmits the management notification 602 to the CPU device # 2 and the CPU device # 3.
  • step S47 the error in I / O device # 1 transitions to a serious error.
  • step S48 the reading unit 111 of the CPU device # 3 executes the data reading of the I / O device # 1. Since an error has occurred in the I / O device # 1, the reading unit 111 fails to read.
  • step S49 the error detection unit 112 of the CPU device # 3 detects the failure of the data reading by the reading unit 111, and executes a simple diagnostic process in the I / O device # 1 according to the error processing information 122.
  • step S50 the error detection unit 112 of the CPU device # 3 transmits an error notification 601 including an error code to the CPU device # 1 which is a management device.
  • step S50a the error detection unit 112 of the CPU device # 1 which is the management device receives the error notification 601 from the plurality of general devices, and deals with the error of the peripheral device 200 based on the received error notification 601. .. Specifically, the error detection unit 112 of the CPU device # 1 aggregates the contents of the error codes of the error notification 601 received from the CPU device # 2 and the CPU device # 3, and based on the aggregation result, the I / O device. Determine how to deal with the error to # 1.
  • the general device executes the simple diagnosis process regardless of the reception of the error notification 601 from the other general device and the management notification 602 from the management device, and the result of the simple diagnosis process is the management device.
  • the management device determines an error handling method for the peripheral device in which the error has occurred, based on the error notification that is the result of the simple diagnostic processing received from all the general devices. Therefore, the management device can quickly and flexibly deal with the error situation of the peripheral device that changes with the passage of time. That is, the management device can handle serious or up-to-date errors in peripheral devices that occur over time.
  • Embodiment 4 The fourth embodiment will be described with reference to FIGS. 10 to 14.
  • error handling to the I / O device 200 such as recovery processing or evacuation processing is performed with write permission to the I / O device 200.
  • the CPU device # 2 starts the recovery process of the I / O device # 1, the recovery process of the CPU device # 1 and the recovery process of the CPU device # 2 occur, and the process becomes redundant.
  • it is an object of promptly starting error handling for the I / O device 200 and eliminating the redundancy of the recovery process.
  • FIG. 10 is a hardware configuration of the controller 10 of the fourth embodiment.
  • the controller 10 of the fourth embodiment further includes an authority device 300 with respect to the controller 10 of the first embodiment.
  • An authority device 300 is connected to the bus 400.
  • all the CPU devices 100 have an error handling method for the I / O device 200.
  • the management device of the I / O device 200 is not particularly specified. As will be described later, all CPU devices 100 can be management devices.
  • the error detection unit 112 has the functions of both a diagnosis unit and a coping unit.
  • FIG. 11 shows the hardware configuration of the authorization device 300.
  • the hardware configuration of the authorization device 300 is the same as the configuration of the CPU device 100 of FIG.
  • the authorization device 300 includes a processor 310, a main storage device 320, an auxiliary storage device 330, and a communication interface device 340 as hardware.
  • the processor 310 is connected to the main storage device 320, the auxiliary storage device 330, and the communication interface device 340 by the bus 350.
  • the authority device 300 includes a granting unit 311 as a functional element and a communication unit 312 that controls communication between the authority device 300 and the CPU device 100.
  • the processor 310 reads and executes the program 301 from the main storage device 320.
  • the program 301 is a program that realizes the granting unit 311 and the communication unit 312.
  • the program 301 is stored in the auxiliary storage device 330.
  • the communication unit 312 receives request information requesting the authorization to manage the peripheral device 200 from the CPU device 100 that has failed to read the data to the peripheral device 200 whose data is read from the reading unit 111 of each CPU device 100.
  • the granting unit 311 grants the authority to the CPU device 100 requesting the granting of the authority only when the other CPU device 100 is not authorized, and the error detecting unit 112 which is a coping unit
  • the handling of the peripheral device 200 by the above is permitted based on the authority.
  • FIG. 12 is a state transition diagram of the granting unit 311 that grants the CPU device 100 the authority for diagnostic processing of the I / O device 200 in which the error is detected.
  • the initial state of the granting unit 311 is a “manageable state”. This authority corresponds to the first authority of the management device.
  • the “manageable state” means a state in which the authority for diagnostic processing of the I / O device 200 can be granted to the CPU device 100.
  • the granting unit 311 responds to the CPU device 100 with the management permission and transitions to the "unmanageable state". .. This is transition 351.
  • the “unmanageable state” means a state in which the authority for diagnostic processing of the I / O device 200 cannot be granted to the CPU device 100.
  • the granting unit 311 responds to the CPU device 100 with a disapproval. This is transition 352. Further, if there is a notification from the CPU device 100 to return the management authority, the granting unit 311 transitions to the manageable state. This is transition 353.
  • the state transition of the granting unit 311 is provided for the purpose of allowing only one CPU device 100 on a first-come, first-served basis to perform the diagnostic processing of the I / O device 200. Therefore, management authority may be provided for each I / O device 200. That is, the authority shown in FIG. 12 may be provided for each I / O device 200.
  • FIG. 13 is a flowchart of the error detection unit 112 of the CPU device 100. If the reading of the I / O device 200 fails, the error detection unit 112 of the CPU device 100 requests the granting unit 311 of the authority device 300 to have the management authority of the I / O device 200 in which the error has occurred. Hereinafter, a specific description will be given.
  • the error detection unit 112 determines whether the reading unit 111 has succeeded in reading the I / O device 200. If successful, the process ends. If the reading unit 111 fails to read the peripheral device, the process proceeds to S52. In step S52, the error detection unit 112 of the CPU device 100 attempts to acquire the management authority of the I / O device 200 to the authority device 300.
  • the error detection unit 112 requests the granting unit 11 to grant management authority.
  • the process proceeds to S53. If the error detection unit 112 is not granted management authority by the granting unit 311, the process ends.
  • the error detection unit 112 executes an error handling method for the peripheral device in which the error has occurred, based on the acquired management authority.
  • the management authority corresponds to the first authority.
  • FIG. 14 shows the operation of the controller 10 of the fourth embodiment.
  • the operation of the controller 10 will be described with reference to FIG. Since steps S61 to S63 are the same as steps S21 to S23, the description thereof will be omitted.
  • step S64 in the CPU device # 2, the error detection unit 112 detects the reading failure of the reading unit 111. The error detection unit 112 requests the granting unit 311 of the authority device 300 to acquire the management authority.
  • step S65 since the initial state of the granting unit 311 is a manageable state, the error detection unit 112 of the CPU device # 2 acquires the management authority from the granting unit 311.
  • step S66 since the error detection unit 112 of the CPU device # 2 has acquired the management authority, the error handling method is executed in the I / O device # 1.
  • CPU device # 3 also executes the control program 121 in parallel. Therefore, in step S67, the read unit 111 of the CPU device # 3 reads out to the I / O device # 1 during the execution of the error handling method for the I / O device # 1 by the CPU device # 2 in step S66. Try. Attempts to CPU device # 3 fail.
  • step S68 in the CPU device # 3, the error detection unit 112 detects the reading failure of the reading unit 111, and requests the granting unit 311 to acquire the management authority. However, since the granting unit 311 is in an unmanageable state, the error detecting unit 112 of the CPU device # 3 fails to acquire the management authority, and does not execute the error handling method of the I / O device # 1.
  • all CPU devices have error handling methods for all peripheral devices. That is, all the CPU devices can be the management devices of the first to third embodiments for any peripheral device.
  • the management device error notification 601 used in the first to third embodiments is unnecessary. Further, a plurality of CPU devices do not become management devices at the same time for one peripheral device. Therefore, according to the fourth embodiment, it is possible to quickly respond to the error of the peripheral device 200, and it is possible to eliminate the redundancy that a plurality of CPU devices deal with the error in the same peripheral device.
  • FIG. 15 shows a configuration in which the reading unit 111, the error detecting unit 112, and the communication unit 113 are realized by hardware.
  • the electronic circuit 90 of FIG. 15 is a dedicated electronic circuit that realizes the functions of the reading unit 111, the error detecting unit 112, the communication unit 113, the main storage device 120, the auxiliary storage device 130, and the communication interface device 140.
  • the electronic circuit 90 is connected to the signal line 91.
  • the electronic circuit 90 is a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA, an ASIC, or an FPGA.
  • GA is an abbreviation for Gate Array.
  • ASIC is an abbreviation for Application Special Integrated Circuit.
  • FPGA is an abbreviation for Field-Programmable Gate Array.
  • the functions of the components of the CPU device 100 may be realized by one electronic circuit, or may be distributed and realized by a plurality of electronic circuits. Further, some functions of the components of the CPU device 100 may be realized by an electronic circuit, and the remaining functions may be realized by software.
  • Each of the processor 110 and the electronic circuit 90 is also called a processing circuit.
  • the functions of the reading unit 111, the error detecting unit 112, the communication unit 113, the main storage device 120, the auxiliary storage device 130, and the communication interface device 140 may be realized by the processing circuit.
  • the control program 121 that realizes the functions of the reading unit 111, the error detecting unit 112, and the communication unit 113 may be stored in a computer-readable recording medium and provided, or may be provided as a program product.
  • the above hardware supplement for the CPU device 100 also applies to the I / O device 200 and the authority device 300. That is, the program 201 that realizes the function of the I / O device 200 and the program 301 that realizes the authority device 300 may be stored in a computer-readable recording medium and provided, or may be provided as a program product. .. Further, the function of the I / O device 200 and the function of the authority device 300 may be realized by the processing circuit.
  • the operation procedure of the CPU device 100 described above corresponds to a processing method.
  • the program that realizes the operation of the CPU device 100 corresponds to the control program 121.
  • the operation procedure of the I / O device 200 corresponds to the method performed by the I / O device 200.
  • the program that realizes the operation of the I / O device 200 corresponds to the program 201.
  • the operation procedure of the authorization device 300 corresponds to the method performed by the authorization device 300.
  • the program that realizes the operation of the authorization device 300 corresponds to the program 301.
  • the embodiments are examples of preferred embodiments and are not intended to limit the technical scope of the present invention.
  • the embodiment may be partially implemented or may be implemented in combination with other embodiments.
  • the procedure described with reference to the flowchart may be changed as appropriate.
  • 10 controller 100 CPU device, 101 program, 110 processor, 111 read unit, 112 error detection unit, 113 communication unit, 120 main memory device, 121 control program, 122 error processing information, 130 auxiliary storage device, 140 communication interface device, 200 peripheral devices, 201 programs, 210 processors, 211 response units, 212 broadcast transmitters, 220 main storage devices, 230 auxiliary storage devices, 240 communication interface devices, 250 external input / output devices, 300 authority devices, 301 programs, 310 processors.

Abstract

コントローラ(10)では、CPU装置#1は周辺装置#1を管理する第1権限を持ち、周辺装置#1の管理装置である。CPU装置#2及びCPU装置#3は、周辺装置#1について、第1権限よりも下位の第2権限を持つ一般装置である。一般装置は、周辺装置#1からデータ読み出しが失敗したとき、周辺装置#1の診断を第2権限に基づき実行する。周辺装置#1の管理装置であるCPU装置#1は、一般装置による診断を契機として、周辺装置#1のエラーを示すエラー通知を受信する。管理装置のCPU装置#1はエラー通知を受信したときに、周辺装置#1のエラーに、第1権限に基づき対処する。

Description

コントローラ
 この発明は、コントローラに関する。
 工場及び発電所のような設備、あるいは列車のような交通機関で使用される組み込みシステムでは、コントローラで制御を実現している。コントローラの実現形態は様々である。例えば、格納された制御プログラムを周期的に実行するセントラル・プロセッシング・ユニット装置(以下、CPU装置)と、I/O(Input/Output)装置あるいはネットワーク接続に使用される通信装置を有する周辺装置とが組み合わされ、CPU装置とI/O装置とがバスで接続されて、CPU装置とI/O装置とが連携動作するコントローラが一般的である。
コントローラとは例えば、PLC(Programmable Logic Controller)である。
 システムを高性能化するためコントローラによる制御を高速化する手段として、コントローラに複数のCPU装置を設けるマルチCPU構成がある。マルチCPU構成では、各CPU装置の実行する制御プログラムは、CPU装置ごとに設計される。さらに、各CPU装置が使用する周辺装置も各々設けられる。これらにより、各CPU装置の制御プログラムの結合度が低くされ、コントローラの高速化が実現される。マルチCPU構成において、ある周辺装置を制御するCPU装置は、管理装置と呼ばれる。CPU装置は、CU装置自身が複数の周辺装置の管理装置となる。周辺装置の観点では、いずれか1台のCPU装置のみが、管理装置となる。
 マルチCPU構成のコントローラにおける障害管理では、周辺装置にエラーが発生した場合に備えて、周辺装置の管理装置であるCPU装置が、エラー対処方法を持つ。従って、周辺装置にエラーが発生すると、管理装置がエラーを検出し、診断、及び必要な対処を行っていた。「診断」とは、例えば、管理装置が、エラーの発生した周辺装置からエラーコードを読み出し、エラー内容を解釈する処理である。「必要な処理」とは、例えば、コントローラとしての全機能の停止または部分停止である。あるいは「必要な処理」とは、コントローラとしての機能を停止せず、エラーの発生していない周辺装置の制御を継続して、エラーの発生した周辺装置に対するリセットのような復旧処理である。
 近年、OpenMPといった並列化技術が、注目されている。OpenMPの並列化技術は、一つの制御プログラムを自動的に分割し並列に実行する。これにより、OpenMPは、コントローラによる制御の高速化を図る。OpenMPのような並列化技術が従来型のマルチCPU構成のコントローラに適用される場合、各CPU装置が実行する制御プログラムの結合度が高くなることが想定される。この理由は、分割される元の制御プログラムは、一台のCPU装置が実行するよう設計されているからである。結合度が高い制御プログラムでは、ある周辺装置に入力される入力情報を、管理装置であるかどうかに関わらず、複数のCPU装置が読み出し、読み出された入力情報を契機として、複数のCPU装置が一斉に並列実行を行うという処理が想定される。
 なお、複数のCPU装置による一斉の並列実行の場合であっても、周辺装置に対する書き込みについては、いずれか1つのCPU装置、すなわち管理装置のみ行うことが一般的である。この理由は次のようである。複数のCPU装置が、周辺装置へ書き込みをできる場合、書き込みのタイミング如何によっては、いずれかのCPU装置が書き込んだ指令が実行されないまま、別のCPU装置がその指令を上書きする可能性があるためである。
 制御プログラムが分割された結合度が高い制御プログラムが、マルチCPU構成のコントローラで並列実行される環境下における障害管理では、以下の必要がある。すなわち、周辺装置にエラーが発生した場合、管理装置がエラーを検出した後に、管理装置は、周辺装置を診断し、必要な対処を決定し、その後、他のCPU装置に決定結果を通知する必要がある。このような場合、管理装置以外のCPU装置は、エラー対処方法を持たない。このため、管理装置以外のCPU装置は、周辺装置のエラーによって読み出しに失敗しても、例えば1周期前の情報を使用して制御を継続し、管理装置からの何らかの通知を待つ。従って、管理装置が周辺装置の読み出しに成功した直後に周辺装置にエラーが発生する場合は、管理装置は、次の周期の読み出しに失敗によってエラーを検出するので、周辺装置のエラーの検出に時間を要するという課題がある。
 周辺装置のエラー発生からエラーを検出するまでの時間が長くなるという課題に関係する先行技術として、特許文献1がある。
 特許文献1では、CPU装置が主局・従局の二重系で構成されており、また、管理される周辺装置をも含めて相互に通信する手段が設けられている。
 特許文献1では、主局と周辺装置との間で読み出しの失敗といった通信障害が発生した場合、従局が代替して周辺装置の読み出しを試行し、周辺装置のエラー状況を判定する。従局の処理により、エラー検出とエラー内容の特定とを迅速に行うと述べている。
 しかし、特許文献1の技術を、結合度が高い制御プログラムをマルチCPU構成で並列実行する場合に適用しても、主局が読み出しに成功した直後にエラーが発生した場合は、主局が次の周期で読み出しに失敗し、さらに従局での読み出しを試行してエラー状況を判定する。よって、特許文献1では、周辺装置にエラーが発生してから、エラーを検出するまでに時間を要するという課題の解決には至っていない。
特開平09-093308号公報
 本発明は、マルチCPU構成のコントローラにおいて、複数のCPU装置が、並列化技術で分割された比較的結合度が高い制御プログラムを並列実行する際に、周辺装置にエラー発生がしてから、管理装置であるCPU装置が周辺装置のエラーを検出するまでの時間を、短縮することを目的とする。
 この発明のコントローラは、
 複数のセントラル・プロセッシング・ユニット装置と、
 複数のセントラル・プロセッシング・ユニット装置からデータが読み出される周辺装置と、
を備える。
 前記複数のセントラル・プロセッシング・ユニット装置は、
 前記周辺装置を管理する第1権限を持つセントラル・プロセッシング・ユニット装置である管理装置と、エラーが発生した前記周辺装置の前記エラーを診断する権限であって、前記第1権限よりも下位の権限である第2権限を持つセントラル・プロセッシング・ユニット装置である一般装置とを含み、
 前記一般装置は、
 前記周辺装置からデータを読み出す読み出し部と、
 前記周辺装置からのデータ読み出しが失敗したときに、前記周辺装置の診断を前記第2権限に基づいて実行する診断部と、
 を備え、
 前記管理装置は、
 前記診断を契機として、前記周辺装置のエラーを示すエラー通知を受信する通信部と、
 前記エラー通知を受信したときに、前記周辺装置のエラーに前記第1権限に基づき対処する対処部と、
を備える。
 本発明では、管理装置は、一般装置による診断を契機として、周辺装置のエラーを示すエラー通知を受信する。よって、本発明によれば、複数のCPU装置が、並列化技術で分割された比較的結合度が高い制御プログラムを並列実行する際に、周辺装置にエラー発生がしてから、管理装置であるCPU装置が周辺装置のエラーを検出するまでの時間を、短縮できる。
実施の形態1の図で、コントローラのハードウェア構成を示す図。 実施の形態1の図で、CPU装置のハードウェア構成を示す図。 実施の形態1の図で、I/O装置のハードウェア構成を示す図。 実施の形態1の図で、エラー検出情報を示す図。 実施の形態1の図で、エラー検出部の動作を示すフローチャート。 実施の形態1の図で、コントローラの動作を示す図。 実施の形態2の図で、I/O装置のハードウェア構成を示す図。 実施の形態2の図で、コントローラの動作を示す図。 実施の形態3の図で、コントローラの動作を示す図。 実施の形態4の図で、コントローラのハードウェア構成を示す図。 実施の形態4の図で、権限装置のハードウェア構成を示す図。 実施の形態4の図で、付与部311の状態遷移を示す図。 実施の形態4の図で、エラー検出部の動作を示すフローチャート。 実施の形態4の図で、コントローラの動作を示す図。 実施の形態4の図で、CPU装置100のハードウェア構成を補足する図。
 以降、本発明を実施するための形態について、図を用いて説明する。実施の形態で使用する用語を説明しておく。以下の実施の形態では複数のCPU装置が登場する。以下の説明において複数のCPU装置は、管理装置と一般装置とを含む。
(1)管理装置とは、周辺装置を管理する第1権限を持つCPU装置である。
(2)一般装置とは、エラーが発生した周辺装置のエラーを診断する権限であって、第1権限よりも下位の権限である第2権限を持つCPU装置である。
 例えば、第1権限は周辺装置への書き込みが認められる権限である。第2権限は周辺装置への書き込みはできない権限であり、周辺装置からエラーコードの読み出しが認められる権限である。
 実施の形態1.
図1~図6を参照して実施の形態1のコントローラ10を説明する。実施の形態1のコントローラでは、元になる制御プログラムから分割された制御プログラム121を各CPU装置が並列実行する際に、周辺装置のエラーを検出したCPU装置100は、他のCPU装置100に対してエラーを通知する。これにより管理装置は、迅速に周辺装置のエラー発生を知ることができる。以下に図を参照してコントローラ10を説明する。
***構成の説明***
 図1は、実施の形態1のコントローラ10のハードウェア構成を示す。コントローラ10は、複数のCPU装置100と、複数のCPU装置100からデータが読み出される周辺装置200と、を備える。コントローラ10では、後述する制御プログラムを格納した複数のCPU装置100と、複数の周辺装置とが、バス400を介して接続されている。CPU装置とは、格納している制御プログラムを周期的に実行する装置である。周辺装置とは、CPU装置とは異なる装置との通信により、データの入出力をおこなう装置である。図1では、3台のCPU装置100が、識別子である#1、#2及び#3で識別されている。以下、CPU装置100をCPU装置#1のように表記する場合がある。図1では、2台の周辺装置200が、識別子である#1及び#2で識別されている。
 以下、周辺装置200を周辺装置#1のように表記する場合がある。周辺装置200はI/O装置200を想定する。図1よりも後の説明では、I/O装置をI/O装置200と表記する場合もある。
 図1では周辺装置#1にCPU#1と表記されており、周辺装置#2にCPU#2と表記されている。これは、周辺装置#1の管理装置がCPU装置#1であり、周辺装置#2の管理装置が、CPU装置#2であることを示している。周辺装置と管理装置との対応は、後述のエラー処理情報122によって定義されている。
 図2は、CPU装置100のハードウェア構成を示す。CPU装置100は、ハードウェアとして、プロセッサ110、主記憶装置120、補助記憶装置130、及び通信インタフェース装置140を備える。プロセッサ110は、バス150で、主記憶装置120、補助記憶装置130及び通信インタフェース装置140と接続されている。
 主記憶装置120は、プロセッサ110が実行する制御プログラム121及びエラー処理情報122を格納している。
 補助記憶装置130は、主記憶装置120に格納される情報及びデータを不揮発的に格納している。プロセッサ110は、補助記憶装置130から、制御プログラム121及びエラー処理情報122を主記憶装置120へロードし、ロードされた制御プログラム121及びエラー処理情報122を、主記憶装置120から読み出して実行する。
 通信インタフェース装置140は、プロセッサ110、主記憶装置120及び補助記憶装置130のうちのいずれか2つのハードウェアどうし通信、CPU装置100どうしの通信、またはCPU装置100と周辺装置200との通信に使用される。
 CPU装置100は、機能要素として、読み出し部111、エラー検出部112及び通信部113を備える。読み出し部111、エラー検出部112及び通信部113の機能は、制御プログラム121により実現される。読み出し部111は、周辺装置200からデータを読み出す。CPU装置100が一般装置のとき、エラー検出部112は診断部である。診断部であるエラー検出部112は、周辺装置200からのデータ読み出しが失敗したときに、周辺装置200の診断を第2権限に基づいて実行する。
 プロセッサ110は、制御プログラム121を実行する装置である。プロセッサ110は、演算処理を行うIC(Integrated Circuit)である。プロセッサ110の具体例は、CPU(Central ProceSSing Unit)、DSP(Digital Signal ProceSSor)、GPU(GraphicS ProceSSing Unit)である。
 図3は、I/O装置200のハードウェア構成を示す。I/O装置は、ハードウェアとして、プロセッサ210、主記憶装置220、補助記憶装置230、通信インタフェース装置240及び外部入出力装置250を備える。プロセッサ210は、バス260で、主記憶装置220、補助記憶装置230、通信インタフェース装置240及び外部入出力装置250と接続されている。
 プロセッサ210は、外部入出力装置250の状態に応じた簡易な演算及び自己診断の結果に基づくエラーコードの生成のような処理を行う。主記憶装置220及び補助記憶装置230には、プロセッサ210が実行する自己診断の結果と、エラーコードとが格納される。通信インタフェース装置240は、プロセッサ210、主記憶装置220、補助記憶装置230及び外部入出力装置250のうちのいずれか2つのハードウェアどうしの通信、及び周辺装置200とCPU装置100との通信に使用される。外部入出力装置250は、CPU装置100とは異なる外部の装置からデータを取り込み、及びその外部の装置へデータを出力する。
 I/O装置200は、機能要素として、応答部211を備える。応答部211は、CPU装置100からデータ読み出しの要求があるとき、外部入出力装置250と連携して、要求されたデータをCPU装置100へ通信インタフェース装置240を介して送信する。応答部211の機能は、プログラム201により実現される。プログラム201は補助記憶装置230に格納されている。プロセッサ210は補助記憶装置230から主記憶装置220プログラム201をロードし、主記憶装置220からプログラム201を読み出す。
 プロセッサ210は、プログラム201を実行する装置である。プロセッサ210の具体例は、プロセッサ110と同様である。
 図4は、エラー処理情報122を示す。エラー処理情報122は補助記憶装置130に格納されている。プロセッサ110は、エラー処理情報122を補助記憶装置130から主記憶装置120へロードし、主記憶装置120からエラー処理情報122を参照する。エラー処理情報122は、コントローラ10のシステム構成に応じて、管理者によって予め定義される。定義されたエラー処理情報122は、補助記憶装置130に格納される。図4のエラー処理情報122では、左の列に、コントローラ10の有する周辺装置が定義されている。中央の列に、簡易診断処理の内容が定義されている。「簡易診断処理の内容」とは、周辺装置にエラーが発生した場合に、そのエラーを検出したCPU装置100が行うべき処理の内容である。右の列に、周辺装置の管理装置となるべきCPU装置100が定義されている。
 I/O装置#1のレコードを説明する。このレコードを第1レコードと表記する。第1レコードでは、I/O装置#1の管理装置がCPU装置#1である。以下の(1)から(3)は、第1レコードの簡易診断処理の内容を示す。
(1)エラーコードの読み出し。
(2)エラーコードの内容がaaである場合には、CPU装置100は管理装置であるCPU装置#1に、割込みを伴うエラー通知を送信する。エラーコードの「aa」は、ある特定のエラーコードを意味する。
(3)読み出されたエラーコードが「aa」以外の場合には、CPU装置100は、管理装置であるCPU装置#1にエラー通知を送信せず、処理を継続する。
 I/O装置#2のレコードを説明する。このレコードを第2レコードと表記する。第2レコードでは、I/O装置#2の管理装置がCPU装置#2である。以下の(1)から(3)は、第2レコードの簡易診断処理の内容を示す。
(1)エラーコードの読み出し。
(2)エラーコードの内容がbbである場合には、CPU装置100は、すべてのCPU装置100に、割込みを伴うエラー通知を送信する。「bb」とは、「aa」と異なる、ある特定のエラーコードを意味する。
(3)読み出されたエラーコードが「bb」以外の場合には、CPU装置100は、エラー通知を送信せず、処理を継続する。
***動作の説明***
 図5は、エラー検出部112の動作を示すフローチャートである。
 図6は、実施の形態1のコントローラ10の動作を示す。図6の枠711,712,713,714,715,716で示すイベントは、周期的でない処理を示している。後述する図8の枠721,722,723,724,725で示すイベント、図9の枠731,732,733,734,735,736,737,738,739で示すイベント、及び図14の枠741,742,743,744,745,746で示すイベントも、周期的でない処理を示している。
 図5及び図6を参照して、コントローラ10の動作を説明する。以下の説明では、図1において、I/O装置#1にエラーが発生した場合を想定し、コントローラ10の動作を説明する。
 図5を説明する。読み出し部111が、I/O装置#1に、データの読み出しを実行する。
 ステップS11において、エラー検出部112が、読み出し部111のデータ読み出しが成功したかどうかを判定する。成功の場合、処理は終了し、失敗の場合、処理はステップS12に進む。
 ステップS12において、エラー検出部112は、自身のCPU装置が、I/O装置#1の管理装置かどうかを、エラー処理情報122を参照して判定する。管理装置の場合、処理はステップS13に進み、管理装置でない場合、処理はステップS14に進む。
 ステップS13において、管理装置のエラー検出部112は、予め設定されているエラー対処方法を実行する。
 ステップS14において、一般装置のエラー検出部112は、エラー処理情報122の「簡易診断処理」を参照して、I/O装置#1に簡易診断処理を実行する。
<事前設定>
 CPU装置100に格納する制御プログラム121の設計者は、予めI/O装置のエラーによる、コントローラ10が使用されるシステムへの影響を考慮して、ステップS13で述べた、管理装置が行うべきエラー対処方法を決定しておく。また、制御プログラム121の設計者は、エラー処理情報122の内容を予め定義し、各CPU装置100の補助記憶装置130に設定しておく。システムが稼働した後、各CPU装置100のエラー検出部112は、図5の処理を周期的に実行する。図5のステップS14の簡易診断処理の内容は、図4のエラー処理情報122の「簡易診断処理」である。ステップS14の簡易診断処理は、一般装置のCPU装置100に許容される第2権限の範囲内で可能な、簡易な処理である。
 ステップS14の簡易診断処理は、例えば、エラーコードの読み出しである。なお、簡易診断処理を実行する制御プログラム121は、「マルチCPU構成を前提としたCPU装置毎の設計」ではない。制御プログラム121は以下のような想定である。制御プログラム121のもとになる制御プログラムは、並列化技術を用いて分割される。制御プログラム121は、このもとになる制御プログラムが分割されたプログラムである。もとの制御プログラムから分割された制御プログラム121が、各CPU装置100に格納され、各CPU装置100が、制御プログラム121を並列実行する。このように、制御プログラム121は、比較的、結合度が高いことを想定している。
 図6を参照してコントローラ10の動作を説明する。
 ステップS21において、CPU装置#1の読み出し部111が、I/O装置#1の外部入出力装置250の読み出しに成功する。
 ステップS22において、CPU装置#1による読み出しに成功の直後に、I/O装置#1にエラーが発生する。エラー発生以前では、CPU装置#1、CPU装置#2及びCPU装置#3は、I/O装置#1の外部入出力装置250に入力される入力情報を順番に参照する。この状態では、CPU装置#1、CPU装置#2及びCPU装置#3は、それぞれの有する制御プログラム121を並列に実行している。
 ステップS23において、エラー発生後に、CPU装置#2の読み出し部111が、I/O装置#1の入力情報を参照する。I/O装置#1にはエラーが発生しているので、CPU装置#2の読み出し部111は読み出しに失敗する。CPU装置#2のエラー検出部112は、読み出し部111の読み出しの失敗を検出する。エラー処理情報122に示すように、CPU装置#2はI/O装置#1の管理装置ではない。
 ステップS24において、一般装置であるCPU装置#2のエラー検出部112は、簡易診断処理による診断の実行として、周辺装置200であるI/O装置#1からエラーコードの読み出しを実行し、エラーコードを読み出したときに、エラー通知を管理装置であるCPU装置#1に送信する。具体的には以下のようである。CPU装置#2では、診断部であるエラー検出部112は、I/O装置#1の読み出しの失敗を検出すると、図5のフローチャートに示すように、エラー処理情報122に従って、I/O装置#1に対する簡易診断処理を実行する。ステップS24では、エラー検出部112は、I/O装置#1から、エラーコード「aa」を取得したとする。
 ステップS25において、エラーコードが「aa」であるので、CPU装置#2のエラー検出部112は、I/O装置#1の管理装置であるCPU装置#1に、エラーの発生を知らせるエラー通知601を送信する。通信部113は、一般装置であるCPU装置#2による簡易診断処理による診断を契機として、周辺装置200であるI/O装置#1のエラーを示すエラー通知601を受信する。
 CPU装置100が管理装置のとき、エラー検出部112は対処部である。対処部であるエラー検出部112は、エラー通知601を受信したときに、周辺装置200のエラーに第1権限に基づき対処する。具体的には以下のようである。
 ステップS26において、管理装置であるCPU装置#1では、エラー通知601の受信を契機として、制御プログラム121の実行中に割り込みが発生し、CPU装置#1のエラー検出部112は、I/O装置#1のエラー対処方法を最優先で実行する。管理装置によるエラー対処方法は、周辺装置の諸元あるいはエラー内容によって様々である。図6では、管理装置であるCPU装置#1は、I/O装置#1のエラーコード内容を確認した上で、対処方法を決定する。
 ステップS27において、管理装置であるCPU装置#1のエラー検出部112は、エラー対処方法として、システムを停止すべきと判断し、他のすべてのCPU装置に、エラーを通知する通知であり割り込みを伴う通知である管理通知602を送信する。CPU装置#1のエラー検出部112は、管理通知602によって、他のすべてのCPU装置に、制御プログラム121の実行を停止させる。CPU装置#1のエラー検出部112は、エラーの発生したI/O装置#1に、リセット処理を実行して復旧を試みる。
 なお、エラー通知601は、エラーコードの内容によって、制御プログラム121に対する割り込みを伴っても良いし、割り込みを伴わなくても良い。エラー検出部112は、エラーコードの内容によって、割り込みを伴うかどうかを決めることができる。
 図4のエラー処理情報122に定義されているエラー通知601は、管理装置のみ送信するのではなく、第2のレコードに定義されているように、すべてのCPU装置に同報送信しても良い。また、エラー検出部112が簡易診断処理において、エラーコードの読み出しに失敗するような重篤なエラーの場合では、この同報送信は、すべてのCPU装置に対して、制御プログラム121の実行を停止する割り込みを伴う内容でも良い。
***実施の形態1の効果***
コントローラ10では、すべてのCPU装置100がエラー処理情報122を有している。エラー処理情報122には、一般装置に許容される第2権限の範囲内で実行の可能な簡易診断処理が定義されている。簡易診断処理によりエラー通知601が管理装置に送信される。
 よって一般装置のCPU装置100が、エラー処理情報122に基づく簡易診断処理を行うことで、周辺装置がエラー発生した際に、管理装置は次の周読み出し周期を待つことなく、周辺装置のエラーを知ることができる。
 したがって、複数のCPU装置が、並列化技術で分割された比較的結合度が高い制御プログラムを並列実行する際に、周辺装置にエラー発生がしてから、管理装置であるCPU装置が周辺装置のエラーを検出するまでの時間を、短縮できる。
 実施の形態2.
 図7及び図8を参照して、実施の形態2を説明する。
 図7は、実施の形態2のI/O装置の構成を示す。
 図8は、実施の形態2のコントローラ10の動作を示す。図7のI/O装置200は、図3のI/O装置200と比較すると、機能要素として同報送信部212を備えている。CPU装置100の構成は実施の形態1の図2と同じである。またコントローラ10の構成は図1と同じである。
 実施の形態1では、図4のエラー処理情報122及び図5のステップS14に示すように、一般装置であるCPU装置100は、周辺装置200からエラーコードを読み出した後、エラー対処方法を持つ管理装置に、エラー通知601を送信する必要があった。これに対して実施の形態2では、I/O装置200の同報送信部212が、エラー通知601を各CPU装置100に送信する。
***動作の説明***
 図8を参照して、コントローラ10の動作を説明する。図8のステップS31からステップS34は、図6のステップS31からステップS34と、同一である。なお、CPU装置#1,CPU装置#2及びCPU装置#3は、図5の処理を実行する。
 実施の形態2では、一般装置からエラーコード読出し要求が行われたI/O装置200の同報送信部212は、エラーコード読出しの要求元の一般装置だけでなく、すべてのCPU装置100に、エラーコードの読み出し結果を、同報送信する。
 ステップS31において、CPU装置#1の読み出し部111が、I/O装置#1の外部入出力装置250の読み出しに成功する。
 ステップS32において、CPU装置#1による読み出しに成功の直後に、I/O装置#1にエラーが発生する。
 ステップS33において、エラー発生後に、一般装置であるCPU装置#2の読み出し部111が、I/O装置#1の読み出しとして、I/O装置#1の入力情報を参照する。
 ステップS34において、CPU装置#2のエラー検出部112は、読み出し部111による読み出しの失敗を検出し、エラー処理情報122の定義に従って、簡易診断処理を実行する。エラー処理情報122に従って、CPU装置#2のエラー検出部112は、I/O装置#1にエラーコード読み出し要求を送信する。
 ステップS35において、周辺装置であるI/O装置#1の同報送信部212は、一般装置によって簡易診断処理による診断が実行されたときに、エラー通知601を、複数のCPU装置100に同報送信する。I/O装置#1の同報送信部212は、エラーコード読み出し要求を受信すると、すべてのCPU装置100に、エラー通知601に相当するエラーコードの読み出し結果を、通信インタフェース装置240を介して同報送信する。このとき、I/O装置#1の同報送信部212は、自身のエラー状況に応じて、同報送信するCPU装置100を限定しても良いし、管理装置であるCPU装置#1に、直接、エラー通知601を送信しても良い。エラー通知601が、割り込みを伴っても良い。
***実施の形態2の効果***
 実施の形態2のコントローラ10ではI/O装置が、エラーコードの読み出し結果を、エラー通知601として、すべてのCPU装置に同報送信する。よって、I/O装置が応答可能な状況では、管理装置は一般装置からエラー通知601を待つことなく、I/O装置からエラー通知を受信できるので、実施の形態1に対して、更に、管理装置のエラー検出時間を短縮できる。
 実施の形態3.
 図9を参照して実施の形態3のコントローラ10を説明する。実施の形態3のコントローラ10の構成は、実施の形態1のコントローラ10と同一である。実施の形態3では管理装置が、一般装置の送信するエラー通知601の示す内容を集約する。管理装置は、集約結果に基づき、エラーの発生したI/O装置に、エラー対処方法を実行する。
 I/O装置200のエラーによっては、初期の軽微なエラーが、エラーの波及によって、重大にエラーになることがあり、エラー状況は遷移する場合がある。実施の形態3のコントローラ10は、エラー状況が遷移しても、早期に、かつ、適切にエラー遷移に対処できる。
 実施の形態3では、図4のエラー処理情報122におけるエラーコードは、aa1,aa2,aa3,aa4のように、複数のエラーコードが定義されているとする。CPU装置100のエラー検出部112は、I/O装置200のエラーを検出すると、エラーコードを含めて、エラー通知601を管理装置に送信する。
 各CPU装置100のエラー検出部112は、他のCPU装置100からエラー通知601を受信した場合及び管理装置から管理通知602を受信した場合であっても、エラー処理情報122で定義されている簡易診断処理を実行する。簡易診断処理の結果、各CPU装置100のエラー検出部112は、管理装置に、エラーコードを含むエラー通知601を送信する。管理装置は、すべてのCPU装置100からエラー通知601を受信する。例えば、管理装置は、エラー通知601の中で最も重篤であるエラーコードに基づいてエラーに対処しても良いし、あるいは最新のエラー通知601に含まれるエラーコードに基づいて、I/O装置200のエラーに対処しても良い。このように、管理装置は、受信したエラー通知601に含まれるエラーコードの内容を集約する。
 このとき、管理装置のエラー検出部112は、すべてのCPU装置100からエラー通知601を受信するまで待つことなく、自身がエラー対処可能な状態に到達したときに、エラーに対処しても良い。
***動作の説明***
 図9は実施の形態3のコントローラ10の動作を示す。図9を参照して、コントローラ10の動作を説明する。図9のステップS41からステップS44は、図6のステップS21からステップS24と同一である。CPU装置#1,CPU装置#2及びCPU装置#3は、図5の処理を実行する。
 ステップS41において、CPU装置#1の読み出し部111が、I/O装置#1の外部入出力装置250の読み出しに成功する。
 ステップS42において、CPU装置#1による読み出しに成功の直後に、I/O装置#1にエラーが発生する。
 ステップS43において、I/O装置#1にエラー発生後に、一般装置であるCPU装置#2の読み出し部111が、データ読み出しにより、I/O装置#1の入力情報を参照する。
 ステップS44において、CPU装置#2のエラー検出部112は、読み出し部111による読み出しの失敗を検出し、エラー処理情報122に基づき、I/O装置#1に、簡易診断処理を実行する。
 ステップS45において、CPU装置#2のエラー検出部112は、エラーコードを含むエラー通知601を、管理装置であるCPU装置#1に送信する。
 ステップS46において、CPU装置#1のエラー検出部112は、CPU装置#2及びCPU装置#3に、管理通知602を送信する。
 ステップS47において、I/O装置#1のエラーは重篤なエラーに遷移する。
 ステップS48において、CPU装置#3の読み出し部111が、I/O装置#1のデータ読み出しを実行する。I/O装置#1にはエラーが発生しているので、読み出し部111は読み出しに失敗する。
 ステップS49において、CPU装置#3のエラー検出部112は、読み出し部111によるデータ読み出しの失敗を検出し、エラー処理情報122に従って、I/O装置#1に、簡易診断処理を実行する。
 ステップS50において、CPU装置#3のエラー検出部112は、エラーコードを含むエラー通知601を、管理装置であるCPU装置#1に送信する。
 ステップS50aにおいて、管理装置であるCPU装置#1のエラー検出部112は、複数の一般装置からエラー通知601を受信し、受信した複数のエラー通知601に基づいて、周辺装置200のエラーに対処する。具体的には、CPU装置#1のエラー検出部112は、CPU装置#2及びCPU装置#3から受信したエラー通知601のエラーコードの内容を集約し、集約結果に基づいて、I/O装置#1へのエラー対処方法を決定する。
***実施の形態3の効果***
 実施の形態3では、一般装置は、他の一般装置からのエラー通知601の受信及び管理装置からの管理通知602の受信に関わらず、簡易診断処理を実行し、簡易診断処理の結果を管理装置に通知する。管理装置は、すべての一般装置から受け取った簡易診断処理の結果であるエラー通知に基づいて、エラーの発生した周辺装置のエラー対処方法を決定する。よって、管理装置は、時間の経過に伴って変化する周辺装置のエラー状況に、迅速かつ柔軟に対処できる。つまり、管理装置は、時間の経過に伴って生じる周辺装置の重篤なエラーまたは最新のエラーに対処できる。
 実施の形態4.
 図10から図14を参照して実施の形態4を説明する。実施の形態1から実施の形態3では、I/O装置200のエラー発生後の、復旧処理または退避処理のようなI/O装置200へのエラー対処は、I/O装置200への書き込み権限を持つ、管理装置のみが実行できる。このため、管理装置の制御プログラム121の実行状況によっては、I/O装置200へのエラー対処の開始が遅延するおそれがある。また、管理装置はエラー通知601の受信後にエラーに対処するので、このことからも、エラー対処の開始が遅延するおそれがある。
 エラー対処の開始遅延の対策として、単純に、すべてのCPU装置が、すべてのI/O装置200のエラー対処方法を持ち、すべてのCPU装置100が、すべてのI/O装置200のエラー対処方法を、実行できるようにすると、以下の状況が発生する。
 CPU装置#1、CPU装置#2及びI/O装置#1を例に説明する。CPU装置#1及びCPU装置#2は、I/O装置#1の管理装置に相当するとする。CPU装置#1がI/O装置#1の復旧処理を行っている最中に、CPU装置#2がI/O装置#1の読み出しに失敗する。そうするとCPU装置#2は、I/O装置#1の復旧処理を開始するため、CPU装置#1の復旧処理とCPU装置#2の復旧処理とが発生し、処理が冗長になる。
 実施の形態4では、I/O装置200に対するエラー対処の開始を迅速に行うとともに、復旧処理の冗長化をなくすことを目的とする。
 図10は、実施の形態4のコントローラ10のハードウェア構成である。実施の形態4のコントローラ10は、実施の形態1のコントローラ10に対して、さらに、権限装置300を備えている。バス400には、権限装置300が接続している。また、図10のコントローラ10では、すべてのCPU装置100が、I/O装置200のエラー対処方法を持っている。I/O装置200の管理装置は、特に指定されない。後述のように、すべてのCPU装置100が管理装置になり得る。実施の形態4のCPU装置100は、エラー検出部112は診断部と対処部との両方の機能を有する。
 図11は、権限装置300のハードウェア構成を示す。権限装置300のハードウェア構成は図2のCPU装置100の構成と同様である。権限装置300は、ハードウェアとして、プロセッサ310、主記憶装置320、補助記憶装置330、及び通信インタフェース装置340を備える。プロセッサ310は、バス350で、主記憶装置320、補助記憶装置330及び通信インタフェース装置340と接続されている。権限装置300は、機能要素とし付与部311と、権限装置300とCPU装置100との通信を制御する通信部312とを備えている。プロセッサ310は、主記憶装置320から、プログラム301を読み出して実行する。プログラム301は付与部311及び通信部312を実現するプログラムである。プログラム301は補助記憶装置330に記憶されている。通信部312は、各CPU装置100の読み出し部111からデータが読み出される周辺装置200に対するデータ読み出しに失敗したCPU装置100から、周辺装置200を管理する権限の付与を要求する要求情報を受信する。付与部311は、要求情報を受信したときに、他のCPU装置100に権限を与えていない場合に限り、権限の付与を要求するCPU装置100に権限を与え、対処部であるエラー検出部112による周辺装置200への対処を権限に基づき認める。
 図12は、エラーの検出されたI/O装置200の診断処理の権限をCPU装置100に付与する付与部311の状態遷移図である。付与部311の初期状態は「管理可能状態」である。この権限は管理装置の持つ第1権限に相当する。「管理可能状態」とは、I/O装置200の診断処理の権限を、CPU装置100に付与可能な状態を意味する。管理可能状態のときにいずれかのCPU装置100からI/O装置200への管理要求があった場合に、付与部311は管理許可をCPU装置100に応答し、「管理不可状態」に遷移する。これは遷移351である。「管理不可状態」とは、I/O装置200の診断処理の権限を、CPU装置100に付与できない状態を意味する。「管理不可状態」で、いずれかのCPU装置100から管理要求があった場合は、付与部311は、CPU装置100に不許可を応答する。これは遷移352である。また、CPU装置100から管理権限を返却する通知があれば、付与部311は、管理可能状態に遷移する。これは遷移353である。付与部311の状態遷移は、I/O装置200の診断処理を先着の1台のCPU装置100のみが行えることを目的として設けている。よって、I/O装置200ごとの管理権限を設けても良い。つまり、I/O装置200ごとに、図12で示す権限を設けても良い。
 図13は、CPU装置100のエラー検出部112のフローチャートである。I/O装置200の読み出しに失敗した場合は、CPU装置100のエラー検出部112は、権限装置300の付与部311に、エラーの発生したI/O装置200の管理権限を要求する。以下、具体的に説明する。
 ステップS51において、エラー検出部112は、読み出し部111がI/O装置200の読み出しに成功したかを判定する。成功ならば、処理は終了する。読み出し部111が周辺装置の読み出しに失敗した場合、処理はS52に進む。
 ステップS52において、CPU装置100のエラー検出部112は、権限装置300に、I/O装置200の管理権限の獲得を試みる。具体的には、エラー検出部112は、付与部11に管理権限の付与を要求する。エラー検出部112に付与部311から管理権限が付与された場合、処理はS53に進む。エラー検出部112に付与部311から管理権限が付与されない場合、処理は終了する。
 ステップS53において、エラー検出部112は、獲得した管理権限に基づき、エラーの発生した周辺装置のエラー対処方法を実行する。ここで管理権限が第1権限に相当する。
 図14は、実施の形態4のコントローラ10の動作を示す。図14を参照しながらコントローラ10の動作を説明する。ステップS61からステップS63はステップS21からステップS23と同一であるので説明は省略する。ステップS64において、CPU装置#2では、エラー検出部112が読み出し部111の読み出し失敗を検出する。エラー検出部112は、管理権限の獲得を、権限装置300の付与部311に要求する。
 ステップS65において、付与部311の初期状態は管理可能状態であるので、CPU装置#2のエラー検出部112は、付与部311から管理権限を獲得する。
 ステップS66において、CPU装置#2のエラー検出部112は、管理権限を獲得したので、I/O装置#1に、エラー対処方法を実行する。
 CPU装置#3も制御プログラム121を並列に実行している。このため、ステップS67において、CPU装置#3の読み出し部111は、ステップS66におけるCPU装置#2によるI/O装置#1へのエラー対処方法の実行中に、I/O装置#1に読み出しを試みる。CPU装置#3の試み出しは失敗する。
 ステップS68において、CPU装置#3では、エラー検出部112が、読み出し部111の読み出し失敗を検出し、付与部311に対して、管理権限の獲得を要求する。しかし、付与部311は管理不可状態であるので、CPU装置#3のエラー検出部112は、管理権限の獲得に失敗し、I/O装置#1のエラー対処方法は実行しない。
***実施の形態4の効果***
 実施の形態4では、すべてのCPU装置が、すべての周辺装置のエラー対処方法を持つ。つまり、すべてのCPU装置が、どの周辺装置に対しても、実施の形態1から実施の形態3の管理装置になることができる。実施の形態4では実施の形態1から実施の形態3で使用される、管理装置エラー通知601は不要である。また、一台の周辺装置に対して、同時に複数のCPU装置が管理装置になることない。よって、実施の形態4によれば、周辺装置200のエラーに迅速に対応できるとともに、複数のCPU装置が同一の周辺装置にエラー対処するという冗長性を排除することができる。
<ハードウェア構成の補足>
 CPU装置100、I/O装置200及び権限装置300のハードウェア構成を補足しておく。図2のCPU装置#1、図3のI/O装置200、図7のI/O装置200及び図11の権限装置300では、各装置の機能がソフトウェアで実現されるが、各の機能がハードウェアで実現されてもよい。
 以下では、CPU装置100を例に説明する。図2では、読み出し部111、エラー検出部112及び通信部113の機能はプログラムで実現される。しかし、読み出し部111、エラー検出部112及び通信部113の機能は、ハードウェアで実現されても良い。
 図15は、読み出し部111、エラー検出部112及び通信部113がハードウェアで実現される構成を示す。図15の電子回路90は、読み出し部111、エラー検出部112、通信部113、主記憶装置120、補助記憶装置130、通信インタフェース装置140の機能を実現する専用の電子回路である。電子回路90は、信号線91に接続している。
 電子回路90は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。FPGAは、Field-Programmable Gate Arrayの略語である。CPU装置100の構成要素の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。また、CPU装置100の構成要素の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
 プロセッサ110と電子回路90の各々は、プロセッシングサーキットリとも呼ばれる。CPU装置100において、読み出し部111、エラー検出部112、通信部113、主記憶装置120、補助記憶装置130、通信インタフェース装置140の機能が、プロセッシングサーキットリにより実現されてもよい。
 読み出し部111、エラー検出部112及び通信部113の機能を実現する制御プログラム121は、コンピュータ読み取り可能な記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
 以上のCPU装置100についてのハードウェアの補足は、I/O装置200及び権限装置300にも当てはまる。すなわち、I/O装置200の機能を実現するプログラム201及び権限装置300を実現するプログラム301は、コンピュータ読み取り可能な記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。また、I/O装置200の機能及び権限装置300の機能は、プロセッシングサーキットリにより実現されてもよい。
 以上に説明したCPU装置100の動作手順は、処理方法に相当する。CPU装置100の動作を実現するプログラムは、制御プログラム121に相当する。また、I/O装置200の動作手順は、I/O装置200が行う方法に相当する。I/O装置200の動作を実現するプログラムは、プログラム201に相当する。権限装置300の動作手順は、権限装置300が行う方法に相当する。権限装置300の動作を実現するプログラムは、プログラム301に相当する。
 実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャートを用いて説明した手順は、適宜に変更してもよい。
 10 コントローラ、100 CPU装置、101 プログラム、110 プロセッサ、111 読み出し部、112 エラー検出部、113 通信部、120 主記憶装置、121 制御プログラム、122 エラー処理情報、130 補助記憶装置、140 通信インタフェース装置、200 周辺装置、201 プログラム、210 プロセッサ、211 応答部、212 同報送信部、220 主記憶装置、230 補助記憶装置、240 通信インタフェース装置、250 外部入出力装置、300 権限装置、301 プログラム、310 プロセッサ、311 付与部、312 通信部、320 主記憶装置、330 補助記憶装置、340 通信インタフェース装置、351,352,353 遷移、400 バス、601 エラー通知、602 管理通知、711,712,713,714,715,716,721,722,723,724,725,731,732,733,734,735,736,737,738,739,741,742,743,744,745,746 枠。

Claims (5)

  1.  複数のセントラル・プロセッシング・ユニット装置と、
     複数のセントラル・プロセッシング・ユニット装置からデータが読み出される周辺装置と、
    を備えるコントローラにおいて、
     前記複数のセントラル・プロセッシング・ユニット装置は、
     前記周辺装置を管理する第1権限を持つセントラル・プロセッシング・ユニット装置である管理装置と、エラーが発生した前記周辺装置の前記エラーを診断する権限であって、前記第1権限よりも下位の権限である第2権限を持つセントラル・プロセッシング・ユニット装置である一般装置とを含み、
     前記一般装置は、
     前記周辺装置からデータを読み出す読み出し部と、
     前記周辺装置からのデータ読み出しが失敗したときに、前記周辺装置の診断を前記第2権限に基づいて実行する診断部と、
     を備え、
     前記管理装置は、
     前記診断を契機として、前記周辺装置のエラーを示すエラー通知を受信する通信部と、
     前記エラー通知を受信したときに、前記周辺装置のエラーに前記第1権限に基づき対処する対処部と、
    を備えるコントローラ。
  2.  前記一般装置の前記診断部は、
     前記診断の実行として前記周辺装置からエラーコードの読み出しを実行し、前記エラーコードを読み出したときに、前記エラー通知を前記管理装置に送信する請求項1に記載のコントローラ。
  3.  前記周辺装置は、
     前記一般装置によって前記診断が実行されたときに、前記エラー通知を、前記複数のセントラル・プロセッシング・ユニット装置に同報送信する同報送信部を備える請求項1または請求項2に記載のコントローラ。
  4.  前記管理装置の前記対処部は、
     複数の一般装置から前記エラー通知を受信し、受信した複数のエラー通知に基づいて、前記周辺装置のエラーに対処する請求項2に記載のコントローラ。
  5.  読み出し部と、対処部とを有する複数のセントラル・プロセッシング・ユニット装置と、
     前記複数のセントラル・プロセッシング・ユニット装置の各セントラル・プロセッシング・ユニット装置の前記読み出し部からデータが読み出される周辺装置に対するデータ読み出しに失敗した前記セントラル・プロセッシング・ユニット装置から、前記周辺装置を管理する権限の付与を要求する要求情報を受信する通信部と、前記要求情報を受信したときに、他の前記セントラル・プロセッシング・ユニット装置に前記権限を与えていない場合に限り、前記権限の付与を要求する前記セントラル・プロセッシング・ユニット装置に前記権限を与え、前記対処部による前記周辺装置への対処を前記権限に基づき認める付与部とを有する権限装置と、
    を備えるコントローラ。
PCT/JP2019/047960 2019-12-06 2019-12-06 コントローラ WO2021111639A1 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
PCT/JP2019/047960 WO2021111639A1 (ja) 2019-12-06 2019-12-06 コントローラ
JP2021558771A JP7012915B2 (ja) 2019-12-06 2019-12-06 コントローラ
DE112019007853.4T DE112019007853T5 (de) 2019-12-06 2019-12-06 Steuereinrichtung
KR1020227017549A KR20220074993A (ko) 2019-12-06 2019-12-06 콘트롤러
CN201980102700.2A CN114761935A (zh) 2019-12-06 2019-12-06 控制器
TW109111943A TW202122997A (zh) 2019-12-06 2020-04-09 控制器
US17/712,577 US20220222187A1 (en) 2019-12-06 2022-04-04 Controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/047960 WO2021111639A1 (ja) 2019-12-06 2019-12-06 コントローラ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/712,577 Continuation US20220222187A1 (en) 2019-12-06 2022-04-04 Controller

Publications (1)

Publication Number Publication Date
WO2021111639A1 true WO2021111639A1 (ja) 2021-06-10

Family

ID=76221187

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/047960 WO2021111639A1 (ja) 2019-12-06 2019-12-06 コントローラ

Country Status (7)

Country Link
US (1) US20220222187A1 (ja)
JP (1) JP7012915B2 (ja)
KR (1) KR20220074993A (ja)
CN (1) CN114761935A (ja)
DE (1) DE112019007853T5 (ja)
TW (1) TW202122997A (ja)
WO (1) WO2021111639A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7204057B1 (ja) * 2022-03-08 2023-01-13 三菱電機株式会社 プログラマブルロジックコントローラ、cpuユニット、制御方法及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117665726A (zh) * 2022-08-26 2024-03-08 上海禾赛科技有限公司 异常监控系统及方法、装置、处理方法、雷达及监控方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242617A (ja) * 1999-02-18 2000-09-08 Nippon Telegr & Teleph Corp <Ntt> マルチプロセッサ通信機構の故障処理方法
JP2014059685A (ja) * 2012-09-18 2014-04-03 Nec Corp プログラマブルロジックデバイス、情報処理装置、被疑箇所指摘方法およびプログラム
JP2017102633A (ja) * 2015-12-01 2017-06-08 ルネサスエレクトロニクス株式会社 情報処理装置および半導体集積回路装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0993308A (ja) 1995-09-27 1997-04-04 Seiko Instr Inc 注文管理システムにおける通信回線の故障診断システム
JP6264155B2 (ja) * 2014-03-31 2018-01-24 富士通株式会社 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム
US20220358019A1 (en) * 2017-03-10 2022-11-10 Pure Storage, Inc. Initiating Recovery Actions When A Dataset Ceases To Be Synchronously Replicated Across A Set Of Storage Systems
KR102398201B1 (ko) * 2017-06-30 2022-05-17 삼성전자주식회사 프로세서의 개입 없이 단순 작업을 관리하는 스토리지 장치
US10872009B2 (en) * 2018-02-08 2020-12-22 Micron Technology, Inc. Mitigating a voltage condition of a memory cell in a memory sub-system
US10817363B2 (en) * 2018-03-19 2020-10-27 Micron Technology, Inc. Health characteristics of a memory device
DE102018215783A1 (de) * 2018-09-18 2020-03-19 Robert Bosch Gmbh Positionserfassungssystem und Verfahren zur Erfassung einer Bewegung einer Maschine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242617A (ja) * 1999-02-18 2000-09-08 Nippon Telegr & Teleph Corp <Ntt> マルチプロセッサ通信機構の故障処理方法
JP2014059685A (ja) * 2012-09-18 2014-04-03 Nec Corp プログラマブルロジックデバイス、情報処理装置、被疑箇所指摘方法およびプログラム
JP2017102633A (ja) * 2015-12-01 2017-06-08 ルネサスエレクトロニクス株式会社 情報処理装置および半導体集積回路装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7204057B1 (ja) * 2022-03-08 2023-01-13 三菱電機株式会社 プログラマブルロジックコントローラ、cpuユニット、制御方法及びプログラム
WO2023170800A1 (ja) * 2022-03-08 2023-09-14 三菱電機株式会社 プログラマブルロジックコントローラ、cpuユニット、制御方法及びプログラム

Also Published As

Publication number Publication date
US20220222187A1 (en) 2022-07-14
DE112019007853T5 (de) 2022-08-04
JPWO2021111639A1 (ja) 2021-06-10
TW202122997A (zh) 2021-06-16
JP7012915B2 (ja) 2022-01-28
CN114761935A (zh) 2022-07-15
KR20220074993A (ko) 2022-06-03

Similar Documents

Publication Publication Date Title
US8656228B2 (en) Memory error isolation and recovery in a multiprocessor computer system
US10576990B2 (en) Method and device for handling safety critical errors
KR20190079809A (ko) 결함 주입 테스트 장치 및 그 방법
US6820213B1 (en) Fault-tolerant computer system with voter delay buffer
US20220222187A1 (en) Controller
KR101558687B1 (ko) 직렬 통신 테스트 장치, 시스템 및 방법
US7966536B2 (en) Method and apparatus for automatic scan completion in the event of a system checkstop
US20110219458A1 (en) Secure avionics equipment and associated method of making secure
US5438675A (en) Initialization system for input/output processing units
CN110704228B (zh) 一种固态硬盘异常处理方法及系统
CN104346306B (zh) 高完整性dma操作的系统和方法
WO2016033755A1 (zh) 任务处理装置、电子设备及方法
US10318466B2 (en) Method and apparatus for handling outstanding interconnect transactions
US8151028B2 (en) Information processing apparatus and control method thereof
KR101576848B1 (ko) 에러 상태 신호를 출력하기 위한 에러 신호 처리 유닛, 장치 및 방법
US9311212B2 (en) Task based voting for fault-tolerant fail safe computer systems
JP2937857B2 (ja) 共通記憶装置のロックフラグ解除方式および方法
EP3907614A1 (en) Semiconductor device
JPH09160840A (ja) バス通信装置
JP6992295B2 (ja) 電子装置
US9323472B2 (en) Storage controlling device and controlling method
JP3341738B2 (ja) メモリのエラー検出方式
JP2825464B2 (ja) 通信装置
JP2010003268A (ja) スレーブ装置
JPH04266147A (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: 19955210

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021558771

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 20227017549

Country of ref document: KR

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 19955210

Country of ref document: EP

Kind code of ref document: A1