• ベストアンサー

パイプライン方式と非パイプライン方式

パイプライン方式はどうして非パイプライン方式に比べて高速化できるんですか?

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

  • ベストアンサー
  • mishida
  • ベストアンサー率34% (19/55)
回答No.5

先の#4ですが、ごめんなさい。  以下の部分を ----  しかし(1)~(3)は別々の回路で実行できるので、次のように同時に実行させることができます。すると、9クロックで3処理だったのが、6クロックで3処理できるようになり、高速化となるのです。 1↓ (1) 2↓ (2)(1) 3↓ (3)(2)(1) 4↓    (3)(2) 5↓       (3) ---- 次のようにしてください。 ---  しかし(1)~(3)は別々の回路で実行できるので、次のように同時に実行させることができます。すると、9クロックで3処理だったのが、5クロックで3処理できるようになり、高速化となるのです。なお、3クロックめからは、1クロックごとに処理結果を得られます。3クロックごとに結果が得れれる方式に比べて、高速化されます。 1↓ (1) 2↓ (2)(1) 3↓ (3)(2)(1) 4↓    (3)(2) 5↓       (3) ---

その他の回答 (4)

  • mishida
  • ベストアンサー率34% (19/55)
回答No.4

 みなさんも書かれていますが、別の視点で説明を試みます。  CPUは、1クロックで1処理を行います。  命令をメモリから(1)読み出し、(2)処理し、(3)結果をメモリに書き込むという単純な動作でも3クロックが必要になります。  そして(1)~(3)は、それぞれCPU内部の別々の回路が実行します。 ところで、普通に考えると、先の処理を3回行なうには、次のように9クロックが必要になります。 1↓ (1) 2↓ (2) 3↓ (3) 4↓   (1) 5↓   (2) 6↓   (3) 7↓     (1) 8↓     (2) 9↓     (3)  しかし(1)~(3)は別々の回路で実行できるので、次のように同時に実行させることができます。すると、9クロックで3処理だったのが、6クロックで3処理できるようになり、高速化となるのです。 1↓ (1) 2↓ (2)(1) 3↓ (3)(2)(1) 4↓    (3)(2) 5↓       (3)  パイプラインとは、特定の処理を受け持つ回路をベルトコンベアのように並べておいて(正確には、もっと複雑ですが)、効率よく処理を実行できるようにしているのです。  また、いまは3個に分けましたが、それぞれをさらに単純なものとして10個以上に分解することもあります。単純な処理であれば回路も簡単なので、クロックを数GHzなどにあげやすいということにもつながっています。  パイプラインとあわせて、スーパースカラーといった、複数の命令を同時に実行ように、たとえば先の(2)を数個用意する方法で、今のCPUは高速化しています。  ここでは深く踏み込んではいませんが、概略は伝えられたと思います。CPUに関する専門書籍なども書店にはありますので、本格的に学ぶのであれば、参照されるとよいでしょう。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.3

パイプライン方式そのものがまだ良く分っていらっしゃらないという前提で説明しましょう。#2の回答者:partsさんの例はちょっと専門家向けすぎたようですね。 みかんの缶詰、ももの缶詰、さくらんぼの缶詰、・・・・・を作っているとします。一人で作ると1個1分かかるとします。 ここで3人で分業して仕事をします。缶に中身を詰める人、缶のふたをする人、レッテルを貼る人、これで完成します。3人で仕事をすれば、20秒ごとに1個の製品が出来ますので、平均的に1分3個のペースで缶詰が出来てきますよね。みかん、もも、さくらんぼの缶詰・・・がどんどんできてきます。 パイプラインというのは石油化学工場等でパイプの中を通っていくうちに製品が出来ていくという意味です。一般には、ベルトコンベアという方が判り易いでしょうね。パイプライン本数というのはここでは3人の人が(3個の製品が)同時に製造中という意味に解釈して下さい。 たくさんの人手で分業すればするほど仕事が速く出来る、ごく当たり前のことなんです。

  • parts
  • ベストアンサー率62% (6366/10151)
回答No.2

分かり易く説明しましょう。(たぶん分かり易い?とおもいます) パイプラインですか、ただ複数の命令が処理できるからではないのですよ。 たとえば、Pen4ですけど20段階に及ぶ深いパイプラインを持ちます。これまでのP6コアでは10段前後しかありませんでしたから、2倍の深さがあるわけです。 でも、速度はPen3より必ずしも速くはなっていないでしょう。パイプラインはもっと重要な別の意味も持つのです。 パイプラインが深いほどクロック周波数を上げることができる、簡単に高速化が可能ということがあります。 Pen4のNETBurstテクノロジは、周波数向上のために開発されてたもので、このディープパイプラインは先を見越し最高10GHzでも動作可能とも言われます。 理由はこんな所ですね。 あなたがミカン業者です。 ベルトコンベアでミカンの仕分け作業をしています。 コンベアがゆっくりの速度ならミカンの大きさや色、痛んでいるかは人の人数が少なくてもだいたい判別がつきますよね。 じゃあ速度が上がるとどうなるか、速度を2~3倍にしてみましょう。 すると、見逃しが発生しやすくなります。痛んだミカンをそのまま箱詰めしてお店に並べるわけには行きませんよね、普通は。 速度を落とせば良いのですが、都合で落とせない。 そうするとあなたならどうします? たぶん、仕分けする人の人数を単純に増やすでしょう。 そうすれば、見逃しは減って少々速度を上げても対応できます。 これと同じ事です。パイプライン数は仕分けする人の数、データはミカン、周波数はベルトコンベアの速さと重ねて下さい。実際はそんな単純ではありませんけど、単純にパイプランを増やすことで、処理速度を上げるのが容易になります。結果、単純な周波数の向上による高速化に寄与するわけです。 ちなみに、これは裏を返せば、同時処理も行っていることになります。 どうでしょうか?とりあえず分かり易い説明のつもりですが、ここは改善を(分かりにくい)という意見があれば、補足をお願いします。

  • gould09
  • ベストアンサー率33% (196/589)
回答No.1

非パイプライン方式で1つの命令を実行する時間に、パイプライン方式では、複数の命令を実行する事が出来るからです。

参考URL:
http://career.benesse.co.jp/info-tech/member/faq/n12.html#07,http://joho-shori.hoops.ne.jp/99s1/99s1m11.htm,http://yougo