(57)【要約】【課題】ＲＡＭの更新許可／禁止をアプリケーションプログラムの変更なしに行うことができるようにしたＲＡＭ書込制御装置および不正アクセス防止プログラムを提供する。【解決手段】ＣＰＵ８は、ＯＳによりプログラムカウンタ６の示すアドレスを監視し、プログラムカウンタ６の示すアドレスがＲＡＭ５の非保証ＲＡＭ領域１１から保証ＲＡＭ領域１２に遷移することを確認すると、ＣＰＵ８はＯＳによりレジスタ７に更新許可状態の設定を行うことでプログラムがＲＡＭ５の保証ＲＡＭ領域１２を更新できるようになる。また、プログラムカウンタ６の示すアドレスがＲＡＭ５の保証ＲＡＭ領域１２から非保証ＲＡＭ領域１１に遷移することを確認すると、ＣＰＵ８はＯＳによりレジスタ７に更新禁止状態の設定を行うことでプログラムがＲＡＭ５の保証ＲＡＭ領域１２を更新できなくなる。【選択図】図２
2012238273.tif 000002
【特許請求の範囲】
【請求項１】
更新許可禁止切換可能領域を備えたＲＡＭと、
前記ＲＡＭにアクセスするプログラム領域を備えるプログラム記憶領域と、
前記プログラム記憶領域に記憶されたプログラムの実行するべき命令のアドレスを格納するプログラムカウンタと、
前記ＲＡＭの更新許可禁止可能領域の更新許可状態／禁止状態を保持するレジスタとを備え、
前記プログラムカウンタの示すアドレスを監視し、
前記プログラムカウンタのアドレスが前記ＲＡＭの更新許可禁止切換可能領域にアクセス開始するプログラム領域に遷移することを確認すると、前記レジスタに更新許可状態の設定を行い、
前記プログラムカウンタのアドレスが前記ＲＡＭの更新許可禁止切換可能領域外にアクセス開始するプログラム領域に遷移することを確認すると、前記レジスタに禁止状態の設定を行うことを特徴とするＲＡＭ書込制御装置。
【請求項２】
セクションによって割付けられ、保証ＲＡＭ領域、および、記憶値の保証度が前記保証ＲＡＭ領域より低い非保証ＲＡＭ領域を備えたＲＡＭと、
前記保証ＲＡＭ領域に対応した保証プログラム領域、および、前記保証プログラム領域以外の非保証プログラム領域を備えたプログラム記憶領域と、
前記プログラム記憶領域に記憶されたプログラムの実行するべき命令のアドレスを格納するプログラムカウンタと、
前記保証ＲＡＭ領域の更新の許可状態／禁止状態を保持するレジスタとを備え、
前記プログラムカウンタの示すアドレスを監視し、
前記プログラム記憶領域の非保証プログラム領域から保証プログラム領域に前記プログラムカウンタのアドレスが遷移することを確認すると、前記レジスタに前記保証ＲＡＭ領域の更新を許可する設定を行い、
前記プログラム記憶領域の保証プログラム領域から非保証プログラム領域に前記プログラムカウンタのアドレスが遷移することを確認すると、前記レジスタに前記保証ＲＡＭ領域の更新を禁止する設定を行うことを特徴とするＲＡＭ書込制御装置。
【請求項３】
前記ＲＡＭの更新許可／禁止はマイクロコンピュータ本体に内蔵の機能を用いて行うことを特徴とする請求項２記載のＲＡＭ書込制御装置。
【請求項４】
前記プログラムカウンタの監視によって前記アドレスの遷移の確認を行うときには、
前記プログラムカウンタの値が、セクション分けされた領域の何れの領域内を示しているかを判断することで確認することを特徴とする請求項１ないし３の何れかに記載のＲＡＭ書込制御装置。
【請求項５】
前記ＲＡＭの更新許可／禁止は当該ＲＡＭのブロック単位で行われることを特徴とする請求項１ないし４の何れかに記載のＲＡＭ書込制御装置。
【請求項６】
マイクロコンピュータに、
プログラムカウンタの示すアドレスを監視する手順と、
プログラム記憶領域の非保証プログラム領域から保証プログラム領域に前記プログラムカウンタの示すアドレスが遷移することを確認すると、レジスタに保証ＲＡＭ領域の更新を許可する設定を行う手順と、
前記プログラム記憶領域の保証プログラム領域から非保証プログラム領域に前記プログラムカウンタの示すアドレスが遷移することを確認すると、前記レジスタに保証ＲＡＭ領域の更新を禁止する設定を行う手順と、を実行させることを特徴とする不正アクセス防止プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＭ（Random Access Memory）内の任意領域の書込禁止技術を用いたＲＡＭ書込制御装置および不正アクセス防止プログラムに関する。
【背景技術】
【０００２】
この種の技術思想が特許文献１にて提供されている。この特許文献１の技術思想は、プログラムまたは操作指示入力等による書き込み・読み出し可能なＲＡＭを備え、プロテクト手段がＲＡＭの特定領域への書込動作を禁止し、プロテクト領域設定手段がプロテクト領域を設定している。また、書き込み許可手段がプロテクト領域への書き込みを許可する構成を備える。そして、異常動作検出手段が書き込み禁止中のプロテクト領域へ書き込もうとする異常動作を検出したとき、異常信号を出力する構成となっている。
【０００３】
具体的には、ラッチ回路にプロテクト上限アドレスおよびプロテクト下限アドレスをセットし、ライト動作時のライト信号のアドレスデータと比較することでプロテクト領域へのライト動作であるか否か（すなわち異常動作であるか否か）を検出している。例えば、このようなＲＡＭの更新許可／禁止技術を用いることでＲＡＭのプロテクト領域への書込動作を禁止できる。その他、本願に関連して特許文献２に示す技術思想が供されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−２０２０２号公報
【特許文献２】特開昭６１−２０２２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１記載の技術を適用し、更新許可／禁止領域を設定する場合には、アプリケーションプログラム内でプロテクト領域の上限アドレス、下限アドレスを設定する必要がある。この場合、アプリケーションプログラムによって許可／禁止タイミングを決定しようとすると、このプログラムの変更が行われる度にアプリケーションプログラムを改良する必要がある。すると、アプリケーションプログラムを実装しなおす必要が生じ、これにより工数が増加し、人の手で変更を行うと、人為的なミスが発生する問題がある。
【０００６】
本発明は、上記事情に鑑みてなされたもので、その目的は、ＲＡＭの更新許可／禁止をアプリケーションプログラムの変更なしに行うことができるようにしたＲＡＭ書込制御装置および不正アクセス防止プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
請求項１記載の発明によれば、ＲＡＭは更新許可禁止切換可能領域を備えており、プログラム記憶領域はＲＡＭにアクセスするプログラムを備える。プログラムカウンタは、プログラム記憶領域に記憶されたプログラムの実行するべき命令のアドレスを格納する。レジスタは、ＲＡＭの更新許可禁止可能領域の更新許可状態／禁止状態を保持する。プログラムカウンタの示すアドレスを監視し、プログラムカウンタのアドレスがＲＡＭの更新許可禁止切換可能領域にアクセスするプログラム領域に遷移することを確認すると、レジスタに更新許可状態の設定を行うことでプログラムがＲＡＭの更新許可禁止切換可能領域を更新できる。プログラムカウンタのアドレスがＲＡＭの更新許可禁止切換可能領域外にアクセス開始するプログラム領域に遷移することを確認すると、レジスタに禁止状態の設定を行うことでプログラムがＲＡＭの更新許可禁止切換可能領域を更新できなくなる。したがって、ＲＡＭの更新許可禁止切換可能領域に対する更新許可／禁止をアプリケーションプログラムの変更なしに行うことができる。
【０００８】
請求項２記載の発明によれば、ＲＡＭは、セクションによって割付けられ、保証ＲＡＭ領域、記憶値の保証度が保証ＲＡＭ領域より低い非保証ＲＡＭ領域を備えている。また、プログラム記憶領域は、保証ＲＡＭ領域に対応して割付けられた保証プログラム領域、また、この保証プログラム領域以外に非保証プログラム領域を備えている。プログラムカウンタはプログラム記憶領域に記憶されたプログラムの実行するべき命令のアドレスを格納する。レジスタは保証ＲＡＭ領域の更新の許可状態／禁止状態を保持する。
【０００９】
そして、プログラムカウンタの示すアドレスを監視し、ＲＯＭの非保証プログラム領域から保証プログラム領域にプログラムカウンタのアドレスが遷移することを確認すると、レジスタに保証ＲＡＭ領域の更新を許可する設定を行うため、プログラムが保証ＲＡＭ領域を更新できる。ＲＯＭの保証プログラム領域から非保証プログラム領域にプログラムカウンタのアドレスが遷移することを確認すると、レジスタに保証ＲＡＭ領域の更新を禁止する設定を行うため、プログラムが保証ＲＡＭ領域を更新できなくなる。したがって、ＲＡＭの保証ＲＡＭ領域に対する更新許可／禁止をアプリケーションプログラムの変更なしに行うことができる。
【００１０】
請求項３記載の発明によれば、ＲＡＭの更新許可／禁止はマイクロコンピュータ本体に内蔵の機能を用いて行っている。この場合、マイクロコンピュータのハードウェア改造を行う必要なくＲＡＭの更新許可／禁止処理を実現できる。これにより新規投資する必要はなくなる。
【００１１】
請求項４記載の発明によれば、プログラムカウンタの監視によってアドレス遷移の確認を行うときには、プログラムカウンタの値が、セクション分けされた領域の何れの領域内を示しているかを判断することで確認するため、何れの領域のプログラムを実行するか容易に判断できる。
請求項５記載の発明のようにＲＡＭの更新許可／禁止をＲＡＭのブロック単位で行うと良い。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施例のシステムを概略的に示す電気的構成図
【図２】各プログラム領域と各ＲＡＭ領域のアクセスについて示すアプリケーションプログラムの流れ図とマイクロコンピュータ内部の動作説明図
【図３】ＣＰＵが実行するＯＳ処理の流れ（プログラムカウンタの監視ロジック）を示すフローチャート
【発明を実施するための形態】
【００１３】
以下、本発明の一実施例について図面を参照しながら説明する。本システム１は、エンジンＥＣＵ２内のマイクロコンピュータ（以下、マイコンと略す）３を主として実現される。マイコン（ＲＡＭ書込制御装置）３は、ＲＯＭ４、ＲＡＭ５、プログラムカウンタ６、ＲＡＭ更新許可／禁止設定レジスタ（レジスタ）７、ＣＰＵ８を備え、エンジンＥＣＵ２は制御対象Ａを制御する。制御対象Ａは例えばコモンレールシステムを採用したディーゼルエンジンであり、エンジンＥＣＵ２はこのディーゼルエンジンの制御システムを実現する。
【００１４】
ＲＯＭ４には、非保証プログラム領域９、保証プログラム領域１０がプログラム記憶領域として設けられる。制御用のプログラムは、各領域９または１０がセクション情報により所定のメモリ領域に割付けられる。保証プログラム領域１０には、使用するＲＡＭ５に記憶する記憶値の保証が高く要求されるアプリケーションプログラム（以下、プログラムと略す）が記憶されている。エンジンＥＣＵ２は、運転者のアクセルペダルの開度に応じて必要となる噴射量を演算するが、保証プログラム領域１０には、アクセル開度とエンジン回転数から要求トルクを算出して噴射量を算出する制御用のプログラム、および、トルクを監視する制御用のプログラムなどが記憶されている。
【００１５】
非保証プログラム領域９には、使用するＲＡＭ５の記憶値の保証度が低くても良い演算処理を行うプログラムが記憶される。エンジンＥＣＵ２は、ディーゼルエンジンの排ガス後処理システムを実現しているが、非保証プログラム領域９には、当該後処理制御（例えば、ＤＰＦ（Diesel Particulate Filter）の再生、ＳＣＲ(Selective Catalytic Reduction)による排出ガス浄化制御）などの処理用のプログラムが記憶されている。
【００１６】
読書可能なＲＡＭ５には、非保証ＲＡＭ領域１１、保証ＲＡＭ領域（更新許可禁止切換可能領域に相当）１２が設けられる。このとき、ＲＡＭ５は、非保証ＲＡＭ領域１１、保証ＲＡＭ領域１２をそれぞれ１または複数ブロック単位で構成すると良い。非保証ＲＡＭ領域１１は、非保証プログラム領域９に記憶されたプログラムのみからアクセス（読み書き）可能に許可された情報記憶領域であり、保証ＲＡＭ領域１２は、保証プログラム領域１０のプログラムのみから例えばアクセス（読み書き）可能に許可された情報記憶領域として設定され、これらの情報記憶領域は、セクション情報によって所定のメモリ領域に割り付けられる。このようにしてソフトウェアパーティショニングが行われている。
【００１７】
一般に、ＲＯＭのプログラム記憶領域に記憶されるプログラムは命令数も多く各種命令が複雑な態様で存在する。プログラム（ソフトウェア）は、電子部品のようにランダムな故障はしないものの、テストしきれないバグにより問題を生じ、Systematic Failure （決定論的故障）という問題を起こす。そのようなバグを完全にゼロにすることはプログラム（ソフトウェア）の場合困難である。
【００１８】
したがって、何らかの人的なプログラムの設計ミス、バグの検証ミスなどの影響によって、保証プログラム領域１０内のプログラムが非保証ＲＡＭ領域１１にアクセス（読出／書込）したり、非保証プログラム領域１１内のプログラムが保証ＲＡＭ領域１２にアクセス（読出／書込）することが考えられる。
【００１９】
すると、例えば、非保証プログラム領域９に記憶されたプログラムが保証ＲＡＭ領域１２にアクセスした上で誤ったデータに書換え、この後、保証プログラム領域１０のプログラムがその書き換えられたデータにアクセスしてデータを参照すると、誤ったデータを参照することで誤りデータの伝播が連続的に生じてしまい、最悪の場合、保証プログラム領域１０内の制御プログラムの動作不具合に繋がる。そこで、本実施例では、ＯＳ（オペレーティングシステム）によりプログラムカウンタ６の値を周期的に細かくサイクリックに監視することに基づいて不具合を防止している。
【００２０】
図２は、各プログラム領域と各ＲＡＭ領域のアクセス方法についてアプリケーションプログラムの流れと共に示している。また、図３は、ＣＰＵ８が実行するＯＳ処理の流れ（プログラムカウンタ６の監視ロジック）をフローチャートによって示している。
【００２１】
コモンレールシステムを採用したディーゼルエンジン制御システムでは、燃料を高圧ポンプで加圧してコモンレールに蓄え、ソレノイドや圧電素子を使ったインジェクタで燃焼室内に噴射する。この場合、エンジンＥＣＵ２は、保証プログラム領域１０に記憶された制御プログラムに応じて、運転者のアクセルペダルの開度に応じて必要となる噴射量を演算して制御を行う（以下、噴射制御と略す）。そして、エンジンＥＣＵ２は非保証プログラム領域９に記憶された排ガス後処理システムにおいてＤＰＦの再生などの後処理制御（以下、後処理制御と略す）を行う。したがって、エンジンＥＣＵ２内では、図２に示すように、保証プログラム領域１０のプログラムと、非保証プログラム領域９のプログラムとが繰り返し実行される。
【００２２】
ＲＯＭ４内に記憶されるプログラムはメモリの所定領域に記憶される。また、ＲＡＭ５内のデータもメモリの所定領域に記憶される。そして、非保証プログラム領域９、保証プログラム領域１０の各プログラムが順に実行されることによりディーゼルエンジン制御システムを実現している。
【００２３】
噴射制御を行った後には後処理制御を行うが、この後処理制御において、エンジンＥＣＵ２のＣＰＵ８は非保証プログラム領域９のプログラムにより非保証ＲＡＭ領域１１に読出／書込を行う。非保証プログラム領域９のプログラムが実行中であるときには、ＲＡＭ更新許可／禁止設定レジスタ７には禁止状態（アクセス禁止、更新禁止）である旨が記憶されているため、プログラムは意図しないタイミングで保証ＲＡＭ領域１２にアクセスできず、データを書換えることはできない。この後処理制御を終えた後または最中に噴射制御を開始するときには、保証プログラム領域１０のプログラムを実行開始する。
【００２４】
この間、ＣＰＵ８はＯＳによりプログラムカウンタ６を参照し次に行われるプログラムの実行アドレスを認識する。ＣＰＵ８はＯＳによりプログラムの実行アドレスを認識することによって非保証プログラム領域９から保証プログラム領域１０への遷移（移動）を認識（確認）できる（図３の領域跨ぎ条件Ｓ１参照）。ＣＰＵ８は、非保証プログラム領域９から保証プログラム領域１０への実行アドレスの遷移を認識（確認）すると（Ｓ１：ＹＥＳ）、プログラムカウンタ６が保証プログラム領域１０内を指しているか否かを判定し（Ｓ２）、プログラムカウンタ６が保証プログラム領域１０内を指していれば（Ｓ２：ＹＥＳ）、ＲＡＭ更新許可／禁止設定レジスタ７に許可状態である旨の書換えを行う（Ｓ３）。
【００２５】
その後、保証プログラム領域１０のプログラムにより噴射制御が行われると保証ＲＡＭ領域１２のデータの読出／書込が行われる。この間、保証ＲＡＭ領域１２には読出／書込が行われるものの、保証プログラム領域１０のプログラムによるアクセスのみであるため当該保証プログラム領域１０の記憶データは保証される。
【００２６】
この保証プログラム領域１０内のプログラムを実行中であっても、ＣＰＵ８はＯＳによりプログラムカウンタ６を参照し次に行われるプログラムの実行アドレスを認識する。プログラムの実行アドレスを認識することによって保証プログラム領域１０から非保証プログラム領域９への遷移（移動）を認識（確認）できる。ＣＰＵ８は、保証プログラム領域１０から非保証プログラム領域９への実行アドレスの遷移を認識（確認）すると（Ｓ２：ＮＯ）、ＲＡＭ更新許可／禁止設定レジスタ７に禁止状態である旨の書換えを行う（Ｓ４）。これにより、非保証プログラム領域９のプログラムによる保証ＲＡＭ領域１２へのアクセスが禁止される。このようにして、保証ＲＡＭ領域１２の保持データは保護される。
【００２７】
本実施形態によれば、ＣＰＵ８がＯＳによりプログラムカウンタ６の示すアドレスを監視し、プログラムカウンタ６の示すアドレスがＲＡＭ５の非保証ＲＡＭ領域１１から保証ＲＡＭ領域１２に遷移することを確認すると、ＣＰＵ８はＯＳによりレジスタ７に更新許可状態の設定を行うことでプログラムがＲＡＭ５の保証ＲＡＭ領域１２を更新できるようになる。また、プログラムカウンタ６の示すアドレスがＲＡＭ５の保証ＲＡＭ領域１２から非保証ＲＡＭ領域１１に遷移することを確認すると、ＣＰＵ８はＯＳによりレジスタ７に更新禁止状態の設定を行うことでアプリケーションプログラムからＲＡＭ５の保証ＲＡＭ領域１２を更新できなくなる。したがって、ＲＡＭ５の保証ＲＡＭ領域１２に対する更新許可／禁止状態をアプリケーションプログラムから行う必要がない。したがって、仮にプログラムの不具合があるときにも、プログラムの実行状況を常に監視することで保証ＲＡＭ領域１２の記憶内容を保護し、保証プログラム領域１０内のプログラム動作に干渉しないようにできる。
【００２８】
マイクロコンピュータ３本体に予め内蔵された機能を用いてＲＡＭの更新許可／禁止処理を行っているため、マイクロコンピュータ３のハードウェア改造することなく実現できる。
【００２９】
なお、ＣＰＵ８が、プログラムカウンタ６の監視によって各領域９および１０間のアドレス遷移の確認を行うときには、プログラムカウンタ６の値が、セクション分けされた領域の何れの領域内を示しているかを判断することで確認すれば、何れの領域９および１０のプログラムを実行するかを容易に判断できる。
【００３０】
非保証プログラム領域１１のプログラムから保証ＲＡＭ領域１２にアクセス禁止する実施形態を示したが、書き換えしなければ読み出し可能な例に適用しても良い。保証プログラム領域１０のプログラムから非保証ＲＡＭ領域１１にアクセス禁止する実施形態を示したが、同様に読み出し可能な例に適用しても良い。
【符号の説明】
【００３１】
図面中、１はシステム、２はエンジンＥＣＵ、３はマイクロコンピュータ（ＲＡＭ書込制御装置）、４はＲＯＭ（プログラム記憶領域）、５はＲＡＭ、６はプログラムカウンタ、７はＲＡＭ更新許可／禁止設定レジスタ（レジスタ）、８はＣＰＵ、９は非保証プログラム領域、１０は保証プログラム領域、１１は非保証ＲＡＭ領域、１２は保証ＲＡＭ領域を示す。
【図１】
2012238273.tif 000003
【図２】
2012238273.tif 000004
【図３】
2012238273.tif 000005