(57)【特許請求の範囲】
【請求項１】
２つのＣＰＵと、その両ＣＰＵによって共用されると共に、該各ＣＰＵが独立してアクセス可能なＲＡＭ及びＲＯＭとを備え、
前記各ＣＰＵは、予め定められたメモリチェック実施条件が成立すると、前記ＲＡＭの検査対象のアドレスに所定値を書き込んだ後に該アドレスからデータを読み出して該データの値が前記所定値であるか否かを判定するＲＡＭチェックを、前記ＲＡＭの全領域の各アドレスについて実施すると共に、前記ＲＯＭの検査対象領域に記憶されているデータを順次読み出して該検査対象領域のデータが正常であるか否かを判定するＲＯＭチェックを実施するマイクロコンピュータにおいて、
前記２つのＣＰＵのうちの一方のＣＰＵは、前記メモリチェック実施条件が成立すると、最初に、前記ＲＡＭの全領域の各アドレスについて前記ＲＡＭチェックを実施し、次いで、前記ＲＯＭチェックを実施し、
前記２つのＣＰＵのうちの他方のＣＰＵは、前記メモリチェック実施条件が成立すると、最初に、前記ＲＯＭチェックを実施し、次いで、前記ＲＡＭの全領域の各アドレスについて前記ＲＡＭチェックを実施すること、
を特徴とするマイクロコンピュータ。
【請求項２】
請求項１に記載のマイクロコンピュータにおいて、
前記一方のＣＰＵの動作クロックが、前記他方のＣＰＵの動作クロックよりも速いこと、
を特徴とするマイクロコンピュータ。
【請求項３】
請求項１又は請求項２に記載のマイクロコンピュータにおいて、
前記一方のＣＰＵは、前記ＲＡＭの全領域の各アドレスについて前記ＲＡＭチェックを実施し終えたことを、前記他方のＣＰＵに通知し、
前記他方のＣＰＵは、前記ＲＯＭチェックを終えても、前記一方のＣＰＵが前記ＲＡＭの全領域の各アドレスについて前記ＲＡＭチェックを実施し終えたことを前記通知によって確認するまで、前記ＲＡＭチェックを開始するのを待つこと、
を特徴とするマイクロコンピュータ。
【請求項４】
２つのＣＰＵと、その両ＣＰＵによって共用されると共に、該各ＣＰＵが独立してアクセス可能なＲＡＭ及びＲＯＭとを備え、
前記各ＣＰＵは、予め定められたメモリチェック実施条件が成立すると、前記ＲＡＭの検査対象のアドレスに所定値を書き込んだ後に該アドレスからデータを読み出して該データの値が前記所定値であるか否かを判定するＲＡＭチェックを、前記ＲＡＭの領域のうちで当該ＣＰＵだけが使用する専用領域と他のＣＰＵと共通に使用する共用領域との各アドレスについて実施すると共に、前記ＲＯＭの検査対象領域に記憶されているデータを順次読み出して該検査対象領域のデータが正常であるか否かを判定するＲＯＭチェックを実施するマイクロコンピュータにおいて、
前記２つのＣＰＵのうちの一方のＣＰＵは、前記メモリチェック実施条件が成立すると、最初に、前記ＲＡＭの前記専用領域及び共用領域の各アドレスについて前記ＲＡＭチェックを実施し、次いで、前記ＲＯＭチェックを実施し、
前記２つのＣＰＵのうちの他方のＣＰＵは、前記メモリチェック実施条件が成立すると、最初に、前記ＲＯＭチェックを実施し、次いで、前記ＲＡＭの前記専用領域及び共用領域の各アドレスについて前記ＲＡＭチェックを実施すること、
を特徴とするマイクロコンピュータ。
【請求項５】
請求項４に記載のマイクロコンピュータにおいて、
前記ＲＡＭの領域のうち、前記一方のＣＰＵの専用領域が、前記他方のＣＰＵの専用領域よりも小さいこと、
を特徴とするマイクロコンピュータ。
【請求項６】
請求項４又は請求項５に記載のマイクロコンピュータにおいて、
前記一方のＣＰＵは、前記ＲＡＭの前記専用領域及び共用領域の各アドレスについて前記ＲＡＭチェックを実施し終えたことを、前記他方のＣＰＵに通知し、前記他方のＣＰＵは、前記ＲＯＭチェックを終えても、前記一方のＣＰＵが前記ＲＡＭの前記専用領域及び共用領域の各アドレスについて前記ＲＡＭチェックを実施し終えたことを前記通知によって確認するまで、前記ＲＡＭチェックを開始するのを待つこと、
を特徴とするマイクロコンピュータ。
【請求項７】
請求項４又は請求項５に記載のマイクロコンピュータにおいて、
前記一方のＣＰＵは、前記ＲＡＭの前記共用領域の各アドレスについて前記ＲＡＭチェックを実施し終えたことを、前記他方のＣＰＵに通知し、
前記他方のＣＰＵは、前記ＲＯＭチェックを終えても、前記一方のＣＰＵが前記ＲＡＭの前記共用領域の各アドレスについて前記ＲＡＭチェックを実施し終えたことを前記通知によって確認するまで、前記ＲＡＭチェックを開始するのを待つこと、
を特徴とするマイクロコンピュータ。
【請求項８】
請求項４ないし請求項７の何れかに記載のマイクロコンピュータにおいて、
前記一方のＣＰＵは、前記専用領域と前記共用領域とのうちで、前記共用領域の方から先に前記ＲＡＭチェックを実施すること、
を特徴とするマイクロコンピュータ。
【請求項９】
２つのＣＰＵと、その両ＣＰＵによって共用されると共に、該各ＣＰＵが独立してアクセス可能なＲＡＭ及びＲＯＭとを備え、
前記各ＣＰＵは、前記ＲＡＭの検査対象のアドレスに所定値を書き込んだ後に該アドレスからデータを読み出して該データの値が前記所定値であるか否かを判定するＲＡＭチェックを、前記ＲＡＭの検査対象領域の各アドレスについて定期的に実施すると共に、前記ＲＯＭの検査対象領域に記憶されているデータを順次読み出して該検査対象領域のデータが正常であるか否かを判定するＲＯＭチェックも定期的に実施するマイクロコンピュータにおいて、
前記各ＣＰＵは、定期的に到来するメモリチェックタイミング毎に、前記ＲＡＭの検査対象領域の各アドレスについての前記ＲＡＭチェックと、前記ＲＯＭチェックとを交互に実施すると共に、
前記２つのＣＰＵのうちの一方のＣＰＵが前記ＲＡＭチェックを実施するメモリチェックタイミングでは、前記２つのＣＰＵのうちの他方のＣＰＵが前記ＲＯＭチェックを実施し、前記一方のＣＰＵが前記ＲＯＭチェックを実施するメモリチェックタイミングでは、前記他方のＣＰＵが前記ＲＡＭチェックを実施すること、
を特徴とするマイクロコンピュータ。
【請求項１０】
２つのＣＰＵと、その両ＣＰＵによって共用されると共に、該各ＣＰＵが独立してアクセス可能なＲＡＭとを備え、
前記各ＣＰＵは、予め定められたメモリチェック実施条件が成立すると、前記ＲＡＭの検査対象のアドレスに所定値を書き込んだ後に該アドレスからデータを読み出して該データの値が前記所定値であるか否かを判定するＲＡＭチェックを、前記ＲＡＭの全領域の各アドレスについて実施するマイクロコンピュータにおいて、
前記ＲＡＭの領域は、前記２つのＣＰＵのうちの一方のＣＰＵだけが使用する第１の領域と、前記２つのＣＰＵのうちの他方のＣＰＵだけが使用する第２の領域と、前記両ＣＰＵが共通に使用する第３の領域とに分けられており、
前記一方のＣＰＵが前記ＲＡＭチェックを実施する前記３つの領域の順番と、前記他方のＣＰＵが前記ＲＡＭチェックを実施する前記３つの領域の順番とが、異なっていること、
を特徴とするマイクロコンピュータ。
【請求項１１】
２つのＣＰＵと、その両ＣＰＵによって共用されると共に、該各ＣＰＵが独立してアクセス可能なＲＡＭとを備え、
前記各ＣＰＵは、予め定められたメモリチェック実施条件が成立すると、前記ＲＡＭの検査対象のアドレスに所定値を書き込んだ後に該アドレスからデータを読み出して該データの値が前記所定値であるか否かを判定するＲＡＭチェックを、前記ＲＡＭの領域のうちで当該ＣＰＵだけが使用する専用領域と他のＣＰＵと共通に使用する共用領域との各アドレスについて実施するマイクロコンピュータにおいて、
前記２つのＣＰＵのうちの一方のＣＰＵは、前記専用領域と前記共用領域とのうちで、前記共用領域の方から先に前記ＲＡＭチェックを実施し、
前記２つのＣＰＵのうちの他方のＣＰＵは、前記専用領域と前記共用領域とのうちで、前記専用領域の方から先に前記ＲＡＭチェックを実施すること、
を特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵ（中央演算装置）を２つ備えたマイクロコンピュータに関するものであり、特に、その両ＣＰＵが共用メモリをチェックする技術に関するものである。
【０００２】
【従来の技術】
ＣＰＵを２つ備えたマイクロコンピュータ（以下単に、マイコン或いは２ＣＰＵマイコンともいう）の従来からの構成例について説明すると、図１に示すように、この種の２ＣＰＵマイコン１０は、２つのＣＰＵ１，２によって共用されるＲＡＭ３及びＲＯＭ４を備えている。
【０００３】
そして、ＲＡＭ３とＲＯＭ４は、各ＣＰＵ１，２が独立してアクセスできるようになっている。つまり、ＲＡＭ３とＲＯＭ４は、２組のポートを有したデュアルポートメモリであり、ＣＰＵ１は、ＲＡＭ３及びＲＯＭ４の一方のポートに接続されたバス５を介して、そのＲＡＭ３及びＲＯＭ４との間でデータ転送（即ちデータのリード／ライト）を行い、ＣＰＵ２は、ＲＡＭ３及びＲＯＭ４の他方のポートに接続されたバス６を介して、そのＲＡＭ３及びＲＯＭ４との間でデータ転送を行う。
【０００４】
また、このマイコン１０において、各ＣＰＵ１，２が通常時にアクセスするＲＡＭ３とＲＯＭ４との各領域は、図２のようになっている。
つまり、ＲＡＭ３の記憶領域は、ＣＰＵ１だけが使用する専用領域（ＣＰＵ１用領域）▲１▼と、ＣＰＵ２だけが使用する専用領域（ＣＰＵ２用領域）▲２▼と、両ＣＰＵ１，２が共通に使用する共用領域（両ＣＰＵ共用領域）▲３▼とに分けられており、同様に、ＲＯＭ４の領域も、ＣＰＵ１だけが使用する専用領域（ＣＰＵ１用領域）▲４▼と、ＣＰＵ２だけが使用する専用領域（ＣＰＵ２用領域）▲５▼と、両ＣＰＵ１，２が共通に使用する共用領域（両ＣＰＵ共用領域）▲６▼とに分けられている。尚、ＲＯＭ４の領域▲４▼には、ＣＰＵ１が実行するプログラムや該プログラムの実行時に参照される固定データが格納されており、ＲＯＭ４の領域▲５▼には、ＣＰＵ２が実行するプログラムや該プログラムの実行時に参照される固定データが格納されている。そして、ＲＯＭ４の領域▲６▼には、両ＣＰＵ１，２が共通に実行するルーチンのプログラムや両ＣＰＵ１，２が共通に参照する固定データが格納されている。
【０００５】
一方、一般にマイコンにおいては、処理動作の信頼性を高めるため、予め定められたメモリチェック実施条件が成立すると、ＣＰＵがＲＡＭチェックとＲＯＭチェックを実施するようにしている。
ＲＡＭチェックとは、ＲＡＭの検査対象のアドレスに所定値を書き込んだ後、そのアドレスからデータを読み出し、読み出したデータの値が上記所定値であるか否かを判定することにより、データの読み書きが正しくできるか否かを検査するものである。また、ＲＯＭチェックとは、ＲＯＭの検査対象領域に記憶されているデータを順次読み出して、その検査対象領域のデータが正常であるか否かを判定するものであり、例えば、検査対象領域のデータを数バイトずつ足していき、その合計値であるサム（ＳＵＭ）値が、予め決められた値になるか否かにより、ＲＯＭ内のデータが正常であるか否かを検査する。
【０００６】
そこで、従来より、上記図１，２のような２ＣＰＵマイコン１０では、図１７（Ａ）に示すように、メモリチェック実施条件が成立すると、まず、一方のＣＰＵ（この例ではＣＰＵ１）が、ＲＡＭ３の全領域（領域▲１▼〜▲３▼）についてＲＡＭチェックを実施し、次いで、ＲＯＭ４の全領域（領域▲４▼〜▲６▼）を検査対象領域としてＲＯＭチェックを実施する。そして、ＣＰＵ１がＲＯＭチェックを実施し終えると、それまで待ち（ＷＡＩＴ）状態であった他方のＣＰＵ（この例ではＣＰＵ２）が、ＲＡＭ３の全領域（領域▲１▼〜▲３▼）についてＲＡＭチェックを実施し、次いで、ＲＯＭ４の全領域（領域▲４▼〜▲６▼）を検査対象領域としてＲＯＭチェックを実施するようにしていた。
【０００７】
つまり、一方のＣＰＵ１がＲＡＭチェックとＲＯＭチェックを終えてから、他方のＣＰＵ２がＲＡＭチェックとＲＯＭチェックを実施すると共に、チェックを実施していない方のＣＰＵは、待ち状態となるためのウェイト（ＷＡＩＴ）処理を行い、ＣＰＵ２が全てのチェックを実施し終えたら、両ＣＰＵ１，２が通常の処理状態へ戻るようにしている。
【０００８】
ここで、ＣＰＵ１がＲＡＭチェックとＲＯＭチェックを実施し終えるまで、ＣＰＵ２を待ち状態にしているのは、両ＣＰＵ１，２がＲＡＭ３の同じアドレスに対して同時にＲＡＭチェックを実施するのを避けるためである。
つまり、一般にＲＡＭチェックでは、同じアドレスに複数通りの値を書き込んでみるため、両ＣＰＵ１，２がＲＡＭ３の同じアドレスに対して同時にＲＡＭチェックを実施すると、正常な良否判定ができなくなってしまうからである。そして、この問題は、同じアドレスに複数通りの値を書き込んでみる場合に限らず、例えば、ＲＡＭチェックの際に書き込む所定値が各ＣＰＵ１，２で異なる場合にも同様に発生する。
【０００９】
また、ＲＯＭチェックは、データの読み出しのみによって実施されるため、他方のＣＰＵがＲＡＭチェックとＲＯＭチェックとの何れを実施している時にでも、それと同時に実施することができる。
このため、図１７（Ｂ）に例示するように、メモリチェック実施条件が成立すると、まず、一方のＣＰＵ（この例ではＣＰＵ１）が、ＲＡＭ３の全領域（領域▲１▼〜▲３▼）についてＲＡＭチェックを実施し、次いで、ＲＯＭ４の全領域（領域▲４▼〜▲６▼）を検査対象領域としてＲＯＭチェックを実施し、また、ＣＰＵ１がＲＡＭチェックを実施し終えると、それまで待ち状態であった他方のＣＰＵ（この例ではＣＰＵ２）が、ＲＡＭ３の全領域（領域▲１▼〜▲３▼）についてＲＡＭチェックを実施し、次いで、ＲＯＭ４の全領域（領域▲４▼〜▲６▼）を検査対象領域としてＲＯＭチェックを実施するようにすることも考えられる。つまり、一方のＣＰＵ１については、図１７（Ａ）の場合と同様であるが、他方のＣＰＵ２は、ＣＰＵ１がＲＡＭチェックを実施し終えた時（換言すれば、ＲＯＭチェックを開始する時）から、ＲＡＭチェックの実施を開始し、次いで、ＲＯＭチェックを実施するのである。
【００１０】
【発明が解決しようとする課題】
しかしながら、上記図１７（Ａ），（Ｂ）の手法では、メモリチェック実施条件が成立しても、一方のＣＰＵ１が少なくともＲＡＭチェックを実施し終えるまでは、他方のＣＰＵ２が待ち状態となるため、両ＣＰＵ１，２がメモリチェックを実施し終えるまでの延べ時間が長くなってしまうという問題がある。そして、このため、通常の制御処理を行うことができない時間が長くなってしまう。また更に、各ＣＰＵ１，２が待ち状態となる時間が長くなると、ＣＰＵ１，２が何等かの原因で待ち状態のためのウェイト処理から抜け出せなくなってしまう可能性が大きくなり、好ましくない。
【００１１】
また、図１７にて（）内に示すように、各ＣＰＵ１，２が、ＲＡＭ３の領域▲１▼〜▲３▼とＲＯＭ４の領域▲４▼〜▲６▼のうちで、自分の使用する領域（ＣＰＵ１では▲１▼，▲３▼と▲４▼，▲６▼；ＣＰＵ２では▲２▼，▲３▼と▲５▼，▲６▼）だけをチェックするようにプログラムを設定することも考えられるが、その場合にも上記問題が同様に生じる。尚、両ＣＰＵ１，２がＲＡＭ３とＲＯＭ４の全領域をチェックするようにプログラムを設定する方が、各ＣＰＵ１，２の制御内容などによって使用されるＲＡＭ領域やＲＯＭ領域が変わっても、メモリチェックのためのプログラムを変更する必要が無く、その点において有利である。
【００１２】
一方、例えば特開平５−８１２１１号公報には、複数のＣＰＵが、共用ＲＡＭの共用領域に対して書き込みを行う際に、バスをロックしてから書き込みを行い、その書き込みの終了後にロックを解除する、という技術が記載されているが、この公報の技術では上記問題を解決することができない。
【００１３】
そこで、本発明は、ＣＰＵを２つ備えたマイコンにおいて、両ＣＰＵによるメモリチェックを短時間で確実に実施し終えることができるようにすることを目的としている。
【００１４】
【課題を解決するための手段及び発明の効果】
上記目的を達成するためになされた請求項１に記載のマイコンは、図１，２に例示したマイコン１０と同様に、２つのＣＰＵと、その両ＣＰＵによって共用されると共に、該各ＣＰＵが独立してアクセス可能なＲＡＭ及びＲＯＭとを備えている。
【００１５】
そして、この請求項１のマイコンにおいても、各ＣＰＵは、予め定められたメモリチェック実施条件が成立すると、ＲＡＭチェック（即ち、ＲＡＭの検査対象のアドレスに所定値を書き込んだ後に該アドレスからデータを読み出して該データの値が前記所定値であるか否かを判定するチェック）を、上記ＲＡＭの全領域の各アドレスについて実施すると共に、ＲＯＭの検査対象領域に記憶されているデータを順次読み出して該検査対象領域のデータが正常であるか否かを判定するＲＯＭチェックを実施するが、特に、一方のＣＰＵは、まず、ＲＡＭの全領域の各アドレスについてＲＡＭチェックを実施して、その次にＲＯＭチェックを実施し、逆に他方のＣＰＵは、まず、ＲＯＭチェックを実施して、その次に、ＲＡＭの全領域の各アドレスについてＲＡＭチェックを実施する。尚、各ＣＰＵが実施するＲＯＭチェックの検査対象領域（即ち、ＲＯＭチェックでデータを読み出すＲＯＭの検査対象領域）は、ＲＯＭの全領域であっても良いし、ＲＯＭの領域のうちで各ＣＰＵが使用する領域のみであっても良い。
【００１６】
つまり、請求項１のマイコンでは、両ＣＰＵが同時にＲＡＭチェックとＲＯＭチェックを実施するが、各ＣＰＵでＲＡＭチェックとＲＯＭチェックとの実施順序を逆にしている。
このため、各ＣＰＵのＲＡＭチェックの開始タイミングが、上記他方のＣＰＵがＲＯＭチェックを実施するのに要する時間だけずれることとなり、図１７に示した従来技術の如く、一方のＣＰＵがＲＡＭチェック（或いは更にＲＯＭチェック）を実施し終えるまで他方のＣＰＵを待ち状態にする、といった処置を施さなくても、両ＣＰＵがＲＡＭの同じアドレスに対して同時にＲＡＭチェックを実施するのを避けることができる。
【００１７】
よって、請求項１のマイコンによれば、両ＣＰＵによるメモリチェック（ＲＡＭチェックとＲＯＭチェック）を短時間で確実に実施し終えることができるようになる。
ところで、２つのＣＰＵの動作クロックが同じでないならば、請求項２に記載の如く、動作クロックが速い方のＣＰＵを、前記一方のＣＰＵ（即ち、ＲＡＭチェックを先に実施する方のＣＰＵ）とすれば良い。
【００１８】
そして、このようにすれば、ＲＡＭチェックを先に実施するＣＰＵが、より早期にＲＡＭチェックを実施し終えることとなるため、両ＣＰＵがＲＡＭの同じアドレスに対して同時にＲＡＭチェックを実施するのを、一層確実に避けることができる。
【００１９】
次に、請求項３に記載のマイコンでは、請求項１，２のマイコンにおいて、ＲＡＭチェックを先に実施する前記一方のＣＰＵが、ＲＡＭの全領域の各アドレスについてＲＡＭチェックを実施し終えたことを、他方のＣＰＵに通知し、その他方のＣＰＵは、ＲＯＭチェックを終えても、前記一方のＣＰＵがＲＡＭの全領域の各アドレスについてＲＡＭチェックを実施し終えたことを前記通知によって確認するまで、ＲＡＭチェックを開始するのを待つようになっている。
【００２０】
このような請求項３のマイコンによれば、仮に、両ＣＰＵのメモリチェックの開始タイミングがずれて、一方のＣＰＵがＲＡＭチェックを開始するタイミングよりも早く、他方のＣＰＵがＲＯＭチェックを開始したとしても、その他方のＣＰＵは、必ず、上記一方のＣＰＵがＲＡＭチェックを実施し終えてから、ＲＡＭチェックを開始するようになり、両ＣＰＵがＲＡＭの同じアドレスに対して同時にＲＡＭチェックを実施するのを、確実に避けることができる。
【００２１】
一方、請求項４に記載のマイコンも、図１，２に例示したマイコン１０と同様に、２つのＣＰＵと、その両ＣＰＵによって共用されると共に、該各ＣＰＵが独立してアクセス可能なＲＡＭ及びＲＯＭとを備えている。
そして、この請求項４のマイコンにおいて、各ＣＰＵは、予め定められたメモリチェック実施条件が成立すると、上記ＲＡＭの領域のうちで当該ＣＰＵだけが使用する専用領域と他のＣＰＵと共通に使用する共用領域との各アドレスについてＲＡＭチェックを実施すると共に、ＲＯＭの検査対象領域に記憶されているデータを順次読み出して該検査対象領域のデータが正常であるか否かを判定するＲＯＭチェックを実施するが、特に、一方のＣＰＵは、まず、ＲＡＭの専用領域及び共用領域の各アドレスについてＲＡＭチェックを実施して、その次にＲＯＭチェックを実施し、逆に他方のＣＰＵは、まず、ＲＯＭチェックを実施して、その次に、ＲＡＭの専用領域及び共用領域の各アドレスについてＲＡＭチェックを実施する。尚、各ＣＰＵが実施するＲＯＭチェックの検査対象領域は、ＲＯＭの全領域であっても良いし、ＲＯＭの領域のうちで各ＣＰＵが使用する領域のみであっても良い。
【００２２】
つまり、請求項４のマイコンにおいては、各ＣＰＵが、ＲＡＭの全領域ではなく、ＲＡＭの領域のうちで当該ＣＰＵだけが使用する専用領域と他のＣＰＵとで共通に使用する共用領域との各アドレスについて、ＲＡＭチェックを実施するようにしており、この点においてのみ、請求項１のマイコンと異なっている。
【００２３】
そして、この請求項４のマイコンにおいても、両ＣＰＵが同時にＲＡＭチェックとＲＯＭチェックを実施するが、各ＣＰＵでＲＡＭチェックとＲＯＭチェックとの実施順序を逆にしているため、各ＣＰＵのＲＡＭチェックの開始タイミングが、上記他方のＣＰＵがＲＯＭチェックを実施するのに要する時間だけずれることとなり、図１７に示した従来技術の如く、一方のＣＰＵがＲＡＭチェック（或いは更にＲＯＭチェック）を実施し終えるまで他方のＣＰＵを待ち状態にする、といった処置を施さなくても、両ＣＰＵがＲＡＭの同じアドレス（特に、共用領域の同じアドレス）に対して同時にＲＡＭチェックを実施するのを避けることができる。よって、両ＣＰＵによるメモリチェック（ＲＡＭチェックとＲＯＭチェック）を短時間で確実に実施し終えることができるようになる。
【００２４】
ところで、一般に、２つのＣＰＵの動作クロックは同一であり、また、ＲＡＭの領域のうち、各ＣＰＵの専用領域の大きさには違いがある。
そこで、請求項４のマイコンにおいて、特に、請求項５に記載の如く、ＲＡＭの専用領域が小さい方のＣＰＵを、前記一方のＣＰＵ（即ち、ＲＡＭチェックを先に実施する方のＣＰＵ）とすれば、ＲＡＭチェックを先に実施するＣＰＵが、より早期にＲＡＭチェックを実施し終えることとなるため、両ＣＰＵがＲＡＭの同じアドレスに対して同時にＲＡＭチェックを実施するのを、一層確実に避けることができる。
【００２５】
次に、請求項６に記載のマイコンでは、請求項４，５のマイコンにおいて、ＲＡＭチェックを先に実施する前記一方のＣＰＵが、ＲＡＭの専用領域及び共用領域の各アドレスについてＲＡＭチェックを実施し終えたことを、他方のＣＰＵに通知し、その他方のＣＰＵは、ＲＯＭチェックを終えても、前記一方のＣＰＵがＲＡＭの専用領域及び共用領域の各アドレスについてＲＡＭチェックを実施し終えたことを前記通知によって確認するまで、ＲＡＭチェックを開始するのを待つようになっている。
【００２６】
このような請求項６のマイコンによれば、請求項３のマイコンと同様に、両ＣＰＵのメモリチェックの開始タイミングがずれて、一方のＣＰＵがＲＡＭチェックを開始するタイミングよりも早く、他方のＣＰＵがＲＯＭチェックを開始したとしても、その他方のＣＰＵは、必ず、上記一方のＣＰＵがＲＡＭチェックを実施し終えてから、ＲＡＭチェックを開始するようになり、両ＣＰＵがＲＡＭの同じアドレスに対して同時にＲＡＭチェックを実施するのを、確実に避けることができる。
【００２７】
また、請求項７に記載のマイコンでは、請求項４，５のマイコンにおいて、ＲＡＭチェックを先に実施する前記一方のＣＰＵが、ＲＡＭの共用領域の各アドレスについてＲＡＭチェックを実施し終えたことを、他方のＣＰＵに通知し、その他方のＣＰＵは、ＲＯＭチェックを終えても、前記一方のＣＰＵがＲＡＭの共用領域の各アドレスについてＲＡＭチェックを実施し終えたことを前記通知によって確認するまで、ＲＡＭチェックを開始するのを待つようになっている。
【００２８】
そして、このような請求項７のマイコンによっても、請求項６のマイコンと同様の効果を得ることができる。つまり、両ＣＰＵのメモリチェックの開始タイミングがずれて、一方のＣＰＵがＲＡＭチェックを開始するタイミングよりも早く、他方のＣＰＵがＲＯＭチェックを開始したとしても、その他方のＣＰＵは、必ず、上記一方のＣＰＵがＲＡＭの共用領域の各アドレスについてＲＡＭチェックを実施し終えてから、ＲＡＭチェックを開始するようになり、両ＣＰＵがＲＡＭの同じアドレスに対して同時にＲＡＭチェックを実施するのを、確実に避けることができるからである。
【００２９】
また、請求項７のように構成した場合、更に請求項８に記載の如く、前記一方のＣＰＵが、ＲＡＭの専用領域と共用領域とのうち、共用領域の方から先にＲＡＭチェックを実施するように設定すれば、上記他方のＣＰＵがＲＡＭチェックの開始を待たなければならなくなる場合を極力無くすことができ、また、ＲＡＭチェックの開始を待ったとしても、その待ち時間をより小さくすることができる。
【００３０】
また更に、請求項８の手法は、請求項４〜６のマイコンについても有効である。つまり、ＲＡＭチェックを先に実施するＣＰＵが、より早期にＲＡＭの共用領域についてＲＡＭチェックを実施し終えることとなるため、両ＣＰＵがＲＡＭの同じアドレスに対して同時にＲＡＭチェックを実施するのを、一層確実に避けることができるからである。
【００３１】
次に、請求項９に記載のマイコンも、図１，２に例示したマイコン１０と同様に、２つのＣＰＵと、その両ＣＰＵによって共用されると共に、該各ＣＰＵが独立してアクセス可能なＲＡＭ及びＲＯＭとを備えている。そして、この請求項９のマイコンにおいて、各ＣＰＵは、ＲＡＭチェックを、ＲＡＭの検査対象領域の各アドレスについて定期的に実施すると共に、ＲＯＭの検査対象領域に記憶されているデータを順次読み出して該検査対象領域のデータが正常であるか否かを判定するＲＯＭチェックも定期的に実施する。
【００３２】
ここで特に、請求項９のマイコンにおいて、各ＣＰＵは、定期的に到来するメモリチェックタイミング毎に、ＲＡＭの検査対象領域の各アドレスについてのＲＡＭチェックと、上記ＲＯＭチェックとを交互に実施すると共に、一方のＣＰＵがＲＡＭチェックを実施するメモリチェックタイミングでは、他方のＣＰＵがＲＯＭチェックを実施し、前記一方のＣＰＵがＲＯＭチェックを実施するメモリチェックタイミングでは、前記他方のＣＰＵがＲＡＭチェックを実施する。
【００３３】
尚、各ＣＰＵが実施するＲＡＭチェックの検査対象領域は、ＲＡＭの全領域であっても良いし、ＲＡＭの領域のうちで各ＣＰＵが使用する領域（専用領域及び共用領域）のみであっても良い。同様に、各ＣＰＵが実施するＲＯＭチェックの検査対象領域は、ＲＯＭの全領域であっても良いし、ＲＯＭの領域のうちで各ＣＰＵが使用する領域のみであっても良い。
【００３４】
つまり、請求項９のマイコンでは、定期的なメモリチェックタイミング毎に、各ＣＰＵが、互いに異なるチェック（ＲＡＭチェックとＲＯＭチェックとの一方）を実施するようにしている。このため、両ＣＰＵがＲＡＭの同じアドレスに対して同時にＲＡＭチェックを実施するのを、確実に避けることができる。
【００３５】
その上、各ＣＰＵは、メモリチェックタイミング毎に、ＲＡＭチェックとＲＯＭチェックとの一方だけを実施するため、各メモリチェックタイミング毎のメモリチェック実施時間を短くすることができ、延いては、通常の制御処理を停止する時間が短くなる、という点で非常に有利である。
【００３６】
一方、請求項１０に記載のマイコンは、図１，２に例示したマイコン１０と同様に、２つのＣＰＵと、その両ＣＰＵによって共用されると共に、該各ＣＰＵが独立してアクセス可能なＲＡＭとを備えている。
そして、請求項１０のマイコンにおいて、各ＣＰＵは、予め定められたメモリチェック実施条件が成立すると、ＲＡＭの全領域の各アドレスについてＲＡＭチェックを実施するが、ＲＡＭの領域は、図１，２に例示したマイコン１０と同様に、一方のＣＰＵだけが使用する第１の領域と、他方のＣＰＵだけが使用する第２の領域と、両ＣＰＵが共通に使用する第３の領域とに分けられている。
【００３７】
そして特に、この請求項１０のマイコンでは、一方のＣＰＵがＲＡＭチェックを実施する上記３つの領域の順番と、他方のＣＰＵがＲＡＭチェックを実施する上記３つの領域の順番とが、異なっている。
このような請求項１０のマイコンによっても、一方のＣＰＵがＲＡＭチェックを実施し終えるまで他方のＣＰＵを待ち状態にする、といった処置を施すことなく、両ＣＰＵがＲＡＭの同じアドレスに対して同時にＲＡＭチェックを実施するのを避けることができ、両ＣＰＵによるメモリチェックを短時間で確実に実施し終えることができるようになる。
【００３８】
次に、請求項１１に記載のマイコンも、請求項１０のマイコンと同様に、２つのＣＰＵと、その両ＣＰＵによって共用されると共に、該各ＣＰＵが独立してアクセス可能なＲＡＭとを備えている。
そして、請求項１１のマイコンにおいて、各ＣＰＵは、予め定められたメモリチェック実施条件が成立すると、ＲＡＭの領域のうちで当該ＣＰＵだけが使用する専用領域と他のＣＰＵと共通に使用する共用領域との各アドレスについてＲＡＭチェックを実施するが、特に、一方のＣＰＵは、ＲＡＭの専用領域と共用領域とのうち、共用領域の方から先にＲＡＭチェックを実施し、他方のＣＰＵは、ＲＡＭの専用領域と共用領域とのうち、専用領域の方から先にＲＡＭチェックを実施する。
【００３９】
このような請求項１１のマイコンによっても、一方のＣＰＵがＲＡＭチェックを実施し終えるまで他方のＣＰＵを待ち状態にする、といった処置を施すことなく、両ＣＰＵがＲＡＭの同じアドレス（特に、共用領域の同じアドレス）に対して同時にＲＡＭチェックを実施するのを避けることができ、両ＣＰＵによるメモリチェックを短時間で確実に実施し終えることができるようになる。
【００４０】
【発明の実施の形態】
以下、本発明が適用された実施形態の２ＣＰＵマイコンについて、図面を用いて説明する。尚、以下に説明する各実施形態の２ＣＰＵマイコンの構成は、図１，２に示したマイコン１０と同じであるため、以下の説明において、各部の符号は、前述した図１，２と同じものを用いる。そして、各実施形態のマイコンにおいても、通常時には、一方のＣＰＵ１が、ＲＯＭ４の領域▲４▼又は▲６▼に格納されている通常制御処理用のプログラムを実行し、他方のＣＰＵ２が、ＲＯＭ４の領域▲５▼又は▲６▼に格納されている通常制御処理用のプログラムを実行している。
［第１実施形態］
第１実施形態の２ＣＰＵマイコンにおいて、各ＣＰＵ１，２は、予め定められたメモリチェック実施条件が成立すると、ＲＡＭ３の全領域（領域▲１▼，▲２▼，▲３▼）の各アドレスについてのＲＡＭチェック（以下、全ＲＡＭチェックという）と、ＲＯＭ４の全領域（領域▲４▼，▲５▼，▲６▼）を検査対象領域としたＲＯＭチェック（以下、全ＲＯＭチェックという）とを、図３（Ａ）に示す順序で夫々実施する。
【００４１】
即ち、図３（Ａ）に示す如く、メモリチェック実施条件が成立すると、一方のＣＰＵ１は、まず、ＲＡＭ３の全領域の各アドレスについてＲＡＭチェックを実施（全ＲＡＭチェックを実施）し、その次に、ＲＯＭ４の全領域に対するＲＯＭチェックを実施（全ＲＯＭチェックを実施）する。また、他方のＣＰＵ２は、まず、ＲＯＭ４の全領域に対するＲＯＭチェックを実施（全ＲＯＭチェックを実施）し、その次に、ＲＡＭ３の全領域の各アドレスについてＲＡＭチェックを実施（全ＲＡＭチェックを実施）する。
【００４２】
尚、メモリチェック実施条件としては、例えば、当該マイコンへのイニシャルクリアが解除された直後（つまり、本マイコンの動作開始直後）や、一定時間毎等、両ＣＰＵ１，２にて基本的に同時に成立したと判断される条件に設定されている。また、各ＣＰＵ１，２がＲＡＭチェックとＲＯＭチェックとを夫々行うためのチェック用プログラムもＲＯＭ４に格納されている。そして、これらのことは、後述する他の各実施形態についても同様である。
【００４３】
ここで、各ＣＰＵ１，２で行われる処理について、図４〜図６を用いて詳しく説明する。
まず、ＣＰＵ１は、メモリチェック実施条件（チェック条件）が成立すると、図４（Ａ）に示すルーチンの実行を開始する。
【００４４】
そして、図４（Ａ）に示すように、ＣＰＵ１は、まず、ステップ（以下単に「Ｓ」と記す）１１０にて、レジスタ値を退避（スタック）させ、続くＳ１２０にて、ＲＡＭ３の全領域の各アドレスについてＲＡＭチェックを行う。
このＳ１２０での全ＲＡＭ領域（領域▲１▼〜▲３▼）に対するＲＡＭチェックは、図５に示す手順で実施される。
【００４５】
即ち、図５に示すように、まずＳ２１０にて、検査対象アドレスを示すアドレスポインタに、ＲＡＭ３の先頭アドレスをセットする。
次にＳ２２０にて、アドレスポインタが示すアドレスに、所定値Ｘを書き込み、続くＳ２３０にて、アドレスポインタが示すアドレスの値を読み込む。つまり、Ｓ２３０では、上記Ｓ２２０で所定値Ｘを書き込んだアドレスから、データを読み出す。そして、続くＳ２４０にて、Ｓ２３０で読み出したデータの値が、上記Ｓ２２０で書き込んだ所定値Ｘと同じであるか否かを判定し、同じであれば、Ｓ２５０に進んで、ＲＡＭ３の同じアドレスについてＳ２２０〜Ｓ２４０の処理をＮ回（例えば４回）実施したか否かを判定する。
【００４６】
ここで、上記Ｓ２５０にて、Ｓ２２０〜Ｓ２４０の処理をＮ回実施していないと判定した場合には（Ｓ２５０：ＮＯ）、Ｓ２６０に進んで、所定値Ｘを変更し、その後、Ｓ２２０〜Ｓ２４０の処理を再度行う。つまり、Ｓ２２０〜Ｓ２６０の処理では、アドレスポインタが示す１つのアドレスについて、ＲＡＭチェックを、そのアドレスに書き込む所定値Ｘを各回毎に変更しながらＮ回実施するようにしている。
【００４７】
また、上記Ｓ２５０にて、Ｓ２２０〜Ｓ２４０の処理をＮ回実施したと判定した場合には（Ｓ２５０：ＹＥＳ）、Ｓ２７０に移行して、アドレスポインタを次のアドレス（即ち、１つ進んだアドレス）に変更すると共に、次からのＳ２２０でＲＡＭ３に書き込む所定値Ｘを、Ｎ通りのうちの最初の値に戻す。
【００４８】
そして、続くＳ２８０にて、アドレスポインタの示すアドレスがＲＡＭ３の最終アドレスを越えたか否かにより、ＲＡＭ３の最終アドレスまでＲＡＭチェックを終了したか否かを判定し、ＲＡＭ３の最終アドレスまでＲＡＭチェックを終了していないと判定した場合（即ち、アドレスポインタの示すアドレスがＲＡＭ３の最終アドレスを越えていないと判定した場合）には、Ｓ２２０に戻る。
【００４９】
また、上記Ｓ２８０にて、ＲＡＭ３の最終アドレスまでＲＡＭチェックを終了したと判定した場合には、Ｓ２９０に進んで、ＲＡＭチェックの結果が正常であったこと（即ち、ＲＡＭ３に対するデータの読み書きが正しくできるということ）を示す情報を、ＲＡＭ３或いは他のメモリに設定された検査結果記憶領域に出力する（書き込む）。
【００５０】
一方、上記Ｓ２４０にて、Ｓ２３０で読み出したデータの値が上記Ｓ２２０で書き込んだ所定値Ｘと同じではないと判定した場合には、Ｓ２９５に移行して、ＲＡＭチェックの結果が異常であったこと（即ち、ＲＡＭ３に対するデータの読み書きが正しくできないということ）を示す情報を、上記検査結果記憶領域に出力する（書き込む）。
【００５１】
そして、上記Ｓ２９０と上記Ｓ２９５との何れかの処理を行った後、当該ＲＡＭチェックのための処理を終了する。
次に、ＣＰＵ１は、図４（Ａ）に示すように、Ｓ１３０にて、ＲＯＭ４の全領域に対するＲＯＭチェックを実施する。
【００５２】
このＳ１３０での全ＲＯＭ領域（領域▲４▼〜▲６▼）に対するＲＯＭチェックは、図６に示す手順で実施される。
即ち、図６に示すように、まずＳ３１０にて、データの読み出し先アドレスを示すアドレスポインタに、ＲＯＭ４の先頭アドレスをセットする。また、この時、ＲＯＭ４内のデータが正常であるか否かを判定するためのＳＵＭ（サム）値を、０に初期化する。
【００５３】
次にＳ３２０にて、アドレスポインタが示すＲＯＭ４のアドレスからデータを読み出し、その読み出したデータの値を、ＳＵＭ値に加算する。
そして、続くＳ３３０にて、アドレスポインタを次のアドレス（即ち、１つ進んだアドレス）に変更する。
【００５４】
次にＳ３４０にて、アドレスポインタの示すアドレスがＲＯＭ４の最終アドレスを越えたか否かにより、ＲＯＭ４の最終アドレスまでデータの加算を終了したか否かを判定し、終了していなければ、Ｓ３２０に戻って、Ｓ３２０とＳ３３０の処理を再び行う。
【００５５】
また、上記Ｓ３４０にて、ＲＯＭ４の最終アドレスまでデータの加算を終了したと判定したならば、Ｓ３５０に進んで、その時点のＳＵＭ値（即ち、ＲＯＭ４の全領域のデータを各アドレス毎に加算した合計値）が、予め決められた所定値Ｙであるか否かを判定する。
【００５６】
そして、ＳＵＭ値が所定値Ｙであれば、Ｓ３６０に進んで、ＲＯＭチェックの結果が正常であったこと（即ち、ＲＯＭ４の全領域のデータが正常であるということ）を示す情報を、上記検査結果記憶領域に出力する（書き込む）。
また、上記Ｓ３５０にて、ＳＵＭ値が所定値Ｙではないと判定した場合には、Ｓ３６５に移行して、ＲＯＭチェックの結果が異常であったこと（即ち、ＲＯＭ４の全領域のデータが正常ではないということ）を示す情報を、上記検査結果記憶領域に出力する（書き込む）。
【００５７】
そして、上記Ｓ３６０と上記Ｓ３６５との何れかの処理を行った後、当該ＲＯＭチェックのための処理を終了する。
次に、ＣＰＵ１は、図４（Ａ）に示すように、Ｓ１４０にて、上記検査結果記憶領域に書き込まれている情報に基づき、ＲＡＭチェックの結果とＲＯＭチェックの結果とが両方共に正常（ＯＫ）であったか否かを判定し、正常であったと判定した場合には、続くＳ１５０にて、レジスタ値を復帰させた後、当該ルーチンを終了する。すると、ＣＰＵ１は、通常の制御処理の実行を開始或いは再開することとなる。
【００５８】
また、Ｓ１４０にて、ＲＡＭチェックの結果とＲＯＭチェックの結果との少なくとも一方が正常（ＯＫ）ではないと判定した場合には、Ｓ１６０に移行して、予め定められたフェイルセーフ用の異常時処理を実行する。
一方、ＣＰＵ２は、メモリチェック実施条件（チェック条件）が成立すると、図４（Ｂ）に示すルーチンの実行を開始する。尚、図４（Ｂ）において、図４（Ａ）と同じ内容の処理については、同一のステップ番号を付しているため、詳細な説明は省略する。
【００５９】
図４（Ｂ）に示すように、ＣＰＵ２は、まずＳ１１０にて、レジスタ値を退避（スタック）させ、続くＳ１３０にて、ＲＯＭ４の全領域に対するＲＯＭチェックを、図６に示した手順で実施する。
次に、Ｓ１２０にて、ＲＡＭ３の全領域に対するＲＡＭチェックを、図５に示した手順で実施する。
【００６０】
そして、ＣＰＵ２は、ＲＡＭチェックを実施し終えたら、次のＳ１４０にて、ＲＡＭ３或いは他のメモリに設定された検査結果記憶領域に図５，６の処理で書き込まれている情報に基づいて、ＲＡＭチェックの結果とＲＯＭチェックの結果とが両方共に正常（ＯＫ）であったか否かを判定し、正常であったと判定した場合には、続くＳ１５０にて、レジスタ値を復帰させた後、当該ルーチンを終了する。すると、ＣＰＵ２は、通常の制御処理の実行を開始或いは再開することとなる。
【００６１】
また、ＣＰＵ２は、上記Ｓ１４０にて、ＲＡＭチェックの結果とＲＯＭチェックの結果との少なくとも一方が正常（ＯＫ）ではないと判定した場合には、Ｓ１６０に移行して、予め定められたフェイルセーフ用の異常時処理を実行する。
以上のような第１実施形態のマイコンでは、メモリチェック実施条件が成立すると、各ＣＰＵ１，２が、上記図４（Ａ），（Ｂ）の各ルーチンを夫々実行することにより、各ＣＰＵ１，２によるＲＡＭチェックとＲＯＭチェックとが、図３（Ａ）のようなタイミングで実施されることとなる。
【００６２】
つまり、本第１実施形態のマイコンでは、両ＣＰＵ１，２が同時にＲＡＭチェックとＲＯＭチェックを実施するが、各ＣＰＵ１，２でＲＡＭチェックとＲＯＭチェックとの実施順序を逆にしている。
このため、各ＣＰＵ１，２のＲＡＭチェックの開始タイミングが、ＣＰＵ２がＲＯＭチェックを実施するのに要する時間だけずれることとなり、図１７に示した従来技術の如く、一方のＣＰＵがＲＡＭチェック（或いは更にＲＯＭチェック）を実施し終えるまで他方のＣＰＵを待ち状態にする、といった処置を施さなくても、両ＣＰＵ１，２がＲＡＭ３の同じアドレスに対して同時にＲＡＭチェックを実施するのを避けることができる。
【００６３】
よって、本第１実施形態のマイコンによれば、両ＣＰＵ１，２によるメモリチェック（ＲＡＭチェックとＲＯＭチェック）を短時間で確実に実施し終えることができる。
尚、図３（Ａ）の場合、両ＣＰＵ１，２がＲＡＭチェックのためにＲＡＭ３へ同時にアクセスしている期間があるが、ＲＡＭ３の全領域に対するＲＡＭチェック（全ＲＡＭチェック）は、ＲＡＭ３の先頭アドレスから順に最終アドレスまで行われるため、ＲＡＭ３の同一アドレスへの両ＣＰＵ１，２のアクセスが重なることはない。
【００６４】
また、図３（Ａ）は、全ＲＡＭチェックに要する時間よりも、ＲＯＭ４の全領域に対するＲＯＭチェック（全ＲＯＭチェック）に要する時間の方が短い場合を示しているが、図３（Ｂ）に示すように、全ＲＡＭチェックに要する時間よりも、全ＲＯＭチェックに要する時間の方が長い場合には、両ＣＰＵ１，２がＲＡＭチェックのためにＲＡＭ３へ同時にアクセスする期間が全く無くなるため、より確実である。
【００６５】
一方、上記第１実施形態に追加の変形例として、もし、２つのＣＰＵ１，２の動作クロックが同一でないのであれば、動作クロックが速い方のＣＰＵが、ＲＡＭチェックを先に実施するようにすれば良い。
例えば、ＣＰＵ２の動作クロックよりも、ＣＰＵ１の動作クロックの方が速いものとし、且つ、ＣＰＵ１がＲＡＭチェックを先に実施するようにしたならば、図３（Ａ）は図７のようになり有利である。つまり、ＲＡＭチェックを先に実施するＣＰＵ１が、より早期にＲＡＭチェックを実施し終えることとなるため、両ＣＰＵ１，２がＲＡＭ３の同じアドレスに対して同時にＲＡＭチェックを実施するのを、一層確実に避けることができる。
【００６６】
一方また、上記第１実施形態及びその変形例において、各ＣＰＵ１，２が実施するＲＯＭチェックの検査対象領域は、ＲＯＭ４の全領域でなく、各ＣＰＵ１，２が使用する領域（ＣＰＵ１では領域▲４▼，▲６▼；ＣＰＵ２では領域▲５▼，▲６▼）だけであっても良い。
［第２実施形態］
第２実施形態の２ＣＰＵマイコンでは、各ＣＰＵ１，２は、メモリチェック実施条件が成立すると、ＲＡＭ３の領域のうちで自分が使用する領域（自分だけが使用する専用領域と他のＣＰＵと共通に使用する共用領域）の各アドレスについてのＲＡＭチェック（以下、使用ＲＡＭチェックという）と、ＲＯＭ４の領域のうちで自分が使用する領域（自分だけが使用する専用領域と他のＣＰＵと共通に使用する共用領域）を検査対象領域としたＲＯＭチェック（以下、使用ＲＯＭチェックという）とを、図８に示す順序で夫々実施する。
【００６７】
即ち、図８に示す如く、メモリチェック実施条件が成立すると、一方のＣＰＵ１は、まず、ＲＡＭ３の専用領域▲１▼及び共用領域▲３▼の各アドレスについてＲＡＭチェックを順次実施（使用ＲＡＭチェックを実施）し、その次に、ＲＯＭ４の専用領域▲４▼及び共用領域▲６▼に対するＲＯＭチェックを実施（使用ＲＯＭチェックを実施）する。また、他方のＣＰＵ２は、まず、ＲＯＭ４の専用領域▲５▼及び共用領域▲６▼に対するＲＯＭチェックを実施（使用ＲＯＭチェックを実施）し、その次に、ＲＡＭ３の専用領域▲２▼及び共用領域▲３▼の各アドレスについてＲＡＭチェックを順次実施（使用ＲＡＭチェックを実施）する。
【００６８】
具体的に説明すると、ＣＰＵ１は、メモリチェック実施条件が成立すると、前述した図４（Ａ）と同様のルーチンの実行を開始するが、そのルーチンのＳ１２０にて、ＲＡＭチェックを、ＲＡＭ３の全領域についてではなく、領域▲１▼の先頭アドレスから最終アドレスまで行った後、領域▲３▼の先頭アドレスから最終アドレスまで行う。そして、次のＳ１３０にて、ＲＯＭ４の全領域に対してではなく、ＲＯＭ４の領域▲４▼及び▲６▼に対するＲＯＭチェックを行う。
【００６９】
同様に、ＣＰＵ２は、メモリチェック実施条件が成立すると、前述した図４（Ｂ）と同様のルーチンの実行を開始するが、そのルーチンのＳ１３０にて、ＲＯＭ４の全領域に対してではなく、ＲＯＭ４の領域▲５▼及び▲６▼に対するＲＯＭチェックを行う。そして、次のＳ１２０にて、ＲＡＭチェックを、ＲＡＭ３の全領域についてではなく、領域▲２▼の先頭アドレスから最終アドレスまで行った後、領域▲３▼の先頭アドレスから最終アドレスまで行う。
【００７０】
つまり、第２実施形態のマイコンでは、各ＣＰＵ１，２が、ＲＡＭ３とＲＯＭ４の領域のうち、自分が使用する領域（ＣＰＵ１では▲１▼，▲３▼と▲４▼，▲６▼；ＣＰＵ２では▲２▼，▲３▼と▲５▼，▲６▼）だけをチェックするようにしており、その点においてのみ、第１実施形態のマイコンと異なっている。
【００７１】
そして、この第２実施形態のマイコンにおいても、両ＣＰＵ１，２が同時にＲＡＭチェックとＲＯＭチェックを実施するが、各ＣＰＵ１，２でＲＡＭチェックとＲＯＭチェックとの実施順序を逆にしているため、各ＣＰＵ１，２のＲＡＭチェックの開始タイミングが、ＣＰＵ２がＲＯＭチェックを実施するのに要する時間だけずれることとなり、図１７に示した従来技術の如く、一方のＣＰＵがＲＡＭチェック（或いは更にＲＯＭチェック）を実施し終えるまで他方のＣＰＵを待ち状態にする、といった処置を施さなくても、両ＣＰＵ１，２がＲＡＭ３の同じアドレス（特に、共用領域▲３▼の同じアドレス）に対して同時にＲＡＭチェックを実施するのを避けることができる。よって、両ＣＰＵ１，２によるメモリチェックを短時間で確実に実施し終えることができるようになる。
【００７２】
但し、本第２実施形態では、一般には、各ＣＰＵ１，２がチェックするＲＡＭ３及びＲＯＭ４の領域の大きさが互いに異なることとなるため、ＣＰＵ１がＲＡＭ３の領域▲１▼についてのＲＡＭチェックを実施するのに要する時間と、ＣＰＵ２がＲＯＭ４の領域▲５▼，▲６▼に対するＲＯＭチェックとＲＡＭ３の領域▲２▼についてのＲＡＭチェックとを実施するのに要する時間とが、同じにならないように注意しておく必要はある。
【００７３】
また、上記第２実施形態に追加の変形例として、２つのＣＰＵ１，２の動作クロックが同一であると共に、ＲＡＭ３の領域のうち、各ＣＰＵ１，２の専用領域▲１▼，▲２▼の大きさに違いがあるのならば、そのＲＡＭ３の専用領域が小さい方のＣＰＵが、ＲＡＭチェックを先に実施するようにすれば良い。
【００７４】
例えば、ＲＡＭ３の領域▲２▼よりも領域▲１▼の方が小さい場合には、ＣＰＵ１がＲＡＭチェックを先に実施するように設定することで、図８は図９のようになり有利である。つまり、ＲＡＭチェックを先に実施するＣＰＵ１が、より早期にＲＡＭチェックを実施し終えることとなり、両ＣＰＵ１，２がＲＡＭ３の同じアドレスに対して同時にＲＡＭチェックを実施するのを、一層確実に避けることができる。
【００７５】
一方また、上記第２実施形態及びその変形例において、各ＣＰＵ１，２が実施するＲＯＭチェックの検査対象領域は、ＲＯＭ４の全領域であっても良い。
［第３実施形態］
次に、第３実施形態の２ＣＰＵマイコンは、第２実施形態のマイコンと比較して、以下の点が異なっている。
【００７６】
即ち、まず、ＣＰＵ１は、メモリチェック実施条件が成立すると、前述した図４（Ａ）と同様の図１０（Ａ）に示すルーチンの実行を開始すると共に、第２実施形態と同様に、そのルーチンのＳ１２０にて、ＲＡＭ３の専用領域▲１▼及び共用領域▲３▼の各アドレスについてＲＡＭチェックを順次実施するが、そのＲＡＭチェックを実施し終えると、そのこと（つまり、ＲＡＭチェックを実施し終えたこと）を、フラグのセット等によって他方のＣＰＵ２に通知するようになっている。
【００７７】
そして、ＣＰＵ２は、メモリチェック実施条件が成立すると、前述した図４（Ｂ）と同様の図１０（Ｂ）に示すルーチンの実行を開始すると共に、第２実施形態と同様に、そのルーチンのＳ１３０にて、ＲＯＭ４の領域▲５▼及び▲６▼に対するＲＯＭチェックを行うが、図１０（Ｂ）のＳ１２５に示す如く、Ｓ１３０でのＲＯＭチェックを終えても、ＣＰＵ１がＲＡＭチェックを実施し終えたことを上記フラグ等による通知によって確認するまでは、ＲＡＭチェック（この例では、ＲＡＭ３の領域▲２▼及び▲３▼についてのＲＡＭチェック）を開始するのを待つようになっている。尚、図１０において、図４と同様の処理については、同一のステップ番号を付しているため、説明は省略する。
【００７８】
このような第３実施形態のマイコンによれば、図１１に例示するように、仮に、両ＣＰＵ１，２のメモリチェックの開始タイミングがずれて、一方のＣＰＵ１がＲＡＭチェックを開始するタイミングよりも早く、他方のＣＰＵ２がＲＯＭチェックを開始したとしても、その他方のＣＰＵ２は、必ず、ＣＰＵ１がＲＡＭチェックを実施し終えてから、自分側のＲＡＭチェックを開始するようになり、両ＣＰＵ１，２がＲＡＭ３の同じアドレスに対して同時にＲＡＭチェックを実施するのを、確実に避けることができる。
【００７９】
尚、上記第３実施形態において、ＣＰＵ１は、ＲＡＭチェックを専用領域▲１▼→共用領域▲３▼の順に実施しているため、ＣＰＵ１は、ＲＡＭ３の共用領域▲３▼の各アドレスについてＲＡＭチェックを実施し終えたことを、ＣＰＵ２に通知している、とも言える。そして、ＣＰＵ２は、ＲＯＭチェックを終えても、ＣＰＵ１がＲＡＭ３の共用領域▲３▼の各アドレスについてＲＡＭチェックを実施し終えたことを上記通知によって確認するまでは、ＲＡＭチェックを開始するのを待つようになっている、とも言える。
【００８０】
一方、上記第３実施形態において、各ＣＰＵ１，２が実施するＲＯＭチェックの検査対象領域は、ＲＯＭ４の全領域であっても良い。
また、上記第３実施形態の手法は、前述した第１実施形態及びその変形例についても、全く同様に適用することができる。つまり、第１実施形態及びその変形例において、ＣＰＵ１は、図４（Ａ）のＳ１２０にて、ＲＡＭ３の全領域の各アドレスについてＲＡＭチェックを実施し終えると、そのことを、フラグのセット等によって他方のＣＰＵ２に通知し、また、ＣＰＵ２は、図４（Ｂ）のＳ１３０にて、ＲＯＭ４の全領域に対するＲＯＭチェックを終えても、ＣＰＵ１がＲＡＭチェックを実施し終えたことを上記フラグ等による通知によって確認するまでは、ＲＡＭチェック（この例では全ＲＡＭチェック）を開始するのを待つようにすれば良い。
［第４実施形態］
次に、第４実施形態の２ＣＰＵマイコンは、第３実施形態のマイコンと比較して、以下の点が異なっている。
【００８１】
まず、図１２に示すように、ＣＰＵ１は、図１０（Ａ）のＳ１２０にて、ＲＡＭチェックを共用領域▲３▼→専用領域▲１▼の順に実施する。
そして更に、ＣＰＵ１は、共用領域▲３▼の各アドレスについてＲＡＭチェックを実施し終えた時点で、そのこと（つまり、共用領域▲３▼のＲＡＭチェックを実施し終えたこと）を、フラグのセット等によって他方のＣＰＵ２に通知する。
【００８２】
また、ＣＰＵ２は、ＲＯＭチェックを終えても、ＣＰＵ１がＲＡＭ３の共用領域（共用ＲＡＭ）▲３▼の各アドレスについてＲＡＭチェックを実施し終えたことを上記通知によって確認するまでは、ＲＡＭチェックを開始するのを待つようになっている。
【００８３】
このような第４実施形態のマイコンによっても、第３実施形態のマイコンと同様の効果を得ることができる。つまり、図１２に例示するように、仮に、両ＣＰＵ１，２のメモリチェックの開始タイミングがずれて、一方のＣＰＵ１がＲＡＭチェックを開始するタイミングよりも早く、他方のＣＰＵ２がＲＯＭチェックを開始したとしても、その他方のＣＰＵ２は、必ず、ＣＰＵ１がＲＡＭの共用領域▲３▼の各アドレスについてＲＡＭチェックを実施し終えてから、ＲＡＭチェックを開始するようになり、両ＣＰＵ１，２がＲＡＭ３の同じアドレスに対して同時にＲＡＭチェックを実施するのを、確実に避けることができるからである。
【００８４】
しかも、第４実施形態のマイコンでは、ＣＰＵ１が、ＲＡＭ３の専用領域▲１▼と共用領域▲３▼とのうち、共用領域▲３▼の方から先にＲＡＭチェックを実施するようにしているため、他方のＣＰＵ２がＲＡＭチェックの開始を待たなければならなくなる場合を極力無くすことができ、また、ＲＡＭチェックの開始を待ったとしても、その待ち時間を極力小さくすることができる。
【００８５】
尚、前述した第２実施形態及びその変形例においても、ＣＰＵ１が共用領域▲３▼から先にＲＡＭチェックを実施するようにプログラムを設定すれば、そのＣＰＵ１は、より早期にＲＡＭの共用領域▲３▼についてＲＡＭチェックを実施し終えることとなるため、両ＣＰＵ１，２がＲＡＭ３の同じアドレスに対して同時にＲＡＭチェックを実施するのを、一層確実に避けることができ有利である。
【００８６】
また、上記第４実施形態において、各ＣＰＵ１，２が実施するＲＯＭチェックの検査対象領域は、ＲＯＭ４の全領域であっても良い。
［第５実施形態］
次に、第５実施形態の２ＣＰＵマイコンでは、図１３に示すように、各ＣＰＵ１，２は、定期的に到来するメモリチェックタイミング（以下、定期チェックタイミングという）毎に、全ＲＡＭチェックと全ＲＯＭチェックとを交互に実施すると共に、一方のＣＰＵ１が全ＲＡＭチェックを実施する定期チェックタイミングでは、他方のＣＰＵ２が全ＲＯＭチェックを実施し、一方のＣＰＵ１が全ＲＯＭチェックを実施する定期チェックタイミングでは、他方のＣＰＵ２が全ＲＡＭチェックを実施するようになっている。
【００８７】
つまり、本第５実施形態のマイコンでは、定期チェックタイミング毎に、各ＣＰＵ１，２が、互いに異なるチェック（ＲＡＭチェックとＲＯＭチェックとの一方）を実施するようにしている。
このため、両ＣＰＵ１，２がＲＡＭ３の同じアドレスに対して同時にＲＡＭチェックを実施するのを、確実に避けることができる。その上、各ＣＰＵ１，２は、定期チェックタイミング毎に、ＲＡＭチェックとＲＯＭチェックとの一方だけを実施するため、各定期チェックタイミング毎のメモリチェック実施時間を短くすることができ、延いては、通常の制御処理を停止しなければならない時間が短くなる、という点で非常に有利である。
【００８８】
尚、本第５実施形態において、各ＣＰＵ１，２は、全ＲＯＭチェックに代えて、使用ＲＯＭチェックを実施するようにしても良い。
［第６実施形態］
次に、第６実施形態の２ＣＰＵマイコンでは、図１４に示すように、各ＣＰＵ１，２は、定期チェックタイミング毎に、使用ＲＡＭチェックと使用ＲＯＭチェックとを交互に実施すると共に、一方のＣＰＵ１が使用ＲＡＭチェックを実施する定期チェックタイミングでは、他方のＣＰＵ２が使用ＲＯＭチェックを実施し、一方のＣＰＵ１が使用ＲＯＭチェックを実施する定期チェックタイミングでは、他方のＣＰＵ２が使用ＲＡＭチェックを実施するようになっている。
【００８９】
つまり、本第６実施形態のマイコンにおいても、第５実施形態のマイコンと同様に、定期チェックタイミング毎に、各ＣＰＵ１，２が、互いに異なるチェックを実施するようにしている。このため、第５実施形態と全く同じ効果を得ることができる。
【００９０】
尚、本第６実施形態において、各ＣＰＵ１，２は、使用ＲＯＭチェックに代えて、全ＲＯＭチェックを実施するようにしても良い。
［第７実施形態］
次に、第７実施形態の２ＣＰＵマイコンにおいて、各ＣＰＵ１，２は、予め定められたメモリチェック実施条件が成立すると、全ＲＡＭチェックと全ＲＯＭチェックとを、図１５に示す順序で夫々実施する。
【００９１】
即ち、メモリチェック実施条件が成立すると、一方のＣＰＵ１は、まず、ＲＡＭチェックを領域▲１▼→領域▲２▼→領域▲３▼の順に実施し、その次に、全ＲＯＭチェックを実施する。つまり、ＣＰＵ１は、第１実施形態と同様の順序で全ＲＡＭチェックと全ＲＯＭチェックとを実施する。
【００９２】
これに対して、他方のＣＰＵ２は、まず、ＲＡＭチェックを領域▲３▼→領域▲１▼→領域▲２▼の順に実施し、その次に、全ＲＯＭチェックを実施する。
つまり、第７実施形態のマイコンでは、両ＣＰＵ１，２がＲＡＭチェックから開始しているが、一方のＣＰＵ１がＲＡＭチェックを実施する領域▲１▼〜▲３▼の順番と、他方のＣＰＵ２がＲＡＭチェックを実施する領域▲１▼〜▲３▼の順番とを、相違させている。
【００９３】
このような第７実施形態のマイコンによっても、一方のＣＰＵがＲＡＭチェックを実施し終えるまで他方のＣＰＵを待ち状態にする、といった処置を施すことなく、両ＣＰＵ１，２がＲＡＭ３の同じアドレスに対して同時にＲＡＭチェックを実施するのを避けることができ、両ＣＰＵに１，２よるメモリチェックを短時間で確実に実施し終えることができるようになる。
【００９４】
尚、本実施形態では、ＲＡＭ３の領域▲１▼〜▲３▼のうち、領域▲１▼が第１の領域に相当し、領域▲２▼が第２の領域に相当し、領域▲３▼が第３領域に相当している。
また、ＣＰＵ２がＲＡＭチェックを実施する領域の順番は、ＣＰＵ１と異なっていれば良く、例えば図１５にて（）内に示すように、ＣＰＵ２がＲＡＭチェックを領域▲２▼→領域▲３▼→領域▲１▼の順に実施するようにしても良い。
【００９５】
一方、第７実施形態のマイコンにおいて、各ＣＰＵ１，２は、全ＲＯＭチェックに代えて、使用ＲＯＭチェックを実施するようにしても良いし、また、ＲＯＭチェックを実施しなくても良い。
［第８実施形態］
次に、第８実施形態の２ＣＰＵマイコンにおいて、各ＣＰＵ１，２は、予め定められたメモリチェック実施条件が成立すると、使用ＲＡＭチェックと使用ＲＯＭチェックとを、図１６に示す順序で夫々実施する。
【００９６】
即ち、メモリチェック実施条件が成立すると、一方のＣＰＵ１は、まず、ＲＡＭチェックを領域▲３▼→領域▲１▼の順に実施し、その次に、使用ＲＯＭチェックを実施する。これに対して、他方のＣＰＵ２は、まず、ＲＡＭチェックを領域▲２▼→領域▲３▼の順に実施し、その次に、使用ＲＯＭチェックを実施する。
【００９７】
つまり、第８実施形態のマイコンにおいても、第７実施形態のマイコンと同様に、両ＣＰＵ１，２がＲＡＭチェックから開始しているが、一方のＣＰＵ１が共用領域▲３▼から先にＲＡＭチェックを実施し、他方のＣＰＵ２が専用領域▲２▼から先にＲＡＭチェックを実施することで、各ＣＰＵ１，２がＲＡＭチェックを実施する領域の順番を相違させている。
【００９８】
このため、本第８実施形態のマイコンによっても、一方のＣＰＵがＲＡＭチェックを実施し終えるまで他方のＣＰＵを待ち状態にする、といった処置を施すことなく、両ＣＰＵ１，２がＲＡＭ３の同じアドレスに対して同時にＲＡＭチェックを実施するのを避けることができ、両ＣＰＵに１，２よるメモリチェックを短時間で確実に実施し終えることができるようになる。
【００９９】
尚、ＣＰＵ１がＲＡＭチェックを領域▲１▼→領域▲３▼の順に実施し、ＣＰＵ２がＲＡＭチェックを領域▲３▼→領域▲２▼の順に実施するようにしても良い。
また、第８実施形態のマイコンにおいて、各ＣＰＵ１，２は、使用ＲＯＭチェックに代えて、全ＲＯＭチェックを実施するようにしても良いし、また、ＲＯＭチェックを実施しなくても良い。
【０１００】
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。
一例を挙げると、ＲＡＭ３における各領域▲１▼〜▲３▼の配置順序や、ＲＯＭ４における各領域▲４▼〜▲６▼の配置順序は、図２に示したものに限らず、例えば、ＲＡＭ３の先頭から順に、共用領域▲３▼，ＣＰＵ１用領域▲１▼，ＣＰＵ２用領域▲２▼となっていても良い。
【図面の簡単な説明】
【図１】  ＣＰＵを２つ備えたマイコンの構成を表す構成図である。
【図２】  各ＣＰＵが通常時にアクセスするＲＡＭとＲＯＭの各領域を表す説明図である。
【図３】  第１実施形態のマイコンにおける各ＣＰＵによるＲＡＭチェックとＲＯＭチェックとの実施タイミングを表すタイムチャートである。
【図４】  第１実施形態のマイコンにおける各ＣＰＵがメモリチェック実施条件の成立時に実行するチェック用ルーチンを表すフローチャートである。
【図５】  第１実施形態の各ＣＰＵが実施するＲＡＭチェックの処理を表すフローチャートである。
【図６】  第１実施形態の各ＣＰＵが実施するＲＯＭチェックの処理を表すフローチャートである。
【図７】  第１実施形態の変形例を説明する説明図である。
【図８】  第２実施形態のマイコンにおける各ＣＰＵによるＲＡＭチェックとＲＯＭチェックとの実施タイミングを表すタイムチャートである。
【図９】  第２実施形態の変形例を説明する説明図である。
【図１０】  第３実施形態のマイコンにおける各ＣＰＵがメモリチェック実施条件の成立時に実行するチェック用ルーチンを表すフローチャートである。
【図１１】  第３実施形態の作用を説明する説明図である。
【図１２】  第４実施形態のマイコンを説明する説明図である。
【図１３】  第５実施形態のマイコンにおける各ＣＰＵによるＲＡＭチェックとＲＯＭチェックとの実施タイミングを表すタイムチャートである。
【図１４】  第６実施形態のマイコンにおける各ＣＰＵによるＲＡＭチェックとＲＯＭチェックとの実施タイミングを表すタイムチャートである。
【図１５】  第７実施形態のマイコンにおける各ＣＰＵによるＲＡＭチェックとＲＯＭチェックとの実施タイミングを表すタイムチャートである。
【図１６】  第８実施形態のマイコンにおける各ＣＰＵによるＲＡＭチェックとＲＯＭチェックとの実施タイミングを表すタイムチャートである。
【図１７】  従来技術及びその問題を説明する説明図である。
【符号の説明】
１，２…ＣＰＵ、３…ＲＡＭ、４…ＲＯＭ、５，６…バス、１０…マイコン（マイクロコンピュータ）
【図１】
0004644980.tif 000002
【図２】
0004644980.tif 000003
【図３】
0004644980.tif 000004
【図４】
0004644980.tif 000005
【図５】
0004644980.tif 000006
【図６】
0004644980.tif 000007
【図７】
0004644980.tif 000008
【図８】
0004644980.tif 000009
【図９】
0004644980.tif 000010
【図１０】
0004644980.tif 000011
【図１１】
0004644980.tif 000012
【図１２】
0004644980.tif 000013
【図１３】
0004644980.tif 000014
【図１４】
0004644980.tif 000015
【図１５】
0004644980.tif 000016
【図１６】
0004644980.tif 000017
【図１７】
0004644980.tif 000018