ThreadX:高度な組み込みリアルタイムOSの詳細解説
ThreadXは、Express Logic社(現
マイクロソフト)によって開発された、高度に決定論的な組み込み
リアルタイムオペレーティングシステム(RTOS)です。
C言語で記述され、優先度付きのプリエンプティブスケジューリング、高速な割り込み応答、メモリ管理、スレッド間通信など、
組み込みシステムに必要な多くの機能を提供します。
ThreadXの概要
ThreadXの名前は、スレッドが実行可能な要素であることと、
コンテキストスイッチ(スレッドの切り替え)を表す「X」に由来します。ThreadXは、その効率的な設計と豊富な機能から、産業用機器から家電製品まで幅広い分野で利用されています。特に、以下のような特徴的な機能が挙げられます。
- - preemption-threshold: クリティカルセクションにおける細かい粒度とコンテキストスイッチの削減を実現。
- - 優先度継承: 優先度の逆転を防ぎ、システム全体の安定性を向上。
- - 効率的なタイマー管理: タイマーイベントの効率的な処理を可能にする。
- - ピコカーネル設計: 小さなフットプリントで高いパフォーマンスを提供。
- - event-chaining: イベント駆動型プログラミングを容易にする独自の構造。
- - 高度なソフトウェアタイマー: 柔軟なタイマー設定が可能。
- - コンパクトなサイズ: ARMプロセッサ上で最小2KB程度のサイズで動作。
また、ThreadXはAMP(非対称マルチプロセッシング)とSMP(対称マルチプロセッシング)の両方のマルチコア環境をサポートしており、モジュールを利用することでMMUやMPUによるメモリ保護を活用し、アプリケーションスレッドを分離することも可能です。
ThreadXは、TUVとULから広範な安全認証を受けており、MISRA Cにも準拠しています。Express Logic社のX-Ware IoTプラットフォームの基盤であり、組み込み
ファイルシステム(FileX)、組み込みUI(GUIX)、組み込みTCP/IPとクラウド接続(NetX/NetX Duo)、USBサポート(USBX)などのコンポーネントが含まれています。
ThreadXの歴史
ThreadXは、1997年に初めてリリースされ、その後も進化を続けています。
- - 1997年: ThreadXの最初のバージョンがリリース。
- - 1999年: FileX組み込みファイルシステムがリリース。
- - 2001年: ThreadX 4がリリース。
- - 2002年: NetX組み込みTCP/IPネットワーキングスタックがリリース。
- - 2005年: ThreadX 5がリリース(現在の最新バージョン)。
- - 2009年: USBX組み込みUSBサポートとThreadX SMPがリリース。
- - 2011年: ThreadX Modulesがリリース。
- - 2013年: ThreadXがTUV IEC 61508安全認証を取得。
- - 2014年: UL 60730認証とGUIX組み込みUIがリリース。
- - 2017年: VDC Research社の調査により、ThreadXが62億台以上のデバイスで利用される最も広く使われるRTOSの一つと発表。
- - 2019年: Express Logic社がマイクロソフト社に買収。
ThreadXの技術
ThreadXは、`preemption-threshold`という独自の機能によって、優先度付きのプリエンプティブスケジューリングを実装しています。これにより、クリティカルセクションでの細かな粒度と
コンテキストスイッチの削減が実現されています。
また、`event chaining`という独自の構造を提供しており、アプリケーションは外部イベントで起動される全てのAPIに対してコールバック関数を登録できます。これにより、複数のオブジェクトを効果的にブロックすることが可能になります。
ThreadXは、カウンティングセマフォ、優先度継承が可能な
排他制御、イベントフラグ、メッセージキュー、ソフトウェアタイマー、固定長/可変長メモリブロックなどの機能も提供しています。リソースをブロックする全てのAPIにはタイムアウトを設定することが可能です。
主なコンポーネント
ThreadX RTOSには、以下の主要なコンポーネントが含まれています。
- - FileX: FAT12, FAT16, FAT32, exFAT形式をサポートする組み込みファイルシステム。exFATは特にビデオファイルで有用。
- - GUIX: 2次元グラフィックスランタイム環境を提供する組み込みUI。様々な解像度と色深度をサポートし、GUIX Studioを用いて自動的にCコードを生成可能。
- - NetX Duo: IPv4とIPv6をサポートするTCP/IPシステム。ARP、DHCP、DNS、MQTTなどのプロトコルと、IPsec、TLS、DTLSによるセキュリティ機能を提供。Threadと6LoWPANもサポート。
- - USBX: ホストとデバイスの両方をサポートする組み込みUSBシステム。EHCI、OHCI、およびプロプライエタリなUSBホストコントローラに対応。
安全認証
ThreadX、FileX、NetX Duoは、以下の安全基準について事前に認証されています。
- - IEC 61508 SIL 4
- - IEC 62304 Class C
- - ISO 26262 ASIL D
- - EN 50128 SW-SIL 4
- - UL/IEC 60730
- - UL/IEC 60335
- - UL 1998
また、DO-178標準についても認証されており、軍事および航空宇宙分野でも利用されています。
パッケージング
ThreadXは、ソースコードが付属し、ランタイムロイヤリティなしで提供されています。これにより、開発者は柔軟に製品に組み込むことができます。
利用事例
ThreadXは、ウェアラブルデバイスからHPプリンター、NASAのディープインパクト宇宙探査機まで、幅広い製品で利用されています。その信頼性と効率性から、多くの
組み込みシステムで採用されています。
外部リンク
ThreadXは、その豊富な機能と高い信頼性から、
組み込みシステム開発において重要な役割を果たしています。