コンピュータ原理における3つのマッピング方法

ダイレクトイメージ(1つのキャッシュから複数のメインメモリ)

ここに画像の説明を挿入
直接マッピングは、1つのキャッシュページが複数のメインメモリページに対応することを意味します。
直接マッピング関数は次のとおりです。i = j%2 c、ここでiはキャッシュページ番号、jはメインメモリページ番号です。

  • 例:メインメモリページ0%2 c = 0、これはキャッシュページ0にのみマップできます
  • 例:メインメモリページ(2 c + 1)%2 c = 1、キャッシュのページ1にのみマップできます

キャッシュの各ページにtビットマークを設定します(t = m -c)。メインメモリのページがキャッシュに読み込まれた後、メインメモリのページ番号の上位tビットがキャッシュの対応するページに配置されます。タグ内。


ここに画像の説明を挿入

ダイレクトマッピングモードでのメインメモリキャッシュの読み取りプロセス:
1.キャッシュページ番号を見つける:CPUがアクセスするとき、まずメモリアクセスアドレスのcビット(ページ番号)に従ってメインメモリに対応するキャッシュのページ番号を見つけます。
2.チェック:キャッシュのページ番号を見つけた後、そのマークがメインメモリの上位tビットと一致しているかどうかをチェックします。
3.-一貫性:一致が一致すると、ヒットし、ページのアドレス(ビットb)に従ってキャッシュからデータを読み取ります。
   -不整合:不整合がない場合(ターゲットがない場合)、CPUはメインメモリから直接読み取ります。

直接マッピングの利点は実装が簡単ですが、欠点は柔軟性が十分でないことです。2があるのでトンのページメインメモリ内の場合のみ、独自のキャッシュページに対応することが可能に2つの以上のページがある2 トンのキャッシュに転送されるページは、競合が必然的に発生します。たとえば、1、2 c +1,2 c + 1 +1 ... 2 c + nはすべてキャッシュ内のページ1に対応します。これらのページの2つ以上が同時に呼び出されると、競合が発生します。

完全に関連付けられたイメージ(1つのメインメモリから複数のキャッシュ)

完全に関連付けられたマッピングは、1つのメインメモリページが複数のキャッシュページに対応することを意味します。つまり、メインメモリ内の任意のページを、キャッシュ内の任意のページにロードできます
ここに画像の説明を挿入


「メインメモリ-キャッシュ」アドレス変換速度を高速化するために、通常、連想メモリに格納されているディレクトリテーブルを使用して、アドレスマッピングを実装します。ここに画像の説明を挿入

1.キャッシュページ番号を見つける:ストレージアドレスが指定された後、メインメモリのページ番号がディレクトリテーブル内の各アイテムのページ番号と比較されます。
2.-存在する場合は、対応するキャッシュページ番号が取り出され、ページ内のアドレスとスプライシングしてキャッシュアドレスが形成されます。
     -同じがない場合は、メインメモリページがキャッシュにロードされておらず、ターゲットが失われ、メインメモリから読み取られていることを意味します。

完全に関連付けられたマッピングの利点は、ブロックの競合の可能性が最も低いことです。キャッシュが完全に満たされた場合にのみ、ブロックの競合が発生する可能性があります。ただし、現在のコンピュータシステムのキャッシュ容量は一般に大きいため、大容量の連想目次を作成することは困難であり、テーブルルックアップの速度を上げることは困難です。現在のコンピュータシステムでは、純粋に連想マッピングを行う方法はほとんどありません。 。

グループ連想マッピング(グループキャッシュとエリアのメインメモリ間のマッピング)

2内にキャッシュスペースを分割するのQ、グループ2つの各グループS(2呼ばれるページウェイの連想)、2にメインメモリ空間を分割し、m個の 2各領域、領域Qのページ、メインメモリ内の特定の領域を固定にマッピングすることが許可されていますグループ内のアイテム特定の領域のページ0はCache0グループの任意のページに転送でき、ページ1はCache1グループの任意のページに転送できます。

ここでq = 7を設定すると、キャッシュに0〜127、合計128グループ、s = 1、各グループに2ページ(双方向アソシアティブと呼ばれる)があり、各ページは32バイトで、キャッシュ容量は8KBです。メインメモリアドレスは32ビット、m = 20で、最大は2 20の領域に分割できます。各領域には128(2 q)ページがあり、各ページには32バイトがあります。ここに画像の説明を挿入

1.グループの選択:CPUによって指定されたアドレスの中央にある7ビット領域のキャッシュからグループを選択します。
2.キャッシュページ番号を見つける:グループ内のページのマークをそれぞれ読み取り、それらを1つずつ比較してページ番号を見つけます。
3.-一致がある場合、ヒットし、ワードアドレスに従ってキャッシュからコンテンツを読み取ります。
    -一致しない場合、ターゲットは失われ、CPUアドレスに従ってメインメモリから読み取られます。

グループ連想モードはグループ間の直接マッピングを使用し、グループ内の各ページは完全な連想マッピングモードです。このように、キャッシュページの衝突確率は直接マッピング方式よりもはるかに低く、グループ内の各ページの完全に関連付けられたマッピングモードにより、アドレスリンクテーブルはより小さく、実装が簡単で、検索が高速になります。

sの選択により、ページ競合の可能性とアドレスマッピングの複雑さが決まります。

  • とき2つのsが =数キャッシュページには、グループ連想マッピングモードは完全連想マッピングモードになります。
  • 場合2個のS = 1、群連想マッピングモードは、ダイレクトマッピングモードとなります。

したがって、適切なs値を選択することが非常に重要です。

おすすめ

転載: blog.csdn.net/qq1350975694/article/details/107317646