同様な競合は、CPU間でハードレベルでも発生し(例えば、キャッシュの競合と破損など)、それらはハードレベルまたはハードとソフトの共同で解決しなければならない(例えば、キャッシュ・クリア命令)。マルチプロセッシングを実装する場合、性能向上のためにキャッシュという高速メモリを僅かに各プロセッサ毎に持ち、より低速なメモリ本体へのアクセスを擬似的に高速化している。各プロセッサは個別に情報を持つ事になり、この情報をプロセッサ単位で書き換え、使用する事になる。本来、メモリ上の情報を共有しているはずなのに、あるプロセッサのキャッシュ上の変更(メモリ書き込み)を他のプロセッサのキャッシュに通知しないとデータを共有できなくなってしまう。
この問題はプログラミング技法で何とかなる話ではなく、ハードウェアで何らかのキャッシュ同期機構を設けなければならない。キャッシュ同期を可能とする解決法はいくつかあって非常に複雑である。以下に例を挙げる。
より簡単な方式として、他のプロセッサが読みに来たキャッシュラインをメモリに書き戻し(シュートダウン)し、使用する際にメモリから読ませる手法があるが、性能は劣化する。いずれにしても、キャッシュを同期させようとするとシングルプロセッサよりもバスを使用する頻度が多くなるため、バスの高性能化がシステム性能の向上に必要となる。つまり、単一バスに多数のプロセッサを接続するとバスがボトルネックとなって性能が頭打ちとなる。
ある種の計算アプリケーションにとっては、このタイプのアーキテクチャは多大な性能向上をもたらす。特に与えられたタスクを完了するまでの経過時間が問題となるような場合に有効である。しかし、このアーキテクチャの問題は、アプリケーションやシステムタスクが並列に実行可能な部分に分割できないような場合にシステムの大部分がアイドル状態になってしまうことである。
MISD.