キャッシュの容量はトランジスター数と演算性能との
トレードオフで決まる
ここまでで、大雑把にキャッシュそのものの動作原理の説明は終わったので、ここからは性能改善という観点で論じていこう。
x86系で最初にキャッシュを内蔵した「Intel 486」シリーズの場合、8KBのユニファイドキャッシュを内蔵した(その後ライトバックをサポートした時点で、16KBに増量)。前回触れたとおり、キャッシュはメモリーアクセスの遅さを遮蔽する働きがある一方で、トランジスター数に大きなインパクトを与える問題もある。
特にIntel 486は、当初1.5μm(1500nm)という大きなプロセスを使っていたから、利用できるトランジスター数は限られていた。こうなると、キャッシュに大量のトランジスターを割くのと、それを減らして演算器の性能を高めるのとで、どちらが賢明かというのは非常に難しい問題となる。
x86の歴史を見る限り、少なくとも「Coppermine」(Pentium III)とか「Thunderbird」(Athlon)の時代までは、「キャッシュは最小限に留め、演算性能を高めるほうにトランジスターを割く」という方向性が明確だった。実際、Intel 486は8KBないし16KBのユニファイドキャッシュのみ。次の「Pentium」の時代でも、合計16KB(命令8KB/データ8KB)のままだった。
「MMX Pentium」になって、プロセスの微細化もあって若干利用できるトランジスターが増えたために、ようやく合計32KB(命令16KB/データ16KB)に増えるが、これに先立ってリリースされた「Pentium Pro」は、16KB(命令8KB/データ8KB)のまま。これがMMX Pentiumと同じ合計32KBに増量されるのは、「Pentium II」になってからだ。つまりこのあたりまでは、CPU内部に大容量のキャッシュを搭載するよりも、演算パイプラインの充実にトランジスターを費やすほうが、性能が上がりやすかったということになる。
とは言っても、8KB~32KB程度の1次キャッシュでは効果が知れているのも事実。これを補うために、マザーボード側に2次/3次キャッシュを搭載するとか、CPUパッケージ内ながらオフチップで2次キャッシュを搭載するといった形で補うことが、「Katmai」ベースのPentium IIIや「K7/K75」コアのAthlonの時代までは続いた。実はこの方式は、コンピューターの世界では昔からある「記憶装置の階層構造」という考え方にもかなう方式である。
これは元々メインフレームなどの話で、図5-1のようなものである。ピラミッドの下の階層ほど容量が大きいが、低速である。階層が上がるにつれてどんどん速度は向上するが、その分容量が減り、かつしばしば高価になる。
PCの場合は図5-2のように置き換えて考えるとわかりやすい。光学ドライブはメディアを入れ替えれば理論上無限の容量があり、対してHDDはどんなに大容量といっても限界がある。SSDはHDDよりずっと高速だが容量はHDDにまだ及ばないし、価格面では勝負にならないほど高い。メモリーはSSDと比べてもさらに高速かつ高価であるが、容量は数桁少なくなる。キャッシュはさらに少ないが高速である。
この階層構造は、「こうした特性を踏まえてシステム設計を考えましょう」ということでもある。大量のデータを処理するにしても、何度も全データを総なめするような処理の仕方をすると、結局一番遅い記憶装置の速度で処理時間が決まってしまう。だがこれを細かく分割して、その中でなるべく処理すれば、より高速な記憶装置が利用できるから、処理性能が上がることになる。
これはCPUの内部でも同じ話である。CPUの場合は図5-3のような構成になるだろう。1番下にHDD/SSDがあるのは、昨今のx86 CPUでは間違いなく仮想メモリーをサポートしたOS上で動作するので、プログラムから見ればメモリーとHDD(仮想メモリー)はほぼ等価である。
もちろん速度は大違いだ。毎回CPUがストレージにアクセスしていたら、例えSSDであろうとも、その動作ははてしなく遅くなる。そこで、HDDなりSSDから内容をメモリー上に展開して、普段はそこへアクセスする。しかしこれでもまだ遅いので、そのうち一部をオフチップキャッシュに、さらにその一部をオンチップキャッシュにそれぞれ展開し、その中で今まさに処理に利用するもののみを、レジスターに移してアクセスするわけだ。
この図式からもわかるとおり、必要なデータの移し変えをうまくやれば、必ずしも巨大なキャッシュをCPU内部に持つ必要はないことになる。
この連載の記事
-
第803回
PC
トランジスタの当面の目標は電圧を0.3V未満に抑えつつ動作効率を5倍以上に引き上げること IEDM 2024レポート -
第802回
PC
16年間に渡り不可欠な存在であったISA Bus 消え去ったI/F史 -
第801回
PC
光インターコネクトで信号伝送の高速化を狙うインテル Hot Chips 2024で注目を浴びたオモシロCPU -
第800回
PC
プロセッサーから直接イーサネット信号を出せるBroadcomのCPO Hot Chips 2024で注目を浴びたオモシロCPU -
第799回
PC
世界最速に躍り出たスパコンEl Capitanはどうやって性能を改善したのか? 周波数は変えずにあるものを落とす -
第798回
PC
日本が開発したAIプロセッサーMN-Core 2 Hot Chips 2024で注目を浴びたオモシロCPU -
第797回
PC
わずか2年で完成させた韓国FuriosaAIのAIアクセラレーターRNGD Hot Chips 2024で注目を浴びたオモシロCPU -
第796回
PC
Metaが自社開発したAI推論用アクセラレーターMTIA v2 Hot Chips 2024で注目を浴びたオモシロCPU -
第795回
デジタル
AI性能を引き上げるInstinct MI325XとPensando Salina 400/Pollara 400がサーバーにインパクトをもたらす AMD CPUロードマップ -
第794回
デジタル
第5世代EPYCはMRDIMMをサポートしている? AMD CPUロードマップ -
第793回
PC
5nmの限界に早くもたどり着いてしまったWSE-3 Hot Chips 2024で注目を浴びたオモシロCPU - この連載の一覧へ