直接マッピングとは何ですか?
ダイレクトマッピングは、コンピューターに簡単にアクセスできる情報を保存する方法です。最近使用された情報はキャッシュに保存されているため、次回必要なときにコンピューターが情報をすばやく見つけることができます。コンピュータープログラミングでは、キャッシュは、データを簡単に取得する目的で確保されているランダムアクセスメモリ(RAM)の小さなセクションです。直接マッピングを使用すると、メモリ内の各データにはキャッシュにスペースが割り当てられ、他のデータと共有されます。新しいデータが必要なため、キャッシュデータは常に上書きされています。
キャッシュはラインに編成されています。各行は、データのどこから来たのかを識別するために、データとタグの1つのブロックを保存するのに十分な大きさのみです。ユーザーがデータを要求するとき、コンピューターは最初にキャッシュをスキャンして、情報がそこにあるかどうかを確認します。もしそうなら、情報はユーザーに返されます。これはキャッシュヒットとして知られています。これは、元の場所からデータを取得するよりも速いです。
キャッシュヒットの結果として生じるリクエストの割合は、ヒット率と呼ばれます。ユーザーが要求したデータがキャッシュにない場合、コンピューターはメモリに表示されます。データのコピーがキャッシュに堆積され、次にユーザーが要求したときにすぐに見つけることができ、理論的にはヒット率が増加します。これらはすべて舞台裏で起こります。ユーザーは、受信したデータがキャッシュまたはメモリから来たかどうかを知りません。
ダイレクトマッピングは、メモリのブロックがキャッシュに保存される場所を決定する1つの方法です。メモリの各ブロックには、キャッシュに特定のラインが割り当てられます。キャッシュはメモリよりも小さいため、複数のブロックがキャッシュに単一の行を共有します。新しいブロックを書く必要がある場合、ラインがすでにいっぱいになっている場合、古いブロックが上書きされます。
ダイレクトマッピングはキャッシュを設計するための非常にシンプルで簡単な方法ですが、いくつかの問題を提示します。プログラムが継続的に乗算にアクセスする場合直接マッピングキャッシュで同じ行を共有するデータのブロックは、頻繁に書き換えられます。これにより、コンピューターが必要とするデータが現時点で実際にそのキャッシュラインにあるデータである可能性が低いため、多くのミスが発生します。したがって、ダイレクトマッピングのヒット率は他のキャッシュマッピングモデルよりも低くなります。