JP5817052B2 - 情報処理装置、制御方法、プログラム、及び記録媒体 - Google Patents

情報処理装置、制御方法、プログラム、及び記録媒体 Download PDF

Info

Publication number
JP5817052B2
JP5817052B2 JP2014531001A JP2014531001A JP5817052B2 JP 5817052 B2 JP5817052 B2 JP 5817052B2 JP 2014531001 A JP2014531001 A JP 2014531001A JP 2014531001 A JP2014531001 A JP 2014531001A JP 5817052 B2 JP5817052 B2 JP 5817052B2
Authority
JP
Japan
Prior art keywords
expansion
data
instruction
processing apparatus
information processing
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.)
Active
Application number
JP2014531001A
Other languages
English (en)
Other versions
JP2015515651A (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.)
Shinra Technologies Inc
Original Assignee
Shinra Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shinra Technologies Inc filed Critical Shinra Technologies Inc
Publication of JP2015515651A publication Critical patent/JP2015515651A/ja
Application granted granted Critical
Publication of JP5817052B2 publication Critical patent/JP5817052B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Image Generation (AREA)

Description

本発明は、情報処理装置、制御方法、プログラム、及び記録媒体に関し、特に描画に用いるデータの展開領域への展開を効率化する技術に関する。
近年、インターネット等のネットワークを利用する情報通信技術の発達に伴い、ネットワークを介した顧客へのサービス提供が様々な分野でなされている。こうしたサービスの1つに、所謂クラウド型ゲーミングのような、サーバにおいて描画された画面をネットワークを介してクライアント機器に提供するものがある。該サービスでは、サーバは例えばクライアント機器においてなされた操作の情報を取得し、操作に対応して変更された画面を描画してクライアント機器に提供することで、クライアント機器における画面表示を更新することができる。つまり、例えばクラウド型ゲーミングでは、ユーザは十分な描画性能を有するクライアント機器を所持していなくとも、十分な描画性能を有する機器と同等のゲームをプレイすることができる。
ところで、ゲームのように操作に応じてリアルタイムに内容が変化するようなコンテンツは、毎フレーム、その画面に係る描画処理を行う必要がある。描画処理は、例えばGPUが、画面に含まれる描画オブジェクトのデータをキャッシュメモリに展開し、所定の演算において該データを使用しながら、演算結果に応じて最終出力である画面のピクセルを順次VRAM上に生成することにより行われる。通常、1つの画面の描画処理では、画面に対応する描画範囲に含まれる描画オブジェクトを順番に選択しながら、キャッシュメモリへの描画オブジェクトのデータの展開、演算、描画の処理が繰り返し行われていくことになる。
一方、例えば3Dシーン等が描画されるコンテンツでは、描画対象であるシーン内に同一あるいは一部のデータ(モデルデータ等)が共通する描画オブジェクトが複数配置される場合がある。このような場合、展開に係る処理リソースを低減するためにキャッシュメモリに展開されたデータを再利用することが好ましい。また1つのフレーム内に限らず、連続するフレームにおいても同様の描画オブジェクトを使用する機会はあるため、例えば家庭用ゲーム機やPC等で実行されるゲームでは必要なデータの全てを予め全てキャッシュメモリに展開した上で、フレームの描画処理が実行されることもある。
これに対して、クラウド型ゲーミングのように1つのサーバが複数のクライアント機器に対して画面を描画して提供する場合、単純に考えて、1つのクライアント機器に対して割り当てることができるキャッシュメモリは制限される。従って、多数のクライアント機器が同時接続しうるクラウド型ゲーミングのようなサービスでは、家庭用ゲーム機のように必要なデータの全てを予めキャッシュメモリに展開することは現実的ではなく、データ展開の効率化が要求される。さらに、複数のクライアント機器に対して同一のコンテンツを提供する場合、各クライアント機器でその進行状況は異なるため、各機器について独立したプロセスが実行されることになる。しかし、同一のコンテンツである場合、例えばGUI等の2D表示や操作キャラクタ等の一部の描画オブジェクトは、進行状況に依らず描画されるため、図3に示されるように、サーバのキャッシュメモリ内には同一の描画オブジェクトのデータが複数展開される可能性があった。
本発明はこのような従来技術の課題に鑑みてなされたものである。本発明は、処理に用いるデータの展開領域への展開を効率化する情報処理装置、制御方法、プログラム、及び記録媒体を提供する。
本発明の第1の態様は、予め記憶されたデータの展開要求を含む命令を取得する取得手段と、命令についてハッシュ関数を適用して命令についてのハッシュ値を生成する生成手段と、命令に含まれる展開要求に従って、対応データを読み出して展開領域に展開する展開手段と、展開領域に展開された対応データと命令についてのハッシュ値とを関連付けて管理する管理手段と、を有する情報処理装置を提供する。
本発明の第2の態様は、予め記憶されたデータの展開要求を含む命令を取得する取得工程と、命令についてハッシュ関数を適用して命令についてのハッシュ値を生成する生成工程と、命令に含まれる展開要求に従って、対応データを読み出して展開領域に展開する展開工程と、展開領域に展開された対応データと命令についてのハッシュ値とを関連付けて管理する管理工程と、を有する情報処理装置の制御方法を提供する。
さらに、本発明の特徴は、(添付の図面を参照して)以下の例示的な実施形態の記載により明らかになるだろう。
本発明の実施形態に係る画面提供システムのシステム構成を示した図 本発明の実施形態に係るサーバ100の機能構成を示したブロック図 従来の複数のプロセスによるキャッシュメモリへのデータ展開を説明するための図 本発明の実施形態に係るキャッシュメモリ105へのデータ展開動作を説明するための図 本発明の実施形態に係る管理部107により管理される情報の一般的なアーキテクチャを示した図 本発明の実施形態に係るGPU104で行われる展開処理を例示したフローチャート
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、情報処理装置の一例としての、複数のクライアント機器に提供する画面を並行して描画可能なサーバに、本発明を適用した例を説明する。しかし、本発明は、展開領域にデータを展開し、該展開したデータを用いた処理を繰り返し実行することが可能な任意の機器に適用可能である。即ち、本発明は、描画処理における展開領域へのデータ展開に限らず、任意の処理における展開領域へのデータ展開に適用することができる。
《画面提供システムの構成》
図1は、本発明の実施形態に係る画面提供システムのシステム構成を示した図である。本システムは、クラウド型ゲーミングを実現する。
サーバ100は、クラウド型ゲーミングとしてサービス提供がなされるゲームに係る画面(ゲーム画面)を描画し、これを符号化動画データとしてストリーミング形式でクライアント機器200に出力する。なお、本実施形態ではサーバ100が描画機能を有するものとして説明するが、本発明の実施はこれに限られない。例えばサーバ100から出力された命令に従って、描画処理に特化した外部の描画サーバが画面描画を行い、生成したゲーム画面を出力する態様であってもよい。また、本実施形態では簡単のため、サーバ100に接続するクライアント機器200は、共通して1つのゲームコンテンツを同時に利用することができるものとして説明するが、本発明の実施はこれに限られるものではない。
各クライアント機器200は、サービス提供を受けるためにネットワーク300を介してサーバ100に接続する。クライアント機器200は、PCや据置型ゲーム機に限らず、携帯電話やスマートフォン、携帯型ゲーム機等の移動端末であってもよい。またネットワーク300は、インターネット等の公用の通信網にかぎらず、LANであってもよいし、サーバ100とクライアント機器200とを直接有線/無線で接続する通信態様であってもよい。クライアント機器200は、操作入力インタフェースを備えており、ユーザによりなされた操作入力を示す情報をサーバ100に送信する、あるいは操作入力を示す情報に所定の処理を適用した上でサーバ100に送信する。
サーバ100は、ネットワーク300を介してクライアント機器200から操作入力に係る情報を取得し、描画するフレームについての所定の演算及び描画処理を行ってゲーム画面を生成する。そしてサーバ100は、例えば該画面を動画データに符号化し、対応するクライアント機器200に送信する。クライアント機器200は、該動画データを受信すると復号等の所定の処理を行い、クライアント機器200が有する表示装置あるいはクライアント機器200に接続された表示装置に映像信号を出力して表示させる。このようにすることで、クライアント機器200のユーザに対して、画面提供システムにおけるゲーム画面の提供が実現される。
なお、本実施形態では複数のクライアント機器200が並行してサーバ100に接続し、各々ゲーム画面の提供を受けるものとして説明するが、本発明の実施はこれに限られるものではなく、サーバ100はクライアント機器200と1対1で接続するものであってもよい。
〈サーバ100の機能構成〉
図2は、本発明の実施形態に係るサーバ100の機能構成を示すブロック図である。
CPU101は、サーバ100が有する各ブロックの動作を制御する。具体的にはCPU101は、記録媒体102に記録されているゲームプログラムを読み出し、RAM103に展開して実行することにより各ブロックの動作を制御することができる。
記録媒体102は、HDDや書き換え可能なROM等の不揮発性メモリであってよい。記録媒体102にはクライアント機器200に提供するゲームコンテンツに係るゲームプログラムだけでなく、ゲームプログラムにおいて必要となる各種パラメータが記録される。また記録媒体102には、ゲーム画面の生成において必要となる描画オブジェクトのデータが記録される。描画オブジェクトのデータは、例えばモデルデータやテクスチャデータだけでなく、使用するシェーダ等の描画用プログラム、及び該描画用プログラムで用いられる演算用データ(光源強度等の定数や光源ベクトルや回転マトリクス等の変数など)が含まれていてよい。なお、描画オブジェクトのデータは、モデルデータ、テクスチャデータ、描画用プログラム、及び演算用データを全て有するものである必要はなく、これらのうち少なくともいずれかを有するものであってよい。
RAM103は、揮発性メモリである。RAM103は、ゲームプログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データ等を一時記憶する記憶領域としても用いられる。
GPU104は、CPU101からの指示を受けてゲーム画面の描画処理を行う。具体的にはGPU104は、例えばゲームプログラムの実行時において予め用意されたAPIを利用する描画指示がなされた場合に、ドライバーを介してその指示に対応する描画命令を受ける。本実施形態ではGPU104は、描画に必要なデータを一時的に展開して保持する展開領域であるキャッシュメモリ105を有する。
キャッシュメモリ105への展開は、展開部106により実行される。CPU101から管理部107を介して展開要求を受信すると、展開部106は展開要求に従って、記録媒体102から対応するデータを読み出し、キャッシュメモリ105に展開する。一方で、管理部107は、キャッシュメモリ105に展開されたデータを管理する。GPU104は、描画命令に従い、キャッシュメモリ105に展開されているデータを使用してPUメモリ108にゲーム画面の描画を行う。
なお、本実施形態では簡単のため、複数のクライアント機器200の各々について行われるゲームプログラムにおいて、1つのキャッシュメモリ105を共有するものとして説明するが、キャッシュメモリ105は複数の領域に分離して構成されていてもよい。この場合、例えば管理部107が全ての領域に展開されているデータを管理してもよい。
通信部109は、サーバ100が有する通信インタフェースである。通信部109は、ネットワーク300を介して各クライアント機器200との間でデータの送受信を行うことができる。具体的には通信部109は、各クライアント機器200においてなされた操作入力の情報の受信、あるいはGPUメモリ108に描画されたゲーム画面(本実施形態ではゲーム画面は符号化された映像データである)の対応するクライアント機器200への送信を行う。データの送受信は、所定の通信方式に係るデータ形式への変換や該形式からサーバ100において処理可能な形式への変換等を含む。
《動作概要》
このような構成を有する本実施形態のサーバ100について、複数のクライアント機器200についてのゲームプログラムが並行して実行されている場合の、CPU101が実行する各プログラムに対応するプロセス(クライアントプロセス401)においてなされる展開動作について、図4を用いて説明する。
各クライアントプロセス401が描画命令を発行する場合、該クライアントプロセス401は展開要求を管理部107に出力する。このとき、管理部107は、展開要求により展開する必要があるデータ(以下、対応データ)がキャッシュメモリ105に既に展開されているか否かを判断する。本実施形態では管理部107は、展開要求を示す情報に対し、予め定められたハッシュ関数を適用することで得られたハッシュ値が、既になされた展開要求についてのハッシュ値と同じであるか否かを判断することで、対応データが既にキャッシュメモリ105に展開されているか否かを判断する。管理部107において用いられるハッシュ関数は、同一の内容を有する複数の展開要求の各々に対して適用された場合には同一のハッシュ値を出力し、異なる内容を有する複数の展開要求の各々に対して適用された場合には各々異なるハッシュ値を出力するよう規定された関数である。ハッシュ関数は、例えばCRC32、SHA1、xxhash、Murmurhash3、CityHash等の従来の関数や、これらを改良した関数、あるいは独自の関数が適宜用いられてよい。また、本実施形態ではハッシュ関数は展開要求(即ち展開要求を規定する所定の構造体)に対して適用されるものとして説明するが、本発明の実施はこれに限られるものではない。ハッシュ関数は、展開要求を含む命令(例えば描画命令)全体や、展開に係る具体的な指示の種類を示す情報(例えば、テクスチャデータの変倍命令や抽出命令)と該指示に関するパラメータとの組合せ(構造体の一部の情報)等に対して適用されるものであってもよい。
管理部107は、対応データがキャッシュメモリ105に存在しない場合は展開要求を展開部106に伝送し、対応データを読み出し、キャッシュメモリ105に展開させる。このとき管理部107は、展開された対応データのキャッシュメモリ105上の位置を特定する特定情報を展開部106から受信する。そして管理部107は、図5のように受信した特定情報502に、対応データの展開要求について生成したハッシュ値をハッシュキー501として関連付け、管理する。また管理部107は対応データの特定情報をクライアントプロセス401に返却する。
図5は、管理部107により管理される情報(管理情報)の一般的なアーキテクチャを示している。管理部107は、該データの特定情報502を格納し、各識別子情報アイテムとそれぞれのキー501を関連付ける。キーは、単一のキーが特定情報502の単一のピースを示すように、固有のものである。
一方、管理部107は、対応データが既にキャッシュメモリ105に展開されている場合は、生成したハッシュ値と同一のハッシュ値に関連付けられた対応データの特定情報をクライアントプロセス401に返却する。なお、本実施形態では、画面描画が連続するフレームについて順次行われるため、キャッシュメモリ105は複数のフレームに渡って展開された対応データを保持し、また管理部107は複数のフレームに渡ってハッシュキー501及び特定情報502を保持する。故に、管理部107は、同一のフレームについて生成された命令、あるいは先行するフレームについて生成された命令に含まれる展開要求に従って展開された対応データの特定情報を返す。
このようにすることで、本実施形態のGPU104では、例えば異なるクライアントプロセス401、あるいは同一のクライアントプロセス401において共通のデータを展開する必要がある場合に、既にキャッシュメモリ105に該データが展開されているかを容易に判断することができる。
《展開処理》
次に、このような動作概要を実現するためにGPU104で行われる具体的な展開処理の詳細について、図6のフローチャートを用いて詳細を説明する。なお、本展開処理はGPU104において実行されるクライアントプロセス401のいずれかから管理部107が展開要求の情報を受信した際に開始されるものとして説明する。
ステップ601で、管理部107は、展開要求に基づいてハッシュキーを生成する。展開要求が描画命令に含まれる例では、展開要求はキーを生成するための適切なアルゴリズム(ハッシュ関数)により処理される。改良の特定のモードでは、1つのキーは複数の展開要求について生成される。選択的に、管理部107は、特定のタイプの最も共有可能たり得る展開要求を捕捉するために、展開要求フィルタを有するよう構成されてもよい。このことは、データ共有の原因となりそうもないキーの生成の回避における、効率的な見通しにおいて有用である。
図6に戻り、ステップ602でハッシュキーが生成されると、管理部107は展開要求に対応するデータ(対応データ)がキャッシュメモリ105に既に存在するか否かを判断する。具体的には管理部107は、キャッシュメモリ105に展開しているデータを管理する情報(管理データベース)の中に、同一のハッシュキーが関連付けられた特定情報が存在するか否かに応じて、該判断を行う。同一のキーの存在は、同一の対応データが同一のまたは異なるクライアントプロセスにより既に要求され、キャッシュメモリ105に既に存在していることを意味する。従って、該対応データは再利用可能であり、再度生成する必要がない。管理部107は、キャッシュメモリ105に対応データが既に存在すると判断した場合は処理をステップ603に移し、存在しないと判断した場合は処理をステップ604に移す。
ステップ603で、管理部107は対応データの特定情報をクライアントプロセスに提供する。そして管理部107は展開処理を完了する。これは、管理部107の論理出力を介した、該対応データにアクセス可能な位置のアドレスやポインタ(またはハンドラ)がクライアントプロセスに返却されることによりなされ得る。
キャッシュメモリ105に対応データが存在しないと判断した場合、管理部107はステップ604で、展開要求を展開部106に伝送し、対応データを記録媒体102から読み出し、キャッシュメモリ105に展開させる。展開部106は、対応データの展開が完了すると、該対応データの特定情報を管理部107に伝送する。
ステップ605で、管理部107は展開部106から受信した特定情報を、管理データベースに登録する。登録処理は、要求に関連して計算されたキーと、新たに生成された対応データとをリンクする管理データベースへの新たなエントリの生成を含む。
なお、ステップ604において展開部106が対応データを展開することにより、既にキャッシュメモリ105に展開されたデータと重複する領域を使用することがある。このような場合、該領域に展開されていたデータは、全体的にあるいは部分的に破棄されることになるため、管理部107は該データの管理を管理データベースから解除する必要がある。従って、本ステップにおいて管理部107は、展開部106から受信した特定情報を参照し、対象データが展開されたアドレス範囲と重複する特定情報を有するエントリを削除する処理も行う。
またステップ606で、管理部107は、受信した特定情報を展開要求の情報を送信したクライアントプロセスに提供し、展開処理を完了する。
このように本実施形態のサーバ100では、展開要求に対してハッシュ関数を適用して得られたハッシュ値を用いることで、要求の同一性を容易に判断することができる。また展開要求に従って展開領域に展開したデータに対して、該展開要求に係るハッシュ値を関連付けて管理することで、同一のハッシュ値を示す展開要求があった場合に、展開対象のデータが展開領域内に存在するか否かを容易に判断することができる。
なお、本実施形態ではキャッシュメモリ105に展開されたデータは、展開アドレスが競合する、即ち上書きされない限り存在し続けるものとして説明したが、本発明の実施はこれに限られるものではない。
例えば、キャッシュメモリ105に展開されたとしてもデータを再び利用する機会がないのであれば、該データを管理する必要性は低い。また、再利用価値のないデータを管理することは、同一のデータの存在を判断する際の判断対象数の増加を生じうる。さらに展開されるデータ長が均一でないことから、再利用価値の低いがデータ長の長いデータによって、再利用価値の高いデータが破棄されてしまい、該データを再度展開する必要を生じうる。従って、再利用価値、即ち実際に再利用されるか否かを評価した上で、再利用価値のあるデータを優先的にキャッシュメモリ105に残すように制御し、再利用価値の低いデータは順次破棄するように制御してもよい。
該処理は、例えば管理部107が管理する管理データベースにおいて、各展開データについて使用頻度に相当するカウントをさらに管理するようにすることで実現可能である。具体的には管理部107は、例えば1フレームの描画において展開要求がなされたデータについては要求回数に応じたカウントを加算し、1フレーム中1度も要求がなされなかったデータについては該カウントを減算する。そして、管理部107は、カウントが閾値以下となったデータが存在する場合に該データの管理を外し、対応データの格納に使用されていた領域を新たに展開要求されたデータに対して積極的に割り当てるようにしてもよい。あるいは管理部107は、カウントの数値が上位所定数の順位とならないデータについては管理を外すように制御してもよい。またこのとき、管理部107は、破棄するデータあるいは管理から外したデータを格納していた領域の情報を展開部106に供給し、該領域に優先的に新たなデータの展開を行わせるようにしてもよい。あるいは、カウントが閾値以上のデータが存在する領域の情報を展開部106に供給し、該領域への新たなデータの展開がなされないようにしてもよい。
このようにすることで、再利用価値の高いデータについては優先的に残し、再利用価値の低いデータについては順次破棄することができる。なお、ここでは1フレーム中にカウントの増減算を行うものとして説明したが、これは一例を単に示すものであり、カウントは任意の期間の処理に基づいて増減算されてもよい。
以上説明したように、本実施形態の情報処理装置は、処理に用いるデータの展開領域への展開を効率化することができる。具体的には情報処理装置は、予め記憶されたデータの展開要求を含む命令を取得し、命令についてハッシュ関数を適用して命令についてのハッシュ値を生成する。また情報処理装置は命令に含まれる展開要求に従って展開領域に展開した対応データと、該命令についてのハッシュ値とを関連付けて管理する。
[その他の実施形態]
例示的な実施形態を参照して本発明を説明してきたが、記載した例示的な実施形態に発明が限られるものでないことは理解されよう。以下の特許請求の範囲は、このような変形、等価な構成及び機能の全てを包含するように、広範な解釈を許容されよう。また、本発明に係る情報処理装置及び制御方法は、コンピュータにおいて該手法が実行されるプログラムにより実現可能である。プログラムは、コンピュータ読み取り可能な記録媒体に格納されることで、または電気的な通信回線を介して、提供/配信可能である。
本出願は、その全体がここに参照により援用される、2013年2月6日に出願された米国仮出願第61/761311号の利益を主張するものである。

Claims (20)

  1. 予め記憶されたデータの展開要求を含む命令を取得する取得手段と、
    前記命令についてハッシュ関数を適用して前記命令についてのハッシュ値を生成する生成手段と、
    前記命令に含まれる展開要求に従って、対応データを読み出して展開領域に展開する展開手段と、
    前記展開領域に展開された前記対応データと前記命令についてのハッシュ値とを関連付けて管理する管理手段と、を有する情報処理装置。
  2. 前記展開手段は、前記命令についてのハッシュ値が既に前記展開領域に展開されたデータに関連付けられたハッシュ値と同一である場合に、前記対応データの前記展開領域への展開を行わない請求項1に記載の情報処理装置。
  3. 前記展開領域に展開されたデータは、所定の条件を満たした場合に破棄されるように構成され、
    前記管理手段は、前記命令についてのハッシュ値が既に前記展開領域に展開されたデータに関連付けられたハッシュ値と同一である場合に、該データを前記展開領域に展開されている他のデータよりも破棄されにくいように制御する請求項1または2に記載の情報処理装置。
  4. 前記命令について、該命令に含まれる展開要求に従って前記展開領域に展開された対応データを特定する情報を出力する出力手段をさらに有し、
    前記出力手段は、前記命令についてのハッシュ値が既に前記展開領域に展開されたデータに関連付けられたハッシュ値と同一である場合に、該既に前記展開領域に展開されたデータを特定する情報を出力する請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記命令は、画面描画に際して描画手段に対してなされる命令であり、
    前記命令に含まれる展開要求は、画面描画に用いられるデータの展開を要求するものであり、
    前記出力手段は、前記命令に含まれる展開要求に従って前記展開領域に展開されたデータを特定する情報を前記描画手段に出力する請求項4に記載の情報処理装置。
  6. 画面描画は、連続するフレームについて順次行われるものであり、
    前記展開領域に展開されたデータは、少なくとも複数フレームに渡って保持され、
    前記出力手段は、1つのフレームに係る画面描画に際して、同一のフレームについて先になされた命令あるいは先行するフレームについてなされた命令に含まれる展開要求に従って前記展開領域に展開されたデータを特定する情報を出力する請求項5に記載の情報処理装置。
  7. 前記取得手段は、複数の機器に提供する画面に係る画面描画について前記命令を並行して取得し、
    前記展開手段は、前記複数の機器に提供する画面に係る画面描画についての展開要求に係るデータの展開に前記展開領域を共有し、
    前記出力手段は、1つの機器に提供する画面に係る画面描画に際して、異なる機器に提供する画面に係る画面描画についての前記命令に含まれる展開要求に従って前記展開領域に展開されたデータを特定する情報を出力する請求項5または6に記載の情報処理装置。
  8. 前記ハッシュ関数は、画面描画に係る命令全体、展開要求、及び展開指示の種類を示す情報と該指示に関するパラメータの組合せのいずれかについて適用されることでハッシュ値を生成する関数である請求項5乃至7のいずれか1項に記載の情報処理装置。
  9. 前記画面描画に用いられるデータは、描画オブジェクトのモデルデータ、テクスチャデータ、描画用プログラム、及び描画用プログラムで用いられる演算用データの少なくともいずれかを含む請求項5乃至8のいずれか1項に記載の情報処理装置。
  10. 予め記憶されたデータの展開要求を含む命令を取得する取得工程と、
    前記命令についてハッシュ関数を適用して前記命令についてのハッシュ値を生成する生成工程と、
    前記命令に含まれる展開要求に従って、対応データを読み出して展開領域に展開する展開工程と、
    前記展開領域に展開された前記対応データと前記命令についてのハッシュ値とを関連付けて管理する管理工程と、を有する情報処理装置の制御方法。
  11. 前記命令についてのハッシュ値が既に前記展開領域に展開されたデータに関連付けられたハッシュ値と同一である場合に、前記展開工程において、前記対応データの前記展開領域への展開は行われない請求項10に記載の情報処理装置の制御方法。
  12. 前記展開領域に展開されたデータは、所定の条件を満たした場合に破棄されるように構成され、
    前記命令についてのハッシュ値が既に前記展開領域に展開されたデータに関連付けられたハッシュ値と同一である場合に、前記管理工程において、該データは前記展開領域に展開されている他のデータよりも破棄されにくいように制御される請求項10または11に記載の情報処理装置の制御方法。
  13. 前記命令について、該命令に含まれる展開要求に従って前記展開領域に展開された対応データを特定する情報を出力する出力工程をさらに有し、
    前記出力工程において、前記命令についてのハッシュ値が既に前記展開領域に展開されたデータに関連付けられたハッシュ値と同一である場合に、該既に前記展開領域に展開されたデータを特定する情報が出力される請求項10乃至12のいずれか1項に記載の情報処理装置の制御方法。
  14. 前記命令は、画面描画に際して描画手段に対してなされる命令であり、
    前記命令に含まれる展開要求は、画面描画に用いられるデータの展開を要求するものであり、
    前記出力工程において、前記命令に含まれる展開要求に従って前記展開領域に展開されたデータを特定する情報が前記描画手段に出力される請求項13に記載の情報処理装置の制御方法。
  15. 画面描画は、連続するフレームについて順次行われるものであり、
    前記展開領域に展開されたデータは、少なくとも複数フレームに渡って保持され、
    前記出力工程において、1つのフレームに係る画面描画に際して、同一のフレームについて先になされた命令あるいは先行するフレームについてなされた命令に含まれる展開要求に従って前記展開領域に展開されたデータを特定する情報が出力される請求項14に記載の情報処理装置の制御方法。
  16. 前記取得工程において、複数の機器に提供する画面に係る画面描画について前記命令並行して取得され
    前記展開工程において、前記複数の機器に提供する画面に係る画面描画についての展開要求に係るデータの展開に前記展開領域が共有され、
    前記出力工程において、1つの機器に提供する画面に係る画面描画に際して、異なる機器に提供する画面に係る画面描画についての前記命令に含まれる展開要求に従って前記展開領域に展開されたデータを特定する情報が出力される請求項14または15に記載の情報処理装置の制御方法。
  17. 前記ハッシュ関数は、画面描画に係る命令全体、展開要求、及び展開指示の種類を示す情報と該指示に関するパラメータの組合せのいずれかについて適用されることでハッシュ値を生成する関数である請求項14乃至16のいずれか1項に記載の情報処理装置の制御方法。
  18. 前記画面描画に用いられるデータは、描画オブジェクトのモデルデータ、テクスチャデータ、描画用プログラム、及び描画用プログラムで用いられる演算用データの少なくともいずれかを含む請求項14乃至17のいずれか1項に記載の情報処理装置の制御方法。
  19. コンピュータに、請求項10乃至18のいずれか1項に記載の情報処理装置の制御方法の各工程を実行させるためのプログラム。
  20. コンピュータに、請求項10乃至18のいずれか1項に記載の情報処理装置の制御方法の各工程を実行させるためのプログラムを記録した記録媒体。
JP2014531001A 2013-02-06 2014-01-29 情報処理装置、制御方法、プログラム、及び記録媒体 Active JP5817052B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361761311P 2013-02-06 2013-02-06
US61/761,311 2013-02-06
PCT/JP2014/052591 WO2014123127A1 (en) 2013-02-06 2014-01-29 Image processing apparatus, method of controlling the same, program and storage medium

Publications (2)

Publication Number Publication Date
JP2015515651A JP2015515651A (ja) 2015-05-28
JP5817052B2 true JP5817052B2 (ja) 2015-11-18

Family

ID=51299720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014531001A Active JP5817052B2 (ja) 2013-02-06 2014-01-29 情報処理装置、制御方法、プログラム、及び記録媒体

Country Status (5)

Country Link
US (1) US20150317253A1 (ja)
EP (1) EP2954494A4 (ja)
JP (1) JP5817052B2 (ja)
CA (1) CA2859577A1 (ja)
WO (1) WO2014123127A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6503945B2 (ja) * 2015-07-13 2019-04-24 富士通株式会社 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法
CN106021445B (zh) * 2016-05-16 2019-10-15 努比亚技术有限公司 一种加载缓存数据的方法及装置
CN107679413A (zh) * 2017-09-18 2018-02-09 苏州市卫生计生统计信息中心 一种医疗卫生数据共享系统及数据共享方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3188071B2 (ja) * 1993-10-14 2001-07-16 富士通株式会社 ディスクキャッシュ装置
JP3729064B2 (ja) 2000-11-29 2005-12-21 日本電気株式会社 データ依存関係検出装置
JP3729087B2 (ja) * 2001-05-23 2005-12-21 日本電気株式会社 マルチプロセッサシステム、データ依存投機実行制御装置およびその方法
US20030084249A1 (en) * 2001-10-31 2003-05-01 Johnson David J.C. Preemptive eviction of stale entries is a computer cache by use of age-bits
US6853380B2 (en) * 2002-03-04 2005-02-08 Hewlett-Packard Development Company, L.P. Graphical display system and method
JP4977950B2 (ja) * 2004-02-04 2012-07-18 セイコーエプソン株式会社 マルチ画面映像再生システム、映像再生方法及び表示装置
US7616207B1 (en) * 2005-04-25 2009-11-10 Nvidia Corporation Graphics processing system including at least three bus devices
US7516279B2 (en) * 2006-02-28 2009-04-07 International Business Machines Corporation Method using stream prefetching history to improve data prefetching performance.
CN101299849B (zh) * 2008-04-25 2010-05-12 中兴通讯股份有限公司 一种WiMAX终端及其启动方法
US8161244B2 (en) * 2009-05-13 2012-04-17 Microsoft Corporation Multiple cache directories
US8312471B2 (en) * 2010-04-26 2012-11-13 Vmware, Inc. File system independent content aware cache
US9135181B2 (en) * 2010-10-27 2015-09-15 International Business Machines Corporation Management of cache memory in a flash cache architecture
JP5076132B1 (ja) * 2011-05-25 2012-11-21 株式会社スクウェア・エニックス・ホールディングス 描画制御装置、その制御方法、プログラム、記録媒体、描画サーバ、及び描画システム

Also Published As

Publication number Publication date
JP2015515651A (ja) 2015-05-28
US20150317253A1 (en) 2015-11-05
EP2954494A1 (en) 2015-12-16
EP2954494A4 (en) 2016-07-27
CA2859577A1 (en) 2014-08-14
WO2014123127A1 (en) 2014-08-14

Similar Documents

Publication Publication Date Title
US11813521B2 (en) Memory management in gaming rendering
JP5559445B1 (ja) 描画システム、制御方法、プログラム、及び記録媒体
JP5977023B2 (ja) 描画システム、プログラム、及び記録媒体
CA2803956C (en) Moving image distribution server, moving image reproduction apparatus, control method, program, and recording medium
JP5973409B2 (ja) プログラム、記録媒体、情報処理装置及び制御方法
US11395027B2 (en) Methods and systems for request-based graphics rendering at a multi-access server
WO2022048097A1 (zh) 一种基于多显卡的单帧画面实时渲染方法
US20140040884A1 (en) Cloud bursting
JP2018513441A (ja) 画像の重畳しようとする領域の決定、画像重畳、画像表示方法及び装置
JP5817052B2 (ja) 情報処理装置、制御方法、プログラム、及び記録媒体
JP6106674B2 (ja) 情報処理装置、制御方法、プログラム、及び記録媒体
US10460503B2 (en) Texturing of a three-dimensional (3D) model by UV map in-painting
JP2008289030A (ja) 画面描画転送システム
CN114581580A (zh) 渲染图像的方法、装置、存储介质及电子设备
JP6323461B2 (ja) サーバ装置、クライアント装置、情報処理方法および記録媒体
US10469794B2 (en) Information processing apparatus, information processing method, and information processing system for content management using play lists
JP6265337B2 (ja) プログラム、記録媒体及び描画装置決定方法
JP7301453B2 (ja) 画像処理方法、画像処理装置、コンピュータプログラム、及び電子機器
JP5754059B2 (ja) 情報処理装置、制御方法、プログラム、及び記録媒体
US9972064B1 (en) Non-intrusive and low-power recording
JPWO2015181851A1 (ja) 展開予測装置、展開予測方法、プログラム及び記録媒体
US20240189713A1 (en) Cloud Gaming Image Processing and Streaming Methods and Systems
CN115767182A (zh) 图像渲染方法、装置、电子设备及存储介质
Fathy et al. Efficient framework for mobile walkthrough application
CN116059643A (zh) 游戏渲染方法和渲染方法、设备及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150622

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140912

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: 20150817

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150908

R150 Certificate of patent or registration of utility model

Ref document number: 5817052

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250