ルネサス世界初28nm車載マイコンサンプル出荷

ルネサスエレクトロニクスは2018年3月28日、車載マイコンRHファミリに28nmプロセス採用マイコンのサンプル出荷を開始しました。従来の40nmに比べ、高性能、低消費電力で大容量フラッシュメモリ内蔵の世界初、世界最高性能のルネサスオリジナルコアマイコンです。

ルネサスマイコンの命名則

車載マイコンRHファミリは本ブログ対象外です。しかし、車載マイコンが、全てのマイコンを引っ張って発展させているので、注目しています。ここでは、ルネサスマイコンの名前の付け方を簡単に説明します。

先頭に「R」が付くのが新生ルネサス誕生後に発売のマイコンです。汎用マイコンが、図のRL78、RX、RZの3ファミリ、車載アプリケーション特化マイコンが今回発表のRHファミリです。

一部例外はあるものの、殆どがルネサスオリジナルのNon ARMコアマイコンです。

ルネサス汎用マイコン
ルネサス汎用マイコンファミリ。用途、性能に応じてRL78、RX、RZと3ファミリある。(出典:汎用マイクロコンピュータラインアップカタログ)

汎用マイコンだけでも、用途や性能(ルネサスはソリューションと呼ぶ)に応じてRL78、RX、RZと3ファミリあり、さらにそのファミリの中で、RL78/G1x、RL78/F12など細かくシリーズに分かれた名前構造なので、解り難いです。

ちなみに本ブログ対象はRL78ファミリですが、RXも対象に入れるか検討中です。個人レベルでも開発環境を整え易いか否かが基準です。RXファミリの場合、実装メモリが大きいのに無償Cコンパイラの容量制限≦128KBがネックになっています。

他のH8や78K0Rなどは、日立やNEC、三菱電機などルネサスに統合前の各社マイコンの名称です。簡単に旧マイコン名が消える海外ベンダと異なり、旧会社のマイコン名をいつまでもカタログに記載するのも善し悪しです。

ルネサスSynergyは、これらNon ARMコアとは別に他社に遅ればせながら開発したARMコアマイコンファミリです。遅れた分、他社同様の売り方はせず、ルネサスSynergy Software Packageというルネサスが動作保証する専用ライブラリを提供し、開発者がアプリケーションのみを開発する方法で販売中です。個人レベルでは、特に価格で手を出しにくいと思っています。

28nmプロセス、大容量メモリの用途

ルネサスRHファミリで向上された性能を、具体的にどこで使うのかが解る図が、記事にありました。

大容量メモリの利用割合
大容量メモリの利用割合。アプリ増加比率よりも、データ、Safety、Security、Driversの増加比率が大きい。OTA利用により最低2面構成のメモリが必要の可能性もある。(出典:記事)

左側の色分けメモリマップから、アプリケーションのメモリ比率の増加よりも、Data、Safety、Security、Driversの増加比率が大きいことが判ります。つまり、開発するアプリケーションよりも、アプリが使うデータや安全性確保、ドライバーの増加がメモリ増大要因です。このドライバーの中にアプリが使うライブラリなども含まれると思います。

また、図では判りませんがOTA:Over-The-Airには、同じメモリが最低2面必要になるかもしれません(関連投稿は、コチラのIoT端末の脆弱性対応はOTA更新が必須を参照)。OTAに万一失敗しても、最悪更新前に戻るには、更新前と更新後のメモリが必要なのがその理由です。

いずれにしても大容量メモリは必須です。また、プロセス細分化でより低消費電力で高速動作を実現しています。
大容量メモリ実装、プロセス細分化は、車載マイコンに限った話ではありません。汎用マイコンでも同じです。

製造は、世界最大の半導体製造ファウンダリである台湾)TSMCが行うので、パソコンのCPU同様、マイコン:MCUも28nmプロセスへ一気に変わる可能性もあります。

半導体プロセス微細化の懸念

一方で、半導体プロセスの微細化は利益につながるのか2018年3月28日、EE Times Japanという記事もあります。28nmよりも先、10nm以下のモバイルプロセサでの話ですが、マイコンでもいずれ同じ時代が来るでしょう。

汎用マイコン技術は、先行する車載マイコンやモバイル半導体技術をベースに発展します。

先行の動向を知ることは、無駄ではありません。少し先を見越して、隠しコマンドなど遊び心がある工夫をソフトウェア、ハードウェアにこっそり入れておくのも開発者の数少ない楽しみの1つだと思います。

IoTマイコンとセキュリティ

NXPは、2018年3月2日Bluetooth 5/Thread/Zigbee 3.0サポートのコンシューマ/産業IoT向けセキュリティ強化ARMディアルコア(M4とM0+)搭載のKinetis K32W0x MCUを発表しました。

Kinetis K32W0x Block Diagram
Kinetis K32W0x Block Diagram

この新製品は、以前投稿したCypressのPSoC 6:Cortex-M4とCortex-M0+のディアルコア、セキュリティ強化、BLE 5サポートのCypress PSoC 6によく似た製品です。

Cypressに続きNXPもARMディアルコアを採用したことで、強固なセキュリティが必須のIoTマイコンは、シングルコアよりもディアルコア搭載が標準になりそうです。IoTマイコンのセキュリティ関連情報を調査し対処方法を検討します。

PSoC Creator 4.2

PSoC 6搭載評価ボードCY8CKIT-062-BLEPSoC Creator動画では、デュアルコアのIDEでの扱い方やデバッグ方法などがいまいち不明でしたが、最新版PSoC Creator 4.2(2018年2月13日)で正式にPSoC 6がサポートされました。コアにより別々のフォルダにソースコードを作成し、デバッガはどちらかの一方のコアに接続します。

Cypress PSoC Creator 4.2 for PSoC 6 (Source, Creator Release Notes)
Cypress PSoC Creator 4.2 for PSoC 6 (Source, Creator Release Notes)

各コアの役割や機能配分が明確でないと、シングルコアよりもデバッグが大変になりそうです。

色々なセキュリティ強化方法

今年初めから騒がれた投機実行機能の脆弱性起因の対策は、まだ収束していません。Cortex-M系コアはこの脆弱性に関してはセーフでしたが、後追いが宿命のセキュリティ対策には終わりがありません。組込みマイコンにも、常時アップデートができるOTA:Over The Air更新機能が必須になるかもしれません。

Windows更新でも失敗があることを考えると、このOTA機能はリスクが高く、マイコン処理能力や導入コストもかなり必要です。

一方Maximは、セキュア認証専用ICを1ドル未満で提供することを発表しました。言わばMCU固有の指紋を使うことで安価にセキュリティ強化が可能です。評価キットも用意されています。

NXPもA71CHで同様のICと開発キットを用意しています。

少し古い資料ですが2012年11月発表の、“つながる時代のセキュリティ、チップと組み込みOSの連携で守る”を読むと、セキュアブート、効率的な暗号化、仮想化を使ったデータ保護サブシステムをセキュアに分離する技術など、半導体チップで提供されるセキュリティ機能を最大限に活用すべきだとの指針が示されています。

MCUセキュリティ対策の費用対効果

2年から数年でハードウェアが更新される個人情報満載のスマホやユーザ自身がセキュリティ対策を行うパソコンと、組込みマイコン:MCUのセキュリティ対策は、守るべき情報内容、管理運営方法が大きく異なります。

IoTマイコンのソフトウェアやハードウェア開発能力だけでなく、導入するセキュリティ対策の費用対効果を見極めるスキルも必要になりそうです。本命がハッカー次第で変わるなど、セキュリティは厄介で面倒な技術です。

Cortex-Mシリーズはセーフ、他はアウト

新年早々、Intel、AMD、ARMなどの制御デバイス製造各社に激震が発生しました。「CPU投機的実行機能に脆弱性発見」のニュース(Intel、AMD、ARMの対応Windowsの対応Googleの対応)です。

MeltdownとSpectre
MeltdownとSpectre(Source:記事より)

※投機的実行機能:制御を最適化するためのパイプライン化、アウトオブオーダー実行などの「現代的CPU」ハードウエアに実装済みの機能。

※脆弱性:ウイルスが入る可能性がある箇所のこと、セキュリティホールとも呼ばれる。言わばアキレス腱のような箇所。もっと知りたい方は、総務省サイトの基礎知識が良く解ります。

Cortex-Aシリーズも対象、Cortex-Mシリーズは対象外(セーフ)

パイプラインやアウトオブオーダーなどの最適化機能は、殆どの制御コアに搭載されています。従って、このニュースは深刻です。ハードウエアの深い部分の脆弱性だけに、ソフトウエアのOSやパッチなどで対応できるのか、個人的には疑問ですが、セキィリティ専門家に任せるしかないでしょう。

ARMのリアルタイム系Cortex-RやCortex-Aシリーズも対象:アウト!です。
一方、本ブログ掲載のCortex-Mシリーズマイコンは、これら投機的機能が実装されていないので今回は対象外、セーフでした。

IoT端末の脆弱性対応はOTA:Over The Air更新が必須

昨年12月3日投稿のCortex-Mを用いるIoTマイコンへも、Amazon FreeRTOSなどのRTOSが期待されています。今回のような脆弱性への対応には、無線通信によるソフトウエア更新:OTA機能が必須になるでしょう(ソフトウエアには、OSとアプリの両方を含んでほしいという願望も込みです)。

時々発生する自動車リコールも、ハード起因とソフト起因の両方があります。車の場合は、ディーラーへユーザが車を持ち込めば対応できますが、組込み制御の場合は、開発者自身が動作中の現場で対応するのが現状です。今回は、Cortex-Mシリーズはたまたまセーフでしたが、同様のセキュリティ事案への対策を練る必要があると思います。

と言っても、当面できるのは、現場でIDEやUART経由の直接ソフト更新か、または、コチラの記事のような(多分高価な)パッチ配布手段しか無いかもしれません。

RTPatch適用範囲
RTPatch適用範囲(Source:記事、イーソルトリニティ)

Amazon、IoTマイコンへFreeRTOS提供

Amazon:アマゾンがFreeRTOSをカーネルにして、IoT端末とのクラウド接続、セキュリティ確保、将来的にOTA:Over The Airによるアップデート機能をライブラリで提供というニュースが入りました。

嬉しいのは、「FreeRTOS」と「OTA機能がRTOSで提供」されることです。

Amazon FreeRTOS

IoT端末とクラウドを接続するには、IoT通信プロトコルが必要です。BLE:Bluetooth Low EnergyやThreadが有力ですが、国内外の網側事情が異なるため、実質的なIoTプロトコル実装は間違いなく大変です。

もしこのIoT通信機能が、最大手アマゾンの無償ライブラリで提供され、マイコンUARTと同様にIoT Communication APIを使え、しかもセキュリティ対策済みであるならば、IoT端末は爆発的に普及するでしょう。普及の足かせとなっているIoT通信とセキュリティ問題が解決されるからです。

Amazon FreeRTOS
Amazon FreeRTOS利用イメージ (出典:記事、AWS)

現在Amazon FreeRTOSのハードウエアパートナーは、テキサス・インスツルメンツ:TI、マイクロチップ、NXP、STマイクロエレクトロニクスの4社で、NXPは、LPC54018 IoT Module、STMは、STM32L4 Discovery Kit IoT Node評価ボードでサポートするそうです。

NXP、STMいずれもかなり高性能MCU評価ボードを使っていますが、これは高機能IoTエンド端末(≒簡易スマホ)を想定しているからだと思います。FreeRTOSカーネルなので、ROM/RAMが少ない低価格IoTエンド端末にも実装できるハズです。

弊社ブログでも紹介してきたFreeRTOS自身は、様々なベンダの低価格MCUにも実装実績があります。

残念ながら弊社のFreeRTOSサンプルソフトは、NXPのLPCXpresso824-MAX上で完全動作しているとは言えませんが、近いうちにSTMのSTM32F103RB(Cortex-M3:64MHz、ROM/RAM:128KB/20KB)で再チャレンジし、新たにFreeRTOS版のテンプレートを開発できないか検討中です。

OTA機能

出荷後の組込みソフトを更新したいことは良くあります。但し、Windows更新でも失敗があるように、技術的にハイリスクで、また更新費用を顧客が負担してくれないこと(ノーリターン)も多いので、悩ましい事柄です。

Amazon FreeRTOSのOTAがRTOS関連のみか、または、RTOSにとってのアプリ、つまり開発ソフトも含むかは不明ですが、たとえRTOSのみであってもOTAが提供されれば好都合です。セキュリティ起因の不具合解消に役立つからです。

従来のベアメタル開発でもOTA関連の資料は、英語版で難解な記事はあります。しかし、私の場合は、結局現地でIDE書き換えの経験が多いです。リクスを少しでも下げたいのもあります。RTOSが機能提供してくれれば、責任転嫁(?)ですが助かります。

弊社FreeRTOSへの取組み

IoTクラウドサービスは、アマゾンのAmazon Web Services IoT:「AWS IoT」が先行し、マイクロソフトの「Azure IoT」、これらを追いかけるグーグルの「Weave」とアップルの「HomeKit」、その後ろにARMの「mbed Cloud」という状況だそうです。アマゾンは最先端を走っているのです。

先行アマゾンが2017年末に発表したAmazon FreeRTOSの詳細は不明ですが、IoT MCUのRTOSにFreeRTOSが有力であるのは、確実になりそうです。

FreeRTOSソフト開発の場合、タスク自体は簡単で単純な初期設定+無限ループ構成です。タスク同期やタスク通信にRTOS APIが使えれば、それ程難しくはないと(今は)考えています。この考え方が、タスクが増えたりプライオリティを変えたりしても正しいか、間違っているかは、実践経験あるのみです。

個人で実践できるFreeRTOS動作環境の構築が、弊社FreeRTOS版テンプレートの目標となりそうです。