次のページ 前のページ 目次へ

5. CPU の選定

CPU の選定において,評価の参考になりそうな項目をいくつか挙げてみます. が,個々の条件は他の条件に依存していたりするので,「この通りに評価すれば明確に決まる」というわけではありません. おそらくは「あちらを立てればこちらが立たず」と,一種の「パズル」のような状況になると思います.

5.1 アーキテクチャの選定

ARM, MIPS, PowerPC, SH, x86 など,どの CPU アーキテクチャを選ぶか,という場合の評価基準について.

Linux ポーティングのアクティビティ

非 x86 CPU の Linux では,大抵,その CPU ごとでサブプロジェクトが存在します. が,そのプロジェクトの組織化状況や開発のアクティビティは,まちまちです. プロジェクトの web ページや開発メイリングリストのアーカイブなどを見て,参考にしましょう.

ツールチェイン

活動が活発でないアーキテクチャの場合,gcc や binutils などのバージョンアップもままならず,必要なプログラムの最新版がコンパイルできないということにもなり得ます.

安定性

Linux の場合,これはおそらく「そのシステムを使っている人の数」に依存すると思います. 使っている人の数が多ければ,それだけ多くバグレポートも上がってくるので,そのアーキテクチャでの安定性は向上すると思われます.

CPU アーキテクチャ全般に渡る特性

(PC/AT 互換の)x86 の場合,

  1. 消費電力が大きい
  2. 複雑なブートプロセス
  3. BIOS の手配
  4. リッチなコンソールデバイス
と,組み込み用途にはかなり不利な状況が揃っています.

社内実績

既にある CPU アーキテクチャで開発体制が整っている場合に,別の CPU アー キテクチャに切替えるのは,かなりの工数を必要としますし,従来の資産 (の一部)が活用できないことになります.

5.2 SoC の選定

そのアーキテクチャの中のどの SoC を選定するか,という場合について.

機能・性能

ここらは,要求条件とにらめっこすれば白黒をつけるのは比較的容易だと思います.

  1. 処理速度
  2. 消費電力
  3. I/O

社外実績

その SoC を使用した組み込み Linux ボードが既に存在するならば,それは実績と言えるでしょう. が,汎用用途のボードを外販しようと企画している場合は,逆にこれは障害ともなり得るわけで.

評価

ある程度目星を付けたのなら,SoC の評価ボードを入手して評価することにな ります. 最近は評価ボードには Linux カーネルが付属していることが多いので,実動 作に近い状態で評価することが可能です.

ここで「旧モデルのファームウェアを入れてベンチマークを取ってみよう」な どと思うかもしれませんが,我慢我慢.

まずは,nbench や netperf などのベンチマークプログラムで CPU コアの演 算性能や,I/O の性能を測定しましょう. もちろん,それ単独では「数値をどう見ていいかわからない」ということにな ると思います. 他のボードでも同じベンチマークを取り,数値を比較してみましょう.

で,違いが見えてきたところで問題となるのが「実機でパフォーマンスを必要 としているのは,どの数値なのか」というところでしょう. ルータを作ろうとしているのにハードディスクへの I/O 性能を議論しても あまり意味はありません.

つまり,評価に先だって「ターゲットアプリケーションは,どの資源の性能を 必要としているか」ということがわかっていなくてはなりません. gprof などのプロファイラを利用し,ターゲットアプリケーションが必要とし ているのがCPU 演算性能なのか,CPU からのメモリバンド幅なのか,NIC - メモリ間の DMA 転送速度なのか,…調べる必要があります. また,そのときの Linux カーネルの動作についてもプロファイルを取ってお く必要があるでしょう.

あと,「必要なデバイスが動作しているか」というのも重要なチェック項目で す. その原因は

など様々です. 特に SoC 内部のバグである場合は解決が困難なので,これだけは見極めてお く必要があるでしょう.


次のページ 前のページ 目次へ