(57)【要約】【課題】通信状態の遷移を行うための複数の信号の送受信に関する動作テストを簡易に行うこと。【解決手段】ＴＸとＲＸとがループバック径路４００で結合されてＢＩＳＴ処理が実行される。この処理の例ではＯＯＢ信号制御部２０４は、ＴＥＳＴ用ステートマシーン２５１の制御により、ＯＯＢ信号検出部２０３が検出した「ＣＯＭＷＡＫＥ」を無効にする。従ってＴＥＳＴ用ステートマシーン２５１はステート管理部２２２に省電力状態から復帰するための制御信号を出力しない。他の例では、省電力状態でＴＥＳＴ用ＯＯＢ信号生成部２１４が生成した「ＣＯＭＷＡＫＥ」がＴＸから送信されてＲＸで受信される。また他の例では、ＯＯＢ信号制御部２０４が自発的に「ＣＯＭＷＡＫＥ」を受信したように動作し、この情報を受けたＴＥＳＴ用ステートマシーン２５１が、ステート管理部２２２に省電力状態から復帰するための制御信号を出力する。【選択図】  図２
2011191955.tif 000002
【特許請求の範囲】
【請求項１】
コマンドを送信するために利用される送信手段と、
前記コマンドを受信するために利用される受信手段と、
前記送信手段と前記受信手段とが、複数のコマンドを所定手順で送信及び受信した場合に、前記送信手段及び前記受信手段による通信の状態を示す通信状態を、前記コマンドの送受信が停止する第１の状態から前記コマンドの送受信が定常的に行われる第２の状態へと切り替えるように応答する応答手段と、
前記送信手段が送信した前記コマンドを前記受信手段が受信するように構成されたループバック態様の送受信径路を介して、前記送信手段と前記受信手段との間で送受信される前記複数のコマンドに対して前記応答手段が正しく応答するか否かの試験を実行する試験手段と、
前記試験手段が実行する試験において、前記送信手段が前記所定のコマンドを送信し、前記送受信径路を介して前記受信手段が当該所定のコマンドを受信し、前記所定のコマンドの受信を無効化し、さらに前記送信手段が前記所定のコマンドに引き続き当該所定のコマンドとは異なるコマンドを送信するように制御する制御手段と、
を具備することを特徴とする通信装置。
【請求項２】
前記第１の状態において前記送信手段が送信するコマンドを生成する生成手段を具備し、
前記試験手段が実行する前記試験で、前記送信手段が前記生成手段によって生成されたコマンドを送信し、前記受信手段は前記通信状態を前記第１の状態から前記第２の状態に切り替えるための前記複数のコマンドのうちの先頭のコマンドとして前記送信されたコマンドを受信することを特徴とする請求項１記載の通信装置。
【請求項３】
前記試験手段が実行する前記試験で、前記制御手段は前記通信状態を前記第１の状態から前記第２の状態に切り替えるための前記複数のコマンドのうちの先頭のコマンドを前記受信手段が受信したと仮定することを特徴とする請求項１記載の通信装置。
【請求項４】
前記試験手段が実行する前記試験は、ＳＡＴＡ規格におけるＯＯＢシーケンスに関するコマンド送受信の試験であると共に、前記第１の状態はＰＡＲＴＩＡＬステイタス又はＳＬＵＭＢＥＲステイタス、前記第２の状態はＰＨＹＲＤＹステイタス、且つ前記所定のコマンドはＣＯＭＷＡＫＥコマンドであることを特徴とする請求項１記載の通信装置。
【請求項５】
コマンドを送信し、
前記コマンドを受信し、
複数のコマンドを所定手順で送信及び受信した場合に、前記送信及び前記受信による通信の状態を示す通信状態を、前記コマンドの送受信が停止する第１の状態から前記コマンドの送受信が定常的に行われる第２の状態へと切り替えるように応答し、
送信した前記コマンドを受信するように構成されたループバック態様の送受信径路を介して、送受信される前記複数のコマンドに対して正しく応答するか否かの試験を実行し、
実行される試験において、前記所定のコマンドを送信し、前記送受信径路を介して当該所定のコマンドを受信し、前記所定のコマンドの受信を無効化し、さらに前記所定のコマンドに引き続き当該所定のコマンドとは異なるコマンドを送信するように制御する、
ことを特徴とする通信方法。
【請求項６】
コマンドを送信するために利用される送信手段と、
前記コマンドを受信するために利用される受信手段と、
を具備する通信装置において、
前記送信手段が送信した前記コマンドを前記受信手段が受信するように構成されたループバック態様の送受信径路を介して、前記送信手段と前記受信手段との間で所定の手順で送受信される、前記送信手段及び前記受信手段による通信の状態を示す通信状態を切り替えるための複数のコマンドに対する応答が正しくなされるか否かが試験される場合、
前記送信手段は、当該試験の開始から終了までの間で一度、受信した特定のコマンドに応じて送信されるべきコマンドとは異なるコマンドを送信することを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信相手と通信する通信装置及び通信方法に関し、特に自己完結で通信に関する試験を実行する通信装置及び通信方法に関する。
【背景技術】
【０００２】
近年、ＳＡＴＡに代表される所定の規格に基づいたインターフェースの機能を備える機器が増えている。所定の規格に基づくインターフェースに対応した機器が増えることで、これらの機器の利用者は、用途に応じて特定のインターフェースに対応した様々な機器を容易に置き換えて利用することが可能となっている。
【０００３】
ところが従来は、これらの機器の製造工程におけるインターフェースの機能テストでは、擬似的な通信相手としてのテスト装置が利用されることが一般的であった。しかし、テスト対象となるインターフェースの規格のバージョンアップやプロトコルの変更が行われると、都度、テスト装置のバージョンアップや置き換えが必要となり製造工程におけるテスト装置の管理が煩雑になっていた。また、テスト装置の利用期間が短いと膨大なコストが必要となっていた。
【０００４】
そこで、インターフェースの機能テストを簡易に行うことが求められている。
例えば、特許文献１では、受信インターフェース部と送信インターフェース部とを有する記憶装置におけるそれぞれのインターフェース部のテストを簡易に行う手法が開示されている。このテストは、これらの送信及び受信インターフェース部同士が例えばケーブル等の電気的接続によって直結される状態で行われる。そして、送信インターフェースが送信したコマンドを受信インターフェース部が受信し、この受信したコマンドが記憶装置内部で検証されることでインターフェース部の自己診断によるテストが行われていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２７１５９４号公報  （図１  段落００１６）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし特許文献１では、ＳＡＴＡ規格におけるＯＯＢ（Out Of Band）シーケンスは除外し、汎用的なデータの送受信に関するコマンドを利用して、インターフェース部のテストを行っていた。ＯＯＢシーケンスは、ＳＡＴＡ規格に基づく通信を行う特定ブロックの初期化及び、省電力状態への遷移又は省電力状態からの復帰のために利用される。このＯＯＢシーケンスは、ホスト側とデバイス側とでやりとりされる複数の信号の、一連の送受信手順である。ところがＳＡＴＡのインターフェース機能を備える機器では、このＯＯＢシーケンスにおける動作不具合が発生する可能性が大いにあった。
【０００７】
すなわち、ＳＡＴＡ規格におけるＯＯＢシーケンスといった、送受信を実行するブロックによる通信の状態を示す通信状態の遷移を行うための複数の信号の送受信に関する動作テストを簡易に行うことはできなかった。
【０００８】
そこで本発明は上述した課題を解決するために、通信状態の遷移を行うための複数の信号の送受信に関する動作テストを簡易に行うことができる通信装置及び通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は上述した課題を解決するため、コマンドを送信するために利用される送信手段と、前記コマンドを受信するために利用される受信手段と、前記送信手段と前記受信手段とが、複数のコマンドを所定手順で送信及び受信した場合に、前記送信手段及び前記受信手段による通信の状態を示す通信状態を、前記コマンドの送受信が停止する第１の状態から前記コマンドの送受信が定常的に行われる第２の状態へと切り替えるように応答する応答手段と、前記送信手段が送信した前記コマンドを前記受信手段が受信するように構成されたループバック態様の送受信径路を介して、前記送信手段と前記受信手段との間で送受信される前記複数のコマンドに対して前記応答手段が正しく応答するか否かの試験を実行する試験手段と、前記試験手段が実行する試験において、前記送信手段が前記所定のコマンドを送信し、前記送受信径路を介して前記受信手段が当該所定のコマンドを受信し、前記所定のコマンドの受信を無効化し、さらに前記送信手段が前記所定のコマンドに引き続き当該所定のコマンドとは異なるコマンドを送信するように制御する制御手段とを具備することを特徴とする通信装置を提供する。
【００１０】
また本発明は上述した課題を解決するため、コマンドを送信し、前記コマンドを受信し、複数のコマンドを所定手順で送信及び受信した場合に、前記送信及び前記受信による通信の状態を示す通信状態を、前記コマンドの送受信が停止する第１の状態から前記コマンドの送受信が定常的に行われる第２の状態へと切り替えるように応答し、送信した前記コマンドを受信するように構成されたループバック態様の送受信径路を介して、送受信される前記複数のコマンドに対して正しく応答するか否かの試験を実行し、実行される試験において、前記所定のコマンドを送信し、前記送受信径路を介して当該所定のコマンドを受信し、前記所定のコマンドの受信を無効化し、さらに前記所定のコマンドに引き続き当該所定のコマンドとは異なるコマンドを送信するように制御することを特徴とする通信方法を提供する。
【００１１】
また本発明は上述した課題を解決するため、コマンドを送信するために利用される送信手段と、前記コマンドを受信するために利用される受信手段と、を具備する通信装置において、前記送信手段が送信した前記コマンドを前記受信手段が受信するように構成されたループバック態様の送受信径路を介して、前記送信手段と前記受信手段との間で所定の手順で送受信される、前記送信手段及び前記受信手段による通信の状態を示す通信状態を切り替えるための複数のコマンドに対する応答が正しくなされるか否かが試験される場合、前記送信手段は、当該試験の開始から終了までの間で一度、受信した特定のコマンドに応じて送信されるべきコマンドとは異なるコマンドを送信することを特徴とする通信装置を提供する。
【発明の効果】
【００１２】
本発明によれば、通信状態の遷移を行うための複数の信号の送受信に関する動作テストを簡易に行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る通信装置を備える磁気ディスク装置の構成を示すブロック図。
【図２】ＨＤＣに備えられ、ホストシステムとの間でＳＡＴＡ規格に基づく通信処理を実行する各ブロックからなるシステム構成図。
【図３】図２で説明したＨＤＣに備えられる各ブロックによって実行される、省電力状態からの復帰のためのＯＯＢシーケンスの動作を説明するためのシーケンス図。
【図４】本実施形態に係るＨＤＤに備えられたＨＤＣが実行するＢＩＳＴ処理の動作を説明するための概念図。
【図５】ＨＤＣによって実行される、省電力状態からの復帰のためのデバイス起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理を説明するためのシーケンス図。
【図６】ＨＤＣによって実行される、省電力状態からの復帰のためのホスト起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理の第１の例を説明するためのシーケンス図。
【図７】ＨＤＣによって実行される、省電力状態からの復帰のためのホスト起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理の第２の例を説明するためのシーケンス図。
【発明を実施するための形態】
【００１４】
以下、本発明における実施形態について図面を用いて説明する。
図１は、本発明の実施形態に係る通信装置を備える磁気ディスク装置（以下、ＨＤＤとも称する）１０の構成を示すブロック図である。このＨＤＤ１０は、ホストシステム１００と通信する電子機器である。
【００１５】
本実施形態に係るＨＤＤ１０は、磁気ディスク１、磁気ヘッド２、アーム３、スピンドルモータ４、ＶＣＭ（ボイスコイルモータ）５などの機構構造を有する。またＨＤＤ１０は、モータドライバ２１、ヘッドＩＣ２２、リードライトチャネルＩＣ（以下、ＲＤＣとも称する）３１、ＣＰＵ４１、ＲＡＭ４２、ＮＶＲＡＭ４３、ＨＤＣ（Hard Disc Controller）５０などの回路系の機能ブロックを備える。このＨＤＣ５０は、ＰＨＹ（Physical Layer）５２及びＬｉｎｋＬａｙｅｒ５４と呼ばれる階層ブロックで構成されている。
【００１６】
本実施形態に係るＨＤＤ１０は、ＨＤＤ１０の外部のホストシステム１００と通信し、この通信に応じて所定の処理を実行する。またホストシステム１００との通信規格では、複数の通信状態が定義されていて、これら複数の通信状態は、所定手順の通信シーケンスによって遷移する（切り替える）ことができる。この通信状態は、送受信を実行するブロックによる通信の状態を示すものである。
【００１７】
磁気ディスク１は、スピンドルモータ４に固定され、このスピンドルモータ４が駆動することで回転する。また磁気ディスク１の少なくとも１面は磁気記録される記録面である。
【００１８】
磁気ヘッド２は、磁気ディスク１の記録面に対応するようにアーム３の一端に備えられる。この磁気ヘッド２は、磁気ディスク１の記録面に磁気記録された信号を読み取って、この読み取った信号をヘッドＩＣ２２へ出力する。また磁気ヘッド２は、ヘッドＩＣ２２から入力されたライト信号（ライト電流）に応じて、磁気ディスク１の記録面に磁気記録する。
【００１９】
アーム３は、一端に磁気ヘッド２を備えている。このアーム３は、ＶＣＭ５が駆動されることで、磁気ヘッド２が磁気ディスク１の記録面上を半径方向に移動するように、磁気ヘッド２が備えられる一端とは逆の一端を軸として回転する。
【００２０】
スピンドルモータ４は、モータドライバ２１から入力される駆動信号に応じて駆動し、磁気ディスク１を回転させる。
ＶＣＭ５は、モータドライバ２１から入力される駆動信号に応じて駆動し、アーム３を回転させる。
モータドライバ２１は、ＣＰＵ４１からの制御に基づいて、スピンドルモータ４及びＶＣＭ５を駆動するための駆動信号を、スピンドルモータ４及びＶＣＭ５それぞれへ出力する。
【００２１】
ヘッドＩＣ２２は、磁気ヘッド２から入力された信号を増幅し、この増幅した信号を読み出し情報としてＲＤＣ３１へ出力する。またヘッドＩＣ２２は、ＲＤＣ３１から入力された記録情報に応じたライト信号（ライト電流）を磁気ヘッド２へ出力する。
【００２２】
ＲＤＣ３１は、ヘッドＩＣ２２から入力された読み出し情報に所定の処理を施して復号化し、この復号化した情報を転送情報としてＨＤＣ５０へ出力する。またＲＤＣ３１は、ＨＤＣ５０から入力された記録すべき情報に所定の処理を施して符号化し、この符号化した情報を記録情報としてヘッドＩＣ２２へ出力する。このＲＤＣ３１は、符号化及び復号化のための所定の処理において、ＲＡＭ４２をワークメモリとして利用する。
【００２３】
ＣＰＵ４１は、ＮＶＲＡＭ４３に記憶されたプログラムに従って、ＨＤＤ１０に備えられた各ブロックを制御する。このＣＰＵ４１は、ＨＤＣ５０がホストシステム１００から受信した情報に応じて所定の処理を行うプロセッサである。ＣＰＵ４１は、プログラムの実行においてＲＡＭ４２をワークメモリとして利用する。
【００２４】
ＲＡＭ４２は、ＲＤＣ３１、ＣＰＵ４１及びＨＤＣ５０のワークメモリである。
ＮＶＲＡＭ４３は、ＣＰＵ４１が実行するプログラムを記憶する不揮発性メモリである。ＮＶＲＡＭ４３に記憶されるプログラムは更新されることが可能である。
ＨＤＣ５０は、ホストシステム１００との間で情報を送受信する通信処理を実行する。ＨＤＣ５０は、ＲＤＣ３１から入力された転送情報に所定の処理を施して符号化し、この符号化した情報を送信情報としてホストシステム１００へ送信する。またＨＤＣ５０は、ホストシステム１００から受信した受信情報に所定の処理を施して復号化し、この復号化した情報を記録すべき情報としてＲＤＣ３１へ出力する。さらにＨＤＣ５０は、ＨＤＣ５０内部で生成した特定の信号をホストシステム１００へ出力し、またホストシステム１００から特定の信号が入力されたことを検出して所定の処理を実行する。ＨＤＣ５０はＲＤＣ３１との間で情報をやりとりするのではなく、ＲＡＭ４２との間で直接的に情報をやりとりすることも可能である。このＨＤＣ５０とホストシステム１００との間には、送信用の通信径路と受信用の通信径路とが個別に設けられている。またＨＤＣ５０は、ＣＰＵ４１の制御によって、ホストシステム１００との間の情報の送受信に関する自己診断の処理を実行する。
【００２５】
本実施形態ではＨＤＣ５０は、ホストシステム１００との間でＳＡＴＡ（Serial Advanced
Technology Attachment）規格に準拠した通信処理を実行する。またＨＤＣ５０は、ＳＡＴＡ規格の自己診断機能であるＢＩＳＴ（Built In Self Test）の処理を実行する。このＨＤＣ５０は、特にループバック態様のＢＩＳＴの処理を実行する。すなわちＨＤＣ５０は、本実施形態に係る通信装置として機能する。
【００２６】
ＨＤＣ５０の階層ブロックであるＰＨＹ５２はＳＡＴＡ規格に準拠した物理層である。ＰＨＹ５２は、ＬｉｎｋＬａｙｅｒ５４から入力された情報をＳＡＴＡ規格に準じたシリアル信号となるように変換し、変換されたシリアル信号を送信用の通信径路を介してホストシステム１００へ送信する。またＰＨＹ５２は、ホストシステム１００から受信用の通信径路を介して受信されたＳＡＴＡ規格に準じた信号に所定の処理を施し、この処理によって得られた情報をＬｉｎｋＬａｙｅｒ５４へ出力する。
【００２７】
ＬｉｎｋＬａｙｅｒ５４はＳＡＴＡ規格に準拠した複数の階層ブロックのうちの一つの階層ブロックである。ＬｉｎｋＬａｙｅｒ５４は、ＰＨＹ５２から入力された情報に所定の処理を施し、この処理によって得られた情報をトランスポート層（不図示）へ出力する。またＬｉｎｋＬａｙｅｒ５４は、トランスポート層（不図示）から入力された情報に所定の処理を施し、この処理によって得られた情報をＰＨＹ５２へ出力する。
【００２８】
本実施形態では、ＬｉｎｋＬａｙｅｒ５４は、ＰＨＹ５２を介してホストシステム１００とやりとりされる特定パターンの信号シーケンスによって、ＳＡＴＡ規格の通信における通信状態を切り替える処理を実行する。具体的には、通信状態は、ＳＡＴＡ規格における通常の通信状態である「ＰＨＹＲＤＹ」、省電力の通信状態である「ＰＡＲＴＩＡＬ／ＳＬＵＭＢＥＲ」が適用される。この「ＰＨＹＲＤＹ」と称されるステイタスは、信号の送受信が定常的に行われる状態である。「ＰＡＲＴＩＡＬ／ＳＬＵＭＢＥＲ」と称されるステイタスは、信号の送受信が停止している状態である。またこれら複数の通信状態は、主にＰＨＹ５２の動作状態を切り替えることで実現される。
【００２９】
なお本実施形態は、本発明の実施形態に係る通信装置がＳＡＴＡ規格に準拠した通信処理を実行する例であるが、これに限定されるものではない。例えば本実施形態に係る通信装置が、送信用の通信径路と受信用の通信径路とが個別に設けられている構成であれば適用可能である。
【００３０】
また本実施形態は、本発明に係る構成を適用した電子機器としてＨＤＤ１０を例とした実施形態であるが、これに限定されるものではない。例えば本実施形態に係る構成が、光ディスク／光磁気ディスクドライブ、ＳＳＤ（Solid State Drive）などの電子機器に適用された実施形態であっても構わない。
【００３１】
このような構成により、本発明の実施形態に係るＨＤＤ１０に備えられた複数のブロックが、ＨＤＤ１０の外部のホストシステム１００と通信し、この通信でやりとりされる情報に応じて所定の処理を実行する。また本実施形態に係る、ホストシステム１００との通信に利用されるＳＡＴＡ規格では、「ＰＨＹＲＤＹ」及び「ＰＡＲＴＩＡＬ／ＳＬＵＭＢＥＲ」といった複数の通信状態が定義されている。そしてこれら複数の通信状態は、ＨＤＤ１０とホストシステム１００との間における、複数の信号の一連の送受信手順によって遷移することができる。また本実施形態では、ＳＡＴＡ規格に基づくＢＩＳＴの処理の実行が可能である。従って本実施形態に係るＨＤＤ１０によれば、通信状態の遷移を行うための複数の信号の送受信に関する動作テストを行うことができる。これらの処理は、主にＨＤＣ５０が複数の処理を実行することで実現される。
【００３２】
次に、図２を用いて、図１で説明したＨＤＣ５０に備えられ、ホストシステム１００との間でＳＡＴＡ規格に基づく通信処理を実行する各ブロックを説明する。
図２は、ＨＤＣ５０に備えられ、ホストシステム１００との間でＳＡＴＡ規格に基づく通信処理を実行する各ブロックからなるシステム構成図である。
前述したとおり本実施形態に係るＨＤＤ１０における通信処理は、送信用の通信径路と受信用の通信径路とが個別に設けられている構成で実行される。また、ＨＤＤ１０とホストシステム１００との間におけるＯＯＢ（Out Of Band）シーケンスの一部によって、ＨＤＤ１０は、「ＰＨＹＲＤＹ」及び「ＰＡＲＴＩＡＬ／ＳＬＵＭＢＥＲ」といった複数の通信状態の遷移を行うことができる。このＯＯＢシーケンスは、ＳＡＴＡ規格に基づく通信を行う特定ブロックの省電力状態への遷移又は省電力状態からの復帰のために利用される。この「ＰＡＲＴＩＡＬ／ＳＬＵＭＢＥＲ」の通信状態は省電力状態である。またＯＯＢシーケンスは、ＳＡＴＡ規格に基づくホスト側とデバイス側とでやりとりされる複数の信号の一連の送受信手順である。さらに本実施形態に係るＨＤＤ１０は、ＯＯＢシーケンスの動作をループバック態様のＢＩＳＴによってテストすることが可能である。すなわち、主に図２に示したシステム構成図によって、これらの処理が実行される。
【００３３】
ＨＤＣ５０は、ＰＨＹ５２とＬｉｎｋＬａｙｅｒ５４とを含んで構成されている。
ＰＨＹ５２は、受信ＡＭＰ２０１、デシリアライザ２０２、ＯＯＢ信号検出部２０３、ＯＯＢ信号制御部２０４、送信ＡＭＰ２１１、シリアライザ２１２、通常用ＯＯＢ信号生成部２１３、ＴＥＳＴ用ＯＯＢ信号生成部２１４、ＴＥＳＴ用ＰＬＬ２１５、通常用ＰＬＬ２２１、ステート管理部２２２などを備えている。
【００３４】
ＬｉｎｋＬａｙｅｒ５４は、受信バッファ２３１、復号化部２３２、ＭＵＸ２３３、送信バッファ２４１、符号化部２４２、ＭＵＸ２４３、ＴＥＳＴ用ステートマシーン２５１などを備えている。
【００３５】
受信ＡＭＰ２０１は、ＨＤＣ５０の外部から受信したＳＡＴＡ規格に準拠したＲＸ信号を増幅し、増幅して得られた受信信号をデシリアライザ２０２及びＯＯＢ信号検出部２０３へ出力する。このＲＸ信号は受信信号を示す。
【００３６】
デシリアライザ２０２は、受信ＡＭＰ２０１から入力された受信信号から必要な情報を抽出し、この抽出した情報を所定量単位でＬｉｎｋＬａｙｅｒ５４の受信バッファ２３１へ出力する。
【００３７】
ＯＯＢ信号検出部２０３は、受信ＡＭＰ２０１から入力された受信信号がＯＯＢ信号であるか否かを検出する。ＯＯＢ信号は、ＯＯＢシーケンスで利用される、「ＣＯＭＲＥＳＥＴ」、「ＣＯＭＩＮＴ」及び「ＣＯＭＷＡＫＥ」と称されるコマンドを示す信号である。ＯＯＢ信号検出部２０３は、受信信号がＯＯＢ信号であることを検出すると、検出したＯＯＢ信号をＯＯＢ信号制御部２０４へ出力する。
【００３８】
ＯＯＢ信号制御部２０４は、ＬｉｎｋＬａｙｅｒ５４のＴＥＳＴ用ステートマシーン２５１からの制御に基づいて、ＯＯＢ信号検出部２０３から入力されたＯＯＢ信号をステート管理部２２２へ出力するか否かを制御する。またＯＯＢ信号制御部２０４は、ＬｉｎｋＬａｙｅｒ５４のＴＥＳＴ用ステートマシーン２５１からの制御に基づいて、自発的に特定のＯＯＢ信号をステート管理部２２２へ出力する。
【００３９】
送信ＡＭＰ２１１は、シリアライザ２１２、通常用ＯＯＢ信号生成部２１３又はＴＥＳＴ用ＯＯＢ信号生成部２１４から入力された信号を、ＳＡＴＡ規格に準拠したＴＸ信号に変換してＨＤＣ５０の外部へ送信する。このＴＸ信号は送信信号を示す。
【００４０】
シリアライザ２１２は、ＬｉｎｋＬａｙｅｒ５４の送信バッファ２４１から所定量単位で入力された複数の情報に所定の付加情報を付与してシリアル化し、このシリアル化した情報を送信ＡＭＰ２１１へ出力する。
【００４１】
通常用ＯＯＢ信号生成部２１３は、ステート管理部２２２からの制御に応じてＯＯＢ信号を生成し、生成したＯＯＢ信号を送信ＡＭＰ２１１へ出力する。
ＴＥＳＴ用ＯＯＢ信号生成部２１４は、ＢＩＳＴの処理において、ＴＥＳＴ用ステートマシーン２５１からの制御に応じて所定のＯＯＢ信号を生成し、生成したＯＯＢ信号を送信ＡＭＰ２１１へ出力する。本実施形態ではＴＥＳＴ用ＯＯＢ信号生成部２１４は、ＢＩＳＴの処理が実行される場合に動作するように制御される。
【００４２】
ＴＥＳＴ用ＰＬＬ２１５は、ＴＥＳＴ用ＯＯＢ信号生成部２１４及びＯＯＢ信号検出部２０３の動作の基準クロックとなるクロック信号を生成する。そしてＴＥＳＴ用ＰＬＬ２１５は、生成したクロック信号をＴＥＳＴ用ＯＯＢ信号生成部２１４及びＯＯＢ信号検出部２０３へ供給する。ＴＥＳＴ用ＰＬＬ２１５は、ＴＥＳＴ用ステートマシーン２５１からの制御に基づいて動作又は動作停止する。本実施形態ではＴＥＳＴ用ＰＬＬ２１５は、ＢＩＳＴの処理が実行される場合に動作するように制御される。
【００４３】
通常用ＰＬＬ２２１は、デシリアライザ２０２、ＯＯＢ信号検出部２０３、シリアライザ２１２及び通常用ＯＯＢ信号生成部２１３を含む複数のブロックの動作の基準クロックとなるクロック信号を生成する。そして通常用ＰＬＬ２２１は、生成したクロック信号を対応するそれぞれのブロックへ供給する。通常用ＰＬＬ２２１は、ステート管理部２２２からの制御に基づいて動作又は動作停止する。本実施形態では通常用ＰＬＬ２２１は、通信状態が「ＰＨＹＲＤＹ」及び「ＰＡＲＴＩＡＬ」の場合に動作し、「ＳＬＵＭＢＥＲ」の場合に動作停止するように制御される。
【００４４】
ステート管理部２２２は、ＴＥＳＴ用ステートマシーン２５１からの制御に基づいてＰＨＹ５２の動作状態を制御する。例えばステート管理部２２２は、通信状態が「ＳＬＵＭＢＥＲ」に対応するようにＰＨＹ５２の動作状態を制御する場合、少なくとも通常用ＰＬＬ２２１及び通常用ＯＯＢ信号生成部２１３が動作停止するように制御する。またステート管理部２２２は、ＯＯＢ信号制御部２０４から入力されたＯＯＢ信号をＴＥＳＴ用ステートマシーン２５１に出力する。
【００４５】
受信バッファ２３１は、デシリアライザ２０２から所定量単位で入力された情報をスタックする。そして受信バッファ２３１は、スタックした情報をＦＩＦＯ方式で復号化部２３２へ順次出力する。
【００４６】
復号化部２３２は、受信バッファ２３１から順次入力された情報を復号化する。本実施形態では復号化部２３２は、ＳＡＴＡ規格に準拠した１０Ｂ／８Ｂデコーダ及びデスクランブラを含むブロックとして機能する。復号化部２３２は、復号化した情報をＭＵＸ２３３へ出力する。
【００４７】
ＭＵＸ２３３は、復号化部２３２から入力された情報をトランスポート層（不図示）又はＴＥＳＴ用ステートマシーン２５１へ出力する。ＭＵＸ２３３が何れのブロックへ出力するかは、ＴＥＳＴ用ステートマシーン２５１又は通常動作で利用されるステートマシーン（不図示）によって制御される。
【００４８】
送信バッファ２４１は、符号化部２４２から所定量単位で入力された情報をスタックする。そして送信バッファ２４１は、スタックした情報をＦＩＦＯ方式でシリアライザ２１２へ順次出力する。
【００４９】
符号化部２４２は、ＭＵＸ２４３から入力された情報を符号化する。本実施形態では符号化部２４２は、ＳＡＴＡ規格に準拠した８Ｂ／１０Ｂエンコーダ及びスクランブラを含むブロックとして機能する。符号化部２４２は、符号化した情報を送信バッファ２４１へ出力する。
【００５０】
ＭＵＸ２４３は、トランスポート層（不図示）又はＴＥＳＴ用ステートマシーン２５１から入力された情報を符号化部２４２へ出力する。ＭＵＸ２４３が何れのブロックから入力するかは、ＴＥＳＴ用ステートマシーン２５１又は通常動作で利用されるステートマシーン（不図示）によって制御される。
【００５１】
ＴＥＳＴ用ステートマシーン２５１は、ＯＯＢシーケンスの動作に係るＢＩＳＴの処理を実行するための、複数の信号の一連の送受信手順及びＰＨＹ５２に対する制御手順が定義された手順回路である。このＴＥＳＴ用ステートマシーン２５１は、ＭＵＸ２３３から入力された情報に対して応答すべき情報を所定の送受信手順に従ってＭＵＸ２４３へ出力する。ＴＥＳＴ用ステートマシーン２５１は、ステート管理部２２２へ所定の情報を出力することでＰＨＹ５２の動作状態を制御する。またＴＥＳＴ用ステートマシーン２５１は、ＰＨＹ５２の動作状態の制御と併せて、ＯＯＢ信号制御部２０４、ＴＥＳＴ用ＯＯＢ信号生成部２１４及びＴＥＳＴ用ＰＬＬ２１５それぞれに対して、それぞれのブロックを制御するための情報を出力する。さらにＴＥＳＴ用ステートマシーン２５１は、ステート管理部２２２から入力されたＯＯＢ信号に応じて、ＰＨＹ５２の動作状態を制御するための情報をステート管理部２２２へ出力する。またＴＥＳＴ用ステートマシーン２５１は、ステート管理部２２２から入力された特定のＯＯＢ信号に応じて応答すべき情報をＭＵＸ２４３へ出力する。
【００５２】
なお、ＯＯＢ信号制御部２０４が備えられる実施形態ではなく、ＯＯＢ信号制御部２０４が実行する処理を、ＯＯＢ信号検出部２０３、ステート管理部２２２、又はＴＥＳＴ用ステートマシーン２５１が実行する実施形態であってもよい。
【００５３】
すなわち、これら複数のブロックによるシステム構成により、ＨＤＣ５０は、ＳＡＴＡ規格に基づくＯＯＢシーケンスの動作をＢＩＳＴによってテストすることができる。このＯＯＢシーケンスの動作に対するＢＩＳＴの処理は、主にＬｉｎｋＬａｙｅｒ５４に備えられるＴＥＳＴ用ステートマシーン２５１がＰＨＹ５２の動作状態を制御することで実現される。従って本実施形態に係るＨＤＤ１０は、通信状態の遷移を行うための複数の信号の送受信に関する動作テストを行うことができる。
【００５４】
次に、図３を用いて、図２で説明したＨＤＣ５０に備えられる各ブロックによって実行される、省電力状態からの復帰のためのＯＯＢシーケンスの動作を説明する。
図３は、図２で説明したＨＤＣ５０に備えられる各ブロックによって実行される、省電力状態からの復帰のためのＯＯＢシーケンスの動作を説明するためのシーケンス図である。
【００５５】
ＳＡＴＡ規格では、省電力状態からの復帰のためのＯＯＢシーケンスは、ホストとデバイスとの間でやりとりされる複数の信号の一連の送受信手順として定義される。前述したようにＯＯＢシーケンスでは、「ＣＯＭＲＥＳＥＴ」、「ＣＯＭＩＮＴ」及び「ＣＯＭＷＡＫＥ」と称されるコマンドを示す信号が利用される。また、省電力状態からの復帰のためのＯＯＢシーケンスの起動は、ホスト起動とデバイス起動の２つの起動方式が定義されている。
【００５６】
ホストとデバイスとの間は、ホストからのＴＸ信号がデバイスへのＲＸ信号となるように接続され、ホストへのＲＸ信号がデバイスからのＴＸ信号となるように接続される。これ以降の説明では、ホスト及びデバイスからＴＸ信号を送信する径路又は端子をＴＸ、ホスト及びデバイスからＲＸ信号を受信する径路又は端子をＲＸと称する。すなわち、ホストのＴＸから送信された信号はデバイスのＲＸで受信され、デバイスのＴＸから送信された信号はホストのＲＸで受信されることになる。
【００５７】
そしてＨＤＣ５０は、これ以降で説明するＯＯＢシーケンスに基づく信号の送受信が行われた場合、ＨＤＣ５０自身の通信状態を「ＰＨＹＲＤＹ」から「ＰＡＲＴＩＡＬ／ＳＬＵＭＢＥＲ」へと切り替えるように応答する。
【００５８】
図３（ａ）に示すホスト起動は、ホスト及びデバイスそれぞれの通信状態が省電力状態で開始される。
まず、ホストからデバイスへ「ＣＯＭＷＡＫＥ」を示す信号が送信される（Ｓ３０１）。そして、ホストからの「ＣＯＭＷＡＫＥ」を受信したデバイスからホストへ、「ＣＯＭＷＡＫＥ」を示す信号が送信される（Ｓ３１１）。ホストから送信される「ＣＯＭＷＡＫＥ」とデバイスから送信される「ＣＯＭＷＡＫＥ」とは同じ信号である。このような「ＣＯＭＷＡＫＥ」の双方向の送受信によって、ホスト及びデバイスは省電力状態から復帰する。
【００５９】
デバイスは、「ＣＯＭＷＡＫＥ」を送信（Ｓ３０２）した後、所定時間経過してから「ＡＬＩＧＮｐ」を示す信号をホストへ送信する（Ｓ３１２）。この「ＡＬＩＧＮｐ」は「ＡＬＩＧＮ」プリミティブを示している。プリミティブは、ＳＡＴＡ規格における通信プロトコルの構成要素である。デバイスからの「ＡＬＩＧＮｐ」を受信したホストは、「ＡＬＩＧＮｐ」を示す信号をデバイスへ送信する（Ｓ３０２）。
【００６０】
その後は、デバイスからホストへ「ＳＹＮＣｐ」を示す信号が送信され（Ｓ３１３）、ホストからデバイスへ「ＳＹＮＣｐ」を示す信号が送信される（Ｓ３０３）。この「ＳＹＮＣｐ」は「ＳＹＮＣ」プリミティブを示している。
【００６１】
このように、ホストとデバイスとの間の「ＡＬＩＧＮｐ」及び「ＳＹＮＣｐ」の双方向の送受信後に、ホストとデバイスとの間の通常状態における情報の送受信ができるようになる。
【００６２】
図３（ｂ）に示すデバイス起動も、ホスト及びデバイスそれぞれの通信状態が省電力状態で開始される。
デバイス起動では、まずデバイスからホストへ「ＣＯＭＷＡＫＥ」を示す信号が送信される（Ｓ３２１）。そしてデバイスからホストへの「ＣＯＭＷＡＫＥ」の送受信によって、ホスト及びデバイスは省電力状態から復帰する。
【００６３】
その後はホスト起動と同様に、デバイスからホストへ「ＡＬＩＧＮｐ」を示す信号が送信され（Ｓ３２２）、ホストからデバイスへ「ＡＬＩＧＮｐ」を示す信号が送信される（Ｓ３３１）。また、デバイスからホストへ「ＳＹＮＣｐ」を示す信号が送信され（Ｓ３２３）、ホストからデバイスへ「ＳＹＮＣｐ」を示す信号が送信される（Ｓ３３２）。
【００６４】
そして、ホストとデバイスとの間の「ＡＬＩＧＮｐ」及び「ＳＹＮＣｐ」の双方向の送受信後に、ホストとデバイスとの間の通常状態における情報の送受信ができるようになる。
【００６５】
このようにして、ホストとデバイスとが通信可能に接続されている状態で、ＯＯＢシーケンスに基づく複数の信号がやりとりされる。そして本実施形態に係るＨＤＤ１０は、省電力状態である「ＰＡＲＴＩＡＬ／ＳＬＵＭＢＥＲ」から「ＰＨＹＲＤＹ」に復帰することができる。
【００６６】
次に、図４を用いて、本実施形態に係るＨＤＤ１０に備えられたＨＤＣ５０が実行するＢＩＳＴ処理の動作を説明する。
図４は、本実施形態に係るＨＤＤ１０に備えられたＨＤＣ５０が実行するＢＩＳＴ処理の動作を説明するための概念図である。
ＨＤＣ５０の送信用の通信径路であるＴＸと受信用の通信径路であるＲＸは、ルーバック態様の通信径路であるループバック径路４００で接続される。このようにしてＴＸとＲＸとが接続されることで、ＴＸから出力された信号はループバック径路４００を介してＲＸで受信される。
【００６７】
すなわち、本実施形態に係るＨＤＤ１０に備えられたＨＤＣ５０によるＢＩＳＴ処理は、ＴＸとＲＸとが結線された状態で実行される。このＢＩＳＴ処理は、ＯＯＢシーケンスに基づく信号の送受信が行われた場合に、ＨＤＣ５０が、ＨＤＣ５０自身の通信状態を正しく切り替えるように応答するか否かを試験するものである。換言すると、ＨＤＣ５０はＢＩＳＴ処理によってＯＯＢシーケンスに関する応答を自己診断することができる。
【００６８】
なお図４に示す概念図では、ループバック径路４００がＨＤＣ５０の外部でＴＸとＲＸとを結線する実施形態を示したが、ループバック径路４００がＨＤＣ５０の内部でＴＸとＲＸとを結線する実施形態であってもよい。
このような状態で、本実施形態に係るＨＤＣ５０は、これ以降で説明されるＯＯＢシーケンスの動作をテストするためのＢＩＳＴ処理を実行する。
【００６９】
（デバイス起動のＯＯＢシーケンスをテストするＢＩＳＴ処理）
次に、図５を用いて、ＨＤＣ５０によって実行される、省電力状態からの復帰のためのデバイス起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理を説明する。
【００７０】
図５は、ＨＤＣ５０によって実行される、省電力状態からの復帰のためのデバイス起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理を説明するためのシーケンス図である。
【００７１】
このＢＩＳＴ処理では、ＨＤＣ５０はデバイスとして動作する。また図４に示したように、ＨＤＣ５０のＴＸはループバック径路４００を介してＨＤＣ５０自身のＲＸに信号を送信するため、実体としてのホストは存在せず仮想ホストが存在することになる。すなわち、本実施形態におけるデバイス起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理では、デバイスであるＨＤＣ５０が仮想ホストと通信すると共に、ＨＤＣ５０が起点となって省電力状態から復帰する動作をテストすることになる。
【００７２】
すなわち、ＨＤＣ５０のＴＸとＲＸとが結線された状態で、所定の手続きによってＨＤＣ５０はＢＩＳＴ処理を開始する。またこのとき通信状態は、省電力状態である「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」である。そしてＬｉｎｋＬａｙｅｒ５４の特定のブロックは、「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に対応する動作状態となるようにＰＨＹ５２を制御している。この制御は、ステート管理部２２２に対する「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に対応する専用の制御信号をアサートすることで実現可能となる。
【００７３】
このＢＩＳＴ処理が開始されると、まずＬｉｎｋＬａｙｅｒ５４のＴＥＳＴ用ステートマシーン２５１は、ＰＨＹ５２が「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に応じた動作状態になるための制御信号をデアサートする（Ｓ５０１）。ステート管理部２２２は、「ＰＡＲＴＩＡＬ」に対応する制御信号がデアサートされると、通常用ＯＯＢ信号生成部２１３が動作するように制御する。またステート管理部２２２は、「ＳＬＵＭＢＥＲ」に対応する制御信号がデアサートされると、通常用ＯＯＢ信号生成部２１３及び通常用ＰＬＬ２２１が動作するように制御する。このようにしてＰＨＹ５２は、「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に応じた動作状態から「ＰＨＹＲＤＹ」に応じた動作状態へ遷移することができる。
【００７４】
そしてステート管理部２２２からの制御に基づいて、通常用ＯＯＢ信号生成部２１３が生成した「ＣＯＭＷＡＫＥ」を示す信号が、送信ＡＭＰ２１１を介してＴＸ信号としてＴＸから仮想ホストへ送信される（Ｓ５０２）。この「ＣＯＭＷＡＫＥ」は、ループバック径路４００を介してＲＸ信号としてＲＸで受信される。
【００７５】
通常動作において、デバイスのＲＸが「ＣＯＭＷＡＫＥ」を受信すると、図３（ａ）に示したホスト起動のＯＯＢシーケンスのように、ホストに対して「ＣＯＭＷＡＫＥ」を送信する。しかし本実施形態に係るＢＩＳＴ処置では、ＲＸで受信された「ＣＯＭＷＡＫＥ」は無効化されるように処理される（Ｓ５０３）。
【００７６】
具体的には次のような動作が実行される。まずＯＯＢ信号検出部２０３が、受信ＡＭＰ２０１を介して受信された「ＣＯＭＷＡＫＥ」を検出する。そしてＯＯＢ信号検出部２０３は、検出した「ＣＯＭＷＡＫＥ」をＯＯＢ信号制御部２０４へ出力する。ＯＯＢ信号制御部２０４は、ＴＥＳＴ用ステートマシーン２５１からの制御に基づいて、入力されたＯＯＢ信号をステート管理部２２２へ出力しないように動作する。すなわちＯＯＢ信号制御部２０４は、ＲＸ信号として受信された「ＣＯＭＷＡＫＥ」を無効化する。このようにして、このＢＩＳＴ処理では、「ＣＯＭＷＡＫＥ」の送受信が繰り返されることを回避する。
【００７７】
ＴＥＳＴ用ステートマシーン２５１は、ＰＨＹ５２に対して「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に対応する制御信号をデアサートしてから所定時間が経過した後、「ＡＬＩＧＮｐ」を示す信号をＭＵＸ２４３へ出力する。この「ＡＬＩＧＮｐ」は、ＭＵＸ２４３、符号化部２４２、送信バッファ２４１を介してシリアライザ２１２へ入力される。さらに「ＡＬＩＧＮｐ」は、シリアライザ２１２、送信ＡＭＰ２１１を介してＴＸ信号としてＴＸから仮想ホストへ送信される（Ｓ５０４）。
【００７８】
そして、この「ＡＬＩＧＮｐ」は、ループバック径路４００を介してＲＸ信号としてＲＸで受信される。受信された「ＡＬＩＧＮｐ」を示す信号は、受信ＡＭＰ２０１、デシリアライザ２０２を介して受信バッファ２３１へ入力される。さらに「ＡＬＩＧＮｐ」は、受信バッファ２３１、復号化部２３２、ＭＵＸ２３３を介してＴＥＳＴ用ステートマシーン２５１へ入力される。そしてＴＥＳＴ用ステートマシーン２５１は「ＡＬＩＧＮｐ」の入力に応じて、継続する所定の処理を実行する。このようにしてデバイスとしてのＨＤＣ５０は、仮想ホストとの間で、あたかも「ＡＬＩＧＮｐ」の送受信を行ったかのように動作することができる。
【００７９】
ＴＥＳＴ用ステートマシーン２５１は、仮想ホストからの「ＡＬＩＧＮｐ」を入力されてから所定時間が経過した後、「ＳＹＮＣｐ」を示す信号をＭＵＸ２４３へ出力する。この「ＳＹＮＣｐ」も前述した「ＡＬＹＧＮｐ」と同様に、仮想ホストに対して送信される（Ｓ５０５）。さらに「ＳＹＮＣｐ」は、仮想ホストから送信された信号としてＲＸで受信され、ＴＥＳＴ用ステートマシーン２５１で処理される。そしてデバイスとしてのＨＤＣ５０は、仮想ホストとの間で、「ＡＬＩＧＮｐ」に引き続いて「ＳＹＮＣｐ」の送受信を行ったかのように動作することができる。
【００８０】
すなわち、デバイス起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理は、「ＣＯＭＷＡＫＥ」の送信に引き続き、「ＣＯＭＷＡＫＥ」とは異なる「ＡＬＩＧＮｐ」を送信するタイミングで、「ＣＯＭＷＡＫＥ」の受信が無効化されることで実現される。換言すると、このＢＩＳＴ処理は、この処理の開始から終了までの間で一度、受信した「ＣＯＭＷＡＫＥ」に応じて送信されるべき「ＣＯＭＷＡＫＥ」とは異なる「ＡＬＩＧＮｐ」が送信されることで実現される。
【００８１】
このようにしてＨＤＣ５０は、仮想ホストから受信した特定のプリミティブを無効化することで、継続するプリミティブを所定手順で送受信することができる。またＨＤＣ５０は、送信したプリミティブをループバック径路４００を介して受信するので、仮想ホストに対するプリミティブの送信と仮想ホストからのプリミティブの受信とから成る一連の動作を実行することができる。従って本実施形態に係るＨＤＣ５０は、通信状態の遷移を行うための複数の信号の送受信に関する動作テストを簡易に行うことができる。
【００８２】
（ホスト起動のＯＯＢシーケンスをテストするＢＩＳＴ処理（第１の例））
次に、図６を用いて、ＨＤＣ５０によって実行される、省電力状態からの復帰のためのホスト起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理を説明する。
【００８３】
図６は、ＨＤＣ５０によって実行される、省電力状態からの復帰のためのホスト起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理の第１の例を説明するためのシーケンス図である。
【００８４】
このＢＩＳＴ処理の第１の例では、ＨＤＣ５０はデバイスとして動作する。また図４に示したように、ＨＤＣ５０のＴＸはループバック径路４００を介してＨＤＣ５０自身のＲＸに信号を送信するため、実体としてのホストは存在せず仮想ホストが存在することになる。すなわち、本実施形態におけるホスト起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理の第１の例では、デバイスであるＨＤＣ５０が仮想ホストと通信すると共に、仮想ホストが起点となって省電力状態から復帰する動作をテストすることになる。
【００８５】
すなわち、ＨＤＣ５０のＴＸとＲＸとが結線された状態で、所定の手続きによってＨＤＣ５０はＢＩＳＴ処理を開始する。またこのとき通信状態は、省電力状態である「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」である。ＬｉｎｋＬａｙｅｒ５４の特定のブロックが、「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に対応する動作状態となるようにＰＨＹ５２を制御している。
【００８６】
ＢＩＳＴ処理が開始されると、まずＬｉｎｋＬａｙｅｒ５４のＴＥＳＴ用ステートマシーン２５１は、ＰＨＹ５２を「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に対応する動作状態としたまま、ＴＥＳＴ用ＯＯＢ信号生成部２１４及びＴＥＳＴ用ＰＬＬ２１５を起動する（Ｓ６０１）。ここで、ＰＨＹ５２が「ＳＬＵＭＢＥＲ」に対応する動作状態となっている場合には、通常用ＰＬＬ２２１が停止しているので、ＴＥＳＴ用ＰＬＬ２１５の起動は必須となる。しかしＰＨＹ５２が「ＰＡＲＴＩＡＬ」に対応する動作状態となっている場合、ＴＥＳＴ用ＯＯＢ信号生成部２１４が通常用ＰＬＬ２２１からのクロック信号を受けることが可能であれば、ＴＥＳＴ用ＰＬＬ２１５の起動は不要となる。
【００８７】
起動されたＴＥＳＴ用ＯＯＢ信号生成部２１４は、「ＣＯＭＷＡＫＥ」を示す信号を生成する。そして生成された「ＣＯＭＷＡＫＥ」を示す信号は、送信ＡＭＰ２１１を介してＴＸ信号としてＴＸから仮想ホストへ送信される（Ｓ６０２）。そして、この「ＣＯＭＷＡＫＥ」は、ループバック径路４００を介してＲＸ信号としてＲＸで受信される。さらに受信ＡＭＰ２０１で受信された「ＣＯＭＷＡＫＥ」は、仮想ホストから送信された「ＣＯＭＷＡＫＥ」としてＯＯＢ信号検出部２０３で検出される（Ｓ６０３）。すなわち、ＯＯＢシーケンスの先頭のコマンドとして仮想ホストから送信された「ＣＯＭＷＡＫＥ」が検出されることで、ホスト起動のＯＯＢシーケンスが開始される。
【００８８】
ＯＯＢ信号検出部２０３で検出された「ＣＯＭＷＡＫＥ」は、ＯＯＢ信号制御部２０４へ出力される。このときＯＯＢ信号制御部２０４は、ＴＥＳＴ用ステートマシーン２５１からの制御に基づいて、入力されたＯＯＢ信号をステート管理部２２２へ出力するように動作する。すなわちＯＯＢ信号制御部２０４は、入力された「ＣＯＭＷＡＫＥ」をステート管理部２２２へ出力する。
【００８９】
ステート管理部２２２は、ＯＯＢ信号制御部２０４から入力された「ＣＯＭＷＡＫＥ」が検出されたことを示す制御信号を、ＴＥＳＴ用ステートマシーン２５１へ出力する。そしてＴＥＳＴ用ステートマシーン２５１は、ＰＨＹ５２が「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に応じた動作状態になるための制御信号をデアサートする（Ｓ６０４）。このようにしてＰＨＹ５２は、「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に応じた動作状態から「ＰＨＹＲＤＹ」に応じた動作状態へ遷移することができる。これ以降の動作は、図５に示した、デバイス起動のＯＯＢシーケンスをテストするＢＩＳＴ処理と同様である。
【００９０】
すなわち、通常用ＯＯＢ信号生成部２１３が生成した「ＣＯＭＷＡＫＥ」が、デバイスからの応答として送信ＡＭＰ２１１から仮想ホストへ送信される（Ｓ６０５）。この「ＣＯＭＷＡＫＥ」は、ループバック回路４００を介して受信ＡＭＰ２０１で受信されるが、ＯＯＢ信号制御部２０４によって無効化される（Ｓ６０６）。すなわちこのタイミングでは、ＯＯＢ信号制御部２０４は、ＴＥＳＴ用ステートマシーン２５１からの制御により、入力されたＯＯＢ信号をステート管理部２２２へ出力しないように動作している。このようにしてこのＢＩＳＴ処理でも、「ＣＯＭＷＡＫＥ」の送受信が繰り返されることが回避される。
【００９１】
ＴＥＳＴ用ステートマシーン２５１は、所定時間が経過した後、「ＡＬＩＧＮｐ」を示す信号をＭＵＸ２４３へ出力する。この「ＡＬＩＧＮｐ」は、送信ＡＭＰ２１１から仮想ホストへ送信される（Ｓ６０７）。送信された「ＡＬＩＧＮｐ」は、ループバック径路４００を介して受信ＡＭＰ２０１へ戻されて、ＴＥＳＴ用ステートマシーン２５１へ入力される。
【００９２】
ＴＥＳＴ用ステートマシーン２５１は、所定時間が経過した後、「ＳＹＮＣｐ」を示す信号をＭＵＸ２４３へ出力する。この「ＳＹＮＣｐ」は、送信ＡＭＰ２１１Ｘから仮想ホストへ送信される（Ｓ６０８）。送信された「ＳＹＮＣｐ」は、ループバック径路４００を介して受信ＡＭＰ２０１へ戻されて、ＴＥＳＴ用ステートマシーン２５１へ入力される。
【００９３】
ホスト起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理の第１の例においては、処理の開始から終了の間で「ＣＯＭＷＡＫＥ」は２回送信されて、その後は、継続するプリミティブである「ＡＬＩＧＮｐ」が送信される。すなわち、ホスト起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理の第１の例は、「ＣＯＭＷＡＫＥ」の送信に引き続き、「ＣＯＭＷＡＫＥ」とは異なる「ＡＬＩＧＮｐ」を送信するタイミングで、「ＣＯＭＷＡＫＥ」の受信が無効化されることで実現される。換言すると、このＢＩＳＴ処理は、この処理の開始から終了までの間で一度、受信した「ＣＯＭＷＡＫＥ」に応じて送信されるべき「ＣＯＭＷＡＫＥ」とは異なる「ＡＬＩＧＮｐ」が送信されることで実現される。
【００９４】
このようにしてＨＤＣ５０は、ＨＤＣ５０自身が送信したプリミティブを仮想ホストから送信されたプリミティブとして受信することで、ホスト起動のＯＯＢシーケンスを開始することができる。また仮想ホストから受信した所定のプリミティブを所定のタイミングで無効化することで、継続するプリミティブを所定手順で送受信することができる。さらにＨＤＣ５０は、送信したプリミティブをループバック径路４００を介して受信するので、仮想ホストに対するプリミティブの送信と仮想ホストからのプリミティブの受信とから成る一連の動作を実行することができる。従って本実施形態に係るＨＤＣ５０は、通信状態の遷移を行うための複数の信号の送受信に関する動作テストを簡易に行うことができる。
【００９５】
（ホスト起動のＯＯＢシーケンスをテストするＢＩＳＴ処理（第２の例））
次に、図７を用いて、ＨＤＣ５０によって実行される、省電力状態からの復帰のためのホスト起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理を説明する。
【００９６】
図７は、ＨＤＣ５０によって実行される、省電力状態からの復帰のためのホスト起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理の第２の例を説明するためのシーケンス図である。
【００９７】
このホスト起動に係るＢＩＳＴ処理の第２の例でも、ＨＤＣ５０はデバイスとして動作する。また図４に示したように、ＨＤＣ５０のＴＸとＲＸとはループバック径路４００を介して接続されている。すなわち、ホスト起動に係るＢＩＳＴ処理の第２の例でも、デバイスであるＨＤＣ５０が仮想ホストと通信すると共に、仮想ホストが起点となって省電力状態から復帰する動作をテストすることになる。このホスト起動に係るＢＩＳＴ処理の第２の例は、前述したホスト起動に係るＢＩＳＴ処理の第１の例と略同様の動作を行うが、ＢＩＳＴ処理の起点となる動作が異なるものである。
【００９８】
ＨＤＣ５０のＴＸとＲＸとが結線された状態で、所定の手続きによってＨＤＣ５０はＢＩＳＴ処理を開始する。またこのとき通信状態は、省電力状態である「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」である。ＬｉｎｋＬａｙｅｒ５４の特定のブロックが、「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に対応する動作状態となるようにＰＨＹ５２を制御している。
【００９９】
ＢＩＳＴ処理が開始されると、まずＬｉｎｋＬａｙｅｒ５４のＴＥＳＴ用ステートマシーン２５１は、ＰＨＹ５２を「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に対応する動作状態としたまま、ＯＯＢ信号制御部２０４を制御する。ＯＯＢ信号制御部２０４は、ＴＥＳＴ用ステートマシーン２５１からの制御によって、自発的に「ＣＯＭＷＡＫＥ」が検出されたことを示す信号をステート管理部２２２へ出力する（Ｓ７０１）。すなわちステート管理部２２２は、ＯＯＢ信号制御部２０４から「ＣＯＭＷＡＫＥ」が検出されたことを示す制御信号を入力される。すなわち、ＯＯＢシーケンスの先頭のコマンドとしてホストから送信された「ＣＯＭＷＡＫＥ」が検出されることで、ホスト起動のＯＯＢシーケンスが開始される。
【０１００】
ステート管理部２２２は、ＯＯＢ信号制御部２０４から入力された「ＣＯＭＷＡＫＥ」が検出されたことを示す制御信号を、ＴＥＳＴ用ステートマシーン２５１へ出力する。そしてＴＥＳＴ用ステートマシーン２５１は、ＰＨＹ５２が「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に応じた動作状態になるための制御信号をデアサートする（Ｓ７０２）。このようにしてＰＨＹ５２は、「ＰＡＲＴＩＡＬ」又は「ＳＬＵＭＢＥＲ」に応じた動作状態から「ＰＨＹＲＤＹ」に応じた動作状態へ遷移することができる。これ以降の動作は、図５に示したデバイス起動のＯＯＢシーケンスをテストするＢＩＳＴ処理と同様である。
【０１０１】
すなわち、デバイスからの応答として通常用ＯＯＢ信号生成部２１３が生成した「ＣＯＭＷＡＫＥ」が、送信ＡＭＰ２１１から仮想ホストへ送信される（Ｓ７０３）。この「ＣＯＭＷＡＫＥ」は、ループバック回路４００を介して受信ＡＭＰ２０１で受信されるが、ＯＯＢ信号制御部２０４によって無効化される（Ｓ７０４）。すなわちこのタイミングでは、ＯＯＢ信号制御部２０４は、ＴＥＳＴ用ステートマシーン２５１からの制御により、入力されたＯＯＢ信号をステート管理部２２２へ出力しないように動作している。このようにしてこのＢＩＳＴ処理でも、「ＣＯＭＷＡＫＥ」の送受信が繰り返されることが回避される。
【０１０２】
ＴＥＳＴ用ステートマシーン２５１は、所定時間が経過した後、「ＡＬＩＧＮｐ」を示す信号をＭＵＸ２４３へ出力する。この「ＡＬＩＧＮｐ」は、送信ＡＭＰ２１１から仮想ホストへ送信される（Ｓ７０５）。送信された「ＡＬＩＧＮｐ」は、ループバック径路４００を介して受信ＡＭＰ２０１へ戻されて、ＴＥＳＴ用ステートマシーン２５１へ入力される。
【０１０３】
ＴＥＳＴ用ステートマシーン２５１は、所定時間が経過した後、「ＳＹＮＣｐ」を示す信号をＭＵＸ２４３へ出力する。この「ＳＹＮＣｐ」は、送信ＡＭＰ２１１Ｘから仮想ホストへ送信される（Ｓ７０６）。送信された「ＳＹＮＣｐ」は、ループバック径路４００を介して受信ＡＭＰ２０１へ戻されて、ＴＥＳＴ用ステートマシーン２５１へ入力される。
【０１０４】
なお、ＯＯＢ信号制御部２０４が自発的に「ＣＯＭＷＡＫＥ」が検出されたことを示す信号をステート管理部２２２へ出力することがＢＩＳＴ処理の起点となる実施形態を説明したが、他の実施例でも構わない。例えば、ＯＯＢ信号検出部２０３が、自発的に「ＣＯＭＷＡＫＥ」が検出されたことを示す信号をＯＯＢ信号制御部２０４へ出力する構成であってもよい。また、ステート管理部２２２又はＴＥＳＴ用ステートマシーン２５１が「ＣＯＭＷＡＫＥ」が検出されたことを示す信号を擬似的に入力される構成としてもよい。何れの構成でも、このホスト起動に係るＢＩＳＴ処理の第２の例を実現することはできるが、ＰＨＹ５２が備えるブロックが起点となることが好ましい。
【０１０５】
すなわち、ホスト起動によるＯＯＢシーケンスの動作をテストするＢＩＳＴ処理の第２の例は、「ＣＯＭＷＡＫＥ」の送信に引き続き、「ＣＯＭＷＡＫＥ」とは異なる「ＡＬＩＧＮｐ」を送信するタイミングで、「ＣＯＭＷＡＫＥ」の受信が無効化されることで実現される。換言すると、このＢＩＳＴ処理は、この処理の開始から終了までの間で一度、受信した「ＣＯＭＷＡＫＥ」に応じて送信されるべき「ＣＯＭＷＡＫＥ」とは異なる「ＡＬＩＧＮｐ」が送信されることで実現される。
【０１０６】
このようにしてＨＤＣ５０は、仮想ホストからプリミティブが送信されたものとして、ホスト起動のＯＯＢシーケンスを開始することができる。また仮想ホストから受信した所定のプリミティブを所定のタイミングで無効化することで、継続するプリミティブを所定手順で送受信することができる。さらにＨＤＣ５０は、送信したプリミティブをループバック径路４００を介して受信するので、仮想ホストに対するプリミティブの送信と仮想ホストからのプリミティブの受信とから成る一連の動作を実行することができる。従って本実施形態に係るＨＤＣ５０は、通信状態の遷移を行うための複数の信号の送受信に関する動作テストを簡易に行うことができる。
【０１０７】
以上説明したように本実施形態によれば、ＨＤＣ５０のＴＸとＲＸとを容易に接続することができる。そしてこのような接続がされた状態で以下の動作を実行することが可能となる。例えば、受信した所定のＯＯＢ信号を所定のタイミングで無効化するブロックによって、継続するプリミティブを所定手順で送受信することが可能となる。また通常動作と同じシーケンスとなるような信号の送受信を司るブロックによって、仮想ホストとの間のプリミティブの送受信の一連の動作を実行することが可能となる。さらに仮想ホストからの特定のプリミティブの受信を擬似的に検出するブロック又は特定のプリミティブを送信するブロックによって、容易にＯＯＢシーケンスを開始することが可能となる。従って本実施形態に係るＨＤＣ５０は、通信状態の遷移を行うための複数の信号の送受信に関する動作テストを簡易に行うことができる。
【０１０８】
なお本発明は、前述した実施形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。また、前述した実施形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよく、さらに、異なる実施形態に係る構成要素を適宜組み合わせても良い。
【符号の説明】
【０１０９】
１…磁気ディスク、２…磁気ヘッド、３…アーム、４…スピンドルモータ、５…ＶＣＭ、１０…ＨＤＤ、２１…モータドライバ、２２…ヘッドＩＣ、３１…リードライトチャネルＩＣ（ＲＤＣ）、４１…ＣＰＵ、４２…ＲＡＭ、４３…ＮＶＲＡＭ、５０…ＨＤＣ、５２…ＰＨＹ、５４…ＬｉｎｋＬａｙｅｒ、１００…ホストシステム、２０１…受信ＡＭＰ、２０２…デシリアライザ、２０３…ＯＯＢ信号検出部、２０４…ＯＯＢ信号制御部、２１１…送信ＡＭＰ、２１２…シリアライザ、２１３…通常用ＯＯＢ信号生成部、２１４…ＴＥＳＴ用ＯＯＢ信号生成部、２１５…ＴＥＳＴ用ＰＬＬ、２２１…通常用ＰＬＬ、２２２…ステート管理部、２３１…受信バッファ、２３２…復号化部、２３３…ＭＵＸ、２４１…送信バッファ、２４２…符号化部、２４３…ＭＵＸ、２５１…ＴＥＳＴ用ステートマシーン、４００…ループバック径路。
【図１】
2011191955.tif 000003
【図２】
2011191955.tif 000004
【図３】
2011191955.tif 000005
【図４】
2011191955.tif 000006
【図５】
2011191955.tif 000007
【図６】
2011191955.tif 000008
【図７】
2011191955.tif 000009
【手続補正書】
【提出日】平成23年6月3日(2011.6.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コマンドを送信する送信手段と、
前記コマンドを受信する受信手段と、
前記送信手段と前記受信手段とが、複数のコマンドを所定手順で送信及び受信した場合に、前記送信手段及び前記受信手段による通信の状態を示す通信状態を、前記コマンドの送受信が停止する第１の状態から前記コマンドの送受信が定常的に行われる第２の状態へと切り替えるように応答する応答手段と、
前記送信手段が送信した前記コマンドを前記受信手段が受信するように構成されたループバック態様の送受信径路を介して、前記送信手段と前記受信手段との間で送受信される前記複数のコマンドに対して前記応答手段が正しく応答するか否かの試験を実行する試験手段と、
前記試験手段が前記試験を実行している期間中において、前記送信手段が所定のコマンドを送信し、前記送受信径路を介して前記受信手段が当該所定のコマンドを受信し、前記所定のコマンドの受信を無効化し、さらに前記送信手段が前記所定のコマンドの送信に引き続き当該所定のコマンドとは異なるコマンドを送信するように制御する制御手段と、
を具備する通信装置。
【請求項２】
前記第１の状態において前記送信手段が送信するコマンドを生成する生成手段を具備し、
前記試験手段が前記試験を実行している期間中において、前記送信手段が前記生成手段によって生成された前記コマンドを送信し、前記受信手段は前記通信状態を前記第１の状態から前記第２の状態に切り替えるための前記複数のコマンドのうちの先頭のコマンドとして前記送信されたコマンドを受信する
請求項１記載の通信装置。
【請求項３】
前記試験手段が前記試験を実行している期間中において、前記制御手段は前記通信状態を前記第１の状態から前記第２の状態に切り替えるための前記複数のコマンドのうちの先頭のコマンドを前記受信手段が受信したと仮定する
請求項１記載の通信装置。
【請求項４】
前記試験手段が実行する前記試験は、ＳＡＴＡ規格におけるＯＯＢシーケンスに関するコマンド送受信の試験であると共に、前記第１の状態はＰＡＲＴＩＡＬステイタス又はＳＬＵＭＢＥＲステイタス、前記第２の状態はＰＨＹＲＤＹステイタス、且つ前記所定のコマンドはＣＯＭＷＡＫＥコマンドである
請求項１記載の通信装置。
【請求項５】
コマンドを送信する送信手段と前記コマンドを受信する受信手段とを備えた通信装置による通信方法であって、
複数のコマンドを所定手順で送信及び受信した場合に、前記送信及び前記受信による通信の状態を示す通信状態を、前記コマンドの送受信が停止する第１の状態から前記コマンドの送受信が定常的に行われる第２の状態へと切り替えるように応答し、
送信した前記コマンドを受信するように構成されたループバック態様の送受信径路を介して、送受信される前記複数のコマンドに対して正しく応答するか否かの試験を実行し、
前記試験の実行期間中において、前記所定のコマンドを送信し、前記送受信径路を介して当該所定のコマンドを受信し、前記所定のコマンドの受信を無効化し、さらに前記所定のコマンドの送信に引き続き当該所定のコマンドとは異なるコマンドを送信するように制御する通信方法。
【請求項６】
コマンドを送信する送信手段と、
前記コマンドを受信する受信手段と、
を具備する通信装置において、
送信した前記コマンドを受信するように構成されたループバック態様の送受信径路を介して、前記送信手段と前記受信手段との間で所定の手順で送受信される、前記送信手段及び前記受信手段による通信の状態を示す通信状態を切り替えるための複数のコマンドに対する応答が正しくなされるか否かが試験される場合、
前記送信手段は、当該試験の実行期間中に一度、受信した所定のコマンドに応じて送信されるべきコマンドとは異なるコマンドを送信する通信装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本発明は上述した課題を解決するため、コマンドを送信する送信手段と、前記コマンドを受信する受信手段と、前記送信手段と前記受信手段とが、複数のコマンドを所定手順で送信及び受信した場合に、前記送信手段及び前記受信手段による通信の状態を示す通信状態を、前記コマンドの送受信が停止する第１の状態から前記コマンドの送受信が定常的に行われる第２の状態へと切り替えるように応答する応答手段と、前記送信手段が送信した前記コマンドを前記受信手段が受信するように構成されたループバック態様の送受信径路を介して、前記送信手段と前記受信手段との間で送受信される前記複数のコマンドに対して前記応答手段が正しく応答するか否かの試験を実行する試験手段と、前記試験手段が前記試験を実行している期間中において、前記送信手段が所定のコマンドを送信し、前記送受信径路を介して前記受信手段が当該所定のコマンドを受信し、前記所定のコマンドの受信を無効化し、さらに前記送信手段が前記所定のコマンドの送信に引き続き当該所定のコマンドとは異なるコマンドを送信するように制御する制御手段と、を具備する通信装置を提供する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
また本発明は上述した課題を解決するため、コマンドを送信する送信手段と前記コマンドを受信する受信手段とを備えた通信装置による通信方法であって、複数のコマンドを所定手順で送信及び受信した場合に、前記送信及び前記受信による通信の状態を示す通信状態を、前記コマンドの送受信が停止する第１の状態から前記コマンドの送受信が定常的に行われる第２の状態へと切り替えるように応答し、送信した前記コマンドを受信するように構成されたループバック態様の送受信径路を介して、送受信される前記複数のコマンドに対して正しく応答するか否かの試験を実行し、前記試験の実行期間中において、前記所定のコマンドを送信し、前記送受信径路を介して当該所定のコマンドを受信し、前記所定のコマンドの受信を無効化し、さらに前記所定のコマンドの送信に引き続き当該所定のコマンドとは異なるコマンドを送信するように制御する通信方法を提供する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
また本発明は上述した課題を解決するため、コマンドを送信する送信手段と、前記コマンドを受信する受信手段と、を具備する通信装置において、送信した前記コマンドを受信するように構成されたループバック態様の送受信径路を介して、前記送信手段と前記受信手段との間で所定の手順で送受信される、前記送信手段及び前記受信手段による通信の状態を示す通信状態を切り替えるための複数のコマンドに対する応答が正しくなされるか否かが試験される場合、前記送信手段は、当該試験の実行期間中に一度、受信した所定のコマンドに応じて送信されるべきコマンドとは異なるコマンドを送信する通信装置を提供する。