SDGsの分類
研究テーマ
IT・IoT・AI・ロボティクス
学科の分類
情報科学部情報知能学科

組み込みシステムの実現に必要なプロセッサにおけるカスタマイズ機能の検討と実現

情報科学部

情報知能学科

組込みシステム研究室

荒木英夫 准教授

マイコンを組み込んだ機器を作成する際に、OSを用いるか用いないかは大きな問題である。ここでOSを用いる動機として、ハードウエアリソースの管理や通信、プロセス管理などがある。そこで、これらの機能を限定的にハードウエアで実装することによりシンプルで効率的な組み込みシステムの実現が可能であると考える。この考えを基に、これまでFPGA上に小さなマイコンを複数実装して、プロセス管理をハードウエアで実現するシステムを提案してきた。しかしソフトウエア開発環境が無いため実用的ではない。そこで、mrubyと呼ばれる組み込みマイコン向けの小型VM(Virtual Machine)をハードウエア化することにより、これらの解決ができると考えて研究を行っている。

目的: 組み込みシステムに適した軽量で安定したマイコンシステムを実現する

なぜ組み込みシステムが大きくなるか?

    • ネットワークへの接続(サーバとの通信)
    • ファイルシステム要求
    • メモリリソース管理の要求
    • プロセス管理 (リアルタイム処理)

等の機能を実現したい

→ OSを採用する構成例:図1(a)

OS (Operation System)は便利だが用いると、

    • 移植やアップデートのメンテナンス
    • 大容量のメモリや高速なプロセッサ

といった手間やコストがかかる

これを無くすために、FPGAを利用する

→ FPGAによるOSなしの構成例:図1(b)

図1. 組込みシステムの実装方法の比較 (a)OSを用いたシステムの構成例 (b)FPGA上にmruby VMを実装して実現した構成例

提案するシステム: 用途の限定により、システムをシンプルに構築

    • FPGA上にプロセッサを構築(これにより、カスタマイズ可能)
    • 必要となるプロセス数に応じたプロセッサコアの追加
    • OSなしでリアルタイム処理を実現

ここまでは、すでに完成(図2)

次に、開発の容易化を目指す。

図2.FPGA上に構築されたマルチプロセッサシステムの構成図。PEと書かれたプロセッサエレメントが独立してマルチプロセスを実行する。

ソフトウエア開発を容易にするために、新たにmrubyの中間コード(図3)を実行可能にするVMの実現を目指す。ここでmrubyとはembedded Rubyのことで、特徴として組み込みシステムに適した言語と実行環境を持つ。具体的にはRuby言語で書かれたプログラムをmrubyコンパイラを用いてバイナリコードに変換する。そして生成されたバイナリコードをマイコン上のmruby VMで実行する。

このようなmruby VMをFPGA上にハードウエアとして実現することで、以下のようなシステムの実現を目指している。

  • mrubyコンパイラが出力したバイナリを実行
  • ソフトウエアの開発が容易(PC上で評価可能)
  • mrubyのライブラリが利用可能
  • mrubyVMのサブセットとすることにより
    • メモリの管理を容易化
    • ハードウエアリソース管理の容易化
図3.mrubyVMが実行する中間コードの構成。(32ビット固定長命令)

FPGA 上に作成した評価システムで実行するプログラムの例を図4に、実行時のタイミングチャートを図5に示す。

図4.Ruby言語で書かれたコードと、mrubyコンパイラで出力されたmruby VMで実行可能な中間コード
図5.シミュレータによる実行時のFPGA内部の信号波形。正しく命令を実行していることが確認できる。

現状は、簡単なプログラムは実行可能となった図6にFPGAボードで実行した様子を示す。

今後の課題:

  • より高度な命令の実装
  • メモリ管理機能の実現
  • mruby用複数プロセッサの実現

の実現を目指す

図6.FPGA上で実行結果を示した例

研究シーズ・教員に対しての問合せや相談事項はこちら

技術相談申込フォーム