JP2016534463A - クラウドコンピューティングのためのマスストレージの仮想化 - Google Patents
クラウドコンピューティングのためのマスストレージの仮想化 Download PDFInfo
- Publication number
- JP2016534463A JP2016534463A JP2016538830A JP2016538830A JP2016534463A JP 2016534463 A JP2016534463 A JP 2016534463A JP 2016538830 A JP2016538830 A JP 2016538830A JP 2016538830 A JP2016538830 A JP 2016538830A JP 2016534463 A JP2016534463 A JP 2016534463A
- Authority
- JP
- Japan
- Prior art keywords
- mass storage
- interface
- communication interface
- controller
- data request
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000004891 communication Methods 0.000 claims description 70
- 238000012545 processing Methods 0.000 claims description 62
- 230000008569 process Effects 0.000 claims description 42
- 238000005516 engineering process Methods 0.000 claims description 6
- 230000003278 mimic effect Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 19
- 230000002093 peripheral effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/352—Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/90—Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
- A63F13/95—Storage media specially adapted for storing game information, e.g. video game cartridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bus Control (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
【解決手段】本開示の態様は、マスストレージを、インターフェースカードまたはホストシステムに動作可能に連結された専用ハードウェアユニットを使用して、仮想化するためのシステムと方法とに関する。さまざまな実装形態では、インターフェースデバイス及びホストシステムは、端末システムに対して透過的な方法で、別の「端末」コンピューティングシステムのマスストレージデバイスを集合的に模倣することができる。さらに、さまざまな実装形態では、マスストレージデバイスを、端末システムに対して透過的な方法で、端末のプラットフォームのハードウェアアーキテクチャまたはソフトウェアアーキテクチャに対する変更を必要とせずに、模倣することができる。【選択図】図6
Description
優先権主張
本出願は、2013年12月19日に出願され、「MASS STORAGE VIRTUALIZATION FOR CLOUD COMPUTING」という題名の、Roelof Roderick Colenbranderに譲渡され、同時係属の、US Non−Provisional application number 14/135,213、(Attorney Docket No.SCEA13031US00)に対する優先権の利益を主張し、その内容全体が、参照により本明細書に組み込まれる。
本出願は、2013年12月19日に出願され、「MASS STORAGE VIRTUALIZATION FOR CLOUD COMPUTING」という題名の、Roelof Roderick Colenbranderに譲渡され、同時係属の、US Non−Provisional application number 14/135,213、(Attorney Docket No.SCEA13031US00)に対する優先権の利益を主張し、その内容全体が、参照により本明細書に組み込まれる。
関連出願の相互参照
本出願は、2013年12月19日に出願された、「VIDEO LATENCY REDUCTION」という題名の、Roelof Roderick Colenbranderに譲渡され、同時係属の、US application number 14/135,374、(Attorney Docket No.SCEA13037US00)に関連し、その内容全体が、参照により本明細書に組み込まれる。
本出願は、2013年12月19日に出願された、「VIDEO LATENCY REDUCTION」という題名の、Roelof Roderick Colenbranderに譲渡され、同時係属の、US application number 14/135,374、(Attorney Docket No.SCEA13037US00)に関連し、その内容全体が、参照により本明細書に組み込まれる。
本開示の態様は、ストレージ仮想化に関する。本開示のさらなる態様は、組込みプラットフォーム用に設計されたクラウドコンピューティングアプリケーションのための、ストレージ仮想化に関する。
遠隔通信システムの帯域幅とデータ転送速度が進歩し続け、今日のコンピューティング要求の多くは、一般に「クラウドコンピューティング」と呼ばれる、ネットワークベースの分散コンピューティングシステムにシフトしてきている。一般的に言えば、クラウドコンピューティングは、特定の計算タスクを、1つまたは複数の遠隔コンピューティング資源に任せることと、遠隔コンピューティング資源を活用してローカルデバイスにサービスを提供することとを伴う。クラウドコンピューティングは、多くの場合、クライアントサーバモデルとして実装され、遠隔サーバは、所望の計算能力をローカルクライアントデバイスに提供し、ローカルクライアントデバイスが特定の計算タスクを自ら実行する必要性をなくす。多くの場合、コンピューティング資源を、完全に、またはほぼ完全に、サーバに任せることができ、クライアントは、ほとんど、またはクラウドコンピューティングタスクのためのユーザインターフェース以上のものを提供せず、インターネットに接続されたデバイスが、特定のアプリケーションのためのクライアントとしての役割を果たすことを潜在的に可能にする。
クラウドコンピューティングは、多種多様な計算サービスで採用されており、それらは、遠隔データストレージソリューションと、音楽及び映像ストリーミングサービスと、多種多様な他のコンシューマソリューション及びビジネスソリューションとを含む。一般に、クラウドコンピューティングは、いくつかの良く知られた利点を提供し、それらは、共用資源を使用することによる効率の向上と、特定のデバイスに制限することのない、コンテンツへのアクセスの柔軟性の向上と、ハードウェアのアップグレードが入手可能になった時の前払いの費用の削減と、他の利点とを含む。
クラウドコンピューティングが広範囲に及ぶ採用をまだ達成していない一分野は、依然として人気のあるビデオゲームの分野である。パーソナルコンピュータ(PC)ゲーム、家庭用ゲーム機用ゲーム、携帯型ゲーム機用ゲームなどを含むビデオゲームは、消費者の間で人気の娯楽発信源であり続けている。多数の、ますます増加する、利用可能なビデオゲームタイトルのコレクションについて、クラウドゲームは、多くのビデオゲーム需要に対する特に魅力的な解決策を提供する。理想的には、クラウドゲームの枠組み内では、ユーザは、離れた場所に格納されているタイトルの膨大なコレクションからの任意のビデオゲームタイトルに、そのゲームを物理的にコピーする必要なしに、そのタイトルがダウンロードされるのを待つ必要なしに、そのゲームを実行するのに必要なハードウェアシステムまたは資源をローカルで所有せずに、瞬時にアクセスすることができる。残念ながら、この種のサービスを従来のクラウドコンピューティングサーバ設計内で実装することは、いくつかの技術的な課題を提示、したがって、それは、多くのビデオゲームプラットフォームのためのクラウドゲームが広範囲で採用されることを大いに妨げている。
1つの課題は、今日のビデオゲームの多くが、表示するのに相当な量のコンピューティング資源を必要とする高度なグラフィックスを用いて、非常にペースが速く、アクションが多いことである。特に、ゲーム演算とグラフィックス表示演算との全てを遠隔で実行する、ビデオストリーミングベースのサーバ設計では、ゲームは、制御入力に応答して、皆無か最小限の認知可能遅延で、これらの全タスクを実行し、圧縮された音声/ビデオストリームをクライアントデバイスに配信できる必要がある。さもなければ、これは、プレーヤのタイミングを邪魔し、従来の、ローカルで実行されるゲームセッションの反応性を再現することができない。
別の課題は、一方で、パーソナルコンピュータとノートパソコンと汎用的な性質の他のコンピューティングシステムで動くように設計されたPCゲームと、他方で、ビデオゲーム機として知られている専用システムで動くように設計されたゲーム機用ゲームとの間に、伝統的に違いがあるという事実から生じる。ビデオゲーム機は、通常、ビデオゲーム環境のために特に適応された固有のコンピューティングアーキテクチャを有する、組込みプラットフォームとして設計される。専用のゲーム機ハードウェアをビデオゲームプラットフォームとして使用することは、いくつかの利益をもたらし、特に、今日のビデオゲームの多くを作成するのに必要なグラフィックス表示とゲーム演算という、高いコンピューティング資源需要のためのハードウェアを最適化するとういう形態においてそうである。結果として、PCゲームがある程度の人気を達成した一方、ゲーム機用ゲームは、伝統的に、ビデオゲーム市場を支配し、将来もそうであり続け得る。
しかしながら、ビデオゲーム機と他の組込みプラットフォームとをクラウドストリーミングサービスに適用させることは、いくつかの課題を提示する。専用プラットフォームのハードウェアアーキテクチャまたはソフトウェアアーキテクチャの大規模な変更は、専用プラットフォームのために設計されたアプリケーションとの互換性の問題を提示し得る。結果として、伝統的なストレージサーバ技術及びストレージ仮想化技術は、これらのプラットフォームの多くのために設計されたアプリケーションのクラウドベースのストリーミングに対して、実行可能な解決策ではない。
このような背景において、本開示が生じる。
本開示の一実装形態は、第1の通信インターフェースと第2の通信インターフェースと前記通信インターフェースに動作可能に連結された専用処理装置とを有する、インターフェースデバイスを含むことができる。第1の通信インターフェースは、マスストレージインターフェースである。第2の通信インターフェースは、拡張インターフェースである。専用処理装置は、第1の通信インターフェースに接続されたマスストレージデバイスコントローラと、第2の通信インターフェースに接続された直接メモリアクセス(DMA)エンジンとを含む。マスストレージデバイスコントローラは、マスストレージデータ要求を、第1の通信インターフェースを通して受信するように構成されている。DMAエンジンは、ホストシステムに、マスストレージデータ要求について、第2の通信インターフェースを通して通知するように構成されている。
本開示の別の実装形態は、中央演算装置と、中央演算装置に動作可能に連結された第1のメモリユニットと、第1のメモリユニット内に具体化され、中央演算装置(CPU)によって実行可能なストレージ処理と、第1の通信インターフェースと、第1の通信インターフェースに動作可能に連結された専用処理装置と、を有するシステムを含むことができる。第1の通信インターフェースは、マスストレージインターフェースである。専用処理装置は、第1の通信インターフェースに接続されたマスストレージデバイスコントローラと、CPUに動作可能に連結されたメモリアクセスインターフェースとを有する。マスストレージデバイスコントローラは、マスストレージデータ要求を、第1の通信インターフェースを通して受信するように構成されている。メモリアクセスインターフェースは、ストレージ処理にマスストレージデータ要求について通知するように構成されている。ストレージ処理は、データ要求を、ストレージシステムにアクセスすることによって処理するように構成されている。
別の実装形態は、a)第1のコンピューティングデバイスから、マスストレージデータ要求を、マスストレージデバイスコントローラにおいて受信することと、b)マスストレージデバイスコントローラに接続されたメモリアクセスインターフェースを用いて、第2のコンピューティングデバイス内に具体化されたストレージ処理に、データ要求について通知することと、c)第2のコンピューティングデバイスのストレージ処理を用いて、データ要求に対応するデータを有するストレージシステムにアクセスすることと、d)第2のコンピューティングデバイスのストレージ処理を用いて、データ要求に対応するデータを、第1のメモリユニットに記憶することと、e)データ要求を満たすために、第2のコンピューティングデバイスのストレージ処理を用いて、第1のメモリユニットからのデータにアクセスするように、マスストレージデバイスコントローラをプログラムすること、とを備える方法を含むことができる。
本開示の教示は、以下の詳細な説明を、添付の図面と共に考察することによって容易に理解され得る。
例示的な、ネットワークを介したストリーミング技術の概略図である。
別の例示的な、ネットワークを介したストリーミング技術の概略図である。
ストレージ仮想化を端末システムに提供するためのインターフェースカードを有する、例示的なホストシステムの概略図である。
端末システムに連結されたホストシステムのための、例示的なコンピュータアーキテクチャの概略図である。図4Aは、例示的な端末システムアーキテクチャの概略図である。図4Bは、例示的なホストシステム及びインターフェースカードアーキテクチャである。
専用処理装置を有する例示的なインターフェースカード設計の概略図である。
マスストレージデバイスを模倣する例示的な方法の概略図である。
以下の詳細な説明は、説明目的の多くの具体的な詳細を含むが、多くの変形及び変更が本発明の範囲内に含まれる、ということを当業者の誰もが理解する。したがって、以下に説明する本発明の例示的な実施形態は、特許請求に係る発明に対する普遍性を失うことなく、また、特許請求に係る発明に限定を課すことなく、記載される。
導入
本開示の態様は、マスストレージを、ホストシステムに動作可能に連結されたインターフェースカード、または他の専用ハードウェアユニットを使用して、仮想化するためのシステムと方法とに関する。さまざまな実装形態では、インターフェースデバイス及びホストシステムは、集合的に、別の「端末」コンピューティングシステムのためのマスストレージデバイスを、端末システムにとって透過的な方法で模倣することができる。さらに、さまざまな実装形態では、マスストレージデバイスを、端末システムにとって透過的な方法で、端末プラットフォームのハードウェアアーキテクチャまたはソフトウェアアーキテクチャを変更する必要なしに、模倣することができる。
本開示の態様は、マスストレージを、ホストシステムに動作可能に連結されたインターフェースカード、または他の専用ハードウェアユニットを使用して、仮想化するためのシステムと方法とに関する。さまざまな実装形態では、インターフェースデバイス及びホストシステムは、集合的に、別の「端末」コンピューティングシステムのためのマスストレージデバイスを、端末システムにとって透過的な方法で模倣することができる。さらに、さまざまな実装形態では、マスストレージデバイスを、端末システムにとって透過的な方法で、端末プラットフォームのハードウェアアーキテクチャまたはソフトウェアアーキテクチャを変更する必要なしに、模倣することができる。
当業者は、VMWare、VirtualBoxまたはParallelsなどの「仮想マシン」ソフトウェアをよく知っているかもしれず、それは、たとえば、旧式のオペレーティングシステム(たとえば、Windows(登録商標) XP)の「仮想」セッションが、より新しいオペレーティングシステム(たとえば、Windows 7)のセッション内で動くことを可能にする。互換性の理由から、仮想マシンソフトウェアを使用して、ディスクドライブ、ネットワークカード、ビデオカードなどの物理的ハードウェア構成要素を、ソフトウェアでシミュレーションすることが多い。本開示の態様によると、専用のハードウェア及びソフトウェアは、ソフトウェアのみでそうすることが現実的でない状況で、マスストレージデバイスを仮想化することができる。
実装形態の詳細
本開示のさまざまな態様をより良く説明するために、分散コンピューティングシステム100の第1の例示的な実施例を図1に示す。図1に示す分散システム100は、インターネットなどのネットワーク106を介して接続された、複数のコンピューティングデバイス102、104を伴う。
本開示のさまざまな態様をより良く説明するために、分散コンピューティングシステム100の第1の例示的な実施例を図1に示す。図1に示す分散システム100は、インターネットなどのネットワーク106を介して接続された、複数のコンピューティングデバイス102、104を伴う。
例示的な分散システムでは、ストリーミングサーバ102は、プログラム出力のリアルタイムストリームを、遠隔で接続されたクライアントデバイス104に、ネットワーク106を通して提供するために、プログラム108を実行する。図1の例示の概略図では、プログラム104は、プログラム108の実行に従って、クライアントデバイス104から受信した制御入力を処理し、圧縮された音声ストリームとビデオストリームとをクライアントデバイス104に送信する、ビデオゲームプログラムであってよい。クライアント側に位置するユーザは、クライアントデバイス104のユーザインターフェースを通して、たとえば、クライアントデバイス104に接続されたディスプレイ及び/またはスピーカで、制御入力を提供し、音声ゲーム出力とビデオゲーム出力とを受信することによって、プログラムと相互作用することができる。図1の実施例では、入力を処理し、ビデオゲームグラフィックスを表示するためなどの計算負荷を、遠隔で実行するために、ストリーミングサーバ102に完全に任せることができる。
クラウドゲームを図1に示すシステム100を使用して実装するために、ストリーミングサーバ102を、ゲームプログラム108を実行するように構成できるだけでなく、ストリーミングサーバ102は、サーバ102内に具体化された「ストリーミングサーバ処理」110を実装することもでき、それは、さまざまな機能を実行して、ネットワーク106を介したクライアントデバイス104とストリーミングサーバ102との間の通信のためのプログラム入力/出力を調整することができる。一例として、ストリーミングサーバ処理110を、ストリーミングサーバ102上でゲームソフトウェア108と連携して実行される、1つまたは複数のアプリケーション内に具体化することができる。ゲーム108を、ストリーミングサーバ処理110と合わせて遠隔で実行することは、クライアントデバイス104における入力と出力との間に皆無か最小限の遅延で実行され得、プログラム108がローカルで実行されていると、クライアント側のユーザに感じさせる。さらに、実行するために、遠隔で記憶されているプログラムの広範囲なコレクションにアクセスすることができる。たとえば、クラウドゲームアプリケーションでは、ユーザは、関連するビデオゲームプラットフォームのために設計されたゲームを選択することができ、遠隔サーバは、ユーザから受信した入力にしたがって、受信した入力と音声/ビデオ出力との間で認知可能な遅延なしに、そのゲームをロードし、それを実行し、その出力をクライアントデバイスにストリーミングすることができる。
図1に示す実施例では、これは、ストリーミングサーバ処理110とゲームコード108の両方を、同じコンピューティングデバイス、たとえば、ストリーミングサーバ102で実行することによって達成され得る。ストリーミングサーバは、ローカルに接続されたマスストレージデバイス、ストレージサーバ、ネットワークなどの潜在的にいかなるストレージデバイスからも、適切な接続を通して、選択されたプログラムにアクセスすることができる。クラウドゲームの実装形態及び他のクラウドコンピューティングの実装形態では、これは、サーバ102においてクライアント104のために実行されるソフトウェアアプリケーション108が、パーソナルコンピュータ(PC)アーキテクチャまたはストリームライナーサーバ102に類似の他のコンピュータアーキテクチャを動かすように設計されている場合、容易に実装され得る。限定するものではなく、一例として、PCクラウドゲーム実装形態では、容易に利用可能なx86ベースのサーバを使用して、ストリーミングサーバ処理110を実装するだけでなく、PCゲームプログラム108を、それが一旦サーバ102によってアクセスされれば、実行することもできる。
しかしながら、図1に示す例示的な手法100は、プログラム108を組込みプラットフォームと他の専門のアーキテクチャとの上で実行するように設計されている特定のアプリケーションには、適切でないことがある。たとえば、所望のプログラムが専用のゲーム機プラットフォームのために設計されたビデオゲームである場合、ゲームソフトウェアは、ある種のエミュレータなしには、サーバアーキテクチャで動くことができない可能性がある。残念ながら、遅延を最小限にすることが主な関心事であるクラウドコンピューティング環境では、ストリーミングサーバで実行されるソフトウェアエミュレータは、好ましくない解決策であることがあり、特に、実行時におけるエミュレータによるコードの解釈が認知可能な遅延を導入する、グラフィックスが多いアプリケーションではそうである。さらに、多くの場合では、クラウドサービスが望まれる各固有のアーキテクチャのために専用のサーバを作ることは、非現実的である。他の状況では、エミュレータは望ましい解決策であるかもしれないが、適切なエミュレータが利用可能でないことがある。
これらの課題に対処するために、プログラムを実行するために、サーバ側で追加のコンピューティングデバイスを活用することが望ましいことがあり、それによって、追加のコンピューティングデバイスが所望のプログラムを実行し、一方で、それに連結されたストリーミングサーバが、クライアントデバイスとインターフェース接続するための、その通常の機能を実行する。そのような手法を活用する分散システム200の例示的な実施例を図2に示し、そこでは、「端末システム」212は、ストリーミングサーバ202に接続され、端末システムは、所望のアプリケーション208を実行する。ストリーミングサーバは、ネットワークストレージとビデオ圧縮とのための資源を提供することができ、それは、端末システムが、これらの機能のための十分な自由に使える資源を有していない場合である。
いくつかの実装形態では、端末システム212は、ビデオゲーム機などの専門アーキテクチャを有する、組込みシステムまたは他のコンピューティングシステムであることができる一方、ストリーミングサーバ202は、x86命令セットアーキテクチャなどの任意のコンピュータアーキテクチャに基づくことができ、そのコンピュータアーキテクチャは、ストリーミングサービスを提供するように適用され、必ずしも端末システム212に類似のアーキテクチャを有する必要はない。ストリーミングサーバ202は、ストリーミングサーバ処理202を実行し、通常のクラウドサービスを端末システムプログラム208に提供するように構成され得、サーバ側のコンピューティングデバイス、たとえば、ストリーミングサーバ202及び端末システム212は、ビデオゲームストリーミングサービスをクライアントデバイス204に提供するように、集合的に動作することができる。
図2に示す簡略図の構成は、さまざまな異なるコンピュータアーキテクチャのために設計された、さまざまな異なるソフトウェアプラットフォームに容易に適用され得る、現実的で柔軟なサーバソリューションを提供することができる。たとえば、潜在的に、いかなるストリーミングサーバ202も、ソフトウェアを実行する端末システムをローカルに接続することによって、さまざまな異なるコンピューティングアーキテクチャのために設計されたソフトウェアアプリケーションをストリーミングするように適用することができる。
しかしながら、所望のソフトウェアをサーバ側の端末システム212で実行することは、いくつかの課題を、クラウドコンピューティングの枠組み内で提示することがある。たとえば、端末システム212は、図1に示した例示的な配置に関連して上記で説明した処理と同様に、現在のストリーミングセッションのために選択されたプログラムを、さまざまな異なるプログラムの中から実行することができる。同様に、端末システム212で動いているプログラム208によって要求される、ストレージデバイスに対する他のデータ読み出し/書き込みは、端末システムによって、ローカルストレージの制約から解放され得る。ストレージデータ要求は、通常、シリアルアドバンストテクノロジーアタッチメント(SATA)接続、または他のマスストレージインターフェースなどの、端末システム212内のローカルなマスストレージ接続を通して達成される。端末システムのハードウェアアーキテクチャに変更を行う必要なしに、または追加のコンピューティング資源をストレージ仮想化処理で消費することなく、仮想化されたストレージソリューションを端末システムに提供することが望ましい。
クラウドゲーム環境を背景とした課題をより良く理解するために、以下の実施例は、図2のサーバ設定が、特定のクラウドゲーム実装形態でどのように活用されるか、を説明している。特に、クライアントデバイス204のユーザは、ゲームセッションのための「クラウド端末システム」212に指定され得る。ユーザがプレイし始めた時、ユーザの遊びたいゲーム208は、クラウド端末システム212上にあるべきである。同様に、ゲームセッションが終了し、ユーザが終えると、端末システム212は、異なるゲームを伴い得る、異なるユーザによる次のセッションのために、クリーンな状態に戻されるべきである。
残念ながら、端末システム212内のストレージ仮想化ソフトウェアを使用して、ゲームストレージをこの方法で仮想化することは、貴重な計算資源(たとえば、CPU及びメモリ)を消耗し、ゲームとの互換性問題を引き起こすことがある。さらに、高度なグラフィックスタスクや他の資源集約度の高いタスクを含む、多くの最新のビデオゲームなどの重い計算負荷を伴うアプリケーションでは、端末システムからの追加の資源をストレージ仮想化のために消費することは、実行可能な解決策でない場合がある。
本開示のさまざまな実装形態によるストレージ仮想化手法の説明のための実施例を、図3に示す。図3の例示的な仮想化手法では、マスストレージデバイスは、専門ハードウェアを有する「ホストシステム」を使用して模倣され、マスストレージデバイスが、それに接続された端末システムのために模倣され得るようにする。図3の例示的な手法を、図2に示すものと同様なクラウドストリーミングアプリケーションで実装することができ、そこでは、端末システムは、所望のアプリケーションを実行している専門システムであり得、マスストレージデバイスを模倣するためのホストシステムは、ストリーミングサーバである。しかしながら、本明細書の原理によるストレージ仮想化を、他の背景において実装することができ、それには、ゲームストリーミング以外のクラウドコンピューティングアプリケーションと、コンピューティングデバイスのためのストレージ仮想化が望まれる場合、特に、コンピューティングデバイスに変更を行うことなくそうすることが望まれる場合の、ローカルでの実装と、が含まれる。
図3をより詳細に参照すると、この場合はストリーミングサーバであるインターフェースデバイスのためのホストシステム302に連結された、専門インターフェースデバイス320を使用して、仮想化ストレージを端末システム312に提供している。インターフェースデバイス320は、ホストシステム302に具体化されたストレージ処理322と共に、端末システム312から受信したさまざまなマスストレージデバイスデータ要求を実行することができる。
図3に示す実施例では、インターフェースデバイス320は、端末システムにとっては実際のマスストレージデバイスに見えるが、内部では、そのデータは(図示しない)ストレージサーバから来る、1つのハードウェアであることができる。一般的なマスストレージデバイスは、通常、SATA接続または他の標準マスストレージインターフェースを使用する。マスストレージデバイスを模倣し、データ要求を受信するために、図3のインターフェースデバイス320は、同様のSATA接続または端末システムのマスストレージ通信インターフェースと互換性を有する他のマスストレージ通信インターフェースを、専用処理装置、メモリ、他の構成要素などの追加の構成要素と共に含むことができる。
さまざまな実装形態では、ストリーミングサーバなどのコンピューティングシステムまたは他の「ホスト」システムへのストレージ仮想化機能の容易な統合を促進するために、インターフェースデバイス320を、ホストシステムの拡張インターフェースを通してホストシステム302に接続され得るPCI−Expressアドオンカードなどの、拡張カードとして実装することができる。動作中、インターフェースカードは、端末システムからのディスク読み出し要求及び/またはディスク書き込み要求を、そのマスストレージ接続(たとえば、SATAポート)を通して受信することができる。これらのデータアクセス要求は、ホストシステム302上のストレージアプリケーション322によって最終的に処理され、ストレージアプリケーションは、ファイル、ストレージサーバ、または別の何かからのデータにアクセスすることができる。
ストレージ仮想化機能には必要でないが、インターフェースデバイス320は、また、任意で、クラウドストリーミングという背景において特に便利であり得る他の機能を提供する、追加の構成要素を含むことができる。たとえば、ホストシステムのストリーミング機能を補助するために、インターフェースデバイス320は、任意で、音声及び/またはビデオデータの転送のための1つまたは複数の追加のインターフェースと、クラウドゲーム実装形態または他のクラウドコンピューティング実装形態を補助するための、ホストシステム302のストリーミングプロセスを介した音声/ビデオ(A/V)ストリーミングを補助する対応機能とを含むことができる。インターフェースデバイス320の任意のA/Vインターフェースは、端末システム312と互換性を有することができ、HDMI(登録商標)、コンポジットビデオ、コンポーネントビデオ、Sビデオ、または他のA/V通信インターフェースなどの、さまざまなA/V規格のうちの任意のものに従って構成され得る。
図4A及び図4Bは、本開示のさまざまな実装形態によるインターフェースデバイスといくつかのコンピューティングデバイスとの、例示的なハードウェアアーキテクチャ/ソフトウェアアーキテクチャのより詳細な概観を提供する。図4Aは、本開示のさまざまな態様による、例示的な端末システムのコンピューティングアーキテクチャを示している。図4Bは、本開示のさまざまな実装形態による、例示的なインターフェースデバイスを有する、例示的なホストシステムのためのコンピューティングアーキテクチャを示している。いくつかの実装形態では、端末システムは、既存の組込みシステム、ビデオゲーム機、または専用アーキテクチャを有する、他のコンピューティングデバイスであることができる。いくつかの実装形態では、ホストシステムは、端末システムで動くアプリケーションを、たとえば、図2に示すクライアントデバイスにストリーミングするように構成された、ストリーミングサーバであることができる。
例示的な端末システム412は、(時には、ホストアダプタまたはホストバスアダプタとしても知られている)マスストレージホストコントローラ424を含むことができ、それは、たとえば、SATAホストコントローラ(AHCI)、USBホストコントローラ、または他のマスストレージ通信インターフェース規格のためのホストコントローラであってよい。端末システム412は、また、ストレージデバイスインターフェースを介した通信を容易にするために、マスストレージデバイスホストコントローラ424と互換性を有する、対応するマスストレージデバイスドライバ426を含むことができる。マスストレージデバイスに接続するために、通常、ホストコントローラ424は、マスストレージデバイスに、(端末システムのマスストレージデバイスインターフェースによって、SATAケーブル、USBケーブル、または他のコネクタなどの)対応するコネクタを使用して接続される。特に、ホストコントローラ424は、それが接続される特定のマスストレージデバイスの、(マスストレージデバイスが、必ずしもディスクを使用しない半導体ドライブまたは他のストレージデバイスであっても、時には、「ディスクコントローラ」としても知られている)マスストレージデバイスコントローラに接続される。図4A〜図4Bに示した例示的なシステムでは、ホストコントローラ424は、代わりに、そのホストシステム402と共に端末システム412のマスストレージデバイスを模倣する、インターフェースデバイス420に接続される。
インターフェースデバイス420は、端末システム412によって使用されるストレージ通信インターフェースと互換性を有する、マスストレージデバイス接続のための通信インターフェースを含むことができる。インターフェースデバイスの通信インターフェースは、1つまたは複数のSATAポート、USBポート、または他の互換性を有するマスストレージインターフェースハードウェアなどの、1つまたは複数のマスストレージポート414を含むことができる。インターフェースデバイス402は、マスストレージハードウェアインターフェースに動作可能に連結された専用処理装置を、端末システム402からストレージコネクタを通して受信した信号に対して、マスストレージデバイスの模倣に関連する機能と任意で他の機能とを実行するように特化された論理428を有する専用処理装置と共に、含むことができる。論理428は、また、ホストシステム402との通信を、追加の通信インターフェースを通して補助することができ、追加の通信インターフェースは、ホストシステム内に具体化されたストレージ処理にインターフェース接続するために、ホストシステム402の周辺機器用バスと通信することができる。限定するものではなく、一例として、インターフェースデバイス420は、ペリフェラルコンポーネントインターコネクト(PCI)、PCI−eXtended(PCI−X)、PCI−Express(PCIe)、または、たとえば、周辺機器用バスを介したホストシステム402との通信を容易にする他のインターフェースなどの、拡張インターフェースを通してホストシステム402プロセスバスと通信するアドオンカードであってよい。ホストシステムは、インターフェースデバイス420を介した信号のやり取りを補助する、インターフェースデバイスドライバ426を含むことができる。
いくつかの実装形態では、専用処理装置は、フィールドプログラム可能ゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または本明細書で説明する原理に従って構成された専用論理ユニットを有する他の専用処理装置であってよい。専用処理装置の論理ユニット428は、また、ストレージ仮想化に加えて、端末システム402上で動いているアプリケーション408からの出力の音声/ビデオキャプチャなどの、クラウドストリーミングのためのさまざまな機能を補助する専用論理を含むことができ、それにより、クラウドゲームを伴う実装形態において、ホストシステム402によるネットワークを介したA/V出力のストリーミングを容易にすることができる。インターフェースカード402は、1つまたは複数のHDMIポートまたは他のA/VポートなどのA/V通信インターフェースと、端末システム上で動いているアプリケーションのA/V出力を対応するA/Vコネクタを通して受信する、互換性を有するA/Vレシーバ430とを含むことができる。
図4A〜図4Bに示した実施例では、専用処理装置の論理428内に具体化されたマスストレージデバイスコントローラは、ホストシステム402のインターフェースデバイスドライバ426によって制御され、ホストシステム402内に具体化されたストレージ処理432、たとえば、中央演算装置404上で動いているソフトウェアアプリケーションは、データ伝送サービスをインターフェースデバイスドライバ426に提供することができる。たとえば、端末システム412が、データを、そのディスクドライブ、またはマスストレージコネクタを介して接続されている他のマスストレージデバイスから読み出すことを要求する場合、この要求は、マスストレージホストコントローラ424、論理428に含まれるマスストレージデバイスコントローラ、インターフェースデバイスドライバ426を通って、ホストシステム内に具体化されたストレージ処理432に到達することができる。ストレージ処理432は、次いで、さまざまな資源から得られるデータを読み出すことができる。たとえば、ストレージ処理432は、データを、ホストマシンにローカルに接続された、ディスクドライブまたは他のマスストレージデバイスから読み出すことができ、またはストレージ処理432は、データを、ネットワークを介して、メモリドライブまたはストレージサーバから読み出すことができる。ストレージ処理が使用する方法のどちらも、端末システム402にとって透過的である。
いくつかの実装形態では、ホストシステム402は、任意で、ネットワークを介して、端末システム412上で動いているアプリケーション408からの出力のストリームを送信するように適用されたストリーミングサーバであってよい。たとえば、ホストシステム402は、ホストシステム402上で動いているアプリケーションであり得るA/V処理434を含むことができる。A/Vキャプチャ処理は、インターフェースカード420に接続されたA/Vコネクタを通して送信されたA/Vストリームをキャプチャするための、専用処理装置の専用論理428と連動することができる。ストリーミングサーバ402は、イーサネット(登録商標)アダプタまたは他のネットワークアダプタ436と、ホスト402のオペレーティングシステムのための対応するイーサネットドライバまたは他のネットワークドライバ438とを、プロトコルサポートをネットワーク通信に提供する互換性を有するネットワークライブラリ439と共に含むことができる。ホストシステムは、また、対応するメモリドライバ442(たとえば、tmpfs)によって制御され、ファイルシステムライブラリ444によって補助される、システムメモリ440を含むことができる。ストリーミングサーバ処理446は、ホストシステム402上で実行されて、リアルタイムのストリーミングを(図4A〜図4Bでは図示しない)ネットワークを介して接続されたクライアントデバイスに提供することに関連付けられた機能を、実行することができる。
いくつかの状況では、データストレージは、(図4Aで透視的に示した)遠隔ストレージサーバ448とメモリ440とメモリドライバ442との組み合わせを使用して実装され得る。限定するものではなく、一例として、いくつかの実装形態では、データは、メモリドライバ442によって、ストレージサーバ448からのみ読み出され、メモリ440のみに書き込まれ得る。
端末システム412は、たとえば、既存の組込みプラットフォームのために設計されたビデオゲームソフトウェアであり得るアプリケーション408を補助する、さまざまな他の構成要素を含むことができる。端末システム412は、ストレージにアクセスするためのファイルシステム層427と、アプリケーション408のグラフィックス表示を補助するさまざまな構成要素とを含むことができる。中央演算装置(CPU)に加えて、端末システム412は、グラフィックスドライバ452によって動かされ、グラフィックスライブラリ454によって補助され得る、グラフィックスプロセシングユニット(GPU)450を含むことができる。HDMI送信機などのA/V送信機456は、アプリケーションの音声及び/またはビデオ出力を、ホストシステムのホストインターフェースデバイスに、互換性を有するA/Vコネクタを通して送信するために含まれ得る。
図5を参照すると、インターフェースカード420上に実装され得る例示的なインターフェースデバイス520と、その上のいくつかの構成要素と、例示的な専用処理装置560の内部との概略図が、本開示のさまざまな実装形態に従って示されている。限定するものではなく、一例として、インターフェースデバイス520は、プリント基板(PCB)に取り付けられた構成要素を有するアドオンカードとして構成され得、インターフェースカード520は、ホストシステムの周辺機器用バスと、接続された時にホストシステムの周辺機器用バスとの通信を可能にする、周辺機器拡張ポートまたは他の拡張通信インターフェースなどのホストハードウェアインターフェース562を通して、インターフェース接続することができる。
例示的な専用処理装置560は、本開示のさまざまな態様による専用機能に特化する、さまざまな論理ブロックを含むことができる。専用処理装置を、たとえば、FPGA、ASIC、または類似の専用処理装置として実装することができる。専用処理装置560は、インターフェースカード520と(図5では図示しない)インターフェースデバイス560のホストシステムの周辺機器用バスとの間の、通信インターフェース用のプロトコルスタックの一部を実装する、ホストインターフェースブロック564を含むことができる。
PCI−Expressなどの通信バスを、いくつかの層を有するプロトコルスタックとして考えることができる。異なる通信プロトコルは、異なる層を有する。通常、一番上に「アプリケーション層」、次に、中間にいくつかのトランスポート関連層、一番下にいくつかの物理層がある。ホストインターフェースブロック564は、そのようなプロトコルスタックの全部の層を実装する必要はない。代わりに、ホストインターフェースブロックは、デジタル情報を通信リンクに、たとえば、電気信号または光信号を通して載せる責任を負う、物理層を引き受けることができる。ホストインターフェースブロックは、また、プロトコルスタックの「トランスポート層」のうちの一部または場合によっては全部に対して責任を負うことができるが、アプリケーション層に対しては責任を負う必要がない。
限定するものではなく、一例として、ホストインターフェースブロック564は、PCI−Express接続を通した通信のためのハードPCIeブロックであってよく、それは、PCIeインターフェースまたはホストシステムのローカルバスにアクセスするための他のインターフェースのための、プロトコルスタックを組み込んでいる。ホストインターフェースブロック564を、メモリアクセスインターフェースユニット566に組み込むことができ、メモリアクセスインターフェースユニット566は、専用処理装置560の他の論理ユニットと共に、たとえば、ホストシステムへの要求という割り込みを使用して、ホストシステムのシステムメモリに、ホストハードウェアインターフェース562を通して直接アクセスすることができる。
いくつかの実装形態では、メモリアクセスインターフェース566は、メモリアクセスと割り込み機能とを提供する構成要素を含むことができる。特に、ホストインターフェースブロック564は、オンチップ相互接続572とホストハードウェアインターフェース562との間の接続を、任意のオンチップデバイスに、メモリにマッピングされた入力/出力(I/O)を使用して、ホストシステムからアクセス可能にするような方法で提供するように構成され得る。この機能は、ホストシステムが、マスストレージコントローラ570、メモリコントローラ576、またはGPIO582などの、オンチップ相互接続572に接続されたデバイスをプログラムすることを可能にする。
メモリアクセスインターフェース566は、また、接続されたデバイス、たとえば、マスストレージコントローラ570が、イベント(たとえば、マスストレージの読み出し要求)が到達した時割り込みを生成することを可能にする、割り込み接続565を含むことができる。)ホストハードウェアインターフェースハードウェア562とインターフェース接続するデバイスが1つのみ存在できる場合には、メモリアクセスインターフェースがこの機能を提供することは望ましい。
メモリアクセスインターフェース566は、また、(任意で)直接メモリアクセス(DMA)エンジン567を含むことができる。本明細書で使用される通り、また、当業者によって一般的に理解されている通り、直接メモリアクセス(DMA)という用語は、コンピュータ内の特定のハードウェアサブシステムが、コンピュータの中央演算装置(CPU)とは独立に、システムメモリにアクセスすることを可能にする機能のことを指す。DMAエンジン567は、ホストインターフェースブロック564とホストハードウェアインターフェース562との間のデータ移動動作を実装することができる。いくつかの実装形態では、メモリアクセスインターフェースユニット566は、ホストインターフェースブロック564をオンチップ相互接続572に接続することなどの、ホストインターフェースブロック564によって提供されないプロトコルスタックの部分(たとえば、PCI Express)を実装することができる。
マスストレージデバイス仮想化の機能のために、インターフェースデバイス520は、1つまたは複数のマスストレージデバイス通信インターフェース568を含むことができ、マスストレージデバイス通信インターフェース568は、1つまたは複数のSATAポート569及び/またはコネクタ、または他のマスストレージデバイス通信インターフェースの形態で実装され得、インターフェースデバイス520の回路基板に取り付けられ得る。限定するものではなく、一例として、インターフェースカード520は、2つの端末システムへの接続を容易にする2つのSATAポートを含むことができるが、1つのインターフェースデバイス520が、異なる数の端末システムにサービスを提供することができるように、インターフェースデバイスが、代替的に、異なる数のマスストレージデバイスコネクタを含むことができる、ということに留意する。マスストレージデバイスコネクタ568の各々について、特定のマスストレージ通信インターフェース(たとえば、SATA)と互換性を有する専用処理装置560内に具体化された、対応するマスストレージデバイスコントローラ570があり得る。
1つまたは複数のマスストレージデバイスコントローラ570は、専用処理装置560の他の論理ユニットに、オンチップ相互接続572を通して接続され得、オンチップ相互接続572は、マスストレージデバイスコントローラ572の各々に、ホストシステムインターフェース構成要素(たとえば、PCI−Express)へのアクセスを提供することができる。オンチップ相互接続は、専用処理装置(たとえば、FPGAまたはASIC)の機能ブロックを接続するように構成された、標準的なオンチップバスアーキテクチャに構成され得る。たとえば、専用処理装置560がFPGAである場合、専用処理装置の構成要素は、マスタースレーブアーキテクチャ、たとえば、AXI4またはAXI4−LiteなどのAdvanced Microcontroller Bus Architecture (AMBA)、または他の適切なオンチップバスアーキテクチャを使用して、相互接続され得る。AXI4は、大量のデータ伝達のために使用され得、AXI−Liteは、低性能接続のため、または構成目的のために使用され得る。専用処理装置論理ブロックのオンチップ相互接続は、図5に示すマスタースレーブ型の構成に従って構成され得る。例示の概略図では、「M」及び対応する太線はマスター接続を表し、「S」及び対応する点線はスレーブ接続を表し、「Ctrl」は制御を表す。
インターフェースデバイス520は、専用処理装置560の論理内に提供されたメモリコントローラ576によって制御され得る、1つまたは複数のメモリユニット574を含むことができる。メモリユニットは、マスストレージインターフェース568を通して接続された端末システムと、ホストハードウェアインターフェース562を通して接続されたホストシステムとの間のデータ伝達を、端末システムによって発行されたデータ要求に従って補助することができる。たとえば、メモリユニット574は、本明細書で説明する原理に従って、端末システムによって発行された読み出し要求によって要求されたデータを一時的に記憶するように構成された、DDR3 RAMなどの一時的なRAMユニット、または他の揮発性メモリユニットであることができる。メモリコントローラ576は、オンチップバスアーキテクチャ572に接続されて、専用処理装置560の他の論理ユニットから受信した信号に従って、読み出し動作/書き込み動作を実行することができる。
動作中、ストレージインターフェース560を通して接続された(図5に図示しない)コンピューティングデバイスのマスストレージホストコントローラは、マスストレージデバイスコントローラ570に、読み出し動作と、書き込み動作と、他の動作とを実行するように要求することができる。そのような要求を受信すると、マスストレージデバイスコントローラ570は、(図5に図示しない)ホストシステム上のインターフェースデバイスドライバとストレージ処理とに、ホストハードウェアインターフェース562、たとえば、PCI−Expressを通した割り込みを使用して、要求について通知することができる。ホストシステムのソフトウェア構成要素は、次いで、要求を取り扱うことについての決定を行うことができる。
たとえば、端末システムからの読み出し要求の場合、(図示しない)ホストシステムのストレージアプリケーションは、このデータを、あるストレージ資源から読み出し、それをインターフェースデバイスメモリユニット574に、ホストハードウェアインターフェース562を介して記憶することができる。完了すると、ホストシステムのストレージアプリケーションは、専用処理装置560のマスストレージデバイスコントローラ570をプログラムして、読み出し要求を、インターフェースデバイスメモリ574から読み出すことによって完了させることができる。限定するものではなく、一例として、マスストレージホストコントローラ424がSATAコントローラだと仮定する。SATAトランザクション(読み出し/書き込み及び他もある)について、ストリーミングサーバ402のマスストレージホストコントローラ424は、割り込みを起こす。ストリーミングサーバ402のマスストレージホストドライバ426は、マスストレージホストコントローラ424の状態を確認する。要求が「書き込み要求」であると判断された場合、マスストレージホストコントローラ424は、そのデータを、インターフェースデバイス520のメモリ574(たとえば、DDR3メモリ)に書き込むようにプログラムされる。マスストレージホストコントローラ424は、この目的のための、自身の内蔵DMAエンジン567を有することができる。別の割り込みは、データがメモリ574に書き込まれた時に起こる。マスストレージホストドライバ426は、次いで、DMA要求を、DMAエンジン567を使用して発行して、メモリ574からホストシステムメモリ440にコピーする。
ホストシステムメモリ440のバッファを、ストレージ処理と直接共有することができる。ホストシステムメモリ440へのDMAトランザクションが完了すると、ストレージ処理は、書き込み要求について通知され、書き込みトランザクションを終わらせる。それは、データを、ディスクに、ネットワークストレージデバイスに、またはそれがデータを記憶したいと望むどんな場所にも、書き込むことができる。
インターフェースデバイス520のメモリ574が、読み出し動作または書き込み動作のために必要でないことがある、ということに留意する。マスホストストレージコントローラ424が、ホストシステムメモリ440に直接書き込むことは可能である。たとえば、メモリアクセスインターフェースユニット566は、PCI−ExpressをAXI4に、またAXI4をPCI−Expressにマッピングすることができる。この特徴は、AXI4マスターデバイスが、ホストシステムメモリに書き込みを行うことを可能にする。
インターフェースデバイスは、任意で、追加の機能をクラウドゲームストリーミングなどの端末システム上で動くストリーミングアプリケーションに提供する、さまざまな他の構成要素を含むことができる。たとえば、専用処理装置560は、また、1つまたは複数の端末システムからのA/Vストリームをキャプチャするための、1つまたは複数の音声及び/またはビデオキャプチャブロック578を含むことができる。1つまたは複数のA/Vキャプチャ論理ユニット578の各々は、対応するA/Vレシーバ530に動作可能に連結され、A/Vレシーバ530の各々は、同様に、図5に示すHDMIポートまたは他のA/V接続ポートなどの適切なA/Vハードウェアインターフェース580に接続されている。端末システムからのA/V出力は、A/Vレシーバ530に、A/Vインターフェース580を通して、互換性を有するA/Vコネクタを使用して接続され得る。A/Vキャプチャユニット578は、ホストシステム上のインターフェースデバイスドライバとA/V処理と、ホストシステムバス(たとえば、周辺機器用バス)に接続され得るホストハードウェアインターフェース562を通して通信することができ、ホストシステムは、次いで、A/Vストリームをクライアントデバイスに、ネットワークを介して配信することができる。
インターフェースデバイス582は、また、追加の機能を補助する、1つまたは複数の汎用入力/出力(GPIO)ブロックを含むことができる。限定するものではなく、一例として、GPIOブロックの各々は、端末システムの電力制御や他の機能などの追加の機能を提供するために、端末システムの対応する1つに接続され得る。
上述した通り、専用処理装置560は、たとえば、FPGA、ASIC、または本開示のさまざまな態様による、マスストレージデバイスコントローラ、メモリコントローラ、DMAエンジンなどの、特定の機能に専念するブロックを有する他の集積回路として実装され得る。本開示のいくつかの実装形態では、これらのユニットのうちの1つまたは複数は、当技術分野において、IPブロックまたはIPコアと一般的に呼ばれる、再使用可能な論理ユニットまたは他のチップ設計として提供され得る。
図6は、本開示のさまざまな態様による、端末システム612のマスストレージデバイスを模倣するための例示的なフローチャートを示している。図6に示す実施例では、互いに動作可能に連結されたインターフェースデバイス620及びホストシステム602は、端末システム612のマスストレージデバイスを模倣するように構成されている。図6の例示の実施例は、説明の目的のために、端末システムによって発行された読み出し要求について模倣することを示すが、本開示の実装形態が、例示の構成要素を使用して、端末システムによって発行される、書き込み要求と他のマスストレージデータ要求とを完了させるように構成され得る、ということに留意する。
図6に示す通り、マスストレージデバイスは、(図示しない)さまざまなアプリケーションを実行するように構成された中央演算装置(CPU)681とメモリユニット682とを有し得る、端末システム612または他のコンピューティングシステムのために模倣され得る。端末システム612は、さまざまな読み出し要求と書き込み要求と他のデータ要求とを、マスストレージデバイスコネクタを通して、マスストレージデバイスコントローラ624を使用して行うことができる。通常、これらの要求は、対応するデバイスコントローラを有するローカルのマスストレージデバイスによって完了される。図6の実施例では、これらのデータ要求は、ホストコンピュータシステム602と通信しているインターフェースデバイス620によって満たされてもよく、ホストコンピュータシステム602は、さまざまなデータ要求を扱うために、いくつかの他のストレージ資源699にアクセスすることができる。
図6の説明では、読み出し要求684は、端末システム612のマスストレージホストコントローラ624によって発行され、専用処理装置660のマスストレージデバイスコントローラ670で受信される。マスストレージデバイスコントローラ670は、ホストシステム602に組み込まれたストレージ処理632に、割り込みを使用して、たとえば、図6に示すDMAエンジン666を介して、要求684について通知する。ストレージ処理は、ホストシステム602のシステムメモリ640内に具体化されたアプリケーションであることができ、アプリケーションは、ホストシステム602の中央演算装置686によって実行されて、要求684を扱うことを決定することができる。
図6に示す通り、ストレージ処理は、要求されたデータ687を、ストレージサーバなどのいくつかの他のストレージ資源699から読み出すことができる。ストレージ処理は、読み出されたデータ689を、インターフェースデバイスメモリユニット674内に、たとえば、PCI−e、またはホストシステム602の周辺機器用バスとの他の通信インターフェースなどの(図示しない)拡張インターフェースを通して、記憶することができる。周辺機器用バスと拡張インターフェースを通して通信する、アドオンカードまたは他の周辺機器用構成要素として実装される代わりに、いくつかの実装形態では、インターフェースデバイス620は、ホストシステムの周辺機器用バスに直接接続された専用処理装置660のように実装され、ホストシステム602の統合部分として提供され得る。
代替的な実装形態では、専用処理装置660、たとえば、FPGA、ASIC、または同等回路は、ストリーミングサーバ402のマザーボード上に直接配置され、ストリーミングサーバの周辺機器用バスに接続され得る。専用処理装置は、PCI−Expressを介して接続され得る。
ストレージ処理によって読み出されたデータがインターフェースメモリ674内に記憶されると、ストレージ処理は、マスストレージデバイスコントローラ670をプログラムして、インターフェースメモリ内に記憶されたデータ689にアクセスし、それを端末システム612に送信することによって要求を完了させることができる。
読み出し動作中、マスストレージデバイスコントローラ670は、(DMAエンジン666に内蔵された割り込み機能を使用して転送され得る)割り込みを、ホストシステム602のオペレーティングシステムのストレージドライバに対して起こすことができる。要求が読み出し要求684であると判断された場合、ストレージドライバは、ストレージ処理632に、(ストレージドライバと共有され得る)ホストメモリ640内に記憶されている「データを読み出す」ように依頼する。全てのデータが読み出されると、DMAエンジン666は、ホストメモリ640からのデータ689をインターフェースメモリ674に転送するようにプログラムされ得る。
結論
本開示の態様を、本開示のさまざまな実装形態によるマスストレージ仮想化に対する必要性が望まれ得る特定の実施例として、クラウドゲームを参照して説明したが、本開示の実装形態がそれに限定されない、ということに留意する。本開示の実装形態は、模倣用のマスストレージデバイスを、クラウドコンピューティングまたはクラウドゲームを伴わないことがある任意のコンピューティングデバイスに提供することができる。
本開示の態様を、本開示のさまざまな実装形態によるマスストレージ仮想化に対する必要性が望まれ得る特定の実施例として、クラウドゲームを参照して説明したが、本開示の実装形態がそれに限定されない、ということに留意する。本開示の実装形態は、模倣用のマスストレージデバイスを、クラウドコンピューティングまたはクラウドゲームを伴わないことがある任意のコンピューティングデバイスに提供することができる。
本開示の実装形態が、さまざまなマスストレージ通信プロトコルのうちの任意のものを活用することができ、それには、SATAと、USBと、IDEと、RS232と、Firewire(登録商標)と、Thunderboltと、他のマスストレージ通信インターフェース規格とが含まれる、ということに留意する。
本開示の実装形態が、さまざまな音声規格及び/またはビデオ規格のうちの任意のものを活用することができ、それには、HDMIと、Sビデオと、コンポーネントビデオと、コンポジットビデオと、ディスプレイポートと、VGAと、DVIと、他のA/V通信インターフェース規格とが含まれる、ということに留意する。
上記は、本発明の好適な実施形態の完全な説明であるが、さまざまな代替物と変更物と同等物とを使用することが可能である。したがって、本発明の範囲は、上記の説明を参照して判断されるべきでなく、代わりに、添付の特許請求の範囲を、その全範囲の同等物と共に参照して判断されるべきである。好適かどうかに関わらず、本明細書で説明した特徴は、好適かどうかに関わらずに、本明細書で説明した他の特徴と組み合わせることができる。以下の特許請求の範囲では、「1つ(a)」または「1つ(an)」という不定冠詞は、明示的に別段の定めが述べられていない限り、その冠詞の後の項目の1つまたは複数の量を指す。添付の特許請求の範囲は、ミーンズプラスファンクション限定を含むものとして解釈されるものではないが、そのような限定が、任意の請求項で、「ための手段」という表現を使用して明示的に述べられた場合はその限りではない。
Claims (25)
- マスストレージインターフェースである第1の通信インターフェースと、
拡張インターフェースである第2の通信インターフェースと、
前記通信インターフェースに動作可能に連結された専用処理装置であって、前記第1の通信インターフェースに接続されたマスストレージデバイスコントローラと、前記第2の通信インターフェースに接続されたメモリアクセスインターフェースとを有する、専用処理装置と、
を備え、
前記マスストレージデバイスコントローラが、マスストレージデータ要求を、前記第1の通信インターフェースを通して受信するように構成され、
前記メモリアクセスインターフェースが、ホストシステムに、前記マスストレージデータ要求について、前記第2の通信インターフェースを通して通知するように構成されている、
インターフェースデバイス。 - メモリユニットをさらに備え、
前記専用処理装置が、前記メモリユニットに接続されたメモリコントローラを含む、
請求項1に記載のインターフェースデバイス。 - 前記メモリアクセスインターフェースが、前記ホストシステムに、前記データ要求について、前記データ要求に関する割り込みを使用して通知するように構成されている、
請求項1に記載のインターフェースデバイス。 - 前記メモリアクセスインターフェースが、データ移動動作を実装するように構成されたDMAエンジンを含む、請求項1に記載のインターフェースデバイス。
- 前記専用処理装置がフィールドプログラム可能ゲートアレイ(FPGA)である、
請求項1に記載のインターフェースデバイス。 - 前記専用処理装置が特定用途向け集積回路(ASIC)である、
請求項1に記載のインターフェースデバイス。 - プリント基板(PCB)、
をさらに備え、
前記第1の通信インターフェースが、前記PCBに固定された1つまたは複数のマスストレージポートを含む、
請求項1に記載のインターフェースデバイス。 - プリント基板(PCB)、
をさらに備え、
前記第2の通信インターフェースが、前記PCBに固定された1つまたは複数の拡張コネクタを含む、
請求項1に記載のインターフェースデバイス。 - 前記第1の通信インターフェースが、1つまたは複数のマスストレージポートを含み、
前記専用処理装置が、各前記マスストレージポートのためのマスストレージデバイスコントローラを有する、
請求項1に記載のインターフェースデバイス。 - 前記第1の通信インターフェースが、複数のマスストレージポートを含み、
前記専用処理装置が、複数のマスストレージデバイスコントローラを有し、
各前記マスストレージデバイスコントローラが、前記マスストレージポートのうちの対応する1つに接続されている、
請求項1に記載のインターフェースデバイス。 - 前記第1の通信インターフェースが、1つまたは複数のシリアルアドバンストテクノロジーアタッチメント(SATA)ポートを含み、
前記専用処理装置が、各前記SATAポートのためのSATAデバイスコントローラを有する、
請求項1に記載のインターフェースデバイス。 - 中央演算装置と、
前記中央演算装置に動作可能に連結された第1のメモリユニットと、
前記第1のメモリユニット内に具体化され、前記中央演算装置によって実行可能な、ストレージ処理と、
マスストレージインターフェースである第1の通信インターフェースと、
前記第1の通信インターフェースに動作可能に連結された専用処理装置であって、前記第1の通信インターフェースに接続されたマスストレージデバイスコントローラとメモリアクセスインターフェースとを有する、専用処理装置と、
を備え、
前記マスストレージデバイスコントローラが、マスストレージデータ要求を、前記第1の通信インターフェースを通して受信するように構成され、
前記メモリアクセスインターフェースが、前記ストレージ処理に、前記マスストレージデータ要求について通知するように構成され、
前記ストレージ処理が、前記データ要求を、ストレージシステムにアクセスすることによって処理するように構成されている、
システム。 - 第2のメモリユニット、
をさらに備え、
前記専用処理装置が、前記第2のメモリユニットに接続されたメモリコントローラを有する、
請求項12に記載のシステム。 - 第2のメモリユニット、
をさらに備え、
前記専用処理装置が、前記第2のメモリユニットに接続されたメモリコントローラを有し、
前記データ要求が、読み出し要求であり、
前記ストレージ処理が、前記読み出し要求に対応するデータを、前記ストレージシステムから読み出すように構成され、
前記ストレージ処理が、前記読み出されたデータを、前記第2のメモリユニット上に記憶するように構成され、
前記ストレージ処理が、前記第2のメモリユニットから読み出すように前記マスストレージデバイスコントローラをプログラムすることによって、前記読み出し要求を完了させるように前記マスストレージデバイスコントローラをプログラムするように構成されている、
請求項12に記載のシステム。 - 拡張インターフェースである第2の通信インターフェース、
をさらに備え、
前記メモリアクセスインターフェースが、前記第2の通信インターフェースに接続され、
前記第2の通信インターフェースが、前記プロセッサバスに接続されている、
請求項12に記載のシステム。 - プリント基板(PCB)と、
拡張インターフェースである第2の通信インターフェースと、
をさらに備え、
前記DMAエンジンが、前記第2の通信インターフェースに接続され、
前記第2の通信インターフェースが、前記プロセッサバスに接続され、
前記第1の通信インターフェース、前記第2の通信インターフェース、及び前記専用処理装置が、前記PCBに固定されている、
請求項12に記載のシステム。 - 前記DMAエンジンが、前記プロセッサバスに直接接続されている、
請求項12に記載のシステム。 - 前記メモリアクセスインターフェースが、前記ストレージ処理に、前記データ要求について、前記データ要求についての割り込みを使用して通知するように構成されている、
請求項12に記載のシステム。 - 前記メモリアクセスインターフェースが、データ移動動作を実装するように構成されたDMAエンジンを含む、請求項12に記載のシステム。
- 前記第1の通信インターフェースが、1つまたは複数のマスストレージポートを含み、
前記専用処理装置が、各前記マスストレージポートのためのマスストレージデバイスコントローラを有する、
請求項12に記載のシステム。 - 前記専用処理装置がフィールドプログラム可能ゲートアレイ(FPGA)である、
請求項12に記載のシステム。 - 前記専用処理装置が特定用途向け集積回路(ASIC)である、
請求項12に記載のシステム。 - 前記第1の通信インターフェースに、マスストレージコネクタを通して動作可能に連結された端末システムであって、前記マスストレージデータ要求を発行するように構成されたマスストレージホストコントローラを有する端末システム、
をさらに備える、請求項12に記載のシステム。 - 複数の端末システム、
をさらに備え、
前記専用処理装置が、複数の前記マスストレージデバイスコントローラを有し、
前記第1の通信インターフェースが、複数のマスストレージポートを有し、
各前記端末システムが、前記マスストレージポートのうちの対応する1つに、マスストレージコネクタを用いて接続され、
各前記マスストレージポートが、前記マスストレージデバイスコントローラのうちの対応する1つに接続されている、
請求項12に記載のシステム。 - a)第1のコンピューティングデバイスから、マスストレージデータ要求を、マスストレージデバイスコントローラにおいて受信することと、
b)前記マスストレージデバイスコントローラに接続されたメモリアクセスインターフェースを用いて、第2のコンピューティングデバイス内に具体化されたストレージ処理に、前記データ要求について通知することと、
c)前記第2のコンピューティングデバイスの前記ストレージ処理を用いて、前記データ要求に対応するデータを有するストレージシステムにアクセスすることと、
d)前記第2のコンピューティングデバイスの前記ストレージ処理を用いて、前記データ要求に対応する前記データを、第1のメモリユニットに記憶することと、
e)前記データ要求を完了させるために、前記第2のコンピューティングデバイスの前記ストレージ処理を用いて、前記第1のメモリユニットからの前記データにアクセスするように前記マスストレージデバイスコントローラをプログラムすることと、
を備える、方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/135,213 | 2013-12-19 | ||
US14/135,213 US10353633B2 (en) | 2013-12-19 | 2013-12-19 | Mass storage virtualization for cloud computing |
PCT/US2014/061633 WO2015094474A1 (en) | 2013-12-19 | 2014-10-21 | Mass storage virtualization for cloud computing |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016534463A true JP2016534463A (ja) | 2016-11-04 |
Family
ID=53400073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016538830A Pending JP2016534463A (ja) | 2013-12-19 | 2014-10-21 | クラウドコンピューティングのためのマスストレージの仮想化 |
Country Status (9)
Country | Link |
---|---|
US (2) | US10353633B2 (ja) |
EP (2) | EP3690664A1 (ja) |
JP (1) | JP2016534463A (ja) |
KR (1) | KR101788724B1 (ja) |
CN (2) | CN104735123B (ja) |
BR (1) | BR112016004712B1 (ja) |
RU (1) | RU2649771C2 (ja) |
TW (1) | TWI531958B (ja) |
WO (1) | WO2015094474A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990446B2 (en) | 2012-10-04 | 2015-03-24 | Sony Computer Entertainment America, LLC | Method and apparatus for decreasing presentation latency |
US9497358B2 (en) | 2013-12-19 | 2016-11-15 | Sony Interactive Entertainment America Llc | Video latency reduction |
US9332216B2 (en) | 2014-03-12 | 2016-05-03 | Sony Computer Entertainment America, LLC | Video frame rate compensation through adjustment of vertical blanking |
US9795879B2 (en) * | 2014-12-31 | 2017-10-24 | Sony Interactive Entertainment America Llc | Game state save, transfer and resume for cloud gaming |
US10554713B2 (en) * | 2015-06-19 | 2020-02-04 | Microsoft Technology Licensing, Llc | Low latency application streaming using temporal frame transformation |
US10744407B2 (en) * | 2015-09-08 | 2020-08-18 | Sony Interactive Entertainment LLC | Dynamic network storage for cloud console server |
KR102335715B1 (ko) * | 2015-12-04 | 2021-12-06 | 한국전자기술연구원 | 가상화 기반의 임베디드 하드웨어 개발 및 검증 프레임워크 구조 |
US10423331B2 (en) * | 2016-02-02 | 2019-09-24 | Samsung Electronics Co., Ltd. | Polymorphic storage devices |
US11287973B2 (en) | 2016-02-02 | 2022-03-29 | Samsung Electronics Co., Ltd. | Polymorphic storage devices |
CN111902804B (zh) * | 2018-06-25 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 用于管理存储设备的资源并量化i/o请求成本的系统和方法 |
CN111372115B (zh) * | 2020-03-03 | 2022-02-08 | 北京奇艺世纪科技有限公司 | 应用程序的访问方法及装置、通讯系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006011786A (ja) * | 2004-06-25 | 2006-01-12 | Hitachi Information Systems Ltd | コンピュータ集中運用センタシステムとそのデータ管理制御方法およびプログラム |
JP2006178795A (ja) * | 2004-12-24 | 2006-07-06 | Fujitsu Ltd | Dma回路及びこれを用いたディスクアレイ装置 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5034817A (en) | 1990-02-28 | 1991-07-23 | The United States Of America As Represented By The Secretary Of The Navy | Reconfigurable video line digitizer and method for storing predetermined lines of a composite video signal |
US5502462A (en) | 1993-11-01 | 1996-03-26 | The 3Do Company | Display list management mechanism for real-time control of by-the-line modifiable video display system |
US5969828A (en) | 1997-03-12 | 1999-10-19 | Minolta Co., Ltd. | Digital copying machine, image reading device used in said digital copying machine, and image processing method used in these devices |
WO2001082863A2 (en) * | 2000-04-28 | 2001-11-08 | Fziomed, Inc. | Polyacid/polyalkylene oxide foams and gels and methods for their delivery |
AR031640A1 (es) * | 2000-12-08 | 2003-09-24 | Applied Research Systems | Amplificacion isotermica de acidos nucleicos en un soporte solido |
US6874060B2 (en) * | 2001-12-07 | 2005-03-29 | Dell Products L.P. | Distributed computer system including a virtual disk subsystem and method for providing a virtual local drive |
US20030110300A1 (en) * | 2001-12-12 | 2003-06-12 | Micro-Star Int'l Co., Ltd. | Virtual storage interface device |
CN1243313C (zh) * | 2001-12-27 | 2006-02-22 | 中国科学院计算技术研究所 | 具有大容量存储器的数据流处理板 |
US7711847B2 (en) * | 2002-04-26 | 2010-05-04 | Sony Computer Entertainment America Inc. | Managing users in a multi-user network game environment |
US8037229B2 (en) * | 2002-11-21 | 2011-10-11 | Sandisk Technologies Inc. | Combination non-volatile memory and input-output card with direct memory access |
US7505890B2 (en) * | 2003-01-15 | 2009-03-17 | Cox Communications, Inc. | Hard disk drive emulator |
US7106352B2 (en) | 2003-03-03 | 2006-09-12 | Sun Microsystems, Inc. | Automatic gain control, brightness compression, and super-intensity samples |
US7287099B1 (en) * | 2003-03-18 | 2007-10-23 | Unisys Corporation | System for support of remote console by emulation of local console with multipath data flow structure |
US7565408B2 (en) * | 2003-03-20 | 2009-07-21 | Dell Products L.P. | Information handling system including a local real device and a remote virtual device sharing a common channel |
US20060061517A1 (en) | 2004-09-23 | 2006-03-23 | Jolly Paul A | Delivering pixels received at a lower data transfer rate over an interface that operates at a higher data transfer rate |
US20100017189A1 (en) * | 2006-01-04 | 2010-01-21 | Andriy Naydon | Transparent Intellectual Network Storage Device |
WO2007119236A2 (en) | 2006-04-13 | 2007-10-25 | Yosef Mizrachi | Method and apparatus for providing gaming services and for handling video content |
US7383992B2 (en) * | 2006-10-10 | 2008-06-10 | Imation Corp. | Memory card with host interface and including internal interface for receiving micro-size memory cards |
US8179388B2 (en) | 2006-12-15 | 2012-05-15 | Nvidia Corporation | System, method and computer program product for adjusting a refresh rate of a display for power savings |
KR100794312B1 (ko) * | 2006-12-27 | 2008-01-11 | 삼성전자주식회사 | 명령어 자동 처리 유니트를 포함한 메모리 컨트롤러 및그를 포함한 메모리 시스템 |
US8838856B2 (en) * | 2007-02-16 | 2014-09-16 | Emulex Corporation | Virtual universal asynchronous receiver transmitter for server systems |
US7669000B2 (en) * | 2007-10-23 | 2010-02-23 | Brocade Communication Systems, Inc. | Host bus adapter with multiple hosts |
US20090135916A1 (en) | 2007-11-26 | 2009-05-28 | Mediatek Inc. | Image processing apparatus and method |
WO2009079560A1 (en) | 2007-12-17 | 2009-06-25 | Stein Gausereide | Real time video inclusion system |
KR101178752B1 (ko) * | 2008-02-26 | 2012-09-10 | 브이엠웨어, 인코포레이티드 | 서버-기반 데스크탑 가상 머신 아키텍처의 클라이언트 머신들로의 확장 |
US8499119B2 (en) * | 2008-04-07 | 2013-07-30 | Qualcomm Incorporated | Method and apparatus for delivering and caching multiple pieces of content |
US8225019B2 (en) * | 2008-09-22 | 2012-07-17 | Micron Technology, Inc. | SATA mass storage device emulation on a PCIe interface |
JP4581012B2 (ja) | 2008-12-15 | 2010-11-17 | 株式会社東芝 | 電子機器、及び表示制御方法 |
US9344401B2 (en) * | 2009-02-04 | 2016-05-17 | Citrix Systems, Inc. | Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment |
US20100280817A1 (en) | 2009-04-30 | 2010-11-04 | Spansion Llc | Direct pointer access and xip redirector for emulation of memory-mapped devices |
US8635387B2 (en) * | 2009-10-09 | 2014-01-21 | Emulex Design & Manufacturing Corporation | Enhanced I/O performance in a multi-processor system via interrupt affinity schemes |
DE102009058795A1 (de) | 2009-12-18 | 2011-06-22 | Epcos Ag, 81669 | Piezoelektrisches Keramikmaterial, Verfahren zur Herstellung des piezoelektrischen Keramikmaterials, piezoelektrisches Vielschichtbauelement und Verfahren zur Herstellung des piezoelektrischen Vielschichtbauelements |
US8669993B2 (en) | 2010-01-11 | 2014-03-11 | Apple Inc. | User interface unit for fetching only active regions of a frame |
JP5569053B2 (ja) * | 2010-03-11 | 2014-08-13 | ソニー株式会社 | コンテンツ配信装置、コンテンツ配信方法および送信サーバ |
US8341363B2 (en) | 2010-05-03 | 2012-12-25 | Panzura, Inc. | Efficient cloud network attached storage |
CN101937261A (zh) * | 2010-05-18 | 2011-01-05 | 上海同悦信息科技有限公司 | 基于通用串行总线的云计算终端 |
EP2641363B1 (en) * | 2010-11-16 | 2018-05-23 | Telefonaktiebolaget LM Ericsson (publ) | Message targeting platform |
KR101312268B1 (ko) | 2010-12-24 | 2013-09-25 | 주식회사 케이티 | 클라우드 컴퓨팅 환경에서 게임 서비스 제공 방법, 클라우드 컴퓨팅 서버, 및 클라우드 컴퓨팅 시스템 |
PL2472879T3 (pl) | 2010-12-31 | 2014-03-31 | Advanced Digital Broadcast Sa | Sposób i system do określania typu ramki wideo |
US20120306926A1 (en) | 2011-06-06 | 2012-12-06 | Apple Inc. | Inline scaling unit for mirror mode |
US8281288B1 (en) | 2011-10-20 | 2012-10-02 | Google Inc. | Integrated development environment with network-based compilation and sandboxed native machine-language capabilities |
US10319333B2 (en) | 2012-09-26 | 2019-06-11 | Apple Inc. | Refresh rate matching for displays |
US20140195634A1 (en) * | 2013-01-10 | 2014-07-10 | Broadcom Corporation | System and Method for Multiservice Input/Output |
US20140281023A1 (en) | 2013-03-18 | 2014-09-18 | Nvidia Corporation | Quality of service management server and method of managing quality of service |
US9497358B2 (en) | 2013-12-19 | 2016-11-15 | Sony Interactive Entertainment America Llc | Video latency reduction |
-
2013
- 2013-12-19 US US14/135,213 patent/US10353633B2/en active Active
-
2014
- 2014-10-21 WO PCT/US2014/061633 patent/WO2015094474A1/en active Application Filing
- 2014-10-21 EP EP20165552.9A patent/EP3690664A1/en active Pending
- 2014-10-21 RU RU2016107200A patent/RU2649771C2/ru active
- 2014-10-21 BR BR112016004712-5A patent/BR112016004712B1/pt active IP Right Grant
- 2014-10-21 EP EP14872001.4A patent/EP3036646B1/en active Active
- 2014-10-21 KR KR1020167007888A patent/KR101788724B1/ko active IP Right Grant
- 2014-10-21 JP JP2016538830A patent/JP2016534463A/ja active Pending
- 2014-10-22 TW TW103136465A patent/TWI531958B/zh active
- 2014-12-12 CN CN201410771149.XA patent/CN104735123B/zh active Active
- 2014-12-12 CN CN201910971908.XA patent/CN110888599B/zh active Active
-
2019
- 2019-06-11 US US16/437,854 patent/US20190294382A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006011786A (ja) * | 2004-06-25 | 2006-01-12 | Hitachi Information Systems Ltd | コンピュータ集中運用センタシステムとそのデータ管理制御方法およびプログラム |
JP2006178795A (ja) * | 2004-12-24 | 2006-07-06 | Fujitsu Ltd | Dma回路及びこれを用いたディスクアレイ装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104735123B (zh) | 2019-11-08 |
RU2016107200A (ru) | 2017-08-30 |
KR101788724B1 (ko) | 2017-10-20 |
TWI531958B (zh) | 2016-05-01 |
US10353633B2 (en) | 2019-07-16 |
CN104735123A (zh) | 2015-06-24 |
RU2649771C2 (ru) | 2018-04-04 |
BR112016004712A2 (ja) | 2017-08-01 |
EP3036646A4 (en) | 2017-07-19 |
US20150178018A1 (en) | 2015-06-25 |
CN110888599B (zh) | 2023-06-27 |
KR20160046893A (ko) | 2016-04-29 |
TW201537447A (zh) | 2015-10-01 |
BR112016004712B1 (pt) | 2022-06-14 |
EP3690664A1 (en) | 2020-08-05 |
US20190294382A1 (en) | 2019-09-26 |
WO2015094474A1 (en) | 2015-06-25 |
CN110888599A (zh) | 2020-03-17 |
EP3036646A1 (en) | 2016-06-29 |
EP3036646B1 (en) | 2020-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190294382A1 (en) | Mass storage virtualization for cloud computing | |
US11724185B2 (en) | Methods implementing doorbell register/file identification table with high-speed data communication fabric for cloud gaming data storage and retrieval | |
US11645218B2 (en) | Network architecture providing high speed storage access through a PCI express fabric between a compute node and a storage server within an array of compute nodes | |
US7917674B2 (en) | KVM switch with PIP functions using remote desktop sharing technique | |
TWI793654B (zh) | 雲端遊戲系統及操作雲端遊戲系統之方法 | |
US8473715B2 (en) | Dynamic accelerator reconfiguration via compiler-inserted initialization message and configuration address and size information | |
EP1987426A1 (en) | Data processing | |
US11071920B2 (en) | Modular multi-system gaming console | |
TWI787673B (zh) | 混合式叢集系統及其計算節點 | |
TWI709428B (zh) | 組態一匯流排之方法及遊戲主控台 | |
CN110383260A (zh) | 耦合到计算机总线的设备的功能状态 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170509 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170809 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20171107 |