(57)【特許請求の範囲】
【請求項１】
テスト条件設定命令のビット数よりも少ないビット数のテストバス端子に接続されると共に、複数の記憶領域によって構成され、前記テストバス端子のビット数に応じて分割されて外部から入力されたテスト条件設定命令を前記複数の記憶領域のうち指定された記憶領域に記憶する第１の記憶手段と、
動作モードを低速又は高速に切替える切替手段と、
高速で実行するテスト用プログラムを記憶した第２の記憶手段と、
前記第１の記憶手段に記憶された前記テスト条件設定命令を読み込んでテスト条件を設定し、前記切替手段によって動作モードが高速に切替えられた場合に前記テスト条件に基づくテスト用プログラムを前記第２の記憶手段から読み込んで実行する実行手段と、
前記実行手段による実行結果を記憶する第３の記憶手段と、
を有するプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プロセッサに関する。
【０００２】
【従来の技術】
従来より、プロセッサを装置に搭載した場合には、装置使用前にプロセッサの精度等をテストすることが行われている。高速動作可能なプロセッサをテストする場合、プロセッサには外部に備えられたテスタから高速でテストパターン（テスト用プログラム）が入力され、プロセッサはこのテストパターンを実行して実行結果を出力する。
【０００３】
入力されたテストパターンを実行することによってプロセッサから出力された実行結果は、外部に備えられたテスタに入力される。テスタでは、実行結果を予め定められた期待値と比較する。テスタによって実行結果が期待値と一致していると判定された場合には、プロセッサが所望の精度であると判断することができる。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の高速動作可能なプロセッサでは、高速なインターフェースが可能なテスタを配設し、プロセッサの処理速度に対応する速度（高速）でテストパターンを入力する必要がある。このため、既存のテスタ（低速テスタ）の能力を上回るプロセッサのテストを行おうとすると、プロセッサの処理速度の方が速いのでテストすることができなくなる。すなわち、既存のテスタは高速なインターフェースが不可能であるため、テスタの能力を上回るプロセッサに対してはテストすることができないという問題が生じる。従って、高速動作可能なプロセッサの精度等をテストする場合に既存のテスタを用いることは困難である。
【０００５】
また、高速動作可能なプロセッサでは、テスタから高速でテストパターンを入力するため、テストパターンの語長分の端子を実装する必要がある。このため、テストパターンの語長が長くなるに伴ってプロセッサに実装するべき端子数が増大するという問題が発生する。
【０００６】
本発明は上記問題点を解消するためになされたもので、既存のテスタを用いてテストすることができるプロセッサを提供することを目的とする。
【０００７】
また、実装する端子の数を低減することができるプロセッサを提供することを目的としている。
【０００８】
【課題を解決するための手段】
上記目的を達成するために請求項１に記載の発明は、テスト条件設定命令のビット数よりも少ないビット数のテストバス端子に接続されると共に、複数の記憶領域によって構成され、前記テストバス端子のビット数に応じて分割されて外部から入力されたテスト条件設定命令を前記複数の記憶領域のうち指定された記憶領域に記憶する第１の記憶手段と、動作モードを低速又は高速に切替える切替手段と、高速で実行されるテスト用プログラムを記憶する第２の記憶手段と、前記第１の記憶手段に記憶された前記テスト条件設定命令を読み込んでテスト条件を設定し、前記切替手段によって動作モードが高速に切替えられた場合に前記テスト条件に基づくテスト用プログラムを前記第２の記憶手段から読み込んで実行する実行手段と、前記実行手段による実行結果を記憶する第３の記憶手段と、を有している。
【０００９】
請求項１に記載の発明のプロセッサには、テスト条件設定命令のビット数よりも少ないビット数のテストバス端子に接続されると共に、複数の記憶領域によって構成され、前記テストバス端子のビット数に応じて分割されて外部から入力されたテスト条件設定命令を前記複数の記憶領域のうち指定された記憶領域に記憶する第１の記憶手段が設けられている。テスト条件設定命令とは、プロセッサの精度等をいずれの方法でテストするかを指示する命令である。また、プロセッサには、動作モードを低速又は高速に切替える切替手段、及びテスト用プログラムが記憶された第２の記憶手段が設けられている。第２の記憶手段に記憶されたテスト用プログラムは、高速で実行される。
【００１０】
さらに、プロセッサには、第１の記憶手段に記憶されたテスト条件設定命令を１命令ずつ読み込んでテスト条件を設定すると共に、設定されたテスト条件に基づくテスト用プログラムを第２の記憶手段から読み込んで実行する実行手段が設けられている。実行手段がテスト条件を設定する際、動作モードは低速に切替えられている。一方、実行手段がテスト用プログラムを実行する際、切替手段によって動作モードは高速に切替えられる。すなわち、テスト用プログラムは高速で実行される。この実行手段によるテスト用プログラムの実行結果は、第３の記憶手段に記憶される。
【００１１】
以上のように、動作モードを低速又は高速に切替えることができるので、外部からのテスト条件設定命令の入力等の外部インターフェースは低速で行い、テスト用プログラムの実行等の内部動作は高速で行うことができる。従って、既存のテスタを用いてプロセッサをテストすることができる。
【００１３】
請求項１に記載の発明のプロセッサによれば、外部から入力されたテスト条件設定命令を記憶する第１の記憶手段は、テスト条件設定命令のビット数よりも少ないビット数のテストバス端子に接続されると共に、入力されたテスト条件設定命令を分割して記憶することができるように複数の記憶領域によって構成されている。これにより、テスト条件設定命令をテストバス端子のビット数に応じて分割して入力することができるため、プロセッサに実装する端子数を低減することができる。
【００１４】
従って、外部から入力されるテスト条件設定命令等の命令語長が長くなった場合においても複雑化することなくプロセッサを構成することができる。
【００１８】
【発明の実施の形態】
［第１の実施の形態］
図１には、本第１の実施の形態に係る高速動作可能なプロセッサ１０及びテスト用のパラメータを設定するテスタ２２が示されている。
【００１９】
図１に示されるように、プロセッサ１０は、プロセッサコア１２、２４ビットのテスト用レジスタ１４、２４ビットのプログラムＲＯＭ１６、データＲＡＭ１８、及びテスト付加回路２０を含んで構成されている。
【００２０】
テスト用レジスタ１４には、２４ピンのテストバス端子ＴＤ、１ピンのテストライト端子ＴＷＲ、及び１ピンのテストリード端子ＴＲＤが備えられている。これらのテストバス端子ＴＤ、テストライト端子ＴＷＲ及びテストリード端子ＴＲＤは、それぞれテスタ２２に接続されている。
【００２１】
テスタ２２には、上記テストバス端子ＴＤ、テストライト端子ＴＷＲ、及びテストリード端子ＴＲＤに加えてテストコントロール端子ＴＣＮＴの一端が接続されている。テストコントロール端子ＴＣＮＴの他端は、テスト付加回路２０に接続されている。
【００２２】
テスト付加回路２０は、テスタ２２が出力するテストコントロール信号等によってプロセッサコア１２の動作を制御するもので、プロセッサコア１２を１マシンサイクルだけホールド状態を解除してプロセッサコア１２に１命令ずつ実行させるためのシングルステップ機能等を備えている。
【００２３】
プロセッサコア１２がシングルステップ機能によって動作する場合には、ホールド状態の解除とセットが繰り返されるため動作モードが低速になる。一方、プロセッサコア１２がテスト用プログラムを実行する場合には、ホールド状態の解除が継続されるため動作モードは高速になる。プロセッサコア１２が高速で実行するテスト用プログラムは、プログラムＲＯＭ１６に予め記憶されている。また、プロセッサコア１２がテスト用プログラムを実行することによって得られる結果（実行結果）はデータＲＡＭ１８に記憶される。
【００２４】
次に、本発明の第１の実施の形態の作用を図２に示されるテスト付加回路２０で実行される制御ルーチン、図３に示されるプロセッサコア１２で実行される制御ルーチン及び図４に示されるタイミングチャートを参照して説明する。
【００２５】
テスト条件設定命令をテスト用レジスタ１４に書き込む際には、テスタ２２からテストライト信号をテスト用レジスタ１４に出力し、テストバス端子ＴＤを介してテスタ２２から２４ビットのテスト条件設定命令をテスト用レジスタ１４に出力する（図４のＡ領域参照）。このとき、テスト用レジスタ１４には、テストバス端子ＴＤが２４ピン備えられているため、テスタ２２から出力される２４ビットのテスト条件設定命令はテスト用レジスタ１４にパラレルで入力され書き込まれる。
【００２６】
ここで、図２に示されるテスト付加回路２０で実行される制御ルーチンを参照し、テスト付加回路２０の制御について説明する。
【００２７】
ステップ１００では、テスタ２２が出力したテスト条件設定命令がテスト用レジスタ１４に書き込まれたか否かを判定する。この判定は、所定時間が経過したときにテスタ２２がテストライト信号を出力していないことを検出したか否かを判断することにより判定される。すなわち、所定時間が経過してもテスタ２２がテストライト信号を出力していないことを検出した場合に、テスト用レジスタ１４に対するテスト条件設定命令の書き込みが終了したと判定する。
【００２８】
ステップ１００においてテスト条件設定命令の書き込みが終了したと判定された場合には、ステップ１０２に移行し、テスタ２２が出力するテストコントロール信号が入力されたか否かを判定する。
【００２９】
このステップ１０２において、テストコントロール信号が入力されていないと判定された場合には、ステップ１０４に移行してプロセッサコア１２のホールド状態を解除する。次のステップ１０６では、所定クロックＴ1 （図４参照）が経過したか否かを判定する。このステップ１０６において所定クロックＴ1 が経過したと判定された場合には、ステップ１１２に移行する。ステップ１１２では、ステップ１０４で解除されたプロセッサコア１２のホールド状態を再度セットして本制御ルーチンを終了する。
【００３０】
この結果、図４のＢ領域に示されるように、プロセッサコア１２は所定クロックＴ1 のホールド状態の解除とセットを繰り返す。
【００３１】
一方、ステップ１０２においてテストコントロール信号が入力されたと判定された場合には、ステップ１０８に移行して前述したステップ１０４と同様に、プロセッサコア１２のホールド状態を解除する。次のステップ１１０では、所定クロックＴ1 よりも長い所定クロックＴ2 （図４参照）が経過したか否かを判定する。ステップ１１０において所定クロックＴ2 が経過したと判定された場合には、ステップ１１２に移行してプロセッサコア１２のホールド状態を再度セットし、本制御ルーチンを終了する。
【００３２】
この結果、図４のＣ領域に示されるように、プロセッサコア１２はホールド状態の解除を所定クロックＴ2 継続する。
【００３３】
次に、図３に示されるプロセッサコア１２で実行される制御ルーチンを参照してプロセッサコア１２の制御を説明する。
【００３４】
まず、ステップ１２０では、ホールド信号が入力されたか否かを判定する。このステップ１２０においてホールド信号が入力されたと判定された場合には、プロセッサコア１２はホールド状態を継続する。
【００３５】
一方、ステップ１２０においてホールド信号が入力されていないと判定された場合、すなわちプロセッサコア１２のホールド状態が解除された場合には、ステップ１２２に移行する。ステップ１２２では、テストコントロール信号が入力されたことによってホールド状態が解除されたか否かを判定する。
【００３６】
ステップ１２２において、テストコントロール信号が入力されずホールド状態が通常の状態で解除されたと判定された場合には、ステップ１２４に移行する。ステップ１２４では、テスト用レジスタ１４に書き込まれているテスト条件設定命令を１命令実行し、次のステップ１２６において１命令に対するテスト条件をプロセッサコア１２内に設定する。ステップ１２８では、ホールド信号が入力されたか否かを判定し、ホールド信号が入力された場合に本制御ルーチンを終了する。
【００３７】
以上の結果、図４の領域Ｂに示されるように、所定クロックＴ1 のホールド状態の解除とセットが繰り返され、シングルステップ機能によって１命令ずつテスト条件設定命令が実行される。このとき、動作モードは低速になる。
一方、ステップ１２２においてテストコントロール信号が図４に示される所定タイミングＳで入力されてホールド状態が解除されたと判定された場合には、ステップ１３０に移行する。ステップ１３０では、設定されたテスト条件に基づいたテスト用プログラム、すなわちテスト条件によってパラメータが定められたテスト用プログラムを図４に示される領域Ｃで実行する。このとき、ホールド状態の解除が継続しているので、テスト用プログラムは高速で実行される。次のステップ１３２では、テスト用プログラムを実行することによって得られた結果（実行結果）をデータＲＡＭ１８に書き込む。テスト用プログラムの最後には、ホールド状態をセットするホールド命令が書き込まれている。このため、ステップ１３４では、ホールド命令を実行したか否かを判定し、ホールド命令を実行したときには制御ルーチンを終了する。この結果、テスト用プログラムの実行が終了した時点でホールド状態がセットされる。
【００３８】
データＲＡＭ１８に記憶されたテスト用プログラムの実行結果は、テスタ２２からテストリード信号を出力し、テストバス端子ＴＤを介して読み出される（図４に示されるＤ領域）。テスタ２２は、入力された実行結果と予め定められた期待値を比較し、プロセッサ１０の精度等をテストする。ここで、テスタ２２が実行結果と期待値が一致していると判定した場合には、プロセッサ１０が所望の精度であると判断する。
【００３９】
以上により、動作モードを切替えてプロセッサの外部に設けられたテスタ等に対する外部インターフェースは低速で行い、プロセッサの内部動作は高速で行うことができるので、既存のテスタを用いてプロセッサをテストすることができる。
【００４０】
［第２の実施の形態］
次に第２の実施の形態を説明する。本第２の実施の形態は、第１の実施の形態と略同様の構成があるため、同一部分には同一符号を付し詳細な説明を省略する。
【００４１】
図５には、第２の実施の形態に係るプロセッサ３０及びテスタ２２が示されている。本第２の実施の形態に係るプロセッサ３０は、第１の実施の形態で説明したプロセッサ１０と同様に、高速動作可能なプロセッサである。
【００４２】
第１の実施の形態では、テスト用レジスタ１４に２４ピンのテストインターフェース端子ＴＤが備えられているのに対し、本第２の実施の形態のテスト用レジスタ３２にはテストライト端子ＴＷＲ及びテストリード端子ＴＲＤがそれぞれ１ピンずつ備えられていると共に、８ピンのテストインターフェース端子ＴＤと２ピンのテストアドレス端子ＴＡが備えられている。
【００４３】
また、テスト用レジスタ３２は、第１の実施の形態のテスト用レジスタ１４と同様に２４ビットのテスト設定命令を書き込むことができるようになっているが、それぞれ８ビットの３つのレジスタＨ、Ｍ、Ｌから構成されている。テスト用レジスタ３２が３つに分割されていることにより、例えば２４ビットのテスト設定命令を８ビットずつ分割して書き込むことができる。分割されたそれぞれのテスト設定命令をいずれのレジスタＨ、Ｍ、Ｌに書き込むかは、テストアドレス端子ＴＡによって指示される。
【００４４】
次に、図６に示されるタイミングチャートを参照して本第２の実施の形態に係るプロセッサ３０の作用を説明する。
【００４５】
テスト条件設定命令をテスト用レジスタ３２に書き込む際には、テスタ２２からテストライト信号をテスト用レジスタ１４に出力し、テストバス端子ＴＤを介してテスタ２２からテスト条件設定命令をテスト用レジスタ１４に出力する（図６のＡ領域参照）。このとき、テスタ２２及びテスト用レジスタ１４には、テストバス端子ＴＤが８ピン備えられているため、２４ビットのテスト条件設定命令は８ビットずつに分割されてシリアルで入力され、８ビット分がパラレルで書き込まれる。分割された８ビットのテスト条件設定命令を書き込むレジスタは、テストアドレス端子ＴＡによって指示される。
【００４６】
テスト用レジスタ３２のレジスタＨ、Ｍ、Ｌのそれぞれに８ビットずつのテスト条件設定命令が書き込まれることにより、２４ビットのテスト条件設定命令がテスト用レジスタ３２に書き込まれると、前述した第１の実施の形態と同様の処理が行われる。すなわち、プロセッサコア１２がテスト条件を設定し（図６に示されるＢ領域）、設定されたテスト条件に基づくテスト用プログラムを高速で実行する（図６に示されるＣ領域）と共にテスタ２２がデータＲＡＭ１８に記憶されたテスト用プログラムの実行結果を読み出し（図６に示されるＤ領域）、期待値と比較する。これにより、プロセッサ３０をテストすることができる。
従って、第２の実施の形態に係るプロセッサは、テスト条件設定命令を分割して入力するので、テスト条件設定命令を入力するために実装する端子数を低減することができる。また、第１の実施の形態と同様に、動作モードを切替えてプロセッサの外部に備えられたテスタ等に対する外部インターフェースは低速で行い、内部動作は高速で行うことができるので、既存のテスタを用いてプロセッサのテストすることができる。
【００４７】
【発明の効果】
以上説明したように本発明によれば、動作モードを切替えて外部インターフェースは低速で行い、内部動作は高速で行うことができるので、既存のテスタを用いてプロセッサをテストすることができる、という優れた効果を有する。
【００４８】
また、テスト条件設定命令を分割して入力するので、プロセッサに実装する端子数を低減することができる、という優れた効果有する。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るプロセッサの構成を示す概略構成図である。
【図２】プロセッサを構成するテスト付加回路で実行される制御ルーチンを示すフローチャートである。
【図３】プロセッサを構成するプロセッサコアで実行される制御ルーチンを示すフローチャートである。
【図４】第１の実施の形態に係るプロセッサの各信号の出力タイミングを示すタイミングチャートである。
【図５】本発明の第２の実施の形態に係るプロセッサの構成を示す概略構成図である。
【図６】第１の実施の形態に係るプロセッサの各信号の出力タイミングを示すタイミングチャートである。
【符号の説明】
１０    プロセッサ
１２    プロセッサコア（実行手段）
１４    テスト用レジスタ（第１の記憶手段）
１６    プログラムＲＯＭ（第２の記憶手段）
１８    データＲＡＭ（第３の記憶手段）
２０    テスト付加回路（切替手段）
２２    テスタ
３２    テスト用レジスタ（第１の記憶手段）
【図１】
0004253715.tif 000002
【図２】
0004253715.tif 000003
【図３】
0004253715.tif 000004
【図４】
0004253715.tif 000005
【図５】
0004253715.tif 000006
【図６】
0004253715.tif 000007