メモリコヒーレンスとは

メモリの一貫性は、プロセッサがメモリセクタを調べようとするときにコンピュータで発生する問題です。 この問題は、マルチコアシステム、または複数の中央処理装置(CPU)があるコンピューターでのみ発生します。 複数のプロセッサが同じメモリセクタを見て、一方がセクタを更新すると、もう一方には古いバージョンのコンピュータメモリが残る場合があります。 この問題を修正するには、一貫性ルールを使用して、プロセッサが同じメモリにアクセスしないようにするか、プロセッサ間で更新が一貫するようにします。 整合性モデルはいくつかあるため、プログラマーとコンピューター開発者は使用されている正確なモデルを知っている必要があります。

メモリの一貫性の問題は、メモリへのアクセス方法が原因で、少なくとも2つのCPUを使用しているコンピューターでのみ発生します。 1つのCPUがメモリセクタにアクセスしている場合、メモリを奪い合う他のハードウェアが存在しないため、競合することなくメモリを取得、使用、および変更できます。 2つのCPUが使用されている場合、2つのCPUは同じメモリセクタを取得する可能性があります。 メモリを共有する2つのCPUに問題はありませんが、1つのCPUがメモリを更新すると問題が発生します。 これにより、2番目のCPUに古いメモリが残ります。このチェックボックスをオフのままにすると、コンピュータ全体で2つの異なるバージョンのコンピュータメモリが使用される可能性があります。

メモリの一貫性を修正するために特別に作成されたプログラミングスキーマがありますが、これは大きな問題になる可能性があります。 それらは、メモリ一貫性ルールと総称され、多くのバージョンがあります。 全体として、各バージョンは、メモリの一貫性の問題を引き起こすことなく、コンピューターのメモリを適切に共有する方法を複数のCPUに伝えます。 これは、1つのバージョンが変更されたときにメモリの両方のバージョンを更新するか、CPUが同じメモリに同時にアクセスしないようにすることで実行できます。

一貫性ルールを使用すると、メモリの一貫性の問題を回避できますが、これから別の問題が発生します。 各一貫性セットには異なるプログラミングと異なるルールがあるため、CPUを直接扱うプログラムを作成したりコードを記述しているプログラマーは、正確な一貫性ルールに合わせてコーディングを調整する必要があります。 そうでない場合、これは一貫性を無効にするか、プログラマのコーディングと一貫性ルールの間に大きな競合を引き起こす可能性があり、コンピューターは機能しなくなる可能性があります。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?