(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサによるメモリ上に格納されたプログラムの実行と並行して、前記メモリの読み出し検査対象となる全領域をリードしてサム値を計算するサム値計算手段と、
計算されたサム値と前記メモリ上に格納してある真のサム値との比較手段と、
サム値比較で不一致が発生した場合にメモリの読み出し不良とみなしてこれを外部に通知するエラー通知手段と、を備え
前記マイクロプロセッサが前記メモリのある特定のアドレスにアクセスしたとき、
１回目は、そのアドレスへメモリアクセスを行い、読み出したメモリデータを前記マイクロプロセッサに渡すと共に、キャッシュデータとして保存しておき、
２回目以降は、前記キャッシュデータをマイクロプロセッサに渡し、代わりにサム値検査のためのメモリリードをその時に実行することで、前記特定のアドレスへのアクセスごとに前記メモリの読み出し検査対象となる全領域を順次リードしていくことを特徴とするメモリ検査回路。
【請求項２】
前記キャッシュデータとして保存するアドレスは、前記メモリ上の任意アドレスを選んで設定可能な、
請求項１記載のメモリ検査回路。
【請求項３】
マイクロプロセッサによるメモリ上に格納されたプログラムの実行期間中、前記サム値計算と前記真のサム値との比較による検査を繰り返す、
請求項１又は２記載のメモリ検査回路。
【請求項４】
前記サム値検査回路の動作／非動作が切り替え可能で、初期状態では非動作に設定されている、
請求項１乃至３のいずれかに記載のメモリ検査回路。
【請求項５】
前記マイクロプロセッサ、前記メモリ並びに前記サム値計算手段、前記比較手段、前記エラー通知手段よりなる検査回路が同一プリント基板上に実装されてなる、
請求項１乃至４のいずれかに記載のメモリ検査回路。
【請求項６】
前記マイクロプロセッサ並びに前記サム値計算手段、前記比較手段、前記エラー通知手段よりなる検査回路がＡＳＩＣ化されてなる、
請求項１乃至５のいずれかに記載のメモリ検査回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサが常時メモリにアクセスしているようなシステムにおいて、メモリの読み出し不良を検出するためのメモリ検査回路に関する。なお、本発明で言うサム値とは、メモリの全領域のうち、読み出し検査対象となる部分に格納された全データの内容から一意に決まる値のことで、例えば読み出し検査対象領域の全データの加算結果などである。
【０００２】
【従来の技術】
図６は、従来技術による専用ＬＳＩ（以下ＡＳＩＣ）の回路の機能ブロック図である。このＡＳＩＣは、例えば分散型制御装置を構成する要素とバスをインターフェイスする通信コントローラとして動作する。
【０００３】
ＡＳＩＣ１０１は、通信カードを形成するプリント基板１２０に実装され、マイクロプロセッサ１０２を内蔵しており、ＡＳＩＣ外部においてプリント基板１２０に実装されたＲＯＭ１１０に格納されたプログラムで動作する。
【０００４】
マイクロプロセッサ１０２は、動作用プログラムにアクセスするため、ＲＯＭアドレス信号１０３を出力し、ＲＯＭデータ信号１０４を読み込む動作を繰り返している。そのため、ＲＯＭを正常に読み出せない不良状態（ＲＯＭの故障、ＡＳＩＣとＲＯＭ間の接続不良など）になると、このＡＳＩＣは正常に動作できなくなる。
【０００５】
【発明が解決しようとする課題】
ＡＳＩＣ１０１は、ＲＯＭ１１０の読み出し不良状態（メモリエラー）を検出する手段を持っていない、という問題点がある。
メモリエラー検出手段としては、
（ａ）パリティビットやＥＣＣビットを付加する
（ｂ）サム値を計算して真値と比較する
等の方法が一般的である。
【０００６】
（ａ）の方法では、パリティビットやＥＣＣビット用にメモリを追加する必要があり、部品代のコストアップになる。
（ｂ）の方法では、サム値を計算するためのＲＯＭ読み出しが必要である。しかし、ＡＳＩＣ１０１に内蔵されたマイクロプロセッサ１０２は常時ＲＯＭ１１０にアクセスしており、サム値計算に必要なＲＯＭ読み出しの時間がとれない。
【０００７】
本発明の目的は、マイクロプロセッサによるメモリ上に格納されたプログラムの実行と並行して、メモリの読み出し検査対象となる全領域をリードするサム値計算を実行可能とし、ＡＳＩＣ外部の回路構成を従来と同じにしたまま、メモリの不良状態を速やかに検出できるメモリ検査回路の提供にある。
【０００８】
【課題を解決するための手段】
このような課題を達成するために、本発明のうち請求項１記載発明の特徴は、マイクロプロセッサによるメモリ上に格納されたプログラムの実行と並行して、前記メモリの読み出し検査対象となる全領域をリードしてサム値を計算するサム値計算手段と、
計算されたサム値と前記メモリ上に格納してある真のサム値との比較手段と、サム値比較で不一致が発生した場合にメモリの読み出し不良とみなしてこれを外部に通知するエラー通知手段と、を具備する点にある。
【０００９】
また、前記マイクロプロセッサが前記メモリのある特定のアドレスにアクセスしたとき、
１回目は、そのアドレスへメモリアクセスを行い、読み出したメモリデータを前記マイクロプロセッサに渡すと共に、キャッシュデータとして保存しておき、
２回目以降は、前記キャッシュデータをマイクロプロセッサに渡し、代わりにサム値検査のためのメモリリードをその時に実行する点にある。
【００１０】
請求項２記載発明の特徴は、
前記キャッシュデータとして保存するアドレスは、前記メモリ上の任意アドレスを選んで設定可能とした点にある。
【００１１】
請求項３記載発明の特徴は、
マイクロプロセッサによるメモリ上に格納されたプログラムの実行期間中、前記サム値計算と前記真のサム値との比較による検査を繰り返す点にある。
【００１２】
請求項４記載発明の特徴は、
前記サム値検査回路の動作／非動作が切り替え可能で、初期状態では非動作に設定されている点にある。
【００１３】
請求項５記載発明の特徴は、
前記マイクロプロセッサ、前記メモリ並びに前記サム値計算手段、前記比較手段、前記エラー通知手段よりなる検査回路が同一プリント基板上に実装されてなる点にある。
【００１４】
請求項６記載発明の特徴は、
前記マイクロプロセッサ並びに前記サム値計算手段、前記比較手段、前記エラー通知手段よりなる検査回路がＡＳＩＣ化されてなる点にある。
【００１５】
【発明の実施の形態】
以下本発明実施態様を、図面を用いて説明する。図１は本発明を適用した専用ＬＳＩ（以下ＡＳＩＣ）の一例を示す機能ブロック図である。図１において、ＡＳＩＣ２０１、マイクロプロセッサ２０２、ＲＯＭ２１０、プリント基板２２０は、図６の従来回路で説明したＡＳＩＣ１０１、マイクロプロセッサ１０２、ＲＯＭ１１０、プリント基板１２０に対応した同一要素である。
【００１６】
ＡＳＩＣ２０１は通信コントローラであり、マイクロプロセッサ２０２、およびＲＯＭサム値検査回路２０５を内蔵している。ＲＯＭ２１０はマイクロプロセッサ２０２の動作用プログラムを格納したメモリであり、ＡＳＩＣ２０１およびＲＯＭ２１０は、プリント基板２２０に実装されている。
【００１７】
マイクロプロセッサ２０２は動作用プログラムにアクセスするため、次の動作を繰り返している。ＲＯＭアドレス信号２０６を出力し、ＲＯＭサム値検査回路２０５経由でＲＯＭアドレス信号２０３として出力する。
ＲＯＭデータ信号２０４を、ＲＯＭサム値検査回路２０５経由でＲＯＭデータ信号２０７として読み込む。
【００１８】
ＲＯＭサム値検査回路２０５は、本発明を利用したＲＯＭ２１０の読み出し不良を検出するための回路であり、ＲＯＭ２１０の読み出し不良を検出すると、メモリエラー信号２０８を出力する。
【００１９】
図２はＲＯＭ２１０のメモリマップであり、ゼロ番地から始まるマイクロプロセッサプログラムの最後のアドレスに引き続くアドレス３１０番地にＲＯＭサム値の真値（プログラムの総バイトの加算結果等）が格納されている。従って、ＲＯＭサム値検査の対象領域のアドレスは、ゼロ番地より「３１０番地−１番地」までの範囲Ｆである。
【００２０】
図3はＲＯＭサム値検査回路２０５の具体的な構成の一例を示す機能ブロック図である。図３において、コントローラ３０１はＲＯＭサム値検査回路２０５全体の機能を制御する回路である。
アドレスセレクタ３０２は、どの信号をＲＯＭアドレス信号２０３として出力するかを選択する回路である。データセレクタ３０３は、どの信号をＲＯＭデータ信号２０７として出力するかを選択する回路である。
【００２１】
サム値アドレス３１０は、ＲＯＭサム値の真値がＲＯＭ２１０上のどのアドレスに格納してあるのかを指定するレジスタである。また、ＲＯＭ２１０の読み出し検査対象となる領域の指定も兼ねており、ＲＯＭ２１０のゼロ番地から「サム値アドレス（３１０番地）−１番地」まで（図２のＦ）が、検査対象領域となる。
【００２２】
サム値データ３２０は、ＲＯＭ２１０のサム値を計算するためのレジスタである。初期値はゼロで、ＲＯＭサム値検査用にリードした値が、順次サム値データ３２０の値に加算される。
アドレスカウンタ３３０は、ＲＯＭ２１０の読み出し検査対象となる領域を順番にリードするためのカウンタである。初期値はゼロで、サム値アドレス３１０番地の値までカウントアップする。
【００２３】
キャッシュデータ３４０は、ＲＯＭ２１０の特定アドレスのデータを保存しておくためのレジスタである。
キャッシュアドレス３５０は、ＲＯＭ２１０のどのアドレスのデータをキャッシュデータ３４０に保存するかを指定するレジスタである。
【００２４】
次に、ＲＯＭサム値検査回路２０５の動作の詳細を図４、図５を用いて説明する。図４はＲＯＭサム値検査回路２０５の処理手順を示すフローチャート、図５はＲＯＭサム値検査回路２０５の動作を示す信号波形図であり、図中のＤｎ及びＤｍは、ＲＯＭ２１０のアドレスｎ番地及びｍ番地のデータ、＋Ｄｎは値Ｄｎを加算することを表す。
【００２５】
起動した初期状態（図４のステップＳ１）では、ＲＯＭサム値検査機能は非動作状態に設定されているため、ＲＯＭサム値検査回路２０５は停止している。この状態では、ＲＯＭアドレス信号２０６はそのままＲＯＭアドレス信号２０３として出力し、ＲＯＭデータ信号２０４はそのままＲＯＭデータ信号２０７として出力する。
【００２６】
この状態で、ＲＯＭサム値検査機能に必要な設定を行う（ステップＳ２）。設定は、マイクロプロセッサ２０２のプログラム、もしくはＡＳＩＣ２０１外部からの制御で行う。設定項目は、サム値アドレス３１０（図５でｍ）、キャッシュアドレス３５０（図５でｎ）、の２つである。
【００２７】
必要な設定が完了したら、ＲＯＭサム値検査機能を動作状態に設定する（ステップＳ３）。設定は、マイクロプロセッサ２０２のプログラム、もしくはＡＳＩＣ２０１外部からの制御で行う。
動作状態にしたとき、サム値データ３２０、アドレスカウンタ３３０が夫々初期化される（ステップＳ４、図５で初期値０）。
【００２８】
ＲＯＭサム値検査機能が動作状態では、マイクロプロセッサ２０２がＲＯＭ２１０をアクセスするたび（ステップＳ５）に、コントローラ３０１がＲＯＭアドレス信号２０６とキャッシュアドレス３５０を比較する（ステップＳ６）。
【００２９】
不一致ならば通常のアクセスと判断し（ステップＳ７）、ＲＯＭアドレス信号２０６をそのままＲＯＭアドレス信号２０３として出力してＲＯＭ２１０のアクセスを行い、読み出したＲＯＭデータ信号２０４をそのままＲＯＭデータ信号２０７として出力し、ステップＳ５に戻る。
【００３０】
一致ならばＲＯＭサム値検査用のアクセスと判断し、ステップＳ８で次のように動作する。
1回目の一致の場合（ステップＳ９）には、ＲＯＭアドレス信号２０６をそのままＲＯＭアドレス信号２０３として出力してＲＯＭ２１０へアクセスを行い、読み出したＲＯＭデータ信号２０４（図５でＤｎ）をそのままＲＯＭデータ信号２０７（図５でＤｎ）として出力するとともに、キャッシュデータ３４０に保存し、ステップＳ５に戻る。
【００３１】
２回目以降の一致の場合（ステップＳ１０）では、アドレスカウンタ３３０の値ｃ（図５で初期値０）をＲＯＭアドレス信号２０３として出力してＲＯＭ２１０へアクセスを行う。また、キャッシュデータ３４０の値ＤｍをＲＯＭデータ信号２０７に出力する。
【００３２】
ここで、アドレスカウンタ３３０の値ｃがサム値アドレス３１０の値ｍより小さいかどうかをチェックし（ステップＳ１１）、小さければ、サム値はまだ計算途中である。サム値データ３２０には読み出したＲＯＭデータ信号２０４の値Ｄｃを加算し、アドレスカウンタ３３０は値を1増やし、ステップＳ５に戻る（ステップＳ１２）。
【００３３】
アドレスカウンタ３３０の値ｃがサム値アドレス３１０の値ｍと等しければ、サム値の計算が完了し、読み出したＲＯＭデータ信号２０４がＲＯＭサム値の真値であることを示している。サム値データ３２０と読み出したＲＯＭデータ信号２０４の値を比較し（ステップＳ１３）、一致ならば正常と判断してステップＳ４に戻り、サム値データ３２０、アドレスカウンタ３３０、をそれぞれ初期化し、ＲＯＭサム値検査機能を初期状態から繰り返す。
【００３４】
サム値データ３２０と読み出したＲＯＭデータ信号２０４の値比較で、不一致ならば異常と判断し、メモリエラー信号２０８を出力し、ＲＯＭサム値検査機能を非動作状態にして、動作停止する（ステップＳ１４）。
【００３５】
すなわち、一旦ＲＯＭサム値検査機能を動作状態に設定すると、システム稼働中は無限にＲＯＭサム値検査機能を繰り返す。そしてＲＯＭ２１０の読み出し不良を検出すると、すみやかにこれを通知する。
【００３６】
以上述べたように、ＲＯＭサム値検査回路２０５は、マイクロプロセッサ２０２が常時ＲＯＭ２１０にアクセスしているようなシステムにおいて、プログラムの実行と並行してＲＯＭ２１０のサム値計算を行い、メモリエラーを検出することができる。
【００３７】
また、ＲＯＭサム値検査回路２０５は、ＡＳＩＣ設計の際にＡＳＩＣ２０１に内蔵する設計とすれば、ＡＳＩＣ２０１及びＲＯＭ２１０を実装するプリント基板２２０の構成は、従来のＡＳＩＣ１０１およびＲＯＭ１１０を実装するプリント基板１２０の構成と全く同一とすることができ、旧カードのバージョンアップが極めて容易となる。
【００３８】
なお、実施例ではＲＯＭの場合について説明したが、ＲＯＭ以外のメモリに適用してもよい。
【００３９】
【発明の効果】
以上説明したことから明らかなように、本発明によれば次の効果が期待できる。
（１）メモリのサム値検査をすることでメモリの読み出し不良を検出する方式のため、パリティビットのような追加メモリが不要である。
（２）メモリの特定アドレスのデータをキャッシュとして保存し、そのアドレスへのアクセスが発生したときにメモリサム値計算用のメモリアクセスを行う方式のため、メイン回路が常時メモリにアクセスしているシステムでも、メモリサム値検査が行える。
【００４０】
（３）キャッシュとして保存するアドレスを任意に設定可能な方式のため、メイン回路からのアクセス頻度が高いメモリアドレスをキャッシュアドレスに選んで設定すれば、メモリサム値計算用のメモリアクセス頻度も高くなり、短時間でメモリサム値検査が完了できる。
（４）メモリサム値検査機能をシステム稼働中は繰り返す方式のため、システム稼働中に生じたメモリの読み出し不良を、発生後すみやかに検出できる。
【００４１】
（５）メモリ検査回路の動作・非動作を切り替え可能で、初期状態では非動作とする方式のため、メモリサム値検査に対応していないサム値を持たないメモリが接続された場合でも、そのまま使える。
（６）メモリ検査回路をＡＳＩＣ内部だけで実現可能で、ＡＳＩＣとメモリの間の接続方法は従来と変わらない方式のため、回路を実装するプリント基板は従来のものがそのまま使える。
【図面の簡単な説明】
【図１】本発明を適用した専用ＬＳＩ（ＡＳＩＣ）の一例を示す機能ブロック図である。
【図２】ＲＯＭ２１０のメモリマップ図である。
【図３】ＲＯＭサム値検査回路２０５の具体的な構成の一例を示す機能ブロック図である。
【図４】図４はＲＯＭサム値検査回路２０５の処理手順を示すフローチャートである。
【図５】図５はＲＯＭサム値検査回路２０５の動作を示す信号波形図である。
【図６】従来技術による専用ＬＳＩ（ＡＳＩＣ）の回路の機能ブロック図である。
【符号の説明】
２０１  ＡＳＩＣ
２０２  マイクロプロセッサ
２０３  ＲＯＭアドアレス信号
２０４  ＲＯＭデータ信号
２０５  ＲＯＭサム値検査回路
２０６  ＲＯＭアドアレス信号
２０７  ＲＯＭデータ信号
２０８  メモリエラー信号
２１０  ＲＯＭ
２２０  プリント基板
【図１】
0003821281.tif 000002
【図２】
0003821281.tif 000003
【図３】
0003821281.tif 000004
【図４】
0003821281.tif 000005
【図５】
0003821281.tif 000006
【図６】
0003821281.tif 000007