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