説明

RAM書込制御装置および不正アクセス防止プログラム

【課題】RAMの更新許可/禁止をアプリケーションプログラムの変更なしに行うことができるようにしたRAM書込制御装置および不正アクセス防止プログラムを提供する。
【解決手段】CPU8は、OSによりプログラムカウンタ6の示すアドレスを監視し、プログラムカウンタ6の示すアドレスがRAM5の非保証RAM領域11から保証RAM領域12に遷移することを確認すると、CPU8はOSによりレジスタ7に更新許可状態の設定を行うことでプログラムがRAM5の保証RAM領域12を更新できるようになる。また、プログラムカウンタ6の示すアドレスがRAM5の保証RAM領域12から非保証RAM領域11に遷移することを確認すると、CPU8はOSによりレジスタ7に更新禁止状態の設定を行うことでプログラムがRAM5の保証RAM領域12を更新できなくなる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、RAM(Random Access Memory)内の任意領域の書込禁止技術を用いたRAM書込制御装置および不正アクセス防止プログラムに関する。
【背景技術】
【0002】
この種の技術思想が特許文献1にて提供されている。この特許文献1の技術思想は、プログラムまたは操作指示入力等による書き込み・読み出し可能なRAMを備え、プロテクト手段がRAMの特定領域への書込動作を禁止し、プロテクト領域設定手段がプロテクト領域を設定している。また、書き込み許可手段がプロテクト領域への書き込みを許可する構成を備える。そして、異常動作検出手段が書き込み禁止中のプロテクト領域へ書き込もうとする異常動作を検出したとき、異常信号を出力する構成となっている。
【0003】
具体的には、ラッチ回路にプロテクト上限アドレスおよびプロテクト下限アドレスをセットし、ライト動作時のライト信号のアドレスデータと比較することでプロテクト領域へのライト動作であるか否か(すなわち異常動作であるか否か)を検出している。例えば、このようなRAMの更新許可/禁止技術を用いることでRAMのプロテクト領域への書込動作を禁止できる。その他、本願に関連して特許文献2に示す技術思想が供されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平5−20202号公報
【特許文献2】特開昭61−202269号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1記載の技術を適用し、更新許可/禁止領域を設定する場合には、アプリケーションプログラム内でプロテクト領域の上限アドレス、下限アドレスを設定する必要がある。この場合、アプリケーションプログラムによって許可/禁止タイミングを決定しようとすると、このプログラムの変更が行われる度にアプリケーションプログラムを改良する必要がある。すると、アプリケーションプログラムを実装しなおす必要が生じ、これにより工数が増加し、人の手で変更を行うと、人為的なミスが発生する問題がある。
【0006】
本発明は、上記事情に鑑みてなされたもので、その目的は、RAMの更新許可/禁止をアプリケーションプログラムの変更なしに行うことができるようにしたRAM書込制御装置および不正アクセス防止プログラムを提供することにある。
【課題を解決するための手段】
【0007】
請求項1記載の発明によれば、RAMは更新許可禁止切換可能領域を備えており、プログラム記憶領域はRAMにアクセスするプログラムを備える。プログラムカウンタは、プログラム記憶領域に記憶されたプログラムの実行するべき命令のアドレスを格納する。レジスタは、RAMの更新許可禁止可能領域の更新許可状態/禁止状態を保持する。プログラムカウンタの示すアドレスを監視し、プログラムカウンタのアドレスがRAMの更新許可禁止切換可能領域にアクセスするプログラム領域に遷移することを確認すると、レジスタに更新許可状態の設定を行うことでプログラムがRAMの更新許可禁止切換可能領域を更新できる。プログラムカウンタのアドレスがRAMの更新許可禁止切換可能領域外にアクセス開始するプログラム領域に遷移することを確認すると、レジスタに禁止状態の設定を行うことでプログラムがRAMの更新許可禁止切換可能領域を更新できなくなる。したがって、RAMの更新許可禁止切換可能領域に対する更新許可/禁止をアプリケーションプログラムの変更なしに行うことができる。
【0008】
請求項2記載の発明によれば、RAMは、セクションによって割付けられ、保証RAM領域、記憶値の保証度が保証RAM領域より低い非保証RAM領域を備えている。また、プログラム記憶領域は、保証RAM領域に対応して割付けられた保証プログラム領域、また、この保証プログラム領域以外に非保証プログラム領域を備えている。プログラムカウンタはプログラム記憶領域に記憶されたプログラムの実行するべき命令のアドレスを格納する。レジスタは保証RAM領域の更新の許可状態/禁止状態を保持する。
【0009】
そして、プログラムカウンタの示すアドレスを監視し、ROMの非保証プログラム領域から保証プログラム領域にプログラムカウンタのアドレスが遷移することを確認すると、レジスタに保証RAM領域の更新を許可する設定を行うため、プログラムが保証RAM領域を更新できる。ROMの保証プログラム領域から非保証プログラム領域にプログラムカウンタのアドレスが遷移することを確認すると、レジスタに保証RAM領域の更新を禁止する設定を行うため、プログラムが保証RAM領域を更新できなくなる。したがって、RAMの保証RAM領域に対する更新許可/禁止をアプリケーションプログラムの変更なしに行うことができる。
【0010】
請求項3記載の発明によれば、RAMの更新許可/禁止はマイクロコンピュータ本体に内蔵の機能を用いて行っている。この場合、マイクロコンピュータのハードウェア改造を行う必要なくRAMの更新許可/禁止処理を実現できる。これにより新規投資する必要はなくなる。
【0011】
請求項4記載の発明によれば、プログラムカウンタの監視によってアドレス遷移の確認を行うときには、プログラムカウンタの値が、セクション分けされた領域の何れの領域内を示しているかを判断することで確認するため、何れの領域のプログラムを実行するか容易に判断できる。
請求項5記載の発明のようにRAMの更新許可/禁止をRAMのブロック単位で行うと良い。
【図面の簡単な説明】
【0012】
【図1】本発明の一実施例のシステムを概略的に示す電気的構成図
【図2】各プログラム領域と各RAM領域のアクセスについて示すアプリケーションプログラムの流れ図とマイクロコンピュータ内部の動作説明図
【図3】CPUが実行するOS処理の流れ(プログラムカウンタの監視ロジック)を示すフローチャート
【発明を実施するための形態】
【0013】
以下、本発明の一実施例について図面を参照しながら説明する。本システム1は、エンジンECU2内のマイクロコンピュータ(以下、マイコンと略す)3を主として実現される。マイコン(RAM書込制御装置)3は、ROM4、RAM5、プログラムカウンタ6、RAM更新許可/禁止設定レジスタ(レジスタ)7、CPU8を備え、エンジンECU2は制御対象Aを制御する。制御対象Aは例えばコモンレールシステムを採用したディーゼルエンジンであり、エンジンECU2はこのディーゼルエンジンの制御システムを実現する。
【0014】
ROM4には、非保証プログラム領域9、保証プログラム領域10がプログラム記憶領域として設けられる。制御用のプログラムは、各領域9または10がセクション情報により所定のメモリ領域に割付けられる。保証プログラム領域10には、使用するRAM5に記憶する記憶値の保証が高く要求されるアプリケーションプログラム(以下、プログラムと略す)が記憶されている。エンジンECU2は、運転者のアクセルペダルの開度に応じて必要となる噴射量を演算するが、保証プログラム領域10には、アクセル開度とエンジン回転数から要求トルクを算出して噴射量を算出する制御用のプログラム、および、トルクを監視する制御用のプログラムなどが記憶されている。
【0015】
非保証プログラム領域9には、使用するRAM5の記憶値の保証度が低くても良い演算処理を行うプログラムが記憶される。エンジンECU2は、ディーゼルエンジンの排ガス後処理システムを実現しているが、非保証プログラム領域9には、当該後処理制御(例えば、DPF(Diesel Particulate Filter)の再生、SCR(Selective Catalytic Reduction)による排出ガス浄化制御)などの処理用のプログラムが記憶されている。
【0016】
読書可能なRAM5には、非保証RAM領域11、保証RAM領域(更新許可禁止切換可能領域に相当)12が設けられる。このとき、RAM5は、非保証RAM領域11、保証RAM領域12をそれぞれ1または複数ブロック単位で構成すると良い。非保証RAM領域11は、非保証プログラム領域9に記憶されたプログラムのみからアクセス(読み書き)可能に許可された情報記憶領域であり、保証RAM領域12は、保証プログラム領域10のプログラムのみから例えばアクセス(読み書き)可能に許可された情報記憶領域として設定され、これらの情報記憶領域は、セクション情報によって所定のメモリ領域に割り付けられる。このようにしてソフトウェアパーティショニングが行われている。
【0017】
一般に、ROMのプログラム記憶領域に記憶されるプログラムは命令数も多く各種命令が複雑な態様で存在する。プログラム(ソフトウェア)は、電子部品のようにランダムな故障はしないものの、テストしきれないバグにより問題を生じ、Systematic Failure (決定論的故障)という問題を起こす。そのようなバグを完全にゼロにすることはプログラム(ソフトウェア)の場合困難である。
【0018】
したがって、何らかの人的なプログラムの設計ミス、バグの検証ミスなどの影響によって、保証プログラム領域10内のプログラムが非保証RAM領域11にアクセス(読出/書込)したり、非保証プログラム領域11内のプログラムが保証RAM領域12にアクセス(読出/書込)することが考えられる。
【0019】
すると、例えば、非保証プログラム領域9に記憶されたプログラムが保証RAM領域12にアクセスした上で誤ったデータに書換え、この後、保証プログラム領域10のプログラムがその書き換えられたデータにアクセスしてデータを参照すると、誤ったデータを参照することで誤りデータの伝播が連続的に生じてしまい、最悪の場合、保証プログラム領域10内の制御プログラムの動作不具合に繋がる。そこで、本実施例では、OS(オペレーティングシステム)によりプログラムカウンタ6の値を周期的に細かくサイクリックに監視することに基づいて不具合を防止している。
【0020】
図2は、各プログラム領域と各RAM領域のアクセス方法についてアプリケーションプログラムの流れと共に示している。また、図3は、CPU8が実行するOS処理の流れ(プログラムカウンタ6の監視ロジック)をフローチャートによって示している。
【0021】
コモンレールシステムを採用したディーゼルエンジン制御システムでは、燃料を高圧ポンプで加圧してコモンレールに蓄え、ソレノイドや圧電素子を使ったインジェクタで燃焼室内に噴射する。この場合、エンジンECU2は、保証プログラム領域10に記憶された制御プログラムに応じて、運転者のアクセルペダルの開度に応じて必要となる噴射量を演算して制御を行う(以下、噴射制御と略す)。そして、エンジンECU2は非保証プログラム領域9に記憶された排ガス後処理システムにおいてDPFの再生などの後処理制御(以下、後処理制御と略す)を行う。したがって、エンジンECU2内では、図2に示すように、保証プログラム領域10のプログラムと、非保証プログラム領域9のプログラムとが繰り返し実行される。
【0022】
ROM4内に記憶されるプログラムはメモリの所定領域に記憶される。また、RAM5内のデータもメモリの所定領域に記憶される。そして、非保証プログラム領域9、保証プログラム領域10の各プログラムが順に実行されることによりディーゼルエンジン制御システムを実現している。
【0023】
噴射制御を行った後には後処理制御を行うが、この後処理制御において、エンジンECU2のCPU8は非保証プログラム領域9のプログラムにより非保証RAM領域11に読出/書込を行う。非保証プログラム領域9のプログラムが実行中であるときには、RAM更新許可/禁止設定レジスタ7には禁止状態(アクセス禁止、更新禁止)である旨が記憶されているため、プログラムは意図しないタイミングで保証RAM領域12にアクセスできず、データを書換えることはできない。この後処理制御を終えた後または最中に噴射制御を開始するときには、保証プログラム領域10のプログラムを実行開始する。
【0024】
この間、CPU8はOSによりプログラムカウンタ6を参照し次に行われるプログラムの実行アドレスを認識する。CPU8はOSによりプログラムの実行アドレスを認識することによって非保証プログラム領域9から保証プログラム領域10への遷移(移動)を認識(確認)できる(図3の領域跨ぎ条件S1参照)。CPU8は、非保証プログラム領域9から保証プログラム領域10への実行アドレスの遷移を認識(確認)すると(S1:YES)、プログラムカウンタ6が保証プログラム領域10内を指しているか否かを判定し(S2)、プログラムカウンタ6が保証プログラム領域10内を指していれば(S2:YES)、RAM更新許可/禁止設定レジスタ7に許可状態である旨の書換えを行う(S3)。
【0025】
その後、保証プログラム領域10のプログラムにより噴射制御が行われると保証RAM領域12のデータの読出/書込が行われる。この間、保証RAM領域12には読出/書込が行われるものの、保証プログラム領域10のプログラムによるアクセスのみであるため当該保証プログラム領域10の記憶データは保証される。
【0026】
この保証プログラム領域10内のプログラムを実行中であっても、CPU8はOSによりプログラムカウンタ6を参照し次に行われるプログラムの実行アドレスを認識する。プログラムの実行アドレスを認識することによって保証プログラム領域10から非保証プログラム領域9への遷移(移動)を認識(確認)できる。CPU8は、保証プログラム領域10から非保証プログラム領域9への実行アドレスの遷移を認識(確認)すると(S2:NO)、RAM更新許可/禁止設定レジスタ7に禁止状態である旨の書換えを行う(S4)。これにより、非保証プログラム領域9のプログラムによる保証RAM領域12へのアクセスが禁止される。このようにして、保証RAM領域12の保持データは保護される。
【0027】
本実施形態によれば、CPU8がOSによりプログラムカウンタ6の示すアドレスを監視し、プログラムカウンタ6の示すアドレスがRAM5の非保証RAM領域11から保証RAM領域12に遷移することを確認すると、CPU8はOSによりレジスタ7に更新許可状態の設定を行うことでプログラムがRAM5の保証RAM領域12を更新できるようになる。また、プログラムカウンタ6の示すアドレスがRAM5の保証RAM領域12から非保証RAM領域11に遷移することを確認すると、CPU8はOSによりレジスタ7に更新禁止状態の設定を行うことでアプリケーションプログラムからRAM5の保証RAM領域12を更新できなくなる。したがって、RAM5の保証RAM領域12に対する更新許可/禁止状態をアプリケーションプログラムから行う必要がない。したがって、仮にプログラムの不具合があるときにも、プログラムの実行状況を常に監視することで保証RAM領域12の記憶内容を保護し、保証プログラム領域10内のプログラム動作に干渉しないようにできる。
【0028】
マイクロコンピュータ3本体に予め内蔵された機能を用いてRAMの更新許可/禁止処理を行っているため、マイクロコンピュータ3のハードウェア改造することなく実現できる。
【0029】
なお、CPU8が、プログラムカウンタ6の監視によって各領域9および10間のアドレス遷移の確認を行うときには、プログラムカウンタ6の値が、セクション分けされた領域の何れの領域内を示しているかを判断することで確認すれば、何れの領域9および10のプログラムを実行するかを容易に判断できる。
【0030】
非保証プログラム領域11のプログラムから保証RAM領域12にアクセス禁止する実施形態を示したが、書き換えしなければ読み出し可能な例に適用しても良い。保証プログラム領域10のプログラムから非保証RAM領域11にアクセス禁止する実施形態を示したが、同様に読み出し可能な例に適用しても良い。
【符号の説明】
【0031】
図面中、1はシステム、2はエンジンECU、3はマイクロコンピュータ(RAM書込制御装置)、4はROM(プログラム記憶領域)、5はRAM、6はプログラムカウンタ、7はRAM更新許可/禁止設定レジスタ(レジスタ)、8はCPU、9は非保証プログラム領域、10は保証プログラム領域、11は非保証RAM領域、12は保証RAM領域を示す。

【特許請求の範囲】
【請求項1】
更新許可禁止切換可能領域を備えたRAMと、
前記RAMにアクセスするプログラム領域を備えるプログラム記憶領域と、
前記プログラム記憶領域に記憶されたプログラムの実行するべき命令のアドレスを格納するプログラムカウンタと、
前記RAMの更新許可禁止可能領域の更新許可状態/禁止状態を保持するレジスタとを備え、
前記プログラムカウンタの示すアドレスを監視し、
前記プログラムカウンタのアドレスが前記RAMの更新許可禁止切換可能領域にアクセス開始するプログラム領域に遷移することを確認すると、前記レジスタに更新許可状態の設定を行い、
前記プログラムカウンタのアドレスが前記RAMの更新許可禁止切換可能領域外にアクセス開始するプログラム領域に遷移することを確認すると、前記レジスタに禁止状態の設定を行うことを特徴とするRAM書込制御装置。
【請求項2】
セクションによって割付けられ、保証RAM領域、および、記憶値の保証度が前記保証RAM領域より低い非保証RAM領域を備えたRAMと、
前記保証RAM領域に対応した保証プログラム領域、および、前記保証プログラム領域以外の非保証プログラム領域を備えたプログラム記憶領域と、
前記プログラム記憶領域に記憶されたプログラムの実行するべき命令のアドレスを格納するプログラムカウンタと、
前記保証RAM領域の更新の許可状態/禁止状態を保持するレジスタとを備え、
前記プログラムカウンタの示すアドレスを監視し、
前記プログラム記憶領域の非保証プログラム領域から保証プログラム領域に前記プログラムカウンタのアドレスが遷移することを確認すると、前記レジスタに前記保証RAM領域の更新を許可する設定を行い、
前記プログラム記憶領域の保証プログラム領域から非保証プログラム領域に前記プログラムカウンタのアドレスが遷移することを確認すると、前記レジスタに前記保証RAM領域の更新を禁止する設定を行うことを特徴とするRAM書込制御装置。
【請求項3】
前記RAMの更新許可/禁止はマイクロコンピュータ本体に内蔵の機能を用いて行うことを特徴とする請求項2記載のRAM書込制御装置。
【請求項4】
前記プログラムカウンタの監視によって前記アドレスの遷移の確認を行うときには、
前記プログラムカウンタの値が、セクション分けされた領域の何れの領域内を示しているかを判断することで確認することを特徴とする請求項1ないし3の何れかに記載のRAM書込制御装置。
【請求項5】
前記RAMの更新許可/禁止は当該RAMのブロック単位で行われることを特徴とする請求項1ないし4の何れかに記載のRAM書込制御装置。
【請求項6】
マイクロコンピュータに、
プログラムカウンタの示すアドレスを監視する手順と、
プログラム記憶領域の非保証プログラム領域から保証プログラム領域に前記プログラムカウンタの示すアドレスが遷移することを確認すると、レジスタに保証RAM領域の更新を許可する設定を行う手順と、
前記プログラム記憶領域の保証プログラム領域から非保証プログラム領域に前記プログラムカウンタの示すアドレスが遷移することを確認すると、前記レジスタに保証RAM領域の更新を禁止する設定を行う手順と、を実行させることを特徴とする不正アクセス防止プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2012−238273(P2012−238273A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−108279(P2011−108279)
【出願日】平成23年5月13日(2011.5.13)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】