(57)【特許請求の範囲】
【請求項１】
書換制限を持ち、かつ、ユーザデータ格納領域と、このユーザデータ格納領域が書換限界回数に達した場合に書き込みを行うための予備領域を有するメモリを使用した半導体ディスク装置の寿命を算出する半導体ディスク装置の寿命算出方法において、
前記予備領域における未使用セクタの数を算出するステップと、
使用中のユーザデータ格納領域の全セクタを書換回数の多い順に配列するステップと、
前記書換回数の多い順に配列したセクタのうち、（前記予備領域の未使用セクタ数＋１）番目のセクタを算出するステップと、
前記（予備領域の未使用セクタ数＋１）番目のセクタの書換回数を算出するステップと、
書換可能限界回数から、前記（予備領域の未使用セクタ数＋１）番目のセクタの書換回数を減じた値を、寿命までの書換可能回数として算出するステップとを備えたことを特徴とする半導体ディスク装置の寿命算出方法。
【請求項２】
書換制限を持ち、かつ、ユーザデータ格納領域と、このユーザデータ格納領域が書換限界回数に達した場合に書き込みを行うための予備領域を有するメモリを使用した半導体ディスク装置の寿命を算出する半導体ディスク装置の寿命算出方法において、
使用中のユーザデータ格納領域の書換回数を多い順に配列するステップと、
予め設定した定数をｎとし、書換回数の上位ｎセクタまでを書き込み集中セクタとしてこれら書き込み集中セクタの平均書換回数を算出するステップと、
書換回数の上位（ｎ＋１）セクタ以降を通常セクタとして、これら通常セクタの平均書換回数を算出するステップと、
前記書き込み集中セクタの平均書換回数と、通常セクタの平均書換回数の比率を算出するステップと、
前記予備領域における未使用セクタの数を算出するステップと、
前記予備領域における未使用セクタ数が、前記比率と前記ｎを掛けた数以上であった場合は、前記通常セクタの代替により書換可能限界に達すると判定し、前記未使用セクタ数が、前記比率と前記ｎを掛けた数未満であった場合は、前記書き込み集中セクタの代替により書換可能限界に達すると判定するステップと、
前記通常セクタの代替により書換可能限界に達すると判定した場合は、前記通常セクタを予備領域に代替した場合に、予備領域への代替が不可となる通常セクタの書換回数を書換可能限界数から減じた回数を寿命までの書き込み可能回数として算出するステップと、
前記書き込み集中セクタの代替により書換可能限界に達すると判定した場合は、
（予備領域における未使用セクタ数）／（平均書換回数比率×ｎ）
により代替可能割合を算出するステップと、
書換可能限界回数に前記代替可能割合を乗じた回数から、（ｎ＋１）番目のセクタの書換回数を、寿命までの書き込み可能回数として算出するステップとを備えたことを特徴とする半導体ディスク装置の寿命算出方法。
【請求項３】
請求項１〜２のいずれかにおいて、
ホストからのライトコマンドを受けた場合、寿命までの書き込み可能回数が上限値を超えたセクタがあるか否かを判定し、あった場合はウォーニングフラグをセットするステップと、
ライトコマンド終了報告時にウォーニングフラグがセットされているかを判定し、セットされていた場合は、前記ホストに対して、ウォーニングステータスを付加して報告するステップとを備えたことを特徴とする半導体ディスク装置の寿命算出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶媒体として書換回数制限を持つフラッシュメモリ（以降、単にメモりと呼ぶ）を使用した半導体ディスク（以降、単にＳＳＤと呼ぶ）装置の制御に関するもので、特に、書換回数制限による寿命時期を算出する半導体ディスク装置の寿命算出方法に関する。
【０００２】
【従来の技術】
ＳＳＤ装置にて使用しているメモリは、一般に書換回数に制限を持っているため、制限を超えて書き込みを実行した場合、書き込みエラーが発生すると共に、以降、そのＳＳＤに対する書き込みが不可能となる。このため、従来より、メモリ内を、ユーザ領域と、このユーザ領域が書換可能回数を超えた場合に書き込みを行う代替用の予備領域とを設けて書換回数を管理していた。
【０００３】
図７は、従来のＳＳＤへの書き込み処理のフローチャートである。
先ず、ホストからライトコマンドが送出されると、この受付処理を行う（ステップＳ３０１）。そして、ホストからＳＳＤ内部データバッファへのデータ転送処理が行われる（ステップＳ３０２）。ＳＳＤ装置側のコントローラ部では、データの書き込み先のセクタアドレスを算出し（ステップＳ３０３）、そのセクタアドレスに対応したデータ書き込み先セクタのステータスをチェックする（ステップＳ３０４）。即ち、不良セクタでないかをチェックする。これにより、不良セクタではないと判定された場合は、そのままステップＳ３０６に進み、不良セクタと判定された場合は、代替先の予備領域のセクタを算出し（ステップＳ３０５）、その後、ステップＳ３０６に進む。
【０００４】
ステップＳ３０６では、データ書き込み先セクタの書換回数をチェックする。即ち、そのセクタが書換回数範囲内であるか、書換回数を超えているかを判定する。これにより、書換回数範囲内であった場合はそのままステップＳ３０８に進み、書換回数を超えていた場合は、代替先セクタの登録を行い（ステップＳ３０７）、ステップＳ３０８に進む。
【０００５】
ステップＳ３０８では、ＳＳＤ内部データバッファからデータ書き込み先セクタへのデータ転送処理を行う。ここで、予備領域のセクタに代替した場合は、その予備領域のセクタに対してデータ転送処理を行う。
【０００６】
そして、セクタ管理テーブルの書換回数を更新し（ステップＳ３０９）、以上のステップＳ３０２からステップＳ３０９までの処理をホストからの指定セクタ分繰り返す。これが終了すると正常終了となる（ステップＳ３１０）。
【０００７】
【発明が解決しようとする課題】
しかしながら、以上のような制御を行っても、書換回数超えによる予備領域のセクタの使用が進み、最終的に予備セクタを使用し尽くした場合、書き込みエラーが発生し、データの書き込みが不可能になると共に、これ以降はＳＳＤ装置に対する書き込みが不可能となる。このような事態が発生しても、ユーザはＳＳＤ装置の寿命時期を知る手段がなかったため、突然寿命に到達し、重要データの保存ができなくなるといった問題点があった。
【０００８】
また、このような問題点に対処するため、半導体ディスク装置の寿命を通知する構成も考えられているが、その構成は単に書換回数がある閾値を超えた場合に通知するといったものである。従って、ユーザ側では、その閾値に達するまでは、現在の書換回数がどのようになっているかは把握できなかった。また、閾値を超えてからも、あとどの程度の書き込みで限界に達するかといったことも知ることができず、このような寿命通知の構成であってもユーザにとって非常に使いにくいものであった。
【０００９】
このような点から、ユーザが任意の時点で半導体ディスク装置の使用状態を認識することのできる構成が望まれていた。
【００１０】
【課題を解決するための手段】
本発明は、前述の課題を解決するため次の構成を採用する。
〈請求項１の構成〉
書換制限を持ち、かつ、ユーザデータ格納領域と、このユーザデータ格納領域が書換限界回数に達した場合に書き込みを行うための予備領域を有するメモリを使用した半導体ディスク装置の寿命を算出する半導体ディスク装置の寿命算出方法において、予備領域における未使用セクタの数を算出するステップと、使用中のユーザデータ格納領域の全セクタを書換回数の多い順に配列するステップと、書換回数の多い順に配列したセクタのうち、（前記予備領域の未使用セクタ数＋１）番目のセクタを算出するステップと、（予備領域の未使用セクタ数＋１）番目のセクタの書換回数を算出するステップと、書換可能限界回数から、（予備領域の未使用セクタ数＋１）番目のセクタの書換回数を減じた値を、寿命までの書換可能回数として算出するステップとを備えたことを特徴とする。
【００１１】
〈請求項１の説明〉
請求項１の発明は、使用中のユーザデータ格納領域のセクタのうち、書換回数の多いものから順番に未使用セクタへの代替が発生すると仮定し、これらのセクタのうち、（予備領域の未使用セクタ数＋１）番目に書換回数の多いセクタの書換回数を算出する。そして、この書換回数超えを寿命として、このセクタの残り書換可能回数を算出するようにしたものである。これにより、メモリの寿命を更に確実に認識可能となり、寿命限界まで有効に利用することができる。
【００１２】
〈請求項２の構成〉
書換制限を持ち、かつ、ユーザデータ格納領域と、このユーザデータ格納領域が書換限界回数に達した場合に書き込みを行うための予備領域を有するメモリを使用した半導体ディスク装置の寿命を算出する半導体ディスク装置の寿命算出方法において、使用中のユーザデータ格納領域の書換回数を多い順に配列するステップと、予め設定した定数をｎとし、書換回数の上位ｎセクタまでを書き込み集中セクタとしてこれら書き込み集中セクタの平均書換回数を算出するステップと、書換回数の上位（ｎ＋１）セクタ以降を通常セクタとして、これら通常セクタの平均書換回数を算出するステップと、書き込み集中セクタの平均書換回数と、通常セクタの平均書換回数の比率を算出するステップと、予備領域における未使用セクタの数を算出するステップと、予備領域における未使用セクタ数が、比率とｎを掛けた数以上であった場合は、通常セクタの代替により書換可能限界に達すると判定し、未使用セクタ数が、比率とｎを掛けた数未満であった場合は、書き込み集中セクタの代替により書換可能限界に達すると判定するステップと、通常セクタの代替により書換可能限界に達すると判定した場合は、通常セクタを予備領域に代替した場合に、予備領域への代替が不可となる通常セクタの書換回数を書換可能限界数から減じた回数を寿命までの書き込み可能回数として算出するステップと、書き込み集中セクタの代替により書換可能限界に達すると判定した場合は、（予備領域における未使用セクタ数）／（平均書換回数比率×ｎ）により代替可能割合を算出するステップと、書換可能限界回数に前記代替可能割合を乗じた回数から、（ｎ＋１）番目のセクタの書換回数を、寿命までの書き込み可能回数として算出するステップとを備えたことを特徴とする。
【００１３】
〈請求項２の説明〉
請求項２の発明は、現時点までの各セクタに対する書換回数を元に、今後の書き込みを推定し、この推定を元に未使用セクタへの代替を想定し、寿命時期を書換可能回数として算出するようにしたものである。これにより、システムの違い等、使用方法に差異があった場合でも確実に寿命時期の認識が可能となる。
【００１４】
〈請求項３の構成〉
請求項１〜２のいずれかにおいて、ホストからのライトコマンドを受けた場合、寿命までの書き込み可能回数が上限値を超えたセクタがあるか否かを判定し、あった場合はウォーニングフラグをセットするステップと、ライトコマンド終了報告時にウォーニングフラグがセットされているかを判定し、セットされていた場合は、ホストに対して、ウォーニングステータスを付加して報告するステップとを備えたことを特徴とする半導体ディスク装置の寿命算出方法である。
【００１５】
〈請求項３の説明〉
請求項３の発明は、書換可能回数が上限値を超えたセクタがあった場合は、ホストからのライトコマンドによって、これを報告するようにしたものである。これにより、上記請求項１〜３のいずれかの発明の効果に加えて、より確実に寿命時期を知ることができる効果がある。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて詳細に説明する。
図１は、本発明の具体例１における半導体ディスク装置の寿命算出方法を示すフローチャートであるが、この説明に先立ち、本発明の半導体ディスク装置の寿命算出方法が前提とする半導体ディスク装置の構成について説明する。
【００２０】
図２は、一般的な半導体ディスク装置の回路ブロック図である。
図の装置は、マイクロコントローラ部１、ディスクコントローラ部２、フラッシュメモリ部３からなる。マイクロコントローラ部１は、半導体ディスクとして構成するための制御を行うモジュールである。ディスクコントローラ部２は、マイクロコントローラ部１の制御に基づき、フラッシュメモリ部３を実際に制御するモジュールである。また、フラッシュメモリ部３は、複数のフラッシュメモリチップ＃０（３−０）〜＃９（３−９）からなるメモリ部である。
【００２１】
マイクロコントローラ部１は、マイクロＣＰＵ１１とプログラムメモリ１２からなり、ホストから見てＳＳＤを磁気ディスク装置等と同様の制御が可能な構成とするための制御部である。マイクロＣＰＵ１１は、マイクロコントローラ部１としての制御プロセッサであり、プログラムメモリ１２は、制御用のプログラム等を格納するためのファームウェアである。
【００２２】
ディスクコントローラ部２は、マイクロＣＰＵインタフェース２１、ホストインタフェース２２、データバッファ２３、データ転送制御部２４、フラッシュメモリインタフェース２５、ＥＣＣ制御部２６、セクタ管理テーブル２７からなる。
【００２３】
マイクロＣＰＵインタフェース２１は、マイクロコントローラ部１のマイクロＣＰＵ１１のためのインタフェースである。ホストインタフェース２２は、図示省略したホストとのインタフェースであり、このホストインタフェース２２を介して、ホストからのコマンドやデータ等を受信するようになっている。データバッファ２３は、ホストからのライトデータやフラッシュメモリ部３からのリードデータを一時格納するバッファメモリである。データ転送制御部２４は、データバッファ２３とフラッシュメモリ部３間のデータ転送制御を行う機能部である。フラッシュメモリインタフェース２５は、フラッシュメモリ部３とのインタフェースである。ＥＣＣ制御部２６は、書き込みデータのエラー訂正演算を行うための制御部である。セクタ管理テーブル２７は、フラッシュメモリ部３のセクタ管理を行うためのテーブルである。
【００２４】
図３は、セクタ管理テーブルの説明図である。
図示のように、セクタ管理テーブル２７は、各セクタ毎に、セクタフラグ、代替先セクタ番号、書換回数、領域名称を示している。セクタフラグとは、現在使用中であるか、あるいはそのセクタが不良であったり既に書換限界回数に達していて使用済であるといったように、使用していないセクタであるかを示すフラグである。代替先セクタ番号は、使用していないセクタの代替先セクタを示す番号である。書換回数は、各セクタの現在の書換回数である。領域名称とは、そのセクタがユーザデータ格納領域であるか、代替用予備領域であるかを示すものである。
【００２５】
このように構成された半導体ディスクに対する寿命算出方法を、以下、各具体例毎に説明する
【００２６】
《具体例１》
先ず、ホストからのライトコマンド処理の動作について説明する。
図４は、ライトコマンド処理の動作を示すフローチャートである。
本具体例のライトコマンド処理では、図７に示した従来のライトコマンド処理に対して、書換回数超えによる代替が発生した場合にウォーニングフラグをセットし（ステップＳ８）、また、ホストへの終了報告時にウォーニングフラグがセットされているかをチェックし（ステップＳ１１）、セットされている場合は、そのウォーニングフラグをクリアする（ステップＳ１３）と共に、終了ステータスにウォーニングフラグを付加してホストに報告する処理（ステップＳ１４）が追加されている点が特徴である。
【００２７】
即ち、本具体例では、ステップＳ１のライトコマンド受付処理からステップＳ７の代替先セクタ登録処理までは、従来と同様に行う。そして、ステップＳ７において、書換回数超えの発生したセクタを予備領域のセクタに代替した場合、ステップＳ８において、ウォーニングフラグをセットする。尚、このウォーニングフラグは、プログラムメモリ１２において管理しているフラグである。その後は、ステップＳ９、Ｓ１０は、従来のステップＳ３０８、Ｓ３０９と同様の処理であり、このようなステップＳ２からステップＳ１０までの処理をホストからの指定セクタ分繰り返す。
【００２８】
ホストからの指定セクタ分が終了すると、次に、ステップＳ１１において、ウォーニングフラグをチェックし、フラグが設定されていない場合は、そのまま正常終了する（ステップＳ１２）。一方、フラグが設定されている場合は、このウォーニングフラグをクリアして（ステップＳ１３）、終了ステータスにウォーニングフラグを付加してホストに報告し、正常終了する（ステップＳ１４）。
【００２９】
次に、ホストからの寿命算出コマンドが送出された場合の動作を図１に沿って説明する。
【００３０】
図１に示すように、ホストから寿命算出コマンドが発行されると、ＳＳＤでは、ホストインタフェース２２を介してこのコマンドを受け取り、寿命算出コマンド受付処理（ステップＳ２０）にて本コマンドを認識する。これにより、ステップＳ２１〜ステップＳ２３の使用状態算出のための処理を開始する。
【００３１】
この使用状態算出のための処理とは、先ず、予備領域内の全有効セクタ数（α）を算出する。具体的には、マイクロコントローラ部１が、セクタ管理テーブル２７を参照し、予備領域内のセクタフラグ部分が、使用中と使用済と未使用であるセクタ数を算出する。次に、ステップＳ２１と同様の方法にて、予備領域内の使用中と使用済セクタ数（β）を算出する（ステップＳ２２）。そして、これら使用中と使用済セクタ数（β）と全有効セクタ数（α）より、次式（１）に従い、使用率を算出する（ステップＳ２３）。
｛（使用中と使用済セクタ数）／（有効セクタ数）｝×１００  …（１）
【００３２】
例えば、現在の使用状態が図３に示すようになっていた場合、その使用率は以下の通りになる。
・予備領域内有効セクタ数：α＝６
・予備領域内使用中／使用済セクタ数：β＝４
・使用率：（４／６）×１００＝６６．７％
【００３３】
〈効果〉
以上のように、具体例１によれば、ユーザは希望する任意の時点でＳＳＤ装置の使用率を知ることが可能となる。従って、ユーザはＳＳＤ装置の使用状態を常に把握しながら使用することができる。例えば、使用率８５％程度までで使用を中止し、書換回数超えによる書き込みエラーの発生および書き込み不可能な状態を回避するといったことをユーザ自身が管理することができる。
【００３４】
《具体例２》
具体例２は、寿命時期を、ユーザが残りの書換可能回数として知ることができるようにしたものである。
【００３５】
〈構成〉
具体例２におけるＳＳＤの構成およびセクタ管理テーブル２７の構成は、図２および図３に示したものと同様であるため、ここでの説明は省略する。
【００３６】
〈動作〉
具体例２におけるライトコマンド処理時の動作は具体例１と同様であり、寿命算出処理が異なる。
【００３７】
図５は、具体例２の寿命算出処理を示すフローチャートである。
ＳＳＤでは、ホストから寿命算出コマンドを受け取ると、寿命算出コマンド受付処理（ステップＳ３０）にて本コマンドを認識し、ステップＳ３１〜ステップＳ３５の書換可能回数算出処理を開始する。書換可能回数算出処理が完了すると、終了ステータスに書換可能回数を付加してホストへ報告する（ステップＳ３６）。具体例１では、使用状態を使用率（パーセンテージ表現）しとして終了ステータスに付加していたが、本具体例では、書換可能回数を付加することが大きな相違点である。以降、書換可能回数算出処理の詳細について説明する。
【００３８】
先ず、ステップＳ３１にて、予備領域内の未使用セクタ数（ａ）を算出する。具体的には、セクタ管理テーブル２７より予備領域内のセクタフラグ部分が未使用であるセクタ数を算出する。次に、ユーザ領域および予備領域内の全使用中セクタの書換回数を多い順（降順）に配列（ｂ）する。具体的には、セクタ管理テーブル２７よりセクタフラグ部分が使用中であるセクタに対する書換回数を読み出し、回数の多い順番にプログラムメモリ１２にて記憶しておく。
【００３９】
次に、上記ステップＳ３２にて配列（ｂ）した書換回数が多いセクタから順番に、ステップＳ３１にて算出した未使用セクタへ代替が発生すると仮定し、代替ができなくなるセクタ、即ち、（未使用セクタ数（ａ）＋１）番目に書換回数が多いセクタ（ｃ）を算出する（ステップＳ３３）。
【００４０】
更に、ステップＳ３３で算出した代替不可能セクタ（ｃ）の書換回数（ｄ）を算出する（ステップＳ３４）。次に、代替不可能セクタ（ｃ）の書換回数超え発生時を寿命として、このセクタの残り書換可能回数を次式（２）に従い算出する（ステップＳ３５）。
（書換限界回数）−｛（未使用セクタ数＋１）番目セクタの書換回数｝…（２）
【００４１】
以上、具体例１に対し、未使用セクタへの代替を想定し、代替不可能となるセクタの書換回数を元に、寿命時期を書換可能回数として報告するようにしている。
【００４２】
現在の使用状態が図３に示すようになっていたとすると、書換可能回数は以下の通りになる。
・予備領域内未使用セクタ数：ａ＝２
・代替不可能セクタ番号：ｃ＝No.1001
・代替不可能セクタ（No.1001）の書換回数：ｄ＝３３８７回
・寿命までの書換可能回数：３００００−３３８７＝２６６１３回
（但し、セクタの書換可能限界回数を３００００回と仮定した場合）
【００４３】
〈効果〉
以上のように具体例２によれば、ユーザは寿命時期を書換可能回数として知ることができるため、具体例１の効果に加えて寿命時期をより確実に認識可能となり、寿命限界まで有効に使用することができる。
【００４４】
《具体例３》
具体例３は、現時点までの各セクタに対する書換回数を元に、今後の書き込みを推定し、この推定を元に未使用セクタへの代替を想定し、寿命時期を書換可能回数として報告するようにしたものである。
【００４５】
〈構成〉
具体例３においても、そのＳＳＤの構成およびセクタ管理テーブル２７の構成は、それぞれ図２および図３に示したものと同様であるため、ここでの説明は省略する。
【００４６】
〈動作〉
具体例３におけるライトコマンド処理時の動作は具体例１、２と同様であり、寿命算出処理が異なる。
【００４７】
図６は、具体例３の寿命算出処理を示すフローチャートである。
ホストから寿命算出コマンドを受け取ると、寿命算出コマンド受付処理（ステップＳ４０）にて、本コマンドを認識し、ステップＳ４１〜ステップＳ５１までの書換可能回数算出処理を開始する。そして、この書換可能回数算出処理が完了すると、終了ステータスに書換可能回数を付加してホストへ報告する（ステップＳ５２）。具体例２では、未使用セクタ数を元に、単に書換回数の多いセクタから順番に代替されるという仮定に従い、以降に発生する代替を想定し、この想定に従って寿命までの書換可能回数を算出していたが、本具体例では、現時点までの各セクタに対する書換回数を元に、今後の書き込みを推定し、この推定を元に未使用セクタへの代替を想定し、寿命時期を書換可能回数として報告するようにした点が大きな相違点である。以降、ステップＳ４１〜ステップＳ５１の書換可能回数算出処理の詳細について説明する。
【００４８】
先ず、ユーザ領域および予備領域内の全使用中セクタの書換回数を多い順番に配列（Ａ）する（ステップＳ４１）。具体的には、セクタ管理テーブル２７より、セクタフラグ部分が使用中であるセクタに対する書換回数を読み出し、回数の多い順にプログラムメモリ１２で記憶しておく。この時、代替先セクタ番号欄に代替先セクタ番号が記載されているセクタに関しては、ホストからは同一セクタと認識されて書き込みが実行されているので、全ての書換回数を加えた値をそのセクタの書き込み回数として取り扱う。即ち、図３の例で言えば、セクタ番号0005とセクタ番号1021は同一セクタと考え、書換回数は３０１１９回として以降の処理に使用する。
【００４９】
次に、ステップＳ４１で求めた配列（Ａ）において、予め設定しておいた定数（ｎ）に従い、書換回数の多い上位ｎセクタを書き込み集中セクタとして、これらの書き込み集中セクタの平均書換回数（Ｂ）を算出する（ステップＳ４２）。尚、ここで、引用する定数ｎはシステムにてＳＳＤ装置を使用する上で、特に書き込みが集中するセクタ数を指定することを目的とする。従って、具体例の数値の設定方法は、ファームウェア設計時の評価により決定することも可能であるが、ホストからのコマンドによりシステム毎に変更可能としておく方法が望ましい。
【００５０】
次に、上記の配列（Ａ）において、（ｎ＋１）番目以降のセクタの平均書換回数（Ｃ）を算出する（ステップＳ４３）。更に、上記書き込み集中セクタの平均書換回数（Ｂ）と、通常セクタの平均書換回数（Ｃ）の比（Ｄ）を次式（３）に従って算出する（ステップＳ４４）。
（書き込み集中セクタの平均書換回数）／（通常セクタの平均書換回数）…（３）
【００５１】
この式（３）の結果により、現時点までの使用方法において、通常セクタの書き込み１回に対して書き込み集中セクタに何回書き込みが発生しているかを算出し、これを元に、以降の処理において代替の発生を想定する。
【００５２】
次に、予備領域内の未使用セクタ数（Ｅ）を算出する（ステップＳ４５）。具体的には、セクタ管理テーブル２７より予備領域内のセクタフラグ部分が未使用であるセクタ数を算出する。そして、代替が、通常セクタの代替によって限界に到達するか、書き込み集中セクタの代替により限界に達するかを判断する（ステップＳ４６）。即ち、通常セクタの書換回数超えによる代替１回に対して、書き込み集中セクタは平均書換回数比分多く代替が発生すると仮定し、予備領域内未使用セクタ数（Ｅ）が、（平均書換回数比（Ｄ）×ｎ）以上の場合（Ｅ≧Ｄ×ｎ）は、通常セクタの代替により限界に到達すると判定して、ステップＳ４７に進む。一方、（平均書換回数比（Ｄ）×ｎ）よりも予備領域内未使用セクタ数（Ｅ）が少ない場合（Ｅ＜Ｄ×ｎ）は、書き込み集中セクタの代替により限界に到達すると判定し、ステップＳ４９に進む。
【００５３】
通常セクタの代替により限界に到達すると判断された場合は、通常セクタを予備領域に代替した場合に、予備領域への代替が不可となるｍ番目の通常セクタの書換回数（Ｇ）を算出し（ステップＳ４７）、書換可能限界回数からｍ番目のセクタの書換回数（Ｇ）を減じた回数を算出する（ステップＳ４８）。これを寿命時期までの書き込み可能回数としてホストに報告する。
【００５４】
一方、書き込み集中セクタの代替により限界に到達すると判断された場合は、次式（４）に従い、代替可能割合（Ｉ）を算出する（ステップＳ４９）。
【００５５】
（予備領域内未使用セクタ数Ｅ）／｛（平均書換回数比率Ｄ）×ｎ｝…（４）
この値は、書き込み集中セクタ代替限界により、通常セクタの書換限界回数が何割に減少するかを算出可能とする。
【００５６】
次に、上記配列（Ａ）中の（ｎ＋１）番目のセクタの書換回数（Ｊ）を算出し（ステップＳ５０）、書換可能限界回数に代替可能割合（Ｉ）を乗じた回数から（ｎ＋１）番目のセクタの書換回数（Ｊ）を減じた回数を算出する（ステップＳ５１）。即ち、書換可能限界回数に代替可能割合（Ｉ）を乗じた回数とは、（ｎ＋１）番目のセクタが、本来の書換可能限界回数のうち、何回分を書換として使用できるかを示しており、この書換回数から（ｎ＋１）番目のセクタの現在の書換回数を減じることにより、（ｎ＋１）番目のセクタの書換可能回数を算出することができる。これを寿命時期までの書き込み可能回数としてホストへ報告する。
【００５７】
以上、具体例２に対し、現時点までの各セクタへの書換回数を元に今後の各セクタの使用を予測し、この予測に従い代替を想定したうえで代替不可能となるセクタの書換回数を元に、寿命時期を書換可能回数として報告するようにしている。
【００５８】
例えば、現時点が図３に示す状態であるとして、書き込み集中セクタの代替により限界に到達する場合の書換可能回数を算出すると、以下の通りになる。
・書換回数上位ｎセクタの平均書換回数：Ｂ＝｛（３０１１９＋２５８６９＋９７３８）／３｝＝２１９０５．７回（但し、ｎ＝３と仮定した場合）
・書換回数上位（ｎ＋１）以降のセクタの平均書換回数：Ｃ＝｛（１３３９＋１３３８＋２５＋２５＋３３８７＋２６）／６｝＝１０２３．３回
・平均書換回数比率：Ｄ＝２１９０５．７／１０２３．３＝２１．４
・予備領域内未使用セクタ数：Ｅ＝２０（但し、予備領域内未使用セクタ数を２０と仮定）
・代替可能数：Ｅ（＝２０）＜２１．４×３
・代替可能割合：Ｉ＝２０／（２１．４×３）＝０．３１
・書換回数上位（ｎ＋１）セクタの書換回数：３３８７回
寿命までの書換可能回数：３００００×０．３１−３３８７＝５９１３回（但し、セクタの書換可能限界回数を３００００と仮定した場合）
尚、書換可能回数の５９１３回は、書換回数が上位のセクタにおいて、該書換上位セクタにおける平均的な寿命を示す。これにより、書換可能回数が３００００回に達し、突然書換が出来なくなる不具合を未然に防止することができる。
【００５９】
一方、通常セクタの代替により限界に到達する場合は次のようになる。この場合も、現時点が図３に示す状態であり、予備領域内未使用セクタ数を１０６と仮定する。
・予備領域内未使用セクタ数  Ｅ＝１０６
・代替可能数  Ｅ（＝１０６）＞２１．４×３
・ｎ＋１セクタが代替された後に残る予備領域内未使用セクタ
１０６−（２１．４×３＋１）＝４０
【００６０】
即ち、上記の（２１．４×３）が書き込み集中セクタの使用するセクタ数、１はｎ＋１セクタの使用するセクタ数であり、これらの合計したセクタ数を予備領域内未使用セクタ（＝１０６）から減じた値が、ｎ＋１セクタが代替された後に残る予備領域内未使用セクタ数となる。
【００６１】
・ｎ＋１セクタが代替された時のｎ＋２セクタ目の推定書換回数
３００００：ｘ＝３３８７：１３３９  従って、ｘ＝１１８６０
この場合、３３８７がｎ＋１セクタの現時点の書換回数、１３３９がｎ＋２セクタの現時点の書換回数であり、これらの比率で、ｎ＋１セクタが書換可能限界回数（３００００回）に達した時点のｎ＋１セクタに対するｎ＋２セクタの書換回数（ｘ回）が求められる。
【００６２】
・ｎ＋２セクタが代替されるまでに書き込み集中セクタの代替にて使用されるセクタ数
（３００００−１１８６０）×２１．４×３÷３００００＝３９
・ｎ＋２セクタが代替されるまでにｎ＋１セクタの推定書換回数
ｘ：（３００００−１１８６０）＝３３８７：１３３９  従って、ｘ＝４５８８５
ここで、書換可能限界回数は３００００回であるため、ｎ＋１セクタの代替は１回発生することになる。
【００６３】
・ｎ＋２セクタの代替時点での予備領域内未使用セクタ数
４０−３９−１＝０
従って、ｎ＋２番目のセクタが代替不可となるため、通常セクタを予備領域に代替した場合に、予備領域への代替が不可となるｍ番目の通常セクタはｎ＋２となる。
・寿命までの書換可能回数
３００００−１３３９＝２８６６１回
【００６４】
このように、通常セクタの代替により限界に到達する場合は、そのｍ番目の通常セクタを求め、このｍ番目の通常セクタの現時点の書換回数を書換可能限界回数から減じた値を求めることによって、寿命算出を行うことができる。
【００６５】
〈効果〉
以上のように、具体例３によれば、寿命算出コマンド受付時点迄の使用状況を元に、以降に発生する書換回数超えによる代替を想定し、寿命時期を算出しているため、具体例２の効果に加えシステムの違い等、使用方法に差異があった場合でも、ユーザは確実に寿命時期が認識可能となる。
【図面の簡単な説明】
【図１】本発明の具体例１による半導体ディスク装置の寿命算出方法を示すフローチャートである。
【図２】一般的な半導体ディスク装置の回路ブロック図である。
【図３】セクタ管理テーブルの説明図である。
【図４】本発明の半導体ディスク装置の寿命算出方法におけるライトコマンド処理のフローチャートである。
【図５】本発明の具体例２による半導体ディスク装置の寿命算出方法を示すフローチャートである。
【図６】本発明の具体例３による半導体ディスク装置の寿命算出方法を示すフローチャートである。
【図７】従来のライトコマンド処理のフローチャートである。
【符号の説明】
１  マイクロコントローラ部
２  ディスクコントローラ部
３  フラッシュメモリ部
２７  セクタ管理テーブル
【図１】
0003557511.tif 000002
【図２】
0003557511.tif 000003
【図３】
0003557511.tif 000004
【図４】
0003557511.tif 000005
【図５】
0003557511.tif 000006
【図６】
0003557511.tif 000007
【図７】
0003557511.tif 000008