(57)【要約】【課題】ＪＦＦＳ２（Journaling Flash File System2）の規格に基づいて一つの不揮発性メモリを共有する複数のファイルシステムを構築する際に、その構築時間の短縮を図る。【解決手段】不揮発性メモリ１５０からデータを読み出すにあたり、第１ＣＰＵ１１０がフラッシュメモリ制御部１４０に、ＪＦＦＳ２における管理単位分のデータの読み出しを要求する。フラッシュメモリ制御部１４０は、管理単位分のデータを不揮発性メモリ１５０から読み出してマウント処理用メモリ１３０に書き込む。第１ＣＰＵ１１０及び第２ＣＰＵ１２０は、マウント処理用メモリ１３０から管理単位分のデータを読み出してファイアクセス用の管理情報の生成に必要なデータを対応するファイルシステム用メモリに書き込む。これを不揮発性メモリの先頭から最後まで全データを読み出し終えるまで繰り返す。【選択図】図１
2011059778.tif 000002
【特許請求の範囲】
【請求項１】
ファイルシステムによりファイルにアクセスするためのファイル管理情報を生成するための構造情報が離散的に記憶されている不揮発性メモリにある複数のファイルを管理するファイルシステムを複数構築する情報処理装置であって、
１以上のプロセッサと、
前記構造情報を記憶するための前記複数のファイルシステムそれぞれに対応するファイルシステム用メモリと、
前記ファイルシステムにおける前記不揮発性メモリからのデータの読み出し単位である所定サイズ以上の容量を備えるマウント処理用メモリと、
前記不揮発性メモリのアドレスの先頭から最後まで順に、前記所定サイズ分のデータを逐次読み出して前記マウント処理用メモリに書き込むメモリ制御手段とを備え、
前記複数のファイルシステムを構築する前記１以上のプロセッサ各々は、前記マウント処理用メモリに未取得のデータがある限り読み出して、対応する前記ファイルシステム用メモリに書き込む
ことを特徴とする情報処理装置。
【請求項２】
前記ファイルシステムは、Journaling Flash File System2のことである
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記マウント処理用メモリからのデータの読み出し速度は、前記不揮発性メモリからの読み出し速度よりも速い
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記１以上のプロセッサは、第１プロセッサと第２プロセッサとを含み、
前記ファイルシステム用メモリは、第１のファイルシステムを構築するための第１ファイルシステム用メモリと、第２のファイルシステムを構築するための第２ファイルシステム用メモリとを含み、
前記第１のファイルシステムを構築する第１プロセッサは、前記所定サイズ分のデータを前記メモリ制御手段に要求し、
前記メモリ制御手段は、当該要求を受け付けて、前記所定サイズ分のデータを前記不揮発性メモリから読み出して、前記マウント処理用メモリに書き込み、書き込んだことを前記第１プロセッサに通知し、
前記第１プロセッサは、前記第２プロセッサに所定サイズ分のデータの読み出しを指示するとともに、前記マウント処理用メモリから所定サイズ分のデータを読み出して、前記第１ファイルシステム用メモリに書き込み、
前記第２プロセッサは、前記マウント処理用メモリから前記第１プロセッサが読み出したものと同じ所定サイズ分のデータを読み出して、前記第２ファイルシステム用メモリに書き込み、書き込んだことを前記第１プロセッサに通知し、
前記第１プロセッサは、第１ファイルシステム用メモリへの書き込みが終了し、前記第２プロセッサからの前記通知を受けている場合に、次の所定サイズ分のデータを前記メモリ制御手段に要求する
ことを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記マウント処理用メモリは、前記第１プロセッサ用の出力ポートと、前記第２プロセッサ用の出力ポートとを備え、
前記第１プロセッサ及び前記第２プロセッサは、互いに独立して前記マウント処理用メモリから同じ所定サイズ分のデータを読み出す
ことを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記１以上のプロセッサは、第１プロセッサと第２プロセッサとを含み、
前記ファイルシステム用メモリは、第１のファイルシステムを構築するための第１ファイルシステム用メモリと、第２のファイルシステムを構築するための第２ファイルシステム用メモリとを含み、
前記メモリ制御手段は、前記第１プロセッサ及び前記第２プロセッサから前記所定サイズ分のデータの読み出し要求を受け付けると、前記不揮発性メモリからまだ読み出していない次の所定サイズ分のデータを読み出して、前記マウント処理用メモリに書き込み、前記第１プロセッサ及び前記第２プロセッサに対して次の所定サイズ分のデータの読み出しを指示する
ことを特徴とする請求項３記載の情報処理装置。
【請求項７】
前記不揮発性メモリが保持するデータは暗号化されており、
前記メモリ制御手段は、更に、
読み出した暗号化データを復号して前記マウント処理用メモリに書き込む
ことを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記メモリ制御手段は、更に、
読み出したデータが改竄されているか否かを検出する改竄検出部を備え、
前記改竄検出部が改竄があったことを検出すると、前記第１ＣＰＵ及び前記第２ＣＰＵに対して、改竄があった所定サイズ分のデータを通知し、
前記第１ＣＰＵ及び前記第２ＣＰＵは、改竄があったと通知された所定サイズ分のデータを無効化する
ことを特徴とする請求項６記載の情報処理装置。
【請求項９】
ファイルシステムによりファイルにアクセスするためのファイル管理情報を生成するための構造情報が離散的に記憶されている不揮発性メモリにある複数のファイルを管理するファイルシステムを複数構築するためのファイルシステムマウント処理方法であって、
前記複数のファイルシステムを構築する１以上のプロセッサからの要求を受けて、前記ファイルシステムにおける前記不揮発性メモリからのデータの読み出し単位である所定サイズ分のデータを前記不揮発性メモリから読み出し、マウント処理用メモリに書き込む第１書込ステップと、
前記複数のファイルシステムを構築する１以上のプロセッサに対して前記所定サイズ分のデータの書き込みが終了したことを通知する第１通知ステップと、
前記１以上のプロセッサが前記マウント処理用メモリから所定サイズ分のデータを読み出して、複数のファイルシステムが対応する複数のファイルシステム用メモリに書き込む第２書込ステップと、
前記１以上のプロセッサが前記第２書込ステップにおけるファイルシステム用メモリへの書き込みが終了し、次の所定サイズ分のデータを要求する要求ステップとを含む
ことを特徴とするファイルシステムマウント処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特にファイルシステムの構築手法に関する。
【背景技術】
【０００２】
コンピュータにおいて、各種データへのアクセス管理のためのファイルシステムには、幾つかの種類があり、その中に、Journaling Flash File System2（以下、「ＪＦＦＳ２」と記載する。）というものがある。
ＪＦＦＳ２において、管理対象となるファイルが記憶されている不揮発性メモリ内には、ファイルシステムによるファイルへのアクセスを実現するための管理情報あるいは管理テーブルと言われる情報を生成するための構造情報が集約的に予め定められた領域に記憶されておらず、離散的に記憶されている。
【０００３】
このため、ＪＦＦＳ２の場合、ファイルシステム用の管理情報を生成するためには、プロセッサは、ファイルが記憶されている不揮発性メモリの最初から最後までを一度全て読み出す必要がある。
ところで、情報処理装置に複数のプロセッサを搭載し、各プロセッサ毎に、同じ不揮発性メモリを共有メモリとして、当該共有メモリ内のファイルに関するファイルシステムを構築することがある。
【０００４】
１つの共有メモリを共用する複数のファイルシステムの運用や構築手法については、特許文献１及び特許文献２に記載されるものがある。
特許文献１には、複数のＣＰＵ（Central Processing Unit）に対応するようにファイルシステムが既に構築されている状態のファイルシステム制御装置における各ＣＰＵの記録装置へのアクセスの手法が開示されている。特許文献１では、各ＣＰＵはファイルシステムコントローラにより各ＣＰＵに割り当てられた優先度に従って記録装置へのアクセスが制御され、一つのＣＰＵが記録装置からファイルを読み出しているときには、他のＣＰＵは記録装置からファイルを読み出せないように制御されている。
【０００５】
特許文献２には、複数のＣＰＵでファイルシステムを構築する一手法を開示している。特許文献２において開示されている手法は複数のファイルシステムを構築するのではなく、主記憶装置に記憶されているデータに関するファイルシステム用の管理テーブルを１つ構築し、その管理テーブルを複数のＣＰＵで時分割で共用するというものである。
なお、両特許文献には、それぞれのファイルシステムが如何なる規格に従うものであるかについての記載はない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２３４７９４号公報
【特許文献２】特開２００６−１５５４６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、特許文献１のように複数のファイルシステムが構築されている状態を形成する際には、全てのプロセッサが共有メモリから最初から最後までの全データを読み出さなくてはならないため、複数のファイルシステムの構築を完了するのに時間がかかるという問題がある。
複数のファイルシステムの構築を完了するのに時間がかかるという問題は、近年の不揮発性メモリの大容量化による読み出すべきデータの増大化や、不揮発性メモリからのデータの読み出し速度が遅いという不揮発性メモリの性能に依るところが大きい。
【０００８】
特許文献２に示されるように複数のＣＰＵでファイルシステム用の管理テーブルを共用すれば、各ＣＰＵに管理テーブルを用意する必要がないため、複数のファイルシステムを構築するための時間がかかるという問題は発生しない。しかし、特許文献２の場合、各ＣＰＵは管理テーブルを例えば時分割で共用しなければならないため、各ＣＰＵが管理テーブルを保持する場合に比して装置全体としての自由度が低下することになるので、できれば特許文献２のように管理テーブルを共用するという手法をとらず、複数のファイルシステムそれぞれで管理テーブルを生成することが望ましい。
【０００９】
そこで、上記問題を解決すべく、複数のファイルシステムを構築するに当たり従来よりも総合的に見て、複数のファイルシステム全てを構築するための時間を短縮できる情報処理装置、及びファイルシステムのマウント方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明に係る情報処理装置は、ファイルシステムによりファイルにアクセスするためのファイル管理情報を生成するための構造情報が離散的に記憶されている不揮発性メモリにある複数のファイルを管理するファイルシステムを複数構築する情報処理装置であって、１以上のプロセッサと、前記構造情報を記憶するための前記複数のファイルシステムそれぞれに対応するファイルシステム用メモリと、前記ファイルシステムにおける前記不揮発性メモリからのデータの読み出し単位である所定サイズ以上の容量を備えるマウント処理用メモリと、前記不揮発性メモリのアドレスの先頭から最後まで順に、前記所定サイズ分のデータを逐次読み出して前記マウント処理用メモリに書き込むメモリ制御手段とを備え、前記複数のファイルシステムを構築する前記１以上のプロセッサ各々は、前記マウント処理用メモリに未取得のデータがある限り読み出して、対応する前記ファイルシステム用メモリに書き込むことを特徴としている。
【００１１】
また、本発明に係るファイルシステムマウント処理方法は、ファイルシステムによりファイルにアクセスするためのファイル管理情報を生成するための構造情報が離散的に記憶されている不揮発性メモリにある複数のファイルを管理するファイルシステムを複数構築するためのファイルシステムマウント処理方法であって、前記複数のファイルシステムを構築する１以上のプロセッサからの要求を受けて、前記ファイルシステムにおける前記不揮発性メモリからのデータの読み出し単位である所定サイズ分のデータを前記不揮発性メモリから読み出し、マウント処理用メモリに書き込む第１書込ステップと、前記複数のファイルシステムを構築する１以上のプロセッサに対して前記所定サイズ分のデータの書き込みが終了したことを通知する第１通知ステップと、前記１以上のプロセッサが前記マウント処理用メモリから所定サイズ分のデータを読み出して、複数のファイルシステムが対応する複数のファイルシステム用メモリに書き込む第２書込ステップと、前記１以上のプロセッサが前記第２書込ステップにおけるファイルシステム用メモリへの書き込みが終了し、次の所定サイズ分のデータを要求する要求ステップとを含むことを特徴としている。
【発明の効果】
【００１２】
上述のような構成によって、不揮発性メモリから読み出されたデータは、一旦マウント処理用メモリに書き込まれ、構築すべき複数のファイルシステムを構築する各プロセッサは、不揮発性メモリではなく、マウント処理用メモリから読み出すことになるので、読み出し速度の遅い不揮発性メモリからの読み出しは構築すべき複数のファイルシステムの分だけではなく、１回で済むため、複数のファイルシステムの構築の完了までの時間を従来よりも短縮できる。
【００１３】
なお、以下に記載する実施の形態において、メモリ制御手段は、実施の形態１の場合、フラッシュメモリ制御部１４０が該当し、実施の形態２〜４の場合、フラッシュメモリ制御部１４０と各種ＤＭＡコントローラとの組み合わせが該当する。
また、前記ファイルシステムは、Journaling Flash File System2のことであることとしてもよい。
【００１４】
これにより、本発明に係る情報処理装置は、ＪＦＦＳ２の規格に応じたファイルシステムを構築できる。
また、前記マウント処理用メモリからのデータの読み出し速度は、前記不揮発性メモリからの読み出し速度よりも速いこととしてもよい。
これにより、より速く複数のファイルシステムを構築することができる。
【００１５】
また、前記１以上のプロセッサは、第１プロセッサと第２プロセッサとを含み、前記ファイルシステム用メモリは、第１のファイルシステムを構築するための第１ファイルシステム用メモリと、第２のファイルシステムを構築するための第２ファイルシステム用メモリとを含み、前記第１のファイルシステムを構築する第１プロセッサは、前記所定サイズ分のデータを前記メモリ制御手段に要求し、前記メモリ制御手段は、当該要求を受け付けて、前記所定サイズ分のデータを前記不揮発性メモリから読み出して、前記マウント処理用メモリに書き込み、書き込んだことを前記第１プロセッサに通知し、前記第１プロセッサは、前記第２プロセッサに所定サイズ分のデータの読み出しを指示するとともに、前記マウント処理用メモリから所定サイズ分のデータを読み出して、前記第１ファイルシステム用メモリに書き込み、前記第２プロセッサは、前記マウント処理用メモリから前記第１プロセッサが読み出したものと同じ所定サイズ分のデータを読み出して、前記第２ファイルシステム用メモリに書き込み、書き込んだことを前記第１プロセッサに通知し、前記第１プロセッサは、第１ファイルシステム用メモリへの書き込みが終了し、前記第２プロセッサからの前記通知を受けている場合に、次の所定サイズ分のデータを前記メモリ制御手段に要求することとしてもよい。
【００１６】
これにより、第１プロセッサが主体となって複数のプロセッサでのファイルシステムの構築を実現できる。
また、前記マウント処理用メモリは、前記第１プロセッサ用の出力ポートと、前記第２プロセッサ用の出力ポートとを備え、前記第１プロセッサ及び前記第２プロセッサは、互いに独立して前記マウント処理用メモリから同じ所定サイズ分のデータを読み出すこととしてもよい。
【００１７】
これにより、出力ポートが構築するファイルシステムの個数よりも少ない場合に比べて、より速く複数のファイルシステムを構築することができる。
また、前記１以上のプロセッサは、第１プロセッサと第２プロセッサとを含み、前記ファイルシステム用メモリは、第１のファイルシステムを構築するための第１ファイルシステム用メモリと、第２のファイルシステムを構築するための第２ファイルシステム用メモリとを含み、前記メモリ制御手段は、前記第１プロセッサ及び前記第２プロセッサから前記所定サイズ分のデータの読み出し要求を受け付けると、前記不揮発性メモリからまだ読み出していない次の所定サイズ分のデータを読み出して、前記マウント処理用メモリに書き込み、前記第１プロセッサ及び前記第２プロセッサに対して次の所定サイズ分のデータの読み出しを指示することとしてもよい。
【００１８】
これにより、情報処理装置内に、ＤＭＡ（Direct Memory Access）制御的な実装環境を構築することができる。
また、前記不揮発性メモリが保持するデータは暗号化されており、前記メモリ制御手段は、更に、読み出した暗号化データを復号して前記マウント処理用メモリに書き込むこととしてもよい。
【００１９】
これにより、メモリ制御手段が、復号処理を実行し、マウント処理用メモリには、復号されたデータが書き込まれるので、各プロセッサが各々で復号処理を実行する必要がなくなる。
また、前記メモリ制御手段は、更に、読み出したデータが改竄されているか否かを検出する改竄検出部を備え、前記改竄検出部が改竄があったことを検出すると、前記第１ＣＰＵ及び前記第２ＣＰＵに対して、改竄があった所定サイズ分のデータを通知し、前記第１ＣＰＵ及び前記第２ＣＰＵは、改竄があったと通知された所定サイズ分のデータを無効化することとしてもよい。
【００２０】
これにより、メモリ制御手段が、改竄検出処理を実行し、マウント処理用メモリには、復号されたデータが書き込まれるので、各プロセッサが各々で復号処理を実行する必要がなくなる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態１に係る情報処理装置の機能構成を示す機能ブロック図である。
【図２】不揮発性メモリの構成を説明するための図である。
【図３】nodeがDIRENTである場合のデータ構成例を示すデータ概念図である。
【図４】nodeがINODEである場合のデータ構成例を示すデータ概念図である。
【図５】nodeがCLEANMARKである場合のデータ構成例を示すデータ概念図である。
【図６】不揮発性メモリに格納されているデータの一具体例を示す図である。
【図７】図６にあるデータを読み出していくことで、各ＣＰＵが生成するファイル管理情報をツリー構造で示したものである。
【図８】本発明の実施の形態１に係る情報処理装置の動作を示すフローチャートである。
【図９】実施の形態２に係る情報処理装置の機能構成を示す機能ブロック図である。
【図１０】実施の形態２に係るＤＭＡコントローラの機能構成を示す機能ブロック図である。
【図１１】実施の形態２に係る情報処理装置の動作を示すフローチャートである。
【図１２】実施の形態３に係る情報処理装置の機能構成を示す機能ブロック図である。
【図１３】実施の形態３に係る情報処理装置の復号処理ＤＭＡコントローラの機能構成を示す機能ブロック図である。
【図１４】実施の形態３に係る情報処理装置の動作を示すフローチャートである。
【図１５】実施の形態４に係る情報処理装置の機能構成を示す機能ブロック図である。
【図１６】実施の形態４に係る情報処理装置の改竄検出ＤＭＡコントローラの機能構成を示す機能ブロック図である。
【図１７】実施の形態４に係る情報処理装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の一実施形態である情報処理装置について図面を用いて説明する。
＜実施の形態１＞
＜構成＞
図１は、実施の形態１に係る情報処理装置１００の機能構成を示した機能ブロック図である。
【００２３】
図１に示すように、情報処理装置１００は、第１ＣＰＵ１１０と、第１ファイルシステム用メモリ１１１と、第２ＣＰＵ１２０と、第２ファイルシステム用メモリ１２１と、マウント処理用メモリ１３０と、フラッシュメモリ制御部１４０と、不揮発性メモリ１５０とを含んで構成される。
図１中の破線枠で示す二つの囲いは、それぞれ、独立した処理体系を示しており、各ＣＰＵは異なる処理体系へのファイルシステム用メモリへのアクセスはできないようになっている。
【００２４】
第１ＣＰＵ１１０は、ＪＦＦＳ２規格に基づいてファイルにアクセスするための第１の管理情報を生成し、生成した管理情報に基づく不揮発性メモリ１５０に格納されているファイルへのアクセスを実行する機能を有する。以下、ＪＦＦＳ２規格に基づくファイルにアクセスするための管理情報を生成することをファイルシステムを構築する、もしくは、ＪＦＦＳ２を構築すると記載することもある。
【００２５】
本実施の形態１において第１ＣＰＵ１１０には、ＪＦＦＳ２の構築に当たっての他のＣＰＵに対するプライオリティが設定されており、第１ＣＰＵ１１０が主体的にフラッシュメモリ制御部１４０に対して、erase block単位分（例えば、１２８ｋＢ）のデータの読み出しを指示し、また、その他のＣＰＵに対して、マウント処理用メモリ１３０からのデータの読み出しを指示する。また第１ＣＰＵ１１０には、その他のＣＰＵ、つまり、図１の場合第２ＣＰＵ１２０に関する情報を保持しており、第２ＣＰＵ１２０もファイルシステムを構築するプロセッサであることを認識している。
【００２６】
具体的には、第１ＣＰＵ１１０は、第１のＪＦＦＳ２を構築するために、フラッシュメモリ制御部１４０に対して、ＪＦＦＳ２規格におけるデータの読み出し、及び、書き込みの単位となる、erase block単位分のデータを要求する。そして当該要求に応じてマウント処理用メモリ１３０に記憶されたデータを読み出し、管理情報の生成のために必要なデータだけを抜き出して、第１ファイルシステム用メモリ１１１に記憶する。このとき、第１ＣＰＵ１１０は、新たなデータがマウント処理用メモリ１３０に書き込まれていることを第２ＣＰＵ１２０に通知する。そして、第１ファイルシステム用メモリ１１１への書き込みを終了し、且つ、第２ＣＰＵ１２０からもデータの読み出しを終了したことを示す通知を受けると、第１ＣＰＵ１１０は、次のerase block単位分のデータをフラッシュメモリ制御部１４０に要求する。第１ＣＰＵ１１０は、このerase block単位分のデータの読み出しを、不揮発性メモリ１５０の先頭から最後まで実行することで第１のＪＦＦＳ２を構築するために必要な全ての情報を獲得し、第１のＪＦＦＳ２を構築する。
【００２７】
第１ファイルシステム用メモリ１１１は、第１のＪＦＦＳ２の管理情報を構築するために必要な情報を記憶し、生成された管理情報を記憶する機能を有する。
第２ＣＰＵ１２０は、ＪＦＦＳ２規格に基づいてファイルにアクセスするための第２の管理情報を生成し、生成した管理情報に基づく不揮発性メモリに格納されているファイルへのアクセスを実行する機能を有する。なお、第１の管理情報並びに第２の管理情報は共に同じものになる。
【００２８】
第２ＣＰＵ１２０は、第１ＣＰＵ１１０からの、マウント処理用メモリ１３０に次の読み出すべきerase block単位分のデータがあるという通知を受けて、マウント処理用メモリ１３０からerase block単位分のデータを読み出し、管理情報の生成のために必要なデータだけを抜き出して、第２ファイルシステム用メモリ１２１に記憶する機能を有する。また、第２ＣＰＵ１２０は、第２ファイルシステム用メモリ１２１に必要なデータを書き込むと、第１ＣＰＵ１１０にマウント処理メモリ１３０から、データを読み出し終わり、次のデータを要求する信号を送信する機能も有する。
【００２９】
第２ファイルシステム用メモリ１２１は、第２のＪＦＦＳ２の管理情報を構築するために必要な情報を記憶し、生成された管理情報を記憶する機能を有する。
マウント処理用メモリ１３０は、少なくともerase block単位分のデータを格納するに足る容量を備えたＤＲＡＭ（Dynamic Random Access Memory）である。マウント処理用メモリ１３０からのデータの読み出し速度は、不揮発性メモリ１５０からのデータの読み出し速度よりも速く、およそ、５〜２０倍程度になる。
【００３０】
フラッシュメモリ制御部１４０は、第１ＣＰＵ１１０からの読み出し要求を受けて、不揮発性メモリ１５０からまだ読み出していない次のerase block単位分のデータを読み出して、マウント処理用メモリ１３０に書き込む機能を有する。
不揮発性メモリ１５０は、様々なファイルを記憶するＮＡＮＤ型のフラッシュメモリである。第１ＣＰＵ１１０及び第２ＣＰＵ１２０は、この様々なファイルに関する管理情報を生成することになる。
＜データ＞
以下に、ＪＦＦＳ２規格における不揮発性メモリ１５０の中に格納されているデータ構成について説明する。
【００３１】
図２は、不揮発性メモリ１５０の中のデータ格納状態を定義したデータ概念図である。
図２の上段に示すように、不揮発性メモリ１５０からの読み出し、不揮発性メモリ１５０への書き込みは、erase blockと呼称される管理単位で実行される。各erase blockは、固定長であり、基本的に１２８ｋＢという容量に設定されている。各erase blockは、図２の中段に示すように、１以上のnodeと呼ばれるデータブロックを含む。図２の上段に示すerase blockは単に不揮発性メモリ１５０の記憶領域がＪＦＦＳ２の管理単位で分割されている状態を示したに過ぎないが、nodeは、実際のディレクトリやファイルの情報を示している。
【００３２】
erase blockが固定長であるのに対し、各nodeのデータ量は可変長である。また、１つのnodeが複数のerase blockを跨ってはいけない。erase block単位以上のファイルについては、複数の同じinoを持つnodeに分割される。
nodeには、３つの種別があり、それぞれDIRENT、INODE、CLEANMARKという呼称が規定されている。
【００３３】
いずれのnodeもヘッダ構成は共通しており、図２の下段に示すように、ヘッダは、magic、nodetype、totlen、hdr_crcとから構成される。
magicは、マジックナンバ、即ち、そのファイルシステムの種別を表す識別子のことであり、ファイルシステムの種類に固有の番号を示している。
nodetypeは、そのnodeが上述したDIRENT、INODE、CLEANMARKのうちのいずれの種別であるかを示す情報である。
【００３４】
totlenは、total lengthの略であり、そのnode全体のデータ長を示している。
hdr_crcは、header crcの略であり、ヘッダ部分に対するcrc（cyclic redundancy check）を示しており、そのnodeがＣＰＵにより読み出された際に、ＣＰＵがヘッダ部分に誤りがあるかどうかを検出するのに用いられる。
以下、DIRENT、INODE、CLEANMARKそれぞれについて説明する。
【００３５】
まず、DIRENTは、ディレクトリエントリ、即ち、当該nodeによって特定される、ディレクトリ、ないし、ファイルの構造情報が規定されるnodeである。本実施の形態において、第１ＣＰＵ１１０及び第２ＣＰＵ１２０がerase block分のデータを読み出して第１ファイルシステム用メモリ１１１及び第２システム用メモリ１２１に書き込んでいくのは、このDIRENTの情報である。DIRENTは、ディレクトリ、ファイルのいずれを規定する場合であっても、必ず一つ以上のINODEと対応している。一つのINODEは、一つのディレクトリ、もしくは、ファイルの情報しか保持せず、DIRENTはそのINODEの構造情報しか保持していないため、不揮発性メモリ１５０には、管理情報を生成するための情報が離散的に記憶されていると言える。
【００３６】
図３に示すようにDIRENTの場合、そのnodeにおけるnodetypeは、DIRENTであることを示す情報となり、ヘッダ部分に後続する形で、nodeには、pino、ino、nameが含まれる。
pinoは、parent inode の略であり、そのDIRENTが対応するINODEの親のINODEの番号を示す情報である。
inoは、inodeの略であり、そのDIRENTが対応するINODEの番号を示す情報である。当該情報があることにより、実際のファイルアクセスの際の実データのあるINODEを特定することができる。
【００３７】
nameは、inoで示されるINODEのディレクトリ名もしくはファイル名を示す情報である。
図示していないが、DIRENTを規定するnodeの場合、このほかに、nameのデータ長、nodeのcrcなどの情報が含まれる。
次に図４をもって、INODEについて説明する。INODEは、そのnodeがファイルの実データを保持していることを示すタイプのnodeである。なお、DIRENTがディレクトリを規定するものであっても対応するINODEは存在するが、その実データは空になる。
【００３８】
INODEの場合、ヘッダ部分のほか、ヘッダに後続する形で、nodeには、ino、dsize、dataが含まれる。当該INODEの情報（データサイズや更新日時など）もまたファイルシステムの構築に用いられる。
INODEの場合には、nodetypeは、そのnodeがINODEであることを示す情報になる。
inoとは、そのnodeがどのINODEであるかを示す番号のことである。当該情報があることにより、DIRENTとの対応がとれ、実際のファイルアクセスの際に利用される。
【００３９】
dsizeは、実データのデータサイズを示す情報である。INODEの場合、ＣＰＵが実データを読み出す場合に、当該dsizeで規定されるデータサイズの情報があることで、所望の実データを読み出せたことを確認することができる。なお、INODEのエンドは、次のnodeのヘッダによって特定されてもよい。
また、dataは、そのファイルの実データのことである。前述の通り、INODEがディレクトリに対応するINODEである場合には、data部分は、空になる。
【００４０】
図示していないが、INODEには、そのほかに、ディレクトリやファイルが更新された時間や、生成された時間などの情報を含まれる。
最後に図５をもって、CLEANMARKについて説明する。CLEANMARKは、そのnodeが現在利用されていないことを示しているタイプのnodeである。
nodeタイプがCLEANMARKである場合には、magic、nodetype、totlen、hdr_crcとのみを含み、nodetypeがCLEANMARKであることを示す情報になっている。nodetypeがCLEANMARKであることを示す情報である場合に、nodeを読み取ったＣＰＵはそのnodeが現在利用されていないnodeであることを認識することができる。
【００４１】
図６は、不揮発性メモリ１５０における一具体例を示している。図６にあるように、例えば、DIRENT６０１は、ディレクトリ名が「DIR」であり、そのpinoは「１」、inoは「２」となっている。このことから、「DIR」は、「／」の配下にあることがわかる。一方、DIRENT６０２のpinoは「２」、inoは「５」、nameは、「file-A」となっている。このことから、当該DIRENT６０２が対応するINODEは、INODE６０３であり、pinoが「２」であることから、DIRENT６０１で示される「DIR」の配下にあることがわかる。なお、図６には示していないが、INODEには、それぞれ実データがdata部分にある。
【００４２】
図６に示すようなデータが不揮発性メモリ１５０に格納されていたとして、その場合に生成される管理情報をツリー構造で概念的に示したのが、図７である。第１ＣＰＵ１１０及び第２ＣＰＵ１２０は、不揮発性メモリ１５０の最初から最後までデータを読み出し、その中のDIRENTの情報から、図７に示すような管理情報を生成し、これを以ってファイルシステムの構築の完了とする。
＜動作＞
以下、本実施の形態１に係る情報処理装置１００の動作を図８に示すフローチャートを用いて説明する。ここでは、ファイルシステムの構築に当たっての、データの読み出し手法についてを主に説明する。
【００４３】
図８は、erase block単位分のデータを第１ＣＰＵ１１０及び第２ＣＰＵ１２０が読み出す際の動作を示したフローチャートであり、情報処理装置１００は、図８に示す動作を、不揮発性メモリ１５０に格納されているデータを、その先頭から最後まで読み出すまで繰り返す。
図８に示すように、第１ＣＰＵ１１０は、ＪＦＦＳ管理単位分、即ちerase block単位分のデータの読み出しをフラッシュメモリ制御部１４０に要求する（ステップＳ８０１）。
【００４４】
フラッシュメモリ制御部１４０は、第１ＣＰＵ１１０からの読み出し要求を受けて、前回読み出したデータの次のerase block単位分のデータを不揮発性メモリ１５０から読み出し、読み出したerase block単位分のデータをマウント処理用メモリ１３０に書き込む（ステップＳ８０２）。次のerase block単位分のデータを読み出すには、前回読み出したerase block単位分のデータのあるアドレスからerase block単位分だけ先のアドレスにあるデータを読み出す。初回時には、先頭からerase block単位分のデータを読み出す。
【００４５】
erase block単位分のデータをマウント処理用メモリ１３０に書き込むと、フラッシュメモリ制御部１４０は、その旨を第１ＣＰＵ１１０に通知する（ステップＳ８０３）。
当該通知を受けた第１ＣＰＵ１１０は、第２ＣＰＵ１２０に対して、erase block単位分のデータの読み出しを指示する（ステップＳ８０４）。
そして、第１ＣＰＵ１１０は、マウント処理用メモリ１３０からerase block単位分のデータを読み出す（ステップＳ８０５）。
【００４６】
また、第１ＣＰＵ１１０から、erase block単位分のデータの読み出しの指示を受けた第２ＣＰＵ１２０は、マウント処理用メモリ１３０からerase block単位分のデータを読み出す（ステップＳ８０６）。
第１ＣＰＵ１１０は、読み出したerase block単位分のデータから、nodeを抽出し、第１ファイルシステム用メモリ１１１にファイルシステムの一部分を構築する（ステップＳ８０７）。
【００４７】
また、第２ＣＰＵ１２０は、読み出したerase block単位分のデータから、nodeを抽出し、第２ファイルシステム用メモリ１２１にファイルシステムの一部分を構築する（ステップＳ８０８）。
第２ＣＰＵ１２０は、第２ファイルシステム用メモリ１２１に必要なデータを書き込み終えると、書込みを終えたことを通知することで（ステップＳ８０９）、第１ＣＰＵ１１０に対して次のerase block単位分のデータを要求する。
【００４８】
当該通知を受けて、そして、第１ＣＰＵも必要なデータを第１ファイルシステム用メモリ１１１に書き込み終えると、ステップＳ８０１に戻る。
全てのデータを不揮発性メモリ１５０から読み出し終え、必要なデータをファイルシステム用メモリに書き終えた各ＣＰＵは、書き込んだ情報に基づいて、図７に示すようなファイルツリーを構築する。なお、ファイルシステムの構築手法については、ＪＦＦＳ２の規格に従うものとして、ここではその詳細は省略する。なお、不揮発性メモリ１５０は予め自身の全容量に関する情報を保持しており、第１ＣＰＵ１１０は、当該全容量分のデータを読み出したかどうかで全データを読み出したか否かを判定する。
【００４９】
上述したように、ファイルシステムの構築のために複数のＣＰＵと不揮発性メモリとの間にマウント処理用メモリ１３０を設け、各ＣＰＵがマウント処理用メモリ１３０からデータを読み出す構成にしたことで、不揮発性メモリ１５０からの全データの読み出し回数を１回に減じている。即ち、従来どおりに実行した場合、第１ＣＰＵ１１０と第２ＣＰＵ１２０との両方のＣＰＵがそれぞれで不揮発性メモリ１５０からの全データの読み出しを行うことになり、全データの読み出し回数は２回になるところを１回に減じている。マウント処理用メモリ１３０からの読み出し速度が不揮発性メモリ１５０からの読み出し速度に比してかなり速くなる（実質的には、およそ５〜２０倍程度になる）ように、マウント処理用メモリ１３０として使用するメモリを選択するので、不揮発性メモリ１５０から２回全データを読み出す場合よりも、２つのファイルシステムを構築完了するまでの総時間を短縮できる。
＜実施の形態２＞
上記実施の形態１においては、第１ＣＰＵ１１０が主体となって不揮発性メモリ１５０からフラッシュメモリ制御部１４０を介してデータを読み出し、それを第２ＣＰＵ１２０に通知することで、両ＣＰＵによるデータの読み出しを実現した。本実施の形態２においては、それとは別の読み出し手法、即ちＤＭＡ（Direct Memory Access）コントローラを用いる手法を開示する。なお、本実施の形態２においては、主に実施の形態１とは異なる構成について説明していく。
＜構成＞
図９は、実施の形態２に係る情報処理装置２００の機能構成を示す機能ブロック図である。図９に示すように情報処理装置２００は、第１ＣＰＵ２１０と、第１ファイルシステム用メモリ２１１と、第２ＣＰＵ２２０と、第２ファイルシステム用メモリ２２１と、マウント処理用メモリ２３０と、フラッシュメモリ制御部２４０と、不揮発性メモリ２５０と、ＤＭＡコントローラ２６０とを含んで構成される。
【００５０】
実施の形態１では、フラッシュメモリ制御部１４０に対して次のerase block単位分のデータを要求したのは第１ＣＰＵ１１０であったが、本実施の形態では、ＤＭＡコントローラ２６０が行う仕様となっている。
第１ＣＰＵ２１０は、ＤＭＡコントローラ２６０に、erase blockのサイズなどの情報を設定し、ＤＭＡコントローラ２６０を起動する機能を有する。また、第１ＣＰＵ２１０は、ＤＭＡコントローラ２６０からのフラッシュメモリ制御部２４０からマウント処理用メモリ２３０への転送の完了を示す割込みを受けてerase block単位分のデータをマウント処理用メモリ２３０から読み出す機能と、マウント処理用メモリ２３０から読み出したerase block単位分のデータからnodeを抽出し、第１ファイルシステム用メモリ２１１にファイルシステムの一部分を構築する。その後に、第２ＣＰＵ２２０からの次のerase block単位分のデータの要求を受け付けて、次のerase block単位分のデータの転送をＤＭＡコントローラ２６０に設定・起動する機能を有する。
【００５１】
第２ＣＰＵ２２０は、第２ＣＰＵ１２０とは異なり、ＤＭＡコントローラ２６０からのフラッシュメモリ制御部２４０からマウント処理用メモリ２３０への転送の完了を示す割り込みを受け付けてマウント処理用メモリ２３０からerase block単位分のデータを読み出す機能と、erase block単位分のデータからnodeを抽出し、第２ファイルシステムメモリ２２１にファイルシステムの一部分を構築した後には、第１ＣＰＵ２１０に対して書き込みが完了したことを通知することで、次のerase block単位分のデータを要求する機能とを有する。
【００５２】
マウント処理用メモリ２３０には、マウント処理用メモリ１３０とは異なり、フラッシュメモリ制御部２４０ではなくＤＭＡコントローラ２６０によってデータが書き込まれる。
フラッシュメモリ制御部２４０は、フラッシュメモリ制御部１４０とは異なり、ＤＭＡコントローラ２６０からの指示に従い不揮発性メモリ２５０からのerase block単位分のデータの読み出しを実行し、読み出したデータをＤＭＡコントローラ２６０に伝送する機能を有する。
【００５３】
ＤＭＡコントローラ２６０は、図１０に示すように設定レジスタ部１０００を含み、設定レジスタ部１０００は、読み出し開始アドレスレジスタ１００１と、書き込み開始アドレスレジスタ１００２と、転送サイズレジスタ１００３と、ＤＭＡ起動レジスタ１００４とを含む。
読み出し開始アドレスレジスタ１００１は、不揮発性メモリ２５０の読み出すべきデータのアドレスが格納される。その保持するアドレスは、第１ＣＰＵ２１０により設定され、第１ＣＰＵ２１０からerase block単位分のデータの要求がきて、フラッシュメモリ制御部２４０がerase block単位分のデータをマウント処理用メモリ２３０に書き込んだ後に、転送サイズレジスタ１００３に設定されているデータ長だけ先のアドレス位置に変更される。読み出し開始アドレスレジスタ１００１に格納されるアドレスの初期値は、不揮発性メモリ２５０の先頭アドレスに設定されている。
【００５４】
書き込み開始アドレスレジスタ１００２は、マウント処理用メモリ２３０にerase block単位分のデータを書き込むアドレスを保持する。基本的に本実施の形態２の場合、そのアドレス位置は固定である。
転送サイズレジスタ１００３は、不揮発性メモリ２５０から読み出し、マウント処理用メモリ２３０に書き込むerase blockのデータ長を保持する。ＪＦＦＳ２の場合、基本的にerase block単位分のデータは、１２８ｋＢ長となるが、情報処理装置によっては変更が可能（例えば２５６ｋＢ）であり、転送サイズレジスタ１００３には、そのときのerase blockのデータ長が保持されることとなる。なお、erase blockの単位は、例えば、不揮発性メモリからの読み出し効率や、不揮発性メモリとマウント処理用メモリ間の通信の通信レートなどによって定まるものであり、第１ＣＰＵ２１０によって設定される。
【００５５】
ＤＭＡ起動レジスタ１００４は、ファイルシステムの構築を実行する場合に、その保持する情報がファイルシステムの構築を実行する旨を示す情報（例えば、「１」）に書き換えられることで、ＤＭＡコントローラ２６０の読み出し、書き込み処理が実行される。不揮発性メモリ２５０から全データの読み出しが終了した場合には、ファイルシステムの構築が実行されたことを示す情報（例えば、「０」）に書き換えられる。
【００５６】
ＤＭＡコントローラ２６０は、第１ＣＰＵ２１０及び第２ＣＰＵ２２０の両方からerase block単位分のデータの読み出し要求を受け付けて、フラッシュメモリ制御部２４０に対して、読み出し開始アドレスレジスタ１００１に設定されているアドレスからerase block単位分のデータの読み出しを要求する機能と、フラッシュメモリ制御部２４０から伝送されたデータをマウント処理用メモリの書き込み開始アドレスレジスタ１００２に設定されているアドレスに書き込む機能と、書き込んだ後に、読み出し開始アドレスレジスタ１００１のアドレスを転送サイズレジスタ１００３に設定されているデータサイズ分だけ先のアドレスに更新する機能とを有する。
＜動作＞
以下、情報処理装置２００の動作について図１１のフローチャートを用いて説明する。
【００５７】
図１１は、erase block単位分のデータを第１ＣＰＵ２１０及び第２ＣＰＵ２２０が読み出す際の動作を示したフローチャートであり、情報処理装置２００は、図１１に示す動作を、不揮発性メモリ２５０に格納されているデータを、その先頭から最後まで読み出すまで繰り返す。
第２ＣＰＵ２２０は、第１ＣＰＵ２１０に対してerase block単位分のデータを要求する（ステップＳ１１０１）。
【００５８】
第２ＣＰＵ２２０からの要求を受け付けると、自身の第１ファイルシステム用メモリ２１１への書込みが終了していた場合に、第１ＣＰＵ２１０は、ＤＭＡコントローラ２６０に対してerase block単位分のデータを要求する（ステップＳ１１０２）。
第１ＣＰＵ２１０からのerase block単位分のデータの要求を受け付けると、ＤＭＡコントローラ２６０は、読み出し開始アドレスレジスタ１００１に設定されているアドレスからのerase block単位分のデータの読み出しをフラッシュメモリ制御部２４０に通知する。フラッシュメモリ制御部２４０は指定されたアドレスにあるデータを不揮発性メモリ２５０から読み出してＤＭＡコントローラ２６０に伝送する。ＤＭＡコントローラ２６０は、伝送されてきたデータをマウント処理用メモリ２３０の書き込み開始アドレスレジスタ１００２で指定されるアドレスに書き込む（ステップＳ１１０３）。
【００５９】
マウント処理用メモリ２３０にデータを書き込み終えると、ＤＭＡコントローラ２６０は、第１ＣＰＵ２１０及び第２ＣＰＵ２２０に対して、書き込みが終了したことを通知する（ステップＳ１１０４）。
すると、通知を受けた第１ＣＰＵ２１０は、マウント処理用メモリ２３０からデータを読み出す（ステップＳ１１０５）。また、同じく通知を受けた第２ＣＰＵ２１０は、マウント処理用メモリ２３０からデータを読み出す（ステップＳ１１０６）。
【００６０】
第１ＣＰＵ２１０は、マウント処理用メモリ２３０から読み出したデータからnodeを抽出し、第１ファイルシステム用メモリ２１１にファイルシステムの一部分を構築する（ステップＳ１１０７）。
また、第１ＣＰＵ２２０は、マウント処理用メモリ２３０から読み出したデータからnodeを抽出し、第２ファイルシステム用メモリ２２１にファイルシステムの一部分を構築する（ステップＳ１１０８）。
【００６１】
ファイルシステム用メモリに必要なデータを書き込むと第１ＣＰＵ２１０は次のerase block単位分のデータをＤＭＡコントローラ２６０に要求する（ステップＳ１１０１に戻る）。
不揮発性メモリ２５０内の全データが読み出されるまで、当該動作は繰り返され、全データが読み出されると第１ＣＰＵ２１０及び第２ＣＰＵ２２０は、それぞれ第１ファイルシステム用メモリ２１１及び第２ファイルシステム用メモリ２２１内のデータを用いて、図７に示すようなファイルシステムの構築を完了する。
【００６２】
本実施の形態２に示したように、ＤＭＡコントローラ２６０を用いる手法でも、不揮発性メモリ２５０からのデータの読み出しを実行できる。
＜実施の形態３＞
上記実施の形態１や実施の形態２においては、不揮発性メモリ１５０からのデータの読み出し手法について開示した。本実施の形態３においては、不揮発性メモリ１５０に格納されているデータが暗号化されている場合について説明する。なお、本実施の形態３においては、実施の形態２と異なる構成を主に説明する。
＜構成＞
実施の形態３に係る情報処理装置３００は、図１２に示すようにＤＭＡコントローラ２６０に代わり、復号処理ＤＭＡコントローラ３６０を備える。
【００６３】
不揮発性メモリ３５０に格納されているデータは暗号化されており、復号処理ＤＭＡコントローラ３６０は、ＤＭＡコントローラ２６０の機能に加えて、不揮発性メモリ３５０から読み出したデータを復号してからマウント処理用メモリ２３０に書き込む機能を有する。
具体的には、復号処理ＤＭＡコントローラ３６０は、図１３に示すようにＤＭＡコントローラ２６０と、復号処理部３６１と、復号鍵レジスタ３６２とを含んで構成される。
【００６４】
ＤＭＡコントローラ２６０は、実施の形態２に示したものと略同一の機能を有するが、フラッシュメモリ制御部２４０から伝送されたデータではなく、復号処理部３６１で復号処理された平文のデータをマウント処理用メモリ２３０に書き込む。
復号処理部３６１は、復号鍵レジスタ３６２に保持されている復号鍵を用いて、フラッシュメモリ制御部２４０から伝送された暗号化データを復号する機能を有する。なお、暗号化されたデータを復号する処理については、従来からあるいずれかの手法を用いるものとして、本実施の形態においてはその復号処理の詳細については割愛する。
【００６５】
復号鍵レジスタ３６２は、暗号化されたデータを復号するために用いる鍵情報を保持する機能を有する。当該鍵情報は第１ＣＰＵ２１０により設定される。
＜動作＞
図１４は、本実施の形態３に係る情報処理装置３００の動作を示すフローチャートである。本フローチャートにおいて、実施の形態２と異なる動作は、ステップＳ１４０３の動作になる。それ以外のステップにおける動作は、実施の形態２とおよそ共通するので、それらの動作についてはここでは割愛する。
【００６６】
ステップＳ１４０３においては、ＤＭＡコントローラ２６０は、フラッシュメモリ制御部２４０に対して、読み出し開始アドレスレジスタ１００１で指定されるアドレス位置にある次のerase block単位分のデータを要求する。当該要求を受けてフラッシュメモリ制御部２４０は不揮発性メモリ３５０から暗号化データを読み出して、復号処理部３６１に伝送する。復号処理部３６１は、受け取った暗号化データを復号鍵レジスタ３６２にある鍵情報を用いて復号する。そして復号処理部３６１は復号して得られた平文データをＤＭＡコントローラ２６０に伝送する。ＤＭＡコントローラ２６０は、受け取った平文データをマウント処理用メモリ２３０の書き込み開始アドレスレジスタ１００２で指定されるアドレス位置に書き込む。
【００６７】
すると、ＤＭＡコントローラ２６０は、第１ＣＰＵ２１０及び第２ＣＰＵ２２０に対して、書き込みが完了したことを示す割り込みを発生させる（ステップＳ１１０４）。
暗号化されたデータをそのまま各ＣＰＵに伝送すると各ＣＰＵで復号しなければならないが、本実施の形態３のステップＳ１４０３における処理に示すように、復号処理ＤＭＡコントローラ３６０が復号の処理を実行するので、各ＣＰＵにおける処理を軽減することができる。
＜実施の形態４＞
上記実施の形態３においては、不揮発性メモリ２５０に格納されているデータが暗号化されている場合の処理について説明したが、本実施の形態４においては、読み出したデータが改竄されていた場合の処理について説明する。なお、本実施の形態４においては、実施の形態２と異なる構成を主に説明する。
＜構成＞
図１５に示すように、実施の形態４に係る情報処理装置４００は、第１ＣＰＵ２１０と、第１ファイルシステム用メモリ２１１と、第２ＣＰＵ２２０と、第２ファイルシステム用メモリ２２１と、マウント処理用メモリ２３０と、フラッシュメモリ制御部２４０と、不揮発性メモリ２５０と、改竄検出ＤＭＡコントローラ４６０とを含んで構成される。
【００６８】
情報処理装置４００は、情報処理装置３００と異なり、復号処理ＤＭＡコントローラ３６０に代わり、改竄検出ＤＭＡコントローラ４６０を備える。
改竄検出ＤＭＡコントローラ４６０は、改竄検出部４６１を含み、フラッシュメモリ制御部２４０から伝送されてきたデータが改竄されていないかどうかを検出し、改竄があった場合に、その旨を第１ＣＰＵ２１０及び第２ＣＰＵ２２０に伝達する機能を有する。改竄の検出はハッシュ値の期待値と実際のハッシュ値とが一致するか否かによって行う。なお、ハッシュ値を求める方法と改竄があったかどうかの検出については、従来からある手法を用いるものとして、その詳細については、ここでは割愛する。
【００６９】
そして改竄があった場合には、ＤＭＡコントローラ２６０は、第１ＣＰＵ２１０及び第２ＣＰＵ２２０に対してerase block単位分のデータの読み出しを指示する際に、そのデータが改竄されていることを通知する。
また、改竄検出期待値レジスタ４６２は、読み出すerase block単位分のデータについてのハッシュの期待値を保持する。
【００７０】
改竄検出結果レジスタ４６３は、改竄があったerase blockについての情報を格納する。
＜動作＞
図１７は、実施の形態４に係る情報処理装置４００の動作を示すフローチャートである。本実施の形態４の動作においては、実施の形態２と異なる動作、即ちステップＳ１７０３、Ｓ１７０４、Ｓ１７０７、Ｓ１７０８における処理を主に説明し、その他の動作については、実施の形態２に準ずるものとして説明を割愛する。
【００７１】
ステップＳ１７０３においては、ＤＭＡコントローラ２６０は、フラッシュメモリ制御部２４０に対して、読み出し開始アドレスレジスタ１００１で指定されるアドレス位置にある次のerase block単位分のデータを要求する。当該要求を受けてフラッシュメモリ制御部２４０は不揮発性メモリ３５０からデータを読み出して、改竄検出部４６１に伝送する。改竄検出部４６１は、受け取ったデータが改竄されているかどうかを、実際に受け取ったデータのハッシュ値と、改竄検出期待値レジスタ４６２にあるハッシュの期待値とを比較して検出する。そして改竄検出部４６１は改竄があった場合には、改竄があったことを示す情報とともにerase block単位分のデータをＤＭＡコントローラ２６０に伝送する。ＤＭＡコントローラ２６０は、受け取ったデータをマウント処理用メモリ２３０の書き込み開始アドレスレジスタ１００２で指定されるアドレス位置に書き込む（ステップＳ１７０３）。
【００７２】
そして、ＤＭＡコントローラ２６０は、書き込み完了を示す割り込みを第１ＣＰＵ２１０及び第２ＣＰＵ２２０に発生させるとともに、第１ＣＰＵ２１０及び第２ＣＰＵ２２０に対して、読み出すデータが改竄されていることを通知する（ステップＳ１７０４）。なお、ＤＭＡコントローラ２６０は、データが改竄されていない場合には、割り込みのみを発生させる。
【００７３】
第１ＣＰＵ２１０及び第２ＣＰＵ２２０は、マウント処理用メモリ２３０からデータを読み出して、それぞれ対応するファイルシステム用メモリにファイルシステムの一部分を構築する。このとき、改竄されている旨の通知を受けていた場合には、そのerase block単位分のデータを無効化する（ステップＳ１７０７、Ｓ１７０８）。なお、データを無効化するとは、そのデータをファイルシステムの構築に用いないことを意味する。
【００７４】
不揮発性メモリ２５０から読み出したデータに改竄があったかどうかを検出することで、改竄があった場合には、そのファイルについては、管理情報に含めないようにすることで、改竄されて本来のデータとは異なるデータになっているファイルへの無用のアクセスを回避することができる。
＜補足＞
上記実施の形態において、本発明の実施の手法について説明してきたが、本発明がこれに限られないことは勿論である。以下、上記実施形態以外に本発明として含まれる各種の変形例について説明する。
（１）上記実施の形態において、マウント処理用メモリは、ＪＦＦＳ２のマウント時に使用するが、マウントが終了した場合には、その他の用途、例えば、不揮発性メモリへのアクセスの高効率化のためのキャッシュメモリとして用いられても良い。
（２）上記実施の形態においては、第１ＣＰＵと第２ＣＰＵとの２つのＣＰＵを用いてのＪＦＦＳ２のマウント処理を示した。しかし、これは２つである必要はなく、構築したいファイルシステムの数に応じて、ファイルシステム用メモリを設け、そのファイルシステム用メモリに構築情報を書き込むＣＰＵを用意すればよい。
【００７５】
なお、その際には、上記実施の形態１の場合には、第１ＣＰＵは、全てのＣＰＵからのデータの読み出しが終了し次のデータを要求する要求信号を受けてからフラッシュメモリ制御部１４０に次のデータを要求するように構成する。
また、上記実施の形態２の場合には、ＤＭＡコントローラは、ファイルシステムを構築する全てのＣＰＵから次のデータを要求する要求信号を受けると、次のデータを不揮発性メモリ１５０から読み出してマウント処理用メモリ１３０に書き込むように構成する。
（３）上記実施の形態においては、ＣＰＵ１つにつきマウントするファイルシステムを一つとした。しかし、これはその限りではなく、１つのＣＰＵが２以上のファイルシステムを構築してもよい。即ち、１つのＣＰＵがマウント処理用メモリから読み取ったデータを複数のファイルシステム用メモリに書き込むという構成をとってもよい。
（４）上記実施の形態においては、第１ＣＰＵ１１０、第１ファイルシステム用メモリ１１１、第２ＣＰＵ１２０、第２ファイルシステム用メモリ１２１、マウント処理用メモリ１３０、フラッシュメモリ制御部１４０、不揮発性メモリ１５０が一体の装置内に含まれるように記載した。
【００７６】
しかし、本発明の主旨は、不揮発性メモリと、ファイルシステム用メモリにファイルシステムを構築する情報を書き込むＣＰＵとの間にマウント処理用メモリを介在させ、不揮発性メモリからのデータの読み出しを一度に限定したことにあり、上述の全機能部が１台の装置内に含まれる必要はない。例えば、第１ＣＰＵ１１０と第１ファイルシステム用メモリ１１１とで１台のパソコン、
第２ＣＰＵ１２０と第２ファイルシステム用メモリ１２１とで１台のパソコン、
マウント処理用メモリ、フラッシュメモリ制御部、不揮発性メモリとで構成される１体のフラッシュメモリとし、互いに通信できるよう装置間に通信線を設けるというように、情報処理装置の機能部を別々の装置に搭載する構成にしてもよい。
（５）上記実施の形態においては、マウント処理用メモリ１３０には複数の出力ポートを設けて、第１ＣＰＵ１１０と第２ＣＰＵ１２０とが互いに独立してマウント処理用メモリ１３０からデータを読み出せるように構成した。
【００７７】
しかし、これは必ずしも複数の出力ポートを設ける必要はなく、第１ＣＰＵ１１０と第２ＣＰＵ１２０とで一つの出力ポートを時分割で共有するように構成してもよい。このように構成したとしても、マウント処理用メモリ１３０からの読み出し速度は、不揮発性メモリ１５０からの読み出し速度よりもかなり速いため、不揮発性メモリ１５０からの読み出しが１回で済んでいる以上、従来よりも複数のファイルシステムを構築するのに必要とする時間は短縮できる。
（６）上記実施の形態においては、erase block単位分のデータを読み出し、ファイルシステム用メモリに書き込んだ後、次のerase block単位分のデータを要求して、フラッシュメモリ制御部１４０ないしＤＭＡコントローラ２６０は、当該次のerase block単位分のデータを不揮発性メモリ１５０から読み出して、マウント処理用メモリ１３０、２３０に書き込むという手法をとったが、更なる時間の短縮を図るべく以下のような構成にしてもよい。
【００７８】
即ち、マウント処理用メモリ１３０、２３０は、複数のerase block単位分のデータ容量（例えば、erase block単位の８倍の容量）を持たせてもよい。そして、フラッシュ制御部１４０ないしＤＭＡコントローラ２６０は、開始時にマウント処理用メモリ１３０あるいは２３０に８つのerase block分のデータを書き込んでおく。フラッシュ制御部１４０又はＤＭＡコントローラ２６０は、第１ＣＰＵ２１０からの次のerase block単位分の読み出し要求があった場合に、マウント処理用メモリ１３０あるいは２３０内にある読み出されていないerase block単位分のデータであって、最も古いデータの読み出しを指示するとともに、不揮発性メモリ１５０あるいは２５０から次のerase block単位分のデータを読み出し、マウント処理用メモリ１３０あるいは２３０内の最も古いデータが各ＣＰＵで既に読み込み済みであることを確認して上書きする。
【００７９】
このような構成にすることによって、不揮発性メモリ１５０あるいは２５０からの読み出し速度と、マウント処理用メモリ１３０あるいは２３０からの読み出し速度の差分を埋め、複数のファイルシステムの構築完了までの時間をより短縮できる。
（７）上記実施の形態においては、特に記載しなかったが、フラッシュメモリ制御部１４０や、ＤＭＡコントローラ２６０がerase block単位分のデータを読み出してマウント処理用メモリ１３０に書き込むと、フラッシュメモリ制御部１４０の場合、第１ＣＰＵ１１０からの次の読み出し要求が来るまでは、そして、ＤＭＡコントローラ２６０の場合、全てのＣＰＵから次の読み出し要求が来るまでは、マウント処理用メモリ１３０を書込み禁止になるように設定してもよい。そして、次の読み出し要求が来ると、書込み禁止を解除して、次のerase block単位分のデータを書き込むこととしてもよい。
【００８０】
当該構成により、不揮発性メモリ１５０からの全データの読み出しに当たって欠落や、特に重複（例えば、実施の形態１で言えば、第２ＣＰＵ１２０からの読み出し要求を受けて、マウント処理用メモリ１３０にデータが書き込まれるというような事態）が発生することを防ぐことができる。
（８）上記実施の形態においては、特に記載しなかったが、マウント処理用メモリ１３０及び２３０は、ファイルシステムの構築後は必要なくなるので、その他の処理を実行する際に用いるメモリ、例えば、その他の処理用の一次バッファなどとして活用してもよい。
（９）上記実施の形態において、図１などの機能ブロック図において各機能部をつなぐ通信線は、１本であるかのように記載したが、これは２本の通信線で一方を送信、他方を受信というように構成してもよい。
（１０）上記実施の形態では、マウント処理用メモリ１３０からの読み出し速度は、不揮発性メモリからの読み出し速度よりの約５〜２０倍程度としたが、これは、選択したメモリの仕様によって定まるものであり、必ずしも５〜２０倍になるわけではない。
（１１）上記実施の形態では、特に記載しなかったが、不揮発性メモリ１５０、２５０、３５０は、情報処理装置から着脱自在に構成されてよく、例えば、不揮発性メモリがＵＳＢフラッシュメモリであるとして、不揮発性メモリをＵＳＢコネクタに装着することで、フラッシュメモリ制御部からのアクセスを受けるような構成になっていてもよい。
（１２）上記実施の形態１では、第１ＣＰＵ１１０に予めプライオリティを設定して、第１ＣＰＵ１１０が主となってフラッシュメモリ制御部１４０にerase block単位分のデータを要求していく構成をとった。しかし、これは、第１ＣＰＵ１１０にプライオリティを設定しない手法をとってもよい。
（１３）上記実施の形態において第１ＣＰＵ１１０（２１０）及び第２ＣＰＵ１２０（２２０）が、それぞれマウント処理用メモリ１３０（２３０）から選択的にデータを読み出して、それぞれのファイルシステム用メモリに異なるファイルシステムを構築してもよい。
（１４）上記実施の形態３において、復号鍵レジスタ３６２には、鍵情報が第１ＣＰＵ２１０により設定されることとしたが、これは、ハードワイヤード（レジスタに予め固定）であってもよい。
（１５）本発明に係る情報処理装置は、上記実施の形態に示す情報処理装置を組み合わせて構成されてもよく、例えば実施の形態３と実施の形態４に示す復号処理と改竄検出処理とを同一の情報処理装置内で実行することとしてもよい。
（１６）上述の実施形態で示したファイルシステムの構築に係る動作、不揮発性メモリからのデータの読み出し処理、復号処理や改竄検出処理等（図８、１１、１４、１７参照）をプロセッサ、及びそのプロセッサに接続された各種回路に実行させるためのプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路等を介して流通させ頒布させることもできる。このような記録媒体には、ＩＣカード、ハードディスク、光ディスク、フレキシブルディスク、ＲＯＭ等がある。流通、頒布された制御プログラムはプロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより、実施形態で示したような各種機能が実現されるようになる。
【産業上の利用可能性】
【００８１】
本発明に係る情報処理装置は、複数のファイルシステムを扱うシステムにおいて有効に活用することができる。
【符号の説明】
【００８２】
１００、２００、３００、４００  情報処理装置
１１０、２１０  第１ＣＰＵ
１１１、２１１  第１ファイルシステム用メモリ
１２０、２２０  第２ＣＰＵ
１２１、２２１  第２ファイルシステム用メモリ
１３０、２３０  マウント処理用メモリ
１３１、１３２、２３１、２３２  出力ポート
１３３、２３３  入力ポート
１４０、２４０  フラッシュメモリ制御部
１５０、２５０  不揮発性メモリ
２６０  ＤＭＡコントローラ
３６０  復号処理ＤＭＡコントローラ
３６１  復号処理部
３６２  復号鍵レジスタ
４６０  改竄検出ＤＭＡコントローラ
４６１  改竄検出部
４６２  改竄検出期待値レジスタ
４６３  改竄検出結果レジスタ
１０００  設定レジスタ部
１００１  読み出し開始アドレスレジスタ
１００２  書き込み開始アドレスレジスタ
１００３  転送サイズレジスタ
１００４  ＤＭＡ起動レジスタ
【図１】
2011059778.tif 000003
【図２】
2011059778.tif 000004
【図３】
2011059778.tif 000005
【図４】
2011059778.tif 000006
【図５】
2011059778.tif 000007
【図６】
2011059778.tif 000008
【図７】
2011059778.tif 000009
【図８】
2011059778.tif 000010
【図９】
2011059778.tif 000011
【図１０】
2011059778.tif 000012
【図１１】
2011059778.tif 000013
【図１２】
2011059778.tif 000014
【図１３】
2011059778.tif 000015
【図１４】
2011059778.tif 000016
【図１５】
2011059778.tif 000017
【図１６】
2011059778.tif 000018
【図１７】
2011059778.tif 000019