Mentor Graphicsが7月9日に発表したドイツXS Embedded(XSe)の買収は、Mentorの持つ組み込みシステム開発用のツールと、XSeのハードウェア開発ツールを組み合わせて、クルマのECU(Electronic Control Uit)やエレクトロニクスシステムのかなりの部分を設計・検証できるが、7月17日にはクルマも含めた、ヘテロジニアスのマルチコア組み込みシステムの開発向けソリューションも発表した。

これによって、クルマの場合エンジン制御から車体、ボディからインフォテインメントシステムまで、ほぼすべての機能を設計・検証できるようになる。異なるOSを搭載したアプリケーションプロセッサやSoC(system on chip)にはマルチコアが当然、集積されている。LinuxとAndroid、そしてリアルタイムOS(RTOS)のNucleusを組み込んだシステムに対応しようとするもの。これによって、クルマに搭載されるヘテロジニアスマルチコア半導体チップの開発を支援する。

今日のクルマは、エンジン制御からシャシー設計、ボディ制御などの「走る」、「止まる」、「曲がる」といったクルマの基本機能から、カーナビゲーションやAV機器などのインフォテインメント機能、衝突防止やレーンキーピングなど安全システムADASなど、至る所に半導体エレクトロニクスが使われるようになってきた。それも安く(低コスト)、早く(短納期)、高性能、低消費電力、小型といった要求が顕著になってくると、1台のクルマに、LinuxやAndroidだけではなくリアルタイムOSも載せるようになってくる。それを1個の半導体チップで実現するためにマルチコア、それもさまざまなプロセッサを載せるヘテロジニアスなプロセッサコアに対応せざるを得なくなってくる。

そのような複雑な半導体チップを早く開発しようとすると、システム設計を終え、RTL出力が得られるようになったら、続きのハードの設計工程に入ると同時にソフトの設計をシミュレーションによるバーチャルプロトタイピングによって行うことが可能になる。それを手助けするツールや、検証するためのツールなどをEDAベンダが揃えてきた。このMentorのツールは、クルマ用のマルチコアチップ設計だけではなく、チップを実装するプリント回路基板(PCB)の配線回路設計や、放熱設計、さらにはちょっとしたロジックを再構成するFPGAのデザインおよび合成、さらにはワイヤハーネス設計までツールが揃っている(図1)。

図1 XSeを買収したことでMentor Graphicsは真ん中の青い部分の行のツールを手に入れた (出典:Mentor Graphics)

図1の上の緑色のツールが17日に発表したヘテロジニアスマルチコア対応のソフト開発ソリューションである。真ん中段のハードウェアシステムの「XSコンポーネント」がXSe社から得たもの。クルマ用の開発ソフトとしてMentorはVolcanoと呼ぶECU開発ツール(いちばん右の緑のコンポーネント)を出していた。これはAutosar 4.0に完全準拠した、拡張可能なミドルウェアである。今回のヘテロジニアスコアをサポートするソリューションにも、Volcanoは含まれている。

今回のソリューションを使う場合の設計上のメリットは多い。スマートフォンやタブレットなどのアプリケーションプロセッサやクルマ用のADASシステムでは、例えばARMのCortex-A7とデュアルコアのCortex-A15が使われることがあるが、A7とA15のような異なるプロセッサコアの開発は複雑になる。単なるデュアルコアの場合には、1つのコア向けの命令・データがもう1つのコアに影響を及ぼすかどうかを考えながらプログラムするツールはある。しかし、プロセッサコアが異なる場合、ジョブも異なるが、それらを割り付けたり、起動させる順番を決めたり、ヘテロでなければ問題にならなかったことが出てくる。このため設計に時間がかかっていた。

今回のソリューション(図2)は、いろいろな異なるプロセッサの上に複数のOSとアプリケーションをコンフィギュレーションし、1チップに集積する機能を持つ。異なるプロセッサコアで、複数のOSを効率よく起動させる。例えばユーザーインタフェースを動作させるためのLinuxベースのプロセッサを起動させOSを立ち上げた後、すぐにRTOSのNucleusを立ち上げる。Nucleusは、リアルタイムのデータを取得し制御する役割を持たせ、アプリケーションを載せる。

図2 マルチOS、ヘテロのマルチコア向けの新ソリューション (出典:Mentor Graphics)

もし、あるコアのバグによってそのコアがダウンしても、他のプロセッサコアに影響を及ぼさないように分離する機能もある。ハイパーバイザがこの分離機能を受け持つ。このため外部へのシステムに影響を及ぼすことがない。

さらにデバッグ作業では、時刻ごとに各コアの動作を捉えるように可視化しているため、バグを見つけやすい。異なるOS間の情報のやり取りをタイミングごとに見ることができる。この作業に必要なSourcery Analyzerを搭載している。

こういった機能をすべて、オープンソースと独自ソースの両環境で相互利用するための機能も搭載していく。この夏から秋にかけて製品化していくという。