WO2015193984A1 - 集積回路およびプログラマブルデバイス - Google Patents

集積回路およびプログラマブルデバイス Download PDF

Info

Publication number
WO2015193984A1
WO2015193984A1 PCT/JP2014/066092 JP2014066092W WO2015193984A1 WO 2015193984 A1 WO2015193984 A1 WO 2015193984A1 JP 2014066092 W JP2014066092 W JP 2014066092W WO 2015193984 A1 WO2015193984 A1 WO 2015193984A1
Authority
WO
WIPO (PCT)
Prior art keywords
ram
access
error
logic circuit
integrated circuit
Prior art date
Application number
PCT/JP2014/066092
Other languages
English (en)
French (fr)
Inventor
山田 弘道
山田 勉
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2014/066092 priority Critical patent/WO2015193984A1/ja
Priority to JP2016528704A priority patent/JP6220972B2/ja
Priority to US15/317,230 priority patent/US10318376B2/en
Publication of WO2015193984A1 publication Critical patent/WO2015193984A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/702Masking faults in memories by using spares or by reconfiguring by replacing auxiliary circuits, e.g. spare voltage generators, decoders or sense amplifiers, to be used instead of defective ones
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Definitions

  • the present invention relates to an integrated circuit and a programmable device.
  • SRAM Static Random ⁇ Access ⁇ Memory
  • microprocessors microcontrollers
  • AISC AISCs
  • ECC Error Correcting Code
  • SECDED Single Error Collection, Double Error Detection
  • the logic circuit information is stored in the internal CRAM (configuration RAM). Therefore, there is a problem that a soft error occurs in the CRAM and the logic circuit information is rewritten, and the logic circuit changes to a wrong function (fails) and malfunctions.
  • CRAM configuration RAM
  • Non-Patent Document 1 proposes a method “TMR Block RAM with Refresh” as an error correction method for BRAM (Block RAM) which is an internal memory of the FPGA.
  • BRAM Block RAM
  • a BRAM is connected to each of the triple logic circuits, and a BRAM refresh circuit is connected to the error correction port.
  • the BRAM refresh circuit simultaneously reads data from the same address of the three BRAMs regardless of the access of the logic circuit, performs majority processing, and writes the data back. BRAM access is executed while periodically updating the address.
  • the method of majority processing the RAM access signal of the triple logic circuit is not suitable for high speed operation because the wiring from the logic circuit to the RAM via the majority circuit increases the access time.
  • the BRAM refresh method of Non-Patent Document 1 can be connected to the BRAM as it is without performing majority processing on the RAM access signal of the triple logic circuit, so that high speed operation is possible.
  • This method can also be used for correction when a soft error occurs in the BRAM, but can also be used for correction when a logic circuit erroneously writes to the BRAM.
  • FIG. 1 is a block diagram of an integrated circuit having a RAM access correction circuit of a triple logic circuit in a first embodiment to which the present invention is applied;
  • FIG. 3 is an equivalent logic diagram of the majority circuit in the first embodiment. 3 is a truth table of the majority circuit in the first embodiment.
  • 2 is a block diagram of a RAM access correction circuit RAMEDC in Embodiment 1.
  • FIG. 6 is an error classification table of RAMEDC in a case where the access signals of the triple logic circuit in Embodiment 1 are divided into 2 to 1. It is a processing flowchart of RAMEDC.
  • In the error classification table of RAMEDC shown in FIG. 2 is an error correction processing timing chart of 1;
  • In the error classification table of RAMEDC shown in FIG. 2 is an error correction processing timing chart of FIG.
  • FIG. 3 In the error classification table of RAMEDC shown in FIG. 3 is an error correction processing timing chart of FIG.
  • FIG. 4 is an error correction processing timing chart of FIG. 10 is a block diagram of a RAM access correction circuit RAMEDC in Embodiment 2.
  • FIG. It is a block diagram of the 3rd example to which the present invention is applied.
  • FIG. 10 is a block diagram of an FPGA having RAM access correcting means of a triple logic circuit.
  • 10 is a RAM access error correction processing timing chart in Embodiment 4.
  • FIG. 1 is a block diagram of an integrated circuit having a RAM access correction circuit of a triple logic circuit according to a first embodiment to which the present invention is applied.
  • the integrated circuit shown in FIG. 1 employs an LSI in which an electronic circuit is fabricated on a thin semiconductor substrate called a wafer, particularly a programmable device that allows the user to define and change the internal logic circuit after manufacture.
  • the integrated circuit (1) includes three modules M0 (2), M1 (3), and M2 (4), a majority circuit V (5), a RAM access correction circuit RAMEDC (6), and an error control circuit ERRMNG (7). ) Is included.
  • the input signal IN of the integrated circuit (1) is input to M0 (2), M1 (3), and M2 (4), the output signal 8 of M0 (2), the output signal 9 of M1 (3), and M2 (4)
  • the output signal 10 is subjected to majority processing in the majority circuit V (5), and the result is output as the output signal OUT of the integrated circuit (1).
  • a signal 11 is an error detection signal of the majority circuit V (5), and is output when all three inputs do not match.
  • the error detection signal 11 is input to the error control circuit ERRNG (7) and notifies the error signal ERR to the outside of the integrated circuit.
  • the module M0 (2) includes a logic circuit LC (20) and a RAM (21), and a signal 22 is an LC (20) RAM access signal including a command, an address, and write data.
  • the signal 23 is read data read from the RAM (21) when the RAM access signal (22) of the LC (20) is read access.
  • LC (20) outputs an output signal 8 to the outside of M0 (2).
  • the module M1 (3) includes a logic circuit LC (30) and a RAM (31), and a signal 32 is a RAM access signal of the LC (30) and includes a command, an address, and write data.
  • the signal 33 is read data read from the RAM (31) when the RAM access signal (32) of the LC (30) is read access.
  • LC (30) outputs an output signal 9 to the outside of M1 (3).
  • the module M2 (4) includes a logic circuit LC (40) and a RAM (41), and a signal 42 is an LC (40) RAM access signal including a command, an address, and write data.
  • the signal 43 is read data read from the RAM (41) when the RAM access signal (42) of the LC (40) is read access.
  • LC (40) outputs an output signal 10 to the outside of M2 (4).
  • the RAM access correction circuit RAMEDC (6) monitors the RAM access signals 22, 32, 42 of the triple logic circuit LC (20, 30, 40), and corrects it immediately when an error such as erroneous data writing is detected.
  • the RAM access signals 24, 34, 44 from the RAMEDC (6) to the triple RAM (21, 32, 42) include commands, addresses, and write data.
  • Signals 25, 35, 45 from the triple RAM (21, 31, 41) to the RAM EDC (6) are read data read when the RAM access signals 24, 34, 44 are read access.
  • the signal 12 is an error detection signal of the RAMEDC (6), and is output when the RAM access signals 22, 32, and 42 do not all match.
  • the error detection signal 12 is input to the error control circuit ERRNG (7) to notify the error signal ERR to the outside of the integrated circuit.
  • FIG. 2 is an equivalent logic diagram of the majority circuit in the first embodiment.
  • the output signals of the triple logic circuit are input to vin0, vin1, and vin2, respectively.
  • the output signal has N bits, N circuits are connected for each bit.
  • vout is a majority output signal
  • err [1: 0] is an error signal.
  • FIG. 3 is a truth table of the majority circuit in the first embodiment.
  • the input signals vin0, vin1, and vin2 each take a value of 0 or 1, and there are eight combinations.
  • the majority output signal vout outputs the larger value of the three inputs.
  • the error signal err [1: 0] is 00 (no error) when all three input signals match, and the input signal identification number that does not match when divided into 2: 1 (in the case of vin0, 01, in case of vin1) In the case of 10, vin2, 11) is output.
  • FIG. 4 is a block diagram of the RAM access correction circuit RAMEDC (6) in the first embodiment. It includes six types of registers (60 to 65), an LC-RAM access monitoring unit (66), and a RAMEDC-RAM access control unit (67).
  • the ED register (60) holds the error detection result. “0” indicates no error, “1” indicates that writing is not executed (including a write data error at the correct address), “2” indicates incorrect writing, “3” indicates an address error, and “4” indicates that all RAM access signals do not match.
  • the EMI register (61) is the identification number of the LC that outputs the decimal side when the RAM access signal is divided into 2 to 1, the LC (20) of M0 (2) is '0', and the LC ( 30) is “1”, and LC (40) of M2 (4) is “2”.
  • the CA register (62) holds a plurality of addresses when the RAM access signal is divided into 2 to 1.
  • the CWD register (63) holds a large number of write data when the RAM access signal is divided into 2 to 1.
  • the WA register (64) holds the address on the minority side when the RAM access signal is divided into 2 to 1.
  • the CRD register (65) reads the data at the address indicated by the WA register (64) from the triple RAM when the RAM access signal is divided into two-to-one and the minority side generates an illegal write or an address error. Performs majority processing and retains data on the majority side.
  • the LC-RAM access monitoring unit (66) monitors the RAM access signals 22, 32, and 42 of the triple logic circuit LC (20, 30, 40) to detect an error, and registers ED (60), EMI ( 61), CA (62), CWD (63), and WA (64) are set.
  • the RAMEDC-RAM access control unit (67) sets the RAM (21, 2) and '3' when the RAM access signal is divided into 2 to 1 in the ED register (60). 31 and 41) are accessed to correct data erroneously written by the LC.
  • FIG. 5 is a RAMEDC error classification table in the case where the access signal of the triple logic circuit in the first embodiment is divided into 2 to 1. Many columns of command, address, and write data mean the majority side of the RAM access signal, and a few columns mean the minority side of the RAM access signal.
  • No. 1 is when the majority command is W (write) and the minor command is N (no access) or R (read).
  • Write data WDm is written at address Am in the majority RAM, but no write is performed in the RAM on the minority side. In this case, 1 (write not executed) is set in the ED register of RAMEDC, Am is set in the CA register, and WDm is set in the CWD register.
  • No. 2 is a case where the commands on the majority side and the minority side match with W, the addresses match, and the write data does not match.
  • 1 write data error to the correct address
  • Am is set in the CA register
  • WDm is set in the CWD register.
  • No. 3 is the case where the majority command is N or R, and the minor command is W. Although writing is not performed in the majority RAM, write data WDn is written in the address An in the minor RAM.
  • the RAMEDC ED register is set to 2 (illegal write)
  • the WA register is set to An
  • the read data read from the RAM address An that has been tripled to the CRD register is majority processed. Set RDm.
  • No. 4 is a case where the commands on the majority side and the minority side match with W and the addresses do not match.
  • Write data WDm is written at address Am in the majority RAM, but write data WDn is written at address An in the minor RAM.
  • the RAMEDC ED register is set to 3 (address error)
  • the CA register is set to Am
  • the CWD register is set to WDm
  • the WA register is set to An
  • the CRD register is tripled.
  • the majority data RDm obtained by majority processing of the read data read from the address An is set.
  • No. No. 5 is the above No. 5 This is the case where, for example, the commands on the majority side and the minority side match with R and the addresses do not match under conditions other than 1 to 4. In this case, since erroneous writing to the RAM is not performed, error correction of the RAM is not necessary. Therefore, 0 (no error) is set in the ED register.
  • FIG. 6 is a process flowchart of RAMEDC.
  • P1 Process 1
  • the LC RAM access signals 22, 32, and 42 in the modules M0 to M2 are compared. If the three match, the ED register is set to 0 (no error) in P11 and the process ends.
  • P3 register setting is performed.
  • Set ED register to 1 write not executed, write data error to correct address
  • set EMI register to output LC access number on the minority side set LC identification number n, and access to CA register on the larger side
  • the signal address Am is set, and the write data WDm of the RAM access signal on the multiple side is set in the CWD register.
  • the error classification is No.
  • the register setting of P5 is performed. 2 (illegal writing) is set in the ED register, the identification number n of the LC that has output the RAM access signal on the minority side is set in the EMI register, and the address An of the RAM access signal on the minority side is set in the WA register.
  • the error classification is No.
  • P4 register setting is performed.
  • Set 3 (address error) in the ED register set the identification number n of the LC that output the RAM access signal on the minority side in the EMI register, set the address Am of the RAM access signal on the majority side in the CA register, and set CWD Write data WDm of the RAM access signal on the majority side is set in the register, and the address An of the RAM access signal on the minor side is set in the WA register.
  • the processing of P3 and P4 proceeds to the processing of P6, and the RAM of the module Mn whose RAM access signal is the minority side is write-accessed.
  • the address at this time is the value of the CA register, and the write data is the value of the CWD register.
  • the processing of P5 and P6 proceeds to the processing of P7, and the error classification is No. 1 or No. In the case of 2, the ED register is set to 0 (no error) in P11, and the process ends.
  • the error classification is No. 3 or No.
  • the process proceeds to P8, and the RAM of the modules M0 to M2 is read-accessed.
  • the address at this time is the value of the WA register.
  • the process of P8 proceeds to the process of P9, and the read data RD0 to RD2 are inspected. If the three match, the ED register is set to 0 (no error) in P11 and the process ends.
  • the process proceeds to P10 and the read data RDm on the majority side is set in the CRD register.
  • the process of P10 proceeds to the process of P12, and the Mn RAM is write-accessed. The address at this time is the value of the WA register, and the write data is the value of the CRD register.
  • the process of P12 proceeds to the process of P11, the ED register is set to 0 (no error), and the process ends. If none of the three read data RD0 to RD2 or RDn match in P9, the process proceeds to P13, the ED register is set to 4, and the process ends abnormally.
  • FIG. 7 shows the No. in the error classification table of RAMEDC shown in FIG. 2 is an error correction processing timing chart of 1;
  • the LC RAM access signals, RAM addresses and data, and RAMEDC RAM access signals and registers in the modules M0 to M2 are shown.
  • the clock signal clk is 1
  • the LC RAM access signal in the module M0 is N or R and writing to the RAM is not performed (writing is not executed)
  • the LC RAM access signal in the modules M1 and M2 is W and the RAM Data D1 is written to address A1.
  • 1 is set in the ED register (write not executed, write data error at the correct address)
  • 0 is set in the EMI register
  • A1 is set in the CA register
  • D1 is set in the CWD register.
  • RAMEDC performs write access to the RAM of M0, writes data D1 at address A1, and corrects an error caused by non-execution of writing.
  • RAMEDC sets 0 (no error) in the ED register.
  • FIG. 8 shows the No. in the error classification table of RAMEDC shown in FIG. 2 is an error correction processing timing chart of FIG.
  • clk is 1
  • LC RAM access signal in module M0 is W and data D5 is written to RAM address A2 (write data error)
  • LC RAM access signal in modules M1 and M2 is W and RAM address Data D2 is written to A2.
  • 1 is set in the ED register (write not executed, write data error at the correct address)
  • 0 is set in the EMI register
  • A2 is set in the CA register
  • D2 is set in the CWD register.
  • RAMEDC performs write access to the RAM of M0, writes data D2 at address A2, and corrects an error due to a write data error.
  • RAMEDC sets 0 (no error) in the ED register.
  • FIG. 9 is the No. in the error classification table of RAMEDC shown in FIG. 3 is an error correction processing timing chart of FIG.
  • the LC RAM access signal in the module M0 is W and the data D6 is written to the RAM address A3 (illegal writing), and the LC RAM access signal in the modules M1 and M2 is N or R to the RAM Is not written.
  • 2 (illegal write) is set in the ED register
  • 0 is set in the EMI register
  • A3 is set in the WA register.
  • RAMEDC performs read access to RAMs M0 to M2, inspects data read from address A3, and sets D3 read from RAMs M1 and M2 in the CRD register.
  • RAMEDC performs write access to the RAM in M0, writes data D3 at address D3, and corrects an error due to illegal writing.
  • RAMEDC sets 0 (no error) in the ED register.
  • FIG. 10 is the No. in the error classification table of RAMEDC shown in FIG. 4 is an error correction processing timing chart of FIG.
  • clk is 1
  • the LC RAM access signal in the module M0 is W and the data D4 is written to the RAM address A7 (address error)
  • the LC RAM access signal in the modules M1 and M2 is W and the RAM address A4 Data D4 is written in
  • 3 (address error) is set in the ED register
  • 0 is set in the EMI register
  • A4 is set in the CA register
  • D4 is set in the CWD register
  • A7 is set in the WA register.
  • RAMEDC performs write access to the RAM in M0 and writes data D4 to address A4.
  • RAMEDC performs read access to the RAMs M0 to M2, inspects the data read from the address A7, and sets D7 read from the RAMs M1 and M2 in the CRD register.
  • clk performs write access to the RAM in M0 and writes data D7 to address D7 to correct an error due to an address error.
  • RAMEDC sets 0 (no error) in the ED register.
  • FIG. 11 is a block diagram of the RAM access correction circuit RAMEDC in the second embodiment.
  • buffers 660, 661, 662 for the RAM access signals 22, 32, 42 are added to the LC-RAM access monitoring unit (66). Each of these can hold up to three RAM access signals.
  • FIGS. 7 and 8 since correction writing by RAMEDC is completed in the next cycle, even if clk is 2, 3,... The error can be corrected with a delay of one cycle.
  • the error shown in FIG. 9 since the error is corrected over 3 cycles from the next cycle, it cannot be set in the register when the write access is performed in the cycles where clk is 2 and 3.
  • the access signals are temporarily held in the buffers (660, 661, 662) of the LC-RAM access monitoring unit (66) in FIG. 11, and are transferred to the registers in the held order when the RAM correction of the RAMEDC is completed.
  • the RAM of the module in which the error has occurred can be corrected without omission.
  • the LC-RAM access monitoring unit ( 66) since the error is corrected over the next four cycles, the LC-RAM access monitoring unit ( 66), the access signal can be temporarily held in the buffer (660, 661, 662).
  • the buffer (660, 661, 662) in FIG. 11 it is preferable to invalidate the LC RAM access signal in the module that detected the error.
  • FIG. 12 is a block diagram of a third embodiment to which the present invention is applied.
  • the RAM (21, 22, 23) has one port, and selectors (26, 36, 46) are added. Further, a wait signal 68 from the RAMEDC (6) to the LC (20, 30, 40) in M0 to M2 is added.
  • the selector (26, 36, 46) selects the RAM access signal 24, 34, 44 of the RAMEDC (6) when there is RAM access by the RAMEDC (6), and the RAM access signal 22, 32, LC of the LC when there is not. 42 is selected.
  • the RAM access of LC (20, 30, 40) cannot be executed.
  • the wait signal 68 is output to delay the start of the RAM access of LC (20, 30, 40). .
  • this embodiment reduces the performance because a RAM access error causes a wait for LC RAM access, but it requires only one RAM port. There are benefits.
  • FIG. 13 is a block diagram of an FPGA having a RAM access correcting means of a triple logic circuit according to a fourth embodiment to which the present invention is applied.
  • the FPGA of this embodiment has a dynamic partial reconfiguration function.
  • the dynamic partial reconfiguration function is a function capable of reloading a part of logic circuit information from an external flash ROM to the CRAM during operation. If this function is used, when the output of the triple logic circuit is divided into two-to-one, it is considered that the logic circuit that has output that does not match is faulty, and the logic circuit information in the CRAM is Reload and repair the failed logic circuit.
  • the integrated circuit (1) of FIG. 1 is replaced with the FPGA (1), and a partial reconfiguration control circuit PTFCFG is formed in a region where a user-defined circuit called a user logic circuit (17) is formed. (50) has been added. Further, a CRAM access interface circuit CRAM_ACC_IF (54) and CRAM (55) are added to the outside of the user logic circuit (17) of the FPGA (1), and a flash ROM (FR) (59) is connected to the outside of the FPGA (1). Interface signals 60 and 61 are added. In the FPGA (1), the logic circuit information is held in the FR (59). When the FPGA (1) is turned on, the logic circuit information is loaded into the CRAM (55), and the FPGA (1) Determine and start operation.
  • CRAM_ACC_IF CRAM_ACC_IF
  • CRAM flash ROM
  • the RAM access correction circuit RAMEDC (6) outputs the error detection signal 12 output to the error control circuit ERRNG (7), and the RAM access signal is divided into 2 to 1. It includes the error and the identification number of the module that generated the error.
  • the error control circuit ERRMNG (7) requests the partial reconfiguration control circuit PTRCFG (50) to perform partial reconfiguration of the module in which the error has occurred (51).
  • the CRAM (55) is divided into areas for storing the logic circuit information of the triple modules M0, M1, M2, the majority circuit V, the error control circuit ERRMNG, and the partial reconfiguration control circuit PTRCFG.
  • PTRCFG designates the address area of FR (59) and the address area of CRAM (55) in which information of the failed logic circuit is stored in CRAM_ACC_IF (54), and from FR (59) to CRAM (55). Is requested to be reloaded (56).
  • the CRAM_ACC_IF (54) outputs an address to the FR (59) (60), reads the logic circuit information (61), outputs the address and logic circuit information to the CRAM (55), and performs overwriting ( 58).
  • the CRAM_ACC_IF (54) outputs an end signal 57 to the PTRCFG (50), and the PTRCFG (50) outputs an end signal 52 to the ERRMNG (7).
  • ERRMNG (7) outputs an end signal 53 to RAMEDC (6) to notify the completion of repair of the module that detected the error.
  • RAMEDC (6) is a normal module and a write access to the RAM is executed, the RAM access signal is N (no access) because the RAM of the module in which the error occurred is delayed by one cycle.
  • the RAM access signal of the module in which an error has occurred in the next cycle is validated to restore the triple operation of M0-2.
  • FIG. 14 is a RAM access error correction processing timing chart in the fourth embodiment.
  • the LC RAM access signal in the module M0 is N or R, and the RAM is not written (write is not executed)
  • the LC RAM access signal in the modules M1 and M2 is W
  • the RAM address A1 Data D1 is written in
  • 1 is set in the ED register (write not executed, write data error at the correct address)
  • 0 is set in the EMI register
  • A1 is set in the CA register
  • D1 is set in the CWD register.
  • RAMEDC performs write access to the RAM of M0, writes data D1 at address A1, and corrects an error caused by non-execution of writing.
  • RAMEDC sets 0 (no error) in the ED register. Thereafter, the LC RAM access in M0 is invalidated.
  • the RAMEDC notifies the ERRMNG that a 2-to-1 error in the RAM access signal has occurred at M0, partial reconfiguration of the M0 area of the CRAM is executed. During this time, if write access to the RAM is executed in a normal module, correction writing is performed in the M0 RAM with a delay of one cycle.
  • this invention is not limited to the above-mentioned Example, Various modifications are included.
  • the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
  • a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
  • control lines and information lines indicate what is considered necessary for explanation, and not all control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Abstract

 論理回路とRAMを高速動作させつつ,論理回路がRAMに誤って書き込みを行った場合にはこれを速やかに訂正して多重化したRAMの内容を一致させることが可能な集積回路等を提供する。この課題を解決するために,論理回路および論理回路がデータの書き込みと読み出しを行うRAMを有する集積回路において,多重化した論理回路と,前記多重化した論理回路にそれぞれ接続される複数のRAMと,前記多重化した論理回路から前記RAMへのアクセス信号を比較して誤ったデータ書き込みを検出し,RAMのエラーを訂正するRAMアクセス訂正手段を有することを特長とする。

Description

集積回路およびプログラマブルデバイス
  本発明は,集積回路およびプログラマブルデバイスに関する。
  家電製品,AV機器,携帯電話,自動車,産業機械等の機器には,専用LSI(ASIC)が数多く使用されているが,機器の高性能化・高機能化・小型化・低消費電力化・低コスト化に欠かせない重要な部品である。近年半導体プロセスの微細化により,放射線による一過性の故障(ソフトエラー)が発生しやすいという信頼性問題が生じている。定期的なリフレッシュ(記憶保持動作)が不要な揮発性メモリであるSRAM(Static Random Access Memory)は単体のメモリチップの他,データ記憶用メモリとしてマイクロプロセッサ,マイクロコントローラ,AISCなど様々なLSIに内蔵されているが,組み合わせ回路やフリップフロップなどの素子に比べてソフトエラー耐性が低いと言われてきた。
  SRAMのソフトエラー対策としてはECC(Error Collecting Code)と呼ばれるエラー検出訂正技術が一般的に利用されている。SRAMに冗長コード部を付加し,データ書き込み時に冗長コードを生成してデータとともに記憶しておき,読み出し時にデータと冗長コードを使ってエラー検出と訂正を行う。SECDED(Single Error Collection,Double Error Detection)と呼ばれる方式では,1ビットエラー訂正と2ビットエラー検出が可能である。
  半導体プロセスの微細化がさらに進むと,ソフトエラーはフリップフロップなどの順序回路でも問題になると言われている。論理回路に含まれるフリップフロップにソフトエラーが発生し,論理回路が誤動作してSRAMのアクセスを誤ることが考えられるが,この場合にはECCで誤りを検出し,訂正することはできない。
  さらに,内部論理回路が固定のASICに対し,ユーザによって内部論理回路を定義・変更できるプログラマブルデバイスであるFPGA(Field Programmable Gate Array)では,論理回路情報を内部のCRAM(コンフィギュレーションRAM)に持つため,CRAMにソフトエラーが発生して論理回路情報が書き変わり,論理回路が誤った機能に変更(故障)して誤動作するという問題があった。
  ここで,論理回路が故障しても出力を誤らなくする方法として3重化がある。3重化した論理回路の出力を多数決処理して,結果が2対1になったときには2つが一致する多数側の結果を選択する。論理回路のRAMアクセス信号を多数決処理することにより,アクセス誤りをマスクし,正常なアクセスを行うことが可能になる。
  非特許文献1では,FPGAの内蔵メモリであるBRAM(Block RAM)のエラー訂正方法として,“TMR Block RAM with Refresh”という方法を提案している。この方法は,BRAMの2つのアクセスポートのうち一つを論理回路のアクセスに使い,他の一つをエラー訂正に使う。3重化した論理回路にそれぞれBRAMを接続し,エラー訂正用のポートにBRAMリフレッシュ回路を接続する。BRAMリフレッシュ回路は論理回路のアクセスとは無関係に3つのBRAMの同一アドレスからデータを同時に読み出し,多数決処理を行ってデータを書き戻す。BRAMのアクセスは周期的にアドレスを更新しながら実行される。
Carl Carmichael,"Triple Module Redundancy Design Techniques for Virtex FPGAs",XAPP197 (v1.0.1) July 6, 2006
  3重化した論理回路のRAMアクセス信号を多数決処理する方法は,論理回路から多数決回路を経てRAMまでの配線が長くなることによりアクセス時間が増大するため,高速動作させたい場合には不向きである。ここで,上記非特許文献1のBRAMリフレッシュ方式は3重化した論理回路のRAMアクセス信号を多数決処理せずにそのままBRAMに接続できるので高速動作が可能である。また,この方法はBRAMにソフトエラーが発生した場合の訂正にも利用できるが,論理回路がBRAMに誤って書き込みを行った場合の訂正にも利用できる。
  しかしながら,BRAMリフレッシュ回路の誤り訂正は論理回路のアクセスとは無関係に実行されるため,エラーが訂正されるまでに時間を要する。例えば,4KバイトのBRAMを8バイトのデータサイズでリフレッシュする場合,1回のリフレッシュ動作にリードアクセスとライトアクセスの2サイクルがかかると仮定すると,4Kバイト/8バイト=512回のリフレッシュが必要となり,最小でも1024サイクルがかかる。論理回路の動作周波数が100MHzの場合には10.24マイクロ秒がかかる。以上のように従来の方法は,論理回路とRAMを高速動作させつつ,論理回路がRAMに誤って書き込みを行った場合にはこれを短時間で訂正することが困難であった。
上記課題を解決するため,本発明によれば,少なくとも3重に多重化された論理回路と,前記多重化された論理回路それぞれに設けられ,前記論理回路がデータの書き込み及び読み出しを行うRAMと,前記論理回路から前記RAMへのアクセス信号を比較して,誤ったアクセス信号を検出すると,誤ったアクセス信号を受信した前記RAMに対して,他の前記RAMに書き込まれたライトデータを用いてエラー訂正を行うRAMアクセス訂正手段と,を有する。
  論理回路とRAMを高速動作させつつ,論理回路がRAMに誤って書き込みを行った場合にはこれを速やかに訂正して多重化したRAMの内容を一致させることが可能になる。
本発明を適用した第1の実施例で,3重化した論理回路のRAMアクセス訂正回路を有する集積回路のブロック図である。 実施例1における多数決回路の等価論理図である。 実施例1における多数決回路の真理値表である。 実施例1におけるRAMアクセス訂正回路RAMEDCのブロック図である。 実施例1における3重化した論理回路のアクセス信号が2対1に分かれた場合のRAMEDCのエラー分類表である。 RAMEDCの処理フローチャートである。 図5に示したRAMEDCのエラー分類表におけるNo.1のエラー訂正処理タイミングチャートである。 図5に示したRAMEDCのエラー分類表におけるNo.2のエラー訂正処理タイミングチャートである。 図5に示したRAMEDCのエラー分類表におけるNo.3のエラー訂正処理タイミングチャートである。 図5に示したRAMEDCのエラー分類表におけるNo.4のエラー訂正処理タイミングチャートである。 実施例2におけるRAMアクセス訂正回路RAMEDCのブロック図である。 本発明を適用した第3の実施例のブロック図である。 本発明を適用した第4の実施例で,3重化した論理回路のRAMアクセス訂正手段を有するFPGAのブロック図である。 実施例4におけるRAMアクセスエラー訂正処理タイミングチャートである。
  以下,図面を参照しながら,実施の形態について詳細に説明する。
 図1は本発明を適用した第1の実施例で,3重化した論理回路のRAMアクセス訂正回路を有する集積回路のブロック図である。
  図1で示す集積回路は,ウェハーと呼ばれる薄い半導体基板の上に電子回路が作り込まれたLSI,特に製造後にユーザによって内部論理回路を定義・変更できるプログラマブルデバイスを採用する。
  集積回路(1)は3重化されたモジュールM0(2),M1(3),M2(4)と,多数決回路V(5),RAMアクセス訂正回路RAMEDC(6),エラー制御回路ERRMNG(7)を含んでいる。集積回路(1)の入力信号INはM0(2),M1(3),M2(4)に入力され,M0(2)の出力信号8,M1(3)の出力信号9,M2(4)の出力信号10は多数決回路V(5)において多数決処理が行われ,結果が集積回路(1)の出力信号OUTとして出力される。信号11は多数決回路V(5)のエラー検出信号であり,3入力の全てが一致しなかった場合に出力される。エラー検出信号11はエラー制御回路ERRMNG(7)に入力され,集積回路の外部にエラー信号ERRを通知する。
  モジュールM0(2)は論理回路LC(20)とRAM(21)を含んでおり,信号22はLC(20)のRAMアクセス信号で,コマンド,アドレス,ライトデータを含んでいる。信号23はLC(20)のRAMアクセス信号(22)がリードアクセスの場合にRAM(21)から読み出されるリードデータである。LC(20)はM0(2)の外部へ出力信号8を出力する。
  モジュールM1(3)は論理回路LC(30)とRAM(31)を含んでおり,信号32はLC(30)のRAMアクセス信号で,コマンド,アドレス,ライトデータを含んでいる。信号33はLC(30)のRAMアクセス信号(32)がリードアクセスの場合にRAM(31)から読み出されるリードデータである。LC(30)はM1(3)の外部へ出力信号9を出力する。
  モジュールM2(4)は論理回路LC(40)とRAM(41)を含んでおり,信号42はLC(40)のRAMアクセス信号で,コマンド,アドレス,ライトデータを含んでいる。信号43はLC(40)のRAMアクセス信号(42)がリードアクセスの場合にRAM(41)から読み出されるリードデータである。LC(40)はM2(4)の外部へ出力信号10を出力する。
  RAMアクセス訂正回路RAMEDC(6)は3重化した論理回路LC(20,30,40)のRAMアクセス信号22,32,42を監視し,誤ったデータ書き込みなどエラーを検出すると直ちに訂正を行う。RAMEDC(6)から3重化したRAM(21,32,42)へのRAMアクセス信号24,34,44はコマンド,アドレス,ライトデータを含んでいる。3重化したRAM(21,31,41)からRAMEDC(6)への信号25,35,45はRAMアクセス信号24,34,44がリードアクセスの場合に読み出されるリードデータである。信号12はRAMEDC(6)のエラー検出信号であり,RAMアクセス信号22,32,42が全て一致しなかった場合に出力される。エラー検出信号12はエラー制御回路ERRMNG(7)に入力され,集積回路の外部にエラー信号ERRを通知する。
  図2は実施例1における多数決回路の等価論理図である。vin0,vin1,vin2にはそれぞれ3重化された論理回路の出力信号を入力する。出力信号がNビットある場合には,N個の回路をビットごとに接続する。voutは多数決出力信号,err[1:0]はエラー信号である。
  図3は実施例1における多数決回路の真理値表である。入力信号vin0,vin1,vin2はそれぞれ0または1の値をとり,組み合わせは8通りである。多数決出力信号voutは3入力の多い方の値を出力する。エラー信号err[1:0]は3つの入力信号が全て一致する場合には00(エラー無し),2対1に分かれる場合には一致しない入力信号の識別番号(vin0の場合01,vin1の場合10,vin2の場合11)を出力する。
  図4は実施例1におけるRAMアクセス訂正回路RAMEDC(6)のブロック図である。6種類のレジスタ(60~65),LC-RAMアクセス監視部(66),RAMEDC-RAMアクセス制御部(67)を含む。
  EDレジスタ(60)はエラー検出結果を保持する。‘0’はエラー無し,‘1’は書き込み不実行(正しいアドレスへのライトデータ誤りを含む),‘2’は不正書き込み,‘3’はアドレス誤り,‘4’はRAMアクセス信号が全て不一致を意味する。EMIレジスタ(61)はRAMアクセス信号が2対1に分かれた場合の少数側を出力したLCの識別番号で,M0(2)のLC(20)は‘0’,M1(3)のLC(30)は‘1’,M2(4)のLC(40)は‘2’である。CAレジスタ(62)はRAMアクセス信号が2対1に分かれた場合の多数側のアドレスを保持する。CWDレジスタ(63)はRAMアクセス信号が2対1に分かれた場合の多数側のライトデータを保持する。WAレジスタ(64)はRAMアクセス信号が2対1に分かれた場合の少数側のアドレスを保持する。CRDレジスタ(65)はRAMアクセス信号が2対1に分かれた場合の少数側が不正書き込みあるいはアドレス誤りを発生した場合に,3重化したRAMからWAレジスタ(64)が示すアドレスのデータを読み出して多数決処理を行い,多数側のデータを保持する。
  LC-RAMアクセス監視部(66)は3重化した論理回路LC(20,30,40)のRAMアクセス信号22,32,42を監視してエラー検出を行い,レジスタED(60),EMI(61),CA(62),CWD(63),WA(64)の設定を行う。RAMEDC-RAMアクセス制御部(67)はEDレジスタ(60)にRAMアクセス信号が2対1に分かれた場合の‘1’,‘2’,‘3’が設定された場合に,RAM(21,31,41)をアクセスしてLCが誤書き込みしたデータを訂正する。
  図5は実施例1における3重化した論理回路のアクセス信号が2対1に分かれた場合のRAMEDCのエラー分類表である。コマンド,アドレス,ライトデータの多数の欄はRAMアクセス信号の多数側を意味し,少数の欄はRAMアクセス信号の少数側を意味する。
  No.1は多数側のコマンドがW(ライト),少数側のコマンドがN(アクセス無し)またはR(リード)の場合である。多数側のRAMへはアドレスAmにライトデータWDmが書き込まれているが,少数側のRAMへは書き込みが行われていない。このケースでは,RAMEDCのEDレジスタに1(書き込み不実行)を設定し,CAレジスタにAmを設定し,CWDレジスタにWDmを設定する。
  No.2は多数側と少数側のコマンドがWで一致し,アドレスが一致し,ライトデータが一致しない場合である。多数側のRAMへはアドレスAmにライトデータWDmが書き込まれているが,少数側のRAMへはアドレスAn=AmにライトデータWDn≠WDmが書き込まれている。このケースでは,RAMEDCのEDレジスタに1(正しいアドレスへのライトデータ誤り)を設定し,CAレジスタにAmを設定し,CWDレジスタにWDmを設定する。
  No.3は多数側のコマンドがNまたはR,少数側のコマンドがWの場合である。多数側のRAMへは書き込みが行われていないが,少数側のRAMへはアドレスAnにライトデータWDnが書き込まれている。このケースでは,RAMEDCのEDレジスタに2(不正書き込み)を設定し,WAレジスタにAnを設定し,CRDレジスタに3重化したRAMのアドレスAnから読み出したリードデータを多数決処理した多数側のデータRDmを設定する。
  No.4は多数側と少数側のコマンドがWで一致し,アドレスが一致しない場合である。多数側のRAMへはアドレスAmにライトデータWDmが書き込まれているが,少数側のRAMへはアドレスAnにライトデータWDnが書き込まれている。このケースでは,RAMEDCのEDレジスタに3(アドレス誤り)を設定し,CAレジスタにAmを設定し,CWDレジスタにWDmを設定し,WAレジスタにAnを設定し,CRDレジスタに3重化したRAMのアドレスAnから読み出したリードデータを多数決処理した多数側のデータRDmを設定する。
  No.5は上記No.1~4以外の条件で,例えば多数側と少数側のコマンドがRで一致し,アドレスが不一致となる場合である。このケースはRAMへの誤った書き込みは行われないため,RAMのエラー訂正は必要ない。そのため,EDレジスタに0(エラー無し)を設定する。
  図6はRAMEDCの処理フローチャートである。P1(処理1)において,モジュールM0~2におけるLCのRAMアクセス信号22,32,42を比較する。3つが一致する場合,P11においてEDレジスタを0(エラー無し)に設定して終了となる。
  P1において2つが一致する場合,P2において図5に示したエラー分類表にもとづいて処理が分かれる。No.1またはNo.2の場合,P3のレジスタ設定を行う。EDレジスタに1(書き込み不実行,正しいアドレスへのライトデータ誤り)を設定し,EMIレジスタに少数側のRAMアクセス信号を出力したLCの識別番号nを設定し,CAレジスタに多数側のRAMアクセス信号のアドレスAmを設定し,CWDレジスタに多数側のRAMアクセス信号のライトデータWDmを設定する。
  P2においてエラー分類がNo.3の場合,P5のレジスタ設定を行う。EDレジスタに2(不正書き込み)を設定し,EMIレジスタに少数側のRAMアクセス信号を出力したLCの識別番号nを設定し,WAレジスタに少数側のRAMアクセス信号のアドレスAnを設定する。
  P2においてエラー分類がNo.4の場合,P4のレジスタ設定を行う。EDレジスタに3(アドレス誤り)を設定し,EMIレジスタに少数側のRAMアクセス信号を出力したLCの識別番号nを設定し,CAレジスタに多数側のRAMアクセス信号のアドレスAmを設定し,CWDレジスタに多数側のRAMアクセス信号のライトデータWDmを設定し,WAレジスタに少数側のRAMアクセス信号のアドレスAnを設定する。
  P3とP4の処理はP6の処理に進み,RAMアクセス信号が少数側であったモジュールMnのRAMをライトアクセスする。この時のアドレスはCAレジスタの値,ライトデータはCWDレジスタの値となる。P5とP6の処理はP7の処理に進み,エラー分類がNo.1またはNo.2の場合,P11においてEDレジスタを0(エラー無し)に設定して終了となる。P7においてエラー分類がNo.3またはNo.4の場合,P8の処理に進み,モジュールM0~2のRAMをリードアクセスする。この時のアドレスはWAレジスタの値となる。P8の処理はP9の処理に進み,リードデータRD0~2を検査する。3つが一致する場合,P11においてEDレジスタを0(エラー無し)に設定して終了となる。
  P9において少数側のRAMアクセス信号を出力したモジュールのRAMから読み出したリードデータRDn以外が一致する場合,P10の処理に進みCRDレジスタに多数側の読み出しデータRDmを設定する。P10の処理はP12の処理に進み,MnのRAMをライトアクセスする。この時のアドレスはWAレジスタの値,ライトデータはCRDレジスタの値となる。P12の処理はP11の処理に進み,EDレジスタを0(エラー無し)に設定して終了となる。P9においてリードデータRD0~2が3つとも一致するかRDn以外が一致するかのいずれでもない場合はP13の処理に進み,EDレジスタを4に設定して異常終了となる。
  図7は図5に示したRAMEDCのエラー分類表におけるNo.1のエラー訂正処理タイミングチャートである。モジュールM0~2におけるLCのRAMアクセス信号とRAMのアドレスとデータ,およびRAMEDCのRAMアクセス信号とレジスタを示す。クロック信号clkが1のサイクルで,モジュールM0におけるLCのRAMアクセス信号はNまたはRでRAMへの書き込みは行われず(書き込み不実行),モジュールM1とM2におけるLCのRAMアクセス信号はWでRAMのアドレスA1にデータD1が書き込まれる。RAMEDCにおいて,EDレジスタに1(書き込み不実行,正しいアドレスへのライトデータ誤り),EMIレジスタに0,CAレジスタにA1,CWDレジスタにD1が設定される。clkが2のサイクルで,RAMEDCはM0のRAMをライトアクセスし,アドレスA1にデータD1を書き込んで書き込み不実行によるエラーを訂正する。clkが3のサイクルでRAMEDCはEDレジスタに0(エラー無し)を設定する。
  図8は図5に示したRAMEDCのエラー分類表におけるNo.2のエラー訂正処理タイミングチャートである。clkが1のサイクルで,モジュールM0におけるLCのRAMアクセス信号はWでRAMのアドレスA2にデータD5が書き込まれ(ライトデータ誤り),モジュールM1とM2におけるLCのRAMアクセス信号はWでRAMのアドレスA2にデータD2が書き込まれる。RAMEDCにおいて,EDレジスタに1(書き込み不実行,正しいアドレスへのライトデータ誤り),EMIレジスタに0,CAレジスタにA2,CWDレジスタにD2が設定される。clkが2のサイクルで,RAMEDCはM0のRAMをライトアクセスし,アドレスA2にデータD2を書き込んでライトデータ誤りによるエラーを訂正する。clkが3のサイクルでRAMEDCはEDレジスタに0(エラー無し)を設定する。
  図9は図5に示したRAMEDCのエラー分類表におけるNo.3のエラー訂正処理タイミングチャートである。clkが1のサイクルで,モジュールM0におけるLCのRAMアクセス信号はWでRAMのアドレスA3にデータD6が書き込まれ(不正書き込み),モジュールM1とM2におけるLCのRAMアクセス信号はNまたはRでRAMへの書き込みは行われない。RAMEDCにおいて,EDレジスタに2(不正書き込み),EMIレジスタに0,WAレジスタにA3が設定される。clkが2のサイクルで,RAMEDCはM0~2のRAMをリードアクセスし,アドレスA3から読み出したデータを検査し,M1とM2のRAMから読み出したD3をCRDレジスタに設定する。clkが4のサイクルで,RAMEDCはM0のRAMをライトアクセスし,アドレスD3にデータD3を書き込んで不正書き込みによるエラーを訂正する。clkが5のサイクルでRAMEDCはEDレジスタに0(エラー無し)を設定する。
  図10は図5に示したRAMEDCのエラー分類表におけるNo.4のエラー訂正処理タイミングチャートである。clkが1のサイクルで,モジュールM0におけるLCのRAMアクセス信号はWでRAMのアドレスA7にデータD4が書き込まれ(アドレス誤り),モジュールM1とM2におけるLCのRAMアクセス信号はWでRAMのアドレスA4にデータD4が書き込まれる。RAMEDCにおいて,EDレジスタに3(アドレス誤り),EMIレジスタに0,CAレジスタにA4,CWDレジスタにD4,WAレジスタにA7が設定される。clkが2のサイクルで,RAMEDCはM0のRAMをライトアクセスし,アドレスA4にデータD4を書き込む。clkが3のサイクルで,RAMEDCはM0~2のRAMをリードアクセスし,アドレスA7から読み出したデータを検査し,M1とM2のRAMから読み出したD7をCRDレジスタに設定する。clkが5のサイクルで,RAMEDCはM0のRAMをライトアクセスし,アドレスD7にデータD7を書き込んでアドレス誤りによるエラーを訂正する。clkが6のサイクルでRAMEDCはEDレジスタに0(エラー無し)を設定する。
 図11は実施例2におけるRAMアクセス訂正回路RAMEDCのブロック図である。図4と比較すると,LC-RAMアクセス監視部(66)にRAMアクセス信号22,32,42に対するバッファ(660,661,662)が追加される。これらはそれぞれ最大3回分のRAMアクセス信号を保持することができる。図7と図8に示したエラーの場合は,次のサイクルでRAMEDCによる訂正書き込みが完了するため,clkが2,3,...と連続してRAMへのライトアクセスが行われても,1サイクル遅れでエラーを訂正することができる。ところが,図9に示したエラーの場合は,次のサイクルから3サイクルかけてエラーを訂正するため,clkが2と3のサイクルでライトアクセスが行われるとレジスタに設定することができない。そこで図11におけるLC-RAMアクセス監視部(66)のバッファ(660,661,662)にアクセス信号を一旦保持しておき,RAMEDCのRAM訂正が終了したら保持した順番にレジスタに転送する。この手段により,エラーが発生したモジュールのRAMを漏れなく訂正することができる。同様に図10に示したエラーの場合は,次のサイクルから4サイクルかけてエラーを訂正するため,clkが2~4のサイクルでライトアクセスが行われた場合でも,LC-RAMアクセス監視部(66)のバッファ(660,661,662)にアクセス信号を一旦保持しておくことができる。以上のように,エラーが発生したモジュールにおいてLCが不正書き込みまたはアドレス誤りを生じると,RAMの訂正に3サイクルまたは4サイクルを必要としてしまう。図11におけるバッファ(660,661,662)を最小の段数3とするためには,エラーを検出したモジュールにおけるLCのRAMアクセス信号を無効化すると良い。
 図12は本発明を適用した第3の実施例のブロック図である。図1と比較すると,RAM(21,22,23)のポートが1つになり,セレクタ(26,36,46)が追加されている。また,RAMEDC(6)からM0~2におけるLC(20,30,40)へのウエイト信号68が追加されている。セレクタ(26,36,46)はRAMEDC(6)によるRAMアクセスがある場合にはRAMEDC(6)のRAMアクセス信号24,34,44を選択し,無い場合はLCのRAMアクセス信号22,32,42を選択する。RAMEDC(6)によるRAMアクセスがある場合はLC(20,30,40)のRAMアクセスを実行できないため,ウエイト信号68を出力してLC(20,30,40)のRAMアクセスの実行開始を遅らせる。本実施例は第1および第2の実施例と比べると,RAMアクセスエラーが発生するとLCのRAMアクセスにウエイトが入るようになり性能が低下するが,RAMのポートが1つで済むという経済的メリットがある。
 図13は本発明を適用した第4の実施例で,3重化した論理回路のRAMアクセス訂正手段を有するFPGAのブロック図である。
  本実施例のFPGAでは,動的部分再構成機能を有する。動的部分再構成機能とは,論理回路情報の一部を動作中に外部のフラッシュROMからCRAMに再ロードすることができる機能でさる。この機能を利用すれば,3重化した論理回路の出力が2対1に分かれた場合に,一致しない出力を出した論理回路が故障しているとみなして,CRAMにあるその論理回路情報を再ロードし,故障した論理回路を修理することができる。
  本実施例を図1と比較すると,図1の集積回路(1)がFPGA(1)に置き換わり,ユーザ論理回路(17)というユーザが定義した回路が構成される領域に部分再構成制御回路PTRCFG(50)が追加されている。また,FPGA(1)のユーザ論理回路(17)の外部にCRAMアクセスインタフェース回路CRAM_ACC_IF(54)とCRAM(55)が追加され,FPGA(1)の外部にフラッシュROM(FR)(59)とそのインタフェース信号60,61が追加されている。FPGA(1)は論理回路情報がFR(59)に保持されており,FPGA(1)に電源が投入されると論理回路情報がCRAM(55)にロードされ,FPGA(1)は論理回路が決定し動作を開始する。
  図1の第1の実施例と異なるのは,RAMアクセス訂正回路RAMEDC(6)がエラー制御回路ERRMNG(7)に出力するエラー検出信号12に,RAMアクセス信号が2対1に分かれた場合のエラーとエラーを発生したモジュールの識別番号を含む点である。その場合,エラー制御回路ERRMNG(7)は部分再構成制御回路PTRCFG(50)にエラーを発生したモジュールの部分再構成を要求する(51)。CRAM(55)は3重化されたモジュールM0,M1,M2,および,多数決回路V,エラー制御回路ERRMNG,部分再構成制御回路PTRCFGの論理回路情報を記憶する領域が分かれている。
  PTRCFG(50)はCRAM_ACC_IF(54)に故障した論理回路の情報が記憶されているFR(59)のアドレス領域とCRAM(55)のアドレス領域を指定し,FR(59)からCRAM(55)への再ロードを要求する(56)。CRAM_ACC_IF(54)は要求56に従い,FR(59)にアドレスを出力して(60),論理回路情報を読み出し(61),CRAM(55)にアドレスと論理回路情報を出力して上書きを行う(58)。再ロードが終了すると,CRAM_ACC_IF(54)は終了信号57をPTRCFG(50)に出力し,PTRCFG(50)は終了信号52をERRMNG(7)に出力する。ERRMNG(7)はRAMEDC(6)に終了信号53を出力し,エラーを検出したモジュールの修理が完了したことを通知する。RAMEDC(6)は正常なモジュールでRAMへのライトアクセスが実行されると,1サイクル遅れでエラーが発生したモジュールのRAMを訂正しているため,RAMアクセス信号がN(アクセス無し)になった次のサイクルでエラーが発生したモジュールのRAMアクセス信号を有効にしてM0~2の3重化動作を復旧させる。
  図14は実施例4におけるRAMアクセスエラー訂正処理タイミングチャートである。clkが1のサイクルで,モジュールM0におけるLCのRAMアクセス信号はNまたはRでRAMへの書き込みは行われず(書き込み不実行),モジュールM1とM2におけるLCのRAMアクセス信号はWでRAMのアドレスA1にデータD1が書き込まれる。RAMEDCにおいて,EDレジスタに1(書き込み不実行,正しいアドレスへのライトデータ誤り),EMIレジスタに0,CAレジスタにA1,CWDレジスタにD1が設定される。clkが2のサイクルで,RAMEDCはM0のRAMをライトアクセスし,アドレスA1にデータD1を書き込んで書き込み不実行によるエラーを訂正する。clkが3のサイクルでRAMEDCはEDレジスタに0(エラー無し)を設定する。以降M0におけるLCのRAMアクセスは無効となる。RAMEDCがERRMNGにRAMアクセス信号の2対1のエラーがM0で発生したことを通知すると,CRAMのM0領域の部分再構成が実行される。この間,正常なモジュールにおいてRAMへのライトアクセスが実行されると1サイクル遅れでM0のRAMに訂正書き込みが行われる。CRAMのM0領域の部分再構成が終了した後,RAMEDCのEDレジスタが0(エラー無し)で,M1とM2のRAMアクセス信号がN(アクセス無し)になったタイミング(clkが10,000のサイクル)でM0におけるLCのRAMアクセス無効化を解除する。次のclkが10,001のサイクルではモジュールM0~2のRAMの内容が一致した状態になっており,M0~2が3重化動作を開始することができる。
 なお,本発明は上記した実施例に限定されるものではなく,様々な変形例が含まれる。例えば,上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり,必ずしも説明した全ての構成を備えるものに限定されるものではない。また,ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり,また,ある実施例の構成に他の実施例の構成を加えることも可能である。また,各実施例の構成の一部について,他の構成の追加・削除・置換をすることが可能である。
  また,制御線や情報線は説明上必要と考えられるものを示しており,製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1      集積回路,FPGA
2,3,4  3重化モジュール
5      多数決回路
6      RAMアクセス訂正回路
7      エラー制御回路
8      M0におけるLCの出力信号
9      M1におけるLCの出力信号
10     M2におけるLCの出力信号
11     多数決回路(5)のエラー検出信号
12     RAMアクセス訂正回路のエラー検出信号
17     FPGA内部のユーザ論理回路
50     部分再構成制御回路
54     CRAMアクセスインタフェース回路
55     CRAM
59     フラッシュROM

Claims (13)

  1.  少なくとも3重に多重化された論理回路と,
     前記多重化された論理回路それぞれに設けられ,前記論理回路がデータの書き込み及び読み出しを行うRAMと,
     前記論理回路から前記RAMへのアクセス信号を比較して,誤ったアクセス信号を検出すると,誤ったアクセス信号を受信した前記RAMに対して,他の前記RAMに書き込まれたライトデータを用いてエラー訂正を行うRAMアクセス訂正手段と,
     を有する集積回路。
  2.  請求項1に記載の集積回路において,
     前記RAMアクセス訂正手段は,前記多重化された論理回路から前記RAMへのアクセス信号を比較して不一致を検出した場合に,一致する数が最も多い値を正常な信号とみなし,それ以外の値を異常な信号とみなし,前記正常とみなしたアクセス信号と前記異常とみなしたアクセス信号とから前記RAMのエラー種別を特定し,そのエラーを訂正することを特長とする集積回路。
  3.   請求項2に記載の集積回路において,
      前記RAMアクセス訂正手段は,誤ったデータ書き込みのエラー種別を保持するエラー検出レジスタを有し,
      前記エラー検出レジスタは,エラー無し,書き込み不実行,不正書き込み,アドレス誤りの少なくとも4つの種別を表すことを特長とする集積回路。
  4.  請求項1に記載の集積回路において,
     前記論理回路は,所定のクロックに従って前記RAMへのアクセスを行うものであって,
     前記RAMアクセス訂正手段は,あるクロックでアクセス信号を検出すると,次のクロックで,当該RAMのエラー訂正処理を行うことを特徴とする集積回路。
  5.   請求項1に記載の集積回路において,
     前記RAMアクセス訂正手段は,誤ったデータ書き込みを検出した場合に,一致する数が最も多いアクセス信号のアドレス値を保持する正常アドレスレジスタと,一致する数が最も多いアクセス信号のライトデータ値を設定する正常ライトデータレジスタを有することを特長とする集積回路。
  6.   請求項1に記載の集積回路において,
      前記RAMアクセス訂正手段は,誤ったデータ書き込みを検出した場合に,一致する数が最も多いアクセス信号以外のアクセス信号のアドレス値を設定する異常アドレスレジスタと,前記多重化した論理回路に接続されるRAMの前記異常アドレスレジスタに設定されたアドレスからデータを読み出して,その一致する数が最も多いデータを正常データとして設定する正常リードデータレジスタ有することを特長とする集積回路。
  7.   請求項1に記載の集積回路において,
     前記RAMアクセス訂正手段は,前記多重化した論理回路から前記RAMへのアクセス信号を比較して不一致を検出した場合に,正常とみなしたアクセス信号のコマンドがライトで,異常とみなしたアクセス信号のコマンドがライトで無い場合に,正常とみなしたアクセス信号のアドレスとライトデータを使って,異常とみなしたアクセスが実行されたRAMへのライトアクセスを行うことによりエラーを訂正することを特長とする集積回路。
  8. ライトデータ誤り
      請求項1に記載の集積回路において,
      前記RAMアクセス訂正手段は,前記多重化した論理回路から前記RAMへのアクセス信号を比較して不一致を検出した場合に,正常とみなしたアクセス信号と異常とみなしたアクセス信号のコマンドがライトで一致し,アドレスが一致し,ライトデータが不一致の場合に,正常とみなしたRAMアクセス信号のアドレスとライトデータを使って,異常とみなしたRAMアクセスが実行されたRAMへのライトアクセスを行うことによりエラーを訂正することを特長とする集積回路。
  9.   請求項1に記載の集積回路において,
      前記RAMアクセス訂正手段は,前記多重化した論理回路から前記RAMへのアクセス信号を比較して不一致を検出した場合に,正常とみなしたアクセス信号のコマンドがライトなく,異常とみなしたアクセス信号のコマンドがライトの場合に,異常とみなしたアクセス信号のアドレスを使って,前記多重化した論理回路に接続されるRAMからデータを読み出して,その一致する数が最も多いデータを正常データとして,異常とみなしたRAMアクセスが実行されたRAMへのライトアクセスを行うことによりエラーを訂正することを特長とする集積回路。
  10.   請求項1に記載の集積回路において,
      前記RAMアクセス訂正手段は,前記多重化した論理回路から前記RAMへのアクセス信号を比較して不一致を検出した場合に,正常とみなしたアクセス信号と異常とみなしたアクセス信号のコマンドがライトで一致し,アドレスが不一致の場合に,正常とみなしたRAMアクセス信号のアドレスとライトデータを使って,異常とみなしたRAMアクセスが実行されたRAMへのライトアクセスを行い,異常とみなしたアクセス信号のアドレスを使って,前記多重化した論理回路に接続されるRAMからデータを読み出して,その一致する数が最も多いデータを正常データとして,異常とみなしたRAMアクセスが実行されたRAMへのライトアクセスを行うことによりエラーを訂正することを特長とする集積回路。
  11.   請求項1に記載の集積回路において,
      前記RAMアクセス訂正手段は,前記多重化した論理回路から前記RAMへのアクセス信号を一時記憶する3段以上のバッファを有し,異常とみなしたRAMアクセスが実行されたRAMのエラーを訂正中にアクセス信号を一時記憶しておき,異常とみなしたRAMアクセスが実行されたRAMのエラーの訂正が終了した後に比較を行うことを特長とする集積回路。
  12.   請求項1に記載の集積回路において,
      前記RAMアクセス訂正手段が誤ったデータ書き込みを検出した場合に,そのエラー訂正が終了するまでエラーを発生した論理回路のRAMアクセスが無効化することを特長とする集積回路。
  13.   電源が投入されると外部の記憶媒体に保持された論理回路情報を内部のコンフィギュレーションRAMにロードして論理回路を構成して動作するプログラマブルデバイスにおいて,
      動作中に論理回路の一部を外部の記憶媒体から再ロードする動的部分再構築部と,
      少なくとも3重に多重化した論理回路と,
      前記多重化した論理回路にそれぞれ接続される複数のRAMと,
      前記多重化した論理回路から前記RAMへのアクセス信号を比較して誤ったアクセス信号を検出し,前記RAMのエラーを訂正するRAMアクセス訂正手段を有し,
      前記RAMアクセス訂正手段が誤ったデータ書き込みを検出した場合に,そのエラー訂正が終了するまでエラーを発生した論理回路のRAMアクセスを無効化し,前記動的部分再構成部を用いてエラー発生した論理回路の部分再構成を行い,部分再構成が完了した後,前記多重化した論理回路から前記RAMへのアクセスが無く,誤ったデータ書き込みが検出されていない条件でRAMアクセスの無効化を解除することを特長とするプログラマブルデバイス。
PCT/JP2014/066092 2014-06-18 2014-06-18 集積回路およびプログラマブルデバイス WO2015193984A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2014/066092 WO2015193984A1 (ja) 2014-06-18 2014-06-18 集積回路およびプログラマブルデバイス
JP2016528704A JP6220972B2 (ja) 2014-06-18 2014-06-18 集積回路およびプログラマブルデバイス
US15/317,230 US10318376B2 (en) 2014-06-18 2014-06-18 Integrated circuit and programmable device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/066092 WO2015193984A1 (ja) 2014-06-18 2014-06-18 集積回路およびプログラマブルデバイス

Publications (1)

Publication Number Publication Date
WO2015193984A1 true WO2015193984A1 (ja) 2015-12-23

Family

ID=54935016

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/066092 WO2015193984A1 (ja) 2014-06-18 2014-06-18 集積回路およびプログラマブルデバイス

Country Status (3)

Country Link
US (1) US10318376B2 (ja)
JP (1) JP6220972B2 (ja)
WO (1) WO2015193984A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020046840A (ja) * 2018-09-18 2020-03-26 キヤノン株式会社 画像処理装置、情報処理方法及びプログラム
FR3104798B1 (fr) * 2019-12-17 2022-02-18 Thales Sa Registre a triplication comportant un dispositif de securisation
CN112838857B (zh) * 2021-01-27 2022-07-22 复旦大学 一种应用于组合逻辑电路的软错误加固方法
US11861181B1 (en) 2022-08-10 2024-01-02 Bae Systems Information And Electronic Systems Integration Inc. Triple modular redundancy (TMR) radiation hardened memory system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08212093A (ja) * 1995-02-07 1996-08-20 Toshiba Corp フォールトトレラント計算機システム
JP2001175545A (ja) * 1999-12-15 2001-06-29 Nec Corp サーバシステムおよび障害診断方法ならびに記録媒体
JP2010113388A (ja) * 2008-11-04 2010-05-20 Renesas Technology Corp 処理結果を照合する比較器を有するマルチコアマイコン

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3665173A (en) * 1968-09-03 1972-05-23 Ibm Triple modular redundancy/sparing
US3780276A (en) * 1972-06-20 1973-12-18 Ibm Hybrid redundancy interface
JPS55119753A (en) * 1979-03-07 1980-09-13 Nippon Signal Co Ltd:The Information input method in electronic computer system
JPS6161299A (ja) * 1984-08-31 1986-03-29 Fujitsu Ltd 記憶装置
US6963217B2 (en) * 2003-02-21 2005-11-08 University Of South Florida Method and apparatus for creating circuit redundancy in programmable logic devices
US20060236168A1 (en) * 2005-04-01 2006-10-19 Honeywell International Inc. System and method for dynamically optimizing performance and reliability of redundant processing systems
WO2008078355A1 (ja) * 2006-12-22 2008-07-03 Fujitsu Limited メモリ回路、半導体装置及び情報処理装置並びにデータ書込み方法
US7863733B2 (en) * 2007-07-11 2011-01-04 Arm Limited Integrated circuit with multiple layers of circuits
US8271912B2 (en) * 2008-03-19 2012-09-18 International Business Machines Corporation Radiation tolerance by clock signal interleaving
US9112536B2 (en) * 2011-01-31 2015-08-18 Everspin Technologies, Inc. Method of reading and writing to a spin torque magnetic random access memory with error correcting code
US8572538B2 (en) * 2011-07-01 2013-10-29 Altera Corporation Reconfigurable logic block
JP5699057B2 (ja) * 2011-08-24 2015-04-08 株式会社日立製作所 プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス
US9244783B2 (en) * 2013-06-18 2016-01-26 Brigham Young University Automated circuit triplication method and system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08212093A (ja) * 1995-02-07 1996-08-20 Toshiba Corp フォールトトレラント計算機システム
JP2001175545A (ja) * 1999-12-15 2001-06-29 Nec Corp サーバシステムおよび障害診断方法ならびに記録媒体
JP2010113388A (ja) * 2008-11-04 2010-05-20 Renesas Technology Corp 処理結果を照合する比較器を有するマルチコアマイコン

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TAKUYA TAKAHARA: "High-Reliable Computer System on SRAM Based FPGA for Spacecraft", THE TRANSACTIONS OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, vol. J88-B, 1 January 2005 (2005-01-01), pages 90 - 98 *

Also Published As

Publication number Publication date
US10318376B2 (en) 2019-06-11
JPWO2015193984A1 (ja) 2017-04-20
US20180165153A1 (en) 2018-06-14
JP6220972B2 (ja) 2017-10-25

Similar Documents

Publication Publication Date Title
US11385959B2 (en) Memory repair method and apparatus based on error code tracking
US9015558B2 (en) Systems and methods for error detection and correction in a memory module which includes a memory buffer
US9104595B2 (en) Selective remedial action based on category of detected error for a memory read
US9583215B2 (en) Semiconductor memory device and testing method thereof
US20080181035A1 (en) Method and system for a dynamically repairable memory
US20120079346A1 (en) Simulated error causing apparatus
JP6220972B2 (ja) 集積回路およびプログラマブルデバイス
US9104588B2 (en) Circuits, apparatuses, and methods for address scrambling
JP2012198727A (ja) メモリコントローラ及び情報処理装置
US20150143188A1 (en) Methods for accessing a storage unit of a flash memory and apparatuses using the same
US10043588B2 (en) Memory device
EP4246329B1 (en) Error correction method and apparatus
JP2020198142A (ja) 半導体集積回路及びメモリ回路
US11182231B2 (en) Host system and computing system including the host system
JP6193112B2 (ja) メモリアクセス制御装置、メモリアクセス制御システム、メモリアクセス制御方法、及び、メモリアクセス制御プログラム
WO2014141455A1 (ja) Fpga回路
JP2015001774A (ja) 半導体集積回路及びその処理方法
US11537467B2 (en) Memory, memory system, and operation method of memory
JP6749965B2 (ja) メモリデバイス
KR100926149B1 (ko) 반도체 메모리 테스트 시스템의 페일 데이터 처리 방법
KR102087509B1 (ko) 메모리 디바이스
US20240330133A1 (en) Method and system for repairing a dynamic random access memory (dram) of memory device
TWI676175B (zh) 預比對系統及預比對方法
US11119852B2 (en) Memory device having error correction function and error correction method for memory device
JP2015201813A (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: 14895010

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016528704

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15317230

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14895010

Country of ref document: EP

Kind code of ref document: A1