(57)【特許請求の範囲】
【請求項１】
主記憶装置の補助を行い、記憶領域が所定の記憶ブロック長の記憶ブロックに分割され、データ領域および該データ領域のデータ管理を行うための管理情報を納めた管理領域からなる補助記憶装置と、該補助記憶装置の制御を行う制御装置からなる記憶装置において、
補助記憶装置は、
前記所定の記憶ブロック長ごとに分割された前記管理領域のそれぞれの位置情報を含むエントリ領域を備え、
前記管理領域は、前記所定の記憶ブロック長ごとに不連続に配置可能であり、
前記エントリ領域は、さらに、前記所定の記憶ブロック長ごとに分割され、分割されたそれぞれのエントリ領域ごとに、該エントリ領域の番号を示すエントリ番号を含み、前記所定の記憶ブロック長ごとに別々に再配置可能である
ことを特徴とする記憶装置。
【請求項２】
前記制御装置は、
前記補助記憶装置内の管理領域から管理情報を転送する管理領域転送手段を備え、
前記管理領域転送手段は、前記エントリ領域を検出するエントリ領域検出手段と、
該エントリ領域検出手段により検出したエントリ領域内の前記エントリ番号に応じて、管理領域の位置情報を用いて該管理領域の管理情報の転送を行う転送手段と、
を備えたことを特徴とする請求項１記載の記憶装置。
【請求項３】
前記エントリ領域は、エントリ領域であることを示すエントリＩＤを備え、
前記エントリ領域検出手段は、前記エントリＩＤが納められる位置の情報を読み取り、該読み取った情報がエントリＩＤであればエントリ領域と判断を行うエントリＩＤ判断手段を備えたことを特徴とする請求項２記載の記憶装置。
【請求項４】
前記エントリＩＤは、前記エントリ領域が納められる記憶ブロックの番号であることを特徴とする請求項３記載の記憶装置。
【請求項５】
前記エントリ領域は、さらに、エントリ領域であることの確認が可能なシステムＩＤを備え、
前記エントリ領域検出手段は、さらに、前記エントリＩＤ判断手段がエントリ領域と判断した場合に、前記システムＩＤが納められる位置の情報を読み取り、該読み取った情報がシステムＩＤとして妥当であるか判断するシステムＩＤ判断手段を備えたことを特徴とする請求項３記載の記憶装置。
【請求項６】
前記エントリ領域は、さらに、該エントリ領域の更新を示すチェックＩＤを備え、
前記エントリ領域検出手段は、さらに、前記エントリ領域より、前記チェックＩＤを読み取り、該チェックＩＤを用いて最新のエントリ領域の検出判断をするチェックＩＤ判断手段を備えたことを特徴とする請求項３または請求項５のいずれかに記載の記憶装置。
【請求項７】
前記エントリ領域は、前記補助記憶装置の所定の範囲内の記憶ブロックに設けることを特徴とする請求項１乃至請求項６のいずれかに記載の記憶装置。
【請求項８】
前記補助記憶装置は、フラッシュメモリであることを特徴とする請求項１乃至請求項７のいずれかに記載の記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、補助記憶装置を有する記憶装置に関するもので、特に補助記憶装置におけるデータ管理に関するものである。
【０００２】
【従来の技術】
主記憶装置を構成するＲＡＭ（ランダム・アクセス・メモリ）に対して、ハードディスク装置等の記憶装置を補助記憶装置と一般に呼んでいる。
そして、この補助記憶装置における記憶データの管理を容易にするために、図１２に示すように、補助記憶装置の記憶領域は、所定の記憶ブロック長の記憶ブロック（以下、この記憶ブロックを「セクタ」と呼ぶ）で区切られ、順番にセクタの番号を示すセクタ番号がふられる。そして、このセクタ番号によりセクタの管理が行われている。なお、図１２では、所定の記録ブロック長を「５１２バイト」とした例を示している。
また、補助記憶装置の記憶領域は、図１３に示すようにデータを記憶するデータ領域９２、データ領域の管理をするための管理情報を納めた管理領域９１、不良の生じたセクタの代替えをするための代替セクタ領域９３に分けられている。そして、この管理領域９１は、補助記憶装置の記憶領域の先頭から所定の個数のセクタが割り当てることにより領域の確保が一般に行われる。また、代替セクタ領域９３は、補助記憶装置の記憶領域の最後尾から所定の個数のセクタを割り当てることにより領域確保が一般に行われる。そして、残りの領域がデータを記憶するデータ領域９２として用いられる。
【０００３】
ここで管理領域９１の構造としては、例えばデータ領域９２における記憶データのセクタ間のつながりを示したファイル割当テーブル（ＦＡＴ：File Allocation Table）と、記憶するデータ毎にデータ名前、属性、日付、先頭のセクタ番号等の情報をまとめたディレクトリ領域からなる。
なお、この補助記憶装置に対してデータの記憶、削除を行うと、管理領域９１の更新（書き換え）が行われ、管理領域９１やデータ領域９２のセクタに不良が生じると代替セクタ領域９３のセクタが代替え使用される。
【０００４】
【発明が解決しようとする課題】
ところで、補助記憶装置は一般的に、書き換え回数の制限があり、その書き換え回数を越えたセクタは、データの記憶、読み取りができなくなる場合がある。特に半導体記憶装置の不揮発性メモリであるフラッシュメモリは、その制限が厳しい。そのため、データ領域９２は、データ領域９２を構成するセクタの書き換えが均等に行われるように、所定のアルゴリズムのもとで、データを記憶するセクタの選択が行われる。
ところが、管理領域９１は、データの記憶、削除が行われる度に書き換えが行われ書き換え回数が多いにもかかわらず固定の領域が用いられている。よって、管理領域９１を構成するセクタは、この書き換えの制限回数に達しやすい。そのため、管理領域９１におけるセクタ不良が生じやすく、その結果、補助記憶装置にデータの記憶ができなくなる、といった課題がある。
なお、このようなセクタ不良が生じた場合には、代替セクタ領域９３のセクタを代わりに用いることになる。しかし、代替セクタ領域９３も固定的で、すべての代替セクタ領域９３のセクタに不良が生じると、上述と同様に補助記憶装置にデータの記憶ができなくなる、といった課題がある。
【０００５】
本発明はこのような事情に鑑みてなされたもので、管理領域に不良セクタの生じにくい記憶装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記の目的を達成するために、本発明のうち請求項１に記載の発明は、主記憶装置の補助を行い、記憶領域が所定の記憶ブロック長の記憶ブロックに分割され、データ領域および該データ領域のデータ管理を行うための管理情報を納めた管理領域からなる補助記憶装置と、該補助記憶装置の制御を行う制御装置からなる記憶装置において、補助記憶装置は、前記所定の記憶ブロック長ごとに分割された前記管理領域のそれぞれの位置情報を含むエントリ領域を備え、前記管理領域は、前記所定の記憶ブロック長ごとに不連続に配置可能であり、前記エントリ領域は、さらに、前記所定の記憶ブロック長ごとに分割され、分割されたそれぞれのエントリ領域ごとに、該エントリ領域の番号を示すエントリ番号を含み、前記所定の記憶ブロック長ごとに別々に再配置可能であることを特徴とする記憶装置である。
【０００７】
次に、請求項２に記載の発明は、請求項１に記載の記憶装置において、前記制御装置は、前記補助記憶装置内の管理領域から管理情報を転送する管理領域転送手段を備え、前記管理領域転送手段は、前記エントリ領域を検出するエントリ領域検出手段と、該エントリ領域検出手段により検出したエントリ領域内の前記エントリ番号に応じて、管理領域の位置情報を用いて該管理領域の管理情報の転送を行う転送手段と、を備えたことを特徴としている。
【０００８】
次に、請求項３に記載の発明は、請求項２に記載の記憶装置において、前記エントリ領域が、エントリ領域であることを示すエントリＩＤを備え、前記エントリ領域検出手段は、前記エントリＩＤが納められる位置の情報を読み取り、該読み取った情報がエントリＩＤであればエントリ領域と判断を行うエントリＩＤ判断手段を備えたことを特徴としている。
【０００９】
次に、請求項４に記載の発明は、請求項３に記載の記憶装置において、前記エントリＩＤが、前記エントリ領域が納められる記憶ブロックの番号であることを特徴としている。
【００１０】
次に、請求項５に記載の発明は、請求項３に記載の記憶装置において、前記エントリ領域が、さらに、エントリ領域であることの確認が可能なシステムＩＤを備え、前記エントリ領域検出手段は、さらに、前記エントリＩＤ判断手段がエントリ領域と判断した場合に、前記システムＩＤが納められる位置の情報を読み取り、該読み取った情報がシステムＩＤとして妥当であるか判断するシステムＩＤ判断手段を備えたことを特徴としている。
【００１１】
次に、請求項６に記載の発明は、請求項３または請求項５のいずれかに記載の記憶装置において、前記エントリ領域が、さらに、該エントリ領域の更新を示すチェックＩＤを備え、前記エントリ領域検出手段は、さらに、前記エントリ領域より、前記チェックＩＤを読み取り、該チェックＩＤを用いて最新のエントリ領域の検出判断をするチェックＩＤ判断手段を備えたことを特徴としている。
【００１４】
次に、請求項７に記載の発明は、請求項１乃至請求項６のいずれかに記載の記憶装置において、前記エントリ領域が、前記補助記憶装置の所定の範囲内の記憶ブロックに設けることを特徴としている。
【００１５】
次に、請求項８に記載の発明は、請求項１乃至請求項７のいずれかに記載の記憶装置において、前記補助記憶装置が、フラッシュメモリであることを特徴としている。
【００１６】
【発明の実施の形態】
以下、本発明の一実施形態による記憶装置を図面を参照して説明する。
（第１の実施の形態）
図１は、本発明の一実施形態による記憶装置の構成を示す図である。図において符号１は制御装置、符号５はＲＡＭ（ランダム・アクセス・メモリ）等で構成される主記憶装置、符号６はハードディスク装置、フラッシュメモリ等により構成される補助記憶装置、符号１０は各装置を接続するバスである。
この補助記憶装置６は、データを記憶するデータ領域９、データ領域の管理をするための管理情報を記憶する管理領域８、さらに補助記憶装置における管理領域８の位置情報を含み再配置可能なエントリ領域７の３つの記憶領域により構成されている。なお、この補助記憶装置は所定の記憶ブロック長で区切られ、この記憶ブロックであるセクタ単位で記憶が行われている。また、管理領域８の構成は任意であり、従来と同様であっても、他の構成であってもよい。
また、制御装置１は、補助記憶装置６にある管理領域８の管理情報を主記憶装置５に転送するための管理情報転送部２、転送した管理情報に基づいて主記憶装置５と補助記憶装置６との間でデータの転送の仲介をするデータ転送部３、データの新たな記憶、更新が行われた際にデータを補助記憶装置６に記憶するとともに、管理情報およびエントリ領域７の情報の更新を行い、補助記憶装置６に記憶させるデータ記憶更新部４を備えている。
【００１７】
次に、補助記憶装置６におけるエントリ領域７の構成を説明する。図２は、本実施の形態におけるエントリ領域７の構成を示す図である。図よりエントリ領域７は、１セクタで納まる構成となっており、このセクタがエントリ領域であることを示すエントリＩＤ・７１と、管理領域８１が納められたセクタ番号を管理領域８の構成順に示した管理領域のセクタＩＤ・８１と、エントリ領域７に納められた情報の終了位置を示すＥＯＩＤ（End of ID）・８２から構成される。なお、エントリ領域７において情報の記憶されていない領域は空き領域８３となっている。また、この図では、管理領域８はｎ個のセクタで構成され、その結果エントリ領域７にはｎ個の管理領域のセクタＩＤ・８１が納めらている例を示している。
このように、エントリ領域７を設け、これにより管理領域８の記憶されているセクタ番号を示す管理領域のセクタＩＤ・８１を格納することにより、管理領域８を固定的な領域とする必要がなくなり、補助記憶装置６のいずれのセクタを用いてもよくなる。さらに、管理領域のセクタＩＤ・８１は、管理領域８の構成順になっているので、管理領域８を構成するために連続したセクタを用いる必要もなく、かつ、順番が逆転していてもよい。よって、管理領域８が４つのセクタ（ｎ＝４の場合）で構成され、管理領域８を構成する管理領域のセクタＩＤ・８１が順に１０、４、２０、５５のように管理領域８を構成するセクタが不連続、順番逆転であってもよくなる。
【００１８】
また、エントリ領域７には、エントリＩＤ・７１が設けられ、これにより複数のセクタからエントリ領域７を構成するセクタを検出することができる。よって、このエントリ領域７もいずれのセクタに記憶してもよくなり、記憶するセクタを代える、すなわち再配置可能となる。
よって、データ領域９のみでなく、管理領域８もエントリ領域７も固定領域でなくなり、補助記憶装置６内で、セクタの均等な書き換えが可能となる。その結果、管理領域８を構成するセクタ不良が生じにくくなるとともに、従来確保されていた代替セクタ領域が不要となる。
さらに、エントリＩＤ・７１を設けることによりエントリ領域が固定でなく再配置可能となるが、このエントリ領域を１つのセクタに納まるようにすることにより、再配置されたエントリ領域７の検出をセクタ単位で行えばよく、エントリ領域７の検出が容易に行える。
なお、これにより、エントリ領域７、管理領域８として記憶されたセクタ以外のセクタが、データ領域９を構成することになる。
【００１９】
次に、管理領域８の管理情報を主記憶装置５に転送するための管理情報転送部２をより詳細に説明する。図３は、本実施の形態における管理情報転送部２の構成を示す図である。図より、管理情報転送部２は、エントリ領域７を構成するセクタを検出するエントリ領域検出部２０と、このエントリ領域検出部２０により検出したエントリ領域７の管理領域のセクタＩＤ・８１を用いて管理領域７の管理情報を主記憶装置５に転送する転送部３０から構成されている。
さらに、このエントリ領域検出部２０は、エントリ領域７のエントリＩＤ・７１を用いてエントリ領域７を構成するセクタであるかを判断するエントリＩＤ判断部２１を備えている。
【００２０】
以下では、この管理情報転送部２の動作を説明する。
図４は、本実施の形態における管理情報転送部２の動作を示すフローチャートである。
まずはじめに、チェックするセクタ番号を示すチェックセクタ番号Ｉの初期化を行う（ステップｓ１）。ここで、補助記憶装置６のセクタ番号は「０」よりはじまるものとすると、チェックセクタ番号Ｉに「０」がセットされる。
セクタＩがエントリ領域７と仮定し、エントリＩＤ・７１が納めらる位置から情報の読み取りを行う（ステップｓ２）。なお、セクタＩがエントリ領域７である場合には、エントリＩＤ・７１にはセクタ番号Ｉと同一値が納められているもとする。このようにエントリ領域７を示すエントリＩＤ・７１をセクタ番号と同一値とすることにより、エントリ領域７か否かの判断がセクタ番号Ｉとの比較により容易にできるようになる。
次に、チェックセクタ番号Ｉと読み取った情報αの比較を行い（ステップｓ３）、値が一致する場合には、このセクタがエントリ領域７であるものと判断してステップｓ５に進み、そうでない場合には、次のセクタをチェックするためにチェックセクタ番号Ｉのインクリメントを行い（ステップｓ４）、ステップｓ２に進む。
エントリ領域７と判断した場合には、エントリ領域７から管理領域のセクタＩＤ・８１を参照することにより、管理領域８から管理情報をバス１０を介して主記憶装置５に転送することにより管理情報の転送を行い（ステップｓ５）、処理を終了する。
なお、上記ステップにおいてステップｓ１〜ｓ４がエントリＩＤ判断部２１の動作を示し、ステップｓ５が転送部３０の動作を示す。
以上のようにして、管理情報転送部２の動作が行われる。
【００２１】
なお、補助記憶装置６から主記憶装置５へデータの転送を行う場合は、図１のデータ転送部３が、管理情報転送部２により転送された管理情報をもとに補助記憶装置６のデータ領域９から所定のデータを主記憶装置５に転送する際の仲介をすることにより行われる。
補助記憶装置６へのデータ記憶、更新を行う場合のデータ記憶更新部４の動作は図５を用いて、以下に説明する。
まず、新たに記憶あるいは更新するデータのサイズをもとに補助記憶装置６で必要となるセクタ数を判断するとともに、セクタの書き換えが均等になる所定のアルゴリズムを用いてその数のセクタの選択を行う（ステップｓ２１）。
主記憶装置５上のデータをステップｓ２１で選択したセクタに転送することによりデータ領域９へのデータの記憶・更新を行う（ステップｓ２２）。
データの記憶に用いたセクタやデータ名等の管理情報の更新が主記憶装置５において行なわれる（ステップｓ２３）。
そして、この管理情報を補助記憶装置６に記憶するために管理領域８に用いるセクタの選択を書き換えが均等になる所定のアルゴリズムを用いて行なう（ステップｓ２４）。
更新された管理情報を主記憶装置５から選択したセクタに転送する際の仲介をすることにより管理情報の更新を行う（ステップｓ２５）。
次に、エントリ領域７を記憶するためのセクタの選択を書き換えが均等になる所定のアルゴリズムを用いて行う（ステップｓ２６）。
そして、ステップｓ２６で選択したセクタ番号を用いて、エントリＩＤ・７１を作成するとともに、ステップｓ２４で選択したセクタ番号を用いて管理領域のセクタＩＤ・８１等の作成を行うことによりエントリ領域の作成を行う（ステップｓ２７）。
最後にこの作成したエントリ領域をステップｓ２６で選択した補助記憶装置６のセクタへ転送することにより、エントリ領域７の更新を行ない（ステップｓ２８）、処理を終了する。
以上のようにして、補助記憶装置６におけるデータの記憶、更新が行われる。なお、データの記憶、更新において、通常はステップｓ２１〜ステップｓ２３を行い、所定のタイミング、もしくは、記憶装置の電源が落とされる直前にステップｓ２４〜ステップｓ２８の実行を行うようにし、補助記憶装置６上でのエントリ領域７や管理領域８の更新回数を減らすようにしてもよい。
【００２２】
なお、本実施形態における記憶装置として、エントリ領域７のエントリＩＤ・７１は記憶されるセクタ番号を用いるものとしたが、これに限定されるものではなく、エントリ領域７を表わす固定値としてもよい。
また、本実施形態における記憶装置として、図３のエントリＩＤ判断部２１で、エントリＩＤ・７１を用いてエントリ領域７であるかの判断を行っていた。しかし、チェック対象のセクタがエントリ領域７でないにも関わらず、そのセクタのエントリＩＤが納められる部分に、偶然、セクタ番号と同じ値が納められている場合がある。そこで、図３の転送部３０は、転送する管理情報の構成形式が正しいかチェックすることにより、エントリ領域検出部２０によるエントリ領域の検出結果が誤りでないことのダブルチェックを行い、管理情報の構成形式でない場合には、次のセクタのチェックを行うようにしてもよい。
【００２３】
（第２の実施の形態）
第１の実施の形態では、図３のエントリＩＤ判断部２１において、エントリＩＤ・７１を用いたエントリ領域７の判断を行っている。しかし、チェック対象のセクタがエントリ領域７でないにも関わらず、そのセクタのエントリＩＤが納められる部分に、偶然、セクタ番号と同じ値が納められている場合がある。その場合には、誤ったセクタをエントリ領域７と判断してしまい、管理情報の適切な読み取りが行えない。これを解決する方法として、図３の転送部３０により、転送する管理情報の構成形式が正しいかチェックし、管理情報の構成形式でない場合には、次のセクタのチェックを行うようにすることを示した。しかし、管理情報の構成形式のチェックは複雑で処理時間がかかる。
また、図１のデータ記憶更新部４によりエントリ領域７の更新が行われた場合、古いエントリ領域７は消去されず、他のセクタに新しいエントリ領域７が記憶される。そのため、図３のエントリＩＤ判断部２１は、最新のエントリ領域７の代わりに古いエントリ領域７を検出してしまうおそれがある。
そこで、第２の実施の形態では、
１）正しいエントリ領域７であるかの判断を容易にし、
２）古いエントリ領域７を誤って検出することのない、
記憶装置を示す。
【００２４】
本実施の形態では、第１の実施の形態との相違を以下に説明する。
図６は、第２の実施の形態におけるエントリ領域７の構成を示す図である。同図において図２の各部に対応する部分には同一の符号を付け、その説明を省略する。図６と図２との相違は、エントリＩＤ・７１とは別にエントリ領域７であることの確認が可能なシステムＩＤ・７２と、エントリ領域７の更新情報を示すチェックＩＤ・７３をさらに備えた点にある。
ここで、システムＩＤ・７２は、エントリＩＤ・７１とは別に、正しいエントリ領域７であるかの判断を容易にするために設けられたＩＤである。仮にシステムＩＤ・７２の構成ビット数をｋ、各セクタのシステムＩＤ・７２が納められる部分のビットの並びがランダムだとすると、システムＩＤ・７２を設けることによりエントリ領域７の検出の確からしさが、２k増すことになる。このシステムＩＤ・７２は、エントリＩＤ・７１と同一値でもよく、また、エントリ領域７であることを示す特定の値でもよい。
また、システムＩＤ・７２は、上述のような値でも良いが、この記憶装置のデータ管理において必要となる値とすることが望ましい。なぜならば、単にエントリ領域７の確認のみではなく、データ管理にも活用でき、システムＩＤ・７２の有効利用ができるからである。なお、この例としては、管理領域８に記憶可能なデータの数などがあげられる。
【００２５】
次に、チェックＩＤ・７３は、エントリ領域７の更新情報を示す値であり、これによりエントリ領域７の再配置により残った古いエントリ領域７と最新のエントリ領域７の区別を可能とすることができる。このチェックＩＤ・７３としては、チェックＩＤ・７３が最も大きな値を示すものを最新のエントリ領域７とするために、エントリ領域７を更新する度にこのチェックＩＤ・７３をカウントアップした値とする。あるいは、更新した日付、時間をチェックＩＤ・７３としてもよい。さらに、全てのセクタでエントリＩＤ・７１を検査する場合であれば、すべてのセクタのエントリＩＤに相当する領域から得られる値を用いて算出した値、例えばそれらの値の和をチェックＩＤ・７３の値としてもよい。
エントリ領域７に新たにシステムＩＤ・７２およびチェックＩＤ・７３を設けたことによる制御装置１内の管理情報転送部２の第１の実施の形態との相違を、図７に示す。図７と図３との比較により、システムＩＤ判断部２２およびチェックＩＤ判断部２３が新たに加わっていることがわかる。
このシステムＩＤ判断部２２は、システムＩＤ・７２が適切な値かの判断を行うことにより、チェック対象のセクタがエントリ領域７であるかの判断を行なう。
一方チェックＩＤ判断部２３は、チェックＩＤ・７３の値を用いて最新のエントリ領域７であるかの判断を行う。
【００２６】
図８は、本実施の形態における管理情報転送部２の動作を示すフローチャートである。図において、ステップｓ１〜ｓ４までが、図７のエントリＩＤ判断部２１の動作に対応するとともに、図４のステップｓ１〜ｓ４の動作と同じなので説明を省略し、ステップｓ５以下の説明を行う。
エントリＩＤ判断部２１においてセクタＩがエントリ領域７と判断された場合に、セクタＩのシステムＩＤ・７２に相当する部分の読み取りを行う（ステップｓ５）。
この読み取った値βが適切であるか判断する（ステップｓ６）。ここでシステムＩＤ・７２として、エントリＩＤ・７１と同じ値を取る場合であれば、エントリＩＤとの比較を行い、エントリ領域７を示す所定の値である場合には、その所定の値との比較を行う。または、その値が適切な範囲となっているか判断する。読み取った値βが適切でない場合は、セクタＩのエントリＩＤ・７１に相当する部分に偶然エントリＩＤと同じ値が入ったことになるので、チェックセクタ番号Ｉのインクリメントを行い（ステップｓ７）、ステップｓ２に戻る。
読み取った値βが適切と判断された場合には、セクタＩのチェックＩＤ・７３を読み取る（ステップｓ８）。
すでに他のセクタにおいてエントリ領域７と判断されたセクタがある場合には、この値γの比較を行うことにより、最新のエントリ領域７の選択を行う（ステップｓ９）。
そして、チェックセクタ番号Ｉのインクリメントを行い（ステップｓ１０）、すべてのセクタの判断が終了したか判断し（ステップｓ１１）、終了していない場合にはステップｓ２に戻る。
すべてのセクタの判断が終了した場合にはエントリ領域７の管理領域のセクタＩＤ・８１を用いて管理情報の転送を行ない（ステップｓ１２）、処理を終了する。
【００２７】
上記動作において、テップｓ５〜ｓ７がシステムＩＤ判断部２２の動作になり、ステップｓ８〜ｓ９がチェックＩＤ判断部２３の動作になる。また、最新のエントリ領域７を検出するために、エントリ領域検出部２０ではすべてのセクタのチェックを行っており、ステップｓ１０〜ｓ１１がそのために加わっている。なお、ステップｓ１２は、図７の転送部３０の動作であり、図４のステップｓ５と処理内容は同じである。
また図１におけるデータ転送部３の動作は第１の実施の形態と同じであるが、データ記憶更新部４の動作は、エントリ領域７の構成が異なるため相違が生じる。すなわち、図５のステップｓ２７において、システムＩＤ・７２、チェックＩＤ・７３を作成する動作が新たに加わることになる。
【００２８】
なお、本実施形態における記憶装置として、図７の転送部３０は、転送する管理情報の構成形式が正しいかチェックすることにより、エントリ領域検出部２０によるエントリ領域の検出結果が誤りでないことのチェックを行い、管理情報の構成形式でない場合には、次のセクタのチェックを行うようにして、エントリ領域７の検出をさらに強化してもよい。
また、本実施形態における記憶装置として、図６のエントリ領域７のＩＤの並びはこれに限定されるものでない。また、補助記憶装置６においてセクタのエントリＩＤ・７１に相当する部分にエントリＩＤ・７１と同じ値が入る確率が十分低い場合には、システムＩＤ・７２がなくてもよく、エントリ領域７の更新が行われる際に必ず補助記憶装置６上の古いエントリ領域７が消去されるとするならば、チェックＩＤ・７３がなくてもよい。
【００２９】
（第３の実施の形態）
第１の実施の形態では、エントリ領域７が１つのセクタに納まることを前提としていた。しかし、補助記憶装置６の記憶領域が大きいため、管理領域８が大きくなると、図２の管理領域のセクタＩＤ・８１が１セクタ内に納まらない場合が生じてしまう。
そこで、第３の実施の形態では、エントリ領域が１セクタで納まらない場合においてエントリ領域７の拡張が可能な記憶装置を示す。
【００３０】
本実施の形態では、第１の実施の形態との相違を以下に説明する。
図９は、第３の実施の形態におけるエントリ領域の構成を示す図である。同図において図２の各部に対応する部分には同一の符号を付け、その説明を省略する。図９は、エントリ領域が２つに分割された場合を示す。図９（ａ）はＮｏ．０となるエントリ領域７ａであり、管理領域のセクタＩＤ・８１ａが１セクタに詰め込まれ、空き領域がない状態となっている。一方図９（ｂ）は、Ｎｏ．１となるエントリ領域７ｂであり、Ｎｏ．０のエントリ領域７ａに入りきらない管理領域のセクタＩＤ・８１ｂが納められている。
図９と図２とに示すエントリ領域の相違は、エントリＩＤ・７１ａ、７１ｂとは別に、さらにエントリ領域の順番を示すエントリＮｏ・７４ａ、７４ｂを備えた点にある。これによりエントリ領域の拡張が可能となり、かつ、別々に再配置が可能になる。なお、図９はエントリ領域が２つに分割された例を示しているが、このエントリＮｏを設けることにより管理領域のセクタＩＤを納めるために必要となる分のエントリ領域を用意することができる。
そして、このエントリＮｏ・７４ａ、７４ｂに応じて、管理情報の転送を行うことにより管理情報を正しく読み取ることが可能となる。
【００３１】
図１０は、本実施の形態における管理情報転送部２の動作を示すフローチャートである。図において、ステップｓ１〜ｓ４までが、図３のエントリＩＤ判断部２１の動作に対応するとともに、図４のステップｓ１〜ｓ４までと同じなので説明を省略し、ステップｓ５以下の説明を行う。
セクタＩに納められたエントリ領域のエントリＮｏの読み取りを行う（ステップｓ５）。
エントリ領域内の管理領域のセクタＩＤを利用するとともに、ステップｓ５で読み取った値δに応じて、主記憶装置５に管理情報の転送を行う（ステップｓ６）。ここで「値δに応じて」とは、例えば図９に示すようにエントリＮｏが「０」から始まり、読み取ったエントリＮｏである値δが「１」である場合には、図９（ａ）の管理領域のセクタＩＤ・８１ａのＩＤの個数ｎと、セクタの記憶ブロック長を考慮したオフセットをもたせて、主記憶装置５上に管理情報の転送を行う、という意味である。なお、管理領域のセクタＩＤ・８１ａのＩＤの個数ｎは、セクタの記憶ブロック長等の情報より求めることができる。
続いてチェックセクタ番号Ｉのインクリメントを行い（ステップｓ７）、すべてのセクタのチェックが終了しているか判断し（ステップｓ８）、終了している場合には処理を終了し、そうでない場合にはステップｓ２に戻る。
上記動作において、ステップｓ５〜ｓ６が図３の転送部３０の動作となる。また、分割されたのエントリ領域を検出するために、エントリ領域検出部２０ではすべてのセクタのチェックを行っており、そのため、ステップｓ７〜ｓ８が新たに加わっている。
【００３２】
また図１におけるデータ転送部３の動作は第１の実施の形態と同じであるが、データ記憶更新部４の動作は、エントリ領域７の構成が異なるため相違が生じる。すなわち、図５のステップｓ２６において、エントリ領域が分割されている分のセクタの選択が行われ、ステップｓ２７において、分割されている分のエントリ領域情報の作成が行われるとともに、システムＮｏを加える動作が新たに加わることになる。そして、ステップｓ２８では、ステップｓ２６で選択された各セクタにステップｓ２７で作成した各エントリ領域情報の転送が行われることになる。
【００３３】
なお、本実施形態における記憶装置として、図３の転送部３０は、読み取った管理情報の構成形式が正しいかをチェックすることにより、エントリ領域検出部２０によるエントリ領域の検出結果が誤りでないことのダブルチェックを行い、管理情報の構成形式でない場合には、次のセクタのチェックを行うようにして、エントリ領域の検出を強化してもよい。
また、本実施形態における記憶装置として、エントリ領域に第２の実施の形態のシステムＩＤ・７２やチェックＩＤ・７３を設け、それとともにエントリ領域検出部２０に上記ＩＤに応じて、図７に示すシステムＩＤ判断部２２やチェックＩＤ判断部２３を設けてもよい。
【００３４】
なお、第１〜第３の実施の形態における記憶装置として、補助記憶装置６のエントリ領域はいずれのセクタを用いてもよかったが、分割されたエントリ領域が記憶されるセクタの範囲を定めてもよい。これにより、管理情報転送部２のエントリ領域の検出判断がより速くできるようになる。
また、第１〜第３の実施の形態における記憶装置として、図１の装置構成を図１１に示すようにし、記憶装置１２は制御装置１と補助記憶装置６から構成され、この制御装置１は、エントリ領域７に関する操作を制御装置１内で行うことにより、主記憶装置５を制御する主制御装置１１からは、記憶装置１２があたかも従来の記憶装置のように扱えるようにしてもよい。
また、第１〜第３の実施の形態における記憶装置として、管理情報転送部２内の転送部３０は、エントリ領域内の管理領域の位置情報を用いて、管理領域８の管理情報を主記憶装置５に転送しているが、この転送は管理領域８の管理情報を主記憶装置５に一括して転送するものであっても、必用になるたびに管理領域８の必用な部分を転送するものであってもよい。また、図１の制御装置１、あるいは、図１１の主制御装置１１が内部のレジスタを利用して必用最低限の管理領域８の管理情報を記憶し、補助記憶装置６内のデータ領域９の操作をする場合には、転送部３０による管理領域８の管理情報の転送は、主記憶装置５ではなく、制御装置１、あるいは、主制御装置１１に転送するものであってもよい。
【００３５】
【発明の効果】
以上説明したように、本発明による記憶装置によれば、下記の効果を得ることができる。上記に記載の発明によれば、補助記憶装置は、管理領域の位置情報を含み再配置可能としたエントリ領域を備えている。これにより、管理領域を固定的な領域とする必要がなくなり、補助記憶装置のいずれのセクタを用いてもよくなる。よって、データ領域、管理領域、エントリ領域のすべての領域が再配置可能となり、補助記憶装置の各セクタの書き換えを均一にする事ができ、その結果、特定の位置のセクタ不良が生じにくくなる。また、すべての領域が再配置可能なことから従来確保されていた代替セクタ領域が不要となる。
【００３６】
また、上記に記載の発明によれば、制御装置は、補助記憶装置内の管理領域から管理情報を転送する管理領域転送手段を備え、この管理領域転送手段は、エントリ領域を検出するエントリ領域検出手段と、このエントリ領域検出手段により検出したエントリ領域内の管理領域の位置情報を用いて該管理領域の管理情報を転送する転送手段とを備えている。これにより、エントリ領域を用いた管理情報の転送が可能となる。
【００３７】
また、上記に記載の発明によれば、エントリ領域は、エントリ領域であることを示すエントリＩＤを備え、エントリ領域検出手段は、エントリＩＤが納められる位置の情報を読み取り、この読み取った情報がエントリＩＤであればエントリ領域と判断を行うエントリＩＤ判断手段を備えている。これにより、複数のセクタからエントリ領域を構成するセクタをエントリＩＤを用いて検出することができるようになる。
【００３８】
また、上記に記載の発明によれば、エントリＩＤは、エントリ領域が納められる記憶ブロックの番号としている。これにより、エントリ領域か否かの判断がセクタ番号との比較により容易にできるようになる。
【００３９】
また、上記に記載の発明によれば、エントリ領域は、さらに、エントリ領域であることの確認が可能なシステムＩＤを備え、エントリ領域検出手段は、さらに、前記エントリＩＤ判断手段がエントリ領域と判断した場合に、前記システムＩＤが納められる位置の情報を読み取り、該読み取った情報がシステムＩＤとして妥当であるか判断するシステムＩＤ判断手段を備えている。これにより、エントリ領域でないにも関わらず、エントリＩＤが納められる部分に、偶然、エントリＩＤと同じ値が納められていても、誤ったエントリ領域の検出をすることを防止できる。
【００４０】
また、上記に記載の発明によれば、エントリ領域は、さらに、エントリ領域の更新を示すチェックＩＤを備え、エントリ領域検出手段は、さらに、エントリ領域より、このチェックＩＤを用いて最新のエントリ領域の判断をするチェックＩＤ判断手段を備えている。これにより、古いエントリ領域が消去されずに、他の記憶ブロックに新しいエントリ領域が記憶されても、最新のエントリ領域７の検出が可能となる。
【００４１】
また、上記に記載の発明によれば、エントリ領域は、１記憶ブロック長に納まるサイズとなっている。これにより、エントリ領域の検出を記憶ブロック単位で行え、エントリ領域の検出が容易になる。
【００４２】
また、上記に記載の発明によれば、エントリ領域は、さらに、分割されたエントリ領域の番号を示すエントリ番号を備え、転送手段は、エントリ領域検出手段により検出したエントリ領域内のエントリ番号に応じて管理領域の管理情報を転送する。これにより、管理領域が大きく、エントリ領域内の管理領域のセクタＩＤが１記憶ブロックに納まらない場合への対応が可能となる。
【００４３】
また、上記に記載の発明によれば、エントリ領域は、補助記憶装置の所定の範囲内の記憶ブロックに設けられる。これにより、エントリ領域の検出速度を速くできる。
【００４４】
また、上記に記載の発明によれば、補助記憶装置は、フラッシュメモリである。特に書き換え回数の制限の厳しいフラッシュメモリにおいて、すべての記憶ブロックの書き換えを均一に行うことができ、フラッシュメモリ内の記憶ブロックの不良が生じにくくなる。
【図面の簡単な説明】
【図１】  本発明の一実施形態による記憶装置の構成図である。
【図２】  第１の実施の形態におけるエントリ領域の構成を示す図である。
【図３】  管理情報転送部の構成を示す図である。
【図４】  第１の実施の形態における管理情報転送部の動作を示すフローチャートである。
【図５】  データ記憶更新部の動作を示すフローチャートである。
【図６】  第２の実施の形態におけるエントリ領域の構成を示す図である。
【図７】  第２の実施の形態における管理情報転送部の構成を示す図である。
【図８】  第２の実施の形態における管理情報転送部の動作を示すフローチャートである。
【図９】  第３の実施の形態におけるエントリ領域の構成を示す図である。
【図１０】  第３の実施の形態における管理情報転送部の動作を示すフローチャートである。
【図１１】  本発明の他の実施形態による記憶装置の構成図である。
【図１２】  補助記憶装置の記憶領域を示す図である。
【図１３】  補助記憶装置の記憶領域の領域構成の一従来例を示す図である。
【符号の説明】
１  制御装置
２  管理情報転送部
３  データ転送部
４  データ記憶更新部
５  主記憶装置
６  補助記憶装置
７  エントリ領域
８  管理領域
９  データ領域
７１  エントリＩＤ
７２  システムＩＤ
７３  チェックＩＤ
７４ａ、７４ｂ  エントリＮｏ
【図１】
0003807012.tif 000002
【図２】
0003807012.tif 000003
【図３】
0003807012.tif 000004
【図４】
0003807012.tif 000005
【図５】
0003807012.tif 000006
【図６】
0003807012.tif 000007
【図７】
0003807012.tif 000008
【図８】
0003807012.tif 000009
【図９】
0003807012.tif 000010
【図１０】
0003807012.tif 000011
【図１１】
0003807012.tif 000012
【図１２】
0003807012.tif 000013
【図１３】
0003807012.tif 000014