How It's Been Ending (4) - Dennard Scaling
最近たまたまハードウェアに詳しい人と話す機会があったので「なんかムーアの法則ってけっこう前におわっちゃってたんですね?」と水を向けたところ、「いやムーアの法則は今でもまあまあがんばっていて、おわってしまったのは Dennard scaling だと思うんだよね」と言う。
Moore's Law は半導体の集積度がどんどんあがっていくという話だった。プレイヤの数はどんどん減って TSMC とか数社になっちゃったしペースも少し落ちたけれども、プロセスはひきつづき細かくなっている。ただし集積度が上がることで消費電力がさがる、という現象はなくなった、
この「集積度があがると消費電力がさがる(そのぶんクロックを上げたりコアを増やしたりできる)」という現象が Dennand Scaling であり、それが 2006 くらいでおわったらしい。2006 年からしばらくはまだ電力バジェットに余裕があったからコアを増やせたし Big.Little みたいな発明も助けになったけど、以前のような勢いはもうない。
最近のスマホの SoC で CPU の占める面積がどんどん小さくなっているのもこの帰結らしい。Moore's Law によってチップの集積度は上がっている。しかしチップ上の回路をぜんぶ同時に使うと消費電力が多すぎる。しかし CPU はその汎用性から基本的にぜんコア同時に使いたいハードウェアである。だからダイの予算を活かそうとコア数を増やすと電力消費も増やさざるを得ない。つまり SoC 内の CPU の大きさはダイの面積ではなく電力によって制限されている。
なので CPU の性能向上でみると Denning だろうが Moore だろうが結論は変わらない。つまり、もう大して速くならない。
一方で CPU 以外は事情が違う。同時には使わない用途限定のハードウェア同士なら同じ SoC に詰め込んでいくことができる。そこで将来 CPU のかわりに色々な特殊用途の DSP なり DSA なりが色々 SoC につっこまれるようになった。たとえばカメラの ISP (image signal processor) とかすごいでかい。A13 では CPU よりでかい。これはカメラを使ってるときしか使わないハードウェアだからなのだね。
別の見方をすれば、CPU は SoC 上の面積では存在感が下がっているが、消費電力では引き続き目立っているのだろう。CPU にしても、たまにしかつかわない命令のための回路 (Dark Silicon) は増やせる。AVX とかはそういう枠、という認識。どのくらいの空間的・時間的粒度で回路をオンオフできるのかは自分にはよくわからない。CPU 業者の腕の見せ所でもある。
たまにしかつかわない DSP/DSA が増えているのはムダだとおもっていたけれど、電力や熱がボトルネックで SoC の面積は相対的に余裕があるのなら、ピンポイントで CPU をオフロードできるハードウェアでその余剰面積を埋めていくのは理にかなっている。Domain Specific Architecture, おもったより時代の要請だった。
そう考えると TLS ... はもうハードウェア支援ありそうだけど、あとは JSON のパースとかも ハードウェアにされちゃいそうだな。あとは GC とか色々研究あるけどそろそろ実践投入してもよくね? 個人的には View のレイアウトとかもなんとかしてほしいなー。などなど、あまった回路で DSA する将来には色々夢があってよい。
ふと手元にあったヘネパタをぱらぱら眺めたら 5 章にだいたいこのようなことが買いてあった。左様でありましたか・・・。
アカデミア的には 2011-2013 あたりに盛り上がっていた話らしい。