小型、強力、効率的でコスト効率の良いARMベースのボードは、魅力的なハードウェアオプションを提供
DigiKeyの北米担当編集者の提供
2016-06-21
あなたのコアコンピテンシーは何ですか? まれにしか尋ねられないこの質問は一見簡単なように思われますが、その回答は、市場における設計の失敗と成功を左右するかもしれません。 チップの集積化と商品化が進み、チップがベースにするアーキテクチャがますます標準化されるにつれて、開発のための貴重なコスト、時間、労働力を、自身のボードやそのボードの周りの他のハードウェアの設計に費やすことは、そのハードウェアで動作するより容易に差別化されるソフトウェアにリソースを集中させるのに対して、(以前は理にかなっていたとしても )もはや意味をなさないかもしれません。
ARM®ベースのシステム実装で標準化することを決定した場合、Raspberry PI Foundationのさまざまなボードのオプションは、特に少量の生産において、自身のハードウェア開発に代わる魅力的な代替品を提供します。 それらが世界中で熱心に採用されていることは、それらの複数の供給オプションと相まって、安定した入手性とコスト効率の良い価格につながっています。 複数のCPUコア世代をベースにするボードのバージョンが入手できます。また、それらは、異なる寸法および重量、消費電力仕様、クロック速度、コネクティビティ、メモリおよびその他のペリフェラル割り当てを示します。 これらのボードの標準化されたHAT(Hardware Attached on Top)コネクタおよびソフトウェアプロトコルは、さらなるペリフェラル拡張のサポートや、デバッギングおよびその他の開発サポートを提供します。 加えて、システム出荷量の増加が、ハードウェア生産の引き受けが財務的に理にかなっていることを意味する時、これらのボードのオープンソース仕様により、これは容易な移行となります。
下記の表は、この記事の残りの部分で詳述する4つのRaspberry Piボードオプションの概要を示しています。 プロセッサ性能およびその他の性能は、それらの中から選択する上での主要な基準(しかしながら、唯一の基準ではありません)であるため、この記事は、ベンチマークとなるコードサンプルやその他の評価ガイダンスをご紹介して締めくくります。
| Raspberry PiモデルA+ | Raspberry PiモデルB+* | Raspberry Pi 2モデルB | Raspberry Pi 3モデルB | |
|---|---|---|---|---|
| SoC | Broadcom BCM2835 | Broadcom BCM2836 | Broadcom BCM2837 | |
| CPU | 700MHz(32ビット)シングルコアARM1176JZF-S | 900MHz(32ビット)クワッドコアARM Cortex-A7 | 1.2GHz 64ビットクワッドコアARM Cortex-A53 | |
| (GPUフレームバッファと共有される) システムメモリ |
256MB | 512MB | 1GB | |
| USB 2ポート | 1(BMC2835から) | 4(別々のマルチポートハブICから) | ||
| 内蔵のネットワーキング | なし | 内蔵のUSBアダプタを介した10/100MbpsワイヤEthernet | 10/100Mbps Ethernet、802.11n Wi-Fi、Bluetooth 4.1 | |
| 電力定格 | 200mA(1W) | 600mA(3W) | 800mA(4W) | |
| サイズ | 2.56インチ x 2.22インチ | 3.37インチ x 2.224インチ | ||
| 重量 | 0.8オンス | 1.6オンス | ||
*販売終了品
表1:幅広いオプションを示す4つのRaspberry Piオプションの比較
上記の4つのボードすべてには、下記の共通の特長があります。
- 15ピンMIPI CSIカメラインターフェースコネクタを介したビデオ入力
- 2つのビデオ出力オプション:デジタルHDMI(1.3および1.4)とアナログコンポジットビデオ(3.5mm TRRSジャック)
- I2Sデジタルオーディオ入力
- 3つのオーディオ出力オプション:デジタルHDMIおよびI2S、およびアナログ(3.5mm TRSジャック)
- MicroSDHCスロットを介した不揮発性ストレージ
- 17個のGPIOピン、加えてHAT IDバス
- オプションのGPIOパワーコネクタを備えた、マイクロUSBケーブルまたはシリアルケーブルを介したコンソールインターフェース
Raspberry Pi(「1」)
この記事で述べているモデルA+(図1)は、モデルAの後継製品で、小型化され、コストを低減しています。モデルA自身が、当初のモデルBのコスト低減(および少ない機能の)バージョンでした。モデルA+の寸法は、2.56インチ x 2.22インチ(65mm x 56.5mm)で、この寸法は、この記事で扱う4つのボードすべての代替品がサポートするHAT(Hardware Attached on Top)アドオン拡張カードの寸法にマッチします。 この特定のボードバージョンは、4つのボードのいずれかの最少量のSDRAM(256MB)を含むとともに、単一のUSBコネクタのみを提供し、ネットワーキングサポートを内蔵していません(ただし、USBベースまたはHATベースのペリフェラルを介して両方を拡張できます)。
ここで扱うその他のRaspberry Pi 「1」オプションは、モデルB+です(このモデルは現在販売終了品ですが、その他の入手可能なモデルとの比較のために言及しています)。 そのシステムボードフットプリントは、3.37インチ x 2.224インチ(85.6mm x 56.5mm)で、モデルA+のフットプリントよりも大きいです(そして、次に取り上げるRaspberry Pi 2およびRaspberry Pi 3製品のフットプリントと同じです)。 拡張した面積は、最大512MBのシステムメモリ量、4倍のUSBポート数、および組み込み10/100Mbpsの有線Ethernetサポートで、有効に活用できます。
ところで、700MHzのシングルコアARM11 CPUが、最新のデカコアCPUベースのスマートフォンにおいて風変りに思える一方で、この同じCPUは、当初のApple iPhone®およびiPhone 3G後継製品の両方を駆動するのに多くの電力を供給したことに注目してください。 性能ニーズが少ない場合、Broadcom BCM2835が十分であり、その結果、モデルA+ボードオプションの低消費電力がとりわけ魅力的になるかもしれません。


図1:当初のRaspberry Pi設計は、700MHzシングルコアARM11 CPUを内蔵するBroadcomのBCM2835 SoCをベースにしています。 これは、より小さなモデルA+(上部の画像)とより大きなモデルB+(下部の画像)の2つのボードフォームファクタ(および機能セット)オプションで提供されます。 (Seeed Technology提供の画像)
Raspberry Pi 2
Raspberry PiモデルA+とモデルB+の両方が投入された翌年に発売されたRaspberry Pi 2モデルBは、より大きなその先行製品の寸法を保持し、進化的な機能セットの2つの主要な観点で際立っています。 1点目は、モデルB+と比べて、システムメモリ量が最大1GBと2倍になっています(そして、モデルA+ SDRAM割り当ての4倍になっています)。 2点目は、そしてさらに重要なことに、BroadcomのBCM2835からBCM2836に移行し、200MHz CPUクロック速度の向上と、シングルコアARM11からクワッドコアARM Cortex®-A7への進化につながっています。
GPUは同じままです。これは、(CPUの十分な処理「力」の欠如が過去に障害でなかった限り)Raspberry Pi 2が、より高いグラフィックスおよびビデオフレームレートを必ずしも駆動するわけではないことを意味します。 しかし、処理「力」といえば、このたびのCPUアップグレードは多くの場合、まもなく詳述する理由で、アプリケーションの実行時間速度において大幅な向上を意味する可能性があります。 また、前述の内容に関連して、64ビットCPUが現在、エントリレベルのスマートフォンでもますます多く使用されていても、クワッドコア32ビットCPUを自動的に軽視することはできません。 結局のところ、ARM Cortex-A7の800MHzデュアルコア実装は、iPhone 4Sで使用されました。

図2:Raspberry Pi 2モデルBは、そのRaspberry PiモデルB+先行製品の寸法を保持していますが、900MHzクワッドコアARM Cortex-A7 CPUを含むBroadcom BCM2836にアプリケーションプロセッサをアップグレードしています。 (Seeed Technology提供の画像)
Raspberry Pi 3
そのRaspberry Pi 2先行製品の足跡をたどり、1年後に発売されたRaspberry Pi 3モデルBは、BroadcomのアプリケーションプロセッサをBCM2836からBCM2837へとさらに進化させ、900MHzクワッドコアARM Cortex-A7、32ビットCPUから、64ビット対応1.2GHzクワッドコアARM Cortex-A53への進化につながっています。 BCM2837内のGPUコアであるBroadcomのVideoCore IVは、機能的に未変更のままですが、そのクロック速度は、3Dグラフィックス処理向けに300MHzに向上し、ビデオ処理向けに400MHzに向上しています。 後者の性能の向上は、H.264(MPEG-4 AVC)ハイプロファイルコンテンツのフル1080p 60Hzエンコーディングおよびデコーディングを実現します。 GPUのより幅広い重要性、それによるこのSoCおよびボード世代でのクロック速度の増加については、まもなくさらに検討します。

図3:Raspberry Pi 3は、その先行製品のフォームファクタ互換性をさらに拡張させ、Broadcomの1.2GHz(および64ビット)クワッドコアARM Cortex-A53ベースのBCM2837へとSoCを一層アップグレードさせています。 (Seeed Technology提供の画像)
また、Raspberry Pi 3モデルBでは、含まれるコネクティビティ技術オプションへの顕著な強化を行っています。 10/100Mbps有線Ethernetが再度提供され、このたびは2.4GHzのみの802.11n Wi-FiとBluetooth 4.x性能によって補完されています(その両方とも、前世代のボードでそのWi-FiとBluetoothをサポートするために追加のペリフェラルを必要としました)。
では、どのプロセッサが最善ですか?
この記事の前のセクションで示したように、CPUクロック速度、コア数および機能セット性能は、当初のRaspberry Pi、「2」および「3」世代間の主要な差別化要因です。 Raspberry PiモデルA+およびモデルB+内のARM11は、比較的容易なインオーダー8ステージパイプライン設計で、制限されたアウトオブオーダー命令完了サポートを備え、ARMv6命令セットを実行します。 最大700MHzで実行するように指定されているにもかかわらず、ユーザーは、それを800MHzにオーバークロッキングするのに成功することをレポートしています。また、この特定のコア実装には、アーキテクチャのオプションの浮動小数点ユニット(FPU)が含まれます。
また、ARM11の後継であり、Raspberry Pi 2モデルBで使用されているARM Cortex-A9は、基本的に32ビットアーキテクチャです。 BMC8285と同様に、BMC3286は、多くの場合、オーバークロック(このたびは900MHzから1.1GHz)時に安定していることが分かっています。 ARM Cortex-A9アーキテクチャは、ARM11から顕著に進化しており、アウトオブオーダーで予測可能なスーパースカラ8ステージパイプラインを提供します。 ARM Cortex-A9は、後継のARMv7-A命令セットを実行します。また、BMC3286で使用されているコア実装には、オプションの浮動小数点(ARM11で使用されているバージョンに比べて向上)および「NEON」SIMDコプロセッサが含まれます。 もちろん、BMC3286は、先行のBMC3285でわずか1つのプロセッサコアに対して、4つのプロセッサコアを組み込んでいます。
最後に、Raspberry Pi 3モデルBで使用されているクワッドコアARM Cortex-A53があります。これもまた、8ステージパイプラインプロセッサで、2ウェイのスーパースカラ実行パイプラインを備えており、このたびは、最新世代ARMv8-A命令セットをサポートするフル64ビット実装です。 NEON SIMDおよび浮動小数点コプロセッサ(両方とも、ARM Cortex-A9で使用されている実装に対して、再度強化されています)は、再度利用可能です。 また、BMC3286が最大1.1GHzで、そして仕様外のオーバークロック構成で動作するに過ぎない一方で、BMC3287は、複数のユーザーがレポートしたように1.4GHzへの安定したオーバークロックを実現し、1.2GHzでの動作が保証されています。
どのプロセッサのオプションを選択すべきでしょうか。 その回答はアプリケーションに依存するため、読者により異なります。 一方で、特に、予測できる今後のソフトウェアの進化のためにいくらかの性能の「ヘッドルーム」を取っておくことを望む場合は、ニーズには遅すぎるであろうCPUを選択することは望みません。 その一方、必要とするよりもはるかに多くの性能を持つプロセッサの費用を支払うのは理にかないません。その選択が、価格に影響を及ぼすだけでなく、消費電力にも影響が及ぶことに注目してください。 CPUは、あるRaspberry Piボードよりも別のRaspberry Piボードを選択するほうが望ましい唯一の理由ではありません。メモリ要件、ネットワークコネクティビティオプション、およびその他の属性を考慮に入れる必要があります。
また、より高いクロック速度は、ソフトウェアが、アイドルループでそのほとんどの時間を入力の待機に費やす場合、ほとんど重要ではないかもしれません。 また、スーパースカラやアウトオブオーダーサポートなどの高度なアーキテクチャ機能は、ソフトウェアでの命令対命令の依存が低い場合のみに、顕著に高い達成可能なIPC(クロックあたりの命令数)につながるに過ぎないことにご留意ください。 同様に、スレッド独立の不足は、よりシンプルなシングルコアの代替に対して、マルチコアCPUのよくても制限されたスループットの利点につながり、64ビット命令セットの理論的な利点は、(メモリフットプリントのより大きな需要は言うまでもなく)特定のアプリケーションでは効果を発揮しないかもしれません。 逆に、ARMv8命令セットに見られるAArch32の向上点は、ARM Cortex-A53が32ビットコードを実行している場合のみでも、性能を向上する可能性があることにご留意ください。
グラフィックスの強化
もう1つの利用可能なオンチップ処理の機会は、SoC選択プロセスをさらに複雑にします(または見方によっては選択プロセスを解放します)。 概念的には、グラフィックスプロセッサ(またはこの場合はグラフィックスコア)を、ピクセル処理タスクに最適であり、かつさまざまなより幅広いデジタル信号処理やその他の動作向けの超並列処理「エンジン」とみなすことができます。 GPGPU(汎用グラフィック処理ユニット)として知られるテクニックは人気が増していますが、ハードウェアの可能性を解き放つためにソフトウェアサポートが必要です。
残念なことに、この記事で述べているBroadcom SoCの3世代すべてに使用されているVideoCore® IV GPUは、(少なくとも現在は)OpenCLをサポートしていません。このOpenCLは、異質並列プログラミング向けのプログラミング言語およびAPIのオープン規格セットで、Khronos Groupによって維持されています(Raspberry Pi 2および3での既存のOpenCLサポートは現在、CPUのさまざまなリソースの利用に限られています)。 しかし、2014年10月のオープンソースフォームで、VideoCore IV仕様のフルセット(PDF)をBroadcomがリリースした時、汎用でGPUにアクセスし、GPUを利用する代替手段を提供しました。
たとえば、Raspberry Piの愛好家であるPete Warden氏(また、Googleのリサーチエンジニアでもあり、後にGoogleによって買収されたJetpacの元創立者兼最高技術責任者)は、VideoCore IVで使用されているQPU(SIMDクワッド処理ユニット)向けのアセンブラ/逆アセンブラとともに、彼の以前の会社のDeep Belief Deep Learning SDKを使用してオブジェクト認識動作を大幅に加速化するためにGPUを使用する方法を見つけ出しました(彼のソリューションについては、https://petewarden.com/2014/08/07/how-to-optimize-raspberry-pi-code-using-its-gpu/を参照)。 また、このオープンソースコミュニティは、FFT処理の性能を向上するために、それらの同じQPUを使用する方法を見つけ出しました。 また、多くの場合Githubホストオープンソースコード例を含むその他の多くのプロジェクト例が存在します。たとえば次のようなキーワード検索を使用して、それらを明らかにすることを提案します。
- "Raspberry Pi GPGPU"
- "Broadcom VideoCore IV GPGPU"
- "Raspberry Pi OpenCL"
- "Broadcom VideoCore IV OpenCL"
カメラおよび結論
Deep Learningのパターン認識性能は、私が執筆した最近の記事が示しているように(そしてPete Warden氏のプロジェクトが実証しているように)、さまざまな画像解析アプリケーションに顕著に適用できます。 しかし、どのようにして、それらの画像をボードに読み込むのでしょうか? 1つの人気のあるオプションがMIPI CSIベースのRaspberry Piカメラモジュール(図4)です。これは、OmniVision TechnologiesのOV05647 5Mpixel CMOS画像センサをベースにしています。 たとえ、Deep Learningに興味を持っていなくても、Raspberry Piボードは、特に、OpenCVオープンソースコンピュータビジョンライブラリコミュニティによって熱心に採用されていることを考慮すると、コンピュータビジョンアプリケーション向けの優れたオプションであることにご留意ください。

図4:Raspberry Piカメラモジュールは、この記事で述べているすべてのRaspberry Piシステムボードに固有のMIPI SPIインターフェースを内蔵しています。その5Mpixelの解像度は、多くのコンピュータビジョンタスクに十分です。
より一般的に、オープンソースの採用や組み込みのために、多くのソフトウェアオプションが利用できます。Wikipediaのエントリの長いリストは優れた出発点です。 同様に、ソフトウェアシミュレーションは、どのBroadcom SoC世代(したがってRaspberry Piボード世代)を選択したほうがよいかについて初期の洞察を提供できる一方で、これらのボードは、それぞれ1つを購入して、実践的な評価を行えるほど十分低コストです。フォームファクタの互換性があるRaspberry PiモデルB+、Raspberry Pi 2モデルBおよびRaspberry Pi 3モデルBは特に、ハードウェアスワップアウトおよびソフトウェアトライアウトに適しています。
最終的には、楽しむことを忘れないよう奨励します。 Raspberry Piコミュニティの規模、多様性およびエネルギーは時には圧倒的な量の情報を生み出すかもしれない一方で、ほんの少しのリサーチでも、迅速かつ着実に、そしてコスト効率よく次期設計を市場に投入できる貴重な情報を素早く見つけ出すことができます。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。

