ホストコントローラの一モードに入ること、及び前記ホストコントローラによるデータ交換の前に該ホストコントローラの状態機械シーケンスの一状態を省略することを含む方法。前記モードに入った時に前記ホストコントローラがビジーでないことを示すようにビットをクリアすること、前記データ交換の前に前記状態機械シーケンスにおける後続する状態に入った時に、前記ホストコントローラがビジーであることを示すように前記ビットをセットすること、及びデータを交換することをさらに含む、請求項1に記載の方法。前記ビットは、現タスクファイルステータスを示す、請求項2に記載の方法。前記ビットは、別個のデバイスによって受信されるべきコマンド情報が送信される前にセットされる、請求項2に記載の方法。データ交換のための前記状態を省略することは、デバイスによって受信されるべきコマンドを送信すること、及び前記コマンドが正しく送信されたという確認応答を受信することのうちの少なくとも1つを省略することを含む、請求項1に記載の方法。前記デバイスがデータを受け入れる用意ができているか否かを該デバイスが判断するのを待つこと、及び前記デバイスがデータを受け入れる用意ができているという確認された応答を受信することのうちの少なくとも1つを省略することをさらに含む、請求項5に記載の方法。前記データ交換は、データ送信又はデータ受信のうちの一方である、請求項1に記載の方法。前記ホストコントローラは、アドバンスドホストコントローラインタフェースホストコントローラである、請求項1に記載の方法。前記モードはテストモードである、請求項1に記載の方法。ホストコントローラがコマンドをフェッチすること、前記ホストコントローラが、前記コマンドを受信すること、前記ホストコントローラが、別個のデバイスによって受信されるべきコマンド情報を送信することなくデータを交換することを含む方法。コマンドを受信する前記ホストコントローラは、変更されたコマンド構造を有するコマンドを受信する該ホストコントローラをさらに含む、請求項10に記載の方法。前記変更されたコマンド構造は、コマンドフレーム情報構造長CommandFrameInformationStructureLengthがゼロに等しいコマンドである、請求項11に記載の方法。ホストコントローラがコマンドをフェッチすること、前記ホストコントローラが、変更されたコマンド構造を有する前記コマンドを受信すること、及び前記ホストコントローラが、別個のデバイスによって受信されるべきコマンドを送信することなくデータを交換することを含む方法。前記ホストコントローラが、前記別個のデバイスが前記コマンドが受信されたと確認応答するのを待つことなく、データを交換することをさらに含む、請求項13に記載の方法。前記変更されたコマンド構造は、ゼロに等しいコマンドフレーム情報構造長を含む、請求項14に記載の方法。ホストコントローラの一モードに入る手段と、前記ホストコントローラによるデータ交換の前に該ホストコントローラの状態機械シーケンスの一状態を省略する手段とを具備する装置。前記モードに入った時に前記ホストコントローラがビジーでないことを示すようにビットをクリアする手段と、前記データ交換の前に前記状態機械シーケンスにおける後続する状態に入った時に、前記ホストコントローラがビジーであることを示すように前記ビットをセットする手段と、データを交換する手段とをさらに具備する、請求項16に記載の装置。データ交換のための前記状態を省略する手段は、別個のデバイスによって受信されるべきコマンドを送信する手段と、該コマンドが正しく送信されたという確認応答を受信する手段とのうちの少なくとも1つを省略する手段を含む、請求項16に記載の装置。前記別個のデバイスがデータを受け入れる用意ができているか否かを該別個のデバイスが判断するのを待つ手段と、前記別個のデバイスがデータを受け入れる用意ができているという確認された応答を有する手段とのうちの少なくとも1つを省略することをさらに含む請求項18に記載の装置。コマンドをフェッチする手段と、該コマンドを受信する手段と、別個のデバイスによって受信されるべきコマンド情報を送信することなくデータを交換する手段とを具備する装置。コマンドを受信する前記ホストコントローラは、変更されたコマンド構造を有するコマンドを受信する該ホストコントローラをさらに含む、請求項20に記載の方法。前記変更されたコマンド構造は、コマンドフレーム情報構造長がゼロに等しいコマンドである、請求項21に記載の方法。コマンドをフェッチする手段と、コマンドを受信する手段と、別個のデバイスによって受信されるべきコマンド情報を送信することなくデータを交換する手段と、前記コマンド情報が受信されたと前記別個のデバイスが確認応答するのを待つことなく、データを交換する手段とを具備する装置。変更されたコマンド構造を有する前記コマンド情報を受信する手段をさらに具備する、請求項23に記載の装置。前記変更されたコマンド構造を有する前記コマンド情報は、コマンドフレーム情報構造長がゼロに等しいコマンドである、請求項24に記載の装置。ホストコントローラであって、メモリからコマンドをフェッチし、前記メモリから前記コマンドを受信し、前記メモリと別個のデバイスとの間で、該デバイスによって受信されるべきコマンド情報を送信することなく、該ホストコントローラによりデータを交換するホストコントローラを具備する装置。前記ホストコントローラは、シリアルアドバンスドテクノロジアタッチメントアドバンスドホストコントローラインタフェースホストコントローラである、請求項26に記載の装置。前記デバイスは、シリアルアドバンスドテクノロジアタッチメントデバイスである、請求項26に記載の装置。システムバスと、シンクロナスダイナミックランダムアクセスメモリと、前記バスに接続されるホストコントローラであって、システムメモリからコマンドをフェッチし、システムメモリから前記コマンドを受信し、別個のデバイスとシステムメモリとの間で、該別個のデバイスによって受信されるべきコマンド情報を送信することなく、該ホストコントローラによりデータを交換するホストコントローラとを具備するシステム。交換データは、送信データ又は受信データのうちの一方である、請求項29に記載のシステム。前記ホストコントローラは、シリアルアドバンスドテクノロジアタッチメントアドバンスドホストコントローラインタフェースホストコントローラである、請求項29に記載のシステム。機械読取可能媒体であって、機械によってアクセスされると、該機械に、ホストコントローラがメモリからコマンドをフェッチすること、前記ホストコントローラが、前記メモリから前記コマンドを受信すること、前記ホストコントローラが、別個のデバイスと前記メモリとの間で、該別個のデバイスによって受信されるべきコマンド情報を送信することなくデータを交換することを含む動作を実行させるデータを含む、機械読取可能媒体を具備する製品。前記機械読取可能媒体は、前記機械に、前記ホストコントローラが前記コマンドが正しく送信されたという確認応答を受信することなくデータを交換することを含む動作を実行させるデータをさらに含む、請求項32に記載の製品。前記ホストコントローラは、シリアルアドバンスドテクノロジアタッチメントアドバンスドホストコントローラインタフェースホストコントローラである、請求項33に記載の製品。たとえば、HCは通常データ交換に先立ってSATAデバイスにコマンドを送信する。そして、HCは、データ交換が行われることが可能になる前に応答を待つ。しかしながら、HCのデータを交換する能力をテストすることは、通常HCをテストしている時、SATAデバイスは通常存在しないため、困難となる。その結果、HCがコマンドを送信し、存在しないデバイスからの応答を待つことは無駄である。本発明の実施形態を、以下の説明と、かかる実施形態を例証する添付の図面とを参照することによって、最もよく理解することができる。以下の記述では、本発明が完全に理解されるために、説明の目的で多数の特定の詳細を示す。しかしながら、当業者には、本発明の実施形態をこれらの特定の詳細なしに実施してもよいということが明らかとなろう。本発明の実施形態により、データ交換のための状態機械シーケンスの複数の状態を省略することが可能になり、ここでは、HCは一動作のモードに入る。一実施形態では、HCは、データを交換する要求を受信し、このデータを交換する要求は、データを送信する要求であっても、又はデータを受信する要求であってもよい。したがって、ビットが、そのモードに入る時にクリアされ、デバイスによって受信されるべきコマンドを送信する前の状態機械の後続する状態においてセットされる。デバイスによって受信されるべきコマンドを送信する前にビットをセットすることにより、HCは、データ送信又は受信の前に通常実行される状態を省略することができる。一実施形態によれば、HCは、アドバンスドホストコントローラインタフェースHCである。したがって、後により詳細に説明するように、本発明の実施形態は、HCのデータ交換で実行されるべき動作を低減することにより、ホストコントローラをテストする能力を向上させることができる。図1Aは、ホストコントローラテストデバイステストデバイス52に接続されているホストコントローラHC50を示す。HC50は、SATAインタフェース58によってテストデバイス52に接続される。このインタフェースは、HC50に対し、テストデバイス52と通信する能力を提供する任意の適当なインタフェースであってもよい。さらに、テストデバイス52は、HCをテストするために必要な機能を提供することができる任意の適当なデバイスであってもよい。図1Bは、第1のホストコントローラHC-A54が第2のホストコントローラHC-B56に接続される、代替のテスト構成を示す。HCを、上述したように、任意の適当なインタフェースによって接続することができる。2つのHCを互いに接続することにより、コンピュータシステムを、ホストコントローラのデータ送受信をテストするために使用することができる。本発明の実施形態を、図1A及び図1Bに示す構成においてホストコントローラによって実施することができる。ホストコントローラの他の適当な構成があり得るため、図1A及び図1Bの構成は限定するためではなく例として提供する。図2は、一実施形態による、HCとデータを交換するプロセスを説明するフローチャートを示す。プロセスブロック60において、HCは一モードに入る。本発明の一実施形態では、このモードは、HCをテストするモードであってもよい。さらに、一実施形態では、モードは特に、このモードにおけるHCによるデータ送信又はデータ受信をテストすることであってもよい。HCは、コンピュータシステムメモリ26に格納されているソフトウェア命令から指示されることに応じてそのモードに入ってもよい。HCはまた、図1A又は図1Bに示すもののようなHCに接続されている外部デバイスからHCによって受信される命令を通してそのモードに入ってもよい。HCのモードに入る実施形態は、上述したプロセスによって限定されない。さらに、実施形態は、HCデバイスドライバを使用して、モード及び/又は変更をHCに設定することができる。一実施形態では、HCは、モードに入るとプロセスブロック60、HCがビジーでないことを示すようにビットをクリアする。より詳細には、ビットを、HCが目下動作を実行していないことを指定するようにクリアする。一実施形態では、たとえば、モードに入る時、PxTFD.STS.BSYビットBSYビットをクリアする。この一実施形態では、BSYビットは、HCの、SATAデバイスとデータを交換する能力に関する、タスクファイルデータの現ステータスを示す特定のレジスタビットである。次に、HCは、HCがデータを交換するためにデバイスに発行するコマンドを選択するプロセスブロック62。そして、HCは、選択されたコマンドに対してコマンドヘッダをフェッチするプロセスブロック64。一実施形態では、コマンドの選択を、システム10等のコンピュータシステムにより、又は図1A及び図1Bに示すような外部ハードウェアデバイス等によりトリガしてもよい。通常、HCは、コマンドヘッダをフェッチした後プロセスブロック64、コマンドがデバイスに発行される用意ができるまで、アイドル状態のままである。しかしながら、一実施形態では、コマンドヘッダをフェッチした後、HCがビジーである、すなわち動作を実行していることを示すようにビットをセットするプロセスブロック66。一実施形態では、システムがビジーであることを示すように、BSYビットをセットする。システムがビジーであることを示すようにビットをセットすることにより、HCはデータの交換に進むプロセスブロック68。データ交換は、データ送信であってもデータ受信であってもよい。HCがビジーであることを示すようにビットがセットされるとプロセスブロック66、HCは、SATAデバイスにコマンドを送信しない。またHCは、コマンドが正しく送信されたという確認応答を受信する必要もない。さらに、ビットをセットすることにより、HCはまた、SATAデバイスがデータを受け入れる用意ができるのを待つ必要もなく、且つSATAデバイスがデータを受信する用意ができているという確認応答を待つ必要もない。代りに、HCはデータ交換に進む。HCは、ビットがセットされると直接データ交換に進むため、データ送信及び/又はデータ受信のために状態機械シーケンスの状態を省略する。一実施形態では、このモードでデータを送信する時、HCは、状態機械シーケンスの以下の状態、すなわち、コマンドフレーム情報構造送信CommandFrameInformationStructureTransmitCFIS:Xmit、コマンドフレーム情報構造成功CommandFrameInformationStructureSuccessCFIS:Success、ホストアイドルHostIdleH:Idle、非データフレーム情報構造受信エントリNonDataFrameInformationStructureReceiveEntryNDR:Entry及び非データフレーム情報構造受信受入NonDataFrameInformationStructureReceiveAcceptNDR:Acceptのうちの少なくとも1つ又は複数を省略する。代替の実施形態では、他の状態及びプロセスを省略してもよい。このため、一実施形態によれば、HCがそのモードにある時にデータ送信ための状態機械シーケンスは、H:Idle、H:SelectCmd、H:FetchCmd、H:Idle、DX:Entry及びDX:Transmitとなる。一実施形態によれば、H:Idleが、ホストコントローラが非アクティブである状態を指す場合、データ送信のために状態機械シーケンスの第2のH:Idle状態に入ると、ビットがセットされる。同様に、そのモードにおいてデータを受信する場合、HCは、一実施形態によれば、以下の状態、すなわち、CFIS:Xmit、CFIS:Success及びH:Idleのうちの少なくとも1つ又は複数を省略する。このため、データ受信のための状態機械シーケンスは、H:Idle、H:SelectCmd、H:FetchCmd、H:Idle、DR:Entry及びDR:Receiveとなる。代替の実施形態では、他の状態及びプロセスを省略してもよい。一実施形態によれば、データ受信のために状態機械シーケンスの第2のH:Idle状態に入ると、ビットがセットされる。図3は、本発明の代替の実施形態実施形態による、HCとデータを交換するプロセスを説明するフローチャートを示す。この実施形態によれば、HCデバイスドライバ及び拡張HCは、上述したように、データ交換のための状態及びプロセスを省略することによってデータを交換することができる。図3に示すように、AHCIデバイスドライバは、HCによって受信されるコマンドリストの内容を変更するプロセスブロック70。コマンドリストには、コマンドフレーム情報構造CommandFrameInformationStructureCFISが、対応するコマンドフレーム情報構造長CFLとともに含まれる。AHCIデバイスドライバは、CFLをゼロにセットする。CFL=0をセットすることにより、拡張ホストコントローラはCFISを処理しない。その結果、ホストコントローラは、HCに接続されているデバイスにコマンドを送信することなく、且つコマンドが受信されたとデバイスが確認応答するのを待つことなく、データを交換することができる。CFLがゼロにセットされた後、HCは、図2に示す実施形態に関してHCが行ったように、データを交換するコマンドを選択しプロセスブロック72、コマンドヘッダをフェッチすることができるプロセスブロック74。しかしながら、図2に示す実施形態とは異なり、図3の実施形態は、HCがコマンドヘッダをフェッチした後にビットをセットする必要はない。CFL=0である場合、HCは、デバイスにコマンドを送信せず、デバイスによってコマンドが受信されたという確認応答も待たない。その代わり、コマンドヘッダがフェッチされた後、HCは、CFL=0である時にデータ交換に進むプロセスブロック76。こうした実施形態により、HCをテストする能力を向上させることができる。図3に示す実施形態によれば、本方法により、テストHCによってコマンドを送信及び/又は受信する柔軟性が可能になる。さらに、こうした実施形態は、ソフトウェア及び/又はハードウェアが種々のコマンドを実行する場合にHCをテストする柔軟な方法を提供する。一実施形態によれば、任意選択でCFL=0とセットすることにより、いくつかのコマンドのみがCFISがテストデバイスに送信されるよう要求する、コマンドの混合が可能になる。図4は、一実施形態による、本明細書で説明した装置及び方法を実施するシステム10を示す。システム10の文脈で説明するが、実施形態を任意の適当なコンピュータシステムで実施してもよい。図4に示すように、コンピュータシステム10は、少なくとも1つのHC24を備える。コンピュータシステム10はまた、メモリ26及び入出力コントローラハブICH28も備える。プロセッサ22、メモリ26、HC複数可24及びICH28は、メモリコントローラハブ48に接続される。ICH28は、ハブリンク20を介してメモリコントローラハブに接続される。別法として、HC複数可34を、さらにメモリコントローラハブ48に接続するか又はそれに統合してもよい。システムメモリ26は、コンピュータシステム10のためのデータ及び/又は命令を格納するものであり、たとえばダイナミックランダムアクセスメモリDRAM、シンクロナスダイナミックランダムアクセスメモリSDRAM又は拡張データ出力ランダムアクセスメモリEDORAM等の任意の適当なメモリを含んでもよい。コンピュータシステム10は、たとえばブラウン管CRT又は液晶ディスプレイLCD等のディスプレイ32に接続されたグラフィックスコントローラ30をさらに備える。ICH28は、コンピュータシステム10に、I/Oデバイス又は周辺コンポーネントに対するインタフェースを提供する。ICH28は、プロセッサ22及びメモリ26に他の任意の適当な通信リンクを提供するために任意の適当なインタフェースコントローラ複数可を備えてもよい。ICH28はまた、たとえばマウス、キーボード、フロッピーディスクドライブ及び/又は他の任意の適当なI/Oデバイス等のI/Oデバイス複数可44に対するインタフェースも提供する。ICH28はまた、パラレルアドバンスドテクノロジアタッチメントPATAデバイス38及び/又はユニバーサルシリアルバスUSBデバイス40等のデバイスのための代替のインタフェースを提供してもよい。HC複数可24及び34は、データ及び/又は命令を格納及び/又は検索するために、たとえばハードディスクドライブHDD、コンパクトディスクリードオンリメモリCDROM、デジタルビデオディスクリードオンリメモリDVDROM等、任意の適当なSATAデバイス複数可36及び/又は46に、プロセッサ22及びメモリ26に対するインタフェースを提供する。システムメモリ26は、一実施形態によれば、本明細書で論考したようなプロセス及び状態を省略することによってHCをテストする命令42をさらに含む。代替の実施形態では、命令を、コンピュータシステム10内のファームウェア、コンピュータシステム10内の専用回路等に含めることができるため、それらの命令はメモリ26に存在する必要はない。したがって、コンピュータシステム10は、本明細書で説明した方法のうちの任意の1つ又はすべてを具現化する命令のセットすなわちソフトウェアが格納される機械読取可能媒体を含む。たとえば、ソフトウェアは、完全に又は少なくとも部分的にメモリ26内に且つ/又はプロセッサ22内に存在してもよい。この明細書の目的では、機械読取可能媒体という用語は、情報を機械たとえばコンピュータによって読取可能な形態で提供するすなわち、格納、検索及び/又は送信する任意のメカニズムを含むように解釈されるものとする。たとえば、機械読取可能媒体は、読み出し専用メモリROM、ランダムアクセスメモリRAM、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気、光、音響又は他の形態の伝播信号たとえば搬送波、赤外線信号、デジタル信号等等を含む。本発明を、特定の実施形態例を参照して説明したが、本発明のより広い精神及び範囲から逸脱することなく、これらの実施形態に対してさまざまな変更及び変形を行ってもよいということが明らかとなろう。したがって、本明細書及び図面は、限定する意味ではなく例示する意味で考慮されるべきである。