(57)【要約】【課題】ＡＴＡとＳＡＴＡのバスブリッジ機能を実現しながらＡＴＡＰＩのデータ転送についても適正に実現する。【解決手段】データ転送制御装置は、ＰＡＴＡバスに接続されるＰＡＴＡＩ／Ｆ１０と、ＳＡＴＡバスに接続されるＳＡＴＡＩ／Ｆ５０と、転送シーケンス制御を行うシーケンスコントローラ３０を含む。ホスト２が、ＤＭＡビットがＤＭＡ設定にされたＡＴＡパケットコマンドを発行し、データレジスタにコマンドパケットが設定されたＡＴＡＰＩパケットコマンドを発行した場合に、ＰＡＴＡＩ／Ｆ１０は、ホスト２との間でＤＭＡのデータ転送を行い、ＳＡＴＡＩ／Ｆ５０は、デバイス４との間でＰＩＯのデータ転送を行う。【選択図】図１
2008293154.tif 000002
【特許請求の範囲】
【請求項１】
パラレルＡＴＡとシリアルＡＴＡのバスブリッジ機能を有するデータ転送制御装置であって、
パラレルＡＴＡバスに接続され、ホストとの間のインターフェースを行うパラレルＡＴＡインターフェースと、
シリアルＡＴＡバスに接続され、シリアルＡＴＡのデバイスとの間のインターフェースを行うシリアルＡＴＡインターフェースと、
転送シーケンス制御を行うシーケンスコントローラを含み、
前記ホストが、ＤＭＡビットがＤＭＡ設定にされたＡＴＡパケットコマンドを発行し、データレジスタにコマンドパケットが設定されたＡＴＡＰＩパケットコマンドを発行した場合に、
前記パラレルＡＴＡインターフェースは、
前記ホストとの間でＤＭＡのデータ転送を行い、
前記シリアルＡＴＡインターフェースは、
前記デバイスとの間でＰＩＯのデータ転送を行うことを特徴とするデータ転送制御装置。
【請求項２】
請求項１において、
前記パラレルＡＴＡインターフェースは、タスクファイル・レジスタを有し、
前記シリアルＡＴＡインターフェースは、シャドウ・タスクファイル・レジスタを有し、
前記シーケンスコントローラは、
前記ＡＴＡパケットコマンドが発行され、前記ＤＭＡビットがＤＭＡ設定である場合には、前記ＤＭＡビットをＰＩＯ設定に書き換え、前記ＤＭＡビットがＰＩＯ設定に書き換えられたレジスタ値を、前記タスクファイル・レジスタから前記シャドウ・タスクファイル・レジスタに転送することを特徴とするデータ転送制御装置。
【請求項３】
請求項１又は２において、
前記シーケンスコントローラは、
前記ＡＴＡＰＩパケットコマンドが発行されて前記シリアルＡＴＡインターフェースが前記コマンドパケットを含むデータＦＩＳを前記デバイスに送信し、前記デバイスからＰＩＯセットアップＦＩＳを受信した場合に、総データ転送数を管理しないフリーラン転送を開始することを特徴とするデータ転送制御装置。
【請求項４】
請求項３において、
前記シーケンスコントローラは、
データＦＩＳを受信した前記デバイスからＰＩＯセットアップＦＩＳを受信した場合に、受信したＰＩＯセットアップＦＩＳに基づいてデータの転送方向、転送種別を判断して、前記フリーラン転送のシーケンス制御を行うことを特徴とするデータ転送制御装置。
【請求項５】
請求項３又は４において、
前記シーケンスコントローラは、
前記フリーラン転送においては、前記デバイスから受信したＰＩＯセットアップＦＩＳに設定された転送カウントに基づいて、各ＰＩＯ転送の転送バイト数を管理することを特徴とするデータ転送制御装置。
【請求項６】
請求項３乃至５のいずれかにおいて、
前記シーケンスコントローラは、
前記フリーラン転送の開始後、前記デバイスからレジスタＦＩＳを受信した場合に、前記フリーラン転送を終了することを特徴とするデータ転送制御装置。
【請求項７】
請求項６において、
前記シーケンスコントローラは、
転送方向が、ホストがデバイスのデータをリードするリード方向である場合には、前記デバイスからレジスタＦＩＳを受信し前記パラレルＡＴＡインターフェースでのデータ転送が完了した後に、前記フリーラン転送を終了することを特徴とするデータ転送制御装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記シリアルＡＴＡインターフェースは、
前記デバイスとの間でのＰＩＯ転送の転送バイト数がシリアルＡＴＡのデータ転送単位のバイト数未満であり、前記デバイスからダミーデータを受信した場合に、前記パラレルＡＴＡインターフェース側への前記ダミーデータの出力をマスクすることを特徴とするデータ転送制御装置。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記パラレルＡＴＡインターフェースは、タスクファイル・レジスタを有し、
前記シリアルＡＴＡインターフェースは、シャドウ・タスクファイル・レジスタを有し、
前記シーケンスコントローラは、
前記パラレルＡＴＡインターフェースでのＤＭＡのデータ転送及び前記シリアルＡＴＡインターフェースでのＰＩＯのデータ転送が完了した後、ビジービット及びデータリクエストビットがクリアされたレジスタ値を、前記シャドウ・タスクファイル・レジスタから前記タスクファイル・レジスタに転送することを特徴とするデータ転送制御装置。
【請求項１０】
請求項１乃至９のいずれかに記載のデータ転送制御装置と、
前記データ転送制御装置に接続される前記ホストと、
前記データ転送制御装置に接続される前記デバイスと、
を含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置及び電子機器に関する。
【背景技術】
【０００２】
近年、ストレージデバイス等のシリアルインターフェースとして、シリアルＡＴＡ（Serial AT Attachment）と呼ばれる規格が脚光を浴びている。このシリアルＡＴＡは、パラレルＡＴＡ（ＩＤＥ）との間のソフトウェアレベルでの互換性を備えた規格である。そして最初の規格であるシリアルＡＴＡ Ｉのデータ転送速度は１．５Ｇｂｐｓであったが、次の規格であるシリアルＡＴＡ II  Ｇｅｎ２ではデータ転送速度が３．０Ｇｂｐｓに高速化している。このシリアルＡＴＡを用いれば、電子機器が内蔵する回路基板間の配線本数を減らすことができ、電子機器のコンパクト化を図れる。
【０００３】
ところが、電子機器のホスト（ホストデバイス、ホスト基板）は、パラレルＡＴＡ（以下、適宜、ＰＡＴＡと呼ぶ）のインターフェース（以下、適宜、Ｉ／Ｆと呼ぶ）は備えているが、シリアルＡＴＡ（以下、適宜、ＳＡＴＡと呼ぶ）のＩ／Ｆについては備えていないものが多い。従って、このようＰＡＴＡＩ／Ｆのみを備えた既存のホストに対しては、ＳＡＴＡのデバイスを接続できないという問題がある。
【０００４】
またＨＤＤ（ハードディスクドライブ）などのデバイスは、その大部分が、ＰＡＴＡＩ／ＦからＳＡＴＡＩ／Ｆに置き換わっており、ＰＡＴＡＩ／Ｆを備えるＨＤＤの入手が困難になっている。このため、ＰＡＴＡＩ／Ｆのみを備えるホストに対して接続可能なＨＤＤの種類が限定されてしまい、電子機器の内蔵ＨＤＤの大容量化等が妨げられるという問題がある。
【０００５】
またＣＤドライブ、ＤＶＤドライブなどのマルチメディア系デバイスのインターフェースとしてＡＴＡＰＩ（AT Attachment Packet Interface）がある。このＡＴＡＰＩでは、従来からのＡＴＡコマンドの拡張を最小限に抑えるために、パケットコマンドという概念を導入している。このＡＴＡＰＩによれば、ＨＤＤ用のＡＴＡ（ＩＤＥ）コントローラに対して、ＨＤＤ以外のデバイスも接続できるようになる。従って、ＰＡＴＡとＳＡＴＡのブリッジ機能をデータ転送制御装置に持たせた場合には、このＡＴＡＰＩのデータ転送についても適正に実現できることが望ましい。
【０００６】
なお特許文献１、２には、ＳＡＴＡとＰＡＴＡのブリッジＩＣが開示されている。しかしながらこの特許文献１、２は、ブリッジＩＣを使用した回路基板などに関する発明であり、ブリッジＩＣの具体的な構成に関する発明ではない。
【０００７】
また特許文献３には、ＳＡＴＡブリッジを内蔵するＨＤＤが開示されている。しかしながら、この特許文献３のＳＡＴＡブリッジは、ＳＡＴＡ側にホストが接続されＰＡＴＡ側にデバイスが接続されるブリッジであり、ＰＡＴＡ側にホストが接続されＳＡＴＡ側にデバイスが接続されるブリッジに関する発明ではない。また特許文献３は、ファームウェアによるプロトコル制御に特徴がある発明であり、回路構成に特徴がある発明ではない。
【特許文献１】特開２００５−３４６１２３号公報
【特許文献２】特開２００６−１２１６２１号公報
【特許文献３】特開２００６−１８４２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、以上のような課題に鑑みてなされたものであり、本発明に係る幾つかの態様によれば、ＡＴＡとＳＡＴＡのバスブリッジ機能を実現しながらＡＴＡＰＩのデータ転送についても適正に実現できる。
【課題を解決するための手段】
【０００９】
本発明は、パラレルＡＴＡとシリアルＡＴＡのバスブリッジ機能を有するデータ転送制御装置であって、パラレルＡＴＡバスに接続され、ホストとの間のインターフェースを行うパラレルＡＴＡインターフェースと、シリアルＡＴＡバスに接続され、シリアルＡＴＡのデバイスとの間のインターフェースを行うシリアルＡＴＡインターフェースと、転送シーケンス制御を行うシーケンスコントローラを含み、前記ホストが、ＤＭＡビットがＤＭＡ設定にされたＡＴＡパケットコマンドを発行し、データレジスタにコマンドパケットが設定されたＡＴＡＰＩパケットコマンドを発行した場合に、前記パラレルＡＴＡインターフェースは、前記ホストとの間でＤＭＡのデータ転送を行い、前記シリアルＡＴＡインターフェースは、前記デバイスとの間でＰＩＯのデータ転送を行うデータ転送制御装置に関係する。
【００１０】
本発明によれば、ホストが、ＤＭＡ設定のＡＴＡパケットコマンドを発行し、その後にコマンドパケットを伝えるためのＡＴＡＰＩパケットコマンドを発行すると、パラレルＡＴＡインターフェースは、ホストとの間ではＤＭＡによりデータ転送を行う。一方、シリアルＡＴＡインターフェースは、デバイスとの間ではＰＩＯセットアップＦＩＳやデータＦＩＳを用いたＰＩＯによりデータ転送を行う。このようにＰＩＯによりデータ転送を行えば、各ＰＩＯ転送のデータバイト数の管理が可能になるため、転送バイト数の整合が取れなくなるなどの事態を防止でき、ＡＴＡとＳＡＴＡのバスブリッジ機能を実現しながらＡＴＡＰＩのデータ転送についても適正に実現できるようになる。
【００１１】
また本発明では、前記パラレルＡＴＡインターフェースは、タスクファイル・レジスタを有し、前記シリアルＡＴＡインターフェースは、シャドウ・タスクファイル・レジスタを有し、前記シーケンスコントローラは、前記ＡＴＡパケットコマンドが発行され、前記ＤＭＡビットがＤＭＡ設定である場合には、前記ＤＭＡビットをＰＩＯ設定に書き換え、前記ＤＭＡビットがＰＩＯ設定に書き換えられたレジスタ値を、前記タスクファイル・レジスタから前記シャドウ・タスクファイル・レジスタに転送してもよい。
【００１２】
このようにＤＭＡビットをＰＩＯ設定に書き換えれば、パラレルＡＴＡ側についてはＤＭＡ転送モードに設定してデータ転送を行いながら、シリアルＡＴＡ側についてはＰＩＯ転送モードに設定してデータ転送を行うことが可能になる。
【００１３】
また本発明では、前記シーケンスコントローラは、前記ＡＴＡＰＩパケットコマンドが発行されて前記シリアルＡＴＡインターフェースが前記コマンドパケットを含むデータＦＩＳを前記デバイスに送信し、前記デバイスからＰＩＯセットアップＦＩＳを受信した場合に、総データ転送数を管理しないフリーラン転送を開始してもよい。
【００１４】
このようにフリーラン転送を行えば、総データ転送数のカウント回路が不要になるため、回路の小規模化を図れる。
【００１５】
また本発明では、前記シーケンスコントローラは、データＦＩＳを受信した前記デバイスからＰＩＯセットアップＦＩＳを受信した場合に、受信したＰＩＯセットアップＦＩＳに基づいてデータの転送方向、転送種別を判断して、前記フリーラン転送のシーケンス制御を行ってもよい。
【００１６】
このようにすれば、転送方向、転送種別を設定した適正な転送シーケンス制御を実現できる。
【００１７】
また本発明では、前記シーケンスコントローラは、前記フリーラン転送においては、前記デバイスから受信したＰＩＯセットアップＦＩＳに設定された転送カウントに基づいて、各ＰＩＯ転送の転送バイト数を管理してもよい。
【００１８】
このようにすれば、総データ転送数を管理しないフリーラン転送手法を採用した場合にも、総データ転送数の適合が取れた適正なデータ転送を実現できる。
【００１９】
また本発明では、前記シーケンスコントローラは、前記フリーラン転送の開始後、前記デバイスからレジスタＦＩＳを受信した場合に、前記フリーラン転送を終了してもよい。
【００２０】
このようにすれば、受信したＦＩＳがレジスタＦＩＳであるか否かを判断するだけで、フリーラン転送の終了を判断できるため、回路の簡素化や小規模化を図れる。
【００２１】
また本発明では、前記シーケンスコントローラは、転送方向が、ホストがデバイスのデータをリードするリード方向である場合には、前記デバイスからレジスタＦＩＳを受信し前記パラレルＡＴＡインターフェースでのデータ転送が完了した後に、前記フリーラン転送を終了してもよい。
【００２２】
このように、パラレルＡＴＡインターフェースでのデータ転送が完了した場合に、フリーラン転送を終了するようにすれば、データ転送制御装置にデータが残ってしまう事態を防止できる。
【００２３】
また本発明では、前記シリアルＡＴＡインターフェースは、前記デバイスとの間でのＰＩＯ転送の転送バイト数がシリアルＡＴＡのデータ転送単位のバイト数未満であり、前記デバイスからダミーデータを受信した場合に、前記パラレルＡＴＡインターフェース側への前記ダミーデータの出力をマスクしてもよい。
【００２４】
このようにすれば、ダミーデータがホスト側に転送されて誤動作等を招く事態を効果的に防止できる。
【００２５】
また本発明では、前記パラレルＡＴＡインターフェースは、タスクファイル・レジスタを有し、前記シリアルＡＴＡインターフェースは、シャドウ・タスクファイル・レジスタを有し、前記シーケンスコントローラは、前記パラレルＡＴＡインターフェースでのＤＭＡのデータ転送及び前記シリアルＡＴＡインターフェースでのＰＩＯのデータ転送が完了した後、ビジービット及びデータリクエストビットがクリアされたレジスタ値を、前記シャドウ・タスクファイル・レジスタから前記タスクファイル・レジスタに転送してもよい。
【００２６】
このようにビジービット及びデータリクエストビットをクリアすれば、タスクファイル・レジスタを介して、総データ転送の終了をホストに伝えることが可能になる。
【００２７】
また本発明は、上記のいずれかに記載のデータ転送制御装置と、前記データ転送制御装置に接続される前記ホストと、前記データ転送制御装置に接続される前記デバイスとを含む電子機器に関係する。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００２９】
１．データ転送制御装置の構成
図１に本実施形態のデータ転送制御装置の構成例を示す。このデータ転送制御装置はＰＡＴＡ（Parallel AT Attachment）とＳＡＴＡ（Serial AT Attachment）のバスブリッジ機能を有する。
【００３０】
なお本実施形態のデータ転送制御装置は図１の構成に限定されず、その構成要素の一部（例えばデータバッファ）を省略したり、他の構成要素（例えば外部Ｉ／Ｆ回路、ＣＰＵ、タイマ）を追加するなどの種々の変形実施が可能である。例えば本実施形態のデータ転送制御装置は、ＰＡＴＡとＳＡＴＡのバスブリッジ機能以外にも、ＰＡＴＡとＵＳＢ、ＰＡＴＡとＳＤ（Secure Digital）カードインターフェス、ＰＡＴＡとＣＥ−ＡＴＡのバスブリッジ機能を実現できるようにしてもよい。
【００３１】
ＰＡＴＡＩ／Ｆ１０（パラレルＡＴＡインターフェース）は、ＰＡＴＡバス（ＡＴＡバス、ＩＤＥバス）に接続され、ホスト２（ホストデバイス）との間のインターフェースを行う。具体的にはＰＡＴＡＩ／Ｆ１０は、ホスト２が有するホスト側のＰＡＴＡＩ／ＦにＰＡＴＡバスを介して接続される。そしてＡＴＡで規格化された後述する各種信号によりやり取りを行い、ＰＡＴＡ（ＩＤＥ）のデータ転送を実現する。またＰＡＴＡＩ／Ｆ１０は、データバッファ７０を介したＳＡＴＡＩ／Ｆ５０との間のデータ転送制御も行う。このＰＡＴＡＩ／Ｆ１０は、ＰＡＴＡとＳＡＴＡのブリッジ用に擬似的（仮想的）に設けられたタスクファイル・レジスタ１２を含むことができる。
【００３２】
なおホスト２としては、例えばＣＰＵ、ＭＰＵ、ＤＳＰなどのプロセッサや、専用制御ＩＣや、これらのプロセッサ又は専用制御ＩＣが実装されたホスト回路基板などが考えられる。またデバイス４としては、ハードディスクドライブ（ＨＤＤ）、光ディスクドライブ（ＣＤ、ＤＶＤ）、磁気ディスクドライブなどのＳＡＴＡＩ／Ｆを備える各種デバイスが考えられる。
【００３３】
ＳＡＴＡＩ／Ｆ５０（シリアルＡＴＡインターフェース）は、ＳＡＴＡバス（高速シリアルバス）に接続され、ＳＡＴＡのデバイス４との間のインターフェースを行う。具体的にはＳＡＴＡＩ／Ｆ５０は、デバイス４が有するデバイス側のＳＡＴＡＩ／Ｆに接続され、小振幅の差動信号によりやり取りを行い、ＳＡＴＡのデータ転送を実現する。またＳＡＴＡＩ／Ｆ５０は、データバッファ７０を介したＰＡＴＡＩ／Ｆ１０との間のデータ転送制御も行う。このＳＡＴＡＩ／Ｆ５０は、ＳＡＴＡ規格のシャドウ・タスクファイル・レジスタ５２を含むことができる。
【００３４】
シーケンスコントローラ３０は転送のシーケンス制御を行う。具体的には、ＰＡＴＡとＳＡＴＡのブリッジ機能を実現するために、ＰＡＴＡＩ／Ｆ１０、ＳＡＴＡＩ／Ｆ５０、データバッファ７０の間のデータ転送のシーケンス制御を行ったり、レジスタ値の転送シーケンス制御を行う。
【００３５】
データバッファ７０は、ホスト２（ＰＡＴＡＩ／Ｆ）、デバイス４（ＳＡＴＡＩ／Ｆ）の間で転送されるデータのバッファリングを行う。そしてＰＡＴＡ側とＳＡＴＡ側のクロック周波数の差を吸収するための緩衝用のバッファ（ＦＩＦＯ）として機能する。即ちＰＡＴＡ側のクロック周波数が例えば５０ＭＨｚ（或いは６０ＭＨｚ）で、ＳＡＴＡ側のクロック周波数が例えば３７．５ＭＨｚである場合に、データバッファ７０を設けることでこのクロック周波数の差を吸収できる。このデータバッファ７０は、例えば５０ＭＨｚ（第１の周波数）でデータが入出力されるＰＡＴＡＩ／Ｆ１０側の第１のポートと、例えば３７．５ＭＨｚ（第２の周波数）でデータが入出力されるＳＡＴＡＩ／Ｆ５０側の第２のポートとを有するデュアルポートのメモリ（ＲＡＭ）などにより実現できる。
【００３６】
図１の構成によれば、ホスト２がＰＡＴＡＩ／Ｆしか備えていない場合にも、ＳＡＴＡＩ／Ｆを有するデバイス４をデータ転送制御装置を介してホスト２に接続できる。従って、ホスト２のファームウェア、ソフトウェアとして、既存のＰＡＴＡ（ＩＤＥ）用のファームウェア、ソフトウェアを使用できる。これにより電子機器の開発期間の短縮化や低コスト化を図れる。またデバイス４として、市場供給量が多い大容量のＨＤＤをホスト２に接続できるようになり、電子機器の内蔵ＨＤＤの大容量化を図れる。
【００３７】
またホスト２が搭載される回路基板とデバイス４が搭載される回路基板の間を、シリアルバスであるＳＡＴＡバスで接続できるため、回路基板間の配線本数を減らすことができ、電子機器のコンパクト化を図れる。
【００３８】
そして実施形態では図１に示すように、ホスト２が、ＤＭＡビットがＤＭＡ設定にされたＡＴＡパケットコマンドを発行し、データレジスタにコマンドパケットが設定されたＡＴＡＰＩパケットコマンドを発行すると、ＰＡＴＡＩ／Ｆ１０は、ホスト２との間でＤＭＡのデータ転送を行う。一方、ＳＡＴＡＩ／Ｆ５０は、デバイス４との間でＰＩＯのデータ転送を行う。即ちＰＩＯセットアップＦＩＳとデータＦＩＳを用いたデータ転送を行う。
【００３９】
例えばＳＡＴＡのデータ転送単位は４バイトであるが、ＡＴＡＰＩでは４バイトでは割り切れないデータのペイロード指定が可能になっている。従って、ＡＴＡＰＩのＤＭＡ転送を行った場合に、ＳＡＴＡ側の半端なデータについてはダミーデータによりパディングされる。そしてダミーデータがホスト側に転送されてしまうと、転送データの設定バイト数と実転送データの総バイト数の適合性が取れなくなるという問題が生じる。
【００４０】
この点、本実施形態では、ＡＴＡＰＩによるＤＭＡ転送の際に、図１に示すようにＰＡＴＡ側では通常どおりＤＭＡのデータ転送を行う一方で、ＳＡＴＡ側ではＰＩＯセットアップＦＩＳを用いたＰＩＯのデータ転送を行う。このようにすれば、各ＰＩＯ転送の転送バイト数は、ＰＩＯセットアップＦＩＳの転送カウント（transfer count）を用いて管理できる。従って、ホスト２側にダミーデータが転送されて転送バイト数の適合性が取れなくなってしまう事態を効果的に防止できる。
【００４１】
２．詳細な構成例
図２にデータ転送制御装置の詳細な構成例を示す。ＰＡＴＡＩ／Ｆ１０はタスクファイル・レジスタ（以下、適宜、ＴＦＲと呼ぶ）１２、転送コントローラ１４を含む。ここでＴＦＲ１２は、ＰＡＴＡとＳＡＴＡのバスブリッジ用に擬似的に設けられたレジスタである。このＴＦＲ１２を設けることで、ホスト２は、ＳＡＴＡのデバイス４を、あたかもＰＡＴＡのデバイスのように扱ってデータのリードやライトを行うことが可能になる。即ちホスト２は、既存のＰＡＴＡ用のファームウェアやソフトウェアを使用して、ＳＡＴＡのデバイス４を制御できるようになる。
【００４２】
転送コントローラ１４は、ＰＡＴＡ用の信号ＸＣＳ〜ＸＰＤＩＡＧを用いてＰＡＴＡ（ＩＤＥ）のインターフェースを実現したり、データ転送用の制御信号を用いて、データバッファ７０との間のデータ転送を制御する。
【００４３】
データバッファ７０は、メモリコントローラ７２、ＦＩＦＯメモリ（ＦＩＦＯＲＡＭ）７４を含む。メモリコントローラ７２は、ＦＩＦＯメモリ７４のデータの書き込み制御や読み出し制御を行う。またＰＡＴＡＩ／Ｆ１０やＳＡＴＡＩ／Ｆ５０との間で、例えばＲＥＱ信号やＡＣＫ信号などの制御信号を用いたデータ転送制御を行う。
【００４４】
ＳＡＴＡＩ／Ｆ５０は、シャドウ・タスクファイル・レジスタ（以下、適宜、ＳＦＲと呼ぶ）５２、トランスポートコントローラ１１０、リンクコントローラ１５０、物理層回路２００を含む。
【００４５】
トランスポートコントローラ１１０、リンクコントローラ１５０、物理層回路２００は、各々、ＳＡＴＡ規格のトランスポート層、リンク層、物理層の処理を行う回路である。
【００４６】
シャドウ・タスクファイル・レジスタ（ＳＦＲ）５２はＳＡＴＡで規格化されているレジスタである。即ちＳＡＴＡでは、従来のＰＡＴＡ（ＩＤＥ）との間でソフトウェアレベルでの互換性が維持されており、タスクファイル・レジスタが２つ存在することが特徴になっている。即ちホスト（ＨＢＡ）側のシャドウ・タスクファイル・レジスタ５２とデバイス側の本来のタスクファイル・レジスタ５である。
【００４７】
一方、ＰＡＴＡＩ／Ｆ１０に設けられたタスクファイル・レジスタ（ＴＦＲ）１２はＳＡＴＡで規格化されるレジスタではなく、ＰＡＴＡとＳＡＴＡのブリッジ用に設けられた擬似的なレジスタである。ホスト２は、レジスタ１２をＰＡＴＡのタスクファイル・レジスタとして認識してアクセスし、レジスタ値を書き込んだり、レジスタ値を読み出す。すると本実施形態のデータ転送制御装置が、タスクファイル・レジスタ１２のレジスタ値をシャドウ・タスクファイル・レジスタ５２に転送したり、シャドウ・タスクファイル・レジスタ５２のレジスタ値をタスクファイル・レジスタ１２に転送するなどの処理を行う。
【００４８】
このようにすれば、ホスト２が、ＰＡＴＡのタスクファイル・レジスタ１２にレジスタ値を書き込むと、そのレジスタ値がＳＡＴＡのシャドウ・タスクファイル・レジスタ５２に転送されて書き込まれ、ＳＡＴＡバスを介してＦＩＳによりデバイス４に転送されるようになる。またデバイス４からのＦＩＳによりシャドウ・タスクファイル・レジスタ５２に書き込まれたレジスタ値が、タスクファイル・レジスタ１２に転送されてホスト２に読み出されるようになる。従ってホスト２は、ＳＡＴＡのデバイス４を、あたかもＰＡＴＡのデバイスのように扱ってデータのリードやライトを行うことが可能になり、ＰＡＴＡとＳＡＴＡのブリッジ機能を効率良く実現できる。
【００４９】
なおタスクファイル・レジスタ（ＴＦＲ）１２とシャドウ・タスクファイル・レジスタ（ＳＦＲ）５２の間のレジスタ値の転送は次のような手法により実現できる。即ちＴＦＲ１２のレジスタ群のビット（全ビット）とＳＦＲ５２のレジスタ群のビット（全ビット）を、シーケンスコントローラ３０を介して信号線により接続しておく。そしてレジスタ値の転送を行う場合には、シーケンスコントローラ３０が転送トリガ信号を生成し、この転送トリガ信号に基づいて、ＴＦＲ１２のレジスタ値をＳＦＲ５２に転送したり、ＳＦＲ５２のレジスタ値をＴＦＲ１２に転送すればよい。
【００５０】
３．ＰＡＴＡＩ／Ｆ
次に、ＰＡＴＡＩ／Ｆ１０のデータ転送処理について、図２の構成及び図３（Ａ）〜図４（Ｂ）の信号波形を用いて説明する。
【００５１】
ＸＣＳ［１：０］は、ＰＡＴＡの各レジスタにアクセスするために使用するチップセレクト信号である。ＤＡ［２：０］は、データ又はデータポートにアクセスするためのアドレス信号である。ＤＭＡＲＱ、ＸＤＭＡＣＫは、ＤＭＡ転送に使用される信号である。データ転送の準備が整った時にデバイス側がＤＭＡＲＱをアクティブ（アサート）にし、これに応答して、ホスト側がＸＤＭＡＣＫをアクティブにする。
【００５２】
ＸＤＩＯＷは、レジスタ又はデータポートの書き込み時に使用するライト信号である。ＸＤＩＯＲは、レジスタ又はデータポートの読み出し時に使用するリード信号である。ＩＯＲＤＹは、デバイス側のデータ転送の準備が整っていない時のウェイト信号等に使用される。
【００５３】
ＩＮＴＲＱは、デバイス側が、ホスト側に対して割り込みを要求するために使用される信号である。このＩＮＴＲＱがアクティブになった後、ホスト側がデバイス側のＴＦＲ１２のステータスレジスタの内容を読むと、所定時間後にデバイス側はＩＮＴＲＱを非アクティブ（ネゲート）にする。このＩＮＴＲＱを用いることで、デバイス側は、コマンド処理の終了をホスト側に通知できる。
【００５４】
図３（Ａ）、図３（Ｂ）は、ＰＩＯ（Programmed I/O）リード、ＰＩＯライトの信号波形例である。ＰＡＴＡのＴＦＲ１２のステータスレジスタのリードは図３（Ａ）のＰＩＯリードにより行い、コマンドレジスタへのライトは図３（Ｂ）のＰＩＯライトにより行う。例えばホスト２によるＡＴＡコマンドの発行は、ＰＩＯライトにより実現できる。
【００５５】
図４（Ａ）、図４（Ｂ）は、ＤＭＡリード、ＤＭＡライトの信号波形例である。データ転送の準備ができると、デバイス側（データ転送制御装置）が、ＤＭＡＲＱをアクティブにする。そして、それを受けて、ホスト側が、ＸＤＭＡＣＫをアクティブにして、ＤＭＡ転送を開始する。その後、ＸＤＩＯＲ（リード時）又はＸＤＩＯＷ（ライト時）を使用して、データＤＤ［１５：０］のＤＭＡ転送を行う。
【００５６】
４．ＳＡＴＡＩ／Ｆ
次にＳＡＴＡＩ／Ｆ５０のデータ転送処理について説明する。図５はＳＡＴＡの送信側のデータ転送処理の流れを示し、図６は受信側のデータ転送処理の流れを示している。
【００５７】
図５に示すように送信側のトランスポートコントローラ（トランスポート層）では、シャドウ・タスクファイル・レジスタに書き込まれたコマンドやデータポートに入力されたデータによりＦＩＳが生成される。ここでＦＩＳは、フレームのペイロード部であり、Ｄｗｏｒｄ（３２ビット）単位で構成される。またフレームは、ホストとデバイスの間で交換される情報ユニットであり、ＳＯＦ（Start Of Frame）プリミティブと、ＦＩＳと、ＦＩＳに対して計算されたＣＲＣ（Cyclic Redundancy Check）と、ＥＯＦ（End Of Frame）プリミティブにより構成される。
【００５８】
送信側のリンクコントローラでは、ＦＩＳに対するＣＲＣが演算されてＦＩＳの最後尾に付加される。そしてＦＩＳ及びＣＲＣとスクランブルデータとの排他的論理和（ＸＯＲ）をとるスクランブル処理が行われる。このようにスクランブルされたＦＩＳ及びＣＲＣに対して、８ｂ／１０ｂのエンコードが行われる。ここで８ｂ／１０ｂエンコードは、８ビットのデータを１０ビットの伝送キャラクタに変換するデータ伝送符号化のアルゴリズムであり、符号列内の１と０の数を揃え、連続的な伝送を保証する。そして８ｂ／１０ｂエンコード後のＦＩＳ及びＣＲＣに対してＳＯＦ、ＥＯＦなどのプリミティブが付加される。
【００５９】
送信側の物理層回路では、リンクコントローラからのパラレルデータがシリアルデータに変換され、小振幅の差動信号としてＳＡＴＡバスに送信される。
【００６０】
図６に示すように受信側の物理層回路では、ＳＡＴＡバスを介して受信したシリアルデータがパラレルデータに変換される。
【００６１】
受信側のリンクコントローラでは、ＦＩＳ及びＣＲＣに付加されたプリミティブに対するデコードが行われる。またＦＩＳ及びＣＲＣに対する８ｂ／１０ｂのデコードが行われる。即ち１０ビットの伝送キャラクタが８ビットのデータに変換される。次に、スクランブルされたＦＩＳ及びＣＲＣとスクランブルデータとの排他的論理和をとるデスクランブル処理が行われる。そしてＦＩＳの最後尾に付加されたＣＲＣがチェックされる。
【００６２】
受信側のトランスポートコントローラでは、ＦＩＳのコマンドがシャドウ・タスクファイル・レジスタに書き込まれ、ステータスや割り込みが出力されると共に、データがデータポートを介して出力される。
【００６３】
なお図７にＡＴＡのタスクファイル・レジスタのフォーマット例を示す。タスクファイル・レジスタはコントロールブロックレジスタとコマンドブロックレジスタを有し、チップセレクト信号ＸＣＳ０、ＸＣＳ１が、Ｈレベル（ネゲート）、Ｌレベル（アサート）である場合にはコントロールブロックレジスタが選択され、Ｌレベル、Ｈレベルである場合にはコマンドブロックレジスタが選択される。またコマンドブロックレジスタには、ステータスレジスタ（Status）やＡＴＡコマンドレジスタ（ATA Command）が設けられる。
【００６４】
また図８（Ａ）〜図８（Ｄ）に、ＳＡＴＡＩ／Ｆ５０により送受信されるＦＩＳのフォーマット例を示す。図８（Ａ）はホストからデバイスへのレジスタＦＩＳ、図８（Ｂ）はデバイスからホストへのレジスタＦＩＳ、図８（Ｃ）はＰＩＯセットアップＦＩＳ、図８（Ｄ）はＤＭＡアクティベートＦＩＳのフォーマットである。
【００６５】
５．ＡＴＡＰＩ
次にＡＴＡＰＩのコマンドプロトコルについて説明する。図９（Ａ）に示すようにＡＴＡのコマンドプロトコルでは、デバイスセレクションのプロトコルが行われた後、図７に示すタスクファイル・レジスタの各パラメータ（Features、Sector Number、Sector Count等）の設定が行われる。そしてタスクファイル・レジスタのコマンドレジスタを用いてＡＴＡコマンドが発行され、タスクファイル・レジスタのデータレジスタを用いてデータが転送される。
【００６６】
一方、ＡＴＡＰＩのコマンドプロトコルでは、デバイスセレクションのプロトコルが行われた後、タスクファイル・レジスタの各パラメータ（Features、Sector Count等）の設定が行われる。そしてタスクファイル・レジスタのコマンドレジスタ（Ａ０ｈ）を用いてＡＴＡパケットコマンドが発行される。その後、タスクファイル・レジスタのデータレジスタを用いてＡＴＡＰＩパケットコマンドが発行（転送）される。そしてＡＴＡＰＩパケットコマンドがデバイスに転送された後に、タスクファイル・レジスタのデータレジスタを用いてデータが転送される。
【００６７】
例えば図１０（Ａ）にパケットコマンドのパラメータの例を示し、図１０（Ｂ）にステータスレジスタの例を示す。ホスト２は、ＡＴＡＰＩのデータ転送を行う場合には図１０（Ａ）のＡ１に示すようにＡ０ｈのコマンドが設定されたＡＴＡパケットコマンドを発行する。またＤＭＡのデータ転送を行う場合にはＡ２に示すＤＭＡビットを１に設定し、ＰＩＯのデータ転送を行う場合にはＤＭＡビットを０に設定する。また転送方向については図１０（Ｂ）のＡ３に示すＩ／Ｏビットにより知ることができ、コマンドかデータかの区別はＡ４に示すＣ／Ｄビットにより知ることができる。
【００６８】
このようにＡＴＡＰＩでは、タスクファイル・レジスタを用いて転送されるパケットコマンドという概念を導入することで、レジスタマップやハードウェア等の変更を加えずに、ＡＴＡＰＩのデバイスをＡＴＡ用コントローラに接続することを可能にしている。
【００６９】
６．ＤＭＡ転送時のＳＡＴＡ側へのＰＩＯ転送モード設定
バスブリッジ機能を有するデータ転送制御装置では、ホスト２が指定する転送モードの設定は、デバイス４に対してスルーして伝達されるため、ＰＡＴＡ側と同じ転送モードにＳＡＴＡ側の転送モードも設定されるのが一般的である。即ちＰＡＴＡ側がＰＩＯ転送モードである場合にはＳＡＴＡ側もＰＩＯ転送モードに設定され、ＰＡＴＡ側がＤＭＡ転送モードである場合にはＳＡＴＡ側もＤＭＡ転送モードに設定される。
【００７０】
これに対して本実施形態では図１に示すように、ＤＭＡのデータ転送時に、ＰＡＴＡ側についてはＤＭＡ転送モードに設定する一方で、ＳＡＴＡ側についてはＰＩＯ転送モードに設定する手法を採用している。このような手法を採用することで、ホスト側にダミーデータが転送されて転送バイト数の適合性が取れなくなってしまう事態等を防止できる。
【００７１】
なお、発行されたＡＴＡＰＩパケットコマンドが特定コマンド（例えばREAD10、READ12、READ CD、READ CD MSF、WRITE10、WRITE12）である場合には、ＰＡＴＡ側及びＳＡＴＡ側の両方をＤＭＡ転送モードに設定してもよい。
【００７２】
次に本実施形態の手法を、図１１、図１２の転送シーケンス及び図１３（Ａ）〜図１６（Ｅ）を用いて詳細に説明する。
【００７３】
まず図１１のＢ１及び図１３（Ａ）に示すように、ホスト２がＡＴＡパケットコマンドを発行する。そしてＡＴＡＰＩのＤＭＡ転送を行う場合には、ホスト２が発行するＡＴＡパケットコマンドは、図１０（Ａ）のＡ１に示すコマンドコードがＡ０ｈに設定され、Ａ２に示すＤＭＡビットが１に設定（ＤＭＡ設定）されている。
【００７４】
このようなＤＭＡ設定のＡＴＡパケットコマンドが発行されると、図１１のＢ２に示すようにデータ転送制御装置（シーケンスコントローラ）は、ＴＦＲ（タスクファイル・レジスタ）１２のＡＴＡステータスレジスタ（図７のStatus）をＤ０ｈに設定する。即ちステータスレジスタのＢＵＳＹビットを１にセットし、ＤＲＱ（データリクエスト）ビットを０にクリアして、デバイス４側がビジー状態であることを知らせる。
【００７５】
このようにホスト２によりＡＴＡパケットコマンドが発行され、そのＤＭＡビットがＤＭＡ設定（＝１）になっている場合には、図１１のＢ３、図１３（Ｂ）に示すように、データ転送制御装置（シーケンスコントローラ）は、ＤＭＡビットをＰＩＯ設定（＝０）に書き換える。そしてＤＭＡビットがＰＩＯ設定に書き換えられたレジスタ値を、ＴＦＲ１２からＳＦＲ５２に転送する。
【００７６】
そしてデータ転送制御装置（ＳＡＴＡＩ／Ｆ）は、このようにレジスタ値が設定されたＳＦＲ５２に基づいて、レジスタＦＩＳ（Host to Devicr）を生成して、デバイス４に送信する。即ち図８（Ａ）のFuturesレジスタのＤＭＡビットが０に設定されたレジスタＦＩＳをデバイス４に送信する。するとデバイス４は、受信したレジスタＦＩＳに基づいてＰＩＯセットアップＦＩＳを生成し、データ転送制御装置（ＳＡＴＡＩ／Ｆ）に送信する。
【００７７】
図１１のＢ４、図１３（Ｃ）に示すように、データ転送制御装置は転送方向、転送種別等の転送シーケンス設定を実行する。そして受信したＰＩＯセットアップＦＩＳに基づいて、ＡＴＡステータスレジスタを５８ｈに設定するなどのＴＦＲ１２のレジスタ値の設定処理を行う。即ちＢＵＳＹビット（図１０（Ｂ）のＡ５）を０、ＤＲＱビット（Ａ６）を１、Ｃ／Ｄビット（Ａ４）を１、Ｉ／Ｏビット（Ａ３）を０に設定する。これによりデバイス４側がビジー状態ではないこと、パケットコマンドが要求されていること、転送方向がホスト２からデバイス４への方向であることが、ホスト２に知らされる。
【００７８】
そして図１１のＢ５及び図１４（Ａ）に示すように、ホスト２は、データレジスタに１２バイトのパケットコマンドが設定されたＡＴＡＰＩパケットコマンドを発行する。すると図１１のＢ６に示すようにデータ転送制御装置（シーケンスコントローラ）はＴＦＲ１２のＡＴＡステータスレジスタをＤ０ｈに設定する。即ちＢＵＳＹビットを１にセットし、ＤＲＱビットを０にクリアする。そして図１１のＢ７に示すように１２バイトのパケットコマンドを含むデータＦＩＳをデバイス４に送信する。デバイス４は準備が完了すると、データ転送のためのＰＩＯセットアップＦＩＳを送信する。
【００７９】
図１２のＢ８に示すようにデータ転送制御装置は、このＰＩＯセットアップＦＩＳを受信すると、ＰＩＯセットアップＦＩＳ（図８（Ｃ））の転送方向パラメータＤにより、ＰＩＯリード（転送方向がリード方向、転送種別がＰＩＯ）である事を認識する。そして図１２のＢ９及び図１４（Ｂ）に示すように、転送方向、転送種別等の転送シーケンス設定を実行し、フリーラン転送を開始する。
【００８０】
このように本実施形態では、データ転送制御装置（シーケンスコントローラ）は、ＡＴＡＰＩパケットコマンドが発行されて（図１１のＢ５）、ＳＡＴＡＩ／Ｆ５０がコマンドパケットを含むデータＦＩＳをデバイス４に送信し（Ｂ７）、デバイス４からＰＩＯセットアップＦＩＳを受信した場合に、総データ転送数を管理しないフリーラン転送を開始する（図１２のＢ９）。即ちシーケンスコントローラ３０が、転送開始信号（Tran Go）をアクティブにした後、総データ転送数（総セクタ数、ＤＭＡ転送数）のカウント処理を行わないフリーラン転送を開始する。そしてフリーラン転送を終了する場合には、転送停止信号（Tran Stop）をアクティブにする。
【００８１】
このようなフリーラン転送が開始すると、データ転送制御装置（ＰＡＴＡＩ／Ｆ）は、図１２のＢ１０に示すように信号ＤＭＡＲＱをアサートする。即ち図４（Ａ）に示すような信号波形のＤＭＡ転送用の信号を用いて、図１２のＢ１１及び図１４（Ｃ）に示すようにホスト２との間で通常のＤＭＡのデータ転送を行う。
【００８２】
一方、図１２のＢ１２及び図１４（Ｃ）に示すように、デバイス４との間では、ＰＩＯセットアップＦＩＳ及びデータＦＩＳを用いたＰＩＯのデータ転送を行う。
【００８３】
この場合に、図１２のＢ１１、Ｂ１２に示すフリーラン転送においては、シーケンスコントローラ３０は、総データ転送数については管理しない一方で、デバイス４から受信したＰＩＯセットアップＦＩＳに設定された転送カウント（図８（Ｃ）のTransfer Count）に基づいて、各ＰＩＯ転送（ＰＩＯ転送ユニット）の転送バイト数については管理する。このようにすれば、総データ転送数を管理しないフリーラン転送手法を採用した場合にも、適正なデータ転送を実現できる。
【００８４】
そして図１２のＢ１３、Ｂ１４、Ｂ１５及び図１５（Ａ）に示すように、シーケンスコントローラ３０は、フリーラン転送の開始後にデバイス４からレジスタＦＩＳを受信した場合に、フリーラン転送の終了処理を行う。具体的には、転送方向が、ホスト２がデバイス４のデータをリードする方向（ＤＭＡリード）である場合には、Ｂ１３に示すようにデバイス４からレジスタＦＩＳを受信し、Ｂ１４に示すようにＰＡＴＡＩ／Ｆ１０でのデータ転送が完了した後に、フリーラン転送を終了する。例えば図１５（Ａ）に示すように、データバッファ７０からの信号ＦＩＦＯＲｅｍａｉｎにより、データバッファ７０に残りデータが無いことが確認され（ＦＩＦＯエンプティが確認され）、ＰＡＴＡＩ／Ｆ１０からの転送完了割り込み信号ＴＲＡＮＣＭＰにより、ＰＡＴＡＩ／Ｆ１０でのデータ転送の完了が確認された場合に、フリーラン転送を終了する。つまりデータバッファ７０のＦＩＦＯ及びＰＡＴＡＩ／Ｆ１０内のＦＩＦＯの残りデータが無いことが確認された場合に、フリーラン転送を終了する。
【００８５】
なおＤＭＡライトのフリーラン転送では、デバイス４からレジスタＦＩＳを受信した場合に、フリーラン転送の終了処理を行う。一方、ＤＭＡリードでは、レジスタＦＩＳの受信後、ＰＡＴＡバスへのデータ出力が完了した後に、フリーラン転送を終了する。例えばＰＡＴＡＩ／Ｆ１０は、データ転送が完了すると転送完了割り込み信号ＴＲＡＮＣＭＰをシーケンスコントローラ３０に出力し、これによりシーケンスコントローラ３０は、転送の停止信号を出力して、フリーラン転送を終了する。このようにすればホスト２による適正なＤＭＡリードを実現できる。
【００８６】
ＰＡＴＡＩ／Ｆ１０でのＤＭＡのデータ転送及びＳＡＴＡＩ／Ｆ５０でのＰＩＯのデータ転送が完了し、フリーラン転送が終了すると、ＰＡＴＡＩ／Ｆ１０は、図１２のＢ１６に示すように信号ＤＭＡＲＱをネゲートする。そしてシーケンスコントローラ３０は、図１２のＢ１７及び図１５（Ｂ）に示すようにＡＴＡステータスレジスタが５０ｈに設定されたレジスタ値をＳＦＲ５２からＴＦＲ１２に転送する。即ちＢＵＳＹビット及びＤＲＱビットが０にクリアされたレジスタ値を、ＳＦＲ５２からＴＦＲ１２に転送する。これにより、デバイス４側がビジー状態では無いことをホスト２に知らせることができる。
【００８７】
なお本実施形態では、デバイス４との間でのＰＩＯデータ転送の転送バイト数が、ＳＡＴＡのデータ転送単位のバイト数である例えば４バイト未満であり、デバイス４からダミーデータを受信した場合には、ＳＡＴＡＩ／Ｆ５０は、ＰＡＴＡＩ／Ｆ１０側（データバッファ７０）へのダミーデータの出力をマスクする。
【００８８】
例えば図１６（Ａ）〜図１６（Ｅ）では、総データ転送バイト数が１２８×４＋１＝５１３バイトであるデータ転送が行われており、この５１３バイトは、ＳＡＴＡのデータ転送単位（最小データ転送バイト数）である４バイトでは割り切れない。
【００８９】
この場合に図１６（Ａ）〜図１６（Ｄ）では、デバイス４がデータＦＩＳを用いて１２８バイトずつのデータをＳＡＴＡＩ／Ｆ５０に送信し、ＳＡＴＡＩ／Ｆ５０は受信した１２８バイトのデータをデータバッファ１００に出力している。
【００９０】
一方、図１６（Ｅ）では、デバイス４は、最後の１バイトのデータに対して３バイトのダミーデータをパディングして、ＳＡＴＡＩ／Ｆ５０に送信している。この場合にはＳＡＴＡＩ／Ｆ５０は、最後の１バイトのデータのみをデータバッファ７０に出力し、３バイトのダミーデータについてはその出力をマスクする。このようにすれば、ダミーデータがホスト２側に転送されて誤動作等を招く事態を防止できる。
【００９１】
７．フリーラン転送
ＡＴＡのＰＩＯ転送では、各セクタの転送バイト数や総セクタ数（セクタカウント）が設定され、総セクタ数で設定される個数のセクタが転送されると、ＰＩＯ転送が終了する。またＤＭＡ転送では、ＤＭＡ転送数（ＤＭＡデータ転送サイズ）が設定され、ＤＭＡ転送数分のデータが転送されると、ＤＭＡ転送が終了する。従って、ＰＩＯ転送やＤＭＡ転送を行うためには、総セクタ数やＤＭＡ転送数などの総データ転送数のカウント処理を行うカウント回路が必要になる。
【００９２】
しかしながら、このようなカウント回路を設けると、そのカウント回路の分だけデータ転送制御装置の回路が大規模化する。またカウント回路の動作制御（例えばポインタ制御）が必要になり、データ転送制御装置の回路や処理が繁雑化する。
【００９３】
このような問題を解決するために図１４（Ｂ）では、総データ転送数を管理しないフリーラン転送手法を採用している。即ちシーケンスコントローラ３０は、転送開始信号（Tran Go）をアクティブにした後、総データ転送数（総セクタ数、ＤＭＡ転送数）のカウント処理を行わないフリーラン転送を開始する。そしてフリーラン転送を終了する場合には、転送停止信号（Tran Stop）をアクティブにする。
【００９４】
このようなフリーラン転送を行えば、総データ転送数のカウント回路が不要になるため、データ転送制御装置の回路の小規模化を図れる。またカウント回路の動作制御（例えばポインタ制御）も不要になるため、データ転送制御装置の回路や処理を簡素化できる。
【００９５】
この場合に、フリーラン転送では総データ転送数のカウント処理が行われないため、フリーラン転送の終了を判断できないという課題がある。
【００９６】
そこで図１５（Ａ）では、フリーラン転送の開始後にデータ転送制御装置がデバイス４から受信するＦＩＳ(Frame Information Structure)に着目し、この受信ＦＩＳが、総データ転送の終了を示すＦＩＳであると判断した場合に、フリーラン転送の終了処理を行う。具体的には、フリーラン転送を開始した後、デバイス４からレジスタＦＩＳを受信した場合に、フリーラン転送が終了したと判断する。このようにすれば、総データ転送数のカウント処理を行わなくも、フリーラン転送の終了を判断できるようになり、データ転送制御装置の小規模化を図りながら適正なデータ転送制御を実現できる。
【００９７】
またブリッジ機能を有するデータ転送制御装置では、ホスト２が発行したコマンド（ＡＴＡ、ＡＴＡＰＩコマンド）に応じた転送シーケンス制御を行う必要がある。そして転送シーケンス制御の内容をデータ転送制御装置が知るためには、コマンドをデコードする必要があり、そのために、コマンドデコーダやパラメータテーブルが必要になる。即ちホスト２が発行したコマンドをデコードし、転送方向（リード、ライト）や転送種別（ＰＩＯ、ＤＭＡ）を判別し、内部転送シーケンスを決定する。
【００９８】
しかしながら、このようなコマンドデコーダを設けると、データ転送制御装置のロジック回路の大規模化やメモリ容量の増加に繋がる。またコマンドのデコードを行うためには、デコードのためのコマンドテーブルを持たなければならないが、データ転送制御装置の開発終了後に、規格において新規コマンドの追加が発生した場合には、データ転送制御装置の回路修正を行わない限り、新規コマンドをサポートできなくなる。例えばＡＴＡＰＩでは、ブルーレイディスクなどの新しい規格の光ディスクドライブが追加されると、パラメータテーブルの変更が必要になる。従って、開発が終了している既存のデータ転送制御装置を使用できず、パラメータテーブル（テーブルメモリ）を変更するための回路修正が必要になり、余分な開発期間や開発コストがかかってしまう。更にベンダーにユニークな特殊コマンドに対しても、対応することが難しい。
【００９９】
この場合にデータ転送制御装置にＣＰＵ（処理部）を内蔵させ、パラメータテーブルの変更をファームウェア等の書き換えにより実現すれば、新規コマンドが増えたり、コマンドの内容が変更された場合にも、これに対応できる。
【０１００】
しかしながら、データ転送制御装置にＣＰＵを内蔵させると、ＣＰＵ上で動作するファームウェアの開発や、ＣＰＵの動作確認のためのデバッグツールの開発などが必要になってしまい、開発期間の長期化や高コスト化を招く。
【０１０１】
このような問題を解決するための図１３（Ａ）等では、ホスト２が発行したコマンドをデコードすることなくデバイス４に転送する。そしてデバイス４から返送されてきたＦＩＳの情報に基づいて、発行されたコマンドについての転送シーケンスを制御する。即ちコマンドのデコードを、データ転送制御装置が行うのではなく、ＳＡＴＡのデバイス４に行わせる。そしてデータ転送制御装置は、コマンドをデコードせずに（一部をデコードしてもよい）、デバイス４にそのまま転送し、ＳＡＴＡデバイスの反応を観察することで、自身の転送シーケンスを決定して実行する。このようにすることで、データ転送制御装置の回路の小規模化や開発期間の短縮化を図れる。
【０１０２】
なお本実施形態ではＡＴＡＰＩパケットコマンドが特定コマンド（READ10、READ12、READ CD、READ CD MSF、WRITE10、WRITE12）である場合には、ＰＡＴＡ側及びＳＡＴＡ側の両方をＤＭＡ転送モードに設定してもよい。即ちこの場合には、ＡＴＡＰＩパケットコマンドが上記特定コマンドに該当するか否かだけを知るためのコマンドデコードを行う。このようにすれば、高速なデータ転送速度が要求されるこれらの特定コマンドの発行時に、ＳＡＴＡ側は低速なＰＩＯ転送モードではなくＤＭＡ転送モードに設定されるようになるため、データ転送速度が低下するのを防止できる。
【０１０３】
そしてこのようにＳＡＴＡ側もＤＭＡ転送モードに設定してＤＭＡリードを行う場合には、フリーラン転送の開始後にデバイス４からデータＦＩＳを受信した場合に、フリーラン転送が終了したと判断する。またＤＭＡライトでは、フリーラン転送の開始後にＤＭＡアクティベートＦＩＳを受信した場合に、フリーラン転送が終了したと判断する。即ちフリーラン転送開始後に受信したＦＩＳが、総データ転送の終了を示すＦＩＳであると判断した場合に、フリーラン転送を終了する。
【０１０４】
さて、ＳＡＴＡのデータ転送単位は４バイトであるが、ＡＴＡＰＩでは４バイトでは割り切れないデータのペイロード指定が可能になっている。従って、データ転送バイト数が４バイトで割り切れない場合には、デバイス４は、図１６（Ｅ）で説明したようなダミーデータによるパディング処理を行う。
【０１０５】
一方、図１４（Ｂ）〜図１５（Ａ）では、フリーラン転送の開始後、デバイス４から受信したＦＩＳの種類を判断して、フリーラン転送の終了処理を行っている。
【０１０６】
このような総データ転送数を管理しないフリーラン転送を行った場合に、ＰＩＯ転送では、ＰＩＯセットアップＦＩＳに含まれる転送カウントのパラメータに基づき、各ＰＩＯ転送の転送バイト数を管理できる。従って、このように各ＰＩＯ転送の転送バイト数を管理することで、余計なダミーデータがホスト２側に転送されてしまう事態を防止できる。
【０１０７】
ところが、ＤＭＡ転送では、デバイス４側からはＰＩＯセットアップＦＩＳは送られて来ないため、各ＤＭＡ転送の転送バイト数を管理できない。従って、ダミーデータも含めてデータ転送が行われることになり、総データ転送数を管理しないフリーラン転送では、余計なダミーデータがホスト２側に転送されてしまうおそれがある。即ち、ホスト２が指定したデータ転送バイト数と実際に転送されるデータ転送バイト数の整合が取れなくなり、誤動作等が生じるおそれがある。
【０１０８】
この点、図１４（Ｃ）では、ＤＭＡのフリーラン転送時に、ＰＡＴＡ側をＤＭＡ転送モードに設定する一方で、ＳＡＴＡ側をＰＩＯ転送モードに設定している。
【０１０９】
このようにすれば、ＤＭＡ転送であっても、ＰＩＯセットアップＦＩＳの転送カウントを利用することで、ＳＡＴＡ側の各ＰＩＯ転送の転送バイト数を管理できる。従って例えば図１６（Ｅ）のように、ＳＡＴＡＩ／Ｆ５０が余計なダミーデータの出力をマスクすることなどにより、ホスト２側にダミーデータが転送されないようになる。従って、ＡＴＡＰＩのデータ転送においてフリーラン転送の手法を採用した場合にも、ホスト２が指定したデータ転送バイト数と実際に転送されるデータ転送バイト数の整合を取ることができ、誤動作の発生等を防止できる。
【０１１０】
なお図１３（Ｂ）では、ＤＭＡビットを１から０に書き換えてレジスタ値をＴＦＲ１２からＳＦＲ５２に転送することで、ＳＡＴＡ側をＰＩＯ転送モードに設定している。このようにすれば、ＰＡＴＡＩ／Ｆ１０には、図４（Ａ）に示すような信号波形を用いてＤＭＡ転送を行わせる一方で、ＳＡＴＡＩ／Ｆ５０には、実際はＤＭＡ転送であるのにもかかわらず、ＰＩＯセットアップＦＩＳとデータＦＩＳを用いたＰＩＯ転送を行わせることが可能になる。
【０１１１】
また図１１、図１２ではＤＭＡリードの場合の転送シーケンスを説明したが、ＤＭＡライトの場合は、図１２のＢ８においてデータ転送制御装置は、デバイス４からのＰＩＯセットアップＦＩＳの転送方向パラメータＤにより、ＰＩＯライトである事を認識し、Ｂ９においてＰＩＯライトの転送シーケンス設定を行う。そしてＢ１１ではＤＭＡ転送によりホスト２からデータを受信し、Ｂ１２ではデータＦＩＳを用いたＰＩＯ転送によりデバイス４にデータを送信する。そしてＢ１３でデバイス４からレジスタＦＩＳを受信すると、Ｂ１４の処理を行うことなく、Ｂ１５のフリーラン転送の終了処理を実行し、Ｂ１６、Ｂ１７の処理を行うことになる。
【０１１２】
８．ＳＡＴＡＩ／Ｆの構成
図１７にＳＡＴＡＩ／Ｆ５０の構成例を示す。なおＳＡＴＡＩ／Ｆ５０の構成は図１７に限定されず、その構成要素の一部を削除したり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば物理層回路２００を設けない構成としてもよい。
【０１１３】
ＳＡＴＡでは、データは３２ビット（４バイト）単位で処理される。この３２ビットのデータが、リンクコントローラ１５０により８ｂ／１０ｂでエンコードされて４０ビットのデータになり、物理層回路２００に送られる。物理層回路２００は、この４０ビットのデータをシリアル化してＳＡＴＡのケーブルに送信する。受信も逆の手順で、シリアルデータが物理層回路２００で４０ビットのデータに変換され、リンクコントローラ１５０で３２ビットのデータに変換され、トランスポートコントローラ１１０に送られる。
【０１１４】
トランスポートコントローラ１１０はトランスポート層の制御を行うものである。具体的にはトランスポートコントローラ１１０は、上位層（アプリケーション層）からＦＩＳの送信要求が来た時に、以下の処理を行う。
【０１１５】
まずトランスポートコントローラ１１０は、ＦＩＳタイプの要件に基づいてＦＩＳの内容を収集する。また送信する情報をＦＩＳのタイプ毎に定義フォーマットに配置する。次にリンクコントローラ１５０に対して送信要求を通知する。これによりリンクコントローラ１５０はＸ＿ＲＤＹの送信処理を行う。そして相手ノードからのＲ＿ＲＤＹを受信し、リンクコントローラ１５０から受信のアクノリッジが来ると、トランスポートコントローラ１１０はＦＩＳをリンクコントローラ１５０に転送する。そして送信ＦＩＦＯ１２０のフロー管理を行い、必要なフロー制御をリンクコントローラ１５０に通知する。その後、リンクコントローラ１５０から送信結果を受信すると、必要に応じて上位層に送信結果を通知する。
【０１１６】
トランスポートコントローラ１１０は、リンクコントローラ１５０からＦＩＳを受信した時には、以下の処理を行う。
【０１１７】
トランスポートコントローラ１１０は、リンクコントローラ１５０からＦＩＳを受信すると、受信したＦＩＳのタイプを判別する。そしてＦＩＳのタイプに応じた適切なレジスタやＦＩＦＯにデータを転送する。そして受信ＦＩＦＯ１２２のフロー管理を行い、必要なフロー制御をリンクコントローラ１５０に通知する。その後、リンクコントローラ１５０及び上位層（アプリケーション層）に受信結果を通知する。
【０１１８】
リンクコントローラ１５０はリンク層の制御を行うものである。具体的にはリンクコントローラ１５０は、送信時には以下の処理を行う。
【０１１９】
まずリンクコントローラ１５０はトランスポートコントローラ１１０からのデータ（ＦＩＳ）を受け取る。そしてＦＩＳのＣＲＣを生成し、ＦＩＳの最後尾に付加する。次にデータのスクランブルを行い、その後、８ｂ／１０ｂのエンコードを行う。そしてＳＡＴＡ通信のプロトコルにしたがったプリミティブ、ＦＩＳの送信を行う。そして送信結果をトランスポートコントローラ１１０に通知する。
【０１２０】
リンクコントローラ１５０は受信時には以下の処理を行う。即ちリンクコントローラ１５０は物理層回路２００から、８ｂ／１０ｂエンコードキャラクタを受信する。そして８ｂ／１０ｂエンコードキャラクタをデコードし、デコードしたプリミティブを処理部等に通知する。次にデコードしたＦＩＳのデスクランブル処理を行い、ＣＲＣをチェックする。そしてトランスポートコントローラ１１０にデータを渡す。またデコード結果やＣＲＣのチェック結果をトランスポートコントローラ１１０に通知する。
【０１２１】
物理層回路２００は物理層を実現するアナログフロントエンド回路である。この物理層回路２００は、シリアルデータ（シリアルストリーム）の送受信や、シリアルデータからパラレルデータへの変換や、パラレルデータからシリアルデータへの変換を行う。また８ｂ／１０ｂのＫ２８．５キャラクタの検出や、ＯＯＢ(Out Of Band）信号の検出と送信を行う。またデバイスステータス（デバイスの有無、転送状態、パワー状態）の提供や、通信制御用のインターフェース（転送レート制御、ループバック）の提供を行う。またオプションでパワーマネージメントも行う。
【０１２２】
物理層回路（ＰＨＹ）２００はトランスミッタ（ドライバ）２１０、レシーバ２２０、ＯＯＢ検出回路２３０などを含む。
【０１２３】
トランスミッタ２１０は、差動信号線（差動信号線ペア）ＴＸ＋／−を介してシリアルデータ（パケット）の送信を行い、レシーバ２２０は、差動信号線（差動信号線ペア）ＲＸ＋／−を介してシリアルデータ（パケット）の受信を行う。ＴＸ＋／−、ＲＸ＋／−のＳＡＴＡバス（広義にはシリアルバス）では、振幅電圧＋／−２５０ｍＶのＮＲＺ差動信号によるシリアルストリーム転送が行われる。
【０１２４】
ＯＯＢ検出回路２３０はＯＯＢ信号の検出処理を行う。このＯＯＢ信号は、ＳＡＴＡインターフェースのリセット／初期化、通信の確立や、スピード・ネゴシエーションをつかさどる信号である。
【０１２５】
リンクコントローラ１５０は、リンクステート制御回路１６０、フレーム生成回路１９０、フレームデコード回路１９２を含む。
【０１２６】
リンクステート制御回路１６０は、リンクコントローラ１５０のステート制御を行う。例えばリセットステート、アイドルステート、送信ステート、受信ステート等のステート間の遷移処理等を行う。
【０１２７】
フレーム生成回路１９０は、トランスポートコントローラ１１０からの送信データ（ＦＩＳ）や、リンクステート制御回路１６０からの送信制御信号などに基づいてフレームの生成処理を行う。具体的には、トランスポートコントローラ１１０からのＦＩＳのＣＲＣを演算したり、スクランブル処理を行ったり、８ｂ／１０ｂエンコード処理を行ったり、プリミティブを生成して付加する処理などを行う。
【０１２８】
フレームデコード回路１９２は、受信したフレームの解析（分解）処理を行い、受信解析信号（パワーダウンリクエスト信号等）をリンクステート制御回路１６０に出力する。具体的には、ＦＩＳに付加されたプリミティブを解析したり、８ｂ／１０ｂのデコード処理を行ったり、デスクランブル処理を行ったり、ＣＲＣを演算してチェックする処理などを行う。
【０１２９】
トランスポートコントローラ１１０は、割りこみコントローラ１１８、ＤＭＡ制御回路１１９、送信ＦＩＦＯ１２０、受信ＦＩＦＯ１２２、ＦＩＳ生成回路１３０、ＦＩＳデコード回路１３２、トランスポートステート制御回路１４０を含む。
【０１３０】
割り込みコントローラ１１８は、デバイス４からの受信ＦＩＳ情報などを知らせるための割り込み信号を生成する。ＤＭＡ制御回路１１９は、ＦＩＳに含まれる送信データや受信データ（コンテンツ・データ）のＤＭＡ転送を制御する。送信ＦＩＦＯ１２０は、ＤＭＡ制御回路１１９からの送信データのバッファとなるＦＩＦＯである。受信ＦＩＦＯ１２２は、リンクコントローラ１５０からの受信データのバッファとなるＦＩＦＯである。ＦＩＳ生成回路１３０はＦＩＳの生成を行う回路であり、ＦＩＳデコード回路１３２はＦＩＳの解析を行う回路である。トランスポートステート制御回路１４０は、トランスポートコントローラ１１０のステート制御を行う。
【０１３１】
９．シーケンスコントローラ
図１８にシーケンスコントローラ３０の構成例を示す。シーケンスコントローラ３０はレジスタ更新部３２、初期化シーケンス管理部３４、パラメータ書き換え部３６、ＤＭＡモード設定記憶部３８、転送制御部４０を含む。なおシーケンスコントローラ３０の構成は図１８に限定されず、その構成要素の一部を削除したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【０１３２】
レジスタ更新部３２はＴＦＲ１２（タスクファイル・レジスタ）、ＳＦＲ５２（シャドウ・タスクファイル・レジスタ）のレジスタ値の更新処理を行う。具体的にはＴＦＲ１２のレジスタ値をＳＦＲ５２に転送してＳＦＲ５２のレジスタ値を更新したり、ＳＦＲ５２のレジスタ値をＴＦＲ１２に転送してＴＦＲ１２のレジスタ値を更新する。
【０１３３】
例えばＴＦＲ１２にホスト２によりＡＴＡコマンドが書き込まれると、ＰＡＴＡＩ／Ｆ１０はコマンドライト検出信号をアクティブにする。そしてコマンドライト検出信号がアクティブになると、レジスタ更新部３２はＴＦＲ１２のレジスタ値をＳＦＲ５２に転送する処理を行う。
【０１３４】
またＳＡＴＡＩ／Ｆ５０は、デバイス４から受信したＦＩＳをデコードし、デコード結果に基づいて、ＦＩＳの種類を知らせるための割り込み信号（広義には受信ＦＩＳ情報）を生成して出力する。レジスタ更新部３２は、この割り込み信号に基づいて受信ＦＩＳの種類を判別して、ＳＦＲ５２からＴＦＲ１２へのレジスタ値の転送処理などを行って、レジスタ値の更新処理を行う。
【０１３５】
初期化シーケンス管理部３４は、ＨＲＳＴ（ハードリセット）、ＳＲＳＴ（ソフトリセット）に伴う初期化シーケンスを管理する。具体的には、マスター、スレーブなどの設定をモニタして、ＰＡＴＡの初期化シーケンスを管理する。
【０１３６】
パラメータ書き換え部３６は、ホスト２がデバイス４に対してアイデンティファイ・デバイス・コマンドを発行し、デバイス４からデバイス情報のパラメータを受信した場合に、パラメータの書き換え処理を行う。即ち転送速度などのパラメータを自身が対応可能なパラメータに書き換える。
【０１３７】
ＤＭＡモード設定記憶部３８は、ホスト２がセットフューチャー・コマンドを発行した場合に、セットフューチャー・コマンドを解析して、ＤＭＡ転送のモード設定を記憶する。
【０１３８】
転送制御部４０はデータ転送制御装置の転送シーケンスを制御するものであり、モニタ部４２、制御信号生成部４４を含む。モニタ部４２は、ＰＡＴＡＩ／Ｆ１０からのコマンドライト検出信号や、ＳＡＴＡＩ／Ｆ５０からの割り込み信号（受信ＦＩＳ情報）などの信号をモニタする。そして制御信号生成部４４は、モニタ結果に基づいて、転送方向設定信号、転送開始信号、転送停止信号などの制御信号を生成し、ＰＡＴＩ／Ｆ１０、データバッファ７０、ＳＡＴＡＩ／Ｆ５０に出力して、転送シーケンス制御を実行する。なおデータバッファ７０に対しては転送開始信号、転送停止信号は出力せず、転送方向設定信号を出力する。
【０１３９】
１０．電子機器
図１９に本実施形態の電子機器の構成例を示す。この電子機器は、本実施形態で説明したデータ転送制御装置３１０とホスト３０２とデバイス３０４を含む。ホスト３０２とデータ転送制御装置３１０はＰＡＴＡバスを介して接続され、データ転送制御装置３１０とデバイス３０４はＳＡＴＡバスを介して接続される。なお本実施形態の電子機器の構成は図１９に限定されず、その構成要素の一部を省略したり、他の構成要素を付加する変形実施が可能である。
【０１４０】
同図においてデバイス３０４は、ＨＤＤ（ハードディスクドライブ）等のストレージデバイスや、光ディスクドライブ（ＣＤ、ＤＶＤ）等である。
【０１４１】
ホスト３０２は、処理部３３０（ＣＰＵ）、ＲＯＭ３４０、ＲＡＭ３５０、表示部３６０、操作部３７０を含むことができる。処理部３３０（ＣＰＵ）はデータ転送制御装置３１０や電子機器の全体制御を行う。なおデータ転送制御装置３１０を制御する処理部と、電子機器を制御する処理部とを別々に設けてもよい。ＲＯＭ３４０は制御プログラムや各種データを記憶する。ＲＡＭ３５０は処理部３３０やデータ転送制御装置３１０のワーク領域やデータ格納領域として機能する。表示部３６０は種々の情報をユーザに表示する。操作部３７０はユーザが電子機器を操作するためのものである。
【０１４２】
本実施形態の電子機器によれば、ホスト３０２がＳＡＴＡＩ／Ｆを有していない場合にも、データ転送制御装置３１０を介してＳＡＴＡのデバイス３０４をホスト３０２に接続して、あたかもＰＡＴＡのデバイスのように扱うことが可能になる。
【０１４３】
なお、本実施形態を適用できる電子機器としては、カーナビゲーションシステム、車載用オーディオ機器、ＨＤＤレコーダ、ビデオカメラ、携帯型音楽プレーヤ、携帯型映像プレーヤ、ゲーム装置、又は携帯型ゲーム装置等の種々のものが考えられる。
【０１４４】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またデータ転送制御装置、電子機器の構成、動作も本実施形態で説明したものに限定に限定されず、種々の変形実施が可能である。また本実施形態では、ＳＡＴＡへの本発明の適用例について説明したが、本発明は、ＳＡＴＡと同様の思想に基づく規格や、ＳＡＴＡ（ＳＡＴＡ Ｉ、ＳＡＴＡ II、ＳＡＳ）を発展させた規格等にも適用できる。
【図面の簡単な説明】
【０１４５】
【図１】本実施形態のデータ転送制御装置の構成例。
【図２】本実施形態のデータ転送制御装置の詳細な構成例。
【図３】図３（Ａ）、図３（Ｂ）はＰＩＯリード、ＰＩＯライトの信号波形例。
【図４】図４（Ａ）、図４（Ｂ）はＤＭＡリード、ＤＭＡライトの信号波形例。
【図５】ＳＡＴＡの送信側のデータ処理の説明図。
【図６】ＳＡＴＡの受信側のデータ処理の説明図。
【図７】タスクファイル・レジスタのフォーマット例。
【図８】図８（Ａ）〜図８（Ｄ）はＦＩＳのフォーマット例。
【図９】図９（Ａ）、図９（Ｂ）はＡＴＡやＡＴＡＰＩのコマンドプロトコルの説明図。
【図１０】図１０（Ａ）、図１０（Ｂ）はパケットコマンドのパラメータやステータスレジスタの例。
【図１１】本実施形態の手法を説明するための転送シーケンス図。
【図１２】本実施形態の手法を説明するための転送シーケンス図。
【図１３】図１３（Ａ）〜図１３（Ｃ）は本実施形態の手法の説明図。
【図１４】図１４（Ａ）〜図１４（Ｃ）は本実施形態の手法の説明図。
【図１５】図１５（Ａ）、図１５（Ｂ）は本実施形態の手法の説明図。
【図１６】図１６（Ａ）〜図１６（Ｅ）はダミーデータの出力のマスク手法の説明図。
【図１７】ＳＡＴＡＩ／Ｆの構成例。
【図１８】シーケンスコントローラの構成例。
【図１９】電子機器の構成例。
【符号の説明】
【０１４６】
２  ホスト、４  デバイス、１０  ＰＡＴＡＩ／Ｆ、
１２  タスクファイル・レジスタ（ＴＦＲ）、１４  転送コントローラ、
３０  シーケンスコントローラ、３２  レジスタ更新部、３４  初期化シーケンス管理部、
３６  パラメータ書き換え部、３８  ＤＭＡ転送設定記憶部、４０  転送制御部、
４２  モニタ部、４４  制御信号生成部、５０  ＳＡＴＡＩ／Ｆ、
５２  シャドウ・タスクファイル・レジスタ（ＳＦＲ）、７０  データバッファ、
７２  メモリコントローラ、７４  ＦＩＦＯメモリ、
１１０  トランスポートコントローラ、１１８  割りこみコントローラ、
１２０  送信ＦＩＦＯ、１２２  受信ＦＩＦＯ、１３０  ＦＩＳ生成回路、
１３２  ＦＩＳデコード回路、１５０  リンクコントローラ、
１６０  リンクステート制御回路、１９０  フレーム生成回路、
１９２  フレームデコード回路、２００  物理層回路、２１０  トランスミッタ、
２２０  レシーバ、２３０  ＯＯＢ検出回路
【図１】
2008293154.tif 000003
【図２】
2008293154.tif 000004
【図３】
2008293154.tif 000005
【図４】
2008293154.tif 000006
【図５】
2008293154.tif 000007
【図６】
2008293154.tif 000008
【図７】
2008293154.tif 000009
【図８】
2008293154.tif 000010
【図９】
2008293154.tif 000011
【図１０】
2008293154.tif 000012
【図１１】
2008293154.tif 000013
【図１２】
2008293154.tif 000014
【図１３】
2008293154.tif 000015
【図１４】
2008293154.tif 000016
【図１５】
2008293154.tif 000017
【図１６】
2008293154.tif 000018
【図１７】
2008293154.tif 000019
【図１８】
2008293154.tif 000020
【図１９】
2008293154.tif 000021