GNU/Linux >> Linux の 問題 >  >> Linux

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

これは、小さな ASM コードで実現できます。インテル システム プログラミング ガイドの第 11 章を参照してください

<ブロック引用>

11.5.3 キャッシングの防止

L1、L2、および L3 キャッシュを有効にしてキャッシュ フィルを受信した後で無効にするには、次の手順を実行します。ノーフィル キャッシュ モードに入ります。 (制御レジスタ CR0 の CD フラグを 1 に設定し、NW フラグを 0.2 に設定します。WBINVD 命令を使用してすべてのキャッシュをフラッシュします。3. MTRR を無効にし、デフォルトのメモリ タイプを非キャッシュに設定するか、すべての MTRR を非キャッシュ メモリ タイプに設定します (「セクション 11.11.2.1「IA32_MTRR_DEF_TYPE MSR」の TYPE フィールドと E フラグの説明の説明)。

これを実装する Python モジュールは知りません。


Python で直接行うことはできません。これを行うにはカーネル モジュール (およびそのモジュールをロードするためのルート権限) が必要なためです。

L1 キャッシュを無効にする (無効にするのではなく無効にする) ために必要なことについては、http://lxr.free-electrons.com/source/arch/arm/mm/cache-v7.S#L21 を参照してください。

異なる CPU アーキテクチャ (x86 と ARM など) では、キャッシュを無効にするために異なるアセンブリ コード (CPU 命令) が必要です。 Linux カーネルが L1/L2/L3/L4 キャッシュを無効にする可能性があるかどうかはわかりません。もしそうなら、CPU が遅いため、短期間だけ内部的に使用されると思います。これらのキャッシュなし。

Linux システムで CPU キャッシュ (L1/L2) を無効にする方法はありますか? を参照してください。 x86/x64 システムでキャッシュを無効にする方法に関するリンク (レジスタ cr0 を変更する必要があります) )。 ARM の場合は、キャッシュが無効になっている動作を確認してください。

CPU キャッシュの機能を完全に理解しているかどうかはわかりません。システムのパフォーマンスを低下させたい理由を詳しく説明していただけますか?


Linux
  1. Linuxでシャットダウンおよび再起動コマンドを無効にする方法

  2. CentOSでSELinuxを無効にする方法は?

  3. Ubuntu で Wayland を有効または無効にする方法

  1. Linuxでメモリバッファとキャッシュを削除する方法

  2. UbuntuとLinuxMintでDNSキャッシュをフラッシュする方法

  3. CとJavaでCPUキャッシュ効果を生み出す方法は?

  1. Yumプラグインを有効、無効、およびインストールする方法

  2. NGINXでETagを無効にする方法

  3. Linux カーネルが使用するキャッシュを消去する方法