2006年08月07日

1クロックあたりの処理能力を上げる方法とクロックそのものを上げる方法

インテルからCore2DuoというCPUが先日発売され、雑誌などを見ると、そのCPUはすごい性能をたたき出すと書かれている。

ライバルメーカーのAMDとの比較になると企業の政治力なども絡んで面倒なので、同社比でテストした物を見ると、1GHzくらいクロックが高いペンティアムDより、処理能力が高いというテスト結果が出ている。高性能なのは確かなのだろう。

なぜ、Core2Duoがクロックが低いのに高性能なのかは、1クロックあたりの処理能力を重視したからです・・つまり1クロックで多くの命令を処理できれば、そんなにクロックを上げなくても性能は高くなるわけなんですね。能書きによると、条件がよければ1クロックで4命令も処理できるようです。



この1クロックあたりの処理能力を上げた方がCPUの性能向上に有利と言っていたのは、ライバルメーカーのAMDの方でした・・アスロンでは1クロック当たり3命令(条件がよければ)の処理が可能な設計になっていました。それで、同じクロックのCPUで比較すれば、従来のインテルのCPUより、明らかにAMDのアスロンの方が高性能でした・・それで、AMDのCPUには、本当のクロックではなく、昔のアスロンと比較したときの性能を数値で表していて、例えば、アスロン3000とか書いてあり、一瞬3GHzのCPUかと思ってしまうが、本当のクロックとは違い、クロックはもっと低かった。

雑誌の論調は、AMDの方が優れていると書いてある物は少なかったと思う。ペンティアム4は3GHzをはるかに越え、4GHz目前までクロックがあがっていた上に、1クロック当たりの処理能力が低い点は、一つのCPUコアで2つのCPUであるかのように動作させ、クロック当たりの処理能力も上げる努力がされていた。
それで、性能のテストをすると、わずかの差でインテルのペンティアム4の方がよい数値を出すことが多かったと記憶している。

本当に3GHzありますと書いてあるCPUと・・・3GHz相当の性能がありますと書いてある2つのCPUがあると、何も事情を知らなければ、本当に3GHz出る方を選びたくなるものです。また、クロックが高い=高性能という図式は、多くの人に信じられていて、低いクロックでペンティアム4と同等の性能が出せるというアスロンはメーカー製PCにはあまり搭載されなかった・・もちろん、企業の政治力も関係するのでしょうが・・・

そういうときにAMD側の反論は、1クロック当たりの処理能力を上げる方が消費電力や製造のしやすさなどで有利(インテルのCore2Duoは、そのAMDの主張も正しかったことを証明してしまったような感じがします。)、AMDのCPUはインテルのCPUに比べて1クロック当たりの処理能力が高いので、CPUに書いてある数値と同じインテル製ペンティアム4と同等かそれ以上の性能があると主張していたものです。
(正確には、アスロンの3000とかいう数値は、昔のアスロンなら、この程度のクロックになるという数値でしたが、端から見ているとインテルのCPUを意識していると強く感じました)


インテルのペンティアム4は1クロック当たりの性能を多少犠牲にしても、高速で動作させる=クロックを上げれば結局性能は高くなる・・つまり、高いクロックの製品を作りやすい構造になっていました。特に深いパイプラインなどは、明らかにクロックを上げるのに有利です。

ところが、4GHz目前になって、消費電力の急増などの問題で、クロックが頭打ちになってしまった・・これは、現在の半導体の製造方法ではこれ以上クロックを上げるのは難しいということなんでしょう・・それで、キャッシュメモリを大幅に増やしたCPUを投入したり、デュアルコアにしたりして、性能の改善を図ることになる・・



その後の顛末は、この話を理解できる方の多くは知っていると思うので書くのはやめますが・・


クロック当たりの処理能力を上げるのは互換CPUメーカーの常套作戦だったなぁと昔のことを思い出しました。

Windows用CPUの歴史は、Windowsの前のOSであるMS−DOS用CPUの歴史とともに、インテル製CPUの歴史といっても過言ではありません。

8086という16ビットCPUからMS−DOSマシンの歴史は始まり、80286(16ビットCPU(後にi286に改称))を経由して、32ビットCPUの80386(後にi386に改称)が開発されます。最近、64ビットCPUがかなり出回ってきましたが、それまでの32ビットCPUはアスロン、ペンティアム4を含め、一部の拡張はあるけど、この80386の命令セットをずっと維持しており、プログラム側から見れば、386もペンティアムもK6もアスロンもセレロンもペンティアム3もペンティアム4も動作速度の違いがあるだけで、理屈上は同じプログラムが動作するはずです・・(ただし、OSの違いなどで、理屈通りにはいかないけど・・)

この386の頃は、1命令を実行するのに4クロック程度かかった(つまり1クロック当たり0.25命令)。またCPUのクロックも20MHz止まりだったので、メモリのアクセスの時にウェイト(待ち)が生じず、カタログなどに80386(○○MHz)メモリアクセスノーウェイトと書いてあったものです。

ここまでは、命令セットの充実とCPUの32ビット化への改良が主でした・・

そして、386の次に出たCPU・・i486(当初は80486)は本格的に動作速度の改良をした初?のx86CPUだったと記憶しています。486では、パイプライン動作を導入し、簡単な命令なら1クロックで1命令を実行できる速度を得ます。となると、メモリはCPUの速度についていけません・・それを補うために、キャッシュメモリを搭載しました。当初の486に搭載されたキャッシュメモリは8KB・・それでも、当時のソフトを使ったときのキャッシュヒット率は85%あったと聞いています。これで、メモリのアクセスでウェイトがかかっても、あまり影響されず高速動作ができます。

さらに、バースト転送モードも実装されました。これはメモリからデータや命令を読み込むきに、1バイトずつ読み込むのではなく、キャッシュメモリの幅と同じ4バイト分を連続して読み込む方法です、これにより、メモリの動作速度もある程度上げることができました。


この頃までは、互換メーカーはインテルとほぼ同じ設計・構造のCPUを製造していました・・
互換メーカーの方で多少改良して、インテルのCPUよりもっと高速版を出したりしていたものです。


ところが、486の次のCPU、初代ペンティアムで事情が異なってきます。裁判で互換メーカーがインテルと同じ設計・構造のCPUを造れるのは486までとされたからです。つまり、ペンティアムの対抗CPUは互換CPUメーカーが独自に設計しないといけなくなりました。

ペンティアムは、1クロックで1命令以上の処理ができるようにスーパースケーラ構造が取り入れられました。これはパイプラインを複数持つ構造ですが、ペンティアムの場合パイプラインは2つ・・また、CPUとメモリをつなぐシステムバスの幅を486の2倍の64ビット(8バイト)とし、バスのクロックも486の時の2倍の66MHzで動作させました・・CPUだけでなく、パソコン全体の性能アップが図られています。

ここで、互換メーカーは独自設計の対抗CPUを投入してきます。その時、同じクロックのペンティアムより処理能力を上げることを目標にしていました。つまり、1クロック当たりの処理能力を上げることを目指したのです。
(なお、この頃は互換メーカーのCPUはペンティアムと同じソケット7を使っており、ペンティアムを外して互換メーカーのCPUへ簡単に載せ替えられた)


AMDはK5というCPUを発表します。これはCPUの中で命令をRISC風命令に変換して、RISC・CPUの高速化技術を取り入れようとしましたが、ペンティアムと同じクロックで、ほぼ同じ速度しか出せなかった・・開発が遅れている間に、ペンティアムは高クロック版が続々出てきて、K5をは活躍するチャンスはほとんどなかった・・

サイリックスは、ペンティアムより自由度(一緒に実行できる命令の制限が少ない)の高いスーパースケーラー構造を採用し、同一クロックのペンティアムより高速動作を実現した6x86を開発しました。初期のペンティアム対抗CPUとしては、できがよかったと記憶しています。
しかしながら、採用するメーカーは少なかった。これは、高価格で販売したためだと言われていますが・・どうだったのでしょうか・・


AMDはK5の失敗を教訓に、買収したネクスジェン社が開発中だった幻のCPU、Nx686の技術を取り入れることになります。Nx686は、同クロックのペンティアムよりはるかに処理能力が高いと期待されていたCPUです。

そして、大幅に性能アップしたCPU、K6を発売する。これもK5同様、RISC風命令に変換してから処理するCPUでしたが、K5と違い、1クロック当たりの処理能力も高く、同時にクロックも十分高かった・・
そして、重要なのは、安価に供給されたことです・・そのため、ペンティアムでも互換メーカーのCPUでも、どちらでも搭載できるソケット7の規格では、K6を採用するメーカーが増えました。また、ペンティアムから互換CPUへ(具体的にはK6シリーズ)載せ替えるだけで、パソコンの性能をアップするCPUアクセラレータも多数発売されたものです。

そこで、インテルはソケット7の規格をやめて、スロット1と呼ばれるカートリッジスロットにカートリッジ型の新型CPU、ペンティアム2を搭載して、ソケット7のCPUより高性能だということで販売開始するのですが、ペンティアム2の値段が高く、一方でK6の高速版が出てきたり、改良型のK6−2が出てきて、安価なパソコンの市場をAMDに相当奪われてしまいました。それで、ペンティアム2から2次キャッシュメモリを外したCPUを安価に出したのですが、これの性能は低く、一部マニアしか手を出さなかったようです、ちなみに、このCPUがセレロンの初代です、後に2次キャッシュを搭載した改良型のセレロンを出し、K6と競争になります・・・


ちなみに、ペンティアム2もパイプラインは深く、簡単に高クロック版を出せる構造だったそうです。そして、ペンティアム3は、ペンティアム2の改良版と考えてよいでしょう、基本的な構造は同じです。


クロックを高速にする=インテルの高速化手法 1クロックで処理できる命令を増やす(1クロック当たりの処理能力を上げる)=互換メーカー(AMD等)の手法

それは、初代ペンティアムの頃から、その傾向があったんですね・・・



ちょっと、前置きが長すぎましたが(ここまで、けんの駄文を読んでくれた方、ありがとうございます)、どちらの考え方が現在では性能向上に有効なのか・・・

デュアルコアが急に流行り出しましたが、1つのCPUに2つのCPUコアを搭載することは=処理できる命令数が増える方向です・・
つまり1クロック当たりの処理能力を上げる方向です。

そして、今回のインテルのCore2Duoも、1クロック当たりの処理能力を上げる設計となっていて、いろんな性能テストで大変高い処理能力を示している一方で、消費電力はペンティアム4よりはるかに少なくなっています。

互換メーカーのAMDは前から1クロック当たりの処理能力を重視しています。

そんなのを見ていたら、1クロックで処理できる命令数を増やす方向・・つまり、1クロック当たりの処理能力を上げる方法が優れていると感じるし・・今後しばらくは主流になるのではないのかなと感じます。(個人的感想ですが(笑))

kensan156m at 23:50│TrackBack(0) 電気・通信・PC等 | たわごと

トラックバックURL

この記事へのコメント

1. Posted by max長瀬   2006年08月08日 21:21
和歌山より…(謎)


おおせの通りです。

1クロックあたりのの周波数を上げる。
たとえば、2×4863。
これを、2+2+…を4863回繰り返せば 同じ答えになりますが、 超高速で計算できれば、掛け算するより速くなります。
単純にいうと、こういうことですね。

ちょっと話はそれますが、消費電力(W数)高いと 冬場は何かと重宝します。(謎)

PS.そのうち Core2 Duo買う予定。(素)
2. Posted by けん   2006年08月09日 00:25
>max長瀬さん
Core2Duoになると、消費電力が下がるから、冬場はあまり役に立たないかな?(爆)

1クロック当たりの処理能力を上げる方法とクロックを上げる方法・・

トルクが強いけど低回転のエンジンと、トルクは弱いけど高回転できるエンジンに例えることがありますね・・どちらも同じ馬力になると・・

しかし、最近のCPUは、一昔前から考えると、1クロック当たりの処理能力も、クロックそのものも、かなりアップしてますね。
3. Posted by max長瀬   2006年08月10日 21:17
たしかにそうですね。
今はW数低減に動いてますから。

でも 6台動かせば何とかなるかも…(謎)
4. Posted by けん   2006年08月11日 00:35
はい、6台も動かせば、低消費電力でもかなり暑くなりそう・・
冬はいいんだけど・・・夏が・・
ついでに、ちゃんとPCを冷却しないと、寿命が縮まるし・・

ちなみに、PCの部品の耐久性は、一昔前より、悪くなっているそうです。買ってからそんなに時間がたっていないPCが修理に持ち込まれることが最近になって増えたそうです。性能向上の方に力を入れすぎたからだろうとあるPC店の修理担当の方は言われていました。

今後は、耐久性向上にも力を入れて欲しいです・・特にハードディスクを造っている○芝社などには・・以後自粛・・・