corei3はハードウェアプリフェッチャーを介したハードウェアプリフェッチをサポートしていますか?はいの場合、どうすれば有効/無効にできますか?
2 に答える
Intel Core i3プロセッサは、ハードウェアのプリフェッチを確実にサポートしていますが、Intelのドキュメントは詳細が非常に弱い傾向があります。ブランド名「Corei3」は、「Nehalem」ベースのプロセッサと「Sandy Bridge」ベースのプロセッサの両方を指しているため、特定のモデル番号を確認して、どちらを扱っているかを確認する必要があります。
さらに複雑にするために、新しいIntelプロセッサ(Nehalem / Westmere / Sandy Bridge)には、いくつかの異なるハードウェアプリフェッチャーがあります。少なくとも3つは、Intel Architecture Software Developer's Manual、Volume 3B(publication 253669)に記載されています。表30-25「MSR_OFFCORE_RSP_x要求タイプのフィールド定義」では、「DCUプリフェッチ」と「L2プリフェッチャー」について説明しています。これらは、Core i7、i5、およびi3プロセッサーのパフォーマンスカウンターイベントについて説明している付録A-2の表A-2にも記載されています。表A-2のイベント4EHは、「L1ストリーマーとIPベース(IPP)HWプリフェッチャー」の両方があることを示しています。Westmereプロセッサのパフォーマンスカウンタについて説明している付録A.4の表A-6の対応するエントリ(イベント4EHの場合)には、このトピックに関する単語がさらにいくつかあります。
同じドキュメントの付録B-2、表B-3では、Intel CoreマイクロアーキテクチャのMSR(モデル固有のレジスタ)について説明していますが、これらの多くは新しいバージョンに引き継がれているようです。レジスタ1A0hは、4ビットがプリフェッチ動作を制御することを示しています。
- ビット9:ハードウェアプリフェッチャーを無効にする
- ビット19:隣接するキャッシュラインのプリフェッチを無効にする
- ビット37:DCUプリフェッチャーを無効にする
- ビット39:IPプリフェッチャーを無効にする
プリフェッチャーを有効または無効にするツールについては、 「ハードウェアプリフェッチをプログラムで無効にするにはどうすればよいですか?」で説明しています。
はい、ハードウェア プリフェッチャーは Core i3/i7 マシンに存在しますが、i3/i7 で無効にすることはできません。bios を使用して msr ビット (2) を変更することにより、プリフェッチ (1) を無効にする 2 つの方法。Intel は、i3/i7 で無効にする両方の方法のサポートを停止しました。
コメントからのリンク: https://software.intel.com/en-us/articles/disclosure-of-hw-prefetcher-control-on-some-intel-processors一部の Intel プロセッサでの H/W プリフェッチャー制御の開示 - Vish Viswanathan (インテル)、2014 年 9 月 24 日
この記事では、次のマイクロアーキテクチャに基づく Intel プロセッサで使用可能なさまざまなハードウェア プリフェッチャーを制御するために使用できる MSR 設定について説明します: Nehalem、Westmere、Sandy Bridge、Ivy Bridge、Haswell、および Broadwell。
上記のプロセッサは、データのプリフェッチ用に 4 種類のハードウェア プリフェッチャーをサポートしています。L1 データ キャッシュに関連付けられた 2 つのプリフェッチャー (DCU DCU プリフェッチャー、DCU IP プリフェッチャーとも呼ばれます) と、L2 キャッシュに関連付けられた 2 つのプリフェッチャー(L2 ハードウェア プリフェッチャー、L2 隣接キャッシュ ライン プリフェッチャー) があります。
これら 4 つのプリフェッチャーを制御するために使用できる、0x1A4 のアドレスを持つすべてのコアにモデル固有レジスタ (MSR) があります。このレジスタのビット 0 ~ 3 を使用して、これらのプリフェッチャーを有効または無効にすることができます。この MSR の他のビットは予約されています。