(57)【特許請求の範囲】
【請求項１】
バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
ノード間でのパケット転送のためのサービスを提供するリンク手段と、
パケットを格納するためのランダムアクセス可能な記憶手段と、
前記リンク手段を介して各ノードから転送されてくるパケットを前記記憶手段に書き込む書き込み手段と、
上層により前記記憶手段に書き込まれたパケットを読み出し、前記リンク手段に渡す読み出し手段とを含み、
前記記憶手段が、
パケットの制御情報が格納される制御情報領域と、パケットのデータが格納されるデータ領域とに分離され、
前記書き込み手段が、
パケットの制御情報を前記制御情報領域に書き込み、パケットのデータを前記データ領域に書き込むパケット分離手段を含み、
前記リンク手段が、
パケットの少なくとも制御情報とデータを区別するためのタグ情報を生成すると共に、生成された該タグ情報をパケットに関連づけ、
前記パケット分離手段が、
パケットに関連づけられた前記タグ情報に基づいて、パケットの制御情報を前記制御情報領域に書き込み、パケットのデータを前記データ領域に書き込むことを特徴とするデータ転送制御装置。
【請求項２】
バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
ノード間でのパケット転送のためのサービスを提供するリンク手段と、
パケットを格納するためのランダムアクセス可能な記憶手段と、
前記リンク手段を介して各ノードから転送されてくるパケットを前記記憶手段に書き込む書き込み手段と、
上層により前記記憶手段に書き込まれたパケットを読み出し、前記リンク手段に渡す読み出し手段とを含み、
前記記憶手段が、
パケットの制御情報が格納される制御情報領域と、パケットのデータが格納されるデータ領域とに分離され、
前記記憶手段の前記データ領域が、
アイソクロナス転送用データ領域と非同期転送用データ領域とに分離されていることを特徴とするデータ転送制御装置。
【請求項３】
バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
ノード間でのパケット転送のためのサービスを提供するリンク手段と、
パケットを格納するためのランダムアクセス可能な記憶手段と、
前記リンク手段を介して各ノードから転送されてくるパケットを前記記憶手段に書き込む書き込み手段と、
上層により前記記憶手段に書き込まれたパケットを読み出し、前記リンク手段に渡す読み出し手段とを含み、
前記記憶手段が、
パケットの制御情報が格納される制御情報領域と、パケットのデータが格納されるデータ領域とに分離され、
前記記憶手段の前記データ領域が非同期転送用データ領域を含み、
前記非同期転送用データ領域が、第１、第２の非同期転送用データ領域を含む複数の領域に分離されていることを特徴とするデータ転送制御装置。
【請求項４】
バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
ノード間でのパケット転送のためのサービスを提供するリンク手段と、
パケットを格納するためのランダムアクセス可能な記憶手段と、
前記リンク手段を介して各ノードから転送されてくるパケットを前記記憶手段に書き込む書き込み手段と、
上層により前記記憶手段に書き込まれたパケットを読み出し、前記リンク手段に渡す読み出し手段とを含み、
前記記憶手段が、
パケットの制御情報が格納される制御情報領域と、パケットのデータが格納されるデータ領域とに分離され、
前記記憶手段の前記データ領域がアイソクロナス転送用データ領域と第１の非同期転送用データ領域とに分離され、
前記アイソクロナス転送用データ領域が第２の非同期転送用データ領域として使用されることを特徴とするデータ転送制御装置。
【請求項５】
バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
ノード間でのパケット転送のためのサービスを提供するリンク手段と、
パケットを格納するためのランダムアクセス可能な記憶手段と、
前記リンク手段を介して各ノードから転送されてくるパケットを前記記憶手段に書き込む書き込み手段と、
上層により前記記憶手段に書き込まれたパケットを読み出し、前記リンク手段に渡す読み出し手段とを含み、
前記記憶手段が、
パケットの制御情報が格納される制御情報領域と、パケットのデータが格納されるデータ領域とに分離され、
前記記憶手段の前記データ領域が複数の領域に分離され、
パケットの制御情報に基づき、該分離された複数の領域のいずれかにパケットのデータを書き込む手段を含むことを特徴とするデータ転送制御装置。
【請求項６】
バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
ノード間でのパケット転送のためのサービスを提供するリンク手段と、
パケットを格納するためのランダムアクセス可能な記憶手段と、
前記リンク手段を介して各ノードから転送されてくるパケットを前記記憶手段に書き込む書き込み手段と、
上層により前記記憶手段に書き込まれたパケットを読み出し、前記リンク手段に渡す読み出し手段とを含み、
前記記憶手段が複数の領域に分離される場合において、
分離された領域の一方の境界から他方の境界に向かってパケットの制御情報及びデータの少なくとも一方が格納され、他方の境界に達した場合には一方の境界に戻ってパケットの制御情報及びデータの少なくとも一方が格納されることを特徴とするデータ転送制御装置。
【請求項７】
請求項６において、
１つのパケットの制御情報及びデータの少なくとも一方が格納される領域のサイズが固定となることを特徴とするデータ転送制御装置。
【請求項８】
バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
ノード間でのパケット転送のためのサービスを提供するリンク手段と、
パケットを格納するためのランダムアクセス可能な記憶手段と、
前記リンク手段を介して各ノードから転送されてくるパケットを前記記憶手段に書き込む書き込み手段と、
上層により前記記憶手段に書き込まれたパケットを読み出し、前記リンク手段に渡す読み出し手段と、
前記リンク手段と前記記憶手段との間に設けられる受信用ＦＩＦＯと送信用ＦＩＦＯとを含むことを特徴とするデータ転送制御装置。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記記憶手段が、
パケットが格納される領域と中央処理ユニットのワーク領域とに分離されていることを特徴とするデータ転送制御装置。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記記憶手段が、
パケットの制御情報が格納される制御情報領域と、パケットのデータが格納されるデータ領域とに分離されていることを特徴とするデータ転送制御装置。
【請求項１１】
請求項１０において、
前記記憶手段の前記制御情報領域が、
受信用制御情報領域と送信用制御情報領域とに分離されていることを特徴とするデータ転送制御装置。
【請求項１２】
請求項１０又は１１において、
パケットの制御情報を前記制御情報領域に書き込み、パケットのデータを前記データ領域に書き込むパケット分離手段を含むことを特徴とするデータ転送制御装置。
【請求項１３】
請求項１０乃至１２のいずれかにおいて、
前記記憶手段の前記データ領域が、
受信用データ領域と送信用データ領域とに分離されていることを特徴とするデータ転送制御装置。
【請求項１４】
請求項１０乃至１３のいずれかにおいて、
前記記憶手段の前記データ領域が複数の領域に分離され、
パケットの制御情報に基づき、該分離された複数の領域のいずれかにパケットのデータを書き込む手段を含むことを特徴とするデータ転送制御装置。
【請求項１５】
請求項１乃至１４のいずれかにおいて、
前記記憶手段が複数の領域に分離される場合において、各領域のサイズを可変に制御する手段を含むことを特徴とするデータ転送制御装置。
【請求項１６】
請求項１５において、
各領域のサイズが、電源投入後もダイナミックに可変制御されることを特徴とするデータ転送制御装置。
【請求項１７】
請求項１乃至１６のいずれかにおいて、
前記記憶手段が複数の領域に分離される場合において、
分離された領域の一方の境界から他方の境界に向かってパケットの制御情報及びデータの少なくとも一方が格納され、他方の境界に達した場合には一方の境界に戻ってパケットの制御情報及びデータの少なくとも一方が格納されることを特徴とするデータ転送制御装置。
【請求項１８】
請求項１７において、
１つのパケットの制御情報及びデータの少なくとも一方が格納される領域のサイズが固定となることを特徴とするデータ転送制御装置。
【請求項１９】
請求項１乃至１８のいずれかにおいて、
前記リンク手段と前記記憶手段との間に設けられる受信用ＦＩＦＯと送信用ＦＩＦＯとを含むことを特徴とするデータ転送制御装置。
【請求項２０】
請求項１乃至１９のいずれかにおいて、
ＩＥＥＥ１３９４の規格に準拠したデータ転送を行うことを特徴とするデータ転送制御装置。
【請求項２１】
請求項１乃至２０のいずれかのデータ転送制御装置と、
前記データ転送制御装置及びバスを介して他のノードから受信したデータに所与の処理を施す装置と、
処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする電子機器。
【請求項２２】
請求項１乃至２０のいずれかのデータ転送制御装置と、
前記データ転送制御装置及びバスを介して他のノードに送信するデータに所与の処理を施す装置と、
処理が施されるデータを取り込むための装置とを含むことを特徴とする電子機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送制御装置及びこれを含む電子機器に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
近年、ＩＥＥＥ１３９４と呼ばれるインターフェース規格が脚光を浴びている。このＩＥＥＥ１３９４は、次世代のマルチメディアにも対応可能な高速シリアルバスインターフェースを規格化したものである。このＩＥＥＥ１３９４によれば、動画像などのリアルタイム性が要求されるデータも扱うことができる。また、ＩＥＥＥ１３９４のバスには、プリンタ、スキャナ、ＣＤ−Ｒドライブ、ハードディスクドライブなどのコンピュータの周辺機器のみならず、ビデオカメラ、ＶＴＲ、ＴＶなどの家庭用電化製品も接続できる。このため、電子機器のデジタル化を飛躍的に促進できるものとして期待されている。
【０００３】
このようなＩＥＥＥ１３９４の概要については、例えば「ＩＥＥＥ１３９４ハイ・パフォーマンス・シリアルバスの概要」（Ｉｎｔｅｒｆａｃｅ  Ａｐｒ．１９９６の１〜１０頁）、「ＰＣ周辺機器用バス規格群総覧」（Ｉｎｔｅｒｆａｃｅ  Ｊａｎ．１９９７の１０６頁〜１１６頁）、「ＩＥＥＥ１３９４−１９９５（ＦｉｒｅＷｉｒｅ）のリアルタイム転送モードとマルチメディア対応プロトコル」（Ｉｎｔｅｒｆａｃｅ  Ｊａｎ．１９９７の１３６〜１４６頁）に開示されている。また、ＩＥＥＥ１３９４に準拠したデータ転送制御装置としては、テキサス・インスツルメンツ社製のＴＳＢ１２ＬＶ３１などが知られている。
【０００４】
しかしながら、このＩＥＥＥ１３９４に準拠したデータ転送制御装置には次のような課題があることが判明した。
【０００５】
即ち、現在のＩＥＥＥ１３９４規格によれば最大で４００Ｍｂｐｓの転送速度が実現可能となっている。しかし、現実には、処理のオーバーヘッドの存在に起因して、システム全体の実転送速度はこれよりもかなり低くなっている。つまり、ＣＰＵ上で動作するファームウェアやアプリケーションソフトが、送信データを準備したり、受信データを取り込んだりするなどの処理に多くの時間を要してしまい、バス上での転送速度が速くても、結局、高速なデータ転送を実現できない。
【０００６】
特に、周辺機器に組み込まれるＣＰＵは、パーソナルコンピュータなどのホストシステムに組み込まれるＣＰＵに比べて処理能力が低い。このため、ファームウェアやアプリケーションソフトの処理のオーバーヘッドの問題は、非常に深刻なものとなる。従って、このようなオーバーヘッドの問題を効果的に解消できる技術が望まれている。
【０００７】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、ファームウェアやアプリケーションソフトなどの処理のオーバーヘッドを軽減し、小規模なハードウェアで高速なデータ転送を実現できるデータ転送制御装置及びこれが用いられる電子機器を提供することにある。
【０００８】
【課題を解決するための手段】
上記課題を解決するために本発明は、バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、ノード間でのパケット転送のためのサービスを提供するリンク手段と、パケットを格納するためのランダムアクセス可能な記憶手段と、前記リンク手段を介して各ノードから転送されてくるパケットを前記記憶手段に書き込む書き込み手段と、上層により前記記憶手段に書き込まれたパケットを読み出し、前記リンク手段に渡す読み出し手段とを含むことを特徴とする。
【０００９】
本発明によれば、各ノードから転送されてくるパケットは、書き込み手段によりランダムアクセス可能な記憶手段に書き込まれる。また、ファームウェアやアプリケーションソフトなどの上層により記憶手段に書き込まれたパケットは、読み出し手段により読み出され、リンク手段に渡される。そして、各ノードに転送される。このように本発明では、パケット格納用のランダムアクセス可能な記憶手段を、リンク手段と上層との間に介在させている。このようにすることで、パケットの受信順序や送信順序に依存せずに、記憶手段の所望の記憶領域にパケットを格納することが可能になる。これにより、パケットを、記憶手段の複数の領域に分離して格納することも可能になる。
【００１０】
また本発明は、前記記憶手段が、パケットの制御情報が格納される制御情報領域と、パケットのデータが格納されるデータ領域とに分離されていることを特徴とする。このようにすることで、ファームウェアやアプリケーションソフトなどの上層の処理負荷を軽減でき、システム全体の実転送速度を向上できる。また、記憶手段からのパケットの読み出し処理や記憶手段への書き込み処理を簡素化できる。
【００１１】
また本発明は、前記記憶手段が、パケットが格納される領域と中央処理ユニットのワーク領域とに分離されていることを特徴とする。このようにすることで、中央処理ユニットのローカルメモリの記憶容量を軽減したり、ローカルメモリの必要性自体を無くすことが可能になる。
【００１２】
また本発明は、前記記憶手段の前記制御情報領域が、受信用制御情報領域と送信用制御情報領域とに分離されていることを特徴とする。このようにすることで、受信用制御情報領域から制御情報を連続して読み出したり、送信用制御情報領域に制御情報を連続して書き込むことが可能になり、処理の簡素化、処理負担の軽減化を図れる。
【００１３】
また本発明は、パケットの制御情報を前記制御情報領域に書き込み、パケットのデータを前記データ領域に書き込むパケット分離手段を含むことを特徴とする。このようにすれば、パケットの制御情報とデータが自動的に、各々、制御情報領域、データ領域に書き込まれるようになり、ファームウェアなどの上層の処理のオーバーヘッドを軽減できる。
【００１４】
また本発明は、前記リンク手段が、パケットの少なくとも制御情報とデータを区別するためのタグ情報を生成すると共に、生成された該タグ情報をパケットに関連づけ、前記パケット分離手段が、パケットに関連づけられた前記タグ情報に基づいて、パケットの制御情報を前記制御情報領域に書き込み、パケットのデータを前記データ領域に書き込むことを特徴とする。このようにすることで、簡易なハードウェア構成で、パケットの制御情報を制御情報領域にデータをデータ領域に格納することが可能になる。
【００１５】
また本発明は、前記記憶手段の前記データ領域が、受信用データ領域と送信用データ領域とに分離されていることを特徴とする。このようにすることで、受信用データ領域から連続して受信データを読み出したり、送信用データ領域に連続して送信データを書き込むことが可能になり、上層の処理のオーバーヘッドを軽減できる。
【００１６】
また本発明は、前記記憶手段の前記データ領域が、アイソクロナス転送用データ領域と非同期転送用データ領域とに分離されていることを特徴とする。このようにすれば、非同期パケットの後にアイソクロナスパケットが転送されてきた場合にも、アイソクロナスパケットを先に処理することなどが可能になる。これにより、アイソクロナス転送に要求される処理のリアルタイム性を維持できるようになる。
【００１７】
また本発明は、前記記憶手段の前記データ領域が非同期転送用データ領域を含み、前記非同期転送用データ領域が、第１、第２の非同期転送用データ領域を含む複数の領域に分離されていることを特徴とする。このようにすれば、非同期転送用データ領域の複数の領域の各々に、用途の異なるデータを別々に格納できるようになる。即ち、例えば、第１の非同期転送用データ領域に、コマンドデータやステータスデータなどの制御用データを格納し、第２の非同期転送用データ領域に、アプリケーションにより出力、記憶、取り込み等されるデータを格納することが可能になる。従って、例えば、アプリケーションにより出力、記憶、取り込み等されるデータを、例えば第２の非同期転送用データ領域に連続して格納することが可能になり、上層の処理負担を軽減できるようになる。
【００１８】
また本発明は、前記記憶手段の前記データ領域がアイソクロナス転送用データ領域と第１の非同期転送用データ領域とに分離され、前記アイソクロナス転送用データ領域が第２の非同期転送用データ領域として使用されることを特徴とする。このようにすれば、アプリケーションがアイソクロナス転送を行わない場合等において、アイソクロナス転送用データ領域を第２の非同期転送用データ領域として使用できるようになる。そして、用途の異なるデータを、第１、第２の非同期転送用データ領域に別々に格納できるようになる。この結果、限られたリソースの有効利用を図りながら、上層の処理負担を軽減できる。
【００１９】
また本発明は、前記記憶手段の前記データ領域が複数の領域に分離され、パケットの制御情報に基づき、該分離された複数の領域のいずれかにパケットのデータを書き込む手段を含むことを特徴とする。このようにすれば、用途の異なるデータを、分離された複数の領域に別々に格納できるようになる。この結果、上層の処理負担の軽減化を図れる。
【００２０】
また本発明は、前記記憶手段が複数の領域に分離される場合において、各領域のサイズを可変に制御する手段を含むことを特徴とする。このようにすれば、アプリケーションに応じた最適な領域分割を実現でき、限られたリソースの有効利用を図れる。
【００２１】
また本発明は、各領域のサイズが、電源投入後もダイナミックに可変制御されることを特徴とする。このようにすれば、受信処理と送信処理が混在するような場合にも、限られたリソースを有効利用することが可能になる。
【００２２】
また本発明は、前記記憶手段が複数の領域に分離される場合において、分離された領域の一方の境界から他方の境界に向かってパケットの制御情報及びデータの少なくとも一方が格納され、他方の境界に達した場合には一方の境界に戻ってパケットの制御情報及びデータの少なくとも一方が格納されることを特徴とする。このようにすれば、ランダムアクセス可能な記憶手段にＦＩＦＯの機能を持たせることが可能になる。また他方の境界に達した場合に一方の境界からパケットの制御情報やデータを格納できるため、限られたリソースを有効利用できる。
【００２３】
また本発明は、１つのパケットの制御情報及びデータの少なくとも一方が格納される領域のサイズが固定となることを特徴とする。このようにすることで、ファームウェアなどによるパケットの取り扱いが簡素化され、ファームウェアなどの処理負担を軽減できる。
【００２４】
なお、本発明では、前記リンク手段と前記記憶手段との間に設けられる受信用ＦＩＦＯと送信用ＦＩＦＯとを含むようにすることができる。
【００２５】
また、本発明では、ＩＥＥＥ１３９４の規格に準拠したデータ転送を行うことが望ましい。
【００２６】
また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して他のノードから受信したデータに所与の処理を施す装置と、処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする。また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して他のノードに送信するデータに所与の処理を施す装置と、処理が施されるデータを取り込むための装置とを含むことを特徴とする。
【００２７】
本発明によれば、他のノードから転送されたデータを電子機器において出力したり記憶したりする処理、電子機器において取り込んだデータを他のノードに転送したりする処理を高速化することが可能になる。また、本発明によれば、データ転送制御装置を小規模化できると共に、データ転送を制御するファームウェアなどの処理負担を軽減できるため、電子機器の低コスト化、小規模化などを図ることも可能になる。
【００２８】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００２９】
１．ＩＥＥＥ１３９４
まず、ＩＥＥＥ１３９４の概要について簡単に説明する。
【００３０】
１．１  データ転送速度、接続トポロジー
ＩＥＥＥ１３９４（ＩＥＥＥ１３９４−１９９５、ＩＥＥＥ１３９４．Ａ）では１００〜４００Ｍｂｐｓの高速なデータ転送が可能となっている（ＩＥＥＥ１３９４．Ｂでは８００〜３２００Ｍｂｐｓ）。また、転送速度が異なるノードをバスに接続することも許される。
【００３１】
各ノードはツリー状に接続されており、１つのバスに最大で６３個のノードが接続可能になっている。なお、バスブリッジを利用すれば約６４０００個のノードを接続することも可能である。
【００３２】
電源が投入されたり、途中でデバイスの抜き差しが発生すると、バスリセットが発生し、接続トポロジーに関する情報が全てクリアされる。そして、バスリセット後、ツリー識別（ルートノードの決定）、自己識別が行われる。その後、アイソクロナスリソースマネージャ、サイクルマスタ、バスマネージャ等の管理ノードが決定される。そして、通常のパケット転送が開始される。
【００３３】
１．２  転送方式
ＩＥＥＥ１３９４では、パケットの転送方式として、信頼性が要求されるデータの転送に好適な非同期転送と、リアルタイム性が要求される動画像や音声などのデータの転送に好適なアイソクロナス転送が用意されている。
【００３４】
図１（Ａ）に、非同期サブアクションの例を示す。１つのサブアクションは、調停、パケット転送、アクノリッジメントからなる。即ち、データ転送に先立って、まず、バスの使用権に関する調停が行われる。そしてソース（転送元）ノードからデスティネーション（転送先）ノードにパケットが転送される。このパケットのヘッダにはソースＩＤとデスティネーションＩＤが含まれる。デスティネーションノードは、このデスティネーションＩＤを読んで、自ノード宛のパケットか否かを判断する。デスティネーションノードは、パケットを受け取ると、ソースノードにアクノリッジメント（ＡＣＫ）のパケットを返す。
【００３５】
パケット転送とＡＣＫの間にはアクノリッジギャップが存在する。また、１つのサブアクションと次のサブアクションの間にはサブアクションギャップが存在する。そして、サブアクションギャップに相当する一定のバス・アイドル時間が経過しないと、次のサブアクションの調停を開始できない。これによりサブアクション相互の衝突が回避される。
【００３６】
図１（Ｂ）に、アイソクロナスサブアクションの例を示す。アイソクロナス転送はブロードキャスト（バスに接続される全てのノードに転送）で実行されるため、パケット受信時にＡＣＫは返送されない。また、アイソクロナス転送では、ノードＩＤではなくチャネル番号を使用してパケット転送が行われる。なお、サブアクション間にはアイソクロナスギャップが存在する。
【００３７】
図１（Ｃ）に、データ転送時のバスの様子を示す。アイソクロナス転送は、サイクルマスタが一定周期毎にサイクルスタートパケットを発生することで開始する。これにより、１つのチャネル当たり、１２５μs毎に少なくとも１つのパケットを転送できるようになる。この結果、動画像や音声などのリアルタイム性が要求されるデータの転送が可能になる。
【００３８】
非同期転送はアイソクロナス転送の合間に行われる。即ち、アイソクロナス転送の方が非同期転送よりも優先順位が高くなっている。これは、図１（Ｃ）に示すように、アイソクロナスギャップの時間を、非同期転送のサブアクションギャップの時間よりも短くすることで実現される。
【００３９】
１．３  ツリー識別
ツリー識別はバスリセットの後に行われる。ツリー識別によりノード間の親子関係やルートノードが決定される。
【００４０】
まず、リーフノード（１つのノードにしか接続されていないノード）が、隣接するノードに、ペアレントノーティファイを送る。例えば図２（Ａ）のようにノードＡ、Ｂ、Ｃ、Ｄ、Ｅが接続されている場合には、ノードＡからノードＢに、ノードＤ及びＥからノードＣに、ペアレントノーティファイ（ＰＮ）が送られる。
【００４１】
ペアレントノーティファイを受け取ったノードは、送り元のノードを自身の子と認知する。そして、チャイルドノーティファイをそのノードに送る。例えば図２（Ａ）では、ノードＢからノードＡに、ノードＣからノードＤ及びＥにチャイルドノーティファイ（ＣＮ）が送られる。これによってノードＢ、Ａ間、ノードＣ、Ｄ間、ノードＣ、Ｅ間の親子関係が決定する。
【００４２】
ノードＢ、Ｃの親子関係は、どちらが先にペアレントノーティファイを送ったかで決定される。例えば図２（Ｂ）のように、ノードＣの方が先にペアレントノーティファイを送ると、ノードＢが親になりノードＣが子になる。
【００４３】
ポートの接続先の全てのノードが自身の子となるノードがルートになる。図２（Ｂ）では、ノードＢがルートになる。なお、ＩＥＥＥ１３９４では、全てのノードがルートになる可能性がある。
【００４４】
１．４  自己識別
ツリー識別の後、自己識別が行われる。自己識別においては、接続トポロジーにおいてルートノードから遠いノードから順にセルフＩＤパケットが転送される。
【００４５】
より具体的には、例えば図３において、まず、ルートノードＢのポート１（番号の小さいポート）に接続されるノードＡが、セルフＩＤパケット（自己識別パケット）を全てのノードにブロードキャストする。
【００４６】
次に、ルートノードＢのポート２（番号が大きいポート）に接続されるノードＣが選択され、このノードＣのポート１（番号の小さいポート）に接続されるノードＤがセルフＩＤパケットをブロードキャストする。次に、ノードＣのポート２（番号の大きいポート）に接続されるノードＥがセルフＩＤパケットをブロードキャストし、その後、ノードＣがブロードキャストする。最後に、ルートであるノードＢがセルフＩＤパケットをブロードキャストし、自己識別が完了する。
【００４７】
セルフＩＤパケットには各ノードのＩＤが含まれる。ブロードキャストを行う時点で他のノードから受け取ったセルフＩＤパケットの個数が、この各ノードのＩＤとなる。例えば図３では、ノードＡがブロードキャストを行う時点では、どのノードもセルフＩＤパケットを発していないため、ノードＡのＩＤは０になる。ノードＡは、このＩＤ＝０をセルフＩＤパケットに含ませてブロードキャストする。また、ノードＤがブロードキャストを行う時点では、ノードＡのみがセルフＩＤパケットを発している。このため、ノードＤのＩＤは１になる。同様に、ノードＥ、Ｃ、ＢのＩＤは、各々、２、３、４になる。
【００４８】
図４（Ａ）にセルフＩＤパケットのフォーマットを示す。同図に示すようにセルフＩＤパケットには各ノードの基本情報が含まれる。具体的には、各ノードのＩＤ（ＰＨＹ＿ＩＤ）、リンク層がアクティブか否か（Ｌ）、ギャップカウント（ｇａｐ＿ｃｎｔ）、転送速度（ｓｐ）、アイソクロナスリソースマネージャになれる能力を有するか否か（Ｃ）、電力状態（ｐｗｒ）、ポートの状態（ｐ０、ｐ１、ｐ２）などに関する情報が含まれる。
【００４９】
なお、図４（Ｂ）に、ノードのポート数が４個以上の場合に使用されるセルフＩＤパケット＃１、＃２、＃３のフォーマットを示す。ポート数が４〜１１個の場合にはセルフＩＤパケット＃０（図４（Ａ））及び＃１が、１２〜１９個の場合にはセルフＩＤパケット＃０、＃１及び＃２が、２０〜２７個の場合にはセルフＩＤパケット＃０、＃１、＃２及び＃３が使用されることになる。
【００５０】
また、図４（Ｃ）、（Ｄ）に、セルフＩＤパケットと同様に、物理層のパケット（ＰＨＹパケット）であるリンクオンパケット、ＰＨＹ構成パケットのフォーマットを示す。
【００５１】
１．５  アイソクロナスリソースマネージャ
アイソクロナスリソースマネージャ（ＩＲＭ）は以下の管理機能を有する。
【００５２】
第１に、アイソクロナス転送に必要な種々のリソースを提供する。例えば、チャネル番号レジスタや帯域幅レジスタを提供する。第２に、バスマネージャのＩＤを示すレジスタを提供する。第３に、バスマネージャがいない場合に、簡易的なバスマネージャとなる役割を有する。
【００５３】
ＩＲＭになれる能力を有し（アイソクロナスリソースを管理する能力を有し）、且つ、動作状態になっている（リンク層がアクティブになっている）ノードの中で（ＩＲＭになれる資格を有するノードの中で）、ルートに最も近い（ＩＤが最も大きい）ノードがＩＲＭになる。より、具体的には、図４（Ａ）のセルフＩＤパケットにおいて、ＩＲＭになれる能力を有するか否かを示すＣ（ＣＯＮＴＥＮＤＥＲ）ビットと、リンク層がアクティブか否かを示すＬ（ＬＩＮＫ＿ＡＣＴＩＶＥ）ビットが共に１になっているノードの中で、ルートに一番近いノード（ＰＨＹ＿ＩＤが一番大きいノード）がＩＲＭになる。例えば、ルートノードのセルフＩＤパケットのＣビットとＬビットが１の場合には、ルートノードがＩＲＭになる。
【００５４】
１．６  サイクルマスタ、バスマネージャ
サイクルマスタは、図１（Ｃ）に示すサイクルスタートパケットを送信する役割を有し、ルートノードがサイクルマスタになる。
【００５５】
バスマネージャは、トポロジーマップ（各ノードの接続状態）の作成、スピードマップの作成、バスの電力管理、サイクルマスタの決定、ギャップカウントの最適化などの仕事を行う。
【００５６】
１．７  プロトコル構成
図５を用いて、ＩＥＥＥ１３９４のプロトコル構成（層構造）について説明する。
【００５７】
ＩＥＥＥ１３９４のプロトコルは、物理層、リンク層、トランザクション層により構成される。また、シリリアルバスマネージメントは、物理層、リンク層、トランザクション層をモニターしたり制御したりするものであり、ノードの制御やバスのリソース管理のための種々の機能を提供する。
【００５８】
物理層は、リンク層により使用されるロジカルシンボルを電気信号に変換したり、バスの調停を行ったり、バスの物理的インターフェースを定義する。
【００５９】
リンク層は、アドレッシング、データチェック、データフレーミング、サイクル制御などを提供する。
【００６０】
トランザクション層は、リード、ライト、ロックなどのトランザクションを行うためのプロトコルを定義する。
【００６１】
物理層及びリンク層は、通常、データ転送制御装置（インターフェースチップ）などのハードウェアにより実現される。また、トランザクション層は、ＣＰＵ上で動作するファームウェアや、ハードウェアにより実現される。
【００６２】
２．全体構成
次に、本実施形態の全体構成について図６を用いて説明する。
【００６３】
図６において、ＰＨＹインターフェース１０は、物理層のプロトコルを実現するＰＨＹチップとのインターフェースを行う回路である。
【００６４】
リンクコア２０（リンク手段）は、リンク層のプロトコルやトランザクション層のプロトコルの一部を実現する回路であり、ノード間でのパケット転送のための各種サービスを提供する。レジスタ２２は、これらのプロトコルを実現したりリンクコア２０を制御するためのレジスタである。
【００６５】
ＦＩＦＯ（ＡＴＦ）３０、ＦＩＦＯ（ＩＴＦ）３２、ＦＩＦＯ（ＲＦ）３４は、各々、非同期送信用、アイソクロナス送信用、受信用のＦＩＦＯであり、例えばレジスタや半導体メモリなどのハードウェアにより構成される。本実施形態では、これらのＦＩＦＯ３０、３２、３４の段数は非常に少ない。例えば１つのＦＩＦＯの段数は、好ましくは３段以下であり、更に好ましくは２段以下となる。
【００６６】
ＤＭＡＣ４０、４２、４４は、各々、ＡＴＦ、ＩＴＦ、ＲＦ用のＤＭＡコントローラである。これらのＤＭＡＣ４０、４２、４４を用いることで、ＣＰＵ６６に介入されることなく、ＲＡＭ８０とリンクコア２０との間でのデータ転送が可能になる。なお、レジスタ４６は、ＤＭＡＣ４０、４２、４４などを制御するレジスタである。
【００６７】
ポートインターフェース５０は、アプリケーション層のデバイス（例えばプリンタの印字処理を行うデバイス）とのインターフェースを行う回路である。本実施形態では、このポートインターフェース５０を用いて、例えば８ビットのデータ転送が可能になっている。
【００６８】
ＦＩＦＯ（ＰＦ）５２は、アプリケーション層のデバイスとの間でのデータ転送のためのＦＩＦＯであり、ＤＭＡＣ５４は、ＰＦ用のＤＭＡコントローラである。レジスタ５６は、ポートインターフェース５０やＤＭＡＣ５４を制御するレジスタである。
【００６９】
ＣＰＵインターフェース６０は、データ転送制御装置をコントロールするＣＰＵ６６とのインターフェースを行う回路である。ＣＰＵインターフェース６０は、アドレスデコーダ６２、データ同期化回路６３、割り込みコントローラ６４を含む。クロック制御回路６８は、本実施形態で使用されるクロックを制御するものであり、ＰＨＹチップから送られてくるＳＣＬＫや、マスタークロックであるＨＣＬＫが入力される。
【００７０】
バッファマネージャ７０は、ＲＡＭ８０とのインターフェースを管理する回路である。バッファマネージャ７０は、バッファマネージャの制御のためのレジスタ７２、ＲＡＭ８０へのバス接続を調停する調停回路７４、各種の制御信号を生成するシーケンサ７６を含む。
【００７１】
ＲＡＭ８０は、ランダムアクセス可能なパケット記憶手段として機能するものであり、その機能は例えばＳＲＡＭ、ＤＲＡＭなどにより実現される。そして、本実施形態では、図７に示すように、このＲＡＭ８０がヘッダ領域（広義には制御情報領域）とデータ領域に分離されている。そして、パケットのヘッダ（広義には制御情報）は図７のヘッダ領域に格納され、パケットのデータはデータ領域に格納される。
【００７２】
なお本実施形態では、ＲＡＭ８０がデータ転送制御装置に内蔵されている。但し、ＲＡＭ８０の一部を外付けにすることも可能である。
【００７３】
バス９０（或いはバス９２、９４）は、アプリケーションに接続されるものである（第１のバス）。またバス９６（或いはバス９８）はデータ転送制御装置をコントロールするためのものであり、データ転送制御装置をコントロールするデバイス（例えばＣＰＵ）に電気的に接続される（第２のバス）。またバス１００（或いはバス１０２、１０４、１０５、１０６、１０７、１０８、１０９）は、物理層のデバイス（例えばＰＨＹチップ）に電気的に接続されるものである（第３のバス）。また、バス１１０は、ランダムアクセス可能な記憶手段であるＲＡＭに電気的に接続されるものである（第４のバス）。
【００７４】
バッファマネージャ７０の調停回路７４は、ＤＭＡＣ４０、ＤＭＡＣ４２、ＤＭＡＣ４４、ＣＰＵインターフェース６０、ＤＭＡＣ５４からのバスアクセス要求の調停を行う。そして、この調停結果に基づいて、各々、バス１０５、１０７、１０９、９８、９４のいずれかと、ＲＡＭ８０のバス１１０との間にデータの経路が確立される（第１、第２、第３のバスのいずれかと第４のバスとの間にデータ経路が確立される）。
【００７５】
本実施形態の１つの特徴は、ランダムアクセスが可能でありパケットを格納するＲＡＭ８０を設けると共に、互いに分離されるバス９０、９６、１００と、これらのバスをＲＡＭ８０のバス１１０に接続するための調停回路７４とを設けた点にある。
【００７６】
例えば図８に、本実施形態と構成の異なるデータ転送制御装置の例を示す。このデータ転送制御装置では、リンクコア９０２は、ＰＨＹインターフェース９００、バス９２２を介してＰＨＹチップと接続される。また、リンクコア９０２は、ＦＩＦＯ９０４、９０６、９０８、ＣＰＵインターフェース９１０、バス９２０を介してＣＰＵ９１２に接続される。そして、ＣＰＵ９１２は、バス９２４を介して、ＣＰＵにローカルなメモリであるＲＡＭ９１４に接続される。
【００７７】
なお、ＦＩＦＯ９０４、９０６、９０８は、図６のＦＩＦＯ３０、３２、３４と異なり、非常に段数の多いものとなる（例えば１つのＦＩＦＯが１６段程度）。
【００７８】
図８の構成のデータ転送制御装置を用いた場合のデータ転送の手法について図９を用いて説明する。ＰＨＹチップ９３０を介して他のノードから送られてきた受信パケットは、バス９２２、データ転送制御装置９３２、バス９２０を介してＣＰＵ９１２が受け取る。そして、ＣＰＵ９１２は、受け取った受信パケットをバス９２４を介してＲＡＭ９１４に書き込む。そして、ＣＰＵ９１２は、受信パケットをアプリケーション層が使用できるように加工し、バス９２６を介してアプリケーション層のデバイス９３４に転送する。
【００７９】
一方、アプリケーション層のデバイス９３４からのデータを転送する場合には、ＣＰＵ９１２は、このデータをＲＡＭ９１４に書き込む。そして、ＲＡＭ９１４のデータにヘッダを付加することでＩＥＥＥ１３９４に準拠したパケットを生成する。そして生成されたパケットは、データ転送制御装置９３２、ＰＨＹチップ９３０などを介して他のノードに送信される。
【００８０】
しかしながら、このようなデータ転送手法によると、ＣＰＵ９１２の処理負荷が非常に重くなる。従って、ノード間を接続するシリアルバスの転送速度が高速になっても、ＣＰＵ９１２の処理のオーバーヘッドなどに起因して、システム全体の実転送速度は低くなり、結局、高速なデータ転送を実現できない。
【００８１】
このような問題を解決する１つの手法として、図１０に示すように、データ転送制御装置９３２とＲＡＭ９１４との間でのデータ転送や、ＲＡＭ９１４とアプリケーション層のデバイス９３４との間でのデータ転送を、ハードウェアＤＭＡにより実現する手法も考えられる。
【００８２】
しかしながら、この手法では、ＣＰＵバス９２８が、データ転送制御装置９３２、ＲＡＭ９１４間でのデータ転送、ＲＡＭ９１４、ＣＰＵ９１２間でのデータ転送、ＲＡＭ９１４、アプリケーション層デバイス９３４間でのデータ転送に使用されることになる。従って、システム全体のデータ転送の高速化を図ろうとすると、ＣＰＵバス９２８としてＰＣＩバスのような高速なバスを使用しなければならなくなり、これは、データ転送制御装置を使用する電子機器の高コスト化を招く。
【００８３】
これに対して、本実施形態では図１１に示すように、データ転送制御装置１２０、アプリケーション層デバイス１２４間のバス９０と、ＣＰＵバス９６と、データ転送制御装置１２０、ＲＡＭ８０間のバス１１０とが互いに分離されている。従って、ＣＰＵバス９６をデータ転送の制御のみに使用できるようになる。また、バス９０を占有して、データ転送制御装置１２０、アプリケーション層デバイス１２４間でデータ転送を行うことができるようになる。例えば、データ転送制御装置１２０が組み込まれる電子機器がプリンタである場合には、バス９０を占有して印字データを転送できるようになる。この結果、ＣＰＵ６６の処理負荷を軽減でき、システム全体の実転送速度を高めることができる。またＣＰＵ６６として安価なものを採用できると共に、ＣＰＵバス９６として高速なバスを使用する必要性がなくなる。このため、電子機器の低コスト化、小規模化を図れるようになる。
【００８４】
３．パケット記憶用ＲＡＭへのパケットの格納
３．１  本実施形態の特徴
図８の比較例では、図１２（Ａ）に示すように、リンクコア９０２とＣＰＵ９１２との間には、送信用のＦＩＦＯ９０４、９０６と受信用のＦＩＦＯ９０８が設けられている。
【００８５】
即ち、他のノードから送られてくる受信パケットは、リンクコア９０２を介してＦＩＦＯ９０８に順次入力される。そして、ＣＰＵ９１２（ＣＰＵ上で動作するファームウェアやアプリケーションソフト）は、ＦＩＦＯ９０８に入力された順序で受信パケットをＦＩＦＯ９０８から順次読み出す。
【００８６】
また、ＣＰＵ９１２は、転送すべき送信パケットをＦＩＦＯ９０４、９０６に順次入力する。そして、送信パケットは、このＦＩＦＯ９０４、９０６に入力された順序でリンクコア９０２を介して他のノードに順次転送される。
【００８７】
これに対して、本実施形態では、図１２（Ｂ）に示すように、ノード間でのパケット転送のための各種サービスを提供するリンクコア２０と、ＣＰＵ６６との間に、ＦＩＦＯ３０、３２、３４の他に、ランダムアクセス可能なパケット記憶手段として機能するＲＡＭ８０を介在させている。
【００８８】
即ち、他のノードからリンクコア２０を介して送られてくる受信パケットは、ＦＩＦＯ３４に格納された後に、ＤＭＡＣ４４（書き込み手段）によりＲＡＭ８０に書き込まれる。そして、ＣＰＵ６６が、このランダムアクセス可能なＲＡＭ８０から受信パケットを読み出す。
【００８９】
また、ＣＰＵ６６などにより、転送すべき送信パケットがＲＡＭ８０に書き込まれる。そして、この書き込まれた送信パケットは、ＤＭＡＣ４０、４２（読み出し手段）により読み出され、ＦＩＦＯ３０、３２、リンクコア２０を介して他のノードに転送される。
【００９０】
図１２（Ａ）では、ＣＰＵ９１２は、受信した順序でＦＩＦＯ９０８から受信パケットを受け取らなければならず、送信する順序でＦＩＦＯ９０４、９０６に送信パケットを格納しなければならない。これに対して、リンクコア２０とＣＰＵ６６との間にランダムアクセス可能なＲＡＭ８０を介在させる本実施形態では、受信順序に依存せずに、ＲＡＭ８０の所望のアドレスに受信パケットを書き込むことが可能になる。また、送信順序に依存せずに、ＣＰＵ６６などがＲＡＭ８０の所望のアドレスに送信パケットを書き込むことも可能になる。
【００９１】
また、図１２（Ａ）では、ＦＩＦＯ９０４、９０６、９０８の段数を非常に多くする必要がある。これに対して、本実施形態では、ＦＩＦＯ３０、３２、３４の段数を格段に減らすことができ、例えば段数を３段以下とすることも可能になる。
【００９２】
なお、本実施形態では、ＦＩＦＯ３０、３２、３４を設けない構成にしてもよい。
【００９３】
また、本実施形態では、図７に示すように、ＲＡＭ８０の記憶領域を、パケットのヘッダ（広義には制御情報）が格納されるヘッダ領域（広義には制御情報領域）とパケットのデータが格納されるデータ領域に分離している。これは、図１２（Ｂ）に示すようにリンクコア２０とＣＰＵ６６との間にランダムアクセス可能なＲＡＭ８０を介在させることで実現可能になる。
【００９４】
即ち、図１２（Ａ）では、ＣＰＵ９１２は、受信した順序でＦＩＦＯ９０８から受信パケットを受け取らなければならない。従って、受信パケットをヘッダとデータに分離する処理を実現しようとすると、ＦＩＦＯ９０８から読み出した受信パケットをＣＰＵ９１２がローカルメモリであるＲＡＭに一旦書き込み、そのＲＡＭからＣＰＵ９１２が受信パケットを読み出してヘッダとデータに分離する必要がある。また、図１２（Ａ）では、ＣＰＵ９１２は、送信する順序でＦＩＦＯ９０４、９０６に送信パケットを入力しなければならない。例えば、パケット１（ヘッダ１、データ１）、パケット２（ヘッダ２、データ２）、パケット３（ヘッダ３、データ３）を送信する場合には、ヘッダ１、データ１、ヘッダ２、データ２、ヘッダ３、データ３というような順序でＦＩＦＯ９０４、９０６に送信パケットを入力しなければならない。従って、ＣＰＵ９１２による並べ替え処理が必要になる。
【００９５】
このように図１２（Ａ）では、ＣＰＵ９１２の処理負荷が非常に重くなり、これは結局、システム全体の実転送速度の低下という事態を招く。
【００９６】
これに対して、本実施形態では、ＲＡＭ８０の記憶領域がヘッダ領域とデータ領域に分離される。より具体的には、図１３に示すように、各受信パケットのヘッダとデータがハードウェアにより分離され、ヘッダがヘッダ領域に、データがデータ領域に格納される。また、図１４に示すように、ヘッダ領域に格納されたヘッダとデータ領域に格納されたデータとがハードウェアにより結合され、各ノードに転送すべき送信パケットが組み立てられる。従って、ＣＰＵ６６の処理負荷が図１２（Ａ）に比べて非常に軽くなり、システム全体の実転送速度を向上できる。また、ＣＰＵ６６として安価なものを採用できると共にＣＰＵ６６に接続されるバスも低速なもので済むため、データ転送制御装置や電子機器の小規模化、低コスト化を図れるようになる。
【００９７】
また、本実施形態によれば、ヘッダはヘッダ領域にまとめられて格納され、データもデータ領域にまとめられて格納される。従って、ヘッダやデータの読み出し処理や書き込み処理の簡易化を図ることができ、処理のオーバーヘッドを軽減化できる。例えば、図１１の手法でデータ転送を行う場合には、ＣＰＵ６６は、ＣＰＵバス９６を介してヘッダ領域にのみアクセスしヘッダを読み出したり書き込んだりするだけでデータ転送を制御できるようになる。また、アプリケーション層のデバイス１２４は、データ領域のデータを連続してバス９０を介して読み出したり、データを連続してデータ領域に書き込んだりすることが可能になる。
【００９８】
なお、図１５に示すように、ヘッダ領域に格納される各ヘッダと、データ領域に格納される各データとは、ヘッダに含ませたデータポインタにより対応させることが望ましい。この場合、受信パケットのヘッダへのデータポインタの付加は、例えばリンクコア２０が行い、送信パケットのヘッダへのデータポインタの付加は、例えばファームウェアが行うようにする。
【００９９】
また、本実施形態では、図１６に示すように、受信パケットのスタート（ヘッダの最初）、ヘッダ、データ、トレイラーを区別するためのＴＡＧを生成し、このＴＡＧを受信パケットに関連づけている。より具体的には、図６のリンクコア２０が、受信パケットのスタート、ヘッダ、データ、トレイラーをＦＩＦＯ３４に転送する際に、図１６に示す２ビットのＴＡＧも同時にＦＩＦＯ３４に転送している。そして、本実施形態では、受信パケットに関連づけられたこのＴＡＧを利用して、図１３に示すように受信パケットをヘッダとデータに分離しヘッダ領域とデータ領域に格納している。より具体的には、図６のＤＭＡＣ４４が、受信パケットと共にＦＩＦＯ３４から出力されるＴＡＧを利用して、受信パケットをヘッダとデータに分離し、ＲＡＭ８０に書き込んでいる。なお、ＴＡＧは、少なくともヘッダとデータを区別できるものであればよい。
【０１００】
例えば、ＴＡＧを利用せずに受信パケットのヘッダとデータを分離する手法として、ヘッダに含まれるｔｃｏｄｅ（トランザクションコード）を利用する手法が考えられる。即ち、ｔｃｏｄｅをデコードして、ヘッダのサイズを調べ、そのサイズの分だけ受信パケットをヘッダ領域に格納し、残りをデータ領域に格納する。
【０１０１】
しかしながら、この手法では、ｔｃｏｄｅをデコードする回路が必要となり、回路が大規模化してしまう。
【０１０２】
これに対して、ＴＡＧを利用すれば、ＤＭＡＣ４４は、ＴＡＧを見るだけで受信パケットをヘッダとデータに分離できる。従って、回路をそれほど大規模化することなく、簡易な処理で受信パケットのヘッダとデータを分離できるようになる。
【０１０３】
また、本実施形態では、図１７（Ａ）に示すように、ヘッダ領域とデータ領域の他に、これらの領域と分離されたＣＰＵ６６のワーク領域をＲＡＭ８０に設けている。このようにすれば、ＣＰＵ６６が、ワーク領域に直接アクセスして、ＣＰＵ６６の処理のためにその領域を利用できるようになる。従って、ＣＰＵ６６がローカルメモリを有する場合には、そのメモリを小容量化することが可能になる。更に、ＣＰＵ６６のローカルメモリを設ける必要性自体を無くすことも可能になる。これにより、データ転送制御装置や電子機器の小規模化、低コスト化を図れるようになる。
【０１０４】
また、本実施形態では、図１７（Ｂ）に示すように、ヘッダ領域を受信用と送信用の領域に分離（分割）している。これらの受信用、送信用のヘッダ領域の各々は、少なくとも１個以上のパケットを格納できるものであればよい。
【０１０５】
例えば図８の構成では、ローカルメモリであるＲＡＭ９１４にＣＰＵ９１２が受信パケットや送信パケットを格納する。このため、ＣＰＵ９１２は、受信パケットや送信パケットを格納したアドレスを各パケット毎に保持し管理しなければならない。従って、ＣＰＵ９１２の処理が煩雑化し、処理負担が増加する。特に、ＣＤ−Ｒドライブのように受信処理と送信処理が混在するアプリケーションでは、受信パケットと送信パケットが混在してＲＡＭ９１４に格納されることになるため、処理の煩雑化、処理負担の増加の問題は更に深刻になる。
【０１０６】
これに対して、本実施形態によれば、ヘッダ領域が受信用と送信用の領域に分離される。従って、ＲＡＭ８０の受信用ヘッダ領域には受信用のヘッダが、送信用ヘッダ領域には送信用のヘッダが規則的に格納される。従って、ＣＰＵ６６は、受信処理の際には受信用ヘッダ領域にアクセスし、送信処理の際には送信用ヘッダ領域にアクセスすればよいことになる。そして、例えば受信パケットを連続して受信する場合には、受信用ヘッダ領域からヘッダを連続して読み出し、送信パケットを連続して送信する場合には、送信用ヘッダ領域にヘッダを連続して書き込めばよいことになる。従って、ＣＰＵ６６の処理負担を大幅に軽減でき、システム全体の実転送速度の向上を期待できるようになる。
【０１０７】
また、本実施形態では、図１７（Ｃ）に示すように、データ領域を受信用と送信用の領域に分離している。
【０１０８】
このようにすれば、例えば図１１において、アプリケーション層のデバイス１２４は、ＲＡＭ８０の受信用データ領域から連続して受信データを読み出せるようになると共に、送信用データ領域に連続して送信データを書き込めるようになる。そして、読み出しや書き込みの際にはアドレスを単純にインクリメント（或いはデクリメント）すればよいので、アドレス制御も容易になる。この結果、本実施形態によれば、処理のオーバーヘッドを格段に軽減でき、実転送速度の向上を期待できるようになる。
【０１０９】
また、本実施形態では、データ領域を、アイソクロナス転送用と非同期転送用の領域に分離している。より具体的には例えば図１７（Ｄ）に示すように、データ領域を、アイソクロナス受信用、非同期受信用、アイソクロナス送信用、非同期送信用の領域に分離している。
【０１１０】
例えば図８の構成では、アイソクロナスパケットと非同期パケットとが混在してＦＩＦＯ９０８に入力される。そして、ＣＰＵ９１２は、この入力された順序でＦＯＦＯ９０８からパケットを読み出す。また、この読み出した順序でパケットをローカルメモリであるＲＡＭ９１４に格納する。従って、ＲＡＭ９１４には、アイソクロナスパケットと非同期パケットが混在して格納されることになる。
【０１１１】
さて、アイソクロナスパケットの処理にはリアルタイム性が要求される。従って、ＣＰＵ９１２は一定期間内にアイソクロナスパケットに関する処理を終了しなければならない。ところが、図８では、ＣＰＵ９１２はＦＩＦＯ９０８に入力された順序でＦＩＦＯ９０８からパケットを読み出さなければならず、また、ＲＡＭ９１４には、アイソクロナスパケットと非同期パケットが混在するようになる。従って、例えば非同期パケットの次にアイソクロナスパケットが送られてきた場合にも、非同期パケットを先に処理しなければならず、アイソクロナスパケットを先に処理することができない。このため、リアルタイム性が要求されるアイソクロナスパケットの処理が間に合わなくなる可能性がある。
【０１１２】
これに対して、本実施形態では、アイソクロナスパケットはアイソクロナス転送用の領域に格納され、非同期パケットは非同期転送用の領域に格納される。従って、非同期パケットの次にアイソクロナスパケットが送られてきた場合にも、アイソクロナスパケットを先に読み出し、先に処理することが可能になる。この結果、アイソクロナスパケットの処理を一定期間内に完了でき、アイソクロナスパケットの処理に要求されるリアルタイム性を維持できるようになる。
【０１１３】
また、データ領域をアイソクロナス転送用と非同期転送用の領域に分離することで、アプリケーション層のデバイスの処理も簡易化できる。例えばデジタルビデオカメラにおいて、リアルタイム性が要求される動画像をアイソクロナスで転送し、信頼性が要求される静止画像を非同期で転送する場合を考える。そして、図１１において、データ転送制御装置１２０とアプリケーション層のデバイス１２４との間でバス９０を用いて直接に動画像や静止画像のデータを転送したとする。この場合に、データ領域をアイソクロナス転送用と非同期転送用の領域に分離することにより、バス９０を用いた動画像や静止画像のデータの転送を簡易化できる。動画像のデータを転送する場合には、動画像のデータをまとめてアイソクロナス転送用のデータ領域に書き込み、静止画像のデータを転送する場合には、静止画像のデータをまとめて非同期転送用のデータ領域に書き込めばよいからである。また、この書き込みの際には、アドレスを単純にインクリメント（或いはデクリメント）すればよいので、アドレス制御も容易になるからである。
【０１１４】
また、本実施形態では、非同期転送用データ領域を、複数の領域に分離している。より具体的には例えば図１７（Ｅ）に示すように、非同期受信用領域を、第１、第２の非同期受信用の領域に分離している。また、非同期送信用領域を、第１、第２の非同期送信用の領域に分離している。
【０１１５】
例えば、プリンタなどのアプリケーションでは、コマンドデータ、ステータスデータなどの制御用データのみならず、印字データも非同期転送される。この場合に、非同期転送用データ領域が複数の領域に分離されていないと、制御用データと印字データとが、非同期転送用データ領域に混在して格納されてしまう。従って、印字データの連続性を維持できなくなり、上層の処理負荷が重くなってしまう。
【０１１６】
図１７（Ｅ）に示すように、非同期転送用データ領域を複数の領域に分割すれば、例えば第１の非同期転送用データ領域には、コマンドデータ、ステータスデータなどの制御用データを格納し、第２の非同期転送用データ領域には、印字データを格納することが可能になる。この結果、第２の非同期転送用データ領域に印字データを連続して格納することが可能になり、上層の処理負担を軽減できる。
【０１１７】
また、本実施形態では、データ領域を、アイソクロナス転送用データ領域と第１の非同期転送用データ領域に分離する共に、アイソクロナス転送用データ領域を、随時、第２の非同期転送用データ領域としても使用している。より具体的には例えば図１７（Ｆ）に示すように、アイソクロナス受信用領域を第２の非同期受信用領域として随時使用したり、アイソクロナス送信用領域を第２の非同期送信用領域として随時使用したりする。
【０１１８】
例えば、デジタルビデオなどのアプリケーションでは、画像データ（特に動画像データ）はアイソクロナス転送される一方で、コマンドデータ、ステータスデータなどの制御用データは非同期転送される。従って、この場合には、画像データをアイソクロナス転送用データ領域に格納するようにすると共に、制御用データを第１の非同期転送用データ領域に格納するようにする。
【０１１９】
一方、プリンタなどのアプリケーションでは、印字データも、コマンドデータ、ステータスデータなどの制御用データも、共に非同期転送される。従って、この場合には、図１７（Ｆ）に示すように、アイソクロナス転送用データ領域を第２の非同期転送用データ領域として使用し、印字データをこの第２の非同期転送用データ領域に格納するようにする。一方、制御用データについては、第１の非同期転送用データ領域に格納するようにする。
【０１２０】
このように、アプリケーションに応じて、アイソクロナス転送用データ領域を第２の非同期転送用データ領域として随時使用することで、限られたリソースの有効利用を図ることができる。
【０１２１】
また、本実施形態では、ＲＡＭ８０が複数の領域に分離される場合において、各領域のサイズを可変に制御するようにしている。より具体的には図１８に示すように、各領域の境界のアドレスを指すポインタＰ１〜Ｐ６を可変に制御する。
【０１２２】
このようにすれば、アプリケーションに応じた最適な領域分割を実現できる。例えば、プリンタのように、パケットを送信することが少なく、パケットを受信することが多いアプリケーションでは、受信用の領域のサイズを大きくする。また、スキャナのように、パケットを受信することが少なく、パケットを送信することが多いアプリケーションでは、送信用の領域のサイズを大きくする。また、非同期転送を行うことが多いアプリケーションでは非同期転送用の領域のサイズを大きくし、アイソクロナス転送を行うことが多いアプリケーションではアイソクロナス転送用の領域のサイズを大きくする。或いは、非同期転送のみを行うアプリケーションでは、アイソクロナス転送用の領域を零にする。このようにすることにより、限られたリソース（少ない記憶容量のＲＡＭ８０）を有効利用することが可能になる。
【０１２３】
また、図８の構成でＦＩＦＯ９０４、９０６、９０８の各々のサイズを可変にする手法には、ハードウェアの構成が複雑になるという問題点がある。これに対して、ＲＡＭ８０の各領域のサイズを可変制御するためには、ポインタＰ１〜Ｐ６の指すアドレスを制御する（ポインタの指すアドレスが格納されるレジスタの内容を制御する）のみでよい。このため、簡易なハードウェア構成で各領域のサイズを可変に制御できる。
【０１２４】
なお、ＲＡＭ８０の各領域のサイズは、電源投入後もダイナミックに可変制御できることが望ましい。例えば、ＣＤ−Ｒドライブのようなアプリケーションでは、ＣＤ−Ｒへのデータの書き込み時には受信処理が主に行われ、ＣＤ−Ｒからのデータの読み出し時には送信処理が主に行われる。従って、ＣＤ−Ｒへのデータの書き込み時には、受信用の領域のサイズが大きくなるようにポインタをダイナミックに切り替える。また、ＣＤ−Ｒからのデータの読み出し時には、送信用の領域のサイズが大きくなるようにポインタをダイナミックに切り替える。このようにすることで、限られたリソースを有効利用することが可能になる。
【０１２５】
なお、本実施形態において分離された各領域は、リングバッファ構造とすることが望ましい。即ち図１９（Ａ）に示すように、ＲＡＭ８０の例えば受信用ヘッダ領域の一方の境界（上側の境界）から他方の境界（下側の境界）に向かってパケットのヘッダを格納する。そして、図１９（Ｂ）に示すように他方の境界に達した場合には、図１９（Ｃ）に示すように一方の境界に戻ってヘッダを格納するようにする（上書きする）。このようにすることで、受信ヘッダ領域には、受信した順序でヘッダが格納されるようになるため、どのような順序でパケットが受信されたかをファームウェアやアプリケーションソフトが知ることができるようになる。即ち、ランダムアクセス可能なＲＡＭ８０を使用しながら、ＦＩＦＯが持つ有利な機能も得ることができる。また、他方の境界に達した場合に一方の境界からパケットのヘッダを格納するようにすることで、限られたリソース（少ない記憶容量のＲＡＭ８０）を有効利用できるようになる。
【０１２６】
なお、送信用のヘッダ領域や、データ領域についても、このようなリングバッファ構造にしてもよい。
【０１２７】
なお、本実施形態では、１つのパケットのヘッダ（広義には制御情報）やデータが格納される領域（以下、格納領域と呼ぶ）のサイズが、パケットのヘッダやデータのサイズに依存せずに固定となるようにすることが望ましい。例えば図２０（Ａ）では、各ヘッダのサイズは互いに異なっているが、格納領域のサイズは固定になっている。この場合に、パケットのヘッダのサイズに依らずに、格納領域のサイズを例えば８クワドレット単位にする。このようにすれば、ファームウェアのアドレス制御などを簡易化することができ、処理のオーバーヘッドを軽減できる。特に、図１９（Ａ）、（Ｂ）、（Ｃ）のようなリングバッファ構造の場合には、格納領域のサイズを固定にしないと、図２０（Ｂ）に示すように、ヘッダＮが下側と上側に分離されて格納されてしまう。これは、ファームウェアの処理負担の増大化という事態を招く。格納領域のサイズを固定にすれば、このような事態を解消できる。
【０１２８】
３．２  受信側の構成
次に受信側の構成について説明する。図２１に、リンクコア２０、ＦＩＦＯ３４、ＤＭＡＣ４４の詳細な構成の一例を示す。
【０１２９】
リンクコア２０は、バス監視回路１３０、直列・並列変換回路１３２、パケット整形回路１６０を含む。そして、パケット整形回路１６０は、パケット診断回路１４２、シーケンサ１６７、バッファ１６８、セレクタ１７０を含み、パケット診断回路１４２は、ＴＡＧ生成回路１６２、ヘッダ＆トレイラー生成回路１６４、エラーチェック回路１６６を含む。
【０１３０】
ここで、バス監視回路１３０は、ＰＨＹインターフェース１０を介してＰＨＹチップに接続される８ビット幅のデータバスＤ、２ビット幅のコントロールバスＣＴＬを監視する回路である。
【０１３１】
直列・並列変換回路１３２は、データバスＤのデータを３２ビットのデータに変換する回路である。例えば、転送速度が４００Ｍｂｐｓの場合には８ビットのデータが３２ビットのデータに、２００Ｍｂｐｓの場合には４ビットのデータが３２ビットのデータに、１００Ｍｂｐｓの場合には２ビットのデータが３２ビットのデータに変換される。
【０１３２】
パケット診断回路１４２は、パケットの診断を行う回路である。ＴＡＧ生成回路１６２は、ヘッダ、データ、トレイラーなどを区別するためのＴＡＧを生成する回路であり、ヘッダ＆トレイラー生成回路１６４は、ヘッダ及びトレイラー（フッター）を生成する回路である。また、エラーチェック回路１６６は、パケットに含まれるパリティなどのエラーチェック情報をチェックしてエラーを検出する回路である。
【０１３３】
シーケンサ１６７は各種の制御信号を生成するものである。バッファ１６８、セレクタ１７０は、直列・並列変換回路１３２からのＤＩ、パケット診断回路１４２からのヘッダ及びトレイラー、ＤＭＡＣ４４からのデータポインタのいずれかを、パケット診断回路１４２からの信号ＳＥＬにより選択するためのものである。
【０１３４】
ＦＩＦＯ３４は、リンコア２０からの出力データであるＲＤの位相と、ＲＡＭ８０への書き込みデータであるＷＤＡＴＡの位相とを調整するためのバッファとして機能するものであり、ＦＩＦＯ状態判断回路３５を含む。ＦＩＦＯ状態判断回路３５は、ＦＩＦＯが空になると、ＥＭＰＴＹをアクティブにし、ＦＩＦＯがフルになると、ＦＵＬＬをアクティブにする。
【０１３５】
ＤＭＡＣ４４は、パケット分離回路１８０、アクセス要求実行回路１９０、アクセス要求発生回路１９２を含む。
【０１３６】
パケット分離回路１８０は、パケット整形回路１６０により整形されたパケットを分離して、ヘッダ及びトレイラーをＲＡＭ８０のヘッダ領域に、データをデータ領域に書き込むための回路である（図１３参照）。パケット分離回路１８０は、ＴＡＧ判別回路１８２、ポインタ更新回路１８４、アドレス発生回路１８８を含む。
【０１３７】
ＴＡＧ判別回路１８２は、ＴＡＧ生成回路１６２により生成されたＴＡＧ（ＤＴＡＧ）を判別する回路である。
【０１３８】
ポインタ更新回路１８４は、ＴＡＧ判別回路１８２の出力を受け、ＲＡＭ８０にヘッダやデータを書き込むためのヘッダポインタやデータポインタを更新するための回路である。
【０１３９】
アドレス発生回路１８８は、ポインタ更新回路１８４の出力を受け、ＲＡＭ８０への書き込みアドレスＷＡＤＲを発生する回路である。
【０１４０】
アクセス要求実行回路１９０は、リンクコア２０からのアクセス要求を実行するための回路である。アクセス要求実行回路１９０は、ＦＩＦＯ状態判断回路３５からのＦＵＬＬがアクティブになると、ＦＦＵＬＬをアクティブにする。パケット整形回路１６０内のシーケンサ１６７は、ＦＦＵＬＬがアクティブでないことを条件に、ＲＤ（ＲｘＤａｔａ）のストローブ信号であるＲＤＳをアクティブにする。
【０１４１】
なおＲＦＡＩＬは、受信における失敗を、シーケンサ１６７がアクセス要求実行回路１９０に対して知らせるための信号である。
【０１４２】
アクセス要求発生回路１９２は、ＲＡＭ８０へのアクセス要求を発生するための回路である。アクセス要求発生回路１９２は、バッファマネージャ７０からの書き込みアクノリッジメントであるＷＡＣＫやＦＩＦＯ状態判断回路３５からのＥＭＰＴＹを受け、書き込み要求であるＷＲＥＱをバッファマネージャ７０に出力する。
【０１４３】
３．３  受信側の動作
次に、受信側の動作の詳細について図２２のタイミング波形図などを用いて説明する。
【０１４４】
まず、リンクコア２０の動作について説明する。
【０１４５】
ＰＨＹチップを介して他のノードからのパケットを受信すると、パケット診断回路１４２がそのパケットを診断する。そして、ヘッダ＆トレイラー生成回路１６４がヘッダを生成（整形）する。このヘッダは、バッファ１６８を介してセレクタ１７０に入力され、パケット診断回路１４２からの信号ＳＥＬに基づきセレクタ１７０がこのヘッダを選択する。これにより、図２２のＡ１に示すように、ＲＤとしてヘッダ（Ｈ０〜Ｈ４）がＦＩＦＯ３４に出力されることになる。
【０１４６】
なお、図２３（Ａ）に、シリアルバス上で転送される非同期パケットのフォーマット（ＩＥＥＥ１３９４規格）を示す。一方、図２３（Ｂ）に、ＲＡＭ８０のヘッダ領域に格納される非同期受信パケットのヘッダ部分のフォーマットを示す（同図において網掛けとなっている部分がトレイラーである）。このように本実施形態では、図２３（Ａ）に示すフォーマットのパケットを、ファームウェアなどの上層が使用できるように、図２３（Ｂ）に示すフォーマットのパケットに整形している。
【０１４７】
また本実施形態では、ヘッダの第４クワドレットであるＨ４（図２２のＡ２）は、図２３（Ｂ）に示すようにデータ領域からデータを取り出すためのデータポインタになっている。このデータポインタ（Ｈ４）は、ＤＭＡＣ４４（ポインタ更新回路１８４）からバッファ１６８を介してセレクタ１７０に入力され、セレクタ１７０がこれを選択する。このように、パケット整形回路１６０は、ＤＭＡＣ４４からデータポインタを受け取り、そのデータポインタを、ＲＡＭ８０に書き込まれるヘッダに埋め込んでいる。
【０１４８】
次に、ＰＨＹチップから、データバスＤを介してパケットのデータ部分が送られてくる。直列・並列変換回路１３２は、このデータ部分を３２ビットのデータであるＤＩに変換し、パケット診断回路１４２及びバッファ１６８に出力する。
【０１４９】
なお、ＤＩＥは、ＤＩが有効か無効かを示す信号であり、ＤＩＳは、ＤＩの取り込みタイミングを知らせるためのストローブ信号である。
【０１５０】
直列・並列変換回路１３２からのＤＩは、バッファ１６８を介してセレクタ１７０に入力され、セレクタ１７０がこれを選択する。これにより、Ａ３に示すように、ＲＤとしてデータＤ０〜ＤｎがＦＩＦＯ３４に出力される。
【０１５１】
次に、ヘッダ＆トレイラー生成回路１６４からのトレイラーがバッファ１６８を介してセレクタ１７０に入力され、セレクタ１７０がこれを選択する。これにより、Ａ４に示すように、ＲＤとしてトレイラー（Ｈ５。図２３（Ｂ）の網掛け部分）がＦＩＦＯ３４に出力される。
【０１５２】
さて、ＴＡＧ生成回路１６２は、ＲＤとして出力される情報を区別するためのＴＡＧを生成している。本実施形態では図１６に示すようにＴＡＧは２ビットであり、（００）、（０１）、（１０）、（１１）は、各々、ヘッダ、トレイラー、データ、スタート（ヘッダの最初）を表す。従って、例えば図２２では、（１１）、（００）、・・・、（１０）、・・・、（０１）というようにＴＡＧが変化する。ＦＩＦＯ３４には、この２ビットのＴＡＧと３２ビットのＲＤとからなる３４ビットのデータが入力されることになる。
【０１５３】
次に、ＦＩＦＯ３４の動作について説明する。
【０１５４】
ＦＩＦＯ３４は、リンクコア２０からのＴＡＧ、ＲＤを受け、Ａ５、Ａ６に示すように、ＤＴＡＧ、ＷＤＡＴＡとして出力する。
【０１５５】
ＦＩＦＯ３４内のＦＩＦＯ状態判断回路３５は、内蔵するカウンターにより、ＦＩＦＯ３４のデータ数（ＦＩＦＯカウント）をカウントする。そして、ＦＩＦＯ３４がフル（データ数＝２）になった場合には、図２２のＡ７に示すようにＦＵＬＬをアクティブ（Ｈレベル）にする。また、ＦＩＦＯ３４が空（データ数＝０）になった場合には、Ａ８に示すようにＥＭＰＴＹをアクティブにする。ＦＩＦＯ３４がフルになったことは、ＦＵＬＬ、ＦＦＵＬＬにより、ＤＭＡＣ４４内のアクセス要求実行回路１９０やリンクコア２０内のシーケンサ１６７に伝えられる。また、ＦＩＦＯ３４が空になったことは、ＥＭＰＴＹにより、ＤＭＡＣ４４内のアクセス要求発生回路１９２に伝えられる。
【０１５６】
次に、ＤＭＡＣ４４の動作について説明する。
【０１５７】
アクセス要求発生回路１９２は、Ａ９に示すようにＥＭＰＴＹが非アクティブ（Ｌレベル）になったこと（ＦＩＦＯ３４が空でないこと）を条件に、Ａ１０に示すようにＷＲＥＱをアクティブにする。そして、バッファマネージャ７０からＷＡＣＫを受け取ると、ＷＲＥＱを非アクティブにする。
【０１５８】
さて、本実施形態では、受信時のバス調停においては、ＤＭＡＣ４４からのアクセス要求の優先順位を最も高くしている。従って、Ａ１０、Ａ１１に示すように、ＤＭＡＣ４４からのＷＲＥＱと、ＣＰＵインターフェース６０やポート用のＤＭＡＣ５４からのＯｔｈｅｒＷＲＥＱとが競合した場合には、ＷＲＥＱの方が優先する。即ち、Ａ１２、Ａ１３に示すように、ＷＡＣＫの方がＯｔｈｅｒＷＡＣＫよりも先にアクティブになる。このように、ＷＲＥＱとＯｔｈｅｒＷＲＥＱが競合した場合に、ＷＲＥＱの方を優先させるのは、以下の理由による。即ち、ＩＥＥＥ１３９４では、ＳＣＳＩなどとは異なり、他のノードからのパケットが転送クロックに同期して次々に転送されてくる。従って、これらの間断なく転送されてくるパケットを優先してＲＡＭ８０に次々に格納する必要があるからである。
【０１５９】
また、本実施形態では、ＣＰＵインターフェース６０やポート用のＤＭＡＣ５４からのアクセス要求をバッファマネージャ７０が受け付けている間は、Ａ１４に示すように、ＤＭＡＣ４４のアクセス要求は所与の期間だけ待たされる。従って、リンクコア２０からのＲＤと、バッファマネージャ７０へのＷＤＡＴＡとは同期しない。この理由により、本実施形態では、ＲＤとＷＤＡＴＡの位相を調整するためのＦＩＦＯ３４を設けている。この場合、ＦＩＦＯ３４は、位相調整のために必要な最低限の段数（好ましくは３段以下、更に好ましくは２段以下）を備えていればよい。
【０１６０】
パケット分離回路１８０に含まれるＴＡＧ判別回路１８２は、ＷＤＡＴＡと共にＦＩＦＯ３４から出力されるＤＴＡＧを判別し、ＷＤＡＴＡが、スタート（ヘッダの最初）、ヘッダ、データ、トレイラーのいずれなのかを判定する。そして、ポインタ更新回路１８４は、この判定結果に基づいて、ヘッダポインタやデータポインタの更新を行う。次に、アドレス発生回路１８８は、更新されたヘッダポインタやデータポインタに基づいて、ＷＤＡＴＡの書き込みアドレスであるＷＡＤＲを発生する。
【０１６１】
より具体的には、例えば、ＷＤＡＴＡがスタート又はヘッダであるとＤＴＡＧに基づき判定された場合は、ポインタ更新回路１８４が、図２４（Ａ）に示すように、ヘッダポインタＨＰのインクリメント（広義には更新）を行う。そして、アドレス発生回路１８８は、図２２のＡ１５に示すように、インクリメントされるヘッダポインタに応じたＷＡＤＲを発生する。
【０１６２】
次に、ＷＤＡＴＡがデータであるとＤＴＡＧに基づき判定された場合は、ポインタ更新回路１８４が、図２４（Ｂ）に示すように、データポインタＤＰのインクリメントを行う。このデータポインタＤＰは、パケット整形回路１６０によりヘッダの第４クワドレットに埋め込まれたＨ４に相当する。アドレス発生回路１８８は、図２２のＡ１６に示すように、インクリメントされるデータポインタに応じたＷＡＤＲを発生する。
【０１６３】
次に、ＷＤＡＴＡがトレイラーであるとＤＴＡＧに基づき判定された場合は、ポインタ更新回路１８４が、図２４（Ｃ）に示すように、ヘッダポインタのインクリメントを行う。そして、アドレス発生回路１８８は、図２２のＡ１７に示すように、インクリメントされるヘッダポインタに応じたＷＡＤＲを発生する。
【０１６４】
なお、最終的には図２４（Ｄ）に示すように、ヘッダポインタは、処理対象となったパケットのヘッダ部分の下側の境界（次のパケットのヘッダ部分の上側の境界）を指すようになる。また、データポインタは、パケットのデータ部分の下側の境界（次のパケットのデータ部分の上側の境界）を指すようになる。ヘッダポインタやデータポインタの最終位置は、受信に失敗がなかった（ＲＦＡＩＬが非アクティブ）ことを条件に、図６のレジスタ４６内のヘッダポインタ設定レジスタやデータポインタ設定レジスタにリストアされる。
【０１６５】
以上のようにして、パケットを分離してヘッダ領域とデータ領域に書き込むことが可能になる。
【０１６６】
特に本実施形態では、ヘッダに付加されるデータポインタが、ポインタ更新回路１８４からパケット整形回路１６０に伝えられる。そしてパケット整形回路１６０が、この伝えられたデータポインタをパケットのヘッダに付加する。このようにすることで、ヘッダ領域からヘッダを読み出したファームウェアなどが、そのヘッダに対応するデータのデータ領域での格納アドレスを容易に知ることができるようになる。また、データポインタの付加は、パケット整形回路１６０により行われ、ＤＭＡＣ４４はこれに関与する必要がない。従って、ＤＭＡＣ４４がＲＡＭ８０へのデータ書き込み処理に専念できるようになり、ＤＭＡＣ４４の回路構成や処理を簡素化できるようになる。
【０１６７】
なお、ヘッダ領域とデータ領域の境界などの、ＲＡＭ８０を分離する領域の境界（図１８のＰ１〜Ｐ６）の設定は、ＣＰＵインターフェース６０を介してＣＰＵ６６（ファームウェア等）が、図６のレジスタ４６に含まれるポインタ設定レジスタに対して、境界のアドレスを指すポインタを設定することで実現される。
【０１６８】
また、図１７（Ｄ）、（Ｅ）、（Ｆ）に示すように、データ領域が複数の領域に分離される場合には、例えばｔｃｏｄｅなどのパケットの制御情報に基づき、分離された複数の領域のいずれかにパケットのデータを書き込むようにすることが望ましい。
【０１６９】
より具体的には、図２１に示すように、ＤＭＡＣ４４が、複数のデータポインタ、例えば第１、第２のデータポインタをパケット整形回路１６０に対して渡すようにする（３個以上のデータポインタを渡してもよい）。そして、パケット整形回路１６０は、例えば、アイソクロナス転送時（或いは図１７（Ｆ）の第２の非同期転送時）にはＤＭＡＣ４４からの第１のデータポインタを選択し、非同転送時（或いは図１７（Ｆ）の第１の非同期転送時）にはＤＭＡＣ４４からの第２のデータポインタを選択するようにする。即ち、パケット整形回路１６０内のパケット診断回路１４２が、ｔｃｏｄｅなどのパケットの制御情報に基づいて、アイソクロナス転送か非同期転送か（或いは第２の非同期転送か第１の非同期転送か）を判別し、この判別結果に基づき信号ＳＥＬを制御する。そして、バッファ１６８を介してセレクタ１７０に入力される第１、第２のデータポインタのいずれかを選択するようにする。これにより、アイソクロナス転送（或いは第２の非同期転送）のパケットには第１のデータポインタが埋め込まれ、非同期転送（或いは第１の非同期転送）のパケットには第２のデータポインタが埋め込まれるようになる。この結果、データ領域を分離する特定の領域に、連続的にデータを格納することが可能になる。即ちデジタルカメラにおける動画像データをアイソクロナス転送用データ領域に連続的に格納したり、プリンタにおける印字データを第２の非同期転送用データ領域に連続的に格納したりすることが可能になる。
【０１７０】
なお、図１７（Ｅ）のように、データ領域をアイソクロナス転送用データ領域と非同期転送用データ領域に分離すると共に、非同期転送用データ領域を第１、第２の非同期転送用データ領域に分離する場合には、３つのデータポインタを用意することが望ましい。即ち、アイソクロナス転送用データ領域を指す第１のデータポインタと、第１、第２の非同期転送用データ領域を指す第２、第３のデータポインタを用意するようにする。このようにすることで、図１７（Ｅ）に示すようなデータ領域の分離を、容易に実現できるようになる。
【０１７１】
３．４  送信側の構成
次に送信側の構成について説明する。図２５に、ＦＩＦＯ３０、ＤＭＡＣ４０の詳細な構成の一例を示す。
【０１７２】
位相調整用のバッファとして機能するＦＩＦＯ３０は、ＦＩＦＯ状態判断回路３１を含む。ＦＩＦＯ状態判断回路３１は、ＦＩＦＯが空になると、ＥＭＰＴＹをアクティブにし、ＦＩＦＯがフルになると、ＦＵＬＬをアクティブにする。
【０１７３】
ＤＭＡＣ４０は、パケット結合回路２８０、アクセス要求実行回路２９０、アクセス要求発生回路２９２、ＡＣＫ書き込み要求発生回路２９４、ＡＣＫ書き込みデータ＆アドレス発生回路２９６を含む。
【０１７４】
パケット結合回路２８０は、ヘッダをＲＡＭ８０のヘッダ領域から読み出し、データをデータ領域から読み出し、これらのヘッダとデータによりフレームが構成される送信パケットを組み立てる回路である（図１４参照）。パケット結合回路２８０は、ポインタ更新回路２８４、アドレス発生回路２８８を含む。
【０１７５】
ポインタ更新回路２８４は、ＲＡＭ８０からヘッダやデータを読み出すためのヘッダポインタやデータポインタを更新するための回路であり、データポインタ取得回路２８５を含む。データポインタ取得回路２８５は、ＲＡＭ８０から読み出されたＲＤＡＴＡからデータポインタを取得する回路であり、ｔｃｏｄｅ判別回路２８６を含む。
【０１７６】
アドレス発生回路２８８は、ポインタ更新回路２８４の出力などを受け、ＲＡＭ８０の読み出しアドレスＲＡＤＲを発生する回路である。
【０１７７】
アクセス要求実行回路２９０は、ＦＩＦＯ状態判断回路３１からのＥＭＰＴＹがアクティブになると、ＦＩＦＯＩＮをアクティブにする。リンクコア２０は、ＦＩＦＯＩＮがアクティブでないことを条件に、ＴＤ（ＴｘＤａｔａ）のストローブ信号であるＴＤＳをアクティブにする。
【０１７８】
なおＴＦＡＩＬは、送信における失敗を、リンクコア２０がアクセス要求実行回路２９０に対して知らせるための信号である。
【０１７９】
アクセス要求発生回路２９２は、バッファマネージャ７０からの読み出しアクノリッジメントであるＲＡＣＫやＦＩＦＯ状態判断回路３１からのＦＵＬＬを受け、読み出し要求であるＲＲＥＱをバッファマネージャ７０に出力する。
【０１８０】
ＡＣＫ書き込み要求発生回路２９４は、リンクコア２０からのＴＣＭＰやバッファマネージャ７０からのＷＡＣＫを受け、ＷＲＥＱをバッファマネージャ７０に出力する。また、ＡＣＫ書き込みデータ＆アドレス発生回路２９６は、リンクコア２０からのＴＡＣＫを受け、送信パケットに書き戻すＡＣＫのコードをＷＤＡＴＡとして出力し、ＡＣＫを書き戻すアドレスをＷＡＤＲとして出力する。
【０１８１】
３．５  送信側の動作
次に、送信側の動作の詳細について図２６のタイミング波形図などを用いて説明する。
【０１８２】
まず、リンクコア２０の動作について説明する。
【０１８３】
送信開始を知らせるＴＳＴＡＲＴがアクティブになると、図２６のＢ１に示すように、リンクコア２０は、ストローブ信号であるＴＤＳを用いてＦＩＦＯ３０からＴＤを取り込む。この場合、リンクコア２０には、ヘッダ（Ｈ０〜Ｈ３）、データ（Ｄ０〜Ｄｎ）の順でＴＤＳが取り込まれる。
【０１８４】
なお、図２７に、ＲＡＭ８０のヘッダ領域に格納される非同期送信パケットのヘッダ部分のフォーマットを示す。同図に示すようにヘッダの第４クワドレットはデータポインタになっている。
【０１８５】
さて、図２６のＢ２に示す位置では、リンコア２０は、ＴＤＳをアクティブにしない。従って、Ｂ３に示すように、ヘッダの第４クワドレットであるＨ４はリンクコア２０に取り込まれない。図２７に示すように第４クワドレットのＨ４はデータポインタであり、リンクコア２０は、このデータポインタを必要としないからである。そして、リンクコア２０は、Ｂ３に示す期間において、ヘッダＣＲＣ（図２３（Ａ）参照）を生成しヘッダに付加する処理を行っている。
【０１８６】
１つのパケットの送信処理が終了すると、リンクコア２０は、Ｂ４に示すようにＴＣＭＰをアクティブにする。そして、送信のデスティネーションノードからＰＨＹチップを介して返されてきたＡＣＫのコードを（図１（Ａ）参照）、Ｂ５に示すようにＴＡＣＫとしてＤＭＡＣ４０に出力する。このＡＣＫのコードは、ＡＣＫ書き込み要求発生回路２９４、ＡＣＫ書き込みデータ＆アドレス発生回路２９６により、ＲＡＭ８０のヘッダ領域に格納されているヘッダに書き戻されることになる（図２７の第７クワドレット）。
【０１８７】
次に、ＦＩＦＯ３０の動作について説明する。
【０１８８】
ＦＩＦＯ３０は、バッファマネージャ７０からのＲＤＡＴＡを受け、ＴＤとしてリンクコア２０に出力する。
【０１８９】
ＦＩＦＯ３０内のＦＩＦＯ状態判断回路３１は、内蔵するカウンターにより、ＦＩＦＯ３０のデータ数（ＦＩＦＯカウント）をカウントする。そして、ＦＩＦＯ３０が空（データ数＝０）になった場合には、図２６のＢ６に示すようにＥＭＰＴＹをアクティブにする。また、ＦＩＦＯ３０がフル（データ数＝２）になった場合には、Ｂ７に示すようにＦＵＬＬをアクティブ（Ｈレベル）にする。ＦＩＦＯ３０が空になったことは、ＥＭＰＴＹ、ＦＩＦＯＩＮにより、ＤＭＡＣ４０内のアクセス要求実行回路２９０やリンクコア２０に伝えられる。また、ＦＩＦＯ３０がフルになったことは、ＦＵＬＬにより、ＤＭＡＣ４０内のアクセス要求発生回路２９２に伝えられる。
【０１９０】
次に、ＤＭＡＣ４０の動作について説明する。
【０１９１】
アクセス要求発生回路２９２は、Ｂ８に示すように、ＦＵＬＬが非アクティブ（Ｌレベル）であること（ＦＩＦＯ３４がフルでないこと）を条件にＲＲＥＱをアクティブにする。そして、バッファマネージャ７０からＲＡＣＫを受け取ると、ＲＲＥＱを非アクティブにする。
【０１９２】
なお、本実施形態では、送信時のバス調停においては、ＤＭＡＣ４０（或いはＤＭＡＣ４２）からのアクセス要求の優先順位を最も高くしている。従って、ＤＭＡＣ４０からのＲＲＥＱと、ＣＰＵインターフェース６０やポート用のＤＭＡＣ５４からのアクセス要求（ＯｔｈｅｒＲＲＥＱ）とが競合した場合には、ＲＲＥＱの方が優先する。一方、ＲＲＥＱよりも先に、ＣＰＵインターフェース６０やポート用のＤＭＡＣ５４からのアクセス要求があった場合には、Ｂ９に示すように、ＤＭＡＣ４０のアクセス要求は所与の期間だけ待たされる。従って、バッファマネージャ７０からのＲＤＡＴＡと、リンクコア２０へのＴＤとは同期しない。この理由により、本実施形態では、ＲＤＡＴＡとＴＤの位相を調整するためのＦＩＦＯ３０を設けている。
【０１９３】
さて、送信が開始すると、ポインタ更新回路２８４が、ヘッダポインタＨＰのインクリメント（広義には更新）を行う。そして、アドレス発生回路２８８は、図２６のＢ１０に示すように、インクリメントされるヘッダポインタに応じたＲＡＤＲを発生する。このようにして、ＲＤＡＴＡのヘッダ部分がＲＡＭ８０から順次読み出される。
【０１９４】
ＲＤＡＴＡとしてＨ４が読み出されると、パケット結合回路２８０に含まれるデータポインタ取得回路２８５が、このＨ４を、データポインタＤＰとして取得する。より具体的には、ＲＤＡＴＡとしてＨ０が読み出されると、データポインタ取得回路２８５内のｔｃｏｄｅ判別回路２８６が、Ｈ０に含まれるｔｃｏｄｅ（図２７参照）を判別する。そして、ヘッダの例えば第４クワドレットにデータポインタがあるとｔｃｏｄｅに基づき判断された場合には、ＲＤＡＴＡとしてＨ４が読み出された時に、データポインタ取得回路２８５がこのＨ４を取得する。即ち、図２６のＢ１１に示すように、ＲＤＡＴＡのＨ４が、データポインタとして取得され、ＲＡＤＲとして出力される。
【０１９５】
なお、本実施形態では、Ｂ３、Ｂ１１に示すように、リンクコア２０がヘッダＣＲＣを生成している期間を利用して、ＲＤＡＴＡからデータポインタであるＨ４を取得している。即ち、本実施形態では、ヘッダＣＲＣの生成はリンクコア２０が行い、ＤＭＡＣ４０はこれに関与しない。一方、データポインタの取得はＤＭＡＣ４０が行い、リンクコア２０はこれに関与しない。本実施形態では、このことに着目し、図２３（Ａ）においてヘッダＣＲＣが配置される第４クワドレットに、図２７に示すようにデータポインタを配置している。そして、ヘッダＣＲＣが生成される期間を利用して、ＲＤＡＴＡからデータポインタであるＨ４を取得するようにしている。このようにすることで、処理時間に無駄が生じるのを防止できるようになる。
【０１９６】
データポインタが取得されると、ポインタ更新回路２８４が、取得されたデータポインタであるＨ４のインクリメントを行う。そして、アドレス発生回路２８８は、図２６のＢ１２に示すように、インクリメントされるデータポインタに応じたＲＡＤＲを発生する。このようにして、ＲＤＡＴＡのデータ部分がＲＡＭ８０から順次読み出される。
【０１９７】
１つのパケットの送信処理が終了し、Ｂ４に示すようにＴＣＭＰがアクティブになると、Ｂ１３に示すようにＡＣＫ書き込み要求発生回路２９４がＷＲＥＱをアクティブにする。そして、リンクコア２０からＡＣＫ書き込みデータ＆アドレス発生回路２９６に対してＴＡＣＫを用いて送られたＡＣＫのコードが、Ｂ１４に示すように、ＷＤＡＴＡとして出力される。また、この際に、ＡＣＫのコードの書き込みアドレスであるＨＰ＋７が、ＷＡＤＲとして出力される。ここで、ＷＡＤＲがＨＰ＋７になるのは、図２７に示すようにＡＣＫのコードはヘッダの第７クワドレットに書き戻されるからである。
【０１９８】
以上のようにして、ヘッダ領域のヘッダとデータ領域のデータを結合して、送信パケットを組み立てることが可能になる。
【０１９９】
特に本実施形態では、ヘッダとデータの結合はＤＭＡＣ４０が行い、リンク２０はこれに関与する必要がない。従って、リンクコア２０の回路構成や処理を簡素化できるようになる。
【０２００】
また、本実施形態では、データポインタ取得回路２８５が、ＲＤＡＴＡからデータポインタ（Ｈ４）を取得し、この取得されたデータポインタに基づきＲＡＤＲが発生し、データが読み出される。このようにすることで、ヘッダと、そのヘッダに対応するデータとを、確実に結合できるようになる。また、ヘッダとデータの結合処理に必要な回路構成を簡素化できるようになる。
【０２０１】
４．電子機器
次に、本実施形態のデータ転送制御装置を含む電子機器の例について説明する。
【０２０２】
例えば図２８（Ａ）に電子機器の１つであるプリンタの内部ブロック図を示し、図２９（Ａ）にその外観図を示す。ＣＰＵ（マイクロコンピュータ）５１０はシステム全体の制御などを行う。操作部５１１はプリンタをユーザが操作するためのものである。ＲＯＭ５１６には、制御プログラム、フォントなどが格納され、ＲＡＭ５１８はＣＰＵ５１０のワーク領域として機能する。表示パネル５１９はプリンタの動作状態をユーザに知らせるためのものである。
【０２０３】
ＰＨＹチップ５０２、データ転送制御装置５００を介して、パーソナルコンピュータなどの他のノードから送られてきた印字データは、バス５０４を介して印字処理部５１２に直接送られる。そして、印字データは、印字処理部５１２にて所与の処理が施され、プリントヘッダなどからなる印字部（データを出力するための装置）５１４により紙に印字されて出力される。
【０２０４】
図２８（Ｂ）に電子機器の１つであるスキャナの内部ブロック図を示し、図２９（Ｂ）にその外観図を示す。ＣＰＵ５２０はシステム全体の制御などを行う。操作部５２１はスキャナをユーザが操作するためのものである。ＲＯＭ５２６には制御プログラムなどが格納され、ＲＡＭ５２８はＣＰＵ５２０のワーク領域として機能する。
【０２０５】
光源、光電変換器などからなる画像読み取り部（データを取り込むための装置）５２２により原稿の画像が読み取られ、読み取られた画像のデータは画像処理部５２４により処理される。そして、処理後の画像データがバス５０５を介してデータ転送制御装置５００に直接送られる。データ転送制御装置５００は、この画像データにヘッダなどを付加することでパケットを生成し、ＰＨＹチップ５０２を介してパーソナルコンピュータなどの他のノードに送信する。
【０２０６】
図２８（Ｃ）に電子機器の１つであるＣＤ−Ｒドライブの内部ブロック図を示し、図２９（Ｃ）にその外観図を示す。ＣＰＵ５３０はシステム全体の制御などを行う。操作部５３１はＣＤ−Ｒをユーザが操作するためのものである。ＲＯＭ５３６には制御プログラムなどが格納され、ＲＡＭ５３８はＣＰＵ５３０のワーク領域として機能する。
【０２０７】
レーザ、モータ、光学系などからなる読み取り＆書き込み部（データを取り込むための装置又はデータを記憶するための装置）５３３によりＣＤ−Ｒ５３２から読み取られたデータは、信号処理部５３４に入力され、エラー訂正処理などの所与の信号処理が施される。そして、信号処理が施されたデータが、バス５０６を介してデータ転送制御装置５００に直接送られる。データ転送制御装置５００は、このデータにヘッダなどを付加することでパケットを生成し、ＰＨＹチップ５０２を介してパーソナルコンピュータなどの他のノードに送信する。
【０２０８】
一方、ＰＨＹチップ５０２、データ転送制御装置５００を介して、他のノードから送られてきたデータは、バス５０６を介して信号処理部５３４に直接送られる。そして、信号処理部５３４によりこのデータに所与の信号処理が施され、読み取り＆書き込み部５３３によりＣＤ−Ｒ５３２に記憶される。
【０２０９】
なお、図２８（Ａ）、（Ｂ）、（Ｃ）において、ＣＰＵ５１０、５２０、５３０の他に、データ転送制御装置５００でのデータ転送制御のためのＣＰＵを別に設けるようにしてもよい。
【０２１０】
本実施形態のデータ転送制御装置を電子機器に用いることで、高速なデータ転送が可能になる。従って、ユーザがパーソナルコンピュータなどによりプリントアウトの指示を行った場合に、少ないタイムラグで印字が完了するようになる。また、スキャナへの画像取り込みの指示の後に、少ないタイムラグで読み取り画像をユーザは見ることができるようになる。また、ＣＤ−Ｒからのデータの読み取りや、ＣＤ−Ｒへのデータの書き込みを高速に行うことができるようになる。更に、例えば１つのホストシステムに複数の電子機器を接続して利用したり、複数のホストシステムに複数の電子機器を接続して利用したりすることも容易になる。
【０２１１】
また本実施形態のデータ転送制御装置を電子機器に用いることで、ＣＰＵ上で動作するファームウェアの処理負荷が軽減され、安価なＣＰＵや低速のバスを用いることが可能になる。更に、データ転送制御装置の低コスト化、小規模化を図れるため、電子機器の低コスト化、小規模化も図れるようになる。
【０２１２】
なお本実施形態のデータ転送制御装置を適用できる電子機器としては、上記以外にも例えば、種々の光ディスクドライブ（ＣＤＲＯＭ、ＤＶＤ）、光磁気ディスクドライブ（ＭＯ）、ハードディスクドライブ、ＴＶ、ＶＴＲ、ビデオカメラ、オーディオ機器、電話機、プロジェクタ、パーソナルコンピュータ、電子手帳、ワードプロセッサなど種々のものを考えることができる。
【０２１３】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【０２１４】
例えば、本発明のデータ転送制御装置の構成は、図６に示す構成が特に望ましいが、これに限定されるものではない。
【０２１５】
また本発明では、記憶手段を複数の領域に分離することが特に望ましいが、これを分離させない構成とすることも可能である。
【０２１６】
また、本発明は、ＩＥＥＥ１３９４規格でのデータ転送に適用されることが特に望ましいが、これに限定されるものではない。例えばＩＥＥＥ１３９４と同様の思想に基づく規格やＩＥＥＥ１３９４を発展させた規格におけるデータ転送にも本発明は適用できる。
【０２１７】
【図面の簡単な説明】
【図１】図１（Ａ）、（Ｂ）、（Ｃ）は、非同期転送とアイソクロナス転送について説明するための図である。
【図２】図２（Ａ）、（Ｂ）は、ツリー識別について説明するための図である。
【図３】自己識別について説明するための図である。
【図４】図４（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）は、セルフＩＤパケットなどの物理層のパケットのフォーマットを示す図である。
【図５】ＩＥＥＥ１３９４のプロトコル構成について示す図である。
【図６】本実施形態のデータ転送制御装置の構成例を示す図である。
【図７】ヘッダ（制御情報）領域とデータ領域の分離について説明するための図である。
【図８】本実施形態の比較例の構成例について示す図である。
【図９】図８の構成によるデータ転送の手法について説明するための図である。
【図１０】データ転送の手法の他の例について説明するための図である。
【図１１】本実施形態のデータ転送の手法について説明するための図である。
【図１２】図１２（Ａ）、（Ｂ）は、リンクコアとＣＰＵとの間にランダムアクセス可能なＲＡＭを介在させる手法について説明するための図である。
【図１３】受信パケットをヘッダとデータに分離してＲＡＭのヘッダ領域とデータ領域に格納する手法について説明するための図である。
【図１４】ヘッダ領域に格納されるヘッダとデータ領域に格納されるデータを結合し、送信パケットを組み立てる手法について説明するための図である。
【図１５】ヘッダ領域に格納するヘッダにデータポインタを含ませる手法について説明するための図である。
【図１６】ＴＡＧについて説明するための図である。
【図１７】図１７（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）、（Ｅ）、（Ｆ）は、ＲＡＭを各種の領域に分離する手法について説明するための図である。
【図１８】ＲＡＭの各領域のサイズを可変に制御する手法について説明するための図である。
【図１９】図１９（Ａ）、（Ｂ）、（Ｃ）は、リングバッファ構造について説明するための図である。
【図２０】図２０（Ａ）、（Ｂ）は、１つのパケットのヘッダやデータが格納される領域のサイズを固定にする手法について説明するための図である。
【図２１】受信側の構成の一例を示す図である。
【図２２】受信側の動作について説明するためのタイミング波形図である。
【図２３】図２３（Ａ）は、ＩＥＥＥ１３９４規格の非同期パケットのフォーマットであり、図２３（Ｂ）は、ＲＡＭのヘッダ領域に格納される非同期受信パケットのヘッダ部分のフォーマットである。
【図２４】図２４（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）は、ヘッダポインタとデータポインタの更新について説明するための図である。
【図２５】送信側の構成の一例を示す図である。
【図２６】送信側の動作について説明するためのタイミング波形図である。
【図２７】ＲＡＭのヘッダ領域に格納される非同期送信パケットのヘッダ部分のフォーマットである。
【図２８】図２８（Ａ）、（Ｂ）、（Ｃ）は、種々の電子機器の内部ブロック図の例である。
【図２９】図２９（Ａ）、（Ｂ）、（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
１０  ＰＨＹインターフェース
２０  リンクコア
２２  レジスタ
３０  ＦＩＦＯ（ＡＴＦ）
３２  ＦＩＦＯ（ＩＴＦ）
３４  ＦＩＦＯ（ＲＦ）
４０  ＤＭＡＣ（ＡＴＦ用）
４２  ＤＭＡＣ（ＩＴＦ用）
４４  ＤＭＡＣ（ＲＦ用）
５０  ポートインターフェース
５２  ＦＩＦＯ（ＰＦ）
５４  ＤＭＡＣ（ＰＦ用）
５６  レジスタ
６０  ＣＰＵインターフェース
６２  アドレスデコーダ
６３  データ同期化回路
６４  割り込みコントローラ
６６  ＣＰＵ
６８  クロック制御回路
７０  バッファマネージャ
７２  レジスタ
７４  調停回路
７６  シーケンサ
８０  ＲＡＭ（パケット記憶手段）
９０、９２、９４  バス（第１のバス）
９６、９８  バス（第２のバス）
１００、１０２、１０４、１０５、
１０６、１０７、１０８、１０９  バス（第３のバス）
１１０  バス（第４のバス）
１２０  データ転送制御装置
１２２  ＰＨＹチップ
１２４  アプリケーション層のデバイス
１３０  バス監視回路
１３２  直列・並列変換回路
１４２  パケット診断回路
１６０  パケット整形回路
１６２  ＴＡＧ生成回路
１６４  ヘッダ＆トレイラー生成回路
１６６  エラーチェック回路
１６７  シーケンサ
１６８  バッファ
１７０  セレクタ
１８０  パケット分離回路
１８２  ＴＡＧ判別回路
１８４  ポインタ更新回路
１８８  アドレス発生回路
１９０  アクセス要求実行回路
１９２  アドレス要求発生回路
２８０  パケット結合回路
２８４  ポインタ更新回路
２８５  データポインタ取得回路
２８６  ｔｃｏｄｅ判別回路
２９０  アクセス要求実行回路
２９２  アドレス要求発生回路
２９４  ＡＣＫ書き込み要求発生回路
２９６  ＡＣＫ書き込みデータ＆アドレス発生回路
【図１】
0003543649.tif 000002
【図２】
0003543649.tif 000003
【図３】
0003543649.tif 000004
【図４】
0003543649.tif 000005
【図５】
0003543649.tif 000006
【図６】
0003543649.tif 000007
【図７】
0003543649.tif 000008
【図８】
0003543649.tif 000009
【図９】
0003543649.tif 000010
【図１０】
0003543649.tif 000011
【図１１】
0003543649.tif 000012
【図１２】
0003543649.tif 000013
【図１３】
0003543649.tif 000014
【図１４】
0003543649.tif 000015
【図１５】
0003543649.tif 000016
【図１６】
0003543649.tif 000017
【図１７】
0003543649.tif 000018
【図１８】
0003543649.tif 000019
【図１９】
0003543649.tif 000020
【図２０】
0003543649.tif 000021
【図２１】
0003543649.tif 000022
【図２２】
0003543649.tif 000023
【図２３】
0003543649.tif 000024
【図２４】
0003543649.tif 000025
【図２５】
0003543649.tif 000026
【図２６】
0003543649.tif 000027
【図２７】
0003543649.tif 000028
【図２８】
0003543649.tif 000029
【図２９】
0003543649.tif 000030