JP2006323617A - メモリ管理方法及びメモリ管理装置 - Google Patents
メモリ管理方法及びメモリ管理装置 Download PDFInfo
- Publication number
- JP2006323617A JP2006323617A JP2005146123A JP2005146123A JP2006323617A JP 2006323617 A JP2006323617 A JP 2006323617A JP 2005146123 A JP2005146123 A JP 2005146123A JP 2005146123 A JP2005146123 A JP 2005146123A JP 2006323617 A JP2006323617 A JP 2006323617A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- access
- memory
- management device
- memory management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
Abstract
【課題】書込み・読み出しともに優先度を考慮した不揮発性メモリへのアクセスが可能になるとともに、マスタCPU故障時にスレーブCPUがメモリアクセス不能となる事態を防ぐことができるメモリ管理装置を提供する。
【解決手段】マスタCPU1にてスレーブCPU2側のEEPROM3へのアクセスデータを管理し、スレーブCPU2においてメモリアクセス要求が発生した場合には、EEPROM3へのアクセスをマスタCPU1側で行い、書込み/読み出しデータの授受をDMA通信により行う。これにより、複数のCPUで一つのEEPROM3を共有することが可能になるとともに、EEPROM3への同時アクセスを回避することができる。また、マスタCPU1の故障時やDMA通信が異常となった場合、スレーブCPU2が自発的にEEPROM3へのアクセスを行うので、スレーブCPU2からのメモリアクセス不能を回避することができる。
【選択図】図1
【解決手段】マスタCPU1にてスレーブCPU2側のEEPROM3へのアクセスデータを管理し、スレーブCPU2においてメモリアクセス要求が発生した場合には、EEPROM3へのアクセスをマスタCPU1側で行い、書込み/読み出しデータの授受をDMA通信により行う。これにより、複数のCPUで一つのEEPROM3を共有することが可能になるとともに、EEPROM3への同時アクセスを回避することができる。また、マスタCPU1の故障時やDMA通信が異常となった場合、スレーブCPU2が自発的にEEPROM3へのアクセスを行うので、スレーブCPU2からのメモリアクセス不能を回避することができる。
【選択図】図1
Description
本発明は、メモリ管理方法及びメモリ管理装置に関し、特に、マスタCPUとスレーブCPUよりなる複数のCPUとこの複数のCPUで共有する不揮発性メモリとを備え、複数のCPUから不揮発性メモリへアクセス可能なメモリ管理方法及びメモリ管理装置に関する。
車両のエンジンや自動変速機等を制御する車両用電子制御装置(以下、ECUという)においては、制御対象の経時変化や個体差などの影響をなくすために、過去の制御結果を評価して制御パラメータや制御論理を修正する、いわゆる学習制御が広く採用されている。
例えば、エンジンの燃料噴射制御装置(EFI−ECU)では、適切な空燃比の混合ガスを得るために、車両の状態を各種センサで検出して演算処理し、燃料噴射弁等のアクチュエータを作動させている。そして、噴射タイミングや噴射量等の前回の制御値は、学習値として記憶し、次回のエンジンスタート時の制御値として用いるようにしている。
このような学習制御において取得される学習値は、SRAM(Static Random Access Memory)に記憶している。なお、SRAMはバッテリ電圧により電源が常時供給されるRAMであり、バックアップRAMともいう。
このような学習制御において取得される学習値は、SRAM(Static Random Access Memory)に記憶している。なお、SRAMはバッテリ電圧により電源が常時供給されるRAMであり、バックアップRAMともいう。
しかしながら、学習値をSRAMに記憶させておくようにしただけでは、車両からバッテリが外され、或いは、外れた場合に、それまでに算出した学習値を失ってしまう。そこで、最近は、EEPROM(Electrically Erasable and Programmable ROM)といった電気的にデータの書き換えが可能な不揮発性ROMに学習値を書き込んでおき、バッテリ外れが発生したと判断した場合には、その不揮発性ROMからSRAMへ学習値を転送して、過去に算出した学習値を継続して使用できるようにしている。
また、車両用電子制御装置では、制御プログラムを含む共通仕様データをマスクROMに記憶させ、車種毎に異なるデータをEEPROMに記憶させることにより、1つのマイクロコンピュータのハードウエアを多数の車種に適用し、管理工数を削減してコスト低減を図ることも行われている。
一方、最近の車両用電子制御装置は、制御システムの高機能化や高信頼性化の要求に伴い、複数のCPUを使用した構成が多用されている。このように複数のCPUを搭載した車両用電子制御装置には、CPU毎にEEPROMをそれぞれ設け、各々のCPUで個別のEEPROMにアクセスしてデータの読み出し/書込みを行うものがあるが、このような構成では、使用するCPUと同じ数だけEEPROMが必要となり、コストアップとなる。
これに対し、複数のCPUの一つにEEPROMを接続し、このCPUからのみEEPROMにアクセスすることにより、EEPROMの必要数を減らしコスト削減を図ることができるが、EEPROMにアクセスするCPUのアクセス時間が増大し、また、CPU間の通信データ量が増大するといった問題が生じる。
このため、複数のCPUに一つのEEPROMを接続し、このEEPROMを各CPUで共有するとともに、一つのCPUからのみデータ読み出し要求を発行し、各CPUで共通に使用するデータを同時に受信することにより、初期化時間の短縮を図ることが提案されている(例えば、特許文献1参照)。
特開2001−216284号公報
このため、複数のCPUに一つのEEPROMを接続し、このEEPROMを各CPUで共有するとともに、一つのCPUからのみデータ読み出し要求を発行し、各CPUで共通に使用するデータを同時に受信することにより、初期化時間の短縮を図ることが提案されている(例えば、特許文献1参照)。
上記のように、複数のCPUで一つの不揮発性メモリを共有する場合、一つのCPUがマスタとなり、マスタCPUが不揮発性メモリからのデータ読み出しを管理することが提案されているが、上記の提案では、読み出し処理に関しては、予め区分された優先度の高いデータから読み出し処理を行うことが可能であるが、書込み処理に関しては優先度を考慮していない。このため、優先度低データの書込み処理が長時間継続される場合に、優先度高データの書込み要求が発生した場合には書き込み処理に遅延が入り、この優先度高データのアクセスウェイト時にCPUリセットやバッテリクリアが生じると、データがロストするので、データがロストする確率が増えるという問題が生じる。
また、マスタCPUが故障した場合には、読み出し要求をマスタCPUから発行できず、不揮発性メモリへのアクセスが不能となるので、スレーブCPUが不揮発性メモリからデータを読み出せず、演算などの処理に影響を及ぼすという問題が生じる。
本発明は、上記の問題に鑑みてなされたもので、書込み・読み出しともに優先度を考慮した不揮発性メモリへのアクセスが可能になるとともに、マスタCPU故障時にスレーブCPUがメモリアクセス不能となる事態を防ぐことができるメモリ管理方法及びメモリ管理装置を提供することを目的とする。
上述の目的を達成するため、本発明に係るメモリ管理方法(1)は、
マスタCPUとスレーブCPUよりなる複数のCPUと、この複数のCPUで共有する不揮発性メモリとを備え、上記複数のCPUから上記不揮発性メモリへアクセス可能なメモリ管理方法であって、
各CPUが上記不揮発性メモリへのアクセス優先度を把握するデータテーブルを備え、上記マスタCPUが各CPUのデータテーブル及びアクセス要求を管理し、各CPUにてアクセス要求が発生した場合、上記マスタCPUがアクセス要求のあったCPUのデータテーブルに基づいて上記不揮発性メモリにアクセスすることを特徴とする。
マスタCPUとスレーブCPUよりなる複数のCPUと、この複数のCPUで共有する不揮発性メモリとを備え、上記複数のCPUから上記不揮発性メモリへアクセス可能なメモリ管理方法であって、
各CPUが上記不揮発性メモリへのアクセス優先度を把握するデータテーブルを備え、上記マスタCPUが各CPUのデータテーブル及びアクセス要求を管理し、各CPUにてアクセス要求が発生した場合、上記マスタCPUがアクセス要求のあったCPUのデータテーブルに基づいて上記不揮発性メモリにアクセスすることを特徴とする。
また、本発明に係るメモリ管理装置(1)は、
マスタCPUとスレーブCPUよりなる複数のCPUと、この複数のCPUで共有する不揮発性メモリとを備え、上記複数のCPUから上記不揮発性メモリへアクセス可能なメモリ管理装置であって、
各CPUが上記不揮発性メモリへのアクセス優先度を把握するデータテーブルを備え、上記マスタCPUが各CPUのデータテーブル及びアクセス要求を管理し、各CPUにてアクセス要求が発生した場合、上記マスタCPUがアクセス要求のあったCPUのデータテーブルに基づいて上記不揮発性メモリにアクセスすることを特徴とする。
マスタCPUとスレーブCPUよりなる複数のCPUと、この複数のCPUで共有する不揮発性メモリとを備え、上記複数のCPUから上記不揮発性メモリへアクセス可能なメモリ管理装置であって、
各CPUが上記不揮発性メモリへのアクセス優先度を把握するデータテーブルを備え、上記マスタCPUが各CPUのデータテーブル及びアクセス要求を管理し、各CPUにてアクセス要求が発生した場合、上記マスタCPUがアクセス要求のあったCPUのデータテーブルに基づいて上記不揮発性メモリにアクセスすることを特徴とする。
さらに、本発明に係るメモリ管理装置(2)は、メモリ管理装置(1)において、
上記データテーブルのアクセス優先度として、書込み要求、読み出し要求個別で優先度を設定できることを特徴とし、
本発明に係るメモリ管理装置(3)は、メモリ管理装置(1)において、
上記マスタCPUがアクセス要求のあったスレーブCPUに対してメモリアクセス状況を所定時間毎に通知することを特徴とする。
上記データテーブルのアクセス優先度として、書込み要求、読み出し要求個別で優先度を設定できることを特徴とし、
本発明に係るメモリ管理装置(3)は、メモリ管理装置(1)において、
上記マスタCPUがアクセス要求のあったスレーブCPUに対してメモリアクセス状況を所定時間毎に通知することを特徴とする。
また、本発明に係るメモリ管理装置(4)は、メモリ管理装置(1)において、
上記スレーブCPUにてマスタCPUの故障を検出した場合、上記スレーブCPUがデータテーブルの管理を行い、アクセス要求が発生した場合、スレーブCPUが上記不揮発性メモリにアクセスすることを特徴とし、
本発明に係るメモリ管理装置(5)は、メモリ管理装置(4)において、
マスタCPUのメモリアクセスなし状態、かつ、マスタCPUリセット状態を検出した場合に、上記スレーブCPUが上記不揮発性メモリへのアクセスを開始することを特徴とする。
上記スレーブCPUにてマスタCPUの故障を検出した場合、上記スレーブCPUがデータテーブルの管理を行い、アクセス要求が発生した場合、スレーブCPUが上記不揮発性メモリにアクセスすることを特徴とし、
本発明に係るメモリ管理装置(5)は、メモリ管理装置(4)において、
マスタCPUのメモリアクセスなし状態、かつ、マスタCPUリセット状態を検出した場合に、上記スレーブCPUが上記不揮発性メモリへのアクセスを開始することを特徴とする。
さらに、本発明に係るメモリ管理装置(6)は、メモリ管理装置(5)において、
上記スレーブCPUからのメモリアクセス中に上記マスタCPUが復帰した場合、上記スレーブCPUが、上記マスタCPUへメモリアクセス禁止要求を送信することにより、マスタCPUからのメモリアクセスを禁止することを特徴とし、
本発明に係るメモリ管理装置(7)は、メモリ管理装置(6)において、
上記マスタCPUのアクセス禁止解除は、スレーブCPUの高優先度データアクセス完了時に上記スレーブCPUが行うことを特徴とし、
本発明に係るメモリ管理装置(8)は、メモリ管理装置(7)において、
上記マスタCPUのアクセス禁止解除後は、上記スレーブCPUからのメモリアクセスを禁止し、通常時のマスタCPUからのメモリアクセスに復帰することを特徴とする。
上記スレーブCPUからのメモリアクセス中に上記マスタCPUが復帰した場合、上記スレーブCPUが、上記マスタCPUへメモリアクセス禁止要求を送信することにより、マスタCPUからのメモリアクセスを禁止することを特徴とし、
本発明に係るメモリ管理装置(7)は、メモリ管理装置(6)において、
上記マスタCPUのアクセス禁止解除は、スレーブCPUの高優先度データアクセス完了時に上記スレーブCPUが行うことを特徴とし、
本発明に係るメモリ管理装置(8)は、メモリ管理装置(7)において、
上記マスタCPUのアクセス禁止解除後は、上記スレーブCPUからのメモリアクセスを禁止し、通常時のマスタCPUからのメモリアクセスに復帰することを特徴とする。
また、本発明に係るメモリ管理装置(9)は、メモリ管理装置(1)において、
上記複数のCPUがメモリアクセスデータ送受信手段を備え、上記メモリアクセスデータ送受信手段の異常が検出された場合、各CPUにてデータテーブルの管理を行い、アクセス要求が発生した場合、各CPUが上記不揮発性メモリにアクセスすることを特徴とする。
上記複数のCPUがメモリアクセスデータ送受信手段を備え、上記メモリアクセスデータ送受信手段の異常が検出された場合、各CPUにてデータテーブルの管理を行い、アクセス要求が発生した場合、各CPUが上記不揮発性メモリにアクセスすることを特徴とする。
さらに、本発明に係るメモリ管理装置(10)は、メモリ管理装置(9)において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記スレーブCPUが、上記マスタCPUにおけるメモリアクセス信号の立下りエッジのタイミングでメモリアクセスを行うことを特徴とし、
本発明に係るメモリ管理装置(11)は、メモリ管理装置(9)において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタCPUが、異常発生から所定時間経過時に初回アクセスを行い、その後は上記スレーブCPUにおけるメモリアクセス信号の立下りエッジのタイミングでメモリアクセスを行うことを特徴とする。
上記メモリアクセスデータ送受信手段の異常発生時には、上記スレーブCPUが、上記マスタCPUにおけるメモリアクセス信号の立下りエッジのタイミングでメモリアクセスを行うことを特徴とし、
本発明に係るメモリ管理装置(11)は、メモリ管理装置(9)において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタCPUが、異常発生から所定時間経過時に初回アクセスを行い、その後は上記スレーブCPUにおけるメモリアクセス信号の立下りエッジのタイミングでメモリアクセスを行うことを特徴とする。
また、本発明に係るメモリ管理装置(12)は、メモリ管理装置(9)において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタCPUがメモリアクセス信号のオン時間を制御し、所定時間オン状態を継続することを特徴とし、
本発明に係るメモリ管理装置(13)は、メモリ管理装置(12)において、
上記メモリアクセス信号のオン状態を継続する所定時間が可変であることを特徴とする。
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタCPUがメモリアクセス信号のオン時間を制御し、所定時間オン状態を継続することを特徴とし、
本発明に係るメモリ管理装置(13)は、メモリ管理装置(12)において、
上記メモリアクセス信号のオン状態を継続する所定時間が可変であることを特徴とする。
さらに、本発明に係るメモリ管理装置(14)は、メモリ管理装置(9)〜(13)のいずれかにおいて、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタCPU、上記スレーブCPUにて交互に上記不揮発性メモリにアクセスすることを特徴とし、
本発明に係るメモリ管理装置(15)は、メモリ管理装置(14)において、
上記メモリアクセスデータ送受信手段の異常発生時に、上記マスタCPUがスリープ状態に移行した場合、マスタCPUとの交互アクセスではなく、上記スレーブCPU単体で上記不揮発性メモリへアクセスすることを特徴とする。
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタCPU、上記スレーブCPUにて交互に上記不揮発性メモリにアクセスすることを特徴とし、
本発明に係るメモリ管理装置(15)は、メモリ管理装置(14)において、
上記メモリアクセスデータ送受信手段の異常発生時に、上記マスタCPUがスリープ状態に移行した場合、マスタCPUとの交互アクセスではなく、上記スレーブCPU単体で上記不揮発性メモリへアクセスすることを特徴とする。
本発明に係るメモリ管理方法(1)及びメモリ管理装置(1)〜(3)によれば、マスタCPUにてスレーブCPU側の不揮発性メモリへのアクセスデータを管理し、不揮発性メモリへのアクセスをマスタCPU側で行うことができるので、複数のCPUで一つの不揮発性メモリを共有することが可能になるとともに、不揮発性メモリへの同時アクセス回避及びデータ優先度を考慮した不揮発性メモリへのアクセスが可能となる。
また、本発明に係るメモリ管理装置(4)〜(8)によれば、マスタCPUの故障時にスレーブCPUから自発的に不揮発性メモリへのアクセスを行うことができ、本発明に係るメモリ管理装置(9)〜(15)によれば、メモリアクセスデータ送受信手段、例えば、DMA通信が異常となった場合に、各々のCPUから自発的に不揮発性メモリへのアクセスを行うことができるので、スレーブCPUからのメモリアクセス不能を回避することが可能となり、マスタCPU故障時やDMA異常時にアクセスできないといった事態を回避することができる。
以下、本発明のメモリ管理装置の実施例について、図面を用いて説明する。図1は本発明のメモリ管理装置の実施例を示すブロック図であり、図に示すように、このメモリ管理装置は、マスタCPU1、スレーブCPU2、EEPROM3、電源IC4より構成されている。
マスタCPU1、スレーブCPU2はメモリとして静的な電源電圧で記憶が保持されるSRAM11、21と、通常のRAM12、22とを備え、SRAM11、21は学習値や車両データ等を記憶し、RAM12、22はプログラム実行時のデータを記憶するとともに、EEPROM3へのアクセス許可フラグ、アクセス禁止フラグやDMA通信異常フラグ等の記憶領域を備えている。
一方、マスタCPU1、スレーブCPU2は、それぞれスリープ許可信号をsleep端子から電源IC4に入力するとともに、ダイレクトメモリアクセス(DMA)通信により相互に通信を行っている。
このDMA通信は、図2に示すように、送信元のデータの転送開始アドレス、転送終了アドレス及び送信先の転送開始アドレス、転送終了アドレスを指定することにより、DMAコントローラ13、23によってCPU間で直接データを転送する方式であり、例えば、4ms毎に通信を行い、12ms通信がなかった場合には、相手側CPUのDMA通信異常フラグがオンとなる。このDMA通信により、EEPROMアクセス管理データやEEPROMへの書込み/読み出しデータの転送、あるいは、マスタCPU1からスレーブCPU2へのメモリアクセス状況の通知等が行われる。
このDMA通信は、図2に示すように、送信元のデータの転送開始アドレス、転送終了アドレス及び送信先の転送開始アドレス、転送終了アドレスを指定することにより、DMAコントローラ13、23によってCPU間で直接データを転送する方式であり、例えば、4ms毎に通信を行い、12ms通信がなかった場合には、相手側CPUのDMA通信異常フラグがオンとなる。このDMA通信により、EEPROMアクセス管理データやEEPROMへの書込み/読み出しデータの転送、あるいは、マスタCPU1からスレーブCPU2へのメモリアクセス状況の通知等が行われる。
また、マスタCPU1、スレーブCPU2は、相互にウォッチドック(WDC)信号を相手側CPUに送信し、相手側CPUの暴走を認識した場合には、相手側CPUにリセット(RESET)をかける。
すなわち、CPUの暴走(故障)把握のため、定期周期毎にパルスを反転させ、パルスの反転がない場合には、監視(相手)CPUがCPU暴走(故障)と判定して相手側CPUにリセットかける。なお、通常、3回リセットしても故障が回復しない場合には、リセット信号をかけっぱなしにして相手側CPUの動作を停止させる。
すなわち、CPUの暴走(故障)把握のため、定期周期毎にパルスを反転させ、パルスの反転がない場合には、監視(相手)CPUがCPU暴走(故障)と判定して相手側CPUにリセットかける。なお、通常、3回リセットしても故障が回復しない場合には、リセット信号をかけっぱなしにして相手側CPUの動作を停止させる。
さらに、マスタCPU1、スレーブCPU2はEEPROM3に対して信号を入出力するCS端子、SK端子、DI端子、DO端子を備えている。CS端子からはメモリアクセス信号が出力され、SK端子からはシリアルクロック信号が出力される。また、DI端子からはEEPROM3へのシリアルデータが出力され、DO端子にはEEPROM3からのシリアルデータが入力される。
また、CS−m端子には相手側CPUのメモリアクセス信号が入力され、相手側CPUのEEPROM3へのアクセス状態をモニタすることができる。
また、CS−m端子には相手側CPUのメモリアクセス信号が入力され、相手側CPUのEEPROM3へのアクセス状態をモニタすることができる。
一方、EEPROM3は、電気的にデータの書き換えが可能な不揮発性メモリであり、マスタCPU1、スレーブCPU2からのメモリアクセス信号、シリアルクロック信号をOR回路5、6を介してCS端子、SK端子で受けるとともに、マスタCPU1、スレーブCPU2からのシリアルデータをDI端子で受ける。また、DO端子からシリアルデータをマスタCPU1、スレーブCPU2のDO端子に出力する。
また、電源IC4はマスタCPU1、スレーブCPU2からのスリープ許可信号を受け、両者のスリープ許可信号がオンになった場合には、マスタCPU1、スレーブCPU2の電源をオフする。なお、スレーブCPU2のsleep-m端子には、マスタCPU1からのスリープ許可信号が入力され、マスタCPU1のスリープ状態をスレーブCPU2によりモニタすることができる。
そして、マスタCPU1、スレーブCPU2のSRAM11、21には、それぞれEEPROMアクセス管理のためのマネージャテーブルが記憶されている。このマネージャテーブルには、図3に示すように、機能毎のデータの先頭アドレス、書込み優先度、読み出し優先度が設定されたデータ及び書込み要求、読み出し要求が発生した場合に1となるフラグの記憶領域が設けられている。
通常、書込み優先順位を高くするデータは元々EEPROMに書き込まれていたデータであり、読み出し優先順位はどのタイミング、例えば、イニシャル後すぐ必要なのか、メイン処理移行後に読み出しても間に合うのか、等によって優先順位が決定される。
なお、スレーブCPU2のメモリアクセス優先度のテーブルは起動時にDMA通信によりマスタCPU1に転送され、マスタCPU1は書込み/読み出し要求発生時に、これらのテーブル内の優先順位に従ってEEPROM3へのアクセスを実施する。
通常、書込み優先順位を高くするデータは元々EEPROMに書き込まれていたデータであり、読み出し優先順位はどのタイミング、例えば、イニシャル後すぐ必要なのか、メイン処理移行後に読み出しても間に合うのか、等によって優先順位が決定される。
なお、スレーブCPU2のメモリアクセス優先度のテーブルは起動時にDMA通信によりマスタCPU1に転送され、マスタCPU1は書込み/読み出し要求発生時に、これらのテーブル内の優先順位に従ってEEPROM3へのアクセスを実施する。
上記のように、EEPROM3への書込み/読み出し要求発生時には、マスタCPU1がマネージャテーブル内の優先順位に従ってEEPROM3へのアクセスを実施するが、まず、マスタCPU1のEEPROM3へのアクセス時の作用について、図4のフローチャートにより説明する。
マスタCPU1は常時図4のフローチャートに示すメモリアクセスプログラムを実行しており、このプログラムを開始すると、まず、RAM12のDMA通信異常フラグをチェックすることにより、DMA通信に異常がないか否かを判定し(ステップ101)、DMA通信に異常がないと判定した場合、自身のマネージャテーブルの書込み/読み出し要求フラグをチェックすることにより、EEPROM3へのアクセス要求があるか否かを判定する(ステップ102)。EEPROM3へのアクセス要求があると判定した場合、マスタCPU1は、マネージャテーブルの書込み/読み出し優先度をチェックすることにより、要求有りデータの優先度を比較した(ステップ103)後、その優先度に従ってEEPROM3にアクセスする(ステップ104)。
また、ステップ102で自身のEEPROM3へのアクセス要求がないと判定した場合、マスタCPU1はスレーブCPU2側からのEEPROM3へのアクセス要求があるか否かを判定し(ステップ105)、スレーブCPU2側からのEEPROM3へのアクセス要求がないと判定した場合、プログラムを終了する。また、スレーブCPU2からのEEPROM3へのアクセス要求があると判定した場合、マスタCPU1は、スレーブCPU2のマネージャテーブルの書込み/読み出し優先度をチェックすることにより、要求有りデータの優先度を比較した(ステップ106)後、その優先度に従ってEEPROM3にアクセスする(ステップ107)。次に、マスタCPU1は、所定時間毎にDMA通信によりスレーブCPU2にメモリアクセス状況を通知する(ステップ108)。なお、データの読み込みの場合、このDMA通信によりEEPROM3からのデータがスレーブCPU2に転送される。
一方、ステップ101でDMA通信に異常が発生していると判定した場合、マスタCPU1はDMA異常時の初回アクセスが未完了か否かを判定し(ステップ109)、DMA異常時の初回アクセスが未完了と判定した場合、DMA異常発生から所定時間T1が経過したか否かを判定する(ステップ110)。そして、DMA異常発生から所定時間T1が経過すると、マスタCPU1は自身のマネージャテーブルの書込み/読み出し要求フラグをチェックすることにより、EEPROM3へのアクセス要求があるか否かを判定する(ステップ111)。EEPROM3へのアクセス要求がないと判定した場合、マスタCPU1はプログラムを終了し、EEPROM3へのアクセス要求があると判定した場合、マスタCPU1はマネージャテーブルの書込み/読み出し優先度をチェックすることにより、要求有りデータの優先度を比較した(ステップ112)後、その優先度に従ってEEPROM3への初回アクセスを行う(ステップ113)。
このように、DMA異常が発生した場合、図5(a)、(b)に示すように、所定時間T1経過時にEEPROM3への初回アクセスを行い、マスタCPU1側にてCS端子出力時間Tを制御し、定期的にオン→オフを繰り返すことにより両CPUが同時にアクセスしないようにする。
なお、上記のCS端子出力時間Tは任意の値に設定することが可能であり、通常、マスタCPU1の動作チェック時に全ての割込み処理を入力したメイン処理を上記の時間Tを変えながらマスタCPU1に実行させ、処理に影響がでないような値を決定して上記のSRAM等に保存する。
なお、上記のCS端子出力時間Tは任意の値に設定することが可能であり、通常、マスタCPU1の動作チェック時に全ての割込み処理を入力したメイン処理を上記の時間Tを変えながらマスタCPU1に実行させ、処理に影響がでないような値を決定して上記のSRAM等に保存する。
そして、ステップ109でDMA異常時の初回アクセスが完了していると判定した場合、マスタCPU1は、自身のマネージャテーブルの書込み/読み出し要求フラグをチェックすることにより、EEPROM3へのアクセス要求があるか否かを判定する(ステップ114)。EEPROM3へのアクセス要求がないと判定した場合、マスタCPU1はプログラムを終了し、EEPROM3へのアクセス要求があると判定した場合、マネージャテーブルの書込み/読み出し優先度をチェックすることにより、要求有りデータの優先度を比較する(ステップ115)。
次に、マスタCPU1はスレーブCPU2のCS端子モニタ値がオン→オフのタイミングになったか否かを判定し(ステップ116)、図5(c)に示すように、スレーブCPU2のCS端子モニタ値がオン→オフになった信号変化をトリガとして上記の優先度に従ってEEPROM3にアクセスする(ステップ117)。
以上のように、マスタCPU1にてスレーブCPU2側のEEPROMアクセスデータを管理し、マスタCPU1側でEEPROMアクセスを行うことができるので、複数のCPUで一つのEEPROM3を共有することが可能になるとともに、EEPROM3の同時アクセス回避及びデータ優先度を考慮したEEPROMアクセスを行うことができる。
次に、スレーブCPU2のEEPROM3へのアクセス時の作用について、図6のフローチャートにより説明する。
スレーブCPU2は常時図6のフローチャートに示すメモリアクセスプログラムを実行しており、このプログラムを開始すると、まず、マスタCPU1からのWDC信号を監視することによりマスタCPU1の故障がないか否かを判定する(ステップ201)。
スレーブCPU2は常時図6のフローチャートに示すメモリアクセスプログラムを実行しており、このプログラムを開始すると、まず、マスタCPU1からのWDC信号を監視することによりマスタCPU1の故障がないか否かを判定する(ステップ201)。
マスタCPU1が故障していないと判定した場合、スレーブCPU2はRAM22のDMA通信異常フラグをチェックすることにより、DMA通信に異常がないか否かを判定し(ステップ202)、DMA通信に異常がないと判定した場合、マネージャテーブルの書込み/読み出し要求フラグをチェックすることにより、EEPROM3へのアクセス要求があるか否かを判定する(ステップ203)。EEPROM3へのアクセス要求がないと判定した場合、スレーブCPU2はプログラムを終了し、EEPROM3へのアクセス要求があると判定した場合、DMA通信によりマスタCPU1にEEPROM3へのアクセス要求を行う(ステップ204)。なお、アクセス要求が書込み要求である場合には、このDMA通信により書込みデータがマスタCPU1に転送される。
一方、図7(a)に示すように、マスタCPU1からのWDC信号が停止した場合、スレーブCPU2はマスタCPU1にリセットをかけ、3回リセットしても故障が回復しない場合には、図7(b)に示すようにリセット信号をかけっぱなしにしてマスタCPU1を停止させる。
このマスタCPU1の故障時に、ステップ201でマスタCPU1が故障していると判定すると、スレーブCPU2はリセット信号がオンになっているか否かを判断することにより、マスタCPU1がリセット状態か否かを判定し(ステップ205)、マスタCPU1がリセット状態と判定した場合、CS−m端子の信号を監視することにより、マスタCPU1からEEPROM3へのアクセスがないか否かを判定する(ステップ206)。
なお、マスタCPU1が故障中の場合には、通常、リセット信号オン、マスタCPU1からのメモリアクセスなしであるが、確認のためステップ205、206の判定を行っている。
このマスタCPU1の故障時に、ステップ201でマスタCPU1が故障していると判定すると、スレーブCPU2はリセット信号がオンになっているか否かを判断することにより、マスタCPU1がリセット状態か否かを判定し(ステップ205)、マスタCPU1がリセット状態と判定した場合、CS−m端子の信号を監視することにより、マスタCPU1からEEPROM3へのアクセスがないか否かを判定する(ステップ206)。
なお、マスタCPU1が故障中の場合には、通常、リセット信号オン、マスタCPU1からのメモリアクセスなしであるが、確認のためステップ205、206の判定を行っている。
ステップ206でマスタCPU1からEEPROM3へのアクセスがないと判定した場合、スレーブCPU2は図7(e)に示すようにEEPROM3へのアクセス許可フラグをオンし、EEPROM3へのアクセスを許可する(ステップ207)。
次に、マスタCPU1リセット後所定時間T2が経過した場合、スレーブCPU2は、図7(b)に示すようにマスタCPU1のリセットを解除するとともに、マスタCPU1が復帰した場合に、EEPROM3への同時アクセスを回避するため、図7(f)に示すように、マスタCPU1のEEPROM3へのアクセス禁止フラグをオンすることにより、マスタCPU1からのEEPROM3へのアクセスを禁止する(ステップ208)。
なお、マスタCPU1の故障復帰によるCPUリセット時には、SRAM領域のデータはクリアされないため、EEPROM3からのデータを読み出す必要がなく、マスタCPU1の復帰時にEEPROM3へのアクセスを禁止しても問題は生じない。
なお、マスタCPU1の故障復帰によるCPUリセット時には、SRAM領域のデータはクリアされないため、EEPROM3からのデータを読み出す必要がなく、マスタCPU1の復帰時にEEPROM3へのアクセスを禁止しても問題は生じない。
次に、スレーブCPU2はマネージャテーブルの書込み/読み出し要求フラグをチェックすることにより、EEPROM3へのアクセス要求があるか否かを判定し(ステップ209)、EEPROM3へのアクセス要求があると判定した場合、マネージャテーブルの書込み/読み出し優先度をチェックすることにより、要求有りデータの優先度を比較した(ステップ210)後、その優先度に従ってEEPROM3にアクセスする(ステップ211)。
そして、ステップ209でEEPROM3へのアクセス要求がないと判定した場合、または、ステップ211でEEPROM3にアクセスした後、スレーブCPU2はマスタCPU1からのWDC信号を監視することにより、リセット解除後所定回数以上WDC信号の反転があったか否かを判断してマスタCPU1の故障が復帰したか否かを判定する(ステップ212)。マスタCPU1の故障が復帰していないと判定した場合、ステップ209に戻り、マスタCPU1の故障が復帰したと判定した場合、スレーブCPU2は、高優先度データ、例えば、優先度1のデータの書込みまたは読み出しが完了しているか否かを判定する(ステップ213)。
ステップ213で高優先度データのアクセスが完了していないと判定した場合、ステップ209に戻り、高優先度データのアクセスが完了していると判定した場合、スレーブCPU2は、図7(e)に示すように、スレーブCPU2からのEEPROM3へのアクセス許可フラグをオフすることによりEEPROM3へのアクセスを禁止した(ステップ214)後、図7(f)に示すように、マスタCPU1からのEEPROM3へのアクセス禁止フラグをオフすることによりマスタCPU1からのEEPROM3へのアクセスを許可する(ステップ215)。
以上のように、マスタCPU1の故障復帰を検出した場合でも、スレーブCPU2にてEEPROM3にアクセスしていた場合には、高優先度のデータアクセスが完了するまで、マスタCPU1のアクセスを許可せず、高優先度データのアクセスが完了した場合に、マスタ機能をマスタCPU1に返上する。なお、この場合、高優先度のデータのアクセス完了後もアクセスするデータが残っている場合には、マスタCPU1側にアクセスを要求することとなる。
また、ステップ202でDMA通信に異常が発生していると判定した場合、スレーブCPU2はマスタCPU1のスリープ許可信号をチェックすることによりマスタCPU1がスリープ状態か否かを判定し(ステップ216)、マスタCPU1がスリープ状態でないと判定した場合、マネージャテーブルの書込み/読み出し要求フラグをチェックすることにより、EEPROM3へのアクセス要求があるか否かを判定する(ステップ217)。EEPROM3へのアクセス要求がないと判定した場合、プログラムを終了し、EEPROM3へのアクセス要求があると判定した場合、スレーブCPU2は、マネージャテーブルの書込み/読み出し優先度をチェックすることにより、要求有りデータの優先度を比較する(ステップ218)。
次に、スレーブCPU2はマスタCPU1のCS端子モニタ値がオン→オフになったか否かを判定し(ステップ219)、図5(b)に示すように、マスタCPU1のCS端子モニタ値がオン→オフになった信号変化をトリガとして上記の優先度に従ってEEPROM3にアクセスする(ステップ220)。
一方、マスタCPU1がスリープした場合には、書込み/読み出しタイミングがわからず、スレーブCPU2にてメモリアクセスができないため、スレーブCPU2の単独アクセスに切り替える。
すなわち、ステップ216でマスタCPU1がスリープ状態であると判定した場合、スレーブCPU2はマネージャテーブルの書込み/読み出し要求フラグをチェックすることにより、EEPROM3へのアクセス要求があるか否かを判定し(ステップ221)、EEPROM3へのアクセス要求がないと判定した場合、プログラムを終了し、EEPROM3へのアクセス要求があると判定した場合、マネージャテーブルの書込み/読み出し優先度をチェックすることにより、要求有りデータの優先度を比較した(ステップ222)後、その優先度に従ってEEPROM3にアクセスする(ステップ220)。
すなわち、ステップ216でマスタCPU1がスリープ状態であると判定した場合、スレーブCPU2はマネージャテーブルの書込み/読み出し要求フラグをチェックすることにより、EEPROM3へのアクセス要求があるか否かを判定し(ステップ221)、EEPROM3へのアクセス要求がないと判定した場合、プログラムを終了し、EEPROM3へのアクセス要求があると判定した場合、マネージャテーブルの書込み/読み出し優先度をチェックすることにより、要求有りデータの優先度を比較した(ステップ222)後、その優先度に従ってEEPROM3にアクセスする(ステップ220)。
以上のように、マスタCPU1が故障した場合やDMA通信が異常となった場合でも、スレーブCPU2から自発的にEEPROMアクセスを行うことができるので、スレーブCPU2からのEEPROMアクセス不能を回避することが可能となる。
なお、上記の実施例では、マスタCPUとスレーブCPUをそれぞれ一つずつ備えたメモリ管理装置について説明したが、スレーブCPUを複数個備えたメモリ管理装置に対しても本発明を適用することが可能である。
また、上記の実施例では、スレーブCPUのメモリアクセス優先度のテーブルを起動時にマスタCPUに転送したが、スレーブCPU側でメモリアクセス要求が発生した場合に、優先度テーブルをマスタCPUに転送するようにしてもよい。
また、上記の実施例では、スレーブCPUのメモリアクセス優先度のテーブルを起動時にマスタCPUに転送したが、スレーブCPU側でメモリアクセス要求が発生した場合に、優先度テーブルをマスタCPUに転送するようにしてもよい。
1 マスタCPU
2 スレーブCPU
3 EEPROM
4 電源IC
5、6、7 OR回路
11、21 SRAM
12、22 RAM
13、23 DMAコントローラ
2 スレーブCPU
3 EEPROM
4 電源IC
5、6、7 OR回路
11、21 SRAM
12、22 RAM
13、23 DMAコントローラ
Claims (16)
- マスタCPUとスレーブCPUよりなる複数のCPUと、この複数のCPUで共有する不揮発性メモリとを備え、上記複数のCPUから上記不揮発性メモリへアクセス可能なメモリ管理方法であって、
各CPUが上記不揮発性メモリへのアクセス優先度を把握するデータテーブルを備え、上記マスタCPUが各CPUのデータテーブル及びアクセス要求を管理し、各CPUにてアクセス要求が発生した場合、上記マスタCPUがアクセス要求のあったCPUのデータテーブルに基づいて上記不揮発性メモリにアクセスすることを特徴とするメモリ管理方法。 - マスタCPUとスレーブCPUよりなる複数のCPUと、この複数のCPUで共有する不揮発性メモリとを備え、上記複数のCPUから上記不揮発性メモリへアクセス可能なメモリ管理装置であって、
各CPUが上記不揮発性メモリへのアクセス優先度を把握するデータテーブルを備え、上記マスタCPUが各CPUのデータテーブル及びアクセス要求を管理し、各CPUにてアクセス要求が発生した場合、上記マスタCPUがアクセス要求のあったCPUのデータテーブルに基づいて上記不揮発性メモリにアクセスすることを特徴とするメモリ管理装置。 - 請求項2に記載されたメモリ管理装置において、
上記データテーブルのアクセス優先度として、書込み要求、読み出し要求個別で優先度を設定できることを特徴とするメモリ管理装置。 - 請求項2に記載されたメモリ管理装置において、
上記マスタCPUがアクセス要求のあったスレーブCPUに対してメモリアクセス状況を所定時間毎に通知することを特徴とするメモリ管理装置。 - 請求項2に記載されたメモリ管理装置において、
上記スレーブCPUにてマスタCPUの故障を検出した場合、上記スレーブCPUがデータテーブルの管理を行い、アクセス要求が発生した場合、上記スレーブCPUが上記不揮発性メモリにアクセスすることを特徴とするメモリ管理装置。 - 請求項5に記載されたメモリ管理装置において、
マスタCPUのメモリアクセスなし状態、かつ、マスタCPUリセット状態を検出した場合に、上記スレーブCPUが上記不揮発性メモリへのアクセスを開始することを特徴とするメモリ管理装置。 - 請求項6に記載されたメモリ管理装置において、
上記スレーブCPUからのメモリアクセス中に上記マスタCPUが復帰した場合、上記スレーブCPUが、マスタCPUへメモリアクセス禁止要求を送信することにより、マスタCPUからのメモリアクセスを禁止することを特徴とするメモリ管理装置。 - 請求項7に記載されたメモリ管理装置において、
上記マスタCPUのアクセス禁止解除は、スレーブCPUの高優先度データアクセス完了時に上記スレーブCPUが行うことを特徴とするメモリ管理装置。 - 請求項8に記載されたメモリ管理装置において、
上記マスタCPUのアクセス禁止解除後は、上記スレーブCPUからのメモリアクセスを禁止し、通常時のマスタCPUからのメモリアクセスに復帰することを特徴とするメモリ管理装置。 - 請求項2に記載されたメモリ管理装置において、
上記複数のCPUがメモリアクセスデータ送受信手段を備え、上記メモリアクセスデータ送受信手段の異常が検出された場合、各CPUにてデータテーブルの管理を行い、アクセス要求が発生した場合、各CPUが上記不揮発性メモリにアクセスすることを特徴とするメモリ管理装置。 - 請求項10に記載されたメモリ管理装置において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記スレーブCPUが、上記マスタCPUにおけるメモリアクセス信号の立下りエッジのタイミングでメモリアクセスを行うことを特徴とするメモリ管理装置。 - 請求項10に記載されたメモリ管理装置において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタCPUが、異常発生から所定時間経過時に初回アクセスを行い、その後はスレーブCPUにおけるメモリアクセス信号の立下りエッジのタイミングでメモリアクセスを行うことを特徴とするメモリ管理装置。 - 請求項10に記載されたメモリ管理装置において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタCPUがメモリアクセス信号のオン時間を制御し、所定時間オン状態を継続することを特徴とするメモリ管理装置。 - 請求項13に記載されたメモリ管理装置において、
上記メモリアクセス信号のオン状態を継続する所定時間が可変であることを特徴とするメモリ管理装置。 - 請求項10〜請求項14のいずれかに記載されたメモリ管理装置において、
上記メモリアクセスデータ送受信手段の異常発生時には、上記マスタCPU、上記スレーブCPUにて交互に上記不揮発性メモリにアクセスすることを特徴とするメモリ管理装置。 - 請求項15に記載されたメモリ管理装置において、
上記メモリアクセスデータ送受信手段の異常発生時に、上記マスタCPUがスリープ状態に移行した場合、マスタCPUとの交互アクセスではなく、上記スレーブCPU単体で不揮発性メモリへアクセスすることを特徴とするメモリ管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005146123A JP2006323617A (ja) | 2005-05-19 | 2005-05-19 | メモリ管理方法及びメモリ管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005146123A JP2006323617A (ja) | 2005-05-19 | 2005-05-19 | メモリ管理方法及びメモリ管理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006323617A true JP2006323617A (ja) | 2006-11-30 |
Family
ID=37543250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005146123A Pending JP2006323617A (ja) | 2005-05-19 | 2005-05-19 | メモリ管理方法及びメモリ管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006323617A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017537392A (ja) * | 2014-12-02 | 2017-12-14 | クアルコム テクノロジーズ インターナショナル,リミテッド | デュアルプロセッサシステムによるメモリアクセス |
CN111339000A (zh) * | 2020-02-24 | 2020-06-26 | 深圳震有科技股份有限公司 | Amp系统内存文件传输方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11161621A (ja) * | 1997-11-27 | 1999-06-18 | Oki Electric Ind Co Ltd | Cpu間通信システム |
JP2001216284A (ja) * | 1999-11-25 | 2001-08-10 | Denso Corp | 電子制御装置 |
JP2001236263A (ja) * | 2000-02-24 | 2001-08-31 | Fujitsu Ten Ltd | Eepromの制御装置及びeepromへのアクセス要求方法 |
-
2005
- 2005-05-19 JP JP2005146123A patent/JP2006323617A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11161621A (ja) * | 1997-11-27 | 1999-06-18 | Oki Electric Ind Co Ltd | Cpu間通信システム |
JP2001216284A (ja) * | 1999-11-25 | 2001-08-10 | Denso Corp | 電子制御装置 |
JP2001236263A (ja) * | 2000-02-24 | 2001-08-31 | Fujitsu Ten Ltd | Eepromの制御装置及びeepromへのアクセス要求方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017537392A (ja) * | 2014-12-02 | 2017-12-14 | クアルコム テクノロジーズ インターナショナル,リミテッド | デュアルプロセッサシステムによるメモリアクセス |
CN111339000A (zh) * | 2020-02-24 | 2020-06-26 | 深圳震有科技股份有限公司 | Amp系统内存文件传输方法及装置 |
CN111339000B (zh) * | 2020-02-24 | 2021-07-06 | 深圳震有科技股份有限公司 | Amp系统内存文件传输方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101884071B (zh) | 在共享的多端口存储装置中记忆库的共享与更新 | |
JP5702829B2 (ja) | 中継装置 | |
JP6692763B2 (ja) | 制御装置および制御プログラム更新方法 | |
US4603406A (en) | Power backed-up dual memory system | |
JP2009251967A (ja) | マルチコアシステム | |
JP2008242995A (ja) | 電子制御装置 | |
JP6723941B2 (ja) | 制御装置および制御プログラム更新方法 | |
JPH08320835A (ja) | 外部バスの障害検出方法 | |
JP2006323617A (ja) | メモリ管理方法及びメモリ管理装置 | |
CN104850788A (zh) | 多处理器系统 | |
JP2015171853A (ja) | 自動車用電子制御装置 | |
JP4829821B2 (ja) | マルチプロセッサシステムおよびマルチプロセッサシステムにおける復旧方法 | |
JP2017204083A (ja) | メモリ保護システム | |
CN107179980B (zh) | 用于监视计算系统的方法和相应的计算系统 | |
JP6466269B2 (ja) | 電子制御装置及びスタック領域の使用監視方法 | |
JP6524989B2 (ja) | 演算器の動作保証方法 | |
JP2019191942A (ja) | 制御装置および機能検査方法 | |
US20240106677A1 (en) | Control device and control method | |
WO2017002939A1 (ja) | 電子制御装置及びスタック使用方法 | |
JP2003106211A (ja) | 自動車用内燃機関制御装置 | |
JP6596455B2 (ja) | 自動車用電子制御装置 | |
KR102213254B1 (ko) | 단일 와치독 장치를 이용한 복수 개의 마이컴 에러 검출 방법 및 단일 와치독 장치 | |
JP3003197B2 (ja) | ロボットの数値制御装置 | |
JP2020004448A (ja) | 自動車用電子制御装置 | |
JP2019135656A (ja) | 電子制御装置及びスタック使用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080331 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110412 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110906 |