(57)【要約】 【課題】記憶装置と通信を行う複数のデバイスのキャッシュメモリに記憶されたデータの不整合を解消可能な記憶装置およびプログラムを提供する。【解決手段】実施形態の記憶装置は、記憶部と、通信部と、書き込み部と、制御部とを備える。記憶部は、複数のデータを記憶する。通信部は、記憶部に記憶された複数のデータのうちの少なくとも一部を記憶する第１キャッシュメモリを有する複数の外部機器と通信する。書き込み部は、複数の外部機器のうちの何れかの外部機器から、データの書き込みを要求する書き込み要求を通信部で受信した場合、その書き込みが要求されたデータを記憶部に書き込む。制御部は、書き込み部により書き込まれたデータを、書き込み要求を送信した外部機器とは異なる外部機器へ送信するように通信部を制御する。【選択図】図１
2012208584.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータを記憶する記憶部と、
前記記憶部に記憶された前記複数のデータのうちの少なくとも一部を記憶する第１キャッシュメモリを有する複数の外部機器と通信する通信部と、
前記複数の外部機器のうちの何れかの外部機器から、データの書き込みを要求する書き込み要求を前記通信部で受信した場合、その書き込みが要求されたデータを前記記憶部に書き込む書き込み部と、
前記書き込み部により書き込まれたデータを、前記書き込み要求を送信した前記外部機器とは異なる前記外部機器へ送信するように前記通信部を制御する制御部と、を備える、
ことを特徴とする記憶装置。
【請求項２】
前記記憶部に記憶された前記複数のデータのうちの少なくとも一部を記憶する第２キャッシュメモリと、
前記複数のデータのうち、前記第２キャッシュメモリに記憶されたデータに対応する前記記憶部のデータが、前記書き込み部の書き込みによって変更された場合、その書き込み結果に合わせて前記第２キャッシュメモリを更新する更新部と、をさらに備える、
ことを特徴とする請求項１に記載の記憶装置。
【請求項３】
前記制御部は、
前記複数の外部機器の各々に対して、当該外部機器のアクセス権限に応じた通知を行うように前記通信部を制御する、
ことを特徴とする請求項１に記載の記憶装置。
【請求項４】
前記複数の外部機器のうちの何れかの外部機器から、前記複数のデータのうちの何れかの読み出しを要求する読み出し要求を前記通信部で受信した場合、その読み出しが要求されたデータを前記記憶部から読み出す読み出し部をさらに備える、
ことを特徴とする請求項１に記載の記憶装置。
【請求項５】
記憶部に記憶された複数のデータのうちの少なくとも一部を記憶するキャッシュメモリを有する複数の外部機器のうちの何れかの外部機器から、データの書き込みを要求する書き込み要求を受信した場合、その書き込みが要求されたデータを前記記憶部に書き込む書き込みステップと、
前記書き込みステップにより書き込まれたデータを、前記書き込み要求を送信した前記外部機器とは異なる前記外部機器へ送信する送信ステップと、をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、記憶装置およびプログラムに関する。
【背景技術】
【０００２】
従来、USB、SDIO等のインタフェースを備えるとともに、TransferJetやIEEE802.11等の無線通信インタフェースを備えるメモリカードが知られている。USB、SDIO等のインタフェースを介してメモリカードと通信を行うデバイス、および、TransferJetやIEEE802.11等の無線通信インタフェースを介してメモリカードと通信を行うデバイスの各々は、メモリカードが有するストレージデバイス（データを格納するデバイス）にアクセスして、当該ストレージデバイスに格納されたデータの読み出しや書き込みを行うことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−６７０６０号公報
【特許文献２】特開２０１０−１１８７４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、上述のメモリカードと通信を行う複数のデバイスの各々が、データの転送効率を向上させるために、メモリカードのストレージデバイスに格納された複数のデータのうちの少なくとも一部を記憶するキャッシュメモリを備える場合がある。この場合、何れかのデバイスが、メモリカードにアクセスしてデータの書き込みを行うと、各デバイスのキャッシュメモリに記憶されたデータのうち書き込みが行われたデータの内容が、その書き込みを行ったデバイスと、その他のデバイスとの間で異なってしまう。すなわち、各デバイスのキャッシュメモリに記憶されたデータの不整合が生じるという問題が起こる。本発明が解決しようとする課題は、記憶装置と通信を行う複数のデバイスのキャッシュメモリに記憶されたデータの不整合を解消可能な記憶装置およびプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の記憶装置は、記憶部と、通信部と、書き込み部と、制御部とを備える。記憶部は、複数のデータを記憶する。通信部は、記憶部に記憶された複数のデータのうちの少なくとも一部を記憶する第１キャッシュメモリを有する複数の外部機器と通信する。書き込み部は、複数の外部機器のうちの何れかの外部機器から、データの書き込みを要求する書き込み要求を通信部で受信した場合、その書き込みが要求されたデータを記憶部に書き込む。制御部は、書き込み部により書き込まれたデータを、書き込み要求を送信した外部機器とは異なる外部機器へ送信するように通信部を制御する。
【０００６】
実施形態のプログラムは、書き込みステップと、送信ステップとをコンピュータに実行させるためのプログラムである。書き込みステップは、記憶部に記憶された複数のデータのうちの少なくとも一部を記憶するキャッシュメモリを有する複数の外部機器のうちの何れかの外部機器から、データの書き込みを要求する書き込み要求を受信した場合、その書き込みが要求されたデータを記憶部に書き込む。送信ステップは、書き込みステップにより書き込まれたデータを、書き込み要求を送信した外部機器とは異なる外部機器へ送信する。
【図面の簡単な説明】
【０００７】
【図１】本実施形態に係るシステムのブロック図。
【図２】本実施形態に係るシステムの機能を説明するためのブロック図。
【図３】システムの動作例を示すシーケンス図。
【図４】システムの動作例を示すシーケンス図。
【図５】システムの動作例を示すシーケンス図。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照しながら、本発明に係る記憶装置およびプログラムの実施の形態を詳細に説明する。なお、以下の実施形態では、記憶装置として、無線通信機能を有するメモリカードを例に挙げて説明するが、これに限定されるものではない。
【０００９】
図１は、メモリカード１０と、デバイス２０および３０と、を含むシステム１００のハードウェア構成例を示すブロック図である。図１に示すように、メモリカード１０は、ＣＰＵ１１と、ストレージデバイス１２と、メモリ１３と、外部Ｉ／Ｆ部１４と、無線通信部１５とを備え、それぞれがバスＢ１で相互に接続されている。
【００１０】
ＣＰＵ１１は、メモリカード１０の各部を制御する手段である。ストレージデバイス１２は、デバイス２０および３０の各々で使用される複数のデータを記憶する手段であり、例えばフラッシュメモリ等の不揮発性の半導体メモリで構成され得る。データの種類は任意であり、例えば画像データであってもよいし、テキストデータであってもよい。本実施形態では、ストレージデバイス１２に記憶される複数のデータの各々は、複数のブロック（セクタ）に区分され、ブロック単位でデータの読み出しや書き込みを行うことができる。以下では、必要に応じて、複数のブロックに区分された１つのデータを「ファイル」と呼ぶ。したがって、ストレージデバイス１２には、それぞれが複数のブロックに区分された複数のファイル（データ）が記憶されていると捉えることができる。そして、データの読み出しや書き込みは、ブロック単位で行うこともできるし、ファイル単位で行うこともできる。
【００１１】
メモリ１３は、メモリカード１０で実行される制御プログラムや各種のデータを記憶する。メモリ１３の種類は任意であり、例えばＲＯＭ（Read  Only  Memory）などの不揮発性の半導体メモリで構成されてもよいし、ＲＡＭ(Random  Access  Memory)などの揮発性の半導体メモリで構成されてもよい。本実施形態では、データの転送効率を向上させるために、メモリ１３は、ストレージデバイス１２に記憶された複数のデータのうちの少なくとも一部を記憶する第２キャッシュメモリ１６を含んで構成される。第２キャッシュメモリ１６は、ストレージデバイス１２に記憶された複数のデータの全てを記憶してもよいし、複数のデータのうちの一部のみを記憶してもよい。
【００１２】
外部Ｉ／Ｆ部１４は、ＣＰＵ１１の制御の下、デバイス２０との通信を制御する。外部Ｉ／Ｆ部１４は、例えばUSBやSDIO等で構成され得る。無線通信部１５は、ＣＰＵ１１の制御の下、デバイス３０との無線通信を制御する。無線通信部１５は、例えばTransferJetやWi-Fi等の無線通信インタフェースで構成され得る。外部Ｉ／Ｆ部１４および無線通信部１５を含めて、複数の外部機器と通信するための「通信部」と捉えることができる。
【００１３】
図１に示すように、デバイス２０は、ＣＰＵ２１と、メモリ２２と、外部Ｉ／Ｆ部２３とを備え、それぞれがバスＢ２で互いに接続されている。ＣＰＵ２１は、デバイス２０の各部を制御する手段である。メモリ２２は、デバイス２０で実行される制御プログラムや各種のデータを記憶する。本実施形態では、データの転送効率を向上させるために、メモリ２２は、ストレージデバイス１２に記憶された複数のデータのうちの少なくとも一部を記憶する第１キャッシュメモリ２４を含んで構成される。第１キャッシュメモリ２４は、ストレージデバイス１２に記憶された複数のデータの全てを記憶してもよいし、複数のデータのうちの一部のみを記憶してもよい。外部Ｉ／Ｆ部２３は、ＣＰＵ２１の制御の下、メモリカード１０との通信を制御する。外部Ｉ／Ｆ部２３は、例えばUSBやSDIO等で構成され得る。
【００１４】
また、図１に示すように、デバイス３０は、ＣＰＵ３１と、メモリ３２と、無線通信部３３とを備え、それぞれがバスＢ３で互いに接続されている。ＣＰＵ３１は、デバイス３０の各部を制御する手段である。メモリ３２は、デバイス３０で実行される制御プログラムや各種のデータを記憶する。本実施形態では、データの転送効率を向上させるために、メモリ３２は、ストレージデバイス１２に記憶された複数のデータのうちの少なくとも一部を記憶する第１キャッシュメモリ３４を含んで構成される。第１キャッシュメモリ３４は、ストレージデバイス１２に記憶された複数のデータの全てを記憶してもよいし、複数のデータのうちの一部のみを記憶してもよい。無線通信部３３は、ＣＰＵ３１の制御の下、メモリカード１０との無線通信を制御する。無線通信部３３は、例えばTransferJetやWi-Fi等の無線通信インタフェースで構成され得る。
【００１５】
なお、デバイス２０および３０の種類は任意であり、例えばＰＣ（Personal Computer）やデジタルカメラなどの電子機器で構成され得る。
【００１６】
図２は、メモリカード１０、デバイス２０および３０の各々が有する機能を説明するためのブロック図である。図２に示すように、メモリカード１０のＣＰＵ１１が有する機能には、読み出し部４０、書き込み部４１、更新部４２、制御部４３が含まれる。これらの機能は、ＣＰＵ１１がメモリ１３に記憶された制御プログラムを読み出して実行することにより実現される。なお、これに限らず、これらの機能の少なくとも一部を個別の回路（ハードウェア）で実現することもできる。
【００１７】
読み出し部４０は、デバイス２０およびデバイス３０のうちの何れかのデバイスから、ストレージデバイス１２に記憶された複数のデータ（ファイル単位のデータ、ブロック単位のデータを含む）のうちの何れかの読み出しを要求する読み出し要求を通信部（外部Ｉ／Ｆ部１４、無線通信部１５）で受信した場合、その読み出しが要求されたデータをストレージデバイス１２から読み出す。以下では、ファイル単位のデータの読み出し要求をファイル読み出し要求と呼び、ブロック単位のデータの読み出し要求をブロック読み出し要求と呼ぶ。ファイル読み出し要求には、読み出しを要求するファイルを指定するファイル指定情報が含まれ、ブロック読み出し要求には、読み出しを要求するブロックのストレージデバイス１２における位置を示すアドレス情報が含まれる。なお、両者を区別する必要が無い場合は、単に読み出し要求と呼ぶ。そして、読み出し部４０は、読み出し要求に対する応答として、その読み出したデータを、当該読み出し要求を送信したデバイスに送信するように通信部を制御する。
【００１８】
書き込み部４１は、デバイス２０およびデバイス３０のうちの何れかのデバイスから、ストレージデバイス１２に対するデータ（ファイル単位のデータ、ブロック単位のデータを含む）の書き込みを要求する書き込み要求を通信部で受信した場合、その書き込みが要求されたデータをストレージデバイス１２に書き込む。以下では、ファイル単位のデータの書き込み要求をファイル書き込み要求と呼び、ブロック単位のデータの書き込み要求をブロック書き込み要求と呼ぶ。ファイル書き込み要求には、データの書き込みを要求するファイルを指定するファイル指定情報が含まれ、ブロック書き込み要求には、データの書き込みを要求するブロックのアドレス情報が含まれる。なお、両者を区別する必要が無い場合は、単に書き込み要求と呼ぶ。
【００１９】
更新部４２は、ストレージデバイス１２に記憶された複数のデータ（ファイル単位のデータ、ブロック単位のデータを含む）のうち、第２キャッシュメモリ１６に記憶されたデータに対応するデータが、書き込み部４１の書き込みによって変更された場合、その書き込み結果に合わせて第２キャッシュメモリ１６を更新する。例えばストレージデバイス１２および第２キャッシュメモリ１６の各々に記憶された「ファイルＡ」が、書き込み部４１の書き込みによって変更された場合、更新部４２は、第２キャッシュメモリ１６に記憶された「ファイルＡ」を、書き込み後の「ファイルＡ」に更新する。
【００２０】
制御部４３は、書き込み部４１による書き込みが行われた場合、その書き込まれたデータを、書き込み要求を送信したデバイスとは異なるデバイス（書き込み要求を送信したデバイス以外の他のデバイス）へ送信するように通信部を制御する。また、制御部４３は、デバイス２０およびデバイス３０の各々に対して、当該デバイスのアクセス権限（「パーミッション」と呼ぶ）に応じた通知を行う。詳細な内容については後述する。
【００２１】
図２に示すように、デバイス２０のＣＰＵ２１が有する機能には、読み出し要求部５０、書き込み要求部５１、キャッシュ更新部５２が含まれる。これらの機能は、ＣＰＵ２１がメモリ２２に記憶された制御プログラムを読み出して実行することにより実現される。なお、これに限らず、これらの機能の少なくとも一部を個別の回路（ハードウェア）で実現することもできる。
【００２２】
読み出し要求部５０は、メモリカード１０に対して読み出し要求を送信するように外部Ｉ／Ｆ部２３を制御する。本実施形態では、ファイル読み出し要求の送信は、FTP等のプロトコルに従って行われ、ブロック読み出し要求の送信は、SCSI等の規格に従って行われる。
【００２３】
書き込み要求部５１は、メモリカード１０に対して書き込み要求を送信するように外部Ｉ／Ｆ部２３を制御する。本実施形態では、ファイル書き込み要求の送信は、FTP等のプロトコルに従って行われ、ブロック書き込み要求の送信は、SCSI等の規格に従って行われる。
【００２４】
キャッシュ更新部５２は、他のデバイス３０による書き込みが行われたデータを外部Ｉ／Ｆ部２３で受信した場合、第１キャッシュメモリ２４に記憶された複数のデータのうち、受信したデータに対応するデータを、その受信したデータの内容に更新する。例えばストレージデバイス１２および第１キャッシュメモリ２４の各々に「ファイルＡ」が存在し、他のデバイス３０によって「ファイルＡ」の書き込みが行われた場合、メモリカード１０の制御部４３は、書き込み後の「ファイルＡ」をデバイス２０へ送信する。そして、デバイス２０のキャッシュ更新部５２は、当該書き込み後の「ファイルＡ」を外部Ｉ／Ｆ部２３で受信した場合、第１キャッシュメモリ２４に記憶された「ファイルＡ」を、その受信した「ファイルＡ」に更新する。
【００２５】
また、キャッシュ更新部５２は、書き込み要求部５１が書き込み要求を送信した場合、第１キャッシュメモリ２４に記憶された複数のデータのうち書き込みが要求されたデータを、当該書き込み要求に応じて更新する。例えば書き込み要求部５１が「ファイルＡ」の書き込み要求を送信した場合、キャッシュ更新部５２は、第１キャッシュメモリ２４に記憶された「ファイルＡ」の内容を、当該書き込み要求に応じた書き込みが行われた場合のデータに更新する。
【００２６】
また、図２に示すように、デバイス３０のＣＰＵ３１が有する機能には、読み出し要求部６０、書き込み要求部６１、キャッシュ更新部６２が含まれる。これらの機能は、ＣＰＵ３１がメモリ３２に記憶された制御プログラムを読み出して実行することにより実現される。なお、これに限らず、これらの機能の少なくとも一部を個別の回路（ハードウェア）で実現することもできる。読み出し要求部６０の機能は上述の読み出し要求部５０と同様であり、書き込み要求部６１の機能は上述の書き込み要求部５１の機能と同様であり、キャッシュ更新部６２の機能は上述のキャッシュ更新部５２の機能と同様であるので、これらの詳細な説明は省略する。
【００２７】
図３は、デバイス２０が、メモリカード１０に対してファイル単位のアクセスを実行した場合におけるシステム１００の具体的な動作の一例を示すシーケンス図である。本実施形態では、デバイス２０の第１キャッシュメモリ２４、メモリカード１０のストレージデバイス１２、メモリカード１０の第２キャッシュメモリ１６、および、デバイス３０の第１キャッシュメモリ３４の各々に「ファイルＡ」が存在することを前提とし、デバイス２０が、「ファイルＡ」の読み出しを要求するファイル読み出し要求（「ファイルＡ読み出し要求」と呼ぶ）をメモリカード１０に送信する場合の動作例と、「ファイルＡ」に対するファイル単位のデータの書き込みを要求するファイル書き込み要求（「ファイルＡ書き込み要求」と呼ぶ）をメモリカード１０に送信する場合の動作例を説明する。
【００２８】
まず、デバイス２０が、ファイルＡ読み出し要求をメモリカード１０に送信する場合の動作例を説明する。図３に示すように、デバイス２０の読み出し要求部５０が、メモリカード１０に対してファイルＡ読み出し要求を送信するように外部Ｉ／Ｆ部２３を制御する（ステップＳ１）。次に、メモリカード１０の制御部４３は、外部Ｉ／Ｆ部１４でファイルＡ読み出し要求を受信した場合、他のデバイス３０に対して、書き込み要求（ファイル書き込み要求、ブロック書き込み要求を含む）を受け付けないことを示す書き込み不可情報を送信するように無線通信部１５を制御する（ステップＳ２）。次に、メモリカード１０の読み出し部４０は、ファイルＡ読み出し要求によって読み出しが要求された「ファイルＡ」をストレージデバイス１２から読み出す（ステップＳ３）。そして、読み出し部４０は、その読み出した「ファイルＡ」を、ファイルＡ読み出し要求に対する応答として、デバイス２０に送信するように外部Ｉ／Ｆ部１４を制御する（ステップＳ４）。
【００２９】
次に、デバイス２０が、ファイルＡ書き込み要求をメモリカード１０に送信する場合の動作例を説明する。図３に示すように、デバイス２０の書き込み要求部５１が、メモリカード１０に対してファイルＡ書き込み要求を送信するように外部Ｉ／Ｆ部２３を制御する（ステップＳ５）。このとき、デバイス２０のキャッシュ更新部５２は、第１キャッシュメモリ２４に記憶された「ファイルＡ」の内容を、ファイルＡ書き込み要求に応じた書き込みが行われた場合のデータに更新する。次に、メモリカード１０の制御部４３は、外部Ｉ／Ｆ部１４でファイルＡ書き込み要求を受信した場合、他のデバイス３０に対して、書き込み要求および読み出し要求（ファイル読み出し要求、ブロック読み出し要求を含む）の両方を受け付けないことを示すアクセス不可情報を送信するように無線通信部１５を制御する（ステップＳ６）。
【００３０】
次に、メモリカード１０の書き込み部４１は、ストレージデバイス１２に記憶された「ファイルＡ」に対するファイル単位のデータの書き込みを実行する（ステップＳ７）。次に、メモリカード１０の制御部４３は、書き込み部４１による書き込みが行われた後の「ファイルＡ」をデバイス３０へ送信するように無線通信部１５を制御する（ステップＳ８）。次に、デバイス３０のキャッシュ更新部６２は、書き込み後の「ファイルＡ」を無線通信部３３で受信したときに、第１キャッシュメモリ３４に記憶された「ファイルＡ」を、書き込み後の「ファイルＡ」に更新する（ステップＳ９）。これにより、デバイス２０の第１キャッシュメモリ２４およびデバイス３０の第１キャッシュメモリ３４の各々に記憶された「ファイルＡ」の整合性を図ることができるという有利な効果を奏する。
【００３１】
また、メモリカード１０の更新部４２は、第２キャッシュメモリ１６に記憶されたファイルＡを、書き込み後のファイルＡに更新する（ステップＳ１０）。これにより、デバイス２０の第１キャッシュメモリ２４、メモリカード１０の第２キャッシュメモリ１６、および、デバイス３０の第１キャッシュメモリ３４の各々に記憶されたデータの整合性を図ることができる。
【００３２】
図４は、デバイス２０が、メモリカード１０に対してブロック単位のアクセスを実行した場合におけるシステム１００の具体的な動作の一例を示すシーケンス図である。ここでは、デバイス２０が、「ファイルＡ」に属する所定のブロックの読み出しを要求するブロック読み出し要求をメモリカード１０に送信する場合の動作例と、「ファイルＡ」に属する所定のブロックの書き込みを要求するブロック書き込み要求をメモリカード１０に送信する場合の動作例を説明する。まず、デバイス２０が、ブロック読み出し要求をメモリカード１０に送信する場合の動作例を説明する。
【００３３】
ここで、前述したように、ブロック読み出し要求には、読み出しを要求するブロックのアドレス情報が含まれるので、ブロック読み出し要求を受信したメモリカード１０（読み出し部４０）は、その読み出しが要求されたブロックのストレージデバイス１２における位置を特定することはできるものの、当該ブロックが属するファイルを特定するためには他の処理が必要であり、当該ブロックが属するファイルを直ちに特定することは困難である。そこで、本実施形態では、図４に示すように、デバイス２０の読み出し要求部５０は、ブロック読み出し要求を送信する前に、読み出し対象のファイルを示す読み出しファイル情報をメモリカード１０に送信するように外部Ｉ／Ｆ部２３を制御する（ステップＳ２０）。ここでは、読み出し要求部５０は、読み出し対象のファイルが「ファイルＡ」であることを示す読み出しファイル情報をメモリカード１０に送信するように外部Ｉ／Ｆ部２３を制御する。メモリカード１０の読み出し部４０は、外部Ｉ／Ｆ部１４で読み出しファイル情報を受信した場合、その読み出しファイル情報を参照して、読み出し対象のファイルを特定する（ステップＳ２１）。ここでは、読み出し部４０は、読み出し対象のファイルとして「ファイルＡ」を特定する。
【００３４】
次に、メモリカード１０の制御部４３は、他のデバイス３０に対して、書き込み要求を受け付けないことを示す書き込み不可情報を送信するように無線通信部１５を制御する（ステップＳ２２）。次に、デバイス２０の読み出し要求部５０は、メモリカード１０に対してブロック読み出し要求を送信するように外部Ｉ／Ｆ部２３を制御する（ステップＳ２３）。次に、メモリカード１０の読み出し部４０は、読み出し対象のファイルである「ファイルＡ」に属する複数のブロックのうち、ブロック読み出し要求に含まれるアドレス情報で特定されるブロックのデータをストレージデバイス１２から読み出す（ステップＳ２４）。そして、読み出し部４０は、その読み出したブロックのデータを、ブロック読み出し要求に対する応答として、デバイス２０に送信するように外部Ｉ／Ｆ部１４を制御する（ステップＳ２５）。
【００３５】
次に、デバイス２０が、ブロック書き込み要求をメモリカード１０に送信する場合の動作例を説明する。上述のブロック単位の読み出しを要求する場合と同様に、デバイス２０の書き込み要求部５１は、ブロック書き込み要求を送信する前に、書き込み対象のファイルを示す書き込みファイル情報をメモリカード１０に送信するように外部Ｉ／Ｆ部２３を制御する（ステップＳ２６）。ここでは、書き込み要求部５１は、書き込み対象のファイルが「ファイルＡ」であることを示す書き込みファイル情報をメモリカード１０に送信するように外部Ｉ／Ｆ部２３を制御する。メモリカード１０の書き込み部４１は、外部Ｉ／Ｆ部１４で書き込みファイル情報を受信した場合、その書き込みファイル情報を参照して、書き込み対象のファイルを特定する（ステップＳ２７）。ここでは、書き込み部４１は、書き込み対象のファイルとして「ファイルＡ」を特定する。
【００３６】
次に、メモリカード１０の制御部４３は、他のデバイス３０に対して、書き込み要求および読み出し要求の両方を受け付けないことを示すアクセス不可情報を送信するように無線通信部１５を制御する（ステップＳ２８）。
【００３７】
次に、デバイス２０の書き込み要求部５１は、メモリカード１０に対してブロック書き込み要求を送信するように外部Ｉ／Ｆ部２３を制御する（ステップＳ２９）。このとき、デバイス２０のキャッシュ更新部５２は、第１キャッシュメモリ２４に記憶された書き込み対象の「ファイルＡ」を、ブロック書き込み要求に応じて更新する。より具体的には、キャッシュ更新部５２は、第１キャッシュメモリ２４に記憶された「ファイルＡ」が有する複数のブロックのうち、ブロック書き込み要求に含まれるアドレス情報で特定されるブロックの内容を、当該ブロック書き込み要求に応じた書き込みが行われた場合のデータに更新する。
【００３８】
次に、メモリカード１０の書き込み部４１は、書き込み対象のファイルである「ファイルＡ」に属する複数のブロックのうち、ブロック書き込み要求に含まれるアドレス情報で特定されるブロックに対するデータの書き込みを行う（ステップＳ３０）。次に、メモリカード１０の制御部４３は、書き込み部４１による書き込みが行われた後の「ファイルＡ」をデバイス３０へ送信するように無線通信部１５を制御する（ステップＳ３１）。次に、デバイス３０のキャッシュ更新部６２は、書き込み後の「ファイルＡ」を無線通信部３３で受信したときに、第１キャッシュメモリ３４に記憶された「ファイルＡ」を、書き込み後の「ファイルＡ」に更新する（ステップＳ３２）。これにより、デバイス２０の第１キャッシュメモリ２４およびデバイス３０の第１キャッシュメモリ３４の各々に記憶された「ファイルＡ」の整合性を図ることができるという有利な効果を奏する。
【００３９】
また、メモリカード１０の更新部４２は、第２キャッシュメモリ１６に記憶されたファイルＡを、書き込み後のファイルＡに更新する（ステップＳ３３）。これにより、デバイス２０の第１キャッシュメモリ２４、メモリカード１０の第２キャッシュメモリ１６、および、デバイス３０の第１キャッシュメモリ３４の各々に記憶されたデータの整合性を図ることができる。
【００４０】
さらに、本実施形態では、メモリカード１０のストレージデバイス１２に記憶された複数のファイルの各々に対するアクセス権限（パーミッション）が、デバイスごとに個別に設定される。例えば所定のファイルに関する特定のデバイスのパーミッションが、読み出し要求が常時許可されるように設定されることにより、当該所定のファイルに対する当該特定のデバイスからのアクセスが遅延することを回避できる。いま、ストレージデバイス１２に記憶された「ファイルＢ」に関するデバイス２０のパーミッションは、読み出し要求および書き込み要求の両方が常時許可されるように設定され、「ファイルＢ」に関するデバイス３０のパーミッションは、読み出し要求は常時許可される一方、書き込み要求は許可されないように設定される場合を想定する。なお、これは一例であり、各デバイスのパーミッションの設定は任意に変更可能である。
【００４１】
図５は、デバイス２０およびデバイス３０の各々が、「ファイルＢ」に対してアクセスを実行した場合におけるシステム１００の具体的な動作の一例を示すシーケンス図である。ここでは、デバイス２０が、「ファイルＢ」の読み出しを要求するファイル読み出し要求（「ファイルＢ読み出し要求」と呼ぶ）をメモリカード１０に送信する場合の動作例と、「ファイルＢ」に対するファイル単位のデータの書き込みを要求するファイル書き込み要求（「ファイルＢ書き込み要求」と呼ぶ）をメモリカード１０に送信する場合の動作例と、デバイス３０が、ファイルＢ読み出し要求をメモリカード１０に送信する場合の動作例と、ファイルＢ書き込み要求をメモリカード１０に送信する場合の動作例と、を説明する。
【００４２】
まず、デバイス２０が、ファイルＢ読み出し要求をメモリカード１０に送信する場合の動作例を説明する。図５に示すように、デバイス２０の読み出し要求部５０が、メモリカード１０に対してファイルＢ読み出し要求を送信するように外部Ｉ／Ｆ部２３を制御する（ステップＳ４０）。上述したように、「ファイルＢ」に関するデバイス３０のパーミッションは、読み出し要求は常時許可される一方、書き込み要求は許可されないように設定されるので、メモリカード１０の制御部４３は、デバイス３０に対して、読み出し要求（ファイル読み出し要求、ブロック読み出し要求を含む）を受け付けないことを示す読み出し不可情報や前述の書き込み不可情報を送信するように無線通信部１５を制御する必要は無い。
【００４３】
次に、メモリカード１０の読み出し部４０は、ファイルＢ読み出し要求によって読み出しが要求された「ファイルＢ」をストレージデバイス１２から読み出す（ステップＳ４１）。そして、読み出し部４０は、その読み出した「ファイルＢ」を、ファイルＢ読み出し要求に対する応答として、デバイス２０に送信するように外部Ｉ／Ｆ部１４を制御する（ステップＳ４２）。
【００４４】
次に、デバイス２０が、ファイルＢ書き込み要求をメモリカード１０に送信する場合の動作例を説明する。図５に示すように、デバイス２０の書き込み要求部５１が、メモリカード１０に対してファイルＢ書き込み要求を送信するように外部Ｉ／Ｆ部２３を制御する（ステップＳ４３）。上述したように、「ファイルＢ」に関するデバイス３０のパーミッションは、読み出し要求は常時許可される一方、書き込み要求は許可されないように設定されるので、ここでも、メモリカード１０の制御部４３は、デバイス３０に対して、読み出し不可情報や書き込み不可情報を送信するように無線通信部１５を制御する必要は無い。また、このとき、デバイス２０のキャッシュ更新部５２は、第１キャッシュメモリ２４に記憶された「ファイルＢ」の内容を、ファイルＢ書き込み要求に応じた書き込みが行われた場合のデータに更新する。
【００４５】
次に、メモリカード１０の書き込み部４１は、「ファイルＢ」に対するファイル単位のデータの書き込みを実行する（ステップＳ４４）。次に、メモリカード１０の制御部４３は、書き込み部４１による書き込みが行われた後の「ファイルＢ」をデバイス３０へ送信するように無線通信部１５を制御する（ステップＳ４５）。次に、デバイス３０のキャッシュ更新部６２は、書き込み後の「ファイルＢ」を無線通信部３３で受信したときに、第１キャッシュメモリ３４に記憶された「ファイルＢ」を、書き込み後の「ファイルＢ」に更新する（ステップＳ４６）。また、メモリカード１０の更新部４２は、第２キャッシュメモリ１６に記憶された「ファイルＢ」を、書き込み後の「ファイルＢ」に更新する（ステップＳ４７）。これにより、デバイス２０の第１キャッシュメモリ２４、メモリカード１０の第２キャッシュメモリ１６、および、デバイス３０の第１キャッシュメモリ３４の各々に記憶された「ファイルＢ」の整合性を図ることができる。
【００４６】
次に、デバイス３０が、ファイルＢ読み出し要求をメモリカード１０に送信する場合の動作例を説明する。図５に示すように、デバイス３０の読み出し要求部６０が、メモリカード１０に対してファイルＢ読み出し要求を送信するように無線通信部３３を制御する（ステップＳ４８）。上述したように、「ファイルＢ」に関するデバイス２０のパーミッションは、読み出し要求および書き込み要求が常時許可されるように設定されるので、メモリカード１０の制御部４３は、デバイス２０に対して、読み出し不可情報や書き込み不可情報を送信するように外部Ｉ／Ｆ部１４を制御する必要は無い。
【００４７】
次に、メモリカード１０の読み出し部４０は、ファイルＢ読み出し要求によって読み出しが要求された「ファイルＢ」をストレージデバイス１２から読み出す（ステップＳ４９）。そして、読み出し部４０は、その読み出した「ファイルＢ」を、ファイルＢ読み出し要求に対する応答として、デバイス３０に送信するように無線通信部１５を制御する（ステップＳ５０）。
【００４８】
次に、デバイス３０が、ファイルＢ書き込み要求をメモリカード１０に送信する場合の動作例を説明する。図５に示すように、デバイス３０の書き込み要求部６１が、メモリカード１０に対してファイルＢ書き込み要求を送信するように無線通信部３３を制御する（ステップＳ５１）。上述したように、「ファイルＢ」に関するデバイス３０のパーミッションは、読み出し要求は常時許可される一方、書き込み要求は許可されないように設定されるので、メモリカード１０の制御部４３は、デバイス３０に対して、書き込み不可情報を送信するように無線通信部１５を制御する（ステップＳ５２）。
【００４９】
以上は、デバイス２０およびデバイス３０の各々が、「ファイルＢ」に対してファイル単位のアクセスを実行した場合におけるシステム１００の動作例であるが、ブロック単位のアクセスを実行した場合におけるシステム１００の動作例についても、ブロック読み出し要求を送信する前に読み出しファイル情報を送信する点、および、ブロック書き込み要求を送信する前に書き込みファイル情報を送信する点を除き、図５の例と同様である。
【００５０】
以上、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００５１】
上述の実施形態では、メモリカード１０は、２つのデバイスと通信を行う構成を例示したが、これに限らず、例えばメモリカード１０は、３つ以上のデバイスと通信を行う構成であってもよい。
【００５２】
また、上述の実施形態では、デバイスが、メモリカード１０のストレージデバイス１２に記憶されたファイルの読み出しを要求する場合、まずデバイスは、メモリカード１０に対してファイル読み出し要求を送信しているが、これに限らず、例えばデバイスは、ファイル読み出し要求を送信する前に、読み出し対象のファイルを示す読み出しファイル情報をメモリカード１０に対して送信する構成であってもよい。
【００５３】
さらに、上述の実施形態では、デバイスが、メモリカード１０のストレージデバイス１２に記憶されたファイルに対するデータの書き込みを要求する場合、まずデバイスは、メモリカード１０に対してファイル書き込み要求を送信しているが、これに限らず、例えばデバイスは、ファイル書き込み要求を送信する前に、書き込み対象のファイルを示す書き込みファイル情報をメモリカード１０に対して送信する構成であってもよい。
【００５４】
なお、上述の実施形態では、第１キャッシュメモリ（２４、３４）はメモリ（２２、３２）に含まれているが、これに限らず、第１キャッシュメモリ（２４、３４）が、メモリ（２２、３２）とは別に設けられてもよい。同様に、第２キャッシュメモリ１３が、メモリ１３とは別に設けられてもよい。さらに、第２キャッシュメモリ１３が設けられない構成であってもよい。
【符号の説明】
【００５５】
１０  メモリカード
１１  ＣＰＵ
１２  ストレージデバイス
１３  メモリ
１４  外部Ｉ／Ｆ部
１５  無線通信部
１６  第２キャッシュメモリ
２０  デバイス
２１  ＣＰＵ
２２  メモリ
２３  外部Ｉ／Ｆ部
２４  第１キャッシュメモリ
３０  デバイス
３１  ＣＰＵ
３２  メモリ
３３  無線通信部
３４  第１キャッシュメモリ
４０  読み出し部
４１  書き込み部
４２  更新部
４３  制御部
５０  読み出し要求部
５１  書き込み要求部
５２  キャッシュ更新部
６０  読み出し要求部
６１  書き込み要求部
６２  キャッシュ更新部
１００  システム
【図１】
2012208584.tif 000003
【図２】
2012208584.tif 000004
【図３】
2012208584.tif 000005
【図４】
2012208584.tif 000006
【図５】
2012208584.tif 000007