This application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 2013-239088 filed on Nov. 19, 2013 in Japan, the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to a semiconductor memory.
Conventionally, one time programmable ROMs (OTP) to which data is programmable only one time are known as a programmable ROM. As an example of the OTPs, a semiconductor memory in which a threshold of a field effect transistor that configures a static RAM (SRAM) is varied by negative bias threshold instability (NBTI), and data is programmed with the variation is known.
In such a semiconductor memory, there is a failure due to programming of data using the NBTI, such as a stochastic failure of the programming.
a) is a diagram illustrating a change with time of a shift amount ΔVth of a threshold of a PMOS transistor by NBTI, and
a) is a diagram describing an operation of MTP using OTP, which can define initial data, and
a) is a circuit diagram of the memory cell of each of the fuse regions according to the eighth embodiment, and
a) is another circuit diagram of the memory cell of each of the fuse regions according to the eighth embodiment, and
b) is a characteristic diagram of the memory cell of
a) is a circuit diagram of a memory cell of each of fuse regions according to a modification of the eighth embodiment, and
a) and 20(b) are diagrams illustrating a configuration of a fuse region of a semiconductor memory according to a ninth embodiment.
a) is a characteristic diagram of the memory cell in an initial state of
a) illustrates a result of the Monte Carlo analysis of data read from the memory cell in the initial state, and
According to an embodiment, a semiconductor memory includes a plurality of word lines, a plurality of sets of a pair of bit lines, a plurality of memory cells, a writing/reading circuit, and a word line selection circuit. The plurality of sets of a pair of bit lines intersects with the plurality of word lines. The plurality of memory cells is provided at intersection portions of the plurality of word lines and each of the plurality of sets of a pair of bit lines. In a state where inverted data of program data has been written to the memory cells, a stress is applied and the program data is programmed to the memory cells. The writing/reading circuit is configured to write the inverted data of the same program data to a unit memory cell group made of a plurality of memory cells connected to a set of a pair of bit lines at a time of programming, and to read data from the unit memory cell group connected to the pair of bit lines by detecting a signal level of the pair of bit lines at a time of reading. The word line selection circuit is configured to simultaneously select and drive two or more word lines of the plurality of word lines connected to the unit memory cell group to which programming has been performed, at the time of reading.
Embodiments will now be explained with reference to the accompanying drawings.
One of characteristics of a first embodiment is to simultaneously select a plurality of word lines at the time of reading.
The plurality of memory cells 10 is provided at intersection portions of the plurality of word lines WL <0> to WL <m> and each of the plurality of sets of a pair of bit lines BL <0> and bBL <0> to BL <n> and bBL <n>. That is, the plurality of memory cells 10 is arranged in a word line direction and in a bit line direction in a matrix manner to configure a memory cell array 11. As described below, a stress is applied to the plurality of memory cells 10 in a state where inverted data of program data has been written, and the program data is programmed. A first power source voltage VDD1 is applied to the plurality of memory cells 10.
The writing/reading circuit 20 writes inverted data of the same program data to a unit memory cell group 12 made of the plurality of memory cells 10 connected to a set of a pair of bit lines according to an address signal at the time of programming. The address signal and the program data are supplied to the writing/reading circuit 20 from an outside.
The writing/reading circuit 20 reads data from the unit memory cell group 12 connected to a pair of bit lines by detecting a signal level of the pair of bit lines according to the address signal at the time of reading.
The row decoder 30 simultaneously selects and drives two or more word lines of the plurality of word lines WL <0> to WL <m> connected to the unit memory cell group 12 to which programming has been performed, according to an address signal A and a multiple selection signal M, at the time of reading. That is, the row decoder 30 performs multiple selects of the word lines.
A second power source voltage VDD2 is supplied to the writing/reading circuit 20 and the row decoder 30.
The drive transistor D1 and the load transistor L1 are connected in series to configure a first inverter INV1. The drive transistor D2 and the load transistor L2 are connected in series to configure a second inverter INV2. Then, outputs and inputs of a pair of the inverters INV1 and INV2 are mutually cross-coupled, so that a flip-flop is configured. That is, each of the memory cells 10 includes the cross-coupled first inverter INV1 and second inverter INV2. A connection point of a drain of the drive transistor D1 and a drain of the load transistor L1 configures a storage node t, and a connection point of a drain of the drive transistor D2 and a drain of the load transistor L2 configures a storage node c.
Each of the word lines WL <0> to WL <m> is commonly connected with gates of the transmission transistors F1 and F2 of a corresponding memory cell 10.
Further, each of the bit lines BL <0> to BL <n> is connected with a gate of the drive transistor D2, a gate of the load transistor L2, a drain of the drive transistor D1, and a drain of the load transistor L1 through the transmission transistor F1 in a corresponding memory cell 10. Further, each of the bit lines bBL <0> to bBL <255> is connected with a drain of the drive transistor D2, a drain of the load transistor L2, a gate of the drive transistor D1, and a gate of the load transistor L1 through the transmission transistor F2 in a corresponding memory cell 10.
As described above, the configuration of the memory cell 10 is the same as that of an SRAM cell as a general-purpose memory. However, the memory cell 10 is different from the SRAM cell as a general-purpose memory in that the first power source voltage VDD1 is higher than the second power source voltage VDD2.
Further, programming of program data is performed by making of thresholds of the load transistors L1 and L2 different. That is, a magnitude relationship between the thresholds of the load transistors L1 and L2 is determined according to the program data. As a state after the programming, the thresholds of the load transistors L1 and L2 are different.
As illustrated in
Corresponding address signals A <0> to A <3> are input to the inverters 31-0 to 31-3, respectively. Output signals of corresponding inverters 31-0 to 31-3 and corresponding multiple selection signals M <0> to M <3> are input to the NAND circuits 32-0 to 32-3, respectively.
The output signal of the inverter 31-0 is input to the NAND circuits 33-0, 33-2, 33-4, 33-6, 33-8, 33-10, 33-12, and 33-14.
The output signal of the inverter 31-1 is input to the NAND circuits 33-0, 33-1, 33-4, 33-5, 33-8, 33-9, 33-12, and 33-13. The output signal of the inverter 31-2 is input to the NAND circuits 33-0 to 33-3, and 33-8 to 33-11. The output signal of the inverter 31-3 is input to the NAND circuits 33-0 to 33-7.
An output signal of the NAND circuit 32-0 is input to the NAND circuits 33-1, 33-3, 33-5, 33-7, 33-9, 33-11, 33-13, and 33-15. An output signal of the NAND circuit 32-1 is input to the NAND circuits 33-2, 33-3, 33-6, 33-7, 33-10, 33-11, 33-14, and 33-15. An output signal of the NAND circuit 32-2 is input to the NAND circuits 33-4 to 33-7, and 33-12 to 33-15. An output signal of the NAND circuit 32-3 is input to the NAND circuits 33-8 to 33-15.
Output signals of the NAND circuits 33-0 to 33-15 are input to corresponding inverters 34-0 to 34-15, respectively. Output signals of the inverters 34-0 to 34-15 are output to corresponding word lines WL <0> to WL <15>, respectively.
Note that an existing row decoder used for an SRAM as a general-purpose memory is different from the row decoder 30 of
When all of the multiple selection signals M <0:3> are “1”, the row decoder 30 selects a word line one by one according to the address signals A <0:3>, similarly to the existing row decoder.
In contrast, when the multiple selection signal M <i> (i is 0, 1, 2, 3) is “0”, and the address signal A <i> is fixed to “0”, an address classified with the address signal A <i> is degenerated. That is, the word line classified with the address signal A <i> is always in a selected state.
As described above, the row decoder 30 can perform multiple selects of an arbitrary number of word lines according to the multiple selection signals M <0:3> and the address signals A <0:3>.
Next, a program operation of program data with respect to a semiconductor memory will be described. This program operation is controlled by a control circuit (not illustrated) provided outside or inside the semiconductor memory, for example.
First, the writing/reading circuit 20 writes inverted data of the same program data to one unit memory cell group 12 specified by the address signal. Here, an example of writing inverted data “0” of program data “1” to the unit memory cell group 12 connected to the pair of bit lines BL <0> and bBL <0> will be described.
This writing is similarly performed to the writing to an SRAM cell as a general-purpose memory.
For example, a voltage of the word line WL <0> is made “1” (=VDD2) and the transmission transistors F1 and F2 are turned ON in a state where the first power source voltage VDD1 is supplied to the plurality of memory cells 10.
Then, a voltage of the bit line BL <0> is made “0” (=VSS), and a voltage of the bit line bBL <0> is made “1”.
At this time, data of the bit line BL <0>, bBL <0> is latched to the memory cell 10 connected to the word line WL <0>.
Next, the voltage of the word line WL <0> is made “0”. Accordingly, the inverted data “0” of the program data “1” is written to the memory cell 10. That is, a state in which an input signal of the first inverter INV1 (a signal of the storage node c) in the memory cell 10 is “1”, and an input signal of the second inverter INV2 (a signal of the storage node t) is “0” is maintained. Then, other word lines WL <1> to WL <m> are made “1” one by one, and the inverted data “0” is similarly written to other memory cells 10 of the unit memory cell group 12.
Note that the word lines WL <0> to WL <m> are simultaneously made “1”, and the inverted data “0” may be simultaneously written to all of the memory cells 10 of the unit memory cell group 12. That is, the row decoder 30 may perform multiple selects of the word lines at the time of writing.
Next, the inverted data of the program data is written to the unit memory cell group 12 connected to another pair of bit lines.
Note that, at the time of this writing, the second power source voltage VDD2 may be supplied to the plurality of memory cells 10 instead of the first power source voltage VDD1.
Next, a stress is applied to the plurality of memory cells 10 in a state where the inverted data of the program data has been written to a desired unit memory cell group 12.
For example, the first power source voltage VDD1 is applied to the plurality of memory cells 10 of the unit memory cell group 12 as the stress for a fixed period, in a state where the voltages of the word lines WL <0> to WL <m> are made “0” and the transmission transistors F1 and F2 are turned OFF, and the voltages of a pair of bit lines are made “0”.
At this time, in each of the memory cells 10 connected to the pair of bit lines BL <0> and bBL <0>, a gate voltage of the load transistor L2 of the second inverter INV2 is “0”, and thus a high voltage (=the first power source voltage VDD1) is applied between the gate and source of the load transistor L2. During a period in which the high voltage is applied, shift of a threshold of the load transistor L2 by NBTI becomes remarkable. To be specific, the threshold of the load transistor L2 is increased.
As described above, a threshold of a transistor in which the gate signal is “0” becomes higher than a threshold of a transistor where the gate voltage is “1”, between the load transistors L1 and L2.
To accelerate the NBTI, the temperature of a semiconductor chip may be set to a temperature higher than room temperature. Further, to accelerate the NBTI, the first power source voltage VDD1 may be supplied to a semiconductor area (for example, an N well) where the load transistors L1 and L2 are formed.
In this application of a stress, the data written in the plurality of memory cells 10 is not changed. However, substantially, the program data “1” has been programmed to the plurality of memory cells 10 of the unit memory cell group 12 connected to the pair of bit lines BL <0> and bBL <0>, for example.
Following that, when the supply of the first and second power source voltages VDD1 and VDD2 is stopped, the inverted data of the program data written to the plurality of memory cells 10 is erased.
As described above, in the present embodiment, the plurality of memory cells 10 is used to program one-bit program data.
Next, a reading operation of the program data programmed by the above-described program operation will be described.
Here, a reading operation from the unit memory cell group 12 will be described on the assumption that “1” has been programmed to the plurality of memory cells 10 of the unit memory cell group 12 connected to the pair of bit lines BL <0> and bBL <0>.
First, the first power source voltage VDD1 is supplied to the plurality of memory cells 10.
As described above, in each of the memory cells 10, the thresholds of the load transistors L1 and L2 are different. The threshold of the load transistor L2 is higher than the threshold of the load transistor L1.
Due to an imbalance of the thresholds, in an initial state of each of the memory cells 10 at the time when the first power source voltage VDD1 is supplied, an input signal of the second inverter INV2 becomes “1”, and an input signal of the first inverter INV1 becomes “0”. This is a state in which the program data “1” has been programmed to each of the memory cells 10.
Next, the second power source voltage VDD2 is supplied.
Next, the row decoder 30 simultaneously selects and drives two or more word lines of the plurality of word lines WL <0> to WL <m> connected to the unit memory cell group 12 to which the programming has been performed.
The writing/reading circuit 20 reads the program data “1” from the unit memory cell group 12 connected to the pair of bit lines BL <0> and bBL <0> by detecting the signal level of the pair of bit lines BL <0> and bBL <0>.
Here, a stochastic failure of the programming using the NBTI will be described.
As illustrated in a region 100 of
Here, according to the first embodiment, the same program data is programmed to the plurality of memory cells 10 of the unit memory cell group 12, and two or more word lines are simultaneously selected at the time of reading. Accordingly, data to be read is determined by majority of the program data programmed to the selected memory cells 10.
That is, in a certain unit memory cell group 12, even if programming to the memory cell 10 that includes a PMOS transistor having little shift of the threshold has been failed, correct program data can be read if the programming to more than half the number of the memory cells 10 has been succeeded. That is, error correction is performed. Error correction capability becomes higher as the number of simultaneously selected word lines is larger, and a failure probability can be decreased.
Note that, when two word lines are selected, even if the programming to one of selected memory cells 10 has been failed, the correct program data can be read if the programming to the other memory cell 10 has been succeeded, and the failure probability can be decreased to about ½.
Further, the row decoder of the semiconductor memory that programs data using existing NBTI is mainly changed, so that the semiconductor memory of the present embodiment can be easily realized, and addition of other circuits is unnecessary. Further, the area of one memory cell 10 is sufficiently smaller than peripheral circuits of the writing/reading circuit 20, and the like. Therefore, even if the plurality of memory cells 10 is used in order to program one-bit program data, an increase in the area is small. Therefore, the area of the semiconductor memory can be made smaller than a case where an ECC circuit is used.
Note that, in a case where a large area is allowed, an ECC circuit that detects and corrects an error of data read from the plurality of unit memory cell groups 12 may be included, in addition to the configuration of the first embodiment. With the configuration, the failure probability can be further decreased.
Prior to description of a second embodiment, a failure with time that is likely to occur in a memory cell programmed using NBTI, which is known by the inventor, will be described.
a) is a diagram illustrating a change with time of a shift amount ΔVth of a threshold of a PMOS transistor by NBTI, and
As illustrated in
Here, a value obtained by dividing of a shift amount ΔVTH
As illustrated in
Due to such a phenomenon, the program data in the memory cell may be inverted with time.
Further, when the program data is continuously held in the memory cell, the threshold of the other load transistor at an opposite side to a one load transistor, the threshold of which has been shifted by the program, is shifted by NBTI. Due to such a phenomenon, the program data in the memory cell may also be inverted with time.
To handle such a failure with time, in the second embodiment, the following initial test is performed prior to normal use, for example, before shipping.
To be specific, at the time of the initial test, the row decoder 30 selects and drives word lines, the number of which is less than the number of word lines to be selected at the time of reading after the initial test. That is, in the second embodiment, the function of the row decoder 30 is different from the first embodiment. Other configurations are the same as that of the first embodiment, and thus illustration and description are omitted.
Here, description will be given on the assumption that the row decoder 30 selects two word lines at the time of the initial test, and selects three or more word lines at the time of reading.
Before the initial test, program data is programmed to a plurality of memory cells 10 in a similar procedure to the first embodiment.
At the initial test, a writing/reading circuit 20 reads the program data from two memory cells 10 selected in the two word lines in a unit memory cell group 12. When at least one of the two selected memory cells 10 has a failure, data different from the program data is read.
Therefore, for example, an external test circuit determines whether the read data coincides with the programmed program data, and detects a failure when the read data does not coincide. The two memory cells 10 from which the failure has been detected are excluded so that they are not used in normal use.
Then, the above procedure is performed with respect to other memory cells 10.
As described above, according to the present embodiment, the number of simultaneously selected word lines is small at the initial test, and thus error correction capability is low. Therefore, when there is a failure with time, error correction cannot be made and the failure can be detected. Therefore, the memory cells 10 in which a failure with time has occurred can be excluded.
Further, at the time of reading after the initial test, the number of simultaneously selected word lines is large, and thus the error correction capability by majority determination is high. Therefore, even if a failure with time occurs in a memory cell 10 that has not had a failure with time at the time of the initial test, error correction can be made, and correct program data can be read.
A third embodiment handles a failure with time by a method different from the second embodiment.
A writing/reading circuit 20 writes inverted data of program data to a memory cell 10 at the time of programming, and reads program data from a memory cell 10 at the time of reading.
The inverted data generation circuit 40 generates inverted data of read program data. The read program data is also referred to as recall data.
After the reading, the writing/reading circuit 20 writes the inverted data of the read program data, which has been generated in the inverted data generation circuit 40, to the memory cell 10 from which the program data has been read.
When performing reading after writing the inverted data of the read program data, the writing/reading circuit 20 may just output inverted data of the read data. Alternatively, if supply of first and second power source voltages VDD1 and VDD2 is stopped once and is started again, the inverted data of the read program data is erased, and the memory cell 10 becomes in a state where the program data has been programmed. Therefore, the writing/reading circuit 20 can read the program data.
As described above, according to the present embodiment, after the reading, the inverted data of the read program data is written to the memory cell 10 from which the program data has been read. Therefore, in a load transistor in which a threshold is shifted by NBTI, the threshold is further shifted, and a threshold is not shifted in a load transistor at an opposite side. That is, there is no decrease with time of the shift amount of the threshold, and data retention is improved. Therefore, a possibility of a failure with time can be decreased.
Note that majority determination may be performed by combining of the third embodiment with the first or the second embodiment.
Prior to description of a fourth embodiment, overwriting of a memory cell 10 programmed using NBTI, which is known by the inventor, will be described.
While the semiconductor memory of the first embodiment is OTP that can be basically programmed only one time, if the semiconductor memory can be overwritten with program data, a multi time programmable (MTP) ROM that can be programmed a plurality of times can be realized.
However, the program data is programmed by shifting of a threshold of one load transistor in a memory cell 10. Thus, to perform overwriting with different program data, it is necessary to shift a threshold of the other load transistor until exceeding the threshold of the one load transistor. Therefore, when the threshold of the other load transistor does not exceed the threshold of the one load transistor, the overwriting is failed.
To handle the above failure, in the fourth embodiment, a shift amount of a threshold by NBTI is made smaller, and the programming is performed in a weak manner. The configuration of the semiconductor memory is the same as that of the first embodiment of
As described in the first embodiment, a threshold of a load transistor of either a first or second inverter INV1 or INV2 is shifted by being applied a stress according to inverted data of written program data.
In the present embodiment, a stress is applied such that the shift amount of the threshold of the load transistor becomes smaller than a maximum shift amount of the threshold of the load transistor. As the stress, a first power source voltage VDD1 is applied to the memory cell 10 for a fixed period. To make the shift amount of the threshold small, the first power source voltage VDD1 may be made smaller than that in the first embodiment, and the fixed period may be shorter than that in the first embodiment.
Accordingly, when overwriting is performed with different program data, a threshold of the other load transistor can be made larger than the threshold of the one load transistor, the threshold of which has been first shifted. Therefore, the program data can be programmed to the same memory cell 10 a plurality of times.
Here, in the present embodiment, the shift amount of the threshold is smaller than that in the first embodiment, and thus the number of memory cells 10, programming to which is failed, may be increased.
In
As described above, according to the present embodiment, a stress is applied such that the shift amount of the threshold of the load transistor becomes smaller than the maximum shift amount of the load transistor. Therefore, the program data can be programmed in the same memory cell 10 a plurality of times. That is, the semiconductor memory can be used as MTP.
Note that the fourth embodiment may be combined with the second embodiment.
A fifth embodiment also enables easy overwriting. However, the fifth embodiment is different from the fourth embodiment, and overwriting is not performed when read program data is equal to program data to overwrite.
Each of the switch elements SW1 to SWn short-circuits between a power source and a corresponding memory cell 10 at the time of ON, and releases between the power source and the corresponding memory cell 10 at the time of OFF. Each of the switch elements SW1 to SWn is provided at every plurality of memory cells 10 connected to the same pair of bit lines. Each of the switch elements SW1 to SWn is made of a PMOS transistor. That is, the PMOS transistor as each of the switch elements SW1 to SWn includes a source to which a first power source voltage VDD1 is supplied and a drain commonly connected to sources of load transistors L1 and L2 of each memory cell 10 through a power line.
Each of the switch elements SW1 to SWn may be provided at each memory cell 10.
The writing/reading circuit 20a writes inverted data of program data to the memory cell 10 at the time of first programming, and reads the program data from the memory cell 10 at the time of reading.
When program data DR read from the memory cell 10 to be overwritten is equal to program data DW to overwrite at the time of overwriting, the writing/reading circuit 20a switches a switch element corresponding to the memory cell 10 to be overwritten to OFF. Accordingly, shift of a threshold by NBTI does not occur. When the program data DR read from the memory cell 10 to be overwritten is different from the program data DW to overwrite, the writing/reading circuit 20a switches the switch element corresponding to the memory cell 10 to be overwritten to ON, and writes inverted data DOR of the program data DW to overwrite to the memory cell 10 to be overwritten. Following that, a stress is applied to the memory cell 10 to be overwritten, so that the memory cell 10 is overwritten (programmed) with the program data DW to overwrite.
The writing/reading circuit 20a inverts a write enable signal WE that is an exclusive OR of the program data DR read from the memory cell 10 to be overwritten and the program data DW to overwrite, and supplies obtained inverted signal/WE to the gate of the PMOS transistor that is a switch element corresponding to the memory cell 10 to be overwritten.
As described above, according to the present embodiment, when the program data DR read from the memory cell 10 to be overwritten is equal to the program data DW to overwrite, the switch element is switched to OFF. Accordingly, a wasted increase in the threshold of the load transistor in the memory cell 10 to be overwritten can be prevented, and thus the overwriting can be more easily performed in the overwriting of the next time.
In contrast, in a semiconductor memory that programs data using existing NBTI, when the memory cell 10 to be overwritten, to which the program data “1” has been programmed, is overwritten (programmed) with program data “1” to overwrite, inverted data “0” is written and a stress is applied. Then, in one load transistor, the threshold that has already been increased is further increased. This is a wasted increase of the threshold, and thus a possibility of failing the overwriting of the next time becomes higher regarding the memory cell 10.
Further, as described in the second embodiment, when the program data is continuously held in the memory cell 10, the threshold of the load transistor at an opposite side to the load transistor, the threshold of which has been shifted by programming, is shifted by NBTI.
However, in the present embodiment, supply of the first power source voltage VDD1 is stopped in a predetermined case, and thus the threshold of the load transistor at an opposite side is not shifted at this time. Therefore, a failure with time in which the program data is inverted can be prevented.
Note that majority determination may be performed by combining of the fifth embodiment with the first or the second embodiment. In this case, each of the plurality of switch elements SW1 to SWn is provided at each unit memory cell group 12 that is an object to be written the same data.
Further, when weak writing is performed by combining of the fifth embodiment with the fourth embodiment, the overwriting can be more easily performed.
Prior to description of a sixth embodiment, MTP using OTP, which is known by the inventor, will be described.
a) is a diagram describing an operation of MTP using OTP, which can define initial data, and
As illustrated in
When fuse data “1” has been programmed, each of the fuse regions F1 to F4 indicates program data has been programmed to corresponding data regions, and when the fuse data “1” is not programmed, that is, when it is the initial data (=“0”), each of the fuse regions F1 to F4 indicates the program data is not programmed to the corresponding data regions.
The programming is performed according to a predetermined program order. The program order is an order of the fuse region F1, F2, F3, and F4, for example.
At the time of first programming, first, the fuse data “1” is programmed to the fuse region F1, and desired program data is programmed to the data region D1 corresponding to the fuse region F1, according to the program order.
At the time of overwriting, the fuse data “1” is programmed to the fuse region F2, and desired program data is programmed to the data region D2 corresponding to the fuse region F2, according to the program order. In the example of
At the time of reading, the data is read from the fuse regions F1 to F4 in the program order, and the fuse region F3 that is in the last order of the fuse regions F1, F2, and F3 from which the fuse data “1” has been read is identified as a fuse region in use. Then, the data is read from the data region D3 in use corresponding to the fuse region F3 in use.
In this way, MTP can be configured from OTP that can define the initial data.
In contrast, as illustrated in
A semiconductor memory that programs data using NBTI is OTP that cannot define the initial data, and thus cannot configure MTP that identifies the data region in use with the data of the fuse region.
Therefore, in the sixth embodiment, the MTP is configured without using a fuse region.
The writing/reading circuit 20b reads data for each of memory cell groups 14-1 to 14-m at the time of reading according to a predetermined program order. Each of the memory cell groups 14-1 to 14-m is made of a plurality of memory cells 10 connected to one word line. The program order is, for example, an order of the memory cell groups 14-1, 14-2, . . . , 14-m.
The ECC circuit 50 checks an error of the data read for each of the memory cell groups 14-1 to 14-m. A method of checking the error may be any method, and a known error check method may be employed.
The error data generation circuit 51 generates error data that is determined as an error by the ECC circuit 50.
The writing/reading circuit 20b identifies a memory cell group, from which data that is not determined as an error by the ECC circuit 50 is first read, as a memory cell group in use, and outputs the first read data that is not determined as an error, as read data.
The writing/reading circuit 20b writes, at the time of first programming, inverted data of program data to the memory cell group 14-1 in the first order according to the program order.
At the time of overwriting, the writing/reading circuit 20b writes inverted data of the error data to the memory cell group in use, and writes inverted data of program data to overwrite to a memory cell group in the next order of the memory cell group in use according to the program order. Following that, a stress is applied, so that the memory cell group in use is overwritten (programmed) with the error data, and the memory cell group in the next order of the memory cell group in use is overwritten (programmed) with the program data.
As described above, the data is read for each of the memory cell groups 14-1 to 14-4 according to the program order at the time of reading. The data read from each of the memory cell groups 14-1 and 14-2 is the error data, and thus is determined as an error by the ECC circuit 50. The data read from the memory cell group 14-3 is not determined as an error by the ECC circuit 50. Therefore, the memory cell group 14-3 is identified as the memory cell group in use, and the data read from the memory cell group 14-3 is output.
When overwriting is performed under this state, the inverted data of the error data is written to the memory cell group 14-3 in use, and the inverted data of the program data to overwrite is written to the memory cell group 14-4 in the next order of the memory cell group 14-3 in use.
As described above, according to the present embodiment, the inverted data of the error data is written to the memory cell group in use at the time of overwriting, so that the error data is programmed. Therefore, the memory cell group in use can be identified using the error data, without using a fuse region. Therefore, the MTP can be configured.
Note that, the sixth embodiment may be combined with the first or the second embodiment, and bits of each of the memory cell groups 14-1 to 14-m may be configured from a plurality of memory cells 10 connected to a set of a pair of bit lines and majority determination may be performed for each bit. Accordingly, the failure probability can be decreased.
Further, the sixth embodiment may be combined with the fourth and/or the fifth embodiment(s), and the overwriting of the error data may be able to be easily performed.
In a seventh embodiment, MTP is configured using fuse regions having a plurality of bits, which is different from the sixth embodiment.
Each of a plurality of fuse regions F1 to Fm is made of a plurality of memory cells 10 connected to the same word line. The plurality of fuse regions F1 to Fm is arranged in a bit line direction. Each of a plurality of data regions D1 to Dm is made of a plurality of memory cells 10 connected to the same word line. The plurality of data regions D1 to Dm is arranged in a bit line direction. Corresponding fuse regions and data regions are connected to the same word line.
The writing/reading circuit 20c reads, at the time of reading, data from the plurality of fuse regions F1 to Fm in a predetermined program order, identifies a fuse region in the last order of the fuse regions from which predetermined fuse data has been read, as a fuse region in use, and reads data from a data region in use corresponding to the fuse region in use, of the plurality of data regions D1 to Dm.
The program order is an order of the fuse regions F1, F2, . . . , Fm, for example.
The writing/reading circuit 20c writes, at the time of first programming, inverted data of the fuse data to the fuse region F1 in the first order, and writes inverted data of program data to overwrite to the data region D1 corresponding to the fuse region F1 in the first order, according to the program order.
The writing/reading circuit 20c writes, at the time of overwriting, the inverted data of the fuse data in a fuse region in the next order of the fuse region in use, and writes the inverted data of the program data to overwrite to a data region corresponding to the fuse region in the next order, according to the program order. Following that, a stress is applied, so that the fuse data is programmed to the fuse region in the next order of the fuse region in use, and the data region corresponding to the fuse region in the next order is overwritten (programmed) with the program data.
As described above, the writing/reading circuit 20c reads the data from the fuse regions F1 to F4 in the predetermined program order at the time of reading. The data of the fuse region F4 is undefined, and thus is random data. A probability of the data of the fuse region F4 being equal to the fuse data becomes lower as the bit number is larger.
The writing/reading circuit 20c identifies the fuse region in the last order of the fuse regions F1 to F3, from which the fuse data has been read, as the fuse region F3 in use. The writing/reading circuit 20c then reads the data from the data region D3 in use corresponding to the fuse region F3 in use, of the data regions D1 to D4.
When overwriting is performed under this state, the writing/reading circuit 20c writes inverted data of the fuse data to the fuse region F4 in the next order of the fuse region F3 in use, and writes inverted data of the program data to overwrite to the data region D4 corresponding to the fuse region F4 in the next order, according to the program order.
The fuse data may just be distinct from the random data. Therefore, the fuse data may include not only the same logical value in all bits, like the example of
As described above, according to the present embodiment, the fuse data is programmed to the fuse region, where the plurality of memory cells 10 is treated as one fuse region. Accordingly, the initial data of the fuse region can be defined to random data. Therefore, the data region in use can be expressed in a signal state of the fuse region, and thus the MTP can be configured.
Note that the seventh embodiment may be combined with the first or the second embodiment, bits of each of the fuse regions may be configured from a plurality of memory cells 10 connected to a set of a pair of bit lines, bits of each of the data regions may be configured from a plurality of memory cells 10 connected to a set of a pair of bit lines, and majority determination may be performed for each bit. Accordingly, the failure probability can be decreased.
Further, the seventh embodiment may be combined with the third embodiment.
In an eighth embodiment, initial data of a fuse region is defined and MTP is configured, which is different from the sixth and seventh embodiments.
Each of the plurality of fuse regions F1 to Fm is made of the memory cell 10a. The plurality of fuse regions F1 to Fm is arranged in a bit line direction. Each of a plurality of data regions D1 to Dm is made of a plurality of memory cells 10 connected to the same word line. The plurality of data regions D1 to Dm is arranged in the bit line direction. Corresponding fuse region and data regions are connected to the same word line.
The writing/reading circuit 20d reads, at the time of reading, data from the plurality of fuse regions F1 to Fm in a predetermined program order, identifies a fuse region in the last order of the fuse regions, from which predetermined fuse data has been read, as a fuse region in use, and reads data from a data region in use corresponding to the fuse region in use, of the plurality of data regions D1 to Dm.
The program order is, for example, an order of the fuse regions F1, F2, Fm.
The writing/reading circuit 20d writes, at the time of first programming, inverted data of the fuse data to the fuse region F1 in the first order, and writes inverted data of program data to overwrite to the data region D1 corresponding to the fuse region F1 in the first order, according to the program order.
The writing/reading circuit 20d writes, at the time of overwriting, the inverted data of the fuse data to a fuse region in the next order of the fuse region in use in order to program the fuse data, and writes the inverted data of the program data to overwrite to a data region corresponding to the fuse region in the next order in order to program the program data to overwrite, according to the program order.
a) is a circuit diagram of the memory cell 10a of each of the fuse regions F1 to Fm according to the eighth embodiment, and
First and second inverters INV1 and INV2 of the memory cell 10a are configured in an imbalance manner so that inverted data of fuse data is read when the fuse data has not been programmed. Accordingly, initial data can be defined to the inverted data of the fuse data.
Similarly to
A load transistor L2 includes a source to which the first power source voltage VDD1 is supplied. A drive transistor D2 includes a gate connected to a gate of the load transistor L2, a drain connected to a drain of the load transistor L2, and a source to which the ground voltage VSS is supplied.
The capacitive element C1 is connected between the gates of the load transistor L2 and the drive transistor D2, and the ground voltage VSS. The capacitive element C1 is made of an NMOS transistor to which a source and a drain are connected.
As illustrated in
As described above, in this example, the initial data is “0”.
When the initial data is set to “1”, the capacitive element C1 may just be connected between the gates of the load transistor L1 and the drive transistor D1, and the ground voltage VSS.
a) is another circuit diagram of the memory cell 10a of each of the fuse regions F1 to Fm according to the eighth embodiment, and
The capacitive element C2 is connected between the gates of the load transistor L1 and the drive transistor D1, and the first power source voltage VDD1. The capacitive element C2 is made of a PMOS transistor to which a source and a drain are connected.
As illustrated in
As described above, in this example, the initial data is also “0”.
When the initial data is set to “1”, the capacitive element C2 may just be connected between the gates of the load transistor L2 and the drive transistor D2, and the first power source voltage VDD1.
As described above, since the initial data of the memory cell 10a of each of the fuse regions F1 to Fm is “0”, the MTP can be realized by the above-described method with reference to
When the fuse data “1” that indicates completion of programming is programmed to the memory cell 10a of each of the fuse regions F1 to Fm, a threshold of the load transistor L2 may just be shifted using NBTI.
As described above, according to the present embodiment, the first and second inverters INV1 and INV2 of the memory cell 10a of each of the fuse regions F1 to Fm are configured in an imbalance manner so that the inverted data of the fuse data is read when the fuse data has not been programmed. Therefore, the initial data of the fuse region can be defined to the inverted data of the fuse data. Therefore, the data region in use can be expressed in a signal state of the fuse region, and thus the MTP can be configured.
Note that the eighth embodiment may be combined with the first or the second embodiment, the fuse region may be configured from a plurality of memory cells 10a connected to a set of a pair of bit lines, bits of each of the data regions is configured from a plurality of memory cells 10 connected to a set of a pair of bit lines, and majority determination may be performed for each bit. Accordingly, the failure probability can be decreased.
Further, the eighth embodiment may be combined with the third embodiment.
The first and second inverters INV1 and INV2 may be configured in an imbalance manner as follows.
a) is a circuit diagram of a memory cell 10a of each of fuse regions F1 to Fm according to a modification of the eighth embodiment, and
As illustrated in
From this, as illustrated in
Note that, when the initial data is set reverse to the example of
Further, the load transistor L1 and the load transistor L2 may have the same device structure like an existing semiconductor memory, and the thresholds may be made different using NBTI in advance.
Further, by making of channel widths W and/or channel lengths L of the load transistors L1 and L2 different, the first and second inverters INV1 and INV2 may be configured in an imbalance manner. Alternatively, by making of channel widths W and/or channel lengths L of drive transistors D1 and D2 different, the first and second inverters INV1 and INV2 may be configured in an imbalance manner.
Further, the first and second inverters INV1 and INV2 may be configured in an imbalance manner by making of parasitic resistance (wiring resistance or the like) of current paths of the first and second inverters INV1 and INV2 different. That is, the parasitic resistance between a source of the load transistor L1 and a source of the drive transistor D1 and the parasitic resistance between a source of the load transistor L2 and a source of the drive transistor D2 may be made different.
With these modifications, similar effects to the eighth embodiment can be obtained.
The present embodiment is different from the eighth embodiment in that a PMOS transistor PM1 is provided between sources of load transistors L1 and L2 in memory cells 10a of fuse regions F1 to Fm and a first power source voltage VDD1.
Other configurations are the same as those in the eighth embodiment of
a) and 20(b) are diagrams illustrating a configuration of a fuse region F1 of a semiconductor memory according to the ninth embodiment.
The fuse region F1 is made of four memory cells 10a, as an example. These four memory cells 10a are connected to the same pair of bit lines, and majority determination can be performed, similarly to the first embodiment.
The sources of load transistors L1 and L2 of the four memory cells 10a are mutually connected. The semiconductor memory includes the PMOS transistor PM1 connected between the sources of the load transistors L1 and L2 of corresponding four memory cells 10a and the first power source voltage VDD1.
Note that, for clarifying the description, illustration of a capacitive element C1 is omitted in each of the memory cells 10a.
Other fuse regions F2 to Fm have similar configurations. That is, the semiconductor memory includes a plurality of PMOS transistors PM1. Each of the PMOS transistors PM1 is connected between the sources of the load transistors L1 and L2 of corresponding memory cells 10a and the first power source voltage VDD1.
Note that each of the fuse regions F1 to Fm may be made of one memory cell 10a, similarly to the eighth embodiment.
The writing/reading circuit 20d turns ON the PMOS transistor PM1 corresponding to a fuse region in the next order to which inverted data of the fuse data is written at the time of overwriting, and shifts a threshold of the PMOS transistor PM1 using NBTI accordingly, in addition to the function described in the eighth embodiment.
Accordingly, as illustrated in
Further, the writing/reading circuit 20d turns the plurality of PMOS transistors PM1 ON at the time of reading, and then reads the data from the plurality of fuse regions F1 to Fm in a program order.
a) is a characteristic diagram of the memory cell 10a in an initial state of
In the initial state, the threshold of the PMOS transistor PM1 is not shifted, and thus the PMOS transistor PM1 is turned ON at a high speed. Therefore, ramp-up of the first power source voltage VDD1 supplied to the sources of the load transistors L1 and L2 is fast. Therefore, as illustrated in
After programming, the threshold of the PMOS transistor PM1 has been shifted, and thus the PMOS transistor PM1 is turned ON from the initial state at a low speed. Therefore, the ramp-up of the first power source voltage VDD1 to be supplied to the sources of the load transistors L1 and L2 is slower than the initial state. Therefore, as illustrated in
a) illustrates a result of the Monte Carlo analysis of data read from the memory cell 10a in the initial state, and
The horizontal axis of
As illustrated in
As illustrated in
As described above, according to the present embodiment, the PMOS transistor PM1 corresponding to the fuse region to which the inverted data of the fuse data is written is turned ON at the time of overwriting, and the threshold of the PMOS transistor PM1 is shifted, accordingly. Therefore, the ramp-up of the first power source voltage VDD1 supplied to the sources of the load transistors L1 and L2 can be made slow at the time of reading, and thus correct program data can be more reliably read than the eighth embodiment.
According to the embodiments described above, failure due to programming of data using NBTI can be handled.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
2013-239088 | Nov 2013 | JP | national |