説明

汎用使用のための処理ユニット内部メモリ

【解決手段】
汎用使用のための内部メモリを有するグラフィクス処理ユニット(GPU)及びそのアプリケーションがここに開示される。そのようなGPUは、第1の内部メモリと、第1の内部メモリに結合される実行ユニットと、第1の内部メモリを他の処理ユニットの第2の内部メモリに結合するように構成されるインタフェースと、を含む。第1の内部メモリは積層ダイナミックランダムアクセスメモリ(DRAM)又は埋め込みDRAMを備えていてよい。インタフェースは第1の内部メモリをディスプレイデバイスに結合するように更に構成されていてよい。GPUは第1の内部メモリを中央処理ユニットに結合するように構成される別のインタフェースを含んでいてもよい。またGPUはソフトウエアにおいて具現化され且つ/又はコンピューティングシステム内に含まれていてよい。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は概してコンピューティングデバイス(例えばコンピュータ、組み込みデバイス、携帯デバイス等)に向けられている。より特定的には、本発明はそのようなコンピューティングデバイスの処理ユニットによって使用されるメモリに向けられている。
【背景技術】
【0002】
コンピューティングデバイスは、典型的には、中央処理ユニット(CPU)及びグラフィクス処理ユニット(GPU)等の1つ以上の処理ユニットを含む。CPUは、命令の正確なセットに従うことによって、コンピューティングデバイスの活動を連携させる。GPUは、エンドユーザアプリケーション(例えばビデオゲームアプリケーション)によって要求されるであろうグラフィクス処理タスク及び/又は物理的シミュレーション等のデータ並列コンピューティングタスクを行うことによってCPUを支援する。GPU及びCPUは、別個のデバイス及び/又はパッケージの一部であることがあり、あるいは同じデバイス及び/又パッケージ内に含まれていることがある。更には、各処理ユニットは別のより大きなデバイス内に含まれていることがある。例えばGPUは、経路付けデバイス又は例えばノースブリッジ等のブリッジデバイス内にしばしば集積化される。
【0003】
エンドユーザアプリケーションとGPUの間には何層ものソフトウエアが存在する。エンドユーザアプリケーションは、アプリケーションプログラミングインタフェース(API)と通信する。APIは、GPUに依存するフォーマットでよりはむしろ標準的なフォーマットでエンドユーザアプリケーションがグラフィクスデータ及びコマンドを出力することを可能にする。ワシントン、レドモンドのマイクロソフト社(Microsoft Corporation of Redmond, Washington)によって開発されたダイレクトX(DirectX)(登録商標)、クロノスグループ(Khronos Group)によって維持されるオープンGL(OpenGL)(登録商標)及びオープンCL(OpenCL)を含めて様々な種類のAPIが商業的に利用可能である。APIはドライバと通信する。ドライバは、APIから受信した標準コードを、GPUによって理解されるネイティブフォーマットの命令にトランスレートする。ドライバは典型的にはGPUの製造業者によって書かれる。GPUは次いでドライバからの命令を実行する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のシステムにおいては、CPU及びGPUは典型的には各々が外部メモリに結合される。外部メモリは、CPU及び/又はGPUによって実行されるべき命令及び/又は使用されるべきデータを含むであろう。外部メモリは例えばダイナミックランダムアクセスメモリ(DRAM)であることがある。外部メモリはかなり大きく構成され得るので、それが結合される各処理ユニットに十分な記憶容量を提供することができる。残念なことに、外部メモリへのアクセスには数百クロックサイクルを必要とするであろう。従って、外部メモリは、高性能なGPUに対する十分な帯域幅又は高速メモリアクセスをメモリに提供しないかもしれない。
【0005】
十分なメモリ帯域幅をGPUに提供するための1つの見込みのある解決法は、GPUに内部メモリを設けることである。内部メモリは、例えば、埋め込み(embedded)DRAM又は積層(stacked)DRAMであることがある。外部メモリと比べて、内部メモリは、より大きな帯域幅、より高速なメモリアクセスを提供し、且つより少ない電力を消費する。しかし、内部メモリの容量は、高性能なGPUの記憶要求を満たすために容易には拡大され得ない。例えば、高性能なGPUは、GPUの内部メモリに含まれ得るよりも多くのメモリを必要とするであろう。
【0006】
上述に鑑み、十分なメモリ容量(外部メモリと同等な)及び大きな帯域幅(埋め込みメモリと同等な)の両方を提供するメモリ及びそのアプリケーションが必要とされている。
【課題を解決するための手段】
【0007】
本発明の実施形態は、汎用使用のための処理ユニット内部メモリ(an internal, processing-unit memory)及びそのアプリケーションを提供することによって、上述の必要性を満たす。本発明の実施形態の処理ユニット内部メモリは、それが処理ユニット内に埋め込まれているという理由で、大きな帯域幅を提供する。また、複数の処理ユニットメモリは十分に大きなメモリプールへと組み合わされ得るので、十分な記憶容量が提供される。
【0008】
例えば、本発明の実施形態はGPUを提供する。GPUは、第1の内部メモリと、第1の内部メモリに結合される実行ユニットと、第1の内部メモリを他の処理ユニットの第2の内部メモリに結合するように構成されるインタフェースと、を含む。ある実施形態においては、GPUはソフトウエアにおいて具現化される。別の実施形態においては、GPUはシステム内に含まれる。システムは、例えば、スーパーコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、ビデオゲームコンソール、埋め込みデバイス、携帯デバイス(例えば携帯電話、スマートフォン、MP3プレイヤ、カメラ、GPSデバイス等)、又はGPUを含み若しくはGPUを含むように構成される別のシステムを備えていてよい。
【0009】
本発明の更なる特徴及び利点の他、本発明の種々の実施形態の構成及び動作は、添付の図面を参照して以下に詳細に説明される。尚、本発明はここに説明される特定の実施形態に限定されない。そのような実施形態は例示の目的のみのためにここに提示されている。追加的な実施形態はここに含まれる教示に基き関連分野を含めた当業者にとって明らかであろう。
【図面の簡単な説明】
【0010】
ここに組み込まれ且つ出願書類の一部をなす添付の図面は本発明を示し、そして明細書と共に、本発明の原理を説明すること及び関連分野を含めた当業者が本発明を作りそして使用するのを可能にすることに更に役立つ。
【0011】
【図1A】図1Aは本発明の実施形態に従い汎用使用のための処理ユニット内部メモリを含む例示的なシステムを示す図(その1)である。
【図1B】図1Bは本発明の実施形態に従い汎用使用のための処理ユニット内部メモリを含む例示的なシステムを示す図(その2)である。
【0012】
【図2】図2は本発明の実施形態に従い汎用使用のための内部メモリを有する例示的なGPUの詳細を示す図である。
【0013】
【図3】図3は本発明の実施形態に従い処理要素内に含まれていてよい例示的な積層メモリを示す図である。
【0014】
【図4】図4は本発明の実施形態に従い図2のGPUによって実装される例示的な方法を示す図である。
【0015】
本発明の特徴及び利益は、図面と共に以下に記述される詳細な説明からより明らかになり、図面において同様の参照符号は全体を通して対応する要素を識別する。図面において、同様の参照数字は一般的に同一の、機能的に類似の、及び/又は構造的に類似の要素を示す。ある要素が最初に現れる図面は対応する参照番号の一番左の単一又は複数の桁によって示される。
【発明を実施するための形態】
【0016】
I.概説
本発明は、汎用使用のためのGPU内部メモリ及びそのアプリケーションを提供する。以下の詳細な説明において、「1つの実施形態」、「ある実施形態」、「例示的実施形態」等に対する言及は、説明される実施形態が特定の特徴、構造又は特性を含んでいてよいが、全ての実施形態が必ずしも当該特定の特徴、構造又は特性を含む必要がなくてよいことを示している。また、そのような表現は必ずしも同じ実施形態を参照しているとは限らない。更に、特定の特徴、構造又は特性がある実施形態に関連して説明されている場合には、明示的に説明されていようとなかろうと、他の実施形態に関連して当該特定の特徴、構造又は特性を具現化することは当業者の知識の範囲内にあることと言える。
【0017】
ある実施形態によると、GPUは、1つ以上の他の処理ユニットによって使用されるように構成される内部メモリ(例えば埋め込みDRAM又は積層DRAM)を含む。GPUはインタフェースを含むと共にプロトコルを実装しており、1つ以上の他のGPUが当該内部メモリにアクセスすることを可能にしている。インタフェースは、各他のGPUに当該内部メモリへの専用のアクセスを提供してよく、あるいは他のGPUに当該内部メモリへの共有アクセスを提供してよい。GPUの内部メモリへのアクセスは、GPUそれ自身又は各他のGPUによって制御されてよい。
【0018】
ある実施形態においては、インタフェース及びプロトコルは、内部メモリが外部メモリと組み合わされることを可能にし、GPUがアクセス可能なより大きなメモリプールを形成する。外部メモリは他のGPU内に含まれていてよい。ある実施形態においては、例えば、コンピューティングデバイスは複数のGPUを含み、ここでは各GPUは他のGPUと共有されるように構成される内部メモリを含む。この実施形態においては、各GPUの内部メモリは統合化メモリプール(unified memory pool)へと組み合わされる。メモリプールのサイズは、共有しているGPUの数に対応する。共有しているGPUはいずれもがその記憶要求に対してメモリプールを使用してよい。
【0019】
本発明の実施形態に従う例示的なGPUの更なる詳細が以下に説明される。しかし、これらの詳細を提供するのに先立ちそのようなGPUが実装されるであろう例示的なコンピューティングデバイスを説明することは有用である。
【0020】
II.例示的なコンピューティングシステム
図1A及び1Bは複数のGPUを有する例示的なコンピューティングシステム100を示しており、各GPUは、本発明の実施形態に従い汎用使用のために構成される内部メモリを含んでいる。外部メモリと比べて、内部メモリは、データへのより大きな帯域幅アクセスを各GPUに提供する。また、各GPUの内部メモリは、各GPUによってアクセス可能な更に大きなメモリプールへと組み合わされてよく、それにより各GPUに十分な記憶容量を提供することができる。
【0021】
図1Aの実施形態においては、各GPUは他のGPUの内部メモリへの専用のアクセスを与えられている。図1Bの実施形態においては、各GPUは他のGPUの内部メモリへの共有インタフェースを介した共有アクセスを有している。実施形態においては、コンピューティングシステム100は、スーパーコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、ビデオゲームコンソール、埋め込みデバイス、携帯デバイス(例えば携帯電話、スマートフォン、MP3プレイヤ、カメラ、GPSデバイス等)、又はCPU及び/若しくはGPUを含み若しくはCPU及び/若しくはGPUを含むように構成される何らかの他のデバイスを備えていてよい。
【0022】
図1A及び図1Bを参照すると、コンピューティングデバイス100は、CPU102、第1のGPU110A、及び第2のGPU110Bを含む。CPU102は命令を実行してコンピューティングデバイス100の機能を制御する。GPU110は、データ並列処理タスク(例えばグラフィクス処理タスク及び/又は一般計算タスク)を行うことによってCPU102を支援する。GPU110は典型的には、それらの設計に基づいて、データ並列処理タスクを、CPU102がソフトウエアにおいてそれらを行い得るであろうよりも高速に行うことができる。
【0023】
第1のGPU110A及び第2のGPU110Bは、それら自身の内部メモリ及び実行ユニットを各々が含む。具体的には、第1のGPU110Aは内部メモリ106A及び実行ユニット142Aを含み、また第2のGPU110Bは内部メモリ106B及び実行ユニット142Bを含む。同様にCPU102はキャッシュメモリ130及び実行ユニット132を含む。内部メモリ106(及び随意的にキャッシュメモリ130)は、特定のデータが外部的に記憶されていたとした場合(例えばそのデータがシステムメモリ104内に記憶されていたとした場合)に可能であろうよりも高速なそのデータへのアクセス及び大きな帯域幅を提供するために、GPU110が利用可能である。内部メモリ106は、例えば埋め込みDRAM又は積層DRAMを備えていてよい。
【0024】
内部メモリ106A、106B(及び随意的にキャッシュメモリ130)は、高速で大きな帯域幅のメモリアクセスを提供しながら相当の記憶容量(例えば4GBより大きい)を提供するために、より大きなメモリプールへと組み合わされてよい。従来の外部メモリは十分な記憶容量(例えば4GBより大きい)を提供し得るが、従来の外部メモリは特定の高性能な用途に対して不十分な帯域幅をもたらす。同様に、従来の埋め込みメモリはこれらの高性能な用途に対して十分な帯域幅を提供し得るが、従来の埋め込みメモリはこれらの高性能な用途に対して不十分な記憶容量(例えば4GB未満)をもたらす。従来の外部メモリ及び/又は従来の埋め込みメモリとは異なり、本発明の実施形態は、汎用使用のために他のGPUが利用可能な内部メモリを含むGPUを提供することによって、十分な記憶容量(例えば4GBより大きい)を提供するだけでなく、大きな帯域幅をも提供する。
【0025】
例えば、高性能なGPUのフレームバッファ(即ちディスプレイデバイス上に表示されるべきデータの完全なフレームを記憶するバッファ)は、相当大きなメモリ(例えば4ギガバイト(GB)より大きい)への大きな帯域幅のアクセスを必要とするであろう。実施形態においては、第1のGPU110Aは、内部メモリ106A、B及び随意的にCPU102のキャッシュメモリ130を使用して第1のGPU110Aのフレームバッファを定義してよい。同様に、第2のGPU110Bもまた、内部メモリ106A、B及び随意的にCPU102のキャッシュメモリ130を使用して第2のGPU110Bのフレームバッファを定義してよい。このようにして、従来の外部メモリ又は埋め込みメモリとは異なり、本発明の実施形態に従い定義されるフレームバッファは、相当大きなメモリ(例えば4GBより大きい)への大きな帯域幅のアクセスを提供する。
【0026】
図1Aの実施形態においては、既に示唆されたように、各GPU110は、他の処理ユニットの内部メモリ106への専用のアクセスを与えられている。具体的には、第1のインタフェース101は、第2のGPU110Bの内部メモリ106Bへの専用アクセスを第1のGPU110Aに提供し、また第1のGPU110Aの内部メモリ106Aへの専用アクセスを第2のGPU110Bに提供する。データは、そのデータのアドレス範囲に基づいて、内部メモリ106A又は内部メモリ106Bのいずれかに対して書き込まれ又はいずれかからリトリーブされる(retrieved)。例えば、内部メモリ106Aは第1のアドレス範囲(例えば第1の予め定められたアドレスA未満且つ第2の予め定められたアドレスB以上)を割り当てられてよく、また内部メモリ106Bは第2のアドレス範囲(例えば第1のアドレス範囲内でない全てのアドレス)を与えられてよい。しかし、第1のGPU110A及び第2のGPU110Bが各々第1のGPU110Aの内部メモリ106A及び第2のGPU110Bの内部メモリ106Bへのアクセスを有し得ることを前提として、内部メモリ106A及び/又は内部メモリ106Bへデータを書き込み且つこれらからデータをリトリーブするための他のスキームが、本発明の精神及び範囲から逸脱することなく実装されてよいことが理解されるはずである。
【0027】
ある実施形態においては、第1のインタフェース101はディスプレイ制御器インタフェースを備えている。ディスプレイ制御器インタフェースは、ディスプレイデバイス140にGPUのフレームバッファへのアクセスを提供する。ディスプレイ制御器インタフェースを第1のインタフェース101内に組み込むことによって、第1のインタフェース101は、従来のGPU設計に既に含まれている標準ピン上に設けられ得る。
【0028】
第1のインタフェース101に加えて、第2のインタフェース103は、第2のGPU110Bの内部メモリ106Bへの専用アクセスをCPU102に提供し、またCPU102のキャッシュメモリ130への専用アクセスを第2のGPU110Bに提供する。このようにして第2のGPU110B及びCPU102は、各々第2のGPU110Bの内部メモリ106B及びCPU102のキャッシュメモリ130へのアクセスを有することができる。同様に、第3のインタフェース105は、CPU102のキャッシュメモリ130への専用アクセスを第1のGPU110Aに提供し、また第1のGPU110Aの内部メモリ106Aへの専用アクセスをCPU102に提供する。このようにして第1のGPU110A及びCPU102は、各々第1のGPU110Aの内部メモリ106A及びCPU102のキャッシュメモリ130へのアクセスを有することができる。
【0029】
図1Bの実施形態においては、各処理ユニットは、他の処理ユニットの内部メモリへの共有インタフェース164を介した共有アクセスを有する。共有インタフェース164は、各処理ユニット(例えば第1のGPU110A、第2のGPU110B及びCPU102)に他の処理ユニットの内部メモリへの大きな帯域幅のアクセスを提供する。データは、そのデータのアドレス範囲に基づいて、内部メモリ106A、内部メモリ106B又はキャッシュメモリ130に対して書き込まれ又はいずれかからリトリーブされる。例えば、内部メモリ106Aは第1のアドレス範囲を割り当てられてよく、内部メモリ106Bは第2のアドレス範囲を与えられてよく、そしてキャッシュメモリ130は第3のアドレス範囲を割り当てられてよい。しかし、第1のGPU110A、第2のGPU110B及びCPU102が各々第1のGPU110Aの内部メモリ106A、第2のGPU110Bの内部メモリ106B、及びCPU102のキャッシュメモリ130へのアクセスを有し得ることを前提として、内部メモリ106A、内部メモリ106B及び/又はキャッシュメモリ130へデータを書き込み且つこれらからデータをリトリーブするための他のスキームが、本発明の精神及び範囲から逸脱することなく実装されてよいことが理解されるはずである。
【0030】
実施形態においては、コンピューティングデバイス100はまた、システムメモリ104、補助メモリ120、入力・出力(I/O)インタフェース116、及び/又はディスプレイデバイス140を含む。システムメモリ104は、CPU102上で動作中のプログラムによって頻繁にアクセスされる情報を記憶する。システムメモリ104は典型的には揮発性メモリを備えており、これはコンピューティングデバイス100への電力がオフになったときにシステムメモリ104内に記憶されているデータが喪失することを意味している。補助メモリ120は、コンピューティングデバイス100によって使用されるデータ及び/又はアプリケーションを記憶する。補助メモリ120は、典型的にはシステムメモリ104に比べて大きな記憶容量を有しており、また典型的には不揮発性(永続的)メモリを備えており、これはコンピューティングデバイス100への電力がオフになったとしても補助メモリ120内に記憶されているデータが持続することを意味している。I/Oインタフェース116は、コンピューティングデバイスシステム100が外部デバイス116(例えば外部ディスプレイデバイス、外部記憶デバイス(例えばビデオゲームカートリッジ、CD、DVD、フラッシュドライブ等)、ネットワークカード、又は何らかの他の種類の外部デバイス)と結合されることを可能にする。ディスプレイデバイス140はコンピューティングデバイス100のコンテンツを表示する。ディスプレイデバイスは、陰極線管、液晶ディスプレイ(LCD)、プラズマスクリーン、又は現在既知であるか将来開発されるかにかかわらず何らかの他の種類のディスプレイデバイスを備えていてよい。
【0031】
GPU110及びCPU102は、互いに、そしてシステムメモリ104、補助メモリ120及びI/Oインタフェース116とバス114を介して通信する。バス114は、周辺要素インタフェース(peripheral component interface)(PCI)バス、アクセラレーテッドグラフィクスポート(accelerated graphics port)(AGP)バス、PCIエクスプレス(PCI Express)(PCIE)バス、又は現在利用可能であり若しくは将来開発される他の種類のバスを含めてコンピューティングデバイスにおいて用いられる任意の種類のバスであってよい。
【0032】
実施形態においては、コンピューティングデバイス100は、GPU110の代わりに又はGPU110に加えてビデオ処理ユニット(VPU)を含んでいてよい。例えばある実施形態においては、コンピューティングデバイス100はGPU110A、CPU102を含み、そして図1A及び1Bに示されるGPU110Bに代えて、コンピューティングデバイス100はVPUを含む。このようにして、CPU102は一般的な処理機能を行うことができ、GPU110Aはグラフィクス処理機能を行うことができ、そしてVPUはビデオ処理機能を行うことができる。
【0033】
III.例示的なGPU
図2は内部メモリ106を有するGPU110の例示的な詳細を示している。本発明の実施形態に従い、増大されたメモリフットプリント(footprint)サイズに基づいてグラフィクス処理能力を結合することによって全体的なシステム性能を増大するために、内部メモリ106は他のGPU又はCPUにより使用され得る。
【0034】
上述したように、GPU110は実行ユニット142及び内部メモリ106を含む。図2を参照すると、実行ユニット142は入力論理202、シェーダコア204及び出力論理206を含む。内部メモリ106はメモリ制御器210及びメモリセル212を含む。メモリ制御器210はメモリセル212へのアクセスを制御する。メモリセル212はデータを記憶する。
【0035】
ある実施形態においては、内部メモリ106は埋め込みダイナミックランダムアクセスメモリ(DRAM)を備える。埋め込みDRAMは、処理ユニットと共に共通のパッケージ内に密閉された(encapsulated)メモリである。別の実施形態においては、内部メモリ106は図3に示されるような積層DRAMを備える。積層メモリは、互いの上に3次元構造で積層される複数のメモリ要素を含む。
【0036】
内部メモリ106は、入力論理202及び出力論理206の両方を介して実行ユニット142に結合される。特に、入力論理202は内部メモリ106からデータをリトリーブすることができ、また出力論理206は、データをメモリセル212内に記憶されるように内部メモリ106へ送ることができる。
【0037】
内部メモリ106はまた、第1のインタフェース250を介して他のGPUの内部メモリに結合されていてよい。内部メモリ106を他のGPUの内部メモリに結合することは、実行ユニット142が利用可能な総メモリプールを増大させることができる。ある実施形態においては、第1のインタフェース250は、図1Aのインタフェース101によって示されるように、GPU110の内部メモリ106と他のGPUの内部メモリとの間に専用のアクセスを提供する。この実施形態においては、第1のインタフェース250は従来のGPUの標準ピン上に設けられたものである。例えば第1のインタフェース250はディスプレイ制御器インタフェースを備えていてよく、ディスプレイ制御器インタフェースは、内部メモリ106に含まれるローカルフレームバッファへのディスプレイデバイスアクセスを提供する。別の実施形態においては、第1のインタフェース250は、図1Bのインタフェース164によって示されるように、GPU110の内部メモリ106と他の処理ユニットの内部メモリとの間で共有されるアクセスを提供する。
【0038】
内部メモリ106はまた、第2のインタフェース260を介してCPU102のキャッシュメモリ130に結合されていてよい。その結果、内部メモリ106とキャッシュメモリ130の組み合わせは、GPU110が利用可能なメモリプールを増大させることができる。ある実施形態においては、第2のインタフェース260は、図1Aの接続103又は接続105のように、GPU110の内部メモリ106とCPU102のキャッシュメモリ130との間での専用接続を提供する。別の実施形態においては、第2のインタフェース260は、図1Bの接続164のように、GPU110及びCPU102のみによって共有される接続を提供する。更なる実施形態においては、第2のインタフェースは、図1A及び図1Bのバス114のように、GPU110を共通のバス上でCPU102と結合する。
【0039】
IV.GPU110の例示的な動作
図4は本発明の実施形態に従いGPU110によって実装される例示的な方法400を示している。方法400は図2及び4を参照して以下に説明される。
【0040】
方法400はステップ402で開始し、命令が受信される。ある実施形態においては、GPU110によって実行されるべき命令を入力論理202が受信する。命令は、例えば、システム100のCPU102上で実行中のエンドユーザアプリケーションによって提供されるグラフィクス処理タスク又はデータ並列処理タスクを備えていてよい。
【0041】
ステップ404では、命令に関連するロケーションが識別される。1つの例においては、データは受信された命令と共に含まれていてよい。そのようなデータは一般的に即時データと称される。別の例においては、命令はデータのロケーションを提供する。例えば、命令はデータが記憶されているアドレスを含んでいてよい。更なる例においては、命令は、データが記憶されているアドレスを入力論理202が計算するための情報を含む。データは、内部メモリ106、内部メモリ106が結合される他のGPUの内部メモリ、又はCPU102のキャッシュメモリ130のいずれかに記憶されてよい。
【0042】
ステップ406では、データがリトリーブされる。データが即時データである場合には、入力論理202は命令から単純に即時データを抽出する。データが内部メモリ106内又は内部メモリ106が結合されるメモリ内に記憶されている場合には、入力論理202はデータにアクセスするための要求をメモリ制御器210へ送る。一方において、データがメモリセル212内に記憶されている場合には、データはリトリーブされて入力論理202へ供給される。他方、内部メモリ106に結合される他のメモリ内にデータが記憶されている場合には、入力論理202からの要求が他のメモリにインタフェース250又はインタフェース260を介して転送される。データは次いで、他のメモリからリトリーブされて入力論理202へ供給される。
【0043】
ステップ408では、命令が実行される。シェーダコア204は、ステップ406で入力論理202によって獲得されたデータに基づいて命令を実行する。
【0044】
ステップ410では、命令実行の結果が出力論理206へ提供される。出力論理206は、判断ステップ412に示されるように、これらの結果に基づいて更なる処理が必要であるかどうかを決定する。出力論理206に提供される結果は、追加の処理が必要であるかどうかを示すために、フラグ又は他のなんらかの印を有していてよい。判断ステップ412において更なる処理が必要であることを出力論理206が決定した場合、出力論理206は結果をシェーダコア204へ転送し戻し、そして方法400のステップ408及び410が繰り返される。一方、判断ステップ412において更なる処理が必要でないと出力論理206が決定した場合には、出力論理206は、ステップ414に示されるように結果を内部メモリ106へ提供する。
【0045】
結果は次いで、結果が書き込まれるべきアドレスに応じて、内部メモリ106又は内部メモリ106に結合されるメモリへ書き込まれてよい。結果が内部メモリ106へ書き込まれるべきである場合には、メモリ制御器210はメモリセル212内の適切なアドレスへのアクセスを提供し、そして結果はそこに記憶される。一方、内部メモリに結合されるメモリへ結果が書き込まれるべきである場合には、メモリ制御器210はインタフェース250又はインタフェース260を介して結果を他のメモリへ転送し、そして結果は他のメモリのメモリセル内に記憶される。
【0046】
V.例示的なソフトウエア実装
GPU110のハードウエア実装に加えて、そのようなGPUはまた、例えばソフトウエア(例えばコンピュータ可読プログラムコード)を記憶するように構成されるコンピュータ可読媒体内に配置されるソフトウエアにおいて具現化されてもよい。コンピュータ可読プログラムコードは、(i)ここに開示されるシステムの機能及び技術(例えばGPU110にタスクを提供すること、GPU110内でタスクをスケジューリングすること、GPU110内でタスクを実行すること、等)、(ii)ここに開示されるシステムの製造及び技術(例えばGPU110の製造)、又は(iii)ここに開示されるシステムの機能及び製造並びに技術の組み合わせ、の実施形態を含めて本発明の実施形態を可能にする。
【0047】
このことは、例えば、一般的なプログラミング言語(例えばC又はC++)、ベリログ(Verilog)HDL、VHDL、アルテラ(Altera)HDL(AHDL)等を含むハードウエア記述言語(hardware description languages)(HDL)、あるいは他の利用可能なプログラミング及び/又は回路図等(schematic)キャプチャツール(capture tools)(例えば回路キャプチャツール)の使用を通して達成され得る。コンピュータ可読プログラムコードは、半導体、磁気ディスク、光学ディスク(例えばCD−ROM、DVD−ROM)を含む任意の既知のコンピュータ可読媒体内に配置され得る。従って、コンピュータ可読コードは、インターネット及びそれと同等のもの(the Internet and internets)を含む通信ネットワークを介して伝送され得る。上述したシステム及び技術によって達成される機能及び/又は提供される構造は、コンピュータ可読プログラムコードにおいて具現化されるコア(例えばシェーダコア)内で表現することができ、また集積回路の生産の一部としてハードウエアに変換されてよいことが理解される。
【0048】
VI.結論
汎用使用のためのGPU内部メモリ及びそのアプリケーションが上に説明される。概要及び要約の欄ではなく詳細な説明の欄が特許請求の範囲を解釈するために用いられることを意図されていることが理解されるべきである。概要及び要約の欄は、発明者によって検討されているような本発明の1つ以上であるが全てではない例示的な実施形態を記述することができ、従って、本発明及び添付の特許請求の範囲を限定することを意図されるものでは決してない。

【特許請求の範囲】
【請求項1】
第1の内部メモリと、
前記第1の内部メモリに結合される実行ユニットと、
前記第1の内部メモリを他の処理ユニットの第2の内部メモリに結合するように構成されるインタフェースと、を備えるグラフィクス処理ユニット(GPU)。
【請求項2】
前記他の処理ユニットはGPUを備える請求項1の処理ユニット。
【請求項3】
前記他の処理ユニットは中央処理ユニットを備える請求項1の処理ユニット。
【請求項4】
前記第1の内部メモリは積層ダイナミックランダムアクセスメモリを備える請求項1の処理ユニット。
【請求項5】
前記第1の内部メモリは埋め込みダイナミックランダムアクセスメモリを備える請求項1の処理ユニット。
【請求項6】
前記インタフェースは前記第1の内部メモリをディスプレイデバイスに結合するように更に構成される請求項1の処理ユニット。
【請求項7】
コンピューティングデバイス上で実行される場合にグラフィクス処理ユニット(GPU)を定義する命令が入っているコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であって、前記GPUは、
第1の内部メモリと、
前記第1の内部メモリに結合される実行ユニットと、
前記第1の内部メモリを他の処理ユニットの第2の内部メモリに結合するように構成されるインタフェースと、を備えるコンピュータプログラム製品。
【請求項8】
前記他の処理ユニットはGPUを備える請求項7のコンピュータプログラム製品。
【請求項9】
前記他の処理ユニットは中央処理ユニットを備える請求項7のコンピュータプログラム製品。
【請求項10】
前記GPUの前記第1の内部メモリは積層ダイナミックランダムアクセスメモリを備える請求項7のコンピュータプログラム製品。
【請求項11】
前記GPUの前記第1の内部メモリは埋め込みダイナミックランダムアクセスメモリを備える請求項7のコンピュータプログラム製品。
【請求項12】
前記GPUはハードウエア記述言語ソフトウエアにおいて具現化される請求項7のコンピュータプログラム製品。
【請求項13】
前記GPUはべリログハードウエア記述言語ソフトウエア、ベリログAハードウエア記述言語ソフトウエア及びVHDLハードウエア記述言語ソフトウエアの1つにおいて具現化される請求項7のコンピュータプログラム製品。
【請求項14】
第1の内部メモリと前記第1の内部メモリに結合される第1の実行ユニットと前記第1の内部メモリを他のGPUの内部メモリに結合するように構成される第1のインタフェースとを備える第1のグラフィクス処理ユニット(GPU)と、
第2の内部メモリと前記第2の内部メモリに結合される第2の実行ユニットと前記第2の内部メモリを他のGPUの内部メモリに結合するように構成される第2のインタフェースとを備える第2のGPUと、を備えるシステムであって、
前記第1の内部メモリ及び前記第2の内部メモリは互いに結合されて前記第1のGPUの前記第1の実行ユニットが前記第2のGPUの前記第2の内部メモリにアクセスすることを可能にすると共に前記第2のGPUの前記第2の実行ユニットが前記第1のGPUの前記第1の内部メモリにアクセスすることを可能にするシステム。
【請求項15】
前記第1の内部メモリは積層ダイナミックランダムアクセスメモリを備える請求項14のシステム。
【請求項16】
前記第1の内部メモリは埋め込みダイナミックランダムアクセスメモリを備える請求項14のシステム。
【請求項17】
前記第1のインタフェースは前記第1の内部メモリをディスプレイデバイスに結合するように更に構成され、
前記第2のインタフェースは前記第2の内部メモリを前記ディスプレイデバイスに結合するように更に構成される請求項16のシステム。
【請求項18】
外部メモリと、
キャッシュメモリを備える中央処理ユニット(CPU)と、
前記外部メモリ及び前記CPUの間を結合するバスと、を更に備える請求項14のシステム。
【請求項19】
前記第1のGPUは前記第1の内部メモリを前記CPUの前記キャッシュメモリに結合するように構成される他のインタフェースを更に備える請求項18のシステム。
【請求項20】
前記第2のGPUは前記第2の内部メモリを前記CPUの前記キャッシュメモリに結合するように構成される他のインタフェースを更に備える請求項18のシステム。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2013−504130(P2013−504130A)
【公表日】平成25年2月4日(2013.2.4)
【国際特許分類】
【出願番号】特願2012−528080(P2012−528080)
【出願日】平成22年9月3日(2010.9.3)
【国際出願番号】PCT/US2010/047784
【国際公開番号】WO2011/028984
【国際公開日】平成23年3月10日(2011.3.10)
【出願人】(591016172)アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド (439)
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
【Fターム(参考)】