5

ARM ベースの SoC の次の仕様があります。

  • L1 データ キャッシュ = 32 KB、64 B/ライン、2 ウェイ、LRU
  • L2 キャッシュ = 1 MB、64 B/ライン、16 ウェイ
  • L1 データ TLB (ロード用): 32 エントリ、完全連想
  • L2 データ TLB: 512 エントリ、4 ウェイ
  • PDE キャッシュ: 16 エントリ (仮想空間 1 MB あたり 1 エントリ)

そして、PDE キャッシュとは何だろうか? TLBに似たものだと思いますが、よくわかりません。

回答
PDE (ページ ディレクトリ エントリ) は、TLB とは別に実装できる中間テーブル ウォーク キャッシュのようです。

Cortex-A15 MPCore プロセッサは、テーブル ウォークの一部として中間レベルの変換テーブル エントリを格納する専用キャッシュを実装しています。

4

3 に答える 3

5

TLB は完全な変換をキャッシュし、メモリ自体の一貫した部分を反映しません (一貫性はありませんが、ページ マップが変更された場合に一貫性が失われる可能性があるため、SW はフラッシュによって明示的に一貫性を強制する必要があります)。

ただし、ページマップ自体はメモリ内に常駐するため、そのすべての部分が、汎用キャッシュ階層内にあるか、PDE キャッシュなどの特別な専用キャッシュ内にあるかに関係なく、キャッシュされる可能性があります。これは実装固有のものであり、CPU が異なれば、それを行う方法が異なる場合があります。

TLB (そのレベルのいずれか) にヒットするアクセスはそのデータを必要としませんが、TLB ミスは、ページマップからのメモリ読み取りを発行するページウォークをトリガーします - これらの読み取りは、ページマップ データが含まれている場合、キャッシュでヒットする可能性があります。ずっと記憶にたどり着く必要はありません。

ページウォークは、シリアル化された長いアクセスの重要なチェーンであるため (仮想化を使用している場合はなおさらです)、アクセスをキャッシュすることによってこれらのアクセスのレイテンシーを最適化することがいかに重要であるかを想像できます。したがって、ページマップ レベルのいずれかに専用のキャッシュを用意すると、通常のデータ ライン (キャッシュを頻繁にスラッシングする) と競合するのに役立ちます。

于 2014-11-15T12:32:32.203 に答える
5

PDE (「ページ ディレクトリ エントリ」) は、トップ レベルのページ テーブル エントリに対する x86 アーキテクチャ用語です。ARM VMSA 用語の「第 1 レベルの記述子」に相当します。

これが問題のデータのソースであると仮定すると、おそらく Cortex-A15 の「中間テーブル ウォーク キャッシュ」を参照していると思われますが、これは実際には任意のレベルの変換をキャッシュできるため、完全には適切ではありません。

* 少なくとも IA-32 では - 64 ビット モードにはこれより上のレベルがあります

于 2014-11-15T12:35:22.577 に答える