(57)【特許請求の範囲】
【請求項１】
アドレス毎にデータを記憶するメモリと、該メモリにアクセスして動作するプロセッサと、を同一半導体チップ内に備えたワンチップマイクロコントローラを２つ備え、
各ワンチップマイクロコントローラは、互いに同期して動作する構成とし、
前記各ワンチップマイクロコントローラのプロセッサは、
前記メモリの診断を行うアドレスに第１チェックデータを書き込んだ後、前記診断アドレスと異なる少なくとも１つのアドレスに前記第１チェックデータと異なる第２チェックデータを書き込むチェックデータ書き込み手段と、
前記診断アドレスに書き込まれているチェックデータを読み出すチェックデータ読み出し手段と、
該チェックデータ読み出し手段で読み出したチェックデータが、前記診断アドレスに書き込んだ第１チェックデータと一致するか否かを判定し、一致のときに正常、不一致のときに異常であると判定する判定手段と、
前記判定手段によって一致と判定されたとき、前記診断アドレスから読み出したチェックデータ及び前記診断アドレスに記憶されていた本来のデータを他方の前記ワンチップマイクロコントローラへ出力する出力手段と、
他方の出力手段から入力された前記チェックデータ及び前記本来のデータを、自身の前記診断アドレスから読み出したチェックデータ及び自身の前記診断アドレスに記憶されていた本来のデータとそれぞれ照合し、一致のときに正常、不一致のときに異常であると判定する照合手段と、
を備えて構成したことを特徴とするワンチップマイクロコントローラシステム。
【請求項２】
前記チェックデータ書き込み手段は、前記診断アドレスのいずれか１つのビットを反転させたアドレスに前記第２チェックデータを書き込む構成としたことを特徴とする請求項１に記載のワンチップマイクロコントローラシステム。
【請求項３】
前記チェックデータ書き込み手段は、前記診断アドレスの最下位ビットから最上位ビットまでを１ビットずつ反転させた複数のアドレスに前記第２チェックデータを書き込む構成としたことを特徴とする請求項２に記載のワンチップマイクロコントローラシステム。
【請求項４】
前記第１チェックデータに基づく判定結果が正常であると判定された後、前記診断アドレスと前記少なくとも１つのアドレスとに書き込むチェックデータを入れ替えて書き込み、前記診断アドレスからチェックデータを読み出し、読み出したチェックデータが前記第２チェックデータと一致するか否かを判定する構成としたことを特徴とする請求項１〜３のいずれか１つに記載のワンチップマイクロコントローラシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、同一半導体チップ内にプロセッサとメモリとを備えたワンチップマイクロコントローラを２つ備えたワンチップマイクロコントローラシステムに関し、特に、メモリの状態を正確に診断できるワンチップマイクロコントローラシステムに関する。
【０００２】
【従来の技術】
従来、鉄道交通等の高い安全性が要求されるシステムの制御を行う場合、例えばバス同期２重系装置を使用してシステムの信頼性を高めることが行われている。
前記バス同期２重系装置は、例えば、外部メモリ等がバス接続された互いに同期して動作する２つのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、前記ＣＰＵと外部メモリとを繋ぐバスに接続される１つのフェールセーフ照合回路と、を備えて構成される。
【０００３】
このような構成のバス同期２重系装置における外部メモリの故障診断は、ＣＰＵによりメモリチェック用データを外部メモリに対して書き込み、読み出しすることによって行われる。すなわち、ＣＰＵが外部メモリに対してメモリチェック用データの読み書きを行うときにフェールセーフ照合回路が各系のバスに流れる前記メモリチェック用データを取り込み、取り込んだ各系のデータが一致していれば外部メモリは正常、不一致ならば外部メモリは異常であると判定する。
【０００４】
【発明が解決しようとする課題】
ところで、近年のＬＳＩ技術の発展により、半導体回路の高集積化が可能となり、ＣＰＵ、メモリ及び各種周辺機能を１チップ内に集積化したワンチップマイクロコントローラが実現できるようになった。
しかしながら、前記ワンチップマイクロコントローラでは、ＣＰＵとメモリとが同一チップ内に形成されるため、バスに流れるデータを直接取り出すことができず、上述のようなバス同期２重系装置で適用される方法でメモリの故障診断を行うことができない。したがって、例えばＣＰＵが指定したアドレスにアクセスできず、それ以外のアドレスにアクセスしてしまうような場合でもその様な故障を発見できなかった。
【０００５】
本発明は、上記の事情に鑑みてなされたもので、メモリの正常、異常を正確に診断できるワンチップマイクロコントローラシステムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
このため、請求項１に係る発明は、アドレス毎にデータを記憶するメモリと、該メモリにアクセスして動作するプロセッサと、を同一半導体チップ内に備えたワンチップマイクロコントローラを２つ備え、各ワンチップマイクロコントローラは、互いに同期して動作する構成とし、前記各ワンチップマイクロコントローラのプロセッサは、前記メモリの診断を行うアドレスに第１チェックデータを書き込んだ後、前記診断アドレスと異なる少なくとも１つのアドレスに前記第１チェックデータと異なる第２チェックデータを書き込むチェックデータ書き込み手段と、前記診断アドレスに書き込まれているチェックデータを読み出すチェックデータ読み出し手段と、該チェックデータ読み出し手段で読み出したチェックデータが、前記診断アドレスに書き込んだ第１チェックデータと一致するか否かを判定し、一致のときに正常、不一致のときに異常であると判定する判定手段と、前記判定手段によって一致と判定されたとき、前記診断アドレスから読み出したチェックデータ及び前記診断アドレスに記憶されていた本来のデータを他方の前記ワンチップマイクロコントローラへ出力する出力手段と、他方の出力手段から入力された前記チェックデータ及び前記本来のデータを、自身の前記診断アドレスから読み出したチェックデータ及び自身の前記診断アドレスに記憶されていた本来のデータとそれぞれ照合し、一致のときに正常、不一致のときに異常であると判定する照合手段と、を備えて構成した。
【０００７】
かかる構成では、プロセッサがメモリの診断アドレスに正しくアクセスできていない場合、診断アドレスから読み出したチェックデータが診断アドレスに書き込んだ第１チェックデータと一致しなくなる。また、自身で読み出したチェックデータと他方で読み出したチェックデータとを照合することで他方のプロセッサの診断機能が正常であるか否かを確認できるようになる。また、自身の診断アドレスの本来のデータと他方の診断アドレスの本来のデータとを照合することでプロセッサがお互いに同じアドレスを診断しているか否かを確認できるようになる。また、請求項２に記載の発明では、前記チェックデータ書き込み手段は、前記診断アドレスのいずれか１つのビットを反転させたアドレスに前記第２チェックデータを書き込む構成とした。
【０００８】
かかる構成では、メモリのアドレスを指定する隣り合うアドレスラインのうち予め定められた２本のアドレスラインが接触した場合等にプロセッサが他のアドレスを診断アドレスと見誤ってアクセスしてしまうようなメモリの異常を発見できるようになる。
また、請求項３に記載の発明では、前記チェックデータ書き込み手段は、前記診断アドレスの最下位ビットから最上位ビットまでを１ビットずつ反転させた複数のアドレスに前記第２チェックデータを書き込む構成とした。
【０００９】
かかる構成では、メモリのアドレスを指定する隣り合うアドレスラインのうちいずれか２本のアドレスラインが接触した場合等にプロセッサが他のアドレスを診断アドレスと見誤ってアクセスしてしまうようなメモリの異常を発見できるようになる。
また、請求項４に記載の発明では、前記第１チェックデータに基づく判定結果が正常であると判定された後、前記診断アドレスと前記少なくとも１つのアドレスに書き込むチェックデータを入れ替えて書き込み、前記診断アドレスからチェックデータを読み出し、読み出したチェックデータが前記第２チェックデータと一致するか否かを判定する構成とした。
【００１０】
かかる構成では、プロセッサは、診断アドレスに第１チェックデータを書き込んだ後、当該診断アドレスと異なる少なくとも１つのアドレスに第２チェックデータを書き込む。そして、チェックアドレスから読み出したチェックデータが第１チェックデータであるか否かを判定する。次に、プロセッサは、診断アドレスに第２チェックデータを書き込んだ後、前記少なくとも１つのアドレスに第１チェックデータを書き込む。そして、チェックアドレスから読み出したチェックデータが第２チェックデータであるか否かを判定する。
【００１３】
【発明の実施の形態】
以下に本発明の実施の形態を図面に基づいて説明する。図１は、本発明に係るワンチップマイクロコントローラシステムに用いるワンチップマイクロコントローラの一実施形態を示したブロック図である。図１において、ワンチップマイクロコントローラ１は、論理部２を備えたプロセッサ３と、データをアドレス毎に記憶するメモリとしてのＲＡＭ４と、外部装置５とデータの授受を行うためのＩ／Ｏポート６と、を同一半導体チップ内に備えて構成される。
【００１４】
また、論理部２、ＲＡＭ４及びＩ／Ｏポート６は、内部バス７によって電気的に接続されている。
前記論理部２は、ＲＡＭ４にアクセスしてＲＡＭ４に記憶されているデータの処理を行ったりしてコントローラ１の動作を制御すると共に、後述するようにしてＲＡＭ４の診断を行う。
【００１５】
図２は、診断される前のＲＡＭ４の概念図であり、図３は診断中のＲＡＭ４の概念図である。
例えばＲＡＭ４は、図２及び図３に示すように、８ビットのデータが書き込めるアドレス００００ｂ〜１１１１ｂを有するものとする。このようなＲＡＭ４において例えばアドレス０１１０ｂを診断する場合の論理部２の動作について図３及び図４、図５のフローチャートを参照しながら説明する。
【００１６】
ステップ１（図中Ｓ１で示し、以下同様とする）において、診断アドレス０１１０ｂにアドレスデータが書き込まれているか否かを判定する。判定の結果、ＹＥＳの場合は、ステップ２の動作に進み、ＮＯの場合は、ステップ２の動作を行わずにステップ３の動作に進む。
ステップ２において、診断アドレス０１１０ｂのアドレスデータを例えば待避用アドレス１０１０ｂに移す。
【００１７】
ステップ３において、診断アドレス０１１０ｂに第１チェックデータ５５Ｈを書き込む（Ｈは１６進数を表す）。
ステップ４において、診断アドレス０１１０ｂの最下位ビットを反転させた反転アドレス０１１１ｂにアドレスデータが書き込まれているか否かを判定する。判定の結果、ＹＥＳの場合はステップ５の動作に進み、ＮＯの場合はステップ５の動作を行わずにステップ６の動作に進む。
【００１８】
ステップ５において、反転アドレス０１１１ｂに書き込まれているアドレスデータを例えば待避用アドレス１００１ｂに移す。
ステップ６において、反転アドレス０１１１ｂに第２チェックデータＡＡＨを書き込む。
ステップ７〜ステップ１５において、診断アドレス０１１０ｂの最下位から２ビット目を反転させた反転アドレス０１００ｂ、３ビット目を反転させた反転アドレス００１０ｂ及び最上位ビットを反転させた反転アドレス１１１０ｂについてそれぞれステップ４〜ステップ６と同じ動作を行う。
【００１９】
このように、ステップ３、ステップ６、ステップ９、ステップ１２及びステップ１５がチェックデータ書き込み手段の機能を奏する。
ステップ１６において、診断アドレス０１１０ｂに書き込まれているチェックデータを読み出す。
このように、ステップ１６がチェックデータ読み出し手段の機能を奏する。
【００２０】
ステップ１７において、待避用アドレスに移したアドレスデータを元のアドレスに書き戻す。
ステップ１８において、ステップ１６で読み出したチェックデータが第１チェックデータ５５Ｈであるか否かを判定する。
このように、ステップ１８が判定手段の機能を奏する。
【００２１】
ステップ１８の動作で読み出したチェックデータが５５Ｈでなかった場合、ステップ１９において、ＲＡＭ４が異常であると判定し、コントローラ１を安全側に動作させた後、全ての処理を停止する。
ステップ１８の動作で読み出したチェックデータが５５ＨでありＲＡＭ４が正常であると判定した場合は、診断アドレス０１１０ｂに書き込むデータを第２チェックデータＡＡＨ、反転アドレス０１１１ｂ、０１００ｂ、００１０ｂ、１１１０ｂに書き込むデータを第１チェックデータ５５Ｈとしてアドレス０１１０ｂの診断動作を行う。尚、この動作はステップ１〜１９において、第１チェックデータ５５Ｈを第２チェックデータＡＡＨ、第２チェックデータＡＡＨを第１チェックデータ５５Ｈに入れ替えただけであるので動作フローチャートを省略する。
【００２２】
以降、第１チェックデータ及び第２チェックデータにより同様にしてＲＡＭ４内の全てのアドレスについて診断を行う。
以上のように、診断アドレス０１１０ｂに第１チェックデータ５５Ｈを書き込んだ後、反転アドレス０１１１ｂ、０１００ｂ、００１０ｂ、１１１０ｂに第２チェックデータＡＡＨを書き込み、その後診断アドレス０１００ｂから読み出したチェックデータが第１チェックデータ５５Ｈであるか否かを判定する構成としたので、例えば診断アドレスの隣り合うアドレスラインのうちいずれか２本が接触した場合に論理部２が診断アドレス０１１０ｂと見誤ってアクセスしてしまうような比較的発生頻度の高いＲＡＭ４の異常を確実に発見できるようになる。
【００２３】
また、本実施形態のように５５ＨとＡＡＨの両チェックデータとして用いて診断する構成にすれば、診断アドレス０１１０ｂのメモリセルに全てにデータ０、１が書き込めるかを確認できるようになる。
尚、本実施形態ではチェックデータ５５ＨとＡＡＨとを入れ替えて診断する構成としたが、前記２つのチェックデータは内容が異なるデータであればよく、さらに、２つのチェックデータを入れ替えないで診断する構成としてもよい。この場合は、ＲＡＭ４のアドレスを指定するアドレスラインの異常を発見することを目的とした診断となる。
【００２４】
また、反転アドレスを診断アドレスの最下位ビットから最上位ビットまでを１ビットずつ反転させたアドレスにしたが、診断アドレスと異なる少なくとも１つのアドレスであれば、反転アドレスの種類はこれに限らない。
そして、反転アドレスに対するチェックデータの書き込み動作は、診断アドレスの最下位ビットを反転させたアドレスから順次行う構成としたが、どのような順序でチェックデータを書き込んでもよい。
【００２５】
さらに、診断アドレス及び反転アドレスのアドレスデータを待避させる専用の待避用アドレスを設ける構成にしたが、待避用アドレスを設けずに、論理部２が診断アドレス及び反転アドレス以外のデータが書き込まれていないアドレスを逐次検索してアドレスデータを個別に待避させる構成にしてもよい。
図６は、上述したワンチップマイクロコントローラを用いた本発明に係るワンチップマイクロコントローラシステムの一実施形態を示したブロック図である。
【００２６】
図６において、ワンチップマイクロコントローラシステム８は、互いに同期して動作する同一構成の２つのワンチップマイクロコントローラ９、１０を備えて構成される。
ワンチップマイクロコントローラ９、１０は、論理部１１、１２、同期部１３、１４及び照合部１５、１６を備えたプロセッサ１７、１８と、第１実施形態と同じ構成のメモリとしてのＲＡＭ１９、２０と、外部装置２１とデータの授受を行うＩ／Ｏポート２２、２３と、をそれぞれ同一半導体チップ内に備えて構成される。
【００２７】
尚、また、各コントローラ９、１０の論理部１１、１２、同期部１３、１４及び照合部１５、１６は、それぞれ双方向の伝送ラインで電気的に接続され、通信可能となっている。
論理部１１、１２は、上述した論理部２と同様、演算処理を行って自系のマイクロコントローラ９、１０の動作を制御するが、処理しようとしているデータを互いに他系から入力し、入力したデータが自系で処理しようとしているデータと一致していることを確認してからデータの処理を開始する。また、後述するようにして自系のＲＡＭ１９、２０の診断を行う。
【００２８】
同期部１３、１４は、割り込み信号を互いに他系に出力し、当該割り込み信号に基づいて他系との同期をとる。これにより、図６における２つのマイクロコントローラ９、１０は、同期して動作する。
照合部１５、１６は、自系のチェックデータが正規のものであるか否かを確認するために、診断アドレスから読み出したチェックデータを互いに他系に出力すると共に、他系から入力したチェックデータと自系の診断アドレスから読み出したチェックデータとを照合する。また、自系と他系とで同じ診断アドレスを診断していることを確認するために、自系の診断アドレスのアドレスデータを互いに他系に出力すると共に、他系から入力したアドレスデータと自系の診断アドレスのアドレスデータとを照合する。
【００２９】
このような構成のプロセッサ１７、１８、ＲＡＭ１９、２０及びＩ／Ｏポート２２、２３は、内部バス２４、２５によって電気的に接続されている。
次に、ワンチップマイクロコントローラ９の照合部１５の動作を図７〜図９のフローチャートを参照しながら説明する。尚、ここでは一方の系のマイクロコントローラ９の動作について説明するが、他方の系のマイクロコントローラ１０の動作についても同じであるので説明を省略する。また、図７及び図８におけるステップ２０〜ステップ３８の論理部１１の動作は、図４及び図５におけるステップ１〜ステップ１９の動作と同じであるので説明を省略する。さらに、本実施形態においても上述の実施形態と同様、診断アドレスを０１１０ｂとした場合について説明する。
【００３０】
ステップ３９において、ステップ３５で読み出した第１チェックデータ５５Ｈを他系の照合部１６に出力する。
ステップ４０において、他系の照合部１６から第１チェックデータを入力する。
ステップ４１において、他系の照合部１６から入力した第１チェックデータが５５Ｈであるか否かを判定する。判定の結果、ＹＥＳの場合は、ステップ４２の動作に進み、ＮＯの場合は、後述のステップ４６の動作に進む。
【００３１】
ステップ４２において、ステップ４０で他系の照合部１６から入力第１したチェックデータの内容と、ステップ３５で論理部１１が診断アドレス０１１０ｂから読み出した第１チェックデータの内容とが一致するか否かを判定する。判定の結果、ＹＥＳの場合は、ステップ４３の動作に進み、ＮＯの場合は、後述のステップ４６の動作に進む。
【００３２】
ステップ４３において、ステップ３６で診断アドレス０１１０ｂに書き戻したアドレスデータを読み出し、他系の照合部１６に当該アドレスデータを出力する。
このように、ステップ３９とステップ４３が出力手段の機能を奏する。
ステップ４４において、他系の照合部１６からアドレスデータを入力する。
【００３３】
ステップ４５において、他系の照合部１６から入力したアドレスデータと、ステップ３６で診断アドレス０１１０ｂに書き戻したアドレスデータとが一致するか否かを判定する。
このように、ステップ４１、ステップ４２、及びステップ４５が照合手段の機能を奏する。
【００３４】
ステップ４１、ステップ４２、及びステップ４５で照合したデータが不一致であると判定すると、ステップ４６において、他系のプロセッサ１８が異常であると判定し、論理部１１に故障情報を送信する。故障情報を受信した論理部１１は、自系のマイクロコントローラ９を安全側に動作させるのと同時に、他系の論理部１２にワンチップマイクロコントローラ１０を安全側に動作させるための制御信号を送信する。そして、論理部１１、１２はワンチップマイクロコントローラシステム８の全ての処理を停止させる。
【００３５】
ステップ４５の動作で自系と他系のアドレスデータが一致し、他系のプロセッサ１８が正常であると判定した場合は、診断アドレス０１１０ｂに書き込むデータを第２チェックデータＡＡＨ、反転アドレス０１１１ｂ、０１００ｂ、００１０ｂ、１１１０ｂに書き込むデータを第１チェックデータ５５Ｈとして他系のプロセッサ１８の診断動作を行う。尚、この動作はステップ２０〜４６において、第１チェックデータ５５Ｈを第２チェックデータＡＡＨ、第２チェックデータＡＡＨを第１チェックデータ５５Ｈに入れ替えただけであるので動作フローチャートを省略する。
【００３６】
以降、第１チェックデータ及び第２チェックデータにより同様にしてＲＡＭ１９内の全てのアドレスについて診断を行う。
以上のように、互いのプロセッサ１７、１８が自系で読み出したチェックデータと他系で読み出したチェックデータとを照合する構成としたので、他系のプロセッサ１８、１７の診断機能が正常であるか否かを確認できるようになる。また、自系の診断アドレスのアドレスデータと他系の診断アドレスのアドレスデータとを照合する構成としたのでプロセッサ１７、１８が互いに同じアドレスを診断しているか否かを確認できるようになる。したがって、他系のプロセッサ１８、１７の異常を検出できるようになり、より一層確実にＲＡＭを診断できるようになる。
【００３７】
【発明の効果】
以上説明したように、請求項１に係る発明によれば、プロセッサが指定したアドレスにアクセスできず、それ以外のアドレスにアクセスしてしまうようなメモリの故障を発見できるようになり、メモリの正常、異常を正確に診断できるようになる。また、他方のプロセッサの診断機能に異常がある場合や、自身と他方のプロセッサが互いに同じアドレスを診断していない場合に他方のプロセッサの異常を検出できるようになる。したがって、より一層確実にメモリを診断できるようになる。
【００３８】
請求項２に係る発明によれば、メモリのアドレスを指定する隣り合うアドレスラインのうち予め定められた２本のアドレスラインが接触した場合等、比較的発生頻度の高いメモリの異常を発見できるようになる。
請求項３に係る発明によれば、メモリのアドレスを指定する隣り合うアドレスラインのうちいずれか２本のアドレスラインが接触した場合等のメモリの異常を発見でき、比較的発生頻度の高いメモリの異常を確実に発見できるようになる。
【００３９】
請求項４に係る発明によれば、診断アドレスに２種類のチェックデータを書き込んでメモリの診断を行うので、診断アドレスのメモリセルにデータが正しく書き込めなくなる等のメモリの異常を発見できるようになる。
【図面の簡単な説明】
【図１】本発明に係るワンチップマイクロコントローラシステムに用いるワンチップマイクロコントローラの一実施形態を示したブロック図
【図２】同上実施形態に適用される診断前のＲＡＭの概念図
【図３】同上実施形態に適用される診断中のＲＡＭの概念図
【図４】同上実施形態の論理部の動作フローチャート
【図５】図４に続く論理部の動作フローチャート
【図６】本発明に係るワンチップマイクロコントローラシステムの一実施形態を示したブロック図
【図７】同上実施形態の論理部及び照合部の動作フローチャート
【図８】図７に続く論理部及び照合部の動作フローチャート
【図９】図８に続く論理部及び照合部の動作フローチャート
【図１】
0004748871.tif 000002
【図２】
0004748871.tif 000003
【図３】
0004748871.tif 000004
【図４】
0004748871.tif 000005
【図５】
0004748871.tif 000006
【図６】
0004748871.tif 000007
【図７】
0004748871.tif 000008
【図８】
0004748871.tif 000009
【図９】
0004748871.tif 000010