(57)【特許請求の範囲】
【請求項１】
バスを介してデータ転送を行うためのデータ転送制御装置であって、
機器情報及びデータ転送制御プログラム情報の少なくとも一方を記憶するための不揮発性メモリのリライト領域に、情報を書き込むリライタ部と、
前記リライタ部の処理を開始させるリライタ起動部とを含み、
前記リライタ起動部は、第２のバスに対するデバイスの未接続が検出された場合に、前記リライタ部の処理を開始させ、
前記リライタ部は、前記機器情報及び前記データ転送制御プログラム情報の少なくとも一方を、第１のバスを介して接続されるホストから、前記不揮発性メモリの前記リライト領域に、ダウンロードし、
前記機器情報は、データ転送制御装置が組み込まれる電子機器に固有の情報であることを特徴とするデータ転送制御装置。
【請求項２】
請求項１において、
第２のバスのデバイスが有するレジスタへのアクセス結果に基づいて、第２のバスにデバイスが接続されているか否かを検出することを特徴とするデータ転送制御装置。
【請求項３】
請求項１又は２において、
リライト領域に情報をダウンロードするモードでは、
前記リライタ部が、第１のバスに接続されるホストとの間でデータ転送を行うことで、リライト領域に情報を書き込むことを特徴とするデータ転送制御装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
リライト領域に情報をダウンロードするモードとは異なる通常動作モードでは、
第１のバスを介してホストから転送されるデータを第２のバスを介してデバイスに転送し、第２のバスを介してデバイスから転送されるデータを第１のバスを介してホストに転送することを特徴とするデータ転送制御装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記不揮発性メモリが、データ転送制御プログラム情報がリライト領域に正常に書き込まれた否かを示すための情報を記憶する領域を有することを特徴とするデータ転送制御装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記不揮発性メモリが、リライタ部の処理をイネーブル又はディスエーブルに設定するためのリライタ処理設定情報を記憶する領域を有し、
前記リライタ処理設定情報が、初期状態においてはイネーブルに設定され、リライタ部の処理が終了するとディスエーブルに設定されることを特徴とするデータ転送制御装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
第１のバスが、第１のインターフェース規格によりデータ転送が行われるバスであり、第２のバスが、第２のインターフェース規格によりデータ転送が行われるバスであることを特徴とするデータ転送制御装置。
【請求項８】
請求項１乃至７のいずれかのデータ転送制御装置と、
第２のバスに接続されるデバイスと、
を含むことを特徴とする電子機器。
【請求項９】
機器情報及びデータ転送制御プログラム情報の少なくとも一方を記憶するための不揮発性メモリのリライト領域に、情報を書き込むリライタ部と、
前記リライタ部の処理を開始させるリライタ起動部として、
データ転送制御装置を機能させるプログラムであって、
前記リライタ起動部は、第２のバスに対するデバイスの未接続が検出された場合に、前記リライタ部の処理を開始させ、
前記リライタ部は、前記機器情報及び前記データ転送制御プログラム情報の少なくとも一方を、第１のバスを介して接続されるホストから、前記不揮発性メモリの前記リライト領域に、ダウンロードし、
前記機器情報は、データ転送制御装置が組み込まれる電子機器に固有の情報であることを特徴とするプログラム。
【請求項１０】
請求項９において、
第２のバスのデバイスが有するレジスタへのアクセス結果に基づいて、第２のバスにデバイスが接続されているか否かが検出されることを特徴とするプログラム。
【請求項１１】
請求項９又は１０において、
前記不揮発性メモリが、リライタ部の処理をイネーブル又はディスエーブルに設定するためのリライタ処理設定情報を記憶する領域を有し、
前記リライタ処理設定情報が、初期状態においてはイネーブルに設定され、リライタ部の処理が終了するとディスエーブルに設定されることを特徴とするプログラム。
【請求項１２】
不揮発性メモリのリライト領域に情報を書き込むリライタ部を有するデータ転送制御装置と、前記データ転送制御装置に接続される第２のバスと、前記第２のバスを介して前記データ転送制御装置と接続されるデバイスとを含む電子機器の製造方法であって、
前記データ転送制御装置と前記デバイスとを未接続にし、
前記データ転送制御装置と前記デバイスとが未接続の場合に、前記リライタ部にリライタ処理を開始させ、
前記リライタ処理により、機器情報及びデータ転送制御プログラム情報の少なくとも一方を記憶するためのリライト領域に、第１のバスを介して転送される情報をダウンロードして情報を書き込むことで、前記第２のバスに対するデバイスの未接続が検出された場合に、前記機器情報及び前記データ転送制御プログラム情報の少なくとも一方を、前記第１のバスを介して接続されるホストから、前記不揮発性メモリの前記リライト領域にダウンロードし、
前記リライト領域への情報のダウンロード後に、前記データ転送制御装置の前記第２のバスとデバイスとを接続し、
前記機器情報は、データ転送制御装置が組み込まれる電子機器に固有の情報であること、を特徴とする電子機器の製造方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送制御装置、電子機器、プログラム、及び電子機器の製造方法に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
近年、ＩＥＥＥ１３９４と呼ばれるインターフェース規格が脚光を浴びている。このＩＥＥＥ１３９４のバスには、ハードディスクドライブ、光ディスクドライブ、プリンタ、スキャナなどのコンピュータの周辺機器のみならず、ビデオカメラ、ＶＴＲ、ＴＶなどの家庭用電化製品も接続できる。このため、電子機器のデジタル化を飛躍的に促進できるものとして期待されている。
【０００３】
そして、このＩＥＥＥ１３９４等のインターフェースを備えた電子機器においては、電子機器に固有の識別情報であるＧＵＩＤを持つ必要がある。このため、工場出荷時に、このＧＵＩＤ（Global Unique ID）、コンフィギュレーションＲＯＭ（ConfigurationROM）情報などの機器情報を電子機器のフラッシュメモリ（広義には不揮発性メモリ）に書き込む工程が必要になる。
【０００４】
しかしながら、この機器情報の書き込みは、１台１台の電子機器に対して行う必要があるため、製造工程のなるべく前半の工程で行うことが望ましい。具体的には、データ転送制御装置のＬＳＩがマウントされる基板に対して、ＣＤドライブやハードディスクドライブなどのストレージデバイスのユニットを接続する前に、機器情報を書き込むことが望ましい。
【０００５】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、機器情報等を簡易に書き込むことができるデータ転送制御装置、電子機器、プログラム、及び電子機器の製造方法を提供することにある。
【０００６】
【課題を解決するための手段】
本発明は、バスを介してデータ転送を行うためのデータ転送制御装置であって、機器情報及びデータ転送制御プログラム情報の少なくとも一方を記憶するための不揮発性メモリのリライト領域に、第１のバスを介して転送される情報をダウンロードし、リライト領域に情報を書き込むリライタ部と、第２のバスにデバイスが未接続であることが検出された場合に、リライタ部の処理を開始させるリライタ起動部とを含むデータ転送制御装置に関係する。
【０００７】
本発明によれば、第２のバスにデバイスが未接続（不存在）であることが検出されると、リライタ（rewriter）部の処理が開始する（リライタ部が起動する）。そして、第１のバスを介して転送される情報がダウンロードされてリライト領域に書き込まれる。従って、第２のバスにデバイスが未接続の場合には、機器情報やデータ転送制御プログラム情報が、リライタ領域に自動的に書き込まれるようになる。これにより、機器情報等を簡易に書き込むことができるデータ転送制御装置を実現できる。
【０００８】
なお、この場合の機器情報としては、例えば、電子機器やデータ転送制御装置を識別するための情報やデータ転送制御時に必要な機器情報などがある。また、データ転送制御プログラム情報としては、例えば、第１のバスを介したデータ転送を制御するプログラムの情報などがある。この場合のデータ転送制御プログラムには、第１のバス用の第１のインターフェース規格の上位の第１のプロトコルのデータ転送制御プログラムを含めることができる。
【０００９】
また本発明では、第２のバスのデバイスが有するレジスタへのアクセス結果に基づいて、第２のバスにデバイスが接続されているか否かを検出してもよい。
【００１０】
この場合のレジスタへのアクセスは、レジスタへのライトでもよいし、リードもよいし、その両方でもよい。また、第２のバスのデバイスが有するレジスタとしては、第２のバス用の第２のインターフェース規格において定義されるレジスタを採用できる。
【００１１】
また本発明では、リライト領域に情報をダウンロードするモードでは、前記リライタ部が、第１のバスに接続されるホストとの間でデータ転送を行うことで、リライト領域に情報を書き込んでもよい。
【００１２】
この場合、ダウンロードモード時における第１のバスを介したデータ転送は、例えば第１のインターフェース規格により実現できる。
【００１３】
また本発明では、リライト領域に情報をダウンロードするモードとは異なる通常動作モードでは、第１のバスを介してホストから転送されるデータを第２のバスを介してデバイスに転送し、第２のバスを介してデバイスから転送されるデータを第１のバスを介してホストに転送してもよい。
【００１４】
このようにすることで、いわゆるバスブリッジ機能を実現できる。
【００１５】
また本発明では、前記機器情報が、データ転送制御装置が組み込まれる電子機器に固有の識別情報を含んでもよい。
【００１６】
このようにすれば、当該電子機器を他の電子機器に対して第１のバスを介して接続した場合に、他の電子機器が当該電子機器を容易に識別できるようになる。
【００１７】
また本発明では、前記不揮発性メモリが、データ転送制御プログラム情報がリライタ領域に正常に書き込まれたか否かを示すための情報を記憶する領域を有してもよい。
【００１８】
このようにすれば、誤ったデータ転送制御プログラム情報がリライタ領域に書き込まれてしまう事態を防止できる。
【００１９】
また本発明では、前記不揮発性メモリが、リライタ部の処理をイネーブル又はディスエーブルに設定するためのリライタ処理設定情報を記憶する領域を有し、前記リライタ処理設定情報が、初期状態においてはイネーブルに設定され、リライタ部の処理が終了するとディスエーブルに設定されるようにしてもよい。
【００２０】
このようにリライタ処理設定情報を初期状態においてイネーブルに設定すれば、他の処理を省略して直ぐにリライタ処理に移行することが可能になる。
【００２１】
また本発明では、第１のバスが、第１のインターフェース規格によりデータ転送が行われるバスであり、第２のバスが、第２のインターフェース規格によりデータ転送が行われるバスであってもよい。
【００２２】
また本発明は、上記のいずれかのデータ転送制御装置と、第２のバスに接続されるデバイスとを含む電子機器に関係する。
【００２３】
また本発明は、機器情報及びデータ転送制御プログラム情報の少なくとも一方を記憶するための不揮発性メモリのリライト領域に、第１のバスを介して転送される情報をダウンロードし、リライト領域に情報を書き込むリライタ部と、第２のバスにデバイスが未接続であることが検出された場合に、リライタ部の処理を開始させるリライタ起動部として、データ転送制御装置を機能させるプログラムに関係する。
【００２４】
また本発明は、データ転送制御装置とデータ転送制御装置の第２のバスに接続されるデバイスとを含む電子機器の製造方法であって、データ転送制御装置の第２のバスとデバイスとを未接続にし、第２のバスとデバイスとが未接続の時に起動するリライタ処理を開始させ、リライタ処理により、機器情報及びデータ転送制御プログラム情報の少なくとも一方を記憶するためのリライト領域に、第１のバスを介して転送される情報をダウンロードし、リライト領域に情報を書き込み、リライト領域への情報の書き込み後に、データ転送制御装置の第２のバスとデバイスとを接続する電子機器の製造方法に関係する。
【００２５】
【発明の実施の形態】
以下、本発明の実施形態について詳細に説明する。
【００２６】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００２７】
１．ＩＥＥＥ１３９４、ＳＢＰ-2
１．１  層構造
ＩＥＥＥ１３９４のトランザクション層の一部の機能を含む上位のプロトコルとして、ＳＢＰ-2（Serial Bus Protocol-2）と呼ばれるプロトコルが提案されている。このＳＢＰ-2（広義にはＳＢＰ）は、ＳＣＳＩ（ＭＭＣ−２）のコマンドセットをＩＥＥＥ１３９４のプロトコル上で利用可能にするために提案されたものである。このＳＢＰ-2を用いれば、既存のＳＣＳＩ規格対応の電子機器で使用されていたコマンドセットに最小限の変更を加えて、ＩＥＥＥ１３９４規格の電子機器に使用できるようになる。従って、電子機器の設計や開発を容易化できる。
【００２８】
図１に、ＩＥＥＥ１３９４、ＳＢＰ-2の層構造（プロトコル・スタック）を簡略化して示す。
【００２９】
ＩＥＥＥ１３９４（ＩＥＥＥ１３９４−１９９５、Ｐ１３９４ａ、Ｐ１３９４ｂ等）のプロトコルは、トランザクション層、リンク層、物理層により構成される。
【００３０】
トランザクション層は、上位層にトランザクション単位のインターフェース（サービス）を提供し、下層のリンク層が提供するインターフェースを通して、リードトランザクション、ライトトランザクション、ロックトランザクション等のトランザクションを実施する。
【００３１】
ここで、リードトランザクションでは、応答ノードから要求ノードにデータが転送される。一方、ライトトランザクションでは、要求ノードから応答ノードにデータが転送される。またロックトランザクションでは、要求ノードから応答ノードにデータが転送され、応答ノードがそのデータに処理を施して要求ノードに返信する。
【００３２】
リンク層は、アドレッシング、データチェック、パケット送受信のためのデータフレーミング、アイソクロナス転送のためのサイクル制御などを提供する。
【００３３】
物理層は、リンク層により使用されるロジカルシンボルの電気信号への変換や、バスの調停や、バスの物理的インターフェースを提供する。
【００３４】
ＳＢＰ-2層は、図１に示すように、ＩＥＥＥ１３９４（広義には第１のインターフェース規格）のトランザクション層の一部の機能を含む上位のプロトコルを提供する。
【００３５】
１．２  ＳＢＰ-2の処理
図２に、ＳＢＰ-2（広義には第１のインターフェース規格の上位の第１のプロトコル）の処理の全体についてのフローチャートを示す。
【００３６】
図２に示すように、ＳＢＰ-2では、まず、接続機器の確認を行うためのコンフィギュレーションＲＯＭ情報のリード処理が行われる（ステップＴ１）。
【００３７】
次に、イニシエータ（例えばパーソナルコンピュータ）が、ターゲット（例えばストレージデバイス）に対するアクセス権（リクエスト開始の許可。バスの使用権）を獲得するためのログイン処理が行われる（ステップＴ２）。具体的には、イニシエータにより作成されたログインＯＲＢ（Operation Request Block）を用いてログイン処理が行われる。
【００３８】
次に、フェッチエージェントの初期化が行われる（ステップＴ３）。そして、コマンドブロックＯＲＢ（ノーマルコマンドＯＲＢ）を用いてコマンド処理が行われ（ステップＴ４）、最後に、ログアウトＯＲＢを用いてログアウト処理が行われる（ステップＴ５）。
【００３９】
ここで、ステップＴ４のコマンド処理においては、図３のＡ１に示すように、イニシエータがライト要求パケットを転送して（ライト要求トランザクションを発行して）、ターゲットのドアベルレジスタをリングする。すると、Ａ２に示すように、ターゲットがリード要求パケットを転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータが作成したＯＲＢ（コマンドブロックＯＲＢ）が、ターゲットのデータバッファ（パケットバッファ）にフェッチされる。そして、ターゲットは、フェッチされたＯＲＢに含まれるコマンドを解析する。
【００４０】
そして、ＯＲＢに含まれるコマンドがＳＣＳＩのライトコマンドであった場合には、Ａ３に示すように、ターゲットがリード要求パケットをイニシエータに転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータのデータバッファに格納されているデータがターゲットに転送される。そして、例えばターゲットがストレージデバイスであった場合には、転送されたデータがストレージデバイスに書き込まれる。
【００４１】
一方、ＯＲＢに含まれるコマンドがＳＣＳＩのリードコマンドであった場合には、図４のＢ１に示すように、ターゲットは、一連のライト要求パケットをイニシエータに転送する。これにより、例えばターゲットがストレージデバイスであった場合には、ストレージデバイスから読み出されたデータが、イニシエータのデータバッファに転送されることになる。
【００４２】
このＳＢＰ-2によれば、ターゲットは、自身が都合の良いときに要求パケットを転送して（トランザクションを発行して）、データを送受信できる。従って、イニシエータとターゲットが同期して動く必要がなくなるため、データ転送効率を高めることができる。
【００４３】
なお、ＩＥＥＥ１３９４の上位プロトコルとしては、ストレージデバイスやプリンタのデータの転送に最適なＳＢＰ-2以外にも、映像や音声のデータの転送に最適なＡＶ／Ｃコマンドが提案されている。また、ＩＥＥＥ１３９４バス上で、インターネットプロトコル（ＩＰ）のパケットを転送するものとしてＩＰｏｖｅｒ１３９４と呼ばれるプロトコルも提案されている。
【００４４】
１．３  電子機器への組み込み
さて、本実施形態のデータ転送制御装置１０は図５（Ａ）に示すように、ＩＥＥＥ１３９４（ＳＢＰ-2）に準拠したＢＵＳ１（第１のバス）とＡＴＡ（ＩＤＥ）／ＡＴＡＰＩに準拠したＢＵＳ２（第２のバス）との間のバスブリッジ機能を有している。ここで、ＡＴＡ（AT Attachment）は、主にハードディスク用のインターフェース規格として広く用いられているものであり、ＡＴＡＰＩ（ATA Packet Interface）は、ＡＴＡをＣＤドライブなどの光ディスクドライブでも使用できるようにしたインターフェース規格である。
【００４５】
図５（Ａ）に示すようなバスブリッジ機能を実現できるデータ転送制御装置１０は、ＰＣ（ホスト、パーソナルコンピュータ）から転送されてくるＯＲＢ（広義にはコマンドパケット）が含むＳＣＳＩ（ＭＭＣ-2）のコマンドを、ＡＴＡＰＩのコマンドとしてストレージデバイス１００（広義にはデバイス）に発行する。そして、ストレージデバイス１００との間のデータ転送を実現する。
【００４６】
このようなバスブリッジ機能をデータ転送制御装置１０に持たせることで、ＡＴＡ／ＡＴＡＰＩのインターフェースしか備えていないストレージデバイス１００に、ＩＥＥＥ１３９４のインターフェース機能を持たせることができる。これにより、ストレージデバイス１００が組み込まれる電子機器の商品価値を高めることができる。
【００４７】
さて、図５（Ｂ）に示すように、このようなストレージデバイス１００が組み込まれる電子機器８では、その製造時（工場出荷時）に、ＧＵＩＤ（Global Unique ID）、コンフィギュレーションＲＯＭ（ConfigurationROM）情報などの機器情報（電子機器やデータ転送制御装置に固有の情報）を、例えばデータ転送制御装置１０（ＬＳＩチップ）の内蔵フラッシュメモリ４４に書き込む必要がある。このような機器情報を書き込んでおけば、電子機器８を他の電子機器に接続した時に適正なデータ転送を実現できる。また、ＳＢＰ-2（ＩＥＥＥ１３９４）のデータ転送を制御するＳＢＰ-2（ＳＢＰ）用ファームウェア（広義にはデータ転送制御プログラム）の修正を行う場合や、電子機器メーカがメーカ専用のＳＢＰ-2用ファームウェアを使用する場合にも、ＳＢＰ-2用ファームウェアをフラッシュメモリ４４に書き込んで更新する必要がある。
【００４８】
この場合に図５（Ｂ）では、ＳＢＰ-2のデータ転送を利用して、機器情報やＳＢＰ-2用ファームウェアをフラッシュメモリ４４に書き込んでいる。
【００４９】
より具体的には、工場のＰＣのＩＥＥＥ１３９４ポートを、データ転送制御装置１０がマウントされる基板（サーキットボード）９のＩＥＥＥ１３９４ポートに接続する。そして、通常動作モード（通常にデータ転送を行うモード）からダウンロードモード（フラッシュメモリ４４に情報を書き込むモード）に移行するためのコマンドをＳＢＰ-2のＯＲＢに含ませて、工場のＰＣからデータ転送制御装置１０に転送する。すると、フラッシュメモリ４４への情報の書き込みを行うリライタ（リライタ部、リライタモジュール）が起動し、機器情報やＳＢＰ-2用ファームウェアの書き込み処理を行う。
【００５０】
このように図５（Ｂ）では、ＳＢＰ-2転送を利用してフラッシュメモリ４４に情報を書き込んでいるため、データ転送制御装置１０（基板９）をストレージデバイス１００（ストレージユニット）に接続した状態でＢＵＳ１を介した転送を行う必要がある。ＳＢＰ-2転送を行うためにはストレージデバイス１００の情報等が必要になるが、ストレージデバイス１００が未接続では、このような情報を得ることができないからである。また、ＰＣのシステムの認識対象は、あくまでもストレージデバイス１００であって、データ転送制御装置１０はバスブリッジ機能を有するデバイスにすぎないからである。
【００５１】
このため図５（Ｂ）の手法では、データ転送制御装置１０がマウントされる基板９をストレージデバイス１００に接続する製造工程の後に、機器情報の書き込みを行わなければならない。このため、機器情報の書き込みを前半の製造工程で行うことができず、製造工程の繁雑化・長期化や電子機器の高コスト化等を招くという問題がある。
【００５２】
本実施形態では以上のような課題を解決するために、以下に説明するような構成のデータ転送制御装置を採用している。
【００５３】
２．全体構成
図６に、本実施形態のデータ転送制御装置及びこれを含む電子機器の全体構成例を示す。なお、以下では、イニシエータとの間でデータ転送を行うターゲットがストレージデバイス（ＣＤドライブ、ＤＶＤドライブ、ハードディスクドライブ等）である場合について例にとり説明するが、本発明はこれに限定されない。
【００５４】
データバッファ４を有するＰＣ（ホスト、パーソナルコンピュータ）と電子機器８は、ＩＥＥＥ１３９４に準拠したＢＵＳ１（第１のバス）により接続される。そして、電子機器８は、データ転送制御装置１０とストレージデバイス１００（広義にはデバイス）を有する。
【００５５】
なお、電子機器８には、図示しないシステムＣＰＵ、システムメモリ（ＲＯＭ、ＲＡＭ）、操作部、或いは信号処理デバイス等を含めることができる。
【００５６】
また、ＰＣは、ＯＳ（Operation System）のデバイスドライバとして機能するダウンローダホスト部６を含む。このダウンローダホスト部６は、ＰＣが有するＣＰＵと、ダウンローダホスト・プログラム（ダウンローダホストモジュール）により実現される。このダウンローダホスト・プログラム（ドライバキット）は、ＰＣにより読み取り可能な情報記憶媒体（ＣＤ、ＤＶＤ）やインターネット（通信回線）を介して提供できる。
【００５７】
データ転送制御装置１０は、物理層（ＰＨＹ）回路１４、リンク層回路２０、ＳＢＰ-2回路２２、インターフェース回路３０、パケット管理回路３８、バケットバッファ４０（データバッファ）を含む。また、ＣＰＵ４２、フラッシュメモリ４４（ＥＥＰＲＯＭ）を含む。また、フラッシュメモリ４４にその処理モジュール（プログラム）が記憶され、ＣＰＵ４２（広義にはプロセッサ）により実行されるファームウェア５０を含む。なお、本実施形態のデータ転送制御装置１０は、図６に示す全ての回路ブロック、機能ブロックを含む必要はなく、その一部を省略してもよい。
【００５８】
物理層回路１４は、図１の物理層のプロトコルをハードウェアにより実現するための回路であり、リンク層回路２０により使用されるロジカルシンボルを電気信号に変換する機能を有する。
【００５９】
リンク（＆トランザクション）層回路２０は、図１のリンク層のプロトコルやトランザクション層のプロトコルの一部をハードウェアにより実現するための回路であり、ノード間でのパケット転送のための各種サービスを提供する。
【００６０】
これらの物理層回路１４、リンク層回路２０の機能により、ＩＥＥＥ１３９４に準拠したデータ転送を、ＢＵＳ１（第１のバス）を介してＰＣ（広義には電子機器）との間で行うことが可能になる。
【００６１】
ＳＢＰ-2回路２２（転送実行回路）は、ＳＢＰ-2のプロトコルの一部やトランザクション層の一部をハードウェアにより実現する回路である。このＳＢＰ-2回路２２の機能により、転送データを一連のパケットに分割し、分割された一連のパケットを連続転送する処理が可能になる。
【００６２】
インターフェース回路３０は、ストレージデバイス１００とのインターフェース処理を行う回路である。このインターフェース回路３０の機能により、ＡＴＡ（AT Attachment）、ＡＴＡＰＩ（ATA Packet Interface）に準拠したデータ転送を、ＢＵＳ２（第２のバス）を介してストレージデバイス１００との間で行うことが可能になる。
【００６３】
そして、図６のように物理層回路１４、リンク層回路２０、インターフェース回路３０を設けることで、ＩＥＥＥ１３９４（広義には第１のインターフェース規格）とＡＴＡ（ＩＤＥ）／ＡＴＡＰＩ（広義には第２のインターフェース規格）のバスブリッジ機能をデータ転送制御装置１０に持たせることが可能になる。
【００６４】
インターフェース回路３０が含むＤＭＡコントローラ３２は、ＢＵＳ２を介してストレージデバイス１００との間でＤＭＡ（Direct Memory Access）転送を行うための回路である。
【００６５】
なお、ＢＵＳ２に接続されるストレージデバイス１００は、ＡＴＡ（ＩＤＥ）／ＡＴＡＰＩに準拠したデータ転送を行うためのインターフェース回路１０２と、ストレージ１０６へのアクセス制御（書き込み又は読み出し制御）を行うアクセス制御回路１０４と、光ディスク、ハードディスクなどのストレージ１０６を含む。
【００６６】
バッファ管理回路３８は、パケットバッファ４０とのインターフェースを管理する回路である。バッファ管理回路３８は、バッファ管理回路３８の制御のためのレジスタや、パケットバッファ４０へのバス接続を調停する調停回路や、各種の制御信号を生成するシーケンサなどを含む。
【００６７】
また、バッファ管理回路３８はポインタ管理部３９を含む。このポインタ管理部３９は、パケットバッファ４０のポインタをリングバッファ方式で管理し、書き込み用、読み込み用の複数のポインタを更新する処理を行う。
【００６８】
パケットバッファ４０（パケットメモリ、データバッファ）は、パケット（転送データ）を一時的に格納するためのバッファであり、ＳＲＡＭ、ＳＤＲＡＭ、或いはＤＲＡＭなどのハードウェアにより構成される。なお、本実施形態では、パケットバッファ４０は、ランダムアクセス可能なパケット記憶部として機能する。また、パケットバッファ４０を、データ転送制御装置１０に内蔵せずに、外付けにしてもよい。
【００６９】
ＣＰＵ４２（広義にはプロセッサ）は、装置全体の制御やデータ転送の制御を行うものである。
【００７０】
フラッシュメモリ４４（ＥＥＰＲＯＭ）は、電気的にデータの書き換えが可能な不揮発性メモリである。このフラッシュメモリ４４には、ファームウェア５０の処理モジュール（プログラム）が記憶される。
【００７１】
ファームウェア５０は、ＣＰＵ４２上で動作する種々の処理モジュール（処理ルーチン）を含むプログラムであり、トランザクション層等のプロトコルは、このファームウェア５０と、ハードウェアであるＣＰＵ４２等により実現される。
【００７２】
ファームウェア５０（Ｆ／Ｗ）は、コミュニケーション部５２、マネージメント部６０、フェッチ部７０、ストレージタスク部８０、リライタ（rewriter）起動部８２、リライタ（ダウンローダ）部９０を含む。なお、ファームウェア５０は、これらの全ての機能ブロック（モジュール）を含む必要はなく、その一部を省略してもよい。
【００７３】
ここで、コミュニケーション部５２は、物理層回路１４、リンク層回路２０などのハードウェアとの間のインターフェースとして機能する処理モジュールである。
【００７４】
マネージメント部６０（マネージメントエージェント）は、ログイン、リコネクト、ログアウト、リセット等の管理を行う処理モジュールである。例えばイニシエータがターゲットにログインを要求した場合には、まず、このマネージメント部６０が、このログイン要求を受け付けることになる。
【００７５】
フェッチ部７０（フェッチエージェント）は、ＯＲＢ（Operation Request Block）受信と、ステータスの発行と、ストレージタスク部８０へのコマンド処理依頼を行う処理モジュールである。フェッチ部７０は、単一の要求しか扱うことができないマネージメント部６０とは異なり、イニシエータからの要求により自身がフェッチしたＯＲＢのリンクリストも扱うことができる。
【００７６】
ストレージタスク部８０は、ＯＲＢが含むコマンドの処理とＤＭＡ転送処理を実行するための処理モジュールである。
【００７７】
リライタ起動部８２（リライタ起動モジュール）は、リライタ部９０の処理を開始させる処理を行う。
【００７８】
より具体的には、リライタ起動部８２は、ＢＵＳ２にストレージデバイス１００（広義にはデバイス）が未接続であることが検出された場合に、リライタ部９０の処理（ダウンロードモード）を自動的に開始させる。また、ＰＣのダウンローダホスト部６から、ダウンロード開始コマンドを受信した時にも、リライタ部９０の処理を開始させる。
【００７９】
なお、ＢＵＳ２にストレージデバイス１００が接続されていることが検出された場合には、ＳＢＰ-2処理（通常動作モード）が開始される。このＳＢＰ-2処理は、コミュニケーション部５２、マネージメント部６０、フェッチ部７０、ストレージタスク部８０などにより実現される。
【００８０】
また、ＢＵＳ２にストレージデバイス１００が接続されているか否かの検出は、例えば、ストレージデバイス１００が有するレジスタ１０３（ＡＴＡレジスタ）へのアクセス結果（ライト結果、リード結果の少なくとも一方）に基づいて判断できる。なお、ＢＵＳ２の状態を監視する監視回路（検出回路）を設けて、この監視回路を用いて、ＢＵＳ２にストレージデバイス１００が接続されているか否かを検出してもよい。
【００８１】
リライタ部９０（ダウンローダ部、リライタモジュール）は、フラッシュメモリ４４（広義には不揮発性メモリ）への情報の書き込み（書き換え）処理を行う。
【００８２】
より具体的には、リライタ部９０は、ＧＵＩＤ（広義には電子機器に固有の識別情報）やコンフィグＲＯＭ情報などの機器情報や、データ転送制御プログラム情報（ＳＢＰ-2の転送処理を実現するファームウェアのプログラム情報）を記憶するためのフラッシュメモリ４４のリライト領域（リライタ部９０により情報の書き込みが可能な記憶領域）に、ＢＵＳ１を介して転送される情報をダウンロードする。そして、リライト領域に情報（機器情報、データ転送制御プログラム情報）を書き込む。
【００８３】
この場合、リライト領域への情報のダウンロードは、ＰＣのダウンローダホスト部６とリライタ部９０の処理により、ＢＵＳ１を介したデータ転送（ＩＥＥＥ１３９４）を行うことで実現される。
【００８４】
３．メモリマップ
図７に、フラッシュメモリ４４（不揮発性メモリ）のメモリマップ例を示す。
【００８５】
リライタ割り込みベクタテーブル領域には、リライタ部９０が割り込み処理を行うのに必要なベクタテーブルが記憶される。ブート領域には、ブート処理のための情報が記憶される。リライタ・プログラム領域には、リライタのプログラムの実行コードが記憶される。リライタ・コンフィグＲＯＭ領域には、データ転送制御装置１０をテストデバイスとして認識するためのコンフィグＲＯＭ情報が記憶される。
【００８６】
ＳＢＰ-2用ファームウェア・プログラム領域には、ＳＢＰー2用ファームウェアのプログラムの実行コードが記憶される。この領域の先頭にはＳＢＰ-2用ファームウェアの割り込みベクタテーブルが記憶される。
【００８７】
プログラムライト完了マーク領域にはプログラムライト完了マークが記憶される。このマークは、ＳＢＰ-2用ファームウェア・プログラム領域にプログラムが正常に書き込まれたことを示すためのマーク（広義には、データ転送制御プログラム情報がリライタ領域に正常に書き込まれたか否かを示すための情報）である。
【００８８】
ＳＢＰ-2ファームウェア・コンフィグＲＯＭ領域には、ＳＢＰ-2用ファームウェアのコンフィグＲＯＭ情報が記憶される。
【００８９】
リライタイネーブルフラグ領域には、リライタイネーブルフラグ（広義には、リライタ処理をイネーブル又はディスエーブルに設定するためのリライタ処理設定情報）が記憶される。リライタイネーブルフラグ（以下、適宜、ＲＥＦと呼ぶ）がディスエーブルの時にはデータ転送制御装置１０は通常動作モード（ＳＢＰ-2処理モード）に移行し、ＲＥＦがイネーブルの時にはダウンロードモード（リライタ処理モード）に移行するようになる。
【００９０】
ＩＤ領域には、ベンダＩＤ、シリアルＩＤなどのＩＤ（ＧＵＩＤ）が記憶される。そして、ＰＣが、ＳＢＰ-2用ファームウェア・コンフィグＲＯＭ領域にコンフィグＲＯＭの情報を書き込むと、ＩＤ領域に記憶されているＩＤの情報が、コンフィグＲＯＭの中に埋め込まれるようになる。そして、ＰＣがＩＤをリードすると、このコンフィグＲＯＭの中のＩＤがＰＣに返される。
【００９１】
ＳＢＰ-2用ファームウェア・プログラム領域、プログラムライト完了マーク領域、ＳＢＰ-2用ファームウェア・コンフィグＲＯＭ領域、リライタイネーブルフラグ領域、ＩＤ領域は、リライタ部９０により情報の書き込みが可能なリライト領域になっている。即ち、リライタ部９０は、ダウンロードモード時に、ＰＣのダウンローダホスト部６との間でデータ転送を行い、ＰＣからの情報をリライト領域にダウンロードし、情報の書き込みを行うことができる。
【００９２】
４．処理の詳細
次に、本実施形態のデータ転送制御装置の処理について、図８、図９のフローチャートを用いて説明する。
【００９３】
データ転送制御装置１０の電源がオン（リブート、リセット）になると、リライタイネーブルフラグＲＥＦ（図７参照）がイネーブルか否かが判断される（ステップＳ１）。具体的には、図６のＣＰＵ４２が、電源オン時に図７のＣ０００００ｈ（ブートアドレス）から処理を開始する。そして、Ｃ０００００ｈにはＲＥＦをチェックするプログラム（スタートアッププログラム）のアドレスが記憶されているため、これによりＲＥＦがイネーブルか否かがチェックできる。
【００９４】
そして、ＲＥＦがイネーブルの場合には、リライタ処理（ダウンロードモード）に移行する（ステップＳ２）。そして、ＰＣのダウンローダホスト部６からダウンロード終了コマンドを受信しプログラムが正しく書き込まれているとプログラムライト完了マークが記録される（ステップＳ３）。そして、プログラムライト完了マークが記録されている場合には（ステップＳ４）、ＲＥＦがディスエーブルに設定され（ステップＳ５）、ステップＳ１に戻る。一方、プログラムライト完了マークが記録されていない場合にはステップＳ２に戻る。
【００９５】
なお、初期状態においてＲＥＦ＝イネーブルに設定すれば、１回目のリライタ処理では、ステップＳ６、Ｓ７、Ｓ８、Ｓ９の処理を省略することが可能になる。
【００９６】
ステップＳ１においてＲＥＦがディスエーブルの場合には、通常動作モード（ＳＢＰ-2処理モード）の設定処理が行われる（ステップＳ６）。具体的には、ベクタテーブルのアドレスが図７のＣ０２０００ｈに設定される。そして、ＩＤＥ（ＡＴＡ／ＡＴＡＰＩ）のための初期化処理が行われる（ステップＳ７）。
【００９７】
ＩＤＥ初期化処理においてＢＵＳ２にストレージデバイス１００が未接続か否かが検出され、未接続と判断された場合には（ステップＳ８）、ダウンロードモード（リライタ処理モード）の設定処理が行われる（ステップＳ９）。具体的には、ベクタテーブルのアドレスが図７のＣ０００００ｈに設定される。そして、リライタ処理に移行し（ステップＳ２）、リライタ部９０の処理が開始される（リライタプログラムが起動する）。
【００９８】
一方、ステップＳ８で、ストレージデバイス１００が未接続ではないと判断された場合には、ＳＢＰ-2処理（通常動作モード）に移行し（ステップＳ１０）、ＳＢＰ-2のプロトコルに基づく通常のデータ転送制御処理が行われる。そして、ＰＣのダウンローダ部６からダウンロード開始コマンドを受信すると（ステップＳ１１）、リライタモードの設定処理が行われ（ステップＳ９）、リライタ処理に移行する（ステップＳ２）。一方、ダウンロード開始コマンドを受信しなかった場合には、電源オフか否かが判断され（ステップＳ１２）、電源オフでない場合にはステップＳ１０に戻る。
【００９９】
図９は、図８のステップＳ７のＩＤＥ初期化処理（ストレージデバイス１００の初期化処理）のフローチャートである。
【０１００】
まず、ＩＤＥ（ＡＴＡ／ＡＴＡＰＩ）のリセット処理が行われる（ステップＳ２１）。そして、一定期間（例えば１分）が経過したか否かが判断される（ステップＳ２２）。そして、経過していない場合には、ストレージデバイス１００がＢＵＳＹか否かが判断され（ステップＳ２３）、ＢＵＳＹの場合にはステップＳ２２に戻る。この場合、ＢＵＳＹか否かは図１０（Ａ）に示すＡＴＡのステータスレジスタのＢＳＹビットを調べることで判断できる。
【０１０１】
なお、このステータスレジスタは、図６のストレージデバイス１００のレジスタ１０３に含まれる。また、下記に述べるセクタサイズレジスタ、シリンダハイレジスタ、セクタカウントレジスタ、シリンダローレジスタもレジスタ１０３に含まれる。これらのレジスタの値は、後述するように、ＢＵＳ２を介したＡＴＡのＰＩＯ転送を用いて読み出すことができる。また、これらのレジスタの値は、データ転送制御装置１０が有するレジスタを用いて、ＰＣに対しても表示される。
【０１０２】
ストレージデバイス１００がＢＵＳＹでない場合には、ストレージデバイス１００のセクタサイズレジスタ、シリンダハイレジスタに例えば「５５ｈ」、「ＡＡｈ」をライトする（ステップＳ２４）。次に、セクタサイズレジスタ、シリンダサイズレジスタをリードして、「５５ｈ」、「ＡＡｈ」が適正にライトされたか否かを確認する（ステップＳ２５）。
【０１０３】
次に、ストレージデバイス１００のセクタカウントレジスタ、シリンダローレジスタの値が「０１ｈ」、「００ｈ」に一致するか否かを判断する（ステップＳ２６）。そして、一致した場合には、ストレージデバイス１００をＡＴＡデバイスと認識する（ステップＳ２７）。ＡＴＡに準拠したデバイス（ハードディスドライブ等）では、セクタカウントレジスタ、シリンダローレジスタの値が図１０（Ｂ）に示すようになっているはずだからである。
【０１０４】
次に、ストレージデバイス１００のセクタカウントレジスタ、シリンダローレジスタの値が「０１ｈ」、「１４ｈ」に一致するか否かを判断する（ステップＳ２８）。そして、一致した場合には、ストレージデバイス１００をＡＴＡＰＩデバイスと認識し（ステップＳ２９）、一致しなかった場合には、ステップＳ２２に戻る。ＡＴＡＰＩに準拠したデバイス（ＣＤドライブ、ＤＶＤドライブ等）では、セクタカウントレジスタ、シリンダローレジスタの値が図１０（Ｃ）に示すようになっているはずだからである。
【０１０５】
そして本実施形態では、ステップＳ２２で一定期間が経過したと判断された場合、或いはステップＳ２５で適正な値が書き込まれなかったと判断した場合には、デバイス未接続と認識する（ステップＳ３０）。
【０１０６】
以上のように本実施形態では、ストレージデバイス１００が有するレジスタ１０３へのアクセス結果（ライト、リード結果）に基づいてデバイスが未接続（未検出）か否かを判断する手法を採用している。そして、このようなレジスタ１０３へのアクセス処理（ＡＴＡデバイスかＡＴＡＰＩデバイスかを認識する処理）は、ストレージデバイス１００の初期化処理において必要な処理である。従って、このような手法を採用すれば、必要最小限の処理の追加で、デバイスが未接続か否かを検出できるという利点がある。
【０１０７】
なお、デバイスが未接続か否かの検出は、ＢＵＳ２の所定の信号線の状態を監視するハードウェア回路を設けて実現してもよい。例えば、ストレージデバイス１００側でプルアップ或いはプルダウンするような信号線が存在する場合には、その信号線の電圧レベルを監視することで、デバイスが未接続か否かを検出できる。
【０１０８】
５．電子機器の製造方法
以上のように説明した本実施形態のデータ転送制御装置によれば、電子機器の製造工程の簡素化、短期間化を実現できる。
【０１０９】
例えば図１１（Ａ）に示すように本実施形態では、ＢＵＳ２にストレージデバイス１００を未接続にした状態で、工場のＰＣ（ＰＣのＩＥＥＥ１３９４ポート）をデータ転送制御装置１０（基板９のＩＥＥＥ１３９４ポート）にＢＵＳ１を介して接続する。
【０１１０】
この状態でデータ転送制御装置１０の電源をオンにすると、初期状態でＲＥＦ＝イネーブルに設定している場合には、ダウンロードモードに移行してリライタ処理が開始する（フラッシュメモリ４４のリライタプログラムが起動する）。そして正常にプログラムが書き込まれるとＲＥＦ＝ディスエーブルに設定される（図８のステップＳ５）。そしてデータ転送制御装置１０の電源を一旦オフにし、同様の状態でオンにすると、図８のステップＳ８でデバイス未接続と判断され、ステップＳ９、Ｓ２に示すように、自動的にダウンロードモードに移行してリライタ処理が開始する（フラッシュメモリ４４のリライタプログラムが起動する）。
【０１１１】
そして、このリライタ処理により、ＢＵＳ１を介したデータ転送を行い、図１１（Ａ）に示すように、ＧＵＩＤ、コンフィギュレーションＲＯＭ情報などの機器情報や、ＳＢＰ-2用ファームウェア（データ転送制御プログラム）の情報を、図７のリライト領域にダウンロードして書き込む。これにより、電子機器８を識別するための固有の機器情報をフラッシュメモリ４４に格納できる。或いは、各電子機器メーカに専用のＳＢＰ-２用ファームウェアをフラッシュメモリ４４に格納できる。
【０１１２】
その後に、図１１（Ｂ）に示すように、データ転送制御装置１０（基板９）をストレージデバイス１００に接続する。そして、これらのデータ転送制御装置１０（基板９）及びストレージデバイス１００を電子機器に組み込む。これにより、図１２（Ａ）に示すような電子機器８を完成できる。
【０１１３】
そして図１２（Ｂ）に示すように、電子機器８をユーザが使用する時には、ＢＵＳ２にストレージデバイス１００が接続された状態になっている。従って、図８のステップＳ８において、デバイスが未接続ではないと判断され、通常のＳＢＰ-2処理（通常動作モード）が行われる。これにより、ＢＵＳ２を介して家庭用のＰＣ（ホスト）から転送されるデータ（ライトデータ）をＢＵＳ２を介してストレージデバイス１００（デバイス）に転送（ライト）する通常のデータ転送を実現できる。また、ＢＵＳ２を介してストレージデバイス１００から転送されるデータ（リードデータ）を、ＢＵＳ１を介してＰＣに転送（リード）するデータ転送も実現できる。即ち、データ転送制御装置１０を用いてＢＵＳ１（ＩＥＥＥ１３９４）とＢＵＳ２（ＡＴＡ、ＡＴＡＰＩ）のバスブリッジ機能を実現し、電子機器８にＩＥＥＥ１３９４のインターフェース機能を持たせることが可能になる。
【０１１４】
このように本実施形態では、図５（Ｂ）の手法とは異なり、ストレージデバイス１００をデータ転送制御装置１０（基板９）に接続する前の製造工程で、フラッシュメモリ４４に情報を書き込めるようになる。また、ＰＣからダウンロード開始コマンド等を転送しなくても、デバイス未接続の時には自動的にダウンロードモードに移行し、リライタ処理が起動する。従って、製造工程の簡素化、短期化を図れると共に、人的作業の手間を軽減できる。ここで、初期状態でＲＥＦ＝イネーブルにしておくことによって、１回目のダウンロードモード移行では、図８のステップＳ６、Ｓ７、Ｓ８、Ｓ９の処理を省略できるため、更に製造工程の短縮化を図ることができる。
【０１１５】
６．リライタ処理（ダウンロード処理）
次にリライタ処理の詳細について説明する。
【０１１６】
図１３はＩＤ（ＧＵＩＤ）のダウンロード処理を説明する図である。
【０１１７】
まず、ダウンローダホスト部６がＩＤのライトを実行すると、リライタ部９０がそのＩＤをフラッシュメモリ４４に書き込む。そして、ダウンローダホスト部６がステータスのリードを実行すると、リライタ部９０がステータスを返す。その後、ダウンローダホスト部６がＩＤのリードを実行し、ＩＤが適正に書き込まれたか否かを確認して、処理が終了する。
【０１１８】
図１４はプログラム（ＳＢＰ-2ファームウェア）のダウンロード処理を説明する図である。
【０１１９】
まず、ダウンローダホスト部６がステータスのリードを実行すると、リライタ部９０がステータスを返す。次に、ダウンローダホスト部６がダウンロード開始アドレス、ダウンロードサイズのライトを実行する。そして、ダウンローダホスト部６が例えば５１２バイト（５１２バイト以下）単位でダウンロードデータ（ＳＢＰ-2ファームウェアのプログラム情報）のライトを実行すると、リライタ部９０がそのダウンロードデータをフラッシュメモリ４４に書き込む。そして、ダウンロードデータのライトが終了すると、ダウンローダホスト部６がプログラムチェックサムのリードを実行し、リライタ部９０がチェックサムを返す。その後、ダウンローダホスト部６が、チェックサムが適正か否かを確認して、処理が終了する。
【０１２０】
図１５（Ａ）はコンフィグＲＯＭの情報のダウンロード処理を説明する図である。
【０１２１】
まず、ダウンローダホスト部６がステータスのリードを実行すると、リライタ部９０がステータスを返す。次に、ダウンローダホスト部６がダウンロード開始アドレス、ダウンロードサイズのライトを実行する。そして、ダウンローダホスト部６が例えば５１２バイト（５１２バイト以下）単位でダウンロードデータ（コンフィグＲＯＭ情報）のライトを実行すると、リライタ部９０がそのダウンロードデータをフラッシュメモリ４４に書き込む。この際、コンフィグＲＯＭに対して、既に書き込まれているＩＤ等を反映させる。そして、ダウンロードデータのライトが終了すると、ダウンローダホスト部６がステータスのリードを実行し、リライタ部９０がステータスを返す。次に、ダウンローダホスト部６がコンフィグＲＯＭのＣＲＣのリードを実行すると、リライタ部９０がＣＲＣを返して、処理が終了する。
【０１２２】
図１５（Ｂ）はダウンロード終了処理を説明する図である。
【０１２３】
ダウンローダホスト部６が、ダウンロード終了コマンドのライトを実行すると、リライタ部９０が、リライタイネーブルフラグＲＥＦをディスエーブルにし、ステータスをダウンロードの終了に設定して、リブート処理を行う。
【０１２４】
６．ＡＴＡ／ＡＴＡＰＩのインターフェース回路
図１６に、ＡＴＡ／ＡＴＡＰＩのインターフェース回路３０の構成例を示す。なお、インターフェース回路３０は図１６の全ての回路ブロックを備える必要はなく、その一部を省略してもよい。
【０１２５】
ＦＩＦＯ３１は、データ転送の転送レートの差を調整（緩衝）するためのバッファである。ＤＭＡコントローラ３２は、ＦＩＦＯ３１やインターフェースコア回路３４の制御（ＲＥＱ／ＡＣＫ制御）等を行う回路である。
【０１２６】
インターフェースコア回路３４は、ＤＭＡの制御等を行う回路である。インターフェースコア回路３４が含むカウンタ３５は、ＡＴＡ（ＩＤＥ）／ＡＴＡＰＩ用のリセットカウンタである。インターフェースコア回路３４が含むＵＤＭＡ回路３６は、ＡＴＡ／ＡＴＡＰＩのＵｌｔｒａＤＭＡ転送を制御するための回路であり、ＵｌｔｒａＤＭＡ用のＦＩＦＯ３７、ＵｌｔｒａＤＭＡ用のＣＲＣ演算回路３８を含む。
【０１２７】
レジスタ３３は、ＤＭＡ転送の開始等を制御するためのレジスタであり、このレジスタ３３は、ファームウェア５０（ＣＰＵ４２）によりアクセス可能になっている。
【０１２８】
ＣＳ［１：０］は、ＡＴＡの各レジスタにアクセスするために使用するチップセレクト信号である。ＤＡ［２：０］は、データ又はデータポートにアクセスするためのアドレス信号である。
【０１２９】
ＤＭＡＲＱ、ＤＭＡＣＫは、ＤＭＡ転送に使用される信号である。データ転送の準備が整った時にストレージデバイス１００（デイバイス）側がＤＭＡＲＱをアサートして（アクティブにして）、これに応答して、データ転送制御装置１０（ホスト）側がＤＭＡ転送開始時にＤＭＡＣＫをアサートする。
【０１３０】
ＤＩＯＷ（ＳＴＯＰ）は、レジスタ又はデータポートの書き込み時に使用するライト信号である。なお、ＵｒｔｒａＤＭＡ転送中はＳＴＯＰ信号として機能する。ＤＩＯＲ（ＨＤＭＡＲＤＹ、ＨＳＴＲＯＢＥ）は、レジスタ又はデータポートの読み出し時に使用するリード信号である。なお、ＵｒｔｒａＤＭＡ転送中はＨＤＭＡＲＤＹ、ＨＳＴＲＯＢＥ信号として機能する。
【０１３１】
ＩＯＲＤＹ（ＤＤＭＡＲＤＹ、ＤＳＴＲＯＢＥ）は、ストレージデバイス１００のデータ転送の準備が整っていない時のウェイト信号等に使用される。なお、ＵｒｔｒａＤＭＡ転送中はＤＤＭＡＲＤＹ、ＤＳＴＲＯＢＥ信号として機能する。
【０１３２】
ＩＮＴＲＱは、ストレージデバイス１００（デバイス）が、データ転送制御装置１０（ホスト）に対して割り込みを要求するために使用される信号である。このＩＮＴＲＱがアサートされた後、データ転送制御装置１０がストレージデバイス１００のステータスレジスタの内容を読むと、所定時間後にストレージデバイス１００はＩＮＴＲＱをネゲートする（非アクティブにする）。このＩＮＴＲＱを用いることで、ストレージデバイス１００は、コマンド処理の終了をデータ転送制御装置１０に通知できる。
【０１３３】
図１７（Ａ）、（Ｂ）に、以上のＡＴＡ用の信号の波形例を示す。これらの図は、ＰＩＯ（Parallel I/O）リード、ＰＩＯライト時の信号波形例である。なお、これらの図において「＃」は負論理（Ｌレベルがアサート）の信号であることを表す。
【０１３４】
ＡＴＡのレジスタ１０３のリードは図１６（Ａ）のＰＩＯリードにより実現し、レジスタ１０３へのライトは図１６（Ｂ）のＰＩＯライトにより実現する。例えば、図９のステップＳ２３、Ｓ２５、Ｓ２６、Ｓ２８のレジスタ・リードは、ＰＩＯリードにより実現する。また、ステップＳ２４のレジスタ・ライトは、ＰＩＯライトにより実現する。
【０１３５】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【０１３６】
例えば、明細書中の記載において広義な用語（第１のインターフェース規格、第２のインターフェース規格、第１のインターフェース規格の上位の第１のプロトコル、第１のインターフェース規格の上位の第２のプロトコル、コマンドパケット、デバイス、ホスト、不揮発性メモリ、ＧＵＩＤ、データ転送制御プログラム、プロセッサ等）として引用された用語（ＩＥＥＥ１３９４、ＡＴＡ／ＡＴＡＰＩ、ＳＢＰ-2、ＩＰｏｖｅｒ１３９４、ＯＲＢ、ストレージデバイス、パーソナルコンピュータ、フラッシュメモリ、機器情報、ＳＢＰ-2用ファームウェア、ＣＰＵ等）は、明細書中の他の記載においても広義な用語に置き換えることができる。
【０１３７】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１３８】
また、本発明のデータ転送制御装置、電子機器の構成は、図６に示す構成に限定されず、種々の変形実施が可能である。例えば、これらの各図の各回路ブロック、機能ブロックの一部を省略したり、その接続関係を変更してもよい。また、第２のバス（ＢＵＳ２）は、ストレージデバイスとは異なるデバイスに接続されていてもよい。また、物理層回路とリンク層回路とパケットバッファの接続構成も図６に示す接続構成に限定されない。
【０１３９】
また本実施形態では、リライタ起動部、リライタ部等の機能をファームウェア（プログラム）により実現する場合について説明したが、これらを機能の一部又は全部をハードウェア回路により実現してもよい。
【０１４０】
また本発明は種々の電子機器（ハードディスクドライブ、光ディスクドライブ、光磁気ディスクドライブ、ＰＤＡ、拡張機器、オーディオ機器、デジタルビデオカメラ、携帯電話、プリンタ、スキャナ、ＴＶ、ＶＴＲ、電話機、表示デバイス、プロジェクタ、パーソナルコンピュータ或いは電子手帳等）に適用できる。
【０１４１】
また、本実施形態では、ＩＥＥＥ１３９４、ＳＢＰ-2、ＡＴＡ／ＡＴＡＰＩ規格でのデータ転送に本発明を適用した場合について説明した。しかしながら本発明は、例えばＩＥＥＥ１３９４（Ｐ１３９４ａ）、ＳＢＰ-2（ＳＢＰ）、ＡＴＡ／ＡＴＡＰＩと同様の思想に基づく規格や、ＩＥＥＥ１３９４、ＳＢＰ-2、ＡＴＡ／ＡＴＡＰＩを発展させた規格におけるデータ転送にも適用できる。
【図面の簡単な説明】
【図１】ＩＥＥＥ１３９４、ＳＢＰ-2の層構造について説明するための図である。
【図２】ＳＢＰ-2の処理の概略について説明するための図である。
【図３】ＳＢＰ-2においてデータをイニシエータからターゲットに転送する場合のコマンド処理について説明するための図である。
【図４】ＳＢＰ-2においてデータをターゲットからイニシエータに転送する場合のコマンド処理について説明するための図である。
【図５】図５（Ａ）、（Ｂ）は、データ転送制御装置のバスブリッジ機能や、電子機器の製造方法について説明するための図である。
【図６】本実施形態のデータ転送制御装置、電子機器の構成例を示す図である。
【図７】フラッシュメモリ（不揮発性メモリ）のメモリマップを示す図である。
【図８】本実施形態の詳細な処理例について示すフローチャートである。
【図９】本実施形態の詳細な処理例について示すフローチャートである。
【図１０】図１０（Ａ）、（Ｂ）、（Ｃ）は、ＡＴＡの各種レジスタについて説明するための図である。
【図１１】図１１（Ａ）、（Ｂ）は、電子機器の製造方法について説明するための図である。
【図１２】図１２（Ａ）、（Ｂ）は、電子機器の製造方法やデータ転送制御手法について説明するための図である。
【図１３】ＩＤのダウンロード処理について説明するための図である。
【図１４】プログラムのダウンロード処理について説明するための図である。
【図１５】図１５（Ａ）、（Ｂ）は、コンフィグＲＯＭのダウンロード処理やダウンロード終了処理について説明するための図である。
【図１６】ＡＴＡ／ＡＴＡＰＩのインターフェース回路の構成例を示す図である。
【図１７】図１７（Ａ）、（Ｂ）は、ＰＩＯリード、ＰＩＯライト時における信号波形例である。
【符号の説明】
ＢＵＳ１  第１のバス（ＩＥＥＥ１３９４）
ＢＵＳ２  第２のバス（ＡＴＡ／ＡＴＡＰＩ）
ＰＣ      ホスト、パーソナルコンピュータ（イニシエータ）
８      電子機器（ターゲット）
１０    データ転送制御装置
１４    物理層回路
２０    リンク層回路
２２    ＳＢＰ-2回路
３０    インターフェース回路
３２    ＤＭＡコントローラ
３８    バッファ管理回路
４０    パケットバッファ
４２    ＣＰＵ（プロセッサ）
４４    フラッシュメモリ（不揮発性メモリ）
５０    ファームウェア
５２    コミュニケーション部
６０    マネージメント部
７０    フェッチ部
８０    ストレージタスク部
８２    リライタ起動部
９０    リライタ部
１００  ストレージデバイス
１０２  インターフェース回路
１０３  レジスタ
１０４  アクセス制御回路
１０６  ストレージ
【図１】
0003714420.tif 000002
【図２】
0003714420.tif 000003
【図３】
0003714420.tif 000004
【図４】
0003714420.tif 000005
【図５】
0003714420.tif 000006
【図６】
0003714420.tif 000007
【図７】
0003714420.tif 000008
【図８】
0003714420.tif 000009
【図９】
0003714420.tif 000010
【図１０】
0003714420.tif 000011
【図１１】
0003714420.tif 000012
【図１２】
0003714420.tif 000013
【図１３】
0003714420.tif 000014
【図１４】
0003714420.tif 000015
【図１５】
0003714420.tif 000016
【図１６】
0003714420.tif 000017
【図１７】
0003714420.tif 000018