後藤弘茂のWeekly海外ニュース
SamsungのGalaxyシリーズを支えるモバイルSoC「Exynos」
(2015/3/23 13:07)
急ピッチでモバイルSoCを進化させるSamsung
Samsungは同社のモバイルSoC(System on a Chip)「Exynos」ファミリを急ピッチで進化させている。Galaxy Note Edgeなどの一部モデルに採用された20nmプロセスのExynos 7 Octaに続き、Galaxy S6シリーズには14nmプロセスのExynos 7 Octaを採用した。どちらも、64-bitアーキテクチャのARMv8のCPUコアCortex-A57/A53を8コアと、ARMのMali-T760 GPUコアを搭載する。
Samsungは昨秋(2014年)に20nmプロセスで32-bitのARMv7アーキテクチャのExynos 5 Octaを発表している。つまり、20nmのARMv7→20nmのARMv8→14nmのARMv8と1四半期毎にモバイルSoCを更新したことになる。Samsungは、2月のISSCC(IEEE International Solid-State Circuits Conference)で、これらチップのうち20nm版Exynos 7 Octaについて設計上の概要を発表した。
20nmと14nmの両バージョンのExynos 7 Octaは、動作周波数やGPUコアのコア数などを除くとスペックはよく似ている。これは不思議ではない。なぜなら、ファウンドリの16/14nmプロセスは、20nmプロセスのバックエンド(配線層)をベースに、トランジスタを20nmのプレーナトランジスタからFinFET 3Dトランジスタへと切り替えたプロセスだからだ。Samsungのプロセスは、14nmでバックエンドの配線層もかなり改良されているが、それでもSoCの設計に共通性が多いと予想される。ISSCCのSamsungの20nm SoCからは、Galaxy S6のSoC設計がかなり予想できる。また、Cortex-A57/A53の実装も見えてくる。
20nmであまり縮小していないCPUクラスタ
SamsungのモバイルSoCは、big.LITTLE構成を採っている。高性能で電力消費の大きなビッグCPUコアと、電力消費が小さいが性能は低いリトルCPUコアの組み合わせだ。20nmのExynos 7 Octaは、高性能コアにCortex-A57を4コア、低電力コアにCortex-A53を4コア搭載する。どちらも、64-bitを含むARMv8アーキテクチャだ。
ISSCC時の発表では、両CPUクラスタのサイズも明かされた。Cortex-A57クラスタはA57が4コアに2MBのL2キャッシュで約14平方mm、Cortex-A53クラスタはA53が4コアに256KBのL2キャッシュで約4平方mmとなっている。つまり、ビッグコアのクラスタの方がリトルコアクラスタより3.5倍大きい。
これを、同じSamsungの28nm時のbig.LITTLE構成と比べると、20nmでCPUコアサイズがあまり縮小していないことが分かる。28nmのビッグCPUクラスタは、Cortex-A15が4コアに2MBのL2キャッシュで約19平方mm。28nmから20nmへ微細化したにも関わらず、ビッグCPUコアクラスタの面積は73%にしか縮小していない。
これには2つ理由がある。1つは、CPUコアが32-bitのARMv7のCortex-A15から、64-bitのARMv8のCortex-A57へと変わり、アーキテクチャ拡張の分だけCPUコアが大型化したこと。もう1つは、Exynos 7 Octaの製造プロセスの20nmが、Samsungの20nmプロセスでも、微細化率が低い早期生産プロセスと見られることだ。
Samsungの2つの20nmプロセス
Samsungの20nmプロセスには2種類ある。1つは、最初に製造が始まったと見られる20LPE、もう1つはモバイルに最適化した20LPMだ。20LPEの方はかなり大人しいスペックで、例えば、最小配線間隔(Minimum Metal Pitch)であるM1xは、20LPEでは80nmと28nmプロセスの90nmから89%しか微細化していない。それに対して、20LPMの方はM1xが64nmとかなりアグレッシブな寸法だ。20LPMは28LPに対してセルライブラリの面積が55%に縮小するとされているが、20LPEではそこまで縮小しないと推測される。
ISSCC時の20nm版SoCのプロセスフィーチャではM1xは80nmとなっており、20LPEだと見られる。そのため、28nmプロセスと比べてロジック部の面積縮小率が低い可能性がある。Samsungは、20nmプロセスで、ゲートファーストからゲートラストへと製造方式を変更するなど、大幅な変更を行なっており、20LPEではリスクを減らすためにメタルピッチの縮小を抑えたのかもしれない。ちなみに、14nmプロセスではメタルピッチは64nmになっているはずなので、14nm版Exynos 7 Octaの方がCPU面積は縮小しているはずだ。
64-bitアーキテクチャ化でゲート数は35%増加
ARMv8アーキテクチャでは、64-bitモードが加わったほかに、仮想化支援などさまざまな部分で機能が強化された。そのため、ARMv8のCortex-A57は、ARMv7のCortex-A15よりCPUコアサイズが大型化する。Cortex-A15とCortex-A57の実行パイプライン構成はよく似ているが、アーキテクチャ拡張の分だけCPUコアは大型化する。Samsungによると、RTLのコンフィギューレションを終えた時点で、32-bitのARMv7よりも35.5%もゲート数が多くなっていたという。こうした事情から、20nm版のCortex-A57クラスタの面積は、14平方mmと相対的に大きくなったとみられる。
64-bit化によって35.5%肥大化したCortex-A57。そのままなら、CPUコアの電力消費も比例して増えてしまう。そこでSamsungは、20nmのCortex-A57の実装では、いかに面積と電力を下げるかに注力したという。最高周波数のターゲット(fmax)毎に異なるトランジスタの構成をシミュレート。電力と動作周波数の最適なバランスを模索した。
下の図の左端の最低周波数のfmax1と比較すると、最高のfmax4の周波数は15%高い。しかし、fmax1に対してfmax4はリーク電流の多いlow-Vtトランジスタを10倍も多く必要とする。そのため、一定の周波数以上で走らせると、電力消費が限界に達してしまう。シミュレートの結果、fmax2が最適バランスのターゲット周波数のトランジスタ構成として選ばれたという。これは、1.08Vで駆動し1.9GHzを達成できる構成だという。14nmになると、トランジスタがFinFETになり、リーク電流がより抑えられ電力効率が上がる。そのため、fmaxの最適化ポイントはさらに上がることになる。このほか、物理設計の最適化などによって、64-bit実装のCPUコアを、32-bit CPUコアの25%増の電力に押さえ込んだという。
リーク電流の低減にフォーカスしたCortex-A53
ARMのbig.LITTLEアーキテクチャは、現在、CPUコアをOSスケジューラでタスクスケジュールする「big.LITTLE MP」が提供されており、ビッグとリトルのそれぞれのCPUコアに自在にタスクを割り当てることが可能となっている。モバイルでは、実際には、ほとんどのタスクはリトルコア側で走り、負荷が極めて高いタスクだけがビッグコアで走る。そのため、ビッグコアは主に電力のダイナミック成分を下げることにフォーカス。その一方で、リトルコアはリーク電流を抑えることにフォーカスされたという。同じSoC上のCPUコアでも、ビッグのCortex-A57と、リトルのCortex-A53では、異なる最適化が行なわれている。
リトルコアのCortex-A53では、まず、コアの面積を減らし、配線長を短くして配線抵抗を減らしたという。Cortex-A53側も、動作周波数と電力の最適化が行なわれた。しかし、Cortex-A57のケースよりも、さらにリーク電流が少なくなるポイントが選択され、結果として1.3GHzがターゲットになった。
ビッグのCortex-A57とリトルのCortex-A53は、どちらも負荷に応じて電圧と動作周波数を切り替える「DVFS(Dynamic Voltage and Frequency Scaling)」を行なっている。20nmプロセスでのDVFSの問題は、SRAMがデータを保持できるリテンションレベルの電圧がロジックプロセスより高いこと。そのため、SRAMがDVFSで電圧を下げる場合の制約になっている。そこで、20nmのSoCでは、SamsungはデュアルレイルSRAMを採用し、ロジック回路を低電圧に下げてもSRAM内容を保持できるようにした。
GPU設計でもスペシャル設計のライブラリを採用
GPUコアは、現在のモバイルSoCでは最大の面積のIPとなっている。電力消費も大きく、最適化が重要なコアだ。Exynos 7 Octa SoCのGPUコアは20nmと14nm版のどちらもARMのMali-T760だ。ただし、20nm版の方はシェーダプロセッサが6コア、14nm版の方は8コアとなっている。
Samsungが20nmで6コア構成を選んだのは、電力枠の中で最適な性能を得られるポイントが6コアだったからだ。GPUコアの場合は、コア数を増やせば、より低い動作周波数で性能を上げることができる。そのため、特定のプロセスと消費電力枠の中で、最適なコア数が自動的に決まる。20nmの場合はそれが6コアで、より低電力な14nmでは8コアだったことになる。
GPUコアでは、物理設計での低電力化も行なわれている。Samsungによると、ARM GPUコアでは、通常、FlipFlopsがダイナミック電力のうち36%を消費しているという。そこで、新たに低電力FlipFlopセルを開発して、この部分の電力を30%にまで減らしたという。また、FlipFlopsの集中を抑える設計最適化を行なうことでも、ダイ面積の有効活用をできるようにした。
こうして概観すると、Samsungが実装レベルでかなりCPUとGPUに手を加えていることが分かる。ARMのRTLにいかに手を加えるかが、ARMベースのSoCの肝心な部分であるということだ。そのため、同じARMベースのSoCでも、設計メーカーによって性能や電力に大きく差が付く。