JP2013508885A - ブロックアクセスデバイスとグラフアクセスデバイス間で共有されたメモリプールへの同時アクセス - Google Patents

ブロックアクセスデバイスとグラフアクセスデバイス間で共有されたメモリプールへの同時アクセス Download PDF

Info

Publication number
JP2013508885A
JP2013508885A JP2012536973A JP2012536973A JP2013508885A JP 2013508885 A JP2013508885 A JP 2013508885A JP 2012536973 A JP2012536973 A JP 2012536973A JP 2012536973 A JP2012536973 A JP 2012536973A JP 2013508885 A JP2013508885 A JP 2013508885A
Authority
JP
Japan
Prior art keywords
memory
access
graph
block
access device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012536973A
Other languages
English (en)
Other versions
JP2013508885A5 (ja
Inventor
クラップマン、マシュー、エイチ
マステンブルック、ブライアン、イー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wearable Inc
Original Assignee
Wearable Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wearable Inc filed Critical Wearable Inc
Publication of JP2013508885A publication Critical patent/JP2013508885A/ja
Publication of JP2013508885A5 publication Critical patent/JP2013508885A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Storage Device Security (AREA)

Abstract

グラフアクセスデバイスおよびブロックアクセスデバイスは、両デバイス間で共有されたメモリプールに同時にアクセスすることが出来る。メモリプールは、単一の論理メモリとしてアクセスされる1または複数のメモリアレイを備えていてもよい。ブロックアクセスデバイスは、メモリブロックの平面アレイとしてのメモリプールにアクセスし、グラフアクセスデバイスは、階層ファイルシステムとしてのメモリプールにアクセスする。同時アクセスは、メモリプールへのアクセス中にブロックアクセスデバイスによって行われた1または複数のメモリブロックアクセス動作を監視することにより実現される。このブロックアクセス動作は、メモリプールを階層ファイルシステムにマッピングする複数のポインタを含むグラフデータ構造に変換される。プロセッサは、メモリプールへのアクセスを制御し、グラフデータ構造に従って、グラフアクセスデバイスがブロックアクセスデバイスと同時にメモリプールにアクセスすることを許可するように構成されている。

Description

(米国特許法第119条に基づく優先権の主張)
本特許出願は、2009年10月26日に出願された米国仮特許出願第61/255,002号「1または複数の電子機器および/またはデータネットワークにストレージ、通信、演算、およびサービスを追加する方法、システム、装置、および製品」に対して優先権を主張するものであり当該仮出願の全開示内容は、本明細書中に参考として明示的に援用する。
本開示は、一般的には電子データシステムに関し、具体的にはデータストレージを提供するコンピュータシステムおよび/または通信システムに関する。
コンピュータ業界には、周辺機器の接続規格がいくつかあるが、近年最もよく知られているものはユニバーサルシリアルバス(USB)である。USB等の接続規格は、無数の電子機器間の接続を可能とするため、コンピュータの枠を超えて推移してきた。最も広く使用されているUSB周辺機器の中には、データストレージおよび無線接続を提供する機器もある。また、特定の用途に対する接続プロトコルおよび規約をさらに定義した一般的なUSB「タイプ」もいくつか存在する。これらの定義により、上記プロトコルに準拠したUSB機器であれば、ホストに特別なソフトウェアを追加することなくホストシステムとの相互運用が可能である。例えば、一般的なUSB接続プロトコルとしては、USBマスストレージという仕様が挙げられる。USBホストは、この仕様に従う任意のUSB周辺機器に対して、データの書き込みや読み出しを行うことができる。
多機能の周辺機器は既に知られている。例えば、データストレージに対する暗号化/復号化等のより有用な機能を可能にする中央演算処理装置(CPU)を備えたUSB周辺機器が存在している。また、例えば、データストレージと無線接続との組み合わせが単一の周辺機器に組み込まれたものもある。これら多機能の周辺機器がUSB機器であるとき、物理的には単一のUSB周辺機器であっても、通常は論理的に分離されたUSB機器として動作する。各機能は、ホストと各機能間の相互運用を規定するそれぞれのUSBプロファイルと適合するが、これら2つの機能は相互排他的に作用する。例えば、データストレージがUSBマスストレージプロトコルを単独で使用するのに対し、無線機能はUSBワイヤレスネットワーキングプロトコルを使用する。これら独立した機能は、ホスト用の別個のソフトウェアドライバが必要とする場合があり、あるいは、周辺機器の様々な機能にアクセスするため、ホストが複数のUSBプロトコルをサポートしていることを必要とする場合もある。
既存のUSBアーキテクチャは、以下のタイプから成る。図1は、USB周辺機器14に接続されたUSBホスト12を含む一般的な従来技術のUSBシステム10を示している。USBストレージ周辺機器14としては、半導体サムドライブ、回転媒体ハードドライブ、CD、DVDドライブ等が考えられる。USBインターフェース16は、USBストレージプロトコルを動作させるステートマシンで構成されており、物理的なデータストレージ18に接続されている。読み出しおよび/または書き込みに際しては、データの「ブロック」(例えば、アドレス可能な512個のブロック)で構成された配列状のデータにアクセスする。USBホスト12は、ファイル、フォルダ、ディレクトリ、およびストレージ管理アレイ(例えば、ファイルアロケーションテーブル)といった高水準のデータ構造を規定している。
図2は、従来技術のUSB通信システム20を示しており、USB通信システム20は、USB周辺機器22がUSBインターフェース16に結合された無線または有線の通信電子装置24を備えていることを除いては図1のシステム10と類似しているアーキテクチャを有する。この構成は、USBの規格に対応している場合があり、あるいは、通信電子装置24と正しく作用するため、ホスト12に特別なソフトウェアドライバを必要とする場合もある。
図3は、データストレージ18および無線または有線の通信電子装置24という2つの機能を単一のUSB周辺機器32に組み込んだ従来技術のシステム30を示している。USBプロトコルは、USBホスト12が仮想的に分離された2つのUSB周辺機器として認識する複数の論理パスを割り当てる。この例では、電源やUSBスレーブコントローラの共有等、ストレージおよび無線の両機能が内部周辺構成要素を物理的に共有するが、これらストレージおよび無線の両機能がUSB周辺機器32内で直接通信することはない。これらの機能は、論理的には相互排他的な機器として扱われる。
図4は、USBホスト12に対して透過的なUSB周辺機器42の内部機能として、この場合は暗号化/復号化44をUSB周辺機器42に備えた従来技術のシステム40を示している。USBホスト12は、データストレージ18を通常の非暗号化データストレージアレイと見なすが、機器42の指紋センサーまたはパスワード等を用いた適正な認証が行われない場合は、復号化が不可能となって、USBホスト12はデータストレージ18にアクセスできない。
ホストを更新することなく、周辺機器に機能を追加する必要がある。特に低コストの機器の場合は、ホストのソフトウェアを追加する必要性を抑えることが望ましい。また、周辺機器に機能を追加することによって現在のプロトコルの不備に対応すること、および/またはユーザーの繁雑度を増すことなく機能を追加することが必要である。これらの必要性およびその他の必要性には、本明細書に開示の改良によって対応出来る。
本開示の一態様によれば、グラフアクセスデバイスおよびブロックアクセスデバイスが両デバイス間で共有されたメモリプールに同時にアクセスする方法が提供される。グラフアクセスデバイスは、階層ファイルシステム構造等のグラフとして構成されたデータにアクセスするコンピュータ等の任意の電子機器であってもよい。これにより、グラフは、データ構造を用いてメモリプール内の特定のアドレスに分解される。ブロックアクセスデバイスは、以前に任意のグラフアクセスが機器と非共有のブロックメモリに分解された離散開始位置アドレスおよび終了位置アドレスを用いてメモリにアクセスする任意の電子機器である。また、メモリプールは、少なくともその一部が周辺機器に含まれていてもよい。この方法は、メモリプールへのアクセス中にブロックアクセスデバイスによって行われた1または複数のメモリブロックアクセス動作を監視し、メモリプールを階層ファイルシステムにマッピングする複数のポインタを含むグラフデータ構造に上記ブロックアクセス動作を変換し、グラフデータ構造に従って、グラフアクセスデバイスがブロックアクセスデバイスと同時にメモリプールにアクセスすることを含む。
別の態様に係る装置は、グラフアクセスデバイスとブロックアクセスデバイス間で共有されたメモリプールを備える。また、この装置は、メモリプールへのアクセス中にブロックアクセスデバイスによって行われた1または複数のメモリブロックアクセス動作を監視する手段と、メモリプールを階層ファイルシステムにマッピングする複数のポインタを含むグラフデータ構造に上記ブロックアクセス動作を変換する手段と、グラフデータ構造に従って、グラフアクセスデバイスがブロックアクセスデバイスと同時にメモリプールにアクセスする手段とを備えている。
さらに別の態様に係る周辺機器は、メモリ、第1通信インターフェース、および第2通信インターフェースを備えている。このメモリは、グラフアクセスデバイスとブロックアクセスデバイス間で共有されている。第1通信インターフェースは、ブロックアクセスデバイスと通信するように構成され、第2通信インターフェースは、グラフアクセスデバイスと通信するように構成されている。プロセッサは、メモリへのアクセス中にブロックアクセスデバイスによって行われた1または複数のメモリブロックアクセス動作を監視し、メモリを階層ファイルシステムにマッピングする複数のポインタを含むグラフデータ構造に上記ブロックアクセス動作を変換し、ブロックアクセスデバイスのメモリへのアクセス中に、グラフデータ構造に従って、グラフアクセスデバイスのメモリへの同時アクセスを許可するように構成されている。
さらに別の態様に係る周辺機器は、外部ホストまたはクライアント機器と通信を行うとともに、当該ホスト/クライアント機器がブロックまたはグラフアクセスにより通信する必要があるか否かを知的に判定する。そして、当該周辺機器はこのアクセス方法で外部機器と通信を行う。
本明細書に記載した改良のその他の態様、特徴、利点、および変形例については、当業者であれば以下の図面および詳細な説明から明らかとなるであろう。なお、このような付加的な態様、特徴、変形例、および利点のすべては、以下の説明に含まれるとともに、添付の特許請求の範囲によって保護されるものとする。
図面は単に説明を目的としたものであって、添付の特許請求の範囲に制限を加えるものではない。さらに、図面中の各構成要素は必ずしも縮尺通りとはなっていない。また、図面中、異なる図面を通して対応する部分には、同一の参照符号を付している。
従来技術の周辺機器システムを示した図。 従来技術の周辺機器システムを示した図。 従来技術の周辺機器システムを示した図。 従来技術の周辺機器システムを示した図。 メモリへの同時アクセスを可能にする多機能周辺機器を備えた例示的なシステムの特定の構成要素を示したブロック図。 図5の多機能周辺機器に含まれるメモリに格納された例示的なコンテンツの概念図。 2つ以上の通信インターフェースを備えた別の例示的な多機能周辺機器アーキテクチャの特定の構成要素を示したブロック図。 図5に示す多機能周辺機器の特定の例示的な実施態様における特定の構成要素を示したブロック図。 多機能周辺機器の例示的なソフトウェアアーキテクチャを示した図。 グラフアクセスデバイスおよびブロックアクセスデバイスの共有メモリプールへの同時アクセスを可能にする例示的な方法を示したフローチャート。 グラフデータ構造のブロックメモリアレイへのマッピングの一例を示した概念図。 シャドウメモリ技術を用いたブロックアクセスデバイスおよびグラフアクセスデバイスへの同時メモリアクセスの一例を示した概念図。 シャドウメモリによりメモリプールへの同時アクセスを可能にする例示的な方法を示したフローチャート。 複数の機器に分散されてクラウドコンピューティングをサポートするメモリプールを示した概念図。 特定のユーザーに制限された領域へのメモリプールの例示的な分割を示した概念図。 少ないメモリ空間でTCP/IPパケットを送信する例示的な方法を示したフローチャート。 周辺機器を含む支払い処理システムを示した概念図。
以下の詳細な説明は、図面を参照・援用して、特許請求の範囲に係る1または複数の特定の実施形態を記述・説明するものである。これらの実施形態は、本発明を限定することなく単に例示・教示するものであって、特許請求の範囲に規定された本発明を当業者が実施できるように十分詳しく開示・説明する。したがって、本発明が不明瞭になることを回避するため、当業者に周知の情報は必要に応じて説明を省略する場合がある。
本開示の全体にわたって、「例示的」という用語の使用は、「一例、事例、または実例として作用する」ことを意味する。本明細書に「例示的」と記載された如何なる実施形態または特徴であっても、他の実施形態または特徴に対して必ずしも好適または好都合と解釈されるものではない。
本明細書には、ホストシステムの更新を最小限に抑えつつ、もしくは更新を行うことなく既存のシステムの有用性を改善し、および/またはユーザーの繁雑度を増すことなく新たな特徴を提供する周辺機器の新規ソリューションを開示している。
これらのソリューションは、USB等の周辺機器の新たな方法およびアーキテクチャで構成されており、データストレージに用いられるUSBマスストレージプロトコル等の一般的なプロトコルを活用するとともに、ホストのソフトウェアの追加または他のUSB通信プロトコルの使用の必要なく機能を追加するものである。このような追加機能としては、付加的な通信インターフェース、セキュリティ、サーバー、同期、およびインターネット等の大規模ネットワークに関連するその他のサービス等が挙げられるが、これらに限定されるものではない。
本明細書に記載の例示的なアーキテクチャおよび方法ではUSBを利用するが、これら方法およびアーキテクチャはUSBに限定されるものではなく、例えばeSATA、iSCSI等の他のバスおよび通信プロトコルを代わりに使用してもよい。
本明細書に開示の周辺機器アーキテクチャおよび方法を活用した結果として得られる新たなサービスを提供することはさらなる利点である。例えば、より広範囲のネットワークを組み込んでユーザーの繁雑度を増すことなくユーザーにサービスを提供する新規システムのアーキテクチャについても開示している。
I.周辺機器アーキテクチャ
図5は、ブロックアクセスデバイス52および1または複数のグラフアクセスデバイス56、58、60によるメモリ66への同時アクセスを可能にする多機能周辺機器54を備えた例示的なシステム50の特定の構成要素を示したブロック図である。このシステム50は、ブロックアクセスデバイス52、周辺機器54、およびグラフアクセスデバイス56、58、60を備えている。ブロックアクセスデバイス52はワイヤライン(有線)接続を介して周辺機器54と通信を行い、グラフアクセスデバイス56〜60は1または複数の無線リンクを介して周辺機器54と通信を行う。
各グラフアクセスデバイス56〜60は、階層ファイルシステム構造等のグラフとして構成されたデータにアクセスするコンピュータ、携帯情報端末(PDA)、携帯電話、ビデオゲーム機等の任意の電子機器であってもよい。これにより、グラフは、グラフデータ構造を用いてメモリ66内の特定のアドレスに分解される。グラフデータ構造は、グラフとメモリプール間の一連のマッピングを規定する。メモリプールは、単一の論理メモリアレイとしてアクセスされる1または複数のメモリアレイである。
より具体的に説明すると、グラフデータ構造は、メモリ66を階層ファイルシステムにマッピングする複数のポインタを含んでいる。本明細書に記載の周辺機器54、70、100に利用可能なグラフデータ構造の例としては、ファイルアロケーションテーブル(FAT)またはその改良型(vFAT、FAT32、FAT16、exFAT、NTFS、NFS等)といったファイルストレージデータベースが挙げられる。
メモリ66はメモリプールであるが、あるいは他の物理的メモリおよび/または機器を備えた大型のメモリプールの一部であってもよい。また、データ構造およびデータコンテンツは、ポインタを含むファイルアロケーションテーブル(FAT)ファイルシステム等の同じメモリプールに存在していてもよく、データは共通のメモリプールにまとめて格納される。あるいは、グラフデータ構造を別個のメモリに格納することもできる。グラフアクセスデバイス56〜60は、場合によってはWi−Fiクライアントである。また、場合によってはUSBホストであってもよい。
図6は、グラフデータ構造152およびデータコンテンツ154をまとめて格納した共有メモリ66の例示的な部分150を示したハイレベル概念図である。図示の例では、グラフデータ構造152がメモリ位置0〜mに存在し、データ154がアドレスm+1〜nのメモリブロックに存在する。データ154およびグラフデータ構造152は、図中ではメモリ位置が隣接しているが、隣接したメモリブロックに割り当てる必要はなく、メモリ66または他のメモリ内で分割してもよい。
図5を参照して、ブロックアクセスデバイス52は、グラフデータ構造ではなく低水準のアドレス方式すなわち離散開始位置アドレスおよび終了位置アドレスを用いてメモリ66にアクセスするコンピュータ、携帯情報端末(PDA)、携帯電話、ビデオゲーム機等の任意の電子機器であってもよい。ブロックアクセスデバイス52は、場合によってはUSBマスストレージプロトコルを動作させて周辺機器54にアクセスするUSBホストである。
周辺機器54は、プロセッサ62、有線インターフェース64、メモリ66、および無線インターフェース68を備えている。プロセッサ62は、ソフトウェア/ファームウェア命令を実行するマイクロプロセッサまたはDSP、特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)、ハードウェア実装されたステートマシン等、本明細書に開示の機能を実行する任意の適当なデジタルプロセッサであってもよい。また、メモリ66は、周辺機器54に対して着脱可能なものも含めて、セキュアデジタル(SD)カード、SDHCカード、SDXCカード、ハードドライブ、半導体メモリ等、任意の適当なメモリ機器であってもよい。ブロックアクセスデバイス52と周辺機器54間の有線通信はUSBが好ましく、無線通信はWi−Fiであってもよい。したがって、有線インターフェース64は、市販のUSBインターフェースモジュールであってもよい。また、無線インターフェース68は、市販のWi−Fiインターフェースモジュールであってもよい。
周辺機器54は2つ以上の機能を有しており、その1つは、ブロックアクセスデバイス52またはグラフアクセスデバイス56〜60のいずれかがアクセス可能なメモリ66のデータストレージアレイであってもよい。図示の例では、もう一方の機能は無線通信インターフェース68である。データストレージアレイは、周辺機器54上の共有メモリとして扱われ、上記機能および/または周辺機器54がサポートする外部機器によって共有される。プロセッサ62は、各機能のメモリ66へのマッピングを行い、ブロックアクセスデバイスおよびグラフアクセスデバイス52、56〜60によるメモリ66へのアクセスを制御する。共有メモリ66を用いることにより、周辺機器54が提供する無線インターフェース68およびデータストレージアレイ等の機能は、外部のブロックアクセスデバイス52とグラフアクセスデバイス56〜60間でデータを通信または共有するために互いに直接通信を行う必要はない。その代わりに、これらの機能は、メモリ66を介して互いに間接的に通信を行う。
プロセッサ62は、ブロックアクセスデバイス52およびグラフアクセスデバイス56〜60によるメモリ66への同時アクセスを許可するように構成されている。これは、メモリ66へのアクセス中にブロックアクセスデバイス52によって行われた1または複数のメモリブロックアクセス動作をプロセッサ62が監視することによって実現される。以下に詳述するように、プロセッサ62は、メモリ66を階層ファイルシステムにマッピングする複数のポインタを含むグラフデータ構造に上記ブロックアクセス動作を変換する。これにより、グラフアクセスデバイス56〜66のいずれも、ブロックアクセスデバイス52と同時にメモリ66にアクセス可能となる。グラフアクセスデバイス56〜66の1または複数は、ブロックアクセスデバイスのメモリ66へのアクセス中に、グラフデータ構造に従ってメモリ66にアクセスしてもよい。
本明細書において、「同時」「同時に」という用語の使用は、それぞれの通常の意味を表すものの、「外見上は同時」という意味もある。すなわち、周辺機器54、70、もしくは100における実際のメモリアクセスが順々に起こっている場合であっても、ユーザーおよび/またはプロセスからは、ブロックアクセスデバイス52およびグラフアクセスデバイス56〜60のうち少なくとも1つへのメモリアクセスが同時に起こっているように見える。周辺機器のメモリへの同時アクセスを提供する実用的な方法としては、同時に見える速度でのメモリへの多重アクセスと、周辺機器に多ポートメモリを備えることによる真の同時アクセスとの2つが挙げられる。
ブロックアクセスデバイス52は、図5においては有線インターフェース64を介して周辺機器に接続されているが、無線接続または無線接続と有線接続との組み合わせを介して接続してもよい。同様に、グラフアクセスデバイス56〜60のいずれも、無線リンクの代わりに有線接続を用いるか、または無線接続と有線接続との組み合わせを用いて周辺機器54に接続してもよい。また、ブロックアクセスが行われず、グラフアクセスのみが行われる場合もある。
上記周辺機器54は、図7に示すようなより一般的な周辺機器アーキテクチャに拡張可能である。図7は、2つ以上の通信インターフェース72、74、76、78を備えた別の例示的な多機能周辺機器70の特定の構成要素を示したブロック図である。この周辺機器70も、プロセッサ62およびメモリ66のほか、充電式バッテリ等のバッテリまたはスーパーキャパシタ等のその他適当な蓄電要素である電源80を備えている。各通信インターフェース72〜78は、本明細書に開示のいずれか等、有線または無線のインターフェースであってもよい。通信インターフェース72〜78の各々は、周辺機器70上では異なる機能であるため、プロセッサ62がインターフェース72〜78の共有メモリ66へのマッピングを行う。これら通信インターフェース72〜78は、プロセッサ62が管理する共有メモリ66を介してデータの相互通信および/または授受が可能である。周辺機器70には、通信インターフェース72〜78の内1または複数を介して、ブロックアクセスデバイスまたはグラフアクセスデバイスを接続してもよく、本明細書に記載の方法を用いてメモリ66に同時アクセスしてもよい。
図8は、図5に示す多機能周辺機器54の特定の例示的な実施態様における特定の構成要素を示したブロック図である。図8の周辺機器100は、中央演算処理装置(CPU)102またはプロセッサ、メモリ104、USBインターフェース106、無線インターフェース108、電力管理モジュール110、電源112、1または複数のセンサー113、ランダムアクセスメモリ(RAM)114、リードオンリーメモリ(ROM)116、およびユーザーインターフェース118を備えている。また、ユーザーインターフェース118は、スイッチ120およびLED112等の可視的表示器を備えている。
CPU102は、ソフトウェア/ファームウェア命令を実行するマイクロプロセッサまたはDSP、特定用途向け集積回路(ASIC)、ハードウェア実装されたステートマシン等、本明細書に開示の機能を実行する任意の適当なデジタルプロセッサであってもよい。CPU102は、プログラミング命令およびデータを格納するRAM114およびROM116等のオンボードメモリを備えた市販のマイクロプロセッサであることが好ましい。
ROM116は、周辺機器のブートコードまたはスタートアップコードを格納することができる。CPU102は、ROM116を用いてそのコードのスタートアップおよび動作を行わせる。このスタートアップコードまたはブートコードに別個のROM116を使用する代わりに、メモリ104の一部をブートコードに使用することも可能である。RAM114は、CPU102が使用するデータおよびプログラミング命令を格納することができる。
メモリ104は、任意の適当なメモリ機器であってもよく、着脱可能なSDカードであることが好ましい。SDカードを用いる場合、周辺機器100は、カードを挿入するSDポートを備えていてもよい。メモリ104はメモリプールであって、他の物理的メモリおよび/または機器を備えた大型のメモリプールの一部であってもよい。また、場合によってはフラッシュメモリ等の取り外しできない埋め込み式半導体メモリであってもよい。
USBインターフェース106は、CPU102に接続するデジタルバスを備えた市販のUSBインターフェースモジュールであることが好ましい。また、無線インターフェース108についても、CPU102に接続するデジタルバスを備えた市販のWi−Fiインターフェースモジュールであることが好ましい。
周辺機器の無線インターフェース108は、標準的なウェブプロトコル上に提供されたWi−Fi(802.11)インターフェースであってもよい。周辺機器100は、IPスタックおよびHTTPサーバーを含む。また、無線ネットワーク上の他の機器にその存在を知らせるため、リンクローカルマルチキャストDNS(ZeroConfまたはBonjourとしても周知)を使用する。周辺機器100へのアクセスは、Wi−Fi暗号化(WEPまたはWPA)、MACアドレスフィルタリング、および/またはアプリケーション層セキュリティ(SSLおよびHTTP認証)を用いて制御してもよい。
周辺機器100は、接続された複数の無線クライアント間でのファイルアクセスの調整を行ってもよい。例えば、接続された複数のクライアント上のメディア(映像または音声)にアクセスする場合、周辺機器100は、すべてのクライアントが同期再生の開始を要求できるようにしてもよい。この調整は、周辺機器100からクライアントに送信されてクライアント上で実行されるプログラム(例えば、リッチAJAXクライアントアプリケーション等)または標準的なメディアストリーミングプロトコルを介して行ってもよい。
電源112は、周辺機器100がUSBポートに接続された時に充電可能な充電式バッテリ等のバッテリまたはスーパーキャパシタ等のその他適当な蓄電要素であってもよい。周辺機器100は、電源112を付加することによって、ホストUSBポート等のホストから抜いた後にも機能する。この場合、電源112は周辺機器に電力を供給可能である。したがって、周辺機器100は、USBホストに接続中またはUSBホストに接続されていない場合に、独立した機器として機能する。また、接続されているにも関わらず周辺機器112が機能するのに十分な電力をホストが提供できていない場合も、電源112が周辺機器100に電力を供給可能である。
電力管理モジュール110はCPU102に接続されており、一般的にはCPU102を介して、USBインターフェース102、電源112、およびユーザーインターフェース118にも接続されている。このモジュール110は、USBインターフェース106を介した充電、スリープモード、およびユーザーインターフェース118のLED122によって表示される周辺機器の電力状態表示器(充電状態、低電力状態等)といった電源112を管理するための市販のソフトウェア要素およびハードウェア要素を備えている。
センサー113としては、CPU102に連結された任意の適当な数または種類のコンテキストセンサーを挙げることができる。例えば、センサー113としては、実時間クロック、市販のGPS位置決めモジュール、加速度計、バイオメトリックセンサー、温度センサー、等が挙げられる。また、センサー113の出力は、本明細書に記載の方法と連動してCPU102が使用することにより、ブロックアクセスデバイスおよび/またはグラフアクセスデバイス(例えば、ホストおよび/またはクライアント)からメモリ104へのアクセスを承認または拒否することができる。
周辺機器100を用いることにより、USBホスト(例えば、ブロックアクセスデバイス52)がUSBインターフェース106と通信を行う。無線インターフェース108の無線通信機能は、メモリ104にマッピングされて、USBホストとは独立に機能する。また、CPU102は、USBホストの無線通信機能およびデータストレージ機能をまとめてメモリ104に適宜マッピングする。その他、より高機能の無線サーバーを提供する機能および/または管理機能等の別の機能も周辺機器100のメモリにマッピングしてもよい。これらメモリマッピングによって、USBホストは、USBマスストレージプロトコルにより周辺機器100にアクセスすると、従来のUSB周辺機器における論理的に分離された無線機器およびストレージデバイスとしてではなく、周辺機器100を単一のUSBストレージデバイスと見なす。これにより、周辺機器の追加機能はホストに対して透過的となる。USBホストでは、無線機能に対してドライバを追加する必要が一切なくなり、メモリ104上のデータストレージアレイと通信を行いさえすればよい。これにより、USBホストは、ソフトウェアを追加することなく、USBストレージプロトコルを活用して追加機能を受け取ることができる。
CPU102は、メモリ104の特定部分を異なる機能およびマスストレージに内部で割り当てることによって、メモリマッピングが可能である。これらの割り当てはCPU102が管理し、ホストおよび無線インターフェース108を介して周辺機器100と通信するその他の機器に対して透過的であってもよい。
メモリマッピングでは、周辺機器100に設けられた物理ストレージまたは任意の粒度の任意の組み合わせ仮想/物理ストレージを参照可能である。例えば、各フォルダまたはファイルが周辺機器のどこか別の場所に存在するか、同じファイルの各部が異なるメモリ上に存在する。あるいは、メモリアクセスの結果、通信インターフェース106、108の機能が変更となる。
また、CPU102は、本明細書に開示の方法を用いて、各機能、ブロックアクセスデバイス、およびグラフアクセスデバイスからメモリ104への同時アクセスを行えるように構成可能である。
複数の機能を共通の(または複数の共通の)メモリ空間にマッピングする上記周辺機器アーキテクチャにより、周辺機器100は、無線ネットワークインターフェースおよびデータストレージの機能を越えて、USBホストには単一の論理デバイスに見える複数の機能を含むことができる。例えば、周辺機器100は無線インターフェース108、メモリ104のマスデータストレージ、およびその他の機能を含む場合があるが、USBホストはこれら周辺機器の機能を単一のファイルシステムと見なしてもよい。したがって、USBホストは、ファイルと相互作用しているように、周辺機器100上のすべての機能を扱うことができる。このため、ホストは、周辺機器の機能とソフトウェアアプリケーション層レベルで連動可能である。これにより、USBホストは、周辺機器100による各機能へのマッピングがあるにも関わらず、ホストとは独立に周辺機器100を1つの機能として扱うことができる(ただし、直接的または暗黙的な設定をメモリ104に格納することによって、USBホストが設定した上記第2の機能を制御することも可能である)。
周辺機器100のUSBおよび無線インターフェース106、108のいずれも、ハードウェアが提供する接続機器/ホストとの直接インターフェースではなく、結局は周辺機器のソフトウェアによって制御されるため、各メディアを介したストレージおよび/または機能の提供方法を当該ソフトウェアにより決定することができる。特に、ソフトウェアでは以下のようなことが可能となる。
1.複数のデータソースを組み合わせて1つの論理ストレージプールを生成(例えば、無線インターフェース上での内部ROMおよびSDストレージからのデータの組み合わせ等)、
2.認証またはその他の要因に基づいてデータへのアクセスを制限または防止、および/または
3.SDカード等のメモリ104上でデータを暗号化(復号化にはホストまたはクライアントからのキーが必要)、および/または
4.USBまたは無線インターフェース106、108のいずれかを介した論理ストレージプールへの独立データ転送を含む追加機能を提供。
図8の例では、周辺機器100とそれに接続された外部サーバー間で無線インターフェース108を介して、マスストレージデバイスとしての周辺機器100と相互作用しているUSBホストとは独立にWi−Fiトランザクションが発生する可能性がある。例えば、共有メモリ104にファイルとして何が格納されても、CPU102によって、外部サーバーまたは1もしくは複数のその他類似機器との同期をWi−Fiインターフェースを介して自動的に図ることができる。
また、周辺機器100は、USBホストの様々な制御方法を提供することにより、データストレージおよび/またはUSBデータストレージプロトコルを活用して第2の機能の態様を制御することができる。例えば、通常のUSBマスストレージプロトコルおよびUSBホストのソフトウェアは、ファイルアロケーションテーブル(FAT)またはその改良型(vFAT、FAT32、FAT16、exFAT、NTFS、NFS等)といった周知のファイルストレージデータベースを利用する。第2の機能が例えばWi−Fi無線通信の場合、データドライブのボリューム名は、ホストでのWi−Fi用SSID名に直接マッピング可能である。そして、USBホストは、周知のボリューム改名機能を用いて、SSIDの名称を制御することができる。あるいは、それぞれが特化したファイルフォルダ名に対応する複数のSSIDが存在してもよい。これにより、ユーザーは、Wi−Fiネットワークの選択中に複数のSSIDを単一のメニューとして閲覧し、許可された然るべきアクセスを選択することができる。以下に詳述するように、複数のユーザー/サーバーは、異なるセキュリティレベルで、SSIDを介して様々なフォルダにアクセス可能である。
また、CPU102は、トランスコードおよび/または暗号化/復号化等の追加機能を提供するように構成することもできる。トランスコードの場合、CPU102は、例えば映像、音声、または文書ファイル等のコンテンツをあるデータフォーマットから別のフォーマットへ、コマンドを起動しているホストとは独立に自動変換可能である。また、CPU102は、ファイルの転送中または転送後のいずれであっても、メモリ104へ格納するデータの暗号化および/または復号化が可能である。
周辺機器100の基本的な機能は、無線および有線インターフェース106、108を介したストレージへのアクセスを提供することである。周辺機器100の特定の構成には、これら特徴の基本的な実施態様を備えることにより、USB2.0またはSD/SDHCストレージ(メモリ104)への無線アクセスを提供している。暗号化されたファームウェアは、ダウンロードしてSD/SDHCストレージ(メモリ104)に直接格納した後、内蔵ROM116の更新に使用可能である。あるいは、内蔵ROM116に直接ダウンロード可能である。このダウンロードは、USBインターフェースまたはWi−Fiインターフェースを介して行うことができる。この複合機器のその他の構成要素は、標準的なUSB2.0SDカードリーダー機として提供される。
USBを介した接続中、周辺機器100は、ホストから電力を引き出すことによって内部電源112を充電する。USBを介して接続していない場合、周辺機器100は、スイッチ120での決定により、電源をオンにしてもオフにしてもよい。スイッチ120は、周辺機器100上の押しボタンであってもよい。電源オンの場合、周辺機器100は、(アドホック/ピアツーピア、インフラモード、および/またはWi−Fiダイレクト等の様々なモードを用いて)802.11無線ネットワークをブロードキャストする。無線ネットワークの名称は、挿入されたSDカードの名称により決定されてもよい(カード非挿入の場合はデフォルトの名称を選択)。また、暗号化設定は、カード上のファイルによって決定される(カード非挿入の場合は暗号化なし)。
無線ファイルアクセスは、周辺機器100に含まれる標準的なHTTPサーバーにより提供してもよい。周辺機器100は、プライベートなリンクローカルIPアドレスを自身に割り当て、接続されたクライアントによる発見可能性をサポートするため、リンクローカルマルチキャストDNSメッセージに応答する。HTTPサーバーは、周辺機器からのファイルへのアクセスに用いられるダイナミックAJAXアプリケーションをiPhone/iPad等の接続されたiOS機器に送信可能である。他のクライアントは、基本的なファイルリストを受信する。
メモリ104がSDまたはセキュアデジタルハイキャパシティ(SDHC)カードである周辺機器100の構成において、周辺機器100の電源がオンの場合は、SD/SDHCカードの挿入または取り外しをスキャンする。周辺機器100に対するカードの挿入または取り外しがあると、それに応答して一連の動作が行われる場合がある。カード挿入時に周辺機器100がUSBを介して接続されている場合は、カードが挿入済みであることをホストに通知することができ、これによりホストは、カードのコンテンツを視聴および修正することができる。カードが取り外された際も同様に、周辺機器100はそのことをホストに通知する。そして、ストレージからの情報を用いて無線アクセスを構成してもよい。例えば、カードのボリューム名を用いて無線インターフェースのSSIDを設定してもよいし、カード上のファイルを用いて暗号キーを決定してもよい。カードの挿入および取り外しにより、カードに設定データが存在する場合は、無線インターフェース108の状態変更が発生する。周辺機器100は、カード上の特定のファイルによって、すべてのカードまたはその他最優先の設定情報を持たないカードに当てはまるデフォルトのパラメータの設定を開始してもよい。
別の構成においては、USBインターフェース106の代わりにシリアルATA(SATA)またはセキュアデジタル(SD)カードインターフェース等の有線ストレージインターフェースを用いることもできる。また、Wi−Fiとの別の無線インターフェースとしては、例えば3G/4G携帯電話モデム、Bluetooth(登録商標)、NFC、赤外線、ZigBee改良型等を上記無線インターフェースとして用いることもできる。また、複数の無線インターフェースをサポートすることも可能である(例えば、Wi−Fi802.11とBluetooth(登録商標))。これらのインターフェースは、異なるプロトコルを介して同じサービスを提供してもよいし、独自の方法で組み合わせてもよい。暗号化されたストレージまたは認証された無線クライアントへのアクセスのロックを解除するキーとしては、Bluetooth(登録商標)近接ペアリングを用いてもよい。周辺機器100は、Bluetooth(登録商標)(DUN)を介してインターネット接続を取得し、これをファイルサービスに用いてもよい。この場合は、Wi−FiまたはUSBを介して接続を他の機器と共有してもよい。
別の構成においては、無線または有線インターフェース106、108の内1または複数を介して通信を行うネットワークサーバー等、周辺機器100以外の1または複数の機器上にメモリ104を設けてもよい。このような構成においては、物理的なメモリストレージアレイが周辺機器100上に存在しない場合、CPU102が行うメモリマッピングでは仮想メモリが参照される。また、当該仮想メモリへの/からの転送を行うには、周辺機器100とリモートのストレージサーバー/ユニット間の通信が必要となる。この場合、周辺機器102は、データが実存しない場合は、周辺機器102上に物理的に設けられているかのように無線または有線インターフェース106、108を介して他のホスト/クライアントにデータを提供するように構成されている。これらの構成においては、CPU102が必要に応じて、リモートで格納されたコンテンツの一部をローカルメモリストレージ(RAM114等)にキャッシングすることにより、ホストがリモートメモリにアクセスしている時のネットワーク待ち時間および速度等の性能を改善することもできる。この場合、キャッシュデータはホストに対して透過的である。すなわち、ホストはローカルメモリストレージの性能の利益を享受するが、依然として、キャッシュデータは周辺機器100上のストレージアレイに格納されているものと見なす。
図9は、多機能周辺機器100の例示的なソフトウェアアーキテクチャ250を示した図である。周辺機器100のソフトウェアアーキテクチャ250は、多数の層状要素で構成されている。
ソフトウェアの最下層は、周辺機器ハードウェアとの接続を扱うとともに、USB機器、SDカードインターフェース、Wi−Fi SDIOインターフェース、LEDおよびスイッチ等のユーザーインターフェース、クロックおよび電力制御、並びにバッテリの充電を制御する。このソフトウェアの最下層には、USBハードウェアバスインターフェース276、SDハードウェアバスインターフェース278、SDメモリドライバ270、SD入出力(SDIO)272、タイマーサービス274、例えば温度センサー、実時間クロック、GPS位置決めモジュール等とのソフトウェアインターフェースを含むセンサーインターフェース280、ユーザーインターフェース282、タイマーサービス274、バッテリ管理284、およびWi−Fiドライバ268が含まれる。この層は、周辺機器ソフトウェアの残りの部分が使用するハードウェア抽象化レイヤーを構成している。
周辺機器ソフトウェアの上位層は、機器の主要な特徴を規定する。これらの層には、USBマスストレージプロトコルソフトウェア254、ファームウェア更新ソフトウェア256、グラフアクセスサーバー(例えば、mDNS、HTTP、FTP等)258、Wi−Fi設定ソフトウェア260、TCP/IPスタック262、電力管理・設定ソフトウェア264、FAT266等のグラフデータ構造、およびコンテキストを意識したステートマシン252が含まれる。
コンテキストを意識したステートマシン252には、本明細書に開示の方法を実行するためのソフトウェアコードを含むことができる。また、ステートマシン252には、セキュリティおよび認証、暗号化/復号化、トランスコード、メモリおよび機能アクセス制御、通信チャンネル制御等、本明細書に記載の付加的なサービスを提供するためのソフトウェアコードを含むことができる。
ファームウェア更新ソフトウェア256は、SDカードインターフェース278またはUSBインターフェース106を介して周辺機器のソフトウェアをシステム内更新する際に使用する。USBの仕様は固定されておらず、プロトコルの更新および拡張は定期的に発生する。その他の更新としては新たなプロファイルが挙げられ、無線ネットワークの新たな規格等、新たなソフトウェアドライバでホストを更新する必要性を無くして相互運用性を改善する。
USBマスストレージプロトコルソフトウェア254は、USBインターフェース106を介してメモリ104のコンテンツ(および場合によってはその他のデータ)を添付ディスクとしての接続ホストに提供する。別の例では、メモリ104へのアクセスを有するネットワーク周辺機器としてのホストに接続するUSBネットワークアクセス等のUSBプロトコルも考えられる。
電力管理・設定ソフトウェア264は、バッテリの充電および省電力モードを制御する。
このソフトウェアは、Wi−Fiアクセスポイント(AP)またはWi−Fiクライアントのいずれかとして機能するように周辺機器100を設定する。周辺機器100は、Wi−Fi APとして動作する場合は周囲に移動式のパーソナルエリアネットワーク(PAN)を提供する。別の例では、APおよびクライアントへの同時アクセスにより周辺機器100が機能するようにすることも可能であって、Wi−Fiダイレクト規格を活用してもよい。
一部の構成において、周辺機器100は、Wi−Fi APモードで動作中に機能を増強するため、1または複数のWi−Fiクライアントと「一体化」することもできる。周辺機器100は、必要に応じて各クライアントのMACアドレスおよび特定のログイン認証情報を格納することにより、クライアントと一体化される。また、周辺機器100は、APモードで動作中、別のAPに送信されている一体化クライアントのMACアドレスのWi−Fiチャンネルを傍受する。一体化クライアントは、別のAPとの接続を試みる場合、そのMACアドレスをブロードキャストする。周辺機器100は、ブロードキャストされたクライアントのMACアドレスを検出すると、クライアントの接続要求に対してブロードキャストされた他のAPの宛先MACアドレスを待って検出する。そして、周辺機器100は、他のAPに接続する必要がある場合、宛先MACアドレスとクライアントに対応する格納されたログイン認証情報とを比較する。あるいは、周辺機器100は、クライアントの接続伝送からログイン認証情報を傍受することもできる。周辺機器100は、他のAPの領域内に存在する場合、Wi−Fiクライアントモードに切り替わり、一体化機器の認証情報を用いてWi−Fiクライアントとして他のAPに接続可能である。
別のソフトウェアアーキテクチャを実装しても、同じ結果を得ることができる。また、既知のソフトウェア技術を用いて削減、代用、付加、および/または再構成を行うことにより、周辺機器のソフトウェア/ファームウェアを実装することもできる。
II.メモリプールへのアクセス方法
図10は、グラフアクセスデバイスおよびブロックアクセスデバイスの共有メモリプールへの同時アクセスを可能にする例示的な方法を示したフローチャート300である。この方法は、本明細書に記載の周辺機器54、70、100のいずれによって実行してもよい。グラフアクセスは、グラフとして構成されたデータへのアクセスを表すため、サーバーまたはプロセッサは、高水準のアクセスコマンドを受信して、グラフデータ構造等のデータ構造によりグラフをメモリプールコンテンツに分解する。ブロックアクセスは、離散開始位置アドレスおよび終了位置アドレスを用いたメモリプールへのアクセスを表す。
ステップ302においては、ブロックアクセスデバイスがメモリプールにアクセスしようとする試みが検出される。周辺機器がメモリプールへのアクセスを承認すると、周辺機器のプロセッサは、メモリプールへのアクセス中にブロックアクセスデバイスによって行われたメモリブロックアクセス動作の監視へと移行する(ステップ304)。メモリブロックアクセス動作としては、ブロック読み出し動作またはブロック書き込み動作が挙げられる。プロセッサは、動作の種類(読み出しまたは書き込み)、動作の数、およびブロックアクセス中の動作のメモリアドレス位置を追跡する。
次のステップ306においては、プロセッサが、メモリプールを表すグラフデータ構造に上記ブロックアクセス動作を変換する。グラフデータ構造には、メモリプールを階層ファイルシステムにマッピングする1または複数のポインタが含まれる。単純なグラフデータ構造の例を図11、図12、図14、および図15に示す。上記変換ステップにおいては、分解プロセスを用いてもよい。すなわち、バッファリングした複数の更新をグラフデータ構造に分解してもよい。分解には、当該技術分野において既知のNウェイマージアルゴリズムを用いてもよい。
分解は、ブロックアクセスのために必要となる。メモリプールでグラフアクセスがいつ発生しても、グラフデータ構造は常に適格な状態を維持する。しかし、ブロックアクセスが発生すると、グラフデータ構造は一時的に不適格な状態となる場合がある。周辺機器のプロセッサは、将来的にはある時点でグラフを分解することになる。
分解プロセスの分解/開始時期については、以下のような様々な粒度のレベルが存在する。
1.最小粒度:すべてのアクセス(ブロックおよびグラフ、読み出しおよび書き込みの両方)が停止するまで分解を遅延させる。すなわち、USBホストから機器が取り出されるとともにすべてのWi−Fiクライアントが非接続となるまで分解を遅延させ、その後分解する。
2.ブロックアクセスが停止し、分解が終了するまでグラフアクセスをロックアウトするようにグラフデータ構造を更新した後、グラフアクセスを再開するまで分解を遅延させる。例えば、分解が終了するまでWi−Fi通信を失速させる。
3.アクセス中のファイルを識別し、同時アクセス中ではないファイルを即座に分解する(別個のバッファを用いなくてもよい)。
4.アクセス中のファイルの部分を識別し、当該部分を即座に分解する。別の改良として、アクセス対象となる部分を予測し、アクセスの可能性が低くなるまで当該部分の分解を阻止する。
5.ブロックアクセスによってグラフデータ構造が安定した状態となった時を識別し、分解プロセスを適用する。
選択肢として、機器プロセッサは、周辺機器の内部グラフデータ構造を更新してグラフと以前のブロック動作とを一致させることにより、および/またはメモリブロックを移動/コピーしてブロックメモリとグラフアクセスとを一致させることによりメモリを分解してもよい。これら分解動作の一方または両方は、グラフ(グラフデータ構造)の漸増的な更新であって、プロセッサまたはホスト機器によるブロックメモリの完全な再スキャンよりも起こり得るものであり、発生した更新が分解される。この漸増的な分解は、グラフアクセスデバイスまたはブロックアクセスデバイスのいずれかによる一連のブロックアクセスが完了した後に発生する。
状況によっては、上記ブロックアクセス動作の変換が、プロセッサによるアドレスAの要求メモリブロックの別のアドレス(例えば、アドレスB)へのリダイレクトを伴うこともある。この手法は、周辺機器の内部グラフデータ構造が更新され、ブロックアクセスデバイスが自身の内部グラフデータ構造を更新していない場合に用いられる。また、プロセッサは、ブロックアクセス動作の完了を待って、ブロックの並べ替えおよび/または内部グラフデータ構造の部分的な再構成を順次行うことによりブロックおよびグラフ構造を互いに一致させるようにしてもよい。
ステップ308において、周辺機器のプロセッサは、グラフアクセスデバイスにグラフデータ構造を提供する。これは、グラフアクセスデバイスがアクセス可能なメモリ領域に更新グラフデータ構造を格納することによって行ってもよい。そして、グラフアクセスデバイスは、グラフデータ構造に従って、ブロックアクセスデバイスと同時にメモリプールにアクセス可能である。
図11は、グラフデータ構造352のブロックメモリアレイ350へのマッピングの一例を示した概念図である。メモリアレイ350は、局所的にでも分散的にでも、物理的または仮想的に、本明細書に記載のメモリのいずれか(例えば、メモリ66、104等)に含まれていてもよい。図示の例では、メモリアレイ350がメモリブロック(またはクラスタ)B1〜Bnを備えている。ここで、nは任意の適当な整数値である。各ブロックのバイト数は、任意に適当であってもよい。
ブロックアクセスデバイスは、プロセッサ62、102にブロックアドレスを提供することによってアクセス可能なアレイ350の任意のブロックにアクセスしてもよく、その後は、ブロックアクセス動作に応じて、アドレス指定されたブロックに対してデータの書き込みまたは読み出しを行う。
グラフデータ構造352は、階層的なグラフ表現をメモリアレイ350に強制する。グラフデータ構造は、FATまたはその改良型(vFAT、FAT32、FAT16、exFAT、NTFS、NFS等)といったファイルストレージデータベースを含んでいてもよい。図示の例では、グラフデータ構造352がルートディレクトリR、ファイルF、F、F、およびディレクトリDを含んでいる。グラフデータ構造のこれら各要素は、それぞれに対応するメモリブロックを識別するポインタを含んでいる。例えば、ディレクトリDはブロックB5に、ファイルFはブロックB6、B9、B10に、ファイルFはブロックB105、B106に対応する。
グラフアクセスデバイスは、グラフデータ構造352を用いてメモリアレイ350にアクセスする。これは、データ構造352のファイルおよび/またはディレクトリを読み出し、書き込み、あるいは操作することによって行う。そして、プロセッサ62、102がグラフデータ構造352のポインタを用いることにより、アレイ350の対応するメモリブロックにアクセスする。
図13は、ブロックアクセスデバイスおよびグラフアクセスデバイスに対して外見上は同時のメモリアクセスを許可するシャドウメモリ技術の一例を示した概念図である。シャドウメモリ技術は本質的に、メモリアレイ400の書き込み中のアドレスにグラフアクセスデバイス等の別の機器が同時アクセスしている場合、ブロックアクセスデバイスによるメモリブロック書き込みをバッファリングする。当該技術およびメモリアレイ400は、本明細書に記載の周辺機器54、70、100のいずれにおいても実装可能であって、メモリアレイ400は周辺機器のメモリ66、104に設けることもできる。
シャドウメモリのバッファは、同じメモリプールに設けてもよいし、周辺機器の別個のメモリプールに設けてもよい。同じメモリプールの場合、バッファリングされたデータはメモリアレイ400の未使用領域に格納される。プロセッサ62、100は、バッファのメモリ領域が確保されたことを示すグラフデータ構造402を更新するか、または、プロセッサ62、102はシャドウバッファの位置を示す自身の使用メモリテーブルを保持する必要がある。グラフアクセスデバイスまたはブロックアクセスデバイスの書き込みが一時使用のバッファメモリの位置に発生する場合、プロセッサ62、102は、その書き込みをメモリアレイ400の未使用部分にリダイレクトする。
図示のシナリオ例では、ブロックアクセスデバイスがメモリブロックB105、B106へのブロック書き込みを試行する。プロセッサ62、102は、グラフアクセスデバイスがグラフデータ構造402を用いてファイルFとしてのブロックB105、B106にアクセス中であることを検出し、代わりに、ブロックB115、B116への書き込みをブロック書き込みに行わせると、これらがシャドウバッファとして動作する。グラフアクセスデバイスによるFへのアクセスが完了すると、プロセッサ62、102は、FがB105、B106の代わりにB115、B116を指し示すためのグラフデータ構造402のポインタを更新することによってブロックアクセス書き込みを分解する。あるいは、B115、B116のコンテンツをB105、B106にそれぞれ転送した後、B115、B116を未使用ブロックとして解放する。
図13は、シャドウメモリによりメモリプールへの外見上は同時のアクセスを可能にする方法をさらに詳しく説明するためのフローチャート450である。ステップ452において、ブロックアクセスデバイスは、メモリアレイ400のFのメモリブロックB105、B106への書き込み動作を試行する。プロセッサ62、102は、書き込み動作を検出すると、グラフデバイスがB105、B106に対応するFに現在アクセス中であるか否かを判定する(ステップ454)。アクセス中でない場合、プロセッサ62、102は、ブロックB105、B106への書き込みを許可する(ステップ456)。
グラフアクセスデバイスが同じメモリブロックB105、B106にアクセス中の場合、プロセッサ62、102は、代わりに未使用メモリブロックB115、B116への書き込みをブロックアクセスデバイスに行わせる(ステップ458)。
ステップ460において、プロセッサ62、102は、グラフアクセスデバイスのメモリアクセス動作を監視して、グラフアクセスデバイスがFへのアクセスを完了したか否かを判定する。そして、プロセッサ62、102は、グラフアクセスデバイスがブロックへのアクセス動作を完了すると、B115、B116のコンテンツをFに含むようにグラフデータ構造を分解する。図12に関連して上述したように、バッファコンテンツB115、B116は、以下2つのいずれかの方法でグラフデータ構造402に分解される。一方は、B115、B116のコンテンツがB105、B106にコピーされる。他方は、Fに対するグラフデータ構造402のポインタがB105、B106の代わりにバッファB115、B116を指し示すように更新される。そして、ブロックに書き込まれたコンテンツは、同じメモリ位置B115、B116を維持する。
図14は、複数の機器502、506に分散されてクラウドコンピューティングをサポートするメモリプールを示した概念図である。このメモリプールは、周辺機器502上に存在するメモリプールA508を備えている。周辺機器502は、上記周辺機器54、70、100のいずれであってもよい。また、メモリプールは、ネットワーク機器506上に存在するメモリプールB510を備えている。ネットワーク機器510は、本明細書に記載の無線ネットワークおよび有線ネットワーク(例えば、USB等)といった任意の適当なネットワーク接続を介して周辺機器502に接続されている。
周辺機器502は、別個の機器上に物理的に設けられた別個のメモリプールA508、B510で構成されているものの、単一の論理メモリプールとして、分散メモリプールをUSBホストまたはWi−Fiクライアント等の他の接続機器に提供するように構成されている。周辺機器502は、これをメモリプールB510のマッピングを行う第2のグラフデータ構造511に接続するポインタを含むグラフデータ構造509を用いて行うことにより、メモリプールA508、B510の両者を単一の論理メモリとして論理的にマッピングする。第2のグラフデータ構造511は、図14に示すようにネットワーク機器506上のメモリプールBに格納してもよいし、周辺機器502にアクセスしてメモリプールB510を参照できるのであれば、どこに格納してもよい。
外部データサービスについてもメモリプールと見なして、同様に扱ってもよい。例えば、RSSニュース収集サービスは、ニュース記事を有する他のサーバーを指し示すグラフデータ構造を備えた外部の第三者サーバーであってもよい。これは、グラフマッピングにより周辺機器54、100からアクセス可能なグラフデータ構造およびメモリプールである。
周辺機器508のグラフデータ構造509は、以下のいずれかにより更新可能である。
プル:ブロックアクセスまたはグラフアクセスによるリソースへのアクセスによって、物理的に分離されたメモリプールにあるデータのプルが発生する場合がある。
プッシュ:他の場所に設けられたメモリプールへのアクセスによって、アクセス開始により周辺機器508外に設けられたメモリプールのグラフデータ構造509の一部または全部の更新が発生する(新たなWi−Fiネットワークへの接続、Facebook更新等のサービスからの通知等)。
図15は、特定のユーザーに制限された領域へのメモリプール550の例示的なパーティションを示した概念図である。周辺機器100上で実行するコンテキストを意識したステートマシン252は、1または複数のグラフデータ構造内の特定のファイルおよびディレクトリにユーザーを制限するセキュリティ機構を備えていてもよい。ユーザーは、例えばパスワードその他の手段によって認証を行うことにより、メモリプール550の領域へのアクセスが可能である。アクセスを承認する許可は、グラフデータ構造の一部として格納および構成してもよい。
図示の例では、グラフデータ構造553で表される第1のメモリプールパーティション552に対して、ユーザーA、C、Dのアクセスが許可されている。ユーザーBだけは、グラフデータ構造557で表される第3のメモリプールパーティション556に対してアクセスが許可されている。グラフデータ構造555で表される第2のメモリプールパーティション554に対しては、全ユーザー共通のディレクトリDを介して、すべてのユーザーA、B、C、Dのアクセスが許可されている。
図16は、少ないメモリ空間でTCP/IPパケットを送信する例示的な方法を示したフローチャート600である。この方法は、周辺機器100上で動作するソフトウェア(例えば、TCP/IPスタック262および/またはステートマシン252等)により実装してもよい。この方法では、TCP/IPプロトコルの実行に必要なメモリストレージを低減できて都合が良い。このことは、周辺機器等のメモリおよびリソースが制限された機器には重要となり得る。
ステップ602においては、TCP/IPによりパケットが送信される。周辺機器100の場合、このTCP/IPパケットは、無線インターフェース108またはUSBインターフェース106を介して送信してもよい。そして、従来のTCP/IPにより、送信が成功したことを示す確認メッセージ(ACK)が受信側TCP/IPノードから受信されるまで、通常、送信パケットのコピーが一時メモリに格納される。ACKが受信されない場合は、送信側でコピーしたパケットを一時メモリから素早く読み出して再送する。ただし、コピーしたパケットを一時的に格納するこの従来のTCP/IP手法には、相対的に多くのメモリ量を消費してしまうという欠点があるため、メモリ空間が限られたアプリケーションには望ましくない場合がある。
この欠点を克服するため、図16の方法では、送信パケットをコピーすることなく、メモリプール内の存在位置に送信パケットへのポインタを格納する(ステップ604)。パケットの送信後は、従来のTCP/IPプロトコルステップを用いて、受信側からACKが受信されたか否かの確認が行われる(ステップ606)。ACKが受信された場合は、パケットを追加送信する必要があるか否かが判定される(ステップ608)。必要な場合はステップ602に戻り、不要な場合は終了となる。
TCP/IPプロトコルによる規定の通り受信側からACKが受信されていない場合は、ポインタを用いてメモリプールからパケットを呼び戻し(ステップ610)、当該パケットを再送する(ステップ612)。
III.周辺機器のセキュリティ
周辺機器54、70、100がサポートするメモリプールの部分は、機器/パーティションレベルまたは個々のファイルレベルで暗号化可能である。ストレージの個々の部分が異なるキーで暗号化された場合、ストレージの全領域はマスターキーを用いてアクセス可能であってもよく、個々のサブキーは確保した領域(マスターキーを用いて暗号化)に格納される。あるいは、ストレージの全領域は、1つのキーで暗号化してもよい。
暗号化されたストレージのロック解除は、有線インターフェースまたは無線インターフェースのいずれかを介して行ってもよい。ホストの認証のため、周辺機器54、70、100は、標準的なマスストレージデバイスをホストに提供するとともに、キーとして動作する特定の名称のファイルの書き出しまたはディレクトリの作成をホストに要求するか、またはホスト上で動作するプログラムと通信を行ってもよい。ストレージをロック解除して無線アクセスまたは有線アクセスのいずれかを行うため、無線認証を利用してもよい。ロック解除の時期が決定された後のアクセスは、ユーザーがストレージを明確に再ロックするまで、および/または現在の無線ネットワークからの認証(ホワイトリスト)の停止もしくは他の無線ネットワークの検出(ブラックリスト)まで持続してもよい。無線認証に使用されるアクセス制御と同じモードを用いてもよい。例えば、ユーザーは、WPA2を用いて無線アクセスの認証を行ってもよく、これにより、設定した持続時間にわたってストレージへの有線アクセスがロック解除される。また、ストレージのロック解除には、その他の標準的な認証方法(NFC(近距離無線通信)ペアリング、RFID、またはBluetooth(登録商標))を用いてもよい。
また、周辺機器のプロセッサは、ブロックアクセスまたはグラフアクセスの接続のいずれを提供するかを判定する。この場合、プロセッサは、ステートマシンを用いて、特定のパイプ(接続)を介するかまたはメモリプールの様々な部分に対して、どのように特定アクセスをブロックするかを決定する。このため、プロセッサはホストからの要求を見て、当該要求に基づいて提供するアクセスの種類を判定するか、または既知の優先リストからサービス案内を提供して機器の応答内容を確認するか、または以前格納した設定に基づいて接続を許可するか、または時間、特定の既存接続または特定ホストの存在、周辺機器の位置、ローカルのメモリプールに格納されたデータの種類等の判定コンテキスト状況に基づいて接続を許可する。
周辺機器のプロセッサが接続判定時に従い得る規則は複数組存在する。これらの規則は、接続クライアントまたは可用クライアント(Wi−Fiネットワークの存在)、メモリプール内のデータ、事前設定条件、センサーデータ(時間、温度、光、位置)、グラフおよび/またはデータ比較(認証等)といった周辺機器が意識する様々なコンテキストすべてに言及可能である。
これらの比較により、支払いシステム等が実現可能となる。
別の構成においては、ブロックアクセスではなくグラフアクセスによりネットワーク機器としてのクライアントに周辺機器が接続される(ウェブをポップアップするPCに対するネットワーク機器として動作する。すなわち、ブロックアクセスのWebDAVまたはUSBマスストレージデバイスではなくデータへのグラフアクセスを行う)。
また、接続クライアントから受信されたデータによって、ブロックアクセスまたはグラフアクセスのいずれを介してであっても、アクセス許可イベントが発生する可能性がある。例えば、3G/4Gデータ接続に対するWi−Fi接続をオン/オフするテキストファイル等、一連のパラメータを有してクライアント機器の接続を変更するファイルを書き込むことができる。別の例としては、グラフのファイルディレクトリに命名して、特定の外部ネットワークサービスおよび/またはメモリプールからRSSフィードを取得する。
また、固有のデータおよび接続イベントの両者に基づいてプロセッサが意思決定を行う組み合わせデータ/接続インテリジェンスも存在する。これは、特定の時期において、周辺機器の現在のコンテキストに寄与する。
IV.グラフアクセスからブロックアクセスへのマッピング
周辺機器54、100は、有線インターフェース64、106を介してストレージを提供してもよいが、それは結局のところ、ローカルストレージおよび無線インターフェース68、108を介して得られたリモートコンテンツの組み合わせに由来する。無線コンテンツは、様々なソースから得られたものであってもよく、周辺機器のソフトウェアによってローカルストレージに非同期でキャッシングされてもよい。情報ソースの例としては以下が挙げられる。
1.ローカルネットワーク上のファイル共有、
2.ポッドキャスト、フォトストリーム等の情報収集を含むRSSフィード、および/または
3.YouTube等のオンラインネットワークからの映像収集。
これらの各情報ソースは、有線インターフェース64、106を介してアクセス可能な個々のディレクトリにマッピングしてもよい。様々なソースは、機器レベル(複数の付属ストレージデバイスの表示)またはファイルシステムレベル(複数の情報ソースからの仮想ファイルシステムおよびFATテーブルの作成)のいずれかで組み合わせてもよい。
また、特定のユーザーに対するボリューム/パーティション、ファイル、および/またはフォルダレベルのアクセスも可能である。「Bob」という名称のフォルダは、ユーザー「Bob」が同じネットワーク上に存在、および/またはリモートサーバーを介してアクセスする場合に、「Bob」による当該フォルダへのアクセス許可と関連付けることができる。また、別の周辺機器と対になった2つ以上の周辺機器を有し、例えばWi−Fi間で直接同期しているか否かに関わらず機器間でデータの一部または全部を確実に同期させるか、またはプロキシおよび/またはリモートストレージとして動作するか否かに関わらずリモートサーバーを介して同期させることを常に試行する機能も独特である。
無線情報へのアクセスに際して、周辺機器54、70、100上のメモリ66、104には、必要に応じて当該情報の一部または全部を格納してもよいし、一切格納しなくてもよい。例えば、ファイル共有にはデータのキャッシングが一切不要であってもよく、如何なるファイル要求も即座に無線ファイル共有要求に変換される。性能を向上させるためにキャッシングを追加してもよい。
周辺機器54、70、100上のフォルダは、RSSフィード等の他のリモートコンテンツのダウンロード領域に指定してもよい。周辺機器は、このフォルダでコンテンツが入手できるようになると、自動的にダウンロードする。
無線状態が変化すると、ダウンロードが開始される場合がある。例えば、記憶された無線ネットワークが利用可能になると、周辺機器54、70、100は、更新情報を検索してダウンロードしてもよい。別の例としては、周辺機器54、70、100がカーステレオのUSBポートに接続され、車両が所有者のドライブウェイに戻ると、無線ホームネットワークに接続して最新のポッドキャストをダウンロードするか、または所有者のコンピュータとファイルを同期させる。
また、無線状態が変化すると、ストレージへのアクセスが制御される場合がある。例えば、特定の無線ネットワークに接続すると、特定のファイルまたはフォルダの視聴および修正が可能となる場合がある。周辺機器54、70、100は、ストレージの特定ディレクトリまたは領域への書き込みはいつでも可能であるが、特定のアクセスポイントの範囲内にある場合、または特定のアクセスポイントに関連付けられている場合を除いては、当該領域からのファイル読み出しができないように構成されていてもよい。また、無線ネットワークが存在すると、ファイルの削除(「リモートワイプ」)が発生する場合がある。
また、周辺機器54、70、100は、後々の処理でネットワークSSIDおよび/またはMACアドレスに遭遇すると、それらを検出・記録することもできる。これは、周辺機器54、70、100が時間とともにどの位置にあるか追跡するのに役立ち、アクセス許可を得るためのGPSその他の三角測量/位置決め機能と関連して使用することが出来、または、他の機能を誘発することが出来る。
別の構成として、周辺機器54、70、100は、USBネットワークプロファイルをエミュレートした状態でUSBを介してホストに接続可能である。ホストは、周辺機器54、70、100をネットワーク接続と見なし、ブラウザまたは類似のアプリケーションを立ち上げて、サーバーにアクセスしているかのようにデータをストリーミングする。周辺機器54、70、100は、コンテンツが周辺機器上にあるか否かに関わらず、および/またはリモートサーバーから収集しているか否かに関わらず、ブラウザに対してコンテンツをインタラクティブにフィードするサーバーとして動作可能である。これにより、インターネットを介してリモートサーバーからコンテンツが配信される場合と同様に、コンテンツを安全に配信可能である。
ストレージに特定のファイルが存在する場合(名称、コンテンツ、またはその他の要素で判明)、機器は、ホストに提供するアクセスのモードを変更してもよい。ストレージに特定名称のCDまたはDVD画像が見つかった場合、周辺機器54、70、100は、付属のUSB式CDまたはDVDリーダーとしてホストに提供されてもよく、この場合、当該ファイルはドライブに挿入された仮想光ディスクのコンテンツを決定している。この特別な機能により、実際の光ドライブを持たないコンピュータへのオペレーティングシステムのインストールが容易になる。
周辺機器の機能として、ストレージの一部を確保してもよい。この領域は、機器レベルまたはパーティションレベルのいずれで確保してもよいし、所望サイズのファイルを機器自体に割り当てることによって確保してもよい。ファイルが変更されたり周辺機器54、70、100から削除されたりすると、そのコンテンツが確保した領域にコピーされて、ユーザーが後々データを復元可能となる。
V.クラウドサービス
周辺機器の所有者に付加的なサービスを提供するため、有線インターフェースおよび無線インターフェースの組み合わせを使用することができる。無線インターフェースがインターネットに接続されると、有線インターフェースまたは無線インターフェースのいずれかを介してストレージで行われる様々な動作をインターネットストレージ上の動作に変換するか、またはインターネットストレージで補完することができる。
周辺機器54、70、100は、オンラインのバックアップ機能を提供可能である。ユーザーによるストレージの変更箇所を監視するとともに、確保したメモリ領域に保持されたテーブルにて当該箇所を「劣化(dirty)」とマーキングすることにより、周辺機器54、70、100は、インターネットを介してサーバーにバックアップすべきストレージの箇所を把握する。転送データのコンテンツは、サーバーへの送信前に周辺機器54、70、100で暗号化可能である。周辺機器54、70、100が喪失した場合は、インターネットから周辺機器54、70、100にコマンドを送信して周辺機器54、70、100上のストレージのワイプを開始することができる。また、喪失した機器からのデータのコンテンツを用いて新たな周辺機器をプログラムすることができる。同様に、オンラインバックアップが変更となった場合は、このプロセスを逆方向に適用して、周辺機器がオンラインバックアップの変更に対して確実に整合するようにすることができる。
周辺機器54、70、100は、通信インターフェースを介したファイル操作に基づいて動作を行うことができ、同一または別の通信インターフェースを介してインターネットストレージ上の動作に変換することができる。例えば、ポリシーに基づいて特定のユーザーにアクセスを与えた状態で、周辺機器54、70、100上の特定のフォルダをファイル共有領域として指定してもよい。ファイルをこのフォルダに移動またはコピーすると、無線インターフェースによりリモートストレージへの当該ファイルの転送が開始され、他のユーザーがアクセス可能となる。フォルダは、別のユーザーからファイルを受信するドロップボックスとして指定してもよく、この場合、周辺機器54、70、100は、リモートストレージに情報を問い合わせてフェッチし、周辺機器54、70、100上のフォルダに格納することができる。周辺機器54、70、100上のすべてのファイルが個々に一意のキーで暗号化される場合は、ファイルを暗号化形式で転送するとともに、安全な手段を介してファイルのロック解除キーを他のユーザーと共有するようにしてもよい。
インターネットサービスは、ファイル操作に基づく動作が可能であって、その結果、周辺機器のストレージにファイルが追加されるか、または他の動作が行われる。例えば、ファイルを特定のディレクトリに格納すると、当該ファイルが電子メールの添付として所定の電子メールアドレスに送信される場合がある。また、映像ファイルを別のディレクトリに格納すると、インターネットサービス上でフォーマット変換が起こる場合がある。この場合、変換されたファイルは、周辺機器54、70、100上のディレクトリにダウンロードされる。
別の構成において、周辺機器54、70、100は、機器の実際の容量よりも大きなデータアレイをホストに提供する。この場合、ファイルストレージはホストには通常通りに見えるが、データストレージは、実際には異なる場所のネットワーク機器上に存在する。ただし、データストレージは、周辺機器によってキャッシングされている。
また、周辺機器54、70、100は、機器がサポートするメモリプールをキャッシュとして用いることにより、1または複数のユーザーに対してクラウドキャッシングを行うように構成することもできる。このため、周辺機器は、1または複数のオンラインクラウドサーバーとユーザー機器(例えば、ホストまたはクライアント等)間のネットワーク通信路に含まれている。
クラウドサーバーとの接続がダウンしても、ユーザー機器の周辺機器54、70、100との接続は維持される。周辺機器54、70、100は、クラウドサーバーに転送されたデータをキャッシングする。周辺機器54、70、100はデータストレージ周辺機器として動作しているため、将来的にアクセスが再度可能となった場合には、クラウドサーバーと同期される。
あるいは、クラウドサーバーとの通信の帯域幅を使用しているユーザーが多過ぎる場合は、周辺機器54、70、100が各ユーザーに対してキャッシングおよびプリフェッチ可能である。一方、クラウドサーバーには順次アクセスして、ユーザー間で帯域幅時間を分散させる。
また、周辺機器54、70、100は、シンクライアントのネットワークキャッシュまたはAPに内蔵されたGoogle Gearsとして動作するように構成することもできる。この構成において、周辺機器54、70、100は、ネットワーク接続が利用可能となった場合に、ネットワークリソースのフォールバックを伴わない1または複数のネットワークリソースをシミュレーションする。この構成の目的は、ネットワーク輻輳時の応答時間を改善すること、および/またはネットワーク/クラウド機能へのアクセスに断続的なネットワーク接続を提供することである。この機能を用いる一例として、ユーザーは、ネットワーク/インターネットアクセスがなくても、Wi−Fi APモードであれば周辺機器54、70、100に電子メールを送ることができる。インターネットアクセスが利用可能になると、周辺機器54、70、100はクライアントとなり、例えばGoogle Gearsを用いてインターネットに接続し、電子メールを送信する。
また、周辺機器54、70、100は、傍受および/または位置情報(Skyhook、GPS等)に基づいて、ローカルメモリに格納された広告またはネットワークサーバーからの広告を挿入するように構成することもできる。周辺機器54、70、100が同時APモードおよびクライアントモードの両者を有する場合は、広告を取り去ってローカルメモリストレージからの広告に置き換えることも可能である。これらの広告はクリックされた場合に追跡することが出来、データは、周辺機器のグラフデータ構造に格納することが出来る。
また、周辺機器54、70、100がAPモードの場合は、複数のSSIDを提供することが出来る。例えば、1つは「Vimeo」とすることができる。これを選択するとともにAPがiPhoneを検知すると、Vimeoは、YouTubeになりすましてiPhoneのYouTubeプレーヤを利用してもよい。
VI.支払い処理システム
図17は、周辺機器702を含む支払い処理システム700を示した概念図である。この周辺機器は、本明細書に記載の周辺機器54、70、100のうちの1つであってもよい。支払い処理システム700は、周辺機器702、スマートフォンまたはPDA704、Wi−Fi AP等の店舗または販売業者の無線アクセスポイント(AP)、販売時点管理(POS)端末708、および支払い処理サーバー710を備えている。周辺機器702は、Wi−Fi接続等の無線チャンネルを用いてスマートフォン704および店舗AP706と通信を行う。また、周辺機器702は、Wi−Fi等の無線通信を用いてPOS端末708と通信することが出来る。あるいは、本明細書に開示のいずれかのような有線接続を用いて通信することが出来る。POS端末708は、データネットワークを介してサーバー710と通信を行う。サーバー710および店舗AP706は、インターネット712にネットワーク接続されている。
システム700は、スマートフォン704を所有する顧客および周辺機器702からのWi−Fi接続を介して支払い処理を可能にすることが好ましい。このシステム700は、少なくとも2種類の支払いトランザクションをサポートすることが出来る。第1のトランザクション形式においては、システム700が以下の手順を使用する。
1.周辺機器702がスマートフォン704のWi−Fiチャンネルをスキャンして、見つかったら確実にペアリングする。
2.店舗のレジ係がPOS端末708でトランザクションを記録する。
3.POS端末708がWi−Fi接続を介して総トランザクション量を周辺機器702に送信し、周辺機器702がそれをWi−Fi経由でスマートフォン704に送信する。
4.顧客がスマートフォン704でトランザクションを承認する。
5.顧客がトランザクションを承認したことを周辺機器702がPOS端末708に送信する。
6.その後、周辺機器702がスマートフォン704との接続を断つ。
第2のトランザクション形式においては、システムが以下の手順を使用する。
1.周辺機器702がWi−Fiネットワークを介して送信したMACアドレスが有効な範囲であることを確認するアプリケーションをスマートフォン704が実行する。
2.有効なMACアドレスを確認すると、スマートフォン704が周辺機器702とのWi−Fi接続を開始する。
3.周辺機器702がPOS端末708または店舗AP706と通信を行って、ポイントやクーポン等の顧客アカウントに関する情報を取得する。通信は、無線チャンネルBを介するか、またはPOS端末708からサーバー710および/またはインターネット712を介して行うことができる。
4.その後、手順として上記第1のトランザクション形式のステップ3〜6を実行する。
スーパーマーケットにおける複数のレジ等のマルチレーン支払いシステムにおいては、スマートフォン704等のクライアントと周辺機器702等のサーバー間でペアリングが混乱する可能性がある。このマルチレーン問題を解決するための様々な方法が存在する。1つの方法は、RF三角測量を利用することである。別の方法は、周辺機器702から放射された無線信号の距離を変更して、1つのレーンから他のレーンへの通信を防止することである。これを実現するため、以下の手順を実行するように周辺機器702を構成することができる。
1.周辺機器702は、スマートフォン704が近距離となった時に通信が開始されるようになるまで、Wi−Fiの送信距離を数インチに制限する(図17のチャンネルA)。周辺機器は、Wi−Fiの送信電力を抑えることによってこれを行う。スマートフォン704は、周辺機器702およびスマートフォン704を近接して保持する顧客によって通信可能となる。
2.スマートフォン704とのWi−Fi通信が確立されると、周辺機器702の送信距離を大きくして、顧客がスマートフォンを通常通りに保持できるようにすることが出来る。周辺機器702とスマートフォン704との間でWi−Fiセッションが確立されると、レーン間の干渉は発生しなくなる。
3.周辺機器702が店舗のWi−Fi AP706と通信を行ってリモートのWAN/インターネットと接続する必要がある場合は、顧客のスマートフォン704に至る短距離から店舗のWi−Fi AP706に至る長距離まで距離を多重に変更することができる(図17のチャンネルB)。また、周辺機器は、必要に応じてアクセスポイントモードとクライアントモードを切り替えてもよい。
4.支払い処理が完了したら、ステップ1に戻る。
周辺機器には、有用性を改善するため追加機能を追加することができる。そのような機能としては、セキュリティ、メディア再生の同期、複数ファイルの単一ファイルへの一体化(例えば、TV上での写真共有等)、ファイルの自動トランスコード(例えば、映像および/または音声ファイル、文書ファイル等の.docから.pdfへの変換等)が挙げられる。
本開示は、周辺機器がUSB周辺機器および単独の機器の双方としての新たな機能を提供する新たな強化された機能を作成するための新たな方法およびアーキテクチャを提示するものである。このアーキテクチャの特定の構成には、従来のUSBマスストレージデバイスと同じ機能を有することも含まれているが、USBポートを介してではなく周辺機器に含まれたデータストレージに関わる共有メモリスキームによって直接インターフェースする追加機能を追加していることで新規性がある。この追加機能としては、Wi−Fi、3G/4G携帯電話モデム、Bluetooth(登録商標)、NFC、赤外線といった無線モデム、またはUSB、イーサネット(登録商標)といった有線通信等の通信が挙げられる。さらに別の方法では、プロセッサ等の複雑なステートマシンがUSBポートと共にまたは無関係に機能的動作を提供する。このような機能的動作としては、通信機能やデータストレージへのファイルまたはデータベースアクセスといったUSBポートと他の機能との間の低水準のメモリアクセス調停、またはウェブサーバー、データ同期エンジン、暗号化/復号化、認証、およびその他の複雑なステート機能といったより高水準の機能が挙げられる。
本明細書に記載のシステム、機器、それらの各構成要素、並びに方法ステップおよびブロックの機能は、プロセッサが実行するハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の適切な組み合わせで実装してもよい。ソフトウェア/ファームウェアは、マイクロプロセッサ、DSP、組み込みコントローラ、または知的所有権(IP)コア等の1または複数のデジタル回路またはプロセッサが実行可能な命令セット(例えば、コードセグメント)を有する1または複数のプログラムであってもよい。ソフトウェア/ファームウェアでの実装の場合、命令またはコードは、1または複数のコンピュータ可読媒体に格納してもよい。コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体の両者が含まれ、後者には、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体が含まれる。記憶媒体は、コンピュータがアクセス可能な任意の利用可能な媒体であってもよい。一例として、そのようなコンピュータ可読媒体としては、RAM、ROM、EEPROM、NAND/NORフラッシュ、CD−ROM、その他の半導体ストレージ、光ディスクストレージ、磁気ディスクストレージ又はその他の磁気ストレージデバイス、または所望のプログラムコードを命令またはデータ構造の形式で移送または格納するのに利用できるとともにコンピュータがアクセス可能なその他任意の媒体が挙げられるが、これらには限定されない。また、本明細書で使用するディスク(diskおよびdisc)としては、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスク等が挙げられる。ディスク(disk)は通常、磁気的にデータを再生するが、ディスク(disc)はレーザーを用いて光学的にデータを再生する。また、上記の組み合わせについても、コンピュータ可読媒体の範囲に含まれるものとする。
これらの教示内容を考慮すると、上記方法、機器、システム、及び装置のその他の実施形態および改良は、当業者であれば容易に想到し得る。したがって、上記の説明は一例に過ぎず、これに限定されるものではない。本発明は、上記明細および添付の図面と関連付けて考えた時に、このようなその他の実施形態および改良をすべて網羅する以下の特許請求の範囲によってのみ限定される。したがって、本発明の範囲は上記の説明に限定されるものではなく、添付の特許請求の範囲およびそのすべての均等物を参照して決定されるものとする。


Claims (21)

  1. グラフアクセスデバイスおよびブロックアクセスデバイスが両デバイス間で共有されたメモリプールに同時にアクセスする方法であって、
    前記メモリプールへのアクセス中に前記ブロックアクセスデバイスによって行われた1または複数のメモリブロックアクセス動作を監視し、
    前記メモリプールを階層ファイルシステムにマッピングする複数のポインタを含むグラフデータ構造に前記ブロックアクセス動作を変換し、
    前記グラフデータ構造に従って、前記グラフアクセスデバイスが前記ブロックアクセスデバイスと同時に前記メモリプールにアクセスする、
    ことを含む方法。
  2. 前記ブロックアクセスデバイスが前記メモリプールの第1メモリブロックへの書き込みを試み、
    前記グラフアクセスデバイスが前記第1メモリブロックにアクセス中であるか否かを判定し、
    前記グラフアクセスデバイスが前記第1メモリブロックにアクセス中である場合は、前記ブロックアクセスデバイスが当該第1メモリブロックの代わりに第2メモリブロックに書き込みを行い、
    前記グラフデータ構造を分解することにより、前記ブロックアクセスデバイスによって行われた書き込みの少なくとも1つのメモリ位置を指示する、
    ことをさらに含む、請求項1に記載の方法。
  3. 前記グラフデータ構造の分解が、当該グラフデータ構造のポインタによる指示を前記第1メモリブロックから前記第2メモリブロックに変更することを含む、請求項2に記載の方法。
  4. 前記グラフデータ構造の分解が、前記グラフアクセスデバイスの前記第1メモリブロックへのアクセス完了後に前記第2メモリブロックのコンテンツを当該第1メモリブロックにコピーすることを含む、請求項2に記載の方法。
  5. 前記メモリプールが単一の論理メモリである、請求項1に記載の方法。
  6. 前記メモリプールが周辺機器に含まれている、請求項1に記載の方法。
  7. 前記メモリプールが複数の別個のネットワーク機器に分散されている、請求項1に記載の方法。
  8. 前記グラフアクセスデバイスが、無線リンクを介して前記メモリプールにアクセスするように構成された無線クライアントを含む、請求項1に記載の方法。
  9. 前記ブロックアクセスデバイスが、USB接続を介して前記メモリプールにアクセスするように構成されたUSBホストを含む、請求項1に記載の方法。
  10. 前記ブロックアクセスデバイスが、前記メモリブロックアクセス動作中に当該メモリプールにアクセスするため各々前記メモリプールに設けられた離散開始位置メモリアドレスおよび離散終了位置メモリアドレスを提供する、請求項1に記載の方法。
  11. 前記監視が、
    前記メモリブロックアクセス動作が、前記グラフデータ構造を格納した前記メモリプールのメモリ位置に書き込みを行っているか否かを判定し、
    前記メモリブロックアクセス動作が、データコンテンツを格納した前記メモリプールのメモリ位置に書き込みを行っているか否かを判定する、
    ことを含む、請求項1に記載の方法。
  12. 前記変換が、前記メモリブロックアクセス動作中に前記ブロックアクセスデバイスによって書き込まれたメモリ位置に基づいて前記グラフデータ構造を更新することを含む、請求項11に記載の方法。
  13. 前記変換が、前記メモリプールの所定のメモリアドレス位置にアクセスするメモリブロックアクセス動作の数に基づいて前記グラフデータ構造を更新することを含む、請求項1に記載の方法。
  14. グラフアクセスデバイスとブロックアクセスデバイスとの間で共有されたメモリプールと、
    前記メモリプールへのアクセス中に前記ブロックアクセスデバイスによって行われた1または複数のメモリブロックアクセス動作を監視する手段と、
    前記メモリプールを階層ファイルシステムにマッピングする複数のポインタを含むグラフデータ構造に前記ブロックアクセス動作を変換する手段と、
    前記グラフデータ構造に従って、前記グラフアクセスデバイスが前記ブロックアクセスデバイスと同時に前記メモリプールにアクセスする手段と、
    を備えた装置。
  15. グラフアクセスデバイスとブロックアクセスデバイス間で共有されたメモリと、
    前記ブロックアクセスデバイスと通信するように構成された第1通信インターフェースと、
    前記グラフアクセスデバイスと通信するように構成された第2通信インターフェースと、
    前記メモリ並びに前記第1および第2通信インターフェースに動作可能に接続され、
    前記メモリへのアクセス中に前記ブロックアクセスデバイスによって行われた1または複数のメモリブロックアクセス動作を監視し、
    前記メモリを階層ファイルシステムにマッピングする複数のポインタを含むグラフデータ構造に前記ブロックアクセス動作を変換し、
    前記ブロックアクセスデバイスもまた前記メモリにアクセスしている間に、前記グラフデータ構造に従って、前記グラフアクセスデバイスが前記メモリに同時にアクセスすることを許可するように構成されたプロセッサと、
    を備えた周辺機器。
  16. 前記メモリが、当該周辺機器および少なくとも1つの他の別個の機器に分散されたメモリプールに含まれている、請求項15に記載の周辺機器。
  17. 前記第2通信インターフェースが複数のグラフアクセスデバイスと通信するように構成され、前記メモリが前記ブロックアクセスデバイスと前記複数のグラフアクセスデバイスとの間で共有されている、請求項15に記載の周辺機器。
  18. 前記プロセッサが前記メモリに格納されたコンテンツを暗号化するように構成された、請求項15に記載の周辺機器。
  19. 前記プロセッサが前記メモリに格納されたコンテンツをトランスコードするように構成された、請求項15に記載の周辺機器。
  20. 前記プロセッサが前記ブロックアクセスデバイスを認証し、適正に認証されたブロックアクセスデバイスに対してのみ前記メモリへのアクセスを承認するように構成された、請求項15に記載の周辺機器。
  21. 前記プロセッサが前記グラフアクセスデバイスを認証し、適正に認証されたグラフアクセスデバイスに対してのみ前記メモリへのアクセスを承認するように構成された、請求項15に記載の周辺機器。
JP2012536973A 2009-10-26 2010-10-26 ブロックアクセスデバイスとグラフアクセスデバイス間で共有されたメモリプールへの同時アクセス Pending JP2013508885A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US25500209P 2009-10-26 2009-10-26
US61/255,002 2009-10-26
PCT/US2010/054172 WO2011056612A2 (en) 2009-10-26 2010-10-26 Concurrent access to a memory pool shared between a block access device and a graph access device

Publications (2)

Publication Number Publication Date
JP2013508885A true JP2013508885A (ja) 2013-03-07
JP2013508885A5 JP2013508885A5 (ja) 2013-12-05

Family

ID=43970673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012536973A Pending JP2013508885A (ja) 2009-10-26 2010-10-26 ブロックアクセスデバイスとグラフアクセスデバイス間で共有されたメモリプールへの同時アクセス

Country Status (10)

Country Link
US (2) US8527719B2 (ja)
EP (1) EP2494452A4 (ja)
JP (1) JP2013508885A (ja)
KR (1) KR20120099239A (ja)
CN (1) CN102870101A (ja)
AU (1) AU2010315476A1 (ja)
CA (1) CA2778969A1 (ja)
IL (1) IL219413A0 (ja)
MX (1) MX2012004910A (ja)
WO (1) WO2011056612A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014191573A (ja) * 2013-03-27 2014-10-06 Kyocera Document Solutions Inc 電子機器およびファームウェア更新プログラム
WO2016068386A1 (ko) * 2014-10-27 2016-05-06 삼성에스디에스 주식회사 데이터 송신 장치 및 이를 이용하는 데이터 통신 방법
WO2016104180A1 (ja) * 2014-12-26 2016-06-30 フェリカネットワークス株式会社 情報処理装置、および、情報処理方法、プログラム、並びに情報処理システム
JP2020201561A (ja) * 2019-06-06 2020-12-17 アイティアクセス株式会社 情報処理システム、ネットワークサービス接続用デバイス、情報処理方法、及び情報処理プログラム

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2012004910A (es) * 2009-10-26 2013-06-28 Wearable Inc Acceso concurrente a un grupo de memoria compartida entre un dispositivo de acceso de bloque y un dispositivo de acceso de grafico.
US20110181396A1 (en) * 2010-01-25 2011-07-28 Hilla Jr Ralph Rfid information data on external memory
US8789146B2 (en) * 2011-04-14 2014-07-22 Yubico Inc. Dual interface device for access control and a method therefor
US20120278806A1 (en) * 2011-04-29 2012-11-01 Quantum Corporation Data control system for virtual environment
KR101955976B1 (ko) * 2011-08-25 2019-03-08 엘지전자 주식회사 제한된 사용자 인터페이스를 가진 장치의 활성화
KR20130028349A (ko) * 2011-09-09 2013-03-19 삼성전자주식회사 메모리 장치, 메모리 시스템 및 그 데이터 저장 방법
US20130097136A1 (en) * 2011-10-17 2013-04-18 Pie Digital, Inc. Method and system for acessing domain specific in-memory database management system
US20130117580A1 (en) * 2011-11-07 2013-05-09 Kien Hoe Daniel Chin Compact universal wireless adapter
GB2497314A (en) * 2011-12-06 2013-06-12 St Microelectronics Grenoble 2 Independent blocks to control independent busses or a single combined bus
CN103186359B (zh) * 2011-12-30 2018-08-28 南京中兴软件有限责任公司 硬件抽象数据结构、数据处理方法及系统
US9116809B2 (en) * 2012-03-29 2015-08-25 Ati Technologies Ulc Memory heaps in a memory model for a unified computing system
US20140019565A1 (en) * 2012-07-13 2014-01-16 Samsung Electronics Co., Ltd. Apparatus and method for selecting multiple files in an electronic device
US9053248B2 (en) 2012-08-31 2015-06-09 Nxp B.V. SRAM handshake
US9514067B2 (en) * 2012-08-31 2016-12-06 Nxp B.V. Interface arbitration for a wired tag
CA3053278C (en) * 2013-02-08 2023-05-09 Schlage Lock Company Llc Control system and method
US9509688B1 (en) 2013-03-13 2016-11-29 EMC IP Holding Company LLC Providing malicious identity profiles from failed authentication attempts involving biometrics
US9317520B2 (en) 2013-07-30 2016-04-19 International Business Machines Corporation State scope data file sharing
JP5900456B2 (ja) * 2013-10-09 2016-04-06 コニカミノルタ株式会社 画像処理システム、画像形成装置、中継装置、管理方法、および制御プログラム
US9384722B2 (en) * 2014-01-10 2016-07-05 Fishman Transducers, Inc. Method and device for rechargeable, retrofittable battery pack
US9547553B1 (en) 2014-03-10 2017-01-17 Parallel Machines Ltd. Data resiliency in a shared memory pool
US9781027B1 (en) 2014-04-06 2017-10-03 Parallel Machines Ltd. Systems and methods to communicate with external destinations via a memory network
US9462469B2 (en) * 2014-04-21 2016-10-04 Arm Limited Systems and methods for short range wireless data transfer
US9690713B1 (en) 2014-04-22 2017-06-27 Parallel Machines Ltd. Systems and methods for effectively interacting with a flash memory
US9594688B1 (en) 2014-12-09 2017-03-14 Parallel Machines Ltd. Systems and methods for executing actions using cached data
US9639473B1 (en) 2014-12-09 2017-05-02 Parallel Machines Ltd. Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location
US9781225B1 (en) 2014-12-09 2017-10-03 Parallel Machines Ltd. Systems and methods for cache streams
US9639407B1 (en) 2014-12-09 2017-05-02 Parallel Machines Ltd. Systems and methods for efficiently implementing functional commands in a data processing system
US9753873B1 (en) 2014-12-09 2017-09-05 Parallel Machines Ltd. Systems and methods for key-value transactions
US9690705B1 (en) 2014-12-09 2017-06-27 Parallel Machines Ltd. Systems and methods for processing data sets according to an instructed order
US10698878B2 (en) * 2015-03-06 2020-06-30 Hewlett Packard Enterprise Development Lp Graph update flush to a shared memory
WO2016195704A1 (en) * 2015-06-05 2016-12-08 Hewlett Packard Enterprise Development Lp Data block write mapped to memory bank
KR102521639B1 (ko) * 2016-01-27 2023-04-14 (주)엠아이웨어 카메라 및 멀티미디어의 데이터 처리를 위한 공유 메모리 제어 방법
US10628296B1 (en) 2016-04-04 2020-04-21 Omni Ai, Inc. Data composite for efficient memory transfer in a behavorial recognition system
US20190034361A1 (en) * 2017-07-28 2019-01-31 Action Star Technology Co., Ltd. Peripheral device controlling method by using storage device and storage device capable of controlling peripheral devices
CN109308272A (zh) * 2017-07-28 2019-02-05 同星科技股份有限公司 通过数据储存装置控制外围装置的方法与可控制外围装置的数据储存装置
CN110247937B (zh) * 2018-03-07 2021-08-13 中移(苏州)软件技术有限公司 弹性存储系统共享文件管理、访问方法及相关设备
US11388000B2 (en) * 2019-06-19 2022-07-12 Innotek, Inc. Systems and methods to facilitate data security in a portable storage device
EP4102378A1 (de) * 2021-06-11 2022-12-14 Data Transformer GmbH Verfahren zur neuorganisation und/oder transformation von daten
US11947501B2 (en) * 2021-10-21 2024-04-02 Dell Products L.P. Two-hierarchy file system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022246A (ja) * 2001-04-09 2003-01-24 Hitachi Ltd ダイレクトアクセスストレージシステム
JP2006106868A (ja) * 2004-09-30 2006-04-20 Toshiba Corp ファイル管理機能を備えたファイルシステム及びファイル管理方法
JP2008527511A (ja) * 2005-01-06 2008-07-24 ジェムプリュス データ記憶装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09507104A (ja) * 1993-11-30 1997-07-15 ヴィエルエスアイ テクノロジー インコーポレイテッド 共用メモリシステムの同時動作を可能にし最大にする方法及び装置
US5682522A (en) * 1995-07-18 1997-10-28 Silicon Integrated Systems Corp. Shared memory architecture of graphics frame buffer and hard disk cache
WO2001018639A1 (fr) * 1999-09-08 2001-03-15 Matsushita Electric Industrial Co., Ltd. Processeur de signaux
US8713641B1 (en) * 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US6469703B1 (en) * 1999-07-02 2002-10-22 Ati International Srl System of accessing data in a graphics system and method thereof
US6864896B2 (en) * 2001-05-15 2005-03-08 Rambus Inc. Scalable unified memory architecture
US7873700B2 (en) * 2002-08-09 2011-01-18 Netapp, Inc. Multi-protocol storage appliance that provides integrated support for file and block access protocols
US20040117836A1 (en) * 2002-12-11 2004-06-17 Jeyhan Karaoguz Method and system for network storage in a media exchange network
US7653832B2 (en) * 2006-05-08 2010-01-26 Emc Corporation Storage array virtualization using a storage block mapping protocol client and server
US8098598B1 (en) * 2007-11-27 2012-01-17 Sprint Communications Company L.P. Emulating a removable mass storage device
WO2009096955A1 (en) * 2008-01-30 2009-08-06 Hewlett-Packard Development Company, L.P. Encryption based storage lock
MX2012004910A (es) * 2009-10-26 2013-06-28 Wearable Inc Acceso concurrente a un grupo de memoria compartida entre un dispositivo de acceso de bloque y un dispositivo de acceso de grafico.

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022246A (ja) * 2001-04-09 2003-01-24 Hitachi Ltd ダイレクトアクセスストレージシステム
JP2006106868A (ja) * 2004-09-30 2006-04-20 Toshiba Corp ファイル管理機能を備えたファイルシステム及びファイル管理方法
JP2008527511A (ja) * 2005-01-06 2008-07-24 ジェムプリュス データ記憶装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014191573A (ja) * 2013-03-27 2014-10-06 Kyocera Document Solutions Inc 電子機器およびファームウェア更新プログラム
WO2016068386A1 (ko) * 2014-10-27 2016-05-06 삼성에스디에스 주식회사 데이터 송신 장치 및 이를 이용하는 데이터 통신 방법
WO2016104180A1 (ja) * 2014-12-26 2016-06-30 フェリカネットワークス株式会社 情報処理装置、および、情報処理方法、プログラム、並びに情報処理システム
JPWO2016104180A1 (ja) * 2014-12-26 2017-10-05 フェリカネットワークス株式会社 情報処理装置、および、情報処理方法、プログラム、並びに情報処理システム
JP2020201561A (ja) * 2019-06-06 2020-12-17 アイティアクセス株式会社 情報処理システム、ネットワークサービス接続用デバイス、情報処理方法、及び情報処理プログラム

Also Published As

Publication number Publication date
US20140059316A1 (en) 2014-02-27
US20110113210A1 (en) 2011-05-12
CA2778969A1 (en) 2011-05-12
EP2494452A4 (en) 2012-11-07
MX2012004910A (es) 2013-06-28
KR20120099239A (ko) 2012-09-07
IL219413A0 (en) 2012-06-28
AU2010315476A1 (en) 2012-06-07
WO2011056612A3 (en) 2011-08-11
EP2494452A2 (en) 2012-09-05
WO2011056612A2 (en) 2011-05-12
CN102870101A (zh) 2013-01-09
US8527719B2 (en) 2013-09-03

Similar Documents

Publication Publication Date Title
JP2013508885A (ja) ブロックアクセスデバイスとグラフアクセスデバイス間で共有されたメモリプールへの同時アクセス
CN106537881B (zh) 基于存根追踪允许同步访问云存储系统的方法及计算设备
CN104731516B (zh) 一种存取文件的方法、装置及分布式存储系统
KR102289235B1 (ko) 사설 콘텐츠 분배 네트워크
EP2249254A2 (en) Storage device having direct user access
US8769131B2 (en) Cloud connector key
US20110078375A1 (en) Data storage
RU2388039C2 (ru) Облегченный протокол ввода/вывода
CN101636967A (zh) 用于便携式设备的远程数据访问技术
CN102045385A (zh) 一种实现个人云计算系统及设备
KR101533427B1 (ko) 대용량 가상저장공간을 제공하는 이동식 저장장치 및 그 제공방법
TW201216733A (en) Method and system for multi-stage device filtering in a Bluetooth low energy device
US20070220563A1 (en) Method and apparatus for media sharing
WO2007035275A2 (en) Content-aware digital media storage device and methods of using the same
CN1617515A (zh) 网络设备的简易动态配置
JP2016186782A (ja) データ処理方法及びデータ処理装置
CN102427477A (zh) 一种无线云存储装置
WO2019045837A1 (en) REMOTE APPLICATION CONFIGURATION ON A NETWORK STORAGE SERVER
US20180159931A1 (en) Server for providing cloud service and operating method thereof
JP2004227033A (ja) ネットワークストレージ装置
KR20130024434A (ko) 데이터 중계기와 공유기를 이용한 통신망상에서의 외장형 저장장치 구동시스템
US20120324107A1 (en) Shared access to a local device
CN114610679A (zh) 存储设备及其数据存储方法、云端存储系统
KR20150073136A (ko) 대용량 가상저장공간을 제공하는 이동식 저장장치 및 그 제공방법
TWI840288B (zh) 設備接入方法及其裝置、資料交換方法及其裝置、聯網設備、服務端及存儲介質

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131016

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140415

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140522

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140916