ホームページ >よくある問題 >メインメモリとキャッシュの間の 3 つのアドレス マッピング方法は何ですか?

メインメモリとキャッシュの間の 3 つのアドレス マッピング方法は何ですか?

青灯夜游
青灯夜游オリジナル
2021-07-26 13:43:0317288ブラウズ

マッピング方法には、フルアソシアティブ方式、ダイレクト方式、グループアソシエイティブ方式の 3 種類があります。ダイレクト マッピングではメイン メモリ ブロックを一意のキャッシュ ラインに保存でき、フル アソシアティブ マッピングではメイン メモリ ブロックを任意のキャッシュ ラインに保存でき、グループ アソシエイティブ マッピングではメイン メモリ ブロックを一意のキャッシュ グループ内の任意のラインに保存できます。

メインメモリとキャッシュの間の 3 つのアドレス マッピング方法は何ですか?

このチュートリアルの動作環境: Windows 10 システム、Dell G3 コンピューター。

キャッシュは高速バッファ レジスタであり、CPU とメイン メモリ間の速度の不一致を解決するために使用される重要なテクノロジです。

CPU によるメモリへのアクセスは、通常、一度に 1 ワード単位で読み書きされます。 CPU によるキャッシュへのアクセスがミスした場合、メインメモリに格納されているワード単位を後続のいくつかのワードとともにキャッシュに転送する必要がありますが、これは後続のメモリアクセスが確実にキャッシュにヒットするようにするためです。

したがって、メインメモリとキャッシュ間で交換されるデータの単位はデータブロックでなければなりません。データブロックのサイズは固定で複数のワードで構成され、メインメモリとキャッシュのデータブロックサイズは同じです。

キャッシュ メイン メモリ レベルで達成される目標の観点から見ると、一方では CPU のメモリ アクセス速度がキャッシュ アクセス速度に近い必要があり、他方では実行中のユーザープログラム用に提供されるスペースは、メインメモリの容量のままにしておく必要があります。

キャッシュ-メイン メモリ階層を使用するシステムでは、キャッシュはユーザー プログラムに対して透過的です。つまり、ユーザー プログラムはキャッシュの存在を知る必要がありません。したがって、CPU がメモリにアクセスするたびに、キャッシュが使用されていない場合と同様にメイン メモリのアドレスが与えられます。しかし、キャッシュとメイン メモリの階層では、CPU が最初にアクセスするのはメイン メモリではなくキャッシュです。

この目的を達成するには、CPU のメイン メモリ アクセス アドレスをキャッシュ アクセス アドレスに変換するメカニズムが必要です。メインメモリアドレスとキャッシュアドレス間の変換は、メインメモリブロックとキャッシュブロック間のマッピング関係と密接に関係しており、CPU によるキャッシュへのアクセスが失敗した場合、アクセスするワードを変更する必要があります。メイン メモリにあるブロックはキャッシュに転送され、その転送に使用される戦略は、メイン メモリのアドレスとキャッシュ アドレスの対応関係に直接影響します。これは、メイン メモリとキャッシュとの間のアドレス マッピングの問題です。このセクションで解決します。

メインメモリとキャッシュ間のアドレスマッピング方式には、フルアソシアティブ方式、ダイレクト方式、セットアソシアティブ方式の3種類があります。

  • ダイレクト マッピング (directmapping)

    メイン メモリ ブロックを固有のキャッシュ ラインに保存します。

  • 完全連想マッピング

    メイン メモリ ブロックを任意のキャッシュ ラインに保存できます。

  • セット連想マッピング (setassociative Mapping)

    メイン メモリ ブロックを固有のキャッシュ グループ内の任意の行に格納できます。

ダイレクト マッピング

多対 1 のマッピング関係ですが、メイン メモリ ブロックは、メモリ内の特定の行位置にのみコピーできます。キャッシュ。

キャッシュライン番号 i とメインメモリブロック番号 j には次のような関数関係があります: i=j mod m (m はキャッシュ内の総ライン数)

利点: シンプルハードウェア、実装が簡単

#欠点: ヒット率が低く、キャッシュ ストレージ スペースの使用率が低い

メインメモリとキャッシュの間の 3 つのアドレス マッピング方法は何ですか?

#完全連想マッピング

メイン メモリのブロックがキャッシュ内の任意のラインに直接コピーされます。

利点: 高いヒット率、高いキャッシュ ストレージ領域の使用率

欠点: 複雑な配線、高コスト、低速

メインメモリとキャッシュの間の 3 つのアドレス マッピング方法は何ですか?

グループ連想マッピング

キャッシュを u 個のグループに分割し、各グループには v 行があり、どのグループにメイン メモリ ブロックがあるかを指定します。グループにどの行を格納するかは固定であり、キャッシュ行の総数 m=u×v グループ番号 q=j mod u# という関数関係があります。

## はグループ間およびグループ内で直接マッピングを使用します: Quanlianlian

#ハードウェアはよりシンプルで、速度はより速く、ヒット率はより高くなります

#さらに関連する知識については、

FAQメインメモリとキャッシュの間の 3 つのアドレス マッピング方法は何ですか?column をご覧ください。

以上がメインメモリとキャッシュの間の 3 つのアドレス マッピング方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。