小川 真彩高 名古屋大学大学院情報学研究科 研究員 |
キーワード
車載制御 | マルチコア | コード生成 | マッピング |
[背景]車載制御の複雑化・高度化によりマルチコアでの制御が必要
[問題]処理のマッピング,修正コスト,検証コストに課題が存在
[貢献]マルチコアに適合した実装の自動生成により課題を解決
1970年代以降,より高度な制御を実現するために,自動車のエンジンやドアなどにマイコン制御が用いられるようになった.今までは1つの演算装置(CPU)で逐次的に処理を実行するシングルコアのマイコンで自動車の制御を実現してきたが,年々高まる排ガス規制や低燃費化などの要求に応えるために,複数のCPUを並列に動作させて処理を実行するマルチコアの採用が進められるようになってきた.
自動車のアプリは周期的に実行される処理で構成される.自動車のアプリをマルチコアで動作させるためには,3つの課題がある.1つ目は,1つのCPUで動作していた処理をどのように複数のCPUに割り当てるかという問題である.2つ目は,処理のCPUへの割当の変更に伴って自動車のアプリを手作業で修正する必要があることである.たとえば,実行順序を持つ処理が割り当てられたCPUが1つか複数かで実装が変わってくる.しかし自動車のアプリの中には非常に大規模なものもあるため修正には非常に手間がかかってしまう.3つ目は割り当てられたCPUが異なる処理間の通信は,どちらの処理が先に実行されるか分からないため予測困難であり,通信の振る舞いの検証が難しいことである.これらの課題を解決するために以下の3つの研究を行った.
1つ目に対しては,各処理の最悪応答時間に着目して処理の割当を行った(図中のI).最悪応答時間は処理が実際に完了するまでに要する時間の最大値である.自動車のアプリの処理にはそれぞれ完了しなければならない時間(デッドライン)が決められており,デッドラインを超えてしまうと事故などの最悪の事態につながる恐れがある.そのため複数CPUが同じデータに同時アクセスすることを禁止する排他制御やCPU内外の通信に要する時間の影響を考慮して各処理の最悪応答時間を見積もり,デッドラインと最悪応答時間の差が長くなるように処理の割当を行った.これにより処理の応答時間がデッドラインを超過しないような割当を実現した.
2つ目に対しては,アプリのモデル化をし,それに加えて前述の処理のCPUへの割当の情報を用いて処理の実行順序を決定するためのコードを含む処理を実行するためのコード(ランタイム)を自動生成するツールを提案した(図中のII).ランタイムでは処理をCPU割当や周期などに従ってタスクという単位にまとめている.このツールにより処理の追加や割当の変更時のアプリの修正に要する手間を削減することができた.
3つ目に対しては,Logical Execution Time(LET)という,通信をあらかじめ決められたタイミングで行う方法を用いた(図中のIII).これによりどのタイミングで通信が行われるのかが明示的になるので,通信の振る舞いの予測が簡単となった.LETでは通信を行うタイミングが重なり負荷が大きくなるため,LETの通信による処理を複数のCPUに分散することで,その負荷を軽減した.
以上の研究により,自動車のアプリをマルチコアによる並列動作させるための課題を解決することができた.
[貢献]マルチコアに適合した実装の自動生成により課題を解決
1970年代以降,より高度な制御を実現するために,自動車のエンジンやドアなどにマイコン制御が用いられるようになった.今までは1つの演算装置(CPU)で逐次的に処理を実行するシングルコアのマイコンで自動車の制御を実現してきたが,年々高まる排ガス規制や低燃費化などの要求に応えるために,複数のCPUを並列に動作させて処理を実行するマルチコアの採用が進められるようになってきた.
自動車のアプリは周期的に実行される処理で構成される.自動車のアプリをマルチコアで動作させるためには,3つの課題がある.1つ目は,1つのCPUで動作していた処理をどのように複数のCPUに割り当てるかという問題である.2つ目は,処理のCPUへの割当の変更に伴って自動車のアプリを手作業で修正する必要があることである.たとえば,実行順序を持つ処理が割り当てられたCPUが1つか複数かで実装が変わってくる.しかし自動車のアプリの中には非常に大規模なものもあるため修正には非常に手間がかかってしまう.3つ目は割り当てられたCPUが異なる処理間の通信は,どちらの処理が先に実行されるか分からないため予測困難であり,通信の振る舞いの検証が難しいことである.これらの課題を解決するために以下の3つの研究を行った.
1つ目に対しては,各処理の最悪応答時間に着目して処理の割当を行った(図中のI).最悪応答時間は処理が実際に完了するまでに要する時間の最大値である.自動車のアプリの処理にはそれぞれ完了しなければならない時間(デッドライン)が決められており,デッドラインを超えてしまうと事故などの最悪の事態につながる恐れがある.そのため複数CPUが同じデータに同時アクセスすることを禁止する排他制御やCPU内外の通信に要する時間の影響を考慮して各処理の最悪応答時間を見積もり,デッドラインと最悪応答時間の差が長くなるように処理の割当を行った.これにより処理の応答時間がデッドラインを超過しないような割当を実現した.
2つ目に対しては,アプリのモデル化をし,それに加えて前述の処理のCPUへの割当の情報を用いて処理の実行順序を決定するためのコードを含む処理を実行するためのコード(ランタイム)を自動生成するツールを提案した(図中のII).ランタイムでは処理をCPU割当や周期などに従ってタスクという単位にまとめている.このツールにより処理の追加や割当の変更時のアプリの修正に要する手間を削減することができた.
3つ目に対しては,Logical Execution Time(LET)という,通信をあらかじめ決められたタイミングで行う方法を用いた(図中のIII).これによりどのタイミングで通信が行われるのかが明示的になるので,通信の振る舞いの予測が簡単となった.LETでは通信を行うタイミングが重なり負荷が大きくなるため,LETの通信による処理を複数のCPUに分散することで,その負荷を軽減した.
以上の研究により,自動車のアプリをマルチコアによる並列動作させるための課題を解決することができた.

(2019年5月30日受付)