6

私は最近、ハイパースレッディングについて研究している学生です。L1 Data Cache Context Mode という機能について少し混乱しています。

アーキテクチャ最適化マニュアルでは、L1 キャッシュは 2 つのモードで動作できると説明されています。

  • 第 1 レベルのキャッシュは、コンテキスト ID ビットに応じて 2 つのモードで動作できます。

    1. 共有モード: L1 データ キャッシュは、2 つの論理プロセッサによって完全に共有されます。

    2. 適応モード: 適応モードでは、ページ ディレクトリを使用するメモリ アクセスは、L1 データ キャッシュを共有する論理プロセッサ間で同じようにマップされます。

ただし、説明に従って、適応モードでキャッシュがどのように分割されるかについては興味があります。

4

3 に答える 3

4

Intel arch では、値 1 はL1 Context IDL1 データ キャッシュ モードを適応モードまたは共有モードに設定できることを示し、値 0 はこの機能がサポートされていないことを示します。IA32_MISC_ENABLE MSR Bit 24詳細については、 (L1 Data Cache Context Mode)の定義を確認してください。

Intel® 64 and IA-32 Architectures Developer's Manual: Vol. 3A (Chapter 11/Cache Control) を以下に引用します。

  • 共有モード

共有モードでは、L1 データ キャッシュが論理プロセッサ間で競合的に共有されます。これは、論理プロセッサが同一の CR3 レジスタとページング モードを使用している場合でも当てはまります。共有モードでは、L1 データ キャッシュ内の線形アドレスにエイリアスを設定できます。つまり、キャッシュ内の 1 つの線形アドレスが異なる物理的な場所を指すことができます。エイリアシングを解決するメカニズムは、スラッシングにつながる可能性があります。このため、IA32_MISC_ENABLE[ビット 24] = 0 は、Intel ハイパースレッディング テクノロジをサポートする Intel NetBurst マイクロアーキテクチャに基づくプロセッサの推奨構成です。

  • 適応モード

適応モードにより、論理プロセッサ間での L1 データ キャッシュの共有が容易になります。適応モードで実行している場合、次の場合、L1 データ キャッシュは同じコア内の論理プロセッサ間で共有されます。

• キャッシュを共有する論理プロセッサの CR3 制御レジスタは同一です。

• キャッシュを共有する論理プロセッサは、同じページング モードを使用します。

この状況では、L1 データ キャッシュ全体が (競合的に共有されるのではなく) 各論理プロセッサで使用できます。L1 データ キャッシュを共有する論理プロセッサの CR3 値が異なる場合、または論理プロセッサが異なるページング モードを使用する場合、プロセッサはキャッシュ リソースを求めて競合します。これにより、各論理プロセッサのキャッシュの有効サイズが減少します。キャッシュのエイリアシングは許可されていません (データのスラッシングを防ぎます)。

L1 データキャッシュを分割するための明確なアプローチはないと思います。

于 2012-09-04T06:01:33.543 に答える
2

ドキュメントには、適応モードを使用し、CR3 またはページング モードがコア間で異なる場合、キャッシュが共有されず、コアがキャッシュを「競合」することが記載されています。パーティショニングがどのように機能するかはわかりません。

これを実装する最も簡単な方法は、データ キャッシュのウェイの半分を各プロセッサに静的に予約することです。これにより、基本的にデータ キャッシュの半分が静的に各プロセッサに割り当てられます。

あるいは、各キャッシュ ラインの仮想タグにビットを追加して、そのラインが属するプロセッサを区別することもできます。これにより、キャッシュの動的パーティションが可能になります。これは、静的パーティションよりもキャッシュの「競合」の説明に適しています。

本当に知る必要がある場合は、いくつかのマイクロベンチマークを設計して、これらのスキームが実際に使用されていることを確認できます。

于 2012-09-05T15:27:23.547 に答える