(57)【要約】【課題】ＮＢＴＩを利用してデータをプログラムすることによる不具合に対処する。【解決手段】実施形態によれば、半導体記憶装置は、複数のワード線と、複数組のビット線対と、複数のメモリセルと、書き込み／読み出し回路と、ワード線選択回路と、を備える。前記複数のメモリセルは、プログラムデータの反転データが書き込まれた状態でストレスが加えられて前記プログラムデータがプログラムされる。前記書き込み／読み出し回路は、プログラム時に、一組のビット線対に接続された複数のメモリセルからなる単位メモリセル群に対して同一の前記プログラムデータの反転データを書き込み、読み出し時に、当該ビット線対の信号レベルを検知することで、前記単位メモリセル群からデータを読み出す。前記ワード線選択回路は、前記読み出し時に、前記単位メモリセル群に接続された前記複数のワード線のうち２以上のワード線を同時に選択して駆動する。【選択図】図１
2015099624.tif 000002
【特許請求の範囲】
【請求項１】
複数のワード線と、
前記複数のワード線に交差する複数組のビット線対と、
前記複数のワード線と前記複数組のビット線対のそれぞれとの交差部に設けられ、プログラムデータの反転データが書き込まれた状態でストレスが加えられて前記プログラムデータがプログラムされる複数のメモリセルと、
プログラム時に、一組のビット線対に接続された複数のメモリセルからなる単位メモリセル群に対して同一の前記プログラムデータの反転データを書き込み、読み出し時に、当該ビット線対の信号レベルを検知することで、当該ビット線対に接続された前記単位メモリセル群からデータを読み出す、書き込み／読み出し回路と、
前記読み出し時に、プログラムを行った前記単位メモリセル群に接続された前記複数のワード線のうち２以上のワード線を同時に選択して駆動するワード線選択回路と、を備え、
前記ワード線選択回路は、初期テスト時において、前記読み出し時に選択する前記ワード線の数より少ない数の前記ワード線を同時に選択して駆動し、
前記各メモリセルは、ＭＯＳトランジスタで構成されると共にクロスカップル接続された第１のインバータと第２のインバータとを含み、
書き込まれた前記プログラムデータの反転データに応じて、前記第１及び第２のインバータの何れかにおける前記ＭＯＳトランジスタのしきい値は、前記ストレスが加えられることによりシフトし、
前記ＭＯＳトランジスタのしきい値のシフト量が当該ＭＯＳトランジスタのしきい値の最大のシフト量より小さくなるように、前記ストレスが加えられる
ことを特徴とする半導体記憶装置。
【請求項２】
複数のワード線と、
前記複数のワード線に交差する複数組のビット線対と、
前記複数のワード線と前記複数組のビット線対のそれぞれとの交差部に設けられ、プログラムデータの反転データが書き込まれた状態でストレスが加えられて前記プログラムデータがプログラムされる複数のメモリセルと、
プログラム時に、一組のビット線対に接続された複数のメモリセルからなる単位メモリセル群に対して同一の前記プログラムデータの反転データを書き込み、読み出し時に、当該ビット線対の信号レベルを検知することで、当該ビット線対に接続された前記単位メモリセル群からデータを読み出す、書き込み／読み出し回路と、
前記読み出し時に、プログラムを行った前記単位メモリセル群に接続された前記複数のワード線のうち２以上のワード線を同時に選択して駆動するワード線選択回路と、
を備えることを特徴とする半導体記憶装置。
【請求項３】
前記ワード線選択回路は、初期テスト時において、前記読み出し時に選択する前記ワード線の数より少ない数の前記ワード線を同時に選択して駆動する
ことを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
前記各メモリセルは、ＭＯＳトランジスタで構成されると共にクロスカップル接続された第１のインバータと第２のインバータとを含み、
書き込まれた前記プログラムデータの反転データに応じて、前記第１及び第２のインバータの何れかにおける前記ＭＯＳトランジスタのしきい値は、前記ストレスが加えられることによりシフトし、
前記ＭＯＳトランジスタのしきい値のシフト量が当該ＭＯＳトランジスタのしきい値の最大のシフト量より小さくなるように、前記ストレスが加えられる
ことを特徴とする請求項２に記載の半導体記憶装置。
【請求項５】
複数のワード線と、
前記複数のワード線に交差する複数組のビット線対と、
前記複数のワード線と前記複数組のビット線対のそれぞれとの交差部に設けられ、プログラムデータの反転データが書き込まれた状態でストレスが加えられて前記プログラムデータがプログラムされる複数のメモリセルと、
プログラム時に、前記メモリセルに対して前記プログラムデータの反転データを書き込み、読み出し時に、前記メモリセルから前記プログラムデータを読み出す、書き込み／読み出し回路と、
読み出された前記プログラムデータの反転データを生成する反転データ生成回路と、を備え、
前記書き込み／読み出し回路は、前記読み出しの後、前記プログラムデータが読み出された前記メモリセルに対して、読み出された前記プログラムデータの反転データを書き込む
ことを特徴とする半導体記憶装置。
【請求項６】
複数のワード線と、
前記複数のワード線に交差する複数組のビット線対と、
前記複数のワード線と前記複数組のビット線対のそれぞれとの交差部に設けられ、プログラムデータの反転データが書き込まれた状態でストレスが加えられて前記プログラムデータがプログラムされる複数のメモリセルと、
オンの時に電源と対応するメモリセルとの間を短絡し、オフの時に前記電源と対応するメモリセルとの間を解放する複数のスイッチ素子と、
上書き時に、上書き対象のメモリセルから読み出した前記プログラムデータが上書きするプログラムデータと等しい場合、前記上書き対象のメモリセルに対応した前記スイッチ素子をオフに切り替え、前記上書き対象のメモリセルから読み出した前記プログラムデータが前記上書きするプログラムデータと異なる場合、前記上書き対象のメモリセルに対応した前記スイッチ素子をオンに切り替えると共に前記上書きするプログラムデータの反転データを前記上書き対象のメモリセルに書き込む、書き込み／読み出し回路と、
を備えることを特徴とする半導体記憶装置。
【請求項７】
複数のワード線と、
前記複数のワード線に交差する複数組のビット線対と、
前記複数のワード線と前記複数組のビット線対のそれぞれとの交差部に設けられ、プログラムデータの反転データが書き込まれた状態でストレスが加えられて前記プログラムデータがプログラムされる複数のメモリセルと、
読み出し時に、所定のプログラム順序に従い複数のメモリセルからなるメモリセル群毎にデータを読み出す書き込み／読み出し回路と、
前記メモリセル群毎に読み出されたデータのエラーをチェックするエラーチェック回路と、
前記エラーチェック回路でエラーと判定されるエラーデータを生成するエラーデータ生成回路と、を備え、
前記書き込み／読み出し回路は、
前記読み出し時に、前記エラーチェック回路でエラーと判定されないデータが最初に読み出されたメモリセル群を使用中のメモリセル群と特定し、最初に読み出された前記エラーと判定されないデータを読み出しデータとして出力し、
上書き時に、前記使用中のメモリセル群に前記エラーデータの反転データを書き込むと共に、前記プログラム順序に従い、前記使用中のメモリセル群の次の順序のメモリセル群に、上書きするプログラムデータの反転データを書き込む、
ことを特徴とする半導体記憶装置。
【請求項８】
複数のワード線と、
前記複数のワード線に交差する複数組のビット線対と、
前記複数のワード線と前記複数組のビット線対のそれぞれとの交差部に設けられ、プログラムデータの反転データが書き込まれた状態でストレスが加えられて前記プログラムデータがプログラムされる複数のメモリセルと、
読み出し時に、それぞれ複数のメモリセルからなる複数のヒューズ領域から所定のプログラム順序でデータを読み出し、所定のヒューズデータが読み出されたヒューズ領域のうち最後の順序のものを使用中のヒューズ領域であると特定し、それぞれ複数のメモリセルからなる複数のデータ領域のうち前記使用中のヒューズ領域に対応する使用中のデータ領域からデータを読み出し、上書き時に、前記プログラム順序に従い、前記使用中のヒューズ領域の次の順序のヒューズ領域に前記ヒューズデータの反転データを書き込むと共に、当該次の順序のヒューズ領域に対応したデータ領域に、上書きするプログラムデータの反転データを書き込む、書き込み／読み出し回路と、
を備えることを特徴とする半導体記憶装置。
【請求項９】
複数のワード線と、
前記複数のワード線に交差する複数組のビット線対と、
前記複数のワード線と前記複数組のビット線対のそれぞれとの交差部に設けられ、プログラムデータの反転データが書き込まれた状態でストレスが加えられて前記プログラムデータがプログラムされる複数のメモリセルと、
読み出し時に、それぞれ前記メモリセルを含む複数のヒューズ領域から所定のプログラム順序でデータを読み出し、所定のヒューズデータが読み出されたヒューズ領域のうち最後の順序のものを使用中のヒューズ領域であると特定し、それぞれ複数の前記メモリセルからなる複数のデータ領域のうち前記使用中のヒューズ領域に対応する使用中のデータ領域からデータを読み出し、上書き時に、前記プログラム順序に従い、前記使用中のヒューズ領域の次の順序のヒューズ領域に、前記ヒューズデータをプログラムするために当該ヒューズデータの反転データを書き込むと共に、当該次の順序のヒューズ領域に対応したデータ領域に、上書きするプログラムデータをプログラムするために当該上書きするプログラムデータの反転データを書き込む、書き込み／読み出し回路と、を備え、
前記各メモリセルは、クロスカップル接続された第１のインバータと第２のインバータとを含み、
前記各ヒューズ領域における前記メモリセルの前記第１及び第２のインバータは、前記ヒューズデータがプログラムされていない時に当該ヒューズデータの反転データが読み出されるように、アンバランスに構成されている
ことを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
従来、プログラマブルＲＯＭとして、データのプログラムが１回だけ可能なＯＴＰ（One Time Programmable ROM）が知られている。ＯＴＰの一例としては、ＳＲＡＭ（Static RAM）を構成する電界効果トランジスタのしきい値をＮＢＴＩ（Negative Bias Threshold Instability）により変動させ、これによりデータをプログラムする半導体記憶装置が知られている。
【０００３】
この半導体記憶装置においては、例えば、プログラムが確率的に失敗するなど、ＮＢＴＩを利用してデータをプログラムすることによる不具合がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−９６８２号公報
【特許文献２】米国特許第７７６０５３７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、ＮＢＴＩを利用してデータをプログラムすることによる不具合に対処できる半導体記憶装置を提供することである。
【課題を解決するための手段】
【０００６】
実施形態によれば、半導体記憶装置は、複数のワード線と、前記複数のワード線に交差する複数組のビット線対と、複数のメモリセルと、書き込み／読み出し回路と、ワード線選択回路と、を備える。前記複数のメモリセルは、前記複数のワード線と前記複数組のビット線対のそれぞれとの交差部に設けられ、プログラムデータの反転データが書き込まれた状態でストレスが加えられて前記プログラムデータがプログラムされる。前記書き込み／読み出し回路は、プログラム時に、一組のビット線対に接続された複数のメモリセルからなる単位メモリセル群に対して同一の前記プログラムデータの反転データを書き込み、読み出し時に、当該ビット線対の信号レベルを検知することで、当該ビット線対に接続された前記単位メモリセル群からデータを読み出す。前記ワード線選択回路は、前記読み出し時に、プログラムを行った前記単位メモリセル群に接続された前記複数のワード線のうち２以上のワード線を同時に選択して駆動する。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。
【図２】第１の実施形態に係るメモリセルの回路図である。
【図３】第１の実施形態に係るローデコーダの回路図である。
【図４】ＰＭＯＳトランジスタにストレスを加えた場合のしきい値のシフト量ΔＶｔｈと頻度との関係を示す図である。
【図５】（ａ）は、ＮＢＴＩによるＰＭＯＳトランジスタのしきい値のシフト量ΔＶｔｈの経時変化を示す図であり、（ｂ）は、ＰＭＯＳトランジスタのリカバリー比のゲート電圧依存特性を示す図である。
【図６】第３の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。
【図７】第１の実施形態の半導体記憶装置にプログラムデータを上書きした結果を示す図である。
【図８】第４の実施形態に係る半導体記憶装置にプログラムされたプログラムデータを説明する図である。
【図９】第４の実施形態に係る半導体記憶装置の読み出し失敗確率と多数決数との関係を示す図である。
【図１０】第５の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。
【図１１】（ａ）は、イニシャルデータを規定できるＯＴＰを用いたＭＴＰの動作を説明する図であり、（ｂ）は、イニシャルデータを規定できないＯＴＰを用いたＭＴＰの動作を説明する図である。
【図１２】第６の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。
【図１３】第６の実施形態に係る半導体記憶装置の動作を説明する図である。
【図１４】第７の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。
【図１５】第７の実施形態に係る半導体記憶装置の動作を説明する図である。
【図１６】第８の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。
【図１７】（ａ）は、第８の実施形態に係る各ヒューズ領域のメモリセルの回路図であり、（ｂ）は、（ａ）のメモリセルの電源投入時の特性図である。
【図１８】（ａ）は、第８の実施形態に係る各ヒューズ領域のメモリセルの他の回路図であり、（ｂ）は、（ａ）のメモリセルの電源投入時の特性図である。
【図１９】（ａ）は、第８の実施形態の変形例に係る各ヒューズ領域のメモリセルの回路図であり、（ｂ）は、（ａ）のメモリセルの電源投入時の特性図である。
【図２０】（ａ），（ｂ）は、第９の実施形態に係る半導体記憶装置のヒューズ領域の構成を示す図である。
【図２１】（ａ）は、図２０（ａ）の初期状態のメモリセルの電源投入時の特性図であり、（ｂ）は、図２０（ｂ）のプログラム後のメモリセルの電源投入時の特性図である。
【図２２】（ａ）は、初期状態のメモリセルから読み出されるデータのモンテカルロ解析結果を示し、（ｂ）は、プログラム後のメモリセルから読み出されるデータのモンテカルロ解析結果を示す。
【発明を実施するための形態】
【０００８】
以下に、図面を参照して本発明の実施形態について説明する。これらの実施形態は、本発明を限定するものではない。
【０００９】
（第１の実施形態）
第１の実施形態は、読み出し時に、複数のワード線を同時に選択することを特徴の１つとする。
【００１０】
図１は、第１の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。図１に示すように、半導体記憶装置は、複数のワード線ＷＬ＜０＞〜ＷＬ＜ｍ＞（ｍは正の整数）と、複数のワード線に交差する複数組のビット線対ＢＬ＜０＞，ｂＢＬ＜０＞〜ＢＬ＜ｎ＞，ｂＢＬ＜ｎ＞（ｎは正の整数）と、複数のメモリセル１０と、書き込み／読み出し回路２０と、ローデコーダ（ワード線選択回路）３０と、を備える。
【００１１】
複数のメモリセル１０は、複数のワード線ＷＬ＜０＞〜ＷＬ＜ｍ＞と複数組のビット線対ＢＬ＜０＞，ｂＢＬ＜０＞〜ＢＬ＜ｎ＞，ｂＢＬ＜ｎ＞のそれぞれとの交差部に設けられている。つまり、複数のメモリセル１０は、ワード線方向およびビット線方向にマトリックス状に配置され、メモリセルアレイ１１を構成している。後述するように、複数のメモリセル１０は、プログラムデータの反転データが書き込まれた状態でストレスが加えられてプログラムデータがプログラムされる。複数のメモリセル１０には、第１の電源電圧ＶＤＤ１が供給される。
【００１２】
書き込み／読み出し回路２０は、プログラム時に、アドレス信号に応じた一組のビット線対に接続された複数のメモリセル１０からなる単位メモリセル群１２に対して、同一のプログラムデータの反転データを書き込む。アドレス信号及びプログラムデータは、外部から書き込み／読み出し回路２０に供給される。
【００１３】
書き込み／読み出し回路２０は、読み出し時に、アドレス信号に応じたビット線対の信号レベルを検知することで、当該ビット線対に接続された単位メモリセル群１２からデータを読み出す。
【００１４】
ローデコーダ３０は、アドレス信号Ａ及び多重選択信号Ｍに応じて、読み出し時に、プログラムを行った単位メモリセル群１２に接続された複数のワード線ＷＬ＜０＞〜ＷＬ＜ｍ＞のうち、２以上のワード線を同時に選択して駆動する。つまり、ローデコーダ３０は、ワード線を多重選択する。
【００１５】
書き込み／読み出し回路２０及びローデコーダ３０には、第２の電源電圧ＶＤＤ２が供給される。
【００１６】
図２は、第１の実施形態に係るメモリセル１０の回路図である。図２に示されるように、メモリセル１０は、一対の駆動トランジスタＤ１、Ｄ２と、一対の負荷トランジスタＬ１、Ｌ２と、一対の伝送トランジスタＦ１、Ｆ２と、を有する。負荷トランジスタＬ１、Ｌ２は、ＰチャンネルＭＯＳ型電界効果トランジスタ（以下、ＰＭＯＳトランジスタと称す）であり、駆動トランジスタＤ１、Ｄ２および伝送トランジスタＦ１、Ｆ２は、ＮチャンネルＭＯＳ型電界効果トランジスタ（以下、ＮＭＯＳトランジスタと称す）である。負荷トランジスタＬ１，Ｌ２のソースには第１の電源電圧ＶＤＤ１が供給される。駆動トランジスタＤ１，Ｄ２のソースには接地電圧ＶＳＳが供給される。
【００１７】
駆動トランジスタＤ１と負荷トランジスタＬ１とは直列接続され、第１のインバータＩＮＶ１を構成している。駆動トランジスタＤ２と負荷トランジスタＬ２とは直列接続され、第２のインバータＩＮＶ２を構成している。そして、これら一対のインバータＩＮＶ１，ＩＮＶ２の出力と入力とが互いにクロスカップリングされることでフリップフロップが構成されている。つまり、各メモリセル１０は、クロスカップル接続された第１のインバータＩＮＶ１と第２のインバータＩＮＶ２とを含む。駆動トランジスタＤ１のドレインと負荷トランジスタＬ１のドレインとの接続点は記憶ノードｔを構成し、駆動トランジスタＤ２のドレインと負荷トランジスタＬ２のドレインとの接続点は記憶ノードｃを構成する。
【００１８】
ワード線ＷＬ＜０＞〜ＷＬ＜ｍ＞のそれぞれは、対応するメモリセル１０の伝送トランジスタＦ１，Ｆ２のゲートに共通に接続される。
【００１９】
また、ビット線ＢＬ＜０＞〜ＢＬ＜ｎ＞のそれぞれは、対応するメモリセル１０において、伝送トランジスタＦ１を介して、駆動トランジスタＤ２のゲート、負荷トランジスタＬ２のゲート、駆動トランジスタＤ１のドレインおよび負荷トランジスタＬ１のドレインに接続される。また、ビット線ｂＢＬ＜０＞〜ｂＢＬ＜２５５＞のそれぞれは、対応するメモリセル１０において、伝送トランジスタＦ２を介して、駆動トランジスタＤ２のドレイン、負荷トランジスタＬ２のドレイン、駆動トランジスタＤ１のゲートおよび負荷トランジスタＬ１のゲートに接続される。
【００２０】
このように、メモリセル１０の構成は、汎用メモリとしてのＳＲＡＭセルの構成と同じである。しかし、第１の電源電圧ＶＤＤ１が第２の電源電圧ＶＤＤ２より高い点が、汎用メモリとしてのＳＲＡＭセルとは相違している。
【００２１】
また、プログラムデータのプログラムは、負荷トランジスタＬ１，Ｌ２のしきい値を異ならせることにより行う。つまり、負荷トランジスタＬ１，Ｌ２のしきい値の大小関係は、プログラムデータに応じて決定される。プログラム後の状態としては、負荷トランジスタＬ１，Ｌ２のしきい値は異なっている。
【００２２】
図３は、第１の実施形態に係るローデコーダ３０の回路図である。ここでは、説明を明確化するため、４ビットのアドレス信号Ａ＜０：３＞及び多重選択信号Ｍ＜０：３＞により、ワード線ＷＬ＜０＞〜ＷＬ＜１５＞を選択する一例について説明する。
【００２３】
図３に示すように、ローデコーダ３０は、インバータ３１−０〜３１−３と、ＮＡＮＤ回路３２−０〜３２−３と、ＮＡＮＤ回路３３−０〜３３−１５と、インバータ３４−０〜３４−１５と、を有する。
【００２４】
各インバータ３１−０〜３１−３には、対応するアドレス信号Ａ＜０＞〜Ａ＜３＞が入力される。各ＮＡＮＤ回路３２−０〜３２−３には、対応するインバータ３１−０〜３１−３の出力信号と、対応する多重選択信号Ｍ＜０＞〜Ｍ＜３＞とが入力される。
【００２５】
インバータ３１−０の出力信号は、ＮＡＮＤ回路３３−０，３３−２，３３−４，３３−６，３３−８，３３−１０，３３−１２，３３−１４に入力される。インバータ３１−１の出力信号は、ＮＡＮＤ回路３３−０，３３−１，３３−４，３３−５，３３−８，３３−９，３３−１２，３３−１３に入力される。インバータ３１−２の出力信号は、ＮＡＮＤ回路３３−０〜３３−３，３３−８〜３３−１１に入力される。インバータ３１−３の出力信号は、ＮＡＮＤ回路３３−０〜３３−７に入力される。
【００２６】
ＮＡＮＤ回路３２−０の出力信号は、ＮＡＮＤ回路３３−１，３３−３，３３−５，３３−７，３３−９，３３−１１，３３−１３，３３−１５に入力される。ＮＡＮＤ回路３２−１の出力信号は、ＮＡＮＤ回路３３−２，３３−３，３３−６，３３−７，３３−１０，３３−１１，３３−１４，３３−１５に入力される。ＮＡＮＤ回路３２−２の出力信号は、ＮＡＮＤ回路３３−４〜３３−７，３３−１２〜３３−１５に入力される。ＮＡＮＤ回路３２−３の出力信号は、ＮＡＮＤ回路３３−８〜３３−１５に入力される。
【００２７】
各ＮＡＮＤ回路３３−０〜３３−１５の出力信号は、対応するインバータ３４−０〜３４−１５に入力される。各インバータ３４−０〜３４−１５の出力信号は、対応するワード線ＷＬ＜０＞〜ＷＬ＜１５＞に出力される。
【００２８】
なお、汎用メモリとしてのＳＲＡＭなどに用いられている既存のローデコーダは、多重選択信号Ｍ＜０：３＞を用いず、ＮＡＮＤ回路３２−０〜３２−３が設けられていない点が、図３のローデコーダ３０と異なる。
【００２９】
多重選択信号Ｍ＜０：３＞が全て“１”の場合、既存のローデコーダと同様に、ローデコーダ３０はアドレス信号Ａ＜０：３＞に応じてワード線を１つずつ選択する。
【００３０】
これに対して、多重選択信号Ｍ＜ｉ＞（ｉは０，１，２，３）を“０”にして、アドレス信号Ａ＜ｉ＞を“０”に固定すると、アドレス信号Ａ＜ｉ＞で区別されるアドレスは縮退する。つまり、アドレス信号Ａ＜ｉ＞で区別されていたワード線が常に選択状態になる。
【００３１】
このように、ローデコーダ３０は、多重選択信号Ｍ＜０：３＞及びアドレス信号Ａ＜０：３＞に応じて、任意の数のワード線を多重選択できる。
【００３２】
（プログラム動作）
次に、半導体記憶装置へのプログラムデータのプログラム動作について説明する。このプログラム動作は、例えば、半導体記憶装置の外部又は内部に設けられた制御回路（図示せず）により制御される。
【００３３】
まず、書き込み／読み出し回路２０は、アドレス信号により指定される１つの単位メモリセル群１２に対して同一のプログラムデータの反転データを書き込む。ここでは、ビット線対ＢＬ＜０＞，ｂＢＬ＜０＞に接続された単位メモリセル群１２に対して、プログラムデータ“１”の反転データ“０”を書き込む一例について説明する。
【００３４】
この書き込みは、汎用メモリとしてのＳＲＡＭセルに対する書き込みと同様に行う。
【００３５】
例えば、複数のメモリセル１０に第１の電源電圧ＶＤＤ１を供給した状態で、ワード線ＷＬ＜０＞の電圧を“１”（＝ＶＤＤ２）にして、伝送トランジスタＦ１，Ｆ２をオンにする。
【００３６】
そして、ビット線ＢＬ＜０＞の電圧を“０”（＝ＶＳＳ）とし、ビット線ｂＢＬ＜０＞の電圧を“１”にする。
【００３７】
この時、ビット線ＢＬ＜０＞，ｂＢＬ＜０＞のデータは、ワード線ＷＬ＜０＞に接続されたメモリセル１０にラッチされる。
【００３８】
次に、ワード線ＷＬ＜０＞の電圧を“０”にする。これにより、このメモリセル１０にプログラムデータ“１”の反転データ“０”が書き込まれる。つまり、このメモリセル１０内の第１のインバータＩＮＶ１の入力信号（記憶ノードｃの信号）が“１”、第２のインバータＩＮＶ２の入力信号（記憶ノードｔの信号）が“０”の状態が維持される。
【００３９】
そして、他のワード線ＷＬ＜１＞〜ＷＬ＜ｍ＞を１つずつ“１”にして、単位メモリセル群１２の他のメモリセル１０に対しても同様に反転データ“０”の書き込みを行う。
【００４０】
なお、ワード線ＷＬ＜０＞〜ＷＬ＜ｍ＞を同時に“１”にして、単位メモリセル群１２の全てのメモリセル１０に対して同時に反転データ“０”の書き込みを行ってもよい。つまり、ローデコーダ３０は、書き込み時にワード線を多重選択してもよい。
【００４１】
次に、他のビット線対に接続された単位メモリセル群１２に対して、プログラムデータの反転データを書き込む。
【００４２】
なお、この書き込み時においては、第１の電源電圧ＶＤＤ１に代えて第２の電源電圧ＶＤＤ２が複数のメモリセル１０に供給されてもよい。
【００４３】
次に、所望の単位メモリセル群１２にプログラムデータの反転データが書き込まれた状態で、複数のメモリセル１０に対してストレスを加える。
【００４４】
例えば、ワード線ＷＬ＜０＞〜ＷＬ＜ｍ＞の電圧を“０”にして伝送トランジスタＦ１，Ｆ２をオフにすると共に、ビット線対の電圧を“０”にした状態で、単位メモリセル群１２の複数のメモリセル１０に、ストレスとして第１の電源電圧ＶＤＤ１を一定期間加える。
【００４５】
この時、ビット線対ＢＬ＜０＞，ｂＢＬ＜０＞に接続された各メモリセル１０において、第２のインバータＩＮＶ２の負荷トランジスタＬ２のゲート電圧は“０”であるため、負荷トランジスタＬ２のゲート・ソース間には高電圧（＝第１の電源電圧ＶＤＤ１）が印加されることになる。この高電圧が印加されている期間においては、負荷トランジスタＬ２のＮＢＴＩによるしきい値のシフトが顕著になる。具体的には、負荷トランジスタＬ２のしきい値が上昇する。
【００４６】
このように、負荷トランジスタＬ１，Ｌ２のうち、ゲート電圧が“０”になっているもののしきい値が、ゲート電圧が“１”になっているもののしきい値より高くなる。
【００４７】
ＮＢＴＩを加速させるために、半導体チップの温度を室温より高い温度に設定してもよい。また、ＮＢＴＩを加速させるために、負荷トランジスタＬ１，Ｌ２が形成されている半導体エリア（例えば、Ｎウェル）に、第１の電源電圧ＶＤＤ１を供給してもよい。
【００４８】
このストレス印加では、複数のメモリセル１０に書き込まれたデータに変化はない。しかし、実質的には、例えばビット線対ＢＬ＜０＞，ｂＢＬ＜０＞に接続された単位メモリセル群１２の複数のメモリセル１０に、プログラムデータ“１”がプログラムされたことになる。
【００４９】
この後、第１及び第２の電源電圧ＶＤＤ１，ＶＤＤ２の供給が停止されると、複数のメモリセル１０に書き込まれたプログラムデータの反転データは消去される。
【００５０】
このように、本実施形態では、１ビットのプログラムデータをプログラムするために複数のメモリセル１０を用いている。
【００５１】
（読み出し動作）
次に、上述のプログラム動作によりプログラムされたプログラムデータの読み出し動作について説明する。
【００５２】
ここでは、ビット線対ＢＬ＜０＞，ｂＢＬ＜０＞に接続された単位メモリセル群１２の複数のメモリセル１０に“１”がプログラムされているものとし、この単位メモリセル群１２からの読み出し動作について説明する。
【００５３】
まず、複数のメモリセル１０に第１の電源電圧ＶＤＤ１を供給する。
【００５４】
前述のように、各メモリセル１０において、負荷トランジスタＬ１，Ｌ２のしきい値は異なっている。負荷トランジスタＬ２のしきい値は、負荷トランジスタＬ１のしきい値より高い。
【００５５】
このしきい値のアンバランスにより、第１の電源電圧ＶＤＤ１が供給された時の各メモリセル１０の初期状態は、第２のインバータＩＮＶ２の入力信号が“１”になり、第１のインバータＩＮＶ１の入力信号が“０”になる。これは、各メモリセル１０にプログラムデータ“１”がプログラムされた状態である。
【００５６】
次に、第２の電源電圧ＶＤＤ２を供給する。
【００５７】
次に、ローデコーダ３０は、プログラムを行った単位メモリセル群１２に接続された複数のワード線ＷＬ＜０＞〜ＷＬ＜ｍ＞のうち、２以上のワード線を同時に選択して駆動する。
【００５８】
書き込み／読み出し回路２０は、ビット線対ＢＬ＜０＞，ｂＢＬ＜０＞の信号レベルを検知することで、当該ビット線対ＢＬ＜０＞，ｂＢＬ＜０＞に接続された単位メモリセル群１２からプログラムデータ“１”を読み出す。
【００５９】
ここで、このようなＮＢＴＩを利用したプログラムが確率的に失敗することについて説明する。
【００６０】
図４は、ＰＭＯＳトランジスタにストレスを加えた場合のしきい値のシフト量ΔＶｔｈと頻度との関係を示す図である。
【００６１】
図４の領域１００に示すように、ストレスを加えた場合にしきい値のシフト（上昇）が殆ど無いＰＭＯＳトランジスタが確率的に存在する。従って、プログラムが確率的に失敗する。プログラムの失敗に対処するため、エラー検出・訂正を行うＥＣＣ回路を用いることも考えられるが、ＥＣＣ回路は面積が大きい。
【００６２】
ここで、第１の実施形態によれば、同一のプログラムデータを単位メモリセル群１２の複数のメモリセル１０にプログラムして、読み出し時に、２以上のワード線を同時に選択するようにしている。これにより、読み出されるデータは、選択されたメモリセル１０にプログラムされたプログラムデータの多数決により決められる。
【００６３】
即ち、ある単位メモリセル群１２において、しきい値のシフトが殆ど無いＰＭＯＳトランジスタを有するメモリセル１０に対してプログラムが失敗しても、半数より多いメモリセル１０に対してプログラムが成功していれば、正しいプログラムデータを読み出すことができる。つまり、エラー訂正が行われる。同時に選択するワード線の数が多いほど、エラー訂正能力が高くなり、不良確率をより低減できる。
【００６４】
なお、２本のワード線を選択した場合には、選択した一方のメモリセル１０に対してプログラムが失敗しても、他方のメモリセル１０に対してプログラムが成功していれば、正しいプログラムデータを読み出せる可能性があり、不良確率を約１／２に低減できる。
【００６５】
また、本実施形態の半導体記憶装置は、既存のＮＢＴＩを利用してデータをプログラムする半導体記憶装置の主にローデコーダを変更することで簡単に実現でき、他の回路の追加が不要である。更に、１つのメモリセル１０の面積は書き込み／読み出し回路２０等の周辺回路と比較して十分小さいため、１ビットのプログラムデータをプログラムするために複数のメモリセル１０を用いても、面積の増加は小さい。従って、ＥＣＣ回路を用いる場合より半導体記憶装置の面積を小さくできる。
【００６６】
なお、面積が大きくても良い場合には、第１の実施形態の構成に加え、複数の単位メモリセル群１２から読み出したデータのエラー検出及び訂正を行うＥＣＣ回路を備えてもよい。この構成によれば、不良確率を更に低減できる。
【００６７】
（第２の実施形態）
第２の実施形態の説明に先立ち、本発明者が知得する、ＮＢＴＩを利用してプログラムされたメモリセルに起こり得る経時不良について説明する。
【００６８】
図５（ａ）は、ＮＢＴＩによるＰＭＯＳトランジスタのしきい値のシフト量ΔＶｔｈの経時変化を示す図であり、図５（ｂ）は、ＰＭＯＳトランジスタのリカバリー比（Recovery Ratio）のゲート電圧依存特性を示す図である。
【００６９】
図５（ａ）に示すように、時刻０においてＮＢＴＩによりしきい値をシフトさせた直後から、しきい値のシフト量ΔＶｔｈは経時減少し、徐々に一定値に近づく。
【００７０】
ここで、しきい値をシフトさせてから所定時間後のしきい値のシフト量ΔVTH_RIを、しきい値をシフトさせた直後のしきい値のシフト量ΔVTH_NBTIで割った値を、リカバリー比と定義する。
【００７１】
図５（ｂ）に示すように、リカバリー比は、製造プロセスに応じて若干の相違があり、且つ、ゲート電圧に応じて若干変化するが、概ね５０％〜７０％の範囲内にある。
【００７２】
この現象により、時間の経過に伴いメモリセルのプログラムデータが反転してしまう可能性がある。
【００７３】
さらに、メモリセルにプログラムデータを保持し続けると、プログラムによりしきい値がシフトした一方の負荷トランジスタとは反対側の他方の負荷トランジスタのしきい値が、ＮＢＴＩによりシフトしていく。この現象によっても、時間の経過に伴いメモリセルのプログラムデータが反転してしまう可能性がある。
【００７４】
このような経時不良に対処するため、第２の実施形態では、通常の使用に先立ち、例えば出荷前等に、以下の初期テストを行う。
【００７５】
具体的には、ローデコーダ３０は、初期テスト時において、初期テスト後の読み出し時に選択するワード線の数より少ない数のワード線を選択して駆動する。つまり、第２の実施形態では、ローデコーダ３０の機能が第１の実施形態と異なる。その他の構成は、第１の実施形態と同一であるため、図示及び説明を省略する。
【００７６】
ここでは、ローデコーダ３０は、初期テスト時に２つのワード線を選択し、読み出し時に３以上のワード線を選択するものとして、以下に動作を説明する。
【００７７】
初期テストの前に、複数のメモリセル１０に対して、第１の実施形態と同様の手順でプログラムデータをプログラムしておく。
【００７８】
初期テストでは、書き込み／読み出し回路２０は、単位メモリセル群１２における２つのワード線で選択された２つのメモリセル１０からプログラムデータを読み出す。選択された２つのメモリセル１０のうち少なくとも１つが不良である場合、プログラムデータとは異なるデータが読み出される。
【００７９】
そこで、例えば、外部のテスト回路は、読み出されたデータがプログラムされたプログラムデータと一致するか否か判定し、一致しない場合、不良を検出する。不良が検出された２つのメモリセル１０は、通常の使用時に使用しないように除外する。
【００８０】
そして、これらを他のメモリセル１０に対しても行う。
【００８１】
このように、本実施形態によれば、初期テストでは、同時に選択されるワード線の数が少ないため、エラー訂正能力は弱い。従って、経時不良がある場合、エラー訂正できず不良が検出できる。よって、経時不良が発生したメモリセル１０を除外できる。
【００８２】
また、初期テスト後の読み出し時においては、同時に選択されるワード線の数が多いため、多数決によるエラー訂正能力は強い。従って、初期テスト時には経時不良が無かったメモリセル１０に経時不良が起こった場合であっても、エラー訂正でき、正しいプログラムデータを読み出すことができる。
【００８３】
（第３の実施形態）
第３の実施形態は、第２の実施形態とは異なる方法で経時不良に対処する。
【００８４】
図６は、第３の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。図６に示すように、半導体記憶装置は、図１の構成に加え、反転データ生成回路４０を備える。また、ローデコーダ３０ａは、第１の実施形態と異なり、ワード線を１つずつ選択する。つまり、本実施形態では、多数決を取らない一例について説明する。その他の構成は、図１と同一であるため、同一の要素に同一の符号を付して説明を省略する。
【００８５】
書き込み／読み出し回路２０は、プログラム時に、メモリセル１０に対してプログラムデータの反転データを書き込み、読み出し時に、メモリセル１０からプログラムデータを読み出す。
【００８６】
反転データ生成回路４０は、読み出されたプログラムデータの反転データを生成する。読み出されたプログラムデータをリコールデータとも称す。
【００８７】
書き込み／読み出し回路２０は、読み出しの後、プログラムデータが読み出されたメモリセル１０に対して、反転データ生成回路４０で生成された、読み出されたプログラムデータの反転データを書き込む。
【００８８】
書き込み／読み出し回路２０は、読み出されたプログラムデータの反転データを書き込んだ後で読み出しを行う場合、読み出されたデータの反転データを出力すればよい。あるいは、第１及び第２の電源電圧ＶＤＤ１，ＶＤＤ２の供給を一旦停止して再度供給すれば、読み出されたプログラムデータの反転データは消去され、メモリセル１０にプログラムデータがプログラムされた状態になる。これにより、書き込み／読み出し回路２０は、プログラムデータを読み出すことができる。
【００８９】
このように、本実施形態によれば、読み出しの後、プログラムデータが読み出されたメモリセル１０に対して、読み出されたプログラムデータの反転データを書き込むようにしている。これにより、ＮＢＴＩによりしきい値がシフトした負荷トランジスタでは、さらにしきい値がシフトするようになり、反対側の負荷トランジスタではしきい値がシフトしないようになる。即ち、しきい値のシフト量の経時減少が無くなると共に、データリテンションも改善する。従って、経時不良の可能性を低減できる。
【００９０】
なお、第３の実施形態を、第１又は第２の実施形態に組み合わせて、多数決を取るようにしてもよい。
【００９１】
（第４の実施形態）
第４の実施形態の説明に先立ち、本発明者が知得する、ＮＢＴＩを利用してプログラムされたメモリセル１０への上書きについて説明する。
【００９２】
第１の実施形態の半導体記憶装置は、基本的にはプログラムが１回だけ可能なＯＴＰであるが、もしプログラムデータを上書きできれば、プログラムが複数回可能なＭＴＰ（Multi Time Programmable ROM）を実現できる。
【００９３】
しかし、プログラムデータは、メモリセル１０における一方の負荷トランジスタのしきい値がシフトすることでプログラムされているため、異なるプログラムデータを上書きするためには、他方の負荷トランジスタのしきい値を、一方の負荷トランジスタのしきい値を超えるまでシフトさせる必要がある。そのため、他方の負荷トランジスタのしきい値が一方の負荷トランジスタのしきい値を超えない場合に、上書きは失敗する。
【００９４】
図７は、第１の実施形態の半導体記憶装置にプログラムデータを上書きした結果を示す図である。第１回目のプログラムでは、メモリセル１０にプログラムデータを正しくプログラムできている。その後の第２回目のプログラム（上書き）では、プログラムされたプログラムデータとは逆のプログラムデータをプログラムしているが、上述の理由で、２つのメモリセル１０Ｘ，１０Ｘに対してプログラムが失敗している。
【００９５】
以上に対処するため、第４の実施形態では、ＮＢＴＩによるしきい値のシフト量を小さくして、弱くプログラムを行う。半導体記憶装置の構成は、図１の第１の実施形態と同一であるため、同一の要素に同一の符号を付して図示及び説明を省略する。
【００９６】
第１の実施形態でも説明したように、書き込まれたプログラムデータの反転データに応じて、第１及び第２のインバータＩＮＶ１，ＩＮＶ２の何れかにおける負荷トランジスタのしきい値は、ストレスが加えられることによりシフトする。
【００９７】
本実施形態では、負荷トランジスタのしきい値のシフト量が当該負荷トランジスタのしきい値の最大のシフト量より小さくなるように、ストレスが加えられる。ストレスとして、第１の電源電圧ＶＤＤ１がメモリセル１０に一定期間加えられる。しきい値のシフト量を小さくするために、第１の電源電圧ＶＤＤ１を第１の実施形態より低くしても良く、一定期間を第１の実施形態より短くしてもよい。
【００９８】
これにより、異なるプログラムデータを上書きする時に、他方の負荷トランジスタのしきい値を、最初にシフトさせた一方の負荷トランジスタのしきい値より大きくできる。よって、同一のメモリセル１０に対してプログラムデータを複数回プログラムできる。
【００９９】
ここで、本実施形態では、第１の実施形態と比較して、しきい値のシフト量が小さいために、プログラムが失敗するメモリセル１０が増加する可能性がある。
【０１００】
図８は、第４の実施形態に係る半導体記憶装置にプログラムされたプログラムデータを説明する図である。同じ単位メモリセル群１２のメモリセル１０には同一のプログラムデータがプログラムされているべきであるが、図８に示すように、プログラムが失敗しているいくつかのメモリセル１０が存在している。しかし、同時に選択するワード線の数（つまり多数決数）が多ければ、正しいプログラムデータを読み出すことができる。
【０１０１】
図９は、第４の実施形態に係る半導体記憶装置の読み出し失敗確率と多数決数との関係を示す図である。図９の縦軸は、読み出し失敗確率を表す指標であり、値が小さい程、読み出し失敗確率が低い。例えば、−１は、読み出し失敗確率が約３０％であることを表し、−３は、読み出し失敗確率が約０．３％であることを表す。横軸は、多数決数（選択されたワード線数）である。
【０１０２】
図９では、セル電流のばらつき（１σ＝１０％）を考慮している。また、セル不良率が０．１，０．２，０．３，０．４の場合を示している。セル不良率は、プログラムが失敗したセルの割合を表す。図９に示すように、多数決数を多くすることにより、読み出し失敗確率を十分に低くできる。
【０１０３】
このように、本実施形態によれば、負荷トランジスタのしきい値のシフト量が当該負荷トランジスタのしきい値の最大のシフト量より小さくなるように、ストレスを加えている。よって、同一のメモリセル１０に対してプログラムデータを複数回プログラムできる。即ち、この半導体記憶装置をＭＴＰとして使用できる。
【０１０４】
なお、第４の実施形態を第２の実施形態に組み合わせてもよい。
【０１０５】
（第５の実施形態）
第５の実施形態も上書きを容易にするものであるが、第５の実施形態では、第４の実施形態とは異なり、読み出したプログラムデータが上書きするプログラムデータと等しい場合に上書きしないようにする。
【０１０６】
図１０は、第５の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。図１０に示すように、この半導体記憶装置は、図１の構成に加え、複数のスイッチ素子ＳＷ１〜ＳＷｎを備える。また、書き込み／読み出し回路２０ａの機能が図１と異なる。その他の構成は、図１と同一であるため、同一の要素に同一の符号を付して説明を省略する。なお、ローデコーダは図示を省略しているが、図６のローデコーダ３０ａと同じ機能を有する。
【０１０７】
各スイッチ素子ＳＷ１〜ＳＷｎは、オンの時に、電源と対応するメモリセル１０との間を短絡し、オフの時に、電源と対応するメモリセル１０との間を解放する。スイッチ素子ＳＷ１〜ＳＷｎは、同一のビット線対に接続された複数のメモリセル１０毎に設けられている。各スイッチ素子ＳＷ１〜ＳＷｎは、ＰＭＯＳトランジスタからなる。つまり、各スイッチ素子ＳＷ１〜ＳＷｎとしてのＰＭＯＳトランジスタは、第１の電源電圧ＶＤＤ１が供給されるソースと、電源線を介して各メモリセル１０の負荷トランジスタＬ１，Ｌ２のソースに共通に接続されるドレインと、を有する。
【０１０８】
スイッチ素子ＳＷ１〜ＳＷｎは、メモリセル１０毎に設けてもよい。
【０１０９】
書き込み／読み出し回路２０ａは、最初のプログラム時に、メモリセル１０に対してプログラムデータの反転データを書き込み、読み出し時に、メモリセル１０からプログラムデータを読み出す。
【０１１０】
書き込み／読み出し回路２０ａは、上書き時に、上書き対象のメモリセル１０から読み出したプログラムデータＤＲが上書きするプログラムデータＤＷと等しい場合、上書き対象のメモリセル１０に対応したスイッチ素子をオフに切り替える。これにより、ＮＢＴＩによるしきい値のシフトが起こらなくなる。
【０１１１】
書き込み／読み出し回路２０ａは、上書き対象のメモリセル１０から読み出したプログラムデータＤＲが上書きするプログラムデータＤＷと異なる場合、上書き対象のメモリセル１０に対応したスイッチ素子をオンに切り替えると共に上書きするプログラムデータＤＷの反転データＤＯＲを上書き対象のメモリセル１０に書き込む。この後、上書き対象のメモリセル１０にストレスが加えられることにより、上書きするプログラムデータＤＷが上書き（プログラム）される。
【０１１２】
書き込み／読み出し回路２０ａは、上書き対象のメモリセル１０から読み出したプログラムデータＤＲと、上書きするプログラムデータＤＷとの排他的論理和である書き込みイネーブル信号ＷＥを反転させ、得られた反転信号／ＷＥを、上書き対象のメモリセル１０に対応したスイッチ素子であるＰＭＯＳトランジスタのゲートに供給する。
【０１１３】
このように、本実施形態によれば、上書き対象のメモリセル１０から読み出したプログラムデータＤＲが上書きするプログラムデータＤＷと等しい場合、スイッチ素子をオフに切り替えている。これにより、上書き対象のメモリセル１０における負荷トランジスタのしきい値の無駄な上昇を防げるので、次回の上書きにおいて、より容易に上書きできる。
【０１１４】
これに対して、既存のＮＢＴＩを利用してデータをプログラムする半導体記憶装置においては、プログラムデータ“１”がプログラムされている上書き対象のメモリセル１０に対して、上書きするプログラムデータ“１”を上書き（プログラム）する場合、反転データ“０”を書き込んでストレスを加える。すると、一方の負荷トランジスタにおいて、既に上昇しているしきい値がさらに上昇する。これは、しきい値の無駄な上昇であるため、このメモリセル１０に関して、次回の上書きが失敗する可能性が高くなる。
【０１１５】
また、第２の実施形態で説明したように、メモリセル１０にプログラムデータを保持し続けると、プログラムによりしきい値がシフトした負荷トランジスタとは反対側の負荷トランジスタのしきい値が、ＮＢＴＩによりシフトしていく。
【０１１６】
しかし、本実施形態では、所定の場合に第１の電源電圧ＶＤＤ１の供給を停止するので、この時は反対側の負荷トランジスタのしきい値がシフトすることはない。従って、プログラムデータが反転してしまう経時不良を防止できる。
【０１１７】
なお、第５の実施形態を第１又は第２の実施形態に組み合わせて、多数決を取るようにしてもよい。この場合、複数のスイッチ素子ＳＷ１〜ＳＷｎは、同一のデータを書き込む対象である単位メモリセル群１２毎に設けられる。
【０１１８】
また、第５の実施形態を第４の実施形態に組み合わせて、弱い書き込みを行うと、さらに容易に上書きできる。
【０１１９】
（第６の実施形態）
第６の実施形態の説明に先立ち、本発明者が知得するＯＴＰを用いたＭＴＰについて説明する。
【０１２０】
図１１（ａ）は、イニシャルデータを規定できるＯＴＰを用いたＭＴＰの動作を説明する図であり、図１１（ｂ）は、イニシャルデータを規定できないＯＴＰを用いたＭＴＰの動作を説明する図である。
【０１２１】
図１１（ａ）に示すように、このＭＴＰでは、複数のメモリセルをヒューズ領域Ｆ１〜Ｆ４とデータ領域Ｄ１〜Ｄ４とに分けておく。複数のヒューズ領域Ｆ１〜Ｆ４は、それぞれ１つのメモリセルからなり、ビット線方向に並んでいる。複数のデータ領域Ｄ１〜Ｄ４は、それぞれ同じワード線に接続された複数のメモリセルからなり、ビット線方向に並んでいる。対応するヒューズ領域とデータ領域は、同じワード線に接続されている。各メモリセルは、プログラムを行う前のイニシャルデータを規定できるＯＴＰであり、例えばｅＦｕｓｅ（イーヒューズ）等からなる。
【０１２２】
各ヒューズ領域Ｆ１〜Ｆ４は、ヒューズデータ“１”がプログラムされている時、対応するデータ領域にプログラムデータがプログラムされていることを表し、ヒューズデータ“１”がプログラムされていない時、即ちイニシャルデータ（＝“０”）の時、対応するデータ領域にプログラムデータがプログラムされていないことを表す。
【０１２３】
プログラムは、所定のプログラム順序に従って行う。プログラム順序は、例えば、ヒューズ領域Ｆ１、Ｆ２、Ｆ３、Ｆ４の順序とする。
【０１２４】
最初のプログラム時には、プログラム順序に従い、まず、ヒューズ領域Ｆ１にヒューズデータ“１”をプログラムすると共に、ヒューズ領域Ｆ１に対応するデータ領域Ｄ１に、所望のプログラムデータをプログラムする。
【０１２５】
上書きする時には、プログラム順序に従い、ヒューズ領域Ｆ２にヒューズデータ“１”をプログラムすると共に、ヒューズ領域Ｆ２に対応するデータ領域Ｄ２に、所望のプログラムデータをプログラムする。図１１（ａ）の例では、もう一度上書きして、ヒューズ領域Ｆ３にヒューズデータ“１”をプログラムすると共に、ヒューズ領域Ｆ３に対応するデータ領域Ｄ３に、所望のプログラムデータをプログラムしている。ヒューズ領域Ｆ４及びデータ領域Ｄ４は、イニシャルデータになっている。つまり、各メモリセルは、１回だけプログラムされる。
【０１２６】
読み出し時には、ヒューズ領域Ｆ１〜Ｆ４からプログラム順序でデータを読み出し、ヒューズデータ“１”が読み出されたヒューズ領域Ｆ１，Ｆ２，Ｆ３のうち最後の順序のヒューズ領域Ｆ３を、使用中のヒューズ領域であると特定する。そして、使用中のヒューズ領域Ｆ３に対応する使用中のデータ領域Ｄ３からデータを読み出す。
【０１２７】
このように、イニシャルデータを規定できるＯＴＰを用いてＭＴＰが構成できる。
【０１２８】
これに対し、図１１（ｂ）に示すように、各メモリセルとして、イニシャルデータを規定できない、即ちイニシャルデータが不定（＝Ｘ（“０”又は“１”））であるＯＴＰを用いた場合、使用中のヒューズ領域Ｆ３の次の順序のヒューズ領域Ｆ４のデータが“１”である可能性がある。そのため、図１１（ａ）と同じ方法では、使用中のヒューズ領域を特定できないので、使用中のデータ領域を特定できない。
【０１２９】
ＮＢＴＩを利用してデータをプログラムする半導体記憶装置は、イニシャルデータを規定できないＯＴＰであるため、ヒューズ領域のデータで使用中のデータ領域を特定するＭＴＰを構成することができない。
【０１３０】
そのため、第６の実施形態では、ヒューズ領域を用いずにＭＴＰを構成する。
【０１３１】
図１２は、第６の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。図１２に示すように、半導体記憶装置は、図１の構成に加え、ＥＣＣ回路（エラーチェック回路）５０と、エラーデータ生成回路５１と、を備える。また、書き込み／読み出し回路２０ｂ及びローデコーダ３０ａの機能が図１と異なる。ローデコーダ３０ａは、図６のローデコーダ３０ａと同じ機能を有する。その他の構成は、図１と同一であるため、同一の要素に同一の符号を付して説明を省略する。
【０１３２】
書き込み／読み出し回路２０ｂは、読み出し時に、所定のプログラム順序に従いメモリセル群１４−１〜１４−ｍ毎にデータを読み出す。各メモリセル群１４−１〜１４−ｍは、一つのワード線に接続された複数のメモリセル１０からなる。プログラム順序は、例えば、メモリセル群１４−１，１４−２，・・・，１４−ｍの順序とする。
【０１３３】
ＥＣＣ回路５０は、メモリセル群１４−１〜１４−ｍ毎に読み出されたデータのエラーをチェックする。エラーをチェックする方法は、どのような方法でもよく、周知のエラーチェック方法でよい。
【０１３４】
エラーデータ生成回路５１は、ＥＣＣ回路５０でエラーと判定されるエラーデータを生成する。
【０１３５】
書き込み／読み出し回路２０ｂは、読み出し時に、ＥＣＣ回路５０でエラーと判定されないデータが最初に読み出されたメモリセル群を使用中のメモリセル群と特定し、最初に読み出されたエラーと判定されないデータを読み出しデータとして出力する。
【０１３６】
書き込み／読み出し回路２０ｂは、最初のプログラム時に、プログラム順序に従い、最初の順序のメモリセル群１４−１に、プログラムデータの反転データを書き込む。
【０１３７】
書き込み／読み出し回路２０ｂは、上書き時に、使用中のメモリセル群にエラーデータの反転データを書き込むと共に、プログラム順序に従い、使用中のメモリセル群の次の順序のメモリセル群に、上書きするプログラムデータの反転データを書き込む。この後、ストレスが加えられることにより、使用中のメモリセル群にエラーデータが上書き（プログラム）され、使用中のメモリセル群の次の順序のメモリセル群にプログラムデータが上書き（プログラム）される。
【０１３８】
図１３は、第６の実施形態に係る半導体記憶装置の動作を説明する図である。図１３に示すように、この例では、メモリセル群１４−１，１４−２にエラーデータがプログラムされ、メモリセル群１４−３にプログラムデータがプログラムされている。メモリセル群１４−４には、データがプログラムされていない。
【０１３９】
前述のように、読み出し時には、プログラム順序に従い、メモリセル群１４−１〜１４−４毎にデータを読み出す。各メモリセル群１４−１，１４−２から読み出されたデータは、エラーデータであるため、ＥＣＣ回路５０でエラーと判定される。メモリセル群１４−３から読み出されたデータは、ＥＣＣ回路５０でエラーと判定されない。従って、メモリセル群１４−３を使用中のメモリセル群と特定し、メモリセル群１４−３から読み出されたデータを出力する。
【０１４０】
この状態で上書きを行う場合、使用中のメモリセル群１４−３にエラーデータの反転データを書き込むと共に、使用中のメモリセル群１４−３の次の順序のメモリセル群１４−４に、上書きするプログラムデータの反転データを書き込む。
【０１４１】
このように、本実施形態によれば、上書き時に、使用中のメモリセル群にエラーデータの反転データを書き込むことでエラーデータをプログラムするようにしているので、エラーデータにより、ヒューズ領域を用いずに使用中のメモリセル群を特定できる。従って、ＭＴＰを構成できる。
【０１４２】
なお、第６の実施形態を第１又は第２の実施形態に組み合わせて、各メモリセル群１４−１〜１４−ｍの各ビットを一組のビット線対に接続された複数のメモリセル１０で構成し、ビット毎に多数決を取るようにしてもよい。これにより、不良確率を低減できる。
【０１４３】
また、第６の実施形態を第４及び／又は第５の実施形態に組み合わせて、エラーデータの上書きが容易に行えるようにしてもよい。
【０１４４】
（第７の実施形態）
第７の実施形態では、第６の実施形態とは異なり、複数ビットのヒューズ領域を用いてＭＴＰを構成する。
【０１４５】
図１４は、第７の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。図１４に示すように、半導体記憶装置は、書き込み／読み出し回路２０ｃ及びローデコーダ３０ａの機能が図１と異なる。ローデコーダ３０ａは、図６のローデコーダ３０ａと同じ機能を有する。その他の構成は、図１と同一であるため、同一の要素に同一の符号を付して説明を省略する。
【０１４６】
複数のヒューズ領域Ｆ１〜Ｆｍは、それぞれ、同じワード線に接続された複数のメモリセル１０からなる。複数のヒューズ領域Ｆ１〜Ｆｍは、ビット線方向に並んでいる。複数のデータ領域Ｄ１〜Ｄｍは、それぞれ、同じワード線に接続された複数のメモリセル１０からなる。複数のデータ領域Ｄ１〜Ｄｍは、ビット線方向に並んでいる。対応するヒューズ領域とデータ領域は、同じワード線に接続されている。
【０１４７】
書き込み／読み出し回路２０ｃは、読み出し時に、複数のヒューズ領域Ｆ１〜Ｆｍから所定のプログラム順序でデータを読み出し、所定のヒューズデータが読み出されたヒューズ領域のうち最後の順序のものを使用中のヒューズ領域であると特定し、複数のデータ領域Ｄ１〜Ｄｍのうち使用中のヒューズ領域に対応する使用中のデータ領域からデータを読み出す。
【０１４８】
プログラム順序は、例えば、ヒューズ領域Ｆ１，Ｆ２，・・・，Ｆｍの順序とする。
【０１４９】
書き込み／読み出し回路２０ｃは、最初のプログラム時に、プログラム順序に従い、最初の順序のヒューズ領域Ｆ１にヒューズデータの反転データを書き込むと共に、当該最初の順序のヒューズ領域Ｆ１に対応したデータ領域Ｄ１に、上書きするプログラムデータの反転データを書き込む。
【０１５０】
書き込み／読み出し回路２０ｃは、上書き時に、プログラム順序に従い、使用中のヒューズ領域の次の順序のヒューズ領域にヒューズデータの反転データを書き込むと共に、当該次の順序のヒューズ領域に対応したデータ領域に、上書きするプログラムデータの反転データを書き込む。この後、ストレスが加えられることにより、使用中のヒューズ領域の次の順序のヒューズ領域にヒューズデータがプログラムされ、当該次の順序のヒューズ領域に対応したデータ領域にプログラムデータが上書き（プログラム）される。
【０１５１】
図１５は、第７の実施形態に係る半導体記憶装置の動作を説明する図である。図１５に示すように、この例では、ヒューズ領域Ｆ１，Ｆ２，Ｆ３にヒューズデータ（＝“００００００００”）がプログラムされ、データ領域Ｄ１，Ｄ２，Ｄ３にプログラムデータがプログラムされている。ヒューズ領域Ｆ４及びデータ領域Ｄ４はプログラムされておらず、これらのデータは不定（Ｘ）である。
【０１５２】
前述のように、書き込み／読み出し回路２０ｃは、読み出し時には、ヒューズ領域Ｆ１〜Ｆ４から所定のプログラム順序でデータを読み出す。ヒューズ領域Ｆ４のデータは、不定であるため、ランダムデータである。ヒューズ領域Ｆ４のデータがヒューズデータと等しい確率は、ビット数が多いほど低くなる。
【０１５３】
書き込み／読み出し回路２０ｃは、ヒューズデータが読み出されたヒューズ領域Ｆ１〜Ｆ３のうち最後の順序のものを、使用中のヒューズ領域Ｆ３であると特定する。そして、書き込み／読み出し回路２０ｃは、データ領域Ｄ１〜Ｄ４のうち使用中のヒューズ領域Ｆ３に対応する使用中のデータ領域Ｄ３からデータを読み出す。
【０１５４】
この状態で上書きを行う場合、書き込み／読み出し回路２０ｃは、プログラム順序に従い、使用中のヒューズ領域Ｆ３の次の順序のヒューズ領域Ｆ４にヒューズデータの反転データを書き込むと共に、当該次の順序のヒューズ領域Ｆ４に対応したデータ領域Ｄ４に、上書きするプログラムデータの反転データを書き込む。
【０１５５】
ヒューズデータは、ランダムデータとの区別が付けばよいので、図１５の例のように全ビットが同じ論理値であるデータに限らず、異なる論理値を含んでいてもよい。
【０１５６】
このように、本実施形態によれば、複数のメモリセル１０を１つのヒューズ領域として、ヒューズ領域にヒューズデータをプログラムするようにしている。これにより、ヒューズ領域のイニシャルデータをランダムデータに規定できる。よって、ヒューズ領域の信号状態で使用中のデータ領域を表すことができるため、ＭＴＰを構成できる。
【０１５７】
なお、第７の実施形態を第１又は第２の実施形態に組み合わせて、各ヒューズ領域の各ビットを一組のビット線対に接続された複数のメモリセル１０で構成し、各データ領域の各ビットを一組のビット線対に接続された複数のメモリセル１０で構成し、ビット毎に多数決を取るようにしてもよい。これにより、不良確率を低減できる。
【０１５８】
また、第７の実施形態を第３の実施形態に組み合わせてもよい。
【０１５９】
（第８の実施形態）
第８の実施形態では、第６及び第７の実施形態とは異なり、ヒューズ領域のイニシャルデータを規定して、ＭＴＰを構成する。
【０１６０】
図１６は、第８の実施形態に係る半導体記憶装置の概略構成を示すブロック図である。図１６に示すように、半導体記憶装置は、ヒューズ領域Ｆ１〜Ｆｍ用のメモリセル１０ａの構成と、書き込み／読み出し回路２０ｄの機能とが図１４と異なる。その他の構成は、図１４と同一であるため、同一の要素に同一の符号を付して説明を省略する。
【０１６１】
複数のヒューズ領域Ｆ１〜Ｆｍは、それぞれメモリセル１０ａからなる。複数のヒューズ領域Ｆ１〜Ｆｍは、ビット線方向に並んでいる。複数のデータ領域Ｄ１〜Ｄｍは、それぞれ、同じワード線に接続された複数のメモリセル１０からなる。複数のデータ領域Ｄ１〜Ｄｍは、ビット線方向に並んでいる。対応するヒューズ領域とデータ領域は、同じワード線に接続されている。
【０１６２】
書き込み／読み出し回路２０ｄは、読み出し時に、複数のヒューズ領域Ｆ１〜Ｆｍから所定のプログラム順序でデータを読み出し、所定のヒューズデータが読み出されたヒューズ領域のうち最後の順序のものを使用中のヒューズ領域であると特定し、複数のデータ領域Ｄ１〜Ｄｍのうち使用中のヒューズ領域に対応する使用中のデータ領域からデータを読み出す。
【０１６３】
プログラム順序は、例えば、ヒューズ領域Ｆ１，Ｆ２，・・・，Ｆｍの順序とする。
【０１６４】
書き込み／読み出し回路２０ｄは、最初のプログラム時に、プログラム順序に従い、最初の順序のヒューズ領域Ｆ１にヒューズデータの反転データを書き込むと共に、当該最初の順序のヒューズ領域Ｆ１に対応したデータ領域Ｄ１に、上書きするプログラムデータの反転データを書き込む。
【０１６５】
書き込み／読み出し回路２０ｄは、上書き時に、プログラム順序に従い、使用中のヒューズ領域の次の順序のヒューズ領域に、ヒューズデータをプログラムするために当該ヒューズデータの反転データを書き込むと共に、当該次の順序のヒューズ領域に対応したデータ領域に、上書きするプログラムデータをプログラムするために当該上書きするプログラムデータの反転データを書き込む。
【０１６６】
図１７（ａ）は、第８の実施形態に係る各ヒューズ領域Ｆ１〜Ｆｍのメモリセル１０ａの回路図であり、図１７（ｂ）は、図１７（ａ）のメモリセル１０ａの電源投入時の特性図である。図１７（ａ）に示すように、このメモリセル１０ａは、図２のメモリセル１０に容量素子Ｃ１を備えている。その他の構成は、図２のメモリセル１０と同一であるため、同一の要素に同一の符号を付して説明を省略する。
【０１６７】
メモリセル１０ａの第１及び第２のインバータＩＮＶ１，ＩＮＶ２は、ヒューズデータがプログラムされていない時に当該ヒューズデータの反転データが読み出されるように、アンバランスに構成されている。これにより、イニシャルデータをヒューズデータの反転データに規定できる。
【０１６８】
図２と同様に、負荷トランジスタＬ１は、第１の電源電圧ＶＤＤ１が供給されるソースを有する。駆動トランジスタＤ１は、負荷トランジスタＬ１のゲートに接続されたゲートと、負荷トランジスタＬ１のドレインに接続されたドレインと、接地電圧ＶＳＳが供給されるソースと、を有する。
【０１６９】
負荷トランジスタＬ２は、第１の電源電圧ＶＤＤ１が供給されるソースを有する。駆動トランジスタＤ２は、負荷トランジスタＬ２のゲートに接続されたゲートと、負荷トランジスタＬ２のドレインに接続されたドレインと、接地電圧ＶＳＳが供給されるソースと、を有する。
【０１７０】
容量素子Ｃ１は、負荷トランジスタＬ２及び駆動トランジスタＤ２のゲートと、接地電圧ＶＳＳとの間に接続されている。容量素子Ｃ１は、ソースとドレインとが接続されたＮＭＯＳトランジスタからなる。
【０１７１】
図１７（ｂ）に示すように、このメモリセル１０ａの電源投入時、第１の電源電圧ＶＤＤ１は時間の経過に伴い増加する。この時、記憶ノードｔは容量素子Ｃ１により接地電圧ＶＳＳにカップリングされているため、記憶ノードｔの電圧は記憶ノードｃの電圧より低くなっている。そのため、時刻ｔ１が経過すると、先に負荷トランジスタＬ２がオンして、記憶ノードｃの電圧は第１の電源電圧ＶＤＤ１に達し、これにより、駆動トランジスタＤ１がオンして記憶ノードｔの電圧は接地電圧ＶＳＳになる。
【０１７２】
このように、この例の場合、イニシャルデータは“０”になっている。
【０１７３】
イニシャルデータを“１”に設定する場合、容量素子Ｃ１は、負荷トランジスタＬ１及び駆動トランジスタＤ１のゲートと、接地電圧ＶＳＳとの間に接続されればよい。
【０１７４】
図１８（ａ）は、第８の実施形態に係る各ヒューズ領域Ｆ１〜Ｆｍのメモリセル１０ａの他の回路図であり、図１８（ｂ）は、図１８（ａ）のメモリセル１０ａの電源投入時の特性図である。図１８（ａ）に示すように、このメモリセル１０ａは、図１７（ａ）のメモリセル１０ａの容量素子Ｃ１に代えて、容量素子Ｃ２を備えている。その他の構成は、図１７（ａ）と同一である。
【０１７５】
容量素子Ｃ２は、負荷トランジスタＬ１及び駆動トランジスタＤ１のゲートと、第１の電源電圧ＶＤＤ１との間に接続されている。容量素子Ｃ２は、ソースとドレインとが接続されたＰＭＯＳトランジスタからなる。
【０１７６】
図１８（ｂ）に示すように、電源投入後、記憶ノードｃは容量素子Ｃ２により第１の電源電圧ＶＤＤ１にカップリングされているため、記憶ノードｃの電圧は記憶ノードｔの電圧より高くなっている。そのため、時刻ｔ１が経過すると、先に負荷トランジスタＬ２がオンして、記憶ノードｃの電圧は第１の電源電圧ＶＤＤ１に達し、これにより、駆動トランジスタＤ１がオンして記憶ノードｔの電圧は接地電圧ＶＳＳになる。
【０１７７】
このように、この例の場合も、イニシャルデータは“０”になっている。
【０１７８】
イニシャルデータを“１”に設定する場合、容量素子Ｃ２は、負荷トランジスタＬ２及び駆動トランジスタＤ２のゲートと、第１の電源電圧ＶＤＤ１との間に接続されればよい。
【０１７９】
このように、各ヒューズ領域Ｆ１〜Ｆｍのメモリセル１０ａのイニシャルデータが“０”になっているため、前述した書き込み／読み出し回路２０ｄの動作により、図１１（ａ）を参照して前述した方法でＭＴＰを実現できる。
【０１８０】
各ヒューズ領域Ｆ１〜Ｆｍのメモリセル１０ａにプログラム済みを表すヒューズデータ“１”をプログラムする場合には、ＮＢＴＩを用いて、負荷トランジスタＬ２のしきい値をシフトさせればよい。
【０１８１】
このように、本実施形態によれば、各ヒューズ領域Ｆ１〜Ｆｍのメモリセル１０ａの第１及び第２のインバータＩＮＶ１，ＩＮＶ２は、ヒューズデータがプログラムされていない時に当該ヒューズデータの反転データが読み出されるように、アンバランスに構成されている。これにより、ヒューズ領域のイニシャルデータをヒューズデータの反転データに規定できる。よって、ヒューズ領域の信号状態で使用中のデータ領域を表すことができるため、ＭＴＰを構成できる。
【０１８２】
なお、第８の実施形態を第１又は第２の実施形態に組み合わせて、各ヒューズ領域を一組のビット線対に接続された複数のメモリセル１０ａで構成し、各データ領域の各ビットを一組のビット線対に接続された複数のメモリセル１０で構成し、ビット毎に多数決を取るようにしてもよい。これにより、不良確率を低減できる。
【０１８３】
また、第８の実施形態を第３の実施形態に組み合わせてもよい。
【０１８４】
（第８の実施形態の変形例）
第１及び第２のインバータＩＮＶ１，ＩＮＶ２は、以下のようにアンバランスに構成してもよい。
【０１８５】
図１９（ａ）は、第８の実施形態の変形例に係る各ヒューズ領域Ｆ１〜Ｆｍのメモリセル１０ａの回路図であり、図１９（ｂ）は、図１９（ａ）のメモリセル１０ａの電源投入時の特性図である。
【０１８６】
図１９（ａ）に示すように、ヒューズデータがプログラムされていない時に、負荷トランジスタＬ１のしきい値は、負荷トランジスタＬ２のしきい値より高い。つまり、負荷トランジスタＬ１と負荷トランジスタＬ２は、デバイス構造が異なっており、半導体記憶装置の製造時点でしきい値が異なっている。
【０１８７】
これにより、図１９（ｂ）に示すように、第１の電源電圧ＶＤＤ１が０Ｖから増加すると、時刻ｔ１ａまでは記憶ノードｔとｃの電圧はほぼ等しいが、時刻ｔ１ａの後、負荷トランジスタＬ２が先にオンして、記憶ノードｃが“１”になり、記憶ノードｔが“０”になる。つまり、イニシャルデータは“０”になっている。
【０１８８】
なお、イニシャルデータを図１９（ａ），（ｂ）の例とは逆に設定する場合、負荷トランジスタＬ１のしきい値は、負荷トランジスタＬ２のしきい値より低くすればよい。
【０１８９】
また、負荷トランジスタＬ１と負荷トランジスタＬ２は、既存の半導体記憶装置のようにデバイス構造が同じであり、ＮＢＴＩを利用して予めしきい値を異なるようにしてもよい。
【０１９０】
また、負荷トランジスタＬ１，Ｌ２のチャネル幅Ｗ及び／又はチャネル長Ｌを異ならせることで、第１及び第２のインバータＩＮＶ１，ＩＮＶ２をアンバランスに構成してもよい。あるいは、駆動トランジスタＤ１，Ｄ２のチャネル幅Ｗ及び／又はチャネル長Ｌを異ならせることで、第１及び第２のインバータＩＮＶ１，ＩＮＶ２をアンバランスに構成してもよい。
【０１９１】
さらに、第１及び第２のインバータＩＮＶ１，ＩＮＶ２の電流経路の寄生抵抗（配線抵抗など）を異ならせることで、第１及び第２のインバータＩＮＶ１，ＩＮＶ２をアンバランスに構成してもよい。つまり、負荷トランジスタＬ１のソースと駆動トランジスタＤ１のソースとの間の寄生抵抗と、負荷トランジスタＬ２のソースと駆動トランジスタＤ２のソースとの間の寄生抵抗とを異なるようにしてもよい。
【０１９２】
これらの変形例によっても、第８の実施形態と同様の効果が得られる。
【０１９３】
（第９の実施形態）
本実施形態は、ヒューズ領域Ｆ１〜Ｆｍのメモリセル１０ａにおける負荷トランジスタＬ１，Ｌ２のソースと第１の電源電圧ＶＤＤ１との間にＰＭＯＳトランジスタＰＭ１を備える点が、第８の実施形態と異なる。
【０１９４】
その他の構成は、図１６の第８の実施形態と同一であるため、同一の要素に同一の符号を付して説明を省略する。
【０１９５】
図２０（ａ），（ｂ）は、第９の実施形態に係る半導体記憶装置のヒューズ領域Ｆ１の構成を示す図である。図２０（ａ）は初期状態を説明するための図であり、（ｂ）はプログラム後の状態を説明するための図である。
【０１９６】
ヒューズ領域Ｆ１は、一例として、４つのメモリセル１０ａからなる。これらの４つのメモリセル１０ａは、同一のビット線対に接続されており、第１の実施形態と同様に多数決を取ることができる。
【０１９７】
４つのメモリセル１０ａの負荷トランジスタＬ１，Ｌ２のソースは、互いに接続されている。そして、半導体記憶装置は、対応する４つのメモリセル１０ａの負荷トランジスタＬ１，Ｌ２のソースと第１の電源電圧ＶＤＤ１との間に接続されたＰＭＯＳトランジスタＰＭ１を備える。
【０１９８】
なお、説明を明確化するため、各メモリセル１０ａにおいて、容量素子Ｃ１の図示を省略している。
【０１９９】
他のヒューズ領域Ｆ２〜Ｆｍも、同様の構成を有している。つまり、半導体記憶装置は、対応するメモリセル１０ａの負荷トランジスタＬ１，Ｌ２のソースと第１の電源電圧ＶＤＤ１との間にそれぞれ接続された複数のＰＭＯＳトランジスタＰＭ１を備える。
【０２００】
なお、第８の実施形態と同様に、各ヒューズ領域Ｆ１〜Ｆｍは１つのメモリセル１０ａからなってもよい。
【０２０１】
書き込み／読み出し回路２０ｄは、第８の実施形態で説明した機能に加え、上書き時に、ヒューズデータの反転データを書き込む次の順序のヒューズ領域に対応するＰＭＯＳトランジスタＰＭ１をオンさせ、これによりＮＢＴＩを利用して当該ＰＭＯＳトランジスタＰＭ１のしきい値をシフトさせる。
【０２０２】
これにより、図２０（ｂ）に示すように、プログラム後では、破線で囲まれたＰＭＯＳトランジスタＰＭ１と負荷トランジスタＬ２は、しきい値がシフトしている。
【０２０３】
また、書き込み／読み出し回路２０ｄは、読み出し時に、複数のＰＭＯＳトランジスタＰＭ１をオンさせた後、複数のヒューズ領域Ｆ１〜Ｆｍからプログラム順序でデータを読み出す。
【０２０４】
図２１（ａ）は、図２０（ａ）の初期状態のメモリセル１０ａの電源投入時の特性図であり、図２１（ｂ）は、図２０（ｂ）のプログラム後のメモリセル１０ａの電源投入時の特性図である。
【０２０５】
初期状態では、ＰＭＯＳトランジスタＰＭ１のしきい値はシフトしていないため、ＰＭＯＳトランジスタＰＭ１は高速にオンする。よって、負荷トランジスタＬ１，Ｌ２のソースに供給される第１の電源電圧ＶＤＤ１のランプアップが速い。そのため、図２１（ａ）に示すように、容量素子Ｃ１に応じてイニシャルデータは“０”に決まる。これは、図１７（ｂ）等の特性と同様である。
【０２０６】
プログラム後では、ＰＭＯＳトランジスタＰＭ１のしきい値はシフトしているため、ＰＭＯＳトランジスタＰＭ１は、初期状態より低速でオンする。よって、負荷トランジスタＬ１，Ｌ２のソースに供給される第１の電源電圧ＶＤＤ１のランプアップが初期状態より遅くなる。そのため、図２１（ｂ）に示すように、最初、記憶ノードｔは容量素子Ｃ１により接地電圧ＶＳＳにカップリングされているが、時間の経過と共に負荷トランジスタＬ１にサブスレッショルド電流が流れ始め、記憶ノードｔの電圧は上昇する。そして、時刻ｔ１より遅い時刻ｔ２を過ぎると、記憶ノードｔは第１の電源電圧ＶＤＤ１に達する。このように、第８の実施形態と比較して、負荷トランジスタＬ１にサブスレッショルド電流が流れる時間を長く確保できるので、より確実に、しきい値に応じてプログラムデータは“１”に決まる。
【０２０７】
図２２（ａ）は、初期状態のメモリセル１０ａから読み出されるデータのモンテカルロ解析結果を示し、図２２（ｂ）は、プログラム後のメモリセル１０ａから読み出されるデータのモンテカルロ解析結果を示す。図２２（ａ）では、イニシャルデータを“１”とし、図２２（ｂ）では、プログラム後のデータを“０”とすると共に、負荷トランジスタＬ１，Ｌ２のソースに供給される第１の電源電圧ＶＤＤ１のランプアップ時間を図２２（ａ）の１０倍にしている。
【０２０８】
図２２（ａ），（ｂ）の横軸は、負荷トランジスタＬ２のしきい値と負荷トランジスタＬ１のしきい値との差を示し、縦軸は、パワーオン後の記憶ノードｔ，ｃの電位差を示す。
【０２０９】
図２２（ａ）に示すように、プロセスばらつき等により負荷トランジスタＬ１，Ｌ２のしきい値の差がばらついても、大部分の場合で正しいイニシャルデータ“１”を読み出すことができる。しきい値の差が極端に大きい場合、誤ったイニシャルデータ“０”が読み出されてしまうが、これは多数決によって救済できる。
【０２１０】
図２２（ｂ）に示すように、負荷トランジスタＬ１，Ｌ２のしきい値の差がばらついても、大部分の場合でプログラムされた正しいデータ“０”を読み出すことができる。しきい値の差が小さい場合、誤ったデータ“１”が読み出されてしまうが、これは多数決によって救済できる。
【０２１１】
このように、本実施形態によれば、上書き時に、ヒューズデータの反転データを書き込むヒューズ領域に対応するＰＭＯＳトランジスタＰＭ１をオンさせ、これにより当該ＰＭＯＳトランジスタＰＭ１のしきい値をシフトさせるようにしている。これにより、読み出し時に、負荷トランジスタＬ１，Ｌ２のソースに供給される第１の電源電圧ＶＤＤ１のランプアップを遅くできるので、第８の実施形態よりも確実に、正しいプログラムデータを読み出すことができる。
【０２１２】
以上で説明した各実施形態によれば、ＮＢＴＩを利用してデータをプログラムすることによる不具合に対処できる。
【０２１３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２１４】
１０，１０ａ  メモリセル
１１  メモリセルアレイ
１２  単位メモリセル群
１４  メモリセル群
２０，２０ａ，２０ｂ，２０ｃ，２０ｄ  書き込み／読み出し回路
３０，３０ａ  ローデコーダ（ワード線選択回路）
４０  反転データ生成回路
５０  ＥＣＣ回路（エラーチェック回路）
５１  エラーデータ生成回路
ＳＷ１〜ＳＷｎ  スイッチ素子
Ｆ１〜Ｆｍ  ヒューズ領域
Ｄ１〜Ｄｍ  データ領域
ＩＮＶ１  第１のインバータ
ＩＮＶ２  第２のインバータ
Ｌ１，Ｌ２  負荷トランジスタ
Ｄ１，Ｄ２  駆動トランジスタ
Ｃ１，Ｃ２  容量素子
ＰＭ１  ＰＭＯＳトランジスタ
ＷＬ＜０＞〜ＷＬ＜ｍ＞  ワード線
ＢＬ＜０＞，ｂＢＬ＜０＞〜ＢＬ＜ｎ＞，ｂＢＬ＜ｎ＞  ビット線対
【図１】
2015099624.tif 000003
【図２】
2015099624.tif 000004
【図３】
2015099624.tif 000005
【図４】
2015099624.tif 000006
【図５】
2015099624.tif 000007
【図６】
2015099624.tif 000008
【図７】
2015099624.tif 000009
【図８】
2015099624.tif 000010
【図９】
2015099624.tif 000011
【図１０】
2015099624.tif 000012
【図１１】
2015099624.tif 000013
【図１２】
2015099624.tif 000014
【図１３】
2015099624.tif 000015
【図１４】
2015099624.tif 000016
【図１５】
2015099624.tif 000017
【図１６】
2015099624.tif 000018
【図１７】
2015099624.tif 000019
【図１８】
2015099624.tif 000020
【図１９】
2015099624.tif 000021
【図２０】
2015099624.tif 000022
【図２１】
2015099624.tif 000023
【図２２】
2015099624.tif 000024