iPhone 3GS構成
iPad発表時のサクサク動くのを見て、Apple A4はARM Cortex-A9と噂されていましたが、実際にはiPhone 3GSと同じCortex-A8が搭載されていました。
iPhone 3GSでは600MHz,iPadでは1GHzで動作しているため、単純にクロック周波数の増加によって速くなったようですね。
とはいえ、単純にクロック周波数を上げただけで、そこまで快適感が変わるとも思えません。また単純にクロック周波数を上げたCortex-A8を使用するなら、別にAppleが設計しなくても良いじゃないかと思って、そこが府に落ちませんでした。
そこでiPhone3GSの構成でどこが悪くてApple A4を作ったのかを探ることにしました。理由はAppleのiPhoneの戦略を見ていると、キチンと前回の反省点を改善してきていると思っているからです。
ではまずiPhone 3GSの構成から見ていきます。ITmediaのiPhone 3GS分解記事から参考に図を起こしてみました。iPhone 3GSで使われているとされるサムスンのS5PC100のブロック図ではちょっと分からないので個人的推測を踏まえて変えています。
大きく分けて二つに分かれているように感じました。上部(Cortex-A8が含まれる部分)はアプリケーション用、下部(BaseBand)は携帯の通話用のようです。
まず上部で何をするのかというと
- フラッシュから読み込んだアプリデータをRAMに展開して処理
- タッチパネルのユーザーインタフェース処理と画面表示
- 無線LANからダウンロードしたデータをフラッシュに保存
- GPS、電子コンパス情報をアプリに伝える
- 音声データをヘッドフォンジャックから送信
といったところでしょうか。
緑色の部分はSIMカード認証部分です。ARMのTrustZoneというセキュリティ機能に対応するための構成です。なぜここにつながっているかはCortex-A8がTrustZoneに対応しているからです。実はBaseBandの中にもARMコアが2つ入ってる(ARM926EJ-SとARM7)が入っているのですが、こちらはTrustZoneに対応していません。
次に下部で何をするかというと電話ですね。こちらにFLASHがあるのは留守番電話や通話音声メモに一時的保存用に使用するといったところでしょうか。
DDRが512MBでアプリ側より大きいのが気になりますが…。
BaseBandに使用されているInfineonのPMB8878のデータシートを見ていて思ったのですが、実はこのPMB8878だけでタッチパネルの制御、画像処理、音声制御、電話の制御など殆どの機能が実現できてしまいます。TrustZoneに対応できないことはあるにしろ、処理速度さえ足りればPMB8878だけで済んでしまうという。
上部と下部を何で接続しているのかはハッキリとわからなかったです。そこで上部と下部でどんなデータをやり取りするのかを考えてみました。
- 下部のマイクで取り込んだ音声データを上部のフラッシュに保存する
- 電話がかかってきたことを、割り込み信号を使って上部に伝え、現在使用しているアプリを中断する
といったところでしょうか。
ここまで見てきて少し余計なものが多いように感じます。BaseBand部ではグラフィックエンジンなんて使ってないし。ARMのCPUがここで3つ。WiFiとBluetoothを処理するBCM4325にもARM7TDMIが1つ入っています。CPUが4つもあるとiPhoneの消費電力が高いのも頷けますね。
やっとApple A4を作成しなければならなかったのが見えて来ました。
- バッテリーの持ち時間に悩まされていたAppleは少しでも消費電力を下げたい
- iPhone3GSでは冗長な機能が多い。使わない機能は省いて、少しでもボードを小さくしたい。
- ボードを小さくすることで空いたスペースをバッテリーに回したい
加えてiPhone上で動くアプリがわかっており、ハードとして何を備えなければならないのか、どれくらいの性能を出せば良いのかがAppleにはわかっていました。冗長部分を省く+性能をあげるためにApple A4を作るだけの価値があるってことです。
まだApple A4にたどり着いていないですが、長くなってきたので一度ここで切りたいと思います。