ルネサス エレクトロニクスは9月29日、同社のCPUコアアーキテクチャ「V850」において、多様な処理を高速かつ複合的に行う制御システムに対して、それぞれの処理に適切なCPU時間を割り当てるとともに、制御処理間の干渉を低減する仮想化技術を開発したことを発表した。

これにより、特に複合的な処理を行う大規模な制御システムにおいて、1つのCPUコア上でのソフトウェア構成の自由度を向上させ、スムーズな機能の分散・統合を可能とするなど、ソフトウェア開発の効率化が可能になる。

システムの高機能化や複雑化が進む現在、それにともない制御システムそのものが大規模化することも多いため、複数の制御システムに分散させてそれぞれを協調させるなどの手法が用いられている。こうした手法では、従来、ソフトウェアによる分割・統合を行うか、複数のハードウェア(CPUコア)を用意し、制御システムを個別に割り当てていた。しかし、ソフトウェアによる統合は、時間管理やプログラム切り替えなどCPUの処理時間が余分に必要となるため、リアルタイム制御には不向きだったほか、ハードウェアを複数用意する場合は、ソフトウェア開発の過程で制御システムの数が増減する場合があるため、最適なハードウェアの事前調達が困難という課題があった。

このため、複数の制御システム間での干渉が少なく、独立性を維持したまま処理を実行可能であること、また容易に品質保証することができるとともに、開発過程でのソフトウェアの変更や、複数の派生品の並行開発のために、ソフトウェアの配置を柔軟に変更できる開発環境が求められているほか、マルチコア化にともなうソフトウェアの並列動作を前提とし、要求していた並列度を柔軟に変更できるハードウェアの要求ニーズが高まりを見せている。

同社では、これらの課題解決に向け、今回1つのCPUで複数のシステム制御を相互干渉なく並行実行可能な仮想化技術を開発したという。具体的には大きく3つの技術が用いられている。

1つ目は「ハードウェア・スケジューラにより複数のリアルタイム制御を並行実行」であり、プログラム実行に必要不可欠な汎用レジスタ、システム制御レジスタなどを、ソフトウェアの実行単位であるスレッドごとに複数持ち、クロックごと毎に実行するスレッドを切り替えることで、複数のスレッドを並行実行するマルチ・スレッディング技術を開発した。

スレッドの切り替えはハードウェア・スケジューラによって自動で行われ、スレッドごとにあらかじめユーザによって割り当てられたCPU時間を提供。これにより、従来は不可欠であった時間管理やプログラム切り替えにかかるCPUの処理時間が不要となるため、定時性を損なわないまま、ユーザのニーズに応じた任意の周波数性能の複数のリアルタイム制御システムを並行実行することが可能となる。

2つ目は「単一のCPU上で複数の仮想CPUを構成」。これはアドレス空間や、割込み処理の管理方法を拡張するハードウェアを開発し、単一のCPU上で複数の仮想CPUを構成可能としたもの。

アプリケーションソフトのコード領域やデータ領域などのメモリ資源は、仮想CPU間での論理アドレス重複やメモリ資源の誤操作を防ぐアドレス変換機能により、適切に分離。また、割込み優先度の管理も仮想CPUごとに独立して行うことが可能となっている。仮想CPUには、単一または複数のスレッドを割り当てることができるため、リアルタイムOSなどのシンプルなOSでは、1仮想CPUあたり1スレッドを割り当て、マルチ・スレッド対応機能を備えた大規模なOSでは、1仮想CPUに対して、複数のスレッドを割り当てることが可能となっている。

3つ目は「スレッド間の干渉を低減するバス・システム」で、バスに接続されたメモリ(ROM/RAM)や主要な周辺装置などへのアクセス経路におけるスレッド間の干渉を最小限に抑えるとともに、各スレッドのI/Oアクセスによって引き起こされる定時性を確保可能なバス・システムを搭載したことで、制御システムにおけるI/O仮想化を支援することが可能となった。

これらの技術を組み合わせることで、単一のCPU上で複数の仮想CPUが利用可能となり、それぞれの仮想CPUで異なるOSを動作させ、独立した制御システムを同時並行的に実行することが可能となる。そのため、複数の制御システムの分割・統合時、あるいは大規模制御システムの開発時に発生する、各制御システムの変更と再検証、統合前後における細粒度の時間管理の乱れ、時間管理のためのソフトウェア・オーバーヘッドといった課題を解決することができるようになると同社では説明している。

結果として、最適なコストで複数の制御システムの分割・統合が実現できるようになるほか、仮想的なマルチコア構成における仮想CPUの個数と周波数性能の組み合わせ自由度が高くなるため、実装箇所、実装面積などの基板に合わせた設計が可能となる。そのため、同社では同仮想化技術のCPUアーキテクチャのスケーラビリティを向上させることで、カスタマの柔軟な開発体制に対応を図っていくことを目指し、次世代のV850に応用していく予定としている。