(57)【要約】【課題】フラッシュメモリを用いた記憶装置において、フラッシュメモリチップ内に寿命が尽きるなど一部分に障害が生じても、障害が生じた分のフラッシュメモリを、フラッシュドライブや、フラッシュドライブ内のフラッシュモジュールで追加することで、記憶装置全体の容量を維持することを可能にする。【解決手段】半導体メモリ素子全体容量よりも小さい機能容量単位１０９を備え、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子１０７を複数個有するメモリ素子ユニット１０５を２以上搭載した記憶装置１０１において、寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリ素子ユニットのメモリ素子の機能容量単位に代替させ、装置全体の所定の容量を維持する。【選択図】図１
2008102819.tif 000002
【特許請求の範囲】
【請求項１】
半導体メモリ素子全体容量よりも小さい機能容量単位を備え、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子を複数個有するメモリ素子ユニットを２以上搭載した記憶装置において、
一のメモリ素子ユニットの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリ素子ユニットの半導体メモリ素子の機能容量単位に代替させ、装置全体の所定の容量を維持することを特徴とする記憶装置。
【請求項２】
前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個と、該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラとで構成されるメモリモジュールであり、一のメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリモジュールの半導体メモリ素子の機能容量単位に代替させる請求項１記載の記憶装置。
【請求項３】
前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個、及び該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラで構成されるメモリモジュールの複数個と、該メモリモジュールの半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するドライブコントローラとで構成されるドライブであり、一のドライブのメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のドライブのメモリモジュールの半導体メモリ素子の機能容量単位に代替させる請求項１記載の記憶装置。
【請求項４】
前記メモリ素子ユニットの半導体メモリ素子に対して論理アドレスを与え、該メモリ素子ユニットの半導体メモリ素子が該論理アドレスに対応するデータを格納しているか否かを、該メモリ素子ユニットのメモリコントコーラ又はドライブコントローラが判断し、該判断の結果を元に、データを読み出すメモリ素子ユニットの半導体メモリ素子が選択される請求項２又は３に記載の記憶装置。
【請求項５】
複数のメモリ素子ユニットの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、メモリ素子ユニットのメモリコントコーラ又はドライブコントローラが書き込み要求を受け付けられるか否かの情報を回答し、該回答を元に、書き込みに対応可能なメモリ素子ユニットの半導体メモリ素子が選択される請求項２又は３に記載の記憶装置。
【請求項６】
複数のメモリ素子ユニットの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、前記メモリコントローラ又はドライブコントローラは、冗長構成をとる際に、データの順序およびパリティ等データの種類やデータ並びの付随情報も同時に書き込み、読み出した際に、該付随情報を元に正しいデータを復元する請求項２又は３に記載の記憶装置。
【請求項７】
前記メモリコントローラ又はドライブコントローラは、半導体メモリ素子の機能容量単位毎に、論理アドレスとの対応関係の情報を保持し、半導体メモリ素子が追加された際に、追加された半導体メモリ素子の追加された分の論理アドレスとの対応関係の情報を作成する請求項２又は３に記載の記憶装置。
【請求項８】
半導体メモリ素子全体容量よりも小さい機能容量単位を備え、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子を複数個有するメモリ素子ユニットを２以上搭載した記憶装置を使用した記憶方法であって、
一のメモリ素子ユニットの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリ素子ユニットの半導体メモリ素子の機能容量単位に代替させて記憶することを有し、前記記憶装置全体の所定の容量を維持することを特徴とする記憶方法。
【請求項９】
前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個と、該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラとで構成されるメモリモジュールであり、一のメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリモジュールの半導体メモリ素子の機能容量単位に代替させて記憶することを有する請求項８記載の記憶方法。
【請求項１０】
前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個と、該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラとで構成されるメモリモジュールであり、一のメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリモジュールの半導体メモリ素子の機能容量単位に代替させて記憶することを有する請求項８記載の記憶方法。
【請求項１１】
前記メモリ素子ユニットの半導体メモリ素子に対して論理アドレスを与えることと、該メモリ素子ユニットの半導体メモリ素子が該論理アドレスに対応するデータを格納しているか否かを判断することと、該判断の結果を元に、データを読み出すメモリ素子ユニットの半導体メモリ素子を選択することとを有する請求項８記載の記憶方法。
【請求項１２】
複数の半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、メモリ素子ユニットが書き込み要求を受け付けられるか否かの情報を回答することと、該回答を元に、書き込みに対応可能なメモリ素子ユニットの半導体メモリ素子を選択することを有する請求項８記載の記憶方法。
【請求項１３】
複数のメモリ素子ユニットの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、冗長構成をとる際に、データの順序およびパリティ等データの種類やデータ並びの付随情報も同時に書き込むことと、読み出した際に、該付随情報を元に正しいデータを復元することとを有する請求項８記載の記憶方法。
【請求項１４】
前記半導体メモリ素子の機能容量単位毎に、論理アドレスとの対応関係の情報を保持することと、半導体メモリ素子が追加された際に、追加された半導体メモリ素子の追加された分の論理アドレスとの対応関係の情報を作成することとを有する請求項８記載の記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置及び記憶方法に関し、特にフラッシュメモリを用いた記憶システムの高信頼化のためのフラッシュメモリの制御方法、実装方法に関する。
【背景技術】
【０００２】
不揮発性半導体メモリとして、消去単位や書き込み単位（機能容量単位）があらかじめ定められているフラッシュメモリが存在する。フラッシュメモリは、酸化シリコンなどの酸化物の絶縁体でポリシリコンなどの導体を包んだ、フローティングゲート構造を持ち、フローティングゲートに存在する電荷の有無で、情報を記録するものである。フローティングゲート構造以外に、電荷を特定の場所に確保する構造を用いたものでもよい。
【０００３】
電荷を注入したり電荷を引き抜いたりするときに、フローティングゲート構造の場合、酸化絶縁体を絶縁破壊しながら電荷を移動させたり、酸化膜のトンネル効果を用いて電荷を移動させる。このため、絶縁体が劣化してゆく。このため、フラッシュメモリには、寿命が存在し、消去単位の容量毎に消去回数や書き換え回数に限度が存在する。
【０００４】
消去単位容量毎に寿命のある不揮発性半導体メモリの寿命を延ばす方法としては、各消去単位毎の消去回数がチップ全体にわたって均等にする方法や、代替領域を設けて寿命の尽きた消去単位部分を肩代わりし、一部分の消去単位が利用できなくなっても、メモリ装置としては問題なく動作させ続ける方法が存在する。
【０００５】
しかし、これらの方法も寿命を延長することは出来ても、無くすことは出来ない。必ず寿命が存在し、利用し続ければ必ず寿命を迎える。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来技術で、フラッシュメモリの寿命を延ばす技術は存在するが、寿命を無くすことは不可能である。このため、フラッシュメモリを用いた記憶システムでは、フラッシュメモリの一部に寿命が尽きた部分が生じても、記憶システムとしてはそれを補う機構が必要になる。このとき、フラッシュメモリの一部分が消去不可能や書き込み不可能になる障害が発生しているが、この部分に新たなデータを書き込むことが出来ないだけであり、既に記憶しているデータを読み出すことは、問題なくできる。よって、消去不能や書き込み不能になった部分のみ、ほかの手段で肩代わりし、残りは使い続けるのが効率的である。
【０００７】
このため、フレッシュメモリの一部に障害が起きた場合、障害が起きた箇所を他の部分に肩代わりさせるが、どの部分に障害が起きて、他のどの部分に肩代わりさせたかを管理する必要が生じる。よって、フラッシュメモリの各消去単位がどの論理アドレスを担当しているか、ある論理アドレスが指示されたとき対応するデータがどこのフラッシュメモリに存在するのか、消去単位毎に論理アドレスを物理アドレスの管理を行う必要が生ずる。
【０００８】
この論理アドレスと物理アドレスの管理を、上位のシステムで行うと管理テーブルが膨大になり、必要なメモリ等の実装コストが大きくなる課題が存在する。また、コストを下げようとすると、論理アドレスと物理アドレスの変換に時間がかかり性能が出なくなる課題が存在する。
【０００９】
運用保守で外部記憶装置の寿命を迎えた消去単位を含むメモリ素子を交換し、容量を維持させる方法も存在するが、メモリ素子の一部が使用不可能になっただけでメモリ素子を交換するのは効率が悪い課題がある。
【課題を解決するための手段】
【００１０】
本発明では、フラッシュドライブ等内部の一消去単位が障害を起こした場合、その消去単位の代替を、もう一つのフラッシュドライブに行わせる構成をとったものである。そのためには、消去単位毎にどの論理アドレスにマッピングされているか、すなわち論理アドレスと物理アドレスの対応付け管理を上位制御部で行う構成をとったものである。
【００１１】
一方、上位制御部では、論理アドレスと物理アドレスの対応付け管理を行わず、論理アドレスをフラッシュドライブへ転送し、各フラッシュドライブに、該論理アドレスに対応するデータを格納しているか判断させ、結果を返答させるとともに、該データを出力させる構成をとったものである。
【００１２】
ＲＡＩＤ等複数のフラッシュドライブをまとめてデータの信頼性を向上させるシステムでは、ＲＡＩＤグループを構成するフラッシュドライブ全てに、論理アドレスを問い合わせる構成をとったものである。ＲＡＩＤグループ毎に、担当する論理アドレスの範囲を設定しておき、異なるＲＡＩＤグループへは、それぞれに担当範囲の論理アドレスを平行して問い合わせられる構成をとったものである。
【００１３】
データを書き込む際は、上位制御部からの書き込み要求に対応可能か否か情報を上位制御部へ回答し、上位制御部は書き込み要求に応えられるフラッシュドライブの中からＲＡＩＤパリティグループを構成し、データを書き込む構成をとったものである。
【００１４】
パリティグループを構成するフラッシュドライブが、論理アドレス毎に異なるので、各フラッシュドライブは、上位制御部から指示されたデータ順序およびパリティのデータ種別情報も論理アドレス単位に記憶しておく構成をとったものである。
【００１５】
フラッシュドライブは、書き込み要求に応えられない場合で、上位制御部から書き込み要求があり、該論理アドレスに対応するデータを格納していた場合、格納しているデータの無効性を示す情報を保持する構成をとったものである。
【００１６】
フラッシュドライブは、消去単位の消去回数の最大値を、上位制御部へ報告し、上位制御部は消去回数が予め定めた回数に達したら、そのフラッシュドライブが含まれるＲＡＩＤグループにフラッシュドライブを追加する要求を運用管理者へ出す構成にしたものである。
【００１７】
一方、最大の消去回数が予め定めた回数に達したフラッシュドライブに、フラッシュメモリが搭載されたプリント基板構造のフラッシュモジュールを、該フラッシュドライブに追加し、フラッシュドライブの代替領域を追加可能な構成にしたものである。
【００１８】
フラッシュドライブ間で代替領域を融通しあう構成をとるため、最初は最低限のフラッシュドライブの台数で運用を開始し、消去回数が予め定めた回数に達したら、新たなフラッシュドライブを追加し、もともとあるフラッシュドライブの寿命が尽きた消去単位の代替を行う。徐々に代替が追加されたフラッシュドライブへ移り、もともとあるフラッシュドライブが格納しているデータのうち有効なデータが減ってくる。予め定められた閾値を超えたら、該フラッシュドライブの有効データを、追加したドライブへ転送し、該フラッシュドライブを取り外す構成をとったものである。または、あらかじめ定められた閾値を越えた時点で、該フラッシュドライブを取り外し、ＲＡＩＤの冗長性より、取り外したフラッシュドライブ分を追加したドライブ上に復元する構成をとったものである。
【００１９】
また、一つのＲＡＩＤグループ内に、ＲＡＩＤを構成するフラッシュドライブの最低台数の２倍の台数まで、フラッシュドライブを接続可能な構成にしたものである。
【発明の効果】
【００２０】
本発明により、フラッシュメモリを用いた記憶装置において、フラッシュメモリチップ内に寿命が尽きるなど一部分に障害が生じても、障害が生じた分のフラッシュメモリを、フラッシュドライブや、フラッシュドライブ内のフラッシュモジュールで追加することで、記憶装置全体の容量を維持することが可能になる。
【発明を実施するための最良の形態】
【００２１】
本発明を実施するための最良の形態を説明する。
本発明の記憶装置及び記憶方法の実施例について、図面を用いて説明する。
【実施例１】
【００２２】
本発明の第一の実施例を、図１から図６および図８，９，１１を用いて説明する。図１は、本実施例の記憶装置１０１の構成を示している。記憶装置１０１は、複数のフラッシュドライブ１０４と、記憶装置１０１内部にある複数のフラッシュドライブ１０４を制御する、ＲＡＩＤコントローラ１０３で構成されている。また、記憶装置１０１は、ＲＡＩＤコントローラ１０３を介して、ホストシステム１０２へ接続されている。
【００２３】
フラッシュドライブ１０４は、複数個のフラッシュメモリ素子１０７とフラッシュメモリコントローラ１０８を搭載したプリント基板であるフラッシュモジュール１０５を複数枚内蔵し、フラッシュドライブコントローラ１０６が、フラッシュモジュール１０５と上位制御部であるＲＡＩＤコントローラ１０４とのやり取りを仲介する。
【００２４】
信頼性を重視する記憶装置１０１では、フラッシュドライブ１０４を複数個備え、たとえば４個ずつでＲＡＩＤグループ２０１を構成する。ＲＡＩＤコントローラ１０３は、ＲＡＩＤグループ単位２０１に、論理アドレスを割り当てる。フラッシュドライブ１０４の中には、複数のフラッシュモジュール１０５が存在し、各フラッシュモジュールには、多数のフラッシュメモリ素子１０７が存在する。図２において、フラッシュメモリ素子２０２内部には、ブロックと呼ばれる消去単位２０３、ページと呼ばれる書き込み単位２０４が存在する。書き込み単位２０４はＨＤＤでいうセクタに相当するが、複数セクタで書き込み単位２０４を構成してもよい。
【００２５】
フラッシュドライブ４台でＲＡＩＤ５を構成する場合を例にとると、ＲＡＩＤコントローラ１０３は、フラッシュドライブ１０４を４個ずつでＲＡＩＤグループ２０１を構成し、複数のＲＡＩＤグループを管理する。ＲＡＩＤグループの容量に合わせて、各ＲＡＩＤグループに論理アドレスを割り当てる。この論理アドレスは、上位のホストシステム１０２与えられる論理アドレスと対応する。
【００２６】
また、ＲＡＩＤグループ２０１内では、各フラッシュドライブ１０４から論理アドレスに対応するフラッシュメモリチップ２０２のある消去単位２０３のある書き込み単位２０４を選択し、４個の書き込み単位でパリティグループ２０５を構成する。ＲＡＩＤコントローラは、パリティグループ２０５単位でデータの読み書きを行う。
【００２７】
図３において、あるパリティグループ内のひとつの書き込み単位３０１ｂが更新される場合を例にとると、更新された書き込み単位のデータと、ＲＡＩＤのパリティデータを格納している書き込み単位３０１ｅのデータが新しく更新される。これはフラッシュメモリには書き換え回数の制限があるため、必要な箇所のみ書き換えを行い、書き換え回数を削減するのに有効であるためである。
【００２８】
フラッシュメモリを用いた記憶媒体の場合、消去に時間がかかるため、更新された新たなデータは、消去済みの他の消去単位の書き込み単位３０２へ書き込まれ、ＲＡＩＤのパリティデータは、消去済みの他の消去単位の書き込み単位３０３へ書き込まれ、新たなパリティグループ３０４を構成することになる。
【００２９】
図４のように、外部記憶装置全体を見ると、各データは論理アドレスで管理されており、ＲＡＩＤコントローラやフラッシュドライブコントローラで論理アドレスが具体的なドライブのアドレス、フラッシュメモリチップのアドレス、チップ内の消去単位アドレス、書き込み単位アドレスへと変換されてゆく。
【００３０】
図５において、フラッシュメモリには消去／書き換え回数に制限があるため、フラッシュメモリに多数の有効なデータが存在すると、書き込み可能な消去済みの消去単位が少なくなり、最終的にはなくなってしまう。このような状態になると、読み出しには対応可能であるが、書き込みには応じることが難しくなる。
【００３１】
そこで、図６のようにＲＡＩＤグループを構成しているフラッシュドライブ１０４ｂ、ｃ、ｄ、ｅにもう一台のフラッシュドライブ６０１を追加し、書き込み対応できなくなったフラッシュドライブの代替を行わせる。代替といっても書き込みのみであり、更新されていないデータ読み出しには元から存在するフラッシュドライブを利用する。たとえば、パリティグループ６０２では、フラッシュドライブ１０４ｅへの書き込みに対応できなくなり、フラッシュドライブ１０４ｅへのデータをフラッシュドライブ６０１に書き込む。パリティグループ６０３では、フラッシュドライブ１０４ｄへの書き込みに対応できなくなり、フラッシュドライブ１０４ｄへのデータをフラッシュドライブ６０１に書き込む。といった動作を行う。
【００３２】
このような動作が可能になると、運用開始当初はフラッシュドライブ４台で運用し、フラッシュドライブに書き込み対応不能なフラッシュドライブが出てくる前に、新たなフラッシュドライブをＲＡＩＤグループに追加するだけで、書き込み対応不能なフラッシュドライブへの書き込みを代替し、外部記憶装置の容量を維持し、外部記憶装置全体の寿命を延ばせる効果がある。
【００３３】
図９のように、フラッシュドライブ１０４とＲＡＩＤコントローラ１０３は、論理アドレス９０２、データ所有信号９０７、書き込み可能信号９０１、書き込み要求９０４、無効化要求９０５、データ入力９０６、読み出しデータのパリティグループ内データ識別行うＲＡＩＤ位置９０８、書き込み時のパリティグループ内データ識別行うＲＡＩＤ位置９０３、状態情報９１０でインターフェースされる。状態情報９１０には、消去単位の最大消去回数、有効データの割合等のフラッシュメモリの使用状況の情報を含む。これらの信号および情報はそれぞれ独立した信号として接続される場合もあれば、ある通信インターフェースを介してやり取りされるコマンドとレスポンスの形態を取っても良い。
【００３４】
また、ＲＡＩＤコントローラ１０３には、図８のようにＲＡＩＤグループ内に接続可能なドライブの中から任意の４個を選択し、データの並び替えを行うスイッチ機構８０２を設ける。
【００３５】
図４のように、従来は、ＲＡＩＤコントローラがデータを書き込む場合、ホストシステム１０２から送られてきた論理アドレス４０１を、ＲＡＩＤコントローラ１０３において、論理アドレス４０１をドライブアドレス４０３とドライブ内論理アドレス４０４へ変換する。ホストシステム１０２から送られてきたデータ４０２を、書き込み単位４０７  ３個とパリティデータ４０８の計４個のデータに加工する。これら４つのデータを原則おのおの異なるフラッシュドライブに格納する。
【００３６】
従来は、論理アドレス４０１を用いて、ドライブアドレス４０３とドライブ内論理アドレス４０４を計算して求めることが出来た。しかし、本発明では、フラッシュメモリの消去限界回数に達した消去単位を持つようになったフラッシュドライブは、他のフラッシュドライブに書き込みを代替する場合があるので、論理アドレスに対応する書き込み単位が、どのフラッシュドライブに存在するのかを管理しなければならなくなる。上位のＲＡＩＤコントローラで管理することも考えられるが、書き込み単位毎にどのフラッシュドライブに存在するか管理する必要が生じて大規模な変換テーブルが必要になる。
【００３７】
そこで、ＲＡＩＤコントローラは、ホストシステムからの論理アドレスの上位を判断し、どのＲＡＩＤグループに属するデータかを調べる。残りの論理アドレスがＲＡＩＤグループ内の論理アドレスとなり、これを、ＲＡＩＤグループ内の全てのフラッシュドライブに送信する。
【００３８】
各フラッシュドライブは、受け取った論理アドレスに対応するデータを自分が所有しているかを判断し、所有しているか否かを所有信号９０７で回答するとともに、所有している場合、対応するデータを読み出しデータ９０９として出力し、またそのデータがパリティグループの３個のデータと１個のパリティのどのデータかをＲＡＩＤ位置９０８で出力する。
【００３９】
ＲＡＩＤコントローラは、ＲＡＩＤグループ内の複数のフラッシュドライブから所有信号を出力している４個のフラッシュドライブを選択し、おのおののＲＡＩＤ位置を確認後、データを並べ直しデータを復元する。
【００４０】
所有信号が３個のフラッシュドライブからしか得られなかった場合、ＲＡＩＤの機能を用いて４個目を復元し、データを復元する。
【００４１】
所有信号が２個以下のフラッシュドライブからしか得られなかった場合、データの復元が不可能であり、エラーとして対処する。
【００４２】
所有信号が５個以上のフラッシュドライブから得られた場合、同じ論理アドレスの古いデータと新しいデータが含まれているので、時間や世代情報なども管理している場合にはそれらのデータを用いて、最新のデータを取り出し、データを復元する。時間や世代情報がない場合は、エラーとして対処する。
【００４３】
ＲＡＩＤコントローラは、データを書き込む場合、ＲＡＩＤグループ内の複数のフラッシュドライブより、書き込み対応可能なフラッシュドライブ４台を選択し、論理アドレス９０２とＲＡＩＤ位置情報９０３とデータ９０６を転送し、書き込み要求信号９０４を用いて書き込む。また、選択しなかったフラッシュドライブには、論理アドレス９０２と無効化信号９０５を転送する。フラッシュドライブは、論理アドレス９０２と無効化信号９０５を受け取った場合で、論理アドレス９０２に対応するデータを所有していた場合には、そのデータを無効化する。論理アドレス９０２に対応するデータを所有していない場合は、論理アドレス９０２や無効化信号９０５は無視する。
【００４４】
図１１において、フラッシュドライブコントローラ１０６には、与えられた論理アドレスから実際のフラッシュメモリチップ内の書き込み単位のアドレス（物理アドレス）へ変換するテーブル１１０１と、物理アドレスから論理アドレスへ変換する変換テーブル１１０２を持つ。
【００４５】
論理アドレスを物理アドレスへ変換するテーブルには、論理アドレスに対応するＲＡＩＤ位置情報１１０３と物理アドレス１１０４が格納される。この変換テーブルは、フラッシュドライブが備える書き込み単位容量分のエントリーを備える。
【００４６】
データ書き込み時の動作を説明する。フラッシュドライブコントローラ１０６は、物理アドレス論理アドレス変換テーブルの書き込み単位情報格納部１１０５に空きがあれば、書き込み可能信号９０１を出力する。ＲＡＩＤコントローラ１０３が、このフラッシュドライブを選択すると、論理アドレス９０２、ＲＡＩＤ位置情報９０３、書き込み信号９０４、書き込みデータ９０６を入力してくる。フラッシュドライブコントローラ１０６は、入力された論理アドレスをエントリーとして、論理アドレス物理アドレス変換テーブル１１０１をアクセスし、入力されたＲＡＩＤ位置１１０３を登録するとともに、物理アドレス論理アドレス変換テーブル１１０２から空きの書き込み単位を探し、その物理アドレス１１０４を登録する。また、物理アドレス論理アドレス変換テーブル１１０２のデータの有効／無効／空きを示す書き込み単位情報格納部１１０５を有効にし、論理アドレスを論理アドレス格納部１１０６へ書き込み、物理アドレスに対応するフラッシュメモリ１１０８の書き込み単位１１０９へデータを書き込む。
【００４７】
データ読み出し時の動作を説明する。ＲＡＩＤコントローラ１０３は、読み出し時論理アドレス９０２を入力してくる。フラッシュドライブコントローラ１０６は、入力された論理アドレスをエントリーにして、論理アドレス物理アドレス変換テーブル１１０１をアクセスし、有効な物理アドレス１１０４が登録されているかを確認する。登録されていれば、物理アドレス論理アドレス変換テーブル１１０２をアクセスし、データの有効／無効／空きを示す書き込み単位情報格納部１１０５を確認し、有効であれば、データ所有信号９０７と、ＲＡＩＤ位置情報９０８、物理アドレスに対応するフラッシュメモリ１１０８の書き込み単位１１０９のデータ９１０を出力する。
【００４８】
データ書き込み時に、書き込み信号９０４の代わりに無効化信号９０５が入力されると、入力された論理アドレスから物理アドレスを求め、対応する物理アドレス論理アドレス変換テーブル１１０２の有効／無効／空きを示す書き込み単位情報格納部１１０５を無効にする。
【００４９】
物理アドレス論理アドレス変換テーブル１１０２では、複数の書き込み単位をまとめた、消去単位毎に、消去回数の情報１１０７を管理し、物理アドレス論理アドレス変換テーブル１１０２内の最大値を調べ、状況情報９１０として出力する。
【００５０】
図にはフラッシュメモリ１１０８が記載されているが、フラッシュドライブコントローラ１０６内に存在するわけではなく、物理アドレス論理アドレス変換テーブルとの対応や、データの流れを模式的に示すため記述したものである。また、物理アドレス論理アドレス変換テーブル自体も、フラッシュドライブコントローラに存在しても良いし、フラッシュメモリの一部の領域を用いて実現しても良い。論理アドレス物理アドレス変換テーブルもフラッシュドライブコントローラに存在しても良いし、フラッシュメモリの一部の領域を用いて実現しても良い。
【００５１】
ＲＡＩＤコントローラは、パリティグループを構成するデータの一部を、更新や上書きする場合は、一旦そのパリティグループのデータを読み出し、部分的に更新や上書きを行い、パリティデータを生成してから、フラッシュドライブに書き戻す。
【００５２】
パリティグループを構成するデータ全てを上書きする場合、ＲＡＩＤグループに存在するフラッシュドライブの中から、書き込み要求にこたえられるフラッシュドライブから４台を選択し、その４台に書き込み要求を与えるとともに、ＲＡＩＤグループ内のその他のフラッシュドライブには、無効化要求を与える。
【００５３】
フラッシュドライブは、同じ論理アドレスへの書き込み要求がきた場合、論理アドレス物理アドレス変換テーブル１１０１の物理アドレスには、空き状態の書き込み単位の物理アドレスを登録し、物理アドレス論理アドレス変換テーブル１１０２の以前の物理アドレスの書き込み単位情報格納部１１０５を無効にする。
【００５４】
フラッシュドライブは、定期的または空きの書き込み単位が定められた値を下回ると、物理アドレス論理アドレス変換テーブルを調査し、消去単位の中の無効状態にある書き込み単位の割合が多い消去単位を探し出す。ある定められた割合よりも無効状態が多いと、この消去単位の有効状態のデータを空き状態の書き込み単位へ順番に転送し、元の消去単位内の書き込み単位の状態を全て無効にし、その消去単位を消去する。このとき、転送された書き込み単位の論理アドレスを確認し、論理アドレス物理アドレス変換テーブルを更新する。
【００５５】
ＲＡＩＤコントローラが、ＲＡＩＤグループ内から４個のフラッシュフラッシュドライブを選ぶ方法は任意であるが、優先順位をつけてもよい。最小単位１個のデータを書き込む場合、対応するパリティグループの、対応するデータ部分とパリティの２箇所更新し、２箇所を対応するフラッシュドライブへ書き込む。そのため、パリティグループを構成するフラッシュメモリの消去単位のデバイスの書き換え回数には、ばらつきが出てくる。
【００５６】
ストレージシステムの運用を続けてゆくと、フラッシュドライブ内のフラッシュメモリの消去単位毎に、消去不能、書き込み不能といった障害を起こす。ある程度は、フラッシュモジュールやフラッシュドライブ内で、代替領域を用意して、障害に対応するが、さらに運用を続けてゆくと、フラッシュドライブが書き込み要求を受付けられない状況が出てくる。この様子は、最大消去回数の情報から予測可能であり、最大消去回数が予め定められた値を超えると、ＲＡＩＤグループに新たなフラッシュドライブを追加する方法を取っても良い。
【００５７】
フラッシュドライブを追加する単位は、１台単位で追加可能であるが、ＲＡＩＤグループを構成しているフラッシュドライブ２台で書き込み要求に対応できなくなると、パリティグループを構成している４個の書き込み単位のうち、２個が１台のフラッシュドライブに書き込まれることになり、パリティグループのデータを一度に読み出すことが困難になり、正常なＲＡＩＤシステムとしての性能が出なくなる。よって、ＲＡＩＤグループ内のフラッシュドライブの最大消去回数を監視し、予め定められた値と比較しながら、追加するフラッシュドライブの台数を決定する方法を取っても良い。
【００５８】
また、ある消去単に注目すると、消去単位の内の書き込み単位が更新され、その消去単位に存在する有効データの割合が小さくなってゆく。書き込み単位にライトが起きる度に、有効データの割合も監視し、予め定められた値より小さくなったら、その消去単位内の有効データを、書き込み要求にこたえられるフラッシュドライブへ移動する。このとき、同じパリティグループを構成するデータが、同じフラッシュドライブに割り当てられないようにする。このように、完全にフラッシュドライブが寿命を迎えるまでに、保持している有効データを他のフラッシュドライブに移動し、有効データを全て移動し終えたフラッシュドライブは、ＲＡＩＤグループより外すことができる。
【実施例２】
【００５９】
同様にフラッシュドライブ内のフラッシュモジュールにおいても同様なことが行える。つまり、フラッシュメモリ素子内に、消去不可能な消去単位が増え、書き込み対応不能になる前に、フラッシュモジュールを追加し、書き込み対応不能なフラッシュメモリの代替を行わせる。
【００６０】
本発明の第二の実施例を図７，１０，１２を用いて説明する。第一の実施例では、フラッシュメモリの追加単位が、フラッシュドライブであったが、本実施例では、フラッシュドライブ内の、フラッシュメモリモジュール単位で追加するものである。
【００６１】
フラッシュモジュールは、プリント基板に、フラッシュメモリ素子を複数と、フラッシュメモリモジュール内の論理アドレスとフラッシュメモリの物理アドレスを変換するコントローラとを搭載した構造を持つ。
【００６２】
フラッシュドライブには、複数のフラッシュモジュールを制御する、フラッシュドライブコントローラが存在する。
【００６３】
第一の実施例では、ＲＡＩＤコントローラが、同時に４台のフラッシュドライブをアクセスし、パリティグループのデータを取り出すため、パリティグループ内の位置情報が必要になり、ＲＡＩＤ位置情報が存在していたが、フラッシュドライブ内のフラッシュモジュールでは、書き込み単位のデータを所有しているか否かを確認するだけでよいので、論理アドレス物理アドレス変換テーブルは簡単になる。
【００６４】
図７において、フラッシュドライブ１０４内に複数のフラッシュモジュール１０５が存在し、フラッシュモジュール１０５内に、複数のフラッシュメモリ２０２が存在する。フラッシュメモリ２０２を使い続けると、消去単位２０３および書き込み単位２０４で消去が出来なくなるとか、書き込みが出来なくなるといった、障害が発生する。フラッシュメモリ２０２内に有効データが多数存在し、代替領域等が消去できなくなると、そのフラッシュメモリには、データが書き込めなくなる。このとき、新たなフラッシュモジュール１０５ｅを追加し、例えは、書き込み要求に対応できなくなった、フラッシュモジュール１０５ｂ、１０５ｄの対応する書き込み単位のデータを新たなフラッシュモジュール１０５ｅへ書き込むことで、フラッシュドライブ１０４の機能を維持することが可能になる。
【００６５】
図１０のように、フラッシュモジュールのフラッシュコントローラ１０８とフラッシュドライブコントローラ１０６は、論理アドレス１００２、データ所有信号１００６、書き込み可能信号１００１、書き込み要求１００４、無効化要求１００３、データ入力１００５、データ出力１００７状態情報１００８でインターフェースされる。状態情報１０１０には、消去単位の最大消去回数、有効データの割合等のフラッシュメモリの使用状況の情報を含む。これらの信号および情報はそれぞれ独立した信号として接続される場合もあれば、ある通信インターフェースを介してやり取りされるコマンドとレスポンスの形態を取っても良い。
【００６６】
図１２において、フラッシュメモリコントローラ１０８には、与えられた論理アドレスから実際のフラッシュメモリチップ内の書き込み単位のアドレス（物理アドレス）へ変換するテーブル１２０１と、物理アドレスをから論理アドレスへ変換する変換テーブル１２０２を持つ。
【００６７】
論理アドレスを物理アドレスへ変換するテーブル１２０１には、論理アドレスに対応する物理アドレス１２０３が格納される。この変換テーブルは、フラッシュモジュールが備える書き込み単位容量分のエントリーを備える。
【００６８】
データ書き込み時の動作を説明する。フラッシュメモリコントローラ１０８は、物理アドレス論理アドレス変換テーブルの書き込み単位情報格納部１２０４に空きがあれば、書き込み可能信号１００１を出力する。フラッシュドライブコントローラ１０６が、このフラッシュモジュールを選択すると、論理アドレス１００２、書き込み信号１００４、書き込みデータ１００５を入力してくる。フラッシュメモリコントローラ１０８は、入力された論理アドレスをエントリーとして、論理アドレス物理アドレス変換テーブル１２０１をアクセスし、物理アドレス論理アドレス変換テーブル１２０２から空きの書き込み単位を探し、その物理アドレス１２０３を登録する。また、物理アドレス論理アドレス変換テーブル１２０２のデータの有効／無効／空きを示す書き込み単位情報格納部１２０４を有効にし、論理アドレスを論理アドレス格納部１２０５へ書き込み、物理アドレスに対応するフラッシュメモリ１２０７の書き込み単位１２０８へデータを書き込む。
【００６９】
データ読み出し時の動作を説明する。フラッシュドライブコントローラ１０３は、読み出し時論理アドレス１００２を入力してくる。フラッシュメモリコントローラ１０８は、入力された論理アドレスをエントリーにして、論理アドレス物理アドレス変換テーブル１２０１をアクセスし、有効な物理アドレス１２０３が登録されているかを確認する。登録されていれば、物理アドレス論理アドレス変換テーブル１２０２をアクセスし、データの有効／無効／空きを示す書き込み単位情報格納部１２０４を確認し、有効であれば、データ所有信号１００６と、物理アドレスに対応するフラッシュメモリ１２０７の書き込み単位１２０８のデータ１００７を出力する。
【００７０】
データ書き込み時に、書き込み信号１００４の代わりに無効化信号１００３が入力されると、入力された論理アドレスから物理アドレスを求め、対応する物理アドレス論理アドレス変換テーブル１２０２の有効／無効／空きを示す書き込み単位情報格納部１２０４を無効にする。
【００７１】
物理アドレス論理アドレス変換テーブル１２０２では、複数の書き込み単位をまとめた、消去単位毎に、消去回数の情報１２０６を管理し、物理アドレス論理アドレス変換テーブル１２０２内の最大値を調べ、状況情報１００８として出力する。
【００７２】
図にはフラッシュメモリ１２０７が記載されているが、フラッシュメモリコントローラ１０８内に存在するわけではなく、物理アドレス論理アドレス変換テーブルとの対応や、データの流れを模式的に示すため記述したものである。また、物理アドレス論理アドレス変換テーブル自体も、フラッシュメモリコントローラに存在しても良いし、フラッシュメモリの一部の領域を用いて実現しても良い。論理アドレス物理アドレス変換テーブルもフラッシュメモリコントローラに存在しても良いし、フラッシュメモリの一部の領域を用いて実現しても良い。
【００７３】
フラッシュドライブコントローラは、フラッシュドライブに存在するフラッシュモジュールの中から、書き込み要求にこたえられるフラッシュモジュールから１台を選択し、その１台に書き込み要求を与えるとともに、フラッシュドライブ内のその他のフラッシュモジュールには、無効化要求を与える。
【００７４】
フラッシュモジュールは、同じ論理アドレスへの書き込み要求がきた場合、論理アドレス物理アドレス変換テーブル１２０１の物理アドレスには、空き状態の書き込み単位の物理アドレスを登録し、物理アドレス論理アドレス変換テーブル１２０２の以前の物理アドレスの書き込み単位情報格納部１２０４を無効にする。
【００７５】
フラッシュモジュールは、定期的または空きの書き込み単位が定められた値を下回ると、物理アドレス論理アドレス変換テーブルを調査し、消去単位の中の無効状態にある書き込み単位の割合が多い消去単位を探し出す。ある定められた割合よりも無効状態が多いと、この消去単位の有効状態のデータを空き状態の書き込み単位へ順番に転送し、元の消去単位内の書き込み単位の状態を全て無効にし、その消去単位を消去する。このとき、転送された書き込み単位の論理アドレスを確認し、論理アドレス物理アドレス変換テーブルを更新する。
【００７６】
フラッシュドライブコントローラが、フラッシュドライブ内から１個のフラッシュフラッモジュールを選ぶ方法は任意であるが、優先順位をつけてもよい。
【００７７】
以上実施例で説明したように、本発明により、フラッシュメモリの特徴である、消去単位毎の障害に対して、フラッシュメモリを追加することにより、運用当初の容量を維持可能なストレージシステムを構築できる。フラッシュメモリのモジュールやドライブといった、機能モジュールの追加により最小のコストでストレージシステムの保守管理が可能になる。
【００７８】
本発明の他の実施形態１は、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子を複数個有するメモリ素子ユニットを２以上搭載した記憶装置において、一のメモリ素子ユニットの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリ素子ユニットの半導体メモリ素子の機能容量単位に代替させ、装置全体の所定の容量を維持する記憶装置である。
【００７９】
本発明の他の実施形態２は、前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個と、該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラとで構成されるメモリモジュールであり、一のメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリモジュールの半導体メモリ素子の機能容量単位に代替させる実施形態１の記憶装置である。
【００８０】
本発明の他の実施形態３は、前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個、及び該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラで構成されるメモリモジュールの複数個と、該メモリモジュールの半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するドライブコントローラとで構成されるドライブであり、一のドライブのメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のドライブのメモリモジュールの半導体メモリ素子の機能容量単位に代替させる実施形態１の記憶装置である。
【００８１】
本発明の他の実施形態４は、前記メモリ素子ユニットの半導体メモリ素子に対して論理アドレスを与え、該メモリ素子ユニットの半導体メモリ素子が該論理アドレスに対応するデータを格納しているか否かを、該メモリ素子ユニットのメモリコントコーラ又はドライブコントローラが判断し、該判断の結果を元に、データを読み出すメモリ素子ユニットの半導体メモリ素子が選択される実施形態２又は３の記憶装置である。
【００８２】
本発明の他の実施形態５は、複数のメモリ素子ユニットの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、メモリ素子ユニットのメモリコントコーラ又はドライブコントローラが書き込み要求を受け付けられるか否かの情報を回答し、該回答を元に、書き込みに対応可能なメモリ素子ユニットの半導体メモリ素子が選択される実施形態２又は３の記憶装置である。
【００８３】
本発明の他の実施形態６は、複数のメモリ素子ユニットの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、前記メモリコントローラ又はドライブコントローラは、冗長構成をとる際に、データの順序およびパリティ等データの種類やデータ並びの付随情報も同時に書き込み、読み出した際に、該付随情報を元に正しいデータを復元する実施形態２又は３の記憶装置である。
【００８４】
本発明の他の実施形態７は、前記メモリコントローラ又はドライブコントローラは、半導体メモリ素子の機能容量単位毎に、論理アドレスとの対応関係の情報を保持し、半導体メモリ素子が追加された際に、追加された半導体メモリ素子の追加された分の論理アドレスとの対応関係の情報を作成する実施形態２又は３の記憶装置である。
【００８５】
本発明の他の実施形態８は、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子を複数個有するメモリ素子ユニットを２以上搭載した記憶装置を使用した記憶方法であって、一のメモリ素子ユニットの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリ素子ユニットの半導体メモリ素子の機能容量単位に代替させて記憶することを有し、前記記憶装置全体の所定の容量を維持する記憶方法である。
【００８６】
本発明の他の実施形態９は、前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個と、該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラとで構成されるメモリモジュールであり、一のメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリモジュールの半導体メモリ素子の機能容量単位に代替させて記憶することを有する実施形態８の記憶方法である。
【００８７】
本発明の他の実施形態１０は、前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個と、該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラとで構成されるメモリモジュールであり、一のメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のメモリモジュールの半導体メモリ素子の機能容量単位に代替させて記憶することを有する実施形態８の記憶方法である。
【００８８】
本発明の他の実施形態１１は、前記メモリ素子ユニットの半導体メモリ素子に対して論理アドレスを与えることと、該メモリ素子ユニットの半導体メモリ素子が該論理アドレスに対応するデータを格納しているか否かを判断することと、該判断の結果を元に、データを読み出すメモリ素子ユニットの半導体メモリ素子を選択することとを有する実施形態８の記憶方法である。
【００８９】
本発明の他の実施形態１２は、複数の半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、メモリ素子ユニットが書き込み要求を受け付けられるか否かの情報を回答することと、該回答を元に、書き込みに対応可能なメモリ素子ユニットの半導体メモリ素子を選択することを有する実施形態８の記憶方法である。
【００９０】
本発明の他の実施形態１３は、複数のメモリ素子ユニットの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、冗長構成をとる際に、データの順序およびパリティ等データの種類やデータ並びの付随情報も同時に書き込むことと、読み出した際に、該付随情報を元に正しいデータを復元することとを有する実施形態８の記憶方法である。
【００９１】
本発明の他の実施形態１４は、前記半導体メモリ素子の機能容量単位毎に、論理アドレスとの対応関係の情報を保持することと、半導体メモリ素子が追加された際に、追加された半導体メモリ素子の追加された分の論理アドレスとの対応関係の情報を作成することとを有する実施形態８の記憶方法である。
【図面の簡単な説明】
【００９２】
【図１】実施例の記憶装置のシステム構成の説明図。
【図２】ＲＡＩＤ構成の説明図。
【図３】パリティグループデータ更新の説明図。
【図４】フラッシュメモリの物理アドレス管理の説明図。
【図５】フラッシュメモリの障害の説明図。
【図６】フラッシュドライブ間のセクタ代替の説明図。
【図７】フラッシュモジュール間のセクタ代替の説明図。
【図８】フラッシュドライブデータインタフェースの説明図。
【図９】フラッシュドライブインタフェースの説明図。
【図１０】フラッシュモジュールインタフェースの説明図。
【図１１】所有データ論理アドレス検索（１）の説明図。
【図１２】所有データ論理アドレス検索（２）の説明図。
【符号の説明】
【００９３】
１０１  記憶装置
１０２  ホストシステム
１０３  ＲＡＩＤコントローラ
１０４  フラッシュドライブ
１０５  フラッシュモジュール
１０６  フラッシュドライブコントローラ
１０７  フラッシュメモリ
１０８  フラッシュメモリコントローラ
１０９  ブロック
【図１】
2008102819.tif 000003
【図２】
2008102819.tif 000004
【図３】
2008102819.tif 000005
【図４】
2008102819.tif 000006
【図５】
2008102819.tif 000007
【図６】
2008102819.tif 000008
【図７】
2008102819.tif 000009
【図８】
2008102819.tif 000010
【図９】
2008102819.tif 000011
【図１０】
2008102819.tif 000012
【図１１】
2008102819.tif 000013
【図１２】
2008102819.tif 000014
【手続補正書】
【提出日】平成19年1月18日(2007.1.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個、及び該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラで構成されるメモリモジュールの複数個と、該メモリモジュールの半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するドライブコントローラとで構成されるドライブであり、一のドライブのメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のドライブのメモリモジュールの半導体メモリ素子の機能容量単位に代替させる請求項８記載の記憶方法。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１３
【補正方法】変更
【補正の内容】
【請求項１３】
複数のメモリ素子ユニットの半導体メモリ素子から一個ずつ書き込み単位を選択し、複数の書き込み単位で冗長構成をとっており、冗長構成をとる際に、データの順序およびパリティ等データの種類やデータ並びの付随情報も同時に書き込むことと、読み出した際に、該付随情報を元に正しいデータを復元することを有する請求項８記載の記憶方法。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
消去単位容量毎に寿命のある不揮発性半導体メモリの寿命を延ばす方法としては、各消去単位毎の消去回数をチップ全体にわたって均等にする方法や、代替領域を設けて寿命の尽きた消去単位部分を肩代わりし、一部分の消去単位が利用できなくなっても、メモリ装置としては問題なく動作させ続ける方法が存在する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
このため、フレッシュメモリの一部に障害が起きた場合、障害が起きた箇所を他の部分に肩代わりさせるが、どの部分に障害が起きて、他のどの部分に肩代わりさせたかを管理する必要が生じる。よって、フラッシュメモリの各消去単位がどの論理アドレスを担当しているか、ある論理アドレスが指示されたとき対応するデータがどこのフラッシュメモリに存在するのか、消去単位毎に論理アドレスと物理アドレスの管理を行う必要が生ずる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５８
【補正方法】変更
【補正の内容】
【００５８】
また、ある消去単位に注目すると、消去単位の内の書き込み単位が更新され、その消去単位に存在する有効データの割合が小さくなってゆく。書き込み単位にライトが起きる度に、有効データの割合も監視し、予め定められた値より小さくなったら、その消去単位内の有効データを、書き込み要求にこたえられるフラッシュドライブへ移動する。このとき、同じパリティグループを構成するデータが、同じフラッシュドライブに割り当てられないようにする。このように、完全にフラッシュドライブが寿命を迎えるまでに、保持している有効データを他のフラッシュドライブに移動し、有効データを全て移動し終えたフラッシュドライブは、ＲＡＩＤグループより外すことができる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
図７において、フラッシュドライブ１０４内に複数のフラッシュモジュール１０５が存在し、フラッシュモジュール１０５内に、複数のフラッシュメモリ２０２が存在する。フラッシュメモリ２０２を使い続けると、消去単位２０３および書き込み単位２０４で消去が出来なくなるとか、書き込みが出来なくなるといった、障害が発生する。フラッシュメモリ２０２内に有効データが多数存在し、代替領域等が消去できなくなると、そのフラッシュメモリには、データが書き込めなくなる。このとき、新たなフラッシュモジュール１０５ｅを追加し、例えば、書き込み要求に対応できなくなった、フラッシュモジュール１０５ｂ、１０５ｄの対応する書き込み単位のデータを新たなフラッシュモジュール１０５ｅへ書き込むことで、フラッシュドライブ１０４の機能を維持することが可能になる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００７６
【補正方法】変更
【補正の内容】
【００７６】
フラッシュドライブコントローラが、フラッシュドライブ内から１個のフラッシュモジュールを選ぶ方法は任意であるが、優先順位をつけてもよい。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
本発明の他の実施形態１０は、前記メモリ素子ユニットが、半導体メモリ素子全体容量よりも小さい機能容量単位を備え、かつ、機能容量単位毎に書き込み寿命を持つ半導体メモリ素子の複数個、及び該半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するメモリコントローラで構成されるメモリモジュールの複数個と、該メモリモジュールの半導体メモリ素子をアクセスするための物理アドレス情報と論理アドレス情報を変換する機能を有するドライブコントローラとで構成されるドライブであり、一のドライブのメモリモジュールの半導体メモリ素子のうちの、書き込み寿命が尽きて書き込み不可能と判断される機能容量単位のみを他のドライブのメモリモジュールの半導体メモリ素子の機能容量単位に代替させる実施形態８の記憶方法である。