JP2014506700A - グラフィックス処理のためのデータストレージアドレス割当て - Google Patents

グラフィックス処理のためのデータストレージアドレス割当て Download PDF

Info

Publication number
JP2014506700A
JP2014506700A JP2013553622A JP2013553622A JP2014506700A JP 2014506700 A JP2014506700 A JP 2014506700A JP 2013553622 A JP2013553622 A JP 2013553622A JP 2013553622 A JP2013553622 A JP 2013553622A JP 2014506700 A JP2014506700 A JP 2014506700A
Authority
JP
Japan
Prior art keywords
data
addresses
data type
address
graphics
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
JP2013553622A
Other languages
English (en)
Other versions
JP5694570B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2014506700A publication Critical patent/JP2014506700A/ja
Application granted granted Critical
Publication of JP5694570B2 publication Critical patent/JP5694570B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

概して、本開示の態様は、グラフィックス処理のための様々なデータタイプのデータの効率的なストレージのための例示的な技法について説明する。いくつかの例では、処理ユニットが、第1のデータタイプおよび第2のデータタイプのためにそれぞれアドレスの第1の連続範囲および第2の連続範囲を割り当て得る。処理ユニットは、それぞれ、第1のデータタイプまたは第2のデータタイプのグラフィックスデータ、あるいはアドレスの第1の連続範囲および第2の連続範囲内にアドレスがあるブロック内に、第1のデータタイプまたは第2のデータタイプのグラフィックスデータのアドレスのうちの少なくとも1つを記憶し得る。処理ユニットは、キャッシュのキャッシュラインに、第1のデータタイプのグラフィックスデータと、第2のデータタイプのグラフィックスデータを記憶し得る。

Description

本開示は、データストレージに関し、より詳細には、グラフィックス処理のためのデータストレージアドレスの割当てに関する。
視覚的提示のためのコンテンツを提供するデバイスは、概してグラフィックス処理ユニット(GPU)を含む。GPUは、画像のコンテンツを表すピクセルを処理し、ディスプレイ上にレンダリングする。ディスプレイ上にピクセルをレンダリングするために、GPUは様々なデータタイプを処理する。様々なタイプのデータは1つまたは複数のデータストレージデバイスに記憶される。GPUは、1つまたは複数のストレージデバイスからデータを取り出し、ディスプレイ上にピクセルをレンダリングするためにデータを処理する。
概して、本開示では、グラフィックス処理のための様々なデータタイプのデータの効率的なストレージのための技法について説明する。グラフィックス処理ユニット(GPU)は、表示するための画像をレンダリングするために様々なデータタイプのデータを処理し得る。プロセッサは、様々なデータタイプのデータをストレージデバイスに記憶し、様々なデータタイプのデータがストレージデバイスに記憶されたセグメントを定義するか、または様々なデータタイプのデータのアドレスがストレージデバイスに記憶されたセグメントを定義し得る。各セグメントは、連続アドレスによってアドレス指定可能である複数のブロックを含み得る。
デバイスはまた、共通メモリキャッシュを含み得る。共通メモリキャッシュは様々なデータタイプのデータを記憶し得る。GPUは、共通メモリキャッシュからデータを迅速に取り出すことが可能であり得る。いくつかの例では、GPUおよびプロセッサが、共通メモリキャッシュからデータを迅速に取り出すことが可能であり得る。本開示で説明する例示的な実装形態のうちのいくつかでは、共通メモリキャッシュは、グラフィックス処理のための様々なデータタイプのすべてについてのデータを記憶し得る。たとえば、共通メモリキャッシュは、第1のデータタイプのデータと、第2のデータタイプのデータとを記憶し得、第1のデータタイプと第2のデータタイプとは、グラフィックス処理のための異なるデータタイプである。
一例では、本開示は、処理ユニットを用いて、グラフィックス処理のための第1のデータタイプのためにアドレスの第1の連続範囲を割り当て、グラフィックス処理のための第2のデータタイプのためにアドレスの第2の連続範囲を割り当てることであって、第1のデータタイプと第2のデータタイプとが異なるデータタイプである、割り当てることと、処理ユニットを用いて、アドレスの第1の連続範囲内にアドレスがあるブロック内に、第1のデータタイプのグラフィックスデータ、または第1のデータタイプのグラフィックスデータのアドレスのうちの少なくとも1つを記憶することと、処理ユニットを用いて、アドレスの第2の連続範囲内にアドレスがあるブロック内に、第2のデータタイプのグラフィックスデータ、または第2のデータタイプのグラフィックスデータのアドレスのうちの少なくとも1つを記憶することと、共通メモリキャッシュの複数のキャッシュラインに第1のデータタイプのグラフィックスデータと第2のデータタイプのグラフィックスデータとを記憶することとを備える方法について説明する。
別の例では、本開示は、複数のキャッシュラインを含む共通メモリキャッシュと、処理ユニットであって、グラフィックス処理のための第1のデータタイプのためにアドレスの第1の連続範囲を割り当て、グラフィックス処理のための第2のデータタイプのためにアドレスの第2の連続範囲を割り当てることであって、第1のデータタイプと第2のデータタイプとが異なるデータタイプである、割り当てることと、アドレスの第1の連続範囲内にアドレスがあるブロック内に、第1のデータタイプのグラフィックスデータ、または第1のデータタイプのグラフィックスデータのアドレスのうちの少なくとも1つを記憶し、アドレスの第2の連続範囲内にアドレスがあるブロック内に、第2のデータタイプのグラフィックスデータ、または第2のデータタイプのグラフィックスデータのアドレスのうちの少なくとも1つを記憶することと、共通メモリキャッシュの複数のキャッシュラインに第1のデータタイプのグラフィックスデータと第2のデータタイプのグラフィックスデータとを記憶することとを行うように構成された処理ユニットとを備える装置について説明する。
別の例では、本開示は、グラフィックス処理のための第1のデータタイプのためにアドレスの第1の連続範囲を割り当て、グラフィックス処理のための第2のデータタイプのためにアドレスの第2の連続範囲を割り当てることであって、第1のデータタイプと第2のデータタイプとが異なるデータタイプである、割り当てることと、アドレスの第1の連続範囲内にアドレスがあるブロック内に、第1のデータタイプのグラフィックスデータ、または第1のデータタイプのグラフィックスデータのアドレスのうちの少なくとも1つを記憶することと、アドレスの第2の連続範囲内にアドレスがあるブロック内に、第2のデータタイプのグラフィックスデータ、または第2のデータタイプのグラフィックスデータのアドレスのうちの少なくとも1つを記憶することと、共通メモリキャッシュの複数のキャッシュラインに第1のデータタイプのグラフィックスデータと第2のデータタイプのグラフィックスデータとを記憶することとを1つまたは複数の処理ユニットに行わせる命令を備えるコンピュータ可読記憶媒体について説明する。
別の例では、本開示は、グラフィックス処理のための第1のデータタイプのためにアドレスの第1の連続範囲を割り当て、グラフィックス処理のための第2のデータタイプのためにアドレスの第2の連続範囲を割り当てるための手段であって、第1のデータタイプと第2のデータタイプとが異なるデータタイプである、割り当てるための手段と、アドレスの第1の連続範囲内にアドレスがあるブロック内に、第1のデータタイプのグラフィックスデータ、または第1のデータタイプのグラフィックスデータのアドレスのうちの少なくとも1つを記憶するための手段と、アドレスの第2の連続範囲内にアドレスがあるブロック内に、第2のデータタイプのグラフィックスデータ、または第2のデータタイプのグラフィックスデータのアドレスのうちの少なくとも1つを記憶するための手段と、共通メモリキャッシュの複数のキャッシュラインに第1のデータタイプのグラフィックスデータと第2のデータタイプのグラフィックスデータとを記憶するための手段とを備える装置について説明する。
1つまたは複数の例の詳細を添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
本開示の態様を実装するように構成され得るデバイスを示すブロック図。 図1の構成要素のうちのいくつかをより詳細に示すブロック図。 図1の構成要素のうちのいくつかをより詳細に示す別のブロック図。 本開示の態様を実装するように構成され得るデバイスの例示的な動作を示す流れ図。 共通メモリキャッシュの複数のキャッシュラインのうちのどの1つが特定のデータタイプに関連するかを判断するための例示的な技法を示す流れ図。 処理ユニットによって実行される例示的な技法を示す流れ図。
本開示の態様は、グラフィックス処理のための様々なデータタイプのグラフィックスデータの効率的なストレージに関し得る。例示のために、本開示の態様について、データがグラフィックス処理のために使用されるコンテキストにおいて説明する。しかしながら、本開示の態様は、グラフィックス処理システム以外のシステムに拡張可能であり得る。本開示の技法は、概して、ビデオまたは画像コンテンツを提供するデスクトップコンピュータおよびラップトップコンピュータ、デジタルメディアプレーヤ、セットトップボックス、携帯電話、携帯情報端末(PDA)などのモバイルビデオ受信デバイス、ビデオディスプレイを含むビデオゲーミングコンソール、モバイルビデオ会議ユニットなど、コンピュータグラフィックシステムに適用可能であり得る。
デバイス内のグラフィックス処理ユニット(GPU)は、デバイス上で表示される可視コンテンツを生成するために様々なデータタイプのグラフィックスデータを処理し得る。GPUは処理ユニットの一例である。グラフィックス処理のための様々なデータタイプは、限定はしないが、テクスチャデータ、頂点データ、命令、定数、およびピクセルデータを含み得る。様々なデータタイプのグラフィックスデータはデバイスのストレージデバイスに記憶され得る。グラフィックス処理のために上記で与えた例よりも多くのデータタイプが存在し得る。
いくつかの非限定的な例では、デバイスはまた、入出力メモリ管理ユニット(IOMMU:input/output memory management unit)を含む。IOMMUは、ストレージデバイスのストレージブロックへの仮想アドレス空間をGPUに与え得る。IOMMUは複数のアドレスブロックを含み得る。各アドレスブロックは、様々なデータタイプのグラフィックスデータがストレージデバイスに記憶された場所のアドレスを記憶し得る。IOMMUの各アドレスブロックは、GPUによって個々にアクセス可能であり得る。
デバイス内のプロセッサは、IOMMUのアドレス空間を複数のセグメントに断片化し得る。プロセッサは処理ユニットの一例であり得る。各セグメントは、連続アドレスを用いてアドレス指定可能であり得る複数のアドレスブロックを含み得る。プロセッサは、特定のデータタイプのグラフィックスデータがストレージデバイスに記憶された場所のアドレスを記憶するために各セグメントを割り当て得る。たとえば、IOMMUのアドレス空間の第1のセグメントは、連続アドレス0〜15を用いてアドレス指定可能であるアドレスブロックを含み得、IOMMUのアドレス空間の第2のセグメントは、連続アドレス16〜31を用いてアドレス指定可能であるアドレスブロックを含み得、以下同様である。
この例では、プロセッサは、グラフィックステクスチャデータがストレージデバイスに記憶された場所のアドレスを記憶するために、第1のセグメントの連続アドレス0〜15によってアドレス指定可能なアドレスブロックを割り当て得る。プロセッサは、グラフィックス頂点データがストレージデバイスに記憶された場所のアドレスを記憶するために、第2のセグメントの連続アドレス16〜31によってアドレス指定可能なアドレスブロックを割り当て得、以下同様である。アドレスブロックのための連続アドレス、たとえば、0〜15および16〜31は、例示のために与えたものにすぎず、限定的でない。
プロセッサおよびGPUの観点から、IOMMUは、グラフィックス処理のための様々なデータタイプのグラフィックスデータを記憶するデバイスであるように見え得る。たとえば、プロセッサまたはGPUがデータを読み取るかまたは書き込むとき、プロセッサまたはGPUは、データがIOMMUから読み取られているかまたはIOMMUに書き込まれているかのようにデータを読み取るかまたは書き込む。IOMMUは、読み取られたまたは書き込まれたデータがストレージデバイスに実際に記憶された場所のマップを維持し得る。データがストレージデバイスに実際に記憶された場所のマップは仮想アドレス空間と見なされ得る。
いくつかの代替例では、デバイス内のプロセッサは、IOMMUではなく、ストレージデバイスのストレージ空間を複数のセグメントに断片化し得る。これらの例では、IOMMUが必要とされないことがあるが、本開示の態様はそのように限定されると考えられるべきでない。各セグメントは、連続アドレスによってアドレス指定可能であり得る複数のストレージブロックを含み得る。プロセッサは、特定のデータタイプのグラフィックスデータを記憶するために各セグメントを割り当て得る。たとえば、ストレージデバイスの第1のセグメントは、連続アドレス0〜15によってアドレス指定可能であり得るストレージブロックを含み得、ストレージデバイスの第2のセグメントは、連続アドレス16〜31によってアドレス指定可能であり得るストレージブロックを含み得、以下同様である。この例では、プロセッサは、グラフィックスピクセルデータを記憶するために、第1のセグメントの連続アドレス0〜15によってアドレス指定可能なアドレスブロックを割り当て得る。プロセッサは、グラフィックス処理のための命令を記憶するために、第2のセグメントの連続アドレス16〜31によってアドレス指定可能なアドレスブロックを割り当て得、以下同様である。ストレージブロックのための連続アドレス、たとえば、0〜15および16〜31は、例示のために与えたものにすぎず、限定的でない。
デバイスはまた、共通メモリキャッシュを含み得る。共通メモリキャッシュは複数のキャッシュラインを含み得、各キャッシュラインは、グラフィックス処理のためのデータタイプのいずれかについてのグラフィックスデータを記憶するように構成され得る。たとえば、共通メモリキャッシュは、共通メモリキャッシュの1つまたは複数のキャッシュライン内に、テクスチャデータ、頂点データ、命令、定数、およびピクセルデータを記憶するように構成され得る。キャッシュラインは、ストレージのためのメモリの固定サイズブロックと見なされ得る。
共通メモリキャッシュは、プロセッサまたはGPUによる高速アクセスのためにグラフィックスデータを記憶し得る。共通メモリキャッシュ内の各キャッシュラインは少なくとも2つのフィールドを含み得る。第1のフィールドは、IOMMUのアドレスブロックのうちの1つへのアドレス、またはストレージデバイスのストレージブロックのうちの1つへのアドレスを記憶し得る。第1のフィールドがIOMMUのアドレスブロックのうちの1つへのアドレスを記憶する例では、IOMMUのアドレスブロックは、データタイプのグラフィックスデータが記憶されたストレージデバイス内のアドレスを含み得る。キャッシュラインの第2のフィールドは、実際のグラフィックスデータを記憶し得る。
データタイプのグラフィックスデータが変化した、たとえば、リライトまたは消去されたとき、プロセッサは、そのデータタイプのグラフィックスデータを記憶している共通メモリキャッシュ内のキャッシュラインのうちのいくつかを無効にする必要があり得る。キャッシュラインを無効にするために、プロセッサは、そのキャッシュラインの第2のフィールドにヌルデータ値を記憶し得る。共通メモリキャッシュ内のキャッシュラインを無効にすることにより、無効にされたキャッシュラインに記憶されたグラフィックスデータが最新でないことがGPUに示され得る。グラフィックスデータを記憶するキャッシュラインが最新のデータを記憶していないので、これは、GPUが、共通メモリキャッシュからではなく、ストレージデバイスからデータタイプのグラフィックスデータを取り出すことを引き起こし得る。
データタイプのグラフィックスデータを記憶しているキャッシュラインのうちのいくつかを無効にするために、GPUは、どのキャッシュラインがそのデータタイプのグラフィックスデータを記憶しているかを判断し得る。どのキャッシュラインがそのデータタイプのグラフィックスデータを記憶しているかを判断するために、GPUは、キャッシュラインのうちの各々の第1のデータフィールドが、そのデータタイプについて、IOMMUまたはストレージデバイス内に、それぞれアドレスブロックまたはストレージブロックのアドレスの割り当てられた連続範囲内にあるアドレスを記憶しているかどうかを判断するために、キャッシュラインのうちの各々の第1のデータフィールドを照会し得る。
たとえば、グラフィックスデータタイプが、グラフィックス処理のためのテクスチャデータであると仮定する。さらに、プロセッサは、テクスチャデータがストレージデバイスに記憶された場所のアドレスのストレージのために、アドレスブロック、すなわち、IOMMU内の連続アドレス0〜15を割り当てたと仮定する。テクスチャデータが変化したとき、プロセッサは、共通メモリキャッシュにおいて、テクスチャデータを記憶している各キャッシュラインを無効にし得る。GPUは、キャッシュラインのうちの各々の第1のフィールドが、0〜15内にあるアドレスを記憶しているかどうかを判断し得る。キャッシュラインが0〜15内にあるアドレスを記憶している場合、GPUはそのキャッシュラインを無効にし得る。本開示の態様では、GPUは、その特定のデータタイプのグラフィックスデータを記憶しているキャッシュラインのうちの1つまたは複数を無効にし得る。GPUは、共通メモリキャッシュ中の他のキャッシュラインのいずれをも無効にしないことがある。たとえば、GPUは、その特定のデータタイプのデータを記憶していないキャッシュラインのいずれをも無効にしないことがある。
図1は、本開示の態様を実装するように構成され得るデバイス10を示すブロック図である。デバイス10の例には、限定はしないが、モバイルワイヤレス電話、携帯情報端末(PDA)、ビデオディスプレイを含むビデオゲーミングコンソール、モバイルビデオ会議ユニット、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、テレビジョンセットトップボックス、デジタルメディアプレーヤなどがある。デバイス10は、プロセッサ12と、グラフィックス処理ユニット(GPU)14と、ディスプレイ16と、ディスプレイバッファ18と、ストレージデバイス20と、トランシーバモジュール22と、ユーザインターフェース24と、共通メモリキャッシュ26と、入出力メモリ管理ユニット(IOMMU)28とを含み得る。プロセッサ12およびGPU14はそれぞれ処理ユニットの例であり得る。
デバイス10は、明快のために図1に示されていない追加のモジュールまたはユニットを含み得る。たとえば、デバイス10は、デバイス10がモバイルワイヤレス電話である例において電話通信を実現するために、そのいずれも図1に示されていないスピーカーおよびマイクロフォンを含み得る。さらに、デバイス10に示す様々なモジュールおよびユニットは、デバイス10のあらゆる例において必要であるとは限らない。たとえば、デバイス10がデスクトップコンピュータである例では、ユーザインターフェース24およびディスプレイ16はデバイス10の外部にあり得る。別の例として、IOMMU28は、以下でより詳細に説明するように、あらゆる例において必要であるとは限らない。
プロセッサ12、GPU14、共通メモリキャッシュ26、およびIOMMU28は別個のユニットとして示されているが、本開示の態様はそのように限定されない。一例として、GPU14、共通メモリキャッシュ26、およびIOMMU28はプロセッサ12内に形成され得、たとえば、1つの処理ユニットが、プロセッサ12およびGPU14、ならびに、共通メモリキャッシュ26およびIOMMU28を含み得る。別の例として、プロセッサ12はIOMMU28を含み得、GPU14は共通メモリキャッシュ26を含み得る。プロセッサ12と、GPU14と、共通メモリキャッシュ26と、IOMMU28との構成の様々な組合せが可能であり得、本開示の態様はこれらの様々な組合せを企図する。
処理ユニットとそれぞれ見なされ得るプロセッサ12およびGPU14の例には、限定はしないが、デジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路がある。ストレージデバイス20は1つまたは複数のコンピュータ可読記憶媒体を備え得る。ストレージデバイス20の例には、限定はしないが、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータまたはプロセッサによってアクセスされ得る、任意の他の媒体がある。いくつかの態様では、ストレージデバイス20は、本開示においてプロセッサ12およびGPU14に起因する機能を実行することをプロセッサ12および/またはGPU14に行わせる命令を含み得る。
ユーザインターフェース24の例には、限定はしないが、トラックボール、マウス、キーボード、および他のタイプの入力デバイスがある。ユーザインターフェース24はまた、タッチスクリーンであり得、ディスプレイ16の一部として組み込まれ得る。トランシーバモジュール22は、デバイス10と別のデバイスまたはネットワークとの間のワイヤレスまたはワイヤード通信を可能にするための回路を含み得る。トランシーバモジュール22は、ワイヤードまたはワイヤレス通信のための変調器、復調器、増幅器および他のそのような回路を含み得る。
プロセッサ12は1つまたは複数のアプリケーションを実行し得る。アプリケーションの例には、ウェブブラウザ、電子メールアプリケーション、スプレッドシート、ビデオゲーム、またはプレゼントメントのために可視画像を生成する他のアプリケーションがある。これらの1つまたは複数のアプリケーションはストレージデバイス20内に記憶され得る。いくつかの事例では、プロセッサ12は、トランシーバモジュール22を介して1つまたは複数のアプリケーションをダウンロードし得る。プロセッサ12は、ユーザインターフェース24を介したユーザによる選択に基づいて1つまたは複数のアプリケーションを実行し得る。いくつかの例では、プロセッサ12は、ユーザ対話なしに1つまたは複数のアプリケーションを実行し得る。
プロセッサ12によって生成される可視画像の各々は、プリミティブと呼ばれることがある複数のポリゴンを用いて形成された2次元(2D)または3次元(3D)画像であり得る。プロセッサ12は、ポリゴンの頂点の座標を判断し得る。ポリゴンの一例は三角形であるが、ポリゴンは三角形に限定されると考えられるべきでない。例示のために、本開示における例について、ポリゴンが三角形であるコンテキストにおいて説明する。たとえば、プロセッサ12は、各三角形について3つの頂点の座標を判断し得る。2D画像では、各三角形の各頂点の座標はx座標およびy座標を備え得る。3D画像では、各三角形の各頂点の座標は、x、y、z、およびw座標を備え得、w座標は、無限に遠くにある頂点を識別するために有益であり得る同次座標である。ポリゴンについて判断された頂点座標は頂点データと呼ばれる。プロセッサ12は頂点データをストレージデバイス20に記憶し得る。
プロセッサ12はまた、判断された頂点について様々な他の属性を判断し得る。たとえば、各頂点について、プロセッサ12は、ピクセルデータと呼ばれるカラー値を判断し得る。各カラー値は、3つまたは4つの成分、たとえば、赤、緑、および青成分、または赤、緑、青、および透明度ファクタを含み得る。いくつかのデバイスでは追加のカラー座標が使用され得る。プロセッサ12は、ストレージデバイス20にピクセルデータを記憶し得る。
プロセッサ12はまた、ストレージデバイス20にテクスチャ画像を記憶し得る。テクスチャ画像は、ポリゴンをより現実的に見えさせるためにポリゴンに適用される画像であり得る。テクスチャ画像は、概してテクスチャデータの2次元アレイであり得るが、テクスチャ画像はテクスチャデータの1次元または3次元アレイでもあり得る。例示のために、本開示の態様について、テクスチャデータの2次元アレイのコンテキストにおいて説明する。プロセッサ12は、アレイの座標に基づいて2次元アレイ内にテクスチャデータを記憶し得る。アレイの座標は(u,v)であり得、座標uは2次元アレイのx軸に沿い、座標vは2次元アレイのy軸に沿う。たとえば、プロセッサ12は、ポリゴンの座標に対応するアレイ内のロケーションにおいてポリゴンに適用されるべきテクスチャ画像のテクスチャデータをストレージデバイス20に記憶し得る。
頂点データ、ピクセルデータ、およびテクスチャデータは、GPU14がディスプレイ16上に画像をレンダリングするために使用し得るグラフィックス処理のための異なるデータタイプの例である。頂点データ、ピクセルデータ、およびテクスチャデータに加えて、GPU14はまた、ディスプレイ16上に画像をレンダリングするためにグラフィックス処理のための他のデータタイプのグラフィックスデータを利用し得る。一例として、GPU16は、ディスプレイ16上に画像をレンダリングするために、ストレージデバイス20に記憶されたレンダリング命令を利用し得る。ストレージデバイス20に記憶された命令は、グラフィックス処理のためのデータタイプの別の例であり得る。別の例として、GPU16は、ディスプレイ16上に画像をレンダリングするために、ストレージデバイス20に記憶された定数を利用し得る。ストレージデバイス20に記憶された定数は、グラフィックス処理のためのデータタイプの別の例であり得る。
GPU14は、画像をレンダリングするために様々なデータタイプからのグラフィックスデータを使用するグラフィックスパイプラインを実装し得る。グラフィックスパイプラインは、少なくとも何らかのハードウェアを介して実装され得る。たとえば、グラフィックスパイプラインは、GPU14上で実行されるソフトウェア、GPU14上で実行されるファームウェア、GPU14上に形成された1つまたは複数のハードウェアユニット、あるいはそれらの組合せとして実装され得る。グラフィックスパイプラインは複数の構成要素を含み得る。たとえば、GPU14のグラフィックスパイプラインは、頂点データを取り出し、頂点の座標を別の座標系に変換し、頂点の光値を計算する頂点シェーダを含み得る。GPU14のグラフィックスパイプラインはまた、ポリゴン内のピクセルの深さ(z)を判断するプリミティブアセンブラを含み得る。GPU14のグラフィックスパイプラインはまた、ポリゴン内のピクセルがその後他のピクセルによって遮られた場合、さらなる処理からそれらのポリゴン内のピクセルを除去する、初期深さテストエンジンを含み得る。GPU14のグラフィックスパイプラインはまた、ポリゴンの頂点のカラー値に基づいてポリゴン内のピクセルのカラー値を補間するピクセルシェーダを含み得る。
グラフィックスパイプラインの様々な構成要素は、例示のために与えたものであり、限定的であると考えられるべきでない。代替例では、グラフィックスパイプラインは、上記で説明した構成要素よりも多くの構成要素を含み得る。グラフィックスパイプラインはまた、上記で説明した構成要素よりも少ない構成要素を含み得る。
いくつかの例では、GPU14が画像をレンダリングするとき、GPU14は、画像のレンダリングされた部分をディスプレイバッファ18に出力し得る。ディスプレイバッファ18は、画像全体がレンダリングされるまで、レンダリングされた画像を一時的に記憶し得る。ディスプレイバッファ18はフレームバッファと見なされ得る。ディスプレイバッファ18は、次いで、ディスプレイ16上に表示されるべきレンダリングされた画像を送信し得る。いくつかの代替例では、GPU14は、画像をディスプレイバッファ18に一時的に記憶するのではなく、画像のレンダリングされた部分を表示のためにディスプレイ16に直接出力し得る。ディスプレイ16は、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、プラズマディスプレイ、または別のタイプのディスプレイデバイスを備え得る。
ストレージデバイス20は、複数のストレージブロックを含み得る。各ストレージブロックは、グラフィックス処理のための様々なデータタイプのグラフィックスデータを記憶し得る。各ストレージブロックは個々にアドレス指定可能であり得る。いくつかの例では、プロセッサ12は、ストレージデバイス20によって与えられるストレージ空間をデータストレージセグメントに断片化し得る。各セグメントは、連続メモリアドレスによってそれぞれアドレス指定可能である複数のデータストレージブロックを含み得る。したがって、各データストレージセグメントは、連続メモリアドレスの範囲によって定義され得る。
プロセッサ12は、特定のデータタイプのために各データストレージセグメントを割り当て得る。たとえば、プロセッサ12は、第1のデータタイプのグラフィックスデータを記憶するために第1のセグメントを割り当て、第2のデータタイプのグラフィックスデータを記憶するために第2のセグメントを割り当て得る。この例では、第1のセグメントのストレージブロックは連続アドレスによってアドレス指定可能であり得る。たとえば、プロセッサ12は、第1のセグメント中のブロックに連続アドレスの第1の範囲を割り当て得る。第1のセグメントの各ストレージブロックのアドレスは、連続アドレスの第1の範囲内にあり得る。同様に、第2のセグメントのストレージブロックのアドレスは、プロセッサ12によって割り当てられた連続アドレスの第2の範囲内にあり得る。
いくつかの例では、デバイス10はIOMMU28を含み得る。IOMMU28は、デバイス10のあらゆる例において必要であるとは限らない。たとえば、IOMMU28は、プロセッサ12がストレージデバイス20に記憶された様々なデータタイプのグラフィックスデータに連続アドレスを割り当てる例では、必要でないことがある。ただし、本開示の態様はそのように限定されると考えられるべきでない。デバイス10は、プロセッサ12がストレージデバイス20に記憶された様々なデータタイプのグラフィックスデータに連続アドレスを割り当てる例においてさえ、IOMMU28を含み得る。
IOMMU28は、1つまたは複数のハードウェアユニット、ハードウェアユニット上で実行されるソフトウェア、ハードウェアユニット上で実行されるファームウェア、あるいはそれらの任意の組合せとして実装され得る。IOMMU28が1つまたは複数のハードウェアユニットである例では、IOMMU28の例には、限定はしないが、DSP、汎用マイクロプロセッサ、ASIC、FPGA、あるいは他の等価な集積回路またはディスクリート論理回路があり得る。
IOMMU28は、IOMMU28が、たとえば、GPU14に対して、様々なデータタイプのグラフィックスデータを記憶するデバイスであるように見えるように、ストレージデバイス20のストレージブロックへの仮想アドレス空間をGPU14に与え得る。たとえば、IOMMU28は、プロセッサ12および/またはGPU14によって要求されたストレージデバイス20へのアクセスを処理することを担当するハードウェア構成要素であり得る。たとえば、IOMMU28は、複数のアドレスブロックを示すテーブルまたは他のデータ構造、たとえば、レジスタを含み得る。各アドレスブロックは、ストレージデバイス20のストレージブロックのうちの1つのアドレスを記憶し得る。各アドレスブロックは個々にアドレス指定可能であり得る。
プロセッサ12またはGPU14がデータを読み取るかまたは書き込むことを望むとき、プロセッサ12またはGPU14上で実行されているソフトウェアは、プロセッサ12またはGPU14が、アドレスによってコールアウトされたアドレスブロックから読み取っているかまたはそのアドレスブロックに書き込んでいるかのように、IOMMU28のアドレスブロックのうちの1つのアドレスをコールアウトする。IOMMU28は、次いで、どのストレージブロックが、IOMMU28のアドレスブロックに記憶されたアドレスに対応するかを判断し得る。IOMMU28は、次いで、IOMMU28のアドレスブロックに記憶されたアドレスに対応するストレージブロックに書き込むかまたはそのストレージブロックから読み取り得る。
明快のために、(1つまたは複数の)ストレージデバイスアドレスという用語は、ストレージデバイス20内のストレージブロックの(1つまたは複数の)アドレスを指し得る。また、(1つまたは複数の)IOMMUアドレスという用語は、IOMMU28内のアドレスブロックの(1つまたは複数の)アドレスを指し得る。上記で説明したように、IOMMU28の各アドレスブロックはストレージデバイスアドレスを記憶し得る。概して、IOMMU28はIOMMUアドレスをストレージデバイスアドレスにマッピングし得る。このようにして、プロセッサ12またはGPU14がIOMMUアドレスをコールアウトしたとき、IOMMU28は、たとえば、テーブル、レジスタ、行列または他のデータ構造によって示される、IOMMUアドレスに対応するストレージデバイスアドレスを判断することによって、マッピングに基づいてグラフィックスデータを記憶しているストレージブロックのストレージデバイスアドレスを判断し得る。
上記で説明したように、プロセッサ12は、ストレージデバイス20のメモリ空間をセグメントに断片化し得る。各セグメントは、連続ストレージデバイスアドレスによってそれぞれアドレス指定可能である複数のストレージブロックを含み得る。いくつかの例では、プロセッサ12は、IOMMU28のアドレス空間をセグメントに断片化し得る。各セグメントは、連続IOMMUアドレスによってそれぞれアドレス指定可能である複数のアドレスブロックを含み得る。
いくつかの例では、プロセッサ12は、IOMMU28内のアドレスブロックに連続IOMMUアドレスの第1の範囲を割り当て得る。これらの例では、連続IOMMUアドレスの第1の範囲は、第1のデータタイプのグラフィックスデータがストレージデバイス20に記憶された場所のアドレスを記憶するアドレスブロックのためのものである。プロセッサ12はまた、IOMMU28内のアドレスブロックに連続IOMMUアドレスの第2の範囲を割り当て得る。これらの例では、連続IOMMUアドレスの第2の範囲は、第2のデータタイプのグラフィックスデータがストレージデバイス20に記憶された場所のアドレスを記憶するアドレスブロックのためのものである。プロセッサ12は、グラフィックス処理のための様々なデータタイプの連続IOMMUアドレスの範囲を同様に割り当て得る。
いくつかの事例では、各データタイプのグラフィックスデータに連続ストレージデバイスアドレスを割り当てること、または各データタイプのグラフィックスデータに連続IOMMUアドレスを割り当てることが有利であり得る。一例として、プロセッサ12およびGPU14は、データタイプの各々についてのグラフィックスデータがストレージデバイス20に記憶された正確なアドレスを追跡する必要がないことがある。プロセッサ12およびGPU14は、連続ストレージデバイスアドレスまたはIOMMUアドレスの範囲を追跡するだけでよい。連続ストレージデバイスアドレスまたはIOMMUアドレスの各範囲はサブヒープと見なされ得る。プロセッサ12は、ストレージデバイス20内のストレージブロックまたはIOMMU28内のアドレスブロックに、サブヒープ、たとえば、連続ストレージデバイスアドレスまたはIOMMUアドレスの範囲を割り当てるアロケータと見なされ得る。
たとえば、GPU14が、グラフィックス処理のためのテクスチャデータを取り出すことを望むと仮定する。また、テクスチャデータが、従来のヒープアロケータでは発生するように、連続してアドレス指定可能であるストレージブロックに記憶されないと仮定する。この場合、GPU14は、テクスチャデータの各1つについてストレージデバイスアドレスを追跡する必要があり得、これは非効率的な処理であり得る。本開示の態様では、GPU14は、各個々のストレージデバイスアドレスを追跡することが不要であり得、ストレージデバイスアドレスの範囲を追跡し得、これにより、効率的な処理が促進され得る。
別の例として、各データタイプのグラフィックスデータに連続ストレージデバイスアドレスまたはIOMMUアドレスを割り当てる潜在的な利益のために、プロセッサ12およびGPU14は、不正確なデータを取り出す可能性が低くなり得る。たとえば、シェーダプログラムなど、GPU14上で実行されるソフトウェアは、特定のデータタイプのデータ、たとえば、テクスチャデータをGPU14に取り出させ得る。シェーダプログラムは、1つの非限定的な例として、アプリケーション開発者によってOpenCLバージョン1.1仕様のシンタックスを使用して書かれ得る。ただし、本開示の態様は、シェーダプログラムがOpenCLバージョン1.1仕様に従って書かれた例に限定されると考えられるべきでない。GPU14上で実行されるソフトウェアは、テクスチャデータをそこから取り出すべきアドレスをGPU14に与え得る。この例では、プロセッサ12は、テクスチャデータの連続IOMMUアドレスの範囲を用いてGPU14に命令し得る。GPU14上で実行されるソフトウェアは、次いで、テクスチャデータを取り出すためにそのソフトウェアがGPU14に与えるアドレスが連続IOMMUアドレスの範囲内にあることを保証し得る。たとえば、シェーダプログラムは、シェーダプログラムが要求したデータのタイプの範囲外にあるデータにアクセスすることをGPU14が試みないことを保証し得る。
図1に示すように、デバイス10はまた、共通メモリキャッシュ26を含み得る。共通メモリキャッシュ26はプロセッサ12およびGPU14の外部にあるものとして示されているが、いくつかの例では、共通メモリキャッシュ26は、処理ユニット、たとえば、プロセッサ12またはGPU14の内部に形成されるか、あるいは部分的にプロセッサ12とGPU14の両方の中に形成され得る。共通メモリキャッシュ26は、プロセッサ12またはGPU14による高速アクセスのためにグラフィックスデータを記憶し得る。たとえば、処理ユニット、たとえば、プロセッサ12およびGPU14は、ストレージデバイス20からグラフィックスデータを取り出すよりも高速に共通メモリキャッシュ26からグラフィックスデータを取り出すことが可能であり得る。
共通メモリキャッシュ26は複数のキャッシュラインを含み得、各キャッシュラインは、グラフィックス処理のためのグラフィックスデータタイプのいずれかについてのグラフィックスデータを記憶するように構成され得る。たとえば、共通メモリキャッシュ26は、共通メモリキャッシュ26の1つまたは複数のキャッシュライン内に、テクスチャデータ、頂点データ、命令、定数、およびピクセルデータを記憶し得る。共通メモリキャッシュ26は、単一のデータタイプのグラフィックスデータを記憶する複数のキャッシュではなく、様々なデータタイプのグラフィックスデータを記憶するように構成されるので、共通メモリキャッシュ26は効率的なストレージを促進し得る。たとえば、共通メモリキャッシュ26がテクスチャデータ、ピクセルデータ、頂点データ、命令、および定数を同じキャッシュに記憶することができるので、デバイス10は、テクスチャデータキャッシュ、ピクセルデータキャッシュ、頂点データキャッシュ、命令キャッシュ、および定数キャッシュを含む必要がないことがある。
キャッシュラインは、ストレージのためのメモリの固定サイズブロックと見なされ得る。各キャッシュラインは2つのフィールドを含み得る。第1のフィールドは、ストレージデバイスアドレスまたはIOMMUアドレスのうちの1つへのアドレス、たとえば、ストレージデバイス20のストレージブロックのうちの1つへのアドレス、またはIOMMU28のアドレスブロックのうちの1つへのアドレスを記憶し得る。第2のフィールドは、様々なデータタイプの実際のグラフィックスデータを記憶し得る。
データタイプのグラフィックスデータが変化した、たとえば、リライトまたは消去されたとき、プロセッサ12は、そのデータタイプのグラフィックスデータを記憶している共通メモリキャッシュ26内のキャッシュラインを無効にする必要があり得る。たとえば、共通メモリキャッシュ26内のキャッシュラインのうちのいくつかが、現在のテクスチャ画像のテクスチャデータを記憶していることがある。プロセッサ12が新しいテクスチャ画像を記憶したとき、プロセッサ12は、テクスチャ画像が変化したので、テクスチャデータを記憶している共通メモリキャッシュ26内のこれらのキャッシュラインを無効にする必要があり得る。別の例として、共通メモリキャッシュ26内のキャッシュラインのうちのいくつかが、処理されている現在のポリゴンの頂点データを記憶していることがある。GPU14が別のポリゴンを処理する必要があるとき、プロセッサ12は、現在のポリゴンの頂点がもはや処理されていないので、頂点データを記憶する共通メモリキャッシュ26内のこれらのキャッシュラインを無効にする必要があり得る。
一例として、キャッシュラインを無効にするために、プロセッサ12またはGPU14は、そのキャッシュラインの第2のフィールドにヌルデータ値を記憶し得る。共通メモリキャッシュ26内のキャッシュラインを無効にすることにより、無効にされたキャッシュラインに記憶されたデータが最新でないことがプロセッサ12およびGPU14に示され得る。プロセッサ12またはGPU14が無効にされたキャッシュラインからデータを取り出すとき、「キャッシュミス」が発生し得る。キャッシュミスが発生したとき、共通メモリキャッシュ26中の無効にされたキャッシュラインは最新のデータを記憶していないので、プロセッサ12またはGPU14はストレージデバイス20からグラフィックスデータを取り出し得る。いくつかの例では、ストレージデバイス20からグラフィックスデータを取り出すことに加えて、プロセッサ12またはGPU14はまた、高速な後続アクセスのために、取り出されたグラフィックスデータを共通メモリキャッシュ26のキャッシュラインに記憶し得る。
プロセッサ12またはGPU14は、どのデータタイプが変化したかに基づいて共通メモリキャッシュ26のどのキャッシュラインが無効にされるべきかを判断し得る。たとえば、テクスチャ画像が変化した場合、GPU14は、共通メモリキャッシュ26のどのキャッシュラインがテクスチャデータを記憶しているかを判断し得る。この例では、GPU14は、テクスチャデータを記憶している1つまたは複数のキャッシュラインを無効にし得、テクスチャデータ以外のデータタイプのデータを記憶しているキャッシュラインのいずれをも無効にしなくてよい。
このようにして、プロセッサ12またはGPU14は、共通メモリキャッシュ26のキャッシュラインのうちのいくつかのみを無効にし得、特定のデータタイプのグラフィックスデータが変化するたびに共通メモリキャッシュ26のすべてを無効にしなくてよい。プロセッサ12またはGPU14は、各無効化の後に共通メモリキャッシュ26に以前は記憶されていたグラフィックスデータのすべてを取り出すことが不要であり得るので、共通メモリキャッシュ26のキャッシュラインのすべてを無効にしないことにより、効率的なストレージがさらに促進され得る。プロセッサ12またはGPU14は、変化したグラフィックスデータのみを取り出し、変化したデータのみを共通メモリキャッシュ26に記憶する必要があり得る。
変化したデータタイプのグラフィックスデータを記憶しているキャッシュラインを無効にするために、プロセッサ12またはGPU14は、共通メモリキャッシュ26のどのキャッシュラインがそのデータタイプのグラフィックスデータを記憶しているかを判断し得る。たとえば、GPU14は、キャッシュラインのうちの各々の第1のデータフィールドが、そのデータタイプのストレージデバイスアドレスまたはIOMMUアドレスの割り当てられた連続範囲内にあるアドレスを記憶しているかどうかを判断するために、キャッシュラインのうちの各々の第1のデータフィールドを照会し得る。たとえば、グラフィックスデータタイプがピクセルデータであると仮定する。さらに、プロセッサ12が、IOMMU28内に、アドレスブロック、すなわち、連続IOMMUアドレス16〜31を割り当てたと仮定する。連続IOMUアドレス16〜31は、それぞれ、この例では、ピクセルデータが記憶されたストレージデバイス20のストレージブロックのアドレスを記憶し得る。
GPU14が共通メモリキャッシュ26に記憶されたピクセルデータ以外のピクセルデータにアクセスする必要があるとき、GPU14は、ストレージデバイス20からピクセルデータを取り出す必要があり得る。共通メモリキャッシュに新しい取り出されたピクセルデータを記憶するために、プロセッサ12は、プロセッサ12が取り出されたピクセルデータを記憶することができるように、共通メモリキャッシュ26において、ピクセルデータを記憶している十分な数のキャッシュラインを無効にし得る。プロセッサは、キャッシュラインのうちの各々の第1のフィールドが、16〜31内にあるアドレスを記憶しているかどうかを判断し得る。キャッシュラインが16〜31内にあるアドレスを記憶している場合、プロセッサ12はそのキャッシュラインを無効にし得る。
プロセッサ12は連続ストレージデバイスアドレスまたはIOMMUアドレスを割り当て得るので、プロセッサ12は、キャッシュラインが特定のデータタイプのグラフィックスデータを記憶しているかどうかをより容易に判断し得る。たとえば、ストレージデバイスアドレスまたはIOMMUアドレスが連続でなかった場合、プロセッサ12は、その特定のデータタイプについてあらゆる単一のストレージデバイスアドレスまたはIOMMUアドレスを追跡する必要があろう。プロセッサ12は、次いで、キャッシュラインがその特定のデータタイプのグラフィックスデータを記憶しているかどうかを判断するために、キャッシュラインの第1のデータフィールドに記憶されたアドレスを、その特定のデータタイプについてあらゆる単一のストレージデバイスアドレスまたはIOMMUアドレスと比較する必要があろう。本開示の態様では、プロセッサ12は、キャッシュラインが特定のデータタイプのグラフィックスデータを記憶しているかどうかを判断するために、各キャッシュラインの第1のフィールドに記憶されたアドレスを、個々のストレージデバイスアドレスまたはIOMMUアドレスではなく、連続ストレージデバイスアドレスまたはIOMMUアドレスの範囲と比較し得る。
図2は、図1の構成要素のうちのいくつかをより詳細に示すブロック図である。たとえば、図2は、図1の共通メモリキャッシュ26およびストレージデバイス20をより詳細に示している。図2に示すように、ストレージデバイス20は、12個のストレージブロック0〜11(「ストレージブロック」と総称される)を含む。ストレージデバイス20は、12個のストレージブロックよりも多いまたは少ないストレージブロックを含み得る。いくつかの例では、ストレージデバイス20は4ギガバイト(GB)ストレージデバイスであり得るが、本開示の態様はそのように限定されない。
図2に示すように、ストレージブロック0〜11は連続的に順序付けられていない。これは、ストレージブロック0〜11がストレージデバイス20上で連続することは可能であり得るが、いくつかの例では、ストレージブロック0〜11がストレージデバイス20上で必ずしも連続する必要があるとは限らないことを示すためである。ストレージブロック0〜11のうちの各1つは、それのアドレスによって個々にアドレス指定可能であり得る。たとえば、図2はストレージデバイスアドレス0〜11を示している。ストレージデバイスアドレス0〜11はセグメントに断片化、すなわち、分割され得、各セグメントはストレージデバイスアドレスの範囲を備える。プロセッサ12は、ストレージデバイスアドレスの各範囲を特定のデータタイプに割り当て得る。ストレージデバイスアドレスの範囲は、各データタイプについて連続し得る。
たとえば、図2に示すように、ストレージデバイスアドレス32の範囲は、テクスチャデータを記憶しているストレージブロック、たとえば、ストレージブロック4、8、および1のための連続ストレージデバイスアドレスであり得る。ストレージデバイスアドレス32の範囲はストレージアドレス0〜2を含み得る。ストレージデバイスアドレス34の範囲は、頂点データを記憶しているストレージブロック、たとえば、ストレージブロック10および5のための連続ストレージデバイスアドレスであり得る。ストレージデバイスアドレス34の範囲はストレージアドレス3および4を含み得る。ストレージデバイスアドレス36の範囲は、命令を記憶しているストレージブロック、たとえば、ストレージブロック2および9のための連続ストレージデバイスアドレスであり得る。ストレージデバイスアドレス36の範囲はストレージアドレス5および6を含み得る。ストレージデバイスアドレス38の範囲は、定数を記憶しているストレージブロック、たとえば、ストレージブロック0および6のための連続ストレージデバイスアドレスであり得る。ストレージデバイスアドレス38の範囲はストレージアドレス7および8を含み得る。ストレージデバイスアドレス40の範囲は、ピクセルデータを記憶しているストレージブロック、たとえば、ストレージブロック11、3、および7のための連続ストレージデバイスアドレスであり得る。ストレージデバイスアドレス40の範囲はストレージアドレス9〜11を含み得る。図2に示すよりも多いまたは少ないテクスチャデータ、頂点データ、命令、定数、およびピクセルデータが存在し得る。
図2に示すように、共通メモリキャッシュ26はキャッシュライン42A〜42F(「キャッシュライン42」と総称される)を含み得る。図2に示すよりも多いまたは少ないキャッシュライン42が存在し得る。いくつかの例では、共通メモリキャッシュ26はレベル2(L2)キャッシュであり得る。いくつかの例では、共通メモリキャッシュ26は、高速範囲無効化を伴う32キロバイト(KB)8ウェイセット連想L2キャッシュであり得る。
キャッシュライン42のうちの各1つは、アドレスフィールド30Aと、データフィールド30Bとを含み得る。アドレスフィールド30Aは、データフィールド30Bに記憶されたグラフィックスデータのストレージデバイスアドレスを示し得る。たとえば、キャッシュライン42Aのアドレスフィールド30Aは、データフィールド30Bに記憶されたグラフィックスデータのアドレスが1であることを示す。図2に示すように、ストレージブロック8のストレージデバイスアドレスが1であるので、キャッシュライン42Aのデータフィールド30Bは、ストレージブロック8に対応する第2のテクスチャデータを記憶している。
同じデータタイプを記憶している共通メモリキャッシュ26のキャッシュライン42はキャッシュライン42のセットと見なされ得る。たとえば、図2に示すように、キャッシュライン42Bおよびキャッシュライン42Eはそれぞれ頂点データを記憶している。この例では、キャッシュライン42Bおよびキャッシュライン42Eは、頂点データを記憶しているキャッシュラインのセットを形成し得る。別の例として、図2に示すように、キャッシュライン42C、キャッシュライン42D、およびキャッシュライン42Fは、それぞれピクセルデータを記憶している。この例では、キャッシュライン42C、キャッシュライン42D、およびキャッシュライン42Fは、ピクセルデータを記憶しているキャッシュラインのセットを形成し得る。
「キャッシュラインのセット」は、そのセット中のキャッシュラインのみが特定のグラフィックスデータタイプを記憶することができることを暗示するわけではないことを理解されたい。たとえば、図2に示すように、キャッシュライン42Aおよび42Eは頂点データを記憶している。しかしながら、代替例では、キャッシュライン42Aおよび42Eは、他のグラフィックスデータタイプ、たとえば、テクスチャデータ、ピクセルデータ、命令データ、および定数データを記憶し得る。「キャッシュラインのセット」という句は、同様のグラフィックスデータタイプを記憶しているキャッシュライン42のグループを示すために使用される。
いくつかの例では、キャッシュラインのセットは連続でないことがある。たとえば、キャッシュライン42Bおよび42Eはキャッシュラインのセットを形成するが、連続ではない。別の例として、キャッシュライン42C、42D、および42Fは、キャッシュラインのセットを形成するが、連続ではない。代替例では、キャッシュラインのセットが連続であることが可能であり得る。
上記で説明したように、いくつかの例では、キャッシュライン42のうちの1つが記憶しているデータのタイプのグラフィックスデータが変化した場合、プロセッサ12は、キャッシュライン42のうちのその1つを無効にし得る。たとえば、テクスチャ画像が変化した場合、プロセッサ12は、テクスチャデータを記憶しているキャッシュライン42のうちの1つまたは複数のキャッシュラインを無効にし得る。キャッシュライン42のうちの1つがテクスチャデータを記憶しているかどうかを判断するために、プロセッサ12は、キャッシュライン42のうちの各々のアドレスフィールド30Aを、テクスチャデータに割り当てられたストレージデバイスアドレスの連続範囲と比較し得る。
たとえば、図2の例では、プロセッサ12は、連続ストレージデバイスアドレス0〜2を含むストレージデバイスアドレス32の連続範囲をテクスチャデータに割り当てた。この例では、プロセッサ12は、キャッシュライン42のうちの各々のアドレスフィールド30Aを比較して、それがストレージデバイスアドレス32の連続範囲内にあるかどうかを判断し得る。キャッシュライン42Aのアドレスフィールド30Aはストレージデバイスアドレス32の連続範囲内にあり、たとえば、1が0〜2内にある。この例では、プロセッサ12は、キャッシュライン42Aのデータフィールド30Bに記憶された第2のテクスチャデータをヌルデータと置き換え得る。プロセッサ12は、次いで、ストレージデバイス20から新しいテクスチャデータを取り出し得、そのテクスチャデータをキャッシュライン42Aに記憶し得る。プロセッサ12は、あらゆる例においてキャッシュライン42Aにテクスチャデータを記憶する必要があるとは限らない。いくつかの例では、取り出された新しいテクスチャデータのストレージデバイスアドレスが、1とは異なるストレージデバイスアドレスに記憶された場合、プロセッサ12はまた、キャッシュライン42Aのアドレスフィールド30Aを更新し得る。
図3は、図1の構成要素のうちのいくつかをより詳細に示す別のブロック図である。たとえば、図3は、図1の共通メモリキャッシュ26、IOMMU28、およびストレージデバイス20をより詳細に示している。図3に示すストレージデバイス20は、図2に示すストレージデバイス20と同様であり得る。ただし、図3の例では、プロセッサ12は、連続ストレージデバイスアドレスの範囲を割り当てないことがある。たとえば、図3に示すように、ストレージデバイス20のストレージブロックのうちの各1つのアドレスは連続的に順序付けられていない。説明しやすいように、図3の例では、ストレージブロックのストレージデバイスアドレスはストレージブロックの識別子に対応する。たとえば、ストレージデバイス20のストレージブロック4のストレージデバイスアドレスは4であり、ストレージデバイス20のストレージブロック8のストレージデバイスアドレスは8であり、以下同様である。ただし、本開示の態様はそのように限定されない。ストレージブロックのストレージデバイスアドレスはストレージブロックの識別子に限定されない。
図3は、IOMMU28をより詳細に示している。図3の例では、IOMMU28は12個のアドレスブロック0〜11を含む。IOMMU28は、12個のアドレスブロックよりも多いまたは少ないアドレスブロックを含み得る。いくつかの例では、IOMMU28は、ストレージデバイス20のストレージブロック0〜11への仮想アドレス空間をGPU14に与え得る。
アドレスブロック0〜11のうちの各1つは、それのアドレスによって個々にアドレス指定可能であり得る。たとえば、図3はIOMMUアドレス0〜11を示している。IOMMUアドレス0〜11はセグメントに断片化され得、各セグメントはIOMMUアドレスの範囲を備える。プロセッサ12は、IOMMUアドレスの各範囲を特定のデータタイプに割り当て得る。IOMMUアドレスの範囲は、各データタイプについて連続し得る。
たとえば、図3に示すように、IOMMUアドレス44の範囲は、テクスチャデータを記憶しているストレージデバイス20のストレージブロックのストレージデバイスアドレス、たとえば、ストレージデバイスアドレス4、8、および1を記憶しているアドレスブロックの連続IOMMUアドレスであり得る。IOMMUアドレス44の範囲はIOMMUアドレス0〜2を含み得る。IOMMUアドレス46の範囲は、頂点データを記憶しているストレージデバイス20のストレージブロックのストレージデバイスアドレス、たとえば、ストレージデバイスアドレス10および5を記憶しているアドレスブロックの連続IOMMUアドレスであり得る。IOMMUアドレス46の範囲はIOMMUアドレス3および4を含み得る。IOMMUアドレス48の範囲は、命令を記憶しているストレージデバイス20のストレージブロックのストレージデバイスアドレス、たとえば、ストレージデバイスアドレス2および9を記憶しているアドレスブロックの連続IOMMUアドレスであり得る。IOMMUアドレス48の範囲はIOMMUアドレス5および6を含み得る。IOMMUアドレス50の範囲は、定数を記憶しているストレージデバイス20のストレージブロックのストレージデバイスアドレス、たとえば、ストレージデバイスアドレス0および6を記憶しているアドレスブロックの連続IOMMUアドレスであり得る。IOMMUアドレス50の範囲はIOMMUアドレス7および8を含み得る。IOMMUアドレス52の範囲は、ピクセルデータを記憶しているストレージデバイス20のストレージブロックのストレージデバイスアドレス、たとえば、ストレージデバイスアドレス11、3、および7を記憶しているアドレスブロックの連続IOMMUアドレスであり得る。IOMMUアドレス52の範囲はIOMMUアドレス9〜11を含み得る。図2の場合と同様に、図3に示すよりも多いまたは少ないテクスチャデータ、頂点データ、命令、定数、およびピクセルデータが存在し得る。
図3に示すように、図2と同様に、共通メモリキャッシュ26はキャッシュライン42を含み得る。また、図2と同様に、キャッシュライン42のうちの各1つは、アドレスフィールド30Aと、データフィールド30Bとを含み得る。図3に示す例では、アドレスフィールド30Aは、データフィールド30Bに記憶されたグラフィックスデータがストレージデバイス20に記憶されている場所のアドレスを記憶しているIOMMU28のアドレスブロックのIOMMUアドレスを示し得る。たとえば、図3中のキャッシュライン42Aのアドレスフィールド30Aは、IOMMU28のアドレスブロックのアドレスが1であることを示している。図3に示すように、IOMMUアドレス1はIOMMU28のアドレスブロック1のためのものである。IOMMUのアドレスブロック1はストレージデバイスアドレス8を記憶している。ストレージデバイスアドレス8はストレージデバイス20中のストレージブロック8に対応する。図3に示すように、ストレージデバイス20のストレージブロック8は第2のテクスチャデータを記憶している。キャッシュライン42Aのデータフィールド30Bは第2のテクスチャデータを記憶しており、その第2のテクスチャデータは、ストレージデバイスアドレス8をもつストレージブロック8に対応する。ストレージデバイスアドレス8はIOMMU28のアドレスブロック1に対応し、アドレスブロック1のIOMMUアドレスは1であり、その1はキャッシュライン42Aのデータフィールド30Aに対応する。
上記のように、いくつかの例では、キャッシュライン42のうちの1つが記憶しているデータのタイプのグラフィックスデータが変化した場合、プロセッサ12は、図3のキャッシュライン42のうちのその1つを無効にし得る。前述のように、テクスチャ画像が変化し、プロセッサ12は、テクスチャデータを記憶しているキャッシュライン42のうちの1つまたは複数のキャッシュラインを無効にする必要があり得ると仮定する。キャッシュライン42のうちの1つがテクスチャデータを記憶しているかどうかを判断するために、プロセッサ12は、キャッシュラインのうちの各々のアドレスフィールド30Aを、テクスチャデータに割り当てられたIOMMUアドレスの連続範囲と比較し得る。
たとえば、図2の例と同様に、プロセッサ12は、連続IOMMUアドレス0〜2を含むIOMMUアドレス44の連続範囲をテクスチャデータに割り当てた。この例では、プロセッサ12は、キャッシュライン42のうちの各々のアドレスフィールド30Aを比較して、それがIOMMUアドレス44の連続範囲内にあるかどうかを判断し得る。図3中のキャッシュライン42Aのアドレスフィールド30Aは、IOMMUアドレス44の連続範囲内にある。この例では、プロセッサ12はキャッシュライン42Aを無効にし得る。
図4は、本開示の態様を実装するように構成され得るデバイス10の例示的な動作を示す流れ図である。説明のために、図1、図2、および図3への参照を行う。上記で説明したように、処理ユニット、たとえば、プロセッサ12またはGPU14は、ストレージデバイス20のストレージ空間を、複数のストレージブロックをそれぞれ含むセグメントに断片化するか、または、IOMMU28のアドレス空間を、複数のアドレスブロックをそれぞれ含むセグメントに断片化し得る。説明のために、ストレージデバイス20のストレージブロック、およびIOMMU28のアドレスブロックを、概してブロックと呼ぶことがある。
処理ユニットが、第1のデータタイプのためにアドレスの第1の連続範囲を割り当て、第2のデータタイプのためにアドレスの第2の連続範囲を割り当てる(54)。第1のデータタイプと、第2のデータタイプとは、グラフィックス処理のための異なるデータタイプであり得る。たとえば、図2に示すように、ストレージデバイスアドレス32、34、36、38、および40の連続範囲のうちの1つが、アドレスの第1の連続範囲を備え得る。ストレージデバイスアドレス32、34、36、38、および40の連続範囲のうちの別の1つが、アドレスの第2の連続範囲を備え得る。また、図2に示すように、ストレージデバイスアドレス32、34、36、38、および40の連続範囲のうちの各1つは、特定のデータタイプのために割り当てられる。ストレージデバイスアドレス32、34、36、38、および40の連続範囲のうちの各1つの割り当てられたデータタイプは、第1のデータタイプを備え得る。ストレージデバイスアドレス32、34、36、38、および40の連続範囲のうちの別の1つの割り当てられたデータタイプは、第2のデータタイプを備え得る。
別の例として、図4に示すように、IOMMUアドレス44、46、48、50、および52の連続範囲のうちの1つが、アドレスの第1の連続範囲を備え得る。IOMMUアドレス44、46、48、50、および52の連続範囲のうちの別の1つが、アドレスの第2の連続範囲を備え得る。また、図3に示すように、IOMMUアドレス44、46、48、50、および52の連続範囲のうちの各1つは、特定のデータタイプのために割り当てられる。IOMMUアドレス44、46、48、50、および52の連続範囲のうちの各1つの割り当てられたデータタイプは、第1のデータタイプを備え得る。IOMMUアドレス44、46、48、50、および52の連続範囲のうちの別の1つの割り当てられたデータタイプは、第2のデータタイプを備え得る。
処理ユニット、たとえば、プロセッサ12またはGPU14は、アドレスの第1の連続範囲内にアドレスがあるブロック内に、第1のデータタイプのグラフィックスデータ、または第1のデータタイプのグラフィックスデータのアドレスを記憶し、アドレスの第2の連続範囲内にアドレスがあるブロック内に、第2のデータタイプのグラフィックスデータ、または第2のデータタイプのグラフィックスデータのアドレスを記憶する(56)。たとえば、図2に示すように、プロセッサ12またはGPU14は、ストレージデバイスアドレス32の連続範囲内にアドレスがあるストレージデバイス20のストレージブロック内にテクスチャデータを記憶し得る。図2に示すように、プロセッサ12またはGPU14は、特定のデータタイプのために割り当てられたアドレスの連続範囲内にアドレスがあるストレージデバイス20のストレージブロック内にその特定のデータタイプのグラフィックスデータを記憶し得る。
別の例として、図3に示すように、処理ユニット、たとえば、プロセッサ12またはGPU14は、IOMMUアドレス44の連続範囲内にアドレスがあるIOMMU28のアドレスブロック内に、テクスチャデータがストレージデバイス20に記憶されている場所のアドレスを記憶し得る。図3に示すように、プロセッサ12またはGPU14は、特定のデータタイプのために割り当てられたアドレスの連続範囲内にアドレスがあるストレージデバイス20のストレージブロック内に、その特定のデータタイプのグラフィックスデータの記憶されている場所のアドレスを記憶し得る。
プロセッサ12またはGPU14は、共通メモリキャッシュ26の複数のキャッシュラインのうちのキャッシュラインのいくつかに第1のデータタイプのグラフィックスデータを記憶し、共通メモリキャッシュ26の複数のキャッシュラインのうちのキャッシュラインのいくつかに第2のデータタイプのグラフィックスデータを記憶する(58)。たとえば、図2および図3に示すように、共通メモリキャッシュ26はキャッシュライン42を含む。また、図2および図3に示すように、キャッシュライン42Bおよび42Eは、特定のデータタイプのグラフィックスデータ、たとえば、頂点データを記憶しているキャッシュラインのグループと見なされ得る。キャッシュライン42C、42D、および42Fは、特定のデータタイプのグラフィックスデータ、たとえば、ピクセルデータを記憶しているキャッシュラインの別のグループと見なされ得る。
図5は、共通メモリキャッシュ26の複数のキャッシュラインのうちのどの1つが特定のデータタイプに関連するかを判断するための例示的な技法を示す流れ図である。説明のために、図1、図2、および図3への参照を行う。処理ユニット、たとえば、プロセッサ12またはGPU14が、各キャッシュラインのアドレスフィールドをアドレスの連続範囲と比較する(60)。たとえば、プロセッサ12またはGPU14は、キャッシュライン42のアドレスフィールド30Aを、図2のストレージデバイスアドレス32、34、36、38、および40の連続範囲のうちの各1つと比較し得る。別の例として、プロセッサ12またはGPU14は、キャッシュライン42のアドレスフィールド30Aを、図3のIOMMUアドレス44、46、48、50、および52の連続範囲のうちの各1つと比較し得る。
プロセッサ12またはGPU14は、その比較に基づいて、キャッシュライン42のうちのどのキャッシュラインがどのデータタイプに関連するかを判断する(62)。たとえば、プロセッサ12またはGPU14は、図2および図3に示すように、キャッシュライン42Aがテクスチャデータに関連し、キャッシュライン42Bおよび42Eが頂点データに関連し、キャッシュライン42C、42D、および42Fがピクセルデータに関連すると判断し得る。図2の例では、キャッシュライン42Aのアドレスフィールド30Aが、テクスチャデータを記憶しているストレージデバイス20のストレージブロックのアドレスに対応するので、プロセッサ12またはGPU14は、キャッシュライン42Aがテクスチャデータに関連すると判断し得る。キャッシュライン42Bおよび42Eのアドレスフィールド30Aが、頂点データを記憶しているストレージデバイス20のストレージブロックのアドレスに対応するので、プロセッサ12またはGPU14は、キャッシュライン42Bおよび42Eが頂点データに関連すると判断し得る。キャッシュライン42C、42D、および42Fのアドレスフィールド30Aが、ピクセルデータを記憶しているストレージデバイス20のストレージブロックのアドレスに対応するので、プロセッサ12またはGPU14は、キャッシュライン42C、42D、および42Fがピクセルデータに関連すると判断し得る。
図3の例では、キャッシュライン42Aのアドレスフィールド30Aは、テクスチャデータがストレージブロック20に記憶されている場所のアドレスを記憶しているIOMMU28のアドレスブロックのアドレスに対応するので、プロセッサ12またはGPU14は、キャッシュライン42Aがテクスチャデータに関連すると判断し得る。キャッシュライン42Bおよび42Eのアドレスフィールド30Aは、頂点データがストレージブロック20に記憶されている場所のアドレスを記憶しているIOMMU28のアドレスブロックのアドレスに対応するので、プロセッサ12またはGPU14は、キャッシュライン42Bおよび42Eが頂点データに関連すると判断し得る。キャッシュライン42C、42D、および42Fのアドレスフィールド30Aは、ピクセルデータがストレージブロック20に記憶されている場所のアドレスを記憶しているIOMMU28のアドレスブロックのアドレスに対応するので、プロセッサ12またはGPU14は、キャッシュライン42C、42D、および42Fがピクセルデータに関連すると判断し得る。
図6は、処理ユニット、たとえば、プロセッサ12またはGPU14によって実行される例示的な技法を示す流れ図である。説明のために、図1、図2、および図3への参照を行う。処理ユニット、たとえば、プロセッサ12またはGPU14が、第1のデータタイプのグラフィックスデータまたは第2のデータタイプのグラフィックスデータについての要求を受信する(64)。この要求は、第1のデータタイプまたは第2のデータタイプのアドレスを含み得る。たとえば、シェーダプログラムなど、GPU14上で実行されるソフトウェアは、特定のデータタイプのグラフィックスデータ、たとえば、第1のデータタイプのグラフィックスデータまたは第2のデータタイプのグラフィックスデータをGPU14に取り出させる要求を生成し得る。GPU14上で実行されるソフトウェアは、要求中の第1または第2のデータタイプのグラフィックスデータをそこから取り出すべきアドレスをGPU14に与え得る。
プロセッサ12またはGPU14は、第1のデータタイプまたは第2のデータタイプのグラフィックスデータについての要求内のアドレスが、それぞれアドレスの第1の連続範囲またはアドレスの第2の連続範囲内にあると判断する(66)。たとえば、シェーダプログラムが、テクスチャデータを要求し、ストレージデバイスアドレスまたはIOMMUアドレスを含んだと仮定する。この例では、GPU14は、ストレージデバイスアドレスが図2のストレージデバイスアドレス32の連続範囲内にあるかどうかを判断するか、またはIOMMUアドレスが図3のIOMMUアドレス44の連続範囲内にあるかどうかを判断し得る。要求中のアドレスがアドレスの連続範囲内にあるかどうかを判断することによって、プロセッサ12またはGPU14は、プロセッサ12またはGPU14が不正確なデータを不注意に取り出さないことを保証し得る。
プロセッサ12またはGPU14は、次いで、その判断に基づいて要求を処理する(68)。たとえば、第1のデータタイプまたは第2のデータタイプのグラフィックスデータについての要求が、それぞれアドレスの第1の連続範囲またはアドレスの第2の連続範囲内にある場合、プロセッサ12またはGPU14はその要求を処理し得る。しかしながら、第1のデータタイプまたは第2のデータタイプのグラフィックスデータについての要求が、それぞれアドレスの第1の連続範囲またはアドレスの第2の連続範囲内にない場合、プロセッサ12またはGPU14はその要求を処理しないことがある。
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、非一時的コンピュータ可読媒体を備える製造品に1つまたは複数の命令またはコードとして記憶され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータデータストレージ媒体または通信媒体を含み得る。データストレージデバイスは、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
コードは、1つまたは複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要はない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、ハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。

Claims (38)

  1. 処理ユニットを用いて、グラフィックス処理のための第1のデータタイプのためにアドレスの第1の連続範囲を割り当て、グラフィックス処理のための第2のデータタイプのためにアドレスの第2の連続範囲を割り当てることであって、前記第1のデータタイプと前記第2のデータタイプとが異なるデータタイプである、割り当てることと、
    前記処理ユニットを用いて、アドレスの前記第1の連続範囲内にアドレスがあるブロック内に、前記第1のデータタイプのグラフィックスデータ、または前記第1のデータタイプの前記グラフィックスデータのアドレスのうちの少なくとも1つを記憶することと、
    前記処理ユニットを用いて、アドレスの前記第2の連続範囲内にアドレスがあるブロック内に、前記第2のデータタイプのグラフィックスデータ、または前記第2のデータタイプの前記グラフィックスデータのアドレスのうちの少なくとも1つを記憶することと、
    共通メモリキャッシュの複数のキャッシュラインに前記第1のデータタイプの前記グラフィックスデータと前記第2のデータタイプの前記グラフィックスデータとを記憶することと
    を備える方法。
  2. アドレスの前記第1の連続範囲および前記第2の連続範囲が、ストレージデバイスアドレスの第1の連続範囲および第2の連続範囲と、入出力メモリ管理ユニット(IOMMU)アドレスの第1の連続範囲および第2の連続範囲とのうちの少なくとも1つを備える、請求項1に記載の方法。
  3. アドレスの前記第1の連続範囲内にアドレスがある前記ブロックと、アドレスの前記第2の連続範囲内にアドレスがある前記ブロックとが、ストレージデバイス内のストレージブロックと、入出力メモリ管理ユニット(IOMMU)内のアドレスブロックとのうちの少なくとも1つを備える、請求項1に記載の方法。
  4. アドレスの前記第1の連続範囲に基づいて前記複数のキャッシュラインのうちの1つまたは複数のキャッシュラインを無効にすること
    をさらに備える、請求項1に記載の方法。
  5. 前記共通メモリキャッシュの前記複数のキャッシュラインのうちのどのキャッシュラインが、アドレスの前記第1の連続範囲内にあるアドレスを含むかを判断すること
    をさらに備え、
    1つまたは複数のキャッシュラインを無効にすることが、アドレスの前記第1の連続範囲内にある前記アドレスを含むと判断された1つまたは複数のキャッシュラインを無効にすることを備える、
    請求項4に記載の方法。
  6. 前記共通メモリキャッシュの前記複数のキャッシュラインのうちのどのキャッシュラインが、アドレスの前記第1の連続範囲内にある前記アドレスを含むかを判断することが、前記複数のキャッシュラインのうちの前記キャッシュラインの各々のアドレスフィールドをアドレスの前記第1の連続範囲と比較することを備える、請求項5に記載の方法。
  7. 前記第1のデータタイプの前記グラフィックスデータが変化したかどうかを判断すること
    をさらに備え、
    アドレスの前記第1の連続範囲に基づいて前記複数のキャッシュラインのうちの1つまたは複数のキャッシュラインを無効にすることは、前記第1のデータタイプの前記グラフィックスデータが変化したときに前記複数のキャッシュラインのうちの1つまたは複数のキャッシュラインを無効にすることを備える、
    請求項4に記載の方法。
  8. 前記第1のデータタイプおよび前記第2のデータタイプがそれぞれ、テクスチャデータ、頂点データ、命令、定数、およびピクセルデータのうちの少なくとも1つを備える、請求項1に記載の方法。
  9. 前記第1のデータタイプの前記グラフィックスデータおよび前記第2のデータタイプの前記グラフィックスデータのうちの少なくとも1つについての要求を受信することであって、前記要求が前記第1のデータタイプまたは前記第2のデータタイプのアドレスを含む、受信することと、
    前記第1のデータタイプの前記アドレスまたは前記第2のデータタイプの前記アドレスがそれぞれアドレスの前記第1の連続範囲またはアドレスの前記第2の連続範囲内にあるかどうかを判断することと、
    前記判断に基づいて前記要求を処理することと
    をさらに備える、請求項1に記載の方法。
  10. 複数のキャッシュラインを含む共通メモリキャッシュと、
    処理ユニットであって、
    グラフィックス処理のための第1のデータタイプのためにアドレスの第1の連続範囲を割り当て、グラフィックス処理のための第2のデータタイプのためにアドレスの第2の連続範囲を割り当てることであって、前記第1のデータタイプと前記第2のデータタイプとが異なるデータタイプである、割り当てることと、
    アドレスの前記第1の連続範囲内にアドレスがあるブロック内に、前記第1のデータタイプのグラフィックスデータ、または前記第1のデータタイプの前記グラフィックスデータのアドレスのうちの少なくとも1つを記憶し、アドレスの前記第2の連続範囲内にアドレスがあるブロック内に、前記第2のデータタイプのグラフィックスデータ、または前記第2のデータタイプの前記グラフィックスデータのアドレスのうちの少なくとも1つを記憶することと、
    前記共通メモリキャッシュの前記複数のキャッシュラインに前記第1のデータタイプの前記グラフィックスデータと前記第2のデータタイプの前記グラフィックスデータとを記憶することと
    を行うように構成された処理ユニットと
    を備える装置。
  11. 前記処理ユニットが、プロセッサおよびグラフィックス処理ユニット(GPU)のうちの少なくとも1つを備える、請求項10に記載の装置。
  12. アドレスの前記第1の連続範囲および前記第2の連続範囲が、ストレージデバイスアドレスの第1の連続範囲および第2の連続範囲と、入出力メモリ管理ユニット(IOMMU)アドレスの第1の連続範囲および第2の連続範囲とのうちの少なくとも1つを備える、請求項10に記載の装置。
  13. ストレージデバイス
    をさらに備え、
    アドレスの前記第1の連続範囲内にアドレスがある前記ブロックと、アドレスの前記第2の連続範囲内にアドレスがある前記ブロックとが、前記ストレージデバイス内のストレージブロックを備える、
    請求項10に記載の装置。
  14. 入出力メモリ管理ユニット(IOMMU)
    をさらに備え、
    アドレスの前記第1の連続範囲内にアドレスがある前記ブロックと、アドレスの前記第2の連続範囲内にアドレスがある前記ブロックとが、前記IOMMU内のアドレスブロックを備える、
    請求項10に記載の装置。
  15. 前記処理ユニットが、アドレスの前記第1の連続範囲に基づいて前記複数のキャッシュラインのうちの1つまたは複数のキャッシュラインを無効にするようにさらに構成された、請求項10に記載の装置。
  16. 前記処理ユニットは、前記共通メモリキャッシュの前記複数のキャッシュラインのうちのどのキャッシュラインが、アドレスの前記第1の連続範囲内にあるアドレスを含むかを判断するようにさらに構成され、前記処理ユニットが、アドレスの前記第1の連続範囲内にある前記アドレスを含むと判断された前記1つまたは複数のキャッシュラインを無効にする、請求項15に記載の装置。
  17. 前記処理ユニットは、前記共通メモリキャッシュの前記複数のキャッシュラインのうちのどのキャッシュラインが、アドレスの前記第1の連続範囲内にある前記アドレスを含むかを判断するために、前記キャッシュラインのうちの各1つのアドレスフィールドをアドレスの前記第1の連続範囲と比較する、請求項16に記載の装置。
  18. 前記処理ユニットは、前記第1のデータタイプの前記グラフィックスデータが変化したかどうかを判断し、前記第1のデータタイプの前記グラフィックスデータが変化したときに前記1つまたは複数のキャッシュラインを無効にする、請求項15に記載の装置。
  19. 前記第1のデータタイプおよび前記第2のデータタイプがそれぞれ、テクスチャデータ、頂点データ、命令、定数、およびピクセルデータのうちの少なくとも1つを備える、請求項10に記載の装置。
  20. 前記処理ユニットが、前記第1のデータタイプの前記データおよび前記第2のデータタイプの前記データのうちの少なくとも1つについての要求を受信し、前記要求が前記第1のデータタイプまたは前記第2のデータタイプのアドレスを含み、前記処理ユニットは、前記第1のデータタイプの前記アドレスまたは前記第2のデータタイプの前記アドレスがそれぞれアドレスの前記第1の連続範囲またはアドレスの前記第2の連続範囲内にあると判断し、前記処理ユニットが前記判断に基づいて前記要求を処理する、請求項10に記載の装置。
  21. グラフィックス処理のための第1のデータタイプのためにアドレスの第1の連続範囲を割り当て、グラフィックス処理のための第2のデータタイプのためにアドレスの第2の連続範囲を割り当てることであって、前記第1のデータタイプと前記第2のデータタイプとが異なるデータタイプである、割り当てることと、
    アドレスの前記第1の連続範囲内にアドレスがあるブロック内に、前記第1のデータタイプのグラフィックスデータ、または前記第1のデータタイプの前記グラフィックスデータのアドレスのうちの少なくとも1つを記憶することと、
    アドレスの前記第2の連続範囲内にアドレスがあるブロック内に、前記第2のデータタイプのグラフィックスデータ、または前記第2のデータタイプの前記グラフィックスデータのアドレスのうちの少なくとも1つを記憶することと、
    共通メモリキャッシュの複数のキャッシュラインに前記第1のデータタイプの前記グラフィックスデータと前記第2のデータタイプの前記グラフィックスデータとを記憶することと
    を1つまたは複数の処理ユニットに行わせる命令を備えるコンピュータ可読記憶媒体。
  22. アドレスの前記第1の連続範囲および前記第2の連続範囲が、ストレージデバイスアドレスの第1の連続範囲および第2の連続範囲と、入出力メモリ管理ユニット(IOMMU)アドレスの第1の連続範囲および第2の連続範囲とのうちの少なくとも1つを備える、請求項21に記載のコンピュータ可読記憶媒体。
  23. アドレスの前記第1の連続範囲内にアドレスがある前記ブロックと、アドレスの前記第2の連続範囲内にアドレスがある前記ブロックとが、ストレージデバイス内のストレージブロックと、入出力メモリ管理ユニット(IOMMU)内のアドレスブロックとのうちの少なくとも1つを備える、請求項21に記載のコンピュータ可読記憶媒体。
  24. アドレスの前記第1の連続範囲に基づいて前記複数のキャッシュラインのうちの1つまたは複数のキャッシュラインを無効にすることを前記1つまたは複数の処理ユニットに行わせる命令
    をさらに備える、請求項21に記載のコンピュータ可読記憶媒体。
  25. 前記共通メモリキャッシュの前記複数のキャッシュラインのうちのどのキャッシュラインが、アドレスの前記第1の連続範囲内にあるアドレスを含むかを判断することを前記1つまたは複数の処理ユニットに行わせる命令
    をさらに備え、
    1つまたは複数のキャッシュラインを無効にすることを前記1つまたは複数のプロセッサに行わせる前記命令が、アドレスの前記第1の連続範囲内にある前記アドレスを含むと判断された1つまたは複数のキャッシュラインを無効にすることを前記1つまたは複数の処理ユニットに行わせる命令を備える、
    請求項24に記載のコンピュータ可読記憶媒体。
  26. 前記共通メモリキャッシュの前記複数のキャッシュラインのうちのどのキャッシュラインが、アドレスの前記第1の連続範囲内にある前記アドレスを含むかを判断することを前記1つまたは複数の処理ユニットに行わせる前記命令が、前記キャッシュラインのうちの各1つのアドレスフィールドをアドレスの前記第1の連続範囲と比較することを前記1つまたは複数の処理ユニットに行わせる命令を備える、請求項25に記載のコンピュータ可読記憶媒体。
  27. 前記第1のデータタイプの前記グラフィックスデータが変化したかどうかを判断することを前記1つまたは複数の処理ユニットに行わせる命令
    をさらに備え、
    アドレスの前記第1の連続範囲に基づいて1つまたは複数のキャッシュラインを無効にすることを前記1つまたは複数の処理ユニットに行わせる前記命令は、前記第1のデータタイプの前記グラフィックスデータが変化したときに前記複数のキャッシュラインのうちの1つまたは複数のキャッシュラインを無効にすることを前記1つまたは複数の処理ユニットに行わせる命令を備える、
    請求項24に記載のコンピュータ可読記憶媒体。
  28. 前記第1のデータタイプおよび前記第2のデータタイプがそれぞれ、テクスチャデータ、頂点データ、命令、定数、およびピクセルデータのうちの少なくとも1つを備える、請求項21に記載のコンピュータ可読記憶媒体。
  29. 前記第1のデータタイプの前記グラフィックスデータおよび前記第2のデータタイプの前記グラフィックスデータのうちの少なくとも1つについての要求を受信することを前記1つまたは複数の処理ユニットに行わせる命令であって、前記要求が前記第1のデータタイプまたは前記第2のデータタイプのアドレスを含む、命令と、
    前記第1のデータタイプの前記アドレスまたは前記第2のデータタイプの前記アドレスがそれぞれアドレスの前記第1の連続範囲またはアドレスの前記第2の連続範囲内にあるかどうかを判断することを前記1つまたは複数の処理ユニットに行わせる命令と、
    前記判断に基づいて前記要求を処理することを前記1つまたは複数の処理ユニットに行わせる命令と
    をさらに備える、請求項21に記載のコンピュータ可読記憶媒体。
  30. グラフィックス処理のための第1のデータタイプのためにアドレスの第1の連続範囲を割り当て、グラフィックス処理のための第2のデータタイプのためにアドレスの第2の連続範囲を割り当てるための手段であって、前記第1のデータタイプと前記第2のデータタイプとが異なるデータタイプである、割り当てるための手段と、
    アドレスの前記第1の連続範囲内にアドレスがあるブロック内に、前記第1のデータタイプのグラフィックスデータ、または前記第1のデータタイプの前記グラフィックスデータのアドレスのうちの少なくとも1つを記憶するための手段と、
    アドレスの前記第2の連続範囲内にアドレスがあるブロック内に、前記第2のデータタイプのグラフィックスデータ、または前記第2のデータタイプの前記グラフィックスデータのアドレスのうちの少なくとも1つを記憶するための手段と、
    共通メモリキャッシュの複数のキャッシュラインに前記第1のデータタイプの前記グラフィックスデータと前記第2のデータタイプの前記グラフィックスデータとを記憶するための手段と
    を備える装置。
  31. アドレスの前記第1の連続範囲および前記第2の連続範囲が、ストレージデバイスアドレスの第1の連続範囲および第2の連続範囲と、入出力メモリ管理ユニット(IOMMU)アドレスの第1の連続範囲および第2の連続範囲とのうちの少なくとも1つを備える、請求項30に記載の装置。
  32. アドレスの前記第1の連続範囲内にアドレスがある前記ブロックと、アドレスの前記第2の連続範囲内にアドレスがある前記ブロックとが、ストレージデバイス内のストレージブロックと、入出力メモリ管理ユニット(IOMMU)内のアドレスブロックとのうちの少なくとも1つを備える、請求項30に記載の装置。
  33. アドレスの前記第1の連続範囲に基づいて前記複数のキャッシュラインのうちの1つまたは複数のキャッシュラインを無効にするための手段
    をさらに備える、請求項30に記載の装置。
  34. 前記共通メモリキャッシュの前記複数のキャッシュラインのうちのどのキャッシュラインが、アドレスの前記第1の連続範囲内にあるアドレスを含むかを判断するための手段
    をさらに備え、
    1つまたは複数のキャッシュラインを無効にするための前記手段が、アドレスの前記第1の連続範囲内にある前記アドレスを含むと判断された1つまたは複数のキャッシュラインを無効にするための手段を備える、
    請求項33に記載の装置。
  35. 前記共通メモリキャッシュの前記複数のキャッシュラインのうちのどのキャッシュラインが、アドレスの前記第1の連続範囲内にある前記アドレスを含むかを判断するための前記手段が、前記複数のキャッシュラインのうちの前記キャッシュラインの各々のアドレスフィールドをアドレスの前記第1の連続範囲と比較するための手段を備える、請求項34に記載の装置。
  36. 前記第1のデータタイプの前記グラフィックスデータが変化したかどうかを判断するための手段
    をさらに備え、
    アドレスの前記第1の連続範囲に基づいて前記複数のキャッシュラインのうちの1つまたは複数のキャッシュラインを無効にするための前記手段は、前記第1のデータタイプの前記グラフィックスデータが変化したときに前記複数のキャッシュラインのうちの1つまたは複数のキャッシュラインを無効にするための手段を備える、
    請求項33に記載の装置。
  37. 前記第1のデータタイプおよび前記第2のデータタイプがそれぞれ、テクスチャデータ、頂点データ、命令、定数、およびピクセルデータのうちの少なくとも1つを備える、請求項30に記載の装置。
  38. 前記第1のデータタイプの前記グラフィックスデータおよび前記第2のデータタイプの前記グラフィックスデータのうちの少なくとも1つについての要求を受信するための手段であって、前記要求が前記第1のデータタイプまたは前記第2のデータタイプのアドレスを含む、受信するための手段と、
    前記第1のデータタイプの前記アドレスまたは前記第2のデータタイプの前記アドレスがそれぞれアドレスの前記第1の連続範囲またはアドレスの前記第2の連続範囲内にあるかどうかを判断するための手段と、
    前記判断に基づいて前記要求を処理するための手段と
    をさらに備える、請求項30に記載の装置。
JP2013553622A 2011-02-10 2012-02-10 グラフィックス処理のためのデータストレージアドレス割当て Expired - Fee Related JP5694570B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/024,579 2011-02-10
US13/024,579 US9047686B2 (en) 2011-02-10 2011-02-10 Data storage address assignment for graphics processing
PCT/US2012/024760 WO2012109619A1 (en) 2011-02-10 2012-02-10 Data storage address assignment for graphics processing

Publications (2)

Publication Number Publication Date
JP2014506700A true JP2014506700A (ja) 2014-03-17
JP5694570B2 JP5694570B2 (ja) 2015-04-01

Family

ID=45755552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013553622A Expired - Fee Related JP5694570B2 (ja) 2011-02-10 2012-02-10 グラフィックス処理のためのデータストレージアドレス割当て

Country Status (6)

Country Link
US (1) US9047686B2 (ja)
EP (1) EP2673746B1 (ja)
JP (1) JP5694570B2 (ja)
KR (1) KR101563070B1 (ja)
CN (1) CN103370728B (ja)
WO (1) WO2012109619A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016538627A (ja) * 2013-10-23 2016-12-08 クゥアルコム・インコーポレイテッドQualcomm Incorporated 階層的zカリングを実行するために部分的にカバーされたタイルを選択的にマージすること

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
JP6132772B2 (ja) * 2011-12-07 2017-05-24 三菱電機株式会社 制御装置及びリモコン装置
CN103077130B (zh) * 2012-12-31 2016-03-16 上海算芯微电子有限公司 信息处理方法及装置
JP2014186392A (ja) * 2013-03-21 2014-10-02 Fuji Xerox Co Ltd 画像処理装置及びプログラム
JP6271939B2 (ja) * 2013-10-11 2018-01-31 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
US10621690B2 (en) * 2015-09-17 2020-04-14 Qualcomm Incorporated Storing bandwidth-compressed graphics data
US10671419B2 (en) * 2016-02-29 2020-06-02 Red Hat Israel, Ltd. Multiple input-output memory management units with fine grained device scopes for virtual machines
US10417134B2 (en) * 2016-11-10 2019-09-17 Oracle International Corporation Cache memory architecture and policies for accelerating graph algorithms
CN107003892B (zh) * 2016-12-29 2021-10-08 深圳前海达闼云端智能科技有限公司 Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品
KR101943999B1 (ko) 2017-08-31 2019-01-30 성균관대학교 산학협력단 Gpu 컴퓨팅에서 캐시 용량을 고려한 캐시 바이패싱 방법
US10664396B2 (en) * 2017-10-04 2020-05-26 Intel Corporation Systems, methods and apparatus for fabric delta merge operations to enhance NVMeoF stream writes
US10467774B2 (en) * 2017-11-06 2019-11-05 Qualcomm Incorporated Memory address flipping to determine data content integrity in GPU sub-system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313577A (en) * 1991-08-21 1994-05-17 Digital Equipment Corporation Translation of virtual addresses in a computer graphics system
JPH11167524A (ja) * 1997-09-09 1999-06-22 Compaq Computer Corp コンピュータ・システム
JPH11167523A (ja) * 1997-09-09 1999-06-22 Compaq Computer Corp コンピュータ・システム
US5949436A (en) * 1997-09-30 1999-09-07 Compaq Computer Corporation Accelerated graphics port multiple entry gart cache allocation system and method
JP2000507010A (ja) * 1996-03-15 2000-06-06 マイクロン・テクノロジイ・インコーポレーテッド 画素エンジン・データ・キャッシング機構
JP2001501758A (ja) * 1996-09-30 2001-02-06 シーラス ロジック,インコーポレイテッド 連続するメモリのバッファを獲得し、ページテーブルを構築する方法
US20060001663A1 (en) * 2004-06-21 2006-01-05 Ruttenberg Brian E Efficient use of a render cache
JP2010086528A (ja) * 2008-09-29 2010-04-15 Nvidia Corp 単一パステセレーション

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2553592A (en) 1991-08-21 1993-03-16 Digital Equipment Corporation Computer graphics system
US6311258B1 (en) 1997-04-03 2001-10-30 Canon Kabushiki Kaisha Data buffer apparatus and method for storing graphical data using data encoders and decoders
US6243081B1 (en) 1998-07-31 2001-06-05 Hewlett-Packard Company Data structure for efficient retrieval of compressed texture data from a memory system
US6683615B1 (en) 1999-06-09 2004-01-27 3Dlabs Inc., Ltd. Doubly-virtualized texture memory
US6457100B1 (en) 1999-09-15 2002-09-24 International Business Machines Corporation Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls
US6778175B2 (en) * 2002-02-05 2004-08-17 Xgi Technology Inc. Method of arbitration of memory request for computer graphics system
US7058755B2 (en) * 2003-09-09 2006-06-06 Ballard Power Systems Corporation EEPROM emulation in flash memory
US8190206B2 (en) * 2006-07-04 2012-05-29 Sandisk Il Ltd. Dual channel smart card data storage
US20100141664A1 (en) 2008-12-08 2010-06-10 Rawson Andrew R Efficient GPU Context Save And Restore For Hosted Graphics
US8793438B2 (en) * 2009-10-15 2014-07-29 Netronome Systems, Incorporated Atomic compare and write memory

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313577A (en) * 1991-08-21 1994-05-17 Digital Equipment Corporation Translation of virtual addresses in a computer graphics system
JP2000507010A (ja) * 1996-03-15 2000-06-06 マイクロン・テクノロジイ・インコーポレーテッド 画素エンジン・データ・キャッシング機構
JP2001501758A (ja) * 1996-09-30 2001-02-06 シーラス ロジック,インコーポレイテッド 連続するメモリのバッファを獲得し、ページテーブルを構築する方法
JPH11167524A (ja) * 1997-09-09 1999-06-22 Compaq Computer Corp コンピュータ・システム
JPH11167523A (ja) * 1997-09-09 1999-06-22 Compaq Computer Corp コンピュータ・システム
US5949436A (en) * 1997-09-30 1999-09-07 Compaq Computer Corporation Accelerated graphics port multiple entry gart cache allocation system and method
US20060001663A1 (en) * 2004-06-21 2006-01-05 Ruttenberg Brian E Efficient use of a render cache
JP2010086528A (ja) * 2008-09-29 2010-04-15 Nvidia Corp 単一パステセレーション

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016538627A (ja) * 2013-10-23 2016-12-08 クゥアルコム・インコーポレイテッドQualcomm Incorporated 階層的zカリングを実行するために部分的にカバーされたタイルを選択的にマージすること

Also Published As

Publication number Publication date
EP2673746A1 (en) 2013-12-18
JP5694570B2 (ja) 2015-04-01
WO2012109619A1 (en) 2012-08-16
CN103370728A (zh) 2013-10-23
EP2673746B1 (en) 2015-04-08
CN103370728B (zh) 2016-06-01
US20120206466A1 (en) 2012-08-16
KR101563070B1 (ko) 2015-10-23
KR20130135309A (ko) 2013-12-10
US9047686B2 (en) 2015-06-02

Similar Documents

Publication Publication Date Title
JP5694570B2 (ja) グラフィックス処理のためのデータストレージアドレス割当て
JP6110044B2 (ja) ページ常駐に関する条件付きページフォールト制御
JP6385614B1 (ja) グラフィックス処理ユニットのためのハードウェア強制コンテンツ保護
KR101820621B1 (ko) 광선 추적 어플리케이션들에서 트리 순회를 위한 시작 노드 결정
US8823724B2 (en) Sparse texture systems and methods
JP5770375B2 (ja) シェーダ動作の同期化
JP5166552B2 (ja) グラフィックス処理システムにおけるオフスクリーンサーフェスのためのマルチバッファサポート
CN110928695A (zh) 一种关于显存的管理方法、装置及计算机存储介质
US9256536B2 (en) Method and apparatus for providing shared caches
KR20080079094A (ko) 피포를 포스트 버텍스 캐쉬처럼 사용하기 위한 기하학 처리장치와 그 방법
KR20190078086A (ko) 프리페칭된 그래픽스 데이터를 이용하여 타일 기반 렌더링을 수행하는 방법 및 장치
JP2018523876A (ja) グラフィックス処理ユニットのためのハードウェア強制コンテンツ保護
US9965827B2 (en) Graphics processing system for and method of storing and querying vertex attribute data in a cache
US8860743B2 (en) Sparse texture systems and methods
US8681169B2 (en) Sparse texture systems and methods
JP6271812B2 (ja) 透過的画素フォーマット変換器
US20220083464A1 (en) Memory pool management
KR102657586B1 (ko) 그래픽스 데이터를 관리하는 방법 및 장치
CN117435521B (zh) 基于gpu渲染的纹理显存映射方法、装置及介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140930

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150204

R150 Certificate of patent or registration of utility model

Ref document number: 5694570

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees