「数ミリ秒ごとに何十ものタスクを切り替えているコンピューターの動作を感知できれば、コンピューターがさまざまなタスクの計算をインターリーブしていることを知っていても、コンピューターがこれらのタスクを同時に実行しているように見えることに間違いなく同意するでしょう。 "
- M.Ben-Ari 著、並行プログラミングの原則、1982 年。
シングル コア CPU では、同じシステム内で 1 つのアトミック操作を別の操作と同時に実行することは不可能でしょうか?
「数ミリ秒ごとに何十ものタスクを切り替えているコンピューターの動作を感知できれば、コンピューターがさまざまなタスクの計算をインターリーブしていることを知っていても、コンピューターがこれらのタスクを同時に実行しているように見えることに間違いなく同意するでしょう。 "
シングル コア CPU では、同じシステム内で 1 つのアトミック操作を別の操作と同時に実行することは不可能でしょうか?
はい、シングルコア CPU は複数の操作を同時に実行できます。たとえば、Pentium プロセッサには、同時に動作する複数のパイプラインがあります。1 人が追加を実行している間に、別の 1 人がメモリからのロードを実行している可能性があります。もちろん、同時操作の効果を観察する方法はありません。
さらに、Pentium 4 のようなアーキテクチャはシングルコアですが、ハイパースレッディングを使用できます。これは、1 つのコア内の異なるパイプラインが命令を同時に実行できるだけでなく、それらの操作を個別のスレッドに対して実行できることを意味します。つまり、CPU は同じクロック ティックで異なるスレッドに命令を発行できます。