1. Field of the Invention
The present invention relates to a semiconductor device including an error correcting circuit (ECC).
2. Description of the Background Art
In semiconductor devices such as semiconductor memory devices, bit errors caused by hardware failure are encountered. There is also known a phenomenon called “soft error”, caused by the generation of pairs of electrons and holes in the silicon substrate when radiation such as α rays and neutron rays present in nature is introduced into the chip, leading to the possibility of destroying, in the worst case, data stored in the storage node of a memory cell.
Reflecting the recent progress in semiconductor processing, i.e. development in microminiaturization, the size of the storage element per se has been reduced in contrast to the increase of the storage capacity. The capacity of the storage node storing data has become smaller. It is known that the resistance with respect to soft error becomes lower as the storage capacity of the storage node in which data is stored is reduced. The bit error caused by such soft error has become a critical problem.
There is conventionally known a semiconductor device including an ECC circuit that executes error correction processing on a bit error to address such bit errors.
For example, when error correction processing using a Hamming code is to be executed, the so-called parity bit of n bits is employed. When there is a bit error in the regular data of m bits, the bit error is identified using the parity bit. Then, the data bit is inverted, for example, and output. The number of bits “n” of the parity bit is set so that the relationship of 2n−m≧m+1 is established based on the relationship between the regular data of m bits and the parity bit of n bits.
More specifically, a predetermined combination using such parity bits indicates the position information, which is called “syndrome”, to identify the error position, i.e. the location where a bit error has occurred. In data readout, the parity bits consisting of n bits are received together with the regular data consisting of m bits to calculate a syndrome that is to be generated based on a predetermined exclusive OR operation. The location of an error bit is identified based on the syndrome that is the calculated result to modify the regular m-bit data. This general Hamming code theory is disclosed in, for example, “Industrial Mathematics for Restudy”, CQ Publishing Co., Ltd., pp. 47-53.
In general, the ECC circuit must implement a plurality of columns of an exclusive OR circuit (also referred to as “XOR gate” hereinafter) that takes an exclusive OR to calculate a syndrome. Since the number of parity bits increases in proportion to the amount of information, i.e. the number of bits, in the storage device, the number of XOR gates will be inevitably increased according to the amount of information in the storage device, leading to more columns.
Increase in the number of columns of XOR gates induces the problem that the error correction processing rate will become slower.
Japanese Patent Laying-Open Nos. 05-144291 and 2000-132995 disclose a system of improving the integration level to increase the error correction processing rate by relatively reducing the number of columns of the XOR gates.
It is to be noted that, if the operating rate of the XOR gate per se constituting the ECC circuit can be increased, the error correction processing rate can be improved.
The circuit complexity is increased in accordance with the increase in the number of XOR gates, whereby the wiring that connects respective circuits becomes longer. As a result, the rate of error correction processing is degraded.
In view of the foregoing, an object of the present invention is to provide a semiconductor device further improving the error correction processing rate.
A semiconductor device according to an aspect of the present invention includes a memory cell array storing a data group formed of a plurality of data bits and a plurality of parity bits, and an error correcting circuit executing correction of an error bit in the plurality of data bits and plurality of parity bits constituting the data group output from the memory cell array. The error correcting circuit includes an XOR circuit group obtaining a syndrome based on a matrix product of a predetermined check matrix represented in binary and a matrix formed of logic values of respective bits in the data group output from the memory cell array, and a correcting circuit correcting an error bit in the plurality of data bits and plurality of parity bits based on the syndrome output from the XOR circuit group. The XOR circuit group includes a plurality of check circuits receiving an input of the plurality of data bits and plurality of parity bits to compute each data of a plurality of bits constituting the syndrome. Each check circuit includes a plurality of XOR gates. Each XOR gate receives every 2 bits of input, and calculates an exclusive OR of the plurality of data bits and plurality of parity bits input corresponding to matrix elements of each row in a predetermined check matrix. The sum of the matrix elements of the predetermined check matrix is set to become lower than a predetermined value.
In accordance with the semiconductor device of the present invention, the number of XOR gates constituting the check circuit can be reduced to allow a smaller layout area. As a result, increase in the number of columns of check circuits formed of a plurality of XOR gates can be suppressed to allow computation of a syndrome at high speed. In other words, the error correction processing can be executed at high speed.
A semiconductor device according to another aspect of the present invention includes a memory cell array storing a data group formed of a plurality of data bits and a plurality of parity bits, and an error correcting circuit executing correction of an error bit in the plurality of data bits and plurality of parity bits constituting the data group output from the memory cell array. The error correcting circuit includes an XOR circuit group obtaining a syndrome based on a matrix product of a check matrix and a matrix formed of logic values of respective bits in the data group output from the memory cell array, and a correcting circuit correcting an error bit in the plurality of data bits and plurality of parity bits based on the syndrome output from the XOR circuit group. The XOR circuit group includes a plurality of XOR gates. Each XOR gate receives every 2 bits of input of the plurality of data bits and plurality of parity bits. Each XOR gate includes first and second transistors for setting an output node at a first logic level and a second logic level based on a predetermined combination of the logic values of every 2 bits input. Each XOR gate has its output node set to the first logic level in a reset state. The second transistor is set to have a drivability greater than that of the first transistor.
According to the semiconductor device of the present aspect, the rate of setting the logic level of the output node to the second logic level from the first logic level identified as a reset state becomes higher as compared to the case where the same drivability is set. Thus, the time required to output a syndrome from the XOR circuit group is reduced. Error correction processing can be executed at high speed.
A semiconductor device according to a further aspect of the present invention includes a memory cell array storing a data group formed of a plurality of data bits and a plurality of parity bits, and an error correcting circuit executing correction on an error bit in the plurality of data bits and plurality of parity bits constituting the data group output from the memory cell array. The error correcting circuit includes an XOR circuit group obtaining a syndrome based on a matrix product of a check matrix and a matrix formed of logic values of respective bits in the data group output from the memory cell array, and a correcting circuit correcting an error bit in the plurality of data bits and plurality of parity bits based on the syndrome output from the XOR circuit group. The XOR circuit group includes a plurality of XOR gates. Each XOR gate receives every 2 bits of input of the plurality of data bits and plurality of parity bits. When there are 2k(k: a natural number of at least 2) inputs to an XOR gate group formed of at least a portion of the plurality of XOR gates to which the plurality of information bits and plurality of parity bits are input, the XOR gate group includes (2k−1) XOR gates calculating the exclusive OR of 2k inputs. The (2k−1) XOR gates are arranged in 2 columns.
Accordingly, an effective layout can be executed, allowing reduction in the area of the XOR gate group.
The foregoing and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.
Embodiments of the present invention will be described hereinafter with reference to the drawings. In the drawings, the same or corresponding components have the same reference characters allotted, and description thereof will not be repeated.
Referring to
Memory array MA is provided to store regular data corresponding to the information amount of 32 bits. Parity bits of 6 bits are also applied and stored in memory array MA for the purpose of executing error correction on the 32 data bits.
As shown in
In a data read out operation from memory array MA, data is applied to ECC circuit 10 via a data bus DB for execution of error correction processing. Specifically, data bits D0-D31 and parity bits P0-P5 stored in memory array MA are applied to ECC circuit 10 (data-out, parity-out).
ECC circuit 10 of the first embodiment includes a correcting circuit 2 and an EXOR Tree circuit 3.
EXOR Tree circuit 3 receives data bits D0-D31 and parity bits P0-P5 to calculate the syndrome, and outputs syndrome data S0-S5. Syndrome data S0-S5 from EXOR Tree circuit 3 are applied to correcting circuit 2.
Correcting circuit 2 identifies the error position in the 32 data bits D0-D31 based on syndrome data S0-S5, and inverts the error bit data to provide proper data Dout0-Dout31 to a module external interface that function as an interface with an external circuit. The aforementioned output to the module external interface is only a way of example, output to an internal circuit or the like that executes another predetermined function is possible.
Referring to
6:32 decoder 5 receives syndrome data S0-S5 from EXOR Tree circuit 3 to output information of 32 bits identifying the error position in data bits D0-D31.
Correction unit 6 includes a plurality of XOR gates 7 corresponding to the 32-bit data. Each XOR gate 7 receives a corresponding one of data bits D0-D31 and a data input identifying an error position output from 6:32 decoder 5 to invert the error bit data. The plurality of XOR gates 7 output data Dout0-Dout31 to the module external interface.
For example, 6:32 decoder 5 outputs data indicative of error data (“1”) to a corresponding XOR gate 7. That corresponding XOR gate 7 inverts data bit D for output.
A method of setting a parity check table according to the first embodiment of the present invention will be described with reference to
For example, output of the syndrome result “000100” from the higher order bits identified as S5-S0 indicates that parity bit P2 is the bit data in error.
Similarly, the values of 6 bits represented in binary numbers for all the data bits D0-D31 and parity bits P0-P51 are allocated so as to differ from each other.
Based on this parity check table, a check matrix H of the following expression is provided.
Specifically, based on the parity check table set forth above, a matrix product of a check matrix H and a matrix w constituting data bits D0-D31 and parity bits P0-P5 can be represented.
Parity bits P0-P5 are stored in memory array MA such that the above equation (1) is met with respect to data bits D0-D31.
Therefore, determination can be made that there is a bit error in the case of the following equation (2).
Hwt≠0t (2)
EXOR Tree circuit 3 of the first embodiment calculates the left-hand side of equation (1) to output syndrome data S0-S5 as the syndrome result. Expansion of equation (1) yields the following equations:
D0⊕D4⊕D6⊕D7⊕D11⊕D13βD14⊕D17⊕D18⊕D22⊕P0⊕D24⊕D28⊕D29=S0 (3)
D1⊕D5⊕D7⊕D8⊕D10⊕D12⊕D14⊕D16⊕P1⊕D18⊕D19⊕D21⊕D24⊕D26⊕D28⊕D31=S1 (4)
P2⊕D2⊕D5⊕D6⊕D10⊕D13⊕D15⊕D16⊕D20⊕D22⊕D23⊕D27⊕D28⊕D31=S2 (5)
D0⊕D3⊕D4⊕D7⊕D9⊕D13⊕D16⊕D17⊕P3⊕D19⊕D20⊕D21⊕D23⊕D26⊕D27⊕D30=S3 (6)
D1⊕D4⊕D5⊕D8⊕P4⊕D9⊕D14⊕D15⊕D19⊕D22⊕D25⊕D27⊕D29⊕D30=S4 (7)
D2⊕D3⊕D6⊕D8⊕D11⊕D12⊕D15⊕D17⊕P5⊕D18⊕D20⊕D21⊕D25⊕D29⊕D30⊕D31=S5 (8)
With regards to the values allocated to respective bits in
Further, the values allocated to respective bits are set such that the values in the vertical direction become smaller than a predetermined number. Here, the value of the sum in the vertical direction, i.e. the sum in each column in check matrix H, is set to take a value (natural number) not larger than (n−2), where n is the number of parity bits. In the table of
Further, the values in the horizontal direction are set so as to be smaller than a predetermined number. Here, the value of the sum in the horizontal direction, i.e. the sum in each row in check matrix H, is set to take a value (natural number) not larger than (n−2)×(m+n)/n, where n is the number of parity bits and m is the number of data bits. In the table of
Furthermore, the values in the vertical direction are set to take an even number. In the table of
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
By setting the sum of each row and each column of the matrix elements in check matrix H to be smaller than a predetermined number, the number of XOR gates constituting parity circuit PC can be reduced. Accordingly, the layout area can be reduced. As a result, increase in the number of columns of the parity circuits PC formed of a plurality of XOR gates can be suppressed to allow the syndrome to be computed at high speed. In other words, error correction processing can be executed at high speed.
Referring to
Logic unit 20 receives the input signals of Da, Dan, Db and Dbn to generate an output signal y.
Logic unit 21 receives the input signals of Da, Dan, Db and Dbn to output an output signal yn that is an inverted version of output signal y.
Logic unit 20 includes transistors PT1-PT4 and transistors NT1-NT4. Transistors PT1 and P2 are connected in series between a power supply voltage VCC and a node NO to receive input signals Da and Dbn at their gates. Transistors PT3 and PT4 are connected in series between power supply voltage VCC and output node NO to receive input signals Db and Dan at their gates. Transistors PT1 and PT2 are connected parallel to transistors PT3 and PT4.
Transistors NT1 and NT2 are connected in series between output node NO and ground voltage GND to receive input signals Dan and Dbn at their gates. Transistors NT3 and NT4 are connected in series between output node NO and ground voltage GND to receive input signals Da and Db at their gates. Transistors NT1 and NT2 are connected parallel to transistors NT3 and NT4.
Logic unit 21 includes transistors PT5-PT8 and transistors NT5-NT8. Transistors PT5 and PT6 are connected in series between power supply voltage VCC and an output node N1 to receive input signals Da and Db at their gates. Transistors PT7 and PT8 are arranged between power supply voltage VCC and output node N1 to receive input signals Dan and Dbn at their gates. Transistors PT5 and PT6 are connected parallel to transistors PT7 and PT8.
Transistors NT5 and NT6 are connected in series between output node N1 and ground voltage GND to receive input signals Db and Dan at their gates. Transistors NT7 and NT8 are connected in series between output node N1 and ground voltage GND to receive input signals Da and Dbn at their gates. Transistors NT5 and NT6 are connected parallel to transistors NT7 and NT8.
Transistors PT1-PT8 correspond to P channel MOS transistors. Transistors NT1-NT8 correspond to N channel MOS transistors.
An operation of XOR gate XO of
For example, when data signals Da and Db are both “1” or “0”, transistors NT3 and NT4 or transistors NT1 and NT2 are turned on in logic unit 20. Therefore, output node N0 is set to the “L” level. In other words, output signal y is “0”. Similarly, transistors PT7 and PT8 or transistors PT5 and PT6 are turned on in logic unit 21. Therefore, output node N1 is set at the H level. In other words, output signal yn is “1”.
When the logic levels of data signals Da and Db differ such as “1” and “0”, transistors PT3 and PT4 or transistors PT1 and PT2 are turned on in logic unit 20. Therefore, output node NO is set at the H level. In other words, output signal y is “1”. Similarly, transistors NT7 and NT8 or transistors NT5 and NT5 are turned on in logic unit 21. Therefore, output node N1 is set at the “L” level. In other words, output signal yn is “0”. It is assumed that input signals Da and Db are both applied with “1” or “0” in the initial state (reset state), as will be described afterwards. Therefore, output nodes N0 and N1 are set to the “L” level and “H” level, respectively.
XOR gate XO according to the first embodiment of the present invention has its drivability adjusted by controlling the size of the P channel MOS transistors and N channel MOS transistors.
Specifically, in logic unit 20, the size wp of P channel MOS transistors PT1-PT4 is set 4 times the size wn of N channel MOS transistors NT1-NT4. When the size of P channel MOS transistors and the size of N channel MOS transistors are set at 2:1, respective transistors have the same level of drivability. Therefore, the drivability of the P channel MOS transistor is larger than that of the N channel MOS transistor here.
In the aforementioned reset state, output node N0 has its logic level set to “L”. When the logic levels of input signals Da and Db do not match each other under this state, the logic level of output node N0 is set to “H”. Since the drivability of the P channel MOS transistor is set high as compared to that of the N channel MOS transistor in the present embodiment, the speed of output node N0 being set to the logic level of “H” is faster than that of the case in which the same drivability is set.
In logic unit 21, the size wp of P channel MOS transistors PT5-PT8 is set equal to the size wn of N channel MOS transistors NT5-NT8. The transistors will have the same level of drivability when the size of the P channel MOS transistor and the size of the N channel MOS transistor is set as 2:1, as mentioned above. Therefore, the drivability of the N channel MOS transistor is larger than that of P channel MOS transistor here.
In a reset state, output node N1 is set to the logic level of “H”. When the logic levels of input signals Da and Db do not match each other under such a state, the logic level of output node N1 is set to “L”. Since the drivability of the N channel MOS transistor is set larger as compared to that of the P channel MOS transistor, the speed of output node N1 being set to the logic level of L becomes faster than the case where the same drivability is set.
XOR gate XO of the present invention is designed to be driven at high speed when the logic levels of output nodes N0 and N1 make a transition from the “L” level and the “H” level corresponding to a reset state.
Therefore, the speed of setting syndrome data S0-S5 identified as the syndrome result to “1” in each parity circuit PC formed of a plurality of XOR gates becomes faster than that of the case where the XOR gates are set at the same drivability. In other words, a syndrome is calculated speedily at parity circuit PC.
Output of data Dout0-Dout31 through XOR gates of the present embodiment will be described with reference to
Semiconductor device 1 operates in synchronization with a system clock CLK. In the present embodiment, data readout is executed to output data bits D0-D31 onto data bus DB. Then, data bits D0-D31 are applied to ECC circuit 10 together with parity bits P0-P5 for the execution of error correction processing. By advancing the drive from “L” and “H” levels corresponding to the reset state through usage of the XOR gates of the present embodiment, the time required to output a syndrome can be reduced than in the conventional error correction processing indicated by the dotted line in
XOR gate 7 according to the present embodiment shown in
In the present embodiment, the number of inputs for parity circuits PC constituting EXOR Tree circuit 3 is set to an even number. Specifically, the number of inputs of each of parity circuits PC0-PC5 of
An effective layout of XOR gates will be described hereinafter with reference to
In other words, (2k−1) XOR gates XO are employed when there are 2k(k: natural number of at least 2) inputs to form an XOR gate group calculating an exclusive OR of two columns. By such a layout of 2-column configuration, the layout efficiency can be improved to suppress increase in the layout area of the XOR gate group.
The layout scheme set forth above is advantageous in that, when there are two XOR gate groups with 8 inputs, for example, as one unit XOR gate groups can be arranged and formed with high area efficiency as shown in
Referring to
At the center region of
At the left side region of
In the present embodiment, the input data and parity bits are divided into a plurality of subgroups in the parity check table of
Each of parity circuits PC0-PC5 is arranged corresponding to the plurality of subgroups such that the data bits and parity bits included in each of the divided subgroup are in proximity to each other.
For example, the top region R1 of each of parity circuits PC0-PC5 is applied with data bits and parity bits corresponding to subgroup SG0. The second region R2 is applied with data bits and parity bits corresponding to subgroup SG1. The third region R3 has XOR gate groups formed to output syndrome data S0-S5 identified as the syndrome result. The fourth region R4 is applied with data bits and parity bits corresponding to subgroup SG2. The fifth region R5 is applied with data bits and parity bits corresponding to subgroup SG3.
Since data applied to each predetermined region is arranged in close proximity in each parity circuit, the routing of wiring such as the data input line can be suppressed to reduce the wiring length. Thus, the load can be further reduced to allow execution of error correction processing at higher rate.
A parity check table according to a second embodiment of the present invention will be described with reference to
The second embodiment corresponds to the case where data bits of 64 bits and 7 parity bits are stored in memory array MA.
A parity check table is set according to the scheme described with reference to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
At the second region from the right in
At the third region from the right in
In the fourth region from the right, i.e. the leftmost region in
In the present embodiment, the input data and parity bits are divided into a plurality of subgroups in the parity check table of
Each of parity circuits PC0#-PC5# are arranged such that data bits and parity bits included in each of the divided subgroups are in proximity to each other, corresponding to the plurality of subgroups.
For example, the top region R1# of each of parity circuits PC0-PC5 is applied with data bits and parity bits corresponding to subgroup SG0#. The second region R2# is applied with data bits and parity bits corresponding to subgroup SG1#. The third region R3# has XOR gate groups formed to output syndrome data S0-S6 identified as the syndrome result. The fourth region R4# is applied with data bits and parity bits corresponding to subgroup SG2#. The fifth region R5# is applied with data bits and parity bits corresponding to subgroup SG3#.
Thus, since the data input for each predetermined region is arranged in close proximity in each parity circuit, the routing of wiring such as a data input line can be suppressed to reduce the wiring length. Thus, the load can be alleviated to allow execution of error correction processing at higher rate.
Referring to
Referring to
Furthermore, the pitch of signal lines laid out with respect to correcting circuit 2 and EXOR Tree circuit 3 are designed to be identical.
Although the present invention has been described and illustrated in detail, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, the spirit and scope of the present invention being limited only by the terms of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2004-191246 | Jun 2004 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
3825893 | Bossen et al. | Jul 1974 | A |
3891969 | Christensen | Jun 1975 | A |
4456980 | Yamada et al. | Jun 1984 | A |
4547882 | Tanner | Oct 1985 | A |
4794597 | Ooba et al. | Dec 1988 | A |
4817052 | Shinoda et al. | Mar 1989 | A |
5003542 | Mashiko et al. | Mar 1991 | A |
5012472 | Arimoto et al. | Apr 1991 | A |
5134616 | Barth et al. | Jul 1992 | A |
5376829 | Rogers et al. | Dec 1994 | A |
5523707 | Levy et al. | Jun 1996 | A |
5528177 | Sridhar et al. | Jun 1996 | A |
7117420 | Yeung et al. | Oct 2006 | B1 |
7177420 | Carter | Feb 2007 | B2 |
Number | Date | Country |
---|---|---|
5-144291 | Jun 1993 | JP |
2000-132995 | May 2000 | JP |
Number | Date | Country | |
---|---|---|---|
20050289441 A1 | Dec 2005 | US |