2016-04-15 8 views
0

GPGPU-Simを使用してGPUのアーキテクチャを学習しようとしていますが、メモリ操作の流れと混同しています。私はa = b + cのような算術命令を持っていると言うことができます。計算を実行する前に、bとcにメモリロード操作が必要です。これらのロード命令はメモリに送られます。最初のすべてのキャッシュタグがチェックされます。GPUメモリ読み出し命令フロー、オペランドコレクタ

ミスの場合、MSHRに要求が追加され、gpuコアからの相互接続ネットワークを介して下位メモリに送信されます。要求が相互接続ネットワークからコアに戻ると、何らかの種類のメモリ応答fifoに追加されます。次に、応答FIFOからそれらの要求を取り出すことによって、キャッシュラインが満たされる。

ヒットした場合、キャッシュにデータがあります。

どちらの場合でも、算術命令単位のデータはキャッシュで使用できます。私は、オペランドコレクタがワープを発行するために必要なオペランドを収集することは知っていますが、混乱する部分は、オペランドコレクタがオペランドをどこから集めているかです。スレッドごとのレジスタ?もしそうなら、これらのレジスタはいつキャッシュから必要なデータを取得するのですか?

答えて

0

答えを見つけました。 fifoが空でなく、ライトバックステージがストールされていないとき、メモリ応答FIFOからの1つのメモリ要求応答がポップされます。ポップされたメモリ要求応答は、単一ポートのレジスタファイルバンクに書き込まれます。 SIMD実行ユニットは、必要に応じてそれらのレジスタファイルバンクからの算術命令に必要なレジスタをロードする。オペランドコレクタおよびそれらのレジスタファイルバンクに関する情報は、オンラインで入手可能で、NVIDIAによって支持されています。

関連する問題