最近の話題 2010年2月20日

1.IntelがItanium 9300 (aka. Tukwila)を発表

  2010年2月8日にIntelはTukwilaのコード名で開発されてきた次世代ItaniumであるItanium 9300プロセサを発表しました。Intelの発表では,これまでの9100(Montvale)と比較すると,インタコネクトバンド幅は8倍,メモリバンド幅は5倍,メモリ容量は7倍となっています。

  IntelのサイトにTechnical Overviewが掲載されていますが,それによると,4コアになってのは別として,コアの基本的な設計は9100から殆ど変っていないのですが,キャッシュは,L1$,L2$だけでなく,6MBのL3$も各コアに専属という形になっています。共有キャッシュにするとレーテンシが伸びるのを嫌った設計です。また,L1DTLBに8KBと16KBのラージページを追加したとなっていますが,ここは普通Full Associative構造にしてMBクラスのページもサポートするというのが一般的な設計で,何をいまさらという感じです。

  そしてプロセサの外回りとしては,FSBを止めてQuick Path Interconnectになった点が大きな変更です。4本のFull QPIと2本のHalf QPIが出ており,ピークで96GB/sのバンド幅があります。これにより,4ソケット構成ならプロセサ間をFull QPIで完全結合で接続した構成を作ることができ,一部の接続がHlaf幅になりますが,8ソケットのシステムも構成できます。

  そして,このQPIでの接続ですが,メモリ上にExport Directoryを持つ,完全なDirectory Baseのコヒーレンシ制御を行うと掛かれています。昨年のHot Chipsでの発表ではXeonではQPIをSnoopyプロトコルで使用していたので,QPIという物理通路は同じでも,Xeonではスヌープ,Itaniumではディレクトリと全く異なる使い方をしているのかも知れません。

 また,メモリインタフェースも変更され,2個のメモリコントローラを内蔵し,ピーク34GB/sのメモリバンド幅となっています。そして,従来はFB-DIMMを使用していたのですが,9300ではIntel Scalability Memory Inteconnect(SMI)という高速シリアルバスを出し,その先に7500 Scalable Memory Bufferというチップをつけて,標準のDDR3 Registered DIMMを接続します。

  省電力に関しては,9100は各コアのクロック周波数の制御だけだったのですが,9300ではコアの動作を120か所のモニタで把握して6usごとにクロックと電源電圧をコントロールすると書かれています。それから発表された製品では1ノッチだけですがTuboBoostも行います。

  ISSCC 2008での発表によると,9300のエラー検出やリカバリはかなり強化され,メモリのエラー検出,訂正はIBMのPOWERや富士通のSPARC64とあまり遜色のないレベルで,レジスタファイルのECCなども付いており,ロジックのエラーもかなり検出するようです。9300の強みは宇宙線などのよるソフトエラーの耐性を100倍程度強化したフリップフロップを大多数の部分に使っている点で,再実行によるエラーリカバリ機能は持っていないのですが,通常のフリップフロップとエラーリカバリを組み合わせるPOWER7やSPARC64より,結果としてのロジックのエラー率は低いのではないかと思います。

  また,DIMMメモリ側も2つのDRAMチップの故障までエラー訂正でき,IBMほどではありませんが,かなり頑張っています。

  発表された製品としては4コア8スレッドの9350,9340,9330,9320の4種と2コア4スレッドの9310の5品種です。トップエンドの9350はクロックが1.73GHz,L3$が24MBで,9340は20MB,1.6GHz,9330は20MB,1.46GHz,9320は16MB,1.33GHzで,TurboBoost時には0.13GHzクロックを上げられます。また,9310は10MB,1.6GHzでTuboBoost無しです。そしてTDPは9350と9340が185W,9330と9320が150W,9310が130Wとなっています。

  また,Tukwilaは開発が遅れたこともあり,65nmという古い半導体プロセスを使っていますが,次世代は32nmプロセスを使うPoulsonが計画されています。そして,このプロセサはTukwilaとソケット互換ということで,Tukwilaマザーボードへの投資は無駄にならないとアピールしています。

  ということで,技術的にはミッションクリティカルな用途には良いプロセサだと思うのですが,Xeonサーバも良くなっており,数倍の価格のItaniumサーバの売れ行きは,やはり,限られるのでしょうね。しかし,ホットスタンバイの予備システムへの切り換えに必要な時間のサービス中断が許されないようなシステムでは,このようなサーバは必須です。

2.IBMがPOWER7ベースのサーバを発表

  2010年2月8日にIBMは,先週の話題でも紹介したPOWER7プロセサを使用する780,770,755,750Expressという4種のサーバ群を発表しました。トップエンドの780は8ソケットでクロック周波数3.86GHzのPOWER7 CPU 8ソケットのサーバで,半分のコアだけを使うとクロックを4.14GHzまで上げられるTuboCoreという,IntelのTurboBoostと同様なメカニズムをサポートしてます。770は3.1GHz,あるいは3.5GHzクロックのCPU 8ソケットのシステムで,こちらはTuboCoreはサポートしていません。780と770はどちらも4Uラックマウントで,CPUで差を付けて780を高く売ろうという戦術のようです。

  755はHPC用と銘打っており,3.3GHzクロックですが,AltiVecのSIMD拡張があるCPUとなっています。これもどのPOWER7チップにもAltiVecの回路は搭載されている筈ですが,755だけでこの回路を生かして付加価値にしようという戦術と思われます。そして755も4Uサイズですが4ソケットとなっています。HPC用としては昨年のSC09でBluewatersに使用する4Uで4ソケットで水冷のユニットが展示されたのですが,それとはまったく異なる製品です。

  750Expressも4Uで最大4ソケットの製品で,6コアで3.3GHzのCPU,8コアで3.55GHz,3.3GHz,3.0GHzの4種のCPUが選択できるようになっています。

  POWER7に関しては先週の話題などで紹介しているので省略しますが,サーバとして面白いのはActive Memory Expansionという機能をサポートした点です。このAESはメモリに格納するデータを圧縮して実質的なメモリ容量を実メモリの1.5倍程度に増加させるという技術で,1.5倍のジョブを並行して処理できる,あるいはメモリの値段を2/3に節約できるということになります。

  IBMは以前にもx86を使うXシリーズのサーバでMXTというメモリ圧縮を組み込んだ製品を出しており,2001年7月1日の話題で紹介していますが,チップセットに内蔵した専用ハードで圧縮,伸長を行うMXTと異なり,今回のAMEは特別なハードウェアは持たず,CPUで圧縮,伸長を行っているようです。とすると,メモリには圧縮形式でデータを保持し,スペアCPUが圧縮形式のデータを読んで伸長してメモリ上のバッファ領域に書きだし,実行CPUはそのバッファデータを使って処理を行うという構造ではないかと思われます。そして,パーティションごとに圧縮,非圧縮が選択できます。また,圧縮の度合いと処理オーバヘッドを見積もるツールなどが用意されており,各パーティションの圧縮の度合いを指定することが可能となっています。

  しかし,圧縮,伸長を行う方式はデータの一部を書き換えただけでも圧縮の度合いが変わり,元のメモリ領域には納まらなくなるという問題があってメモリ管理が難しいので,MXTは1世代の製品だけで終わったと言われているのですが,IBMは何か良い方法を見出したのでしょうか?まあ, 書き換えで発生する増加分のメモリをある程度確保して置き,見掛けの圧縮度をある程度落として,書き戻しで元の領域に納まらないというケースを非常に少なくするなど工夫の余地はありそうです。

3.NVIDIAのFermiはどうしようもないのか?

  2010年2月17日のSemiAccurateにDemerjian氏が,NVIDIAのFermiの製造問題について長文の記事を載せています。それによると,TSMCの40nmプロセスは配線層間をつなぐビアの問題とトランジスタのチャネル長のばらつきが大きいという問題がある。AMD(旧ATI)は前世代でこの問題について学習し,対策を取った設計をしているので製品が出荷できているが,NVIDIAは学習しておらず,設計上の対策をとっていないので問題というものです。

  この記事によると,1月末ころにA3版(初回のリリースから2回のメタル改版を行ったもの)が出来てきたが,歩留まりは2%以下。最高動作周波数は1.2GHzで,目標の1.5GHzに届いていない。そして,消費電力も280Wに達し,PCIカードの上限の300Wまで余裕が無いので,電源電圧をあげて加速という手も取れないという状況だそうです。

  大体,速度が遅いとか歩留まりが低いとかはメタル改版では修正できない場合が多く,本格的にチップ全体のレイアウトをやり直して,作り直す必要がある。しかし,それをやると時期を逸してしまいAMDに対抗できない。従って,FermiはBrokenでUnfixableと結論付けています。

  最近の高速CPUなどで使用されるCu配線ですが,ビアのCuが配線パターンに吸い出されて接続不良になるという製造不良が起こり易いという問題があります。ビアが断線すれば,当然,機能不良になりますし,くっついていても接続部分が僅かだと抵抗が高くなり動作速度の低下が起こります。このため,CPUでは1個がだめでももう1個ということで,ダブルビアを打つというのが常識になっています。但し,そのためにはビア2個分のスペースが必要なので,チップ面積は多少増加します。勿論,SRAMのセル部分などではダブルビアにするスペースは無いのですが,この場合は冗長カラムを設けるなどの手で対処します。

  AMDは学習して,このダブルビアを打っているのですが,NVIDIAはやっておらず,この修正のためにはレイアウトの見直しが必要という主張です。

  そして,チャネル長のばらつきですが,短チャネルになるとOn電流が増え高速になりますが,一方,リーク電流が指数的に増加します。チャネル長が長い場合はこの逆ですが,問題は同一チップの中で長短がばらつくことで,リーク電流の合計が増加し,一番遅いパスで決まる動作速度は低下してしまいます。これには上手い対処法は無いのですが,リークが著しく多かったり,動作速度が著しく遅いユニットがあれば,それを除外するという手は取れます。

  2009年12月26日の話題で紹介したように,NVIDIAはFermiの製品仕様でCUDAコアを512個から448個に削減していますが,これは16個のStreaming Multiprocessorの内の2個を切り離した構成です。小さい単位で切り離せると効果的ですが,このようにFermiのアーキテクチャではSM単位で切り離す必要があるので,あまり上手く働かないとDemerjian氏は述べています。

  歩留まりの計算は1/nではなく,n乗で,Demerjian氏の計算は間違ってますが,ビア不良が低歩留まりの主因で,ロジック部分ではダブルビア化する設計変更が必要という分析には賛成です。また,SM単位で切り離すのではなく,各SMに33個のCUDAコアを入れておけばより効果的に不良部分の切り離しが出来たと思います。但し,チャネル長のばらつきが,当初の約束より大きい場合は,TSMCに頑張って直してもらうというのも筋です。但し,直るという保証もないし,いつ直るかも問題ですが…

4.Intelの48コアチップの補足

  2010年2月16日のPCWatchに後藤さんが,Intelの48コアチップに関する詳しい記事を書いておられます。

  詳細はそちらを見て戴けば良いのですが,掻い摘んで書いておくと,CPUコアはインオーダで2命令イシューのPentium(P54C)で,製造プロセスは45nmで,2コアのペアのタイルは3.6mm×5.2mmとなっています。そしてタイルのトランジスタ数は48Mで,26.5mm×21.4mmのチップ全体では1.3BTrとなっています。

  そして,4タイルを組みとして6個のVoltage Islandが作られており,これに加えてメッシュインタコネクトのVI,I/OのVIの計8個のVIごとに電源電圧を調整でき,クロックは24個のタイル,メッシュ,メモリコントローラ,システムインタフェースと電源制御用のVRCの28ドメインで独立に設定できるという省電力機構をもっています。

  メッセージの転送は,ソース側のL1$からMPBに1キャッシュラインを転送し,それがメッシュを通ってディスティネーションに送られ,ディスティネーションのMPBからL1$に転送されるという風にキャッシュライン単位で送られるようですが,多数のタイルから一つのタイルを目掛けて大量のデータを送るというような場合,MPBの枯渇やフロー制御はどうなっているのでしょうかね。まあ,こんな話はISSCCで質問してもダメでしょうけど。

  そして,各タイル間は分散メモリで,ハードウェアのキャッシュコヒーレンシ機構はなく,MPIに似た通信を行います。オンチップのメッシュを使うことにより,16KB以下の転送の場合は,外部メモリを経由する転送と比較すると1/15の時間で転送できるというグラフが載っています。

  そして,このチップはメニーコアのプログラミングモデルを検証することが大きな目的と書かれています。

inserted by FC2 system