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

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

Info

Publication number
JP3494040B2
JP3494040B2 JP32149098A JP32149098A JP3494040B2 JP 3494040 B2 JP3494040 B2 JP 3494040B2 JP 32149098 A JP32149098 A JP 32149098A JP 32149098 A JP32149098 A JP 32149098A JP 3494040 B2 JP3494040 B2 JP 3494040B2
Authority
JP
Japan
Prior art keywords
data
packet
data transfer
area
bus
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 - Lifetime
Application number
JP32149098A
Other languages
English (en)
Other versions
JP2000134242A (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
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP32149098A priority Critical patent/JP3494040B2/ja
Publication of JP2000134242A publication Critical patent/JP2000134242A/ja
Application granted granted Critical
Publication of JP3494040B2 publication Critical patent/JP3494040B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ転送制御装
置及びこれを含む電子機器に関する。
【0002】
【背景技術及び発明が解決しようとする課題】近年、I
EEE1394と呼ばれるインターフェース規格が脚光
を浴びている。このIEEE1394は、次世代のマル
チメディアにも対応可能な高速シリアルバスインターフ
ェースを規格化したものである。このIEEE1394
によれば、動画像などのリアルタイム性が要求されるデ
ータも扱うことができる。また、IEEE1394のバ
スには、プリンタ、スキャナ、CD−Rドライブ、ハー
ドディスクドライブなどのコンピュータの周辺機器のみ
ならず、ビデオカメラ、VTR、TVなどの家庭用電化
製品も接続できる。このため、電子機器のデジタル化を
飛躍的に促進できるものとして期待されている。
【0003】このようなIEEE1394の概要につい
ては、例えば「IEEE1394ハイ・パフォーマンス
・シリアルバスの概要」(Interface Ap
r.1996の1〜10頁)、「PC周辺機器用バス規
格群総覧」(Interface Jan.1997の
106頁〜116頁)、「IEEE1394−1995
(FireWire)のリアルタイム転送モードとマル
チメディア対応プロトコル」(Interface J
an.1997の136〜146頁)に開示されてい
る。また、IEEE1394に準拠したデータ転送制御
装置としては、テキサス・インスツルメンツ社製のTS
B12LV31などが知られている。
【0004】しかしながら、このIEEE1394に準
拠したデータ転送制御装置には次のような課題があるこ
とが判明した。
【0005】即ち、現在のIEEE1394規格によれ
ば最大で400Mbpsの転送速度が実現可能となって
いる。しかし、現実には、処理のオーバーヘッドの存在
に起因して、システム全体の実転送速度はこれよりもか
なり低くなっている。つまり、CPU上で動作するファ
ームウェアやアプリケーションソフトが、送信データを
準備したり、受信データを取り込んだりするなどの処理
に多くの時間を要してしまい、バス上での転送速度が速
くても、結局、高速なデータ転送を実現できない。
【0006】特に、周辺機器に組み込まれるCPUは、
パーソナルコンピュータなどのホストシステムに組み込
まれるCPUに比べて処理能力が低い。このため、ファ
ームウェアやアプリケーションソフトの処理のオーバー
ヘッドの問題は、非常に深刻なものとなる。従って、こ
のようなオーバーヘッドの問題を効果的に解消できる技
術が望まれている。
【0007】本発明は、以上のような技術的課題に鑑み
てなされたものであり、その目的とするところは、ファ
ームウェアやアプリケーションソフトなどの処理のオー
バーヘッドを軽減し、小規模なハードウェアで高速なデ
ータ転送を実現できるデータ転送制御装置及びこれが用
いられる電子機器を提供することにある。
【0008】
【課題を解決するための手段】上記課題を解決するため
に本発明は、バスに接続される複数のノード間でのデー
タ転送のためのデータ転送制御装置であって、後段のア
プリケーションに接続される第1のバスと、該データ転
送制御装置をコントロールする第2のバスと、物理層の
デバイスに電気的に接続される第3のバスと、ランダム
アクセスが可能でありパケットを格納するための記憶手
段に電気的に接続される第4のバスと、前記第1、第
2、第3のバスのいずれかと前記第4のバスとの間にデ
ータ経路を確立するための調停を行う調停手段とを含む
ことを特徴とする。
【0009】本発明によれば、互いに分離される第1、
第2、第3のバスが設けられる。そして調停手段の調停
により、これらの第1、第2、第3のバスのいずれか
と、ランダムアクセス可能な記憶手段の第4のバスとの
間にデータ経路が確立される。このようにすることで、
他のノードから物理層のデバイスを介して受信したパケ
ットを、所望の配置で記憶手段に格納することが可能に
なる。また、パケットの制御情報の読み出しや書き込み
は第2のバスを用いて行い、パケットのデータの読み出
しや書き込みは第1のバスを用いて行うことも可能にな
る。これにより、トランザクション層やアプリケーショ
ン層などの上層の処理負担を軽減できる。また、第1、
第2のバスとして低速なバスを採用したり、データ転送
制御装置をコントロールするデバイスとして低速で安価
なデバイスを採用することができる。この結果、データ
転送制御装置の小規模化、低コスト化を図れるようにな
る。
【0010】なお、第1、第2、第3、第4のバスは、
各々、アプリケーション、データ転送制御装置をコント
ロールするデバイス、物理層のデバイス、RAMに、少
なくとも電気的に接続されていればよく、これらのバス
上に他のデバイスを介在させてもよい。
【0011】また本発明は、前記アプリケーションと前
記記憶手段との間でのデータ転送を前記第2のバスから
の介入なしに行うための第1のDMAコントローラと、
前記物理層のデバイスと前記記憶手段との間でのデータ
転送を前記第2のバスからの介入なしに行うための第2
のDMAコントローラとを含むことを特徴とする。この
ようにすることで、アプリケーションと記憶手段との間
や、物理層のデバイスと記憶手段との間でデータ転送を
行う際に、データ転送制御装置をコントロールするデバ
イスが介入しなくてもよくなる。この結果、データ転送
制御装置をコントロールするデバイスの処理負担を大幅
に軽減できる。
【0012】また本発明は、前記物理層のデバイスと前
記記憶手段との間でのデータ転送のための位相調整用の
FIFOを含むことを特徴とする。このようにすれば、
調停手段による調停があった場合にも、物理層のデバイ
スと記憶手段との間でのデータ転送を適正に行うこと可
能になる。
【0013】また本発明は、前記調停手段が、前記物理
層のデバイスと前記記憶手段との間でのデータ転送の優
先順位を最も高くし、前記FIFOの段数が3段以下で
あることを特徴とする。このようにすれば、物理層のデ
バイスと記憶手段との間でのデータ転送を優先して行っ
た場合にも、データが失われてしまうなどの事態を防止
できる。
【0014】また本発明は、前記記憶手段が、パケット
の制御情報が格納される制御情報領域と、パケットのデ
ータが格納されるデータ領域とに分離されていることを
特徴とする。このようにすることで、トランザクション
層やアプリケーション層などの上層の処理負荷を軽減で
き、システム全体の実転送速度を向上できる。また、記
憶手段からのパケットの読み出し処理や記憶手段への書
き込み処理を簡素化できる。
【0015】また本発明は、前記記憶手段の前記制御情
報領域が、受信用制御情報領域と送信用制御情報領域と
に分離されていることを特徴とする。このようにするこ
とで、受信用制御情報領域から制御情報を連続して読み
出したり、送信用制御情報領域に制御情報を連続して書
き込むことが可能になり、処理の簡素化、処理負担の軽
減化を図れる。
【0016】また本発明は、前記記憶手段の前記データ
領域が、受信用データ領域と送信用データ領域とに分離
されていることを特徴とする。このようにすることで、
受信用データ領域から連続して受信データを読み出した
り、送信用データ領域に連続して送信データを書き込む
ことが可能になり、上層の処理のオーバーヘッドを軽減
できる。
【0017】また本発明は、パケットの制御情報を前記
制御情報領域に書き込み、パケットのデータを前記デー
タ領域に書き込むパケット分離手段を含むことを特徴と
する。このようにすれば、パケットの制御情報とデータ
が自動的に、各々、制御情報領域、データ領域に書き込
まれるようになり、上層の処理のオーバーヘッドを軽減
できる。
【0018】また本発明は、パケットの少なくとも制御
情報とデータを区別するためのタグ情報を生成すると共
に、生成された該タグ情報をパケットに関連づける手段
を含み、前記パケット分離手段が、パケットに関連づけ
られた前記タグ情報に基づいて、パケットの制御情報を
前記制御情報領域に書き込み、パケットのデータを前記
データ領域に書き込むことを特徴とする。このようにす
ることで、簡易なハードウェア構成で、パケットの制御
情報を制御情報領域にデータをデータ領域に格納するこ
とが可能になる。
【0019】また本発明は、パケットの制御情報を前記
記憶手段の前記制御情報領域から読み出し、該制御情報
と対をなすパケットのデータを前記記憶手段の前記デー
タ領域から読み出すパケット結合手段を含むことを含む
ことを特徴とする。このようにすれば、上層は、パケッ
トを送信する順序に依存せずに、制御情報やデータを記
憶手段に書き込める。また、上層は、送信すべきパケッ
トのデータをデータ領域に連続して書き込むこともでき
る。また、制御情報領域の制御情報とデータ領域のデー
タとを結合してパケットを組み立てる処理に、上層が関
与する必要がない。従って、上層の処理負担を格段に軽
減できるようになる。
【0020】また本発明は、前記パケット結合手段が、
前記データ領域から読み出されるデータのアドレスを指
すデータポインタを、前記制御情報領域から読み出され
た制御情報から取得し、取得したデータポインタを用い
て前記データ領域からデータを読み出すことを特徴とす
る。このようにすれば、制御情報と対になるデータを適
正にデータ領域から読み出せるようになると共に、制御
情報とデータとを結合しパケットを組み立てる処理の簡
素化を図れる。
【0021】なお、本発明では、IEEE1394の規
格に準拠したデータ転送を行うことが望ましい。
【0022】また本発明に係る電子機器は、上記のいず
れかのデータ転送制御装置と、前記データ転送制御装置
及びバスを介して他のノードから受信したデータに所与
の処理を施す装置と、処理が施されたデータを出力又は
記憶するための装置とを含むことを特徴とする。また本
発明に係る電子機器は、上記のいずれかのデータ転送制
御装置と、前記データ転送制御装置及びバスを介して他
のノードに送信するデータに所与の処理を施す装置と、
処理が施されるデータを取り込むための装置とを含むこ
とを特徴とする。
【0023】本発明によれば、他のノードから転送され
たデータを電子機器において出力したり記憶したりする
処理、電子機器において取り込んだデータを他のノード
に転送したりする処理を高速化することが可能になる。
また、本発明によれば、データ転送制御装置を小規模化
できると共に、データ転送を制御するファームウェアな
どの処理負担を軽減できるため、電子機器の低コスト
化、小規模化などを図ることも可能になる。
【0024】
【発明の実施の形態】以下、本発明の好適な実施形態に
ついて図面を用いて詳細に説明する。
【0025】1.IEEE1394 まず、IEEE1394の概要について簡単に説明す
る。
【0026】1.1 データ転送速度、接続トポロジー IEEE1394(IEEE1394−1995、IE
EE1394.A)では100〜400Mbpsの高速
なデータ転送が可能となっている(IEEE1394.
Bでは800〜3200Mbps)。また、転送速度が
異なるノードをバスに接続することも許される。
【0027】各ノードはツリー状に接続されており、1
つのバスに最大で63個のノードが接続可能になってい
る。なお、バスブリッジを利用すれば約64000個の
ノードを接続することも可能である。
【0028】電源が投入されたり、途中でデバイスの抜
き差しが発生すると、バスリセットが発生し、接続トポ
ロジーに関する情報が全てクリアされる。そして、バス
リセット後、ツリー識別(ルートノードの決定)、自己
識別が行われる。その後、アイソクロナスリソースマネ
ージャ、サイクルマスタ、バスマネージャ等の管理ノー
ドが決定される。そして、通常のパケット転送が開始さ
れる。
【0029】1.2 転送方式 IEEE1394では、パケットの転送方式として、信
頼性が要求されるデータの転送に好適な非同期転送と、
リアルタイム性が要求される動画像や音声などのデータ
の転送に好適なアイソクロナス転送が用意されている。
【0030】図1(A)に、非同期サブアクションの例
を示す。1つのサブアクションは、調停、パケット転
送、アクノリッジメントからなる。即ち、データ転送に
先立って、まず、バスの使用権に関する調停が行われ
る。そしてソース(転送元)ノードからデスティネーシ
ョン(転送先)ノードにパケットが転送される。このパ
ケットのヘッダにはソースIDとデスティネーションI
Dが含まれる。デスティネーションノードは、このデス
ティネーションIDを読んで、自ノード宛のパケットか
否かを判断する。デスティネーションノードは、パケッ
トを受け取ると、ソースノードにアクノリッジメント
(ACK)のパケットを返す。
【0031】パケット転送とACKの間にはアクノリッ
ジギャップが存在する。また、1つのサブアクションと
次のサブアクションの間にはサブアクションギャップが
存在する。そして、サブアクションギャップに相当する
一定のバス・アイドル時間が経過しないと、次のサブア
クションの調停を開始できない。これによりサブアクシ
ョン相互の衝突が回避される。
【0032】図1(B)に、アイソクロナスサブアクシ
ョンの例を示す。アイソクロナス転送はブロードキャス
ト(バスに接続される全てのノードに転送)で実行され
るため、パケット受信時にACKは返送されない。ま
た、アイソクロナス転送では、ノードIDではなくチャ
ネル番号を使用してパケット転送が行われる。なお、サ
ブアクション間にはアイソクロナスギャップが存在す
る。
【0033】図1(C)に、データ転送時のバスの様子
を示す。アイソクロナス転送は、サイクルマスタが一定
周期毎にサイクルスタートパケットを発生することで開
始する。これにより、1つのチャネル当たり、125μ
s毎に少なくとも1つのパケットを転送できるようにな
る。この結果、動画像や音声などのリアルタイム性が要
求されるデータの転送が可能になる。
【0034】非同期転送はアイソクロナス転送の合間に
行われる。即ち、アイソクロナス転送の方が非同期転送
よりも優先順位が高くなっている。これは、図1(C)
に示すように、アイソクロナスギャップの時間を、非同
期転送のサブアクションギャップの時間よりも短くする
ことで実現される。
【0035】1.3 ツリー識別 ツリー識別はバスリセットの後に行われる。ツリー識別
によりノード間の親子関係やルートノードが決定され
る。
【0036】まず、リーフノード(1つのノードにしか
接続されていないノード)が、隣接するノードに、ペア
レントノーティファイを送る。例えば図2(A)のよう
にノードA、B、C、D、Eが接続されている場合に
は、ノードAからノードBに、ノードD及びEからノー
ドCに、ペアレントノーティファイ(PN)が送られ
る。
【0037】ペアレントノーティファイを受け取ったノ
ードは、送り元のノードを自身の子と認知する。そし
て、チャイルドノーティファイをそのノードに送る。例
えば図2(A)では、ノードBからノードAに、ノード
CからノードD及びEにチャイルドノーティファイ(C
N)が送られる。これによってノードB、A間、ノード
C、D間、ノードC、E間の親子関係が決定する。
【0038】ノードB、Cの親子関係は、どちらが先に
ペアレントノーティファイを送ったかで決定される。例
えば図2(B)のように、ノードCの方が先にペアレン
トノーティファイを送ると、ノードBが親になりノード
Cが子になる。
【0039】ポートの接続先の全てのノードが自身の子
となるノードがルートになる。図2(B)では、ノード
Bがルートになる。なお、IEEE1394では、全て
のノードがルートになる可能性がある。
【0040】1.4 自己識別 ツリー識別の後、自己識別が行われる。自己識別におい
ては、接続トポロジーにおいてルートノードから遠いノ
ードから順にセルフIDパケットが転送される。
【0041】より具体的には、例えば図3において、ま
ず、ルートノードBのポート1(番号の小さいポート)
に接続されるノードAが、セルフIDパケット(自己識
別パケット)を全てのノードにブロードキャストする。
【0042】次に、ルートノードBのポート2(番号が
大きいポート)に接続されるノードCが選択され、この
ノードCのポート1(番号の小さいポート)に接続され
るノードDがセルフIDパケットをブロードキャストす
る。次に、ノードCのポート2(番号の大きいポート)
に接続されるノードEがセルフIDパケットをブロード
キャストし、その後、ノードCがブロードキャストす
る。最後に、ルートであるノードBがセルフIDパケッ
トをブロードキャストし、自己識別が完了する。
【0043】セルフIDパケットには各ノードのIDが
含まれる。ブロードキャストを行う時点で他のノードか
ら受け取ったセルフIDパケットの個数が、この各ノー
ドのIDとなる。例えば図3では、ノードAがブロード
キャストを行う時点では、どのノードもセルフIDパケ
ットを発していないため、ノードAのIDは0になる。
ノードAは、このID=0をセルフIDパケットに含ま
せてブロードキャストする。また、ノードDがブロード
キャストを行う時点では、ノードAのみがセルフIDパ
ケットを発している。このため、ノードDのIDは1に
なる。同様に、ノードE、C、BのIDは、各々、2、
3、4になる。
【0044】図4(A)にセルフIDパケットのフォー
マットを示す。同図に示すようにセルフIDパケットに
は各ノードの基本情報が含まれる。具体的には、各ノー
ドのID(PHY_ID)、リンク層がアクティブか否
か(L)、ギャップカウント(gap_cnt)、転送
速度(sp)、アイソクロナスリソースマネージャにな
れる能力を有するか否か(C)、電力状態(pwr)、
ポートの状態(p0、p1、p2)などに関する情報が
含まれる。
【0045】なお、図4(B)に、ノードのポート数が
4個以上の場合に使用されるセルフIDパケット#1、
#2、#3のフォーマットを示す。ポート数が4〜11
個の場合にはセルフIDパケット#0(図4(A))及
び#1が、12〜19個の場合にはセルフIDパケット
#0、#1及び#2が、20〜27個の場合にはセルフ
IDパケット#0、#1、#2及び#3が使用されるこ
とになる。
【0046】また、図4(C)、(D)に、セルフID
パケットと同様に、物理層のパケット(PHYパケッ
ト)であるリンクオンパケット、PHY構成パケットの
フォーマットを示す。
【0047】1.5 アイソクロナスリソースマネージ
ャ アイソクロナスリソースマネージャ(IRM)は以下の
管理機能を有する。
【0048】第1に、アイソクロナス転送に必要な種々
のリソースを提供する。例えば、チャネル番号レジスタ
や帯域幅レジスタを提供する。第2に、バスマネージャ
のIDを示すレジスタを提供する。第3に、バスマネー
ジャがいない場合に、簡易的なバスマネージャとなる役
割を有する。
【0049】IRMになれる能力を有し(アイソクロナ
スリソースを管理する能力を有し)、且つ、動作状態に
なっている(リンク層がアクティブになっている)ノー
ドの中で(IRMになれる資格を有するノードの中
で)、ルートに最も近い(IDが最も大きい)ノードが
IRMになる。より、具体的には、図4(A)のセルフ
IDパケットにおいて、IRMになれる能力を有するか
否かを示すC(CONTENDER)ビットと、リンク
層がアクティブか否かを示すL(LINK_ACTIV
E)ビットが共に1になっているノードの中で、ルート
に一番近いノード(PHY_IDが一番大きいノード)
がIRMになる。例えば、ルートノードのセルフIDパ
ケットのCビットとLビットが1の場合には、ルートノ
ードがIRMになる。
【0050】1.6 サイクルマスタ、バスマネージャ サイクルマスタは、図1(C)に示すサイクルスタート
パケットを送信する役割を有し、ルートノードがサイク
ルマスタになる。
【0051】バスマネージャは、トポロジーマップ(各
ノードの接続状態)の作成、スピードマップの作成、バ
スの電力管理、サイクルマスタの決定、ギャップカウン
トの最適化などの仕事を行う。
【0052】1.7 プロトコル構成 図5を用いて、IEEE1394のプロトコル構成(層
構造)について説明する。
【0053】IEEE1394のプロトコルは、物理
層、リンク層、トランザクション層により構成される。
また、シリリアルバスマネージメントは、物理層、リン
ク層、トランザクション層をモニターしたり制御したり
するものであり、ノードの制御やバスのリソース管理の
ための種々の機能を提供する。
【0054】物理層は、リンク層により使用されるロジ
カルシンボルを電気信号に変換したり、バスの調停を行
ったり、バスの物理的インターフェースを定義する。
【0055】リンク層は、アドレッシング、データチェ
ック、データフレーミング、サイクル制御などを提供す
る。
【0056】トランザクション層は、リード、ライト、
ロックなどのトランザクションを行うためのプロトコル
を定義する。
【0057】物理層及びリンク層は、通常、データ転送
制御装置(インターフェースチップ)などのハードウェ
アにより実現される。また、トランザクション層は、C
PU上で動作するファームウェアや、ハードウェアによ
り実現される。
【0058】2.全体構成 次に、本実施形態の全体構成について図6を用いて説明
する。
【0059】図6において、PHYインターフェース1
0は、物理層のプロトコルを実現するPHYチップとの
インターフェースを行う回路である。
【0060】リンクコア20(リンク手段)は、リンク
層のプロトコルやトランザクション層のプロトコルの一
部を実現する回路であり、ノード間でのパケット転送の
ための各種サービスを提供する。レジスタ22は、これ
らのプロトコルを実現したりリンクコア20を制御する
ためのレジスタである。
【0061】FIFO(ATF)30、FIFO(IT
F)32、FIFO(RF)34は、各々、非同期送信
用、アイソクロナス送信用、受信用のFIFOであり、
例えばレジスタや半導体メモリなどのハードウェアによ
り構成される。本実施形態では、これらのFIFO3
0、32、34の段数は非常に少ない。例えば1つのF
IFOの段数は、好ましくは3段以下であり、更に好ま
しくは2段以下となる。
【0062】DMAC40、42、44は、各々、AT
F、ITF、RF用のDMAコントローラである。これ
らのDMAC40、42、44を用いることで、CPU
66に介入されることなく、RAM80とリンクコア2
0との間でのデータ転送が可能になる。なお、レジスタ
46は、DMAC40、42、44などを制御するレジ
スタである。
【0063】ポートインターフェース50は、アプリケ
ーション層のデバイス(例えばプリンタの印字処理を行
うデバイス)とのインターフェースを行う回路である。
本実施形態では、このポートインターフェース50を用
いて、例えば8ビットのデータ転送が可能になってい
る。
【0064】FIFO(PF)52は、アプリケーショ
ン層のデバイスとの間でのデータ転送のためのFIFO
であり、DMAC54は、PF用のDMAコントローラ
である。レジスタ56は、ポートインターフェース50
やDMAC54を制御するレジスタである。
【0065】CPUインターフェース60は、データ転
送制御装置をコントロールするCPU66とのインター
フェースを行う回路である。CPUインターフェース6
0は、アドレスデコーダ62、データ同期化回路63、
割り込みコントローラ64を含む。クロック制御回路6
8は、本実施形態で使用されるクロックを制御するもの
であり、PHYチップから送られてくるSCLKや、マ
スタークロックであるHCLKが入力される。
【0066】バッファマネージャ70は、RAM80と
のインターフェースを管理する回路である。バッファマ
ネージャ70は、バッファマネージャの制御のためのレ
ジスタ72、RAM80へのバス接続を調停する調停回
路74、各種の制御信号を生成するシーケンサ76を含
む。
【0067】RAM80は、ランダムアクセス可能なパ
ケット記憶手段として機能するものであり、その機能は
例えばSRAM、DRAMなどにより実現される。そし
て、本実施形態では、図7に示すように、このRAM8
0がヘッダ領域(広義には制御情報領域)とデータ領域
に分離されている。そして、パケットのヘッダ(広義に
は制御情報)は図7のヘッダ領域に格納され、パケット
のデータはデータ領域に格納される。
【0068】なおRAM80は、本実施形態のデータ転
送制御装置に内蔵させることが特に望ましいが、その一
部又は全部を外付けにすることも可能である。
【0069】バス90(或いはバス92、94)は、ア
プリケーションに接続されるものである(第1のバ
ス)。またバス96(或いはバス98)はデータ転送制
御装置をコントロールするためのものであり、データ転
送制御装置をコントロールするデバイス(例えばCP
U)に電気的に接続される(第2のバス)。またバス1
00(或いはバス102、104、105、106、1
07、108、109)は、物理層のデバイス(例えば
PHYチップ)に電気的に接続されるものである(第3
のバス)。また、バス110は、ランダムアクセス可能
な記憶手段であるRAMに電気的に接続されるものであ
る(第4のバス)。
【0070】バッファマネージャ70の調停回路74
は、DMAC40、DMAC42、DMAC44、CP
Uインターフェース60、DMAC54からのバスアク
セス要求の調停を行う。そして、この調停結果に基づい
て、各々、バス105、107、109、98、94の
いずれかと、RAM80のバス110との間にデータの
経路が確立される(第1、第2、第3のバスのいずれか
と第4のバスとの間にデータ経路が確立される)。
【0071】本実施形態の1つの特徴は、ランダムアク
セスが可能でありパケットを格納するRAM80を設け
ると共に、互いに分離されるバス90、96、100
と、これらのバスとRAM80のバス110との間にデ
ータ経路を確立するための調停回路74とを設けた点に
ある。
【0072】例えば図8に、本実施形態と構成の異なる
データ転送制御装置の例を示す。このデータ転送制御装
置では、リンクコア902は、PHYインターフェース
900、バス922を介してPHYチップと接続され
る。また、リンクコア902は、FIFO904、90
6、908、CPUインターフェース910、バス92
0を介してCPU912に接続される。そして、CPU
912は、バス924を介して、CPUにローカルなメ
モリであるRAM914に接続される。
【0073】なお、FIFO904、906、908
は、図6のFIFO30、32、34と異なり、非常に
段数の多いものとなる(例えば1つのFIFOが16段
程度)。
【0074】図8の構成のデータ転送制御装置を用いた
場合のデータ転送の手法について図9を用いて説明す
る。PHYチップ930を介して他のノードから送られ
てきた受信パケットは、バス922、データ転送制御装
置932、バス920を介してCPU912が受け取
る。そして、CPU912は、受け取った受信パケット
をバス924を介してRAM914に書き込む。そし
て、CPU912は、受信パケットをアプリケーション
層が使用できるように加工し、バス926を介してアプ
リケーション層のデバイス934に転送する。
【0075】一方、アプリケーション層のデバイス93
4からのデータを転送する場合には、CPU912は、
このデータをRAM914に書き込む。そして、RAM
914のデータにヘッダを付加することでIEEE13
94に準拠したパケットを生成する。そして生成された
パケットは、データ転送制御装置932、PHYチップ
930などを介して他のノードに送信される。
【0076】しかしながら、このようなデータ転送手法
によると、CPU912の処理負荷が非常に重くなる。
従って、ノード間を接続するシリアルバスの転送速度が
高速になっても、CPU912の処理のオーバーヘッド
などに起因して、システム全体の実転送速度は低くな
り、結局、高速なデータ転送を実現できない。
【0077】このような問題を解決する1つの手法とし
て、図10に示すように、データ転送制御装置932と
RAM914との間でのデータ転送や、RAM914と
アプリケーション層のデバイス934との間でのデータ
転送を、ハードウェアDMAにより実現する手法も考え
られる。
【0078】しかしながら、この手法では、CPUバス
928が、データ転送制御装置932、RAM914間
でのデータ転送、RAM914、CPU912間でのデ
ータ転送、RAM914、アプリケーション層デバイス
934間でのデータ転送に使用されることになる。従っ
て、システム全体のデータ転送の高速化を図ろうとする
と、CPUバス928としてPCIバスのような高速な
バスを使用しなければならなくなり、これは、データ転
送制御装置を使用する電子機器の高コスト化を招く。
【0079】これに対して、本実施形態では図11に示
すように、データ転送制御装置120、アプリケーショ
ン層デバイス124間のバス90と、CPUバス96
と、データ転送制御装置120、RAM80間のバス1
10とが互いに分離されている。従って、CPUバス9
6をデータ転送の制御のみに使用できるようになる。ま
た、バス90を占有して、データ転送制御装置120、
アプリケーション層デバイス124間でデータ転送を行
うことができるようになる。例えば、データ転送制御装
置120が組み込まれる電子機器がプリンタである場合
には、バス90を占有して印字データを転送できるよう
になる。この結果、CPU66の処理負荷を軽減でき、
システム全体の実転送速度を高めることができる。また
CPU66として安価なものを採用できると共に、CP
Uバス96として高速なバスを使用する必要性がなくな
る。このため、電子機器の低コスト化、小規模化を図れ
るようになる。
【0080】3.ヘッダ領域とデータ領域の分離 3.1 本実施形態の特徴 図8の比較例では、図12(A)に示すように、リンク
コア902とCPU912との間には、送信用のFIF
O904、906と受信用のFIFO908が設けられ
ている。
【0081】即ち、他のノードから送られてくる受信パ
ケットは、リンクコア902を介してFIFO908に
順次入力される。そして、CPU912(CPU上で動
作するファームウェアやアプリケーションソフト)は、
FIFO908に入力された順序で受信パケットをFI
FO908から順次読み出す。
【0082】また、CPU912は、転送すべき送信パ
ケットをFIFO904、906に順次入力する。そし
て、送信パケットは、このFIFO904、906に入
力された順序でリンクコア902を介して他のノードに
順次転送される。
【0083】これに対して、本実施形態では、図12
(B)に示すように、ノード間でのパケット転送のため
の各種サービスを提供するリンクコア20と、CPU6
6との間に、FIFO30、32、34の他に、ランダ
ムアクセス可能なパケット記憶手段として機能するRA
M80を介在させている。
【0084】即ち、他のノードからリンクコア20を介
して送られてくる受信パケットは、FIFO34に格納
された後に、DMAC44(書き込み手段)によりRA
M80に書き込まれる。そして、CPU66が、このラ
ンダムアクセス可能なRAM80から受信パケットを読
み出す。
【0085】また、CPU66などにより、転送すべき
送信パケットがRAM80に書き込まれる。そして、こ
の書き込まれた送信パケットは、DMAC40、42
(読み出し手段)により読み出され、FIFO30、3
2、リンクコア20を介して他のノードに転送される。
【0086】図12(A)では、CPU912は、受信
した順序でFIFO908から受信パケットを受け取ら
なければならず、送信する順序でFIFO904、90
6に送信パケットを格納しなければならない。これに対
して、リンクコア20とCPU66との間にランダムア
クセス可能なRAM80を介在させる本実施形態では、
受信順序に依存せずに、RAM80の所望のアドレスに
受信パケットを書き込むことが可能になる。また、送信
順序に依存せずに、CPU66などがRAM80の所望
のアドレスに送信パケットを書き込むことも可能にな
る。
【0087】また、図12(A)では、FIFO90
4、906、908の段数を非常に多くする必要があ
る。これに対して、本実施形態では、FIFO30、3
2、34の段数を格段に減らすことができ、例えば段数
を3段以下とすることも可能になる。
【0088】なお、本実施形態では、FIFO30、3
2、34を設けない構成にしてもよい。
【0089】また、本実施形態では、図7に示すよう
に、RAM80の記憶領域を、パケットのヘッダ(広義
には制御情報)が格納されるヘッダ領域(広義には制御
情報領域)とパケットのデータが格納されるデータ領域
に分離している。これは、図12(B)に示すようにリ
ンクコア20とCPU66との間にランダムアクセス可
能なRAM80を介在させることで実現可能になる。
【0090】即ち、図12(A)では、CPU912
は、受信した順序でFIFO908から受信パケットを
受け取らなければならない。従って、受信パケットをヘ
ッダとデータに分離する処理を実現しようとすると、F
IFO908から読み出した受信パケットをCPU91
2がローカルメモリであるRAMに一旦書き込み、その
RAMからCPU912が受信パケットを読み出してヘ
ッダとデータに分離する必要がある。また、図12
(A)では、CPU912は、送信する順序でFIFO
904、906に送信パケットを入力しなければならな
い。例えば、パケット1(ヘッダ1、データ1)、パケ
ット2(ヘッダ2、データ2)、パケット3(ヘッダ
3、データ3)を送信する場合には、ヘッダ1、データ
1、ヘッダ2、データ2、ヘッダ3、データ3というよ
うな順序でFIFO904、906に送信パケットを入
力しなければならない。従って、CPU912による並
べ替え処理が必要になる。
【0091】このように図12(A)では、CPU91
2の処理負荷が非常に重くなり、これは結局、システム
全体の実転送速度の低下という事態を招く。
【0092】これに対して、本実施形態では、RAM8
0の記憶領域がヘッダ領域とデータ領域に分離される。
より具体的には、図13に示すように、各受信パケット
のヘッダとデータがハードウェアにより分離され、ヘッ
ダがヘッダ領域に、データがデータ領域に格納される。
また、図14に示すように、ヘッダ領域に格納されたヘ
ッダとデータ領域に格納されたデータとがハードウェア
により結合され、各ノードに転送すべき送信パケットが
組み立てられる。従って、CPU66の処理負荷が図1
2(A)に比べて非常に軽くなり、システム全体の実転
送速度を向上できる。また、CPU66として安価なも
のを採用できると共にCPU66に接続されるバスも低
速なもので済むため、データ転送制御装置や電子機器の
小規模化、低コスト化を図れるようになる。
【0093】また、本実施形態によれば、ヘッダはヘッ
ダ領域にまとめられて格納され、データもデータ領域に
まとめられて格納される。従って、ヘッダやデータの読
み出し処理や書き込み処理の簡易化を図ることができ、
処理のオーバーヘッドを軽減化できる。例えば、図11
の手法でデータ転送を行う場合には、CPU66は、C
PUバス96を介してヘッダ領域にのみアクセスしヘッ
ダを読み出したり書き込んだりするだけでデータ転送を
制御できるようになる。また、アプリケーション層のデ
バイス124は、データ領域のデータを連続してバス9
0を介して読み出したり、データを連続してデータ領域
に書き込んだりすることが可能になる。
【0094】なお、図15に示すように、ヘッダ領域に
格納される各ヘッダと、データ領域に格納される各デー
タとは、ヘッダに含ませたデータポインタにより対応さ
せることが望ましい。この場合、受信パケットのヘッダ
へのデータポインタの付加は、例えばリンクコア20が
行い、送信パケットのヘッダへのデータポインタの付加
は、例えばファームウェアが行うようにする。
【0095】また、本実施形態では、図16に示すよう
に、受信パケットのスタート(ヘッダの最初)、ヘッ
ダ、データ、トレイラーを区別するためのTAGを生成
し、このTAGを受信パケットに関連づけている。より
具体的には、図6のリンクコア20が、受信パケットの
スタート、ヘッダ、データ、トレイラーをFIFO34
に転送する際に、図16に示す2ビットのTAGも同時
にFIFO34に転送している。そして、本実施形態で
は、受信パケットに関連づけられたこのTAGを利用し
て、図13に示すように受信パケットをヘッダとデータ
に分離しヘッダ領域とデータ領域に格納している。より
具体的には、図6のDMAC44が、受信パケットと共
にFIFO34から出力されるTAGを利用して、受信
パケットをヘッダとデータに分離し、RAM80に書き
込んでいる。なお、TAGは、少なくともヘッダとデー
タを区別できるものであればよい。
【0096】例えば、TAGを利用せずに受信パケット
のヘッダとデータを分離する手法として、ヘッダに含ま
れるtcode(トランザクションコード)を利用する
手法が考えられる。即ち、tcodeをデコードして、
ヘッダのサイズを調べ、そのサイズの分だけ受信パケッ
トをヘッダ領域に格納し、残りをデータ領域に格納す
る。
【0097】しかしながら、この手法では、tcode
をデコードする回路が必要となり、回路が大規模化して
しまう。
【0098】これに対して、TAGを利用すれば、DM
AC44は、TAGを見るだけで受信パケットをヘッダ
とデータに分離できる。従って、回路をそれほど大規模
化することなく、簡易な処理で受信パケットのヘッダと
データを分離できるようになる。
【0099】また、本実施形態では、図17(A)に示
すように、ヘッダ領域とデータ領域の他に、これらの領
域と分離されたCPU66のワーク領域をRAM80に
設けている。このようにすれば、CPU66が、ワーク
領域に直接アクセスして、CPU66の処理のためにそ
の領域を利用できるようになる。従って、CPU66が
ローカルメモリを有する場合には、そのメモリを小容量
化することが可能になる。更に、CPU66のローカル
メモリを設ける必要性自体を無くすことも可能になる。
これにより、データ転送制御装置や電子機器の小規模
化、低コスト化を図れるようになる。
【0100】また、本実施形態では、図17(B)に示
すように、ヘッダ領域を受信用と送信用の領域に分離
(分割)している。これらの受信用、送信用のヘッダ領
域の各々は、少なくとも1個以上のパケットを格納でき
るものであればよい。
【0101】例えば図8の構成では、ローカルメモリで
あるRAM914にCPU912が受信パケットや送信
パケットを格納する。このため、CPU912は、受信
パケットや送信パケットを格納したアドレスを各パケッ
ト毎に保持し管理しなければならない。従って、CPU
912の処理が煩雑化し、処理負担が増加する。特に、
CD−Rドライブのように受信処理と送信処理が混在す
るアプリケーションでは、受信パケットと送信パケット
が混在してRAM914に格納されることになるため、
処理の煩雑化、処理負担の増加の問題は更に深刻にな
る。
【0102】これに対して、本実施形態によれば、ヘッ
ダ領域が受信用と送信用の領域に分離される。従って、
RAM80の受信用ヘッダ領域には受信用のヘッダが、
送信用ヘッダ領域には送信用のヘッダが規則的に格納さ
れる。従って、CPU66は、受信処理の際には受信用
ヘッダ領域にアクセスし、送信処理の際には送信用ヘッ
ダ領域にアクセスすればよいことになる。そして、例え
ば受信パケットを連続して受信する場合には、受信用ヘ
ッダ領域からヘッダを連続して読み出し、送信パケット
を連続して送信する場合には、送信用ヘッダ領域にヘッ
ダを連続して書き込めばよいことになる。従って、CP
U66の処理負担を大幅に軽減でき、システム全体の実
転送速度の向上を期待できるようになる。
【0103】また、本実施形態では、図17(C)に示
すように、データ領域を受信用と送信用の領域に分離し
ている。
【0104】このようにすれば、例えば図11におい
て、アプリケーション層のデバイス124は、RAM8
0の受信用データ領域から連続して受信データを読み出
せるようになると共に、送信用データ領域に連続して送
信データを書き込めるようになる。そして、読み出しや
書き込みの際にはアドレスを単純にインクリメント(或
いはデクリメント)すればよいので、アドレス制御も容
易になる。この結果、本実施形態によれば、処理のオー
バーヘッドを格段に軽減でき、実転送速度の向上を期待
できるようになる。
【0105】また、本実施形態では、データ領域を、ア
イソクロナス転送用と非同期転送用の領域に分離してい
る。より具体的には例えば図17(D)に示すように、
データ領域を、アイソクロナス受信用、非同期受信用、
アイソクロナス送信用、非同期送信用の領域に分離して
いる。
【0106】例えば図8の構成では、アイソクロナスパ
ケットと非同期パケットとが混在してFIFO908に
入力される。そして、CPU912は、この入力された
順序でFIFO908からパケットを読み出す。また、
この読み出した順序でパケットをローカルメモリである
RAM914に格納する。従って、RAM914には、
アイソクロナスパケットと非同期パケットが混在して格
納されることになる。
【0107】さて、アイソクロナスパケットの処理には
リアルタイム性が要求される。従って、CPU912は
一定期間内にアイソクロナスパケットに関する処理を終
了しなければならない。ところが、図8では、CPU9
12はFIFO908に入力された順序でFIFO90
8からパケットを読み出さなければならず、また、RA
M914には、アイソクロナスパケットと非同期パケッ
トが混在するようになる。従って、例えば非同期パケッ
トの次にアイソクロナスパケットが送られてきた場合に
も、非同期パケットを先に処理しなければならず、アイ
ソクロナスパケットを先に処理することができない。こ
のため、リアルタイム性が要求されるアイソクロナスパ
ケットの処理が間に合わなくなる可能性がある。
【0108】これに対して、本実施形態では、アイソク
ロナスパケットはアイソクロナス転送用の領域に格納さ
れ、非同期パケットは非同期転送用の領域に格納され
る。従って、非同期パケットの次にアイソクロナスパケ
ットが送られてきた場合にも、アイソクロナスパケット
を先に読み出し、先に処理することが可能になる。この
結果、アイソクロナスパケットの処理を一定期間内に完
了でき、アイソクロナスパケットの処理に要求されるリ
アルタイム性を維持できるようになる。
【0109】また、データ領域をアイソクロナス転送用
と非同期転送用の領域に分離することで、アプリケーシ
ョン層のデバイスの処理も簡易化できる。例えばデジタ
ルビデオカメラにおいて、リアルタイム性が要求される
動画像をアイソクロナスで転送し、信頼性が要求される
静止画像を非同期で転送する場合を考える。そして、図
11において、データ転送制御装置120とアプリケー
ション層のデバイス124との間でバス90を用いて直
接に動画像や静止画像のデータを転送したとする。この
場合に、データ領域をアイソクロナス転送用と非同期転
送用の領域に分離することにより、バス90を用いた動
画像や静止画像のデータの転送を簡易化できる。動画像
のデータを転送する場合には、動画像のデータをまとめ
てアイソクロナス転送用のデータ領域に書き込み、静止
画像のデータを転送する場合には、静止画像のデータを
まとめて非同期転送用のデータ領域に書き込めばよいか
らである。また、この書き込みの際には、アドレスを単
純にインクリメント(或いはデクリメント)すればよい
ので、アドレス制御も容易になるからである。
【0110】また、本実施形態では、RAM80が複数
の領域に分離される場合において、各領域のサイズを可
変に制御するようにしている。より具体的には図18に
示すように、各領域の境界のアドレスを指すポインタP
1〜P6を可変に制御する。
【0111】このようにすれば、アプリケーションに応
じた最適な領域分割を実現できる。例えば、プリンタの
ように、パケットを送信することが少なく、パケットを
受信することが多いアプリケーションでは、受信用の領
域のサイズを大きくする。また、スキャナのように、パ
ケットを受信することが少なく、パケットを送信するこ
とが多いアプリケーションでは、送信用の領域のサイズ
を大きくする。また、非同期転送を行うことが多いアプ
リケーションでは非同期転送用の領域のサイズを大きく
し、アイソクロナス転送を行うことが多いアプリケーシ
ョンではアイソクロナス転送用の領域のサイズを大きく
する。或いは、非同期転送のみを行うアプリケーション
では、アイソクロナス転送用の領域を零にする。このよ
うにすることにより、限られたリソース(少ない記憶容
量のRAM80)を有効利用することが可能になる。
【0112】また、図8の構成でFIFO904、90
6、908の各々のサイズを可変にする手法には、ハー
ドウェアの構成が複雑になるという問題点がある。これ
に対して、RAM80の各領域のサイズを可変制御する
ためには、ポインタP1〜P6の指すアドレスを制御す
る(ポインタの指すアドレスが格納されるレジスタの内
容を制御する)のみでよい。このため、簡易なハードウ
ェア構成で各領域のサイズを可変に制御できる。
【0113】なお、RAM80の各領域のサイズは、電
源投入後もダイナミックに可変制御できることが望まし
い。例えば、CD−Rドライブのようなアプリケーショ
ンでは、CD−Rへのデータの書き込み時には受信処理
が主に行われ、CD−Rからのデータの読み出し時には
送信処理が主に行われる。従って、CD−Rへのデータ
の書き込み時には、受信用の領域のサイズが大きくなる
ようにポインタをダイナミックに切り替える。また、C
D−Rからのデータの読み出し時には、送信用の領域の
サイズが大きくなるようにポインタをダイナミックに切
り替える。このようにすることで、限られたリソースを
有効利用することが可能になる。
【0114】3.2 受信側の構成 次に受信側の構成について説明する。図19に、リンク
コア20、FIFO34、DMAC44の詳細な構成の
一例を示す。
【0115】リンクコア20は、バス監視回路130、
直列・並列変換回路132、パケット整形回路160を
含む。そして、パケット整形回路160は、パケット診
断回路142、シーケンサ167、バッファ168、セ
レクタ170を含み、パケット診断回路142は、TA
G生成回路162、ヘッダ&トレイラー生成回路16
4、エラーチェック回路166を含む。
【0116】ここで、バス監視回路130は、PHYイ
ンターフェース10を介してPHYチップに接続される
8ビット幅のデータバスD、2ビット幅のコントロール
バスCTLを監視する回路である。
【0117】直列・並列変換回路132は、データバス
Dのデータを32ビットのデータに変換する回路であ
る。例えば、転送速度が400Mbpsの場合には8ビ
ットのデータが32ビットのデータに、200Mbps
の場合には4ビットのデータが32ビットのデータに、
100Mbpsの場合には2ビットのデータが32ビッ
トのデータに変換される。
【0118】パケット診断回路142は、パケットの診
断を行う回路である。TAG生成回路162は、ヘッ
ダ、データ、トレイラーなどを区別するためのTAGを
生成する回路であり、ヘッダ&トレイラー生成回路16
4は、ヘッダ及びトレイラー(フッター)を生成する回
路である。また、エラーチェック回路166は、パケッ
トに含まれるパリティなどのエラーチェック情報をチェ
ックしてエラーを検出する回路である。
【0119】シーケンサ167は各種の制御信号を生成
するものである。バッファ168、セレクタ170は、
直列・並列変換回路132からのDI、パケット診断回
路142からのヘッダ及びトレイラー、DMAC44か
らのデータポインタのいずれかを、パケット診断回路1
42からの信号SELにより選択するためのものであ
る。
【0120】FIFO34は、リンコア20からの出力
データであるRDの位相と、RAM80への書き込みデ
ータであるWDATAの位相とを調整するためのバッフ
ァとして機能するものであり、FIFO状態判断回路3
5を含む。FIFO状態判断回路35は、FIFOが空
になると、EMPTYをアクティブにし、FIFOがフ
ルになると、FULLをアクティブにする。
【0121】DMAC44は、パケット分離回路18
0、アクセス要求実行回路190、アクセス要求発生回
路192を含む。
【0122】パケット分離回路180は、パケット整形
回路160により整形されたパケットを分離して、ヘッ
ダ及びトレイラーをRAM80のヘッダ領域に、データ
をデータ領域に書き込むための回路である(図13参
照)。パケット分離回路180は、TAG判別回路18
2、ポインタ更新回路184、アドレス発生回路188
を含む。
【0123】TAG判別回路182は、TAG生成回路
162により生成されたTAG(DTAG)を判別する
回路である。
【0124】ポインタ更新回路184は、TAG判別回
路182の出力を受け、RAM80にヘッダやデータを
書き込むためのヘッダポインタやデータポインタを更新
するための回路である。
【0125】アドレス発生回路188は、ポインタ更新
回路184の出力を受け、RAM80への書き込みアド
レスWADRを発生する回路である。
【0126】アクセス要求実行回路190は、リンクコ
ア20からのアクセス要求を実行するための回路であ
る。アクセス要求実行回路190は、FIFO状態判断
回路35からのFULLがアクティブになると、FFU
LLをアクティブにする。パケット整形回路160内の
シーケンサ167は、FFULLがアクティブでないこ
とを条件に、RD(RxData)のストローブ信号で
あるRDSをアクティブにする。
【0127】なおRFAILは、受信における失敗を、
シーケンサ167がアクセス要求実行回路190に対し
て知らせるための信号である。
【0128】アクセス要求発生回路192は、RAM8
0へのアクセス要求を発生するための回路である。アク
セス要求発生回路192は、バッファマネージャ70か
らの書き込みアクノリッジメントであるWACKやFI
FO状態判断回路35からのEMPTYを受け、書き込
み要求であるWREQをバッファマネージャ70に出力
する。
【0129】3.3 受信側の動作 次に、受信側の動作の詳細について図20のタイミング
波形図などを用いて説明する。
【0130】まず、リンクコア20の動作について説明
する。
【0131】PHYチップを介して他のノードからのパ
ケットを受信すると、パケット診断回路142がそのパ
ケットを診断する。そして、ヘッダ&トレイラー生成回
路164がヘッダを生成(整形)する。このヘッダは、
バッファ168を介してセレクタ170に入力され、パ
ケット診断回路142からの信号SELに基づきセレク
タ170がこのヘッダを選択する。これにより、図20
のA1に示すように、RDとしてヘッダ(H0〜H4)
がFIFO34に出力されることになる。
【0132】なお、図21(A)に、シリアルバス上で
転送される非同期パケットのフォーマット(IEEE1
394規格)を示す。一方、図21(B)に、RAM8
0のヘッダ領域に格納される非同期受信パケットのヘッ
ダ部分のフォーマットを示す(同図において網掛けとな
っている部分がトレイラーである)。このように本実施
形態では、図21(A)に示すフォーマットのパケット
を、ファームウェアなどの上層が使用できるように、図
21(B)に示すフォーマットのパケットに整形してい
る。
【0133】また本実施形態では、ヘッダの第4クワド
レットであるH4(図20のA2)は、図21(B)に
示すようにデータ領域からデータを取り出すためのデー
タポインタになっている。このデータポインタ(H4)
は、DMAC44(ポインタ更新回路184)からバッ
ファ168を介してセレクタ170に入力され、セレク
タ170がこれを選択する。このように、パケット整形
回路160は、DMAC44からデータポインタを受け
取り、そのデータポインタを、RAM80に書き込まれ
るヘッダに埋め込んでいる。
【0134】次に、PHYチップから、データバスDを
介してパケットのデータ部分が送られてくる。直列・並
列変換回路132は、このデータ部分を32ビットのデ
ータであるDIに変換し、パケット診断回路142及び
バッファ168に出力する。
【0135】なお、DIEは、DIが有効か無効かを示
す信号であり、DISは、DIの取り込みタイミングを
知らせるためのストローブ信号である。
【0136】直列・並列変換回路132からのDIは、
バッファ168を介してセレクタ170に入力され、セ
レクタ170がこれを選択する。これにより、A3に示
すように、RDとしてデータD0〜DnがFIFO34
に出力される。
【0137】次に、ヘッダ&トレイラー生成回路164
からのトレイラーがバッファ168を介してセレクタ1
70に入力され、セレクタ170がこれを選択する。こ
れにより、A4に示すように、RDとしてトレイラー
(H5。図21(B)の網掛け部分)がFIFO34に
出力される。
【0138】さて、TAG生成回路162は、RDとし
て出力される情報を区別するためのTAGを生成してい
る。本実施形態では図16に示すようにTAGは2ビッ
トであり、(00)、(01)、(10)、(11)
は、各々、ヘッダ、トレイラー、データ、スタート(ヘ
ッダの最初)を表す。従って、例えば図20では、(1
1)、(00)、・・・、(10)、・・・、(01)という
ようにTAGが変化する。FIFO34には、この2ビ
ットのTAGと32ビットのRDとからなる34ビット
のデータが入力されることになる。
【0139】次に、FIFO34の動作について説明す
る。
【0140】FIFO34は、リンクコア20からのT
AG、RDを受け、A5、A6に示すように、DTA
G、WDATAとして出力する。
【0141】FIFO34内のFIFO状態判断回路3
5は、内蔵するカウンターにより、FIFO34のデー
タ数(FIFOカウント)をカウントする。そして、F
IFO34がフル(データ数=2)になった場合には、
図20のA7に示すようにFULLをアクティブ(Hレ
ベル)にする。また、FIFO34が空(データ数=
0)になった場合には、A8に示すようにEMPTYを
アクティブにする。FIFO34がフルになったこと
は、FULL、FFULLにより、DMAC44内のア
クセス要求実行回路190やリンクコア20内のシーケ
ンサ167に伝えられる。また、FIFO34が空にな
ったことは、EMPTYにより、DMAC44内のアク
セス要求発生回路192に伝えられる。
【0142】次に、DMAC44の動作について説明す
る。
【0143】アクセス要求発生回路192は、A9に示
すようにEMPTYが非アクティブ(Lレベル)になっ
たこと(FIFO34が空でないこと)を条件に、A1
0に示すようにWREQをアクティブにする。そして、
バッファマネージャ70からWACKを受け取ると、W
REQを非アクティブにする。
【0144】さて、本実施形態では、受信時のバス調停
においては、DMAC44からのアクセス要求の優先順
位を最も高くしている。従って、A10、A11に示す
ように、DMAC44からのWREQと、CPUインタ
ーフェース60やポート用のDMAC54からのOth
erWREQとが競合した場合には、WREQの方が優
先する。即ち、A12、A13に示すように、WACK
の方がOtherWACKよりも先にアクティブにな
る。このように、WREQとOtherWREQが競合
した場合に、WREQの方を優先させるのは、以下の理
由による。即ち、IEEE1394では、SCSIなど
とは異なり、他のノードからのパケットが転送クロック
に同期して次々に転送されてくる。従って、これらの間
断なく転送されてくるパケットを優先してRAM80に
次々に格納する必要があるからである。
【0145】また、本実施形態では、CPUインターフ
ェース60やポート用のDMAC54からのアクセス要
求をバッファマネージャ70が受け付けている間は、A
14に示すように、DMAC44のアクセス要求は所与
の期間だけ待たされる。従って、リンクコア20からの
RDと、バッファマネージャ70へのWDATAとは同
期しない。この理由により、本実施形態では、RDとW
DATAの位相を調整するためのFIFO34を設けて
いる。この場合、FIFO34は、位相調整のために必
要な最低限の段数(好ましくは3段以下、更に好ましく
は2段以下)を備えていればよい。
【0146】パケット分離回路180に含まれるTAG
判別回路182は、WDATAと共にFIFO34から
出力されるDTAGを判別し、WDATAが、スタート
(ヘッダの最初)、ヘッダ、データ、トレイラーのいず
れなのかを判定する。そして、ポインタ更新回路184
は、この判定結果に基づいて、ヘッダポインタやデータ
ポインタの更新を行う。次に、アドレス発生回路188
は、更新されたヘッダポインタやデータポインタに基づ
いて、WDATAの書き込みアドレスであるWADRを
発生する。
【0147】より具体的には、例えば、WDATAがス
タート又はヘッダであるとDTAGに基づき判定された
場合は、ポインタ更新回路184が、図22(A)に示
すように、ヘッダポインタHPのインクリメント(広義
には更新)を行う。そして、アドレス発生回路188
は、図20のA15に示すように、インクリメントされ
るヘッダポインタに応じたWADRを発生する。
【0148】次に、WDATAがデータであるとDTA
Gに基づき判定された場合は、ポインタ更新回路184
が、図22(B)に示すように、データポインタDPの
インクリメントを行う。このデータポインタDPは、パ
ケット整形回路160によりヘッダの第4クワドレット
に埋め込まれたH4に相当する。アドレス発生回路18
8は、図20のA16に示すように、インクリメントさ
れるデータポインタに応じたWADRを発生する。
【0149】次に、WDATAがトレイラーであるとD
TAGに基づき判定された場合は、ポインタ更新回路1
84が、図22(C)に示すように、ヘッダポインタの
インクリメントを行う。そして、アドレス発生回路18
8は、図20のA17に示すように、インクリメントさ
れるヘッダポインタに応じたWADRを発生する。
【0150】なお、最終的には図22(D)に示すよう
に、ヘッダポインタは、処理対象となったパケットのヘ
ッダ部分の下側の境界(次のパケットのヘッダ部分の上
側の境界)を指すようになる。また、データポインタ
は、パケットのデータ部分の下側の境界(次のパケット
のデータ部分の上側の境界)を指すようになる。ヘッダ
ポインタやデータポインタの最終位置は、受信に失敗が
なかった(RFAILが非アクティブ)ことを条件に、
図6のレジスタ46内のヘッダポインタ設定レジスタや
データポインタ設定レジスタにリストアされる。
【0151】以上のようにして、パケットを分離してヘ
ッダ領域とデータ領域に書き込むことが可能になる。
【0152】特に本実施形態では、ヘッダに付加される
データポインタが、ポインタ更新回路184からパケッ
ト整形回路160に伝えられる。そしてパケット整形回
路160が、この伝えられたデータポインタをパケット
のヘッダに付加する。このようにすることで、ヘッダ領
域からヘッダを読み出したファームウェアなどが、その
ヘッダに対応するデータのデータ領域での格納アドレス
を容易に知ることができるようになる。また、データポ
インタの付加は、パケット整形回路160により行わ
れ、DMAC44はこれに関与する必要がない。従っ
て、DMAC44がRAM80へのデータ書き込み処理
に専念できるようになり、DMAC44の回路構成や処
理を簡素化できるようになる。
【0153】なお、ヘッダ領域とデータ領域の境界など
の、RAM80を分離する領域の境界(図18のP1〜
P6)の設定は、CPUインターフェース60を介して
CPU66(ファームウェア等)が、図6のレジスタ4
6に含まれるポインタ設定レジスタに対して、境界のア
ドレスを指すポインタを設定することで実現される。
【0154】また、データ領域が複数の領域に分離され
る場合(例えば図18に示すようにアイソクロナス転送
用と非同期転送用の領域に分離される場合、或いは第
1、第2の非同期転送用の領域に分離される場合等)に
は、例えばtcodeなどのパケットの制御情報に基づ
き、分離された複数の領域のいずれかにパケットのデー
タを書き込むようにすることが望ましい。
【0155】より具体的には、図19に示すように、D
MAC44が、複数のデータポインタ、例えば第1、第
2のデータポインタをパケット整形回路160に対して
渡すようにする(3個以上のデータポインタを渡しても
よい)。そして、パケット整形回路160は、例えば、
アイソクロナス転送時(或いは第2の非同期転送時)に
はDMAC44からの第1のデータポインタを選択し、
非同転送時(或いは第1の非同期転送時)にはDMAC
44からの第2のデータポインタを選択するようにす
る。即ち、パケット整形回路160内のパケット診断回
路142が、tcodeなどのパケットの制御情報に基
づいて、アイソクロナス転送か非同期転送か(或いは第
2の非同期転送か第1の非同期転送か)を判別し、この
判別結果に基づき信号SELを制御する。そして、バッ
ファ168を介してセレクタ170に入力される第1、
第2のデータポインタのいずれかを選択するようにす
る。これにより、アイソクロナス転送(或いは第2の非
同期転送)のパケットには第1のデータポインタが埋め
込まれ、非同期転送(或いは第1の非同期転送)のパケ
ットには第2のデータポインタが埋め込まれるようにな
る。この結果、データ領域を分離する特定の領域に、連
続的にデータを格納することが可能になる。即ち、デジ
タルカメラにおける動画像データをアイソクロナス転送
用データ領域に連続的に格納したり、プリンタにおける
印字データを第2の非同期転送用データ領域に連続的に
格納したりすること(第1の非同期転送用データ領域に
はコマンドデータ、ステータスデータなどの制御用デー
タを格納する)が可能になる。
【0156】3.4 送信側の構成 次に送信側の構成について説明する。図23に、FIF
O30、DMAC40の詳細な構成の一例を示す。
【0157】位相調整用のバッファとして機能するFI
FO30は、FIFO状態判断回路31を含む。FIF
O状態判断回路31は、FIFOが空になると、EMP
TYをアクティブにし、FIFOがフルになると、FU
LLをアクティブにする。
【0158】DMAC40は、パケット結合回路28
0、アクセス要求実行回路290、アクセス要求発生回
路292、ACK書き込み要求発生回路294、ACK
書き込みデータ&アドレス発生回路296を含む。
【0159】パケット結合回路280は、ヘッダをRA
M80のヘッダ領域から読み出し、データをデータ領域
から読み出し、これらのヘッダとデータによりフレーム
が構成される送信パケットを組み立てる回路である(図
14参照)。パケット結合回路280は、ポインタ更新
回路284、アドレス発生回路288を含む。
【0160】ポインタ更新回路284は、RAM80か
らヘッダやデータを読み出すためのヘッダポインタやデ
ータポインタを更新するための回路であり、データポイ
ンタ取得回路285を含む。データポインタ取得回路2
85は、RAM80から読み出されたRDATAからデ
ータポインタを取得する回路であり、tcode判別回
路286を含む。
【0161】アドレス発生回路288は、ポインタ更新
回路284の出力などを受け、RAM80の読み出しア
ドレスRADRを発生する回路である。
【0162】アクセス要求実行回路290は、FIFO
状態判断回路31からのEMPTYがアクティブになる
と、FIFOINをアクティブにする。リンクコア20
は、FIFOINがアクティブでないことを条件に、T
D(TxData)のストローブ信号であるTDSをア
クティブにする。
【0163】なおTFAILは、送信における失敗を、
リンクコア20がアクセス要求実行回路290に対して
知らせるための信号である。
【0164】アクセス要求発生回路292は、バッファ
マネージャ70からの読み出しアクノリッジメントであ
るRACKやFIFO状態判断回路31からのFULL
を受け、読み出し要求であるRREQをバッファマネー
ジャ70に出力する。
【0165】ACK書き込み要求発生回路294は、リ
ンクコア20からのTCMPやバッファマネージャ70
からのWACKを受け、WREQをバッファマネージャ
70に出力する。また、ACK書き込みデータ&アドレ
ス発生回路296は、リンクコア20からTACKを受
け、送信パケットに書き戻すACKのコードをWDAT
Aとして出力し、ACKを書き戻すアドレスをWADR
として出力する。
【0166】3.5 送信側の動作 次に、送信側の動作の詳細について図24のタイミング
波形図などを用いて説明する。
【0167】まず、リンクコア20の動作について説明
する。
【0168】送信開始を知らせるTSTARTがアクテ
ィブになると、図24のB1に示すように、リンクコア
20は、ストローブ信号であるTDSを用いてFIFO
30からTDを取り込む。この場合、リンクコア20に
は、ヘッダ(H0〜H3)、データ(D0〜Dn)の順
でTDSが取り込まれる。
【0169】なお、図25に、RAM80のヘッダ領域
に格納される非同期送信パケットのヘッダ部分のフォー
マットを示す。同図に示すようにヘッダの第4クワドレ
ットはデータポインタになっている。
【0170】さて、図24のB2に示す位置では、リン
コア20は、TDSをアクティブにしない。従って、B
3に示すように、ヘッダの第4クワドレットであるH4
はリンクコア20に取り込まれない。図25に示すよう
に第4クワドレットのH4はデータポインタであり、リ
ンクコア20は、このデータポインタを必要としないか
らである。そして、リンクコア20は、B3に示す期間
において、ヘッダCRC(図21(A)参照)を生成し
ヘッダに付加する処理を行っている。
【0171】1つのパケットの送信処理が終了すると、
リンクコア20は、B4に示すようにTCMPをアクテ
ィブにする。そして、送信のデスティネーションノード
からPHYチップを介して返されてきたACKのコード
を(図1(A)参照)、B5に示すようにTACKとし
てDMAC40に出力する。このACKのコードは、A
CK書き込み要求発生回路294、ACK書き込みデー
タ&アドレス発生回路296により、RAM80のヘッ
ダ領域に格納されているヘッダに書き戻されることにな
る(図25の第7クワドレット)。
【0172】次に、FIFO30の動作について説明す
る。
【0173】FIFO30は、バッファマネージャ70
からのRDATAを受け、TDとしてリンクコア20に
出力する。
【0174】FIFO30内のFIFO状態判断回路3
1は、内蔵するカウンターにより、FIFO30のデー
タ数(FIFOカウント)をカウントする。そして、F
IFO30が空(データ数=0)になった場合には、図
24のB6に示すようにEMPTYをアクティブにす
る。また、FIFO30がフル(データ数=2)になっ
た場合には、B7に示すようにFULLをアクティブ
(Hレベル)にする。FIFO30が空になったこと
は、EMPTY、FIFOINにより、DMAC40内
のアクセス要求実行回路290やリンクコア20に伝え
られる。また、FIFO30がフルになったことは、F
ULLにより、DMAC40内のアクセス要求発生回路
292に伝えられる。
【0175】次に、DMAC40の動作について説明す
る。
【0176】アクセス要求発生回路292は、B8に示
すように、FULLが非アクティブ(Lレベル)である
こと(FIFO34がフルでないこと)を条件にRRE
Qをアクティブにする。そして、バッファマネージャ7
0からRACKを受け取ると、RREQを非アクティブ
にする。
【0177】なお、本実施形態では、送信時のバス調停
においては、DMAC40(或いはDMAC42)から
のアクセス要求の優先順位を最も高くしている。従っ
て、DMAC40からのRREQと、CPUインターフ
ェース60やポート用のDMAC54からのアクセス要
求(OtherRREQ)とが競合した場合には、RR
EQの方が優先する。一方、RREQよりも先に、CP
Uインターフェース60やポート用のDMAC54から
のアクセス要求があった場合には、B9に示すように、
DMAC40のアクセス要求は所与の期間だけ待たされ
る。従って、バッファマネージャ70からのRDATA
と、リンクコア20へのTDとは同期しない。この理由
により、本実施形態では、RDATAとTDの位相を調
整するためのFIFO30を設けている。
【0178】さて、送信が開始すると、ポインタ更新回
路284が、ヘッダポインタHPのインクリメント(広
義には更新)を行う。そして、アドレス発生回路288
は、図24のB10に示すように、インクリメントされ
るヘッダポインタに応じたRADRを発生する。このよ
うにして、RDATAのヘッダ部分がRAM80から順
次読み出される。
【0179】RDATAとしてH4が読み出されると、
パケット結合回路280に含まれるデータポインタ取得
回路285が、このH4を、データポインタDPとして
取得する。より具体的には、RDATAとしてH0が読
み出されると、データポインタ取得回路285内のtc
ode判別回路286が、H0に含まれるtcode
(図25参照)を判別する。そして、ヘッダの例えば第
4クワドレットにデータポインタがあるとtcode
(パケットフォーマット識別情報)に基づき判断された
場合には、RDATAとしてH4が読み出された時に、
データポインタ取得回路285がこのH4を取得する。
即ち、図24のB11に示すように、RDATAのH4
が、データポインタとして取得され、RADRとして出
力される。
【0180】なお、本実施形態では、B3、B11に示
すように、リンクコア20がヘッダCRCを生成してい
る期間を利用して、RDATAからデータポインタであ
るH4を取得している。即ち、本実施形態では、ヘッダ
CRCの生成はリンクコア20が行い、DMAC40は
これに関与しない。一方、データポインタの取得はDM
AC40が行い、リンクコア20はこれに関与しない。
本実施形態では、このことに着目し、図21(A)にお
いてヘッダCRCが配置される第4クワドレットに、図
25に示すようにデータポインタを配置している。そし
て、ヘッダCRCが生成される期間を利用して、RDA
TAからデータポインタであるH4を取得するようにし
ている。このようにすることで、処理時間に無駄が生じ
るのを防止できるようになる。
【0181】データポインタが取得されると、ポインタ
更新回路284が、取得されたデータポインタであるH
4のインクリメントを行う。そして、アドレス発生回路
288は、図24のB12に示すように、インクリメン
トされるデータポインタに応じたRADRを発生する。
このようにして、RDATAのデータ部分がRAM80
から順次読み出される。
【0182】1つのパケットの送信処理が終了し、B4
に示すようにTCMPがアクティブになると、B13に
示すようにACK書き込み要求発生回路294がWRE
Qをアクティブにする。そして、リンクコア20からA
CK書き込みデータ&アドレス発生回路296に対して
TACKを用いて送られたACKのコードが、B14に
示すように、WDATAとして出力される。また、この
際に、ACKのコードの書き込みアドレスであるHP+
7が、WADRとして出力される。ここで、WADRが
HP+7になるのは、図25に示すようにACKのコー
ドはヘッダの第7クワドレットに書き戻されるからであ
る。
【0183】以上のようにして、ヘッダ領域のヘッダと
データ領域のデータを結合して、送信パケットを組み立
てることが可能になる。
【0184】特に本実施形態では、ヘッダとデータの結
合はDMAC40が行い、リンク20はこれに関与する
必要がない。従って、リンクコア20の回路構成や処理
を簡素化できるようになる。
【0185】また、本実施形態では、データポインタ取
得回路285が、RDATAからデータポインタ(H
4)を取得し、この取得されたデータポインタに基づき
RADRが発生し、データが読み出される。このように
することで、ヘッダと、そのヘッダに対応するデータと
を、確実に結合できるようになる。また、ヘッダとデー
タの結合処理に必要な回路構成を簡素化できるようにな
る。
【0186】4.電子機器 次に、本実施形態のデータ転送制御装置を含む電子機器
の例について説明する。
【0187】例えば図26(A)に電子機器の1つであ
るプリンタの内部ブロック図を示し、図27(A)にそ
の外観図を示す。CPU(マイクロコンピュータ)51
0はシステム全体の制御などを行う。操作部511はプ
リンタをユーザが操作するためのものである。ROM5
16には、制御プログラム、フォントなどが格納され、
RAM518はCPU510のワーク領域として機能す
る。表示パネル519はプリンタの動作状態をユーザに
知らせるためのものである。
【0188】PHYチップ502、データ転送制御装置
500を介して、パーソナルコンピュータなどの他のノ
ードから送られてきた印字データは、バス504を介し
て印字処理部512に直接送られる。そして、印字デー
タは、印字処理部512にて所与の処理が施され、プリ
ントヘッダなどからなる印字部(データを出力するため
の装置)514により紙に印字されて出力される。
【0189】図26(B)に電子機器の1つであるスキ
ャナの内部ブロック図を示し、図27(B)にその外観
図を示す。CPU520はシステム全体の制御などを行
う。操作部521はスキャナをユーザが操作するための
ものである。ROM526には制御プログラムなどが格
納され、RAM528はCPU520のワーク領域とし
て機能する。
【0190】光源、光電変換器などからなる画像読み取
り部(データを取り込むための装置)522により原稿
の画像が読み取られ、読み取られた画像のデータは画像
処理部524により処理される。そして、処理後の画像
データがバス505を介してデータ転送制御装置500
に直接送られる。データ転送制御装置500は、この画
像データにヘッダなどを付加することでパケットを生成
し、PHYチップ502を介してパーソナルコンピュー
タなどの他のノードに送信する。
【0191】図26(C)に電子機器の1つであるCD
−Rドライブの内部ブロック図を示し、図27(C)に
その外観図を示す。CPU530はシステム全体の制御
などを行う。操作部531はCD−Rをユーザが操作す
るためのものである。ROM536には制御プログラム
などが格納され、RAM538はCPU530のワーク
領域として機能する。
【0192】レーザ、モータ、光学系などからなる読み
取り&書き込み部(データを取り込むための装置又はデ
ータを記憶するための装置)533によりCD−R53
2から読み取られたデータは、信号処理部534に入力
され、エラー訂正処理などの所与の信号処理が施され
る。そして、信号処理が施されたデータが、バス506
を介してデータ転送制御装置500に直接送られる。デ
ータ転送制御装置500は、このデータにヘッダなどを
付加することでパケットを生成し、PHYチップ502
を介してパーソナルコンピュータなどの他のノードに送
信する。
【0193】一方、PHYチップ502、データ転送制
御装置500を介して、他のノードから送られてきたデ
ータは、バス506を介して信号処理部534に直接送
られる。そして、信号処理部534によりこのデータに
所与の信号処理が施され、読み取り&書き込み部533
によりCD−R532に記憶される。
【0194】なお、図26(A)、(B)、(C)にお
いて、CPU510、520、530の他に、データ転
送制御装置500でのデータ転送制御のためのCPUを
別に設けるようにしてもよい。
【0195】本実施形態のデータ転送制御装置を電子機
器に用いることで、高速なデータ転送が可能になる。従
って、ユーザがパーソナルコンピュータなどによりプリ
ントアウトの指示を行った場合に、少ないタイムラグで
印字が完了するようになる。また、スキャナへの画像取
り込みの指示の後に、少ないタイムラグで読み取り画像
をユーザは見ることができるようになる。また、CD−
Rからのデータの読み取りや、CD−Rへのデータの書
き込みを高速に行うことができるようになる。更に、例
えば1つのホストシステムに複数の電子機器を接続して
利用したり、複数のホストシステムに複数の電子機器を
接続して利用したりすることも容易になる。
【0196】また本実施形態のデータ転送制御装置を電
子機器に用いることで、CPU上で動作するファームウ
ェアの処理負荷が軽減され、安価なCPUや低速のバス
を用いることが可能になる。更に、データ転送制御装置
の低コスト化、小規模化を図れるため、電子機器の低コ
スト化、小規模化も図れるようになる。
【0197】なお本実施形態のデータ転送制御装置を適
用できる電子機器としては、上記以外にも例えば、種々
の光ディスクドライブ(CDROM、DVD)、光磁気
ディスクドライブ(MO)、ハードディスクドライブ、
TV、VTR、ビデオカメラ、オーディオ機器、電話
機、プロジェクタ、パーソナルコンピュータ、電子手
帳、ワードプロセッサなど種々のものを考えることがで
きる。
【0198】なお、本発明は本実施形態に限定されず、
本発明の要旨の範囲内で種々の変形実施が可能である。
【0199】例えば、本発明のデータ転送制御装置の構
成は、図6に示す構成が特に望ましいが、これに限定さ
れるものではない。
【0200】また本発明では、記憶手段を複数の領域に
分離することが特に望ましいが、これを分離させない構
成とすることも可能である。
【0201】また、本発明は、IEEE1394規格で
のデータ転送に適用されることが特に望ましいが、これ
に限定されるものではない。例えばIEEE1394と
同様の思想に基づく規格やIEEE1394を発展させ
た規格におけるデータ転送にも本発明は適用できる。
【0202】
【図面の簡単な説明】
【図1】図1(A)、(B)、(C)は、非同期転送と
アイソクロナス転送について説明するための図である。
【図2】図2(A)、(B)は、ツリー識別について説
明するための図である。
【図3】自己識別について説明するための図である。
【図4】図4(A)、(B)、(C)、(D)は、セル
フIDパケットなどの物理層のパケットのフォーマット
を示す図である。
【図5】IEEE1394のプロトコル構成について示
す図である。
【図6】本実施形態のデータ転送制御装置の構成例を示
す図である。
【図7】ヘッダ(制御情報)領域とデータ領域の分離に
ついて説明するための図である。
【図8】本実施形態の比較例の構成例について示す図で
ある。
【図9】図8の構成によるデータ転送の手法について説
明するための図である。
【図10】データ転送の手法の他の例について説明する
ための図である。
【図11】本実施形態のデータ転送の手法について説明
するための図である。
【図12】図12(A)、(B)は、リンクコアとCP
Uとの間にランダムアクセス可能なRAMを介在させる
手法について説明するための図である。
【図13】受信パケットをヘッダとデータに分離してR
AMのヘッダ領域とデータ領域に格納する手法について
説明するための図である。
【図14】ヘッダ領域に格納されるヘッダとデータ領域
に格納されるデータを結合し、送信パケットを組み立て
る手法について説明するための図である。
【図15】ヘッダ領域に格納するヘッダにデータポイン
タを含ませる手法について説明するための図である。
【図16】TAGについて説明するための図である。
【図17】図17(A)、(B)、(C)、(D)は、
RAMを各種の領域に分離する手法について説明するた
めの図である。
【図18】RAMの各領域のサイズを可変に制御する手
法について説明するための図である。
【図19】受信側の構成の一例を示す図である。
【図20】受信側の動作について説明するためのタイミ
ング波形図である。
【図21】図21(A)は、IEEE1394規格の非
同期パケットのフォーマットであり、図21(B)は、
RAMのヘッダ領域に格納される非同期受信パケットの
ヘッダ部分のフォーマットである。
【図22】図22(A)、(B)、(C)、(D)は、
ヘッダポインタとデータポインタの更新について説明す
るための図である。
【図23】送信側の構成の一例を示す図である。
【図24】送信側の動作について説明するためのタイミ
ング波形図である。
【図25】RAMのヘッダ領域に格納される非同期送信
パケットのヘッダ部分のフォーマットである。
【図26】図26(A)、(B)、(C)は、種々の電
子機器の内部ブロック図の例である。
【図27】図27(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用) 50 ポートインターフェース 52 FIFO(PF) 54 DMAC(PF用) 56 レジスタ 60 CPUインターフェース 62 アドレスデコーダ 63 データ同期化回路 64 割り込みコントローラ 66 CPU 68 クロック制御回路 70 バッファマネージャ 72 レジスタ 74 調停回路 76 シーケンサ 80 RAM(パケット記憶手段) 90、92、94 バス(第1のバス) 96、98 バス(第2のバス) 100、102、104、105、 106、107、108、109 バス(第3のバス) 110 バス(第4のバス) 120 データ転送制御装置 122 PHYチップ 124 アプリケーション層のデバイス 130 バス監視回路 132 直列・並列変換回路 142 パケット診断回路 160 パケット整形回路 162 TAG生成回路 164 ヘッダ&トレイラー生成回路 166 エラーチェック回路 167 シーケンサ 168 バッファ 170 セレクタ 180 パケット分離回路 182 TAG判別回路 184 ポインタ更新回路 188 アドレス発生回路 190 アクセス要求実行回路 192 アドレス要求発生回路 280 パケット結合回路 284 ポインタ更新回路 285 データポインタ取得回路 286 tcode判別回路 290 アクセス要求実行回路 292 アドレス要求発生回路 294 ACK書き込み要求発生回路 296 ACK書き込みデータ&アドレス発生回路
フロントページの続き (56)参考文献 特開 昭62−175851(JP,A) 特開 昭60−256251(JP,A) 特開 平10−173675(JP,A) 特開 平8−194656(JP,A) 特開 平8−65334(JP,A) 特開 平7−152669(JP,A) 特開 平7−135509(JP,A) 特開 平6−274413(JP,A) 特開 平5−292095(JP,A) 特開 平4−140873(JP,A) 特開 平4−56548(JP,A) 特開 平3−125251(JP,A) (58)調査した分野(Int.Cl.7,DB名) H04L 12/40 G06F 13/362 510

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】 バスに接続される複数のノード間でのデ
    ータ転送のためのデータ転送制御装置であって、 後段のアプリケーションに接続される第1のバスと、 該データ転送制御装置をコントロールする第2のバス
    と、 物理層のデバイスに電気的に接続される第3のバスと、 ランダムアクセスが可能でありパケットを格納するため
    の記憶手段に電気的に接続される第4のバスと、 前記第1、第2、第3のバスのいずれかと前記第4のバ
    スとの間にデータ経路を確立するための調停を行う調停
    手段とを含むことを特徴とするデータ転送制御装置。
  2. 【請求項2】 請求項1において、 前記アプリケーションと前記記憶手段との間でのデータ
    転送を前記第2のバスからの介入なしに行うための第1
    のDMAコントローラと、 前記物理層のデバイスと前記記憶手段との間でのデータ
    転送を前記第2のバスからの介入なしに行うための第2
    のDMAコントローラとを含むことを特徴とするデータ
    転送制御装置。
  3. 【請求項3】 請求項1又は2において、 前記物理層のデバイスと前記記憶手段との間でのデータ
    転送のための位相調整用のFIFOを含むことを特徴と
    するデータ転送制御装置。
  4. 【請求項4】 請求項3において、 前記調停手段が、 前記物理層のデバイスと前記記憶手段との間でのデータ
    転送の優先順位を最も高くし、 前記FIFOの段数が3段以下であることを特徴とする
    データ転送制御装置。
  5. 【請求項5】 請求項1乃至4のいずれかにおいて、 前記記憶手段が、 パケットの制御情報が格納される制御情報領域と、パケ
    ットのデータが格納されるデータ領域とに分離されてい
    ることを特徴とするデータ転送制御装置。
  6. 【請求項6】 請求項5において、 前記記憶手段の前記制御情報領域が、 受信用制御情報領域と送信用制御情報領域とに分離され
    ていることを特徴とするデータ転送制御装置。
  7. 【請求項7】 請求項5又は6において、 前記記憶手段の前記データ領域が、 受信用データ領域と送信用データ領域とに分離されてい
    ることを特徴とするデータ転送制御装置。
  8. 【請求項8】 請求項5乃至7のいずれかにおいて、 パケットの制御情報を前記制御情報領域に書き込み、パ
    ケットのデータを前記データ領域に書き込むパケット分
    離手段を含むことを特徴とするデータ転送制御装置。
  9. 【請求項9】 請求項8において、 パケットの少なくとも制御情報とデータを区別するため
    のタグ情報を生成すると共に、生成された該タグ情報を
    パケットに関連づける手段を含み、 前記パケット分離手段が、 パケットに関連づけられた前記タグ情報に基づいて、パ
    ケットの制御情報を前記制御情報領域に書き込み、パケ
    ットのデータを前記データ領域に書き込むことを特徴と
    するデータ転送制御装置。
  10. 【請求項10】 請求項5乃至9のいずれかにおいて、 パケットの制御情報を前記記憶手段の前記制御情報領域
    から読み出し、該制御情報と対をなすパケットのデータ
    を前記記憶手段の前記データ領域から読み出すパケット
    結合手段を含むことを含むことを特徴とするデータ転送
    制御装置。
  11. 【請求項11】 請求項10において、 前記パケット結合手段が、 前記データ領域から読み出されるデータのアドレスを指
    すデータポインタを、前記制御情報領域から読み出され
    た制御情報から取得し、取得したデータポインタを用い
    て前記データ領域からデータを読み出すことを特徴とす
    るデータ転送制御装置。
  12. 【請求項12】 請求項1乃至11のいずれかにおい
    て、 IEEE1394の規格に準拠したデータ転送を行うこ
    とを特徴とするデータ転送制御装置。
  13. 【請求項13】 請求項1乃至12のいずれかのデータ
    転送制御装置と、 前記データ転送制御装置及びバスを介して他のノードか
    ら受信したデータに所与の処理を施す装置と、 処理が施されたデータを出力又は記憶するための装置と
    を含むことを特徴とする電子機器。
  14. 【請求項14】 請求項1乃至12のいずれかのデータ
    転送制御装置と、 前記データ転送制御装置及びバスを介して他のノードに
    送信するデータに所与の処理を施す装置と、 処理が施されるデータを取り込むための装置とを含むこ
    とを特徴とする電子機器。
JP32149098A 1998-10-27 1998-10-27 データ転送制御装置及び電子機器 Expired - Lifetime JP3494040B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32149098A JP3494040B2 (ja) 1998-10-27 1998-10-27 データ転送制御装置及び電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32149098A JP3494040B2 (ja) 1998-10-27 1998-10-27 データ転送制御装置及び電子機器

Publications (2)

Publication Number Publication Date
JP2000134242A JP2000134242A (ja) 2000-05-12
JP3494040B2 true JP3494040B2 (ja) 2004-02-03

Family

ID=18133149

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32149098A Expired - Lifetime JP3494040B2 (ja) 1998-10-27 1998-10-27 データ転送制御装置及び電子機器

Country Status (1)

Country Link
JP (1) JP3494040B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3608441B2 (ja) 1999-07-15 2005-01-12 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP4505985B2 (ja) * 2000-12-04 2010-07-21 ソニー株式会社 データ転送方法、データ転送装置、通信インターフェース方法および通信インターフェース装置
JP2003316721A (ja) * 2002-04-24 2003-11-07 Oki Electric Ind Co Ltd データ転送制御装置、データ転送装置及びデータ転送制御方法
KR100689469B1 (ko) * 2003-10-14 2007-03-08 삼성전자주식회사 이더넷 네트워크에서의 실시간 멀티미디어 데이터 전송 방법
JP3736642B2 (ja) 2004-01-22 2006-01-18 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP3780419B2 (ja) * 2004-03-09 2006-05-31 セイコーエプソン株式会社 データ転送制御装置及び電子機器
JP5811073B2 (ja) * 2012-11-07 2015-11-11 株式会社デンソー 電子制御装置
EP4231163A1 (en) * 2022-02-16 2023-08-23 Infineon Technologies AG Direct memory access system, system for processing sensor data and method for direct memory access

Also Published As

Publication number Publication date
JP2000134242A (ja) 2000-05-12

Similar Documents

Publication Publication Date Title
JP3543649B2 (ja) データ転送制御装置及び電子機器
JP3543647B2 (ja) データ転送制御装置及び電子機器
US6725413B1 (en) Data transfer control device and electronic equipment
JP3543648B2 (ja) データ転送制御装置及び電子機器
JP3608441B2 (ja) データ転送制御装置及び電子機器
JP3494040B2 (ja) データ転送制御装置及び電子機器
JP3494041B2 (ja) データ転送制御装置及び電子機器
US6978327B1 (en) Data transfer control device and electronic equipment for performing data
JP3494042B2 (ja) データ転送制御装置及び電子機器
JPH1117710A (ja) シリアルインタフェース回路
JP3610982B2 (ja) データ転送制御装置及び電子機器
JP2001177544A (ja) データ転送制御装置、情報記憶媒体及び電子機器
JP2004118704A (ja) インターフェイス装置およびインターフェイス装置の制御方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20031021

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

Free format text: PAYMENT UNTIL: 20081121

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091121

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091121

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101121

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101121

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 10

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term