ARMが放つ車載プロセッサ市場への刺客、「ARMv8-R」は仮想化でECU統合を実現車載半導体(1/2 ページ)

ARMが新たに発表したプロセッサアーキテクチャ「ARMv8-R」は、車載システムや産業機器の市場を意識した機能拡張が施されている。リアルタイム処理が可能なプロセッサコアとして初めてタイプ1ハイパーバイザをサポートしたことにより、1個のECUで複数の車載システムを制御するECUの統合が可能になるという。

» 2013年11月29日 12時00分 公開
[朴尚洙,MONOist]
「ARMv8-R」は仮想化でECU統合を実現

 プロセッサ市場において、今やIntel以上の存在感を見せつつあるARM。同社のプロセッサコアといえば、スマートフォンやタブレット端末に採用されているアプリケーション処理用の「Cortex-Aシリーズ」や、マイコン用の「Cortex-Mシリーズ」が、その出荷数量の伸びとともに広く知られている。

 しかしARMは、Cortex-AシリーズとCortex-Mシリーズの中間に位置する、高性能のリアルタイム処理が必要な機器向けのプロセッサコア「Cortex-Rシリーズ」も展開している。Cortex-Rシリーズは、携帯電話機のベースバンドプロセッサとハードディスクドライブやSSDなどのストレージ機器の制御などに広く利用されているが、Cortex-AシリーズやCortex-Mシリーズほどの知名度はない。

「Cortex-Rシリーズ」のラインアップと主な用途 「Cortex-Rシリーズ」のラインアップと主な用途。携帯電話機のベースバンドプロセッサやストレージ機器の制御の他、車載システムでもABS(アンチロックブレーキシステム)などの足回り系のプロセッサに採用されている(クリックで拡大) 出典:アーム

 現在ARMが展開しているCortex-Rシリーズのプロセッサコアは、2006年に投入した「Cortex-R4」をはじめ、より高い処理性能と機能を持つ「Cortex-R5」、「Cortex-R7」に広がっている。これらは全て10年前に発表された「ARMv7アーキテクチャ」に基づくものだ(関連記事:「2014年には75億台の機器市場が対象に」――ARM社が「Cortex-R」の展開を強化)。

 ARMは、このARMv7アーキテクチャを引き継ぐ「ARMv8アーキテクチャ」を2011年10月に発表している。しかしこの時に説明したのは、Cortex-Aシリーズに対応するアプリケーション処理用プロセッサコアのアーキテクチャ「ARMv8-A」だけだった。

タイプ1ハイパーバイザをサポート

「ARMv8-R」の開発を担当しているARMのChristopher Turner氏(左)とSimon Craske氏 「ARMv8-R」の開発を担当しているARMのChristopher Turner氏(左)とSimon Craske氏

 ARMが2013年10月、満を持して発表したのが、Cortex-Rシリーズに対応するARMv8アーキテクチャ「ARMv8-R」だ。ARMv8-Rでは、ARMv7アーキテクチャベースのCortex-Rシリーズとの互換性を確保した上で、新たに車載システムや産業機器の市場における需要を掘り起こすための機能拡張が施されている。2014年以降には、ARMv8-Rを用いたCortex-Rシリーズの製品が発表される予定だ。

 ARMのプロセッサ部門でシニアプロダクトマーケティングマネジャーを務めるChristopher Turner氏は、「現在の車載システムや産業機器はどんどん高性能かつ複雑になっている。さらに、自動車であればISO 26262、産業機器であればIEC 61508という機能安全規格に対応する必要も出てきている。ARMv8-Rはこれらの要求に対応できるように性能向上を図るだけでなく、リアルタイム処理が可能なプロセッサコアとして初めて、ハードウェアベースでの仮想化に対応するタイプ1(ベアメタル)ハイパーバイザをサポートした」と語る。

「ARMv8-R」はハードウェアベースでの仮想化に対応するタイプ1ハイパーバイザをサポートする 「ARMv8-R」はハードウェアベースでの仮想化に対応するタイプ1ハイパーバイザをサポートする(クリックで拡大) 出典:アーム

 従来、ARMのプロセッサコアで動作させられるハイパーバイザは、プロセッサの上層にホストOSを組み込み、さらにその上でゲストOSを動作させるタイプ2ハイパーバイザに限られていた。一般的に、タイプ2ハイパーバイザは、ゲストOS上での処理性能が大幅に低下するなどの問題があるため、リアルタイム性が求められる組み込み機器には適していない。

 IntelやAMDは、サーバ向けプロセッサにタイプ1ハイパーバイザを搭載しており、現在ではPC向けにも採用するようになっている。一方のARMも、2010年9月に発表した「Cortex-A15」以降のCortex-Aシリーズが、タイプ1ハイパーバイザに対応している。しかしCortex-Aシリーズは、一定の時間内に動作が完了することを保証するリアルタイム性を有していない。このため、自動車の運転操作系に関わる車載システムや産業機器の制御システムにCortex-Aシリーズを用いるのは難しかった。

 ARMv8-Rの最大の特徴となるのが、タイプ1ハイパーバイザを使用して1つのプロセッサコア上で複数のOSを動作させたとしても、リアルタイム性を保証できることだ。ハイパーバイザを介して、一方のOSのタスクからもう一方のOSのタスクに動作を切り替えるコンテキストスイッチにかかる時間は2〜3μsと極めて短い(40nmプロセス/動作周波数が300MHzの場合)。割り込みについてもリアルタイム性を確保している。

コンテキストスイッチにかかる時間は2〜3μsと極めて短い コンテキストスイッチにかかる時間は2〜3μsと極めて短い(クリックで拡大) 出典:アーム

MPUにより機能安全規格への準拠も可能

 また、プロセッサとハイパーバイザの間に、メモリ保護ユニット(MPU:Memory Protection Unit)が入るので、一方のOSが統括するシステムの不具合によって、もう一方のOS上で動作するシステム動作に影響を及ぼすことがない。1個のプロセッサ上で複数のOSが動作するシステムについて、ISO 26262やIEC 61508といった機能安全規格に準拠させる場合、MPUによるメモリの保護と分離は必須だ。

メモリ保護ユニット(MPU)により複数のOSが動作するシステムの機能安全対応が可能に メモリ保護ユニット(MPU)により複数のOSが動作するシステムの機能安全対応が可能に(クリックで拡大) 出典:アーム

 実は、タイプ1ハイパーバイザを使用時にリアルタイム性を確保する上で重要だったのがMPUの改良である。従来のCortex-Rシリーズでは、MPUの書き換えが複雑だったため、コンテキストスイッチに時間がかかっていた。これに対してARMv8-RのMPUは、よりシンプルな手法を採用することで、コンテキストスイッチにかかる時間を短縮している。

 リアルタイム性を確保した仮想化と強固なメモリ保護機能によって、「ARMv8-Rを使えば、1個のプロセッサコア上で複数のリアルタイムOSを走らせることができる」とTurner氏は主張する。同氏がARMv8-Rで最も期待している用途として挙げるのが、1台の自動車への搭載数が増大を続けているECU(電子制御ユニット)の統合である。現在は、1つの車載システムを1個のECUで制御していることがほとんどだが、ARMv8-Rを活用すれば1個のECUで2つ、3つの車載システムを制御できるようになるというのだ。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.