Youtube登録者5000人突破!!

【GPU】HBM(High Bandwidth Memory)とは何か?

HBM(High Bandwidth Memory)GDDR6(graphics double data rate type six synchronous dynamic random-access memory)とは、GPU内のプロセッサとメモリ部分の接続に関する設計技術です。

最近は、ゲームや産業におけるGPU計算の需要が高くなってきたので、GPU内の計算速度も非常に重要になっています。

GPUはCPUと違って最高速度の処理を求めるような設計ではないですが、コア数が多いので速度の恩恵は大きく受けます。特にプロセッサとメモリの転送速度は無駄なので、なければないほど良いです。

ここで、プロセッサとメモリのデータ転送量をメモリ帯域幅と呼びます。もう少し詳しく言うと、メモリ帯域幅はメモリが1秒間に転送可能なデータ容量のことです。

このメモリ帯域幅を増やすには2通りの方法しかありません。

  • 転送できる道(バス)の幅を大きくする
  • 転送速度を上げる

転送速度を上げるのは簡単ではなく、消費電力も上がる傾向にあるため、「転送できる道(バス)の幅を増やす設計」が求められます。その結果生まれたのが HBM(High Bandwidth Memory)GDDR6(graphics double data rate type six synchronous dynamic random-access memory) になります。

GDDR6に関してはエントリーモデルで使われ、HBM(現行はHBM2)はハイエンドモデルで使用されます。技術的な話はハイエンドモデルのほうが進んでいるので、ここではHBMについて解説します。

HBMの歴史

HBMまでには色々と失敗の歴史があります。

まず理解しておいて欲しいのは、プロセッサとメモリを接続する際に重要な要素を単純化すると伝わる速さと線の細さです。

伝わる速さの上げ方としては、純粋に近い部分に置くという方法もありますが、プロセッサとメモリの信号が早く伝わる材料技術を使うという方法もあります。

線が細いと、純粋につなげるピンの多さを増やすことができます。これはGPUに限らず、CPUとメインメモリの接続でも重要になります。

WideIO Memory

WideIO Memoryは、プロセッサの上にメモリを置いた設計です。プロセッサとメモリの広い面が接しているため、ピンを多く確保できます。そのため線の細さによらずたくさんのピンを配置できます。

スマホのプロセッサとメインメモリなどは多くがこの設計です。狭い場所で多くのピン接続を維持するには必要な技術です。

ピンが十分に多いので、信号速度を下げられるというのも一つの強みです。信号速度が下げられると、消費電力の低下に繋がります。そのため、モバイル端末では非常に有用な技術です。

デメリットとしては、信号速度を上げると発熱量が大きくなるという問題があります。プロセッサの上面は放熱の役割も担っているので、発熱を抑えるために信号速度を下げざるを得ないというのが正直なところです。

HMC(Hybrid Memory Cube)

HMC(Hybrid Memory Cube) は、プロセッサはそのままでメモリだけを重ねた設計です。

プロセッサは放熱が重要なので、上は開けてます。一方で、メモリを重ねることで低消費電力で通信量を維持するという方針です。Wide IOの妥協案といっても良いでしょう。

HMCの工夫は、プロセッサとメモリの間の通信として、インタフェースチップを採用したことです。インタフェースチップは、その名の通りプロセッサとメモリの間をつなぐチップです。

プロセッサとメモリの接続は膨大になり、メモリを積層した場合は一か所に配線が集約されることになります。それをなんとかしてくれるのが、インタフェースチップです。

メモリとインタフェースチップは積載されているので、この2つの通信は高速です。ただ、プロセッサほどではないにしても、インタフェースチップが発熱するという問題はありました。

インタフェースチップの上にはメモリがあるので、熱の逃げ場を確保するのも難しいです。そのため、信号速度を制限するしかありませんでした。

HBM(High Bandwidth Memory)

HBM(High Bandwidth Memory) はHMCとほぼ同じ構造ですが、若干手を加えることでぐっと実用的なものにしています。

ここまでで問題になってきたのは、発熱です。WideIOではプロセッサとメモリを重ねたために二つの間で発熱し、HBCではプロセッサとインタフェースチップの信号速度を上げるとインタフェースチップが発熱するという問題がありました。

では熱を逃がす設計をしてやればよいということになります。

そのために、プロセッサとメモリの間を繋ぐ部分を伝導性の良いシリコンにしてやろうというのがHBMの思想です。

HBCの設計では基板上に乗せるという設計だったので、プロセッサやメモリの下面での熱や膨張による問題が課題でした。一方で、HBMではシリコンインポーザというシリコンの基盤を下に敷いてやることで問題を全て解決したというものです。

シリコンの基盤は伝導性の良さもありますが、配線を補足できるメリットもあります。CPU内では基盤よりもはるかに細かい配線が巡らされているように、シリコンで基盤を作ればはるかに細かい配線が実現できます。

このような熱・細線などの理由から、HBMが現在のスパコンなどのハイエンドPCで使用されるようになっています。

HBMのデメリット

HBMの唯一のデメリットは価格です。

シリコン基板を追加するので、当然価格は上がります。そのため、ハイエンド用や小面積で設計しないといけない場合等に使われます。

ただ、HBMのシリコンインポーザの低価格化には継続的に取り組まれているため、いつか日常使用のPCにもHBM技術が搭載される日が来るのも遠くないでしょう。

おわりに

今回はプロセッサとメモリ間の接続に関するHBM (High Bandwidth Memory) について説明しました。他の技術の歴史や住み分けも含めて理解しておくと覚えやすいです。

重要なポイントは以下の通りです。

  • メモリ帯域幅は、データの転送量のことである
  • メモリ帯域幅は、信号速度とバス幅できまる
  • 信号速度を上げると消費電力が上がり、発熱しやすくなる
  • WideIOは、プロセッサをメモリを重ねる技術である
  • WideIOは、接触面積の分だけピンを増やせるので、バス幅が広い
  • WideIOは、プロセッサの発熱が問題となるので、速度を上げられない
  • HBCは、メモリだけを重ねて、一番下にインタフェースチップを置いたものである
  • HBCは、インタフェースチップの発熱が問題となる
  • HBMは、HBCに対してシリコン基板を敷くことで、細線化・伝熱・膨張防止を行ったものである
  • HBMでは、信号速度とバス幅を両方確保できる
  • HBMは、シリコン基板を使用するので高価格になる

色々な技術を紹介したため情報が多くなりましたが、重要なのはメモリ帯域幅についてとHBMについてだけです。

パーツを重ねるという方法はモバイル端末などの狭い部分の設計では非常に有用です。ぜひ時間があったらスマホの解体動画等を見てもらうと実際の例がわかって良いと思います。

youtubeもやってます

IT初心者向けの動画も作成しています。プログラミング等興味ありましたら、こちらもどうぞ。