説明

半導体記憶装置および制御方法

【課題】モニターセルを用いると情報を記録するメモリセルの量が減少する。
【解決手段】半導体記憶装置は、複数のメモリチップと、複数のパラメータ記憶部と、誤り訂正符号化部と、パラメータ処理部とを備える。メモリチップは、蓄えられた電荷量に応じた情報を記憶する。パラメータ記憶部は、対応するメモリチップに対する情報の書き込みまたは読み込みに用いる信号の電気的特性を定めるパラメータを記憶する。誤り訂正符号化部は、規定数以内のメモリチップに記憶された情報の誤りを訂正可能な第1訂正符号を生成する。パラメータ処理部は、規定数以内の個数のメモリチップに対するパラメータを変更し、変更したパラメータをパラメータ記憶部に書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、半導体記憶装置および半導体記憶装置の制御方法に関する。
【背景技術】
【0002】
不揮発性半導体記憶装置は、電源を遮断しても記憶情報が保持される半導体素子で構成されたメモリ(不揮発性半導体メモリ)を用いた情報記憶装置である。不揮発性半導体メモリには、印加する電圧の大きさ等に対応する電荷量により情報を蓄えるものが存在する。このような不揮発性半導体メモリでは、閾値に対する電荷量の大小により情報が読み込まれる。
【0003】
また、不揮発性半導体メモリの種類によっては、不揮発性半導体メモリチップごとまたはデータ消去単位であるブロックごとに、蓄えた電荷が閾値を超える際に必要なパラメータが、チップの電気的特性の違いにより異なるものが存在する。
【0004】
さらに、メモリセルに電荷を蓄える回数やメモリセルから電荷を抜き取る回数によってメモリセルの絶縁体が劣化し、電圧が閾値を超える際に必要なパラメータが異なるものが存在する。
【0005】
このような不揮発性半導体記憶装置の例としては、NAND型フラッシュメモリをメモリセルに用いた不揮発性半導体メモリが存在する。
【0006】
NAND型フラッシュメモリでは、チップごとまたはブロックごとの必要閾値電圧の違いに対応するため、印加した書き込みパルス電圧に対するゲート電圧の最小値と分布を求め、チップごとまたはブロックごとにメモリセルの電気的特性に応じて書き込みパルス電圧を変更する技術が提案されている。これにより、データ消去の際に、メモリセルのトンネル酸化膜に、半導体基板とフローティングゲートとの間の電界に起因する余分なストレスが印加されることがなくなる。また、フラッシュメモリのデータ保持の信頼性の劣化が防止できるとともに、1回のデータ書き込みパルス電圧の印加によりメモリセルの閾値電圧が基準閾値電圧以上となり、データ書き込みスピードの低下も防止できる。
【0007】
メモリセルの絶縁体の劣化による必要閾値電圧の違いに対応するためには、メモリセルと同様のストレスを付加した劣化モニターセルを用いてパラメータの適正値を調査する技術が提案されている。劣化モニターセルにテストデータの書き込みと読み込みを行い、正しい情報が読み込め、なおかつトンネル絶縁膜に余分なストレスを加えないパラメータを調査し、そのパラメータでメモリセルにパルスを印加する。これにより、メモリセルのトンネル絶縁膜の劣化に合わせた印加電圧を選択することができる。これにより、データの書き込み時と消去時に発生するトンネル絶縁膜の劣化に応じて閾値を変化させることができ、トンネル絶縁膜に付加される余分なストレスが軽減され、フラッシュメモリのデータ保持の信頼性の劣化が防止できる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2004−071082号公報
【特許文献2】特開2009−176340号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、従来技術では、チップごとまたはブロックごとのメモリセルの電気的特性と、情報の書き込み回数および消去処理の回数等に応じてパルス電圧を変更するためには、チップごとまたはブロックごと、かつ、書き込み、消去回数が異なるごとにモニターセルが必要となる。しかし、チップごとまたはブロックごと、かつ、書き込み回数および消去回数が異なるごとにモニターセルを全て用意すると、情報を記録するメモリセルの量が減少するという問題があった。
【課題を解決するための手段】
【0010】
実施形態の半導体記憶装置は、複数のメモリチップと、複数のパラメータ記憶部と、誤り訂正符号化部と、パラメータ処理部とを備える。メモリチップは、蓄えられた電荷量に応じた情報を記憶する。パラメータ記憶部は、対応するメモリチップに対する情報の書き込みまたは読み込みに用いる信号の電気的特性を定めるパラメータを記憶する。誤り訂正符号化部は、規定数以内のメモリチップに記憶された情報の誤りを訂正可能な第1訂正符号を生成する。パラメータ処理部は、規定数以内の個数のメモリチップに対するパラメータを変更し、変更したパラメータをパラメータ記憶部に書き込む。
【図面の簡単な説明】
【0011】
【図1】本実施形態にかかる半導体記憶装置のブロック図。
【図2】誤り検出の範囲および誤り訂正の範囲を示す図。
【図3】誤り訂正の範囲を示す図。
【図4】コマンド受信処理のフローチャート。
【図5】消去処理のフローチャート。
【図6】書き込み処理のフローチャート。
【図7】書き込み処理の具体例を示す図。
【図8】読み込み処理のフローチャート。
【図9】パラメータ変更処理のフローチャート。
【図10】パラメータ完了処理のフローチャート。
【図11】再書き込み処理のフローチャート。
【図12】変形例1の処理例を示す図。
【図13】変形例1の再書き込み処理のフローチャート。
【図14】変形例2の誤り検出の範囲および誤り訂正の範囲を示す図。
【発明を実施するための形態】
【0012】
以下に添付図面を参照して、この発明にかかる半導体記憶装置の好適な実施形態を詳細に説明する。
【0013】
上述のように、モニターセルを用いる従来の方法では、情報(データ)を記録するメモリセルの量が減少するという問題が生じる。また、チップごとまたはブロックごとの必要閾値電圧の違いに対応するためには、チップごとまたはブロックごとに、書き込み回数および消去回数による劣化に適したパルス電圧を探し、そのパルス電圧に変更する必要がある。
【0014】
しかし、書き込み時には規定の範囲の電圧であったとしても、セルの劣化具合および電気的特性の違いによって、読み込み時には規定の範囲の電圧ではなくなる場合がある。このため、書き込み時のパラメータを変更した場合、一度書き込んだ値を読み込み、正しく読み込めるかを調査する必要がある。
【0015】
パラメータを変更し、テストデータを書き込む。書き込んだテストデータを読み込む間、パラメータを変更した範囲のセルはデータの書き込み、読み込みの処理を行うことができず、データの読み込みおよび書き込みを処理することが可能なメモリセルの量が減少する。不揮発性半導体記憶装置の書き込み処理アルゴリズムによっては、データを保存可能なメモリセルの量が少ないと処理速度が減少する場合がある。このため、パラメータ変更後に正しくデータが読み込めるか調査する間は書き込み処理速度が低下するという問題が生じる。
【0016】
図1は、本実施形態にかかる半導体記憶装置100の構成の一例を示すブロック図である。図1に示すように、半導体記憶装置100は、複数の半導体記憶チップとしてのメモリチップ111〜114と、複数のパラメータ記憶部121〜124と、パラメータ処理部130と、メモリ監視部140と、誤り検出符号化部101と、誤り訂正符号化部102と、コマンド・アドレス管理部103と、データ書き込み部104と、データ消去部105と、データ読み込み部106と、誤り訂正復号部107と、誤り検出復号部108と、を備えている。
【0017】
メモリチップ111〜114は、蓄えられた電荷量に応じたデータを記憶する。メモリチップ111〜114は、パラメータによって記録する値が変化する不揮発性メモリである。本実施形態では、1枚以上の不揮発性メモリをまとめて記憶媒体とする。図1では、4枚のメモリチップ111〜114を用いる例を示しているが、メモリチップの個数は4に限られるものではない。
【0018】
パラメータ記憶部121〜124は、それぞれメモリチップ111〜114に対応して設けられ、対応するメモリチップに対するデータの書き込みまたは読み込みに用いる信号の電気的特性を定めるパラメータを記憶する。
【0019】
記憶するパラメータとしては、例えば以下のようなパラメータを適用できる。
(1)書き込み(prog)時
・start Vpgm:1回目に印加する電圧
・ΔVpgm:2回目以降に印加する電圧
・pulse幅:印加する電圧のパルスの幅
・Verify level:印加された電圧の閾値
・非選択WL(WordLine) Voltage:書き込み時に選択されていないワードラインに印加される電圧
(2)読み込み(read)時
・Icell:ゲート電極に流す電流
・VREAD:ゲート電極に印加する電圧
・sense time:センスアンプにかける時間(センスアンプでの電圧増幅量)
・Cell coupling:隣接するセルに対して読み込み時に加えられた電圧
・read level:ドレイン電極から流れる電流量から0/1を判断する閾値
(3)消去(Erase)時
・Eraseの深さ:データが消去されたと判断する電荷の閾値
・消去VERA Voltage Pulse幅:消去電圧VERAのパルスの幅
【0020】
また、パラメータ記憶部121〜124は、パラメータが変更中であるか確定したかを表す情報(フラグ)を、各パラメータに対応づけて保存する。また、パラメータ記憶部121〜124は、コマンド・アドレス管理部103から送信されるアドレスに対応するパラメータを特定できるようにパラメータを記憶する。記憶方法は、アドレスからパラメータを特定できればどのような方法であっても良い。例えば、アドレスとパラメータの対応付けを示す情報を記憶するなどでも良い。
【0021】
メモリ監視部140は、メモリチップ111〜114に対するデータの書き込みおよび読み込みの状態を表す管理データを生成して記録する。メモリ監視部140は、管理データが所定の閾値を超えると、パラメータ処理部130のパラメータ管理部131(後述)に、閾値を超えた管理データの種類、管理データの値、および、閾値を超えたメモリチップを識別する情報(識別情報)を通知する。管理データとしては、例えば、メモリチップごとの書き込み回数、メモリチップごとの消去回数、メモリチップごとの書き込み時間、および、メモリチップごとの読み込み時間などを監視する。NAND型フラッシュメモリでは、消去処理で劣化が進みやすく、劣化すると書き込みやすく、読み込みにくくなる特性があるためである。
【0022】
パラメータ処理部130は、誤り訂正符号化部102により誤り訂正可能なメモリチップの個数として予め定められた規定数以内の個数のパラメータ記憶部121〜124に記憶されているパラメータを変更し、変更したパラメータをパラメータ記憶部121〜124に記憶する。パラメータ処理部130は、メモリ監視部140により監視される管理データが予め定められた条件を満たしたときにパラメータを変更する処理(パラメータ変更処理)を実行する。例えば、上述のように管理データの値が閾値を超えたときにパラメータ変更処理を実行する。
【0023】
パラメータ処理部130は、パラメータ管理部131と、パラメータ読み込み部132と、パラメータ作成部133と、パラメータ書き込み部134とを備えている。
【0024】
パラメータ管理部131は、パラメータ処理を管理する。例えば、パラメータ管理部131は、コマンド・アドレス管理部103(後述)からコマンドとアドレスとを受け取り、パラメータ読み込み部132にコマンドとアドレスに対応したパラメータの読み込み命令を発行する。そして、パラメータ管理部131は、パラメータ読み込み部132から受け取ったパラメータを、コマンド・アドレス管理部103へ送る。
【0025】
また、パラメータ管理部131は、メモリ監視部140から閾値を超えた管理データの種類、管理データの値、および、閾値を超えたメモリチップの識別情報を受け取ると、パラメータ作成部133に対して、メモリ監視部140から受け取った情報を送信する。
【0026】
パラメータ管理部131は、パラメータ変更中のデータに誤りが検出された場合も、誤り検出復号部108から検出結果とアドレスを受け取り、誤り検出復号部108から受け取った情報をパラメータ作成部133に送信する。
【0027】
また、パラメータ管理部131は、誤り検出復号部108から、パラメータ変更完了とアドレスを受け取ると、パラメータ書き込み部134にパラメータが確定したことを表す情報とアドレスを送信する。
【0028】
パラメータ読み込み部132は、パラメータ管理部131から、アドレスを受け取り、受け取ったアドレスに対応するパラメータをパラメータ記憶部121〜124から読み込む。パラメータ読み込み部132は、パラメータ記憶部121〜124から読み込んだパラメータをパラメータ管理部131に送る。
【0029】
パラメータ作成部133は、メモリチップ111〜114ごとに設定するパラメータを、メモリチップ111〜114ごとに作成する。パラメータの作成方法は、どのような方法でも良い。例えば、パラメータ作成部133は、誤り訂正の結果から、電荷の低い状態を高い状態に誤る確率が高い場合に、パラメータの数値を上げるように構成できる。また、パラメータ作成部133が、誤る頻度からパラメータの変化量を決めても良い。
【0030】
パラメータ作成部133は、メモリチップ111〜114単位で作成したパラメータとアドレスをパラメータ書き込み部134に送る。その際、パラメータにパラメータ変更中であることを示す情報を付加する。
【0031】
パラメータ書き込み部134は、パラメータ作成部133から送られてきたパラメータとアドレスとパラメータ変更中であることを示す情報を受け取る。パラメータ書き込み部134は、受け取ったアドレスを用いて変更するパラメータを記憶するパラメータ記憶部121〜124を特定し、特定したパラメータ記憶部121〜124に変更したパラメータを記憶する。パラメータ書き込み部134は、パラメータ変更中であることを示す情報を受け取ると、パラメータにパラメータ変更中であることを示す情報(フラグ)を付加して、パラメータ記憶部121〜124に記憶する。
【0032】
パラメータ書き込み部134は、パラメータ管理部131からパラメータが確定したことを示す情報とアドレスを受け取ると、受け取ったアドレスに対応するパラメータを特定し、特定したパラメータにパラメータが確定したことを示す情報を付加する。
【0033】
コマンド・アドレス管理部103は、計算機モジュール200から、コマンドとアドレスを受け取り、コマンドごとに処理を振り分ける。計算機モジュール200は、半導体記憶装置100に記憶されたデータにアクセスする装置であり、例えば、パーソナルコンピュータなどにより構成される。コマンドには、例えば、書き込みコマンド、消去コマンド、読み込みコマンド、および、再書き込みコマンドが含まれる。
【0034】
誤り検出符号化部101は、計算機モジュール200から送られてくるデータを受け取り、受け取ったデータに対して誤り検出符号の符号化処理を行う。誤り検出符号化部101は、符号化処理を行ったデータを誤り訂正符号化部102に送る。
【0035】
誤り訂正符号化部102は、誤り検出符号化部101からデータを受け取り、受け取ったデータに対して誤り訂正符号の符号化処理を行う。誤り訂正符号化部102は、符号化処理を行ったデータをデータ書き込み部104に送る。
【0036】
誤り訂正符号化部102は、メモリチップ111〜114に記憶された各データから、規定数以内のメモリチップに記憶されたデータの誤りを訂正可能な誤り訂正符号(第1訂正符号)を生成する。図2は、誤り検出の範囲および誤り訂正の範囲を示す図である。図2に示すように、本実施形態では、メモリチップ111〜114ごとに誤り検出符号(CRC)を生成し、複数のメモリチップ111〜114に書き込むデータから誤り訂正符号(ECC)を生成する。したがって、誤り訂正復号処理を行う際には、複数のメモリチップ111〜114からデータを読み込む必要がある。
【0037】
図3は、誤り訂正の範囲を示す図である。範囲301は誤り訂正可能な範囲の一例を示し、範囲302はパラメータを変更する範囲の一例を示している。すなわち、図3は、4つのメモリチップ111〜114のうち規定数=2個までのメモリチップのデータの誤りを訂正可能な場合を例示している。なお、規定数(誤り訂正可能なメモリチップの個数)は2に限られるものではなく、任意に設定できる。
【0038】
図1に戻り、コマンド・アドレス管理部103は、受け取ったアドレスとコマンドをパラメータ管理部131に送信して、パラメータ管理部131から送信されたパラメータを受け取る。そして、コマンド・アドレス管理部103は、受け取ったコマンドそれぞれに対応する処理を実行する、データ書き込み部104、データ消去部105、および、データ読み込み部106に対して、パラメータおよびアドレスを送信する。再書き込みコマンドの場合のみ、パラメータ、アドレス、およびデータをデータ書き込み部に送信する。
【0039】
データ書き込み部104は、コマンド・アドレス管理部103からパラメータおよびアドレスを受け取り、誤り訂正符号化部102から誤り訂正符号の符号化処理後のデータを受け取る。データ書き込み部104は、受け取ったパラメータに従って、受け取ったデータをアドレスに対応したメモリチップ111〜114のメモリセルに書き込む。
【0040】
データ消去部105は、コマンド・アドレス管理部103からパラメータおよびアドレスを受け取る。データ消去部105は、受け取ったパラメータに従って、受け取ったアドレスに対応したメモリチップ111〜114のメモリセルのデータを消去する。
【0041】
データ読み込み部106は、コマンド・アドレス管理部103からパラメータおよびアドレスを受け取り、受け取ったパラメータに従って、受け取ったアドレスに対応するデータをメモリチップ111〜114のメモリセルから読み込む。データ読み込み部106は、読み込んだデータ、パラメータおよびアドレスを誤り訂正復号部107に送る。
【0042】
誤り訂正復号部107は、データ読み込み部106から、データ、アドレス、およびパラメータを受け取り、受け取ったデータに対して誤り訂正符号の復号処理を行う。これにより、受け取ったデータの誤り検出と誤り訂正が実行できる。
【0043】
誤り訂正復号部107は、誤りが検出されなかった場合はデータを出力し、誤りが検出された場合は誤り訂正を行う。このとき、誤り訂正復号部107は、誤り訂正可能な範囲内であれば、誤りを訂正し、誤りを訂正したという情報をパラメータに付加して、データ、アドレス、およびパラメータを誤り検出復号部108に出力する。誤り訂正復号部107は、誤り訂正可能な範囲内でないため誤り訂正ができなければ、エラーデータ、アドレス、およびパラメータを誤り検出復号部108に出力する。
【0044】
誤り検出復号部108は、誤り訂正復号部107からデータ(エラーデータを含む)、アドレス、およびパラメータを受け取り、受け取ったデータに対して誤り検出符号の復号処理を行う。図2に示すように、誤り検出復号部108は、メモリチップ111〜114ごとに誤り検出符号の復号処理を行い、データの誤りを検出する。
【0045】
誤り検出復号部108は、誤りが検出されなければ、データを計算機モジュール200に送る。誤り検出復号部108は、誤りが検出されれば、データ不良を計算機モジュール200に通知する。
【0046】
誤り検出復号部108は、誤り訂正復号部107から送られてきたデータがパラメータ変更中のデータであり、誤り訂正復号部107で誤り訂正が行われず、かつ、誤り検出復号部108で誤りが検出されなかった場合は、パラメータ管理部131にパラメータの確定を通知する。
【0047】
誤り検出復号部108は、誤り訂正復号部107から送られてきたデータがパラメータ変更中のデータであり、誤り訂正復号部107で誤り訂正が行われ、誤り訂正可能な範囲内のためデータの誤りが訂正され、かつ、誤り検出復号部108で誤りが検出されなかった場合は、パラメータ管理部131にパラメータ再設定を通知する。また、この場合、誤り検出復号部108は、コマンド・アドレス管理部103にアドレスとデータを送り、計算機モジュール200にデータを送る。
【0048】
誤り検出復号部108は、送られてきたデータがパラメータ変更中または確定したパラメータか否かを、データやパラメータに付加された情報で判断しても良いし、パラメータ作成部133からパラメータ作成時に送られた情報で判断しても良い。
【0049】
次に、このように構成された本実施形態にかかる半導体記憶装置100により実行される各処理について説明する。図4は、本実施形態におけるコマンド受信処理の全体の流れを示すフローチャートである。
【0050】
まず、コマンド・アドレス管理部103は、計算機モジュール200からアドレスとコマンドを受信する(ステップS11)。以下、コマンド・アドレス管理部103は、受信したコマンドの種類を判定し、種類に応じた処理を実行するように、対応する処理部(データ書き込み部104、データ消去部105、データ読み込み部106)に処理を依頼する(ステップS12〜ステップS18)。なお、コマンド・アドレス管理部103は、受け取ったアドレスに対応するパラメータをパラメータ管理部131に依頼して取得し、取得したパラメータとコマンドとを各処理部に送信する。
【0051】
コマンド・アドレス管理部103は、コマンドが消去コマンドであるか否かを判断する(ステップS12)。消去コマンドの場合(ステップS12:Yes)、データ消去部105にパラメータおよびアドレスを送信し、データの消去処理を依頼する。この依頼を受けて、データ消去部105が消去処理を実行する(ステップS13)。消去処理の詳細は後述する。
【0052】
消去コマンドでない場合(ステップS12:No)、コマンド・アドレス管理部103は、コマンドが読み込みコマンドであるか否かを判断する(ステップS14)。読み込みコマンドの場合(ステップS14:Yes)、データ読み込み部106にパラメータおよびアドレスを送信し、データの読み込み処理を依頼する。この依頼を受けて、データ読み込み部106が読み込み処理を実行する(ステップS15)。読み込み処理の詳細は後述する。
【0053】
読み込みコマンドでない場合(ステップS14:No)、コマンド・アドレス管理部103は、コマンドが書き込みコマンドであるか否かを判断する(ステップS16)。書き込みコマンドの場合(ステップS16:Yes)、データ書き込み部104にパラメータおよびアドレスを送信し、データの書き込み処理を依頼する。この依頼を受けて、データ書き込み部104が書き込み処理を実行する(ステップS17)。書き込み処理の詳細は後述する。
【0054】
書き込みコマンドでない場合(ステップS16:No)、コマンド・アドレス管理部103は、コマンドが再書き込みコマンドであると判断し、データ書き込み部104にパラメータ、アドレス、およびデータを送信し、データの再書き込み処理を依頼する。この依頼を受けて、データ書き込み部104が再書き込み処理を実行する(ステップS18)。再書き込み処理の詳細は後述する。
【0055】
次に、ステップS13の消去処理の詳細について説明する。図5は、本実施形態における消去処理の全体の流れを示すフローチャートである。
【0056】
まず、データ消去部105は、コマンド・アドレス管理部103からパラメータおよびアドレスを受け取る(ステップS21)。次に、データ消去部105は、受け取ったパラメータに従って、受け取ったアドレスに対応したメモリチップ111〜114のメモリセルのデータを消去する(ステップS22)。
【0057】
次に、ステップS17の書き込み処理の詳細について説明する。図6は、本実施形態における書き込み処理の全体の流れを示すフローチャートである。
【0058】
まず、誤り検出符号化部101は、計算機モジュール200から受け取ったデータに対して誤り検出符号の符号化処理を行う(ステップS31)。誤り検出符号化部101は、符号化処理を行ったデータを誤り訂正符号化部102に送る。
【0059】
誤り訂正符号化部102は、誤り検出符号化部101から受け取ったデータに対して誤り訂正符号の符号化処理を行う(ステップS32)。誤り訂正符号化部102は、符号化処理を行ったデータをデータ書き込み部104に送る。
【0060】
データ書き込み部104は、コマンド・アドレス管理部103からパラメータおよびアドレスを受け取る(ステップS33)。また、データ書き込み部104は、誤り訂正符号化部102により符号化処理が行われたデータを受信する(ステップS34)。
【0061】
データ書き込み部104は、受け取ったパラメータに従って、受信したデータをアドレスに対応したメモリチップ111〜114のメモリセルに書き込む(ステップS35)。
【0062】
図7は、データ書き込み部104による書き込み処理の具体例を示す図である。図7の例では、まず、パラメータ読み込み部132が、アドレスに対応するパラメータ記憶部から、パルス電圧=5V、パルスの幅=20μs、および、印加する回数=4回のパラメータを取得する。データ書き込み部104は、このパラメータに従ってメモリチップ111〜114に対してデータを書き込む。
【0063】
次に、ステップS15の読み込み処理の詳細について説明する。図8は、本実施形態における読み込み処理の全体の流れを示すフローチャートである。
【0064】
まず、データ読み込み部106は、コマンド・アドレス管理部103からパラメータおよびアドレスを受け取る(ステップS41)。データ読み込み部106は、受け取ったパラメータに従って、受け取ったアドレスに対応するデータをメモリチップ111〜114のメモリセルから読み込む(ステップS42)。データ読み込み部106は、読み込んだデータ、パラメータおよびアドレスを誤り訂正復号部107に送る。
【0065】
誤り訂正復号部107は、データ読み込み部106から受け取ったデータに対して誤り訂正符号(ECC)の復号処理を行う(ステップS43)。
【0066】
次に、誤り検出復号部108は、誤り訂正復号部107から受け取ったデータに対して誤り検出符号の復号処理を行う(ステップS44)。誤り検出復号部108は、誤りが検出されたか否かを判断し(ステップS45)、誤りが検出された場合(ステップS45:Yes)、エラー(データ不良)が発生したことを計算機モジュール200に出力する(ステップS46)。誤りが検出されなかった場合(ステップS45:No)、誤り検出復号部108は、読み込まれたデータを計算機モジュール200に出力する(ステップS47)。
【0067】
誤り検出復号部108は、誤り訂正復号部107から送られてきたデータがパラメータ変更中のメモリチップ111〜114のデータであるか否かを判断する(ステップS48)。パラメータ変更中のメモリチップ111〜114のデータである場合(ステップS48:Yes)、パラメータ完了処理が実行される(ステップS49)。パラメータ完了処理の詳細については後述する。
【0068】
パラメータ完了処理の実行後、または、ステップS48でパラメータ変更中のメモリチップ111〜114のデータでないと判断された場合(ステップS48:No)、読み込み処理を終了する。
【0069】
次に、パラメータ変更処理について説明する。図9は、本実施形態におけるパラメータ変更処理の全体の流れを示すフローチャートである。
【0070】
まず、メモリ監視部140は、管理データの値が所定の閾値を超えたか否かを判断する(ステップS51)。管理データの値が所定の閾値を超えていない場合は(ステップS51:No)、超えるまで監視を継続する。
【0071】
管理データの値が閾値を超えた場合(ステップS51:Yes)、パラメータ管理部131は、パラメータの変更が停止(ロック)されているか否か判断する(ステップS52)。パラメータ管理部131は、例えば、パラメータの変更をロックしたときに(後述のステップS55)、ロックしたことを示す情報を図示しない記憶部等に保存しておき、この情報を参照することによりロックされているか否かを判断する。
【0072】
ロックされている場合は(ステップS52:Yes)、パラメータ管理部131は、ロックが解除されるまで処理を停止する。ロックされていない場合(ステップS52:No)、メモリ監視部140は、パラメータ管理部131に、閾値を超えた管理データの種類、管理データの値、および、閾値を超えたメモリチップの識別情報を通知する。パラメータ管理部131は、メモリ監視部140から通知された各データをパラメータ作成部133に送信する。
【0073】
パラメータ作成部133は、閾値を超えたメモリチップのパラメータを作成し(ステップS53)、パラメータ書き込み部134に送る。パラメータ書き込み部134は、パラメータ作成部133から送られてきたパラメータをパラメータ記憶部121〜124に保存する(ステップS54)。
【0074】
ここで、パラメータ管理部131は、パラメータを変更したメモリチップの個数と規定数とを比較し、個数が規定数に達した場合は、パラメータの変更を停止(ロック)する(ステップS55)。このように、本実施形態では、誤り訂正が可能な範囲内でのみパラメータを変更するように構成する。これにより、変更されたパラメータによってデータが正しく書き込みまたは読み込みできなくなった場合であっても、誤り訂正復号部107の機能により、正しいデータに戻すことが可能となる。
【0075】
次に、ステップS49のパラメータ完了処理の詳細について説明する。図10は、本実施形態におけるパラメータ完了処理の全体の流れを示すフローチャートである。
【0076】
パラメータ管理部131は、誤り検出復号部108から、パラメータ再設定の通知、または、パラメータ変更完了の通知を受けたか否かを判断する(ステップS61)。通知を受けていない場合(ステップS61:No)、通知を受けるまで処理を繰り返す。
【0077】
通知を受けた場合(ステップS61:Yes)、パラメータ管理部131は、パラメータ再設定の通知であるか、すなわち、パラメータ変更中のメモリチップ111〜114のデータの誤りが訂正されたか否かを判断する(ステップS62)。パラメータ再設定が通知された場合(ステップS62:Yes)、パラメータ管理部131は、パラメータ作成部133にパラメータの再設定を依頼する。
【0078】
パラメータ作成部133は、依頼されたパラメータを再度変更し、パラメータ書き込み部134に送る(ステップS63)。パラメータ書き込み部134は、パラメータ作成部133から送られてきたパラメータをパラメータ記憶部121〜124のいずれかに保存する(ステップS64)。
【0079】
上述のように、パラメータ作成部133は、再設定するパラメータを、誤り訂正の結果に応じて決定する。また、パラメータ作成部133が、変更前のパラメータに戻すように、再設定するパラメータを作成しても良い。この場合、例えば、パラメータの変更時に、変更前のパラメータを記憶部等(図示せず)に保存しておき、再設定するときに保存したパラメータを参照するように構成する。
【0080】
ステップS62で、パラメータ再設定が通知されなかった場合、すなわち、パラメータ変更完了が通知された場合(ステップS62:No)、パラメータ管理部131は、パラメータ書き込み部134にパラメータが確定したことを示す情報とアドレスを送信する。
【0081】
パラメータ書き込み部134は、受け取ったアドレスに対応するパラメータを特定し、特定したパラメータにパラメータが確定したことを示す情報を付加してパラメータを確定する(ステップS65)。例えば、パラメータ書き込み部134は、パラメータ確定したことを示すフラグを対応するパラメータに対応づけてパラメータ記憶部121〜124のいずれかに保存する。
【0082】
パラメータ管理部131は、パラメータの変更のロックを解除する(ステップS66)。パラメータ管理部131は、例えば、パラメータの変更をロックしたときに、ロックしたことを示す情報を図示しない記憶部等に保存しておき、この情報を削除またはロックを解除したことを示す情報に更新することにより、ロックを解除する。
【0083】
ステップS64またはステップS66の後、パラメータ管理部131は、誤り検出復号部108から誤りが検出されたことを示す検出結果を受信したかにより、誤りが検出されたか否かを判断する(ステップS67)。誤りが検出された場合は(ステップS67:Yes)、パラメータ完了処理を終了する。
【0084】
誤りが検出されていない場合(ステップS67:No)、パラメータ管理部131は、再設定したパラメータで、再度データを書き込むために再書き込みコマンドを発行し、再書き込みコマンド、アドレス、およびデータをコマンド・アドレス管理部103に通知する(ステップS68)。
【0085】
図11は、本実施形態における再書き込み処理の全体の流れを示すフローチャートである。図4で説明したように、再書き込み処理は、コマンド・アドレス管理部103が再書き込みコマンドを受信した場合に、データ書き込み部104により実行される(ステップS18)。
【0086】
まず、データ書き込み部104は、コマンド・アドレス管理部103からパラメータ、アドレス、およびデータを受け取る(ステップS71、ステップS72)。データ書き込み部104は、受け取ったパラメータに従って、受信したデータをアドレスに対応したメモリチップ111〜114のメモリセルに書き込む(ステップS73)。前回の書き込み時に誤り検出符号の符号化処理および誤り訂正符号の符号化処理を実行済みであるため、再書き込み処理時には、各符号の符号化処理を行う必要がない。
【0087】
(変形例1)
1つのメモリチップに書き込むときのパラメータを変更し、変更したパラメータで正しいデータが読み込めなかった場合、誤り訂正処理で正しいデータに訂正し、そのデータを再度書き込む必要がある。その際、パラメータを変更したメモリチップに書き込むのではなく、他のメモリチップに書き込むように構成しても良い。このように構成することにより、パラメータ変更処理と並行して書き込み処理を同時に行うことができる。
【0088】
図12は、他のメモリチップに書き込む場合の処理例を示す図である。図12は、メモリチップ114のパラメータを変更したが、正しいデータが読み込めずにパラメータを再設定するときに、データをメモリチップ113に書き込む例を示している。
【0089】
NAND型フラッシュメモリでは、メモリセルごとに書き変え回数が制限されている。そこで、使用寿命を延ばす技術として、書き換えが同じメモリセルに集中しないように分散させるウェアレベリングが知られている。変形例1では、この技術と同様の手法により、正しいデータを書き込む書き込み先のメモリチップを、元のメモリチップと異なるメモリチップに指定する。
【0090】
図13は、変形例1における再書き込み処理の全体の流れを示すフローチャートである。
【0091】
本変形例1では、コマンド・アドレス管理部103が、データを書き込む書き込み先のアドレスを、当該データが記憶されていたメモリチップと異なるメモリチップを示すアドレスに変更する(ステップS81)。ステップS82からステップS84は、図11のステップS71からステップS73と同様の処理であるため説明を省略する。
【0092】
(変形例2)
誤り訂正符号の符号化処理では、複数のメモリチップ111〜114に書き込むデータに対して処理を行う。このため、誤り訂正復号処理を行う際も、複数のメモリチップ111〜114からデータを読み込む必要がある。
【0093】
このため、複数のメモリチップ111〜114のデータに対して行う誤り訂正処理とは別に、チップごとに誤り訂正処理を行うように構成してもよい。図14は、このように構成した変形例2の誤り検出の範囲および誤り訂正の範囲を示す図である。図14に示すように、本変形例では、複数のメモリチップ111〜114に書き込むデータから誤り訂正符号(ECC)を生成するだけでなく、メモリチップ111〜114ごとに誤り訂正符号(ECC)を生成する。このような構成により、メモリチップ111〜114ごとに、記憶されたデータの誤り訂正復号処理が可能となる。
【0094】
以上のように、本実施形態にかかる半導体記憶装置では、誤り訂正能力の範囲内で、メモリチップに対する書き込みおよび読み込み時のパラメータを変更する。これにより、仮にパラメータの設定が正しく行われず、正しいデータが読み込めなくなった場合であっても、誤り訂正で正しいデータに復号できる。パラメータの設定が正しくなかった場合であっても後で正しいデータを復元可能であることから、パラメータを設定した時点ではなく、データを読み込んだ時点で、設定が正しいかを判断することが可能になる。このため、パラメータ設定時に正しくパラメータが設定されたか否かを確かめる際のデータ書き込み処理およびデータ読み込み処理のための停止時間が不要となる。従って、データの信頼性を劣化させずに、処理速度の低下を防ぐことができる。
【0095】
なお、本実施形態は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除しても良い。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【0096】
100 半導体記憶装置
101 誤り検出符号化部
102 誤り訂正符号化部
103 コマンド・アドレス管理部
104 データ書き込み部
105 データ消去部
106 データ読み込み部
107 誤り訂正復号部
108 誤り検出復号部
111〜114 メモリチップ
121〜124 パラメータ記憶部
130 パラメータ処理部
140 メモリ監視部

【特許請求の範囲】
【請求項1】
蓄えられた電荷量に応じた情報を記憶する複数の半導体記憶チップと、
複数の前記半導体記憶チップのそれぞれに対応して設けられ、対応する前記半導体記憶チップに対する前記情報の書き込みまたは読み込みに用いる信号の電気的特性を定めるパラメータを記憶する複数のパラメータ記憶部と、
複数の前記半導体記憶チップに記憶された前記情報から、複数の前記半導体記憶チップのうち予め定められた規定数以内の前記半導体記憶チップに記憶された前記情報の誤りを訂正可能な第1訂正符号を生成する誤り訂正符号化部と、
前記規定数以内の個数の前記半導体記憶チップに対する前記パラメータを変更し、変更した前記パラメータを前記パラメータ記憶部に書き込むパラメータ処理部と、
を備えることを特徴とする半導体記憶装置。
【請求項2】
前記第1訂正符号の復号処理を行うことにより、前記情報の誤りを訂正する誤り訂正復号部をさらに備え、
前記パラメータ処理部は、前記パラメータを変更した前記半導体記憶チップに記憶された前記情報の誤りが訂正された場合に、変更した前記パラメータを再度変更して前記パラメータ記憶部に書き込むこと、
を特徴とする請求項1に記載の半導体記憶装置。
【請求項3】
前記パラメータ処理部は、前記パラメータを変更した前記半導体記憶チップに記憶された前記情報の誤りが訂正された場合に、変更した前記パラメータを変更前の前記パラメータに戻して前記パラメータ記憶部に書き込むこと、
を特徴とする請求項2に記載の半導体記憶装置。
【請求項4】
前記パラメータ処理部は、前記パラメータを変更した前記半導体記憶チップに記憶された前記情報の誤りが訂正された場合に、変更した前記パラメータを、訂正結果に応じて定められる前記パラメータに変更して前記パラメータ記憶部に書き込むこと、
を特徴とする請求項2に記載の半導体記憶装置。
【請求項5】
前記パラメータを変更した前記半導体記憶チップに記憶された前記情報の誤りが訂正された場合に、訂正された前記情報を、前記パラメータを変更した前記半導体記憶チップ以外の前記半導体記憶チップに書き込むデータ書き込み部をさらに備えること、
を特徴とする請求項1に記載の半導体記憶装置。
【請求項6】
前記誤り訂正符号化部は、さらに、前記半導体記憶チップごとに、前記半導体記憶チップに記憶された複数の前記情報から、複数の前記情報の誤りを訂正可能な第2訂正符号を生成し、
前記第2訂正符号の復号処理を行うことにより、前記情報の誤りを訂正する誤り訂正復号部をさらに備えること、
を特徴とする請求項1に記載の半導体記憶装置。
【請求項7】
前記第1訂正符号の復号処理を行うことにより、前記情報の誤りを訂正する誤り訂正復号部をさらに備え、
前記パラメータ処理部は、前記誤り訂正復号部により前記情報の誤りが訂正された前記半導体記憶チップに対する前記パラメータを変更し、変更した前記パラメータを前記パラメータ記憶部に書き込むこと、
を特徴とする請求項1に記載の半導体記憶装置。
【請求項8】
前記半導体記憶チップに対する前記情報の書き込みおよび読み込みの状態を表す管理データを生成する監視部をさらに備え、
前記パラメータ処理部は、前記管理データが予め定められた条件を満たした場合に、前記規定数以内の個数の前記半導体記憶チップに対する前記パラメータを変更し、変更した前記パラメータを前記パラメータ記憶部に書き込むこと、
を特徴とする請求項1に記載の半導体記憶装置。
【請求項9】
前記パラメータは、前記情報の書き込みまたは読み込みに用いる電流、電圧、電圧のパルスの幅、および、電圧のパルスの回数の少なくとも1つであること、
を特徴とする請求項1に記載の半導体記憶装置。
【請求項10】
半導体記憶装置の制御方法であって、
前記半導体記憶装置は、蓄えられた電荷量に応じた情報を記憶する複数の半導体記憶チップと、複数の前記半導体記憶チップのそれぞれに対応して設けられ、対応する前記半導体記憶チップに対する前記情報の書き込みまたは読み込みに用いる信号の電気的特性を定めるパラメータを記憶する複数のパラメータ記憶部と、を備え、
誤り訂正符号化部が、複数の前記半導体記憶チップに記憶された前記情報から、複数の前記半導体記憶チップのうち予め定められた規定数以内の前記半導体記憶チップに記憶された前記情報の誤りを訂正可能な第1訂正符号を生成する誤り訂正符号化ステップと、
パラメータ処理部が、前記規定数以内の個数の前記半導体記憶チップに対する前記パラメータを変更し、変更した前記パラメータを前記パラメータ記憶部に書き込むパラメータ処理ステップと、
を備えることを特徴とする制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2012−68825(P2012−68825A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2010−212306(P2010−212306)
【出願日】平成22年9月22日(2010.9.22)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】