ITRONプロジェクトは,機器組み込みシステム用のリアルタイムOSと,それ に関連する仕様の標準化をおこなうプロジェクトである.プロジェクトの開始 から現在までに,一連のITRONリアルタイムカーネル仕様を策定・公開してき た.その中で,民生機器に代表される小規模な組み込みシステム向けに設計さ れたμITRONリアルタイムカーネル仕様は,数多くの 8bit,16bit, 32bit の MCU (Micro Controller Unit) 上に実装され,また極めて多くの組み込み機器 に利用されており,この分野における業界標準仕様となっている.我々は,こ のような実績をベースとして,標準化の対象をカーネル仕様から周辺の仕様へ と広げ,組み込みシステム構築技術と ITRON仕様の更なる発展のための活動を おこなっている.
- 1.組み込みシステムの現状と特徴
- 2.組み込みシステム用のリアルタイムOSに対する要求
- 3.ITRON仕様OSの設計方針
- 4.ITRON仕様OSの現状
- 5.最近の成果と現在の活動
- 6.普及・広報活動
- 7.おわりに
マイクロプロセッサ技術の発展により,機器組み込みシステムの応用分野 は拡大の一途をたどっている.当初は,工場の生産ラインの制御など産業用途 が中心であったものが,通信機器やオフィス機器などの業務機器分野,さらに 近年は,自動車やオーディオ/ビデオ機器,テレビ,携帯電話,電子楽器やゲ ームマシン,洗濯機,エアコン,照明器具などの民生機器分野に急激に拡大し, 今では身の回りのほとんどの電気/電子機器に組み込みシステムが応用される ようになっている.
それと並行して,制御対象となる機器の高機能化や複合化に伴って,組み 込みシステムの大規模化・複雑化も著しい.それに加えて,最近顕著になって きた機器のデジタル化の流れも,マイクロプロセッサの高性能化によりソフト ウェアで実現可能な処理が増えていることとあいまって,組み込みシステムの 重要性を増す結果となっている.
一般に,民生機器に代表される小規模な組み込みシステムには,産業機器 に代表される規模の大きい組み込みシステムと比較して,機器の製造個数が極 めて多く,単価が安いという特徴がある.そのため,大規模な組み込みシステ ムでは開発コストを下げることが重視されるのに対して,小規模な組み込みシ ステムでは最終製品の製造コストを下げることが重視される傾向にある.また, 特に民生機器分野では,厳しい機器開発競争からシステム開発期間の短縮に対 する要求が著しく,また一度販売した機器のソフトウェアを改修することはほ とんどないことから,システム開発のライフサイクルが極めて短いことも特徴 の 1つとなっている.
小規模な組み込みシステムの分野では,プロセッサコアに加えて,ROM, RAM,汎用I/Oデバイス,用途に応じたデバイスなどを 1チップ化した MCU (Micro Controller Unit; 1チップマイコンと呼ばれる場合もある) が広く使 われている.MCU上のソフトウェアを開発する際には,最終製品のコストダウ ンの要請から,ハードウェア資源の制約が問題になる.とりわけメモリ容量の 制約は厳しく,典型的な 16bit MCU で,ROM が 64KB,RAM が 1KB 程度,少 し大規模なものでもそれぞれ 128KB,4KB 程度のメモリ容量しか持っていない. また,高いコストパフォーマンスが求められる MCU はしばしばアプリケーショ ンに最適化して設計されることから,プロセッサコアの種類が極めて多いこと も特筆すべき点である.
このような小規模な組み込みシステムの分野においても,ソフトウェアの 大規模化・複雑化や開発期間短縮に対する要求から,ソフトウェアの生産性の 向上は重要な課題となっており,C言語などの高級言語を使うケースや, μITRON仕様などのリアルタイムOS を用いるケースが一般的になりつつあ る.
マイクロプロセッサの高性能化が進む一方で,民生機器など大量生産され る機器への応用が広がっていることから,組み込みシステムのコストパフォー マンス向上に対する要請は以前と同様極めて強いものがある.また,組み込み システムの応用分野の拡大に伴って,リアルタイムOS を扱うべきソフトウェ ア技術者も増加しており,システム設計者やプログラマの教育の重要性も高 い.
このことを裏付けるデータとして,トロン協会が 1997年末から1998年頭に 日本国内において実施したアンケート調査結果によると,組み込みシステム用 のリアルタイムOS の問題点として,「使いこなせる技術者が不足またはいな い」「OSにより仕様の違いが大きく切り替えの負担が大きい」という教育上や 標準化の問題を挙げた回答者が最も多く,「OSのサイズや使用リソースが大き すぎる」「性能・機能が要求条件に適合しない」というリアルタイムOS の適 合性に関する問題を挙げた回答者がそれに次いで多くを占めている (図-1).
このような背景から我々は,概念や用語の統一といった教育面を特に重視 して,広い範囲の組み込みシステムに共通に適用できるリアルタイムOS仕様の 標準化が必要であると考え,ITRONプロジェクトに取り組んできた.
組み込みシステム用のリアルタイムOS仕様の標準化にあたって最も困難な 問題として,ハードウェアの持つ性能を最大限に発揮させるという要求と,ソ フトウェアの生産性を向上させるという要求のトレードオフの解決が挙げられ る.ハードウェア資源の制約が厳しいMCU ベースのシステムにおいては,与え られたハードウェアの性能を最大限に発揮できることが,リアルタイムOS を 採用する前提条件となる.一方で,ソフトウェア生産性の向上はリアルタイム OS を用いる最大の動機であるが,ソフトウェアの生産性を向上させるために OS が提供するサービスの抽象度を上げたり,用いるハードウェアによらずに ソースコードレベルの完全なポータビリティを確保しようとすると,OS が提 供するサービスとハードウェアアーキテクチャとのギャップが実行時のオーバ ヘッドにつながり,ハードウェアの持つ性能を最大限に発揮させることが難し くなる.
この 2つの要求の最適なトレードオフは,組み込み機器の性質に大きく依 存する.具体的には,小規模なシステムにおいては,最終製品のコストダウン の要求から,実行時性能を低下させてまでソフトウェアポータビリティを向上 させる意義は少ない.それに対して,既存のソフトウェア部品を用いる場合や, ソフトウェアの再利用が不可欠な規模の大きいシステムにおいては,ソフトウェ アのポータビリティは極めて重要な要求となる.さらに,2つの要求の最適な トレードオフは,マイクロプロセッサ技術の発展によって常に変化してい る.
また,小規模なシステムと大規模なシステムでは,リアルタイムOS に求め る機能にも大きな違いがある.小規模な組み込みシステムに,必要性の低い高 度な機能を持った OS を用いると,プログラムサイズが大きくなり,実行時性 能も低下する結果となる.逆に大規模なシステムでは,高度な機能を持った OS を用いてソフトウェアの生産性向上を図るべきである。
以上より,組み込みシステムの規模や性質に応じて,リアルタイムOS に対 する要求は大きく異なることがわかる.システムの規模や性質毎に別々のリア ルタイムOS仕様を定義することも可能ではあるが,ソフトウェア技術者の教育 面やソフトウェア部品の流通性,開発支援ツールのサポート面を考えると,多 種多様な組み込みシステムに共通に適用できるスケーラビリティを持ったリア ルタイムOS仕様を定義することが望ましい.
組み込みシステム用のリアルタイムOS仕様に対する以上の要求を簡単に整 理すると,次のようになる.
以上で述べた技術的な要求事項に加えて,仕様が真の意味でオープンであ ることも重要な要件となる.組み込みシステムが身の回りのあらゆる電気/電 子機器に適用されることを考えると,仕様書が誰にでも入手可能な形で一般に 公開されるだけでなく,それに基づいた製品を誰もが自由にロイヤリティなし で実装・販売できることも満たさなくてはならない要件である.
前節で述べた要求事項を満たすために,ITRON仕様OS を設計するにあたっ て,以下の設計方針を設定している.
ハードウェアの持つ性能を最大限に発揮させ,高いリアルタイム性能を得 るためには,仕様作成にあたって,ハードウェアを過度に仮想化することは避 けなければならない.ハードウェアに対する適応化とは,ハードウェアの持つ 性能や性質に応じてリアルタイムOSの仕様や内部の実装方法を変え,システム 全体としての性能向上をはかることをいう.
具体的には,ITRON仕様において,ハードウェアによらず標準化すべき事項 と,ハードウェアの持つ性能や性質に応じて最適になるように決定してよい事 項を明確に分離した.標準化した項目には,タスクのスケジューリング規則, システムコールの名称と機能,パラメータの名前・順序・意味,エラーコード の名前と意味などが含まれる.一方,標準化すると実行時性能の低下につなが るような部分については無理に標準化せず,標準化・仮想化による性能の低下 を避けるように配慮した.具体的には,パラメータのビット幅や割り込みハン ドラの起動方法については,実装毎に決める方針としている.
アプリケーションに対する適応化とは,アプリケーションに必要となるカ ーネルの機能や要求される性能に応じて,カーネルの仕様や内部の実装方法を 変更し,システム全体として性能向上をはかるアプローチをいう.組み込みシ ステムの場合,OS のオブジェクトコードはアプリケーション毎に生成するた め,アプリケーションに対する適応化が特に有効に働く (図-2).
具体的には,カーネルが提供する各種の機能をできる限り独立させ,アプ リケーション毎に必要な機能だけを用いることができるように考慮して,仕様 の設計をおこなっている.実際,多くのμITRON仕様カーネルは,カーネル自 身がライブラリの形で提供されており,アプリケーションプログラムとリンク するだけでカーネルの必要なモジュールだけが組み込まれる仕組みになってい る.また,システムコールの単機能化により,必要な機能のみを組み込むこと を容易にしている.
組み込みシステムにおいては,あるシステム用に開発されたソフトウェア がそのまま次に開発するシステムに使えることはまれであり,ソフトウェアの 互換性やポータビリティは,それほど重視されない傾向にある.それよりも, カーネル仕様の標準化によって,ソフトウェア技術者の教育が容易になったり, 用語や概念の統一を通じて技術者間の意志疎通がスムーズになることが重要と 考えられる.
ITRON仕様では,ソフトウェア技術者の教育を重視し,標準化を通じて一度 覚えた事が広く活用できるよう配慮している.具体的には,仕様における用語 の使い方や,システムコール等の名称の決め方などは,できる限り一貫性を持 つよう配慮した.また,教育用テキストの作成にも力を入れている.
多種多様なハードウェアへの適用を可能にするため,仕様のシリーズ化や レベル分けをおこなう.これまでに作成したリアルタイムカーネル仕様の内, μITRON仕様 (Ver 2.0) は主に 8〜16bit MCU を用いた小規模なシステム向け に作成したもので,ITRON2仕様は 32bit プロセッサ向けの仕様である.また これらの仕様の中でも,機能毎の必要度に応じたレベル分けをおこない,カー ネルを実装する際には必要度の高い機能のみを実装すればよいものとしている (図-2).最新のμITRON3.0仕様では,システムコールのレベル分けにより, 1つの仕様で小規模なプロセッサから大規模なプロセッサまでをカバーしてい る.
また,ネットワークで接続された分散システムのための仕様や,マルチプ ロセッサシステムのための仕様も,一連の ITRON仕様シリーズの中で標準化作 業をおこなっている.
カーネルが提供するプリミティブを少数に限定するのではなく,性質の異 なる豊富なプリミティブを提供するというアプローチを取る.アプリケーショ ンやハードウェアの性質に適合したプリミティブを利用することで,実行時性 能やプログラムの書きやすさの向上が期待できる.
これらの設計方針のいくつかに共通するコンセプトとして,「弱い標準化」 がある.弱い標準化とは,共通化すると実行時性能の低下につながるような部 分については無理に標準化をおこなわず,ハードウェアやアプリケーションに 依存して決めるべき部分として残すアプローチのことをいう.弱い標準化の考 え方により,多種多様なハードウェアの上で,その性能を最大限に発揮させる ことが可能になる.
我々は,1984年にプロジェクトを開始して以来,組み込みシステム用の標 準リアルタイムOS仕様について検討をおこない,その結果として,一連の ITRONリアルタイムカーネル仕様を策定・公開してきた.カーネル仕様に重点 を置いて標準化をおこなってきたのは,小規模な組み込みシステムでは,カー ネル機能のみが利用されるケースが多いためである.
最初の ITRON仕様は,1987年に ITRON1仕様という形でまとめた.ITRON1仕 様に従っていくつかのリアルタイムカーネルが開発・応用され,仕様の適用性 の検証に重要な役割を果たした.その後,小規模な 8〜16bit の MCU に適用 するために機能を絞り込んだμITRON仕様 (Ver 2.0),逆に大規模な 32bit の プロセッサに適用するための ITRON2仕様の検討を進め,共に 1989年に仕様を 公開した.この内μITRON仕様は,極めて限られた計算能力とメモリ容量しか 持たない MCU上でも実用的な性能を発揮することができたために,多くの種類 の MCU用に実装され,極めて多くの組み込みシステムに応用された.実際,ほ とんどすべての日本メーカ製の MCU 用にμITRON仕様のカーネルが開発されて いるといっても過言ではない.
このように,μITRON仕様が広範な分野に応用されるにしたがって,それぞ れの機能の必要性や性能に対する要求がより正確にわかってきた.また,MCU の適用分野が広がるに従って,μITRON仕様カーネルを 32bit MCU用に実装す るという仕様設計時に想定していなかった適用例も出てきた.そこで,それま での ITRON仕様を再度見直し,8bit から 32bit までの各規模の MCU に適用 できるスケーラビリティを持った仕様を策定する作業をおこなった結果, 1993年にμITRON3.0仕様を公開した.μITRON3.0の仕様書(英語版)は,ITRON ホームページからダウンロードすることができる.μITRON3.0仕様カーネルの 主な機能を表-3 に示す.
|
1998年9月1日現在 トロン協会に登録されている ITRON仕様リアルタイムカ ーネル製品の一覧を表-4に示す.表からもわかる通り,登録されているものだ けでも約30種類のプロセッサ用に 40を越える製品がある.まだ登録はされて いないが,米国のソフトウェアベンダが ITRON仕様カーネルをサポートする例 も出てきている.また,μITRON仕様カーネルは,規模が小さく比較的容易に 実装することができるために,ユーザが自社内専用に開発しているケースも多 く,製品化されているもの以外にも多くの実装例がある.また,フリーソフト ウェアとして配付されているμITRON仕様カーネルも,複数種類ある.
仕様 | 製品名 | 対象プロセッサ | メーカ名 |
---|---|---|---|
μITRON2.0 | TR90 | TLCS-90 | (株)東芝 |
HI8-3X | H8/300 | (株)日立製作所 | |
HI8-EX | H8/500 | (株)日立製作所 | |
HI8 | H8/500 | (株)日立製作所 | |
MR3200 | M32ファミリー | 三菱電機セミコンダクタシステム(株) | |
MR7700 | 7700ファミリー | 三菱電機セミコンダクタシステム(株) | |
Softune REALOS/907 | F2MC-16LX/16L/16/16H/16Fファミリー | 富士通(株) | |
MORTOS/n682 | MC68020 | (株)モアソンジャパン | |
RX78K/III | 78K/IIIシリーズ | 日本電気(株) | |
UDEOS/i86 | 8086シリーズ | 東芝情報システム(株) | |
UDEOS/m00 | 68000シリーズ | 東芝情報システム(株) | |
NORTi/86 | 8086 | 宮崎システム設計事務所 | |
AAAOS86 | 8086系 | スリーエース・コンピュータ(株) | |
Softune REALOS/896 | F2MC-8Lファミリー | 富士通(株) | |
HI8-S | H8/500 | (株)日立製作所 | |
TR900 | TLCS-900 | (株)東芝 | |
RX78K/II | 78K/IIシリーズ | 日本電気(株) | |
RX78K/0 | 78K/0シリーズ | 日本電気(株) | |
HI8-3H | H8/300H | (株)日立製作所 | |
MORTOS/n68 | MC68000 | (株)モアソンジャパン | |
MORTOS/n98 | 8086系 | (株)モアソンジャパン | |
HI-SH7 | SH | (株)日立製作所 | |
MR1600 | M16ファミリー | 三菱電機セミコンダクタシステム(株) | |
MR3800 | 38000シリーズ | 三菱電機セミコンダクタシステム(株) | |
NORTi/H83 | H8/300H | (有)宮崎システム設計事務所 | |
NORTi/Z80 | Z80 | (有)宮崎システム設計事務所 | |
RX78K/IV | 78K/IVシリーズ | 日本電気(株) | |
NORTi/SH | SH-1, SH-2 | (有)宮崎システム設計事務所 | |
NORTi/H85 | H8/500 | (有)宮崎システム設計事務所 | |
NORTi/68K | 68000, 68010, CPU32 | (有)宮崎システム設計事務所 | |
HI8-2600 | H8S | (株)日立製作所 | |
PrKERNEL | SH2, VR4100/VR4300, TMS470R1x, SR320 | エルグ(株) | |
μITRON3.0 | SR900 | SPC900 | ソニー(株) |
MR30 | M16C/60シリーズ | 三菱電機セミコンダクタシステム(株) | |
Softune REALOS/FR | FRファミリー | 富士通(株) | |
REALOS/SP | SPARCliteシリーズ | 富士通(株) | |
UDEOS/r39 | TLCS-R3900ファミリー | 東芝情報システム(株) | |
UDEOS/i586 | Pentium, i486 | 東芝情報システム(株) | |
MR32R | M32R/D | 三菱電機セミコンダクタシステム(株) | |
FS.ExRon-ARM | ARM7TDMIシリーズ | ファームウェアシステム(株) | |
HI7000 | SH-1, SH-2シリーズ | (株)日立製作所 | |
HI7400 | SH2-DSPシリーズ | (株)日立製作所 | |
HI7700 | SH-3シリーズ | (株)日立製作所 | |
ITRON1 | RX116 | V20 | エルグ(株) |
RX136 | V33A | エルグ(株) | |
RX320 | V25 | エルグ(株) | |
RX423 | V55PI | エルグ(株) |
言うまでもなく,このように多くの ITRON仕様カーネルが実装されるのは, 広い応用分野と極めて多くの応用事例があるためである.ITRON仕様カーネル が使用されている機器の例を表-5に挙げる.また,前に紹介したトロン協会に よるアンケート調査でも,ITRON仕様が特に民生機器の分野において広く使わ れており,事実上の業界標準仕様となっていることがわかる (図-6).ITRON仕 様カーネルを使っているケースの中で,自社製の ITRON仕様カーネルを使用し ているケースが多くあり,ITRON仕様が真にオープンな標準仕様となっている ことがわかる.
|
先に述べたように,ITRONプロジェクトでは,これまでリアルタイムカーネ ル仕様を中心に標準化活動をおこなってきたが,組み込みシステムの大規模化 ・複雑化が進行するに伴い,ソフトウェア部品 (ないしは,ミドルウェア) や 開発環境 (ツール) との関連など,リアルタイムカーネルを取り巻く環境を意 識した標準化活動の必要性が高まっている.ITRONプロジェクトでは,現在そ の中で,ソフトウェア部品の標準化に重点を置いた取り組みをおこなっている. 具体的には,ソフトウェア部品の開発・流通を促す条件を整えることに加えて, 分野を絞り込んでのソフトウェア部品インタフェースの標準化を進めてい る.
ソフトウェア部品の開発・流通を促す条件を整えるための活動として,次 の2つの課題を中心に検討をおこなっている.最初の課題は,現在実装されて いる ITRON仕様カーネルは実装毎の仕様の違いが大きいために,ソフトウェア 部品の流通性が十分に確保できないという問題を解決することである.そのた めには,弱い標準化の利点を残しつつ,カーネル仕様の標準化レベルを上げる ことが必要になる.2つめの課題は,ハードリアルタイム性を持ったソフトウェ ア部品をサポートすることである.ソフトウェア部品の中にはリアルタイム性 を求められるものが多くあり,ソフトウェア部品のリアルタイム制約を満たし つつアプリケーションと共存させたり,複数のソフトウェア部品の併用を可能 にする枠組みが求められる.以上の課題に関する検討結果は,現在検討中の次 世代のμITRONリアルタイムカーネル仕様であるμITRON4.0仕様に反映され る.
分野を絞り込んでのソフトウェア部品インタフェースの標準化としては, TCP/IP プロトコルスタックの API (アプリケーションプログラムインタフェ ース) と Java 実行環境について取り組みを行っている.
最近組み込みシステムの分野においても,TCP/IP プロトコルスタックの重 要性が増している.現在 TCP/IP の API として広く使われているソケットイ ンタフェースは,(特に小規模の) 組み込みシステムに用いるには,オーバヘッ ドが大きい,プロトコルスタック内で動的メモリ管理が必要になるなどの問題 がある.組み込みシステムのための標準的な TCP/IP API である ITRON TCP/IP API仕様は,ソケットインタフェースの持つこれらの問題を解決し,コ ンパクトで効率の良い TCP/IP プロトコルスタックを実現することを可能にす るために設計された.ITRON TCP/IP API仕様は,1998年5月に公開され た.
Java もまた,最近注目を集めている技術の1つである.Java の技術を組み 込みシステムに適用する現実的な方法として,Java実行環境を ITRON仕様カー ネル上に実現し,アプリケーションシステムを Java に適した部分は Javaプ ログラムの形で,ITRON仕様カーネルの利点を活かせる部分は ITRON のタスク として実装する方法がある.ここで,Javaプログラムと ITRONタスクの間の通 信インタフェースの標準化が重要な課題となる.JTRON2.0仕様は,この標準イ ンタフェースを定めることを目的に設計されたもので,1998年10月に公開され た.
ソフトウェア部品関連以外では,応用分野を絞り込んでの調査研究・標準 化活動として,自動車制御分野におけるITRON仕様カーネルに対する要求事項 を整理し,標準仕様に対する提案をまとめる活動を行った.そこでの検討結果 は,μITRON4.0仕様に反映される予定である.
この他にも,現在,リアルタイムカーネルを用いた組み込みシステム設計 の標準的な手法を提示するとともに,ハードリアルタイム性を持ったソフトウェ ア部品をサポートするためのアプリケーション設計ガイドラインの作成や,デ バイスドライバ設計ガイドラインの作成などの活動を進めている.その他にも, ITRON仕様カーネルとデバッグ環境とのインタフェースの標準化や, ITRON仕 様カーネルの C++言語バインディングの標準化など取り組むべき課題が数多く あり,順次標準化活動を開始したいと考えている.
これらの活動においては,従来の ITRON専門委員会メンバに限定せずにそ れぞれの分野の専門家の参加を募り,有効性の高い標準仕様の策定を目指して いる.
ITRON仕様が業界標準と呼べるものとなっている一方で,ITRONプロジェク トの活動は十分には知られておらず,従来以上に広報活動に力を入れている. また,ITRON仕様を海外においても普及させるべく,対外的な普及・広報活動 にも力を入れている.
具体的には,ITRONプロジェクトの活動を広報する場として,ITRONホーム ページをインターネット上に用意するとともに,ITRONニュースレターを隔月 で発行している (いずれも日本語・英語の両バージョンあり).また,プロジェ クトの最新状況を報告する場として,1年に1回 ITRONオープンセミナーを開催 している.その他,組み込みシステムに関連する展示会やセミナー等において, ITRONプロジェクトに関する普及・広報活動を積極的におこなっている.
海外に対する普及・広報活動としては,1年に1回米国において ITRON International Meeting を開催している.また,組み込みシステム分野で世界 最大の展示会である Embedded Systems Conference においてブースを出すな どの形で普及・広報活動をおこなっている他,アジア地域において ITRON仕様 に関するセミナーを開催するなどの活動を進めている.
ITRON仕様カーネルは,日本の主要な半導体メーカを含む多くのメーカが, 規模の異なる様々なプロセッサ用に実装をおこない,その多くが製品化され, また広く応用されている.特にμITRON仕様カーネルは,今までメモリ容量や 実行速度の制約によってリアルタイムOS が使用できなかったシングルチップ の MCU への適用が進んでおり,μITRON仕様がこの分野における世界初の標準 カーネル仕様の地位を築きつつあるということができる.
我々は,このような実績をベースとして,標準化の対象をカーネル仕様か らソフトウェア部品や開発環境などの周辺仕様へと広げると同時に,応用分野 毎の調査研究・標準化活動を進めている.将来的な方向性としては,TRONプロ ジェクトのゴールである HFDS (超機能分散システム) の実現へ向けて,次の 世代の ITRON仕様である IMTRON の検討へと進めていく計画である.