• 締切済み

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

ninoueの回答

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.1

計算機のH/W,S/W等の設計やメンテナンスについて経験を持っていますが、  ・シングルサイクル・データパス  ・マルチサイクル・データパス の言葉はあまり意識した事は無かったので改めてサーチして調べてみました。 次等が参考になると思います。 http://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/MP/final/part09/part09.html マイクロプロセッサ演習 はじめに~データパスと制御 データパス構成の準備1 データパス構成の準備2~レジスタファイル データパスの構築と制御 問題 少し理解困難な点もありますが、シングルサイクル・データパス については自分なりに次のように考えれば良いのではと理解しました。 ######## ALUまわりのレジスタファイルのR/Wデータパス、演算パス、メモリのR/W、命令の読み出し/デコード等があるが、同時実行可能な部分は平行して命令の実行が進んで行く。 命令の実行制御が簡単になるように、殆どの命令は1クロックで進んで行く。 その時各々のALUやデータパスに流れる信号は、最初にアドレスや制御の種類(add,sub,or,through....)が指定され、安定化するまでの時間に変化する事はあるが、二種類の有意な信号が流されたり、クロックの前半/後半で別々の信号が流れて変化したりする事は無い。 以上の前提条件で次のように命令の種類が分類出来ます。 A. 命令読み出し命令レジスタへの取り込み  (命令フェッチ系、命令用メモリ、命令レジスタ==auto-increment機能付き)、  命令用メモリとデータ用メモリが同一のメモリエリアから読み出される場合もあると思うが、命令アクセス用に専用のラインバッファが例えば2-lineがあり、そのline-fill動作は例えばALU命令実行と平行して(隠れて)実行されると仮定している。 B. レジスタ(ファイル)からの読み出し==>ALU演算==>レジスタへの書き込み B-a メモリアドレス計算 B-r メモリRead==>レジスタWrite  (データ用メモリアクセス) B-w レジスタRead==>メモリWrite B-i Branch命令実行 上記のAとBは同時に並列に実行されるように構成されている。 メモリアクセス命令ではメモリアドレス計算(base+offset)の間はアドレスが変化するが、その変化途中の値をアドレスバスに流してもアクセス時間は早くならないし、メモリ系に妨害を与えるだけなので、アドレス計算が完了後にR/Wアクセス指令を出すように制御する必要がある。 レジスタファイルは読み出し系2-pass, 書き込み系1-passの同時アクセスが可能 前サイクルの演算結果の書き込みと読み出しが、命令サイクルの最初に実行されるが、書き込み結果は読み出し実行と完全にオーバーラップし、400psの後には前サイクルの書き込み結果が読み出される。 ######## 以上のように考えると、次のような結果になります。 Aの命令読み出し実行は1100psサイクルで進む。 レジスタ演算命令は1100psサイクルで進む。 (r1+r2==>r3, r1+r2==>r1, r1.OR.r2==>r3, ......) メモリアクセス命令は1100psサイクルを2個:2200psサイクルの実行時間となる。   最初のサイクルでメモリアドレス計算、確定   次のサイクルでメモリアドレスサイクル起動:アドレス及びr/wコマンド送出   ● ストア時は400ps遅れて安定確立したデータ送出     (メモリ側ではアドレス取り込み==>デコード等の時間の間にデータ値が安定しておれば良いので、レジスタ読み出し時間はメモリアクセス時間:1100psの間に隠される)   ● ロード時は2200ps後にデータが送られてくるが、レジスタへの書き込みは次の命令実行とオーバーラップして行われるのでCPU実行時間としては表に出てこない。 簡単なシステムでは、命令読み出しサイクル:1100psの次に1100psの演算サイクル:400psのレジスタread+700ps:演算、合計2200ns間隔で命令が実行されて行きます。 (レジスタwrite:400nsは次の命令サイクルとオーバーラップして実行) 命令アクセス回路を並列実行可能としている場合には、レジスタ演算命令は1100ps間隔で次々に実行されます。 ######## 質問にあげられていた次のクロックサイクルの値等は間違いです。 同一クロックの間にメモリとの間で命令リードとデータリード、或いは命令リードとデータライトを実行する形になりますが、そのような事は不可能です。 また、CMOS回路やFETトランジスタでは信号が変化する時やクロック変化時の消費電力が大きく、必要であれば途中にレジスタバッファやドライバを入れる等(その時はクロックサイクルは別となる)で信号は必要最小限の範囲に流す事が行われていると思います。 ・シングルサイクル 実行時間: ロード命令   1.1+0.4+0.7+1.1+0.4=3.7ns ストア命令   1.1+0.4+0.7+1.1=3.3ns ######## ・マルチサイクル・データパス  の場合も上記の ・シングルサイクル・データパス の場合と同様な考えでよい筈です。 しかしこの場合はクロックサイクルは多分400ps刻みで命令の実行制御が行われます。 ALU演算命令ではレジスタへの書き込み指令は、ALU演算結果が出た後400psの間だけ出される点が異なる程度でしょう。 ストア命令では、最初の400ps*3でアドレス計算を行い、次の400psでアドレス及びデータをメモリコントローラに送出したら、次の命令実行に移る事が出来ます。 従ってストア命令の連続実行をシングルサイクルの場合は2200ps毎、マルチサイクルの場合は1600ps毎に実行出来ます。 ######## パイプライン実行の場合、ALUデータパスやレジスタ構成が同一の場合には殆ど性能向上は出来ないでしょう。 しかしfloating命令、string character命令、decimal命令等の処理専用のALUやレジスタファイル等が強化されて並列実行可能な場合、メモリ側も複数メモリモジュールの並列処理可能なように強化されている場合等には、パイプライン実行、複数命令の同時実行等が可能になります。 勿論命令の実行はそれなりに複雑な制御が必要になりますが。  ALU演算命令:r1+r2==>r3の 2クロック=800ps毎の実行等 その他に次等も参照下さい。 (もし投稿後にリンク切れや問題サイトとしてはねられるサイトは無視して下さい。) http://okwave.jp/qa/q8043298.html 大学の微積分の参考書について質問です! (中学ー大学の数学参考サイト) http://okwave.jp/qa/q6996128.html 集積回路が基礎から学べるサイト http://okwave.jp/qa/q8033791.html 進路 分らない点がある場合には補足等で追加質問して下さい。 出来る範囲で回答します。 なおこの様な質問は次でされるのが良いと思います。 OKWave >  [技術者向] コンピューター ▼ > ハードウェア(サーバー) ▼

soccer_love-_-
質問者

お礼

ご丁寧に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 という風に考えなおしたのですがどうでしょうか またパイプラインに関してはまだ、合っているのか間違えているのか分かりません。 もしよろしければ教えていただけませんか 改めてサーチしていただいて、説明もしていただいたのに分かっておらず申し訳ありません

関連する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%

  • 下記の問いの解き方を教えて下さい。

     基本動作時間(クロック時間)が 3 ナノ秒の処理装置で,命令の実行に必要 なクロック数とその命令の出現比率が表に示す値である場合、この処理装置の性 能は平均約何 MIPS か。 ┌───―───────┬――――――――─────┬──────┐ │  命令の種別    │命令実行に必要なクロック数│ 出現比率 │ ├────―──────┼―――――――――────┼──────┤ │レジスタ間演算    │       4      │  40%  │ ├─────―─────┼──―――――――――――┼──────┤ │メモリ・レジスタ間演算│       8      │  50%  │ ├─────────―─┼──――――――――――─┼──────┤ |無条件分岐      |      10      |  10%  | └─────────―─┴─―――――――――───┴──────┘

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

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

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

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

  • クロック周波数の計算問題について

    クロック周波数に関する問題を解こうとしているのですが、 公式がどうも覚えづらくて仕方ないのですが・・・ 何か良い解き方はないものでしょうか? 【問題】基本情報処理 平成19年 秋  「 1GHzで動作するCPUがある。このCPUは,機械語の1命令を平均0.8クロックで実行できることが分かっている。このCPUは1秒間に約何万命令実行できるか。 」 【公式】   (1) 1クロックの時間 = 1÷クロック周波数   (2) 1命令の実行時間 = 1命令の実行に必要なクロック数×1クロックの時間   (3) 1秒間の命令実行回数 = 1÷1命令の実行時間(命令) --------------------------------------------------------------- 【考え】  公式より、   (3)の答えを出したければ (2)が必要であり   (2)の答えを出したければ (1)が必要である。     であるから、先に(1)を求め (2)を求め (3)を最終的に求める。  という風に解いてはいるのですが、教科書を見ながらだと解ける状態ですが、いざ時間を空けると公式を忘れてしまって、この手の問題が解けないことがあり、困っています。   何か逆算みたいで、覚えづらいので一度覚えてもすぐに忘れしまうのですが・・・     この問題をとく方法としては、一旦、解き方の流れを把握して、求め方を覚えるしかないでしょうか? 【ふとした疑問】   この問題をしてふと思ったのですが、クロック周波数の計算事態は、実際にどこでどういう場面で使われるものなのでしょうか? 何だか、ただ問題を解いているようで、ちょっとイメージが浮いている感じがしているのです・・・(汗)   

  • パイプラインの5つのフェーズ

    パイプラインのフェーズの割り方で I・D・R・EX・Wに分かれている図があったのですが、 I:Instruction fetch 命令フェッチ D:decode デコード R:? EX:execution 演算実行 W:write back 結果の格納 Rだけが何を指すのかわかりません。 何を指すのでしょうか?

  • CISC

    カテゴリが分からないのでここで質問させてもらいます。CISCの算術演算命令のような新しい加算/減算命令を導入した場合「クロック・サイクル時間の延長」という変更が必要となることが一般的と書いてありました。このようにクロック・サイクル時間の延長という変更が必要となる理由って何なのでしょうか?

  • 勉強の参考にしたいのですが、困っています

    以下の問題を、わかる範囲で結構ですのでどなたか解いて頂けないでしょうか? これは友人から得た過去の問題なのですが答えは配布されておらず、この問題を出題した先生も今は変わってしまっていて聞くに聞けません。 もうすぐ試験で、テスト勉強の参考にしたいのですが、何卒どうかお力添えをお願い致します。 ある企業が現在のチップAlpha の浮動小数点命令のみ9倍高速に実行するチップBeta を開 発した.あるプログラムをBeta で実行したところ浮動小数点演算に要した時間は全体の1/4 であることが判明した. (a) この応用におけるBeta のAlpha に対する速度向上度を求めよ. (b) Alpha でこの応用を実行するとき,浮動小数点演算に要する時間の比率を求めよ. (2)君の会社が販売しているプロセッサは,250MHz で動作するが浮動小数点ハードウェアを 持たないためFP 命令はソフトウェアでエミュレートしている.このチップであるベンチマー クを実行したところ,実行時間は5.00 秒,平均CPI は1.30 で,各タイプの命令の実行数は次 表になっていた. 命令タイプ             命令数 分岐                 7,750,000 整数演算              3,800,000 ロード/ストア            9,750,000 浮動小数点演算(FP 命令数) 17,500,000 (a) 実行時間のうち,浮動小数点演算をエミュレートしている時間(有効数字3 桁)を求めよ. (b) 浮動小数点命令1 個のエミュレートに要している平均命令数を求めよ. [3]君は新プロセッサの主任設計者である.プロセッサとコンパイラの設計は一応完了し,そのまま 発売するか,更に改良するか判断しなければならない.担当者と議論した結果次の2 種の選択肢が有ることが判明した. A. 現状のままにする.このマシンをFuji と呼ぶ.クロックは1GHz で,シミュレータで次のような 結果が得られた. 命令タイプ  CPI   頻度 A        2     40% B        3     25% C        3     25% D        5     10% B. クロックを高速化する.このマシンをShirane と呼ぶ.クロックは1.2GHz で,シミュレータで次 のような結果が得られた. 命令タイプ    CPI    頻度 A          2     40% B          2     25% C          3     25% D          4     10% (1)それぞれのマシンのCPI を求めよ. (2)それぞれのマシンのネイティブMIPS 値を求めよ. (3)Shirane はFuji に比べてどれだけ高速か. (4)コンパイラチームからコンパイラの改良が可能で,次のように命令数を減らせると言ってきた. Fuji に改良コンパイラを用いたマシンをHodaka とよぶ. 命令タイプ   MA に対する実行命令数の比 A             90% B             90% C             85% D             95% Hodaka のCPI を求めよ. (5)Hodaka はFuji に比べてどれだけ高速か. (6)Shirane に新コンパイラを適用したマシンをYari とよぶ.Yari はFuji に比べてどれだけ高速か.

  • MIPS関連について

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