JP2000134233A - Data transfer controller and electronic equipment - Google Patents

Data transfer controller and electronic equipment

Info

Publication number
JP2000134233A
JP2000134233A JP10321541A JP32154198A JP2000134233A JP 2000134233 A JP2000134233 A JP 2000134233A JP 10321541 A JP10321541 A JP 10321541A JP 32154198 A JP32154198 A JP 32154198A JP 2000134233 A JP2000134233 A JP 2000134233A
Authority
JP
Japan
Prior art keywords
data
area
packet
control device
header
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.)
Granted
Application number
JP10321541A
Other languages
Japanese (ja)
Other versions
JP3543649B2 (en
Inventor
Takahisa Ogawa
隆央 小川
Takuya Ishida
卓也 石田
Yoshiyuki Kanbara
義幸 神原
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 JP32154198A priority Critical patent/JP3543649B2/en
Priority to US09/426,588 priority patent/US6775245B1/en
Publication of JP2000134233A publication Critical patent/JP2000134233A/en
Application granted granted Critical
Publication of JP3543649B2 publication Critical patent/JP3543649B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9031Wraparound memory, e.g. overrun or underrun detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • 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/2803Home automation 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/2803Home automation networks
    • H04L12/2816Controlling appliance services of a home automation network by calling their functionalities
    • 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/2803Home automation networks
    • H04L12/2838Distribution of signals within a home automation network, e.g. involving splitting/multiplexing signals to/from different paths

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Systems (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a data transfer controller and electronic equipment capable of reducing the overheads of processings and transferring data at a high speed with the hardware of a small scale. SOLUTION: In this data transfer controller of an IEEE1394 standard, between a link core and a CPU, a built-in RAM for storing packets capable of random access is provided other than a FIFO. The storage area of the RAM is separated into a header area, a data area and the work area of the CPU and the header area and the data area are separated into areas for reception and for transmission. By using TAG, the header of a reception packet is written in the header area and the data are written in the data area. The data area is separated into the areas for isochronous transfer and for asynchronous transfer. A pointer for variably controlling the size of the respective areas of the RAM is prepared and the size of the respective areas is dynamically and variably controlled even after supplying power. The respective areas are turned to a ring buffer structure. The size of the area for storing the header and data of one packet is fixed.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、データ転送制御装
置及びこれを含む電子機器に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data transfer control device and an electronic device including the same.

【0002】[0002]

【背景技術及び発明が解決しようとする課題】近年、I
EEE1394と呼ばれるインターフェース規格が脚光
を浴びている。このIEEE1394は、次世代のマル
チメディアにも対応可能な高速シリアルバスインターフ
ェースを規格化したものである。このIEEE1394
によれば、動画像などのリアルタイム性が要求されるデ
ータも扱うことができる。また、IEEE1394のバ
スには、プリンタ、スキャナ、CD−Rドライブ、ハー
ドディスクドライブなどのコンピュータの周辺機器のみ
ならず、ビデオカメラ、VTR、TVなどの家庭用電化
製品も接続できる。このため、電子機器のデジタル化を
飛躍的に促進できるものとして期待されている。
BACKGROUND OF THE INVENTION In recent years, I
An interface standard called EEE1394 has been spotlighted. This IEEE 1394 standardizes a high-speed serial bus interface that can support next-generation multimedia. This IEEE 1394
According to this, data requiring real-time properties such as moving images can be handled. In addition, not only computer peripherals such as printers, scanners, CD-R drives, and hard disk drives, but also home appliances such as video cameras, VTRs, and TVs can be connected to the IEEE 1394 bus. For this reason, it is expected that digitalization of electronic devices can be drastically promoted.

【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などが知られている。
For an overview of such IEEE 1394, for example, see “Overview of IEEE 1394 High Performance Serial Bus” (Interface Ap.
r. 1996, pp. 1-10), "Peripheral Bus Standards for PCs" (Interface Jan. 1997, pp. 106-116), "IEEE 1394-1995".
(FireWire) Real-time Transfer Mode and Multimedia-Compatible Protocol "(Interface J
an. 1997, pp. 136-146). Further, as a data transfer control device conforming to IEEE 1394, TS Instruments manufactured by Texas Instruments, Inc.
B12LV31 and the like are known.

【0004】しかしながら、このIEEE1394に準
拠したデータ転送制御装置には次のような課題があるこ
とが判明した。
However, it has been found that the data transfer control device conforming to IEEE 1394 has the following problems.

【0005】即ち、現在のIEEE1394規格によれ
ば最大で400Mbpsの転送速度が実現可能となって
いる。しかし、現実には、処理のオーバーヘッドの存在
に起因して、システム全体の実転送速度はこれよりもか
なり低くなっている。つまり、CPU上で動作するファ
ームウェアやアプリケーションソフトが、送信データを
準備したり、受信データを取り込んだりするなどの処理
に多くの時間を要してしまい、バス上での転送速度が速
くても、結局、高速なデータ転送を実現できない。
That is, according to the current IEEE 1394 standard, a maximum transfer rate of 400 Mbps can be realized. However, in reality, due to the presence of processing overhead, the actual transfer speed of the entire system is considerably lower. In other words, the firmware or application software operating on the CPU takes a lot of time to prepare transmission data or fetch reception data, and even if the transfer speed on the bus is high, As a result, high-speed data transfer cannot be realized.

【0006】特に、周辺機器に組み込まれるCPUは、
パーソナルコンピュータなどのホストシステムに組み込
まれるCPUに比べて処理能力が低い。このため、ファ
ームウェアやアプリケーションソフトの処理のオーバー
ヘッドの問題は、非常に深刻なものとなる。従って、こ
のようなオーバーヘッドの問題を効果的に解消できる技
術が望まれている。
[0006] In particular, a CPU incorporated in a peripheral device includes:
The processing capacity is lower than that of a CPU incorporated in a host system such as a personal computer. For this reason, the problem of processing overhead of firmware and application software becomes very serious. Therefore, a technique that can effectively solve such an overhead problem is desired.

【0007】本発明は、以上のような技術的課題に鑑み
てなされたものであり、その目的とするところは、ファ
ームウェアやアプリケーションソフトなどの処理のオー
バーヘッドを軽減し、小規模なハードウェアで高速なデ
ータ転送を実現できるデータ転送制御装置及びこれが用
いられる電子機器を提供することにある。
The present invention has been made in view of the above technical problems, and an object of the present invention is to reduce the processing overhead of firmware and application software and to achieve high-speed processing with small-scale hardware. An object of the present invention is to provide a data transfer control device capable of realizing accurate data transfer and an electronic device using the same.

【0008】[0008]

【課題を解決するための手段】上記課題を解決するため
に本発明は、バスに接続される複数のノード間でのデー
タ転送のためのデータ転送制御装置であって、ノード間
でのパケット転送のためのサービスを提供するリンク手
段と、パケットを格納するためのランダムアクセス可能
な記憶手段と、前記リンク手段を介して各ノードから転
送されてくるパケットを前記記憶手段に書き込む書き込
み手段と、上層により前記記憶手段に書き込まれたパケ
ットを読み出し、前記リンク手段に渡す読み出し手段と
を含むことを特徴とする。
SUMMARY OF THE INVENTION In order to solve the above-mentioned problems, the present invention relates to a data transfer control device for transferring data between a plurality of nodes connected to a bus, and a packet transfer between the nodes. Means for providing a service for storing, a randomly accessible storage means for storing a packet, a writing means for writing a packet transferred from each node via the link means to the storage means, And reading means for reading out the packet written in said storage means and passing it to said link means.

【0009】本発明によれば、各ノードから転送されて
くるパケットは、書き込み手段によりランダムアクセス
可能な記憶手段に書き込まれる。また、ファームウェア
やアプリケーションソフトなどの上層により記憶手段に
書き込まれたパケットは、読み出し手段により読み出さ
れ、リンク手段に渡される。そして、各ノードに転送さ
れる。このように本発明では、パケット格納用のランダ
ムアクセス可能な記憶手段を、リンク手段と上層との間
に介在させている。このようにすることで、パケットの
受信順序や送信順序に依存せずに、記憶手段の所望の記
憶領域にパケットを格納することが可能になる。これに
より、パケットを、記憶手段の複数の領域に分離して格
納することも可能になる。
According to the present invention, the packet transferred from each node is written to the storage means which can be randomly accessed by the writing means. The packet written in the storage means by the upper layer such as firmware or application software is read by the reading means and passed to the link means. Then, it is transferred to each node. As described above, in the present invention, the randomly accessible storage means for storing packets is interposed between the link means and the upper layer. By doing so, it is possible to store the packet in a desired storage area of the storage unit without depending on the reception order or the transmission order of the packet. This makes it possible to store the packets separately in a plurality of areas of the storage means.

【0010】また本発明は、前記記憶手段が、パケット
の制御情報が格納される制御情報領域と、パケットのデ
ータが格納されるデータ領域とに分離されていることを
特徴とする。このようにすることで、ファームウェアや
アプリケーションソフトなどの上層の処理負荷を軽減で
き、システム全体の実転送速度を向上できる。また、記
憶手段からのパケットの読み出し処理や記憶手段への書
き込み処理を簡素化できる。
Further, the present invention is characterized in that the storage means is separated into a control information area for storing control information of the packet and a data area for storing data of the packet. By doing so, the processing load on the upper layers such as firmware and application software can be reduced, and the actual transfer speed of the entire system can be improved. Further, the process of reading a packet from the storage unit and the process of writing to the storage unit can be simplified.

【0011】また本発明は、前記記憶手段が、パケット
が格納される領域と中央処理ユニットのワーク領域とに
分離されていることを特徴とする。このようにすること
で、中央処理ユニットのローカルメモリの記憶容量を軽
減したり、ローカルメモリの必要性自体を無くすことが
可能になる。
Further, the present invention is characterized in that the storage means is separated into an area for storing packets and a work area for the central processing unit. By doing so, it is possible to reduce the storage capacity of the local memory of the central processing unit and to eliminate the need for the local memory itself.

【0012】また本発明は、前記記憶手段の前記制御情
報領域が、受信用制御情報領域と送信用制御情報領域と
に分離されていることを特徴とする。このようにするこ
とで、受信用制御情報領域から制御情報を連続して読み
出したり、送信用制御情報領域に制御情報を連続して書
き込むことが可能になり、処理の簡素化、処理負担の軽
減化を図れる。
Further, the present invention is characterized in that the control information area of the storage means is divided into a reception control information area and a transmission control information area. By doing so, it is possible to continuously read control information from the reception control information area and to continuously write control information to the transmission control information area, thereby simplifying the processing and reducing the processing load. Can be achieved.

【0013】また本発明は、パケットの制御情報を前記
制御情報領域に書き込み、パケットのデータを前記デー
タ領域に書き込むパケット分離手段を含むことを特徴と
する。このようにすれば、パケットの制御情報とデータ
が自動的に、各々、制御情報領域、データ領域に書き込
まれるようになり、ファームウェアなどの上層の処理の
オーバーヘッドを軽減できる。
Further, the present invention is characterized in that it includes a packet separating means for writing control information of a packet in the control information area and writing data of the packet in the data area. By doing so, the control information and data of the packet are automatically written into the control information area and the data area, respectively, and the overhead of the upper layer processing such as firmware can be reduced.

【0014】また本発明は、前記リンク手段が、パケッ
トの少なくとも制御情報とデータを区別するためのタグ
情報を生成すると共に、生成された該タグ情報をパケッ
トに関連づけ、前記パケット分離手段が、パケットに関
連づけられた前記タグ情報に基づいて、パケットの制御
情報を前記制御情報領域に書き込み、パケットのデータ
を前記データ領域に書き込むことを特徴とする。このよ
うにすることで、簡易なハードウェア構成で、パケット
の制御情報を制御情報領域にデータをデータ領域に格納
することが可能になる。
According to the present invention, the link means generates tag information for discriminating at least control information and data of the packet, and associates the generated tag information with the packet. And writing packet control information to the control information area and writing packet data to the data area based on the tag information associated with. This makes it possible to store the control information of the packet in the control information area and the data in the data area with a simple hardware configuration.

【0015】また本発明は、前記記憶手段の前記データ
領域が、受信用データ領域と送信用データ領域とに分離
されていることを特徴とする。このようにすることで、
受信用データ領域から連続して受信データを読み出した
り、送信用データ領域に連続して送信データを書き込む
ことが可能になり、上層の処理のオーバーヘッドを軽減
できる。
[0015] The present invention is characterized in that the data area of the storage means is divided into a reception data area and a transmission data area. By doing this,
It is possible to continuously read the received data from the data area for reception and write the transmission data continuously to the data area for transmission, thereby reducing the overhead of the upper layer processing.

【0016】また本発明は、前記記憶手段の前記データ
領域が、アイソクロナス転送用データ領域と非同期転送
用データ領域とに分離されていることを特徴とする。こ
のようにすれば、非同期パケットの後にアイソクロナス
パケットが転送されてきた場合にも、アイソクロナスパ
ケットを先に処理することなどが可能になる。これによ
り、アイソクロナス転送に要求される処理のリアルタイ
ム性を維持できるようになる。
Further, the present invention is characterized in that the data area of the storage means is divided into an isochronous transfer data area and an asynchronous transfer data area. In this way, even when an isochronous packet is transferred after an asynchronous packet, the isochronous packet can be processed first. This makes it possible to maintain real-time processing required for isochronous transfer.

【0017】また本発明は、前記記憶手段の前記データ
領域が非同期転送用データ領域を含み、前記非同期転送
用データ領域が、第1、第2の非同期転送用データ領域
を含む複数の領域に分離されていることを特徴とする。
このようにすれば、非同期転送用データ領域の複数の領
域の各々に、用途の異なるデータを別々に格納できるよ
うになる。即ち、例えば、第1の非同期転送用データ領
域に、コマンドデータやステータスデータなどの制御用
データを格納し、第2の非同期転送用データ領域に、ア
プリケーションにより出力、記憶、取り込み等されるデ
ータを格納することが可能になる。従って、例えば、ア
プリケーションにより出力、記憶、取り込み等されるデ
ータを、例えば第2の非同期転送用データ領域に連続し
て格納することが可能になり、上層の処理負担を軽減で
きるようになる。
Further, according to the present invention, the data area of the storage means includes a data area for asynchronous transfer, and the data area for asynchronous transfer is divided into a plurality of areas including first and second data areas for asynchronous transfer. It is characterized by having been done.
This makes it possible to separately store data for different purposes in each of the plurality of areas of the asynchronous transfer data area. That is, for example, control data such as command data and status data is stored in the first asynchronous transfer data area, and data output, stored, captured, etc. by the application is stored in the second asynchronous transfer data area. It can be stored. Therefore, for example, data output, stored, fetched, and the like by the application can be continuously stored in, for example, the second asynchronous transfer data area, and the processing load on the upper layer can be reduced.

【0018】また本発明は、前記記憶手段の前記データ
領域がアイソクロナス転送用データ領域と第1の非同期
転送用データ領域とに分離され、前記アイソクロナス転
送用データ領域が第2の非同期転送用データ領域として
使用されることを特徴とする。このようにすれば、アプ
リケーションがアイソクロナス転送を行わない場合等に
おいて、アイソクロナス転送用データ領域を第2の非同
期転送用データ領域として使用できるようになる。そし
て、用途の異なるデータを、第1、第2の非同期転送用
データ領域に別々に格納できるようになる。この結果、
限られたリソースの有効利用を図りながら、上層の処理
負担を軽減できる。
Further, in the present invention, the data area of the storage means is divided into an isochronous transfer data area and a first asynchronous transfer data area, and the isochronous transfer data area is a second asynchronous transfer data area. It is characterized by being used as. In this way, the isochronous transfer data area can be used as the second asynchronous transfer data area when the application does not perform isochronous transfer. Then, data for different purposes can be separately stored in the first and second asynchronous transfer data areas. As a result,
The processing load on the upper layer can be reduced while effectively using the limited resources.

【0019】また本発明は、前記記憶手段の前記データ
領域が複数の領域に分離され、パケットの制御情報に基
づき、該分離された複数の領域のいずれかにパケットの
データを書き込む手段を含むことを特徴とする。このよ
うにすれば、用途の異なるデータを、分離された複数の
領域に別々に格納できるようになる。この結果、上層の
処理負担の軽減化を図れる。
Further, the present invention includes means for dividing the data area of the storage means into a plurality of areas and writing packet data to any of the plurality of separated areas based on control information of the packet. It is characterized by. In this way, data for different purposes can be separately stored in a plurality of separated areas. As a result, the processing load on the upper layer can be reduced.

【0020】また本発明は、前記記憶手段が複数の領域
に分離される場合において、各領域のサイズを可変に制
御する手段を含むことを特徴とする。このようにすれ
ば、アプリケーションに応じた最適な領域分割を実現で
き、限られたリソースの有効利用を図れる。
Further, the present invention is characterized in that when the storage means is divided into a plurality of areas, means for variably controlling the size of each area is included. In this way, it is possible to realize the optimal area division according to the application, and to effectively use limited resources.

【0021】また本発明は、各領域のサイズが、電源投
入後もダイナミックに可変制御されることを特徴とす
る。このようにすれば、受信処理と送信処理が混在する
ような場合にも、限られたリソースを有効利用すること
が可能になる。
Further, the present invention is characterized in that the size of each area is dynamically variably controlled even after power is turned on. This makes it possible to effectively use limited resources even when reception processing and transmission processing are mixed.

【0022】また本発明は、前記記憶手段が複数の領域
に分離される場合において、分離された領域の一方の境
界から他方の境界に向かってパケットの制御情報及びデ
ータの少なくとも一方が格納され、他方の境界に達した
場合には一方の境界に戻ってパケットの制御情報及びデ
ータの少なくとも一方が格納されることを特徴とする。
このようにすれば、ランダムアクセス可能な記憶手段に
FIFOの機能を持たせることが可能になる。また他方
の境界に達した場合に一方の境界からパケットの制御情
報やデータを格納できるため、限られたリソースを有効
利用できる。
According to the present invention, when the storage means is divided into a plurality of areas, at least one of packet control information and data is stored from one boundary of the separated area to the other boundary. When the other boundary is reached, the process returns to one boundary and stores at least one of the control information and the data of the packet.
By doing so, it becomes possible to make the storage means that can be randomly accessed have a FIFO function. When the other boundary is reached, control information and data of a packet can be stored from one boundary, so that limited resources can be effectively used.

【0023】また本発明は、1つのパケットの制御情報
及びデータの少なくとも一方が格納される領域のサイズ
が固定となることを特徴とする。このようにすること
で、ファームウェアなどによるパケットの取り扱いが簡
素化され、ファームウェアなどの処理負担を軽減でき
る。
Further, the present invention is characterized in that the size of an area for storing at least one of control information and data of one packet is fixed. By doing so, handling of packets by firmware and the like is simplified, and the processing load on firmware and the like can be reduced.

【0024】なお、本発明では、前記リンク手段と前記
記憶手段との間に設けられる受信用FIFOと送信用F
IFOとを含むようにすることができる。
In the present invention, a receiving FIFO and a transmitting FIFO provided between the link means and the storage means are provided.
And an IFO.

【0025】また、本発明では、IEEE1394の規
格に準拠したデータ転送を行うことが望ましい。
Further, in the present invention, it is desirable to perform data transfer conforming to the IEEE 1394 standard.

【0026】また本発明に係る電子機器は、上記のいず
れかのデータ転送制御装置と、前記データ転送制御装置
及びバスを介して他のノードから受信したデータに所与
の処理を施す装置と、処理が施されたデータを出力又は
記憶するための装置とを含むことを特徴とする。また本
発明に係る電子機器は、上記のいずれかのデータ転送制
御装置と、前記データ転送制御装置及びバスを介して他
のノードに送信するデータに所与の処理を施す装置と、
処理が施されるデータを取り込むための装置とを含むこ
とを特徴とする。
An electronic apparatus according to the present invention includes any one of the above data transfer control devices, a device for performing given processing on data received from another node via the data transfer control device and a bus, And a device for outputting or storing the processed data. Further, the electronic device according to the present invention, any one of the data transfer control device described above, a device that performs a given process on data to be transmitted to another node via the data transfer control device and a bus,
And a device for taking in data to be processed.

【0027】本発明によれば、他のノードから転送され
たデータを電子機器において出力したり記憶したりする
処理、電子機器において取り込んだデータを他のノード
に転送したりする処理を高速化することが可能になる。
また、本発明によれば、データ転送制御装置を小規模化
できると共に、データ転送を制御するファームウェアな
どの処理負担を軽減できるため、電子機器の低コスト
化、小規模化などを図ることも可能になる。
According to the present invention, the processing for outputting and storing data transferred from another node in an electronic device and the processing for transferring data fetched in the electronic device to another node are accelerated. It becomes possible.
Further, according to the present invention, the data transfer control device can be reduced in size, and the processing load of firmware and the like for controlling data transfer can be reduced, so that the cost and size of the electronic device can be reduced. become.

【0028】[0028]

【発明の実施の形態】以下、本発明の好適な実施形態に
ついて図面を用いて詳細に説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of the present invention will be described below in detail with reference to the drawings.

【0029】1.IEEE1394 まず、IEEE1394の概要について簡単に説明す
る。
1. IEEE 1394 First, an outline of IEEE 1394 will be briefly described.

【0030】1.1 データ転送速度、接続トポロジー IEEE1394(IEEE1394−1995、IE
EE1394.A)では100〜400Mbpsの高速
なデータ転送が可能となっている(IEEE1394.
Bでは800〜3200Mbps)。また、転送速度が
異なるノードをバスに接続することも許される。
1.1 Data transfer rate, connection topology IEEE 1394 (IEEE 1394-1995, IE
EE1394. A) enables high-speed data transfer of 100 to 400 Mbps (IEEE 1394.
800 to 3200 Mbps for B). It is also allowed to connect nodes having different transfer speeds to the bus.

【0031】各ノードはツリー状に接続されており、1
つのバスに最大で63個のノードが接続可能になってい
る。なお、バスブリッジを利用すれば約64000個の
ノードを接続することも可能である。
Each node is connected in a tree shape.
A maximum of 63 nodes can be connected to one bus. If a bus bridge is used, about 64000 nodes can be connected.

【0032】電源が投入されたり、途中でデバイスの抜
き差しが発生すると、バスリセットが発生し、接続トポ
ロジーに関する情報が全てクリアされる。そして、バス
リセット後、ツリー識別(ルートノードの決定)、自己
識別が行われる。その後、アイソクロナスリソースマネ
ージャ、サイクルマスタ、バスマネージャ等の管理ノー
ドが決定される。そして、通常のパケット転送が開始さ
れる。
When the power is turned on or a device is inserted or removed halfway, a bus reset occurs, and all information on the connection topology is cleared. After the bus reset, tree identification (determination of a root node) and self-identification are performed. Thereafter, management nodes such as an isochronous resource manager, a cycle master, and a bus manager are determined. Then, normal packet transfer is started.

【0033】1.2 転送方式 IEEE1394では、パケットの転送方式として、信
頼性が要求されるデータの転送に好適な非同期転送と、
リアルタイム性が要求される動画像や音声などのデータ
の転送に好適なアイソクロナス転送が用意されている。
1.2 Transfer Method In IEEE 1394, as a packet transfer method, asynchronous transfer suitable for data transfer requiring reliability,
Isochronous transfer suitable for transfer of data such as moving images and sounds that require real-time properties is prepared.

【0034】図1(A)に、非同期サブアクションの例
を示す。1つのサブアクションは、調停、パケット転
送、アクノリッジメントからなる。即ち、データ転送に
先立って、まず、バスの使用権に関する調停が行われ
る。そしてソース(転送元)ノードからデスティネーシ
ョン(転送先)ノードにパケットが転送される。このパ
ケットのヘッダにはソースIDとデスティネーションI
Dが含まれる。デスティネーションノードは、このデス
ティネーションIDを読んで、自ノード宛のパケットか
否かを判断する。デスティネーションノードは、パケッ
トを受け取ると、ソースノードにアクノリッジメント
(ACK)のパケットを返す。
FIG. 1A shows an example of an asynchronous subaction. One sub-action consists of arbitration, packet transfer, and acknowledgment. That is, prior to data transfer, arbitration regarding the right to use the bus is first performed. Then, the packet is transferred from the source (transfer source) node to the destination (destination) node. The header of this packet has a source ID and a destination I
D is included. The destination node reads this destination ID and determines whether or not the packet is addressed to itself. Upon receiving the packet, the destination node returns an acknowledgment (ACK) packet to the source node.

【0035】パケット転送とACKの間にはアクノリッ
ジギャップが存在する。また、1つのサブアクションと
次のサブアクションの間にはサブアクションギャップが
存在する。そして、サブアクションギャップに相当する
一定のバス・アイドル時間が経過しないと、次のサブア
クションの調停を開始できない。これによりサブアクシ
ョン相互の衝突が回避される。
There is an acknowledge gap between packet transfer and ACK. In addition, there is a subaction gap between one subaction and the next subaction. Then, the arbitration of the next subaction cannot be started unless a certain bus idle time corresponding to the subaction gap has elapsed. This avoids collision between the sub-actions.

【0036】図1(B)に、アイソクロナスサブアクシ
ョンの例を示す。アイソクロナス転送はブロードキャス
ト(バスに接続される全てのノードに転送)で実行され
るため、パケット受信時にACKは返送されない。ま
た、アイソクロナス転送では、ノードIDではなくチャ
ネル番号を使用してパケット転送が行われる。なお、サ
ブアクション間にはアイソクロナスギャップが存在す
る。
FIG. 1B shows an example of the isochronous subaction. Since the isochronous transfer is performed by broadcast (transfer to all nodes connected to the bus), ACK is not returned when a packet is received. In the isochronous transfer, packet transfer is performed using a channel number instead of a node ID. Note that there is an isochronous gap between the sub-actions.

【0037】図1(C)に、データ転送時のバスの様子
を示す。アイソクロナス転送は、サイクルマスタが一定
周期毎にサイクルスタートパケットを発生することで開
始する。これにより、1つのチャネル当たり、125μ
s毎に少なくとも1つのパケットを転送できるようにな
る。この結果、動画像や音声などのリアルタイム性が要
求されるデータの転送が可能になる。
FIG. 1C shows the state of the bus during data transfer. The isochronous transfer starts when the cycle master generates a cycle start packet at regular intervals. Thus, 125 μm per channel
At least one packet can be transferred every s. As a result, it is possible to transfer data such as moving images and sounds that require real-time properties.

【0038】非同期転送はアイソクロナス転送の合間に
行われる。即ち、アイソクロナス転送の方が非同期転送
よりも優先順位が高くなっている。これは、図1(C)
に示すように、アイソクロナスギャップの時間を、非同
期転送のサブアクションギャップの時間よりも短くする
ことで実現される。
Asynchronous transfer is performed between isochronous transfers. That is, the isochronous transfer has a higher priority than the asynchronous transfer. This is shown in FIG.
As shown in (1), this is realized by making the time of the isochronous gap shorter than the time of the sub-action gap of asynchronous transfer.

【0039】1.3 ツリー識別 ツリー識別はバスリセットの後に行われる。ツリー識別
によりノード間の親子関係やルートノードが決定され
る。
1.3 Tree Identification Tree identification is performed after a bus reset. The parent-child relationship between nodes and the root node are determined by the tree identification.

【0040】まず、リーフノード(1つのノードにしか
接続されていないノード)が、隣接するノードに、ペア
レントノーティファイを送る。例えば図2(A)のよう
にノードA、B、C、D、Eが接続されている場合に
は、ノードAからノードBに、ノードD及びEからノー
ドCに、ペアレントノーティファイ(PN)が送られ
る。
First, a leaf node (a node connected to only one node) sends a parent notify to an adjacent node. For example, when the nodes A, B, C, D, and E are connected as shown in FIG. 2A, a parent notify (PN) is transmitted from the node A to the node B and from the nodes D and E to the node C. Is sent.

【0041】ペアレントノーティファイを受け取ったノ
ードは、送り元のノードを自身の子と認知する。そし
て、チャイルドノーティファイをそのノードに送る。例
えば図2(A)では、ノードBからノードAに、ノード
CからノードD及びEにチャイルドノーティファイ(C
N)が送られる。これによってノードB、A間、ノード
C、D間、ノードC、E間の親子関係が決定する。
The node receiving the parent notify recognizes the source node as its own child. Then, it sends the child notify to that node. For example, in FIG. 2A, child notify (C) is performed from node B to node A and from node C to nodes D and E.
N) is sent. Thus, the parent-child relationship between the nodes B and A, between the nodes C and D, and between the nodes C and E are determined.

【0042】ノードB、Cの親子関係は、どちらが先に
ペアレントノーティファイを送ったかで決定される。例
えば図2(B)のように、ノードCの方が先にペアレン
トノーティファイを送ると、ノードBが親になりノード
Cが子になる。
The parent-child relationship between nodes B and C is determined by which sent the parent notify first. For example, as shown in FIG. 2B, when the node C sends a parent notify first, the node B becomes a parent and the node C becomes a child.

【0043】ポートの接続先の全てのノードが自身の子
となるノードがルートになる。図2(B)では、ノード
Bがルートになる。なお、IEEE1394では、全て
のノードがルートになる可能性がある。
A node in which all the nodes to which the ports are connected are their children is the root. In FIG. 2B, the node B is the root. In IEEE 1394, there is a possibility that all nodes become roots.

【0044】1.4 自己識別 ツリー識別の後、自己識別が行われる。自己識別におい
ては、接続トポロジーにおいてルートノードから遠いノ
ードから順にセルフIDパケットが転送される。
1.4 Self-identification After tree identification, self-identification is performed. In the self-identification, self-ID packets are sequentially transferred from a node farthest from the root node in the connection topology.

【0045】より具体的には、例えば図3において、ま
ず、ルートノードBのポート1(番号の小さいポート)
に接続されるノードAが、セルフIDパケット(自己識
別パケット)を全てのノードにブロードキャストする。
More specifically, for example, in FIG. 3, first, port 1 of the root node B (a port with a small number)
, A self-ID packet (self-identification packet) is broadcast to all nodes.

【0046】次に、ルートノードBのポート2(番号が
大きいポート)に接続されるノードCが選択され、この
ノードCのポート1(番号の小さいポート)に接続され
るノードDがセルフIDパケットをブロードキャストす
る。次に、ノードCのポート2(番号の大きいポート)
に接続されるノードEがセルフIDパケットをブロード
キャストし、その後、ノードCがブロードキャストす
る。最後に、ルートであるノードBがセルフIDパケッ
トをブロードキャストし、自己識別が完了する。
Next, the node C connected to the port 2 (the port with the larger number) of the root node B is selected, and the node D connected to the port 1 (the port with the smaller number) of the node C transmits the self ID packet. Broadcast. Next, port 2 of node C (a port with a large number)
, Broadcasts a self-ID packet, and then node C broadcasts. Finally, the root node B broadcasts a self-ID packet, and the self-identification is completed.

【0047】セルフ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になる。
The self ID packet contains the ID of each node. The number of self-ID packets received from another node at the time of broadcasting is the ID of each node. For example, in FIG. 3, at the time when the node A broadcasts, since no node has issued a self ID packet, the ID of the node A becomes 0.
The node A broadcasts the ID = 0 by including it in the self ID packet. At the time when the node D broadcasts, only the node A issues the self ID packet. Therefore, the ID of the node D becomes 1. Similarly, the IDs of nodes E, C, and B are 2,
3 and 4.

【0048】図4(A)にセルフIDパケットのフォー
マットを示す。同図に示すようにセルフIDパケットに
は各ノードの基本情報が含まれる。具体的には、各ノー
ドのID(PHY_ID)、リンク層がアクティブか否
か(L)、ギャップカウント(gap_cnt)、転送
速度(sp)、アイソクロナスリソースマネージャにな
れる能力を有するか否か(C)、電力状態(pwr)、
ポートの状態(p0、p1、p2)などに関する情報が
含まれる。
FIG. 4A shows the format of the self ID packet. As shown in the figure, the self ID packet includes basic information of each node. Specifically, the ID (PHY_ID) of each node, whether the link layer is active (L), gap count (gap_cnt), transfer speed (sp), and whether the node has the ability to become an isochronous resource manager (C) , Power state (pwr),
Information about the port status (p0, p1, p2) and the like is included.

【0049】なお、図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が使用されるこ
とになる。
FIG. 4B shows a self ID packet # 1 used when the number of ports of the node is four or more.
The format of # 2 and # 3 is shown. 4 to 11 ports
When the number of self ID packets # 0 (# 4 (A)) and # 1 is 12 to 19, the number of self ID packets # 0, # 1, and # 2 is 20 to 27. Means that self ID packets # 0, # 1, # 2 and # 3 are used.

【0050】また、図4(C)、(D)に、セルフID
パケットと同様に、物理層のパケット(PHYパケッ
ト)であるリンクオンパケット、PHY構成パケットの
フォーマットを示す。
FIGS. 4C and 4D show the self ID.
Similarly to the packet, the format of a link-on packet, which is a physical layer packet (PHY packet), and a PHY configuration packet are shown.

【0051】1.5 アイソクロナスリソースマネージ
ャ アイソクロナスリソースマネージャ(IRM)は以下の
管理機能を有する。
1.5 Isochronous Resource Manager The isochronous resource manager (IRM) has the following management functions.

【0052】第1に、アイソクロナス転送に必要な種々
のリソースを提供する。例えば、チャネル番号レジスタ
や帯域幅レジスタを提供する。第2に、バスマネージャ
のIDを示すレジスタを提供する。第3に、バスマネー
ジャがいない場合に、簡易的なバスマネージャとなる役
割を有する。
First, various resources required for isochronous transfer are provided. For example, it provides a channel number register and a bandwidth register. Second, it provides a register indicating the ID of the bus manager. Third, when there is no bus manager, it has a role to be a simple bus manager.

【0053】IRMになれる能力を有し(アイソクロナ
スリソースを管理する能力を有し)、且つ、動作状態に
なっている(リンク層がアクティブになっている)ノー
ドの中で(IRMになれる資格を有するノードの中
で)、ルートに最も近い(IDが最も大きい)ノードが
IRMになる。より、具体的には、図4(A)のセルフ
IDパケットにおいて、IRMになれる能力を有するか
否かを示すC(CONTENDER)ビットと、リンク
層がアクティブか否かを示すL(LINK_ACTIV
E)ビットが共に1になっているノードの中で、ルート
に一番近いノード(PHY_IDが一番大きいノード)
がIRMになる。例えば、ルートノードのセルフIDパ
ケットのCビットとLビットが1の場合には、ルートノ
ードがIRMになる。
A node that has the ability to become an IRM (has the ability to manage isochronous resources) and that is in an active state (the link layer is active) must qualify to become an IRM. The node closest to the root (with the highest ID) becomes the IRM. More specifically, in the self-ID packet of FIG. 4A, a C (CONTENDER) bit indicating whether or not it has an IRM capability and an L (LINK_ACTIV) indicating whether or not the link layer is active.
E) The node closest to the root (the node with the largest PHY_ID) among the nodes whose bits are both 1
Becomes IRM. For example, when the C bit and the L bit of the self ID packet of the root node are 1, the root node becomes the IRM.

【0054】1.6 サイクルマスタ、バスマネージャ サイクルマスタは、図1(C)に示すサイクルスタート
パケットを送信する役割を有し、ルートノードがサイク
ルマスタになる。
1.6 Cycle Master and Bus Manager The cycle master has a role of transmitting the cycle start packet shown in FIG. 1C, and the root node becomes the cycle master.

【0055】バスマネージャは、トポロジーマップ(各
ノードの接続状態)の作成、スピードマップの作成、バ
スの電力管理、サイクルマスタの決定、ギャップカウン
トの最適化などの仕事を行う。
The bus manager performs tasks such as creation of a topology map (connection state of each node), creation of a speed map, bus power management, determination of a cycle master, and optimization of a gap count.

【0056】1.7 プロトコル構成 図5を用いて、IEEE1394のプロトコル構成(層
構造)について説明する。
1.7 Protocol Configuration The protocol configuration (layer structure) of IEEE 1394 will be described with reference to FIG.

【0057】IEEE1394のプロトコルは、物理
層、リンク層、トランザクション層により構成される。
また、シリリアルバスマネージメントは、物理層、リン
ク層、トランザクション層をモニターしたり制御したり
するものであり、ノードの制御やバスのリソース管理の
ための種々の機能を提供する。
The IEEE 1394 protocol includes a physical layer, a link layer, and a transaction layer.
The serial bus management monitors and controls the physical layer, link layer, and transaction layer, and provides various functions for controlling nodes and managing bus resources.

【0058】物理層は、リンク層により使用されるロジ
カルシンボルを電気信号に変換したり、バスの調停を行
ったり、バスの物理的インターフェースを定義する。
The physical layer converts logical symbols used by the link layer into electric signals, performs bus arbitration, and defines a physical interface of the bus.

【0059】リンク層は、アドレッシング、データチェ
ック、データフレーミング、サイクル制御などを提供す
る。
The link layer provides addressing, data checking, data framing, cycle control, and the like.

【0060】トランザクション層は、リード、ライト、
ロックなどのトランザクションを行うためのプロトコル
を定義する。
The transaction layer includes read, write,
Define a protocol for performing transactions such as locking.

【0061】物理層及びリンク層は、通常、データ転送
制御装置(インターフェースチップ)などのハードウェ
アにより実現される。また、トランザクション層は、C
PU上で動作するファームウェアや、ハードウェアによ
り実現される。
The physical layer and the link layer are usually realized by hardware such as a data transfer control device (interface chip). The transaction layer is C
It is realized by firmware or hardware operating on the PU.

【0062】2.全体構成 次に、本実施形態の全体構成について図6を用いて説明
する。
[0062] 2. Next, the overall configuration of the present embodiment will be described with reference to FIG.

【0063】図6において、PHYインターフェース1
0は、物理層のプロトコルを実現するPHYチップとの
インターフェースを行う回路である。
In FIG. 6, the PHY interface 1
Reference numeral 0 denotes a circuit that interfaces with a PHY chip that implements a physical layer protocol.

【0064】リンクコア20(リンク手段)は、リンク
層のプロトコルやトランザクション層のプロトコルの一
部を実現する回路であり、ノード間でのパケット転送の
ための各種サービスを提供する。レジスタ22は、これ
らのプロトコルを実現したりリンクコア20を制御する
ためのレジスタである。
The link core 20 (link means) is a circuit that implements a part of a link layer protocol or a transaction layer protocol, and provides various services for packet transfer between nodes. The register 22 is a register for implementing these protocols and controlling the link core 20.

【0065】FIFO(ATF)30、FIFO(IT
F)32、FIFO(RF)34は、各々、非同期送信
用、アイソクロナス送信用、受信用のFIFOであり、
例えばレジスタや半導体メモリなどのハードウェアによ
り構成される。本実施形態では、これらのFIFO3
0、32、34の段数は非常に少ない。例えば1つのF
IFOの段数は、好ましくは3段以下であり、更に好ま
しくは2段以下となる。
The FIFO (ATF) 30 and the FIFO (IT
F) 32 and FIFO (RF) 34 are FIFOs for asynchronous transmission, isochronous transmission, and reception, respectively.
For example, it is configured by hardware such as a register and a semiconductor memory. In the present embodiment, these FIFO3
The number of stages 0, 32 and 34 is very small. For example, one F
The number of IFO stages is preferably three or less, and more preferably two or less.

【0066】DMAC40、42、44は、各々、AT
F、ITF、RF用のDMAコントローラである。これ
らのDMAC40、42、44を用いることで、CPU
66に介入されることなく、RAM80とリンクコア2
0との間でのデータ転送が可能になる。なお、レジスタ
46は、DMAC40、42、44などを制御するレジ
スタである。
The DMACs 40, 42, and 44 each have an AT
DMA controller for F, ITF and RF. By using these DMACs 40, 42, and 44, the CPU
66 and the link core 2 without intervention
Data transfer to / from 0 becomes possible. The register 46 is a register for controlling the DMACs 40, 42, 44 and the like.

【0067】ポートインターフェース50は、アプリケ
ーション層のデバイス(例えばプリンタの印字処理を行
うデバイス)とのインターフェースを行う回路である。
本実施形態では、このポートインターフェース50を用
いて、例えば8ビットのデータ転送が可能になってい
る。
The port interface 50 is a circuit for interfacing with a device in the application layer (for example, a device for performing a printing process of a printer).
In the present embodiment, for example, 8-bit data transfer is enabled using the port interface 50.

【0068】FIFO(PF)52は、アプリケーショ
ン層のデバイスとの間でのデータ転送のためのFIFO
であり、DMAC54は、PF用のDMAコントローラ
である。レジスタ56は、ポートインターフェース50
やDMAC54を制御するレジスタである。
The FIFO (PF) 52 is a FIFO for transferring data to and from an application layer device.
And the DMAC 54 is a DMA controller for the PF. The register 56 includes the port interface 50
And a register for controlling the DMAC 54.

【0069】CPUインターフェース60は、データ転
送制御装置をコントロールするCPU66とのインター
フェースを行う回路である。CPUインターフェース6
0は、アドレスデコーダ62、データ同期化回路63、
割り込みコントローラ64を含む。クロック制御回路6
8は、本実施形態で使用されるクロックを制御するもの
であり、PHYチップから送られてくるSCLKや、マ
スタークロックであるHCLKが入力される。
The CPU interface 60 is a circuit for interfacing with the CPU 66 that controls the data transfer control device. CPU interface 6
0 indicates an address decoder 62, a data synchronization circuit 63,
An interrupt controller 64 is included. Clock control circuit 6
Reference numeral 8 denotes a clock for controlling the clock used in the present embodiment, to which the SCLK sent from the PHY chip and the HCLK as the master clock are input.

【0070】バッファマネージャ70は、RAM80と
のインターフェースを管理する回路である。バッファマ
ネージャ70は、バッファマネージャの制御のためのレ
ジスタ72、RAM80へのバス接続を調停する調停回
路74、各種の制御信号を生成するシーケンサ76を含
む。
The buffer manager 70 is a circuit for managing an interface with the RAM 80. The buffer manager 70 includes a register 72 for controlling the buffer manager, an arbitration circuit 74 for arbitrating bus connection to the RAM 80, and a sequencer 76 for generating various control signals.

【0071】RAM80は、ランダムアクセス可能なパ
ケット記憶手段として機能するものであり、その機能は
例えばSRAM、DRAMなどにより実現される。そし
て、本実施形態では、図7に示すように、このRAM8
0がヘッダ領域(広義には制御情報領域)とデータ領域
に分離されている。そして、パケットのヘッダ(広義に
は制御情報)は図7のヘッダ領域に格納され、パケット
のデータはデータ領域に格納される。
The RAM 80 functions as a randomly accessible packet storage means, and its function is realized by, for example, an SRAM, a DRAM, or the like. In the present embodiment, as shown in FIG.
0 is separated into a header area (control information area in a broad sense) and a data area. The header (control information in a broad sense) of the packet is stored in the header area of FIG. 7, and the data of the packet is stored in the data area.

【0072】なお本実施形態では、RAM80がデータ
転送制御装置に内蔵されている。但し、RAM80の一
部を外付けにすることも可能である。
In this embodiment, the RAM 80 is built in the data transfer control device. However, a part of the RAM 80 can be provided externally.

【0073】バス90(或いはバス92、94)は、ア
プリケーションに接続されるものである(第1のバ
ス)。またバス96(或いはバス98)はデータ転送制
御装置をコントロールするためのものであり、データ転
送制御装置をコントロールするデバイス(例えばCP
U)に電気的に接続される(第2のバス)。またバス1
00(或いはバス102、104、105、106、1
07、108、109)は、物理層のデバイス(例えば
PHYチップ)に電気的に接続されるものである(第3
のバス)。また、バス110は、ランダムアクセス可能
な記憶手段であるRAMに電気的に接続されるものであ
る(第4のバス)。
The bus 90 (or buses 92 and 94) is connected to the application (first bus). A bus 96 (or bus 98) is for controlling the data transfer control device, and is a device (for example, CP) for controlling the data transfer control device.
U) (second bus). Bus 1
00 (or buses 102, 104, 105, 106, 1
07, 108, and 109) are electrically connected to a physical layer device (for example, a PHY chip).
Bus). The bus 110 is electrically connected to a random access memory (RAM), which is a storage means (fourth bus).

【0074】バッファマネージャ70の調停回路74
は、DMAC40、DMAC42、DMAC44、CP
Uインターフェース60、DMAC54からのバスアク
セス要求の調停を行う。そして、この調停結果に基づい
て、各々、バス105、107、109、98、94の
いずれかと、RAM80のバス110との間にデータの
経路が確立される(第1、第2、第3のバスのいずれか
と第4のバスとの間にデータ経路が確立される)。
The arbitration circuit 74 of the buffer manager 70
Are DMAC40, DMAC42, DMAC44, CP
Arbitration of bus access requests from the U interface 60 and the DMAC 54 is performed. Then, based on the arbitration result, a data path is established between any one of the buses 105, 107, 109, 98, and 94 and the bus 110 of the RAM 80 (first, second, and third). A data path is established between any of the buses and the fourth bus).

【0075】本実施形態の1つの特徴は、ランダムアク
セスが可能でありパケットを格納するRAM80を設け
ると共に、互いに分離されるバス90、96、100
と、これらのバスをRAM80のバス110に接続する
ための調停回路74とを設けた点にある。
One feature of the present embodiment is that a random access is possible, a RAM 80 for storing packets is provided, and buses 90, 96, 100 separated from each other are provided.
And an arbitration circuit 74 for connecting these buses to the bus 110 of the RAM 80.

【0076】例えば図8に、本実施形態と構成の異なる
データ転送制御装置の例を示す。このデータ転送制御装
置では、リンクコア902は、PHYインターフェース
900、バス922を介してPHYチップと接続され
る。また、リンクコア902は、FIFO904、90
6、908、CPUインターフェース910、バス92
0を介してCPU912に接続される。そして、CPU
912は、バス924を介して、CPUにローカルなメ
モリであるRAM914に接続される。
For example, FIG. 8 shows an example of a data transfer control device having a configuration different from that of the present embodiment. In this data transfer control device, the link core 902 is connected to the PHY chip via the PHY interface 900 and the bus 922. Further, the link core 902 includes FIFOs 904, 90
6, 908, CPU interface 910, bus 92
0 is connected to the CPU 912. And CPU
912 is connected via a bus 924 to a RAM 914 which is a memory local to the CPU.

【0077】なお、FIFO904、906、908
は、図6のFIFO30、32、34と異なり、非常に
段数の多いものとなる(例えば1つのFIFOが16段
程度)。
The FIFOs 904, 906, 908
Unlike the FIFOs 30, 32, and 34 in FIG. 6, the number of stages is very large (for example, one FIFO has about 16 stages).

【0078】図8の構成のデータ転送制御装置を用いた
場合のデータ転送の手法について図9を用いて説明す
る。PHYチップ930を介して他のノードから送られ
てきた受信パケットは、バス922、データ転送制御装
置932、バス920を介してCPU912が受け取
る。そして、CPU912は、受け取った受信パケット
をバス924を介してRAM914に書き込む。そし
て、CPU912は、受信パケットをアプリケーション
層が使用できるように加工し、バス926を介してアプ
リケーション層のデバイス934に転送する。
A data transfer method using the data transfer control device having the configuration shown in FIG. 8 will be described with reference to FIG. A received packet transmitted from another node via the PHY chip 930 is received by the CPU 912 via the bus 922, the data transfer control device 932, and the bus 920. Then, the CPU 912 writes the received packet to the RAM 914 via the bus 924. Then, the CPU 912 processes the received packet so that it can be used by the application layer, and transfers the received packet to the device 934 of the application layer via the bus 926.

【0079】一方、アプリケーション層のデバイス93
4からのデータを転送する場合には、CPU912は、
このデータをRAM914に書き込む。そして、RAM
914のデータにヘッダを付加することでIEEE13
94に準拠したパケットを生成する。そして生成された
パケットは、データ転送制御装置932、PHYチップ
930などを介して他のノードに送信される。
On the other hand, the device 93 of the application layer
When transferring the data from No. 4, the CPU 912
This data is written to the RAM 914. And RAM
By adding a header to the data of IEEE 914, IEEE13
Generate a packet conforming to H.94. Then, the generated packet is transmitted to another node via the data transfer control device 932, the PHY chip 930, and the like.

【0080】しかしながら、このようなデータ転送手法
によると、CPU912の処理負荷が非常に重くなる。
従って、ノード間を接続するシリアルバスの転送速度が
高速になっても、CPU912の処理のオーバーヘッド
などに起因して、システム全体の実転送速度は低くな
り、結局、高速なデータ転送を実現できない。
However, according to such a data transfer method, the processing load on the CPU 912 becomes very heavy.
Therefore, even if the transfer speed of the serial bus connecting the nodes is increased, the actual transfer speed of the entire system is reduced due to the processing overhead of the CPU 912, and high-speed data transfer cannot be realized after all.

【0081】このような問題を解決する1つの手法とし
て、図10に示すように、データ転送制御装置932と
RAM914との間でのデータ転送や、RAM914と
アプリケーション層のデバイス934との間でのデータ
転送を、ハードウェアDMAにより実現する手法も考え
られる。
As one method for solving such a problem, as shown in FIG. 10, data transfer between the data transfer control device 932 and the RAM 914, and data transfer between the RAM 914 and the device 934 of the application layer are performed. A method of realizing data transfer by hardware DMA is also conceivable.

【0082】しかしながら、この手法では、CPUバス
928が、データ転送制御装置932、RAM914間
でのデータ転送、RAM914、CPU912間でのデ
ータ転送、RAM914、アプリケーション層デバイス
934間でのデータ転送に使用されることになる。従っ
て、システム全体のデータ転送の高速化を図ろうとする
と、CPUバス928としてPCIバスのような高速な
バスを使用しなければならなくなり、これは、データ転
送制御装置を使用する電子機器の高コスト化を招く。
However, in this method, the CPU bus 928 is used for data transfer between the data transfer control device 932 and the RAM 914, data transfer between the RAM 914 and the CPU 912, and data transfer between the RAM 914 and the application layer device 934. Will be. Therefore, in order to increase the speed of data transfer in the entire system, a high-speed bus such as a PCI bus must be used as the CPU bus 928, which increases the cost of electronic equipment using the data transfer control device. Invite.

【0083】これに対して、本実施形態では図11に示
すように、データ転送制御装置120、アプリケーショ
ン層デバイス124間のバス90と、CPUバス96
と、データ転送制御装置120、RAM80間のバス1
10とが互いに分離されている。従って、CPUバス9
6をデータ転送の制御のみに使用できるようになる。ま
た、バス90を占有して、データ転送制御装置120、
アプリケーション層デバイス124間でデータ転送を行
うことができるようになる。例えば、データ転送制御装
置120が組み込まれる電子機器がプリンタである場合
には、バス90を占有して印字データを転送できるよう
になる。この結果、CPU66の処理負荷を軽減でき、
システム全体の実転送速度を高めることができる。また
CPU66として安価なものを採用できると共に、CP
Uバス96として高速なバスを使用する必要性がなくな
る。このため、電子機器の低コスト化、小規模化を図れ
るようになる。
On the other hand, in this embodiment, as shown in FIG. 11, a bus 90 between the data transfer control device 120 and the application layer device 124, a CPU bus 96
And the bus 1 between the data transfer control device 120 and the RAM 80
10 are separated from each other. Therefore, the CPU bus 9
6 can be used only for controlling data transfer. Further, the bus 90 is occupied by the data transfer control device 120,
Data transfer between the application layer devices 124 can be performed. For example, when the electronic device in which the data transfer control device 120 is incorporated is a printer, the print data can be transferred while occupying the bus 90. As a result, the processing load on the CPU 66 can be reduced,
The actual transfer speed of the entire system can be increased. In addition, an inexpensive CPU 66 can be used,
The need to use a high-speed bus as the U bus 96 is eliminated. Therefore, the cost and the size of the electronic device can be reduced.

【0084】3.パケット記憶用RAMへのパケットの
格納 3.1 本実施形態の特徴 図8の比較例では、図12(A)に示すように、リンク
コア902とCPU912との間には、送信用のFIF
O904、906と受信用のFIFO908が設けられ
ている。
3. Storing Packets in Packet Storage RAM 3.1 Features of the Present Embodiment In the comparative example of FIG. 8, as shown in FIG. 12A, between the link core 902 and the CPU 912, a transmission IF
O904 and 906 and a receiving FIFO 908 are provided.

【0085】即ち、他のノードから送られてくる受信パ
ケットは、リンクコア902を介してFIFO908に
順次入力される。そして、CPU912(CPU上で動
作するファームウェアやアプリケーションソフト)は、
FIFO908に入力された順序で受信パケットをFI
FO908から順次読み出す。
That is, received packets sent from other nodes are sequentially input to the FIFO 908 via the link core 902. The CPU 912 (firmware or application software running on the CPU)
Receive packets in the order input to FIFO 908
Read sequentially from FO908.

【0086】また、CPU912は、転送すべき送信パ
ケットをFIFO904、906に順次入力する。そし
て、送信パケットは、このFIFO904、906に入
力された順序でリンクコア902を介して他のノードに
順次転送される。
The CPU 912 sequentially inputs transmission packets to be transferred to the FIFOs 904 and 906. The transmission packets are sequentially transferred to other nodes via the link core 902 in the order input to the FIFOs 904 and 906.

【0087】これに対して、本実施形態では、図12
(B)に示すように、ノード間でのパケット転送のため
の各種サービスを提供するリンクコア20と、CPU6
6との間に、FIFO30、32、34の他に、ランダ
ムアクセス可能なパケット記憶手段として機能するRA
M80を介在させている。
On the other hand, in the present embodiment, FIG.
As shown in (B), a link core 20 for providing various services for packet transfer between nodes,
6, an RA functioning as a random access packet storage means in addition to the FIFOs 30, 32, and 34
M80 is interposed.

【0088】即ち、他のノードからリンクコア20を介
して送られてくる受信パケットは、FIFO34に格納
された後に、DMAC44(書き込み手段)によりRA
M80に書き込まれる。そして、CPU66が、このラ
ンダムアクセス可能なRAM80から受信パケットを読
み出す。
That is, a received packet transmitted from another node via the link core 20 is stored in the FIFO 34, and then stored in the DMAC 44 (writing means).
Written to M80. Then, the CPU 66 reads the received packet from the random accessible RAM 80.

【0089】また、CPU66などにより、転送すべき
送信パケットがRAM80に書き込まれる。そして、こ
の書き込まれた送信パケットは、DMAC40、42
(読み出し手段)により読み出され、FIFO30、3
2、リンクコア20を介して他のノードに転送される。
Further, the transmission packet to be transferred is written in the RAM 80 by the CPU 66 or the like. The written transmission packet is transmitted to the DMACs 40 and 42.
(Reading means) and read out by the FIFOs 30,
2. The data is transferred to another node via the link core 20.

【0090】図12(A)では、CPU912は、受信
した順序でFIFO908から受信パケットを受け取ら
なければならず、送信する順序でFIFO904、90
6に送信パケットを格納しなければならない。これに対
して、リンクコア20とCPU66との間にランダムア
クセス可能なRAM80を介在させる本実施形態では、
受信順序に依存せずに、RAM80の所望のアドレスに
受信パケットを書き込むことが可能になる。また、送信
順序に依存せずに、CPU66などがRAM80の所望
のアドレスに送信パケットを書き込むことも可能にな
る。
In FIG. 12A, the CPU 912 must receive the received packets from the FIFO 908 in the order of reception, and the FIFOs 904, 90 in the order of transmission.
6 must store the transmission packet. On the other hand, in the present embodiment in which the RAM 80 that can be randomly accessed is interposed between the link core 20 and the CPU 66,
A received packet can be written to a desired address in the RAM 80 without depending on the receiving order. Also, the CPU 66 and the like can write the transmission packet to a desired address of the RAM 80 without depending on the transmission order.

【0091】また、図12(A)では、FIFO90
4、906、908の段数を非常に多くする必要があ
る。これに対して、本実施形態では、FIFO30、3
2、34の段数を格段に減らすことができ、例えば段数
を3段以下とすることも可能になる。
In FIG. 12A, the FIFO 90
4, 906 and 908 need to have a very large number of stages. In contrast, in the present embodiment, the FIFOs 30,
The number of stages 2, 34 can be significantly reduced, and for example, the number of stages can be reduced to three or less.

【0092】なお、本実施形態では、FIFO30、3
2、34を設けない構成にしてもよい。
In this embodiment, the FIFOs 30, 3
Alternatively, a configuration in which the two and 34 are not provided may be adopted.

【0093】また、本実施形態では、図7に示すよう
に、RAM80の記憶領域を、パケットのヘッダ(広義
には制御情報)が格納されるヘッダ領域(広義には制御
情報領域)とパケットのデータが格納されるデータ領域
に分離している。これは、図12(B)に示すようにリ
ンクコア20とCPU66との間にランダムアクセス可
能なRAM80を介在させることで実現可能になる。
In the present embodiment, as shown in FIG. 7, the storage area of the RAM 80 is divided into a header area (control information area in a broad sense) for storing the header of the packet (control information in a broad sense) and a control area of the packet. It is separated into data areas where data is stored. This can be realized by interposing a random accessible RAM 80 between the link core 20 and the CPU 66 as shown in FIG.

【0094】即ち、図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による並
べ替え処理が必要になる。
That is, in FIG.
Must receive the received packets from FIFO 908 in the order in which they were received. Therefore, if an attempt is made to realize a process of separating a received packet into a header and data,
The received packet read from the IFO 908
2 needs to temporarily write to the RAM which is a local memory, and the CPU 912 needs to read the received packet from the RAM and separate it into a header and data. FIG.
In (A), the CPU 912 sets the FIFO in the order of transmission.
Transmission packets must be input to 904 and 906. For example, when transmitting packet 1 (header 1, data 1), packet 2 (header 2, data 2), and packet 3 (header 3, data 3), header 1, data 1, header 2, data 2,. Transmission packets must be input to the FIFOs 904 and 906 in the order of header 3 and data 3. Therefore, a rearrangement process by the CPU 912 is required.

【0095】このように図12(A)では、CPU91
2の処理負荷が非常に重くなり、これは結局、システム
全体の実転送速度の低下という事態を招く。
As described above, in FIG.
2, the processing load becomes very heavy, which eventually leads to a reduction in the actual transfer speed of the entire system.

【0096】これに対して、本実施形態では、RAM8
0の記憶領域がヘッダ領域とデータ領域に分離される。
より具体的には、図13に示すように、各受信パケット
のヘッダとデータがハードウェアにより分離され、ヘッ
ダがヘッダ領域に、データがデータ領域に格納される。
また、図14に示すように、ヘッダ領域に格納されたヘ
ッダとデータ領域に格納されたデータとがハードウェア
により結合され、各ノードに転送すべき送信パケットが
組み立てられる。従って、CPU66の処理負荷が図1
2(A)に比べて非常に軽くなり、システム全体の実転
送速度を向上できる。また、CPU66として安価なも
のを採用できると共にCPU66に接続されるバスも低
速なもので済むため、データ転送制御装置や電子機器の
小規模化、低コスト化を図れるようになる。
On the other hand, in the present embodiment, the RAM 8
The storage area of 0 is separated into a header area and a data area.
More specifically, as shown in FIG. 13, the header and data of each received packet are separated by hardware, the header is stored in the header area, and the data is stored in the data area.
Further, as shown in FIG. 14, the header stored in the header area and the data stored in the data area are combined by hardware, and a transmission packet to be transferred to each node is assembled. Therefore, the processing load of the CPU 66 is
2 (A), which is much lighter, and the actual transfer speed of the entire system can be improved. In addition, since an inexpensive CPU 66 can be employed and the bus connected to the CPU 66 can be operated at a low speed, the size and cost of the data transfer control device and the electronic device can be reduced.

【0097】また、本実施形態によれば、ヘッダはヘッ
ダ領域にまとめられて格納され、データもデータ領域に
まとめられて格納される。従って、ヘッダやデータの読
み出し処理や書き込み処理の簡易化を図ることができ、
処理のオーバーヘッドを軽減化できる。例えば、図11
の手法でデータ転送を行う場合には、CPU66は、C
PUバス96を介してヘッダ領域にのみアクセスしヘッ
ダを読み出したり書き込んだりするだけでデータ転送を
制御できるようになる。また、アプリケーション層のデ
バイス124は、データ領域のデータを連続してバス9
0を介して読み出したり、データを連続してデータ領域
に書き込んだりすることが可能になる。
Further, according to the present embodiment, the header is collected and stored in the header area, and the data is also stored and collected in the data area. Therefore, it is possible to simplify the reading process and the writing process of the header and the data,
Processing overhead can be reduced. For example, FIG.
When performing the data transfer by the method described in
The data transfer can be controlled only by accessing the header area via the PU bus 96 and reading or writing the header. Also, the device 124 of the application layer continuously transmits the data of the data area to the bus 9.
0, and data can be written continuously to the data area.

【0098】なお、図15に示すように、ヘッダ領域に
格納される各ヘッダと、データ領域に格納される各デー
タとは、ヘッダに含ませたデータポインタにより対応さ
せることが望ましい。この場合、受信パケットのヘッダ
へのデータポインタの付加は、例えばリンクコア20が
行い、送信パケットのヘッダへのデータポインタの付加
は、例えばファームウェアが行うようにする。
As shown in FIG. 15, it is desirable that each header stored in the header area and each data stored in the data area correspond to each other by a data pointer included in the header. In this case, for example, the link core 20 adds the data pointer to the header of the received packet, and the firmware adds the data pointer to the header of the transmitted packet.

【0099】また、本実施形態では、図16に示すよう
に、受信パケットのスタート(ヘッダの最初)、ヘッ
ダ、データ、トレイラーを区別するためのTAGを生成
し、このTAGを受信パケットに関連づけている。より
具体的には、図6のリンクコア20が、受信パケットの
スタート、ヘッダ、データ、トレイラーをFIFO34
に転送する際に、図16に示す2ビットのTAGも同時
にFIFO34に転送している。そして、本実施形態で
は、受信パケットに関連づけられたこのTAGを利用し
て、図13に示すように受信パケットをヘッダとデータ
に分離しヘッダ領域とデータ領域に格納している。より
具体的には、図6のDMAC44が、受信パケットと共
にFIFO34から出力されるTAGを利用して、受信
パケットをヘッダとデータに分離し、RAM80に書き
込んでいる。なお、TAGは、少なくともヘッダとデー
タを区別できるものであればよい。
In this embodiment, as shown in FIG. 16, a TAG for distinguishing the start (head of header), header, data, and trailer of a received packet is generated, and this TAG is associated with the received packet. I have. More specifically, the link core 20 of FIG.
16 is also transferred to the FIFO 34 at the same time. In the present embodiment, the received packet is separated into a header and data by using the TAG associated with the received packet and stored in the header area and the data area as shown in FIG. More specifically, the DMAC 44 in FIG. 6 uses the TAG output from the FIFO 34 together with the received packet to separate the received packet into a header and data, and writes it into the RAM 80. Note that the TAG only needs to be able to distinguish at least the header and the data.

【0100】例えば、TAGを利用せずに受信パケット
のヘッダとデータを分離する手法として、ヘッダに含ま
れるtcode(トランザクションコード)を利用する
手法が考えられる。即ち、tcodeをデコードして、
ヘッダのサイズを調べ、そのサイズの分だけ受信パケッ
トをヘッダ領域に格納し、残りをデータ領域に格納す
る。
For example, as a technique for separating the header and data of a received packet without using a TAG, a technique using a tcode (transaction code) included in the header can be considered. That is, by decoding tcode,
The size of the header is checked, the received packet corresponding to the size is stored in the header area, and the rest is stored in the data area.

【0101】しかしながら、この手法では、tcode
をデコードする回路が必要となり、回路が大規模化して
しまう。
However, in this method, tcode
Requires a circuit to decode the data, and the circuit becomes large-scale.

【0102】これに対して、TAGを利用すれば、DM
AC44は、TAGを見るだけで受信パケットをヘッダ
とデータに分離できる。従って、回路をそれほど大規模
化することなく、簡易な処理で受信パケットのヘッダと
データを分離できるようになる。
On the other hand, if TAG is used, DM
The AC 44 can separate the received packet into a header and data simply by looking at the TAG. Therefore, the header and the data of the received packet can be separated by simple processing without increasing the size of the circuit.

【0103】また、本実施形態では、図17(A)に示
すように、ヘッダ領域とデータ領域の他に、これらの領
域と分離されたCPU66のワーク領域をRAM80に
設けている。このようにすれば、CPU66が、ワーク
領域に直接アクセスして、CPU66の処理のためにそ
の領域を利用できるようになる。従って、CPU66が
ローカルメモリを有する場合には、そのメモリを小容量
化することが可能になる。更に、CPU66のローカル
メモリを設ける必要性自体を無くすことも可能になる。
これにより、データ転送制御装置や電子機器の小規模
化、低コスト化を図れるようになる。
In this embodiment, as shown in FIG. 17A, in addition to the header area and the data area, a work area of the CPU 66 separated from these areas is provided in the RAM 80. This allows the CPU 66 to directly access the work area and use that area for processing by the CPU 66. Therefore, when the CPU 66 has a local memory, the memory can be reduced in capacity. Further, the necessity of providing the local memory of the CPU 66 itself can be eliminated.
As a result, the size and cost of the data transfer control device and the electronic device can be reduced.

【0104】また、本実施形態では、図17(B)に示
すように、ヘッダ領域を受信用と送信用の領域に分離
(分割)している。これらの受信用、送信用のヘッダ領
域の各々は、少なくとも1個以上のパケットを格納でき
るものであればよい。
In this embodiment, as shown in FIG. 17B, the header area is separated (divided) into a reception area and a transmission area. Each of these reception and transmission header areas may be any that can store at least one or more packets.

【0105】例えば図8の構成では、ローカルメモリで
あるRAM914にCPU912が受信パケットや送信
パケットを格納する。このため、CPU912は、受信
パケットや送信パケットを格納したアドレスを各パケッ
ト毎に保持し管理しなければならない。従って、CPU
912の処理が煩雑化し、処理負担が増加する。特に、
CD−Rドライブのように受信処理と送信処理が混在す
るアプリケーションでは、受信パケットと送信パケット
が混在してRAM914に格納されることになるため、
処理の煩雑化、処理負担の増加の問題は更に深刻にな
る。
For example, in the configuration of FIG. 8, the CPU 912 stores a received packet and a transmitted packet in the RAM 914 as a local memory. For this reason, the CPU 912 has to hold and manage the address storing the received packet and the transmitted packet for each packet. Therefore, CPU
The process of step 912 becomes complicated, and the processing load increases. In particular,
In an application such as a CD-R drive where reception processing and transmission processing coexist, reception packets and transmission packets coexist and are stored in the RAM 914.
The problems of complicated processing and increased processing load become more serious.

【0106】これに対して、本実施形態によれば、ヘッ
ダ領域が受信用と送信用の領域に分離される。従って、
RAM80の受信用ヘッダ領域には受信用のヘッダが、
送信用ヘッダ領域には送信用のヘッダが規則的に格納さ
れる。従って、CPU66は、受信処理の際には受信用
ヘッダ領域にアクセスし、送信処理の際には送信用ヘッ
ダ領域にアクセスすればよいことになる。そして、例え
ば受信パケットを連続して受信する場合には、受信用ヘ
ッダ領域からヘッダを連続して読み出し、送信パケット
を連続して送信する場合には、送信用ヘッダ領域にヘッ
ダを連続して書き込めばよいことになる。従って、CP
U66の処理負担を大幅に軽減でき、システム全体の実
転送速度の向上を期待できるようになる。
On the other hand, according to the present embodiment, the header area is divided into a reception area and a transmission area. Therefore,
A reception header is provided in the reception header area of the RAM 80.
The transmission header area stores transmission headers regularly. Therefore, the CPU 66 only needs to access the reception header area during the reception processing and access the transmission header area during the transmission processing. For example, when receiving received packets continuously, the header is read continuously from the reception header area, and when transmitting transmission packets continuously, the header is continuously written in the transmission header area. It will be good. Therefore, CP
The processing load on U66 can be greatly reduced, and an improvement in the actual transfer speed of the entire system can be expected.

【0107】また、本実施形態では、図17(C)に示
すように、データ領域を受信用と送信用の領域に分離し
ている。
In this embodiment, as shown in FIG. 17C, the data area is divided into a reception area and a transmission area.

【0108】このようにすれば、例えば図11におい
て、アプリケーション層のデバイス124は、RAM8
0の受信用データ領域から連続して受信データを読み出
せるようになると共に、送信用データ領域に連続して送
信データを書き込めるようになる。そして、読み出しや
書き込みの際にはアドレスを単純にインクリメント(或
いはデクリメント)すればよいので、アドレス制御も容
易になる。この結果、本実施形態によれば、処理のオー
バーヘッドを格段に軽減でき、実転送速度の向上を期待
できるようになる。
Thus, for example, in FIG. 11, the device 124 of the application layer
The reception data can be continuously read from the 0 reception data area, and the transmission data can be continuously written to the transmission data area. Then, at the time of reading or writing, since the address may be simply incremented (or decremented), the address control becomes easy. As a result, according to the present embodiment, the processing overhead can be significantly reduced, and an improvement in the actual transfer speed can be expected.

【0109】また、本実施形態では、データ領域を、ア
イソクロナス転送用と非同期転送用の領域に分離してい
る。より具体的には例えば図17(D)に示すように、
データ領域を、アイソクロナス受信用、非同期受信用、
アイソクロナス送信用、非同期送信用の領域に分離して
いる。
In this embodiment, the data area is divided into an area for isochronous transfer and an area for asynchronous transfer. More specifically, for example, as shown in FIG.
The data area can be used for isochronous reception, asynchronous reception,
It is divided into areas for isochronous transmission and asynchronous transmission.

【0110】例えば図8の構成では、アイソクロナスパ
ケットと非同期パケットとが混在してFIFO908に
入力される。そして、CPU912は、この入力された
順序でFOFO908からパケットを読み出す。また、
この読み出した順序でパケットをローカルメモリである
RAM914に格納する。従って、RAM914には、
アイソクロナスパケットと非同期パケットが混在して格
納されることになる。
For example, in the configuration of FIG. 8, an isochronous packet and an asynchronous packet are mixed and input to the FIFO 908. Then, the CPU 912 reads out the packets from the FOFO 908 in the input order. Also,
The packets are stored in the read order in the RAM 914 which is a local memory. Therefore, in the RAM 914,
Isochronous packets and asynchronous packets are stored together.

【0111】さて、アイソクロナスパケットの処理には
リアルタイム性が要求される。従って、CPU912は
一定期間内にアイソクロナスパケットに関する処理を終
了しなければならない。ところが、図8では、CPU9
12はFIFO908に入力された順序でFIFO90
8からパケットを読み出さなければならず、また、RA
M914には、アイソクロナスパケットと非同期パケッ
トが混在するようになる。従って、例えば非同期パケッ
トの次にアイソクロナスパケットが送られてきた場合に
も、非同期パケットを先に処理しなければならず、アイ
ソクロナスパケットを先に処理することができない。こ
のため、リアルタイム性が要求されるアイソクロナスパ
ケットの処理が間に合わなくなる可能性がある。
The processing of an isochronous packet requires real-time processing. Therefore, the CPU 912 must end the process related to the isochronous packet within a certain period. However, in FIG.
Reference numeral 12 denotes a FIFO 90 in the order input to the FIFO 908.
8 must be read out, and RA
In M914, an isochronous packet and an asynchronous packet are mixed. Therefore, for example, even when an isochronous packet is sent next to an asynchronous packet, the asynchronous packet must be processed first, and the isochronous packet cannot be processed first. For this reason, there is a possibility that the processing of an isochronous packet that requires real-time properties cannot be made in time.

【0112】これに対して、本実施形態では、アイソク
ロナスパケットはアイソクロナス転送用の領域に格納さ
れ、非同期パケットは非同期転送用の領域に格納され
る。従って、非同期パケットの次にアイソクロナスパケ
ットが送られてきた場合にも、アイソクロナスパケット
を先に読み出し、先に処理することが可能になる。この
結果、アイソクロナスパケットの処理を一定期間内に完
了でき、アイソクロナスパケットの処理に要求されるリ
アルタイム性を維持できるようになる。
On the other hand, in the present embodiment, the isochronous packet is stored in the area for isochronous transfer, and the asynchronous packet is stored in the area for asynchronous transfer. Therefore, even when an isochronous packet is sent next to an asynchronous packet, the isochronous packet can be read out first and processed first. As a result, the processing of the isochronous packet can be completed within a certain period, and the real-time property required for the processing of the isochronous packet can be maintained.

【0113】また、データ領域をアイソクロナス転送用
と非同期転送用の領域に分離することで、アプリケーシ
ョン層のデバイスの処理も簡易化できる。例えばデジタ
ルビデオカメラにおいて、リアルタイム性が要求される
動画像をアイソクロナスで転送し、信頼性が要求される
静止画像を非同期で転送する場合を考える。そして、図
11において、データ転送制御装置120とアプリケー
ション層のデバイス124との間でバス90を用いて直
接に動画像や静止画像のデータを転送したとする。この
場合に、データ領域をアイソクロナス転送用と非同期転
送用の領域に分離することにより、バス90を用いた動
画像や静止画像のデータの転送を簡易化できる。動画像
のデータを転送する場合には、動画像のデータをまとめ
てアイソクロナス転送用のデータ領域に書き込み、静止
画像のデータを転送する場合には、静止画像のデータを
まとめて非同期転送用のデータ領域に書き込めばよいか
らである。また、この書き込みの際には、アドレスを単
純にインクリメント(或いはデクリメント)すればよい
ので、アドレス制御も容易になるからである。
Further, by dividing the data area into an area for isochronous transfer and an area for asynchronous transfer, the processing of the device in the application layer can be simplified. For example, in a digital video camera, a case is considered in which a moving image that requires real-time properties is transferred isochronously, and a still image that requires reliability is transferred asynchronously. In FIG. 11, it is assumed that data of a moving image or a still image is directly transferred between the data transfer control device 120 and the device 124 of the application layer using the bus 90. In this case, by dividing the data area into an area for isochronous transfer and an area for asynchronous transfer, transfer of moving image and still image data using the bus 90 can be simplified. When transferring moving image data, collectively write the moving image data to the data area for isochronous transfer, and when transferring still image data, collect the still image data together for asynchronous transfer data. This is because writing in the area is sufficient. Also, at the time of this writing, the address may be simply incremented (or decremented), so that the address control becomes easy.

【0114】また、本実施形態では、非同期転送用デー
タ領域を、複数の領域に分離している。より具体的には
例えば図17(E)に示すように、非同期受信用領域
を、第1、第2の非同期受信用の領域に分離している。
また、非同期送信用領域を、第1、第2の非同期送信用
の領域に分離している。
In this embodiment, the data area for asynchronous transfer is divided into a plurality of areas. More specifically, for example, as shown in FIG. 17E, the area for asynchronous reception is divided into first and second areas for asynchronous reception.
Further, the asynchronous transmission area is separated into first and second asynchronous transmission areas.

【0115】例えば、プリンタなどのアプリケーション
では、コマンドデータ、ステータスデータなどの制御用
データのみならず、印字データも非同期転送される。こ
の場合に、非同期転送用データ領域が複数の領域に分離
されていないと、制御用データと印字データとが、非同
期転送用データ領域に混在して格納されてしまう。従っ
て、印字データの連続性を維持できなくなり、上層の処
理負荷が重くなってしまう。
For example, in an application such as a printer, not only control data such as command data and status data but also print data is asynchronously transferred. In this case, if the data area for asynchronous transfer is not divided into a plurality of areas, the control data and the print data are mixedly stored in the data area for asynchronous transfer. Therefore, the continuity of the print data cannot be maintained, and the processing load on the upper layer increases.

【0116】図17(E)に示すように、非同期転送用
データ領域を複数の領域に分割すれば、例えば第1の非
同期転送用データ領域には、コマンドデータ、ステータ
スデータなどの制御用データを格納し、第2の非同期転
送用データ領域には、印字データを格納することが可能
になる。この結果、第2の非同期転送用データ領域に印
字データを連続して格納することが可能になり、上層の
処理負担を軽減できる。
As shown in FIG. 17E, if the data area for asynchronous transfer is divided into a plurality of areas, control data such as command data and status data is stored in the first data area for asynchronous transfer. Then, the print data can be stored in the second data area for asynchronous transfer. As a result, print data can be continuously stored in the second asynchronous transfer data area, and the processing load on the upper layer can be reduced.

【0117】また、本実施形態では、データ領域を、ア
イソクロナス転送用データ領域と第1の非同期転送用デ
ータ領域に分離する共に、アイソクロナス転送用データ
領域を、随時、第2の非同期転送用データ領域としても
使用している。より具体的には例えば図17(F)に示
すように、アイソクロナス受信用領域を第2の非同期受
信用領域として随時使用したり、アイソクロナス送信用
領域を第2の非同期送信用領域として随時使用したりす
る。
In the present embodiment, the data area is divided into the isochronous transfer data area and the first asynchronous transfer data area, and the isochronous transfer data area is optionally divided into the second asynchronous transfer data area. Also used as. More specifically, for example, as shown in FIG. 17F, the isochronous reception area is used as a second asynchronous reception area as needed, or the isochronous transmission area is used as needed as a second asynchronous transmission area. Or

【0118】例えば、デジタルビデオなどのアプリケー
ションでは、画像データ(特に動画像データ)はアイソ
クロナス転送される一方で、コマンドデータ、ステータ
スデータなどの制御用データは非同期転送される。従っ
て、この場合には、画像データをアイソクロナス転送用
データ領域に格納するようにすると共に、制御用データ
を第1の非同期転送用データ領域に格納するようにす
る。
For example, in applications such as digital video, image data (especially moving image data) is transferred isochronously, while control data such as command data and status data are transferred asynchronously. Therefore, in this case, the image data is stored in the isochronous transfer data area, and the control data is stored in the first asynchronous transfer data area.

【0119】一方、プリンタなどのアプリケーションで
は、印字データも、コマンドデータ、ステータスデータ
などの制御用データも、共に非同期転送される。従っ
て、この場合には、図17(F)に示すように、アイソ
クロナス転送用データ領域を第2の非同期転送用データ
領域として使用し、印字データをこの第2の非同期転送
用データ領域に格納するようにする。一方、制御用デー
タについては、第1の非同期転送用データ領域に格納す
るようにする。
On the other hand, in an application such as a printer, both print data and control data such as command data and status data are asynchronously transferred. Therefore, in this case, as shown in FIG. 17F, the isochronous transfer data area is used as the second asynchronous transfer data area, and the print data is stored in the second asynchronous transfer data area. To do. On the other hand, the control data is stored in the first asynchronous transfer data area.

【0120】このように、アプリケーションに応じて、
アイソクロナス転送用データ領域を第2の非同期転送用
データ領域として随時使用することで、限られたリソー
スの有効利用を図ることができる。
As described above, according to the application,
By using the isochronous transfer data area as the second asynchronous transfer data area as needed, effective use of limited resources can be achieved.

【0121】また、本実施形態では、RAM80が複数
の領域に分離される場合において、各領域のサイズを可
変に制御するようにしている。より具体的には図18に
示すように、各領域の境界のアドレスを指すポインタP
1〜P6を可変に制御する。
In the present embodiment, when the RAM 80 is divided into a plurality of areas, the size of each area is variably controlled. More specifically, as shown in FIG. 18, a pointer P pointing to the address of the boundary of each area
1 to P6 are variably controlled.

【0122】このようにすれば、アプリケーションに応
じた最適な領域分割を実現できる。例えば、プリンタの
ように、パケットを送信することが少なく、パケットを
受信することが多いアプリケーションでは、受信用の領
域のサイズを大きくする。また、スキャナのように、パ
ケットを受信することが少なく、パケットを送信するこ
とが多いアプリケーションでは、送信用の領域のサイズ
を大きくする。また、非同期転送を行うことが多いアプ
リケーションでは非同期転送用の領域のサイズを大きく
し、アイソクロナス転送を行うことが多いアプリケーシ
ョンではアイソクロナス転送用の領域のサイズを大きく
する。或いは、非同期転送のみを行うアプリケーション
では、アイソクロナス転送用の領域を零にする。このよ
うにすることにより、限られたリソース(少ない記憶容
量のRAM80)を有効利用することが可能になる。
In this way, it is possible to realize the optimum area division according to the application. For example, in an application such as a printer in which packets are rarely transmitted and packets are frequently received, the size of the reception area is increased. In an application such as a scanner, which receives a small number of packets and frequently transmits a packet, the size of the transmission area is increased. In an application that frequently performs asynchronous transfer, the size of the area for asynchronous transfer is increased. In an application that frequently performs isochronous transfer, the size of the area for isochronous transfer is increased. Alternatively, in an application that performs only asynchronous transfer, the area for isochronous transfer is set to zero. By doing so, it becomes possible to effectively use limited resources (the RAM 80 having a small storage capacity).

【0123】また、図8の構成でFIFO904、90
6、908の各々のサイズを可変にする手法には、ハー
ドウェアの構成が複雑になるという問題点がある。これ
に対して、RAM80の各領域のサイズを可変制御する
ためには、ポインタP1〜P6の指すアドレスを制御す
る(ポインタの指すアドレスが格納されるレジスタの内
容を制御する)のみでよい。このため、簡易なハードウ
ェア構成で各領域のサイズを可変に制御できる。
In the configuration shown in FIG.
The method of making each of the sizes 6 and 908 variable has a problem that the hardware configuration becomes complicated. On the other hand, in order to variably control the size of each area of the RAM 80, it is only necessary to control the addresses indicated by the pointers P1 to P6 (control the contents of the register storing the addresses indicated by the pointers). Therefore, the size of each area can be variably controlled with a simple hardware configuration.

【0124】なお、RAM80の各領域のサイズは、電
源投入後もダイナミックに可変制御できることが望まし
い。例えば、CD−Rドライブのようなアプリケーショ
ンでは、CD−Rへのデータの書き込み時には受信処理
が主に行われ、CD−Rからのデータの読み出し時には
送信処理が主に行われる。従って、CD−Rへのデータ
の書き込み時には、受信用の領域のサイズが大きくなる
ようにポインタをダイナミックに切り替える。また、C
D−Rからのデータの読み出し時には、送信用の領域の
サイズが大きくなるようにポインタをダイナミックに切
り替える。このようにすることで、限られたリソースを
有効利用することが可能になる。
It is desirable that the size of each area of the RAM 80 can be dynamically variably controlled even after the power is turned on. For example, in an application such as a CD-R drive, reception processing is mainly performed when writing data to a CD-R, and transmission processing is mainly performed when reading data from a CD-R. Therefore, when writing data to the CD-R, the pointer is dynamically switched so that the size of the receiving area becomes large. Also, C
When data is read from the DR, the pointer is dynamically switched so that the size of the transmission area increases. By doing so, it becomes possible to effectively use limited resources.

【0125】なお、本実施形態において分離された各領
域は、リングバッファ構造とすることが望ましい。即ち
図19(A)に示すように、RAM80の例えば受信用
ヘッダ領域の一方の境界(上側の境界)から他方の境界
(下側の境界)に向かってパケットのヘッダを格納す
る。そして、図19(B)に示すように他方の境界に達
した場合には、図19(C)に示すように一方の境界に
戻ってヘッダを格納するようにする(上書きする)。こ
のようにすることで、受信ヘッダ領域には、受信した順
序でヘッダが格納されるようになるため、どのような順
序でパケットが受信されたかをファームウェアやアプリ
ケーションソフトが知ることができるようになる。即
ち、ランダムアクセス可能なRAM80を使用しなが
ら、FIFOが持つ有利な機能も得ることができる。ま
た、他方の境界に達した場合に一方の境界からパケット
のヘッダを格納するようにすることで、限られたリソー
ス(少ない記憶容量のRAM80)を有効利用できるよ
うになる。
It is preferable that each of the regions separated in the present embodiment has a ring buffer structure. That is, as shown in FIG. 19A, the header of the packet is stored from, for example, one boundary (upper boundary) of the reception header area of the RAM 80 to the other boundary (lower boundary). Then, when the other boundary is reached as shown in FIG. 19B, the header is returned to one boundary and stored (overwritten) as shown in FIG. 19C. By doing so, the header is stored in the reception header area in the order of reception, so that the firmware and the application software can know in what order the packet was received. . That is, the advantageous functions of the FIFO can be obtained while using the RAM 80 that can be accessed randomly. In addition, when the packet reaches the other boundary, the packet header is stored from one boundary, so that limited resources (the RAM 80 with a small storage capacity) can be effectively used.

【0126】なお、送信用のヘッダ領域や、データ領域
についても、このようなリングバッファ構造にしてもよ
い。
It should be noted that the transmission header area and the data area may have such a ring buffer structure.

【0127】なお、本実施形態では、1つのパケットの
ヘッダ(広義には制御情報)やデータが格納される領域
(以下、格納領域と呼ぶ)のサイズが、パケットのヘッ
ダやデータのサイズに依存せずに固定となるようにする
ことが望ましい。例えば図20(A)では、各ヘッダの
サイズは互いに異なっているが、格納領域のサイズは固
定になっている。この場合に、パケットのヘッダのサイ
ズに依らずに、格納領域のサイズを例えば8クワドレッ
ト単位にする。このようにすれば、ファームウェアのア
ドレス制御などを簡易化することができ、処理のオーバ
ーヘッドを軽減できる。特に、図19(A)、(B)、
(C)のようなリングバッファ構造の場合には、格納領
域のサイズを固定にしないと、図20(B)に示すよう
に、ヘッダNが下側と上側に分離されて格納されてしま
う。これは、ファームウェアの処理負担の増大化という
事態を招く。格納領域のサイズを固定にすれば、このよ
うな事態を解消できる。
In the present embodiment, the size of a header (control information in a broad sense) and an area for storing data (hereinafter referred to as a storage area) of one packet depends on the size of the header and data of the packet. It is desirable to be fixed without performing. For example, in FIG. 20A, the sizes of the headers are different from each other, but the size of the storage area is fixed. In this case, the size of the storage area is set, for example, in units of 8 quadlets irrespective of the size of the header of the packet. In this way, firmware address control and the like can be simplified, and processing overhead can be reduced. In particular, FIGS. 19 (A), (B),
In the case of the ring buffer structure as in (C), unless the size of the storage area is fixed, the header N is separated and stored in the lower side and the upper side as shown in FIG. This leads to an increase in the processing load of the firmware. If the size of the storage area is fixed, such a situation can be solved.

【0128】3.2 受信側の構成 次に受信側の構成について説明する。図21に、リンク
コア20、FIFO34、DMAC44の詳細な構成の
一例を示す。
3.2 Configuration of Reception Side Next, the configuration of the reception side will be described. FIG. 21 shows an example of a detailed configuration of the link core 20, the FIFO 34, and the DMAC 44.

【0129】リンクコア20は、バス監視回路130、
直列・並列変換回路132、パケット整形回路160を
含む。そして、パケット整形回路160は、パケット診
断回路142、シーケンサ167、バッファ168、セ
レクタ170を含み、パケット診断回路142は、TA
G生成回路162、ヘッダ&トレイラー生成回路16
4、エラーチェック回路166を含む。
The link core 20 includes a bus monitoring circuit 130,
It includes a serial / parallel conversion circuit 132 and a packet shaping circuit 160. The packet shaping circuit 160 includes a packet diagnostic circuit 142, a sequencer 167, a buffer 168, and a selector 170.
G generation circuit 162, header & trailer generation circuit 16
4. Includes an error check circuit 166.

【0130】ここで、バス監視回路130は、PHYイ
ンターフェース10を介してPHYチップに接続される
8ビット幅のデータバスD、2ビット幅のコントロール
バスCTLを監視する回路である。
Here, the bus monitoring circuit 130 is a circuit that monitors the 8-bit data bus D and the 2-bit control bus CTL connected to the PHY chip via the PHY interface 10.

【0131】直列・並列変換回路132は、データバス
Dのデータを32ビットのデータに変換する回路であ
る。例えば、転送速度が400Mbpsの場合には8ビ
ットのデータが32ビットのデータに、200Mbps
の場合には4ビットのデータが32ビットのデータに、
100Mbpsの場合には2ビットのデータが32ビッ
トのデータに変換される。
The serial / parallel conversion circuit 132 is a circuit for converting data on the data bus D into 32-bit data. For example, when the transfer speed is 400 Mbps, 8-bit data is converted to 32-bit data by 200 Mbps.
In the case of, the 4-bit data becomes 32-bit data,
In the case of 100 Mbps, 2-bit data is converted to 32-bit data.

【0132】パケット診断回路142は、パケットの診
断を行う回路である。TAG生成回路162は、ヘッ
ダ、データ、トレイラーなどを区別するためのTAGを
生成する回路であり、ヘッダ&トレイラー生成回路16
4は、ヘッダ及びトレイラー(フッター)を生成する回
路である。また、エラーチェック回路166は、パケッ
トに含まれるパリティなどのエラーチェック情報をチェ
ックしてエラーを検出する回路である。
The packet diagnostic circuit 142 is a circuit for diagnosing a packet. The TAG generation circuit 162 generates a TAG for distinguishing a header, data, a trailer, and the like.
Reference numeral 4 denotes a circuit for generating a header and a trailer (footer). The error check circuit 166 is a circuit that checks error check information such as parity included in a packet and detects an error.

【0133】シーケンサ167は各種の制御信号を生成
するものである。バッファ168、セレクタ170は、
直列・並列変換回路132からのDI、パケット診断回
路142からのヘッダ及びトレイラー、DMAC44か
らのデータポインタのいずれかを、パケット診断回路1
42からの信号SELにより選択するためのものであ
る。
The sequencer 167 generates various control signals. The buffer 168 and the selector 170
Any one of the DI from the serial / parallel conversion circuit 132, the header and trailer from the packet diagnostic circuit 142, and the data pointer from the DMAC 44 is stored in the packet diagnostic circuit 1
This is for selection by the signal SEL from the terminal.

【0134】FIFO34は、リンコア20からの出力
データであるRDの位相と、RAM80への書き込みデ
ータであるWDATAの位相とを調整するためのバッフ
ァとして機能するものであり、FIFO状態判断回路3
5を含む。FIFO状態判断回路35は、FIFOが空
になると、EMPTYをアクティブにし、FIFOがフ
ルになると、FULLをアクティブにする。
The FIFO 34 functions as a buffer for adjusting the phase of RD which is output data from the link core 20 and the phase of WDATA which is data to be written to the RAM 80.
5 is included. The FIFO state determination circuit 35 activates EMPTY when the FIFO becomes empty, and activates FULL when the FIFO becomes full.

【0135】DMAC44は、パケット分離回路18
0、アクセス要求実行回路190、アクセス要求発生回
路192を含む。
The DMAC 44 comprises a packet separation circuit 18
0, an access request execution circuit 190 and an access request generation circuit 192.

【0136】パケット分離回路180は、パケット整形
回路160により整形されたパケットを分離して、ヘッ
ダ及びトレイラーをRAM80のヘッダ領域に、データ
をデータ領域に書き込むための回路である(図13参
照)。パケット分離回路180は、TAG判別回路18
2、ポインタ更新回路184、アドレス発生回路188
を含む。
The packet separating circuit 180 is a circuit for separating the packet shaped by the packet shaping circuit 160, writing a header and a trailer in a header area of the RAM 80, and writing data in a data area (see FIG. 13). The packet separation circuit 180 includes the TAG determination circuit 18
2. Pointer updating circuit 184, address generating circuit 188
including.

【0137】TAG判別回路182は、TAG生成回路
162により生成されたTAG(DTAG)を判別する
回路である。
The TAG determination circuit 182 is a circuit for determining the TAG (DTAG) generated by the TAG generation circuit 162.

【0138】ポインタ更新回路184は、TAG判別回
路182の出力を受け、RAM80にヘッダやデータを
書き込むためのヘッダポインタやデータポインタを更新
するための回路である。
The pointer update circuit 184 is a circuit for receiving the output of the TAG discrimination circuit 182 and updating a header pointer and a data pointer for writing a header and data in the RAM 80.

【0139】アドレス発生回路188は、ポインタ更新
回路184の出力を受け、RAM80への書き込みアド
レスWADRを発生する回路である。
The address generation circuit 188 receives the output of the pointer update circuit 184 and generates a write address WADR to the RAM 80.

【0140】アクセス要求実行回路190は、リンクコ
ア20からのアクセス要求を実行するための回路であ
る。アクセス要求実行回路190は、FIFO状態判断
回路35からのFULLがアクティブになると、FFU
LLをアクティブにする。パケット整形回路160内の
シーケンサ167は、FFULLがアクティブでないこ
とを条件に、RD(RxData)のストローブ信号で
あるRDSをアクティブにする。
The access request execution circuit 190 is a circuit for executing an access request from the link core 20. When the FULL from the FIFO state determination circuit 35 becomes active, the access request execution circuit 190
Activate LL. The sequencer 167 in the packet shaping circuit 160 activates RDS, which is a strobe signal of RD (RxData), on the condition that FFULL is not active.

【0141】なおRFAILは、受信における失敗を、
シーケンサ167がアクセス要求実行回路190に対し
て知らせるための信号である。
Note that RFAIL indicates a failure in reception,
This is a signal for the sequencer 167 to notify the access request execution circuit 190.

【0142】アクセス要求発生回路192は、RAM8
0へのアクセス要求を発生するための回路である。アク
セス要求発生回路192は、バッファマネージャ70か
らの書き込みアクノリッジメントであるWACKやFI
FO状態判断回路35からのEMPTYを受け、書き込
み要求であるWREQをバッファマネージャ70に出力
する。
The access request generation circuit 192 is provided in the RAM 8
This is a circuit for generating an access request to 0. The access request generation circuit 192 receives a write acknowledgment WACK or FI from the buffer manager 70.
In response to the EMPTY from the FO state determination circuit 35, it outputs a write request WREQ to the buffer manager 70.

【0143】3.3 受信側の動作 次に、受信側の動作の詳細について図22のタイミング
波形図などを用いて説明する。
3.3 Operation on the Receiving Side Next, details of the operation on the receiving side will be described with reference to the timing waveform diagram of FIG.

【0144】まず、リンクコア20の動作について説明
する。
First, the operation of the link core 20 will be described.

【0145】PHYチップを介して他のノードからのパ
ケットを受信すると、パケット診断回路142がそのパ
ケットを診断する。そして、ヘッダ&トレイラー生成回
路164がヘッダを生成(整形)する。このヘッダは、
バッファ168を介してセレクタ170に入力され、パ
ケット診断回路142からの信号SELに基づきセレク
タ170がこのヘッダを選択する。これにより、図22
のA1に示すように、RDとしてヘッダ(H0〜H4)
がFIFO34に出力されることになる。
Upon receiving a packet from another node via the PHY chip, the packet diagnostic circuit 142 diagnoses the packet. Then, the header & trailer generation circuit 164 generates (shapes) the header. This header is
The header is input to the selector 170 via the buffer 168, and the selector 170 selects this header based on the signal SEL from the packet diagnostic circuit 142. As a result, FIG.
As shown in A1, the header (H0 to H4) is used as the RD.
Is output to the FIFO 34.

【0146】なお、図23(A)に、シリアルバス上で
転送される非同期パケットのフォーマット(IEEE1
394規格)を示す。一方、図23(B)に、RAM8
0のヘッダ領域に格納される非同期受信パケットのヘッ
ダ部分のフォーマットを示す(同図において網掛けとな
っている部分がトレイラーである)。このように本実施
形態では、図23(A)に示すフォーマットのパケット
を、ファームウェアなどの上層が使用できるように、図
23(B)に示すフォーマットのパケットに整形してい
る。
FIG. 23A shows the format (IEEE1) of an asynchronous packet transferred on the serial bus.
394 standard). On the other hand, FIG.
The format of the header portion of the asynchronous reception packet stored in the header area of 0 is shown (the shaded portion in the figure is a trailer). As described above, in the present embodiment, a packet having the format shown in FIG. 23A is shaped into a packet having the format shown in FIG. 23B so that an upper layer such as firmware can use the packet.

【0147】また本実施形態では、ヘッダの第4クワド
レットであるH4(図22のA2)は、図23(B)に
示すようにデータ領域からデータを取り出すためのデー
タポインタになっている。このデータポインタ(H4)
は、DMAC44(ポインタ更新回路184)からバッ
ファ168を介してセレクタ170に入力され、セレク
タ170がこれを選択する。このように、パケット整形
回路160は、DMAC44からデータポインタを受け
取り、そのデータポインタを、RAM80に書き込まれ
るヘッダに埋め込んでいる。
In this embodiment, H4 (A2 in FIG. 22), which is the fourth quadlet of the header, is a data pointer for extracting data from the data area as shown in FIG. 23B. This data pointer (H4)
Is input from the DMAC 44 (pointer update circuit 184) to the selector 170 via the buffer 168, and the selector 170 selects this. Thus, the packet shaping circuit 160 receives the data pointer from the DMAC 44 and embeds the data pointer in the header written in the RAM 80.

【0148】次に、PHYチップから、データバスDを
介してパケットのデータ部分が送られてくる。直列・並
列変換回路132は、このデータ部分を32ビットのデ
ータであるDIに変換し、パケット診断回路142及び
バッファ168に出力する。
Next, the data portion of the packet is sent from the PHY chip via the data bus D. The serial / parallel conversion circuit 132 converts this data portion into DI which is 32-bit data and outputs the DI to the packet diagnosis circuit 142 and the buffer 168.

【0149】なお、DIEは、DIが有効か無効かを示
す信号であり、DISは、DIの取り込みタイミングを
知らせるためのストローブ信号である。
Note that DIE is a signal indicating whether DI is valid or invalid, and DIS is a strobe signal for notifying the timing of taking in DI.

【0150】直列・並列変換回路132からのDIは、
バッファ168を介してセレクタ170に入力され、セ
レクタ170がこれを選択する。これにより、A3に示
すように、RDとしてデータD0〜DnがFIFO34
に出力される。
The DI from the serial / parallel conversion circuit 132 is
The data is input to the selector 170 via the buffer 168, and the selector 170 selects this. As a result, as shown in A3, the data D0 to Dn are stored in the FIFO 34 as RD.
Is output to

【0151】次に、ヘッダ&トレイラー生成回路164
からのトレイラーがバッファ168を介してセレクタ1
70に入力され、セレクタ170がこれを選択する。こ
れにより、A4に示すように、RDとしてトレイラー
(H5。図23(B)の網掛け部分)がFIFO34に
出力される。
Next, the header & trailer generation circuit 164
From the selector 1 via the buffer 168
70, and the selector 170 selects this. As a result, as shown in A4, the trailer (H5; the hatched portion in FIG. 23B) is output to the FIFO 34 as the RD.

【0152】さて、TAG生成回路162は、RDとし
て出力される情報を区別するためのTAGを生成してい
る。本実施形態では図16に示すようにTAGは2ビッ
トであり、(00)、(01)、(10)、(11)
は、各々、ヘッダ、トレイラー、データ、スタート(ヘ
ッダの最初)を表す。従って、例えば図22では、(1
1)、(00)、・・・、(10)、・・・、(01)という
ようにTAGが変化する。FIFO34には、この2ビ
ットのTAGと32ビットのRDとからなる34ビット
のデータが入力されることになる。
The TAG generation circuit 162 generates a TAG for distinguishing information output as RD. In the present embodiment, as shown in FIG. 16, the TAG is 2 bits, and (00), (01), (10), (11)
Represents a header, a trailer, data, and a start (head of the header), respectively. Therefore, for example, in FIG.
The TAG changes as 1), (00), ..., (10), ..., (01). The FIFO 34 receives 34-bit data consisting of the 2-bit TAG and the 32-bit RD.

【0153】次に、FIFO34の動作について説明す
る。
Next, the operation of the FIFO 34 will be described.

【0154】FIFO34は、リンクコア20からのT
AG、RDを受け、A5、A6に示すように、DTA
G、WDATAとして出力する。
The FIFO 34 receives the T from the link core 20.
After receiving AG and RD, as shown in A5 and A6, DTA
G, output as WDATA.

【0155】FIFO34内のFIFO状態判断回路3
5は、内蔵するカウンターにより、FIFO34のデー
タ数(FIFOカウント)をカウントする。そして、F
IFO34がフル(データ数=2)になった場合には、
図22のA7に示すようにFULLをアクティブ(Hレ
ベル)にする。また、FIFO34が空(データ数=
0)になった場合には、A8に示すようにEMPTYを
アクティブにする。FIFO34がフルになったこと
は、FULL、FFULLにより、DMAC44内のア
クセス要求実行回路190やリンクコア20内のシーケ
ンサ167に伝えられる。また、FIFO34が空にな
ったことは、EMPTYにより、DMAC44内のアク
セス要求発生回路192に伝えられる。
FIFO state determination circuit 3 in FIFO 34
5 counts the number of data in the FIFO 34 (FIFO count) by a built-in counter. And F
When the IFO 34 becomes full (the number of data = 2),
FULL is made active (H level) as indicated by A7 in FIG. Also, the FIFO 34 is empty (the number of data =
When it becomes 0), EMPTY is activated as indicated by A8. The fact that the FIFO 34 is full is transmitted to the access request execution circuit 190 in the DMAC 44 and the sequencer 167 in the link core 20 by FULL and FFULLL. The fact that the FIFO 34 has become empty is transmitted to the access request generation circuit 192 in the DMAC 44 by EMPTY.

【0156】次に、DMAC44の動作について説明す
る。
Next, the operation of the DMAC 44 will be described.

【0157】アクセス要求発生回路192は、A9に示
すようにEMPTYが非アクティブ(Lレベル)になっ
たこと(FIFO34が空でないこと)を条件に、A1
0に示すようにWREQをアクティブにする。そして、
バッファマネージャ70からWACKを受け取ると、W
REQを非アクティブにする。
The access request generation circuit 192 sets A1 on the condition that EMPTY becomes inactive (L level) (the FIFO 34 is not empty) as shown in A9.
Activate WREQ as shown at 0. And
When a WACK is received from the buffer manager 70, W
Deactivate REQ.

【0158】さて、本実施形態では、受信時のバス調停
においては、DMAC44からのアクセス要求の優先順
位を最も高くしている。従って、A10、A11に示す
ように、DMAC44からのWREQと、CPUインタ
ーフェース60やポート用のDMAC54からのOth
erWREQとが競合した場合には、WREQの方が優
先する。即ち、A12、A13に示すように、WACK
の方がOtherWACKよりも先にアクティブにな
る。このように、WREQとOtherWREQが競合
した場合に、WREQの方を優先させるのは、以下の理
由による。即ち、IEEE1394では、SCSIなど
とは異なり、他のノードからのパケットが転送クロック
に同期して次々に転送されてくる。従って、これらの間
断なく転送されてくるパケットを優先してRAM80に
次々に格納する必要があるからである。
In the present embodiment, in the bus arbitration at the time of reception, the priority of the access request from the DMAC 44 is the highest. Accordingly, as shown in A10 and A11, the WREQ from the DMAC 44 and the Oth from the CPU interface 60 and the DMAC 54 for the port are used.
If erWREQ conflicts, WREQ takes precedence. That is, as shown in A12 and A13, WACK
Becomes active before OtherWACK. As described above, when WREQ and OtherWREQ conflict, the WREQ is prioritized for the following reason. That is, in IEEE 1394, unlike SCSI and the like, packets from other nodes are sequentially transferred in synchronization with a transfer clock. Therefore, it is necessary to store the packets transferred without interruption in the RAM 80 one after another with priority.

【0159】また、本実施形態では、CPUインターフ
ェース60やポート用のDMAC54からのアクセス要
求をバッファマネージャ70が受け付けている間は、A
14に示すように、DMAC44のアクセス要求は所与
の期間だけ待たされる。従って、リンクコア20からの
RDと、バッファマネージャ70へのWDATAとは同
期しない。この理由により、本実施形態では、RDとW
DATAの位相を調整するためのFIFO34を設けて
いる。この場合、FIFO34は、位相調整のために必
要な最低限の段数(好ましくは3段以下、更に好ましく
は2段以下)を備えていればよい。
In this embodiment, while the buffer manager 70 is receiving an access request from the CPU interface 60 or the DMAC 54 for a port, A
As shown at 14, the access request of the DMAC 44 is waited for a given period. Therefore, the RD from the link core 20 and the WDATA to the buffer manager 70 are not synchronized. For this reason, in the present embodiment, RD and W
A FIFO 34 for adjusting the phase of DATA is provided. In this case, the FIFO 34 may have the minimum number of stages (preferably three or less, more preferably two or less) necessary for phase adjustment.

【0160】パケット分離回路180に含まれるTAG
判別回路182は、WDATAと共にFIFO34から
出力されるDTAGを判別し、WDATAが、スタート
(ヘッダの最初)、ヘッダ、データ、トレイラーのいず
れなのかを判定する。そして、ポインタ更新回路184
は、この判定結果に基づいて、ヘッダポインタやデータ
ポインタの更新を行う。次に、アドレス発生回路188
は、更新されたヘッダポインタやデータポインタに基づ
いて、WDATAの書き込みアドレスであるWADRを
発生する。
TAG included in packet separation circuit 180
The determination circuit 182 determines the DTAG output from the FIFO 34 together with WDATA, and determines whether WDATA is a start (head of header), header, data, or a trailer. Then, the pointer update circuit 184
Updates the header pointer and the data pointer based on this determination result. Next, the address generation circuit 188
Generates WADR, which is the write address of WDATA, based on the updated header pointer and data pointer.

【0161】より具体的には、例えば、WDATAがス
タート又はヘッダであるとDTAGに基づき判定された
場合は、ポインタ更新回路184が、図24(A)に示
すように、ヘッダポインタHPのインクリメント(広義
には更新)を行う。そして、アドレス発生回路188
は、図22のA15に示すように、インクリメントされ
るヘッダポインタに応じたWADRを発生する。
More specifically, for example, when it is determined based on the DTAG that WDATA is the start or the header, the pointer update circuit 184 increments the header pointer HP as shown in FIG. Update in a broad sense). Then, the address generation circuit 188
Generates a WADR corresponding to the header pointer to be incremented, as indicated by A15 in FIG.

【0162】次に、WDATAがデータであるとDTA
Gに基づき判定された場合は、ポインタ更新回路184
が、図24(B)に示すように、データポインタDPの
インクリメントを行う。このデータポインタDPは、パ
ケット整形回路160によりヘッダの第4クワドレット
に埋め込まれたH4に相当する。アドレス発生回路18
8は、図22のA16に示すように、インクリメントさ
れるデータポインタに応じたWADRを発生する。
Next, if WDATA is data, DTA
If it is determined based on G, the pointer update circuit 184
However, as shown in FIG. 24B, the data pointer DP is incremented. This data pointer DP corresponds to H4 embedded in the fourth quadlet of the header by the packet shaping circuit 160. Address generation circuit 18
8 generates a WADR corresponding to the data pointer to be incremented, as indicated by A16 in FIG.

【0163】次に、WDATAがトレイラーであるとD
TAGに基づき判定された場合は、ポインタ更新回路1
84が、図24(C)に示すように、ヘッダポインタの
インクリメントを行う。そして、アドレス発生回路18
8は、図22のA17に示すように、インクリメントさ
れるヘッダポインタに応じたWADRを発生する。
Next, if WDATA is a trailer, D
If it is determined based on the TAG, the pointer update circuit 1
84 increments the header pointer as shown in FIG. Then, the address generation circuit 18
8 generates a WADR corresponding to the incremented header pointer, as indicated by A17 in FIG.

【0164】なお、最終的には図24(D)に示すよう
に、ヘッダポインタは、処理対象となったパケットのヘ
ッダ部分の下側の境界(次のパケットのヘッダ部分の上
側の境界)を指すようになる。また、データポインタ
は、パケットのデータ部分の下側の境界(次のパケット
のデータ部分の上側の境界)を指すようになる。ヘッダ
ポインタやデータポインタの最終位置は、受信に失敗が
なかった(RFAILが非アクティブ)ことを条件に、
図6のレジスタ46内のヘッダポインタ設定レジスタや
データポインタ設定レジスタにリストアされる。
Finally, as shown in FIG. 24D, the header pointer points to the lower boundary of the header portion of the packet to be processed (the upper boundary of the header portion of the next packet). To point. The data pointer also points to the lower boundary of the data portion of the packet (the upper boundary of the data portion of the next packet). The final positions of the header pointer and the data pointer are determined based on the condition that reception has not failed (RFAIL is inactive).
The data is restored to the header pointer setting register and the data pointer setting register in the register 46 of FIG.

【0165】以上のようにして、パケットを分離してヘ
ッダ領域とデータ領域に書き込むことが可能になる。
As described above, packets can be separated and written into the header area and the data area.

【0166】特に本実施形態では、ヘッダに付加される
データポインタが、ポインタ更新回路184からパケッ
ト整形回路160に伝えられる。そしてパケット整形回
路160が、この伝えられたデータポインタをパケット
のヘッダに付加する。このようにすることで、ヘッダ領
域からヘッダを読み出したファームウェアなどが、その
ヘッダに対応するデータのデータ領域での格納アドレス
を容易に知ることができるようになる。また、データポ
インタの付加は、パケット整形回路160により行わ
れ、DMAC44はこれに関与する必要がない。従っ
て、DMAC44がRAM80へのデータ書き込み処理
に専念できるようになり、DMAC44の回路構成や処
理を簡素化できるようになる。
In particular, in this embodiment, the data pointer added to the header is transmitted from the pointer update circuit 184 to the packet shaping circuit 160. Then, the packet shaping circuit 160 adds the transmitted data pointer to the header of the packet. By doing so, the firmware or the like reading the header from the header area can easily know the storage address of the data corresponding to the header in the data area. The addition of the data pointer is performed by the packet shaping circuit 160, and the DMAC 44 does not need to be involved in this. Therefore, the DMAC 44 can concentrate on the process of writing data to the RAM 80, and the circuit configuration and the process of the DMAC 44 can be simplified.

【0167】なお、ヘッダ領域とデータ領域の境界など
の、RAM80を分離する領域の境界(図18のP1〜
P6)の設定は、CPUインターフェース60を介して
CPU66(ファームウェア等)が、図6のレジスタ4
6に含まれるポインタ設定レジスタに対して、境界のア
ドレスを指すポインタを設定することで実現される。
The boundaries between the areas separating the RAM 80, such as the boundaries between the header area and the data area (P1 to P1 in FIG. 18).
P6) is set by the CPU 66 (firmware or the like) via the CPU interface 60 by the register 4 in FIG.
6 is set by setting a pointer indicating a boundary address in the pointer setting register included in the pointer setting register 6.

【0168】また、図17(D)、(E)、(F)に示
すように、データ領域が複数の領域に分離される場合に
は、例えばtcodeなどのパケットの制御情報に基づ
き、分離された複数の領域のいずれかにパケットのデー
タを書き込むようにすることが望ましい。
As shown in FIGS. 17D, 17E and 17F, when the data area is divided into a plurality of areas, the data area is separated based on the control information of the packet such as tcode. It is desirable to write the packet data in any of the plurality of areas.

【0169】より具体的には、図21に示すように、D
MAC44が、複数のデータポインタ、例えば第1、第
2のデータポインタをパケット整形回路160に対して
渡すようにする(3個以上のデータポインタを渡しても
よい)。そして、パケット整形回路160は、例えば、
アイソクロナス転送時(或いは図17(F)の第2の非
同期転送時)にはDMAC44からの第1のデータポイ
ンタを選択し、非同転送時(或いは図17(F)の第1
の非同期転送時)にはDMAC44からの第2のデータ
ポインタを選択するようにする。即ち、パケット整形回
路160内のパケット診断回路142が、tcodeな
どのパケットの制御情報に基づいて、アイソクロナス転
送か非同期転送か(或いは第2の非同期転送か第1の非
同期転送か)を判別し、この判別結果に基づき信号SE
Lを制御する。そして、バッファ168を介してセレク
タ170に入力される第1、第2のデータポインタのい
ずれかを選択するようにする。これにより、アイソクロ
ナス転送(或いは第2の非同期転送)のパケットには第
1のデータポインタが埋め込まれ、非同期転送(或いは
第1の非同期転送)のパケットには第2のデータポイン
タが埋め込まれるようになる。この結果、データ領域を
分離する特定の領域に、連続的にデータを格納すること
が可能になる。即ちデジタルカメラにおける動画像デー
タをアイソクロナス転送用データ領域に連続的に格納し
たり、プリンタにおける印字データを第2の非同期転送
用データ領域に連続的に格納したりすることが可能にな
る。
More specifically, as shown in FIG.
The MAC 44 passes a plurality of data pointers, for example, the first and second data pointers, to the packet shaping circuit 160 (three or more data pointers may be passed). Then, the packet shaping circuit 160, for example,
At the time of isochronous transfer (or at the time of the second asynchronous transfer in FIG. 17F), the first data pointer from the DMAC 44 is selected, and at the time of non-same transfer (or the first data pointer of FIG. 17F).
(During asynchronous transfer), the second data pointer from the DMAC 44 is selected. That is, the packet diagnostic circuit 142 in the packet shaping circuit 160 determines whether the transfer is the isochronous transfer or the asynchronous transfer (or the second asynchronous transfer or the first asynchronous transfer) based on the control information of the packet such as tcode. Based on the result of this determination, the signal SE
Control L. Then, one of the first and second data pointers input to the selector 170 via the buffer 168 is selected. Thereby, the first data pointer is embedded in the packet of the isochronous transfer (or the second asynchronous transfer), and the second data pointer is embedded in the packet of the asynchronous transfer (or the first asynchronous transfer). Become. As a result, data can be continuously stored in a specific area separating the data area. That is, moving image data in the digital camera can be continuously stored in the isochronous transfer data area, and print data in the printer can be continuously stored in the second asynchronous transfer data area.

【0170】なお、図17(E)のように、データ領域
をアイソクロナス転送用データ領域と非同期転送用デー
タ領域に分離すると共に、非同期転送用データ領域を第
1、第2の非同期転送用データ領域に分離する場合に
は、3つのデータポインタを用意することが望ましい。
即ち、アイソクロナス転送用データ領域を指す第1のデ
ータポインタと、第1、第2の非同期転送用データ領域
を指す第2、第3のデータポインタを用意するようにす
る。このようにすることで、図17(E)に示すような
データ領域の分離を、容易に実現できるようになる。
As shown in FIG. 17E, the data area is divided into an isochronous transfer data area and an asynchronous transfer data area, and the asynchronous transfer data area is divided into the first and second asynchronous transfer data areas. In the case where the data pointers are separated into three, it is desirable to prepare three data pointers.
That is, a first data pointer that points to the isochronous transfer data area and second and third data pointers that point to the first and second asynchronous transfer data areas are prepared. By doing so, the separation of the data area as shown in FIG. 17E can be easily realized.

【0171】3.4 送信側の構成 次に送信側の構成について説明する。図25に、FIF
O30、DMAC40の詳細な構成の一例を示す。
3.4 Configuration of Transmission Side Next, the configuration of the transmission side will be described. FIG.
2 shows an example of a detailed configuration of O30 and DMAC40.

【0172】位相調整用のバッファとして機能するFI
FO30は、FIFO状態判断回路31を含む。FIF
O状態判断回路31は、FIFOが空になると、EMP
TYをアクティブにし、FIFOがフルになると、FU
LLをアクティブにする。
FI functioning as buffer for phase adjustment
The FO 30 includes a FIFO state determination circuit 31. FIF
When the FIFO becomes empty, the O state determination circuit 31
TY is activated, and when the FIFO is full, the FU
Activate LL.

【0173】DMAC40は、パケット結合回路28
0、アクセス要求実行回路290、アクセス要求発生回
路292、ACK書き込み要求発生回路294、ACK
書き込みデータ&アドレス発生回路296を含む。
The DMAC 40 includes a packet combining circuit 28
0, access request execution circuit 290, access request generation circuit 292, ACK write request generation circuit 294, ACK
A write data & address generation circuit 296 is included.

【0174】パケット結合回路280は、ヘッダをRA
M80のヘッダ領域から読み出し、データをデータ領域
から読み出し、これらのヘッダとデータによりフレーム
が構成される送信パケットを組み立てる回路である(図
14参照)。パケット結合回路280は、ポインタ更新
回路284、アドレス発生回路288を含む。
The packet combining circuit 280 converts the header into RA
This is a circuit that reads data from the M80 header area, reads data from the data area, and assembles a transmission packet that forms a frame with these headers and data (see FIG. 14). The packet combining circuit 280 includes a pointer updating circuit 284 and an address generating circuit 288.

【0175】ポインタ更新回路284は、RAM80か
らヘッダやデータを読み出すためのヘッダポインタやデ
ータポインタを更新するための回路であり、データポイ
ンタ取得回路285を含む。データポインタ取得回路2
85は、RAM80から読み出されたRDATAからデ
ータポインタを取得する回路であり、tcode判別回
路286を含む。
The pointer update circuit 284 is a circuit for updating a header pointer and a data pointer for reading a header and data from the RAM 80, and includes a data pointer acquisition circuit 285. Data pointer acquisition circuit 2
Reference numeral 85 denotes a circuit for obtaining a data pointer from RDATA read from the RAM 80, and includes a tcode determination circuit 286.

【0176】アドレス発生回路288は、ポインタ更新
回路284の出力などを受け、RAM80の読み出しア
ドレスRADRを発生する回路である。
The address generation circuit 288 is a circuit which receives an output of the pointer update circuit 284 and the like and generates a read address RADR of the RAM 80.

【0177】アクセス要求実行回路290は、FIFO
状態判断回路31からのEMPTYがアクティブになる
と、FIFOINをアクティブにする。リンクコア20
は、FIFOINがアクティブでないことを条件に、T
D(TxData)のストローブ信号であるTDSをア
クティブにする。
The access request execution circuit 290 has a FIFO
When EMPTY from the state determination circuit 31 becomes active, FIFOIN becomes active. Link core 20
Is T, provided that FIFOIN is not active
TDS, which is a strobe signal of D (TxData), is activated.

【0178】なおTFAILは、送信における失敗を、
リンクコア20がアクセス要求実行回路290に対して
知らせるための信号である。
Note that TFAIL reports a failure in transmission,
This signal is for the link core 20 to notify the access request execution circuit 290.

【0179】アクセス要求発生回路292は、バッファ
マネージャ70からの読み出しアクノリッジメントであ
るRACKやFIFO状態判断回路31からのFULL
を受け、読み出し要求であるRREQをバッファマネー
ジャ70に出力する。
The access request generation circuit 292 receives the ACK from the buffer manager 70 and the FULL from the FIFO state determination circuit 31.
Then, RREQ, which is a read request, is output to the buffer manager 70.

【0180】ACK書き込み要求発生回路294は、リ
ンクコア20からのTCMPやバッファマネージャ70
からのWACKを受け、WREQをバッファマネージャ
70に出力する。また、ACK書き込みデータ&アドレ
ス発生回路296は、リンクコア20からのTACKを
受け、送信パケットに書き戻すACKのコードをWDA
TAとして出力し、ACKを書き戻すアドレスをWAD
Rとして出力する。
The ACK write request generation circuit 294 is provided for receiving the TCP message from the link core 20 or the buffer manager 70.
, And outputs a WREQ to the buffer manager 70. Further, the ACK write data & address generation circuit 296 receives the TACK from the link core 20 and writes the ACK code to be written back into the transmission packet to the WDA.
Output as TA and write the address to which ACK is written back to WAD
Output as R.

【0181】3.5 送信側の動作 次に、送信側の動作の詳細について図26のタイミング
波形図などを用いて説明する。
3.5 Operation on Transmission Side Next, the operation on the transmission side will be described in detail with reference to the timing waveform diagram of FIG.

【0182】まず、リンクコア20の動作について説明
する。
First, the operation of the link core 20 will be described.

【0183】送信開始を知らせるTSTARTがアクテ
ィブになると、図26のB1に示すように、リンクコア
20は、ストローブ信号であるTDSを用いてFIFO
30からTDを取り込む。この場合、リンクコア20に
は、ヘッダ(H0〜H3)、データ(D0〜Dn)の順
でTDSが取り込まれる。
When TSTART for notifying the start of transmission is activated, as shown in B1 of FIG. 26, the link core 20 uses the TDS, which is a strobe signal, to execute a FIFO.
Take in the TD from 30. In this case, the link core 20 receives the TDS in the order of the header (H0 to H3) and the data (D0 to Dn).

【0184】なお、図27に、RAM80のヘッダ領域
に格納される非同期送信パケットのヘッダ部分のフォー
マットを示す。同図に示すようにヘッダの第4クワドレ
ットはデータポインタになっている。
FIG. 27 shows the format of the header portion of the asynchronous transmission packet stored in the header area of the RAM 80. As shown in the figure, the fourth quadlet of the header is a data pointer.

【0185】さて、図26のB2に示す位置では、リン
コア20は、TDSをアクティブにしない。従って、B
3に示すように、ヘッダの第4クワドレットであるH4
はリンクコア20に取り込まれない。図27に示すよう
に第4クワドレットのH4はデータポインタであり、リ
ンクコア20は、このデータポインタを必要としないか
らである。そして、リンクコア20は、B3に示す期間
において、ヘッダCRC(図23(A)参照)を生成し
ヘッダに付加する処理を行っている。
By the way, at the position indicated by B2 in FIG. 26, the phosphorus core 20 does not activate the TDS. Therefore, B
As shown in FIG. 3, the fourth quadlet of the header, H4
Are not taken into the link core 20. This is because H4 of the fourth quadlet is a data pointer as shown in FIG. 27, and the link core 20 does not need this data pointer. Then, during the period indicated by B3, the link core 20 performs a process of generating a header CRC (see FIG. 23A) and adding the header CRC to the header.

【0186】1つのパケットの送信処理が終了すると、
リンクコア20は、B4に示すようにTCMPをアクテ
ィブにする。そして、送信のデスティネーションノード
からPHYチップを介して返されてきたACKのコード
を(図1(A)参照)、B5に示すようにTACKとし
てDMAC40に出力する。このACKのコードは、A
CK書き込み要求発生回路294、ACK書き込みデー
タ&アドレス発生回路296により、RAM80のヘッ
ダ領域に格納されているヘッダに書き戻されることにな
る(図27の第7クワドレット)。
When the transmission processing of one packet is completed,
The link core 20 activates TCMP as indicated by B4. Then, the ACK code returned from the transmission destination node via the PHY chip (see FIG. 1A) is output to the DMAC 40 as TACK as indicated by B5. The code of this ACK is A
The CK write request generation circuit 294 and the ACK write data & address generation circuit 296 write back to the header stored in the header area of the RAM 80 (the seventh quadlet in FIG. 27).

【0187】次に、FIFO30の動作について説明す
る。
Next, the operation of the FIFO 30 will be described.

【0188】FIFO30は、バッファマネージャ70
からのRDATAを受け、TDとしてリンクコア20に
出力する。
The FIFO 30 includes a buffer manager 70
And outputs it to the link core 20 as TD.

【0189】FIFO30内のFIFO状態判断回路3
1は、内蔵するカウンターにより、FIFO30のデー
タ数(FIFOカウント)をカウントする。そして、F
IFO30が空(データ数=0)になった場合には、図
26のB6に示すようにEMPTYをアクティブにす
る。また、FIFO30がフル(データ数=2)になっ
た場合には、B7に示すようにFULLをアクティブ
(Hレベル)にする。FIFO30が空になったこと
は、EMPTY、FIFOINにより、DMAC40内
のアクセス要求実行回路290やリンクコア20に伝え
られる。また、FIFO30がフルになったことは、F
ULLにより、DMAC40内のアクセス要求発生回路
292に伝えられる。
FIFO state determination circuit 3 in FIFO 30
1 counts the number of data in the FIFO 30 (FIFO count) by a built-in counter. And F
When the IFO 30 becomes empty (the number of data = 0), the EMPTY is activated as indicated by B6 in FIG. When the FIFO 30 becomes full (the number of data = 2), FULL is activated (H level) as indicated by B7. The fact that the FIFO 30 is empty is communicated to the access request execution circuit 290 and the link core 20 in the DMAC 40 by EMPTY and FIFOIN. The fact that the FIFO 30 is full indicates that the F
The information is transmitted to the access request generation circuit 292 in the DMAC 40 by the ULL.

【0190】次に、DMAC40の動作について説明す
る。
Next, the operation of the DMAC 40 will be described.

【0191】アクセス要求発生回路292は、B8に示
すように、FULLが非アクティブ(Lレベル)である
こと(FIFO34がフルでないこと)を条件にRRE
Qをアクティブにする。そして、バッファマネージャ7
0からRACKを受け取ると、RREQを非アクティブ
にする。
The access request generation circuit 292 sets the RRE on condition that FULL is inactive (L level) (the FIFO 34 is not full), as indicated by B8.
Activate Q. And the buffer manager 7
Receiving RACK from 0 deactivates RREQ.

【0192】なお、本実施形態では、送信時のバス調停
においては、DMAC40(或いはDMAC42)から
のアクセス要求の優先順位を最も高くしている。従っ
て、DMAC40からのRREQと、CPUインターフ
ェース60やポート用のDMAC54からのアクセス要
求(OtherRREQ)とが競合した場合には、RR
EQの方が優先する。一方、RREQよりも先に、CP
Uインターフェース60やポート用のDMAC54から
のアクセス要求があった場合には、B9に示すように、
DMAC40のアクセス要求は所与の期間だけ待たされ
る。従って、バッファマネージャ70からのRDATA
と、リンクコア20へのTDとは同期しない。この理由
により、本実施形態では、RDATAとTDの位相を調
整するためのFIFO30を設けている。
In this embodiment, the priority of the access request from the DMAC 40 (or the DMAC 42) is the highest in the bus arbitration at the time of transmission. Therefore, when the RREQ from the DMAC 40 and the access request (OtherRREQ) from the CPU interface 60 and the DMAC 54 for the port conflict, the RR
EQ takes precedence. On the other hand, before RREQ, CP
When there is an access request from the U interface 60 or the DMAC 54 for the port, as shown in B9,
The DMAC 40 access request is kept waiting for a given period. Therefore, the RDATA from the buffer manager 70
Is not synchronized with the TD to the link core 20. For this reason, in the present embodiment, the FIFO 30 for adjusting the phases of RDATA and TD is provided.

【0193】さて、送信が開始すると、ポインタ更新回
路284が、ヘッダポインタHPのインクリメント(広
義には更新)を行う。そして、アドレス発生回路288
は、図26のB10に示すように、インクリメントされ
るヘッダポインタに応じたRADRを発生する。このよ
うにして、RDATAのヘッダ部分がRAM80から順
次読み出される。
When transmission starts, the pointer update circuit 284 increments (updates in a broad sense) the header pointer HP. Then, the address generation circuit 288
Generates RADR according to the incremented header pointer as shown in B10 of FIG. Thus, the header portion of RDATA is sequentially read from the RAM 80.

【0194】RDATAとしてH4が読み出されると、
パケット結合回路280に含まれるデータポインタ取得
回路285が、このH4を、データポインタDPとして
取得する。より具体的には、RDATAとしてH0が読
み出されると、データポインタ取得回路285内のtc
ode判別回路286が、H0に含まれるtcode
(図27参照)を判別する。そして、ヘッダの例えば第
4クワドレットにデータポインタがあるとtcodeに
基づき判断された場合には、RDATAとしてH4が読
み出された時に、データポインタ取得回路285がこの
H4を取得する。即ち、図26のB11に示すように、
RDATAのH4が、データポインタとして取得され、
RADRとして出力される。
When H4 is read as RDATA,
The data pointer acquisition circuit 285 included in the packet combination circuit 280 acquires H4 as the data pointer DP. More specifically, when H0 is read as RDATA, tc in the data pointer acquisition circuit 285
The mode determination circuit 286 detects the tcode included in H0
(See FIG. 27). Then, when it is determined based on tcode that a data pointer is present in, for example, the fourth quadlet of the header, when H4 is read as RDATA, the data pointer acquisition circuit 285 acquires this H4. That is, as shown in B11 of FIG.
H4 of RDATA is obtained as a data pointer,
Output as RADR.

【0195】なお、本実施形態では、B3、B11に示
すように、リンクコア20がヘッダCRCを生成してい
る期間を利用して、RDATAからデータポインタであ
るH4を取得している。即ち、本実施形態では、ヘッダ
CRCの生成はリンクコア20が行い、DMAC40は
これに関与しない。一方、データポインタの取得はDM
AC40が行い、リンクコア20はこれに関与しない。
本実施形態では、このことに着目し、図23(A)にお
いてヘッダCRCが配置される第4クワドレットに、図
27に示すようにデータポインタを配置している。そし
て、ヘッダCRCが生成される期間を利用して、RDA
TAからデータポインタであるH4を取得するようにし
ている。このようにすることで、処理時間に無駄が生じ
るのを防止できるようになる。
In this embodiment, as indicated by B3 and B11, the data pointer H4 is obtained from RDATA using the period during which the link core 20 generates the header CRC. That is, in the present embodiment, the header CRC is generated by the link core 20, and the DMAC 40 is not involved in this. On the other hand, acquisition of the data pointer is DM
AC 40 does, and link core 20 is not involved.
In the present embodiment, paying attention to this, a data pointer is arranged in the fourth quadlet in which the header CRC is arranged in FIG. 23A, as shown in FIG. Then, using the period in which the header CRC is generated, RDA
The data pointer H4 is obtained from the TA. This makes it possible to prevent the processing time from being wasted.

【0196】データポインタが取得されると、ポインタ
更新回路284が、取得されたデータポインタであるH
4のインクリメントを行う。そして、アドレス発生回路
288は、図26のB12に示すように、インクリメン
トされるデータポインタに応じたRADRを発生する。
このようにして、RDATAのデータ部分がRAM80
から順次読み出される。
When the data pointer is obtained, the pointer update circuit 284 causes the obtained data pointer H
4 is incremented. Then, the address generation circuit 288 generates RADR according to the incremented data pointer, as indicated by B12 in FIG.
Thus, the data portion of the RDATA is stored in the RAM 80.
Are sequentially read out.

【0197】1つのパケットの送信処理が終了し、B4
に示すようにTCMPがアクティブになると、B13に
示すようにACK書き込み要求発生回路294がWRE
Qをアクティブにする。そして、リンクコア20からA
CK書き込みデータ&アドレス発生回路296に対して
TACKを用いて送られたACKのコードが、B14に
示すように、WDATAとして出力される。また、この
際に、ACKのコードの書き込みアドレスであるHP+
7が、WADRとして出力される。ここで、WADRが
HP+7になるのは、図27に示すようにACKのコー
ドはヘッダの第7クワドレットに書き戻されるからであ
る。
When the transmission processing of one packet is completed, B4
When the TCMP is activated as shown in (B), the ACK write request generation circuit 294 makes the WRE
Activate Q. And from the link core 20 to A
The ACK code transmitted using TACK to the CK write data & address generation circuit 296 is output as WDATA as indicated by B14. Also, at this time, the HP +
7 is output as WADR. Here, the reason why the WADR becomes HP + 7 is that the ACK code is written back to the seventh quadlet of the header as shown in FIG.

【0198】以上のようにして、ヘッダ領域のヘッダと
データ領域のデータを結合して、送信パケットを組み立
てることが可能になる。
As described above, it is possible to assemble a transmission packet by combining the header in the header area and the data in the data area.

【0199】特に本実施形態では、ヘッダとデータの結
合はDMAC40が行い、リンク20はこれに関与する
必要がない。従って、リンクコア20の回路構成や処理
を簡素化できるようになる。
In the present embodiment, in particular, the header and data are combined by the DMAC 40, and the link 20 does not need to be involved. Therefore, the circuit configuration and processing of the link core 20 can be simplified.

【0200】また、本実施形態では、データポインタ取
得回路285が、RDATAからデータポインタ(H
4)を取得し、この取得されたデータポインタに基づき
RADRが発生し、データが読み出される。このように
することで、ヘッダと、そのヘッダに対応するデータと
を、確実に結合できるようになる。また、ヘッダとデー
タの結合処理に必要な回路構成を簡素化できるようにな
る。
Further, in the present embodiment, the data pointer acquisition circuit 285 outputs the data pointer (H
4) is obtained, RADR is generated based on the obtained data pointer, and data is read. By doing so, the header and the data corresponding to the header can be reliably connected. Further, the circuit configuration required for the process of combining the header and the data can be simplified.

【0201】4.電子機器 次に、本実施形態のデータ転送制御装置を含む電子機器
の例について説明する。
4. Electronic Device Next, an example of an electronic device including the data transfer control device of the present embodiment will be described.

【0202】例えば図28(A)に電子機器の1つであ
るプリンタの内部ブロック図を示し、図29(A)にそ
の外観図を示す。CPU(マイクロコンピュータ)51
0はシステム全体の制御などを行う。操作部511はプ
リンタをユーザが操作するためのものである。ROM5
16には、制御プログラム、フォントなどが格納され、
RAM518はCPU510のワーク領域として機能す
る。表示パネル519はプリンタの動作状態をユーザに
知らせるためのものである。
For example, FIG. 28A shows an internal block diagram of a printer which is one of the electronic devices, and FIG. 29A shows its external view. CPU (microcomputer) 51
0 controls the entire system. The operation unit 511 is for the user to operate the printer. ROM5
16 stores a control program, fonts, and the like.
The RAM 518 functions as a work area for the CPU 510. The display panel 519 is for notifying the user of the operation state of the printer.

【0203】PHYチップ502、データ転送制御装置
500を介して、パーソナルコンピュータなどの他のノ
ードから送られてきた印字データは、バス504を介し
て印字処理部512に直接送られる。そして、印字デー
タは、印字処理部512にて所与の処理が施され、プリ
ントヘッダなどからなる印字部(データを出力するため
の装置)514により紙に印字されて出力される。
Print data sent from another node such as a personal computer via the PHY chip 502 and the data transfer control device 500 is sent directly to the print processing unit 512 via the bus 504. The print data is subjected to given processing in a print processing unit 512, and is printed and output on paper by a print unit (device for outputting data) 514 including a print header and the like.

【0204】図28(B)に電子機器の1つであるスキ
ャナの内部ブロック図を示し、図29(B)にその外観
図を示す。CPU520はシステム全体の制御などを行
う。操作部521はスキャナをユーザが操作するための
ものである。ROM526には制御プログラムなどが格
納され、RAM528はCPU520のワーク領域とし
て機能する。
FIG. 28B shows an internal block diagram of a scanner which is one of the electronic devices, and FIG. 29B shows an external view thereof. The CPU 520 controls the entire system. The operation unit 521 is for the user to operate the scanner. The ROM 526 stores a control program and the like, and the RAM 528 functions as a work area of the CPU 520.

【0205】光源、光電変換器などからなる画像読み取
り部(データを取り込むための装置)522により原稿
の画像が読み取られ、読み取られた画像のデータは画像
処理部524により処理される。そして、処理後の画像
データがバス505を介してデータ転送制御装置500
に直接送られる。データ転送制御装置500は、この画
像データにヘッダなどを付加することでパケットを生成
し、PHYチップ502を介してパーソナルコンピュー
タなどの他のノードに送信する。
An image of a document is read by an image reading unit (device for reading data) 522 including a light source, a photoelectric converter, and the like, and the data of the read image is processed by an image processing unit 524. Then, the processed image data is transferred to the data transfer control device 500 via the bus 505.
Sent directly to The data transfer control device 500 generates a packet by adding a header or the like to the image data, and transmits the packet to another node such as a personal computer via the PHY chip 502.

【0206】図28(C)に電子機器の1つであるCD
−Rドライブの内部ブロック図を示し、図29(C)に
その外観図を示す。CPU530はシステム全体の制御
などを行う。操作部531はCD−Rをユーザが操作す
るためのものである。ROM536には制御プログラム
などが格納され、RAM538はCPU530のワーク
領域として機能する。
FIG. 28C shows a CD which is one of the electronic devices.
FIG. 29C shows an internal block diagram of the -R drive, and FIG. 29C shows an external view thereof. The CPU 530 controls the entire system. The operation unit 531 is for the user to operate the CD-R. The ROM 536 stores a control program and the like, and the RAM 538 functions as a work area of the CPU 530.

【0207】レーザ、モータ、光学系などからなる読み
取り&書き込み部(データを取り込むための装置又はデ
ータを記憶するための装置)533によりCD−R53
2から読み取られたデータは、信号処理部534に入力
され、エラー訂正処理などの所与の信号処理が施され
る。そして、信号処理が施されたデータが、バス506
を介してデータ転送制御装置500に直接送られる。デ
ータ転送制御装置500は、このデータにヘッダなどを
付加することでパケットを生成し、PHYチップ502
を介してパーソナルコンピュータなどの他のノードに送
信する。
The reading / writing unit (device for taking in data or device for storing data) 533 comprising a laser, a motor, an optical system, etc.
2 is input to the signal processing unit 534 and subjected to given signal processing such as error correction processing. Then, the signal-processed data is transferred to the bus 506.
Is sent directly to the data transfer control device 500 via the. The data transfer control device 500 generates a packet by adding a header or the like to this data,
To another node such as a personal computer via

【0208】一方、PHYチップ502、データ転送制
御装置500を介して、他のノードから送られてきたデ
ータは、バス506を介して信号処理部534に直接送
られる。そして、信号処理部534によりこのデータに
所与の信号処理が施され、読み取り&書き込み部533
によりCD−R532に記憶される。
On the other hand, data sent from another node via the PHY chip 502 and the data transfer control device 500 is sent directly to the signal processing unit 534 via the bus 506. Then, given signal processing is performed on the data by the signal processing unit 534, and the reading and writing unit 533 is performed.
Is stored in the CD-R 532.

【0209】なお、図28(A)、(B)、(C)にお
いて、CPU510、520、530の他に、データ転
送制御装置500でのデータ転送制御のためのCPUを
別に設けるようにしてもよい。
In FIGS. 28 (A), (B) and (C), a CPU for controlling data transfer in the data transfer control device 500 may be separately provided in addition to the CPUs 510, 520 and 530. Good.

【0210】本実施形態のデータ転送制御装置を電子機
器に用いることで、高速なデータ転送が可能になる。従
って、ユーザがパーソナルコンピュータなどによりプリ
ントアウトの指示を行った場合に、少ないタイムラグで
印字が完了するようになる。また、スキャナへの画像取
り込みの指示の後に、少ないタイムラグで読み取り画像
をユーザは見ることができるようになる。また、CD−
Rからのデータの読み取りや、CD−Rへのデータの書
き込みを高速に行うことができるようになる。更に、例
えば1つのホストシステムに複数の電子機器を接続して
利用したり、複数のホストシステムに複数の電子機器を
接続して利用したりすることも容易になる。
By using the data transfer control device of this embodiment for electronic equipment, high-speed data transfer becomes possible. Therefore, when the user gives a printout instruction using a personal computer or the like, printing is completed with a small time lag. Further, after the instruction to take in the image to the scanner, the user can view the read image with a small time lag. Also, CD-
It becomes possible to read data from R and write data to CD-R at high speed. Further, for example, it becomes easy to connect and use a plurality of electronic devices to one host system or to connect and use a plurality of electronic devices to a plurality of host systems.

【0211】また本実施形態のデータ転送制御装置を電
子機器に用いることで、CPU上で動作するファームウ
ェアの処理負荷が軽減され、安価なCPUや低速のバス
を用いることが可能になる。更に、データ転送制御装置
の低コスト化、小規模化を図れるため、電子機器の低コ
スト化、小規模化も図れるようになる。
Further, by using the data transfer control device of the present embodiment in an electronic device, the processing load of firmware operating on the CPU can be reduced, and an inexpensive CPU and a low-speed bus can be used. Further, since the cost and the size of the data transfer control device can be reduced, the cost and the size of the electronic device can be reduced.

【0212】なお本実施形態のデータ転送制御装置を適
用できる電子機器としては、上記以外にも例えば、種々
の光ディスクドライブ(CDROM、DVD)、光磁気
ディスクドライブ(MO)、ハードディスクドライブ、
TV、VTR、ビデオカメラ、オーディオ機器、電話
機、プロジェクタ、パーソナルコンピュータ、電子手
帳、ワードプロセッサなど種々のものを考えることがで
きる。
The electronic apparatus to which the data transfer control device of the present embodiment can be applied is, for example, various optical disk drives (CDROM, DVD), magneto-optical disk drive (MO), hard disk drive, etc.
Various things such as a TV, VTR, video camera, audio equipment, telephone, projector, personal computer, electronic organizer, and word processor can be considered.

【0213】なお、本発明は本実施形態に限定されず、
本発明の要旨の範囲内で種々の変形実施が可能である。
Note that the present invention is not limited to this embodiment,
Various modifications can be made within the scope of the present invention.

【0214】例えば、本発明のデータ転送制御装置の構
成は、図6に示す構成が特に望ましいが、これに限定さ
れるものではない。
For example, the configuration of the data transfer control device of the present invention is particularly preferably the configuration shown in FIG. 6, but is not limited thereto.

【0215】また本発明では、記憶手段を複数の領域に
分離することが特に望ましいが、これを分離させない構
成とすることも可能である。
Further, in the present invention, it is particularly desirable to divide the storage means into a plurality of areas, but it is also possible to adopt a configuration in which this is not separated.

【0216】また、本発明は、IEEE1394規格で
のデータ転送に適用されることが特に望ましいが、これ
に限定されるものではない。例えばIEEE1394と
同様の思想に基づく規格やIEEE1394を発展させ
た規格におけるデータ転送にも本発明は適用できる。
The present invention is particularly preferably applied to data transfer in the IEEE 1394 standard, but is not limited to this. For example, the present invention can be applied to data transfer based on a standard based on the same concept as IEEE 1394 or a standard developed from IEEE 1394.

【0217】[0219]

【図面の簡単な説明】[Brief description of the drawings]

【図1】図1(A)、(B)、(C)は、非同期転送と
アイソクロナス転送について説明するための図である。
FIGS. 1A, 1B, and 1C are diagrams for explaining asynchronous transfer and isochronous transfer. FIG.

【図2】図2(A)、(B)は、ツリー識別について説
明するための図である。
FIGS. 2A and 2B are diagrams for explaining tree identification; FIG.

【図3】自己識別について説明するための図である。FIG. 3 is a diagram for describing self-identification.

【図4】図4(A)、(B)、(C)、(D)は、セル
フIDパケットなどの物理層のパケットのフォーマット
を示す図である。
FIGS. 4A, 4B, 4C, and 4D are diagrams showing formats of physical layer packets such as self-ID packets.

【図5】IEEE1394のプロトコル構成について示
す図である。
FIG. 5 is a diagram showing an IEEE 1394 protocol configuration.

【図6】本実施形態のデータ転送制御装置の構成例を示
す図である。
FIG. 6 is a diagram illustrating a configuration example of a data transfer control device according to the present embodiment.

【図7】ヘッダ(制御情報)領域とデータ領域の分離に
ついて説明するための図である。
FIG. 7 is a diagram for describing separation of a header (control information) area and a data area.

【図8】本実施形態の比較例の構成例について示す図で
ある。
FIG. 8 is a diagram illustrating a configuration example of a comparative example of the present embodiment.

【図9】図8の構成によるデータ転送の手法について説
明するための図である。
FIG. 9 is a diagram for explaining a data transfer method using the configuration of FIG. 8;

【図10】データ転送の手法の他の例について説明する
ための図である。
FIG. 10 is a diagram for explaining another example of a data transfer technique.

【図11】本実施形態のデータ転送の手法について説明
するための図である。
FIG. 11 is a diagram for explaining a data transfer method according to the embodiment;

【図12】図12(A)、(B)は、リンクコアとCP
Uとの間にランダムアクセス可能なRAMを介在させる
手法について説明するための図である。
FIGS. 12A and 12B show a link core and a CP.
FIG. 9 is a diagram for explaining a method of interposing a random accessible RAM between the U and the U;

【図13】受信パケットをヘッダとデータに分離してR
AMのヘッダ領域とデータ領域に格納する手法について
説明するための図である。
FIG. 13 is a diagram illustrating a method of separating a received packet into a header and data,
FIG. 4 is a diagram for describing a method of storing data in an AM header area and a data area.

【図14】ヘッダ領域に格納されるヘッダとデータ領域
に格納されるデータを結合し、送信パケットを組み立て
る手法について説明するための図である。
FIG. 14 is a diagram for describing a method of combining a header stored in a header area and data stored in a data area to assemble a transmission packet.

【図15】ヘッダ領域に格納するヘッダにデータポイン
タを含ませる手法について説明するための図である。
FIG. 15 is a diagram for describing a method of including a data pointer in a header stored in a header area.

【図16】TAGについて説明するための図である。FIG. 16 is a diagram illustrating a TAG.

【図17】図17(A)、(B)、(C)、(D)、
(E)、(F)は、RAMを各種の領域に分離する手法
について説明するための図である。
17 (A), (B), (C), (D),
(E), (F) is a diagram for explaining a method of separating the RAM into various areas.

【図18】RAMの各領域のサイズを可変に制御する手
法について説明するための図である。
FIG. 18 is a diagram for describing a method of variably controlling the size of each area of a RAM.

【図19】図19(A)、(B)、(C)は、リングバ
ッファ構造について説明するための図である。
FIGS. 19A, 19B, and 19C are diagrams for explaining a ring buffer structure.

【図20】図20(A)、(B)は、1つのパケットの
ヘッダやデータが格納される領域のサイズを固定にする
手法について説明するための図である。
FIGS. 20A and 20B are diagrams for explaining a method of fixing the size of an area in which a header and data of one packet are stored.

【図21】受信側の構成の一例を示す図である。FIG. 21 is a diagram illustrating an example of a configuration on a receiving side.

【図22】受信側の動作について説明するためのタイミ
ング波形図である。
FIG. 22 is a timing waveform chart for explaining the operation on the receiving side.

【図23】図23(A)は、IEEE1394規格の非
同期パケットのフォーマットであり、図23(B)は、
RAMのヘッダ領域に格納される非同期受信パケットの
ヘッダ部分のフォーマットである。
FIG. 23A shows the format of an asynchronous packet conforming to the IEEE 1394 standard, and FIG.
It is a format of a header portion of an asynchronous reception packet stored in a header area of a RAM.

【図24】図24(A)、(B)、(C)、(D)は、
ヘッダポインタとデータポインタの更新について説明す
るための図である。
FIGS. 24 (A), (B), (C), (D)
FIG. 9 is a diagram for describing updating of a header pointer and a data pointer.

【図25】送信側の構成の一例を示す図である。FIG. 25 is a diagram illustrating an example of a configuration on a transmission side.

【図26】送信側の動作について説明するためのタイミ
ング波形図である。
FIG. 26 is a timing waveform chart for explaining the operation on the transmission side.

【図27】RAMのヘッダ領域に格納される非同期送信
パケットのヘッダ部分のフォーマットである。
FIG. 27 shows a format of a header portion of an asynchronous transmission packet stored in a header area of a RAM.

【図28】図28(A)、(B)、(C)は、種々の電
子機器の内部ブロック図の例である。
FIGS. 28A, 28B, and 28C are examples of internal block diagrams of various electronic devices.

【図29】図29(A)、(B)、(C)は、種々の電
子機器の外観図の例である。
FIGS. 29A, 29B, and 29C are examples of external views of various electronic devices.

【符号の説明】[Explanation of symbols]

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書き込みデータ&アドレス発生回路 DESCRIPTION OF SYMBOLS 10 PHY interface 20 Link core 22 Register 30 FIFO (ATF) 32 FIFO (ITF) 34 FIFO (RF) 40 DMAC (for ATF) 42 DMAC (for ITF) 44 DMAC (for RF) 50 Port interface 52 FIFO (PF) 54 DMAC (for PF) 56 Register 60 CPU interface 62 Address decoder 63 Data synchronization circuit 64 Interrupt controller 66 CPU 68 Clock control circuit 70 Buffer manager 72 Register 74 Arbitration circuit 76 Sequencer 80 RAM (packet storage means) 90, 92, 94 Bus (First bus) 96, 98 bus (second bus) 100, 102, 104, 105, 106, 107, 108, 109 bus (third bus) 110 bus (4th bus) 120 data transfer control device 122 PHY chip 124 device of application layer 130 bus monitoring circuit 132 serial / parallel conversion circuit 142 packet diagnostic circuit 160 packet shaping circuit 162 TAG generation circuit 164 header & trailer generation circuit 166 error check circuit 167 Sequencer 168 Buffer 170 Selector 180 Packet separation circuit 182 TAG determination circuit 184 Pointer update circuit 188 Address generation circuit 190 Access request execution circuit 192 Address request generation circuit 280 Packet connection circuit 284 Pointer update circuit 285 Data pointer acquisition circuit 286 tcode determination circuit 290 Access request execution circuit 292 Address request generation circuit 294 ACK write request generation circuit 296 ACK write Only data & address generator

───────────────────────────────────────────────────── フロントページの続き (72)発明者 神原 義幸 長野県諏訪市大和3丁目3番5号 セイコ ーエプソン株式会社内 Fターム(参考) 5K032 AA02 AA03 CD01 DB19 DB24 ────────────────────────────────────────────────── ─── Continued on the front page (72) Inventor Yoshiyuki Kamihara 3-3-5 Yamato, Suwa City, Nagano Prefecture Seiko Epson Corporation F-term (reference) 5K032 AA02 AA03 CD01 DB19 DB24

Claims (19)

【特許請求の範囲】[Claims] 【請求項1】 バスに接続される複数のノード間でのデ
ータ転送のためのデータ転送制御装置であって、 ノード間でのパケット転送のためのサービスを提供する
リンク手段と、 パケットを格納するためのランダムアクセス可能な記憶
手段と、 前記リンク手段を介して各ノードから転送されてくるパ
ケットを前記記憶手段に書き込む書き込み手段と、 上層により前記記憶手段に書き込まれたパケットを読み
出し、前記リンク手段に渡す読み出し手段とを含むこと
を特徴とするデータ転送制御装置。
1. A data transfer control device for transferring data between a plurality of nodes connected to a bus, comprising: link means for providing a service for packet transfer between nodes; and storing packets. Storage means capable of random access, a writing means for writing a packet transferred from each node via the link means to the storage means, a packet written to the storage means by an upper layer, and the link means A data transfer control device comprising:
【請求項2】 請求項1において、 前記記憶手段が、 パケットの制御情報が格納される制御情報領域と、パケ
ットのデータが格納されるデータ領域とに分離されてい
ることを特徴とするデータ転送制御装置。
2. The data transfer method according to claim 1, wherein the storage unit is separated into a control information area for storing control information of the packet and a data area for storing data of the packet. Control device.
【請求項3】 請求項1において、 前記記憶手段が、 パケットが格納される領域と中央処理ユニットのワーク
領域とに分離されていることを特徴とするデータ転送制
御装置。
3. The data transfer control device according to claim 1, wherein said storage means is separated into an area for storing packets and a work area for a central processing unit.
【請求項4】 請求項2又は3のいずれかにおいて、 前記記憶手段の前記制御情報領域が、 受信用制御情報領域と送信用制御情報領域とに分離され
ていることを特徴とするデータ転送制御装置。
4. The data transfer control according to claim 2, wherein the control information area of the storage unit is separated into a reception control information area and a transmission control information area. apparatus.
【請求項5】 請求項2乃至4のいずれかにおいて、 パケットの制御情報を前記制御情報領域に書き込み、パ
ケットのデータを前記データ領域に書き込むパケット分
離手段を含むことを特徴とするデータ転送制御装置。
5. The data transfer control device according to claim 2, further comprising a packet separating unit that writes control information of a packet in the control information area and writes data of the packet in the data area. .
【請求項6】 請求項5において、 前記リンク手段が、 パケットの少なくとも制御情報とデータを区別するため
のタグ情報を生成すると共に、生成された該タグ情報を
パケットに関連づけ、 前記パケット分離手段が、 パケットに関連づけられた前記タグ情報に基づいて、パ
ケットの制御情報を前記制御情報領域に書き込み、パケ
ットのデータを前記データ領域に書き込むことを特徴と
するデータ転送制御装置。
6. The communication device according to claim 5, wherein the linking means generates tag information for distinguishing at least control information and data of the packet, associates the generated tag information with the packet, and the packet separating means A data transfer control device that writes packet control information to the control information area and writes packet data to the data area based on the tag information associated with the packet.
【請求項7】 請求項2乃至6のいずれかにおいて、 前記記憶手段の前記データ領域が、 受信用データ領域と送信用データ領域とに分離されてい
ることを特徴とするデータ転送制御装置。
7. The data transfer control device according to claim 2, wherein the data area of the storage unit is divided into a reception data area and a transmission data area.
【請求項8】 請求項2乃至7のいずれかにおいて、 前記記憶手段の前記データ領域が、 アイソクロナス転送用データ領域と非同期転送用データ
領域とに分離されていることを特徴とするデータ転送制
御装置。
8. The data transfer control device according to claim 2, wherein said data area of said storage means is separated into an isochronous transfer data area and an asynchronous transfer data area. .
【請求項9】 請求項2乃至8のいずれかにおいて、 前記記憶手段の前記データ領域が非同期転送用データ領
域を含み、 前記非同期転送用データ領域が、第1、第2の非同期転
送用データ領域を含む複数の領域に分離されていること
を特徴とするデータ転送制御装置。
9. The asynchronous transfer data area according to claim 2, wherein the data area of the storage unit includes an asynchronous transfer data area, and the asynchronous transfer data area includes a first and a second asynchronous transfer data area. A data transfer control device characterized by being divided into a plurality of areas including:
【請求項10】 請求項2乃至9のいずれかにおいて、 前記記憶手段の前記データ領域がアイソクロナス転送用
データ領域と第1の非同期転送用データ領域とに分離さ
れ、 前記アイソクロナス転送用データ領域が第2の非同期転
送用データ領域として使用されることを特徴とするデー
タ転送制御装置。
10. The data area according to claim 2, wherein the data area of the storage means is divided into an isochronous transfer data area and a first asynchronous transfer data area. 2. A data transfer control device used as an asynchronous transfer data area.
【請求項11】 請求項2乃至10のいずれかにおい
て、 前記記憶手段の前記データ領域が複数の領域に分離さ
れ、 パケットの制御情報に基づき、該分離された複数の領域
のいずれかにパケットのデータを書き込む手段を含むこ
とを特徴とするデータ転送制御装置。
11. The data area according to claim 2, wherein the data area of the storage unit is divided into a plurality of areas, and the packet area is divided into any of the plurality of separated areas based on control information of the packet. A data transfer control device comprising means for writing data.
【請求項12】 請求項1乃至11のいずれかにおい
て、 前記記憶手段が複数の領域に分離される場合において、
各領域のサイズを可変に制御する手段を含むことを特徴
とするデータ転送制御装置。
12. The method according to claim 1, wherein the storage unit is divided into a plurality of areas.
A data transfer control device comprising means for variably controlling the size of each area.
【請求項13】 請求項12において、 各領域のサイズが、電源投入後もダイナミックに可変制
御されることを特徴とするデータ転送制御装置。
13. The data transfer control device according to claim 12, wherein the size of each area is dynamically variably controlled even after power is turned on.
【請求項14】 請求項1乃至13のいずれかにおい
て、 前記記憶手段が複数の領域に分離される場合において、 分離された領域の一方の境界から他方の境界に向かって
パケットの制御情報及びデータの少なくとも一方が格納
され、他方の境界に達した場合には一方の境界に戻って
パケットの制御情報及びデータの少なくとも一方が格納
されることを特徴とするデータ転送制御装置。
14. The control information and data of a packet according to claim 1, wherein the storage unit is divided into a plurality of areas, from one boundary of the separated area to the other boundary. A data transfer control device wherein at least one of the control information and the data is stored, and when reaching the other boundary, the process returns to the one boundary and stores at least one of the control information and the data of the packet.
【請求項15】 請求項14において、 1つのパケットの制御情報及びデータの少なくとも一方
が格納される領域のサイズが固定となることを特徴とす
るデータ転送制御装置。
15. The data transfer control device according to claim 14, wherein the size of an area for storing at least one of control information and data of one packet is fixed.
【請求項16】 請求項1乃至15のいずれかにおい
て、 前記リンク手段と前記記憶手段との間に設けられる受信
用FIFOと送信用FIFOとを含むことを特徴とする
データ転送制御装置。
16. The data transfer control device according to claim 1, further comprising a reception FIFO and a transmission FIFO provided between the link unit and the storage unit.
【請求項17】 請求項1乃至16のいずれかにおい
て、 IEEE1394の規格に準拠したデータ転送を行うこ
とを特徴とするデータ転送制御装置。
17. The data transfer control device according to claim 1, wherein the data transfer is performed in accordance with the IEEE 1394 standard.
【請求項18】 請求項1乃至17のいずれかのデータ
転送制御装置と、 前記データ転送制御装置及びバスを介して他のノードか
ら受信したデータに所与の処理を施す装置と、 処理が施されたデータを出力又は記憶するための装置と
を含むことを特徴とする電子機器。
18. A data transfer control device according to claim 1, further comprising: a device for performing a given process on data received from another node via said data transfer control device and a bus. And a device for outputting or storing the obtained data.
【請求項19】 請求項1乃至17のいずれかのデータ
転送制御装置と、 前記データ転送制御装置及びバスを介して他のノードに
送信するデータに所与の処理を施す装置と、 処理が施されるデータを取り込むための装置とを含むこ
とを特徴とする電子機器。
19. A data transfer control device according to claim 1, wherein said data transfer control device and a device for performing a given process on data to be transmitted to another node via a bus. An apparatus for capturing data to be processed.
JP32154198A 1998-10-27 1998-10-27 Data transfer control device and electronic equipment Expired - Fee Related JP3543649B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP32154198A JP3543649B2 (en) 1998-10-27 1998-10-27 Data transfer control device and electronic equipment
US09/426,588 US6775245B1 (en) 1998-10-27 1999-10-25 Data transfer control device and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32154198A JP3543649B2 (en) 1998-10-27 1998-10-27 Data transfer control device and electronic equipment

Publications (2)

Publication Number Publication Date
JP2000134233A true JP2000134233A (en) 2000-05-12
JP3543649B2 JP3543649B2 (en) 2004-07-14

Family

ID=18133718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32154198A Expired - Fee Related JP3543649B2 (en) 1998-10-27 1998-10-27 Data transfer control device and electronic equipment

Country Status (2)

Country Link
US (1) US6775245B1 (en)
JP (1) JP3543649B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001006722A1 (en) * 1999-07-15 2001-01-25 Seiko Epson Corporation Data transfer control device and electronic apparatus
JP2002035364A (en) * 2000-07-25 2002-02-05 Sankyo Kk Game machine
JP2012529724A (en) * 2009-05-29 2012-11-22 マイクロマス・ユーケイ・リミテッド Method and apparatus for acquiring mass spectrometer data

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3740379B2 (en) * 2000-04-19 2006-02-01 キヤノン株式会社 Image processing apparatus and image processing method
US7315388B2 (en) * 2001-01-24 2008-01-01 Canon Kabushiki Kaisha Image input/output control apparatus, image processing apparatus, image processing method, data communication apparatus, and data communication method
JP2004122376A (en) * 2002-09-30 2004-04-22 Canon Inc Image formation controller, its image formation controlling method, program and storage medium
US20050237998A1 (en) * 2003-02-03 2005-10-27 Kozo Okuda Audio decoding apparatus and network telephone set
US20050177660A1 (en) * 2004-02-05 2005-08-11 Rajesh Mamidwar Method and system for merged rate-smoothing buffer with burst buffer
US8077603B2 (en) * 2004-10-29 2011-12-13 Honeywell International Inc. IEEE 1394 gateway for fault-tolerant communication
US7990898B2 (en) * 2004-10-29 2011-08-02 Honeywell International Inc. IEEE 1394 network for deterministic and/or fault-tolerant communication
US7512135B2 (en) * 2004-12-10 2009-03-31 International Business Machines Corporation Method for transferring data among a logical layer, physical layer, and storage device
US20060187948A1 (en) * 2005-02-18 2006-08-24 Broadcom Corporation Layer two and layer three virtual private network support in a network device
US20060187936A1 (en) * 2005-02-18 2006-08-24 Broadcom Corporation Table searching techniques in a network device
US20060203824A1 (en) * 2005-02-18 2006-09-14 Song-Huo Yu Passing values through a memory management unit of a network device
JPWO2006137480A1 (en) * 2005-06-24 2009-01-22 株式会社創業 Image data communication device
CN101322110A (en) * 2005-11-09 2008-12-10 诺基亚公司 Apparatus, method and computer program product providing data serializing by direct memory access controller
US7869411B2 (en) * 2005-11-21 2011-01-11 Broadcom Corporation Compact packet operation device and method
EP1791305A1 (en) * 2005-11-25 2007-05-30 Alcatel Lucent Storing and processing a data unit in a network device
EP2045973A1 (en) * 2007-10-02 2009-04-08 Deutsche Thomson OHG A memory buffer system and method for operating a memory buffer system for fast data exchange
JP5150672B2 (en) * 2010-03-18 2013-02-20 株式会社東芝 Portable electronic device and method for controlling portable electronic device
US11580582B1 (en) 2016-03-08 2023-02-14 Gerald McLaughlin Method and system for description database creation, organization, and use
US10198397B2 (en) * 2016-11-18 2019-02-05 Microsoft Technology Licensing, Llc Flow control in remote direct memory access data communications with mirroring of ring buffers

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4507760A (en) 1982-08-13 1985-03-26 At&T Bell Laboratories First-in, first-out (FIFO) memory configuration for queue storage
JPH02310649A (en) 1989-05-26 1990-12-26 Hitachi Ltd Reception frame transfer system and communication controller
US5621898A (en) * 1994-11-29 1997-04-15 Compaq Computer Corporation Arbiter organization for serial bus transfers
JP2953410B2 (en) 1996-10-31 1999-09-27 日本電気株式会社 Parallel error detection circuit
US6233242B1 (en) * 1996-12-30 2001-05-15 Compaq Computer Corporation Network switch with shared memory system
JPH10285223A (en) 1997-04-01 1998-10-23 Sony Corp Signal processing circuit

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001006722A1 (en) * 1999-07-15 2001-01-25 Seiko Epson Corporation Data transfer control device and electronic apparatus
US6857028B1 (en) 1999-07-15 2005-02-15 Seiko Epson Corporation Data transfer control device and electronic equipment
US7430618B2 (en) 1999-07-15 2008-09-30 Seiko Epson Corporation Data transfer control device and electronic equipment
JP2002035364A (en) * 2000-07-25 2002-02-05 Sankyo Kk Game machine
JP4663071B2 (en) * 2000-07-25 2011-03-30 株式会社三共 Game machine
JP2012529724A (en) * 2009-05-29 2012-11-22 マイクロマス・ユーケイ・リミテッド Method and apparatus for acquiring mass spectrometer data

Also Published As

Publication number Publication date
JP3543649B2 (en) 2004-07-14
US6775245B1 (en) 2004-08-10

Similar Documents

Publication Publication Date Title
JP3543649B2 (en) Data transfer control device and electronic equipment
JP3543647B2 (en) Data transfer control device and electronic equipment
JP3543648B2 (en) Data transfer control device and electronic equipment
US6725413B1 (en) Data transfer control device and electronic equipment
US6857028B1 (en) Data transfer control device and electronic equipment
JP3494040B2 (en) Data transfer control device and electronic equipment
JP3494041B2 (en) Data transfer control device and electronic equipment
US6978327B1 (en) Data transfer control device and electronic equipment for performing data
JP3494042B2 (en) Data transfer control device and electronic equipment
JP3610982B2 (en) Data transfer control device and electronic device
JP2001177544A (en) Data transfer controller, information storage medium and electronic equipment
JP2004118704A (en) Interface device and its control method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040329

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100416

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110416

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110416

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120416

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20140416

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees