削除された内容 追加された内容
編集の要約なし
m Update syntaxhighlight tags - remove use of deprecated <source> tags
27行目:
{{Main|EPICアーキテクチャ}}
主流となっている[[アウト・オブ・オーダー実行]]設計では、複雑なデコーダシステムが[[命令パイプライン|パイプライン]]に入ってきた命令を調べ、並行して実行できる命令を選んで実行していく。
<sourcesyntaxhighlight lang="pascal">
A := B + C;
D := F + G;
</syntaxhighlight>
</source>
例えば上記の2行のコードは互いに影響しないので同時に実行できる。したがってこれらはふたつの実行ユニットにそれぞれ渡されて並行して実行される。[[命令レベルの並列性]]を引き出すことが最近のCPUで性能を向上させる基本である。
 
コードが並行して実行できるかどうかを予測することは難しい。多くの場合、ある命令が別のある命令に依存しているかどうかは様々な条件に左右される。先にあげた例が次のようになっていたらどうだろうか。
<sourcesyntaxhighlight lang="pascal">
A := B + C;
IF A = 5 THEN D := F + G;
</syntaxhighlight>
</source>
こうなると計算自体は依存していないのだが、ふたつめの加算結果を<tt>D</tt>に格納するかどうかはひとつめの計算結果に依存する。
<!--この例が、典型的なプリディケーションが適用できる状況である事が問題である-->