LSI IP デザイン アワード 応 募 書 類 表 紙 ( 企 業 ) タイトル: 技 術 分 野 : 応 募 者 : 所 属 機 関 : オープンソース 保 護 OS:メモリ 保 護 と 時 間 保 護 を 有 する 自 動 車 向 けリアルタイム OS 自 動 車 制 御 用 OS,リアルタイム OS, メモリ 保 護, 時 間 保 護 服 部 博 行, 大 西 秀 一, 片 岡 歩, 松 原 豊, 高 田 広 章 株 式 会 社 ヴィッツ, 名 古 屋 大 学 情 報 科 学 研 究 科 1. 研 究 開 発 の 目 的 狙 い 自 動 車 が 搭 載 している ECU ( Electronic Control Unit ) の 数 は 年 々 増 加 し 国 内 の 最 高 級 乗 用 車 が 搭 載 する ECU はついに 100 個 に 達 している このように ECU 搭 載 数 が 増 加 している 理 由 として 自 動 車 に 求 められる 利 用 者 の 要 求 が 年 々 向 上 しているためである すなわち 自 動 車 はより 安 全 に より 快 適 に かつ 環 境 にやさしくい 機 能 および 性 能 が 求 められている この 要 求 を 満 たすために 自 動 車 の 各 制 御 に ECU を 利 用 して 細 密 な 制 御 を 実 現 し かつ 相 互 に 情 報 を 交 換 することにより 連 携 のとれた 制 御 を 実 現 して 自 動 車 に 求 められる 要 求 に 対 応 している 一 方 で ECU の 増 加 に 伴 い 車 両 内 での ECU 搭 載 空 間 が 枯 渇 し 搭 載 限 界 に 達 している また ECU 個 数 の 増 加 に 伴 い ECU 間 を 接 続 するワイヤーハーネスの 増 加 とその 重 量 増 さらに 通 信 接 続 性 の 問 題 や ソフトウェア 開 発 量 の 爆 発 的 な 増 加 など 多 くの 問 題 を 抱 えるようになった これらの 問 題 を 解 決 及 び 軽 減 する 方 法 として ECU 統 合 は 不 可 欠 であると 考 えられており 事 実 国 内 自 動 車 メーカでは 一 部 の 製 品 において ECU 統 合 を 実 施 している 本 研 究 は この ECU 統 合 を 安 全 且 つ 容 易 に 実 現 できる 機 能 であるメモリ 保 護 と 時 間 保 護 を 研 究 し かつ 保 護 機 能 を 有 したリアルタイム OS を 開 発 することにより 自 動 車 制 御 開 発 が 抱 える 問 題 を 解 決 および 改 善 するとともに 自 動 車 制 御 業 界 へ 貢 献 することを 目 的 としています 2. 研 究 開 発 の 概 要 1) 利 用 分 野 : 統 合 自 動 車 制 御 用 電 装 部 品 2) 特 徴 :ECU 統 合 を 安 全,かつ, 容 易 に 実 現 可 能 なリアルタイム OS の 研 究 および 開 発 3) 種 類 :ソフト VC 4) 規 模 :メモリ 保 護 OS 7,655 byte (ROM コードサイズ;M32R-Ⅱ) 時 間 保 護 OS 25,217 byte (ROM コードサイズ;M32C/100) ルネサステクノロジ 製 M32R/M32C および 同 社 製 コンパイラを 使 用 5) 性 能 :メモリ 保 護 OS の RAM メモリ 必 要 量 116 byte, ROM メモリ 必 要 量 854 byte 時 間 保 護 OS の RAM メモリ 必 要 量 1,198 byte ROM メモリ 必 要 量 4,006 byte 3. 訴 求 点 および 効 果 次 世 代 の ECU 開 発 でキーテクノロジとなる 保 護 OS を 世 界 に 類 を 見 ない 手 法 で 開 発 し オープンソース ソフトウェアとして 公 開 する この 保 護 OS には メモリ 保 護 と 時 間 保 護 の 機 能 を 有 し メモリ 保 護 は 欧 州 の HIS (Herstellerinitiative Software ) が 提 案 する OSEK OS Extensions for Protected Applications 仕 様 と 比 較 し より 自 動 車 制 御 に 求 められる 性 能 を 有 する 仕 様 を 独 自 に 策 定 した 同 時 に 自 動 車 制 御 で 十 分 に 利 用 が 可 能 なリアルタイム 特 性 を 確 保 するために 独 自 に 仕 様 策 定 した MPU ( Memory Protection Unit ) をマイクロプロセッサに 実 装 ( 仕 様 を 提 案 し ルネサステクノロジにて マイクロプロセッサの 改 造 を 実 施 ) して 実 現 している また 時 間 保 護 は 2 種 類 の 保 護 機 能 を 実 現 し ている 1つは HIS が 提 案 するデッドラインモニタリングで 機 能 であり HIS 仕 様 をそのまま 実 現 して いる しかし HIS のデッドラインモニタリングは 監 視 機 能 ではるが 時 間 保 護 とは 言 えない そこで 2 種 目 の 時 間 保 護 として 階 層 型 スケジューラ 型 の 時 間 保 護 を 実 装 した この 階 層 型 スケジューラは 名 古 屋 大 学 で 基 礎 的 な 研 究 を 実 施 している 段 階 であり 製 品 を 意 識 した OS に 搭 載 されるのは 他 に 例 がない これらの 開 発 成 果 は 単 なる 研 究 に 留 めるのではなく 実 製 品 への 適 用 を 検 討 しており 既 に 複 数 の 電 装 部 品 メーカと 共 に 実 車 を 利 用 した 実 証 実 験 を 実 施 し 本 保 護 OS の 機 能 的 な 検 証 および 課 題 な どについても 調 査 および 分 析 をし 実 用 化 に 向 けた 活 動 を 進 めている 尚 本 保 護 OS は 2008 年 3 月 にオープンソースとして 公 開 する 予 定 である アピール 指 標 : 新 規 性 実 用 性 品 質
オープンソース 保 護 OS:メモリ 保 護 と 時 間 保 護 を 有 する 自 動 車 向 けリアルタイム OS ( 第 10 回 IP アワード 応 募 書 類 特 徴 の 説 明 書 ) 服 部 博 行 大 西 秀 一 片 岡 歩 松 原 豊 高 田 広 章 株 式 会 社 ヴィッツ 名 古 屋 大 学 情 報 学 研 究 科 E-mail: {hat,ohnishi,kata}@witz-inc.co.jp, {yutaka,hiro}@ertl.jp 1. 保 護 OS とシステム LSI 自 動 車 に 求 められる 基 本 性 能, 環 境 性 能, 安 全 性 能 などは 年 々 高 度 化 し,この 要 求 機 能 の 実 現 に ECU ( Electronic Control Unit ) を 用 いた 電 子 制 御 化 が 急 速 に 進 んでいる.その 結 果, 現 在 の 最 高 級 乗 用 車 の ECU 搭 載 個 数 は 100 個 を 超 え, 自 動 車 制 御 システム 開 発 コストの 8 割 は 制 御 ソフトウェア 開 発 に 費 やされている. ーム ( SFP ; Software Plat Form ) の 構 築 と 標 準 SPF 上 での ECU 統 合 である.すなわち, 各 ECU 供 給 企 業 が 同 一 のSPF 上 で 稼 動 するアプリケーションを 開 発 することにより, 自 動 車 メーカはソ フトウェアの 部 品 化 とECU 統 合 の 促 進 を 狙 っている.そのため, SPFの 構 築 と 標 準 化 は 今 後 の 自 動 車 開 発 のキーテクノロジになる. Fig -1 ソフトウェア 開 発 コスト 比 率 引 用 [6] この 自 動 車 制 御 の 電 子 化 によりECUの 搭 載 限 界 1,ワイヤーハ ーネス 重 量 の 増 加 2,ソフトウェア 規 模 の 爆 発 的 な 増 加 などの 問 題 が 顕 著 化 している. Fig-2 ECU 搭 載 数 の 増 加 引 用 [7] 94 96 98 00 02 04 06 08 10 Fig-3 ソフトウェアの 増 加 量 引 用 [6] これらの 問 題 を 解 決 もしくは 軽 減 させる 方 法 として 自 動 車 メー カ 各 社 3 が 検 討 しているのは, 標 準 的 なソフトウェアプラットフォ 基 盤 ソフト (ソフトウェアプラットフォーム) Fig-4 垂 直 統 合 から 水 平 分 用 への 移 行 と SPF 引 用 [6] 一 方, 標 準 的 な SPF が 構 築 されたとしても, 異 なる 企 業 から 供 給 されたソフトウェアを 同 一 ECU 上 で 稼 動 させる,いわゆるECU 統 合 は,その 動 作 検 証 において, 相 互 干 渉 等 が 発 生 しない,リソー ス 競 合 が 発 生 しないなどの 検 証 を 入 念 に 行 う 必 要 があり, 標 準 SPF が 構 築 されても 検 証 にかかるコストは 削 減 できないという 問 題 が 残 る.この 問 題 を 解 決 もしくは 軽 減 するための 技 術 として, 保 護 機 能 は 有 力 である.すなわち,SPF に 保 護 機 能 を 導 入 すること により,アプリケーション 間 の 相 互 干 渉 およびリソース 干 渉 などを 未 然 に 食 い 止 めることができ, 不 良 ソフトウェアによる 被 害 を 最 小 限 に 押 させることができる.このように, 保 護 機 能 は, 次 世 代 の 自 動 車 制 御 ソフトウェア 開 発 において 必 要 不 可 欠 な 機 能 であり, 保 護 機 能 を 有 する 保 護 OS もしくは 保 護 OS を 含 む SPF は 不 可 欠 な IP ( ソフトウェア 設 計 資 産 ) の 一 つであると 言 える. 2. 保 護 OS の 概 要 保 護 OS は, 自 動 車 制 御 で 事 実 上 業 界 標 準 仕 様 である OSEK/VDX OS 仕 様 [2] に 準 拠 した TOPPERS/OSEK カーネ ル 上 に 構 築 し, 自 動 車 アプリケーションの ECU 統 合 に 必 要 不 可 欠 なメモリ 保 護 機 能 と 時 間 保 護 機 能 を 有 するリアルタイム OS であ る.この 保 護 OS は,ECU 統 合 を 安 全 且 つ 容 易 に 実 現 することを 目 的 とし,アプリケーション 間 およびアプリケーションと OS 間 な どのメモリ,メモリ 上 の 各 種 IO,プロセッサ 時 間 などの 干 渉 を 排 除 する 特 徴 を 持 っている. 従 来 型 ベンダー A ベンダー B 1 通 常,ECU は 動 作 環 境 の 問 題 から 助 手 席 の 足 元 など 限 られた 場 所 に 搭 載 されるため,ECU 搭 載 空 間 には 限 界 がある. 2 通 常,ECU には 各 種 センサやアクチュエータが 接 続 されて 機 械 制 御 を 行 っている.また,ECU 間 で 相 互 に 情 報 を 交 換 してより 細 密 な 制 御 を 実 現 し ている.これらの 機 器 間 を 接 続 するのがワイヤーハーネスであり, 現 在 の 車 には 100kg 以 上 のワイヤーハーネスが 利 用 されている. 3 国 内 の 自 動 車 メーカ 各 社 は, 各 社 で 共 通 で 利 用 可 能 な SPF を 検 討 するた めに, 国 内 の 標 準 化 団 体 JasPar (Japan Automotive Software Platform Architecture ; http://www.jaspar.jp )を 設 立 して 検 討 している.また, 欧 州 を 中 心 として 国 際 的 な 標 準 化 団 体 AUTOSAR (Automotive Open System 理 想 型 Fig-5 理 想 統 合 の 図 ベンダー C Architecture ; http://www.autosar.org/ ) においても, 標 準 SPF の 検 討 は 進 んでいる
この 保 護 OS を 導 入 することにより,アプリケーションでの 不 良 動 作 が 他 のアプリケーションおよび OS に 伝 播 しない.すなわち, 同 一 ECU 上 に 配 置 されたアプリケーションであっても, 物 理 的 に 異 なる ECU 上 で 稼 動 していると 同 等 の 独 立 性 を 保 つことができ る.このことは,アプリケーション A の 不 具 合 動 作 により,アプ リケーション B において 問 題 が 発 覚 するなど, 従 来 の ECU 統 合 が 抱 えていた 問 題 を 解 決 し,かつ, 従 来 の ECU 統 合 が 抱 えるプロ セッサ 利 用 時 間 の 保 証 やスケジューリング 問 題 等 を 解 決 している. ターゲット 環 境 として, 現 時 点 では,ルネサステクノロジ 社 の M32R-Ⅱを 利 用 している.この 理 由 として,メモリ 保 護 機 能 は, 汎 用 OS のメモリ 保 護 が 利 用 している MMU ( Memory Management Unit ) に 類 似 した MPU ( Memory Protection Unit ) を 利 用 する 必 要 がある.しかし,MMU および MPU は 既 存 の 組 込 み 向 けマイクロプロセッサは 有 していない 装 置 であるた め,MPU の 仕 様 から 保 護 OS に 必 要 な 要 求 事 項 を 検 討 し,ルネサ ステクノロジ 社 に MPU 要 求 仕 様 を 開 示 し, 開 発 していただいたた め, 現 在 のところ M32R-Ⅱの FPGA 版 でのみ 稼 動 可 能 である. 尚 本 保 護 OS は 研 究 目 的 で 開 発 したばかりでなく, 実 用 として の 検 討 も 進 んでおり,2007 年 10 月 に 実 車 を 用 いた 実 証 実 験 を 行 い,メモリ 保 護 および 時 間 保 護 機 能 の 機 能 的 な 有 効 性 を 確 認 し, 実 用 検 討 も 進 んでいる この 保 護 OSは, TOPPERSプロジェクト 4 から 2008 年 3 月 末 よりTOPPERSプロジェクト 会 員 向 けに 早 期 リリースし, 最 終 的 に オープンソースソフトウェアとして 公 開 する 予 定 である. 研 究 用 途 や 組 込 み 利 用 を 想 定 して,これらのソフトウェア 部 品 は,フリーソ フトウェアとしても 特 に 柔 軟 なTOPPERSライセンス 5 による 配 布 とし, 製 品 への 利 用, 販 売 等 に 制 限 を 与 えない 3. 保 護 OS の 機 能 および 特 徴 本 保 護 OSは 大 きく 2 種 類 の 保 護 機 能 から 構 成 される. 一 つはメ モリ 保 護 機 能 であり, 二 つ 目 は 時 間 保 護 機 能 である.さらに, 時 間 保 護 機 能 はHIS 6 が 提 案 する,デッドラインモニタリング 機 能 [1]と 提 案 者 らが 考 案 した 階 層 型 スケジューラの 二 種 類 を 開 発 した. 3.1 メモリ 保 護 の 機 能 および 特 徴 メモリ 保 護 機 能 は OSEK 仕 様 OS にメモリ 保 護 処 理 部 を 追 加 して 実 現 している.また,メモリ 保 護 処 理 部 は,マイコン 内 に 独 自 に 追 加 した MPU を 利 用 し,メモリ 保 護 を 実 現 している.すなわち, メモリ 保 護 機 能 はソフトウェアのみで 実 現 しているのではなく,ハ ードウェアのサポートを 得 て 実 現 している.これは, 組 込 み 装 置 に 使 われる OS はリアルタイム 特 性 が 必 要 であり,メモリ 保 護 をソフ トウェアのみで 実 現 するとリアルタイム 特 性 を 損 なうためである. また, 独 自 のMPUを 開 発 しているのは, 汎 用 OSが 利 用 するMMU を 利 用 していては,ハードリアルタイム 特 性 を 維 持 できないと 判 断 したためである.なぜなら,MMU は 一 種 のキャッシュメモリを 利 用 している 関 係 上,ハードリアルタイム 特 性 を 維 持 できないため である.そのような 理 由 から, 本 メモリ 保 護 は 組 込 みシステムの 特 徴 を 利 用 した 静 的 アドレスマッピング 方 式 の MPU を 開 発 および 利 用 して 実 現 している. また,メモリ 保 護 の 概 念 は, 大 規 模 OS や 汎 用 OS などでは 一 般 4 http://www.toppers.jp/ 5 http://www.toppers.jp/license.html 6 Herstellerinitiative Software http://www.automotive-his.de/ 的 に 利 用 されているが, 組 込 みシステムでは 利 用 されていない.な ぜなら,リアルタイム 特 性 などが 維 持 できないおよび 低 機 能 マイコ ンでの 実 現 が 難 しいなどの 理 由 がある. 一 方, 現 在 の 自 動 車 システ ムにおいてメモリ 保 護 は 利 用 されていないが,ECU 統 合 などの 技 術 が 進 むと 必 要 不 可 欠 となることが 予 想 され, 事 実 HIS において メモリ 保 護 仕 様 [1]は 検 討 されている. 本 メモリ 保 護 は,HIS 仕 様 を 参 考 にしたものの,HIS 仕 様 では 疎 結 合 マルチプロセッサシス テムの ECU 統 合 には 不 十 分 と 考 え,HIS 仕 様 を 拡 張 したメモリ 保 護 仕 様 を 策 定 している. 尚, 自 動 車 システムの 標 準 化 団 体 AUTOSAR も HIS の 仕 様 [1]を 拡 張 したメモリ 保 護 仕 様 を 2007 年 に 公 開 したが, 本 仕 様 と 類 似 した 仕 様 となっており, 本 仕 様 のア プローチが 正 しいことを 述 べておく. アプリケーション1 (non-trusted) タスク1 タスク1はタ スク1の 全 て のリソースの アクセスが 許 可 される タスク2 割 込 み アプリケーション2 タスク1 非 合 意 global data 合 意 global data アクセス 可 能 データ 実 行 中 のentityに 属 するスタック 同 一 アプリの 全 てのentityに 属 する static data と 特 別 に 合 意 した 他 アプリのグローバ ル 変 数 Fig-6 HIS のメモリ 保 護 ( 保 護 は 書 込 みのみ) M32R 1 自 分 のプログラム ROM MPU 2 共 有 のプログラム 32bit 長 ( 検 討 中 ) 3 自 分 のデータ 上 下 端 アドレス 比 較 用 コンパレータ RAM 4スタック 5 共 有 のデータ( 共 有 メモリ 通 信 ) 6 共 有 空 間 8 組 程 度 7I/O アドレス 部 アクセス 属 性 部 RWX 属 性 Fig-7 本 メモリ 保 護 の 構 成 図 本 メモリ 保 護 を 利 用 した 場 合 の 優 位 点 を 以 下 に 述 べる. ハードリアルタイムシステムへの 利 用 自 動 車 制 御 システムなどのハードリアルタイムシステムへのメ モリ 保 護 の 利 用 は,その 保 護 機 能 を 含 む 全 ての OS 処 理 時 間 やサー ビス 提 供 時 間 などが 予 測 可 能 でなければ 利 用 することができない. すなわち,ハードリアルタイムシステムでの 利 用 は,サービス 等 の 提 供 時 間 が 予 測 可 能 であることが 重 要 となる. 一 方, 汎 用 OS 等 で 実 現 されているメモリ 保 護 は, 比 較 的 高 機 能 プロセッサには 内 包 されている MMU を 利 用 して,プログラム 動 作 時 にアクセスするメモリ 領 域 のアクセス 可 否 を 判 定 している.こ の MMU はアプリケーション 等 の 動 的 再 配 置 が 前 提 とされている ため, 仮 想 アドレス 空 間 から 実 アドレス 空 間 に 変 換 するためのテー ブルを 利 用 いている.このテーブルは TLB( Translation Look aside Buffer) と 呼 ばれ,キャッシュメモリと 同 等 の 処 理 により 実 現 されている.すなわち, 変 換 対 象 となるメモリ 領 域 情 報 がこのテ ーブル 上 に 存 在 する 場 合 は, 高 速 なアドレス 変 換 が 可 能 となるが, テーブルに 存 在 しない,すなわち,ミスヒットの 場 合 は,テーブル 情 報 の 再 ロードが 必 要 となり,アドレス 変 換 時 間 が 予 測 できない. 加 えて, 組 込 みシステムの 特 徴 として, 処 理 単 位 は 比 較 的 小 さく, その 処 理 単 位 が 短 時 間 に 切 替 ることもあり, 当 該 情 報 がテーブル 上 に 存 在 する 確 立 も 低 くなる.このような 理 由 により, 汎 用 OS と 同 等 の 手 法 では,ハードリアルタイム 特 性 が 必 要 なシステムへのメモ
リ 保 護 が 利 用 できないため, 普 及 も 遅 れている. 本 メモリ 保 護 は, 組 込 みシステムの 特 徴 を 利 用 することにより, アドレス 変 換 を 行 わないメモリ 保 護 を 実 現 する.すなわち, 組 込 み システム, 特 に,ハードリアルタイム 特 性 を 必 要 とするシステムで は, 動 的 再 配 置 は 利 用 せず,リンケージにアドレスが 固 定 される 静 的 配 置 方 式 を 利 用 している.そのため, 仮 想 アドレスは 利 用 せず, 実 アドレスのみで 処 理 が 可 能 となる 点 を 利 用 し, 実 アドレスを 利 用 したメモリ 保 護 ユニットを 開 発 することにより, 変 換 テーブルを 利 用 しない,すなわち,MMU を 利 用 しない, 処 理 時 間 予 測 可 能 な メモリ 保 護 が 実 現 できる. そのため, 提 案 者 らはハードリアルタイムの 実 現 に 必 要 な MPU の 要 求 をまとめ,メモリ 保 護 機 能 の 開 発 を 実 現 した.このように, 保 護 OS を 開 発 する 上 で, 実 製 品 への 応 用 を 意 識 した 性 能 を 得 るた めに,ハードウェアの 仕 様 まで 策 定 している 点 は, 新 規 性, 有 用 性 が 高 いといえる.また, 本 MPU を 搭 載 したマイコンは 2008 年 初 旬 にワンチップマイコンとしてサンプル 出 荷 されるとの 報 告 をう けており,ハードウェア 面 からも 新 規 性, 有 用 性 を 認 められている. メモリの 保 護 属 性 本 メモリ 保 護 は, 保 護 属 性 として 書 込, 読 込, 実 行 の 3 属 性 を 区 別 して 保 護 を 行 う.すなわち, 当 該 メモリ 空 間 の 属 性 が 上 記 3 属 性 を 許 している 設 定 であれば, 実 行 プログラムからのアクセスは 全 て 許 可 される. 仮 に, 上 記 メモリ 空 間 の 属 性 が, 読 込, 実 行 を 許 している 設 定 の 場 合,プログラムは 上 記 メモリ 空 間 のプログラムを 実 行 することと 内 容 の 参 照 は 許 されるが, 書 込 みは 許 されない.こ のようにメモリ 空 間 毎 にアクセス 属 性 が 設 定 できるために, 各 空 間 の 利 用 方 法 に 沿 った 設 定 が 可 能 となる. 一 方, 本 保 護 OS は 各 種 IO などのリソースを 個 別 に 保 護 しては いない.しかし, 組 込 み 向 けプロセッサの 多 くは, 各 種 IO リソー スはメモリ 空 間 に 割 り 付 けていることが 多 いため,このメモリ 保 護 機 能 を 利 用 して,アプリケーション 単 位 での IO 等 のアクセス 制 限 をかけることが 可 能 となる. また, 現 在 の 自 動 車 制 御 システムは CAN 等 のネットワークを 介 した 疎 結 合 マルチプロセッサシステムであると 言 える.このシステ ムを ECU 統 合 する 場 合,CAN 通 信 などの 受 信 を 特 定 メモリ 領 域 に 容 易 に 置 き 換 えることが 可 能 である.すなわち,データ 生 成 元 は 特 定 メモリ 領 域 に 書 込 権 限 を 持 ち, 他 の 複 数 アプリケーションは 読 込 権 限 とすることにより, 同 時 に 複 数 のアプリケーションが 同 時 に データ 受 信 したと 同 等 の 効 果 を 得 ることが 可 能 となる. 複 数 のメモリ 領 域 を 保 護 対 象 として 管 理 可 能 本 メモリ 保 護 は 複 数 のメモリ 領 域 を 保 護 対 象 として 登 録 するこ とが 可 能 であり,ルネサステクノロジ 社 製 プロセッサは 8 組 のメ モリ 領 域 を 保 護 領 域 として 登 録 することが 可 能 である.また,この 領 域 はメモリの 重 なりを 許 可 している. 複 数 の 領 域 を 管 理 できるこ とにより,それぞれの 領 域 に 意 味 を 持 たせることが 可 能 となるため, 制 御 アプリ 毎 の 管 理 ポリシーを 任 意 に 決 めることが 可 能 となる. 一 般 的 な 管 理 領 域 としては, 自 己 プログラム 領 域, 共 有 プログラム 領 域, 自 己 データ 領 域, 自 己 スタック 領 域, 共 有 データ ( 共 有 メモ リ 通 信 空 間 ), 共 有 データ 領 域,I/O 領 域 などを 想 定 している. 保 護 領 域 として 登 録 しない 領 域 は 全 て 他 のアプリケーション 領 域 と 判 断 し,アクセス 不 可 として 扱 う.この 方 法 により, 自 己 所 有 領 域 空 間 の 認 識 と, 自 己 アプリケーションがアクセスできる 領 域 を 適 格 に 把 握 することが 可 能 となる. また, 領 域 指 定 は,メモリ 領 域 の 上 下 端 アドレスを 設 定 すること により 指 定 する.この 設 定 は,アプリケーションが 切 替 るタイミン グで,アプリケーションごとの 登 録 内 容 に 従 って,MPU レジスタ に 登 録 する.MPU は 登 録 されたアドレス 情 報 を 用 いて,メモリア クセス 違 反 の 有 無 をチェックする. 保 護 粒 度 の 柔 軟 性 本 保 護 OS は, 保 護 対 象 のメモリ 領 域 サイズを 任 意 に 変 更 できる ばかりでなく,アプリケーション 粒 度 も 任 意 に 指 定 することができ る. 一 方,メモリは 通 常 アプリケーションが 所 有 していると 言 える. このアプリケーションは,タスクやリソースなどから 構 成 されるも のであり,その 規 模 はアプリケーションにより 異 なる.また, 実 行 単 位 毎 に 個 別 の 保 護 領 域 を 設 定 したい 場 合 やライブラリなど 複 数 のアプリケーションで 共 有 したい 場 合 が 考 えられる.これらの 場 合 を 考 慮 し,アプリケーションの 単 位 は,たとえタスク 1 つであっ ても,アプリケーションとして 登 録 することが 可 能 であり, 柔 軟 な 管 理 単 位 で 保 護 制 御 が 可 能 となる.なお,アプリケーション 登 録 は OIL ( OSEK Implementation Language ) と 呼 ばれる 定 義 言 語 で 簡 単 に 記 述 できるように 仕 様 を 作 成 した. OS 処 理 のオーバヘッドは 少 ない 本 メモリ 保 護 機 能 を 実 現 するに 当 たり,OS 内 部 でメモリ 保 護 専 用 の 実 行 コードは 少 ない.メモリアクセス 時 に 自 アプリケーション がアクセス 可 能 な 領 域 か 否 かの 判 定 は,ハードウェア ( MPU ) で 判 断 する.すなわち,ソフトウェアによる 判 定 処 理 を 必 要 としない ため, 判 定 処 理 部 位 を OS 内 部 に 実 装 する 必 要 はない.また, 保 護 属 性 に 従 ったアクセス 判 定 もハードウェアにて, 現 在 どのような 種 別 のアクセスが 発 生 したかを 認 識 し, 各 領 域 に 登 録 されている 属 性 情 報 に 基 づいて 種 別 判 定 も 同 時 に 行 なっている. このようにメモリアクセス 時 の 判 定 処 理 はハードウェアにて 実 行 しているために, 判 定 オーバヘッドは 無 い 唯 一 のオーバヘッド として,アプリケーション 毎 に 異 なるメモリ 保 護 領 域 情 報 を MPU レジスタに 設 定 する 処 理 である. 尚, 各 領 域 の 属 性 情 報 はアドレス 情 報 の 上 位 ビットを 用 いて 設 定 するために, 属 性 情 報 設 定 用 のオーバヘッドは 発 生 しない. 特 定 機 能 部 位 の 隔 離 メモリ 保 護 機 能 を 利 用 することにより, 各 アプリケーション 間 や OS との 間 に 壁 を 設 けることができるため,アプリケーションの 動 作 が 他 のアプリケーションに 影 響 を 及 ぼすことはない.そのため, アプリケーションは 分 離 されていると 言 える. 一 方,この 性 質 はア プリケーション 内 の 特 定 部 位 を 分 離 することも 可 能 となる. 近 年 の アプリケーションはアプリケーション 内 部 の 処 理 単 位 で,その 役 割 や 求 められる 信 頼 性 は 異 なってきている ( 例 えば,ブレーキ 処 理 においても, 純 粋 にブレーキ 機 能 を 担 う 部 位 と 他 の ECU との 通 信 や 付 加 機 能 を 担 う 部 位 では 厳 密 な 意 味 で 信 頼 度 は 異 なる ).すな わち, 本 メモリ 保 護 を 利 用 することにより, 同 一 アプリケーション であっても, 信 頼 度 による 機 能 隔 離 が 可 能 となる. 加 えて,メモリ 保 護 機 能 では,プロセッサの 特 権 モードを 利 用 す る 必 要 がある ( 特 権 モードを 持 ったプロセッサが 必 要 ). 異 常 発 生 時 はこの 特 権 モードを 利 用 して, 本 当 に 必 要 な 処 理 をアプリケー ションと 切 り 離 して 実 行 することも 可 能 であり, 従 来 の OS 機 能 と 比 較 して 高 い 信 頼 性 を 有 しているといえる. 3.2 時 間 保 護 の 機 能 および 特 徴 本 時 間 保 護 機 能 は 種 類 の 異 なる 2 タイプの 時 間 保 護 もしくは 監 視 を 実 装 している. 現 在 の 自 動 車 システムを 構 築 する 場 合, 要 求 さ
れたタイミングからある 種 の 計 測 もしくは 演 算 を 経 て,その 結 果 を 元 に 機 器 を 動 作 させるなどの 処 理 は 比 較 的 多 く,かつ,その 時 間 的 制 約 と 処 理 の 終 了 性 は 動 作 決 定 において 重 要 である.このような 制 御 において, 要 求 タイミングから 動 作 指 令 までの 間 に,ある 種 の 処 理 実 行 が 完 了 しているかどうかを 判 断 する 手 段 は 重 要 である.この 観 点 を 重 視 し,HIS は Time Protection 機 能 として,デッドライ ンモニタリングの 機 能 [1]を 規 定 し, 仕 様 化 している. 本 時 間 保 護 機 能 は,このデッドラインモニタリング 機 能 を 一 つ 目 の 時 間 保 護 機 能 として 導 入 している. 一 方, 上 記 デッドラインモニタリングは, 単 に 監 視 を 実 行 し, 規 定 時 間 内 に 処 理 の 完 了 が 否 かを 判 断 している のみであり,これは 純 粋 に 監 視 であり 保 護 とは 呼 べない.なぜなら, 処 理 完 了 しない 原 因 を 特 定 できない,もしくは, 他 への 影 響 するの を 防 いではいないためである.すなわち, 他 のアプリケーションの 不 具 合 で,たまたま 優 先 度 の 低 い 処 理 がデッドラインオーバーをし ても, 問 題 となる 部 位 を 特 定 できない. 本 保 護 OS は,デッドライ ン 監 視 の 有 効 性 を 認 めているものの, 保 護 機 能 としては 不 十 分 であ るため, 現 世 代 システムへの 適 応 をデッドラインモニタリングで 対 応 し, 次 世 代 の ECU 統 合 の 基 本 機 能 として 階 層 型 スケジューラを 用 いた 新 しい 考 え 方 の 時 間 保 護 を 提 案 する. 3.2.1 デッドラインモニタリングの 機 能 および 特 徴 デッドラインモニタリング 機 能 は,HIS にて 機 能 策 定 された 時 間 監 視 機 能 である. 将 来 的 には 真 の 意 味 での 時 間 保 護 が 必 要 となる ものの, 現 時 点 では, 必 要 となる 処 理 が 必 要 となる 時 間 までに 完 了 していることが, 制 御 品 質 の 向 上 には 重 要 である. このデッドラインモニタリングは, 機 能 要 求 された 処 理 単 位 が, 処 理 単 位 が 処 理 を 完 了 しなくてはならない 時 間 までに 処 理 を 完 了 することを 監 視 する.すなわち, 処 理 単 位 の 起 動 終 了 時 にタイマ の 操 作 を 行 いデッドラインを 判 定 するものである. 優 先 度 高 見 積 もり 実 行 時 間 実 際 の 実 行 時 間 見 積 もり 実 行 時 間 を 越 える のは 何 らかの 異 常 があり 他 のアプリケーションに 影 響 を 与 える 可 能 性 がある アプリケーション1 デッドライン アプリケーション2 デッドライン 指 定 時 間 までに 終 了 しない と 動 作 不 良 が 発 生 する 場 合 など デッドラインまでの 終 了 を 確 認 するのは 重 要 Fig-8 デッドラインモニタリング 説 明 図 このデッドラインモニタリングには 以 下 の 特 徴 を 有 する. シンプルな 監 視 でオーバヘッドが 少 ない デッドラインモニタリング 機 能 を 実 現 するに 当 たり,OS 内 部 に 新 たに 追 加 するべき 処 理 部 位 は 非 常 に 小 さく,また, 時 間 計 測 用 に は OS 機 能 が 保 有 するアラーム 機 能 を 利 用 するため, 新 たなタイマ などのリソースを 必 要 としない. 現 状 の OSEK OS に 親 和 性 の 高 い 仕 様 である. 具 体 的 には,OS が 処 理 単 位 ( この 場 合 はタスクを 示 す ) を 実 行 したタイミングで,OS の 既 存 機 能 であるアラームにデッドライ ン 時 間 を 指 定 して 稼 動 させる.その 後, 処 理 単 位 が 終 了 した 時 点 で OS は 当 該 アラームを 停 止 する.アラーム 停 止 処 理 前 に, 当 該 アラ ームが 満 了 した 場 合, 当 該 処 理 単 位 はデッドラインオーバーしたと 判 断 することができる.その 結 果,OS 内 部 での 追 加 処 理 は, 処 理 単 位 起 動 処 理 にアラーム 設 定 及 び 動 作 指 令 の 追 加 と 処 理 単 位 終 了 処 理 にアラーム 機 能 の 停 止 処 理 を 追 加 することが 主 な 追 加 処 理 で あり,この 処 理 に 加 えて,デッドラインミス 発 生 時 するアラーム 処 理 にデッドラインミス 用 のハンドラ 部 位 を 追 加 するのみで 実 現 す ることができる.また,HIS の 仕 様 では,ミスを 発 生 した 処 理 単 位 を 含 むアプリケーションの 停 止 および 再 起 動 の 手 順 について 規 定 されているため, 現 状 の ECU 開 発 に 必 要 な 各 種 タスクおよびア プリケーションの 停 止 および 起 動 に 必 要 な API は 用 意 した.ただ し,これらの 処 理 はデッドラインモニタ 専 用 ではなく, 保 護 OS と して 必 要 な 機 能 として 実 現 している. 現 車 両 開 発 に 利 用 可 能 な 標 準 的 仕 様 本 デッドラインモニタリングは, 必 要 な 処 理 が 必 要 な 時 間 内 に 完 了 していることを 前 提 としている 現 在 の ECU 開 発 において 重 要 な 監 視 機 能 である. 現 状 の 開 発 では, 必 要 時 間 内 での 完 了 は, 各 種 テスト, 処 理 時 間 の 計 測 及 び 予 測 などから 導 いている.しかし, 実 稼 動 時 全 ての 検 証 は 事 実 上 不 可 能 であり,ECU 開 発 において 万 が 一 必 要 時 間 内 で 処 理 が 終 了 しない 場 合 でも 動 作 に 影 響 の 無 い 様 設 計 されている.これらのフェールセーフ 処 理 は,ソフトウェアの 複 雑 度 を 増 し, 複 雑 化 する 機 能 との 相 乗 効 果 でソフトウェアの 爆 発 的 な 増 加 を 促 進 さえている 要 員 でもある. 本 デッドラインモニタを 利 用 することにより,デッドラインミスが 判 定 できるため,フェー ルセーフ 処 理 の 削 減 や,ミス 発 生 時 の 対 処 が 的 確 に 行 うことができ, より 細 密 な 制 御 をすることが 可 能 である. また, 本 デッドラインモニタリングは,HIS[1]にて 規 定 された 仕 様 であるため, 世 界 標 準 として 利 用 しやすい 仕 様 である. 3.2.2 階 層 型 スケジューラの 機 能 および 特 徴 階 層 型 スケジューラは, 今 後 の EUC 開 発 に 必 要 不 可 欠 となる ECU 統 合 を 安 全 且 つ 容 易 に 実 現 するための 基 本 となる 機 能 の 一 つ である. OS 内 部 に 処 理 の 実 行 順 序 などを 決 定 するスケジューラ 機 能 を 階 層 型 に 組 み 合 わせたものを 階 層 型 スケジューラと 呼 び, 本 時 間 保 護 では 2 段 の 階 層 型 スケジューラを 採 用 している. 各 スケジュー ラは,アプリケーションスケジューラ(メインスケジューラ)とタス クスケジューラ(サブスケジューラ)と 呼 ばれる.タスクスケジュー ラは 各 アプリケーション 内 のスケジュール 管 理 を 行 う.このアプリ ケーションスケジューラのスケジュールポリシーは 各 アプリケー ションの 設 計 方 針 に 依 存 しても 良 く, 階 層 型 スケジューラでは 特 に 限 定 はしない.ここでは 組 込 みで 一 般 的 に 利 用 されているプリエン プト 可 能 な 優 先 度 ベーススケジューラにて 説 明 する.タスクスケジ ューラはアプリケーション 内 で 次 に 実 行 するべき 処 理 単 位 を 特 定 し,その 処 理 単 位 の 優 先 度,デッドライン 時 間 などアプリケーショ ンスケジューラが 必 要 な 情 報 と 共 に,アプリケーションスケジュー ラに 起 動 の 要 求 をする.アプリケーションスケジューラは 複 数 のア プリケーションから 要 求 される 処 理 単 位 と 処 理 単 位 と 共 に 通 達 さ れる 情 報 を 元 に, 次 に 動 作 するべきアプリケーション( 処 理 単 位 ) を 決 定 する.アプリケーションスケジューラのスケジューリングポ リシーは,EDF ( Earliest Deadline First ) 方 式 で, 最 も 早 くデッ ドラインを 迎 える 処 理 を 優 先 して 実 行 する.また, 特 定 アプリケー ションばかりが 実 行 され, 他 のアプリケーションに 影 響 を 与 えない ように,バジェットと 呼 ぶ 単 位 時 間 当 たりに 各 アプリケーションが 実 行 してもよい 時 間 を 管 理 し, 特 定 アプリケーションが 動 作 しすぎ ないように 管 理 する. サブスケジューラ: プリエンプティブな 固 定 優 先 度 ベーススケジューラ アプリケーション 内 のタスク 起 動 を 管 理 する ( アプリケーション 毎 に 用 意 される また アプリケー ション 毎 に 異 なるスケジューラでも 良 い ) メインスケジューラ: EDF ( Earliest Deadline First ) によるアプリケー ションへのプロセッサ 時 間 を 割 り 当 てる ( プロセッサ 利 用 率 に 応 じた 実 施 的 プロセッサ 時 間 )
Fig-9 階 層 型 スケジューラ 構 成 図 この 階 層 型 スケジューラには 以 下 の 特 徴 を 有 する. バジェットの 管 理 で ECU 統 合 時 の 時 間 問 題 を 解 決 ECU 統 合 を 行 う 上 で, 複 数 の 異 なる 企 業 で 開 発 されたアプリケ ーションが 同 一 アプリ 上 で 時 間 的 に 動 作 できるかどうかを 判 断 す るのは 難 しい. 例 を 挙 げて 説 明 すると,10MHz (アプリ A), 20MHz (アプリ B ), 30MHz (アプリ C) のプロセッサで 時 間 的 制 約 を 守 って 動 作 している 各 アプリケーションを 60MHz で 動 作 す るプロセッサに 統 合 して 正 しく 動 作 するかの 判 断 は 難 しい.なぜな ら, 各 アプリケーションの 最 大 負 荷 が 同 時 に 発 生 する 場 合 など 負 荷 状 況 の 見 積 りが 困 難 となるからである. 本 階 層 型 スケジューラでは, バジェットを 管 理 することにより, 同 一 プロセッサにおいても, 個 別 プロセッサで 処 理 されると 同 じ 時 間 的 環 境 を 作 り 出 すことによ り,アプリケーション 間 の 時 間 的 衝 突 を 回 避 し, 動 作 検 証 不 要 を 目 的 としている. 具 体 的 には, 各 アプリケーションの 動 作 割 合 ( 上 記 例 では,プ ロセッサ 能 力 比 率 より,アプリケーション A は16%,Bは 33%, C は 50%の 占 有 比 率 が 認 められる ) から 単 位 時 間 当 たりの 動 作 可 能 時 間 ( バジェット ) を 定 め,そのバジェット 時 間 分 だけの 動 作 を 許 可 する 管 理 を 行 う.その 結 果, 各 アプリケーションは 自 己 がプ ロセッサを 占 有 できる 時 間 を 越 えて, 動 作 を 許 可 されないために, 他 のアプリケーションが 動 作 するべき 時 間 を 消 費 しない.すなわち, 同 一 プロセッサ 上 で 稼 動 しながら, 各 アプリケーションのプロセッ サ 占 有 時 間 は 完 全 に 分 離 されている.この 特 徴 は, 各 アプリケーシ ョンが 低 速 度 プロセッサで 確 実 に 動 作 できるのであれば,そのプロ セッサ 能 力 に 相 当 する 時 間 を 割 り 当 てれば, 確 実 に 動 作 し,かつ, 他 に 影 響 を 与 えないために,ECU 統 合 時 のプロセッサ 時 間 に 関 す る 検 証 は 不 要 となる.すなわち, 真 の 意 味 での 時 間 保 護 が 可 能 とな ることを 意 味 する. ECU 統 合 後 のリアルタイム 応 答 性 確 保 汎 用 OS は 時 間 保 護 機 能 を 有 していない.しかし, 複 数 のアプリ ケーションを 並 列 実 行 する 機 能 ( マルチタスク ) は 有 している. 多 くの OS では,この 機 能 を 実 現 するにあたり,タイムスライスと いう 概 念 で 実 現 している.すなわち, 同 時 実 行 中 のアプリケーショ ンの 処 理 を 少 しずつ, 時 分 割 して 実 行 している.この 制 御 の 場 合, 緊 急 処 理 が 必 要 なアプリケーションがあった 場 合 であっても,アプ リケーションの 動 作 タイミングまでその 処 理 が 遅 延 する 問 題 があ るため,リアルタイム 制 御 が 可 能 な OS とは 呼 ぶことができない. 一 方 リアルタイム OS は,プリエンプト 可 能 かつ 優 先 度 ベースの スケジューリングを 行 うことにより,リアルタイム 特 性 を 獲 得 して いる.ECU 統 合 を 行 う 場 合 の OS は,アプリケーションを 超 えて, このような 即 時 応 答 性 を 備 えた 性 能 が 必 要 となる. 階 層 型 スケジュ ーラは, 各 アプリケーション 内 で 即 時 応 答 が 必 要 な 処 理 単 位 をアプ リケーションスケジューラに 通 達 することにより, 例 え, 他 のアプ リケーションが 実 行 中 の 処 理 があったとしても, 即 時 応 答 が 必 要 な アプリケーションの 処 理 単 位 を 実 行 する 機 能 を 有 している.すなわ ち,ECU 統 合 をした 後 であっても, 全 アプリケーションを 対 象 と した 即 時 応 答 処 理 が 可 能 である 特 徴 を 有 する 性 能 を 持 っている. 4. 動 作 環 境 と 開 発 環 境 本 保 護 OS は,1 章 で 述 べた 通 り,ルネサステクノロジ 製 M32R- Ⅱに MPU を 追 加 した 特 殊 プロセッサをターゲットプロセッサと している.しかし,2008 年 初 旬 には, 本 MPU を 搭 載 したプロセ ッサのサンプル 出 荷 が 開 始 されるため, 今 後 は 実 プロセッサの 利 用 が 可 能 となる. 尚,MPU を 必 要 とするのはメモリ 保 護 機 能 である ため, 時 間 保 護 機 能 は 一 般 的 なプロセッサであれば 動 作 可 能 である. 開 発 環 境 は,ルネサステクノロジ 製 コンパイラ ( NC308 Version 5.20 Release 02 ) および gcc コンパイラを 用 いて 開 発 し, 同 社 製 デバッガ( KD3083 Version 3.30 Release 1 ), 同 社 製 簡 易 エミュレータ ( M3A-0655 FoUSB ) を 用 いてデバッグを 実 施 し た. 5. 開 発 成 果 について 応 募 代 表 者 は, 保 護 OS の 全 機 能 について,アイシン 精 機 株 式 会 社 および 株 式 会 社 東 海 理 化 の 協 力 を 得 て, 実 車 による 実 証 実 験 を 実 施 し, 保 護 OS に 必 要 な 機 能 面 の 評 価 を 行 っている. また,この 実 証 実 験 の 結 果 を 基 にして, 製 品 適 応 についても,い くつかの 会 社 が 検 討 を 開 始 しており, 国 内 メーカからの 問 い 合 わせ 及 び 評 価 を 多 数 いただいている. 6. 今 後 の 計 画 本 保 護 OS は, 経 済 産 業 省 の 平 成 17 18 年 度 地 域 新 生 コンソー シアム 研 究 開 発 事 業 ( 中 部 地 区 ) : 自 動 車 統 合 制 御 用 組 込 み OS の 開 発 にて 研 究 開 発 したものであり,2008 年 3 月 末 を 目 標 にオ ープンソースとしても 公 開 を 計 画 している.また, 本 保 護 OS の 仕 様 は,JasPar に 提 案 し, 将 来 的 には,AUTOSAR のメンバ 社 を 通 じてAUTOSAR でも 検 討 していただけるように 提 案 したいと 考 えている. 7. 謝 辞 本 保 護 OS を 開 発 するにあたり,トヨタ 自 動 車 統 合 システム 開 発 部 の 細 谷 様 をはじめ,アイシン 精 機, 東 海 理 化 の 方 々にご 意 見 およ びご 協 力 をいただきまいた.ここに 記 して 謝 意 を 表 します. 文 献 [1] HIS,OSEK OS Extensions for Protected Applications,HIS,July 24 th 2003 [2] OSEK/VDX,OSEK/VDX Operating System Version 2.2.1,OSEK VDX,January 16 th 2003 [3] 松 原 豊, 本 田 晋 也, 冨 山 宏 之, 高 田 広 章," 時 間 保 護 のための リアルタイムスケジューリングアルゴリズム", 情 報 処 理 学 会 論 文 誌 コンピューティングシステム, Vol.48,No.SIG 8(ACS 18), pp. 192-202, May 2007 [4] 松 原 豊, 本 田 晋 也, 冨 山 宏 之, 高 田 広 章,"OSEK アプリケー ション 統 合 のための 柔 軟 なスケジューリングフレームワー ク", 組 込 みシステムシンポジウム 2007, Vol.2007,No.8, pp. 33-41, Oct 2007. [5] 松 原 豊, 冨 山 宏 之, 高 田 広 章, 階 層 型 スケジューラによる 自 動 車 制 御 システム 向 け 時 間 保 護 環 境, 組 込 みソフトウェアシ ンポジウム 2005 論 文 集, pp. 110--116, 東 京 都, Sep 2005 [6] 谷 川 浩, 自 動 車 制 御 ソフト 車 載 LAN 標 準 化 活 動,Automotive Technology Days 2004 Autumn, 自 動 車 制 御 ソフト 開 発 の 効 率 化 予 稿 集,pp. 61-74,Nov 1 st 2004 [7] 大 倉 勝 徳,デンソーテクニカルレビュー Vol.10 No.2,2005, P11