組み込みプロジェクトに適したCPUまたはSoCを選択する方法

本投稿は「How to Select the Right CPU or SoC for your Embedded Project」の抄訳です。組み込みシステム用にどのような中央処理装置(CPU)またはシステムオンチップ(SoC)を選択するかが、システムの良好な動作を左右します。ここでは組み込みシステムの構築に関する私の長年の経験と他の専門家の意見に基づき、最良のCPUまたはSoCを選択するためのヒントを示します。

この記事の内容:

組み込みプロセッサとは

組み込みプロセッサとは、組み込みシステムに搭載された、システムの基本的な機能を制御する中央処理装置です。組み込みプロセッサはマイクロプロセッサの一種で、通常は機能が限られており、消費電力もわずかです。

組み込みプロセッサとマイクロコントローラーの違い

組み込みプロセッサの場合、チップにはプロセッサだけが実装されており、動作するには外部メモリやその他の外部コンポーネント、周辺装置を必要とします。マイクロコントローラーでは、メモリ、信号レジスタ、入出力ポートなど、タスクの実行に必要なあらゆるものがチップに組み込まれています。
メーカーは、プロセッサの電力を制限する必要がある場合に組み込みプロセッサを使用します。マイクロコントローラーは、スマートフォン、自動車システム、高度な医療機器を含む、組み込みシステムを装備したさまざまな製品で使用されます。

システムオンチップ(SoC)とは

SoC(システムオンチップ)は、コンピューターシステムが必要とするすべてのコンポーネントを1つのコンピューターチップに集約したものです。SoCにはCPUと、メモリ、タイマー、通信インターフェイスなどのパーツが含まれています。

CPUとSoCの違い

CPU(中央処理装置)の場合、通常はチップにプロセッサだけが実装されています。コンピューターと組み込みシステムでは複数のCPUを使用する場合があります。SoCはチップに実装されたミニコンピューターであり、すべてのコンピューティング処理を実行できますが、CPUが処理を完了するには他のコンポーネントを必要とします。
CPUが処理を行うには、メモリ、タイマー、その他のコンポーネントを含む、CPU以外のパーツを必要とします。SoCはマイクロコントローラーに似ていますが、はるかに精緻で強力です。

組み込みシステム内SoCとは

組み込みシステム内SoCとは、組み込みシステムの特定の機能またはアクションを実行するための、すべてのコンポーネントが集約されたチップです。多くの組み込みシステムが、コンピューティング処理のためにSoCを使用しています。
組み込みSoCの主要な要素としては、プロセッサに加え、メモリ、キャッシュ、タイマー、入出力ポートなどのコンポーネントが挙げられます。SoCの大きな利点は、消費電力が少なく、最終的にCPUに比べて安価なソリューションになり得ることです。
SoCでは多くの場合、CPUと追加コンポーネントよりも、また組み込みシステムで複数のCPUを使用するよりも、消費電力が大幅に少なくなります。組み込みメーカーは、スペースをほとんど取らない自己完結型の強力なプロセッサを必要とする場合に、SoCを使用しています。
SoCには必要なすべてのコンポーネントが揃っているため、多くの場合CPUと追加コンポーネントよりも安価になります。Qtのシニアプロダクトマネージャー、Veli-Pekka Heinonenは、「多くのプロジェクトには制限があり、コストを特定のしきい値以下にしなければなりません。コストの面でSoCには大きな効果があります」と説明しています。
SoCを選択することによる主なデメリットは、メーカーがシステムを柔軟に変更することが制限されることです。たとえばCPUと外部メモリを使用している場合、メーカーは外部メモリの変更またはメモリ追加を決定できます。SoCの場合はそれができません。システムの大幅な変更が必要な場合には、SoC全体を変更しなければならないのです。

組み込みSoC/CPUを選ぶのは誰か

CPUやSoCは組み込みシステムのハードウェアに搭載されているため、何を使用するかを決めるのはハードウェア設計者であるべきだと考える人もいます。それでも、意思決定に設計者を関与させることは極めて重要です。
それは、組み込みシステムが最終的にどのように機能するかは、ソフトウェアの動作を含めて、CPUまたはSoCに左右されるためです。組み込みシステムは、ハードウェアとソフトウェアが緊密に連動しなければ良好に機能しません。

  • ハードウェアに関する考慮事項:ハードウェアの専門家は、CPUが消費する電力量を注視します。また全体的な演算能力と、CPUが占めるスペースについても考慮します。最終的にはコストが重要な要因になります。
  • ソフトウェアに関する考慮事項:ソフトウェアの設計者と専門家は、システム内のソフトウェアがCPUまたはSoCとどのように連携できるかに注目します。チーム全体でCPUのアーキテクチャを十分に把握したうえで、CPUと合わせて使用する開発ツールを確定することになります。最終的には、システム上でのソフトウェアの動作をチームが簡単にテストできるようになることが不可欠です。

    たとえばThe Qt CompanyのHeinonenは、ARMベースのプロセッサを使用するシステムがますます増えていると述べています。「それもソフトウェアに影響することになるでしょう。」

適切な組み込みCPU/SoCをどの時点で選択するか

CPUは組み込みシステムの基盤になっています。しかしどのCPUを使用するかは、可能な限り時間をかけて選択すべきです。それは、チームがシステム向けに開発中のソフトウェアにどのようなハードウェアが適合するか、時間の経過とともにわかってくることも多いからです。

設計者が組み込みシステム用に構築したソフトウェアが、CPUまたはSoCを購入してしまった後で適合しないことが判明するような事態は避けたいものです。メモリ、電力、パフォーマンスの点で、ソフトウェアで何が要求されるかを理解することが重要です。その上でニーズに最もよく適合するCPUを購入するのです。組み込みエンジニアが組み込みシステムを構築してソフトウェアを開発する方法をご確認ください。

セキュリティコンサルティング企業NCC Groupのハードウェアおよび組み込みセキュリティサービス担当バイスプレジデント、Rob Wood氏は、組み込みシステムの設計者がCPUまたはSoCを選択する上で重要なことについて、次のように説明しています。「セキュリティ要件を確実に理解してから選択すべきです。SoCはセキュリティの基盤になるものです。SoCの外部にあるものは信頼できません。つまりSoCのセキュリティプロパティによって、システム全体のセキュリティの状態が決まってしまうのです。新しいSoCを導入して設計を更新するには何年もかかることがあります。SoCの選択が非常に重要なのはそのためです。」

組み込みSoC/CPUの評価方法

組み込みシステムに最適なCPUまたはSoCを決定する際には、さまざまな要素の検討が必要になります。そしてもちろん、全体的なパフォーマンス、必要なメモリや周辺装置、コストも考慮しなければなりません。


CPUまたはSoCを選択する際の重要な検討事項を示します。

  • パフォーマンス:最も重要な要素はもちろん、CPUの全体的なパフォーマンスと速度です。これはCPUまたはSoCのアーキテクチャとチップの設計によって決まります。CPUが毎秒実行する命令数と、クロックサイクルごとの処理数を確認する必要があります。

    組み込みシステムとアプリケーションが良好に動作するために必要な処理能力に基づいて、CPUまたはSoCを評価します。何らかのオプションを選択した上で、必要に応じて独自のコードで試験的なシミュレーションを実行することもできます。

  • メモリ:マイクロコントローラーまたはSoCを選択した場合は、ソフトウェアが必要とするメモリが用意されているかを確認する必要があります。CPUを選択した場合は、ソフトウェアが必要とするメモリがサポートされるかを確認します。組み込みシステム内のメモリの種類や、組み込みシステム用のメモリを選択する際に考慮すべき事項については、The Qt Companyが作成した組み込みメモリガイドをお読みください。

  • 消費電力:通常は、CPUのパフォーマンスが向上すれば消費電力も増加します。一方で、必要な電力を全体的に減らすか、時間を限定して電力を減らす手法もあります。それでも、CPUまたはSoCが必要とする電力は、選択する上で非常に重要な要素になります。少ない消費電力で高いパフォーマンスが得られるCPU/SoCも存在します。

    「グリーンエネルギーが重視されるようになったことで、エネルギー消費が注目される機会も増えています」と、HeinonenはCPUとSoCの評価について述べています。

  • 周辺装置:組み込みシステムで利用される周辺装置を適切にサポートすることは、当然ながら重要です。SoCでは多くの場合、周辺装置がチップ上にあるため、外部の周辺装置に比べて電力消費とデータ転送の効率性が高くなります。

    CPUを使用していて、周辺装置が外部にある場合は、それらがCPUの処理を効率的にサポートしていることを確認する必要があります。

  • アーキテクチャ:CPUまたはSoCのアーキテクチャを理解する必要があります。そのアーキテクチャが、使用可能なオペレーティングシステムや、ソフトウェアのパフォーマンスに影響します。

  • 動作電圧:最近のコンピューターチップでは、チップの動作電圧を下げることでCPUの電力消費を減らしています。しかしそれがパフォーマンスに影響する場合もあります。高いパフォーマンスを維持しながら電力消費を抑制できるような動作電圧のCPUを選択するとよいでしょう。

  • セキュリティ:NCC GroupのWood氏が指摘するように、CPUまたはSoCを選択する際には、セキュリティが非常に重要になります。組み込みシステムでモノのインターネット(IoT)と人工知能(AI)が進化し続ければ、セキュリティ上の懸念も増大します。CPUまたはSoCに組み込まれているセキュリティアーキテクチャについて理解する必要があります。一般的な攻撃の形式を予測して防御できるアーキテクチャが確立されているかどうかを確認します。

  • 特別な処理装置:組み込みシステムでは、最高度のパフォーマンスを得るために、コプロセッサまたは特別な処理装置を使用する場合があります。携帯電話などを含め、多くのシステムではグラフィック処理装置を必要とします。そうしたコプロセッサや処理装置と適切に連動するCPUまたはSoCを選択することが重要です。

  • コスト:CPUまたはSoCのコストも、当然ながら重要な考慮事項になります。選択に伴うすべての支出について検討してください。これには、開発ツール、周辺装置、必要な電気回路やコンポーネントのコストも含まれます。さらに、選択したCPUまたはSoCに応じたスタッフのトレーニングについても考慮する必要があります。詳細については、組み込みシステムエンジニアに不可欠なスキルをご確認ください。

特定の業界向けのCPU

特定の業界における組み込みシステムで良好に機能するCPUを開発しているメーカーもあります。たとえば自動車業界では、QualcommやRenesasがプロセッサとしてよく使用されています。また医療業界ではNXP機器が普及しています。

主要な組み込みSoC/CPUの比較

Qtは、組み込みデバイスの構築方法をエンジニアが理解する上で役立つ、組み込み製品のプランニングおよび要件ガイドを作成しました。このハンドブックでは、組み込みシステムで使用される主要なSoCを詳細に比較しています。

 

  AMD Intel NXP Renesas TI
評価用基板 Kontron D3713-V4 mITX Avnet BOX NUC6CAYS AJL NXP i.MX 8 QuadMax MEK R-Car H3 Starter Kit TI AM572x EVM
SoC* AMD Ryzen V1807B Intel Apollo Lake
(Celeron J3455)
NXP i.MX8 R-CAR H3 AM5728
メモリ 4 DDR4、2 DIMM
(最大32GB)、ECCオプション
2GBオンボードDDR
(最大8GB)、32GB eMMC
LPDDR4 (x64)、 32GB eMMC 384K sys RAM、DDR4、80MBオンボードフラッシュ、8GB eMMC、microSD 2GB DDR3L、4GB eMMC、 microSD
周辺装置 HDMI、4 x DP++、4K、Vega GPU、PCIe、SATA、オーディオ、GigE、USB 3.1+2.0 HDMI、Intel HD 500 GPU、オーディオ、GigE、PCIe、SATA、USB 3.0 + 2.0、WiFi ac、BT MIPI、LVDS、4K、PMIC、GPU、PCIe、オーディオ、GigE、USB 3.0、CAN、最大4 HDMIディスプレイ HDMI、PowerVR GPU、LVDS、WiFi、BT、オーディオ、Eth 10/100、USB 2.0 7"容量性タッチスクリーン、HDMI、オーディオ、PowerVR
GPU、GigE、SATA、MiniPCIe、USB 3.0
アーキテクチャ x86-64 x86-64 ARM-64 ARM-64 ARM-32
処理能力 V1807B x 4 core @ 3.8GHz J3455 x 4 core @ 1.5GHz A72 x 2 core @ 1.6 GHz; A53 x 4 core @ 1.2 GHz; M4 x 2 core @ 266 MHz A57 x 4 core @ 1.5 GHz; A53 x 4 core @ 1.2 GHz A15 x 2 core @ 1.5GHz、 M4 x 2 core
ユースケース
電力消費 ★★ ★★ ★★★
耐用年数 ★★★ ★★★ ★★★★★ ★★★★★ ★★★★★
独自の機能 最大4ディスプレイ@ 4K NUCはミニPCであるが、SoCは組み込み互換 アクセル、ジャイロ、圧力、光センサー 自動車、EAVB、440ピン拡張 カメラオプション、
2 x C66x DSP

 

★が最もランクが低く、★★★★★が最高
* SoCには、評価用基板では未確認であった追加機能が含まれている場合があります

組み込みシステムにおけるSoCの今後の動向

組み込みシステムの処理を将来的に主導するのは、汎用的なCPUではなくSoCであると、ほとんどの専門家が考えています。高度なSoCでは、メモリやグラフィックプロセッサ、その他の重要な機能が、1つのチップに集積されるようになっています。

CPUまたはSoCを時間をかけて選択すべき理由

CPUまたはSoCを選択することは、組み込みシステムを構築する過程で非常に重要な決定事項になるでしょう。プロセッサはシステムの中でも特に高価なパーツであり、またソフトウェアと適切に連動することが求められます。選択したCPUを後で変更することになれば、多大なコストがかかります。CPUは、組み込みシステムの構築に関する、他の多くの選択に影響するためです。

組み込み開発フレームワークと組み込みテクノロジースタックとの比較

Qtは、良好に機能する組み込みシステムを開発し、またコストを抑えながら市場に迅速に参入できるように支援します。最先端の組み込みシステムを構築できる、特別なツールも提供します。それらのツールは、2D/3Dグラフィカルインターフェイスの作成から、高度に自動化されたシステムの構築まで、開発者の広範な用途とニーズに対応します。Qtを使用すれば、1つの実装でローエンド製品からハイエンド製品に至る、全製品ラインのデプロイが可能になります。
ROI推定ツールを使用すると、Qtへの移行後の投資利益率を見積もることができます。

商用ライセンスのトライアルやオープンソースを利用したい方は、ぜひQtの無料トライアルを開始してみてください!また、Qtについてご質問あり場合は、お気軽にお問い合わせください。