WO2015068285A1 - プログラマブルデバイス及びこれを用いた電子システム装置 - Google Patents

プログラマブルデバイス及びこれを用いた電子システム装置 Download PDF

Info

Publication number
WO2015068285A1
WO2015068285A1 PCT/JP2013/080336 JP2013080336W WO2015068285A1 WO 2015068285 A1 WO2015068285 A1 WO 2015068285A1 JP 2013080336 W JP2013080336 W JP 2013080336W WO 2015068285 A1 WO2015068285 A1 WO 2015068285A1
Authority
WO
WIPO (PCT)
Prior art keywords
error
programmable device
unit
cram
configuration memory
Prior art date
Application number
PCT/JP2013/080336
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 JP2015546247A priority Critical patent/JP6408482B2/ja
Priority to PCT/JP2013/080336 priority patent/WO2015068285A1/ja
Publication of WO2015068285A1 publication Critical patent/WO2015068285A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/0033Radiation hardening
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories

Definitions

  • the present invention relates to a programmable device and an electronic system apparatus using the programmable device.
  • Patent Document 1 Method and architecture for “performing” scrubbing “of” FPGA “s” configuration “memory”.
  • a conventional programmable device is provided with a circuit that divides the data stored in the CRAM into fixed-length data frames and performs an error check while circulating each frame. The user can recover from the soft error state by improving the reliability of the device by performing recovery processing such as reconfiguration of the programmable device or device restart using the CRAM soft error detection signal of this circuit as a trigger. be able to.
  • the entire area of the CRAM is checked in the order of frames. Therefore, when the capacity of the programmable device is increased, the soft error detection time is delayed.
  • the device switching time at the time of abnormality be within tens of milliseconds, so the programmable device mounted on the device detects and corrects an error within the above time. It is desirable to be able to do it.
  • a circuit that detects and corrects a soft error that occurs in a CRAM is described.
  • the scrubbing circuit is mounted on the FPGA as a part of the user logic circuit, and can read CRAM data in fixed-length data units called frames, and can detect errors by CRC and correct errors by ECC.
  • the multi-bit error can be corrected by overwriting the normal data stored in the external ROM on the CRAM again.
  • the scrubbing circuit uses a soft processor inside the FPGA as a component, and can perform error checking of an arbitrary frame in the CRAM according to the instruction code stored in the instruction memory.
  • Patent Document 1 does not consider the error detection time and correction time of the CRAM, and does not actively mention means and effects for shortening the error detection time and correction time.
  • An object of the present invention is to provide a programmable device that shortens detection time and correction time when a soft error occurs, and an electronic system apparatus using the programmable device.
  • the configuration described in the claims is adopted.
  • a read / write unit that reads and writes data in the configuration memory, and an error check on the data in the configuration memory.
  • a sequencer unit that controls the read / write unit and the functional block unit to perform error checking on data in a predetermined area in the configuration memory in a predetermined order.
  • the reliability of the programmable device and the electronic system apparatus using the programmable device is improved by reducing the detection time and correction time when a soft error occurs and increasing the operation time.
  • FIG. 1 is a configuration diagram of a programmable device according to Embodiment 1.
  • FIG. The figure which shows the storage data structure of the area
  • FIG. The figure which shows the example of a setting of a check area
  • FIG. FIG. 6 is a configuration diagram of a programmable device according to a second embodiment.
  • FIG. The block diagram which shows an example of the electronic system apparatus (communication apparatus) which mounts a programmable device (Example 3).
  • FIG. The figure which shows the storage data structure of the area
  • FIG. The figure which shows the example of a setting of a check area
  • FIG. 10 is a configuration diagram of a programmable device according to a fifth embodiment.
  • FIG. 1 is a configuration diagram of a programmable device according to the first embodiment.
  • the programmable device 100 includes a configuration memory (CRAM) 9 for storing circuit configuration information of user logic, and a CRAM control unit 1 that detects and corrects a soft error generated in the CRAM.
  • the CRAM 9 divides the stored data into fixed-length data called frames, and the CRAM control unit 1 detects and corrects soft errors in units of the data frames.
  • the CRAM control unit 1 is mounted on the programmable device 100 as part of the user logic.
  • the CRAM control unit 1 performs a soft error detection and correction operation of the CRAM 9.
  • a data frame is read from the CRAM 9 and the presence or absence of an error bit is checked. If there is an error bit, the data is corrected. If there is no error, the operation of reading the next designated data frame and checking the error is repeated.
  • the error signal 8a and the error information 8b are output as signals that can be connected to the user logic.
  • the error signals 8a and 8b have a plurality of types of information, and may be connected to the user logic as necessary or output to the outside of the programmable device 10 as they are.
  • the configuration of the CRAM control unit 1 is as follows.
  • the CRAM read / write unit 2 reads and writes the data frame of the CRAM 9.
  • the area table 3 stores area information of CRAM for checking errors.
  • the execution order table 4 stores check sequence information such as the order of areas for checking errors in the CRAM 9, the type of data processing such as error detection and correction, and the number of repetitions.
  • the functional block unit 7 has a plurality of types of functional blocks related to CRAM data processing such as error detection and correction.
  • the selector unit 6 selects a functional block to be used.
  • the error signal output unit 8 converts a plurality of error signals from the function block unit 7 into necessary types of error signals and outputs them.
  • the sequencer unit 5 executes an error check operation of the CRAM 9 based on information in the area table 3 and the execution order table 4.
  • the CRAM read / write unit 2 incorporates an interface unit with the CRAM 9 and performs data frame read and write operations according to the physical address of the designated CRAM 9.
  • the CRAM read / write unit 2 has an interface with the external ROM 50 connected to the programmable device 10 in addition to the CRAM 9 and can perform read and write operations of the external ROM 50.
  • the external ROM 50 stores user logic circuit configuration information for configuring the CRAM 9 when the programmable device 10 is activated. According to the CRAM read / write unit 2, for example, data read from the external ROM 50 can be written into the CRAM 9.
  • FIG. 2 is a diagram showing a storage data structure of the area table 3.
  • the CRAM 9 is divided into fixed-length data frames, and a unique address is assigned to each frame.
  • the row direction of this table indicates the address of the data frame, and a table in which a plurality of check areas A0 to An can be set in the column direction is prepared.
  • Each frame address column stores 1-bit information indicating whether or not to check. For example, area number A2 indicates that data frame addresses F2 and F3 are to be checked.
  • FIG. 3 is a diagram showing an example of setting the check area.
  • the area table 3 a plurality of different check areas can be set as A0 to A4 in the figure. Since each check area is set as a group of data frames 10 as shown in the balloon, the shape of the area does not have to be a rectangular area such as A1 to A3. Like A0, an L-shaped area or a distant area can be set as one area. Moreover, you may designate so that several area
  • the layout of the user logic is automatically optimally arranged so as to satisfy the operation timing of the user logic by a dedicated mapping tool prepared by the FPGA vendor. Therefore, when checking the entire surface of the CRAM without dividing the area, the area table is set so as to check only the data frame being used based on the layout of the user logic after optimal placement.
  • the area table when user use bit information of CRAM is provided from the FPGA vendor, it is desirable to set the area table so as to check only the data frame including the used bit based on the information.
  • the user logic is hierarchically designed as shown by A1 in FIG. 3. Therefore, check areas are set in accordance with the layouts of the modules A10 to A12. In that case, the layout is designated and mapped so that the user logic is laid out in A10 to A12.
  • the area table 3 By limiting the area to be checked by the area table 3 in this way, useless check time can be omitted and the soft error detection time in the CRAM 9 can be shortened.
  • FIG. 4 is a diagram showing a storage data structure of the execution order table 4.
  • the error check in the CRAM control unit 1 is executed according to the sequence information stored in the table 4.
  • the execution order table 4 stores sequence information including an execution number, a check area number, a processing number, the number of repeats, and the next execution number.
  • the execution number indicates the address of this table. If an address is specified, execution starts from that execution number. If not specified, execution starts from execution number 0.
  • the check area number indicates an area number set in the area table 4.
  • the process number indicates the function block number of the function block unit 7.
  • the number of repeats indicates the number of repetitions in which execution numbers are continuously executed. The next execution number is set to the next execution number. Thus, the same execution number can be repeated, or the operation can be repeated by returning to the previous execution number.
  • the execution number 0 is executed, and the processing of error processing number # 0 (error detection) is performed once for the data frame in the check area A1.
  • the process proceeds to the next execution number 1.
  • the processing of process number # 1 (error detection and correction) is repeated four times for the data frame in area A0, and the process proceeds to the next execution number 2.
  • execution number 2 the process of process number # 0 (error detection) is repeated twice for the data frame in area A2, and then the process returns to execution number 0. Then, the above check operation is repeated.
  • the execution order table 4 By using the execution order table 4, the number of repetitions is increased and the error check frequency is increased for the area of the circuit module having a high operation rate and high importance, so that error detection is focused on compared to other areas. be able to.
  • the sequencer unit 5 executes an error check of the CRAM 9 based on the storage information of the area table 3 and the execution order table 4.
  • the area table 3 is referred to based on the area number specified in the execution order table 4, and the address of the data frame to be read is notified to the CRAM read / write unit 2 (5a).
  • the function block to be used is selected according to the error processing number (5c).
  • the data frame 2a read by the CRAM read / write unit 2 is input to the selected functional block unit 7 to perform error check processing.
  • the functional block unit 7 is a circuit block group having a soft error countermeasure processing function for CRAM data.
  • the CRAM control unit 1 has a function block unit 7 incorporating a plurality of types of function blocks, and the user selects and uses it according to the purpose.
  • FIG. 5 is a diagram showing the configuration of the functional block unit 7.
  • the function block unit 7 incorporates a plurality of types of function blocks # 0 to #n.
  • an error detection function block using CRC Cyclic Redundancy Code
  • # 0 (70) an error detection function block using CRC (Cyclic Redundancy Code)
  • # 1 (71) a 1-bit error correction function block using ECC is shown as an example # 1 (71).
  • the functional block # 0 (70) includes a CRC error check unit 11, a redundant bit storage unit 12, and a CRC redundant bit generation unit 13.
  • the CRC error check unit 11 detects the presence or absence of an error bit in the data frame by comparing sequentially input CRAM read data frames with redundant bits stored in the redundant bit storage unit 12 in advance.
  • the CRC redundant bit generation unit 13 automatically generates redundant bits for all data frames when the CRAM control unit 1 is activated, and stores the redundant bits in the redundant bit storage unit 12. Thereby, a soft error in the data frame can be detected.
  • an error signal E1 indicating error detection is output, and error information such as an area number in which an error is detected, a frame address, and an error type are simultaneously output.
  • the redundant bit information stored in the redundant bit storage unit 12 is generated by the CRC redundant bit generation unit 13 when the CRAM control unit 1 is activated, but may be added to the data frame of the CRAM 9. Further, an error detection algorithm and an error bit correction algorithm are not particularly limited. A plurality of types of function blocks may be mounted, but the function blocks to be mounted may be limited within an allowable circuit scale.
  • the functional block # 1 (71) includes an error check correction unit 14, a redundant bit storage unit 15, and a redundant bit generation unit 16.
  • the error check correction unit 14 detects the presence / absence of an error bit in the data frame by comparing sequentially input CRAM read data frames with ECC redundant bits stored in the redundant bit storage unit 15 in advance. When an error is detected, it is corrected and output as a CRAM write data frame.
  • the redundant bit generation unit 16 automatically generates ECC redundant bits of all data frames when the CRAM control unit 1 is activated and stores the ECC redundant bits in the redundant bit storage unit 15. Thereby, a soft error in the data frame can be detected. When an ECC error is detected, an error signal E1 indicating error detection and an error signal E2 indicating error correction success are output.
  • an error signal E3 is output as a correction impossible notification. Further, error information such as the address and error type of the data frame determined to be error detected / corrected and uncorrectable is simultaneously output.
  • the neutron soft error rate of the CRAM control unit itself increases as the circuit scale increases. Therefore, the functional blocks in the present embodiment have a module configuration, and only necessary functional blocks can be selected and mounted. By separating unnecessary blocks and not mounting them on a programmable device, the circuit scale of the CRAM control unit itself can be reduced and soft error failures can be reduced.
  • FIG. 6 is a diagram illustrating a configuration example of the error signal output unit 8.
  • the error signal output unit 8 a plurality of error signals from the function block unit 7 are converted into error signals of an externally required format (type, number, signal shape (level, pulse), timing) and output.
  • the error signals E1 to E3 and the error information from the function block units (# 0 to #n) are combined with logical sums 80 to 83 as error signals E1 ′, E2 ′, E3 ′ and error information.
  • the CRAM control unit 1 can freely set the error check order, the check contents (error processing number), and the number of repetitions for a plurality of arbitrary areas of the CRAM 9.
  • the error check processing efficiency can be improved and the error detection time can be shortened by focusing on the specified area in the CRAM 9 for error checking.
  • the number of frames to be checked is limited by setting the area table 3 so as to check only the data frame including the bit based on the user use bit information of the CRAM provided by the FPGA vendor.
  • Error detection time can be shortened.
  • the soft error detection / correction in the programmable device is completed in a shorter time than before, so that the recovery process can be executed quickly, and the entire apparatus can be Recovery time can be shortened.
  • the programmable device 100 based on the setting information in the region table 4, it is possible to notify the region information in which an error is detected, or to notify the error signal for each region. Since the CRAM area information and the configuration information of the user logic stored in the area correspond to each other, if the CRAM area where the error has occurred can be identified, the user logic portion in which the error has occurred can be identified, and is necessary according to the user logic. Minimal optimal recovery processing can be performed.
  • the CRAM control unit 1 is mounted on the CRAM 9 as a part of programmable user logic, and the execution order table 4 and the area table 3 are stored in a block RAM inside the programmable device.
  • the CRAM control unit 1 may be mounted as a dedicated hardware circuit inside the programmable device in addition to being mounted on the CRAM. Further, the CRAM control circuit 1 may be mounted on an external device.
  • the error detection block 70 uses CRC, the error detection method is not limited to CRC.
  • the functional block types include circuit blocks that can detect and correct multi-bit soft errors.
  • the correction means may use a correction code technique such as ECC, or may use a correction method in which configuration data stored in the external memory is called in units of frames and overwritten in the CRAM. Furthermore, a forced correction method that always overwrites all frames regardless of whether or not an error is detected may be used.
  • Other functional blocks include a hardware error detection block that detects uncorrectable (hardware failure) by performing error check once or multiple times after correction or immediately after correction.
  • the error detection time of the configuration memory can be shortened by performing error check only on the important data area in the configuration memory in the programmable device used in the electronic system product. it can. Furthermore, in the product equipped with the programmable device of this embodiment, it is possible to detect an error in the configuration memory at high speed, to shorten the recovery time of the apparatus, and to achieve high reliability and improvement in availability. As a result, it is possible to provide a programmable device in which the soft error detection time is shortened and the reliability is improved, and an electronic system apparatus using the programmable device.
  • FIG. 7 is a configuration diagram of a programmable device according to the second embodiment.
  • the programmable device 101 of the present embodiment is configured such that the error check order of the CRAM 9 can be controlled by the interrupt signal from the outside of the device in the CRAM control unit 1 of the first embodiment.
  • An interrupt signal interface (IF) 17 for inputting an external interrupt signal is connected to the sequencer unit 5 in the CRAM control unit 1A.
  • a plurality of interrupt signals 0 to n can be input to the interrupt signal IF17.
  • the interrupt number is notified to the sequencer unit 5 in accordance with the input port number of the interface (17a).
  • the sequencer unit 5 interrupts and executes the designated CRAM error check process during the CRAM error check being executed.
  • FIG. 8 is a diagram showing an execution order table 4A in the present embodiment.
  • the CRAM error detection / correction operations for the areas A0 to A2 are repeatedly executed in the order of execution numbers 0 ⁇ 1 ⁇ 3 ⁇ 0 according to the contents of the table.
  • error detection and correction operations are performed on the entire area A5 of the CRAM 9.
  • the normal error check operation (execution number 0) is set to the next execution number in the execution number 2 table, so that the normal error check operation is automatically restored after the operation by the interrupt signal is completed. be able to.
  • the programmable device 101 by adding the interrupt signal IF17 to the CRAM control unit 1A, not only the normal error check in the CRAM 9 but also the specified error check by the interrupt signal from the outside is performed. It can be forcibly executed. For example, even when a partial area error check is normally executed, the error check of the entire CRAM area can be forcibly interrupted. Also, each circuit module of the user logic, other devices connected to the programmable device 101, and an abnormal signal from the device side on which the programmable device is mounted are received by the CRAM control unit 1A, and the programmable device related to the abnormality is received. Only the CRAM area can be detected and corrected, error detection efficiency can be improved, and error detection time can be shortened.
  • the soft error detection time in the CRAM can be shortened by performing error check only on the area specified by the user using the interrupt signal.
  • the apparatus equipped with the programmable device of this embodiment can detect CRAM errors at high speed, reduce the recovery time of the apparatus, and achieve high reliability and improved availability. As a result, it is possible to provide a programmable device in which the soft error detection time is shortened and the reliability is improved, and an electronic system apparatus using the programmable device.
  • FIG. 9 is a configuration diagram showing an example of an electronic system device equipped with a programmable device.
  • a communication apparatus is exemplified as an electronic system apparatus, and a case where an FPGA (Field Programmable Gate Array) is used as a programmable device is shown.
  • FPGA Field Programmable Gate Array
  • the communication device 90 has a standby system duplex configuration called a cold standby, and is composed of an active system 91 and a standby system 92.
  • ACT operating state
  • SBY standby
  • the operation (ACT) is switched to the standby system 92 and the operation of the apparatus is continued.
  • Each system consists of multiple types of units.
  • the communication control units 91c and 92c mainly input communication packet data, and select an output destination according to destination data added to the packet data.
  • the diagnosis units 91b and 92b diagnose whether the communication control units 91c and 92c are operating normally.
  • the monitoring units 91a and 92a control unit operations such as operation start and reset of the communication control units 91c and 92c and diagnosis units 91b and 92b, initialization of installed processors and programmable devices, and the like.
  • FPGAs 93 and 94 mounted with the CRAM control unit 1 of the first embodiment are mounted on all units.
  • FIG. 10 is a diagram illustrating a control flow when an error occurs in the communication device 90.
  • an example in which an error is detected on the active system 91 side when the active system 91 is in operation and the standby system 92 is in a standby state is shown.
  • the diagnostic unit 91b monitors a CRAM error detection signal from the FPGA of each unit (S1).
  • S2 the active system 91 and the standby system 92 are immediately switched (S3).
  • the standby system 92 is switched to the operating state, and the active system 91 is switched to the standby state.
  • the apparatus continues to operate in the standby system 92.
  • the monitoring unit 91a of the active system 91 in which the error is detected performs a temporary stop process of a unit (for example, the communication control unit 91c) related to the FPGA in which the error has occurred (S4).
  • the diagnosis unit 91b outputs error information to a log file. In the log file, an error occurrence time, error mode information such as detection, correction success, and correction impossible, and address information of a data frame in which an error has occurred are recorded (S5).
  • the content of the acquired error information may be displayed on the user interface screen 19 on the monitor screen 18 (S5).
  • the FPGA of the communication control unit 91c performs CRAM error correction processing (S6)
  • the monitoring unit 91a performs FPGA reset processing (S7).
  • the monitoring unit 91a performs recovery processing by discarding and retransmitting packets before and after error detection by the device firmware (S8), and preparing for the next system switching as a standby state. For devices that require system switchback after recovery, system switching is performed again here.
  • the communication device When the communication device is configured by using the programmable device according to the present embodiment, it is possible to shorten the configuration memory error detection time (S1 to S2) that spends much of the conventional recovery processing time, and to shorten the device recovery processing time. Is possible.
  • the communication apparatus 90 having the standby system 92 shown in FIG. 9, when an abnormality occurs in the active system 91 for some reason, it is necessary to switch the system in a time that does not affect the user who uses the apparatus. In this case, if switching to the standby system 92 is performed in a short time, it is possible to prevent the user who uses the apparatus from being affected. Also, the standby system 92 that is normally stopped may fail immediately after switching. In response to a failure caused by environmental radiation, that is, a so-called soft error failure, it is possible to prepare for the failure of the standby system 92 by restoring the active system 91 within the system switching time as in this embodiment. This is effective in a device such as a communication device that requires reliability and availability.
  • the standby system clock may be stopped in a state where it can be operated immediately, such as by stopping the standby system.
  • the standby system programmable device executes from standby. It is conceivable that the data inversion of the configuration memory in the programmable device is detected immediately after the mode is shifted, and in this case, the recovery can be performed within the time allowed as the system switching time.
  • the programmable device 93 or 94 in the present embodiment it is possible to notify the area information in which an error is detected based on the setting information of the area table 4 or to notify the error signal for each area. Since the CRAM area information and the configuration information of the user logic stored in the area correspond to each other, it is possible to identify the user logic portion in which the error has occurred based on the CRAM area information in which the error has occurred. It is possible to perform a limited optimal recovery process. In this embodiment, for example, only the CRAM correction is performed for an error in an area 1, but if an error occurs in another area 2 including a control unit such as a user logic state machine, the FPGA is reconfigured. The recovery process varies depending on the error occurrence area.
  • the soft error detection time in the CRAM can be shortened by performing error check only on the area specified by the user of the programmable device mounted on the electronic system apparatus.
  • the apparatus equipped with the programmable device of this embodiment can detect CRAM errors at high speed, reduce the recovery time of the apparatus, and achieve high reliability and improved availability. As a result, it is possible to provide a programmable device in which the soft error detection time is shortened and the reliability is improved, and an electronic system apparatus using the programmable device.
  • Example 4 a motor control system used in a rolling device, an elevator, a water supply control pump, or the like will be described as an example of an electronic system device equipped with a programmable device.
  • FIG. 12 is a diagram illustrating a configuration example of the motor control system 200.
  • the system 200 includes a motor control device 20, a motor 26, a monitoring camera 25 that monitors the system environment, and a monitor 24 for an operator to check the operating state.
  • the motor control device 20 includes an FPGA 21 on which the CRAM control unit 1 according to the first embodiment is mounted and an input / output IF 23 that interfaces with an external device group.
  • a control value 26a indicating the rotation amount of the motor is output from the control device 20, and the current rotation amount 26b is simultaneously monitored by a sensor (not shown) mounted in the motor 26.
  • a motor control operation such as maintaining a desired rotation amount is performed.
  • the FPGA 21 is used to control the rotation amount of the motor 26, when the user logic 22 is destroyed due to a soft error generated in the CRAM, the control value changes abruptly, such as an abnormal high-speed rotation state or a stop state. An unexpected system failure may have occurred.
  • the CRAM control unit 1 detects and corrects soft errors that occur in the CRAM of the FPGA 21. In particular, since only the CRAM area in which the configuration information of the user logic 22 related to motor control is stored is checked, error checking and correction within the CRAM within the feedback control cycle of the motor 26 is possible, and a system such as a motor stop is performed. Obstacles can be avoided.
  • the CRAM control unit 1 having the interrupt signal IF 17 shown in the second embodiment when used, the error check of the FPGA 21 using the inertia operation time of the motor 26 and the non-operation time information is possible, so that the efficiency is further improved.
  • the abnormality occurrence rate of the motor 26 can be suppressed.
  • the present embodiment it is possible to shorten the detection time of the soft error in the programmable device, to recover from the device abnormality caused by the FPGA soft error in a short time, and to improve the reliability of the electronic system device Can do.
  • FIG. 13 is a configuration diagram of a programmable device according to the fifth embodiment. Since the CRAM control units 1 and 1A in the embodiment are implemented as FPGA user logic, the CRAM control unit itself may be destroyed by a soft error. Therefore, in this embodiment, the CRAM control unit 1B in the programmable device 102 is configured to include the internal diagnosis unit 27 for checking the operation of the CRAM control unit itself.
  • the internal diagnosis unit 27 includes an error data insertion unit 28 and a comparison unit 29.
  • the error data insertion unit 28 intentionally inserts error data into any data frame 2a read from the CRAM 9 and writes it back to the CRAM 9 again (28a).
  • the comparison unit 29 compares the error information (occurrence address and data) 8b output from the error detection block # 0 or the error correction block # 1 with the intentionally written error information 28a. If the comparison results do not match, the CRAM control unit 1B outputs an error signal 27a to the FPGA or the outside as being in some abnormal state.
  • the internal diagnostic unit 27 operates in accordance with the control signal 5c of the sequencer unit 5 in accordance with the setting data of the area table 3 and the execution order table 4 like the other functional blocks.
  • the internal diagnostic unit 27 can discriminate abnormal parts by performing a read / write check of each data frame of the CRAM 9 a plurality of times. For example, a read / write check of ALL “0” or ALL “1” is performed on the frames in the entire area, and if an error is detected in the same data frame a plurality of times, an error is detected on the CRAM 9 side. If an error detection signal is not output even when an error is inserted, or if an error is detected in a data frame with a different address, it can be determined that the CRAM control unit 1B is abnormal. In addition, when overwriting correction using configuration data stored in the external ROM 50 is used and an abnormality is detected by the read / write check, it can be determined that the external ROM 50 is abnormal.
  • abnormal values are written to the CRAM data, so when performing a diagnosis in a time zone in which the user logic is normally operating, the above check is performed using a data frame not used by the user logic. Do. If the diagnosis can be performed in a time zone in which the user logic is not yet operated, such as immediately after starting the FPGA, a check for all data frames in the CRAM 9 is performed.
  • the CRAM control unit 1B sets a CRAM area in which circuit information of the CRAM control unit 1B itself is stored in the area table 4, and periodically checks the CRAM data in the area to perform CRAM control. It is good also as a structure which diagnoses the part 1B.
  • the main part of the CRAM control unit 1B may be duplicated and the output values may be compared to notify the FPGA side of the abnormality of the CRAM control unit itself.
  • the error data insertion unit 28 of the internal diagnosis unit 27 is used, erroneous error data can be intentionally inserted into the CRAM. Therefore, a pseudo soft error failure may be generated in the FPGA and used for verification of the system behavior when the soft error occurs.
  • the present embodiment by reducing the soft error rate of the CRAM control unit itself and realizing highly reliable CRAM error detection / correction, it is possible to recover the device abnormality of the system device in a short time, and the electronic system The reliability of the apparatus can be improved.

Abstract

 コンフィギュレーションメモリ9を有するプログラマブルデバイス100において、コンフィギュレーションメモリの診断手段として、コンフィギュレーションメモリのデータをリード、ライトするリードライト部2と、コンフィギュレーションメモリのデータに対してエラーチェックを行う機能ブロック部7と、リードライト部と機能ブロック部に対し、コンフィギュレーションメモリ内の所定の領域のデータを所定の順序でエラーチェックを行うよう制御するシーケンサ部5と、を備える構成とする。これにより、コンフィギュレーションメモリ9のソフトエラー発生時の検出時間および訂正時間を短縮させる。

Description

プログラマブルデバイス及びこれを用いた電子システム装置
 本発明は、プログラマブルデバイス及びこれを用いた電子システム装置に関する。
 本技術分野の背景技術として、米国登録特許US8332722号(特許文献1)“Method and architecture for performing scrubbing of an FPGA's configuration memory”がある。
米国特許第8332722号明細書
 FPGA(Field Programmable Gate Array)などのプログラマブルデバイスでは、コンフィギュレーションメモリ(以下、CRAMと記す)に放射線起因のソフトエラーが発生すると、ユーザロジックの構成情報が一時的に破壊され、誤動作を引き起こす可能性がある。そこで、従来のプログラマブルデバイスでは、CRAMに格納されるデータを固定長のデータフレームに分割し、フレーム毎に巡回しながらエラーチェックする回路を用意されている。ユーザは、この回路のCRAMソフトエラー検出信号をトリガとして、プログラマブルデバイスの再コンフィグレーションや、装置再起動などのリカバリ処理を実施することで、ソフトエラー状態から復旧でき、装置の信頼性を向上させることができる。
 しかし、従来のエラーチェック方法ではCRAM全領域をフレーム順にチェックするため、プログラマブルデバイスの大容量化が進むと、ソフトエラー検出時間が遅くなってしまう。例えば、2重化を採用する通信装置では、異常時の装置切替え時間を数十ミリ秒以内にすることが求められるため、装置に搭載されるプログラマブルデバイスは上記時間以内にエラーを検出し、訂正できることが望ましい。しかし、大容量化が進むプログラマブルデバイスでは、単純にエラー検出までに100ミリ秒以上要する場合もあり、切替え時間内でのリカバリが困難になってきている。そのため、CRAMに発生した環境放射線ソフトエラーの検出および訂正時間を短縮し、装置の停止時間やリカバリ時間を短縮することが必要となる。また、エラー検出に加え、CRAM内のソフトエラーを短時間で訂正することが求められる。
 特許文献1によれば、CRAMに発生するソフトエラーを検出・訂正する回路(スクラビング回路)について記載されている。スクラビング回路はユーザ論理回路の一部としてFPGAに実装され、CRAMデータをフレームと呼ばれる固定長データ単位で読み出し、CRCによるエラー検出や、ECCによるエラー訂正ができる。また、外部ROMに格納された正常データを再度CRAMに上書きすることで複数ビットエラーを訂正できる。
 また、スクラビング回路は構成要素としてFPGA内部のソフトプロセッサを使用し、命令メモリ内に格納された命令コードに従って、CRAMの任意フレームのエラーチェックを行うことができる。しかし、特許文献1ではCRAMのエラー検出時間や訂正時間については考慮されておらず、エラー検出時間や訂正時間を短くするための手段や効果について積極的に言及されていない。
 本発明の目的は、ソフトエラー発生時の検出時間および訂正時間を短縮させるプログラマブルデバイス及びこれを用いた電子システム装置を提供することにある。
 上記課題を解決するために、例えば請求の範囲に記載の構成を採用する。その一例を挙げるならば、コンフィギュレーションメモリを有するプログラマブルデバイスにおいて、コンフィギュレーションメモリの診断手段として、コンフィギュレーションメモリのデータをリード、ライトするリードライト部と、コンフィギュレーションメモリのデータに対してエラーチェックを行う機能ブロック部と、リードライト部と機能ブロック部に対し、コンフィギュレーションメモリ内の所定の領域のデータを所定の順序でエラーチェックを行うよう制御するシーケンサ部と、を備える構成とする。
 本発明によれば、ソフトエラー発生時の検出時間および訂正時間を短縮し、稼働時間を長くすることで、プログラマブルデバイス及びこれを用いた電子システム装置の信頼性が向上する。
実施例1に係るプログラマブルデバイスの構成図。 領域テーブル3の格納データ構造を示す図。 チェック領域の設定例を示す図。 実行順序テーブル4の格納データ構造を示す図。 機能ブロック部7の構成を示す図。 エラー信号出力部8の構成例を示す図。 実施例2に係るプログラマブルデバイスの構成図。 実施例2における実行順序テーブル4Aを示す図。 プログラマブルデバイスを搭載した電子システム装置(通信装置)の一例を示す構成図(実施例3)。 通信装置90のエラー発生時の制御フローを示す図。 エラー情報の表示例を示す図。 プログラマブルデバイスを搭載した電子システム装置の一例(モータ制御システム)を示す構成図(実施例4)。 実施例5に係るプログラマブルデバイスの構成図。
 本発明に係るプログラマブルデバイス及びこれを用いた電子システム装置の実施例を、図面を用いて説明する。
 図1は、実施例1に係るプログラマブルデバイスの構成図である。本実施例のプログラマブルデバイス100は、ユーザロジックの回路構成情報を格納するためのコンフィギュレーションメモリ(CRAM)9と、CRAM内に発生したソフトエラーを検出・訂正するCRAM制御部1を有する。ここで、CRAM9は、格納されるデータをフレームと呼ばれる固定長のデータに分割され、CRAM制御部1はそのデータフレーム単位でソフトエラーの検出・訂正を行う。また、CRAM制御部1は、ユーザロジックの一部としてプログラマブルデバイス100に実装する。
 プログラマブルデバイス100では、CRAM制御部1によってCRAM9のソフトエラー検出および訂正動作を行う。基本的な動作としては、CRAM9からデータフレームを読み出し、エラービットの有無をチェックして、エラービットが有った場合はデータを訂正する。エラーが無ければ次に指定されたデータフレームをリードし、エラーをチェックする、という動作を繰り返す。
 もしエラー訂正ができない場合は、ユーザロジックにも接続できる信号としてエラー信号8aやエラー情報8bを出力する。エラー信号8a,8bは複数種類の情報を有し、必要に応じてユーザロジックへ接続するか、そのままプログラマブルデバイス10の外部に出力してもよい。
 CRAM制御部1の構成は次の通りである。CRAMリードライト部2は、CRAM9のデータフレームをリード、ライトする。領域テーブル3は、エラーをチェックするCRAMの領域情報を格納する。実行順序テーブル4は、CRAM9に対してエラーをチェックする領域の順序や、エラー検出および訂正などのデータ処理の種類、繰返し回数など、チェックシーケンスの情報を格納する。機能ブロック部7は、エラー検出や訂正などCRAMのデータ処理に関する複数種類の機能ブロックを有する。セレクタ部6は、使用する機能ブロックを選択する。エラー信号出力部8は、機能ブロック部7からの複数のエラー信号を必要な種類のエラー信号に変換して出力する。シーケンサ部5は、領域テーブル3および実行順序テーブル4の情報を基にCRAM9のエラーチェック動作を実行する。
 ここにCRAMリードライト部2は、CRAM9とのインタフェース部を内蔵し、指定したCRAM9の物理アドレスに従ってデータフレームのリードおよびライト動作を行う。また、CRAMリードライト部2は、CRAM9以外にプログラマブルデバイス10に接続された外部ROM50とのインタフェースを有し、外部ROM50のリードおよびライト動作を行うことができる。外部ROM50には、プログラマブルデバイス10を起動した際にCRAM9にコンフィギュレーションするためのユーザロジックの回路構成情報が格納されている。CRAMリードライト部2によれば、例えば、外部ROM50から読み出したデータをCRAM9に書き込むことができる。
 図2は、領域テーブル3の格納データ構造を示す図である。前述したようにCRAM9は固定長のデータフレームで分割されており、それぞれのフレームには固有のアドレスが割り当てられている。本テーブルの行方向がデータフレームのアドレスを示しており、列方向には複数のチェック領域A0~Anを設定できるテーブルが用意されている。各フレームアドレスの欄には、チェックする/しないを示す1ビット情報を格納している。例えば、領域番号A2ではデータフレームアドレスF2,F3をチェックすることを示す。
 図3は、チェック領域の設定例を示す図である。領域テーブル3によれば、図中のA0~A4のように複数の異なるチェック領域を設定することができる。また、各チェック領域は、吹き出しに示したようにデータフレーム10のグループとして設定するため、領域の形状はA1~A3のような矩形の領域でなくてもよい。A0のように、L字型の領域や、離れた領域を1つの領域として設定できる。また、A2とA3のように複数の領域が重なりあうように指定してもよい。この場合、A2とA3には同一のデータフレームが含まれる。
 但し、一般的にユーザロジックのレイアウトは、FPGAベンダが用意する専用のマッピングツールによって、ユーザロジックの動作タイミングを満足するように自動的に最適配置される。そのため、領域を分けずにCRAM全面をチェックする場合には、最適配置後のユーザロジックのレイアウトを基に、使用しているデータフレームのみをチェックするように領域テーブルを設定する。
 また、FPGAベンダからCRAMのユーザ使用ビット情報が提供される場合は、その情報を基に、使用しているビットが含まれるデータフレームのみをチェックするよう領域テーブルを設定することが望ましい。また、一般的にユーザロジックは、図3のA1のように階層化設計されるため、各モジュールA10~A12のレイアウトに合わせて、チェック領域を設定する。その場合、ユーザロジックがA10~A12内にレイアウトされるように、配置を指定してマッピングする。
  このように領域テーブル3によってチェックする領域を限定することで、無駄なチェック時間を省き、CRAM9内のソフトエラー検出時間を短縮することができる。
 図4は、実行順序テーブル4の格納データ構造を示す図である。CRAM制御部1におけるエラーチェックは、テーブル4に格納されたシーケンス情報に従って実行される。実行順序テーブル4には、実行番号とチェック領域番号、処理番号、リピート回数、次の実行番号、で構成されるシーケンス情報を格納する。実行番号は本テーブルのアドレスを示す。アドレスが指定された場合はその実行番号から実行を開始する。指定が無ければ実行番号0から実行を開始する。チェック領域番号は領域テーブル4に設定された領域番号を示す。処理番号は機能ブロック部7の機能ブロック番号を示す。リピート回数は実行番号を連続で実行する繰返し回数を示す。次の実行番号には、次に実行する実行番号を設定する。これより、同じ実行番号を繰り返したり、前の実行番号に戻って動作を繰り返すことができる。
 例えば、図4に示す実行順序テーブルでは、まずは実行番号0を実行し、チェック領域A1のデータフレームについてエラー処理番号#0(エラー検出)の処理を1回行う。A1内の全てのデータフレームのチェックが終わったら、次の実行番号1に進む。実行番号1では、領域A0のデータフレームについて処理番号#1(エラー検出および訂正)の処理を4回繰返し、次の実行番号2に進む。実行番号2では、領域A2のデータフレームについて処理番号#0(エラー検出)の処理を2回繰返し、次に実行番号0へ戻る。そして、以上のチェック動作を繰り返す。
 実行順序テーブル4を用いることにより、稼動率や重要度が高い回路モジュールの領域については繰返し回数を多くし、エラーチェック頻度を増やすことで、他の領域に比べて重点的にエラーの検出を行うことができる。
 シーケンサ部5は、これら領域テーブル3および実行順序テーブル4の格納情報を基に、CRAM9のエラーチェックを実行する。実行順序テーブル4で指定された領域番号を基に領域テーブル3を参照し、リードするデータフレームのアドレスをCRAMリードライト部2に通知する(5a)。同時に、エラー処理番号に従って使用する機能ブロックを選択する(5c)。CRAMリードライト部2によってリードされたデータフレーム2aは、選択された機能ブロック部7に入力され、エラーチェック処理を行う。
 機能ブロック部7は、CRAMデータに対するソフトエラー対策処理機能を持った回路ブロック群である。CRAM制御部1は、複数種類の機能ブロックを内蔵した機能ブロック部7を有し、ユーザは目的に合わせてこれを選択して使用する。
 図5は、機能ブロック部7の構成を示す図である。機能ブロック部7には複数種類の機能ブロック#0~#nを内蔵する。ここでは#0(70)としてCRC(Cyclic Redundancy Code)によるエラー検出機能ブロックを、#1(71)としてECCによる1ビットエラー訂正機能ブロックを例に示す。
 機能ブロック#0(70)は、CRCエラーチェック部11と、冗長ビット格納部12と、CRC冗長ビット生成部13で構成される。CRCエラーチェック部11は、順次入力されるCRAMリードデータフレームを、予め冗長ビット格納部12に格納した冗長ビットと比較することで、データフレーム内のエラービット有無を検出する。CRC冗長ビット生成部13は、CRAM制御部1の起動時に全データフレームの冗長ビットを自動生成し、冗長ビット格納部12に格納する。これにより、データフレーム内のソフトエラーを検出できる。CRCエラー検出時は、エラー検出を表すエラー信号E1を出力すると共に、エラーが検出された領域番号や、フレームアドレス、エラー種類などのエラー情報を同時に出力する。
 なお、冗長ビット格納部12に格納する冗長ビット情報は、CRAM制御部1の起動時にCRC冗長ビット生成部13により生成するものとしたが、CRAM9のデータフレームに付加しておいてもよい。また、エラーの検出アルゴリズムや、エラービットの訂正アルゴリズムについては特に限定しない。複数種類の機能ブロックを搭載しても良いが、許容できる回路規模の範囲で搭載する機能ブロックを限定してもよい。
 機能ブロック#1(71)は、エラーチェック訂正部14と、冗長ビット格納部15と、冗長ビット生成部16で構成される。エラーチェック訂正部14は、順次入力されるCRAMリードデータフレームを、予め冗長ビット格納部15に格納したECC冗長ビットと比較することで、データフレーム内のエラービット有無を検出する。そして、エラーを検出した時はこれを訂正し、CRAMライトデータフレームとして出力する。冗長ビット生成部16は、CRAM制御部1の起動時に全データフレームのECC冗長ビットを自動生成し、冗長ビット格納部15に格納する。これにより、データフレーム内のソフトエラーを検出できる。ECCエラー検出時は、エラー検出を表すエラー信号E1およびエラー訂正成功を表すエラー信号E2を出力する。さらに、エラービット数が1ビット以上の場合で訂正できなかった場合は、訂正不可通知としてエラー信号E3を出力する。さらに、エラー検出・訂正および訂正不可と判定されたデータフレームのアドレスやエラー種類などのエラー情報を同時に出力する。
 また、前述したように、CRAM制御部1はユーザロジックの一部としてプログラマブルデバイスに実装するため、回路規模が大きくなるとCRAM制御部自身の中性子ソフトエラー率が大きくなってしまう。そのため、本実施例における機能ブロックはモジュール構成となっており、必要な機能ブロックのみを選択して実装することができる。不要なブロックについては切り離して、プログラマブルデバイスに実装しないことで、CRAM制御部自身の回路規模を縮小し、ソフトエラー障害を低減できる。
 図6は、エラー信号出力部8の構成例を示す図である。エラー信号出力部8では、機能ブロック部7からの複数のエラー信号を外部で必要な形式(種類、本数、信号形状(レベル、パルス)、タイミング)のエラー信号に変換して出力する。図6では、機能ブロック部(#0~#n)からのエラー信号E1~E3、およびエラー情報を、論理和80~83でまとめて、エラー信号E1’、E2’、E3’およびエラー情報として出力する。
このように、本実施例におけるプログラマブルデバイス100では、CRAM制御部1によって、CRAM9の複数の任意領域に対するエラーチェック順序、チェック内容(エラー処理番号)、繰返し回数を自由に設定することができる。これより、CRAM9内の指定した領域を重点的にエラーチェックすることで、エラー検出処理の効率が向上し、エラー検出時間を短縮できる。
 例えば、FPGAベンダから提供されるCRAMのユーザ使用ビット情報を基に、そのビットが含まれるデータフレームのみをチェックするように領域テーブル3を設定することで、チェックするフレーム数が限定されるため、エラー検出時間を短縮できる。また、本実施例のプログラマブルデバイスを搭載した電子システム装置では、プログラマブルデバイスにおいてソフトエラーの検出・訂正が従来に比べて短時間で完了するため、すばやくリカバリ処理を実行することができ、装置全体の復旧時間を短縮できる。
 また、本実施例におけるプログラマブルデバイス100では、領域テーブル4の設定情報を基に、エラーが検出された領域情報を通知、または領域別にエラー信号を通知できる。CRAM領域情報とその領域に格納されるユーザロジックの構成情報は対応しているため、エラーが発生したCRAM領域が特定できれば、エラーとなったユーザロジック部分が特定でき、そのユーザロジックに合わせて必要最低限の最適なリカバリ処理を行うことができる。
 なお、本実施例では、CRAM制御部1はプログラム可能なユーザロジックの一部としてCRAM9に実装しており、実行順序テーブル4および領域テーブル3は、プログラマブルデバイス内部のブロックRAMに格納している。CRAM制御部1はCRAMに実装する以外に、プログラマブルデバイス内部の専用ハードウェア回路として実装してもよい。また、CRAM制御回路1を外部デバイスに実装した構成でもよい。また、上記のエラー検出ブロック70ではCRCを用いたが、エラーを検出するための方法をCRCに限定するものではない。
 また、図示していないが、機能ブロックの種類には、複数ビットのソフトエラーを検出・訂正できる回路ブロックなどを含む。訂正手段はECCなどの訂正符号技術を使用してもよいし、外部メモリに格納されているコンフィギュレーションデータをフレーム単位で呼び出してCRAMに上書きする訂正手法を使用してもよい。さらに、全てのフレームに対して、エラー検出有無に関わらず、常に上書きする強制訂正手法を使用してもよい。また、他の機能ブロックとして、訂正後または訂正直後に再度エラーチェックを1回乃至複数回行うことで訂正不可(ハードウェア故障)を検出するハードエラー検出ブロックなどが含まれる。
 以上のことから、本実施例によれば、電子システム製品に用いるプログラマブルデバイスにおいて、コンフィギュレーションメモリ内の重要なデータ領域のみをエラーチェックすることで、コンフィギュレーションメモリのエラー検出時間を短縮することができる。さらに、本実施例のプログラマブルデバイスを搭載した製品では、高速にコンフィギュレーションメモリのエラーを検知でき、装置のリカバリ時間を短縮でき、高信頼化および可用性の向上を図ることができる。これより、ソフトエラー検出時間を短縮し、信頼性を向上したプログラマブルデバイス及びこれを用いた電子システム装置を提供することができる。
 図7は、実施例2に係るプログラマブルデバイスの構成図である。本実施例のプログラマブルデバイス101は、実施例1のCRAM制御部1において、デバイス外部からの割込み信号によってCRAM9のエラーチェック順序を制御できるように構成している。
 CRAM制御部1A内のシーケンサ部5には、外部からの割り込み信号を入力する割込信号インタフェース(IF)17を接続している。割込信号IF17には0~n番の複数の割り込み信号が入力できる。割り込み信号が入力されると、インタフェースの入力ポート番号に従って、シーケンサ部5に割込み番号を通知する(17a)。シーケンサ部5はその割込み番号に従って、実行中のCRAMエラーチェックの途中に、指定されたCRAMエラーチェック処理を割り込ませて実行する。
 図8は、本実施例における実行順序テーブル4Aを示す図である。通常は、テーブルの内容に従って実行番号0→1→3→0という順序で、領域A0~A2に対するCRAMエラー検出・訂正の動作を繰り返し実行している。例えば、ここで割り込みIF17のポート2に割込み信号が入力された場合、割込信号IF17はシーケンサ部5に割り込み番号(=2)を通知する。割込み番号を受信したシーケンサ部は優先的にこの割込み番号(=2)に従って、実行順序テーブル4Aの実行番号2の処理を実行する。図8の例では、CRAM9の全面領域A5に対するエラー検出および訂正動作が実行される。また、実行番号2のテーブルの次の実行番号には、通常のエラーチェック動作(実行番号0)を設定することで、割り込み信号による動作が終了後、自動的に通常のエラーチェック動作に復旧させることができる。
 このように、本実施例におけるプログラマブルデバイス101では、CRAM制御部1Aに割込信号IF17を追加するよって、CRAM9内の通常のエラーチェックだけでなく、外部からの割込み信号によって、指定したエラーチェックを強制実行することができる。例えば、通常は部分的な領域のエラーチェックを実行している場合でも、強制的にCRAM全領域のエラーチェックを割り込み実行できる。また、ユーザロジックの各回路モジュールや、プログラマブルデバイス101に接続される他のデバイスや、プログラマブルデバイスを搭載した装置側からの異常信号をCRAM制御部1Aで受信し、その異常に関連するプログラマブルデバイスのCRAM領域のみをエラー検出・訂正することができ、エラー検出効率が向上しエラー検出時間を短縮できる。
 以上のことから、本実施例のプログラマブルデバイスでは、割り込み信号を使ってユーザが指定した領域のみエラーチェックすることで、CRAM内のソフトエラー検出時間を短縮することができる。また、本実施例のプログラマブルデバイスを搭載した装置では、高速にCRAMのエラーを検知でき、装置のリカバリ時間を短縮でき、高信頼化および可用性の向上を図ることができる。これより、ソフトエラー検出時間を短縮し、信頼性を向上したプログラマブルデバイス及びこれを用いた電子システム装置を提供することができる。
 図9は、プログラマブルデバイスを搭載した電子システム装置の一例を示す構成図である。本実施例では、電子システム装置として通信装置を例に挙げ、またプログラマブルデバイスとしてFPGA(Field Programmable Gate Array)を用いた場合を示している。
 通信装置90は、コールドスタンバイと呼ばれる待機系の2重化構成となっており、現用系91と、予備系92で構成される。現用系91のユニットが稼動状態(ACT)のときは、予備系92は電源OFFの状態で待機(SBY)している。ここで、何らかの原因により現用系91に異常が発生した場合は、予備系92に動作(ACT)を切替えて装置稼動を継続する。
 それぞれの系は、複数種類のユニットで構成されている。通信制御ユニット91c,92cは、主に通信用パケットデータを入力し、そのパケットデータに付加される送り先データに従って出力先を選択する。診断ユニット91b,92bは、この通信制御ユニット91c,92cが正常に動作しているかを診断する。監視ユニット91a,92aは、通信制御ユニット91c,92cおよび診断ユニット91b,92bの動作開始、リセット、搭載しているプロセッサやプログラマブルデバイスの初期化等、ユニット動作の制御を行う。本例では、全てのユニットに、実施例1のCRAM制御部1を実装したFPGA93,94が搭載されている。
 図10は、通信装置90のエラー発生時の制御フローを示す図である。ここでは、現用系91が稼動状態で、予備系92が待機状態のとき、現用系91側でエラーが検出された場合の例を示す。
 通信装置を稼動(S0)後、診断ユニット91bは各ユニットのFPGAからのCRAMエラー検出信号を監視する(S1)。CRAMエラーが検出された場合(S2)、直ちに現用系91と予備系92の系切り替え処理を行う(S3)。本例では、予備系92を稼動状態へ、現用系91を待機状態へ切り替える。装置としては予備系92で稼動を継続する。一方で、エラーが検出された現用系91の監視ユニット91aは、エラーを発生したFPGAに関連するユニット(例えば通信制御ユニット91c)の一時的停止処理を行う(S4)。このとき診断ユニット91bは、エラー情報をログファイルに出力する。ログファイルには、エラー発生時刻と、検出や訂正成功、訂正不可などのエラーモードの情報や、エラーが発生したデータフレームのアドレス情報などが記録される(S5)。
 また、図11のように、モニタ画面18上のユーザインタフェース画面19に、取得したエラー情報の内容を表示してもよい(S5)。その後、通信制御ユニット91cのFPGAはCRAMのエラー訂正処理を行い(S6)、監視ユニット91aはFPGAのリセット処理を行う(S7)。また監視ユニット91aは、装置のファームウエアによるエラー検出前後のパケット廃棄、再送によるリカバリ処理を行い(S8)、待機状態として次の系切り替えに備える。復旧後に系切り戻しが必要な装置などでは、ここで再度系切り替えを実施する。
 本実施例によるプログラマブルデバイスを用いて通信装置を構成すると、従来リカバリ処理時間の多くを費やすコンフィグレーションメモリエラーの検出時間(S1~S2)を短縮することができ、装置復旧処理時間を短縮することが可能となる。
 例えば、図9に示す予備系92を持つ通信装置90の場合、何らかの原因により現用系91で異常が発生した場合、装置を利用しているユーザに影響のない時間で系を切り替える必要がある。この場合、予備系92への切り替えが短時間であれば、装置を利用しているユーザには影響が無いようにすることができる。また、通常停止している予備系92も、切り替え直後に障害が発生することがある。環境放射線による障害、いわゆるソフトエラー障害に対し、本実施例のように系切り替え時間内に現用系91を復旧することで、予備系92の障害発生に備えることができる。これは、通信装置のような信頼性、可用性を求める装置において有効である。
 また、電力削減を目的として、待機系のクロックを停止する等で、即動作可能な状態で、動作のみ停止させて待機することがあるが、この場合、待機系のプログラマブルデバイスが、待機から実行モードに移った直後にプログラマブルデバイス内のコンフィギュレーションメモリのデータ反転が検出されることも考えられ、その場合も系切替時間として許される時間内での復旧を行うことができる。
 また、本実施例におけるプログラマブルデバイス93、または94では、領域テーブル4の設定情報を基に、エラーが検出された領域情報を通知、または領域別にエラー信号を通知できる。CRAM領域情報とその領域に格納されるユーザロジックの構成情報は対応しているため、エラーが発生したCRAM領域情報によって、エラーとなったユーザロジック部分が特定でき、そのユーザロジックに合わせて必要最低限の最適なリカバリ処理を行うことができる。本実施例では、例えば、ある領域1におけるエラーについてはCRAM訂正のみを行うが、ユーザロジックのステートマシンなどの制御部が含まれた別の領域2でエラーが発生した場合はFPGAをリコンフィギュレーションするなど、エラー発生領域によって異なるリカバリ処理を行う。
 以上のことから、本実施例によれば、電子システム装置に搭載するプログラマブルデバイスのユーザが指定した領域のみエラーチェックすることで、CRAM内のソフトエラー検出時間を短縮することができる。また、本実施例のプログラマブルデバイスを搭載した装置では、高速にCRAMのエラーを検知でき、装置のリカバリ時間を短縮でき、高信頼化および可用性の向上を図ることができる。これより、ソフトエラー検出時間を短縮し、信頼性を向上したプログラマブルデバイス及びこれを用いた電子システム装置を提供することができる。
 実施例4では、プログラマブルデバイスを搭載した電子システム装置として、圧延装置やエレベータ、水道制御ポンプなどで使用されるモータ制御システムを例に挙げて説明する。
 図12は、モータ制御システム200の構成例を示す図である。本システム200は、モータ制御装置20、モータ26、システム環境を監視する監視カメラ25、オペレータが稼動状態などを確認するためのモニタ24で構成される。モータ制御装置20は、実施例1のCRAM制御部1が実装されたFPGA21と、外部装置群とのインタフェースを行う入出力IF23で構成される。本システム200では、制御装置20からモータの回転量を示す制御値26aを出力し、同時に現時点の回転量26bを、モータ26内部に搭載されたセンサ(図示せず)で監視し、制御装置20側へフィードバックすることで、所望の回転量を保つなどのモータ制御動作を行っている。ここで、モータ26の回転量制御にFPGA21を用いるため、CRAM内に発生するソフトエラーによってユーザロジック22が破壊されると、制御値が急激に変わり、異常な高速回転状態や、停止状態など、予期せぬシステム障害発生の可能性がある。
 本実施例では、CRAM制御部1によって、FPGA21のCRAMに発生するソフトエラー検出および訂正を行う。特に、モータ制御に関係するユーザロジック22の構成情報が格納されるCRAM領域のみをチェックするため、モータ26のフィードバック制御サイクル以内でのCRAM内のエラーチェック・訂正を可能とし、モータ停止などのシステム障害を回避することができる。
 また、実施例2に示した割込信号IF17を有するCRAM制御部1を使用した場合、モータ26の惰性動作時間や、非稼働時間情報を利用したFPGA21のエラーチェックが可能なため、さらに効率良くモータ26の異常発生率を抑制することができる。
 本実施例によれば、プログラマブルデバイスにおけるソフトエラーの検出時間を短縮することができ、FPGAソフトエラーに起因する装置異常から短時間で復旧することができ、電子システム装置の信頼性を向上することができる。
 図13は、実施例5に係るプログラマブルデバイスの構成図である。前記実施例におけるCRAM制御部1および1Aは、FPGAのユーザロジックとして実装されるため、CRAM制御部自身がソフトエラーによって破壊される可能性がある。そこで本実施例では、プログラマブルデバイス102内のCRAM制御部1Bは、CRAM制御部自身の動作をチェックするための内部診断部27を有する構成とした。
 内部診断部27は、エラーデータ挿入部28と比較部29で構成される。エラーデータ挿入部28は、CRAM9から読み出した任意のデータフレーム2aに対し、意図的にエラーデータを挿入して再度CRAM9へ書き戻す(28a)。その後比較部29は、エラー検出ブロック#0またはエラー訂正ブロック#1から出力されるエラー情報(発生アドレスおよびデータ)8bと、故意に書き込んだエラー情報28aとを比較する。比較結果が一致しない場合、CRAM制御部1Bが何らかの異常状態であるとしてFPGAまたは外部にエラー信号27aを出力する。
  内部診断部27も他の機能ブロック同様、領域テーブル3および実行順序テーブル4の設定データに従って、シーケンサ部5の制御信号5cによって動作する。
 また、図示していないが、上記内部診断部27では、CRAM9の各データフレームのリードライトチェックを複数回実施することで異常部位を弁別することができる。例えば、全領域のフレームに対してALL“0”またはALL“1”のリードライトチェックを行い、複数回同じデータフレームでエラーが検出される場合はCRAM9側の異常とする。また、エラーを挿入してもエラー検出信号が出力されない場合や違うアドレスのデータフレームでエラーが検出される場合は、CRAM制御部1Bの異常と判断できる。また、外部ROM50に格納されたコンフィギュレーションデータによる上書き訂正を使用し、リードライトチェックで異常が検出された場合は外部ROM50の異常と判断できる。
 また、本診断手法では、CRAMデータに異常値を書き込むため、通常ユーザロジックが動作している時間帯に診断を実施する場合は、ユーザロジックが使用していないデータフレームを利用して上記チェックを行う。FPGAの起動直後などでユーザロジックをまだ動作させていない時間帯に診断を実施できる場合には、CRAM9の全データフレームを対象としたチェックを実施する。
 また、CRAM制御部1Bでは、上記診断に加え、CRAM制御部1B自身の回路情報が格納されたCRAM領域を領域テーブル4に設定し、その領域のCRAMデータを定期的にチェックすることによってCRAM制御部1Bの診断を行う構成としてもよい。また、CRAM制御部1Bの主要部分を全て2重化し、出力値の比較を行なうことでCRAM制御部自身の異常をFPGA側へ通知する構成としても良い。
 また、内部診断部27のエラーデータ挿入部28を使えば、CRAM内に意図的に誤ったエラーデータを挿入できる。そのため、FPGAに擬似的なソフトエラー障害を発生させ、ソフトエラー発生時のシステム挙動の検証に使用しても良い。
 本実施例によれば、CRAM制御部自身のソフトエラー率を低減し、高信頼なCRAMエラー検出・訂正を実現することで、システム装置の装置異常を短時間で復旧することができ、電子システム装置の信頼性を向上することができる。
 1,1A,1B:CRAM御部、
 2:CRAMリードライト部、
 3:領域テーブル、
 4:実行順序テーブル、
 5:シーケンサ部、
 6:セレクタ部、
 7:機能ブロック部、
 8:エラー信号出力部、
 9:コンフィギュレーションメモリ(CRAM)、
 10:データフレーム、
 11:CRCエラーチェック部、
 12,15:冗長ビット格納部、
 13:CRC冗長ビット生成部、
 14:エラーチェック訂正部、
 16:冗長ビット生成部、
 17:割込信号IF、
 20:モータ制御装置、
 27:内部診断部、
 28:エラーデータ挿入部、
 29:比較部、
 50:外部ROM、
 90:通信装置、
 100,101,102:プログラマブルデバイス(FPGA)、
 200:モータ制御システム。

Claims (7)

  1.  コンフィギュレーションメモリを有するプログラマブルデバイスにおいて、
     前記コンフィギュレーションメモリの診断手段として、
     前記コンフィギュレーションメモリのデータをリード、ライトするリードライト部と、
     前記コンフィギュレーションメモリのデータに対してエラーチェックを行う機能ブロック部と、
     前記リードライト部と前記機能ブロック部に対し、前記コンフィギュレーションメモリ内の所定の領域のデータを所定の順序でエラーチェックを行うよう制御するシーケンサ部と、
     を備えることを特徴とするプログラマブルデバイス。
  2.  請求項1に記載のプログラマブルデバイスであって、
     前記コンフィギュレーションメモリの診断手段には、
     前記コンフィギュレーションメモリ内のエラーチェックを行う領域情報を格納する領域テーブルと、
     前記コンフィギュレーションメモリのエラーチェックを実行する順序情報を格納する実行順序テーブルと、
     を備えることを特徴とするプログラマブルデバイス。
  3.  請求項1または2に記載のプログラマブルデバイスであって、
     前記コンフィギュレーションメモリの診断手段には、少なくとも1つの入力ポートを有する割込信号入力部を有し、該入力ポートから入力する割込信号に基づいて指定されたエラーチェックの割り込み動作を実行することを特徴とするプログラマブルデバイス。
  4.  請求項1乃至3のいずれかに記載のプログラマブルデバイスであって、
     前記コンフィギュレーションメモリの診断手段には、該診断手段自身の正常動作を確認する内部診断部を備え、
     該内部診断部は、前記コンフィギュレーションメモリへエラーデータを挿入するエラーデータ挿入部と、挿入したエラー情報と、検出されたエラー情報を比較する比較部で構成されることを特徴とするプログラマブルデバイス。
  5.  請求項1乃至4のいずれかに記載のプログラマブルデバイスであって、
     前記機能ブロック部は、前記コンフィギュレーションメモリのエラー検出と訂正処理を行うものであって、処理内容に応じて複数の機能ブロックから構成され、各機能ブロックは必要に応じて追加・削除することが可能なモジュール構成としたことを特徴とするプログラマブルデバイス。
  6.  請求項1乃至5のいずれかに記載のプログラマブルデバイスであって、
     前記コンフィギュレーションメモリの診断手段には、前記機能ブロック部からのエラー信号を入力し、外部で必要な形式のエラー信号に変換して出力するエラー信号出力部を備えたことを特徴とするプログラマブルデバイス。
  7.  請求項1乃至6のいずれかに記載のプログラマブルデバイスを搭載した電子システム装置であって、
     当該電子システム装置は複数のユニットで構成され、前記プログラマブルデバイスは各ユニットに搭載されていることを特徴とする電子システム装置。
PCT/JP2013/080336 2013-11-08 2013-11-08 プログラマブルデバイス及びこれを用いた電子システム装置 WO2015068285A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015546247A JP6408482B2 (ja) 2013-11-08 2013-11-08 プログラマブルデバイス及びこれを用いた電子システム装置
PCT/JP2013/080336 WO2015068285A1 (ja) 2013-11-08 2013-11-08 プログラマブルデバイス及びこれを用いた電子システム装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/080336 WO2015068285A1 (ja) 2013-11-08 2013-11-08 プログラマブルデバイス及びこれを用いた電子システム装置

Publications (1)

Publication Number Publication Date
WO2015068285A1 true WO2015068285A1 (ja) 2015-05-14

Family

ID=53041086

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/080336 WO2015068285A1 (ja) 2013-11-08 2013-11-08 プログラマブルデバイス及びこれを用いた電子システム装置

Country Status (2)

Country Link
JP (1) JP6408482B2 (ja)
WO (1) WO2015068285A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017002157A1 (ja) * 2015-06-29 2017-01-05 株式会社日立製作所 計算機システム及び計算機システムの制御方法
CN108491288A (zh) * 2017-02-21 2018-09-04 英特尔公司 优先化错误检测与调度
WO2019163227A1 (ja) * 2018-02-21 2019-08-29 日立オートモティブシステムズ株式会社 電子制御装置、構成メモリのエラー検出方法
WO2021152887A1 (ja) 2020-01-27 2021-08-05 株式会社日立製作所 プログラマブルデバイス及びこれを用いた制御コントローラ

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235074A (ja) * 2004-02-23 2005-09-02 Fujitsu Ltd Fpgaのソフトエラー補正方法
JP2005349082A (ja) * 2004-06-14 2005-12-22 Toshiba Corp X線コンピュータ断層撮影装置
JP2007058419A (ja) * 2005-08-23 2007-03-08 Hitachi Ltd Pld上のメモリ内の情報に従って構築される論理回路を備えたストレージシステム
JP2007293856A (ja) * 2006-04-21 2007-11-08 Altera Corp プログラマブルデバイスに対するソフトエラーロケーションおよび感度検出
JP2010226667A (ja) * 2009-03-25 2010-10-07 Fujitsu Ltd 集積回路及びコンフィギュレーション方法
JP2013187699A (ja) * 2012-03-07 2013-09-19 Fujitsu Telecom Networks Ltd Fpga構成処理制御回路
JP2013210767A (ja) * 2012-03-30 2013-10-10 Of Networks:Kk メモリ診断装置、メモリ診断プログラム及び機器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012009098A (ja) * 2010-06-23 2012-01-12 Fujitsu Kyushu Network Technologies Ltd プログラム可能論理デバイス及びその試験方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005235074A (ja) * 2004-02-23 2005-09-02 Fujitsu Ltd Fpgaのソフトエラー補正方法
JP2005349082A (ja) * 2004-06-14 2005-12-22 Toshiba Corp X線コンピュータ断層撮影装置
JP2007058419A (ja) * 2005-08-23 2007-03-08 Hitachi Ltd Pld上のメモリ内の情報に従って構築される論理回路を備えたストレージシステム
JP2007293856A (ja) * 2006-04-21 2007-11-08 Altera Corp プログラマブルデバイスに対するソフトエラーロケーションおよび感度検出
JP2010226667A (ja) * 2009-03-25 2010-10-07 Fujitsu Ltd 集積回路及びコンフィギュレーション方法
JP2013187699A (ja) * 2012-03-07 2013-09-19 Fujitsu Telecom Networks Ltd Fpga構成処理制御回路
JP2013210767A (ja) * 2012-03-30 2013-10-10 Of Networks:Kk メモリ診断装置、メモリ診断プログラム及び機器

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017002157A1 (ja) * 2015-06-29 2017-01-05 株式会社日立製作所 計算機システム及び計算機システムの制御方法
JPWO2017002157A1 (ja) * 2015-06-29 2018-03-29 株式会社日立製作所 計算機システム及び計算機システムの制御方法
CN108491288A (zh) * 2017-02-21 2018-09-04 英特尔公司 优先化错误检测与调度
CN108491288B (zh) * 2017-02-21 2023-09-08 英特尔公司 优先化错误检测与调度
WO2019163227A1 (ja) * 2018-02-21 2019-08-29 日立オートモティブシステムズ株式会社 電子制御装置、構成メモリのエラー検出方法
US11360838B2 (en) 2018-02-21 2022-06-14 Hitachi Astemo, Ltd. Electronic control device and preferential error detection method of configuration memory
WO2021152887A1 (ja) 2020-01-27 2021-08-05 株式会社日立製作所 プログラマブルデバイス及びこれを用いた制御コントローラ
US11822425B2 (en) 2020-01-27 2023-11-21 Hitachi, Ltd. Programmable device, and controller using the same

Also Published As

Publication number Publication date
JP6408482B2 (ja) 2018-10-17
JPWO2015068285A1 (ja) 2017-03-09

Similar Documents

Publication Publication Date Title
JP5014899B2 (ja) 再構成可能デバイス
JP6496562B2 (ja) 半導体装置、診断テスト方法及び診断テスト回路
US20080046802A1 (en) Memory controller and method of controlling memory
JP6282482B2 (ja) プログラマブル回路装置、コンフィギュレーション情報修復方法
JP6408482B2 (ja) プログラマブルデバイス及びこれを用いた電子システム装置
US10114356B2 (en) Method and apparatus for controlling a physical unit in an automation system
JP2006157482A (ja) プログラマブル・ロジック・デバイス、情報処理装置、プログラマブル・ロジック・デバイスの制御方法
JP5451087B2 (ja) 障害処理装置および方法
JP6341795B2 (ja) マイクロコンピュータ及びマイクロコンピュータシステム
US7346812B1 (en) Apparatus and method for implementing programmable levels of error severity
JP2770913B2 (ja) パリティの置換装置及び方法
JP2014052781A (ja) Fpga監視制御回路
JP2013238926A (ja) 信号処理回路およびそれを用いた試験装置
US9043655B2 (en) Apparatus and control method
JP6332134B2 (ja) メモリ診断回路
JP2014229130A (ja) 高信頼プロセッサおよびそれを用いた高信頼制御装置
JP7268554B2 (ja) 制御装置および制御方法
JP2009116978A (ja) 半導体記憶装置
JP2015201813A (ja) プログラマブルゲートアレイ
JP2015201814A (ja) プログラマブルゲートアレイ及び電子装置
JP2014225110A (ja) 安全コントローラ
WO2016042751A1 (ja) メモリ診断回路
JPH03273344A (ja) フォールトトレラントシステム
JP2005250524A (ja) コンピュータシステム
JPS6155744A (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: 13897160

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015546247

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13897160

Country of ref document: EP

Kind code of ref document: A1