(57)【要約】【課題】  ＲＡＭ（メモリ）の退避用バッファを設けて１（又は２、４等）ワード毎にテストを実行することにより、少ないハードウェア資源の追加でメモリアクセス性能に影響することなく稼働中におけるＲＡＭテストを実行可能とすること。【解決手段】  ＲＡＭ１３のデータをテスト中に退避して保持する退避レジスタ１６と、要求アドレス３２とテスト実行中アドレスとの一致を検出するアドレス比較部１５と、ＲＡＭに書き込まれたテストデータの正誤を比較するデータ比較部１８とを有し、まずＲＡＭ１３を読み出して退避レジスタ１６に格納し、次にＲＡＭ１３にテストデータを書き込み、次にＲＡＭを読み出してデータ比較部１８で正常か否かを判定し、次に退避レジスタ１６のデータをＲＡＭ１３へ書き戻すという一連の手順をそれぞれＲＡＭ要求がないか又はアドレスが一致した場合に繰り返し実行する。【選択図】      図１
2006039843.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＭの複数のワードのテストするＲＡＭテスト回路であって、
ＲＡＭのデータをテスト中に退避して保持する退避レジスタと、ＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテストを実行するＲＡＭのアドレスであるテスト実行中アドレスとを比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部と、
テスト実行アドレスの１ワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
ＲＡＭのテスト実行アドレスに１ワードのテストデータを書き込む手順Ｂと、
ＲＡＭのテスト実行アドレスから１ワードのデータを読み出して前記データ比較部で正常か否かを判定する手順Ｃと、
退避レジスタの１ワードのデータをＲＡＭへ書き戻す手順Ｄとを有することを特徴とするＲＡＭテスト回路。
【請求項２】
前記手順Ａは前記ＲＡＭ要求がないタイミングで実行し、前記手順Ｂ、Ｃ、及びＤは前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで実行することを特徴とする請求項１のＲＡＭテスト回路。
【請求項３】
ＲＡＭのＭ（Ｍは２以上でＲＡＭの全ワード数以下の整数）ワード分のテストを実行するＲＡＭテスト回路であって、
ＲＡＭのＮ（ＮはＭ以下で２以上の整数）ワード分のデータをテスト中に退避して保持する退避レジスタと、ＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテスト実行中のアドレスとをＮワード単位で比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部と、
前記ＲＡＭ要求がないタイミングで、テスト実行アドレスのＮワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭに１ワードずつＮワード分のテストデータを書き込む手順Ｂと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭを読み出し前記データ比較部で正常か否かを１ワードずつＮワード分判定する手順Ｃと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、退避レジスタのＮワード分のデータをＲＡＭへ書き戻す手順Ｄとを有し、
前記手順Ａ、Ｂ、Ｃ、及びＤをＭワード分繰り返し実行することを特徴とするＲＡＭテスト回路。
【請求項４】
前記退避レジスタがＲＡＭのデータを退避中であることを示す退避フラグを有し、前記ＲＡＭ要求があり且つアドレス比較部が一致を検出したタイミングにおいて前記退避フラグが有効の場合、前記ＲＡＭ要求はＲＡＭに代えて前記退避レジスタに対してアクセスするようにしたことを特徴とする請求項１、２、又は３のＲＡＭテスト回路。
【請求項５】
データやプログラムを記憶するＲＡＭの一部の領域を前記プログラム稼働中にテストする情報処理装置であって、
ＲＡＭのデータをテスト中に退避して保持する退避レジスタと、前記プログラムがＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテストを実行するＲＡＭのアドレスであるテスト実行中アドレスとを比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部と、
テスト実行アドレスの１ワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
ＲＡＭのテスト実行アドレスに１ワードのテストデータを書き込む手順Ｂと、
ＲＡＭのテスト実行アドレスから１ワードのデータを読み出して前記データ比較部で正常か否かを判定する手順Ｃと、
退避レジスタの１ワードのデータをＲＡＭへ書き戻す手順Ｄとを有することを特徴とする情報処理装置。
【請求項６】
前記手順Ａは前記ＲＡＭ要求がないタイミングで実行し、前記手順Ｂ、Ｃ、及びＤは前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで実行することを特徴とする請求項５の情報処理装置。
【請求項７】
データやプログラムを記憶するＲＡＭの一部の領域を前記プログラム稼働中にテストする情報処理装置であって、
ＲＡＭのＮ（ＮはＭ以下で２以上の整数）ワード分のデータをテスト中に退避して保持する退避レジスタと、前記プログラムがＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテスト実行中のアドレスとをＮワード単位で比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部と、
前記ＲＡＭ要求がないタイミングで、テスト実行アドレスのＮワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭに１ワードずつＮワード分のテストデータを書き込む手順Ｂと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭを読み出し前記データ比較部で正常か否かを１ワードずつＮワード分判定する手順Ｃと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、退避レジスタのＮワード分のデータをＲＡＭへ書き戻す手順Ｄとを有し、
前記手順Ａ、Ｂ、Ｃ、及びＤをＭワード分繰り返し実行することを特徴とする情報処理装置。
【請求項８】
前記退避レジスタがＲＡＭのデータを退避中であることを示す退避フラグを有し、前記ＲＡＭ要求があり且つアドレス比較部が一致を検出したタイミングにおいて前記退避フラグが有効の場合、前記ＲＡＭ要求はＲＡＭに代えて前記退避レジスタに対してアクセスするようにしたことを特徴とする請求項５、６、又は７の情報処理装置。
【請求項９】
データやプログラムを記憶するＲＡＭの一部の領域を前記プログラム稼働中にテストするＲＡＭテスト方法であって、
ＲＡＭのデータをテスト中に退避して保持する退避レジスタと、前記プログラムがＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテストを実行するＲＡＭのアドレスであるテスト実行中アドレスとを比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部とを有し、
テスト実行アドレスの１ワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
ＲＡＭのテスト実行アドレスに１ワードのテストデータを書き込む手順Ｂと、
ＲＡＭのテスト実行アドレスから１ワードのデータを読み出して前記データ比較部で正常か否かを判定する手順Ｃと、
退避レジスタの１ワードのデータをＲＡＭへ書き戻す手順Ｄとを順に繰り返して実行することを特徴とするＲＡＭテスト方法。
【請求項１０】
前記手順Ａは前記ＲＡＭ要求がないタイミングで実行し、前記手順Ｂ、Ｃ、及びＤは前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで実行することを特徴とする請求項９のＲＡＭテスト方法。
【請求項１１】
データやプログラムを記憶するＲＡＭの一部の領域を前記プログラム稼働中にテストするＲＡＭテスト方法であって、
ＲＡＭのＮ（ＮはＭ以下で２以上の整数）ワード分のデータをテスト中に退避して保持する退避レジスタと、前記プログラムがＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテスト実行中のアドレスとをＮワード単位で比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部とを有し、
前記ＲＡＭ要求がないタイミングで、テスト実行アドレスのＮワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭに１ワードずつＮワード分のテストデータを書き込む手順Ｂと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭを読み出し前記データ比較部で正常か否かを１ワードずつＮワード分判定する手順Ｃと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、退避レジスタのＮワード分のデータをＲＡＭへ書き戻す手順Ｄとを順にＭワード分繰り返し実行することを特徴とするＲＡＭテスト方法。
【請求項１２】
前記退避レジスタがＲＡＭのデータを退避中であることを示す退避フラグを有し、前記ＲＡＭ要求があり且つアドレス比較部が一致を検出したタイミングにおいて前記退避フラグが有効の場合、前記ＲＡＭ要求はＲＡＭに代えて前記退避レジスタに対してアクセスするようにしたことを特徴とする請求項９、１０、及び１１のＲＡＭテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＲＡＭテスト回路、情報処理装置、及びＲＡＭテスト方法に関し、特に、稼働中のＲＡＭに対して効率的にＲＡＭをテストするための技術に関する。
【背景技術】
【０００２】
従来、ＲＡＭ（Random Access Memory）のテストの１つとしてＢＩＳＴ（Built In Self Test）が知られている。ＢＩＳＴは予めチップ内或いは装置内にＲＡＭのテスト回路を組み込むことによりＲＡＭのテストを実行している。
【０００３】
従来のＢＩＳＴでは、比較的低速なクロックを用いてテストをするため実際のクロックでテストが行われていないことがあり、実際の稼働状態とは環境が異なることがある。また、稼働時と同じクロックでテストを行う場合でも、ＢＩＳＴは予め用意されたテストパターンを予め決められたアドレス順に予め決められたタイミング間隔でＢＩＳＴのみが動作する環境で実行されるため、実際にＢＩＳＴ以外のアプリケーションプログラム等が動作している稼働環境とはノイズの発生する状態が異なることがある。このため、稼働環境のみで発生し、ＢＩＳＴでは発生しないノイズによるエラー等はＢＩＳＴでは検出できないことがある。
【０００４】
また、ＢＩＳＴは通常電源投入等の立ち上げの際の初期化処理に組み込まれて診断し、実際の稼働中に実行されることはない。特開平４−１２５７５３号公報の発明は、これを解決する一例であり、システムの動作中に診断モードをセットしてオンライン診断をする技術である。この発明は、バッファレジスタを設けて診断対象メモリの診断前のメモリデータを退避させ、診断中に診断対象メモリへのアクセスがあった場合はバッファレジスタへアクセスするようにして稼働状態に近い環境でのテストを実現している。
【０００５】
稼働中にＲＡＭテストを実行可能とすることにより、出荷前の検査工程でソフトウェアを動作させている際にＲＡＭテストを実行可能となり、出荷後にしか発生しないＲＡＭのエラーを事前に検出することが可能となる。
【０００６】
【特許文献１】特開平４−１２５７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特開平４−１２５７５３号公報の発明は、メモリ診断の対象をブロック単位で分割し、退避用のバッファを１ブロックの大きさとした退避メモリブロックを設けて、ブロック単位で診断を実行しているため、退避メモリブロックとして大きな容量の退避バッファを用意しなければならないという問題がある。
【０００８】
退避メモリブロックは診断専用に設けると診断専用に大きなハードウェア資源を投入することになってしまう。退避メモリブロックを診断の際にメモリ上に確保するとしても、診断中に通常稼働のために使用できるメモリ容量が削減されてしまうことになる。
【０００９】
本発明の目的は、メモリのアクセス幅に応じたバッファを退避用に設けてメモリアクセス幅単位でテストを実行することにより、少ないハードウェア資源の投入によりメモリアクセス性能に影響することなく、稼働中におけるメモリ（ＲＡＭ）のテストを実行可能としたＲＡＭテスト回路、情報処理装置、及びＲＡＭテスト方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の第１のＲＡＭテスト回路は、ＲＡＭの複数のワードのテストするＲＡＭテスト回路であって、
ＲＡＭのデータをテスト中に退避して保持する退避レジスタと、ＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテストを実行するＲＡＭのアドレスであるテスト実行中アドレスとを比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部と、
テスト実行アドレスの１ワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
ＲＡＭのテスト実行アドレスに１ワードのテストデータを書き込む手順Ｂと、
ＲＡＭのテスト実行アドレスから１ワードのデータを読み出して前記データ比較部で正常か否かを判定する手順Ｃと、
退避レジスタの１ワードのデータをＲＡＭへ書き戻す手順Ｄとを有することを特徴とする。
【００１１】
本発明の第２のＲＡＭテスト回路は、本発明の第１のＲＡＭテスト回路において、前記手順Ａは前記ＲＡＭ要求がないタイミングで実行し、前記手順Ｂ、Ｃ、及びＤは前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで実行することを特徴とする。
【００１２】
本発明の第３のＲＡＭテスト回路は、ＲＡＭのＭ（Ｍは２以上でＲＡＭの全ワード数以下の整数）ワード分のテストを実行するＲＡＭテスト回路であって、
ＲＡＭのＮ（ＮはＭ以下で２以上の整数）ワード分のデータをテスト中に退避して保持する退避レジスタと、ＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテスト実行中のアドレスとをＮワード単位で比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部と、
前記ＲＡＭ要求がないタイミングで、テスト実行アドレスのＮワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭに１ワードずつＮワード分のテストデータを書き込む手順Ｂと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭを読み出し前記データ比較部で正常か否かを１ワードずつＮワード分判定する手順Ｃと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、退避レジスタのＮワード分のデータをＲＡＭへ書き戻す手順Ｄとを有し、
前記手順Ａ、Ｂ、Ｃ、及びＤをＭワード分繰り返し実行することを特徴とする。
【００１３】
本発明の第４のＲＡＭテスト回路は、本発明の第１、第２、又は第３のＲＡＭテスト回路において、前記退避レジスタがＲＡＭのデータを退避中であることを示す退避フラグを有し、前記ＲＡＭ要求があり且つアドレス比較部が一致を検出したタイミングにおいて前記退避フラグが有効の場合、前記ＲＡＭ要求はＲＡＭに代えて前記退避レジスタに対してアクセスするようにしたことを特徴とする。
【００１４】
本発明の第１の情報処理装置は、データやプログラムを記憶するＲＡＭの一部の領域を前記プログラム稼働中にテストする情報処理装置であって、
ＲＡＭのデータをテスト中に退避して保持する退避レジスタと、前記プログラムがＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテストを実行するＲＡＭのアドレスであるテスト実行中アドレスとを比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部と、
テスト実行アドレスの１ワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
ＲＡＭのテスト実行アドレスに１ワードのテストデータを書き込む手順Ｂと、
ＲＡＭのテスト実行アドレスから１ワードのデータを読み出して前記データ比較部で正常か否かを判定する手順Ｃと、
退避レジスタの１ワードのデータをＲＡＭへ書き戻す手順Ｄとを有することを特徴とする。
【００１５】
本発明の第２の情報処理装置は、本発明の第１の情報処理装置において、前記手順Ａは前記ＲＡＭ要求がないタイミングで実行し、前記手順Ｂ、Ｃ、及びＤは前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで実行することを特徴とする。
【００１６】
本発明の第３の情報処理装置は、データやプログラムを記憶するＲＡＭの一部の領域を前記プログラム稼働中にテストする情報処理装置であって、
ＲＡＭのＮ（ＮはＭ以下で２以上の整数）ワード分のデータをテスト中に退避して保持する退避レジスタと、前記プログラムがＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテスト実行中のアドレスとをＮワード単位で比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部と、
前記ＲＡＭ要求がないタイミングで、テスト実行アドレスのＮワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭに１ワードずつＮワード分のテストデータを書き込む手順Ｂと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭを読み出し前記データ比較部で正常か否かを１ワードずつＮワード分判定する手順Ｃと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、退避レジスタのＮワード分のデータをＲＡＭへ書き戻す手順Ｄとを有し、
前記手順Ａ、Ｂ、Ｃ、及びＤをＭワード分繰り返し実行することを特徴とする。
【００１７】
本発明の第４の情報処理装置は、本発明の第１、第２、又は第３の情報処理装置において、前記退避レジスタがＲＡＭのデータを退避中であることを示す退避フラグを有し、前記ＲＡＭ要求があり且つアドレス比較部が一致を検出したタイミングにおいて前記退避フラグが有効の場合、前記ＲＡＭ要求はＲＡＭに代えて前記退避レジスタに対してアクセスするようにしたことを特徴とする。
【００１８】
本発明の第１のＲＡＭテスト方法は、データやプログラムを記憶するＲＡＭの一部の領域を前記プログラム稼働中にテストするＲＡＭテスト方法であって、
ＲＡＭのデータをテスト中に退避して保持する退避レジスタと、前記プログラムがＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテストを実行するＲＡＭのアドレスであるテスト実行中アドレスとを比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部とを有し、
テスト実行アドレスの１ワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
ＲＡＭのテスト実行アドレスに１ワードのテストデータを書き込む手順Ｂと、
ＲＡＭのテスト実行アドレスから１ワードのデータを読み出して前記データ比較部で正常か否かを判定する手順Ｃと、
退避レジスタの１ワードのデータをＲＡＭへ書き戻す手順Ｄとを順に繰り返して実行することを特徴とする。
【００１９】
本発明の第２のＲＡＭテスト方法は、本発明の第１のＲＡＭテスト方法において、前記手順Ａは前記ＲＡＭ要求がないタイミングで実行し、前記手順Ｂ、Ｃ、及びＤは前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで実行することを特徴とする。
【００２０】
本発明の第３のＲＡＭテスト方法は、データやプログラムを記憶するＲＡＭの一部の領域を前記プログラム稼働中にテストするＲＡＭテスト方法であって、
ＲＡＭのＮ（ＮはＭ以下で２以上の整数）ワード分のデータをテスト中に退避して保持する退避レジスタと、前記プログラムがＲＡＭをアクセスするためのＲＡＭ要求のアドレスとテスト実行中のアドレスとをＮワード単位で比較するアドレス比較部と、テスト用に準備されたテストデータとＲＡＭに書き込まれたテストデータとを比較するデータ比較部とを有し、
前記ＲＡＭ要求がないタイミングで、テスト実行アドレスのＮワードのＲＡＭデータを読み出して退避レジスタに格納する手順Ａと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭに１ワードずつＮワード分のテストデータを書き込む手順Ｂと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、ＲＡＭを読み出し前記データ比較部で正常か否かを１ワードずつＮワード分判定する手順Ｃと、
前記ＲＡＭ要求がないか又は前記アドレス比較部が一致を検出したタイミングで、退避レジスタのＮワード分のデータをＲＡＭへ書き戻す手順Ｄとを順にＭワード分繰り返し実行することを特徴とする。
【００２１】
本発明の第４のＲＡＭテスト方法は、本発明の第１、第２、又は第３のＲＡＭテスト方法において、前記退避レジスタがＲＡＭのデータを退避中であることを示す退避フラグを有し、前記ＲＡＭ要求があり且つアドレス比較部が一致を検出したタイミングにおいて前記退避フラグが有効の場合、前記ＲＡＭ要求はＲＡＭに代えて前記退避レジスタに対してアクセスするようにしたことを特徴とする。
【発明の効果】
【００２２】
本発明は、稼働中にＲＡＭテストを実行できるので実際の稼働環境でしか発生しないＲＡＭの故障が検出しやすくなるという効果があり、さらに少ないハードウェア資源の投入で実現できるという効果がある。
【発明を実施するための最良の形態】
【００２３】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２４】
図１は全体の構成を示したブロック図である。図１は、ＲＡＭテスト回路とＲＡＭを含んだ情報処理装置１０の構成を示しており、稼働中にＲＡＭをアクセスする回路については図示せず省略しているが、ＲＡＭ１３が主記憶装置として構成される場合はＣＰＵ（Central Processing Unit）や入出力制御部や通信制御部からＲＡＭへのアクセスが実行される。また、図１は機能を説明するために用意した図であり、実際の実装位置を示すものではない。
【００２５】
図１を参照すると、ＲＡＭ１３は情報処理装置１０の中ではＣＰＵ内部に設けられた例えば汎用レジスタとして使用されるＲＡＭであったりＩＯボードに実装されたＲＡＭであったり複数のＲＡＭで構成され主記憶のようなＲＡＭである。
【００２６】
ＲＡＭ要求信号３１は例えばＣＰＵのようなアクセス元の回路から送られるＲＡＭアクセスの要求であり、ＲＡＭ１３からのデータの読み出しを行うリード要求やＲＡＭ１３へのデータの書込を行うライト要求を含んでいる。要求アドレス３２はＲＡＭ要求に伴って送られるアドレス情報であり、ライトデータ３３はＲＡＭ要求がライト要求の際にＲＡＭ要求に伴って送られるＲＡＭ１３への書込データであり、リードデータ３４はＲＡＭ要求がリード要求の際にＲＡＭ１３から読み出したデータである。
【００２７】
図１ではＲＡＭ要求信号３１、要求アドレス３２、ライトデータ３３はそれぞれセレクタ等へ直接供給する構成としているが、要求元とのインタフェースにおいて、又はＲＡＭ１３のアクセスの処理においてＲＡＭ要求信号受信時にアドレスとデータを保持しておく必要があれば、レジスタを挿入して保持するようにすればよい。ここでは、説明を簡素化するために保持の必要が無いものとする。
【００２８】
以上説明したＲＡＭ１３、ＲＡＭ要求信号３１、要求アドレス３２、ライトデータ３３、リードデータ３４は通常稼働においても必要とする構成であるが、以下はＲＡＭテストを通常のプログラム稼働中に実行するために設けた構成である。
【００２９】
テスト部２０は、ＲＡＭテストの実行を制御する回路であり、アドレスカウンタ２１とデータ生成部２２と制御部２３とを含む。アドレスカウンタ２１はＲＡＭテストを実行する際のＲＡＭ１３のアドレスを保持するカウンタであり、ＲＡＭ１３のアクセス単位であるワードのテストを進めるたびに次のワードアドレスへ更新する。
【００３０】
データ生成部２２はテスト用の書込データを生成する機能を有する。生成するテストデータについては特に限定しないが、例えば予め決められたパターンのデータを制御部２３の指示で選択して出力するようにしても良いし、他の方法で不特的のパターンを生成するようにしてもよい。
【００３１】
制御部２３は、ＲＡＭテストを制御する回路であり、通常ハードウェアの回路で実現されるが、全体或いは一部をマイクロプログラムで制御するようにしてもよい。図２は制御部２３を説明するための図である。
【００３２】
制御部２３はテスト開始信号３５によりＲＡＭテストを開始し、以降、ＲＡＭ要求をリード要求かライト要求かに分け、アドレス一致信号データ一致信号を受けて、アドレスセレクタ１１，ライトセレクタ１２、リードセレクタ１４、退避セレクタ１６、退避レジスタ１７を制御してＲＡＭテストを実行する。
【００３３】
また、制御部２３は、テスト中フラグ２５と退避中フラグ２４を持つ。テスト中フラグ２５はテスト開始信号３５によりセットされテスト終了時にリセットされる。退避中フラグ２４は、退避レジスタ１７に退避中のデータがあることを示すフラグであり、要求アドレス３２とアドレスカウンタ２１が一致した場合に、ＲＡＭ要求のアクセス先をＲＡＭ１３から退避レジスタへ切り換えてテストと通常アクセスを並列実行する。
【００３４】
アドレスセレクタ１１は、ＲＡＭ１３に供給するアドレスを制御部２３の指示に従って要求アドレス３２とアドレスカウンタ２１とから選択する回路である。ライトセレクタ１２は、ＲＡＭ１３に供給する書込データを制御部２３の指示に従ってライトデータ３３とデータ生成部２２から選択する回路である。リードセレクタ１４はアクセス元へ返却する読み出しデータを制御部２３の指示に従ってＲＡＭ１３と退避レジスタ１７から選択する回路である。
【００３５】
退避レジスタ１７は、ＲＡＭ１３のアクセス幅に応じた幅のレジスタであり、制御部２３の指示に従って、テスト中にＲＡＭ１３のデータを一時的に退避しておく。退避セレクタ１６は退避レジスタに供給するデータを制御部２３の指示に従ってＲＡＭ１３と書込データから選択する。
【００３６】
アドレス比較部１５は要求アドレスとアドレスカウンタ２１のアドレスが一致するかを比較し、結果をアドレス一致信号として制御部２３に伝える。データ比較部１８はＲＡＭ１３のデータとデータ生成部２２のデータが一致するかを比較し、結果をデータ一致信号として制御部２３に伝える。
【００３７】
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。以降の動作説明において、説明の都合上ＲＡＭ１３を２５６ワード構成とし、退避レジスタは１ワード幅とする。ただし、ワードとはＲＡＭ１３をアクセスする単位データ幅を示し、テストやＲＡＭ要求のアクセスはワード単位で実行される。
【００３８】
図３は、本発明の動作を示したフローチャートである。ただし、このフローチャートに示した動作をハードウェアの回路で実行する場合、図３の各ステップは可能な範囲で並列して同時に実行することとなる。
図３を参照すると、ＲＡＭテスト開始においてテスト開始信号３５が入力されると、制御部２３はアドレスカウンタ２１を初期値０００＃（＃は１６進数表示であることを示す）にリセットし、テスト中フラグ２５をセットする（Ｓ５１）。テスト開始信号は通常ＣＰＵ又は診断装置から送られる。ＲＡＭテストはアドレス＝０００＃のワードから開始されアドレス＝０ＦＦ＃まで実行される。
【００３９】
テスト中フラグ２５がセットされると、制御部２３はＲＡＭ要求が無い時間を利用してテストを進める。ＲＡＭテストは制御部２３の制御によりＲＡＭデータの退避とテストデータの書き込みと書き込んだデータの比較と退避データのＲＡＭへの戻しという４つの動作を各ワードに対して順次実行し、これを全ワードに対して繰り返し実行することにより終了する。上記各動作はそれぞれＲＡＭ要求と競合しないように実行される。
【００４０】
まずＲＡＭデータの退避の動作は、ＲＡＭ要求の無いことを確認する（Ｓ５２）。もしＲＡＭ要求があればＲＡＭ要求の処理が終わりＲＡＭ要求が無くなるのを待つ。ＲＡＭ要求がなければ次へ進む。
【００４１】
次に、ＲＡＭ１３からデータを読み出して退避レジスタ１７に格納し、退避中フラグ２４をセットする（Ｓ５３）。このとき制御部２３は退避セレクタ１６に対してＲＡＭ１３を選択するよう指示し、退避レジスタ１７にデータの更新を指示するよう動作する。なお、最初はアドレスカウンタ２１が初期値０００＃であるので、ＲＡＭ１３の０番地のデータを退避することになる。退避中フラグ２４はデータが退避レジスタ１７に退避されたからＲＡＭ１３に戻されるまで有効になる。Ｓ５１とＳ５２は制御部２３がハードウェア回路で実現される場合は、同じサイクルで実行される。サイクルとはハードウェア回路がクロックを基準として定義され繰り返される期間のことである。
【００４２】
ここで、ＲＡＭ要求の動作について説明する。図４はＲＡＭ要求の動作の論理を示した図である。ＲＡＭ要求の動作とはＲＡＭ要求３１が有効の場合の動作を示す。退避中フラグ２４が無効の場合は、ＲＡＭ要求はＲＡＭ１３に対して通常通り実行される。アドレスセレクタ１１は要求アドレス３２を選択し、ライトセレクタ１２はライトデータ３３を選択し、リードセレクタ１４はＲＡＭ１３を選択し、退避レジスタ１７は保持される。例えば、リード要求では要求アドレス３２でアドレスしたＲＡＭ１３のデータがリードセレクタ１４から返却され、ライト要求ではライトデータ３３がＲＡＭ１３の要求アドレス３２でアドレスされるワードに書き込まれる。
【００４３】
また、退避中フラグ２４が有効でアドレス一致３６が無効の場合は無効の場合と同じ動作をし、ＲＡＭ要求はＲＡＭ１３に対して実行される。
【００４４】
退避中フラグ２４が有効でアドレス一致３６が有効の場合、ＲＡＭデータは退避レジスタ１７に退避中であるためＲＡＭ要求はＲＡＭ１３に代えて退避レジスタ１７に対して実行される。リードセレクタ１４は退避レジスタ１７を選択し、退避セレクタ１６はライトデータ３３を選択する。例えば、リード要求では退避レジスタ１７に退避されているＲＡＭデータがリードセレクタ１４から返却され、ライト要求ではライトデータ３３が退避レジスタ１７に書き込まれる。このとき、ＲＡＭテストも同時に動作し、アドレスセレクタ１１とライトセレクタ１２は以降に示すように各動作内容に応じて制御部２３により制御される。
【００４５】
次に、テストデータの書き込みの動作は、ＲＡＭ要求３１が無いか（Ｓ５４）、又はアドレス一致３６が有効（Ｓ５５）なことが確認できれば次に進む。もしＲＡＭ要求３１が有効で且つアドレス一致３６が無効であればＲＡＭ要求３１の処理が終わりＲＡＭ要求３１が無効になるのを待つ。
【００４６】
次に、制御部２３は、アドレスセレクタ１１に対してアドレスカウンタ２１を選択するよう指示し、データセレクタ１２に対してデータ生成部２２を選択するよう指示し、ＲＡＭ１３に書き込みを指示することにより、データ生成部２２が作成したテストデータ（Ａ）をライトセレクタ１２を介してアドレスカウンタ２１でアドレスされるＲＡＭ１３のワードに書き込む（Ｓ５６）。Ｓ５４とＳ５５とＳ５６は制御部２３がハードウェア回路で実現される場合は、同じサイクルで実行される。
【００４７】
次に、データの比較の動作は、ＲＡＭ要求３１が無いか（Ｓ５７）、又はアドレス一致３６が有効（Ｓ５８）なことが確認できれば次に進む。もしＲＡＭ要求３１が有効で且つアドレス一致３６が無効であればＲＡＭ要求３１の処理が終わりＲＡＭ要求３１が無効になるのを待つ。
【００４８】
次に、制御部２３は、アドレスセレクタ１１に対してアドレスカウンタ２１を選択するよう指示し、アドレスカウンタ２１でアドレスしたＲＡＭ１３のデータとデータ生成部２２が作成したテストデータ（Ａ）とをデータ比較部１８に供給して比較させ、一致するかを確認する（Ｓ５９）。Ｓ５７とＳ５８とＳ５９は制御部２３がハードウェア回路で実現される場合は、同じサイクルで実行される。
【００４９】
ＲＡＭ１３のデータがテストデータ（Ａ）と一致すればデータ比較部１８はデータ一致信号３７を有効にする。制御部２３はデータ一致信号３７が有効である場合は次へ進み、無効である場合にＲＡＭ１３の異常と判定する。
【００５０】
異常を判定した後の動作については特に限定しないが、即座にテストを中止して異常のあることをＣＰＵや診断装置に通知しても良いし、退避データをＲＡＭ１３に書き戻して続行可能な状態に戻してからテストを中止してＣＰＵや診断装置に通知しても良いし、異常に関するデータ（異常となったアドレスやテストデータ）をＲＡＭ１３やＲＡＭ１３とは別途も受けた記憶手段の予め決められた領域に図示しない手順にて記憶しておき、全ワードのテストが終了した時点でＣＰＵや診断装置に通知するようにしてもかまわない。
【００５１】
次に、退避データのＲＡＭへの戻しの動作は、ＲＡＭ要求３１が無いか（Ｓ６０）、又はアドレス一致３６が有効（Ｓ６１）なことが確認できれば次に進む。もしＲＡＭ要求３１が有効で且つアドレス一致３６が無効であればＲＡＭ要求３１の処理が終わりＲＡＭ要求３１が無効になるのを待つ。
【００５２】
次に、制御部２３は、アドレスセレクタ１１に対してアドレスカウンタ２１を選択するよう指示し、ライトデータセレクタ１２に対して退避レジスタ１７を選択するように指示し、ＲＡＭ１３に書き込みを指示して、退避レジスタ１７に退避しておいたＲＡＭデータを元の場所に書き戻し、書き戻すと同時に退避中フラッグをリセットして無効にする（Ｓ６２）。
【００５３】
続いて、制御部２３はアドレスカウンタ２１を更新する（Ｓ６３）。最初はアドレスカウンタ２１はその内容を０００＃から００１＃に更新される。Ｓ６０とＳ６１とＳ６２とＳ６３は制御部２３がハードウェア回路で実現される場合は、同じサイクルで実行される。
【００５４】
制御部２３はアドレスカウンタ２１の値に基づいて終了したかを判定する（Ｓ６４）。この例ではアドレスカウンタ２１の値が１００＃である場合に制御部２３は終了したと判断する。
【００５５】
ＲＡＭテストが終了していない場合はテスト対象のワードを次にアドレスに移してステップＳ５２からの動作を繰り返す。この例ではテストが実行されるのはアドレスカウンタ２１の値が０００＃から０ＦＦ＃までのワードである。ＲＡＭテストが終了した場合は、テスト中フラグ２５をリセットして制御部２３はＲＡＭテストを終了する（Ｓ６５）。
【００５６】
以上のように、本発明では、ＲＡＭテスト対象領域の一部を順次退避しながらテストするので、退避のために必要とするハードウェア量が少なくてすむ。また、ＲＡＭテストの実行を退避・テスト書込・比較・戻しの４つの動作に分け各動作毎に通常のＲＡＭアクセスと競合しないように並行して処理を進めるようにしているため、退避についても通常アクセスに影響を与えずに実行できる。従って、従来のようにテスト前の事前準備としてテスト対象領域のデータを一斉に退避領域又は退避用のバッファへ移動させるために稼働中のＪＯＢ（プログラムのまとまった作業単位）に影響を与えることを回避できる。
【００５７】
例えば、ＲＡＭテストが通常のＲＡＭアクセスと競合した場合でも通常のアクセスを優先させて処理するだけでなく、テストのための割込が１動作分の１サイクルのみですむため通常アクセスを遅らせることを回避できる。またデータの退避中に要求アドレスとテストアドレスとが一致した場合は通常アクセスとＲＡＭテストを同時に実行できるので、ＲＡＭテストをより効率的に実行することができる。
【００５８】
以上の説明では、退避レジスタ１７を１ワード幅として説明してきたが、例えば２ワード幅、４ワード幅としても本発明を適用することができる。例えば、退避レジスタ１７が２ワード幅のＲＡＭテスト回路は、ＲＡＭデータの退避動作を２ワード分連続して行い、テストデータの書き込み動作を１ワードずつ２回に分けて行い、データの比較動作を１ワードずつ２回に分けて行い、退避データのＲＡＭへの戻しの動作を２ワード分連続して行うことにより実現できる。
【００５９】
退避レジスタ１７に複数ワード保持するようにした場合、アドレス比較部１５は、連続した複数ワード数の単位で比較するように構成する必要がある。例えば、退避レジスタ１７に２ワードを退避するようにした場合、アドレスの最下位ビットを比較対象から除外することにより偶数番地と続く奇数番地の２ワード単位で比較することができ、容易に実現することができる。
【図面の簡単な説明】
【００６０】
【図１】本発明の構成を示したブロック図である。
【図２】本発明の制御部２３の詳細を示した図である。
【図３】本発明の動作を示したフローチャートである。
【図４】本発明の通常アクセスの動作論理を示した図である。
【符号の説明】
【００６１】
１０    情報処理装置
１１    アドレスセレクタ
１２    ライトセレクタ
１３    ＲＡＭ
１４    リードセレクタ
１５    アドレス比較部
１６    退避セレクタ
１７    退避レジスタ
１８    データ比較部
２０    テスト部
２１    アドレスカウンタ
２２    データ生成部
２３    制御部
２４    退避中フラグ
２５    テスト中フラグ
【図１】
2006039843.tif 000003
【図２】
2006039843.tif 000004
【図３】
2006039843.tif 000005
【図４】
2006039843.tif 000006