プロセッサ一貫性
プロセッサ一貫性(プロセッサいっかんせい、英: processor consistency)またはプロセッサ整合性(プロセッサせいごうせい)とは、分散型共有メモリや分散型トランザクションなど、コンカレント・コンピューティングの領域で使用される一貫性モデル(整合性モデル)の一つである。
システムは、各プロセッサからの書き込みを他のプロセッサが見る順序が、その書き込みが発行された順序と同じであれば、プロセッサ一貫性を示す。このためプロセッサ一貫性は、複数のプロセッサを持つシステムにのみ適用される。すべてのプロセッサからの書き込みを同じ順番で見る必要がないため、因果一貫性モデルよりも弱いが、キャッシュコヒーレンスを必要とするため、PRAM一貫性モデルよりも強い。因果一貫性とプロセッサ一貫性のもう一つの違いは、プロセッサ一貫性では、ロードがストアの完了を待つことや、書き込み不可分性の要件が削除されていることである。プロセッサ一貫性は、同じメモリロケーションへの書き込みだけでなく、プロセッサによるすべての書き込みを順番に見る必要があるため、キャッシュ一貫性よりも強くなっている。
プロセッサ整合性は、逐次整合性よりは弱いものの、ほとんどの場合、必要以上に強い整合性モデル(一貫性モデル)である。マルチプロセッサシステム上で実行されるプログラムに固有の同期ポイントの数に起因する。データレースが発生しないことを意味する(データレースとは、少なくとも1つのアクセスが書き込みであるメモリロケーションへの複数の同時アクセスをすることである)。これを考慮すると、同期ポイントを横切る操作がない限り、すべてのメモリ操作の再編成を可能にするモデルが存在することは明らかである。しかし弱い順序は、プロセッサの一貫性と同じいくつかの制限を課している。すなわち、システムは一貫性を維持しなければならず、したがって、同じメモリ位置へのすべての書き込みは、すべてのプロセッサによって同じ順序で見られなければならない。弱い順序と同様に、リリース一貫性モデルは、すべてのメモリ操作の再順序付けを認めているが、さらに具体的になり、同期操作を分解して、再順序付けの緩和を認めている。これらのモデルはいずれも、コードの適切な同期と、場合によってはハードウェアによる同期サポートを前提としているため、プロセッサ一貫性は、そのモデルを使って実行するプログラムの信頼性に不安がある場合に準拠すべき、より安全なモデルと言える。