最近の話題 2014 年5月3日

1.Androidアプリの x86バイナリトランスレーションはオーバヘッド大とARMが発表

  2014年5月2日のThe Registerが,オースチンで開催したARMのTech Dayでの発表を報じています。ARMのRod Watt氏はGoogle Playストアの上位25のアプリと上位25のゲームを含む100種のアプリを調査し,Dalvik VMだけで動いているのは20%しかなく,残りの80%はARM ネーティブのコートを含んでいると述べています。NDKを使えば,ARMのものをx86に移植するのは比較的簡単ですが,2013年6月にチェックした時には,x86で実行するにはバイナリトランスレーションが必要なものが42%でした。これが今年1月のチェックしてみると44%がバイナリトランスレーションが必要という状況でした。また,Dalvik VMだけで動くアプリは30%から23%へと低下しており,アプリ開発者はx86での実行には力をいれていないことが明らかとのことです。

  それでも,バイナリトランスレーションで,Intelが言うように,性能低下もほとんどなく動けば問題ないのですが,測定をやってみるとオーバヘッドが非常に大きいとのことです。爱搞机という中国のサイトのベンチマークの性能比較結果では,IntelのAtom z2460でのNativeコードと比較して,バイナリトランスレーションは60〜80%性能が低くなり,Epic Citadelというゲームの実行のケースではFPSが49.5から31.2と32%低下し,消費電力は15%増加するとしています。

  また,Greenbench3.1.4というベンチマークでCPU中心の性能をWatt氏が測定した結果では,消費電力は87%増加し,性能は 40%以上低下したと発表されました。ということで,Watt氏は,バイナリトランスレーションはユーザがタブレットに期待することの全く反対のことをやっていると非難しています。

  バイナリトランスレーションは,トランスレーションには大きなエネルギーを必要としますが,そのコードを繰り返し使えば,1回の実行あたりのトランスレーションのオーバヘッドは減少していきます。従って,この結果が,トランスレートされたコードの品質が低いのか,あるいは繰り返しの回数が少なくてトランスレーションのオーバヘッドが大きく見えているのか,その両方かなどは,この結果からは分かりません。x86ベースのAndroidタブレットはダメというARMの宣伝色も強く,眉につばをつけて聞く必要がありそうですが,一つのデータポイントではあります。

2.スタンフォード大が1BシナプスのNeurogridボードを発表

  2014年4月30日のThe Registerが,スタンフォード大の研究者による1B(109) シナプスのNeurogridボードの発表を報じています。Neurogridは16個のNeurocoreと呼ぶカスタムLSIを搭載しています。 Neurocoreチップは256×256(64K個)のニューロンアレイを集積し,180nmプロセスで作られ,12×14mmというサイズです。

  ボード全体で1Mニューロンで,それぞれのニューロンがどのNeurocoreチップにスパイク信号を送るかは任意に選択できますが,Neeurocoreチップの中での送り先は,元のニューロンの位置に対応してある程度決まっていて,全体では1K個のニューロンに接続できるようです。これで1M×1Kで1Bシナプスになります。

  ニューロンの回路はアナログですが,電流源の重みを決める情報はディジタルでメモリにストアされ,DAコンバータでアナログ値に変換します。また,ニューロン間のスパイク信号の伝達もディジタルです。

  4月のCool Chipsで発表されたIBMのチップは256ニューロンですから,256倍の集積度です。また,180nmという15年前のプロセスを最新のプロセスにすれば,もっと集積度はあがるとのことです。なお,古いプロセスを使いながら,IBMのチップに比べて集積度が高いのは,Shared Dendriteというアーキテクチャを使っていることが大きく貢献しています。

  Neurogridの消費電力は数Wですが,人間の脳は8万倍のニューロンを持ちながら3倍の電力しか消費せず,4〜5桁,エネルギー効率が高いとのことです。

3.次世代高性能メモリ HBMとHMC

  2014年4月28日と2014年5月1日のPCWatchに後藤さんがHBM(High Bandwidth Memory)について書いておられます。HBMは,1024ピンで0.8〜1.2Gbit/sでデータ転送を行うので,1Tbit/s(128GB/s)のメモリバンド幅が得られます。GDDR5の4倍くらいのバンド幅で,ハイエンドGPUが12〜16個のGDDR5を使っているのを3〜4個のHBMで置き換えられます。

  一方,MicronのHMC(Hybid Memory Cube)は,1月31日2月4日のマイナビに私の記事がありますが,それぞれ16bit幅の送信と受信のリンクを持つチャネルが4チャネルあり,データ転送速度は,第1世代では10Gbit/s〜15Gbit/sです。結果としてメモリバンド幅は1.28Tbit/s〜1.92Tbit/sとなります。

  なお,HBMは,次は2Gbit/sという話があり,HMCも30Gbit/sのテクノロジのライセンスを取得し,第2世代で採用という噂が聞こえてきます。

  物理的には,HBMもHMCもロジックチップと4枚のDRAMチップをTSVで接続しています。SK hynixのHBMでは,DRAM 1チップが2チャネルで独立のバンクのように動き,4枚で8チャネルとなります。一方,HMCは各DRAMを4×4のVault(金庫)と呼ぶ単位に分割しており,積層枚数に係らず16チャネルの独立のメモリとして動作します。

  この仕様を見ると,HMCの方が多少,性能が高いのですが,どちらも同クラスのメモリとも言えます。

  大きく異なるのは,HBMは1024+384ピンなので,シリコンインタポーザのような高密度の接続基板を使ってCPUやGPUと接続する必要があります。また,4個のHBMを接続しようとするとCPUから5632ピンを出す必要があります。これに対して,HMCは短距離ですが,1リンクは32+αピンで,プリント基板経由の接続を可能にしています。また,4リンクをCPUに直結するのではなく,2リンクをCPUに接続して,残りの2リンクは他のHMCを接続するという使い方ができます。リンク本数が減るのでCPUへのメモリバンド幅は減りますが,CPUのピン数を抑えて,メモリ容量を拡張できます。

  HBMのロジックチップも4枚のDRAMチップとTSVが故障なく動いているかをチェックするBISTなどの機能を持っていますが,基本的にDRAMチップをCPUに接続するためのものであるのに対して,HMCのロジックチップは,ECCのチェックビットの付加とエラー訂正,空き時間にメモリをパトロールしてECCでエラーを訂正して廻るメモリスクラブなどのシステム側の機能を取り込んでいます。

  シリコンインタポーザで1〜2個のHBMを繋いで使うスマホやタブレットと,4個程度を使うハイエンドGPUのような用途はHBM,より大きなメモリ容量が必要となるハイエンドサーバはHMCという感じで用途が分かれるのではないかと思います。

TSVの問題

  HBMもHMCも,TSVを使って4枚のDRAMチップと1枚のロジックチップを接続します。TSVはチップにシリコン基板に穴をあけて金属で埋めて,チップの表裏を接続する技術ですが,穴を開ける深さと直径には制約があり,シリコン基板が厚いと直径も大きくなります。また,穴を金属で埋める場合も深い穴の底まで金属を付けるのは難しく,深い穴の場合は大きな直径が必要です。

  しかし,TSVの直径が大きいと,チップ面積を食いますし,TSV接続の寄生容量が大きくなって消費電力が増えてしまいます。

  チップを薄くすれば直径を小さくできるのですが,薄くすれば加工が難しくなり,壊れやすくなります。ということで,現在は数10um程度といったところです。これでもチップから向こうの景色が透けて見えます。

  4枚のDRAMチップと1枚のロジックチップを接合した場合,どのチップに不良があってもダメですし,5枚のチップの接続に不良があっても不良品になっていまいます。それぞれのチップが90%良品でも,5チップ全部が良品である確率は59%で40%のモジュールが不良になってしまいます。これにTSV接続に発生する不良が加わるので,良品はさらに減ってしまいます。このため,このようなTSV接続のモジュールは,個々のチップのコストと比べて10倍高いという風に言われています。

  この比率は単体チップでのテスト技術の改善で部品となるチップの良品率を上げることと,TSV接続の歩留まりを上げることで改善できるわけですが,それには時間が必要です。2014年5月1日のPC Watchの後藤さんの記事では18〜20ヵ月という数字をあげ,そのため最先端のプロセスを使いたいGPUなどの製品にTSVを使うのは難しく,シリコンインタポーザを使って,HBMを接続する形態になるとしています。

  もう一つの大きな問題は,熱膨張とTSV接続の信頼度です。動作の状態で,各チップの消費電力は変化します。特にロジックチップとDRAMチップではかなり温度が違うということが起こるのではないかと思われます。チップの温度が違うとチップの熱膨張が違ってきます。チップの熱膨張が違うと,チップ間を接続するマイクロバンプ(マイクロピラーともいう)の上下の位置がずれてしまいます。このずれが大きいとマイクロバンプが切れてしまうということが起こりえます。

  Xbox Oneでは,TSVではありませんが,チップとパッケージの温度差による熱膨張率の違いで,チップとパッケージの接続が切れてしまうというRed Ring of Deathという故障が頻発しました。TSV接続でも,注意深い設計を行わないと,この二の舞になりかねません。

  チップ間の接続にかかる剪断力は,熱膨張率の差と温度に比例し,接続の長さと径に依存します。TSVを小さくすると,通常,チップ間の距離も比例して短くなり,剪断力が大きくなってしまいます。

  TSVは,小型化と消費電力の低減の観点から期待のMore than Mooreの技術ですが,その発展を注意深く見守っていく必要があると思います。




inserted by FC2 system