JP3606145B2 - データ転送制御装置及び電子機器 - Google Patents
データ転送制御装置及び電子機器 Download PDFInfo
- Publication number
- JP3606145B2 JP3606145B2 JP37050199A JP37050199A JP3606145B2 JP 3606145 B2 JP3606145 B2 JP 3606145B2 JP 37050199 A JP37050199 A JP 37050199A JP 37050199 A JP37050199 A JP 37050199A JP 3606145 B2 JP3606145 B2 JP 3606145B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- queue
- received packet
- reset
- received
- 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.)
- Expired - Fee Related
Links
- 238000012546 transfer Methods 0.000 title claims description 103
- 238000012545 processing Methods 0.000 claims description 122
- 238000000034 method Methods 0.000 claims description 58
- 230000008569 process Effects 0.000 claims description 47
- 239000003795 chemical substances by application Substances 0.000 description 81
- 239000003999 initiator Substances 0.000 description 23
- 238000007726 management method Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 230000000052 comparative effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Landscapes
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Description
【発明の属する技術分野】
本発明は、データ転送制御装置及び電子機器に関し、特に、バスに接続される複数のノード間でIEEE1394などの規格に準じたデータ転送を行うためのデータ転送制御装置及び電子機器に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
近年、IEEE1394と呼ばれるインターフェース規格が脚光を浴びている。このIEEE1394は、次世代のマルチメディアにも対応可能な高速シリアルバスインターフェースを規格化したものである。このIEEE1394によれば、動画像などのリアルタイム性が要求されるデータも扱うことができる。また、IEEE1394のバスには、プリンタ、スキャナ、CD−RWドライブ、ハードディスクドライブなどのコンピュータの周辺機器のみならず、ビデオカメラ、VTR、TVなどの家庭用電化製品も接続できる。このため、電子機器のデジタル化を飛躍的に促進できるものとして期待されている。
【0003】
さて、IEEE1394の上位プロトコルとして規格化されているSBP−2(Serial Bus Protocol−2)では、エージェントリセット、ターゲットリセット、リセットスタートなどのリセットが定義されている。即ち、ターゲット(プリンタ、スキャナ、CD−RW等)に何らかのエラーが発生し、データ転送処理を継続できないと判断した場合に、イニシエータ(パーソナルコンピュータ等)は、上記のリセットを要求する。そして、このようなリセットが要求された場合、リセットにより不要になる受信パケットについては破棄する必要がある。
【0004】
また、IEEE1394においては、バスに電子機器が新たに接続されたり、バスから電子機器が取り外されたりして、バスに接続されるノードが増減すると、いわゆるバスリセットが発生する。そして、バスリセットが発生するとノードのトポロジ情報がクリアされ、未完了のトランザクションは全てキャンセルされるため、バスリセット発生前に受信したパケットは全て無効になる。
【0005】
しかしながら、パケットを処理するファームウェアは、一般的に、処理速度の低いCPU上で動作している場合が多い。従って、受信パケットに対する処理は、そのパケットの受信後、所与の時間が経過してから行われるようになる。このため、多数の未処理のパケットが常にターゲットのデータバッファ上に存在することになる。従って、データバッファ上に存在する多数の受信パケットの中から、リセット(エージェントリセット、バスリセット等)により不要になる受信パケットを探し出す処理に多くの時間を要してしまう。このため、リセット処理に長時間を要してしまいシステム全体の処理がストールしてしまったり、ファームウェアの処理負担が過大になるなどの問題が生じる。
【0006】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、リセット処理に要する時間の短縮化と処理負担の軽減化を図れるデータ転送制御装置及び電子機器を提供することにある。
【0007】
【課題を解決するための手段】
上記課題を解決するために本発明は、バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、自ノードのデータバッファに書き込まれた受信パケットを解析し、解析した受信パケットをキューに格納し、データバッファ上の受信パケットが無くなるまで受信パケットの解析及びキューへの格納を繰り返すパケット解析手段と、データバッファ上の受信パケットが無くなったところで、キューに格納された受信パケットを処理するパケット処理手段と、処理した受信パケットがリセットを指示するパケットであった場合には、キューに格納された受信パケットのうち前記リセットにより不要になる受信パケットを破棄するパケット破棄手段とを含むことを特徴とする。
【0008】
本発明によれば、解析した受信パケットが直ぐには処理されずに、キューに格納される。そして、データバッファ上の受信パケットが無くなったところで、キューに格納された受信パケットの処理が開始される。そして、受信パケットがリセットを指示するパケットであった場合には、リセットにより不要になる受信パケットが破棄される。このようにすれば、リセットにより不要になる受信パケット(リセットの影響を受ける受信パケット)に対して、無駄なパケット処理が行われるのを防止でき、リセット処理に要する時間を大幅に短縮化できる。
【0009】
なお、キューは複数設けることが望ましいが、1つでもよい。また、パケット処理手段が行う受信パケットの処理としては、例えば、後段の処理手段(要求実行手段等)に受信パケットを渡すなどの処理が考えられる。また、不要な受信パケットを破棄する処理としては、キューをクリアする処理等が考えられるが、受信パケットを個別的に破棄してもよい。
【0010】
また本発明は、前記キューとして複数のキューが用意され、前記パケット解析手段が、解析した受信パケットを前記複数のキューの中のいずれかのキューに格納し、前記パケット破棄手段が、処理した受信パケットがリセットを指示するパケットであった場合には、リセットにより不要になる受信パケットが格納されているキューをクリアすることを特徴とする。
【0011】
このようにすれば、リセットにより不要になる受信パケットをひとまとめに破棄できるため、受信パケットを破棄する処理を大幅に効率化できる。
【0012】
なお、複数のキューとしては、その各々が、受信パケットを渡す後段の処理手段(要求実行手段等)に対応したキューを設けることが望ましい。
【0013】
また本発明は、前記パケット処理手段から受信パケットを受け、他のノードからの要求を実行する第1の要求実行手段と、前記パケット処理手段から受信パケットを受け、他のノードからの要求を実行すると共に、前記第1の要求実行手段がリセットされると自身もリセットされる関係にある第2の要求実行手段とを含み、前記パケット解析手段が、前記第1の要求実行手段に渡すべき受信パケットについては第1のキューに格納し、前記第2の要求実行手段に渡すべき受信パケットについては第2のキューに格納し、前記パケット処理手段が、前記第1のキューに格納されている受信パケットを、前記第2のキューに格納されている受信パケットよりも優先して処理することを特徴とする。
【0014】
このようにすれば、第1の要求実行手段に渡すべき受信パケットが優先的に処理されるようになる。従って、第1の要求実行手段がリセットされるとリセットされる関係にある第2の要求実行手段の受信パケットが、無駄に処理されてしまう事態を防止でき、リセット処理に要する時間を短縮化できる。
【0015】
なお、第1、第2の要求実行手段としては例えばSBP−2におけるマネージメントエージェントやフェッチエージェントが考えられるが、本発明は、これに限定されない。
【0016】
また本発明は、前記パケット破棄手段が、処理した受信パケットが前記第1の要求実行手段のリセットを指示するパケットであった場合には、前記第1、第2のキューの両方をクリアすることを特徴とする。
【0017】
このようにすれば、処理が不要な第2の要求実行手段の受信パケットが、ひとまとめに破棄されるようになるため、処理の効率化を図れる。
【0018】
また本発明は、前記第2の要求実行手段が、上層のデバイスのコマンド制御要求を実行する第3の要求実行手段と、データ転送要求を実行する第4の要求実行手段とを含み、前記パケット解析手段が、前記第3の要求実行手段に渡すべき受信パケットについては第3のキューに格納し、前記第4の要求実行手段に渡すべき受信パケットについては第4のキューに格納し、前記パケット処理手段が、前記第3のキューに格納されている受信パケットを、前記第4のキューに格納されている受信パケットよりも優先して処理することを特徴とする。
【0019】
このようにすれば、第3の要求実行手段に渡すべき受信パケットを優先的に処理できるようになり、データ転送処理中に、デバイスのコマンド制御要求を割り込ませることが可能になる。
【0020】
また本発明は、バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、自ノードのデータバッファに書き込まれた受信パケットを解析し、解析した受信パケットをキューに格納し、データバッファ上の受信パケットが無くなるまで受信パケットの解析及びキューへの格納を繰り返すパケット解析手段と、データバッファ上の受信パケットが無くなったところでキューに格納された受信パケットを処理するパケット処理手段と、ノードのトポロジ情報をクリアするリセットが発生した場合には、前記リセットの発生前の受信パケットを破棄するパケット破棄手段とを含むことを特徴とする。
【0021】
本発明によれば、解析した受信パケットが直ぐには処理されずに、キューに格納される。そして、データバッファ上の受信パケットが無くなったところで、キューに格納された受信パケットの処理が開始される。そして、ノードのトポロジ情報をクリアするリセットが発生すると、リセットの発生前の受信パケットが破棄される。従って、リセット発生前に受信したパケットに対して、無駄なパケット処理が行われるのを防止でき、リセット処理に要する時間を大幅に短縮化できる。
【0022】
また本発明は、前記パケット破棄手段が、ノードのトポロジ情報をクリアするリセットが発生した場合には、受信パケットが格納されているキューをクリアすることを特徴とする。
【0023】
このようにすれば、リセット発生前の受信パケットをひとまとめに破棄できるため、処理の効率化を図れる。
【0024】
なお、キューをクリアするか否かの判断は、キューに受信パケットを格納する毎に行ってもよいし、全ての受信パケットがキューに格納された後に行ってもよい。
【0025】
なお、ノードのトポロジ情報をクリアする前記リセットは、IEEE1394の規格において定義されるバスリセットであることが望ましい。
【0026】
また本発明では、IEEE1394の規格に準拠したデータ転送を行うことが望ましい。
【0027】
また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して相手ノードから受信したデータに所与の処理を施す装置と、処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする。また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して相手ノードに送信するデータに所与の処理を施す装置と、処理が施されるデータを取り込むための装置とを含むことを特徴とする。
【0028】
本発明によれば、データ転送を制御するファームウェア等の処理負担を軽減できるため、電子機器の低コスト化、処理の高速化などを図ることができる。また、リセットの発生によりシステム全体の処理がストールしてしまうなどの事態を防止できるため、電子機器の信頼性を高めることができる。
【0029】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【0030】
1.IEEE1394
まず、IEEE1394について簡単に説明する。
【0031】
1.1 概要
IEEE1394(IEEE1394−1995、P1394.a)では100〜400Mbpsの高速なデータ転送が可能となっている(P1394.bでは800〜3200Mbps)。また、転送速度が異なるノードをバスに接続することも許される。
【0032】
各ノードはツリー状に接続されており、1つのバスに最大で63個のノードが接続可能になっている。なお、バスブリッジを利用すれば約64000個のノードを接続することも可能である。
【0033】
IEEE1394では、パケットの転送方式として非同期転送とアイソクロナス転送が用意されている。ここで非同期転送は、信頼性が要求されるデータの転送に好適な転送方式であり、アイソクロナス転送は、リアルタイム性が要求される動画像や音声などのデータの転送に好適な転送方式である。
【0034】
1.2 層構造
IEEE1394の層構造(プロトコル構成)を図1に示す。
【0035】
IEEE1394のプロトコルは、トランザクション層、リンク層、物理層により構成される。また、シリアルバスマネージメントは、トランザクション層、リンク層、物理層をモニターしたり制御したりするものであり、ノードの制御やバスのリソース管理のための種々の機能を提供する。
【0036】
トランザクション層は、上位層にトランザクション単位のインターフェース(サービス)を提供し、下層のリンク層が提供するインターフェースを通して、リードトランザクション、ライトトランザクション、ロックトランザクション等のトランザクションを実施する。
【0037】
ここで、リードトランザクションでは、応答ノードから要求ノードにデータが転送される。一方、ライトトランザクションでは、要求ノードから応答ノードにデータが転送される。またロックトランザクションでは、要求ノードから応答ノードにデータが転送され、応答ノードがそのデータに処理を施して要求ノードに返信する。
【0038】
リンク層は、アドレッシング、データチェック、パケット送受信のためのデータフレーミング、アイソクロナス転送のためのサイクル制御などを提供する。
【0039】
物理層は、リンク層により使用されるロジカルシンボルの電気信号への変換や、バスの調停や、バスの物理的インターフェースを提供する。
【0040】
1.3 SBP−2
さて、図2に示すように、IEEE1394のトランザクション層の一部の機能を含む上位のプロトコルとして、SBP−2(Serial Bus Protocol−2)と呼ばれるプロトコルが提案されている。
【0041】
ここでSBP−2は、SCSIのコマンドセットをIEEE1394のプロトコル上で利用可能にするために提案されたものである。このSBP−2を用いれば、既存のSCSI規格の電子機器で使用されていたSCSIのコマンドセットに最小限の変更を加えて、IEEE1394規格の電子機器に使用できるようになる。従って、電子機器の設計や開発を容易化できる。また、SCSIのコマンドだけではなく、デバイス固有のコマンドもカプセル化して利用できるため、非常に汎用性が高い。
【0042】
図3に示すようにSBP−2では、まず、イニシエータ(例えばパーソナルコンピュータ)により作成されたログインORB(Operation Request Block)を用いてログイン処理が行われる(ステップT1)。次に、ダミーORBを用いてフェッチエージェントの初期化が行われる(ステップT2)。そして、コマンドブロックORB(ノーマルコマンドORB)を用いてコマンド処理が行われ(ステップT3)、最後に、ログアウトORBを用いてログアウト処理が行われる(ステップT4)。
【0043】
ここで、ステップT3のコマンド処理においては、図4のA1に示すように、イニシエータがライト要求パケットを転送して(ライト要求トランザクションを発行して)、ターゲットのドアベルレジスタをリングする。すると、A2に示すように、ターゲットがリード要求パケットを転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータが作成したORB(コマンドブロックORB)が、ターゲットのデータバッファにフェッチされる。そして、ターゲットは、フェッチされたORBに含まれるコマンドを解析する。
【0044】
そして、ORBに含まれるコマンドがSCSIのライトコマンドであった場合には、A3に示すように、ターゲットがリード要求パケットをイニシエータに転送し、イニシエータが対応するリード応答パケットを返す。これにより、イニシエータのデータバッファに格納されているデータがターゲットに転送される。そして、例えばターゲットがプリンタであった場合には、転送されたデータがプリンタエンジンにより印刷される。
【0045】
一方、ORBに含まれるコマンドがSCSIのリードコマンドであった場合には、図5のB1に示すように、ターゲットは、一連のライト要求パケットをイニシエータに転送する。これにより、例えばターゲットがスキャナであった場合には、スキャナエンジンにより取得されたスキャンデータが、イニシエータのデータバッファに転送されることになる。
【0046】
このSBP−2によれば、ターゲットは、自身が都合の良いときに要求パケットを転送して(トランザクションを発行して)、データを送受信できる。従って、イニシエータとターゲットが同期して動く必要がなくなるため、データ転送効率を高めることができる。
【0047】
なお、IEEE1394の上位プロトコルとしては、SBP−2以外にも、FCP(Function Control Protocol)と呼ばれるプロトコルなども提案されている。
【0048】
1.4 バスリセット
IEEE1394では、電源が投入されたり、途中でデバイスの抜き差しが発生すると、バスリセットが発生する。即ち、各ノードは、ポートの電圧変化を監視している。そして、バスに新たなノードが接続されるなどしてポートの電圧に変化が生じると、この変化を検知したノードは、バス上の他のノードに対して、バスリセットが発生したことを知らせる。また、各ノードの物理層は、バスリセットが発生したことをリンク層に伝える。
【0049】
そして、このようにバスリセットが発生すると、ノードIDなどのトポロジ情報がクリアされる。そして、その後、トポロジ情報が自動的に再設定される。即ち、バスリセット後、ツリー識別、自己識別が行われる。その後、アイソクロナスリソースマネージャ、サイクルマスタ、バスマネージャ等の管理ノードが決定される。そして、通常のパケット転送が再開される。
【0050】
このようにIEEE1394では、バスリセット後にトポロジ情報が自動的に再設定されるため、電子機器のケーブルを自由に抜き差しできるようになり、いわゆるホットプラグを実現できる。
【0051】
なお、トランザクションの途中でバスリセットが発生した場合には、そのトランザクションはキャンセルされる。そして、キャンセルされたトランザクションを発行した要求ノードは、トポロジ情報が再設定された後に、要求パケットを再度転送する。また、応答ノードは、バスリセットによりキャンセルされたトランザクションの応答パケットを要求ノードに返送してはならない。
【0052】
2.全体構成
次に、本実施形態のデータ転送制御装置の全体構成例について図6を用いて説明する。なお、以下では、イニシエータ(相手ノード)との間でデータ転送を行うターゲット(自ノード)がプリンタである場合について例にとり説明するが、本発明はこれに限定されない。
【0053】
本実施形態のデータ転送制御装置10は、PHYデバイス12(物理層のデバイス)、リンクデバイス14(リンク層のデバイス)、CPU16(プロセッサ)、データバッファ18(記憶手段)、ファームウェア20(処理手段)を含む。なお、PHYデバイス12、リンクデバイス14、CPU16、データバッファ18は、任意の構成要素であり、本実施形態のデータ転送制御装置10は、これらの構成要素を全て含む必要はない。
【0054】
PHYデバイス12は、図1の物理層のプロトコルをハードウェアにより実現するための回路であり、リンクデバイス14により使用されるロジカルシンボルを電気信号に変換する機能を有する。
【0055】
リンクデバイス14は、図1のリンク層のプロトコルやトランザクション層のプロトコルの一部をハードウェアにより実現するための回路であり、ノード間でのパケット転送のための各種サービスを提供する。
【0056】
CPU16は、装置全体の制御やデータ転送の制御を行うものである。
【0057】
データバッファ18は、転送データ(パケット)を一時的に格納するバッファであり、SRAM、SDRAM、或いはDRAMなどのハードウェアにより構成される。なお、本実施形態では、データバッファ18は、特には限定されないがランダムアクセス可能なパケット記憶手段として機能する。
【0058】
ファームウェア20は、CPU16上で動作する種々の処理ルーチン(処理モジュール)を含むプログラムであり、トランザクション層のプロトコルは、このファームウェア20と、ハードウェアであるCPU16等により実現される。
【0059】
なお、イニシエータであるパーソナルコンピュータ100が含むデバイスドライバ102は、周辺機器を管理制御するための種々の処理ルーチンを含むプログラムである。このプログラムは、情報記憶媒体110(FD、CD−ROM、DVD、ROM)を利用してパーソナルコンピュータ100にインストールされる。
【0060】
ここで、デバイスドライバ102のプログラムは、ホストシステムが有する情報記憶媒体(ハードディスク、磁気テープ等)からインターネットなどのネットワークを介してダウンロードし、パーソナルコンピュータ100にインストールするようにしてもよい。
【0061】
ファームウェア20(F/W)は、コミュニケーション部30(COM)、マネージメントエージェント40(MNG)、フェッチエージェント50(FCH1)、フェッチエージェント60(FCH2)、プリントタスク部70(PRT)を含む。
【0062】
ここで、コミュニケーション部30は、リンクデバイス14などのハードウェアとの間のインターフェースとして機能する処理モジュールである。
【0063】
マネージメントエージェント40(第1の要求実行手段)は、ログイン、リコネクト、ログアウト、リセット等の管理を行う処理モジュールである。例えばイニシエータがターゲットにログインを要求した場合には、まず、このマネージメントエージェント40が、このログイン要求を受け付けることになる。
【0064】
フェッチエージェント50、60(コマンドブロックエージェント。第2の要求実行手段)は、イニシエータからの要求を実行するための処理モジュールであり、より具体的には、コマンドブロックORBが含むコマンドを実行する。フェッチエージェント50、60は、単一の要求しか扱うことができないマネージメントエージェント40と異なり、イニシエータからの要求により自身がフェッチしたORBのリンクリストも扱うことができる。
【0065】
プリンタスク部70は、プリンタエンジンやスキャナエンジン(上層のデバイス)との間でDMA転送を行うための処理モジュールである。
【0066】
なお、フェッチエージェント50(第3(第2)の要求実行手段)は、後段のプリンタエンジンやスキャナエンジン(上層のデバイス)のコマンド制御のための処理モジュールであり、フェッチエージェント60(第4(第2)の要求実行手段)は、後段のプリンタエンジンやスキャナエンジンとの間のデータ転送のための処理モジュールである。
【0067】
例えばプリンタエンジンとのデータ転送中にインク残量を調べたい場合に、フェッチエージェントが1つしかないと、ORBのリンクリストによるデータ転送が全て完了するまで、インク残量をチェックできない。
【0068】
本実施形態では、互いに独立なフェッチエージェントを2つ設けている(3つ以上でもよい)。そして、コマンド制御用のフェッチエージェント50の処理の優先度を、データ転送用のフェッチエージェント60の処理の優先度よりも高くしている。より具体的には、後述するように、コマンド制御用のフェッチエージェント50に渡す受信パケットを、データ転送用のフェッチエージェント60に渡す受信パケットよりも優先して処理するようにしている。
【0069】
このようにすることで、ORBのリンクリストによるデータ転送処理の間に、インク残量チェックなどのプリンタのコマンド制御処理を割り込ませることできる。従って、データ転送処理が終わるのを長時間待つことなく、インク残量をチェックできるようになり、データ転送に影響を与えることなく、デバイスのコマンド制御ができるようになる。
【0070】
さて、コミュニケーション部30は、パケット解析部32、パケット処理部34、パケット破棄部36を含む。
【0071】
ここで、パケット解析部32は、パーソナルコンピュータ100からIEEE1394バス、PHYデバイス12、リンクデバイス14を介してデータバッファ18に書き込まれた受信パケットを解析する。そして、解析した受信パケットをキューに格納する。
【0072】
なお、このキューは、例えばCPU16のローカルメモリ上に確保することができる。また、後述するように複数のキューがある場合には、パケット解析部32は、解析結果に応じたキューに受信パケットを格納する。
【0073】
そして、パケット解析部32は、受信パケットをキューに格納すると、次の受信パケットを解析する。そして、データバッファ18上の受信パケットが無くなるまで、受信パケットの解析及びキューへの格納を繰り返す。
【0074】
パケット処理部34は、データバッファ18上の受信パケットが無くなったところで、キューに格納された受信パケットを処理する。より具体的には、キューに格納された受信パケットをマネージメントエージェント40(MNG)、フェッチエージェント50(FCH1)、或いはフェッチエージェント60(FCH2)に渡す。例えば、MNG用のキュー、FCH1用のキュー、FCH2用のキューというように複数のキューがある場合には、MNG用のキューに格納される受信パケットについてはマネージメントエージェント40に渡す。また、FCH1用、FCH2用のキューに格納される受信パケットについては、各々、フェッチエージェント50、60に渡す。
【0075】
パケット破棄部36は、パケット処理部34により処理された受信パケットが、エージェントリセット、ターゲットリセット、リセットスタートなどのリセットを指示するパケットであった場合には、キューに格納された受信パケットのうちリセットにより不要になる受信パケット(リセットの影響を受ける受信パケット)を破棄する処理を行う。そして、例えばキューが複数ある場合には、リセットされるエージェントのキューをクリアすることで、受信パケットをひとまとめに破棄する。
【0076】
また、パケット破棄部36は、バスリセット(広義にはノードのトポロジ情報をクリアするリセット)が発生した場合には、バスリセット発生前に受信したパケットを破棄する処理を行う。
【0077】
3.本実施形態の特徴
3.1 リセット時の不要パケットの破棄
さて、SBP−2においては、ターゲットにエラーが発生した場合に、イニシエータはターゲットに対してリセットを指示するパケット(以下、リセットパケットと呼ぶ)を転送できる。そして、この場合に、SBP−2ではレベルの異なる種々のリセットが用意されている。例えば、リセットスタートは最も強いレベルのリセットであり、ノード状態が全てリセットされる。また、アボートタスクやアボートタスクセットでは、タスクやタスクのセットがリセットされ、ターゲットリセットではターゲットがリセットされる。また、エージェントリセットでは、フェッチエージェントのみがリセットされる。
【0078】
なお、リセットスタート、エージェントリセットは、イニシエータが所定のレジスタに所定の情報をライトすることによりターゲットに伝えられ、アボートタスク、アボートタスクセット、ターゲットリセットは、イニシエータから転送されるマネージメントORBを用いてターゲットに伝えられる。
【0079】
このように、イニシエータからリセットパケットが転送されてくると、リセットにより不要になるパケットについては破棄する必要がある。そして、この場合に、図7の比較例では、受信パケットを解析した後に直ぐにパケット処理(エージェントに受信パケットを渡す処理等)を行う(ステップT1、T2)。次に、受信パケットがリセットパケットか否かを判断し、リセットパケットであれば受信パケットを破棄する処理を行う(ステップT3、T4)。そして、以上の処理を、受信パケットが無くなるまで繰り返す(ステップT5)。
【0080】
しかしながら、この比較例では、リセットにより破棄される運命にある受信パケットに対しても、パケット処理が行われてしまう。従って、リセット処理が非常に非効率になる。
【0081】
特に、プリンタやスキャナやCD−RWなどの周辺機器に本実施形態のデータ転送制御装置を組み込んだ場合、製品コストの制約から、安価で処理能力が低いCPUが使用される場合が多い、従って、そのCPU上で動作するファームウェアもその制約の影響を受けて、処理速度が遅くなってしまう。このため、受信パケットの処理が間に合わなくなり、多数の未処理の受信パケットが自ノード(ターゲット)のデータバッファ上に存在するようになる。従って、リセット処理時間の増加の問題は更に深刻なものになる。
【0082】
そこで本実施形態では図8のC1、C2に示すように、ターゲットのデータバッファに書き込まれた受信パケットを解析した後、解析した受信パケットを直ぐには処理せずにキューに格納する。そして、C3に示すように、データバッファ上の受信パケットが無くなったところで、キューに格納された受信パケットを処理する。そして、C4に示すように、処理した受信パケットがエージェントリセット等のリセットパケットであった場合には、リセットにより不要になる受信パケット(リセットの影響を受ける受信パケット)を破棄する。
【0083】
このようにすれば、リセットにより、パケット処理を行うまでもなく不要になる受信パケットについては、パケット処理を行わないで済むようになる。従って、全ての受信パケットに対してパケット処理が行われる図7の比較例に比べて、リセット処理に要する時間を大幅に短縮化できる。この結果、システム全体の処理がリセット処理によりストールしてしまう事態を防止できると共に、ファームウェアの処理負担も軽減化できる。
【0084】
更に、本実施形態では、受信パケットを格納するキューを複数用意し、解析した受信パケットを、複数のキューの中のいずれかに仕分けして格納する。そしてリセットが発生した場合には、リセットにより不要になる受信パケットが格納されているキューをクリアする。
【0085】
より具体的には、図9(A)に示すように、マネージメントエージェントに渡す受信パケットを格納するためのMNGキューと、フェッチエージェントに渡す受信パケットを格納するためのFCHキューを用意する。そして、図9(A)、(B)に示すように、受信パケットの解析結果に応じたキューに受信パケットを格納する。即ち、マネージメントエージェントに渡すパケットについてはMNGキューに格納し、フェッチエージェントに渡すパケットについてはFCHキューに格納する。
【0086】
そして、図9(C)に示すように、例えば受信パケットがエージェントリセットであると判明した場合(エージェントリセットレジスタへのライトパケットであると判明した場合)には、FCHキューをクリアする。即ち、FCHキューに格納されている受信パケットは、フェッチエージェントに渡すパケットであり、エージェントリセットにより不要になるパケットである。従って、エージェントキュー自体をクリアすることで、これらの不要パケットをひとまとめにして破棄できる。
【0087】
このように、キューのクリアにより受信パケットを破棄するようにすれば、不要な受信パケットをひとまとめに破棄できるようになり、受信パケットを破棄する処理を大幅に効率化できる。これにより、リセット処理を更に高速化できるようになる。
【0088】
また、本実施形態では、第1のエージェントがリセットされると第2のエージェントがリセットされるという関係がある場合に、第1のエージェント用のキューに格納されている受信パケットを、第2のエージェント用のキューに格納されている受信パケットよりも優先して処理するようにしている。
【0089】
より具体的には、図10(A)に示すように、マネージメントエージェント(第1の要求実行手段)用のMNGキューと、フェッチエージェント(第2の要求実行手段)用のFCHキューがある場合には、MNGキューに格納される受信パケットを優先的に処理する(フェッチエージェントは、マネージメントエージェントがリセットされると自身もリセットされる関係にある)。即ち、MNGキューに格納されている全ての受信パケットについてのパケット処理(マネージメントエージェントにパケットを渡す等の処理)が完了した後に、図10(B)に示すように、FCHキューに格納されている受信パケットのパケット処理を開始する。
【0090】
このようにすれば、図10(C)に示すように、例えばMNGキューに格納される受信パケットの中にリセットスタートを指示するパケットがあった場合に、MNGキューとFCHキューの両方をクリアできる。これにより、FCHキューに格納される受信パケットは破棄され、これらの受信パケットに対して無駄なパケット処理を行わなくて済むようになる。この結果、リセット処理の更なる効率化を図れ、リセット処理を高速に完了できるようになる。
【0091】
なお、本実施形態では図11(A)に示すように、フェッチエージェント(第2の要求実行手段)として、コマンド制御用のフェッチエージェントFCH1(第3の要求実行手段)とデータ転送用のフェッチエージェントFCH2(第4の要求実行手段)を用意している。そして、コマンド制御用のフェッチエージェントFCH1に渡すべき受信パケットについてはFHC1キューに格納し、データ転送用のフェッチエージェントFCH2に渡すべき受信パケットについてはFHC2キューに格納する。そして、図11(A)に示すように、FCH1キューに格納されているコマンド制御用の受信パケットを優先して処理し、FCH1キューの全ての受信パケットについてのパケット処理が完了した後に、図11(B)に示すように、FCH2キューに格納されている受信パケットのパケット処理を開始する。
【0092】
このようにすれば、フェッチエージェントFCH1による処理が優先されるようになり、フェッチエージェントFCH2によるデータ転送処理の間に、フェッチエージェントFCH1によるコマンド制御処理を容易に割り込ませることができる。従って、印刷が完了するのを待つことなく、インク残量を調べることなどが可能になる。
【0093】
3.2 バスリセット時の不要パケットの処理
IEEE1394においては、バスに電子機器が新たに接続されたり、バスから電子機器が取り外されたりすると、バスリセットが発生する。そして、バスリセットが発生すると、ノードのトポロジ情報がクリアされ、バスリセット発生時点で未完了であったトランザクションは全てキャンセルされる。このため、バスリセット発生前に受信したパケットは全て無効になる。
【0094】
ところが、前述のように、データ転送制御装置が組み込まれる周辺機器で動作するCPUは処理能力が低い。このため、このCPU上で動作するファームウェアも高速に受信パケットを処理できず、多数の未処理の受信パケットがデータバッファ上に存在するようになる。従って、バスリセットが発生した場合には、これらの多数の未処理の受信パケットの中から、バスリセット発生前のパケットを区別して破棄する処理が必要になる。従って、ファームウェアの処理負荷も過大になる。
【0095】
そこで本実施形態では、図12(A)に示すように、ターゲットのデータバッファに書き込まれた受信パケットを解析した後、解析した受信パケットを直ぐには処理せずにキューに格納する。そして、データバッファ上の受信パケットが無くなったところでキューに格納された受信パケットを処理する。そして、バスリセットが発生した場合には、バスリセット発生前に受信したパケットを破棄するようにする。
【0096】
より具体的には、図12(B)に示すように、受信パケットのキューへの格納中にIEEE1394のバス上でバスリセットが発生した場合には、受信パケットのキューをクリアして、バスリセット発生前の受信パケットを破棄する(この場合には、データバッファ上の受信パケットも破棄することが望ましい)。また、図12(C)に示すように、全ての受信パケットをキューに格納した後、受信パケットの処理中に、バスリセットが発生した場合にも、受信パケットのキューをクリアして、受信パケットを破棄する。
【0097】
以上のようにすれば、バスリセットにより、パケット処理を行うまでもなく不要になる受信パケットについては、パケット処理を行わないで済むようになる。従って、全ての受信パケットに対してパケット処理が行われる図7の比較例に比べて、バスリセット処理に要する時間を大幅に短縮化できる。この結果、システム全体の処理がバスリセット処理によりストールしてしまう事態を防止できると共に、ファームウェアの処理負担も軽減化できる。
【0098】
また、キューのクリアにより受信パケットを破棄すれば、バスリセット発生前の多数の受信パケットをひとまとめに破棄できるため、受信パケットを破棄する処理を更に効率化できる。特に、CPUの処理能力の低さに起因して多数の未処理の受信パケットがデータバッファ上に存在するような場合には、キューのクリアにより受信パケットを破棄する本実施形態の手法は、処理の効率化に非常に効果的なものとなる。
【0099】
4.本実施形態の処理
次に、本実施形態の詳細な処理例について図13、図14のフロチャートを用いて説明する。
【0100】
CPU(或いはリンクデバイス)からの割り込みが発生すると、その割り込み要因を解析し、解析が済んだ割り込み要因をクリアする(ステップS1)。ここで割り込み要因としては、パケット受信の割り込み、バスリセット発生の割り込み、プリンタへのDMA転送終了の割り込み、CPUのタイマ割り込みなどがある。
【0101】
次に、解析した割り込み要因が、パケット受信の割り込みか否かを判断し(ステップS2)、パケット受信の割り込みではなかった場合には、バスリセット発生の割り込みか否かを判断する(ステップS3)。そして、バスリセット発生の割り込みであった場合には、エージェントキューの全てと送信キューをクリアし(ステップS4。図12(B)、(C)参照)、バスリセット発生前の受信パケットを破棄する。
【0102】
次に、CPUからの割り込み要因が存在するか否かを判断し(ステップS5)、存在する場合には、その割り込み要因を解析し、解析が済んだ割り込み要因をクリアする(ステップS6)。次に、解析が済んでいない未処理の割り込み要因が、まだ存在するか否かを判断し(ステップS7)、存在する場合にはステップS2に戻り、存在しない場合には割り込み処理を終了する。
【0103】
ステップS2でパケット受信の割り込みが発生したと判断した場合には、受信パケットが、自身が転送した要求パケットに対するイニシエータの応答パケットか否かを判断する(図14のステップS8)。そして、応答パケットであった場合には、応答パケットに関する処理(データバッファにおける応答パケットの格納場所のポインタ制御等)を行う(ステップS9)。
【0104】
次に、パケットの解析結果に基づいて、受信パケットがエージェントに渡すパケットか否かを判断する(ステップS10)。そして、エージェントに渡すパケットであった場合には、図9(A)、(B)で説明したように、受信パケットを、対応するエージェントのキューに格納する(ステップS11)。例えば、マネージメントエージェントに渡す受信パケットはMNGキューに格納し、フェッチエージェントに渡す受信パケットはFCHキューに格納する。
【0105】
次に、バスリセットが発生しているか否かを判断する(ステップS12)。そして、バスリセットが発生している場合には、図12(B)で説明したように、エージェントキューの全てと送信キューをクリアする(ステップS22)。一方、発生していない場合には、キューに格納すべき受信パケットがデータバッファ上にまだ存在しているか否かを判断し(ステップS13)、存在している場合にはステップS11に戻る。そして、データバッファ上の受信パケットが無くなるまで、ステップS11、S12、S13の処理を繰り返す。
【0106】
次に、キューへの受信パケットの格納後、バスリセットが発生しているか否かを判断する(ステップS14)。そして、発生している場合には、図12(C)で説明したように、エージェントキューの全てと送信キューをクリアする(ステップS22)。一方、発生してない場合には、図8のC3に示すように、キューに格納されている受信パケットに対する処理(エージェントに渡す処理等)があるか否かを判断する(ステップS15)。そして、処理がある場合には、図10(A)で説明したように、優先順位の高いエージェントキュー(例えばMNGキュー)から処理を行う(ステップS16)。
【0107】
次に、受信パケットがリセットパケット(リセットを指示するパケット)か否かを判断する(ステップS17)。例えば、ターゲットリセットの場合には、エージェントがORBの内容を解析することで、リセットパケットか否かを判断できる。また、エージェントリセットやリセットスタートの場合には、エージェントがパケットのライトアドレスを解析することで、リセットパケットか否かを判断できる。
【0108】
受信パケットがリセットパケットであった場合には、図9(C)や図10(C)で説明したように、リセットにより影響を受けるエージェントキューをクリアする(ステップS18)。例えば、マネージメントエージェントのリセットの場合には、MNGキューとFCHキューの両方をクリアする。一方、フェッチエージェントのリセットの場合には、FCHキューのみをクリアする。
【0109】
次に、データバッファ上の送信バッファに空きがあり、且つ、送信要求が存在するか否かを判断し(ステップS19)、存在する場合にはパケット送信を行う(ステップS20)。次に、バスリセットが発生しているか否かを判断し(ステップS21)、発生している場合には、エージェントキューの全てと送信キューをクリアする(ステップS22)。一方、発生してない場合には、図13のステップS3に戻る。
【0110】
そして、ステップS3〜S7、S2、S8〜S21の処理を繰り返して、キューに格納されている受信パケットを1つずつ順次処理して行く。即ち、まず、優先順位が最も高いキュー(例えばMNGキュー)に格納されている受信パケットを1つずつ順次処理して行き、全ての受信パケットに対する処理が完了した場合には、2番目に優先順位が高いキュー(例えばFCH1キュー)に格納されている受信パケットを処理する。そして、そのキューの全ての受信パケットの処理が完了すると、3番目に優先順位が高いキュー(例えばFCH2キュー)に格納されている受信パケットを処理する。以上のようにして、キューに格納されている全ての受信パケットに対して処理を行う。
【0111】
5.電子機器
次に、本実施形態のデータ転送制御装置を含む電子機器の例について説明する。
【0112】
例えば図15(A)に電子機器の1つであるプリンタの内部ブロック図を示し、図16(A)にその外観図を示す。CPU(マイクロコンピュータ)510はシステム全体の制御などを行う。操作部511はプリンタをユーザが操作するためのものである。ROM516には、制御プログラム、フォントなどが格納され、RAM518はCPU510のワーク領域として機能する。表示パネル519はプリンタの動作状態をユーザに知らせるためのものである。
【0113】
PHYデバイス502、データ転送制御装置500を介して、パーソナルコンピュータなどの相手ノードから送られてきた印字データは、バス504を介して印字処理部(プリンタエンジン)512に直接送られる。そして、印字データは、印字処理部512にて所与の処理が施され、プリントヘッダなどからなる印字部(データを出力するための装置)514により紙に印字されて出力される。
【0114】
図15(B)に電子機器の1つであるスキャナの内部ブロック図を示し、図16(B)にその外観図を示す。CPU520はシステム全体の制御などを行う。操作部521はスキャナをユーザが操作するためのものである。ROM526には制御プログラムなどが格納され、RAM528はCPU520のワーク領域として機能する。
【0115】
光源、光電変換器などからなる画像読み取り部(データを取り込むための装置)522により原稿の画像が読み取られ、読み取られた画像のデータは画像処理部(スキャナエンジン)524により処理される。そして、処理後の画像データがバス505を介してデータ転送制御装置500に直接送られる。データ転送制御装置500は、この画像データにヘッダなどを付加することでパケットを生成し、PHYデバイス502を介してパーソナルコンピュータなどの相手ノードに送信する。
【0116】
図15(C)に電子機器の1つであるCD−RWドライブの内部ブロック図を示し、図16(C)にその外観図を示す。CPU530はシステム全体の制御などを行う。操作部531はCD−RWをユーザが操作するためのものである。ROM536には制御プログラムなどが格納され、RAM538はCPU530のワーク領域として機能する。
【0117】
レーザ、モータ、光学系などからなる読み取り&書き込み部(データを取り込むための装置又はデータを記憶するための装置)533によりCD−RW532から読み取られたデータは、信号処理部534に入力され、エラー訂正処理などの所与の信号処理が施される。そして、信号処理が施されたデータが、バス506を介してデータ転送制御装置500に直接送られる。データ転送制御装置500は、このデータにヘッダなどを付加することでパケットを生成し、PHYデバイス502を介してパーソナルコンピュータなどの相手ノードに送信する。
【0118】
一方、PHYデバイス502、データ転送制御装置500を介して、相手ノードから送られてきたデータは、バス506を介して信号処理部534に直接送られる。そして、信号処理部534によりこのデータに所与の信号処理が施され、読み取り&書き込み部533によりCD−RW532に記憶される。
【0119】
なお、図15(A)、(B)、(C)において、CPU510、520、530の他に、データ転送制御装置500でのデータ転送制御のためのCPUを別に設けるようにしてもよい。
【0120】
また、図15(A)、(B)、(C)ではRAM501(データバッファに相当)がデータ転送制御装置500の外部に設けられているが、RAM501をデータ転送制御装置500に内蔵させてもよい。
【0121】
本実施形態のデータ転送制御装置を電子機器に用いれば、データ転送制御装置や電子機器に何らかのエラーが発生して、データ転送制御装置がリセットされた場合にも、短時間で正常状態に復帰できるようになる。また、バスに新たな電子機器が接続されてバスリセットが発生した場合にも、短い時間でバスリセット状態から復帰でき、システム全体がストールしてしまう事態を防止できる。
【0122】
また本実施形態のデータ転送制御装置を電子機器に用いれば、高速なデータ転送が可能になる。従って、ユーザがパーソナルコンピュータなどによりプリントアウトの指示を行った場合に、少ないタイムラグで印字が完了するようになる。また、スキャナへの画像取り込みの指示の後に、少ないタイムラグで読み取り画像をユーザは見ることができるようになる。また、CD−RWからのデータの読み取りや、CD−RWへのデータの書き込みを高速に行うことができるようになる。
【0123】
また本実施形態のデータ転送制御装置を電子機器に用いることで、CPU上で動作するファームウェアの処理負担が軽減され、安価なCPUや低速のバスを用いることが可能になる。更に、データ転送制御装置の低コスト化、小規模化を図れるため、電子機器の低コスト化、小規模化も図れるようになる。
【0124】
なお本実施形態のデータ転送制御装置を適用できる電子機器としては、上記以外にも例えば、種々の光ディスクドライブ(CD−ROM、DVD)、光磁気ディスクドライブ(MO)、ハードディスクドライブ、TV、VTR、ビデオカメラ、オーディオ機器、電話機、プロジェクタ、パーソナルコンピュータ、電子手帳、ワードプロセッサなど種々のものを考えることができる。
【0125】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【0126】
例えば、本発明のデータ転送制御装置の構成は、図6に示す構成が特に望ましいが、これに限定されるものではない。
【0127】
また、受信パケットを破棄する手法も、本実施形態で説明した手法が特に望ましいが、これに限定されるものではない。
【0128】
また、本実施形態では、2つ又は3つのキューを設ける場合について説明したが、4つ以上のキューを設けるようにしてもよい。
【0129】
また、本発明は、IEEE1394規格でのデータ転送に適用されることが特に望ましいが、これに限定されるものではない。例えばIEEE1394と同様の思想に基づく規格やIEEE1394を発展させた規格におけるデータ転送にも本発明は適用できる。
【図面の簡単な説明】
【図1】IEEE1394の層構造について示す図である。
【図2】SBP−2について説明するための図である。
【図3】SBP−2のデータ転送処理の概略について説明するための図である。
【図4】データをイニシエータからターゲットに転送する場合のコマンド処理について説明するための図である。
【図5】データをターゲットからイニシエータに転送する場合のコマンド処理について説明するための図である。
【図6】本実施形態のデータ転送制御装置の構成例を示す図である。
【図7】比較例の処理について説明するためのフローチャートである。
【図8】リセット時の本実施形態の手法について説明するための図である。
【図9】図9(A)、(B)、(C)は、複数のキューを用意し、キューをクリアすることにより、不要なパケットを破棄する手法について説明するための図である。
【図10】図10(A)、(B)、(C)は、優先順位の高いキューを優先的に処理する手法について説明するための図である。
【図11】図11(A)、(B)は、コマンド制御用のフェッチエージェントのキューを優先的に処理する手法について説明するための図である。
【図12】図12(A)、(B)、(C)は、バスリセット時の本実施形態の手法について説明するための図である。
【図13】本実施形態の詳細な処理例を示すフローチャートである。
【図14】本実施形態の詳細な処理例を示すフローチャートである。
【図15】図15(A)、(B)、(C)は、種々の電子機器の内部ブロック図の例である。
【図16】図16(A)、(B)、(C)は、種々の電子機器の外観図の例である。
【符号の説明】
10 データ転送制御装置
12 PHYデバイス
14 リンクデバイス
16 CPU
18 データバッファ
20 ファームウェア(F/W)
30 コミュニケーション部(COM)
32 パケット解析部
34 パケット処理部
36 パケット破棄部
40 マネージメントエージェント(MNG。第1の要求実行手段)
50 フェッチエージェント(FCH1。第3(第2)の要求実行手段)
60 フェッチエージェント(FCH2。第4(第2)の要求実行手段)
70 プリントタスク部(PRT)
100 パーソナルコンピュータ
102 デバイスドライバ
104 データバッファ
110 情報記憶媒体
Claims (11)
- バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
自ノードのデータバッファに書き込まれた受信パケットを解析し、解析した受信パケットをキューに格納し、データバッファ上の受信パケットが無くなるまで受信パケットの解析及びキューへの格納を繰り返すパケット解析手段と、
データバッファ上の受信パケットが無くなったところで、キューに格納された受信パケットを処理するパケット処理手段と、
処理した受信パケットがリセットを指示するパケットであった場合には、キューに格納された受信パケットのうち前記リセットにより不要になる受信パケットを破棄するパケット破棄手段とを含み、
前記キューとして複数のキューが用意され、
前記パケット解析手段が、
解析した受信パケットを前記複数のキューの中のいずれかのキューに格納し、
前記パケット破棄手段が、
処理した受信パケットがリセットを指示するパケットであった場合には、リセットにより不要になる受信パケットが格納されているキューをクリアすることを特徴とするデータ転送制御装置。 - 請求項1において、
前記パケット処理手段から受信パケットを受け、他のノードからの要求を実行する第1の要求実行手段と、
前記パケット処理手段から受信パケットを受け、他のノードからの要求を実行すると共に、前記第1の要求実行手段がリセットされると自身もリセットされる関係にある第2の要求実行手段とを含み、
前記パケット解析手段が、
前記第1の要求実行手段に渡すべき受信パケットについては第1のキューに格納し、前記第2の要求実行手段に渡すべき受信パケットについては第2のキューに格納し、
前記パケット処理手段が、
前記第1のキューに格納されている受信パケットを、前記第2のキューに格納されている受信パケットよりも優先して処理することを特徴とするデータ転送制御装置。 - バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
自ノードのデータバッファに書き込まれた受信パケットを解析し、解析した受信パケットをキューに格納し、データバッファ上の受信パケットが無くなるまで受信パケットの解析及びキューへの格納を繰り返すパケット解析手段と、
データバッファ上の受信パケットが無くなったところで、キューに格納された受信パケットを処理するパケット処理手段と、
処理した受信パケットがリセットを指示するパケットであった場合には、キューに格納された受信パケットのうち前記リセットにより不要になる受信パケットを破棄するパケット破棄手段と、
前記パケット処理手段から受信パケットを受け、他のノードからの要求を実行する第1の要求実行手段と、
前記パケット処理手段から受信パケットを受け、他のノードからの要求を実行すると共に、前記第1の要求実行手段がリセットされると自身もリセットされる関係にある第2の要求実行手段とを含み、
前記パケット解析手段が、
前記第1の要求実行手段に渡すべき受信パケットについては第1のキューに格納し、前記第2の要求実行手段に渡すべき受信パケットについては第2のキューに格納し、
前記パケット処理手段が、
前記第1のキューに格納されている受信パケットを、前記第2のキューに格納されてい る受信パケットよりも優先して処理することを特徴とするデータ転送制御装置。 - 請求項2又は3において、
前記パケット破棄手段が、
処理した受信パケットが前記第1の要求実行手段のリセットを指示するパケットであった場合には、前記第1、第2のキューの両方をクリアすることを特徴とするデータ転送制御装置。 - 請求項2乃至4のいずれかにおいて、
前記第2の要求実行手段が、
上層のデバイスのコマンド制御要求を実行する第3の要求実行手段と、データ転送要求を実行する第4の要求実行手段とを含み、
前記パケット解析手段が、
前記第3の要求実行手段に渡すべき受信パケットについては第3のキューに格納し、前記第4の要求実行手段に渡すべき受信パケットについては第4のキューに格納し、
前記パケット処理手段が、
前記第3のキューに格納されている受信パケットを、前記第4のキューに格納されている受信パケットよりも優先して処理することを特徴とするデータ転送制御装置。 - バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
自ノードのデータバッファに書き込まれた受信パケットを解析し、解析した受信パケットをキューに格納し、データバッファ上の受信パケットが無くなるまで受信パケットの解析及びキューへの格納を繰り返すパケット解析手段と、
データバッファ上の受信パケットが無くなったところでキューに格納された受信パケットを処理するパケット処理手段と、
ノードのトポロジ情報をクリアするリセットが発生した場合には、前記リセットの発生前の受信パケットを破棄するパケット破棄手段とを含み、
前記パケット破棄手段が、
受信パケットがキューに格納される毎に前記リセットが発生したか否かを判断し、前記リセットが発生したと判断した場合には、前記リセット発生前の受信パケットが格納されているキューをクリアすることで、前記リセット発生前の受信パケットを破棄することを特徴とするデータ転送制御装置。 - 請求項6において、
前記パケット破棄手段が、
ノードのトポロジ情報をクリアするリセットが発生した場合には、受信パケットが格納されているキューをクリアすることを特徴とするデータ転送制御装置。 - 請求項6又は7において、
ノードのトポロジ情報をクリアする前記リセットが、IEEE1394の規格において定義されるバスリセットであることを特徴とするデータ転送制御装置。 - 請求項1乃至8のいずれかにおいて、
IEEE1394の規格に準拠したデータ転送を行うことを特徴とするデータ転送制御装置。 - 請求項1乃至9のいずれかのデータ転送制御装置と、
前記データ転送制御装置及びバスを介して相手ノードから受信したデータに所与の処理を施す装置と、
処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする電子機器。 - 請求項1乃至9のいずれかのデータ転送制御装置と、
前記データ転送制御装置及びバスを介して相手ノードに転送するデータに所与の処理を施す装置と、
処理が施されるデータを取り込むための装置とを含むことを特徴とする電子機器。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP37050199A JP3606145B2 (ja) | 1999-12-27 | 1999-12-27 | データ転送制御装置及び電子機器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP37050199A JP3606145B2 (ja) | 1999-12-27 | 1999-12-27 | データ転送制御装置及び電子機器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2001186146A JP2001186146A (ja) | 2001-07-06 |
| JP3606145B2 true JP3606145B2 (ja) | 2005-01-05 |
Family
ID=18497077
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP37050199A Expired - Fee Related JP3606145B2 (ja) | 1999-12-27 | 1999-12-27 | データ転送制御装置及び電子機器 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3606145B2 (ja) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3671925B2 (ja) | 2002-03-20 | 2005-07-13 | セイコーエプソン株式会社 | データ転送制御装置、電子機器及びデータ転送制御方法 |
| GB2512214B (en) * | 2011-10-26 | 2020-10-07 | Intel Corp | Multi-touch interface schemes |
-
1999
- 1999-12-27 JP JP37050199A patent/JP3606145B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2001186146A (ja) | 2001-07-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3843667B2 (ja) | データ転送制御装置及び電子機器 | |
| JP3608441B2 (ja) | データ転送制御装置及び電子機器 | |
| JP3584789B2 (ja) | データ転送制御装置及び電子機器 | |
| JP3598923B2 (ja) | データ転送制御装置、情報記憶媒体及び電子機器 | |
| US6937355B1 (en) | Data communications apparatus for resuming data transfer after interruption | |
| EP1033658B1 (en) | Communication apparatus with means for allocating alternate designation information to each function unit, and communication system with two such communication apparatus | |
| JP3606133B2 (ja) | データ転送制御装置及び電子機器 | |
| JP3539287B2 (ja) | データ転送制御装置及び電子機器 | |
| JP3494041B2 (ja) | データ転送制御装置及び電子機器 | |
| JP3606145B2 (ja) | データ転送制御装置及び電子機器 | |
| US6457072B1 (en) | System and method for effectively performing physical direct memory access operations | |
| JP3494042B2 (ja) | データ転送制御装置及び電子機器 | |
| JP3624767B2 (ja) | データ転送制御装置、情報記憶媒体及び電子機器 | |
| JP4627456B2 (ja) | 通信システム、サイクルマスタノード及び通信方法 | |
| JP3598924B2 (ja) | データ転送制御装置、情報記憶媒体及び電子機器 | |
| JP2003244277A (ja) | プロトコル変換によるデータ転送方法とシステムならびにプログラム | |
| JP3598922B2 (ja) | データ転送制御装置、情報記憶媒体及び電子機器 | |
| JP3610982B2 (ja) | データ転送制御装置及び電子機器 | |
| JP2003023471A (ja) | パケット送受信処理回路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20040312 |
|
| A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20040409 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040622 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040820 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040914 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040927 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081015 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091015 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101015 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101015 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111015 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121015 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121015 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131015 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |