公開日:2023/12/21
ルネサス エレクトロニクス社(以下、ルネサス社)は2023年10月に、業界初のArm® Cortex®-M85を採用したMCU「RA8シリーズ」を発売しました。
今回発表された「RA8M1」「RA8D1」は、RAファミリでは最上位のシリーズとなります。
最高動作周波数480MHzに加え、Arm TrustZoneやルネサス エレクトロニクス社独自のIP(RSIP-E51A)による強固なセキュリティのほか、Cortex-M85が搭載する「Arm Helium™」テクノロジーにより、RA6シリーズとは一線を画す性能を実現しています。
本コラムではRA8シリーズについて2回に渡って取り上げ、今回は前半としてRA8マイコンの概要とArm Heliumテクノロジーを中心に紹介していきます。
1. RA8マイコンの概要
(1)CPUの概要
「RA8M1」「RA8D1」は、32ビットコア Arm Cortex-M85を採用し、最大周波数は480MHzで動作します。CPUコアには、メモリのアクセス時間を改善するための密結合メモリ(TCM:128KB)が接続され、さらに性能を高めています。
当社でも「RA8M1」CPUを搭載した「AP-RA8M-0A」と、ディスプレイ機能も持つ「RA8D1」CPUを搭載した「AP-RA8D-0A」を発表し、2024年1月から順次発売を予定しています。
項目 | 仕様 | AP-RA8M-0A | AP-RA8D-0A |
---|---|---|---|
CPU | RA8M/RA8D | Cortex-M85 480MHz | |
FlashROM | CPU内蔵 OctalFlashROM |
2MByte 32MByte |
2MByte 64MByte |
RAM | CPU内蔵 外部SDRAM |
1MByte 32MByte |
1MByte 64MByte |
Ethernet | 10/100BASE | x1 | |
USB I/F | USB2.0 Host USB2.0 Host/Function |
x1 x1 |
|
カメラ I/F | Yuv8bit | x1 | |
LCD I/F | RGB666 MIPI DSI |
N/A N/A |
x1 x1 |
Pmod I/F | UART/SPI/I2C/GPIO | x2 | x1 |
SDカード I/F | microSD | x1 | |
シリアル I/F | SCI | 最大10ch | |
CAN I/F | CAN FD | 最大2ch | |
JTAGコネクタ | Coresight | 10pin | |
電源 | - | DC5V(I/O3.3V) |
(2)RA8シリーズの処理性能
RA8シリーズは、カタログスペックだけでも、従来のRAファミリの中で最も高性能であることは容易に想像がつきますが、処理性能を確認できるベンチマーク指標「CoreMark」「CoreMark/MHz」で比較すると一目瞭然です。
CoreMarkは、処理性能が高いほど数値が大きくなります。
詳細は技術コラム Vol.9「CoreMark®でマイコンの性能を比較!」をご参照ください。
今回は、同じくArmコアの「RA6シリーズ」とRXコアの「RX700シリーズ」を比較してみました。
CPU名(周波数) | コア | CoreMark | CoreMark/MHz |
---|---|---|---|
RA6M3(120MHz) | Cortex-M4 | 288.79 | 4.01 |
RA6M5(200MHz) | Cortex-M33 | 790.76 | 3.95 |
RX71M(240MHz) | RXv2 | 1160.36 | 4.83 |
RX72M(240MHz) | RXv3 | 1441.34 | 6.01 |
RA8M1/RA8D1(480MHz) | Cortex-M85 | 3067.2 | 6.39 |
※ルネサス エレクトロニクス社の公開情報から引用。その他数値は弊社調べ。
表から見て分かる通り、従来のRAファミリでは「CoreMark/MHz」は4.0前後だったのが、「RA8」では1.5倍以上の6.39に達し、RXv3コアをも上回る性能となっています。
また、動作周波数も480MHzとRA6シリーズの2倍以上となり、性能は大きく向上しています。
そして他のRAシリーズと同様に、Arm TrustZoneや、低消費電力機能なども実装されており、IoT分野のみならず、より幅広い分野での利用が想定されます。
(3)Arm Heliumの概要
今回、RA8シリーズに採用されたCortex-M85には、AI処理・機械学習(ML)処理・デジタル信号処理(DSP)性能を向上させる「Arm Heliumテクノロジー」(以下、Helium)が搭載されています。
HeliumはArm Cortex-MプロセッサシリーズのMプロファイル・ベクトル拡張機能(MVE)として提供され、例えばCortex-M7コアのCPUと比較した場合、AI/ML性能は約4倍も向上します。
※ルネサス エレクトロニクス社の公開情報から引用。
Heliumによる処理イメージの一例ですが、例えば、「1+2, 2+4, 3+6, 4+8」をそれぞれ行い、和「3, 6, 9, 12」を求める場合、従来のCPUならば各演算を、汎用レジスタを用いながら一つずつ行い、計4回の演算が必要でした。
従来の計算
-
計算1回目
-
計算2回目
-
計算3回目
-
計算4回目
一方、Heliumを活用すると、演算用のベクトルレジスタに加数と被加数をあらかじめ複数セットすることができ、一度の演算命令(この例では加算)で複数のデータの処理が可能となります。
Heliumを活用した場合の演算
計算1回目
2. Heliumを使ってみる
Heliumを使用するには専用の処理命令(以下、Helium命令と記述します)をCPUに指示する必要があります。
今回は弊社のAP-RA8M-0Aと開発環境にIAR社のEWARM(v9.40)を使用して、複雑な演算処理を行い、Heliumの有無でパフォーマンスが変わることを確認してみます。
(1)検証に使う演算について
パフォーマンスを測定するにあたって行う演算ですが、ベクトルの内積(ドット積)を行うこととします。
ベクトルの内積は、a, bという二つの同じ長さのベクトルに対し、以下のような計算です。
a=(a1, a2, a3, …, an)
b=(b1, b2, b3, …, bn)
a・b = (a1 * b1) + (a2 * b2) + (a3 * b3) + … + (an + bn)
上述の演算について、Helium命令なしで実現する場合と、Helium命令を使って実現する場合の各コード例を以下に示します。
Heliumを使う場合のコード内の「vldlq(~)」や「vfmaq(~)」が、Helium命令となります。
各Helium命令がどのような動きをしているかはArm社の組込み関数の紹介ページなどをご参考ください。
(2)測定結果
要素数32個のfloat型配列を2つ用意して、ベクトルの内積時の処理速度をHeliumの有無で確認しました。
Heliumの有無 | 処理時間 |
---|---|
なし | 270cycle |
あり | 158cycle |
上記の結果から、Heliumを使うだけで演算速度は1.7倍近く向上したことが分かりました。
また、データキャッシュ機能を有効にしてデータ全体のアクセス速度を上げた状態で、ベクトルの内積を演算した場合の速度は以下となりました。
Heliumの有無 | 処理時間 |
---|---|
なし | 56cycle |
あり | 36cycle |
データキャッシュを有効にするだけでも全体的に処理速度は大きく向上しましたが、その上でHeliumを使うことで演算の処理速度は50%以上高速化できることが分かりました。
3. まとめ
今回は、RA8マイコンの概要とHeliumについて紹介いたしました。
RA8シリーズはCortex-M85とHeliumテクノロジーにより、エンドポイントでのAI処理の活用の幅を広げます。AI搭載機器では、Linuxを搭載したハイエンドプロセッサやクラウドを使用するのが一般的ですが、RA8のような低消費電力で安価な高性能MCUの登場により、より身近な機器に利用できるようになると思います。
次回は、RA8サンプルプログラムなどを中心に実際の使用例を紹介したいと思います。
製品のご案内
本コラム以外にも開発にお役立ていただける技術情報をアプリケーションノートとして公開しております。
ご興味のある方は、ぜひ製品をご利用ください。
- ※Arm, TrustZone, HeliumおよびCortexは、米国および/またはその他の地域におけるArm Limited(またはその子会社)の登録商標です。
- ※記載されている会社名、製品名は、各社の登録商標または商標です。
- ※記載の内容は改良のため、予告なく変更する場合がございます。