IBMフェローによるPOWER7についての基調講演

横浜で開催されたCool Chips XIIIにおいて、IBMのフェローであるJim Kahle氏がPOWER7プロセサについて基調講演を行った。Kahle氏は1990年のPOWER1の開発からPOWERプロセサの開発に携わっているベテランで、ソニー・東芝と連合して開発したCELLプロセサの技術責任者を務めたことでも知られている。

図1 POWER7について基調講演を行うJim Kahle氏

図2に示すように、IBMは1990年のPOWER1から20年のPOWER開発の歴史を持っており、1994年にはSMP(共有メモリのマルチプロセサ)、1995年にはアウトオブオーダ実行、1996年には64ビットアーキテクチャを開発してきた。そして2009年には8コアのPOWER7を開発し、現在は次世代のPOWER8の概念定義を終わり、プロセサコアがシミュレータで動作している状況であるという。

図2 1990年のPOWER1から最近のPOWER7までのPOWER開発の歴史

今回の基調講演の主題であるPOWER7であるが、図3のように、45nm SOIプロセスで製造される8コアプロセサでトランジスタ数は12億、チップサイズは567平方mmである。通常のプロセサではキャッシュはSRAMで作られるが、このチップでは32MBの3次キャッシュにDRAMを使っている。SRAMの場合は1ビットに6トランジスタを必要とするがDRAMの場合は1トランジスタで済んでしまう。ということで、同容量の3次キャッシュをSRAMで作ったとすると全体では27億トランジスタになるという。

図3 POWER7チップの概要

そして、チップには2個のメモリコントローラを内蔵し、ピーク性能では153GB/sのメモリチャネルバンド幅を持つ。また、AMDのHyperTransportやIntelのQPIに相当するプロセサ間を接続するインタコネクトを5ポート装備しており、合計のバンド幅は360GB/sに達する。

図4に示すように、各コアは2つの整数演算ユニット、2つのロードストアユニット、4つの倍精度浮動小数点ユニット、1個のベクタユニットなどを持ち、命令とデータ用の各32KBの1次キャッシュと256KBの2次キャッシュを内蔵している。POWER7ではベクタユニットが拡張され1サイクルに8個の倍精度浮動小数点演算を実行できるように強化されている。なお、この演算能力は、直後の基調講演で発表された富士通のSPARC64 VIIIfxや2010年4月に北京で開催されたIDFで2010年第4四半期に発売と発表されたIntelのSandy BridgeのAVXと同じであり、今後のハイエンドCPUの方向性を示すものである。

図4 POWER7コアの詳細

そして、POWER7が採用した新しいブレークスルーがDRAMを使用する3次キャッシュである。通常のSRAMが6トランジスタを必要とするのに対してDRAMは1個のトランジスタと1個のキャパシタで構成され、単位面積あたり4~5倍の密度を実現できる。しかし、図5に示すように、記憶を司るキャパシタに必要とされる容量を小さい面積で実現するためには4.0μmもの深い孔を掘り、その内壁に強誘電体の絶縁膜を作り、さらにその内壁に電極を付けるというプロセスが必要となる。また、このキャパシタとビット線を接続するトランジスタもリーク電流が非常に少ないものが必要となる。

図5 3次キャッシュに使用されているDRAMセル

また、このキャパシタはDRAMだけでなく、電源のデカップリングキャパシタとしても使用されている。このキャパシタを作るとその部分には通常のロジックは作れないので、ロジックの無いホワイトスペースにこのキャパシタを作り込み、電源に接続しているという。SOIプロセスではトランジスタの下に酸化膜があるが、それを突き抜けて4.0μmの孔をエッチングしてキャパシタを作る工程は4週間掛かるとのことで、バグを修正するときに、このキャパシタの位置が変わってしまうとリスピン(修正チップの製造)に必要な期間が延びてしまうので、キャパシタの位置が変わらないような設計を行ったとのことである。なお、このキャパシタは容量は多いものの直列抵抗も大きいので高い周波数では有効に働かない。このため、POWER7では通常のゲート絶縁膜を使ったキャパシタも適当に配置している。

最近、AMDはターボコアと称して半分のコアがアイドルになった場合に残りのアクティブなコアのクロックを引き上げるという技術を発表したが、公表という点ではIBMの方が早い。8コアの内の4コアしか使用しない場合は、クロックを例えば3.86GHzから4.14GHzに引き上げる。そして32MBの3次キャッシュ全体を4コアで使用するようになる。また、POWER7は4スレッドのマルチスレッドをサポートしており、実行するアプリケーションの性質にも依存するが、図6のように1スレッドに対して2スレッドでは1.56倍、4スレッドでは2.27倍に性能が向上していると述べられた。そして、これにターボコアを適用すると、それぞれ1.92倍と2.84倍とターボ無しの場合と比べて20%強性能が向上している。

図6 マルチスレッドとターボコアによる性能向上