メモリコヒーレンスとは何ですか?
メモリコヒーレンスは、プロセッサがメモリセクターを調べようとするときにコンピューターで発生する問題です。この問題は、マルチコアシステム、または複数の中央処理ユニット(CPU)を持つコンピューターでのみ発生します。複数のプロセッサが同じメモリセクターを見て、1つがセクターを更新すると、もう1つはコンピューターメモリの古いバージョンを残すことができます。この問題を修正するために、一貫性ルールを使用して、プロセッサが同じメモリにアクセスしないか、更新がそれらの間で一貫していることを確認します。いくつかの異なる一貫性モデルがあるため、プログラマーとコンピューター開発者は使用される正確なモデルを知る必要があります。
メモリコヒーレンスの問題は、メモリにアクセスする方法のために少なくとも2つのCPUを使用しているコンピューターでのみ発生するものです。 1つのCPUがメモリセクターにアクセスしている場合、メモリを競う他のハードウェアピースがないため、競合なしにメモリを取得、使用、変更することができます。 2つのCPUを使用する場合、2つのCPUは、同じメモリセクターをつかむことができます。メモリを共有する2つのCPUに問題はありませんが、1つのCPUがメモリを更新すると問題が発生します。これにより、2番目のCPUに時代遅れのメモリが残り、チェックされていない場合、コンピューター全体にコンピューターメモリの2つの別々のバージョンと競合するバージョンを持たせる可能性があります。
メモリの一貫性を修正するために特別に作成されたプログラミングスキーマがありますが、これは大きな問題になる可能性があります。それらはまとめてメモリの一貫性ルールとして知られており、多くのバージョンがあります。全体として、各バージョンは複数のCPUに、メモリコヒーレンスの問題を引き起こすことなくコンピューターメモリを適切に共有する方法を伝えます。これは、1つのバージョンが変更されたときに両方のバージョンのメモリを更新するか、CPUが同じメモリに同時にアクセスしないようにすることで実行できます。
一貫性ルールを使用している間、メモリコヒーレンスの問題を回避するのに役立ちます。これはこれから生じます。各一貫性セットには異なるプログラミングと異なるルールがあるため、CPUを直接扱うプログラムまたは執筆コードを作成しているプログラマーは、正確な一貫性ルールのコーディングを調整する必要があります。そうでない場合、これは一貫性をオーバーライドするか、プログラマーのコーディングと一貫性ルールの間に大きな競合を引き起こし、コンピューターが機能しなくなる可能性があります。