WO2014054345A1 - Semiconductor device - Google Patents
Semiconductor device Download PDFInfo
- Publication number
- WO2014054345A1 WO2014054345A1 PCT/JP2013/072127 JP2013072127W WO2014054345A1 WO 2014054345 A1 WO2014054345 A1 WO 2014054345A1 JP 2013072127 W JP2013072127 W JP 2013072127W WO 2014054345 A1 WO2014054345 A1 WO 2014054345A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- error
- data
- truth table
- semiconductor device
- mlut
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10D—INORGANIC ELECTRIC SEMICONDUCTOR DEVICES
- H10D84/00—Integrated devices formed in or on semiconductor substrates that comprise only semiconducting layers, e.g. on Si wafers or on GaAs-on-Si wafers
- H10D84/90—Masterslice integrated circuits
- H10D84/903—Masterslice integrated circuits comprising field effect technology
- H10D84/907—CMOS gate arrays
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/16—Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Definitions
- the present invention relates to a semiconductor device, and more particularly to a reconfigurable semiconductor device and its error detection method.
- FPGA Field Programmable Gate
- PLD Program Logic Device
- MPLD Memory Research and development of “Basic Programmable Logic Devices” (registered trademark).
- MPLD is shown, for example, in Patent Document 2 below.
- LUT Look
- MLUT Multi Look Up Table
- the MPLD is a device in which the logic area and the wiring area are made flexible by using the MLUT as both a logic element and a wiring element, and is different from an FPGA having a switching circuit dedicated for connection between memories.
- a programmable device including an ECC unit for detecting an error by storing bits for error checking in addition to configuration data in a memory cell and periodically reading out the data. Is disclosed (Patent Document 3 below).
- the proposed FPGA error detection unit is periodically checked for soft errors. Therefore, in the disclosed technique, an error is detected when a soft error check is periodically performed after an error occurs, so that the error cannot be detected simultaneously with the occurrence of the error. For this reason, the semiconductor device performs an operation process on the data in which an error has occurred, so that it is not robust.
- a semiconductor device aims to improve the robustness of a semiconductor device by detecting a data error when outputting data.
- a reconfigurable semiconductor device comprising: A truth table for outputting a logical operation of input values specified by a plurality of addresses to a data line, comprising a plurality of storage units constituting an array and connected to each other by address lines or data lines. Stores data, operates as a logic circuit, and / or stores truth table data for outputting an input value specified by a certain address to a data line connected to an address of another storage unit Configured to operate as a connection circuit,
- the storage unit A plurality of memory cells holding the truth table data and error check bits of the truth table data; First data constituting a part of the truth table data, and an error detection unit that reads a first error check bit of the first data and determines whether or not an error has occurred in the first data.
- a reconfigurable semiconductor device characterized by comprising: The semiconductor device improves the robustness of the semiconductor device by detecting a data error when outputting data. 2.
- the error check bit is a redundant bit,
- the reconfigurable semiconductor device according to item 1 or 2 wherein the error detection unit decodes the first data and the first error check bit to determine whether an error has occurred in the first data. 4).
- the semiconductor device according to the present embodiment is greatly different from the FPGA in that it has multiple outputs including at least three data lines. Therefore, the relative increase in the memory area can be restricted, and the cost increase can be suppressed. As a result, error detection or correction in the storage unit becomes possible. 5. 5. The reconfigurable semiconductor device according to any one of items 1 to 4, wherein the storage unit includes a stage register that holds data output from the error detection unit and operates in synchronization with a clock. Although the latency is increased by error detection or correction, the throughput can be increased by performing pipeline processing by synchronizing the reading. 6).
- the semiconductor device includes: 6. The reconfigurable semiconductor device according to any one of items 1 to 5, further comprising an error output unit that receives an error signal from each of the storage units and outputs an error as an error output signal. By simply reporting the error to the outside rather than detecting or correcting the error, the semiconductor device can be maintained. 7).
- the semiconductor device includes: 6. The reconfigurable semiconductor device according to any one of items 1 to 5, further comprising an error output unit that receives an error signal from each storage unit and encodes the error signal to identify a storage unit in which an error has occurred. . By specifying a storage unit in which an error has occurred, prohibiting the use of the storage unit can increase the robustness of the reconfigurable semiconductor device. Item 8. 8.
- the reconfigurable semiconductor device according to any one of items 1 to 7, wherein the memory element of the memory cell is a phase change film.
- the resistance value of the phase change film may vary for each memory cell. This is because even if the phase is changed from high resistance to low resistance, the high resistance remains, so that the error detection unit is suitable for a memory cell using a phase change film.
- An error detection method in a reconfigurable semiconductor device wherein the semiconductor device includes a plurality of storage units that form an array and are connected to each other by address lines or data lines, and the storage unit includes truth table data and A plurality of memory cells that hold error check bits of the truth table data, and the storage section outputs truth table data for outputting a logical operation of input values specified by a plurality of addresses to a data line.
- Item 13 The error detection method according to any one of Items 9 to 12, wherein an error signal is received from each of the storage units and an error is output by outputting the error signal to the outside.
- 14 Item 13. The error detection method according to any one of Items 9 to 12, wherein an error signal is received from each storage unit, and the error signal is encoded to identify a storage unit in which an error has occurred. 15.
- each storage unit includes an error detection unit, error detection is performed when data is output from the storage unit, so that the robustness of the semiconductor device can be improved.
- FIG. 17 shows a truth table of logic elements and connection elements shown in FIG. 16.
- FIG. 17 shows an example of the logic operation
- FIG. 1 is a diagram illustrating an example of the overall configuration of the semiconductor device according to the present embodiment.
- An MPLD is a device having almost the same function as an FPGA, but its structure is different.
- the FPGA is configured by an LUT, a switch block, a connection block, and the like, and the ratio of logical resources and wiring resources is fixed.
- the MPLD has a configuration in which elements that can be used as both logic elements and wiring elements called MLUTs are arranged. With this configuration, it is possible to increase the ratio of the logic region in the entire area.
- the MPLD 20 includes an MLUT array 60 in which a plurality of MLUTs 30 as storage units are arranged in an array, a row decoder 12 that identifies a memory read operation and a write operation of the MLUT 30, a column decoder 14, and an error output unit 62.
- the MLUT 30 is composed of a memory.
- the MLUT 30 performs a logical operation that operates as a logical element, a connection element, or a logical element and a connection element by storing data regarded as a truth table in the storage element of the memory.
- a logic address LA indicated by a solid line and a signal of logic data LD are used.
- the logic address LA is used as an input signal for the logic circuit.
- the logic data LD is used as an output signal of the logic circuit.
- the logic address LA of the MLUT 30 is connected to the data line of the logic operation data LD of the adjacent MLUT.
- the logic realized by the logic operation of the MPLD 20 is realized by truth table data stored in the MLUT 30.
- Some MLUTs 30 operate as logic elements as combinational circuits such as AND circuits and adders.
- the other MLUTs operate as connection elements that connect the MLUTs 30 that realize the combinational circuit. Rewriting of truth table data for the MLUT 20 to realize a logical element and a connection element is performed by a write operation to the memory.
- the write operation of the MPLD 20 is performed by the write address AD and the write data WD, and the read operation is performed by the write address AD and the read data RD.
- the write address AD is an address that identifies a memory cell in the MLUT 20.
- the write address AD is m signal lines and specifies 2 to the number M of memory cells.
- the MLUT decoder 12 receives the MLUT address via the m signal lines, decodes the MLUT address, and selects and specifies the MLUT 30 that is the target of the memory operation.
- the memory operation address is used in both the memory read operation and the write operation, and is decoded by the decoders 12 and 14 through m signal lines to select a target memory cell.
- the logical operation address LA is decoded by a decoder in the MLUT.
- the row decoder 12 decodes x bits of m bits of the write address AD in accordance with control signals such as a read enable signal RE and a write enable signal WE, and outputs a decoded address n to the MLUT 30.
- the decode address n is used as an address for specifying a memory cell in the MLUT 30.
- the column decoder 14 decodes y bits of the m bits of the write address AD, has the same function as the row decoder 12, outputs the decode address n to the MLUT 30, and writes the write data WD. And the read data RD are input.
- n ⁇ t-bit data is input from the MLUT array 60 to the decoder 14.
- the row decoder outputs re and we for o rows. That is, the o line corresponds to the s line of the MLUT.
- a word line of a specific memory cell is selected by activating only one bit out of the o bits. Since t MLUTs output n-bit data, n ⁇ t-bit data is selected from the MLUT array 60, and the decoder 14 is used to select one column.
- n + ⁇ is used as write data.
- n is used as truth table data, and ⁇ is an error check bit used for error detection.
- the error check bit may be generated outside the MPLD 30.
- the error output unit 62 receives the error flag EF output from the MLUT 30, and outputs an error signal ES that simply causes an error to the MPLD, or outputs an error signal EM that identifies the MLUT in which the error has occurred.
- the error output unit 62 is an OR circuit that performs a sum operation on the error flags from each MLUT.
- an encoder circuit is provided. When specifying a plurality of MLUTs having errors, the error output unit becomes a shift circuit, and shifts out a bitmap specifying the error MLUT from the signal ES.
- FIG. 2 is a diagram illustrating an example of an MLUT array.
- the MLUT array 30 is configured by arranging the MLUTs 30 in an array as shown in the figure.
- the memory used as the MLUT 30 has the same address line width and data line width.
- a pseudo bidirectional line is defined by pairing each bit of the address line and the data line. This pseudo bidirectional line is called “AD pair” in MPLD.
- AD pair a pseudo bidirectional line
- an MLUT having N AD pairs is realized.
- the operation as the logic of the MPLD is realized by regarding the data written in the memory constituting the MLUT 30 as a truth table. Therefore, the MLUT may receive a soft error against cosmic rays and noise.
- FIG. 3 is a diagram illustrating an example of the MLUT according to the present embodiment.
- the MLUT 30 includes a memory cell array 110, an address decoder 120, an error detection unit 70, a multiplexer 72, an error correction unit 73, registers 71 and 74, and a demultiplexer 76.
- the multiplexer 72 selects a logic address input LA and a write address AD in accordance with a mode selection signal mode for selecting a logic operation and a write operation.
- the register 74 may be a stage register synchronized with an external clock. Thereby, pipeline processing can be performed. For example, the decoder, read / write, and ECC operations are asynchronous with the external clock, and only the register 74 is synchronized with the external clock to generate a pipeline, thereby improving the throughput.
- the demultiplexer 76 outputs an input signal as either the logic operation data LD or the write address AD in accordance with the mode selection signal mode.
- the address decoder 120 decodes an address signal received from n address signal lines, and outputs a word line selection signal, which is a decode signal, to 2 n word lines.
- the error detection unit 70 reads out data constituting the part of the truth table data and the error check bit from the memory cell array 110, and determines whether or not an error has occurred in the read data. After the determination, the error detection unit 70 outputs an error detection signal as an error flag EF and outputs data to the subsequent stage.
- the error detection unit 73 decodes the read data and one error check bit, and determines the occurrence of an error in the read data.
- the MLUT 30 may include only the error detection unit 70 or may include both the error detection unit 70 and the error correction unit 73.
- ECC Error Correction Codes
- a Hamming code is used as the ECC.
- the Hamming code is one of linear error correction codes that can detect and correct data errors.
- a Hamming code is composed of the following equations 1 and 2 for a certain integer m.
- the number of information is the number of bits of the original data
- the code length is the number of bits of the generated code.
- a Hamming code is formed by replacing a 4-bit bit string with a 7-bit code word.
- This case is referred to as a (7, 4) Hamming code.
- the Hamming code is processed using two matrices called a check matrix and a generator matrix. Note that all additions used in each matrix calculation are exclusive ORs.
- the check matrix will be described. This matrix is a matrix of m rows and n columns, and there is a condition that all column elements are not zero and are different.
- An example of the check matrix H of the (7, 4) Hamming code is shown below.
- An example of the check matrix H of the (7, 4) Hamming code is shown below.
- the generator matrix G is a non-zero matrix that satisfies the condition of Equation 3 below.
- GT represents a transposed matrix of G.
- G [I k A T ] Equation 4 G with respect to H shown in the above example is as follows.
- e i here i th bit and e i is 1, the other bits are zero bits.
- ei is 1 only for the i-th bit, the i-th column of H is output. Therefore, the position of the error is detected by comparing with which column of the output this H matches, and the error can be corrected by inverting the bit of that portion.
- FIG. 4 is a diagram illustrating an example of a Hamming code.
- m is an integer indicating a redundant bit (arbitrary)
- n is a code length
- k is the number of information (original data)
- the Hamming code has the relationship shown in the table shown in FIG.
- k 7 bits
- An error can be detected by adding (1111) 2 in the ECC circuit 70 and comparing with 15 bits.
- the error detection unit 70 can decode the code bit generated by adding the redundant bit, and if it is not a zero vector, can detect an error as an error vector. Furthermore, as described in Equation 6 above, the bit in which an error has occurred can be identified from the H shift matrix corresponding to the error vector.
- the error correction unit 73 can output data of a corrected bit string by inverting the error bit specified in this way and outputting it.
- the input data to the memory cell unit is (n + ⁇ ) bits.
- n bits are used as data (corresponding to k in FIG. 4)
- ⁇ is an error check bit.
- ⁇ is a redundant bit generated by Hamming coding or the like for n bits.
- the generation of redundant bits as described above is performed by processing outside the MPLD. For example, when 7 bits are output data, 4 bits are generated as redundant bits by Hamming encoding.
- FIG. 5 is a diagram illustrating an example of a memory cell array.
- the memory cell array 110 includes a memory cell area that holds redundant bits and a memory cell area that holds data. Compared with the normal memory cell area shown in FIG. 5, the memory area is expanded by the redundant bits. However, as shown in FIG. 4, the number of redundant bits is small compared to the increase in the number of information, but it can be seen that the number of redundant bits is relatively large when the number of information is small. In other words, the expansion of the memory area by redundant bits is not suitable for small input and small output as the configuration information of the FPGA is used when realizing a logic circuit, and at least the data output bit as in MLUT. It can be seen that this is effective for a memory whose number exceeds 3 bits. In this way, since the MLUT has multiple inputs and multiple outputs, even if the ECC circuit 70 is provided in each MLUT, it is possible to suppress an increase in cost.
- the error detection unit 70 detects an error by performing a decoding process as described in the example of FIG. If there is no match between the decoded data and the data read from the memory, an error detection signal is output as an error flag EF, and an error corrected signal is output as output data. In this way, the error detection unit 70 performs error check on the data output from the memory cell array by ECC, and the data output here becomes the data output of the MLUT. By adopting such a configuration, even when a soft error occurs in the memory cell array constituting the MLUT, the MLUT can perform a correct operation.
- the circuit scale increases three times, whereas MLUT can detect or correct errors in a small area.
- the error receiving unit 62 shown in FIG. 1 receives the error flag EF output from each MLUT and externally outputs the error flag EF, so that it does not suddenly fail in the dependable system but fails and does not move. A system that warns that the time is near can be realized. Thus, when an error is detected, rewiring is performed avoiding the error MLUT, and a margin for replacing the chip is given to the user, so that a truly dependable MPLD system can be constructed.
- FIG. 6 is a diagram showing an example of MLUT with ATD.
- the MLUT 30A with ATD shown in FIG. 6 includes an ATD circuit (Address Transition Detect) 121 as an address change detector in the address decoder 120.
- the ATD circuit is a circuit that is provided at an address input terminal, detects a change in an address input signal applied to the address input terminal, and outputs the changed address signal.
- the ATD circuit outputs the changed address signal to the address decoder 120A only when the change of the address signal is detected. Therefore, the address decoder 120A outputs the word selection signal only when the address signal changes, and the address signal changes. If not, the word line selection signal is not output. In this way, when there is no address change, the word line selection signal is not output, so that a write malfunction due to disturbance noise can be prevented.
- the error detection unit 70 reads data and error check bits constituting a part of the truth table data (S101). Next, the error detection unit 70 determines whether an error has occurred in the read data (S102). If no error is detected (NO in S102), the error detection unit 70 outputs the read data as it is to the subsequent circuit (S103). When an error is detected (YES in S102), the error detection unit outputs an error flag EF to the error output unit 62 (S104).
- the error output unit 62 receives the error flag EF output from the MLUT 30, and outputs an error signal ES that simply reports an error or an error signal EM that identifies an MLUT that has generated an error to the outside (S105).
- the error correction unit 73 corrects and outputs the error bit detected by the error detection unit 70 (S106).
- FIG. 8A is a cross-sectional view of a memory cell according to one embodiment.
- the memory element of the memory cell is composed of a phase change film layer 41.
- the phase change film layer 41 is made of germanium, antimony, and tellurium (hereinafter, “GST”), which are compound thin films.
- the phase change film 41 is hereinafter referred to as “GST”.
- An upper electrode 43 is provided on the upper surface of the phase change film layer 41, and a lower electrode 45 and an insulating layer 47 are provided on the lower surface.
- the upper electrode 43 is, for example, aluminum
- the insulating layer 47 is, for example, silicon dioxide
- the lower electrode 45 is a through electrode made of, for example, TI / TINX / AL.
- a semiconductor circuit layer 50 is further provided below the lower electrode 45.
- the phase change film layer 41 stores and holds as a storage element of the memory cell by making the state potential at the time of reading caused by the difference in resistance value correspond to 0/1 of the signal.
- the upper electrode 43 and the phase change film 41 cover the entire surface of the chip except for the external electrode portion, and are not patterned.
- the phase change region 48 is a region that changes from an amorphous phase to a crystalline phase. Since the phase change film layer 41 above the insulating layer 47 is initially in a high-resistance amorphous phase, the phase change regions 48 are prevented from being short-circuited.
- Phase change film layer 41 uses a part of the phase change film as a memory cell storage element. Conventionally, the PRAM has been realized with a configuration that insulates and protects the phase change material. However, since the phase change film layer 41 according to the present embodiment does not need to insulate and protect the phase change material, the manufacturing process can be simplified. I can plan.
- FIG. 8B is a diagram illustrating an example of variation in the resistance value of the phase change film.
- the phase change film layer 41 is not patterned, the sizes of the phase change regions 48A to 48C differ depending on the voltage applied to the upper electrode 43 and the lower electrode 45. As a result, the resistance value of the phase change film varies.
- the size of the phase change region 48 changes depending on the applied voltage, and the resistance value of the phase change varies, so that the circuit reads the data with a certain high resistance or low resistance. If it is designed, it may not work properly.
- a certain write voltage (VDD_W) is required, and at the time of reading, the reading must be performed at a reading voltage (VDD_R) that does not cause the phase change.
- VDD_W write voltage
- VDD_R reading voltage
- FIG. 9 is a diagram illustrating an example of a memory cell circuit.
- the memory cell 40 shown in FIG. 9 includes five transistors and GST. Specifically, one PMOS (POSITIVE CHANNEL METAL OXIDE SEMICONDUCTOR) transistor 161 and four NMOS (NEGAIVE CHANNEL METAL OXIDE SEMICONDUCTOR).
- the transistors 162 to 165 and the GST 166 that is a resistor formed of a part of the phase change film layer 41 are included. When the GST 166 is an array, they can be connected to each other in common.
- the GST 166 is constituted by a part of the phase change film layer 41, that is, the phase change film layer 41 on the upper part of the lower electrode 45 shown in FIG.
- the phase change film layer 41 changes to crystalline or amorphous, and the resistance value changes accordingly, so that the GST 166 functions as a memory element that maintains a state of “0” or “1”.
- the source of the PMOS 161 is connected to VDD (power supply voltage terminal), and the source of the NMOS 162 is connected to VSS (ground voltage terminal).
- the PMOS 161 and the NMOS 162 operate as a CMOS (COMPLEMENTARY METAL OXIDE SEMICONDUCTOR) inverter by connecting the respective drains.
- the CMOS inverter senses the signal level output according to the state held in GST 166 and outputs it to read data line RDATA via NMOS transistor 163.
- the NMOS transistor 163 has a gate connected to the read word line R_ROW. When a signal from the read word line R_ROW is applied to the gate, the NMOS transistor 163 outputs a state signal of GST166 sensed by the CMOS inverter. As described above, the single-side film formation may cause variations in the initial resistance value in the manufacturing process.
- the NMOS transistor 165 has a gate connected to the GST 166 and a source connected to the low bias BIAS_L. By applying the voltage VDD_M of the medium bias BIAS_M to the gate, the conductance is adjusted, thereby the resistance of the GST 166 in the read operation. Reduce the variation of values. Then, the output of the state signal of GST166 is sensed by the CMOS inverter, and the voltage is amplified.
- the low bias BIAS_L is a voltage for raising the division voltage when dividing the voltage of the NMOS transistor 165 of the GST 166 and bringing the central value of the voltage division to the threshold value of the CMOS inverter constituted by the PMOS 161 and the NMOS 162. .
- the data line voltage control unit 142 which is a peripheral circuit is two inverters 181 and 182 for inverting input / output, and is provided on the write data line WDATA and the read data line RDATA.
- the write data WDATA is converted to the inverted signal / WDATA by the inverter, so that the VSS is generated by the inverter when the write data WDATA is “1”, and writing to the GST 166 is performed. In this way, the voltage of the selected write data line WDATA is lowered to VSS during the write process.
- the phase change film voltage control unit 150 is connected to all the GSTs 166 in the memory cell array. During the write process, the supply voltage (WR_VDD) to all the GSTs 166 in the memory cell array is changed to the write voltage (VDD_W), and during the read process, the supply voltage to the GST 166 is changed to the read voltage (VDD_R).
- the voltage of the write data line WDATA is lowered by the data line voltage control unit 142 during the write operation.
- NMOS transistor 164 has a gate connected to write word line W_ROW, and when a signal from write word line W_ROW is applied to the gate, write data line WDATA and GST 166 are electrically connected.
- VDD_W write voltage
- VDD_R read voltage
- the resistance value varies for each memory cell, so that stable writing cannot be performed. For example, even if the resistance is changed from high resistance to low resistance, if writing fails with high resistance, a problem such as inability to detect occurs. Even when such a hard error occurs, the MLUT according to the present embodiment can continue normal operation and identify the MLUT in which a failure has occurred by correcting the error.
- FIG. 10 is a diagram illustrating an example of an MLUT that operates as a logical element.
- the MLUT shown in FIG. 10 is a circuit similar to the MLUT shown in FIG. 11 or the semiconductor memory device shown in FIG. In FIG. 10, the description of the address switching circuit 10A and the output data switching circuit 10B is omitted for the sake of simplicity.
- the logic operation data lines D0 to D3 connect 24 memory elements 40 in series, respectively.
- the address decoder 9 is configured to select four storage elements connected to any of the 16 word lines based on signals input to the logic address input LA lines A0 to A3. These four storage elements are connected to logic operation data lines D0 to D3, respectively, and output data stored in the storage elements to logic operation data lines D0 to D3. For example, when an appropriate signal is input to the logical address input LA lines A0 to A3, the four storage elements 40A, 40B, 40C, and 40D can be selected.
- the storage element 40A is connected to the logic operation data line D0
- the storage element 40B is connected to the logic operation data line D1
- the storage element 40D is connected to the logic operation data line D2.
- 40D is connected to the logic operation data line D3.
- signals stored in the storage elements 40A to 40D are output to the logic operation data lines D0 to D3.
- the MLUTs 30A and 30B receive the logical address input LA from the logical address input LA lines A0 to A3, and values stored in the four storage elements 40 selected by the address decoder 9 based on the logical address input LA. Are output as logic operation data to the logic operation data lines D0 to D3, respectively.
- the logical address input LA line A2 of the MLUT 30A is connected to the logical operation data line D0 of the adjacent MLUT 30B, and the MLUT 30A receives the logical operation data output from the MLUT 30B as the logical address input LA. .
- the logic operation data line D2 of the MLUT 30A is connected to the logic address input LA line A0 of the MLUT 30B, and the logic operation data output from the MLUT 30A is received by the MLUT 30B as the logic address input LA.
- the logic operation data line D2 of the MLUT 30A is one of 16 storage elements connected to the logic operation data line D2 based on signals input to the logic address inputs LA lines A0 to A3 of the MLUT 30A. The signal stored in one is output to the logic address input LAA0 of the MLUT 30B.
- the logic operation data line D0 of the MLUT 30B is one of 16 storage elements connected to the logic operation data line D0 based on signals input to the logic address input LA lines A0 to A3 of the MLUT 30B.
- the signal stored in one is output to the logic address input LAA2 of the MLUT 30A.
- the MPLDs are connected by using a pair of address lines and data lines.
- a pair of address lines and data lines used for MLUT connection such as the logic address input LA line A2 of the MLUT 30A and the logic operation data line D2, is referred to as an “AD pair”.
- the MLUTs 30A and 30B have 4 AD pairs, but the number of AD pairs is not limited to 4 as will be described later.
- FIG. 11 is a diagram illustrating an example of an MLUT that operates as a logic circuit.
- the logical address input LA lines A0 and A1 are input to the two-input NOR circuit 701
- the logical address input LA lines A2 and A3 are input to the two-input NAND circuit 702.
- the output of the 2-input NOR circuit and the output of the 2-input NAND circuit 702 are input to the 2-input NAND circuit 703, and a logic circuit is configured to output the output of the 2-input NAND circuit 703 to the logic operation data line D0. .
- FIG. 12 is a diagram showing a truth table of the logic circuit shown in FIG. Since the logic circuit of FIG. 11 has four inputs, all the inputs A0 to A3 are used as inputs. On the other hand, since there is only one output, only the output D0 is used as an output. “*” Is written in the columns of outputs D1 to D3 of the truth table. This indicates that any value of “0” or “1” may be used. However, when the truth table data is actually written into the MLUT for reconstruction, it is necessary to write either “0” or “1” in these fields.
- FIG. 13 is a diagram illustrating an example of an MLUT that operates as a connection element.
- the MLUT as a connection element outputs the signal of the logic address input LA line A0 to the logic operation data line D1, and outputs the signal of the logic address input LA line A1 to the logic operation data line D2.
- the logic address input LA line A2 operates to output the signal to the logic operation data line D3.
- the MLUT as the connection element further operates to output the signal of the logic address input LA line A3 to the logic operation data line D1.
- FIG. 14 is a diagram showing a truth table of the connection elements shown in FIG.
- the connection element shown in FIG. 13 has 4 inputs and 4 outputs. Therefore, all inputs A0-A3 and all outputs D0-D3 are used.
- the MLUT outputs the signal of the input A0 to the output D1, outputs the signal of the input A1 to the output D2, outputs the signal of the input A2 to the output D3, and outputs the signal of the input A3. It operates as a connection element that outputs to the output D0.
- FIG. 15 is a diagram illustrating an example of a connection element realized by an MLUT having four AD pairs of AD0, AD1, AD2, and AD3.
- AD0 has a logic address input LA line A0 and a logic operation data line D0.
- AD1 has a logic address input LA line A1 and a logic operation data line D1.
- AD2 has a logic address input LA line A2 and a logic operation data line D2.
- AD3 has a logic address input LA line A3 and a logic operation data line D3.
- a one-dot chain line indicates a signal flow in which a signal input to the AD pair 0 logic address input LA line A0 is output to the AD pair 1 logic operation data line D1.
- a two-dot chain line indicates a signal flow in which a signal input to the logic address input LA line A1 of the second AD pair 1 is output to the logic operation data line D2 of the AD pair 2.
- a broken line indicates a signal flow in which a signal input to the logic address input LA line A2 of the AD pair 2 is output to the logic operation data line D3 of the AD pair 3.
- a solid line indicates a flow of a signal that is input to the logic address input LA line A3 of the AD pair 3 and is output to the logic operation data line D0 of the AD pair 0.
- the MLUT 30 has 4 AD pairs, but the number of AD pairs is not particularly limited to 4.
- FIG. 16 is a diagram illustrating an example in which one MLUT operates as a logic element and a connection element.
- the logical address input LA lines A 0 and A 1 are input to the 2-input NOR circuit 121, and the output of the 2-input NOR circuit 121 and the logical address input LA line A 2 are connected to the 2-input NAND circuit 122.
- a logic circuit is provided that inputs and outputs the output of the 2-input NAND circuit 122 to the logic operation data line D0.
- a connection element for outputting the signal of the logic address input LA line A3 to the logic operation data line D2 is formed.
- FIG. 17 shows a truth table of the logic elements and connection elements shown in FIG.
- the logic operation of FIG. 16 uses three inputs D0 to D3 and uses one output D0 as an output.
- the connection element in FIG. 17 is a connection element that outputs the signal of the input A3 to the output D2.
- FIG. 18 is a diagram illustrating an example of logical operations and connection elements realized by an MLUT having four AD pairs of AD0, AD1, AD2, and AD3.
- AD0 has a logic address input LA line A0 and a logic operation data line D0.
- AD1 has a logic address input LA line A1 and a logic operation data line D1.
- AD2 has a logic address input LA line A2 and a logic operation data line D2.
- AD3 has a logic address input LA line A3 and a logic operation data line D3.
- the MLUT 30 realizes two operations, ie, a logic operation with three inputs and one output and a connection element with one input and one output, with one MLUT 30.
- the logic operation is performed by using the logic address input LA line A0 of AD pair 0, the logic address input LA line A1 of AD pair 1 and the logic address input LA line A2 of AD pair 2 as inputs. use. Then, the address line of the logic operation data line D0 of AD pair 0 is used as an output. Further, the connection element outputs a signal input to the logic address input LA line A3 of the AD pair 3 to the logic operation data line D2 of the AD pair 2 as indicated by a broken line.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Chemical & Material Sciences (AREA)
- Crystallography & Structural Chemistry (AREA)
- Microelectronics & Electronic Packaging (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
本発明は、半導体装置に関し、特に、再構成可能な半導体装置及びそのエラー検出方法に関する。 The present invention relates to a semiconductor device, and more particularly to a reconfigurable semiconductor device and its error detection method.
FPGA(Field Programmable Gate
Array)など、回路構成を、再構成可能なPLD(Programmable Logic Device)が広く使用されている(例えば、下記特許文献1)。出願人又は発明者は、メモリで回路構成を実現する「MPLD(Memory
Based Programmable Logic Device)」(登録商標)を研究および開発している。MPLDは、例えば、下記特許文献2に示される。MPLDは、メモリ機能、LUT(Look
Up Table)機能、スイッチ機能の全てを有するMLUT(Multi Look Up Table)で構成されていて、このMLUTをアレイ状に並べ、相互接続することによってFPGAとほぼ同等の機能を実現している。
FPGA (Field Programmable Gate)
PLD (Programmable Logic Device) whose circuit configuration can be reconfigured is widely used (for example,
Research and development of “Basic Programmable Logic Devices” (registered trademark). MPLD is shown, for example, in
It is composed of an MLUT (Multi Look Up Table) having all of the Up Table function and the switching function, and the MLUTs are arranged in an array and interconnected to realize a function substantially equivalent to the FPGA.
また、MPLDは、MLUTを論理要素と配線要素の双方として使用することによって、論理領域と配線領域に柔軟性をもたせたデバイスであり、メモリ間の接続に専用の切り替え回路を有するFPGAと異なる。 Also, the MPLD is a device in which the logic area and the wiring area are made flexible by using the MLUT as both a logic element and a wiring element, and is different from an FPGA having a switching circuit dedicated for connection between memories.
半導体の微細化が進むFPGAにおいて宇宙線やノイズに起因するソフトエラーに対応することは重要な問題になってきている。メモリセルが永久的に機能しないハードエラーとは対照的に、メモリセルにおける誤った情報が再プログラミングによって補正され得るため、ソフトエラーと名付けられている。FPGAの揮発性メモリで構成される構成情報メモリにおけるソフトエラーはFPGAの動作を本来の動作から違うものに変え、深刻な問題になる恐れがある。そのため、ソフトエラーを検出する方法として、メモリセル内に、構成データに加えて、エラーチェック用のビットを格納し、それらのデータを周期的に読出して、エラーを検出するECCユニットを備えるプログラマブルデバイスが開示されている(下記特許文献3)。
Responding to soft errors caused by cosmic rays and noise has become an important issue in FPGAs where semiconductor miniaturization is progressing. In contrast to hard errors where the memory cells do not function permanently, they are termed soft errors because incorrect information in the memory cells can be corrected by reprogramming. A soft error in the configuration information memory composed of the FPGA volatile memory may change the operation of the FPGA from the original operation and become a serious problem. Therefore, as a method for detecting a soft error, a programmable device including an ECC unit for detecting an error by storing bits for error checking in addition to configuration data in a memory cell and periodically reading out the data. Is disclosed (
しかしながら、提案されているFPGAのエラー検出ユニットは、周期的にソフトエラーをチェックする処理がなされる。従って、開示の技術では、エラー発生後、周期的にソフトエラーチェックがなされた場合にエラーが検出されるので、エラーの発生と同時にエラー検出することができない。そのため、エラーが生じたデータで、半導体装置が動作処理するので、堅牢性に欠ける。 However, the proposed FPGA error detection unit is periodically checked for soft errors. Therefore, in the disclosed technique, an error is detected when a soft error check is periodically performed after an error occurs, so that the error cannot be detected simultaneously with the occurrence of the error. For this reason, the semiconductor device performs an operation process on the data in which an error has occurred, so that it is not robust.
本発明の一実施形態に係る半導体装置は、データ出力時にデータのエラーを検出することで、半導体装置の堅牢性を向上させることを目的とする。 A semiconductor device according to an embodiment of the present invention aims to improve the robustness of a semiconductor device by detecting a data error when outputting data.
上記課題を解決する形態は、下記の項目に記載のようなものである。 The form to solve the above-mentioned problems is as described in the following items.
1.再構成可能な半導体装置であって、
アレイを構成するとともに互いにアドレス線又はデータ線で接続する複数の記憶部を備え、前記記憶部は、複数のアドレスで特定された入力値の論理演算を、データ線に出力するための真理値表データを記憶して、論理回路として動作し、及び/又は、あるアドレスで特定された入力値を、他の記憶部のアドレスに接続するデータ線に出力するための真理値表データを記憶して、接続回路として動作するように構成され、
前記記憶部は、
前記真理値表データ及び前記真理値表データのエラーチェックビットを保持する複数のメモリセルと、
前記真理値表データの一部を構成する第1データと、前記第1データの第1エラーチェックビットを読出して、前記第1データにエラーが発生したか否かを判断するエラー検出部とを備える、ことを特徴とする再構成可能な半導体装置。
半導体装置は、データ出力時にデータのエラーを検出することで、半導体装置の堅牢性を向上させる。
2.前記記憶部はさらに、前記エラー検出部により検出されるエラービットを訂正して、出力するエラー訂正部を備える、項目1に記載の再構成可能な半導体装置。
半導体装置は、エラービットを訂正して出力することで、半導体装置の正常動作を継続する。
3.前記エラーチェックビットは、冗長ビットであり、
前記エラー検出部は、前記第1データ及び前記第1エラーチェックビットを復号して、前記第1データのエラー発生を判断する、項目1又は2に記載の再構成可能な半導体装置。
4.前記記憶部は、少なくとも3つ以上のデータ線を備える、項目3に記載の再構成可能な半導体装置。
FPGAでは、出力ビット数は、1又は2である。そのため、エラー検出のため冗長ビットをメモリに備えようとすると、冗長ビットが、構成データと比して大きいため、メモリ容量が倍増してしまう。一方、本実施形態に係る半導体装置は、少なくとも3つ以上のデータ線を備える多出力である点で、FPGAと大きく異なる。従って、メモリ領域の相対的増加を制限でき、コストアップを抑える。これにより、記憶部でのエラー検出又は訂正が可能になる。 5.前記記憶部は、前記エラー検出部から出力されるデータを保持するとともに、クロックに同期して動作するステージレジスタを備える、項目1~4の何れか1項に記載の再構成可能な半導体装置。
エラー検出又は訂正により、レイテンシは上がるが、読出しを同期させることで、パイプライン処理することで、スループットを上げることができる。
6.前記半導体装置は、
前記各記憶部からのエラー信号を受け取り、エラーを信号を外部出力するエラー出力するエラー出力部を備える、項目1~5の何れか1項に記載の再構成可能な半導体装置。
単に、エラー検出、又は、訂正ではなく、エラーを外部に報告することで、半導体装置のメンテナンスが可能になる。
7.前記半導体装置は、
前記各記憶部からのエラー信号を受け取り、エラー信号をエンコードしてエラーが生じた記憶部を特定するエラー出力部を備える、項目1~5の何れか1項に記載の再構成可能な半導体装置。
エラーが生じた記憶部を特定することで、当該記憶部を使用禁止とすることで、再構成可能な半導体装置の堅牢性を上げることができる。
項目 8.前記メモリセルの記憶素子は、相変化膜である項目1~7の何れか1項に記載の再構成可能な半導体装置。
相変化膜は、メモリセルごとに抵抗値がバラつくことがある。これは、高抵抗から低抵抗に相変化させたつもりでも、高抵抗のままのようなことが生じるので、エラー検出部は、相変化膜を利用したメモリセルに好適である。
9.再構成可能な半導体装置におけるエラー検出方法であって、前記半導体装置は、アレイを構成するとともに互いにアドレス線又はデータ線で接続する複数の記憶部を備え、前記記憶部は、真理値表データ及び前記真理値表データのエラーチェックビットを保持する複数のメモリセル、を備え、前記記憶部は、複数のアドレスで特定された入力値の論理演算を、データ線に出力するための真理値表データを記憶して、論理回路として動作し、及び/又は、あるアドレスで特定された入力値を、他の記憶部のアドレスに接続するデータ線に出力するための真理値表データを記憶して、接続回路として動作するように構成され、
前記真理値表データのうち第1真理値表データと、前記第1真理値表データの第1エラーチェックビットを読出し、
前記第1真理値表データにエラーが発生したか否かを判断する、ことを特徴とするエラー検出方法。
10.前記エラー検出部により検出されるエラービットを訂正して、出力することをさらに有する、項目9に記載のエラー検出方法。
11.前記エラーチェックビットは、冗長ビットであり、
前記第1真理値表データ及び前記第1エラーチェックビットを復号して、前記第1真理値表データのエラー発生を判断する、項目9又は10に記載のエラー検出方法。
12.出力されるデータを保持するとともに、クロックに同期して動作する、項目9~11の何れか1項に記載のエラー検出方法。
13.前記各記憶部からのエラー信号を受け取り、エラーを信号を外部出力するエラー出力する、項目9~12の何れか1項に記載のエラー検出方法。
14.前記各記憶部からのエラー信号を受け取り、エラー信号をエンコードしてエラーが生じた記憶部を特定する、項目9~12の何れか1項に記載のエラー検出方法。
15.前記メモリセルの記憶素子は、相変化膜である項目9~14の何れか1項に記載のエラー検出方法。
1. A reconfigurable semiconductor device comprising:
A truth table for outputting a logical operation of input values specified by a plurality of addresses to a data line, comprising a plurality of storage units constituting an array and connected to each other by address lines or data lines. Stores data, operates as a logic circuit, and / or stores truth table data for outputting an input value specified by a certain address to a data line connected to an address of another storage unit Configured to operate as a connection circuit,
The storage unit
A plurality of memory cells holding the truth table data and error check bits of the truth table data;
First data constituting a part of the truth table data, and an error detection unit that reads a first error check bit of the first data and determines whether or not an error has occurred in the first data. A reconfigurable semiconductor device characterized by comprising:
The semiconductor device improves the robustness of the semiconductor device by detecting a data error when outputting data.
2. The reconfigurable semiconductor device according to
The semiconductor device continues normal operation of the semiconductor device by correcting and outputting the error bit.
3. The error check bit is a redundant bit,
The reconfigurable semiconductor device according to
4). The reconfigurable semiconductor device according to
In the FPGA, the number of output bits is 1 or 2. For this reason, if an attempt is made to provide a redundant bit in the memory for error detection, the redundant bit is larger than the configuration data, and the memory capacity is doubled. On the other hand, the semiconductor device according to the present embodiment is greatly different from the FPGA in that it has multiple outputs including at least three data lines. Therefore, the relative increase in the memory area can be restricted, and the cost increase can be suppressed. As a result, error detection or correction in the storage unit becomes possible. 5. 5. The reconfigurable semiconductor device according to any one of
Although the latency is increased by error detection or correction, the throughput can be increased by performing pipeline processing by synchronizing the reading.
6). The semiconductor device includes:
6. The reconfigurable semiconductor device according to any one of
By simply reporting the error to the outside rather than detecting or correcting the error, the semiconductor device can be maintained.
7). The semiconductor device includes:
6. The reconfigurable semiconductor device according to any one of
By specifying a storage unit in which an error has occurred, prohibiting the use of the storage unit can increase the robustness of the reconfigurable semiconductor device.
The resistance value of the phase change film may vary for each memory cell. This is because even if the phase is changed from high resistance to low resistance, the high resistance remains, so that the error detection unit is suitable for a memory cell using a phase change film.
9. An error detection method in a reconfigurable semiconductor device, wherein the semiconductor device includes a plurality of storage units that form an array and are connected to each other by address lines or data lines, and the storage unit includes truth table data and A plurality of memory cells that hold error check bits of the truth table data, and the storage section outputs truth table data for outputting a logical operation of input values specified by a plurality of addresses to a data line. Storing truth table data for operating as a logic circuit and / or outputting an input value specified by a certain address to a data line connected to an address of another storage unit; Configured to operate as a connection circuit,
Read out the first truth table data of the truth table data and the first error check bit of the first truth table data;
An error detection method comprising: determining whether an error has occurred in the first truth table data.
10. 10. The error detection method according to
11. The error check bit is a redundant bit,
12
13. Item 13. The error detection method according to any one of
14 Item 13. The error detection method according to any one of
15. 15. The error detection method according to any one of
本発明の一実施形態に係る半導体装置は、記憶部の各々がエラー検出部を備えるため、記憶部からのデータ出力時にエラー検出を行うので、半導体装置の堅牢性を向上させることができる。 In the semiconductor device according to the embodiment of the present invention, since each storage unit includes an error detection unit, error detection is performed when data is output from the storage unit, so that the robustness of the semiconductor device can be improved.
以下、図面を参照して、本実施形態に係る〔1〕MPLD、〔2〕MLUT、〔3〕MLUTのエラー検出フロー、〔4〕PRAMを用いたMLUT、及び〔5〕MLUTの論理動作について順に説明する。 Hereinafter, with reference to the drawings, [1] MPLD, [2] MLUT, [3] MLUT error detection flow, [4] MLUT using PRAM, and [5] MLUT logical operation according to this embodiment These will be described in order.
〔1〕MPLD
図1は、本実施形態に係る半導体装置の全体構成の一例を示す図である。MPLDは、FPGAとほぼ同等の機能を備えているデバイスであるが、その構造が異なる。FPGAはLUTとスイッチブロック、コネクションブロックなどによって構成され、論理資源と配線資源の割合は固定である。これに対し、MPLDは、MLUT呼ばれる論理素子、配線素子の双方として利用可能な素子を並べた構成となっている。この構成により、全体の面積における論理領域の割合を高めることができる。
[1] MPLD
FIG. 1 is a diagram illustrating an example of the overall configuration of the semiconductor device according to the present embodiment. An MPLD is a device having almost the same function as an FPGA, but its structure is different. The FPGA is configured by an LUT, a switch block, a connection block, and the like, and the ratio of logical resources and wiring resources is fixed. On the other hand, the MPLD has a configuration in which elements that can be used as both logic elements and wiring elements called MLUTs are arranged. With this configuration, it is possible to increase the ratio of the logic region in the entire area.
図1に示す20は、再構成可能な半導体装置としてのMPLDである。MPLD20は、記憶部としてのMLUT30を複数個、アレイ状に配置したMLUTアレイ60、MLUT30のメモリ読出し動作、書込み動作を特定する行デコーダ12、列デコーダ14、及び、エラー出力部62を有する。
1 is an MPLD as a reconfigurable semiconductor device. The
MLUT30は、メモリで構成される。メモリの記憶素子には、真理値表とみなされるデータがそれぞれ記憶されることで、MLUT30は、論理要素、又は、接続要素、又は、論理要素及び接続要素として動作する論理動作を行う。
MPLD20の論理動作では、実線で示される論理用アドレスLA、及び論理用データLDの信号を使用する。論理用アドレスLAは、論理回路の入力信号として使用される。そして、論理用データLDは、論理回路の出力信号として使用される。MLUT30の論理用アドレスLAは、隣接するMLUTの論理動作用データLDのデータ線と接続している。
In the logic operation of the
MPLD20の論理動作により実現される論理は、MLUT30に記憶される真理値表データにより実現される。いくつかのMLUT30は、AND回路、加算器などの組み合わせ回路としての論理要素として動作する。他のMLUTは、組み合わせ回路を実現するMLUT30間を接続する接続要素として動作する。MLUT20が、論理要素、及び接続要素を実現するための真理値表データの書き換えは、メモリへの書き込み動作によりなされる。
The logic realized by the logic operation of the
MPLD20の書き込み動作は、書込用アドレスAD、及び書込用データWDによりなされ、読出し動作は、書込用アドレスAD、及び読出用データRDによりなされる。
The write operation of the
書込用アドレスADは、MLUT20内のメモリセルを特定するアドレスである。書込用アドレスADは、m本の信号線で、2のM乗の数Nのメモリセルを特定する。MLUTデコーダ12は、m本の信号線を介してMLUTアドレスを受け取るとともに、MLUTアドレスをデコードして、メモリ動作の対象となるMLUT30を選択し特定する。メモリ動作用アドレスは、メモリの読出し動作、書き込み動作、両方の場合で使用され、m本の信号線を介して、デコーダ12、14でデコードされて、対象となるメモリセルを選択する。なお本実施形態においては、後述するが、論理用動作アドレスLAのデコードは、MLUT内のデコーダにより行う。
The write address AD is an address that identifies a memory cell in the
行デコーダ12は、リード・イネーブル信号RE、ライト・イネーブル信号WE等の制御信号に従って、書込用アドレスADのmビットのうちxビットをデコードし、デコードアドレスnをMLUT30に対して出力する。デコードアドレスnは、MLUT30内のメモリセルを特定するアドレスとして使用される。
The
列デコーダ14は、書込用アドレスADのmビットのうちyビットをデコードし、行デコーダ12と同様の機能を有して、デコードアドレスnをMLUT30に対して出力するとともに、書込用データWDの出力、及び、読出用データRDを入力する。
The
なお、MLUTのアレイがs行t列である場合、MLUTアレイ60からはn×tビットのデータがデコーダ14に入力される。ここで、各行毎のMLUTを選択するために行デコーダはo行分のre,weを出力する。つまり、o行は、MLUTのs行に相当する。ここでoビットのうち、1ビットだけをアクティブにすることで、特定のメモリセルのワード線が選択される。そしてt個のMLUTがnビットのデータを出力するため、n×tビットのデータがMLUTアレイ60から選択され、そのうち1列を選択するのにデコーダ14が使われる。
If the MLUT array has s rows and t columns, n × t-bit data is input from the
本実施形態では、書込用データとしてn+αが使用される。nは真理値表データとして使用され、αは、エラー検出に使用されるエラーチェックビットである。エラーチェックビットの生成は、MPLD30外部でしてもよい。
In this embodiment, n + α is used as write data. n is used as truth table data, and α is an error check bit used for error detection. The error check bit may be generated outside the
エラー出力部62は、MLUT30から出力されるエラーフラグEFを受け取り、MPLDに単にエラーが発生するエラー信号ESを出力したり、エラーを生じたMLUTを特定するエラー信号EMを出力する。エラー出力部62が、MLUTを特定することなくエラー信号ESを出力する場合、エラー出力部62は、各MLUTからのエラーフラグを和演算するOR回路である。エラー出力部62が、エラーとなったMLUTを特定するエラー信号ESを出力する場合、エンコーダ回路となる。複数のエラーとなったMLUTを特定する場合は、エラー出力部はシフト回路となり、エラーMLUTを特定するビットマップを信号ESからシフトアウトする。
The
図2は、MLUTアレイの一例を示す図である。MLUTアレイ30は、図示されるように、MLUT30をアレイ状に配置したものである。MLUT30として用いるメモリはアドレス線の幅とデータ線の幅が等しい。図2の右上のようにアドレス線とデータ線の1ビットずつを対にして、擬似的な双方向線を定義する。この擬似的な双方向線をMPLDにおいては「AD対」と呼ぶ。アドレス線の幅とデータ線の幅がNビットのメモリを用いることで、AD対をN本もつMLUTが実現される。MPLDの論理としての動作は、MLUT30を構成するメモリに書き込まれたデータを真理値表とみなすことによって実現される。そのため、MLUTは宇宙線やノイズに対するソフトエラーを受ける可能性がある。
FIG. 2 is a diagram illustrating an example of an MLUT array. The
〔2〕MLUT
図3~図5を参照して、本実施形態に係るMLUTを説明する。図3は、本実施形態に係るMLUTの一例を示す図である。MLUT30は、メモリセルアレイ110、アドレスデコーダ120、エラー検出部70、マルチプレクサ72、エラー訂正部73、レジスタ71、74、デマルチプレクサ76を有する。マルチプレクサ72は、論理動作と書き込み動作を選択するモード選択信号modeに従って、論理用アドレス入力LAと、書込用アドレスADとを選択する。
[2] MLUT
The MLUT according to the present embodiment will be described with reference to FIGS. FIG. 3 is a diagram illustrating an example of the MLUT according to the present embodiment. The
なお、レジスタ74は、外部クロックに同期してたステージレジスタであってもよい。これにより、パイプライン処理を行うことができる。例えば、デコーダ、リード/ライト、ECC動作は外部クロックに非同期にして、レジスタ74のみを外部クロックに同期させて、パイプラインを生成して、スループットの向上を図ることができる。
Note that the
デマルチプレクサ76は、モード選択信号modeに従って、入力信号を、論理動作用データLD及び書込用アドレスADの何れかとして出力する。アドレスデコーダ120は、n本のアドレス信号線から受け取ったアドレス信号をデコードし、2のn乗本のワード線にデコード信号であるワード線選択信号を出力する。
The
エラー検出部70は、メモリセルアレイ110から真理値表データの一部を構成するデータとエラーチェックビットを読み出し、読出したデータにエラーが発生したか否かを判断する。判断後、エラー検出部70は、エラー検出信号をエラーフラグEFとして出力するとともに、データを後段に出力する。エラー検出部73は、読出しデータ及び1エラーチェックビットを復号して、読出しデータのエラー発生を判断する。本実施形態においてはMLUT30は、エラー検出部70のみを備えてもよいし、エラー検出部70及びエラー訂正部73の両者をそなえてもよい。
The
MPLDではNビットのアドレス線とNビットのデータ線を用いた微細メモリから構成される論理セルで構成されるため、論理入力に対する論理出力を一意に決定することができる。このため誤り検出訂正(ECC:Error Correction Codes)が適用可能となり、MPLDにおいて構成情報がハードエラーまたはソフトエラーにより不健全な状態になったとしてもECCにより論理出力を訂正できる。 Since MPLD is composed of logic cells composed of fine memory using N-bit address lines and N-bit data lines, it is possible to uniquely determine the logic output for the logic input. Therefore, error detection correction (ECC: Error Correction Codes) can be applied, and even if the configuration information in MPLD becomes unhealthy due to a hard error or a soft error, the logical output can be corrected by ECC.
誤り検出訂正
本実施形態では、ECCとしてハミング符号を用いる。ハミング符号とは、データの誤りを検出・訂正できる線型誤り訂正符号のひとつである。一般にハミング符号は、ある整数mに対し、以下の式1及び2で構成される。
Error detection and correction In this embodiment, a Hamming code is used as the ECC. The Hamming code is one of linear error correction codes that can detect and correct data errors. In general, a Hamming code is composed of the following
符号長 :n=2m-1 ・・・式1
情報数 :k=n-m ・・・式2
Code length: n = 2 m −1
Number of information: k = n−
ここで情報数とは元のデータのビット数、符号長とは生成される符号のビット数である。m=3の場合はn=7、k=4となり、4ビットのビット列を7ビットの符号語に置き換えるハミング符号が形成される、この場合を(7,4)ハミング符号という。ハミング符号は検査行列と生成行列と呼ばれる二つの行列を用いて処理が行われる。なお各行列計算で用いられる加算は全て排他的論理和であることに注意する。まず検査行列について述べる。この行列はm行n列の行列で、全ての列要素がゼロではなく、かつ相違であるという条件がある。(7,4)ハミング符号の検査行列Hの一例を以下に示す。(7,4)ハミング符号の検査行列Hの一例を以下に示す。 Here, the number of information is the number of bits of the original data, and the code length is the number of bits of the generated code. When m = 3, n = 7 and k = 4, and a Hamming code is formed by replacing a 4-bit bit string with a 7-bit code word. This case is referred to as a (7, 4) Hamming code. The Hamming code is processed using two matrices called a check matrix and a generator matrix. Note that all additions used in each matrix calculation are exclusive ORs. First, the check matrix will be described. This matrix is a matrix of m rows and n columns, and there is a condition that all column elements are not zero and are different. An example of the check matrix H of the (7, 4) Hamming code is shown below. An example of the check matrix H of the (7, 4) Hamming code is shown below.
次に生成行列について述べる。生成行列Gとは以下の式3の条件を満たす非零の行列である。
HGT = GHT = 0 ・・・式3
ここで、GTは G の転置行列を表す。組織符号の場合、Gは以下の式4で表される。
G =[IkAT] ・・・式4
上記の例で示したHに対するGは以下のようになる。
Next, the generator matrix will be described. The generator matrix G is a non-zero matrix that satisfies the condition of
HG T = GH T = 0...
Here, GT represents a transposed matrix of G. In the case of a systematic code, G is expressed by the following
G = [I k A T ]
G with respect to H shown in the above example is as follows.
符号化
符号化では生成行列 G と送信したいデータ m1 ... mk との乗算を行う。 先ほどの例で取り上げた G を生成行列として、ビット列 1011を符号化する場合を考える。このとき生成される符号は、となり、1011100が生成された符号である。
In encoding encoding, a generator matrix G and data to be transmitted m1. . . Multiply with mk. Let us consider a case where bit sequence 1011 is encoded using G taken up in the previous example as a generator matrix. The code generated at this time is “1011100”.
誤り訂正と復号
誤り訂正と復号では、復号は検査行列 H と受信したデータの積を求めることで行われる。今、受信データYを受け取ったとする。このときYに誤りが存在しない場合はY=xGであるといえる。ここでxとは符号化される前のビット列である。このYとHの転置行列との積を求めるとHとGの関係式より、式5が求められる。
Y・HT = x(G・HT) = 0 ・・・式5
すなわち受信語と検査行列の積が零ベクトルであるなら誤りが無いことになり、非零であるなら誤りを含むことになる。また、誤りベクトルeiは、以下の式6で示される。
Y・HT = ei・HT・・・式6
ここで、eiは、ここでeiとはi番目のビットが1、それ以外のビットが0のビット列である。ここでeiはi番目のビットのみ1であるので、すなわちHのi番目の列が出力されることになる。よってこの出力がHの何列目と一致するかを比べることにより誤りの位置が検出され、その部分のビットを反転することで誤りを訂正できる。
In error correction, decoding error correction, and decoding, decoding is performed by obtaining the product of the check matrix H and the received data. Assume that received data Y is received. At this time, if there is no error in Y, it can be said that Y = xG. Here, x is a bit string before encoding. When the product of the transposed matrix of Y and H is obtained,
Y · H T = x (G · H T ) = 0 0
That is, if the product of the received word and the check matrix is a zero vector, there is no error, and if it is non-zero, an error is included. Further, the error vector e i is expressed by the following
Y · H T = e i · H T Equation 6
Here, e i, here i th bit and e i is 1, the other bits are zero bits. Here, since ei is 1 only for the i-th bit, the i-th column of H is output. Therefore, the position of the error is detected by comparing with which column of the output this H matches, and the error can be corrected by inverting the bit of that portion.
例として上記の符号語が送信され、1111100が受信されたとする。この受信データは1111100に誤りを含む、このデータを復号する。受信データとHの転置行列の積を求めると以下のようになる。 As an example, it is assumed that the above code word is transmitted and 1111100 is received. This received data includes an error in 1111100, and this data is decoded. The product of the received data and the transposed matrix of H is as follows.
エラーがなければ、零ベクトルとなるところ、エラーが生じているので、零ベクトルとならない。この出力を転置すると、Hの2列目と同じ値であることがわかる。よって誤りは2列目であり、2列目のビットを反転させると1011100となり、元の符号語に訂正されたことがわかる。このようにして、エラーの訂正も可能になる。 If there is no error, it becomes a zero vector, but an error has occurred, so it does not become a zero vector. If this output is transposed, it can be seen that it is the same value as the second column of H. Therefore, the error is in the second column, and when the bit in the second column is inverted, it becomes 1011100, which indicates that the original codeword has been corrected. In this way, errors can be corrected.
図4は、ハミング符号の一例を示す図である。mを冗長ビットを示す整数(任意)、nを符号長、kを情報数(元データ)とすると、ハミング符号では、図4に示す表のような関係が得られる。kが7ビットの場合、m=4で符号化し、11-7=4bitは(1111)2と仮定し,メモリには7+4(冗長ビット)の11bitを保持する。ECC回路70にて(1111)2を追加し、15bitで比較することで、エラーを検出できる。
FIG. 4 is a diagram illustrating an example of a Hamming code. When m is an integer indicating a redundant bit (arbitrary), n is a code length, and k is the number of information (original data), the Hamming code has the relationship shown in the table shown in FIG. When k is 7 bits, encoding is performed with m = 4, 11−7 = 4 bits is assumed to be (1111) 2, and 11 bits of 7 + 4 (redundant bits) are held in the memory. An error can be detected by adding (1111) 2 in the
このようにすることで、エラー検出部70は、冗長ビットを付加することで生成される符号ビットを、復号し、それが零ベクトルではない場合、誤りベクトルとして、エラーを検出することができる。さらに、上記式6で説明したように、誤りベクトルに対応するHの転地行列からエラーが生じたビットも特定できる。エラー訂正部73は、このようにして特定したエラービットを、反転させて、出力することで訂正されたビット列をデータ出力することができる。
By doing in this way, the
メモリセルユニットへの入力データは、(n+α)ビットである。この入力データのうち、nビットは、データ(図4のkに相当する)として使用され、αは、エラーチェックビットである。αは例えば、nビットに対してハミング符号化等により生成した冗長ビットである。上記で説明したような冗長ビットの生成は、MPLD外部の処理でなされる。例えば、7ビットが出力データである場合、ハミング符号化によって4ビットが冗長ビットとして生成される。 The input data to the memory cell unit is (n + α) bits. Of the input data, n bits are used as data (corresponding to k in FIG. 4), and α is an error check bit. For example, α is a redundant bit generated by Hamming coding or the like for n bits. The generation of redundant bits as described above is performed by processing outside the MPLD. For example, when 7 bits are output data, 4 bits are generated as redundant bits by Hamming encoding.
図5は、メモリセルアレイの一例を示す図である。メモリセルアレイ110は、冗長ビットを保持するメモリセル領域と、データを保持するメモリセル領域から構成される。図5に示す通常のメモリセル領域と比して、冗長ビットの分だけメモリ領域が拡大する。しかしながら、図4に示すように、冗長ビットは、情報数の増加と比して、少ないが、情報数が少ないと、冗長ビットの数は相対的に大きいことが分かる。つまり、冗長ビットによるメモリ領域の拡大は、FPGAの構成情報が論理回路を実現する時の使われ方のように小入力、小出力には向いておらず、MLUTのように少なくともデータの出力ビット数が3ビットを超えるようなメモリに有効であることが分かる。このように、MLUTは、多入力、多出力であるため、各MLUTにECC回路70を設けても、それによるコストアップを抑制することが可能である。
FIG. 5 is a diagram illustrating an example of a memory cell array. The
エラー検出部70は、図4の例で説明したように、復号化処理を行うことでエラー検出する。復号化したデータと、メモリから読出したデータとの一致が無い場合、エラー検出信号をエラーフラグEFとして出力するとともに、エラー訂正済み信号を、出力データとして出力する。このように、エラー検出部70は、メモリセルアレイから出力されたデータをECCによってエラーチェックし、ここで出力されたデータがMLUTのデータ出力となる。このような構成を取ることにより、MLUTを構成するメモリセルアレイにソフトエラーが生じた場合でも、MLUTは正しい動作を行うことができる。
The
MLUT単位でエラー検出又は訂正を行うことにより、CRC(Cyclical Redundancy Check)やTMR(Triple Module Redundancy)を実装したFPGAと同様に完全性を高めることができる。TMRでは回路規模が3倍に増加するのに対し、MLUTは小面積でエラー検出又は訂正が可能である。また、図1に示したエラー受信部62が、各MLUTから出力されるエラーフラグEFを受信し、外部出力する構成により、ディペンダブルシステムにおいて、突如故障するのではなく、故障して動かなくなる時期が近いことを警告するシステムを実現できる。これにより、エラーを検出したら、そのエラーMLUTを避けて再配線を行ったり、チップを交換する余裕をユーザに与えることで、真にディペンダブルなMPLDシステムが構築できる。
By performing error detection or correction in units of MLUTs, completeness can be improved in the same manner as an FPGA in which CRC (Cyclic Redundancy Check) or TMR (Triple Modulation Redundancy) is implemented. In TMR, the circuit scale increases three times, whereas MLUT can detect or correct errors in a small area. Further, the
図6は、ATD付きMLUTの一例を示す図である。図6に示すATD付きMLUT30Aは、アドレスデコーダ120に、アドレス変化検出部としてのATD回路(Address Transition Detect)121を備える。ATD回路は、アドレス入力端子に設けられ、アドレス入力端子に印加されるアドレス入力信号の変化を検知して、変化したアドレス信号を出力する回路である。
FIG. 6 is a diagram showing an example of MLUT with ATD. The MLUT 30A with ATD shown in FIG. 6 includes an ATD circuit (Address Transition Detect) 121 as an address change detector in the
ATD回路はアドレス信号の変化を検出したときだけ、変化したアドレス信号を、アドレスデコーダ120Aに出力するので、アドレスデコーダ120Aは、アドレス信号が変化したときだけワード選択信号を出力し、アドレス信号が変化しないときはワード線選択信号を出力しない。このようにすることで、アドレス変化がない時は、ワード線選択信号が出力されないので、外乱ノイズによる書き込み誤動作を防止することができる。 The ATD circuit outputs the changed address signal to the address decoder 120A only when the change of the address signal is detected. Therefore, the address decoder 120A outputs the word selection signal only when the address signal changes, and the address signal changes. If not, the word line selection signal is not output. In this way, when there is no address change, the word line selection signal is not output, so that a write malfunction due to disturbance noise can be prevented.
これにより、ソフトエラーに対して、さらに堅牢性を上げることができる。なお、ここでは、誤り訂正手法としてハミング法の例を記載したが、これに限定されるものではない。 This can increase the robustness against soft errors. Although an example of the Hamming method has been described here as an error correction method, the present invention is not limited to this.
〔3〕MLUTのエラー検出フロー
次に、図7を用いて、MLUTのエラー検出フローの一例を説明する。まず、デコーダ120で特定されたメモリセルから、エラー検出部70が、真理値表データの一部を構成するデータおよびエラーチェックビットを読み出す(S101)。次に、エラー検出部70が、読出しデータにエラーが発生したか否かを判断する(S102)。エラーを検出していない場合(S102 NO)、エラー検出部70は読出したデータをそのまま後段の回路に出力する(S103)。エラーを検出した場合(S102 YES)、エラー検出部は、エラーフラグEFをエラー出力部62に出力する(S104)。エラー出力部62は、MLUT30から出力されるエラーフラグEFを受け取り、エラーを単に報告するエラー信号ES、又は、エラーを生じたMLUTを特定するエラー信号EMを外部に出力する(S105)。また、エラー訂正部73は、エラー検出部70により検出されるエラービットを訂正して、出力する(S106)。
[3] MLUT Error Detection Flow Next, an example of an MLUT error detection flow will be described with reference to FIG. First, from the memory cell specified by the
〔4〕PRAMを用いたMLUT
図8Aは、一実施形態に係るメモリセルの断面図である。メモリセルの記憶素子は、相変化膜層41から構成される。本実施形態において、相変化膜層41は、化合物薄膜であるゲルマニウム、アンチモン、テルル(以下、「GST」)から構成される。なお、相変化膜41は、以下、「GST」として言及される。相変化膜層41の上面に、上部電極43、下面に、下部電極45及び絶縁層47がそれぞれ備えられる。上部電極43は、例えば、アルミニウムであり、絶縁層47は、例えば、二酸化ケイ素であり、下部電極45は、例えば、TI/TINX/ALからなる貫通電極である。下部電極45の下部にはさらに半導体回路層50が設けられる。相変化膜層41は、上部電極43と下部電極45との間に電流を流すと、相が結晶性又はアモルファスに変わり、それに伴い抵抗値が変わる。相変化膜層41を融解温度以上に加熱し急冷するとアモルファス相(高抵抗)となる。相変化膜層41をある温度以上に加熱し徐冷すると結晶性相(低抵抗)となる。この抵抗値の違いにより生じる読出し時の状態電位を信号の0/1に対応させることで、相変化膜層41は、メモリセルの記憶素子として、記憶保持する。図8Aにおいて、上部電極43と相変化膜41は、外部電極部を除くチップ全面を覆っており、パターニングされていない。
[4] MLUT using PRAM
FIG. 8A is a cross-sectional view of a memory cell according to one embodiment. The memory element of the memory cell is composed of a phase
相変化領域48は、アモルファス相から結晶相に相変化したに変化する領域である。絶縁層47の上部にある相変化膜層41は初期状態が高抵抗のアモルファス相なので、相変化領域48同士が短絡することを防いでいる。相変化膜層41は、相変化膜の一部をメモリセルの記憶素子として使用する。従来、PRAMは、相変化物質を絶縁保護する構成で実現されていたが、本実施形態にかかる相変化膜層41は、相変化物質を絶縁保護する必要が無いため、製造プロセスの簡略化が図れる。
The
図8Bは、相変化膜の抵抗値のバラつきの一例を示す図である。本構成では相変化膜層41がパターニングされていないため、上部電極43と下部電極45の印加電圧によって相変化領域48A~48Cの大きさが異なる。その結果、相変化膜の抵抗値にバラつきが生じる。
FIG. 8B is a diagram illustrating an example of variation in the resistance value of the phase change film. In this configuration, since the phase
図8Bに示したように、一面成膜では、相変化領域48のサイズが印加電圧により変化し、相変化の抵抗値にバラつきがあるので、ある設定した高抵抗又は低抵抗で読み出すように回路の設計を行うと、正常に動作しない恐れがある。また構造上、相変化に必要な熱を得るために、ある一定の書込み電圧(VDD_W)が必要であり、読出しの際は、相変化が起こらない読出し電圧(VDD_R)で読出しを行わなければならない。以上の制約を考慮して、上記のメモリセルアレイ110のメモリセルを構成する。
As shown in FIG. 8B, in the one-side film formation, the size of the
図9は、メモリセル回路の一例を示す図である。図9に示すメモリセル40は、5個のトランジスタとGSTで構成されており、具体的には、1つのPMOS(POSITIVE CHANNEL METAL OXIDE SEMICONDUCTOR)トランジスタ161と、4つのNMOS(NEGATIVE CHANNEL METAL OXIDE SEMICONDUCTOR)トランジスタ162~165と、相変化膜層41の一部から構成される抵抗であるGST166とで構成される。GST166はアレイにしたとき、互いが共通で接続できるようにしている。
FIG. 9 is a diagram illustrating an example of a memory cell circuit. The
GST166は、相変化膜層41の一部、つまり、図1に示す下部電極45の上部にある相変化膜層41により構成される。相変化膜層41が結晶性又はアモルファスに変わり、それに伴い抵抗値が変わることで、GST166は、「0」又は「1」の状態を保持する記憶素子として機能する。
The
PMOS161のソースは、VDD(電源電圧端)に接続し、NMOS162のソースは、VSS(接地電圧端)に接続している。PMOS161と、NMOS162は、それぞれのドレインを接続することで、CMOS(COMPLEMENTARY METAL OXIDE SEMICONDUCTOR)インバータとして動作する。CMOSインバータは、GST166に保持される状態に従って出力される信号レベルを、センスし、NMOSトランジスタ163を介して、読出データ線RDATAに出力する。
The source of the
NMOSトランジスタ163は、ゲートが読出ワード線R_ROWに接続しており、ゲートに読出ワード線R_ROWからの信号を印加すると、CMOSインバータによってセンスされたGST166の状態信号を出力する。上記のように、一面成膜は製造プロセスにおいて初期抵抗値にバラつきが生じる可能性がある。NMOSトランジスタ165は、ゲートがGST166に接続し、ソースが低バイアスBIAS_Lに接続しており、ゲートに中バイアスBIAS_Mの電圧VDD_Mを印加することで、コンダクタンスを調整することにより、読出し動作におけるGST166の抵抗値のバラつきを小さくする。そして、CMOSインバータによってGST166の状態信号の出力をセンスして、電圧を増幅する。
The
また、低バイアスBIAS_Lは、GST166のNMOSトランジスタ165の電圧分割するときに分割電圧を上げ、PMOS161と、NMOS162で構成されたCMOSインバータの閾値に電圧分割の中心値を持っていくための電圧である。
The low bias BIAS_L is a voltage for raising the division voltage when dividing the voltage of the
周辺回路であるデータ線電圧制御部142は、入出力を反転する2つのインバータ181、182であり、書込データ線WDATA、読出データ線RDATAの線上に設ける。書き込み処理時は、書込データWDATAをインバータで反転信号/WDATAにすることで、書込データWDATAが「1」の時にVSSをインバータで作り出し、GST166に書き込みを行う。このようにして、選択された書込データ線WDATAの電圧は、書込み処理時にVSSに下げられる。
The data line
相変化膜電圧制御部150は、メモリセルアレイ内の全てのGST166に接続する。書込み処理時には、メモリセルアレイ内の全てのGST166への供給電圧(WR_VDD)を書込み用電圧(VDD_W)に変え、読出し処理時には、GST166への供給電圧を読出し用電圧(VDD_R)に変える。
The phase change film
書込データ線WDATAは、データ線電圧制御部142により、書込み動作時に、電圧が下がる。NMOSトランジスタ164は、ゲートが書込ワード線W_ROWに接続しており、ゲートに書込ワード線W_ROWからの信号を印加すると、書込データ線WDATAと、GST166とを電気的に接続する。書込み動作では、書込データ線WDATAの電圧が降下するのと同時に、GST166に、読出し電圧(VDD_R)より高い書込み電圧(VDD_W)が印加するので、GST166に相変化を生じさせる電圧が印加される。
The voltage of the write data line WDATA is lowered by the data line
以上のように、相変化メモリをメモリセルに用いると、同チップでも,メモリセルごとに抵抗値がバラつくため,安定した書き込みができない。例えば、高抵抗→低抵抗したつもりでも,高抵抗のまま書き込みに失敗した場合、検出できない等の問題が生じる。このようなハードエラーが生じた場合でも、本実施形態に係るMLUTの誤り訂正により、正常動作を継続するとともに、障害が生じたMLUTを特定できる。 As described above, when a phase change memory is used for a memory cell, even in the same chip, the resistance value varies for each memory cell, so that stable writing cannot be performed. For example, even if the resistance is changed from high resistance to low resistance, if writing fails with high resistance, a problem such as inability to detect occurs. Even when such a hard error occurs, the MLUT according to the present embodiment can continue normal operation and identify the MLUT in which a failure has occurred by correcting the error.
〔5〕MLUTの論理動作
A.論理要素
図10は、論理要素として動作するMLUTの一例を示す図である。図10に示すMLUTは、図11に示すMLUT又は図13又は7に示す半導体メモリ装置と同様な回路である。図10では、説明を簡単にするために、アドレス切替回路10A、及び出力データ切替回路10Bの記載は、省略される。図10に示すMLUT30A、30Bは、4つの論理用アドレス入力LA線A0~A3と、4つの論理動作用データ線D0~D3と、4×16=64個の記憶素子40と、アドレスデコーダ9とをそれぞれ有する。論理動作用データ線D0~D3は、24個の記憶素子40をそれぞれ直列に接続する。アドレスデコーダ9は、論理用アドレス入力LA線A0~A3に入力される信号に基づき、16本のワード線のいずれかに接続される4つの記憶素子を選択するように構成される。この4つの記憶素子はそれぞれ、論理動作用データ線D0~D3に接続され、記憶素子に記憶されるデータを論理動作用データ線D0~D3に出力する。例えば、論理用アドレス入力LA線A0~A3に適当な信号が入力される場合は、4つの記憶素子40A、40B、40C、及び40Dを選択するように構成することができる。ここで、記憶素子40Aは、論理動作用データ線D0に接続され、記憶素子40Bは、論理動作用データ線D1に接続され、記憶素子40Dは、論理動作用データ線D2に接続され、記憶素子40Dは、論理動作用データ線D3に接続される。そして、論理動作用データ線D0~D3には、記憶素子40A~40Dに記憶される信号が出力される。このように、MLUT30A、30Bは、論理用アドレス入力LA線A0~A3から論理用アドレス入力LAを受け取り、その論理用アドレス入力LAによってアドレスデコーダ9が選択する4つの記憶素子40に記憶される値を、論理動作用データ線D0~D3に論理動作用データとしてそれぞれ出力する。なお、MLUT30Aの論理用アドレス入力LA線A2は、隣接するMLUT30Bの論理動作用データ線D0と接続しており、MLUT30Aは、MLUT30Bから出力される論理動作用データを、論理用アドレス入力LAとして受け取る。また、MLUT30Aの論理動作用データ線D2は、MLUT30Bの論理用アドレス入力LA線A0と接続しており、MLUT30Aが出力する論理動作用データは、MLUT30Bで論理用アドレス入力LAとして受け取られる。例えば、MLUT30Aの論理動作用データ線D2は、MLUT30Aの論理用アドレス入力LA線A0~A3に入力される信号に基づき、論理動作用データ線D2に接続される16個の記憶素子のいずれか1つに記憶される信号をMLUT30Bの論理用アドレス入力LAA0に出力する。同様に、MLUT30Bの論理動作用データ線D0は、MLUT30Bの論理用アドレス入力LA線A0~A3に入力される信号に基づき、論理動作用データ線D0に接続される16個の記憶素子のいずれか1つに記憶される信号をMLUT30Aの論理用アドレス入力LAA2に出力する。このように、MPLD同士の連結は、1対のアドレス線とデータ線とを用いる。以下、MLUT30Aの論理用アドレス入力LA線A2と、論理動作用データ線D2のように、MLUTの連結に使用されるアドレス線とデータ線の対を「AD対」という。
[5] Logic operation of MLUT Logical Element FIG. 10 is a diagram illustrating an example of an MLUT that operates as a logical element. The MLUT shown in FIG. 10 is a circuit similar to the MLUT shown in FIG. 11 or the semiconductor memory device shown in FIG. In FIG. 10, the description of the address switching circuit 10A and the output data switching circuit 10B is omitted for the sake of simplicity. The MLUTs 30A and 30B shown in FIG. 10 include four logic address input LA lines A0 to A3, four logic operation data lines D0 to D3, 4 × 16 = 64
なお、図10では、MLUT30A、30Bが有するAD対は4であるが、AD対の数は、特に後述するように4に限定されない。 In FIG. 10, the MLUTs 30A and 30B have 4 AD pairs, but the number of AD pairs is not limited to 4 as will be described later.
図11は、論理回路として動作するMLUTの一例を示す図である。本例では、論理用アドレス入力LA線A0及びA1を2入力NOR回路701の入力とし、論理用アドレス入力LA線A2及びA3を2入力NAND回路702の入力とする。そして、2入力NOR回路の出力と、2入力NAND回路702の出力を、2入力NAND回路703に入力し、2入力NAND回路703の出力を論理動作用データ線D0に出力する論理回路を構成する。
FIG. 11 is a diagram illustrating an example of an MLUT that operates as a logic circuit. In this example, the logical address input LA lines A0 and A1 are input to the two-input NOR circuit 701, and the logical address input LA lines A2 and A3 are input to the two-
図12は、図11に示す論理回路の真理値表を示す図である。図11の論理回路は、4入力のため、入力A0~A3の全ての入力を入力として使用する。一方、出力は、1つのみなので、出力D0のみを出力として使用する。真理値表の出力D1~D3の欄には「*」が記載されている。これは、「0」又は「1」のいずれの値でもよいことを示す。しかしながら、実際に再構成のために真理値表データをMLUTに書き込むときには、これらの欄には、「0」又は「1」のいずれかの値を書き込む必要がある。 FIG. 12 is a diagram showing a truth table of the logic circuit shown in FIG. Since the logic circuit of FIG. 11 has four inputs, all the inputs A0 to A3 are used as inputs. On the other hand, since there is only one output, only the output D0 is used as an output. “*” Is written in the columns of outputs D1 to D3 of the truth table. This indicates that any value of “0” or “1” may be used. However, when the truth table data is actually written into the MLUT for reconstruction, it is necessary to write either “0” or “1” in these fields.
B.接続要素
図13は、接続要素として動作するMLUTの一例を示す図である。図13では、接続要素としてのMLUTは、論理用アドレス入力LA線A0の信号を論理動作用データ線D1に出力し、論理用アドレス入力LA線A1の信号を論理動作用データ線D2に出力し、論理用アドレス入力LA線A2の信号を論理動作用データ線D3に出力するように動作する。接続要素としてのMLUTはさらに、論理用アドレス入力LA線A3の信号を論理動作用データ線D1に出力するように動作する。
B. Connection Element FIG. 13 is a diagram illustrating an example of an MLUT that operates as a connection element. In FIG. 13, the MLUT as a connection element outputs the signal of the logic address input LA line A0 to the logic operation data line D1, and outputs the signal of the logic address input LA line A1 to the logic operation data line D2. The logic address input LA line A2 operates to output the signal to the logic operation data line D3. The MLUT as the connection element further operates to output the signal of the logic address input LA line A3 to the logic operation data line D1.
図14は、図13に示す接続要素の真理値表を示す図である。図13に示す接続要素は、4入力4出力である。したがって、入力A0~A3の全ての入力と、出力D0~D3の全ての出力が使用される。図14に示す真理値表によって、MLUTは、入力A0の信号を出力D1に出力し、入力A1の信号を出力D2に出力し、入力A2の信号を出力D3に出力し、入力A3の信号を出力D0に出力する接続要素として動作する。 FIG. 14 is a diagram showing a truth table of the connection elements shown in FIG. The connection element shown in FIG. 13 has 4 inputs and 4 outputs. Therefore, all inputs A0-A3 and all outputs D0-D3 are used. According to the truth table shown in FIG. 14, the MLUT outputs the signal of the input A0 to the output D1, outputs the signal of the input A1 to the output D2, outputs the signal of the input A2 to the output D3, and outputs the signal of the input A3. It operates as a connection element that outputs to the output D0.
図15は、AD0、AD1、AD2、及びAD3の4つのAD対を有するMLUTによって実現される接続要素の一例を示す図である。AD0は、論理用アドレス入力LA線A0と論理動作用データ線D0とを有する。AD1は、論理用アドレス入力LA線A1と論理動作用データ線D1とを有する。AD2は、論理用アドレス入力LA線A2と論理動作用データ線D2とを有する。そして、AD3は、論理用アドレス入力LA線A3と論理動作用データ線D3とを有する。図15において、1点鎖線は、AD対0の論理用アドレス入力LA線A0に入力された信号がAD対1の論理動作用データ線D1に出力される信号の流れを示す。2点鎖線は、第2のAD対1の論理用アドレス入力LA線A1に入力された信号がAD対2の論理動作用データ線D2に出力される信号の流れを示す。破線は、AD対2の論理用アドレス入力LA線A2に入力された信号がAD対3の論理動作用データ線D3に出力される信号の流れを示す。実線は、AD対3の論理用アドレス入力LA線A3に入力された信号がAD対0の論理動作用データ線D0に出力される信号の流れを示す。
FIG. 15 is a diagram illustrating an example of a connection element realized by an MLUT having four AD pairs of AD0, AD1, AD2, and AD3. AD0 has a logic address input LA line A0 and a logic operation data line D0. AD1 has a logic address input LA line A1 and a logic operation data line D1. AD2 has a logic address input LA line A2 and a logic operation data line D2. AD3 has a logic address input LA line A3 and a logic operation data line D3. In FIG. 15, a one-dot chain line indicates a signal flow in which a signal input to the
なお、図15では、MLUT30が有するAD対は4であるが、AD対の数は、特に4に限定されない。
In FIG. 15, the
C.論理要素と接続要素の組合せ機能
図16は、1つのMLUTが、論理要素及び接続要素として動作する一例を示す図である。図16に示す例では、論理用アドレス入力LA線A0及びA1を2入力NOR回路121の入力とし、2入力NOR回路121の出力と、論理用アドレス入力LA線A2とを2入力NAND回路122の入力とし、2入力NAND回路122の出力を論理動作用データ線D0に出力する論理回路を構成する。また同時に、論理用アドレス入力LA線A3の信号を論理動作用データ線D2に出力する接続要素を構成する。
C. Combination Function of Logic Element and Connection Element FIG. 16 is a diagram illustrating an example in which one MLUT operates as a logic element and a connection element. In the example shown in FIG. 16, the logical address input LA lines A 0 and A 1 are input to the 2-input NOR
図17に、図16に示す論理要素及び接続要素の真理値表を示す。図16の論理動作は、入力D0~D3の3つの入力を使用し、1つの出力D0を出力として使用する。一方、図17の接続要素は、入力A3の信号を出力D2に出力する接続要素が構成される。 FIG. 17 shows a truth table of the logic elements and connection elements shown in FIG. The logic operation of FIG. 16 uses three inputs D0 to D3 and uses one output D0 as an output. On the other hand, the connection element in FIG. 17 is a connection element that outputs the signal of the input A3 to the output D2.
図18は、AD0、AD1、AD2、及びAD3の4つのAD対を有するMLUTによって実現される論理動作及び接続要素の一例を示す図である。図15に示すMLUTと同様に、AD0は、論理用アドレス入力LA線A0と論理動作用データ線D0とを有する。AD1は、論理用アドレス入力LA線A1と論理動作用データ線D1とを有する。AD2は、論理用アドレス入力LA線A2と論理動作用データ線D2とを有する。そして、AD3は、論理用アドレス入力LA線A3と論理動作用データ線D3とを有する。上述のように、MLUT30は、3入力1出力の論理動作と、1入力1出力の接続要素との2つの動作を1つのMLUT30で実現する。具体的には、論理動作は、AD対0の論理用アドレス入力LA線A0と、AD対1の論理用アドレス入力LA線A1と、AD対2の論理用アドレス入力LA線A2とを入力として使用する。そして、AD対0の論理動作用データ線D0のアドレス線を出力と使用する。また、接続要素は、破線で示すようにAD対3の論理用アドレス入力LA線A3に入力された信号をAD対2の論理動作用データ線D2に出力する。
FIG. 18 is a diagram illustrating an example of logical operations and connection elements realized by an MLUT having four AD pairs of AD0, AD1, AD2, and AD3. Similarly to the MLUT shown in FIG. 15, AD0 has a logic address input LA line A0 and a logic operation data line D0. AD1 has a logic address input LA line A1 and a logic operation data line D1. AD2 has a logic address input LA line A2 and a logic operation data line D2. AD3 has a logic address input LA line A3 and a logic operation data line D3. As described above, the
上記したように、MPLD内のMLUTは、複数のアドレス線を介して互いに接続しているので、ワード選択信号を介して、外部ノイズがメモリセルに書き込まれる御動作が生じやすい。そのため、MLUTにATD回路があることにより、アドレスが変化したときだけ、メモリセルへの書込みが行われるので、外部ノイズの書込み誤動作を回避できる。 As described above, since the MLUTs in the MPLD are connected to each other via a plurality of address lines, an operation in which external noise is written to the memory cell via the word selection signal is likely to occur. Therefore, since there is an ATD circuit in the MLUT, writing to the memory cell is performed only when the address changes, so that it is possible to avoid an erroneous operation due to external noise.
以上説明した実施形態は典型例として挙げたに過ぎず、その各実施形態の構成要素の組合せ、変形及びバリエーションは当業者にとって明らかであり、当業者であれば本発明の原理及び請求の範囲に記載した発明の範囲を逸脱することなく上述の実施形態の種々の変形を行えることは明らかである。 The embodiments described above are merely given as typical examples, and combinations, modifications, and variations of the components of each embodiment will be apparent to those skilled in the art, and those skilled in the art will understand the principles and claims of the present invention. Obviously, various modifications may be made to the embodiments described above without departing from the scope of the described invention.
Claims (15)
アレイを構成するとともに互いにアドレス線又はデータ線で接続する複数の記憶部を備え、前記記憶部は、複数のアドレスで特定された入力値の論理演算を、データ線に出力するための真理値表データを記憶して、論理回路として動作し、及び/又は、あるアドレスで特定された入力値を、他の記憶部のアドレスに接続するデータ線に出力するように構成される真理値表データを記憶して、接続回路として動作するように構成され、
前記記憶部は、
前記真理値表データ及び前記真理値表データのエラーチェックビットを保持する複数のメモリセルと、
前記真理値表データの一部を構成する第1データと、前記第1データの第1エラーチェックビットを読出して、前記第1データにエラーが発生したか否かを判断するエラー検出部とを備える、ことを特徴とする再構成可能な半導体装置。 A reconfigurable semiconductor device comprising:
A truth table for outputting a logical operation of input values specified by a plurality of addresses to a data line, comprising a plurality of storage units constituting an array and connected to each other by address lines or data lines. Truth table data configured to store data, operate as a logic circuit, and / or output an input value specified by an address to a data line connected to an address of another storage unit Configured to operate as a connection circuit,
The storage unit
A plurality of memory cells holding the truth table data and error check bits of the truth table data;
First data constituting a part of the truth table data, and an error detection unit that reads a first error check bit of the first data and determines whether or not an error has occurred in the first data. A reconfigurable semiconductor device characterized by comprising:
前記エラー検出部は、前記第1データ及び前記第1エラーチェックビットを復号して、前記第1データのエラー発生を判断する、請求項1又は2に記載の再構成可能な半導体装置。 The error check bit is a redundant bit,
The reconfigurable semiconductor device according to claim 1, wherein the error detection unit decodes the first data and the first error check bit to determine whether an error has occurred in the first data.
エラーが生じた記憶部を特定することで、当該記憶部を使用禁止とすることで、再構成可能な半導体装置の堅牢性を上げることができる。 6. The reconfigurable semiconductor device according to claim 1, further comprising an error output unit that receives an error signal from each of the storage units and encodes the error signal to identify a storage unit in which an error has occurred. apparatus.
By specifying a storage unit in which an error has occurred, prohibiting the use of the storage unit can increase the robustness of the reconfigurable semiconductor device.
前記真理値表データのうち第1真理値表データと、前記第1真理値表データの第1エラーチェックビットを読出し、
前記第1真理値表データにエラーが発生したか否かを判断する、ことを特徴とするエラー検出方法。 An error detection method in a reconfigurable semiconductor device, wherein the semiconductor device includes a plurality of storage units that form an array and are connected to each other by address lines or data lines, and the storage unit includes truth table data and A plurality of memory cells that hold error check bits of the truth table data, and the storage section outputs truth table data for outputting a logical operation of input values specified by a plurality of addresses to a data line. Storing truth table data for operating as a logic circuit and / or outputting an input value specified by a certain address to a data line connected to an address of another storage unit; Configured to operate as a connection circuit,
Read out the first truth table data of the truth table data and the first error check bit of the first truth table data;
An error detection method comprising: determining whether an error has occurred in the first truth table data.
前記第1真理値表データ及び前記第1エラーチェックビットを復号して、前記第1真理値表データのエラー発生を判断する、請求項9又は10に記載のエラー検出方法。 The error check bit is a redundant bit,
The error detection method according to claim 9 or 10, wherein the first truth table data and the first error check bit are decoded to determine whether an error has occurred in the first truth table data.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012-219901 | 2012-10-01 | ||
| JP2012219901 | 2012-10-01 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014054345A1 true WO2014054345A1 (en) | 2014-04-10 |
Family
ID=50434678
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2013/072127 Ceased WO2014054345A1 (en) | 2012-10-01 | 2013-08-20 | Semiconductor device |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2014054345A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115982095A (en) * | 2023-02-13 | 2023-04-18 | 海光信息技术股份有限公司 | A logic truth table acquisition method, device, electronic equipment and storage medium |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007293856A (en) * | 2006-04-21 | 2007-11-08 | Altera Corp | Soft error location and sensitivity detection for programmable devices |
-
2013
- 2013-08-20 WO PCT/JP2013/072127 patent/WO2014054345A1/en not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007293856A (en) * | 2006-04-21 | 2007-11-08 | Altera Corp | Soft error location and sensitivity detection for programmable devices |
Non-Patent Citations (1)
| Title |
|---|
| HIRAKAWA, N. ET AL.: "High Performance Computing, Innovative Architecture for Future Generation High- Performance Processors and Systems (IWIA)", 2008 INTERNATIONAL WORKSHOP, 2008, pages 35 - 42 * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115982095A (en) * | 2023-02-13 | 2023-04-18 | 海光信息技术股份有限公司 | A logic truth table acquisition method, device, electronic equipment and storage medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12229003B2 (en) | Memory error detection and correction | |
| KR102303961B1 (en) | Memory error detection and correction | |
| US11740960B2 (en) | Detection and correction of data bit errors using error correction codes | |
| US7191379B2 (en) | Magnetic memory with error correction coding | |
| US8151173B2 (en) | Semiconductor storage device comprising memory array including normal array and parity array | |
| CN100492325C (en) | Method and device for correcting/detecting multiple spotty byte errors in bytes of limited number of erroneous bytes | |
| US20150309875A1 (en) | Error-correction encoding and decoding | |
| EP3368984B1 (en) | Temperature dependent multiple mode error correction | |
| US20030023926A1 (en) | Magnetoresistive solid-state storage device and data storage methods for use therewith | |
| US9934841B1 (en) | Systems and methods for refreshing data in memory circuits | |
| Ghosh et al. | Low-density parity check codes for error correction in nanoscale memory | |
| JP6018508B2 (en) | Nonvolatile semiconductor memory device and test method thereof | |
| Ning | Advanced bit flip concatenates BCH code demonstrates 0.93% correctable BER and faster decoding on (36 864, 32 768) emerging memories | |
| Sun et al. | Defect and transient fault-tolerant system design for hybrid CMOS/nanodevice digital memories | |
| Neale | Design and analysis of an adjacent multi-bit error correcting code for nanoscale SRAMs | |
| WO2014054345A1 (en) | Semiconductor device | |
| Liu et al. | Codes for limited magnitude error correction in multilevel cell memories | |
| CN110222006B (en) | RRAM-based processor architecture and control method | |
| US9654146B2 (en) | Bi-directional parity bit generator circuit | |
| JP2004272900A (en) | Assisting memory system | |
| Liu et al. | Proactive correction coset decoding scheme based on SEC-DED code for multibit asymmetric errors in STT-MRAM | |
| JP2014137834A (en) | Semiconductor storage device | |
| Kang et al. | One-step majority-logic-decodable codes enable STT-MRAM for high speed working memories | |
| Evain et al. | Error correction schemes with erasure information for fast memories | |
| Shanshan et al. | Codes for Limited Magnitude Error Correction in Multilevel Cell Memories |
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: 13843694 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 13843694 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: JP |