| Project/Area Number |
24K14892
|
| Research Category |
Grant-in-Aid for Scientific Research (C)
|
| Allocation Type | Multi-year Fund |
| Section | 一般 |
| Review Section |
Basic Section 60050:Software-related
|
| Research Institution | Institute of Science Tokyo |
Principal Investigator |
渡部 卓雄 東京科学大学, 情報理工学院, 教授 (20222408)
|
| Co-Investigator(Kenkyū-buntansha) |
森口 草介 東京科学大学, 情報理工学院, 助教 (60733409)
|
| Project Period (FY) |
2024-04-01 – 2027-03-31
|
| Project Status |
Granted (Fiscal Year 2024)
|
| Budget Amount *help |
¥4,550,000 (Direct Cost: ¥3,500,000、Indirect Cost: ¥1,050,000)
Fiscal Year 2026: ¥1,170,000 (Direct Cost: ¥900,000、Indirect Cost: ¥270,000)
Fiscal Year 2025: ¥1,690,000 (Direct Cost: ¥1,300,000、Indirect Cost: ¥390,000)
Fiscal Year 2024: ¥1,690,000 (Direct Cost: ¥1,300,000、Indirect Cost: ¥390,000)
|
| Keywords | 関数リアクティブプログラミング / 組込みシステム / 低電力コプロセッサ / マイクロコントローラ / JITコンパイラ / バイトコードVM / プログラミング言語 / 実時間システム / サイバーフィジカルシステム |
| Outline of Research at the Start |
本研究では,「一級データとしての時間」という考え方を取り入れた関数リアクティブプログラミング(FRP)言語の利用が,実時間性が重要であるサイバーフィジカルシステム(CPS)の開発効率および信頼性の向上に寄与することを明らかにする.具体的には,実時間動作や協調動作等のCPSの様々な動作を副作用のない関数として表すことによって記述性やモジュール性が向上すること,および型検査やその他の形式的手法による実時間処理の検証が可能になることを明らかにする.本研究の成果は,センサーネットワークやスマートホーム,自動運転システム等の各種CPSの効率化および信頼性・安全性の向上に貢献することが期待できる.
|
| Outline of Annual Research Achievements |
(a)昨今のほとんどの計算機システムと同様に,小規模組込みシステムに用いられるマイクロコントローラにも高性能化と低消費電力化の両方が要求されている.そのため,性能は限定的だが消費電力の小さいコプロセッサを導入したヘテロジニアスマルチコアプロセッサの利用が進んでいる.センサの読取などの簡単なタスクをコプロセッサに任せ,その間メインプロセッサを休止させることで電力を削減できる.しかしプロセッサ間のアーキテクチャの違いやメモリ空間の制約により,現状ではCやアセンブリ言語による開発を必要とし,プログラム実行中のメモリ管理やタスクのプロセッサコアへの割り当ては開発者の責任となる.本年度は,プログラミング言語mrubyの対話的処理系にコプロセッサの利用を支援するための機構を設計・実装した.提案手法ではコプロセッサのためのJITコンパイラを導入することで,メインプロセッサとコプロセッサそれぞれで動作するコードの統一的な記述と対話的な開発を可能にしている. (b)研究代表者の研究室では,以前より小規模組込みシステムのための関数リアクティブプログラミング(FRP)言語の開発を行ってきた.ターゲットの性質上,これらはクロスコンパイラとして実現されており,プログラムの修正・テストのサイクルに時間を要する.そこで対話的な開発を可能にするインタプリタEmfrp-REPLを設計・実装したが,抽象構文木を走査してプログラムを実行するために実行速度が犠牲になっていた.本年度設計・実装を行ったEmfrp-VMはスタックマシンのバイトコードVMであり,通常の演算やスタック操作に加えて時変値を扱う命令が導入されている.現時点での実装はいわゆるgiant-switch方式で最適化は行なっていないが,I/O処理を除いた実行時間はEmfrp-REPLの30%程度となっている.
|
| Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
研究成果概要の(a)で述べたように,現在までに省電力コプロセッサに対応したマイクロコントローラ用mruby言語処理系を実装した.具体的にはEspressif社のマイクロコントローラESP32S3およびESP32C6をターゲットとし,mruby処理系(バイトコードマシン)内にコプロセッサ用のJITコンパイラを実装し,評価を行った.これらのマイクロコントローラは省電力コプロセッサ(ULP)として小規模な32ビットRISC/V (PicoRV32)のコアを内蔵している.実装手法はTracing JITとLazy Basic Block Versioningを組み合わせたもので,生成したコードの無駄が少なく小規模組込みシステムに適したものと言える.実験した範囲では,JITコンパイラの導入によるランタイムシステムのサイズ増加はESP32S3の場合で35%,ESP32C6の場合で34%に収まっている.簡単なベンチマークプログラムを実行してプロセッサが消費する電流を計測したところ,ESP32S3の場合メインプロセッサで28.5mAだったものがULPに移行することで2mA程度になっている(ESP32C6の場合は21.4mAと1.5mA).以上,mrubyに限らず各種マネージド言語(ごみ集めによる自動メモリ管理を提供する言語)を使って省電力コプロセッサを活用した小規模組込みシステムの構築を可能にする見通しが立った. 研究成果概要の(b)で述べたように,関数リアクティブプログラミング(FRP)言語のためのバイトコードVMを実装して評価を行った.簡単なベンチマークプログラムで評価を行なった結果,I/O処理を除いた実行時間はEmfrp-REPLの30%程度であった. 以上,本研究課題に含まれるマイクロコントローラ向けのFRP言語(マネージド言語)の実現についての研究は順調であると考える.
|
| Strategy for Future Research Activity |
本年度に引き続き,研究成果概要の(a)で述べた省電力コプロセッサを備えたマイクロコントローラ向けのマネージド言語処理系の実現方式についての研究を行う.本年度の段階ではメインプロセッサとコプロセッサ間でのオブジェクトの移送がサポートされていなかったため,mrubyのオブジェクトへのアクセスを含むコードをJITコンパイルするにあたり強い制約があった.これはESP32S3/C6のコプロセッサからはメインプロセッサのメモリにアクセスできないことに起因する.そのためJITコンパイルの際にオブジェクトをコプロセッサに移送する必要が生じるが,これは分散システムにおける移動コードの実現と同様の問題がある.次年度はこの問題を解決し,オブジェクトを含むコードのJITコンパイラを完成させる. 本研究課題においては省電力化だけでなく実時間性の言語によるサポート方式についての研究も進める予定である.研究代表者らはFRP言語の時変値に更新タイミングを指定することで実時間処理を記述する方法を過去に提案しているが,それらをより改善する方向の研究を行う.加えて,省電力コプロセッサの利用と同様に,実時間コプロセッサを活用する方式を検討する.高機能化・高性能化したマイクロコントローラを使う際はOS(RTOS)を利用することが一般的であるが,スケジューラやキャッシュの影響により実時間性を損なうことがある.そこでキャッシュやOSをもたない小規模プロセッサ(実時間コプロセッサ)を併用して,正確さが要求される繰り返しタスクなどを実行させることがある.省電力コプロセッサの場合と同様に,これらの利用はプラットフォーム依存であり,多くの場合Cやアセンブリ言語による記述を必要とする.研究成果概要の(a)で述べたJITコンパイラと同様の手法を用いて,マネージド言語による実時間コプロセッサ利用の実現方式を検討する.
|