(57)【要約】【課題】従来のエラー訂正方法ではビット線の固着不良に起因する１ビットのビット誤りを含む２ビットのビット誤りを訂正することができない問題があった。【解決手段】本発明にかかる半導体記憶装置は、同一のワード線方向に一群のデータが格納される複数のデータ格納セルが配置され、データとして予め定められた値を有するリファレンスデータが格納されるリファレンスデータ格納領域と、データとして他の回路から入力される第１のユーザーデータが格納されるユーザーデータ領域と、を備える記憶部１０と、リファレンスデータと、第１のユーザーデータとに基づき、固着不良が発生したビット線の位置を示す不良ビット線情報Ａ３を出力する書き込み制御部２０と、不良ビット線情報Ａ３と第１のユーザーデータに含まれる１ビット訂正用パリティデータに基づき、第１のユーザーデータに対するエラー訂正を行うエラー訂正回路７０と、を有する。【選択図】図１
2009295252.tif 000002
【特許請求の範囲】
【請求項１】
ビット線により列方向の位置が特定され、ワード線により行方向の位置が特定され、同一のワード線方向に一群のデータが格納される複数のデータ格納セルが配置され、前記データとして予め定められた値を有するリファレンスデータが格納されるリファレンスデータ格納領域と、前記データとして他の回路から入力される第１のユーザーデータが格納されるユーザーデータ領域と、を備える記憶部と、
前記リファレンスデータと、前記第１のユーザーデータとに基づき、固着不良が発生した前記ビット線の位置を示す不良ビット線情報を出力する書き込み制御部と、
前記不良ビット線情報と前記第１のユーザーデータに含まれる１ビット訂正用パリティデータに基づき、前記第１のユーザーデータに対するエラー訂正を行うエラー訂正回路と、
を有する半導体記憶装置。
【請求項２】
前記エラー訂正回路は、
前記第１のユーザーデータにおける１ビットのビット誤りの訂正と、前記第１のユーザーデータにおける２ビットのビット誤りを検出して２ビット誤り検出信号の出力と、を行う第１のエラー訂正回路と、
前記不良ビット線情報に基づき前記第１のユーザーデータのうち前記固着不良によるビット誤りに対応する位置のデータを反転させた第２のユーザーデータを出力する固着不良回復部と、
前記第２のユーザーデータにおける１ビットのビット誤りを訂正する第２のエラー訂正回路と、
前記２ビット誤り検出信号に基づき前記第１のエラー訂正回路の出力と前記第２のエラー訂正回路の出力のいずれか一方を出力するセレクタと、
を有する請求項１に記載の半導体記憶装置。
【請求項３】
前記書き込み制御部は、
前記リファレンスデータと当該リファレンスデータの期待値とを比較して読み出した前記リファレンスデータにおけるビット誤り位置を検出し、リファレンスエラービット情報を出力するリファレンスビット誤り検出部と、
前記記憶部に書き込まれる書き込みデータと前記書き込みデータに対応する前記第１のユーザーデータとを比較して前記第１のユーザーデータにおけるビット誤りの位置を検出し、ベリファイエラービット情報を出力するベリファイ誤り検出部と、
前記リファレンスエラービット情報におけるビット誤り位置と前記ベリファイエラービット情報におけるビット誤り位置とが一致した場合に当該一致したビット誤り位置を不良ビット線情報として出力する固着不良検出部と、
を有する請求項１又は２に記載の半導体記憶装置。
【請求項４】
前記固着不良検出部は、前記リファレンスエラービット情報に含まれるビット誤り位置の個数と前記ベリファイエラービット情報に含まれるビット誤り位置の個数との和が２以上である場合、前記記憶部への前記書き込みデータの書き込みが失敗したと判断し、前記不良ビット線情報を出力しない請求項３に記載の半導体記憶装置。
【請求項５】
前記リファレンスデータは、データに含まれるすべての値が第１の論理値となる第１のリファレンスデータと、データに含まれるすべての値が第２の論理値となる第２のリファレンスデータと、を含む請求項１乃至４のいずれか１項に記載の半導体記憶装置。
【請求項６】
前記不良ビット線情報を格納し、格納した前記不良ビット線情報を前記エラー訂正回路に通知する不良ビット線指定レジスタを有する請求項１乃至５のいずれか１項に記載の半導体記憶装置。
【請求項７】
不揮発性の記憶装置であって、前記不良ビット線情報を格納する不良ビット線情報格納部を有する請求項１乃至６のいずれか１項に記載の半導体記憶装置。
【請求項８】
前記記憶部は、フラッシュメモリである請求項１乃至７のいずれか１項に記載の半導体記憶装置。
【請求項９】
ビット線により列方向の位置が特定され、ワード線により行方向の位置が特定され、同一のワード線方向に一群のデータが格納される複数のデータ格納セルが配置さる記憶部を有する半導体記憶装置におけるエラー訂正方法であって、
前記記憶部から読み出され、値が予め定められたリファレンスデータと、前記記憶部から読み出され、任意の値により構成される第１のユーザーデータと、に基づき固着不良が発生した前記ビット線の位置を示す不良ビット線情報を生成し、
前記不良ビット線情報と前記第１のユーザーデータに含まれる１ビット訂正用パリティデータとに基づき、前記第１のユーザーデータに対するエラー訂正を行うエラー訂正方法。
【請求項１０】
前記誤りデータの訂正は、
前記第１のユーザーデータに１ビットのビット誤りが含まれる場合は、前記１ビット訂正用パリティデータを用いて行われ、
前記第１のユーザーデータに２ビットのビット誤りが含まれる場合は、前記不良ビット線情報に基づき前記第１のユーザーデータのうち前記固着不良によるビット誤りに対応する位置のデータを反転させた第２のユーザーデータを生成し、
前記第２のユーザーデータに対して前記１ビット訂正用パリティデータを用いて行われる請求項９に記載のエラー訂正方法。
【請求項１１】
前記不良ビット線情報は、
前記リファレンスデータと当該リファレンスデータの期待値とを比較して読み出した前記リファレンスデータにおけるビット誤り位置を示すリファレンスエラービット情報を生成し、
前記記憶部に書き込まれる書き込みデータと前記書き込みデータに対応する前記第１のユーザーデータとを比較して前記第１のユーザーデータにおけるビット誤りの位置を示すベリファイエラービット情報を生成し、
前記リファレンスエラービット情報におけるビット誤り位置と前記ベリファイエラービット情報におけるビット誤り位置とが一致した場合に当該一致したビット誤り位置を含む情報として生成される請求項９又は１０に記載のエラー訂正方法。
【請求項１２】
前記不良ビット線情報は、前記リファレンスエラービット情報に含まれるビット誤り位置の個数と前記ベリファイエラービット情報に含まれるビット誤り位置の個数との和が２以上である場合は生成されない請求項１１に記載のエラー訂正方法。
【請求項１３】
前記リファレンスデータは、データに含まれるすべての値が第１の論理値となる第１のリファレンスデータと、データに含まれるすべての値が第２の論理値となる第２のリファレンスデータと、を含む請求項９乃至１２のいずれか１項に記載のエラー訂正方法。
【請求項１４】
前記記憶部は、フラッシュメモリである請求項９乃至１３のいずれか１項に記載のエラー訂正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体記憶装置及びそのエラー訂正方法に関し、特に１ビット誤りを訂正する１ビット訂正用パリティデータを用いて２ビットの誤りデータを含む読み出しデータのエラー訂正を行う半導体記憶装置及びそのエラー訂正方法に関する。
【背景技術】
【０００２】
半導体記憶装置では、原則的には書き込んだデータが動作中に失われない特性を有するが、何らかの故障により半導体記憶装置において保持しているデータに欠損が生じる保持不良がある。このような保持不良が発生した場合、半導体記憶装置に格納されたデータに基づき動作するＣＰＵ等が誤ったデータを読み込むことで暴走するおそれがある。そこで、半導体記憶装置では、保持しているデータに誤りが含まれる場合であっても、その誤りを訂正（エラー訂正）することで、半導体記憶装置が搭載されるシステムの異常動作を防止することが行われている。
【０００３】
このエラー訂正方法の１つにＥＣＣ（Error Correcting Code）を用いた方法がある。ＥＣＣによるエラー訂正方法では、データに含まれる１ビットの誤りを訂正するために複数のビットで構成されるパリティデータ（あるいは検査ビット）を用いる。例えば、３２ビットで一群のデータが構成されるデータに対して１ビットの誤りを訂正する場合、６ビットのパリティデータが用いられる。また、３２ビットのデータに対して１ビットの誤り訂正と２ビットの誤り検出を行う場合、パリティデータは７ビットになる。さらに、３２ビットのデータに対して２ビットの誤り訂正を行う場合、パリティデータは１３ビットになる。
【０００４】
このように、ＥＣＣによるエラー訂正方法は、訂正する誤りデータの個数が増加するとパリティデータのビット数が増加する特性を有する。そのため、訂正する誤りデータの個数が増加すると、パリティデータが半導体記憶装置の記憶容量に占める割合が増加する。パリティデータは、本来記憶したいデータに対して付加される冗長データであるため、パリティデータの増加により半導体記憶装置の記憶容量が減少する問題がある。そこで、少ないパリティデータで多くの誤りデータを訂正するエラー訂正方法が特許文献１に開示されている。
【０００５】
特許文献１に記載のエラー訂正回路１００のブロック図を図８に示す。図８に示すようにエラー訂正回路１００は、シンドローム生成回路１０１、排他的論理和回路（ＥＸ−ＯＲ）１０２、１ビット誤り検出回路１０３、１ビット誤りシンドローム記憶回路１０４、２ビット誤り検出回路１０５、セレクタ１０６、デコード回路１１０、１１１、訂正回路１１２を有する。
【０００６】
エラー訂正回路１００は、１ビット誤り検出回路１０３によりデータの１ビット誤りを検出する。そして、１ビット誤りシンドローム記憶回路１０４は、１ビット誤り検出回路１０３からの指示によりシンドロームを記憶する。また、２ビット誤り検出回路１０５において２ビット誤りを検出したときに、ＸＯＲ回路１０２によりソフトエラーによる１ビット誤りシンドロームを生成し、セレクタ１０６を介してそのシンドロームをデコード回路１１０に与える。デコード回路１１０はソフトエラーによる誤りを訂正する信号を生成する。同時に、デコード回路１１１は、１ビット誤りシンドローム記憶回路１０４が記憶しているシンドロームを、固定故障による１ビット誤り時のシンドロームとして固定故障による誤りを訂正する信号を生成する。そして、訂正回路１１２がデコード回路１１０とデコード回路１１１の指示により２ビット誤りを訂正する。
【０００７】
このように、エラー訂正回路１００では、１ビットの誤りが検出されると、検出された１ビットの誤りに対応したシンドロームを記憶する。また、２ビット誤りがあった場合には、記憶されたシンドロームを用いて２ビットの誤りのデータから１ビット誤りのシンドロームを生成する。その後、１番目の誤りに対応するシンドロームと２番目の誤りに対応するシンドロームをそれぞれデコードする。そして、デコードされた値に基づき、エラー箇所の値をそれぞれ反転することでエラー訂正を行う。これにより、エラー訂正回路１００では、１ビットの誤り訂正と２ビットの誤り検出に対応する検査ビットを用いて、２ビットの誤り訂正が可能となる。
【特許文献１】特開平５−１９７５８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ここで、エラー訂正回路１００における課題を説明するための図を図９に示す。図９の左側の図はエラー訂正回路１００で対応可能な不良モードにおける記憶部のデータの状態を示し、右側の図はエラー訂正回路１００で対応できない不良モードにおける記憶部のデータの状態を示す。図９に示す例では、記憶部は、ビット線Ｂ１〜Ｂ９及びワード線Ｗ１〜Ｗ１２により特定される複数のデータ格納セルを有するものする。また、記憶部は、ビット線Ｂ４及びワード線Ｗ５により特定されるデータ格納セルと、ビット線Ｂ７及びワード線Ｗ３により特定されるデータ格納セルと、ビット線Ｂ８及びワード線Ｗ９により特定されるデータ格納セルと、に不良データを有するものとする。また、記憶部のデータはワード線単位で読み出され、読み出されたデータ毎にエラー訂正が行われるものとする。
【０００９】
このような場合においてエラー訂正回路１００は、図９の左図に示す不良モードに対して、読み出したデータのうち１ビット誤りを含む最初のデータの不良ビットの位置を１ビット誤りシンドローム記憶回路１０４に記憶する。図９の右図に示す例では、ワード線Ｗ５に格納されるデータを誤りデータを含む最初のデータとして読み出したとき、ビット線Ｂ４の不良の位置が１ビット誤りシンドローム記憶回路１０４に記憶される。
【００１０】
このとき、図９の左図に示す例では、他のビット誤りを含むデータには１つのみのエラーが含まれるため、エラー訂正回路１００は、他のビット誤りを含むデータに対しては、１ビット誤りシンドローム記憶回路１０４のシンドロームを使用することなくエラー訂正を行う。
【００１１】
しかしながら、フラッシュメモリ等の半導体記憶装置では、記憶部に対するデータの書き込み動作においてビット線の固着不良が発生することがある。そこで、図９の右図に左図に示す不良モードに加えてビット線Ｂ２にビット線の固着不良が発生した場合の記憶部の状態を示す。この場合、ビット誤りを含むデータは、それぞれ２ビットの誤りデータを含むことになる。
【００１２】
このような場合、エラー訂正回路１００は、ワード線Ｗ５に格納されるデータの２ビットエラーを２ビット誤り検出回路１０５が検出し、ビット線Ｂ４のビット誤り位置をデコード回路１１１により算出し、ビット線Ｂ２のビット誤り位置をデコード回路１１０により算出する。これにより、エラー訂正回路１００は、ワード線Ｗ５のデータに対してはエラー訂正が可能になる。
【００１３】
しかしながら、ワード線Ｗ３及びワード線Ｗ９に格納されるデータのビット誤りは、１ビット誤りシンドローム記憶回路１０４に記憶されているシンドロームとは異なる位置に２つのビット誤りを有する。一方、エラー訂正回路１００は、１ビット誤りシンドローム記憶回路１０４に記憶しているシンドローム以外のビット誤りに対しては１ビットの誤り訂正能力しかない。そのため、図９の左図に示すような不良モードに対して、エラー訂正回路１００は、確実なエラー訂正を行うことができない問題がある。
【課題を解決するための手段】
【００１４】
本発明にかかる半導体記憶装置の一態様は、ビット線により列方向の位置が特定され、ワード線により行方向の位置が特定され、同一のワード線方向に一群のデータが格納される複数のデータ格納セルが配置され、前記データとして予め定められた値を有するリファレンスデータが格納されるリファレンスデータ格納領域と、前記データとして他の回路から入力される第１のユーザーデータが格納されるユーザーデータ領域と、を備える記憶部と、前記リファレンスデータと、前記第１のユーザーデータとに基づき、固着不良が発生した前記ビット線の位置を示す不良ビット線情報を出力する書き込み制御部と、前記不良ビット線情報と前記第１のユーザーデータに含まれる１ビット訂正用パリティデータに基づき、前記第１のユーザーデータに対するエラー訂正を行うエラー訂正回路と、を有する。
【００１５】
また、本発明にかかる半導体記憶装置におけるエラー訂正方法は、ビット線により列方向の位置が特定され、ワード線により行方向の位置が特定され、同一のワード線方向に一群のデータが格納される複数のデータ格納セルが配置さる記憶部を有する半導体記憶装置におけるエラー訂正方法であって、前記記憶部から読み出され、値が予め定められたリファレンスデータと、前記記憶部から読み出され、任意の値により構成される第１のユーザーデータと、に基づき固着不良が発生した前記ビット線の位置を示す不良ビット線情報を生成し、前記不良ビット線情報と前記第１のユーザーデータに含まれる１ビット訂正用パリティデータとに基づき、前記第１のユーザーデータ対するエラー訂正を行う。
【００１６】
本発明にかかる半導体記憶装置及びそのエラー訂正方法では、リファレンスデータとユーザーデータとにより、ビット線の固着不良が発生した位置を検出する。そして、ビット線の固着不良が発生した位置を示す不良ビット線情報とユーザーデータに含まれる１ビット訂正用パリティデータとを用いてユーザーデータに対するエラー訂正を行う。これにより、本発明にかかる半導体記憶装置及びそのエラー訂正方法では、固着不良の位置を特定した固着不良部分のエラー訂正に加え、１ビット訂正用パリティデータによる保持不良等のランダムに発生するビット誤りに対するエラー訂正動作を行うことができる。
【発明の効果】
【００１７】
本発明にかかるエラー訂正回路によれば、１ビット訂正用パリティデータを用いて固着不良によるビット誤りを含む２ビットのビット誤りに対するエラー訂正を実現することができる。
【発明を実施するための最良の形態】
【００１８】
実施の形態１
以下、本発明の実施の形態について図面を参照して説明する。図１に実施の形態１にかかる半導体記憶装置１のブロック図を示す。図１に示すように、半導体記憶装置１は、記憶部１０、書き込み制御部２０、書き込みシーケンサ３０、不良ビット線情報格納部４０、読み出しシーケンサ５０、不良ビット線指定レジスタ６０、エラー訂正回路７０を有している。
【００１９】
記憶部１０は、格子状に配置される複数のデータ格納セルを有し、複数のデータ格納セルにはユーザーデータ及びリファレンスデータが格納される。複数のデータ格納セルは、ビット線により列方向の位置が特定され、ワード線により行方向の位置が特定される。そして、記憶部１０へのデータの書き込み及び読み出しはワード線単位で行われる。つまり、同一のワード線に接続される複数のデータ格納セルに格納されたデータが一群のデータとして扱われる。また、記憶部１０は、ユーザーデータが格納されるユーザーデータ格納領域と、リファレンスデータが格納されるリファレンスデータ格納領域を有する。ユーザーデータ格納領域に対しては、外部から入力されるユーザーデータの書き込みと、すでに格納されているユーザーデータの読み出しが行われる。なお、本実施の形態では、記憶部１０としてフラッシュメモリを利用するものとする。
【００２０】
ここで、本実施の形態においては、ユーザーデータは、格納されるデータの本体部分となる処理データ部と処理データ部に含まれるデータに対する１ビット訂正用パリティデータを含むものとする。一方、リファレンスデータは、データに含まれる値がすべて同一となるものであって、予め書き込まれ、半導体記憶装置１の使用時には読み出し動作のみが行われる。本実施の形態では、リファレンスデータは、第１の論理値（例えば"０"）のみで構成される（以下、このようなデータの状態をＡＬＬ０と称す）第１のリファレンスデータと、第２の論理値（例えば"１"）のみで構成される（以下、このようなデータの状態をＡＬＬ１と称す）第２のリファレンスデータと、を有する。
【００２１】
書き込み制御部２０は、記憶部１０に対するデータの書き込み処理と、書き込んだデータの整合性を確認するベリファイ処理と、ビット線の不良位置を示す不良ビット線情報の出力とを行う。書き込み制御部２０は、書き込みデータ格納バッファ２１、リファレンスビット誤り検出部２２、リファレンスデータ用エラービット格納部２３、ベリファイ誤り検出部２４、ベリファイ用エラービット格納部２５、固着不良検出部２６を有する。
【００２２】
書き込みデータ格納バッファ２１は、他の回路から入力される書き込みデータをデータの書き込み処理が完了するまでの間保持し、記憶部１０に対して出力する。
【００２３】
リファレンスビット誤り検出部２２は、記憶部１０のリファレンスデータ格納領域から第１のリファレンスデータと第２のリファレンスデータとを順次読み出し、それぞれのリファレンスデータとリファレンスデータに対応する期待値とを比較して、リファレンスデータにおけるビット誤りを検出する。より具体的には、リファレンスビット誤り検出部２２は、第１のリファレンスデータとＡＬＬ０となる期待値との比較、及び、第２のリファレンスデータとＡＬＬ１となる期待値との比較を行う。そして、リファレンスビット誤り検出部２２は、リファレンスデータのいずれかのビットにおいて、期待値と異なるデータがあれば、そのビットのビット線アドレスをリファレンスエラービット情報Ａ１として出力する。また、本実施の形態では、リファレンスデータ用エラービット格納部２３が設けられる。リファレンスデータ用エラービット格納部２３は、リファレンスビット誤り検出部２２が出力するリファレンスエラービット情報Ａ１を格納するレジスタである。
【００２４】
ベリファイ誤り検出部２４は、記憶部１０のユーザーデータ格納領域からユーザーデータ（以下の説明では、記憶部１０から読み出したユーザーデータを第１のユーザーデータと称す）を読み出し、第１のユーザーデータとして書き込まれる書き込みデータ（書き込みデータ格納バッファ２１が出力する）と記憶部１０から読み出される第１のユーザーデータとを比較する。そして、ベリファイ誤り検出部２４は、書き込みデータと書き込みデータに対応する第１のユーザーデータとに不一致の箇所を検出した場合に、そのビットに対応するビット線アドレスをベリファイエラービット情報Ａ２として出力する。また、本実施の形態では、ベリファイ用エラービット格納部２５が設けられる。ベリファイ用エラービット格納部２５は、ベリファイ誤り検出部２４が出力するベリファイエラービット情報Ａ２を格納するレジスタである。
【００２５】
固着不良検出部２６は、リファレンスデータ用エラービット格納部２３に格納されるリファレンスエラービット情報とベリファイ用エラービット格納部２５に格納されるベリファイエラービット情報とを参照し、リファレンスエラービット情報により示されるビット線アドレスとベリファイエラービット情報により示されるビット線アドレスとが一致していれば、その一致したアドレスを不良ビット線情報Ａ３として出力する。つまり、不良ビット線情報Ａ３は、リファレンスデータと第１のユーザーデータとに共通に含まれるビット誤りの位置を示す情報であって、データに含まれるビット誤りの位置を示す情報である。
【００２６】
書き込みシーケンサ３０は、書き込み制御部２０の各ブロックの動作順序を制御する。また、書き込みシーケンサ３０は、不良ビット線指定レジスタ６０に格納されている値を参照して、不良ビット線指定レジスタ６０に検出された不良ビット線情報Ａ３を格納するか否かを制御する。なお、不良ビット線指定レジスタ６０は、不良ビット線情報Ａ３が格納され、格納された値は、エラー訂正回路７０により参照される。
【００２７】
不良ビット線情報格納部４０は、不揮発性の記憶部であって、不良ビット線情報Ａ３を格納する。本実施の形態では、不良ビット線情報格納部４０に格納された不良ビット線情報Ａ３は、半導体記憶装置１の次回の起動時に用いられる。読み出しシーケンサ５０は、半導体記憶装置１の起動時に不良ビット線情報格納部４０を参照して、不良ビット線指定レジスタに格納する値を決定する。例えば、不良ビット線情報格納部４０に不良ビット線情報Ａ３が格納されていれば、その値を不良ビット線指定レジスタ６０に格納する。一方、不良ビット線情報格納部４０に不良ビット線情報Ａ３が格納されていなければ、ＡＬＬ０となる値を不良ビット線指定レジスタ６０に格納する。
【００２８】
エラー訂正回路７０は、不良ビット線情報Ａ３及び第１のユーザーデータに含まれる１ビット訂正用パリティデータに基づき、第１のユーザーデータに含まれるビット誤りを訂正して後段回路に出力する。ここで、エラー訂正回路７０の詳細なブロック図を図２に示し、エラー訂正回路７０についてさらに詳しく説明する。
【００２９】
図２に示すように、エラー訂正回路７０は、第１のＥＣＣデコーダ７１、第２のＥＣＣデコーダ７６、セレクタ７２、固着不良回復部７３を有する。第１のＥＣＣデコーダ７１は、第１のユーザーデータに含まれる１ビット訂正用パリティデータを用いて第１のユーザーデータに含まれる１ビットのビット誤りの訂正と２ビットのビット誤りの検出とを行う。第１のＥＣＣデコーダ７１は、１ビットの誤りを訂正した訂正後の第１のユーザーデータを出力データＡ４として出力する。一方、第１のＥＣＣデコーダ７１は、２ビットのビット誤りを検出した場合には、２ビット誤り検出信号Ａ５を出力する。
【００３０】
固着不良回復部７３は、不良ビット線情報に基づき第１のユーザーデータに含まれる固着不良によるビット誤りに対応する位置のデータを反転させた第２のユーザーデータを出力する。固着不良回復部７３は、インバータ７４とセレクタ７５とを有する。インバータ７４は、第１のユーザーデータに含まれるデータの値を反転させる。セレクタ７５は、不良ビット線指定レジスタ６０から与えられる不良ビット線情報に基づき、固着不良が発生しているビット線に対応する位置のデータをインバータ７４により反転されたデータと置き換えて第２のユーザーデータとして出力する。つまり、固着不良回復部７３は、第１のユーザーデータのうち固着不良に対応するビット誤りの訂正を行う。
【００３１】
第２のＥＣＣデコーダ７６は、第２のユーザーデータに含まれる１ビット訂正用パリティデータを用いて第２のユーザーデータに含まれる１ビットのビット誤りの訂正を行う。第２のＥＣＣデコーダ７６は、１ビットの誤りを訂正した訂正後の第２のユーザーデータを出力データＡ６として出力する。
【００３２】
セレクタ７２は、２ビット誤り検出信号Ａ５に基づき第１のＥＣＣデコーダ７１が出力する出力データＡ４と第２のＥＣＣデコーダ７６が出力する出力データＡ６とのいずれか一方を選択して出力する。より具体的には、セレクタ７２は、２ビット誤り検出信号Ａ５が未検出状態を示す場合は出力データＡ４を出力し、２ビット誤り検出信号Ａ５が検出態を示す場合は出力データＡ６を出力する。
【００３３】
次に、実施の形態１にかかる半導体記憶装置１の動作について説明する。半導体記憶装置１では、記憶部１０への書き込み処理が行われる度にビット線の固着不良が発生しているか否かを判定する。また、半導体記憶装置１は、記憶部１０からユーザーデータを読み出す場合、ユーザーデータに含まれるビット誤りの個数に応じてエラー訂正方法を選択する。以下では、書き込み処理の手順と読み出し処理の手順とに分けて半導体記憶装置１の動作について説明する。
【００３４】
図３、４に半導体記憶装置１における書き込み処理の手順を示すフローチャートを示す。まず、書き込み処理が開始されると、半導体記憶装置１はベリファイ処理によりユーザーデータの書き込みが正常に行われたか否かを判断する（ステップＳ１〜Ｓ５）。
【００３５】
ステップＳ１では、書き込みデータ格納バッファ２１が出力するユーザーデータを記憶部１０に書き込む書き込み動作が行われる。そして、ステップＳ２において、ステップＳ１で書き込んだデータを読み出し、書き込みデータと読み出しデータ（第１のユーザーデータ）とが一致しているか否かを判断するベリファイ処理が行われる。このベリファイ処理はベリファイ誤り検出部２４によって行われる。そして、ステップＳ３においてステップＳ２の一致比較結果を参照し、一致比較結果が一致状態を示している場合は、書き込みエラー（ベリファイエラー）なしとして書き込み動作を正常終了する。一方、ステップＳ３において一致比較結果が不一致状態を示している場合は、書き込みベリファイエラーが存在するとして、ステップＳ４に進む。ステップＳ４では、書き込み動作のリトライ回数を判断し、リトライ回数が上限値に未だ達していない場合は、リトライ動作により、処理をステップＳ１に戻す。一方、ステップＳ４においてリトライ回数が上限値に達していると判断された場合、処理をステップＳ５に進める。ステップＳ５の処理は、ステップＳ４までに判明したビット誤りが発生しているビット線アドレスをベリファイエラービット情報としてベリファイ用エラービット格納部２５に格納する。なお、ステップＳ４の判断処理は、書き込みシーケンサ３０が行う。また、ステップＳ５の格納処理は、書き込みシーケンサ３０が判断結果に基づきベリファイ用エラービット格納部２５に制御指示を与えることで行われる。
【００３６】
続いて、半導体記憶装置１は、ステップＳ６〜Ｓ８においてリファレンスデータのビット誤りの検索を行う。まず、ステップＳ６においてリファレンスビット誤り検出部２２が記憶部１０から第１及び第２のリファレンスデータを読み出す。そして、ステップＳ７において、リファレンスビット誤り検出部２２は、第１のリファレンスデータが期待値（例えば、ＡＬＬ０）と一致するか及び第２のリファレンスデータが期待値（例えば、ＡＬＬ１）と一致するかを判断する。このとき、第１のリファレンスデータ及び第２のリファレンスデータがいずれも期待値と一致した場合は、書き込みエラーが発生したものと判断し、書き込みを終了する。一方、第１のリファレンスデータと第２のリファレンスデータのいずれかに不一致のビットがあった場合、ステップＳ８に進む。ステップＳ８では、書き込みシーケンサ３０がリファレンスデータ用エラービット格納部２３に格納指示を与え、リファレンスデータ用エラービット格納部２３にステップＳ７において検出された不一致部分に相当するビット線アドレスをリファレンスエラービット情報として格納する。
【００３７】
次に、半導体記憶装置１は、発生したビット誤りがビット線の固着不良によるものか否かをステップＳ９、Ｓ１０で判断する。ステップＳ９では、ベリファイエラービット情報に含まれるビット線アドレスとリファレンスエラービット情報に含まれるビット線アドレスとの一致比較結果を判断する。ステップＳ９における判断において、不一致と判断された場合、書き込みエラーが発生したとして書き込み処理を終了する。一方、ステップＳ９における判断において、一致と判断された場合、ステップＳ１０に進む。ステップＳ１０では、ベリファイエラービット情報に含まれるビット誤りの個数又はリファレンスエラービット情報に含まれるビット誤りの個数が１ビットであるか否かを判断する。ステップＳ１０の判断において、ビット誤りの個数が２ビット以上あると判断された場合、書き込みエラーが発生したとして書き込み処理を終了する。一方、ステップＳ１０の判断において、ビット誤りの個数が１ビットであると判断された場合、固着不良検出部２６は、検出された１ビット分のビット線アドレスを不良ビット線情報として出力し、ステップＳ１１に処理を進める。なお、ステップＳ９及びＳ１０の判断処理は、固着不良検出部２６において行われる処理である。
【００３８】
ステップＳ１１〜Ｓ１４の処理では、検出結果となる不良ビット線情報を不良ビット線指定レジスタ６０及び不良ビット線情報格納部４０に格納するか否かを判断する。ステップＳ１１では、書き込みシーケンサ３０が、不良ビット線指定レジスタ６０に格納されている値を参照し、以前の動作において検出された不良ビット線情報があるか否かを判断する。このとき、不良ビット線指定レジスタ６０に格納されている値がＡＬＬ０であれば、以前の動作において不良ビット線情報が検出されていないと判断し、ステップＳ１２の処理に進む。
【００３９】
ステップＳ１２では、書き込みシーケンサ３０の制御指示に応じて、不良ビット線指定レジスタ６０にステップＳ１１において出力された不良ビット線情報が格納される。また、ステップＳ１３では、不良ビット線情報格納部４０にステップＳ１１において出力された不良ビット線情報が格納される。ステップＳ１３が完了すると、書き込み処理は正常終了する。
【００４０】
一方、ステップＳ１１において、不良ビット線指定レジスタ６０に格納されている値がＡＬＬ０でないと判断された場合、以前の動作において検出された不良ビット線情報があると判断し、ステップＳ１４の処理に進む。ステップＳ１４では、書き込みシーケンサ３０が、すでに不良ビット線指定レジスタ６０に格納されている不良ビット線情報とステップＳ１０で検出された不良ビット線情報とが一致するか否かを判断する。ステップＳ１４の判断において、一致すると判断された場合、以前に検出された不良ビット線情報と今回検出された不良ビット線情報に相違がないため、書き込み処理を正常終了する。一方、ステップＳ１４の判断において、不一致であると判断された場合、以前に検出された不良ビット線情報と今回検出された不良ビット線情報に違いがあるため、書き込みエラーとして終了する。
【００４１】
続いて、半導体記憶装置１における読み出し処理の手順のフローチャートを図５、６に示し、この処理について説明する。半導体記憶装置１では、半導体記憶装置１に起動後であって半導体記憶装置１の通常動作前に、まず、不良ビット線情報格納部４０から以前に検出された不良ビット線情報を読み込み、通常動作前の設定を行う（ステップＳ２０〜Ｓ２５）。
【００４２】
ステップＳ２０では、まず半導体記憶装置１のリセットを解除する。その後、ステップＳ２１において、読み出しシーケンサ５０が、不良ビット線情報格納部４０から不良ビット線情報を読み出す。そして、ステップＳ２２では、読み出しシーケンサ５０が不良ビット線情報格納部４０に不良ビット線情報が存在するか否かを判定する。ステップＳ２２において、不良ビット線情報格納部４０に以前に検出された不良ビット線情報がないと判断された場合、ステップＳ２３で読み出しシーケンサ５０は、不良ビット線指定レジスタ６０にＡＬＬ０を設定する。一方、ステップＳ２２不良ビット線情報格納部４０に以前に検出された不良ビット線情報があると判断された場合、ステップＳ２４で読み出しシーケンサ５０は、不良ビット線指定レジスタ６０に読み出した不良ビット線情報を設定する。
【００４３】
ステップＳ２３又はステップＳ２４の動作が完了すると半導体記憶装置１は通常動作を開始する（ステップＳ２５）。そして、ステップＳ２６において、他の回路からユーザーデータの読み出し要求が発生すると、記憶部１０から第１のユーザーデータが読み出される。
【００４４】
半導体記憶装置１は、読み出した第１のユーザーデータにおいてビット誤りがあるか否かをエラー訂正回路７０の第１のＥＣＣデコーダ７１で判断する（ステップＳ２７）。このとき、第１のユーザーデータにビット誤りがなければ、読み出した第１のユーザーデータをそのまま後段回路に出力することで、正常なデータが読み出される。一方、ステップＳ２７において、ビット誤りがあると判断された場合、第１のＥＣＣデコーダ７１は、ビット誤りの個数を判定する（ステップＳ２８）。ステップＳ２８において、ビット誤りの個数が１つであると判断された場合、第１のＥＣＣデコーダにおいて１ビットのビット誤りを訂正して訂正後の第１のユーザーデータを読み出しデータとして、正常終了する（ステップＳ２９）。一方、ステップＳ２８において、ビット誤りの個数が２つであると判断された場合、ステップＳ３０に進む。
【００４５】
ステップＳ３０では、固着不良回復部７３は、不良ビット線指定レジスタ６０によって指定された１ビットのデータを訂正（反転）させ、さらに第２のＥＣＣデコーダ７６が、残りの１ビット誤りを訂正して読み出しデータとして出力することで、正常なデータが読み出し可能となる。
【００４６】
上記説明より、本実施の形態にかかる半導体記憶装置１は、書き込み制御部２０において検出されたビット線の固着不良に起因するビット誤りの位置を示す不良ビット線情報を生成し、この不良ビット線情報に基づき固着不良に起因するビット誤りを訂正し、保持不良等に起因するビット誤りは１ビット訂正用パリティデータを用いて訂正する。
【００４７】
ここで、本実施の形態にかかる半導体記憶装置１において訂正可能な記憶部１０の不良モードを図７に示す。図７の左図に示す不良モードはビット線の固着不良が発生していないものであり、図７の右図に示す不良モードはビット線の固着不良が発生した場合のものである。図７の左図に示す不良モードは、データに保持不良による不良が１つ含まれるものである。本実施の形態にかかる半導体記憶装置１では、図７の左図に示す不良モードに対しては、第１のＥＣＣデコーダ７１によるエラー訂正が行われる。一方、図７の右図に示す不良モードは、各データにビット線の固着不良によるビット誤りと保持不良によるビット誤りとを含む。本実施の形態にかかる半導体記憶装置１では、図７の右図に示す不良モードに対しては、固着不良回復部７３と第２のＥＣＣデコーダ７６によるエラー訂正が行われる。
【００４８】
このように、半導体記憶装置１では、ビット線固着不良に起因するビット誤りの位置を不良ビット線情報により特定できるため、第１のユーザーデータに含まれる１ビット訂正用パリティデータを保持不良によるビット誤りの訂正に用いることができる。これにより、半導体記憶装置１は、ビット線の固着不良による１ビットのビット誤りを含む２ビットの誤り訂正を１ビット訂正用パリティデータのみで行うことができる。このように、少ない訂正ビット数に対応したパリティデータによって、より多くの誤りを訂正することで、半導体記憶装置１では、記憶部の記憶容量に占める冗長データの割合を削減できるため、記憶容量の増大とデータの信頼性の向上とを実現することができる。
【００４９】
また、半導体記憶装置１がフラッシュメモリ等である場合、データの書き込み時におけるビット線の固着不良が発生する可能性がある。しかしながら、このような半導体記憶装置において、本実施の形態にかかるエラー訂正方法を利用することで、ビット線の固着不良に対するパリティデータを必要としない。つまり、本実施の形態にかかる半導体記憶装置によれば、ビット線の固着不良に対応するために記憶部１０の記憶容量を犠牲にすることがない。
【００５０】
さらに、本実施の形態にかかる半導体記憶装置１によれば、不良ビット線情報を生成する場合に、従来から行われているベリファイ処理にリファレンスデータの整合性の判断処理及びベリファイ処理の結果とリファレンスデータの整合性の判断処理の結果の比較処理を加えるのみである。追加される処理は、比較動作だけで複雑な計算を必要としないため、半導体記憶装置１の処理能力に与える影響は非常に軽微であり、動作速度を損なうことはない。また、書き込み時においてベリファイ後の処理（図３のステップＳ３以降の処理）が発生することは稀であるため、このことからも半導体記憶装置１は動作速度を損なうことはないと言える。
【００５１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、エラー訂正に用いられる回路は、ＥＣＣ処理に対応したものでなくてもよく、そのシステムにおいて用いられるエラー訂正方法を実現できるエラー訂正回路を用いることが可能である。
【図面の簡単な説明】
【００５２】
【図１】実施の形態１にかかる半導体記憶装置のブロック図である。
【図２】実施の形態１にかかるエラー訂正回路のブロック図である。
【図３】実施の形態１にかかる半導体記憶装置の書き込み処理の手順を示すフローチャートである。
【図４】図３のフローチャートに続くフローチャートである。
【図５】実施の形態１にかかる半導体記憶装置の読み出し処理の手順を示すフローチャートである。
【図６】図５のフローチャートに続くフローチャートである。
【図７】実施の形態１にかかる半導体記憶装置において対応可能な記憶部の不良モードを示す図ある。
【図８】従来例にかかる半導体記憶装置のブロック図である。
【図９】従来例にかかる半導体記憶装置において対応できない記憶部の不良モードを示す図ある。
【符号の説明】
【００５３】
１    半導体記憶装置
１０    記憶部
２０    書き込み制御部
２１    データ格納バッファ
２２    リファレンスビット誤り検出部
２３    リファレンスデータ用エラービット格納部
２４    ベリファイ誤り検出部
２５    ベリファイ用エラービット格納部
２６    固着不良検出部
３０    書き込みシーケンサ
４０    不良ビット線情報格納部
５０    読み出しシーケンサ
６０    不良ビット線指定レジスタ
７０    エラー訂正回路
７１、７６    ＥＣＣデコーダ
７２、７５    セレクタ
７３    固着不良回復部
７４    インバータ
Ａ１    リファレンスエラービット情報
Ａ２    ベリファイエラービット情報
Ａ３    不良ビット線情報
Ａ４、Ａ６    出力データ
Ａ５    ２ビット誤り検出信号
【図１】
2009295252.tif 000003
【図２】
2009295252.tif 000004
【図３】
2009295252.tif 000005
【図４】
2009295252.tif 000006
【図５】
2009295252.tif 000007
【図６】
2009295252.tif 000008
【図７】
2009295252.tif 000009
【図８】
2009295252.tif 000010
【図９】
2009295252.tif 000011