0

私のプロジェクト-RAM速度テストユーティリティ。そこで、MOVSD(最大サイズのブロックDWを持つMOVとして)を使用して、あるソースからメモリを読み取り、別のソースに書き込みました。しかし、私が得た結果は、RAMが使用されておらず、代わりにメモリキャッシュが使用されていることを示しています。これは、DDR2SDRAMの読み取り/書き込み速度が768MByte/sであるためです。

したがって、キャッシュテストではなく、大きなブロックをメモリに移動し、キャッシュをオーバーフローさせてメモリをテストするには、80x86用のアセンブラの命令または関数が必要です。C / C ++のような最適化が必要ないため、アセンブラーを使用します。メモリのさまざまなブロックを書き換えると、コンパイラーはそれが不要であると判断し、テストを破棄する可能性があります。だから私はmemcpyなどを使いません。

4

1 に答える 1

2

最大のキャッシュのサイズよりも大きなブロックを移動し、movntdq書き込みとmovntdqa読み取りに使用するようにしてください。

于 2012-05-25T16:24:16.443 に答える