本連載はHisa Ando氏による連載「コンピュータアーキテクチャ」の初掲載(2005年9月20日掲載)から第72回(2007年3月31日掲載)までの原稿を再掲載したものとなります。第73回以降、最新のものにつきましては、コチラにて、ご確認ください。

図10は2005年の秋のIntel Developers ForumでのYonahのSmart Cacheの発表スライドのコピーである。

  • Yonah

    図10:Yonahの2次キャッシュマネジメント(Intel Developers Forum Fall 2005発表より転載)

第一番にキャッシュは平均電力のかなりの部分を消費していると述べている。2次キャッシュはタグを引いてからヒットしたwayだけを読み出すという制御で、読出しに伴うアクティブな電力は抑えられたのであるが、トランジスタの数が多いのでリーク電流が巨大で、キャッシュ部分がプロセサのリーク電流の半分以上を占めているのではないかと思われる。90nm世代の高速プロセサではリーク起因の電力は30%程度を占めているので、絶対値としても無視できない電力であるが、モバイルPCのように殆どの時間、CPUがアイドルになっているような使い方では、アクティブ電力が少なくキャッシュ部分のリークが平均電力の大部分を占めると考えられる。

これに対してIntelが出してきた解が、使わないキャッシュをオフにしてリークを抑えるというものである。これまでのキャッシュの話で見てきたように、ModifiedやOwned状態のキャッシュラインはメモリに書き戻しを行う必要があり、単純に電源をオフにしてしまうわけには行かない。具体的にどの単位で電源オフにするかは書かれて居ないが、一番ありそうなのはway単位でオフにするというやり方である。つまり、4wayのキャッシュであれば、あまり忙しくない状態では3wayとか2wayにしてしまうという方法である。どこの製品か忘れたが、車でも馬力が要る場合は4シリンダーをフルに使うが、力の要らないときには1シリンダーを止めて燃料を節約するというのがあったが、同じ考えである。

電力のためにwayを減らすという方法を製品に採用するのはYonahが初めてではないかと思うが、故障したビットが発見された場合に、そのwayを停止させて、性能は多少下がるが、動作を続行するというやり方はサーバ用のハイエンドプロセサでは以前から存在し、それと同じ方法でwayを空けて電源をオフにすると思われる。

2番目のキャッシュのデータ保持が電源電圧の最小値の制限になっているというのは、キャッシュに使われるSRAMのメモリセルの電気的特性の点で、電源電圧の最低値が決まるということを述べている。CMOSの論理回路はスピードの低下を許容すれば0.5V程度の電源電圧でも動くが、6トランジススタで構成される普通のSRAMメモリセルは実用上1.0V程度が最低必要と言われている。従って、メモリセルが最低電源電圧を決めるという記述となっている。このスライドでは、だから何だとは書いてないのであるが、プロセサの動作が暇になるとクロックを下げて、それに伴って電源電圧を下げて消費電力を減らすが、キャッシュメモリが制約になって十分に電圧を下げて低電力化できない。従って、キャッシュの内容をメモリに吐き出して、電源電圧をキャッシュのデータ保持下限以下に下げるというEnhanced Deeper Sleepを説明する文章と思われる。

3番目のYonahの3つのメカニズムの最初のものとして挙げられているDynamic Smart Cache Sizingであるが、このシリーズの最初に説明したキャッシュのメカニズムで普通に2次キャッシュの共用をやっていれば、2つのコアの間で適当にキャッシュラインの使用量が決まるので、何か特別なことをやっているわけではない。一方、処理負荷に応じてway縮退のような方法でリークを減らすのはsmartと呼ぶのに値すると思うが、モバイル用CPUにそうまでして大きなキャッシュを積むべきかというと割り切れない感じがある。

その次は、Enhanced Deeper Sleepという状態を作った件で、この状態ではキャッシュの内容をメモリに書き戻し、CPUの論理回路は動いているが、キャッシュのデータ保持電圧より下げて電力を抑える技術である。データは破壊されてしまうので復旧に先立ってタグのValidビットをクリアしておく必要がありキャッシュは空の状態であるので、プロセサからのアクセスはキャッシュミスとなり、メモリからデータを持ってくるために多少性能が低下する。しかし、スタンバイモードのようにディスクから読んで来るのに比べると非常に速く、多分、人間の感覚では全く遅れが感じられないと思われる。アイドル状態が長いモバイルプロセサとしては効果のある優れた技術であると思う。

最後の低電圧で動くキャッシュも重要な技術で、最近では学会において色々な回路が提案されている。しかし、Intelが具体的にどのような方法で低電圧で動くキャッシュメモリを実現しているか、どの程度の低電圧まで動くかなどは明らかにされていない。これまでのキャッシュSRAMの設計は密度(1平方ミリあたりのビット数)が命であったが、最近では低電圧で動く、リークが少ないなども重要な設計ターゲットになっている。