- 締切済み
計算機工学のプロセッサについて教えて下い
あるプロセッサにおいて各命令タイプの命令実行の各ステップにおける所要時間は画像の通りとする。 1 以下の2種類のプロセッサ構成方式を採った場合のクロックサイクル時間(最小値単位はns)、各命令タイプの実行所要時間(単位はns)および実行所要クロックサイクル数を求めよ ・シングルサイクル・データパス ・マルチサイクル・データパス ・命令パイプライン処理 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー といった問題です 自分で解いてみたのですが解答がないため、答えが合っているのかが知りたいです ・シングルサイクル 実行時間: ロード命令 1.1+0.4+0.7+1.1+0.4=3.7ns ストア命令 1.1+0.4+0.7+1.1=3.3ns 演算命 1.1+0.4+0.7+0.4=2.6ns 分岐命令 1.1+0.4+0.8=2.3ns よってクロックサイクル時間=3.7ns ・クロックサイクル数: 実行時間=クロックサイクル数*クロックサイクル時間より ロード命令:3.7/3.7 ストア命令:3.3/3.7 演算命令:2.6/3.7 分岐命令:2.3/3.7 ・マルチサイクル 実行時間: ロード命令 (1.1*4)+(0.4*4)+(0.7*3+0.8)+(1.1*2)+0.4=11.5ns ストア命令 (1.1*4)+(0.4*4)+(0.7*3+0.8)+(1.1*2)=11.1ns 演算命令 (1.1*4)+(0.4*4)+(0.7*3+0.8)+(1.1*2)+0.4=11.5ns 分岐命令 (1.1*4)+(0.4*4)+(0.7*3+0.8)=8.9ns クロックサイクル時間は命令フェッチに合わせた4.4ns クロックサイクル数 ロード命令:5 ストア命令:4 演算命令:4 分岐命令:3 ・パイプライン 実行時間 ロード命令 1.1+0.4+0.4+0.7+1.1+0.4=4.1ns ストア命令 1.1+4.1=5.2ns 演算命令 1.1+5.2=6.3ns 分岐命令 1.1+6.3=7.4ns というのが私の考えです 全体的に自信がありません どなたかお分かりになるのでしたら教えていただけませんか 一応画像のものを手書きしておきます 命令フェッチ レジスタ読み出し ALU演算 データアクセス レジスタ書き込み ロード命令 1100ps 400ps 700ps 1100ps 400ps ストア命令 1100ps 400ps 700ps 1100ps 演算命令 1100ps 400ps 700ps 400ps 分岐命令 1100ps 400ps 800ps
- みんなの回答 (2)
- 専門家の回答
お礼
ご丁寧にURLまで貼って説明してくださってありがとうございます まだninoue様が回答してくださったことを100%理解できてはいませんが 何度も読み返して理解を深めたいと思います。 ninoue様が回答してくださったことや、書籍をよんだり、他の人に意見を聞くなどして シングルサイクル ロード命令 1.1+0.4+0.7+1.1+0.4=3.7ns ストア命令 1.1+0.4+0.7+1.1=3.3ns 演算命 1.1+0.4+0.7+0.4=2.6ns 分岐命令 1.1+0.4+0.8=2.3ns よってクロックサイクル時間=3.7ns 1つの命令を1クロックサイクルで行うので全部の命令において 実行所要クロックサイクル数は1 よって実行時間は全ての命令において1*3.7=3.7ns ・マルチサイクル クロックサイクル数: ロード命令:5 ストア命令:4 演算命令:4 分岐命令:3 クロックサイクル時間: 各フェッチの中で最大時間である1.1ns よって実行時間は ロード命令:1.1×5=5.5ns ストア命令:1.1×4=4.4ns 演算命令:1.1×4=4.4ns 分岐命令:1.1×3=3.3ns という風に考えなおしたのですがどうでしょうか またパイプラインに関してはまだ、合っているのか間違えているのか分かりません。 もしよろしければ教えていただけませんか 改めてサーチしていただいて、説明もしていただいたのに分かっておらず申し訳ありません