ITRON サブプロジェクト


ITRON は、機器組み込み制御用リアルタイム OS の仕様である。 ITRON サブプロジェ クトは、 1984 年のトロンプロジェクトの始まりと同時に開始され、 1994 年で 10 年目を迎えた。この間に、一連の ITRON 仕様が作成・公開され、それらに基づいて数 多くの実装がなされてきた。また、トロン協会 ITRON 専門委員会を中心に普及活動が 行われ、現在では業界の標準仕様として定着しつつある。

ITRON は、トロンプロジェクトの枠組の中では、機械とのインタフェースを受け持つ OS という位置づけを持っている。トロンプロジェクトが構築を目指す HFDS ( Highly Functionally Distributed System )においては、生活環境のいたるところ に埋め込まれたインテリジェントオブジェクトに、 ITRON 仕様の OS が用いられる。 インテリジェントオブジェクトは、センサー、アクチュエータとそれを制御するための 組み込みコンピュータシステムから構成され、環境の変化に自ら反応し、人間に快適な 生活環境を提供する。さらに、それらがコンピュータネットワークにより相互に接続さ れて、協調動作することにより、人間の活動を多様な側面から支援することになる。

ITRON サブプロジェクトが開始された当時は、 16bit の汎用プロセッサの組み込みシ ステムへの応用が広がり始めた時期で、用語の統一や教育面での問題が指摘されていた。 このような背景から、複数のプロセッサに適用できるリアルタイム OS の標準仕様とし て ITRON 仕様の検討が開始され、 1987 年に ITRON1 仕様という形で公表された。 その後、より小規模な主に 8bit の MCU に適用するために機能を絞り込んだ μ ITRON 仕様(バージョン 2.0 )、逆により大規模な 32bit プロセッサに適用するため の ITRON2 仕様の検討が進められ、共に 1989 年に仕様書が公開された。これらの ITRON 仕様のカーネルは、多くの種類のプロセッサ上に実装され、また広範な分野へ の応用が進んでいる。

その後、 μITRON 仕様を整理し、よりよい仕様とする検討が行われた。また、 HFDS 構築へのステップとして、ネットワークで接続された複数のプロセッサで構成される組 み込みシステムに適用するための仕様の検討も進められ、それらの成果が 1993 年に μITRON3.0 仕様として公開された。さらに、 HFDS の実現に向けて、新しい ITRON 仕様の検討が続けられている(図 1 )。

図 1   ITRON 仕様の発展


ITRON 仕様の設計方針

ITRON 仕様を設計するにあたっての基本的な要求項目として、以下の 4 つが挙げられ る。

1. ハードウェアの性能を最大限に利用できること

機器組み込み用コンピュータシステム、とりわけ民生機器に組み込まれるシステムの場 合には、コストパフォーマンスに対する要求が厳しい。そのため、極めて限定された計 算機資源の下で、ハードウェアの性能を最大限に発揮できるような OS が望まれる。

2. 高いリアルタイム性が得られること

機器組み込みシステムは、外界からの要求や環境の変化に対して、あらかじめ決められ た(多くの場合に)短い時間内に反応しなければならない。そのため、機器組み込み用 の OS には、高い応答性と予測可能性(実行時間やメモリ使用量があらかじめ予測でき る性質)が要求される。

3. 広範なハードウェアに適用できること

機器組み込みシステムのハードウェアは、その応用に最適になるように設計されるのが 通常である。また、制御される対象の機器によって、システムの規模もさまざまである。 そのため、そこに用いる OS 仕様は、広範なハードウェアやプロセッサのアーキテクチャ に適用できることが必要である。

4. ソフトウェアの生産性を向上させること

ソフトウェアの生産性向上は、 OS を用いる動機の 1 つであり、 ITRON 仕様において も重視しているのは言うまでもない。ところが、ソフトウェアの生産性と実行時性能と が両立しないケースも多い。例えば、実行効率を上げるためには、実装依存の部分を多 くし、ハードウェアごとに最適な仕様を採用できるようにする方法が考えられる。しか し、この方法はプログラムの移植性を下げることになり、ひいてはプログラムの生産性 を悪くすることになる。

トロンプロジェクトでは、応用分野からの要求に応じて 3 種類の OS 仕様を作成して いるが、上述した通り組み込みシステムにおいてはコストパフォーマンスに対する要求 が厳しく、 ITRON は 3 つの OS 仕様の中で実行時性能に最も重点を置いた OS 仕様に なっている。実行時性能を落さないという前提の下で、ソフトウェアの生産性を最大限 に向上させることが必要である。
以上の要求を満たすために、以下の設計方針を設定している。

1. ハードウェアの過度の仮想化を避けること

ハードウェアの持つ性能を最大限に発揮させ、高いリアルタイム性能を得るためには、 仕様作成にあたって、ハードウェアを過度に仮想化することは避けなければならない。 ITRON は複数種類のプロセッサ上に実装することを目的とした OS であるが、具体的 な実装設計は、プロセッサごとに独立して行うことを基本方針としている。

標準 OS を設計する場合に、多くのプロセッサに共通する仮想アーキテクチャを想定し、 その上に ITRON 仕様を定義する方法がある。しかし、この方法では、実際のプロセッ サのアーキテクチャと仮想的なアーキテクチャとの差が、実行時のオーバーヘッドの原 因となり、実行時性能の低下につながる。また、プログラマがシステムの挙動を把握す ることが難しくなり、リアルタイムシステムの実現を困難にする。

ITRON 仕様においては、プロセッサ間で共通化する仕様と、プロセッサに依存して決 めてよい仕様を明確に分離した。そして、共通化すると実行時性能の低下につながるよ うな部分については無理に標準化を行わず、標準化・仮想化による性能の低下を避ける ように配慮した。

2. アプリケーションに対する適応化を考慮した仕様とすること

アプリケーションに対する適応化とは、アプリケーションに必要となる OS の機能や要 求される性能に応じて、 OS の仕様や内部の実装方法を変更し、システム全体として性 能向上をはかるアプローチをいう。組み込みシステムの場合、カーネルのオブジェクト コードはアプリケーションごとに生成されるため、アプリケーションに対する適応化が 特に有効に働く。

3. ハードウェアに対する適応化を考慮した仕様とすること

ハードウェアに対する適応化とは、ハードウェアの持つ性能や性質に応じて、 OS 仕様 や内部の実装方法を変え、システム全体としての性能向上をはかることをいう。

4. プログラマの教育を重視すること

組み込みシステムにおいては、あるシステム用に開発されたソフトウェアがそのまま次 に開発するシステムに使えることはまれであり、ソフトウェアの互換性やポータビリティ は、それほど重視されない傾向にある。それよりも、 OS 仕様の標準化によって、プロ グラマの教育が容易になったり、用語や概念の統一を通じてエンジニア間の意志疎通が スムーズになることが重要と考えられる。

ITRON 仕様では、特にプログラマの教育を重視するため、標準化を通じて一度覚えた 事が広く活用できるよう配慮している。また、仕様における用語の使い方や、システム コールなどの名前の決め方などは、できる限り一貫性を持つよう配慮した。また、教育 用テキストの作成にも力を入れている。

5. 広い範囲のハードウェアに適合できるようにするため、仕様のシリーズ化やレ ベル分けを行うこと

多種多様なハードウェアへの適用を可能にするため、仕様のシリーズ化やレベル分けを 行う。すでに作成した仕様のうち、 μITRON 仕様(バージョン 2.0 )は主に 8bit MCU など小規模なシステム向けに作成されたもので、 ITRON2 仕様は 32bit プロセッ サなど大規模システム向けの仕様である。また、これらの仕様の中でも、さらに機能ご との必要度に応じたレベル分けを行っている。最新の μITRON3.0 仕様では、システ ムコールのレベル分けにより、1つの仕様で小規模なプロセッサから大規模なプロセッ サまでをカバーしている。

また、ネットワークで接続された分散システムのための仕様や、マルチプロセッサシス テムのための仕様も、一連の ITRON 仕様シリーズの中で標準化を行っている。この内、 分散システムのための仕様は、 μITRON3.0 の中にも取り込まれている。

6. 豊富な機能を提供すること

OS が提供するプリミティブを少数に限定するのではなく、性質の異なる豊富なプリミ ティブを提供するというアプローチを取る。ハードウェアやアプリケーションの性質に 適合したプリミティブを利用することで、実行性能やプログラムの書きやすさの向上が 期待できる。


ITRON 仕様の現状と概要

以下では、最新の ITRON カーネル仕様である μITRON3.0 と、 ITRON のためのファ イルシステムの仕様である ITRON/FILE の概要について紹介する。

μITRON3.0 仕様の位置付け

μITRON3.0 仕様は、既存の ITRON 仕様カーネルの実装や応用の経験をフィードバッ クして仕様の改良を行うと同時に、 ITRON カーネルを疎結合ネットワークによって接 続された分散システムに適用できるよう拡張したものである。

ITRON 仕様のバージョンアップ

最初に述べたように、 ITRON サブプロジェクトでは、 ITRON のカーネル仕様として、 ITRON1 仕様、 ITRON2 仕様および μITRON 仕様(バージョン 2.0 )を作成・公開 してきた。これらの仕様に従って多くの製品が実装され、また多くの組み込み機器に応 用されてきた経験から、仕様のバージョンアップすべき点が明らかになってきた。 μ ITRON3.0 仕様では、これらの過去の経験を仕様にフィードバックして各種の機能を整 理し、よりわかりやすく使いやすい仕様とした。この意味で、 ITRON1 を第 1 世代の ITRON カーネル仕様、それをベースにした ITRON2 および μITRON (バージョン 2.0 )を第 2 世代とするなら、 μITRON3.0 は第 3 世代の ITRON 仕様であると位置 付けられる。

従来の μITRON 仕様(バージョン 2.0 )においては、適応化を重視するために実装依 存の部分が多く残されていたわけだが、 μITRON3.0 仕様では、実行時性能を犠牲に しない範囲でできる限り標準化を進めた。また、システムコールの必要性を示すレベル の数を減らすと同時に、最低限のレベルである R ( Required )レベルを、 μ ITRON3.0 仕様に準拠するカーネルが満たさなければならない最低限の仕様であると規 定し、アプリケーションの互換性を保ちやすいよう配慮している。

ネットワーク対応

近年のマイクロプロセッサの低価格化にしたがい、 1 つの組み込みシステムを複数の マイクロプロセッサを使って構築するケースが増えている。具体的には、センサーやア クチュエータとの間の配線量を減らしたいケースや、システムのモジュール化を進めた いケースでこのような要求が強く、今後ともこのようなケースが増えると予想される。 そこで μITRON3.0 仕様では、 ITRON カーネルを持ったノードを疎結合ネットワーク によって接続したシステムをサポートするための機能を追加した。具体的には、通常の システムコールを使って、他のノード上のオブジェクト (タスク、セマフォなど)を 直接操作することができる。この機能を、接続機能と呼んでいる。

μITRON3.0 仕様でサポートするネットワークは、シリアル回線や LAN による接続な ど、共有メモリを持たない接続を仮定している。また、ネットワークのノード構成は、 システム構築時に静的に決まることを仮定している。 HFDS の実現のためには、ノー ドが動的に増減したり、ネットワーク構成が動的に変化するような状況を考える必要が あるが、これについては、 μITRON3.0 仕様を拡張する方向で検討していく予定であ る。

μITRON3.0 仕様の概要

μITRON3.0 仕様は、従来 μITRON 仕様(バージョン 2.0 )がカバーしていた適用 範囲と、 ITRON2 仕様がカバーしていた範囲を 1 つの仕様でカバーするために、機能 的には、 ITRON2 仕様で定義されていた機能についても、相当部分を取り込んでいる。 μITRON3.0 の主な機能を表 1 に示す。


表 1   μITRON3.0 仕様の主な機能
  1. タスク管理機能
  2. タスク付属同期機能
  3. 同期・通信機能
  4. 拡張同期・通信機能
  5. 割込み管理機能
  6. メモリプール管理機能
  7. 時間管理機能
  8. システム管理機能
  9. ネットワークサポート機能

システムコールのレベル分けについては、従来の仕様よりもレベル分けの段数を減ら し、次のように定めている。

レベル R (Required )
μITRON3.0 仕様 OS として必須の機能で、リアルタイムマルチタスク OS と しての基本的な機能を含む。従来の μITRON 仕様のレベル 1 〜 2 に相当する。

レベル S (Standard )
リアルタイムマルチタスク OS としての標準的な機能を含む。従来の μITRON 仕 様のレベル 3 〜 4 に相当する。

レベル E (Extended )
大規模システム向けの追加・拡張機能。従来の μITRON 仕様に含まれていなかっ た機能( ITRON2 の機能)に相当する。

レベル C (CPU dependent )
プロセッサ、ハードウェア構成、実装に依存した機能。プロセッサやハードウェ アに 独立に仕様を決めることが難しいシステムコールについては、システムコールの名称と、 パラメータの標準的な意味を定め、実装にあたってのガイドラインとしている。

また、これらとは別の視点として、接続機能に対応しているかどうかという面からも、 システムコールの分類を行っている。

以上は、システムコールを単位としたレベル分けであるが、これ以外に、システムコー ルによっては、追加・拡張機能を導入できる場合がある。これをレベル X の機能と呼 び、システムコールの標準的な機能と区別している。レベル X の機能の例としては、 セマフォやメイルボックスの待ち行列を優先度順にする指定や、イベントフラグの複数 タスク待ちの機能がある。

μITRON3.0 仕様を実装しようとする OS メーカーは、まず、ターゲットとするプロ セッサや想定する応用分野に応じて、 μITRON3.0 仕様に定義された機能の内どの機 能をサポートするかを、これらのレベル分けを参考にして決定することになる(ハード ウェアに対する適応化)。さらに、アプリケーション開発者は、 OS メーカーによって 提供された機能の内、アプリケーションに必要な機能だけを取り込んだカーネルを作り、 最終製品に組み込むことになる(アプリケーションに対する適応化)。この 2 段階の 適応化の例を、図 2 に示す。

図 2   μITRON 仕様における適応化

μITRON3.0 仕様の接続機能

μITRON3.0 仕様では、疎結合ネットワークによる接続であることを明示するために、 プロセッサを持った結合の単位をノードと呼ぶ。 μITRON3.0 の接続機能は、通常の システムコールを使って、他のノード上のオブジェクト (タスク、セマフォなど)を 直接操作することを可能にするための機能である。

他ノード上のオブジェクトを、自ノードのオブジェクトとまったく同じインタフェース で操作可能にするために、オブジェクトの ID 番号を使って、そのオブジェクトが所在 するノードを表す方法をとっている。具体的には、オブジェクトの ID 番号から、その 所在ノードと所在ノード上でのオブジェクト番号を検索するためのテーブルを導入し、 オブジェクト操作時にこのテーブルを引く。このテーブルを、オブジェクト所在テーブ ルと呼ぶ。

また、 μITRON3.0 の接続機能の仕様では、システムコールインタフェースの標準化 だけではなく、別プロセッサや別メーカーの μITRON 同士の接続を可能にするために、 通信プロトコルやパケット形式についても標準仕様を提示するという方針をとっている。 ノード間の接続に使われるハードウェアはアプリケーションごとに適切なものが使われ ることになるため、ハードウェアレイヤを 1 つに統一することはできない。そのため、 ノード間の信頼性のあるパケット配送の仕組みはあるものと仮定して、その上で用いる パケット形式の標準化を行うというアプローチをとっている。

ITRON/FILE 仕様

ITRON/FILE 仕様は、 ITRON 仕様 OS の標準的なファイルシステムの仕様である。ファ イル構造は、 BTRON ファイルシステムのサブセットになるように、設計されている。


ITRON 仕様の実装状況

トロン協会で用意している ITRON 関連製品登録制度に登録されている製品の一覧を表 2 に示す。 ITRON 仕様カーネルは、規模が小さいこともあり、比較的容易に実装する ことができるために、アプリケーション開発者が自社用に開発しているケースも多く、 この表にある以外にも多くの ITRON 仕様カーネルの実装例がある。

表 2   ITRON 仕様関連製品制度登録製品一覧( 1994 年 10 月 1 日現在)

最初の ITRON 仕様である ITRON1 は、 ITRON サブプロジェクト開始当初に、インテ ル 8086 、モトローラ 68000 、インテル 80286 、ナショナルセミコンダクタ NS32000 上に、それぞれ日本電気、日立製作所、富士通、三菱電機が実装を行った。 これらの実装は、 ITRON 仕様の有効性を検証するために大きな役割を果たしたが、古 い仕様となってしまったために、現在市販されているものは少なくなっている。

μITRON 仕様(バージョン 2.0 )は、先に述べた数社に加えて数多くのメーカーによっ て実装されている。主要な半導体メーカーが、自社の 8bit あるいは 16bit MCU 上に μITRON 仕様カーネルを実装している。また、いくつかのソフトウェアメーカーが、 汎用のプロセッサ上やパーソナルコンピュータ上で動作する実装を行っている。このよ うな中で、当初想定していなかった 32bit プロセッサ上への実装も行われており、 μ ITRON 仕様の適用範囲の広さを実証すると同時に、 8bit MCU から 32bit 汎用プロセッ サまでを対象として μITRON3.0 仕様を作成する動機の 1 つにもなった。 ITRON2 仕 様は、主にトロン仕様チップ上に実装されている。このように多くの ITRON 仕様カー ネルが実装されるのは、広い応用分野で極めて多くの応用事例があるためである。 ITRON の主な応用例を表 3 に示す。

表 3   ITRON 仕様 OS の主な応用例

最新の μITRON3.0 仕様については、まだ登録製品のリストには現れていないが、各 社で開発が進行中で、すでにいくつかの実装が完了している。新たに開発される ITRON 仕様カーネルから、順次 μITRON3.0 仕様に切り替わっていくものと思われる。

また、大学の研究室や個人によって実装された μITRON 仕様カーネルも数種類あり、 フリーソフトウェアとして配布されている。


ITRON 専門委員会の活動

トロン協会の ITRON 専門委員会では、紹介してきたような ITRON 仕様の検討・公開 作業を進めると同時に、 ITRON 仕様に関する普及活動にも力を入れている。 ITRON 仕様の普及活動としては、上で紹介した ITRON 関連製品登録制度の運用に加えて、 ITRON 標準ガイドブックの編集・発行、 ITRON オープンセミナーの開催(毎年 1 回) や、 ITRON ニュースレターの発行( 2 カ月に 1 回)を行っている。 ITRON ニュース レターは、 TRONWARE 誌およびトロン協会の機関誌上に掲載され、 ITRON サブプロ ジェクトに関連する各種の情報を提供している。


ITRON の将来展望

今後も、半導体技術の進歩によるマイクロプロセッサの高機能化、高性能化は進むと考 えられ、それに伴って、組み込みシステムの応用分野もますます広がると予想される。 このような状況の変化に伴って、 ITRON 仕様も拡張やシリーズ化を進めていく必要が ある。

さらに、 HFDS の実現に向けて、さらに大規模なネットワークや、ネットワークの構 成が動的に変化するような状況にも対応することが必要になる。この段階の仕様を IMTRON と呼び、さらに次の世代の ITRON 仕様と位置づけている。また、共有メモリ マルチプロセッサシステムに適用するための、 ITRON-MP 仕様についても、検討を行っ ている(図 1 )。

HFDS が実現された環境においては、コンピュータを内蔵したほとんどすべての機器が ネットワークに接続され、協調動作を行う。ネットワークを構成する各ノードが、同じ OS を用いて作られていることはコストパフォーマンスの向上や開発コストの面から有 利であり、組み込みシステムのための標準 OS としての ITRON の意味が、現在以上に 重要になってくると考えられる。

また、 ITRON を用いた組み込みシステムのソフトウェア開発分野の標準化についても、 重要な課題と考えて、検討を進めている。具体的な検討課題としては、 μITRON3.0 仕様に準拠した OS 間の相違を明確にするための互換性チェックシートの作成や、 ITRON 仕様 OS とデバッガや ICE などの開発ツールとのインタフェースの標準化など が挙げられる。


おわりに

ITRON 仕様の実装は、国内の主要な半導体メーカーを含む多くのメーカーが、規模の 異なるさまざまなプロセッサに対して行い、製品化されているものも多い。特に μ ITRON 仕様は、今までメモリサイズや実行速度の制限によってリアルタイム OS が使 用できなかったシングルチップ MCU への実装が数多くなされており、また製品化され ている。このことは、 μITRON 仕様が、シングルチップ MCU 分野における世界初の 標準 OS となってきていることを示している。 ITRON サブプロジェクトの成果を活か していくためには、今後も、 ITRON 仕様をさらに発展させていくことが必要である。