プレイする

← fab24hrブログ

チップの基本約8分

メモリの壁とは? チップの計算は速いのに、データが追いつかない理由

メモリの壁(メモリウォール、memory wall)とは、プロセッサの計算はどんどん速くなるのに、メモリからデータを送る速さが追いつかないことです。プロセッサは、計算の途中でよく止まって待つことになります。データを運ぶには電気もたくさん使います。チップの外のメモリから1回データを読むと、簡単な足し算1回の数百倍から千倍以上の電気を使うことがあります。いまこの壁にいちばん強くぶつかっているのはAIチップで、ニュースでよく聞くHBM、先端パッケージ、シリコンフォトニクスは、どれもこの壁と関係があります。

メモリの壁とは? 台所で考える

手がとても速い料理人がいるのに、食材は遠くの倉庫にあり、台車で1回ずつ運ばれてくるとします。料理1品にかかる時間は食材がいつ届くかで決まるので、もっと速い料理人に替えても意味がありません。役に立つのは、よく使う食材を手元に置くこと、倉庫を近くに移すこと、台車を大きくすることです。業界がメモリの壁に対してやっているのは、まさにこの3つです。

プロセッサは料理人で、計算を受け持ちます。メモリは倉庫で、計算に使うデータを置いておきます(2つの役割分担は「メモリとプロセッサは何が違う?」へ)。

プロセッサとメモリの差は、なぜ開くばかりなのか

伸びる速さが違うからです。1980年代半ばから2000年代初めまで、プロセッサは毎年およそ5割以上速くなりましたが、メモリからデータを1つ読むときの待ち時間は、1年で1割も縮みませんでした。差はおよそ2年ごとに倍になりました。メモリチップがいちばん重んじるのは、1個にたくさん入って1ビットあたり安いことで、速さは二の次です。

1994年の終わり、アメリカの大学の研究者2人が短い論文を書き、翌年に発表しました。題名は「メモリの壁にぶつかる」。このままでは10年もしないうちに、プロセッサはメモリに足を引っぱられる、という見積もりでした。その後、キャッシュが何段にも分かれ、メモリも一度にたくさん送れるようになって、壁は少し先へ押しやられましたが、なくなりはしませんでした。

AIになって、壁はまた高くなりました。「ニュースの「HBM」とは?」でも紹介した大学の研究によると、20年でサーバーの計算の速さはおよそ6万倍になったのに、メモリがデータを送る速さはおよそ100倍にしかなっていません。昔の壁はおもに「1回待つのにどれだけかかるか」でしたが、いまは「1秒にどれだけ送れるか」のほうがよく話題になります。

データを運ぶほうが、なぜ計算より電気を使うのか

チップの中の0と1は、配線の電圧が高いか低いかです。0と1が切り替わるたびに、配線全体に電気をためたり抜いたりします。配線が長いほど、ためる電気も多くなります。

計算をする回路どうしはすぐ近くにあり、配線は短くてすみます。チップの外のメモリまで行くには、データはチップを出て、パッケージと回路基板を通り、数センチの道のりを進みます。だから研究では、チップの外のメモリを1回読むと、簡単な足し算1回の数百倍から千倍以上の電気を使うことがあると見積もられています。スイッチが世代ごとに小さくなると計算1回の電気は減りますが、この道のりの長さは縮みません。電気を節約するには、まず運ぶ量を減らすことから考えることがよくあります。

メモリはなぜ何段にも分かれているのか

近いものは速いけれど小さく、遠いものは大きいけれど遅いからです。

段場所入る量1回取り出す時間
レジスタ計算する回路のすぐとなりいま計算している数個の数字1ナノ秒未満
キャッシュプロセッサと同じチップの上おおよそKBからMBおよそ1〜20ナノ秒
メモリ(DRAM)チップの外GB以上数十ナノ秒

1ナノ秒は10億分の1秒です。KB、MB、GBは、それぞれ約1,000倍ずつ大きくなります。プロセッサは決まった拍子で動いていて、1秒に数十億拍を刻みます。チップの外のメモリを1回待つと、100拍以上を何もせずに過ごすことになります。

段に分けるとうまくいくのは、プログラムのデータの使い方にくせがあるからです。いま使ったものは、すぐにまた使うことが多い。あるデータを使うと、そのとなりのデータも続けて使うことが多い。よく使うものを近い段に写しておけば、たいていはすぐ手が届き、電気もずっと節約できます。キャッシュはSRAMでできていて速いのですが、1ビット覚えるのにトランジスタを6個使い、場所をとるので、たくさんは置けません。

いま壁にいちばん強くぶつかっているのは、なぜAIなのか

AIのモデルは膨大な数字の集まりで(「ニュースの「AIチップ」とは?」へ)、キャッシュにはとても入りきらず、チップの外のメモリに置かれます。チャットボットが文章を少し出すたびに、その数字の多くを読み出す必要があります。1人のためだけに計算するときは、1つの数字を運んできても、掛け算1回と足し算1回くらいに使うと、もう次の数字です。キャッシュに残しておいてもまず使われないので、計算する回路は多くの時間を待って過ごします。

そこで、何人分もの質問をまとめて計算することがよくあります。数字を1回運べば、何人分にも使えます。でもここ数年、モデルが大きくなる速さは、1つのプロセッサのとなりに置けるメモリの伸びよりずっと速くなっています。

業界にはどんな手があり、それぞれ何を払うのか

壁を一気に壊す方法はありません。業界はいくつもの道を同時に進んでいて、どの道にも代償があります。

チップの上のキャッシュを増やす

  • 何をする:プロセッサと同じチップの上にあるキャッシュを大きくします。
  • なぜ:よく使う数字をチップの上に置いておけるので、速くて電気も節約できます。
  • 代償:SRAMは場所をとり、ここ数世代は小さくするのがますます難しくなっています。チップが大きいほど高くつき、大きなAIのモデルはそれでも入りきりません。

メモリを積み重ねて、プロセッサのすぐとなりに置く(HBM)

  • 何をする:DRAMのチップを何層も積み重ねて、プロセッサのとなりに置きます。積み重ね1つにデータ線が1,024本あり(最新の世代はさらに倍)、ふつうのパソコンのメモリモジュール1枚が一度に送るのは、0か1を64個並べた分だけです。
  • なぜ:線が多いので一度にたくさん送れ、道のりが短いので0か1を1つ送る電気も少なくてすみます。
  • 代償:どの層も良品でなければならず、とても薄く削る必要があり、熱も逃げにくい。高くてつくるのが難しいのです(「ニュースの「HBM」とは?」へ)。
HBMとふつうのメモリの置き方の比較:ふつうのメモリは、パッケージに入ったDRAMチップを細長い回路基板に並べてマザーボードに差し込み、プロセッサから数センチ離れていて、一度に0か1を64個送ります。HBMはDRAMチップを何層も積み重ね、シリコン貫通電極(TSV)で上下をつなぎ、インターポーザの上でプロセッサのとなりに置きます。積み重ね1つにデータ線が1,024本あり、最新世代の規格では2倍の2,048本です。
HBMの中身もDRAMで、違うのは並べ方とつなぎ方です。積み重ね、シリコンを貫いてつなぎ、プロセッサのすぐとなりに置きます。線が16倍(最新世代はさらに2倍)あるので一度にたくさん運べ、道が短いぶん0か1を1個送るエネルギーも少なくてすみます。模式図で、層や穴、線の数は実際どおりではありません。

先端パッケージで、チップどうしを近づける

  • 何をする:計算するチップとメモリ、または計算するチップ何個かを、1つのパッケージに入れます。とても細い配線のある薄い板の上に横に並べるか、そのまま積み重ねます。
  • なぜ:回路基板の上の数センチの配線を通るのに比べて、道のりが短く線も多いので、データが速く進み、電気も少なくてすみます。
  • 代償:パッケージが難しく、高くなります。中の1個が不良だと、組全体がむだになります。積み重ねると、熱がさらに逃げにくくなります(「ニュースの「先端パッケージ」とは?」へ)。

遠い道のりは、光にする

  • 何をする:サーバーのラックとラックのあいだのような遠い道のりでは、電気を光に変えて光ファイバーで送ります。
  • なぜ:速く送るほど、銅線で届く距離は短くなり、信号を立て直す電気も増えます。光は遠くまで進んでも、ほとんど弱まりません。
  • 代償:電気を光に、光を電気に変える部品が別に要ります。シリコンはそもそもあまり光らず、光ファイバーはとても正確に合わせる必要があり、熱にも弱い。すぐ近くどうしでは、いまも電気を使います(「ニュースの「シリコンフォトニクス」とは?」へ)。

メモリの中で計算する(ほとんどは研究段階)

  • 何をする:簡単な計算を、メモリのチップの中やすぐそばでやってしまいます。メモリのセルそのものの電気的な性質を使って、掛け算と足し算をする研究もあります。
  • なぜ:いちばん安上がりな運び方は、運ばないことです。
  • 代償:メモリは、たくさん入って安くつくれるようにつくられているので、計算の回路を入れるのは簡単ではありません。プログラムの書き方も、コンピュータ全体の設計も変える必要があります。前の4つはすでに使われています(光の道は、ラックとラックのあいだの光ファイバーのことです)。これはまだほとんどが研究段階です。

fab24hrでは

ゲームにメモリの壁は出てきません。HBMも、AIチップも、メモリ工場もありません。メインストーリー「チップの一生」のGlowmereは架空の補聴器用チップで、後工程工場で小さなSiPモジュールに入り、髪の毛より細い金属線で1本ずつ基板につながれます。これをワイヤボンディングといいます。この線が、Glowmereから外へ出る道です。第11章「ボールが浮いた」では、ワイヤボンダの抜き取りプルテストで2本の値が低く出て、あなたは組立プロセスエンジニアです。

Glowmereがいちばん気にしているのも電気ですが、種類が違います。何もしていないときにも漏れていく、わずかな電気です(リーク。「チップはなぜ電気を使う?」へ)。

ゲームに出てくる会社・チップ・人物は架空です。メモリの壁とは何か、それぞれの道のしくみと代償は、公開されている一般的な資料をもとに書いています。ほかの用語は「半導体工場の業界用語を、やさしく解説」へ。

ゲームのどこで出会うかゲームにメモリの壁は出てきません。HBMもAIチップもありません。いちばん近いのは、メインストーリー「チップの一生」の第11章「ボールが浮いた」です。後工程工場の組立ラインで、Glowmereのチップは髪の毛より細い金属線で1本ずつ基板につながれます。それがチップから外へ出る道です。

fab24hrにメモリの壁はありません。でも、Glowmereから外へ出る道は1本残らず、後工程工場が細い金属線で1本ずつつないだものです。

第11章で、チップが外とつながるところを見る

先生へ:この記事は「授業でfab24hrを遊ぶ」と組み合わせて授業で使えます。

この記事を引用する「メモリの壁とは? チップの計算は速いのに、データが追いつかない理由」fab24hr、更新。https://fab24hr.com/ja/blog/memory-wall/
授業や非営利の目的なら無料で使えます。投影、プリントへの掲載、生徒への配布もかまいません。fab24hrと明記してください。販売することや、自分の作品として使うことはできません。 誤りを見つけたら報告

ほかの記事

このサイトのほかのページ