JP2019505864A - フリップキューの管理に基づくグラフィックスコンテキストのスケジューリング - Google Patents

フリップキューの管理に基づくグラフィックスコンテキストのスケジューリング Download PDF

Info

Publication number
JP2019505864A
JP2019505864A JP2018517173A JP2018517173A JP2019505864A JP 2019505864 A JP2019505864 A JP 2019505864A JP 2018517173 A JP2018517173 A JP 2018517173A JP 2018517173 A JP2018517173 A JP 2018517173A JP 2019505864 A JP2019505864 A JP 2019505864A
Authority
JP
Japan
Prior art keywords
graphics
context
frame buffer
graphics context
execution
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.)
Granted
Application number
JP2018517173A
Other languages
English (en)
Other versions
JP2019505864A5 (ja
JP6584655B2 (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.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2019505864A publication Critical patent/JP2019505864A/ja
Publication of JP2019505864A5 publication Critical patent/JP2019505864A5/ja
Application granted granted Critical
Publication of JP6584655B2 publication Critical patent/JP6584655B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/18Use of a frame buffer in a display terminal, inclusive of the display panel

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

プロセッサ(100)は、ペンディング状態の複数のグラフィックスコンテキスト(102,103,104)のうち何れがプロセッサのグラフィックスパイプラインでの実行のために選択されるかを管理するスケジューラ(105)を含む。プロセッサは、ディスプレイデバイスでレンダリングされる準備ができたデータを記憶する複数のフリップキュー(115,116,117)を含む。実行中のグラフィックスコンテキストは、1つのフリップキューに記憶されたデータを変更するフリップリクエストを発行することができる。スケジューラは、フリップリクエストが、ディスプレイデバイスでのレンダリングに使用されているフリップキューをターゲットとしていると判定したことに応じて、グラフィックスパイプラインで実行される異なるグラフィックスコンテキストをスケジューリングするように、コンテキストの切り替えを実行する。【選択図】図2

Description

(関連出願の相互参照)
本願は、2015年12月18日に出願された米国特許出願第14/974,585号の利益を主張し、この内容は、参照することによって本明細書に組み込まれる。
本発明は、概してプロセッサに関し、より詳細には、プロセッサにおけるグラフィックスコンテキストのスケジューリングに関する。
プロセッサは、処理効率を向上させるために、専用のグラフィックスパイプラインを使用して、ディスプレイデバイスで表示するためのデータを生成する。プロセッサは、専用のグラフィックスパイプラインを使用することにより、その中央処理ユニットから表示データの生成及び管理のタスクを取り除き、このユニットが、システム管理と、ユーザが開始したアプリケーションの実行とに関する動作を行うことを可能にしている。プロセッサは、これらの操作に基づいて、様々なグラフィックスコンテキストを生成する。各グラフィックスコンテキストは、グラフィックスコンテキストに関連する1つ以上のオブジェクトを表示するために、グラフィックスパイプラインによって使用される命令及び状態データを表している。
グラフィックスコンテキストは、グラフィックスパイプラインでの実行中、表示されたフレームバッファを変更するために、フリップリクエストと呼ばれる要求を生成する場合がある。場合によっては、バッファの内容を変更するコマンドの実行は、ディスプレイハードウェアが要求を実行する準備が整うまで遅らせる必要がある。たとえば、フリップリクエストの対象となるフレームバッファは、フレームバッファの内容を変更するコマンドが生成されたときに使用されているため、当該コマンドの即時実行によってティアリングしたり、他の表示エラーが生じる可能性がある。これらのエラーを防止するために、グラフィックスパイプラインにおける動作の実行は、フレームバッファがコマンドを実行するために利用可能になるまで停止されるが、かかる遅延は、処理効率に悪影響を与える可能性がある。
本発明は、添付の図面を参照することによって、よりよく理解され、その多くの特徴及び利点が当業者には明らかとなるであろう。異なる図において同じ参照符号を使用することは、類似又は同一のアイテムを示している。
いくつかの実施形態による、フリップキューの管理に基づいて、グラフィックスパイプラインにおけるグラフィックスコンテキストの実行をスケジューリングするプロセッサのブロック図である。 いくつかの実施形態による、フレームバッファの利用可能性に基づいて、図1のプロセッサにおけるグラフィックスコンテキストのスケジューリングを示すブロック図である。 いくつかの実施形態による、以前に利用不可能であったフレームバッファが利用可能になることに基づいて、図1のプロセッサにおけるグラフィックスコンテキストの実行の再開を示すブロック図である。 いくつかの実施形態による、フリップキューの管理に基づいて、実行用のグラフィックスコンテキストをスケジューリングする、図1のプロセッサのスケジューラのブロック図である。 いくつかの実施形態による、フレームバッファの利用可能性に基づいて、プロセッサで実行されるグラフィックスコンテキストのスケジューリングの方法を示すフロー図である。 いくつかの実施形態による、フレームバッファが利用可能になることに基づいて、グラフィックスコンテキストを実行可能状態に配置する方法のフロー図である。
図1〜図6は、フリップキューの管理に基づいて、プロセッサにおけるグラフィックスコンテキストの実行をスケジューリングするための技術を示す図である。プロセッサは、複数のペンディング状態のグラフィックスコンテキストのうち何れのグラフィックスコンテキストが、プロセッサのグラフィックスパイプラインにおける実行のために選択されるかを管理するスケジューラを含む。また、プロセッサは、ディスプレイデバイスにレンダリングされるデータを記憶するフレームバッファのセットと、フレームバッファのセットにおいてデータを変更するためにフリップリクエストを記憶する複数のフリップキューと、を含む。スケジューラは、実行中のグラフィックスコンテキストによって発行されたコマンドが、前のフリップリクエストのために、ディスプレイデバイスでのレンダリングに使用されるフレームバッファをターゲットとしていると判定したことに応じて、グラフィックスパイプラインにおける実行について異なるグラフィックスコンテキストをスケジューリングするように、コンテキストの切り替えを実行する。これにより、スケジューラは、グラフィックスパイプラインでの動作がフリップリクエストの結果として停止しないようにして、処理効率を向上させる。
図1は、いくつかの実施形態による、1つ以上のフレームバッファの利用可能性に基づいて、複数のペンディング状態のグラフィックスコンテキストの実行をスケジューリングすることの可能なプロセッサ100を示す図である。プロセッサ100は、概して、電子デバイスに代わって動作を実行するために、1つ以上のコンピュータプログラムの形態で構成された命令のセットを実行するように構成されたデバイスである。したがって、プロセッサ100は、デスクトップコンピュータ、ラップトップ、サーバ、ゲームコンソール、タブレット、スマートフォン等の任意の他の様々な電子デバイスに含まれ得る。ユーザとのやり取りを容易にするために、プロセッサ100は、有線又は無線プロトコルを介して、ディスプレイスクリーン等のディスプレイデバイス(図1では省略)に接続することができる。
ディスプレイデバイスでの情報の表示をサポートするために、プロセッサ100は、グラフィックスパイプライン110と、スケジューラ105と、フリップキュー115,116,117と、ディスプレイコントローラ118と、を含む。本明細書でさらに記載するように、プロセッサ100のこれらの機能は、概して、ディスプレイデバイスに情報を表示するために、グラフィックスコンテキスト(例えば、グラフィックスコンテキスト102,103,104)の管理及び実行をサポートするように構成されている。本明細書で使用されるグラフィックスコンテキストは、表示されるオブジェクトに対応する命令のセット及び関連する状態の情報に関する。したがって、グラフィックスコンテキストは、ウィンドウ、アイコン、デスクトップの背景、グラフィックオブジェクト(例えば、スプライトや、コンピュータゲームに表示される他のオブジェクト)等のように、コンピュータデバイスによって表示することの可能な任意のオブジェクトに関連付けることができる。よって、例えば、コンピュータウィンドウに対応するグラフィックスコンテキストは、ウィンドウサイズ、タイトル、メニューアイテム、ボタン等のグラフィックスコンテキストに含まれる状態の情報に基づいて、ウィンドウを表示するためのデータを生成する命令を含む。
説明のために、グラフィックスコンテキストは、プロセッサ100のCPU(図示省略)によって実行される1つ以上のコンピュータプログラムによって生成されると想定する。例えば、CPUによって実行されるアプリケーションプログラムは、アプリケーションプログラムによって情報を表示するための1つ以上のウィンドウに対応するグラフィックスコンテキストを生成することができる。
スケジューラ105は、概して、グラフィックスパイプライン110における実行に関するグラフィックスコンテキストをスケジューリングするように構成されたハードウェアモジュールである。例示のために、いくつかの実施形態では、CPUは、ディスプレイデバイスで同時に表示するために、グラフィックスコンテキスト102〜104として示される複数のグラフィックスコンテキストを生成することができる。これらの複数のグラフィックスコンテキストは、これらがグラフィックスパイプライン110で実行する準備ができていることを反映するために、「ペンディング状態(pending)」のグラフィックスコンテキストと呼ばれる。ペンディング状態のグラフィックスコンテキストは、対応する表示オブジェクトの変化を反映するように、CPU又はプロセッサ100の他のモジュールによって経時的に変化させることができる。例えば、ウィンドウオブジェクトに対応するグラフィックスコンテキストは、ウィンドウデータがディスプレイ上で更新されることを示す入力情報をユーザが提供したことに応じて、CPUによって更新され得る。CPUは、グラフィックスコンテキストを更新して、ウィンドウデータの更新を反映し、新たな又は異なる実行命令を含むグラフィックスコンテキストをもたらす。いくつかの実施形態では、グラフィックスコンテキストは、CPUが、例えばユーザによってウィンドウが閉じられたことを示すアクション等のように、対応するオブジェクトがもはや表示されないことを示すアクションを識別するまで、ペンディング状態のままである。
ペンディング状態のグラフィックスコンテキストの各々は、所与の時点においては、実行可能状態及び実行不可能状態と呼ばれる少なくとも2つの異なる状態の1つであり、グラフィックスコンテキストが、グラフィックスパイプライン110での実行のためにスケジューリングされるように利用可能であるか否かを反映している。グラフィックスコンテキストの状態は、グラフィックスパイプライン110においてグラフィックスコンテキストのスケジューリングを効率的に管理するために、グラフィックスパイプライン110、スケジューラ105、CPU、又は、プロセッサ100の別のモジュールによって、実行可能状態から実行不可能状態又はその逆に変化させることができる。例えば、本明細書でさらに説明するように、スケジューラ105は、グラフィックスコンテキストを実行するのに必要とされる特定のリソース(例えば、フリップキュー等)が一時的に利用不可能であると判定したことに応じて、実行するグラフィックスコンテキストの状態を、実行可能状態から実行不可能状態に変化させることができる。スケジューラ105は、リソースが利用可能になると、グラフィックスコンテキストの状態を、実行不可能状態から実行可能状態に変更し、これにより、グラフィックスコンテキストの実行を再開することができる。
スケジューラ105は、特定のスケジューリングスキームと、プロセッサ100で検出された状況との組み合わせに基づいて、実行可能状態にあるペンディング状態のグラフィックスコンテキストをスケジューリングする。例示のために、いくつかの実施形態では、スケジューラ105は、グラフィックスパイプライン110における状況と、プロセッサ100の他のモジュールにおける状況と、を検出する1つ以上のモジュールを含む。スケジューラ105は、これらの検出された状況に基づいて、グラフィックスパイプライン110で実行されるペンディング状態の1つのグラフィックスコンテキストを選択する。検出された状況が、2つ以上のペンディング状態のグラフィックスコンテキストを実行のために選択され得ることを示す場合に、スケジューラ105は、ラウンドロビン方式等の特定の選択スキームに基づいて、コンテキストの中から選択することができる。例えば、スケジューラ105は、実行可能なグラフィックスコンテキストの各々に対して、実行のための特定の持続時間の一部の時間を割り当て、割り当てられた一部の時間の間に、実行可能なグラフィックスコンテキストの各々を実行することができる。スケジューラ105は、検出された状況に基づいてペンディング状態のコンテキストの中から選択することによって、プロセッサ100における処理効率を向上させることができる。
グラフィックスパイプライン110は、概して、スケジューリングされたグラフィックスコンテキストの命令を実行するように構成されたステージのセットである。したがって、いくつかの実施形態では、グラフィックスパイプライン110は、フェッチステージと、ディスパッチステージと、1つ以上の実行ステージと、リタイアメントステージと、を含む。グラフィックスパイプライン110は、異なるグラフィックスコンテキストを実行する(「コンテキストスイッチ」と呼ばれる)ためのスケジューラ105からの要求に応じて、現在実行中のグラフィックスコンテキストの状態情報を保存し、要求されたグラフィックスコンテキストの保存された状態情報をロードし、次いで、スケジューラ105が別のコンテキストスイッチ要求を発行するまで、要求されたグラフィックスコンテキストの命令のフェッチ、ディスパッチ、実行及びリタイアを開始することができる。
グラフィックスパイプライン110は、命令を実行する過程において、ディスプレイデバイスに表示されるデータを変更する要求を生成する。例示のために、プロセッサ100は、ディスプレイデバイスでの表示のためにデータを変更又はフリップするように要求するフリップキュー115,116,117を含む。いくつかの実施形態では、グラフィックスコンテキスト102〜104の各々は、フリップキュー115〜117の異なる1つに割り当てられている。したがって、例えば、グラフィックスコンテキスト102をフリップキュー115に割り当てることができ、グラフィックスコンテキスト103をフリップキュー116に割り当てることができ、グラフィックスコンテキスト104をフリップキュー117に割り当てることができる。いくつかの実施形態では、1つのグラフィックスコンテキストを複数のフリップキューに割り当てることができるが、各フリップキューは、1つのグラフィックスコンテキストにのみ関連付けられる。表示用のデータを変更するには、グラフィックスコンテキストがフリップリクエストをそのキューに発行する。
ディスプレイコントローラ118は、概して、フリップキュー115〜117からのフリップリクエストを読み出し、フリップリクエストに基づいて、ディスプレイデバイスのレンダリング用のデータを変更するように構成されたハードウェアモジュールである。例示のために、ディスプレイコントローラ118は、フレームバッファ119と接続されている。フレームバッファ119の各々は、ディスプレイデバイスでレンダリングされるデータを記憶する。個々のフレームバッファ119に記憶されたデータは、「フレーム」と呼ばれる。ディスプレイコントローラ118は、ディスプレイのスループットを向上させるために、例えばディスプレイデバイスの垂直同期間隔等の同期間隔の間にフレームバッファを変更して、フレームバッファ119を介して対応するフレームを順次表示させる。これにより、以下に説明するように、レンダリングされていないフレームがコマンドによって変更され、ディスプレイコントローラのスループットが向上する。例示のために、いくつかの実施形態では、フレームバッファ119は、バッファA、バッファB及びバッファCとそれぞれ示された3つの異なるフレームバッファを含む。ディスプレイコントローラ118は、最初に、バッファAのフレームをレンダリングし、その間に、バッファB及びバッファCの各々のフレームを、視覚的なディスプレイエラーを生じることなく変更することができる。グラフィックスコンテキストからのフリップリクエストに応じて、ディスプレイデバイスの垂直同期期間によって示されるようにバッファAのレンダリングが完了すると、ディスプレイコントローラ118は、バッファBに記憶されたフレームをレンダリングし、バッファA及びバッファCのフレームを変更することができる。ディスプレイコントローラ118は、バッファBのフレームをレンダリングした後に、グラフィックスコンテキストからの別のフリップリクエストに応じて、バッファCのフレームをレンダリングする。さらに別のフリップリクエストに応じてバッファCのフレームが完了すると、ディスプレイコントローラ118は、バッファAに戻る。したがって、ディスプレイコントローラ118は、グラフィックスコンテキストを実行することによって発行されたフリップリクエストに基づいて、各フレームバッファを進む。
上述したように、フリップキュー115〜117に記憶された各フリップリクエストは、フレームバッファ119の1つに切り替える要求を表している。したがって、各フリップリクエストは、フリップリクエストによってターゲットとされるフレームバッファのインジケータを含む。いくつかの実施形態では、フリップキュー115〜117は、集合的に、ディスプレイデバイスをターゲットとする複数のフリップリクエストを含んでもよい。ディスプレイコントローラ118は、要求された変更を調整し、ターゲットとされたディスプレイデバイスの複数のフレームバッファから合成フレームを構成するための合成器を含むことができる。
上述したように、ディスプレイコントローラ118は、フレームバッファ119からのフレームをレンダリングする。フレームバッファがレンダリングされている間に当該フレームバッファが変更されると、例えば、ティアリング、ゴースト又は他の視覚的エラー等の視覚的エラーがディスプレイに生じることになる。したがって、ディスプレイコントローラ118は、ディスプレイデバイスでレンダリングされているフレームバッファの変更を防止する。議論の目的のために、レンダリングのためにデータを提供するプロセスにあるフレームバッファは、利用不可能と呼ばれる。ディスプレイデバイスでのレンダリングのためにデータを提供するプロセスにないフレームバッファは、利用可能と呼ばれ、その記憶されたデータは、表示用の使用を待機していると呼ばれる。
レンダリング中のフレームバッファのフレームデータを変更すると、ティアリング又は他の表示エラーが生じる可能性がある。かかるエラーを防止するために、ディスプレイコントローラ118は、データが、ディスプレイデバイスでのレンダリングのためにデータが提供されるフリップキューの変更を防止する。例えば、いくつかの実施形態では、グラフィックスコンテキストからのフリップリクエストを開始したことに応じて、フレームバッファに関連付けられたステータスレジスタ111に特定の値が書き込まれる。ディスプレイコントローラは、レンダリングのためのフレームバッファからのデータの取り出しが完了すると、この値をステータスレジスタ111から消去する。グラフィックスパイプライン110は、フレームバッファ内のデータを更新する前に、当該フレームバッファに関するステータスレジスタをチェックする。グラフィックスパイプライン110は、ステータスレジスタが特定の値を記憶している場合、フレームバッファ内のデータの更新を停止して保留する。
スケジューラ105は、プロセッサ100の性能に対するこのような停止の影響を低減するために、フリップリクエストによってターゲットとされるフレームバッファの利用可能性に基づいて、グラフィックスコンテキスト102〜104の実行をスケジューリングすることができる。例示すると、スケジューラ105は、フレームバッファでデータを変更するように要求するコマンドについてグラフィックスパイプライン110を監視し、何れのフレームバッファ119が利用可能であるかを同時に監視する。スケジューラ105は、データを変更するように要求するコマンドが利用不可能なフレームバッファをターゲットとし、これにより、対応するグラフィックスコンテキストを停止させることを識別したことに応じて、グラフィックスパイプライン110で実行するための異なるグラフィックスコンテキストを選択する。スケジューラ105は、フレームバッファがレンダリングを完了すると、直ちに又は都合のよい後の時点で、以前にスケジューリングされたグラフィックスコンテキストの実行を再開することができる。
スケジューラ105は、フレームバッファ119の利用可能性に基づいてグラフィックスコンテキストの実行をスケジューリングすることで、1つのグラフィックスコンテキストに関する停止が全てのペンディング状態のグラフィックスコンテキストの停止を生じないことを確実にすることによって、プロセッサの性能を向上させることができる。例示すると、従来のプロセッサでは、レンダリング中のフレームバッファでデータを変更するように要求するコマンドは、コマンドを発行したグラフィックスコンテキストの実行を停止させる。プロセッサは、フレームバッファのレンダリングが完了するまで待機し、次に、停止したグラフィックスコンテキストの実行を再開する。フレームバッファが利用可能になるのをプロセッサが待つ間、他の全てのペンディング状態のグラフィックスコンテキストも停止する。本明細書で説明する技術を使用することによって、スケジューラ105は、レンダリング中のフレームバッファを変更するように要求するコマンドをグラフィックスコンテキストが発行したことに応じて、実行のために異なるグラフィックスコンテキストをスケジューリングする。これにより、1つ以上のグラフィックスコンテキストがフレームバッファの利用可能性を待機している間に、グラフィックスパイプライン110が有用な作業を行うことが可能になる。
図2は、いくつかの実施形態による、フレームバッファの利用可能性に基づいて、グラフィックスパイプライン110でグラフィックスコンテキストをスケジューリングする図1のスケジューラ105の一例を示す図である。図示した例では、時間201において、グラフィックスコンテキスト102がグラフィックスパイプライン110で実行されている間、グラフィックスコンテキスト103は、ペンディング状態であり実行を待機している。また、図示した例では、ディスプレイコントローラ118は、3つのフレームバッファ、すなわち、所定のフレームバッファ221と、フレームバッファ222と、フレームバッファ223とを含む。フレームバッファ221は、レンダリング中の所定のフレームを記憶しており、これにより、フレームバッファ221は利用不可能である。フレームバッファ222及びフレームバッファ223の両方は利用可能である。
時間201において、グラフィックスコンテキスト103は、その次のコマンドがフレームバッファ221内のデータを更新するコマンドであることを識別する。グラフィックスコンテキスト103は、データの更新を行う前に、先ず、フレームバッファ221が利用可能であるか否かをチェックする。これに応じて、スケジューラ105は、フレームバッファ221がディスプレイコントローラによってレンダリングされているため、ターゲットとなるフレームバッファ221が利用不可能であることを識別する。したがって、時間202において、スケジューラ105は、グラフィックスコンテキスト102の実行を保留し、グラフィックスコンテキスト103の実行をスケジューリングすることによってコンテキストの切り替えを実行する。よって、グラフィックスパイプライン110は、グラフィックスコンテキスト102がフレームバッファ221の利用可能性を待機している間、グラフィックスコンテキスト103を実行し、プロセッサ100における処理効率を向上させる。いくつかの実施形態では、スケジューラ105は、コンテキストの切り替えのオーバーヘッドを回避するためにフレームバッファが直後に利用可能になった場合に、待機しているグラフィックスコンテキストが停止したままにされ保留されないようにするタイムアウト期間を採用することができる。
図3は、いくつかの実施形態による、グラフィックスパイプライン110において以前に保留されたグラフィックスコンテキストの実行を再開するスケジューラ105の一例を示す図である。図3の例は、図2の例の続きであり、グラフィックスコンテキスト103は、フレームバッファ221がグラフィックスコンテキスト102による更新に利用不可能であるため、グラフィックスコンテキスト102の実行が保留されたことに応じて、グラフィックスパイプライン110での実行のためにスケジューリングされている。図2の時間202の後に生じる時間303では、スケジューラ105は、ディスプレイコントローラ118から同期信号を受信する。これに応じて、グラフィックスパイプライン110は、ステータスレジスタ111をチェックし、そこに記憶された値に基づいて、フレームバッファ221におけるフレームデータのレンダリングが完了したことを判定する。したがって、時間304において、スケジューラ105は、グラフィックスコンテキスト103の実行を保留してグラフィックスコンテキスト102の実行を再開するために、コンテキストの切り替えを実行する。いくつかの実施形態では、スケジューラ105は、同期信号に応じてステータスレジスタを直ちにチェックするのではなく、より都合のよい時間か有効な時間を待っている。この時間は、例えば、グラフィックスコンテキスト103が、利用不可能なフレームバッファ上で停止しているときや、そうでなければ、プロセッサ100の別のモジュールからの応答を待機しているポイントに達しているとき等である。
図4は、いくつかの実施形態による、スケジューラ105の一例のブロック図である。図示した例では、スケジューラ105は、スケジュールコントローラ420と、実行不可能コンテキストトークンストア425と、実行可能コンテキストトークンストア426と、を含む。実行不可能コンテキストトークンストア425は、例えば、実行不可能な状態にある、実行に関してペンディング状態のコンテキストの識別値(例えば、トークン428)を記憶するレジスタのセット等の記憶構造である。いくつかの実施形態では、CPUがコンテキストを生成する場合、当該CPUは、他のペンディング状態のグラフィックスコンテキストのトークン値とは異なるコンテキスト用のトークン値も生成する。CPUは、トークン値をスケジューラ105に提供する。スケジューラ105は、コンテキストの切り替え及び他の管理操作のためのグラフィックスコンテキストを識別するために、トークン値を使用する。
実行可能コンテキストストア426は、例えば、実行可能な状態にあるコンテキストのトークン値(例えば、トークン429)を記憶するレジスタのセット等の記憶構造である。実行不可能コンテキストストア425に記憶された値と、実行可能コンテキストストア426に記憶された値とは、グラフィックスコンテキストの実行可能な状態を変更するように、スケジューラ105又は別のモジュールによって更新することができる。例えば、スケジューラ105は、グラフィックスコンテキストが実行可能な状態にあることを示すために、グラフィックスコンテキストのトークン値を、実行可能コンテキストストア426に書き込むことができる。スケジューラ105は、(例えば、コンテキストが、レンダリング中のフリップキューに対するフリップリクエストを発行したために)グラフィックスコンテキストが実行可能でないと判定したことに応じて、グラフィックスコンテキストのトークン値を、実行可能コンテキストストア426から消去して、実行不可能コンテキストストア425に書き込む。このプロセスは、グラフィックスコンテキストの状態を実行不可能状態から実行可能状態に変更するように、逆に行うことができる。
スケジュールコントローラ420は、コンテキストの切り替えの状況を識別し、そのような状況を識別したことに応じて、コンテキストの切り替えの要求をグラフィックスパイプライン110に発行するように構成されたモジュールである。スケジュールコントローラ420は、動作中、レンダリング処理中のフレームバッファに対してフリップリクエストが発行されたとのディスプレイコントローラ118からの通知を受信したことに応じて、実行されているグラフィックスコンテキストのコンテキストトークン値を実行可能コンテキストストア426から消去して、当該グラフィックスコンテキストが停止し、これにより実行可能ではないことを示す。次に、スケジュールコントローラは、実行可能なコンテキストトークン値ストア426から別のトークン値を選択する。いくつかの実施形態では、トークン値は、トークン値に関連付けられた優先度の値に基づいて、プロセッサ100における1つ以上の検出された状況に基づいて、例えばFIFO順やラウンドロビン順等の定義された選択順序に基づいて、選択される。スケジュールコントローラ420は、選択されたトークン値、又は、選択されたトークン値に関連する値(例えば、実行されるグラフィックスコンテキストの次の命令を示す命令ポインタ値等)をグラフィックスパイプライン110に提供する。次いで、グラフィックスパイプライン110は、選択されたトークン値に対応するグラフィックスコンテキストの実行を開始又は再開する。
また、スケジュールコントローラ420は、フレームバッファでのフレームのレンダリングが完了したとの通知をディスプレイコントローラ118から受信することができる。スケジュールコントローラ420は、この通知に応じて、フレームバッファの利用可能性を待機しているグラフィックスコンテキストのトークン値を識別することができる。次に、スケジュールコントローラ420は、これらのトークン値を実行可能コンテキストストア426に転送し、これにより、スレッドに対応するグラフィックスコンテキストが次のコンテキストの切り替えでの選択に利用できるようにする。いくつかの実施形態では、ディスプレイコントローラ118からの通知自体が、スケジュールコントローラ420によるコンテキストの切り替えをトリガすることができる。
図5は、いくつかの実施形態による、フリップキューの利用可能性に基づいて、グラフィックスパイプラインでグラフィックスコンテキストをスケジューリングする方法500のブロック図である。説明の目的のために、方法500は、図1のプロセッサ100における例示的な実施態様に関して説明する。ブロック502において、グラフィックスパイプライン110で実行されるグラフィックスコンテキストは、フレームバッファに記憶されたデータの少なくとも一部を変更するように要求する。ブロック504において、スケジューラ105及びグラフィックスパイプライン110は、フリップリクエストによってターゲットとされるフレームバッファが利用可能であるか否かを判定する。すなわち、スケジューラ105は、ターゲットとなるフレームバッファがディスプレイコントローラ118によるレンダリングのために使用されるプロセスにあり、したがって、利用可能ではないか否かを判定する。
フリップリクエストによってターゲットとされたフレームバッファが利用可能である場合には本方法のフローがブロック508に移行し、グラフィックスパイプライン110は、ターゲットとされたフレームバッファでデータ更新要求を実行する。ブロック504に戻ると、データ更新要求の対象となるフレームバッファが利用可能でない場合には本方法のフローがブロック506に移行し、スケジューラ105は、コンテキストの切り替えを実行する。具体的には、スケジューラ105は、現在実行中のグラフィックスコンテキストを実行不可能状態にし、現在実行可能状態にあるグラフィックスコンテキストのセットから異なるグラフィックスコンテキストを選択する。次に、スケジューラ105は、グラフィックスパイプライン110に対して、コンテキストの切り替え要求を発行する。これに応じて、グラフィックスパイプライン110は、グラフィックスコンテキストが後で再開できるように、現在実行中のグラフィックスコンテキストの状態の情報を保存し、選択されたグラフィックスコンテキストの以前に保存された状態の情報をロードし、選択されたグラフィックスコンテキストの命令の実行に移行する。
図6は、いくつかの実施形態による、フリップリクエストに基づいて、以前に保留されたグラフィックスコンテキストの実行を再開する方法600のフロー図である。説明の目的のために、方法600は、図1のプロセッサ100における例示的な実施態様に関して説明する。ブロック602において、スケジューラ105は、垂直同期信号又は水平同期信号等のディスプレイデバイスにおける同期信号の通知を受信する。同期信号は、フレームバッファが利用可能になったか否かを判定するためにグラフィックスコンテキストのステータスレジスタをチェックするのに適切な時間を示す。ブロック604において、スケジューラ105は、新たに利用可能なフレームバッファをターゲットとするフリップリクエストのために、実行不可能状態に置かれた、実行不可能状態のグラフィックスコンテキストを識別する。すなわち、スケジューラ105は、フリップキューが利用可能になるのを待機していたグラフィックスコンテキストを識別する。ブロック606において、スケジューラ105は、識別されたグラフィックスコンテキストを実行可能状態にする。ブロック608において、スケジューラ105は、次のコンテキストの切り替えに応じて、実行可能状態にあるグラフィックスコンテキストの中からブロック606で実行可能状態に置かれたグラフィックスコンテキストを選択し、選択されたグラフィックスコンテキストがフリップリクエストを完了して実行を再開するのを可能にする。
いくつかの実施形態では、上述したデバイス及び技術は、図1〜図6を参照して上述したプロセッサ等の1つ以上の集積回路(IC)デバイス(集積回路パッケージ又はマイクロチップとも呼ばれる)を備えるシステムにおいて実装される。電子設計自動化(EDA)及びコンピュータ支援設計(CAD)ソフトウェアツールを用いて、これらのICデバイスの設計及び製造を行うことができる。これらの設計ツールは、通常、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、1つ以上のICデバイスの回路を表すコード上で動作するようにコンピュータシステムを操作するコンピュータシステムによって実行可能なコードを備え、これにより、回路を製造するように製造システムを設計又は適合させるプロセスの少なくとも一部を実行するようになっている。このコードは、命令、データ、又は、命令とデータとの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、通常、コンピュータシステムにアクセス可能なコンピュータ可読記憶媒体に記憶されている。同様に、ICデバイスの設計又は製造の1つ以上のフェーズを表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶されアクセスされてもよい。
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するように、使用中にコンピュータシステムによってアクセス可能な任意の記憶媒体又は記憶媒体の組み合わせを含むことができる。かかる記憶媒体には、限定はしないが、光媒体(例えば、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、リードオンリメモリ(ROM)若しくはフラッシュメモリ)、又は、微少電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステム(例えば、システムRAM又はROM)に組み込まれてもよいし、コンピュータシステム(例えば、磁気ハードドライブ)に固定的に取り付けられてもよいし、コンピュータシステム(例えば、光ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)に着脱可能に取り付けられてもよいし、有線又は無線のネットワークを介してコンピュータシステム(例えば、ネットワークアクセス可能なストレージ(NAS))に接続されてもよい。
いくつかの実施形態では、上述した技術の特定の態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、有形に実装された1つ以上の実行可能命令のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行された場合に、1つ以上のプロセッサを操作して、上述した技術の1つ以上の態様を実行する命令又は特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、フラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス等の固体記憶デバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって読み取られ若しくは実行可能な他の命令フォーマットであってもよい。
全体的な記載において、上述した動作又は要素の全てが必要であるとは限らず、特定の動作又はデバイスの一部が必要でなくてもよいこと、及び、上述したものに加えて、1つ以上のさらなる動作が実行されてもよいこと、1つ以上のさらなる要素が含まれてもよいことに留意されたい。さらに、動作を列挙した順番は、必ずしもこれらの動作が実行される順番ではない。また、これらの概念は、特定の実施形態に言及して説明されている。しかし、当業者であれば、添付の特許請求の範囲に記載された本発明の範囲を逸脱することなく、様々な修正及び変更を行うことができることを理解するであろう。したがって、本明細書及び図面は、限定的な意味ではなく例示的な意味として解釈され、かかる変更の全ては、本発明の範囲内に含まれることが意図されている。
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある機能は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な機能と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。

Claims (14)

  1. プロセッサ(100)において、第1のフレームバッファ(221)をレンダリングする要求を示す第1のフリップリクエストを、前記プロセッサで実行されている第1のグラフィックスコンテキスト(102)から受信したことに応じて、前記第1のフレームバッファが使用中であることを示すように第1の記憶位置(111)に第1の値を記憶することと、
    前記第1のフレームバッファの内容を変更する要求を受信したことに応じて、前記第1の値を記憶する前記第1の記憶位置に応じて、前記第1のグラフィックスコンテキストの実行を保留する(202)ことと、前記プロセッサで実行するための第2のグラフィックスコンテキスト(103)をスケジューリングすることと、を含む、
    方法。
  2. 前記第1のフリップリクエストが完了したことに応じて、前記第1の記憶位置に第2の値を記憶することを含む、請求項1の方法。
  3. 前記第2の値が前記第1の記憶位置に記憶されているのを識別したことに応じて、前記第1のグラフィックスコンテキストの実行を再開すること(304)を含む、請求項2の方法。
  4. ディスプレイデバイスの同期信号に応じて、前記第2の値が前記第1の記憶位置に記憶されているのを識別すること(303)を含む、請求項3の方法。
  5. 表示のための使用を待機している第2のフレームバッファ(222)の内容の変更に関連する前記第2のグラフィックスコンテキストに基づいて、ペンディング状態の複数のグラフィックスコンテキストから前記第2のグラフィックスコンテキストを選択することを含む、請求項2の方法。
  6. 前記プロセッサでの第2のフリップリクエストを前記第2のグラフィックスコンテキストから受信したことに応じて、前記第2のグラフィックスコンテキストが、表示のための使用を待機している間に、前記第2のフレームバッファにおけるデータの変更に関連していることに応じて、前記第2のグラフィックスコンテキストの実行を維持することを含む、請求項5の方法。
  7. 表示のためにディスプレイコントローラ(118)によって選択可能な複数のフレームバッファ(119)を備えるプロセッサ(100)において、
    前記複数のフレームバッファのレンダリングを要求する前記複数のグラフィックスコンテキストからのフリップリクエストと、前記複数のフレームバッファのうち何れのフレームバッファが表示のために前記ディスプレイコントローラによって選択されたかを示す、記憶された値(111)と、に基づいて、複数のグラフィックスコンテキスト(102,103,104)の実行をスケジューリングすることを含む、
    方法。
  8. 前記実行をスケジューリングすることは、
    前記ディスプレイコントローラによる表示のために選択されたと前記記憶された値によって示された第1のフレームバッファの変更を、前記複数のグラフィックスコンテキストのうち第1のグラフィックスコンテキスト(102)が要求したことに応じて、前記第1のグラフィックスコンテキストの実行を保留すること(202)を含む、請求項7の方法。
  9. 前記実行をスケジューリングすることは、
    前記第1のグラフィックスコンテキストの実行が保留されたことと、前記複数のグラフィックスコンテキストのうち第2のグラフィックスコンテキスト(103)が、前記ディスプレイコントローラによる表示のために選択されていないと前記記憶された値によって示された第2のフレームバッファの変更に関連していることと、に応じて、前記第2のグラフィックスコンテキストを実行すること(202)を含む、請求項8の方法。
  10. 第1のフレームバッファ(221)を含む複数のフレームバッファ(119)と、
    グラフィックスパイプライン(110)と、
    第1の記憶位置(111)を含む複数の記憶位置と、
    第1のフリップリクエストに応じて前記第1のフレームバッファにおいてデータをレンダリングするディスプレイコントローラ(118)と、
    スケジューラ(105)と、を備え、
    前記スケジューラは、
    前記グラフィックスパイプラインにおいて実行される第1のグラフィックスコンテキスト(102)が、前記第1のフレームバッファの内容を変更する要求を示すことに応じて、
    前記第1のグラフィックスコンテキストの実行を保留すること(202)と、
    前記第1の記憶位置に、前記第1のグラフィックスコンテキストが保留されたことを示す値を記憶することと、
    前記グラフィックスパイプラインで実行される第2のグラフィックスコンテキスト(103)をスケジューリングすること(202)と、を行う、
    プロセッサ。
  11. 前記スケジューラは、前記第1のフリップリクエストが完了したことに応じて、前記第1の記憶位置に第2の値を記憶する、請求項10のプロセッサ。
  12. 前記スケジューラは、前記第2の値が前記第1の記憶位置に記憶されているのを識別したことに応じて、前記グラフィックスパイプラインで実行を再開するために前記第1のグラフィックスコンテキストをスケジューリングする(304)、請求項11のプロセッサ。
  13. 前記スケジューラは、前記ディスプレイコントローラからの同期信号に応じて、前記第1の記憶位置に前記第2の値が記憶されていることを識別する(303)、請求項12のプロセッサ。
  14. 前記スケジューラは、表示のための使用を待機している前記複数のフリップキューのうち第2のフレームバッファの内容の変更に関連する前記第2のグラフィックスコンテキストに基づいて、ペンディング状態の複数のグラフィックスコンテキストから前記第2のグラフィックスコンテキストを選択する、請求項11のプロセッサ。
JP2018517173A 2015-12-18 2016-09-22 フリップキューの管理に基づくグラフィックスコンテキストのスケジューリング Active JP6584655B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/974,585 2015-12-18
US14/974,585 US10176548B2 (en) 2015-12-18 2015-12-18 Graphics context scheduling based on flip queue management
PCT/CA2016/051113 WO2017100908A1 (en) 2015-12-18 2016-09-22 Graphics context scheduling based on flip queue management

Publications (3)

Publication Number Publication Date
JP2019505864A true JP2019505864A (ja) 2019-02-28
JP2019505864A5 JP2019505864A5 (ja) 2019-07-04
JP6584655B2 JP6584655B2 (ja) 2019-10-02

Family

ID=59055498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018517173A Active JP6584655B2 (ja) 2015-12-18 2016-09-22 フリップキューの管理に基づくグラフィックスコンテキストのスケジューリング

Country Status (6)

Country Link
US (1) US10176548B2 (ja)
EP (1) EP3391364A4 (ja)
JP (1) JP6584655B2 (ja)
KR (1) KR102407781B1 (ja)
CN (1) CN108140363B (ja)
WO (1) WO2017100908A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB202012559D0 (en) 2020-08-12 2020-09-23 Samsung Electronics Co Ltd Reducing latency between receiving user input and displaying resulting frame

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5224210A (en) * 1989-07-28 1993-06-29 Hewlett-Packard Company Method and apparatus for graphics pipeline context switching in a multi-tasking windows system
US6487212B1 (en) * 1997-02-14 2002-11-26 Advanced Micro Devices, Inc. Queuing structure and method for prioritization of frames in a network switch
US5969728A (en) * 1997-07-14 1999-10-19 Cirrus Logic, Inc. System and method of synchronizing multiple buffers for display
US6747654B1 (en) * 2000-04-20 2004-06-08 Ati International Srl Multiple device frame synchronization method and apparatus
US6674841B1 (en) * 2000-09-14 2004-01-06 International Business Machines Corporation Method and apparatus in a data processing system for an asynchronous context switching mechanism
US7038689B2 (en) * 2002-02-19 2006-05-02 Intel Corporation Sparse refresh double-buffering
US6982719B2 (en) * 2002-07-15 2006-01-03 Sun Microsystems, Inc. Switching sample buffer context in response to sample requests for real-time sample filtering and video generation
US7421694B2 (en) * 2003-02-18 2008-09-02 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
US7673304B2 (en) * 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US7176848B1 (en) * 2003-04-14 2007-02-13 Ati Technologies, Inc. Method of synchronizing images on multiple display devices with different refresh rates
US7522167B1 (en) * 2004-12-16 2009-04-21 Nvidia Corporation Coherence of displayed images for split-frame rendering in multi-processor graphics system
CN100383856C (zh) * 2005-02-06 2008-04-23 威盛电子股份有限公司 显示控制系统及其方法
US7663635B2 (en) * 2005-05-27 2010-02-16 Ati Technologies, Inc. Multiple video processor unit (VPU) memory mapping
US8817029B2 (en) * 2005-10-26 2014-08-26 Via Technologies, Inc. GPU pipeline synchronization and control system and method
US20090184972A1 (en) * 2008-01-18 2009-07-23 Qualcomm Incorporated Multi-buffer support for off-screen surfaces in a graphics processing system
US9176794B2 (en) * 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics compute process scheduling
US9460667B2 (en) * 2011-11-28 2016-10-04 Amazon Technologies, Inc. Incremental page transitions on electronic paper displays
US20130152108A1 (en) * 2011-12-13 2013-06-13 Ati Technologies Ulc Method and apparatus for video processing
US8578129B2 (en) * 2011-12-14 2013-11-05 Advanced Micro Devices, Inc. Infrastructure support for accelerated processing device memory paging without operating system integration
US10368108B2 (en) * 2011-12-21 2019-07-30 Ati Technologies Ulc Downstream video composition
US9099051B2 (en) * 2012-03-02 2015-08-04 Ati Technologies Ulc GPU display abstraction and emulation in a virtualization system
US9396032B2 (en) * 2014-03-27 2016-07-19 Intel Corporation Priority based context preemption

Also Published As

Publication number Publication date
CN108140363B (zh) 2022-06-03
WO2017100908A1 (en) 2017-06-22
US20170178273A1 (en) 2017-06-22
KR20180093875A (ko) 2018-08-22
CN108140363A (zh) 2018-06-08
JP6584655B2 (ja) 2019-10-02
KR102407781B1 (ko) 2022-06-10
EP3391364A1 (en) 2018-10-24
US10176548B2 (en) 2019-01-08
EP3391364A4 (en) 2019-05-22

Similar Documents

Publication Publication Date Title
JP6320520B2 (ja) 多数の優先順キューに対するスレッドの割り当ておよびスケジューリング
JP5723968B2 (ja) 便宜的マルチタスキング
US8943252B2 (en) Latency sensitive software interrupt and thread scheduling
US10235733B2 (en) Device and method for performing scheduling for virtualized graphics processing units
CN110300328B (zh) 一种视频播放控制方法、装置及可读存储介质
JP2020522797A (ja) Gpuタスクスケジューリングの継続分析タスク
JP2011192281A (ja) 仮想マシンモニター及び仮想マシンモニターのスケジューリング方法
JP2018534675A (ja) 再マッピング同期によるタスクサブグラフの加速化
EP2613257B1 (en) Systems and methods for use in performing one or more tasks
US9678781B2 (en) Methods of and data processing systems for handling an accelerator's scheduling statistics
US10163245B2 (en) Multi-mode animation system
US20150378782A1 (en) Scheduling of tasks on idle processors without context switching
WO2013035246A1 (ja) 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路
JP2019502201A (ja) マルチスレッドアクセスのためのソフトウェア定義のfifoバッファ
JP6584655B2 (ja) フリップキューの管理に基づくグラフィックスコンテキストのスケジューリング
JP5542643B2 (ja) シミュレーション装置及びシミュレーションプログラム
US20210149726A1 (en) Scheduling device, scheduling system, scheduling method, and non-transitory computer-readable medium
US20200004586A1 (en) Cooperative workgroup scheduling and context prefetching
US10073723B2 (en) Dynamic range-based messaging
US11132204B2 (en) Aggregated doorbells for unmapped queues in a graphics processing unit
JP2015207052A (ja) スマート端末、消費電力の状態の制御方法、および、消費電力状態制御プログラム
KR20140057869A (ko) 차량용 임베디드 시스템의 데이터 제어 방법
JP2014191771A (ja) プログラム,情報処理装置,情報処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190528

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190528

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190807

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190903

R150 Certificate of patent or registration of utility model

Ref document number: 6584655

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250