組込みシステム・組込みソフトウェア

 

研究紹介

組込みシステム・組込みソフトウェア

家電・自動車などに組み込まれるコンピュータシステムのことを組込みシステムと言います。理論だけではなく、組込みシステムに実際に利用される実用的な研究を行っています。様々な研究を行っていますが、ここでは、組込みソフトウェアついて説明します。自動車関係・自動運転、CPS(サイバー物理システム)の研究についてはこちらを参照してください。

TOPPERSプロジェクト

TOPPERSプロジェクトは、組込みシステムで一番利用されているリアルタイムOSであるITRON仕様の技術開発成果を出発点として、組込みシステム構築の基盤となる各種の高品質なオープンソースソフトウェアを開発するとともに、その利用技術を提供しているNPO団体です。

TOPPERSプロジェクトには、約100の企業、約20の大学や研究所が会員として参加しています。(会員一覧:http://www.toppers.jp/projmembers.html

TOPPERSプロジェクトの成果物は、自動車、衛星、家電、プリンタなど、さまざまな組込み機器に実際に利用されています。

 


 

組込みシステム向けコンポーネントシステム (TECS)

TOPPERSプロジェクトのTECS WG (組込みシステム向けコンポーネントシステムの研究開発を行うグループ)と共同で研究を進めています。

TECSは、各種ソフトウェアモジュールを部品化し、必要な部品を組み合わせることによって大規模な組込みソフトウェアを効率的に構築するための技術です。

 



 

TECSの利点

  • 大規模な組込みソフトウェアの見える化
  • ソフトウェア部品の流通性・再利用性の向上
  • 分散フレームワークによる分散システムの開発効率化

コンポーネント図

  • 倒立振子ロボット下記の図が倒立振子ロボットのコンポーネント図です。2重のフィードバッグループになっています。内側のループで、タイマ200μ秒毎に電圧の安定化を行っています。外側のループで周期タスク10ms毎にジャイロセンサ(車体の角速度)とロータリーエンコーダ(モータの角速度)の情報を利用して図中の制御計算でPID制御を行って倒立をしています。

リアルタイムOSへのTECS適用

 組込みシステムの信頼性の重要性が増している中,マルチプロセッサ(複数のCPUを搭載したシステム)や,メモリ保護(特定のメモリ領域へのアクセス制限),時間パーティショニング(アプリケーションの実行時間の制限)に対応したリアルタイムOSの需要が高まっています.こうしたリアルタイムOSにTECSを適応する研究が進んでいます.

メモリ保護は,メモリ領域を分割し,他プロセッサや他領域のコンポーネントからのアクセスに制限をかけることで,信頼性の高さを実現します.TECSのリージョンを活用し,保護が必要かどうかをコンポーネント記述ファイルの時点で,記述することができます.この記述に対応して,リアルタイムOSに必要な,カーネル設定ファイルを自動生成します.

時間パーティショニングは,アプリケーション毎に実行時間を制限することで,バグなどによる特定のアプリケーションの影響が他のアプリケーションへ伝播することを防ぎます.時間パーティショニング設定のためのGUIアプリケーションを開発し,設定の図示・可視化を実現しました.メモリ保護と同様,設定結果を含めたカーネル設定ファイルを生成します.

Rust

 Rustは,メモリ安全性に焦点を置いて開発されました.Webアプリケーション開発だけでなく,組込みシステム開発にも利用することができ,他言語で発生しうるメモリ関連のバグ(ダングリングポインタ,二重開放など)をコンパイルの段階で防ぐことができます.Rustに注目している企業も多く,将来的に組込みシステム開発においてCやC++にとってかわる可能性のあるプログラミング言語となっています.

TECS/Rust

 従来のTECSは,コンポーネント記述ファイルからCや,Cをmrubyから利用するためのコードを生成していました.そこでTECS/Rustは,TECSをRustに対応させ,コンポーネント記述ファイルからRustを生成できるようにしました.これにより,Rustのみによるメモリ安全なコンポーネントベース開発を実現しています.これから増えるであろうRustによる開発に利用することを想定しています.

研究成果の活用例

  • ETロボコンTECSベースの開発環境がETロボコンの認定プラットフォームとして採用
    http://www.etrobo.jp/

TECS関係の研究成果

論文誌

  1. JieYing Jiang , Feng Qi, Hiroshi Oyama, Hiroaki Nagashima , and Takuya Azumi, “ECHONET Lite Framework Based on Embedded Component Systems,” ECTI Transactions on Computer and Information Technology, 2022.
  2. Takuro Yamamoto, Takuma Hara, Takuya Ishikawa, Hiroshi Oyama, Hiroaki Takada, and Takuya Azumi,“Component-Based mruby Platform for IoT Devices”, IPSJ Journal of Information Processing, 2018.
  3. Takuro Yamamoto, Hiroshi Oyama, and Takuya Azumi, “Component-Based Framework of Lightweight Ruby for Efficient Embedded Software Development,” JSSST, 2017.
  4. Jaeyong Rho, Takuya Azumi, Mayo Nakagawa, Kenya Sato, and Nobuhiko Nishio, “Scheduling Parallel and Distributed Processing for Automotive Data Stream Management System,” ELSEVIER Journal of Parallel and Distributed Computing, Vol. 109, pp. 286-300, 2017.
  5. Ryo Hasegawa, Naofumi Yawata, Noriaki Ando, Nobuhiko Nishio, and Takuya Azumi, “Embedded Component-based Framework for Robot Technology Middleware,” IPSJ Journal of Information Processing, Vol.25, pp.811-819, 2017.
  6. Jaeyong Rho, Takuya Azumi, Hiroshi Oyama, Kenya Sato, and Nobuhiko Nishio, “Distributed Processing for Automotive Data Stream Management System on Mixed Single- and Multi-core Processors,” ACM SIGBED Review, Vol. 13 Issue 3, pp.15-22, 2016.
  7. Jaeyong Rho, Takuya Azumi, Akihiro Yamaguchi, Kenya Sato, and Nobuhiko Nishio, “Reservation-Based Scheduling for Automotive DSMS under High Overload Condition,” Journal of Information Processing, vol. 24, no. 5, pp. 751-761, September 2016. DOI:10.2197/ipsjjip.24.751
  8. 長原裕希, 伊藤孝宏, 安積卓也, 西尾信彦, “分散インテント: 組込み機器連携を実現するAndroid インテントの分散拡張フレームワーク”, 電子情報通信学会和文論文D, Vol.J97-D No.4, pp.845-856, 2014.
  9. 石川 拓也,安積卓也,大山博司, 本田晋也,高田広章, “メモリ保護を考慮した組込みシステム向けソフトウェアコンポーネント技術,”コンピュータ ソフトウェア, Vol. 31 (2014) No. 4 pp.105-130 2014.
  10. Atsushi Ohno, Takuya Azumi, and Nobuhiko Nishio, “TECS Components Providing Functionalities of OSEK Specifications for ITRON OS,” IPSJ Vol.22, No.4. 2014.
  11. 石川 拓也, 安積 卓也, 一場 利幸, 柴田 誠也, 本田 晋也, 高田 広章, “TECS仕様に基づいたNXT用ソフトウェアプラットフォームの開発,” コンピュータソフトウェア, Vol.28, No.4, pp.158-174, 2011.
  12. 安積 卓也, 古川 貴士, 相庭 裕史, 柴田 誠也, 本田 晋也, 冨山 宏之, 高田 広章, “オープンソース組込みシステム向けシミュレータのマルチプロセッサ拡張,” コンピュータ ソフトウェア, Vol.27, No.4, pp.24-42, 2010.
  13. 安積 卓也, 山田 晋平, 大山 博司, 中本 幸一, 高田 広章, “コンポーネントシステムを用いた組込みシステム向けアクセス制御機構,” 電子情報通信学会和文論文D, Vol.J93-D, No.10, pp.2021-2031, Oct. 2010.
  14. 安積 卓也, 山本 将也, 小南 靖雄, 高木 信尚, 鵜飼 敬幸, 大山 博司, 高田 広章, “組込みシステムに適したコンポーネントシステムの実現と評価,” コンピュータ ソフトウェア, Vol.26, No.4, pp.39-55, Nov. 2009.
  15. 安積 卓也, 大山 博司, 高田 広章, “メモリ共有を考慮したRPCシステム,” 情報処理学会論文誌プログラミング, Vol.2, No.2, pp.37-53, Mar. 2009.

国際会議

  1. Hinata Tomimori, Hiroshi Oyama, and Takuya Azumi, “Automated Testing Framework for Embedded Component Systems,”  In Proceedings of the 26th IEEE International Symposium On Real-time Distributed Computing (ISORC 2023), Nashville, Tennessee, USA, 23-25 May 2023.
  2. Yoshitada Takaso, Hiroshi Oyama, Hiroaki Takada, and Takuya Azumi, “HRMP3+TECS: Component Framework for Multiprocessor Real-Time Operating System with Memory Protection,” In Proceedings of the 26th IEEE International Symposium On Real-time Distributed Computing (ISORC 2023), Nashville, Tennessee, USA, 23-25 May 2023.
  3. Yoshitada Takaso, Hiroshi Oyama, and Takuya Azumi, “Component Framework for Multiprocessor Real-Time Operating Systems,” In Proceedings of the 20th IEEE International Conference of Embedded and Ubiquitous Computing (EUC 2022), Wuhan, China, 9-11 Dec. 2022.
  4. Feng Qi, Hiroshi Oyama, Hiroaki Nagashima, and Takuya Azumi, “ECHONET Lite Framework based on Embedded Component Systems with Visual Programming” In Proceedings of the Asia Pacific Conference on Robot IoT System Development and Platform (APRIS 2021), online, 29-30 Nov, 2021.
  5. Ryota Shimomura, Hiroshi Oyama, and Takuya Azumi, “Dynamically Interchangeable Framework
    for Component Behavior of Embedded Component Systems” In Proceedings of the 19th IEEE International Conference on Embedded and Ubiquitous Computing (IEEE EUC 2021), Shenyang, China, Oct. 2021.
  6. Shuichiro Morisaki, Seito Shirata, Hiroshi Oyama, and Takuya Azumi, “Unit Testing Framework for Embedded Component Systems,” In Proceedings of 18th IEEE International Conference on Embedded and Ubiquitous Computing (EUC 2020), Guangzhou, China, Dec. 2020.
  7. Jieying Jiang, Hiroshi Oyama, Hiroaki Nagashima, and Takuya Azumi, “Case Study: ECHONET Lite Applications based on Embedded Component Systems,” In Proceedings of Asia Pacific Conference on Robot IoT System Development and Platform (APRIS 2020), Online, Nov. 9-10 (R.C. 11-15), 2020.
  8. Seito Shirata, Hiroshi Oyama, and Takuya Azumi, “Runtime Component Information on Embedded Component Systems,” In Proceedings of the 16th IEEE International Conference on Embedded and Ubiquitous Computing (EUC 2018), Bucharest, Romania, Oct. 2018.
  9. Sasuga Kojima, Masato Edahiro, and Takuya Azumi,“Remapping Method to Minimize Makespan of Simulink Model for Embedded Multi-core Systems”, In Proceedings of the 33rd International Conference on Computers and Their Applications (CATA2018), Las Vegas, Nevada, USA, Mar. 2018.
  10. Yuto Kitagawa, Tasuku Ishigooka, and Takuya Azumi, “Anomaly Prediction Based on k-means Clustering for Memory-constrained Embedded Devices”, In Proceedings of 16th IEEE International Conference on Machine Learning and Applications (ICMLA 2017), Cancun, Mexico, Dec. 2017.
  11. Mayo Nakagawa, Takuya Azumi, Yuto Kitagawa and Nobuhiko Nishio, “HVMD_CC : Heterogeneous Value with Multiple Deadlines and Communication Contention,” the 10th International Workshop on Compositional Theory and Technology for Real-Time Embedded Systems (CRTS 2017), Paris, France, Dec. 2017.
  12. Takuro Yamamoto, Takuma Hara, Takuya Ishikawa, Hiroshi Oyama, Hiroaki Takada and Takuya Azumi, “TINET+TECS: Component-Based TCP/IP Protocol Stack for Embedded Systems,” In Proceedings of the IEEE 14th International Conference on Embedded Software and Systems (ICESS2017), Sydney, Australia, Aug. 2017.
  13. Sasuga Kojima, Masato Edahiro, and Takuya Azumi, “Improving Core Allocation of Simulink Model for Embedded Multi-core Systems,” Poster session of IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA 2017), Hsinchu, Taiwan, Aug. 2017.
  14. Tomoaki Kawada, Takuya Azumi, Hiroshi Oyama, and Hiroaki Takada, “Componentizing an Operating System Feature Using a TECS Plugin,” In Proceedings of the 4th IEEE International Conference on Cyber-Physical Systems, Networks, and Applications (CPSNA 2016), pp. 95-99, Nagoya, Japan September 2016.
  15. Takuro Yamamoto, Hiroshi Oyama, and Takuya Azumi, “Lightweight Ruby Framework for Improving Embedded Software Efficiency,” In Proceedings of the 4th IEEE International Conference on Cyber-Physical Systems, Networks, and Applications (CPSNA 2016), pp. 71-76, Nagoya, Japan October 2016.
  16. Ryo Hasegawa, Naofumi Yawata, Noriaki Ando, Nobuhiko Nishio and Takuya Azumi, “RTM-TECS: Collaboration Framework for Robot Technology Middleware and Embedded Component System,” In Proceedings of the 19th IEEE International Symposium on Real-Time Distributed Computing (ISORC 2016), pp. 212-220, York, UK May 2016.
  17. Jaeyong Rho, Takuya Azumi, Hiroshi Oyama, Kenya Sato and Nobuhiko Nishio, “Distributed Processing for Automotive Data Stream Management System on Mixed Single- and Multi-core Processors,” In Proceedings of 8th International Workshop on Compositional Theory and Technology for Real-Time Embedded Systems (CRTS 2015), Dec. 2015.
  18. Ryo Hasegawa, Hiroshi Oyama ,and Takuya Azumi, “Brushless Motor Control using RTM and TECS,” WiP session of the 21st IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA2015), Hong Kong, China, Aug. 2015.
  19. Takuya Azumi, Yuki Nagahara, Hiroshi Oyama, and Nobuhiko Nishio,“mruby on TECS: Component-based Framework for Running Script Program,” In Proceedings of the 18th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC 2015), Apl. 2015.
  20. Jaeyong Rho, Akihiro Yamaguchi, Kenya Sato, Takuya Azumi, and Nobuhiko Nishio, “ROP-EDF: Reservation-Based OP-EDF Scheduling for Automotive Data Stream Management System,” WiP session of the IEEE 11th International Conference on Embedded Software and Systems (ICESS2014), 2014.
  21. Yuki Nagahara, Hiroshi Oyama, Takuya Azumi, and Nobuhiko Nishio, “Distributed Intent: Android Framework for Networked Devices Operation,” the IEEE 10th International Conference on Embedded Software and Systems (ICESS2013), Sydney, Australia, Dec. 2013.
  22. Takuya Azumi, Yasaman Samei Syahkal, Yuko Hara-Azumi, Hiroshi Oyama, and Rainer Dömer,, “TECSCE: HW/SW Codesign Framework for Data Parallelism Based on Software Component,” International Embedded Systems Symposium (IESS), pp.1-13, Paderborn, Germany, Jun. 2013.
  23. Takuya Ishikawa, Takuya Azumi, Hiroshi Oyama, and Hiroaki Takada, “HR-TECS: Component Technology for Embedded Systems with Memory Protection,” the 16th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC 2013), Paderborn, Germany, Jun. 2013.
  24. Yuko Hara-Azumi, Takuya Azumi, and Nikil D. Dutt, “VISA Synthesis: Variation-Aware Instruction Set Architecture Synthesis,” Asia and South Pacific Design Automation Conference (ASP-DAC13), pp. 243-248, Yokohama, Japan, Jan. 2013.
  25. Yawata Naofumi, Azumi Takuya, and Nishio Nobuhiko, “Enhancement of Real-time Processing by Cooperation of RTM and TECS,” Work-in-Progress Session of the 18th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA2012), Seoul, Korea, Aug. 2012.
  26. Atsushi Ohno, Takuya Azumi, and Nobuhiko Nishio, “TECS Components Providing Functionalities of OSEK Specification for ITRON OS,” The 9th IEEE International Conference on Embedded Software and Systems (ICESS2012), pp. 1434-1441, Liverpool, UK, Jun. 2012.
  27. Takuya Azumi, Yuko Hara-Azumi, and Rainer Dömer, “Virtual Platform Generation Using TECS Software Component and SCE,” Quo Vadis, Virtual Platforms? Challenges and Solutions for Today and Tomorrow (QVVP’12), Dresden, Germany, Mar. 2012.
  28. Takahiro Ito, Takuya Azumi, and Nobuhiko Nishio, “Extending Intent in Android for Distributed Collaboration Framework,” Proceedings of the Workshop on Synthesis and System Integration of Mixed Information Technologies (SASIMI 2012), pp. 522-527, Oita, Japan, Mar. 2012.
  29. Takuya Azumi, Yuko Hara-Azumi, Shinya Honda, and Hiroaki Takada, “Software Component-Based HW/SW Cosimulation Framework: A Case Study,” Work-in-Progress Session of 17th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS2011), Chicago, USA, Apr. 2011.
  30. Takuya Azumi, Takayuki Ukai, Hiroshi Oyama, and Hiroaki Takada, “Wheeled Inverted Pendulum with Embedded Component System: a Case Study,” Proceedings of the 13th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC 2010), pp. 151-155, Carmona, Spain, May 2010.
  31. Takuya Azumi, Hiroshi Oyama, and Hiroaki Takada, “Optimization of Component Connections for an Embedded Component System,” IEEE/IFIP International Conference on Embedded and Uniquitous Computing (EUC2009), pp. 182-188, Vancouver, Canada, Aug. 2009.
  32. Takuya Azumi, Hiroshi Oyama, and Hiroaki Takada, “A Memory Allocator for Efficient Task Communications by Using RPC Channels in an Embedded Component System,” Proceedings of the Ninth IASTED International Conference on Software Engineering and Applications, pp. 204-209, Orlando, Florida, USA, Nov. 2008.
  33. Takuya Azumi, Hiroshi Oyama, and Hiroaki Takada, “A Realization of RPC in Embedded Component Systems,” IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA 2008) Work-in-Progress Session, Kaohsiung, Taiwan , Aug. 2008.
  34. Shimpei Yamada, Yukikazu Nakamoto, Takuya Azumi, Hiroshi Oyama, and Hiroaki Takada, “Generic Memory Protection Mechanism for Embedded System and Its Application to Embedded Component Systems,” IEEE 8th International Conference on Computer and Information Technology, pp. 557-562, Sydney, Australia, Jul. 2008.
  35. Takuya Azumi, Shimpei Yamada, Hiroshi Oyama, Yukikazu Nakamoto, and Hiroaki Takada, “A New Security Framework for Embedded Component Systems,” the 11th IASTED International Conference on Software Engineering and Applications, pp. 584-589, Cambridge, Massachusetts, USA, Nov. 2007.
  36. Takuya Azumi, Shimpei Yamada, Hiroshi Oyama, Yukikazu Nakamoto, and Hiroaki Takada, “A Visual Modeling Environment for Embedded Component Systems,” IEEE 7th International Conference on Computer and Information Technology (CIT2007), pp. 805-810, Fukushima, Japan, Oct. 2007.
  37. Takuya Azumi, Masanari Yamamoto, Yasuo Kominami, Nobuhisa Takagi, Hiroshi Oyama, and Hiroaki Takada, “A New Specification of Software Components for Embedded Systems,” Proceedings of the 10th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC 2007), pp. 45-50, Santorini Island, Greece, May 2007.