JP2001333136A - 通信装置、データ通信システム、通信制御方法、記憶媒体 - Google Patents

通信装置、データ通信システム、通信制御方法、記憶媒体

Info

Publication number
JP2001333136A
JP2001333136A JP2000148886A JP2000148886A JP2001333136A JP 2001333136 A JP2001333136 A JP 2001333136A JP 2000148886 A JP2000148886 A JP 2000148886A JP 2000148886 A JP2000148886 A JP 2000148886A JP 2001333136 A JP2001333136 A JP 2001333136A
Authority
JP
Japan
Prior art keywords
packet
node
transmission
control method
retransmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000148886A
Other languages
English (en)
Other versions
JP2001333136A5 (ja
Inventor
Takuya Tsujimoto
卓哉 辻本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2000148886A priority Critical patent/JP2001333136A/ja
Publication of JP2001333136A publication Critical patent/JP2001333136A/ja
Publication of JP2001333136A5 publication Critical patent/JP2001333136A5/ja
Pending legal-status Critical Current

Links

Landscapes

  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 、受信側ノードのパケット処理能力にあわせ
た送信側ノードのパケット送信を可能とし、リトライ間
隔と回数を適切に設定することにより、無効なトラフィ
ックを低減して、バスシステム全体のパフォーマンスを
向上させる。 【解決手段】 ネットワーク上のノード間で非同期転送
モードによってデータを授受するための通信制御方法
は、非同期転送モードで送信したパケットの受信側ノー
ドの受信状況を判断して(S101,S102,S103)、パケッ
トが受信できないとき送信側ノードが再度、同一データ
パケットを送信する(S107)。再送によるパケットの再
送回数をカウントして、その値が設定回数以上のとき
(S106)、送信側ノードは再送パケットではない次に送
信すべき新規パケットの送信分から、パケットの再送間
隔を変更する(S116,S117)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、シリアルバスイン
タフェース、特にIEEE1394の規格に準拠したイ
ンタフェースを持つ通信装置、通信システムおよび通信
制御方法に関するものである。
【0002】
【従来の技術】近年シリアルバスインタフェースが、信
号線が少ないこと、ケーブルが細いこと、コネクタが小
さいこと、IDやターミネータ等の設定が不要なこと、
活線挿抜が可能なこと、等時性のあるデータ転送(アイ
ソクロナス転送)が可能なことなどの優れた特徴をもつ
ことから脚光を浴びてきている。
【0003】特にIEEE1394のシリアルバスイン
タフェースは、動画像等の大容量データの高速伝送が可
能であること、バスアーキテクチャによってメモリアク
セスが可能であること、ホットプラグインやプラグアン
ドプレイが可能であること、およびピア・ツー・ピア接
続が可能であることなどの特徴を持つことによって、パ
ーソナルコンピュータだけでなく家庭内のAV機器(デ
ィジタルビデオカメラ等)やそれ以外の機器への適用が
盛んに進められている。
【0004】また、更なる高速化や長距離化に対応した
新たな規格の策定も現在精力的に進められている。
【0005】IEEE1394では、周期的に連続した
時間の中である一定の帯域を保証しエラー発生時に再送
手続きを行わないデータ転送モードであるアイソクロナ
ス転送と、帯域の保証はしないがエラー発生時には再送
手続きにより確実なデータの転送を保証する転送モード
であるアシンクロナス転送という二つの転送モードを備
えている。ディジタルビデオカメラなどに見られる大容
量の動画像データの転送にはアイソクロナス転送が、ス
トレージデバイスやプリンタ、スキャナなどのデータ落
ちが許されないデバイスへの転送にはアシンクロナス転
送が使用される。転送モードの優先順位としてはアイソ
クロナス転送の方が高いため、アシンクロナス転送はア
イソクロナス転送で使用してない余った帯域を使うこと
になる。またアシンクロナス転送では受信側ノードがパ
ケットを受信できない状態のとき(ビジー状態)、パケ
ットを再送することを可能とするリトライプロトコルを
備えている。
【0006】
【発明が解決しようとする課題】しかしながら上述した
従来の技術においては、IEEE1394のバスインタ
フェースにそれこそ様々な種類のデバイスが接続される
ため、異なるパケット受信処理能力を持つデバイス間で
通信を行う際に以下のような問題が発生することにな
る。
【0007】例えば、受信側ノードのパケット処理能力
以上の頻度(もしくは間隔)でパケットを連続して送信
した場合、受信側ノードは受信したパケットを処理して
いる最中に次のパケットを受信することになり、最終的
には処理が間に合わずビジー状態となる。また受信側ノ
ードがビジー状態になっているときに、確実な転送を行
うためパケットの再送(リトライ)を頻繁に行えば、無
効なトラフィックの増大をうむことになる。これはある
ひとつのデータを送るのに通常は1回のパケット送信で
済む場合を考えれば、ビジーの状態にも関わらず同じデ
ータを何回も繰り返し送信するということから理解でき
よう。アイソクロナス転送の合間の余った帯域を使用す
る転送モードであるアシンクロナス転送を使ってこのよ
うな無用なパケットを複数送信することはシステム全体
のパフォーマンスをも下げることにつながる。かといっ
てリトライを行わなければ確実なデータの転送を行うこ
とはできない。
【0008】これらはアシンクロナス転送を行う際、各
々のノードでパケットを受信処理する時間が異なるから
で、さらにその受信側ノードの処理時間に関する情報を
送信側ノードが把握する手段を持たないことも原因の一
つであると考えられる。
【0009】また、トランザクションレイヤで管理する
リトライ処理がLINKチップなどのハードウエアによ
って実現されている場合は、リトライパケットの送信間
隔が短いために直ぐにリトライオーバーとなり、アプリ
ケーションレイヤで再度トランザクションを発行するべ
きか否か、つまりアプリケーションレイヤで管理するリ
トライ処理(同一のデータを扱っていてもトランザクシ
ョンとしHては別のものとなる)を行なうかどうかの判
断が求められるが一つのトランザクションが受信ノード
がビジーのために短い時間内で受信失敗に終わることか
らのみでは、相手ノードの処理能力を測ることは困難で
ある。
【0010】リトライ回数が多ければ、他のデバイスが
使用する帯域を圧迫し、逆に少なければ転送が成功する
確実性を下げることにつながるなど、パケットの送信と
帯域の有効利用を同時に満足することは困難である。
【0011】
【課題を解決するための手段】上記の課題を解決するべ
く、本発明にかかる通信装置等においては、主として、
受信側ノードのパケット処理能力にあわせた送信側ノー
ドのパケット送信を可能とし、リトライ間隔と回数を適
切に設定することにより、無効なトラフィックを低減し
て、バスシステム全体のパフォーマンスを向上させるこ
とを目的とするものである。
【0012】また、予め受信側ノードからアシンクロナ
ス転送によるパケット受信時の処理能力もしくは処理時
間を把握しておく必要や手間が不要となり、IEEE1
394プロトコルの範囲内でより確実なパケット送信を
行なうことも可能とする。
【0013】上記課題を解決して、その目的を達成する
べく、本発明にかかる通信装置、通信制御方法、データ
通信システム及び記憶媒体は主として以下のような構成
を備えることを特徴とする。
【0014】すなわち、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信装置は、
非同期転送モードで送信したパケットの受信側ノードの
受信状況を判断する手段と、前記送信したパケットが受
信できないとき送信側ノードが再度、同一データパケッ
トを送信する再送手段と、前記再送手段によるパケット
の再送回数をカウントする手段と、前記再送回数をカウ
ントする手段によるカウント値が設定回数以上のとき、
送信側ノードは再送パケットではない次に送信すべき新
規パケットの送信分から、パケットの再送間隔を変更す
る手段と、を備えることを特徴とする。
【0015】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信装置は、
非同期転送モードで送信したパケットの受信側ノードの
受信状況を判断する手段と、前記送信したパケットが受
信できないとき、アプリケーションレイヤの管理で再度
同一データパケットを送信する再送手段と、前記再送手
段によるパケットの再送回数をカウントする手段と、前
記再送回数をカウントする手段によるカウント値が設定
回数以上のとき、送信側ノードは再送パケットではない
次に送信すべき新規パケットの送信分から、トランザク
ションレイヤの管理でパケットの再送間隔を変更する手
段と、を備えることを特徴とする。
【0016】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信装置は、
非同期転送モードで送信したパケットの受信側ノードの
受信状況を判断する手段と、前記送信したパケットが受
信できないとき、アプリケーションレイヤの管理で再度
同一データパケットを送信する再送手段と、前記再送手
段によるパケットの再送回数をカウントする手段と、前
記再送回数をカウントする手段によるカウント値が設定
回数以上のとき、送信側ノードは再送パケットではない
次に送信すべき新規パケットの送信分から、前記再送手
段によって送信されるパケットの再送間隔を変更する手
段と、を備えることを特徴とする。
【0017】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信装置は、
バスリセットを検出するための手段と、前記検出手段に
よる検出に従い、ネットワークのコンフィグレーション
を判断する構成判断手段と、前記構成判断手段の判断に
より、バスが2つのノードで構成される場合もしくは、
ノード数が2を超える場合で、かつ、そのバスを構成す
るノードの中にバスマネージャ若しくはアイソクロナス
リソースマネージャの機能を有するノードが存在しない
場合は、トランザクションレイヤで管理するリトライ回
数をプロトコルで規定された最大値に設定する手段と、
を備えることを特徴とする。
【0018】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信装置は、
非同期転送モードで送信されたパケットを連続して受信
して格納する受信バッファと、前記受信バッファに格納
できるパケットの個数情報を予め格納しておく格納手段
と、前記格納された個数情報に従いパケットの送信を制
御する手段と、を備えることを特徴とする。
【0019】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信装置は、
非同期転送モードで送信されたパケットを連続して受信
して格納する受信バッファと、前記受信バッファのサイ
ズを予め格納しておく格納手段と、前記格納されたバッ
ファのサイズに従ってパケットの送信を制御する送信制
御手段と、を備えることを特徴とする。
【0020】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信装置は、
非同期転送モードで送信するパケットの受信側ノードに
おける処理能力情報を予め格納しておく記憶手段と、前
記予め格納された処理能力情報に基づき、送信したパケ
ットの処理状況を判定する判定手段と、前記判定手段の
判定に従い、パケットの送信を制御する制御手段と、を
備えることを特徴とする。
【0021】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信装置は、
特定のトランザクションリクエストに基づくパケット送
信からレスポンスパケットを受信するまでの時間を計測
する計測手段と、前記計測手段による計測時間から受信
側ノードの処理能力を推定する推定手段と、前記推定手
段による処理能力の推定結果に従って、パケットの送信
を制御する制御手段と、を備えることを特徴とする。
【0022】また、ネットワーク上のノード間で非同期
転送モードによってデータを授受するための通信制御方
法は、非同期転送モードで送信されたパケットの受信側
ノードの受信状況を判断する工程と、前記送信されたパ
ケットが受信できないとき送信側ノードが再度、同一デ
ータパケットを送信する再送工程と、前記再送工程によ
るパケットの再送回数をカウントする工程と、前記再送
回数をカウントする工程によるカウント値が設定回数以
上のとき、送信側ノードは再送パケットではない次に送
信すべき新規パケットの送信分から、パケットの再送間
隔を変更する工程と、を備えることを特徴とする。
【0023】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信制御方法
は、非同期転送モードで送信されたパケットの受信側ノ
ードの受信状況を判断する工程と、前記送信されたパケ
ットが受信できないとき、アプリケーションレイヤの管
理で再度同一データパケットを送信する再送工程と、前
記再送工程によるパケットの再送回数をカウントする工
程と、前記再送回数をカウントする工程によるカウント
値が設定回数以上のとき、送信側ノードは再送パケット
ではない次に送信すべき新規パケットの送信分から、ト
ランザクションレイヤの管理でパケットの再送間隔を変
更する工程と、を備えることを特徴とする。
【0024】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信制御方法
は、非同期転送モードで送信されたパケットの受信側ノ
ードの受信状況を判断する工程と、前記送信されたパケ
ットが受信できないとき、アプリケーションレイヤの管
理で再度同一データパケットを送信する再送工程と、前
記再送手段によるパケットの再送回数をカウントする工
程と、前記再送回数をカウントする工程によるカウント
値が設定回数以上のとき、送信側ノードは再送パケット
ではない次に送信すべき新規パケットの送信分から、前
記再送工程によって送信されるパケットの再送間隔を変
更する工程と、を備えることを特徴とする。
【0025】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信制御方法
は、バスリセットを検出するための工程と、前記検出工
程による検出に従い、ネットワークのコンフィグレーシ
ョンを判断する構成判断工程と、前記構成判断工程の判
断により、バスが2つのノードで構成される場合もしく
は、ノード数が2を超える場合で、かつ、そのバスを構
成するノードの中にバスマネージャ若しくはアイソクロ
ナスリソースマネージャの機能を有するノードが存在し
ない場合は、トランザクションレイヤで管理するリトラ
イ回数をプロトコルで規定された最大値に設定する工程
と、を備えることを特徴とする。
【0026】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受するための通信制
御方法は、非同期転送モードで送信されたパケットを連
続して受信して受信バッファに格納する工程と、前記受
信バッファに格納できるパケットの個数情報を予めメモ
リに格納しておく格納工程と、前記格納された個数情報
に従いパケットの送信を制御する工程と、を備えること
を特徴とする。
【0027】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受する通信制御方法
は、非同期転送モードで送信されたパケットを連続して
受信して受信バッファに格納する工程と、前記受信バッ
ファのサイズを予めメモリに格納しておく格納工程と、
前記格納されたバッファのサイズに従ってパケットの送
信を制御する送信制御工程と、を備えることを特徴とす
る。
【0028】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受するための通信制
御方法は、非同期転送モードで送信するパケットの受信
側ノードにおける処理能力情報を予めメモリに格納して
おく記憶工程と、前記予めメモリに格納された処理能力
情報に基づき、送信したパケットの処理状況を判定する
判定工程と、前記判定工程の判定に従い、パケットの送
信を制御する制御工程と、を備えることを特徴とする。
【0029】あるいは、ネットワーク上のノード間で非
同期転送モードによってデータを授受するための通信制
御方法は、特定のトランザクションリクエストに基づく
パケット送信からレスポンスパケットを受信するまでの
時間を計測する計測工程と、前記計測工程による計測時
間から受信側ノードの処理能力を推定する推定工程と、
前記推定工程による処理能力の推定結果に従って、パケ
ットの送信を制御する制御工程と、を備えることを特徴
とする。
【0030】また、データ通信システムは、ネットワー
ク上のノード間で非同期転送モードによってデータを送
信する上記のいずれかに記載の通信装置と、前記通信装
置によって送信されたデータを受信処理する装置と、を
有する。
【0031】また、ネットワーク上のノード間で非同期
転送モードによってデータを授受するための通信制御方
法をコンピュータで実行するためのプログラムコードを
格納した記憶媒体であって、該プログラムコードが、上
記のいずれかに記載の通信制御方法の工程のコードを有
することを特徴とする。
【0032】
【発明の実施の形態】(第1実施形態)本発明の実施形
態を図に従って説明する。図1は、第1実施形態におけ
るリトライ間隔および送信間隔設定処理の流れを示すフ
ローチャートである。
【0033】ステップS101では、バスのアービトレ
ーションによってバスの占有が許可された場合に受信側
ノードに対して非同期、つまりアシンクロナス転送によ
るパケットの送信を行う。
【0034】ステップS102では、受信側ノードが送
信したパケットを受け取れない、つまりビジーの状態か
どうかを判断する。判断は送信したパケットに対するA
CKで行う。ビジーの場合はステップS106へ、受信
側ノードがパケットを受け取れた場合はステップS10
3へすすむ。
【0035】ステップS103では、戻ってきたACK
からエラーが発生したかどうかを判断する。具体的には
データがエラーだったかどうか、ACKが戻ってきたか
どうかなど正常にパケットを受け取れたかどうかで処理
を分岐させる。正常にパケットを受け取ったというコン
プリートのACKおよびパケットは受け取ったけれど処
理は保留中であるというペンディングのACKを受け取
ったときはステップS105へ、エラーが発生したとき
はステップS104へすすむ。
【0036】ステップS104では、エラーの処理を行
う。受け取ったACKから判断してエラーだとわかった
ときは、トランザクションレイヤからその上位レイヤで
あるアプリケーションレイヤにその旨伝える。アプリケ
ーションレイヤは再度データを送信するなどのリカバリ
ーの処理を行う。
【0037】ステップS105では、一つ前にアシンク
ロナス転送モードでパケットを送信した送信先ノードに
対して続けて送信するデータがあるかどうかを判断す
る。送信するデータがまだ存在する場合はステップS1
01へ戻り再び受信側ノードに対してアシンクロナス転
送でパケットを送信する。同一ノードに対して送信する
データがない場合は、このリトライおよび送信間隔設定
処理を終了する。
【0038】ステップS106では、リトライの回数が
次の再送で何回目になるのかを把握し、その回数がN回
以上になるかどうかを判断する。Nは2以上の自然数で
上限はIEEE1394の規格にあるリトライ値の最大
値(15)以下の各ノードで設定した値となる。ここで
は例としてN=2として考える。N=2となるのは次の
リトライで2回目の再送なので、既に同じパケットを2
回送信しているということである。(1回目は普通の送
信、2回目は初めてのリトライである。)リトライ回数
が次回でN回となる場合はステップS108へ、N回未
満の時はステップS107へすすむ。
【0039】1回目の通常のパケット送信でビジーとな
り、次のリトライでもビジーの場合には、受信側ノード
は次のどれかの状態にあると考えられる。
【0040】一つ目はデバイス自身がビジーになってし
まったためパケットが受信できない状態である。例とし
て相手ノードをプリンタとして考えてみる。プリントデ
ータの転送の際に印字部での処理がインタフェースのス
ループットに比べて遅いと、印字部でいくらかのバッフ
ァを持っていたとしても処理が間に合わず、印字部がデ
ータをある程度受け入れられる状態になるまでインタフ
ェースからの入力を制限するようになる。
【0041】二つ目は以前に送信したパケットの処理が
まだ済んでいない場合である。一つ前に送信元ノードか
ら送ったパケット、もしくはたまたま送信側ノードから
送られるパケット受信前に別のノードから送られたパケ
ットを処理し切れていない場合などがそれに当たる。受
信側ノードがアシンクロナス転送によるパケットを格納
できるFIFOを一つしか持たず、その前に受信したパ
ケットをFIFOから抜き出す前に次のパケットを受信
しようとした場合がそれに該当する。
【0042】三つ目は受信側ノードで致命的なエラーが
発生して受信不能に陥った場合である。この三つ目は何
らかの手段をこうじてデバイスが正常動作をする状態に
戻してやる必要があるが、一つ目および二つ目の場合
は、受信側ノードのパケット処理時間および能力と送信
側ノードのパケット送信タイミングまたは送信間隔のミ
スマッチによるものである。本特許はこの二つの状態を
解消し、システム全体としてのパフォーマンスを向上さ
せるものである。
【0043】ステップS107では、受信側ノードへ同
一パケットを再度送信するリトライ処理を行う。
【0044】ステップS108では、ステップS107
と同様にリトライ処理を行う。
【0045】ステップS109では、ステップS102
と同様に受信側ノードが送信したパケットを受け取れな
い、つまりビジーの状態かどうかを判断する。ビジーの
場合はステップS112へ、受信側ノードがパケットを
受け取れた場合はステップS110へすすむ。
【0046】ステップS110では、ステップS103
と同様に戻ってきたACKからエラーが発生したかどう
かを判断する。正常にパケットを受け取ったもしくは保
留中の場合はステップS115へ、エラーが発生したと
きはステップS111へすすむ。
【0047】ステップS111では、ステップS104
と同様にエラーの処理を行う。
【0048】ステップS112では、これらか行おうと
しているリトライの回数が各ノードで設定したリトライ
回数の最大値を越えるかどうか、つまりリトライオーバ
ーとなるかどうかを判断する。リトライオーバーの場合
はステップS113へすすみ、まだリトライ可能な場合
はステップS108へ戻りパケットの再送を行う。
【0049】ステップS113では、トランザクション
レイヤで管理しているリトライの回数を超えても受信側
ノードがパケットを受け取れないビジーの状態であるの
を受けて、アプリケーションレイヤのレベルでリトライ
を行うかどうか、つまり同じデータを別のトランザクシ
ョンとして相手ノードに送信するかどうかを判断する。
アプリケーションレベルでのリトライを行う場合はステ
ップS114の処理を終えた後、ステップS101へ戻
り、パケットの送信を行う。リトライを行わない場合は
ステップS115へすすむ。
【0050】ステップS114では、受信側ノードへ同
一パケットを再度送信するリトライ処理を行うための準
備を行う。具体的にはアプリケーションレイヤで何度の
リトライを行ったかという情報の格納をする。その後、
パケットの送信処理を行うステップS101へ戻る。
【0051】ステップS115では、ステップS105
と同様に一つ前にアシンクロナス転送モードでパケット
を送信した送信先ノードに対して、続けて送信するデー
タがあるかどうかを判断する。送信するデータがまだ存
在する場合はステップS116ヘすすみ、同一ノードに
対して送信するデータがない場合にはステップS117
へすすむ。
【0052】ステップS116では、同一ノードに対し
て送信すべきデータがまだ存在することを受けて、次回
のトランザクション発行時から通常の転送を行う際のパ
ケットの送信間隔およびビジーの際のトランザクション
レイヤで管理するべき再送(リトライ)間隔を設定す
る。この設定はN回以上のリトライを行った特定ノード
に対してのみ行われる。具体的には複数の再送および送
信間隔時間の設定値をテーブルとして持ち、現在設定さ
れている再送および送信間隔時間よりも大きい値を設定
する。もしくは何度のリトライを行ったか(トランザク
ションレベルおよびアプリケーションレベルのリトライ
を含めて)等の情報をもとに、現在設定されている値よ
りも大きな値を計算し設定することも可能である。再送
を行うまでの時間を長くとることで最終的に再度のリト
ライによっても相手ノードにパケットを送信できないな
どの状態を防ぐことができる可能性も高くなる。また、
同一ノードに対して上記判断ルーチンを通るたびにさら
に大きな値を設定することも可能である。
【0053】ステップS117では、ステップS116
と同一の手法により、次回トランザクション発行時から
ビジーの際のトランザクションレイヤで管理するべきリ
トライの間隔を設定する。
【0054】これらの処理過程を経ることで、受信側ノ
ードの処理能力にあわせたパケット送信が可能となり、
無効なトラフィックを低減し、バスシステム全体のパフ
ォーマンスを向上させられる。
【0055】図2は、IEE1394の各レイヤの構成
図である。この構成は以下に示す実施形態全てにおいて
共通の構成であり、第2実施形態以降の説明においては
重複するので省略する。
【0056】201は、IEEE1394インタフェー
スに対応するノードである。図に示されるように、ハー
ドウェアとファームウェアおよびソフトウェアに分けら
れ、さらにそれぞれの部分は以下に説明される202か
ら206の各レイヤによって構成される。ここでのハー
ドウェアは実質的なインタフェースチップを示してい
る。
【0057】202は、PHYレイヤもしくはフィジカ
ルレイヤ(物理層)と呼ばれるIEEE1394インタ
フェース上の信号を直接ドライブする機能を実現するL
SIである。
【0058】203は、IEEE1394の規格上でL
INKレイヤもしくはリンクレイヤ(リンク層)と呼ば
れる機能と、トランザクションレイヤ204およびPH
Yレイヤ202とのインタフェースとを備えたLSIで
ある。
【0059】204は、トランザクションレイヤと呼ば
れるIEEE1394インタフェースに対して実際のオ
ペレーションを管理・実行するドライバである。このレ
イヤで、IEEE1394インタフェース上で行われる
リード/ライト/ロックのトランザクションを管理す
る。また後述する受信側ノードがビジーの場合の再送
(リトライ)要求もこのレイヤで管理する。
【0060】このトランザクションレイヤで管理するべ
きリトライ機能をリンクレイヤ203の中に実装してい
るLSIも存在する(つまりビジーの場合にはハードウ
ェアが指定した回数分だけ自動的にリトライを行ってく
れる)が、今後の説明では、トランザクションレイヤで
管理するリトライはトランザクションレイヤを構成する
ファームウェアによって実現することを想定する。また
ハードウェアでリトライを行う場合についても後ほど説
明する。
【0061】205は、シリアルバスマネージメント
(SBM)を行うレイヤで、IEEE1394インタフ
ェースの管理用ドライバである。CSR(コントロール
アンドステータスレジスタ)およびコンフィグレーショ
ンROMの実装・管理を行うノードコントローラ機能の
他、オプションとしてアイソクロナスリソースマネージ
ャおよびバスマネージャの機能を有する。
【0062】206は、IEEE1394インタフェー
スを利用した各種デバイスの機能、例えばプリンタやス
キャナやディジタルビデオカメラ等の機能を実現するソ
フトウェアと、トランザクションレイヤおよびシリアル
バスマネージメントレイヤとのインタフェースを備えた
アプリケーションソフトウェアである。
【0063】図3は、第1実施形態におけるトランザク
ションレイヤ内の機能ブロック図である。
【0064】この図に示されているのはトランザクショ
ンレイヤのすべての機能ではなく、本発明に必要なもし
くは使用する機能に限定されている。
【0065】301は、トランザクションレイヤを構成
するファームウェアとのやりとりをするためのLINK
I/Fである。実際にはファームウェアがリンクレイ
ヤを実現するLSIのレジスタにアクセスしたり、割り
込みを受けることによってやりとりを行う。
【0066】302は、ACK処理部である。送信した
パケットに対してどのようなACKが戻ってきたのかを
判断する。具体的にはACKがコンプリートの場合とペ
ンディングの場合はアプリケーションレイヤにある送信
リクエスト部303へ、エラーの場合はアプリケーショ
ンレイヤにあるエラー処理部305へ、ビジーの場合は
カウンタ307へ伝えられる。
【0067】303は、先に転送したパケットが正常に
受信されたことを受けて次のパケットを送信するか否か
を決定する送信リクエスト部である。IEEE1394
インタフェース上に接続されたデバイスに対して転送す
るデータが存在する場合は、送信のリクエストを発行す
る。
【0068】304は、送信リクエスト部303からの
要求を受けてパケットを生成し、相手ノードに対して送
信する送信処理部である。ここで生成されたパケットは
LINK I/F301を経由してバス上に流れる。
【0069】305は、先に転送したパケットの送信に
際してデータエラーやACKが返らなかったことを受け
てエラーの処理を行う。
【0070】306は、アプリケーションレイヤレベル
で再度同一のパケットを送信するかどうかを判断、決定
するアプリケーションリトライ処理部である。再度パケ
ットを送信する場合は送信リクエスト部303にその要
求を伝える。
【0071】307は、現在行っているトランザクショ
ンに対して何回のリトライ処理が行われた(もしくはこ
れから行うか)をカウントするカウンタである。
【0072】308は、カウンタ307の値をもとに再
送間隔および送信間隔の値を新たに設定し直すかどうか
を判断する判断制御部である。そのアルゴリズムについ
ては図1の説明で述べているので省略する。判断制御部
ではその他に、ビジーによるリトライアクションの実行
を伝えたり、ビジーの回数が最大再送回数を超えたとき
にはアプリケーションリトライ処理部306に伝える。
【0073】309は、リトライ処理部である。前回送
信したのと同一パケットを相手ノードに対して送信す
る。
【0074】310は、再送および送信の間隔を規定す
るためのタイマである。タイマの発するタイミングで送
信処理部304およびリトライ処理部309はパケット
を送出する。
【0075】311は、再送間隔および送信間隔を設定
する。設定方法に関しては既に図1の説明で述べている
ので省略する。
【0076】312は、再送間隔および送信間隔を設定
するための値を格納したテーブルである。テーブルに持
つ値は予め規定してもいいし、後から設定してもよい。
【0077】この構成はトランザクションレイヤで管理
するリトライをファームウェアによって実現することを
想定している。そこで先程述べたように自動的にリトラ
イするハードウェア(例えばリンクチップ等)を使用す
る場合を考えてみる。
【0078】リトライ回数を設定してハードウェアが自
動的に再送を行う構成をとる場合でも、タイマ等を利用
することでその送信タイミングをファームウェアで制御
可能な構成であれば本実施形態を実現することが可能で
ある。チップの仕様により、ある定められた間隔でしか
送信できない場合には、アプリケーションレイヤで管理
するリトライのみ考慮してパケットの送信間隔を制御す
ることになる。もしくは、ハードウェアによるリトライ
回数を0にセットし、リトライオーバーの割り込みを受
けてソフトウェアでトランザクションレイヤで管理する
リトライを行う構成にすること可能である。
【0079】さらには、リトライ回数を実質的に増やす
対応も考えられる。
【0080】図4は第1実施形態における再送間隔およ
び送信間隔を示す模式図である。
【0081】(a)は本発明を利用しない場合のアシン
クロナス転送によるパケット送信を図示したものであ
る。
【0082】401は、アシンクロナス転送のパケット
である。Y軸として書かれているのは時間軸で401の
パケットは便宜的にM−1番目のパケットとする。パケ
ットの送信が正常に終了した場合、次のパケットを送信
するまでの時間をT1とする。
【0083】402は、受信側ノードがビジーの場合の
再送パケットである。その前のM番目のパケット送信が
ビジーなのを受けて再送される。再送されるまでの時間
をT2とする。この例では3回のリトライを行うものと
し、3回目のリトライ後次のデータを送信しているもの
とする。リトライ終了から次のパケットを送信するまで
の間隔はT1である。
【0084】(b)は本実施形態を適用した場合のパケ
ット送信を図示したものである。この例ではビジーの際
のリトライ間隔を変更した後の状態を示している。具体
的には再送までの時間がT2からT3に変更されてお
り、この場合はT2<T3である。またリトライ終了か
ら次のパケットを送信するまでの間隔はT1と変わらな
い。これは設定変更時に同一ノードに対して送信すべき
データがない場合の例である。また、送信すべきデータ
が存在する場合においてもその前のリトライ処理の際、
アプリケーションレイヤで管理するリトライを行うかど
うか判断するところまで処理がいかない、つまりリトラ
イオーバーが発生する前に正常にパケットを送信できた
場合にも図のように送信間隔を変更する必要はない。
【0085】(c)は、(b)と同様に本実施形態を適
用した場合で、送信の間隔を変更した後の状態を示して
いる。具体的には送信までの時間がT1からT4に変更
されており、この場合はT1<T4である。またビジー
の際のリトライ間隔はT2と変わらない。これは図3の
説明の最後で述べたようにハードウェアでビジーの際の
リトライを行う構成を考えたものである。
【0086】(d)は、(b)、(c)と同様に本実施
形態を適用した場合で、ビジーの際のリトライ間隔およ
びパケット送信間隔の両方を変更した後の状態を示した
ものである。
【0087】このように(a)の場合と比べて、(b)
〜(d)のどの例でもあるスパンを考えた場合にはパケ
ットの送信数が減っていることがわかる。
【0088】以上説明してきたように本実施形態の構成
によって、受信側ノードの処理能力にあわせたパケット
送信が可能となり、無効なトラフィックを低減し、バス
システム全体のパフォーマンスを向上させることが可能
になる。
【0089】またIEEE1394プロトコルの範囲内
でより確実なパケット送信を行うことが可能になる。ま
たこれらの実現に際し、予め受信側ノードからアシンク
ロナス転送によるパケット受信時の処理能力もしくは処
理時間を把握しておく必要も手間もいらない。
【0090】(第2実施形態)第2実施形態を図面に従
って説明する。図5は第2実施形態における送信間隔、
リトライ間隔および送信間隔設定処理の流れを示すフロ
ーチャートである。
【0091】ステップS501では、バスのアービトレ
ーションによってバスの占有が許可された場合に受信側
ノードに対して非同期、つまりアシンクロナス転送によ
るパケットの送信を行う。
【0092】ステップS502では、受信側ノードが送
信したパケットを受け取れない、つまりビジーの状態か
どうかを判断する。判断は送信したパケットに対するA
CKで行う。ビジーの場合はステップS503へ処理を
進め、受信側ノードがパケットを受け取れた場合はステ
ップS509へ処理を進める。
【0093】ステップS503では、今回で何回目のリ
トライ処理になるかをカウントする。ここでのリトライ
処理はトランザクションレイヤが管理するレベルのもの
である。
【0094】ステップS504では、ステップS503
でカウントしたカウント値が各ノードで設定した1トラ
ンザクションのリトライ回数を超えるかどうか、つま
り、リトライオーバーになるか否かを判断する。
【0095】リトライオーバーの場合はステップS50
6に処理を進め、更にリトライが可能な場合は処理をス
テップS505へ進める。
【0096】ステップS505では、受信側ノードへ同
一パケットを再送信するリトライ処理を実行する。その
後、リトライ処理によって再送されたパケットが無事受
信されたか否かの判断はステップS502で行なう。
【0097】ステップS506では、今回のリトライ処
理が何回目の処理になるかをカウントする。ここでの処
理はアプリケーションレイヤが管理するレベルのもので
ある。
【0098】ステップS507では、ステップS506
でカウントした値がアプリケーションレイヤで管理する
リトライの最大回数を超えるかどうか(リトライ回数を
超えるか)否かを判断する。リトライオーバーの場合は
ステップS508へ進み、更にリトライが可能な場合
は、ステップS501へ戻りパケットの送信を行なう。
【0099】ステップS508では、アプリケーション
レベルで行なったリトライにも関わらず、受信側ノード
がビジーの場合は、その送るべきデータの転送を中止す
るか、受信側ノードが何らかのエラーによって独自に復
旧できないと判断してリセットのコマンドを送信する
か、それとも全てのパケットを受信不能としてバスリセ
ットの処理を行なう。
【0100】ステップS509では、戻ってきたACK
からエラーが発生したかどうかを判断する。具体的には
データがエラーだったかどうか、ACKが戻ってきたか
どうかなど正常にパケットを受け取れたかどうかで処理
を分岐させる。正常にパケットを受け取ったというコン
プリートのACKおよびパケットは受け取ったけれど処
理は保留中であるというペンディングのACKを受け取
ったときはステップ105へ、エラーが発生したときは
ステップS510へ進む。
【0101】ステップS510では、エラーの処理を行
う。受け取ったACKから判断してエラーだとわかった
ときは、トランザクションレイヤからその上位レイヤで
あるアプリケーションレイヤにその旨伝える。アプリケ
ーションレイヤは再度データを送信するなどのリカバリ
ーの処理を行う。
【0102】ステップS511では、最終的に送信した
パケットがどうなったか、送信が成功したのか、失敗し
たのか等の状況を把握する。
【0103】ステップS512では、ステップS506
でカウントしたリトライ回数がこの段階でN回以上かを
判断する。
【0104】Nは2以上の自然数であり、上限はIEE
E1394規格では決められていない。ここでは、例と
してN=2として考える。N=2となるケースは、2回
目の再送であり、同じパケットをアプリケーションレベ
ルで2回送信していることになる(1回目は通常の送信
であり、2回目は最初のリトライ送信である)。
【0105】1回目の送信要求に対して、受信側のノー
ドがビジーの場合はトランザクションレイヤを複数回行
なう。トランザクションレイヤレベルの最大のリトライ
回数を3回とすると、実際には、合計6回の同一データ
の送信を行なっていることになる。
【0106】リトライ回数がN回以上の場合はステップ
S513に処理を進め、N回未満の場合は処理をステッ
プS514に進める。
【0107】1回目の通常のパケット送信でビジー状態
でリトライオーバーとなり、次のリトライでもビジー状
態でパケット送信が成功しない場合には、受信側のノー
ドの状態が次のいずれかの状態であると判断される。
【0108】一つ目の状態として、デバイス自身がビジ
ーとなってしまったため、パケットが受信できない状態
となっている。
【0109】例えば、相手ノードをプリンタとしたと
き、プリントデータの転送の際に印刷部での処理がイン
タフェースのスループットに比べて遅いと、印刷部でい
くらかのバッファを持っていたとしても処理が間に合わ
ず、印刷部がデータをある程度受け入れられる状態にな
るまで、インタフェースからの入力を制限するようにな
る。
【0110】二つ目の状態として、以前に送信したパケ
ットの処理が未だ済んでいない場合である。一つ前に送
信元ノードから送ったパケットが未だに処理されていな
い場合などが該当する。すなわち、受信側ノードがアシ
ンクロナス転送によるパケットを格納できるFIFOを
1つしか持たず、その前に受信したパケットをFIFO
から抜き出す処理をする前に、次のパケットを受信しよ
うとした場合である。
【0111】三つ目の状態として、受信側で致命的なエ
ラーが発生して受信不能になった場合である。この3つ
目の場合は、何らかの手段(例えば、バスリセット等)
を施して、デバイスが、正常に動作する状態に戻してや
る必要があるが、一つ目、二つ目の場合は、受信側ノー
ドのパケット処理時間及び能力、送信側のパケット送信
タイミングまたは、送信間隔のミスマッチによるもので
ある。
【0112】本発明は、この二つの状態を解消し、シス
テム全体としてのパフォーマンスを向上させるものであ
る。
【0113】ステップS513では、次回のトランザク
ション発行時から通常の転送を行なう際のパケット送信
間隔、アプリケーションレイヤで管理するべき再送(リ
トライ)の送信間隔及び送信回数をそれぞれ任意に変更
し、設定する。
【0114】この設定は、N回以上のアプリケーション
レイヤで管理するリトライを行なった特定ノードに対し
てのみ行なう。具体的には、複数の送信間隔、再送間隔
及び再送回数の設定値をテーブルとして備え、現在設定
されている値よりも大きい値を設定する。また、現在設
定されている値よりも大きな任意の値を計算し、設定す
ることも可能である。
【0115】テーブルを利用する場合も、計算により求
める場合も、ステップS511で把握したパケットの送
信状況、つまり、トランザクションレベル及びアプリケ
ーションレベルのリトライを含めて何回のリトライ処理
を行なったか、最終的にパケット送信が成功したか否か
等の情報を基に設定を行なう。
【0116】再送を行なうまでの時間を長くとることで
最終的に再度のリトライによっても相手ノードにパケッ
トを送信できないなどの状態を防ぐことができる可能性
も高くなる。
【0117】また、同一ノードに対して、上記判断ルー
チンを通る度に、更に大きな値を設定することも可能で
ある。
【0118】ステップS514では、一つ前にアシンク
ロナス転送モードでパケット送信した送信ノードに対し
て続けて送信するデータがあるかどうかを判断する。送
信するデータがまだ存在する場合はステップS501へ
戻り再び受信側ノードに対してアシンクロナス転送でパ
ケットを送信する。同一ノードに対して送信するデータ
がない場合には、このリトライ及び送信間隔設定処理を
終了する。
【0119】これらの処理過程を経ることで、受信側ノ
ードの処理能力に合わせたパケット送信が可能となり、
無効なトラフィックを低減させてシステム全体のパフォ
ーマンスを向上させることができる。
【0120】IEE1394の各レイヤの構成は第1実
施形態と共通(図2)であるので詳細な説明は省略す
る。
【0121】図6は、第2実施形態におけるトランザク
ションレイヤ内の機能ブロック図である。この図に示さ
れているのはトランザクションレイヤのすべての機能で
はなく、本実施形態に必要なもの、もしくは使用する機
能に限定されている。
【0122】601は、トランザクションレイヤを構成
するファームウェアとのやりとりをするためのLINK
I/Fである。実際にはファームウェアがリンクレイ
ヤを実現するLSIのレジスタにアクセスしたり、割り
込みを受けることによってやりとりを行う。
【0123】602は、ACK処理部である。送信した
パケットに対してどのようなACKが戻ってきたのかを
判断する。具体的にはACKがコンプリートの場合とペ
ンディングの場合はアプリケーションレイヤにある送信
リクエスト部603へ、エラーの場合はアプリケーショ
ンレイヤにあるエラー処理部605へ、ビジーの場合は
カウンタ606へ伝えられる。
【0124】603は、先に転送したパケットが正常に
受信されたことを受けて次のパケットを送信するか否か
を決定する送信リクエスト部である。IEEE1394
インタフェース上に接続されたデバイスに対して転送す
るデータが存在する場合は、送信のリクエストを発行す
る。
【0125】604は、送信リクエスト部603からの
要求を受けてパケットを生成し、相手ノードに対して送
信する送信処理部である。ここで生成されたパケットは
LINK I/F601を経由してバス上に流れる。
【0126】605は、先に転送したパケットの送信に
際してデータエラーやACKが返らなかったことを受け
てエラーの処理を行う。
【0127】606は、現在行っているトランザクショ
ンに対して何回のリトライ処理が行われた(若しくはこ
れから行うか)をカウントするカウンタである。
【0128】607は、カウンタ606の値とノードに
設定された最大再送回数値を比較して、再送回数(カウ
ンタ値)が最大回数値を超えたときはリトライオーバー
であると判断し、その後の処理をアプリケーションレイ
ヤに任せる。
【0129】608は、リトライ処理部である。前回送
信したのと同一パケットを相手ノードに対して送信す
る。但し、これは、トランザクションレイヤが管理する
再送とは異なり、同一のデータであるが、別のトランザ
クション(トランザクションラベルが異なる別のパケッ
ト送信)となる。
【0130】609は、現在行なっているデータ転送に
対して何回のリトライオーバーが発生したかをカウント
するカウンタである。
【0131】610は、アプリケーションレベルで再度
同一のパケットを送信するか否かを判断、決定するアプ
リケーションリトライ制御部である。再度パケットを送
信する場合は送信リクエスト部603にその要求を伝え
る。他に送信したパケットがエラーだったときに再送す
るかどうかの判断も行なう。本実施形態にかかる発明の
最も重要な送信間隔、再送間隔及び再送回数値を変更す
るかどうかの判断も行なうが、処理の内容に関しては図
5の説明で既に説明済みであるので省略する。
【0132】611は、送信間隔、再送間隔及び再送回
数値を設定する。設定方法に関しては既に図5で説明済
みであるので省略する。
【0133】612は、送信間隔、再送間隔及び再送回
数値を設定するための値を格納したテーブルである。テ
ーブルに格納する値は予め規定してもよいし、後から設
定してもよい。
【0134】613は、送信及び再送の間隔を規定する
ためのタイマである。タイマの発するタイミングで送信
リクエスト部603は送信処理部に送信のリクエストを
行なう。
【0135】以上説明してきたこれらの構成は、トラン
ザクションレイヤで管理するリトライをハードウエアに
よって実現することを想定している。そこで、先に説明
したようにファームウエアで逐次リトライする場合を考
える。ファームウエアでリトライ処理する構成であれ
ば、この実施形態の中でアプリケーションレイヤで管理
するリトライ処理を制御したのと同じようにトランザク
ションレイヤで管理するリトライ処理、つまり、リトラ
イの間隔や回数を制御することができる。その場合の判
断、および設定の処理は複雑になるが、よりきめこまか
な設定が可能となる。
【0136】図7は、第2実施形態における再送間隔お
よび送信間隔を示す模式図である。
【0137】(a)は本実施形態に拠らない場合のアシ
ンクロナス転送によるパケット送信を図示したものであ
る。
【0138】701は、アシンクロナス転送のパケット
である。Y軸として書かれているのは時間軸で701の
パケットは便宜的にM−1番目のパケットとする。パケ
ットの送信が正常に終了した場合、次のパケットを送信
するまでの時間をT1とする。実際には送信側ノードが
送信要求を出すまでの時間がT1で、バスのアービトレ
ーションによってパケットの送信が許可されなければそ
れ以上の時間がかかる場合もある。
【0139】702は、受信側ノードがビジーの場合の
再送パケットである。その前のM番目のパケット送信が
ビジーなのを受けて再送される。再送されるまでの時間
をT2とする(図はM+1番目のパケットのところで指
示している)。この例では3回のリトライを行うものと
し、3回目のリトライが失敗したために、リトライオー
バーの処理が施され、アプリケーションレベルのリトラ
イを行なう。このリトライがM+1にパケットに相当す
る。リトライ終了から次のパケット送信までの時間間隔
は同じくT1である。つまり、T1の間隔で送信要求が
だされるものとする。アプリケーションレベルのリトラ
イの細大回数を仮に1回とする。
【0140】(b)は本実施形態を適用した場合のパケ
ット送信を図示したものである。この例では、アシンク
ロナスパケットの送信を要求する間隔を変更した後の状
態を示している。具体的には、パケットの送信までの時
間がT1からT3に変更されており、この場合はT1よ
り長い時間T1<T3と変更される。
【0141】また、トランザクションレベルのリトライ
の間隔はT2と変わらない。これは本実施形態におい
て、トランザクションレイヤで管理するリトライが、ハ
ードウエアによって自動的に行われることを想定してい
るからである。
【0142】(c)は、(b)と同様に本実施形態を適
用した場合で、送信の間隔を変更した後の状態を示して
いる。具体的には送信までの時間がT1からT4に変更
されており、この場合はT1<T4である。通常のパケ
ット送信要求の間隔はT1として変更はない。また、ビ
ジーの際のリトライ間隔もT2と変わらない。
【0143】(d)は、(b)、(c)と同様に本実施
形態を適用した場合で、アプリケーションレベルのリト
ライ回数を変更した後の状態を示している。具体的には
アプリケーションが管理するリトライ回数の最大値を1
回から2回に変更している。(d)の設定では、パケッ
トの送信間隔(送信要求間隔及び再送間隔)に関係のあ
る値は変わらない。
【0144】(e)は,(b),(c),及び(d)と
同様に本実施形態を適用した場合で、通常のパケット送
信間隔、アプリケーションレイヤで管理するリトライの
再送間隔及び再送回数のそれぞれを任意に変更した後の
状態を示したものである。また、(b)、(c)の図に
は示されていないが、トランザクションレイヤで管理す
るリトライの制御をファームウエアですることが可能な
場合はリトライ間隔T2の時間も変更することが可能と
なり、より細かな設定が可能になる。このように(a)
の場合と比べて、(b)〜(e)のどの例でも。パケッ
トの送信数が減っていることが図面より容易に理解する
ことができる。
【0145】以上説明してきたように本実施形態の構成
によって、受信側ノードの処理能力にあわせたパケット
送信が可能となり、無効なトラフィックを低減し、バス
システム全体のパフォーマンスを向上させることが可能
になる。
【0146】特にトランザクションレイヤで管理するリ
トライ処理がLINKチップなどのハードウエアによっ
て実現されているため制御内容が制限される場合に有効
である。
【0147】また、これらの実現に際し、予め受信側ノ
ードからアシンクロナス転送によるパケット受信の処理
能力もしくは処理時間を把握しておく必要もない。
【0148】(第3実施形態)本発明にかかる第3実施
形態を図に従って説明する。図8は、第3実施形態にお
けるリトライ回数設定処理の流れを示すフローチャート
である。
【0149】ここでは、バスを構成するノードの数や種
類によってリトライ回数を設定する手順について説明す
る。
【0150】ステップS801では、新たなデバイスが
バスに接続されたり、その逆に取り除かれたりする活線
挿抜による動作やデバイスの電源投入などによって発生
するバスリセット信号を検知する。
【0151】ステップS802では、ツリー識別の後に
各ノードから送信されてくるセルフIDパケットを受信
する。自ノードのセルフIDパケットに関しては他ノー
ドに対して送信した旨がPHYレイヤからノードコント
ローラ(SBM:シリアルバスマネージャの機能の一
部)に通知される。これによって自ノードのフィジカル
IDを知ることができる。
【0152】ステップS803では、セルフIDパケッ
トを受信した数をカウントし、バスがいくつのノードで
構成されているかを示す値を用意する。このためにはセ
ルフIDパケットの数に自ノードの数1をプラスする必
要がある。また、セルフIDパケットのフィールドに含
まれるフィジカルIDやスピードやポート数などの各種
情報を必要に応じて格納する。一般には、アイソクロナ
スリソースマネージャ以上の機能を持つノードが実現で
きればいい能力である。
【0153】ステップS804では、ステップS803
でカウントしたカウント値が2であるかどうか、つまり
バスが自ノードの他には1つのデバイスだけが接続され
るだけの2つのノードで構成されているかを判断する。
ノード数が2の場合はステップS805へすすみ、3以
上のノードでバスが構成されていると判断された場合は
ステップS806へすすむ。
【0154】ステップS805では、バスが2つのノー
ドで構成されているのをうけて、トランザクションレイ
ヤで管理するリトライ処理におけるリトライ回数を、そ
れぞれのノードで採用しているリトライプロトコルで規
定している最大値に設定する。リトライ回数として最大
値を設定するのは、データのやりとりを行う相手が1つ
しかないからで、複数回のリトライパケットの転送に必
要な帯域の確保は容易であると思われる。
【0155】仮に相手ノードがビジーであるにも関わら
ず無駄なパケットを送り続けることで、相手ノードが利
用したい帯域までこちら側が使用することになっても、
1対1に接続されているノード間でお互いに大容量のデ
ータ転送を同じタイミングで行うことなどあまり考えら
れない。
【0156】これはPCとプリンタを接続した構成を考
えれば一目瞭然で、PCから大容量のプリントデータを
送信しているときにプリンタ側から同じように大容量の
データを送信してくることを想像してみればよい。IE
EE1394インタフェースではシングルフェーズとデ
ュアルフェーズの2種類のリトライプロトコルが定義さ
れている。シングルフェーズの最大リトライ回数は15
回、デュアルフェーズの最大リトライ回数は7回であ
る。
【0157】この実施形態では、対象とするノードが採
用しているリトライプロトコルをシングルフェーズのも
のとする。よって最大リトライ回数を15回に設定す
る。設定はSBMが管理するCSR(コントロールアン
ドステータスレジスタ)の中のBUSY_TIMEOU
Tレジスタに反映される。具体的にはretry_limitフィ
ールドの値をFHに設定する。デュアルフェーズリトラ
イプロトコルを採用している場合は同じレジスタのseco
nd_Iimitフィールドの値を7Hに設定する。
【0158】この実施形態では、本来トランザクション
レイヤで制御するビジーの時のパケットの再送、つまり
リトライ処理をリンクチップが行うことを想定してい
る。
【0159】上記レジスタに値を反映させるのと同時
に、リンクチップのレジスタ(リンクチップが自動的に
行うリトライの回数を設定するためもの)等にも値を書
き込む。ここではトランザクションレイヤで管理するリ
トライ回数を設定しているが、アプリケーションレイヤ
で管理するリトライの回数、つまりトランザクションレ
イヤでのリトライが失敗(リトライオーバー)に終わっ
て、さらに上位のレイヤで同じデータを送信する仕組み
によって再送される回数を変更、設定することも可能で
ある。
【0160】また、リトライ回数の初期値が最大値とな
るように設定されている場合は、改めて値を設定するよ
うなことはしないで設定処理をスキップする。
【0161】ステップS806では、バスを構成する3
つ以上のノードの中にアイソクロナスリソースマネージ
ャもしくはバスマネージャとなるノードが存在するのか
どうかを判断する。具体的には、送信されてきたセルフ
IDパケットの中のl(Link_active)ビットが1(リン
クがアクティブ)のノードのうち、c(Contender)ビッ
トに1が立てられているものがアイソクロナスリソース
マネージャもしくはそれ以上の機能を持つバスマネージ
ャ候補なのでそれらを把握する。lおよびcビットに共
に1が立てられているノードが存在しなければ、アイソ
クロナスリソースマネージャもしくはバスマネージャと
なるノードがこのバス上には存在しないと判断する。
【0162】ちなみに存在する場合はそれらのノードが
候補となるが、ビットを立ててきたノードが複数存在す
る場合には、最もフィジカルIDが大きいノードがアイ
ソクロナスリソースマネージャもしくはバスマネージャ
となる。アイソクロナスリソースマネージャもしくはバ
スマネージャの機能を持つノードが存在しない場合はス
テップS805へすすみ、存在する場合はステップS8
07へすすむ。アイソクロナスリソースマネージャもし
くは以上の機能を持つバスマネージャが存在しないこと
は、すなわちアイソクロナス転送を行うノードが存在し
ないことを意味し、常に一定期間帯域を占有するノード
が存在しないので、アシンクロナス転送を行うのに十分
な帯域が確保されていると判断することができる。
【0163】ステップS807では、バスを構成してい
るノードの種類、ここではアイソクロナスノード(アイ
ソクロナスパケットの送受信を行う機能を持つノード)
かトランザクションノード(パケットの送受信はアシン
クロナス転送のみのノード)かを識別するためのパケッ
トを送信する。種類を識別するためにはいくつかの方法
があるが、具体的には以下の3つの手段のうちいずれか
もしくは複数を選択してパケットの送信を行う。
【0164】その一つはコンフィグレーションROMの
bus_info_blockの中のiscビットが1かどうかをリー
ドトランザクションで読む方法である。iscビットは
そのノードがアイソクロナス動作をサポートしているか
どうかを示すビットで、このビットに1が立っている場
合はアイソクロナスノードであることがわかる(ただし
そのノードがアイソクロナス転送モードをサポートして
いるというだけで必ずしもアイソクロナス転送用にリソ
ースを獲得しているわけではない)。
【0165】二つ目は同じくコンフィグレーションRO
M内に定義されているそのノードの情報を示す値をリー
ドトランザクションを使用して読む方法である。この情
報はコンブィグレーションROM内のNode_Uniqu_Idも
しくはVendor_Depend_Infomationに定義される。
【0166】ただしこの情報は、すべてのノードが情報
を同じフォーマットで格納しているとは限らないため、
各デバイスクラスで定義されているフォーマットにあわ
せて情報を読むことが必要となる。上記は各ノードに対
してリードトランザクションを行うことで格納されてい
るノード情報を把握するというものであるが、これとは
別にアイソクロナスリソースマネージャのレジスタにア
クセスして現在どの程度の帯域がアイソクロナス転送を
使用するために割り当てられているかという情報からリ
トライ回数を規定する手段もありこれが三つ目である。
【0167】ステップS808では、ステップS807
で送信したリードトランザクションに対するレスポンス
データから、バスに接続されているノードの種別を識
別、判断する。
【0168】ステップS809では、ステップS807
およびステップS808で行ったノードの種類を識別す
る処理がバスを構成する自ノードを除くすべてのノード
に対して行われたどうかを判断する。既にすべてのノー
ドの情報を獲得し識別できている場合はステップS81
0へすすみ、まだ情報を把握していないノードがある場
合はステップS807へ戻りそのノードに対してパケッ
トを送信する。
【0169】ステップS810では、ノードを種類別に
カウントする。つまりバス構成するノードのうち、アイ
ソクロナスノードがいくつで、トランザクションノード
がいくつであるのかをそれぞれカウントする。
【0170】ステップS811では、トランザクション
レイヤで管理するリトライ処理におけるリトライ回数を
求めて設定する。リトライ回数はステップS810でカ
ウントしたそれぞれの種類のノード数の関係から演算す
る方法と、アイソクロナスリソースマネージャ以上の機
能を有するノードが持つ使用する帯域を示したレジスタ
の値から演算する方法がある。
【0171】ここでは具体的な演算方法は示さないが、
演算結果をそのまま設定できるようなプログラムを用意
してもいいし、ノードをカウントした直接の値もしくは
その値から求めた演算結果をパラメータとしてテーブル
に代入しリトライ回数を定めてもよい。新たに設定しよ
うとする値と現在設定されている値が同じ場合は処理を
スキップする。また、ステップS805と同様にアプリ
ケーションレイヤで管理するリトライ処理に関しても変
更・設定することが可能である。リトライ値の設定手順
に関してはステップS805で説明しているのでここで
は省略する。
【0172】ステップS812では、ステップS805
もしくはステップS811で設定したリトライ回数値と
そのノードのリトライ回数の初期設定値が異なり、かつ
新たな値を設定する前にリトライ回数を設定してあるC
SRのBUSY_TIMEOUTレジスタに他ノードからアクセスが
あったかどうかを判断する。レジスタへのアクセス(リ
ード)があった場合にはステップS813へすすみ、ア
クセスがない場合はリトライ回数設定処理を終了する。
この処理はレジスタをリードされたときの値とその後に
設定した値との食い違いが出ることを防ぐために行われ
る。
【0173】ステップS813では、ステップS812
で食い違いが発生したことをうけてバスリセットを発生
させる。その場合のレジスタの設定値は初期値ではな
く、ステップS805もしくはステップS811で設定
した値となる。また自ノードが発生させたバスリセット
に対しては図8を使用して説明してきたリトライ回数設
定処理はスキップするものとする。これらの処理過程を
経ることで、受信側ノードの処理能力に関わらずバスの
システム構成にあわせたパケット送信が可能となり、無
効なトラフィックを低減し、バスシステム全体のパフォ
ーマンスを向上させられる。
【0174】尚、ここで、本実施形態によって解決しよ
うとしている課題について分析してみる。相手ノードに
対して通常にパケットを送信したにも関わらず相手側ノ
ードからビジーのACKが帰ってきた場合は次のどれか
の状態にあると考えられる。
【0175】一つ目はデバイス自身がビジーになってし
まったためパケットが受信できない状態である。例とし
て相手ノードをプリンタとして考え。プリントデータの
転送の際に印字部での処理がインタフェースのスループ
ットに比べて遅いと、印字部でいくらかのバッファを持
っていたとしても処理が間に合わず、印字部がデータを
ある程度受け入れられる状態になるまでインタフェース
からの入力を制限するようになる。これはインタフェー
ス部分の処理が間に合っても、それ以外の部分の処理が
間に合わない場合が該当する。
【0176】二つ目は以前に送信したパケットの処理が
まだ済んでいない場合である。一つ前に送信元ノードか
ら送ったパケット、もしくはたまたま送信側ノードから
送られるパケット受信前に別のノードから送られたパケ
ットを処理し切れていない場合などがそれに当たる。受
信側ノードがアシンクロナス転送によるパケットを格納
できるFIFOを一つしか持たず、その前に受信したパ
ケットをFIFOから抜き出す処理をする前に次のパケ
ットを受信しようとした場合がそれに該当する。つまり
インタフェース部分の処理自体が間に合わない場合であ
る。
【0177】三つ目は受信側ノードで致命的なエラーが
発生して受信不能に陥った場合である。この三つ目の場
合には何らかの手段(例えばバスリセットやコマンドに
よるリセットもしくはユーザー自らがマニュアル操作で
リカバリーする等)をこうじてデバイスが正常動作をす
る状態に戻してやる必要があるが、一つ目および二つ目
の場合は、受信側ノードのパケット処理時間および能力
と送信側ノードのパケット送信タイミングまたは送信回
数のミスマッチによるものである。
【0178】一般には、相手ノードがビジーとなっても
受信できるまで送信し続けられれば相手の処理能力を気
にせず確実なパケットの転送を行うことができるわけで
あるが、無駄なパケットの転送は他のデバイスの帯域も
使用してしまうためその見極めは難しい。本実施形態は
これらの課題をバスの構成状況によってリトライ回数を
変えることで解消する。その結果、帯域の有効利用がは
かられ、システム全体としてのパフォーマンスが向上す
る。
【0179】図9は、第3実施形態におけるトランザク
ションレイヤ、シリアルバスマネージメントレイヤおよ
びアプリケーションレイヤ内の機能ブロック図である。
【0180】この図に示しているのはトランザクション
レイヤ、シリアルバスマネージメントレイヤおよびアプ
リケーションレイヤのすべての機能ではなく、本実施形
態に必要かもしくは使用する機能に限定している。
【0181】901は、トランザクションレイヤを構成
するファームウェアとのやりとりをするためのLINK
I/Fである。ファームウェアがリンクレイヤを実現
するLSIのレジスタにアクセスしたり、PHYチップ
からの信号に対応した割り込みを受けることによってや
りとりを行う。
【0182】902は、セルフIDパケット受信処理部
である。バスリセット後に各ノードから送信されるセル
フIDパケットをLINK I/F901から受けと
る。
【0183】903は、受信したセルフIDパケットの
数をカウントするカウンタである。自ノードのセルフI
DパケットはセルフIDパケット受信部902では受け
とれないので、バスを構成するノードの総数はカウント
値は受信したセルフIDパケットの数プラス1として考
える。
【0184】904では、セルフIDパケットのフィー
ルドに含まれるフィジカルIDやスピードやポート数な
どの各種情報を必要に応じて格納する情報格納部であ
る。また、l(Link_active)ビットとc(Contender)ビッ
トがともに1となっているノードを確認することによっ
て、アイソクロナスリソースマネージャもしくはそれ以
上の機能を持つバスマネージャとなる可能性のあるノー
ドがどれなのかを把握する。
【0185】905は、カウンタ903および情報格納
部904からの情報によってトランザクションレイヤで
管理するリトライの回数を定めるリトライ回数設定処理
部である。処理内容については図8で説明したので詳細
は省略するが、判断もしくは演算によって得られた設定
値を後述するレジスタ906に格納したり、バスを構成
するノードの種類を識別するためのリードトランザクシ
ョンを行うように後述の送信リクエスト部907に要求
を出したり、アプリケーションレイヤで管理するリトラ
イの回数を設定したりする。またリトライ関連の設定が
されているレジスタへのアクセスがあった場合にはバス
リセットを発生させるための要求をPHYチップに対し
て行う。
【0186】906は、ノードが備えるCSRのうちリ
トライプロトコルの種類やリトライ回数を規定している
レジスタである。リトライ回数設定処理部905によっ
て設定された値を反映させる。また、本実施形態ではト
ランザクションレイヤで管理するリトライ処理をリンク
チップによって実現することを想定しているため、リン
クチップのリトライ回数を規定するレジスタ(こちらは
物理的なレジスタ)にも同様に新たに設定した値をセッ
トする。
【0187】907は、他ノードに対してパケットの送
信を行うためのリクエストを発行する送信リクエスト部
である。IEEE1394インタフェース上に接続され
たノードに対して転送するデータが存在する場合は送信
のリクエストを発行する。
【0188】また後述するアプリケーションレイヤで管
理するリトライの実現するためのパケット送信要求があ
った場合にも908は、送信リクエスト部907からの
要求を受けてパケットを生成し、相手ノードに対して送
信する送信処理部である。ここで生成されたパケットは
LINK I/F901、不図示のPHYチップを経由
してバス上に流れる。
【0189】909は、送信処理部908から送られた
パケットに対するレスポンスパケットを受信する受信処
理部である。受信したパケットの中に含まれる他ノード
の情報、具体的にはアイソクロナスノードかどうかを判
断するための情報を得る。
【0190】910は、ACK処理部である。送信した
パケットに対してどのようなACKが返ってきたのかを
判断する。ACKがコンプリートとペンディングの場合
はアプリケーションレイヤにある送信リクエスト部90
7へ、エラーの場合はアプリケーションレイヤにあるエ
ラー処理部912へ、ビジーの場合はカウンタ913へ
伝える。
【0191】911は、送信リクエスト部907が相手
ノードに対してさらに送信するデータを持っている場
合、送信リクエスト部907からの要求を受けてパケッ
トを生成し、相手ノードに対して送信する送信処理部で
ある。処理内容は送信処理部908と同じである。
【0192】912では、先に転送したパケットの送信
に際してデータエラーやACKが返らなかったことを受
けてエラーの処理を行う。
【0193】913は、現在行っているトランザクショ
ンに対して何回のリトライ処理が行われたか(もしくは
これから行うか)をカウントするカウンタである。
【0194】914では、カウンタ913の値とノード
に設定された最大リトライ回数との値を比較して、リト
ライ回数(カウンタ値)が最大リトライ回数の値を超え
たときにはリトライオーバーであると判断し、その後の
処理をアプリケーションレイヤに任せる。
【0195】915は、トランザクションレイヤ管理の
リトライを行うリトライ処理部である。本構成ではリト
ライオーバーが発生するまではリンクチップによって自
動的にリトライパケットが送出されるものとする。
【0196】916は、アプリケーションレイヤレベル
で再度同一のパケットを送信するかどうかを判断、決定
するアプリケーションリトライ処理制御部である。再度
パケットを送信する場合は送信リクエスト部907にそ
の要求を伝える。
【0197】他には送信したパケットがエラーだったと
きに再送をするかどうかの判断も行う。
【0198】以上説明してきたこれらの構成は、トラン
ザクションレイヤで管理するリトライをハードウェアに
よって実現することを想定している。そこで先程述べた
ようにファームウェアで逐次リトライする場合を考えて
みる。ファームウェアでリトライ処理をする構成であれ
ば、ハードウェアによって自動的にリトライ処理をする
場合に比べてリトライパケットを送出する間隔が長くな
るため、リトライ回数として設定する値がハードウェア
構成の場合と同じであればトータルとして同じパケット
を送り続ける時間が長くなり、それだけパケットの受信
が成功する確率が高くなる。
【0199】また、送出する間隔をソフトウェアで制御
することによってリトライ回数を少なく設定してもリト
ライを行う間の時間を同じくらいにすることも可能であ
る。その場合ハードウェアによるリトライ処理に比べて
CPU負荷は大きくなるが、その分よりきめの細かな設
定を行うことができる。
【0200】(第4実施形態)第4実施形態を図に従っ
て説明する。図10は、システムの概要を示すブロック
図である。ここでは送信側ノードおよび受信側ノードに
必要な機能とその構成の概略ついて説明する。
【0201】1101は、IEEE1394インタフェ
ースに対応する受信側ノードである。ここでは仮にプリ
ンタ機能を持ったデバイスを想定する。図に示されるよ
うに、1102から1106の各レイヤ、プリンタ機能
1107および受信バッファ1108によって構成され
る。
【0202】1102は、PHYレイヤもしくはフィジ
カルレイヤ(物理層)と呼ばれるIEEE1394イン
タフェース上の信号を直接ドライブする機能を実現する
LSIと、LINKレイヤ(リンク層)の機能を実現す
るLSIによって構成されるIEEE1394インタフ
ェース制御部である。送信側ノード1110から送られ
てきたプリントデータの受信処理やバスの構成などを行
う。また後述する受信バッファ1108へのパケット格
納も行う。
【0203】1103は、トランザクションレイヤと呼
ばれるIEEE1394インタフェースに対して実際の
オペレーションを管理・実行するドライバである。この
レイヤで、IEEE1394インタフェース上で行われ
るリード/ライト/ロックのトランザクションを管理す
る。また受信側ノードがビジーの場合の再送(リトラ
イ)要求もこのレイヤで管理する。このトランザクショ
ンレイヤで管理するべきリトライ機能を実装しているL
SIも存在する。つまりビジーの場合には指定した回数
分だけ自動的にリトライを行ってくれるハードウェアに
よって構成される機能を持つ。
【0204】本実施形態では、本来トランザクションレ
イヤで制御するビジーの時のパケットの再送(リトラ
イ)を行う機能もIEEE1394インタフェース制御
部1102で実現することを想定する。また後述する受
信バッファ1108が再び受信可能な状態になったとき
その状態をデータ送信側ノードに伝えるためのトランザ
クションを発行する。
【0205】1104は、シリアルバスマネージメント
(SBM)を行うレイヤで、IEEE1394インタフ
ェースの管理用ドライバによって構成されるノードコン
トローラである。機能としてはCSR(コントロールア
ンドステータスレジスタ)およびコンフィグレーション
ROMの実装・管理を行う。また、セルフIDパケット
の受信に伴う他ノード情報の管理も取り扱う。SBM
は、ノードコントローラ以外の機能としてアイソクロナ
スリソースマネージャおよびバスマネージャの機能を持
つことが可能であるが、オプションであるため本受信側
ノード1101ではその機能は有さない。
【0206】1105は、ISO/IEC13213で
定義されているノードの持つ各種情報を格納したコンフ
ィグレーションROMである。コンフィグレーションR
OMには、ミニマルフォーマット(Minimal Format)とゼ
ネラルフォーマット(GeneralFormat)の2つの種類のフ
ォーマットが存在する。ミニマルフォーマットはメーカ
を識別するnode_vendor_id情報のみを持つ。ゼネラルフ
ォーマットはそれ以外にBus_info_BlockとRoot_Directo
ryと呼ばれる追加情報を持つ。本受信ノード1101は
ゼネラルフォーマットを持ち、図12に示されるノード
ユニークIDリーフの中に受信可能パケット個数情報を
示す値を格納している。
【0207】1106は、1EEE1394インタフェ
ースを利用した各種デバイスの機能、例えばプリンタや
スキャナやディジタルビデオカメラ等の機能を実現する
ソフトウェアと、トランザクションレイヤおよびノード
コントローラとのインタフェースを備えたアプリケーシ
ョンソフトウェアである。プリントデータのコマンド解
析やプリンタの記録部の制御等も行う。
【0208】1107は、アプリケーションレイヤ11
06のソフトウェアもしくは不図示のハードウェアによ
って制御されるプリンタの機能である。受信したプリン
トデータの印字を行う。
【0209】1108は、他ノードから送信されてきた
パケットを格納する受信バッファである。一般には同期
転送モードであるアイソクロナス転送用、非同期転送モ
ードであるアシンクロナス転送用にそれぞれバッファを
持つがここではアシンクロナス転送用受信バッファに特
定して説明を行う。IEEE1394インタフェース制
御部1102を構成するリンクチップはパケット受信用
のFIFOを持ち、受信されたパケットは自動もしくは
不図示のCPUのコントロールによってFIFOから受
信バッファに格納される。
【0210】受信バッファはメモリ上の一部にその領域
を確保され、受信可能な最大データペイロードサイズの
ブロックを複数本分持つ構成や(その場合は受信したパ
ケットのデータサイズが小さい場合には1ブロックの中
に空きの領域ができる)、確保したメモリ領域に使用で
きる分だけパケットを順に格納していく構成をとること
ができる。
【0211】本実施形態では、前者であるメモリを複数
ブロックに分けてその一つ一つに受信したパケットを格
納する構成をとるものとする。またそのブロックの本数
(受信可能パケット個数)をここでは仮にNとする。N
本すべての受信ブロックにパケットを格納してしまう
と、そのパケットの処理が終了しない限りバッファの空
きがなくなるため次のパケットを受信することができな
い。この状態をデバイスビジーという。実際にはマージ
ンをみて受信バッファのブロックがN本より若干少ない
数まで埋まったらビジーとする場合もある。受信側ノー
ドは、連続して同一ノードからパケットを受信している
場合、その受信したパケットの処理が終わりバッファが
空き状態になり、再び連続して受信可能になったらその
旨を送信側ノードに伝える機能を有する。
【0212】これは不図示のCPUが受信バッファを監
視して空き状態になったら通知することによって実現す
る。トランザクションレイヤは受信バッファが空いたこ
とを受けて、受信側ノードの状態を伝える情報を格納し
たデータを持つパケットを送信側ノードに送信する。パ
ケットを送信するタイミングは、上記で説明したように
受信したパケットの処理が終了しすべてのバッファが空
いた状態になったときの他に、まだすべての処理が終了
していない状態でも、こちらの状態を伝えそれに基づい
て送信側ノードが再びパケットを送信してくるまでの間
に処理が終了し、バッファが空くと予想されるタイミン
グであっても構わない。
【0213】1109は、IEEE1394インタフェ
ースのケーブルである。このケーブル内には2組のツイ
ストペアケーブル(一方がA、他方がBと称される信号
線)と1組の電源ペアケーブルのあわせて6本のケーブ
ルがクロスしている。
【0214】1110は、IEEE1394インタフェ
ースに対応する送信側ノードである。ここでは仮に受信
側ノード1101であるプリンタにプリントデータを送
信するPC(パーソナルコンピュータ)を想定する。P
Cが本来持つ機能の他に、図に示されるように、以下に
説明される1111から1114の各機能ブロックを有
する。
【0215】1111は、受信側ノード1101の10
2と同じIEEE1394インタフェース制御部であ
る。
【0216】1112は、受信側ノード1101から送
られたレスポンスパケットおよび相手ノードからのAC
Kを受信処理する受信部である。リードのレスポンスパ
ケットの場合は、受信したパケットの中に含まれる受信
側ノード1101の情報、具体的にはコンフィグレーシ
ョンROMに格納された受信可能パケット個数情報を
得、その情報は送信制御処理部1113に送られる。ま
た、ACKの処理では、送信したパケットに対してどの
ようなACKが返ってきたのかを判断し、そのACKご
とに、例えばビジーの場合にはリトライ処理を行うなど
の適切な処理を行う。
【0217】1113は、受信側ノード1101の受信
可能パケット個数情報から、連続して送信することが可
能なパケット個数を設定して送信のリクエストを発行し
たり、受信側ノードから再び連続送信が可能な状態にあ
ることを伝えるパケットを受信することにより連続送信
を再開するなど各種送信制御を行う送信制御処理部であ
る。パケットを連続して送信することが可能であると予
想される個数の設定は、受信可能パケット個数情報(値
はN)に基づいて行われる。その際受信可能パケット個
数情報(N)をそのまま使用して連続送信パケット個数
をNと設定する場合の他、他のノードからのパケット受
信を考慮して連続送信パケット個数をN−α(αは任意
の自然数)としたり、パケットの受信中にも受信処理が
行われ続けていることを考慮して、連続送信の最後のパ
ケットの受信時にはさらにいくつかのパケットが受信可
能であると判断して連続送信パケット個数をN+β(β
は任意の自然数)とすることも可能である。
【0218】このα、βの値を設定するためには、例え
ばバスを構成するノード数やアシンクロナス転送を頻繁
に行う可能性のあるデバイスの個数(これらは受信した
セルフIDパケットの個数や他ノードのコンフィグレー
ションROM情報から取得)、それから受信側ノードの
パケット受信処理時間(受信側ノードのコンフィグレー
ションROM情報から取得・判断)などの情報を利用す
る。受信側ノードのパケット受信処理時間情報は特にプ
ロトコル上規定されてるものではないので必要があれば
独自に用意する必要がある。
【0219】一回の連続転送ですべてのデータを送信で
きない場合は、再びパケットの送信を行う必要がある。
パケット送信の再開は、受信側ノードから送信された再
び受信バッファが空きになり受信可能の状態になったと
いうことを伝えるパケットを受信し、その内容を把握す
ることによって行われる。
【0220】114は、IEEE1394インタフェー
スのバス上に接続されたノードに対してパケットを送信
する送信部である。受信側ノード101に対して転送す
べきデータが存在する場合は連続してパケットを送信す
る。またトランザクションレイヤで管理するリトライパ
ケットの送信も行う。ここで生成、送信されたパケット
はIEEE1394インタフェース制御部1111を経
由してバス上に流れる。
【0221】このように、送信側ノード1110はまず
受信側ノード1101のコンフィグレーションROM1
105に格納されている受信可能パケット個数情報をリ
ードトランザクションによって獲得し、それに基づいて
連続したパケットの送信を行うことになる。さらに連続
したパケット送信を行う場合には、受信側ノードから送
られてくる受信側ノードのステータス情報(具体的には
受信バッファが空きとなり、再び連続転送が可能な状態
であるという情報)に基づいて制御を行う。
【0222】なおここで、本実施形態によって解決しよ
うとしている課題について再度分析してみる。
【0223】相手ノードに対して通常にパケットを送信
したにも関わらず相手側ノードからビジーのACKが帰
ってきた場合には次の何れかの状態にあると考えられ
る。一つ目はデバイス自身がビジーになってしまったた
めパケットが受信できない状態である。
【0224】例として相手ノードをプリンタとして考え
てみる。プリントデータの転送の際に印字部での処理が
インタフェースのスループットに比べて遅いと、印字部
でいくらかのバッファを持っていたとしても処理が間に
合わず、印字部がデータをある程度受け入れられる状態
になるまでインタフェースからの入力を制限するように
なる。これはインタフェース部分の処理が間に合って
も、それ以外の部分の処理が間に合わない場合が該当す
る。二つ目は以前に送信したパケットの処理がまだ済ん
でいない場合である。
【0225】一つ前に送信側ノードから送ったパケッ
ト、もしくはたまたま送信側ノードから送られるパケッ
ト受信前に別のノードから送られたパケットを処理し切
れていない場合などがそれに当たると考えられる。受信
側ノードがアシンクロナス転送によるパケットを格納で
きるFIFOを一つしか持たず、その前に受信したパケ
ットをFIFOから抜き出す処理をする以前に次のパケ
ットを受信しようと試みた場合がそれに該当する。
【0226】つまりインタフェース部分の処理自体が間
に合わない場合である。三つ目は受信側ノードで致命的
なエラーが発生して受信不能に陥った場合である。この
三つ目の場合には何らかの手段(例えばバスリセットや
コマンドによるリセットもしくはユーザー自らがマニュ
アル操作でリカバリーする等の手段)をこうじてデバイ
スが正常動作を行うことができる状態に戻してやる必要
があるが、一つ目および二つ目の場合は、受信側ノード
のパケット処理時間もしくは処理能力と、送信側ノード
のパケット送信タイミングまたは送信回数のミスマッチ
によるものである。
【0227】一般には、相手ノードがビジーとなっても
受信できるまで送信し続けられれば相手の処理能力を気
にせず確実なパケットの転送を行うことはできるが、無
駄なパケットの転送は他のデバイスの帯域も使用してし
まうためその見極めは難しい。
【0228】無論プロトコル上も最大許される再送回数
は規定されている。本特許はこれらの課題を、受信側ノ
ードの受信能力(受信可能パケット個数もしくはバッフ
ァサイズ)にあわせて送信側ノードの連続して送信する
パケットの個数を変更することで解消する。その結果、
帯域の有効利用がはかられるとともに、システム全体と
してのパフォーマンスも向上する。
【0229】図11は、第4実施形態における処理の流
れを示したフローチャートである。ここでは、送信ノー
ドが受信ノードの受信可能パケット個数情報を獲得し、
パケットの連続送信の制御を行なう過程について説明す
る。
【0230】ステップS1201では、送信側ノードは
受信側ノードに対して、リードトランザクションのリク
エストを行なう。具体的には、受信側ノードの有するコ
ンフィグレーションROMの内容、特に、受信可能なパ
ケット情報を獲得するために情報が格納されているアド
レスを指定してパケットを送信する。
【0231】ステップS1202では、ステップS12
01で送信したリクエストに対するレスポンスを受信し
する。これによって、コンフィグレーションROM内の
情報を獲得する。
【0232】ステップS1203では、受信側ノードの
コンフィグレーションROM内に受信可能なパケットの
個数を示す情報が有るか否かを判断する。指定したアド
レスに目的の情報がない場合は処理を終了する。情報が
存在する場合はステップS1204に処理を進め、送信
制御を行なう。
【0233】ステップS1204では、受信可能パケッ
ト個数情報(本実施形態では、最大で何個のパケットを
受信して、格納することができるか否かという情報をい
う)に基づいて、送信側ノードの送信制御値、具体的に
は連続したパケットの送信を行なう個数(回数)などの
制御パラメータを設定し、受信ノードに対して連続して
送信を行なう。
【0234】ステップS1205では、受信側ノードに
対して、更に送信するべきデータが存在しているかどう
かを判断する。未だ他に送信するべきデータがある場合
は処理をステップS1206へ進め、送信が終了してい
る場合は処理を終了する。
【0235】ステップS1206では、受信側ノードが
それ以前に送信したパケットの終了を終えて再び連続し
たパケットを受信するだけの受信バッファの空き容量を
確保できたか否かを判断する。具体的には、受信可能な
状態になったことを伝えるパケットを受信側ノードから
受信して判断する。このパケットを受け取っていない場
合は、受信ができない状態であり、待機状態となり再度
ステップS1206の処理を繰り返し行なう。
【0236】尚、一般には、特定のノードに対して送信
を行なう際に、上記で説明した処理を行なえばよい。同
時に複数のノードに対して、送信を行なうことは一般的
ではないが、あるノードに対して、連続したデータの転
送終了後に別のノードに対して同様な処理を行なう際
は、その都度受信可能パケット個数情報の獲得処理を行
なうか、それとも最初にバスを構成する全てのノードの
受信可能パケット情報を獲得後、その情報をテーブルに
格納し、必要に応じて設定を変更することになる。
【0237】図12は、第4実施形態における受信可能
パケット個数情報を格納するノードユニークIDリーフ
のフォーマットである。ここでは、受信可能パケット個
数情報がどのようにコンフィグレーションROM内に格
納されているのかを示す。
【0238】ノードユニークIDは8バイトで構成され
ており、その先頭3バイトで機器の発売元(ベンダ)の
カンパニーIDを示す。このカンパニーIDはIEEE
によって定められている。ノードユニークIDの残りの
5バイトの内容についてはベンダが自由に定めることが
できる。
【0239】1301は、カンパニーIDである。
【0240】1302は、ベンダが自由に定めることが
できる5バイトのうち4バイトで、機種名やシリアル番
号等の機器情報を定めている。ここでは特にその内容に
ついては重要でないので触れないことにする。
【0241】1303は、本実施形態の特徴である受信
可能パケット個数情報である。具体的には、そのノード
が受信することのできる最大のパケット数を定めてい
る。ここでは1バイトでその情報を表現しているが、必
要に応じてそのバイト数を変更することも可能である。
仮に受信バッファが、2Kbytesのデータを格納で
きるブロックを8本持っていた場合は、この値は08H
となる。
【0242】以上説明してきたように本発明にかかる実
施形態の構成によって、受信側ノードの処理能力にあわ
せたパケットの送信が可能となる。また理想的には1回
でパケット送信を成功させることが可能になることによ
ってリトライ回数を減らし、無効なトラフィックを低減
させることもできる。それによってバスシステム全体の
パフォーマンスを向上させることが可能になると同時に
より確実なパケットの転送を行うことができる。
【0243】(第5実施形態)第5実施形態を図に従っ
て説明する。パケットの連続送信を行う際の判断基準と
なる情報の格納されている場所が異なることを除いて第
4実施形態と同じ構成のため、同じ部分の説明は省略す
る。情報を利用する際の内容は異なるため説明する。
【0244】図13は、第5実施形態における受信バッ
ファサイズを格納するベンダ依存情報のフォーマットで
ある。ここでは、受信バッファサイズがどのようにコン
フィグレーションROM内のベンダ依存情報に格納され
ているのかを示す。ベンダ依存情報は特にそのフォーマ
ットが規定されておらず、ベンダが自由に定義すること
ができるフィールドを提供している。
【0245】1401は、メーカ名(ベンダ名)を格納
している。
【0246】1402は、機種名を格納している。上記
1401、1402は必須な事項ではないので特に取り
上げなくてもよい。上記値の他に製品のバージョン番号
を示してもよい。
【0247】1403は、本実施形態の特徴である受信
バッファサイズ情報である。具体的にはそのノードが受
信したパケットを格納することができるバッファのサイ
ズを定めている。ここでは1バイトでその情報を表現し
ているが、必要に応じてそのバイト数を変更することも
可能である。仮に受信バッファが、16Kbytesの
受信バッファを持っていた場合は、単位を1Kbyte
とすると10Hとなる。
【0248】送信側ノードは、この受信バッファサイズ
情報と自ノードが送信する際のデータペイロードサイズ
から、連続して送信可能な回数を設定する。具体的には
受信バッファサイズをデータペイロードサイズで割った
値が基準となり、連続送信可能なパケット数を設定す
る。
【0249】以上説明してきたように本発明の構成によ
って、受信側ノードの処理能力にあわせたパケット送信
が可能となり、バスシステム全体のパフォーマンスを向
上させることができる。特に受信側ノードの処理能力を
示す指標として受信バッファサイズが用いられる場合の
送信制御に有効である。
【0250】(第6実施形態)本発明の第6実施形態を
図に従って説明する。図14は、第6実施形態における
システムの概要を示すブロック図である。
【0251】ここでは送信側ノードおよび受信側ノード
に必要な機能とその構成の概略について説明する。
【0252】1501は、IEEE1394インタフェ
ースに対応する受信側ノードである。ここでは仮にプリ
ンタ槻能を持ったデバイスを想定する。図に示されるよ
うに、以下に説明される1502から1506の各レイ
ヤおよびプリンタ機能1507によって構成される。
【0253】1502は、PHYレイヤもしくはフィジ
カルレイヤ(物理層)と呼ばれるIEEE1394イン
タフェース上の信号を直接ドライブする機能を実現する
LSIとLINKレイヤ(リンク層)の機能を実現する
LSIによって構成されるIEEE1394インタフェ
ース制御部である。送信側ノード1509から送られて
きたプリントデータの受信処理やバスの構成などを行
う。
【0254】1503は、トランザクションレイヤと呼
ばれるIEEE1394インタフェースに対して実際の
オペレーションを管理・実行するドライバである。この
レイヤで、IEEE1394インタフェース上で行われ
るリード/ライト/ロックのトランザクションを管理す
る。また受信側ノードがビジーの場合の再送(リトラ
イ)要求もこのレイヤで管理する。このトランザクショ
ンレイヤで管理するべきリトライ機能を実装しているL
SIも存在する。
【0255】つまりビジーの場合にはハードウェアが指
定した回数分だけ自動的にリトライを行ってくれる。本
実施形態では、本来トランザクションレイヤで制御する
ビジーの時のパケットの再送(リトライ)を行う機能も
IEEE1394インタフェース制御部1502で実現
することを想定する。それとは別にファームウェアでリ
トライを行う場合についても後ほど説明する。
【0256】1504は、シリアルバスマネージメント
(SBM)を行うレイヤで、IEEE1394インタフ
ェースの管理用ドライバによって構成されるノードコン
トローラである。機能としてはCSR(コントロールア
ンドステータスレジスタ)およびコンフィグレーション
ROMの実装・管理を行う。また、セルフIDパケット
の受信に伴う他ノード情報の管理も取り扱う。SBMは
その他にノードコントローラ以外の機能としてアイソク
ロナスリソースマネージャおよびバスマネージャの機能
を持つが、オプションであるため本受信側ノード150
1ではその機能を有さない。
【0257】1505は、ISO/IEC13213で
定義されているノードの持つ各種情報を格納したコンフ
ィグレーションROMである。コンフィグレーションR
OMには、ミニマルフォーマット(Minimal Format)とゼ
ネラルフォーマット(GeneralFomat)の2つの種類のフォ
ーマットが存在する。ミニマルフォーマットはメーカを
識別するnode_vendor_id情報のみを持つ。ゼネラルフォ
ーマットはそれ以外にBus_info_BlockとRoot_Directory
と呼ばれる追加情報を持つ。本受信ノード101はゼネ
ラルフォーマットを持ち、図16に示されるノードユニ
ークIDリーフの中に受信処理能力を示す値としてその
処理時間を格納しているものとする。
【0258】1506は、IEEE1394インタフェ
ースを利用した各種デバイスの機能、例えばプリンタや
スキャナやディジタルビデオカメラ等の機能を実現する
ソフトウェアと、トランザクションレイヤおよびノード
コントローラとのインタフェースを備えたアプリケーシ
ョンソフトウェアである。プリントデータのコマンド解
析やプリンタの記録部の制御等も行う。
【0259】1507は、アプリケーションレイヤ15
06のソフトウェアもしくは不図示のハードウェアによ
って制御されるプリンタの機能である。受信したプリン
トデータの印字を行う。
【0260】1508は、IEEE1394インタフェ
ースのケーブルである。このケーブル内には2組のツイ
ストペアケーブル(一方がA、他方がBと称される信号
線)と1組の電源ペアケーブルのあわせて6本のケーブ
ルがクロスしている。
【0261】1509は、IEEE1394インタフェ
ースに対応する送信側ノードである。ここでは仮に受信
側ノード1501であるプリンタにプリントデータを送
信するPC(コンピュータ)を想定する。図に示される
ように、以下に説明される1510から115の各機能
ブロックを有する。
【0262】1510は、受信側ノード1501の15
02と同じIEEE1394インタフェース制御部であ
る。
【0263】1511は、受信側ノード1501から送
られたレスポンスパケットおよび相手ノードからのAC
Kを受信する受信処理部である。リードのレスポンスパ
ケットの場合、受信したパケットの中に含まれる受信側
ノード1501の情報、具体的にはコンフィグレーショ
ンROMに格納された受信処理能力を示す情報を得る。
また、ACKの処理では、送信したパケットに対してど
のようなACKが返ってきたのかを判断し、そのACK
ごと適切な処理を行う。
【0264】1512は、受信側ノード1501の受信
処理能力を示す値から、パケットを送信する際の各種制
御値を設定する送信制御値設定部である。具体的には受
信処理能力に合わせて、連続してパケットを送信する際
の送信間隔、受信側ノード1501がビジーの場合に行
われる再送処理における再送(リトライ)パケットの送
信間隔、およびトランザクションレイヤやアプリケーシ
ョンで管理される再送処理における再送(リトライ)回
数などの設定値を変更する。ここで変更された設定値に
従って送信処理部1513および再送処理部1514は
送信処理を行う。
【0265】1513は、受信側ノード1501へパケ
ットを送信する送信処理部である。IEEE1394イ
ンタフェースのバス上に接続されたノードに対して転送
すべきデータが存在する場合は送信のリクエストを発行
する。またアプリケーションレイヤで管理するリトライ
の実現するためのパケット送信要求があった場合にも同
様にリクエストを発行する。ここで生成、送信されたパ
ケットはIEEE1394インタフェース制御部151
0を経由してバス上に流れる。
【0266】1514は、受信側ノード1501がビジ
ーであった場合の再送処理を行う再送処理部である。こ
の中には、現在行われているトランザクションに対して
何回のリトライ処理が行われたかをカウントするカウン
タや、カウンタ値とノードに設定された最大リトライ回
数との値を比較して、リトライ回数(カウンタ値)が最
大リトライ回数の値を超えたときにはリトライオーバー
であると判断する判断部や、トランザクションレイヤ管
理のリトライを行うリトライ処理部や、アプリケーショ
ンレイヤレベルで再度同一のパケットを送信するかどう
かを判断、決定するアプリケーションリトライ処理制御
部などの機能を有する。
【0267】本構成ではリトライオーバーが発生するま
ではリンクチップ(IEEE1394インタフェース制
御部1510)によって自動的にリトライパケットが送
出されるものとする。
【0268】IEEE1394インタフェースではトラ
ンザクションレイヤ管理のリトライプロトコルとしてシ
ングルフェーズとデュアルフェーズの2種類が定義され
ている。シングルフェーズの最大リトライ回数は15
回、デュアルフェーズの最大リトライ回数は7回であ
る。本実施形態では、対象とするノードが採用している
リトライプロトコルをシングルフェーズのものとする。
【0269】よって最大リトライ回数は15回である。
リトライ回数の設定はノードコントローラが管理するC
SR(コントロールアンドステータスレジスタ)の中の
BUSY_TIMEOUTレジスタに反映される。具体的にはretry_
limitフィールドの値を所望の値に設定する(デュアル
フェーズリトライプロトコルを採用している場合は同じ
レジスタのsecond_limitフィールドの値を設定する)。
【0270】本実施形態では、本来トランザクションレ
イヤで制御するビジーの時のパケットの再送、つまりリ
トライ処理をリンクチップが行うことを想定しているた
め上記レジスタ(CSR)に値を反映させるのと同時
に、リンクチップのレジスタ(リンクチップが自動的に
行うリトライの回数を設定するためのもの、IEEE1
394インタフェース制御部1510が有する)にも値
を書き込む。
【0271】トランザクションレイヤで管理するリトラ
イ回数の設定のみならず、アプリケーションレイヤで管
理するリトライの回数、つまりトランザクションレイヤ
でのリトライが失敗(リトライオーバー)に終わること
によって、さらに上位のレイヤで同じデータを送信する
仕組みによって再送される回数を変更、設定することも
可能である。
【0272】1515は、パケットの送信間隔およびリ
トライ間隔を制御するために用いられるタイマーであ
る。本実施形態ではトランザクションレイヤ管理のリト
ライはハードウェアで行われるためタイマーは使用しな
いが、これから説明するファームウェアで実現する場合
には使用することになる。
【0273】以上説明してきた構成は、トランザクショ
ンレイヤで管理するリトライをハードウェアによって実
現することを想定している。そこで先程述べたようにフ
ァームウェアで逐次リトライする場合を考えてみる。フ
ァームウェアでリトライ処理をする構成であれば、ハー
ドウェアによって自動的にリトライ処理をする場合に比
べてリトライパケットを送出する間隔が長くなるため、
リトライ回数として設定する値がハードウェア構成の場
合と同じであればトータルとして同じパケットを送り続
ける時間が長くなり、それだけパケットの受信が成功す
る確率が高くなる(逆に一つのパケット送信が終了する
までの時間が長くなる可能性もある)。また、送出する
間隔をソフトウェアで制御することによってリトライ回
数を少なく設定してもリトライを行う間の時間を同じく
らいにすることも可能である。その場合ハードウェアに
よるリトライ処理に比べてCPU負荷は大きくなるが、
その分よりきめの細かな設定を行うことができる。
【0274】このように、送信側ノード1509はまず
受信側ノード1501のコンフィグレーションROM1
505に格納されている受信処理能力指数(本実施形態
では1パケットを受信処理する時間)をリードトランザ
クションによって獲得し、それに基づいてパケットを送
信する間隔、再送の間隔および再送回数を制御すること
になる。
【0275】図15は第6実施形態における処理の流れ
を示したフローチャートである。
【0276】ここでは、送信側ノードが受信処理能力情
報を獲得し送信制御を行うためのパラメータを設定する
工程を説明する。
【0277】ステップS1601では、送信側ノードが
受信側ノードに対してリードトランザクションのリクエ
ストを行う。具体的には、受信側ノードの持つコンフィ
グレーションROMの内容、特に受信処理能力を示す値
を獲得するために能力値が格納されているアドレスを指
定してパケットを送信する。
【0278】ステップS1602では、ステップS16
01で送信したリクエストに対するレスポンスを受信す
る。これによってコンフィグレーションROM内の情報
を獲得する。
【0279】ステップS1603では、受信側ノードの
コンフィグレーションROM内に受信能力を示す情報が
あるかどうかを判断する。指定したアドレスに目的の情
報がない場合はステップS1605へ処理を進め、情報
が存在する場合はステップS1604へすすむ。
【0280】ステップS1604では、受信処理能力情
報(本実施形態では1パケットを受信処理するのに必要
な時間)に基づいて送信側ノードの送信制御値、具体的
にはパケットの送信間隔、再送間隔および再送回数など
の制御パラメータの値を設定する。
【0281】ステップS1605では、バスを構成する
すべてのノードに対して受信処理能力情報の獲得動作を
行ったかどうかを判断する。まだ他にリードトランザク
ションによるコンフィグレーションROM内の情報取得
を行っていないノードが存在する場合はステップS16
01へ戻り、すべてのノードに対して確認動作を行って
いる場合は処理を終了する。
【0282】なお、一般には特定のノードに対して送信
を行う際に上記処理(ステップS1601からステップ
S1604)を行えばよい。
【0283】同時に複数のノードに対して送信を行うこ
とは考えられないが、あるノードへの連続したデータの
転送終了後に別のノードに対して同様な処理を行う際
は、そのたびに上記受信処理能力情報の獲得動作を行う
か、それとも最初にバスを構成するすべてのノードの受
信処理能力情報を得てその情報をテーブルに格納し、必
要なときに設定し直すことになる。
【0284】図16は、第6実施形態における処理時間
(もしくは処理能力を示す値)を格納するノードユニー
クIDリーフのフォーマットである。
【0285】ここでは、受信処理能力を示す値がどのよ
うにコンフィグレーションROM内に格納されているの
かを示す。ノードユニークIDは8バイトで構成されて
おり、その先頭3バイトで機器の発売元〈ベンダ)のカ
ンパニーIDを示す。このカンパニーIDはIEEEに
よって定められている。ノードユニークIDの残りの5
バイトの内容についてはベンダが自由に定めることがで
きる。
【0286】1610は、カンパニーIDである。
【0287】1620は、ベンダが自由に定めることが
できる5バイトのうち3バイトで、機種名やシリアル番
号等の機器情報を定めている。ここでは特にその内容に
ついては重要ではないので触れない。
【0288】1630は、本実施形態の特徴である受信
処理能力を示す値である。具体的には1パケットの受信
処理に必要な時間を定めている。後述するライトトラン
ザクション時の処理時間とリードトランザクション時の
処理時間の二つの処理時間を表す値を格納している。
【0289】1640は、ライトトランザクションによ
るパケット受信時の受信処理時間を示す値である。本実
施形態では受信側ノードはプリンタデバイスなので、こ
の値が必要となるのは送信側ノードがプリントデータを
送信してくる場合である。つまりこの値は、送信側ノー
ドから送られてくるプリントデータを受信側ノードで処
理するのに必要な時間(1パケット処理時)を示してお
り、これよりも短い間隔でパケットを送信しても何れデ
バイスがビジーになる可能性のあることを示している。
【0290】1650は、リードトランザクションによ
るパケット受信時の受信処理時間を示す値である。受信
側ノードがプリンタデバイスの場合は、CSRとコンフ
ィグレーションROMのリードやデバイスのステータス
取得の他には使用されることは少なく連続しての使用も
考えづらいが、これがスキャナデバイスでPC側が画像
データの取り込みの制御を行うような場合にはこの値が
有効となってくる。
【0291】つまりこの値は、受信側ノードが用意する
スキャナ読みとり画像データの送信に必要な時間(1パ
ケット処理時)を示しており、これよりも短い間隔でパ
ケットを送信することはそれより前に送信したリードリ
クエストに対するレスポンスが返る前に次のリードリク
エストを発行することになる(レスポンスが返ってから
のリクエスト発行であれば何ら問題はない)。
【0292】1640および1650で示される受信処
理時間は、ある時間を単位とした値として示される。例
えば処理時間の単位を1msecとした場合を考えてみ
る。仮に2msecで1パケットを処理することが可能
なデバイスであればその値は02Hとなる。また、処理
時間の単位をサイクルスタートパケット周期、つまり1
25μsecとした場合には以上の能力を有するデバイ
スであれば10Hとなる。
【0293】以上説明してきたように本発明にかかる実
施形態の構成によって、受信側ノードの処理能力にあわ
せたパケット送信が可能となり、それによって無効なト
ラフィックを低減し、かつ使わない帯域も有効活用する
ことで、バスシステム全体のパフォーマンスを向上させ
ることが可能になる。
【0294】(第7実施形態)第7実施形態を図に従っ
て説明する。本実施形態は受信処理能力情報の格納され
ている場所およびフォーマットが異なることを除いて第
6実施形態と同じ構成のため、同じ部分の説明は省略す
る。
【0295】図17は、第7実施形態における処理時間
(もしくは処理能力を示す値)を格納するベンダ依存情
報のフォーマットである。
【0296】ここでは、受信処理能力を示す値がどのよ
うにコンフィグレーションROM内のベンダ依存情報に
格納されているのかを示す。ベンダ依存情報は特にその
フォーマットが規定されておらず、ベンダが自由に定義
することができるフィールドを提供している。
【0297】1701は、メーカ名(ベンダ名)を格納
している。
【0298】1702は、機種名を格納している。17
01、1702は必須な事項ではないので特に取り上げ
なくてもよい。これらの値の他に製品のバージョン番号
を示してもよい。
【0299】1703は、ライトトランザクションによ
るパケット受信時の受信処理能力を示す値である。第6
実施形態の図16で説明した構成とは値の格納に割り当
てられているバイト数が異なっている。1バイトごとに
受信処理能力値を示していることには変わりはないが、
4バイトがそれぞれ送信されてくるパケットのデータペ
イロードサイズに対応している。
【0300】受信側ノードであるプリンタデバイスが4
00Mbps対応のノードで2Kbytesやペイロー
ドサイズを持つパケットの受信が可能だとしても、送信
側ノードも同じとは限らないし何らかの都合で最大のペ
イロードサイダでの送信ができない場合もある。そこで
ペイロードサイズに合わせた受信処理能力値を用意して
ある。
【0301】図では2K、1K、512、および4バイ
ト(1クワドレット)のデータペイロードサイズに合わ
せた受信処理能力値を格納しているが、さらに細かく設
定することも可能であるし、逆に2Kと1Kの場合だけ
選択して格納することもできる。
【0302】1704は、リードトランザクションによ
るパケット受信時の受信処理能力を示す値である。構成
は1703と同じであるのでここでの説明は省略する。
【0303】本実施形態ではライトトランザクション、
リードトランザクションとも同じバイト数を確保したが
必ずしも同じにする必要はない。また、受信処理能力値
として第6実施形態では処理時間を定めていたが、処理
能力を示す指標をもって表現することも可能である。具
体的には割り当てられているビット数分(この例では1
バイト)の段階で表現することが可能であるが、仮に1
6段階(0から15まで)で表現すると4ビットの情報
で済む。
【0304】500μsec以下が0、500〜100
0μsecが1、1000〜1500μsecが2のよ
うに500μsecごとに指標を規定すれば、実施形態
1の図3で説明したデバイスは2msecごとにパケッ
トを処理できる能力を持つので値は3H(03H)とな
る。
【0305】以上説明してきたように本発明にかかる実
施形態の構成によって、受信側ノードの処理能力にあわ
せたパケット送信が可能となり、それによって無効なト
ラフィックを低減し、かつ使わない帯域も有効活用する
ことで、バスシステム全体のパフォーマンスを向上させ
ることが可能になる。
【0306】特に送信側のデータペイロードサイズに合
わせて送信制御を行うことが可能である。
【0307】また、受信処理能力値に処理時間ではなく
何らかの指標を用いることで能力値を示すビット数を減
らすことができる。
【0308】(第8実施形態)図18は、第8実施形態
におけるシステムの概要を示すブロック図である。
【0309】ここでは送信側ノードおよび受信側ノード
に必要な機能とその構成の概略ついて説明する。
【0310】1801は、IEEE1394インタフェ
ースに対応する受信側ノードである。ここでいう受信側
ノードとは、本特許の機能の一つである送信制御を行え
る機能を持つノードを送信側ノードとした場合の相手側
となるノードのことである。本実施形態では仮にプリン
タ機能を持ったデバイスを想定する。図に示されるよう
に、以下に説明される1802から1806の各レイ
ヤ、プリンタ機能1807および受信バッファ1808
によって構成される。
【0311】1802は、PHYレイヤもしくはフィジ
カルレイヤ(物理層)と呼ばれるIEEE1394イン
タフェース上の信号を直接ドライブする機能を有するL
SIと、LINKレイヤ(リンク層)の機能を有するL
SIおよびそれらのチップを直接制御するドライバソフ
トウェアによって構成されるIEEE1394インタフ
ェース制御部である。
【0312】送信側ノード1810から送られてきたパ
ケットの受信や相手ノードへのパケット送信の他、バス
構成する際必要となる機能を持つ。LINKチップは受
信用、送信用およびアイソクロナス用、アシンクロナス
用にFIFOを持ち、アシンクロナスパケット受信用F
IFOに格納された受信パケットは後述する受信バッフ
ァ1808へ引き抜かれ格納される。
【0313】1803は、トランザクションレイヤと呼
ばれるIEEE1394インタフェースに対して実際の
オペレーションを管理・実行するドライバである。この
レイヤで、IEEE1394インタフェース上で行われ
るアシンクロナス転送によるリード/ライト/ロックの
各トランザクションを管理する。また受信側ノード18
01がビジーの場合の再送(リトライ)処理もこのレイ
ヤで管理する。このリトライ処理は本来トランザクショ
ンレイヤ1803で管理すべきものであるが、この機能
を実装しているLSIも存在する。
【0314】つまりビジーの場合には予め指定した回数
分だけ自動的にリトライ動作を行うハードウェアを実装
している。本実施形態では、本来トランザクションレイ
ヤ1803で制御すべきビジー状態の時のパケットの再
送(リトライ)を行う機能を、IEEE1394インタ
フェース制御部1802で実現することを想定する。
【0315】1804は、シリアルバスマネージメント
(SBM)を行うレイヤで、IEEE1394インタフ
ェースの管理用ドライバによって構成されるノードコン
トローラと呼ばれるブロックである。機能としてはCS
R(コントロールアンドステータスレジスタ)およびコ
ンフィグレーションROM1805の実装・管理を行
う。
【0316】また、セルフIDパケットの受信に伴う他
ノード情報の管理も取り扱う。SBMは、ノードコント
ローラ以外の機能としてアイソクロナス・リソース・マ
ネージャおよびバス・マネージャの機能を持つことが可
能であるが、オプションであるため本実施形態の受信側
ノード1801ではその機能は有さない。
【0317】1805は、ISO/IEC13213で
定義されている、ノードの持つ各種情報を格納したコン
フィグレーションROMである。
【0318】コンフィグレーションROMには、ミニマ
ルフォーマット(Minimal Format)とゼネラルフォーマッ
ト(General Fomat)の2種類のフォーマットが存在す
る。ミニマルフォーマットはメーカを識別するnode_ven
dor_id情報のみを持つ。ゼネラルフォーマットはそれ以
外にBus_info_BlockとRoot_Directoryと呼ばれる追加情
報を持つ。本実施形態の受信ノード1801はゼネラル
フォーマットのコンフィグレーションROM1805を
有する。
【0319】1806は、IEEE1394インタフェ
ースを利用した各種デバイスの機能、例えばプリンタや
スキャナやディジタルビデオカメラ等の機能を実現する
ソフトウェアと、トランザクションレイヤおよびノード
コントローラとのインタフェース部分を備えたアプリケ
ーションソフトウェア(アプリケーションレイヤ)であ
る。本実施形態ではプリンタデバイスを想定しているた
め、プリントデータのコマンド解析やプリンタの記録部
の制御等を行う機能を有する。
【0320】1807は、アプリケーションレイヤ18
06のソフトウェアもしくは不図示のハードウェアによ
って制御されるプリンタの機能である。受信したプリン
トデータの印字を行う。
【0321】1808は、他ノードから送信されてきた
パケットを格納する受信バッファである。一般には同期
転送モードであるアイソクロナス転送用、非同期転送モ
ードであるアシンクロナス転送用にそれぞれバッファを
持つが、ここではアシンクロナス転送用受信バッファに
特定して説明を行う。またここでは説明しないが送信デ
ータを格納する送信バッファも不図示ではあるが存在し
ている(物理的には受信バッファ1808と同じメモリ
上に構成される)。
【0322】IEEE1394インタフェース制御部1
802の構成要素であるLINKチップはパケット受信
用のFIFOを持ち、受信されたパケットは自動もしく
は不図示のCPUのコントロールによってFIFOから
受信バッファに引き抜かれ格納される。
【0323】受信バッファはメモリ上の一部にその領域
を確保され、受信可能な最大データペイロードサイズの
ブロックを複数本分持つ構成や(その場合は受信したパ
ケットのデータサイズが小さい場合には1ブロックの中
に空きの領域ができる)、確保したメモリ領域に使用で
きる分だけパケットを順に格納していく構成などをとる
ことができる。
【0324】本実施形態では、前者であるメモリを複数
ブロックに分けてその一つ一つに受信したパケットを格
納する構成をとるものとする。またそのブロックの本数
(受信可能パケット個数)をここでは仮にNとする。
【0325】N本すべての受信ブロックにパケットを格
納した場合はそのパケットの処理が終了しない限り、本
実施形態だとプリンタデバイスを想定しているためプリ
ンタに対して受信したデータを吐き出さない限り、バッ
ファの空きがなくなるために次のパケットを受信するこ
とができない(受信したパケットをFIFOから受信バ
ッファ1808に引き抜けないため)。この状態をデバ
イスビジーという。実際にはマージンをみて、受信バッ
ファのブロックがN本より若干少ない数まで埋まったら
ソフトウェアでビジーと制御する場合もある。
【0326】1809は、IEEE1394インタフェ
ースのケーブルである。このケーブル内には2組のツイ
ストペアケーブル(一方がA、他方がBと称される信号
線)と1組の電源ペアケーブルをあわせた6本のケーブ
ルがクロスしている。
【0327】1810は、IEEE1394インタフェ
ースに対応する送信側ノードである。ここでは仮に受信
側ノード1801であるプリンタにプリントデータを送
信するPC(パーソナルコンピュータ)を想定する。P
Cが本来持つ機能の他、図に示されるように、以下に説
明される1811から1816の各機能ブロックを有す
る。
【0328】1811は、受信側ノード1801の18
02と同じIEEE1394インタフェース制御部であ
る。1802と異なるのは後述するタイマー1815の
制御機能を有することである。タイマー1815の起動
および停止の処理はリクエストパケットの送信およびレ
スポンスパケットの受信をトリガーに自動的に行われ
る。
【0329】1812は、相手側である受信側ノード1
801から送られてきたリクエストパケットやレスポン
スパケットの受信処理および相手ノードから受けたAC
K信号を処理する受信部である。トランザクションレイ
ヤおよびノードコントローラの一部の機能を実装する。
ACKの処理では、送信したパケットに対してどのよう
なACKが返ってきたのかを判断し、そのACKごと、
例えばビジーの場合にはリトライ処理を、エラーの場合
は上位レイヤに伝えるなど適切な判断、処理を行う。
【0330】1813は、IEEE1394インタフェ
ースのバス上に接続されたノードに対してパケットを送
信する送信部である。
【0331】受信側ノード1801に対して転送すべき
データが存在する場合はパケットの送信を行う。またト
ランザクションレイヤで管理するリトライパケットの送
信も行う(実際にはIEEE1394インタフェース制
御部1811のLINKチップによって自動的に行われ
る)。ここで生成、送信されたパケットはIEEE13
94インタフェース制御部1811を経由してバス上に
流れる。
【0332】1814は、トランザクションリクエスト
によるパケットの送信を起点として相手ノードがレスポ
ンスパケットを返してくるまでの時間の計測結果から相
手側ノード(受信側ノード1801)のパケット受信処
理能力を推定する処理能力推定部である。単純な場合だ
と受信側ノード1801のパケット処理時間を計測時間
と同等と見なして、それ以上短い間隔でパケットを送信
した場合には受信側ノード1801の処理能力を上まわ
ることになる(デバイスビジーになる)と判断する。つ
まり計測時間より短い間隔ではパケットを連続送信しな
いように送信間隔を設定するよう判断する。
【0333】実際にはバスに接続されたノードの個数
や、そのノードのうちアイソクロナス転送を行うノード
がいくつあるかなどの様々な情報も加味して処理能力値
を判断する。判断は各種パラメータによる演算処理でも
行えるし、テーブルによっても行える。
【0334】1815は、リクエストパケットの送信か
らレスポンスパケットの受信までの時間を計測するタイ
マーである。タイマー1815の起動を有効にするかど
うかの設定は処理能力推定部1814がIEEE139
4インタフェース制御部1811を介して行う。実際の
タイマー1815の起動、停止、カウンタ値のクリアは
IEEE1394インタフェース制御部1811が行
う。時間計測のために専用のハードウェアタイマーを設
けることもできるが、ここでは分割トランザクションの
ためのスプリットタイムアウトを監視するためのタイマ
ーを利用する。それによって特別な準備がないノードで
も同様の計測を簡単に行うことができる。タイマー18
15は、レスポンスパケット受信時にカウント値を他の
レジスタに格納し、自動的に値をクリアする機能を有す
る。また、カウンタ値のクリアをマニュアル操作でも行
えるようにし、その切り換えも設定できる。
【0335】1816は、処理能力推定部1814で判
断した受信側ノード1801の受信処理能力推定情報か
ら、パケットを連続して送信する際のパケット送信間
隔、受信側ノード1801がビジーになった場合のリト
ライ処理(トランザクションレイヤおよびアプリケーシ
ョンレイヤ管理のリトライ処理両方)におけるリトライ
回数とリトライパケットの送信間隔の設定を行う送信制
御処理部である。
【0336】ここで送信側ノードにおいてどのように制
御がなされていくかを簡単に説明する。送信側ノード1
810は、まず受信側ノード1801のコンフィグレー
ションROM1805に格納されている情報を、リード
トランザクションによって獲得するためパケットを送信
する。
【0337】その際リードリクエストのパケット送信と
同じタイミングでタイマー1815を起動する。受信側
ノード1801は受信処理を終えてレスポンスパケット
を送信するが、そのレスポンスパケットの受信時にタイ
マーを停止させ、カウンタ値(実際にはパケットを送信
してからレスポンスパケットが返るまでの時間)を把握
する。同一のノードに対して連続してパケットの送信を
行う場合、たとえばプリンタやスキャナデバイスのよう
に大容量のデータ送信が必要となる場合には、パケット
を連続して送信する際の送信間隔を計測時間から推定し
た処理能力値に基づいて設定する。また併せてリトライ
の回数やリトライパケットの送信間隔も規定する。
【0338】上記動作は、受信側ノード1801のコン
フィグレーションROM1805の内容をリードトラン
ザクションによって読み込む際に受信処理能力を測ろう
とするもので、特別のパケット送信をすることなく、通
常のパケットのやりとりの中で目的を実現できるという
メリットがある。ここではリードトランザクションを使
用して時間測定をする場合について説明しているが、こ
れがライトトランザクションやロックトランザクション
であっても同様の目的を達成することができる。ライト
トランザクションの場合は、データペイロードサイズと
して任意の値を設定することによって、より実際の転送
の状況に近い環境でパケット送信を行うことができる。
【0339】受信側ノード1801では、指定されたオ
フセットアドレスが無効であるなどして実際には受信し
たデータの処理まで行われない可能性もあるが、LIN
KチップのFIFOにそれなりに大きなサイズのパケッ
トを受信して、それを受信バッファ1808に格納する
までの処理は行われるため、インタフェースの処理能力
を測るには十分である。
【0340】送信側ノード1810がアイソクロナス・
ノードでかつ受信側ノード1801がアイソクロナス・
リソース・マネージャの機能を持つノードである場合に
は、ロックトランザクションを使用することも可能であ
る。アイソクロナス転送を行うノードは、実際に転送を
行う前にアイソクロナス転送用のバンド幅とチャネルを
それぞれ獲得する必要がある。
【0341】バンド幅とチャネル獲得はアイソクロナス
・リソース・マネージャの実装するレジスタに対するロ
ックトランザクションによって行われる。この獲得動作
を行う際処理能力をはかるための時間測定を行うことが
できる。リード、ライトおよびロックの各トランザクシ
ョンでは各々性格も異なるため、同じ計測時間が得られ
たとしても処理能力としては異なる判断を下すこともで
きる。
【0342】図19は第8実施形態における処理の流れ
を示したフローチャートである。
【0343】ここでは、送信側ノードが受信側ノードに
対してリードリクエストのパケットを送信し、レスポン
スパケットを受信することで処理能力推定し、その判断
結果に基づきパケットの連続送信の制御を行う過程につ
いて説明する。図18のところでも説明したが、リード
リクエストのパケット送信だけではなく、ライトやロッ
クのリクエストによるパケット送信でも同様の効果を上
げられる。
【0344】ステップS1901では、送信側ノードは
受信側ノードに対してリードトランザクションのリクエ
ストを行う。具体的には、受信側ノードの持つコンフィ
グレーションROM1805の内容を獲得するために情
報が格納されているアドレスを指定してパケットを送信
する。
【0345】ステップS1902では、タイマー181
5を起動する。フローチャートでは表現上S1901で
リクエストのパケットを送信してからタイマー1815
を起動するように示されているが、実際にはパケット送
信と同時にタイマー1815を起動する。
【0346】ステップS1903では、送信したリクエ
ストに対するACK信号を受信する。ステップS190
1のパケット送信ではリードトランザクションをリクエ
ストしたため分割トランザクションとなることが予想さ
れる。その場合通常であればACK_pendingが戻ってくる
ので受信したACK信号がpendingであるかどうかを判
断する。ACK_pendingの場合はステップS1904へす
すみ、それ以外を受信した場合はステップS1909へ
すすむ。
【0347】ステップS1904では、ステップS19
01で行ったリクエストに対するレスポンスのパケット
を受信する。これによってコンフィグレーションROM
1805内の情報を獲得する。
【0348】ステップS1905では、ステップS19
02で起動したタイマー1815を停止する。こちらも
表現上レスポンスパケットを受信してからタイマー18
15を停止するよう示されているが、実際にはレスポン
スパケット受信と同時にタイマー1815を停止する。
【0349】ステップS1906では、停止したタイマ
ー1815からカウント値を取得する。本実施形態で
は、タイマー1815停止と同時にその値を別のレジス
タに格納し、タイマー1815自体のカウント値はクリ
アする。格納されたカウント値は処理能力推定部181
4で用いられる。
【0350】ステップS1907では、取得したカウン
タ値、実際にはパケットを送信してからレスポンスが返
ってくるまでの時間を元に受信側ノード1801のパケ
ット受信処理能力を推定する。
【0351】ステップS1908では、受信処理能力の
判断に基づいて送信側ノードの送信制御値、具体的には
連続したパケットの送信を行う場合のパケット送信間隔
やリトライ回数やリトライパケットの送信間隔の値を設
定し、受信側ノード1801に対して連続した送信を行
う場合に備える。
【0352】ステップS1909では、ステップS19
03でACK_pending以外を受信した、つまりエラーやビ
ジーの状態であるのを受けてタイマー1815を停止す
る。またこのときステップS1901でリクエストした
トランザクションが失敗したと判断しエラー処理を行
う。転送のリカバリー(アプリケーションレイヤで管理
するレベルの再送処理)は行わない。
【0353】ステップS1910では、再度パケットを
送信するかどうか判断する。これはS1901と同じ内
容のリクエストを行ってもいいし、別のトランザクショ
ンとして向じリードのリクエストでもアドレスを変えた
り、トランザクション自体の種類をリードからライトや
ロックに変更して送信することもできる。それらを含め
て再度何らかのパケットを送信する場合はステップS1
911へすすみ、そうでない場合は処理を終了する。
【0354】ステップS1911では、再度リクエスト
パケットを送信する。その後の処理はS1902以降と
同じである。
【0355】なお、一般には特定のノードに対して連続
送信を行う必要がある場合に限って上記処理を行えばよ
い。
【0356】同時に複数のノードに対して送信を行うこ
とは普通考えられないが、あるノードへの連続したデー
タの転送終了後に別のノードに対して同様な処理を行う
場合は、そのたびに上記受信処理能力の推定、判断の処
理を行うか、それともバスを構成する初期の段階で、す
べてのノードの受信処理能力情報をテーブルに格納し、
必要なときに設定し直すか選択することが可能である。
【0357】図20は、第8実施形態におけるパケット
フロー(リードトランザクション)である。
【0358】ここでは、図19と同じく送信側ノードが
受信側ノードに対してリードリクエストのパケットを送
信し、レスポンスパケットを受信することで処理能力推
定し、その判断結果に基づきパケットの連続送信の制御
を行う全体のプロセスについて説明する。
【0359】ステップS2001では、送信制御処理部
1816が送信部1813に対してリードリクエストを
発行する。具体的には受信側ノード1801のコンフィ
グレーションROM1815の情報を読むためのパケッ
ト送信のリクエストを行う。
【0360】ステップS2002では、IEEE139
4インタフェース制御部(LINKおよびPHYチッ
プ)1811からパケットが送信されるのと同時にタイ
マー1815を起動する。
【0361】ステップS2003では、受信したリード
リクエストパケットに対して受信側ノードのインタフェ
ース制御部1802が自動的にACK(ペンディング)
を返す。
【0362】ステップS2004では、受信したリード
パケットがコンフィグレーションROMのリードである
ため、ノードコントローラが指定アドレスの値をレスポ
ンスとして返す準備を行う。図に記載のT2という時間
はリードリクエストパケットを受信してからレスポンス
を返すまでの時間、つまり受信処理時間に当たる。
【0363】ステップS2005では、レスポンスデー
タの生成後IEEE1394インタフェース制御部18
02を介してレスポンスパケットを送信するリクエスト
を発行する。
【0364】ステップS2006では、レスポンスパケ
ットの受信に対してLINKチップが自動的にACK
(完了)を返す。
【0365】ステップS2007では、レスポンスパケ
ット受信と同時に起動していたタイマー1815を停止
する。T2はリクエストパケットを送信してからレスポ
ンスパケットを受信するまでの時間となる。
【0366】ステップS2008では、タイマー181
5のカウント値を処理能力推定部1814に伝える。
【0367】ステップS2009では、処理能力推定部
1814が受信側ノード1801が1パケット受信処理
したときの能力を推定する。
【0368】ステップS2010では、送信制御処理部
1816が推定した受信処理能力値に基づいて送信制御
のための各種パラメータを設定する。
【0369】ステップS2011は、連続したデータ送
信の最初のパケットリクエストである。
【0370】ステップS2012は、連続したデータ送
信の2番目のパケットリクエストである。
【0371】ステップS2011以降連続したパケット
の送信が行われるものとする。
【0372】313は、パケットリクエストの間隔であ
る。送信制御処理部1816で設定した値に基づいて、
連続したパケットの送信を行う。T3はパケットの送信
間隔である。
【0373】以上説明してきたように本実施形態の構成
によって、受信側ノードには特別な準備をすることなく
受信処理能力にあわせたパケットの送信が可能となる。
送信制御を行う側のノードも、分割トランザクションの
ためのスプリットタイムアウト監視用のハードウェアタ
イマーによって時間計測を行うため、それ専用のハード
ウェアを用意する必要がない。
【0374】また相手ノードのコンフィグレーションR
OMのリード時に時間計測を行うような場合には、計測
のための特別なパケットの送信を行う必要がない。さら
には理想的には1回のパケット送信で転送が終了するた
め、ビジーによる転送の失敗など無効なトラフィックを
低減させることができる。それによってバスシステム全
体のパフォーマンスの向上が可能になると同時に、より
確実なパケットの転送を行うことができる。
【0375】
【他の実施形態】なお、本発明は、複数の機器(例えば
ホストコンピュータ、インタフェイス機器、リーダ、プ
リンタなど)から構成されるシステムに適用しても、一
つの機器からなる装置(例えば、複写機、ファクシミリ
装置など)に適用してもよい。
【0376】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体(または記録媒体)を、システムあるい
は装置に供給し、そのシステムあるいは装置のコンピュ
ータ(またはCPUやMPU)が記憶媒体に格納された
プログラムコードを読み出し実行することによっても、
達成されることは言うまでもない。
【0377】この場合、記憶媒体から読み出されたプロ
グラムコード自体が前述した実施形態の機能を実現する
ことになり、そのプログラムコードを記憶した記憶媒体
は本発明を構成することになる。
【0378】また、コンピュータが読み出したプログラ
ムコードを実行することにより、前述した実施形態の機
能が実現されるだけでなく、そのプログラムコードの指
示に基づき、コンピュータ上で稼働しているオペレーテ
ィングシステム(OS)などが実際の処理の一部または
全部を行い、その処理によって前述した実施形態の機能
が実現される場合も含まれることは言うまでもない。
【0379】さらに、記憶媒体から読み出されたプログ
ラムコードが、コンピュータに挿入された機能拡張カー
ドやコンピュータに接続された機能拡張ユニットに備わ
るメモリに書込まれた後、そのプログラムコードの指示
に基づき、その機能拡張カードや機能拡張ユニットに備
わるCPUなどが実際の処理の一部または全部を行い、
その処理によって前述した実施形態の機能が実現される
場合も含まれることは言うまでもない。
【0380】本発明にかかる通信制御方法をコンピュー
タで実行するためのプログラムを記憶した記憶媒体に
は、先に説明した(図1,図5、図8、図11、図1
5、図19、図20に示す)フローチャートに対応する
プログラムコードが格納されることになる。
【0381】
【発明の効果】以上説明したように、本発明によれば以
下のいずれかの効果をあげることができる。
【0382】受信側ノードのパケット処理能力にあわせ
た送信側ノードのパケット送信が可能となる。
【0383】リトライ間隔と回数を適切に設定すること
により、無効なトラフィックを低減することが可能とな
り、バスシステム全体のパフォーマンスを向上させるこ
とが可能となる。
【0384】また、予め受信側ノードからアシンクロナ
ス転送によるパケット受信時の処理能力もしくは処理時
間を把握しておく必要や手間が不要となり、IEEE1
394プロトコルの範囲内でより確実なパケット送信を
行なえる。
【0385】上記の効果はLINKチップなどのハード
ウエアによった構成においても、トランザクションレイ
ヤによるリトライ処理によって同様の効果が得られる。
【0386】コンフィグレーションROMの内容に基づ
き、通常の通信オペレーション内で処理時間の計測が可
能となり、処理時間の計測のための特別なパケット送信
が不要となる。
【0387】また、スプリットタイムアウト監視用タイ
マーを使用することで、送信ノード側でも特別なハード
ウエアを準備することなくパケット受信の確率を向上さ
せることが可能となる。
【図面の簡単な説明】
【図1】第1の実施形態におけるリトライ間隔および送
信間隔設定処理の流れを示すフローチャートである。
【図2】IEEE1394の各レイヤの構成図である。
【図3】第1実施形態におけるトランザクションレイヤ
内の機能ブロック図である。
【図4】第1実施形態における再送間隔および送信間隔
を示す模式図である。
【図5】第2実施形態における送信間隔、リトライ間隔
および送信間隔設定処理の流れを示すフローチャートで
ある。
【図6】第2実施形態におけるトランザクションレイヤ
内の機能ブロック図である。
【図7】第2実施形態における再送間隔および送信間隔
を示す模式図である。
【図8】第3実施形態におけるリトライ回数設定処理の
流れを示すフローチャートである。
【図9】第3実施形態におけるトランザクションレイ
ヤ、シリアルバスマネージメントレイヤおよびアプリケ
ーションレイヤ内の機能ブロック図である。
【図10】第4実施形態のシステムの概要を示すブロッ
ク図である。
【図11】第4実施形態における処理の流れを示したフ
ローチャートである。
【図12】第4実施形態における受信可能パケット個数
情報を格納するノードユニークIDリーフのフォーマッ
トである。
【図13】第5実施形態における受信バッファサイズを
格納するベンダ依存情報のフォーマットである。
【図14】第6実施形態におけるシステムの概要を示す
ブロック図である。
【図15】第6実施形態における処理の流れを示したフ
ローチャートである。
【図16】第6実施形態における処理時間(もしくは処
理能力を示す値)を格納するノードユニークIDリーフ
のフォーマットである。
【図17】第7実施形態における処理時間(もしくは処
理能力を示す値)を格納するベンダ依存情報のフォーマ
ットである。
【図18】第8実施形態におけるシステムの概要を示す
ブロック図である。
【図19】第8実施形態における処理の流れを示したフ
ローチャートである。
【図20】第8実施形態におけるパケットフロー(リー
ドトランザクション)である。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5K032 BA04 CC03 CC04 CC12 CD01 DA01 DA12 DB20 DB26 5K033 AA01 BA04 CB03 CB04 CC01 DA01 DA12 DA13 DB13 DB16 5K034 AA01 DD01 EE11 FF02 FF12 FF15 FF18 GG02 GG06 HH01 HH02 HH11 HH12 HH48 HH49 HH50 HH53 HH65 MM03 MM12 NN12 NN13 NN22 NN26 PP03

Claims (96)

    【特許請求の範囲】
  1. 【請求項1】 ネットワーク上のノード間で非同期転送
    モードによってデータを授受する通信装置であって、 非同期転送モードで送信したパケットの受信側ノードの
    受信状況を判断する手段と、 前記送信したパケットが受信できないとき送信側ノード
    が再度、同一データパケットを送信する再送手段と、 前記再送手段によるパケットの再送回数をカウントする
    手段と、 前記再送回数をカウントする手段によるカウント値が設
    定回数以上のとき、送信側ノードは再送パケットではな
    い次に送信すべき新規パケットの送信分から、パケット
    の再送間隔を変更する手段と、 を備えることを特徴とする通信装置。
  2. 【請求項2】 ネットワーク上のノード間で非同期転送
    モードによってデータを授受する通信装置であって、 非同期転送モードで送信したパケットの受信側ノードの
    受信状況を判断する手段と、 前記送信したパケットが受信できないとき、アプリケー
    ションレイヤの管理で再度同一データパケットを送信す
    る再送手段と、 前記再送手段によるパケットの再送回数をカウントする
    手段と、 前記再送回数をカウントする手段によるカウント値が設
    定回数以上のとき、送信側ノードは再送パケットではな
    い次に送信すべき新規パケットの送信分から、トランザ
    クションレイヤの管理でパケットの再送間隔を変更する
    手段と、 を備えることを特徴とする通信装置。
  3. 【請求項3】 ネットワーク上のノード間で非同期転送
    モードによってデータを授受する通信装置であって、 非同期転送モードで送信したパケットの受信側ノードの
    受信状況を判断する手段と、 前記送信したパケットが受信できないとき、アプリケー
    ションレイヤの管理で再度同一データパケットを送信す
    る再送手段と、 前記再送手段によるパケットの再送回数をカウントする
    手段と、 前記再送回数をカウントする手段によるカウント値が設
    定回数以上のとき、送信側ノードは再送パケットではな
    い次に送信すべき新規パケットの送信分から、前記再送
    手段によって送信されるパケットの再送間隔を変更する
    手段と、 を備えることを特徴とする通信装置。
  4. 【請求項4】 前記再送間隔を変更する手段は、変更可
    能な設定値を複数個、予め有することを特徴とする請求
    項1乃至3のいずれかに記載の通信装置。
  5. 【請求項5】 前記再送間隔を変更する手段は、タイマ
    ーを使用して前記再送間隔を設定することを特徴とする
    請求項1乃至3のいずれかに記載の通信装置。
  6. 【請求項6】 前記再送間隔を変更する手段は、前記再
    送間隔の設定をバスに接続されたノード単位に行うこと
    を特徴とする請求項1乃至3のいずれかに記載の通信装
    置。
  7. 【請求項7】 前記再送間隔を変更する手段は、送信に
    おける再送の回数および送信成功の可否を基準ととして
    再送間隔の設定を行うことを特徴とする請求項1乃至3
    のいずれかに記載の通信装置。
  8. 【請求項8】 ネットワーク上のノード間で非同期転送
    モードによってデータを授受する通信装置であって、 バスリセットを検出するための手段と、 前記検出手段による検出に従い、ネットワークのコンフ
    ィグレーションを判断する構成判断手段と、 前記構成判断手段の判断により、バスが2つのノードで
    構成される場合もしくは、ノード数が2を超える場合
    で、かつ、そのバスを構成するノードの中にバスマネー
    ジャ若しくはアイソクロナスリソースマネージャの機能
    を有するノードが存在しない場合は、トランザクション
    レイヤで管理するリトライ回数をプロトコルで規定され
    た最大値に設定する手段と、 を備えることを特徴とする通信装置。
  9. 【請求項9】 前記最大値として設定されるリトライ回
    数はシングルフェーズリトライプロトコルを採用する場
    合は15回であることを特徴とする請求項8に記載の通
    信装置。
  10. 【請求項10】 前記最大値として設定されるリトライ
    回数はデュアルフェーズリトライプロトコルを採用する
    場合は7回であることを特徴とする請求項8に記載の通
    信装置。
  11. 【請求項11】 前記リトライ回数の初期値はプロトコ
    ルで規定した最大値を設定することを特徴とする請求項
    8に記載の通信装置。
  12. 【請求項12】 データ転送に周期的に連続した時間に
    おいて、一定の帯域を保証してエラー発生時に再送手続
    を行なわない周期転送モードを使用する通信装置は、前
    記リトライ回数の初期値としてプロトコルで規定された
    最大値未満の値を設定することを特徴とする請求項8に
    記載の通信装置。
  13. 【請求項13】 前記構成判断手段によるネットワーク
    コンフィグレーションに従いリトライ処理におけるパケ
    ットの再送間隔及び再送回数をトランザクションレイヤ
    もしくはアプリケーションレイヤの管理に切り替えるこ
    とを特徴とする請求項8に記載の通信装置。
  14. 【請求項14】 前記構成判断手段はデータ転送として
    非同期転送モードを使用するのか、同期転送モードを使
    用するのかによって、バスに接続したデバイスの種類を
    判別することを特徴とする請求項8に記載の通信装置。
  15. 【請求項15】 前記非同期転送モードを使用するデバ
    イスには、ストレージ、プリンタ、スキャナのうちいず
    れか一つを含むことを特徴とする請求項14に記載の通
    信装置。
  16. 【請求項16】 前記同期転送モードを使用するデバイ
    スには、デジタルビデオカメラ、オーディオ、DVD、
    デジタルTVのうちいずれか一つを含むことを特徴とす
    る請求項14に記載の通信装置。
  17. 【請求項17】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受する通信装置であって、 非同期転送モードで送信されたパケットを連続して受信
    して格納する受信バッファと、 前記受信バッファに格納できるパケットの個数情報を予
    め格納しておく格納手段と、 前記格納された個数情報に従いパケットの送信を制御す
    る手段と、 を備えることを特徴とする通信装置。
  18. 【請求項18】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受する通信装置であって、 非同期転送モードで送信されたパケットを連続して受信
    して格納する受信バッファと、 前記受信バッファのサイズを予め格納しておく格納手段
    と、 前記格納されたバッファのサイズに従ってパケットの送
    信を制御する送信制御手段と、 を備えることを特徴とする通信装置。
  19. 【請求項19】 前記受信バッファに格納されている受
    信パケット数を管理するための管理手段を備え、 該管理手段は前記受信バッファがパケットを受信可能か
    否かを判断し、受信可能な場合は前記送信制御手段に受
    信可能である旨を報知することを特徴とする請求項17
    または18に記載の通信装置。
  20. 【請求項20】 前記送信制御手段は、前記報知に従い
    パケットの送信を制御することを特徴とする請求項19
    に記載の通信装置。
  21. 【請求項21】 前記管理手段は、バッファサイズ若し
    くは最大の受信可能パケットの個数の条件に従って前記
    受信バッファを管理することを特徴とする請求項19に
    記載の通信装置。
  22. 【請求項22】 前記バッファサイズ若しくは最大の受
    信可能パケットの個数の条件はコンフィグレーションR
    OMに格納されているデータであることを特徴とする請
    求項21に記載の通信装置。
  23. 【請求項23】 前記管理手段は、受信したパケットの
    処理が全て完了した後に、受信可能である旨を前記送信
    制御手段に報知することを特徴とする請求項20に記載
    の通信装置。
  24. 【請求項24】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受する通信装置であって、 非同期転送モードで送信するパケットの受信側ノードに
    おける処理能力情報を予め格納しておく記憶手段と、 前記予め格納された処理能力情報に基づき、送信したパ
    ケットの処理状況を判定する判定手段と、 前記判定手段の判定に従い、パケットの送信を制御する
    制御手段と、 を備えることを特徴とする通信装置。
  25. 【請求項25】 前記処理能力情報は、受信側ノードに
    おけるパケットの処理時間であることを特徴とする請求
    項24に記載の通信装置。
  26. 【請求項26】 前記処理能力情報は、コンフィグレー
    ションROMのノードユニークIDリーフに格納されて
    いることを特徴とする請求項24または25に記載の通
    信装置。
  27. 【請求項27】 前記処理能力情報は、コンフィグレー
    ションROMのベンダ依存情報として格納されているこ
    とを特徴とする請求項24または25に記載の通信装
    置。
  28. 【請求項28】 前記処理時間の1サイクル単位時間
    は、125μ秒であることを特徴とする請求項25に記
    載の通信装置。
  29. 【請求項29】 前記処理能力情報は、受信パケットに
    関するリードトランザクションとライトトランザクショ
    ンの2種類の値を有することを特徴とする請求項24に
    記載の通信装置。
  30. 【請求項30】 前記処理能力情報は、異なるデータペ
    イロードサイズごとに値を有することを特徴とする請求
    項24に記載の通信装置。
  31. 【請求項31】 前記処理能力情報は、受信パケットに
    関するリードトランザクションとライトトランザクショ
    ンの2種類の値を有することを特徴とする請求項24に
    記載の通信装置。
  32. 【請求項32】 前記処理能力情報は、受信パケットに
    関するリードトランザクションとライトトランザクショ
    ンの2種類の値を有することを特徴とする請求項24に
    記載の通信装置。
  33. 【請求項33】 前記制御手段は、同一ノードに対して
    連続したパケットを送信する際の送信間隔を制御するこ
    とを特徴とする請求項24に記載の通信装置。
  34. 【請求項34】 前記制御手段は、同一ノードに対して
    連続したパケットを送信する際のリトライ間隔を制御す
    ることを特徴とする請求項24に記載の通信装置。
  35. 【請求項35】 前記制御手段は、同一ノードに対して
    連続したパケットを送信する際のリトライ回数を制御す
    ることを特徴とする請求項24に記載の通信装置。
  36. 【請求項36】 前記制御手段は、IEEE1394プ
    ロトコルのトランザクションレイヤ及びアプリケーショ
    ンレイヤで前記送信間及びリトライ間隔を制御すること
    を特徴とする請求項24に記載の通信装置。
  37. 【請求項37】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受する通信装置であって、 特定のトランザクションリクエストに基づくパケット送
    信からレスポンスパケットを受信するまでの時間を計測
    する計測手段と、 前記計測手段による計測時間から受信側ノードの処理能
    力を推定する推定手段と、 前記推定手段による処理能力の推定結果に従って、パケ
    ットの送信を制御する制御手段と、 を備えることを特徴とする通信装置。
  38. 【請求項38】 前記特定のトランザクションリクエス
    トは、リードトランザクション、ライトトランザクショ
    ン、ロックトランザクションのいずれかであることを特
    徴とする請求項37に記載の通信装置。
  39. 【請求項39】 前記特定のトランザクションリクエス
    トがリードトランザクションの場合は、受信側ノードの
    コンフィグレーションROMから情報の読取りを行なう
    ためのトランザクションが利用されることを特徴とする
    請求項38または38に記載の通信装置。
  40. 【請求項40】 前記特定のトランザクションリクエス
    トがライトトランザクションの場合は、データペイロー
    ドサイズを任意にすることが可能であることを特徴とす
    る請求項38または39に記載の通信装置。
  41. 【請求項41】 送信側ノードがアイソクロナス・ノー
    ドであり、かつ、受信側ノードがアイソクロナス・リソ
    ース・マネージャである場合は、アイソクロナス転送を
    行なうための前準備であるバンド幅とチャンネルを獲得
    するためのロックトランザクションを利用することを特
    徴とする請求項37または38に記載の通信装置。
  42. 【請求項42】 前記計測手段は、分割トランザクショ
    ンのスプリットタイムアウトを監視するためのハードウ
    エアタイマであることを特徴とする請求項37に記載の
    通信装置。
  43. 【請求項43】 前記計測手段は、前記リクエストパケ
    ット送信時に起動して、レスポンスパケット受信時に停
    止することを特徴とする請求項37に記載の通信装置。
  44. 【請求項44】 前記計測手段は、停止時に計測時間を
    メモリに保存した後に、該計測時間をリセットすること
    を特徴とする請求項37に記載の通信装置。
  45. 【請求項45】 前記制御手段は、パケットの送信間隔
    を制御することを特徴とする請求項37に記載の通信装
    置。
  46. 【請求項46】 前記制御手段は、リトライパケットの
    送信間隔を制御することを特徴とする請求項37に記載
    の通信装置。
  47. 【請求項47】 前記制御手段は、パケットのリトライ
    回数を制御することを特徴とする請求項37に記載の通
    信装置。
  48. 【請求項48】 前記制御手段は、トランザクションレ
    イヤ及びアプリケーションレイヤの各々で、前記リトラ
    イ回数及び送信間隔を制御することを特徴とする請求項
    37に記載の通信装置。
  49. 【請求項49】 前記送信ノードと受信ノードのデータ
    通信はIEEE1394インタフェースを使用すること
    を特徴とする請求項1乃至48のいずれかに記載の通信
    装置。
  50. 【請求項50】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受するための通信制御方法
    であって、 非同期転送モードで送信されたパケットの受信側ノード
    の受信状況を判断する工程と、 前記送信されたパケットが受信できないとき送信側ノー
    ドが再度、同一データパケットを送信する再送工程と、 前記再送工程によるパケットの再送回数をカウントする
    工程と、 前記再送回数をカウントする工程によるカウント値が設
    定回数以上のとき、送信側ノードは再送パケットではな
    い次に送信すべき新規パケットの送信分から、パケット
    の再送間隔を変更する工程と、 を備えることを特徴とする通信制御方法。
  51. 【請求項51】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受する通信制御方法であっ
    て、 非同期転送モードで送信されたパケットの受信側ノード
    の受信状況を判断する工程と、 前記送信されたパケットが受信できないとき、アプリケ
    ーションレイヤの管理で再度同一データパケットを送信
    する再送工程と、 前記再送工程によるパケットの再送回数をカウントする
    工程と、 前記再送回数をカウントする工程によるカウント値が設
    定回数以上のとき、送信側ノードは再送パケットではな
    い次に送信すべき新規パケットの送信分から、トランザ
    クションレイヤの管理でパケットの再送間隔を変更する
    工程と、 を備えることを特徴とする通信制御方法。
  52. 【請求項52】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受する通信制御方法であっ
    て、 非同期転送モードで送信されたパケットの受信側ノード
    の受信状況を判断する工程と、 前記送信されたパケットが受信できないとき、アプリケ
    ーションレイヤの管理で再度同一データパケットを送信
    する再送工程と、 前記再送手段によるパケットの再送回数をカウントする
    工程と、 前記再送回数をカウントする工程によるカウント値が設
    定回数以上のとき、送信側ノードは再送パケットではな
    い次に送信すべき新規パケットの送信分から、前記再送
    工程によって送信されるパケットの再送間隔を変更する
    工程と、 を備えることを特徴とする通信制御方法。
  53. 【請求項53】 前記送信ノードと受信ノードのデータ
    通信はIEEE1394インタフェースを使用すること
    を特徴とする請求項50に記載の通信制御方法。
  54. 【請求項54】 前記再送間隔を変更する工程は、タイ
    マーを使用して前記再送間隔を設定することを特徴とす
    る請求項50に記載の通信制御方法。
  55. 【請求項55】 前記再送間隔を変更する工程は、前記
    再送間隔の設定をバスに接続されたノード単位に行うこ
    とを特徴とする請求項50に記載の通信制御方法。
  56. 【請求項56】 前記再送間隔を変更する工程は、送信
    における再送の回数および送信成功の可否を基準ととし
    て再送間隔の設定を行うことを特徴とする請求項50に
    記載の通信制御方法。
  57. 【請求項57】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受する通信制御方法であっ
    て、 バスリセットを検出するための工程と、 前記検出工程による検出に従い、ネットワークのコンフ
    ィグレーションを判断する構成判断工程と、 前記構成判断工程の判断により、バスが2つのノードで
    構成される場合もしくは、ノード数が2を超える場合
    で、かつ、そのバスを構成するノードの中にバスマネー
    ジャ若しくはアイソクロナスリソースマネージャの機能
    を有するノードが存在しない場合は、トランザクション
    レイヤで管理するリトライ回数をプロトコルで規定され
    た最大値に設定する工程と、 を備えることを特徴とする通信制御方法。
  58. 【請求項58】 前記最大値として設定されるリトライ
    回数はシングルフェーズリトライプロトコルを採用する
    場合は15回であることを特徴とする請求項57に記載
    の通信制御方法。
  59. 【請求項59】 前記最大値として設定されるリトライ
    回数はデュアルフェーズリトライプロトコルを採用する
    場合は7回であることを特徴とする請求項57に記載の
    通信装置。
  60. 【請求項60】 前記リトライ回数の初期値はプロトコ
    ルで規定した最大値を設定することを特徴とする請求項
    57に記載の通信制御方法。
  61. 【請求項61】 データ転送に周期的に連続した時間に
    おいて、一定の帯域を保証してエラー発生時に再送手続
    を行なわない周期転送モードを使用する通信制御方法
    は、前記リトライ回数の初期値としてプロトコルで規定
    された最大値未満の値を設定することを特徴とする請求
    項57に記載の通信制御方法。
  62. 【請求項62】 前記構成判断工程によるネットワーク
    コンフィグレーションに従いリトライ処理におけるパケ
    ットの再送間隔及び再送回数をトランザクションレイヤ
    もしくはアプリケーションレイヤの管理に切り替えるこ
    とを特徴とする請求項57に記載の通信制御方法。
  63. 【請求項63】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受するための通信制御方法
    であって、 非同期転送モードで送信されたパケットを連続して受信
    して受信バッファに格納する工程と、 前記受信バッファに格納できるパケットの個数情報を予
    めメモリに格納しておく格納工程と、 前記格納された個数情報に従いパケットの送信を制御す
    る工程と、 を備えることを特徴とする通信制御方法。
  64. 【請求項64】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受する通信制御方法であっ
    て、 非同期転送モードで送信されたパケットを連続して受信
    して受信バッファに格納する工程と、 前記受信バッファのサイズを予めメモリに格納しておく
    格納工程と、 前記格納されたバッファのサイズに従ってパケットの送
    信を制御する送信制御工程と、 を備えることを特徴とする通信制御方法。
  65. 【請求項65】 前記受信バッファに格納されている受
    信パケット数を管理するための管理工程を備え、 該管理工程は前記受信バッファがパケットを受信可能か
    否かを判断し、受信可能な場合は前記送信制御工程に受
    信可能である旨を報知することを特徴とする請求項63
    または64に記載の通信制御方法。
  66. 【請求項66】 前記送信制御工程は、前記報知に従い
    パケットの送信を制御することを特徴とする請求項65
    に記載の通信制御方法。
  67. 【請求項67】 前記管理工程は、バッファサイズ若し
    くは最大の受信可能パケットの個数の条件に従って前記
    受信バッファを管理することを特徴とする請求項65に
    記載の通信制御方法。
  68. 【請求項68】 前記管理工程は、受信したパケットの
    処理が全て完了した後に、受信可能である旨を前記送信
    制御工程に報知することを特徴とする請求項66に記載
    の通信制御方法。
  69. 【請求項69】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受するための通信制御方法
    であって、 非同期転送モードで送信するパケットの受信側ノードに
    おける処理能力情報を予めメモリに格納しておく記憶工
    程と、 前記予めメモリに格納された処理能力情報に基づき、送
    信したパケットの処理状況を判定する判定工程と、 前記判定工程の判定に従い、パケットの送信を制御する
    制御工程と、 を備えることを特徴とする通信制御方法。
  70. 【請求項70】 前記処理能力情報は、受信側ノードに
    おけるパケットの処理時間であることを特徴とする請求
    項69に記載の通信制御方法。
  71. 【請求項71】 前記処理能力情報は、コンフィグレー
    ションROMのノードユニークIDリーフに格納されて
    いることを特徴とする請求項69または70に記載の通
    信制御方法。
  72. 【請求項72】 前記処理能力情報は、コンフィグレー
    ションROMのベンダ依存情報として格納されているこ
    とを特徴とする請求項69または70に記載の通信制御
    方法。
  73. 【請求項73】 前記処理時間の1サイクル単位時間
    は、125μ秒であることを特徴とする請求項70に記
    載の通信制御方法。
  74. 【請求項74】 前記処理能力情報は、受信パケットに
    関するリードトランザクションとライトトランザクショ
    ンの2種類の値を有することを特徴とする請求項69に
    記載の通信制御方法。
  75. 【請求項75】 前記処理能力情報は、異なるデータペ
    イロードサイズごとに値を有することを特徴とする請求
    項69に記載の通信制御方法。
  76. 【請求項76】 前記処理能力情報は、受信パケットに
    関するリードトランザクションとライトトランザクショ
    ンの2種類の値を有することを特徴とする請求項60に
    記載の通信制御方法。
  77. 【請求項77】 前記処理能力情報は、受信パケットに
    関するリードトランザクションとライトトランザクショ
    ンの2種類の値を有することを特徴とする請求項69に
    記載の通信制御方法。
  78. 【請求項78】 前記制御工程は、同一ノードに対して
    連続したパケットを送信する際の送信間隔の制御である
    ことを特徴とする請求項69に記載の通信制御方法。
  79. 【請求項79】 前記制御工程は、同一ノードに対して
    連続したパケットを送信する際のリトライ間隔を制御す
    ることを特徴とする請求項69に記載の通信制御方法。
  80. 【請求項80】 前記制御工程は、同一ノードに対して
    連続したパケットを送信する際のリトライ回数を制御す
    ることを特徴とする請求項69に記載の通信制御方法。
  81. 【請求項81】 前記制御工程は、IEEE1394プ
    ロトコルのトランザクションレイヤ及びアプリケーショ
    ンレイヤで前記送信間及びリトライ間隔を制御すること
    を特徴とする請求項69に記載の通信制御方法。
  82. 【請求項82】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受するための通信制御方法
    であって、 特定のトランザクションリクエストに基づくパケット送
    信からレスポンスパケットを受信するまでの時間を計測
    する計測工程と、 前記計測工程による計測時間から受信側ノードの処理能
    力を推定する推定工程と、 前記推定工程による処理能力の推定結果に従って、パケ
    ットの送信を制御する制御工程と、 を備えることを特徴とする通信制御方法。
  83. 【請求項83】 前記特定のトランザクションリクエス
    トは、リードトランザクション、ライトトランザクショ
    ン、ロックトランザクションのいずれかであることを特
    徴とする請求項82に記載の通信制御方法。
  84. 【請求項84】 前記特定のトランザクションリクエス
    トがリードトランザクションの場合は、受信側ノードの
    コンフィグレーションROMから情報の読取りを行なう
    ためのトランザクションが利用されることを特徴とする
    請求項84または83に記載の通信制御方法。
  85. 【請求項85】 前記特定のトランザクションリクエス
    トがライトトランザクションの場合は、データペイロー
    ドサイズを任意にすることが可能であることを特徴とす
    る請求項82または83に記載の通信制御方法。
  86. 【請求項86】 送信側ノードがアイソクロナス・ノー
    ドであり、かつ、受信側ノードがアイソクロナス・リソ
    ース・マネージャである場合は、アイソクロナス転送を
    行なうための前準備であるバンド幅とチャンネルを獲得
    するためのロックトランザクションを利用することを特
    徴とする請求項82または83に記載の通信制御方法。
  87. 【請求項87】 前記計測工程は、分割トランザクショ
    ンのスプリットタイムアウトを監視するためのハードウ
    エアタイマを利用して計測処理することを特徴とする請
    求項82に記載の通信制御方法。
  88. 【請求項88】 前記計測工程は、前記リクエストパケ
    ット送信時に前記ハードウエアタイマを起動して、レス
    ポンスパケット受信時に該タイマを停止することを特徴
    とする請求項82に記載の通信制御方法。
  89. 【請求項89】 前記計測工程は、レスポンスパケット
    受信時に該タイマを停止する時に計測時間をメモリに保
    存した後に、該計測時間をリセットすることを特徴とす
    る請求項82に記載の通信制御方法。
  90. 【請求項90】 前記制御工程は、パケットの送信間隔
    を制御することを特徴とする請求項82に記載の通信制
    御方法。
  91. 【請求項91】 前記制御工程は、リトライパケットの
    送信間隔を制御することを特徴とする請求項82に記載
    の通信制御方法。
  92. 【請求項92】 前記制御工程は、パケットのリトライ
    回数を制御することを特徴とする請求項82に記載の通
    信制御方法。
  93. 【請求項93】 前記制御工程は、トランザクションレ
    イヤ及びアプリケーションレイヤの各々で、前記リトラ
    イ回数及び送信間隔を制御することを特徴とする請求項
    82に記載の通信制御方法。
  94. 【請求項94】 ネットワーク上のノード間で非同期転
    送モードによってデータを送信する請求項1乃至49の
    いずれかに記載の通信装置と、 前記通信装置によって送信されたデータを受信処理する
    装置と、 を有するデータ通信システム。
  95. 【請求項95】 前記データを受信処理する装置にはプ
    リンタが含まれれることを特徴とする請求項94に記載
    のデータ通信システム。
  96. 【請求項96】 ネットワーク上のノード間で非同期転
    送モードによってデータを授受するための通信制御方法
    をコンピュータで実行するためのプログラムコードを格
    納した記憶媒体であって、該プログラムコードが、 請求項50乃至93のいずれかに記載の通信制御方法の
    工程のコードを有することを特徴とする記憶媒体。
JP2000148886A 2000-05-19 2000-05-19 通信装置、データ通信システム、通信制御方法、記憶媒体 Pending JP2001333136A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000148886A JP2001333136A (ja) 2000-05-19 2000-05-19 通信装置、データ通信システム、通信制御方法、記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000148886A JP2001333136A (ja) 2000-05-19 2000-05-19 通信装置、データ通信システム、通信制御方法、記憶媒体

Publications (2)

Publication Number Publication Date
JP2001333136A true JP2001333136A (ja) 2001-11-30
JP2001333136A5 JP2001333136A5 (ja) 2007-07-12

Family

ID=18654831

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000148886A Pending JP2001333136A (ja) 2000-05-19 2000-05-19 通信装置、データ通信システム、通信制御方法、記憶媒体

Country Status (1)

Country Link
JP (1) JP2001333136A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096289B2 (en) * 2003-01-16 2006-08-22 International Business Machines Corporation Sender to receiver request retry method and apparatus
JP2006340194A (ja) * 2005-06-03 2006-12-14 Sharp Corp シリアルインターフェイス回路
KR100692892B1 (ko) * 2004-06-25 2007-03-12 가시오 히타치 모바일 커뮤니케이션즈 컴퍼니 리미티드 무선통신 단말기 및 통신방법
JP2013232237A (ja) * 2013-08-08 2013-11-14 Canon Inc 医療用検査システム
US8942262B2 (en) 2010-10-13 2015-01-27 Fuji Xerox Co., Ltd. Communication device, communication system and computer readable medium
CN113055081A (zh) * 2021-04-06 2021-06-29 北京控制工程研究所 一种高可靠低开销的跨周期数据处理方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096289B2 (en) * 2003-01-16 2006-08-22 International Business Machines Corporation Sender to receiver request retry method and apparatus
KR100692892B1 (ko) * 2004-06-25 2007-03-12 가시오 히타치 모바일 커뮤니케이션즈 컴퍼니 리미티드 무선통신 단말기 및 통신방법
JP2006340194A (ja) * 2005-06-03 2006-12-14 Sharp Corp シリアルインターフェイス回路
US8942262B2 (en) 2010-10-13 2015-01-27 Fuji Xerox Co., Ltd. Communication device, communication system and computer readable medium
JP2013232237A (ja) * 2013-08-08 2013-11-14 Canon Inc 医療用検査システム
CN113055081A (zh) * 2021-04-06 2021-06-29 北京控制工程研究所 一种高可靠低开销的跨周期数据处理方法

Similar Documents

Publication Publication Date Title
US6745256B2 (en) Information processing apparatus and method
US6397277B1 (en) Method and apparatus for transmitting data over data bus at maximum speed
JP3560423B2 (ja) パケット送受信装置及びパケット受信装置
JP3721234B2 (ja) プリンタ・システムおよびその動作制御方法
JP2007088775A (ja) 無線通信システム、無線通信装置及び方法
JP2003174486A (ja) 情報通信装置、情報通信方法および情報通信処理プログラム
JP3439320B2 (ja) データ通信方法、データ通信装置、およびデータ通信プログラム記録媒体
JP3400772B2 (ja) パケット送受信処理装置
JP2000253023A (ja) パケット通信装置
JP2001333136A (ja) 通信装置、データ通信システム、通信制御方法、記憶媒体
JP3630971B2 (ja) データ通信方法、装置、システム、及び記憶媒体
US6937355B1 (en) Data communications apparatus for resuming data transfer after interruption
JP3507824B2 (ja) データ伝送装置及びデータ伝送方法
US6058440A (en) Programmable and adaptive resource allocation device and resource use recorder
US6693905B1 (en) Data exchange unit
TW469715B (en) Method and system for controlling reset of IEEE 1394 network
JP2001274813A (ja) 情報信号処理装置及び情報信号処理方法並びに記憶媒体
US6956864B1 (en) Data transfer method, data transfer system, data transfer controller, and program recording medium
JP4428750B2 (ja) データ通信システム
JP2001094537A (ja) エラー処理機能を備えた伝送装置及びエラー処理方法
JP2003037596A (ja) 通信装置及び通信方法
JP4163266B2 (ja) プリンタおよびその制御方法
JP4109983B2 (ja) 通信システム
JP3606145B2 (ja) データ転送制御装置及び電子機器
JP2003110651A (ja) データ処理方法、データ処理装置、通信プロトコル及びプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070521

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070521

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070521

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080814

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100115

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100219