(57)【要約】  【課題】書込み・読み出しともに優先度を考慮した不揮発性メモリへのアクセスが可能になるとともに、マスタＣＰＵ故障時にスレーブＣＰＵがメモリアクセス不能となる事態を防ぐことができるメモリ管理装置を提供する。  【解決手段】マスタＣＰＵ１にてスレーブＣＰＵ２側のＥＥＰＲＯＭ３へのアクセスデータを管理し、スレーブＣＰＵ２においてメモリアクセス要求が発生した場合には、ＥＥＰＲＯＭ３へのアクセスをマスタＣＰＵ１側で行い、書込み／読み出しデータの授受をＤＭＡ通信により行う。これにより、複数のＣＰＵで一つのＥＥＰＲＯＭ３を共有することが可能になるとともに、ＥＥＰＲＯＭ３への同時アクセスを回避することができる。また、マスタＣＰＵ１の故障時やＤＭＡ通信が異常となった場合、スレーブＣＰＵ２が自発的にＥＥＰＲＯＭ３へのアクセスを行うので、スレーブＣＰＵ２からのメモリアクセス不能を回避することができる。  【選択図】図１
2006323617.tif 000002
【特許請求の範囲】
【請求項１】
マスタＣＰＵとスレーブＣＰＵよりなる複数のＣＰＵと、この複数のＣＰＵで共有する不揮発性メモリとを備え、上記複数のＣＰＵから上記不揮発性メモリへアクセス可能なメモリ管理方法であって、
各ＣＰＵが上記不揮発性メモリへのアクセス優先度を把握するデータテーブルを備え、上記マスタＣＰＵが各ＣＰＵのデータテーブル及びアクセス要求を管理し、各ＣＰＵにてアクセス要求が発生した場合、上記マスタＣＰＵがアクセス要求のあったＣＰＵのデータテーブルに基づいて上記不揮発性メモリにアクセスすることを特徴とするメモリ管理方法。
【請求項２】
マスタＣＰＵとスレーブＣＰＵよりなる複数のＣＰＵと、この複数のＣＰＵで共有する不揮発性メモリとを備え、上記複数のＣＰＵから上記不揮発性メモリへアクセス可能なメモリ管理装置であって、
各ＣＰＵが上記不揮発性メモリへのアクセス優先度を把握するデータテーブルを備え、上記マスタＣＰＵが各ＣＰＵのデータテーブル及びアクセス要求を管理し、各ＣＰＵにてアクセス要求が発生した場合、上記マスタＣＰＵがアクセス要求のあったＣＰＵのデータテーブルに基づいて上記不揮発性メモリにアクセスすることを特徴とするメモリ管理装置。
【請求項３】
請求項２に記載されたメモリ管理装置において、
上記データテーブルのアクセス優先度として、書込み要求、読み出し要求個別で優先度を設定できることを特徴とするメモリ管理装置。
【請求項４】
請求項２に記載されたメモリ管理装置において、
上記マスタＣＰＵがアクセス要求のあったスレーブＣＰＵに対してメモリアクセス状況を所定時間毎に通知することを特徴とするメモリ管理装置。
【請求項５】
請求項２に記載されたメモリ管理装置において、
上記スレーブＣＰＵにてマスタＣＰＵの故障を検出した場合、上記スレーブＣＰＵがデータテーブルの管理を行い、アクセス要求が発生した場合、上記スレーブＣＰＵが上記不揮発性メモリにアクセスすることを特徴とするメモリ管理装置。
【請求項６】
請求項５に記載されたメモリ管理装置において、
マスタＣＰＵのメモリアクセスなし状態、かつ、マスタＣＰＵリセット状態を検出した場合に、上記スレーブＣＰＵが上記不揮発性メモリへのアクセスを開始することを特徴とするメモリ管理装置。
【請求項７】
請求項６に記載されたメモリ管理装置において、
上記スレーブＣＰＵからのメモリアクセス中に上記マスタＣＰＵが復帰した場合、上記スレーブＣＰＵが、マスタＣＰＵへメモリアクセス禁止要求を送信することにより、マスタＣＰＵからのメモリアクセスを禁止することを特徴とするメモリ管理装置。
【請求項８】
請求項７に記載されたメモリ管理装置において、
上記マスタＣＰＵのアクセス禁止解除は、スレーブＣＰＵの高優先度データアクセス完了時に上記スレーブＣＰＵが行うことを特徴とするメモリ管理装置。
【請求項９】
請求項８に記載されたメモリ管理装置において、
上記マスタＣＰＵのアクセス禁止解除後は、上記スレーブＣＰＵからのメモリアクセスを禁止し、通常時のマスタＣＰＵからのメモリアクセスに復帰することを特徴とするメモリ管理装置。
【請求項１０】
請求項２に記載されたメモリ管理装置において、
上記複数のＣＰＵがメモリアクセスデータ送受信手段を備え、上記メモリアクセスデータ送受信手段の異常が検出された場合、各ＣＰＵにてデータテーブルの管理を行い、アクセス要求が発生した場合、各ＣＰＵが上記不揮発性メモリにアクセスすることを特徴とするメモリ管理装置。
【請求項１１】
請求項１０に記載されたメモリ管理装置において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記スレーブＣＰＵが、上記マスタＣＰＵにおけるメモリアクセス信号の立下りエッジのタイミングでメモリアクセスを行うことを特徴とするメモリ管理装置。
【請求項１２】
請求項１０に記載されたメモリ管理装置において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタＣＰＵが、異常発生から所定時間経過時に初回アクセスを行い、その後はスレーブＣＰＵにおけるメモリアクセス信号の立下りエッジのタイミングでメモリアクセスを行うことを特徴とするメモリ管理装置。
【請求項１３】
請求項１０に記載されたメモリ管理装置において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタＣＰＵがメモリアクセス信号のオン時間を制御し、所定時間オン状態を継続することを特徴とするメモリ管理装置。
【請求項１４】
請求項１３に記載されたメモリ管理装置において、
上記メモリアクセス信号のオン状態を継続する所定時間が可変であることを特徴とするメモリ管理装置。
【請求項１５】
請求項１０〜請求項１４のいずれかに記載されたメモリ管理装置において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタＣＰＵ、上記スレーブＣＰＵにて交互に上記不揮発性メモリにアクセスすることを特徴とするメモリ管理装置。
【請求項１６】
請求項１５に記載されたメモリ管理装置において、
上記メモリアクセスデータ送受信手段の異常発生時に、上記マスタＣＰＵがスリープ状態に移行した場合、マスタＣＰＵとの交互アクセスではなく、上記スレーブＣＰＵ単体で不揮発性メモリへアクセスすることを特徴とするメモリ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ管理方法及びメモリ管理装置に関し、特に、マスタＣＰＵとスレーブＣＰＵよりなる複数のＣＰＵとこの複数のＣＰＵで共有する不揮発性メモリとを備え、複数のＣＰＵから不揮発性メモリへアクセス可能なメモリ管理方法及びメモリ管理装置に関する。
【背景技術】
【０００２】
車両のエンジンや自動変速機等を制御する車両用電子制御装置（以下、ＥＣＵという）においては、制御対象の経時変化や個体差などの影響をなくすために、過去の制御結果を評価して制御パラメータや制御論理を修正する、いわゆる学習制御が広く採用されている。
【０００３】
例えば、エンジンの燃料噴射制御装置（ＥＦＩ−ＥＣＵ）では、適切な空燃比の混合ガスを得るために、車両の状態を各種センサで検出して演算処理し、燃料噴射弁等のアクチュエータを作動させている。そして、噴射タイミングや噴射量等の前回の制御値は、学習値として記憶し、次回のエンジンスタート時の制御値として用いるようにしている。
このような学習制御において取得される学習値は、ＳＲＡＭ（Static  Random  Access  Memory）に記憶している。なお、ＳＲＡＭはバッテリ電圧により電源が常時供給されるＲＡＭであり、バックアップＲＡＭともいう。
【０００４】
しかしながら、学習値をＳＲＡＭに記憶させておくようにしただけでは、車両からバッテリが外され、或いは、外れた場合に、それまでに算出した学習値を失ってしまう。そこで、最近は、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）といった電気的にデータの書き換えが可能な不揮発性ＲＯＭに学習値を書き込んでおき、バッテリ外れが発生したと判断した場合には、その不揮発性ＲＯＭからＳＲＡＭへ学習値を転送して、過去に算出した学習値を継続して使用できるようにしている。
【０００５】
また、車両用電子制御装置では、制御プログラムを含む共通仕様データをマスクＲＯＭに記憶させ、車種毎に異なるデータをＥＥＰＲＯＭに記憶させることにより、１つのマイクロコンピュータのハードウエアを多数の車種に適用し、管理工数を削減してコスト低減を図ることも行われている。
【０００６】
一方、最近の車両用電子制御装置は、制御システムの高機能化や高信頼性化の要求に伴い、複数のＣＰＵを使用した構成が多用されている。このように複数のＣＰＵを搭載した車両用電子制御装置には、ＣＰＵ毎にＥＥＰＲＯＭをそれぞれ設け、各々のＣＰＵで個別のＥＥＰＲＯＭにアクセスしてデータの読み出し／書込みを行うものがあるが、このような構成では、使用するＣＰＵと同じ数だけＥＥＰＲＯＭが必要となり、コストアップとなる。
【０００７】
これに対し、複数のＣＰＵの一つにＥＥＰＲＯＭを接続し、このＣＰＵからのみＥＥＰＲＯＭにアクセスすることにより、ＥＥＰＲＯＭの必要数を減らしコスト削減を図ることができるが、ＥＥＰＲＯＭにアクセスするＣＰＵのアクセス時間が増大し、また、ＣＰＵ間の通信データ量が増大するといった問題が生じる。
このため、複数のＣＰＵに一つのＥＥＰＲＯＭを接続し、このＥＥＰＲＯＭを各ＣＰＵで共有するとともに、一つのＣＰＵからのみデータ読み出し要求を発行し、各ＣＰＵで共通に使用するデータを同時に受信することにより、初期化時間の短縮を図ることが提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００１−２１６２８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記のように、複数のＣＰＵで一つの不揮発性メモリを共有する場合、一つのＣＰＵがマスタとなり、マスタＣＰＵが不揮発性メモリからのデータ読み出しを管理することが提案されているが、上記の提案では、読み出し処理に関しては、予め区分された優先度の高いデータから読み出し処理を行うことが可能であるが、書込み処理に関しては優先度を考慮していない。このため、優先度低データの書込み処理が長時間継続される場合に、優先度高データの書込み要求が発生した場合には書き込み処理に遅延が入り、この優先度高データのアクセスウェイト時にＣＰＵリセットやバッテリクリアが生じると、データがロストするので、データがロストする確率が増えるという問題が生じる。
【０００９】
また、マスタＣＰＵが故障した場合には、読み出し要求をマスタＣＰＵから発行できず、不揮発性メモリへのアクセスが不能となるので、スレーブＣＰＵが不揮発性メモリからデータを読み出せず、演算などの処理に影響を及ぼすという問題が生じる。
【００１０】
本発明は、上記の問題に鑑みてなされたもので、書込み・読み出しともに優先度を考慮した不揮発性メモリへのアクセスが可能になるとともに、マスタＣＰＵ故障時にスレーブＣＰＵがメモリアクセス不能となる事態を防ぐことができるメモリ管理方法及びメモリ管理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述の目的を達成するため、本発明に係るメモリ管理方法（１）は、
マスタＣＰＵとスレーブＣＰＵよりなる複数のＣＰＵと、この複数のＣＰＵで共有する不揮発性メモリとを備え、上記複数のＣＰＵから上記不揮発性メモリへアクセス可能なメモリ管理方法であって、
各ＣＰＵが上記不揮発性メモリへのアクセス優先度を把握するデータテーブルを備え、上記マスタＣＰＵが各ＣＰＵのデータテーブル及びアクセス要求を管理し、各ＣＰＵにてアクセス要求が発生した場合、上記マスタＣＰＵがアクセス要求のあったＣＰＵのデータテーブルに基づいて上記不揮発性メモリにアクセスすることを特徴とする。
【００１２】
また、本発明に係るメモリ管理装置（１）は、
マスタＣＰＵとスレーブＣＰＵよりなる複数のＣＰＵと、この複数のＣＰＵで共有する不揮発性メモリとを備え、上記複数のＣＰＵから上記不揮発性メモリへアクセス可能なメモリ管理装置であって、
各ＣＰＵが上記不揮発性メモリへのアクセス優先度を把握するデータテーブルを備え、上記マスタＣＰＵが各ＣＰＵのデータテーブル及びアクセス要求を管理し、各ＣＰＵにてアクセス要求が発生した場合、上記マスタＣＰＵがアクセス要求のあったＣＰＵのデータテーブルに基づいて上記不揮発性メモリにアクセスすることを特徴とする。
【００１３】
さらに、本発明に係るメモリ管理装置（２）は、メモリ管理装置（１）において、
上記データテーブルのアクセス優先度として、書込み要求、読み出し要求個別で優先度を設定できることを特徴とし、
本発明に係るメモリ管理装置（３）は、メモリ管理装置（１）において、
上記マスタＣＰＵがアクセス要求のあったスレーブＣＰＵに対してメモリアクセス状況を所定時間毎に通知することを特徴とする。
【００１４】
また、本発明に係るメモリ管理装置（４）は、メモリ管理装置（１）において、
上記スレーブＣＰＵにてマスタＣＰＵの故障を検出した場合、上記スレーブＣＰＵがデータテーブルの管理を行い、アクセス要求が発生した場合、スレーブＣＰＵが上記不揮発性メモリにアクセスすることを特徴とし、
本発明に係るメモリ管理装置（５）は、メモリ管理装置（４）において、
マスタＣＰＵのメモリアクセスなし状態、かつ、マスタＣＰＵリセット状態を検出した場合に、上記スレーブＣＰＵが上記不揮発性メモリへのアクセスを開始することを特徴とする。
【００１５】
さらに、本発明に係るメモリ管理装置（６）は、メモリ管理装置（５）において、
上記スレーブＣＰＵからのメモリアクセス中に上記マスタＣＰＵが復帰した場合、上記スレーブＣＰＵが、上記マスタＣＰＵへメモリアクセス禁止要求を送信することにより、マスタＣＰＵからのメモリアクセスを禁止することを特徴とし、
本発明に係るメモリ管理装置（７）は、メモリ管理装置（６）において、
上記マスタＣＰＵのアクセス禁止解除は、スレーブＣＰＵの高優先度データアクセス完了時に上記スレーブＣＰＵが行うことを特徴とし、
本発明に係るメモリ管理装置（８）は、メモリ管理装置（７）において、
上記マスタＣＰＵのアクセス禁止解除後は、上記スレーブＣＰＵからのメモリアクセスを禁止し、通常時のマスタＣＰＵからのメモリアクセスに復帰することを特徴とする。
【００１６】
また、本発明に係るメモリ管理装置（９）は、メモリ管理装置（１）において、
上記複数のＣＰＵがメモリアクセスデータ送受信手段を備え、上記メモリアクセスデータ送受信手段の異常が検出された場合、各ＣＰＵにてデータテーブルの管理を行い、アクセス要求が発生した場合、各ＣＰＵが上記不揮発性メモリにアクセスすることを特徴とする。
【００１７】
さらに、本発明に係るメモリ管理装置（１０）は、メモリ管理装置（９）において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記スレーブＣＰＵが、上記マスタＣＰＵにおけるメモリアクセス信号の立下りエッジのタイミングでメモリアクセスを行うことを特徴とし、
本発明に係るメモリ管理装置（１１）は、メモリ管理装置（９）において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタＣＰＵが、異常発生から所定時間経過時に初回アクセスを行い、その後は上記スレーブＣＰＵにおけるメモリアクセス信号の立下りエッジのタイミングでメモリアクセスを行うことを特徴とする。
【００１８】
また、本発明に係るメモリ管理装置（１２）は、メモリ管理装置（９）において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタＣＰＵがメモリアクセス信号のオン時間を制御し、所定時間オン状態を継続することを特徴とし、
本発明に係るメモリ管理装置（１３）は、メモリ管理装置（１２）において、
上記メモリアクセス信号のオン状態を継続する所定時間が可変であることを特徴とする。
【００１９】
さらに、本発明に係るメモリ管理装置（１４）は、メモリ管理装置（９）〜（１３）のいずれかにおいて、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタＣＰＵ、上記スレーブＣＰＵにて交互に上記不揮発性メモリにアクセスすることを特徴とし、
本発明に係るメモリ管理装置（１５）は、メモリ管理装置（１４）において、
上記メモリアクセスデータ送受信手段の異常発生時に、上記マスタＣＰＵがスリープ状態に移行した場合、マスタＣＰＵとの交互アクセスではなく、上記スレーブＣＰＵ単体で上記不揮発性メモリへアクセスすることを特徴とする。
【発明の効果】
【００２０】
本発明に係るメモリ管理方法（１）及びメモリ管理装置（１）〜（３）によれば、マスタＣＰＵにてスレーブＣＰＵ側の不揮発性メモリへのアクセスデータを管理し、不揮発性メモリへのアクセスをマスタＣＰＵ側で行うことができるので、複数のＣＰＵで一つの不揮発性メモリを共有することが可能になるとともに、不揮発性メモリへの同時アクセス回避及びデータ優先度を考慮した不揮発性メモリへのアクセスが可能となる。
【００２１】
また、本発明に係るメモリ管理装置（４）〜（８）によれば、マスタＣＰＵの故障時にスレーブＣＰＵから自発的に不揮発性メモリへのアクセスを行うことができ、本発明に係るメモリ管理装置（９）〜（１５）によれば、メモリアクセスデータ送受信手段、例えば、ＤＭＡ通信が異常となった場合に、各々のＣＰＵから自発的に不揮発性メモリへのアクセスを行うことができるので、スレーブＣＰＵからのメモリアクセス不能を回避することが可能となり、マスタＣＰＵ故障時やＤＭＡ異常時にアクセスできないといった事態を回避することができる。
【実施例】
【００２２】
以下、本発明のメモリ管理装置の実施例について、図面を用いて説明する。図１は本発明のメモリ管理装置の実施例を示すブロック図であり、図に示すように、このメモリ管理装置は、マスタＣＰＵ１、スレーブＣＰＵ２、ＥＥＰＲＯＭ３、電源ＩＣ４より構成されている。
【００２３】
マスタＣＰＵ１、スレーブＣＰＵ２はメモリとして静的な電源電圧で記憶が保持されるＳＲＡＭ１１、２１と、通常のＲＡＭ１２、２２とを備え、ＳＲＡＭ１１、２１は学習値や車両データ等を記憶し、ＲＡＭ１２、２２はプログラム実行時のデータを記憶するとともに、ＥＥＰＲＯＭ３へのアクセス許可フラグ、アクセス禁止フラグやＤＭＡ通信異常フラグ等の記憶領域を備えている。
【００２４】
一方、マスタＣＰＵ１、スレーブＣＰＵ２は、それぞれスリープ許可信号をsleep端子から電源ＩＣ４に入力するとともに、ダイレクトメモリアクセス（ＤＭＡ）通信により相互に通信を行っている。
このＤＭＡ通信は、図２に示すように、送信元のデータの転送開始アドレス、転送終了アドレス及び送信先の転送開始アドレス、転送終了アドレスを指定することにより、ＤＭＡコントローラ１３、２３によってＣＰＵ間で直接データを転送する方式であり、例えば、４ｍｓ毎に通信を行い、１２ｍｓ通信がなかった場合には、相手側ＣＰＵのＤＭＡ通信異常フラグがオンとなる。このＤＭＡ通信により、ＥＥＰＲＯＭアクセス管理データやＥＥＰＲＯＭへの書込み／読み出しデータの転送、あるいは、マスタＣＰＵ１からスレーブＣＰＵ２へのメモリアクセス状況の通知等が行われる。
【００２５】
また、マスタＣＰＵ１、スレーブＣＰＵ２は、相互にウォッチドック（ＷＤＣ）信号を相手側ＣＰＵに送信し、相手側ＣＰＵの暴走を認識した場合には、相手側ＣＰＵにリセット（ＲＥＳＥＴ）をかける。
すなわち、ＣＰＵの暴走（故障）把握のため、定期周期毎にパルスを反転させ、パルスの反転がない場合には、監視（相手）ＣＰＵがＣＰＵ暴走（故障）と判定して相手側ＣＰＵにリセットかける。なお、通常、３回リセットしても故障が回復しない場合には、リセット信号をかけっぱなしにして相手側ＣＰＵの動作を停止させる。
【００２６】
さらに、マスタＣＰＵ１、スレーブＣＰＵ２はＥＥＰＲＯＭ３に対して信号を入出力するＣＳ端子、ＳＫ端子、ＤＩ端子、ＤＯ端子を備えている。ＣＳ端子からはメモリアクセス信号が出力され、ＳＫ端子からはシリアルクロック信号が出力される。また、ＤＩ端子からはＥＥＰＲＯＭ３へのシリアルデータが出力され、ＤＯ端子にはＥＥＰＲＯＭ３からのシリアルデータが入力される。
また、ＣＳ−ｍ端子には相手側ＣＰＵのメモリアクセス信号が入力され、相手側ＣＰＵのＥＥＰＲＯＭ３へのアクセス状態をモニタすることができる。
【００２７】
一方、ＥＥＰＲＯＭ３は、電気的にデータの書き換えが可能な不揮発性メモリであり、マスタＣＰＵ１、スレーブＣＰＵ２からのメモリアクセス信号、シリアルクロック信号をＯＲ回路５、６を介してＣＳ端子、ＳＫ端子で受けるとともに、マスタＣＰＵ１、スレーブＣＰＵ２からのシリアルデータをＤＩ端子で受ける。また、ＤＯ端子からシリアルデータをマスタＣＰＵ１、スレーブＣＰＵ２のＤＯ端子に出力する。
【００２８】
また、電源ＩＣ４はマスタＣＰＵ１、スレーブＣＰＵ２からのスリープ許可信号を受け、両者のスリープ許可信号がオンになった場合には、マスタＣＰＵ１、スレーブＣＰＵ２の電源をオフする。なお、スレーブＣＰＵ２のsleep-m端子には、マスタＣＰＵ１からのスリープ許可信号が入力され、マスタＣＰＵ１のスリープ状態をスレーブＣＰＵ２によりモニタすることができる。
【００２９】
そして、マスタＣＰＵ１、スレーブＣＰＵ２のＳＲＡＭ１１、２１には、それぞれＥＥＰＲＯＭアクセス管理のためのマネージャテーブルが記憶されている。このマネージャテーブルには、図３に示すように、機能毎のデータの先頭アドレス、書込み優先度、読み出し優先度が設定されたデータ及び書込み要求、読み出し要求が発生した場合に１となるフラグの記憶領域が設けられている。
通常、書込み優先順位を高くするデータは元々ＥＥＰＲＯＭに書き込まれていたデータであり、読み出し優先順位はどのタイミング、例えば、イニシャル後すぐ必要なのか、メイン処理移行後に読み出しても間に合うのか、等によって優先順位が決定される。
なお、スレーブＣＰＵ２のメモリアクセス優先度のテーブルは起動時にＤＭＡ通信によりマスタＣＰＵ１に転送され、マスタＣＰＵ１は書込み／読み出し要求発生時に、これらのテーブル内の優先順位に従ってＥＥＰＲＯＭ３へのアクセスを実施する。
【００３０】
上記のように、ＥＥＰＲＯＭ３への書込み／読み出し要求発生時には、マスタＣＰＵ１がマネージャテーブル内の優先順位に従ってＥＥＰＲＯＭ３へのアクセスを実施するが、まず、マスタＣＰＵ１のＥＥＰＲＯＭ３へのアクセス時の作用について、図４のフローチャートにより説明する。
【００３１】
マスタＣＰＵ１は常時図４のフローチャートに示すメモリアクセスプログラムを実行しており、このプログラムを開始すると、まず、ＲＡＭ１２のＤＭＡ通信異常フラグをチェックすることにより、ＤＭＡ通信に異常がないか否かを判定し（ステップ１０１）、ＤＭＡ通信に異常がないと判定した場合、自身のマネージャテーブルの書込み／読み出し要求フラグをチェックすることにより、ＥＥＰＲＯＭ３へのアクセス要求があるか否かを判定する（ステップ１０２）。ＥＥＰＲＯＭ３へのアクセス要求があると判定した場合、マスタＣＰＵ１は、マネージャテーブルの書込み／読み出し優先度をチェックすることにより、要求有りデータの優先度を比較した（ステップ１０３）後、その優先度に従ってＥＥＰＲＯＭ３にアクセスする（ステップ１０４）。
【００３２】
また、ステップ１０２で自身のＥＥＰＲＯＭ３へのアクセス要求がないと判定した場合、マスタＣＰＵ１はスレーブＣＰＵ２側からのＥＥＰＲＯＭ３へのアクセス要求があるか否かを判定し（ステップ１０５）、スレーブＣＰＵ２側からのＥＥＰＲＯＭ３へのアクセス要求がないと判定した場合、プログラムを終了する。また、スレーブＣＰＵ２からのＥＥＰＲＯＭ３へのアクセス要求があると判定した場合、マスタＣＰＵ１は、スレーブＣＰＵ２のマネージャテーブルの書込み／読み出し優先度をチェックすることにより、要求有りデータの優先度を比較した（ステップ１０６）後、その優先度に従ってＥＥＰＲＯＭ３にアクセスする（ステップ１０７）。次に、マスタＣＰＵ１は、所定時間毎にＤＭＡ通信によりスレーブＣＰＵ２にメモリアクセス状況を通知する（ステップ１０８）。なお、データの読み込みの場合、このＤＭＡ通信によりＥＥＰＲＯＭ３からのデータがスレーブＣＰＵ２に転送される。
【００３３】
一方、ステップ１０１でＤＭＡ通信に異常が発生していると判定した場合、マスタＣＰＵ１はＤＭＡ異常時の初回アクセスが未完了か否かを判定し（ステップ１０９）、ＤＭＡ異常時の初回アクセスが未完了と判定した場合、ＤＭＡ異常発生から所定時間Ｔ１が経過したか否かを判定する（ステップ１１０）。そして、ＤＭＡ異常発生から所定時間Ｔ１が経過すると、マスタＣＰＵ１は自身のマネージャテーブルの書込み／読み出し要求フラグをチェックすることにより、ＥＥＰＲＯＭ３へのアクセス要求があるか否かを判定する（ステップ１１１）。ＥＥＰＲＯＭ３へのアクセス要求がないと判定した場合、マスタＣＰＵ１はプログラムを終了し、ＥＥＰＲＯＭ３へのアクセス要求があると判定した場合、マスタＣＰＵ１はマネージャテーブルの書込み／読み出し優先度をチェックすることにより、要求有りデータの優先度を比較した（ステップ１１２）後、その優先度に従ってＥＥＰＲＯＭ３への初回アクセスを行う（ステップ１１３）。
【００３４】
このように、ＤＭＡ異常が発生した場合、図５（ａ）、（ｂ）に示すように、所定時間Ｔ１経過時にＥＥＰＲＯＭ３への初回アクセスを行い、マスタＣＰＵ１側にてＣＳ端子出力時間Ｔを制御し、定期的にオン→オフを繰り返すことにより両ＣＰＵが同時にアクセスしないようにする。
なお、上記のＣＳ端子出力時間Ｔは任意の値に設定することが可能であり、通常、マスタＣＰＵ１の動作チェック時に全ての割込み処理を入力したメイン処理を上記の時間Ｔを変えながらマスタＣＰＵ１に実行させ、処理に影響がでないような値を決定して上記のＳＲＡＭ等に保存する。
【００３５】
そして、ステップ１０９でＤＭＡ異常時の初回アクセスが完了していると判定した場合、マスタＣＰＵ１は、自身のマネージャテーブルの書込み／読み出し要求フラグをチェックすることにより、ＥＥＰＲＯＭ３へのアクセス要求があるか否かを判定する（ステップ１１４）。ＥＥＰＲＯＭ３へのアクセス要求がないと判定した場合、マスタＣＰＵ１はプログラムを終了し、ＥＥＰＲＯＭ３へのアクセス要求があると判定した場合、マネージャテーブルの書込み／読み出し優先度をチェックすることにより、要求有りデータの優先度を比較する（ステップ１１５）。
【００３６】
次に、マスタＣＰＵ１はスレーブＣＰＵ２のＣＳ端子モニタ値がオン→オフのタイミングになったか否かを判定し（ステップ１１６）、図５（ｃ）に示すように、スレーブＣＰＵ２のＣＳ端子モニタ値がオン→オフになった信号変化をトリガとして上記の優先度に従ってＥＥＰＲＯＭ３にアクセスする（ステップ１１７）。
【００３７】
以上のように、マスタＣＰＵ１にてスレーブＣＰＵ２側のＥＥＰＲＯＭアクセスデータを管理し、マスタＣＰＵ１側でＥＥＰＲＯＭアクセスを行うことができるので、複数のＣＰＵで一つのＥＥＰＲＯＭ３を共有することが可能になるとともに、ＥＥＰＲＯＭ３の同時アクセス回避及びデータ優先度を考慮したＥＥＰＲＯＭアクセスを行うことができる。
【００３８】
次に、スレーブＣＰＵ２のＥＥＰＲＯＭ３へのアクセス時の作用について、図６のフローチャートにより説明する。
スレーブＣＰＵ２は常時図６のフローチャートに示すメモリアクセスプログラムを実行しており、このプログラムを開始すると、まず、マスタＣＰＵ１からのＷＤＣ信号を監視することによりマスタＣＰＵ１の故障がないか否かを判定する（ステップ２０１）。
【００３９】
マスタＣＰＵ１が故障していないと判定した場合、スレーブＣＰＵ２はＲＡＭ２２のＤＭＡ通信異常フラグをチェックすることにより、ＤＭＡ通信に異常がないか否かを判定し（ステップ２０２）、ＤＭＡ通信に異常がないと判定した場合、マネージャテーブルの書込み／読み出し要求フラグをチェックすることにより、ＥＥＰＲＯＭ３へのアクセス要求があるか否かを判定する（ステップ２０３）。ＥＥＰＲＯＭ３へのアクセス要求がないと判定した場合、スレーブＣＰＵ２はプログラムを終了し、ＥＥＰＲＯＭ３へのアクセス要求があると判定した場合、ＤＭＡ通信によりマスタＣＰＵ１にＥＥＰＲＯＭ３へのアクセス要求を行う（ステップ２０４）。なお、アクセス要求が書込み要求である場合には、このＤＭＡ通信により書込みデータがマスタＣＰＵ１に転送される。
【００４０】
一方、図７（ａ）に示すように、マスタＣＰＵ１からのＷＤＣ信号が停止した場合、スレーブＣＰＵ２はマスタＣＰＵ１にリセットをかけ、３回リセットしても故障が回復しない場合には、図７（ｂ）に示すようにリセット信号をかけっぱなしにしてマスタＣＰＵ１を停止させる。
このマスタＣＰＵ１の故障時に、ステップ２０１でマスタＣＰＵ１が故障していると判定すると、スレーブＣＰＵ２はリセット信号がオンになっているか否かを判断することにより、マスタＣＰＵ１がリセット状態か否かを判定し（ステップ２０５）、マスタＣＰＵ１がリセット状態と判定した場合、ＣＳ−ｍ端子の信号を監視することにより、マスタＣＰＵ１からＥＥＰＲＯＭ３へのアクセスがないか否かを判定する（ステップ２０６）。
なお、マスタＣＰＵ１が故障中の場合には、通常、リセット信号オン、マスタＣＰＵ１からのメモリアクセスなしであるが、確認のためステップ２０５、２０６の判定を行っている。
【００４１】
ステップ２０６でマスタＣＰＵ１からＥＥＰＲＯＭ３へのアクセスがないと判定した場合、スレーブＣＰＵ２は図７（ｅ）に示すようにＥＥＰＲＯＭ３へのアクセス許可フラグをオンし、ＥＥＰＲＯＭ３へのアクセスを許可する（ステップ２０７）。
【００４２】
次に、マスタＣＰＵ１リセット後所定時間Ｔ２が経過した場合、スレーブＣＰＵ２は、図７（ｂ）に示すようにマスタＣＰＵ１のリセットを解除するとともに、マスタＣＰＵ１が復帰した場合に、ＥＥＰＲＯＭ３への同時アクセスを回避するため、図７（ｆ）に示すように、マスタＣＰＵ１のＥＥＰＲＯＭ３へのアクセス禁止フラグをオンすることにより、マスタＣＰＵ１からのＥＥＰＲＯＭ３へのアクセスを禁止する（ステップ２０８）。
なお、マスタＣＰＵ１の故障復帰によるＣＰＵリセット時には、ＳＲＡＭ領域のデータはクリアされないため、ＥＥＰＲＯＭ３からのデータを読み出す必要がなく、マスタＣＰＵ１の復帰時にＥＥＰＲＯＭ３へのアクセスを禁止しても問題は生じない。
【００４３】
次に、スレーブＣＰＵ２はマネージャテーブルの書込み／読み出し要求フラグをチェックすることにより、ＥＥＰＲＯＭ３へのアクセス要求があるか否かを判定し（ステップ２０９）、ＥＥＰＲＯＭ３へのアクセス要求があると判定した場合、マネージャテーブルの書込み／読み出し優先度をチェックすることにより、要求有りデータの優先度を比較した（ステップ２１０）後、その優先度に従ってＥＥＰＲＯＭ３にアクセスする（ステップ２１１）。
【００４４】
そして、ステップ２０９でＥＥＰＲＯＭ３へのアクセス要求がないと判定した場合、または、ステップ２１１でＥＥＰＲＯＭ３にアクセスした後、スレーブＣＰＵ２はマスタＣＰＵ１からのＷＤＣ信号を監視することにより、リセット解除後所定回数以上ＷＤＣ信号の反転があったか否かを判断してマスタＣＰＵ１の故障が復帰したか否かを判定する（ステップ２１２）。マスタＣＰＵ１の故障が復帰していないと判定した場合、ステップ２０９に戻り、マスタＣＰＵ１の故障が復帰したと判定した場合、スレーブＣＰＵ２は、高優先度データ、例えば、優先度１のデータの書込みまたは読み出しが完了しているか否かを判定する（ステップ２１３）。
【００４５】
ステップ２１３で高優先度データのアクセスが完了していないと判定した場合、ステップ２０９に戻り、高優先度データのアクセスが完了していると判定した場合、スレーブＣＰＵ２は、図７（ｅ）に示すように、スレーブＣＰＵ２からのＥＥＰＲＯＭ３へのアクセス許可フラグをオフすることによりＥＥＰＲＯＭ３へのアクセスを禁止した（ステップ２１４）後、図７（ｆ）に示すように、マスタＣＰＵ１からのＥＥＰＲＯＭ３へのアクセス禁止フラグをオフすることによりマスタＣＰＵ１からのＥＥＰＲＯＭ３へのアクセスを許可する（ステップ２１５）。
【００４６】
以上のように、マスタＣＰＵ１の故障復帰を検出した場合でも、スレーブＣＰＵ２にてＥＥＰＲＯＭ３にアクセスしていた場合には、高優先度のデータアクセスが完了するまで、マスタＣＰＵ１のアクセスを許可せず、高優先度データのアクセスが完了した場合に、マスタ機能をマスタＣＰＵ１に返上する。なお、この場合、高優先度のデータのアクセス完了後もアクセスするデータが残っている場合には、マスタＣＰＵ１側にアクセスを要求することとなる。
【００４７】
また、ステップ２０２でＤＭＡ通信に異常が発生していると判定した場合、スレーブＣＰＵ２はマスタＣＰＵ１のスリープ許可信号をチェックすることによりマスタＣＰＵ１がスリープ状態か否かを判定し（ステップ２１６）、マスタＣＰＵ１がスリープ状態でないと判定した場合、マネージャテーブルの書込み／読み出し要求フラグをチェックすることにより、ＥＥＰＲＯＭ３へのアクセス要求があるか否かを判定する（ステップ２１７）。ＥＥＰＲＯＭ３へのアクセス要求がないと判定した場合、プログラムを終了し、ＥＥＰＲＯＭ３へのアクセス要求があると判定した場合、スレーブＣＰＵ２は、マネージャテーブルの書込み／読み出し優先度をチェックすることにより、要求有りデータの優先度を比較する（ステップ２１８）。
【００４８】
次に、スレーブＣＰＵ２はマスタＣＰＵ１のＣＳ端子モニタ値がオン→オフになったか否かを判定し（ステップ２１９）、図５（ｂ）に示すように、マスタＣＰＵ１のＣＳ端子モニタ値がオン→オフになった信号変化をトリガとして上記の優先度に従ってＥＥＰＲＯＭ３にアクセスする（ステップ２２０）。
【００４９】
一方、マスタＣＰＵ１がスリープした場合には、書込み／読み出しタイミングがわからず、スレーブＣＰＵ２にてメモリアクセスができないため、スレーブＣＰＵ２の単独アクセスに切り替える。
すなわち、ステップ２１６でマスタＣＰＵ１がスリープ状態であると判定した場合、スレーブＣＰＵ２はマネージャテーブルの書込み／読み出し要求フラグをチェックすることにより、ＥＥＰＲＯＭ３へのアクセス要求があるか否かを判定し（ステップ２２１）、ＥＥＰＲＯＭ３へのアクセス要求がないと判定した場合、プログラムを終了し、ＥＥＰＲＯＭ３へのアクセス要求があると判定した場合、マネージャテーブルの書込み／読み出し優先度をチェックすることにより、要求有りデータの優先度を比較した（ステップ２２２）後、その優先度に従ってＥＥＰＲＯＭ３にアクセスする（ステップ２２０）。
【００５０】
以上のように、マスタＣＰＵ１が故障した場合やＤＭＡ通信が異常となった場合でも、スレーブＣＰＵ２から自発的にＥＥＰＲＯＭアクセスを行うことができるので、スレーブＣＰＵ２からのＥＥＰＲＯＭアクセス不能を回避することが可能となる。
【００５１】
なお、上記の実施例では、マスタＣＰＵとスレーブＣＰＵをそれぞれ一つずつ備えたメモリ管理装置について説明したが、スレーブＣＰＵを複数個備えたメモリ管理装置に対しても本発明を適用することが可能である。
また、上記の実施例では、スレーブＣＰＵのメモリアクセス優先度のテーブルを起動時にマスタＣＰＵに転送したが、スレーブＣＰＵ側でメモリアクセス要求が発生した場合に、優先度テーブルをマスタＣＰＵに転送するようにしてもよい。
【図面の簡単な説明】
【００５２】
【図１】本発明のメモリ管理装置の実施例を示すブロック図である。
【図２】ＤＭＡ通信の概要を説明するため図である。
【図３】ＥＥＰＲＯＭアクセス管理のためのマネージャテーブルの一例を示す図である。
【図４】マスタＣＰＵ１のメモリアクセス時の作用を示すフローチャートである。
【図５】マスタＣＰＵ１のメモリアクセス時の信号変化を示す図である。
【図６】スレーブＣＰＵ２のメモリアクセス時の作用を示すフローチャートである。
【図７】スレーブＣＰＵ２のメモリアクセス時の信号変化を示す図である。
【符号の説明】
【００５３】
１  マスタＣＰＵ
２  スレーブＣＰＵ
３  ＥＥＰＲＯＭ
４  電源ＩＣ
５、６、７  ＯＲ回路
１１、２１  ＳＲＡＭ
１２、２２  ＲＡＭ
１３、２３  ＤＭＡコントローラ
【図１】
2006323617.tif 000003
【図２】
2006323617.tif 000004
【図３】
2006323617.tif 000005
【図４】
2006323617.tif 000006
【図５】
2006323617.tif 000007
【図６】
2006323617.tif 000008
【図７】
2006323617.tif 000009