(57)【要約】【課題】ホストシステムからのコマンド受け付け処理に要する時間を短縮化し、データ転送速度を向上できるシリアルＡＴＡインターフェース装置を提供することにある。【解決手段】シリアルＡＴＡ方式のインターフェース装置において、シリアルＡＴＡバス４を介してホストシステム２に接続されたＳ−ＡＴＡブリッジ１０は、コマンドを格納するシャドーレジスタ１１及びＨＤＣ２０のアクセスが可能なバッファメモリ１２を有する。Ｓ−ＡＴＡブリッジ１０は、内部処理だけで応答信号をホストシステム２に出力するまでのコマンドの受け付け処理を完了する。【選択図】      図１
2007011659.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムとデバイス間を接続するシリアルＡＴＡ方式のインターフェース装置であって、
シリアルＡＴＡバスを通じて前記ホストシステムから送られたコマンドを格納するレジスタ手段と、
前記レジスタ手段に格納されて前記コマンドを受け付けたことを指示する割込み信号を、パラレルＡＴＡバスを通じて前記デバイスのコントローラに送信する手段と、
前記レジスタ手段から転送される前記コマンドを格納し、前記コントローラによりアクセス可能な構成のメモリ手段と、
前記レジスタ手段に格納された前記コマンドをチェックし、チェック結果が正常な場合には、前記シリアルＡＴＡバスを通じて前記コマンドに対する応答信号を前記ホストシステムに出力する出力手段と
を具備したことを特徴とするインターフェース装置。
【請求項２】
前記デバイスは、ディスク媒体に対してデータを記録または再生するディスクドライブであり、
前記コントローラは、前記ディスクドライブに含まれて、前記ディスクドライブのインターフェース機能を有するディスクコントローラであり、
前記ディスクコントローラと前記パラレルＡＴＡバスを介して接続し、
前記シリアルＡＴＡバスで接続された前記ホストシステムと、前記ディスクコントローラとの間でコマンド及びデータの転送を制御するように構成されたことを特徴とする請求項１に記載のインターフェース装置。
【請求項３】
前記コントローラは、
前記ホストシステムからのコマンドを実行するために格納するタスクファイルレジスタ手段を有し、
前記割込み信号に応じて前記メモリ手段に格納されたコマンドをアクセスし、前記タスクファイルレジスタ手段に格納するように構成されていることを特徴とする請求項１または請求項２のいずれか１項に記載のインターフェース装置。
【請求項４】
前記レジスタ手段は、前記シリアルＡＴＡバスを通じて前記ホストシステムから連続的に送られる複数のコマンドを順次格納し、
前記出力手段は、前記シリアルＡＴＡバスを通じて前記コマンド毎の応答信号を前記ホストシステムに出力するように構成されていることを特徴とする請求項１に記載のインターフェース装置。
【請求項５】
シリアルＡＴＡインターフェースによりホストシステムと接続し、前記ホストシステムからのコマンドに応じて、ディスク媒体に対してデータの記録または再生を行なうディスクドライブにおいて、
前記ホストシステムからのコマンドを実行して、前記ディスク媒体と前記ホストシステム間のデータの転送を制御するディスクコントローラと、
シリアルＡＴＡバスにより前記ホストシステムに接続し、かつパラレルＡＴＡバスにより前記ディスクコントローラに接続するシリアルＡＴＡブリッジ手段とを具備し、
前記シリアルＡＴＡブリッジ手段は、
前記シリアルＡＴＡバスを通じて前記ホストシステムから送られたコマンドを格納するレジスタ手段と、
前記レジスタ手段に格納されて前記コマンドを受け付けたことを指示する割込み信号を、前記パラレルＡＴＡバスを通じて前記ディスクコントローラに送信する手段と、
前記レジスタ手段から転送される前記コマンドを格納し、前記コントローラによりアクセス可能な構成のメモリ手段と、
前記レジスタ手段に格納された前記コマンドをチェックし、チェック結果が正常な場合には、前記シリアルＡＴＡバスを通じて前記コマンドに対する応答信号を前記ホストシステムに出力する出力手段と
を有することを特徴とするディスクドライブ。
【請求項６】
前記ディスクコントローラは、
前記ホストシステムからのコマンドを実行するために格納するタスクファイルレジスタ手段を有し、
前記割込み信号に応じて前記メモリ手段に格納されたコマンドをアクセスし、前記タスクファイルレジスタ手段に格納するように構成されていることを特徴とする請求項５に記載のディスクドライブ。
【請求項７】
前記レジスタ手段は、前記シリアルＡＴＡバスを通じて前記ホストシステムから連続的に送られる複数のコマンドを順次格納し、
前記出力手段は、前記シリアルＡＴＡバスを通じて前記コマンド毎の応答信号を前記ホストシステムに出力するように構成されていることを特徴とする請求項５に記載のディスクドライブ。
【請求項８】
前記シリアルＡＴＡブリッジ手段は、
前記ホストシステムから連続的に送られる複数のコマンドが前記ディスクコントローラにより実行されるときに、順序不同に実行される各コマンドに対応するデータ転送を管理するためのチェック処理を実行する手段を含むことを特徴とする請求項５から請求項７のいずれか１項に記載のディスクドライブ。
【請求項９】
前記ディスクコントローラ及び前記シリアルＡＴＡブリッジ手段は、前記パラレルＡＴＡバスで接続された状態で同一の集積回路素子に含まれるように構成されていることを特徴とする請求項５から請求項８のいずれか１項に記載のディスクドライブ。
【請求項１０】
ホストシステムとデバイス間を接続するシリアルＡＴＡインターフェースの制御方法であって、
シリアルＡＴＡバスを通じて前記ホストシステムから送られたコマンドをレジスタ手段に格納するステップと、
前記レジスタ手段に格納されて前記コマンドを受け付けたことを指示する割込み信号を、パラレルＡＴＡバスを通じて前記デバイスのコントローラに送信するステップと、
前記レジスタ手段から転送される前記コマンドを、前記コントローラによりアクセス可能な構成のメモリ手段に格納するステップと、
前記レジスタ手段に格納された前記コマンドをチェックするステップと、
前記チェック結果が正常な場合には、前記シリアルＡＴＡバスを通じて前記コマンドに対する応答信号を前記ホストシステムに出力するステップと
を有する手順を実行することを特徴とするインターフェース制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはシリアルＡＴＡ方式のインターフェース装置に関し、特に、ホストシステムとデバイス間のデータ転送速度を改善したインターフェース装置に関する。
【背景技術】
【０００２】
近年、例えばパーソナルコンピュータなどのホストシステムと、ハードディスクドライブ（以下単にディスクドライブと表記する場合がある）を代表とするデバイスとを接続するインターフェースとして、シリアルＡＴＡインターフェース（Serial AT Attachment規格によるインターフェース仕様）が注目されている。なお、シリアルＡＴＡをＳ−ＡＴＡと表記する場合がある。
【０００３】
ところで、従来のディスクドライブでは、パラレルＡＴＡインターフェース仕様で、ホストシステム間のインターフェース機能を実現しているディスクコントローラが内蔵されている。このため、シリアルＡＴＡインターフェースを採用して、ＮＣＱ（Native Command Queuing）コマンド処理をサポートするために、ディスクドライブ側にはＳ−ＡＴＡブリッジなどのインターフェース変換装置が必要となる（例えば、特許文献１を参照）。
【特許文献１】特開２００３−２２３４１１号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述したように、Ｓ−ＡＴＡブリッジなどのインターフェース変換装置を使用することにより、シリアルＡＴＡインターフェースをサポートしたディスクドライブを実現できる。具体的には、ディスクドライブには、Ｓ−ＡＴＡブリッジとディスクコントローラ（ＨＤＣ）とが組み込まれたシステムＬＳＩが設けられる。
【０００５】
このようなシステムＬＳＩにより、ＮＣＱコマンド処理を実行する場合には、以下のような処理手順が必要となる。即ち、Ｓ−ＡＴＡブリッジは、ホストシステムからＲｅｇＨ／Ｄ（Register-Host to Device）コマンド（ＦＰＤＭＡＱコマンド）を受け取ると、ＡＴＡ仕様によるシャドーレジスタ（Shadow Register）に一旦格納する。
【０００６】
次に、Ｓ−ＡＴＡブリッジは、パラレルＡＴＡインターフェースで接続されたＨＤＣのタスクファイルレジスタ（コマンドレジスタなどのレジスタ群）に、シャドーレジスタに格納されたコマンドを転送する。ＨＤＣは、コマンド登録などの処理及びタスクファイルレジスタの内容（ステータスなど）をシャドーレジスタに転送する。Ｓ−ＡＴＡブリッジは、それらの一連の処理後に、ホストシステムに対してＲｅｇＤ／Ｈ（Register-Device to Host）を出力して、コマンドの受け付け処理が完了したことを応答する。
【０００７】
しかしながら、このような処理手順では、ホストシステムからコマンドを受け取ってから、ホストシステムに応答するまでに、例えば４０μｓ程度の時間がかかる。このため、ホストシステムとディスクドライブ間のデータ転送速度の低下を招く要因となっている。
【０００８】
そこで、本発明の目的は、ホストシステムからのコマンド受け付け処理に要する時間を短縮化し、データ転送速度を向上できるシリアルＡＴＡ方式のインターフェース装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の観点に従ったインターフェース装置は、シリアルＡＴＡバスを通じて前記ホストシステムから送られたコマンドを格納するレジスタ手段と、前記レジスタ手段に格納されて前記コマンドを受け付けたことを指示する割込み信号を、パラレルＡＴＡバスを通じて前記デバイスのコントローラに送信する手段と、前記レジスタ手段から転送される前記コマンドを格納し、前記コントローラによりアクセス可能な構成のメモリ手段と、前記レジスタ手段に格納された前記コマンドをチェックし、チェック結果が正常な場合には、前記シリアルＡＴＡバスを通じて前記コマンドに対する応答信号を前記ホストシステムに出力する出力手段とを備えた構成である。
【発明の効果】
【００１０】
本発明によれば、ホストシステムからのコマンドを受け付けてから応答するまでの時間を短縮化し、結果としてホストシステムとデバイス間のデータ転送速度を向上できるシリアルＡＴＡ方式のインターフェース装置を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下図面を参照して、本発明の実施形態を説明する。
【００１２】
［システム構成］
図１は、本実施形態に関するインターフェース装置を含むシステムの構成を示すブロック図である。
【００１３】
本実施形態のシステムは、シリアルＡＴＡインターフェースにより接続されたディスクドライブとホストシステム２とからなる。ホストシステム２は、図２に示すように、例えばパーソナルコンピュータである。ディスクドライブは、例えば、パーソナルコンピュータの本体内に組み込まれたハードディスクドライブである。
【００１４】
ディスクドライブは大別して、図１に示すように、システムＬＳＩからなるインターフェース装置１及びドライブシステム３からなる。ドライブシステム３は、ディスク媒体やヘッドを含み、ディスク媒体に対してデータの記録又は再生を行なうドライブ本体を構成している。
【００１５】
インターフェース装置１には、インターフェース変換装置に相当するＳ−ＡＴＡブリッジ１０と、ディスクコントローラ（ＨＤＣ）２０とが組み込まれている。ディスクコントローラ２０は、ドライブシステム３との間でデータ（リード／ライトデータ）の転送を制御するドライブインターフェース機能を有し、パラレルＡＴＡバス５によりＳ−ＡＴＡブリッジ１０と接続している。
【００１６】
ディスクコントローラ２０は、ホストシステム２により発行されたコマンドを格納するタスクファイルレジスタ２１、及びコマンド処理を実行するファームウエア（以下ＦＷと表記する）２２を含む。タスクファイルレジスタ２１は、コマンドを実行するためのコマンドレジスタなどのレジスタ群である。
【００１７】
（Ｓ−ＡＴＡブリッジ１０の構成）
Ｓ−ＡＴＡブリッジ１０は、シリアルＡＴＡバス４によりホストシステム２と接続し、パラレルＡＴＡバス５によりディスクコントローラ２０と接続している。Ｓ−ＡＴＡブリッジ１０は、Ｓ−ＡＴＡ仕様のシャドーレジスタ１１と、バッファメモリ１２と、ＴＡＧ／アドレス・チェック制御部１３とを含む。
【００１８】
シャドーレジスタ１１は、後述するように、シリアルＡＴＡバス４を介してホストシステム２から送られるコマンドを順次格納する。バッファメモリ１２は、シャドーレジスタ１１から転送された内容（コマンド群）を格納する。バッファメモリ１２は、パラレルＡＴＡバス５を介して、ディスクコントローラ２０によりアクセス可能に構成されている。
【００１９】
ＴＡＧ／アドレス・チェック制御部１３は、シャドーレジスタ１１に格納されたコマンドのＴＡＧ番号や、ＬＢＡ（論理ブロックアドレス）アドレスが正常であるか否かをチェックするハードウエアである。ＴＡＧ番号は、ホストシステム２から連続的に送られる複数のコマンドの実行を管理するための番号であり、コマンドのそれぞれを識別するための番号である。
【００２０】
図３は、システムＬＳＩとシリアルＡＴＡインターフェース４００とを実装している回路基板３００を示す図である。この回路基板３００は、ディスクドライブに組み込まれている。なお、シリアルＡＴＡインターフェース４００は、図２に示すパーソナルコンピュータ２００の内部で、ホストシステム２に相当するマイクロプロセッサ（ＣＰＵ）などと接続されている。また、ディスクコントローラ２０は、前述したように、ディスクドライブの本体であるドライブシステム３に接続されている。
【００２１】
ここで、Ｓ−ＡＴＡブリッジ１０は概念的には、図３に示すように、シリアルＡＴＡインターフェース４００に接続してデータの入出力を実行する物理層（ＰＨＹ）１００と、このＰＨＹ１００とデータの交換を行なうリンク／トランスポート層（Link & Transport）１１０と、コマンド層（Command）１２０とを有する。
【００２２】
コマンド層１２０には、前述のシャドーレジスタ１１が含まれている。なお、Ｓ−ＡＴＡブリッジ１０は、パラレルＡＴＡバス５以外にも、ほかのインターフェース信号線（ＩＦ−ＲＥＧ）を介してディスクコントローラ２０と接続されている。
【００２３】
［作用効果］
以下図４のフローチャートを参照して、本実施形態に関するＮＣＱ（Native Command Queuing）コマンド処理の手順を説明する。
【００２４】
まず、Ｓ−ＡＴＡブリッジ１０は、シリアルＡＴＡバス４を通じて、ホストシステム２から出力されたＳ−ＡＴＡ仕様のＲｅｇＨ／Ｄ（Register-Host to Device）コマンド（ＦＰＤＭＡＱコマンド）４０を受け取る（ステップＳ１）。Ｓ−ＡＴＡブリッジ１０は、受け取ったＡＴＡコマンド（例えばリードコマンドやライトコマンド）を順次シャドーレジスタ１１に格納する（ステップＳ２）。
【００２５】
Ｓ−ＡＴＡブリッジ１０は、シャドーレジスタ１１に含まれるコマンドレジスタが更新されると、割込み信号（INTRQ）５０をディスクコントローラ２０のＦＷ２２に出力する（ステップＳ３）。ＦＷ２２は、割込み信号（INTRQ）５０により、ホストシステム２からＡＴＡコマンドであるＮＣＱコマンドを受け付けたことを認識する。
【００２６】
Ｓ−ＡＴＡブリッジ１０は、コマンドレジスタが更新されると、シャドーレジスタ１１に格納された全ての内容をバッファメモリ１２に転送する（ステップＳ４）。さらに、Ｓ−ＡＴＡブリッジ１０は、コマンドレジスタが更新されると、ＴＡＧ／アドレス・チェック制御部１３により、シャドーレジスタ１１に格納されたコマンドのＴＡＧ番号やＬＢＡアドレスが正常であるか否かをチェックする（ステップＳ５）。
【００２７】
ＡＴＡブリッジ１０は、ＴＡＧ／アドレス・チェック制御部１３のチェック結果が正常であれば、後述するようにビジービットを０にセットして、ホストシステム２に対してＲｅｇＤ／Ｈ（Register-Device to Host）４１を出力して、コマンドの受け付け処理が完了したことを応答する（ステップＳ６のＮＯ，Ｓ７）。一方、ＴＡＧ／アドレス・チェック制御部１３のチェックによりエラーが発生している場合には、Ｓ−ＡＴＡブリッジ１０は、所定のエラー処理を実行する（ステップＳステップＳ６のＹＥＳ，Ｓ８）。
【００２８】
このような処理を繰り返すことにより、ホストシステム２から連続的に送られるＮＣＱコマンド（ＡＴＡコマンド）を、順次、受け付けることができる。
【００２９】
ここで、ディスクコントローラ２０では、ＦＷ２２は、割込み信号（INTRQ）５０の受信に応じてバッファメモリ１２をアクセスして、バッファメモリ１２に格納されたシャドーレジスタ１１の全ての格納内容を取り出して、タスクファイルレジスタ２１に格納する。
【００３０】
ディスクコントローラ２０は、ＦＷ２２がタスクファイルレジスタ２１のコマンドレジスタに格納されたコマンドを実行することにより、ディスク媒体に対するデータの記録又は再生を実行するための制御を行なう。即ち、ディスクコントローラ２０は、ホストシステム２からの例えばリードコマンドを実行して、リードデータをドライブシステム３から受け取り、ホストシステム２に転送するための制御を実行する。また、ディスクコントローラ２０は、ホストシステム２からの例えばライトコマンドを実行して、ライトデータをホストシステム２から受け取り、ドライブシステム３に転送する制御を実行する。
【００３１】
以上のようにして、Ｓ−ＡＴＡブリッジ１０は、シリアルＡＴＡインターフェースを介してホストシステム２から出力されるＮＣＱ（ＡＴＡ）コマンドを受け付ける処理を実行する。この場合、本実施形態のＳ−ＡＴＡブリッジ１０は、シャドーレジスタ１１に格納された全ての内容を、ＨＤＣ２０のタスクファイルレジスタ２１に転送するのではなく、内部のバッファメモリ１２に転送する。ＨＤＣ２０のＦＷ２２は、当該バッファメモリ１２をアクセスして、シャドーレジスタ１１の内容をタスクファイルレジスタ２１に格納する。
【００３２】
Ｓ−ＡＴＡブリッジ１０は、ＴＡＧ／アドレス・チェック制御部１３のチェック結果が正常であれば、ホストシステム２に対してコマンドの受け付け処理の完了を応答する。従って、本実施形態では、シャドーレジスタ１１とＨＤＣ２０のタスクファイルレジスタ２１間のデータ転送を行なうことなく、ホストシステム２からコマンドを受け取ってから応答するまでの処理を、Ｓ−ＡＴＡブリッジ１０の処理だけで完了する。即ち、シャドーレジスタ１１とタスクファイルレジスタ２１間のデータ転送時間分だけ短縮できるため、ホストシステム２からのコマンドの受け付け処理を完了するまでの時間を大幅に短縮できることになる。これにより、結果として、コマンドの受け付け処理後に、コマンドの実行に伴うホストシステムとディスクドライブ間のデータ転送速度を高速化できる。
【００３３】
（コマンド処理の具体例）
図５から図８は、本実施形態に関するコマンド処理において、リードコマンド及びライトコマンドのそれぞれの具体的処理手順を説明するためのタイミングチャートである。
【００３４】
まず、図５及び図６を参照して、リードコマンドの処理手順を説明する。ここでは、第１のリードコマンド（Ｒｅａｄ１要求）及び第２のリードコマンド（Ｒｅａｄ２要求）が連続的にホストシステム２から発行された場合を想定する。
【００３５】
図５において、ステップＳ１、Ｓ３、Ｓ７は、それぞれ図４に示すステップＳＳ１、Ｓ３、Ｓ７に対応する処理である。即ち、ホストシステム２は、Ｓ−ＡＴＡブリッジ１０に対して、Ｒｅａｄ１要求としてＲｅｇＨ／Ｄ（register FIS）を送信する（ステップＳ１）。Ｓ−ＡＴＡブリッジ１０は、順次シャドーレジスタ１１に格納した後に、ＩＮＴＲＱをディスクコントローラ２０に出力する（ステップＳ３）。ここで、ディスクコントローラ２０は、シャドーレジスタ１１の全ての内容が格納されたバッファメモリ１２をアクセスする（ステップＳ２０）。また、この間、ＦＷ２２は、ＦＷ内でＴＡＧ値に対応したフラグを設定する処理を実行する（ステップＳ２２）。
【００３６】
Ｓ−ＡＴＡブリッジ１０は、コマンドのＴＡＧ番号やＬＢＡアドレスのチェック後に、ビジービットを０にセットして、ホストシステム２に対してＲｅｇＤ／Ｈを応答として出力する（ステップＳ７）。これにより、Ｓ−ＡＴＡブリッジ１０におけるコマンドの受け付け処理が完了する。
【００３７】
さらに、ホストシステム２は連続して、Ｓ−ＡＴＡブリッジ１０に対して、Ｒｅａｄ２要求としてＲｅｇＨ／Ｄを送信する（ステップＳ１１）。Ｓ−ＡＴＡブリッジ１０は、順次シャドーレジスタ１１に格納した後に、ＩＮＴＲＱをディスクコントローラ２０に出力する（ステップＳ１３）。同様に、ディスクコントローラ２０は、シャドーレジスタ１１の全ての内容が格納されたバッファメモリ１２をアクセスする（ステップＳ２１）。また、ＦＷ２２は、ＦＷ内でＴＡＧ値に対応したフラグを設定する処理を実行する（ステップＳ２３）。そして、Ｓ−ＡＴＡブリッジ１０は、ホストシステム２に対してＲｅｇＤ／Ｈを応答として出力する（ステップＳ１７）。
【００３８】
このようなコマンド受け付け処理が完了すると、以下、Ｒｅａｄ１要求及びＲｅａｄ２要求のそれぞれにリードコマンドの実行に伴う一連のデータ転送処理に移行する。
【００３９】
ここでは、Ｓ−ＡＴＡブリッジ１０は、ホストシステム２に対して、まずＲｅａｄ２要求に応じたＲｅａｄ２データ転送の予告を行なう（ステップＳ２５）。この前に、ＦＷ２２は、ＴＡＧ値、BufferOfset、TransferCount、START=1（トリガ）のデータをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ２４）。Ｓ−ＡＴＡブリッジ１０は、これらのデータを受信して、Ｒｅａｄ２データ転送予告としてDMA setup FISをホストシステム２に送信する。
【００４０】
Ｓ−ＡＴＡブリッジ１０は、ServiceコマンドをＨＤＣ２０に送信する（ステップＳ２６）。このとき、DMA setup FISが、次のQueuingコマンドRed Arrow内でぶつかった場合は、再度ＦＷ２２でＴＡＧ値などをセットしてくれる。また、Serviceコマンドは、擬似的にLegacy Command Queuingプロトコルを利用している。Serviceコマンドを受信したＨＤＣ２０は、DMARQ assertedをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ２７）。
【００４１】
続いて、図６に示すように、ＨＤＣ２０は、リードデータをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ２８）。Ｓ−ＡＴＡブリッジ１０は、リードデータを受信すると、Ｒｅａｄ２データ転送としてData FISをホストシステム２に送信する（ステップＳ２９）。また、ＦＷ２２は、コマンド終了したものについてフラグを立てて、Ｓ−ＡＴＡブリッジ１０に送信する（ステップＳ３０）。ＨＤＣ２０は、転送終了を示すＩＮＴＲＱをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ３１）。これらのデータを受信すると、Ｓ−ＡＴＡブリッジ１０は、Set Device Bits FIS(bit5 clear)を送信して、Ｒｅａｄ２のデータ転送を完了する（ステップＳ３２）。
【００４２】
次に、ＦＷ２２は、ＴＡＧ値、BufferOfset、TransferCount、START=1（トリガ）をＳ−ＡＴＡブリッジ１０に送信する（ステップＳ３３）。これらのデータを受信すると、Ｓ−ＡＴＡブリッジ１０は、Ｒｅａｄ１データ転送予告としてDMA setup FISをホストシステム２に送信し（ステップＳ３４）、ServiceコマンドをＨＤＣ２０に送信する（ステップＳ３５）。Serviceコマンドを受信すると、ＨＤＣ２０は、DMARQ assertedをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ３６）。ＨＤＣ２０は、リードデータを（Read Data）をＳ−ＡＴＡブリッジ１０に送信する（ステップＳ３７）。
【００４３】
Ｓ−ＡＴＡブリッジ１０は、リードデータを受信すると、Ｒｅａｄ１データ転送としてData FISをホストシステム２に送信する（ステップＳ３８）。また、ＦＷ２２は、コマンド終了したものについてフラグを立てて、Ｓ−ＡＴＡブリッジ１０に送信する（ステップＳ３９）。ＨＤＣ２０は、転送終了を示すＩＮＴＲＱをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ４０）。これらのデータを受信すると、Ｓ−ＡＴＡブリッジ１０は、Set Device Bits FIS(bit5 clear)を送信して、Ｒｅａｄ１のデータ転送を完了する（ステップＳ４１）。
【００４４】
ホストシステム２は、エラー時には、READ LOG EXT commandをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ４３）。このREAD LOG EXT commandを受信すると、Ｓ−ＡＴＡブリッジ１０は、READ LOG EXT commandをＨＤＣ２０に送信し（ステップＳ４２）、Set Device Bits FIS(all bit clear)をホストシステム２に送信する（ステップＳ４４）。
【００４５】
次に、図７及び図８を参照して、ライトコマンドの処理手順を説明する。基本的には、前述のリードコマンドの処理手順と同様である。即ち、この場合においても、第１のライトコマンド（Ｗｒｉｔｅ１要求）及び第２のライトコマンド（Ｗｒｉｔｅ２要求）が連続的にホストシステム２から発行された場合を想定する。
【００４６】
図７において、ステップＳ１、Ｓ３、Ｓ７は、それぞれ図４に示すステップＳＳ１、Ｓ３、Ｓ７に対応する処理である。即ち、ホストシステム２は、Ｓ−ＡＴＡブリッジ１０に対して、Ｗｒｉｔｅ１要求としてＲｅｇＨ／Ｄ（register FIS）を送信する（ステップＳ１）。Ｓ−ＡＴＡブリッジ１０は、順次シャドーレジスタ１１に格納した後に、ＩＮＴＲＱをディスクコントローラ２０に出力する（ステップＳ３）。ここで、ディスクコントローラ２０は、シャドーレジスタ１１の全ての内容が格納されたバッファメモリ１２をアクセスする（ステップＳ２０）。また、この間、ＦＷ２２は、ＦＷ内でＴＡＧ値に対応したフラグを設定する処理を実行する（ステップＳ５０）。
【００４７】
Ｓ−ＡＴＡブリッジ１０は、コマンドのＴＡＧ番号やＬＢＡアドレスのチェック後に、ビジービットを０にセットして、ホストシステム２に対してＲｅｇＤ／Ｈを応答として出力する（ステップＳ７）。これにより、Ｓ−ＡＴＡブリッジ１０におけるコマンドの受け付け処理が完了する。
【００４８】
さらに、ホストシステム２は連続して、Ｓ−ＡＴＡブリッジ１０に対して、Ｗｒｉｔｅ２要求としてＲｅｇＨ／Ｄを送信する（ステップＳ１１）。Ｓ−ＡＴＡブリッジ１０は、順次シャドーレジスタ１１に格納した後に、ＩＮＴＲＱをディスクコントローラ２０に出力する（ステップＳ１３）。同様に、ディスクコントローラ２０は、シャドーレジスタ１１の全ての内容が格納されたバッファメモリ１２をアクセスする（ステップＳ２１）。また、ＦＷ２２は、ＦＷ内でＴＡＧ値に対応したフラグを設定する処理を実行する（ステップＳ５１）。そして、Ｓ−ＡＴＡブリッジ１０は、ホストシステム２に対してＲｅｇＤ／Ｈを応答として出力する（ステップＳ１７）。
【００４９】
このようなコマンド受け付け処理が完了すると、以下、Ｗｒｉｔｅ１要求及びＷｒｉｔｅ２要求のそれぞれにライトコマンドの実行に伴う一連のデータ転送処理に移行する。
【００５０】
ここでは、Ｓ−ＡＴＡブリッジ１０は、ホストシステム２に対して、まずＷｒｉｔｅ２要求に応じたＷｒｉｔｅ２データ転送の予告を行なう（ステップＳ５３）。この前に、ＦＷ２２は、ＴＡＧ値、BufferOfset、TransferCount、START=1（トリガ）のデータをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ５２）。Ｓ−ＡＴＡブリッジ１０は、これらのデータを受信して、Ｗｒｉｔｅ２データ転送予告としてDMA setup FISをホストシステム２に送信する。
【００５１】
Ｓ−ＡＴＡブリッジ１０は、ServiceコマンドをＨＤＣ２０に送信する（ステップＳ５４）。このとき、DMA setup FISが、次のQueuingコマンドRed Arrow内でぶつかった場合は、再度ＦＷ２２でＴＡＧ値などをセットしてくれる。また、Serviceコマンドは、擬似的にLegacy Command Queuingプロトコルを利用している。Serviceコマンドを受信したＨＤＣ２０は、DMARQ assertedをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ５５）。
【００５２】
DMARQ assertedを受信すると、Ｓ−ＡＴＡブリッジ１０は、DMA Active FISをホストシステム２に送信する（ステップＳ５６）。DMA Active FISを受信すると、ホストシステム２は、Data FISをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ５７）。Data FISを受信すると、Ｓ−ＡＴＡブリッジ１０は、ＨＤＣ２０にライトデータ（Write Data）を送信する（ステップＳ５８）。
【００５３】
続いて、図８に示すように、ＦＷ２２は、コマンド終了したものについてフラグを立てて、Ｓ−ＡＴＡブリッジ１０に送信する（ステップＳ５９）。ＨＤＣ２０は、転送終了を示すＩＮＴＲＱをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ６０）。これらのデータを受信すると、Ｓ−ＡＴＡブリッジ１０は、Set Device Bits FIS(bit5 clear)をホストシステム２送信して、Ｗｒｉｔｅ２のデータ転送を完了する（ステップＳ６１）。
【００５４】
次に、ＦＷ２２は、ＴＡＧ値、BufferOfset、TransferCount、START=1（トリガ）をＳ−ＡＴＡブリッジ１０に送信する（ステップＳ６２）。これらのデータを受信すると、Ｓ−ＡＴＡブリッジ１０は、Ｗｒｉｔｅデータ転送予告としてDMA setup FISをホストシステム２に送信し（ステップＳ６３）、ServiceコマンドをＨＤＣ２０に送信する（ステップＳ６４）。Serviceコマンドを受信すると、ＨＤＣ２０は、DMARQ assertedをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ６５）。
【００５５】
DMARQ assertedを受信すると、Ｓ−ＡＴＡブリッジ１０は、DMA Active FISをホストシステム２に送信する（ステップＳ６６）。DMA Active FISを受信すると、ホストシステム２は、Data FISをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ６７）。Data FISを受信すると、Ｓ−ＡＴＡブリッジ１０は、ライトデータ（Write Data）をＨＤＣ２０に送信する（ステップＳ６８）。
【００５６】
また、ＦＷ２２は、コマンド終了したものについてフラグを立てて、Ｓ−ＡＴＡブリッジ１０に送信する（ステップＳ６９）。ＨＤＣ２０は、転送終了を示すＩＮＴＲＱをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ７０）。これらのデータを受信すると、Ｓ−ＡＴＡブリッジ１０は、Set Device Bits FIS(bit5 clear)をホストシステム２送信して、Ｗｒｉｔｅ１のデータ転送を完了する（ステップＳ７１）。
【００５７】
ホストシステム２は、エラー時には、READ LOG EXT commandをＳ−ＡＴＡブリッジ１０に送信する（ステップＳ７２）。このREAD LOG EXT commandを受信すると、Ｓ−ＡＴＡブリッジ１０は、READ LOG EXT commandをＨＤＣ２０に送信し（ステップＳ７３）、Set Device Bits FIS(all bit clear)をホストシステム２に送信する（ステップＳ７４）。
【００５８】
以上のようにして、シリアルＡＴＡインターフェース機能を有するＳ−ＡＴＡブリッジ１０及びＨＤＣ２０からなるインターフェース装置により、ホストシステム２からのリードコマンド及びライトコマンドの具体的処理を行なうことができる。
【００５９】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施形態に関するシステム構成を示すブロック図。
【図２】本実施形態に関するパーソナルコンピュータの外観を示す図。
【図３】本実施形態に関するＳ−ＡＴＡブリッジの構成を概念的に説明するための図。
【図４】本実施形態に関するコマンド処理の手順を説明するためのフローチャート。
【図５】本実施形態に関するリードコマンド処理の手順を説明するためのタイミングチャート。
【図６】本実施形態に関するリードコマンド処理の手順を説明するためのタイミングチャート。
【図７】本実施形態に関するライトコマンド処理の手順を説明するためのタイミングチャート。
【図８】本実施形態に関するライトコマンド処理の手順を説明するためのタイミングチャート。
【符号の説明】
【００６１】
１…インターフェース装置、２…ホストシステム、３…ドライブシステム、
４…シリアルＡＴＡバス、５…パラレルＡＴＡバス、１０…Ｓ−ＡＴＡブリッジ、
１１…シャドーレジスタ、１２…バッファメモリ、
１３…ＴＡＧ／アドレス・チェック制御部、２０…ディスクコントローラ（ＨＤＣ）、
２１…タスクファイルレジスタ、２２…ファームウエア（ＦＷ）、
２００…パーソナルコンピュータ、３００…回路基板。
【図１】
2007011659.tif 000003
【図２】
2007011659.tif 000004
【図３】
2007011659.tif 000005
【図４】
2007011659.tif 000006
【図５】
2007011659.tif 000007
【図６】
2007011659.tif 000008
【図７】
2007011659.tif 000009
【図８】
2007011659.tif 000010