特開2021-92875(P2021-92875A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニックIPマネジメント株式会社の特許一覧
<>
  • 特開2021092875-情報処理装置および情報処理方法 図000003
  • 特開2021092875-情報処理装置および情報処理方法 図000004
  • 特開2021092875-情報処理装置および情報処理方法 図000005
  • 特開2021092875-情報処理装置および情報処理方法 図000006
  • 特開2021092875-情報処理装置および情報処理方法 図000007
  • 特開2021092875-情報処理装置および情報処理方法 図000008
  • 特開2021092875-情報処理装置および情報処理方法 図000009
  • 特開2021092875-情報処理装置および情報処理方法 図000010
  • 特開2021092875-情報処理装置および情報処理方法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2021-92875(P2021-92875A)
(43)【公開日】2021年6月17日
(54)【発明の名称】情報処理装置および情報処理方法
(51)【国際特許分類】
   G06F 8/65 20180101AFI20210521BHJP
【FI】
   G06F8/65
【審査請求】未請求
【請求項の数】7
【出願形態】OL
【全頁数】17
(21)【出願番号】特願2019-221804(P2019-221804)
(22)【出願日】2019年12月9日
(71)【出願人】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】上辻 孝彦
(72)【発明者】
【氏名】松田 大輝
(72)【発明者】
【氏名】玉野 宏和
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AB01
5B376CA34
5B376CA39
5B376CA52
5B376CA76
5B376GA08
(57)【要約】
【課題】更新対象の制御器のプログラムを当該制御器に影響を与えないように更新することができる情報処理装置などを提供する。
【解決手段】情報処理装置210は、ECU230と、一方の記憶領域にECU230が起動時に実行する第1プログラムが格納されている、第1記憶領域241および第2記憶領域242を有する仮想ストレージをECU230に提供する管理ECU220と、外部装置から第1プログラムの更新用の第2プログラムを取得し、取得した第2プログラムを第1記憶領域241および第2記憶領域242の他方の記憶領域に格納させる更新制御部221と、第2プログラムが他方の記憶領域に格納された後で、ECU230が起動時に実行するプログラムを第1プログラムから他方の記憶領域に格納された第2プログラムに切り替える切替部222と、を備える。
【選択図】図4
【特許請求の範囲】
【請求項1】
第1制御器と、
一方の記憶領域に前記第1制御器が起動時に実行する第1プログラムが格納されている、第1記憶領域および第2記憶領域を有する仮想ストレージを前記第1制御器に提供する第2制御器と、
外部装置から前記第1プログラムの更新用の第2プログラムを取得し、取得した前記第2プログラムを前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させる更新制御部と、
前記第2プログラムが前記他方の記憶領域に格納された後で、前記第1制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替える切替部と、を備える
情報処理装置。
【請求項2】
前記切替部は、前記第2プログラムを実行した第1制御器に異常が検知された場合、前記第1制御器が起動時に実行するプログラムを前記第2プログラムから前記一方の記憶領域に格納されている前記第1プログラムに再変更する
請求項1に記載の情報処理装置。
【請求項3】
前記第1制御器は、前記更新制御部を有する
請求項1または2に記載の情報処理装置。
【請求項4】
前記第2制御器は、前記更新制御部を有する
請求項1または2に記載の情報処理装置。
【請求項5】
前記情報処理装置は、複数の前記第1制御器を備え、
前記第2制御器による前記仮想ストレージは、前記複数の第1制御器にそれぞれアクセスされる、複数の前記第1記憶領域および複数の前記第2記憶領域を有する
請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
前記複数の第1制御器は、依存関係にある複数の依存制御器を有し、
前記複数の依存制御器のそれぞれについて、
前記仮想ストレージは、当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域を有し、
当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域の一方の記憶領域は、当該依存制御器の起動時に前記当該依存制御器が実行する第1プログラムを格納しており、
前記更新制御部は、前記外部装置から当該依存制御器に対応する更新用の第2プログラムを取得した場合、取得した前記第2プログラムを当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させ、
前記切替部は、前記第2プログラムが前記他方の記憶領域に格納された後で、当該依存制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替え、
前記切替部は、前記複数の依存制御器のうちの少なくとも1つの依存制御器が第2プログラムを実行したときに異常が検知された場合、前記複数の依存制御器がそれぞれ起動時に実行するプログラムを、前記第2プログラムから前記一方の記憶領域に格納されている前記第1プログラムに再変更する
請求項5に記載の情報処理装置。
【請求項7】
第1制御器と、一方の記憶領域に前記第1制御器が起動時に実行する第1プログラムが格納されている、第1記憶領域および第2記憶領域を有する仮想ストレージを前記第1制御器に提供する第2制御器と、を備える情報処理装置により実行される情報処理方法であって、
外部装置から前記第1プログラムの更新用の第2プログラムを取得し、
取得した前記第2プログラムを前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させ、
前記第2プログラムが前記他方の記憶領域に格納された後で、前記第1制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替える
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
特許文献1では、自動車に搭載される電子機器の制御用ソフトウェアの更新において、更新バージョンプログラムを現行バージョンプログラムとは異なる格納エリアに格納した後で、更新バージョンプログラムの格納エリアを現行バージョンプログラムの格納エリアに切り替える自動車用制御ユニットが開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−301960号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、更新対象の制御器のプログラムを当該制御器に影響を与えないように更新することができる情報処理装置などを提供する。
【課題を解決するための手段】
【0005】
本開示における情報処理装置は、第1制御器と、一方の記憶領域に前記第1制御器が起動時に実行する第1プログラムが格納されている、第1記憶領域および第2記憶領域を有する仮想ストレージを前記第1制御器に提供する第2制御器と、外部装置から前記第1プログラムの更新用の第2プログラムを取得し、取得した前記第2プログラムを前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させる更新制御部と、前記第2プログラムが前記他方の記憶領域に格納された後で、前記第1制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替える切替部と、を備える。
【0006】
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0007】
本開示における情報処理装置などは、更新対象の制御器のプログラムを当該制御器に影響を与えないように更新することができる。
【図面の簡単な説明】
【0008】
図1図1は、実施の形態に係るデータ配信システムの概略図である。
図2図2は、実施の形態に係るサーバのハードウェア構成の一例を示すブロック図である。
図3図3は、実施の形態に係る移動体のハードウェア構成の一例を示すブロック図である。
図4図4は、実施の形態に係る情報処理装置210の機能構成の一例を示すブロック図である。
図5図5は、実施の形態に係る情報処理装置210によるプログラムの更新動作の一例を示すフローチャートである。
図6図6は、実施の形態に係る情報処理装置210によるプログラムの復旧動作の一例を示すフローチャートである。
図7図7は、変形例1に係る情報処理装置210Aの機能構成の一例を示すブロック図である。
図8図8は、変形例2に係る情報処理装置210Bの機能構成の一例を示すブロック図である。
図9図9は、情報処理装置210Bの機能を実現する仮想マシンの構成を示す図である。
【発明を実施するための形態】
【0009】
(本発明の基礎となった知見)
本発明者らは、「背景技術」の欄において記載した、自動車用制御ユニットに関し、以下の問題が生じることを見出した。
【0010】
特許文献1の自動車用制御ユニット(ECU:Electronic Control Unit)では、更新後のプログラムに不具合が生じている場合、ECUが更新後のプログラムを実行したときに起動不能になる、または、起動したとしてもデッドロックになることがある。このように、ECUが起動不能またはデッドロックになると、ECUが動作できなくなるため、新しいプログラムを古いプログラムとは異なる格納エリアに格納したとしても、古いプログラムを用いてECUを再起動することができないという課題がある。
【0011】
また、複数のECUがそれぞれで独立してプログラムの更新を行う場合、ECU毎に処理能力が異なることが多いため、プログラムの更新品質にばらつきが生じてしまうという課題がある。例えば、プログラムの更新指示を更新対象とは異なる管理ECUが行う場合、更新対象のECUは、管理ECUからの更新指示に応じてプログラムの更新を自身で行うことがある。管理ECUは、プログラムの更新品質に各ECUでばらつきが生じないように各ECUにおけるプログラムの更新を管理しようとすると、例えば、各ECUの処理能力に応じた条件を満たすようにプログラムの更新指示をするなどの工夫が必要になる。つまり、管理ECUに各ECUのプログラムの更新品質を管理するための機能を実装する必要があり、当該機能を実現するためのプログラムを用意する必要がある。
【0012】
このような課題を解決するために、発明者らは、更新対象の制御器のプログラムを、当該制御器に影響を与えないように、更新対象の制御器とは別の制御器に管理させることができる情報処理装置および情報処理方法を見出すに至った。
【0013】
本開示の一態様に係る情報処理装置は、第1制御器と、一方の記憶領域に前記第1制御器が起動時に実行する第1プログラムが格納されている、第1記憶領域および第2記憶領域を有する仮想ストレージを前記第1制御器に提供する第2制御器と、外部装置から前記第1プログラムの更新用の第2プログラムを取得し、取得した前記第2プログラムを前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させる更新制御部と、前記第2プログラムが前記他方の記憶領域に格納された後で、前記第1制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替える切替部と、を備える。
【0014】
これによれば、第1制御器が実行する第1プログラムは、第2制御器が提供する仮想ストレージの第1記憶領域および第2記憶領域の一方の記憶領域に格納されており、更新用の第2プログラムが取得されると第2プログラムは他方の記憶領域に格納される。その後、第1制御器が起動時に実行するプログラムが第2プログラムに切り替えられるため、第1制御器のプログラムの更新を、第1制御器を用いずに行うことができる。よって、更新対象の第1制御器のプログラムを第1制御器に影響を与えないように更新することができる。
【0015】
また、前記切替部は、前記第2プログラムを実行した第1制御器に異常が検知された場合、前記第1制御器が起動時に実行するプログラムを前記第2プログラムから前記一方の記憶領域に格納されている前記第1プログラムに再変更してもよい。
【0016】
これによれば、第2プログラムに異常が検知された場合、第1制御器とは異なる切替部が、第1制御器が起動時に実行するプログラムを第2プログラムから第1プログラムに切り替えることができる。よって、第1制御器が異常がある第2プログラムを実行することで起動不能またはデッドロックになったとしても、第1制御器を、正常に動作する第1プログラムを実行するように再起動することができる。このため、第1制御器が機能しなくなることを抑制することができる。
【0017】
また、前記第1制御器は、前記更新制御部を有してもよい。
【0018】
このため、第1制御器が第2プログラムを他方の記憶領域に格納することができる。
【0019】
また、前記第2制御器は、前記更新制御部を有してもよい。
【0020】
このため、第2制御器が第2プログラムを他方の記憶領域に格納することができる。
【0021】
また、前記情報処理装置は、複数の前記第1制御器を備え、前記第2制御器による前記仮想ストレージは、前記複数の第1制御器にそれぞれアクセスされる、複数の前記第1記憶領域および複数の前記第2記憶領域を有してもよい。
【0022】
このため、複数の第1制御器のそれぞれについて、当該第1制御器のプログラムを当該第1制御器に影響を与えないように更新することができる。
【0023】
また、前記複数の第1制御器は、依存関係にある複数の依存制御器を有し、前記複数の依存制御器のそれぞれについて、前記仮想ストレージは、当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域を有し、当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域の一方の記憶領域は、当該依存制御器の起動時に前記当該依存制御器が実行する第1プログラムを格納しており、前記更新制御部は、前記外部装置から当該依存制御器に対応する更新用の第2プログラムを取得した場合、取得した前記第2プログラムを当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させ、前記切替部は、前記第2プログラムが前記他方の記憶領域に格納された後で、当該依存制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替え、前記切替部は、前記複数の依存制御器のうちの少なくとも1つの依存制御器が第2プログラムを実行したときに異常が検知された場合、前記複数の依存制御器がそれぞれ起動時に実行するプログラムを、前記第2プログラムから前記一方の記憶領域に格納されている前記第1プログラムに再変更してもよい。
【0024】
これによれば、複数の依存制御器のうちの1つの依存制御器の第2プログラムに異常が検知された場合、複数の依存制御器とは異なる切替部が、全ての依存制御器が起動時に実行するプログラムを第2プログラムから第1プログラムに切り替えることができる。よって、一部の依存制御器が異常がある第2プログラムを実行することで起動不能またはデッドロックになって他の依存制御器に悪影響を及ぼす状態となったとしても、全ての複数の依存制御器を、正常に動作する第1プログラムを実行するように再起動することができる。このため、複数の依存制御器が機能しなくなることを抑制することができる。
【0025】
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【0026】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【0027】
なお、発明者らは、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【0028】
(実施の形態)
以下、図1図9を用いて、実施の形態を説明する。
【0029】
[構成]
図1は、実施の形態に係る自動車への更新用のプログラムを配信するシステムの概略図である。
【0030】
具体的には、図1において、サーバ100、自動車200、通信ネットワーク300および移動体通信網の基地局310が示されている。
【0031】
サーバ100は、自動車200が備えるECUなどの電子機器のプログラム(ファームウェア)を記憶しており、自動車200に当該プログラムを通信ネットワーク300を介して提供する装置である。
【0032】
自動車200は、基地局310を介して移動体通信網に通信接続することが可能な移動体である。
【0033】
このように、図1では、OTA(Over The Air)で、自動車200のECUの更新用のプログラムが自動車200に配信されることで、ECUのプログラムが更新される例が示されている。なお、ECUのプログラムの更新方法は、OTAを用いて更新することに限らずない。例えば、更新用の装置を自動車200に有線接続して、更新用の装置を用いて記録媒体に記録された更新用プログラムを、自動車200のECUに適用するようにしてもよい。
【0034】
図2は、実施の形態に係るサーバのハードウェア構成の一例を示すブロック図である。
【0035】
図2に示すように、サーバ100は、ハードウェア構成として、CPU11(Central Processing Unit)と、メインメモリ12と、ストレージ13と、通信IF(Interface)14とを備える。
【0036】
CPU11は、ストレージ13等に記憶された制御プログラムを実行するプロセッサである。
【0037】
メインメモリ12は、CPU11が制御プログラムを実行するときに使用するワークエリアとして用いられる揮発性の記憶領域である。
【0038】
ストレージ13は、制御プログラム、コンテンツなどを保持する不揮発性の記憶領域である。
【0039】
通信IF14は、通信ネットワーク300を介して複数の自動車200と通信する通信インタフェースである。通信IF14は、例えば、有線LANインタフェースである。なお、通信IF14は、無線LANインタフェースであってもよい。また、通信IF14は、LANインタフェースに限らずに、通信ネットワークとの通信接続を確立できる通信インタフェースであれば、どのような通信インタフェースであってもよい。
【0040】
図3は、実施の形態に係る自動車が備える情報処理装置210のハードウェア構成の一例を示すブロック図である。
【0041】
図3に示すように、情報処理装置210は、ハードウェア構成として、TCU(Telematics Control Unit)21と、n個のECU22とを備える。なお、図3には、複数の自動車200それぞれの構成が示されている。なお、情報処理装置210は、図3に示されるハードウェア構成を全て含んでいなくてもよい。例えば、情報処理装置210は、TCU21を有していなくてもよい。
【0042】
TCU21は、自動車200が通信ネットワーク300との間で無線通信を行う通信ユニットである。TCU21は、移動体通信網の規格に対応したセルラモジュールを含む通信ユニットである。
【0043】
n個のECU22は、自動車200が備えるエンジン、モータ、メータ、トランスミッション、ブレーキ、ステアリング、パワーウィンドウ、エアコンなどの各種機器の制御を実行する制御回路である。例えば、n個のECU22は、これらの各種機器のそれぞれに対応して設けられている。n個のECU22のそれぞれは、図示しないが、プログラムを記憶する記憶部を備える。記憶部は、例えば、不揮発性のメモリである。
【0044】
ストレージ23は、制御プログラムなどを保持する不揮発性の記憶領域である。
【0045】
次に、自動車200の情報処理装置210の機能構成について図4を用いて説明する。
【0046】
図4は、実施の形態に係る情報処理装置210の機能構成の一例を示すブロック図である。
【0047】
情報処理装置210は、管理ECU220と、ECU230と、記憶部240とを備える。
【0048】
管理ECU220は、ECU230が実行するプログラムの更新を管理するECUである。管理ECU220は、ECU230に仮想ストレージとして機能する記憶部240を提供する。管理ECU220は、例えば、n個のECU22のうちの少なくとも1つのECUにより実現される。管理ECU220は、TCU21を含んでいてもよい。管理ECU220は、第2制御器の一例である。
【0049】
記憶部240は、管理ECU220を介して仮想ストレージとしてECU230に提供される。仮想ストレージは、第1記憶領域241および第2記憶領域242を有する。第1記憶領域241および第2記憶領域242の一方の記憶領域には、ECU230が起動時に実行する第1プログラムが格納されている。第1プログラムは、ECU230が現在使用中のプログラムである。記憶部240は、ストレージ23により実現される。
【0050】
ECU230は、記憶部240の第1プログラムが格納されている記憶領域にアクセスし、第1プログラムを実行する。ECU230は、起動時に第1プログラムを実行することで自身の機能を実現する。ECU230は、例えば、n個のECU22のうちの管理ECU220を実現するECU22とは異なる少なくとも1つのECUにより実現される。ECU230は、第1制御器の一例である。
【0051】
以下、管理ECU220およびECU230の具体的な機能について説明する。
【0052】
管理ECU220は、具体的には、更新制御部221と、切替部222と、仮想ストレージホスト部223とを有する。
【0053】
更新制御部221は、ECU230が実行するプログラムの更新を制御する。更新制御部221は、具体的には、外部装置から第1プログラムの更新用の第2プログラムを取得し、取得した第2プログラムを、仮想ストレージの第1記憶領域241および第2記憶領域242の他方の記憶領域に格納させる。他方の記憶領域は、第1記憶領域241および第2記憶領域242のうちで、ECU230が現在使用している第1プログラムが格納されていない記憶領域である。なお、外部装置は、例えば、サーバ100、または、更新用の装置である。
【0054】
また、更新制御部221は、ECU230が第2プログラムを実行したときに、ECU230の動作に異常が生じたことを検知する。更新制御部221は、例えば、ECU230の動作状態をECU230から定期的に取得しており、ECU230が第2プログラムを実行したときに、ECU230の動作状態を前回取得した時から所定期間以上取得できない場合に、ECU230に異常が生じたと判定してもよい。また、ECU230の動作状態を前回取得した時から所定期間以上取得できない場合、更新制御部221は、ECU230を所定回数以上再起動させてもECU230の動作状態を取得できない場合に、ECU230に異常が生じたと判定してもよい。また、更新制御部221は、ECU230の動作状態を取得できても、動作状態が事前の想定から大きく異なる動作状態である場合には、ECU230に異常が生じたと判定してもよい。ここで、動作状態とは、例えば、ECU230を構成するCPU(Central Processing Unit)およびメモリ(RAM:Random Access Memory)についての、CPUの利用量、メモリの利用量、通信頻度、通信パターンなどである。
【0055】
切替部222は、第2プログラムが他方の記憶領域に格納された後では、仮想ストレージの第1記憶領域241および第2記憶領域242の両方にECU230が実行するプログラムが格納されることとなるため、ECU230が実行するプログラムとして2つの記憶領域にそれぞれ記憶されている2つのプログラムのうちの1つを選択する処理部である。具体的には、切替部222は、第2プログラムが他方の記憶領域に格納された後で、ECU230が起動時に実行するプログラムを第1プログラムから他方の記憶領域に格納された第2プログラムに切り替える。また、切替部222は、更新制御部221により第2プログラムを実行したECU230に異常が検知された場合、ECU230が起動時に実行するプログラムを第2プログラムから一方の記憶装置に格納されている第1プログラムに再変更する。
【0056】
仮想ストレージホスト部223は、記憶部240を実現しているストレージ23を用いて、ECU230に対して仮想ストレージとしての記憶部240を提供する処理部である。仮想ストレージホスト部223は、仮想クライアント機能を有するECU230からアクセスされ、ストレージ23の実記憶領域を、仮想的な第1記憶領域241および第2記憶領域242として提供する。
【0057】
ECU230は、具体的には、制御部231と、状態検知部232と、仮想ストレージクライアント部233とを有する。
【0058】
制御部231は、第1プログラムを実行して、ECU230の機能を実現する処理部である。制御部231は、具体的には、仮想ストレージクライアント部233を制御して、管理ECU220を介して記憶部240にアクセスし、第1記憶領域241および第2記憶領域242の一方の記憶領域に格納されている第1プログラムを実行する。
【0059】
状態検知部232は、ECU230が起動中において、一定間隔でECU230の動作状態を取得し、取得した動作状態を管理ECU220に通知する。状態検知部232は、ECU230に異常が生じて動作できなくなると、動作状態を管理ECU220に通知できなくなる。つまり、状態検知部232が動作状態を管理ECU220に通知できないことが、ECU230の動作に異常が生じたことを示している。
【0060】
仮想ストレージクライアント部233は、管理ECU220の仮想ストレージホスト部223との間で情報をやり取りすることで、仮想ストレージホスト部223から仮想ストレージとして機能する記憶部240の提供を受ける処理部である。
【0061】
[動作]
以上のように構成された情報処理装置210について、その動作を以下に説明する。
【0062】
図5は、実施の形態に係る情報処理装置210によるプログラムの更新動作の一例を示すフローチャートである。
【0063】
管理ECU220は、第2プログラムを取得したか否かを判定する(S11)。
【0064】
管理ECU220は、第2プログラムを取得したと判定した場合(S11でYes)、仮想ストレージの第1記憶領域241および第2記憶領域242のうちでECU230が起動時に使用していない記憶領域に第2プログラムを格納する(S12)。管理ECU220は、第2プログラムを取得していないと判定した場合、ステップS11に戻る。
【0065】
次に、管理ECU220は、ECU230が起動時に使用する記憶領域を、第1記憶領域241および第2記憶領域242のうちで第2プログラムを格納した記憶領域に切り替える(S13)。これにより、管理ECU220は、ECU230の起動時に第2プログラムを実行させる。なお、管理ECU220は、ECU230が起動時に使用する記憶領域を切り替えた後で、ECU230を再起動する。
【0066】
図6は、実施の形態に係る情報処理装置210によるプログラムの復旧動作の一例を示すフローチャートである。復旧動作は、図5で説明した更新動作が行われた後に行われる。
【0067】
管理ECU220は、第2プログラムを実行したECU230に異常が生じたか否かを判定する(S21)。
【0068】
管理ECU220は、ECU230に異常が生じたと判定した場合(S21でYes)、ECU230が起動時に使用する記憶領域を、第1記憶領域241および第2記憶領域242のうちで、第2プログラムが記憶されている記憶領域から第1プログラムが記憶されている記憶領域に切り替える(S22)。これにより、管理ECU220は、ECU230の起動時に第1プログラムを実行させる。なお、管理ECU220は、ECU230が起動時に使用する記憶領域を切り替えた後で、ECU230を再起動する。
【0069】
[効果など]
本実施の形態に係る情報処理装置210によれば、ECU230が実行する第1プログラムは、管理ECU220が提供する仮想ストレージの第1記憶領域241および第2記憶領域242の一方の記憶領域に格納されており、更新用の第2プログラムが取得されると第2プログラムは他方の記憶領域に格納される。その後、ECU230が起動時に実行するプログラムが第2プログラムに切り替えられるため、ECU230のプログラムの更新を、ECU230を用いずに行うことができる。よって、更新対象のECU230のプログラムを動作中のECU230に影響を与えないように更新することができる。
【0070】
また、本実施の形態に係る情報処理装置210において、切替部222は、第2プログラムを実行したECU230に異常が検知された場合、ECU230が起動時に実行するプログラムを第2プログラムから一方の記憶領域に格納されている第1プログラムに再変更する。これによれば、第2プログラムに異常が検知された場合、ECU230とは異なる管理ECU220が有する切替部222が、ECU230が起動時に実行するプログラムを第2プログラムから第1プログラムに切り替えることができる。よって、ECU230が異常がある第2プログラムを実行することで起動不能またはデッドロックになったとしても、ECU230を、正常に動作する第1プログラムを実行するように再起動することができる。このため、ECU230が機能しなくなることを抑制することができる。
【0071】
[変形例]
(変形例1)
上記実施の形態に係る情報処理装置210では、1つのECU230に対して仮想ストレージとしての第1記憶領域241および第2記憶領域242が管理ECU220によって提供される例を説明したが、複数のECU230a、230bに対して仮想ストレージが提供されてもよい。図7は、変形例1に係る情報処理装置210Aの機能構成の一例を示すブロック図である。
【0072】
情報処理装置210Aは、実施の形態の情報処理装置210と比較して、管理ECU220Aが複数のECU230a、230bに対して仮想ストレージとしての記憶部240Aを提供している点が異なる。以下では、主に、実施の形態の情報処理装置210の異なる点について説明する。
【0073】
管理ECU220Aでは、仮想ストレージホスト部223Aが複数のECU230a、230bに記憶部240Aを提供している。仮想ストレージホスト部223Aは、複数のECU230a、230bにそれぞれアクセスされる、複数の第1記憶領域241、243、および、複数の第2記憶領域242、244を有する。具体的には、仮想ストレージホスト部223Aは、ECU230aに第1記憶領域241および第2記憶領域242を提供し、ECU230bに第1記憶領域243および第2記憶領域244を提供する。このように、仮想ストレージホスト部223Aは、複数のECU230a、230bに対してそれぞれ独立した2つの記憶領域を提供する。第1記憶領域241および第2記憶領域242の一方の記憶領域には、ECU230aが起動時に実行する第1プログラムが格納されている。同様に、第1記憶領域243および第2記憶領域244の一方の記憶領域には、ECU230bが起動時に実行する第1プログラムが格納されている。
【0074】
更新制御部221Aは、複数のECU230a、230bのそれぞれに対して、実施の形態の更新制御部221と同様の処理を行う。更新制御部221Aは、具体的には、外部装置からECU230aの第1プログラムの更新用の第2プログラムを取得し、取得した第2プログラムを、仮想ストレージの第1記憶領域241および第2記憶領域242の他方の記憶領域に格納させる。同様に、更新制御部221Aは、外部装置からECU230bの第1プログラムの更新用の第2プログラムを取得し、取得した第2プログラムを、仮想ストレージの第1記憶領域243および第2記憶領域244の他方の記憶領域に格納させる。
【0075】
切替部222Aは、ECU230aの第2プログラムが他方の記憶領域に格納された後で、ECU230aが起動時に実行するプログラムを第1プログラムから他方の記憶領域に格納された第2プログラムに切り替える。同様に、切替部222Aは、ECU230bの第2プログラムが他方の記憶領域に格納された後で、ECU230bが起動時に実行するプログラムを第1プログラムから他方の記憶領域に格納された第2プログラムに切り替える。
【0076】
また、切替部222Aは、更新制御部221Aにより第2プログラムを実行したECU230aに異常が検知された場合、ECU230aが起動時に実行するプログラムを第2プログラムから一方の記憶装置に格納されている第1プログラムに再変更する。同様に、切替部222Aは、更新制御部221Aにより第2プログラムを実行したECU230bに異常が検知された場合、ECU230bが起動時に実行するプログラムを第2プログラムから一方の記憶装置に格納されている第1プログラムに再変更する。
【0077】
変形例1の情報処理装置210Aでは、複数のECU230a、230bのそれぞれについて、当該ECUのプログラムを当該ECUに影響を与えないように更新することができる。
【0078】
なお、変形例1において、複数のECU230a、230bが依存関係にある場合がある。依存関係にあるとは、一のECUの機能が実現されていることが前提で他のECUの機能が実現されている関係にあることである。つまり、依存関係のECUでは、一のECUの動作が正常に行われないと、他のECUの動作も正常に行われない。このため、切替部222Aは、依存関係について考慮して、プログラムの切り替えを行ってもよい。具体的には、切替部222Aは、依存関係にある複数のECU230a、230bのうちの少なくとも1つのECUが第2プログラムを実行したときに異常が検知された場合、複数のECU230a、230bがそれぞれ起動時に実行するプログラムを、第2プログラムから一方の記憶領域に格納されている第1プログラムに再変更する。
【0079】
これによれば、複数のECU230a、230bのうちの1つのECUが第2プログラムを実行したときに当該ECUから異常が検知された場合、複数のECU230a、230bとは異なる管理ECU220Aの切替部222Aが、依存関係にある全てのECU230a、230bが起動時に実行するプログラムを第2プログラムから第1プログラムに切り替えることができる。よって、ECU230aが異常がある第2プログラムを実行することで起動不能またはデッドロックになってECU230bに悪影響を及ぼす状態となったとしても、全ての複数のECU230a、230bを、正常に動作する第1プログラムを実行するように再起動することができる。このため、複数のECU230a、230bが機能しなくなることを抑制することができる。
【0080】
(変形例2)
上記実施の形態では、管理ECU220と、ECU230とは、n個のECU22のうちのいずれかで実現されるとしたが、これに限らずに、1以上のプロセッサ、および、仮想化環境を実現するためのプログラムが格納されているメモリまたはストレージにより実現されてもよい。
【0081】
図8は、変形例2に係る情報処理装置210Bの機能構成の一例を示すブロック図である。図9は、情報処理装置210Bの機能を実現する仮想マシンの構成を示す図である。
【0082】
情報処理装置210Bは、図8に示すように、管理VM(Virtual Machine)220Bと、複数のVM(Virtual Machine)230Ba、230Bbと、監視部250と、共有メモリ260とを備える。情報処理装置210Bは、図9に示すように、1以上のハードウェアの上にソフトウェアにより仮想的に実現される仮想マシンを有する。例えば、情報処理装置210Bは、ハイパーバイザー型の仮想化環境で実現される。
【0083】
管理VM220Bは、実施の形態に係る管理ECU220と同様の機能を有する。複数のVM230Ba、230Bbは、実施の形態に係るECU230a、230bと同様の機能を有する。
【0084】
監視部250は、VM230Ba、230Bbの状態検知部232から動作状態を定期的に取得し、取得した動作状態を管理VM220Bの更新制御部221に出力する。このように、監視部250は、管理VM220BおよびVM230Ba、230Bbとは異なる処理部として実現されているため、管理VM220BおよびVM230Ba、230Bbに依存することなく、より効果的に各VMからの動作状態を取得することができる。
【0085】
共有メモリ260は、仮想ストレージ機能による記憶領域を提供する。このように、共有メモリ260により、各VMのプログラムの記憶領域が実現されているため、管理VM220BおよびVM230Ba、230Bb間の情報の受け渡しを高速に行うことができる。
【0086】
(変形例3)
上記実施の形態では、管理ECU220が有する更新制御部221において、外部装置から第1プログラムの更新用の第2プログラムを取得し、取得した第2プログラムを、仮想ストレージの第1記憶領域241および第2記憶領域242の他方の記憶領域に格納させる処理を行うとしたが、これに限らずに、ECU230が当該処理を行う更新制御部をさらに有していてもよい。これにより、ECU230の書き換え機能が特殊な場合に、ECU230の機能に応じた書き換えを実現することができる。
【0087】
(変形例4)
上記実施の形態では、切替部222、222Aは、管理ECU220が有するとしたが、これに限らずに、管理ECU220およびECU230とは異なる処理部または制御器が有していてもよい。
【0088】
(変形例5)
上記実施の形態では、自動車200を移動体の一例として挙げたが、移動体は、自動車200に限らずに、他の乗り物であってもよいし、無人の車両、ドローンなどの飛行体などであってもよい。また、情報処理装置210は、例えば、移動体に搭載されるコンピュータシステムに限らずに、複数の制御器を備えていればどのようなコンピュータシステムに適用されてもよい。
【0089】
[その他]
なお、上記実施の形態およびその変形例1〜4において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の配信ルール生成方法などを実現するソフトウェアは、次のようなプログラムである。
【0090】
すなわち、このプログラムは、コンピュータに、第1制御器と、一方の記憶領域に前記第1制御器が起動時に実行する第1プログラムが格納されている、第1記憶領域および第2記憶領域を有する仮想ストレージを前記第1制御器に提供する第2制御器と、を備える情報処理装置により実行される情報処理方法であって、外部装置から前記第1プログラムの更新用の第2プログラムを取得し、取得した前記第2プログラムを前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させ、前記第2プログラムが前記他方の記憶領域に格納された後で、前記第1制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替える情報処理方法を実行させる。
【0091】
以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面および詳細な説明を提供した。
【0092】
したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【0093】
また、上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【産業上の利用可能性】
【0094】
本開示は、更新対象の制御器のプログラムを当該制御器に影響を与えないように更新することができる情報処理装置等に適用可能である。
【符号の説明】
【0095】
11 CPU(Central Processing Unit)
12 メインメモリ
13 ストレージ
14 通信IF(Interface)
21 TCU(Telematics Control Unit)
22 ECU(Electronic Control Unit)
23 ストレージ
100 サーバ
200 自動車
210、210A、210B 情報処理装置
220、220A 管理ECU
220B 管理VM
221、221A 更新制御部
222、222A 切替部
223、223A 仮想ストレージホスト部
230、230a,230b ECU
230Ba、230Bb VM
231 制御部
232 状態検知部
233 仮想ストレージクライアント部
240、240A 記憶部
241、243 第1記憶領域
242、244 第2記憶領域
250 監視部
260 共有メモリ
300 通信ネットワーク
310 基地局
図1
図2
図3
図4
図5
図6
図7
図8
図9