コンピューターアーキテクチャーについて
現在、大学院でコンピューターアーキテクチャーのクラスを取っています。中間試験で下記のような問題が出ました。
「コンピューターCは100MHZで動作します。各クラスのClock cycles Per Instruction(CPI)は次のようになります。
Instruction Class i CPIi
Integer ALU 1
Branch 2
Load/Store 3
Floating-Point Operation 4
プログラムPは次のようなループをコンピューターCで起動されます。
Loop: L.D F0,0(R1) <- Load/Store
ADD.D F0,F0,F0 <- Integer ALU
S.D F0,0(R1) <- Load/Store
DSUBI R1,R1,#8 <- Floating-Point Operation
BNEZ R1,Loop <- Branch
レジスタR1の初期値は2000です。
質問1)プログラム全体のTotal Execution Time(TET)を計算しなさい。
そして回答が実はあるのですが、
プログラム全体のClock cycles Per Instruction(CPI)
= Total Sum of (Instruction比x各CPIi)
= (1/5)x1 + (1/5)x2 + (2/5)x3 + (1/5)x4 = 2.6
Total Execution Time = (InstructionCount) x CPI / Clock Rate
= 250x5x2.6/100x10^6 = 32.5us
ここでInstructionCountが何故250x5と計算されるのかわかりません。
面倒な質問ですが、よろしくお願いします。
補足
すみません!! リンクは、 http://www.ist.hokudai.ac.jp/education/h19nyuusimondai.html なのですが。。