(57)【特許請求の範囲】
【請求項１】
ホストコントローラのテストモードに入ること、及び、
前記ホストコントローラが前記テストモード中において、
前記ホストコントローラがビジーでないことを示すようにビットをクリアすること、
データを交換するための第１のコマンドを受信すること、
前記ホストコントローラがビジーであることを示すように前記ビットをセットすること、
前記第１のコマンドに対応してデータを交換すること、
を含み、
前記テストモード中の前記ホストコントローラの状態機械シーケンスは、前記テストモードではない場合にホストコントローラインタフェース仕様により要求される、記憶デバイスに第２のコマンドを送信するための状態を省略すること
を含む方法。
【請求項２】
前記第２のコマンドが正しく送信されたという確認応答を前記記憶デバイスから受信することを、前記状態機械シーケンスは省略する、請求項１に記載の方法。
【請求項３】
前記データの交換は、データ送信又はデータ受信のうちの一方である、請求項１または２に記載の方法。
【請求項４】
前記ホストコントローラは、アドバンスドホストコントローラインタフェースホストコントローラである、請求項１から請求項３のいずれか１つに記載の方法。
【請求項５】
ホストコントローラのテストモードに入る手段と、
前記ホストコントローラが前記テストモードの間に、ビジービットをクリアする手段と、
前記ホストコントローラが前記テストモードの間に、データを交換するための要求の第１のコマンドを受信する手段と、
前記ホストコントローラが前記テストモードの間に、前記第１のコマンドを受信した後に前記ビジービットをセットする手段と、
前記ホストコントローラがテストモードの間に、前記第１のコマンドに応答して前記ホストコントローラがデータを交換する手段と
を備え、
テストモード中における前記ホストコントローラの状態機械シーケンスは、前記ホストコントローラが前記テストモードでない場合にホストコントローラインタフェース仕様により要求される、記憶装置に第２のコマンドを送信するための状態を省略する装置。
【請求項６】
前記ホストコントローラは、
前記第２のコマンドが正しく送信されたという確認応答の受信を省略する手段をさらに含む、請求項５に記載の装置。
【請求項７】
ホストコントローラがビジーでないことを示すビットをクリアし、
データを交換するための第１のコマンドをフェッチし、
前記ホストコントローラがテストモードでない場合に前記ホストコントローラが実行するようにホストコントローラインタフェース仕様により要求される状態機械シーケンスである、記憶デバイスに第２のコマンドの送信することを、事前に行うことなく、前記ホストコントローラにより前記データを交換することを、前記テストモードにおいて実行するホストコントローラ
を具備する装置。
【請求項８】
前記ホストコントローラは、シリアルアドバンスドテクノロジアタッチメントアドバンスドホストコントローラインタフェースホストコントローラである、請求項７に記載の装置。
【請求項９】
前記記憶デバイスは、シリアルアドバンスドテクノロジアタッチメントデバイスである、請求項７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コンピュータシステムにおいてデータを転送する技術分野に関し、特に、データをアドバンスドホストコントローラインタフェース（ＡＨＣＩ）で交換することに関する。
【背景技術】
【０００２】
ＣＤ  ＲＯＭ、ハードディスクドライブ、ＤＶＤ  ＲＡＭ等のシリアルアドバンスドテクノロジアタッチメント（ＳＡＴＡ）デバイスを、２００４年４月１３日に発行されたＳｅｒｉａｌ  ＡＴＡ  Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ（ＡＨＣＩ）  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，  Ｒｅｖｉｓｉｏｎ  １．０に準拠するホストコントローラ（ＨＣ）を有するコンピュータシステムに焦点を合せた方法で開発することができる。ＡＨＣＩ  Ｓｐｅｃｉｆｉｃａｔｉｏｎは、この仕様を実装し且つＳＡＴＡデバイスとコンピュータシステムのメモリとの間のインタフェースとしての役割を果たすデバイスについて記述している。このインタフェースデバイスは、たとえばホストコントローラ、ホストバストアダプタ等として知られている。このデバイスは仕様によって記述されているため、事前に設定されたコマンド及び手続きに応答するよう期待される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
たとえば、ＨＣは通常データ交換に先立ってＳＡＴＡデバイスにコマンドを送信する。そして、ＨＣは、データ交換が行われることが可能になる前に応答を待つ。しかしながら、ＨＣのデータを交換する能力をテストすることは、通常ＨＣをテストしている時、ＳＡＴＡデバイスは通常存在しないため、困難となる。その結果、ＨＣがコマンドを送信し、存在しないデバイスからの応答を待つことは無駄である。
【課題を解決するための手段】
【０００４】
本発明の実施形態を、以下の説明と、かかる実施形態を例証する添付の図面とを参照することによって、最もよく理解することができる。
【発明を実施するための最良の形態】
【０００５】
以下の記述では、本発明が完全に理解されるために、説明の目的で多数の特定の詳細を示す。しかしながら、当業者には、本発明の実施形態をこれらの特定の詳細なしに実施してもよいということが明らかとなろう。
【０００６】
本発明の実施形態により、データ交換のための状態機械シーケンスの複数の状態を省略することが可能になり、ここでは、ＨＣは一動作のモードに入る。一実施形態では、ＨＣは、データを交換する要求を受信し、このデータを交換する要求は、データを送信する要求であっても、又はデータを受信する要求であってもよい。したがって、ビットが、そのモードに入る時にクリアされ、デバイスによって受信されるべきコマンドを送信する前の状態機械の後続する状態においてセットされる。デバイスによって受信されるべきコマンドを送信する前にビットをセットすることにより、ＨＣは、データ送信又は受信の前に通常実行される状態を省略することができる。一実施形態によれば、ＨＣは、アドバンスドホストコントローラインタフェースＨＣである。
【０００７】
したがって、後により詳細に説明するように、本発明の実施形態は、ＨＣのデータ交換で実行されるべき動作を低減することにより、ホストコントローラをテストする能力を向上させることができる。
【０００８】
図１Ａは、ホストコントローラテストデバイス（テストデバイス）５２に接続されているホストコントローラ（ＨＣ）５０を示す。ＨＣ５０は、ＳＡＴＡインタフェース５８によってテストデバイス５２に接続される。このインタフェースは、ＨＣ５０に対し、テストデバイス５２と通信する能力を提供する任意の適当なインタフェースであってもよい。さらに、テストデバイス５２は、ＨＣをテストするために必要な機能を提供することができる任意の適当なデバイスであってもよい。
【０００９】
図１Ｂは、第１のホストコントローラ（ＨＣ−Ａ）５４が第２のホストコントローラ（ＨＣ−Ｂ）５６に接続される、代替のテスト構成を示す。ＨＣを、上述したように、任意の適当なインタフェースによって接続することができる。２つのＨＣを互いに接続することにより、コンピュータシステムを、ホストコントローラのデータ送受信をテストするために使用することができる。
【００１０】
本発明の実施形態を、図１Ａ及び図１Ｂに示す構成においてホストコントローラによって実施することができる。ホストコントローラの他の適当な構成があり得るため、図１Ａ及び図１Ｂの構成は限定するためではなく例として提供する。
【００１１】
図２は、一実施形態による、ＨＣとデータを交換するプロセスを説明するフローチャートを示す。プロセスブロック６０において、ＨＣは一モードに入る。本発明の一実施形態では、このモードは、ＨＣをテストするモードであってもよい。さらに、一実施形態では、モードは特に、このモードにおけるＨＣによるデータ送信又はデータ受信をテストすることであってもよい。ＨＣは、コンピュータシステムメモリ２６に格納されているソフトウェア命令から指示されることに応じてそのモードに入ってもよい。ＨＣはまた、図１Ａ又は図１Ｂに示すもののようなＨＣに接続されている外部デバイスからＨＣによって受信される命令を通してそのモードに入ってもよい。ＨＣのモードに入る実施形態は、上述したプロセスによって限定されない。さらに、実施形態は、ＨＣデバイスドライバを使用して、モード及び／又は変更をＨＣに設定することができる。
【００１２】
一実施形態では、ＨＣは、モードに入ると（プロセスブロック６０）、ＨＣがビジーでないことを示すようにビットをクリアする。より詳細には、ビットを、ＨＣが目下動作を実行していないことを指定するようにクリアする。一実施形態では、たとえば、モードに入る時、ＰｘＴＦＤ．ＳＴＳ．ＢＳＹビット（ＢＳＹビット）をクリアする。この一実施形態では、ＢＳＹビットは、ＨＣの、ＳＡＴＡデバイスとデータを交換する能力に関する、タスクファイルデータの現ステータスを示す特定のレジスタビットである。
【００１３】
次に、ＨＣは、ＨＣがデータを交換するためにデバイスに発行するコマンドを選択する（プロセスブロック６２）。そして、ＨＣは、選択されたコマンドに対してコマンドヘッダをフェッチする（プロセスブロック６４）。一実施形態では、コマンドの選択を、システム１０等のコンピュータシステムにより、又は図１Ａ及び図１Ｂに示すような外部ハードウェアデバイス等によりトリガしてもよい。
【００１４】
通常、ＨＣは、コマンドヘッダをフェッチした後（プロセスブロック６４）、コマンドがデバイスに発行される用意ができるまで、アイドル状態のままである。しかしながら、一実施形態では、コマンドヘッダをフェッチした後、ＨＣがビジーである、すなわち動作を実行していることを示すようにビットをセットする（プロセスブロック６６）。一実施形態では、システムがビジーであることを示すように、ＢＳＹビットをセットする。システムがビジーであることを示すようにビットをセットすることにより、ＨＣはデータの交換に進む（プロセスブロック６８）。データ交換は、データ送信であってもデータ受信であってもよい。
【００１５】
ＨＣがビジーであることを示すようにビットがセットされると（プロセスブロック６６）、ＨＣは、ＳＡＴＡデバイスにコマンドを送信しない。またＨＣは、コマンドが正しく送信されたという確認応答を受信する必要もない。さらに、ビットをセットすることにより、ＨＣはまた、ＳＡＴＡデバイスがデータを受け入れる用意ができるのを待つ必要もなく、且つＳＡＴＡデバイスがデータを受信する用意ができているという確認応答を待つ必要もない。代りに、ＨＣはデータ交換に進む。
【００１６】
ＨＣは、ビットがセットされると直接データ交換に進むため、データ送信及び／又はデータ受信のために状態機械シーケンスの状態を省略する。一実施形態では、このモードでデータを送信する時、ＨＣは、状態機械シーケンスの以下の状態、すなわち、コマンドフレーム情報構造送信（Command Frame Information Structure Transmit）（ＣＦＩＳ：Ｘｍｉｔ）、コマンドフレーム情報構造成功（Command Frame Information Structure Success）（ＣＦＩＳ：Ｓｕｃｃｅｓｓ）、ホストアイドル（Host Idle）（Ｈ：Ｉｄｌｅ）、非データフレーム情報構造受信エントリ（Non-Data Frame Information Structure Receive Entry）（ＮＤＲ：Ｅｎｔｒｙ）及び非データフレーム情報構造受信受入（Non-Data Frame Information Structure Receive Accept）（ＮＤＲ：Ａｃｃｅｐｔ）のうちの少なくとも１つ又は複数を省略する。代替の実施形態では、他の状態及びプロセスを省略してもよい。このため、一実施形態によれば、ＨＣがそのモードにある時にデータ送信ための状態機械シーケンスは、Ｈ：Ｉｄｌｅ、Ｈ：ＳｅｌｅｃｔＣｍｄ、Ｈ：ＦｅｔｃｈＣｍｄ、Ｈ：Ｉｄｌｅ、ＤＸ：Ｅｎｔｒｙ及びＤＸ：Ｔｒａｎｓｍｉｔとなる。一実施形態によれば、Ｈ：Ｉｄｌｅが、ホストコントローラが非アクティブである状態を指す場合、データ送信のために状態機械シーケンスの第２のＨ：Ｉｄｌｅ状態に入ると、ビットがセットされる。
【００１７】
同様に、そのモードにおいてデータを受信する場合、ＨＣは、一実施形態によれば、以下の状態、すなわち、ＣＦＩＳ：Ｘｍｉｔ、ＣＦＩＳ：Ｓｕｃｃｅｓｓ及びＨ：Ｉｄｌｅのうちの少なくとも１つ又は複数を省略する。このため、データ受信のための状態機械シーケンスは、Ｈ：Ｉｄｌｅ、Ｈ：ＳｅｌｅｃｔＣｍｄ、Ｈ：ＦｅｔｃｈＣｍｄ、Ｈ：Ｉｄｌｅ、ＤＲ：Ｅｎｔｒｙ及びＤＲ：Ｒｅｃｅｉｖｅとなる。代替の実施形態では、他の状態及びプロセスを省略してもよい。一実施形態によれば、データ受信のために状態機械シーケンスの第２のＨ：Ｉｄｌｅ状態に入ると、ビットがセットされる。
【００１８】
図３は、本発明の代替の実施形態実施形態による、ＨＣとデータを交換するプロセスを説明するフローチャートを示す。この実施形態によれば、ＨＣデバイスドライバ及び拡張ＨＣは、上述したように、データ交換のための状態及びプロセスを省略することによってデータを交換することができる。図３に示すように、ＡＨＣＩデバイスドライバは、ＨＣによって受信されるコマンドリストの内容を変更する（プロセスブロック７０）。コマンドリストには、コマンドフレーム情報構造（Command Frame Information Structure）（ＣＦＩＳ）が、対応するコマンドフレーム情報構造長（ＣＦＬ）とともに含まれる。ＡＨＣＩデバイスドライバは、ＣＦＬをゼロにセットする。ＣＦＬ＝０をセットすることにより、拡張ホストコントローラはＣＦＩＳを処理しない。その結果、ホストコントローラは、ＨＣに接続されているデバイスにコマンドを送信することなく、且つコマンドが受信されたとデバイスが確認応答するのを待つことなく、データを交換することができる。
【００１９】
ＣＦＬがゼロにセットされた後、ＨＣは、図２に示す実施形態に関してＨＣが行ったように、データを交換するコマンドを選択し（プロセスブロック７２）、コマンドヘッダをフェッチすることができる（プロセスブロック７４）。しかしながら、図２に示す実施形態とは異なり、図３の実施形態は、ＨＣがコマンドヘッダをフェッチした後にビットをセットする必要はない。ＣＦＬ＝０である場合、ＨＣは、デバイスにコマンドを送信せず、デバイスによってコマンドが受信されたという確認応答も待たない。その代わり、コマンドヘッダがフェッチされた後、ＨＣは、ＣＦＬ＝０である時にデータ交換に進む（プロセスブロック７６）。
【００２０】
こうした実施形態により、ＨＣをテストする能力を向上させることができる。図３に示す実施形態によれば、本方法により、テストＨＣによってコマンドを送信及び／又は受信する柔軟性が可能になる。さらに、こうした実施形態は、ソフトウェア及び／又はハードウェアが種々のコマンドを実行する場合にＨＣをテストする柔軟な方法を提供する。一実施形態によれば、任意選択でＣＦＬ＝０とセットすることにより、いくつかのコマンドのみがＣＦＩＳがテストデバイスに送信されるよう要求する、コマンドの混合が可能になる。
【００２１】
図４は、一実施形態による、本明細書で説明した装置及び方法を実施するシステム１０を示す。システム１０の文脈で説明するが、実施形態を任意の適当なコンピュータシステムで実施してもよい。
【００２２】
図４に示すように、コンピュータシステム１０は、少なくとも１つのＨＣ２４を備える。コンピュータシステム１０はまた、メモリ２６及び入出力コントローラハブ（ＩＣＨ）２８も備える。プロセッサ２２、メモリ２６、ＨＣ（複数可）２４及びＩＣＨ２８は、メモリコントローラハブ４８に接続される。ＩＣＨ２８は、ハブリンク２０を介してメモリコントローラハブに接続される。別法として、ＨＣ（複数可）３４を、さらにメモリコントローラハブ４８に接続するか又はそれに統合してもよい。
【００２３】
システムメモリ２６は、コンピュータシステム１０のためのデータ及び／又は命令を格納するものであり、たとえばダイナミックランダムアクセスメモリ（ＤＲＡＭ）、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）又は拡張データ出力ランダムアクセスメモリ（ＥＤＯ  ＲＡＭ）等の任意の適当なメモリを含んでもよい。コンピュータシステム１０は、たとえばブラウン管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）等のディスプレイ３２に接続されたグラフィックスコントローラ３０をさらに備える。
【００２４】
ＩＣＨ２８は、コンピュータシステム１０に、Ｉ／Ｏデバイス又は周辺コンポーネントに対するインタフェースを提供する。ＩＣＨ２８は、プロセッサ２２及びメモリ２６に他の任意の適当な通信リンクを提供するために任意の適当なインタフェースコントローラ（複数可）を備えてもよい。ＩＣＨ２８はまた、たとえばマウス、キーボード、フロッピーディスクドライブ及び／又は他の任意の適当なＩ／Ｏデバイス等のＩ／Ｏデバイス（複数可）４４に対するインタフェースも提供する。ＩＣＨ２８はまた、パラレルアドバンスドテクノロジアタッチメント（ＰＡＴＡ）デバイス３８及び／又はユニバーサルシリアルバス（ＵＳＢ）デバイス４０等のデバイスのための代替のインタフェースを提供してもよい。
【００２５】
ＨＣ（複数可）２４及び３４は、データ及び／又は命令を格納及び／又は検索するために、たとえばハードディスクドライブ（ＨＤＤ）、コンパクトディスクリードオンリメモリ（ＣＤ  ＲＯＭ）、デジタルビデオディスクリードオンリメモリ（ＤＶＤ  ＲＯＭ）等、任意の適当なＳＡＴＡデバイス（複数可）３６及び／又は４６に、プロセッサ２２及びメモリ２６に対するインタフェースを提供する。
【００２６】
システムメモリ２６は、一実施形態によれば、本明細書で論考したようなプロセス及び状態を省略することによってＨＣをテストする命令４２をさらに含む。代替の実施形態では、命令を、コンピュータシステム１０内のファームウェア、コンピュータシステム１０内の専用回路等に含めることができるため、それらの命令はメモリ２６に存在する必要はない。
【００２７】
したがって、コンピュータシステム１０は、本明細書で説明した方法のうちの任意の１つ又はすべてを具現化する命令のセット（すなわちソフトウェア）が格納される機械読取可能媒体を含む。たとえば、ソフトウェアは、完全に又は少なくとも部分的にメモリ２６内に且つ／又はプロセッサ２２内に存在してもよい。この明細書の目的では、「機械読取可能媒体」という用語は、情報を機械（たとえばコンピュータ）によって読取可能な形態で提供する（すなわち、格納、検索及び／又は送信する）任意のメカニズムを含むように解釈されるものとする。たとえば、機械読取可能媒体は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気、光、音響又は他の形態の伝播信号（たとえば搬送波、赤外線信号、デジタル信号等）等を含む。
【００２８】
本発明を、特定の実施形態例を参照して説明したが、本発明のより広い精神及び範囲から逸脱することなく、これらの実施形態に対してさまざまな変更及び変形を行ってもよいということが明らかとなろう。したがって、本明細書及び図面は、限定する意味ではなく例示する意味で考慮されるべきである。
【図面の簡単な説明】
【００２９】
【図１Ａ】一実施形態による、デバイスに接続されているホストコントローラの例示的な構成を示す図である。
【図１Ｂ】一実施形態による、第２のホストコントローラに接続されているホストコントローラの例示的な構成を示す図である。
【図２】ホストコントローラを使用してデータを交換するプロセスの一実施形態のフローチャートである。
【図３】ホストコントローラを使用してデータを交換するプロセスの代替の実施形態のフローチャートである。
【図４】本発明の実施形態による、データを交換するプロセッサ及びホストコントローラ（複数可）を備える例示的なシステムを示す図である。
【図１Ａ】
0004801669.tif 000002
【図１Ｂ】
0004801669.tif 000003
【図２】
0004801669.tif 000004
【図３】
0004801669.tif 000005
【図４】
0004801669.tif 000006