How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs(1979)

July 16, 2022

プロセッサは、高速化のためにソースコードと違う順序で命令を実行することがある。 順序の入れ換えが実行結果に影響しなければ、プロセッサは逐次的であるという。 マルチプロセッサに期待する実行結果は、各プロセッサがソースコードの順序で命令を実行し、かつ、全プロセッサの命令がある順序で逐次的に実行されるときの結果である。 任意のプログラムで実行結果が等しいならば、そのマルチプロセッサには逐次一貫性がある。 プロセッサがメモリ上のデータを共有する場合、各プロセッサが逐次的でも、マルチプロセッサが逐次一貫になるとは限らない。 マルチプロセッサが逐次一貫であるには、各プロセッサがソースコード通りの順序でメモリにリクエストを送り、メモリは各セルへのリクエストを到着順(FIFO)に処理しなければならない。

論文のリンク