• ベストアンサー

IPCについて

プロセッサ(PCU)の性能を表す指標の一つにIPC(insuructions per (clock) cycle)というものがありIPCとはCPUにおけるクロックあたりの命令実行数です。 そこでIPCが1のCPUを載せたコンピュータAとIPCが2のCPUを載せたコンピュータBがあり、両方のコンピュータで同じプログラムを同時に実行したらコンピュータBほうがIPCが大きいにも関わらず、コンピュータAのほうがさきに処理を終了する場合があるといいます。 その原因として考えられる状況や環境を知りたいのですが。 すいません、だれか教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • Eureka_
  • ベストアンサー率41% (5065/12243)
回答No.2

プログラムがヘボヘボで、特定命令の結果を参照しないとならない命令を多数放り込んであるなどでIPCの高さ(=並列処理の有効性)を活かせない場合。 並列処理に適した形に命令群を並べ替えようという処理によるオーバーヘッドも発生するので、この例でいえばコンピュータBがIPC1すら確保できなくなる事態もあり得るかと思います。

その他の回答 (1)

回答No.1

  クロックが同じと言う条件は書かれていないようですから・・・であれば、AのCPUクロックがBのCPUクロックの2倍を上回る場合。  

関連するQ&A

  • コンピュータアーキテクチャ

    教えてください! クロックサイクルが80nsのプロセッサAとクロックサイクルが20nsのBがあり、両プロセッサの各命令実行に、必要なクロックサイクル数は下表に従うものとする。今プロセッサに加算命令を10回、乗算命令を4回、無条件分岐を3回実行させる場合を考える。このときプロセッサをAからBに置き換えた場合の平均的な性能向上率を求めよ。 プロセッサA      クロックサイクル数  加減算命令    5         乗除算命令    8         無条件分岐    6         プロセッサB      クロックサイクル数  加減算命令    2         乗除算命令    5         無条件分岐    20        

  • コンピュータアーキテクチャ

    教えてください! クロックサイクルが60nsのプロセッサAとクロックサイクルが30nsのBがあり、各プロセッサが命令を実行するのに、必要なクロックサイクルおよび、プログラム中での各命令の出現頻度(使用確率)が下表に従うとする。ここで、システムのプロセッサをAからBに置き換えた場合の平均的な性能向上率を求めよ。 プロセッサA      クロックサイクル数 命令の出現頻度 加減算命令    8        60% 乗除算命令    3        10% 無条件分岐    2        30% プロセッサB      クロックサイクル数 命令の出現頻度 加減算命令    2        50% 乗除算命令    6        20% 無条件分岐    4        30%

  • 命令パイプラインをつかった問題です。

    命令パイプラインをつかった問題です。 あるプロセッサの命令パイプラインは、命令読み出し、命令解読(デコード)、 オペランド読み出し、演算、オペランド書き込みの5つのステージからなり、 各ステージの処理は1クロックで完了する。 このプロセッサにおける平均CPI(Clock Per Instruction)が5であるとすると、 クロック周波数が 1GHzのとき、このプロセッサの 1秒間辺りの平均命令実行数を MIPSあるいはGIPSを単位として答えなさい。 検索してもcpiについてのことが書いてないので(私が理解できずに見過ごしてるかも・・)、cpiについても軽く説明があると嬉しいです!

  • CPUのいろんな特性について!

    三つほど質問があります!! 1.CPUの電源(電源電圧)ってなぜ2系統必要なのです   か?? 2.CPUの性能評価指標の意味と内容について教えてくださ  い! 3.CPUの命令の実行サイクルについて教えてください!! 現在勉強中なのですがここらへんがいまいちです。 いいサイトとかもありましたら教えてくださいお願いします!

  • 計算機工学のプロセッサについて教えて下い

    あるプロセッサにおいて各命令タイプの命令実行の各ステップにおける所要時間は画像の通りとする。 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

  • マシンサイクルは「1単位における処理過程」のこと?

    「マシンサイクル」とは プロセッサの構造と動作―マシンサイクルなど https://www.zealseeds.com/ITSkilStandard/Hardware/Processor/StructureAndOperation/index.html 上記のサイトを見ると >マシンサイクル >コンピュータの処理装置が一つの命令を取り出し実行する流れをマシンサイクルと呼びます。 マシンサイクルは命令取出し段階と命令実行段階に大別されます。 と書かれていますが、これはつまり要約すると「1命令単位における処理過程」のことなんでしょうか? よろしくお願いします。

  • MIPS関連について

    プロセッサのクロックサイクルが40nsで 平均クロックサイクル数が4 のときのプロセッサの平均性能というのはいくらでしょうか? 求めるべき値がなんなのか分からないため導きようがないのです。。。 どなたか教えてくださいお願いします。

  • 命令の実行時間について

    「命令の実行時間=クロックサイクル時間×CPI」とあります。 で、クロックサイクル時間が「10ナノ」秒で、 「CPI」が「5」の機械語命令は、1つの命令を実行する為に、 「=10ナノ秒/クロックサイクル数×5クロックサイクル数/命令」とあります。 上記の計算式を使えば、 クロックサイクル数が「10ナノ」秒で「CPI」が「5」なので、 1つの命令を実行するのに「50ナノ」秒が必要なのは分かりますが、 上記の式の中にある、「/クロックサイクル数」・「/命令」とは 何を意味しているのでしょうか。 単位分数方式として、下記が記載されていました。 「10(ナノ秒/クロックサイクル数)×5(クロックサイクル数/命令)=50(ナノ秒/命令)」 お手数ですが、分かる方おられましたら、ご教授お願いします。 出来ましたら、詳しく解説して頂けると幸いです。 以上、よろしくお願い致します。

  • 計算の仕方を教えて下さいm(__)m

    クロック周波数が2.4GHzで動作するCPUがあり、このCPUは機械語の1命令を平均0.8クロックで実行できる。このCPUの性能は何MIPSか教えて下さいm(__)m

  • 複数バイト命令実行のタイミング

    1バイト単位でメモリの各アドレスにデータが保存されているコンピューターにおいて、複数のバイトで表される命令がどのように実行されるのか教えて下さい。 メモリには一つのアドレスごとに8ビット(1バイト)のデータが入っており、CPUはプログラムカウンタで示されたメモリ上のアドレスにあるデータや命令を一つずつ順番に読み込んで、それをデコーダーが解釈し各回路への指令に変換することでプログラムを実行していくということは理解しています。 しかし現在の32ビットコンピューターなどにおいてアセンブリの命令、例えば「MOV A,B」(Bレジスタの内容をAレジスタにコピーする)といった命令は、「B90001」などの3バイトのマシン語で表されるとすると、メモリ上では アドレス  内容 0000  0xB9 0001  0x00 0002  0x01 のように3つの連続するアドレスにまたがってデータが存在し、CPUが「MOV A,B」を読み込み、それを順次デコーダーに送るまでには「MOV」、「A」、「B」の3クロックを要すると思います。 その際、デコーダーが命令を解釈し各回路に指令の信号を送るタイミングというのは、最後の「B」のデータを読み込んだ時点になるのでしょうか?もしそうならば、3クロック目に最後の「B」のデータがデコーダーに到着するまでの間、「MOV」と「A」のデータというのはCPUにメモリから読み込まれた後はどのように扱われるのでしょうか? 少し質問が分かりにくく恐縮ですが、情報工学を独学で勉強しており、プログラムが実際の回路でどのように実行されるのか理解したいと思っています。 どうぞご回答よろしくお願い致します。