掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VirtualAlloc()でキャッシング禁止したページ領域を確保するには? (ID:51190)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ブタゴリラさん、res感謝します。 >VirtualAllocは基本的に >メインメモリ〜HDD間のメモリキャッシュになると思うのですが・・・。 そうですか。メインメモリ〜CPUのキャッシングを禁止できるのかと思ってました。 >それに、何を根拠にキャッシュにヒットしたと思ったのかにもよりますけど・・・。 単に、メモリの連続したアドレスのデータ(1MBほど)をCPUのレジスタに読み込む速度を測定したり、CPUのレジスタからメモリの連続したアドレスにデータ(1MBほど)を書きこんだりして書きこみ速度を測定したりして、リード・ライト速度がPAGE_NOCACHEフラグをセットした場合とセットしない場合で変わらなかったので、CPU内部のキャッシュを使用しているのだと思いました。 私がしたいことは単純で、メモリの連続したアドレスのデータ(1MB以上)をCPUのレジスタに読み込む速度をできるだけ上げたいということです。そのためにはCPU内部のL1,L2キャッシュなどをできるだけ汚さずにレジスタにデータを読み込みんだ方が良いと思うのです。(現に、レジスタからメモリへの書きこみについては、CPU内部のL1,L2キャッシュをできるだけ汚さずに書きこみができるMMX命令のmovntqやSSE命令のmovntpsをインラインアセンブラで使用すれば、書きこみ速度が2倍ほどになります。) VirtualAlloc()を使えば、もしかするとメモリからCPUレジスタに読み込むときに L1,L2キャッシュを汚さないようにできるのかもと期待していたのですが。。。 できないようなので残念です。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.