(57)【要約】【課題】モニターセルを用いると情報を記録するメモリセルの量が減少する。【解決手段】半導体記憶装置は、複数のメモリチップと、複数のパラメータ記憶部と、誤り訂正符号化部と、パラメータ処理部とを備える。メモリチップは、蓄えられた電荷量に応じた情報を記憶する。パラメータ記憶部は、対応するメモリチップに対する情報の書き込みまたは読み込みに用いる信号の電気的特性を定めるパラメータを記憶する。誤り訂正符号化部は、規定数以内のメモリチップに記憶された情報の誤りを訂正可能な第１訂正符号を生成する。パラメータ処理部は、規定数以内の個数のメモリチップに対するパラメータを変更し、変更したパラメータをパラメータ記憶部に書き込む。【選択図】図１
2012068825.tif 000002
【特許請求の範囲】
【請求項１】
蓄えられた電荷量に応じた情報を記憶する複数の半導体記憶チップと、
複数の前記半導体記憶チップのそれぞれに対応して設けられ、対応する前記半導体記憶チップに対する前記情報の書き込みまたは読み込みに用いる信号の電気的特性を定めるパラメータを記憶する複数のパラメータ記憶部と、
複数の前記半導体記憶チップに記憶された前記情報から、複数の前記半導体記憶チップのうち予め定められた規定数以内の前記半導体記憶チップに記憶された前記情報の誤りを訂正可能な第１訂正符号を生成する誤り訂正符号化部と、
前記規定数以内の個数の前記半導体記憶チップに対する前記パラメータを変更し、変更した前記パラメータを前記パラメータ記憶部に書き込むパラメータ処理部と、
を備えることを特徴とする半導体記憶装置。
【請求項２】
前記第１訂正符号の復号処理を行うことにより、前記情報の誤りを訂正する誤り訂正復号部をさらに備え、
前記パラメータ処理部は、前記パラメータを変更した前記半導体記憶チップに記憶された前記情報の誤りが訂正された場合に、変更した前記パラメータを再度変更して前記パラメータ記憶部に書き込むこと、
を特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記パラメータ処理部は、前記パラメータを変更した前記半導体記憶チップに記憶された前記情報の誤りが訂正された場合に、変更した前記パラメータを変更前の前記パラメータに戻して前記パラメータ記憶部に書き込むこと、
を特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
前記パラメータ処理部は、前記パラメータを変更した前記半導体記憶チップに記憶された前記情報の誤りが訂正された場合に、変更した前記パラメータを、訂正結果に応じて定められる前記パラメータに変更して前記パラメータ記憶部に書き込むこと、
を特徴とする請求項２に記載の半導体記憶装置。
【請求項５】
前記パラメータを変更した前記半導体記憶チップに記憶された前記情報の誤りが訂正された場合に、訂正された前記情報を、前記パラメータを変更した前記半導体記憶チップ以外の前記半導体記憶チップに書き込むデータ書き込み部をさらに備えること、
を特徴とする請求項１に記載の半導体記憶装置。
【請求項６】
前記誤り訂正符号化部は、さらに、前記半導体記憶チップごとに、前記半導体記憶チップに記憶された複数の前記情報から、複数の前記情報の誤りを訂正可能な第２訂正符号を生成し、
前記第２訂正符号の復号処理を行うことにより、前記情報の誤りを訂正する誤り訂正復号部をさらに備えること、
を特徴とする請求項１に記載の半導体記憶装置。
【請求項７】
前記第１訂正符号の復号処理を行うことにより、前記情報の誤りを訂正する誤り訂正復号部をさらに備え、
前記パラメータ処理部は、前記誤り訂正復号部により前記情報の誤りが訂正された前記半導体記憶チップに対する前記パラメータを変更し、変更した前記パラメータを前記パラメータ記憶部に書き込むこと、
を特徴とする請求項１に記載の半導体記憶装置。
【請求項８】
前記半導体記憶チップに対する前記情報の書き込みおよび読み込みの状態を表す管理データを生成する監視部をさらに備え、
前記パラメータ処理部は、前記管理データが予め定められた条件を満たした場合に、前記規定数以内の個数の前記半導体記憶チップに対する前記パラメータを変更し、変更した前記パラメータを前記パラメータ記憶部に書き込むこと、
を特徴とする請求項１に記載の半導体記憶装置。
【請求項９】
前記パラメータは、前記情報の書き込みまたは読み込みに用いる電流、電圧、電圧のパルスの幅、および、電圧のパルスの回数の少なくとも１つであること、
を特徴とする請求項１に記載の半導体記憶装置。
【請求項１０】
半導体記憶装置の制御方法であって、
前記半導体記憶装置は、蓄えられた電荷量に応じた情報を記憶する複数の半導体記憶チップと、複数の前記半導体記憶チップのそれぞれに対応して設けられ、対応する前記半導体記憶チップに対する前記情報の書き込みまたは読み込みに用いる信号の電気的特性を定めるパラメータを記憶する複数のパラメータ記憶部と、を備え、
誤り訂正符号化部が、複数の前記半導体記憶チップに記憶された前記情報から、複数の前記半導体記憶チップのうち予め定められた規定数以内の前記半導体記憶チップに記憶された前記情報の誤りを訂正可能な第１訂正符号を生成する誤り訂正符号化ステップと、
パラメータ処理部が、前記規定数以内の個数の前記半導体記憶チップに対する前記パラメータを変更し、変更した前記パラメータを前記パラメータ記憶部に書き込むパラメータ処理ステップと、
を備えることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置および半導体記憶装置の制御方法に関する。
【背景技術】
【０００２】
不揮発性半導体記憶装置は、電源を遮断しても記憶情報が保持される半導体素子で構成されたメモリ（不揮発性半導体メモリ）を用いた情報記憶装置である。不揮発性半導体メモリには、印加する電圧の大きさ等に対応する電荷量により情報を蓄えるものが存在する。このような不揮発性半導体メモリでは、閾値に対する電荷量の大小により情報が読み込まれる。
【０００３】
また、不揮発性半導体メモリの種類によっては、不揮発性半導体メモリチップごとまたはデータ消去単位であるブロックごとに、蓄えた電荷が閾値を超える際に必要なパラメータが、チップの電気的特性の違いにより異なるものが存在する。
【０００４】
さらに、メモリセルに電荷を蓄える回数やメモリセルから電荷を抜き取る回数によってメモリセルの絶縁体が劣化し、電圧が閾値を超える際に必要なパラメータが異なるものが存在する。
【０００５】
このような不揮発性半導体記憶装置の例としては、ＮＡＮＤ型フラッシュメモリをメモリセルに用いた不揮発性半導体メモリが存在する。
【０００６】
ＮＡＮＤ型フラッシュメモリでは、チップごとまたはブロックごとの必要閾値電圧の違いに対応するため、印加した書き込みパルス電圧に対するゲート電圧の最小値と分布を求め、チップごとまたはブロックごとにメモリセルの電気的特性に応じて書き込みパルス電圧を変更する技術が提案されている。これにより、データ消去の際に、メモリセルのトンネル酸化膜に、半導体基板とフローティングゲートとの間の電界に起因する余分なストレスが印加されることがなくなる。また、フラッシュメモリのデータ保持の信頼性の劣化が防止できるとともに、１回のデータ書き込みパルス電圧の印加によりメモリセルの閾値電圧が基準閾値電圧以上となり、データ書き込みスピードの低下も防止できる。
【０００７】
メモリセルの絶縁体の劣化による必要閾値電圧の違いに対応するためには、メモリセルと同様のストレスを付加した劣化モニターセルを用いてパラメータの適正値を調査する技術が提案されている。劣化モニターセルにテストデータの書き込みと読み込みを行い、正しい情報が読み込め、なおかつトンネル絶縁膜に余分なストレスを加えないパラメータを調査し、そのパラメータでメモリセルにパルスを印加する。これにより、メモリセルのトンネル絶縁膜の劣化に合わせた印加電圧を選択することができる。これにより、データの書き込み時と消去時に発生するトンネル絶縁膜の劣化に応じて閾値を変化させることができ、トンネル絶縁膜に付加される余分なストレスが軽減され、フラッシュメモリのデータ保持の信頼性の劣化が防止できる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−０７１０８２号公報
【特許文献２】特開２００９−１７６３４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来技術では、チップごとまたはブロックごとのメモリセルの電気的特性と、情報の書き込み回数および消去処理の回数等に応じてパルス電圧を変更するためには、チップごとまたはブロックごと、かつ、書き込み、消去回数が異なるごとにモニターセルが必要となる。しかし、チップごとまたはブロックごと、かつ、書き込み回数および消去回数が異なるごとにモニターセルを全て用意すると、情報を記録するメモリセルの量が減少するという問題があった。
【課題を解決するための手段】
【００１０】
実施形態の半導体記憶装置は、複数のメモリチップと、複数のパラメータ記憶部と、誤り訂正符号化部と、パラメータ処理部とを備える。メモリチップは、蓄えられた電荷量に応じた情報を記憶する。パラメータ記憶部は、対応するメモリチップに対する情報の書き込みまたは読み込みに用いる信号の電気的特性を定めるパラメータを記憶する。誤り訂正符号化部は、規定数以内のメモリチップに記憶された情報の誤りを訂正可能な第１訂正符号を生成する。パラメータ処理部は、規定数以内の個数のメモリチップに対するパラメータを変更し、変更したパラメータをパラメータ記憶部に書き込む。
【図面の簡単な説明】
【００１１】
【図１】本実施形態にかかる半導体記憶装置のブロック図。
【図２】誤り検出の範囲および誤り訂正の範囲を示す図。
【図３】誤り訂正の範囲を示す図。
【図４】コマンド受信処理のフローチャート。
【図５】消去処理のフローチャート。
【図６】書き込み処理のフローチャート。
【図７】書き込み処理の具体例を示す図。
【図８】読み込み処理のフローチャート。
【図９】パラメータ変更処理のフローチャート。
【図１０】パラメータ完了処理のフローチャート。
【図１１】再書き込み処理のフローチャート。
【図１２】変形例１の処理例を示す図。
【図１３】変形例１の再書き込み処理のフローチャート。
【図１４】変形例２の誤り検出の範囲および誤り訂正の範囲を示す図。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかる半導体記憶装置の好適な実施形態を詳細に説明する。
【００１３】
上述のように、モニターセルを用いる従来の方法では、情報（データ）を記録するメモリセルの量が減少するという問題が生じる。また、チップごとまたはブロックごとの必要閾値電圧の違いに対応するためには、チップごとまたはブロックごとに、書き込み回数および消去回数による劣化に適したパルス電圧を探し、そのパルス電圧に変更する必要がある。
【００１４】
しかし、書き込み時には規定の範囲の電圧であったとしても、セルの劣化具合および電気的特性の違いによって、読み込み時には規定の範囲の電圧ではなくなる場合がある。このため、書き込み時のパラメータを変更した場合、一度書き込んだ値を読み込み、正しく読み込めるかを調査する必要がある。
【００１５】
パラメータを変更し、テストデータを書き込む。書き込んだテストデータを読み込む間、パラメータを変更した範囲のセルはデータの書き込み、読み込みの処理を行うことができず、データの読み込みおよび書き込みを処理することが可能なメモリセルの量が減少する。不揮発性半導体記憶装置の書き込み処理アルゴリズムによっては、データを保存可能なメモリセルの量が少ないと処理速度が減少する場合がある。このため、パラメータ変更後に正しくデータが読み込めるか調査する間は書き込み処理速度が低下するという問題が生じる。
【００１６】
図１は、本実施形態にかかる半導体記憶装置１００の構成の一例を示すブロック図である。図１に示すように、半導体記憶装置１００は、複数の半導体記憶チップとしてのメモリチップ１１１〜１１４と、複数のパラメータ記憶部１２１〜１２４と、パラメータ処理部１３０と、メモリ監視部１４０と、誤り検出符号化部１０１と、誤り訂正符号化部１０２と、コマンド・アドレス管理部１０３と、データ書き込み部１０４と、データ消去部１０５と、データ読み込み部１０６と、誤り訂正復号部１０７と、誤り検出復号部１０８と、を備えている。
【００１７】
メモリチップ１１１〜１１４は、蓄えられた電荷量に応じたデータを記憶する。メモリチップ１１１〜１１４は、パラメータによって記録する値が変化する不揮発性メモリである。本実施形態では、１枚以上の不揮発性メモリをまとめて記憶媒体とする。図１では、４枚のメモリチップ１１１〜１１４を用いる例を示しているが、メモリチップの個数は４に限られるものではない。
【００１８】
パラメータ記憶部１２１〜１２４は、それぞれメモリチップ１１１〜１１４に対応して設けられ、対応するメモリチップに対するデータの書き込みまたは読み込みに用いる信号の電気的特性を定めるパラメータを記憶する。
【００１９】
記憶するパラメータとしては、例えば以下のようなパラメータを適用できる。
（１）書き込み（ｐｒｏｇ）時
・ｓｔａｒｔ  Ｖｐｇｍ：１回目に印加する電圧
・ΔＶｐｇｍ：２回目以降に印加する電圧
・ｐｕｌｓｅ幅：印加する電圧のパルスの幅
・Ｖｅｒｉｆｙ  ｌｅｖｅｌ：印加された電圧の閾値
・非選択ＷＬ（ＷｏｒｄＬｉｎｅ）  Ｖｏｌｔａｇｅ：書き込み時に選択されていないワードラインに印加される電圧
（２）読み込み（ｒｅａｄ）時
・Ｉｃｅｌｌ：ゲート電極に流す電流
・ＶＲＥＡＤ：ゲート電極に印加する電圧
・ｓｅｎｓｅ  ｔｉｍｅ：センスアンプにかける時間（センスアンプでの電圧増幅量）
・Ｃｅｌｌ  ｃｏｕｐｌｉｎｇ：隣接するセルに対して読み込み時に加えられた電圧
・ｒｅａｄ  ｌｅｖｅｌ：ドレイン電極から流れる電流量から０／１を判断する閾値
（３）消去（Ｅｒａｓｅ）時
・Ｅｒａｓｅの深さ：データが消去されたと判断する電荷の閾値
・消去ＶＥＲＡ  Ｖｏｌｔａｇｅ  Ｐｕｌｓｅ幅：消去電圧ＶＥＲＡのパルスの幅
【００２０】
また、パラメータ記憶部１２１〜１２４は、パラメータが変更中であるか確定したかを表す情報（フラグ）を、各パラメータに対応づけて保存する。また、パラメータ記憶部１２１〜１２４は、コマンド・アドレス管理部１０３から送信されるアドレスに対応するパラメータを特定できるようにパラメータを記憶する。記憶方法は、アドレスからパラメータを特定できればどのような方法であっても良い。例えば、アドレスとパラメータの対応付けを示す情報を記憶するなどでも良い。
【００２１】
メモリ監視部１４０は、メモリチップ１１１〜１１４に対するデータの書き込みおよび読み込みの状態を表す管理データを生成して記録する。メモリ監視部１４０は、管理データが所定の閾値を超えると、パラメータ処理部１３０のパラメータ管理部１３１（後述）に、閾値を超えた管理データの種類、管理データの値、および、閾値を超えたメモリチップを識別する情報（識別情報）を通知する。管理データとしては、例えば、メモリチップごとの書き込み回数、メモリチップごとの消去回数、メモリチップごとの書き込み時間、および、メモリチップごとの読み込み時間などを監視する。ＮＡＮＤ型フラッシュメモリでは、消去処理で劣化が進みやすく、劣化すると書き込みやすく、読み込みにくくなる特性があるためである。
【００２２】
パラメータ処理部１３０は、誤り訂正符号化部１０２により誤り訂正可能なメモリチップの個数として予め定められた規定数以内の個数のパラメータ記憶部１２１〜１２４に記憶されているパラメータを変更し、変更したパラメータをパラメータ記憶部１２１〜１２４に記憶する。パラメータ処理部１３０は、メモリ監視部１４０により監視される管理データが予め定められた条件を満たしたときにパラメータを変更する処理（パラメータ変更処理）を実行する。例えば、上述のように管理データの値が閾値を超えたときにパラメータ変更処理を実行する。
【００２３】
パラメータ処理部１３０は、パラメータ管理部１３１と、パラメータ読み込み部１３２と、パラメータ作成部１３３と、パラメータ書き込み部１３４とを備えている。
【００２４】
パラメータ管理部１３１は、パラメータ処理を管理する。例えば、パラメータ管理部１３１は、コマンド・アドレス管理部１０３（後述）からコマンドとアドレスとを受け取り、パラメータ読み込み部１３２にコマンドとアドレスに対応したパラメータの読み込み命令を発行する。そして、パラメータ管理部１３１は、パラメータ読み込み部１３２から受け取ったパラメータを、コマンド・アドレス管理部１０３へ送る。
【００２５】
また、パラメータ管理部１３１は、メモリ監視部１４０から閾値を超えた管理データの種類、管理データの値、および、閾値を超えたメモリチップの識別情報を受け取ると、パラメータ作成部１３３に対して、メモリ監視部１４０から受け取った情報を送信する。
【００２６】
パラメータ管理部１３１は、パラメータ変更中のデータに誤りが検出された場合も、誤り検出復号部１０８から検出結果とアドレスを受け取り、誤り検出復号部１０８から受け取った情報をパラメータ作成部１３３に送信する。
【００２７】
また、パラメータ管理部１３１は、誤り検出復号部１０８から、パラメータ変更完了とアドレスを受け取ると、パラメータ書き込み部１３４にパラメータが確定したことを表す情報とアドレスを送信する。
【００２８】
パラメータ読み込み部１３２は、パラメータ管理部１３１から、アドレスを受け取り、受け取ったアドレスに対応するパラメータをパラメータ記憶部１２１〜１２４から読み込む。パラメータ読み込み部１３２は、パラメータ記憶部１２１〜１２４から読み込んだパラメータをパラメータ管理部１３１に送る。
【００２９】
パラメータ作成部１３３は、メモリチップ１１１〜１１４ごとに設定するパラメータを、メモリチップ１１１〜１１４ごとに作成する。パラメータの作成方法は、どのような方法でも良い。例えば、パラメータ作成部１３３は、誤り訂正の結果から、電荷の低い状態を高い状態に誤る確率が高い場合に、パラメータの数値を上げるように構成できる。また、パラメータ作成部１３３が、誤る頻度からパラメータの変化量を決めても良い。
【００３０】
パラメータ作成部１３３は、メモリチップ１１１〜１１４単位で作成したパラメータとアドレスをパラメータ書き込み部１３４に送る。その際、パラメータにパラメータ変更中であることを示す情報を付加する。
【００３１】
パラメータ書き込み部１３４は、パラメータ作成部１３３から送られてきたパラメータとアドレスとパラメータ変更中であることを示す情報を受け取る。パラメータ書き込み部１３４は、受け取ったアドレスを用いて変更するパラメータを記憶するパラメータ記憶部１２１〜１２４を特定し、特定したパラメータ記憶部１２１〜１２４に変更したパラメータを記憶する。パラメータ書き込み部１３４は、パラメータ変更中であることを示す情報を受け取ると、パラメータにパラメータ変更中であることを示す情報（フラグ）を付加して、パラメータ記憶部１２１〜１２４に記憶する。
【００３２】
パラメータ書き込み部１３４は、パラメータ管理部１３１からパラメータが確定したことを示す情報とアドレスを受け取ると、受け取ったアドレスに対応するパラメータを特定し、特定したパラメータにパラメータが確定したことを示す情報を付加する。
【００３３】
コマンド・アドレス管理部１０３は、計算機モジュール２００から、コマンドとアドレスを受け取り、コマンドごとに処理を振り分ける。計算機モジュール２００は、半導体記憶装置１００に記憶されたデータにアクセスする装置であり、例えば、パーソナルコンピュータなどにより構成される。コマンドには、例えば、書き込みコマンド、消去コマンド、読み込みコマンド、および、再書き込みコマンドが含まれる。
【００３４】
誤り検出符号化部１０１は、計算機モジュール２００から送られてくるデータを受け取り、受け取ったデータに対して誤り検出符号の符号化処理を行う。誤り検出符号化部１０１は、符号化処理を行ったデータを誤り訂正符号化部１０２に送る。
【００３５】
誤り訂正符号化部１０２は、誤り検出符号化部１０１からデータを受け取り、受け取ったデータに対して誤り訂正符号の符号化処理を行う。誤り訂正符号化部１０２は、符号化処理を行ったデータをデータ書き込み部１０４に送る。
【００３６】
誤り訂正符号化部１０２は、メモリチップ１１１〜１１４に記憶された各データから、規定数以内のメモリチップに記憶されたデータの誤りを訂正可能な誤り訂正符号（第１訂正符号）を生成する。図２は、誤り検出の範囲および誤り訂正の範囲を示す図である。図２に示すように、本実施形態では、メモリチップ１１１〜１１４ごとに誤り検出符号（ＣＲＣ）を生成し、複数のメモリチップ１１１〜１１４に書き込むデータから誤り訂正符号（ＥＣＣ）を生成する。したがって、誤り訂正復号処理を行う際には、複数のメモリチップ１１１〜１１４からデータを読み込む必要がある。
【００３７】
図３は、誤り訂正の範囲を示す図である。範囲３０１は誤り訂正可能な範囲の一例を示し、範囲３０２はパラメータを変更する範囲の一例を示している。すなわち、図３は、４つのメモリチップ１１１〜１１４のうち規定数＝２個までのメモリチップのデータの誤りを訂正可能な場合を例示している。なお、規定数（誤り訂正可能なメモリチップの個数）は２に限られるものではなく、任意に設定できる。
【００３８】
図１に戻り、コマンド・アドレス管理部１０３は、受け取ったアドレスとコマンドをパラメータ管理部１３１に送信して、パラメータ管理部１３１から送信されたパラメータを受け取る。そして、コマンド・アドレス管理部１０３は、受け取ったコマンドそれぞれに対応する処理を実行する、データ書き込み部１０４、データ消去部１０５、および、データ読み込み部１０６に対して、パラメータおよびアドレスを送信する。再書き込みコマンドの場合のみ、パラメータ、アドレス、およびデータをデータ書き込み部に送信する。
【００３９】
データ書き込み部１０４は、コマンド・アドレス管理部１０３からパラメータおよびアドレスを受け取り、誤り訂正符号化部１０２から誤り訂正符号の符号化処理後のデータを受け取る。データ書き込み部１０４は、受け取ったパラメータに従って、受け取ったデータをアドレスに対応したメモリチップ１１１〜１１４のメモリセルに書き込む。
【００４０】
データ消去部１０５は、コマンド・アドレス管理部１０３からパラメータおよびアドレスを受け取る。データ消去部１０５は、受け取ったパラメータに従って、受け取ったアドレスに対応したメモリチップ１１１〜１１４のメモリセルのデータを消去する。
【００４１】
データ読み込み部１０６は、コマンド・アドレス管理部１０３からパラメータおよびアドレスを受け取り、受け取ったパラメータに従って、受け取ったアドレスに対応するデータをメモリチップ１１１〜１１４のメモリセルから読み込む。データ読み込み部１０６は、読み込んだデータ、パラメータおよびアドレスを誤り訂正復号部１０７に送る。
【００４２】
誤り訂正復号部１０７は、データ読み込み部１０６から、データ、アドレス、およびパラメータを受け取り、受け取ったデータに対して誤り訂正符号の復号処理を行う。これにより、受け取ったデータの誤り検出と誤り訂正が実行できる。
【００４３】
誤り訂正復号部１０７は、誤りが検出されなかった場合はデータを出力し、誤りが検出された場合は誤り訂正を行う。このとき、誤り訂正復号部１０７は、誤り訂正可能な範囲内であれば、誤りを訂正し、誤りを訂正したという情報をパラメータに付加して、データ、アドレス、およびパラメータを誤り検出復号部１０８に出力する。誤り訂正復号部１０７は、誤り訂正可能な範囲内でないため誤り訂正ができなければ、エラーデータ、アドレス、およびパラメータを誤り検出復号部１０８に出力する。
【００４４】
誤り検出復号部１０８は、誤り訂正復号部１０７からデータ（エラーデータを含む）、アドレス、およびパラメータを受け取り、受け取ったデータに対して誤り検出符号の復号処理を行う。図２に示すように、誤り検出復号部１０８は、メモリチップ１１１〜１１４ごとに誤り検出符号の復号処理を行い、データの誤りを検出する。
【００４５】
誤り検出復号部１０８は、誤りが検出されなければ、データを計算機モジュール２００に送る。誤り検出復号部１０８は、誤りが検出されれば、データ不良を計算機モジュール２００に通知する。
【００４６】
誤り検出復号部１０８は、誤り訂正復号部１０７から送られてきたデータがパラメータ変更中のデータであり、誤り訂正復号部１０７で誤り訂正が行われず、かつ、誤り検出復号部１０８で誤りが検出されなかった場合は、パラメータ管理部１３１にパラメータの確定を通知する。
【００４７】
誤り検出復号部１０８は、誤り訂正復号部１０７から送られてきたデータがパラメータ変更中のデータであり、誤り訂正復号部１０７で誤り訂正が行われ、誤り訂正可能な範囲内のためデータの誤りが訂正され、かつ、誤り検出復号部１０８で誤りが検出されなかった場合は、パラメータ管理部１３１にパラメータ再設定を通知する。また、この場合、誤り検出復号部１０８は、コマンド・アドレス管理部１０３にアドレスとデータを送り、計算機モジュール２００にデータを送る。
【００４８】
誤り検出復号部１０８は、送られてきたデータがパラメータ変更中または確定したパラメータか否かを、データやパラメータに付加された情報で判断しても良いし、パラメータ作成部１３３からパラメータ作成時に送られた情報で判断しても良い。
【００４９】
次に、このように構成された本実施形態にかかる半導体記憶装置１００により実行される各処理について説明する。図４は、本実施形態におけるコマンド受信処理の全体の流れを示すフローチャートである。
【００５０】
まず、コマンド・アドレス管理部１０３は、計算機モジュール２００からアドレスとコマンドを受信する（ステップＳ１１）。以下、コマンド・アドレス管理部１０３は、受信したコマンドの種類を判定し、種類に応じた処理を実行するように、対応する処理部（データ書き込み部１０４、データ消去部１０５、データ読み込み部１０６）に処理を依頼する（ステップＳ１２〜ステップＳ１８）。なお、コマンド・アドレス管理部１０３は、受け取ったアドレスに対応するパラメータをパラメータ管理部１３１に依頼して取得し、取得したパラメータとコマンドとを各処理部に送信する。
【００５１】
コマンド・アドレス管理部１０３は、コマンドが消去コマンドであるか否かを判断する（ステップＳ１２）。消去コマンドの場合（ステップＳ１２：Ｙｅｓ）、データ消去部１０５にパラメータおよびアドレスを送信し、データの消去処理を依頼する。この依頼を受けて、データ消去部１０５が消去処理を実行する（ステップＳ１３）。消去処理の詳細は後述する。
【００５２】
消去コマンドでない場合（ステップＳ１２：Ｎｏ）、コマンド・アドレス管理部１０３は、コマンドが読み込みコマンドであるか否かを判断する（ステップＳ１４）。読み込みコマンドの場合（ステップＳ１４：Ｙｅｓ）、データ読み込み部１０６にパラメータおよびアドレスを送信し、データの読み込み処理を依頼する。この依頼を受けて、データ読み込み部１０６が読み込み処理を実行する（ステップＳ１５）。読み込み処理の詳細は後述する。
【００５３】
読み込みコマンドでない場合（ステップＳ１４：Ｎｏ）、コマンド・アドレス管理部１０３は、コマンドが書き込みコマンドであるか否かを判断する（ステップＳ１６）。書き込みコマンドの場合（ステップＳ１６：Ｙｅｓ）、データ書き込み部１０４にパラメータおよびアドレスを送信し、データの書き込み処理を依頼する。この依頼を受けて、データ書き込み部１０４が書き込み処理を実行する（ステップＳ１７）。書き込み処理の詳細は後述する。
【００５４】
書き込みコマンドでない場合（ステップＳ１６：Ｎｏ）、コマンド・アドレス管理部１０３は、コマンドが再書き込みコマンドであると判断し、データ書き込み部１０４にパラメータ、アドレス、およびデータを送信し、データの再書き込み処理を依頼する。この依頼を受けて、データ書き込み部１０４が再書き込み処理を実行する（ステップＳ１８）。再書き込み処理の詳細は後述する。
【００５５】
次に、ステップＳ１３の消去処理の詳細について説明する。図５は、本実施形態における消去処理の全体の流れを示すフローチャートである。
【００５６】
まず、データ消去部１０５は、コマンド・アドレス管理部１０３からパラメータおよびアドレスを受け取る（ステップＳ２１）。次に、データ消去部１０５は、受け取ったパラメータに従って、受け取ったアドレスに対応したメモリチップ１１１〜１１４のメモリセルのデータを消去する（ステップＳ２２）。
【００５７】
次に、ステップＳ１７の書き込み処理の詳細について説明する。図６は、本実施形態における書き込み処理の全体の流れを示すフローチャートである。
【００５８】
まず、誤り検出符号化部１０１は、計算機モジュール２００から受け取ったデータに対して誤り検出符号の符号化処理を行う（ステップＳ３１）。誤り検出符号化部１０１は、符号化処理を行ったデータを誤り訂正符号化部１０２に送る。
【００５９】
誤り訂正符号化部１０２は、誤り検出符号化部１０１から受け取ったデータに対して誤り訂正符号の符号化処理を行う（ステップＳ３２）。誤り訂正符号化部１０２は、符号化処理を行ったデータをデータ書き込み部１０４に送る。
【００６０】
データ書き込み部１０４は、コマンド・アドレス管理部１０３からパラメータおよびアドレスを受け取る（ステップＳ３３）。また、データ書き込み部１０４は、誤り訂正符号化部１０２により符号化処理が行われたデータを受信する（ステップＳ３４）。
【００６１】
データ書き込み部１０４は、受け取ったパラメータに従って、受信したデータをアドレスに対応したメモリチップ１１１〜１１４のメモリセルに書き込む（ステップＳ３５）。
【００６２】
図７は、データ書き込み部１０４による書き込み処理の具体例を示す図である。図７の例では、まず、パラメータ読み込み部１３２が、アドレスに対応するパラメータ記憶部から、パルス電圧＝５Ｖ、パルスの幅＝２０μｓ、および、印加する回数＝４回のパラメータを取得する。データ書き込み部１０４は、このパラメータに従ってメモリチップ１１１〜１１４に対してデータを書き込む。
【００６３】
次に、ステップＳ１５の読み込み処理の詳細について説明する。図８は、本実施形態における読み込み処理の全体の流れを示すフローチャートである。
【００６４】
まず、データ読み込み部１０６は、コマンド・アドレス管理部１０３からパラメータおよびアドレスを受け取る（ステップＳ４１）。データ読み込み部１０６は、受け取ったパラメータに従って、受け取ったアドレスに対応するデータをメモリチップ１１１〜１１４のメモリセルから読み込む（ステップＳ４２）。データ読み込み部１０６は、読み込んだデータ、パラメータおよびアドレスを誤り訂正復号部１０７に送る。
【００６５】
誤り訂正復号部１０７は、データ読み込み部１０６から受け取ったデータに対して誤り訂正符号（ＥＣＣ）の復号処理を行う（ステップＳ４３）。
【００６６】
次に、誤り検出復号部１０８は、誤り訂正復号部１０７から受け取ったデータに対して誤り検出符号の復号処理を行う（ステップＳ４４）。誤り検出復号部１０８は、誤りが検出されたか否かを判断し（ステップＳ４５）、誤りが検出された場合（ステップＳ４５：Ｙｅｓ）、エラー（データ不良）が発生したことを計算機モジュール２００に出力する（ステップＳ４６）。誤りが検出されなかった場合（ステップＳ４５：Ｎｏ）、誤り検出復号部１０８は、読み込まれたデータを計算機モジュール２００に出力する（ステップＳ４７）。
【００６７】
誤り検出復号部１０８は、誤り訂正復号部１０７から送られてきたデータがパラメータ変更中のメモリチップ１１１〜１１４のデータであるか否かを判断する（ステップＳ４８）。パラメータ変更中のメモリチップ１１１〜１１４のデータである場合（ステップＳ４８：Ｙｅｓ）、パラメータ完了処理が実行される（ステップＳ４９）。パラメータ完了処理の詳細については後述する。
【００６８】
パラメータ完了処理の実行後、または、ステップＳ４８でパラメータ変更中のメモリチップ１１１〜１１４のデータでないと判断された場合（ステップＳ４８：Ｎｏ）、読み込み処理を終了する。
【００６９】
次に、パラメータ変更処理について説明する。図９は、本実施形態におけるパラメータ変更処理の全体の流れを示すフローチャートである。
【００７０】
まず、メモリ監視部１４０は、管理データの値が所定の閾値を超えたか否かを判断する（ステップＳ５１）。管理データの値が所定の閾値を超えていない場合は（ステップＳ５１：Ｎｏ）、超えるまで監視を継続する。
【００７１】
管理データの値が閾値を超えた場合（ステップＳ５１：Ｙｅｓ）、パラメータ管理部１３１は、パラメータの変更が停止（ロック）されているか否か判断する（ステップＳ５２）。パラメータ管理部１３１は、例えば、パラメータの変更をロックしたときに（後述のステップＳ５５）、ロックしたことを示す情報を図示しない記憶部等に保存しておき、この情報を参照することによりロックされているか否かを判断する。
【００７２】
ロックされている場合は（ステップＳ５２：Ｙｅｓ）、パラメータ管理部１３１は、ロックが解除されるまで処理を停止する。ロックされていない場合（ステップＳ５２：Ｎｏ）、メモリ監視部１４０は、パラメータ管理部１３１に、閾値を超えた管理データの種類、管理データの値、および、閾値を超えたメモリチップの識別情報を通知する。パラメータ管理部１３１は、メモリ監視部１４０から通知された各データをパラメータ作成部１３３に送信する。
【００７３】
パラメータ作成部１３３は、閾値を超えたメモリチップのパラメータを作成し（ステップＳ５３）、パラメータ書き込み部１３４に送る。パラメータ書き込み部１３４は、パラメータ作成部１３３から送られてきたパラメータをパラメータ記憶部１２１〜１２４に保存する（ステップＳ５４）。
【００７４】
ここで、パラメータ管理部１３１は、パラメータを変更したメモリチップの個数と規定数とを比較し、個数が規定数に達した場合は、パラメータの変更を停止（ロック）する（ステップＳ５５）。このように、本実施形態では、誤り訂正が可能な範囲内でのみパラメータを変更するように構成する。これにより、変更されたパラメータによってデータが正しく書き込みまたは読み込みできなくなった場合であっても、誤り訂正復号部１０７の機能により、正しいデータに戻すことが可能となる。
【００７５】
次に、ステップＳ４９のパラメータ完了処理の詳細について説明する。図１０は、本実施形態におけるパラメータ完了処理の全体の流れを示すフローチャートである。
【００７６】
パラメータ管理部１３１は、誤り検出復号部１０８から、パラメータ再設定の通知、または、パラメータ変更完了の通知を受けたか否かを判断する（ステップＳ６１）。通知を受けていない場合（ステップＳ６１：Ｎｏ）、通知を受けるまで処理を繰り返す。
【００７７】
通知を受けた場合（ステップＳ６１：Ｙｅｓ）、パラメータ管理部１３１は、パラメータ再設定の通知であるか、すなわち、パラメータ変更中のメモリチップ１１１〜１１４のデータの誤りが訂正されたか否かを判断する（ステップＳ６２）。パラメータ再設定が通知された場合（ステップＳ６２：Ｙｅｓ）、パラメータ管理部１３１は、パラメータ作成部１３３にパラメータの再設定を依頼する。
【００７８】
パラメータ作成部１３３は、依頼されたパラメータを再度変更し、パラメータ書き込み部１３４に送る（ステップＳ６３）。パラメータ書き込み部１３４は、パラメータ作成部１３３から送られてきたパラメータをパラメータ記憶部１２１〜１２４のいずれかに保存する（ステップＳ６４）。
【００７９】
上述のように、パラメータ作成部１３３は、再設定するパラメータを、誤り訂正の結果に応じて決定する。また、パラメータ作成部１３３が、変更前のパラメータに戻すように、再設定するパラメータを作成しても良い。この場合、例えば、パラメータの変更時に、変更前のパラメータを記憶部等（図示せず）に保存しておき、再設定するときに保存したパラメータを参照するように構成する。
【００８０】
ステップＳ６２で、パラメータ再設定が通知されなかった場合、すなわち、パラメータ変更完了が通知された場合（ステップＳ６２：Ｎｏ）、パラメータ管理部１３１は、パラメータ書き込み部１３４にパラメータが確定したことを示す情報とアドレスを送信する。
【００８１】
パラメータ書き込み部１３４は、受け取ったアドレスに対応するパラメータを特定し、特定したパラメータにパラメータが確定したことを示す情報を付加してパラメータを確定する（ステップＳ６５）。例えば、パラメータ書き込み部１３４は、パラメータ確定したことを示すフラグを対応するパラメータに対応づけてパラメータ記憶部１２１〜１２４のいずれかに保存する。
【００８２】
パラメータ管理部１３１は、パラメータの変更のロックを解除する（ステップＳ６６）。パラメータ管理部１３１は、例えば、パラメータの変更をロックしたときに、ロックしたことを示す情報を図示しない記憶部等に保存しておき、この情報を削除またはロックを解除したことを示す情報に更新することにより、ロックを解除する。
【００８３】
ステップＳ６４またはステップＳ６６の後、パラメータ管理部１３１は、誤り検出復号部１０８から誤りが検出されたことを示す検出結果を受信したかにより、誤りが検出されたか否かを判断する（ステップＳ６７）。誤りが検出された場合は（ステップＳ６７：Ｙｅｓ）、パラメータ完了処理を終了する。
【００８４】
誤りが検出されていない場合（ステップＳ６７：Ｎｏ）、パラメータ管理部１３１は、再設定したパラメータで、再度データを書き込むために再書き込みコマンドを発行し、再書き込みコマンド、アドレス、およびデータをコマンド・アドレス管理部１０３に通知する（ステップＳ６８）。
【００８５】
図１１は、本実施形態における再書き込み処理の全体の流れを示すフローチャートである。図４で説明したように、再書き込み処理は、コマンド・アドレス管理部１０３が再書き込みコマンドを受信した場合に、データ書き込み部１０４により実行される（ステップＳ１８）。
【００８６】
まず、データ書き込み部１０４は、コマンド・アドレス管理部１０３からパラメータ、アドレス、およびデータを受け取る（ステップＳ７１、ステップＳ７２）。データ書き込み部１０４は、受け取ったパラメータに従って、受信したデータをアドレスに対応したメモリチップ１１１〜１１４のメモリセルに書き込む（ステップＳ７３）。前回の書き込み時に誤り検出符号の符号化処理および誤り訂正符号の符号化処理を実行済みであるため、再書き込み処理時には、各符号の符号化処理を行う必要がない。
【００８７】
（変形例１）
１つのメモリチップに書き込むときのパラメータを変更し、変更したパラメータで正しいデータが読み込めなかった場合、誤り訂正処理で正しいデータに訂正し、そのデータを再度書き込む必要がある。その際、パラメータを変更したメモリチップに書き込むのではなく、他のメモリチップに書き込むように構成しても良い。このように構成することにより、パラメータ変更処理と並行して書き込み処理を同時に行うことができる。
【００８８】
図１２は、他のメモリチップに書き込む場合の処理例を示す図である。図１２は、メモリチップ１１４のパラメータを変更したが、正しいデータが読み込めずにパラメータを再設定するときに、データをメモリチップ１１３に書き込む例を示している。
【００８９】
ＮＡＮＤ型フラッシュメモリでは、メモリセルごとに書き変え回数が制限されている。そこで、使用寿命を延ばす技術として、書き換えが同じメモリセルに集中しないように分散させるウェアレベリングが知られている。変形例１では、この技術と同様の手法により、正しいデータを書き込む書き込み先のメモリチップを、元のメモリチップと異なるメモリチップに指定する。
【００９０】
図１３は、変形例１における再書き込み処理の全体の流れを示すフローチャートである。
【００９１】
本変形例１では、コマンド・アドレス管理部１０３が、データを書き込む書き込み先のアドレスを、当該データが記憶されていたメモリチップと異なるメモリチップを示すアドレスに変更する（ステップＳ８１）。ステップＳ８２からステップＳ８４は、図１１のステップＳ７１からステップＳ７３と同様の処理であるため説明を省略する。
【００９２】
（変形例２）
誤り訂正符号の符号化処理では、複数のメモリチップ１１１〜１１４に書き込むデータに対して処理を行う。このため、誤り訂正復号処理を行う際も、複数のメモリチップ１１１〜１１４からデータを読み込む必要がある。
【００９３】
このため、複数のメモリチップ１１１〜１１４のデータに対して行う誤り訂正処理とは別に、チップごとに誤り訂正処理を行うように構成してもよい。図１４は、このように構成した変形例２の誤り検出の範囲および誤り訂正の範囲を示す図である。図１４に示すように、本変形例では、複数のメモリチップ１１１〜１１４に書き込むデータから誤り訂正符号（ＥＣＣ）を生成するだけでなく、メモリチップ１１１〜１１４ごとに誤り訂正符号（ＥＣＣ）を生成する。このような構成により、メモリチップ１１１〜１１４ごとに、記憶されたデータの誤り訂正復号処理が可能となる。
【００９４】
以上のように、本実施形態にかかる半導体記憶装置では、誤り訂正能力の範囲内で、メモリチップに対する書き込みおよび読み込み時のパラメータを変更する。これにより、仮にパラメータの設定が正しく行われず、正しいデータが読み込めなくなった場合であっても、誤り訂正で正しいデータに復号できる。パラメータの設定が正しくなかった場合であっても後で正しいデータを復元可能であることから、パラメータを設定した時点ではなく、データを読み込んだ時点で、設定が正しいかを判断することが可能になる。このため、パラメータ設定時に正しくパラメータが設定されたか否かを確かめる際のデータ書き込み処理およびデータ読み込み処理のための停止時間が不要となる。従って、データの信頼性を劣化させずに、処理速度の低下を防ぐことができる。
【００９５】
なお、本実施形態は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除しても良い。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【００９６】
１００  半導体記憶装置
１０１  誤り検出符号化部
１０２  誤り訂正符号化部
１０３  コマンド・アドレス管理部
１０４  データ書き込み部
１０５  データ消去部
１０６  データ読み込み部
１０７  誤り訂正復号部
１０８  誤り検出復号部
１１１〜１１４  メモリチップ
１２１〜１２４  パラメータ記憶部
１３０  パラメータ処理部
１４０  メモリ監視部
【図１】
2012068825.tif 000003
【図２】
2012068825.tif 000004
【図３】
2012068825.tif 000005
【図４】
2012068825.tif 000006
【図５】
2012068825.tif 000007
【図６】
2012068825.tif 000008
【図７】
2012068825.tif 000009
【図８】
2012068825.tif 000010
【図９】
2012068825.tif 000011
【図１０】
2012068825.tif 000012
【図１１】
2012068825.tif 000013
【図１２】
2012068825.tif 000014
【図１３】
2012068825.tif 000015
【図１４】
2012068825.tif 000016