WO2014147780A1 - 論理処理装置及びその処理方法 - Google Patents

論理処理装置及びその処理方法 Download PDF

Info

Publication number
WO2014147780A1
WO2014147780A1 PCT/JP2013/057996 JP2013057996W WO2014147780A1 WO 2014147780 A1 WO2014147780 A1 WO 2014147780A1 JP 2013057996 W JP2013057996 W JP 2013057996W WO 2014147780 A1 WO2014147780 A1 WO 2014147780A1
Authority
WO
WIPO (PCT)
Prior art keywords
configuration data
programmable logic
logic device
areas
configuration
Prior art date
Application number
PCT/JP2013/057996
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 JP2015506475A priority Critical patent/JPWO2014147780A1/ja
Priority to PCT/JP2013/057996 priority patent/WO2014147780A1/ja
Publication of WO2014147780A1 publication Critical patent/WO2014147780A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error

Definitions

  • the present invention relates to a logic processing device and a processing method thereof.
  • the logic processing unit is configured by logic components and realizes a predetermined function.
  • the spare logic processing unit is configured to be reconfigurable with logic components, and can reproduce a predetermined function of the logic processing unit.
  • the data holding unit holds the configuration data of the logic processing unit.
  • the failure detection means detects the occurrence of a failure in the logic processing unit.
  • the reconfiguring unit reconfigures the standby logic processing unit to have the same logic circuit configuration as the logic processing unit based on the configuration data read from the data holding unit when the failure detection is detected by the failure detecting unit.
  • the functional component includes a plurality of functional circuit units having a predetermined function composed of logical components and a spare functional circuit unit.
  • the common bus interfaces input / output signals.
  • the first configuration selection unit selects the first configuration type data specified in the first configuration type table corresponding to a failure of any of the plurality of functional circuit units.
  • the first memory stores first placement and routing data that designates a connection state between the functional circuit units.
  • the first transfer unit extracts the first placement and routing data, and writes the connection between the circuit units and the circuit of the spare function circuit unit.
  • a reconfigurable digital logic unit is known (for example, see Patent Document 3).
  • the plurality of logic cells have configurable characteristics.
  • the memory has a plurality of microprograms containing information about the functionality of the plurality of logic cells, and at least one of the microprograms is reprogrammable during at least the current operation of the logic unit in relation to the defined application. is there.
  • the first means selects at least one microprogram.
  • the second means configures the logic cell according to at least the functional information of the microprogram selected during the current operation of the logic unit.
  • the information processing apparatus has a logic processing unit and a backup logic processing unit.
  • the standby logic processing unit is reconfigured to have the same logic circuit configuration as the logic processing unit. In this case, if there is a failure in the backup logical processing unit, it cannot be repaired.
  • the spare logical processing unit needs to have the same number of cells as the logical processing unit having the maximum number of cells among a plurality of logical processing units. This is because the spare logical processing unit needs the same number of cells as the logical processing unit in order for the spare logical processing unit to replace the logical processing unit. Therefore, the spare logic processing unit requires a large number of cells and is very inefficient. In addition, since the number of cells is limited in the logic processing unit and the backup logic processing unit, the design is limited.
  • An object of the present invention is to provide a logic processing apparatus and a processing method thereof that can repair an internal failure of a programmable logic device in a short time.
  • the logic processing apparatus includes a programmable logic device capable of programming logic for each of a plurality of areas, and a different area among the plurality of areas of the programmable logic device as an unused area and an area other than the unused area as a used area.
  • a configuration memory that stores a plurality of configuration data for realizing the same function, and a selection circuit that selects one of the plurality of configuration data to program the logic of the programmable logic device; The selection circuit selects configuration data that does not cause an error based on the operation of the programmable logic device from among the plurality of configuration data.
  • the internal failure of the programmable logic device can be repaired in a short time.
  • FIG. 1 is a diagram illustrating an example of a plurality of configuration data of the programmable logic device according to the first embodiment.
  • FIG. 2 is a diagram for explaining a method for repairing a programmable logic device.
  • FIG. 3 is a diagram illustrating a configuration example of the logic processing device according to the first embodiment.
  • FIG. 4 is a diagram illustrating an error detection method of the programmable logic device.
  • FIG. 5 is a flowchart showing a processing method of the selection circuit of FIG.
  • FIG. 6 is a diagram illustrating a configuration example of a logic processing device according to the second embodiment.
  • FIG. 7 is a flowchart showing a processing method of the selection circuit of FIG.
  • FIG. 8 is a diagram illustrating a configuration example of a logic processing device according to the third embodiment.
  • FIG. 9 is a diagram illustrating a configuration example of the configuration memory of FIG.
  • FIG. 10 is a flowchart showing a processing method of the selection circuit of FIG.
  • FIG. 11 is a diagram illustrating an example of a plurality of configuration data of the programmable logic device according to the fourth embodiment.
  • FIG. 12 is a diagram for explaining a method for repairing a programmable logic device.
  • FIG. 13 is a diagram illustrating a configuration example of a logic processing device according to the fifth embodiment.
  • FIG. 14 is a diagram illustrating a configuration example of a logic processing device according to the sixth embodiment.
  • FIG. 15 is a diagram illustrating an example of configuration data.
  • FIG. 16 is a diagram illustrating a configuration example of a part of the programmable logic device of FIG.
  • FIG. 17 is a diagram showing a configuration example of a table stored in the ROM of FIG.
  • FIG. 18 is a flowchart showing a processing method of the selection circuit of FIG.
  • FIG. 1 is a diagram illustrating an example of a plurality of configuration data CF1 to CF9 of the programmable logic device (PLD) according to the first embodiment.
  • the program logic device is, for example, an FPGA (Field Programmable Gate Array) and has a programmable logic gate and programmable wiring, and is a reconfigurable logic device.
  • the logic gate is composed of a plurality of logic cells.
  • HDL hardware description language
  • a configuration in which the programmable logic device reads this binary file and generates an internal circuit is called configuration. This binary file is called configuration data.
  • the programmable logic device can divide an internal logic cell region into a plurality of regions R1 to R9, and can program logic for each of the plurality of regions R1 to R9.
  • the regions R1 to R9 are divided into an unused region that does not use all the logic cells and a use region that can use the logic cells.
  • a plurality of configuration data CF1 to CF9 are generated for realizing the same function by using different areas of the plurality of areas R1 to R9 as unused areas and areas other than the unused areas as used areas. To do.
  • the configuration data CF1 is data for configuring the area R1 as an unused area and the areas R2 to R9 as used areas.
  • the configuration data CF2 is data for configuring the area R2 as an unused area and the areas R1, R3 to R9 as used areas.
  • the configuration data CF9 is data for configuring the area R9 as an unused area and the areas R1 to R8 as used areas.
  • the configuration data CF1 to CF9 are generated so that the unused areas are different from each other, and the unused areas are assigned at least once to all the areas R1 to R9.
  • each of the configuration data CF1 to CF9 has one area as an unused area and eight areas as used areas.
  • the programmable logic device can make any region R1 to R9 an unused region by selecting any one of the configuration data CF1 to CF9. Since the programmable logic device cannot predict in which region R1 to R9 the failure occurs, the programmable logic device is selected by selecting the configuration data CF1 to CF9 whose failure location matches the unused region when the failure of the programmable logic device occurs. Repair the malfunction.
  • FIG. 2 is a diagram for explaining a method for repairing a programmable logic device.
  • a failure has occurred in the region R2 of the programmable logic device.
  • the configuration data CF1 is used for configuration
  • the programmable logic device cannot operate normally because the region R2 where the failure has occurred is a usage region.
  • the configuration is performed by the configuration data CF2
  • the programmable logic device can operate normally because the region R2 where the failure has occurred is an unused region. In this manner, the programmable logic device can be restored by selecting the configuration data CF1 to CF9 so that the area where the failure has occurred becomes an unused area.
  • FIG. 3 is a diagram illustrating a configuration example of the logic processing device according to the first embodiment.
  • the logic processing apparatus includes a programmable logic device 301, n configuration memories MEM 1 to MEMn, and a selection circuit 303.
  • n 9.
  • the selection circuit 303 has a nonvolatile memory 304.
  • the programmable logic device 301 is, for example, an FPGA, and can program logic for each of the n regions R1 to Rn.
  • the plurality of configuration memories MEM1 to MEMn are, for example, ROMs (Read Only Memory), and as shown in FIG. 1, different regions among the plurality of regions R1 to Rn of the programmable logic device 301 are used as unused regions.
  • a plurality of configuration data CF1 to CFn for realizing the same function as each other are stored as areas other than those used.
  • the selection circuit 303 validates any one of the selection signals SEL1 to SELn according to the configuration data number stored in the nonvolatile memory 304. That is, the selection circuit 303 selects one configuration memory among the plurality of configuration memories MEM1 to MEMn.
  • any one of the plurality of configuration data CF1 to CFn is transferred to the programmable logic device 301 via the bus 302 according to the valid signal among the selection signals SEL1 to SELn. Output to.
  • the selection circuit 303 outputs the reset signal RS to the programmable logic device 301.
  • the programmable logic device 301 performs configuration based on the configuration data input from any of the configuration memories MEM1 to MEMn. As described above, the selection circuit 303 selects any one of the plurality of configuration data CF1 to CFn to program the logic of the programmable logic device 301.
  • the programmable logic device 301 performs logic processing, and outputs an error signal ER when an error occurs in any of the regions R1 to Rn.
  • the selection circuit 303 detects the error signal ER, the selection circuit 303 changes the configuration data number stored in the nonvolatile memory 304 and repeats the same operation as described above. If the error signal ER is not detected, the configuration data number in the nonvolatile memory 304 is fixed. In the configuration data CF1 to CFn corresponding to the configuration data number, the areas R1 to Rn where the error has occurred are unused areas, and the programmable logic device 301 can operate normally. Further, when the error signal ER is generated in all the configuration data CF1 to CFn, the selection circuit 303 outputs a fault signal FT to notify that it cannot be repaired.
  • FIG. 4 is a diagram illustrating an example of an error detection method of the programmable logic device 301.
  • the programmable logic device 301 includes an internal bus 400, a functional block 401, and a functional block 402.
  • Each of the functional blocks 401 and 402 includes one or a plurality of regions among the regions R1 to Rn.
  • the functional block block 401 is a hard disk drive controller, and is composed of areas R2 to R5.
  • the functional block block block 402 is a USB (Universal Serial ⁇ Bus) controller, and is composed of regions R6 to R9.
  • USB Universal Serial ⁇ Bus
  • each functional block 401 and 402 by configuring each functional block 401 and 402 with a plurality of regions, it is possible to eliminate the restriction on the number of logic cells in each region R1 to R9. That is, the number of logic cells in each of the regions R1 to R9 need not be the maximum number of logic cells in the functional blocks 401 and 402.
  • the functional block 401 includes a flip-flop 411 and an error detection circuit 412.
  • the flip-flop 411 is, for example, a flip-flop connected to an input node of a logic cell, or a flip-flop connected to an output node of a logic cell, and a plurality of flip-flops normally arranged in the programmable logic device 301 It is.
  • the flip-flop 411 stores, for example, 4-bit data and its parity bit.
  • the error detection circuit 412 calculates a parity bit based on the 4-bit data stored in the flip-flop 411. When the calculated parity bit is equal to the parity bit in the flip-flop 411, the error detection circuit 412 determines that the error is normal and outputs an error signal. When it is different, an error signal is output.
  • the error detection circuit 412 is connected to all or some of the flip-flops 411 in the programmable logic device 301.
  • the programmable logic device 301 outputs an error signal ER to the selection circuit 303 when any of the plurality of error detection circuits 412 outputs an error signal.
  • the functional block 402 includes a processing block 421 and a monitoring unit 422.
  • the processing block 421 is a block that performs logical processing for realizing the function.
  • the monitoring unit 422 outputs a start signal ST to the processing block 421.
  • the processing block 421 starts the logical processing when the start signal ST is input, and outputs the completion signal DN to the monitoring unit 422 when the logical processing ends. If the completion signal DN is input within the specified time after the start signal ST is output, the monitoring unit 422 determines that it is normal and does not output the error signal. If the completion signal DN is not input within the specified time, an error occurs.
  • the signal ER is output.
  • error detection methods of the functional block 401 and the error detection method of the functional block 402 have been described, errors may be detected by the same method for all functional blocks, or errors may be detected by different methods. Also good.
  • ECC Error Correction Code
  • CRC Cyclic An error may be detected using Redundancy Check.
  • the flip-flop 411 may be a register or a state machine.
  • FIG. 5 is a flowchart showing a processing method of the selection circuit 303 in FIG. For example, when the logic processing device is powered on, the selection circuit 303 performs the processing of FIG.
  • step S501 the selection circuit 303 reads the configuration data number from the nonvolatile memory 304.
  • the initial value of the configuration data number stored in the nonvolatile memory 304 is 1.
  • the selection circuit 303 validates one of the selection signals SEL1 to SELn according to the read configuration data number and invalidates the rest. For example, when the configuration data number is 1, the selection signal SEL1 becomes valid and the remaining selection signals SEL2 to SELn become invalid.
  • the configuration memory in which the selection signals SEL1 to SELn are valid outputs the configuration data to the programmable logic device 301, and the configuration memory in which the selection signals SEL1 to SELn are invalid is the configuration data. Is not output. For example, when the configuration data number is 1, the configuration memory MEM1 outputs the configuration data CF1 to the programmable logic device 301.
  • step S503 the selection circuit 303 outputs the reset signal RS to the programmable logic device 301.
  • the programmable logic device 301 performs configuration based on the configuration data input via the bus 302. Thereafter, the programmable logic device 301 performs logic processing, and outputs an error signal ER when an error occurs, and does not output an error signal ER when it operates normally.
  • step S504 the selection circuit 303 checks whether or not the error signal ER is detected. If the error signal ER is detected, the process proceeds to step S505.
  • step S505 the selection circuit 303 increments the configuration data number stored in the nonvolatile memory 304. As a result, the configuration data number is changed from 1 to 2.
  • step S506 the selection circuit 303 checks whether or not the configuration data number stored in the nonvolatile memory 304 is greater than n. If not, the process returns to step S502, and the above processing is repeated for the changed configuration data number. If the programmable logic device 301 operates normally, the error signal ER is not detected in step S504, and the configuration data number of the nonvolatile memory 304 is fixed. As a result, the configuration data is also determined, and the failure of the programmable logic device 301 is repaired. When the power is turned on next time, in step S501, the selection circuit 303 reads the configuration data number from the nonvolatile memory 304. Therefore, the repaired configuration data is selected, and the programmable logic device 301 operates normally.
  • step S506 if the configuration data number is greater than n, it means that the error signal ER has been detected for all the configuration data CF1 to CFn, and the process proceeds to step S507.
  • step S507 the selection circuit 303 outputs a fault signal FT to notify that the programmable logic device 301 cannot be repaired.
  • the logic processing device may stop its operation.
  • the programmable logic device 301 may be a temporary soft error due to cosmic rays or the like, so the logic processing device returns the configuration data number stored in the nonvolatile memory 304 to the initial value, and again The above processing may be repeated.
  • the selection circuit 303 selects configuration data that does not cause an error based on the operation of the programmable logic device 301 among the plurality of configuration data CF1 to CFn. Specifically, the selection circuit 303 sequentially selects a plurality of configuration data CF1 to CFn, does not select the configuration data when the programmable logic device 301 outputs the error signal ER, and the programmable logic device 301 has an error. The configuration data when the signal ER is not output is selected, and the logic of the programmable logic device 301 is programmed.
  • the failure of the programmable logic device 301 can be automatically repaired in a short time.
  • the number of logic cells required for the unused area is not limited, and areas R1 to Rn of any size can be provided.
  • the area other than the unused area can be used as one block, circuit design can be performed flexibly.
  • a plurality of functional blocks having an arbitrary size can be allocated in a block in an area other than an unused area.
  • FIG. 6 is a diagram illustrating a configuration example of a logic processing device according to the second embodiment.
  • the logic processing device is, for example, a computer system.
  • This embodiment (FIG. 6) is different from the first embodiment (FIG. 3) in that the processor 601, ROM 602, RAM (Random Access Memory) 603, video controller 604, bus 605, hard disk drive 621, PCI (Peripheral). Component Interconnect) Express card 622, LAN (Local Area Network) 623, and USB device 624 are added.
  • the points of the present embodiment different from the first embodiment will be described.
  • the processor 601, ROM 602, RAM 603, video controller 604, and programmable logic device 301 are connected to the bus 605.
  • the processor 601 is, for example, a central processing unit (CPU).
  • the ROM 602 stores a boot program and the like.
  • a RAM 603 is a main memory.
  • the video controller 604 is a controller for displaying on a display device.
  • the hard disk drive device 621 can store data in a hard disk.
  • the PCI Express card 622 can be converted into an interface such as SCSI (Small Computer System Interface).
  • the LAN 623 is a local area network and can connect other network devices.
  • the USB device 624 is, for example, a keyboard, a mouse, or a DVD (Digital Versatile® Disc) device.
  • the programmable logic device 301 has functional blocks of a hard disk drive controller 611, a PCI express controller 612, a LAN controller 613, and a USB controller 614, for example, depending on the configuration.
  • the hard disk drive controller 611 controls the hard disk drive device 621.
  • the PCI express controller 612 controls the PCI express card 622.
  • the LAN controller 613 controls the LAN 623.
  • the USB controller 614 controls the USB device 624.
  • the processor 601 can output the count-up signal CU to the selection circuit 303.
  • the selection circuit 303 increments the configuration data number stored in the nonvolatile memory 304.
  • the processor 601 can output the reset signal RS to the programmable logic device 301.
  • the reset signal RS is input, the programmable logic device 301 performs configuration based on the configuration data input via the bus 302.
  • the programmable logic device 301 outputs an error signal ER to the processor 601.
  • the programmable logic device 301 may not operate normally even if one internal logic cell fails. In the present embodiment, the failure of the programmable logic device 301 is repaired by setting the configuration data CF1 to CFn.
  • FIG. 7 is a flowchart showing a processing method of the selection circuit 303 in FIG. For example, when the logic processing apparatus is powered on, the selection circuit 303 performs the process of FIG.
  • step S701 the selection circuit 303 reads the configuration data number from the nonvolatile memory 304.
  • the initial value of the configuration data number stored in the nonvolatile memory 304 is 1.
  • the selection circuit 303 enables one of the selection signals SEL1 to SELn and disables the rest according to the read configuration data number. For example, when the configuration data number is 1, the selection signal SEL1 becomes valid and the remaining selection signals SEL2 to SELn become invalid.
  • the configuration memory in which the selection signals SEL1 to SELn are valid outputs the configuration data to the programmable logic device 301, and the configuration memory in which the selection signals SEL1 to SELn are invalid is the configuration data. Is not output. For example, when the configuration data number is 1, the configuration memory MEM1 outputs the configuration data CF1 to the programmable logic device 301.
  • the processor 601 outputs the reset signal RS to the programmable logic device 301 after a necessary time has elapsed in consideration of the time for the selection circuit 303 to enable the next selection signals SEL1 to SELn.
  • the reset signal RS is input
  • the programmable logic device 301 performs configuration based on the configuration data input via the bus 302. Thereafter, the programmable logic device 301 performs logic processing, and outputs an error signal ER when an error occurs, and does not output an error signal ER when it operates normally.
  • the processor 601 outputs a count-up signal CU to the selection circuit 303.
  • step S703 the selection circuit 303 checks whether or not the count-up signal CU is detected. If the count-up signal CU is detected, the process proceeds to step S704.
  • step S704 the selection circuit 303 increments the configuration data number stored in the nonvolatile memory 304. As a result, the configuration data number is changed from 1 to 2.
  • step S705 the selection circuit 303 checks whether the configuration data number stored in the nonvolatile memory 304 is greater than n. If not, the process returns to step S702, and the above processing is repeated for the changed configuration data number. If the programmable logic device 301 operates normally, the count-up signal CU is not detected in step S703, and the configuration data number of the nonvolatile memory 304 is determined. As a result, the configuration data is also determined, and the failure of the programmable logic device 301 is repaired. When the power is turned on next time, in step S701, the selection circuit 303 reads the configuration data number from the nonvolatile memory 304. Therefore, the repaired configuration data is selected, and the programmable logic device 301 operates normally.
  • step S705 if the configuration data number becomes larger than n, it means that the count-up signal CU has been detected for all the configuration data CF1 to CFn, and the process proceeds to step S706.
  • step S706 the selection circuit 303 outputs a fault signal FT to notify that the programmable logic device 301 cannot be repaired.
  • the processor 601 causes the selection circuit 303 to select the next configuration data CF1 to CFn.
  • This embodiment can obtain the same effects as those of the first embodiment.
  • FIG. 8 is a diagram illustrating a configuration example of a logic processing device according to the third embodiment.
  • This embodiment differs from the second embodiment (FIG. 6) in that n configuration memories MEM1 to MEMn are changed to one configuration memory MEM.
  • FIG. 8 the points of the present embodiment different from the second embodiment will be described.
  • the configuration memory MEM is, for example, a ROM, and stores a plurality of configuration data CF1 to CFn at different addresses.
  • the selection circuit 303 selects one address AD among the plurality of addresses according to the configuration data number stored in the nonvolatile memory 304, and outputs the selected address AD to the configuration memory MEM.
  • the configuration memory MEM outputs configuration data stored in the address AD to the programmable logic device 301 via the bus 302.
  • FIG. 9 is a diagram illustrating a configuration example of the configuration memory MEM in FIG.
  • the configuration memory MEM stores n pieces of configuration data CF1 to CFn using n addresses AD1 to ADn as start addresses.
  • the configuration memory MEM receives the address AD, and outputs the configuration data stored in the address AD to the programmable logic device 301 via the bus 302. For example, when the address AD is the address AD1, the configuration memory MEM outputs the configuration data CF1 stored in the address AD1 to the programmable logic device 301.
  • the selection circuit 303 selects and outputs one address among the plurality of addresses AD1 to ADn.
  • FIG. 10 is a flowchart showing a processing method of the selection circuit 303 in FIG. For example, when the logic processing apparatus is powered on, the selection circuit 303 performs the process of FIG.
  • step S1001 the selection circuit 303 reads the configuration data number from the nonvolatile memory 304.
  • the initial value of the configuration data number stored in the nonvolatile memory 304 is 1.
  • the selection circuit 303 outputs a read start address AD according to the read configuration data number. For example, when the configuration data number is 1, the read start address AD is the address AD1.
  • the configuration memory MEM outputs configuration data stored in the read start address AD to the programmable logic device 301. For example, when the read start address AD is the address AD1, the configuration memory MEM outputs the configuration data CF1 to the programmable logic device 301.
  • the processor 601 outputs the reset signal RS to the programmable logic device 301 after a necessary time has elapsed in consideration of the time for the selection circuit 303 to enable the next selection signals SEL1 to SELn.
  • the reset signal RS is input
  • the programmable logic device 301 performs configuration based on the configuration data input via the bus 302. Thereafter, the programmable logic device 301 performs logic processing, and outputs an error signal ER when an error occurs, and does not output an error signal ER when it operates normally.
  • the processor 601 outputs a count-up signal CU to the selection circuit 303.
  • step S1003 the selection circuit 303 checks whether or not the count-up signal CU is detected. If the count-up signal CU is detected, the process proceeds to step S1004.
  • step S1004 the selection circuit 303 increments the configuration data number stored in the nonvolatile memory 304. As a result, the configuration data number is changed from 1 to 2.
  • step S1005 the selection circuit 303 checks whether the configuration data number stored in the nonvolatile memory 304 is greater than n. If not, the process returns to step S1002, and the above processing is repeated for the changed configuration data number. If the programmable logic device 301 operates normally, the count-up signal CU is not detected in step S1003, and the configuration data number of the nonvolatile memory 304 is determined. As a result, the configuration data is also determined, and the failure of the programmable logic device 301 is repaired. When the power is turned on next time, the selection circuit 303 reads the configuration data number from the nonvolatile memory 304 in step S1001, so that the configuration data after the repair is selected, and the programmable logic device 301 operates normally.
  • step S1005 if the configuration data number becomes larger than n, it means that the count-up signal CU has been detected for all the configuration data CF1 to CFn, and the process proceeds to step S1006.
  • step S1006 the selection circuit 303 outputs a fault signal FT to notify that the programmable logic device 301 cannot be repaired.
  • This embodiment can obtain the same effects as those of the second embodiment.
  • FIG. 11 is a diagram illustrating an example of a plurality of configuration data CF1 to CF36 of the programmable logic device 301 according to the fourth embodiment.
  • FIG. 11 is a diagram illustrating an example of a plurality of configuration data CF1 to CF36 of the programmable logic device 301 according to the fourth embodiment.
  • an internal logic cell region is divided into, for example, nine regions R1 to R9.
  • 36 different configurations for realizing the same function with each other using two different regions of the nine regions R1 to R9 as unused regions and regions other than the unused regions as used regions.
  • the configuration data CF1 is data for configuring the areas R1 and R2 as unused areas and the areas R3 to R9 as used areas.
  • the configuration data CF2 is data for configuring the areas R1 and R3 as unused areas and the areas R2, R4 to R9 as used areas.
  • the configuration data CF36 is data for configuring the areas R8 and R9 as unused areas and the areas R1 to R7 as used areas.
  • the configuration data CF1 to CF36 are generated such that the unused areas are different from each other, and combinations of all two areas of the areas R1 to R9 are allocated as unused areas.
  • the programmable logic device 301 can set any two areas R1 to R9 to unused areas by selecting any one of the configuration data CF1 to CF36.
  • the programmable logic device 301 repairs the failure of the programmable logic device 301 by selecting the configuration data CF1 to CF36 whose failure location matches the unused area when a failure occurs in one or two areas. To do.
  • FIG. 12 is a diagram for explaining a method for repairing the programmable logic device 301.
  • a failure has occurred in the regions R1 and R3 of the programmable logic device 301.
  • the configuration is performed using the configuration data CF1
  • the programmable logic device 301 cannot operate normally because the region R3 where the failure has occurred is a usage region.
  • the configuration is performed using the configuration data CF2
  • the regions R1 and R3 where the failure has occurred are unused regions, so that the programmable logic device 301 can operate normally.
  • the programmable logic device 301 can be restored by selecting the configuration data CF1 to CF36 so that the area where the failure has occurred becomes an unused area.
  • the configuration data may be generated so that there are three or more unused areas.
  • a combination of generated configuration data can be calculated by the following formula, and 36 configurations
  • the generation data CF1 to CF36 may be generated.
  • the combination of configuration data can be calculated by the following equation.
  • the programmable logic device 301 can repair the failure and operate normally.
  • the unused area may be one area or a plurality of areas.
  • FIG. 13 is a diagram illustrating a configuration example of a logic processing device according to the fifth embodiment.
  • a computer 1301 and a logical sum (OR) circuit 1302 are added to the third embodiment (FIG. 8).
  • OR logical sum
  • the hard disk drive device 621, the PCI express card 622, the computer 1301, and the USB device 624 are external devices that perform processing using the output signal of the programmable logic device 301.
  • the hard disk drive controller 611 is configured by a part of the regions R1 to R9 of the programmable logic device 301. When a failure occurs in the areas R1 to R9 constituting the hard disk drive controller 611, the hard disk drive device 621 generates an error and outputs an error signal ER1.
  • the PCI express controller 612 is configured by a part of the regions R1 to R9 of the programmable logic device 301. When a failure occurs in the areas R1 to R9 constituting the PCI express controller 612, the PCI express card 622 generates an error and outputs an error signal ER2.
  • the computer 1301 is connected to the LAN 623.
  • the LAN controller 613 is configured by a part of the regions R1 to R9 of the programmable logic device 301. When a failure occurs in the areas R1 to R9 constituting the LAN controller 613, the computer 1301 generates an error and outputs an error signal ER3.
  • the USB controller 614 is configured by a part of the regions R1 to R9 of the programmable logic device 301. When a failure occurs in the regions R1 to R9 constituting the USB controller 614, the USB device 624 generates an error and outputs an error signal ER4.
  • the OR circuit 1302 outputs a logical sum signal of the error signals ER1 to ER4 to the processor 601 as the error signal ER.
  • the processor 601 when the error signal ER is input, the processor 601 outputs the count-up signal CU to the selection circuit 303.
  • the selection circuit 303 does not select the configuration data in which the external devices 621, 622, 624, and 1301 generated an error among the plurality of configuration data CF1 to CFn, and the external circuit among the plurality of configuration data CF1 to CFn.
  • the devices 621, 622, 624, and 1301 select configuration data that does not cause an error.
  • the programmable logic device 301 cannot detect its own internal failure, and an external device such as the hard disk drive device 621, the PCI express card 622, the computer 1301, or the USB device 624 may detect an error.
  • an external device such as the hard disk drive device 621, the PCI express card 622, the computer 1301, or the USB device 624 may detect an error.
  • the external devices 621, 622, 624, and 1301 detect an error, the configuration data CF1 to CFn are switched and the failure is repaired in the same manner as described above.
  • FIG. 14 is a diagram illustrating a configuration example of a logic processing device according to the sixth embodiment.
  • an error display register 1401 is added to the third embodiment (FIG. 8).
  • FIG. 8 shows the third embodiment.
  • the error display register 1401 is provided in the programmable logic device 301.
  • the nonvolatile memory 304 is connected to the processor 601 through the bus 605.
  • the processor 601 can read and write the configuration data number in the nonvolatile memory 304.
  • a failure area in the programmable logic device 301 is specified using the error display register 1401, and configuration data that sets the failure area as an unused area is selected at a time.
  • FIG. 15 corresponds to FIG. 1 and shows an example of the configuration data CF1 to CF9.
  • Each of the configuration data CF1 to CF9 has one unused area NR and eight used areas U1 to U8.
  • FIG. 16 is a diagram illustrating a configuration example of a part of the programmable logic device 301 of FIG.
  • the programmable logic device 301 has eight regions R2 to R9 and an error display register 1401.
  • the areas R2 to R9 are areas set as the use areas U1 to U8 in the initial configuration data CF1.
  • the error display register 1401 stores an 8-bit error signal.
  • Each region R1 to R9 preferably constitutes one functional block.
  • the region R2 includes a logical sum circuit LG2, and outputs a logical sum signal of error signals output from the plurality of error detection circuits 412 in FIG. 4 as an error signal ER2. If any one of the error signals output from the plurality of error detection circuits 412 becomes “1”, the error signal ER2 becomes “1”. In the error signal ER2, “1” indicates that an error has occurred, and is written to bit 0 of the error display register 1401.
  • the region R9 has a logical sum circuit LG9, and outputs a logical sum signal of error signals output by the plurality of error detection circuits 412 in FIG. 4 as the error signal ER9. If any one of the error signals output from the plurality of error detection circuits 412 becomes “1”, the error signal ER9 becomes “1”. In the error signal ER9, “1” indicates that an error has occurred, and is written in bit 7 of the error display register 1401.
  • the error signals ER2 to ER9 in the areas R2 to R9 are written in bits 0 to 7 of the error display register 1401, respectively.
  • the error display register 1401 assigns the error signals ER2 to ER9 detected by the error detection circuit 412 of each region R2 to R9 to each bit.
  • the processor 601 reads out the error signals ER2 to ER9 stored in the error display register 1401 when it detects the error signals ER2 to ER9 of the regions R2 to R9 when the initial configuration data CF1 is used. It is possible to recognize which region of U1 to U8 has failed.
  • FIG. 17 is a diagram showing a configuration example of a table stored in the ROM 602 of FIG.
  • the table stores the correspondence between each bit number 1701 of the error detection register 1401 and the number 1702 of the configuration data CF2 to CF9 in which the areas U1 to U8 corresponding to the bit number 1701 are set as the unused area NR.
  • bit 0 of the error display register 1401 is “1”
  • configuration data CF2 in which the failure area U1 becomes the unused area NR is set.
  • the processor 601 uniquely obtains the numbers of the configuration data CF2 to CF9 having the failure area as the unused area NR based on the error signals ER2 to ER9 stored in the error display register 1401. be able to.
  • FIG. 18 is a flowchart showing a processing method of the selection circuit 303 in FIG. For example, when the logic processing apparatus is powered on, the selection circuit 303 performs the process of FIG.
  • step S1801 the selection circuit 303 reads the configuration data number from the nonvolatile memory 304.
  • the initial value of the configuration data number stored in the nonvolatile memory 304 is 1.
  • the selection circuit 303 outputs a read start address AD according to the read configuration data number. For example, when the configuration data number is 1, the read start address AD is the address AD1.
  • the configuration memory MEM outputs configuration data stored in the read start address AD to the programmable logic device 301. For example, when the read start address AD is the address AD1, the configuration memory MEM outputs the configuration data CF1 to the programmable logic device 301.
  • step S1803 the selection circuit 303 checks whether or not a write instruction from the processor 601 has been detected. If detected, the process proceeds to step S1804.
  • step S1804 the selection circuit 303 writes the configuration data number instructed to be written by the processor 601 to the nonvolatile memory 304. Thereafter, the process returns to step S1801, and the same processing as described above is repeated.
  • FIG. 19 is a flowchart showing a processing method of the processor 601 in FIG. For example, when the logic processing apparatus is powered on, the processor 601 performs the processing of FIG.
  • step S1901 the processor 601 reads the configuration data number from the nonvolatile memory 304.
  • the initial value of the configuration data number stored in the nonvolatile memory 304 is 1.
  • step S1902 the processor 601 outputs a reset signal RS to the programmable logic device 301 after a necessary time has elapsed.
  • the reset signal RS is input, the programmable logic device 301 performs configuration based on the configuration data input via the bus 302. Thereafter, the programmable logic device 301 performs logic processing, and outputs an error signal ER when an error occurs, and does not output an error signal ER when it operates normally.
  • step S1903 the processor 601 checks whether or not the error signal ER is detected, and if the error signal ER is detected, the process proceeds to step S1904. If the error signal ER is not detected, the configuration data number stored in the nonvolatile memory 304 is fixed to the initial value “1”, and it is not necessary to repair the failure.
  • the programmable logic device 301 can operate normally.
  • step S1904 the processor 601 checks whether or not the target configuration data number is an initial configuration data number. If it is an initial value, the process proceeds to step S1905.
  • step S1905 the processor 601 reads the error signals ER2 to ER9 stored in the error display register 1401.
  • step S1906 the processor 601 uses the table in FIG. 17 to obtain configuration data numbers that make the areas U1 to U8 where the error occurred become unused areas.
  • step S1907 the processor 601 writes the acquired configuration data number in the nonvolatile memory 304, and returns to step S1902. Then, the selection circuit 303 outputs the read start address AD according to the configuration data number in step S1802 of FIG. Then, the configuration memory MEM outputs the configuration data stored in the read start address AD to the programmable logic device 301.
  • step S1902 the processor 601 outputs a reset signal RS to the programmable logic device 301 after a necessary time has elapsed.
  • the reset signal RS is input
  • the programmable logic device 301 performs configuration based on the configuration data input via the bus 302. Thereafter, the programmable logic device 301 performs logic processing, and outputs an error signal ER when an error occurs, and does not output an error signal ER when it operates normally.
  • the error signal ER is not output.
  • step S1903 the processor 601 checks whether or not the error signal ER is detected, and if the error signal ER is detected, the process proceeds to step S1904. If the error signal ER is not detected, the configuration data number stored in the non-volatile memory 304 is determined, and the repair of the fault ends.
  • the programmable logic device 301 can operate normally.
  • step S1904 the processor 601 checks whether or not the target configuration data number is an initial configuration data number. In this case, since the configuration data number has been changed and is not an initial value, the process proceeds to step S1908.
  • step S1908 the processor 601 outputs a fault signal FT to notify that the programmable logic device 301 cannot be repaired.
  • the programmable logic device 301 can generate the error signals ER2 to ER9 for each of the plurality of regions R2 to R9.
  • the selection circuit 303 sets a region in which the error signal is generated among a plurality of regions R2 to R9 of the programmable logic device 301 as an unused region based on the error signal. Configuration data.
  • the error display register 1401 stores an error signal for each of the plurality of areas R2 to R9. Based on the error signals ER2 to ER9 stored in the error display register 401, the selection circuit 303 selects configuration data in which the area where the error signal is generated is an unused area.
  • This embodiment can obtain the same effects as those of the third embodiment. Further, in the present embodiment, since the failure area in the programmable logic device 301 is assigned to an unused area in one configuration after the occurrence of an error, the configuration is repeated as in the first to fifth embodiments. In this case, the failure of the programmable logic device 301 can be repaired immediately.
  • the internal failure of the programmable logic device can be repaired in a short time.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)

Abstract

 論理処理装置は、複数の領域毎にロジックをプログラム可能なプログラマブルロジックデバイス(301)と、前記プログラマブルロジックデバイスの複数の領域のうちの異なる領域を未使用領域として前記未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータを記憶するコンフィグレーションメモリ(MEM1~MEMn)と、前記複数のコンフィグレーションデータのうちのいずれか1個を選択して前記プログラマブルロジックデバイスのロジックをプログラムさせる選択回路(303)とを有し、前記選択回路は、前記複数のコンフィグレーションデータのうちの前記プログラマブルロジックデバイスの動作に基づくエラーが発生しないコンフィグレーションデータを選択する。

Description

論理処理装置及びその処理方法
 本発明は、論理処理装置及びその処理方法に関する。
 自己修復機能付き情報処理装置が知られている(例えば、特許文献1参照)。論理処理部は、論理構成要素により構成され所定機能を実現する。予備論理処理部は、論理構成要素により再構成可能に構成され論理処理部の所定機能を再現しうる。データ保持手段は、論理処理部の構成データを保持する。障害検出手段は、論理処理部での障害発生を検出する。再構成手段は、障害検出手段による障害発生検出時にデータ保持手段から読み出した構成データに基づき予備論理処理部を論理処理部と同一の論理回路構成になるように再構成する。
 また、複数の論理構成要素から成る回路の再構成が可能な集積回路が知られている(例えば、特許文献2参照)。機能構成部は、論理構成要素から成る所定の機能を備える複数の機能回路部と予備機能回路部とを備える。共通バスは、入出力信号をインタフェースする。第1の構成選択部は、複数の機能回路部のいずれかの故障に対応して第1の構成種別テーブルで指定される第1の構成種別データを選択する。第1のメモリは、機能回路部相互間の接続状態を指定する第1の配置配線データを記憶する。第1の転送部は、第1の配置配線データを抽出して、回路部相互間の接続と予備機能回路部の回路とを書き込む。
 また、再構成可能なディジタル論理ユニットが知られている(例えば、特許文献3参照)。複数の論理セルは、構成可能な特性を有する。メモリは、複数の論理セルの関数性に関する情報を含んだ複数のマイクロプログラムを有し、マイクロプログラムの少なくとも1つが定められたアプリケーションに関係して少なくとも論理ユニットの現在の動作中に再プログラム可能である。第1の手段は、少なくとも1つのマイクロプログラムを選択する。第2の手段は、少なくとも論理ユニットの現在の動作中に選択されたマイクロプログラムの関数性情報に応じて論理セルを構成する。
特開平8-44581号公報 特開2009-140353号公報 特表2005-510901号公報
 情報処理装置は、論理処理部と予備論理処理部とを有する。論理処理部での障害発生を検出すると、予備論理処理部を論理処理部と同一の論理回路構成になるように再構成する。この場合、予備論理処理部に障害がある場合には、修復することができない。
 また、予備論理処理部は、複数の論路処理部のうちの最大セル数の論理処理部と同じセル数を持つ必要がある。なぜなら、予備論理処理部が論理処理部を代替するためには、予備論理処理部は論理処理部と同じセル数が必要だからである。そのため、予備論理処理部は、必要とするセル数が多くなり、非常に非効率である。また、論理処理部及び予備論理処理部にセル数の制限があるため、設計に制限がある。
 本発明の目的は、短時間でプログラマブルロジックデバイスの内部故障を修復することができる論理処理装置及びその処理方法を提供することである。
 論理処理装置は、複数の領域毎にロジックをプログラム可能なプログラマブルロジックデバイスと、前記プログラマブルロジックデバイスの複数の領域のうちの異なる領域を未使用領域として前記未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータを記憶するコンフィグレーションメモリと、前記複数のコンフィグレーションデータのうちのいずれか1個を選択して前記プログラマブルロジックデバイスのロジックをプログラムさせる選択回路とを有し、前記選択回路は、前記複数のコンフィグレーションデータのうちの前記プログラマブルロジックデバイスの動作に基づくエラーが発生しないコンフィグレーションデータを選択する。
 コンフィグレーションメモリに複数のコンフィグレーションデータを記憶させることにより、短時間でプログラマブルロジックデバイスの内部故障を修復することができる。
図1は、第1の実施形態によるプログラマブルロジックデバイスの複数のコンフィグレーションデータの例を示す図である。 図2は、プログラマブルロジックデバイスの修復方法を説明するための図である。 図3は、第1の実施形態による論理処理装置の構成例を示す図である。 図4は、プログラマブルロジックデバイスのエラー検出方法を示す図である。 図5は、図3の選択回路の処理方法を示すフローチャートである。 図6は、第2の実施形態による論理処理装置の構成例を示す図である。 図7は、図6の選択回路の処理方法を示すフローチャートである。 図8は、第3の実施形態による論理処理装置の構成例を示す図である。 図9は、図8のコンフィグレーションメモリの構成例を示す図である。 図10は、図8の選択回路の処理方法を示すフローチャートである。 図11は、第4の実施形態によるプログラマブルロジックデバイスの複数のコンフィグレーションデータの例を示す図である。 図12は、プログラマブルロジックデバイスの修復方法を説明するための図である。 図13は、第5の実施形態による論理処理装置の構成例を示す図である。 図14は、第6の実施形態による論理処理装置の構成例を示す図である。 図15は、コンフィグレーションデータの例を示す図である。 図16は、図14のプログラマブルロジックデバイスの一部の構成例を示す図である。 図17は、図14のROMに記憶されるテーブルの構成例を示す図である。 図18は、図14の選択回路の処理方法を示すフローチャートである。 図19は、図14のプロセッサの処理方法を示すフローチャートである。
(第1の実施形態)
 図1は、第1の実施形態によるプログラマブルロジックデバイス(PLD)の複数のコンフィグレーションデータCF1~CF9の例を示す図である。プログラムロジックデバイスは、例えば、FPGA(Field Programmable Gate Array)であり、プログラム可能な論理ゲートとプログラム可能な配線とを有し、再構成可能なロジックデバイスである。論理ゲートは、複数の論理セルで構成される。論理ゲート及び配線をプログラムするには、ユーザがハードウエア記述言語(HDL)などで設計を行い、コンパイルによって論理ゲートの配置及び配線情報を含むバイナリファイルを生成する。プログラマブルロジックデバイスが、このバイナリファイルを読み込んで、内部回路を生成することをコンフィグレーションと呼ぶ。また、このバイナリファイルのことをコンフィグレーションデータと呼ぶ。
 プログラマブルロジックデバイスは、内部の論理セル領域を複数の領域R1~R9に分割し、複数の領域R1~R9毎にロジックをプログラム可能である。領域R1~R9は、全ての論理セルを一切使用しない未使用領域と、論理セルを使用することができる使用領域に分けられる。本実施形態では、複数の領域R1~R9のうちの異なる領域を未使用領域として未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータCF1~CF9を生成する。
 例えば、コンフィグレーションデータCF1は、領域R1を未使用領域とし、領域R2~R9を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF2は、領域R2を未使用領域とし、領域R1、R3~R9を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF9は、領域R9を未使用領域とし、領域R1~R8を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF1~CF9は、相互に未使用領域が異なり、全領域R1~R9に対して少なくとも1度は未使用領域が割り当てられるように生成する。図1の例では、コンフィグレーションデータCF1~CF9は、それぞれ、1個の領域を未使用領域として、8個の領域を使用領域とする。
 プログラマブルロジックデバイスは、コンフィグレーションデータCF1~CF9のうちのいずれか1つを選択することにより、任意の領域R1~R9を未使用領域にすることができる。プログラマブルロジックデバイスは、どの領域R1~R9で故障が起きるか予想できないため、プログラマブルロジックデバイスの故障発生時には故障個所が未使用領域に一致するコンフィグレーションデータCF1~CF9を選択することにより、プログラマブルロジックデバイスの故障を修復する。
 図2は、プログラマブルロジックデバイスの修復方法を説明するための図である。例えば、プログラマブルロジックデバイスの領域R2で故障が発生した例を説明する。コンフィグレーションデータCF1によりコンフィグレーションした場合、故障が発生した領域R2は使用領域であるため、プログラマブルロジックデバイスは、正常に動作することができない。これに対し、コンフィグレーションデータCF2によりコンフィグレーションした場合、故障が発生した領域R2は未使用領域であるため、プログラマブルロジックデバイスは、正常に動作することができる。このようにして、故障が発生した領域が未使用領域になるように、コンフィグレーションデータCF1~CF9を選択することにより、プログラマブルロジックデバイスを修復することができる。
 図3は、第1の実施形態による論理処理装置の構成例を示す図である。論理処理装置は、プログラマブルロジックデバイス301、n個のコンフィグレーションメモリMEM1~MEMn、及び選択回路303を有する。ここで、図1の場合、n=9である。選択回路303は、不揮発メモリ304を有する。
 プログラマブルロジックデバイス301は、例えばFPGAであり、n個の領域R1~Rn毎にロジックをプログラム可能である。複数のコンフィグレーションメモリMEM1~MEMnは、例えばROM(Read Only Memory)であり、図1のように、プログラマブルロジックデバイス301の複数の領域R1~Rnのうちの異なる領域を未使用領域として未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータCF1~CFnをそれぞれ記憶する。選択回路303は、不揮発メモリ304に記憶されたコンフィグレーションデータ番号に応じて、選択信号SEL1~SELnのいずれか1個を有効にする。すなわち、選択回路303は、複数のコンフィグレーションメモリMEM1~MEMnのうちの1個のコンフィグレーションメモリを選択する。コンフィグレーションメモリMEM1~MEMnは、選択信号SEL1~SELnのうちの有効の信号に応じて、複数のコンフィグレーションデータCF1~CFnのうちのいずれか1個を、バス302を介して、プログラマブルロジックデバイス301に出力する。次に、選択回路303は、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、コンフィグレーションメモリMEM1~MEMnのいずれかから入力したコンフィグレーションデータを基にコンフィグレーションを行う。以上のように、選択回路303は、複数のコンフィグレーションデータCF1~CFnのうちのいずれか1個を選択してプログラマブルロジックデバイス301のロジックをプログラムさせる。次に、プログラマブルロジックデバイス301は、論理処理を行い、領域R1~Rnのいずれかでエラーが発生した場合には、エラー信号ERを出力する。選択回路303は、エラー信号ERを検出すると、不揮発メモリ304に記憶されているコンフィグレーションデータ番号を変更し、上記と同様の動作を繰り返す。エラー信号ERが検出されなければ、不揮発メモリ304内のコンフィグレーションデータ番号は確定する。そのコンフィグレーションデータ番号に対応するコンフィグレーションデータCF1~CFnでは、エラーが発生した領域R1~Rnが未使用領域となっており、プログラマブルロジックデバイス301は、正常に動作することができる。また、選択回路303は、すべてのコンフィグレーションデータCF1~CFnにおいてエラー信号ERが発生した場合には、フォルト信号FTを出力し、修復不能であることを知らせる。
 図4は、プログラマブルロジックデバイス301のエラー検出方法の一例を示す図である。プログラマブルロジックデバイス301は、内部バス400と、機能ブロック401と、機能ブロック402とを有する。機能ブロック401及び402は、それぞれ、領域R1~Rnのうちの1個又は複数の領域で構成される。例えば、図1のコンフィグレーションデータCF1の場合、機能ブロックブロック401は、ハードディスクドライブコントローラであり、領域R2~R5により構成される。機能ブロックブロック402は、USB(Universal Serial Bus)コントローラであり、領域R6~R9により構成される。このように、各機能ブロック401及び402を複数の領域で構成することにより、各領域R1~R9内の論理セルの数の制限をなくすことができる。すなわち、各領域R1~R9内の論理セルの数は、機能ブロック401及び402のうちの最大の論理セル数にする必要がなくなる。
 機能ブロック401は、フリップフロップ411及びエラー検出回路412を有する。フリップフロップ411は、例えば、論理セルの入力ノードに接続されるフリップフロップ、又は論理セルの出力ノードに接続されるフリップフロップなどであり、プログラマブルロジックデバイス301内に通常配置されている複数のフリップフロップである。フリップフロップ411は、例えば、4ビットデータ及びそのパリティビットを記憶する。エラー検出回路412は、フリップフロップ411に記憶されている4ビットデータを基にパリティビットを演算し、その演算したパリティビットとフリップフロップ411内のパリティビットが等しいときには正常と判断してエラー信号を出力せず、異なるときにはエラー信号を出力する。エラー検出回路412は、プログラマブルロジックデバイス301内のすべて又は一部のフリップフロップ411に接続される。プログラマブルロジックデバイス301は、複数のエラー検出回路412のいずれかがエラー信号を出力すると、エラー信号ERを選択回路303に出力する。
 機能ブロック402は、処理ブロック421及び監視部422を有する。処理ブロック421は、機能を実現するための論理処理を行うブロックである。監視部422は、スタート信号STを処理ブロック421に出力する。処理ブロック421は、スタート信号STを入力すると、論理処理を開始し、論理処理を終了すると、完了信号DNを監視部422に出力する。監視部422は、スタート信号STを出力してから規定時間内に完了信号DNを入力すれば正常と判断してエラー信号を出力せず、規定時間内に完了信号DNを入力しない場合にはエラー信号ERを出力する。
 なお、機能ブロック401のエラー検出方法と機能ブロック402のエラー検出方法の2種類を説明したが、すべての機能ブロックを同じ方法でエラーを検出してもよいし、異なる方法でエラーを検出してもよい。また、その他、ECC(Error Correction Code)又はCRC(Cyclic
Redundancy Check)を用いてエラーを検出してもよい。また、フリップフロップ411は、レジスタ又はステートマシンであってもよい。
 図5は、図3の選択回路303の処理方法を示すフローチャートである。例えば、論理処理装置の電源が投入されると、選択回路303は、図5の処理を行う。
 まず、ステップS501では、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出す。ここで、不揮発メモリ304に記憶されているコンフィグレーションデータ番号の初期値は、1である。
 次に、ステップS502では、選択回路303は、読み出したコンフィグレーションデータ番号に応じて、選択信号SEL1~SELnのうちの1個を有効にして、残りを無効にする。例えば、コンフィグレーションデータ番号が1の場合、選択信号SEL1が有効になり、残りの選択信号SEL2~SELnが無効になる。コンフィグレーションメモリMEM1~MEMnのうち、選択信号SEL1~SELnが有効であるコンフィグレーションメモリはコンフィグレーションデータをプログラマブルロジックデバイス301に出力し、選択信号SEL1~SELnが無効であるコンフィグレーションメモリはコンフィグレーションデータを出力しない。例えば、コンフィグレーションデータ番号が1の場合、コンフィグレーションメモリMEM1がコンフィグレーションデータCF1をプログラマグルロジックデバイス301に出力する。
 次に、ステップS503では、選択回路303は、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータに基づくコンフィグレーションを行う。その後、プログラマブルロジックデバイス301は、論理処理を行い、エラーが発生するとエラー信号ERを出力し、正常動作をすればエラー信号ERを出力しない。
 次に、ステップS504では、選択回路303は、エラー信号ERを検出したか否かをチェックし、エラー信号ERが検出されれば、ステップS505に進む。
 ステップS505では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号をインクリメントする。これにより、コンフィグレーションデータ番号は、1から2に変更される。
 次に、ステップS506では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号がnより大きいか否かをチェックする。大きくない場合には、ステップS502に戻り、変更後のコンフィグレーションデータ番号について上記の処理を繰り返す。プログラマブルロジックデバイス301が正常動作した場合には、ステップS504で、エラー信号ERが検出されず、不揮発メモリ304のコンフィグレーションデータ番号は、確定する。その結果、コンフィグレーションデータも確定し、プログラマブルロジックデバイス301の故障が修復される。次回、電源を投入した時、ステップS501において、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出すので、修復後のコンフィグレーションデータが選択され、プログラマブルロジックデバイス301は、正常に動作する。
 ステップS506において、コンフィグレーションデータ番号がnより大きくなると、すべてのコンフィグレーションデータCF1~CFnについてエラー信号ERが検出されたことを意味するので、ステップS507へ進む。
 ステップS507では、選択回路303は、フォルト信号FTを出力し、プログラマブルロジックデバイス301が修復不能であることを知らせる。フォルト信号FTが発生した後、論理処理装置は、動作を停止してもよい。また、宇宙線などによるプログラマブルロジックデバイス301の一過性のソフトエラーである可能性があるため、論理処理装置は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号を初期値に戻して、再度、上記の処理を繰り返してもよい。
 以上のように、選択回路303は、複数のコンフィグレーションデータCF1~CFnのうちのプログラマブルロジックデバイス301の動作に基づくエラーが発生しないコンフィグレーションデータを選択する。具体的には、選択回路303は、複数のコンフィグレーションデータCF1~CFnを順に選択し、プログラマブルロジックデバイス301がエラー信号ERを出力したときのコンフィグレーションデータを選択せず、プログラマブルロジックデバイス301がエラー信号ERを出力しないときのコンフィグレーションデータを選択して、プログラマブルロジックデバイス301のロジックをプログラムさせる。
 これにより、本実施形態は、プログラマブルロジックデバイス301の故障の修復を短時間に自動で行うことができる。また、本実施形態は、未使用領域に必要な論理セル数の制限がなく、任意のサイズの領域R1~Rnを設けることができる。また、未使用領域以外の領域は、一つのブロックとして使用できるので、回路設計を柔軟に行うことができる。また、本実施形態は、未使用領域以外の領域のブロック内に任意の大きさの機能ブロックを複数割り当てることができる。
(第2の実施形態)
 図6は、第2の実施形態による論理処理装置の構成例を示す図である。論理処理装置は、例えばコンピュータシステムである。本実施形態(図6)は、第1の実施形態(図3)に対して、プロセッサ601、ROM602、RAM(Random Access Memory)603、ビデオコントローラ604、バス605、ハードディスクドライブ装置621、PCI(Peripheral Component Interconnect)エクスプレスカード622、LAN(Local Area Network)623及びUSB装置624を追加したものである。以下、本実施形態が第1の実施形態と異なる点を説明する。
 バス605には、プロセッサ601、ROM602、RAM603、ビデオコントローラ604及びプログラマブルロジックデバイス301が接続される。プロセッサ601は、例えば中央処理装置(CPU)である。ROM602は、ブート用プログラムなどを記憶する。RAM603は、メインメモリである。ビデオコントローラ604は、表示装置に表示するためのコントローラである。
 ハードディスクドライブ装置621は、ハードディスクにデータを記憶することができる。PCIエクスプレスカード622は、SCSI(Small Computer System Interface)などのインターフェースに変換することができる。LAN623は、ローカルエリアネットワークであり、他のネットワーク装置を接続することができる。USB装置624は、例えば、キーボード、マウス又はDVD(Digital Versatile Disc)装置である。
 プログラマブルロジックデバイス301は、例えば、コンフィグレーションにより、ハードディスクドライブコントローラ611、PCIエクスプレスコントローラ612、LANコントローラ613及びUSBコントローラ614の機能ブロックを有する。ハードディスクドライブコントローラ611は、ハードディスクドライブ装置621を制御する。PCIエクスプレスコントローラ612は、PCIエクスプレスカード622を制御する。LANコントローラ613は、LAN623を制御する。USBコントローラ614は、USB装置624を制御する。
 プロセッサ601は、カウントアップ信号CUを選択回路303に出力することができる。選択回路303は、カウントアップ信号CUを入力すると、不揮発メモリ304に記憶されているコンフィグレーションデータ番号をインクリメントする。
 プロセッサ601は、リセット信号RSをプログラマブルロジックデバイス301に出力することができる。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータを基にコンフィグレーションを行う。プログラマブルロジックデバイス301は、論理動作により、エラーが発生すると、エラー信号ERをプロセッサ601に出力する。
 プログラマブルロジックデバイス301は、内部の1個の論理セルの故障によっても、正常に動作しなくなる可能性がある。本実施形態では、コンフィグレーションデータCF1~CFnの設定により、プログラマブルロジックデバイス301の故障を修復する。
 図7は、図6の選択回路303の処理方法を示すフローチャートである。例えば、論理処理装置の電源が投入されると、選択回路303は、図7の処理を行う。
 まず、ステップS701では、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出す。ここで、不揮発メモリ304に記憶されているコンフィグレーションデータ番号の初期値は、1である。
 次に、ステップS702では、選択回路303は、読み出したコンフィグレーションデータ番号に応じて、選択信号SEL1~SELnのうちの1個を有効にして、残りを無効にする。例えば、コンフィグレーションデータ番号が1の場合、選択信号SEL1が有効になり、残りの選択信号SEL2~SELnが無効になる。コンフィグレーションメモリMEM1~MEMnのうち、選択信号SEL1~SELnが有効であるコンフィグレーションメモリはコンフィグレーションデータをプログラマブルロジックデバイス301に出力し、選択信号SEL1~SELnが無効であるコンフィグレーションメモリはコンフィグレーションデータを出力しない。例えば、コンフィグレーションデータ番号が1の場合、コンフィグレーションメモリMEM1がコンフィグレーションデータCF1をプログラマグルロジックデバイス301に出力する。
 次に、プロセッサ601は、選択回路303が次の選択信号SEL1~SELnを有効にする時間を考慮して、必要な時間が経過後に、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータに基づくコンフィグレーションを行う。その後、プログラマブルロジックデバイス301は、論理処理を行い、エラーが発生するとエラー信号ERを出力し、正常動作をすればエラー信号ERを出力しない。プロセッサ601は、エラー信号ERを入力すると、カウントアップ信号CUを選択回路303に出力する。
 次に、ステップS703では、選択回路303は、カウントアップ信号CUを検出したか否かをチェックし、カウントアップ信号CUが検出されれば、ステップS704に進む。
 ステップS704では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号をインクリメントする。これにより、コンフィグレーションデータ番号は、1から2に変更される。
 次に、ステップS705では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号がnより大きいか否かをチェックする。大きくない場合には、ステップS702に戻り、変更後のコンフィグレーションデータ番号について上記の処理を繰り返す。プログラマブルロジックデバイス301が正常動作した場合には、ステップS703で、カウントアップ信号CUが検出されず、不揮発メモリ304のコンフィグレーションデータ番号は、確定する。その結果、コンフィグレーションデータも確定し、プログラマブルロジックデバイス301の故障が修復される。次回、電源を投入した時、ステップS701において、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出すので、修復後のコンフィグレーションデータが選択され、プログラマブルロジックデバイス301は、正常に動作する。
 ステップS705において、コンフィグレーションデータ番号がnより大きくなると、すべてのコンフィグレーションデータCF1~CFnについてカウントアップ信号CUが検出されたことを意味するので、ステップS706へ進む。
 ステップS706では、選択回路303は、フォルト信号FTを出力し、プログラマブルロジックデバイス301が修復不能であることを知らせる。
 以上のように、プロセッサ601は、プログラマブルロジックデバイス301がエラー信号ERを出力したときには、選択回路303に次のコンフィグレーションデータCF1~CFnを選択させる。本実施形態は、第1の実施形態と同様の効果を得ることができる。
(第3の実施形態)
 図8は、第3の実施形態による論理処理装置の構成例を示す図である。本実施形態(図8)は、第2の実施形態(図6)に対して、n個のコンフィグレーションメモリMEM1~MEMnを1個のコンフィグレーションメモリMEMに変更した点が異なる。以下、本実施形態が第2の実施形態と異なる点を説明する。
 コンフィグレーションメモリMEMは、例えばROMであり、異なるアドレスに複数のコンフィグレーションデータCF1~CFnをそれぞれ記憶する。選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号に応じて、上記の複数のアドレスのうちの1個のアドレスADを選択して、コンフィグレーションメモリMEMに出力する。コンフィグレーションメモリMEMは、アドレスADに記憶されているコンフィグレーションデータを、バス302を介して、プログラマブルロジックデバイス301に出力する。
 図9は、図8のコンフィグレーションメモリMEMの構成例を示す図である。コンフィグレーションメモリMEMは、n個のアドレスAD1~ADnを開始アドレスとしてn個のコンフィグレーションデータCF1~CFnをそれぞれ記憶する。コンフィグレーションメモリMEMは、アドレスADを入力し、アドレスADに記憶されているコンフィグレーションデータを、バス302を介して、プログラマブルロジックデバイス301に出力する。例えば、アドレスADがアドレスAD1の場合には、コンフィグレーションメモリMEMは、アドレスAD1に記憶されているコンフィグレーションデータCF1をプログラマブルロジックデバイス301に出力する。選択回路303は、複数のアドレスAD1~ADnのうちの1個のアドレスを選択して出力する。
 図10は、図8の選択回路303の処理方法を示すフローチャートである。例えば、論理処理装置の電源が投入されると、選択回路303は、図10の処理を行う。
 まず、ステップS1001では、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出す。ここで、不揮発メモリ304に記憶されているコンフィグレーションデータ番号の初期値は、1である。
 次に、ステップS1002では、選択回路303は、読み出したコンフィグレーションデータ番号に応じて、読み出し開始アドレスADを出力する。例えば、コンフィグレーションデータ番号が1の場合、読み出し開始アドレスADは、アドレスAD1になる。コンフィグレーションメモリMEMは、読み出し開始アドレスADに記憶されているコンフィグレーションデータをプログラマブルロジックデバイス301に出力する。例えば、読み出し開始アドレスADがアドレスAD1の場合、コンフィグレーションメモリMEMは、コンフィグレーションデータCF1をプログラマグルロジックデバイス301に出力する。
 次に、プロセッサ601は、選択回路303が次の選択信号SEL1~SELnを有効にする時間を考慮して、必要な時間が経過後に、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータに基づくコンフィグレーションを行う。その後、プログラマブルロジックデバイス301は、論理処理を行い、エラーが発生するとエラー信号ERを出力し、正常動作をすればエラー信号ERを出力しない。プロセッサ601は、エラー信号ERを入力すると、カウントアップ信号CUを選択回路303に出力する。
 次に、ステップS1003では、選択回路303は、カウントアップ信号CUを検出したか否かをチェックし、カウントアップ信号CUが検出されれば、ステップS1004に進む。
 ステップS1004では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号をインクリメントする。これにより、コンフィグレーションデータ番号は、1から2に変更される。
 次に、ステップS1005では、選択回路303は、不揮発メモリ304に記憶されているコンフィグレーションデータ番号がnより大きいか否かをチェックする。大きくない場合には、ステップS1002に戻り、変更後のコンフィグレーションデータ番号について上記の処理を繰り返す。プログラマブルロジックデバイス301が正常動作した場合には、ステップS1003で、カウントアップ信号CUが検出されず、不揮発メモリ304のコンフィグレーションデータ番号は、確定する。その結果、コンフィグレーションデータも確定し、プログラマブルロジックデバイス301の故障が修復される。次回、電源を投入した時、ステップS1001において、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出すので、修復後のコンフィグレーションデータが選択され、プログラマブルロジックデバイス301は、正常に動作する。
 ステップS1005において、コンフィグレーションデータ番号がnより大きくなると、すべてのコンフィグレーションデータCF1~CFnについてカウントアップ信号CUが検出されたことを意味するので、ステップS1006へ進む。
 ステップS1006では、選択回路303は、フォルト信号FTを出力し、プログラマブルロジックデバイス301が修復不能であることを知らせる。本実施形態は、第2の実施形態と同様の効果を得ることができる。
(第4の実施形態)
 図11は、第4の実施形態によるプログラマブルロジックデバイス301の複数のコンフィグレーションデータCF1~CF36の例を示す図である。以下、本実施形態が第1~第3の実施形態と異なる点を説明する。
 プログラマブルロジックデバイス301は、内部の論理セル領域が例えば9個の領域R1~R9に分割される。本実施形態では、9個の領域R1~R9のうちの相互に異なる2個の領域を未使用領域として未使用領域以外の領域を使用領域として相互に同じ機能を実現するための36個のコンフィグレーションデータCF1~CF36を生成する。
 例えば、コンフィグレーションデータCF1は、領域R1及びR2を未使用領域とし、領域R3~R9を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF2は、領域R1及びR3を未使用領域とし、領域R2、R4~R9を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF36は、領域R8及びR9を未使用領域とし、領域R1~R7を使用領域としてコンフィグレーションするためのデータである。コンフィグレーションデータCF1~CF36は、相互に未使用領域が異なり、領域R1~R9のうちのすべての2個の領域の組み合わせが未使用領域として割り当てられるように生成される。
 プログラマブルロジックデバイス301は、コンフィグレーションデータCF1~CF36のうちのいずれか1つを選択することにより、任意の2個の領域R1~R9を未使用領域にすることができる。プログラマブルロジックデバイス301は、1個又は2個の領域で故障が発生した場合に、故障個所が未使用領域に一致するコンフィグレーションデータCF1~CF36を選択することにより、プログラマブルロジックデバイス301の故障を修復する。
 図12は、プログラマブルロジックデバイス301の修復方法を説明するための図である。例えば、プログラマブルロジックデバイス301の領域R1及びR3で故障が発生した例を説明する。コンフィグレーションデータCF1によりコンフィグレーションした場合、故障が発生した領域R3は使用領域であるため、プログラマブルロジックデバイス301は、正常に動作することができない。これに対し、コンフィグレーションデータCF2によりコンフィグレーションした場合、故障が発生した領域R1及びR3は未使用領域であるため、プログラマブルロジックデバイス301は、正常に動作することができる。このようにして、故障が発生した領域が未使用領域になるように、コンフィグレーションデータCF1~CF36を選択することにより、プログラマブルロジックデバイス301を修復することができる。なお、未使用領域が3個以上になるように、コンフィグレーションデータを生成するようにしてもよい。
 図11に示す通り、9個の領域R1~R9のうちの2個の領域を未使用領域にすると、生成されるコンフィグレーションデータの組み合わせは、次式で計算することができ、36個のコンフィグレーションデータCF1~CF36を生成すればよい。
  /2!
    =9!/{(9-2)!×2!}
    =9×8/2
    =36
 また、プログラマブルロジックデバイス301の内部をn分割し、m個の未使用領域を設定する場合、コンフィグレーションデータの組み合わせは、次式で計算することができる。
  /m!
    =n!/{(n-m)!×m!}
 これにより、n個の領域で故障が発生しても、プログラマブルロジックデバイス301は、故障を修復し、正常に動作することができる。以上のように、未使用領域は、1個の領域でもよいし、複数の領域でもよい。
(第5の実施形態)
 図13は、第5の実施形態による論理処理装置の構成例を示す図である。本実施形態(図13)は、第3の実施形態(図8)に対して、コンピュータ1301及び論理和(OR)回路1302を追加したものである。以下、本実施形態が第3の実施形態と異なる点を説明する。
 ハードディスクドライブ装置621、PCIエクスプレスカード622、コンピュータ1301、及びUSB装置624は、プログラマブルロジックデバイス301の出力信号を用いて処理する外部装置である。
 ハードディスクドライブコントローラ611は、プログラマブルロジックデバイス301の領域R1~R9の一部により構成される。ハードディスクドライブコントローラ611を構成する領域R1~R9で故障が発生すると、ハードディスクドライブ装置621は、エラーが発生し、エラー信号ER1を出力する。
 PCIエクスプレスコントローラ612は、プログラマブルロジックデバイス301の領域R1~R9の一部により構成される。PCIエクスプレスコントローラ612を構成する領域R1~R9で故障が発生すると、PCIエクスプレスカード622は、エラーが発生し、エラー信号ER2を出力する。
 コンピュータ1301は、LAN623に接続される。LANコントローラ613は、プログラマブルロジックデバイス301の領域R1~R9の一部により構成される。LANコントローラ613を構成する領域R1~R9で故障が発生すると、コンピュータ1301は、エラーが発生し、エラー信号ER3を出力する。
 USBコントローラ614は、プログラマブルロジックデバイス301の領域R1~R9の一部により構成される。USBコントローラ614を構成する領域R1~R9で故障が発生すると、USB装置624は、エラーが発生し、エラー信号ER4を出力する。
 論理和回路1302は、エラー信号ER1~ER4の論理和信号を、エラー信号ERとしてプロセッサ601に出力する。プロセッサ601は、第3の実施形態と同様に、エラー信号ERを入力すると、カウントアップ信号CUを選択回路303に出力する。
 選択回路303は、複数のコンフィグレーションデータCF1~CFnのうちの外部装置621,622,624,1301がエラーを発生したコンフィグレーションデータを選択せず、複数のコンフィグレーションデータCF1~CFnのうちの外部装置621,622,624,1301がエラーを発生しないコンフィグレーションデータを選択する。
 プログラマブルロジックデバイス301が自己の内部故障を検出できず、ハードディスクドライブ装置621、PCIエクスプレスカード622、コンピュータ1301、又はUSB装置624の外部装置がエラーを検出する場合がある。本実施形態は、外部装置621,622,624,1301がエラーを検出した場合に、上記と同様に、コンフィグレーションデータCF1~CFnの切り替えを行い、故障を修復する。
(第6の実施形態)
 図14は、第6の実施形態による論理処理装置の構成例を示す図である。本実施形態(図14)は、第3の実施形態(図8)に対して、エラー表示レジスタ1401を追加したものである。以下、本実施形態が第3の実施形態と異なる点を説明する。
 エラー表示レジスタ1401は、プログラマブルロジックデバイス301内に設けられる。不揮発メモリ304は、バス605を介して、プロセッサ601に接続される。プロセッサ601は、不揮発メモリ304内のコンフィグレーションデータ番号を読み書きすることができる。本実施形態は、エラー表示レジスタ1401を用いて、プログラマブルロジックデバイス301内の故障領域を特定し、その故障領域を未使用領域とするコンフィグレーションデータを一度で選択する。
 図15は、図1に対応し、コンフィグレーションデータCF1~CF9の例を示す図である。コンフィグレーションデータCF1~CF9は、それぞれ、1個の未使用領域NR及び8個の使用領域U1~U8を有する。
 図16は、図14のプログラマブルロジックデバイス301の一部の構成例を示す図である。プログラマブルロジックデバイス301は、8個の領域R2~R9及びエラー表示レジスタ1401を有する。領域R2~R9は、初期のコンフィグレーションデータCF1において使用領域U1~U8に設定されている領域である。エラー表示レジスタ1401は、8ビットのエラー信号を記憶する。各領域R1~R9は、1個の機能ブロックを構成することが好ましい。
 領域R2は、論理和回路LG2を有し、図4の複数のエラー検出回路412により出力されるエラー信号の論理和信号を、エラー信号ER2として出力する。複数のエラー検出回路412が出力するエラー信号のうちのいずれか1個でも「1」になれば、エラー信号ER2は「1」になる。エラー信号ER2は、「1」がエラー発生を示し、エラー表示レジスタ1401のビット0に書き込まれる。
 同様に、領域R9は、論理和回路LG9を有し、図4の複数のエラー検出回路412により出力されるエラー信号の論理和信号を、エラー信号ER9として出力する。複数のエラー検出回路412が出力するエラー信号のうちのいずれか1個でも「1」になれば、エラー信号ER9は「1」になる。エラー信号ER9は、「1」がエラー発生を示し、エラー表示レジスタ1401のビット7に書き込まれる。
 領域R2~R9のエラー信号ER2~ER9は、それぞれエラー表示レジスタ1401のビット0~ビット7に書き込まれる。エラー表示レジスタ1401は、各領域R2~R9のエラー検出回路412によって検出されたエラー信号ER2~ER9を各ビットに割り当てる。プロセッサ601は、初期のコンフィグレーションデータCF1の使用時に、領域R2~R9のエラー信号ER2~ER9を検出した時に、エラー表示レジスタ1401に記憶されているエラー信号ER2~ER9を読み出すことにより、使用領域U1~U8のうちのどの領域が故障したのかを認識できる。
 図17は、図14のROM602に記憶されるテーブルの構成例を示す図である。テーブルは、エラー検出レジスタ1401の各ビット番号1701と、そのビット番号1701に対応する領域U1~U8を未使用領域NRに設定しているコンフィグレーションデータCF2~CF9の番号1702との対応関係を記憶する。例えば、エラー表示レジスタ1401のビット0が「1」の場合、故障領域U1が未使用領域NRとなるコンフィグレーションデータCF2が設定される。これにより、プロセッサ601は、エラー表示レジスタ1401に記憶されているエラー信号ER2~ER9を基に、このテーブルによってその故障領域を未使用領域NRとするコンフィグレーションデータCF2~CF9の番号を一意で得ることができる。
 図18は、図14の選択回路303の処理方法を示すフローチャートである。例えば、論理処理装置の電源が投入されると、選択回路303は、図18の処理を行う。
 まず、ステップS1801では、選択回路303は、不揮発メモリ304からコンフィグレーションデータ番号を読み出す。ここで、不揮発メモリ304に記憶されているコンフィグレーションデータ番号の初期値は、1である。
 次に、ステップS1802では、選択回路303は、読み出したコンフィグレーションデータ番号に応じて、読み出し開始アドレスADを出力する。例えば、コンフィグレーションデータ番号が1の場合、読み出し開始アドレスADは、アドレスAD1になる。コンフィグレーションメモリMEMは、読み出し開始アドレスADに記憶されているコンフィグレーションデータをプログラマブルロジックデバイス301に出力する。例えば、読み出し開始アドレスADがアドレスAD1の場合、コンフィグレーションメモリMEMは、コンフィグレーションデータCF1をプログラマグルロジックデバイス301に出力する。
 次に、ステップS1803では、選択回路303は、プロセッサ601からの書き込み指示を検出したか否かをチェックする。検出した場合には、ステップS1804に進む。
 ステップS1804では、選択回路303は、プロセッサ601から書き込み指示されたコンフィグレーションデータ番号を、不揮発メモリ304に書き込む。その後、ステップS1801に戻り、上記と同様の処理を繰り返す。
 図19は、図14のプロセッサ601の処理方法を示すフローチャートである。例えば、論理処理装置の電源が投入されると、プロセッサ601は、図19の処理を行う。
 まず、ステップS1901では、プロセッサ601は、不揮発メモリ304からコンフィグレーションデータ番号を読み出す。ここで、不揮発メモリ304に記憶されているコンフィグレーションデータ番号の初期値は、1である。
 次に、ステップS1902では、プロセッサ601は、必要な時間が経過後に、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータに基づくコンフィグレーションを行う。その後、プログラマブルロジックデバイス301は、論理処理を行い、エラーが発生するとエラー信号ERを出力し、正常動作をすればエラー信号ERを出力しない。
 次に、ステップS1903では、プロセッサ601は、エラー信号ERを検出したか否かをチェックし、エラー信号ERが検出されれば、ステップS1904に進む。エラー信号ERが検出されなければ、不揮発メモリ304に記憶されているコンフィグレーションデータ番号は、「1」の初期値に確定し、故障の修復を行う必要はない。プログラマブルロジックデバイス301は、正常に動作することができる。
 ステップS1904では、プロセッサ601は、対象のコンフィグレーションデータ番号が初期値のコンフィグレーションデータ番号であるか否かをチェックする。初期値であれば、ステップS1905に進む。
 ステップS1905では、プロセッサ601は、エラー表示レジスタ1401に記憶されているエラー信号ER2~ER9を読み出す。
 次に、ステップS1906では、プロセッサ601は、図17のテーブルを用いて、エラーが発生した領域U1~U8を未使用領域にするコンフィグレーションデータ番号を取得する。
 次に、ステップS1907では、プロセッサ601は、取得したコンフィグレーションデータ番号を不揮発メモリ304に書き込み、ステップS1902に戻る。すると、選択回路303は、図18のステップS1802において、コンフィグレーションデータ番号に応じて、読み出し開始アドレスADを出力する。そして、コンフィグレーションメモリMEMは、読み出し開始アドレスADに記憶されているコンフィグレーションデータをプログラマブルロジックデバイス301に出力する。
 ステップS1902では、プロセッサ601は、必要な時間が経過後に、リセット信号RSをプログラマブルロジックデバイス301に出力する。プログラマブルロジックデバイス301は、リセット信号RSを入力すると、バス302を介して入力したコンフィグレーションデータに基づくコンフィグレーションを行う。その後、プログラマブルロジックデバイス301は、論理処理を行い、エラーが発生するとエラー信号ERを出力し、正常動作をすればエラー信号ERを出力しない。通常、コンフィグレーションデータ番号は、故障領域を未使用領域とするコンフィグレーションデータ番号に変更されているので、エラー信号ERは出力されない。
 次に、ステップS1903では、プロセッサ601は、エラー信号ERを検出したか否かをチェックし、エラー信号ERが検出されれば、ステップS1904に進む。エラー信号ERが検出されなければ、不揮発メモリ304に記憶されているコンフィグレーションデータ番号は確定し、故障の修復が終了する。プログラマブルロジックデバイス301は、正常に動作することができる。
 次に、ステップS1904では、プロセッサ601は、対象のコンフィグレーションデータ番号が初期値のコンフィグレーションデータ番号であるか否かをチェックする。この場合、コンフィグレーションデータ番号は、変更されており、初期値ではないので、ステップS1908に進む。
 ステップS1908では、プロセッサ601は、フォルト信号FTを出力し、プログラマブルロジックデバイス301が修復不能であることを知らせる。
 以上のように、プログラマブルロジックデバイス301は、複数の領域R2~R9毎にエラー信号ER2~ER9を発生可能である。選択回路303は、プログラマブルロジックデバイス301がエラー信号を発生したときには、エラー信号を基に、プログラマブルロジックデバイス301の複数の領域R2~R9のうちのエラー信号が発生した領域を未使用領域とするコンフィグレーションデータを選択する。
 エラー表示レジスタ1401は、複数の領域R2~R9毎のエラー信号を記憶する。選択回路303は、エラー表示レジスタ401に記憶されているエラー信号ER2~ER9を基に、エラー信号が発生した領域を未使用領域とするコンフィグレーションデータを選択する。
 本実施形態は、第3の実施形態と同様の効果を得ることができる。また、本実施形態は、エラー発生後の1度のコンフィグレーションで、プログラマブルロジックデバイス301内の故障領域が未使用領域に割り当てられるため、第1~第5の実施形態のようにコンフィグレーションを繰り返すことがなく、早急にプログラマブルロジックデバイス301の故障を修復することができる。
 なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
 コンフィグレーションメモリに複数のコンフィグレーションデータを記憶させることにより、短時間でプログラマブルロジックデバイスの内部故障を修復することができる。

Claims (10)

  1.  複数の領域毎にロジックをプログラム可能なプログラマブルロジックデバイスと、
     前記プログラマブルロジックデバイスの複数の領域のうちの異なる領域を未使用領域として前記未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータを記憶するコンフィグレーションメモリと、
     前記複数のコンフィグレーションデータのうちのいずれか1個を選択して前記プログラマブルロジックデバイスのロジックをプログラムさせる選択回路とを有し、
     前記選択回路は、前記複数のコンフィグレーションデータのうちの前記プログラマブルロジックデバイスの動作に基づくエラーが発生しないコンフィグレーションデータを選択することを特徴とする論理処理装置。
  2.  前記選択回路は、前記複数のコンフィグレーションデータを順に選択し、前記プログラマブルロジックデバイスがエラー信号を出力したときのコンフィグレーションデータを選択せず、前記プログラマブルロジックデバイスがエラー信号を出力しないときのコンフィグレーションデータを選択して、前記プログラマブルロジックデバイスのロジックをプログラムさせることを特徴とする請求項1記載の論理処理装置。
  3.  さらに、前記プログラマブルロジックデバイスがエラー信号を出力したときには、前記選択回路に次のコンフィグレーションデータを選択させるプロセッサを有することを特徴とする請求項2記載の論理処理装置。
  4.  前記コンフィグレーションメモリは、前記複数のコンフィグレーションデータをそれぞれ記憶する複数のコンフィグレーションメモリを有し、
     前記選択回路は、前記複数のコンフィグレーションメモリのうちの1個のコンフィグレーションメモリを選択することを特徴とする請求項1記載の論理処理装置。
  5.  前記コンフィグレーションメモリは、異なるアドレスに前記複数のコンフィグレーションデータをそれぞれ記憶し、
     前記選択回路は、前記複数のアドレスのうちの1個のアドレスを選択することを特徴とする請求項1記載の論理処理装置。
  6.  前記未使用領域は、前記プログラマブルロジックデバイス内の1個又は複数の領域であることを特徴とする請求項1記載の論理処理装置。
  7.  さらに、前記プログラマブルロジックデバイスの出力信号を用いて処理する外部装置を有し、
     前記選択回路は、前記複数のコンフィグレーションデータのうちの前記外部装置がエラーを発生したコンフィグレーションデータを選択せず、前記複数のコンフィグレーションデータのうちの前記外部装置がエラーを発生しないコンフィグレーションデータを選択することを特徴とする請求項1記載の論理処理装置。
  8.  前記プログラマブルロジックデバイスは、前記複数の領域毎にエラー信号を発生可能であり、
     前記選択回路は、前記プログラマブルロジックデバイスがエラー信号を発生したときには、前記エラー信号を基に、前記プログラマブルロジックデバイスの複数の領域のうちの前記エラー信号が発生した領域を未使用領域とするコンフィグレーションデータを選択することを特徴とする請求項1記載の論理処理装置。
  9.  前記プログラマブルロジックデバイスは、前記複数の領域毎のエラー信号を記憶するエラー表示レジスタを有し、
     前記選択回路は、前記エラー表示レジスタに記憶されているエラー信号を基に、前記エラー信号が発生した領域を未使用領域とするコンフィグレーションデータを選択することを特徴とする請求項8記載の論理処理装置。
  10.  複数の領域毎にロジックをプログラム可能なプログラマブルロジックデバイスと、
     前記プログラマブルロジックデバイスの複数の領域のうちの異なる領域を未使用領域として前記未使用領域以外の領域を使用領域として相互に同じ機能を実現するための複数のコンフィグレーションデータを記憶するコンフィグレーションメモリとを有する論理処理装置の処理方法であって、
     前記複数のコンフィグレーションデータのうちの前記プログラマブルロジックデバイスの動作に基づくエラーが発生しないコンフィグレーションデータを選択し、
     前記選択されたコンフィグレーションデータを基に、前記プログラマブルロジックデバイスのロジックをプログラムさせることを特徴とする論理処理装置の処理方法。
PCT/JP2013/057996 2013-03-21 2013-03-21 論理処理装置及びその処理方法 WO2014147780A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015506475A JPWO2014147780A1 (ja) 2013-03-21 2013-03-21 論理処理装置及びその制御方法
PCT/JP2013/057996 WO2014147780A1 (ja) 2013-03-21 2013-03-21 論理処理装置及びその処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/057996 WO2014147780A1 (ja) 2013-03-21 2013-03-21 論理処理装置及びその処理方法

Publications (1)

Publication Number Publication Date
WO2014147780A1 true WO2014147780A1 (ja) 2014-09-25

Family

ID=51579512

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/057996 WO2014147780A1 (ja) 2013-03-21 2013-03-21 論理処理装置及びその処理方法

Country Status (2)

Country Link
JP (1) JPWO2014147780A1 (ja)
WO (1) WO2014147780A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962528A (ja) * 1995-08-23 1997-03-07 Fujitsu Ltd 自己修復装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0962528A (ja) * 1995-08-23 1997-03-07 Fujitsu Ltd 自己修復装置

Also Published As

Publication number Publication date
JPWO2014147780A1 (ja) 2017-02-16

Similar Documents

Publication Publication Date Title
JP5048972B2 (ja) プログラマブル・デバイスの構成エラー検出の偽陽性の低減
EP2492917B1 (en) Error detection and correction circuitry
JP2019091519A (ja) 内部ecc処理を有するnand型フラッシュメモリおよびその動作方法
US7906984B1 (en) Relocatable field programmable gate array bitstreams for fault tolerance
JP4960137B2 (ja) プログラマブルデバイスに対するソフトエラーロケーションおよび感度検出
US7895028B2 (en) Structure for increasing fuse programming yield
JP2006079811A (ja) エラー検出用パリティー発生器を備えた半導体メモリ装置
KR20100031148A (ko) 누적 테스트를 위한 반도체 메모리 장치 및 이를 포함하는 시스템
JP6282482B2 (ja) プログラマブル回路装置、コンフィギュレーション情報修復方法
JP6290934B2 (ja) プログラマブルデバイス、エラー保持システム、及び電子システム装置
JP2006309700A (ja) 動的代替機能を持つ論理集積回路、これを用いた情報処理装置及び論理集積回路の動的代替方法
JP5558269B2 (ja) プログラマブル論理回路のエラー訂正回路
JP2020048022A (ja) 半導体集積回路及び再構成半導体システム
KR20150087315A (ko) 구성 정보를 저장하기 위해 예비 섹터를 지닌 메모리 셀 어레이
JP2013125513A (ja) 不揮発性半導体記憶装置及びその管理方法
US9575862B1 (en) Integrated circuits with error handling capabilities
US9037948B2 (en) Error correction for memory systems
KR20010030270A (ko) 리던던트 디바이스를 초기화하는 동안 인출 동작 전환이지연되는 리던던트 비트 스티어링 메카니즘
CN103475514A (zh) 无bmc的节点、集群系统及bios修复和升级方法
WO2014147780A1 (ja) 論理処理装置及びその処理方法
JP2018022277A (ja) プログラマブルロジックデバイス、情報処理装置、ソフトエラー記録方法、及びソフトエラー記録プログラム
JP5910356B2 (ja) 電子装置、電子装置制御方法及び電子装置制御プログラム
JP4582078B2 (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2013187699A (ja) Fpga構成処理制御回路
JP5964265B2 (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: 13878662

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015506475

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: 13878662

Country of ref document: EP

Kind code of ref document: A1