本初心者講座は、ルネサスエレクトロニクス社(以降、ルネサス)のArm® Cortex®-Aプロセッサ搭載マイクロプロセッサ RZファミリを初めて使うエンジニア向けの「Cortex-A|RZファミリ編」です。(注意:本講座では、マイクロプロセッサをプロセッサと称して説明いたします)
本初心者講座のゴールは次の3つです。
- マイコンとマイクロプロセッサ・RZファミリの違いを習得する。
- マイクロプロセッサ・RZファミリの機能と性能を理解する。
- マイクロプロセッサ・RZファミリの使い方を理解する。
本講座は次の5回シリーズの連載で構成されます。
第1回:RZ/Aシリーズから始めよう!
第2回:RZ(プロセッサ)とマイコンの違い
第3回:マイコンユーザーがRZファミリに移行する手法
第4回:マイコンとプロセッサの垣根を超える
第5回:RZファミリの紹介
今回は、第2回の「RZ(プロセッサ)とマイコンの違い」です。「ルネサスマイコンから、プロセッサRZへ移行する」、逆に「プロセッサRZからルネサスマイコンへ移行する」を観点として、マイコンとプロセッサの違いを深堀します。
課題
1. マイコン・RAファミリとプロセッサ・RZファミリの選定条件を学ぶ。
マイコンのRAファミリとプロセッサのRZファミリから、ユーザーに最適なものを選択する条件の4要素について学習します。
2. 演算能力と周辺機能について学ぶ。
ハードウェア的な演算能力と、搭載されている周辺機能について学習します。
3. 開発環境を学ぶ。
ユーザーがシステムをストレスなく開発するためには、開発環境が重要なポイントになります。ここでは、効率の良い、ストレスのない開発環境について学習します。
マイコンか?プロセッサか?の選定条件
選択条件の4要素
ユーザーが自分のシステムに、マイコンを使うか、プロセッサを使うかは重要な選択です。選択を間違えると、システムがアンダースペックになったり、逆にオーバースペックになったりします。演算性能に加えて周辺機能にも同じことが言えます。ユーザーはシステムのスペックに最適な演算性能と周辺機能を選ばなくてはなりません。これらの選択を間違えると、システムのスペックだけでなく、システムコスト、消費電力、信頼性などに影響を及ぼします。
一方で、統合開発環境も重要な課題です。できれば使い慣れたパソコン(以降、PC)と統合開発ツールが使えると便利です。特に、マイコンユーザーは既存の開発環境が活用できると助かります。そして、部品の価格もスペックと同様に重要項目です。
このようにして考えると、マイコンとプロセッサの選定条件は次の4要素になります。
- 演算性能
- 周辺機能
- 開発環境
- コスト(価格)
演算能力の考察
例えば、映像入出力アプリケーションにおいて、カメラから取り込まれた映像データを合成し、表示する時に、高速で大量のデータ処理が必要になります。
また、音声入力やタッチパネルでも、入力された大量のデータの高速処理が必要になります。
しかし、一般家庭で使われている家電品や健康機器、玩具などでは、それほど高速処理は必要とされません。やみくもに高速のプロセッサを使うと、消費電力が大きくなり、さらにシステムコストが上がります。
そこで、アプリケーションの性能に最適な演算能力のCPUを選択しなくてはなりません。
周辺機能の考察
マイコンでは、比較的低速や中速で動作する「カウント」「信号変換」「通信」などの汎用の単機能の周辺機能がほとんどです。一方、プロセッサに搭載されている周辺機能は特定の機能を高速で処理するのが目的です。
例えば、ルネサスのRZ/Aシリーズでは、画像処理用にVDC(Video Display Controller)を搭載しています。VDC経由で、画像をLCD(Liquid Crystal Display)に出力したり、カメラの映像データをRAMに保存したりします。
CPUは、VDCの処理中に別のタスクを処理することができ、総合的なパフォーマンスを上げる事が出来ます。
開発環境の考察
マイコンユーザーにとって、既存の開発環境(Windows® PC)が活かせると大変助かります。マイコンユーザー以外の方でも、日常使っているWindows® PCが使えるとありがたいはずです。
しかし、プロセッサの場合はLinux® PCが一般的です。統合開発ツールもPCのOSが変わると変わってきます。すなわち、マイコンか、プロセッサかで、開発環境が変わってきます。
ただし、「 第1回:RZ/Aシリーズから始めよう!」で説明しましたが、ルネサスRZ/AシリーズではWindows上でも統合開発環境は動作しますので、一概に「プロセッサにはLinuxが必要」と言うことはありません。
コスト(価格)の考察
コスト(価格)に関しては、安ければ安いほど良いのですが、性能を抑え、単価が安くなっても、その分、別の部品でシステムの性能を補うとなると、全体のコストを考える必要があります。いわゆる、BOM(Bill Of Materials)と呼ばれるものです。BOM低減も重要です。
次の章から、これらの4要素を深堀していきます。
演算性能
マイコンやプロセッサの性能を決めるポイントは、大きく分けると2つあります。
- 動作周波数
- CPUのアーキテクチャと演算ビット数
それに付随した機能として、次の2つも重要です。
- 浮動小数点演算(FPU:Floating Point Unit)
- DSP(Digital Signal Processor/ Processing)
この章では、これら4つのポイントについて解説します。
動作周波数
演算はシステムクロック(以降、クロック)に同期しながら実行されます。そのため、クロックの周波数が高ければ高いほど、一定時間内に処理できる演算が多くなり、高性能になります。
例えばArm Cortex-M33(以降、Cortex-M33)では パイプライン処理を使って、クロックの1サイクルで1命令を実行します。クロックが1MHzだと単純計算で1秒間に百万個の命令が実行されます。クロックが2倍になると、二百万個の命令を実行できます。
一般的なマイコンの動作周波数は数MHzから数百MHzです。プロセッサは数百MHzから数GHzです。アプリケーションに必要な処理速度を考えて、マイコンかプロセッサかを決めます。
CPUのアーキテクチャと演算ビット数
アーキテクチャ(Architecture)とは、演算機能を実現するハードウェアの構造や構成、方式を意味します。
ビット数は、一度に演算できるビット数(数値の大きさ)を示します。もちろん、ビット数が大きい方が高性能です。アーキテクチャを語る時にビット数も含まれることあります。それは、ビット数がアーキテクチャと併せて演算能力を表す大きな指標だからです。
一概にアーキテクチャと言っても、様々です。Cortexプロセッサに関したアーキテクチャでは、演算処理のスーパースカラアーキテクチャ、バス方式のハーバードアーキテクチャ、メモリ管理のキャッシュメモリ(Cache Memory)などが挙げられます。ここではこの3つを解説します。
(1)パイプラインとスーパースカラ
比較例としてRAファミリで搭載しているCortex-M33の3段パイプラインとRZ/A3ULシリーズで搭載しているCortex-A55(64ビット)の2way、5段パイプラインスーパースカラを挙げます。
パイプライン処理では、1命令が1サイクルで実行されます。パイプライン処理を複数個並列処理させることにより演算能力を上げる手法が スーパースカラです。
並列処理する命令は依存関係のない命令になりますので、演算能力は単純に2倍にはならず、おおよそ1.5倍になります。
図5にCortex-M33と、Cortex-A55のパイプライン処理を示します。(a)がCortex-M33で、(b)がCortex-A55のスーパースカラです。Cortex-A55では、2つの5段パイプラインを並列処理します。さらに、Cortex-A55はビット数が64ビットですので、Cortex-M33とは比べ物にならないくらい高性能だと言えます。
(2)ハーバードアーキテクチャ
ハーバードアーキテクチャとは、命令バスとデータバスが独立した構成のことです。命令フェッチとデータアクセスが同時にできるので総合的に演算能力が上がります。
最近のマイコン(Cortex-M33など)では、ハーバードアーキテクチャを採用しているものが多いため、マイコンとプロセッサの違いと言う観点では差別化されなくなっています。
(3)キャッシュメモリ(Cache Memory)
メモリのアクセス速度が遅いと、総合的な演算能力が落ちます。そのため、プロセッサでは、 キャッシュメモリ(以下キャッシュ)(*5)が採用されています。
図7にハーバードアーキテクチャに対応したデータキャッシュと命令キャッシュの例を示します。
通常、マイコンでは内蔵メモリで高速アクセスが可能なので、キャッシュの必要性は低いですが、プロセッサでは必須の機能になります。例えば、Cortex-A55には、L1キャッシュとL2キャッシュが搭載されています。(図8)
浮動小数点演算(FPU)
7.5×1018(7.5e18)のように10のべき乗で表す数値が 浮動少数点数です。マイコンでは2のべき乗で表します。フーリエ級数変換などの工学的に桁数の多い数値の演算で使われます。
図9に、仮数、指数、符号のフォーマットを示します。
アプリケーションとしては、パワートレイン、ABS、トラクション制御、3D画像処理、レーザープリンタ、デジタルカメラ、電源制御などが挙げられます。
FPUは、プロセッサに必須ですが、マイコン(Cortex-M33などのCortex-M4以降のCortex-Mプロセッサ)ではオプション機能になっています。
DSP演算
デジタル信号処理を行うために、CPUとは独立したハードウェアとして設けられた演算処理装置をDSPと呼びます。DSPは、1命令で複雑な積和演算を実行することができます。
プロセッサには必須の機能ですが、これもマイコン(Cortex-M33などのCortex-M4以降のCortex-Mプロセッサ)ではオプション機能になっています。音声と映像、センサーハブ、AIの機械学習などで、高度なセンシング、コンピューティング、およびスケーラビリティを実現するために使われています。
図10にCortexプロセッサのDSP演算命令のSMLSD命令の使用例を示します。この場合は、MLS命令とMLA命令の2つの命令をSMLSD命令1つに置き換え、各々3サイクルを短縮しています。
周辺機能
この章では、マイコンとプロセッサの周辺機能の違いについて考えます。
マイコンやプロセッサに搭載されている周辺機能は、ユーザーのアプリケーションの仕様に大きく依存します。アプリケーションで必要な周辺機能をマイコンやプロセッサに搭載して、システムの性能向上やコスト低減を図っているからです。そこで、各アプリケーションに必要とされる仕様から、周辺機能を紐解きます。
まずは、マイコンについて考えます。
マイコンの周辺機能
表1にマイコンのアプリケーション例を示します。
マイコンは汎用的なアプリケーション向けの周辺機能が必要とされます。プロセッサとは違って、高速の演算処理やデータ処理は必要なく、そこそこ高速・高機能であれば十分です。
マイコンの周辺機能を表2に示します。ごく一般的なものを示しましたが、具体的な仕様は各マイコンで工夫され使いやすい仕様になっています。
通信機能は、通信規格の数だけ種類があり、書ききれないので、ここでは代表的なものだけを挙げました。表示系は、LCDのセグメントタイプとドットタイプがほとんどですが、高機能なマイコンでは、プロセッサと同じようなパネル(TFT-LCDなど)に映像(音声+画像/動画)を表示する場合もあります。
プロセッサの場合は、これらに加えて、さらに高速・高機能な周辺機能を搭載しています。次に、プロセッサについて考えます。
プロセッサに必要な機能
もともと、プロセッサのアプリケーションは、高速演算処理を必要としており、ざっくりと3つの分野に分けられます(表3)。
①HMI、Real Time
HMIやReal Time分野では、カメラやタッチパネル、センサーからの映像データ、タッチデータ、センシングデータの処理が必要です。また、グラフィックスをディスプレイに表示する場合もあります。そのため、大量のデータを高速でReal Timeに処理し、出力する機能が必要です。
図11に、RZ/G2Eの周辺機能を例として挙げます。カメラの映像の取り込み用にMIPIとCSI-2が搭載されています。MIPIカメラのセンサーが画像をキャプチャしてCSI-2ホストに送信します。
一方、表示用としてLVDS(低電圧差動信号:Low Voltage Differential Signaling)モジュールとD-RGBが搭載されています。LVDSモジュールは、DUモジュールによって出力されたRGB信号をLVDSに変換し、FHDD(Full High Definition)に表示します。
②IoT、Industrial Ethernet
IoTでは、高速演算と高速通信が必要になるため、高速インターネット通信の機能は必須で、その他にもCAN、USBなどが必要とされます。RZ/G2Eを例にすると、USB3.0やGbit Etherが搭載されています。(図11)
③AI
AIでは、高速演算機能が必要とされます。Cortex-Aプロセッサや前述したDSPなどでも対応可能ですが、AIに特化した高速演算機能があると便利です。
ここでは、RZ/V2シリーズのAI機能を例に挙げます。RZ/V2シリーズは、RZ/G2シリーズに、AIに特化したDRP-AIというAIアクセラレータを追加したものです。これは、ハードウェアのDRP-AIとソフトウェアのDRP-AIトランスレータで実現されます。
図12は、産業カメラの例です。画像AIによる、物体検出、物体認識を使って、対象物の不良検出を行い、さらに検査装置の小型化と低コスト化と省電力化を実現しています。
開発環境
マイコンもプロセッサもシステム開発の基本要素は同じです。
①PC(統合開発ツール)
②デバッグ用プローブ
③マイコンまたはプロセッサが実装されたシステム基板
④ソフトウェアライブラリ、サンプルプログラムなど
しかし、具体的な構成要素は異なります。この章では、ルネサスのRAファミリをマイコン、RZファミリをプロセッサの例として、開発環境を比較してみます。
①PC(統合開発ツール)
前述したように、プロセッサにはPCのOSにLinuxを使わなければならないということはありません。RZファミリはWindows上で統合開発ツールを動作させることができます。さらに、マイコンのRAファミリとおなじe2studioが使えます。
また、デバイスメーカが提供する統合開発ツール以外でも、Arm Cortex用の統合開発ツールなら使用可能です。(表4参照)
②デバッグ用プローブ
デバッグ用プローブは統合開発ツールに依存しますので、ツールメーカーが推奨しているものを使います。(表4参照)
③マイコンまたはプロセッサが実装されたシステム基板
実際のシステム開発では、最初に、試作でも良いのでシステム基板が必要です。デバイスメーカでは、試作基板を制作する前に、簡単にマイコンやプロセッサを使うことができるさまざまなボードを提供しています。
図14にRZ/A2Mシリーズの評価ボードキットを示します。このキットには、MIPIカメラモジュール、ディスプレイ接続用のディスプレイ出力ボード、オンチップデバッギングエミュレータ (Segger J-Link Lite) が添付されており、 開封後すぐに評価が始められます。
④ソフトウェアライブラリ、サンプルプログラムなど
マイコンと同様に、プロセッサでもソフトウェアライブラリ、サンプルプログラムなどが無償で提供されています。例として、RZ/A2Mシリーズの ソフトウェア開発キットを紹介します。
ソフトウェア開発キットでは、RZ/A2Mシリーズの周辺機能をすぐに利用できる各種ドライバサンプルプログラムや開発にそのまま利用可能な応用サンプルプログラムを提供しています。
コスト
①単価
プロセッサは高速処理を目的としているために、マイコンよりも微細プロセスを使い、動作速度を速くしています。また、内部回路の遅延時間を最適化するなどの高度な技法を用いています。
一方で、高機能を実現するために、ALUのビット数がマイコンよりも多く、さらにスーパースカラ方式で、演算器を複数持っていますし、浮動少数点演算、DSP演算をサポートしているので、総合的に演算機能のハードウェアが大きくなっています。したがって、プロセッサはマイコンよりも価格が高くなります。
②BOM
マイコンにはフラッシュ・メモリやSRAMが内蔵されていますが、一般的なプロセッサには内蔵されていません。そのため外部に外付けフラッシュ・メモリや外付けRAM(DRAMなど)が必要です。さらに、それらの電源も必要になります。
このようにプロセッサを使ったシステムは、マイコンよりもBOMが高くなります。
「第2回 RZ(プロセッサ)とマイコンの違い」は、以上です。次回の「第3回:マイコンユーザーがRZファミリに移行する手法」では、マイコン(RAファミリ)ユーザーがRZファミリに移行する手法を7つのポイントに分けて、解説します。