RTOS、マルチコア、機能安全でIARと日立超LSIがタッグ。

IARシステムズ株式会社(以下、IAR)と株式会社 日立超LSIシステムズ(以下、日立超LSI)は、リアルタイムOS、マルチコアの実行環境、機能安全の3分野で連携する。前者は、オープン・ソースでは実現できない高性能かつ高信頼性のソフトウェア開発を可能にする世界的ツール・ベンダー。後者は、和製オープン・ソース・ソフトウェアの代表格とも言えるμITRONやT-Kernelの開発・普及推進を裏から支えてきた企業。対照的な道を歩んできた2社は、顧客ニーズを満たす新ソリューションを開発した。ここでは、連携の経緯とそれに関係する製品について話を聞いた。

メインイメージ
集合写真(左より)
IARシステムズ株式会社 マーケティング部 マネージャ 古江 勝利 氏
株式会社 日立超LSIシステムズ IoTソリューション事業部 主管技師 豊山 祐一 氏

オープン・ソース・システムを、商用ツールで担保するという選択。

ー それぞれの事業内容を教えてください。

古江(IAR):組み込み向けの統合開発環境「IAR Embedded Workbench®」と、それに付随する解析ツール、機能安全対応ツール、JTAG ICEといったツール・チェーンを提供しています。ARMに限らず、幅広いプロセッサに対応しています。最新バージョンでは、Cortex-M23、M33といったARMv8-Mのマイコンにも対応しています。

豊山(日立超LSI):日立超LSIシステムズは、日立のグループ会社として、組み込みシステムのソフト開発にもμITRONの時代から深く携わってきており、現在も主軸の一つは組み込みシステムの開発になっています。受託開発のほか、OSパッケージやミドルウェアの開発・販売、システム開発にかかわる技術提案やコンサルティングなどを行っています。私が直接かかわっているのはリアルタイムOS関連製品の開発です。

ー 連携の内容を教えてください。

豊山:「OpenTK®」、「リアルタイム・オーガナイザV」、「TRON Safe Kernel」という日立超LSIシステムズの三つの製品を中心に、サポートや拡販で協力することになりました。

ー OpenTKは、T-Kernel 2.0に準拠したオープン・ソースのOSパッケージですね。

豊山:昨年(2016年)から提供を開始しました。Cortex-Aプロセッサ向けです。日立超LSIシステムズは、日立グループとしてトロンフォーラムによるT-Kernelの開発に最初から参画しています。

ー トロンフォーラムのT-Kernelと、どこが違うのですか?

豊山:トロンフォーラムの最新版のT-Kernelは2011年に公開された2.0ですが、ARM11用です。Cortex-Aに対応していません。OpenTKには、多重割り込みやFPU対応など、T-Kernelのオプション的な機能を追加しています。TCP/IPスタックも入っています。

ー IARの開発環境は、OpenTKとどう関係しますか?

古江:OpenTKが出てきた時、開発環境の対応がGCCのみになっているところに目を付けました。ユーザーの視点に立ったとき、サポートがきちんとしている商用ツールを使いたい、という声が必ず出てきます。日立超LSIにお願いして、OpenTKをIARシステムズの環境で使えるようにしてもらいました。

ー 具体的には何を行ったのですか?

豊山:IARの環境ですぐにT-Kernelをビルドできるプロジェクト・ファイルをパッケージに入れました。さらに、IARのコンパイラを通るように手を入れました。一番多く修正したのはアセンブラの部分の記述です。IARの環境に対応した製品は、今年(2017年)の春から提供します。

ー ユーザーにはどのようなメリットがあるのでしょう?

豊山:GCCの環境は無償で利用できますが、製品のような保証がありません。ユーザーは全部自分で調べて使っていくことになるので、手間がかかりますし、スキルも要求されます。

古江:オープン・ソースのツールを使ってトラブルが発生したとき、自社で解決できる企業は問題ないのですが、そうでないところは非常にリスクが高くなります。ツールにセキュリティの問題や不具合が見つかったとき、タイムリーに修正されるのか、という問題もあります。コーディング・ルールなどの解析ツールについても、オープン・ソースの世界では、これといった定番のものが見当たりません。IARの統合開発環境は、こうした問題を解決します。静的解析アドオン(C-STAT)や動的解析アドオン(C-RUN)などのオプション機能も用意しています。

LinuxとT-Kernelが並行動作、マルチコア化と共に需要が増える。

ー リアルタイム・オーガナイザVは、どういった製品ですか?

豊山:もともと(Vの付かない)「リアルタイム・オーガナイザ」という製品を2012年に発売しました。これは、複数のCPUコアの上でリアルタイムOSのT-Kernelと汎用OSのLinuxを同時に動かすためのソフトウェアです。「リアルタイム・オーガナイザV」は、昨年発売した最新の製品です(図1)。

図1

図1:日立超LSIシステムズのリアルタイム・オーガナイザの概要。

ー どういう経緯で、マルチコア用の実行環境を製品化することになったのでしょう?

豊山:日立超LSIシステムズは、2005年からマルチコア技術に取り組んでいます。トロンフォーラムがマルチコア対応のMP T-Kernelを開発しており、日立超LSIシステムズもその活動に参加しました。2010年を過ぎたあたりから、スマートフォンにAndroidが使われるようになり、しだいにマルチコア上で組み込みLinuxを動かす機器が増えました。AndroidやLinuxを使っている顧客からは、「起動時間が遅い」、「ハード・リアルタイムの制御が難しい」という不満の声が上がっていました。日立超LSIシステムズはマルチコア上でT-Kernelを動かす技術を持っていたので、それを応用してAndroidとT-Kernelを別々のコアの上で動かす実行環境を作りました。これが最初のリアルタイム・オーガナイザです。

ー リアルタイム・オーガナイザと最新の「V」の違いは?

豊山:2012年のリアルタイム・オーガナイザに要求されたのは高速起動とリアルタイム性能でした。現在、要求されているのは信頼性とシステム保護です。Linuxは巨大なソフトウェアなので、信頼性を担保することが容易ではありません。Linuxがハングアップしたり、不具合が発生したりしたときに、機器全体が完全に停止してしまうのはまずい。そういうところをなんとか保護できないか、という要求が出ています。

ー 「システム保護」と言っているのはメモリ保護ですか?

豊山:結果的に実現したのはメモリ保護です。リアルタイム・オーガナイザはMMUによってメモリ保護を実現していました。ただし、OSのように特権レベルで動作するプログラムに不具合があった場合、MMUは無力です。そこが課題だったのですが、2年ほど前からCortex-A15やA7を搭載したプロセッサが市場に出回るようになりました。これらのコアは、ハイパーバイザを実現するための機構(Architecture Virtualization Extension:仮想化拡張機能)を備えています。この機能を使うと、特権レベルでも物理メモリ空間を仮想化できます。つまり、OSなどの特権レベルで不具合が発生しても、その影響で隣のアドレス空間が破壊されることはありません。この機能を利用して作ったのが「V」です。

ー ということは、これは仮想化拡張機能を搭載したCortex-A専用の実行環境ということですか?

豊山:そうです。一方、もともとのリアルタイム・オーガナイザは様々なマルチコア・プロセッサにも対応できます。ヘテロジニアスの構成にも対応可能です。

ー IARの開発環境と「V」の関係は?

古江:OpenTKと同じように、「V」の開発環境として利用していただきます。この話のポイントは、Cortex-Aマルチコアプロセッサのユーザには、リアルタイムOSもしくはリアルタイムOSとLinuxの両方を実装したシステムを開発する需要が多くある、ということです。そのようなシステムをオープン・ソースのツールだけで開発するのは厳しいと思います。リアルタイム性能が求められるクリティカルな部分はIARの環境で開発していただき、Linuxの部分は既存のLinux用の開発環境、GCCなどを使っていただければ、と考えています。

機能安全OSを利用するには、機能安全コンパイラが必須。

ー 最後にTRON Safe Kernelについて、教えてください。

豊山:機能安全対応のまったく新しいOSで、今年(2017年)にリリースする予定です。トロンフォーラムでオープン・ソースのOSとして開発し、それをベースに、製品版を日立超LSIシステムズが提供します。

ー 従来のT-Kernelとどこが違いますか?

豊山:機能安全認証を取得できるように、IEC 61508のSIL3に対応できる開発プロセスを踏んでOSを開発しています。さらに、機能安全に対応したプログラムを開発しやすくする機能を持たせています。

ー どういう経緯で新しいOSを作ることになったのでしょう?

豊山:3年くらい前に、T-Kernelを機能安全対応させられないか、という検討を行いました。ユーザーの立場も含めて機能安全のOSに対する要求を調べたところ、機能安全対応のソフトウェア(ユーザー・プログラム)を作ることそのものが難しい、ということが分かりました。この問題を少しでも緩和できる機能をOSに組み込めないだろうか、と考えるようになり、今のT-Kernelにそのような機能がないので、新しいOSを作る必要がある、という結論に至りました。ただ、今さら日立超LSIシステムズがオリジナルのOSを作っても仕方がありません。そこでトロンフォーラムで検討を行い、オープン・ソースの新しい機能安全対応OSを作ろう、ということになりました。

ー 機能安全対応のプログラムを開発しやすくする機能というのは何ですか?

豊山:ドメイン管理の機能です。「機能安全対応が必要な部分」と「機能安全に対応しなくてもいい部分」をOSがきちんと分けて取り扱います。こうしておくと、後者の非安全の部分は従来のソフトウェア開発の手法で作り、前者だけを機能安全開発プロセスに従って作ればよい、ということになります。

ー IARの開発環境はTRON Safe Kernelにも関係するのですか?

豊山:非常に重要なポジションにあります。そもそも、機能安全対応のソフトウェアを作るには、機能安全の認証を取得したコンパイラを使わないといけません。GCCのようなオープン・ソースのコンパイラを使う、という選択肢はないのです。そして現在、機能安全対応のコンパイラをIARが世に出しています。

古江:IEC 61508、自動車向けのISO 26262、鉄道向けのEN 50128といった機能安全規格の認証を取得したコンパイラをパッケージ化しています(図2)。認証を取得したコンパイラは、IARのもの以外にもいくつかあります。しかし、ほとんどはそのベンダーのOS製品とひも付いています。

図2

図2:IARシステムズの機能安全認証パッケージの概要。

ー 他社のOSとひも付いていないところが良かった、ということですか?

豊山:他のベンダーのコンパイラではダメ、というわけではないので、はっきりとは言いにくいのですが(笑)。今回、日立超LSIシステムズはルネサスのRXマイコンを使ってTRON Safe Kernelを動かそうとしています。RXマイコンに対応していて機能安全認証を取得しているコンパイラは? と言ったとき、一番入手しやすいのがIARの開発環境だった、というのは確かです。

ー 今回の連携に期待することは?

豊山:ユーザーの視点で考えると、きちんとした開発環境があることは重要です。IARと協力すれば、日立超LSIシステムズの製品がさらに使いやすくなると思います。日立超LSIシステムズはこれまで、オープン・ソースの環境を中心にサポートしてきており、商用ツールへの対応には弱い面がありました。その部分を強化するという意味で、IARとの連携に期待しています。

古江:Cortex-AにかかわるIARのビジネス機会は、たくさんあると考えています。Linux以外のOSをCortex-Aの上で使う需要があるのですが、リアルタイムOSやプロセッサの技術にきちんと対応できるところは意外と少ない。そこで、リアルタイムOSにフォーカスした会社と連携したい、ということで今回の話になりました。日立超LSIのパッケージ製品が売れて、IARのツールが売れて、それらを使ったユーザーが最終的に信頼性の高い良い製品を作る、という状況が実現することを期待しています。

APS EYE'S

商用ツールとオープンソース。対局する関係にありながら、両社の強みを生かした好例となった。マルチコアも一般的になり、複数のOSを組み合わせて時間をかけずにシステムを構築する環境の選択も増えてきた。こうした動きは、ユーザーにとっても選択肢の一つになるだろう。