データフロー問題の調査

プログラムにおけるデータフローが効率低下の原因となることがあります。

最もおおまかなレベルで言えば、データがきちんと管理できていないと過剰のデータページフォルトが発生する恐れがあります。 データページフォルトは、データフォルト時間メトリックを調査することで特定できます。 ページフォルトは、大量のデータを読み込んだり、データ空間のあちこちに散在するメモリー位置にアクセスしたりすると発生します。 プログラムはデータを少なくとも 1 回は読み込まなければならないため、回避できないページフォルトもあります。 その他のページフォルトは、データ管理を慎重に行うことで回避することが可能です。

要求されたデータ項目がマップされていない場合、別の種類の遅延が出たフローに発生します。 この遅延は、DTLB (Data Translation Lookaside Buffer) ミスを引き起こします。 データページフォルトの場合、最初のミスはデータ項目をアクセスするために必要ですが、その他のミスは回避できる可能性があります。 UltraSPARC[tm] III Cu ハードウェアでは DTLB ハードウェアカウンタのデータを記録し (たとえばカウンタ名に別名 dtlb を使用)、対応するメトリックを調べることができます。

プログラムのデータフローは、データキャッシュミスも引き起こす可能性があります。 データキャッシュミスが発生する場所と所要時間を特定するには、データキャッシュミスとデータキャッシュストールサイクルのメトリックを調べます。 これらのメトリックを調べるには、ハードウェアカウンタのオーバーフロープロファイルデータを収集する必要があります。 UltraSPARC III プロセッサファミリーでは、データキャッシュ読み取りミス、データ書き込みミス、およびデータキャッシュストールサイクルを数えるハードウェアカウンタのデータを、dcrmdcwm、および dcstall の別名を使用して記録できます


著作権と商標について