CPUキャッシュに静的オブジェクトを明示的に作成することは可能ですか?それらのオブジェクトが常にキャッシュに残っていることを確認して、RAMまたはgod forbid-hdd仮想メモリに至るまでのパフォーマンスのヒットはありませんか?c/C++のCPUキャッシュにスタティックメモリを割り当てる:可能ですか?
L1、L2、命令、またはその他のキャッシュを対象としない、大規模なL3共有キャッシュを対象としています。
私はこの記事を投稿する前に検索した他のスレッドとは区別して明確にするために、キャッシュ全体の民営化に興味はありません。
あなたができることは、GCCの[__builtin_prefetchマクロ](http://gcc.gnu.org/onlinedocs/gcc-3.3.6/gcc/Other-Builtins.html)を使うことです。 IIRCキャッシュはコードによってアドレス可能ではないため、CPUはそれ自身を管理します(少なくともx86では)。 –
どのようなプロセッサですか?アーキテクチャによっては、データが必要となる前にキャッシュ・ヒントを与える方法やキャッシュ・プリフェッチを指示する方法があります。 – TJD
短いanwer:あなたは傾けることはできません。あなたが行うことができる唯一のことは、参照の場所を緊密に保つことです。メモリ内を行き来するのではなく、前の操作でアクセスされたデータに近いデータにアクセスしてください。また、データをキャッシュ境界に整列させておくと、別のキャッシュフェッチを避けることができます。 BTWキャッシュ*スロット*は連続している必要はありません。 x86では、IIRCには4つのL1スロットと数百または数千のL2スロットがあります。 (マルチプロセスマシン上の他のプロセスと共有する必要があります)。 – wildplasser