ARM-A アーキテクチャ入門の基礎 (4) キャッシュ

14 日間の学習合宿インストラクターコース: Zhou Hehe「ARMv8/ARMv9 アーキテクチャ - クイック スタート」

1. 定義

キャッシュは ARM の高速アクセス メモリ ブロックであり、各キャッシュには次のものが含まれます。

  1. メインメモリのアドレス情報。
  2. データをキャッシュします。

2. キャッシュモデル

ここに画像の説明を挿入

速度:L1キャッシュ>L2キャッシュ>L3キャッシュ
容量:L1キャッシュ<L2キャッシュ<L3キャッシュ

マルチレベル キャッシュ ワークフロー:
CPU がアドレスからデータをロードしようとすると、まずそれが L1 キャッシュからヒットしたかどうかをチェックします。ヒットした場合は、データが CPU に返されます。L1 キャッシュが見つからない場合は、 、L2 キャッシュからの検索を続けます。L2 キャッシュがヒットすると、データは L1 キャッシュと CPU に返されます。L2 キャッシュにも欠落している場合は、残念ながらメイン メモリからデータをロードし、L2 キャッシュ、L1 キャッシュ、CPU にデータを返す必要があります。この多値キャッシュの仕組みを包括キャッシュ(多値キャッシュには特定のアドレスのデータが存在する可能性がある)といいます。包含キャッシュに対応するのは排他キャッシュです。これは、特定のアドレスのデータ キャッシュがマルチレベル キャッシュの 1 つにのみ存在することを保証します。つまり、どのアドレスのデータも L1 キャッシュと L2 キャッシュに存在することはできません。同時に。

3. 用語と基本概念

ここに画像の説明を挿入

タグはキャッシュに格納されているメモリ アドレスの一部であり、データ行に関連付けられたメイン メモリ アドレスを識別するために使用されます。64 ビット アドレスの上位ビットは、タグと呼ばれるメイン メモリからの情報の取得場所をキャッシュに伝えます。タグ値を保持するために使用される RAM は計算に含まれていませんが、合計キャッシュ サイズは保持できるデータ量の尺度になります。ただし、タグはキャッシュ内の物理スペースを占有します。
タグ アドレスごとに 1 ワードのデータを保存するのは非効率であるため、複数の場所が同じタグの下にグループ化されることがよくあります。この論理ブロックは通常、キャッシュ ラインと呼ばれ、キャッシュ内のロード可能な最小単位、つまりメイン メモリからの連続したワード ブロックを指します。キャッシュ ラインは、キャッシュされたデータまたは命令が含まれる場合は有効と呼ばれ、キャッシュされたデータまたは命令が含まれない場合は無効と呼ばれます。
データの各行には、1 つ以上のステータス ビットが関連付けられています。通常、行に使用可能なデータが含まれていることをマークする有効ビットがあります。これは、アドレス ラベルが何らかの実際の値を表すことを意味します。データ キャッシュには、キャッシュ ライン (またはキャッシュ ラインの一部) にメイン メモリの内容とは異なる (更新された) データが含まれているかどうかを示す 1 つ以上のダーティ ビットが存在する場合もあります。
インデックスはメモリ アドレスの一部であり、キャッシュのどのラインでそのアドレスが見つかるかを判断するために使用されます。アドレスまたはインデックスの中間ビットは行を識別します。インデックスはキャッシュ RAM 内のアドレスとして使用され、タグの一部として保存する必要はありません。これについては、この章で後ほど詳しく説明します。
パスはキャッシュを細分化したもので、それぞれ同じサイズで、同じ方法でインデックスが付けられます。コレクションは、特定のインデックスをあらゆる方法で共有するキャッシュ ラインで構成されます。
これは、アドレスの下位数ビット (オフセットと呼ばれる) をタグに格納する必要がないことを意味します。行内のすべてのバイトではなく、行全体のアドレスが必要であるため、下位 5 ビットまたは 6 ビットは常に 0 になります。

おすすめ

転載: blog.csdn.net/In_engineer/article/details/128139471
おすすめ