説明

記憶装置およびプログラム

【課題】記憶装置と通信を行う複数のデバイスのキャッシュメモリに記憶されたデータの不整合を解消可能な記憶装置およびプログラムを提供する。
【解決手段】実施形態の記憶装置は、記憶部と、通信部と、書き込み部と、制御部とを備える。記憶部は、複数のデータを記憶する。通信部は、記憶部に記憶された複数のデータのうちの少なくとも一部を記憶する第1キャッシュメモリを有する複数の外部機器と通信する。書き込み部は、複数の外部機器のうちの何れかの外部機器から、データの書き込みを要求する書き込み要求を通信部で受信した場合、その書き込みが要求されたデータを記憶部に書き込む。制御部は、書き込み部により書き込まれたデータを、書き込み要求を送信した外部機器とは異なる外部機器へ送信するように通信部を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、記憶装置およびプログラムに関する。
【背景技術】
【0002】
従来、USB、SDIO等のインタフェースを備えるとともに、TransferJetやIEEE802.11等の無線通信インタフェースを備えるメモリカードが知られている。USB、SDIO等のインタフェースを介してメモリカードと通信を行うデバイス、および、TransferJetやIEEE802.11等の無線通信インタフェースを介してメモリカードと通信を行うデバイスの各々は、メモリカードが有するストレージデバイス(データを格納するデバイス)にアクセスして、当該ストレージデバイスに格納されたデータの読み出しや書き込みを行うことができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−67060号公報
【特許文献2】特開2010−118741号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、上述のメモリカードと通信を行う複数のデバイスの各々が、データの転送効率を向上させるために、メモリカードのストレージデバイスに格納された複数のデータのうちの少なくとも一部を記憶するキャッシュメモリを備える場合がある。この場合、何れかのデバイスが、メモリカードにアクセスしてデータの書き込みを行うと、各デバイスのキャッシュメモリに記憶されたデータのうち書き込みが行われたデータの内容が、その書き込みを行ったデバイスと、その他のデバイスとの間で異なってしまう。すなわち、各デバイスのキャッシュメモリに記憶されたデータの不整合が生じるという問題が起こる。本発明が解決しようとする課題は、記憶装置と通信を行う複数のデバイスのキャッシュメモリに記憶されたデータの不整合を解消可能な記憶装置およびプログラムを提供することである。
【課題を解決するための手段】
【0005】
実施形態の記憶装置は、記憶部と、通信部と、書き込み部と、制御部とを備える。記憶部は、複数のデータを記憶する。通信部は、記憶部に記憶された複数のデータのうちの少なくとも一部を記憶する第1キャッシュメモリを有する複数の外部機器と通信する。書き込み部は、複数の外部機器のうちの何れかの外部機器から、データの書き込みを要求する書き込み要求を通信部で受信した場合、その書き込みが要求されたデータを記憶部に書き込む。制御部は、書き込み部により書き込まれたデータを、書き込み要求を送信した外部機器とは異なる外部機器へ送信するように通信部を制御する。
【0006】
実施形態のプログラムは、書き込みステップと、送信ステップとをコンピュータに実行させるためのプログラムである。書き込みステップは、記憶部に記憶された複数のデータのうちの少なくとも一部を記憶するキャッシュメモリを有する複数の外部機器のうちの何れかの外部機器から、データの書き込みを要求する書き込み要求を受信した場合、その書き込みが要求されたデータを記憶部に書き込む。送信ステップは、書き込みステップにより書き込まれたデータを、書き込み要求を送信した外部機器とは異なる外部機器へ送信する。
【図面の簡単な説明】
【0007】
【図1】本実施形態に係るシステムのブロック図。
【図2】本実施形態に係るシステムの機能を説明するためのブロック図。
【図3】システムの動作例を示すシーケンス図。
【図4】システムの動作例を示すシーケンス図。
【図5】システムの動作例を示すシーケンス図。
【発明を実施するための形態】
【0008】
以下、添付図面を参照しながら、本発明に係る記憶装置およびプログラムの実施の形態を詳細に説明する。なお、以下の実施形態では、記憶装置として、無線通信機能を有するメモリカードを例に挙げて説明するが、これに限定されるものではない。
【0009】
図1は、メモリカード10と、デバイス20および30と、を含むシステム100のハードウェア構成例を示すブロック図である。図1に示すように、メモリカード10は、CPU11と、ストレージデバイス12と、メモリ13と、外部I/F部14と、無線通信部15とを備え、それぞれがバスB1で相互に接続されている。
【0010】
CPU11は、メモリカード10の各部を制御する手段である。ストレージデバイス12は、デバイス20および30の各々で使用される複数のデータを記憶する手段であり、例えばフラッシュメモリ等の不揮発性の半導体メモリで構成され得る。データの種類は任意であり、例えば画像データであってもよいし、テキストデータであってもよい。本実施形態では、ストレージデバイス12に記憶される複数のデータの各々は、複数のブロック(セクタ)に区分され、ブロック単位でデータの読み出しや書き込みを行うことができる。以下では、必要に応じて、複数のブロックに区分された1つのデータを「ファイル」と呼ぶ。したがって、ストレージデバイス12には、それぞれが複数のブロックに区分された複数のファイル(データ)が記憶されていると捉えることができる。そして、データの読み出しや書き込みは、ブロック単位で行うこともできるし、ファイル単位で行うこともできる。
【0011】
メモリ13は、メモリカード10で実行される制御プログラムや各種のデータを記憶する。メモリ13の種類は任意であり、例えばROM(Read Only Memory)などの不揮発性の半導体メモリで構成されてもよいし、RAM(Random Access Memory)などの揮発性の半導体メモリで構成されてもよい。本実施形態では、データの転送効率を向上させるために、メモリ13は、ストレージデバイス12に記憶された複数のデータのうちの少なくとも一部を記憶する第2キャッシュメモリ16を含んで構成される。第2キャッシュメモリ16は、ストレージデバイス12に記憶された複数のデータの全てを記憶してもよいし、複数のデータのうちの一部のみを記憶してもよい。
【0012】
外部I/F部14は、CPU11の制御の下、デバイス20との通信を制御する。外部I/F部14は、例えばUSBやSDIO等で構成され得る。無線通信部15は、CPU11の制御の下、デバイス30との無線通信を制御する。無線通信部15は、例えばTransferJetやWi-Fi等の無線通信インタフェースで構成され得る。外部I/F部14および無線通信部15を含めて、複数の外部機器と通信するための「通信部」と捉えることができる。
【0013】
図1に示すように、デバイス20は、CPU21と、メモリ22と、外部I/F部23とを備え、それぞれがバスB2で互いに接続されている。CPU21は、デバイス20の各部を制御する手段である。メモリ22は、デバイス20で実行される制御プログラムや各種のデータを記憶する。本実施形態では、データの転送効率を向上させるために、メモリ22は、ストレージデバイス12に記憶された複数のデータのうちの少なくとも一部を記憶する第1キャッシュメモリ24を含んで構成される。第1キャッシュメモリ24は、ストレージデバイス12に記憶された複数のデータの全てを記憶してもよいし、複数のデータのうちの一部のみを記憶してもよい。外部I/F部23は、CPU21の制御の下、メモリカード10との通信を制御する。外部I/F部23は、例えばUSBやSDIO等で構成され得る。
【0014】
また、図1に示すように、デバイス30は、CPU31と、メモリ32と、無線通信部33とを備え、それぞれがバスB3で互いに接続されている。CPU31は、デバイス30の各部を制御する手段である。メモリ32は、デバイス30で実行される制御プログラムや各種のデータを記憶する。本実施形態では、データの転送効率を向上させるために、メモリ32は、ストレージデバイス12に記憶された複数のデータのうちの少なくとも一部を記憶する第1キャッシュメモリ34を含んで構成される。第1キャッシュメモリ34は、ストレージデバイス12に記憶された複数のデータの全てを記憶してもよいし、複数のデータのうちの一部のみを記憶してもよい。無線通信部33は、CPU31の制御の下、メモリカード10との無線通信を制御する。無線通信部33は、例えばTransferJetやWi-Fi等の無線通信インタフェースで構成され得る。
【0015】
なお、デバイス20および30の種類は任意であり、例えばPC(Personal Computer)やデジタルカメラなどの電子機器で構成され得る。
【0016】
図2は、メモリカード10、デバイス20および30の各々が有する機能を説明するためのブロック図である。図2に示すように、メモリカード10のCPU11が有する機能には、読み出し部40、書き込み部41、更新部42、制御部43が含まれる。これらの機能は、CPU11がメモリ13に記憶された制御プログラムを読み出して実行することにより実現される。なお、これに限らず、これらの機能の少なくとも一部を個別の回路(ハードウェア)で実現することもできる。
【0017】
読み出し部40は、デバイス20およびデバイス30のうちの何れかのデバイスから、ストレージデバイス12に記憶された複数のデータ(ファイル単位のデータ、ブロック単位のデータを含む)のうちの何れかの読み出しを要求する読み出し要求を通信部(外部I/F部14、無線通信部15)で受信した場合、その読み出しが要求されたデータをストレージデバイス12から読み出す。以下では、ファイル単位のデータの読み出し要求をファイル読み出し要求と呼び、ブロック単位のデータの読み出し要求をブロック読み出し要求と呼ぶ。ファイル読み出し要求には、読み出しを要求するファイルを指定するファイル指定情報が含まれ、ブロック読み出し要求には、読み出しを要求するブロックのストレージデバイス12における位置を示すアドレス情報が含まれる。なお、両者を区別する必要が無い場合は、単に読み出し要求と呼ぶ。そして、読み出し部40は、読み出し要求に対する応答として、その読み出したデータを、当該読み出し要求を送信したデバイスに送信するように通信部を制御する。
【0018】
書き込み部41は、デバイス20およびデバイス30のうちの何れかのデバイスから、ストレージデバイス12に対するデータ(ファイル単位のデータ、ブロック単位のデータを含む)の書き込みを要求する書き込み要求を通信部で受信した場合、その書き込みが要求されたデータをストレージデバイス12に書き込む。以下では、ファイル単位のデータの書き込み要求をファイル書き込み要求と呼び、ブロック単位のデータの書き込み要求をブロック書き込み要求と呼ぶ。ファイル書き込み要求には、データの書き込みを要求するファイルを指定するファイル指定情報が含まれ、ブロック書き込み要求には、データの書き込みを要求するブロックのアドレス情報が含まれる。なお、両者を区別する必要が無い場合は、単に書き込み要求と呼ぶ。
【0019】
更新部42は、ストレージデバイス12に記憶された複数のデータ(ファイル単位のデータ、ブロック単位のデータを含む)のうち、第2キャッシュメモリ16に記憶されたデータに対応するデータが、書き込み部41の書き込みによって変更された場合、その書き込み結果に合わせて第2キャッシュメモリ16を更新する。例えばストレージデバイス12および第2キャッシュメモリ16の各々に記憶された「ファイルA」が、書き込み部41の書き込みによって変更された場合、更新部42は、第2キャッシュメモリ16に記憶された「ファイルA」を、書き込み後の「ファイルA」に更新する。
【0020】
制御部43は、書き込み部41による書き込みが行われた場合、その書き込まれたデータを、書き込み要求を送信したデバイスとは異なるデバイス(書き込み要求を送信したデバイス以外の他のデバイス)へ送信するように通信部を制御する。また、制御部43は、デバイス20およびデバイス30の各々に対して、当該デバイスのアクセス権限(「パーミッション」と呼ぶ)に応じた通知を行う。詳細な内容については後述する。
【0021】
図2に示すように、デバイス20のCPU21が有する機能には、読み出し要求部50、書き込み要求部51、キャッシュ更新部52が含まれる。これらの機能は、CPU21がメモリ22に記憶された制御プログラムを読み出して実行することにより実現される。なお、これに限らず、これらの機能の少なくとも一部を個別の回路(ハードウェア)で実現することもできる。
【0022】
読み出し要求部50は、メモリカード10に対して読み出し要求を送信するように外部I/F部23を制御する。本実施形態では、ファイル読み出し要求の送信は、FTP等のプロトコルに従って行われ、ブロック読み出し要求の送信は、SCSI等の規格に従って行われる。
【0023】
書き込み要求部51は、メモリカード10に対して書き込み要求を送信するように外部I/F部23を制御する。本実施形態では、ファイル書き込み要求の送信は、FTP等のプロトコルに従って行われ、ブロック書き込み要求の送信は、SCSI等の規格に従って行われる。
【0024】
キャッシュ更新部52は、他のデバイス30による書き込みが行われたデータを外部I/F部23で受信した場合、第1キャッシュメモリ24に記憶された複数のデータのうち、受信したデータに対応するデータを、その受信したデータの内容に更新する。例えばストレージデバイス12および第1キャッシュメモリ24の各々に「ファイルA」が存在し、他のデバイス30によって「ファイルA」の書き込みが行われた場合、メモリカード10の制御部43は、書き込み後の「ファイルA」をデバイス20へ送信する。そして、デバイス20のキャッシュ更新部52は、当該書き込み後の「ファイルA」を外部I/F部23で受信した場合、第1キャッシュメモリ24に記憶された「ファイルA」を、その受信した「ファイルA」に更新する。
【0025】
また、キャッシュ更新部52は、書き込み要求部51が書き込み要求を送信した場合、第1キャッシュメモリ24に記憶された複数のデータのうち書き込みが要求されたデータを、当該書き込み要求に応じて更新する。例えば書き込み要求部51が「ファイルA」の書き込み要求を送信した場合、キャッシュ更新部52は、第1キャッシュメモリ24に記憶された「ファイルA」の内容を、当該書き込み要求に応じた書き込みが行われた場合のデータに更新する。
【0026】
また、図2に示すように、デバイス30のCPU31が有する機能には、読み出し要求部60、書き込み要求部61、キャッシュ更新部62が含まれる。これらの機能は、CPU31がメモリ32に記憶された制御プログラムを読み出して実行することにより実現される。なお、これに限らず、これらの機能の少なくとも一部を個別の回路(ハードウェア)で実現することもできる。読み出し要求部60の機能は上述の読み出し要求部50と同様であり、書き込み要求部61の機能は上述の書き込み要求部51の機能と同様であり、キャッシュ更新部62の機能は上述のキャッシュ更新部52の機能と同様であるので、これらの詳細な説明は省略する。
【0027】
図3は、デバイス20が、メモリカード10に対してファイル単位のアクセスを実行した場合におけるシステム100の具体的な動作の一例を示すシーケンス図である。本実施形態では、デバイス20の第1キャッシュメモリ24、メモリカード10のストレージデバイス12、メモリカード10の第2キャッシュメモリ16、および、デバイス30の第1キャッシュメモリ34の各々に「ファイルA」が存在することを前提とし、デバイス20が、「ファイルA」の読み出しを要求するファイル読み出し要求(「ファイルA読み出し要求」と呼ぶ)をメモリカード10に送信する場合の動作例と、「ファイルA」に対するファイル単位のデータの書き込みを要求するファイル書き込み要求(「ファイルA書き込み要求」と呼ぶ)をメモリカード10に送信する場合の動作例を説明する。
【0028】
まず、デバイス20が、ファイルA読み出し要求をメモリカード10に送信する場合の動作例を説明する。図3に示すように、デバイス20の読み出し要求部50が、メモリカード10に対してファイルA読み出し要求を送信するように外部I/F部23を制御する(ステップS1)。次に、メモリカード10の制御部43は、外部I/F部14でファイルA読み出し要求を受信した場合、他のデバイス30に対して、書き込み要求(ファイル書き込み要求、ブロック書き込み要求を含む)を受け付けないことを示す書き込み不可情報を送信するように無線通信部15を制御する(ステップS2)。次に、メモリカード10の読み出し部40は、ファイルA読み出し要求によって読み出しが要求された「ファイルA」をストレージデバイス12から読み出す(ステップS3)。そして、読み出し部40は、その読み出した「ファイルA」を、ファイルA読み出し要求に対する応答として、デバイス20に送信するように外部I/F部14を制御する(ステップS4)。
【0029】
次に、デバイス20が、ファイルA書き込み要求をメモリカード10に送信する場合の動作例を説明する。図3に示すように、デバイス20の書き込み要求部51が、メモリカード10に対してファイルA書き込み要求を送信するように外部I/F部23を制御する(ステップS5)。このとき、デバイス20のキャッシュ更新部52は、第1キャッシュメモリ24に記憶された「ファイルA」の内容を、ファイルA書き込み要求に応じた書き込みが行われた場合のデータに更新する。次に、メモリカード10の制御部43は、外部I/F部14でファイルA書き込み要求を受信した場合、他のデバイス30に対して、書き込み要求および読み出し要求(ファイル読み出し要求、ブロック読み出し要求を含む)の両方を受け付けないことを示すアクセス不可情報を送信するように無線通信部15を制御する(ステップS6)。
【0030】
次に、メモリカード10の書き込み部41は、ストレージデバイス12に記憶された「ファイルA」に対するファイル単位のデータの書き込みを実行する(ステップS7)。次に、メモリカード10の制御部43は、書き込み部41による書き込みが行われた後の「ファイルA」をデバイス30へ送信するように無線通信部15を制御する(ステップS8)。次に、デバイス30のキャッシュ更新部62は、書き込み後の「ファイルA」を無線通信部33で受信したときに、第1キャッシュメモリ34に記憶された「ファイルA」を、書き込み後の「ファイルA」に更新する(ステップS9)。これにより、デバイス20の第1キャッシュメモリ24およびデバイス30の第1キャッシュメモリ34の各々に記憶された「ファイルA」の整合性を図ることができるという有利な効果を奏する。
【0031】
また、メモリカード10の更新部42は、第2キャッシュメモリ16に記憶されたファイルAを、書き込み後のファイルAに更新する(ステップS10)。これにより、デバイス20の第1キャッシュメモリ24、メモリカード10の第2キャッシュメモリ16、および、デバイス30の第1キャッシュメモリ34の各々に記憶されたデータの整合性を図ることができる。
【0032】
図4は、デバイス20が、メモリカード10に対してブロック単位のアクセスを実行した場合におけるシステム100の具体的な動作の一例を示すシーケンス図である。ここでは、デバイス20が、「ファイルA」に属する所定のブロックの読み出しを要求するブロック読み出し要求をメモリカード10に送信する場合の動作例と、「ファイルA」に属する所定のブロックの書き込みを要求するブロック書き込み要求をメモリカード10に送信する場合の動作例を説明する。まず、デバイス20が、ブロック読み出し要求をメモリカード10に送信する場合の動作例を説明する。
【0033】
ここで、前述したように、ブロック読み出し要求には、読み出しを要求するブロックのアドレス情報が含まれるので、ブロック読み出し要求を受信したメモリカード10(読み出し部40)は、その読み出しが要求されたブロックのストレージデバイス12における位置を特定することはできるものの、当該ブロックが属するファイルを特定するためには他の処理が必要であり、当該ブロックが属するファイルを直ちに特定することは困難である。そこで、本実施形態では、図4に示すように、デバイス20の読み出し要求部50は、ブロック読み出し要求を送信する前に、読み出し対象のファイルを示す読み出しファイル情報をメモリカード10に送信するように外部I/F部23を制御する(ステップS20)。ここでは、読み出し要求部50は、読み出し対象のファイルが「ファイルA」であることを示す読み出しファイル情報をメモリカード10に送信するように外部I/F部23を制御する。メモリカード10の読み出し部40は、外部I/F部14で読み出しファイル情報を受信した場合、その読み出しファイル情報を参照して、読み出し対象のファイルを特定する(ステップS21)。ここでは、読み出し部40は、読み出し対象のファイルとして「ファイルA」を特定する。
【0034】
次に、メモリカード10の制御部43は、他のデバイス30に対して、書き込み要求を受け付けないことを示す書き込み不可情報を送信するように無線通信部15を制御する(ステップS22)。次に、デバイス20の読み出し要求部50は、メモリカード10に対してブロック読み出し要求を送信するように外部I/F部23を制御する(ステップS23)。次に、メモリカード10の読み出し部40は、読み出し対象のファイルである「ファイルA」に属する複数のブロックのうち、ブロック読み出し要求に含まれるアドレス情報で特定されるブロックのデータをストレージデバイス12から読み出す(ステップS24)。そして、読み出し部40は、その読み出したブロックのデータを、ブロック読み出し要求に対する応答として、デバイス20に送信するように外部I/F部14を制御する(ステップS25)。
【0035】
次に、デバイス20が、ブロック書き込み要求をメモリカード10に送信する場合の動作例を説明する。上述のブロック単位の読み出しを要求する場合と同様に、デバイス20の書き込み要求部51は、ブロック書き込み要求を送信する前に、書き込み対象のファイルを示す書き込みファイル情報をメモリカード10に送信するように外部I/F部23を制御する(ステップS26)。ここでは、書き込み要求部51は、書き込み対象のファイルが「ファイルA」であることを示す書き込みファイル情報をメモリカード10に送信するように外部I/F部23を制御する。メモリカード10の書き込み部41は、外部I/F部14で書き込みファイル情報を受信した場合、その書き込みファイル情報を参照して、書き込み対象のファイルを特定する(ステップS27)。ここでは、書き込み部41は、書き込み対象のファイルとして「ファイルA」を特定する。
【0036】
次に、メモリカード10の制御部43は、他のデバイス30に対して、書き込み要求および読み出し要求の両方を受け付けないことを示すアクセス不可情報を送信するように無線通信部15を制御する(ステップS28)。
【0037】
次に、デバイス20の書き込み要求部51は、メモリカード10に対してブロック書き込み要求を送信するように外部I/F部23を制御する(ステップS29)。このとき、デバイス20のキャッシュ更新部52は、第1キャッシュメモリ24に記憶された書き込み対象の「ファイルA」を、ブロック書き込み要求に応じて更新する。より具体的には、キャッシュ更新部52は、第1キャッシュメモリ24に記憶された「ファイルA」が有する複数のブロックのうち、ブロック書き込み要求に含まれるアドレス情報で特定されるブロックの内容を、当該ブロック書き込み要求に応じた書き込みが行われた場合のデータに更新する。
【0038】
次に、メモリカード10の書き込み部41は、書き込み対象のファイルである「ファイルA」に属する複数のブロックのうち、ブロック書き込み要求に含まれるアドレス情報で特定されるブロックに対するデータの書き込みを行う(ステップS30)。次に、メモリカード10の制御部43は、書き込み部41による書き込みが行われた後の「ファイルA」をデバイス30へ送信するように無線通信部15を制御する(ステップS31)。次に、デバイス30のキャッシュ更新部62は、書き込み後の「ファイルA」を無線通信部33で受信したときに、第1キャッシュメモリ34に記憶された「ファイルA」を、書き込み後の「ファイルA」に更新する(ステップS32)。これにより、デバイス20の第1キャッシュメモリ24およびデバイス30の第1キャッシュメモリ34の各々に記憶された「ファイルA」の整合性を図ることができるという有利な効果を奏する。
【0039】
また、メモリカード10の更新部42は、第2キャッシュメモリ16に記憶されたファイルAを、書き込み後のファイルAに更新する(ステップS33)。これにより、デバイス20の第1キャッシュメモリ24、メモリカード10の第2キャッシュメモリ16、および、デバイス30の第1キャッシュメモリ34の各々に記憶されたデータの整合性を図ることができる。
【0040】
さらに、本実施形態では、メモリカード10のストレージデバイス12に記憶された複数のファイルの各々に対するアクセス権限(パーミッション)が、デバイスごとに個別に設定される。例えば所定のファイルに関する特定のデバイスのパーミッションが、読み出し要求が常時許可されるように設定されることにより、当該所定のファイルに対する当該特定のデバイスからのアクセスが遅延することを回避できる。いま、ストレージデバイス12に記憶された「ファイルB」に関するデバイス20のパーミッションは、読み出し要求および書き込み要求の両方が常時許可されるように設定され、「ファイルB」に関するデバイス30のパーミッションは、読み出し要求は常時許可される一方、書き込み要求は許可されないように設定される場合を想定する。なお、これは一例であり、各デバイスのパーミッションの設定は任意に変更可能である。
【0041】
図5は、デバイス20およびデバイス30の各々が、「ファイルB」に対してアクセスを実行した場合におけるシステム100の具体的な動作の一例を示すシーケンス図である。ここでは、デバイス20が、「ファイルB」の読み出しを要求するファイル読み出し要求(「ファイルB読み出し要求」と呼ぶ)をメモリカード10に送信する場合の動作例と、「ファイルB」に対するファイル単位のデータの書き込みを要求するファイル書き込み要求(「ファイルB書き込み要求」と呼ぶ)をメモリカード10に送信する場合の動作例と、デバイス30が、ファイルB読み出し要求をメモリカード10に送信する場合の動作例と、ファイルB書き込み要求をメモリカード10に送信する場合の動作例と、を説明する。
【0042】
まず、デバイス20が、ファイルB読み出し要求をメモリカード10に送信する場合の動作例を説明する。図5に示すように、デバイス20の読み出し要求部50が、メモリカード10に対してファイルB読み出し要求を送信するように外部I/F部23を制御する(ステップS40)。上述したように、「ファイルB」に関するデバイス30のパーミッションは、読み出し要求は常時許可される一方、書き込み要求は許可されないように設定されるので、メモリカード10の制御部43は、デバイス30に対して、読み出し要求(ファイル読み出し要求、ブロック読み出し要求を含む)を受け付けないことを示す読み出し不可情報や前述の書き込み不可情報を送信するように無線通信部15を制御する必要は無い。
【0043】
次に、メモリカード10の読み出し部40は、ファイルB読み出し要求によって読み出しが要求された「ファイルB」をストレージデバイス12から読み出す(ステップS41)。そして、読み出し部40は、その読み出した「ファイルB」を、ファイルB読み出し要求に対する応答として、デバイス20に送信するように外部I/F部14を制御する(ステップS42)。
【0044】
次に、デバイス20が、ファイルB書き込み要求をメモリカード10に送信する場合の動作例を説明する。図5に示すように、デバイス20の書き込み要求部51が、メモリカード10に対してファイルB書き込み要求を送信するように外部I/F部23を制御する(ステップS43)。上述したように、「ファイルB」に関するデバイス30のパーミッションは、読み出し要求は常時許可される一方、書き込み要求は許可されないように設定されるので、ここでも、メモリカード10の制御部43は、デバイス30に対して、読み出し不可情報や書き込み不可情報を送信するように無線通信部15を制御する必要は無い。また、このとき、デバイス20のキャッシュ更新部52は、第1キャッシュメモリ24に記憶された「ファイルB」の内容を、ファイルB書き込み要求に応じた書き込みが行われた場合のデータに更新する。
【0045】
次に、メモリカード10の書き込み部41は、「ファイルB」に対するファイル単位のデータの書き込みを実行する(ステップS44)。次に、メモリカード10の制御部43は、書き込み部41による書き込みが行われた後の「ファイルB」をデバイス30へ送信するように無線通信部15を制御する(ステップS45)。次に、デバイス30のキャッシュ更新部62は、書き込み後の「ファイルB」を無線通信部33で受信したときに、第1キャッシュメモリ34に記憶された「ファイルB」を、書き込み後の「ファイルB」に更新する(ステップS46)。また、メモリカード10の更新部42は、第2キャッシュメモリ16に記憶された「ファイルB」を、書き込み後の「ファイルB」に更新する(ステップS47)。これにより、デバイス20の第1キャッシュメモリ24、メモリカード10の第2キャッシュメモリ16、および、デバイス30の第1キャッシュメモリ34の各々に記憶された「ファイルB」の整合性を図ることができる。
【0046】
次に、デバイス30が、ファイルB読み出し要求をメモリカード10に送信する場合の動作例を説明する。図5に示すように、デバイス30の読み出し要求部60が、メモリカード10に対してファイルB読み出し要求を送信するように無線通信部33を制御する(ステップS48)。上述したように、「ファイルB」に関するデバイス20のパーミッションは、読み出し要求および書き込み要求が常時許可されるように設定されるので、メモリカード10の制御部43は、デバイス20に対して、読み出し不可情報や書き込み不可情報を送信するように外部I/F部14を制御する必要は無い。
【0047】
次に、メモリカード10の読み出し部40は、ファイルB読み出し要求によって読み出しが要求された「ファイルB」をストレージデバイス12から読み出す(ステップS49)。そして、読み出し部40は、その読み出した「ファイルB」を、ファイルB読み出し要求に対する応答として、デバイス30に送信するように無線通信部15を制御する(ステップS50)。
【0048】
次に、デバイス30が、ファイルB書き込み要求をメモリカード10に送信する場合の動作例を説明する。図5に示すように、デバイス30の書き込み要求部61が、メモリカード10に対してファイルB書き込み要求を送信するように無線通信部33を制御する(ステップS51)。上述したように、「ファイルB」に関するデバイス30のパーミッションは、読み出し要求は常時許可される一方、書き込み要求は許可されないように設定されるので、メモリカード10の制御部43は、デバイス30に対して、書き込み不可情報を送信するように無線通信部15を制御する(ステップS52)。
【0049】
以上は、デバイス20およびデバイス30の各々が、「ファイルB」に対してファイル単位のアクセスを実行した場合におけるシステム100の動作例であるが、ブロック単位のアクセスを実行した場合におけるシステム100の動作例についても、ブロック読み出し要求を送信する前に読み出しファイル情報を送信する点、および、ブロック書き込み要求を送信する前に書き込みファイル情報を送信する点を除き、図5の例と同様である。
【0050】
以上、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0051】
上述の実施形態では、メモリカード10は、2つのデバイスと通信を行う構成を例示したが、これに限らず、例えばメモリカード10は、3つ以上のデバイスと通信を行う構成であってもよい。
【0052】
また、上述の実施形態では、デバイスが、メモリカード10のストレージデバイス12に記憶されたファイルの読み出しを要求する場合、まずデバイスは、メモリカード10に対してファイル読み出し要求を送信しているが、これに限らず、例えばデバイスは、ファイル読み出し要求を送信する前に、読み出し対象のファイルを示す読み出しファイル情報をメモリカード10に対して送信する構成であってもよい。
【0053】
さらに、上述の実施形態では、デバイスが、メモリカード10のストレージデバイス12に記憶されたファイルに対するデータの書き込みを要求する場合、まずデバイスは、メモリカード10に対してファイル書き込み要求を送信しているが、これに限らず、例えばデバイスは、ファイル書き込み要求を送信する前に、書き込み対象のファイルを示す書き込みファイル情報をメモリカード10に対して送信する構成であってもよい。
【0054】
なお、上述の実施形態では、第1キャッシュメモリ(24、34)はメモリ(22、32)に含まれているが、これに限らず、第1キャッシュメモリ(24、34)が、メモリ(22、32)とは別に設けられてもよい。同様に、第2キャッシュメモリ13が、メモリ13とは別に設けられてもよい。さらに、第2キャッシュメモリ13が設けられない構成であってもよい。
【符号の説明】
【0055】
10 メモリカード
11 CPU
12 ストレージデバイス
13 メモリ
14 外部I/F部
15 無線通信部
16 第2キャッシュメモリ
20 デバイス
21 CPU
22 メモリ
23 外部I/F部
24 第1キャッシュメモリ
30 デバイス
31 CPU
32 メモリ
33 無線通信部
34 第1キャッシュメモリ
40 読み出し部
41 書き込み部
42 更新部
43 制御部
50 読み出し要求部
51 書き込み要求部
52 キャッシュ更新部
60 読み出し要求部
61 書き込み要求部
62 キャッシュ更新部
100 システム

【特許請求の範囲】
【請求項1】
複数のデータを記憶する記憶部と、
前記記憶部に記憶された前記複数のデータのうちの少なくとも一部を記憶する第1キャッシュメモリを有する複数の外部機器と通信する通信部と、
前記複数の外部機器のうちの何れかの外部機器から、データの書き込みを要求する書き込み要求を前記通信部で受信した場合、その書き込みが要求されたデータを前記記憶部に書き込む書き込み部と、
前記書き込み部により書き込まれたデータを、前記書き込み要求を送信した前記外部機器とは異なる前記外部機器へ送信するように前記通信部を制御する制御部と、を備える、
ことを特徴とする記憶装置。
【請求項2】
前記記憶部に記憶された前記複数のデータのうちの少なくとも一部を記憶する第2キャッシュメモリと、
前記複数のデータのうち、前記第2キャッシュメモリに記憶されたデータに対応する前記記憶部のデータが、前記書き込み部の書き込みによって変更された場合、その書き込み結果に合わせて前記第2キャッシュメモリを更新する更新部と、をさらに備える、
ことを特徴とする請求項1に記載の記憶装置。
【請求項3】
前記制御部は、
前記複数の外部機器の各々に対して、当該外部機器のアクセス権限に応じた通知を行うように前記通信部を制御する、
ことを特徴とする請求項1に記載の記憶装置。
【請求項4】
前記複数の外部機器のうちの何れかの外部機器から、前記複数のデータのうちの何れかの読み出しを要求する読み出し要求を前記通信部で受信した場合、その読み出しが要求されたデータを前記記憶部から読み出す読み出し部をさらに備える、
ことを特徴とする請求項1に記載の記憶装置。
【請求項5】
記憶部に記憶された複数のデータのうちの少なくとも一部を記憶するキャッシュメモリを有する複数の外部機器のうちの何れかの外部機器から、データの書き込みを要求する書き込み要求を受信した場合、その書き込みが要求されたデータを前記記憶部に書き込む書き込みステップと、
前記書き込みステップにより書き込まれたデータを、前記書き込み要求を送信した前記外部機器とは異なる前記外部機器へ送信する送信ステップと、をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−208584(P2012−208584A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−72087(P2011−72087)
【出願日】平成23年3月29日(2011.3.29)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】