(57)【特許請求の範囲】
【請求項１】
バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
処理手段が発行するデータ転送のスタートコマンド又はレジュームコマンドに対応して、転送処理をスタート又はレジュームする手段と、
ノードのトポロジ情報をクリアするリセット期間中に前記処理手段がスタートコマンド又はレジュームコマンドを発行した場合には、発行した該コマンドに対応する信号が、前記転送処理をスタート又はレジュームする手段に伝わらないようにすることで、該コマンドを取り消す手段と、
リセットの発生によりコマンドが取り消されたことを前記処理手段に知らせる手段と、
を含むことを特徴とするデータ転送制御装置。
【請求項２】
請求項１において、
リセットの発生によりデータ転送のスタートコマンド又はレジュームコマンドが取り消された場合に、前記処理手段に対して割り込みを発生する手段と、
前記割り込みの要因を前記処理手段に知らせるための要因記憶手段とを含むことを特徴とするデータ転送制御装置。
【請求項３】
請求項１又は２において、
前記取り消し手段が、
前記処理手段がスタートコマンド又はレジュームコマンドを発行した場合にアクティブになる信号を、バスリセット期間中にアクティブになる信号でマスクすることで、該コマンドを取り消すことを特徴とするデータ転送制御装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記処理手段がデータ転送のポーズコマンドを発行した場合又は転送エラーが発生した場合に、予め定められたポーズ場所で転送処理をポーズする手段を含むことを特徴とするデータ転送制御装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記処理手段がデータ転送のスタートコマンドを発行した場合に、転送データを一連のパケットに分割し、分割された一連のパケットを連続転送する処理を実行する転送実行手段を含むことを特徴とするデータ転送制御装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記リセットが、ＩＥＥＥ１３９４の規格において定義されるバスリセットであることを特徴とするデータ転送制御装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
ＩＥＥＥ１３９４の規格に準拠したデータ転送を行うことを特徴とするデータ転送制御装置。
【請求項８】
請求項１乃至７のいずれかのデータ転送制御装置と、
前記データ転送制御装置及びバスを介して他のノードから受信したデータに所与の処理を施す装置と、
処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする電子機器。
【請求項９】
請求項１乃至７のいずれかのデータ転送制御装置と、
前記データ転送制御装置及びバスを介して他のノードに転送するデータに所与の処理を施す装置と、
処理が施されるデータを取り込むための装置とを含むことを特徴とする電子機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送制御装置及びこれを含む電子機器に関し、特に、バスに接続される複数のノード間でＩＥＥＥ１３９４などの規格に準じたデータ転送を行うデータ転送制御装置及びこれを含む電子機器に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
近年、ＩＥＥＥ１３９４と呼ばれるインターフェース規格が脚光を浴びている。このＩＥＥＥ１３９４は、次世代のマルチメディアにも対応可能な高速シリアルバスインターフェースを規格化したものである。このＩＥＥＥ１３９４によれば、動画像などのリアルタイム性が要求されるデータも扱うことができる。また、ＩＥＥＥ１３９４のバスには、プリンタ、スキャナ、ＣＤ−ＲＷドライブ、ハードディスクドライブなどのコンピュータの周辺機器のみならず、ビデオカメラ、ＶＴＲ、ＴＶなどの家庭用電化製品も接続できる。このため、電子機器のデジタル化を飛躍的に促進できるものとして期待されている。
【０００３】
さて、このＩＥＥＥ１３９４においては、バスに電子機器が新たに接続されたり、バスから電子機器が取り外されたりして、バスに接続されるノードが増減すると、いわゆるバスリセットが発生する。そしてバスリセットが発生するとノードのトポロジ情報がクリアされ、その後、トポロジ情報が自動的に再設定される。即ち、バスリセットの発生後、ツリー識別（ルートノードの決定）、自己識別が行われ、その後、アイソクロナスリソースマネージャ等の管理ノードが決定される。そして通常のパケット転送が開始される。
【０００４】
このようにＩＥＥＥ１３９４では、バスリセット後にトポロジ情報が自動的に再設定されるため、いわゆるホット状態でのケーブルの抜き差し（ホットプラグ）が可能となる。このため、一般ユーザは、ＶＴＲなどの通常の家庭用電化製品と同じように、電子機器へのケーブルの抜き差を自由にできるようになり、いわゆるホームネットワークシステムの普及に役立つことができる。
【０００５】
しかしながら、このバスリセットの発生により、以下のような問題が生じることが判明した。
【０００６】
即ち、バスリセットは、ケーブルの抜き差しなどが原因で発生するため、ＣＰＵ上で動作するファームウェア（処理手段）は、バスリセットの発生時期を予め予期することはできない。従って、バスリセットの発生後（或いはバスリセットの発生とほぼ同時）に、ファームウェアがデータ転送のスタートコマンドを発行してしまう事態が生じる。そして、このような事態が生じると、本来はバスリセットにより無効となるべきパケットの転送が開始されしまうなどの不具合が生じる可能性がある。
【０００７】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、ノードのトポロジ情報をクリアするリセットが発生した場合にも安定した動作が保証されるデータ転送制御装置及びこれが用いられる電子機器を提供することにある。
【０００８】
【課題を解決するための手段】
上記課題を解決するために本発明は、バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、処理手段がデータ転送のスタートコマンド又はレジュームコマンドを発行した場合に、転送処理をスタート又はレジュームする手段と、ノードのトポロジ情報をクリアするリセット期間中に処理手段がスタートコマンド又はレジュームコマンドを発行した場合には、該コマンドの実行を取り消す手段と、リセットの発生によりコマンドの実行が取り消されたことを処理手段に知らせる手段とを含むことを特徴とする。
【０００９】
本発明によれば、リセット（例えばＩＥＥＥ１３９４のバスリセット）期間中に、処理手段がスタート（レジューム）コマンドを発行すると、そのコマンドの実行が取り消される。従って、本来なら無効になるべきパケットが転送されてしまったり、他の回路ブロックの誤動作を招いたり、処理手段の処理を混乱させてしまうなどの事態を防止できる。これにより、ノードのトポロジ情報をクリアするリセットが発生した場合にも安定した動作を保証できるようになる。そして、本発明によれば、コマンドの実行が取り消されたことが処理手段に知らされるため、処理手段は、取り消されたコマンドを再発行するなどの処理を行えるようになる。
【００１０】
また本発明は、リセットの発生によりデータ転送のスタートコマンド又はレジュームコマンドの実行が取り消された場合に、処理手段に対して割り込みを発生する手段と、前記割り込みの要因を処理手段に知らせるための要因記憶手段とを含むことを特徴とする。このようにすれば、コマンドが取り消されたことを、処理手段に確実に効率よく知らせることができる。
【００１１】
また本発明は、前記取り消し手段が、処理手段がスタートコマンド又はレジュームコマンドを発行した場合にアクティブになる信号を、リセット期間中にアクティブになる信号でマスクすることで、コマンドを取り消すことを特徴とする。このようにすれば、処理手段が発行したスタート（レジューム）コマンドが、データ転送制御装置の他の回路ブロックに伝わるのを効果的に防止できる。
【００１２】
また本発明は、処理手段がデータ転送のポーズコマンドを発行した場合又は転送エラーが発生した場合に、予め定められたポーズ場所で転送処理をポーズする手段を含むことを特徴とする。このようにすることで、スタート（レジューム）コマンドが発行された後に、ノードのトポロジ情報をクリアするリセットが発生した場合にも、転送処理を一度ポーズして、適切な処理を行った後に転送処理をレジュームできるようになる。
【００１３】
また本発明は、処理手段がデータ転送のスタートコマンドを発行した場合に、転送データを一連のパケットに分割し、分割された一連のパケットを連続転送する処理を実行する転送実行手段を含むことを特徴とする。このような転送実行手段を含む場合には、リセット期間中にスタートコマンドが一度発行されると、処理手段が転送処理を停止しない限り、一連のパケットが次々と転送されてしまい、深刻な不具合が生じる可能性がある。しかしながら、本発明によれば、リセット期間中に発行されたスタートコマンドは即座に取り消されるため、このような不具合が生じるのを防止できる。
【００１４】
なお本発明では、前記リセットが、ＩＥＥＥ１３９４の規格において定義されるバスリセットであることが望ましい。
【００１５】
また本発明は、バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、処理手段がデータ転送のスタートコマンドを発行した場合に、転送データを一連のパケットに分割し、分割された一連のパケットを連続転送する処理を実行する転送実行手段と、処理手段が、データ転送のレジュームコマンドとポーズコマンドとを同時に発行した場合に、転送処理をステップ実行した後に転送処理をポーズする手段とを含むことを特徴とする。
【００１６】
本発明によれば、処理手段がデータ転送のレジュームコマンドとポーズコマンドを同時に発行した場合には、転送処理がステップ実行される。これにより、例えば、パケットを１つずつ転送するなどの処理が可能になり、データ転送制御装置のデバッグなどに有効な手段を提供できるようになる。
【００１７】
また本発明は、前記ポーズ手段が、前記レジュームコマンドが発行された場合にアクティブになるレジューム信号と、前記レジュームコマンドと前記ポーズコマンドとが同時に発行された場合に、前記レジューム信号がアクティブになってから所与の期間だけ遅延してアクティブになる遅延ポーズ信号とに基づいて、転送処理のステップ実行及びポーズを行うことを特徴とする。このようにすれば、遅延ポーズ信号を生成するための遅延手段を設けるなどの簡素な手法で、転送処理のステップ実行を実現できるようになる。
【００１８】
また、本発明では、ＩＥＥＥ１３９４の規格に準拠したデータ転送を行うことが望ましい。
【００１９】
また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して他のノードから受信したデータに所与の処理を施す装置と、処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする。また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して他のノードに送信するデータに所与の処理を施す装置と、処理が施されるデータを取り込むための装置とを含むことを特徴とする。
【００２０】
本発明によれば、データ転送を制御するファームウェア等の処理負担を軽減できるため、電子機器の低コスト化、処理の高速化などを図ることができる。また、トポロジー情報をクリアするリセットの発生によりシステムに不具合が生じる事態を防止できるため、電子機器の信頼性を高めることができる。
【００２１】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００２２】
１．ＩＥＥＥ１３９４
まず、ＩＥＥＥ１３９４について簡単に説明する。
【００２３】
１．１  概要
ＩＥＥＥ１３９４（ＩＥＥＥ１３９４−１９９５、Ｐ１３９４．ａ）では１００〜４００Ｍｂｐｓの高速なデータ転送が可能となっている（Ｐ１３９４．ｂでは８００〜３２００Ｍｂｐｓ）。また、転送速度が異なるノードをバスに接続することも許される。
【００２４】
各ノードはツリー状に接続されており、１つのバスに最大で６３個のノードが接続可能になっている。なお、バスブリッジを利用すれば約６４０００個のノードを接続することも可能である。
【００２５】
ＩＥＥＥ１３９４では、パケットの転送方式として非同期転送とアイソクロナス転送が用意されている。ここで非同期転送は、信頼性が要求されるデータの転送に好適な転送方式であり、アイソクロナス転送は、リアルタイム性が要求される動画像や音声などのデータの転送に好適な転送方式である。
【００２６】
１．２  層構造
ＩＥＥＥ１３９４の層構造（プロトコル構成）を図１に示す。
【００２７】
ＩＥＥＥ１３９４のプロトコルは、トランザクション層、リンク層、物理層により構成される。また、シリアルバスマネージメントは、トランザクション層、リンク層、物理層をモニターしたり制御したりするものであり、ノードの制御やバスのリソース管理のための種々の機能を提供する。
【００２８】
トランザクション層は、上位層にトランザクション単位のインターフェース（サービス）を提供し、下層のリンク層が提供するインターフェースを通して、リードトランザクション、ライトトランザクション、ロックトランザクション等のトランザクションを実施する。
【００２９】
ここで、リードトランザクションでは、応答ノードから要求ノードにデータが転送される。一方、ライトトランザクションでは、要求ノードから応答ノードにデータが転送される。またロックトランザクションでは、要求ノードから応答ノードにデータが転送され、応答ノードがそのデータに処理を施して要求ノードに返信する。
【００３０】
リンク層は、アドレッシング、データチェック、パケット送受信のためのデータフレーミング、アイソクロナス転送のためのサイクル制御などを提供する。
【００３１】
物理層は、リンク層により使用されるロジカルシンボルの電気信号への変換や、バスの調停や、バスの物理的インターフェースを提供する。
【００３２】
１．３  ＳＢＰ−２
さて、図２に示すように、ＩＥＥＥ１３９４のトランザクション層の一部の機能を含む上位のプロトコルとして、ＳＢＰ−２（Ｓｅｒｉａｌ  Ｂｕｓ  Ｐｒｏｔｏｃｏｌ−２）と呼ばれるプロトコルが提案されている。
【００３３】
ここでＳＢＰ−２は、ＳＣＳＩのコマンドセットをＩＥＥＥ１３９４のプロトコル上で利用可能にするために提案されたものである。このＳＢＰ−２を用いれば、既存のＳＣＳＩ規格の電子機器で使用されていたＳＣＳＩのコマンドセットに最小限の変更を加えて、ＩＥＥＥ１３９４規格の電子機器に使用できるようになる。従って、電子機器の設計や開発を容易化できる。また、ＳＣＳＩのコマンドだけではなく、デバイス固有のコマンドもカプセル化して利用できるため、非常に汎用性が高い。
【００３４】
図３に示すようにＳＢＰ−２では、まず、イニシエータ（例えばパーソナルコンピュータ）により作成されたログインＯＲＢ（Ｏｐｅｒａｔｉｏｎ  Ｒｅｑｕｅｓｔ  Ｂｌｏｃｋ）を用いてログイン処理が行われる（ステップＴ１）。次に、ダミーＯＲＢを用いてフェッチエージェントの初期化が行われる（ステップＴ２）。そして、ノーマルコマンドＯＲＢを用いてコマンド処理が行われ（ステップＴ３）、最後に、ログアウトＯＲＢを用いてログアウト処理が行われる（ステップＴ４）。
【００３５】
ステップＴ３のコマンド処理においては、図４のＡ１に示すように、イニシエータがライト要求パケットを転送して（ライト要求トランザクションを発行して）、ターゲットのドアベルレジスタをリングする。すると、Ａ２に示すように、ターゲットがリード要求パケットを転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータが作成したＯＲＢ（ノーマルコマンドＯＲＢ）が、ターゲットのデータバッファにフェッチされる。そして、ターゲットは、フェッチされたＯＲＢに含まれるコマンドを解析する。
【００３６】
そして、ＯＲＢに含まれるコマンドがＳＣＳＩのリードコマンドであった場合には、Ａ３に示すように、ターゲットは、一連のライト要求パケットをイニシエータに転送する。これにより、例えばターゲットのメディア（ＣＤ−ＲＷ）から読み出されたデータ（ストリーム）が、イニシエータのデータバッファに転送されることになる。
【００３７】
一方、ＯＲＢに含まれるコマンドがＳＣＳＩのライトコマンドであった場合には、図５のＢ１に示すように、ターゲットがリード要求パケットをイニシエータに転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータのデータバッファに格納されているデータ（ストリーム）がターゲットに転送され、ターゲットのメディアに書き込まれることになる（ターゲットがプリンタの場合には印刷される）。
【００３８】
このＳＢＰ−２によれば、ターゲットは、自身が都合の良いときに要求パケットを転送して（トランザクションを発行して）、データを送受信できる。従って、イニシエータとターゲットが同期して動く必要がなくなるため、データ転送効率を高めることができる。
【００３９】
なお、ＩＥＥＥ１３９４の上位プロトコルとしては、ＳＢＰ−２以外にも、ＦＣＰ（Ｆｕｎｃｔｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）と呼ばれるプロトコルなども提案されている。
【００４０】
さて、ターゲット、イニシエータ間でデータ転送を行う場合、図６（Ａ）のようにイニシエータ（相手ノード）のデータバッファ（記憶手段）にページテーブルが存在する場合と、存在しない場合がある。
【００４１】
そして、ページテーブルが存在する場合には、図６（Ｂ）に示すように、イニシエータが作成したＯＲＢの中には、そのページテーブルのアドレスやエレメント数が含まれる。そして、転送データのアドレス（読み出しアドレス、書き込みアドレス）は、このページテーブルを用いて間接アドレス指定される。
【００４２】
一方、ページテーブルが存在しない場合には、図６（Ｃ）に示すように、ＯＲＢの中にはアドレスとデータ長が含まれ、転送データのアドレスが直接アドレス指定される。
【００４３】
１．４  バスリセット
ＩＥＥＥ１３９４では、電源が投入されたり、途中でデバイスの抜き差しが発生すると、バスリセットが発生する。即ち、各ノードは、ポートの電圧変化を監視している。そして、バスに新たなノードが接続されるなどしてポートの電圧に変化が生じると、この変化を検知したノードは、バス上の他のノードに対して、バスリセットが発生したことを知らせる。また、各ノードの物理層は、バスリセットが発生したことをリンク層に伝える。
【００４４】
そして、このようにバスリセットが発生すると、ノードＩＤなどのトポロジ情報がクリアされる。そして、その後、トポロジー情報が自動的に再設定される。即ち、バスリセット後、ツリー識別、自己識別が行われる。その後、アイソクロナスリソースマネージャ、サイクルマスタ、バスマネージャ等の管理ノードが決定される。そして、通常のパケット転送が開始される。
【００４５】
このようにＩＥＥＥ１３９４では、バスリセット後にトポロジ情報が自動的に再設定されるため、電子機器のケーブルを自由に抜き差しできるようになり、いわゆるホットプラグを実現できる。
【００４６】
なお、トランザクションの途中でバスリセットが発生した場合には、そのトランザクションは中止される。そして、中止されたトランザクションを発行した要求ノードは、トポロジー情報が再設定された後に、要求パケットを再度転送する。また、応答ノードは、バスリセットにより中止されたトランザクションの応答パケットを要求ノードに返送してはならない。
【００４７】
２．全体構成
次に、本実施形態のデータ転送制御装置の全体構成の例について図７を用いて説明する。
【００４８】
図７において、ＰＨＹインターフェース１０は、ＰＨＹデバイス（物理層のデバイス）とのインターフェースを行う回路である。
【００４９】
リンクコア２０（リンク手段）は、リンク層のプロトコルやトランザクション層のプロトコルの一部をハードウェアにより実現する回路であり、ノード間でのパケット転送のための各種サービスを提供する。レジスタ２２は、リンクコア２０を制御するためのレジスタである。
【００５０】
ＦＩＦＯ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｆｉｆｏ）３０、ＦＩＦＯ（Ｉｓｏｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｆｉｆｏ）３２、ＦＩＦＯ（Ｒｅｃｅｐｔｉｏｎ  Ｆｉｆｏ）３４は、各々、非同期送信用、アイソクロナス送信用、受信用のＦＩＦＯであり、例えばレジスタや半導体メモリなどのハードウェアにより構成される。本実施形態では、これらのＦＩＦＯ３０、３２、３４の段数は非常に少ない。例えば１つのＦＩＦＯの段数は、好ましくは３段以下であり、更に好ましくは２段以下となる。
【００５１】
ＤＭＡＣ４０（読み出し手段）、ＤＭＡＣ４２（読み出し手段）、ＤＭＡＣ４４（書き込み手段）は、各々、ＡＴＦ用、ＩＴＦ用、ＲＦ用のＤＭＡコントローラである。これらのＤＭＡＣ４０、４２、４４を用いることで、ＣＰＵ６６に介入されることなく、ＲＡＭ８０とリンクコア２０との間でのデータ転送が可能になる。なお、レジスタ４６は、ＤＭＡＣ４０、４２、４４などを制御するためのレジスタである。
【００５２】
ポートインターフェース５０は、アプリケーション層のデバイス（例えばプリンタの印字処理を行うデバイス）とのインターフェースを行う回路である。
【００５３】
ＦＩＦＯ（ＰＦ）５２は、アプリケーション層のデバイスとの間でのデータ転送のためのＦＩＦＯであり、ＤＭＡＣ５４は、ＰＦ用のＤＭＡコントローラである。レジスタ５６は、ポートインターフェース５０やＤＭＡＣ５４を制御するレジスタである。
【００５４】
ＳＢＰ−２コア８４（転送実行回路）は、ＳＢＰ−２のプロトコルの一部やトランザクション層の一部をハードウェアにより実現する回路である。このＳＢＰ−２コア８４の機能により、転送データを一連のパケットに分割し、分割された一連のパケットを連続転送する処理が可能になる。なお、レジスタ８８は、ＳＢＰ−２コア８４を制御するためのレジスタであり、ＤＭＡＣ（ＳＢＰ−２用）８６は、ＳＢＰ−２コア８４用のＤＭＡコントローラである。
【００５５】
ＲＡＭ領域管理回路３００は、ＲＡＭ８０の各領域を管理するための回路である。ＲＡＭ領域管理回路３００は、ＲＡＭ８０の各領域がフルになったり、エンプティになった場合に、各種のフル信号、エンプティ信号を用いてＤＭＡＣ４０、４２、４４、５４、８６を制御する。
【００５６】
ＣＰＵインターフェース６０は、データ転送制御装置をコントロールするＣＰＵ６６（処理手段）とのインターフェースを行う回路である。ＣＰＵインターフェース６０は、アドレスデコーダ６２、データ同期化回路６３、割り込みコントローラ６４を含む。クロック制御回路６８は、本実施形態で使用されるクロックを制御するものであり、ＰＨＹデバイス（ＰＨＹチップ）から送られてくるＳＣＬＫ（データ転送制御装置のシステムクロック）や、ＨＣＬＫ（ＣＰＵ６６の動作クロック）が入力される。
【００５７】
バッファマネージャ７０は、ＲＡＭ８０とのインターフェースを管理する回路である。バッファマネージャ７０は、バッファマネージャの制御のためのレジスタ７２、ＲＡＭ８０へのバス接続を調停する調停回路７４、各種の制御信号を生成するシーケンサ７６を含む。
【００５８】
ＲＡＭ８０は、ランダムアクセス可能なパケット記憶手段として機能するものであり、その機能は例えばＳＲＡＭ、ＳＤＲＡＭ、ＤＲＡＭなどにより実現される。
【００５９】
なおＲＡＭ８０は、本実施形態のデータ転送制御装置に内蔵させることが特に望ましいが、その一部又は全部を外付けにすることも可能である。
【００６０】
図８に、ＲＡＭ８０のメモリマップの一例を示す。図８に示すように本実施形態では、ＲＡＭ８０が、ヘッダ領域（ＡＲ２、ＡＲ３、ＡＲ４、ＡＲ６）とデータ領域（ＡＲ５、ＡＲ７、ＡＲ８、ＡＲ９）に分離されている。そして、パケットのヘッダ（広義には制御情報）はヘッダ領域に格納され、パケットのデータ（ＯＲＢ、ストリーム）はデータ領域に格納される。
【００６１】
また本実施形態では、図８に示すように、ＲＡＭ８０のデータ領域（ＡＲ５、ＡＲ７、ＡＲ８、ＡＲ９）が、ＯＲＢ領域（ＡＲ５、ＡＲ７）とストリーム領域（ＡＲ８、ＡＲ９）に分離されている。
【００６２】
更に本実施形態では、ＲＡＭ８０が、受信領域（ＡＲ２、ＡＲ４、ＡＲ５、ＡＲ９）と送信領域（ＡＲ３、ＡＲ６、ＡＲ７、ＡＲ８）に分離されている。
【００６３】
なお、ＯＲＢ（第１の層用の第１のデータ）は、上述したようにＳＢＰ−２用のデータ（コマンド）である。一方、ストリーム（第１の層より上層の第２の層用の第２のデータ）は、アプリケーション層用のデータ（プリンタの印字データ、ＣＤ−ＲＷの読み出し・書き込みデータ、スキャナによる取り込み画像データ等）である。
【００６４】
また、ＡＲ１、ＡＲ２、ＡＲ３に示すＨＷ（ハードウェア）用ページテーブル領域、ＨＷ用受信ヘッダ領域、ＨＷ用送信ヘッダ領域は、図７に示すＳＢＰ−２コア８４が、ページテーブルや受信ヘッダや送信ヘッダを書き込んだり読み出したりするための領域である。
【００６５】
なお、図８においてＡＲ４、ＡＲ５、ＡＲ８、ＡＲ９に示す領域は、いわゆるリングバッファ構造になっている。
【００６６】
さて、図７のバス９０（或いはバス９２、９４）は、アプリケーションに接続されるものである（第１のバス）。またバス９５（或いはバス９６）はデータ転送制御装置をコントロールし、或いはデータをリード・ライトするためのものであり、データ転送制御装置をコントロールするデバイス（例えばＣＰＵ）に電気的に接続される（第２のバス）。またバス１００（或いはバス１０２、１０４、１０５、１０６、１０７、１０８、１０９）は、物理層のデバイス（ＰＨＹデバイス）に電気的に接続されるものである（第３のバス）。また、バス１１０は、ランダムアクセス可能な記憶手段であるＲＡＭ８０に電気的に接続されるものである（第４のバス）。またバス９９は、ＳＢＰ−２コア８４がハードウェアによりＳＢＰ−２を実現するためのヘッダ情報やページテーブル情報をリード・ライトするためのものである（第５のバス）。
【００６７】
バッファマネージャ７０の調停回路７４は、ＤＭＡＣ４０、４２、４４、ＣＰＵインターフェース６０、ＤＭＡＣ８６、５４からのバスアクセス要求の調停を行う。そして、この調停結果に基づいて、各々、バス１０５、１０７、１０９、９６、９９、９４のいずれかと、ＲＡＭ８０のバス１１０との間にデータの経路が確立される（第１、第２、第３、第５のバスのいずれかと第４のバスとの間にデータ経路が確立される）。
【００６８】
本実施形態の１つの特徴は、ランダムアクセスが可能でありパケットを格納するＲＡＭ８０を設けると共に、互いに分離されるバス９０、９５、９９、１００と、これらのバスをＲＡＭ８０のバス１１０に接続するための調停回路７４とを設けた点にある。
【００６９】
このようにすることで図９に示すように、データ転送制御装置１２０、アプリケーション層のデバイス１２４間のバス９０と、ＣＰＵバス９６と、データ転送制御装置１２０、ＲＡＭ８０間のバス１１０とを分離できる。従って、ＣＰＵバス９６をデータ転送の制御のみに使用できるようになる。また、バス９０を占有して、データ転送制御装置１２０、アプリケーション層のデバイス１２４間でデータ転送を行うことができるようになる。例えば、データ転送制御装置１２０が組み込まれる電子機器がプリンタである場合には、バス９０を占有して印字データを転送できるようになる。この結果、ＣＰＵ６６の処理負担を軽減でき、システム全体の実転送速度を高めることができる。またＣＰＵ６６として安価なものを採用できると共に、ＣＰＵバス９６として高速なバスを使用する必要性がなくなる。このため、電子機器の低コスト化、小規模化を図れるようになる。
【００７０】
３．ＳＢＰ−２コア（転送実行回路）の構成
図１０に、図７のＳＢＰ−２コア８４の構成例を示す。ＳＢＰ−２コア８４は、転送データを一連のパケットに自動的に分割し、分割された一連のパケットを連続転送するための回路であり、主に図４のＡ３、図５のＢ１に示すパケット転送をハードウェアにより実行する。
【００７１】
メイン制御回路２００は、ＳＢＰ−２コア８４の全体を制御するための回路であり、レジスタ２０２、２０４、２０６、２０８を含む。
【００７２】
ここで、レジスタ２０２、２０４、２０６は、各々、データ転送（ハードウェアＳＢＰ−２処理）のスタートコマンド、ポーズコマンド、レジュームコマンドをファームウェア（ＣＰＵ）が発行するためのレジスタである。即ち、ファームウェアがレジスタ２０２に１を書き込むと、転送データを一連のパケットに分割して連続転送する処理が開始する。そして、この転送処理中に、ファームウェアがレジスタ２０４に１を書き込むと、データ転送処理がポーズされ、レジスタ２０６に１を書き込むと、ポーズされていたデータ転送処理が再開される。
【００７３】
レジスタ２０８は、ページテーブルの存在、不存在を設定するためのレジスタである。即ち、ファームウェアは、イニシエータからのＯＲＢを解析し、イニシエータのデータバッファにページテーブルが存在しないと判断した場合には、レジスタ２０８に１を書き込む。一方、存在すると判断した場合（図６（Ａ）の場合）には、レジスタ２０８に０を書き込む。
【００７４】
ページテーブルフェッチ回路２１０は、イニシエータ（相手ノード）のデータバッファ（記憶手段）にページテーブルが存在する場合に、そのページテーブルをイニシエータからフェッチするための処理を行う回路である。より具体的には、ページテーブルフェッチ回路２１０は、送信ヘッダ生成回路２６０にページテーブルのフェッチを指示し、フェッチが完了すると、ページテーブルアドレスやページテーブルサイズの更新をページテーブル生成回路２２０に指示する。
【００７５】
ページテーブル生成回路２２０は、イニシエータのデータバッファにページテーブルが存在しない場合に、仮想的なページテーブルを生成する回路である。より具体的には、メイン制御回路２００からページテーブルの生成が指示されると、所与のアルゴリズムにしたがってページテーブルを生成する。そして、生成されたページテーブルを、エレメント保持回路２３０やバッファインターフェース２９０を介してＲＡＭのＨＷ用ページテーブル領域に書き込むための処理を行う。
【００７６】
なお、ページテーブルが存在するか否かは、前述のように、レジスタ２０８の設定値に基づき判断される。また、ページテーブルフェッチ回路２１０、ページテーブル生成回路２２０によりフェッチ又は生成されたページテーブルは、ＲＡＭのＨＷ用ページテーブル領域（図８のＡＲ１）に格納される。
【００７７】
ページテーブル生成回路２２０が含むレジスタ２２２には、イニシエータからのＯＲＢにより指定されたページ境界サイズが設定される。またレジスタ２２４、２２６には、ページテーブルが存在する場合には、ＯＲＢにより指定されたページテーブルアドレス、ページテーブルサイズ（エレメント数）が設定される（図６（Ｂ）参照）。一方、ページテーブルが存在しない場合には、転送データの先頭アドレスとデータ長が設定される（図６（Ｃ）参照）。またエレメントカウンタ２２８は、ページテーブルの生成の際に、ページテーブルのエレメント数（エレメントポインタ）をカウントする処理を行う。
【００７８】
エレメント保持回路２３０は、ＳＢＰ−２コアの処理対象となるページテーブルエレメントの情報を保持する回路であり、ページテーブルエレメントのセグメント長を保持するレジスタ２３２と、セグメントオフセットアドレスを保持するレジスタ２３４を含む。
【００７９】
転送実行制御回路２４０は、ＳＢＰ−２コアによるデータ転送（ストリーム転送）の実行を制御する回路であり、レジスタ２４２、２４４を含む。そして、レジスタ２４２は、現在処理中のページテーブルエレメントの番号を表示する。またレジスタ２４４には、データ転送を開始するページテーブルエレメントの番号が、ファームウェアにより設定される。これにより、ファームウェアは任意のページテーブルエレメントからのデータ転送を開始できるようになる。
【００８０】
ペイロード分割回路２５０は、転送データを、ペイロードサイズのパケットに分割する処理を行う。ペイロード分割回路２５０が含むレジスタ２５２には、ＯＲＢにより指定された最大ペイロードサイズが設定される。またレジスタ２５４は、実際のペイロードサイズを表示する。ペイロード分割回路２５０は、ＲＡＭのＨＷページテーブル領域（図８のＡＲ１）から読み出されてレジスタ２３２に保持されるページテーブルエレメントのセグメント長と、レジスタ２５２に設定された最大ペイロードサイズとに基づいて、ペイロード分割処理を行うことになる。
【００８１】
送信ヘッダ生成回路２６０は、ファームウェアにより設定されたスピードコードやデスティネーションＩＤなどに基づいて、図４のＡ３、図５のＢ１の各要求パケットのヘッダを生成する処理を行う。そして、生成されたヘッダは、ＲＡＭのＨＷ用送信ヘッダ領域（図８のＡＲ３）に格納される。このように本実施形態では、連続転送される一連の要求パケットのヘッダがハードウェアにより自動生成されるため、ファームウェアの処理負担を大幅に軽減できる。
【００８２】
トランザクション制御回路２７０は、リンクコアなどの外部の回路ブロックからのエラー情報やステータス情報を受け、トランザクションの実行のための種々の処理を行う。そして、トランザクションの実行が完了すると、トランザクション完了信号ＴＣｏｍｐをアクティブにして、ページテーブルフェッチ回路２１０やペイロード分割回路２５０に知らせる。このように本実施形態のＳＢＰ−２コアは、パケット単位ではなく、トランザクション単位でデータ転送処理を管理している。
【００８３】
スプリットタイマ２８０は、トランザクションの開始時にスプリットタイムをロードし、カウントダウンを開始する。そして、カウント値が０になったら、タイムアウトになったことをトランザクション制御回路２７０に伝える。
【００８４】
バッファインターフェース２９０は、図７のバッファマネージャ７０とのインターフェースとして機能する回路である。ＳＢＰ−２コア８４の各ブロックは、このバッファインターフェース２９０を介して、バッファマネージャ７０に対してＲＡＭ８０へのアクセスを要求することになる。
【００８５】
３．１  メイン制御回路
次に、メイン制御回路２００の動作について図１１のフローチャートを用いて説明する。
【００８６】
まず、ＨＷ用ページテーブル領域に既に格納されているページテーブルを使用するか否かを判断し（ステップＳ１）、使用する場合にはステップＳ５に、使用しない場合にはステップＳ２に移行する。既にＨＷ用ページテーブル領域に格納されているページテーブルを使用するか否かの設定は、ファームウェアが所与のレジスタに所与の設定値を書き込むことで実現される。
【００８７】
次に、図１０のレジスタ２０８の設定値に基づき、イニシエータのデータバッファにページテーブルが存在するか否かを判断する（ステップＳ２）。そして、存在する場合には、ページテーブルフェッチ回路２１０に対して、ページテーブルのフェッチ処理の開始を指示する（ステップＳ３）。一方、存在しない場合には、ページテーブル生成回路２２０に対して、ページテーブルの生成処理の開始を指示する（ステップＳ４）。
【００８８】
そして、ページテーブルのフェッチ又は生成処理が完了すると、転送実行制御回路２４０に対して、転送実行処理（ストリームデータタスク）の開始を指示する（ステップＳ５）。
【００８９】
なお、本実施形態のページテーブル生成回路２２０は以下に説明するような手法でページテーブルを生成する。
【００９０】
例えば図１２に示すように、転送データの先頭アドレスＳＡがページ境界ＰＢ０、ＰＢ１間にあり、終了アドレスＥＡがページ境界ＰＢ４、ＰＢ５間にあったとする。この場合に、ページテーブル生成回路２２０は、ページ境界ＰＢ１、ＰＢ４間（第Ｋ、第Ｌのページ境界間）のページテーブルのエレメント数が、１（広義には所定数）となる仮想的なページテーブルを生成する。
【００９１】
より具体的には、先頭アドレスＳＡとページ境界ＰＢ１間がＸ種のページテーブルエレメント（第１のページテーブルエレメント）になり、ページ境界ＰＢ１、ＰＢ４間がＹ種のページテーブルエレメント（第２のページテーブルエレメント）になり、ページ境界ＰＢ４と終了アドレスＥＡ間がＺ種のページテーブルエレメント（第３のページテーブルエレメント）になる３ページのページテーブルを生成する。
【００９２】
但し、転送データの先頭アドレスＳＡがページ境界ＰＢ１（第Ｋのページ境界）上にある場合には、Ｘ種のページテーブルエレメントは生成されず、２ページのページテーブルになる。また、転送データの終了アドレスＥＡがページ境界ＰＢ４（第Ｌのページ境界）上にある場合には、Ｚ種のページテーブルエレメントは生成されず、２ページのページテーブルになる。更に、転送データの先頭アドレスＳＡがページ境界ＰＢ０、ＰＢ１間にあり、終了アドレスＥＡがページ境界ＰＢ０、ＰＢ１間又はＰＢ１上にある場合には、ＳＡ、ＥＡ間がＸ種のページテーブルエレメントとなる１ページのページテーブルが生成される。
【００９３】
また本実施形態では、図１０のペイロード分割回路２５０が、最大ペイロードサイズがページ境界サイズの約数となるペイロードサイズのパケットに、転送データを分割している。即ち図１３において、最大ペイロードサイズＭａｘＰＬＳがページ境界サイズＰＢＳの約数となるようなパケット分割が行われる。
【００９４】
このように、最大ペイロードサイズＭａｘＰＬＳをページ境界サイズＰＢＳの約数にすれば、例えば図１３のＣ１やＣ２に示すように、ページ境界ＰＢ２やＰＢ３においてパケットのペイロードがページ境界をまたがないようになる。従って、本実施形態のようにＰＢ１、ＰＢ４間のページテーブルエレメント数が１となるようなページテーブルを生成した場合にも、ページ境界を越えないという制約を遵守しながらデータ転送を行えるようになる。
【００９５】
３．２  転送実行（ストリームタスク）制御回路
次に、転送実行制御回路２４０の動作について図１４のフローチャートを用いて説明する。
【００９６】
まず、図１０のカレントエレメント番号のレジスタ２４２に、レジスタ２４４のスタートエレメント番号をロードする（ステップＳ４０）。そして、カレントエレメント番号のページテーブルエレメントを、ＲＡＭのＨＷ用ページテーブル領域から読み出す処理を行う（ステップＳ４１）。より具体的には、転送実行制御回路２４０は、処理対象となるページテーブルエレメントの読み出しをバッファインターフェース２９０に指示する。すると、バッファインターフェース２９０は、処理対象となるページテーブルエレメントをＲＡＭのＨＷ用ページテーブル領域から読み出し、ページテーブルエレメントのセグメント長をレジスタ２３２に、セグメントオフセットアドレスをレジスタ２３４に書き込む。
【００９７】
次に、ペイロード分割回路２５０に対してペイロード分割処理の開始を指示する（ステップＳ４２）。
【００９８】
次に、現在のページテーブルエレメントの処理を終了したか否かを判断し（ステップＳ４３）、終了していない場合にはステップＳ４２に戻る。一方、終了した場合には、全てのページテーブルエレメントの処理を終了したか否かを判断すし（ステップＳ４４）、終了していない場合には、カレントエレメント番号を＋１して（ステップＳ４５）、ステップＳ４１に戻る。
【００９９】
なお、全てのページテーブルエレメントの処理を終了したか否かは、レジスタ２２６のページテーブルサイズを８で除算することで得られるエレメント数と、カレントエレメント番号とを比較することで判断する。
【０１００】
３．３  ペイロード分割回路
次に、ペイロード分割回路２５０の動作について図１５のフローチャートを用いて説明する。ペイロード分割回路２５０は、図１３に示すようにペイロードサイズのパケットに転送データを分割する処理を行うものである。
【０１０１】
まず、図１０のレジスタ２３２に格納されるページテーブルエレメントのセグメント長の残りバイト数が、最大ペイロードサイズ以上になっているか否かを判断する（ステップＳ５１）。そして、残りバイト数が最大ペイロードサイズ以上になっている場合には、パケットのペイロードサイズを最大ペイロードサイズに設定する（ステップＳ５２）。一方、図１３のＣ３やＣ４に示すように、残りバイト数が最大ペイロードサイズよりも小さくなっている場合には、パケットのペイロードサイズを残りバイト数に設定する（ステップＳ５３）。
【０１０２】
ペイロードサイズの設定後、トランザクションの実行処理の開始（送信ヘッダの生成）を送信ヘッダ生成回路２６０に指示する（ステップＳ５４）。そして、トランザクション制御回路２７０からの信号ＴＣｏｍｐによりトランザクションの完了が知らされると、エレメント保持回路２３０に対して、レジスタ２３２、２３４に格納されているページテーブルエレメントのセグメント長（残りバイト数）、セグメントオフセットアドレス（先頭アドレス）の更新を指示する（ステップＳ５５）。
【０１０３】
次に、メイン制御回路２００からの信号Ｐａｕｓｅに基づいて、処理をポーズするか否かを判断する（ステップＳ５６）。即ち、信号Ｐａｕｓｅがアクティブになった場合には処理をポーズする。そしてポーズされた場合には、信号Ｐａｕｓｅが非アクティブになったことを条件に、処理をレジュームする（ステップＳ５７）。
【０１０４】
３．４  送信ヘッダ生成回路、トランザクション制御回路
次に、送信ヘッダ生成回路２６０、トランザクション制御回路２７０の動作について図１６のフローチャートを用いて説明する。
【０１０５】
まず、要求パケットのヘッダを生成し、ＨＷ用送信ヘッダ領域（図８のＡＲ３）に書き込む（ステップＳ６１）。より具体的には、図４のＡ３のようにイニシエータにデータを送信する場合には、ライト要求（ブロックライト要求）パケットのヘッダをＨＷ用送信ヘッダ領域に書き込む。一方、図５のＢ１のようにイニシエータからデータを受信する場合や、ページテーブルをフェッチする場合には、リード要求パケットのヘッダをＨＷ用送信ヘッダ領域に書き込む。
【０１０６】
次に、転送のスタート信号（ＨＷＳｔａｒｔ）をアクティブにして転送の開始を指示し（ステップＳ６２）、イニシエータからのＡＣＫの受信を待つ（ステップＳ６３）。
【０１０７】
次に、送信パケットがリード要求パケットであった場合には、ＡＣＫペンディングか否かを判断し（ステップＳ６５）、ＡＣＫペンディングでない場合にはステップＳ７２に移行してエラーポーズ状態にする。一方、ＡＣＫペンディングの場合には、スプリットタイマの起動を指示して（ステップＳ６６）、応答パケットの受信を待つ（ステップＳ６７）。
【０１０８】
次に、応答パケットの受信がパーフェクトであったか否かを判断し（ステップＳ６８）、ＤＣＥの場合には再度応答パケットが受信されるのを待ち、パーフェクトの場合にはステップＳ６９に移行し、その他の場合にはステップＳ７２に移行してエラーポーズ状態にする。そして、ステップＳ６９に移行した場合にはスプリットタイマの停止を指示し、信号ＴＣｏｍｐをアクティブにして転送データのポインタを更新する（ステップＳ７０）。
【０１０９】
一方、送信パケットがライト要求パケットであった場合には、まず、ＡＣＫペンディングか否かを判断する（ステップＳ７１）。そして、ＡＣＫペンディングの場合にはステップＳ６６に移行し、ＡＣＫコンプリートの場合にはステップＳ７０に移行し、それ以外の場合にはステップＳ７２に移行してエラーポーズ状態にする。
【０１１０】
なお、ステップＳ７２に移行して処理がエラーポーズになった場合には、処理がレジュームされたことを条件に、ステップＳ６２に移行する（ステップＳ７３）。即ち、この場合には、ＨＷ用送信ヘッダ領域に既に書き込まれている送信ヘッダを再利用して、転送を再開することになる。
【０１１１】
４．データ転送のスタート（レジューム）コマンドの取り消し
以上のように本実施形態によれば、図４のＡ３や図５のＢ１に示す転送処理がハードウェアにより自動実行される。即ち、ファームウェアがパケットの連続転送のスタートを指示すると（図１０のレジスタ２０２に１を書き込むと）、ＳＢＰ−２コア８４が、ページテーブルのフェッチ又は生成処理、ペイロード分割処理、送信ヘッダの生成処理、各パケットの転送スタート処理、エラー処理などをハードウェアにより自動実行して、一連のパケットを自動転送する。これにより、ファームウェアの処理負担を格段に軽減できるようになり、データ転送制御装置の実転送速度を大幅に向上できる。
【０１１２】
しかしながら、ＩＥＥＥ１３９４においてはケーブルの抜き差しが行われると、バスリセット（広義にはノードのトポロジ情報をクリアするリセット）が発生する。そして、このケーブルの抜き差しは任意のタイミングで行われるため、ＣＰＵ上で動作するファームウェア（処理手段）は、バスリセットの発生時期を予め予期することができない。従って、バスリセット発生後のバスリセット期間において、ファームウェアが、パケットを連続転送させるスタートコマンドを発行してしまう事態が生じる。そして、このような事態が生じると、本来はバスリセットにより無効になるべき多数のパケットの転送が開始されしまうなどの不具合が生じる。
【０１１３】
特に、この種のデータ転送制御装置が組み込まれる電子機器では、安価で低速なＣＰＵが使用される場合が多い。従って、割り込みなどを用いてバスリセットの発生をファームウェアに知らせても、データ転送が開始してからファームウェアがデータ転送の停止を指示するまでの間に長時間のタイムラグが生じてしまい、上記の不具合が更に深刻なものとなる。
【０１１４】
そこで本実施形態では、バスリセット期間中にファームウェアがデータ転送のスタートコマンド（或いはレジュームコマンド）を発行した場合には、そのコマンドの実行を取り消すと共に、バスリセットの発生によりコマンドの実行が取り消されたことをファームウェアに知らせるようにしている。以下、データ転送のスタートコマンドやレジュームコマンドの取り消し手法について具体的に説明する。
【０１１５】
図１７に、図１０のメイン制御回路２００の構成例を示す。なお図１７では、本発明と無関係な回路部分についてはその記載を省略している。
【０１１６】
ＤＦＦ１、ＤＦＦ６、ＤＦＦ１０（Ｄフリップフロップ）は、各々、図１０のレジスタ２０４、２０６、２０２に相当する。
【０１１７】
例えばＣＰＵが、データバス信号ＤＩＮのビットＫを１して、ライトイネーブル信号ＷＲを１（アクティブ）にすると、ＣＰＵの動作クロックであるＨＣＬＫの立ち上がりでＤＦＦ１（ポーズのレジスタ２０４）に１が書き込まれる。そして、データ転送制御装置のシステムクロックであるＳＣＬＫにより動作するＤＦＦ２、ＤＦＦ３、ＤＦＦ４、ＤＦＦ５や、ＡＮＤ２により、１クロック（ＳＣＬＫ）幅の信号であるＤｅｌａｙｅｄＰａｕｓｅが生成される。
【０１１８】
また、ＤＩＮのビットＬを１にしてＷＲを１にすると、ＤＦＦ６（レジュームのレジスタ２０６）に１が書き込まれ、ＤＦＦ７、ＤＦＦ８、ＤＦＦ９、ＡＮＤ５により、１クロック幅の信号Ｒｅｓｕｍｅが生成される。
【０１１９】
また、ＤＩＮのビットＭを１にしてＷＲを１にすると、ＤＦＦ１０（スタートのレジスタ２０２）に１が書き込まれ、ＤＦＦ１１、ＤＦＦ１２、ＤＦＦ１３、ＡＮＤ８により、１クロック幅の信号Ｓｔａｒｔが生成される。
【０１２０】
取り消し回路３００は、ＡＮＤ４、ＡＮＤ５、ＡＮＤ７、ＡＮＤ８を含む。
【０１２１】
ここでＡＮＤ４、ＡＮＤ５には共に、ＤＦＦ７の出力Ｑ７の反転信号とＤＦＦ８の出力Ｑ８とが入力される。但し、ＡＮＤ４にはバスリセット期間信号ＢＲＰｅｒｉｏｄがそのまま入力されるのに対して、ＡＮＤ５にはＢＲＰｅｒｉｏｄの反転信号が入力される。このようにＢＲＰｅｒｉｏｄの反転信号をＡＮＤ５に入力することで、バスリセット期間中にＣＰＵ（ファームウェア）がレジュームコマンドを発行した場合に、そのコマンドの実行を取り消すことができる。
【０１２２】
またＡＮＤ７、ＡＮＤ８には共に、ＤＦＦ１１の出力Ｑ１１の反転信号とＤＦＦ１２の出力Ｑ１２が入力される。但し、ＡＮＤ７には、ＢＲＰｅｒｉｏｄがそのまま入力されるのに対してＡＮＤ８にはＢＲＰｅｒｉｏｄの反転信号が入力される。このようにＢＲＰｅｒｉｏｄの反転信号をＡＮＤ８に入力することで、バスリセット期間中にＣＰＵがスタートコマンドを発行した場合に、そのコマンドの実行を取り消すことができる。
【０１２３】
ＡＮＤ４、ＡＮＤ７の出力であるＣａｎｃｅｌ１、Ｃａｎｃｅｌ２は、ＯＲ１に入力される。そして、ＯＲ１の出力であるＩＮＴＢＲＣは、図７のＣＰＵインターフェース６０が含む割り込みコントローラ６４に入力される。
【０１２４】
ＢＲＰｅｒｉｏｄ＝１となるバスリセット期間中に、ＣＰＵがレジュームコマンド又はスタートコマンドを発行すると、Ｃａｎｃｅｌ１又はＣａｎｃｅｌ２が１になる。これにより、ＩＮＴＢＲＣが１になり、割り込みコントローラ６４を介してＣＰＵに対して割り込みが発生する。するとＣＰＵが要因レジスタ６５を読みに行き、割り込み要因を解析する。これにより、バスリセットの発生によりコマンドが取り消されたことが、ＣＰＵ（ファームウェア）に知らされることになる。
【０１２５】
スタート制御回路３１０は、データ転送のスタートを制御する回路であり、信号Ｓｔａｒｔ、ＦｒｏｍＳｔｒｅａｍ、ＦｅｔｃｈＤｏｎｅ、ＭａｋｅＤｏｎｅ、ＳｔｒｅａｍＤｏｎｅが入力される。また、信号ＳｔａｒｔＦｅｔｃｈ、ＳｔａｒｔＭａｋｅ、ＳｔａｒｔＳｔｒｅａｍを出力する。
【０１２６】
ここでＳｔａｒｔは、前述のように、ＣＰＵ（ファームウェア）がデータ転送のスタートコマンドをアクティブにした場合に１になる信号である。
【０１２７】
またＦｒｏｍＳｔｒｅａｍは、ページテーブルのフェッチや生成を行わずにストリーム転送（図４のＡ３、図５のＢ１に示す転送）から処理をスタートする場合に１になる信号である。
【０１２８】
またＳｔａｒｔＦｅｔｃｈ、ＳｔａｒｔＭａｋｅ、ＳｔａｒｔＳｔｒｅａｍは、各々、図１０のページテーブルフェッチ回路２１０、ページテーブル生成回路２２０、転送実行制御回路２４０に対して、ページテーブルのフェッチ、ページテーブルの生成、ストリームの転送の開始を指示する場合に１になる信号である。
【０１２９】
また、ＦｅｔｃｈＤｏｎｅ、ＭａｋｅＤｏｎｅ、ＳｔｒｅａｍＤｏｎｅは、各々、ページテーブルのフェッチ、ページテーブルの生成、ストリームの転送が完了した場合に１になる信号である。
【０１３０】
またＥｘｅｃは、データ転送の実行中に１になる信号である。
【０１３１】
ポーズ制御回路３２０は、データ転送のポーズを制御する回路であり、信号ＤｅｌａｙｅｄＰａｕｓｅ、Ｒｅｓｕｍｅ、Ｅｘｅｃ、Ｅｒｒが入力され、信号Ｐａｕｓｅを出力する。
【０１３２】
ここでＤｅｌａｙｅｄＰａｕｓｅ、Ｒｅｓｕｍｅは、前述のように、ＣＰＵがデータ転送のポーズコマンド、レジュームコマンドを発行した場合に１になる信号である。但し、ＤｅｌａｙｅｄＰａｕｓｅはＲｅｓｕｍｅよりも１クロック（ＳＣＬＫ）分だけ遅延した信号になっている。
【０１３３】
またＥｒｒは、データ転送にエラーが生じた場合などに１になる信号である。
【０１３４】
またＰａｕｓｅは、図１５のステップＳ５６で説明したように、データ転送をポーズする場合に１になる信号である。
【０１３５】
次にスタート制御回路３１０の動作について図１８の状態遷移図を用いて説明する。
【０１３６】
まず、状態Ｓ００ではＣｏｍｐ（完了信号）＝０、Ｅｘｅｃ＝０になっている。そして、Ｓｔａｒｔ＝１且つＦｒｏｍＳｔｒｅａｍ＝０になると、次のクロックで状態Ｓ０１に移行する。そして状態Ｓ０１ではＥｘｅｃ＝１にする。また、ページテーブルが存在する場合はＳｔａｒｔＦｅｔｃｈ＝１にし、ページテーブルが存在しない場合はＳｔａｒｔＭａｋｅ＝１にする。これによりページテーブルのフェッチ又は生成が開始する。そして、次のクロックで状態Ｓ０２に移行し、ＳｔａｒｔＦｅｔｃｈ＝０、ＳｔａｒｔＭａｋｅ＝０に戻す。
【０１３７】
なお状態Ｓ００において、Ｓｔａｒｔ＝１且つＦｒｏｍＳｔｒｅａｍ＝１になると、次のクロックで状態Ｓ０４に移行し、ページテーブルのフェッチや生成の処理が省略される。
【０１３８】
状態Ｓ０２では、ＦｅｔｃｈＤｏｎｅ＝１且つＭａｋｅＤｏｎｅ＝１になると、次のクロックで状態Ｓ０３に移行する。そして、Ｐａｕｓｅ＝１であれば状態Ｓ０３にとどまる。このように本実施形態では、Ｐａｕｓｅ＝１になると、ページテーブルのフェッチ又は生成の完了後に転送処理がポーズされる。
【０１３９】
一方、Ｐａｕｓｅ＝０になると状態Ｓ０４に移行して、ＳｔａｒｔＳｔｒｅａｍ＝１になり、ストリーム転送がスタートする。そして、次のクロックでＳｔａｒｔＳｔｒｅａｍ＝０に戻す（状態Ｓ０５）。そして、ストリーム転送が完了してＳｔｒｅａｍＤｏｎｅ＝１になると、完了信号Ｃｏｍｐ＝１にする（状態Ｓ０６）。
【０１４０】
次にポーズ制御回路３２０の動作について図１９の状態遷移図を用いて説明する。
【０１４１】
状態Ｓ１０ではＰａｕｓｅ＝０になっている。そして、ＤｅｌａｙｅｄＰａｕｓｅ＝１且つＥｘｅｃ＝１になると、次のクロックで状態Ｓ１１に移行し、Ｐａｕｓｅ＝１になる。これにより転送処理がポーズされる。そして、Ｒｅｓｕｍｅ＝１且つＥｒｒ＝０（或いはＥｘｅｃ＝０）になると、Ｐａｕｓｅ＝０に戻る。これにより、ポーズされていた転送処理がレジュームされるようになる。
【０１４２】
図２０に、図１７のメイン制御回路の動作を説明するためのタイミング波形図を示す。
【０１４３】
図２０において、ＢＲＤｅｔｅｃｔはバスリセットを検出した場合に１になる信号である。またＳｅｌｆＩＤＥｎｄは、バスリセット発生後に行われる自己識別処理が終了した場合に１になる信号である。そして、バスリセット期間信号ＢＲＰｅｒｉｏｄは、ＢＲＤｅｔｅｃｔの立ち下がりで１になり、ＳｅｌｆＩＤＥｎｄの立ち下がりで０になる。従って、ＢＲＰｅｒｉｏｄ＝１となる期間がバスリセット期間になる。
【０１４４】
例えば図２０のＥ１では、ＢＲＰｅｒｉｏｄ＝０になっており、バスリセット期間になっていない。そして、この場合には、ＣＰＵがスタート（レジューム）コマンドを発行し、Ｅ２に示すようにＤＩＮのビットＭ（Ｌ）とＷＲが１になると、Ｅ３に示すように信号Ｓｔａｒｔ（Ｒｅｓｕｍｅ）が１になる。これにより、データ転送がスタート（レジューム）する。
【０１４５】
一方、図２０のＥ４では、ＢＲＰｅｒｉｏｄ＝１になっており、バスリセット期間になっている。そして、この場合には、ＣＰＵがスタート（レジューム）コマンドを発行し、Ｅ５に示すようにＤＩＮのビットＭ（Ｌ）とＷＲが１になっても、Ｅ６に示すように信号Ｓｔａｒｔ（Ｒｅｓｕｍｅ）は０のままとなる。従って、ＣＰＵの発行したスタート（レジューム）コマンドは取り消される。即ち、図１７のＡＮＤ５、ＡＮＤ８に、ＢＲＰｅｒｉｏｄの反転信号（＝０）が入力されることにより、Ｑ８、Ｑ１２の信号パルスがマスクされ、ＡＮＤ５、ＡＮＤ８の出力Ｑ８’、Ｑ１２’が０に固定される。これにより、信号Ｓｔａｒｔ（Ｒｅｓｍｅ）も０に固定され、データ転送のスタート（レジューム）が取り消される。
【０１４６】
また、この時、ＡＮＤ４、ＡＮＤ７には、反転信号ではなくてＢＲＰｅｒｉｏｄそのものが入力されている。従って、スタート（レジューム）コマンドが発行されてＱ８、Ｑ１２に信号パルスが発生すると、Ｃａｎｃｅｌ１、Ｃａｎｃｅ２が１になり、図２０のＥ７に示すようにＩＮＴＢＲＣが１になる。これにより、スタート（レジューム）コマンドが取り消されたことが、割り込み回路６４を介してＣＰＵに知らされるようになる。
【０１４７】
以上のように本実施形態によれば、バスリセット期間にスタート（レジューム）コマンドが発行されても、そのコマンドが取り消される。従って、ＣＰＵはスタートコマンドを発行したつもりであっても、実際のデータ転送は行われないようになる。
【０１４８】
即ち、バスリセットの発生後に転送開始が指示されたパケットは、本来無効となるべきパケットである。しかしながら、本実施形態のデータ転送制御装置では、スタートコマンドが発行されると、図４のＡ３、図５のＢ１に示す一連のパケットがハードウェアにより自動的に連続転送されてしまう。そして、このパケット転送は、ＣＰＵが転送を停止しない限り続けられることになる。従って、無効な多数のパケットが転送されてしまったり、リンクコアなどの他の回路ブロックの誤動作を招いたり、ＣＰＵの処理を混乱させたりするなどの不具合が生じる可能性がある。本実施形態によれば、ＣＰＵが発行したスタートコマンドは即座に取り消されるため、このような不具合を解消できる。
【０１４９】
例えば、本実施形態と異なる手法として以下のような手法も考えられる。即ち、バスリセット期間中にスタートコマンドが発行されても、そのコマンドを取り消さずに、割り込みだけを発生させる。そして、この割り込みによりバスリセットの発生を知らされたＣＰＵが、例えば図１０のレジスタ２０４に１を書き込み、パケット転送をポーズする。
【０１５０】
しかしながら、この手法では、スタートコマンドの発行後、ＣＰＵがレジスタ２０４に１を書き込み、転送処理をポーズするまでの間に、非常に多数のパケットが転送されしまう不具合が生じる。特に、この種のデータ転送制御装置が組み込まれる電子機器には、安価で低速なＣＰＵが使用される場合が多い。そして、このような低速なＣＰＵが使用されると、スタートコマンドの発行後、転送処理をポーズするまでの期間が長時間になってしまい、上記不具合が更に深刻なものとなる。
【０１５１】
本実施形態によれば、バスリセット期間中にＣＰＵが発行したスタートコマンドは即座に取り消され、データ転送は開始されないため、結局、パケットは１つも転送されないことになる。そして、取り消し後に事後承認的に、コマンドを取り消したことが、割り込みを用いてＣＰＵに知らされる。従って、ＣＰＵの速度に依存せずに、上記のような不具合を確実に防止できるようになる。
【０１５２】
なお、バスリセットの発生時期は任意であるため、ＣＰＵがスタートコマンドを発行した後にバスリセットが発生する場合もある。そして、バスリセット発行後のパケット（トランザクション）は無効となるため、スタートコマンド発行後にバスリセットが発生した場合には、転送処理を一時中断する必要がある。
【０１５３】
このような場合に本実施形態では、ＣＰＵが図１０のレジスタ２０４（図１７のＤＦＦ１）に１を書き込むことで、転送処理をポーズできるという特徴がある。そして、無効なパケット（バスリセット発生後のパケット）と無効でないパケット（バスリセット発生前のパケット）を区別する処理などを行った後に、図１０のレジスタ２０６（図１７のＤＦＦ６）に１を書き込むことで、転送処理をレジュームすることもできる。
【０１５４】
なお、この場合に本実施形態では、転送処理をポーズする場所が予め定められている（例えば図１５のステップＳ５６、図１６のステップＳ７２、図１８の状態Ｓ０３）。例えば任意の場所でポーズできるようにすると、回路構成が複雑化するなどの問題が生じるが、ポーズ場所を予め定めておけば、回路構成を簡素化できる。そして、情報を更新した後（図１５のステップＳ５６）や、データ転送の開始前（図１６のステップＳ７２）や、ページテーブルのフェッチや生成の完了後（図１８の状態Ｓ０３）などのように、区切りの良い場所で転送処理をポーズするようにすれば、動作の安定化、バグの発生防止などを図れるようになる。
【０１５５】
５．ステップ実行
さて、図１７の回路では、転送処理のステップ実行も可能になっている。即ちＣＰＵがレジュームコマンドとポーズコマンドを同時に発行すると、転送処理がステップ実行される。
【０１５６】
例えば図２１のＦ１では、データバス信号ＤＩＮのビットＫとＷＲが１になっている。そして、この場合には、Ｆ２に示すように、ＤｅｌａｙｅｄＰａｕｓｅのみが１になり、転送処理がポーズする。
【０１５７】
一方、図２１のＦ３では、ＤＩＮのビットＫ及びＬの双方とＷＲが１になっている。そして、この場合には、Ｆ４に示すようにＲｅｓｕｍｅが１になり、その後に１クロックだけ遅延してＤｅｌａｙｅｄＰａｕｓｅが１になる。そして、これらの信号Ｒｅｓｕｍｅ、ＤｅｌａｙｅｄＰａｕｓｅがポーズ制御回路３２０に入力されることで、転送処理のステップ実行が実現される。
【０１５８】
例えば図２２では、ＣＰＵがスタートコマンドを発行すると、Ｇ１に示すようにＳｔａｒｔが１になる。これによりＧ２に示すようにＥｘｅｃ＝１になり（図１８の状態Ｓ０１）、転送処理がスタートする。
【０１５９】
次に、ＣＰＵがポーズコマンドを発行して、Ｇ３に示すようにＤｅｌａｙｅｄＰａｕｓｅが１（アクティブ）になると、Ｇ４に示すようにＰａｕｓｅ＝１になる（図１９の状態Ｓ１１）。これにより、予め定められたポーズ場所（例えば図１５のステップＳ５６、図１８の状態Ｓ０３）で転送処理がポーズする。
【０１６０】
次に、ＣＰＵがレジュームコマンドを発行して、Ｇ５に示すようにＲｅｓｕｍｅが１（アクティブ）になると、Ｇ６に示すようにＰａｕｓｅ＝０になり（図１９の状態Ｓ１０）、転送処理がレジュームする。そして、ＣＰＵがポーズコマンドを発行して、Ｇ７に示すようにＤｅｌａｙｅｄＰａｕｓｅが１になると、転送処理が再度ポーズする。
【０１６１】
次に、ＣＰＵがポーズコマンドとレジュームコマンドの両方を同時に発行し、前述の図２１のＦ３のようにＤＩＮのビットＫ及びＬの双方とＷＲが１になると、図２２のＧ８に示すようにＲｅｓｕｍｅが１になった後に１クロックだけ遅延してＤｅｌａｙｅｄＰａｕｓｅが１になる。これによりＰａｕｓｅは、Ｇ１０に示すように１から０に変化して、１クロック期間だけ０になった後に、Ｇ１１に示すように１に戻る。従って、１クロック期間だけ転送処理が実行された後に、次にポーズできる場所で転送処理がポーズする。即ち、転送処理のステップ実行が実現される。
【０１６２】
以上のようなステップ実行が可能になると、パケットを１つずつ転送する処理が可能になる。即ち、図１５のペイロード分割の時にＣＰＵがポーズコマンドとレジュームコマンドを同時に発行すると、まず、信号Ｐａｕｓｅ＝０になることで、ステップＳ５７で転送処理がレジュームされる。そして、その後、Ｐａｕｓｅ＝１になると、図１４のステップＳ４３、図１５のステップＳ５１〜Ｓ５５の処理が行われペイロードサイズの１つのパケットが転送され、その後に転送処理がポーズされる（ステップＳ５６）。そして、再度、ＣＰＵがポーズコマンドとレジュームコマンドを同時に発行すると、次のパケットが転送され、その後に転送処理がポーズされる。このようにパケットを１つずつ転送するステップ実行が可能になることで、ＳＢＰ−２コアの回路やファームウェアのデバッグ等が可能になる。
【０１６３】
例えば、本実施形態と異なる手法として、まず、ＣＰＵがレジュームコマンドを発行してパケットを転送し、次のライトサイクルでＣＰＵがポーズコマンドを発行して、パケットの転送をポーズする手法も考えることができる。しかしながら、図２１から明らかなように、ＣＰＵの動作速度は一般的に遅く、ＣＰＵのライトサイクルは長い。従って、上記手法では、ＣＰＵがレジュームコマンドを発行した後、ポーズコマンドを発行するまでの間に、複数のパケットが転送されてしまうことになる。即ち、パケットを１つずつ転送するステップ実行を実現できない。
【０１６４】
これに対して本実施形態では、単に図１７のＤＦＦ５を１つ追加してＤｅｌａｙｅｄＰａｕｓｅをＲｅｓｕｍｅよりも１クロック期間だけ遅延させるという簡易な手法で、パケットを１つずつ転送するステップ実行の実現に成功している。
【０１６５】
６．電子機器
次に、本実施形態のデータ転送制御装置を含む電子機器の例について説明する。
【０１６６】
例えば図２３（Ａ）に電子機器の１つであるプリンタの内部ブロック図を示し、図２４（Ａ）にその外観図を示す。ＣＰＵ（マイクロコンピュータ）５１０はシステム全体の制御などを行う。操作部５１１はプリンタをユーザが操作するためのものである。ＲＯＭ５１６には、制御プログラム、フォントなどが格納され、ＲＡＭ５１８はＣＰＵ５１０のワーク領域として機能する。表示パネル５１９はプリンタの動作状態をユーザに知らせるためのものである。
【０１６７】
ＰＨＹデバイス５０２、データ転送制御装置５００を介して、パーソナルコンピュータなどの他のノードから送られてきた印字データは、バス５０４を介して印字処理部５１２に直接送られる。そして、印字データは、印字処理部５１２にて所与の処理が施され、プリントヘッダなどからなる印字部（データを出力するための装置）５１４により紙に印字されて出力される。
【０１６８】
図２３（Ｂ）に電子機器の１つであるスキャナの内部ブロック図を示し、図２４（Ｂ）にその外観図を示す。ＣＰＵ５２０はシステム全体の制御などを行う。操作部５２１はスキャナをユーザが操作するためのものである。ＲＯＭ５２６には制御プログラムなどが格納され、ＲＡＭ５２８はＣＰＵ５２０のワーク領域として機能する。
【０１６９】
光源、光電変換器などからなる画像読み取り部（データを取り込むための装置）５２２により原稿の画像が読み取られ、読み取られた画像のデータは画像処理部５２４により処理される。そして、処理後の画像データがバス５０５を介してデータ転送制御装置５００に直接送られる。データ転送制御装置５００は、この画像データにヘッダなどを付加することでパケットを生成し、ＰＨＹデバイス５０２を介してパーソナルコンピュータなどの他のノードに送信する。
【０１７０】
図２３（Ｃ）に電子機器の１つであるＣＤ−ＲＷドライブの内部ブロック図を示し、図２４（Ｃ）にその外観図を示す。ＣＰＵ５３０はシステム全体の制御などを行う。操作部５３１はＣＤ−ＲＷをユーザが操作するためのものである。ＲＯＭ５３６には制御プログラムなどが格納され、ＲＡＭ５３８はＣＰＵ５３０のワーク領域として機能する。
【０１７１】
レーザ、モータ、光学系などからなる読み取り＆書き込み部（データを取り込むための装置又はデータを記憶するための装置）５３３によりＣＤ−ＲＷ５３２から読み取られたデータは、信号処理部５３４に入力され、エラー訂正処理などの所与の信号処理が施される。そして、信号処理が施されたデータが、バス５０６を介してデータ転送制御装置５００に直接送られる。データ転送制御装置５００は、このデータにヘッダなどを付加することでパケットを生成し、ＰＨＹデバイス５０２を介してパーソナルコンピュータなどの他のノードに送信する。
【０１７２】
一方、ＰＨＹデバイス５０２、データ転送制御装置５００を介して、他のノードから送られてきたデータは、バス５０６を介して信号処理部５３４に直接送られる。そして、信号処理部５３４によりこのデータに所与の信号処理が施され、読み取り＆書き込み部５３３によりＣＤ−ＲＷ５３２に記憶される。
【０１７３】
なお、図２３（Ａ）、（Ｂ）、（Ｃ）において、ＣＰＵ５１０、５２０、５３０の他に、データ転送制御装置５００でのデータ転送制御のためのＣＰＵを別に設けるようにしてもよい。
【０１７４】
また、図２３（Ａ）、（Ｂ）、（Ｃ）ではＲＡＭ５０１（図７のＲＡＭ８０に相当）がデータ転送制御装置５００の外部に設けられているが、ＲＡＭ５０１をデータ転送制御装置５００に内蔵させてもよい。
【０１７５】
本実施形態のデータ転送制御装置を電子機器に用いることで、高速なデータ転送が可能になる。従って、ユーザがパーソナルコンピュータなどによりプリントアウトの指示を行った場合に、少ないタイムラグで印字が完了するようになる。また、スキャナへの画像取り込みの指示の後に、少ないタイムラグで読み取り画像をユーザは見ることができるようになる。また、ＣＤ−ＲＷからのデータの読み取りや、ＣＤ−ＲＷへのデータの書き込みを高速に行うことができるようになる。更に、例えば１つのホストシステムに複数の電子機器を接続して利用したり、複数のホストシステムに複数の電子機器を接続して利用したりすることも容易になる。
【０１７６】
また本実施形態のデータ転送制御装置を電子機器に用いることで、ＣＰＵ上で動作するファームウェアの処理負担が軽減され、安価なＣＰＵや低速のバスを用いることが可能になる。更に、データ転送制御装置の低コスト化、小規模化を図れるため、電子機器の低コスト化、小規模化も図れるようになる。
【０１７７】
また、バスに新たな電子機器が接続され、バスリセットが発生した場合にも、バスリセットを原因とする不具合の発生が防止され、電子機器の安定した動作を保証できるようになる。
【０１７８】
なお本実施形態のデータ転送制御装置を適用できる電子機器としては、上記以外にも例えば、種々の光ディスクドライブ（ＣＤ−ＲＯＭ、ＤＶＤ）、光磁気ディスクドライブ（ＭＯ）、ハードディスクドライブ、ＴＶ、ＶＴＲ、ビデオカメラ、オーディオ機器、電話機、プロジェクタ、パーソナルコンピュータ、電子手帳、ワードプロセッサなど種々のものを考えることができる。
【０１７９】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【０１８０】
例えば、本発明のデータ転送制御装置の構成は、図７に示す構成が特に望ましいが、これに限定されるものではない。
【０１８１】
また、転送実行回路（ＳＢＰ−２コア）の構成も図１０に示す構成が特に望ましいが、これに限定されるものではない。
【０１８２】
また、転送処理のスタート、ポーズ、レジュームの手法も、本実施形態で説明した手法に限定されない。
【０１８３】
また、スタート手段、ポーズ手段、レジューム手段、取り消し手段の構成も、図１７で例示したものが特に望ましいが、これに限定されるものではない。
【０１８４】
また、コマンドの実行が取り消されたことを処理手段に知らせる手法は、図１７のように割り込みを用いるのが特に望ましいが、これに限定されるものではない。
【０１８５】
また、本発明はＩＥＥＥ１３９４におけるバスリセットに特に有用だが、これ以外にも、少なくともノードのトポロジー情報をクリアするようなリセットであれば適用できる。
【０１８６】
また、本発明は、ＩＥＥＥ１３９４規格でのデータ転送に適用されることが特に望ましいが、これに限定されるものではない。例えばＩＥＥＥ１３９４と同様の思想に基づく規格やＩＥＥＥ１３９４を発展させた規格におけるデータ転送にも本発明は適用できる。
【図面の簡単な説明】
【図１】ＩＥＥＥ１３９４の層構造について示す図である。
【図２】ＳＢＰ−２について説明するための図である。
【図３】ＳＢＰ−２のデータ転送処理の概略について説明するための図である。
【図４】データ（ストリーム）をターゲットからイニシエータに転送する場合のコマンド処理について説明するための図である。
【図５】データ（ストリーム）をイニシエータからターゲットに転送する場合のコマンド処理について説明するための図である。
【図６】図６（Ａ）、（Ｂ）、（Ｃ）は、ページテーブルについて説明するための図である。
【図７】本実施形態のデータ転送制御装置の構成例を示す図である。
【図８】ＲＡＭ（パケット記憶手段）の分離（分割）手法について説明するための図である。
【図９】本実施形態のデータ転送の手法について説明するための図である。
【図１０】ＳＢＰ−２コア（転送実行回路）の構成例を示す図である。
【図１１】メイン制御回路の動作を説明するためのフローチャートである。
【図１２】ページテーブルの生成手法について説明するための図である。
【図１３】パケットのペイロード分割手法について説明するための図である。
【図１４】転送実行制御回路の動作を説明するためのフローチャートである。
【図１５】ペイロード分割回路の動作を説明するためのフローチャートである。
【図１６】送信ヘッダ生成回路、トランザクション制御回路の動作について説明するためのフローチャートである。
【図１７】メイン制御回路の構成例を示す図である。
【図１８】スタート制御回路の動作を説明するための状態遷移図である。
【図１９】ポーズ制御回路の動作を説明するための状態遷移図である。
【図２０】バスリセット期間に発行されたコマンドを取り消す手法について説明するためのタイミング波形図である。
【図２１】転送処理のステップ実行について説明するためのタイミング波形図である。
【図２２】転送処理のステップ実行について説明するためのタイミング波形図である。
【図２３】図２３（Ａ）、（Ｂ）、（Ｃ）は、種々の電子機器の内部ブロック図の例である。
【図２４】図２４（Ａ）、（Ｂ）、（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
１０  ＰＨＹインターフェース
２０  リンクコア
２２  レジスタ
３０  ＦＩＦＯ（ＡＴＦ）
３２  ＦＩＦＯ（ＩＴＦ）
３４  ＦＩＦＯ（ＲＦ）
４０  ＤＭＡＣ（ＡＴＦ用）
４２  ＤＭＡＣ（ＩＴＦ用）
４４  ＤＭＡＣ（ＲＦ用）
４６  レジスタ
５０  ポートインターフェース
５２  ＦＩＦＯ（ＰＦ）
５４  ＤＭＡＣ（ＰＦ用）
５６  レジスタ
６０  ＣＰＵインターフェース
６２  アドレスデコーダ
６３  データ同期化回路
６４  割り込みコントローラ
６５  要因レジスタ
６６  ＣＰＵ
６８  クロック制御回路
７０  バッファマネージャ
７２  レジスタ
７４  調停回路
７６  シーケンサ
８０  ＲＡＭ（パケット記憶手段）
８４  ＳＢＰ−２コア（転送実行回路）
８６  ＤＡＭＡＣ（ＳＢＰ−２用）
９０、９２、９４  バス（第１のバス）
９５、９６        バス（第２のバス）
９９              バス（第５のバス）
１００、１０２、１０４、１０５、
１０６、１０７、１０８、１０９  バス（第３のバス）
１１０            バス（第４のバス）
１２０  データ転送制御装置
１２２  ＰＨＹデバイス
１２３  相手ノード
１２４  アプリケーション層のデバイス
２００  メイン制御回路
２０２、２０４、２０６、２０８  レジスタ
２１０  ページテーブルフェッチ回路
２２０  ページテーブル生成回路
２２２、２２４、２２６  レジスタ
２２８  エレメントカウンタ
２３０  エレメント保持回路
２３２、２３４  レジスタ
２４０  転送実行（ストリームタスク）制御回路
２４２、２４４  レジスタ
２５０  ペイロード分割回路
２５２、２５４  レジスタ
２６０  送信ヘッダ生成回路
２７０  トランザクション制御回路
２８０  スプリットタイマ
２９０  バッファインターフェース
３００  取り消し回路
３１０  スタート制御回路
３２０  ポーズ制御回路
【図１】
0003606133.tif 000002
【図２】
0003606133.tif 000003
【図３】
0003606133.tif 000004
【図４】
0003606133.tif 000005
【図５】
0003606133.tif 000006
【図６】
0003606133.tif 000007
【図７】
0003606133.tif 000008
【図８】
0003606133.tif 000009
【図９】
0003606133.tif 000010
【図１０】
0003606133.tif 000011
【図１１】
0003606133.tif 000012
【図１２】
0003606133.tif 000013
【図１３】
0003606133.tif 000014
【図１４】
0003606133.tif 000015
【図１５】
0003606133.tif 000016
【図１６】
0003606133.tif 000017
【図１７】
0003606133.tif 000018
【図１８】
0003606133.tif 000019
【図１９】
0003606133.tif 000020
【図２０】
0003606133.tif 000021
【図２１】
0003606133.tif 000022
【図２２】
0003606133.tif 000023
【図２３】
0003606133.tif 000024
【図２４】
0003606133.tif 000025