2016-04-08 12 views
0

私は分析する必要があるプログラムの2つのバージョンがあります。 1つは再帰的であり、もう1つは反復的です。両方のキャッシュヒット率を比較して、両方の方法と命令数に応じてパフォーマンスが異なるために調べる必要があります。mipの反復メソッドと反復メソッドのパフォーマンスの差

ブロック設定に関係なく両方の方法で、反復方法のメモリアクセスは約100少なくなります。両方とも2回のミスを引き起こす。私は手順については、サイズの1つのブロック256

に設定を設定している場合、私はわずか85%にキャッシュヒット率を落とすことができ、反復を数えるおよそ1000年の指示以下

で、これはなぜ起こるか誰かが私に説明することができます私は何かを見つけることができないように私はこれを読むことができるいくつかの文献を提供します。私は、なぜこれが起こるのかについての一般的な概要が欲しいだけです。

+0

再帰的メソッドは、反復メソッドよりも大幅に多くのスタック領域を使用する可能性があり、結果的にデータキャッシュミスが増えます。 – markgz

答えて

0

Recursion or Iteration?とMcGillのCOMP 273の中にはあなたも入っていると思われる人がいます。

通常、各再帰呼び出しでは、その呼び出しの戻りアドレスをスタックにプッシュする必要があります。 MIPS(アセンブリ)でこれを手動で行う必要があります。そうでない場合は、返信アドレスはそれぞれjalで上書きされます。したがって、は通常です。再帰的な解決策として、より多くのキャッシュスペースが使用されます。そのため、メモリアクセス数が増加します。反復的な解決策では、これは必ずしも必要ではありません。

+0

おかげさまで、私は命令の量とキャッシュコールの量に関して考えていたことをありがとう。キャッシュのヒット/ミスが設定に基づいて変更されるかどうかは不明です –