さてそのMXCとは何か?という話である。以前こちらでもちょっと触れているが、MXCとはMobile eXtream Convergenceの略で、単純に言えばARM11 MPUにStarCore DSP、様々なRF、グラフィックなどを1パッケージとしたMCMである。CPU+DSPという組み合わせは携帯電話ではそれほど珍しくないわけだが、利点の1つとされているのが、Application Processorを別に必要としない点だ。

なぜ必要としないか?というと、BaseBand Modemの処理をほぼ完全にDSPのみで行えるために、CPUの負荷が非常に軽くて済む、という点にある。具体的にMXCで提供されるSoftware Stackをまとめた下段に表示したスライドである。ARM側にも若干Stackが搭載しているが、もっぱらアプリケーションとのAPIにあたる部分であり、ほとんどCPU負荷は掛からない部分だ。

通常携帯電話を作る場合、Baseband ModemをMCU+DSPで構成するが、この目的のCPUはアプリケーションの駆動には十分でない場合が多い。このため、アプリケーション駆動専用プロセッサを別に用意する例が多いが、MXCではこれが不要とされている

これはちょっと極端な例である。Traditionalな例で、アプリケーションとBasebandの両方がDSPを使うというケースはほとんどありえない。とはいえ、低価格向け携帯だとCPUに関してはアプリケーションとBasebandの両方が1つのCPU上で動作することになる。もっとも、これをわざわざ2つのOSに分けたりはしないと思うが

これはWCDMAとGSMのDual Band構成の例。ARM11とStarCoreの間がIPC Mutexで接続されているのがちょっと面白い

では実際に、例えばSymbian S60が搭載される場合にはどうなるか?というのが下のスライド左側である。要するにOSとネットワークサービスが皮1枚重なる程度で、あとはアプリケーションが動作するというシンプルな構成だ。では他のOSは?というと、Windows Mobileの場合が下のスライド右側であるが、ARM側のサーバの構成が若干異なる程度だそうだ。もっともこれはあくまで概略レベルの話で、以前聞いた限りでは実際はOSにあわせてStarCore側のコードも多少変化するので、構造はともかく実際のコードそのものは異なるとの事だが、そうした差異はFreescaleの提供するプラットフォーム内で吸収されるので、アプリケーション開発者は意識する必要がないのが大きなメリットとなっているとの事だ。

1つ前のスライドが元々Symbianを意識した構成例なので、Symbianの提供するミドルウェアが若干追加されているだけの違いとなっている

APIのインタフェースやドライバインタフェースがS60の場合と異なっている事が分かる