(57)【要約】  データが書き込まれるアドレスを管理する管理情報テーブルをページ単位に分割して書き込む記憶装置であって、前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルの最終ページを複写したページを書き込む書込み部３と、書込み部３にて書き込まれた最終ページおよび最終ページを複写したページを取得する取得部４と、取得部４にて取得された最終ページと最終ページを複写したページとの比較および前記書込み部による最終ページを複写したページの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定部５とを備えた。
2009004674.tif 000002
【特許請求の範囲】
【請求項１】
データが書き込まれるアドレスを管理する管理情報テーブルをページ単位に分割して書き込む記憶装置であって、
前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルの最終ページを複写したページを書き込む書込み部と、
前記書込み部にて書き込まれた最終ページおよび最終ページを複写したページを取得する取得部と、
前記取得部にて取得された最終ページと最終ページを複写したページとの比較および前記書込み部による最終ページを複写したページの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定部と、
を備える記憶装置。
【請求項２】
請求項１に記載の記憶装置において、
前記書込み部は、更に前記ページ単位に分割された管理情報テーブルのページ数の情報を所定の領域に書き込み、前記取得部は、更に前記ページ数の情報に基づき前記書込み部にて書き込まれた管理情報テーブルの最終ページを選定し、該最終ページを取得することを特徴とする記憶装置。
【請求項３】
請求項２に記載の記憶装置において、
前記書込み部は、前記管理情報テーブルを書き込む先頭ページにおける先頭ワードを所定の領域として書き込むことを特徴とする記憶装置。
【請求項４】
請求項１に記載の記憶装置において、
更に、既存の管理情報テーブルを複数のページをまとめたブロックで消去する消去部を備え、
前記書込み部は、前記消去部にて消去されたブロックに前記管理情報テーブルを書き込むことを特徴とする記憶装置。
【請求項５】
請求項４に記載の記憶装置において、
前記消去部は、前記ブロックを全て１のデータとすることで消去することを特徴とする記憶装置。
【請求項６】
請求項１に記載の記憶装置において、
前記記憶装置は、ＮＡＮＤ型の不揮発性メモリを備えた不揮発性メモリ装置であることを特徴とする記憶装置。
【請求項７】
データが書き込まれるアドレスを管理する管理情報テーブルをページ単位に分割して書き込む記憶装置であって、
前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルとは異なるユニークデータを外部より取得し書き込む書込み部と、
前記書込み部にて書き込まれたユニークデータを第１情報として取得し、更に外部よりユニークデータを第２情報として取得する取得部と、
前記取得部にて取得された第１情報と第２情報との比較および前記書込み部によるユニークデータの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定部と、
を備える記憶装置。
【請求項８】
データと該データが書き込まれるアドレスとを対応付けた管理情報テーブルをページ単位に分割して書き込む記憶装置を備えたディスク装置であって、
前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルの最終ページを複写したページを書き込む書込み部と、
前記書込み部にて書き込まれた最終ページおよび最終ページを複写したページを取得する取得部と、
前記取得部にて取得された最終ページと最終ページを複写したページとの比較および前記書込み部による最終ページを複写したページの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定部と、
を備えるディスク装置。
【請求項９】
請求項８に記載のディスク装置において、
前記書込み部は、更に前記ページ単位に分割された管理情報テーブルのページ数の情報を所定の領域に書き込み、前記取得部は、更に前記ページ数の情報に基づき前記書込み部にて書き込まれた管理情報テーブルの最終ページを選定し、該最終ページを取得することを特徴とするディスク装置。
【請求項１０】
請求項９に記載のディスク装置において、
前記書込み部は、前記管理情報テーブルを書き込む先頭ページにおける先頭ワードを所定の領域として書き込むことを特徴とするディスク装置。
【請求項１１】
請求項８に記載のディスク装置において、
更に、既存の管理情報テーブルを複数のページをまとめたブロックで消去する消去部を備え、
前記書込み部は、前記消去部にて消去されたブロックに前記管理情報テーブルを書き込むことを特徴とするディスク装置。
【請求項１２】
請求項１１に記載のディスク装置において、
前記消去部は、前記ブロックを全て１のデータとすることで消去することを特徴とするディスク装置。
【請求項１３】
請求項８に記載のディスク装置において、
前記ディスク装置は、不揮発性メモリおよび磁気ディスク装置にて構成されたハイブリッドハードディスクドライブであることを特徴とするディスク装置。
【請求項１４】
データが書き込まれるアドレスを管理する管理情報テーブルをページ単位に分割して書き込む記憶装置における前記管理情報テーブルの書き込みを判定する書込み判定方法であって、
前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルの最終ページを複写したページを書き込む書込みステップと、
前記書込みステップにて書き込まれた最終ページおよび最終ページを複写したページを取得する取得ステップと、
前記取得ステップにて取得された最終ページと最終ページを複写したページとの比較および前記書込みステップによる最終ページを複写したページの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定ステップと、
を実行する書込み判定方法。
【請求項１５】
請求項１４に記載の書込み判定方法において、
前記書込みステップは、更に前記ページ単位に分割された管理情報テーブルのページ数の情報を所定の領域に書き込み、前記取得ステップは、更に前記ページ数の情報に基づき前記書込みステップにて書き込まれた管理情報テーブルの最終ページを選定し、該最終ページを取得することを特徴とする書込み判定方法。
【請求項１６】
請求項１５に記載の書込み判定方法において、
前記書込みステップは、前記管理情報テーブルを書き込む先頭ページにおける先頭ワードを所定の領域として書き込むことを特徴とする書込み判定方法。
【請求項１７】
請求項１４に記載の書込み判定方法において、
更に、既存の管理情報テーブルを複数のページをまとめたブロックで消去する消去ステップを実行し、
前記書込みステップは、前記消去ステップにて消去されたブロックに前記管理情報テーブルを書き込むことを特徴とする書込み判定方法。
【請求項１８】
請求項１７に記載の記憶装置において、
前記消去ステップは、前記ブロックを全て１のデータとすることで消去することを特徴とする書込み判定方法。
【請求項１９】
データが書き込まれるアドレスを管理する管理情報テーブルをページ単位に分割して書き込む記憶装置の制御装置であって、
前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルの最終ページを複写したページを書き込む指示を行う書込み制御部と、
前記書込み制御部により書き込まれた最終ページおよび最終ページを複写したページを取得する制御を行う取得制御部と、
前記取制御得部にて取得された最終ページと最終ページを複写したページとの比較および前記書込み部による最終ページを複写したページの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定部と、
を備える制御装置。
【請求項２０】
データが書き込まれるアドレスを管理する管理情報テーブルをページ単位に分割して書き込む記憶装置の制御装置であって、
前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルとは異なるユニークデータを外部より取得し書き込む制御を行う書込み制御部と、
前記書込み部にて書き込まれたユニークデータを第１情報として取得し、更に外部よりユニークデータを第２情報として取得する制御を行う取得制御部と、
前記取得部にて取得された第１情報と第２情報との比較および前記書込み部によるユニークデータの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定部と、
を備える制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリが自身の情報管理テーブルを書き込み中に予期せぬ電源断等により書き込み不具合が発生したか否かを判定する記憶装置、ディスク装置、書込み判定方法および制御装置に関するものである。
【背景技術】
【０００２】
不揮発性メモリ上のデータの管理は、格納されたデータとデータのアドレスを対応付けた管理情報テーブルを不揮発性メモリ上の管理領域に設け、必要に応じ更新されることで行われる。不揮発性メモリは、この管理情報テーブルに基づきデータの読み出し、および書き込みを行う。【０００３】
従来、管理情報テーブルの正当性は、図１２に示すように情報管理テーブル上にワード単位の複数のＳｔａｍｐ情報を含ませ、そのＳｔａｍｐ情報が一致するか否かで判断される。不揮発性メモリは情報管理テーブルを世代管理し、Ｓｔａｍｐ情報の不一致による書き込み不具合が検出されれば、一世代前の管理情報テーブルを使用する。よって、少なくとも一世代前の管理情報テーブルにて管理されていたデータは保証される。このようにデータの破壊を最小限に食い止めるためには、管理情報テーブルが正当なものであるか否かを判定することが必須である。【０００４】
なお、データの正当性を判定する従来技術として、バイト単位の書き込み、読出しが可能で、数バイト単位で複数ページに区分けされるＥＥＰＲＯＭと、ページ毎にエラーの有無を検出するエラー検出手段と、複数ページのうち、特定のページをエラーフラグエリアとして、各ページのエラー発生の有無を示すエラーフラグを記録するエラーフラグ書き込み手段と、エラーの発生したページの書き込みデータを空きページに置換して書き込むデータ書き込み置換手段と、エラーの発生したページにデータ置換手段で置換される置換先アドレスを書き込むアドレス書き込み手段と、エラーフラグエリアを参照してエラー発生ページを判別し、そのページのバイトデータを読出して置換先アドレスを判別し、判別したアドレスに基づいて置換ページからデータを読み出すデータ読出し手段とを具備したメモリカード装置がある（例えば、特許文献１参照）。
【特許文献１】特開平５−４６４９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、不揮発性メモリへのデータの書き込みはある程度の大きさを持つページ単位で行われるが、計算機の電源断や、計算機と不揮発性メモリとの間の接触不良による書き込み不具合が起きた場合、ページのどの個所が成功し、どの個所が書き込み失敗しているかわからない。仮にＳｔａｍｐ情報が正しく読めたとしても、その他の個所は正しく書き込まれている保証はなく、Ｓｔａｍｐ情報のみの照合で書き込み成否を判断することができない(図１２参照)。データ保証のない管理情報テーブルを使用することは、重大なデータ破壊を起こすことになる。【０００６】
また、特許文献１はメモリカード装置に記憶されたデータを管理する領域（例えば特許文献１のエラーフラグエリア）に対する正当性チェックについて、何ら記載されていない。【０００７】
本発明は上述した問題点を解決するためになされたものであり、ページ単位で照合することで、ページ内の部分的な書き込み不具合にも対応できる記憶装置、ディスク装置、書込み判定方法および制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決するため、本発明は、データが書き込まれるアドレスを管理する管理情報テーブルをページ単位に分割して書き込む記憶装置であって、前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルの最終ページを複写したページを書き込む書込み部と、前記書込み部にて書き込まれた最終ページおよび最終ページを複写したページを取得する取得部と、前記取得部にて取得された最終ページと最終ページを複写したページとの比較および前記書込み部による最終ページを複写したページの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定部とを備えるものである。【０００９】
更に、上述した課題を解決するため、本発明は、データが書き込まれるアドレスを管理する管理情報テーブルをページ単位に分割して書き込む記憶装置であって、前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルとは異なるユニークデータを外部より取得し書き込む書込み部と、前記書込み部にて書き込まれたユニークデータを第１情報として取得し、更に外部よりユニークデータを第２情報として取得する取得部と、前記取得部にて取得された第１情報と第２情報との比較および前記書込み部によるユニークデータの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定部とを備えるものである。【００１０】
また、上述した課題を解決するため、本発明は、データと該データが書き込まれるアドレスとを対応付けた管理情報テーブルをページ単位に分割して書き込む記憶装置を備えたディスク装置であって、前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルの最終ページを複写したページを書き込む書込み部と、前記書込み部にて書き込まれた最終ページおよび最終ページを複写したページを取得する取得部と、前記取得部にて取得された最終ページと最終ページを複写したページとの比較および前記書込み部による最終ページを複写したページの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定部とを備えるものである。【００１１】
さらに、上述した課題を解決するため、本発明は、データが書き込まれるアドレスを管理する管理情報テーブルをページ単位に分割して書き込む記憶装置における前記管理情報テーブルの書き込みを判定する書込み判定方法であって、前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルの最終ページを複写したページを書き込む書込みステップと、前記書込みステップにて書き込まれた最終ページおよび最終ページを複写したページを取得する取得ステップと、前記取得ステップにて取得された最終ページと最終ページを複写したページとの比較および前記書込みステップによる最終ページを複写したページの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定ステップとを実行するものである。【００１２】
また、上述した課題を解決するため、本発明は、データが書き込まれるアドレスを管理する管理情報テーブルをページ単位に分割して書き込む記憶装置の制御装置であって、前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルの最終ページを複写したページを書き込む指示を行う書込み制御部と、前記書込み制御部により書き込まれた最終ページおよび最終ページを複写したページを取得する制御を行う取得制御部と、前記取制御得部にて取得された最終ページと最終ページを複写したページとの比較および前記書込み部による最終ページを複写したページの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定部とを備えるものである。【００１３】
また、上述した課題を解決するため、本発明は、データが書き込まれるアドレスを管理する管理情報テーブルをページ単位に分割して書き込む記憶装置の制御装置であって、前記ページ単位に分割された管理情報テーブルを書き込み後、前記管理情報テーブルとは異なるユニークデータを外部より取得し書き込む制御を行う書込み制御部と、前記書込み部にて書き込まれたユニークデータを第１情報として取得し、更に外部よりユニークデータを第２情報として取得する制御を行う取得制御部と、前記取得部にて取得された第１情報と第２情報との比較および前記書込み部によるユニークデータの書き込みの有無の確認のいずれか一つを行うことで、前記管理情報テーブルの書き込みの成否を判定する判定部とを備えるものである。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１および実施の形態２に係る記憶装置の機能の一例を示す機能ブロック図である。
【図２】実施の形態１および実施の形態２に係る記憶装置の構成の一例を示す構成図である。
【図３】実施の形態１の記憶装置に格納される管理情報テーブルの状態（複写ページデータ不良）を示す図である。
【図４】実施の形態１の記憶装置に格納される管理情報テーブルの状態（途中データ不良）を示す図である。
【図５】実施の形態１に係る記憶装置の書込み処理を示すフローチャートである。
【図６】実施の形態１に係る記憶装置の判定処理を示すフローチャートである。
【図７】実施の形態１に係る記憶装置を備えたディスク装置の一例を示すブロック図である。
【図８】実施の形態２の記憶装置に格納される管理情報テーブルの状態（複写ページデータ不良）を示す図である。
【図９】実施の形態２の記憶装置に格納される管理情報テーブルの状態（途中データ不良）を示す図である。
【図１０】実施の形態２に係る記憶装置の書込み処理を示すフローチャートである。
【図１１】実施の形態２に係る記憶装置の判定処理を示すフローチャートである。
【図１２】従来の不揮発性メモリの管理情報テーブル判定方法を示す図である。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について図面を参照しつつ説明する。【００１６】
（実施の形態１）
まず、実施の形態１に係る記憶装置の構成について説明する。尚、実施の形態１における記憶装置はＮＡＮＤ型の不揮発性メモリとして説明する。【００１７】
実施の形態１に係る記憶装置の機能ブロックを図１に示す。不揮発性メモリ装置１において、不揮発性メモリ５０は、消去部２、書込み部３、取得部４を備え、更に不揮発性メモリ５０とホストマシン２００との間に介在するコントローラ１０１（制御装置）に判定部５を備える。消去部２、書込み部３、取得部４は、コントローラ１０１のファームウェアプログラムに基づいて制御される。【００１８】
消去部２は、既存の管理情報テーブルをブロック単位で消去し、書込み部３は、消去部２にて消去されたブロックに、ページ単位に分割された管理情報テーブルを書き込んだ後、管理情報テーブルの最終ページを複写したページを書き込む。【００１９】
取得部４は、書込み部３にて書き込まれた最終ページを複写したページを取得し、さらに書込み部３にて書き込まれた前記管理情報テーブルの最終ページを取得する。判定部５は、取得部４にて取得された最終ページと最終ページを複写したページとの比較、および書込み部３による最終ページを複写したページの書き込みの有無の確認のいずれか一つを行うことで、管理情報テーブルの書き込みの成否を判定する。【００２０】
次に、実施の形態１に係る記憶装置の構成図を図２に示す。不揮発性メモリ装置１は、不揮発性メモリ５０およびファームウェアプログラムに基づき不揮発性メモリ５０に対し制御を行うコントローラ１０１にて構成されている。不揮発性メモリ５０は、更にＩ／Ｆ部１０、ＤａｔａＲＡＭ１１、コマンド発行部１２、およびＮＡＮＤフラッシュアレイ１３にて構成されている。【００２１】
Ｉ／Ｆ部１０は、不揮発性メモリ５０とホストマシン２００（ホストマシン２００は不揮発性メモリ装置１と接続された計算機）との間のデータの入出力（尚、データの入出力は図２中の矢印にて表記）およびコントローラ１０１からの制御指示の入出力を行っており、ＤａｔａＲＡＭ１１は、ＮＡＮＤフラッシュアレイ１３に対する書き込み用、および読込み用のバッファとして機能する揮発性メモリである。コマンド発行部１２は、既存の管理情報テーブルの消去（Ｅｒａｓｅ）、管理情報テーブルの書き込み（Ｗｒｉｔｅ）等のコマンドを発行する。ＮＡＮＤフラッシュアレイ１３は、データを不揮発性となるよう格納する。尚、実施の形態１ではＤａｔａＲＡＭ１１に揮発性メモリを２つ備えるが（図２中におけるＤａｔａＲＡＭ１１Ａ、ＤａｔａＲＡＭ１１Ｂ）、数を限定するものではなく、揮発性メモリは１つでも複数でも構わない。【００２２】
ここで、図２に示した各構成要素がどのように動作するかを、ホストマシン２００からの不揮発性メモリ装置１へのデータの書き込み（Ｗｒｉｔｅ）、データ読出し（Ｒｅａｄ）の動作の概要を例にして説明する。【００２３】
書き込み動作の概要について説明する。まず既存データがある場合は、コントローラ１０１はデータを書き込む前に、複数のページを束ねたブロックの単位で既存データを消去する。なお、既存データの消去は、コマンド発行部１２が消去コマンドを発行することで行われ、消去されたブロックは全て「１」のデータ（ＡＬＬ（１））が格納される。【００２４】
次に、ホストマシン２００から転送されたデータは、ＤａｔａＲＡＭ１１にＩ／Ｆ部１０を介して転送され、１ページ分のデータが格納される。その後、コントローラ１０１の指示に基づきコマンド発行部１２が書込み指示（Ｗｒｉｔｅコマンド）を行うことで、ＤａｔａＲＡＭ１１からＮＡＮＤフラッシュアレイ１３へ転送され、ＮＡＮＤフラッシュアレイ１３に１ページ分のデータが書き込まれる。書き込み後、コマンド発行部１２はＷｒｉｔｅコマンド終了通知をコントローラ１０１へ行う。【００２５】
上述の動作が繰り返されることで、対象となるデータが全てＮＡＮＤフラッシュアレイ１３に書き込まれる。【００２６】
次に、読み出し動作の概要について説明する。ホストマシン２００からの読み出し指示を受けた不揮発性メモリ装置１内において、コマンド発行部１２が、コントローラ１０１の指示に基づきＮＡＮＤフラッシュアレイ１３からＤａｔａＲＡＭ１１への読出しコマンド（Ｌｏａｄコマンド）を発行する。その後、対象データの１ページ分がＤａｔａＲＡＭ１１に格納される。コマンド発行部１２はＬｏａｄコマンド終了通知をコントローラ１０１へ行い、ホストマシン２００はＤａｔａＲＡＭ１１からＩ／Ｆ部１０を介してページ単位のデータを取得する。【００２７】
上述の動作が繰り返されることで、対象データが全てホストマシン２００に読み出される。【００２８】
上述の動作はデータに対するものとして示したが、データを管理するための管理情報テーブルも適用される。【００２９】
尚、図１の機能ブロックと図２の構成図との対応は、消去部２の機能は、コントローラ１０１からの指示により、Ｉ／Ｆ部１０、コマンド発行部１２、ＮＡＮＤフラッシュアレイ１３にて実現され、書込み部３の機能は、コントローラ１０１からの指示に基づき、Ｉ／Ｆ部１０、ＤａｔａＲＡＭ１１、コマンド発行部１２およびＮＡＮＤフラッシュアレイ１３にて実現される。また取得部４はコントローラ１０１からの指示に基づき、ＤａｔａＲＡＭ１１、コマンド発行部１２およびＮＡＮＤフラッシュアレイ１３にて実現される。判定部５は、コントローラ１０１のファームウェアプログラムにて実現される。【００３０】
次に、実施の形態１の判定処理の概要を説明するため、不揮発性メモリ装置１の管理情報テーブルの格納状態を図３に示す。図３は、Ｐａｇｅ０からＰａｇｅ３までの４ページを使用する管理情報テーブルがＮＡＮＤフラッシュアレイ１３の所定の領域に格納されている状態を示している。さらに、ＮＡＮＤフラッシュアレイ１３には、管理情報テーブルの最終ページ（Ｐａｇｅ３）の次ページに、最終ページを複写したページ（Ｐａｇｅ３  Ｄｕｐｌｉｃａｔｅｄ）が格納される。【００３１】
尚、図３は、最終ページを複写したページ（Ｐａｇｅ３  Ｄｕｐｌｉｃａｔｅｄ）の書き込みが、予期せぬ電源断等により書き込み不良（図３における“ｘ”が書き込み不良データ）であったとする例として示されている。【００３２】
実施の形態１における管理情報テーブルの書き込み成否の判定は、最終ページ（Ｐａｇｅ３）と最終ページを複写したページ（Ｐａｇｅ３  Ｄｕｐｌｉｃａｔｅｄ）とを比較し、一致すれば正常に書き込まれていると判定し、不一致の場合は書き込み失敗と判定する。尚、最終ページであるか否かは、複写されたページと、消去部２にて消去されたページ（以下、ＡＬＬ（１））とが確認されることで判定される。尚、消去部２にて消去されたブロックは全て“１”の値となるため、ブロック内の各ページも当然“１”となる。【００３３】
図３の場合においては、書き込みが正常に終了した場合は一致するはずの管理情報テーブルの最終ページ（Ｐａｇｅ３）と最終ページを複写したページ（Ｐａｇｅ３  Ｄｕｐｌｉｃａｔｅｄ）とが、書き込み不良データがあることで一致しない。よって不揮発性メモリ装置１の判定部５は、Ｐａｇｅ３が最終ページであると判断することができない（Ｐａｇｅ３  ＤｕｐｌｉｃａｔｅｄのページがＰａｇｅ３の複写なのか、Ｐａｇｅ４なのかが判定不能）。よって最終ページを複写した状態を確認することができないため、判定部５は管理情報テーブルの書き込みが失敗したと判定する。【００３４】
図４に、管理情報テーブルの書き込み途中に予期せぬ電源断等により書込み不良が発生した場合の例を示す。尚、図４はＰａｇｅ２を書き込み中に書込み不良が発生した例であり、また“ｘ”が書き込み不良データを示す。図４の例においても、複写されたデータを確認することができないため、管理情報テーブルの書き込みが失敗したと判定される。【００３５】
次に、本実施の形態に係る不揮発性メモリ装置１の管理情報テーブルの更新処理（既存の管理情報テーブルの消去から新たな管理情報テーブルの書き込みまで）を図５のフローチャートを参照しつつ説明する。尚、書き込む管理情報テーブルはページ単位に分割されており、管理情報テーブルの処理対象のページ番号を変数ｎ（初期値は０）として説明する。【００３６】
まず消去部２は、管理情報テーブルが格納されているブロックを消去する（ステップＳ１）。消去部２は、管理情報テーブルが格納されているブロックに対しＡＬＬ（１）となるようにデータを書き込むことで、既存の管理情報テーブルを消去する。【００３７】
次に、書込み部３は、既に最終ページまで書き込み処理が到達したか（これ以上書き込むページがあるか否か）の確認をする（ステップＳ２）。ここで、書き込むべきページがある場合（ステップＳ２、Ｎｏ）、書込み部３は、ホストマシン２００からＩ／Ｆ部１０を介して１ページ分の管理情報テーブルのデータを取得し、ＤａｔａＲＡＭ１１に書き込む（ステップＳ３）。【００３８】
その後、書込み部３は、Ｗｒｉｔｅコマンドを発行することで、ＤａｔａＲＡＭ１１に格納された１ページ分の管理情報テーブルのデータをＮＡＮＤフラッシュアレイ１３に書き込む（ステップＳ４）。【００３９】
書込み部３は、ＮＡＮＤフラッシュアレイ１３に１ページ分の管理情報テーブルのデータを書き込んだ後、変数ｎに１を加算する（ステップＳ５）。その後、更新処理はステップＳ２の判定処理へ戻り、最終ページが書き込まれるまでステップＳ２からステップＳ５の処理を繰り返す。【００４０】
管理情報テーブルが最終ページまで書き込まれた場合（ステップＳ２、Ｙｅｓ）、書込み部３はＤａｔａＲＡＭ１１に残されている管理情報テーブルの最終ページをＮＡＮＤフラッシュアレイ１３に書き込む（ステップＳ６）。【００４１】
上述の処理によってＮＡＮＤフラッシュアレイ１３に書き込まれた管理情報テーブルの状態は上述の図３となる。図３には、４ページに分割された管理情報テーブルが書き込まれている状態であり（Ｐａｇｅ０からＰａｇｅ３まで）、最終ページ（Ｐａｇｅ３）が上述のステップＳ６によって複写され、最終ページの次のページに書き込まれる（Ｐａｇｅ３  Ｄｕｐｌｉｃａｔｅｄ）。尚、最終ページを複写したページ（Ｐａｇｅ３  Ｄｕｐｌｉｃａｔｅｄ）の更に次のページは消去部２にて消去されているためＡＬＬ（１）のデータとなっている。【００４２】
尚、図３は最終ページを複写したページに不良データが含まれたものとして示しているが、正常に管理情報テーブルが書き込まれた場合、不良データは発生せず、最終ページ（Ｐａｇｅ３）と最終ページを複写したページ（Ｐａｇｅ３  Ｄｕｐｌｉｃａｔｅｄ）は同一のデータとなる。【００４３】
次に、上述のように書き込まれた管理情報テーブルの書き込みの成否を判定する方法について、図６のフローチャートを参照しつつ説明する。尚、判定処理は随時行われてもよいし、またデータが読み出される直前に行われてもよい。【００４４】
取得部４は、ページ番号がｎのページ（変数ｎの初期値は０）とページ番号がｎ＋１のページを取得する（ステップＳ１１）。次に判定部５は、取得部４にて取得された２つのページのデータが一致しているかを比較する（ステップＳ１２）。２つのページが不一致である場合（ステップＳ１２、不一致）、判定部５は、更にページ番号がｎ＋１のページがＡＬＬ（１）であるかを判定する（ステップＳ１３）。ここでＡＬＬ（１）でない場合は（ステップＳ１３、Ｎｏ）、判定部５は変数ｎに１を加算し（ステップＳ１４）、取得部４に対しステップＳ１１の処理を実行させる（ステップＳ１１へ戻る）。【００４５】
変数ｎが最終ページのページ番号まで処理が進み、最終ページと最終ページを複写したページ（ｎ＋１ページ）とのステップＳ１２の比較が一致となった場合（ステップＳ１２、一致）、判定部５は、複写されたページを確認することができたので、正常に管理情報テーブルが書き込まれていると判定する（ステップＳ１５）。【００４６】
他方、判定処理が進み、ステップＳ１２の比較処理が不一致であり（ステップＳ１２、不一致）、且つステップＳ１３におけるページ番号がｎ＋１のページがＡＬＬ（１）である場合は（ステップＳ１３、Ｙｅｓ）、判定処理は最終ページを複写したページを発見することなく書き込み最後のページまで到達してしまったことを意味する。このことは、最終ページを複写したページ（図５におけるＰａｇｅ３  Ｄｕｐｌｉｃａｔｅｄ）の書き込みが失敗していることを意味し、判定部５は、管理情報テーブルの書き込み失敗の判定をする（ステップＳ１６）。【００４７】
ここで、実施の形態１における不揮発性メモリの応用例として、不揮発性メモリおよび磁気ディスク装置を組み合わせたハイブリッドハードドライブ（ディスク装置）の構成を図７に示す。ハイブリッドハードドライブ１００は、磁気ディスク装置１０２および上述の不揮発性メモリ５０の制御を行うコントローラ１０１、磁気ディスク装置１０２および上述の不揮発性メモリ５０を備える。ハイブリッドハードドライブ１００は、不揮発性メモリ５０側の情報管理テーブルの管理を上述に示したようにする。【００４８】
不揮発性メモリ５０は、ＯＳの起動やリジュームに必要なデータがあらかじめ格納されることで、ホストマシン２００は、不揮発性メモリ５０から磁気ディスク装置１０２のスピンアップを待つことなくコントローラ１０１を介してデータを読み出すことができる。よって起動時間の短縮を図ることができる。【００４９】
また、ハイブリッドハードドライブ１００は、不揮発性メモリ５０を磁気ディスク装置１０２のキャッシュ代わりに使用することも可能となる。不揮発性メモリ５０のキャッシュからコントローラ１０１を介してデータが入出力されている間は、磁気ディスク装置１０２はモータを停止することができる。その結果、消費電力の低減を図ることができる。また磁気ディスク装置１０２のモータ回転時間が軽減されるため、磁気ディスク装置１０２の故障率を低減させることができる。【００５０】
尚、上述のように磁気ディスク装置１０２はモータを停止するため、不揮発性メモリ５０のデータを使用する場合は、不揮発性メモリ５０の領域側の情報管理テーブルを磁気ディスク装置１０２に格納することはできない。【００５１】
尚、実施の形態１では、書込み部３は管理情報テーブルを書き込み後、最終ページのみを複写し、書き込んだが、管理情報テーブルの全てのページを複写し、複写した全てのページを書き込むようにしてもよい。その場合、書込み部３は図３の例に対応させると、Ｐａｇｅ０、Ｐａｇｅ０、Ｐａｇｅ１、Ｐａｇｅ１、・・・、Ｐａｇｅ３、Ｐａｇｅ３というように、１つのページに対し２データ分ずつ連続で書き込む。【００５２】
また実施の形態１においては、最終ページを複写し、最終ページを複写したページを判定用のページとしたが、判定用ユニークデータを使用してもよい。その場合、ＮＡＮＤフラッシュアレイ１３の所定の管理領域に予め判定用ユニークデータが記憶されている必要がある。書込み部３は、管理情報テーブルの最終ページを書き込んだ次のページに、記憶された判定用ユニークデータを書き込む。コントローラ１０１（判定部５）は予め記憶された判定用ユニークデータと、この書き込んだ判定用ユニークデータの一致性を判定することで管理情報テーブルの書き込み判定を行う。尚、判定用ユニークデータは使用される時に外部のホストマシン２００から取得するようにしてもよい。【００５３】
（実施の形態２）
実施の形態２においては、管理情報テーブルをＮＡＮＤフラッシュアレイ１３に書き込む前に、書込み部３は、使用するページ数をテーブル容量情報として管理情報テーブルが書き込まれる先頭ページの先頭ワード領域に書き込む。その後、書込み部３はテーブル容量情報を書き込んだワード領域の次の領域から管理情報テーブルを書き込む。判定部５はこのテーブル容量情報を取得し、そのページ数に基づき最終ページ番号を選定し、最終ページ番号および最終ページ番号の次のページ番号に格納されたデータを確認することで、ページの比較処理を行うことなく判定することができる。【００５４】
尚、実施の形態２における不揮発性メモリ装置の機能ブロックおよび構成は、実施の形態１と同一又は相当物であるため、ここでの説明を省略する（図１、図２参照）。【００５５】
次に、実施の形態２の判定処理の概要を説明するため、不揮発性メモリ装置１の管理情報テーブルの格納状態を図８に示す。図８は、Ｐａｇｅ０からＰａｇｅ３までの４ページを使用する管理情報テーブルがＮＡＮＤフラッシュアレイ１３の所定の領域に格納されている状態を示している。さらに、ＮＡＮＤフラッシュアレイ１３には、管理情報テーブルの最終ページ（Ｐａｇｅ３）の次ページに、最終ページを複写したページ（Ｐａｇｅ３  Ｄｕｐｌｉｃａｔｅｄ）が格納される。また、実施の形態１とは異なり、管理情報テーブルが書き込まれる先頭ページの最初のワード領域にテーブル容量情報が格納される。【００５６】
尚、図８は実施の形態２における最終ページを複写したページ（Ｐａｇｅ３  Ｄｕｐｌｉｃａｔｅｄ）の書き込みが、予期せぬ電源断等により書込み不良であったとする例でもあり、実施の形態１と同様、図８における“ｘ”が書込み不良データとする。【００５７】
実施の形態２では、判定部５がテーブル容量情報にて示されたページ（Ｐａｇｅ３）およびその次ページに、データの書き込みを認めることで管理情報テーブルの書込みの成否が判定される。よって、最終ページの次ページに書き込まれるデータは、最終ページを複写したページである必要は無く、ＡＬＬ（１）以外のデータ群であればいかなるものでもよい。【００５８】
また実施の形態２では、たとえテーブル容量情報にて示されたページ（Ｐａｇｅ３）の次ページに書き込み不良データが含まれていても、判定部５は管理情報テーブルのページ数が予めテーブル容量情報によってＰａｇｅ３までと判っているため、管理情報テーブルの書込み自体は正しいと判定する。他方、最終ページ（Ｐａｇｅ３）の次ページがＡＬＬ（１）である場合は、最終ページの書き込み途中で予期せぬ電源断が発生したものと考えられるため、判定部５は管理情報テーブルの書き込みに失敗したものと判定する。【００５９】
図９に、実施の形態２における管理情報テーブルの書き込み途中に予期せぬ電源断等により書込み不良が発生した場合の例を示す。尚、図９は本来Ｐａｇｅ３まである管理情報テーブルが、予期せぬ電源断によりＰａｇｅ２に書き込み不良が発生した例であり、また“ｘ”は、上述同様書込み不良データを示す。【００６０】
図９の例においては、テーブル容量情報に基づく最終ページ番号（正常時はＰａｇｅ３）のページが、ＡＬＬ（１）となっている。よって、コントローラ１０１（判定部５）は、複写されたデータを確認することができないため、管理情報テーブルの書込みが失敗したと判定する。【００６１】
次に、実施の形態２における処理を図１０および図１１のフローチャートを参照しつつ説明する。【００６２】
まず、管理情報テーブルの更新処理について図１０を参照しつつ説明する。コントローラ１０１のファームウェアプログラムに基づいて、消去部２にて管理情報テーブルが格納されているブロックが消去され（ステップＳ１）、その後、書込み部３は管理情報テーブルが書き込まれるページ数を、先頭ページの先頭ワードにテーブル容量情報として書き込む（ステップＳ５１）。以降の処理は、実施の形態１と同様であるためここでの説明を省略する。【００６３】
次に、判定処理について図１１のフローチャートを参照しつつ説明する。取得部４は、ｎ番目のページ（変数ｎの初期値は０なので、Ｐａｇｅ０となる）とｎ＋１番目のページ（Ｐａｇｅ１となる）とを取得し（ステップＳ２１）、判定部５は、取得部４にて取得したｎ番目のページがＡＬＬ（１）であるかを判定する（ステップＳ２２）。ここで、ｎ番目のページがＡＬＬ（１）でない場合（ステップＳ２２、Ｎｏ）、判定部５は、次にｎ＋１番目のページがＡＬＬ（１）であるかを判定する（ステップＳ２３）。ｎ＋１番目のページがＡＬＬ（１）でない場合（ステップＳ２３、Ｎｏ）、判定部５は、ｎが初期値０であるかを判定する（ステップＳ２４）。ここで変数ｎが初期値０である場合（ステップＳ２４、Ｙｅｓ）、取得部４は取得した先頭ページ（Ｐａｇｅ０）を解析し、Ｐａｇｅ０の最初のワード領域に格納されたテーブル容量情報を取得することで、テーブル容量情報に基づき変数ｎに最終ページのページ番号（Ｐａｇｅ３）を代入する（ステップＳ２５）。【００６４】
その後、処理はステップＳ２１へ戻り、取得部４は最終ページおよび最終ページの次ページを取得し（ステップＳ２１）、判定部５は最終ページがＡＬＬ（１）であるか否かの判定（ステップＳ２２）、および最終ページの次ページがＡＬＬ（１）であるか否かの判定（ステップＳ２３）をする。ここで、最終ページがＡＬＬ（１）でない場合（ステップＳ２２、Ｎｏ）、且つ最終ページの次ページがＡＬＬ（１）でない場合（ステップｓ２３、Ｎｏ）、判定部５は、変数ｎが初期値０かを判定する（ステップＳ２４）。現在変数ｎには最終ページのページ番号が格納されているためステップＳ２４は必然的にＮｏとなる。【００６５】
上述のように、最終ページの書き込みがなされており（ステップＳ２２、Ｎｏ）、かつ最終ページの次のページがなされている（ステップｓ２３、Ｎｏ）ので、判定部５は、管理情報テーブルの書き込み成功と判定する（ステップＳ２６）。【００６６】
尚、ステップＳ２２およびステップＳ２３における判定がＹｅｓである場合、判定部５は、管理情報テーブルの書き込み失敗の判定をする（ステップＳ２７）。【００６７】
実施の形態２においては、管理情報テーブルが書き込まれる領域は先頭ページの先頭ワード領域としたが、不揮発性メモリ装置１が管理できる読み書き等の管理が可能な領域であれば、いずれの領域でもよい。【００６８】
また、実施の形態１と同様、実施の形態２の不揮発性メモリ装置をハイブリッドハードドライブに含ませることも可能である。【００６９】
実施の形態２のように、事前にテーブル容量情報を所定の格納領域に格納することで、比較処理がなされることなく管理情報テーブルの書き込み成否が判定されるため、処理効率が向上する。【００７０】
実施の形態によって、情報管理テーブルの書き込み不具合を正しく判別することができるとともに、管理情報テーブルという有効なデータの破壊を最小限に食い止めることができる。
【産業上の利用可能性】
【００７１】
以上説明したように、情報管理テーブルの書込み不具合を正しく判別することができる。
【図１】
2009004674.tif 000003
【図２】
2009004674.tif 000004
【図３】
2009004674.tif 000005
【図４】
2009004674.tif 000006
【図５】
2009004674.tif 000007
【図６】
2009004674.tif 000008
【図７】
2009004674.tif 000009
【図８】
2009004674.tif 000010
【図９】
2009004674.tif 000011
【図１０】
2009004674.tif 000012
【図１１】
2009004674.tif 000013
【図１２】
2009004674.tif 000014
【国際調査報告】
2009004674.tif 000015
2009004674.tif 000016