熱設計を1から — 3D積層の壁は熱
チップに入った電力はほぼ全部が熱になって出てくる。温度を決めるのは熱抵抗の直列スタックで、ダイを縦に積むと最も遠い層の温度上昇は層数の2乗で効く。熱流束とホットスポット、熱容量による時間遅れ、液冷が実際に潰している項までを、電力バジェットの続きとして1から追います。
電力は、行き場を失った熱になる
チップに入った電気エネルギーは、ほとんどそのまま熱になって出てきます。光にも音にもならず、外の物体を動かすわけでもない。信号として隣のチップへ送り出したぶんも、行った先で配線を充放電して熱に変わります。だから「消費電力700W」という数字は、そのまま「700Wのヒーター」と読み替えて構いません。
ただし普通のヒーターと違うのは、発熱体の大きさです。電気ストーブは数百Wを畳半分ほどの面から出しますが、アクセラレータは同じかそれ以上の熱を、切手ほどの面積から出します。同じワット数でも、狭いところから出る熱のほうがはるかに始末に困る。 熱設計の話は、ほぼここから派生します。
冷やすというのは、温度を下げる魔法ではありません。中で生まれた熱を、空気や水といった「捨て場」へ押し出す作業です。押し出す速さが生まれる速さに追いつけば温度はある値で止まり、追いつかなければ上がり続ける。止まる位置がどこになるのかを予測する道具立てが、この記事の中身です。
直感: 温度は「渋滞の度合い」で決まる
熱の話は、電気回路にそっくり置き換えられます。熱の流れ (ワット)を電流、温度差 (℃)を電圧、熱の通りにくさ (℃/W)を抵抗と見るのです。
言い換えると、「どれだけ熱いか」は「どれだけ熱を流しているか」×「その道の詰まり具合」で決まる、ということです。 はチップが出している熱量、 は熱抵抗と呼ばれ、1ワット流すごとに何度の温度差が生まれるかを表します。単位がそのまま意味になっているので、℃/W という表記を見たら「ワットあたりの値上がり幅」と読んでください。
この相似はただの語呂合わせではありません。熱伝導の基本法則(フーリエの法則)が「温度差に比例した熱が流れる」という形をしていて、オームの法則と数式の骨格が同じだからです。だから熱の世界でも、抵抗を直列に足したり並列に割ったりする、あの計算がそのまま通用します。
熱抵抗は、直列に足し算される
トランジスタが熱を出している場所から外気までの道のりを、実際に並べてみます。
接合部(トランジスタのある層)→ シリコン基板 → 熱伝導材(TIM)→ 金属の蓋 → 2枚目のTIM → ヒートシンクまたはコールドプレート → 空気または水。
この一本道の各区間に があり、直列なので単純に足されます。
つまり、トランジスタの温度は「周囲の温度」+「出している熱 × 経路全体の詰まり具合の合計」です。 は接合部温度(junction temperature、トランジスタが実際にいる場所の温度)、 は周囲温度、 は各区間の熱抵抗です。
ここで効いてくるのが材料の熱伝導率の桁の違いです。銅はおよそ400、シリコンは150、放熱グリスの類は1〜5、空気にいたっては0.03 W/(m·K) 前後。桁が3つも4つも違う。 その結果、厚さ0.1ミリのグリス層が、数ミリある銅のブロックより大きな熱抵抗を持つ、という逆転が普通に起きます。薄いから無視してよい、が全く成り立たない世界です。
そして直列の足し算である以上、一番大きい項が全体を支配します。ヒートシンクを2倍立派にしても、支配項がTIMなら温度はほとんど下がりません。どこを直すかを決めるには、まず内訳を出す。性能最適化でボトルネックを先に測るのと、考え方はまったく同じです。
積むと、温度は層数の2乗で効く
さて、本題です。チップを平面に広げるのには限界があり、帯域と配線長のために縦に積む方向へ進んできました(この工程の話は先端パッケージングで扱っています)。
積層は電気的には良い話ばかりです。配線が短くなり、帯域が上がり、1ビット運ぶエネルギーが下がる。ところが熱から見ると、事情はまるで違います。
理由は2つあります。1つは、層を増やすと熱は増えるのに、外へ出る扉は増えないこと。冷却器を貼れる面はスタックの片側だけで、そこの面積は積んでも変わりません。もう1つのほうが厄介で、冷却面から遠い層の熱は、手前の層を全部通り抜けなければならないという点です。
コメント
コメントにはログインが必要です