組み込みシステム環境とリアルタイムOS の動向
− ITRON仕様を中心に −

(社)トロン協会 ITRON専門委員会


目次

1.はじめに
2.小規模な組み込みシステムの現状と問題点
小規模な組み込みシステムの現状と特徴
組み込みシステム用のリアルタイムOS に対する要求
従来の OS の問題点
3.μITRON仕様の設計方針と現状
μITRON仕様の設計方針
μITRON仕様カーネルの現状
標準化によるメリット
4.μITRON仕様カーネルの実装
小規模なMCUへの実装
組み込み用RISCプロセッサへの実装
5.ネットワークサポートと今後の展望
6.おわりに
参考文献

1.はじめに

μITRON仕様は,主に小規模な機器組み込み制御システム用リアルタイムカー ネルの標準仕様である.μITRON仕様は,数多くの 8bit,16bit,32bit の MCU (Micro Controller Unit,シングルチップマイコンと呼ばれる場合もある) 上に実装され,製品化されているものだけでも約30の実装例が報告されている. また,極めて多くの組み込みシステムに応用され,この分野における業界標準 の地位を築きつつある.

本稿ではまず,組み込みシステムの現状について紹介し,組み込みシステム用 リアルタイムOS仕様の標準化に対する要求が高いことを指摘する.次に,その 要求に答えるために作成したμITRON仕様の設計方針について述べ,その実 装・応用状況を紹介する.また,μITRON仕様カーネルの実装技術について も解説し,μITRON仕様の今後の発展性について述べる.

2.小規模な組み込みシステムの現状と問題点

小規模な組み込みシステムの現状と特徴

電子機器(装置) にコンピュータが内蔵されてはいても,それが通常のコンピュ ータとして意識されることなく用いられているような場合,「コンピュータが 機器の制御用に組み込まれたシステム」という事を通常手短に「組み込みシス テム」と表現する.

マイクロコンピュータ技術の発展に伴い,組み込みシステムの応用分野も拡大 の一途をたどり,当初工場の生産ラインの制御等産業用途で産声をあげたもの が,通信機器や OA機器等業務用途に拡大し,近年は,自動車をはじめ,電子 楽器やゲーム機,携帯電話,携帯用ビデオカメラ,テレビ,オーディオ,洗濯 機,エアコン,照明器具等民生分野に急激に拡大し,今では身の回りで組み込 みシステムでないものを探す事の方が難しくなっている.

一般に,民生機器に代表される小規模な組み込みシステムには,産業機器に代 表される規模の大きい組み込みシステムと比較して,機器の製造個数が極めて 多く,単価が安いという特徴がある.そのため,大規模な組み込みシステムで は開発コストを下げることが重視されるのに対して,小規模な組み込みシステ ムでは最終製品の製造コストを下げることが重視される傾向にある.また,特 に民生機器分野では,一度販売した機器のソフトウェアを改修することはほと んどなく,システム開発のライフサイクルが短いことも,特徴の 1つとなって いる.

小規模な組み込みシステムの分野では,プロセッサコアに加えて,ROM,RAM, 汎用I/Oデバイス,用途に応じたデバイスなどを 1チップ化した MCU が広く使 われている.

1994年の全世界での出荷個数ベースで,MCU は MPU より 1桁多く,年間約20 億個が出荷されている (表-1).特に日本においては MCU の割合が高く,日本 国内での出荷が全世界の中で占める比率が,MPU では1割以下であるのに対し て,MCU では約4割を占めている.トロン協会が 1994年に行ったアンケート調 査からも,日本においては,8bit や 16bit といった小規模なプロセッサが使 用されるケースが多いことがわかる (図-2).

MCU上のソフトウェアを開発する際には,最終製品のコストダウンの要請から, ハードウェア資源の制約が問題になる.とりわけメモリ容量の制約は厳しく, 典型的な 8bit MCU で,ROM が 32KB,RAM が 1KB 程度,少し大規模なもので もそれぞれ 128KB,4KB 程度のメモリ容量しか持っていない.

表-3 日本メーカ製の MCU用プロセッサコアの例
メーカ名 8bit 16bit 32bit
(株)東芝 TLCS-870, TLCS-90 TLCS-900, TLCS-9000 R3900
(株)日立製作所 H8/300, H8/300L H8/500, H8/300H SH1, SH2, SH3
富士通(株) F2MC-8L F2MC-16L/H/F FR20, SPARClite
三菱電機(株) 38000 7700, M16, M16C M32
※ ITRON専門委員会メンバ社の代表的なプロセッサコアをリストアップした

高いコストパフォーマンスが求められる MCU は,しばしばアプリケーション に最適化して設計されることから,プロセッサコアの種類が極めて多いことも 特筆すべき点である.表-3 に,日本の半導体メーカが販売している MCU用の プロセッサコアの例を挙げる.この表にあるプロセッサコアの多くは,各メー カ独自のアーキテクチャを採用している.

このような小規模な組み込みシステムの分野においても,ソフトウェアの生産 性の向上は重要な課題となっており,C言語などの高級言語を使うケースや, μITRON仕様を代表とするリアルタイムOS を用いるケースが多くなってい る.

組み込みシステム用のリアルタイムOS に対する要求

マイクロプロセッサの高性能化が進む一方で,家電製品など大量生産される機 器への応用が広がっていることから,組み込みシステムのコストパフォーマン ス向上に対する要請は以前にも増して強いものとなっている.また,組み込み システムの応用分野の拡大に伴って,リアルタイムOS を扱うべきソフトウェ ア技術者も増加しており,設計者やプログラマの教育の重要性も高い.

このことを実証するデータとして,トロン協会が 1994年に行ったアンケート 調査でも,組み込み用リアルタイムOS の問題点として,OS により仕様が異な るために切替えの負荷が大きい,上位互換性がないといった標準化の問題,設 計者が少ない,技術が不足といった教育上の問題を挙げたケースが多くを占め た (図-4).

以上のことから,小規模な組み込みシステム用リアルタイムOS仕様の標準化に 対して,強い要求があることがわかる.とりわけ,概念や用語の統一といった 教育面を重視して,広い範囲の組み込みシステムに適用できるものであること が求められている.それに対して,他の多くの OS標準仕様が重視しているソー スコードレベルの完全な互換性はそれほどは重要ではなく,コストパフォーマ ンスを低下させてまでポータビリティを向上させる意義は少ない.これは,小 規模な組み込みシステムの場合,別のプロセッサおよびその上の OS への移行 が必要になるのは,制御対象の機器の側にも変更がある場合が通常であり,ア プリケーションプログラムを修正なしに他の OS 上へ移植するという状況はほ とんどないためである.また,用いるプロセッサを変更した場合には,最終製 品のコストダウンのために,ソフトウェアのチューニング作業をやり直すこと も多く,ソースコードの完全な互換性が重視されないもう一つの理由となって いる.

以上の要求をもう一度整理すると,次のようになる.

以上で述べた要求事項に加えて,仕様が真の意味でオープンであることも重要 な要件となる.これは,仕様書が書籍などの形で一般に公開されるだけでなく, それに基づいた製品を誰もが自由に実装・販売できることも意味している.

従来の OS の問題点

小規模な組み込みシステム向けのリアルタイムOS には前節で述べたような要 求事項があるわけだが,それに対して,従来の OS には以下に挙げるような問 題がある.

第一の問題点として,プロセッサのアーキテクチャの仮想化が,実行時性能の 低下を引き起こしていることが挙げられる.複数種類のプロセッサ上で動作す る OS を設計する場合には,それらのプロセッサに共通する仮想アーキテクチャ を想定し,その上に OS が構築されるのが通常である.しかしこの方法では, 実際のプロセッサのアーキテクチャと仮想的なアーキテクチャとの差が実行時 のオーバヘッドの原因となり,実行時性能の低下につながる.

次の問題点として,ソフトウェアの生産性を上げるために,小規模な組み込み システムには必ずしも必要でない高度な機能を取り込んだことで,OS のサイ ズが大きくなり,実行時性能も低下しているケースが多いことがある.そのた め,限られたハードウェア資源で動作させることが難しくなっている.

さらに,多く種類のプロセッサに共通に利用できるリアルタイムOS のオープ ンな標準仕様がないことも,大きな問題点である.半導体メーカは,自社のプ ロセッサ向けの OS しか提供しないし,OSメーカは,数多くのプロセッサをサ ポートしきれていない.標準仕様の欠如は,同じ用語を OS ごとに違う意味に 用いていたり,同じような機能は持っていても細部がばらばらで混乱を招きや すいといった問題を引き起こしている.

3.μITRON仕様の設計方針と現状

前節で述べた標準化への要求を受けて,我々は約10年前から,組み込みシステ ム向けの標準リアルタイムカーネル仕様について検討を行い,その結果として, 一連の ITRON仕様を作成・公開してきた.カーネル仕様に重点を置いて検討を 行ったのは,小規模な組み込みシステムでは,カーネル機能のみが利用される ケースが大部分を占めているためである.

μITRON仕様の設計方針

前節で述べた要求事項を満たすために,μITRON仕様を設計するにあたって, 以下の設計方針を設定している [2].

表-6 μITRON仕様カーネルの実装例
(1995年10月1日現在 トロン協会に登録されているもの)
製品名 対象プロセッサ メーカ名
TR90 TLCS-90シリーズ (株)東芝
HI8-3X H8/300シリーズ (株)日立製作所
HI8-EX H8/500シリーズ (株)日立製作所
HI8 H8/500シリーズ (株)日立製作所
MR3200 M32シリーズ 三菱電機セミコンダクタソフトウェア(株)
MR7700 MELPS7700シリーズ 三菱電機セミコンダクタソフトウェア(株)
REALOS/97 F2MC-8 富士通(株)
REALOS/907 F2MC-16 富士通(株)
MORTOS/n682 MC68020 (株)モアソンジャパン
RX78K/III 78K/IIIシリーズ 日本電気(株)
UDEOS/i86 8086シリーズ 東芝情報システム(株)
UDEOS/m00 68000シリーズ 東芝情報システム(株)
NORTi/86 8086 宮崎システム設計事務所
AAAOS86 8086系 スリーエース・コンピュータ(株)
REALOS/96 F2MC-8L 富士通(株)
ARIOS960M i960シリーズ (株)システムアルゴ
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 SH7000シリーズ (株)日立製作所
MR1600 M16 三菱電機セミコンダクタソフトウェア(株)
MR3800 38000シリーズ 三菱電機セミコンダクタソフトウェア(株)
SR900 SPC900 ソニー(株)

これらの設計方針のいくつかに共通するコンセプトとして,弱い標準化がある. 弱い標準化とは,共通化すると実行時性能の低下につながるような部分につい ては無理に標準化を行わず,プロセッサや応用に依存して決めてよい部分とし て残すアプローチのことをいう.弱い標準化の考え方により,多様なハードウェ アの上で,その性能を最大限に発揮させることが可能になる.

μITRON仕様カーネルの現状

先に述べたように,我々は約10年前から,一連の ITRON仕様を作成・公開して きた.最初の ITRON仕様は,1987年に ITRON1仕様という形でまとめた.その 後,より小規模な 8〜16bit の MCU に適用するために機能を絞り込んだ μITRON仕様 (Ver 2.0),逆により大規模な 32bit の MPU に適用するため の ITRON2仕様の検討を進め,共に 1989年に仕様書を公開した.

この内,μITRON仕様は,極めて限られた計算能力とメモリ容量しか持たな い MCU でも,実用的に利用できる性能を発揮することができたために,多く の種類の MCU 用に実装された.実際,ほとんどすべての日本メーカ製の 8bit MCU 用にμITRON仕様のカーネルが開発されているといっても過言ではない. さらに,MCU の適用分野が広がるにしたがって,各種の 16bit MCU,さらには 32bit MCU,MPU用にもμITRON仕様カーネルが開発され,トロン協会に登録 されているものだけでも,十数種類のプロセッサ上に 30近くの実装例がある (表-6).また,μITRON仕様カーネルは,規模が小さく,比較的容易に実装 することができるために,ユーザが自社内専用に開発しているケースも多く, 製品化されているもの以外にも多くの実装例がある.また,フリーソフトウェ アとして配付されているμITRON仕様カーネルも,複数種類ある.

言うまでもなく,このように多くの μITRON仕様カーネルが実装されるの は,広い応用分野と極めて多くの応用事例があるためである.μITRON仕様 カーネルが使用されている機器の例を表-7 に挙げる.

また,前に紹介したトロン協会が 1994年に行ったアンケート調査でも, μITRON仕様が民生機器の分野において広く使われており,事実上の標準と なっていることがわかる (図-8).また,自社製の ITRON仕様カーネルを使用 しているケースが多いことから,μITRON仕様が真にオープンな標準仕様と なっていることがわかる.

このように,μITRON仕様カーネルが広範な分野に応用されるにしたがって, それぞれの機能の必要性や性能に対する要求が,より正確にわかってきた.ま た,上でも述べたように,μITRON仕様カーネルを 32bit プロセッサ用に 実装するという当初想定していなかった適用例も出てきた.そこで,これまで の ITRON仕様を再度見直す作業を進め,1993年に,第3世代の ITRON仕様であ るμITRON3.0仕様を公開した [3].μITRON3.0仕様カーネルの主な 機能を表-9 に示す.

表-9 μITRON3.0仕様カーネルの主な機能
  1. タスク管理機能
    • タスクの状態を直接操作したり,参照したりする機能.
  2. タスク付属同期機能
    • タスク自身が持つタスク間同期機能.
  3. 同期・通信機能
    • タスクとは独立した同期・通信機能で,セマフォ,イベントフラグ,メ イルボックスの 3つの機能が含まれる.
  4. 拡張同期・通信機能
    • タスクとは独立した同期・通信機能のうち高度な機能を持つもので,メッ セージバッファ,ランデブポートの 2つの機能が含まれる.
  5. 割込み管理機能
    • 外部割込みに対するハンドラを定義する機能.
    • 外部割込みの禁止/許可などを行う機能.
  6. メモリプール管理機能
    • ソフトウェアによって,メモリプールの管理やメモリブロックの割当を 行う機能.
  7. 時間管理機能
    • システムクロックの設定や参照を行う機能.
    • タスクを遅延させる機能.
    • 時間をきっかけに起動されるタイマハンドラを扱う機能.
  8. システム管理機能
    • システム全体の環境を設定したり参照したりする機能.
  9. ネットワークサポート機能
    • 疎結合ネットワークの管理やサポートを行うための機能.

標準化によるメリット

前に述べた通り,μITRON仕様は教育面を重視して標準化されている.教育 面の標準化のメリットを定量的に評価することは難しいが,多くのユーザが ITRON仕様が果たした 教育面での役割を評価している.例えば,1つの機器に 複数種類の MCU を用いた場合の実例として,各 MCU に共通に μITRON仕 様カーネルを用いることで,各 MCU を担当した設計者やプログラマの間の意 志疎通が容易になり,効率よくアプリケーションプログラムが開発できたとい う例が報告されている [4].

また,カーネル開発側にとっても,カーネル仕様を標準化することの利点は大 きい.一例として,複数のプロセッサ上に μITRON仕様カーネルを実装し たメーカにおいて,最初に μITRON仕様カーネルを開発した時と 2回め以 降の開発とで,バグの原因となった工程を比較した結果を図-10 に示す.この 図から, 2回め以降の開発においては,上流工程に原因があったバグが減少し, 対策が容易な下流工程におけるバグが相対的に増加したことがわかる.

4.μITRON仕様カーネルの実装

小規模なMCUへの実装

リアルタイムカーネルをメモリ制約の厳しい MCU へ適用する場合に,メモリ 使用量と実行速度とのトレードオフが問題になる.μITRON仕様カーネルを 小規模な MCU上に実装する場合には,メモリ使用量をできる限り減らすために, 数々の工夫がなされている.

例えば,16bit MCU用のμITRON仕様カーネル TR900 では,プロセッサの動 作モードに対応させてカーネルも 2種類用意しているが,シングルチップ内に すべてのメモリを入れる構成を想定したミニマムモード時に,TCB (Task Control Block) のサイズを 8バイトにまで小さく押えている (表-11).ここ で,レディキューなどのタスクのキューを作るためのタスクチェインに,次の タスクの ID を入れるようにすることで,メモリ使用量の節約が図られている ことがわかる.

この他にタスク毎に必要な領域として,スタック領域がある.汎用レジスタの 内容など,タスクのコンテキスト情報は,スタック領域に保存される.また, タスクの初期化情報を入れるために,タスク 1個あたり 7バイト (マキシマム モードでは 9バイト) のタスク定義テーブルが ROM上に作られる.

弱い標準化の考え方を積極的に利用した例として,同一メーカが同じ 16bit MCU用に,機能を絞って実行速度の向上やメモリの節約を行ったカーネルと, 機能の豊富なカーネルとの 2種類のμITRON仕様カーネルを用意している例も ある (表-12).この表の中でタスク切替え時間とは,タスク起床を行うシステ ムコールを発行後,起床されたタスクが動作を始めるまでの時間をあらわす.

ここで挙げた 2種類のμITRON仕様カーネルの内,シングルチップ用のカー ネルでは,同時に動作しないタスクどうしでスタック領域を共有する機能を用 意するなど,メモリ使用量の一層の縮小を図っている [5].

組み込み用RISCプロセッサへの実装

近年,組み込みシステムの分野においても,RISC ないしは RISCライクなプロ セッサが使われ始めている.これらの多くは,組み込み用途を意識したいわゆ る MCU のカテゴリに属するもので,メモリやタイマ等を1チップに納め,さら に低消費電力モードを備えているものも多い.

一般的に,RISCプロセッサはコードサイズが大きいと言われているが,組み込 みシステムではメモリ容量は限られているため,リアルタイムカーネルには, 性能だけでなく,コンパクトさも求められる.

RISCプロセッサ用のμITRON仕様カーネルの例としては,SHシリーズ用の HI-SH7,SPARClite用の REALOS/SP が製品化されている.HI-SH7 は,コード サイズが最小 2.4Kバイトから最大 11Kバイトと小さく,データ領域も前述し たタスク間でのスタックを共有機能を持たせるなど使用量の削減を図っており, MCU 内蔵のメモリだけでシステムを構築可能としている.

また,レジスタウィンドウを持つ SPARClite 上に実装された REALOS/SP は, タスク切替え時にレジスタウィンドウ上にあるアクティブなレジスタのみを保 存/復帰する,システムコール処理中はレジスタウィンドウを回転させないな どの工夫を行うことで,タスク切替え時間 13.0μS (2ウィンドウ)〜 17.9μS (8ウィンドウ),最大割込みマスク時間約4μS の性能を実現し ている (測定条件: SPARClite評価ボード MB86930-EB使用,クロック40MHz, メモリ 0wait 動作時).

5.ネットワークサポートと今後の展望

MCU の低価格化にしたがって,1つの機器の制御に複数の MCU が使われるケー スが増えてきている.機器を構成する部品のユニット化を進めることで,保守 性や信頼性を向上させることが主要な目的で,具体例としては,コピー機, FAX,自動車などが挙げられる.

そこで,すでに紹介した最新のμITRON仕様であるμITRON3.0仕様では, μITRON仕様カーネルを持ったノードを疎結合ネットワークによって相互接 続した分散システムをサポートするための機能を追加した.具体的には,通常 のシステムコールを使って,他のノード上のタスクやセマフォなどを直接操作 することができる.この機能を,接続機能と呼んでいる [3].

μITRON3.0仕様の接続機能は,あくまで 1つの機器ないしはシステムを制 御するためのものであるため,ネットワークの構成はシステム構築時に静的に 決める必要がある.次のステップとして,別々に設計された機器が相互に接続 できることが重要となる.また,ネットワークの構成が動的に変化する状況に も対応しなければならない.この段階の仕様を IMTRON と呼び,次の世代の ITRON仕様と位置づけている (図-11).

分散システムを構築する上で,各種の機器に同じ仕様のカーネルが使われてい ることで,機器間の通信インタフェースを単純化でき,実行時性能や開発効率 の向上につながる.つまり,分散システム環境の下では,μITRON仕様とい う標準カーネル仕様は現在以上に大きな意味を持つものと思われる.

その他の検討課題として,共有メモリマルチプロセッサシステムへの拡張であ る ITRON-MP仕様の検討 [6] や,ITRON仕様カーネル上のソフトウェアの開発 を支援する開発環境の標準化も,重要な課題と位置づけて取り組んでいる.

6.おわりに

μITRON仕様カーネルは,日本の主要な半導体メーカを含む多くのメーカが, 規模の異なる様々なプロセッサ上に実装を行い,その多くが製品化されている. 特に,今までメモリ容量や実行速度の制約によってリアルタイムカーネルが使 用できなかったシングルチップの MCU への適用が進んでおり,μITRON仕 様がこの分野における世界初の標準カーネル仕様の地位を築きつつあるという ことができる.

我々は,今後もトロン協会 ITRON専門委員会を中心に,μITRON仕様をさら に発展させていく方向で検討を続けている.

参考文献

  1. Saitoh, K.: ITRON Standards, Proc. of the 8th TRON Project Symposium, pp.16-24, IEEE CS Press (1991).
  2. Takada, H. and Sakamura, K.: Advances in the ITRON Specifications - Supporting Multiprocessor and Distributed Systems, Proc. of the 9th TRON Project Symposium, pp.89-95, IEEE CS Press (1992).
  3. Sakamura, K., ed.: μITRON3.0 Specification, TRON Association, Tokyo (1994). (can be obtained from here).
  4. 田丸喜一郎他: To Be Standardized or Not To Be Standardized (パネル ディスカッション記録), TRONWARE, vol.26, pp.16-34, パーソナルメ ディア (1994). (in Japanese)
  5. Kobayakawa, M. et al.: HI8-3X: A μITRON-Specification Realtime Operating System for H8/300 Series Microcontrollers, TRON Project 1990, pp.85-99, Springer-Verlag (1990).
  6. Takada, H. and Sakamura, K.: ITRON-MP: An Adaptive Real-time Kernel Specification for Shared-memory Multiprocessor Systems, IEEE Micro, vol.11, no.4, pp.24-27,78-85 (1991).

※ ITRON専門委員会では,ITRON仕様書の英文版や ITRONニュースレターなど, ITRON仕様に関する情報を,インターネット上で WWW を用いてここから提供している.
- Back to ITRON Home Page (in Japanese)