このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第606回

Samsungがついにメモリー内にプロセッサーを統合 AIプロセッサーの昨今

2021年03月15日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

SRAMはコスト面で実用的でない
そこでHBMにAIプロセッサーを組み合わせる

 データアクセスにかかる消費電力の話をしたところでHBM-PIMに話を移そう。Samsungはこうした問題に対し、HBMにAIプロセッサーを組み合わせるという荒業で回答を出した。もともとHBMは、複数のDRAMセルが内蔵されているダイを、HBMのI/Fが搭載されたダイに積層する形で実装されており、それもあって通常のDRAMに比べるとレイアウトにゆとりがある(とは言え、DRAMセルの容量は半減しているが)。

 下の画像で左が通常のHBMの構成だが、内部は全部で32バンク(Pseudo Channelが2つあり、それぞれにBank 0~15が属する格好)であるが、そのバンクに挟まれた部分にI/O Controlの領域が結構広めに取ってある。

通常のHBMの構成。右のFIMDRAMとはFunction In Memory DRAMの略である

 SamsungはこのI/O Controlの領域にPCU(Programmable Computing Unit)と呼ばれる演算エンジンを挟み込んだ。このPCUは隣接する2バンクのDRAM領域にしかアクセスできないという制約はあるが、逆に言えばこの2バンクに対してのみは最小のペナルティーでアクセスが可能とも言える。したがって局所的な演算のみに割り切って使えば、効果的に利用できるわけだ。

 DRAMとPCUが混在している構造なので、これを動かすためにはI/F側にも工夫が必要になっている。まずHBMで言えば一番下、HBM I/Fが搭載されているダイに、新しくFIM Controllerが追加される。このFIM Controllerの役割は、CMD Busから送られてくる命令(とアドレス)を解釈し、それがFIMモードの場合にはPCUを動かし、そうでない場合には通常のDRAMセルへのアクセスとする、という制御をする。

FIMモードの構造。PCUのクロックはメインクロックの1/4というのは興味深い

 さすがにHBMに新たに信号線を追加するわけにはいかないので、CMD Busを拡張してFIM用の命令を追加することになる。CMDの命令定義に新しくFIM用のものを追加すると、以下のような動作になる。

  • 通常のメモリーアクセス時にはDRAMとして振る舞う
  • FIMモード時にはDRAMではなくプロセッサーとして振る舞う

 PCUは隣接する2バンクのDRAM領域のみアクセスできると前述したが、その具体的なアクセスモードが下の画像だ。

PCUから直接ホストに値を戻すという操作は想定していないので、FIMモードでRD/RA13=Hの操作は定義されていない

 ノーマル、つまり通常のHBMとして振る舞う場合は、RA13の信号に関わらず、DRAMセルから読み込む(RD)か、DRAMセルに書き込む(WR)しか処理がないが、FIMモードでは、以下の3種類の動作が可能になる。

  • (ホストから)PCUのレジスターに書き込み
  • PCUのレジスターからDRAMセルに書き込み
  • DRAMセルからPCUのレジスターに読み込み

 これで、DRAMセルから値を読み込み、処理後に結果をDRAMセルに書き戻す作業が可能になる。このあたりが自動でないのは、一発で処理が終わる場合もあれば、計算結果をDRAMセルに書き戻す前に次の処理をする場合もあり得るので、全自動にするとむしろ都合が悪いためだろう。このあたりはホストの方からきめ細かく管理してやる必要があるわけだ。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン