現在、大学院でコンピューターアーキテクチャーのクラスを取っています。中間試験で下記のような問題が出ました。
「コンピューター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と計算されるのかわかりません。
面倒な質問ですが、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
No.1です。
アセンブリー(アセンブラー)言語は、大げさに言うと
世の中に何千種類も有りますので
理解の限度を超えます。
ただ見た感じだけですが、
DSUBI R1,R1,#8 <- Floating-Point Operationは
R1=R1-8に見えてしまいます。
でもこれがフローティングというのが納得いきません。クロック数も少ないですし
せいぜい倍長演算かという気もします。
DSUB1のDもDOUBLEのDのような。
いずれにしても言語仕様と照らし合わせて理解を深めてください。
ymmasayanさま
お返事ありがとうございます。
>でもこれがフローティングというのが納得いきません。
大変申し訳ございません。私の記述ミスでした。
正確には
ADD.D F0,F0,F0 <- Floating-Point Operation
DSUBI R1,R1,#8 <- Integer ALU
が正しいです。失礼しました。
親切な説明をしていただいて、本当にありがとうございました。また何かありましたら、ご指導のほどよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 中学校 中2の理科『電流と回路』について質問です。並列回路全体の抵抗は 1/R=1/R1+1/R2 で求めら 5 2023/02/14 20:52
- 物理学 この問題における抵抗r1とxってどのように考えれば良いのでしょうか?トルクはT=P2/ωsなのでP2 1 2022/06/19 18:46
- その他(自然科学) 信頼度がR1、R2の機器を並列に接続した場合、システム全体の信頼度はどれか。答え1-(R1)(1- 2 2023/01/15 21:45
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
- 工学 整合回路の基本で最大電力が供給できない・・・ 10 2023/03/31 00:43
- 数学 場合の数、確率 45 (浜松医科大学) 1 2023/07/29 13:52
- Ruby VBA 2 2023/01/14 14:14
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UNIX環境でのCプログラム上でC...
-
VBS:コンピュータ名を取得し、...
-
会社のプログラムがわからず毎...
-
C/C++でチャットソフトを作りた...
-
DLLってなに?
-
C++で何ができるのでしょうか?
-
プログラミング言語の覚え方習得法
-
現在プログラミングの研修中な...
-
ASPとASP.NET両方の...
-
VB.net エラーメッセージを英文...
-
SNMPトラップ情報をC#.netで作...
-
API、OCX、DLLって何でしょう?
-
printf系の書式「w」ってなに?
-
英検準1級と基本情報処理技術者...
-
あいのり風のメッセージビデオ...
-
CSV内のhtmlタグを文字のママ表...
-
全豊田作業責任者
-
1年無職の彼氏 別れるべきですか?
-
機械工学専攻の院卒でSEになる...
-
VBで簡単なゲームをつくるサイト
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
VBプログラムをEXCEL VBAに移植...
-
C言語のHP-UXからLinuxへのポ...
-
UNIX環境でのCプログラム上でC...
-
VBS:コンピュータ名を取得し、...
-
SNMPトラップ情報をC#.netで作...
-
現在プログラミングの研修中な...
-
VB.net エラーメッセージを英文...
-
Cプログラムの解析(関数の呼び...
-
OSとCPUの関係について
-
コンソールアプリでファイル選...
-
出欠表のプログラム制作の難易...
-
プログラムとは理系ですか文系...
-
CoInitializeSecurityが失敗する
-
Ryzen 3700(無印)はWin11に対応...
-
VC++で単機能ブラウザを作...
-
EXCEL-VBAのプログラムを移植し...
-
C#のプログラムを読むコツって...
-
Perl5とActivePerl
-
ニンテンドーDS用、自作プロ...
おすすめ情報