(57)【要約】【課題】安価にメモリ保護を行うこと。【解決手段】本発明に係る情報処理装置は、メモリと、仲介部とを備える。メモリは、タスクごとに割り当てられたメモリ使用領域と、タスクを識別する識別情報領域とを有する。仲介部は、タスクによるメモリ使用領域への書き込みおよび読み込みを仲介する。また、仲介部は、タスクから書き込みおよび読み込みの要求を受け付けた場合に、当該タスクに対応する識別情報を識別情報領域へ書き込むとともに、所定のタイミングで識別情報領域に記憶された情報を読み出し、読み出した情報に基づいてメモリの異常を検知する。【選択図】図１
2018010467.tif 000002
【特許請求の範囲】
【請求項１】
タスクごとに割り当てられたメモリ使用領域と、前記タスクを識別する識別情報を記憶する識別情報領域とを有するメモリと、
前記タスクによる前記メモリ使用領域への書き込みおよび読み込みを仲介する仲介部と
を備え、
前記仲介部は、
前記タスクから前記書き込みおよび前記読み込みの要求を受け付けた場合に、当該タスクに対応する前記識別情報を前記識別情報領域へ書き込むとともに、所定のタイミングで前記識別情報領域に記憶された情報を読み出し、読み出した情報に基づいて前記メモリの異常を検知すること
を特徴とする情報処理装置。
【請求項２】
前記仲介部は、
前記識別情報領域に前記識別情報を書き込んでから次に前記識別情報を書き込むまでの間における所定のタイミングで前記識別情報領域に記憶された情報を読み出し、当該情報が書き込んだ前記識別情報と異なる場合に、前記メモリの異常を検知すること
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
アドレス判定部をさらに備え、
前記識別情報領域は、
前記タスクごとに割り当てられた前記メモリ使用領域のアドレス範囲をさらに記憶し、
前記アドレス判定部は、
前記タスクによる前記要求により指定されたメモリアドレスが当該タスクに対応する前記アドレス範囲に含まれるか否かを判定し、
前記仲介部は、
前記アドレス判定部によって前記メモリアドレスが前記アドレス範囲に含まれると判定された場合に、前記要求を受け付けること
を特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記タスクによる前記要求により指定された直前タスクの前記識別情報と、前記識別情報領域に記憶された前記識別情報とを比較することで、前記タスクの実行順序が正しい順序であるか否かを判定する順序判定部
をさらに備え、
前記仲介部は、
前記順序判定部によって正しい実行順序であると判定された場合に、前記要求を受け付けること
を特徴とする請求項１、２または３に記載の情報処理装置。
【請求項５】
前記要求ごとに閾値時間が設定されたウォッチドッグタイマをさらに備え、
前記仲介部は、
前記メモリに対する処理時間が前記閾値時間を超過した場合に、前記情報処理装置を再起動させること
を特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
車両に搭載されること
を特徴とする請求項１〜５のいずれか一つに記載の情報処理装置。
【請求項７】
タスクごとに割り当てられたメモリ使用領域と、前記タスクを識別する識別情報を記憶する識別情報領域とを有するメモリ
を用い、
前記タスクによる前記メモリ使用領域への書き込みおよび読み込みを仲介する仲介工程を含み、
前記仲介工程は、
前記タスクから前記書き込みおよび前記読み込みの要求を受け付けた場合に、当該タスクに対応する前記識別情報を前記識別情報領域へ書き込むとともに、所定のタイミングで前記識別情報領域に記憶された情報を読み出し、読み出した情報に基づいて前記メモリの異常を検知すること
を特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
従来、マイクロコンピュータなどの情報処理装置において、実行するタスクがメモリへアクセスする際のメモリ保護を、いわゆるＭＭＵ（Memory  Management  Unit）などの専用のハードウェアで行うものが知られている(例えば、特許文献１参照)。
【０００３】
ここで、ＭＭＵは、タスクごとに割り当てられたメモリ使用領域以外にタスクがアクセスしようとすると、かかるアクセスをメモリ保護違反として検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１０９３９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した従来技術のように、情報処理装置にＭＭＵなどの専用ハードウェアを実装してメモリ保護を行うと、専用ハードウェア分だけコストが上昇してしまう。
【０００６】
本発明は、上記に鑑みてなされたものであって、安価にメモリ保護を行うことができる情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、メモリと、仲介部とを備える。メモリは、タスクごとに割り当てられたメモリ使用領域と、前記タスクを識別する識別情報を記憶する識別情報領域とを有する。仲介部は、前記タスクによる前記メモリ使用領域への書き込みおよび読み込みを仲介する。また、仲介部は、前記タスクから前記書き込みおよび前記読み込みの要求を受け付けた場合に、当該タスクに対応する前記識別情報を前記識別情報領域へ書き込むとともに、所定のタイミングで前記識別情報領域に記憶された情報を読み出し、読み出した情報に基づいて前記メモリの異常を検知する。
【発明の効果】
【０００８】
本発明によれば、安価にメモリ保護が可能な情報処理装置および情報処理方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施形態に係る情報処理方法の概要を示す図である。
【図２】図２は、本実施形態に係る情報処理装置の構成を示すブロック図である。
【図３】図３は、メモリの構成例を示す図である。
【図４】図４は、本実施形態に係る情報処理装置が実行する処理手順を示すフローチャートである。
【図５】図５は、本実施形態に係る情報処理装置の適用例を示す図である。
【図６】図６は、タスクの具体例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明に係る情報処理装置および情報処理方法について添付図面に基づいて説明する。なお、本実施形態によりこの発明が限定されるものではない。
【００１１】
まず、図１を用いて本実施形態に係る情報処理方法の概要について説明する。図１は、本実施形態に係る情報処理方法の概要を示す図である。なお、図１では、各タスクがメモリＭにアクセスする場合について説明する。また、図１に示したメモリ使用領域４１ａ〜４１ｎは、タスクＴａ〜Ｔｎにそれぞれ割り当てられた領域とする。
【００１２】
タスクＴの動作に異常が発生した場合などに、タスクＴａが、タスクＴａに割り当てられたメモリ使用領域４１ａ以外の領域にアクセスしたり、他のタスクＴが、メモリ使用領域４１ａにアクセスしたりといったメモリ異常が発生することがある。従来では、かかるメモリ異常をＭＭＵ（Memory  Management  Unit）などの専用ハードウェアで検知することでメモリ保護を図っていた。しかしながら、専用ハードウェアを用いると情報処理装置のコストが上昇してしまうという課題があった。
【００１３】
そこで、本実施形態に係る情報処理装置１では、上記したような専用ハードウェアを用いずに、メモリ保護を図ることとした。
【００１４】
具体的には、情報処理装置１に、タスクＴによるメモリ使用領域４１への書き込みおよび読み込みを仲介する仲介部２０を設けることとした。また、情報処理装置１のメモリＭに、タスクＴごとに割り当てられたメモリ使用領域４１とは別に、識別情報Ｉを記憶する識別情報領域４２を設けることとした。
【００１５】
ここで、仲介部２０は、タスクＴと同様なプロセスである。つまり、本実施形態に係る情報処理方法では、メモリ保護を専用ハードウェアではなく、ソフトウェアによって実現することとした。
【００１６】
図１に示すように、仲介部２０は、例えばタスクＴａから要求を受け付けると（ステップＳ１）、タスクＴａの識別情報Ｉａを識別情報領域４２に書き込む（ステップＳ２）。そして、仲介部２０は、タスクＴａより要求された書き込みおよび読み込みを仲介する（ステップＳ３）。
【００１７】
一方、仲介部２０は、所定のタイミングで識別情報領域４２に記憶された情報を読み込み、読み込んだ情報に基づいてメモリＭの保護異常を検知する（ステップＳ４）。たとえば、仲介部２０は、ステップＳ４で読み込んだ情報が、ステップＳ２で書き込んだはずの識別情報Ｉａとは異なる場合に、メモリＭの保護異常を検知する。
【００１８】
具体的には、仮に、タスクＴａ以外のタスクＴ（たとえば、タスクＴｂなど）が、暴走などの理由によってメモリＭに不正な書き込みを行った場合、識別情報領域４２を上書きしてしまうことがある。仲介部２０は、所定のタイミングで識別情報領域４２に記憶された情報を読み込むことで、かかる不正なメモリアクセスを検出するのである。
【００１９】
また、仲介部２０は、このようなメモリＭの保護異常を検知した場合、例えば、情報処理装置１を再起動することで、メモリＭが異常な状態で情報処理装置１が動作し続けることを防止する。すなわち、情報処理装置１は、メモリＭが正常な状態でのみ動作するので、本実施形態に係る情報処理方法によれば、情報処理装置１の動作中におけるメモリ保護を保証することができる。
【００２０】
また、本実施形態に係る情報処理方法によれば、ソフトウェアの機能としてメモリ保護が可能であるため、専用ハードウェアを別途必要としない。したがって、本実施形態に係る情報処理方法によれば、安価にメモリ保護を行うことができる。
【００２１】
以下、本実施形態に係る情報処理装置１についてさらに詳細に説明する。まず、図２を用いて情報処理装置１の構成例について説明する。図２は、本実施形態に係る情報処理装置１の構成を示すブロック図である。
【００２２】
また、以下では、メモリＭがＲＡＭ（Random  Access  Memory）４０である場合について説明するが、記憶した情報を書き換え可能なメモリであれば、他の種類のメモリであってもよい。
【００２３】
図２に示すように、情報処理装置１は、制御部１０と、ＲＯＭ（Read  Only  Memory）３０と、ＲＡＭ４０とを備える。
【００２４】
ＲＯＭ３０は、不揮発性のメモリであり、制御部１０が、タスクＴ、ＷＤＴ部１５および仲介部２０を実行するための各種プログラムや、タスクＴが演算等で用いる初期値などを記憶する。
【００２５】
ＲＡＭ４０は、揮発性のメモリであり、情報の書き込みおよび読み出しが可能である。ここで、図３を用いてＲＡＭ４０の構成について説明しておく。図３は、メモリＭ（ＲＡＭ４０）の構成例を示す図である。
【００２６】
図３に示すように、ＲＡＭ４０は、タスクＴごと分割されたメモリ使用領域４１と、識別情報領域４２とを備える。メモリ使用領域４１は、複数に分割された各領域が各タスクＴにそれぞれ割り当てられ、各タスクＴの処理に必要な情報を記憶する領域である。
【００２７】
識別情報領域４２は、識別情報Ｉを記憶する領域４２Ａと、タスクＴごとに割り当てられたメモリ使用領域４１のアドレス範囲の情報（以下、「範囲情報」と記載する）を記憶する領域４２Ｂとを備える。
【００２８】
なお、ＲＡＭ４０は、揮発性のメモリであるため、ＲＡＭ４０に記憶された情報は、情報処理装置１の電源がオフになると消失する。そして、情報処理装置１の電源がオンになると、ＲＡＭ４０には、初期データが書き込まれる。初期データは、各タスクＴの演算等に必要な初期値などの情報や、上記した範囲情報などを含む。
【００２９】
具体的には、制御部１０（図２参照）は、初期データをＲＯＭ３０から読み出し、読み出した初期データをＲＡＭ４０に書き込む。また、初期データの書き込みが正常に終了した場合、制御部１０は、領域４２Ａに初期化が正常に終了したことを示す初期化識別情報を書き込む。
【００３０】
つまり、ＲＡＭ４０の初期化が正常に完了した場合、識別情報領域４２には、初期化識別情報が記憶される。初期化後に、仲介部２０が、領域４２Ａに記憶された情報を読み込み、初期化識別情報が記憶されていない場合に、ＲＡＭ４０の初期化異常を検知することができる。
【００３１】
図２に戻って制御部１０について説明する。制御部１０は、例えば、ＣＰＵ（Central  Processing  Unit）であり、情報処理装置１の全体を制御する。また、制御部１０は、タスクＴと、ウォッチドッグタイマ部１５（以下、「ＷＤＴ部１５」と記載する）と、仲介部２０とを備える。また、制御部１０は、ＲＯＭ３０に予め記憶されたプログラムを読み出して実行することにより、タスクＴ、ＷＤＴ部１５および仲介部２０の各機能を実現する。なお、制御部１０は、タスクＴをシーケンシャルに実行し、各タスクＴと、仲介部２０と、ＷＤＴ部１５とは、パラレルに実行するものとする。
【００３２】
タスクＴは、仲介部２０を介してＲＡＭ４０のメモリ使用領域４１へ書き込みおよび読み込みを行うことで、演算等の処理を行う。具体的には、タスクＴは、書き込みおよび読み込みの要求(以下、「処理要求」と記載する)と識別情報Ｉとを仲介部２０のＷ／Ｒ処理部２１に出力する。また、タスクＴは、タイマの要求をＷＤＴ部１５に出力する。
【００３３】
ここで、処理要求とは、仲介部２０に対してメモリ使用領域４１の指定するメモリアドレス（以下、「指定メモリアドレス」と記載する）への書き込みおよび読み込みを指示するものである。また、指定メモリアドレスは、タスクＴに割り当てられたメモリ使用領域４１である。
【００３４】
また、直前のタスクＴが規定されている場合、かかる処理要求には、直前のタスクＴを指定する指定タスク情報が含まれる。指定タスク情報は、例えば、指定するタスクＴの識別情報Ｉである。
【００３５】
ＷＤＴ部１５は、タスクＴからタイマの要求を受け取ると、かかる要求で指定された閾値時間を設定し、カウントを開始する。そして、ＷＤＴ部１５は、仲介部２０から処理要求に基づく書き込みおよび読み込みが完了したことを示す終了通知が入力された場合に、カウントを停止してカウント値をリセットする。
【００３６】
また、ＷＤＴ部１５は、カウント値が閾値時間に到達するまでに、上記した終了通知が入力されない場合、仲介部２０に超過通知を出力する。仲介部２０は、超過通知が入力されると、異常対応処理として、例えば、情報処理装置１を再起動させる。
【００３７】
つまり、タスクＴの暴走などの不具合が生じた場合には、ただちに、情報処理装置１が再起動させられるので、情報処理装置１を迅速に正常な状態に回復させることができる。
【００３８】
仲介部２０は、タスクＴによるメモリ使用領域４１への書き込みおよび読み込みを仲介する。また、仲介部２０は、タスクＴから処理要求を受け付けた場合に当該タスクＴに対応する識別情報Ｉを識別情報領域４２へ書き込む。
【００３９】
そして、仲介部２０は、所定のタイミングで識別情報領域４２に記憶された情報を読み出し、読み出した情報に基づいてＲＡＭ４０の異常を検知する。また、仲介部２０は、Ｗ／Ｒ処理部２１と、判定部２５とを備える。
【００４０】
Ｗ／Ｒ処理部２１は、タスクＴから入力される処理要求に基づきメモリ使用領域４１への書き込みおよび読み込みを行う。また、所定のタイミングで、Ｗ／Ｒ処理部２１は、識別情報領域４２に記憶された情報を読み出して判定部２５に出力する。
【００４１】
具体的には、まず、Ｗ／Ｒ処理部２１は、タスクＴから処理要求および識別情報Ｉが入力されると、識別情報領域４２に記憶された情報を読み出す。
【００４２】
なお、情報処理装置１が正常に動作している場合、識別情報領域４２から読み出される情報は、直前のタスクＴの識別情報Ｉおよび上記した範囲情報である。
【００４３】
続いて、Ｗ／Ｒ処理部２１は、処理要求に含まれる指定メモリアドレスと、範囲情報とをアドレス判定部２５ａに出力する。また、Ｗ／Ｒ処理部２１は、タスクＴから入力された識別情報Ｉと、直前のタスクＴの識別情報Ｉとを順序判定部２５ｂに出力する。
【００４４】
これにより、アドレス判定部２５ａおよび順序判定部２５ｂでは、後述する判定処理が行われる。そして、かかる判定処理の結果が正常である場合に、アドレス判定部２５ａおよび順序判定部２５ｂは、Ｗ／Ｒ処理部２１に許可通知を出力する。
【００４５】
そして、Ｗ／Ｒ処理部２１は、アドレス判定部２５ａおよび順序判定部２５ｂの双方から許可通知が入力された場合に、処理要求に基づきＲＡＭ４０のメモリ使用領域４１への書き込みおよび読み込みを開始する。
【００４６】
また、Ｗ／Ｒ処理部２１は、例えば、メモリ使用領域４１への書き込みおよび読み込みを開始するに先立って識別情報領域４２にタスクＴの識別情報Ｉを書き込む。換言すると、識別情報領域４２に記憶させた識別情報Ｉを更新する。
【００４７】
以下では、更新する直前に識別情報領域４２に記憶された識別情報Ｉについて「直前の識別情報Ｉ」と記載し、更新した直後の識別情報Ｉについて「今回の識別情報Ｉ」と記載する。また、識別情報Ｉに対応するタスク付随を、「直前のタスクＴ」、「今回のタスクＴ」と記載する。
【００４８】
Ｗ／Ｒ処理部２１は、識別情報領域４２の領域４２Ａに識別情報Ｉを書き込んでから次に識別情報Ｉを書き込むまでの間における所定のタイミングで領域４２Ａに記憶された情報を読み出す。
【００４９】
ここで、所定のタイミングとは、例えば、Ｗ／Ｒ処理部２１がタスクＴの処理要求に基づく書き込みおよび読み込みを終了したタイミングである。なお、かかるタイミングに限定されず、識別情報領域４２の領域４２Ａに識別情報Ｉを書き込んでから次に識別情報Ｉを書き込むまでの間のタイミングであれば足りる。また、かかる間に複数回の読み込みを行うこととしてもよい。
【００５０】
そして、Ｗ／Ｒ処理部２１は、領域４２Ａから読み込んだ情報と、処理要求とともに入力される識別情報Ｉとをメモリ異常判定部２５ｃに出力する。これにより、メモリ異常判定部２５ｃでは、後述の判定が行われる。
【００５１】
そして、メモリ異常判定部２５ｃによる判定の結果、ＲＡＭ４０が正常であると判定された場合には、メモリ異常判定部２５ｃは、ＷＤＴ部１５に終了通知を出力する。これにより、ＷＤＴ部１５では、カウントが停止され、カウント値がリセットされる。
【００５２】
また、メモリ異常判定部２５ｃは、終了通知をＷ／Ｒ処理部２１を介してタスクＴに出力する。これにより、例えば、次のタスクＴが開始される。
【００５３】
判定部２５は、識別情報領域４２に記憶された情報に基づきＲＡＭ４０のメモリ保護を行うとともに、ＲＡＭ４０のメモリ保護異常などを検知する。また、判定部２５は、アドレス判定部２５ａと、順序判定部２５ｂと、メモリ異常判定部２５ｃとを備える。
【００５４】
メモリ異常判定部２５ｃは、識別情報領域４２に記憶された情報に基づきＲＡＭ４０が異常か否かを判定する。具体的には、メモリ異常判定部２５ｃは、Ｗ／Ｒ処理部２１から、処理要求の識別情報Ｉと、識別情報領域４２から読み込んだ情報とを取得する。
【００５５】
続いて、メモリ異常判定部２５ｃは、上記した情報を比較する。比較の結果、上記した情報が一致する場合、すなわち、双方の情報とも今回の識別情報Ｉである場合、メモリ異常判定部２５ｃは、識別情報領域４２が正常であると判定する。
【００５６】
一方、比較の結果、上記した情報が一致しない場合、すなわち、識別情報領域４２に記憶された今回の識別情報Ｉが他の情報に変更されていた場合、メモリ異常判定部２５ｃは、メモリ保護異常と判定する。
【００５７】
これは、識別情報領域４２に書き込んだ識別情報Ｉが、読み込むまでの間に書き換えられたことを意味するためである。したがって、例えば、プログラムの暴走等によって、他のタスクＴが仲介部２０を介さずＲＡＭ４０にアクセスし、書き込みおよび読み込みをした場合であっても、メモリ異常を検知することができる。
【００５８】
このように、情報処理装置１によれば、簡易な構成によってメモリ保護異常を検知することができるため、メモリ保護を行う専用のハードウェアを必要としない。したがって、安価にメモリ保護を行うことができる。
【００５９】
アドレス判定部２５ａは、タスクＴにより指定されたメモリアドレスが、当該タスクＴに割り当てられたメモリ使用領域４１であるか否かを判定する。具体的には、まず、アドレス判定部２５ａは、Ｗ／Ｒ処理部２１から指定メモリアドレス、識別情報Ｉおよび範囲情報を取得する。
【００６０】
続いて、アドレス判定部２５ａは、範囲情報に基づき、識別情報Ｉに許可されたメモリ範囲に指定メモリアドレスがあるか否かを判定する。判定の結果、指定メモリアドレスが当該識別情報Ｉ、すなわち、当該識別情報Ｉに対応するタスクＴに割り当てられたメモリ使用領域４１である場合、アドレス判定部２５ａは、Ｗ／Ｒ処理部２１に対して許可通知を出力する。
【００６１】
換言すると、仲介部２０は、タスクＴの処理要求により指定されたメモリアドレスが今回のタスクＴに割り当てられたメモリ使用領域４１のメモリ範囲に含まれると判定された場合に、タスクＴの処理要求を受け付ける。
【００６２】
一方、判定の結果、指定メモリアドレスが上記したメモリ範囲に含まれない場合、Ｗ／Ｒ処理部２１には、許可通知が入力されない。したがって、この場合、Ｗ／Ｒ処理部２１では、処理要求に基づく書き込みおよび読み込みが開始されない。このため、ＷＤＴ部１５には、終了通知が入力されないため、カウント値が閾値時間を超過し、情報処理装置１が再起動されることとなる。
【００６３】
これにより、暴走などの理由によって仲介部２０を経由せずに、タスクＴがＲＡＭ４０へアクセスすることを、防止することができる。したがって、ＲＡＭ４０のメモリ保護を行うことができる。
【００６４】
なお、例えば、アドレス判定部２５ａは、処理要求が複数の書き込みおよび読み込みを含む場合、処理要求に含まれる全ての指定メモリアドレスについて判定を行うものとする。また、処理要求に含まれる最初と、最後の指定メモリアドレスについてのみ判定を行うなど、判定手順を簡略化することとしてもよい。
【００６５】
順序判定部２５ｂは、タスクＴにより指定された直前のタスクＴの識別情報Ｉと、識別情報領域４２に記憶された識別情報Ｉとを比較することで、タスクＴの実行順序が正しい順序であるか否かを判定する。
【００６６】
具体的には、まず、順序判定部２５ｂは、Ｗ／Ｒ処理部２１から処理要求に含まれる指定タスク情報と、Ｗ／Ｒ処理部２１が識別情報領域４２から読み込んだ識別情報Ｉとを取得する。
【００６７】
なお、Ｗ／Ｒ処理部２１が識別情報領域４２から識別情報Ｉを読み込むタイミングは、識別情報領域４２の識別情報Ｉを更新するよりも前である。したがって、Ｗ／Ｒ処理部２１により読み込まれた識別情報Ｉは、直前の識別情報Ｉとなる。
【００６８】
続いて、順序判定部２５ｂは、指定タスク情報の識別情報Ｉと、直前の識別情報Ｉとを比較する。比較の結果、指定タスク情報と、直前の識別情報Ｉとが一致する場合に、順序判定部２５ｂは、正しい実行順序であると判定し、許可通知をＷ／Ｒ処理部２１に出力する。換言すると、仲介部２０は、順序判定部２５ｂによって正しい実行順序であると判定された場合に、タスクＴの処理要求を受け付ける。
【００６９】
また、比較の結果、指定タスク情報と、直前の識別情報Ｉとが一致しない場合、順序判定部２５ｂは、タスクＴが誤った実行順序であると判定し、許可通知をＷ／Ｒ処理部２１に出力しない。このため、ＷＤＴ部１５には、終了通知が入力されないため、カウント値が閾値時間を超過し、情報処理装置１が再起動されることとなる。
【００７０】
このように、タスクＴの実行順序を判定することができるため、メモリ異常を検知するタイミング以外でもプログラムの暴走等を検知することができる。また、情報処理装置１では、メモリ異常の判定のために識別情報領域４２に書き込まれたタスクＴの識別情報Ｉを利用することで、容易にタスクＴが正しい実行順序であるかを判定することができる。
【００７１】
続いて、図４を用いて本実施形態に係る情報処理装置１の処理手順について説明する。図４は、本実施形態に係る情報処理装置１が実行する処理手順を示すフローチャートであ。なお、図４に示したフローチャートは、図２に示した制御部１０によって繰り返し実行される。
【００７２】
図４に示すように、まず、制御部１０は、タスクＴを開始する（ステップＳ１０１）。続いて、ＷＤＴ部１５は、処理要求に応じた閾値時間を設定し、ＷＤＴを起動させる（ステップＳ１０２）。
【００７３】
続いて、Ｗ／Ｒ処理部２１は、ＲＡＭ４０に記憶された範囲情報および識別情報Ｉを読み込む（ステップＳ１０３）。続いて、アドレス判定部２５ａは、範囲情報に基づき、指定メモリアドレスは正しいメモリ使用領域４１であるか否かを判定する（ステップＳ１０４）。
【００７４】
ステップＳ１０４の判定において、指定メモリアドレスが正しいメモリ使用領域４１であると判定された場合（ステップＳ１０４，Ｙｅｓ）、順序判定部２５ｂは、識別情報領域４２に識別情報Ｉが有るか否かを判定する（ステップＳ１０５）。
【００７５】
一方、ステップＳ１０４の判定において、指定メモリアドレスが正しいメモリ使用領域４１でない場合（ステップＳ１０４，Ｎｏ）、仲介部２０は、情報処理装置１をリセット(再起動)し（ステップＳ１１３）、ステップＳ１０１以降の処理を繰り返す。
【００７６】
また、ステップＳ１０５の判定において、識別情報Ｉが有りと判定された場合（ステップＳ１０５，Ｙｅｓ）、順序判定部２５ｂは、タスクＴからの要求に直前タスクＴの指定が有るか否かを判定する（ステップＳ１０６）。ステップＳ１０５の判定において、識別情報Ｉは無いと判定された場合（ステップＳ１０５，Ｎｏ）、制御部は１０、ステップＳ１１３以降の処理を行う。
【００７７】
ステップＳ１０６の判定において、直前タスクＴが指定されている場合（ステップＳ１０６，Ｙｅｓ）、順序判定部２５ｂは、タスクＴは正しい実行順序か否かを判定する（ステップＳ１０７）。
【００７８】
一方、ステップＳ１０６の判定において、直前タスクＴが指定されていない場合（ステップＳ１０６，Ｎｏ）、ステップＳ１０８以降の処理を行う。
【００７９】
続いて、ステップＳ１０７の判定において、タスクＴは正しい実行順序と判定された場合（ステップＳ１０７、Ｙｅｓ）、Ｗ／Ｒ処理部２１は、識別情報領域４２を書き込む（ステップＳ１０８）。一方、ステップＳ１０７の判定において、タスクＴは誤った実行順序と判定された場合（ステップＳ１０７、Ｎｏ）、制御部１０は、上記したステップＳ１１３の処理を行う。
【００８０】
続いて、Ｗ／Ｒ処理部２１は、処理要求に基づく書き込みおよび読み込みを開始する（ステップＳ１０９）。続いて、Ｗ／Ｒ処理部２１は、所定のタイミングで識別情報領域４２の情報を読み込む（ステップＳ１１０）。
【００８１】
続いて、メモリ異常判定部２５ｃは、識別情報領域４２の情報が正常であるか否かを判定する（ステップＳ１１１）。識別情報領域４２の情報が正常と判定された場合（ステップＳ１１１、Ｙｅｓ）、ＷＤＴ部１５は、ＷＤＴを停止させて（ステップＳ１１２）、処理を終了する。また、識別情報領域４２の情報が異常と判定された場合（ステップＳ１１１、Ｎｏ）、制御部１０は、上記したＳ１１３以降の処理を行うこととなる。
【００８２】
続いて、本実施形態に係る情報処理装置１の適用例について図５および図６を用いて説明する。図５は、本実施形態に係る情報処理装置１の適用例を示す図である。図６は、タスクＴの具体例を示す図である。
【００８３】
なお、以下では、情報処理装置１が電気自動車などの充電監視装置に適用された場合について説明するが、これに限られず、例えば、車両のＥＣＵ（Ｅｎｇｉｎｅ  Ｃｏｎｔｒｏｌ  ｕｎｉｔ）などの車載用装置に、情報処理装置１を適用することとしてもよい。
【００８４】
図５に示すように、充電監視装置２００は、情報処理装置１と、セル監視ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）２１０と、充電口監視部２２０と、過充電リレー制御回路２３０と、充電制御部２４０とを備える。また、充電監視装置２００は、充電口接続部Ｃと、バッテリーＢとに接続される。
【００８５】
また、充電口接続部Ｃと、バッテリーＢとを結ぶ経路には、スイッチＳＷ１と、スイッチＳＷ２とが設けられる。また、バッテリーＢが過充電状態にない場合、バッテリーＢ側にあるスイッチＳＷ１は、接続されているものとする。
【００８６】
ここで、過充電監視機能には、規定の安全規格を満たすことが求められる。これは、バッテリーＢの過充電による発火などの事故を防ぐためである。上記の安全規格では、メモリ保護と、正常な順序で各タスクＴが機能することが求められる。
【００８７】
そこで、過充電監視機能に関連するタスクを上述してきたタスクＴとして情報処理装置１を充電監視装置２００内で動作させることで、過充電状態を確実に検知し、バッテリーＢへの電力の供給を確実に切断することができる。
【００８８】
まず、過充電機能以外の各機能について説明する。充電口監視部２２０は、充電口接続部Ｃを監視し、充電プラグが充電口接続部Ｃに接続されたことを検知する。充電口監視部２２０は、接続を検知すると接続されたことを示す接続信号を情報処理装置１に出力する。
【００８９】
情報処理装置１は、接続信号が入力されると、例えば、充電口接続部Ｃと、充電プラグとの接続状態や、走行情報などに基づき、充電可能状態か否かを判定し、充電可能状態と判定した場合に、充電制御部２４０に充電開始指示を出力する。
【００９０】
充電制御部２４０は、情報処理装置１から入力される充電開始指示に基づきスイッチＳＷ１を接続することで、充電を開始させる。これにより、バッテリーＢへの充電が開始される。
【００９１】
セル監視ＩＣ２１０は、バッテリーＢと接続され、バッテリーＢの電圧を監視する。セル監視ＩＣ２１０が監視する電圧の値は、情報処理装置１によって任意のタイミングで読み込まれる。なお、セル監視ＩＣ２１０は、バッテリーＢの電流を監視することにしてもよい。
【００９２】
ここで、図６を用いて過充電監視機能に関するタスクＴについて説明する。図６は、タスクＴの具体例を示す図である。図６に示すように、タスクＴとして、ＩＣ読み込みタスクＴＡと、過充電判断タスクＴＢと、切断指示タスクＴＣと、充電停止タスクＴＤとがある。
【００９３】
ＩＣ読み込みタスクＴＡでは、例えば、所定の周期で、セル監視ＩＣ２１０が監視する電圧の値を読み込む。過充電判断タスクＴＢは、ＩＣ読み込みタスクＴＡによって読み込まれた電圧の値と、過充電閾値とを比較することで過充電状態か否かを判定する。
【００９４】
判定の結果、過充電状態でない場合、ＩＣ読み込みタスクＴＡと過充電判断タスクＴＢとが繰り返し実行される。そして、過充電判断タスクＴＢによる判定の結果、過充電状態である場合に、切断指示タスクＴＣを行う。切断指示タスクＴＣでは、過充電リレー制御回路２３０に切断指示を出力する。
【００９５】
過充電リレー制御回路２３０は、切断指示が入力されると、スイッチＳＷ１の接続を切断する。また、切断指示タスクＴＣが実行されると、続いて、充電停止タスクＴＤが実行される。充電停止タスクＴＤでは、充電制御部２４０に充電を停止させる指示を出す。これにより、バッテリーＢが過充電状態となるのを防ぐことができる。
【００９６】
このように、情報処理装置１を車載用の装置に適用する場合、情報処理装置１は、従来よりも安価にメモリ保護を行うことが可能であるため、従来と比べて安全性を損なわずに車両の製造コストを削減することができる。
【００９７】
上述してきたように、本実施形態に係る情報処理装置１は、メモリＭと、仲介部２０とを備える。メモリＭは、タスクＴごとに割り当てられたメモリ使用領域４１と、タスクＴを識別する識別情報領域４２とを有する。仲介部２０は、タスクＴによるメモリ使用領域４１への書き込みおよび読み込みを仲介する。また、仲介部２０は、タスクＴから書き込みおよび読み込みの要求を受け付けた場合に、当該タスクＴに対応する識別情報Ｉを識別情報領域４２へ書き込むとともに、所定のタイミングで識別情報領域４２に記憶された情報を読み出し、読み出した情報に基づいてメモリの異常を検知する。したがって、安価にメモリ保護が可能となる。
【００９８】
なお、上述した実施形態では、メモリ使用領域４１と、識別情報領域４２とが連続した領域である場合について例示したが、これに限られない。すなわち、各タスクＴに対応するメモリ使用領域４１の間に識別情報領域４２を割り当てることにしてもよい。また、識別情報領域４２を複数備えることにしてもよい。これにより、メモリ異常をより確実に検知することができる。
【００９９】
また、上述した実施形態では、所定のタイミングで識別情報領域４２に記憶された情報を読み出し、読み出した情報が、書き込んだ識別情報Ｉと異なる場合に、メモリＭの異常を検知することとしたが、これに限られない。すなわち、読み出した情報があらかじめ定められたバイナリーコード以外のコードを含む場合に、メモリＭの異常を検知することとしてもよい。
【符号の説明】
【０１００】
１    情報処理装置
１０    制御部
１５    ＷＤＴ部
２０    仲介部
２１    Ｗ／Ｒ処理部
２５    判定部
２５ａ  アドレス判定部
２５ｂ  順序判定部
２５ｃ  メモリ異常判定部
３０    ＲＯＭ
４０    ＲＡＭ
４１    メモリ使用領域
４２    識別情報領域
Ｍ    メモリ
Ｔ    タスク
Ｉ    識別情報
【図１】
2018010467.tif 000003
【図２】
2018010467.tif 000004
【図３】
2018010467.tif 000005
【図４】
2018010467.tif 000006
【図５】
2018010467.tif 000007
【図６】
2018010467.tif 000008