- ベストアンサー
CPU性能のIPCについて
マニアックな質問ですが、CPUの性能であるIPCは向上させるのが難しいという話を聞きました。 この理由は、簡単にいうとどういうことでしょうか? また、インテルと違ってAMDはIPCを重視しているという話を聞きましたがこれは本当でしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>IPCの向上は難しい IPCとは「Instruction per Clock」、つまりクロックあたりの命令実行数という意味ですが、これを増やそうとしたら命令読み出しユニット、実行ユニット、結果の書き出しユニットなどを全部強化する必要があります。無限にトランジスタを使えるならいくらでもやれるのでしょうが、限られた実装面積の中に最大限の効率でそれらを配置するのは難しい、というのが一つ。 また、x86 CPUの話としますと、x86命令というのがそもそも40年くらい前から建て増しを繰り返してきた非常に複雑な命令系というのがもう一つの理由になります。 たとえば運送業者のドライバーに「A社からの荷物を物流センターに登録してからB社に配送して、それが100個あるから100回繰り返して、それからC社で荷物を受け取って物流センターまで持ってきてね。こっちは50個だから50回でいいや。」とか言ったらまあ恐ろしく時間食うだろうなと言うのはご理解頂けるかと。 これを実行するのに「A社→物流センター」「物流センター→B社」各100回の後に「C社→物流センター」50回、つまりトラック250往復(250クロック)必要とします。そこでたとえば「A社さんからB社あて荷物集配の依頼。100個揃っているので100個積みトラックを手配してA社に向かわせる」「C社から集荷依頼。50個ということで50個積みトラックを向かわせる」と集配司令部で分解・統合してやれば、分解・統合処理にもたついて仮にトラック100往復分時間を食うとしても実際にトラックが動くのは3回、つまり全体としては103往復分(103クロック)で処理が終わって処理効率(IPC)2倍以上になるよね、というのが最近のCPUの高速化手法。まあこの説明はごくごく大雑把で実際の実装とはかけ離れているところもありますが、基本的な考え方としては「古くさくてとても迅速に実行できないx86命令を、短時間で実行可能な単純な命令の組み合わせに分解して、できるところから片付けていく」のは間違いありません。 >インテルと違って それは10年くらい前、Pentium 4が現役だった頃の評価でしょう。ここ数年はむしろ逆でしたし、AMDの最新CPU「RYZEN」世代になるとIntelとほぼ同じ考え方でIPC重視の設計になっています。
お礼
ありがとうございます。