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