特許第6799404号(P6799404)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 富士通テン株式会社の特許一覧

<>
  • 特許6799404-情報処理装置および情報処理方法 図000002
  • 特許6799404-情報処理装置および情報処理方法 図000003
  • 特許6799404-情報処理装置および情報処理方法 図000004
  • 特許6799404-情報処理装置および情報処理方法 図000005
  • 特許6799404-情報処理装置および情報処理方法 図000006
  • 特許6799404-情報処理装置および情報処理方法 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6799404
(24)【登録日】2020年11月25日
(45)【発行日】2020年12月16日
(54)【発明の名称】情報処理装置および情報処理方法
(51)【国際特許分類】
   G06F 12/14 20060101AFI20201207BHJP
【FI】
   G06F12/14 510D
【請求項の数】7
【全頁数】14
(21)【出願番号】特願2016-138615(P2016-138615)
(22)【出願日】2016年7月13日
(65)【公開番号】特開2018-10467(P2018-10467A)
(43)【公開日】2018年1月18日
【審査請求日】2019年5月30日
(73)【特許権者】
【識別番号】000237592
【氏名又は名称】株式会社デンソーテン
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】杉原 勝
【審査官】 吉田 歩
(56)【参考文献】
【文献】 特開2010−198147(JP,A)
【文献】 国際公開第2015/121923(WO,A1)
【文献】 国際公開第2013/057825(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/14
(57)【特許請求の範囲】
【請求項1】
タスクごとに割り当てられたメモリ使用領域と、前記タスクを識別する識別情報を記憶する識別情報領域とを有するメモリと、
前記タスクによる前記メモリ使用領域への書き込みおよび読み込みを仲介するソフトウェアである仲介部と
を備え、
前記仲介部は、
前記タスクから受け付けた前記書き込みおよび前記読み込みの両方を指示する要求に基づいて当該タスクに対応する前記識別情報を前記識別情報領域へ書き込むとともに、所定のタイミングで前記識別情報領域に記憶された情報を読み出し、読み出した情報に基づいて前記メモリの異常を検知すること
を特徴とする情報処理装置。
【請求項2】
前記仲介部は、
前記識別情報領域に前記識別情報を書き込んでから次に前記識別情報を書き込むまでの間における所定のタイミングで前記識別情報領域に記憶された情報を読み出し、当該情報が書き込んだ前記識別情報と異なる場合に、前記メモリの異常を検知すること
を特徴とする請求項1に記載の情報処理装置。
【請求項3】
アドレス判定部をさらに備え、
前記識別情報領域は、
前記タスクごとに割り当てられた前記メモリ使用領域のアドレス範囲をさらに記憶し、
前記アドレス判定部は、
前記タスクによる前記要求により指定されたメモリアドレスが当該タスクに対応する前記アドレス範囲に含まれるか否かを判定し、
前記仲介部は、
前記アドレス判定部によって前記メモリアドレスが前記アドレス範囲に含まれると判定された場合に、前記要求を受け付けること
を特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記タスクによる前記要求により指定された直前タスクの前記識別情報と、前記識別情報領域に記憶された前記識別情報とを比較することで、前記タスクの実行順序が正しい順序であるか否かを判定する順序判定部
をさらに備え、
前記仲介部は、
前記順序判定部によって正しい実行順序であると判定された場合に、前記要求を受け付けること
を特徴とする請求項1、2または3に記載の情報処理装置。
【請求項5】
前記要求ごとに閾値時間が設定されたウォッチドッグタイマをさらに備え、
前記仲介部は、
前記メモリに対する処理時間が前記閾値時間を超過した場合に、前記情報処理装置を再起動させること
を特徴とする請求項1〜4のいずれか一つに記載の情報処理装置。
【請求項6】
前記仲介部は、
車両に搭載されたバッテリーの過充電監視に関する前記タスクによる前記書き込みおよび前記読み込みを仲介すること
を特徴とする請求項1〜5のいずれか一つに記載の情報処理装置。
【請求項7】
タスクごとに割り当てられたメモリ使用領域と、前記タスクを識別する識別情報を記憶する識別情報領域とを有するメモリ
を用い、
前記タスクによる前記メモリ使用領域への書き込みおよび読み込みをソフトウェアによる処理によって仲介する仲介工程を含み、
前記仲介工程は、
前記タスクから受け付けた前記書き込みおよび前記読み込みの両方を指示する要求に基づいて当該タスクに対応する前記識別情報を前記識別情報領域へ書き込むとともに、所定のタイミングで前記識別情報領域に記憶された情報を読み出し、読み出した情報に基づいて前記メモリの異常を検知すること
を特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
従来、マイクロコンピュータなどの情報処理装置において、実行するタスクがメモリへアクセスする際のメモリ保護を、いわゆるMMU(Memory Management Unit)などの専用のハードウェアで行うものが知られている(例えば、特許文献1参照)。
【0003】
ここで、MMUは、タスクごとに割り当てられたメモリ使用領域以外にタスクがアクセスしようとすると、かかるアクセスをメモリ保護違反として検出する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013−109393号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記した従来技術のように、情報処理装置にMMUなどの専用ハードウェアを実装してメモリ保護を行うと、専用ハードウェア分だけコストが上昇してしまう。
【0006】
本発明は、上記に鑑みてなされたものであって、安価にメモリ保護を行うことができる情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本発明は、メモリと、仲介部とを備える。メモリは、タスクごとに割り当てられたメモリ使用領域と、前記タスクを識別する識別情報を記憶する識別情報領域とを有する。仲介部は、前記タスクによる前記メモリ使用領域への書き込みおよび読み込みを仲介する。また、仲介部は、前記タスクから前記書き込みおよび前記読み込みの要求を受け付けた場合に、当該タスクに対応する前記識別情報を前記識別情報領域へ書き込むとともに、所定のタイミングで前記識別情報領域に記憶された情報を読み出し、読み出した情報に基づいて前記メモリの異常を検知する。
【発明の効果】
【0008】
本発明によれば、安価にメモリ保護が可能な情報処理装置および情報処理方法を提供することができる。
【図面の簡単な説明】
【0009】
図1図1は、本実施形態に係る情報処理方法の概要を示す図である。
図2図2は、本実施形態に係る情報処理装置の構成を示すブロック図である。
図3図3は、メモリの構成例を示す図である。
図4図4は、本実施形態に係る情報処理装置が実行する処理手順を示すフローチャートである。
図5図5は、本実施形態に係る情報処理装置の適用例を示す図である。
図6図6は、タスクの具体例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明に係る情報処理装置および情報処理方法について添付図面に基づいて説明する。なお、本実施形態によりこの発明が限定されるものではない。
【0011】
まず、図1を用いて本実施形態に係る情報処理方法の概要について説明する。図1は、本実施形態に係る情報処理方法の概要を示す図である。なお、図1では、各タスクがメモリMにアクセスする場合について説明する。また、図1に示したメモリ使用領域41a〜41nは、タスクTa〜Tnにそれぞれ割り当てられた領域とする。
【0012】
タスクTの動作に異常が発生した場合などに、タスクTaが、タスクTaに割り当てられたメモリ使用領域41a以外の領域にアクセスしたり、他のタスクTが、メモリ使用領域41aにアクセスしたりといったメモリ異常が発生することがある。従来では、かかるメモリ異常をMMU(Memory Management Unit)などの専用ハードウェアで検知することでメモリ保護を図っていた。しかしながら、専用ハードウェアを用いると情報処理装置のコストが上昇してしまうという課題があった。
【0013】
そこで、本実施形態に係る情報処理装置1では、上記したような専用ハードウェアを用いずに、メモリ保護を図ることとした。
【0014】
具体的には、情報処理装置1に、タスクTによるメモリ使用領域41への書き込みおよび読み込みを仲介する仲介部20を設けることとした。また、情報処理装置1のメモリMに、タスクTごとに割り当てられたメモリ使用領域41とは別に、識別情報Iを記憶する識別情報領域42を設けることとした。
【0015】
ここで、仲介部20は、タスクTと同様なプロセスである。つまり、本実施形態に係る情報処理方法では、メモリ保護を専用ハードウェアではなく、ソフトウェアによって実現することとした。
【0016】
図1に示すように、仲介部20は、例えばタスクTaから要求を受け付けると(ステップS1)、タスクTaの識別情報Iaを識別情報領域42に書き込む(ステップS2)。そして、仲介部20は、タスクTaより要求された書き込みおよび読み込みを仲介する(ステップS3)。
【0017】
一方、仲介部20は、所定のタイミングで識別情報領域42に記憶された情報を読み込み、読み込んだ情報に基づいてメモリMの保護異常を検知する(ステップS4)。たとえば、仲介部20は、ステップS4で読み込んだ情報が、ステップS2で書き込んだはずの識別情報Iaとは異なる場合に、メモリMの保護異常を検知する。
【0018】
具体的には、仮に、タスクTa以外のタスクT(たとえば、タスクTbなど)が、暴走などの理由によってメモリMに不正な書き込みを行った場合、識別情報領域42を上書きしてしまうことがある。仲介部20は、所定のタイミングで識別情報領域42に記憶された情報を読み込むことで、かかる不正なメモリアクセスを検出するのである。
【0019】
また、仲介部20は、このようなメモリMの保護異常を検知した場合、例えば、情報処理装置1を再起動することで、メモリMが異常な状態で情報処理装置1が動作し続けることを防止する。すなわち、情報処理装置1は、メモリMが正常な状態でのみ動作するので、本実施形態に係る情報処理方法によれば、情報処理装置1の動作中におけるメモリ保護を保証することができる。
【0020】
また、本実施形態に係る情報処理方法によれば、ソフトウェアの機能としてメモリ保護が可能であるため、専用ハードウェアを別途必要としない。したがって、本実施形態に係る情報処理方法によれば、安価にメモリ保護を行うことができる。
【0021】
以下、本実施形態に係る情報処理装置1についてさらに詳細に説明する。まず、図2を用いて情報処理装置1の構成例について説明する。図2は、本実施形態に係る情報処理装置1の構成を示すブロック図である。
【0022】
また、以下では、メモリMがRAM(Random Access Memory)40である場合について説明するが、記憶した情報を書き換え可能なメモリであれば、他の種類のメモリであってもよい。
【0023】
図2に示すように、情報処理装置1は、制御部10と、ROM(Read Only Memory)30と、RAM40とを備える。
【0024】
ROM30は、不揮発性のメモリであり、制御部10が、タスクT、WDT部15および仲介部20を実行するための各種プログラムや、タスクTが演算等で用いる初期値などを記憶する。
【0025】
RAM40は、揮発性のメモリであり、情報の書き込みおよび読み出しが可能である。ここで、図3を用いてRAM40の構成について説明しておく。図3は、メモリM(RAM40)の構成例を示す図である。
【0026】
図3に示すように、RAM40は、タスクTごと分割されたメモリ使用領域41と、識別情報領域42とを備える。メモリ使用領域41は、複数に分割された各領域が各タスクTにそれぞれ割り当てられ、各タスクTの処理に必要な情報を記憶する領域である。
【0027】
識別情報領域42は、識別情報Iを記憶する領域42Aと、タスクTごとに割り当てられたメモリ使用領域41のアドレス範囲の情報(以下、「範囲情報」と記載する)を記憶する領域42Bとを備える。
【0028】
なお、RAM40は、揮発性のメモリであるため、RAM40に記憶された情報は、情報処理装置1の電源がオフになると消失する。そして、情報処理装置1の電源がオンになると、RAM40には、初期データが書き込まれる。初期データは、各タスクTの演算等に必要な初期値などの情報や、上記した範囲情報などを含む。
【0029】
具体的には、制御部10(図2参照)は、初期データをROM30から読み出し、読み出した初期データをRAM40に書き込む。また、初期データの書き込みが正常に終了した場合、制御部10は、領域42Aに初期化が正常に終了したことを示す初期化識別情報を書き込む。
【0030】
つまり、RAM40の初期化が正常に完了した場合、識別情報領域42には、初期化識別情報が記憶される。初期化後に、仲介部20が、領域42Aに記憶された情報を読み込み、初期化識別情報が記憶されていない場合に、RAM40の初期化異常を検知することができる。
【0031】
図2に戻って制御部10について説明する。制御部10は、例えば、CPU(Central Processing Unit)であり、情報処理装置1の全体を制御する。また、制御部10は、タスクTと、ウォッチドッグタイマ部15(以下、「WDT部15」と記載する)と、仲介部20とを備える。また、制御部10は、ROM30に予め記憶されたプログラムを読み出して実行することにより、タスクT、WDT部15および仲介部20の各機能を実現する。なお、制御部10は、タスクTをシーケンシャルに実行し、各タスクTと、仲介部20と、WDT部15とは、パラレルに実行するものとする。
【0032】
タスクTは、仲介部20を介してRAM40のメモリ使用領域41へ書き込みおよび読み込みを行うことで、演算等の処理を行う。具体的には、タスクTは、書き込みおよび読み込みの要求(以下、「処理要求」と記載する)と識別情報Iとを仲介部20のW/R処理部21に出力する。また、タスクTは、タイマの要求をWDT部15に出力する。
【0033】
ここで、処理要求とは、仲介部20に対してメモリ使用領域41の指定するメモリアドレス(以下、「指定メモリアドレス」と記載する)への書き込みおよび読み込みを指示するものである。また、指定メモリアドレスは、タスクTに割り当てられたメモリ使用領域41である。
【0034】
また、直前のタスクTが規定されている場合、かかる処理要求には、直前のタスクTを指定する指定タスク情報が含まれる。指定タスク情報は、例えば、指定するタスクTの識別情報Iである。
【0035】
WDT部15は、タスクTからタイマの要求を受け取ると、かかる要求で指定された閾値時間を設定し、カウントを開始する。そして、WDT部15は、仲介部20から処理要求に基づく書き込みおよび読み込みが完了したことを示す終了通知が入力された場合に、カウントを停止してカウント値をリセットする。
【0036】
また、WDT部15は、カウント値が閾値時間に到達するまでに、上記した終了通知が入力されない場合、仲介部20に超過通知を出力する。仲介部20は、超過通知が入力されると、異常対応処理として、例えば、情報処理装置1を再起動させる。
【0037】
つまり、タスクTの暴走などの不具合が生じた場合には、ただちに、情報処理装置1が再起動させられるので、情報処理装置1を迅速に正常な状態に回復させることができる。
【0038】
仲介部20は、タスクTによるメモリ使用領域41への書き込みおよび読み込みを仲介する。また、仲介部20は、タスクTから処理要求を受け付けた場合に当該タスクTに対応する識別情報Iを識別情報領域42へ書き込む。
【0039】
そして、仲介部20は、所定のタイミングで識別情報領域42に記憶された情報を読み出し、読み出した情報に基づいてRAM40の異常を検知する。また、仲介部20は、W/R処理部21と、判定部25とを備える。
【0040】
W/R処理部21は、タスクTから入力される処理要求に基づきメモリ使用領域41への書き込みおよび読み込みを行う。また、所定のタイミングで、W/R処理部21は、識別情報領域42に記憶された情報を読み出して判定部25に出力する。
【0041】
具体的には、まず、W/R処理部21は、タスクTから処理要求および識別情報Iが入力されると、識別情報領域42に記憶された情報を読み出す。
【0042】
なお、情報処理装置1が正常に動作している場合、識別情報領域42から読み出される情報は、直前のタスクTの識別情報Iおよび上記した範囲情報である。
【0043】
続いて、W/R処理部21は、処理要求に含まれる指定メモリアドレスと、範囲情報とをアドレス判定部25aに出力する。また、W/R処理部21は、タスクTから入力された識別情報Iと、直前のタスクTの識別情報Iとを順序判定部25bに出力する。
【0044】
これにより、アドレス判定部25aおよび順序判定部25bでは、後述する判定処理が行われる。そして、かかる判定処理の結果が正常である場合に、アドレス判定部25aおよび順序判定部25bは、W/R処理部21に許可通知を出力する。
【0045】
そして、W/R処理部21は、アドレス判定部25aおよび順序判定部25bの双方から許可通知が入力された場合に、処理要求に基づきRAM40のメモリ使用領域41への書き込みおよび読み込みを開始する。
【0046】
また、W/R処理部21は、例えば、メモリ使用領域41への書き込みおよび読み込みを開始するに先立って識別情報領域42にタスクTの識別情報Iを書き込む。換言すると、識別情報領域42に記憶させた識別情報Iを更新する。
【0047】
以下では、更新する直前に識別情報領域42に記憶された識別情報Iについて「直前の識別情報I」と記載し、更新した直後の識別情報Iについて「今回の識別情報I」と記載する。また、識別情報Iに対応するタスク付随を、「直前のタスクT」、「今回のタスクT」と記載する。
【0048】
W/R処理部21は、識別情報領域42の領域42Aに識別情報Iを書き込んでから次に識別情報Iを書き込むまでの間における所定のタイミングで領域42Aに記憶された情報を読み出す。
【0049】
ここで、所定のタイミングとは、例えば、W/R処理部21がタスクTの処理要求に基づく書き込みおよび読み込みを終了したタイミングである。なお、かかるタイミングに限定されず、識別情報領域42の領域42Aに識別情報Iを書き込んでから次に識別情報Iを書き込むまでの間のタイミングであれば足りる。また、かかる間に複数回の読み込みを行うこととしてもよい。
【0050】
そして、W/R処理部21は、領域42Aから読み込んだ情報と、処理要求とともに入力される識別情報Iとをメモリ異常判定部25cに出力する。これにより、メモリ異常判定部25cでは、後述の判定が行われる。
【0051】
そして、メモリ異常判定部25cによる判定の結果、RAM40が正常であると判定された場合には、メモリ異常判定部25cは、WDT部15に終了通知を出力する。これにより、WDT部15では、カウントが停止され、カウント値がリセットされる。
【0052】
また、メモリ異常判定部25cは、終了通知をW/R処理部21を介してタスクTに出力する。これにより、例えば、次のタスクTが開始される。
【0053】
判定部25は、識別情報領域42に記憶された情報に基づきRAM40のメモリ保護を行うとともに、RAM40のメモリ保護異常などを検知する。また、判定部25は、アドレス判定部25aと、順序判定部25bと、メモリ異常判定部25cとを備える。
【0054】
メモリ異常判定部25cは、識別情報領域42に記憶された情報に基づきRAM40が異常か否かを判定する。具体的には、メモリ異常判定部25cは、W/R処理部21から、処理要求の識別情報Iと、識別情報領域42から読み込んだ情報とを取得する。
【0055】
続いて、メモリ異常判定部25cは、上記した情報を比較する。比較の結果、上記した情報が一致する場合、すなわち、双方の情報とも今回の識別情報Iである場合、メモリ異常判定部25cは、識別情報領域42が正常であると判定する。
【0056】
一方、比較の結果、上記した情報が一致しない場合、すなわち、識別情報領域42に記憶された今回の識別情報Iが他の情報に変更されていた場合、メモリ異常判定部25cは、メモリ保護異常と判定する。
【0057】
これは、識別情報領域42に書き込んだ識別情報Iが、読み込むまでの間に書き換えられたことを意味するためである。したがって、例えば、プログラムの暴走等によって、他のタスクTが仲介部20を介さずRAM40にアクセスし、書き込みおよび読み込みをした場合であっても、メモリ異常を検知することができる。
【0058】
このように、情報処理装置1によれば、簡易な構成によってメモリ保護異常を検知することができるため、メモリ保護を行う専用のハードウェアを必要としない。したがって、安価にメモリ保護を行うことができる。
【0059】
アドレス判定部25aは、タスクTにより指定されたメモリアドレスが、当該タスクTに割り当てられたメモリ使用領域41であるか否かを判定する。具体的には、まず、アドレス判定部25aは、W/R処理部21から指定メモリアドレス、識別情報Iおよび範囲情報を取得する。
【0060】
続いて、アドレス判定部25aは、範囲情報に基づき、識別情報Iに許可されたメモリ範囲に指定メモリアドレスがあるか否かを判定する。判定の結果、指定メモリアドレスが当該識別情報I、すなわち、当該識別情報Iに対応するタスクTに割り当てられたメモリ使用領域41である場合、アドレス判定部25aは、W/R処理部21に対して許可通知を出力する。
【0061】
換言すると、仲介部20は、タスクTの処理要求により指定されたメモリアドレスが今回のタスクTに割り当てられたメモリ使用領域41のメモリ範囲に含まれると判定された場合に、タスクTの処理要求を受け付ける。
【0062】
一方、判定の結果、指定メモリアドレスが上記したメモリ範囲に含まれない場合、W/R処理部21には、許可通知が入力されない。したがって、この場合、W/R処理部21では、処理要求に基づく書き込みおよび読み込みが開始されない。このため、WDT部15には、終了通知が入力されないため、カウント値が閾値時間を超過し、情報処理装置1が再起動されることとなる。
【0063】
これにより、暴走などの理由によって仲介部20を経由せずに、タスクTがRAM40へアクセスすることを、防止することができる。したがって、RAM40のメモリ保護を行うことができる。
【0064】
なお、例えば、アドレス判定部25aは、処理要求が複数の書き込みおよび読み込みを含む場合、処理要求に含まれる全ての指定メモリアドレスについて判定を行うものとする。また、処理要求に含まれる最初と、最後の指定メモリアドレスについてのみ判定を行うなど、判定手順を簡略化することとしてもよい。
【0065】
順序判定部25bは、タスクTにより指定された直前のタスクTの識別情報Iと、識別情報領域42に記憶された識別情報Iとを比較することで、タスクTの実行順序が正しい順序であるか否かを判定する。
【0066】
具体的には、まず、順序判定部25bは、W/R処理部21から処理要求に含まれる指定タスク情報と、W/R処理部21が識別情報領域42から読み込んだ識別情報Iとを取得する。
【0067】
なお、W/R処理部21が識別情報領域42から識別情報Iを読み込むタイミングは、識別情報領域42の識別情報Iを更新するよりも前である。したがって、W/R処理部21により読み込まれた識別情報Iは、直前の識別情報Iとなる。
【0068】
続いて、順序判定部25bは、指定タスク情報の識別情報Iと、直前の識別情報Iとを比較する。比較の結果、指定タスク情報と、直前の識別情報Iとが一致する場合に、順序判定部25bは、正しい実行順序であると判定し、許可通知をW/R処理部21に出力する。換言すると、仲介部20は、順序判定部25bによって正しい実行順序であると判定された場合に、タスクTの処理要求を受け付ける。
【0069】
また、比較の結果、指定タスク情報と、直前の識別情報Iとが一致しない場合、順序判定部25bは、タスクTが誤った実行順序であると判定し、許可通知をW/R処理部21に出力しない。このため、WDT部15には、終了通知が入力されないため、カウント値が閾値時間を超過し、情報処理装置1が再起動されることとなる。
【0070】
このように、タスクTの実行順序を判定することができるため、メモリ異常を検知するタイミング以外でもプログラムの暴走等を検知することができる。また、情報処理装置1では、メモリ異常の判定のために識別情報領域42に書き込まれたタスクTの識別情報Iを利用することで、容易にタスクTが正しい実行順序であるかを判定することができる。
【0071】
続いて、図4を用いて本実施形態に係る情報処理装置1の処理手順について説明する。図4は、本実施形態に係る情報処理装置1が実行する処理手順を示すフローチャートであ。なお、図4に示したフローチャートは、図2に示した制御部10によって繰り返し実行される。
【0072】
図4に示すように、まず、制御部10は、タスクTを開始する(ステップS101)。続いて、WDT部15は、処理要求に応じた閾値時間を設定し、WDTを起動させる(ステップS102)。
【0073】
続いて、W/R処理部21は、RAM40に記憶された範囲情報および識別情報Iを読み込む(ステップS103)。続いて、アドレス判定部25aは、範囲情報に基づき、指定メモリアドレスは正しいメモリ使用領域41であるか否かを判定する(ステップS104)。
【0074】
ステップS104の判定において、指定メモリアドレスが正しいメモリ使用領域41であると判定された場合(ステップS104,Yes)、順序判定部25bは、識別情報領域42に識別情報Iが有るか否かを判定する(ステップS105)。
【0075】
一方、ステップS104の判定において、指定メモリアドレスが正しいメモリ使用領域41でない場合(ステップS104,No)、仲介部20は、情報処理装置1をリセット(再起動)し(ステップS113)、ステップS101以降の処理を繰り返す。
【0076】
また、ステップS105の判定において、識別情報Iが有りと判定された場合(ステップS105,Yes)、順序判定部25bは、タスクTからの要求に直前タスクTの指定が有るか否かを判定する(ステップS106)。ステップS105の判定において、識別情報Iは無いと判定された場合(ステップS105,No)、制御部は10、ステップS113以降の処理を行う。
【0077】
ステップS106の判定において、直前タスクTが指定されている場合(ステップS106,Yes)、順序判定部25bは、タスクTは正しい実行順序か否かを判定する(ステップS107)。
【0078】
一方、ステップS106の判定において、直前タスクTが指定されていない場合(ステップS106,No)、ステップS108以降の処理を行う。
【0079】
続いて、ステップS107の判定において、タスクTは正しい実行順序と判定された場合(ステップS107、Yes)、W/R処理部21は、識別情報領域42を書き込む(ステップS108)。一方、ステップS107の判定において、タスクTは誤った実行順序と判定された場合(ステップS107、No)、制御部10は、上記したステップS113の処理を行う。
【0080】
続いて、W/R処理部21は、処理要求に基づく書き込みおよび読み込みを開始する(ステップS109)。続いて、W/R処理部21は、所定のタイミングで識別情報領域42の情報を読み込む(ステップS110)。
【0081】
続いて、メモリ異常判定部25cは、識別情報領域42の情報が正常であるか否かを判定する(ステップS111)。識別情報領域42の情報が正常と判定された場合(ステップS111、Yes)、WDT部15は、WDTを停止させて(ステップS112)、処理を終了する。また、識別情報領域42の情報が異常と判定された場合(ステップS111、No)、制御部10は、上記したS113以降の処理を行うこととなる。
【0082】
続いて、本実施形態に係る情報処理装置1の適用例について図5および図6を用いて説明する。図5は、本実施形態に係る情報処理装置1の適用例を示す図である。図6は、タスクTの具体例を示す図である。
【0083】
なお、以下では、情報処理装置1が電気自動車などの充電監視装置に適用された場合について説明するが、これに限られず、例えば、車両のECU(Engine Control unit)などの車載用装置に、情報処理装置1を適用することとしてもよい。
【0084】
図5に示すように、充電監視装置200は、情報処理装置1と、セル監視IC(Integrated Circuit)210と、充電口監視部220と、過充電リレー制御回路230と、充電制御部240とを備える。また、充電監視装置200は、充電口接続部Cと、バッテリーBとに接続される。
【0085】
また、充電口接続部Cと、バッテリーBとを結ぶ経路には、スイッチSW1と、スイッチSW2とが設けられる。また、バッテリーBが過充電状態にない場合、バッテリーB側にあるスイッチSW1は、接続されているものとする。
【0086】
ここで、過充電監視機能には、規定の安全規格を満たすことが求められる。これは、バッテリーBの過充電による発火などの事故を防ぐためである。上記の安全規格では、メモリ保護と、正常な順序で各タスクTが機能することが求められる。
【0087】
そこで、過充電監視機能に関連するタスクを上述してきたタスクTとして情報処理装置1を充電監視装置200内で動作させることで、過充電状態を確実に検知し、バッテリーBへの電力の供給を確実に切断することができる。
【0088】
まず、過充電機能以外の各機能について説明する。充電口監視部220は、充電口接続部Cを監視し、充電プラグが充電口接続部Cに接続されたことを検知する。充電口監視部220は、接続を検知すると接続されたことを示す接続信号を情報処理装置1に出力する。
【0089】
情報処理装置1は、接続信号が入力されると、例えば、充電口接続部Cと、充電プラグとの接続状態や、走行情報などに基づき、充電可能状態か否かを判定し、充電可能状態と判定した場合に、充電制御部240に充電開始指示を出力する。
【0090】
充電制御部240は、情報処理装置1から入力される充電開始指示に基づきスイッチSW1を接続することで、充電を開始させる。これにより、バッテリーBへの充電が開始される。
【0091】
セル監視IC210は、バッテリーBと接続され、バッテリーBの電圧を監視する。セル監視IC210が監視する電圧の値は、情報処理装置1によって任意のタイミングで読み込まれる。なお、セル監視IC210は、バッテリーBの電流を監視することにしてもよい。
【0092】
ここで、図6を用いて過充電監視機能に関するタスクTについて説明する。図6は、タスクTの具体例を示す図である。図6に示すように、タスクTとして、IC読み込みタスクTAと、過充電判断タスクTBと、切断指示タスクTCと、充電停止タスクTDとがある。
【0093】
IC読み込みタスクTAでは、例えば、所定の周期で、セル監視IC210が監視する電圧の値を読み込む。過充電判断タスクTBは、IC読み込みタスクTAによって読み込まれた電圧の値と、過充電閾値とを比較することで過充電状態か否かを判定する。
【0094】
判定の結果、過充電状態でない場合、IC読み込みタスクTAと過充電判断タスクTBとが繰り返し実行される。そして、過充電判断タスクTBによる判定の結果、過充電状態である場合に、切断指示タスクTCを行う。切断指示タスクTCでは、過充電リレー制御回路230に切断指示を出力する。
【0095】
過充電リレー制御回路230は、切断指示が入力されると、スイッチSW1の接続を切断する。また、切断指示タスクTCが実行されると、続いて、充電停止タスクTDが実行される。充電停止タスクTDでは、充電制御部240に充電を停止させる指示を出す。これにより、バッテリーBが過充電状態となるのを防ぐことができる。
【0096】
このように、情報処理装置1を車載用の装置に適用する場合、情報処理装置1は、従来よりも安価にメモリ保護を行うことが可能であるため、従来と比べて安全性を損なわずに車両の製造コストを削減することができる。
【0097】
上述してきたように、本実施形態に係る情報処理装置1は、メモリMと、仲介部20とを備える。メモリMは、タスクTごとに割り当てられたメモリ使用領域41と、タスクTを識別する識別情報領域42とを有する。仲介部20は、タスクTによるメモリ使用領域41への書き込みおよび読み込みを仲介する。また、仲介部20は、タスクTから書き込みおよび読み込みの要求を受け付けた場合に、当該タスクTに対応する識別情報Iを識別情報領域42へ書き込むとともに、所定のタイミングで識別情報領域42に記憶された情報を読み出し、読み出した情報に基づいてメモリの異常を検知する。したがって、安価にメモリ保護が可能となる。
【0098】
なお、上述した実施形態では、メモリ使用領域41と、識別情報領域42とが連続した領域である場合について例示したが、これに限られない。すなわち、各タスクTに対応するメモリ使用領域41の間に識別情報領域42を割り当てることにしてもよい。また、識別情報領域42を複数備えることにしてもよい。これにより、メモリ異常をより確実に検知することができる。
【0099】
また、上述した実施形態では、所定のタイミングで識別情報領域42に記憶された情報を読み出し、読み出した情報が、書き込んだ識別情報Iと異なる場合に、メモリMの異常を検知することとしたが、これに限られない。すなわち、読み出した情報があらかじめ定められたバイナリーコード以外のコードを含む場合に、メモリMの異常を検知することとしてもよい。
【符号の説明】
【0100】
1 情報処理装置
10 制御部
15 WDT部
20 仲介部
21 W/R処理部
25 判定部
25a アドレス判定部
25b 順序判定部
25c メモリ異常判定部
30 ROM
40 RAM
41 メモリ使用領域
42 識別情報領域
M メモリ
T タスク
I 識別情報
図1
図2
図3
図4
図5
図6