iPhone7に搭載されたFPGAの用途
Chipworkの分解レポートによれば、iPhone7にはLattice社iCE5LP4KというFPGAが載っていたらしい。iOSのファームウェアやソフトウェアならメモリに書き換えできるのに、わざわざFPGAを使っている理由はなぜか?
FPGAの用途
FPGAはプログラムの書き換えが可能で、しかもハードウェアベースなので特定用途の処理を省リソース・高速に実行できる特徴がある。
とはいえスマホで使われることは滅多にないはず。
スマホでごく一般的なやりかた、つまり書き換え可能なメモリと高性能なプロセッサを使う場合と比較したFPGAの特徴は2つ。
超低消費電力で常時オン(Allways On)
SnapdragonやA10のようなバッテリーを食うチップをスリープさせたまま、FPGAだけで単独機能することができる。たとえばスマホの画面を消している状態でも、なんらかのセンサーを制御したりできる。実際、iPhone6s以降はスリープ中でもHey Siriと呼びかけるだけでSiriを起動できる機能を専用チップで実現している。
セキュリティ(耐タンパ性)
リバースエンジニアリングを試みる場合、FPGAの中身を読み出すことはソフトウェアより格段に難しい。この特徴を利用して暗号化が必要な情報を保存する用途にも向いている。たとえばFBIの捜査協力で話題になったバッグドアプログラムを仕込んだり、Apple Payの標準NFC機能でサポートできないおサイフケータイのような特殊仕様を取り込むなど。
iPhone7のFPGAがVRやAR用途の可能性は低い
ネットで拡散している記事ーソースはおそらくフォーブス記事ーによれば、FPGAはVR(仮想現実)やAR(拡張現実)機能の画像処理に使われているのではないか、という推測があるが、その可能性は低いと思う。マイクロソフトが開発しているデータセンター向けFPGAとラティスのスマホ向けFPGAは別物。そんなに複雑な機能はできないからだ。Galaxy S5にもラティスのFPGAが搭載され、用途不明のまま、S6では消えていたから、今回も真相はよくわからないまま消えていくのだろうか。