18

私はスーパースケーラーとOoOに関するいくつかの資料を読んでいて、混乱しています。
彼らのアーキテクチャグラフは非常に同じように見えると思います。

4

1 に答える 1

43

スーパースカラーマイクロプロセッサは、2つ以上の命令を同時に実行できます。 たとえば、通常、少なくとも2つのALUがあります(ただし、スーパースカラープロセッサには1つのALUと、シフターやジャンプユニットなどの他の実行ユニットがある場合があります)。

より正確には、スーパースカラープロセッサは、同じサイクルで2つ以上の命令の実行を開始できます。 パイプライン化されたプロセッサは一度に複数の命令を実行できますが、非スーパースカラーのパイプライン化されたプロセッサは、特定のサイクルで1つの命令のみを開始します。 パイプライン化された実行ユニットは、エンドツーエンドで実行するために複数のサイクルを要します。言い換えると、スーパースカラープロセッサは通常、サイクルごとに1サイクルのレイテンシで2つの非パイプライン命令を実行できますが、非スーパースカラーパイプラインプロセッサは、ALUで同時に2つのシングルサイクル命令を実行することはできません。

順序が正しくないプロセッサは、元の順序から外れた命令を実行できます。たとえば、MULTIPLYが5サイクルかかる次の場合、命令3は命令2の前に実行される可能性があります。これは、命令2が命令1のMULTIPLYの5サイクルの結果を待機しているためです。

1: MULTIPLY reg1 := reg2 * reg3
2: ADD reg4 := reg1 + 5
3: ADD reg6 := reg2 + 1

ほとんどのアウトオブオーダープロセッサもスーパースカラーです。ただし、スーパースカラーではなく、パイプライン化されたALUでサイクルごとに1つの操作しか開始できないアウトオブオーダープロセッサを構築することを想像できます。( Intelが採用した場合、低電力チップとしてこのような操作提案しました。つまり、16ビット幅のALUしかないなど、中途半端なスカラーのみのアウトオブオーダープロセッサを構築できます。 32ビットの追加など。しかし、それは伸びています。)

ただし、多くのスーパースカラープロセッサは故障していません。上記の例では、順序どおりのスーパースカラーが最初に命令1を実行します。命令3は開始されませんが、命令2が開始されるまで待機します。開始されると、命令2と3が一緒に開始されます。

概念を理解するために、1ワイドまたはハーフワイドのOOOマシンなど、ありそうもない制限のケースについて考える必要がある場合があります。

于 2012-04-26T05:35:47.280 に答える