Other objects and further features of the present invention will be apparent from the following detailed description when read in conjunction with the accompanying drawings, in which:
In the following, embodiments of the present invention will be described with reference to the accompanying drawings.
The ECC memory 10 is a memory block having an error correcting function utilizing the Hamming code, the extended Hamming code, the horizontal and vertical parity code, or the like. The ECC memory 10 has the terminals for inputting of a command and address, the terminals for inputting/outputting of data and redundant bits for the error correction purpose, and the terminal for inputting of an ECC-on/off signal indicating the on/off state of the ECC function.
The redundancy controlling unit 12 is provided between the ECC memory 10 and a host apparatus (e.g., CPU) reading/writing data from/to the ECC memory 10. The redundancy controlling unit 12 receives command and address signals from the host apparatus, and supplies the received command and address signals to the ECC memory 10. The command signals indicate a read command or a write command, for example. The redundancy controlling unit 12 sets the ECC-on/off signal to the off state for provision to the ECC memory 10 during the normal memory operation. Namely, the ECC function of the ECC memory 10 is suspended.
In the case of write operation, the redundancy controlling unit 12 supplies the data received from the host apparatus to the ECC memory 10. In the case of read operation, the redundancy controlling unit 12 supplies the data read from the ECC memory 10 to the host apparatus.
The ECC memory 10 includes a means to store nonvolatile information such as fuses or a ROM, which stores failed-address information and data-position information associated with the failed-address information. The failed-address information indicates the addresses of defective memory cells that are detected by the testing of the ECC memory 10 performed in advance. The data-position information indicates the position of failed bits in the data that is input/output with respect to the ECC memory 10. Namely, with the input/output data being n-bit data D1, D2, D3, . . . , and Dn, the data-position information indicates “x” if the failed bit is Dx.
The redundancy switching information providing unit 11 receives the address signals that are supplied to the redundancy controlling unit 12 from the host apparatus. The redundancy switching information providing unit 11 compares the address indicated by the received address signals with addresses indicated by the failed-address information stored in the storage means, and supplies to the redundancy controlling unit 12 a match/no-match signal indicative of the result of the comparison that is either a match or no match. If the result of the comparison indicates an address match, the redundancy switching information providing unit 11 supplies the data-position information corresponding to the matched address together with the match/no-match signal to the redundancy controlling unit 12.
If the match/no-match signal from the redundancy switching information providing unit 11 indicates an address match, the redundancy controlling unit 12 assigns a data bit, corresponding to the failed bit position in the data exchanged with the host apparatus, to one bit of the redundant bits exchanged with the ECC memory 10. Namely, the data bit corresponding to the failed-bit position in the data exchanged with the ECC memory 10 is replaced with one bit of the redundant bits exchanged with the ECC memory 10. If provision is made to detect a plurality of failed bits, the plurality of failed bits may be replaced with a plurality of bits of the redundant bits.
Setting the ECC-on/off signal to the off state with respect to the ECC memory 10 turns off the ECC function of the ECC memory 10, so that the redundant bits are independent of the read/write data. Namely, the memory cells for storing the redundant bits for the error correction purpose can be used for the purpose of storing normal data. In the present invention, the memory cells for storing the redundant bits are utilized as redundant memory cells for recovering a failed bit (i.e., the bit of a defective memory cell) contained in normal data.
The ECC memory 10 of the present invention shown in
The conventional ECC memory shown in
When a read command is input into the memory-cell-array-&-control circuit 21, 64-bit data and 7-bit redundant bits are read from the memory cells corresponding to the input address. When a write command is input into the memory-cell-array-&-control circuit 21, 64-bit data and 7-bit redundant bits are write to the memory cells corresponding to the input address.
The ECC logic unit 22 generates error-correction-purpose redundant bits and performs an error check and error correction if the ECC-on/off signal supplied from the exterior indicates the on state of the ECC function. Namely, in the case of write operation, the ECC logic unit 22 generates 7 redundant bits based on 64-bit data supplied from the exterior through the selector 23, and the 64-bit data and the 7 redundant bits are supplied to the memory-cell-array-&-control circuit 21. In the case of read operation, an error check and error correction are performed based on the 64-bit data and 7 redundant bits read from the memory-cell-array-&-control circuit 21. The 64-bit data for which error correction has been performed is output to the exterior through the selector 23.
The ECC logic unit 22 allows 64-bit data to pass through without any change if the ECC-on/off signal supplied from the exterior indicates the off state of the ECC function. Namely, the ECC logic unit 22 passes the 64-bit data received from the exterior as it is to the memory-cell-array-&-control circuit 21, and passes the data read from the memory-cell-array-&-control circuit 21 as it is to the exterior.
The selector 23 couples the 64-bit external input/output data terminals of the ECC memory to the ECC logic unit 22 at the time of normal operation. With this arrangement, 64-bit data can be read from the memory-cell-array-&-control circuit 21 and output to the exterior through the ECC logic unit 22, and 64-bit data can be written to the memory-cell-array-&-control circuit 21 from the exterior through the ECC logic unit 22.
The selector 23 is configured to assign part of the 64-bit external input/output data terminals of the ECC memory to the 7 redundant bits output from the memory-cell-array-&-control circuit 21 at the time of a test operation, in which the test signal supplied from the exterior indicates a test operation. This makes it possible that the redundant bits are observed from the exterior. With this provision, a check can be made as to whether the ECC function is properly operating at the time of testing the operation of the ECC memory.
In the ECC memory 10 of the present invention shown in
In this manner, the ECC memory 10 of the present invention differs from the conventional ECC memory only in that the selector 23 is removed, and in that the data paths are modified to allow 64-bit data and 7 redundant bits to be input/output from/to the exterior. With this slight design modification, the ECC memory 10 of the present invention can be created from the conventional ECC memory.
The ECC memory 10 of the present invention functions as an ECC memory in the same manner as the conventional ECC memory when the ECC-on/off signal is set to “on” to activate the ECC function. If the ECC-on/off signal is set to “off” to deactivate the ECC function, the memory cells corresponding to the 7 redundant bits can be used for the purpose of storing normal data. By utilizing this configuration, the present invention uses the memory cells corresponding to 7 error-correction-purpose redundant bits as redundant memory cells.
It should be noted that the memory-cell-array-&-control circuit 21 and the ECC logic unit 22 may be provided in a single macro, or may be separate macros on a single chip. The memory-cell-array-&-control circuit 21 and the ECC logic unit 22 may be implemented on a single silicon substrate, or may be implemented on separate silicon substrates.
The decoder 30 receives the match/no-match signal and data-position information from the redundancy switching information providing unit 11. The switches 31-0 through 31-n are provided in one-to-one correspondence to (n+1)-bit data D[0] through D[n] that are exchanged between the host apparatus (CPU) and the ECC memory 10. The switches 31-0 through 31-n are controlled as to their switch positions according to signals from the decoder 30.
When any given switch 31-x (x: any given number between 0 and n) is set in a normal switch position, the signal line of the data D[x] on the host apparatus side is connected to the signal line of the data D[x] on the ECC memory side. When any given switch 31-x is set in a redundancy switch position, the signal line of the data D[x] on the host apparatus side is connected to a signal line 32 of a redundant bit. The redundant-bit signal line 32 is coupled to one of the redundant bits of the ECC memory 10.
If the match/no-match signal that the decoder 30 receives from the redundancy switching information providing unit 11 indicates no match, the address of a current access operation does not include a defective memory cell, so that the decoder 30 sets all the switches 31-0 through 31-n in the normal switch position. If the match/no-match signal indicates a match, the decoder 30 sets one of the switches indicated by the data-position information received from the redundancy switching information providing unit 11 such that this switch is set in the redundancy switch position. With this arrangement, access is not performed with respect to the failed bit of the ECC memory 10 indicated by the data-position information, but is performed with respect to one of the redundant bits which serves as the redundancy destination.
In the description provided above, provision is made to use only one bit as a redundant bit. In the case in which an error correcting code allowing the correction of two or more bits is used, a plurality of failed bits may be replaced with a plurality of redundant bits serving as redundancy destinations. When the extended Hamming code is used, for example, such correction of multiple failed bits becomes possible.
In the configuration shown in
When the configuration is such that the on/off state of the ECC function can be controlled from the exterior, the ECC function may be activated when reliability is given priority during the normal operation, for example. In this case, the switching of the switches 31-0 through 31-n is suspended such that the signal line of the data D[x] on the host apparatus side is always connected to the signal line of the data D[x] on the ECC memory side. If speed is given priority ahead of reliability, the ECC function is deactivated as previously described such that data recovery is performed based on the redundancy processing. In this manner, two different needs are answered by use of a single system.
Further, the selection of the on/off state of the ECC function may be fixedly set rather than configured to be controllable from the exterior. For example, a method of selecting the state by changing an interconnect layer (mask option), a method of selecting the state by changing a bonding connection at the time of package sealing, a method of selecting the state by use of a laser fuse, etc., may be utilized.
One comparator 41, one failed-address-information storage unit 42, and one data-position-information storage unit 43 are associated with each other as one set. Each of the comparators 41 compares the address supplied from the host apparatus with the address stored in the corresponding one of the failed-address-information storage units 42. A single failed-address-information storage unit 42 stores one failed address that is the address of a defective memory cell in the ECC memory 10. If there are m failed addresses, then, the m failed addresses are stored in m failed-address-information storage units 42, respectively.
When the result of comparison by one of the comparators 41 is a match, this comparator 41 outputs a match/no-match signal indicating a match. When the result of comparison by one of the comparators 41 is no match, this comparator 41 outputs a match/no-match signal indicating no match. The match/no-match signals output from the plurality of comparators 41 are consolidated into one match/no-match signal by a logic-sum gate (not shown) or the like, for example, for provision to the redundancy controlling unit 12. Namely, if at least one of the match/no-match signals indicates a match, a match/no-match signal indicative of a match is supplied to the redundancy controlling unit 12. If all of the match/no-match signals indicate no match, a match/no-match signal indicative of no match is supplied to the redundancy controlling unit 12.
A data-position-information storage unit 43 does not produce any output if the match/no-match signal output from the corresponding comparator 41 indicates no match. A data-position-information storage unit 43 outputs the stored data-position information if the match/no-match signal output from the corresponding comparator 41 indicates a match. The data-position information is supplied from the redundancy switching information providing unit 11 to the redundancy controlling unit 12.
In an ECC memory 10A shown in
In the ECC logic unit 22 of the ECC memory 10 shown in
In the ECC memory 10A shown in
The configuration shown in
To be specific, the ECC function of the ECC memory 10A is activated in the test mode for performing the testing of the ECC memory 10A. In the test mode, the write/read operation to write data to and read the data from the ECC memory 10A is performed with respect to each address while incrementing (or decrementing) the address one by one. When such read operation is performed with respect to each address, the redundancy switching information providing unit 11A receives from the host apparatus an address signal indicative of the address being accessed, and also receives the error detection signal and error data position signal from the ECC memory 10A.
In the redundancy switching information providing unit 11A, the address indicated by the supplied address signal is stored in a failed-address-information storage unit if the address detection signal indicates the presence of error, and the data-position information indicated by the supplied error data position signal is stored in a data-position-information storage unit. This is achieved in the configuration of the redundancy switching information providing unit shown in
In this case, the failed-address-information storage units 42 and the data-position-information storage units 43 may be implemented as a electrically writeable nonvolatile memory (EEPROM). With the use of the EEPROM, it is possible to automatically set and store information necessary for redundancy processing in the redundancy switching information providing unit 11A by simply performing the testing of the ECC memory with the ECC function being “on”.
In the case in which the failed-address-information storage units 42 and the data-position-information storage units 43 are implemented such that data is stored as the cut or intact state of fuses, the error detection signal and the error data position signal may be supplied to an external tester apparatus or the like, rather than supplied to the redundancy switching information providing unit as shown in
In this configuration, the storage unit for storing the failed address information and data position information as nonvolatile data is provided as a separate ROM 11-2. Such a separate ROM 11-2 may be implemented by use of a memory device that is available as a single separate unit such as a flash memory or FRAM (ferroelectric random access memory) macro. It suffices for the controller 11-1 to write the failed address and failed data position to the ROM 11-2 in response to the error detection signal supplied from the ECC memory 10A. Provision may be made such that the nonvolatile data written in this manner is loaded from the ROM 11-2 to the latches inside the controller 11-1 at the time of power-on of the semiconductor memory device, for example.
A redundancy controlling unit 12A shown in
If the ECC memory 10 of
In the present embodiment, the majority voting unit 50 is provided so that the majority voting logic improves the reliability of the redundancy bit replacement. When supplying data (one bit corresponding to the failed bit position of write data) from the redundancy controlling unit 12A to the ECC memory 10, the majority voting unit 50 passes the data of the redundant-bit signal line 32 to all the output bits P[0] through P[k] without any change. As a result, the one bit at the failed bit position of the write data is stored in each of the k+1 memory cells corresponding to the redundant bits P[0] through P[k]. When reading the bit replaced by a redundant bit is read from the ECC memory 10, the majority voting unit 50 performs majority voting with respect to the k+1 bits read from the k+1 memory cells corresponding to the redundant bits P[0] through P[k], and transmits to the redundant-bit signal line 32 a logic value that is one of “0” and “1” found in greater numbers in the k+1 bits.
With this configuration, it is possible to significantly improve the reliability of a bit replaced by a redundant bit. Under normal conditions, the testing of redundant cells (i.e., the k+1 bits as replacements) needs to be conducted in the same manner as the testing of normal cells, thereby checking whether these redundant cells properly function as spares. If the majority voting method is employed for the redundancy replacement bits as described above, however, the data of the bit to be replaced by redundancy can be made far more reliable than data of normal memory cells. As a result, testing is no longer necessary for the k+1 memory cells that function as replacements. Even if the k+1 bits serving as replacements include one or more defective cells as a result of testing, or end up containing one or more defective cells over time as a result of secular changes, proper redundancy processing can be achieved as long as the number of the defective cells is no larger than 3 in the case of 7-bit majority voting, for example.
If the ECC that is capable of correcting one-bit error is employed, for example, any error correcting codes of the ECC memory are known to contain only one error bit at the maximum as long as a proper operation is confirmed as a result of testing with the ECC function being “on”. Redundancy processing is necessary only when there is error in the data portion (i.e., not in the redundancy-bit portion). If an error that is only one bit at the maximum is present in the data portion, this necessarily follows that no error is present in the redundant-bit portion.
Turning back to
In this manner, the semiconductor memory device of
The semiconductor memory device of
At the time of test operation, the memory BIST 15A automatically generates test data, and writes the generated test data to the memory 10B. Thereafter, the memory BIST 15A reads the written data, and compares the read data with the expected value (the correct data that has been written). Based on this comparison, the memory BIST 15A checks whether the tested address includes error, and finds the position of the error if there is error.
The memory BIST 15A outputs an address signal indicative of the address, an error detection signal indicating whether there is an error, and an error data position signal indicative of the position of an error bit in the data. These signals are detected by a tester apparatus or the like situated outside the semiconductor memory device. In the exterior, the address being output, the error detection signal, and the error data position signal are monitored so as to identify the failed address and the failed data position. Then, setting signals may be provided from the exterior to the redundancy switching information providing unit 11A in order to record the failed address and the failed data position. If the redundancy switching information providing unit 11 is configured such that nonvolatile data is stored by use of fuses, a layer beam may be used to cut the fuses in order to record the failed address and the failed data position.
In the following, embodiments relating to the chip configuration of the semiconductor memory device of the present invention will be described. The semiconductor memory device of the present invention maybe configured such that a single chip serving as an SOC includes the ECC memory 10, the redundancy switching information providing unit 11, and the redundancy controlling unit 12. Alternatively, the semiconductor memory device of the present invention may be implemented by use of a plurality of separate chips.
Further, the present invention is not limited to these embodiments, but various variations and modifications may be made without departing from the scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
2006-083335 | Mar 2006 | JP | national |