(57)【特許請求の範囲】
【請求項１】
複数のデバイスとのデータ転送を行なうデータ転送装置であって、
前記複数のデバイスのうちの特定デバイスとの間のデータ転送に必要となるバンド幅を算出するバンド幅算出手段と、
前記バンド幅算出手段により算出されるバンド幅に対応した第１のチャネルを確保する第１のチャネル確保手段と、
前記特定デバイスとの間のデータ転送を前記第１のチャネルにより同期転送で行なう第１の転送手段と、
前記特定デバイス以外のデバイスとの間のデータ転送に必要となるバンド幅が所定値以下であった場合に、該デバイスとの間のデータ転送を前記第１のチャネルにより行なうように制御する制御手段と
を備えることを特徴とするデータ転送装置。
【請求項２】
前記所定値は、前記バンド幅算出手段において算出されたバンド幅の半分であることを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
複数のデバイスとのデータ転送を行なうデータ転送装置であって、
前記複数のデバイスのうちの特定デバイスとの間のデータ転送に必要となるバンド幅を算出するバンド幅算出手段と、
前記バンド幅算出手段により算出されるバンド幅に対応した第１のチャネルを確保する第１のチャネル確保手段と、
前記特定デバイスとの間のデータ転送を前記第１のチャネルにより同期転送で行なう第１の転送手段と、
前記特定デバイス以外のデバイスとの間のデータ転送に必要となるサイクル数が所定値以下であった場合に、該デバイスとの間のデータ転送を前記第１のチャネルにより行なうように制御する制御手段と
を備えることを特徴とするデータ転送装置。
【請求項４】
複数のデバイスとのデータ転送を行なうデータ転送装置の制御方法であって、
前記複数のデバイスのうちの特定デバイスとの間のデータ転送に必要となるバンド幅を算出するバンド幅算出工程と、
前記バンド幅算出工程で算出されるバンド幅に対応した第１のチャネルを確保する第１のチャネル確保工程と、
前記特定デバイスとの間のデータ転送を前記第１のチャネルにより同期転送で行なう第１の転送工程と、
前記特定デバイス以外のデバイスとの間のデータ転送に必要となるバンド幅が所定値以下であった場合に、該デバイスとの間のデータ転送を前記第１のチャネルにより行なうように制御する制御工程と
を備えることを特徴とするデータ転送装置の制御方法。
【請求項５】
複数のデバイスとのデータ転送を行なうデータ転送装置の制御方法であって、
前記複数のデバイスのうちの特定デバイスとの間のデータ転送に必要となるバンド幅を算出するバンド幅算出工程と、
前記バンド幅算出工程で算出されるバンド幅に対応した第１のチャネルを確保する第１のチャネル確保工程と、
前記特定デバイスとの間のデータ転送を前記第１のチャネルにより同期転送で行なう第１の転送工程と、
前記特定デバイス以外のデバイスとの間のデータ転送に必要となるサイクル数が所定値以下であった場合に、該デバイスとの間のデータ転送を前記第１のチャネルにより行なうように制御する制御工程と
を備えることを特徴とするデータ転送装置の制御方法。
【請求項６】
コンピュータに請求項４又は５に記載の制御方法を実行させるためのプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ転送装置及び方法、及びデータ転送システムに関し、例えば、シリアルバスにより複数のデバイスを接続したシステムにおけるデータ転送装置及び方法、及びデータ転送システムに関する。
【０００２】
【従来の技術】
近年の複写機のデジタル化、システム化により、画像処理装置の多機能化が目覚ましい。例えば複写機におけるファクシミリ機能の一体化のみならず、該複写機をネットワークに接続することにより、更にプリンタ機能をも付加することができる等、機能の複合化が進んでいる。
【０００３】
図2に、従来のデジタル複写機を含めたオフィスのネットワーク構成例を示す。同図において、200はオフィス内のパソコン、プリンタ、デジタル複写機などのネットワーク機器が接続されるイーサネット等のネットワークである。201はデジタル複写機202のスキャナ部が接続されるサーバ用のパーソナルコンピュータ（以下PC）である。202はデジタル複写機、203はデジタル複写機をネットワークヘ接続するコントローラである。204はカラー複写機、205はカラー複写機204をネットワークヘ接続するコントローラである。206，207はネットワークプリンタ、208，209，210，211，212，213はネットワーク200に接続されたPCクライアントである。
【０００４】
このようなネットワーク環境下において、PCクライアント側からプリントアウトを行う場合には、ネットワークプリンタ206，207、あるいはコントローラ203を介したデジタル複写機202、あるいはコントローラ205を介したカラー複写機204のいずれかをクライアントが選択して、プリントアウトデータを送る。また、デジタル複写機202で大量部数のコピーを行なう際に、デジタル複写機202の処理速度では不十分であれば、ネットワーク200を介してネットワークプリンタ206，207へ出力することが可能である。
【０００５】
【発明が解決しようとする課題】
しかしながら上記従来のネットワークにおいては、プリントアウト用のデータだけでなく、多くのデータがネットワーク上に流れている。従って、特に大量の画像データ等が流された場合には、ネットワーク全体のスループットは著しく低下してしまっていた。
【０００６】
また、ある特定のユーザ、あるいは特定のプリンタのジョブについて優先的に処理を行わせたい場合にも、多くの通信が行われているネットワークにおいてそのような制御を行なうことは困難であり、従って優先処理させたい機器に対するジョブスループットは低下してしまっていた。
【０００７】
本発明は上述した問題を解決するためになされたものであり、大量のデータ転送によるネットワークのスループットの低下を回避するデータ転送装置及び方法、及びデータ転送システムを提供することを目的とする。
【０００８】
また、ネットワーク内の特定機器に対するジョブの優先処理を可能とするデータ転送装置及び方法、及びデータ転送システムを提供することを目的とする。
【０００９】
【課題を解決するための手段】
上述した目的を達成するための一手段として、本発明は以下の構成を備える。
【００１０】
本発明に係るデータ転送装置は、複数のデバイスとのデータ転送を行なうデータ転送装置であって、
前記複数のデバイスのうちの特定デバイスとの間のデータ転送に必要となるバンド幅を算出するバンド幅算出手段と、
前記バンド幅算出手段により算出されるバンド幅に対応した第１のチャネルを確保する第１のチャネル確保手段と、
前記特定デバイスとの間のデータ転送を前記第１のチャネルにより同期転送で行なう第１の転送手段と、
前記特定デバイス以外のデバイスとの間のデータ転送に必要となるバンド幅が所定値以下であった場合に、該デバイスとの間のデータ転送を前記第１のチャネルにより行なうように制御する制御手段と
を備えることを特徴とする。
【００２０】
【発明の実施の形態】
以下、本発明に係る一実施形態について、図面を参照して詳細に説明する。
【００２１】
<第1実施形態>
本実施形態においては、各機器間を接続するデジタルI/Fとして、IEEE1394により規定されるインタフェース(以下、「1394シリアルバス」と称する)を用いる。ここで、予め1394シリアルバスの概要について説明する。
●IEEE1394の概要
家庭用デジタルVTRやデジタルビデオディスク(DVD)の登場に伴ない、ビデオデータやオーディオデータ(以下、まとめて「AVデータ」と称する)など、リアルタイムかつ情報量の多いデータを転送する必要が生じている。AVデータをリアルタイムに、PCへ転送したり、その他のデジタル機器に転送するには、高速のデータ転送能力をもつインタフェースが必要になる。そういった観点から開発されたインタフェースが、1394シリアルバスである。
【００２２】
図13に1394シリアルバスを用いて構成されるネットワークシステムの例を示す。このシステムは機器A〜Hを備え、A-B間、A-C間、B-D間、D-E間、C-F間、C-G間、及びC-H間がそれぞれ1394シリアルバスのツイストペアケーブルで接続されている。これらの機器A〜Hの例としては、パソコンなどのホストコンピュータ装置、及び、コンピュータ周辺機器である。コンピュータ周辺機器としては、デジタルVTR、DVDプレーヤ、デジタルスチルカメラ、ハードディスクや光ディスクなどのメディアを用いる記憶装置、CRTやLCDのモニタ、チューナ、イメージスキャナ、フィルムスキャナ、プリンタ、MODEM、ターミナルアダプタ(TA)等、コンピュータ周辺機器の全てが対象になる。なお、プリンタの記録方式は、レーザビームやLEDを用いた電子写真方式、インクジェット方式、インク溶融型や昇華型の熱転写方式、感熱記録方式など、どんな方式でも構わない。
【００２３】
各機器間の接続方式は、ディジーチェーン方式とノード分岐方式との混在が可能であり、自由度の高い接続を行なうことができる。また、各機器はそれぞれIDを有し、互いにIDを認識し合うことによって、1394シリアルバスで接続された範囲において、１つのネットワークを構成している。例えば、各機器間をそれぞれ１本の1394シリアルバス用ケーブルでディジーチェーン接続するだけで、それぞれの機器が中継の役割を担うので、全体として１つのネットワークを構成することができる。
【００２４】
また、1394シリアルバスはPlug and Play機能に対応し、1394シリアルバス用ケーブルを機器に接続するだけで自動的に機器を認識し、接続状況を認識する機能を有している。また、図13に示すようなシステムにおいて、ネットワークからある機器が外されたり、または新たに加えられたときなど、自動的にバスをリセット(それまでのネットワークの構成情報をリセット)して、新たなネットワークを再構築する。この機能によって、その時々のネットワークの構成を常時設定、認識することができる。
【００２５】
また、1394シリアルバスのデータ転送速度は、100/200/400Mbpsが定義されており、上位の転送速度を持つ機器が下位の転送速度をサポートすることで、互換性が保たれている。データ転送モードとしては、コントロール信号などの非同期データを転送する非同期（Asynchronous)転送モード(ATM)と、リアルタイムなAVデータ等の同期データを転送する同期(Isochronous)転送モード(ITM)がある。この非同期データと同期データは、各サイクル(通常125μs/サイクル）の中で、サイクル開始を示すサイクルスタートパケット(CSP)の転送に続き、同期データの転送を優先しつつ、サイクル内で混在して転送される。
【００２６】
図14は1394シリアルバスの構成例を示す図である。1394シリアルバスはレイヤ構造で構成されている。図14に示すように、コネクタポート1710には、1394シリアルバス用のケーブル1713の先端のコネクタが接続される。コネクタポート1710の上位には、ハードウェア部1700で構成されるフィジカルレイヤ1711とリンクレイヤ1712がある。ハードウェア部1700はインタフェース用チップで構成され、そのうちフィジカルレイヤ1711は符号化やコネクション関連の制御等を行ない、リンクレイヤ1712はパケット転送やサイクルタイムの制御等を行なう。
【００２７】
ファームウェア部1701のトランザクションレイヤ1714は、転送(トランザクション)すべきデータの管理を行ない、Read、Write、Lockの命令を出す。ファームウェア部1701のマネージメントレイヤ1715は、1394シリアルバスに接続されている各機器の接続状況やIDの管理を行ない、ネットワークの構成を管理する。上記のハードウェアとファームウェアまでが、1394シリアルバスの実質的な構成である。
【００２８】
また、ソフトウェア部1702のアプリケーションレイヤ1716は、利用されるソフトによって異なり、インタフェース上でどのようにしてデータを転送するかは、プリンタやAV/Cプロトコルなどのプロトコルによって定義される。
【００２９】
図15は1394シリアルバスにおけるアドレス空間の一例を示す図である。1394シリアルバスに接続された各機器（ノード）には必ず各ノード固有の64ビットアドレスを持たせる。そして、このアドレスは機器のメモリに格納されていて、自分や相手のノードアドレスを常時認識することで、通信相手を指定したデータ通信を行なうことができる。
【００３０】
1394シリアルバスのアドレッシングは、IEEE1212規格に準じた方式であり、アドレス設定は、最初の10ビットがバスの番号の指定用に、次の6ビットがノードIDの指定用に使われる。残りの48ビットが機器に与えられたアドレス幅になり、それぞれ固有のアドレス空間として使用できる。例えば、最後の28ビットを各機器の識別や使用条件指定の情報等を格納する固有データ領域として使用する。
【００３１】
以上が、1394シリアルバスの概要である。次に、1394シリアルバスの特徴をより詳細に説明する。
●1394シリアルバスの詳細
《1394シリアルバスの電気的仕様》
図16は1394シリアルバス用のケーブルの断面を示す図である。1394シリアルバス用ケーブルには、2組のツイストペア信号線の他に、電源ラインが設けられている。これによって、電源を持たない機器や、故障により電圧が低下した機器にも電力の供給が可能になる。電源線により供給される直流電力の電圧は8〜40V、電流は最大電流1．5Aに規定されている。尚、DVケーブルと呼ばれる規格では、電源ラインを省いた4線で構成される。
《DS-Link方式》
図17は1394シリアルバスで採用されている、データ転送方式のDS-Link(Data/Strobe Link)方式を説明するための図である。
【００３２】
DS-Link方式は、高速なシリアルデータ通信に適し、2組の信号線を必要とする。つまり、2組のより対線のうち1組でデータ信号を送り、もう1組でストローブ信号を送る構成になっている。受信側では、このデータ信号と、ストローブ信号との排他的論理和をとることによってクロックを生成することができるという特徴がある。このため、DS-Link方式を用いるメリットとして、データ転送中にクロック信号を混入させる必要がないので他のシリアルデータ転送方式に比べて転送効率が高いこと、クロック信号を生成できるので位相ロックドループ(PLL)回路が不要になり、その分コントローラＬＳＩの回路規模を小さくできること、更には、転送すべきデータが無いときにアイドル状態であることを示す情報を送る必要が無いので、各機器のトランシーバ回路をスリープ状態にすることができ、消費電力の低減が図れる、などが挙げられる。
《バスリセットのシーケンス》
1394シリアルバスに接続されている各機器（ノード）にはノードIDが与えられ、ネットワークを構成するノードとして認識される。例えば、ネットワーク機器の接続分離や電源のオン/オフなどによるノード数の増減、つまりネットワーク構成に変化があり、新たなネットワーク構成を認識する必要があるとき、その変化を検知した各ノードはバス上にバスリセット信号を送信して、新たなネットワーク構成を認識するモードに入る。このネットワーク構成の変化の検知は、コネクタポート1710においてバイアス電圧の変化を検知することによって行われる。
【００３３】
あるノードからバスリセット信号が送信されると、各ノードのフィジカルレイヤ1711はこのバスリセット信号を受けると同時にリンクレイヤ1712にバスリセットの発生を伝達し、かつ他のノードにバスリセット信号を伝達する。最終的にすべてのノードがバスリセット信号を受信した後、バスリセットのシーケンスが起動される。なお、バスリセットのシーケンスは、ケーブルが抜き挿しされた場合や、ネットワーク異常等をハードウェアが検出した場合に起動されると共に、プロトコルによるホスト制御などフィジカルレイヤ1711に直接命令を与えることによっても起動される。また、バスリセットのシーケンスが起動されると、データ転送は一時中断され、バスリセットの間は待たされ、バスリセット終了後、新しいネットワーク構成のもとで再開される。
《ノードID決定のシーケンス》
バスリセットの後、各ノードは新しいネットワーク構成を構築するために、各ノードにIDを与える動作に入る。このときの、バスリセットからノードID決定までの一般的なシーケンスを図18〜図20に示すフローチャートを用いて説明する。尚、この動作は、リンクレイヤ1712によってネットワーク構成のトポロジーマップが作成されることにより実現される。
【００３４】
図18は、バスリセット信号の発生から、ノードIDが決定し、データ転送が行えるようになるまでの一連のシーケンス例を示すフローチャートである。各ノードは、ステップS101でバスリセット信号の発生を常時監視し、バスリセット信号が発生するとステップS102に移り、ネットワークがリセットされた状態において新たなネットワーク構成を得るために、互いに直結されているノード間で親子関係が宣言される。そしてステップS103の判定により、すべてのノード間で親子関係が決まったと判定されるまでステップS102が繰り返される。
【００３５】
親子関係が決定するとステップS104に進みルート(root)ノードが決定され、ステップS105で各ノードにIDを与えるノードIDの設定作業が行われる。ルートノードから所定のノード順にノードIDの設定が行われ、ステップS106の判定により、すべてのノードにIDが与えられたと判定されるまでステップS105が繰り返される。
【００３６】
ノードIDの設定が終了すると、新しいネットワーク構成がすべてのノードにおいて認識されたことになるのでノード間のデータ転送が行える状態になり、ステップS107でデータ転送が開始されるとともに、シーケンスはステップS101へ戻り、再びバスリセット信号の発生が監視される。
【００３７】
図19はバスリセット信号の監視(S101)からルートノードの決定(S104)までの詳細例を示すフローチャート、図20はノードID設定(S105,S106)の詳細例を示すフローチャートである。
【００３８】
図19において、ステップS201でバスリセット信号の発生が監視され、バスリセット信号が発生すると、ネットワーク構成は一旦リセットされる。次に、ステップS202で、リセットされたネットワーク構成を再認識する作業の第一歩として、各機器はフラグFLをリーフノードであることを示すデータでリセットする。そして、ステップS203で、各機器はポート数、つまり自分に接続されている他ノードの数を調べ、ステップS204で、ステップS203の結果に応じて、これから親子関係の宣言を始めるために、未定義（親子関係が決定されていない）ポートの数を調べる。ここで、未定義ポート数は、バスリセットの直後はポート数に等しいが、親子関係が決定されていくにしたがって、ステップS204で検知される未定義ポートの数は減少する。
【００３９】
バスリセットの直後に親子関係の宣言を行えるのは実際のリーフノードに限られている。リーフノードであるか否かはステップS203のポート数の確認結果から知ることができ、つまりポート数が「1」であればリーフノードである。リーフノードは、ステップS205で、接続相手のノードに対して親子関係の宣言「自分は子、相手は親」を行ない動作を終了する。
【００４０】
一方、ステップS203でポート数が「2以上」であったノード、つまりブランチノードは、バスリセットの直後は「未定義ポート数>1」であるからステップS206へ進み、フラグFLにブランチノードを示すデータをセットし、ステップS207で他ノードから親子関係が宣言されるのを待つ。他ノードから親子関係が宣言され、それを受けたブランチノードはステップS204に戻り、未定義ポート数を確認するが、もし未定義ポート数が「１」になっていれば残るポートに接続された他ノードに対して、ステップS205で「自分は子、相手は親」の親子関係を宣言をすることができる。また、未だ未定義ポート数が「2以上」あるブランチノードは、ステップS207で再び他ノードから親子関係が宣言されるのを待つことになる。
【００４１】
いずれか1つのブランチノード(または例外的に、子宣言を行えるのにも関らず、すばやく動作しなかったリーフノード）の未定義ポート数が「0」になると、ネットワーク全体の親子関係の宣言が終了したことになり、未定義ポート数が「0」になった唯一のノード、つまりすべてのノードの親に決まったノードは、ステップS208でフラグFLにルートノードを示すデータをセットし、ステップS209でルートノードとして認識される。
【００４２】
このようにして、バスリセットから、ネットワーク内のすべてのノード間における親子関係の宣言までの手順が終了する。
【００４３】
次に、各ノードにIDを与える手順を説明するが、最初にIDの設定を行うことができるのはリーフノードである。そして、リーフ→ブランチ→ルートの順に若い番号（ノード番号:0）からIDを設定する。
【００４４】
図20のステップS301で、フラグFLに設定されたデータを基にノードの種類、つまりリーフ、ブランチ及びルートに応じた処理に分岐する。
【００４５】
まずリーフノードの場合は、ステップS302でネットワーク内に存在するリーフノードの数(自然数)を変数Nに設定した後、ステップS303で各リーフノードがルートノードに対して、ノード番号を要求する。この要求が複数ある場合、ルートノードはステップS304でアービトレーション(１つに調停する作業)を行い、ステップS305である1つのノードにノード番号を与え、他のノードにはノード番号の取得失敗を示す結果を通知する。
【００４６】
ステップS306の判断により、ノード番号を取得できなかったリーフノードは、再びステップS303でノード番号の要求を繰り返す。一方、ノード番号を取得できたリーフノードは、ステップS307で、取得したノード番号を含むID情報をブロードキャストすることで全ノードに通知する。ID情報のブロードキャストが終わるとステップS308で、リーフ数を表す変数Nがデクリメントされる。そして、ステップS309の判定により変数Nが「0」になるまでステップS303〜S308の手順が繰り返され、すべてのリーフノードのID情報がブロードキャストされた後、ステップS310へ進んで、ブランチノードのID設定に移る。
【００４７】
ブランチノードのID設定もリーフノードとほぼ同様に行われる。まず、ステップS310でネットワーク内に存在するブランチノードの数(自然数)を変数Mに設定した後、ステップS311で各ブランチノードがルートノードに対して、ノード番号を要求する。この要求に対してルートノードは、ステップS312でアービトレーションを行い、ステップS313である1つのブランチノードにリーフノードに続く若い番号を与え、ノード番号を取得できなかったブランチノードには取得失敗を示す結果を通知する。
【００４８】
ステップS314の判断により、ノード番号の取得に失敗したことを知ったブランチノードは、再びステップS311でノード番号の要求を繰り返す。一方、ノード番号を取得できたブランチノードはステップS315で、取得したノード番号を含むID情報をブロードキャストすることで全ノードに通知する。ID情報のブロードキャストが終わるとステップS316で、ブランチ数を示す変数Mがデクリメントされる。そして、ステップS317の判定により、変数Mが「0」になるまでステップS311〜S316おN手順が繰り返され、すべてのブランチノードのID情報がブロードキャストされた後、ステップS318へ進んで、ルートノードのID設定に移る。
【００４９】
ここまで終了すると、最終的にIDを取得していないノードはルートノードのみなので、ステップS318では、他のノードに与えていない最も若い番号を自分のノード番号に設定し、ステップS319でルートノードのＩＤ情報をブロードキャストする。
【００５０】
以上で、全てのノードのIDが設定されるまでの手順が終了する。次に、図21に示すネットワーク例を用いてノードID決定のシーケンスの具体的な手順を説明する。
【００５１】
図21に示すネットワークは、ルートであるノードBの下位にはノードAとノードCが直結され、ノードCの下位にはノードDが直結され、ノードDの下位にはノードEとノードFが直結された階層構造を有する。この、階層構造やルートノード、ノードIDを決定する手順は以下のようになる。
【００５２】
バスリセットが発生した後、各ノードの接続状況を認識するために、各ノードの直結されているポート間において、親子関係の宣言がなされる。ここでいう親子とは、階層構造の上位が「親」、下位が「子」という意味である。図21では、バスリセットの後、最初に親子関係を宣言したのはノードAである。前述したように、１つのポートだけが接続されたノード（リーフ）から親子関係の宣言を開始することができる。これは、ポート数が「１」であればネットワークツリーの末端、つまりリーフノードであることが認識され、それらリーフノードの中で最も早く動作を行なったノードから親子関係が決定されていくことになる。こうして親子関係の宣言を行なったノードのポートが、互いに接続された２つのノードの「子」と設定され、相手ノードのポートが「親」と設定される。こうして、ノードA-B間、ノードE-D間、ノードF-D間で「子-親」の関係が設定される。
【００５３】
さらに階層が１つ上がって、複数のポートを持つノード、つまりブランチノードのうち他ノードから親子関係の宣言を受けたノードから順次、上位のノードに対して親子関係を宣言する。図21ではまずノードD-E間、D-F間の親子関係が決定された後、ノードDがノードCに対して親子関係を宣言し、その結果、ノードD-C間で「子-親」の関係が設定される。ノードDからの親子関係の宣言を受けたノードCは、もう一つのポートに接続されているノードBに対して親子関係を宣言し、これによってノードC-B間で「子-親」の関係が設定される。
【００５４】
このようにして、図21に示すような階層構造がトポロジーマップとしてリンクレイヤ1712により構成され、最終的に接続されているすべてのポートにおいて親となったノードBが、ルートノードと決定される。尚、ルートノードは１つのネットワーク構成中に１つしか存在しない。また、ノードAから親子関係を宣言されたノードBが、速やかに、他のノードに対して親子関係を宣言した場合は、例えばノードCなどの他のノードがルートノードになる可能性もあり得る。すなわち、親子関係の伝達されるタイミングによっては、どのノードもルートノードとなる可能性があり、ネットワーク構成が同一であっても、特定のノードがルートノードになるとは限らない。
【００５５】
ルートノードが決定されると、各ノードIDの決定モードに入る。すべてのノードは、決定した自分のID情報を、他のすべてのノードに通知するブロードキャスト機能を持っている。尚、ID情報は、ノード番号、接続されている位置の情報、持っているポートの数、接続のあるポートの数、各ポートの親子関係の情報などを含むID情報としてブロードキャストされる。
【００５６】
ノード番号の割当ては、前述したようにリーフノードから開始され、順に、ノード番号＝0,1,2,…が割り当てられる。そしてID情報のブロードキャストによって、そのノード番号は割り当て済みであることが認識される。
【００５７】
すべてのリーフノードがノード番号を取得し終わると、次はブランチノードへ移りリーフノードに続くノード番号が割当てられる。リーフノードと同様に、ノード番号が割当てられたブランチノードから順にID情報がブロードキャストされ、最後にルートノードが自己のID情報をブロードキャストする。従って、ルートノードは常に最大のノード番号を所有することになる。
【００５８】
以上のようにして、階層構造全体のＩＤ設定が終わり、ネットワーク構成が構築され、バスの初期化作業が完了する。
《アービトレーション》
次に、フィジカルレイヤ1711におけるバスアービトレーションを説明する。
【００５９】
1394シリアルバスは、データ転送に先立って、必ず、バス使用権のアービトレーションを行なう。1394シリアルバスに接続された各機器は、ネットワーク上を転送される信号をそれぞれ中継することによって、ネットワーク内のすべての機器に同信号を伝える論理的なバス型ネットワークを構成するので、パケットの衝突を防ぐ意味でバスアービトレーションが必要である。これによって、ある時間には、一つのノードだけが転送を行なうことができる。
【００６０】
図22(a)はバス使用権の要求を説明する図、図22(b)はバス使用の許可を説明する図である。バスアービトレーションが始まると、１つもしくは複数のノードが親ノードに向かって、それぞれバスの使用権を要求する。図22(ａ)においては、ノードCとノードFがバス使用権を要求している。この要求を受けた親ノード（図22(a)ではノードA）は、さらに親ノードに向かってバスの使用権を要求することで、ノードFによるバスの使用権の要求を中継する。この要求は最終的に、アービトレーションを行なうルートノードに届けられる。
【００６１】
バスの使用権の要求を受けたルートノードは、どのノードにバスの使用権を与えるかを決める。このアービトレーション作業はルートノードのみが行なえるものであり、アービトレーションに勝ったノードにはバスの使用許可が与えられる。図22(b)は、ノードCにバスの使用許可が与えられ、ノードFのバスの使用権の要求は拒否された状態を示している。
【００６２】
ルートノードは、バスアービトレーションに負けたノードに対してはDP(data prefix)パケットを送り、そのバスの使用権の要求が拒否されたことを知らせる。バスアービトレーションに負けたノードのバスの使用権の要求は、次回のバスアービトレーションまで待たされることになる。
【００６３】
以上のようにして、アービトレーションに勝ってバスの使用の許可を得たノードは、以降、データ転送を開始することができる。ここで、バスアービトレーションの一連の流れを図23に示すフローチャートにより説明する。
【００６４】
ノードがデータ転送を開始できる為には、バスがアイドル状態であることが必要である。先に開始されたデータ転送が終了し、現在、バスがアイドル状態にあることを認識するためには、各転送モードで個別に設定されている所定のアイドル時間ギャップ（例えば、サブアクションギャップ）の経過を検出し、所定のギャップ長が検出された場合、各ノードはバスがアイドル状態になったと判断する。各ノードは、ステップS401で、非同期データ、同期データなどそれぞれ転送するデータに応じた所定のギャップ長が検出されたか否かを判断する。所定のギャップ長が検出されない限り、転送を開始するために必要なバス使用権を要求することはできない。
【００６５】
各ノードは、ステップS401で所定のギャップ長が検出されると、ステップS402で転送すべきデータがあるか判断し、ある場合はステップS403でバスの使用権を要求する信号をルートに対して発振する。このバスの使用権を要求を表す信号は、図22に示すように、ネットワーク内の各機器に中継されながら、最終的にルートノードに届けられる。ステップS402で転送するデータがないと判断した場合は、ステップS401に戻る。
【００６６】
ルートノードは、ステップS404でバスの使用権を要求する信号を１つ以上受信したら、ステップS405で使用権を要求したノードの数を調べる。ステップS405の判定により、使用権を要求したノードが１つだったら、そのノードに、直後のバス使用許可が与えられることとなる。また、使用権を要求したノードが複数だったら、ステップS406で直後のバス使用許可を与えるノードを１つに絞るアービトレーション作業が行われる。このアービトレーション作業は、毎回同じノードばかりにバスの使用許可を与えるようなことはなく、平等にバスの使用許可を与えてるようになっている(フェアアービトレーション)。
【００６７】
ルートノードの処理は、ステップS407で、ステップS406のアービトレーションに勝った１つのノードと、敗れたその他のノードとに応じて分岐する。アービトレーションに勝った１つのノード、またはバスの使用権を要求したノードが1つの場合は、ステップS408でそのノードに対してバスの使用許可を示す許可信号が送られる。この許可信号を受信したノードは、直後に転送すべきデータ（パケット）の転送を開始する(ステップS410)。また、アービトレーションに敗れたノードにはステップS409で、バス使用権の要求が拒否されたことを示すDP(data prefix)パケットが送られる。DPパケットを受け取ったノードの処理は、再度、バスの使用権を要求するためにステップS401まで戻る。ステップS410におけるデータの転送が完了したノードの処理もステップS401へ戻る。
《非同期転送》
以下、1934シリアルバスにおけるデータ転送モードの１つである非同期（Asynchronous)転送モード(ATM)について説明する。図24は非同期転送における時間的な遷移を示す図である。図18に示す最初のサブアクションギャップは、バスのアイドル状態を示すものである。このアイドル時間が所定値になった時点で、データ転送を希望するノードがバス使用権を要求し、バスアービトレーションが実行される。
【００６８】
バスアービトレーションによりバスの使用が許可されると、次に、データがパケット形式で転送され、このデータを受信したノードは、ACKギャップという短いギャップの後、受信確認用返送コードACKを返してレスポンスするか、レスポンスパケットを返送することでデータ転送が完了する。ACKは4ビットの情報と4ビットのチェックサムからなり、成功、ビジー状態またはペンディング状態であることを示す情報を含み、すぐにデータの送信元のノードに返される。
【００６９】
図25は非同期転送用パケットのフォーマット例を示す図である。パケットには、データ部及び誤り訂正用のデータCRCの他にヘッダ部があり、そのヘッダ部には目的ノードID、ソースノードID、転送データ長や各種コードなどが書き込まれている。
【００７０】
また、非同期転送は送信ノードから受信ノードへの１対１の通信である。送信元ノードから送り出されたパケットは、ネットワーク中の各ノードに行き渡るが、各ノードは自分宛てのパケット以外は無視するので、宛先に指定されたノードだけがそのパケットを受け取ることになる。
《同期転送》
次に、1934シリアルバスにおけるデータ転送のもう１つのモードである同期(Isochronous)転送モード(ITM)について説明する。1394シリアルバスの最大の特徴であるともいえるこの同期転送は、特にAVデータなどのリアルタイム転送を必要とするデータの転送に適している。また、非同期転送が１対１の転送であるのに対し、この同期転送はブロードキャスト機能によって、１つの送信元ノードから他のすべてのノードへ一様にデータを転送することができる。
【００７１】
図26は同期転送における時間的な遷移を示す図で、同期転送はバス上で一定時間毎に実行され、この時間間隔を同期サイクルと呼ぶ。同期サイクル時間は125μSである。この同期サイクルの開始を示し、各ノードの動作を同期させる役割を担っているのがサイクルスタートパケット(CSP)2000である。CSP2000を送信するのは、サイクルマスタと呼ばれるノードであり、１つ前のサイクル内の転送が終了し、所定のアイドル期間（サブアクションギャップ2001）を経た後、本サイクルの開始を告げるCSP2000を送信する。つまり、このCSP2000が送信される時間間隔が125μSになる。
【００７２】
また、図26にチャネルA、チャネルB、及びチャネルCと示すように、１つの同期サイクル内において複数種のパケットにチャネルIDをそれぞれ与えらることにより、それらのパケットを区別して転送することができる。これにより、複数ノード間で、ほぼ同時に、リアルタイム転送が可能であり、また、受信ノードは所望するチャネルIDのデータのみを受信すれば良い。このチャネルIDは、受信ノードのアドレスなどを表すものではなく、データに対する論理的な番号に過きない。従って、送信されたあるパケットは、１つの送信元ノードから他のすべてのノードに行き渡る、つまりブロードキャストされることになる。
【００７３】
同期転送によるパケット送信に先立ち、非同期転送と同様に、バスアービトレーションが行われる。しかし、非同期転送のように１対１の通信ではないので、同期転送には受信確認用の返送コードは存在しない。
【００７４】
また、図26に示したisoギャップ(同期ギャップ)は、同期転送を行なう前にバスがアイドル状態であることを確認するために必要なアイドル期間を表している。この所定のアイドル期間を検出したノードは、バスがアイドル状態にあると判断し、同期転送を行ないたい場合はバス使用権を要求するのでバスアービトレーションが行われることになる。
【００７５】
図27は同期転送用のパケットフォーマット例を示す図である。各チャネルに分けられた各種のパケットには、それぞれデータ部及び誤り訂正用のデータCRCの他にヘッダ部があり、そのヘッダ部には図27に示すような、転送データ長、チャネル番号、その他各種コード及び誤り訂正用のヘッダCRCなどが書き込まれている。
《バス・サイクル》
実際に、1394シリアルバスにおいては、同期転送と非同期転送が混在できる。図28は同期転送と非同期転送が混在するときの転送状態の時間的遷移を示す図である。
【００７６】
ここで、前述したように同期転送は非同期転送より優先して実行される。その理由は、CSPの後、非同期転送を起動するために必要なアイドル期間のギャップ（サブアクションギャップ）よりも短いギャップ（同期ギャップ）で、同期転送を起動できるからである。従って、非同期転送より同期転送は優先して実行されることとなる。
【００７７】
図28に示す一般的なバスサイクルにおいて、サイクル＃mのスタート時にCSPがサイクルマスタから各ノードに転送される。CSPによって、各ノードの動作が同期され、所定のアイドル期間（同期ギャップ）を待ってから同期転送を行なおうとするノードはバスアービトレーションに参加し、パケット転送に入る。図28ではチャネルe、チャネルs、及びチャネルkが順に同期転送されている。
【００７８】
このバスアービトレーションからパケット転送までの動作を、与えられているチャネル分繰り返し行なった後、サイクル＃mにおける同期転送がすべて終了すると、非同期転送を行うことができるようになる。つまり、アイドル時間が、非同期転送が可能なサブアクションギャップに達することによって、非同期転送を行いたいノードはバスアービトレーションに参加する。ただし、非同期転送が行えるのは、同期転送の終了後から、次のCSPを転送すべき時間(cycle synch)までの間に、非同期転送を起動するためのサブアクションギャップが検出された場合に限られる。
【００７９】
図28に示すサイクル＃mでは、３つのチャネル分の同期転送の後、非同期転送によりACKを含む２パケット（パケット1、パケット2）が転送されている。この非同期パケット2の後、サイクルm+1をスタートすべき時間(cycle synch)に至るので、サイクル＃mにおける転送はこれで終わる。ただし、非同期または同期転送中に次のCSPを送信すべき時間(cycl esynch)に至ったら、転送を無理に中断せず、その転送が終了した後にアイドル期間を経て次の同期サイクルのCSPを送信する。すなわち、１つの同期サイクルが125μS以上続いたときは、その延長分、次の同期サイクルは基準の125μSより短縮される。このように同期サイクルは125μSを基準に超過、短縮し得るものである。
【００８０】
しかし、同期転送はリアルタイム転送を維持するために、必要であれば毎サイクル実行され、非同期転送は同期サイクル時間が短縮されたことによって次以降の同期サイクルに延期されることもある。サイクルマスタは、こういった遅延情報も管理する。
●プリントシステム
以下、本実施形態におけるプリントシステムについて、その構成要素であるデジタル複写機コントローラを中心に説明する。
<<システム概要構成>>
図1は、本実施形態においてデジタル複写機を含む複数の画像処理装置をネットワークにより接続したプリントシステムの概要構成を示す図である。同図において100はパーソナルコンピュータやプリンタが接続された、例えばイーサネット等のネットワークであり、101は画像転送用に設けられたネットワーク(以下、画像ネットワークと称する)である。102は画像データの入出力制御を行うための画像データコントローラ(以下、単にコントローラと称する)である。103はカラー複写機、104，105はプリンタ、106は白黒デジタル複写機であり、これらは画像ネットワーク101に接続されている。107，108，109，110，111，112は、ネットワーク100上に接続されたパーソナルコンピュータ（以下PC）である。これらPC側からプリントアウトを行う場合には、ネットワーク100、コントローラ102、画像ネットワーク101を介して、所望のプリンタ又は複写機へ画像データが送られる。
【００８１】
次に、コントローラ102について説明する。図3はコントローラ102の構成を示すブロック図である。同図において301はコントローラ102上のCPUであり、ネットワーク上のPCやプリンタとのデータの受け渡しを制御する。302はCPU301のデータバスであり、後述するカードバスコントローラ304、ROM305、RAM306、ハードディスクコントローラ307が接続される。カードバスコントローラ304は、コントローラ102に機能を追加する機能ボードを装着するためのカードバス303の制御を行う。ROM305はコントローラ102の制御用ソフトウェアが納められているプログラムメモリである。そのプログラム領域の一部はフラッシュROMで構成され、後述するFAX・データモデム311や不図示のインタフェース端子から、電話回線を介して書き換えが可能である。RAM306はDRAMあるいはSRAMで構成され、通常、プログラム用のワークエリアとして使用されるほか、画像データメモリとしての利用も可能である。ハードディスクコントローラ307はハードディスク312の読み書き制御を行う。ここでハードディスク312は、画像データ蓄積やプログラムソフト格納の用途に用いられる。画像データ蓄積時にはハードディスクコントローラ307にてデータ圧縮が施された画像データがハードディスク312に格納され、また、該圧縮データのハードディスク312からの読みだし時には、ハードディスクコントローラ307にてデータ伸張が行われる。
【００８２】
次に、カードバス303に接続された各機能ボードについて説明する。308はネットワークインタフェースカードであり、図1に示すPC107〜112やコントローラ102が接続されるネットワーク100用のインタフェースを制御する。ネットワークインタフェースカード308は、イーサネットやトークンリングなど、ネットワーク100を構築する物理インタフェースに対して対応するカードをインストールできる。画像ネットワークインタフェースカード309は、図1に示すカラー複写機103、プリンタ104,105、白黒デジタル複写機106とコントローラ102との画像データの受け渡しを行う画像転送用ネットワーク101用のインタフェースを制御する。
【００８３】
ここで、画像ネットワーク101は、大量の画像データ転送が可能な高速バスで構成される必要がある。そこで本実施形態では、上述したように高速転送が可能な1394シリアルバスを画像ネットワーク101に適用する例について説明する。しかしながら、画像ネットワーク101は必ずしも1394シリアルバスに限定されるものではなく、大量データを高速に転送できればどのようなバスであっても良い。
ラスタイメージ展開カード310は、ページ記述言語(PDL)のビットマップデータへの展開を行なう。このラスタイメージ展開カード310は、画像ネットワーク101上のプリンタ104,105側においてPDLに対して個別に対応可能な場合には使用されない。しかしながら、例えば画像ネットワーク101上に、ビットマップデータを単にプリントするだけの所謂ダムプリンタが接続されていた場合には、ラスタイメージ展開カード310を使用することによって、ネットワーク100側のPC107〜112から、該ダムプリンタをPDL対応プリンタとして利用することが可能である。また、カードバスに機能ボードを差し替えることにより、多種類のPDLに対応が可能である。さらに、ラスタイメージ展開カード310のプログラムメモリエリアをフラッシュROMあるいはRAMのように書換え可能な構成とし、予めハードディスク312に複数のPDL用のラスタイメージ展開プログラムを格納しておくことにより、ユーザの所望するPDLをハードディスク312からラスタイメージ展開カード310のプログラムメモリ上にロードすることも可能である。
【００８４】
FAX・データモデムカード311は、電話回線に接続されることによりFAXモデムとしてファクシミリ送受信を可能としたり、また、データモデムとして遠隔地のPCやワークステーションとの通信を可能とする。
<<ネットワーク上のデータの流れ>>
次に、コントローラ102の動作とネットワーク100上のデータの流れについて、例えば、ネットワーク100上のPC107〜112からPDLデータを送出し、プリント出力を行う場合を例として説明する。
【００８５】
図1に示すPC107から、プリンタ105が選択されてPDLプリントが指定された場合について考える。この場合、PC107から出力されたPDLデータはネットワーク100を介してコントローラ102に入力される。そして、PDLデータは図3に示すネットワークインタフェースカード308を介してラスタイメージ展開カード310に入力される。
【００８６】
図5は、ネットワークインタフェースカード308の詳細構成を示すブロック図である。701はカードバスインタフェース、702は広く普及しているイーサネットのプロトコルを制御するイーサネットコントローラ、704はデータの送受信用バッファとして使用されるRAM、704は110base2，10baseTなどのネットワーク接続される媒体とのインタフェース部分を含んだイーサネットトランシーバである。705は上記ネットワーク媒体に対応したコネクタである。
【００８７】
コントローラ102内のCPU301は、ネットワークインタフェースカード308を介して転送されてきたデータがPDLデータであると判定されると、そのデータをラスタイメージ展開カード310へ転送する。
【００８８】
図4は、ラスタイメージ展開カード310の詳細構成を示すブロック図である。601はカードバスインタフェース、602はPDLデータを展開してビットマップデータを生成するラスタイメージプロセッサ、603はラスタイメージプロセッサ用のプログラムエリアとしてのROM、604はビットマップデータを格納するためのビットマップメモリ、605はビットマップメモリ604の読み書き制御を行うビットマップメモリコントローラである。ラスタイメージ展開カード310へ入力されたPDLデータは、カードバスインタフェース601を介してラスタイメージプロセッサ602に送られ、そこでビットマップデータが生成されてビットマップメモリコントローラ605を介して、ビットマップメモリ604へ格納される。このようにしてラスタイメージ展開カード310で展開されたビットマップデータは、画像ネットワークインタフェースカード309へ転送される。
【００８９】
図6は、画像ネットワークインタフェースカード309の詳細構成を示すブロック図である。801はカードバスインタフェース、802は画像データ転送用のファーストインファーストアウトメモリ（以下、FIFO）である。803は本実施形態において採用した高速シリアルインタフェースである1394シリアルバスのリンクコントローラチップ(以下、1394リンクコントローラ)である。804は同じく1394シリアルバスの物理インタフェース(以下、1394物理インタフェース)、805は画像ネットワーク101のインタフェースケーブルが接続されるコネクタである。コネクタ805は、一つの1394物理インタフェース804に対して最大で３つまでの接続が可能である。
【００９０】
コントローラ102のCPU301では、PC107から指定されたプリンタ105に対してビットマップデータを転送するために、画像ネットワークインタフェースカード309を介して以下のa〜fの手順でデータ転送を行う。尚、以下に示すa〜fにおいては矢印の方向にデータ転送が行われ、転送されるデータの内容を()内に示す。
【００９１】
a.コントローラ102  →  プリンタ105      (データ送信要求コマンド)
b.プリンタ105      →  コントローラ102  (データ受信確認コマンド)
c.コントローラ102  →  プリンタ105      (プリントデータ開始コマンド)
d.コントローラ102  →  プリンタ105      (ビットマップデータ)
e.コントローラ102  →  プリンタ105      (プリントデータ終了コマンド)
f.プリンタ105      →  コントローラ102  (プリントデータ受信確認コマンド)
上述したように、1394シリアルバスのデータ転送モードとしては、所定の転送先に対してデータを転送し、該データを受信した側はデータ受信確認を返信する非同期転送モードと、不特定の転送先に対してデータを転送し、受信側からの確認は返信されない同期転送モードがある。本実施形態においては、コマンドについては非同期転送モードで、また、画像データであるビットマップデータについては同期転送モードによる転送を行なうことを特徴とする。
【００９２】
図6に示す画像ネットワークインタフェースカード309において、コマンドデータはカードバスインタフェース801を介して1394リンクコントローラ803へ入力されて非同期データとして転送される。一方、ビットマップデータはカードバスインタフェース801を介して一旦FIFO802に書き込まれる。そして1394リンクコントローラ803はビットマップデータを同期転送モードで転送するために、FIFO802からビットマップデータを読み出して転送する。
【００９３】
ここで、プリンタ105の構成について説明する。図7は、プリンタ105の詳細構成を示すブロック図である。901はメカトロ制御、ビットマップデータの受信などプリンタ105内のすべての制御を行うCPU、902はCPU901の制御プログラムが格納されたROM、903はCPU901の作業領域として使用されるRAM、904はCPU901のCPUアドレスバス及びデータバス、905は1394シリアルバスからなる画像ネットワーク101とのインタフェースを制御する1394リンクコントローラ、906は1394物理インタフェース、907はコネクタ、908は同期転送されたビットマップデータを一時格納するためのFIFO、909はプリンタエンジンの動作タイミングに合わせてFIFO908からビットマップデータの読み出し制御を行うビデオデータコントローラ、910は実際のプリント動作を行うレーザードライバ、911はプリンタエンジンのモータ制御、給紙制御などのメカトロ制御を行うエンジンコントローラ、912はプリンタエンジンである。
【００９４】
次に、コントローラ102とプリンタ105について、それぞれのCPU及びリンクコントローラ間におけるコマンド及びデータ転送について、図8に示すデータ転送の遷移図を参照して説明する。同図において、＃1001〜＃1013を付した矢印がそれぞれ一回の転送を示している。以下、各転送について列挙して説明する。
【００９５】
＃1001:コントローラ102から所望のプリンタ(この場合プリンタ105)へ、データ送信要求コマンドが非同期転送モードにより転送される。
【００９６】
＃1002:プリンタ105は非同期転送モードで送信されてきたデータを受け、その確認(以下ACK)がプリンタ105側の1394リンクコントローラ905からコントローラ102側のリンクコントローラ803へ送出される。
【００９７】
＃1003:プリンタ105のCPU901がデータ送信要求コマンドを受け取る。
【００９８】
＃1004:CPU901は、現在のプリンタ105のステイタスを確認し、プリントアウト動作が可能な状態であればデータ送信要求許可コマンドをコントローラ102側のリンクコントローラ803に送出する。このデータ送信要求許可コマンドは、1394リンクコントローラ905により非同期転送モードで転送される。
【００９９】
＃1005:コントローラ102は、1394リンクコントローラ803からデータ送信要求許可コマンドのACKを送出する。
【０１００】
＃1006:コントローラ102のCPU301がデータ送信要求許可コマンドを受け取る。
【０１０１】
＃1007:コントローラ102からプリンタ105へ、同期転送モードにより画像データ転送を行う。尚、この画像データ転送の詳細については後述する。
【０１０２】
＃1008:コントローラ102は、画像データ転送終了後にプリントデータ終了コマンドをプリンタ105へ転送する。
【０１０３】
＃1009:プリンタ105の1394リンクコントローラ905からコントローラ102のリンクコントローラ803へ、プリントデータ終了コマンドのACKが返送される。
【０１０４】
＃1010:プリンタ105のCPU901がプリントデータ終了コマンドを受け取る。
【０１０５】
＃1011:プリンタ105からコントローラ102へプリントデータ受信確認コマンドを送出する。
【０１０６】
＃1012:コントローラ102のリンクコントローラ803は、プリントデータ受信確認コマンドのACKをプリンタ105の1394リンクコントローラ803へ返送する。
【０１０７】
＃1013:コントローラ102のCPU801がプリントデータ受信確認コマンドを受け取る。
【０１０８】
以上説明したように、本実施形態のコントローラ102とプリンタ105間においては、非同期転送によるコマンド転送、及び同期転送による画像データ転送が行われる。
<<画像データの同期転送>>
次に、本実施形態における同期転送による画像データ転送の詳細について説明する。
【０１０９】
上述したように同期転送においては、125μSごとにパケット転送が行われ、あらかじめチャネルを確保することにより、データ転送の時間的な保証が得られる。従ってコントローラ102においては、これから転送するプリンタ(本実施形態ではプリンタ105)に対して予めその処理速度(パフォーマンス)を確認しておき、そのパフォーマンスに応じたチャネルを確保する必要がある。このコントローラ102におけるチャネル確保の動作について、図9のフローチャートを参照して説明する。
【０１１０】
まずステップS1101において、コントローラ102ではプリンタ105に対してその性能確認を行う。ここでは、例えばプリンタ105におけるＢＤ周期の時間(以下、1H時間と称する)及び、1Hにおける画素数(1H画素数)を確認する。そしてステップS1102において、確認されたプリンタ性能に基づいて必要なチャネル幅を算出する。例えば、1H時間が375(125×3)μS、1H画素数が7200画素である場合には、125μS間隔のパケット毎に、7200/3=2400画素分のデータ転送を時間的に保証する必要がある。例えばプリンタ105が2値プリンタであれば、1パケットあたり、2400ビット分のデータ転送チャネルを確保すればよい。このようにして必要なチャネルが決定されると、ステップS1103においてコントローラ102はリンクコントローラ803を介して必要な転送チャネルを確保する。
【０１１１】
そして、プリンタ105に必要なチャネルが確保されたら、ステップS1104においてコントローラ102では、1ページ分、又は1H分の画像データのスタート及びエンドのヘッダをつける等、実際に転送される形式の転送データを生成する。
【０１１２】
ここで、生成される転送データの具体例を図10に示し、説明する。図10(a)においては、1パケットが125μSごとに形成され、該パケット内の斜線部分が、確保されたチャネルを示している。斜線部分の確保されたチャネル内は、ヘッダ＋画像データで構成されている。さらにヘッダは、ページ開始、ページ間、ページ終了、1H開始、1H期間内、1H終了というコードからなり、転送されたデータを受け取ったプリンタ105側において、そのチャネル内の画像データがどの位置の画像データであるかを認識できるようになっている。例えば、1H画素数である7200画素のうちの2400画素分のデータを、1パケットの1チャネル毎に転送する場合には、３パケット、即ち３チャネル分で1H分7200画素のデータ転送が行われる。
【０１１３】
図10(b)は、生成される転送データ構成をより具体的に示した図である。この場合、nライン(nは正数)分の画像データ転送を行なう場合には、第1パケットから第3nパケットまで、即ち3n個のチャネルデータが転送される。そのヘッダとしては、第1パケットがページ開始を示す「A0h」、1H開始を示す「A8h」＋画像データ、第2パケットがページ間を示す「A2h」、1H期間内を示す「AAh」＋画像データ、第3パケットがページ間を示す「A2h」、1H終了を示す「ADh」＋画像データ、となる。そして以下同様にヘッダが付されることにより、転送データが生成され、転送される。そして第3nパケットにおいて、ページ終了を示す「A5h」、1H終了を示す「ADh」＋画像データ、が転送されることにより、1ページ分の画像データ転送が終了する。
【０１１４】
図9のフローチャートに戻り、コントローラ102で上述した転送データの生成が終了すれば、生成された転送データはステップS1105で画像ネットワークインタフェースカード309内のFIFO802に転送される。ここで、FIFO802のサイズとしては、少なくとも1つのパケットで転送するデータサイズ分は必要である。次にステップS1106において、FIFO802に転送データを格納した後、1394リンクコントローラ803に対してデータ転送を実行させる。そして、図10において示したように、画像データに対するヘッダ付加作業を行いながら転送データを作成し、データ転送を繰り返し行う。そして、1ページ分のデータ転送終了をもって、プリントデータ転送終了とする。
【０１１５】
プリンタ105では、以上のようにして転送されたてきたプリントデータをプリント出力するが、図11にこのプリント出力のタイミングチャートを示し、説明する。＃1301はコントローラ102より転送されてきたパケットの周期を表し、その斜線部分が同期転送モードによる画像データである。＃1302はプリンタ内のFIFO908へのデータ書き込みタイミングを表す。即ち、1394リンクコントローラ905に転送されてきデータがFIFO908へ書き込まれる。＃1303はプリンタ105におけるBDタイミングを表し、この例では3パケットに1回BDが発生している。＃1304はFIFO908の読み出しタイミングを示す。これにより、3パケット分のデータがFIFO908に書き込まれた後で、次のBDに同期させてFIFO908の読み出しを行っていることが分かる。＃1305はプリント動作を示しており、FIFO908の読み出し中にプリント動作が行われる。
【０１１６】
以上説明したようにして、コントローラ102から選択されたプリンタ105に対して、画像ネットワーク101を介した画像データ転送が行われ、プリント出力される。
<<ネットワークのイニシャライズ>>
上述したように、1394シリアルバスにネットワーク接続された装置においては、電源投入後、リンクコントローラによりトポロジーマップが作成され、そのネットワーク上に接続されたすべてのノードが認識される。そしてその際に、物理的な接続状態や初期設定に応じてすべてのノードにノード番号が割り振られ、1つのルートノードが選定される。画像ネットワーク101においてトポロジーマップを作成する際には、必ずコントローラ102がルートノードに選定されるように初期設定しておく必要がある。このように、コントローラ102をルートノードに設定することにより、その後の画像ネットワーク101の管理がスムーズに行われるようになる。
【０１１７】
以下、ルートノートに設定されたコントローラ102による、バスリセット後の画像ネットワーク101のイニシャライズ制御について、図12のフローチャートを参照して説明する。
【０１１８】
まずステップS1501において、1394シリアルバス、即ち画像ネットワーク101のバスリセットが発生し、画像ネットワーク101上に接続されたすべての1394物理インタフェースはバスリセットを検知し、リセット解除シーケンスを実行する。そしてステップS1502において画像ネットワーク101上の各ノードは、所定のウエイト時間後に接続されたポートに対して所定の制御を行いながら、ノード番号割り振りを待ってトポロジーマップを作成する。そして、ステップS1503でコントローラ102の1394リンクコントローラ905において、自身がルートノードでないと判断された場合には、ステップS1504でウエイト時間を所定時間増やし、ステップS1501に戻って再度バスリセットシーケンスを実行してトポロジーマップを再度作成する。一般的に、コントローラ102の1394リンクコントローラ905には、コントローラ102が認識しているプリンタ、カラー複写機、白黒デジタル複写機、スキャナ等のバスリセット時のウエイト時間よりも十分長いウエイト時間を予め設定しておく必要がある。尚、ステップS1503におけるルートノードであるか否かの判断は、その後の画像ネットワーク101の管理のために、コントローラ102がルートノードになるまで、ウエイト時間を増やして繰り替えし行われなければならない。もちろん、ウエイト時間に所定の上限値を設けることは当然である。
【０１１９】
以上のようにしてコントローラ102がルートノードに設定されると、次にステップS1505において、コントローラ102は画像ネットワーク101上の各ノードに対して、その属性情報を尋ねる。そして各ノードから返信されてきた属性情報に基づいて、ステップS1506でノード属性テーブルを作成する。このノード属性テーブルにより、コントローラ102は各ノードとの画像データのやりとりが可能か否か、また、データ転送が可能であれば該ノードにおけるパフォーマンスを把握することができる。例えば、あるノードがプリンタである場合、ページ目盛りの有無、解像度、1H時間、1H画素数、プリント枚数等の情報がノード属性テーブルに保持される。そして、ステップS1507において全てのノードの属性情報が確認済みであれば、属性テーブルの作成を終了する。
【０１２０】
このように、コントローラ102におけるトポロジーマップ作成後に、画像ネットワーク101上の全ての機器の属性をノード属性テーブルとして把握することにより、データ転送時のコマンド転送のオーバーヘッドを軽減することができる。
【０１２１】
以下、ステップS1506で作成されたノード属性テーブルの構造を図29に、及びその具体例を図30に示し、説明する。
【０１２２】
上述したようにノード属性テーブルは、コントローラ102において画像ネットワーク101に接続されているデバイスを管理するために作成される。そのテーブル項目は図29に示す通りである。以下、ノード属性テーブルの項目名を「」内に示す。まず「ノード番号」は、トポロジーマップ作成時に各ノードに割り振られたものである。「転送速度」は1394シリアルバスの物理インタフェースがサポートしている転送速度であり、400Mbps，200Mbps，100Mbpsのいずれかである。「デバイス種類」は、このノードがコントローラ102との間で画像データの送受をどのように行うデバイスであるか、あるいは画像データの送受を全く行わないデバイスであるのかを示すものであり、スキャナ/プリンタ/コピア等が設定される。「画像データ入出力」は、該ノードにおける画像データの入出力特性を示すものであり、入力/出力/入出力のいずれかが設定される。即ち、ノードがスキャナであれば「画像データ入出力」として「出力」が設定される。
【０１２３】
更に、ノード属性テーブルは、各ノードのスキャナ属性、及びプリンタ属性を保持している。ここでスキャナ属性とはノードの有するスキャナ機能(画像入力機能)の特性を示し、プリンタ属性とはノードの有するプリンタ機能(画像出力機能)の特性を示す。スキャナ属性としては、「スキャナデータ種類」がカラー/白黒として設定される他、「スキャナ解像度(dpi)」、「スキャナビット深さ(bit/pixel)」が設定される。またプリンタ属性としては、「プリンタデータ種類」がカラー/白黒として設定される他、「プリント速度(ppm)」、「プリンタ解像度(dpi)」、「プリンタビット深さ(bit/pixel)」が設定される。
【０１２４】
図30は、画像ネットワーク101上のカラー複写機103、プリンタ104,105、白黒デジタル複写機106におけるノード属性テーブルの設定例である。複写機については、スキャナ機能及びプリンタ機能をいずれも備えているため、「画像データ入出力」項目において「入出力」が設定され、コントローラ102で画像データ送受信デバイスとして管理される。
【０１２５】
尚、ノード属性テーブルで管理されるデバイス情報は図29に示した項目に限定されるものではない。例えば、「電源供給能力」の項目を設け、該ノードが1394シリアルバスのケーブルを介しての電源供給が可能かどうか、かつ、電源供給を受けるか否かをコントローラ102で把握することも可能である。もちろん、その他のデバイス情報を設定することもできる。
<<優先ノード設定>>
本実施形態においては、1394シリアルバスにおける同期転送モードのチャネル確保により、ネットワーク上において所定ノードを優先とすることを特徴とする。以下、画像ネットワーク101上において、カラー複写機103(以下、コピア103と称する)へのジョブが優先的に処理される例について説明する。
【０１２６】
尚、本実施形態においていずれのノードが優先であるかはコントローラ102によって管理されるが、この設定は、コントローラ102の不図示の操作部より任意に行われるか、又はPC107〜112のいずれかからネットワーク100を介して所定のコマンドにより行われる。いずれの場合においても、優先ノードの設定は特定のユーザのみによって行われるべきであり、従って所定のパスワードを設ける等、ある程度のセキュリティ管理が必要である。
【０１２７】
図31は、コントローラ102におけるカラー複写機103へのデータ転送を優先して行なう「優先モード」の動作を示すフローチャートである。尚、同図に示す処理はコントローラ102によって制御される。
【０１２８】
まずステップS3401において、優先モードが設定されているか否かが判断され、優先モード設定時はステップS3403へ進む。尚、優先モードの設定は、上述した優先ノード設定と同様に、コントローラ102により行なう方法と、PC107〜112からネットワーク100を介して行なう方法が考えられる。一方、優先モードが設定されていない場合にはステップS3402へ進み、コントローラ102は優先的なデータ転送処理を行わない通常モードの制御を行う。
【０１２９】
ステップS3403において、コントローラ102は優先設定されているコピア103の処理速度に基づいて、予め必要なバンド幅を算出する。例えば、1H期間が375μSで7200画素、8bit/pixelである場合には、１サイクル125μSで少なくとも2400バイトのデータを転送する必要がある。この場合には、例えば画像データの転送速度を400Mbpsとしても、1サイクルにつき48μSの時間を確保しなければならない。
【０１３０】
次にステップS3404へ進んで、コントローラ102は1394シリアルバスにおける同期チャネルの確保を行う。ここでは、転送すべきデータの有無に関わらず、予めデータ転送することを見越してチャネルを確保する。そしてステップS3405へ進んで、確保されたチャネルにダミーの同期データを転送する。ここで、予め非同期転送により相手ノードにデータの受け取りを通知することを行なっていないために、いずれのノードもこのダミーの同期データを受け取ることはない。そしてステップS3406においてデータの転送要求を確認し、データ転送要求があればステップS3407へ進む。一方、データ転送要求が無ければステップS3405へ戻り、所定サイクルで再度ダミーデータを送出し、データ転送要求を待つ。
【０１３１】
ステップS3407において、データ転送要求の送り先が優先設定されている場合には、ステップS3408へ進む。一方、送り先が優先設定されていない場合にはステップS3409へ進む。ステップS3408では、優先設定されているコピア103へのデータ転送要求であるため、予め確保されている同期チャネルを利用してデータ転送を行う。そして、データ転送終了後にステップS3405へ戻ってダミーデータを送出しながら、次のデータ転送要求を待つ。一方、優先設定されていないノードへのデータ転送を行なう場合には、ステップS3409でコントローラ102は該データ転送に応じた同期チャネルを新たに確保する。そしてステップS3410において、新たに確保した同期チャネルによるデータ転送を行う。そして、他と同様にステップS3405へ戻ってダミーデータを送出した後、再びデータ転送要求待ちとなる。
【０１３２】
尚、本実施形態においては、画像ネットワーク101内のコピア103が優先設定されているノード(以下、優先ノード)である場合について説明を行ったが、例えば、イーサネットによるネットワーク100に接続されたPC107〜112のいずれかが、コントローラ102に対して優先ノードとして設定されても良い。この場合には、予め必要と考えられるバンド幅も優先ノードであるPCからの設定によるため、あまり大きなバンド幅が優先的に設定されることを禁止しなければ、コントローラ102は優先ノード以外のPCからのデータ転送要求が受けられないということになりかねない。従ってこのような場合には、優先ノード用に確保するバンド幅に制限を設ける必要がある。
【０１３３】
以上説明したように本実施形態によれば、画像ネットワーク内の所定ノードを優先設定し、該ノードで必要となるバンド幅を予め確保し、該ノードへの転送要求が発生した場合だけそのチャネルを利用してデータ転送を行うことにより、優先設定されたノードへのデータ転送をスムーズに行うことができる。
【０１３４】
<第1実施形態の変形例>
上述した第1実施形態においては、1934シリアルバスによる画像ネットワーク101において、優先ノードが1つである場合について説明を行った。しかしながら、優先ノードヘの転送要求が発生するまでダミーデータを転送し続けるため、優先ノードへの転送要求が発生しない間はネットワークを無駄に利用していることになってしまう。そこで、実際の画像ネットワーク101の運用においては、複数のノードを優先ノードとして設定することによって、該複数の優先ノードへの転送要求が頻繁に発生し、結果としてダミーデータが転送される頻度が少なくなることが、効率の良いネットワーク利用の上で望ましい。
【０１３５】
また、第1実施形態においては、優先ノード以外のノードヘのデータ転送要求が発生した場合、優先ノード用に確保しているチャネルを使用せず、新たにチャネルを確保する例について説明した。しかしながら本発明においては、データ転送要求のデータ量に応じて、優先ノード用に確保された同期チャネルを利用するようにしても良い。例えば、転送要求に応じたバンド幅が、優先ノード用に予め確保されたバンド幅の半分以下である場合には、転送要求に対して優先ノード用に確保したチャネルの使用を認める方法が考えられる。また、転送要求のバンド幅が優先ノード用のバンド幅の半分を超えてはいるが、データ転送終了までに要するサイクル数は少ないような場合にも、優先ノード用チャネルの使用を認めるようにすることも有効である。このように、優先ノード以外のノードへのデータ転送処理の際にも、優先ノード用のチャネルを適切に使用することも可能である。
【０１３６】
また、上述したように優先ノード以外のノードにおける必要バンド幅のサイズによって、確保済みチャネルの使用を許可するだけでなく、優先ノードの利用率を考慮して、確保済みチャネルの使用の可否を決定することも考えられる。例えば、連続したダミーデータの送出回数をカウントし、所定値を越えた場合には、該優先ノードの利用率が低いと判断して確保済みのバンド幅を減らしたり、優先設定を解除するといったことが考えられる。また、優先ノードの利用率を常に算出しながら、その値に応じて確保しているチャネルのバンド幅をダイナミックに切り替える方法も考えられる。
【０１３７】
さらに、優先ノードの利用率が低い場合には優先設定を解除し、また逆に優先ノード以外のノードであっても利用率が高い場合には新たに優先設定を行なう等、各ノードの利用率に応じてダイナミックに優先設定を切り替えていく方法も有効である。
【０１３８】
また、上述した実施形態においてはIEEE1394に規定されるシリアルインタフェースを用いて画像ネットワーク101を構成する例について説明したが、本発明はこれに限定されるものではなく、Universal Serial Bus(USB)と呼ばれるシリアルインターフェイスなど、任意のシリアルインタフェイスを用いて構成されるネットワークにも適用することができる。
【０１３９】
【他の実施形態】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【０１４０】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１４１】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１４２】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１４３】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４４】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４５】
【発明の効果】
以上説明したように本発明によれば、1934シリアルバスによるネットワークにおいて、該ネットワーク内の特定機器に対する同期チャネルを確保して維持することにより、該機器に関するジョブを優先的に処理することが可能となる。即ち、該機器に対してネットワークの優先利用を許可することができる。
【０１４６】
従って、効率の良いネットワーク利用が可能となるため、大量のデータ転送によるネットワークのスループットの低下を回避するデータ転送装置及び方法、及びデータ転送システムを提供することができる。
【０１４７】
【図面の簡単な説明】
【図１】本発明に係る一実施形態におけるネットワークプリントシステム構成を示す図である。
【図２】従来のオフィスネットワーク構成を示す図である。
【図３】コントローラの詳細構成を示すブロック図である。
【図４】ラスタイメージ展開カードの詳細構成を示すブロック図である。
【図５】ネットワークインタフェースカードの詳細構成を示すブロック図である。
【図６】画像ネットワークインタフェースカードの詳細構成を示すブロック図である。
【図７】プリンタの詳細構成を示すブロック図である。
【図８】コントローラとプリンタ間のコマンド及び画像データの転送の遷移を示す図である。
【図９】コントローラにおける画像データ転送処理を示すフローチャートである。
【図１０】転送データの構成を示す図である。
【図１１】転送データのプリント動作を示すタイミングチャートである。
【図１２】コントローラにおける1394シリアルバスのイニシャライズ処理を示すフローチャートである。
【図１３】  1394シリアルバスを用いて接続されたネットワーク構成の一例を示す図である。
【図１４】  1394シリアルバスの構成要素を表す図である。
【図１５】  1394シリアルバスのアドレスマップを示す図である。
【図１６】  1394シリアルバスケーブルの断面図である。
【図１７】  DS-Link符号化方式を説明するための図である。
【図１８】バスリセットからノードID決定までの処理を示すフローチャートである。
【図１９】バスリセットにおける親子関係決定処理を示すフローチャートである。
【図２０】バスリセットにおける親子関係決定後、ノードID決定までの処理を示すフローチャートである。
【図２１】  1394シリアルバスにおいて各ノードIDを決定するためのトポロジーマップの例を示す図である。
【図２２】  1394シリアルバスにおけるアービトレーションを説明するための図である。
【図２３】アービトレーションを説明するためのフローチャートである。
【図２４】非同期転送における時間的な状態遷移を示す図である。
【図２５】非同期転送におけるパケットフォーマットの一例を示す図である。
【図２６】同期転送における時間的な状態遷移を示す図である。
【図２７】同期転送におけるパケットフォーマットの一例を示す図である。
【図２８】  1394シリアルバス上において同期転送と非同期転送が混在する場合の転送状態遷移を示す図である。
【図２９】コントローラにおいて作成されるノード属性テーブルのフォーマットを示す図である。
【図３０】ノード属性テーブルの一例を示す図である。
【図３１】データ転送優先モードにおけるデータ転送処理を示すフローチャートである。
【符号の説明】
100  ネットワーク
101  画像ネットワーク
102  コントローラ
103  カラー複写機
104,105  プリンタ
106  白黒デジタル複写機
107〜112  パーソナルコンピュータ
【図１】
0003884862.tif 000002
【図２】
0003884862.tif 000003
【図３】
0003884862.tif 000004
【図４】
0003884862.tif 000005
【図５】
0003884862.tif 000006
【図６】
0003884862.tif 000007
【図７】
0003884862.tif 000008
【図８】
0003884862.tif 000009
【図９】
0003884862.tif 000010
【図１０】
0003884862.tif 000011
【図１１】
0003884862.tif 000012
【図１２】
0003884862.tif 000013
【図１３】
0003884862.tif 000014
【図１４】
0003884862.tif 000015
【図１５】
0003884862.tif 000016
【図１６】
0003884862.tif 000017
【図１７】
0003884862.tif 000018
【図１８】
0003884862.tif 000019
【図１９】
0003884862.tif 000020
【図２０】
0003884862.tif 000021
【図２１】
0003884862.tif 000022
【図２２】
0003884862.tif 000023
【図２３】
0003884862.tif 000024
【図２４】
0003884862.tif 000025
【図２５】
0003884862.tif 000026
【図２６】
0003884862.tif 000027
【図２７】
0003884862.tif 000028
【図２８】
0003884862.tif 000029
【図２９】
0003884862.tif 000030
【図３０】
0003884862.tif 000031
【図３１】
0003884862.tif 000032