(57)【特許請求の範囲】
【請求項１】
テストモードによる動作を指示された場合に通信動作のテストを行うマイクロプロセッサであって、
前記テストモードに関する動作を制御する制御手段と、
テストパターンを記憶するためのテストパターン記憶手段と、
前記テストパターンをマンチェスタ符号形式のデータに変換するデータ変換手段と、
テストモードによる動作を指示された場合に前記マンチェスタ符号形式のデータを選択出力する信号選択手段と、
前記信号選択手段に選択されたデータを受信し、外部通信機器に対してマンチェスタ符号形式の所定の信号処理結果（送信データ）を送信する通信処理手段と、
前記テストパターン記憶手段にテストパターンが保持されている状態（テストパターン保持状態）か否かを示す情報を格納するための状態格納手段と、
を備え、
前記テストパターン記憶手段は、シフトレジスタで構成され、前記テストパターンの出力処理にかかる時間が経過した後に、テストパターン保持状態でない旨を示す情報を前記状態格納手段に格納し、
前記制御手段は、前記テストパターン記憶手段に対して連続してテストパターンの書き込みを行う場合、前記状態格納手段の内容がテストパターン保持状態でないことを確認した後に、次のテストパターンの書き込みを行う
ことを特徴とするマイクロプロセッサ。
【請求項２】
テストモードによる動作を指示された場合に通信動作のテストを行うマイクロプロセッサであって、
前記テストモードに関する動作を制御する制御手段と、
テストパターンを記憶するためのテストパターン記憶手段と、
前記テストパターンをマンチェスタ符号形式のデータに変換するデータ変換手段と、
テストモードによる動作を指示された場合に前記マンチェスタ符号形式のデータを選択出力する信号選択手段と、
前記信号選択手段に選択されたデータを受信し、外部通信機器に対してマンチェスタ符号形式の所定の信号処理結果（送信データ）を送信する通信処理手段と、
を備え、
前記テストパターン記憶手段は、シフトレジスタで構成され、前記テストパターンの出力処理にかかる時間が経過した後に、その旨を示す信号を前記制御手段に対して出力し、
前記制御手段は、前記テストパターン記憶手段に対して連続してテストパターンの書き込みを行う場合、前記テストパターン記憶手段から送られてくる信号を受信した後に、次のテストパターンの書き込みを行うことを特徴とするマイクロプロセッサ。
【請求項３】
テストモードによる動作を指示された場合に通信動作のテストを行うマイクロプロセッサであって、
前記テストモードに関する動作を制御する制御手段と、
テストパターンを記憶するためのテストパターン記憶手段と、
前記テストパターンをマンチェスタ符号形式のデータに変換するデータ変換手段と、
テストモードによる動作を指示された場合に前記マンチェスタ符号形式のデータを選択出力する信号選択手段と、
前記信号選択手段に選択されたデータを受信し、外部通信機器に対してマンチェスタ符号形式の所定の信号処理結果（送信データ）を送信する通信処理手段と、
前記テストパターン記憶手段に対して直接テストパターンの書き込み制御を行う書込制御手段、
を備え、
前記テストパターン記憶手段は、シフトレジスタで構成され、前記テストパターンの出力処理にかかる時間が経過した後に、その旨を示す信号を前記書込制御手段に対して出力し、
前記書込制御手段は、前記テストパターン記憶手段に対して連続してテストパターンの書き込みを行う場合、前記テストパターン記憶手段から送られてくる信号を受信した後に、次のテストパターンの書き込みを行うことを特徴とするマイクロプロセッサ。
【請求項４】
前記テストパターン記憶手段は、前記テストパターンを取得した時点からの入力クロック信号をカウントし、カウント数が当該テストパターンのビット数に達した場合に、前記テストパターンの出力処理にかかる時間が経過したと判断することを特徴とする請求項１〜３のいずれか一つに記載のマイクロプロセッサ。
【請求項５】
前記データ変換手段は、
入力クロック信号を２逓倍する２逓倍手段と、
前記２逓倍後のクロック信号と前記テストパターン記憶手段からの出力信号とのＸＮＯＲ演算を実行するＸＮＯＲ演算手段と、
を備え、
前記ＸＮＯＲ演算手段の演算結果を、マンチェスタ符号形式のデータとして出力することを特徴とする請求項１〜４のいずれか一つに記載のマイクロプロセッサ。
【請求項６】
前記テストパターン記憶手段から出力されるテストパターン、または、前記データ変換手段から出力されるマンチェスタ符号形式のデータ、のいずれか一方を選択し、当該選択した信号を出力する信号形式選択手段、
を備え、
前記信号選択手段は、テストモードによる動作を指示され、かつ、前記信号形式選択手段によりテストパターン記憶手段から出力されるテストパターンが選択されている場合、当該テストパターンを選択出力することを特徴とする請求項１〜５のいずれか一つに記載のマイクロプロセッサ。
【請求項７】
前記通信処理手段から出力される送信データを格納するための送信データ格納手段、
を備えることを特徴とする請求項１〜６のいずれか一つに記載のマイクロプロセッサ。
【請求項８】
前記送信データ格納手段が送信データを格納するタイミングを変更する格納タイミング変更手段、
を備え、
前記送信データ格納手段は、前記格納タイミングに応じて、前記通信処理手段が出力するマンチェスタ符号形式の送信データを格納するか、当該マンチェスタ符号形式のデータをＮＲＺ符号に変換したデータを格納するか、を選択可能とすることを特徴とする請求項７に記載のマイクロプロセッサ。
【請求項９】
前記通信処理手段から出力される送信データに対して圧縮処理を実行する圧縮手段と、
前記圧縮手段の処理結果を格納するための圧縮データ格納手段と、
を備えることを特徴とする請求項１〜８のいずれか一つに記載のマイクロプロセッサ。
【請求項１０】
前記圧縮手段が送信データを圧縮するタイミングを変更する圧縮タイミング変更手段、
を備え、
前記圧縮手段は、前記圧縮タイミングに応じて、前記通信処理手段が出力したマンチェスタ符号形式のデータを圧縮するか、当該マンチェスタ符号形式のデータをＮＲＺ符号に変換したデータを圧縮するか、を選択可能とすることを特徴とする請求項９に記載のマイクロプロセッサ。
【請求項１１】
前記通信処理手段、前記テストパターン記憶手段、および前記データ変換手段を動作させるためのクロック信号の周波数を変更する周波数変更手段、
を備えることを特徴とする請求項１〜１０のいずれか一つに記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部の通信機器との間で通信を行う機能を備えたマイクロプロセッサに関するものであり、特に、通信動作に関するテスト機能を備えたマイクロプロセッサに関するものである。
【背景技術】
【０００２】
外部通信機器との間で通信を行う機能を備えたマイクロプロセッサは、システム開発のデバッグ時、製品化後の保守点検時など、必要に応じて通信動作の確認作業を必要とするが、その一方で、通信動作確認作業の容易化が課題の一つとして挙げられている。このような課題を考慮したマイクロプロセッサとして、たとえば、外部の通信機器を必要とせずに、スタンドアロンで通信動作の一部が確認可能な機能を備えたマイクロプロセッサが存在する。
【０００３】
上記スタンドアロンで通信動作が確認可能なマイクロプロセッサの一例として、図１３に示した構成のマイクロプロセッサがある。このマイクロプロセッサは、ＣＰＵ（Central  Processing  Unit）１０１と、アドレスバス１０２と、データバス１０３と、外部通信機器と通信を行うための通信回路１０４と、受信データおよび送信データを格納するための通信バッファ１０５と、通常モードまたはテストモードのいずれか一方の動作モードを指定するデータを格納するためのレジスタ１０６と、スタンドアロンで受信動作を確認する際に使用する動作確認用データ（テストパターン）を格納するためのレジスタ１０７と、シフトレジスタ１０８と、上記レジスタ１０６に格納されているデータに基づいて外部通信機器からの受信データまたは上記シフトレジスタ１０８の出力データのいずれか一方を選択し、当該選択結果を信号Ｓ２０１として通信回路１０４に対して出力するセレクタ１０９と、を備える。
【０００４】
このような構成をとるマイクロプロセッサにおいて、レジスタ１０６に格納されたデータが通常モードでの動作を指示するものである場合、セレクタ１０９は、外部通信機器からの受信データを選択し、それを信号Ｓ２０１として通信回路１０４に対して出力する。そして、通信回路１０４は、入力信号Ｓ２０１に対する受信処理を実行し、当該受信処理の結果として得られた信号（受信データ）を通信バッファ１０５に格納する。以下、マイクロプロセッサは、通信バッファ１０５に格納された受信データに応じた通信動作を行う。
【０００５】
これに対して、レジスタ１０６に格納されたデータがテストモードでの動作を指示するものである場合、ＣＰＵ１０１は、レジスタ１０７に対する書き込み要求信号Ｓ２０２として“Ｈレベル”（有効）を出力する。つぎに、ＣＰＵ１０１は、任意の受信データ（テストパターン）列を、データバス１０３を介してレジスタ１０７に対して出力する。レジスタ１０７に一旦格納された上記受信データ列は、シフトレジスタ１０８に対して出力され、シフトレジスタ１０８は、レジスタ１０７から受け取ったデータ列をセレクタ１０９に対して出力する。セレクタ１０９は、シフトレジスタ１０８から受け取ったデータを、信号Ｓ２０１として通信回路１０４に対して出力する。以下、上述した通常モードでの動作時と同様の処理が実行される。
【０００６】
このように、従来のマイクロプロセッサにおいては、外部通信機器からの受信信号に代えて任意の受信データ（テストパターン）を通信回路へ入力し、通信回路が入力されたテストパターンに対する受信処理を行うことにより、スタンドアロンでプロトコル障害の確認テストおよび通信回路のテストを行う。このような技術は、たとえば特許文献１に記載されている。
【特許文献１】特開平１１−３５３２５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、外部通信機器と通信を行う通信回路と任意の通信データを入力する回路を備える上記従来のマイクロプロセッサにおいては、たとえば、マンチェスタ符号により通信を行う場合、１つの通信データが２ビットで表現されるため、ＮＲＺ（Non  Return  to  Zero）符号を使用する場合と比較して、あらかじめ準備しておくテストパターンが増大する、という問題があった。
【０００８】
また、マンチェスタ符号で表された１つの受信情報を通信バッファに格納するためにクロック２周期分の時間を要するため、テスト時間が増大する、という問題があった。
【０００９】
さらに、送信動作のプロトコル確認を行うためには、外部通信機器を使用する必要がある、という問題があった。
【００１０】
本発明は、上記に鑑みてなされたものであって、マンチェスタ符号化されたデータの送受信を行う通信機器が、動作確認を行うために必要なデータ（テストパターン）およびテスト時間、が増大することを防止するマイクロプロセッサを得ることを目的とする。
【００１１】
また、送信動作のプロトコル確認を行うにあたって、外部通信機器を必要とせず、容易に通信動作を確認できるマイクロプロセッサを得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明にかかるマイクロプロセッサは、テストモードによる動作を指示された場合に通信動作のテストを行うマイクロプロセッサであって、前記テストモードに関する動作を制御する制御手段と、テストパターンを記憶するためのテストパターン記憶手段と、前記テストパターンをマンチェスタ符号形式のデータに変換するデータ変換手段と、テストモードによる動作を指示された場合に前記マンチェスタ符号化されたデータを選択出力する信号選択手段と、前記信号選択手段に選択されたデータを受信し、外部通信機器に対してマンチェスタ符号形式の所定の信号処理結果（送信データ）を送信する通信処理手段と、を備えることを特徴とする。
【発明の効果】
【００１３】
この発明によれば、テストパターンのデータ量が増大する問題を回避することができる、という効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明にかかるマイクロプロセッサの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態１．
図１は、本発明にかかるマイクロプロセッサの実施の形態１の構成例を示す図である。このマイクロプロセッサは、周辺デバイスの制御などを行うＣＰＵ１と、アドレスバス２と、データバス３と、後述するセレクタ１０に選択された信号を受信し、外部通信機器に対してマンチェスタ符号形式の所定の信号処理結果（送信データ）を送信する通信回路４と、受信データおよび送信データを格納するための通信バッファ５と、通常モードまたはテストモードのいずれか一方の動作モードを指定するデータを格納するためのレジスタ６と、テストモード時に使用する動作確認用データ（テストパターン）を格納するためのレジスタ７と、レジスタ７に格納された動作確認用データを所定のタイミングで取得し、当該取得したデータをシリアルに出力するシフト回路８と、入力信号に対してマンチェスタ符号化処理を実行する変換回路９と、変換回路９の出力信号（動作確認用受信データ）と外部通信機器からの受信信号のいずれか一方を選択し、選択した信号を信号Ｓ１１３として通信回路４に対して出力するセレクタ１０と、レジスタ７に動作確認用データが格納されているか否かを示すデータを格納するレジスタ１１と、を備える。
【００１６】
上述したような構成をとる本実施の形態のマイクロプロセッサは、レジスタ６に格納されたデータが通常モードでの動作を指示する場合、外部通信機器から受信したデータに応じた受信動作を行う。一方、レジスタ６に格納されたデータがテストモードでの動作を指示する場合、レジスタ７に格納されたデータに基づいて、シフト回路８、変換回路９において生成されたマンチェスタ符号に応じた受信動作を行う。
【００１７】
図２は、実施の形態１のマイクロプロセッサが備えるシフト回路８の構成例を示す図であり、このシフト回路８は、レジスタ７から受け取ったデータをクロック信号Ｓ１１６に同期したタイミングでシフトさせ、信号Ｓ１１２としてシリアルに出力するデータシフトレジスタ２３と、クロック信号Ｓ１１６（入力されたクロック数）をカウントするカウンタ２１と、レジスタ７に格納された動作確認用データのビット数とカウンタ２１のカウント値とを比較することにより、データシフトレジスタ２３に格納したデータを出力する処理が終了したことを検出するための比較器２２と、を備える。
【００１８】
図３は、実施の形態１のマイクロプロセッサが備える変換回路９の構成例を示す図であり、この変換回路９は、クロック信号Ｓ１１６を２逓倍する２逓倍回路３１と、２逓倍回路３１の出力信号に基づいてシフト回路８の出力信号Ｓ１１２をマンチェスタ符号に変換し、当該変換結果を出力するＸＮＯＲ回路３２と、を備える。なお、入力信号の前半が“Ｈレベル”で後半が“Ｌレベル”の場合をデータ“０”、前半が“Ｌレベル”で後半が“Ｈレベル”の場合をデータ“１”を示すマンチェスタ符号を用いて通信を行う回路の場合は、上記ＸＮＯＲ回路３２に代えてＸＯＲ回路を備えた構成とする。
【００１９】
つづいて、レジスタ６に格納されたデータがテストモードでの動作を指示する場合に、動作確認用データに対してマンチェスタ符号化処理を行い、その処理の結果として得られたマンチェスタ符号（動作確認用受信データ）を通信バッファ５へ格納する動作を、図１〜３を用いて説明する。
【００２０】
まず、ＣＰＵ１は、レジスタ１１の内容を確認する。レジスタ１１の内容が、レジスタ７にデータが格納されていない状態を示す場合、ＣＰＵ１は、レジスタ７に対して動作確認用データを格納する。具体的には、書き込み要求信号Ｓ１１４を有効（Ｈレベル）とし、動作確認用データを、データバス３を介してレジスタ７に対して出力する。
【００２１】
また、書き込み要求信号Ｓ１１４が有効となった場合、シフト回路８のデータ有効信号Ｓ１２１が有効（Ｈレベル）となる（図２参照）。なお、信号Ｓ１１１の初期状態は“Ｌレベル”である。そのため、この時点では、信号Ｓ１２２は“Ｌレベル”である。一方、比較器２２は、クロック信号Ｓ１１６をカウントするカウンタ２１のカウント数が、レジスタ７に格納された動作確認用データのビット数に達したかどうかを監視する。そして、カウンタ２１のカウント数が動作確認用データのビット数に達した場合、比較器２２は、シフト完了信号Ｓ１１１を所定の期間“Ｈレベル”とする。その結果、データ転送信号Ｓ１２２が有効（Ｈレベル）となり、データシフトレジスタ２３は、レジスタ７から上記動作確認用データを取得する。つぎに、データシフトレジスタ２３は、レジスタ７から取得した動作確認用データを、クロック信号Ｓ１１６に同期したタイミングで１ビットずつ変換回路１５へ出力する。なお、上記比較器２２は、レジスタ７のレジスタ長を、上記レジスタ７に格納された動作確認用データのビット数とする。
【００２２】
また、上記シフト完了信号Ｓ１１１が“Ｈレベル”となった場合、カウンタ２１は“０”にクリアされ、レジスタ１１に含まれる「レジスタ７に格納されたデータのデータシフトレジスタ２３への転送が完了したことを示すビット」（以下、転送完了ビットと呼ぶ）を有効（レジスタ７に格納されたデータなし）とする。また、上記転送完了ビットの状態は、書き込み要求信号Ｓ１１４が有効（Ｈレベル）となった場合に無効（レジスタ７に格納されたデータあり）に変更される。
【００２３】
変換回路９は、入力されたクロック信号Ｓ１１６および信号Ｓ１１２に基づいてマンチェスタデータを生成する。具体的には、クロック信号Ｓ１１６を２逓倍回路３１において２逓倍した結果として得られる信号と入力信号Ｓ１１２に対して、ＸＮＯＲ回路３２が、ＸＮＯＲ演算を実行し、その演算結果をマンチェスタ符号化された動作確認用受信データとしてセレクタ１０に対して出力する。なお、図４は、レジスタ７に格納された動作確認用データに対してマンチェスタ変換を実行した結果を示すタイミングチャートである。図４に示したようにクロック信号Ｓ１１６を２逓倍して得られた信号を用いてマンチェスタ符号化を行うことにより、クロック信号Ｓ１１６の１周期分の時間でマンチェスタ符号化された１つの受信情報（２ビットのデータ）を得ることができる。
【００２４】
セレクタ１０は、レジスタ６に格納されたデータの内容に基づいて変換回路９の出力信号または外部通信機器からの受信信号のいずれか一方を選択し、選択した信号を通信回路４に対して出力する。具体的には、レジスタ６に格納されたデータの内容がテストモードでの動作を指示する場合、変換回路９から受信した信号を出力する。これに対して、レジスタ６に格納されたデータの内容が通常モードでの動作を指示する場合、外部通信機器から受信した信号を出力する。そして、通信回路４は、入力信号に対して復調処理などの所定の処理を実行し、その結果として得られる信号を通信バッファ５に格納する。以下、マイクロプロセッサの各部は、通信バッファに格納された受信データに応じた処理（受信処理）を実行する。
【００２５】
また、ＣＰＵ１は、動作確認用データをレジスタ７に対して連続して出力する場合、定期的にレジスタ１１の内容を確認する。そして、レジスタ７に前回格納した動作確認用データがシフト回路８へ転送された（レジスタ７にデータが格納されていない状態となった）ことを確認後、ＣＰＵ１は、上述した動作と同様の動作を行うことにより、動作確認用データを、レジスタ７に対して出力する。これにより、レジスタ７に対して動作確認用データを連続して格納する場合の、データ格納タイミングを認識することができ、レジスタ７に格納したデータがシフト回路８へ転送される前に次のデータを格納してしまい、データを消失してしまうという誤動作を防止できる。以下、動作確認のために必要なデータが全て通信バッファ５に格納されるまで、マイクロプロセッサの各部は、上述した動作を継続する。
【００２６】
なお、本実施の形態においては、動作確認用データを一旦レジスタ７に格納してからシフト回路８のデータシフトレジスタ２３に対して転送することとしたが、これに限らず、動作確認用データをデータシフトレジスタ２３に直接格納することとしてもよい。この場合、比較器２２は、カウンタ２１のカウント数が、データシフトレジスタ２３に格納されたデータのビット数に達したかどうかを監視し、そのカウント数が動作確認用データのビット数に達したことを検出後、シフト完了信号Ｓ１１１を所定の期間“Ｈレベル”とする。
【００２７】
このように、本実施の形態においては、テストモードで使用する動作確認用データおよびクロック信号を２逓倍した信号、に対してＸＮＯＲ演算を実行し、その演算結果であるマンチェスタ符号化されたデータを用いてスタンドアロンで動作確認を行うこととした。これにより、動作確認用データとして予めマンチェスタ符号化されたデータを準備する必要がないため、テストパターンのデータ量が増大する問題を回避することができる。また、データをマンチェスタ符号化することによりデータ量が増加する場合であっても、テスト時間の増大を回避できる。その結果、動作確認用の外部通信機器を必要とせずに、容易に通信機能のテストおよび通信システムのデバッグを行うことができる。
【００２８】
また、動作確認用データの保持状態を参照可能としたので、たとえば、連続して動作確認用データをレジスタに格納する場合に、後続の動作確認用データのレジスタへの格納タイミングを認識することができる。
【００２９】
実施の形態２．
つづいて、実施の形態２について説明する。図５は、実施の形態２のマイクロプロセッサの構成例を示す図であり、このマイクロプロセッサは、上述した実施の形態１のマイクロプロセッサにＤＭＡＣ（Direct  Memory  Access  Controller）４１が追加され、レジスタ１１が削除された構成となる。ＤＭＡＣ４１は、たとえば、任意のメモリに対して、そのメモリが保持しているデータを他のデバイスに対して直接出力するように、制御する。なお、その他の部分については、上述した実施の形態１と同様であるため同一の符号を付してその説明を省略する。以下、上述した実施の形態１と異なる動作について説明する。
【００３０】
本実施の形態のマイクロプロセッサにおいては、シフト完了信号Ｓ１１１（シフト回路８のデータシフトレジスタ２３が動作確認用データを取得したことを示す信号）の出力先がＣＰＵ１およびＤＭＡＣ４１となる。そして、ＣＰＵ１は、上記シフト完了信号Ｓ１１１を割り込み信号として使用する。そのため、動作確認用データをレジスタ７に対して連続して格納する場合、ＣＰＵ１は、信号Ｓ１１１による割り込みが発生すると、レジスタ７に前回格納したデータがシフト回路８へ転送されたことを認識し、前回出力したデータに続く動作確認用データをレジスタ７に対して出力する。以下、動作確認のために必要なデータの出力が完了するまで、同様の動作を継続する。
【００３１】
また、ＤＭＡ要求信号を受けたＤＭＡＣ４１は、動作確認用データをレジスタ７に対して直接出力するようにデータ格納用メモリ（図示せず）を制御するシステムの場合、上記シフト完了信号Ｓ１１１をＤＭＡ要求信号として使用する。具体的には、ＤＭＡＣ４１は、信号Ｓ１１１が“Ｈレベル”となった場合、上記データ格納用メモリに対して指示を行い、レジスタ７に対して動作確認用データを出力させる。なお、ＣＰＵ１が動作確認用データを出力する場合と同様に、ＤＭＡＣ４１は、レジスタ７に対して書き込み要求を行った後（信号Ｓ１４１を“Ｈレベル”とした後）、動作確認用データがレジスタ７に対して出力されるように制御を行う。以下、動作確認のために必要なデータの出力が完了するまで、同様の動作を継続する。
【００３２】
このように、本実施の形態においては、動作確認用データを格納するためのレジスタ（データレジスタ）がデータを保持していない状態となったことを示す出力信号を、ＣＰＵに対する割り込み信号およびＤＭＡＣに対するＤＭＡ要求信号として使用することとした。これにより、ＣＰＵおよびＤＭＡＣは、データレジスタのデータ保持状態を監視することなく、データレジスタへ動作確認用データを格納する動作を連続して実行することができる。
【００３３】
実施の形態３．
つづいて、実施の形態３について説明する。図６は、実施の形態３のマイクロプロセッサの構成例を示す図であり、このマイクロプロセッサは、上述した実施の形態１のマイクロプロセッサのシフト回路８に代えてシフト回路８ａを備え、選択レジスタ５１およびセレクタ５２が追加された構成となる。また、図７は、シフト回路８ａの構成例を示す図であり、このシフト回路８ａは、上述した実施の形態１のマイクロプロセッサが備えるシフト回路８の比較器２２に代えて比較器２２ａを備え、２逓倍回路６１およびセレクタ６２が追加された構成となる。なお、その他の部分については、上述した実施の形態１と同様であるため同一の符号を付してその説明を省略する。以下、上述した実施の形態１と異なる動作について説明する。
【００３４】
シフト回路８ａおよびセレクタ５２は、レジスタ５１に格納されたデータの内容に基づいて、後述する動作を行う。なお、シフト回路８ａの出力信号は、変換回路９およびセレクタ５２へ入力される。また、シフト回路８ａの２逓倍回路６１は、入力されたクロック信号Ｓ１１６を２逓倍して出力する。比較器２２ａは、選択レジスタ５１設定されたデータの内容に基づいて、カウンタ２１のカウント数がレジスタ７に格納された動作確認用データのビット数に達した時点、または動作確認用データのビット数の２倍に達した時点でシフト完了信号Ｓ１１１を“Ｈレベル”とする。
【００３５】
選択レジスタ５１に格納されたデータが変換回路９の出力信号をセレクタ１０に対して出力するように指示する内容の場合、シフト回路８ａは、上述した実施の形態１のシフト回路８と同様の動作を行う。具体的には、セレクタ６２は、クロック信号Ｓ１１６を選択し、選択した信号をカウンタ２１，データシフトレジスタ２３などに対して出力する。比較器２２ａは、カウンタ２１のカウント数がレジスタ７に格納された動作確認用データのビット数に達したかどうか、を監視する。
【００３６】
これに対して、選択レジスタ５１に格納されたデータがシフト回路８ａの出力信号をセレクタ１０に対して出力するように指示する内容の場合、シフト回路８ａは、クロック信号Ｓ１１６を内部で２逓倍し、２逓倍したクロック信号Ｓ１１６を使用して、上述した実施の形態１のシフト回路８と同様の動作を行う。具体的には、セレクタ６２は、２逓倍回路６１の出力信号を選択し、選択した信号をカウンタ２１，データシフトレジスタ２３などに対して出力する。また、比較器２２ａは、カウンタ２１のカウント数がレジスタ７に格納された動作確認用データのビット数の２倍に達したかどうか、を監視する。そして、比較器２２ａは、カウント数が動作確認用データのビット数の２倍に達した時点でシフト完了信号Ｓ１１１を所定の期間“Ｈレベル”とする。
【００３７】
また、セレクタ５２は、選択レジスタ５１に格納されたデータの内容に基づいて、変換回路９の出力信号（マンチェスタ符号）またはシフト回路８ａの出力信号（ＮＲＺ符号）のいずれか一方を選択し、選択した信号をセレクタ１０に対して出力する。
【００３８】
なお、本実施の形態においては、上述した実施の形態１のマイクロプロセッサに対して選択レジスタ５１およびセレクタ５２の追加などを行うこととしたが、これに限らず、実施の形態２のマイクロプロセッサに対して、選択レジスタ５１およびセレクタ５２の追加などを行うこととしてもよい。
【００３９】
このように、本実施の形態においては、動作確認用データに対してマンチェスタ符号化処理を実行するかどうかを選択可能とした。これにより、マンチェスタ符号化されたデータを使用した動作確認に加えて、“Ｈレベル”や“Ｌレベル”に固定した信号を使用した動作確認を行うことが可能となり、容易に、様々な条件においての動作確認、システムのデバッグなどを行うことができる。
【００４０】
実施の形態４．
つづいて、実施の形態４について説明する。図８は、実施の形態４のマイクロプロセッサの構成例を示す図である。このマイクロプロセッサは、上述した実施の形態１のマイクロプロセッサに、選択レジスタ５１ｂ、２逓倍回路７１、４逓倍回路７２、セレクタ７３、シフトレジスタ７４、圧縮回路７５、およびレジスタ７６が追加された構成となる。なお、その他の部分については、上述した実施の形態１と同様であるため同一の符号を付してその説明を省略する。以下、上述した実施の形態１と異なる動作について説明する。
【００４１】
選択レジスタ５１ｂは、通信回路４が出力するマンチェスタ符号化された送信データを、ＮＲＺ変換するか否かを指示するためのデータを格納する。２逓倍回路７１は、入力信号を２逓倍し、２逓倍した信号を出力する。逓倍回路７２は、入力信号を４逓倍し、４逓倍した信号を出力する。セレクタ７３は、選択レジスタ５１ｂに設定されたデータの内容に基づいて、入力信号である２逓倍回路７１の出力信号または４逓倍回路７２の出力信号のいずれか一方を出力する。シフトレジスタ７４は、通信回路４が出力した送信信号を、セレクタ７３の出力信号（２逓倍または４逓倍されたクロック信号）に基づいたタイミングで格納する。圧縮回路７５は、通信回路４が出力した送信信号に対する圧縮処理を、セレクタ７３の出力信号に基づいたタイミングで実行する。レジスタ７６は、圧縮回路７５において実行された圧縮処理の結果として得られた信号を格納する。
【００４２】
なお、圧縮回路７５は、送信データを、セレクタ７３の出力信号に基づいたタイミングでマンチェスタ符号またはＮＲＺ符号として取得し、たとえば、取得したデータに対してＣＲＣ（Cyclic  Redundancy  Check）を実行した結果（ＣＲＣコード）を圧縮演算結果として出力する。この場合、ＣＰＵ１は、ＣＲＣエラーが発生したかどうかを確認することにより、送信動作が正常に行われたかどうかを確認できる。また、シフトレジスタ７４およびレジスタ７６には、最新の送信データおよび圧縮演算結果から最大記憶容量相当分だけ遡った送信データおよび圧縮演算結果まで、が格納される。以下、選択レジスタ５１ｂに格納されたデータが、送信データに対するＮＲＺ変換を指示する場合と、そうでない場合と、に分けて動作を説明する。
【００４３】
選択レジスタ５１ｂに格納されたデータが送信データに対するＮＲＺ変換を指示する内容の場合、セレクタ７３は、２逓倍回路７１の出力信号を選択し、出力する。シフトレジスタ７４は、セレクタ７３が出力した２逓倍クロック信号に基づいた処理を行うことにより、通信回路４から出力された送信データ（マンチェスタ符号）をＮＲＺ符号として格納する。圧縮回路７５は、セレクタ７３が出力した２逓倍クロック信号に基づいて、通信回路４から出力された送信データの取得処理および取得したデータに対する圧縮処理を実行し、それらの処理結果として得られたデータをレジスタ７６に対して出力する。なお、シフトレジスタ７４が送信データをＮＲＺ符号化されたデータとして格納する場合のタイミングチャートを図９に示す。
【００４４】
一方、選択レジスタ５１ｂに格納されたデータが送信データに対するＮＲＺ変換を指示しない内容の場合、セレクタ７３は、４逓倍回路７２の出力信号を選択し、出力する。シフトレジスタ７４は、セレクタ７３が出力した４逓倍クロック信号に基づいた処理を行うことにより、通信回路４から出力された送信データを、そのまま格納する。圧縮回路７５は、セレクタ７３が出力した４逓倍クロック信号に基づいて、通信回路４から出力された送信データの取得処理および取得したデータに対する圧縮処理を実行し、それらの処理結果として得られたデータを、レジスタ７６に対して出力する。なお、シフトレジスタ７４が送信データをＮＲＺ符号化せずに格納する場合のタイミングチャートを図１０に示す。
【００４５】
ここで、送信データをマンチェスタ符号として格納する場合、上述したように、同じ情報をＮＲＺ符号で表現した場合と比較してデータ量が大きくなる、という問題点がある。しかしながら、マンチェスタ符号の送信データは、実際に送信されたデータそのものであるため、たとえば、デバッグ時に送信データを解析する際、ＮＲＺ符号をマンチェスタ符号に戻す処理が不要となり、解析作業が容易となる。一方、ＮＲＺ符号として格納する場合は、データ量が少ないため、より多くの履歴データをシフトレジスタ７４に格納することができ、一度により多くの情報を得ることが可能となる。
【００４６】
なお、セレクタ７３の出力信号に基づいたタイミングで送信データを圧縮せずにそのまま格納するためのシフトレジスタ７４のみを含んだ構成、セレクタ７３の出力信号に基づいたタイミングで取得した送信データに対して圧縮演算を実行し、当該演算結果を格納するための圧縮回路７４およびレジスタ７６のみを含んだ構成、のいずれか一方のみを備えることとしてもよい。
【００４７】
また、本実施の形態においては、上述した実施の形態１のマイクロプロセッサに対して選択レジスタ５１ｂ，２逓倍回路７１，４逓倍回路７２などを追加した構成としたが、これに限らず、上述した実施の形態２または３のマイクロプロセッサに対して、選択レジスタ５１ｂ，２逓倍回路７１，４逓倍回路７２などを追加した構成としてもよい。
【００４８】
このように、本実施の形態においては、通信回路から出力された送信データを保持する手段を設けた。これにより、通信回路から実際に送信されるデータの内容をＣＰＵが確認でき、その結果、外部通信機器を使用することなしに送信動作（送信プロトコル）を確認できる。
【００４９】
また、送信データに対して実行した圧縮処理の結果およびその圧縮処理結果の履歴、を保持する手段を設けた。これにより、全ての送信データを確認することなしに、送信動作が正常に行われたかどうかを容易に知ることができる。
【００５０】
さらに、送信データをマンチェスタ符号として保持するか、ＮＲＺ符号として保持するか、を選択可能とした。これにより、目的に応じて、最適な形式の送信データを取得することができる。
【００５１】
実施の形態５．
つづいて、実施の形態５について説明する。図１１は、実施の形態５のマイクロプロセッサの構成例を示す図である。このマイクロプロセッサは、上述した実施の形態１のマイクロプロセッサにレジスタ８１および逓倍回路８２が追加された構成となる。また、図１２は、逓倍回路８２の構成例を示す図である。この逓倍回路８２は、入力信号を２逓倍し出力するための２逓倍回路９１および９３と、レジスタ８１に設定されたデータの内容に基づいて２系統の入力信号のうちのいずれか一つを出力するセレクタ９２および９４と、を備える。なお、その他の部分については、上述した実施の形態１と同様であるため同一の符号を付してその説明を省略する。以下、上述した実施の形態１と異なる動作について説明する。
【００５２】
レジスタ８１は、通信回路４を高速に動作させるか否かを指示するためのデータを格納する。逓倍回路８２は、レジスタ８１に格納されたデータの内容に基づいて、入力信号（クロック信号Ｓ１１５およびＳ１１６）を、そのまま出力するか、２逓倍して出力するか、を判断する。以下、逓倍回路８１の動作を具体的に説明する。
【００５３】
レジスタ８１に格納されたデータが通信回路４を高速に動作させる旨を指示する内容の場合、逓倍回路８２のセレクタ９２は、２逓倍回路９１の出力信号を選択し、選択した信号を信号Ｓ１１５ｃとして出力する。また、セレクタ９４は、２逓倍回路９３の出力信号を選択し、選択した信号を信号Ｓ１１６ｃとして出力する。そして、シフト回路８および変換回路９は、上記信号Ｓ１１６ｃに基づいたタイミングで動作を行い、通信回路４は、上記信号Ｓ１１５ｃに基づいたタイミングで動作を行う。すなわち、シフト回路８、変換回路９、および通信回路４は、クロック信号Ｓ１１６，Ｓ１１５に基づいたタイミングで動作を行う場合と比較して、２倍速で通信動作を行う。
【００５４】
一方、レジスタ８１に格納されたデータが、通信回路４を高速に動作させる旨を指示しない場合、逓倍回路８２のセレクタ９２は、逓倍回路８２への入力であるクロック信号Ｓ１１５を選択し、信号Ｓ１１５ｃとして出力する。また、セレクタ９４は、クロック信号Ｓ１１６を選択し、信号Ｓ１１６ｃとして出力する。
【００５５】
なお、本実施の形態においては、上述した実施の形態１のマイクロプロセッサに対してレジスタ８１および逓倍回路８２を追加した構成としたが、これに限らず、上述した実施の形態２、３、または４のマイクロプロセッサに対してレジスタ８１および逓倍回路８２を追加した構成としてもよい。また、逓倍回路８２は、マイクロプロセッサが許容する動作速度を超えない範囲内でさらに逓倍比の高い逓倍回路を、２逓倍回路９１および９３に代えて備えることとしてもよい。これにより、さらに高速な通信動作が可能となる。
【００５６】
このように、本実施の形態においては、動作速度の基準となるクロック信号を２逓倍し、２逓倍されたクロック信号に基づいてマイクロプロセッサがテストモード時の通信動作を行うこととした。これにより、通信動作の確認に要する時間を短縮することができる。
【産業上の利用可能性】
【００５７】
以上のように、本発明にかかるマイクロプロセッサは、外部の通信機器との間で通信を行う機能を備えたマイクロプロセッサとして有用であり、特に、通信動作に関するテスト機能を備えたマイクロプロセッサとして適している。
【図面の簡単な説明】
【００５８】
【図１】本発明にかかるマイクロプロセッサの実施の形態１の構成例を示す図である。
【図２】実施の形態１のマイクロプロセッサが備えるシフト回路の構成例を示す図である。
【図３】実施の形態１のマイクロプロセッサが備える変換回路の構成例を示す図である。
【図４】動作確認用データに対してマンチェスタ変換を実行した結果を示すタイミングチャートである。
【図５】実施の形態２のマイクロプロセッサの構成例を示す図である。
【図６】実施の形態３のマイクロプロセッサの構成例を示す図である。
【図７】実施の形態３のマイクロプロセッサが備えるシフト回路の構成例を示す図である。
【図８】実施の形態４のマイクロプロセッサの構成例を示す図である。
【図９】実施の形態４のマイクロプロセッサが備えるシフトレジスタが、送信データをＮＲＺ符号化されたデータとして格納するタイミングチャートである。
【図１０】実施の形態４のマイクロプロセッサが備えるシフトレジスタが、送信データをＮＲＺ符号化せずに格納するタイミングチャートである。
【図１１】実施の形態５のマイクロプロセッサの構成例を示す図である。
【図１２】実施の形態５のマイクロプロセッサが備える逓倍回路の構成例を示す図である。
【図１３】従来のマイクロプロセッサの構成例を示す図である。
【符号の説明】
【００５９】
１、１０１  ＣＰＵ
２、１０２  アドレスバス
３、１０３  データバス
４、１０４  通信回路
５、１０５  通信バッファ
６、７、１１、７６、８１、１０６、１０７  レジスタ
８、８ａ  シフト回路
９  変換回路
１０、５２、６２、７３、９２、９４、１０９  セレクタ
２１  カウンタ
２２、２２ａ  比較器
２３  データシフトレジスタ
３１、６１、７１、９１、９３  ２逓倍回路
３２  ＸＮＯＲ回路
４１  ＤＭＡＣ
５１、５１ｂ  選択レジスタ
７２  ４逓倍回路
７４  シフトレジスタ
７５  圧縮回路
８２  逓倍回路
【図１】
0004576324.tif 000002
【図２】
0004576324.tif 000003
【図３】
0004576324.tif 000004
【図４】
0004576324.tif 000005
【図５】
0004576324.tif 000006
【図６】
0004576324.tif 000007
【図７】
0004576324.tif 000008
【図８】
0004576324.tif 000009
【図９】
0004576324.tif 000010
【図１０】
0004576324.tif 000011
【図１１】
0004576324.tif 000012
【図１２】
0004576324.tif 000013
【図１３】
0004576324.tif 000014