T-Engineとは?
T-Engine概要
携帯電話やAV機器に代表されるコンパクトで高機能な電子機器の開発は、日本の工業技術の得意分野です。半導体不況や製造業の空洞化が叫ばれる中、世界の中で通用する日本の工業技術を維持していくには、こういった得意分野を継続して育てていく必要があります。また、高度な電子機器や組み込み機器を開発する技術は、来るべきユビキタス・コンピューティング環境を実現するための重要な要素技術ともなります。身のまわりに配置された多数のコンピュータの協調動作によって豊かな環境を作り出すという「ユビキタス時代」は、目前に迫っていますが、それを開発する技術力を見た場合、日本の果たす役割は非常に大きいと言えます。
しかしながら、高機能な電子機器や組み込み機器を制御するコンピュータのソフトウェアの開発は、機器の高機能化と厳しいハードウェアリソースの制約により、極めて困難なものとなっています。また、顧客からの要請により開発期間に余裕がないことも多く、ソフトウェア開発の現場には多くの苦労があります。さらに、組み込み機器のソフトウェア開発環境は、これまで標準化の遅れていた分野であり、ミドルウェアやドライバ等のソフトウェア部品の流通がスムーズではないという問題もありました。ユビキタス・コンピューティング環境を実現するには、ソフトウェア開発の効率化が重要な条件になっています。
このような状況に対して、ハードウェアや開発環境まで含めた組み込み機器の開発プラットフォームの標準化を行い、ソフトウェア部品の流通促進や移植性向上を目指して開始されたのが「T-Engine(ティーエンジン)」プロジェクトです。本プロジェクトの推進母体として、国内外の主要な半導体メーカー、ソフトウェアメーカー、組み込み機器メーカー、家電メーカーなどが多数参加する「T-Engineフォーラム」が結成されており、T-Engineアーキテクチャの研究開発および標準化活動を行っています。T-Engineプロジェクトの詳細およびT-Engineフォーラムに関しては、http://www.t-engine.org/をご覧ください。
従来のトロンプロジェクトにおいても、ITRON (Industrial TRON) という形でリアルタイムOSの仕様の標準化を行い、携帯電話をはじめとする多くの組み込み機器に採用され、日本のIT技術を支えてきました。しかしながら、OSの標準化だけでは、ソフトウェア部品の流通促進や移植性向上に限界があります。T-Engineプロジェクトでは、OSのサービスコールの仕様だけではなく、各種のハードウェア仕様やソフトウェアI/F、オブジェクトフォーマットなども合わせて強力な標準化を行うことにより、ソフトウェア資産の共通化と有効活用を図ることを目標にしています。
T-Engineの心臓部"T-Kernel"
T-Engine上で動作する標準リアルタイムOSが「T-Kernel」です。T-Kernelは、T-Engine上で動作する多種多様なミドルウェア、アプリケーションの実装プラットフォームであり、ユビキタス・コンピューティング環境の共通カーネルとなるものです。
T-Kernelには、タスクやセマフォなど一般的なリアルタイムOSの機能であるT-Kernel/OS(OperatingSystemの略)のほか、デバイスドライバやミドルウェアの流通性を高めるT-Kernel/SM(SystemManagerの略)、およびデバッガから利用されるT-Kernel/DS(DebuggerSupportの略)の機能が含まれています。
T-Kernel/SMでは、OSの拡張機能(マネージャ)やデバイスドライバを組み込むための標準インタフェースが規定されており、ミドルウェアやアプリケーションとデバイスドライバを独立して開発、流通できるように工夫されています。一方、T-Kernel/OSの基本機能は従来のITRONと同じですので、これまでITRONを使っていた開発者であれば、T-Kernelへの移行もスムーズです。
表1 T-Kernel/OSの機能
- タスク制御機能
- タスク間同期通信機能
- メモリ管理機能
- 例外・割込制御機能
- 時間管理機能
- マネージャ管理機能
表2 T-Kernel/SMの機能
- システム構成情報管理機能
- システムメモリ管理機能
- デバイス管理機能
- アドレス空間管理機能
- 割込管理機能
- I/Oポートアクセスサポート機能
- 省電力機能
表3 T-Kernelのサービスコール例(タスク制御機能の一部)
tk_cre_tsk: タスク生成tk_del_tsk: タスク削除tk_sta_tsk: タスク起動tk_ext_tsk: 自タスク終了tk_exd_tsk: 自タスクの終了と削除tk_ter_tsk: 他タスク強制終了
開発環境もオープンなT-Engine
T-EngineプロジェクトではCPUを限定せず、CPUのバリエーションは開発環境で吸収可能です。CPUが変わっても、大部分のミドルウェア、デバイスドライバ、アプリケーションが再コンパイル程度の修正で動作するように配慮されています。
T-Engineプロジェクトでは、ミドルウェアの流通を促進するため、GNUの開発環境をレファレンスとする形で、プログラムのオブジェクトフォーマットを標準化しています。