CPUのパイプラインストール・ハザードなどについて学習。・・・難しい。
よく分からないが簡単に言うとこんな感じなのかな?
○パイプラインストール
RAMからの応答を待つ間パイプラインがストップするため
レイテンシが大きくメモリのクロック数が低いほど影響が大きい。
レイテンシが小さく高クロックのRAMを使用することで軽減できる。
○パイプラインハザード
分岐命令で誤った分岐をした場合の取り消しが原因で発生。
(対策がない場合は)やり直しになるためその分クロックを無駄にする。
対策として分岐予測機構や誤った分岐結果・プロセスのみの取り消しがある。
CPUってスゲー。
そして高速RAMと低レイテンシを求める理由が少しわかった気がする。
調べてるとだんだんCPUのつくりが気になったのでもう少し深層も・・・
さらに専門的になってるようなのでしっくりきませんが。
○パイプライン段数
パイプライン段数とはいくつかの工程・部品で構成されるパイプラインを細切れにし、
その間にラッチを挟んだもの。これにより全工程終了前に次の命令に移ることができる。
細切れにするほど効率が上がる一方で消費電力の肥大化や
パイプラインストール・ハザードの影響を受けやすくなる。
○CPUのクロック数
CPUのクロック数はパイプライン内のラッチのクロック数とパイプライン数によって決まる。
CPUの処理工程自体にクロック信号は使われていない。
㎛とか㎚の世界なのでもう意味が分かりません。
無理やりついていってる状態なので多くの間違いがある可能性があります。
ちなみに私のPCのDRAMは・・・
○自作PC : 533MHz @ 7-7-7-20
○R731 : 667MHz @ 9-9-9-24
533MHzの1Clockは約1.88ms、667MHzの1Clockは約1.50ms。
つまり実時間にすると
○自作PC : 533MHz @ 13.16ms-13.16ms-13.16ms-37.60ms、
○R731 : 667MHz @ 13.50ms-13.50ms-13.50ms-36.00ms。
大差はないですね。1msは1/1000sなので人間が感覚としてとらえることは難しそうです。
まあCPUにとってはCeleronG530でも4.16ms/Clockなのでかなり長く待たされそうですが。
CPUの世界は速いし小さいし複雑だしで難しいです・・・