JP5873513B2 - Qosベースのバイナリトランスレーション及びアプリケーションストリーミング - Google Patents

Qosベースのバイナリトランスレーション及びアプリケーションストリーミング Download PDF

Info

Publication number
JP5873513B2
JP5873513B2 JP2014030489A JP2014030489A JP5873513B2 JP 5873513 B2 JP5873513 B2 JP 5873513B2 JP 2014030489 A JP2014030489 A JP 2014030489A JP 2014030489 A JP2014030489 A JP 2014030489A JP 5873513 B2 JP5873513 B2 JP 5873513B2
Authority
JP
Japan
Prior art keywords
server
binary
processor
client
client 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.)
Expired - Fee Related
Application number
JP2014030489A
Other languages
English (en)
Other versions
JP2014182798A (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2014182798A publication Critical patent/JP2014182798A/ja
Application granted granted Critical
Publication of JP5873513B2 publication Critical patent/JP5873513B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

実施形態は、概して、クラウドベースのアプリケーションサービスに関し、より詳しくは、サービスの品質(QoS)基準を利用した、バイナリトランスレーション及びアプリケーションストリーミングの提供に関する。
一般的に、プロセッサは、専用の命令セットアーキテクチャを実装するよう設計されており、一般的にはネイティブに異なる命令セットアーキテクチャのためにコンパイルされたアプリケーションを実行しない。1つの命令セットのためにコンパイルされたバイナリファイルを、異なる命令セットでネイティブに実行可能なバイナリにトランスレーションすることが、コンピューティング学会では既に試されているが、成功する程度はまちまちである。ある例では、バイナリトランスレーション器が、ある命令セットアーキテクチャから異なる命令セットアーキテクチャへと、ランタイムでバイナリをトランスレーションする場合がある。またある例では、1つの命令セットアーキテクチャをもつプロセッサが、エミュレーションソフトウェアを実行することで、該プロセッサが、異なる命令セットアーキテクチャをもつバイナリを実行することができる。いずれの例においても、バイナリトランスレーションは、アプリケーション実行中にパフォーマンスペナルティを課す。
加えて、非インタラクティブ型のメディアコンテンツのストリーミングがコンピューティング学会で知られており、ストリーミングビデオを様々なコンピューティングデバイスに配信することができることが知られている。分散型の処理及び記憶を利用することで、コンテンツをクラウドベースのネットワークに格納して、オンデマンドで、ネットワークに接続された複数のデバイスにストリーミングすることができる。しかしながら、インタラクティブなコンテンツをストリーミングすること、例えばアプリケーションのリアルタイムのストリーミングは、ネットワークのレイテンシーが往復でかかってしまうことから、問題を生じる。
以下の記載は、様々な実施形態の実装の例を例示する図面の説明を含む。図面は、限定ではなく例として理解されるべきである。ここで利用される、1以上の「実施形態」についての言及は、特定の特徴、構造、又は特性が、少なくとも1つの実装例に含まれることとして理解されたい。したがって、「1つの実施形態」又は「別の実施形態」という言い回しが利用されている場合、これらはそれぞれが、様々な実施形態及び実装例のことを示しており、必ずしも全てが同じ実施形態のことを示しているわけではない。しかし、必ずしもこれらが相互排他的であるわけでもない。
データセンタに備えられたサーバを利用してバイナリトランスレーションされたアプリケーションの、クラウドベースのサービス配信を提供するシステムの実施形態のブロック図である。
X86ベースのサーバを利用するARM ISAアプリケーションのためのクラウドベースの配信システムの実施形態のシーケンス図である。
或る実施形態におけるターゲット命令セットへのソース命令セットのバイナリトランスレーションを示すブロック図である。
或る実施形態における、複数のコア、統合されたグラフィック及びメモリコントローラ、及び、トランスレーション専用論理を有するプロセッサのブロック図である。
X86 CPUベースのサーバにおけるQoSベースのバイナリトランスレーション及び実行ストリーミングの方法の実施形態の概略を示す。
ARM ISAバイナリトランスレーションのための、優先レベルベースの加速を利用するサーバ側の処理の実施形態のフロー図である。
或る実施形態における、グラフィックプロセッサ加速を利用する処理のフロー図である。
コンピュータアーキテクチャの例のブロック図である。 コンピュータアーキテクチャの例のブロック図である。 コンピュータアーキテクチャの例のブロック図である。 コンピュータアーキテクチャの例のブロック図である。
図面の説明を含む具体的な詳細及び実装例の説明を後述するが、図面は後述する実施形態の一部又は全て、及び、ここで提示する発明の思想の他の可能性のある実施形態又は実装例を説明している場合もある。実施形態の概略を以下に示し、その後で、より詳しい説明を図面を参照しながら行う。
リアルタイムアプリケーションストリーミングに、非ネイティブ命令セットアーキテクチャにコンパイルされたアプリケーションバイナリのリアルタイムアプリケーションストリーミングを組み合わせることは、ネットワークのレイテンシーと実行のオーバヘッドとによって実装が難しい。ここで説明する、アプリケーションのサービス品質(QoS)基準ベースのサーバ側のバイナリトランスレーション実行は、分散されたトランスレーション及び実行を利用して、仮想化された実行環境又はネイティブの実行環境のいずれかで、複数のサーバに実行される。トランスレーションされたアプリケーションは、出力表示データを生成するよう実行され、出力表示データは、ビデオストリーミングに適したメディアフォーマットに符号化され、ビデオストリームは、ネットワークを介してクライアントデバイスに配信される。
一実施形態では、1以上のグラフィックプロセッサが、アプリケーション出力のレンダリングを加速することにより、サーバのセントラルプロセッサを補助する。或る実施形態は、QoS基準を利用して、加速されたグラフィックレンダリングを利用するアプリケーション又はアプリケーションタイプを決定する。一実施形態では、メディア符号器、例えば、グラフィックプロセッサの固定機能メディア符号器、が、アプリケーション出力フレームの符号化を加速化する。一実施形態では、計算リソースに制約がある場合、1以上のサーバの1以上のセントラルプロセッサが、バイナリトランスレーションのための分散型計算を実行し、サーバの1以上のグラフィックプロセッサが、補助的な処理機能を提供する。
図1は、データセンタに備えられたサーバを利用してバイナリトランスレーションされたアプリケーションの、クラウドベースのサービス配信を提供するシステムの実施形態のブロック図である。図1では、X86ベースのサーバを利用したARM ISAアプリケーション配信が示されているが、実施形態はそれに限定はされず、様々な実施形態を、アプリケーションサービスを分散型のコンピューティング環境に提供する任意のバイナリトランスレーション又はエミュレーション環境に利用することができる。一実施形態では、データセンター100が、ARM ISAアプリケーションのクライアントデバイスのエンドポイント175(例えば、スマートフォン、タブレット、ラップトップ、パーソナルコンピュータ、及び、インテリジェントデバイス)への分散型の(例えばクラウドベースの)配信を提供する。クライアントエンドポイントのアプリケーションは、少なくとも部分的に、分散型のコンピューティング環境で実行され、アプリケーション出力が、クライアントエンドポイントにストリーミングされる。ユーザ体験の品質は、QoS基準を利用して維持されることで、アプリケーションストリーミングの認知されるレイテンシーを最小限に抑え、クライアントデバイスに対して合意されているサービスのレベルを満たす。広範に分散された計算リソースは、並列に働き、バイナリトランスレーション及び実行を行い、アプリケーション出力を、限定された計算リソースをもつクライアントに配信する。
図1に示すように、実施形態は、複数のX86中央処理装置(CPU)ベースのサーバプラットフォーム102を、データセンタ100内に備えている。ARM ISAアプリケーションバイナリApp1−aは、仮想マシン(VM)環境のX86アプリケーションバイナリApp1−bにトランスレーションされる。複数のVMが各サーバ(例えばVM1 104からVMn 105)上で実行されて、ARM ISAアプリケーションバイナリをX86アプリケーションバイナリにトランスレーションする。或る実施形態は、X86サーバを利用して、トランスレーションされたアプリケーションバイナリを実行して、アプリケーション出力の各フレームについては、レンダラー108が、出力フレームを生成する。或る実施形態では、メディア符号器を利用して、出力フレームを符号化した後で、符号化された出力フレームをネットワークインタフェース112から、インターネット150等の相互接続されたネットワークを介して送信する。ARM ISAベースのクライアントデバイス等のクライアントデバイス175又はX86ベースのクライアントデバイス179は、これらサービスを利用して、分散型のネットワークの処理能力を利用して、アプリケーションを実行することができる。非ネイティブのバイナリをQoS基準を利用して高速にトランスレーション又はエミュレーションすることで、遠隔アプリケーションストリーミングを、ローカル実行に合致したレイテンシーが生じるクライアントデバイスに配信することができるようになる。
レイテンシーを最小限にするために、アプリケーションストリーミングシステムは、優先度に基づくトランスレーションを含む様々なQoS基準を利用する。優先度に基づくトランスレーションは、トランスレーションリソースをスケジュールして、優先度に従って(in a prioritized manner)、様々なアプリケーションをトランスレーション及び実行するのに用いられる複数のVMに対して実行時間を提供するのに用いられる。優先度に基づくトランスレーションによって、往復レイテンシーが最小限に抑えられ、これにより、クライアントデバイスにおけるユーザ体験を維持しつつ、遠隔アプリケーション実行及びストリーミングが可能となる。優先度に基づくトランスレーションの一部として、別個のQoSハードウェア属性をトランスレータコードに対して利用して、サーバプラットフォーム102の様々なプロセッサエレメントが、実行中にバイナリトランスレーション命令を認識して優先させるようにすることで、例えば、トランスレーション又はエミュレーションが、より高いアクセス優先度で実行されるようにする。高いアクセス優先度の命令は、システムリソースに対して、より大きなアクセス権を有する。例えば、プロセッサキャッシュではトランスレーションコードが優先され、トランスレーションのための命令及びメモリキューが、サーバで実行されている他のソフトウェアに対して高いキャッシュ優先度を有する。
QoSに関して更に考慮すべき点は、エミュレーションされるクライアントデバイスの表示解像度である。また別の重要なQoS基準として、ARMアプリケーション(例えばApp1−a、App2−a)をエミュレーション及びレンダリングするサーバの観点から考慮すべきクライアントエンドポイントの解像度がある。各VMがレンダリングするフレームバッファの表示サイズは、ターゲットとなるクライアントエンドポイントの解像度に基づいて設定可能である。QoS処理の一部として、データセンタ100とクライアントデバイス175との間の様々なネットワークレイテンシーをクエリして、往復転送時間(round-trip transit times)を決定してよい。利用可能な実行容量及びネットワークレイテンシーに基づいて、それぞれ異なる出力解像度を、それぞれ異なる状況にあるクライアントデバイスに配信することができ、それぞれ異なるフレームバッファサイズを持つ、それぞれ異なるVMを利用することができる。一実施形態では、VMがコンテンツを配信する際の元となる、フレームバッファサイズのセットに対して各VMを設定することができる。
QoSに関して更に考慮すべき点は、クライアントデバイスの地理的位置である。クライアントエンドポイントとサーバとの間の距離は、サーバが実行及び符号化処理中に提供する、クライアントデバイスエンドポイントに途切れない配信を行うためのパフォーマンスのレベルに影響する。一実施形態では、複数の地理的領域にサービス提供するために複数のデータセンタを利用して、往復レイテンシーを最小限に抑える。
QoSに関して更に考慮すべき点は、サーバがエミュレーションするアプリケーションタイプである。サーバ102は、複雑なグラフィックをもつゲームアプリケーションを加速化するために、グラフィック処理リソースを利用する。グラフィックプロセッサは、各フレームのレンダリングを加速化して、フレームが、高いレベルのユーザ体験を維持し、ストリーミングフレームレートについてのサービスレベルの合意を満たすのに十分なレートで符号化され、クライアントデバイスに配信されるようにする。グラフィック集約度の低いオフィスアプリケーション又はゲーム等の他のアプリケーションは、分散型の処理環境の計算リソースを用いてレンダリングされる。加えて、コンピュータ支援設計(CAD)アプリケーション等のアプリケーションも、幾何学的に複雑な設計をレンダリングするときにグラフィックプロセッサ加速を利用する。
QoSに関して更に考慮すべき点は、クライアントデバイスのメディア復号化機能セットである。様々なクライアントデバイス175の1つ(例えばARM ISAクライアントデバイス177、及び、X86ISAクライアントデバイス179)の、符号化されたストリームを復号化する機能によって、サーバ102上の、エミュレーションされたARMアプリケーション出力を符号化するために利用される、サーバ側のアルゴリズムが決定される。例えば、クライアントデバイス175が、一定のメディアタイプ(例えばH.264)の加速化されたメディア復号化のためにメディア復号器ハードウェアを利用することができる場合には、サーバ102は、クライアントデバイスが受付可能なメディアタイプを利用してアプリケーション出力を符号化する。クライアントデバイス175が、加速化されたメディア復号化を実行できない場合には、サーバは、クライアントデバイスがクライアントデバイス175上でアプリケーションプロセッサを利用して復号化できるメディアフォーマットを利用してアプリケーション出力を符号化する。
図2は、X86ベースのサーバを利用するARM ISAアプリケーションのためのクラウドベースの配信システムの実施形態のシーケンス図である。一実施形態では、クライアントデバイス202、例えば図1のクライアントデバイス175が、アプリケーションを実行せよとの要求212をクラウドベースのアプリケーションサービスを送信する。クライアントデバイスは、サーバにアプリケーションを提供することができ、又は、アプリケーションは、アプリケーションサービスの分散型実行環境に連結された分散型格納環境に格納することができる。要求は、サーバスケジューラ204に到着し、要求を処理するためのサービスレベルに関する合意(SLA)の期限切れ日が、サーバスケジューラ204が、クライアントデバイス202に関するQoS基準を見直した後で、決定される。サーバスケジューラ204は、利用可能な実行リソースをもつサーバ206を選択し、要求をサーバ206にディスパッチする214。図2のサーバ206は、図1のX86 CPUベースのサーバプラットフォーム102の一実施形態である。一実施形態では、サーバは、ネイティブ命令セット実行時間ではなく、エミュレーションされた実行時間の形で、利用可能な実行時間をサーバスケジューラに報告して、サーバスケジューラ204に、ARM ISAアプリケーションの観点からジョブをスケジュールさせる。
サーバ206が要求214をサーバスケジューラから受信した場合には、サーバは、受領確認226をサーバスケジューラ204に送信して、要求が受け付けられ、SLAタイムフレーム内で実行されることを示す。サーバ206がSLA期限切れの前に要求に応じたサービスを提供することができない場合には、サーバスケジューラは、要求を割り当て直し、又は、該サーバのために更なる計算リソースをプロビジョンすることができる。サーバ206は、図1の複数のVM(例えばVM1 104からVMn 106)のうちの1つの実施形態である、仮想マシン208等の仮想マシン環境を利用して、様々なアプリケーション及びクライアントデバイス(例えばクライアントデバイス202)のためにバイナリトランスレーションを行う。様々なVMは、複数のクライアントデバイスの特徴に基づいて設定することができ、実行リソースは、実行期限に間に合わせるためにVM間に分散される。サーバ206の或る実施形態では、利用可能な仮想マシンのリストを見直し、仮想マシン208へのアプリケーション要求をディスパッチする216。
サーバ206への要求214が仮想マシン208にディスパッチされると216、トランスレーション処理218をアプリケーションに行い、トランスレーションされたアプリケーション228をサーバ上のメモリに生成する。一実施形態では、トランスレーションされたアプリケーションが、サーバ206内に備えられている、又は、データセンタ100内の他のサーバで利用可能な、サーバ206が利用可能な複数のプロセッサを利用して、サーバ206でネイティブに実行される。一実施形態では、サーバ上の1以上のプロセッサが、アプリケーションバイナリにISAエミュレーション環境を提示する、命令セットエミュレーションソフトウェアを実行する。一実施形態では、バイナリトランスレーション及び命令セットエミュレーションの両方が利用可能であり、或る実施形態は、いずれかの方法を実行可能な仮想マシンを配備することができる。動的バイナリトランスレーションを利用して良好に実行されることが分かっているタスク又はアプリケーションは、バイナリトランスレーションを実行可能な仮想マシンに割り当てられる。エミュレーション環境で良好に実行されることが分かっているタスク又はアプリケーションは、サーバにネイティブではないバイナリのための命令セットエミュレーションを利用する仮想マシンに割り当てられる。一実施形態では、要求されたARM ISAアプリケーションと同じ機能を提供する、許容できるX86 ISAに類似したプログラムの代替リストである。例えば、サーバ又は仮想マシンのネイティブ命令セットで利用可能なバイナリをもつユーティリティ又はライブラリが、トランスペアレントに代替される。
アプリケーションの各出力フレームを表示するために、仮想マシンにネイティブに又は仮想マシン内に、サーバ206に出力フレームをレンダリングして符号化して、出力フレームを、クライアントデバイス202の復号化機能に基づいて符号化する。例えば、第1の出力フレーム236がクライアントデバイスに送信され、復号化されて、クライアントデバイスのディスプレイに表示される。サーバ206は、次に、第2の出力フレーム246を送信し、クライアントデバイス202が自身のディスプレイを更新したとき、第1の出力フレーム236と連続して表示させる。サーバ206は、計算リソースをアプリケーションと仮想マシンとの間で移行させることができ、各アプリケーションフレームを適時レンダリング、符号化、及び、配信することができるQoS基準の利用によりスムーズなアプリケーション体験を提供するのに十分なレートでクライアント202に出力フレームを提供する。制御入力222は、ユーザが示すとクライアントデバイスからサーバに配信され、制御入力222は、サーバで実行されているアプリケーションに配信され、サーバは、出力フレームN296がクライアントデバイスに配信されると、制御入力222に呼応する。
図3は、或る実施形態におけるターゲット命令セットへのソース命令セットのバイナリトランスレーションを示すブロック図である。或る実施形態は、バイナリ変換を、ソフトウェア、ファームウェア、及び、ハードウェアの組み合わせを利用して実装し、トランスレーション及び変換専用プロセッサ命令を利用して、変換及びトランスレーションの具体的な側面を加速化する。非X86からX86へのトランスレーション及びエミュレーションが例示されているが、実施形態はこれに限定はされない。ネイティブに実行された命令については、高レベル言語302のプログラムが、x86コンパイラ304を用いてコンパイルされ、X86命令セットを実行することができる少なくとも1つのプロセッサコア314をもつプロセッサがネイティブに実行可能なx86バイナリコード306を生成する。少なくとも1つのx86命令セットコア314をもつプロセッサは、少なくとも1つのX86命令セットコアをもつインテル社製プロセッサと実質的に同じ機能を実行することができる任意のプロセッサを表している。プロセッサ314は、インテル社製のX86命令セットコア又はアプリケーションのオブジェクトコードバージョン又はインテル社製プロセッサ上で実行することを対象としている他のソフトウェアの命令セットの実質的な部分を互換性を持って実行し、又は、処理する。
X86コンパイラ308は、追加のリンク処理があってもなくても、少なくとも1つのx86命令セットコア314を持つプロセッサ上で実行することができるx86バイナリコード310(例えばオブジェクトコード)を生成することができるコンパイラを表す。同様に、高レベル言語302のプログラムが、代わりの命令セットコンパイラ304を利用してコンパイルされて、代わりの命令セットバイナリコード306を生成するとき、該バイナリは、プロセッサによって、該代わりの命令セット316を用いてネイティブに実行可能である。例えば、非X86コアを持つプロセッサが、カリフォルニア州SunnyvaleのMIPS Technologies社のMIPS命令セットを実行する、又は、カリフォルニア州SunnyvaleのARM Holdings社のARM命令セットを実行する、プロセッサを含む。命令変換器312は、非X86バイナリコード306を、X86命令セットコア314等のプロセッサがネイティブに実行可能なコード、に変換する。
或る実施形態は、命令変換器312と協働して、ハードウェア313を利用して、命令変換加速化を行う。命令変換アクセラレータ313は、仮想化及びトランスレーションタスクのために、サーバチップセットとプロセッサベースの加速化とを含む。例えば、X86 ISA拡張及び高度化が含められることで、32ビット及び64ビットの実行モードを含むX86プロセッサの或る実施形態のARM ISAトランスレーションが加速化される。X86命令セット拡張は、ARM v8命令セットの条件文(conditonal)を含むARM ISA専用条件文(ARM ISA specific conditional)を処理する命令を含む。
更なる命令セット拡張は、非ネイティブ命令セットからトランスレーションされた命令を、より容易に実行するX86命令の別の変形例を提供する。例えば、更なるX86命令は、トランスレーションされるARM ISA命令がメモリ参照を行っていること、整数演算を算術論理ユニット(ALU)で行っていること、浮動小数点演算を浮動小数点ユニット(FPU)で行っていること、を示すために利用可能である。ソフトウェア、ファームウェア、及び、ハードウェアの組合せにより、命令変換器312及び命令変換アクセラレータ313は、X86命令セットプロセッサ又はコア314を持つプロセッサその他の電子機器に、非X86バイナリコード306を実行させる。
図4は、或る実施形態における、複数のコア、統合されたグラフィック及びメモリコントローラ、及び、トランスレーション専用論理を有するプロセッサ400のブロック図である。プロセッサ400は、第1のコア402AからN個のコア402Nまでの複数のコアを含む。さらに、システムエージェント410、1以上のバスコントローラユニットのセット416、及び、システムエージェントユニット410内に1以上の統合されたグラフィック及びメモリコントローラユニットのセット414が存在している。加えて、専用トランスレーション専用論理408が、非X86命令セットからのバイナリトランスレーション又はエミュレーションを加速化するために存在している。
プロセッサ400の様々な実施形態が、リアルタイムのバイナリトランスレーション、実行、及び、ストリーミングをクライアントデバイスに提供するよう設計されたサーバ内での利用に適しており、一方で、QoS基準を利用することで、サービス及び品質レベルについて合意された範囲でアプリケーション配信をストリーミングすることができる、汎用プロセッサコアとして設定されている。グラフィック及びメモリコントローラユニット414は、グラフィックを多用する演算(graphically intesive operations)であるとQoS基準が決定するもののためのレンダリングを加速化する1以上のグラフィックエンジンを含む。サーバ上のグラフィックエンジンが十分利用されていない場合、グラフィックエンジンはGPGPU(汎用グラフィック処理ユニット)の機能を提供して、プロセッサ400上で命令を実行しているアプリケーション又は仮想マシンに補助的な実行リソースを提供する。一実施形態では、プロセッサ400は、サーバで実行されている仮想マシンに大量の計算リソースを提供するべく、高いスループットの多くの集積コア(MIC)コプロセッサ(30個以上のコアを含む)である、又は、これを利用する。プロセッサ400の1以上のコンポーネントは、1以上の基板の一部であってもよいし、及び/又は、例えばBiCMOS、CMOS、又はNMOS等の多くのプロセス法のいずれかを利用して1以上の基板に実装されてもよい。
メモリ階層は、コア内の1以上のレベルのキャッシュ、1セットの又は1以上の共用キャッシュユニット406、及び、統合されたグラフィック及びメモリコントローラユニットのセット414に連結された外部メモリ(不図示)を含む。該1セットの共用キャッシュユニット406は、1以上の中間レベルのキャッシュを含む(例えば、レベル2(L2)及びレベル3(L3)キャッシュ)。一実施形態では、リングベースのインターコネクトユニット412が、トランスレーション論理408、該1セットの共用キャッシュユニット406、及び、統合されたグラフィック及びメモリコントローラユニット414を含むシステムエージェントユニット410をインターコネクトする。一実施形態では、1以上のキャッシュユニット406とコア402−A−Nとの間でコヒレンシーを維持する。
幾つかの実施形態では、コア402A−Nの1以上が、マルチスレッディングを行うことが可能である。システムエージェント410は、コア402A−Nの間の調整を行い、実行させるコンポーネントを含む。システムエージェントユニット410は、例えば、電力制御ユニット(PCU)及び表示ユニットを含んでよい。PCUは、コア402A−N及び統合されたグラフィック論理408の電力状態を調整するために必要な論理及びコンポーネントであってよく、又はこれらを含んでよい。表示ユニットは、1以上の外部接続されたディスプレイを駆動するためのものである。
コア402A−Nは、アーキテクチャ命令セットの観点から均質であっても異質であってもよい、つまり、コア402A−Nのうち2以上が、同じ命令セットを実行可能であってよく、他のものが、命令セットのサブセットのみ、又は異なる命令セットを実行可能であってよい。一実施形態では、1以上のコア402A−Nが、標準的なX86命令セットを実行し、1以上の更なるコアが、トランスレーション専用論理408を活用する拡張X86命令セットを実行する。
図5は、X86 CPUベースのサーバにおけるQoSベースのバイナリトランスレーション及び実行ストリーミングの方法の実施形態の概略を示す。一実施形態では、クラウドベースのアプリケーションストリーミングサービスが、ブロック502に示すように、ネットワーク経由で、ARM ISAアプリケーションを実行せよとの要求を受信する。ブロック504で、サーバスケジューラが、QoS基準を見直して、基準に基づいてサーバにアプリケーションを割り当てる。例えば、サーバスケジューラは、計算及びグラフィックの集約度に基づいて要求優先度にアクセスすることができ、十分な実行容量をもつサーバに要求を割り当てることができる。サーバスケジューラの或る実施形態では、可能な場合、同じサーバに同じアプリケーションのための連続した要求を割り当てて、サーバが、トランスレーションされたアプリケーションをアプリケーションキャッシュから、又は前にトランスレーションされたアプリケーションを取得することができるようにすることで、サーバは、同じアプリケーションバイナリのトランスレーションが繰り返されないようにする。或る実施形態では、さらに、要求されているARM ISAアプリケーションと同じ機能を提供する、許容できるX86 ISAに類似したプログラムのための代替リストも維持する。許容できるX86 ISAに類似したプログラムが、ネイティブに又は前に実行したトランスレーションによって、利用可能な場合には、サーバは、X86に類似したプログラムをARM ISAプログラムとトランスペアレントに代替する。
ブロック506で、サーバは、サーバの仮想マシンのセットで実行されている仮想サーバのセットを見直して、タスクのQoS基準と相関性のある利用可能な仮想マシンに、トランスレーションタスクを割り当てるが、ここで利用可能な仮想マシンとは、適切なフレームバッファサイズをもつVM,又は、適切な量の利用可能なグラフィックコントローラ実行リソースをもつVM等である。ブロック508で、ARM ISAアプリケーションバイナリを、割り当てられた仮想マシン内でトランスレーションする。プロセッサは、トランスレーションソフトウェア及び仮想マシンが利用できるARM ISAトランスレーション専用の命令を提供する。実施形態は、他のコードよりも高い優先度でトランスレーション命令を実行することができ、これにより、トランスレーション命令及びデータに、トランスレーションソフトウェアを実行するために利用される様々なプロセッサで実行されている他のタスクよりも高いキャッシュ優先度を与えることができる。
ブロック510に示すように、トランスレーションされたアプリケーションは、サーバ上で実行されて、該アプリケーションのための表示出力を生成する。クライアントデバイスのユーザが提供する入力データ又は制御入力は、サーバ上で実行されているアプリケーションに配信されることで、クライアントデバイスのユーザは、実行されているアプリケーションを、あたかもアプリケーションがクライアントデバイスで実行されているかのように制御することができる。出力の各フレームは、サーバでレンダリングされ、ブロック512で、出力がメディアフォーマットに符号化され、ネットワークを介してクライアントデバイスに送信される(ブロック514に示す)。実行、符号化、及び送信は、クライアントデバイスの表示解像度、サーバとクライアントデバイスとの間のネットワークの往復レイテンシー、及び、遠隔実行されているアプリケーションタイプ等のQoS基準によって統括される。一実施形態では、サーバは、グラフィックを多用する演算についてグラフィックプロセッサ加速化を利用する。サーバ上の1以上のグラフィックプロセッサは、タイムスライスされることができ、これにより、サーバ上で実行されている各仮想マシンには、実行の優先度に基づいて特定の量のグラフィックプロセッサ実行時間が与えられる。一実施形態では、サーバは、汎用計算機能を持つグラフィックプロセッサを利用して、グラフィックプロセッサに、サーバの様々なプロセッサ及びサーバに連結された様々な分散されているプロセッサを補助するために、補助的な計算リソースを提供させることができる。
図6は、ARM ISAバイナリトランスレーションのための、優先レベルベースの加速を利用するサーバ側の処理の実施形態のフロー図である。ブロック602に示すように、或る実施形態は、サーバとクライアントデバイスとの間のレイテンシー、及び、アプリケーションのサービスレベルに関する合意(SLA)期限に基づいて、アプリケーションの優先度を決定する。品質の高いサービスを維持するために、合意されたサービスのレベルは、遠隔のアプリケーション実行のためにサーバによって提供される。クライアントデバイスは、合意された期間内に、遠隔の実行要求に対して応答することを予期しており、期限までの残り時間は、トランスレーションの実行優先度に関する通知である。例えば、スケジューリングの遅延によって、アプリケーションのトランスレーションについて窓が少なくなった場合、トランスレーションタスクに高い優先度を与え、更なる計算リソースをトランスレーションタスクに与えることで、トランスレーションタスクを加速化する。
ブロック602に示すように、アプリケーションの優先度を決定することと平行して、或る実施形態では、ブロック604で、潜在的な仮想マシン(VM)の割り当てのリストを生成する。潜在的な割り当ては、クライアントデバイスの特徴及びアプリケーションタイプを含むQoS基準に基づいている。潜在的な割り当てのリストは、クライアントデバイスの表示解像度に準拠したフレームバッファ構成をもつVM、又は、アプリケーションがグラフィックを多用するものである場合には、利用可能なグラフィックプロセッサ実行リソースを十分もつVMを含む。ブロック606で、利用可能な実行リソースに基づいて、潜在的なVMのリストから、仮想マシンを選択して、アプリケーションバイナリをVMに割り当てる。VMは次に、ブロック608に示すように、バイナリトランスレーションを行う。
一実施形態では、高い優先レベルをもつ仮想マシンでバイナリトランスレーションを加速化するために優先度執行メカニズムが用いられる。例えば、あるトランスレーションプロセスの期限に近づいている場合、サーバは、より大きな実行リソースをトランスレーションVMに加えることによって、トランスレーションプロセスを加速化することができる。サーバハードウェアに統合されたレジスタビット、ハードウェアタイマ、及び制御論理は、VM実行を管理して、高い優先度のタスクを行うVMに、より大きな実行リソースを提供するために利用される。
図7は、或る実施形態における、グラフィックプロセッサ加速を利用する処理のフロー図である。QoSベースのバイナリトランスレーション及びアプリケーションストリーミングの実施形態は、ブロック702で、トランスレーションされたアプリケーションのQoS基準を見直すことから開始される。例えば、デバイス表示解像度及びアプリケーションタイプを含むQoS基準は、アプリケーションに存在するグラフィック複雑度の指標である。もしもブロック704で、該アプリケーションが高いグラフィック負荷をもつと決定された場合、ブロック706に示すように、サーバはアプリケーションを実行して、グラフィックプロセッサ加速を用いてフレーム出力をレンダリングする。例えば、HD解像度(例えば1280x720, 1920x1080など)で実行されているゲームアプリケーションは、アプリケーションの出力フレームをレンダリングするためにグラフィックプロセッサを利用する。QoS基準が、汎用プロセッサコアを用いてSLA期間内にアプリケーションを実行できると示している場合には、ブロック708に示すように、1以上のCPUコアを利用してアプリケーションの出力フレームの実行及びレンダリングを行う。スプレッドシート、又は、その他のオフィスアプリケーション等のユーティリティアプリケーションは、グラフィック加速化を利用せずに実行できる可能性が高い。しかし、或る実施形態では、例えば、ネットワークレイテンシーが、加速化されたレンダリングを利用しないとSLA期限に間に合わせることが難しいと示している場合に、レンダリングを加速化するためにグラフィックプロセッサを利用することができる。
レンダリングの後で、ブロック710に示すように、出力フレームをメディアフォーマットに符号化する。或る実施形態では、クライアントデバイスがハードウェア加速化された復号をサポートしているかを含むクライアントデバイスメディア復号機能のセットに基づいて、利用するメディアフォーマットを決定する。例えば、クライアントデバイスがH.264フォーマットで符号化されたメディアのハードウェア加速された復号をサポートしている場合には、サーバは、出力フレームをクライアントデバイスに送信する前に該出力フレームをH.264フォーマットに符号化することができる。一実施形態では、サーバは、クライアントデバイスに送信する前に、出力フレームを符号化するために専用のメディア符号化ハードウェアを利用する。一実施形態では、グラフィックプロセッサは、メディア符号化ハードウェアを含む。一実施形態では、プロセッサは、メディア符号化を加速化するための命令をサポートしている。
図8から図11は、コンピュータアーキテクチャの例のブロック図である。ラップトップ、デスクトップ、手持ち型のPC、スマートフォン、エンジニアリングワークステーション、サーバ、ネットワークデバイス、ネットワークハブ、スイッチ、エンベデッドプロセッサ、デジタル信号プロセッサ(DSP)、グラフィックデバイス、ビデオゲームデバイス、セットトップボックス、マイクロコントローラ、セルフォン、ポータブルメディアプレーヤ、手持ち型デバイス、及び、様々なその他の電子デバイス等の分野で知られている他のシステム設計及び設定もまた適している。
図8は、或る実施形態におけるシステム800のブロック図である。システム800は、コントローラハブ820に連結された1以上のプロセッサ810、815を含む。一実施形態では、コントローラハブ820は、グラフィックメモリコントローラハブ(GMCH)890及び入出力ハブ(IOH)850を含み、GMCH890は、メモリ840及びコプロセッサ845に連結されたメモリコントローラ及びグラフィックコントローラを含み、IOH850は、入出力(I/O)デバイス860をGMCH890に連結させる。あるいは、メモリコントローラ及びグラフィックコントローラの一方又は両方が、プロセッサ内に統合されていてもよく(ここで説明されるように)、メモリ840及びコプロセッサ845が、プロセッサ810に連結され、コントローラハブ820が、IOH850とともに1つのチップにあってもよい。
更なるプロセッサ815の任意の性質は、図8では波線で示されている。各プロセッサ810及び815は、ここで説明されるプロセッシングコアの1以上を含み、これらはそれぞれが、プロセッサ400のあるバージョンである。
一実施形態では、メモリ840は、ダイナミックランダムアクセスメモリ(RAM)である。一実施形態では、840は相変化メモリ(PCM)又はPCMとDRAMとの組合せである。少なくとも1つの実施形態では、コントローラハブ820は、プロセッサ810、815と、リングインタフェース等のマルチドロップバス、フロントサイドバス(FSB)、QuickPath Interconnect(QPI)等のポイントツーポイントインタフェース、又は類似した接続895等を介して通信する。
一実施形態では、コプロセッサ845が、例えば高スループットMICプロセッサ、ネットワーク又は通信プロセッサ、圧縮エンジン、グラフィックプロセッサ、GPGPU、エンベデッドプロセッサ等の専用プロセッサである。一実施形態では、コントローラハブ820が、統合されたグラフィックアクセラレータを含んでよい。一実施形態では、ここで説明するように、メモリトランスレーション又はエミュレーション加速化ハードウェアが存在している。
物理リソース810、815の間には、アーキテクチャ、マイクロアーキテクチャ、熱、電力消費特性等を含む、利点の測定基準の範囲(spectrum of metrics of merit)において様々な差異がある。
図9は、或る実施形態における、より具体的な例におけるサーバシステム900のブロック図である。図9に示すように、マルチプロセッサシステム900は、ポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト950を介して連結された第1のプロセッサ970と第2のプロセッサ980とを含む。プロセッサ970及び980のそれぞれは、プロセッサ400の変形例である。一実施形態では、プロセッサ970及び980が、それぞれ、プロセッサ810及び815であり、コプロセッサ938は、コプロセッサ845である。別の実施形態では、プロセッサ970及び980は、それぞれ、プロセッサ810及びコプロセッサ845である。
プロセッサ970及び980は、それぞれ、統合されたメモリコントローラ(IMC)ユニット972及び982である。プロセッサ970はさらに、そのバスコントローラユニットの一部として、ポイントツーポイント(P−P)インタフェース976及び978を含み、第2のプロセッサ980が、P−Pインタフェース986及び988を含む。プロセッサ970、980は、ポイントツーポイント(P−P)インタフェース950を介して、P−Pインタフェース回路978、988を利用して情報を交換する。図9に示すように、IMC972及び982は、プロセッサをそれぞれ、メモリに連結し、メモリとはつまり、それぞれのプロセッサにローカルに接続されたメインメモリの一部であってよいメモリ932及び934である。
プロセッサ970、980はそれぞれ、ポイントツーポイントインタフェース回路976、994、986、998を利用して、個々のP−Pインタフェース952、954を介して、チップセット990と情報を交換する。チップセット990は、任意で、高パフォーマンスインタフェース939を介してコプロセッサ938と情報を交換する。一実施形態では、コプロセッサ938は、例えば高スループットMICプロセッサ、ネットワーク又は通信プロセッサ、圧縮エンジン、グラフィックプロセッサ、GPGPU、エンベデッドプロセッサ、バイナリトランスレーションアクセラレータ等の専用プロセッサである。
共用キャッシュ(図示せず)が、いずれかのプロセッサ内に含まれていてもよいし、又は両方のプロセッサの外部に含まれいるがP−Pインターコネクトを介してこれらプロセッサと接続されていてもよく、あるプロセッサが低電力モードに置かれると、いずれか又は両方のプロセッサのローカルキャッシュ情報が共用キャッシュに格納されるようにしてよい。一実施形態では、900の共用キャッシュが、ここで説明したトランスレーション加速化機能及び仮想化加速化機能に優先度を与えてよい。
チップセット990は、インタフェース996を介して第1のバス916に連結される。一実施形態では、第1のバス916が、PCI(Peripheral Component Interconnect)バス、又はPCI Expressバス又は別の第3世代I/Oインターコネクトバス等のバスであるが、これらは限定ではない例である。
図9に示すように、様々なI/Oデバイス914は、第1のバス916を第2のバス920に連結するバスブリッジ918もであるが、第1のバス916に連結されてよい。一実施形態では、コプロセッサ、高スループットMICプロセッサ、GPGPU、アクセラレータ(例えばグラフィックアクセラレータ又はデジタル信号処理(DSP)ユニット)、フィールドプログラマブルゲートアレイ(FPGA)、又はその他のプロセッサ等の1以上の更なるプロセッサ915が、第1のバス916に連結される。一実施形態では、第2のバス920が、低ピンカウント(LPC)バスである。一実施形態では、キーボード及び/又はマウス922、通信デバイス927、及び、命令/コード及びデータ930を含んでよいディスクドライブ又はその他の大容量記憶装置等の記憶ユニット928を含む様々なデバイスを、第2のバス920に連結することができる。更に、オーディオI/O924を、第2のバス920に連結することができる。他のアーキテクチャも可能である。例えば、図9のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバス、リングバス、又は他のこれらのようなアーキテクチャを実装してもよい。
図10は、或る実施形態における第2のより具体的な例のシステム1000のブロック図である。図9及び図10において類似したエレメントには、同様の参照番号を付し、図9の一定の側面を、図10では省くことで、図10の他の側面を曖昧にしないようにしている。
図10は、一実施形態では、プロセッサ970、980が、集積メモリとI/O制御論理(「CL」)972及び982をそれぞれ含む。従って、CL972、982は、統合されたメモリコントローラユニットを含み、I/O制御論理を含む。図10は、メモリ932、934がCL972、982に連結されているのみならず、I/Oデバイス1014も、制御論理972、982に連結されていると示している。レガシーI/Oデバイス1015がチップセット990に連結されている。
図11は、或る実施形態におけるSoC1100のブロック図である。図4と同様のエレメントには同様の参照番号を付している。加えて、波線のボックスは、より高度なSoCの、任意の特徴である。一実施形態では、ここに記載するクライアントデバイスが、SoC1100の変形例を含む。図11では、インターコネクトユニット(1又は複数)1102が、1以上のコア402A−N及び共用キャッシュユニット406のセットを含むアプリケーションプロセッサ1110と、システムエージェントユニット410と、バスコントローラユニット(1又は複数)416と、集積メモリコントローラユニット(1又は複数)414と、バイナリトランスレーション加速化論理を含む1セット又は1以上のコプロセッサ1120と、統合されたグラフィック論理、画像プロセッサ、オーディオプロセッサ、及びビデオプロセッサと、スタティックランダムアクセスメモリ(SRAM)ユニット1130と、ダイレクトメモリアクセス(DMA)ユニット1132と、1以上の外部ディスプレイに連結される表示ユニット1140とに連結されている。一実施形態では、コプロセッサ(1又は複数)1120が、例えばネットワーク又は通信プロセッサ、圧縮エンジン、GPGPU、高スループットMICプロセッサ、エンベデッドプロセッサ等の専用プロセッサを含む。一実施形態では、ビデオプロセッサ、統合されたグラフィック論理、又はGPGPUが、1以上のコア402Nに含まれている。
ここで開示するメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの実装方法の組合せで実装されてよい。実施形態は、少なくとも1つのプロセッサ、記憶システム(揮発性及び不揮発性メモリ及び/又は記憶エレメントを含む)、少なくとも1つの入力デバイス、及び、少なくとも1つの出力デバイスを含むプログラム可能なシステムで実行されるコンピュータプログラム又はプログラムコードとして実装されてよい。
図9に示すコード930等のプログラムコードは、ここで記載する機能を実行して、出力情報を生成するための命令を入力するために適用されてよい。出力情報は、既知の方法で、1以上の出力デバイスに適用されてよい。この用途のために、処理システムは、デジタル信号プロセッサ(DSP)、マイクロコントローラ、特定用途向け集積回路(ASIC)、又はマイクロプロセッサ等のプロセッサを有する任意のシステムを含む。
プログラムコードは、処理システムと通信するために、高レベルの手続き型又はオブジェクト指向型のプログラミング言語で実装されてよい。プログラムコードは、所望の場合、アセンブリ又は機械語で実装することもできる。実際、ここで記載するメカニズムの範囲は、いずれか特定のプログラミング言語に限定はされない。いずれの場合においても、言語は、コンパイラ型又はインタープリタ型言語であってよい。
少なくとも1つの実施形態の1以上の態様を、プロセッサ内の様々な論理を表すマシン可読媒体に格納される代表命令で実装してもよく、これは、マシンにより読み出されると、マシンに、ここで記載した技術を実行するための論理を作成させる。これらの「IPコア」として知られている表現は、有形の永続性のマシン可読媒体に格納され、様々な顧客又は製造所に供給され、実際に論理又はプロセッサを作成する製造マシンにロードされてよい。
これらマシン可読格納媒体は、これらに限定はされないが、マシン又はデバイスで製造又は形成される永続性の有形の物品構成が含まれてよく、これには、ハードディスク等の記憶媒体、フロッピー(登録商標)ディスク、光学ディスク、コンパクトディスク読み出し専用メモリ(CD−ROMs)、書き換え可能CD(CD−RW)、及び光磁気ディスク等の他のタイプのディスク、読み出し専用メモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)等のランダムアクセスメモリ(RAM)、消去可能かつプログラム可能な読み出し専用メモリ(EPROM)、フラッシュメモリ、電気的に消去可能かつプログラム可能な読み出し専用メモリ(EEPROM)、相変化メモリ(PCM)、磁気又は光学カード等の半導体デバイス、または、電子命令を格納するのに適したその他のタイプの媒体を含んでよい。
従って、実施形態はさらに、ここで説明した構造、回路、装置、プロセッサ、及び/又はシステム特徴を定義するハードウェア記述言語(HDL)等の、命令を含む、又は、設計データを含む永続性の有形のマシン可読媒体も含んでよい。これらの実施形態も、プログラムプロダクトと称されてよい。
ここで記載したことの他に、開示された実施形態及び実装形態には、その範囲を逸脱せずとも様々な変形例が想到されよう。従って、ここに記載した図及び例は、例として捉えられるべきであり、限定的に捉えられるべきではない。実施形態の範囲は、以下の請求項を参照することによってのみ限定されるべきである。
本開示に基づけば、以下の各項目もまた開示される。
(項目1)
セントラルプロセッサとネットワークインタフェースとを有するサーバと、
ディスプレイと、クライアントプロセッサと、クライアントネットワークインタフェースとを有するクライアントデバイスと
を備えるシステムであって、
前記セントラルプロセッサは第1の命令セットを有し、
前記サーバは、第2の命令セットを有するバイナリを、前記第1の命令セットを有するトランスレーションされた実行可能コードにトランスレーションし、
前記トランスレーションは、サービスの品質基準(QoS基準)を利用して実行され、
前記サーバは、前記トランスレーションされたバイナリを実行して、レンダリングされた出力のフレームを生成し、前記ネットワークインタフェースを介して前記レンダリングされた出力のフレームを送信し、
前記クライアントデバイスは、前記クライアントネットワークインタフェースを介して前記サーバから、前記レンダリングされた出力のフレームを受信し、前記クライアントプロセッサを利用して、前記ディスプレイに、前記レンダリングされた出力のフレームを表示する、バイナリトランスレーションシステム。
(項目2)
前記QoS基準は、優先度に基づく加速化と複数のクライアントパラメータとを含み、前記複数のクライアントパラメータは、クライアントデバイスの解像度、クライアントデバイスの位置、クライアントアプリケーションタイプ、及び、クライアント復号化機能のセットを含む、項目1に記載のバイナリトランスレーションシステム。
(項目3)
前記レンダリングされた出力のフレームは、前記サーバが前記レンダリングされた出力のフレームを送信する前に、メディアフォーマットに符号化される、項目1または2に記載のバイナリトランスレーションシステム。
(項目4)
前記サーバは、前記レンダリングされた出力のフレームを生成するためのグラフィックプロセッサを更に有する、項目3に記載のバイナリトランスレーションシステム。
(項目5)
前記グラフィックプロセッサは、前記レンダリングされた出力のフレームを前記メディアフォーマットに符号化する、項目4に記載のバイナリトランスレーションシステム。
(項目6)
前記クライアントデバイスの前記クライアントプロセッサは、前記第1の命令セットを有する、項目1から5の何れか1項に記載のバイナリトランスレーションシステム。
(項目7)
前記クライアントデバイスの前記クライアントプロセッサは、前記第2の命令セットを有する、項目1から6の何れか1項に記載のバイナリトランスレーションシステム。
(項目8)
前記サーバは、仮想マシン内で前記バイナリトランスレーションを実行する、項目2に記載のバイナリトランスレーションシステム。
(項目9)
前記仮想マシンは、前記クライアントデバイス用に調整される、項目8に記載のバイナリトランスレーションシステム。
(項目10)
仮想マシンの実行リソースは、前記QoS基準を介して調整される、項目9に記載のバイナリトランスレーションシステム。
(項目11)
優先度に基づく加速化は、バイナリトランスレーション優先度を設定するべく、前記サーバと前記クライアントデバイスとの間のネットワークレイテンシーを要因として用いる、項目10に記載のバイナリトランスレーションシステム。
(項目12)
前記第1の命令セットは、x86命令セットであり、前記第2の命令セットは、ARM命令セットである、項目11に記載のバイナリトランスレーションシステム。
(項目13)
サーバであって、
命令を格納する永続性のマシン可読格納媒体と、
前記命令を実行するためのプロセッサと
を備え、
前記命令は、
第2の命令セットを有するバイナリを、第1の命令セットを有するトランスレーションされたバイナリにトランスレーションする処理を実行させ、前記トランスレーションは、サービスの品質基準(QoS基準)の適用を受け、前記バイナリをトランスレーションする前記命令は、前記プロセッサのキャッシュにおける優先度をもち、
前記命令は、前記トランスレーションされたバイナリを実行して、出力フレームをレンダリングする処理を実行させ、
前記サーバは、更に、
前記プロセッサに連結され、前記出力フレームをメディアフォーマットに符号化するメディア符号器と、
前記メディア符号器と前記プロセッサとに連結され、前記符号化された出力フレームをクライアントデバイスに送信するネットワークデバイスとを備える、サーバ。
(項目14)
前記バイナリをトランスレーションする処理は、仮想マシン内で実行される、項目13に記載のサーバ。
(項目15)
前記QoS基準は、優先度に基づく加速化と複数のクライアントパラメータとを含み、前記複数のクライアントパラメータは、クライアントデバイスの解像度、クライアントデバイスの位置、クライアントアプリケーションタイプ、及び、クライアント復号化機能のセットを含む、項目14に記載のサーバ。
(項目16)
前記QoS基準に基づいて仮想マシンの実行優先度を設定するスケジューラを更に備える、項目15に記載のサーバ。
(項目17)
前記プロセッサに連結され、前記出力フレームをレンダリングするよう前記プロセッサを補助するグラフィックアクセラレータを更に備える、項目16に記載のサーバ。
(項目18)
前記グラフィックアクセラレータは、前記出力フレームをメディアフォーマットに符号化するよう前記メディア符号器を補助する、項目17に記載のサーバ。
(項目19)
コンピュータに、
第2の命令セットを有するバイナリを、第1の命令セットを有するトランスレーションされたバイナリにトランスレーションする手順であって、前記トランスレーションは、サービスの品質基準(QoS基準)の適用を受け、前記トランスレーションは、仮想マシン内で実行され、前記仮想マシンは、前記QoS基準によって調整され、前記QoS基準は、優先度に基づく加速化と複数のクライアントパラメータとを含み、前記複数のクライアントパラメータは、クライアントデバイスの解像度、クライアントデバイスの位置、クライアントアプリケーションタイプ、及び、クライアント復号化機能のセットを含む、手順と、
前記トランスレーションされたバイナリを実行して、出力フレームをレンダリングする手順であって、前記実行は、グラフィックの加速化が前記QoS基準によって示されている場合、グラフィックプロセッサにより補助される、手順と、
前記出力フレームをメディアフォーマットに符号化する手順であって、前記メディアフォーマットが、前記クライアント復号化機能のセットによって選択される、手順と、
前記出力フレームをネットワークデバイスを介してクライアントデバイスに送信する手順と
を実行させるための、プログラム。
(項目20)
更に、
第1のサーバの第1の仮想マシンで第1のバイナリをトランスレーションする手順と、
第2のサーバの第2の仮想マシンで第2のバイナリをトランスレーションする手順と、
前記第1のサーバで第3のバイナリを実行する手順と
を実行させ、
前記第1のサーバは、前記第3のバイナリを前にトランスレーションしており、
前記第3のバイナリは、前記実行する手順の前に、トランスレーションしなおされる、項目19に記載のプログラム。

Claims (18)

  1. セントラルプロセッサとネットワークインタフェースとを有するサーバと、
    ディスプレイと、クライアントプロセッサと、クライアントネットワークインタフェースとを有するクライアントデバイスと
    を備えるシステムであって、
    前記セントラルプロセッサは第1の命令セットを有し、
    前記サーバは、第2の命令セットを有するバイナリを、前記第1の命令セットを有するトランスレーションされた実行可能コードにトランスレーションし、
    前記トランスレーションは、サービスの品質基準(QoS基準)を利用して実行され、前記QoS基準は、バイナリトランスレーション優先度を設定するべく、前記サーバと前記クライアントデバイスとの間のネットワークレイテンシーを要因として用いる優先度に基づく加速化と、複数のクライアントパラメータとを含み、前記複数のクライアントパラメータは、クライアントデバイスの解像度、クライアントデバイスの位置、クライアントアプリケーションタイプ、及び、クライアント復号化機能のセットを含み、
    前記サーバは、前記トランスレーションされたバイナリを実行して、レンダリングされた出力のフレームを生成し、前記ネットワークインタフェースを介して前記レンダリングされた出力のフレームを送信し、
    前記クライアントデバイスは、前記クライアントネットワークインタフェースを介して前記サーバから、前記レンダリングされた出力のフレームを受信し、前記クライアントプロセッサを利用して、前記ディスプレイに、前記レンダリングされた出力のフレームを表示する、バイナリトランスレーションシステム。
  2. 前記レンダリングされた出力のフレームは、前記サーバが前記レンダリングされた出力のフレームを送信する前に、メディアフォーマットに符号化される、請求項に記載のバイナリトランスレーションシステム。
  3. 前記サーバは、前記レンダリングされた出力のフレームを生成するためのグラフィックプロセッサを更に有する、請求項に記載のバイナリトランスレーションシステム。
  4. 前記グラフィックプロセッサは、前記レンダリングされた出力のフレームを前記メディアフォーマットに符号化する、請求項に記載のバイナリトランスレーションシステム。
  5. 前記クライアントデバイスの前記クライアントプロセッサは、前記第1の命令セットを有する、請求項1からの何れか1項に記載のバイナリトランスレーションシステム。
  6. 前記クライアントデバイスの前記クライアントプロセッサは、前記第2の命令セットを有する、請求項1からの何れか1項に記載のバイナリトランスレーションシステム。
  7. 前記サーバは、仮想マシン内で前記バイナリトランスレーションを実行する、請求項1から6の何れか一項に記載のバイナリトランスレーションシステム。
  8. 前記仮想マシンは、前記クライアントデバイス用に調整される、請求項に記載のバイナリトランスレーションシステム。
  9. 仮想マシンの実行リソースは、前記QoS基準を介して調整される、請求項に記載のバイナリトランスレーションシステム。
  10. 前記第1の命令セットは、x86命令セットであり、前記第2の命令セットは、ARM命令セットである、請求項1から9の何れか一項に記載のバイナリトランスレーションシステム。
  11. サーバであって、
    命令を格納する永続性のマシン可読格納媒体と、
    前記命令を実行するためのプロセッサと
    を備え、
    前記命令は、
    第2の命令セットを有するバイナリを、第1の命令セットを有するトランスレーションされたバイナリにトランスレーションする処理を実行させ、前記トランスレーションは、サービスの品質基準(QoS基準)の適用を受け、前記バイナリをトランスレーションする前記命令は、前記プロセッサのキャッシュにおける優先度をもち、
    前記命令は、前記トランスレーションされたバイナリを実行して、出力フレームをレンダリングする処理を実行させ、
    前記サーバは、更に、
    前記プロセッサに連結され、前記出力フレームをメディアフォーマットに符号化するメディア符号器と、
    前記メディア符号器と前記プロセッサとに連結され、前記符号化された出力フレームをクライアントデバイスに送信するネットワークデバイスとを備える、サーバ。
  12. 前記バイナリをトランスレーションする処理は、仮想マシン内で実行される、請求項11に記載のサーバ。
  13. 前記QoS基準は、優先度に基づく加速化と複数のクライアントパラメータとを含み、前記複数のクライアントパラメータは、クライアントデバイスの解像度、クライアントデバイスの位置、クライアントアプリケーションタイプ、及び、クライアント復号化機能のセットを含む、請求項12に記載のサーバ。
  14. 前記QoS基準に基づいて仮想マシンの実行優先度を設定するスケジューラを更に備える、請求項13に記載のサーバ。
  15. 前記プロセッサに連結され、前記出力フレームをレンダリングするよう前記プロセッサを補助するグラフィックアクセラレータを更に備える、請求項11から14の何れか一項に記載のサーバ。
  16. 前記グラフィックアクセラレータは、前記出力フレームをメディアフォーマットに符号化するよう前記メディア符号器を補助する、請求項15に記載のサーバ。
  17. コンピュータに、
    第2の命令セットを有するバイナリを、第1の命令セットを有するトランスレーションされたバイナリにトランスレーションする手順であって、前記トランスレーションは、サービスの品質基準(QoS基準)の適用を受け、前記トランスレーションは、仮想マシン内で実行され、前記仮想マシンは、前記QoS基準によって調整され、前記QoS基準は、バイナリトランスレーション優先度を設定するべく、サーバとクライアントデバイスとの間のネットワークレイテンシーを要因として用いる優先度に基づく加速化と複数のクライアントパラメータとを含み、前記複数のクライアントパラメータは、クライアントデバイスの解像度、クライアントデバイスの位置、クライアントアプリケーションタイプ、及び、クライアント復号化機能のセットを含む、手順と、
    前記トランスレーションされたバイナリを実行して、出力フレームをレンダリングする手順であって、前記実行は、グラフィックの加速化が前記QoS基準によって示されている場合、グラフィックプロセッサにより補助される、手順と、
    前記出力フレームをメディアフォーマットに符号化する手順であって、前記メディアフォーマットが、前記クライアント復号化機能のセットによって選択される、手順と、
    前記出力フレームをネットワークデバイスを介してクライアントデバイスに送信する手順と
    を実行させるための、プログラム。
  18. 更に、
    第1のサーバの第1の仮想マシンで第1のバイナリをトランスレーションする手順と、
    第2のサーバの第2の仮想マシンで第2のバイナリをトランスレーションする手順と、
    前記第1のサーバで第3のバイナリを実行する手順と
    を実行させ、
    前記第1のサーバは、前記第3のバイナリを前にトランスレーションしており、
    前記第3のバイナリは、前記実行する手順の前に、トランスレーションしなおされる、請求項17に記載のプログラム。
JP2014030489A 2013-03-15 2014-02-20 Qosベースのバイナリトランスレーション及びアプリケーションストリーミング Expired - Fee Related JP5873513B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/844,086 US9525586B2 (en) 2013-03-15 2013-03-15 QoS based binary translation and application streaming
US13/844,086 2013-03-15

Publications (2)

Publication Number Publication Date
JP2014182798A JP2014182798A (ja) 2014-09-29
JP5873513B2 true JP5873513B2 (ja) 2016-03-01

Family

ID=50554839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014030489A Expired - Fee Related JP5873513B2 (ja) 2013-03-15 2014-02-20 Qosベースのバイナリトランスレーション及びアプリケーションストリーミング

Country Status (7)

Country Link
US (2) US9525586B2 (ja)
JP (1) JP5873513B2 (ja)
KR (1) KR101625276B1 (ja)
CN (1) CN104050007B (ja)
BR (1) BR102014006116A2 (ja)
DE (1) DE102014003855B4 (ja)
GB (2) GB2514222B (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9525586B2 (en) * 2013-03-15 2016-12-20 Intel Corporation QoS based binary translation and application streaming
KR102067276B1 (ko) * 2013-05-30 2020-02-11 삼성전자주식회사 어플리케이션 실행 방법 및 그 장치
US20150220442A1 (en) * 2014-02-04 2015-08-06 Bluedata Software, Inc. Prioritizing shared memory based on quality of service
WO2016162720A1 (en) * 2015-04-10 2016-10-13 Google Inc. Binary translation into native client
US10554713B2 (en) * 2015-06-19 2020-02-04 Microsoft Technology Licensing, Llc Low latency application streaming using temporal frame transformation
US10148538B2 (en) * 2016-01-21 2018-12-04 Fujitsu Limited Distributed controllers
US10169082B2 (en) * 2016-04-27 2019-01-01 International Business Machines Corporation Accessing data in accordance with an execution deadline
US10073687B2 (en) * 2016-08-25 2018-09-11 American Megatrends, Inc. System and method for cross-building and maximizing performance of non-native applications using host resources
CN110121698A (zh) * 2016-12-31 2019-08-13 英特尔公司 用于异构计算的系统、方法和装置
US10409614B2 (en) 2017-04-24 2019-09-10 Intel Corporation Instructions having support for floating point and integer data types in the same register
US10474458B2 (en) * 2017-04-28 2019-11-12 Intel Corporation Instructions and logic to perform floating-point and integer operations for machine learning
TWI658365B (zh) * 2017-10-30 2019-05-01 緯創資通股份有限公司 連接模組
US11012694B2 (en) * 2018-05-01 2021-05-18 Nvidia Corporation Dynamically shifting video rendering tasks between a server and a client
CN109471630B (zh) * 2018-11-16 2021-11-16 广州虎牙科技有限公司 一种应用处理方法和设备
US10990280B1 (en) * 2018-12-03 2021-04-27 Parallels International Gmbh Smart keyboard
US11061871B2 (en) * 2019-03-15 2021-07-13 Google Llc Data placement for a distributed database
US11934342B2 (en) 2019-03-15 2024-03-19 Intel Corporation Assistance for hardware prefetch in cache access
WO2020190814A1 (en) 2019-03-15 2020-09-24 Intel Corporation Graphics processors and graphics processing units having dot product accumulate instruction for hybrid floating point format
CN112534405A (zh) 2019-03-15 2021-03-19 英特尔公司 用于脉动阵列上的块稀疏操作的架构
US11349875B2 (en) * 2019-08-21 2022-05-31 International Business Machines Corporation Dynamic balancing of security rules execution in a database protection system
US11295507B2 (en) * 2020-02-04 2022-04-05 Advanced Micro Devices, Inc. Spatial partitioning in a multi-tenancy graphics processing unit
EP4068104A1 (en) * 2021-03-30 2022-10-05 ABB Schweiz AG Method for controlling an opc ua server, opc ua server, control circuit, computer program, and computer-readable medium

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6091897A (en) 1996-01-29 2000-07-18 Digital Equipment Corporation Fast translation and execution of a computer program on a non-native architecture by use of background translator
EP0991994A4 (en) 1997-06-25 2001-11-28 Transmeta Corp IMPROVED MICROPROCESSOR
US7275246B1 (en) * 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US7661107B1 (en) * 2000-01-18 2010-02-09 Advanced Micro Devices, Inc. Method and apparatus for dynamic allocation of processing resources
US7058074B2 (en) * 2000-11-01 2006-06-06 Texas Instruments Incorporated Unified channel access for supporting quality of service (QoS) in a local area network
US7640153B2 (en) * 2001-06-04 2009-12-29 Hewlett-Packard Development Company, L.P. Networked client-server architecture for transparently transforming and executing applications
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
US20080318685A9 (en) * 2005-09-12 2008-12-25 Oak Steven R Controlled access layer system and method
KR100451554B1 (ko) * 2002-08-30 2004-10-08 삼성전자주식회사 멀티미디어용 시스템온칩 프로세서
TW590982B (en) * 2002-09-27 2004-06-11 Agnitio Science & Technology I Micro-fluid driving device
JP4052163B2 (ja) * 2003-03-28 2008-02-27 日本電気株式会社 携帯電話機、その表示制御方法及びプログラム
US7590982B1 (en) * 2003-12-17 2009-09-15 Vmware, Inc. System and method for virtualizing processor and interrupt priorities
WO2006020834A1 (en) * 2004-08-11 2006-02-23 Vidiator Enterprises, Inc. Multicast and broadcast streaming method and system
US20070006178A1 (en) * 2005-05-12 2007-01-04 Microsoft Corporation Function-level just-in-time translation engine with multiple pass optimization
CA2643300C (en) * 2006-02-21 2011-11-08 Purdue Research Foundation Trans-fused chromenoisoquinolines, synthesis and methods for use
US8259706B2 (en) * 2006-02-28 2012-09-04 Genband Us Llc Multistage prioritization of packets within a session over internet protocol (SOIP) network
CN101114039A (zh) * 2006-07-28 2008-01-30 鸿富锦精密工业(深圳)有限公司 镜头模块
US7596781B2 (en) * 2006-10-16 2009-09-29 International Business Machines Corporation Register-based instruction optimization for facilitating efficient emulation of an instruction stream
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
KR101446939B1 (ko) 2007-03-30 2014-10-06 삼성전자주식회사 원격 제어 장치 및 그 제어 방법
US8327354B1 (en) 2007-05-31 2012-12-04 Hewlett-Packard Development Company, L.P. Virtualization with binary translation
US7712092B2 (en) * 2007-10-01 2010-05-04 The Board Of Trustees Of The Leland Stanford Junior University Binary translation using peephole translation rules
US8560634B2 (en) * 2007-10-17 2013-10-15 Dispersive Networks, Inc. Apparatus, systems and methods utilizing dispersive networking
US8390636B1 (en) * 2007-11-12 2013-03-05 Google Inc. Graphics display coordination
US9904969B1 (en) * 2007-11-23 2018-02-27 PME IP Pty Ltd Multi-user multi-GPU render server apparatus and methods
WO2009157795A1 (en) * 2008-06-27 2009-12-30 Intel Corporation Static code recognition for binary translation
US9602864B2 (en) * 2009-06-08 2017-03-21 Time Warner Cable Enterprises Llc Media bridge apparatus and methods
US9420055B2 (en) * 2010-05-13 2016-08-16 Futurewei Technologies, Inc. System, apparatus for content delivery for internet traffic and methods thereof
US20120079095A1 (en) * 2010-09-24 2012-03-29 Amazon Technologies, Inc. Cloud-based device synchronization
US9069622B2 (en) 2010-09-30 2015-06-30 Microsoft Technology Licensing, Llc Techniques for load balancing GPU enabled virtual machines
US8984519B2 (en) * 2010-11-17 2015-03-17 Nec Laboratories America, Inc. Scheduler and resource manager for coprocessor-based heterogeneous clusters
US8880851B2 (en) * 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
TWI451268B (zh) * 2011-11-08 2014-09-01 Inst Information Industry 提供虛擬桌面之雲端系統、於虛擬桌面播放多媒體之方法以及其電腦可讀取記錄媒體
KR20130078630A (ko) * 2011-12-30 2013-07-10 한국전자통신연구원 유무선 융합 mac 어댑터 및 이를 이용한 프레임 전송 방법
TWI482525B (zh) * 2012-03-06 2015-04-21 Ind Tech Res Inst 分散式應用平台系統及其傳輸訊息的服務品質控制方法
US9081896B1 (en) * 2012-03-21 2015-07-14 Amazon Technologies, Inc. Generating a replacement binary for emulation of an application
JP6095091B2 (ja) * 2012-03-24 2017-03-15 日本電気株式会社 情報処理システム、情報処理方法、情報処理装置およびその制御方法と制御プログラム
US9141362B2 (en) * 2012-09-27 2015-09-22 Intel Corporation Method and apparatus to schedule store instructions across atomic regions in binary translation
US9525586B2 (en) * 2013-03-15 2016-12-20 Intel Corporation QoS based binary translation and application streaming
US9998483B2 (en) * 2015-12-22 2018-06-12 Mcafee, Llc Service assurance and security of computing systems using fingerprinting

Also Published As

Publication number Publication date
KR101625276B1 (ko) 2016-05-27
KR20140113513A (ko) 2014-09-24
GB2550007A (en) 2017-11-08
US10469557B2 (en) 2019-11-05
DE102014003855B4 (de) 2019-12-19
GB2550007B (en) 2017-12-13
DE102014003855A1 (de) 2014-09-18
US9525586B2 (en) 2016-12-20
GB2514222B (en) 2017-01-25
GB201404232D0 (en) 2014-04-23
US20140281008A1 (en) 2014-09-18
US20170237797A1 (en) 2017-08-17
JP2014182798A (ja) 2014-09-29
CN104050007B (zh) 2019-12-03
GB201621335D0 (en) 2017-02-01
BR102014006116A2 (pt) 2015-11-03
GB2514222A (en) 2014-11-19
CN104050007A (zh) 2014-09-17

Similar Documents

Publication Publication Date Title
JP5873513B2 (ja) Qosベースのバイナリトランスレーション及びアプリケーションストリーミング
JP6381734B2 (ja) グラフィックス計算プロセススケジューリング
JP6140190B2 (ja) 準仮想化された高性能コンピューティングおよびgdi高速化
US20180293965A1 (en) Apparatus and method for remote display and content protection in a virtualized graphics processing environment
US8522254B2 (en) Programmable integrated processor blocks
JP6228459B2 (ja) システムコール要求の通信の最適化
CN115016897A (zh) 用于高效图形虚拟化的设备及方法
JP6086868B2 (ja) ユーザモードからのグラフィックス処理ディスパッチ
US11957974B2 (en) System architecture for cloud gaming
JP2013546097A (ja) グラフィックス処理計算リソースのアクセシビリティ
US11436696B2 (en) Apparatus and method for provisioning virtualized multi-tile graphics processing hardware
TWI706373B (zh) 用於型樣驅動自適應虛擬繪圖處理單元的裝置、方法及系統
US10410311B2 (en) Method and apparatus for efficient submission of workload to a high performance graphics sub-system
JP2021086612A (ja) フレキシブルなキャッシュ割り当て技術の優先度ベースのキャッシュラインエビクションアルゴリズム
Su Architecting the future through heterogeneous computing
US20230091205A1 (en) Memory side prefetch architecture for improved memory bandwidth
WO2015154226A1 (zh) 一种虚拟化环境中的数据通信的方法、装置及处理器
CN117597664A (zh) 用于多租户系统中的加速器和设备的动态能力发现和执行
JP2022151572A (ja) メタデータ要求をスケジューリングするためのシステム、装置、および方法
WO2022218510A1 (en) Method for scheduling software tasks on at least one heterogeneous processing system using a backend computer system, wherein each processing system is situated in a respective vehicle of a vehicle fleet, and control framework for at least one vehicle
Holenderski et al. Memory management for multimedia quality of service in resource constrained embedded systems
Härtig et al. As Time Goes By: Research on L4-Based Real-Time Systems

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150310

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150609

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150710

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150910

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160115

R150 Certificate of patent or registration of utility model

Ref document number: 5873513

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees