(57)【特許請求の範囲】
【請求項１】
書込指令又は読出指令に応じて半導体メモリに対してデータの書込又は読出制御を施す半導体メモリ制御装置であって、
前記読出指令に応答して前記半導体メモリから読み出されたデータに対して、誤り検出処理を施して誤りビット数を示す誤りビット数情報を生成する誤り検出手段と、
前記誤りビット数情報を記憶する第１レジスタ、及び前記半導体メモリ内のブロック各々の内で誤り監視対象とするブロックを監視対象ブロックとして指定する監視対象ブロック情報が記憶されている第２レジスタを含み、前記第１レジスタに記憶されている前記誤りビット数情報に基づき、前記半導体メモリに含まれるブロック各々のうちで誤り監視対象とするブロックを選出し、当該選出したブロックを前記監視対象ブロックとして前記第２レジスタに書き込む半導体メモリ制御部と、
前記読出指令に応答して、前記第２レジスタに記憶されている前記監視対象ブロック情報にて指定されている前記監視対象ブロックに対して誤り検出処理を施す誤り監視手段と、を含み、
前記半導体メモリは、各ブロック毎にそのブロックに対して実施されたイレース処理の延べ回数を示すイレース回数及び読出回数を保持するイレース回数テーブル領域を有し、
前記監視対象ブロックは、乱数によって指定された第１のブロック、又は前回の前記半導体メモリからの読み出し時に前記誤り検出手段によって第１誤り閾値を超える誤りビット数の誤りが検出されたデータが記憶されている第２のブロックであり、
前記半導体メモリ制御部は、前記イレース処理の延べ回数の増加に伴って低下する読出の限度回数を示す前記第１のブロックについての読出回数閾値を、前記イレース回数テーブル領域に保持されている前記第１のブロックに対応した前記イレース回数に基づいて求め、前記第１のブロックに対する前回の前記半導体メモリからの読み出しによって前記第１誤り閾値を超える誤りビット数の誤りが検出されず且つ前記第１のブロックに対する前記読出回数が前記読出回数閾値を超えた場合にだけ前記第１のブロックを前記監視対象ブロックとして前記第２レジスタに記憶せしめる一方、前回の前記半導体メモリからの読み出しによって前記第１誤り閾値を超える誤りビット数の誤りが検出された場合には前記第２のブロックを前記監視対象ブロックとして前記第２レジスタに記憶せしめることを特徴とする半導体メモリ制御装置。
【請求項２】
前記半導体メモリ制御部は、前記誤り監視手段によって前記第２のブロック内の全ページに対して前記誤り検出処理が終了した場合に前記第１のブロックが前記監視対象ブロックとして選出されるように設定変更することを特徴とする請求項１記載の半導体メモリ制御装置。
【請求項３】
前記第１レジスタに記憶されている前記誤りビット数が前記第１誤り閾値より大きい第２誤り閾値を超えている場合に前記データに誤り訂正処理を施したものを前記半導体メモリに上書きするリフレッシュ手段を更に備えたことを特徴とする請求項１又は２に記載の半導体メモリ制御装置。
【請求項４】
書込指令又は読出指令に応じて、各ブロック毎にそのブロックに対して実施されたイレース処理の延べ回数を示すイレース回数及び読出回数を保持するイレース回数テーブル領域を有する半導体メモリに対してデータの書込又は読出制御を施す半導体メモリの制御方法であって、
誤り検出手段が、前記読出指令に応答して前記半導体メモリから読み出されたデータに対して誤り検出処理を施して誤りビット数を示す誤りビット数情報を得るステップと、
半導体メモリ制御部が、前記誤りビット数情報に基づき、前記半導体メモリ内のブロック各々のうちで、乱数によって指定した第１のブロック、又は前回の前記半導体メモリからの読み出し時に前記誤り検出手段によって第１誤り閾値を超える誤りビット数の誤りが検出されたデータが記憶されている第２のブロックを監視対象ブロックとして指定する監視対象ブロック情報を生成するステップと、
誤り監視手段が、前記読出指令に応答して、前記監視対象ブロック情報にて指定された前記監視対象ブロックに対して誤り検出処理を施すステップと、
リフレッシュ手段が、前記誤りビット数が前記第１誤り閾値より大きい第２誤り閾値を超えている場合に前記データに誤り訂正処理を施したものを前記半導体メモリに上書きするステップと、を有し、
前記監視対象ブロック情報を生成するステップでは、前記イレース処理の延べ回数の増加に伴って低下する読出の限度回数を示す前記第１のブロックについての読出回数閾値を、前記イレース回数テーブル領域に保持されている前記第１のブロックに対応した前記イレース回数に基づいて求め、前記第１のブロックに対する前回の前記半導体メモリからの読み出しによって前記第１誤り閾値を超える誤りビット数の誤りが検出されず且つ前記第１のブロックに対する前記読出回数が前記読出回数閾値を超えた場合にだけ前記第１のブロックを前記監視対象ブロックとして指定する一方、前回の前記半導体メモリからの読み出しによって前記第１誤り閾値を超える誤りビット数の誤りが検出された場合には前記第２のブロックを前記監視対象ブロックとして指定することを特徴とする半導体メモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリの制御装置、特に半導体メモリに対してデータのアクセスを行う半導体メモリの制御装置及びその制御方法に関する。
【背景技術】
【０００２】
近年、メモリ容量の増大化に伴い、ビット単価で優れているＮＡＮＤ型フラッシュメモリが普及している。かかるＮＡＮＤ型フラッシュメモリでは、大容量化、高集積化に伴い、書き込んだデータが経年変化してしまう、或いは集中した読み出し動作によりデータが正しく読み出せなくなるという問題が顕著化している。この問題は、データ保持を担う電荷が年数経過に伴い低下してしまう、或いは読み出し動作に伴う隣接メモリセルへの微量な電荷蓄積によって保存データが破壊されてしまう為に生じるものである。
【０００３】
そこで、このような不具合を回避すべく、データの誤りを訂正する誤り訂正符号（ＥＣＣ:Error Correcting Code）をデータに付加したものを書き込み、これを読み出すことによりデータの誤り箇所を訂正するようにした半導体記憶装置が提案されている（特許文献１参照）。ところで、誤り訂正符号には訂正可能なビット数に限界があり、限界以上のビット数に亘ってエラーが発生した場合には、これを訂正することが出来ない。そこで、かかる半導体記憶装置では、通常の読み出し処理の段階で誤りが生じているデータ片が検出された場合には、そのデータ片での誤りビット数が閾値ビット数（訂正可能な最大ビット数より小さい値）を超えたか否かを判定し、超えていた場合には、そのデータ片を監視対象として登録する。そして、この監視対象として登録されているデータ片に対して定期的に誤り検出処理を施し、その誤りビット数が訂正可能な最大ビット数に到る前に、誤りを訂正処理を施して再書込（リフレッシュ処理）を行うのである。かかる誤りビット数の監視処理を、定期的に実施することにより、保存したデータの保存期間の延長が図られる。
【０００４】
しかしながら、上記の如き方法では、誤り監視処理の実行中に、データ読み出し指令が発せられた場合には、データ読み出し動作を一時的に待避させる等の重複回避処理を実施しなければならないので、データ読み出し時間が増加してしまうという問題が生じた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２０５５７８号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、かかる問題を解決すべく為されたものであり、半導体メモリの動作を阻害することなく、メモリに保持されているデータの誤り監視を行うことが可能な半導体メモリ制御装置及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る半導体メモリ制御装置は、書込指令又は読出指令に応じて半導体メモリに対してデータの書込又は読出制御を施す半導体メモリ制御装置であって、前記読出指令に応答して前記半導体メモリから読み出されたデータに対して、誤り検出処理を施して誤りビット数を示す誤りビット数情報を生成する誤り検出手段と、前記誤りビット数情報を記憶する第１レジスタ、及び前記半導体メモリ内のブロック各々の内で誤り監視対象とするブロックを監視対象ブロックとして指定する監視対象ブロック情報が記憶されている第２レジスタを含み、前記第１レジスタに記憶されている前記誤りビット数情報に基づき、前記半導体メモリに含まれるブロック各々のうちで誤り監視対象とするブロックを選出し、当該選出したブロックを前記監視対象ブロックとして前記第２レジスタに書き込む半導体メモリ制御部と、前記読出指令に応答して、前記第２レジスタに記憶されている前記監視対象ブロック情報にて指定されている前記監視対象ブロックに対して誤り検出処理を施す誤り監視手段と、を含み、前記半導体メモリは、各ブロック毎にそのブロックに対して実施されたイレース処理の延べ回数を示すイレース回数及び読出回数を保持するイレース回数テーブル領域を有し、前記監視対象ブロックは、乱数によって指定された第１のブロック、又は前回の前記半導体メモリからの読み出し時に前記誤り検出手段によって第１誤り閾値を超える誤りビット数の誤りが検出されたデータが記憶されている第２のブロックであり、前記半導体メモリ制御部は、前記イレース処理の延べ回数の増加に伴って低下する読出の限度回数を示す前記第１のブロックについての読出回数閾値を、前記イレース回数テーブル領域に保持されている前記第１のブロックに対応した前記イレース回数に基づいて求め、前記第１のブロックに対する前回の前記半導体メモリからの読み出しによって前記第１誤り閾値を超える誤りビット数の誤りが検出されず且つ前記第１のブロックに対する前記読出回数が前記読出回数閾値を超えた場合にだけ前記第１のブロックを前記監視対象ブロックとして前記第２レジスタに記憶せしめる一方、前回の前記半導体メモリからの読み出しによって前記第１誤り閾値を超える誤りビット数の誤りが検出された場合には前記第２のブロックを前記監視対象ブロックとして前記第２レジスタに記憶せしめる。
【０００８】
また、本発明に係る半導体メモリの制御方法は、書込指令又は読出指令に応じて、各ブロック毎にそのブロックに対して実施されたイレース処理の延べ回数を示すイレース回数及び読出回数を保持するイレース回数テーブル領域を有する半導体メモリに対してデータの書込又は読出制御を施す半導体メモリの制御方法であって、誤り検出手段が、前記読出指令に応答して前記半導体メモリから読み出されたデータに対して誤り検出処理を施して誤りビット数を示す誤りビット数情報を得るステップと、半導体メモリ制御部が、前記誤りビット数情報に基づき、前記半導体メモリ内のブロック各々のうちで、乱数によって指定した第１のブロック、又は前回の前記半導体メモリからの読み出し時に前記誤り検出手段によって第１誤り閾値を超える誤りビット数の誤りが検出されたデータが記憶されている第２のブロックを監視対象ブロックとして指定する監視対象ブロック情報を生成するステップと、誤り監視手段が、前記読出指令に応答して、前記監視対象ブロック情報にて指定された前記監視対象ブロックに対して誤り検出処理を施すステップと、リフレッシュ手段が、前記誤りビット数が前記第１誤り閾値より大きい第２誤り閾値を超えている場合に前記データに誤り訂正処理を施したものを前記半導体メモリに上書きするステップと、を有し、前記監視対象ブロック情報を生成するステップでは、前記イレース処理の延べ回数の増加に伴って低下する読出の限度回数を示す前記第１のブロックについての読出回数閾値を、前記イレース回数テーブル領域に保持されている前記第１のブロックに対応した前記イレース回数に基づいて求め、前記第１のブロックに対する前回の前記半導体メモリからの読み出しによって前記第１誤り閾値を超える誤りビット数の誤りが検出されず且つ前記第１のブロックに対する前記読出回数が前記読出回数閾値を超えた場合にだけ前記第１のブロックを前記監視対象ブロックとして指定する一方、前回の前記半導体メモリからの読み出しによって前記第１誤り閾値を超える誤りビット数の誤りが検出された場合には前記第２のブロックを前記監視対象ブロックとして指定する。
【発明の効果】
【０００９】
本発明においては、メモリ内のブロック各々の内で誤り監視対象とするブロックを監視対象ブロックとして指定しておき、このメモリからデータを読み出すべく供給される読出指令に応答して、このメモリ内の上記監視対象ブロックに対して誤り検出処理を施して誤りビット数を示す情報を取得するという誤り監視処理を実行するようにしている。
【００１０】
これにより、周期的に誤り監視処理を実行する場合に生じ得る、読出動作と誤り監視処理との重複が防止されるので、このような重複を回避する為の処理が不要となる。よって、本発明によれば、読出時間を増加させることなく、メモリに対する誤り監視を行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明に係る半導体メモリ制御装置を含む情報処理システムを示すブロック図である。
【図２】データ読出ルーチンの一例を示すフローチャートである。
【図３】ＲＡＭ４、ステータスレジスタ２２、及び誤り監視領域指定レジスタ２３各々の記憶内容を示す図である。
【図４】優先誤り監視情報更新ルーチンを示すフローチャートである。
【図５】通常誤り監視情報更新ルーチンを示すフローチャートである。
【図６】誤り発生確認処理ルーチンを示すフローチャートである。
【図７】イレース回数に対応した読出回数閾値ＴＲの変換特性を示す図である。
【図８】本発明に係る半導体メモリ制御装置の変形例を示す情報処理システムのブロック図である。
【図９】データ読出ルーチンの他の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
本発明に係る半導体メモリ制御装置は、読出指令に応答して半導体メモリ（３）から読み出されたデータに対して、誤り検出処理を施して誤りビット数（ＥＲＡ）を示す情報を生成する誤り検出手段（２１）と、誤りビット数（ＥＲＡ）を示す情報を記憶する第１レジスタ（２２）と、半導体メモリ（３）内のブロック各々の内で誤り監視対象とするブロックを監視対象ブロックとして指定する情報が記憶されている第２レジスタ（２３）と、読出指令に応答して、半導体メモリ（３）内の監視対象ブロックに対して誤り検出処理を施して誤りビット数（ＥＲＡ）を示す情報を第１レジスタ（２２）に記憶せしめる誤り監視手段（２４）と、を含む。
【実施例】
【００１３】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
【００１４】
図１は、本発明に係る半導体メモリ制御装置（メモリ制御部２）を含む情報処理システムを示すブロック図である。
【００１５】
図１に示すように、かかる情報処理システムは、ＣＰＵ（Central Processing Unit）１、メモリ制御部２、ＮＡＮＤ型のフラッシュメモリ３、ＲＡＭ（Random Access Memory）４、ＣＰＵバス５、及び当該情報処理システムの動作を担うプログラムが予め記憶されているプログラムメモリ６を含む。
【００１６】
ＣＰＵ１は、プログラムメモリ６に記憶されているプログラムに従って、ＣＰＵバス５を介してメモリ制御部２又はＲＡＭ４に対してメモリアクセス（データ読出、データ書込）を行う。尚、メモリ制御部２には、誤り符号化部２０、誤り検出訂正部２１、第１レジスタとしてのステータスレジスタ２２、第２レジスタとしての誤り監視領域指定レジスタ２３、及びハードウェアからなる誤り監視処理回路２４が内蔵されている。
【００１７】
ここで、フラッシュメモリ３にデータを書き込ませる場合、ＣＰＵ１は、その書き込み対象となるデータと共に書込指令をメモリ制御部２に供給する。この際、メモリ制御部２の誤り符号化部２０は、書き込み対象となるデータに対して所定ブロック長毎に誤り訂正符号を付加したものを符号化データ片として得る。メモリ制御部２は、この符号化データ片をフラッシュメモリ３に書き込ませるべき書込駆動信号をフラッシュメモリ３に供給する。尚、フラッシュメモリ３の全領域は、アクセス単位を１ページ２０００ビットとし、例えば１ブロックが６４ページからなる、４０００ブロック分のアクセス領域に区分けされている。ブロック数は、メモリ容量により変動する。
【００１８】
一方、フラッシュメモリ３からデータを読み出す場合、ＣＰＵ１は、その読み出し対象となるデータのアドレスと共に読出指令をメモリ制御部２に供給する。
【００１９】
かかる読出指令に応じてメモリ制御部２は、図２に示す如きデータ読出ルーチンに従った処理を実行する。
【００２０】
図２において、先ず、メモリ制御部２は、ＣＰＵ１から供給された読出指令が電源ＯＮ後、第１回目に発令された読出指令であるか否かの判定を行う（ステップＳ１）。ステップＳ１において最初の読出指令であると判定された場合、メモリ制御部２は、乱数を発生させ、当該乱数に基づき、フラッシュメモリ３内で誤り監視対象とするブロック（以下、通常誤り監視対象ブロックと称する）及びそのブロック内の代表監視ページ（以下、オフセットページと称する）を示す番号を生成し、図３（ａ）に示す如くＲＡＭ４に記憶させる（ステップＳ２）。尚、ここで示す乱数は、一例であって、必ずしも電源ＯＮ毎に異なる必要は無く、電源ＯＮ毎にブロックやページが固定されなければ何らかのアルゴリズムを持ってブロックやページが選択されても良い。
【００２１】
かかるステップＳ２の終了後、又は上記ステップＳ１において電源ＯＮ後の最初の読出指令ではないと判定された場合、メモリ制御部２は、図３（ａ）に示す如くＲＡＭ４に記憶されている優先誤り監視実行フラグが、優先誤り監視処理（後述する）の実行を示す論理レベル１であるか否かを判定する（ステップＳ３）。ステップＳ３において優先誤り監視実行フラグが優先誤り監視処理の実行を示すと判定された場合、メモリ制御部２は、図３（ａ）に示す如くＲＡＭ４に記憶されている優先誤り監視対象ブロックを示す番号を、図３（ｂ）に示す如く誤り監視領域指定レジスタ２３に上書き記憶する（ステップＳ４）。ステップＳ４の実行後、メモリ制御部２は、優先誤り監視情報更新ルーチンの実行に移る（ステップＳ５）。
【００２２】
図４は、かかる優先誤り監視情報更新ルーチンを示すフローチャートである。
【００２３】
図４において、先ず、メモリ制御部２は、図３（ａ）に示す如くＲＡＭ４に記憶されている優先オフセットページを示す番号を１だけインクリメントしたものを新たな優先オフセットページを示す番号としてＲＡＭ４に上書き記憶する（ステップＳ４１）。尚、優先オフセットページの初期値は先頭の第１ページである。次に、メモリ制御部２は、インクリメントされた優先オフセットページを示す番号が最終ページの番号を超えたか否かの判定を行う（ステップＳ４２）。かかるステップＳ４２において最終ページ番号を超えたと判定された場合、つまり優先誤り監視対象ブロック内での優先誤り監視処理（後述する）が全て終了している場合には、メモリ制御部２は、図３（ａ）に示す如くＲＡＭ４に記憶されている優先誤り監視実行フラグを、優先誤り監視の実行ではないことを示す論理レベル０に書き換える（ステップＳ４３）。かかるステップＳ４３の実行後、又は上記ステップＳ４２においてインクリメントしたページ番号が最終ページの番号を超えていないと判定された場合、メモリ制御部２は、図４に示す優先誤り監視情報更新ルーチンを終了する。
【００２４】
かかる優先誤り監視情報更新ルーチンによれば、読出指令に応じてフラッシュメモリ３からデータ読出が為される度に、優先誤り監視対象ブロック内において１ページ分の更新（Ｓ４１）が為され、その更新されたページに対して優先誤り監視処理が実施されることになる。この際、全ページに対する優先誤り監視処理が終了した場合には、優先誤り監視の実行を示すフラグが、通常誤り監視処理（後述する）の実行を示すフラグ０にクリアされる（Ｓ４３）。つまり、優先誤り監視対象ブロック内の全ページに対して誤り検出処理が終了した場合には、このブロックを優先誤り監視対象ブロックから通常誤り監視対象ブロックに設定変更するのである。
【００２５】
ここで、図２に示すステップＳ３において、ＲＡＭ４に記憶されている優先誤り監視実行フラグが優先誤り監視の実行を示していないと判定された場合、メモリ制御部２は、図３（ａ）に示す如くＲＡＭ４に記憶されている通常誤り監視対象ブロックを示す番号を、図３（ｂ）に示すように誤り監視領域指定レジスタ２３に記憶させる（ステップＳ６）。次に、メモリ制御部２は、通常誤り監視情報更新ルーチンの実行に移る（ステップＳ７）。
【００２６】
図５は、かかる通常誤り監視情報更新ルーチンを示すフローチャートである。
【００２７】
図５において、先ず、メモリ制御部２は、図３（ａ）に示す如くＲＡＭ４に記憶されている通常誤り監視対象ブロックを示す番号を１だけインクリメントしたものを新たな通常誤り監視対象ブロックを示す番号としてＲＡＭ４に上書き記憶する（ステップＳ５１）。次に、メモリ制御部２は、インクリメントされた通常誤り監視対象ブロックを示す番号が最終ブロックの番号を超えたか否かの判定を行う（ステップＳ５２）。かかるステップＳ５２において最終ブロック番号を超えたと判定された場合、つまり通常誤り監視対象ブロックでの通常誤り監視動作が完了している場合には、メモリ制御部２は、図３（ａ）に示す如くＲＡＭ４に記憶されている通常誤り監視対象ブロックの番号を初期番号０に書き換える（ステップＳ５３）。次に、メモリ制御部２は、図３（ａ）に示す如くＲＡＭ４に記憶されている通常オフセットページを示す番号を１だけインクリメントしたものを新たな通常オフセットページを示す番号としてＲＡＭ４に上書き記憶する（ステップＳ５４）。尚、通常オフセットページとは、上記ステップＳ２において乱数に基づいて生成されたオフセットページを初期値とするものである。次に、メモリ制御部２は、インクリメントされた通常オフセットページを示す番号が最終ページの番号を超えたか否かの判定を行う（ステップＳ５５）。かかるステップＳ５５において最終ページ番号を超えたと判定された場合、つまり通常誤り監視対象ブロック内での通常誤り監視動作が完了している場合には、メモリ制御部２は、図３（ａ）に示す如くＲＡＭ４に記憶されている通常オフセットページの番号を初期番号０に書き換える（ステップＳ５６）。かかるステップＳ５６の実行後、又は上記ステップＳ５２において通常誤り監視対象ブロックが最終ブロックを超えたと判定された場合、或いは上記ステップＳ５５において通常オフセットページが最終ページを超えたと判定された場合、メモリ制御部２は、図５に示す通常誤り監視情報更新ルーチンを終了する。
【００２８】
図４に示す優先誤り監視情報更新ルーチン（Ｓ５）、又は図５に示す通常誤り監視情報更新ルーチン（Ｓ７）の実行後、メモリ制御部２は、フラッシュメモリ３に対するデータ読出処理を実行する（ステップＳ８）。
【００２９】
すなわち、先ず、メモリ制御部２は、ＣＰＵ１によって指定されたアドレスに対応したデータを読み出すべき読出駆動信号をフラッシュメモリ３に供給する。かかる読出駆動信号に応じてフラッシュメモリ３は、指定されたアドレスに対応したページに記憶されている符号化データ片を読み出すべき読出処理を行う。ここで、フラッシュメモリ３から符号化データ片が読み出されたら、メモリ制御部２の誤り検出訂正部２１は、この符号化データ片に対して誤り検出処理を施して誤り検出結果情報を生成する。かかる誤り検出結果情報に基づき、メモリ制御部２の誤り監視処理回路２４は、その誤りビット数を示す誤りビット数ＥＲＳ及びビット誤りが有るか否かを示す誤り検出フラグを生成し、これらを読出対象となった符号化データ片が保持されているブロック番号に対応づけして、図３（ｃ）に示す如くステータスレジスタ２２に記憶させる。更に、誤り監視処理回路２４は、誤りが生じている符号化データ片が記憶されているブロックを示す番号を優先誤り監視対象ブロックの番号として、図３（ａ）に示す如くＲＡＭ４に記憶する（誤り監視処理）。ここで、誤り検出結果情報に基づき誤りの存在が確認された場合には、誤り検出訂正部２１は、引き続きこの読み出された符号化データ片に対して誤り訂正を施す。この際、メモリ制御部２は、フラッシュメモリ３から読み出された符号化データ片、又は上記の如き誤り訂正処理の施された符号化データ片から誤り訂正符号化に伴う冗長ビットを省いたものを読出データとしてＣＰＵバス５に送出する。
【００３０】
尚、メモリ制御部２は、上記した如きフラッシュメモリ３による読出処理中に、図６に示す如き誤り発生確認処理ルーチンを実行する。
【００３１】
図６において、先ず、メモリ制御部２は、ステータスレジスタ２２に記憶されている誤り検出フラグに基づき、ビット誤りが生じているか否かを判定する（ステップＳ６１）。ステップＳ６１においてビット誤りが生じていないと判定された場合、処理を終了する。
【００３２】
一方、ステップＳ６１においてビット誤りが生じていると判定された場合、メモリ制御部２は、図３（ｃ）に示す如くステータスレジスタ２２に記憶されている誤りビット数ＥＲＳが所定の第１誤り閾値ＴＥ１よりも大であるか否かを判定する（ステップＳ６３）。かかるステップＳ６３において誤りビット数ＥＲＳが第１誤り閾値ＴＥ１よりも大であると判定された場合、メモリ制御部２は、優先誤り監視の実行を促す論理レベル１の優先誤り監視実行フラグを図３（ａ）に示す如くＲＡＭ４に記憶する（ステップＳ６４）。次に、メモリ制御部２は、上記ステップＳ６１においてビット誤りが生じていると判定されたブロックの番号を、優先誤り監視対象ブロックの番号として、図３（ａ）に示す如くＲＡＭ４に記憶する（ステップＳ６５）。ステップＳ６５の実行後、又は上記ステップＳ６３において誤りビット数ＥＲＳが第１誤り閾値ＴＥ１以下であると判定された場合、メモリ制御部２は、誤りビット数ＥＲＳが所定の第２誤り閾値ＴＥ２（ＴＥ２＞ＴＥ１）よりも大であるか否かを判定する（ステップＳ６６）。かかるステップＳ６６において誤りビット数ＥＲＳが第２誤り閾値ＴＥ２よりも大であると判定された場合、メモリ制御部２は、上記ステップＳ６１においてビット誤りが生じていると判定されたブロックの番号を、リフレッシュ処理（後述する）の対象とするリフレッシュ対象ブロックの番号として、図３（ａ）に示す如くＲＡＭ４に記憶する（ステップＳ６７）。
【００３３】
ステップＳ６７の実行後、或いは上記ステップＳ６６において誤りビット数ＥＲＳが第２誤り閾値ＴＥ２以下であると判定された場合、メモリ制御部２は、この誤り発生確認処理ルーチンを抜けて、誤り監視を開始させるべき誤り監視開始指令を誤り監視処理回路２４に供給する（ステップＳ９）。
【００３４】
かかる誤り監視開始指令に応じて誤り監視処理回路２４は、図３（ｂ）に示す如く誤り監視領域指定レジスタ２３に記憶されているブロック番号にて示される、フラッシュメモリ３内のブロックに対して以下の如き誤り監視処理を実行する。
【００３５】
すなわち、誤り監視処理回路２４は、上記した如く乱数によって指定された通常誤り監視対象ブロック（第１のブロック）の番号が誤り監視領域指定レジスタ２３に記憶されていた場合には通常誤り監視処理を実行する。
【００３６】
通常誤り監視処理では、誤り監視処理回路２４は、フラッシュメモリ３の全ブロックの内でこの通常誤り監視対象ブロック内の所定の１ページ、つまりＲＡＭ４に記憶されている通常オフセットページから符号化データ片を読み出す。ここで、誤り監視処理回路２４は、誤り検出訂正部２１にてこの読み出された符号化データ片に対して誤り検出処理を施して得られた誤り検出結果情報に基づき、その誤りビット数を示す誤りビット数ＥＲＳ及びビット誤りが有るか否かを示す誤り検出フラグをその符号化データ片が保持されているブロック番号に対応づけしてステータスレジスタ２２に記憶させる。
【００３７】
また、誤り監視処理回路２４は、フラッシュメモリ３からの前回のデータ読み出しによって誤りが検出された符号化データ片が記憶されている優先誤り監視対象ブロック（第２のブロック）の番号が、誤り監視領域指定レジスタ２３に記憶されていた場合には優先誤り監視処理を実行する。
【００３８】
優先誤り監視処理では、誤り監視処理回路２４は、フラッシュメモリ３の全ブロックの内でこの優先誤り監視対象ブロック内の所定の１ページ、つまり図３（ａ）に示す如くＲＡＭ４に記憶されている優先オフセットページから符号化データ片を読み出す。ここで、誤り監視処理回路２４は、誤り検出訂正部２１にてこの読み出された符号化データ片に対して誤り検出処理を施して得られた誤り検出結果情報に基づき、その誤りビット数を示す誤りビット数ＥＲＳ及びビット誤りが有るか否かを示す誤り検出フラグをその符号化データ片が保持されているブロック番号に対応づけしてステータスレジスタ２２に記憶させる。
【００３９】
要するに、メモリ制御部２は優先誤り監視実行フラグを参照することにより、前回のフラッシュメモリ３からの読み出しで誤りが検出されたか否かを判定し（Ｓ３）、誤りが検出されなかった場合には、第１のブロックとしての通常誤り監視対象ブロックを示す情報を、第２レジスタである誤り監視領域指定レジスタ２３に記憶する（Ｓ６）。一方、誤りが検出された場合には、メモリ制御部２は第２のブロックとしての優先誤り監視対象ブロックを示す情報を、第２レジスタである誤り監視領域指定レジスタ２３に記憶する（Ｓ４）。そして、メモリ制御部２は、この第２レジスタ（２３）に記憶されているブロックが、乱数によって指定された通常誤り監視対象ブロックである場合には、この通常誤り監視対象ブロックに対して上記の如き通常誤り監視処理を施す。一方、この第２レジスタ（２３）に記憶されているブロックが、誤りの発生が確認されている優先誤り監視対象ブロックである場合には、メモリ制御部２は、この優先誤り監視対象ブロックに対して上記の如き優先誤り監視処理を施すのである。
【００４０】
上記した通常誤り監視処理又は優先誤り監視処理の実行後、メモリ制御部２は、図６に示す誤り発生確認処理ルーチンを再度実行する。
【００４１】
この誤り発生確認処理ルーチンの終了後、メモリ制御部２は、図３（ａ）に示す如くＲＡＭ４に記憶されているリフレッシュ対象ブロックを読み出し、フラッシュメモリ３がレディ状態、つまり空き時間帯にある間に、フラッシュメモリ３内の上記したリフレッシュ対象ブロックに対して以下の如きリフレッシュ処理を実行する。
【００４２】
すなわち、メモリ制御部２は、先ず、このリフレッシュ対象ブロック内の各ページから符号化データ片の読み出しを行う。この際、誤り検出訂正部２１は、この読み出された符号化データ片に対して誤り検出処理を施し、ビット誤りが存在する場合には、かかる符号化データ片に対して誤り訂正処理を施す。メモリ制御部２は、この誤り訂正処理の施された符号化データ片を、元々この符号化データ片が保持されていたページに上書きする（リフレッシュ処理）。かかるリフレッシュ処理によれば、年数の経過に伴い増加するビット誤りの数が一旦、ゼロになるので、データの保存期間の延長が図られるようになる。
【００４３】
以上の如く、本発明に係る半導体メモリ制御装置（２）では、読出指令に応じてデータ読出処理（Ｓ８）が為される度に、読出指令に応じたアドレスとは別に半導体メモリ（３）内の誤り監視対象ブロックに対して誤りビット数（ＥＲＳ）の検出を行うという誤り監視処理（Ｓ９）を実行するようにしている。
【００４４】
よって、本発明によれば、周期的に誤り監視処理を実行する場合に為される、データ読出処理と誤り監視処理との重複を回避する重複回避処理が不要となるので、この重複回避処理の実行に伴う遅延が生じない。従って、誤り監視処理を実施することによる読出アクセス時間の増加を防止することが可能となる。
【００４５】
更に、本発明によれば、周期的に誤り監視処理を実行する場合に用いられるタイマが不要となるので、装置規模を縮小化することが可能となる。
【００４６】
また、本発明に係る半導体メモリ制御装置では、ＣＰＵ（１）からの読出指令に応じて為されるデータ読出処理（Ｓ８）の実行後、ハードウェアからなる誤り監視処理部（２４）によって、半導体メモリ（３）内の１ブロック（優先誤り監視対象ブロック、又は通常誤り監視対象ブロック）に対して誤り監視処理を実施するようにしている。よって、半導体メモリ（３）から読み出されたデータをＣＰＵ（１）で取得する為の取得処理期間内に、かかる誤り監視処理を終了させれば、メモリアクセスの妨げにならない効率的な誤り監視を実現することが可能となる。
【００４７】
また、この半導体メモリ制御装置では、ＣＰＵ１からの読出指令に応じて為されるデータ読出処理（Ｓ８）毎に、読出対象となったデータが保持されているブロックと、前回までの読出によってビット誤りが検出された優先誤り監視対象ブロック又は乱数によって指定した通常誤り監視対象ブロックと、の２箇所の領域に対して誤り監視処理を実施している。よって、データ読出処理（Ｓ８）毎に誤り監視処理を実施するにあたり、比較的、広い領域に対して誤りビット数の監視を行うことが可能となる。
【００４８】
なお、本半導体メモリ制御装置では、１回分の読出動作が終了する度に、優先誤り監視対象ブロックを誤り監視するにあたり、この優先誤り監視対象ブロック内においてランダムに選出した１ページ分（優先オフセットページ）を誤り監視することにより、誤り監視処理の簡略化を図るようにしても良い。ここで、読出指令に応じてフラッシュメモリ３から読み出されたデータに誤りが検出されたが故に、このデータが保持されているブロックを優先的に誤り監視させたい場合、メモリ制御部２は、そのブロック番号を優先パイロット対象ブロック番号として誤り監視領域指定レジスタ２４に上書きするようにしても良い。
【００４９】
尚、上記実施例では、データ読出処理（Ｓ８）の直後に、ハードウェア（２４）で誤り監視処理（Ｓ９）を実行するようにしているが、このデータ読出処理（Ｓ８）の直前、或いは同時に誤り監視処理（Ｓ９）を実行するようにしても良い。
【００５０】
要するに、１つの読出指令をトリガとして、この読出指令に応答して、誤り監視処理（Ｓ９）を実行すれば良いのである。
【００５１】
ここで、一般的にフラッシュメモリは、図７の破線に示すように、１ブロックに対するイレース処理の回数が増加するほど、そのブロックに保持されているデータに誤りが生じ易くなり、正常な読み出しを行うことが可能な読出回数の限度（ＴＲ）が低下する。
【００５２】
そこで、通常パイロット処理を実行するにあたり、現時点までに実施されたイレース回数及び読出回数を考慮して、この通常パイロット処理を実施するか否かを制御するようにしても良い。
【００５３】
図８は、かかる点に鑑みて為された、本発明に係る半導体メモリ制御装置の変形例を示す情報処理システムのブロック図である。
【００５４】
図８に示すように、かかる情報処理システムは、図１に示すメモリ制御部２に代えてメモリ制御部２Ａ、フラッシュメモリ３に代えてフラッシュメモリ３Ａを採用した点を除く他の構成は、図１に示されるものと同一である。
【００５５】
尚、フラッシュメモリ３Ａには、各ブロック毎に、現時点までに実施された読出回数及びイレース回数が夫々個別に更新されつつ保存されるイレース回数テーブル領域３０が設けられている。
【００５６】
図９は、メモリ制御部２Ａにおいて実施される、図２に示す如きデータ読出ルーチンの変形例を示すフローチャートである。
【００５７】
尚、図９に示すデータ読出ルーチンでは、図２に示されるデータ読出ルーチンにステップＳ３１及びＳ３２を追加した点を除く他のステップ及びその実行順序は図２に示されるものと同一である。よって、以下にステップＳ３１及びＳ３２を中心にその動作を説明する。
【００５８】
すなわち、ステップＳ３において優先誤り監視実行フラグが通常誤り監視処理の実行を示すと判定された場合、メモリ制御部２Ａは、フラッシュメモリ３Ａのイレース回数テーブル領域３０から、通常誤り監視対象ブロックに対応したイレース回数を読み出し、そのイレース回数に対応した読出回数閾値ＴＲを、図７の破線にて示す変換特性から求める（ステップＳ３１）。尚、図７に示す変換特性は、フラッシュメモリ３Ａに対して現時点までに実施されたイレース回数と、正常にデータ読み出しが可能、つまり例えビット誤りが生じていてもこれを訂正することが可能となる読出動作の限度回数と、の対応関係に基づいて得られたものである。
【００５９】
かかるステップＳ３１の実行後、メモリ制御部２Ａは、フラッシュメモリ３Ａのイレース回数テーブル領域３０から、上記の通常誤り監視対象ブロックに対応した読出回数情報を読み出し、その読出回数が上記読出回数閾値ＴＲよりも大であるか否かを判定する（ステップＳ３２）。メモリ制御部２Ａは、このステップＳ３２において読出回数が上記読出回数閾値ＴＲよりも大であると判定された場合には前述した如きステップＳ６及びＳ７なる一連の処理を実行する一方、その読出回数が読出回数閾値ＴＲ以下であると判定された場合には、このステップＳ６をスキップして次のステップＳ７の実行に移る。
【００６０】
要するに、前回までのフラッシュメモリ３Ａからのデータ読み出しによって誤りが検出されず（ステップＳ３でＮＯの判定）、且つ通常誤り監視対象ブロックに対する現時点までの読出回数が、図７に示す如き、そのブロックに対して施されたイレース回数（延べ数）に対応した読出回数閾値ＴＲを超えた場合にだけ、通常誤り監視対象ブロックを示す番号が誤り監視領域指定レジスタ２３に記憶される（Ｓ６）。一方、前回までのフラッシュメモリ３Ａからのデータ読み出しによって誤りが検出されず（ステップＳ３でＮＯの判定）、且つ現時点までの読出回数が、そのブロックに対して施されたイレース回数（延べ数）に対応した読出回数閾値ＴＲ以下の場合には、通常誤り監視対象ブロックに対する誤り監視処理は実施されない。
【００６１】
このように、図７に示される半導体メモリ制御装置においては、読出可能な限度回数に対応した読出回数閾値（ＴＲ）を、図７に示す如くイレース回数の増加に伴い低下させつつ、現時点までの読出回数（延べ数）と、読出回数閾値（ＴＲ）とを比較することにより通常誤り監視処理を実行するか否かを制御するようにしている。
【００６２】
これにより、イレース回数の増加に伴って正常にデータを読出すことが可能な読出回数が低下しても、不必要に通常誤り監視処理を実行することなく、且つ、訂正可能な誤りビット数の状態にある間に必ず通常誤り監視処理が実施されるようになる。よって、無駄のない効率的な誤り監視処理を実施することが可能となる。
【００６３】
尚、かかる実施例では、図７に示す如く、フラッシュメモリ３に対するイレース回数の増加に追従して低下する読出回数閾値ＴＲに基づき、通常誤り監視処理を実行するか否かを制御しているが、フラッシュメモリ３に対する現時点までの総書き込み回数に追従して低下する読出回数閾値ＴＲを用いるようにしても良い。
【００６４】
又、上記実施例では、フラッシュメモリ３から１回分のデータ読み出しが為される度に、誤り監視処理（Ｓ９）を実行するようにしているが、Ｎ回分（Ｎは２以上の整数）のデータ読み出し毎に１回分の誤り監視処理（Ｓ９）を実行するようにしても良い。
【符号の説明】
【００６５】
１          ＣＰＵ
２          メモリ制御部
３          フラッシュメモリ
４          ＲＡＭ
【図１】
0005883284.tif 000002
【図２】
0005883284.tif 000003
【図３】
0005883284.tif 000004
【図４】
0005883284.tif 000005
【図５】
0005883284.tif 000006
【図６】
0005883284.tif 000007
【図７】
0005883284.tif 000008
【図８】
0005883284.tif 000009
【図９】
0005883284.tif 000010