プロセッサのL1およびL2キャッシュを無効にする方法は?

プロセッサのL1およびL2キャッシュを無効にする方法は?

Ubuntu 14.04でL1および/またはL2キャッシュを無効にできますか(可能な限りPythonなどの高級言語を使用)。それでは、どうすればいいですか?

また、キャッシュの無効化はアーキテクチャによって大きく異なりますか?それでは、ARM Cortex-A15にもっと興味があります。

編集する

キャッシュを無効にする方法を調査中に、/proc/sys/vm/で "drop_caches"ファイルを見つけました。kernel.org ドキュメント

「これを作成すると、カーネルはディレクトリやinodeなどの回復可能なスラブオブジェクトだけでなく、きれいなキャッシュも削除します。削除すると、そのメモリは解放されます。」

...

「このファイルは、さまざまなカーネルキャッシュ(inode、ディレクトリエントリ、ページキャッシュなど)の増加を制御する手段ではありません。システムの他の場所でメモリが必要な場合、カーネルはこれらのオブジェクトを自動的に回収します。」

これはキャッシュを無効にするようには見えないだけでなく、仮想メモリがハードウェアではなくOSに常駐していると思うので、私が望むものではないようです。私の目標はキャッシュを無効にすることですので、必要なメモリはRAMなどの他の場所で見つける必要があります。

編集する

明確にするためにキャッシュを無効にすると、システムにどのような影響があるかを理解できます。しかし、これは安全が重要なアプリケーションの信頼性を向上させるために宇宙アプリケーションで使用される一般的な技術です。以下は、この現象を記録したいくつかのリソースです。

キャッシュによる組み込みソフトウェアの放射による障害の低減

宇宙放射線環境におけるマイクロプロセッサの地上放射線試験のガイドライン

このトピックに関する本もあります。

電子製品の電離放射線効果:メモリからイメージャまで

ベストアンサー1

いくつかのASMコードを使用してこれを行うことができます。 Intelの第11章を参照してください。システムプログラミングガイド

11.5.3 キャッシュの防止

キャッシュフィルを有効にして受信した後にL1、L2、およびL3キャッシュを無効にするには、次の手順を実行します。 1.塗りつぶしなしキャッシュモードに入ります。 (制御レジスタCR0のCDフラグを1に設定し、NWフラグを0に設定します。 2. WBINVD命令を使用してすべてのキャッシュをフラッシュします。キャッシュされていないキャッシュメモリの種類(セクション11.11.2.1「IA32_MTRR_DEF_TYPE MSR」のTYPEフィールドとEフラグの説明を参照)

私はこの機能を実装できるPythonモジュールを知りません。

おすすめ記事