説明

アクセス制御装置

【課題】複数の機器でリムーバブルメディアへのアクセスを可能にすること。
【解決手段】実施形態によれば、リムーバブルメディアとの間で通信を行うメディア通信部と、前記リムーバブルメディアに対してアクセスを行うアクセス手段と、外部機器と無線通信し、前記リムーバブルメディアに対するアクセスを受ける無線通信部と、前記アクセス手段および前記外部機器のうち一つに前記リムーバブルメディアへのアクセス権を割り当てる制御手段であって、前記外部機器又は前記アクセス手段から前記アクセス権の割り当ての要求があった場合、当該要求に応じて前記アクセス権を割り当てる、制御手段とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、複数の機器によるリムーバブルメディアやEmbedded SD等の内蔵ストレージのアクセスを制御するアクセス制御装置およびアクセス制御システムに関する。
【背景技術】
【0002】
SDメモリカード等のリムーバブルメディアやEmbedded SD等の内蔵ストレージが、イメージデータやビデオデータの格納に広く用いられている。
リムーバブルメディアを同時に複数の機器からマウントし、複数の機器からリムーバブルメディアにアクセスできるようにすることが望まれている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2011−517862号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
課題と目的とを記載する。
【0005】
リムーバブルメディアやEmbedded SD等の内蔵ストレージを同時に複数の機器からマウントし、複数の機器からリムーバブルメディアにアクセスできるようにすることが望まれている。
【0006】
本発明の目的は、複数の機器でリムーバブルメディアやEmbedded SD/Embedded SDIO等の内蔵ストレージにアクセスできるようにすることが可能なアクセス制御装置およびアクセス制御システムを提供することにある。
【課題を解決するための手段】
【0007】
実施形態によれば、アクセス制御装置は、リムーバブルメディアとの間で通信を行うメディア通信部と、第1の外部機器および第2の外部機器を含む複数の外部機器と無線通信の接続を確立し、各外部機器からの前記リムーバブルメディアに対するアクセスを受ける無線通信部と、前記複数の外部機器のうち一つの外部機器に前記リムーバブルメディアへのアクセス権を割り当てるアクセス制御手段であって、前記第1の外部機器に前記アクセス権が割り当てられておらず、前記第2の外部機器に前記アクセス権が割り当てられている場合、前記第1の外部機器から前記アクセス権の要求を規定したコマンドを受けた場合、当該コマンドに応じて前記アクセス権を前記第1の外部機器に割り当てる、アクセス制御手段と、前記第1の外部機器への前記アクセス権の割り当てに応じて、前記第2の外部機器がアクセス権をレジュームする場合、前記第2の外部機器の前記アクセス権がインアクティブ状態の間に前記リムーバブルメディア内のデータが変更されていた場合、前記リムーバブルメディア内のデータが変更された旨を通知する第1の通知手段と、前記リムーバブルメディアに格納されているファイルシステム関連情報を取得し、前記ファイルシステム関連情報をキャッシュし、前記第1の通知手段からの通知に応じて前記ファイルシステム関連情報を再取得する取得手段と、を具備し、前記第1の外部機器にアクセス権が割り当てられている場合、前記第1の外部機器は前記リムーバブルメディアにアクセスするための規格化されたコマンドに対応するコマンドを送信する。
【図面の簡単な説明】
【0008】
【図1】実施形態の通信システムの構成の一例を示すブロック図である。
【図2】図1の通信システムのアーキテクチャの一例を示すブロック図である。
【図3】デバイスとホストの間のセッションの遷移の一例を示す図である。
【図4】セッションの開始およびSDメモリカード300をデバイスおよびホストで供給を開始するためのセッション準備(Session setup)の手順の一例を示す図である。
【図5】SDバスハンドルの状態の遷移の一例を示す図である。
【図6】SDバスハンドルがロックされていない際のSDバスへのアクセスについて説明するための図である。
【図7】他のホストがアクセスしている際のSDバスへのアクセスを説明するための図である。
【図8】他のホストによってSDバスハンドルがロックされている際にSDバスへのアクセスについて説明するための図である。
【図9】SDメモリカード内に格納されているデータの変更の通知のしくみを説明するための図である。
【図10】SDバスハンドルのサスペンド/レジュームについて説明するための図である。
【図11】ホストが2台ある場合、バスハンドルがインアクティブ状態の間の他のホストによるSDバスハンドルの取得を説明するための図である。
【図12】ホストが2台ある場合、第2のホストがSDバスハンドルをロックされたインアクティブ状態にした場合に第1のホストがアクセスできないことを説明するための図である。
【図13】他のホストがSDバスにアクセスしている状態でのSDバスハンドルのレジュームについて説明するための図である。
【図14】他のホストがSDバスにアクセスしている状態でのSDPALセッションのセットアップについて説明するための図である。
【図15】“GetBusHandle.request”および“GetBusHandle.response”で用いるパラメータとその値について説明するための表である。
【図16】“ReleaseBusHandle.request”および“ReleaseBusHandle.response” で用いるパラメータとその値について説明するための図である。
【図17】“BusHandleResume.request”および“BusHandleResume.response” で用いるパラメータとその値について説明するための図である。
【図18】“BusHandleSuspend.request”および“BusHandleSuspend.response” で用いるパラメータとその値について説明するための図である。
【図19】デバイスからホストへの通知について説明するための図である。
【図20】SDバスハンドルの状態の遷移の別の一例を説明するための図である。
【発明を実施するための形態】
【0009】
以下、実施の形態について図面を参照して説明する。
【0010】
図1は、一実施形態に係わる通信システムの構成を示すブロック図である。
図1に示すように、通信システムは、デバイス100とホスト200とから構成されている。デバイス100とホスト200とは、例えばWiFiやWiGig(Wireless Gigabit)等の高速無線通信によって、データの転送を行うことが可能である。
【0011】
デバイス100は、デバイス側PHY/MAC層101、デバイス側SD PAL(SD Protocol Adaptation Layer)部102、デバイス側SDアプリケーション103、SDホストコントローラドライバ104、SD相互接続部105、SDホストコントローラ106、SDカードスロット107等を備えている。
【0012】
デバイス側PHY/MAC層101は、WiFiやWiGig(Wireless Gigabit)等の高速無線通信を行い、物理層とメディアアクセス制御層とを有する。
【0013】
SDカードスロット107には、例えばSDメモリカード300等の可搬性のリムーバブルメディアが挿入される。SDホストコントローラ106は、SDカードスロットに挿入されたSDメモリカードと通信を行ってデータの転送を行う。
【0014】
デバイス側SDアプリケーション03は、SDメモリカード300にアクセスするアプリケーションである。SD H/Cドライバ104は、SDカードホストコントローラ106を制御し、デバイス側SDアプリケーション103に対して抽象化したインタフェースを提供するためのソフトウェアである。
【0015】
デバイス側SD PAL部102は、SDカードホストコントローラ106とホスト200との間で交換されるコマンドを変換する。例えば、SDカードホストコントローラ106からホスト200にコマンドを送信する場合、SDカード規格のコマンドを高速無線通信で送信するために適したコマンドに変換する。また、例えば、ホスト200からコマンドを受信した場合、高速無線通信で送信するために適したコマンドをSDカード規格のコマンドに変換する。
【0016】
SD相互接続部105は、SDメモリカード300へのアクセスをデバイス側SDアプリケーション103からのアクセスとホスト200のSDアプリケーション201からのアクセスを切り替える機能を有する。
【0017】
ホスト200は、ホスト側SDアプリケーション201、SDカード仮想コントローラ202、ホスト側SD PAL部(SD PAL)203、ホスト側PHY/MAC層204等を有する。
【0018】
ホスト側PHY/MAC層204は、WiGig(Wireless Gigabit)等の高速無線通信を行い、物理層とメディアアクセス制御層とを有する。SDカード仮想コントローラ202は、ホスト側SDアプリケーション201がSDメモリカード300内のデータにアクセスするための仮想的なコントローラであり、ホスト側SD PAL部203に送信するコマンドに変換する。ホスト側SD PAL部203とデバイス側SD PAL部の間は、高速無線通信で送信するために適したコマンドが送受信される。
【0019】
次に、図2を参照して、通信システムのアーキテクチャを説明する。
ホスト200は、ホスト側ファイルシステム205、ホスト側SDアプリケーション201、ホスト側SD PAL部203、ホスト側PHY/MAC層204等を備えている。
【0020】
ホスト側ファイルシステム205は、SDメモリカードに格納されているSDメモリカード内のファイルの読み書きを行うためのファイスシステムの解析を行う。ホスト側ファイルシステム205は、最初にSDメモリカード300にアクセスした際、アクセスの高速化を図るためにSDメモリーカードに格納されているFAT(ファイルの位置情報などを記録するためのテーブル)をキャッシュする。
【0021】
デバイス100は、デバイス側PHY/MAC層101、デバイス側SD PAL部102、デバイス側SDアプリケーション103、デバイス側ファイルシステム108、SD相互接続部105、SDカードホストコントローラ106、デバイス側SD IF/UHS−II IF109、デバイス側PHY/LINK層110等を備えている。
【0022】
デバイス側ファイルシステム108は、SDメモリカードに格納されているSDメモリカード内のファイルの読み書きを行うためのファイルシステムの解析を行う。デバイス側ファイルシステム108は、最初にSDメモリカード300にアクセスした際、アクセスの高速化を図るためにSDメモリーカードに格納されているFATをキャッシュする。
【0023】
SD IF/UHS−II IF109は、SD規格およびUHS−II規格に対応するインタフェースである。デバイス側PHY/LINK層110は、物理層と、データリンク層とを有する。
【0024】
SDメモリカード300は、カードPHY/LINK層301、カードSD IF/UHS−II IF302、フラッシュメモリ303等を備えている。
【0025】
デバイス側PHY/LINK層301は、物理層と、データリンク層とを有する。カードSD IF/UHS−II IF302は、SD規格およびUHS−II規格に対応するインタフェースである。フラッシュメモリ303は、データが格納される不揮発性メモリである。
【0026】
次に、デバイス100とホスト200の間のセッションの遷移について図3を参照して説明する。
通信が行われていない未接続(No connection)から接続の確立(Connection established)を経て、接続(Connected)に推移する。接続(Connected)から、セッション準備(Session setup)を経て、セッションアクティブ(session active)に推移する。セッションアクティブ(有効)(session active)から、セッション終了(Session terminate)を経て、接続(Connected)に推移する。接続(Connected)から、接続不明(Connection lost)を経て、未接続(No connection)に推移する。
【0027】
次に、高速無線通信の開始およびSDメモリカード300をデバイスおよびホストからアクセスを開始するためのセッション準備(Session setup)の手順について図4を参照して説明する。
【0028】
ホスト側PHY/MAC層204とデバイス側PHY/MAC層101との間で、無線通信を行うためのリンクが開始される(Link Startup)。リンク開始後、通信サービスが両者を見つけられ、通信がセキュア化される(Service Discovery/Security)。SDメモリカードがSDカードスロットに挿入されると、SD相互接続部105は、SDメモリカード300との通信を可能にするために、デバイス側SD IF/UHS−II IF109およびカードSD IF/UHS−II IF302の初期化が行われる。初期化後、SD相互接続部105は、初期化されたことをデバイス側SDアプリケーション103に通知する(notification(SD Initialized))。デバイス側SDアプリケーション103は、デバイス側SD PAL部102にSDカードをSD PALの開始を要求する(SD PAL start request)。デバイス側SD PAL部102は、SD PALの開始をホスト側SD PAL部203に要求する(notification(SD PAL start request))。
【0029】
ホスト側SD PAL部203は、SD PALの開始要求通知notification(SD PAL start request)を受信したことをホスト側SDアプリケーション201に通知する(notification)。ホスト側SDアプリケーション201は、SD PAL開始要求SD PAL start requestをデバイス側SD PAL部102に送信し、SD PALセットアップを要求する。デバイス側SD PAL部102は、SD PALセットアップの要求に対し“SDPAL setup response”をホスト側SD PAL部203で応答する。
【0030】
ホスト側SD PAL部203は、ホストの能力を送信すると共にデバイスの能力の送信を要求する、“capability exchange (Host PAL Information) request”をホスト側の能力であるバッファサイズ等の情報と共にデバイス側SD PAL部102に送信する。capability exchange requestの受信に応じて、デバイス側SD PAL部102は、SDメモリカード300の容量、対応する規格の能力を示す、“capability exchange response”をホスト側SD PAL部203に送信する。
【0031】
ホスト側SD PAL部203は、デバイス側SD IF/UHS−II IF109によりアクセス可能なSDデバイスへのアクセス権を要求するために、“get bus handle request”をデバイス側SD PAL部102に送信する。デバイス側SD PAL部102は、“get bus handle request”の受信に応じて、SD相互接続部105にホスト200によるSDカードへのアクセス権を取得できるかを問い合わせる。問い合わせに応じて、SD相互接続部105は、アクセス権を許可する場合に、デバイス側SD PAL部102に許可する旨を返答する。デバイス側SD PAL部102は、get bus handle responseをホスト側SD PAL部203に送信する。ホスト側SD PAL部203は、ホスト側SDアプリケーション201にバスハンドルを取得できたことを通知する。
【0032】
次に、図5を参照して、ホスト200のSDバスハンドル(アクセス権)の状態の遷移を説明する。
【0033】
非割り当て状態(Bus handle not assigned)は、ホスト200にSDバスハンドルが割り当てられていない状態である。この状態では、ホスト200はSDバスおよびSDメモリーカード(SDデバイス)300にアクセスはできないが、デバイス100は、SDバスおよびSDメモリカード(SDデバイス)300にアクセスすることが可能である。ホスト200が、SDバスハンドルを取得すると(Get Bus handle)、ホスト200に対するSDバスハンドルが、非割り当て状態からアクティブ状態(Bus active)になる。アクティブ状態では、ホスト200がSDバスおよびSDデバイスにアクセスすることが可能である。
【0034】
SDバスハンドルがサスペンドされると、ホスト200に対するSDバスハンドルが、アクティブ状態(Bus handle active)からインアクティブ(無効)状態(Bus handle inactive)に移行する。インアクティブ状態では、ホスト200はSDバスおよびSDデバイスへのアクセス権を一時的に解放し、デバイス100がSDバスおよびSDデバイスにアクセスすることが可能になる。バスハンドルがインアクティブ状態においてSDバスがレジュームされると、SDバスハンドルの状態がインアクティブ状態(Bus handle inactive)からアクティブ状態(Bus handle active)に移行する。なお、インアクティブ状態の間にSDメモリカード300内のデータが変更されていたら、データが変更されたことがホスト200に通知される。
【0035】
SDバスがロックモードでサスペンドされると、SDバスハンドルが、アクティブ状態(Bus handle active)からロックされたインアクティブ状態(Bus handle inactive(locked))に移行する。ロックされたインアクティブ状態では、ホスト200はSDバスおよびSDデバイスへのアクセス権を一時的に解放しているが、デバイス100はローカルなSDバスおよびSDデバイスにローカルにアクセスすることができない。SDバスハンドルがレジュームされると、SDバスハンドルの状態がロックされたインアクティブ状態からアクティブ状態に移行する。
【0036】
なお、アクティブ状態、インアクティブ状態、およびロックされたインアクティブ状態は、ホスト200にバスハンドルが割り当てられている状態である(Bus assigned)。
【0037】
次に、SDバスハンドルがインアクティブ状態の際に、他のホストがSDバスへのアクセス要求がある場合について、図6を参照して説明する。なお、以下では、デバイス100をローカルホスト(LH)100、ホスト200をリモートホスト(RH)200と記すこともある。
【0038】
図6では、“Bus Handle L”はローカルホスト100に対するSDバスハンドルの状態を示し、“Bus state”はSDバスの状態を示し、“Bus Handle R”はリモートホスト200に対するSDバスハンドルの状態を示す。
【0039】
最初に、SDメモリカード300がSDカードスロット107に挿入されていないので、SDバスは利用できない。SDバスのアクセス権はローカルホストへおよびリモートホストに割り当てられていない。SDメモリカード300がSDカードスロット107に挿入され、ローカルホスト100によってSDバスが初期化された後(ステップ601)、SDバスがアクティブ化され、SDバスハンドルがローカルホスト100に割り当てられる。
【0040】
ローカルホスト100(デバイスSDアプリケーション103)がSDバスハンドルをサスペンドした場合、ローカルホスト100に対するSDバスの割り当てがインアクティブ化し、SDバスがインアクティブ状態に移行する(ステップ602)。SDバスは、省電力モードに移行してもよい。
【0041】
リモートホスト200(ホストSDアプリケーション201)がSDメモリカード300へのアクセスを開始する場合、リモートホスト200(ホストSDアプリケーション201)に対するSDバスハンドルがアクティブ化し、SDバスは、インアクティブ状態からアクティブ状態に移行する(ステップ603)。
【0042】
リモートホスト200(ホストSDアプリケーション201)がSDバスハンドルをサスペンドした場合、リモートホスト200に対するSDバスハンドルが、インアクティブ化し、SDバスは、インアクティブ状態に移行する(ステップ604)。
【0043】
ローカルホスト100(デバイスSDアプリケーション103)がSDメモリカード300へのアクセスを再開する場合、ローカルホスト100に対するSDバスハンドルが、アクティブ化し、SDバスは、インアクティブ状態からアクティブ状態に移行する(ステップ605)。
【0044】
なお、SDバスハンドルのアクティブ状態とインアクティブ状態の切り替えの判断は、SD相互接続部105によって行われる。
【0045】
次に、ローカルホスト100によってSDバスがアクティブ化されている間のSDバスへのアクセスについて図7を参照して説明する。
【0046】
図7において、Bus State Lはローカルホスト100に対するSDバスハンドルの状態を示し、Bus stateはSDバスの状態を示し、Bus State Rはリモートホスト200に対するSDバスハンドルの状態を示す。
【0047】
最初に、SDメモリカード300がSDカードスロット107に挿入されていないので、SDバスは利用できない。SDバスハンドルはローカルホストへのSDバスおよびリモートホストに割り当てられていない。SDメモリカード300がSDカードスロット107に挿入され、ローカルホスト100によってSDバスが初期化された後、SDバスがアクティブ化され、SDバスハンドルがローカルホスト100に割り当てられる。
【0048】
ステップ701:ローカルホスト100がSDメモリカード300へのアクセス権がある状態で、リモートホスト200は、SDバスハンドルの取得を試みる。ローカルホスト100がSDメモリカード300にアクセスしているのでリモートホスト200の試みは失敗する。
【0049】
ステップ702:ローカルホスト100がSDメモリカードへのアクセス権がある状態であった場合にアクセス権を放棄するように要求を行うという条件つきで、リモートホスト200は、SDバスハンドルの取得を試みる。SD相互接続部105は、SDバスへのアクセスをサスペンドまたは停止するようにローカルホスト100に通知する。ローカルホスト100は、サスペンドをしてもよい状態になるまでSDバスへのアクセスを行い、一区切りした段階でSDバスハンドルをサスペンドする。リモートホスト200には、SD相互接続部105からSDバスが利用できるようになったことが通知される。リモートホスト200は、SDバスハンドルの取得要求を再度行い、SDバスへのアクセス権を取得する。
【0050】
ステップ703:リモートホスト200がSDメモリカードへのアクセス権を取得している状態で、ローカルホスト100は、SDバスハンドルの取得を試みる。このとき、ローカルホスト100は、SDバスハンドルの取得を許可されず、ローカルホスト100に対するSDバスハンドルの取得要求は失敗する。
【0051】
ステップ704:リモートホスト200がSDメモリカード300へのアクセス権を取得している状態であった場合にアクセス権を放棄するように要求を行うという条件つきでローカルホスト100は、SDバスハンドルの取得を試みる。ローカルホストとSD相互接続部105は、SDバスへのアクセスをサスペンドまたは停止するようにリモートホスト200に通知する。リモートホスト200は、サスペンドをしてもよい状態になるまでSDバスへのアクセスを行い、一区切りした段階でSDバスハンドルをサスペンドする。ローカルホスト100には、SD相互接続部105からSDバスが利用できるようになったことが通知される。ローカルホスト100は、SDバスハンドルの取得要求を再度行い、SDバスへのアクセス権を取得する。
【0052】
ステップ705:ローカルホスト100がSDメモリカードへのアクセス権を取得している状態で、リモートホスト200は、SDバスハンドルの取得を試みる。リモートホスト200によるSDバスハンドルの取得は失敗する。
【0053】
ステップ706:ローカルホスト100がSDメモリカードへのアクセス権を取得している状態であった場合にアクセス権を放棄するように要求を行うという条件つきでリモートホスト200は、SDバスハンドルのレジュームを試みる。SD相互接続部105は、SDバスハンドルがサスペンドまたは停止するようローカルホスト100に通知する。ローカルホスト100は、サスペンドまたは停止をしてもよい状態になるまでSDバスへのアクセスを行い、一区切りした段階でSDバスハンドルをサスペンドするリモートホスト200には、SD相互接続部105からSDバスが利用できるようになったことを通知する。リモートホスト200は、SDバスハンドルを再度レジューム要求し、SDバスへのアクセス権を取得する。
【0054】
ステップ707:リモートホスト200がSDメモリカードへのアクセス権を取得している状態で合った場合にアクセス権を放棄するように要求を行うという条件つきで、ローカルホスト100は、SDバスハンドルのレジュームを試みる。SD相互接続部105は、SDバスハンドルのサスペンドまたは終了要求をリモートホスト200に通知する。リモートホスト200は、サスペンドまたは停止をしてもよい状態になるまでSDバスへのアクセスを行い、一区切りした段階でSDバスハンドルの終了要求を行う。ローカルホスト100には、SD相互接続部105からSDバスが利用できるようになったことを通知する。ローカルホスト100は、SDバスハンドルをレジュームし、SDバスへのアクセス権を再度取得する。
【0055】
次に、SDバスがロックされている間のSDバスへのアクセスについて図8を参照して説明する。
【0056】
図8において、Bus State Lはローカルホスト100に対するSDバスハンドルの状態を示し、Bus stateはSDバスの状態を示し、Bus State Rはリモートホスト200に対するSDバスハンドルの状態を示す。
【0057】
最初に、SDメモリカード300がSDカードスロット107に挿入されていないので、SDバスは利用できない。SDバスハンドルはローカルホスト100およびリモートホスト200に割り当てられていない。SDメモリカード300がSDカードスロット107に挿入され、ローカルホスト100によってSDバスが初期化された後、SDバスがアクティブ化され、SDバスハンドルがローカルホスト100に割り当てられる。
【0058】
ステップ801:ローカルホスト100は、SDバスハンドルをロックモードでサスペンドする。SDバスの状態は、SDバスにアクセスすることができない、ロックモードに移行する。なお、SDバスは省電力モードに移行してもよい。
【0059】
ステップ802:リモートホスト200は、SDバスハンドルの取得を試みる。SDバスハンドルはローカルホスト100によってロックされているので、リモートホストはSDバスハンドルを取得することができない。リモートホスト200には、SD相互接続部105からロックモードであることが通知される。
【0060】
ステップ803:リモートホスト200は、SDバスハンドルのアクセス権を取得している状態であった場合にアクセス権を放棄するように要求を行うという条件付きで、SDバスハンドルの取得を試みる。SD相互接続部105は、SDバスハンドルをサスペンドまたは終了するようローカルホスト100に要求する。ローカルホスト100はSDバスハンドルをまずはアクティブ化し、リモートホストからアクセスされてもよい状態になるまでSDアクセスを行い、一区切りした段階でサスペンドする。リモートホスト200には、SD相互接続部105からSDバスが利用できるようになったことが通知される。リモートホスト200は、SDバスへのアクセス権の割り当ての要求を再度行い、リモートホストに対するSDバスハンドルがアクティブ化する。またSDバスもアクティブ状態に移行する。
【0061】
ステップ804:リモートホスト200は、SDバスへのアクセスをロックモードでサスペンドする。SDバスの状態は、SDバスにアクセスすることができない、ロックモードに移行する。また、リモートホストに対するSDバスハンドルは、ロックモードのインアクティブ状態に移行する。SDバスはインアクティブ状態に移行する。なお、SDバスは省電力モードに移行してもよい。
【0062】
ステップ805:ローカルホスト100は、SDバスハンドルの取得を試みる。SDバスハンドルはリモートホスト200によってロックされているので、ローカルホスト100はSDバスハンドルを取得することができない。ローカルホスト100には、SD相互接続部105からロックモードであることが通知される。
【0063】
ステップ806:ローカルホスト100は、リモートホストがアクセス権を取得していた場合にSDバスのアクセス権の受け渡しを依頼する通知フラグをたてて、SDアクセスの再開を試みる。SD相互接続部105は、リモートホスト200に対して、アクセス権を解放するよう要求を行う。リモートホスト200はSDバスハンドルをまずはアクティブ化し、ローカルホストからアクセスされてもよい状態になるまでSDアクセスを行い、一区切りした段階で終了する。ローカルホスト100には、SD相互接続部105からSDバスハンドルが利用できるようになったことが通知される。ローカルホスト100は、SDバスハンドルのレジューム要求を行い、今度は成功し、アクセス権を再取得する。また、またSDバスもアクティブ状態に移行する。
【0064】
次に、SDメモリカード300内に格納されているデータが変更された場合の動作について図9を参照して説明する。
図9において、Bus State Lはローカルホスト100に対するSDバスハンドルの状態を示し、Bus stateはSDバスの状態を示し、Bus State Rはリモートホスト200に対するSDバスハンドルの状態を示す。
【0065】
最初に、SDメモリカード300がSDカードスロット107に挿入されていないので、SDバスは利用できない。SDバスハンドルはローカルホスト100およびリモートホスト200に割り当てられていない。SDメモリカード300がSDカードスロット107に挿入され、ローカルホスト100によってSDバスが初期化された後、SDバスがアクティブ化され、SDバスハンドルがローカルホスト100に割り当てられる。
【0066】
ステップ901:ローカルホスト100がSDバスハンドルをサスペンドした場合、アクティブな状態の間にSDメモリカード内のデータが変更(ファイルの更新、追加、削除)されれば、ローカルホスト100は、その旨をSD相互接続部105に通知する。
【0067】
リモートホスト200が、SDバスハンドルを取得し、SDバスにアクセスする。
【0068】
ステップ902:リモートホスト200がSDバスハンドルをサスペンドする。アクティブ状態に間にSDメモリカード内のデータが変更されれば、リモートホスト200は、その旨をSD相互接続部105に通知する。リモートホスト200に対するSDバスハンドルがインアクティブ化する。
【0069】
ステップ903:ローカルホスト100がSDバスハンドルを取得した場合、非アクティブ状態の間にSDメモリカード内のデータが変更されれば、ローカルホスト100はSD相互接続部105からその旨が通知される。SDメモリカード内のデータが変更されれば、ローカルホストのデバイスファイルシステム108は、FATのキャッシュを破棄し、SDメモリカード300からFATを再取得する。
【0070】
ステップ904:リモートホスト200がSDバスハンドルのレジューム要求を行う。ローカルホストはサスペンドまたは終了要求が通知される。ローカルホスト100がSDバスハンドルのサスペンドまたは終了を要求された場合、ローカルホスト100は、サスペンドしても問題ないようになるまでSDアクセスを続行し、一区切りした段階でサスペンド要求を出す。なお、ローカルホスト100がサスペンド要求を出す際に、SDメモリカード内のデータを変更したかを示す情報をSD相互接続部105に送る。SD相互接続部105はリモートホストにバスハンドルが利用できるようになったことを通知する。リモートホストはSDバスハンドルの再取得を試み、成功する。なおその際にリモートホスト200は、SD相互接続部105より、非アクティブ状態の間にSDメモリカード内のデータが変更されたかを示す情報を取得する。SDメモリカード内のデータが変更されていたら、リモートホストのホストファイルシステム205は、FATのキャッシュを破棄し、SDメモリカード300からFATデータを再取得する。
【0071】
ステップ905:リモートホスト200がSDバスハンドルのサスペンドまたは終了を要求された場合、リモートホスト200は、サスペンドしても問題ないようになるまでSDアクセスを続行し、一区切りした段階でサスペンド要求を出す。なお、サスペンド要求を出す際に、SDメモリカード内のデータを変更したかを示す情報をローカルホスト100に送る。ローカルホスト100がSDバスアクセスを再度取得した場合、ローカルホスト100は、インアクティブ化状態においてSDメモリカード内のデータが変更されていたら、その旨がSD相互接続部105から通知される。SDメモリカード内のデータが変更されていたら、ローカルホストのデバイスファイルシステム108は、FATのキャッシュを破棄し、SDメモリカード300からFATを取得する。
【0072】
次に、図10を参照して、SDバスハンドルのサスペンド/レジュームについて説明する。
ホストSDアプリケーション201が、SDメモリカードにアクセスを行っている(ステップ1001)。ホストSDアプリケーション201は、SDバスハンドルをサスペンドするための“BusHandleSuspend.req”を、SD相互接続部105/SDカードホストコントローラ106(SD IC/SD HC)に送信する(ステップ1002)。
【0073】
“BusHandleSuspend.req”の送信後、SDバスがサスペンドする(インアクティブ化状態)。SDバスがインアクティブ化状態の間、デバイス側PHY/MAC層101およびSDバスは省電力モードに移行しても良い。SDバスがインアクティブ化状態の間、ホスト側PHY/MAC層101は省電力モードに移行しても良い。
【0074】
ホスト側SDアプリケーション201はSDバスをレジュームするための“BusHandleResume.req”をSD相互接続部105/SDカードホストコントローラ106に送信する(ステップ1003)。ここでデバイス側PHY/MAC層、SDバス、ホスト側PHY/MAC層は省電力モードから復旧する。SD相互接続部105は、SDバスハンドルをレジュームする。SDバスのレジューム後、ホスト側SDアプリケーション201が、SDメモリカード300にアクセスを行う(ステップ1004)。
【0075】
次に、ホストが2台ある場合、バスがインアクティブ化状態の間の他のホストによるSDバスハンドルの許可について図11を参照して説明する。
【0076】
第2のホスト200BがSDメモリカード300にアクセスしている(ステップ1101)。第2のホストSDアプリケーション201Bが、SDバスハンドルをサスペンドするための“BusHandleSuspend.req”をSD相互接続部105/SDカードホストコントローラ106(SD IC/SD HC)に送信する(ステップ1102)。なお、第2のホスト側がSDメモリカード内のデータを変更していれば、“BusHandleSuspend.req”内のmodification_flagを変更されたことを示す値にする。デバイス側PHY/MAC層は省電力モードに移行してもよい。またSDバスがすべてのホストによってサスペンドされている間、SDバスは省電力モードに移行しても良い。
【0077】
SDバスがインアクティブ化状態の間に、第1のホスト側SDアプリケーション201Aは、SDバスハンドルをレジュームするための“BusHandleResume.req”をSD相互接続部105/SDカードホストコントローラ106(SD IC/SD HC)に送信する(ステップ1103)。SDバスハンドルがアクティブ化状態に移行した後、SD相互接続部105は、バスがアクティブ化したことを示す“BusHandleResume.res”を第1のホスト側SDアプリケーション201Aおよびファイルシステム205Aに送信する(ステップ1104)。SD相互接続部105は、“BusHandleResume.res”内のmodification_flagを変更されたことを示す値にし、非アクティブ状態のときにSDメモリカード内のデータが変更されたかどうかを第1のホスト側SDアプリケーション201Aに通知する。modification_flagが変更されたことを示す値であれば、ファイルシステム205AはFATのキャッシュデータを削除し、SDメモリカードより再取得する必要がある。第1のホスト側SDアプリケーション201Aは、SDメモリカード内のファイルにアクセスする(ステップ1105)。
【0078】
第1のホスト側SDアプリケーション201Aは、SDバスハンドルをサスペンドするための“BusHandleSuspend.req”をSD相互接続部105/SDカードホストコントローラ106(SD IC/SD HC)に送信する(ステップ1106)。なお、第1のホスト側SDアプリケーション201AがSDメモリカード内のデータを変更していれば、 “BusHandleSuspend.req”内のmodification_flagを変更されたことを示す値にし、SDメモリカード内のデータが変更されたことをSD相互接続部105に通知する。SDバスはインアクティブ化状態に移行する。デバイス側PHY/MAC層101、第1のホスト側PHY/MAC層204A、SDバスは省電力モードに移行してもよい。これらは次にレジューム要求がきた際に省電力モードを解除する。
【0079】
SDバスがインアクティブ化状態の間に、第2のホスト側SDアプリケーション201Bは、SDバスをレジュームするための“BusHandleResume.req”をSD相互接続部105/SDカードホストコントローラ106に送信する(ステップ1107)。SDバスがアクティブ化状態に移行した後、SD相互接続部105は、SDバスがアクティブ化したことを示す“BusHandleResume.res”を第2のホスト側SDアプリケーション201Bおよびファイルシステム205Bに送信する(ステップ1108)。SD相互接続部105は、非アクティブの間にSDメモリカード内のデータを変更されていれば、“BusHandleResume.res”内のmodification_flagを変更されたことを示す値にし、SDメモリカード内のデータが変更されたことをファイルシステム205Bに通知する。modification_flagが変更されたことを示す値であれば、ファイルシステム205BはFATのキャッシュデータを削除する。第2のホスト側SDアプリケーション201Bは、SDメモリカード内のファイルにアクセスする(ステップ1109)。
【0080】
次に、ホストが2台ある場合、第2のホストがインアクティブ化状態の間にSDバスハンドルをロックされたインアクティブ状態にする場合について図12を参照して説明する。
【0081】
第2のホストSDアプリケーション201BがSDメモリカード300にアクセスしている(ステップ1201)。第2のホストSDアプリケーション201Bは、SDバスハンドルをサスペンドするが第1のホスト200AにSDメモリカード内のファイルにアクセスすることを許可しない場合、SDバスハンドルをロックモードでサスペンドするための“BusHandleSuspend.req(lock)”をSD相互接続部105/SDカードホストコントローラ106(SD IC/SD HC)に送信する(ステップ1202)。
【0082】
SDバスがインアクティブ化状態の間に、第1のホスト側SDアプリケーション201Aは、SDバスハンドルをレジュームするための“BusHandleResume.req”をSD相互接続部105/SDカードホストコントローラ106に送信する(ステップ1203)。SDバスはロックされたインアクティブ状態であるので、SD相互接続部/SDカードコントローラ(SD IC/SD HC)は、第1のホスト側SDアプリケーション201Aに“error(locked)を返す(ステップ1204)。第2のホスト側SDアプリケーション201BによってSDバスがロックされていれば、第1のホスト側SDアプリケーション201Aは、SDバスハンドルをレジュームすることができない。
【0083】
第2のホスト側SDアプリケーション201Bは、SDバスをアンロックするために、第2のホスト側SD PAL部203Bは、SDバスをレジュームするための“BusHandleResume.req”をSD相互接続部105/SDカードホストコントローラ106に送信する(ステップ1205)。SD相互接続部105は、SDバスをアクティブ化する。第2のホスト側SDアプリケーション201Bは、SDバスハンドルを取得し、SDメモリカード内のファイルにアクセスする(ステップ1206)。
【0084】
次に、他のホストがSDバスにアクセスしている状態でのSDバスのレジュームについて図13を参照して、説明する。
デバイス100がSDメモリカード内のファイルにアクセスしている(ステップ1301)。デバイス側SDアプリケーション103が、SDバスをレジュームさせるための“BusHandleResume.req”をSD相互接続部105/SDカードホストコントローラ106(SD IC/SD HC)に送信する(ステップ1302)。デバイス100に対するSDバスハンドルがアクティブ化されているので、SDバスのレジュームは失敗する。SD相互接続部105/SDカードホストコントローラ106は、他の機器からSDバスのサスペンド要求があったことを示す“ReqforBusHandleSuspend.ntf”をデバイス側SDアプリケーション103に送信する(ステップ1303)。なお、デバイス側SDアプリケーション103が“ReqforBusHandleSuspend.ntf”を受信したら、ホスト側SD PAL部203は、デバイス側SDアプリケーション103のSDメモリカード300へのアクセス処理をサスペンドしても良い状態まで続行した後に、SDバスをサスペンドするための “BusHandleSuspend.req”を送信する。
【0085】
ホスト側SDアプリケーション201は、SDバスハンドルをレジュームさせるための “BusHandleResume.req”をSD相互接続部/SDカードコントローラ(SD IC/SD HC)に送信する(ステップ1304)。
【0086】
SD相互接続部105は、SDバスハンドルがサスペンドされたことを示す“BusHandleSuspended_ntf”をデバイス側SDアプリケーション103に送信する(ステップ1305)。
【0087】
デバイス側SDアプリケーション103は、SDバスハンドルをレジュームするための “BusHandleResume.req”をSD相互接続部105に送信する(ステップ1306)。デバイス側SDアプリケーション103は、SDバスハンドルを取得した後、SDメモリカード内のファイルにアクセスする(ステップ1307)。
【0088】
ホスト側SD PAL部203がSDバスがローカルホストに使用されている場合でもレジュームしたい場合には、通知をすることも要求しつつ“BusHandleResume.req”をSD相互接続部/SDカードコントローラ(SD IC/SD HC)に送信する(ステップ1308)。SD相互接続部105は、“BusHandleResume.req”に応じて、デバイス側でSDバスを使用しているので、SDバスハンドルがアクセスされていることを示す“busy”を返す(ステップ1309)。なお、通知要求があったため、SD相互接続部105は、他の機器からSDバスのサスペンド要求があったことを示す“ReqForBusHandleSuspended_ntf”をデバイス側SDアプリケーション103に送信する(ステップ1310)。デバイス側SDアプリケーション103は、サスペンドしても良い状態までSDバスへのアクセスを続行した後、SDバスをサスペンドさせるための“BusHandleSuspend.req”をSD相互接続部105に送信する(ステップ1311)。
【0089】
SD相互接続部105は、SDバスハンドルをサスペンドした後、SDバスハンドルがサスペンドされたことを示す“BusHandleSuspended_ntf”をホスト側SDアプリケーション201に送信する(ステップ1312)。ホスト側SDアプリケーション201は、SDバスハンドルをレジュームするための“BusHandleResume.req”をSD相互接続部105に送信する(ステップ1313)。SD相互接続部105は、SDバスハンドルをレジュームする。ホスト側SDアプリケーション201は、SDバスハンドルを取得した後、SDメモリカード300内のファイルにアクセスする(ステップ1314)。
【0090】
ホストがSDバスハンドルにアクセスしている間のSD PALセッションのセットアップについて図14を参照して説明する。
【0091】
デバイス側100がSDメモリカード内のファイルにアクセスしている(ステップ1401)。ホスト側SD PAL部203は、SD PALセッションのスタートを要求するための“SessionStart.req”をデバイス側SD PAL部(Device PAL)102に送信する(ステップ1402)。ホスト側SD PAL部203は、SDメモリカード300等の能力の送信を要求する “CapabilityExchange.req”をデバイス側SD PAL部102に送信する(ステップ1403)。“CapabilityExchange.req”に応じて、デバイス側SD PAL部102から応答が有る。ホスト側SD PAL部203は、SDバスハンドルの取得を要求するための“GetBusHandle.req(notify)”をSD相互接続部105に送信する(ステップ1404)。デバイス100がSDバスを使用しているので、SD相互接続部105は、ホスト側SD PAL部203に“(Busy)”を送信する(ステップ1405)。SD相互接続部105は、他の機器からSDバスをサスペンドする要求があったことを示す“ReqforBusHandleSuspend.ntf”をデバイス側SDアプリケーション103に送信する(ステップ1406)。デバイス側SDアプリケーション103は、サスペンドしても良い状態になるまでSDバスへのアクセスを続行した後、SDバスハンドルをサスペンドさせるための“BusHandleSuspend.req”をSD相互接続部105に送信する(ステップ1407)。SDバスハンドルをインアクティブ化した後、SD相互接続部105は、SDバスの接続がインアクティブ化状態にあることを通知するために、“BusHandleSuspended.ntf”をホスト側SDアプリケーション201に送信する(ステップ1408)。
【0092】
ホスト側SDアプリケーション201は、SDバスハンドルの取得を要求するための“GetBusHandle.req(notify)”をSD相互接続部105に送信する(ステップ1409)。ホスト200とSDバスがアクティブ化され、ホスト側SDアプリケーション201がSDメモリカード内のファイルにアクセスする(ステップ1410)。
【0093】
次に、ホストとSD相互接続部105との間で交換されるコマンドについて説明する。
【0094】
ホスト側SD PAL部203からSD相互接続部105に送信される“GetBusHandle.request”、“GetBusHandle.request”の受信に応じてSD相互接続部105からホスト側SD PAL部203に送信される“GetBusHandle.response”について説明する(図15)。
【0095】
“GetBusHandle.request”は、SDバスハンドルの取得を要求するコマンドである。“GetBusHandle.request”を送信する際、“request_level”が設定される。“request_level”のアクティブ範囲は、0または1である。“request_level”の値が0(= if available)であれば、ホスト側SD PAL部203は、SDバスハンドルが取得できるならば、SDバスハンドルの取得を要求する。“request_level”の値が1(= notify required)であれば、SDバスハンドルが取得できない場合には、バスハンドルが取得できるようにアクセス中のホストへのサスペンド要求を行い、バスハンドルが利用可能になったら通知を要求する。
【0096】
“GetBusHandle.response”は、“GetBusHandle.response”に対する応答である。“GetBusHandle.response”には、“result_code”が含まれる。“request_level”の値は、0、1、2である。“request_level”の値が0(= success)の場合、SDバスはホスト側SD PAL部203によって成功し、SDバスハンドルがアクティブ化したことを示す。“request_level”の値が1(= error_busy)の場合、SDバスは他のホストによって既にアクティブ化されていることを示す。“request_level”の値が2(= error_locked)の場合、SDバスは、他のホストによるロックされていることを示す。
【0097】
ホストSDアプリケーションからSD相互接続部105に送信される“ReleaseBusHandle.request”、“ReleaseBusHandle.request”の受信に応じてSD相互接続部105からホスト側SDアプリケーションに送信される“ReleaseBusHandle.response”について説明する(図16)。
【0098】
“ReleaseBusHandle.request”は、ホストに対してSDバスハンドルが与えられている場合に、SDバスハンドルの解放を要求するコマンドである。“ReleaseBusHandle.request”は、“modification_flag”を有する。“modification_flag”の値は、0,1である。“modification_flag”の値が0(= not changed)の場合、SDバスハンドルがアクティブ化している間に、ファイルの構成を変えなかったことを示す。
【0099】
“modification_flag”の値が1(= changed)の場合、SDバスハンドルが有効アクティブ化している間に、ファイルの構成を変えたことを示す。
【0100】
“ReleaseBusHandle.response”は、“ReleaseBusHandle.request”に対する応答である。“ReleaseBusHandle.response”は、“result_code”を含む。“result_code”の値は、SDバスハンドルの解放に成功したことを示す0である。
【0101】
次に、ホスト側SDアプリケーションからSD相互接続部105に送信される“BusHandleResume.request”、“BusHandleResume.request”の受信に応じてSD相互接続部105からホスト側SDアプリケーションに送信される“BusHandleResume.response”について説明する(図17)。
【0102】
“BusHandleResume.request”は、SDバスのレジュームを要求するためのコマンドである。バスがホスト側SD PAL部203によってロックされているならば、ロックモードでサスペンドしたホスト側SD PAL部203だけがBusHandleResume.requestだけを送ることが可能である。バスがロックされていなければ、任意のホスト側SD PAL部203がBusHandleResume.requestだけを送ることが可能である。
【0103】
“BusHandleResume.request”は、“request_level”を含む。“request_level”の値は、0,1である。“request_level”の値が0(= if available)の場合、ホスト側SD PAL部203は、SDバスが入手できるならば、SDバスハンドルの取得をSD相互接続部105に要求する。“request_level”の値が1(= if notify required)の場合、GetBusHandleが入手できない場合には、バスハンドルが取得できるようにアクセス中のホストへのサスペンド要求を行い、バスハンドルが利用可能になったら通知を要求する “BusHandleResume.response”は、“BusHandleResume.request”に対する応答である。“BusHandleResume.response”は、“result_code”および“modification_flag”を含む。
【0104】
“modification_flag”の値は、0,1である。“result_code”の値が0(= not changed)の場合、SDバスハンドルがインアクティブ化されている間に他のホストによってSDデバイス内のデータは変えられていないことを示す。“modification_flag”の値が1(= changed)の場合、SDバスハンドルがインアクティブ化されている間に他のホストによってアクティブ化されSDデバイス内のデータが変えられたことを示す。
【0105】
“result_code”の値は、0,1,2である。“modification_flag”の0(= success)の場合、バスはホスト側SD PAL部203によって成功裏にアクティブ化にしたことを示す。“modification_flag”の1(= error_busy)の場合、SDバスは他のホストによって既にアクティブ化されていることを示す。“modification_flag”の2(= error_locked)の場合、SDバスは他のホストによるロックによってインアクティブ化していることを示す。
【0106】
次に、ホストSDアプリケーションからSD相互接続部105に送信される“BusHandleSuspend.request”、“BusHandleSuspend.request”の受信に応じてSD相互接続部105からホストSDアプリケーションに送信される“BusHandleSuspend.response”について説明する(図18)。
【0107】
“BusHandleSuspend.request”は、SDバスのサスペンドを要求するコマンドである。 “BusHandleSuspend.request”は、“lock_flag”および“modification_flag”を含む。
【0108】
“lock_flag”の値は、0,1である。“lock_flag”の値が0(= unlocked)の場合、SDバスハンドルがインアクティブの間に他のホストがSDバスにアクセスすることができることを示す。“lock_flag”の値が1(= locked)の場合、バスがインアクティブの間に他のホストはアクセスしてはならないことを示す。
【0109】
“modification_flag”の値は、0,1である。“modification_flag”の値が0(= not changed)の場合、SDハンドルがアクティブ化状態であったときに、SDデバイス内のデータを変えなかったことを示す。“modification_flag”の値が1(= changed)の場合、SDハンドルがアクティブ化状態であったときに、SDデバイス内のデータを変えなかったことを示す。
【0110】
“BusHandleSuspend.response”は、“BusHandleSuspend.request”に対する応答である。“result_code”の値は、SDバスのサスペンドが成功したことを示す0(= success)
次に、SD相互接続部105からホストへの通知について説明する(図19)。
“ReqForBusHandleSuspend.notification”は、 デバイス側SD PAL部102は、他のホストがアクセスを開始するので、アンロックモードでSDバスをサスペンドするか、SDバスを終了することをホスト側SD PAL部102に要求する。
“ReqForBusHandleRelease.notification”は、デバイス側SD PAL部102は、他のホストがアクセスを開始するので、SDバスを終了することをホスト側SD PAL部102に要求する。
“BusHandleSuspended.notification”は、デバイス側SD PAL部102は、SDバスは他のホストによってサスペンドされていることを通知する。ホスト側SD PAL部102は、この通知が送られたら、SDバスの開始またはサスペンドすることができる。
“BusHandleReleased.notification”は、デバイス側SD PAL部102は、SDバスハンドルは他のホストによって解放されたことを通知する。ホストSD PAL部102は、この通知が送られたら、SDバスの開始またはサスペンドすることができる。
【0111】
次に、図20を参照して、ホスト200に対するSDバスハンドルの状態の遷移の他の例を説明する。
【0112】
バスハンドルの非割り当て状態(Bus handle not assigned)は、ホスト200にSDバスハンドルが割り当てられていない状態である。この状態では、デバイス100は、SDバスおよびSDメモリカード300にアクセスすることが可能である。
【0113】
ホスト200にSDバスハンドルを取得すると(Get Bus handle)、ホスト200によるSDバスハンドルの状態が、非割り当て状態からアクティブ状態(Bus handle active)になる。アクティブ状態では、ホスト200がSDバスおよびSDメモリカード300にアクセスすることが可能である。
【0114】
SDバスハンドルがサスペンドされると、ホスト200に対するSDバスハンドルの状態が、アクティブ状態(Bus handle active)からロックモードのインアクティブ状態(Bus handle inactive)に移行する。ロックモードのインアクティブ状態では、デバイス100がSDバスおよびSDデバイスにアクセスすることができない。バスインアクティブ状態においてSDバスがレジュームされると、SDバスハンドルがバスインアクティブ状態(Bus handle inactive)からバスアクティブ状態(Bus handle active)に移行する。
【0115】
この例は、SDバスハンドルをレジュームした場合、常にロックモードに設定される。上記で説明していた実施例では、図5をベースして考えており、サスペンド時にロックの必要がなければロックされていないインアクティブ状態に移行していたが、図20のようにロックの必要のないサスペンド時にはサスペンドではなくバスハンドルをリリースしバスハンドルインアクティブ状態に移行するように実施してもよい。
【0116】
なお上記の実施形態においては、リムーバブルメディアはSDカード(登録商標)を例に説明したが、メモリ機能を持つメモリカードおよび通信機能を持つIOカード、およびメモリ機能と通信機能の両方をもつコンボカードがこれらリムーバブルメディアに含まれる。また、リムーバブルメディアはリムーバブルな形態でなくてもよく、電子機器に内蔵される形態の媒体でもよい。
【0117】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
以下に、本願原出願の分割直前の特許請求の範囲に記載された発明を付記する。
[1]リムーバブルメディアとの間で通信を行うメディア通信部と、
前記リムーバブルメディアに対してアクセスを行うアクセス手段と、
外部機器と無線通信し、前記リムーバブルメディアに対するアクセスを受ける無線通信部と、
前記アクセス手段および前記外部機器のうち一つに前記リムーバブルメディアへのアクセス権を割り当てる制御手段であって、前記外部機器又は前記アクセス手段から前記アクセス権の割り当ての要求があった場合、当該要求に応じて前記アクセス権を割り当てる、制御手段と、
を具備し、
前記外部機器にアクセス権が割り当てられている場合、前記外部機器は前記リムーバブルメディアにアクセスするための規格化されたコマンドに対応するコマンドを送信する
するアクセス制御装置。
[2]前記制御手段は、前記アクセス手段および前記外部機器のうち一方が前記リムーバブルメディアにアクセスしている状態で、他方から前記アクセス権の割り当ての要求があった場合、前記一方に対して前記アクセス権の割り当ての停止またはサスペンド要求を行い、前記一方により停止またはサスペンドが行われた後、前記アクセス権の割り当てが停止またはサスペンドされたことを前記他方へ通知する、
[1]記載のアクセス制御装置。
[3]前記アクセス手段が前記リムーバブルメディアにアクセスしている状態で、前記外部機器から前記アクセス権の割り当ての要求があった場合に、前記制御手段は、前記アクセス手段に対して前記アクセス権の割り当ての停止またはサスペンドを要求する、
[2]に記載のアクセス制御装置。
[4]前記外部機器が前記リムーバブルメディアにアクセスしている状態で、前記アクセス手段から前記アクセス権の割り当ての要求があった場合に、前記制御手段は、前記外部機器手段に対してアクセス権の割り当ての停止またはサスペンドを要求する、
[2]に記載のアクセス制御装置。
[5]前記無線通信部は、前記リムーバブルメディアに対してアクセスを行う第2の外部機器と無線通信を行い、
前記制御手段は、前記アクセス手段または前記第2の外部機器に前記アクセス権を割り当てている状態で、前記外部機器から前記アクセス権の割り当ての要求があった場合に、前記アクセス権を割り当てられている前記アクセス手段または前記第2の外部機器へアクセス権の割り当ての停止またはサスペンドを要求し、前記アクセス手段または前記第2の外部機器によりサスペンドまたは停止が行われた場合、前記アクセス手段および前記第2の外部機器への前記アクセス権の割り当てが停止またはサスペンドされたことを前記外部機器へ通知し、前記外部機器からアクセス要求に応じて前記外部機器に前記アクセス権を割り当てる、
[2]に記載のアクセス制御装置。
[6]前記アクセス手段および前記外部機器、前記第2の外部機器に前記アクセス権が割り当てられていないまたはサスペンドされている場合、前記制御手段は前記メディア通信部を省電力モードにする、
[5]に記載のアクセス制御装置。
[7]前記アクセス手段が前記リムーバブルメディアにアクセスしている状態で、前記第2の外部機器から前記アクセス権の割り当ての要求があった場合に、前記制御手段は、前記アクセス手段に対して前記アクセス権の割り当ての停止またはサスペンドを要求する、
[5]に記載のアクセス制御装置。
[8]前記外部機器が前記リムーバブルメディアにアクセスしている状態で、前記第2の外部機器から前記アクセス権の割り当ての要求があった場合に、前記制御手段は、前記外部機器に対して前記アクセス権の割り当ての停止またはサスペンドを要求する、
[5]に記載のアクセス制御装置。
[9]前記外部機器が前記リムーバブルメディアにアクセスしている状態で、前記アクセス手段から前記アクセス権の割り当ての要求があった場合に、前記制御手段は、前記外部機器に対して前記アクセス権の割り当ての停止またはサスペンドを要求する、
[5]に記載のアクセス制御装置。
[10]前記外部機器にアクセス権が割り当てられていない場合またはサスペンドされている場合、前記制御手段は前記無線通信部を省電力モードにする、
[1]に記載のアクセス制御装置。
[11]前記制御手段は、前記アクセス権が割り当てられている前記アクセス手段が前記アクセス権の割り当てをロックモードでサスペンドすることを要求した場合に前記アクセス手段への前記アクセス権の割り当てを前記ロックモードでサスペンドし、前記ロックモードでサスペンドしている間に前記外部機器から前記アクセス権の割り当ての要求があった場合に前記外部機器に前記アクセス権を割り当てない、
[1]に記載のアクセス制御装置。
[12]前記制御手段は、前記アクセス手段及び前記外部機器の一方に前記アクセス権が割り当てられている状態であった場合に前記アクセス権を放棄するよう前記一方に要求する条件の下に前記アクセス権の割り当ての要求があった場合に、前記一方に対して前記一方への前記アクセス権の割り当ての停止またはサスペンドを要求し、前記一方への前記アクセス権の割り当てをレジュームした後に、前記一方から前記アクセス権の割り当ての停止またはサスペンドが要求された場合に、前記他方にアクセス権の割り当てが可能になったことを通知し、前記他方から再度アクセス権の割り当ての要求があった場合に前記他方に前記アクセス権を割り当てる、
[11]に記載のアクセス制御装置。
[13]リムーバブルメディアとの間で通信を行うメディア通信部と、
前記リムーバブルメディアに対してアクセスを行うアクセス手段と、
前記リムーバブルメディアに格納されているファイルシステム関連情報を取得し、前記ファイルシステム関連情報をキャッシュする取得手段と、
外部機器と無線通信し、前記リムーバブルメディアに対するアクセスを受ける無線通信部と、
前記アクセス手段及び前記外部機器の一方がアクセス権をレジュームする場合であって、前記一方の前記アクセス権がインアクティブ状態の間に前記リムーバブルメディア内のデータが変更されていた場合、前記リムーバブルメディア内のデータが変更された旨を通知する制御手段とを具備し、
前記取得手段は、前記制御手段からの通知に応じて、前記ファイルのキャッシュを削除する
アクセス制御装置。
[14]前記アクセス手段がアクセス権をサスペンドまたは停止する際に、アクティブ状態の間にリムーバブルメディア内のデータを変更したかどうかを前記制御手段に通知する通知手段を更に具備し、
前記制御手段は、前記通知手段からの通知に応じて前記アクセス手段がアクセス権をレジュームする際に、前記リムーバブルメディア内のデータが変更された旨を通知する、[13]記載のアクセス制御装置。
[15]アクセス制御装置と1以上の外部機器とを備えるアクセス制御システムであって、
前記アクセス制御装置は、
リムーバブルメディアとの間で通信を行うメディア通信部と、
前記リムーバブルメディアに対してアクセスを行うアクセス手段と、
前記1以上の外部機器と無線通信し、前記リムーバブルメディアに対するアクセスを受ける無線通信部と、
前記アクセス手段および前記1以上の外部機器のうち一つに前記リムーバブルメディアへのアクセス権を割り当てる制御手段であって、前記1以上の外部機器及び前記アクセス手段の何れかから前記アクセス権の割り当ての要求があった場合、当該要求に応じて前記アクセス権を割り当てる制御手段と、
を具備し、
前記1以上の外部機器の夫々は、
前記アクセス制御装置と通信する無線通信手段と、
前記無線通信手段を用いて前記アクセス権の割り当ての要求を送信し、前記制御手段に前記アクセス権を割り当てられた場合に前記リムーバブルディスクにアクセスするアクセス制御手段と、
を具備するアクセス制御システム。
【符号の説明】
【0118】
100…ホスト、101…デバイス、101…デバイスPHY/MAC層、102…デバイスSD PAL部、103…デバイスSDアプリケーション、104…SD_H/Cドライバ、105…SD相互接続部、106…SDカードホストコントローラ、107…SDカードスロット、108…デバイスファイルシステム、109…デバイスSD IF/UHS−II IF、110…デバイスPHY/LINK層110、200…ホスト、201…ホストSDアプリケーション、202…SDカード仮想コントローラ、203…ホストSD PAL部、204…ホストPHY/MAC層、205…ホストファイルシステム、300…SDメモリカード。

【特許請求の範囲】
【請求項1】
リムーバブルメディアとの間で通信を行うメディア通信部と、
第1の外部機器および第2の外部機器を含む複数の外部機器と無線通信の接続を確立し、各外部機器からの前記リムーバブルメディアに対するアクセスを受ける無線通信部と、
前記複数の外部機器のうち一つの外部機器に前記リムーバブルメディアへのアクセス権を割り当てるアクセス制御手段であって、前記第1の外部機器に前記アクセス権が割り当てられておらず、前記第2の外部機器に前記アクセス権が割り当てられている場合、前記第1の外部機器から前記アクセス権の要求を規定したコマンドを受けた場合、当該コマンドに応じて前記アクセス権を前記第1の外部機器に割り当てる、アクセス制御手段と、
前記第1の外部機器への前記アクセス権の割り当てに応じて、前記第2の外部機器がアクセス権をレジュームする場合、前記第2の外部機器の前記アクセス権がインアクティブ状態の間に前記リムーバブルメディア内のデータが変更されていた場合、前記リムーバブルメディア内のデータが変更された旨を通知する第1の通知手段と、
前記リムーバブルメディアに格納されているファイルシステム関連情報を取得し、前記ファイルシステム関連情報をキャッシュし、前記第1の通知手段からの通知に応じて前記ファイルシステム関連情報を再取得する取得手段と、
を具備し、
前記第1の外部機器にアクセス権が割り当てられている場合、前記第1の外部機器は前記リムーバブルメディアにアクセスするための規格化されたコマンドに対応するコマンドを送信する、
アクセス制御装置。
【請求項2】
前記リムーバブルメディアに対してアクセスを行うアクセス手段を更に具備し、
前記アクセス制御手段は、前記アクセス手段および前記複数の外部機器のうちの一つに前記リムーバブルメディアへのアクセス権を割り当て、前記アクセス手段および前記複数の外部機器のうちの別の一つから前記アクセス権の要求を規定したコマンドを受けた場合、当該コマンドに応じて前記アクセス権を前記別の一つに割り当てる
請求項1に記載のアクセス制御装置。
【請求項3】
前記アクセス手段がアクセス権をサスペンドまたは停止する際に、前記アクセス権がアクティブ状態の間に前記リムーバブルメディア内のデータが変更されたかを前記アクセス制御手段に通知する第2の通知手段を更に具備し、
前記第2の通知手段から前記リムーバブルメディア内のデータが変更された旨が通知された場合、前記アクセス制御手段は、前記第2の通知手段からの通知に応じて前記アクセス手段がアクセス権をレジュームする際に、前記リムーバブルメディア内のデータが変更された旨を通知する、
請求項2記載のアクセス制御装置。
【請求項4】
前記アクセス制御手段は、前記アクセス手段および前記複数の外部機器のうちの一つが前記リムーバブルメディアにアクセスしている状態で、前記アクセス手段および前記複数の外部機器の別の一つから前記アクセス権の割り当ての要求があった場合、前記アクセス手段および前記複数の外部機器のうちの別の一つに対して前記アクセス権の割り当ての停止またはサスペンド要求を行い、前記前記アクセス手段および前記複数の外部機器のうちの一つにより停止またはサスペンドが行われた後、前記アクセス権の割り当てが停止またはサスペンドされたことを前記アクセス手段および前記複数の外部機器のうちの別の一つへ通知する、
請求項2記載のアクセス制御装置。
【請求項5】
前記アクセス制御手段は、前記アクセス手段または前記第2の外部機器に前記アクセス権を割り当てている状態で、前記第1の外部機器から前記アクセス権の割り当ての要求があった場合に、前記アクセス権を割り当てられている前記アクセス手段または前記第2の外部機器へアクセス権の割り当ての停止またはサスペンドを要求し、前記アクセス手段または前記第2の外部機器によりサスペンドまたは停止が行われた場合、前記アクセス手段および前記第2の外部機器への前記アクセス権の割り当てが停止またはサスペンドされたことを前記第1の外部機器へ通知し、前記第1の外部機器からアクセス要求に応じて前記第1の外部機器に前記アクセス権を割り当てる、
請求項4に記載のアクセス制御装置。
【請求項6】
前記アクセス制御手段は、前記アクセス権が割り当てられている前記アクセス手段が前記アクセス権の割り当てをロックモードでサスペンドすることを要求した場合に前記アクセス手段への前記アクセス権の割り当てを前記ロックモードでサスペンドし、前記ロックモードでサスペンドしている間に前記第1の外部機器から前記アクセス権の割り当ての要求があった場合に前記第1の外部機器に前記アクセス権を割り当てない、
請求項2に記載のアクセス制御装置。
【請求項7】
前記アクセス制御手段は、前記アクセス手段及び前記複数の外部機器の一つに前記アクセス権が割り当てられている状態であった場合に前記アクセス権を放棄するよう前記一方に要求する条件の下に前記アクセス権の割り当ての要求があった場合に、前記一方に対して前記一方への前記アクセス権の割り当ての停止またはサスペンドを要求し、前記一方への前記アクセス権の割り当てをレジュームした後に、前記一方から前記アクセス権の割り当ての停止またはサスペンドが要求された場合に、前記他方にアクセス権の割り当てが可能になったことを通知し、前記他方から再度アクセス権の割り当ての要求があった場合に前記他方に前記アクセス権を割り当てる、
請求項6に記載のアクセス制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2013−101696(P2013−101696A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2013−29042(P2013−29042)
【出願日】平成25年2月18日(2013.2.18)
【分割の表示】特願2011−195225(P2011−195225)の分割
【原出願日】平成23年9月7日(2011.9.7)
【出願人】(000003078)株式会社東芝 (54,554)