技術コラム Vol.16

AI処理にも対応!高性能MCU「RA8」の概要

開発部 エンジニア / 大見

公開日: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マイコンの概要
  2. Heliumを使ってみる
  3. まとめ

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-RA8M-0A
AP-RA8D-0A
AP-RA8D-0A
AP-RA8M-0A/AP-RA8D-0A 仕様概要
項目 仕様 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. 計算1回目

  2. 計算2回目

  3. 計算3回目

  4. 計算4回目

一方、Heliumを活用すると、演算用のベクトルレジスタに加数と被加数をあらかじめ複数セットすることができ、一度の演算命令(この例では加算)で複数のデータの処理が可能となります。

Heliumを活用した場合の演算

計算1回目

Heliumを活用した場合の演算例

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命令を使って実現する場合の各コード例を以下に示します。

ベクトルの内積演算のAPIコード例(Heliumを使わない場合)
ベクトルの内積演算のAPIコード例(Heliumを使わない場合)
ベクトルの内積演算のAPIコード例(Heliumを使う場合)
ベクトルの内積演算のAPIコード例(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(またはその子会社)の登録商標です。
  • ※記載されている会社名、製品名は、各社の登録商標または商標です。
  • ※記載の内容は改良のため、予告なく変更する場合がございます。