※ ChatGPTを利用し、要約された質問です(原文:コンピューターアーキテクチャーについて)
コンピューターアーキテクチャーについて
このQ&Aのポイント
現在、大学院でコンピューターアーキテクチャーのクラスを取っています。中間試験でコンピューターCの性能を計算する問題に取り組んでいます。
問題では、コンピューターCのClock cycles Per Instruction(CPI)とプログラムの実行時間を計算する必要があります。
具体的な計算方法として、プログラムのClock cycles Per Instruction(CPI)を各命令の比率とクラスごとのCPIの積で求め、それをプログラムの実行回数とクロックレートで割って実行時間を求めます。
現在、大学院でコンピューターアーキテクチャーのクラスを取っています。中間試験で下記のような問題が出ました。
「コンピューター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と計算されるのかわかりません。
面倒な質問ですが、よろしくお願いします。
お礼
ymmasayanさま お返事ありがとうございます。 >でもこれがフローティングというのが納得いきません。 大変申し訳ございません。私の記述ミスでした。 正確には ADD.D F0,F0,F0 <- Floating-Point Operation DSUBI R1,R1,#8 <- Integer ALU が正しいです。失礼しました。 親切な説明をしていただいて、本当にありがとうございました。また何かありましたら、ご指導のほどよろしくお願いいたします。