エッジコンピューティングの逆襲 特集

DSP向けが源流の「TI-RTOS」はこのままフェードアウトしてしまうのかリアルタイムOS列伝(29)(1/2 ページ)

IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第29回は、TIが提供するRTOSである「TI-RTOS」を紹介する。

» 2022年12月08日 07時00分 公開
[大原雄介MONOist]

 今回ご紹介する「TI-RTOS」は名前の通り、TI(Texas Instruments)が提供するリアルタイムOS(RTOS)である。ターゲットとなるのは当然TIのMCUということになるわけだが、こちらはもともとはTIの手によって開発されたものではなく、別のメーカーが開発していたRTOSを買収し、自社製品向けに提供するという形である。この辺りの構図は旧Freescale Semiconductorの「MQX」などと同じである。

⇒連載記事「リアルタイムOS列伝」バックナンバー

図1 図1 「TI-RTOS」のWebサイト[クリックでWebサイトへ移動]

DSP向けのRTOS「SPOX」が源流

 TI-RTOSの元となった「SPOX」は、DSP向けのRTOSである。開発したのは1987年創業のSpectron Microsystemsで、DSP向けシステムの開発やデジタル信号処理、アルゴリズムの開発、インテグレーションなどを手掛ける独立系ソフトウェアハウスである。ちなみに現在“Spectron Microsystems”を検索するとなぜかSpectron Technologiesが引っ掛かるが、こちらは中国に拠点を置く全く別の会社なのでご注意を。

 さて、Spectron Microsystemsが1998年にリリースしたのがSPOXである。SPOXもバージョンが結構いろいろあるので当初から全部の機能をサポートしていたわけではないが、TIによる買収前夜にあたる1997年時点での特徴は以下のようになっていた。

  • マルチタスク対応のリアルタイムカーネルで、モジュラー形式のスケーラブルな構成
  • ターゲットとしてはTIのTMS320C3x/C4x/C5x/C8x、MotorolaのDSP5600x/56156/56166/563xx、Analog DevicesのSHARC(2106x)、NECのμPD77016/77017/77018、それとなぜかPentiumというかIA32をサポート。このうちNECに関しては、NECのニュースリリースがまだアクセス可能である
  • SPOXのカーネルはプライオリティベースのプリエンプティブな構成で、タスクスケジューラは原則ラウンドロビンながらカスタマイズ可能。RTOSということで割り込みレスポンスなどはDeterministicで、割と低めである。具体的には、50MHz動作のTMS320C40での割り込みレスポンスは0.8μs程度で、ハードウェアにも依存するがおおむね1μsec程度。またタスク切り替えのオーバーヘッドはおおむね5μsec前後(50MHz動作のTMS320C40で5.3μs)という数字が示されている
  • IPCとしてはMailbox/Semaphore/Queueといった、一般的な手法が提供されている
  • I/Oに関してはデバイス非依存のI/Oが用意されており、例えばソースコードを書き替えることなく設定ファイルの変更だけでデバイスを入れ替えることが可能である。また、より高速なI/O処理に向けて非同期のストリーミングデバイスもサポートされている
  • メモリ管理に関しては、DSPはしばしばMCUと比べても複雑なメモリ管理が必要になる(内部のScratchPadと外部の0wait SRAM、DRAMに加えて中にはキャッシュを持つ製品もある)ことを加味して、こうした複数のメモリを扱えるような仕組みが用意されている

 面白いのは、SPOXは必ずしも単独で動作するわけではない場合を想定していることだ。これは、ホストにDSPを積んだ拡張カードの形で搭載され、この上でSPOXが動いてサブシステムの処理を行うといったケースが多かったためだろう。これに向けて「SPOX-LINK」というホストと接続するためのライブラリが提供され、MS-DOSやWindows、UNIX、VxWorksなどとシームレスに接続できるとしていた。

 具体的には、DSPターゲット向けのAPIとホスト向けのAPIが用意され、これらを利用して相互に簡単に通信が行えるようになっていた。他にもFFTやデジタルフィルターなどを含む175種類もの数値演算ライブラリである「SPOX-MATH」、ソースコードデバッグの可能な「SPOX-DBUG」、マルチプロセッサ環境で利用できるようにするための「SPOX-MP」なども提供された。SPOX-MPの場合はカーネル自身もマルチプロセッサに対応したものになっている。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.