4
テスト環境
複雑なテスト環境
graph_name
PC
PC 開発環境
RTOS
ソース
アプリ
ソース
コンパイラ-
単体テスト
Win OS
EB
評価ボード
テスト対象
I/Oエミュレータ
デバッガ
PC接続
PC->EB
PB
製品ボード
テスト対象
I/O電子回路
物理接続
疑似I/O
測定器
EB->PB
組込みテストの課題
エッジ系ソフトのテスト
製品個別のハード対応
CPU命令とI/Oが製品毎に異なる
テストベッド,テストハーネス
組み合わせで多様
多様な専門知識が必要
リソース共有ができない
統合ECUでは? テスラに学ぶ
カーネルベース仮想化技術
統合ECUボードは数種類ある
能力差はあるが
KVMによりOSやアプリからは互換あり
実機ECUだけでなく,クラウドやPCでも仮想化
現在のエッジ系開発と比較し桁違いの効率
開発量と開発スピードの必要性から
KVMの歴史
QEMU:1999年 Red Hat が開発
KVM :2007年 QEMUのゲスト OS のパフォーマンスを向上
Linuxカーネルに組み込まれる 2012年
2014年,2018年 強化を続ける
オープンソース 仮想化技術のディファクト
Tesla OSは統合技術
Tesla OSは突然出現したのではない
10年以上のOSSでの実績
サポートできるエンジニアが育っていた
実績のあるソフトの組み合わせ
それを支えるエンジニア
欧米の人的資源分化
有能な人材を刈り集め活躍の場を作る
Tesla OSは仮想マシンプラットフォーム
ハードの抽象化と仮想化
仮想化ネットワーク
柔軟な構成が可能
この特性で,3種のボードをOSがサポート
BSWとは柔軟性の桁が違う
仮想マシンプラットフォーム
CPUの持つハードウェア仮想化技術
KVMはQEMUを使ってホストマシン以外もサポート
仮想メモリ管理
仮想ネットワーク
仮想ネットワーク
仮想プロットフォーム内に高速NET
構成要素
「仮想NIC」・・・・VM(*3)に接続された NIC
NIC Network Interface Card
「仮想スイッチ」接続のための L2 スイッチ
「物理NIC」プラットフォーム外接続
開発とテスト
現在のKVMはKVMの上にKVMが可能
つまりクラウド上のKVM(開発テストのホスト)
任意のチップ仕様でターゲットKVM
実機テストもクラウドと実機接続で
tesla 追従の課題
技術的にはOSSなので,
キャッチアップは難しくない
問題は人的資源
特に,保有エンジニアのスキル変換
現 製品ごとの作業分業
専門技術の分業へ
リアルタイムのトレンド
4.1
VMPFとリアルタイム制御
tesla OSのメインはVMプラットフォーム
リアルタイム制御もゲストVMで残る
イベント処理を別VMにするのでより高信頼化
確定論処理の徹底,RTOS機能の活用
tesla はQNXをベースにしている
マイクロカーネル方式が幾つか乗っている
組込みモダン技術
リアルタイム制御での変化は
プリエンプション
メモリ保護
テスト,開発での変化は
QUME仮想化
LLVMの動的サニタイザー
4.2
プリエンプション
プリエンプション(preemption)
リアルタイム制御への導入は,
周期タスクの実行優先度制御です.
何に使うのか
周期タスクの時間制約を緩和する
周期タスクの時間制約問題
一部,周期の短いタスクがあり
その時間制約のため,長い処理を分割
処理が複雑になっている
例えば,20msec と100msecの2種類
100msecタスクも20msecの制約
20msecの周期タスク 理想
割り込み処理が入るとジッター
100msec 周期タスク
時間内に終わらないので,次の20msecにも追加
分割で時間確保が大変
プリエンプション(preemption)導入
RTOS側に周期タスクの優先クラス単位にスタック確保
上位の優先クラスが実行され,終了後に再開
RTOSのプリエンプションを使うと
100msの周期タスクの制限を100ms近くまで
緩和することができる.
さらに,非同期タスク
周期タスクではなく,長期の処理
割り込みなどで,起動される優先度の低いタスク
この実装が可能
診断処理などに利用できる.
4.3
メモリ保護
メモリ保護とはRTOSの機能で
タスク単位に独立したメモリエリアを提供する
OSは実メモリとタスクへ提供するメモリの
アドレス変換機能を提供する(FWレベルで)
何に使うのか
派生開発時の想定外影響防止
リアルタイム処理の派生開発
タスク間の隠れた影響調査が困難
その調査に多大な時間を費やしている
この機能を使うと想定外の参照や更新を
動的に防げる.
他にも
テーブルやスタックの溢れチェック
共有エリア
動的メモリ(解放,確保が可能)
利用可能になった大型メモリの活用が可能
4.4
QUME仮想化
ターゲット側ではなく開発側
ホスト側でターゲットECUやメモリを仮想化
仮想化上で動作させテストが可能
Tesla OS はこれをターゲット側でも活用
チップメーカ動向
新規チップ開発時
出荷前にこの仮想環境を提供している
評価パッケージの代替えのも
RTOSメーカ動向
デモ環境として
テスト環境として
提供している
freeRTOSでも
まとめ
2つの相反トレンド
マイクロサービス化:機能の独立性を高める
1サービス:1OS>1アプリ
複雑化:クラウドとして複数のVM統合
高速通信(パッシング)
tesla-OS はこのトレンド
10年後の技術は?
RTOS/BSW
2020頃は多種多様なアプリの乗せ複雑化
仮想化技術により1RTOS 1アプリへ
安定するので開発量は減る
通信や診断やリプログなどのアプリ
仮想化フレームワーク化でサービス化
RTOS配下でなくなる
リソース制限が緩和され大量に開発
IT系に占領されそう–>組込み系の高度化