7

特定のデータのキャッシュをバイパスする命令を持つプロセッサはありますか? この質問には、SSE4.2命令がキャッシュをバイパスすることを示唆する回答もあります。誰かが私にそれについて教えてもらえますか?

4

5 に答える 5

6

一般に、キャッシュ ポリシーはメモリ管理ユニット (MMU) によって制御されます。アドレス範囲ごとに、キャッシング ポリシーが決定されます。これらのテーブルは OS によって管理され、システム空間で使用できます。あなたが尋ねるつもりだったかもしれない質問に対するサイドバーの回答として、キャッシュを持つアーキテクチャの場合、通常、キャッシュの同期/無効化/フラッシュに使用できる CPU コマンドがあります。ただし、MMU テーブルと同様に、これらのコマンドもシステム スペースでのみ使用できます。

于 2013-06-13T18:29:18.410 に答える
2

アルテラ Nios II アーキテクチャには、2 つの特定の命令ldiostio、キャッシュをバイパスするロード/ストア用があります。これらはメモリ マップト IO に使用されます。

http://www.csun.edu/~glaw/ee525/Lecture03Nios.pdf

Nios II は、一般にアルテラの FPGA ボードに使用されるソフト プロセッサであり、ハード ASIC デバイス用にライセンス供与することもできますが、このアーキテクチャに基づく商用 CPU は知りません。

于 2013-09-19T15:09:58.927 に答える
2

SSE キャッシュ バイパス ストア命令は、すぐに再びアクセスされることのない領域に書き込むときにキャッシュを汚染しないようにするためのものです。たとえば、再度使用されるデータを削除したくない場合などです。

また、x86 実装では通常、キャッシュ ラインの任意の部分への書き込みが発生すると、キャッシュ ライン全体が読み込まれます。キャッシュ ラインの以前の内容が不要な場合、これはメモリ帯域幅の浪費です。(たとえば、orのdest引数) を実装するためのこの書き戻し (デフォルト) と書き込み結合 ( / ) の効果についての古い議論を見つけました。他の何かが の出力をすぐに読み取る場合は、これを使用することに注意してください。memcpymemsetmovntqmovntdqmemcpymemcpy

ストリーミング ロードは、USWC リージョンからの読み取りに対してのみ機能します。その場合、通常のmemcpyパフォーマンスは恐ろしくなります。通常 (WB (ライトバック)) からのストリーミング ロードは現在、特別なものではなく、通常のmovdqaロードのように機能します。(つまり、NT ヒントは無視されます)。prefetchntaIntel の最適化マニュアルには、汚染を軽減する負荷に使用できると書かれています。


movnt読み取りをトリガーせずに ( でバイパスするのではなく) キャッシュに書き込むことができる場合は IDK 。memcpy512b ZMM レジスタは 64 バイト、つまりフル キャッシュ ラインであるため、おそらく AVX512 は のこの問題を解決します。まだキャッシュされていない ZMM レジスタからメモリへの 64 バイト アラインされたストアは、最初に RAM を読み取らない方法で実装でき、システム内の他の CPU コアからストアをすぐに認識できるようにします。

( AVX-512Skylake Xeon (他の skylake CPU ではありません)に含まれる予定です。Knight 's Landingにも含まれる、超並列の高スループット Xeon Phi コンピューティング アクセラレータです。)

于 2015-04-30T22:36:40.493 に答える
2

特定のデータのキャッシュをバイパスする命令を持つプロセッサはありますか?

SuperH ファミリ (または少なくとも SuperH-2) には、キャッシュ メモリの暗黙的バイパスと明示的バイパスの両方があります。これは、特別な命令ではなく、メモリ アドレス空間のさまざまな領域を使用して行われます。
アドレスの上位 3 ビットを に設定すると、同じアドレスのキャッシュスルー001ミラーにアクセスし、上位 3 ビットがクリアされます。また、一部の領域 (メモリ マップド I/O レジスタなど) はキャッシュされません。

于 2013-06-13T17:44:46.100 に答える
1

特定のデータの定義によっては、はい。プロセッサには通常、キャッシュできるメモリ領域とキャッシュしてはいけないメモリ領域を定義するために使用されるキャッシュ制御レジスタ/テーブルがあります。通常、ユーザー空間で実行されているコードは、これらのテーブルにアクセスできません。

于 2013-06-13T17:38:15.163 に答える