一貫性モデル (ソフトウェア)
発行法式は、プロセスがメモリ操作を行う際の制限を定義することで、逐次的整合性シミュレーションを行う。一方、観測方式は、プロセスのイベント順序に対する可視性の制限を記述する。
モデルによっては、プログラムの順序をさらに緩和し、異なる場所への書き込み間の順序制約さえも緩和するものもある。SPARC V8のパーシャルストアオーダーモデル(PSO)は、このようなモデルの唯一の例である。同じプロセッサから異なる場所への書き込みをパイプライン化し、オーバーラップさせることができることが、PSOが可能にする重要なハードウェア最適化である。PSOは、プロセッサが自分の書き込みの値を読み取ることができ、他のプロセッサが他のプロセッサの書き込みを読み取ることができないようにするという点で、不可分性の要件についてはTSOと同様である。2つの書き込み間のプログラム順序は、PSOでは明示的なSTBAR命令を用いて維持される。このSTBAR命令は、FIFO書き込みバッファを持つ実装では、書き込みバッファに挿入される。カウンタは、STBAR命令以前のすべての書き込みが完了したかどうかを判断するために使用され、メモリシステムへの書き込みが開始されてカウンタが増加します。書き込み確認でカウンタが減少し、カウンタが0になると、それまでの書き込みがすべて完了したことになる。
例Aと例Bでは、PSOによってこれらの非連続的に一貫した結果が得られる。PSOが提供するセーフティーネットはTSOのものと同様で、書き込みから読み出しまでのプログラムの順序を決め、書き込みの不可分性を強制する。
前のモデルと同様に、PSOが許容する緩和は、コンパイラの最適化に役立つほど十分に柔軟ではなく、もっと柔軟な最適化が必要である。
トランザクショナル・メモリー・モデルは、ソフトウェアまたはハードウェアでサポートされる共有メモリ・システムの通信モデルとして、キャッシュ・コヒーレンシーとメモリ一貫性モデルを組み合わせたもので、トランザクション・メモリ・モデルはメモリ一貫性とキャッシュ・コヒーレンシーの両方を提供する。トランザクションとは、一貫性のある状態から別の状態にデータを変換するプロセスによって実行される一連の操作のことである。トランザクションには、衝突がない場合にコミットするものと、中止するものがある。コミットでは、トランザクションが完了したときにすべての変更が他のすべてのプロセスから見えるようになるが、アボートではすべての変更が破棄される。緩和した整合性(一貫性)モデルと比較して、トランザクションモデルは使いやすく、シーケンシャルな整合性(一貫性)モデルよりも高いパフォーマンスを提供することができる。