スーパースカラーでは、実行ユニットの並列化にあわせて命令デコーダも並列化する必要がありました。実行を高速化したいだけなのに、命令デコーダも並列化する必要があるのは少し無駄なように思われます。なんとかならないのでしょうか。 デコーダを並列化しなければならない理由は、複数の処理を実行するには複数の命令が必要だからです。それならば、一命令で複数の処理をしてしまえば命令デコーダを並列化する必要がなくなるのではないか、という気がします。 この一命令で複数の処理をしてしまうというのを実現したハードウェアがSIMD(Single Instruction Multiple Data)です。SIMDは実行ユニットだけを並列化したものです。このブロック図を図3に示します。 SIMDを実装したハードウェアでは、SIMD命令と呼ばれる「1つの命令で複数のデータを処理する命令」が用意されています。例えば、x86のS