Flexisのハードウェア構成およびS08との違い

さて、内部はどのような形になっているのだろうか。ハードウェアの構成をまとめたものが図3である。この図3からCPUコア以外は完全に同じ構成になっていることがわかる。

図3 8ビットMCUとしては、かなりI/Oデバイスの数は多目。もっともすべての機能を同時に使えるわけではない(入出力ピンが多重化されている)ので、汎用向けとしてはそれほどおかしくはないのだが

またソフトウェア開発者から見ると、純粋にコアにあわせてプロセッサライブラリを入れ替える(図4)だけで、両者を同じものとして取り扱うことが可能になっている。それでは、どうやって使い分けるか、という指針の一例として提示されたのが図5である。

図4 厳密に書くと、これはProcessor Expert(PE)の設定を変えるだけである。実際、S80とColdFire V1を入れ替えた後、PEの設定だけを変更して再ビルドすると、そのまま同じアプリケーションが実行されるというデモがTechnology Labで実施されていた

図5 詳しい数字は後ほど出てくるが、待機時の両者の消費電力は同等ながら、稼動時の消費電力がだいぶ変わってくる。価格面では図3にあるように、S08が21セントほど安い。問題は性能で、Technical Labでは加速度センサの読み取りというアプリケーションを実行し、ColdFireが桁違いにCPU性能が高いことを示すデモを行っていた。現状、S08とColdFire V1の間でパフォーマンスにかなり大きな差があるのは問題といえば問題のような気がする

一般論としては、性能が要求されない代わりにコストと消費電力の削減が求められる場合にはS08を、性能面での要求が厳しい場合にはColdFire V1を使い、Seamless Upgradeが要求されるケースでは両者を使い分ける、ということになる。このSeamless Upgradeのシーンの一例として出てきたのが図6と図7である。CMOSカメラをI2Cバス経由で接続し、画像を取り込んで動きなどを判断、必要に応じて警報を鳴らしたり上位ホストに通知を行うといったアプリケーション例だ。

図6 さすがにS08の能力ではVGAで30fpsというのは論外だろうが、QVGAを2~3fps程度で処理する程度のことは可能だろうし、ある種の監視カメラであればこれでも十分な性能である

図7 ただもう少し汎用的に使うには、性能の向上は必須である。モータ制御まで入るかどうかはともかく、ColdFireであればQVGAで15fps程度の処理は十分射程内に入る

カタログを見る限りではS08を使おうがColdFireを使おうが大きく差は出ないが、ColdFireを使えば処理性能にゆとりが出るから、より多くの画像エリアをより高速に判断したり、必要なら監視カメラの首振り制御を行うといった余力が生まれる。このため、上位モデルでは多少価格を上乗せすることは可能だし、これは利幅を多く取ることに繋がるというわけだ。

この場合、モータ制御部は新規追加になるが、そのほかのハードウェアはローエンド品とハイエンド品で共通なので、ハードウェア開発をまとめて行うことも可能だ。またソフトウェアの側も、基本的な部分は共通化できるので、2種類の製品を開発したからといって開発費は2倍にはならない。大雑把に言えばまずハイエンド品を開発し、そこから不要な機能を落す形でローエンド品を開発できる。ハードウェアもCPU以外は共通化できるわけで、結果として開発コストを抑えつつ、製品ラインナップを増やすことができる。この場合、ローエンド品は原価をぎりぎりに抑え、ハイエンド品でマージンを稼ぐといった形で製品展開を行うことで、開発コストの回収が容易に行いやすいというわけだ。