SATOXのシテオク日記

~ふもっふ、ふもふも~

技術的にクロックアップは停滞。そうだ、キャッシュを増やそう。

電流リークも問題でPentium4のクロックは3.8GHzが限界とされています。x86系のCPUが次のステップに進むには、新しい素材でより高密度の技術が必要になってきます。
んで、現状のクロックのまま高速にするためのお気楽な方法。それがキャッシュサイズの拡大です。

Intelは何年にもわたり、クロックスピードの向上によってPentium 4の性能を高めてきたが、90ナノメートルプロセスへの移行に伴う電流リークの問題により、プロセッサの速度を上げられなくなっている。

CPU(最近はMPUと言いますが)とは、簡単に言うと「演算器」のこと。CPUにはいくつかのレジスタと呼ばれる記憶域を持っていて、レジスタ同士の足し算やかけ算を行うことが出来るわけです。これらの計算結果を格納したり、計算をするための命令が格納されているのがいわゆる「メインメモリ」です。
メモリはCPUの外にあるため、大変アクセスが遅いです。逆に言うとレジスタはCPU内に存在するものなので、非常に高速。例えば、メモリからCPU上のレジスタにデータを読み込むためには数クロックを要しますが、レジスタ同士のデータコピーは通常1クロックでこなせるわけです(しかもメモリバスクロックに依存)。いわゆるプログラム(命令)を走らせるためにはメモリ上からちくちく命令データをロードしなければいけないワケなんですね。
では「キャッシュメモリ」とは何でしょうか?
キャッシュとはレジスタ同様、CPUから見ると高速にアクセスできるメモリ領域。キャッシュを使うことで「ちくちく」ロードしていたデータを先読みすることが出来、無駄なメモリへのアクセスを減らすことが出来るんです。逆に、キャッシュのミスヒットは大きな負荷になることがあり、その解決策として、キャッシュ領域が大きくなればキャッシュのミスヒットが起きる率が減り、性能向上に繋がるわけなんです。
特にアセンブラを使ってプログラムを書くときはメモリアクセスの遅さやキャッシュの動きを考慮しながら書かないと処理が遅くなってしまいます。
昔よく遊んだMSXというコンピュータのメインメモリが32KBだったことを考えると、キャッシュ2MBってとんでもねぇな(笑) フロッピーまるまる入っちゃうよ(笑)
Pentiumもハイパースレッドからマルチコアにシフトして、1チップで複数のCPUと等価なパフォーマンスを目指す方向になってくると思います。こう考えると、CellはRISCだし、やっぱり一歩先んじている技術だと言えますね〜。



CPUの創りかた
Book
2003/10/01
毎日コミュニケーションズ・渡波 郁