タグ付けされた質問 「shared-memory」

1
メモリの一貫性とキャッシュの一貫性
Sequential ConsistencyがCache Coherenceよりも強力なプロパティであることは本当ですか? による ソリン、ダニエルJ; ヒル、マークD; Wood、David A:メモリの一貫性とキャッシュの一貫性に関する入門書、Morgan&Claypool、2011 順次一貫性は、(正式ではなく)と説明できます。 シーケンシャル整合性メモリモデルは、システムがすべてのスレッドのロードとストアをすべてのメモリ位置に実行し、各スレッドのプログラム順序を考慮した合計順序で実行する必要があることを指定します。各ロードは、その合計順序で最新のストアの値を取得します。 言い換えると、各スレッドのメモリイベント(ロードおよびストア)が与えられた場合、次のようにすべてのイベントを順序付けることができます。1)各スレッドについて、イベントの順序が保持され、2)グローバルな順序がシリアル(保存された最新の値を返すロード)。 今、彼らは一貫性を説明し続けています。 定義コヒーレンスシーケンシャル一貫性の定義に類似してコヒーレントシステムは、各スレッドのプログラム順序を尊重総ために単一のメモリ位置へのすべてのスレッドのロードとストアを実行するために現れなければならないということです。 つまり、システムは一貫性があり、各場所の各スレッドのメモリイベントが与えられた場合、1)各スレッドのその場所へのイベントの順序が保持され、2)それぞれの注文がシリアルである場所。 最後に、彼らは違いを指摘します: この定義は、一貫性と一貫性の重要な違いを強調しています。一貫性はすべてのメモリ場所に関して指定されるのに対し、一貫性はメモリ場所ごとに指定されます。 したがって、一貫性のあるシステムでは、各場所のすべてのイベントの合計順序(特定の場所のイベント間の順序)が必要ですが、一貫性のあるシステムでは、すべてのイベントの合計順序を定義する必要があります(したがって、順序は異なる場所のイベント間でもありますか?) それは、一貫性が一貫性ほど厳密ではないということですか?(面白いようです!)一貫性のある一貫性のないトレースはありますか?

1
静止整合性が構成的であるが、順次整合性が構成されていない理由
これら2つのメモリ整合性モデルの比較に問題があります。 基本的には、シーケンシャルな一貫性のために、次のような実際のコードを考えます。 int x, y; void ThreadA() { x = 20; //Write int a = y; //Read } void ThreadB() { y = 20; int b = x; } シーケンシャル一貫性の環境ではそれは不可能だためaか、bのどちらかである20ではないとa = 20、b = 20かa = 20 && b = 20。 しかし、静止時の一貫性はこの例にどのように適合し、なぜ構成的であるのでしょうか。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.