(57)【特許請求の範囲】
【請求項１】
データを送信する送信装置と該データを受信する受信装置との間の論理的な接続を示すコネクションＩＤを用いて通信を行うデータ通信システムであって、
前記データは、前記コネクションＩＤを用いて設定されるメモリ空間の所定の領域に格納されることを特徴とするデータ通信システム。
【請求項２】
データを送信する送信装置と、該データを受信する受信装置と、該データの通信を管理する管理装置とを含むデータ通信システムであって、
前記送信装置と前記受信装置と前記管理装置とが、前記送信装置と前記受信装置との間の論理的な接続を設定した後、前記管理装置が、前記データを格納するメモリ空間の領域を設定することを特徴とするデータ通信システム。
【請求項３】
データを送信する送信装置と、該データを受信する受信装置との間の論理的な接続を示すコネクションＩＤを用いて通信を行うデータ通信システムに接続可能なデータ通信装置であって、
前記データを送受信する通信手段と、
前記データを前記コネクションＩＤを用いて設定されるメモリ空間の所定の領域に格納するように制御する制御手段とを有することを特徴とするデータ通信装置。
【請求項４】
複数の機器により構成されたデータ通信システムに接続可能なデータ通信装置であって、
データを送受信する通信手段と、
各機器問の論理的な接続を示すＩＤ情報と、該ＩＤ情報を用いて通信されるデータを格納するメモリ空間の領域とを設定する設定手段とを有することを特徴とするデータ通信装置。
【請求項５】
データを送信する送信装置と、該データを受信する受信装置との間の論理的な接続を示すコネクションＩＤを用いて通信を行うデータ通信システムに適用可能なデータ通信方法であって、
前記コネクションＩＤを用いて設定されるメモリ空間の所定の記領域に、前記データを格納することを特徴とするデータ通信方法。
【請求項６】
データを送信する送信装置と、該データを受信する受信装置と、該データの通信を管理する管理装置とを含むデータ通信システムに適用可能なデータ通信方法であって、
前記送信装置と前記受信装置との間の論理的な接続を設定するように前記送信装置と前記受信装置と前記管理装置とを制御した後、前記データを格納するメモリ空間の領域を設定するように前記管理装置を制御することを特徴とするデータ通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ通信システム、データ通信装置及びデータ通信方法に関し、特に、制御信号とデータを混在させて通信することが可能なデータ通信バスを用いて複数電子機器（以下、機器）間を接続して、各機器間でデータ通信を行うシステムに関するものである。
【０００２】
【従来の技術】
パソコン周辺機器の中で、最も利用頻度が高いのはハードディスクやプリンタであり、これらの周辺装置は小型コンピュータ用汎用型インターフェイスで代表的なデジタルインターフェイス( 以下、デジタルI/F)であるSCSI等をもってパソコン間との接続がなされ、データ通信が行われている。
【０００３】
また、デジタルカメラやデジタルビデオカメラといった記録再生装置もパソコン( 以下、PC) への入力手段として、周辺装置の１つであり、近年、デジタルカメラやビデオカメラで撮影した静止画や動画といった映像をPCへ取り込み、ハードディスクに記憶したり、またはPCで編集した後、プリンタでカラープリントするといった分野の技術が進んでおり、ユーザーも増えている。
【０００４】
取り込んだ画像データをPCからプリンタやハードディスクへ出力する際などに、前記のSCSI等を経由してデータ通信がされるものであり、そのようなとき画像データのようにデータ量の多い情報を送るためにも、こういったデジタルI/F には転送データレートの高い、かつ汎用性のあるものが必要とされる。
【０００５】
図６に、従来の例としてデジタルカメラ、PC及びプリンタを接続したときのブロック図を示す。
図６において、101 はデジタルカメラ、102 はパソコン(PC)、103 はプリンタである。
【０００６】
さらに、104 はデジタルカメラ101 の記録部であるメモリ、105 は画像データの復号化回路、106 は画像処理部、107 はD/A コンバータ、108 は表示部であるEVF 、109 はデジタルカメラ101 のデジタルI/O 部、110 はPCのデジタルI/O 部、111 はキーボードやマウスなどの操作部、112 は画像データの復号化回路、113 はディスプレイである。114 はハードディスク装置、115 はRAM 等のメモリ、116 は演算処理部である。
【０００７】
MPU117はPCI バス、118 はPC102 のSCSIインタフェース、119 はPC102 とSCSIケーブルで繋がったプリンタ103 のSCSIインターフェイス、120 はメモリ、121 はプリンタヘッド、122 はプリンタ103 を制御するプリンタコントローラ、123 はドライバである。
【０００８】
デジタルカメラ101 で撮像した画像をPC102 に取り込み、またPC102 からプリンタ103 へ出力するときの手順の説明を行う。デジタルカメラ101 のメモリ104 に記憶されている画像データが読みだされると、読み出された画像データのうち一方は復号化回路105 で復号化され、画像処理回路106 で表示するための画像処理がなされ、D/A コンバータ107 を経て、EVF108で表示される。また一方では、外部出力するためにデジタルI/O 部109 から、ケーブルを伝わってPC 102のデジタルI/O 部110 へ至る。
【０００９】
PC 102内では、PCI バス117 を相互伝送のバスとして、デジタルI/O 部110 から入力した画像データは、記憶する場合はハードディスク114 で記憶され、表示する場合は復号化回路112 で復号化された後、メモリ115 で表示画像としてメモリされて、ディスプレイ113 でアナログ信号に変換されてから表示される。PC 102での編集時等の操作入力は操作部111 から行い、PC102 全体の処理はMPU 116 で行う。
【００１０】
また、画像をプリント出力する際は、PC 102内のSCSIインターフェイスボード118 から画像データをSCSIケーブルにのせて伝送し、プリンタ103 側のSCS I インターフェイス119 で受信し、メモリ120 でプリント画像として形成され、プリンタコントローラ122 の制御でプリンタヘッド121 とドライバ123 が動作して、メモリ120 から読み出したプリント画像データをプリントする。
【００１１】
以上が、従来の画像データをPC取り込み、またはプリントするまでの手順である。このように、従来はホストであるPCにそれぞれの機器が接続され、PCを介してから、記録再生装置で撮像した画像データをプリントしている。
【００１２】
また、ディジタルVTR 、TV、チューナなどのAV機器や、パーソナルコンピュータ（以下、PCと称する）等をIEEE1394 -1995規格（以下、IEEE1394規格と称する）に準拠したデジタルインターフェイスを用いて相互に接続し、これらの間においてディジタルビデオ信号、ディジタルオーディオ信号などを送受信する通信システムが提案されている。
【００１３】
このシステムにおいては、リアルタイムにデータ転送することが重要となるため、いわゆる同期通信( 以下、Isochronous 通信と称する) によって、データ通信を行なっている。
【００１４】
この場合には、データ転送のリアルタイム性は保証されるが、通信が確実に行なわれるかは保証されない。しかしながら、前記従来例で挙げたデジタルインターフェイスの問題点として、SCSIには転送データレートの低いものや、パラレル通信のためケーブルが太いもの、接続される周辺機器の種類や数、接続方式などにも制限があり、多くの面での不便利性も指摘されている。
【００１５】
また、IEEE1394規格のIsochronus通信では、同期通信を行なうため、通信が確実に行なわれるかは保証されない。したがって、確実にデータ転送を行ないたい場合には、Isochronous 通信を使用することは好ましくない。
【００１６】
また、IEEE1394規格のIsochronous 通信では、通信帯域に空きがある場合にも、通信の総数が64に制限される。このため、通信帯域をあまり要求しないような通信を多数行ないたい場合には、Isochronous 通信を使用することはできないといった問題点があった。
【００１７】
また、IEEE1394規格の通信方式では、データ転送の間に、バスリセットやエラーによる、データ転送の中断が生じることが考えられる。この場合、IEEE1394規格の通信方式では、どのようなデータ内容が失われたのかを知ることができない。また、IEEE1394規格の通信方式では、該データ転送中断からの復帰を行なうためには、非常に繁雑な通信手順を踏むことを要求されるという問題点があった。
【００１８】
前記問題点を解決するために、シリアルバス上に接続された、任意のデータを送信するためのソースノードと、該データを受信するデスティネーションノードとの間を、論理的な接続をあらわすコネクションID番号で論理的に接続するプロトコルが提案されている。
【００１９】
【発明が解決しようとする課題】
しかしながら、前記コネクションIDを用いるプロトコルにおいては、任意のデータを送信するためのソースノードが、データの授受に先立ち、該データを受信するためのデスティネーションノードへ、問い合わせパケットを発行して、前記デスティネーションノードのノードオフセットを取得している。
【００２０】
また、ソースノードは、該パケットの送信をブロードキャストを用いて行っている。このため、前記従来例においては、前記デスティネーションノードのノードオフセットの授受のための、転送オーバーヘッドがかかり、転送開始までの遅延時間の増大を招く問題があった。
【００２１】
本発明は前記問題点を解決するためになされたもので、データ転送中断により失われたデータを容易に検出することが可能で、該データ転送の中断からの復帰を、確実に、かつ簡単に行うことができるとともに、前記デスティネーションノードのノードオフセットの授受のための、転送オーバーヘッドをなくし、転送開始までの遅延を軽減することを目的とする。
【００２２】
【課題を解決するための手段】
本発明のデータ通信システムは、データを送信する送信装置と該データを受信する受信装置との間の論理的な接続を示すコネクションＩＤを用いて通信を行うデータ通信システムであって、前記データは、前記コネクションＩＤを用いて設定されるメモリ空間の所定の領域に格納されることを特徴とする。
また、本発明のデータ通信システムの他の特徴とするところは、データを送信する送信装置と、該データを受信する受信装置と、該データの通信を管理する管理装置とを含むデータ通信システムであって、前記送信装置と前記受信装置と前記管理装置とが、前記送信装置と前記受信装置との間の論理的な接続を設定した後、前記管理装置が、前記データを格納するメモリ空間の領域を設定することを特徴とする。
【００２３】
本発明のデータ通信装置は、データを送信する送信装置と、該データを受信する受信装置との間の論理的な接続を示すコネクションＩＤを用いて通信を行うデータ通信システムに接続可能なデータ通信装置であって、前記データを送受信する通信手段と、前記データを前記コネクションＩＤを用いて設定されるメモリ空間の所定の領域に格納するように制御する制御手段とを有することを特徴とする。
また、本発明のデータ通信装置の他の特徴とするところは、複数の機器により構成されたデータ通信システムに接続可能なデータ通信装置であって、データを送受信する通信手段と、
各機器問の論理的な接続を示すＩＤ情報と、該ＩＤ情報を用いて通信されるデータを格納するメモリ空間の領域とを設定する設定手段とを有することを特徴とする。
【００２４】
本発明のデータ通信方法は、データを送信する送信装置と、該データを受信する受信装置との間の論理的な接続を示すコネクションＩＤを用いて通信を行うデータ通信システムに適用可能なデータ通信方法であって、前記コネクションＩＤを用いて設定されるメモリ空間の所定の記領域に、前記データを格納することを特徴とする。
また、本発明のデータ通信方法の他の特徴とするところは、データを送信する送信装置と、該データを受信する受信装置と、該データの通信を管理する管理装置とを含むデータ通信システムに適用可能なデータ通信方法であって、前記送信装置と前記受信装置との間の論理的な接続を設定するように前記送信装置と前記受信装置と前記管理装置とを制御した後、前記データを格納するメモリ空間の領域を設定するように前記管理装置を制御することを特徴とする。
【００２５】
【作用】
本発明は前記技術手段を有するので、全ての前記コネクションＩＤ番号に対して、同一のノードオフセットを設定するか、または、データ転送に先立ち、前記コネクションＩＤ番号に対するノードオフセットを設定する。前記動作により、前記ソースノードと前記デスティネーションノードとの接続に際し、ノードオフセットの転送オーバーヘッドをなくし、転送までの遅延を軽減するように作用する。
【００２６】
【発明の実施の形態】
図１を用いて、本発明の実施例について説明する。図１の通信システムを構成する各機器は、IEEE1394規格に準拠した通信インターフェイス（以下、1394インターフェイス）を具備している。以下、本実施の形態においてIEEE1394規格に準拠した通信システムを1394シリアルバスと称する。
図１において、10はcomputerであり、12は演算処理装置 (MPU)、14は第一の1394インターフェイス、16はキーボードなど第一の操作部、18は第一のデコーダ、20はCRT ディスプレイなどの表示装置、22はハードディスク、24は第一のメモリであり本発明に係るcomputer 10 の内部メモリ、26はPCI バスなどのコンピュータ内部バスである。
【００２７】
また、28はVCR であり、30は撮像光学系、32はアナログ- デジタル(A/D) 変換器、34はビデオ処理部、36は圧縮伸長回路、38は第一のメモリ、40は第二のメモリ、42は第一のデータセレクタ、44は第二の1394インターフェイス、46は第一のメモリ制御回路、48は第二のメモリ制御回路、50はシステムコントローラ、52は第二の操作部、54はファインダ、56はD/A 変換器、58は記録部である。
【００２８】
さらに、60はプリンタであり、62は第三の1394インターフェイス、64は第二のデータセレクタ、66は第三の操作部、68はプリンタコントローラ、70は第二のデコーダ、72は第三のメモリ、74は画像処理部、76はドライバ、78はプリンタヘッドである。
【００２９】
computer 10と、VCR 28、及び、プリンタ 60 とは、第一から第三の1394インターフェイス14,  44,  62によって1394シリアルバスのノードを構成するとともに、該第一から第三の1394インターフェイス 14,  44,  62 を介して相互に接続されており、データの授受や、コマンドによるコントロール等が可能になっている。
【００３０】
本実施の形態では、例えば、computer 10 は、1394シリアルバス上における、画像信号送受信のコントローラとして動作する。
【００３１】
本実施の形態に係るcomputer 10 においては、例えば、PCI バスなどのコンピュータ内部バス26によって、MPU 12と、1394インターフェイス14、キーボード16、デコーダ18、CRT ディスプレイ20、ハードディスク22、内部メモリ24などの、内部の各デバイスとが相互に接続されている。
【００３２】
MPU12 は、ハードディスク22に記録されているソフトウェアを実行するとともに、様々なデータを内部メモリ24に移動させる。
また、MPU 12は、PCI バス26によって接続されている各デバイスの、調停動作なども合わせて行なう。
【００３３】
1394インターフェイス 14 は、1394シリアルバス上に転送される画像信号を受信するとともに、ハードディスク 22 に記録されている画像信号や、内部メモリ
24 に記憶される画像信号を送信する。
【００３４】
また、1394インターフェイス 14 は、1394シリアルバス上に接続された他の機器に対するコマンドデータを送信する。
また、1394インターフェイス 14 は、1394シリアルバス上に転送される信号を他の1394ノードに転送する。
【００３５】
操作者は、キーボード 16 などの操作部を通じて、MPU  12 に、ハードディスク 22 に記録されているソフトウェアを実行させる。該ソフトウェア等の情報は、CRT ディスプレイなどの表示装置 20 によって、操作者に提示される。デコーダ 18 は、前記のソフトウェアを通じて、1394シリアルバス上から受信した画像信号をデコードする。
【００３６】
デコードされた画像信号も、また、CRT ディスプレイなどの表示装置 20 によって、操作者に提示される。本実施の形態では、例えば、VCR 28は、画像信号の入力装置として動作する。撮像光学系 30 から入力された映像の輝度信号（Y ）と色差信号（C ）は各々A/D 変換器 32 にてディジタルデータに変換される。
【００３７】
前記ディジタルデータは、ビデオ処理部 34 にて多重化される。その後、圧縮伸長回路 36 にて該画像情報のデータ量を圧縮する。一般に、YC独立に該圧縮処理回路を備えているが、ここでは説明の簡略化の為にYC時間分割での圧縮処理の例を示す。
【００３８】
次に、前記画像データを伝送路誤りに強くする目的でシャフリング処理を施す。この処理の目的は連続的な符号誤りであるところのバーストエラーを修整や補間の行いやすい離散的な誤りであるところのランダムエラーに変換する事である。
【００３９】
加えて、画像の画面内の粗密による情報量の発生の偏りを均一化する目的を重視する場合には前記圧縮処理の前に本処理工程を持ってくると、ランレングス等の可変長符号を用いた場合の都合が良い。
【００４０】
これを受けて、データ・シャフリングの復元の為のデータ識別（ID）情報を付加する。このID付加動作にて付加されたIDは、同時に記録しておいた前記システムのモード情報等と共に再生時の逆圧縮処理（情報量伸張処理）の際に補助情報として利用する。これらのデータの再生時の誤りを低減する為にエラー訂正（ECC ）情報を付加する。この様な冗長信号の付加までを、映像と音声等の情報毎に対応する独立の記録エリア毎に処理する。
【００４１】
前記のように、ID情報やECC 情報が付加された画像信号は、記録部 58 により、磁気テープ等の記録媒体に記録されるとともに、後述する第一のメモリ 38 に一時的に記憶される。
【００４２】
一方、ビデオ処理部 34 にて多重化された画像データは、D/A 変換器 56 によって、ディジタル- アナログ変換され、電子ビューファインダ 54 で操作者により観察される。
【００４３】
また、操作者は第二の操作部 52 を介して、様々な操作情報をシステムコントローラ 50 に送信し、システムコントローラ 50 は、該操作情報によって、VCR 全体を制御するようになっている。
【００４４】
また、ビデオ処理部 34 にて多重化された画像データは、第二のメモリ 40 に出力され、一時的に記憶される。
前述した第一のメモリ 38 と、二のメモリ 40 とは、それぞれ、第一のメモリ制御回路 46 と、第二のメモリ制御回路 48 とを介し、システムコントローラ 50 により動作制御されている。
【００４５】
第一のデータセレクタ 42 は、前述した第一のメモリ 38 と、二のメモリ 40 からのデータを選択して、第二の1394インターフェイス 44 に受け渡す、あるいは、第二の1394インターフェイス 44 からのデータを選択して、第一のメモリ 38 と、二のメモリ 40 とのどちらかに受け渡す。
【００４６】
前記動作により、VCR 28における第二の1394インターフェイス 44 からは、圧縮された画像データと非圧縮の画像データとが、操作者により選択されて出力できるようになっている。
【００４７】
第二の1394インターフェイス 44 は、1394シリアルバスを通じて、VCR 28を制御するためのコマンドデータを受信する。受信されたコマンドデータは、第一のデータセレクタ 42 を通じて、システムコントローラ 50 に入力される。システムコントローラ 50 は、前記のコマンドデータに対するレスポンスデータを作成して、第一のデータセレクタ 42 、及び、第二の1394インターフェイス 44 を通じ、1394シリアルバスに該データを送出する。
【００４８】
本実施の形態では、例えば、プリンタ 60 は、画像の印刷出力装置として動作する。第三の1394インターフェイス 62 は、1394シリアルバス上に転送される画像信号と、1394シリアルバスを通じて該プリンタ 60 を制御するためのコマンドデータとを受信する。
【００４９】
また、第三の1394インターフェイス 62 は、該コマンドに対するレスポンスデータを送信する。受信された画像データは、第二のデータセレクタ64を通じて、第二のデコーダ70に入力される。第二のデコーダ70は、該画像データをデコードして、画像処理部74に出力する。画像処理部74は、デコードされた画像データを第三のメモリ72に一時的に記憶する。
【００５０】
一方、受信されたコマンドデータは、第二のデータセレクタ64を通じて、プリンタコントローラ68に入力される。プリンタコントローラ68は、該コマンドデータによりドライバ76による紙送り制御や、プリンタヘッド78の位置制御など、様々な印刷に関する制御を行なう。
【００５１】
また、プリンタコントローラ68は、第三のメモリ 72 に一時的に記憶された画像データを、印刷データとして、プリンタヘッド78に送信し、印刷動作を行わせる。
【００５２】
前述したように、本実施の形態に係る、第一から第三の1394インターフェイス 14,  44,  62 は、それぞれ、1394シリアルバスのノードを構成する。第一1394インターフェイス14は、コントロールノード、または、コントローラとして動作し、第二1394インターフェイス44は、画像データのソースノードとして動作し、第三1394インターフェイス44は、デスティネーションノードとして動作する。
【００５３】
以下に、図２を用いて、本実施の形態に係る各ノードの動作を示す。図２において、 200はコントローラ、 202はソースノード、204 はデスティネーションノード、206 はソースノード内部のサブユニット、208 は画像データ等のobject、210 はデスティネーションノード内部の第一のメモリ空間、212 は第一のコネクション、214 はデスティネーションの第n のメモリ空間、216 は第n のコネクションである。
【００５４】
コントローラ 200は、データ転送を行うソースノード 202とデスティネーションノード 204とのコネクションを確立するためのコネクションID、及び、後述するメモリ空間のアドレスを管理するノードである。なお、コントローラ 200は、ソースノード 202、及び、デスティネーションノード 204と独立したノードであってもよいし、ソースノード、または、デスティネーションノードとコントローラとが同じであってもかまわない。後者の場合、コントローラと同じノードである、ソースノード、または、デスティネーションノードと、コントローラとの間のトランザクションは、不要である。
【００５５】
本実施の形態では、コントローラ 200がソースノード 202、及び、デスティネーションノード 204とは別のノードに存在する場合の例を示す。
【００５６】
デスティネーションノード内部のメモリ空間、 210から 214は、コネクション 212から 216によって定められる。該デスティネーションノード内部のメモリ空間を示したのが、図３である。図３（ａ）は、デスティネーションノード内部の論理的なメモリ空間全体を示しており、図３(b) は、該メモリ空間中の本実施の形態で用いるメモリ空間を示している。
【００５７】
図３（ａ）で示されるメモリ空間は64bitsのアドレス空間である。また、図３（ｂ）で示されるメモリ空間は、例えば図３（ａ）で示されるメモリ空間において、アドレスの上位16bitsがFFFF16である。該48bitsのアドレスは、後述するdestnation offset の値によって指定される。
【００５８】
また、図３（ｂ）で示されるメモリ空間において、例えば、00000000000016〜0000000003FF16は予約された領域であり、実際に書き込まれる領域はアドレスの下位48bitsがFFFFF000040016からのメモリ空間となる。本実施の形態においては、例えば、ノードオフセットをVFFFFF000040016 以降のアドレスに設定するようになっている。ここで、ノードオフセットとは、図５に示すdestination offsetである。
【００５９】
本実施の形態の通信装置においては、複数のコネクションを確立することが可能である。ソースノード 202は、内部のサブユニット206 から画像データ等のobject208 を、例えば、第一のコネクション 212を通じて、デスティネーションノード内部の第一のメモリ空間 210に書き込む。また、前述のコネクションによるデータの授受は、例えば、Asynchronousパケットを用いて行なわれる。
【００６０】
次に、図４(a) を用いて、上述した、コントローラ 200、ソースノード 202、デスティネーションノード 204の、各ノードの動作について説明する。
コントローラは、ユーザが選択したソースノードと、デスティネーションノードとの間の接続を行うために、ネゴシエーションを行う。
【００６１】
ネゴシエーションには、接続を行うためのパケットを用いる。該パケットは、例えば、asynchronousブロードキャストパケットであり、パケット内のペイロードには、接続の番号を示すコネクションIDと、デスティネーションノードのノードオフセットとが書き込まれている。
【００６２】
上記コネクションIDによって、それぞれのノードは、コネクションを識別する。また、ソースノードは、データの送信の際に、上記ノードオフセットに対して、書き込みを行う。
【００６３】
上記ノードオフセットは、例えば、次のように設定される。既存のコネクションIDがない場合には、上述の図３(b) で示されるメモリ空間が、全て使用できることになる。上述のように、ノードオフセットは、FFFFF000040016(16 進数) 以降のアドレスに設定される。
【００６４】
コントローラは、既存のコネクションが無い場合、コネクションIDを000016(16 進数) に設定し、該コネクションIDに対してはノードオフセットFFFFF000040016(16 進数) が割り当てられる。本実施の形態では、ソースノードが書き込みを行なう最大容量が、あらかじめ定められている。
【００６５】
この値は、例えば、512 bytes に設定される。次のコネクションが発生した場合、コネクションIDは000116(16 進数) に設定される。該コネクションIDに対してはノードオフセットFFFFF000060016(16 進数) が割り当てられる。
【００６６】
すなわち、ノードオフセットは、次式で示される。
Ａnode offset ＝ NC B C ＋FFFFF000040016      （１式）
上式において、Ａnode offset はノードオフセット、 NC はコネクションIDの値、B C はソースノードが書き込みを行なう最大容量である。
【００６７】
上記のように構成することにより、コントローラがソースノードに対して、ノードオフセットが事前に通知できるので、ソースノードとデスティネーションノードとの接続に際し、ノードオフセットの転送オーバヘッドをなくし、転送までの遅延を軽減する効果がある。
【００６８】
本実施の形態では、コントローラが上式によって、ノードオフセットを設定するようにしているが、例えば、読みとり専用メモリ(ROM) などに、予め、コネクションIDとノードオフセットとの関係を記憶しておき、それを読み出すように構成しても良い。
【００６９】
また、上記の構成に限らず、コネクションIDとノードオフセットとの関連付けを行なうような構成ならば、どのような構成でも良いことはいうまでもない。さらに、送信されたパケットが自ノードへのパケットかどうかは、コネクションIDによって検出できるので、コネクションIDにより、ノードオフセットを変化させる必要すらない。
【００７０】
すなわち、全てのコネクションIDに対して、同一のノードオフセットを割り当てても、同様の効果が得られることはいうまでもない。該構成の場合には、コントローラのハードウェアがさらに簡略化できる効果がある。
【００７１】
コントローラから、上記のネゴシエーションパケットを受け取ったソースノードは、コントローラからの送信コマンドパケットを待機する。一方、上記ネゴシエーションパケットを受け取ったデスティネーションノードは、ソースノードからの上記問い合わせのasynchronousブロードキャストパケットを待機する。
【００７２】
上述のネゴシエーションが終わると、コントローラは、ソースノードに、データ送信のためのコマンドパケットを送信する。上記コマンドパケットを受信したソースノードは、デスティネーションノードに対して、問い合わせのasynchronousブロードキャストパケットを送信する。該問い合わせパケットには、前述のコネクションIDが書き込まれている。
【００７３】
上記問い合わせパケットを受信すると、デスティネーションノードは、上記問い合わせパケットに書かれているコネクションIDと、上述のネゴシエーションによるコネクションIDとを照合して、該問い合わせパケットが同じコネクションのソースノードからのパケットであるかどうかを判別する。
【００７４】
上記問い合わせパケットが同じコネクションの場合、デスティネーションノードは、上記問い合わせパケットと同一のコネクションIDと、データ受信用のバッファの容量とを書き込んだレスポンスパケットを、asynchronousブロードキャストで送出する。
【００７５】
上述したように、データ転送の際に、ソースノードは、コントローラから指示された、デスティネーションノードのノードオフセットに対してライトトランザクションを行なう。該ライトトランザクションは、asynchronousブロードキャストパケットを使用して行われる。
【００７６】
ソースノードは、送信が行なわれる全データ（例えば、Ｎ画面分の静止画像、所定区間分の動画像）を分割(segmentation)してデータを送信する。分割されたＮ個のデータを、segment dataと称する。segment dataの送信は、一度のブロードキャストトランザクションにて行なわれる。該segment dataのデータ量は、例えば、データを受信するノードの( 不図示の)FIFO メモリの容量によって定まるようになっている。
【００７７】
ソースノードは、上記segment dataを、asynchronousブロードキャストパケットを使用して送信する。一つのsegment dataを含むasynchronousブロードキャストパケットを、segment パケットと称する。
【００７８】
segment パケットには、前述のコネクションIDと、上記segment dataの順番を示すシークエンス番号とが書かれている。該パケットを受信したデスティネーションノードは、segment パケット内に書かれているコネクションIDと、事前にコントローラによって通知されているコネクションIDとの照合を行なう。
【００７９】
segment パケット内に書かれているコネクションIDと、事前にコントローラによって通知されているコネクションIDとが一致した場合、デスティネーションノードは、該パケットを受け取り、該パケットと同一のコネクションIDと受信データ中のシークエンス番号とを書き込んだレスポンスパケットを、asynchronousブロードキャストを用いて送信する。ソースノードは、受信したパケットのコネクションIDによって、自ノードへのパケットを識別する。上述のレスポンス動作は、一つのsegment dataの授受に伴い生ずることになる。
【００８０】
上述したように、データ授受に先立って、ソースノードからデスティネーションノードへ問い合わせパケットが送信される。デスティネーションノードは、該問い合わせに対するレスポンスパケットを用いて、デスティネーションノード自身が有しているバッファのバッファサイズを通知する。
【００８１】
上述した例では、一度のsegment dataの送信に伴って、レスポンスパケットの送信が発生しているが、デスティネーションノードが有する前述のバッファがsegment dataによって満たされた後に、デスティネーションノードがレスポンスパケットの送信を行なうように構成しても良い。該構成の場合には、デスティネーションノードの行なうレスポンス動作の回数が削減できるので、デスティネーションノードを簡略化できる効果がある。
【００８２】
i 番目に受信したsegment パケットのシークエンス番号と、(i+1) 番目に受信したsegment パケットのシークエンス番号とを比較して、データの不整合を監視する。デスティネーションノードは、シークエンス番号に不整合が検出された場合には、再送要求を示すレスポンスパケットを送出することにより、ソースノードに再度segment dataを要求することができる。また、再送要求を示すレスポンスパケットは、再送要求の生じたシークエンス番号を指定できるようになっている。
【００８３】
一方、ソースノードは、segment パケットを送信した後、デスティネーションノードからのレスポンスを待機する。上述したように、デスティネーションノードからはコネクションIDと、シークエンス番号とが書かれたレスポンスパケットが、Asynchronousブロードキャストパケットで送信される。
【００８４】
ブロードキャストパケットで送信されるレスポンスパケットには、前記コネクションIDが書き込まれている。この値が、目的のデスティネーションノードとのコネクションを示すコネクションIDと一致した場合、該パケットはレスポンスパケットである。該レスポンスパケットを受信するとソースノードは、シークエンス番号をインクリメントし、次のsegment パケットを同様に送信する。
【００８５】
上述の手順を繰り返すことにより、ソースノードは、データ転送を行なう。ソースノードが、デスティネーションノードからのレスポンスを待機する時間は、あらかじめ定められており、この周期をレスポンス周期と称する。
【００８６】
i 番目のsegment パケットを送信した後、レスポンス周期を越えてもレスポンスが受信できない場合、ソースノードは、上記i 番目のsegment パケットと同一のsegment パケットを再送する。
【００８７】
また、上述したような、デスティネーションノードからの再送要求レスポンスを受信した場合、ソースノードは、該レスポンスパケットにて指定されたシークエンス番号のsegment パケットを送信する。
【００８８】
本実施の形態では、上記手順により、バスリセットの発生や何らかのエラーの発生により、データ転送中が中断した場合にも、データ転送の復帰が容易に行なえるといった効果がある。
【００８９】
全てのsegment パケットを送信することによって、データ転送が終了すると、ソースノードは、segment end を示すブロードキャストパケットを送出する。
このパケットを受け取ったコントローラは、コネクションIDを解放して、データ転送が終了する。
【００９０】
本実施の形態では、segment end を受信したコントローラが、明示的にコネクションID、解放している。しかしながら、segment end を示すパケットがブロードキャストパケットであることから、該segment end パケットにより、デスティネーションノードが、データ転送の終了を検知することが可能である。このため、コネクションID、解放をデスティネーションノードが行なっても良い。
【００９１】
確実にデータを転送するためには、バスリセットの発生や何らかのエラーの発生により、データ転送中が中断した場合にも、速やかに該データ転送が再開されることが望ましい。上述したように、本実施の形態では、再送要求の手順を設けることで該問題点を解決している。
【００９２】
次に、該再送要求の手順を図４(b) を用いて説明する。
例えば、シークエンス番号がi であった時に、データ転送が中断した場合、まず、各ノードは規格で定められた手順でバスの再構築を行う。バスの再構築が完了した後、デスティネーションノードは、destination#offset、コネクションID、及び、シークエンス番号i を書き込んだ再送要求パケット(resend request)を、ブロードキャストパケットで送信する。
【００９３】
データ転送の再開が可能な場合には、ソースノードは、ack レスポンスを返す。その後、ソースノードは受信したパケットのコネクションIDを照合し、要求されたシークエンス番号の以降、すなわち、シークエンス番号(i+1) で始まるデータ列のデータを順次ブロードキャストパケットで送信する。
【００９４】
前述の手順により、ソースノード、デスティネーションノード、コントローラノードはそれぞれノードIDを考慮することなく、データ転送が中断しても、その後のデータ転送を容易に、かつ、確実に再開することができる。また、前述のように、本実施の形態では、データ転送が中断した場合にも、コントローラの制御手順が簡略化できる効果がある。
【００９５】
次に、図５を用いて、前述のAsynchronousパケットについて説明する。
本実施の形態に係るAsynchronousパケットは、例えば、4 byte (32 bits 、以下クアッドレットと称する) を単位とするデータパケットである。
【００９６】
Asynchronousパケットにおいて、最初の16 bits はdestination#IDフィールドであり、該フィールドは受信先のノードIDを示す。本実施の形態のように、ブロードキャストを行なう場合には、このフィールドの値はFFFF16(16 進数) である。
【００９７】
次の6 bitsのフィールドは、トランザクション・ラベル(tl)フィールドであり、各トランザクション固有のタグである。
次の2 bitsのフィールドは、リトライ(rt)コードであり、パケットがリトライを試みるかどうかを指定する。
【００９８】
次の4 bitsのフィールドは、トランザクションコード(tcode) である。tcode は、パケットのフォーマットや、実行しなければならないトランザクションのタイプを指定する。本実施の形態においては、例えば、この値が00012 (2進数) である、データブロックの書き込みリクエストのトランザクションを用いる。
【００９９】
次の4 bitsのフィールドは、プライオリティ(pri) フィールドであり、優先順位を指定する。本実施の形態においては、Asynchronousパケットを用いているので、このフィールドの値は00002(2 進数) である。
【０１００】
次の16 bits はsource＃ID  フィールドであり、送信側のノードIDを示す。
次の48 bitsはdestination ＃offsetフィールドであり、パケットの受信先ノードアドレスの、下位48 bits がこのフィールドによって指定される。本実施の形態においては、例えば、該destination ＃offsetの値は、後述するconnection＃ID  フィールドの値によって定められる。
【０１０１】
次の16 bits はdata＃length  フィールドであり、後述するデータフィールドの長さを、バイト単位で示している。
次の16 bits はextended＃tcode フィールドであり、本実施の形態に用いられるデータブロックの書き込みリクエストトランザクションにおいては、この値は000016(16 進数) である。
【０１０２】
次の32 bits はheader＃CRC フィールドであり、上述したdestination ＃IDフィールドからextended＃tcode フィールドまでを、パケットヘッダと称し、該パケットヘッダのエラー検出に用いられる。
【０１０３】
次の16 bits は、上述したコネクションID(connection ＃ID) フィールドであり、該データによってコネクションを識別する。該コネクションIDによって、216 × (ノード数) のコネクションを確立することが可能である。
【０１０４】
よって、本実施の形態では、各コネクションの使用する帯域の総量が、バスの容量に達するまで、コネクション数を増すことができる。
次の8 bitsは、プロトコルタイプ(protocol ＃type) フィールドであり、該ヘッダ・インフォメーションを用いたデータ授受の手順を示す。
【０１０５】
本実施の形態の授受手順には、例えば、0116(16 進数) の値が用いられる。次の8 bitsは、コントールフラグ(control＃flags)  フィールドであり、制御データが書かれる。
【０１０６】
コントールフラグフィールドの最上位ビットは、例えば、再送要求(resend ＃request)フラグであり、このビットの値が１の時、データの再送要求が生じていることを示す。
【０１０７】
次の16 bits は、シークエンス番号(sequence ＃number) フィールドである。上述したように、該シークエンス番号フィールドは、特定のコネクションIDにて送受信されるデータパケットに対し、連続的な値が使用される。
【０１０８】
デスティネーションノードは、該シークエンス番号フィールドによって、有意なデータの連続性を監視し、不一致が生じた場合には、ソースノードに対して再送要求を行なう。
次の16 bits は、確認応答番号(reconfirmation ＃number) フィールドである。このフィールドは、上述の再送要求フラグの値が1 の時のみ、意味を持つフィールドである。上述の再送要求フラグの値が１の時、このフィールドは、再送要求が生じている開始パケットのシークエンス番号を示す。
【０１０９】
次の16 bits は、バッファサイズ(buffer ＃size) フィールドである。このフィールドには、デスティネーションノードのバッファサイズが書かれる。
次の16 bits は、reservedフィールドであり、将来のために予約されている。次のフィールドは可変長のデータフィールドであり、該データフィールドをパケットのペイロードと称する。
【０１１０】
本実施の形態においては、該データフィールドがクアッドレットの倍数でない場合、クアッドレットに満たないビットには0 が詰められる。
次の32 bits のフィールドはdata＃CRC フィールドであり、上述のheader＃CRC フィールドと同様に、前述のヘッダインフォメーションと該データフィールドとのエラー検出に用いられる。なお、data＃CRC フィールドは、データフィールドのみに付けられても良いことはいうまでもない。
【０１１１】
上記動作により、本実施の形態においては、ソースノードに対して、ノードオフセットが事前に通知できるので、ソースノードとデスティネーションノードとの接続に際し、ノードオフセットの転送オーバヘッドをなくし、転送までの遅延を軽減する効果がある。
【０１１２】
（本発明の他の実施形態）
本実施の形態は複数の機器（例えば、ホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても１つの機器（例えば、複写機、ファクシミリ装置）からなる装置に適用しても良い。
【０１１３】
また、前述した実施形態の機能を実現するように各種のデバイスを動作させるように、前記各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、前記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【０１１４】
また、この場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、およびそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記憶媒体は本発明を構成する。かかるプログラムコードを記憶する記憶媒体としては、例えばフロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１１５】
また、コンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等の共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【０１１６】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【０１１７】
【発明の効果】
前記説明したように、本発明においては、ノードオフセットの授受のための、転送オーバーヘッドをなくして、転送開始までの遅延を軽減することができる効果がある。
また、本発明の他の特徴によれば、通信帯域をあまり使用しない場合に、多数の通信を同時に行なうことができるとともに、データ転送中断により失われたデータを容易に検出することが可能であり、該データ転送の中断からの復帰を、確実に、かつ、簡単に行なうことができる効果がある。
【図面の簡単な説明】
【図１】本発明の実施の形態を表すブロック図である。
【図２】本発明の実施の形態に係る各ノードの動作を示すブロック図である。
【図３】本発明の実施の形態に係るデスティネーションノードのメモリ空間を示す図である。
【図４】本発明に係る各ノード間のコマンドやデータの授受を示すダイアグラムである。
【図５】本実施の形態にかかるAsynchronousパケットを示す図である。
【図６】従来例を示す図である。
【符号の説明】
10   computer
12  演算処理装置 (MPU)
14  第一の1394インターフェイス
16  キーボードなど第一の操作部
18  第一のデコーダ
20   CRTディスプレイなどの表示装置
22  ハードディスク
24  第一のメモリ
26   PCIバスなどのコンピュータ内部バス
28   VCR
30  撮像光学系
32   A/D変換器
34  ビデオ処理部
36  圧縮伸長回路
38  第一のメモリ
40  第二のメモリ
42  第一のデータセレクタ
44  第二の1394インターフェイス
46  第一のメモリ制御回路
48  第二のメモリ制御回路
50  システムコントローラ
52  第二の操作部
54  電子ビューファインダ
56   D/A変換器
58  記録部
60  プリンタ
62  第三の1394インターフェイス
64  第二のデータセレクタ
66  第三の操作部
68  プリンタコントローラ
70  第二のデコーダ
72  第三のメモリ
74  画像処理部
76  ドライバ
78  プリンタヘッド
200   コントロールノード
202   ソースノード
204   デスティネーションノード
206   ソースノード内部のサブユニット
208   画像データ等のobject
210   デスティネーションノード内部の第一のメモリ空間
212   第一のコ  ネクション
214   デスティネーションノード内部の第n のメモリ空間
216   第n のコネクション
【図１】
0003814407.tif 000002
【図２】
0003814407.tif 000003
【図３】
0003814407.tif 000004
【図４】
0003814407.tif 000005
【図５】
0003814407.tif 000006
【図６】
0003814407.tif 000007