JP3539287B2 - データ転送制御装置及び電子機器 - Google Patents

データ転送制御装置及び電子機器 Download PDF

Info

Publication number
JP3539287B2
JP3539287B2 JP20124899A JP20124899A JP3539287B2 JP 3539287 B2 JP3539287 B2 JP 3539287B2 JP 20124899 A JP20124899 A JP 20124899A JP 20124899 A JP20124899 A JP 20124899A JP 3539287 B2 JP3539287 B2 JP 3539287B2
Authority
JP
Japan
Prior art keywords
packet
data
reset
pointer
data transfer
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
Application number
JP20124899A
Other languages
English (en)
Other versions
JP2001036531A (ja
Inventor
卓也 石田
義幸 神原
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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
Priority to JP20124899A priority Critical patent/JP3539287B2/ja
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to CNB008012555A priority patent/CN1146191C/zh
Priority to US09/787,077 priority patent/US6978327B1/en
Priority to KR10-2001-7003275A priority patent/KR100397404B1/ko
Priority to AT00946266T priority patent/ATE389990T1/de
Priority to DE60038359T priority patent/DE60038359T2/de
Priority to PCT/JP2000/004637 priority patent/WO2001006708A1/ja
Priority to EP00946266A priority patent/EP1120936B1/en
Priority to CNB031364667A priority patent/CN100484056C/zh
Priority to TW089114143A priority patent/TW507440B/zh
Publication of JP2001036531A publication Critical patent/JP2001036531A/ja
Application granted granted Critical
Publication of JP3539287B2 publication Critical patent/JP3539287B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2801Broadband local area networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40071Packet processing; Packet format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Selective Calling Equipment (AREA)
  • Credit Cards Or The Like (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、データ転送制御装置及びこれを含む電子機器に関し、特に、バスに接続される複数のノード間でIEEE1394などの規格に準じたデータ転送を行うデータ転送制御装置及びこれを含む電子機器に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
近年、IEEE1394と呼ばれるインターフェース規格が脚光を浴びている。このIEEE1394は、次世代のマルチメディアにも対応可能な高速シリアルバスインターフェースを規格化したものである。このIEEE1394によれば、動画像などのリアルタイム性が要求されるデータも扱うことができる。また、IEEE1394のバスには、プリンタ、スキャナ、CD−RWドライブ、ハードディスクドライブなどのコンピュータの周辺機器のみならず、ビデオカメラ、VTR、TVなどの家庭用電化製品も接続できる。このため、電子機器のデジタル化を飛躍的に促進できるものとして期待されている。
【0003】
さて、このIEEE1394においては、バスに電子機器が新たに接続されたり、バスから電子機器が取り外されたりして、バスに接続されるノードが増減すると、いわゆるバスリセットが発生する。そしてバスリセットが発生するとノードのトポロジ情報がクリアされ、その後、トポロジ情報が自動的に再設定される。即ち、バスリセットの発生後、ツリー識別(ルートノードの決定)、自己識別が行われ、その後、アイソクロナスリソースマネージャ等の管理ノードが決定される。そして通常のパケット転送が開始される。
【0004】
このようにIEEE1394では、バスリセット後にトポロジ情報が自動的に再設定されるため、いわゆるホット状態でのケーブルの抜き差し(ホットプラグ)が可能となる。このため、一般ユーザは、VTRなどの通常の家庭用電化製品と同じように、電子機器へのケーブルの抜き差を自由にできるようになり、いわゆるホームネットワークシステムの普及に役立つことができる。
【0005】
しかしながら、このようなバスリセットには、以下のような問題があることが判明した。
(1)バスリセットの発生によりノードID等のトポロジ情報がクリアされるため、トランザクションの途中でバスリセットが発生した場合には、トランザクションを再度やり直す必要がある。従って、各ノードは、バスリセット発生時に、どのトランザクションが未完了であったかを判断する必要がある。
【0006】
しかしながら、パケットを処理するファームウェア(CPU)の処理能力は一般的に低く、受信パケットに対する処理は、そのパケットの受信後、所与の時間が経過してから行われる。このため、多くの未処理のパケットが常に存在しており、これらの多くの未処理のパケットが、バスリセットの前後のいずれに受信したパケットなのかを区別する処理が必要になる。ところが、このような処理はファームウェアにとって負担が非常に重い。特に、バスリセット後にはノード間で非常に多くのパケットが送受信されるため、バスリセット後に受信するパケットの数は非常に多く、ファームウェアの処理負担の増加の問題は更に深刻なものとなる。
(2)ファームウェアがパケットの送信開始コマンドを発行した後にバスリセットが発生した場合、その送信は中止される。ところが、例えば送信開始コマンドの発行とバスリセットとがほぼ同時に起きた場合には、バスリセットの発生により送信が中止したか否かをファームウェアは知ることができない。このため、ファームウェアは、送信完了のステータスが送られてくるまで待機することになってしまい、ファームウェアの処理がストールするおそれがある。
【0007】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、ノードのトポロジ情報をクリアするリセットの発生時のファームウェアの処理負担を軽減でき、リセット発生によるファームウェアの処理のストール等を防止できるデータ転送制御装置及びこれが用いられる電子機器を提供することにある。
【0008】
【課題を解決するための手段】
上記課題を解決するために本発明は、バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、ノードのトポロジ情報をクリアするリセットから次のリセットまでの間をリセットインターバルと定義した場合に、受信したパケットと次に受信したパケットとが異なるリセットインターバルに受信したパケットか否かを区別するための区別情報を生成する手段と、受信した各パケットと生成された各区別情報とを、各パケットに各区別情報を関連づけて、パケット記憶手段に書き込む書き込み手段とを含むことを特徴とする。
【0009】
本発明によれば、例えば、受信した第Nのパケットに関連づけられた第Nの区別情報と、次に受信した第N+1のパケットに関連づけられた第N+1の区別情報とにより、第N、N+1のパケットが異なるリセットインターバルに受信されたか否かを区別できるようになる。即ち、第N、N+1のパケットが、同一の第Mのリセットインターバルに受信された場合には、第N、第N+1の区別情報は例えば同じ値になり、第N、N+1のパケットが、異なる第M、第Lのリセットインターバルに受信された場合には、第N、第N+1の区別情報は例えば異なる値になる。従って、第N、第N+1の区別情報の変化を調べることで、第N、第N+1のパケットが異なるリセットインターバルに受信されたか否か、即ち第N、第N+1のパケットの受信の間にリセットが発生したか否を判別できるようになる。従って、ファームウェア等は、リセットの発生場所を容易に知ることができるようになり、リセット発生時の処理負担を軽減できるようになる。
【0010】
また本発明は、前記区別情報が、受信したパケットと次に受信したパケットとが異なるリセットインターバルに受信したパケットである場合に、0から1に或いは1から0にトグルするトグルビットであることを特徴とする。このようにすれば、トグルビットの変化を調べるだけで、リセットの発生場所を容易に知ることができるようになり、リセット発生時のファームウェア等の処理負担を更に軽減できるようになる。
【0011】
また本発明は、前記パケット記憶手段がランダムアクセス可能な記憶手段であり、前記パケット記憶手段が、パケットの制御情報が格納される制御情報領域とパケットのデータが格納されるデータ領域とに分離されている場合において、前記区別情報を、前記制御情報領域に書き込まれる前記制御情報の中に含ませることを特徴とする。このように、パケット記憶手段を制御情報領域とデータ領域に分離することで、ファームウェア等の処理負担を軽減でき、システム全体の実転送速度を向上できる。そして、区別情報を、制御情報領域に書き込まれる制御情報の中に含ませることで、ファームウェア等は、少ない処理負担で区別情報を容易に読み出すことができるようになる。
【0012】
また本発明は、バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、各ノードから受信したパケットをパケット記憶手段に書き込む書き込み手段と、ノードのトポロジ情報をクリアするリセットの発生前の受信パケットの領域とリセットの発生後の受信パケットの領域との、前記パケット記憶手段における境界を特定する第1のポインタ情報を記憶する第1のポインタ記憶手段とを含むことを特徴とする。
【0013】
本発明によれば、ファームウェア等は、第1のポインタ記憶手段から第1のポインタ情報を読み出すだけで、リセット発生前に受信したパケットとリセット発生後に受信したパケットとを容易に区別できるようになる。そして、リセット発生前に受信したパケットに対しては破棄する等の処理を行い、リセット発生後に受信したパケットに対しては通常の処理を行うこと等が可能になる。
【0014】
また本発明は、リセットの発生の直前に受信したパケットの次のパケットの先頭アドレスが、前記第1のポインタ情報として前記第1のポインタ記憶手段に記憶されることを特徴とする。このようにすれば、第1のポインタ記憶手段から第1のポインタ情報を読み出すだけで、リセットの発生の直前に受信したパケットの次のパケットに対する処理を開始できるようになり、ファームウェア等の処理負担を軽減できる。
【0015】
また本発明は、処理済みパケットの領域と未処理のパケットの領域との、前記パケット記憶手段における境界を特定する第2のポインタ情報を記憶する第2のポインタ記憶手段と、受信済みパケットの領域とパケットを未受信の領域との、前記パケット記憶手段における境界を特定する第3のポインタ情報を記憶する第3のポインタ記憶手段とを含むことを特徴とする。このようにすれば、第2、第3のポインタ記憶手段から第2、第3のポインタ情報を読み出すだけで、未処理のパケットや、最新に受信したパケットなどを容易に判別できるようになる。
【0016】
また本発明は、前記第1のポインタ記憶手段に記憶される前記第1のポインタ情報に基づいてリセット発生後の受信パケットを特定し、該パケットを優先的に処理する処理手段を含むことを特徴とする。このようにすれば、リセット発生後の受信パケットが優先的に処理されるようになり、ファームウェアの処理がストールするなどの事態が生じるのを防止できるようになる。
【0017】
また本発明は、前記パケット記憶手段がランダムアクセス可能な記憶手段であり、前記パケット記憶手段が、パケットの制御情報が格納される制御情報領域とパケットのデータが格納されるデータ領域とに分離されている場合において、前記第1のポインタ記憶手段が、ノードのトポロジ情報をクリアするリセットの発生前の受信パケットの制御情報とリセット発生後の受信パケットの制御情報との、前記制御情報領域における境界を特定する第4のポインタ情報を記憶する第4のポインタ記憶手段と、ノードのトポロジ情報をクリアするリセットの発生前の受信パケットのデータとリセット発生後の受信パケットのデータとの、前記データ領域における境界を特定する第5のポインタ情報を記憶する第5のポインタ記憶手段とを含むことを特徴とする。このようにすれば、第5のポインタ記憶手段から第5のポインタ情報を読み出すだけで、リセット発生前後の受信パケットの、データ領域での境界を知ることができるようになり、ファームウェア等の処理負担を更に軽減できる。
【0018】
また本発明は、前記データ領域が、第1の層用の第1のデータが格納される第1のデータ領域と、第2の層用の第2のデータが格納される第2のデータ領域とに分離されている場合において、前記第5のポインタ情報が、ノードのトポロジ情報をクリアするリセットの発生前の受信パケットの第1のデータとリセットの発生後の受信パケットの第1のデータとの、前記第1のデータ領域における境界を特定するポインタ情報であることを特徴とする。このようにすれば、第1の層(例えばファームウェア)は、第1のデータ領域に格納される第1のデータ(例えばORB)を、リセットの発生の前後を区別して読み出すことができるようになり、第1の層の処理負担を軽減できる。また、第2の層(例えばアプリケーション)は、第2のデータ領域に格納される第2のデータ(例えばストリーム)を連続して読み出すことができるようになり、データ転送制御装置の実転送速度を向上できるようになる。
【0019】
また本発明は、バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、送信開始コマンドが発行された場合に、パケット記憶手段からパケットを読み出す読み出し手段と、読み出されたパケットを各ノードに送信するためのサービスを提供するリンク手段と、ノードのトポロジ情報をクリアするリセットの発生によりパケットの送信が中止された場合に、リセットの発生によりパケットの送信が中止されたことを知らせるステータス情報を記憶するステータス記憶手段とを含むことを特徴とする。
【0020】
本発明によれば、ファームウェア等は、ステータス記憶手段からステータス情報を読み出すことで、リセットの発生によりパケットの送信が中止されたことを知ることができるようになる。この結果、例えば、送信開始コマンドの発行の少し前にリセットが発生した場合等においても、ファームウェア等の処理がストールしてしまう事態を防止できるようになる。
【0021】
また本発明は、前記送信開始コマンドを発行する処理手段を含み、前記処理手段が、リセットの発生によりパケットの送信が中止されたと前記ステータス情報に基づいて判断した場合には、送信が完了したか否かを判断することなく、開始した送信処理をキャンセルすることを特徴とする。このようにすれば、ファームウェア等は、送信完了のステータスが送られてくるのを待つ必要がなくなり、ファームウェア等の処理がストールする事態を防止できる。
【0022】
また本発明では、前記リセットが、IEEE1394の規格において定義されるバスリセットであることが望ましい。
【0023】
また、本発明では、IEEE1394の規格に準拠したデータ転送を行うことが望ましい。
【0024】
また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して他のノードから受信したデータに所与の処理を施す装置と、処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする。また本発明に係る電子機器は、上記のいずれかのデータ転送制御装置と、前記データ転送制御装置及びバスを介して他のノードに送信するデータに所与の処理を施す装置と、処理が施されるデータを取り込むための装置とを含むことを特徴とする。
【0025】
本発明によれば、データ転送を制御するファームウェア等の処理負担を軽減できるため、電子機器の低コスト化、処理の高速化などを図ることができる。また、トポロジー情報をクリアするリセットの発生によりシステムがストールしてしまうなどの事態を防止できるため、電子機器の信頼性を高めることができる。
【0026】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【0027】
1.IEEE1394
まず、IEEE1394について簡単に説明する。
【0028】
1.1 概要
IEEE1394(IEEE1394−1995、P1394.a)では100〜400Mbpsの高速なデータ転送が可能となっている(P1394.bでは800〜3200Mbps)。また、転送速度が異なるノードをバスに接続することも許される。
【0029】
各ノードはツリー状に接続されており、1つのバスに最大で63個のノードが接続可能になっている。なお、バスブリッジを利用すれば約64000個のノードを接続することも可能である。
【0030】
IEEE1394では、パケットの転送方式として非同期転送とアイソクロナス転送が用意されている。ここで非同期転送は、信頼性が要求されるデータの転送に好適な転送方式であり、アイソクロナス転送は、リアルタイム性が要求される動画像や音声などのデータの転送に好適な転送方式である。
【0031】
1.2 層構造
IEEE1394の層構造(プロトコル構成)を図1に示す。
【0032】
IEEE1394のプロトコルは、トランザクション層、リンク層、物理層により構成される。また、シリアルバスマネージメントは、トランザクション層、リンク層、物理層をモニターしたり制御したりするものであり、ノードの制御やバスのリソース管理のための種々の機能を提供する。
【0033】
トランザクション層は、上位層にトランザクション単位のインターフェース(サービス)を提供し、下層のリンク層が提供するインターフェースを通して、リードトランザクション、ライトトランザクション、ロックトランザクション等のトランザクションを実施する。
【0034】
ここで、リードトランザクションでは、応答ノードから要求ノードにデータが転送される。一方、ライトトランザクションでは、要求ノードから応答ノードにデータが転送される。またロックトランザクションでは、要求ノードから応答ノードにデータが転送され、応答ノードがそのデータに処理を施して要求ノードに返信する。
【0035】
トランザクション層のサービスは、図2(A)に示すように要求、表示、応答、確認という4つのサービスにより構成される。
【0036】
ここで、トランザクション要求は、要求側がトランザクションを開始させるサービスであり、トランザクション表示は、要求が届いたことを応答側に通知するサービスである。また、トランザクション応答は、応答側の状態やデータを要求側に返すサービスであり、トランザクション確認は、応答側からの応答がきたことを要求側に通知するサービスである。
【0037】
リンク層は、アドレッシング、データチェック、パケット送受信のためのデータフレーミング、アイソクロナス転送のためのサイクル制御などを提供する。
【0038】
リンク層のサービスは、トランザクション層と同様に、図2(B)に示すように要求、表示、応答、確認という4つのサービスにより構成される。
【0039】
ここで、リンク要求は、パケットを応答側に転送するサービスであり、リンク表示は、応答側によるパケットの受信サービスである。また、リンク応答は、応答側によるアクノリッジメントの転送サービスであり、リンク確認は、要求側によるアクノリッジメントの受信サービスである。
【0040】
物理層は、リンク層により使用されるロジカルシンボルの電気信号への変換や、バスの調停や、バスの物理的インターフェースを提供する。
【0041】
物理層及びリンク層は、通常、データ転送制御装置(インターフェースチップ)などのハードウェアにより実現される。また、トランザクション層は、CPU上で動作するファームウェア(処理手段)や、ハードウェアにより実現される。
【0042】
なお、図3に示すように、IEEE1394のトランザクション層の一部の機能を含む上位のプロトコルとして、SBP-2(Serial Bus Protocol-2)と呼ばれるプロトコルが提案されている。
【0043】
ここでSBP-2は、SCSIのコマンドセットをIEEE1394のプロトコル上で利用可能にするために提案されたものである。このSBP-2を用いれば、既存のSCSI規格の電子機器で使用されていたSCSIのコマンドセットに最小限の変更を加えて、IEEE1394規格の電子機器に使用できるようになる。従って、電子機器の設計や開発を容易化できる。また、SCSIのコマンドだけではなく、デバイス固有のコマンドもカプセル化して利用できるため、非常に汎用性が高い。
【0044】
このSBP-2では、まず、イニシエータ(パーソナルコンピュータ等)が、ログインやフェッチ・エージェントの初期化のためのORB(Operation Request Block)を作成して、ターゲット(プリンタ、CD−RWドライブ等)に送る。次に、イニシエータは、コマンド(リードコマンド、ライトコマンド)を含むORB(コマンドブロックORB)を作成して、その作成したORBのアドレスを、ターゲットに知らせる。そして、ターゲットは、そのアドレスをフェッチすることにより、イニシエータが作成したORBを取得する。ORBに含まれるコマンドがリードコマンドであった場合には、ターゲットは、ブロックライトトランザクションを発行して、イニシエータのデータバッファ(メモリ)にターゲットのデータを送信する。一方、ORBに含まれるコマンドがライトコマンドであった場合には、ターゲットは、ブロックリードトランザクションを発行して、イニシエータのデータバッファからデータを受信する。
【0045】
このSBP-2によれば、ターゲットは、自身が都合の良いときにトランザクションを発行して、データを送受信できる。従って、イニシエータとターゲットが同期して動く必要がなくなるため、データ転送効率を高めることができる。
【0046】
なお、IEEE1394の上位プロトコルとしては、SBP-2以外にも、FCP(Function Control Protocol)と呼ばれるプロトコルなども提案されている。
【0047】
1.3 バスリセット
IEEE1394では、電源が投入されたり、途中でデバイスの抜き差しが発生すると、バスリセットが発生する。即ち、各ノードは、ポートの電圧変化を監視している。そして、バスに新たなノードが接続されるなどしてポートの電圧に変化が生じると、この変化を検知したノードは、バス上の他のノードに対して、バスリセットが発生したことを知らせる。また、各ノードの物理層は、バスリセットが発生したことをリンク層に伝える。
【0048】
そして、このようにバスリセットが発生すると、ノードIDなどのトポロジ情報がクリアされる。そして、その後、トポロジー情報が自動的に再設定される。即ち、バスリセット後、ツリー識別、自己識別が行われる。その後、アイソクロナスリソースマネージャ、サイクルマスタ、バスマネージャ等の管理ノードが決定される。そして、通常のパケット転送が開始される。
【0049】
このようにIEEE1394では、バスリセット後にトポロジ情報が自動的に再設定されるため、電子機器のケーブルを自由に抜き差しできるようになり、いわゆるホットプラグを実現できる。
【0050】
なお、トランザクションの途中でバスリセットが発生した場合には、そのトランザクションは中止される。そして、中止されたトランザクションを発行した要求ノードは、トポロジー情報を再設定された後に、要求パケットを再度転送する。また、応答ノードは、バスリセットにより中止されたトランザクションの応答パケットを要求ノードに返送してはならない。
【0051】
2.全体構成
次に、本実施形態のデータ転送制御装置の全体構成の例について図4を用いて説明する。
【0052】
図4において、PHYインターフェース10は、PHYデバイス(物理層のデバイス)とのインターフェースを行う回路である。
【0053】
リンクコア20(リンク手段)は、リンク層のプロトコルやトランザクション層のプロトコルの一部をハードウェアにより実現する回路であり、ノード間でのパケット転送のための各種サービスを提供する。レジスタ22は、これらのプロトコルを実現したリンクコア20を制御するためのレジスタである。
【0054】
FIFO(ATF)30、FIFO(ITF)32、FIFO(RF)34は、各々、非同期送信用、アイソクロナス送信用、受信用のFIFOであり、例えばレジスタや半導体メモリなどのハードウェアにより構成される。本実施形態では、これらのFIFO30、32、34の段数は非常に少ない。例えば1つのFIFOの段数は、好ましくは3段以下であり、更に好ましくは2段以下となる。
【0055】
DMAC40(読み出し手段)、DMAC42(読み出し手段)、DMAC44(書き込み手段)は、各々、ATF用、ITF用、RF用のDMAコントローラである。これらのDMAC40、42、44を用いることで、CPU66に介入されることなく、RAM80とリンクコア20との間でのデータ転送が可能になる。なお、レジスタ46は、DMAC40、42、44などを制御するレジスタである。
【0056】
ポートインターフェース50は、アプリケーション層のデバイス(例えばプリンタの印字処理を行うデバイス)とのインターフェースを行う回路である。本実施形態では、このポートインターフェース50を用いて、例えば8ビットのデータ転送が可能になっている。
【0057】
FIFO(PF)52は、アプリケーション層のデバイスとの間でのデータ転送のためのFIFOであり、DMAC54は、PF用のDMAコントローラである。レジスタ56は、ポートインターフェース50やDMAC54を制御するレジスタである。
【0058】
SBP-2コア84は、SBP-2のプロトコルの一部をハードウェアにより実現する回路である。レジスタ88は、SBP-2コア84を制御するためのレジスタである。DMAC(SBP-2用)86は、SBP-2コア84用のDMAコントローラである。
【0059】
RAM領域管理回路300は、RAM80の各領域を管理するための回路である。RAM領域管理回路300は、RAM80の各領域がフルになったり、エンプティになった場合に、各種のフル信号、エンプティ信号を用いてDMAC40、42、44、54、86を制御する。
【0060】
CPUインターフェース60は、データ転送制御装置をコントロールするCPU66とのインターフェースを行う回路である。CPUインターフェース60は、アドレスデコーダ62、データ同期化回路63、割り込みコントローラ64を含む。クロック制御回路68は、本実施形態で使用されるクロックを制御するものであり、PHYデバイス(PHYチップ)から送られてくるSCLKや、マスタークロックであるHCLKが入力される。
【0061】
バッファマネージャ70は、RAM80とのインターフェースを管理する回路である。バッファマネージャ70は、バッファマネージャの制御のためのレジスタ72、RAM80へのバス接続を調停する調停回路74、各種の制御信号を生成するシーケンサ76を含む。
【0062】
RAM80は、ランダムアクセス可能なパケット記憶手段として機能するものであり、その機能は例えばSRAM、SDRAM、DRAMなどにより実現される。
【0063】
なおRAM80は、本実施形態のデータ転送制御装置に内蔵させることが特に望ましいが、その一部又は全部を外付けにすることも可能である。
【0064】
図5に、RAM80のメモリマップの一例を示す。図5に示すように本実施形態では、RAM80が、ヘッダ領域(AR2、AR3、AR4、AR6)とデータ領域(AR5、AR7、AR8、AR9)に分離されている。そして、パケットのヘッダ(広義には制御情報)はヘッダ領域に格納され、パケットのデータ(ORB、ストリーム)はデータ領域に格納される。
【0065】
また本実施形態では、図5に示すように、RAM80のデータ領域(AR5、AR7、AR8、AR9)が、ORB領域(AR5、AR7)とストリーム領域(AR8、AR9)に分離されている。
【0066】
更に本実施形態では、RAM80が、受信領域(AR2、AR4、AR5、AR9)と送信領域(AR3、AR6、AR7、AR8)に分離されている。
【0067】
なお、ORB(第1の層用の第1のデータ)は、上述したようにSBP-2用のデータ(コマンド)である。一方、ストリーム(第1の層より上層の第2の層用の第2のデータ)は、アプリケーション層用のデータ(プリンタの印字データ、CD−RWの読み出し・書き込みデータ、スキャナによる取り込み画像データ等)である。
【0068】
また、AR1、AR2、AR3に示すHW(ハードウェア)用ページテーブル領域、HW用受信ヘッダ領域、HW用送信ヘッダ領域は、図4に示すSBP-2コア84(SBP-2をハードウェアにより実現する回路)が、ページテーブルや受信ヘッダや送信ヘッダを書き込んだり読み出したりするための領域である。
【0069】
また、図5においてAR4、AR5、AR8、AR9に示す領域は、いわゆるリングバッファ構造になっている。
【0070】
さて、図4のバス90(或いはバス92、94)は、アプリケーションに接続されるものである(第1のバス)。またバス95(或いはバス96)はデータ転送制御装置をコントロールし、或いはデータをリード・ライトするためのものであり、データ転送制御装置をコントロールするデバイス(例えばCPU)に電気的に接続される(第2のバス)。またバス100(或いはバス102、104、105、106、107、108、109)は、物理層のデバイス(PHYデバイス)に電気的に接続されるものである(第3のバス)。また、バス110は、ランダムアクセス可能な記憶手段であるRAM80に電気的に接続されるものである(第4のバス)。またバス99は、SBP-2コア84がハードウェアによりSBP-2を実現するためのヘッダ情報やページテーブル情報をリード・ライトするためのものである(第5のバス)。
【0071】
バッファマネージャ70の調停回路74は、DMAC40、42、44、CPUインターフェース60、DMAC86、54からのバスアクセス要求の調停を行う。そして、この調停結果に基づいて、各々、バス105、107、109、96、99、94のいずれかと、RAM80のバス110との間にデータの経路が確立される(第1、第2、第3、第5のバスのいずれかと第4のバスとの間にデータ経路が確立される)。
【0072】
本実施形態の1つの特徴は、ランダムアクセスが可能でありパケットを格納するRAM80を設けると共に、互いに分離されるバス90、95、99、100と、これらのバスをRAM80のバス110に接続するための調停回路74とを設けた点にある。
【0073】
例えば図6に、本実施形態と構成の異なるデータ転送制御装置の例を示す。このデータ転送制御装置では、リンクコア902は、PHYインターフェース900、バス922を介してPHYデバイスと接続される。また、リンクコア902は、FIFO904、906、908、CPUインターフェース910、バス920を介してCPU912に接続される。そして、CPU912は、バス924を介して、CPUにローカルなメモリであるRAM914に接続される。
【0074】
図6の構成のデータ転送制御装置を用いた場合のデータ転送の手法について図7を用いて説明する。PHYデバイス930を介して他のノードから送られてきた受信パケットは、バス922、データ転送制御装置932、バス920を介してCPU912が受け取る。そして、CPU912は、受け取った受信パケットをバス924を介してRAM914に一旦書き込む。そして、CPU912は、RAM914に書き込まれた受信パケットをバス924を介して読み出し、アプリケーション層が使用できるように加工し、バス926を介してアプリケーション層のデバイス934に転送する。
【0075】
一方、アプリケーション層のデバイス934からのデータを転送する場合には、CPU912は、このデータをRAM914に書き込む。そして、RAM914のデータにヘッダを付加することでIEEE1394に準拠したパケットを生成する。そして生成されたパケットは、データ転送制御装置932、PHYデバイス930などを介して他のノードに送信される。
【0076】
しかしながら、このような図7のデータ転送手法によると、CPU912の処理負担が非常に重くなる。従って、ノード間を接続するシリアルバスの転送速度が高速になっても、CPU912の処理のオーバーヘッドなどに起因して、システム全体の実転送速度は低くなり、結局、高速なデータ転送を実現できない。
【0077】
これに対して、本実施形態では図8に示すように、データ転送制御装置120、アプリケーション層のデバイス124間のバス90と、CPUバス96と、データ転送制御装置120、RAM80間のバス110とが互いに分離されている。従って、CPUバス96をデータ転送の制御のみに使用できるようになる。また、バス90を占有して、データ転送制御装置120、アプリケーション層のデバイス124間でデータ転送を行うことができるようになる。例えば、データ転送制御装置120が組み込まれる電子機器がプリンタである場合には、バス90を占有して印字データを転送できるようになる。この結果、CPU66の処理負担を軽減でき、システム全体の実転送速度を高めることができる。またCPU66として安価なものを採用できると共に、CPUバス96として高速なバスを使用する必要性がなくなる。このため、電子機器の低コスト化、小規模化を図れるようになる。
【0078】
3.本実施形態の特徴
3.1 バスリセットによりトグルするビット
図9(A)に示すように、IEEE1394のトランザクションは、要求ノードが応答ノードに要求パケットを送信し、応答ノードからの応答パケットを要求ノードが受信することで完了する。そして、このようなトランザクションの完了後にバスリセットが発生しても問題はない。
【0079】
一方、トランザクションの途中でバスリセットが発生すると、図9(B)のC1に示すようにトランザクションは中止される。そして、この場合に応答ノードは、中止されたトランザクションについての応答パケットを、要求ノードに対して返送してはならない。また、トランザクションを完了させるためには、要求ノードは、C2に示すように要求パケットを応答ノードに再度送信する必要がある。
【0080】
しかしながら、プリンタやCD−RWなどの周辺機器に本実施形態のデータ転送制御装置を組み込んだ場合、製品コストの制約から、図4のCPU66としては安価で処理能力が低いCPUが使用されるのが一般的である。従って、CPU66上で動作するファームウェアの処理能力も低い。このため、パケットを受信しても、受信したパケットを直ぐには処理できず、多くの未処理の受信パケットがRAM80に存在するようになる。従って、バスリセットが発生した場合には、これらの未処理のパケットが、バスリセットの前後のいずれに受信したパケットなのかを区別する処理が必要になる。即ち、バスリセットの発生場所を検出する処理が必要になる。そして、前述のようにファームウェアの処理能力は一般的に低いと考えられるため、バスリセットの発生場所を検出する処理は、負荷の低いものであることが望まれる。
【0081】
そこで、本実施形態では図10に示すような手法を採用している。
【0082】
即ち、1つのバスリセット(ノードのトポロジ情報をクリアするリセット)から次のバスリセットまでの間をバスリセットインターバルと定義したとする。例えば図10では、バスリセットMからM+1までの間はバスリセットインターバルMとなり、バスリセットM+1からM+2までの間はバスリセットインターバルM+1となる。
【0083】
この場合に本実施形態では、受信したパケットと次に受信したパケットとが異なるリセットインターバルに受信したパケットか否かを区別するためのトグルビットBT(広義には区別情報)を生成する。そして、このトグルビットBTを各パケットに関連づけて、図10のC11に示すようにRAM(パケット記憶手段)に書き込むようにしている。
【0084】
即ち図10において、パケットNとN+1は同一のバスリセットインターバルMに受信されているため、これらのBTは共に0になる。一方、パケットN+1とN+2は異なるバスリセットインターバルMとM+1に受信されているため、パケットN+1のBTは0となり、パケットN+2のBTは1になる。即ち、BTが0から1にトグルする。同様に、パケットN+4とN+5も異なるバスリセットインターバルM+1とM+2に受信されているため、BTが1から0にトグルする。また、パケットN+5とN+6も異なるバスリセットインターバルM+2とM+4に受信されているため、BTが0から1にトグルする。
【0085】
従って、図10のC12、C13、C14から明らかなように、BTがトグルした場所がバスリセットの発生場所(RAM上での境界)に対応するようになる。このため、ファームウェア(処理手段)は、BTがトグルした場所を調べるだけで、バスリセットの発生場所を容易に知ることができるようになる。この結果、ファームウェアは、最後のバスリセット後に受信したパケットN+6、N+7、N+8については例えば通常の処理を行い、最後のバスリセット前に受信したパケットN〜N+5については破棄する等の処理を行うことができるようになる。
【0086】
そして、本実施形態において特に特徴的なのは、図10のC15においてBTが変化しないことである。即ち、例えば、バスリセットが発生する毎にBTがトグルようにすると、C15ではバスリセットM+4が発生しているため、BTが1から0にトグルようになる。すると、パケットN+5とN+6は異なるバスリセットインターバルで受信したパケットであるのにもかかわらず、図10のC14でBTが0から1に変化しなくなる。この結果、パケットN+5とN+6の受信の間にバスリセットが発生したことをファームウェアが検出できなくなる問題が生じる。
【0087】
本実施形態では、連続して受信したパケットが異なるリセットインターバルに受信したパケットであることを条件に、BTが0から1に或いは1から0にトグルようになるため、上記のような問題は生じない。
【0088】
なお、本実施形態では図5で説明したようにRAMをヘッダ領域とデータ(ORB、ストリーム)領域に分離する。また、ヘッダ領域に格納される各ヘッダと、データ領域に格納される各データとを、ヘッダに含ませたデータポインタにより対応させている。そして本実施形態では図11に示すように、上記のトグルビットBT(区別情報)を、ヘッダ領域に書き込まれるヘッダの中に含ませている。このようにすれば、ファームウェアはヘッダ領域のヘッダをまとめて読み出し、これらのヘッダに含まれるBTを調べるだけで、バスリセットの発生場所を容易に検出できるようになる。この結果、ファームウェアの処理負担を更に軽減できるようになる。
【0089】
なお、図10では、区別情報が1ビットのデータである場合について説明したが、区別情報を2ビット以上のデータにしてもよい。例えば、図10のC12、C13、C14において、0から1、1から0、0から1というように変化させる代わりに、1、2、3というようにその値をインクリメントさせるようにしてもよい。
【0090】
3.2 バスリセットポインタ
さて、本実施形態では、バスリセットの発生場所を効率的に検出するために、図12に示すようなバスリセットポインタレジスタ(第1のポインタ記憶手段)BPRを設けている。
【0091】
ここで、バスリセットポインタレジスタBPRに記憶されるバスリセットポインタBPは、バスリセット発生前の受信パケットN〜N+2とバスリセット発生後の受信パケットN+3〜N+6との、RAMにおける境界RB1を特定するポインタである。より具体的には、ポインタBPは、バスリセット発生の直前に受信したパケットN+2の次のパケットN+3の先頭アドレスを指している。
【0092】
更に、本実施形態では、図12に示すように、処理済みポインタレジスタUPR(第2のポインタ記憶手段)や受信済みポインタレジスタPPR(第3のポインタ記憶手段)も設けている。
【0093】
ここで、レジスタUPRに記憶される処理済みポインタUPは、処理済み(使用済み)パケットN−1と未処理(未使用)のパケットNとの、RAMにおける境界RBP2を特定するポインタである。より具体的には、ポインタUPは、処理済みパケットN−1の次のパケットNの先頭アドレスを指している。
【0094】
また、レジスタPPRに記憶される受信済みポインタPPは、最新(post)の受信済みパケットN+6と、未受信のパケットN+7(次に受信するであろうパケット)との、RAMにおける境界RBP3を特定するポインタである。より具体的には、ポインタPPは、最新の受信済みパケットN+6の次に来るべき未受信のパケットN+7の先頭アドレスを指している。
【0095】
上記のレジスタBPRを設けることで、ファームウェアは、バスリセット前の受信パケットとバスリセット後の受信パケットとを、容易に区別できるようになる。また、レジスタUPRやPPRを設けることで、ファームウェアは、どのパケットが未処理のパケットかを、容易に判断できるようになる(図12ではパケットN〜N+6が未処理になる)。
【0096】
特に、ポインタBPは、バスリセット直後の受信パケットN+3の先頭アドレスを指している。従って、ファームウェアは、レジスタBPRからポインタBPを読み出すだけで、バスリセット後のパケットに対する処理を開始できるようになる。また、ポインタUPは未処理のパケットNの先頭アドレスを指している。従って、ファームウェアは、レジスタUPRからポインタUPを読み出すだけで、未処理のパケットに対する処理を開始できるようになる。
【0097】
さて、バスリセット前の受信パケットとバスリセット後の受信パケットとを区別する手法として、いわゆるバスリセットパケットを利用する手法が考えられる。このようなバスリセットパケットを用いれば、図13(A)に示すように、バスリセットパケットの前に格納されているパケットN〜N+2は、バスリセット前の受信パケットであると判断でき、バスリセットパケットの後に格納されているパケットN+3〜N+6は、バスリセット後の受信パケットであると判断できる。
【0098】
しかしながら、この手法では、図13(B)のフローチャートのステップS1、S2に示すように、ファームウェアは、バスリセットパケットが読み出されるまで未処理の受信パケットをRAMから順次読み出さなければならない。従って、ファームウェアの処理負担が重くなるという問題があり、特に、RAMに多くの未処理のパケットが積まれた場合には、上記問題は更に深刻になる。
【0099】
これに対して、バスリセットポインタBPを用いる本実施形態では、図13(C)のフローチャートのステップS3に示すように、ファームウェアはレジスタBPRからポインタBPを読み出すだけでよい。従って、図13(B)に比べてファームウェアの処理負担を格段に軽減できる。
【0100】
さて、本実施形態では、図5に示すようにRAMをヘッダ領域とデータ領域に分離している。このため、図12のバスリセットポインタレジスタBRとして、図14に示すようにバスリセットヘッダポインタレジスタBHPR(第4のポインタ記憶手段)とバスリセットORBポインタレジスタBOPR(第5のポインタ記憶手段)を設けている。
【0101】
また、処理済みポインタレジスタUPRとして、処理済みヘッダポインタレジスタUHPRと処理済みORBポインタレジスタUOPRを設けている。また、受信済みポインタレジスタPPRとして、受信済みヘッダポインタレジスタPHPRと受信済みORBポインタレジスタPOPRを設けている。
【0102】
ここで、レジスタBHPR、UHPR、PHPRが記憶するポインタBHP(第4のポインタ情報)、UHP、PHPは、各々、RAMのヘッダ領域での境界RB11、RB21、RB31を特定するためのポインタである。
【0103】
また、レジスタBOPR、UOPR、POPRが記憶するポインタBOP(第5のポインタ情報)、UOP、POPは、各々、RAMのORB(第1のデータ)領域での境界RB12、RB22、RB32を特定するためのポインタである。
【0104】
さて、図14に示すように、ORB領域でのバスリセットの境界RB12を指すポインタBOPを用いることで、次のような利点を得ることができる。
【0105】
即ち、ヘッダ領域での境界RB11を指すポインタBHPしか用いない手法では、ORB領域での境界RB12を特定するために、ファームウェアは図15(A)のフローチャートに示すような処理を行う必要がある。
【0106】
まず、ポインタUOPのアドレスを記憶する(ステップS10)。次に、ポインタBHPの前にヘッダがあるか否かを判断し(ステップS11)、ある場合にはそのヘッダを読み出す(ステップS12)。例えば図14では、ヘッダNが読み出される。
【0107】
次に、読み出されたヘッダが、ORB領域にデータを持つパケット(ORBパケット)のヘッダか否かを判断する(ステップS13)。図14ではヘッダN、N+1はORBパケットのヘッダではないため、ステップS14には移行せず、ステップS11、S12に戻る。一方、ヘッダN+2、N+3はORBポインタであるので、ステップS14に移行し、ヘッダに含まれるデータポインタ及びデータ長に基づき、ORBポインタのアドレス(境界RB02、RB12)を算出し記憶する。そして、次のヘッダN+4は、ORBポインタではないため、ステップS11に戻る。すると、ステップS11で、ポインタBHPの前にヘッダが無いと判断されるため、ステップS15に移行し、直前に記憶したORBポインタのアドレス(RB12)を、バスリセットによるORB領域の境界であると判断する。
【0108】
以上のように、ポインタBHPのみを用いる手法では、ファームウェアは、図15(A)に示すような負荷の重い処理を行わなければならない。特に、ファームウェアの処理能力が低く、RAMに多くのヘッダが積まれているような状況では、事態は更に深刻になる。
【0109】
これに対して、ポインタBOPを用いれば、図15(B)のフローチャートに示すように、ファームウェアは、レジスタBOPRからポインタBOPを読み出すだけで、境界RB12を特定できる。従って、ポインタBHPしか用いない手法に比べて、ファームウェアの処理負担を格段に軽減できる。
【0110】
さて、SBP-2においては、各ノード(イニシエータ、ターゲット)は、通常の16ビットのノードIDの他に64ビットのEUI−64と呼ばれるIDを持っている。そして、ノードIDはバスリセットによりリセットされ、バスリセット後には全く異なるIDになってしまう可能性が常にあるのに対し、EUI64は、各ノードにユニークなIDであり、バスリセット後も変化しない。従って、バスリセット後に、EUI−64と新たなノードIDとを対応づける処理が必要になり、各ノード間では、この対応づけの処理のための多数のパケットが送受信される。このため、バスリセット後には、短時間に多くのパケットがRAMに積まれることになる。そして、これらの積まれるパケットの数は、バスに接続されるノードが増えるにつれて多くなる。
【0111】
この場合に、各ノードのファームウェア(トランザクション層)が、バスリセット前の受信パケットに対する処理を優先的に行うと、そのノードの処理がストールしてしまう可能性があることが判明した。そして、1つのノードの処理がストールしてしまうと、その影響は他のノードにも及ぶ。
【0112】
そこで本実施形態では、バスリセットが発生した場合に、ファームウェア(処理手段)が、バスリセット後の受信パケットを優先的に処理するようにしている。
【0113】
即ち、図16のフローチャートに示すように、バスリセットが発生したと判断されると(ステップS20)、ファームウェアは、レジスタBHPR、BOPRからポインタBHP、BOPを読み出す(ステップS21)。そして、バスリセット後の受信パケット(ノードIDとEUI−64との対応づけのためパケット)を優先的に処理する(ステップS22)。即ち、本実施形態では、前述のように、ポインタBHP、BOPが用意されるため、これらのポインタをレジスタBHPR、BOPRから読み出すという簡易な処理で、バスリセット後の受信パケットを特定できる。従って、このようにバスリセット後の受信パケットを優先的に処理するようにしても、ファームウェアの処理負担はそれほど増加しない。
【0114】
次に、ファームウェアは、レジスタUHPR、UOPRからポインタUHP、UOPを読み出し(ステップS23)、バスリセット前の受信パケットの処理を行う(ステップS24)。即ち、パケットを破棄したり、バスリセットにより中止されたトランザクションがあるか否かを判断する等の処理を行う。
【0115】
3.3 バスリセット送信中止ステータス
図17(A)に示すように、通常の送信処理は、ファームウェアが送信開始コマンドを発行することで(図4のレジスタ46に送信開始コマンドを書き込むことで)、開始される。そして、送信開始コマンドが発行されると、バスのアービトレーションが行われ、アービトレーションに勝つと、バス上での実際のパケット転送が開始する。そして、相手ノードからACK(アクノリッジメント)が返ってくると、送信完了のステータスがファームウェアに伝えられる。
【0116】
そして、図17(B)に示すように、送信開始コマンドの発行前にバスリセットが発生していた場合には、図17(A)と同様に通常の送信処理が行われる。一方、図17(C)に示すように、送信開始コマンドの発行後にバスリセットが発生すると、送信は中止され、相手ノードからのACKは返って来ず、送信完了のステータスはファームウェアには伝えられない。
【0117】
ところが、ファームウェアによる送信開始コマンドの発行(レジスタへの書き込み)の少し前にバスリセットが起きたような場合には、図17(B)、(C)のどちらのケースになったのかを、ファームウェアが判断できなくなる。
【0118】
即ち図18(A)に示すようにファームウェアは、送信開始コマンドを発行した後(ステップS30)、バスリセットが発生したか否かを判断する(ステップS31)。そして、バスリセットが発生していない場合には、送信完了が返って来るのを待つことになる(ステップS32)。これは、図17(B)のケースである。一方、バスリセットが発生した場合には、送信完了を待つことなく、送信をキャンセルする(ステップS33)。これは図17(C)のケースである。
【0119】
そして、図18(A)のC20に示すように、送信開始コマンドの発行よりも少し前にバスリセットが発生した場合には、ファームウェアの処理がステップS31、S32でループしてしまい、処理がストールしてしまう。即ち、バスリセットの発生を検出できないため、送信はキャンセルされず(ステップS33に移行しない)、送信完了も返って来ないため、ステップS31、S2で処理がループする。
【0120】
そこで本実施形態では図17(D)に示すように、バスリセットにより送信が中止されたことを示すステータスをファームウェアに伝えるようにしている。より具体的には、バスリセットが発生し、データ転送制御装置のハードウェアが送信を中止する処理を行った場合に、バスリセット送信中止ステータスが図4のレジスタ46に書き込まれる。このようにすればファームウェアは、図18(B)のステップS41に示すように、バスリセットにより送信が中止されたか否かを判断できる。そして、バスリセットにより送信が中止されたと判断した場合には、送信完了を待つことなく送信をキャンセルするようにする(ステップS44)。これにより、ファームウェアの処理がストールしてしまう事態を回避できるようになる。
【0121】
4. 詳細例
4.1 受信側の詳細な構成
次に受信側の詳細な構成について説明する。図19に、リンクコア20(リンク手段)、FIFO34、DMAC44(書き込み手段)の詳細な構成の一例を示す。
【0122】
リンクコア20は、バス監視回路130、直列・並列変換回路132、パケット整形回路160を含む。
【0123】
ここで、バス監視回路130は、PHYインターフェース10を介してPHYデバイスに接続される8ビット幅のデータバスD、2ビット幅のコントロールバスCTLを監視する回路である。
【0124】
直列・並列変換回路132は、データバスDのデータを32ビットのデータに変換する回路である。
【0125】
パケット整形回路160は、各ノードから転送されてきたパケットを上層が使用できるように整形する回路である。例えば図20(A)に、IEEE1394規格の、非同期でブロックデータを有するパケットのフォーマットを示す。一方、図20(B)に、RAM80のヘッダ領域に格納される、非同期受信でブロックデータを有するパケットのヘッダ部分のフォーマットを示す。このように本実施形態では、図20(A)に示すフォーマットのパケットを、ファームウェアなどの上層が使用できるように、図20(B)に示すフォーマットのパケットに整形している。
【0126】
パケット整形回路160は、パケット診断回路142、シーケンサ167、バッファ168、セレクタ170を含み、パケット診断回路142は、TAG生成回路162、ステータス生成回路164、エラーチェック回路166を含む。
【0127】
ここでパケット診断回路142は、パケットの診断を行う回路である。TAG生成回路162は、パケットを書き込む領域を区別するための情報であるTAGを生成する回路であり、ステータス生成回路164は、パケットに付加する各種のステータスを生成する回路である。また、エラーチェック回路166は、パケットに含まれるパリティやCRCなどのエラーチェック情報をチェックしてエラーを検出する回路である。
【0128】
シーケンサ167は各種の制御信号を生成するものである。バッファ168、セレクタ170は、直列・並列変換回路132からのDI、パケット診断回路142からのステータス、DMAC44からのデータポインタDPのいずれかを、パケット診断回路142からの信号SELにより選択するためのものである。
【0129】
FIFO34は、リンコア20からの出力データであるRDの位相と、RAM80への書き込みデータであるWDATAの位相とを調整するためのバッファとして機能するものであり、FIFO状態判断回路35を含む。FIFO状態判断回路35は、FIFO34が空になると、信号EMPTYをアクティブにし、FIFO34がフルになると、信号FULLをアクティブにする。
【0130】
DMAC44は、パケット分離回路180、アクセス要求実行回路190、アクセス要求発生回路192を含む。
【0131】
ここでパケット分離回路180は、パケット整形回路160により整形されたパケットをTAG(DTAG)に基づいてデータ、ヘッダ等に分離して、RAMの各領域(図5参照)に書き込む処理を行う。
【0132】
アクセス要求実行回路190は、リンクコア20からのアクセス要求を実行するための回路である。アクセス要求実行回路190は、FIFO状態判断回路35からのFULLがアクティブになると、FFULLをアクティブにする。パケット整形回路160内のシーケンサ167は、FFULLがアクティブでないことを条件に、RD(RxData)のストローブ信号であるRDSをアクティブにする。
【0133】
なおRFAILは、受信における失敗を、シーケンサ167がアクセス要求実行回路190に対して知らせるための信号である。
【0134】
アクセス要求発生回路192は、RAM80へのアクセス要求を発生するための回路である。アクセス要求発生回路192は、バッファマネージャ70からの書き込みアクノリッジメントであるWACKやFIFO状態判断回路35からのEMPTYなどを受け、書き込み要求であるWREQをバッファマネージャ70に出力する。
【0135】
さて、図19に示すように、パケット分離回路180は、TAG判別回路182、アドレス発生回路188を含み、アドレス発生回路188はポインタ更新回路184を含む。
【0136】
ここでTAG判別回路182は、TAG生成回路162により生成されたTAG(DTAG)を判別し、FIFO34の出力WDATAの書き込み領域を決める。
【0137】
そして、アドレス発生回路188が含むポインタ更新回路184が、この決められた領域において、ポインタ(データポインタ、ヘッダポインタ)を順次更新(インクリメント、デクリメント)する。そして、アドレス発生回路188は、この順次更新されるポインタが指すアドレスを発生して、WADRとしてバッファマネージャ70に出力する。また、アドレス発生回路188は、データポインタDP(受信ORB領域のデータポインタ、受信ストリーム領域のデータポインタ等)をパケット整形回路160に出力する。パケット整形回路160は、このデータポインタをパケットのヘッダに埋め込む(図20(B)のC30参照)。このようにすることで、ヘッダ領域に格納されるヘッダとデータ領域に格納されるデータとを対応づけることが可能になる(図11参照)。
【0138】
図21に、本実施形態で使用されるTAG(DTAG)の例を示す。図21において、例えばTAGが(0001)、(0010)であった場合には、受信パケットのヘッダ(FIFO34の出力WDATA)が図5の受信ヘッダ領域へ書き込まれる。また、TAGが(0100)であった場合には、受信パケットのデータが受信ORB領域に書き込まれ、TAGが(0101)であった場合には、受信パケットのデータが受信ストリーム領域に書き込まれることになる。
【0139】
また、TAGが(1001)、(1010)であった場合には、受信パケットのヘッダがHW(ハードウェア)用受信ヘッダ領域に書き込まれる。また、TAGが(1100)であった場合には、受信パケットのデータがHW用受信ORB領域に書き込まれ、TAGが(1101)であった場合には、受信パケットのデータがHW用受信ストリーム領域に書き込まれることになる。なお、ここでHW(ハードウェア)用とは、図4のSBP-2コア84用という意味である。
【0140】
4.2 BT生成回路
ステータス生成回路164は、BT生成回路165を含む。このBT生成回路165は、図10で説明したトグルビットBTを生成する。生成されたBTは、図20(B)のC31に示すように、整形後のパケットのヘッダに埋め込まれる。
【0141】
図22(A)、(B)に、BT生成回路165の状態遷移図を示す。
【0142】
図22(A)において、RECEIVEDはBT生成回路165の内部信号であり、BRIPはバスリセット中であることを示す信号である。このBRIPは、図19に示すようにバス監視回路130が生成する。即ちバス監視回路130は、データバスDを介してPHYデバイスからのステータス情報を受け取り、このステータス情報に基づいて、バスリセットがなされたか否かを判断する。そして、バス監視回路130は、バスリセットがなされたと判断すると、BRIPをHレベルにして、その後、Lレベルに戻す。
【0143】
図22(A)の状態遷移図に示すように、RECEIVEDは、パケットを受信したことを条件にLレベルからHレベルに変化し、BRIPがHレベルになったことを条件にHレベルからLレベルに変化する。また図22(B)の状態遷移図に示すように、トグルビットBTは、BRIP及びRECEIVEDがHレベルになったことを条件に、LレベルからHレベルに或いはHレベルからLレベルにトグルする。
【0144】
図23に、上述した各信号のタイミングチャートを示す。図23のC40、C41、C42では、パケットを受信したため、RECEIVEDがLレベルからHレベルに変化している。また、C43、C44、C45では、BRIP(バスリセット中信号)がHレベルになったため、RECEIVEDがHレベルからLレベルに変化している。
【0145】
C46、C47、C48では、BRIP及びRECEIVEDがHレベルになったため、BTが、LレベルからHレベルに或いはHレベルからLレベルにトグルしている。一方、C49では、RECEIVEDがHレベルではないため、BTは変化しない。即ち、バスリセットインターバルM+2ではパケットを受信していないため、バスリセットが生じても(BRIPがHレベルになっても)、BTは変化しない。このようにすることで、図10で説明したように、連続して受信したパケットが異なるバスリセットインターバルのパケットである場合に変化するようなトグルビットBTを生成できるようになる。
【0146】
4.3 ポインタレジスタ
次に、図24を用いて、図14の各種ポインタレジスタの詳細について説明する。
【0147】
レジスタ310、314、318は、各々、受信済みヘッダポインタ、受信済みORBポインタ、受信済みストリームポインタを記憶するレジスタである(図14参照)。これらのレジスタ310、314、318は、アドレス発生回路188から、各々、WHADR(ヘッダ領域でのアドレス)、WOADR(ORB領域でのアドレス)、WSADR(ストリーム領域でのアドレス)を受ける。また、レジスタ310、314、318は、リンクコア20からの受信完了信号RXCOMPを受ける。そして、レジスタ310、314、318は、このRXCOMPがアクティブになるタイミングで、アドレス発生回路188からのWHADR、WOADR、WSADRを取り込み、記憶する。このようにすることで、図14の境界RB31、RB32等のアドレスを記憶できるようになる。
【0148】
またレジスタ312、316は、各々、バスリセットヘッダポインタ、バスリセットORBポインタを記憶するレジスタである(図14参照)。これらのレジスタ312、316は、リンクコア20からのバスリセット中信号BRIPを受ける。そして、レジスタ312、316は、このBRIPがアクティブになるタイミングで、レジスタ310、314に記憶されているアドレスを取り込み、記憶する。このようにすることで、図14の境界RB11、RB12のアドレスを記憶できるようになる。
【0149】
レジスタ320、322、324は、各々、処理済みヘッダポインタ、処理済みORBポインタ、処理済みストリームポインタを記憶するレジスタである(図14参照)。
【0150】
スタート・エンドアドレスレジスタ326は、図5に示す各領域のスタートアドレスやエンドアドレスを記憶する。そして、アドレス発生回路188、332は、レジスタ326からのスタートアドレス、エンドアドレスに基づいてアドレスの発生を制御する。より具体的には、スタートアドレスを開始点として順次ポインタを更新する。そして、ポインタがエンドアドレスに到達した場合に、ポインタをスタートアドレスに戻すなどの制御を行う(リングバッファ構造の場合)。
【0151】
RAM領域管理回路300は、受信ヘッダ領域管理回路302、受信ORB領域管理回路304、受信ストリーム領域管理回路306を含む。
【0152】
そして、受信ヘッダ領域管理回路302は、レジスタ310からの受信済みヘッダポインタやレジスタ320からの処理済みヘッダポインタを受け、受信ヘッダ領域がフルであることを知らせる信号HDRFULLをアクセス要求発生回路192に出力する。
【0153】
また、受信ORB領域管理回路304は、レジスタ314からの受信済みORBポインタやレジスタ322からの処理済みORBポインタを受け、受信ORB領域がフルであることを知らせる信号ORBFULLをアクセス要求発生回路192に出力する。
【0154】
また、受信ストリーム領域管理回路306は、レジスタ318からの受信済みストリームポインタやレジスタ324からの処理済みストリームポインタを受け、受信ストリーム領域がフルであることを知らせる信号STRMFULLをアクセス要求発生回路192に出力する。また、受信ストリーム領域がエンプティであることを知らせる信号STRMEMPTYをアクセス要求発生回路334に出力する。
【0155】
アクセス要求発生回路192、334は、これらのフル信号、エンプティ信号を受けて、書き込み要求WREQ、読み出し要求RREQをバッファマネージャー70に出力するか否かを決めることになる。
【0156】
4.4 バスリセット送信中止ステータス
次に、図25、図26を用いて、バスリセット送信中止ステータスの詳細について説明する。
【0157】
図25において、ファームウェアは送信開始コマンドを送信開始設定レジスタ340に書き込む。するとSTART生成回路342が、図26のC60に示すように信号STARTをアクティブにする。するとDMAC40がバッファマネージャ70に対して読み出し要求を出力し、送信が開始される。
【0158】
また、信号STARTを受けたTXPRD生成回路346は、C61に示すように、送信中であることを示す信号TXPRDをアクティブにする。そして、パケット転送が無事に終了し、C62に示すようにリンクコア20が送信完了信号TXCOMPをアクティブにすると、信号TXPRDは非アクティブになる。
【0159】
さて、送信中(TXPRDがアクティブの時)に、C63に示すように信号BRIPがアクティブになると(バスリセットが発生すると)、C64に示すように、図25のTXBRABORT生成回路348が信号TXBRABORTをアクティブにする。そして、バスリセットにより送信が中止されたことを示すステータスが、送信中止ステータスレジスタ350を介してファームウェアに伝えられることになる。
【0160】
一方、図26のC65では、送信中ではないため(TXPRDが非アクティブ)、バスリセットが発生してBRIPがアクティブになっても、TXBRABOTはアクティブにならない。
【0161】
このように本実施形態では、送信中にバスリセットが発生して送信が中止になった時にのみ、バスリセット送信中止ステータスがファームウェアに伝えられるようになる。
【0162】
5.電子機器
次に、本実施形態のデータ転送制御装置を含む電子機器の例について説明する。
【0163】
例えば図27(A)に電子機器の1つであるプリンタの内部ブロック図を示し、図28(A)にその外観図を示す。CPU(マイクロコンピュータ)510はシステム全体の制御などを行う。操作部511はプリンタをユーザが操作するためのものである。ROM516には、制御プログラム、フォントなどが格納され、RAM518はCPU510のワーク領域として機能する。表示パネル519はプリンタの動作状態をユーザに知らせるためのものである。
【0164】
PHYデバイス502、データ転送制御装置500を介して、パーソナルコンピュータなどの他のノードから送られてきた印字データは、バス504を介して印字処理部512に直接送られる。そして、印字データは、印字処理部512にて所与の処理が施され、プリントヘッダなどからなる印字部(データを出力するための装置)514により紙に印字されて出力される。
【0165】
図27(B)に電子機器の1つであるスキャナの内部ブロック図を示し、図28(B)にその外観図を示す。CPU520はシステム全体の制御などを行う。操作部521はスキャナをユーザが操作するためのものである。ROM526には制御プログラムなどが格納され、RAM528はCPU520のワーク領域として機能する。
【0166】
光源、光電変換器などからなる画像読み取り部(データを取り込むための装置)522により原稿の画像が読み取られ、読み取られた画像のデータは画像処理部524により処理される。そして、処理後の画像データがバス505を介してデータ転送制御装置500に直接送られる。データ転送制御装置500は、この画像データにヘッダなどを付加することでパケットを生成し、PHYデバイス502を介してパーソナルコンピュータなどの他のノードに送信する。
【0167】
図27(C)に電子機器の1つであるCD−RWドライブの内部ブロック図を示し、図28(C)にその外観図を示す。CPU530はシステム全体の制御などを行う。操作部531はCD−RWをユーザが操作するためのものである。ROM536には制御プログラムなどが格納され、RAM538はCPU530のワーク領域として機能する。
【0168】
レーザ、モータ、光学系などからなる読み取り&書き込み部(データを取り込むための装置又はデータを記憶するための装置)533によりCD−RW532から読み取られたデータは、信号処理部534に入力され、エラー訂正処理などの所与の信号処理が施される。そして、信号処理が施されたデータが、バス506を介してデータ転送制御装置500に直接送られる。データ転送制御装置500は、このデータにヘッダなどを付加することでパケットを生成し、PHYデバイス502を介してパーソナルコンピュータなどの他のノードに送信する。
【0169】
一方、PHYデバイス502、データ転送制御装置500を介して、他のノードから送られてきたデータは、バス506を介して信号処理部534に直接送られる。そして、信号処理部534によりこのデータに所与の信号処理が施され、読み取り&書き込み部533によりCD−RW532に記憶される。
【0170】
なお、図27(A)、(B)、(C)において、CPU510、520、530の他に、データ転送制御装置500でのデータ転送制御のためのCPUを別に設けるようにしてもよい。
【0171】
また、図27(A)、(B)、(C)ではRAM501(図4のRAM80に相当)がデータ転送制御装置500の外部に設けられているが、RAM501をデータ転送制御装置500に内蔵させてもよい。
【0172】
本実施形態のデータ転送制御装置を電子機器に用いることで、高速なデータ転送が可能になる。従って、ユーザがパーソナルコンピュータなどによりプリントアウトの指示を行った場合に、少ないタイムラグで印字が完了するようになる。また、スキャナへの画像取り込みの指示の後に、少ないタイムラグで読み取り画像をユーザは見ることができるようになる。また、CD−RWからのデータの読み取りや、CD−RWへのデータの書き込みを高速に行うことができるようになる。更に、例えば1つのホストシステムに複数の電子機器を接続して利用したり、複数のホストシステムに複数の電子機器を接続して利用したりすることも容易になる。
【0173】
また本実施形態のデータ転送制御装置を電子機器に用いることで、CPU上で動作するファームウェアの処理負担が軽減され、安価なCPUや低速のバスを用いることが可能になる。更に、データ転送制御装置の低コスト化、小規模化を図れるため、電子機器の低コスト化、小規模化も図れるようになる。
【0174】
また、バスに新たな電子機器が接続され、バスリセットが発生した場合にも、電子機器間での通常のデータ転送が長時間待たされる事態を防止できるようになる。
【0175】
なお本実施形態のデータ転送制御装置を適用できる電子機器としては、上記以外にも例えば、種々の光ディスクドライブ(CD−ROM、DVD)、光磁気ディスクドライブ(MO)、ハードディスクドライブ、TV、VTR、ビデオカメラ、オーディオ機器、電話機、プロジェクタ、パーソナルコンピュータ、電子手帳、ワードプロセッサなど種々のものを考えることができる。
【0176】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【0177】
例えば、本発明のデータ転送制御装置の構成は、図4に示す構成が特に望ましいが、これに限定されるものではない。
【0178】
また、本発明はIEEE1394におけるバスリセットに特に有用だが、これ以外にも、少なくともノードのトポロジー情報をクリアするようなリセットであれば適用できる。
【0179】
また本発明のポインタ情報は、パケット記憶手段の各境界を少なくとも特定できるものであればよく、パケットの先頭アドレスには限定されない。
【0180】
またパケット記憶手段の分離(分割)手法も、図5で説明したものに限定されるものではない。
【0181】
また、本発明は、IEEE1394規格でのデータ転送に適用されることが特に望ましいが、これに限定されるものではない。例えばIEEE1394と同様の思想に基づく規格やIEEE1394を発展させた規格におけるデータ転送にも本発明は適用できる。
【図面の簡単な説明】
【図1】IEEE1394の層構造について示す図である。
【図2】図2(A)、(B)は、トランザクション層やリンク層が提供する各種のサービスについて説明するための図である。
【図3】SBP-2について説明するための図である。
【図4】本実施形態のデータ転送制御装置の構成例を示す図である。
【図5】RAM(パケット記憶手段)の分離(分割)手法について説明するための図である。
【図6】比較例の構成について示す図である。
【図7】図6の構成によるデータ転送の手法について説明するための図である。
【図8】本実施形態のデータ転送の手法について説明するための図である。
【図9】図9(A)、(B)は、バスリセットの発生によるトランザクションの中止について説明するための図である。
【図10】トグルビットBTについて説明するための図である。
【図11】トグルビットBTをヘッダに含ませる手法について説明するための図である。
【図12】バスリセットポインタについて説明するための図である。
【図13】図13(A)、(B)、(C)は、バスリセットパケットを用いる場合とバスリセットポインタを用いる場合のファームウェアの処理について説明するための図である。
【図14】バスリセットORBポインタについて説明するための図である。
【図15】図15(A)、(B)は、バスリセットヘッダポインタのみを用いる場合とバスリセットORBポインタを用いる場合のファームウェアの処理について説明するためのフローチャートである。
【図16】バスリセット後の受信パケットを優先的に処理する手法について説明するためのフローチャートである。
【図17】図17(A)、(B)、(C)、(D)は、バスリセット送信中止ステータスについて説明するための図である。
【図18】図18(A)、(B)は、バスリセット送信中止ステータスを用いる場合と用いない場合のファームウェアの処理について説明するためのフローチャートである。
【図19】受信側の詳細な構成について示す図である。
【図20】図20(A)は、IEEE1394規格の、非同期でブロックデータを有するパケットのフォーマットであり、図20(B)は、RAMに格納される、非同期受信でブロックデータを有するパケットのヘッダ部分のフォーマットである。
【図21】TAGについて説明するための図である。
【図22】図22(A)、(B)は、BT生成回路の状態遷移図である。
【図23】BT生成回路の動作について説明するためのタイミング波形図である。
【図24】各種ポインタレジスタの詳細について説明するための図である。
【図25】バスリセット送信中止ステータスの詳細について説明するための図である。
【図26】バスリセット送信中止ステータスの詳細について説明するためのタイミング波形図である。
【図27】図27(A)、(B)、(C)は、種々の電子機器の内部ブロック図の例である。
【図28】図28(A)、(B)、(C)は、種々の電子機器の外観図の例である。
【符号の説明】
10 PHYインターフェース
20 リンクコア
22 レジスタ
30 FIFO(ATF)
32 FIFO(ITF)
34 FIFO(RF)
40 DMAC(ATF用)
42 DMAC(ITF用)
44 DMAC(RF用)
46 レジスタ
50 ポートインターフェース
52 FIFO(PF)
54 DMAC(PF用)
56 レジスタ
60 CPUインターフェース
62 アドレスデコーダ
63 データ同期化回路
64 割り込みコントローラ
66 CPU
68 クロック制御回路
70 バッファマネージャ
72 レジスタ
74 調停回路
76 シーケンサ
80 RAM(パケット記憶手段)
84 SBP-2コア
86 DMAC(SBP-2用)
90、92、94 バス(第1のバス)
95、96 バス(第2のバス)
99 バス(第5のバス)
100、102、104、105、
106、107、108、109 バス(第3のバス)
110 バス(第4のバス)
120 データ転送制御装置
122 PHYデバイス
124 アプリケーション層のデバイス
130 バス監視回路
132 直列・並列変換回路
142 パケット診断回路
160 パケット整形回路
162 TAG生成回路
164 ステータス生成回路
165 BT生成回路
166 エラーチェック回路
167 シーケンサ
168 バッファ
170 セレクタ
180 パケット分離回路
182 TAG判別回路
184 ポインタ更新回路
188 アドレス発生回路
190 アクセス要求実行回路
192 アドレス要求発生回路
300 RAM領域管理回路
302 受信ヘッダ領域管理回路
304 受信ORB領域管理回路
306 受信ストリーム領域管理回路
310 受信済みヘッダポインタレジスタ(PHPR)
312 バスリセットヘッダポインタレジスタ(BHPR)
314 受信済みORBポインタレジスタ(POPR)
316 バスリセットORBポインタレジスタ(BOPR)
318 受信済みストリームポインタレジスタ(PSPR)
320 処理済みヘッダポインタレジスタ(UHPR)
322 処理済みORBポインタレジスタ(UOPR)
324 処理済みストリームポインタレジスタ(USPR)
326 スタート・エンドアドレスレジスタ
332 アドレス発生回路
334 アクセス要求発生回路
340 送信開始設定レジスタ
342 START生成回路
346 TXPRD生成回路
348 TXBRABORT生成回路
350 送信中止ステータスレジスタ

Claims (15)

  1. バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
    ノードのトポロジ情報をクリアするリセットから次のリセットまでの間をリセットインターバルと定義した場合に、受信したパケットと次に受信したパケットとが異なるリセットインターバルに受信したパケットか否かを区別するための区別情報を生成する手段と、
    受信した各パケットと生成された各区別情報とを、各パケットに各区別情報を関連づけて、パケット記憶手段に書き込む書き込み手段と、
    を含むことを特徴とするデータ転送制御装置。
  2. 請求項1において、
    前記区別情報が、
    受信したパケットと次に受信したパケットとが異なるリセットインターバルに受信したパケットである場合に、0から1に或いは1から0にトグルするトグルビットであることを特徴とするデータ転送制御装置。
  3. 請求項1又は2において、
    前記パケット記憶手段がランダムアクセス可能な記憶手段であり、前記パケット記憶手段が、パケットの制御情報が格納される制御情報領域とパケットのデータが格納されるデータ領域とに分離されている場合において、
    前記区別情報を、前記制御情報領域に書き込まれる前記制御情報の中に含ませることを特徴とするデータ転送制御装置。
  4. バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
    各ノードから受信したパケットをパケット記憶手段に書き込む書き込み手段と、
    ノードのトポロジ情報をクリアするリセットの発生前の受信パケットの領域とリセットの発生後の受信パケットの領域との、前記パケット記憶手段における境界を特定する第1のポインタ情報を記憶する第1のポインタ記憶手段と、
    を含むことを特徴とするデータ転送制御装置。
  5. 請求項4において、
    リセットの発生の直前に受信したパケットの次のパケットの先頭アドレスが、前記第1のポインタ情報として前記第1のポインタ記憶手段に記憶されることを特徴とするデータ転送制御装置。
  6. 請求項4又は5において、
    処理済みパケットの領域と未処理のパケットの領域との、前記パケット記憶手段における境界を特定する第2のポインタ情報を記憶する第2のポインタ記憶手段と、
    受信済みパケットの領域とパケットを未受信の領域との、前記パケット記憶手段における境界を特定する第3のポインタ情報を記憶する第3のポインタ記憶手段とを含むことを特徴とするデータ転送制御装置。
  7. 請求項4乃至6のいずれかにおいて、
    前記第1のポインタ記憶手段に記憶される前記第1のポインタ情報に基づいてリセット発生後の受信パケットを特定し、該パケットを優先的に処理する処理手段を含むことを特徴とするデータ転送制御装置。
  8. 請求項4乃至7のいずれかにおいて、
    前記パケット記憶手段がランダムアクセス可能な記憶手段であり、前記パケット記憶手段が、パケットの制御情報が格納される制御情報領域とパケットのデータが格納されるデータ領域とに分離されている場合において、
    前記第1のポインタ記憶手段が、
    ノードのトポロジ情報をクリアするリセットの発生前の受信パケットの制御情報とリセット発生後の受信パケットの制御情報との、前記制御情報領域における境界を特定する第4のポインタ情報を記憶する第4のポインタ記憶手段と、
    ノードのトポロジ情報をクリアするリセットの発生前の受信パケットのデータとリセット発生後の受信パケットのデータとの、前記データ領域における境界を特定する第5のポインタ情報を記憶する第5のポインタ記憶手段とを含むことを特徴とするデータ転送制御装置。
  9. 請求項8において、
    前記データ領域が、第1の層用の第1のデータが格納される第1のデータ領域と、第2の層用の第2のデータが格納される第2のデータ領域とに分離されている場合において、
    前記第5のポインタ情報が、
    ノードのトポロジ情報をクリアするリセットの発生前の受信パケットの第1のデータとリセットの発生後の受信パケットの第1のデータとの、前記第1のデータ領域における境界を特定するポインタ情報であることを特徴とするデータ転送制御装置。
  10. バスに接続される複数のノード間でのデータ転送のためのデータ転送制御装置であって、
    送信開始コマンドが発行された場合に、パケット記憶手段からパケットを読み出す読み出し手段と、
    読み出されたパケットを各ノードに送信するためのサービスを提供するリンク手段と、
    ノードのトポロジ情報をクリアするリセットの発生によりパケットの送信が中止された場合に、リセットの発生によりパケットの送信が中止されたことを知らせるステータス情報を記憶するステータス記憶手段と、
    を含むことを特徴とするデータ転送制御装置。
  11. 請求項10において、
    前記送信開始コマンドを発行する処理手段を含み、
    前記処理手段が、
    リセットの発生によりパケットの送信が中止されたと前記ステータス情報に基づいて判断した場合には、送信が完了したか否かを判断することなく、開始した送信処理をキャンセルすることを特徴とするデータ転送制御装置。
  12. 請求項1乃至11のいずれかにおいて、
    前記リセットが、IEEE1394の規格において定義されるバスリセットであることを特徴とするデータ転送制御装置。
  13. 請求項1乃至12のいずれかにおいて、
    IEEE1394の規格に準拠したデータ転送を行うことを特徴とするデータ転送制御装置。
  14. 請求項1乃至13のいずれかのデータ転送制御装置と、
    前記データ転送制御装置及びバスを介して他のノードから受信したデータに所与の処理を施す装置と、
    処理が施されたデータを出力又は記憶するための装置とを含むことを特徴とする電子機器。
  15. 請求項1乃至13のいずれかのデータ転送制御装置と、
    前記データ転送制御装置及びバスを介して他のノードに送信するデータに所与の処理を施す装置と、
    処理が施されるデータを取り込むための装置とを含むことを特徴とする電子機器。
JP20124899A 1999-07-15 1999-07-15 データ転送制御装置及び電子機器 Expired - Fee Related JP3539287B2 (ja)

Priority Applications (10)

Application Number Priority Date Filing Date Title
JP20124899A JP3539287B2 (ja) 1999-07-15 1999-07-15 データ転送制御装置及び電子機器
CNB031364667A CN100484056C (zh) 1999-07-15 2000-07-12 数据传输控制装置和电子设备
KR10-2001-7003275A KR100397404B1 (ko) 1999-07-15 2000-07-12 데이터 전송 제어 장치 및 전자기기
AT00946266T ATE389990T1 (de) 1999-07-15 2000-07-12 Einrichtung zur datenübertragungssteuerung und elektronisches gerät
DE60038359T DE60038359T2 (de) 1999-07-15 2000-07-12 Einrichtung zur datenübertragungssteuerung und elektronisches gerät
PCT/JP2000/004637 WO2001006708A1 (fr) 1999-07-15 2000-07-12 Dispositif de gestion de transfert de donnees et appareil electronique
CNB008012555A CN1146191C (zh) 1999-07-15 2000-07-12 数据传输控制装置和电子设备
US09/787,077 US6978327B1 (en) 1999-07-15 2000-07-12 Data transfer control device and electronic equipment for performing data
EP00946266A EP1120936B1 (en) 1999-07-15 2000-07-12 Data transfer control device and electronic apparatus
TW089114143A TW507440B (en) 1999-07-15 2000-07-14 Data transfer controller and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20124899A JP3539287B2 (ja) 1999-07-15 1999-07-15 データ転送制御装置及び電子機器

Publications (2)

Publication Number Publication Date
JP2001036531A JP2001036531A (ja) 2001-02-09
JP3539287B2 true JP3539287B2 (ja) 2004-07-07

Family

ID=16437803

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20124899A Expired - Fee Related JP3539287B2 (ja) 1999-07-15 1999-07-15 データ転送制御装置及び電子機器

Country Status (9)

Country Link
US (1) US6978327B1 (ja)
EP (1) EP1120936B1 (ja)
JP (1) JP3539287B2 (ja)
KR (1) KR100397404B1 (ja)
CN (2) CN1146191C (ja)
AT (1) ATE389990T1 (ja)
DE (1) DE60038359T2 (ja)
TW (1) TW507440B (ja)
WO (1) WO2001006708A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100417128C (zh) * 2002-07-31 2008-09-03 汤姆森特许公司 分组处理结构
DE10302363A1 (de) * 2003-01-22 2004-08-05 Deutsche Thomson-Brandt Gmbh Verfahren zum Betreiben eines Netzwerks von Schnittstellenknoten und Schnittstelleneinrichtung
DE10335572A1 (de) * 2003-07-31 2005-03-17 Deutsche Thomson-Brandt Gmbh Netzwerkteilnehmerstation für ein Netzwerk verteilter Stationen und Verfahren zum Betreiben einer Netzwerkteilnehmerstation
DE102005001286A1 (de) * 2005-01-11 2006-07-20 Siemens Ag Verfahren und Vorrichtung zur Übertragung von skalierbaren Daten
JP4577093B2 (ja) * 2005-05-31 2010-11-10 日本ビクター株式会社 被制御装置及び制御装置
US8223796B2 (en) * 2008-06-18 2012-07-17 Ati Technologies Ulc Graphics multi-media IC and method of its operation
US20150100711A1 (en) * 2013-10-07 2015-04-09 Qualcomm Incorporated Low power camera control interface bus and devices
CN110366040B (zh) * 2019-07-26 2023-01-20 Tcl王牌电器(惠州)有限公司 电视出厂复位方法、装置、计算机可读存储介质及系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0559214A1 (en) * 1992-03-06 1993-09-08 Pitney Bowes Inc. Event driven commnication network
US5457683A (en) * 1993-05-07 1995-10-10 Apple Computer, Inc. Link and discovery protocols for a ring interconnect architecture
US5724517A (en) * 1994-09-27 1998-03-03 International Business Machines Corporation Method for generating a topology map for a serial bus
US5559801A (en) * 1995-01-20 1996-09-24 Advanced Micro Devices Inc. Programmable packet sampling for network management
US5764930A (en) * 1996-04-01 1998-06-09 Apple Computer, Inc. Method and apparatus for providing reset transparency on a reconfigurable bus
JPH09282263A (ja) * 1996-04-12 1997-10-31 Sony Corp 電子機器及びその識別情報構成方法
EP0841776A1 (en) * 1996-11-12 1998-05-13 Sony Corporation Communication methods and electronic apparatus thereof
JP3726417B2 (ja) * 1997-04-15 2005-12-14 ソニー株式会社 電子機器及び電子機器間の通信速度情報作成方法並びに記録媒体
US6219697B1 (en) * 1997-05-02 2001-04-17 3Com Corporation Method and apparatus for operating the internet protocol over a high-speed serial bus
US6347097B1 (en) * 1997-12-05 2002-02-12 Texas Instruments Incorporated Method and apparatus for buffering received data from a serial bus
US6038625A (en) * 1998-01-06 2000-03-14 Sony Corporation Of Japan Method and system for providing a device identification mechanism within a consumer audio/video network
US6895003B1 (en) * 1998-02-24 2005-05-17 Canon Kabushiki Kaisha Communication system, apparatus, and method in which data transmission is interrupted for a bus reset
JP4428750B2 (ja) 1998-03-12 2010-03-10 キヤノン株式会社 データ通信システム
JP4026979B2 (ja) 1998-03-30 2007-12-26 キヤノン株式会社 データ通信システム
JP2000078156A (ja) * 1998-09-01 2000-03-14 Canon Inc システム構成表示装置及びシステム構成表示方法、記録媒体
US6304553B1 (en) * 1998-09-18 2001-10-16 Lsi Logic Corporation Method and apparatus for processing data packets
US6366964B1 (en) * 1998-10-22 2002-04-02 Sony Corporation Method of and apparatus for dynamically enumerating objects representing devices within an IEEE 1394 serial bus networking
JP3543647B2 (ja) * 1998-10-27 2004-07-14 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4109770B2 (ja) 1998-12-02 2008-07-02 キヤノン株式会社 通信制御方法及び機器
US6628607B1 (en) * 1999-07-09 2003-09-30 Apple Computer, Inc. Method and apparatus for loop breaking on a serial bus
JP3608441B2 (ja) 1999-07-15 2005-01-12 セイコーエプソン株式会社 データ転送制御装置及び電子機器

Also Published As

Publication number Publication date
CN100484056C (zh) 2009-04-29
DE60038359D1 (de) 2008-04-30
KR100397404B1 (ko) 2003-09-13
EP1120936B1 (en) 2008-03-19
TW507440B (en) 2002-10-21
DE60038359T2 (de) 2009-04-30
EP1120936A4 (en) 2003-04-02
ATE389990T1 (de) 2008-04-15
JP2001036531A (ja) 2001-02-09
WO2001006708A1 (fr) 2001-01-25
CN1601981A (zh) 2005-03-30
EP1120936A1 (en) 2001-08-01
CN1316144A (zh) 2001-10-03
CN1146191C (zh) 2004-04-14
US6978327B1 (en) 2005-12-20
KR20010075099A (ko) 2001-08-09

Similar Documents

Publication Publication Date Title
JP3843667B2 (ja) データ転送制御装置及び電子機器
JP3543647B2 (ja) データ転送制御装置及び電子機器
JP3543649B2 (ja) データ転送制御装置及び電子機器
JP3584789B2 (ja) データ転送制御装置及び電子機器
JP3608441B2 (ja) データ転送制御装置及び電子機器
JP3539287B2 (ja) データ転送制御装置及び電子機器
JP3494041B2 (ja) データ転送制御装置及び電子機器
JP3494040B2 (ja) データ転送制御装置及び電子機器
JP3494042B2 (ja) データ転送制御装置及び電子機器
JP3606145B2 (ja) データ転送制御装置及び電子機器
JP3610982B2 (ja) データ転送制御装置及び電子機器
JPH1117710A (ja) シリアルインタフェース回路
JPH1117774A (ja) シリアルインタフェース回路
JP2002366508A (ja) データ転送方法
JP2004118704A (ja) インターフェイス装置およびインターフェイス装置の制御方法

Legal Events

Date Code Title Description
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: 20040302

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040315

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: 20080402

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090402

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090402

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100402

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110402

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110402

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120402

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees