15. 今のアーキテクチャ Super Scalar
● データ依存関係、実行ユニットの空きなどを
見ながら、動的にスケジュール
※ここの例では、ALUは2個のつもり。
この例では実行ユニットの数は重要ではない
プログラム
C=A*B;
M=K*L;
P=M+N;
D=C+P; ←これが後回し
Z=X+Y;
*
A B
*
K L
C M
+
D
+
P
N
+
X Y
Z
src dest C
*
D
+
M
*
P
+
Z
+
A x
B x
C x
D
K x
L x
M x
N x
P x
X x
Y x
Z
データ(レジスタ)依存関係を示すスコア・
Pの生成が
遅れるので、
後に回して、
ALUはX+Yをやる