JP2005018800A - Multi-initiator control device and method - Google Patents

Multi-initiator control device and method Download PDF

Info

Publication number
JP2005018800A
JP2005018800A JP2004230560A JP2004230560A JP2005018800A JP 2005018800 A JP2005018800 A JP 2005018800A JP 2004230560 A JP2004230560 A JP 2004230560A JP 2004230560 A JP2004230560 A JP 2004230560A JP 2005018800 A JP2005018800 A JP 2005018800A
Authority
JP
Japan
Prior art keywords
command
packet
initiator
control circuit
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004230560A
Other languages
Japanese (ja)
Other versions
JP2005018800A5 (en
Inventor
Hirotaka Ito
裕隆 伊藤
Yoshihiro Tahira
由弘 田平
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004230560A priority Critical patent/JP2005018800A/en
Publication of JP2005018800A publication Critical patent/JP2005018800A/en
Publication of JP2005018800A5 publication Critical patent/JP2005018800A5/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a multi-initiator control device capable of performing a command processing sequence to two or more devices. <P>SOLUTION: The multi-initiator control device for performing communication with each of a plurality of devices connected through a transmission line by packets comprises a packet filter analyzing a packet received and outputting the result; a plurality of command control circuits each controlling a command processing sequence with a corresponding device; a multi-control circuit giving a sequence execution permission to one of the command control circuits; and a packet processing circuit generating and transmitting a packet having information outputted by the command control circuit to which the permission is given, and outputting the received packet according to the analysis result outputted by the packet filter. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、コンピュータと周辺装置等との間でコマンドやデータを伝送路を介して伝送する際に使用されるプロトコルに対するシーケンス処理技術に関する。   The present invention relates to a sequence processing technique for a protocol used when a command or data is transmitted between a computer and a peripheral device via a transmission line.

AV(audio-visual)機器やコンピュータ機器等を接続する次世代インターフェイスとして、IEEE1394方式が注目されている。これは、IEEE1394方式に、非同期(asyncronous)通信とアイソクロナス(isochronous)通信とが定義されているためである。非同期通信は、コンピュータと記録メディア等との間のデータ転送のように、リアルタイム性よりも信頼性をより要求される通信に用いられる。アイソクロナス通信は、動画等のAVデータのような、信頼性よりもリアルタイム性が要求される通信に用いられる。したがって、IEEE1394方式を用いて、例えばコンピュータデータをDVD−RAM(digital versatile disc - random access memory)ドライブ装置等に格納したり、DVD−RAMドライブ装置から記録済みのコンピュータデータを読み出したりする際には、一般的に非同期通信によりデータを伝送する。   The IEEE 1394 system has attracted attention as a next-generation interface for connecting AV (audio-visual) devices and computer devices. This is because the IEEE 1394 system defines asynchronous communication and isochronous communication. Asynchronous communication is used for communication that requires more reliability than real-time performance, such as data transfer between a computer and a recording medium. Isochronous communication is used for communication that requires real-time performance rather than reliability, such as AV data such as moving images. Therefore, when storing computer data in, for example, a DVD-RAM (digital versatile disc-random access memory) drive device, or reading recorded computer data from the DVD-RAM drive device using the IEEE 1394 method. Generally, data is transmitted by asynchronous communication.

コンピュータ等の機器(イニシエータ(initiator))と周辺装置(ターゲット(target))との間でIEEE1394方式の非同期通信を行う場合のプロトコルとして、SBP−2(serial bus protocol-2)がある。以下、コンピュータがこのSBP−2に従ってDVD−RAMドライブ等のターゲットからデータを読み込む場合における、コマンド処理シーケンスについて説明する。   There is SBP-2 (serial bus protocol-2) as a protocol for performing IEEE1394 asynchronous communication between a device such as a computer (initiator) and a peripheral device (target). Hereinafter, a command processing sequence when the computer reads data from a target such as a DVD-RAM drive in accordance with SBP-2 will be described.

SBP−2のコマンドは、READ、WRITE等のコマンド系のコマンドと、LOGIN、QUERY LOGIN、ABORT TASK、ABORT TASK SET等のマネージメント系(タスク管理系)のコマンドとに分けることができる。   SBP-2 commands can be divided into command commands such as READ and WRITE, and management commands (task management commands) such as LOGIN, QUERY LOGIN, ABORT TASK, and ABORT TASK SET.

図9は、マネージメント系のコマンドであるLOGINコマンドを実行するためのコマンド処理シーケンスを示す説明図である。図9を参照して、LOGINコマンドのコマンド処理シーケンスを説明する。   FIG. 9 is an explanatory diagram showing a command processing sequence for executing a LOGIN command which is a management command. A command processing sequence of the LOGIN command will be described with reference to FIG.

(1)イニシエータは、QRRQ(quadlet read request)パケットを発行することにより、ターゲットの固有情報(機器情報等)の取得を行う。一般にこの固有情報全体はコンフィグレーションROM(configROM)と呼ばれる領域に格納されており、この固有情報にはターゲットのMANAGEMENT_AGENTレジスタのアドレスも含まれている。   (1) The initiator obtains target specific information (device information, etc.) by issuing a QRRQ (quadlet read request) packet. Generally, the entire unique information is stored in an area called a configuration ROM (configROM), and this unique information includes the address of the target MANAGEMENT_AGENT register.

(2)ターゲットは、イニシエータからのQRRQパケットに応答して、configROMのデータをQRRS(quadlet read response)パケットとしてイニシエータに返す。QRRQパケット及びQRRSパケットが送信されるこれらの処理(1),(2)は、イニシエータがconfigROMのデータを全て取得するまで続く。   (2) In response to the QRRQ packet from the initiator, the target returns configROM data as a QRRS (quadlet read response) packet to the initiator. These processes (1) and (2) in which the QRRQ packet and the QRRS packet are transmitted continue until the initiator acquires all the data in the configROM.

(3)イニシエータは、BWRQ(block write request)パケットを発行して、ORB(operation request block)を格納しているメモリのアドレスをMANAGEMENT_AGENTレジスタに書き込む。ORBは、イニシエータによって予め用意されており、MANAGEMENT_AGENTレジスタは、ターゲットのCSR(control and status register)空間に定義されている。   (3) The initiator issues a BWRQ (block write request) packet and writes the address of the memory storing the ORB (operation request block) in the MANAGEMENT_AGENT register. The ORB is prepared in advance by the initiator, and the MANAGEMENT_AGENT register is defined in a target CSR (control and status register) space.

(4)ターゲットは、イニシエータからのBWRQパケットに応答して、WRS(write response)パケットをイニシエータに返す。   (4) In response to the BWRQ packet from the initiator, the target returns a WRS (write response) packet to the initiator.

(5)ターゲットは、イニシエータに対してBRRQ(block read request)パケットを発行して、イニシエータがORBをターゲットに送信することを要求する。ORBは、MANAGEMENT_AGENTレジスタに格納されたアドレスに位置している。   (5) The target issues a BRRQ (block read request) packet to the initiator and requests that the initiator transmit an ORB to the target. The ORB is located at the address stored in the MANAGEMENT_AGENT register.

(6)イニシエータは、ターゲットからのBRRQパケットに応答して、BRRS(block read response)パケットをターゲットに返す。BRRSパケットのデータフィールドには、ORBが格納されている。このようにして、ORBがイニシエータからターゲットに送信される。   (6) In response to the BRRQ packet from the target, the initiator returns a BRRS (block read response) packet to the target. The ORB is stored in the data field of the BRRS packet. In this way, the ORB is transmitted from the initiator to the target.

(7)ターゲットは、イニシエータからORBを受信し、受信したORBの内容を解析する。   (7) The target receives the ORB from the initiator and analyzes the content of the received ORB.

(8)ターゲットは、受信したORBがLOGINコマンドを表すことがわかると、LOGINコマンドを実行する。コマンド実行の際のLogin ResponseにCOMMAND_AGENTレジスタのベースアドレスが示されている。   (8) When the target knows that the received ORB represents a LOGIN command, the target executes the LOGIN command. The base address of the COMMAND_AGENT register is shown in Login Response when executing the command.

(9)LOGINコマンドの実行が終了した後、ターゲットは、LOGINコマンドの実行結果を示すステータス情報を作成する。   (9) After the execution of the LOGIN command is completed, the target creates status information indicating the execution result of the LOGIN command.

(10)ターゲットは、BWRQパケットを発行することにより、ステータス情報をイニシエータに送信する。ステータス情報は、ORBによって指定される所定のアドレス(イニシエータのStatus_FIFOアドレス)に格納される。   (10) The target sends status information to the initiator by issuing a BWRQ packet. The status information is stored at a predetermined address (Status_FIFO address of the initiator) specified by the ORB.

(11)イニシエータは、ターゲットからのBWRQパケットに応答して、WRSパケットをターゲットに返す。   (11) In response to the BWRQ packet from the target, the initiator returns a WRS packet to the target.

(12)ターゲットは、イニシエータからのWRSパケットのrCodeがresp_completeであるか否かを判定する。イニシエータからのWRSパケットのrCodeがresp_completeである場合は、LOGINコマンドに関する一連のコマンド処理シーケンスが完了する。   (12) The target determines whether or not the rCode of the WRS packet from the initiator is resp_complete. When the rCode of the WRS packet from the initiator is resp_complete, a series of command processing sequences related to the LOGIN command is completed.

図10は、コマンド系のREADコマンドを実行するためのコマンド処理シーケンスを示す説明図である。図10のシーケンスは、図9を参照して説明したLOGINコマンドの処理シーケンスが終了した後に実行される。図10を参照して、READコマンドのコマンド処理シーケンスを説明する。   FIG. 10 is an explanatory diagram showing a command processing sequence for executing a command-type READ command. The sequence of FIG. 10 is executed after the processing sequence of the LOGIN command described with reference to FIG. A command processing sequence of the READ command will be described with reference to FIG.

(21)イニシエータは、READコマンドを表すORBを作成する。READコマンドを表すORBは、データ数、最大パケット長、転送方向、転送方法等、READコマンドを実行するために必要な情報を定義する。   (21) The initiator creates an ORB representing the READ command. The ORB representing the READ command defines information necessary for executing the READ command, such as the number of data, the maximum packet length, the transfer direction, and the transfer method.

(22)イニシエータは、QWRQ(quadlet write request)パケットをターゲットのAGENT_RESETレジスタに書き込み、初期化させる。なお、AGENT_RESETレジスタは、ターゲットのCSR空間に定義されている。   (22) The initiator writes a QWRQ (quadlet write request) packet to the target AGENT_RESET register and initializes it. The AGENT_RESET register is defined in the target CSR space.

(23)ターゲットは、イニシエータからのQWRQパケットに応答して、WRSパケットをイニシエータに返す。   (23) In response to the QWRQ packet from the initiator, the target returns a WRS packet to the initiator.

(24)イニシエータは、BWRQパケットを発行することにより、ORBを格納しているメモリのアドレスをORB_POINTERレジスタに書き込む。なお、ORB_POINTERレジスタは、ターゲットのCSR空間に定義されている。   (24) The initiator writes the address of the memory storing the ORB to the ORB_POINTER register by issuing a BWRQ packet. The ORB_POINTER register is defined in the target CSR space.

(25)ターゲットは、イニシエータからのBWRQに応答して、WRSをイニシエータに返す。   (25) In response to BWRQ from the initiator, the target returns WRS to the initiator.

(26)ターゲットは、BRRQパケットを発行して、イニシエータがORBをターゲットに送信することを要求する。ORBは、ORB_POINTERレジスタに格納されたアドレス、すなわち、イニシエータにおけるそのメモリアドレスに位置している。   (26) The target issues a BRRQ packet to request that the initiator send an ORB to the target. The ORB is located at the address stored in the ORB_POINTER register, that is, its memory address in the initiator.

(27)イニシエータは、ターゲットからのBRRQパケットに応答して、BRRSパケットをターゲットに返す。BRRSパケットのデータフィールドにはORBが格納されている。このようにして、ORBがイニシエータからターゲットに送信される。   (27) In response to the BRRQ packet from the target, the initiator returns a BRRS packet to the target. The ORB is stored in the data field of the BRRS packet. In this way, the ORB is transmitted from the initiator to the target.

(28)ターゲットは、イニシエータからORBを受信し、受信したORBの内容を解析する。   (28) The target receives the ORB from the initiator and analyzes the content of the received ORB.

(29)ターゲットは、受信したORBがREADコマンドを表すことがわかると、READコマンドを実行する。READコマンドの実行により、以下の(30)、(31)が繰り返される。これは、転送すべきデータのサイズが大きい場合には、そのデータを複数のパケットに分割して転送するためである。転送すべきデータは、ターゲットによって用意される。   (29) When it is found that the received ORB represents the READ command, the target executes the READ command. By executing the READ command, the following (30) and (31) are repeated. This is because when the size of data to be transferred is large, the data is divided into a plurality of packets and transferred. The data to be transferred is prepared by the target.

(30)ターゲットは、BWRQパケットを発行して、ORBによって指定されるアドレスにデータを格納する。   (30) The target issues a BWRQ packet and stores data at the address specified by the ORB.

(31)イニシエータは、ターゲットからのBWRQパケットに応答して、WRSパケットをターゲットに返す。処理(30)及び(31)は1つのトランザクションを構成する。1つのトランザクションが正常に終了したことが確認された後に、次のトランザクションが実行される。   (31) In response to the BWRQ packet from the target, the initiator returns a WRS packet to the target. Processes (30) and (31) constitute one transaction. After confirming that one transaction has been completed normally, the next transaction is executed.

(32)データ転送処理シーケンスが正常に終了した後、ターゲットは、READコマンドの実行結果を示すステータス情報を作成する。   (32) After the data transfer processing sequence ends normally, the target creates status information indicating the execution result of the READ command.

(33)ターゲットは、BWRQパケットを発行することにより、ステータス情報をイニシエータに送信する。ステータス情報は、ORBによって指定される所定のアドレスに格納される。   (33) The target sends status information to the initiator by issuing a BWRQ packet. The status information is stored at a predetermined address designated by the ORB.

(34)イニシエータは、ターゲットからのBWRQパケットに応答して、WRSパケットをターゲットに返す。   (34) In response to the BWRQ packet from the target, the initiator returns a WRS packet to the target.

(35)ターゲットは、イニシエータからのWRSパケットのrCodeがresp_completeであるか否かを判定する。イニシエータからのWRSパケットのrCodeがresp_completeである場合には、READコマンドに関する一連のコマンド処理シーケンスが完了する。   (35) The target determines whether or not the rCode of the WRS packet from the initiator is resp_complete. When the rCode of the WRS packet from the initiator is resp_complete, a series of command processing sequences related to the READ command is completed.

なお、図には示されていないが、図9,10において、ターゲットは、イニシエータからのパケットを受信すると、ACK(Acknowledge)パケットをイニシエータに返す。同様に、イニシエータは、ターゲットからのパケットを受信すると、ACKパケットをターゲットに返す。   Although not shown in the figure, in FIGS. 9 and 10, when receiving a packet from the initiator, the target returns an ACK (Acknowledge) packet to the initiator. Similarly, when the initiator receives a packet from the target, the initiator returns an ACK packet to the target.

イニシエータ及びターゲットは、書き込み要求パケット(例えば、BWRQパケットやQWRQパケット)の受信に成功した場合には、パケットの受信に成功したことを示す“Ack_complete”というコードを有するACKパケットを返す。この場合、WRSパケットを返さず、次の処理に進む。イニシエータ及びターゲットは、“Ack_pending”というコードを有するACKパケットを返す場合には、WRSパケットを返す。また、イニシエータ及びターゲットは、パケットを受信することができない状態である場合には、パケットを受信することができない状態であることを示す“Ack_busy”というコードを有するACKパケットを返す。データ転送シーケンスにおいて、ターゲットからのBWRQパケットに対してイニシエータが“Ack_busy”というコードを有するACKパケットをターゲットに返した場合には、ターゲットはBWRQパケットをイニシエータに再送信する。   When the initiator and the target successfully receive a write request packet (for example, a BWRQ packet or a QWRQ packet), the initiator and the target return an ACK packet having a code “Ack_complete” indicating that the packet has been successfully received. In this case, the WRS packet is not returned and the process proceeds to the next process. When the initiator and the target return an ACK packet having the code “Ack_pending”, the initiator and the target return a WRS packet. When the initiator and the target cannot receive the packet, the initiator and the target return an ACK packet having a code “Ack_busy” indicating that the packet cannot be received. In the data transfer sequence, when the initiator returns an ACK packet having a code “Ack_busy” to the BWRQ packet from the target, the target retransmits the BWRQ packet to the initiator.

以上のようにして、イニシエータとターゲットとの間でデータ転送処理を行うことができる。SBP−2では、1つのバス上で、ターゲット1台に対してイニシエータを最大63台接続することが可能である。   As described above, data transfer processing can be performed between the initiator and the target. In SBP-2, a maximum of 63 initiators can be connected to one target on one bus.

図11はSBP−2を処理する従来のシーケンス処理装置90の構成を示すブロック図である。物理層コントローラ91は、IEEE1394バス20の初期化、アービトレーション、バイアス電圧の制御等の機能を有している。リンクコア回路92は、物理層コントローラ91を介してバス20上のパケットを受信する。リンクコア回路92は、パケットに対して誤り検出符号の作成/検出、パケットへの符号の付加、コードの検出(例えば、ACKパケットのコード検出)等を行う。またリンクコア回路92は、物理層コントローラ91を介してパケットをバス20に出力する。更に、リンクコア回路92は、パケットの転送が失敗した場合にそのパケットの転送を再度試みるリトライ機能を有している。   FIG. 11 is a block diagram showing a configuration of a conventional sequence processing device 90 for processing SBP-2. The physical layer controller 91 has functions such as initialization of the IEEE 1394 bus 20, arbitration, and control of a bias voltage. The link core circuit 92 receives a packet on the bus 20 via the physical layer controller 91. The link core circuit 92 creates / detects an error detection code for a packet, adds a code to the packet, detects a code (for example, detects a code of an ACK packet), and the like. The link core circuit 92 outputs the packet to the bus 20 via the physical layer controller 91. Further, the link core circuit 92 has a retry function for retrying the transfer of the packet when the transfer of the packet fails.

パケットフィルタ93は、リンクコア回路92が出力したパケットを受け取り、このパケットのヘッダフィールドの内容を解析する。パケットフィルタ93は、その解析結果に応じて、シーケンス制御回路99又は転送制御回路96に制御信号を与えるとともに、受信パケットをパケット処理回路95に出力する。パケット処理回路95は、シーケンス制御回路99又は転送制御回路96から制御され、入力されたパケットを処理し、コマンド受信バッファ97へのコマンドの出力、又はDMA(direct memory access)バス6を介して受信データの外部への出力を行う。シーケンス制御回路99は、接続された1台のイニシエータに対するコマンド処理シーケンスの実行及び制御を行う。   The packet filter 93 receives the packet output from the link core circuit 92 and analyzes the contents of the header field of this packet. The packet filter 93 gives a control signal to the sequence control circuit 99 or the transfer control circuit 96 according to the analysis result, and outputs the received packet to the packet processing circuit 95. The packet processing circuit 95 is controlled by the sequence control circuit 99 or the transfer control circuit 96, processes the input packet, outputs a command to the command reception buffer 97, or receives it via the DMA (direct memory access) bus 6. Output data to the outside. The sequence control circuit 99 executes and controls a command processing sequence for one connected initiator.

このように、図11の従来のシーケンス処理装置は、1台のイニシエータとの間のコマンド処理シーケンスを行っていた。   As described above, the conventional sequence processing apparatus shown in FIG. 11 performs a command processing sequence with one initiator.

従来のシーケンス処理装置において2台以上のイニシエータのシーケンス処理を行うには、2台目以降のイニシエータに対するシーケンス処理、及びそれぞれのイニシエータの管理を、全てファームウェアで行う必要があった。この場合、CPU(central processing unit)にかかる負荷が非常に大きくなる。   In order to perform the sequence processing of two or more initiators in the conventional sequence processing apparatus, it is necessary to perform all the sequence processing for the second and subsequent initiators and the management of each initiator by firmware. In this case, the load on the CPU (central processing unit) becomes very large.

特に、DVD−RAM等の光ディスク装置によって取り扱われる大量のデータを転送する必要がある場合には、CPUの負荷が飛躍的に増大する。その結果、CPUによって実行されるファームウェアのオーバーヘッドが増大し、IEEE1394方式を採用することによって本来実現されるべき、高速シリアルバスインターフェイスとしての高い実効転送レートを実現することが非常に困難になる。また、ファームウェアにこのような処理を全てさせると、CPUの負荷が大きくなるため、シーケンス処理装置を光ディスク装置等の他のシステムへ組み込むことは不可能であった。   In particular, when it is necessary to transfer a large amount of data handled by an optical disk device such as a DVD-RAM, the load on the CPU increases dramatically. As a result, the overhead of firmware executed by the CPU increases, and it becomes very difficult to realize a high effective transfer rate as a high-speed serial bus interface that should be originally realized by adopting the IEEE 1394 method. Further, if the firmware performs all such processes, the load on the CPU increases, so that it is impossible to incorporate the sequence processing apparatus into another system such as an optical disk apparatus.

このように、従来のシーケンス処理装置は、実際にはイニシエータが1台の場合にしか対応できなかった。このため、拡張性が低く、複数のイニシエータが接続されたネットワーク環境ではあまり効果的に使用することができなかった。   As described above, the conventional sequence processing apparatus can actually cope with only one initiator. For this reason, the expandability is low and it cannot be used effectively in a network environment in which a plurality of initiators are connected.

本発明は、2台以上の機器に対するコマンド処理シーケンスを行うことができるマルチイニシエータ制御装置を提供することを目的とする。   It is an object of the present invention to provide a multi-initiator control apparatus that can perform a command processing sequence for two or more devices.

前記課題を解決するため、請求項1の発明が講じた手段は、伝送路を介して接続された複数の機器の各々との間でパケットを単位として通信を行うマルチイニシエータ制御装置であって、送信すべきパケットを前記伝送路に送信する一方、前記伝送路からパケットを受信し、誤り検出を行って出力するリンクコア回路と、前記リンクコア回路が受信したパケットを解析し、その結果を出力するパケットフィルタと、各々、対応する機器との間のコマンド処理シーケンスを制御する複数のコマンド制御回路と、前記複数のコマンド制御回路のうちの1つにシーケンス実行許可を与えるマルチ制御回路と、前記許可を与えられたコマンド制御回路が出力する情報を有するパケットを前記送信すべきパケットとして生成し、前記リンクコア回路に出力して送信させる一方、前記リンクコア回路が受信して出力したパケットを前記パケットフィルタが出力する解析結果に従って出力するパケット処理回路と、前記パケット処理回路が出力するパケットに含まれるコマンドを実行するCPU(central processing unit)とを備えたものである。   In order to solve the above-mentioned problem, the means taken by the invention of claim 1 is a multi-initiator control apparatus that performs communication in units of packets with each of a plurality of devices connected via a transmission path, While transmitting a packet to be transmitted to the transmission path, receiving the packet from the transmission path, performing error detection and outputting the link core circuit, analyzing the packet received by the link core circuit, and outputting the result A packet filter, a plurality of command control circuits that respectively control a command processing sequence between corresponding devices, a multi-control circuit that grants sequence execution permission to one of the plurality of command control circuits, A packet having information output from the command control circuit to which permission is given is generated as the packet to be transmitted, and is output to the link core circuit. A packet processing circuit for outputting a packet received and output by the link core circuit according to an analysis result output by the packet filter, and a CPU for executing a command included in the packet output by the packet processing circuit (Central processing unit).

請求項1の発明によると、マルチイニシエータ制御装置からパケットを送信し、これに応答して機器が送信するパケットに含まれるコマンドを、マルチイニシエータ制御装置は実行することができる。このようなコマンド処理シーケンスの実行は、コマンド制御回路によって行われるため、CPUがコマンド処理シーケンスの実行に関与することはない。また、マルチイニシエータ制御装置がいずれの機器との間のコマンド処理シーケンスを行うかを、マルチ制御回路が制御する。このため、CPUの負荷を低減することが可能になる。   According to the first aspect of the present invention, the multi-initiator control device can execute a command included in the packet transmitted by the device in response to the transmission of the packet from the multi-initiator control device. Since the execution of such a command processing sequence is performed by the command control circuit, the CPU is not involved in the execution of the command processing sequence. Further, the multi-control circuit controls which device the multi-initiator control apparatus performs a command processing sequence with. For this reason, it becomes possible to reduce the load on the CPU.

また、請求項2の発明では、請求項1に記載のマルチイニシエータ制御装置において、前記複数のコマンド制御回路は、それぞれ、対応する機器が出力し、当該対応する機器との間のコマンド処理シーケンスに必要な情報を格納して、これを前記シーケンス実行許可が与えられると出力するものであり、前記マルチ制御回路は、前記リンクコア回路が受信して出力するパケットに含まれる、当該パケットを送信した機器との間のコマンド処理シーケンスに必要な情報を、前記パケットフィルタの出力に応じて、前記複数のコマンド制御回路のうち当該機器に対応するものに出力して格納させるものであり、前記パケット処理回路は、前記シーケンス実行許可を与えられたコマンド制御回路が出力する情報を有するパケットを生成して出力し、これに応答して当該コマンド制御回路に対応する機器が出力したパケットを、受信して出力するものである。   According to a second aspect of the present invention, in the multi-initiator control device according to the first aspect, each of the plurality of command control circuits is output by a corresponding device, and in a command processing sequence with the corresponding device. The necessary information is stored and output when the sequence execution permission is given. The multi-control circuit transmits the packet included in the packet received and output by the link core circuit. Information necessary for a command processing sequence with the device is output and stored in the command control circuit corresponding to the device according to the output of the packet filter, and the packet processing The circuit generates and outputs a packet having information output from the command control circuit given the sequence execution permission, Packets device is output in response to record corresponding to the command control circuit is configured to receive and output.

請求項2の発明によると、複数のコマンド制御回路を効率よく制御して、コマンド処理シーケンスの一連のトランザクションを処理することができる。   According to the second aspect of the present invention, it is possible to efficiently control a plurality of command control circuits and process a series of transactions in a command processing sequence.

また、請求項3の発明では、請求項1に記載のマルチイニシエータ制御装置において、前記複数のコマンド制御回路は、それぞれ、対応する機器から送信されたコマンドフェッチ要求パケットの情報を格納し、前記マルチ制御回路から前記シーケンス実行許可が与えられた場合に、当該機器に対してコマンドフェッチ動作を行うものである。   According to a third aspect of the present invention, in the multi-initiator control device according to the first aspect, each of the plurality of command control circuits stores information of a command fetch request packet transmitted from a corresponding device, and When the sequence execution permission is given from the control circuit, a command fetch operation is performed on the device.

請求項3の発明によると、コマンド制御回路は、各機器から受け取ったコマンドフェッチ要求パケットの情報を保持しているので、シーケンス実行許可が与えられるとただちにコマンドフェッチ動作に移行することができる。このため、効率的、かつ高速な動作を行うことができる。   According to the invention of claim 3, since the command control circuit holds the information of the command fetch request packet received from each device, the command control circuit can shift to the command fetch operation as soon as the sequence execution permission is given. For this reason, efficient and high-speed operation can be performed.

また、請求項4の発明では、請求項3に記載のマルチイニシエータ制御装置において、前記複数のコマンド制御回路は、それぞれ、データ転送処理シーケンスの実行中であっても、対応する機器からのコマンドフェッチ要求を受け取るものである。   According to a fourth aspect of the present invention, in the multi-initiator control device according to the third aspect, each of the plurality of command control circuits fetches a command from a corresponding device even during execution of a data transfer processing sequence. Receive requests.

請求項4の発明によると、ある機器がコマンド実行中であっても、他の機器のコマンドフェッチ要求を処理することができる。このため、コマンド処理の状態に関係なく、それぞれの機器からのアクセスに対応することができる。   According to the invention of claim 4, even if a certain device is executing a command, a command fetch request of another device can be processed. Therefore, it is possible to cope with access from each device regardless of the command processing state.

また、請求項5の発明では、請求項1に記載のマルチイニシエータ制御装置において、前記複数のコマンド制御回路は、それぞれ、コマンド処理シーケンスを行うためのアドレスを格納するレジスタを有するものであり、前記レジスタのアドレスは、当該レジスタが属するコマンド制御回路の対応する機器のノード番号に応じて、前記複数のコマンド制御回路のうちの基準とするもののレジスタのアドレスを、所定の値を単位としてアドレス拡張して得られたものである。   According to a fifth aspect of the present invention, in the multi-initiator control device according to the first aspect, each of the plurality of command control circuits includes a register for storing an address for performing a command processing sequence, The address of the register is an address expansion of the register address of the reference of the plurality of command control circuits in units of a predetermined value according to the node number of the corresponding device of the command control circuit to which the register belongs. It was obtained.

請求項5の発明によると、基準とするコマンド制御回路のレジスタのアドレスをアドレス拡張し、レジスタのアドレスを求めるため、接続される機器が複数の場合であっても、それぞれの機器がアクセスするレジスタのアドレスをCPUが管理する必要がない。このため、CPUの負荷が低減され、機器が1台の場合と同様に高速に動作することができる。   According to the invention of claim 5, since the address of the register of the command control circuit as a reference is expanded and the address of the register is obtained, even if there are a plurality of devices connected, the registers accessed by each device It is not necessary for the CPU to manage the addresses. For this reason, the load on the CPU is reduced, and it is possible to operate at high speed as in the case of a single device.

また、請求項6の発明では、請求項1に記載のマルチイニシエータ制御装置において、前記マルチ制御回路は、コマンド処理シーケンスが終了する毎に前記複数の機器から1つを所定の順で選択して、前記複数のコマンド制御回路のうち選択された機器に対応したものに前記シーケンス実行許可を与えるものである。   According to a sixth aspect of the present invention, in the multi-initiator control device according to the first aspect, the multi-control circuit selects one of the plurality of devices in a predetermined order every time a command processing sequence is completed. The sequence execution permission is given to the command control circuit corresponding to the selected device.

請求項6の発明によると、接続されている各機器について順にコマンド実行許可を与えるか否かを判定するので、機器間のコマンド実行頻度のばらつきを小さくし、コマンドを実行する機会が一部の機器に偏らないようにすることができる。   According to the invention of claim 6, since it is determined whether or not the command execution permission is given to each connected device in order, the variation in the command execution frequency between the devices is reduced, and the opportunity to execute the command is partially It is possible to avoid biasing to the equipment.

また、請求項7の発明は、請求項1に記載のマルチイニシエータ制御装置において、前記パケット処理回路が当該マルチイニシエータ制御装置の外部との間で行うデータ転送の制御を行う転送制御回路を更に備え、前記パケット処理回路は、前記パケットフィルタが出力するパケットから転送すべきデータを取り出して前記転送制御回路に出力する一方、前記転送制御回路に転送されて来たデータからパケットを生成して前記リンクコア回路に出力するものである。   The invention according to claim 7 is the multi-initiator control device according to claim 1, further comprising a transfer control circuit for controlling data transfer performed by the packet processing circuit to / from the outside of the multi-initiator control device. The packet processing circuit extracts data to be transferred from the packet output from the packet filter and outputs the data to the transfer control circuit, while generating a packet from the data transferred to the transfer control circuit to generate the link It is output to the core circuit.

請求項7の発明によると、データ転送処理シーケンスは転送制御回路によって制御されるため、CPUがデータ転送処理シーケンスの実行に関与することはない。このため、データ転送処理シーケンスの実行中におけるCPUの負荷を低減し、データ転送を高速に行うことができる。   According to the invention of claim 7, since the data transfer processing sequence is controlled by the transfer control circuit, the CPU is not involved in the execution of the data transfer processing sequence. For this reason, it is possible to reduce the load on the CPU during execution of the data transfer processing sequence and perform data transfer at high speed.

また、請求項8の発明は、請求項1に記載のマルチイニシエータ制御装置において、前記CPUが前記複数のコマンド制御回路にシーケンス実行許可を与えることができるように構成されているものである。   The invention according to claim 8 is the multi-initiator control device according to claim 1, wherein the CPU can give a sequence execution permission to the plurality of command control circuits.

請求項8の発明によると、CPUがコマンドフェッチの動作タイミングを制御することが可能なため、ファームウェアからのシーケンス制御に対する自由度が増し、ファームウェアの仕様に同期化させてシーケンス処理を行うことが可能となる。   According to the invention of claim 8, since the CPU can control the operation timing of the command fetch, the degree of freedom for the sequence control from the firmware is increased, and the sequence processing can be performed in synchronization with the specification of the firmware. It becomes.

また、請求項9の発明は、請求項1に記載のマルチイニシエータ制御装置において、前記複数の機器のそれぞれのノード番号と、ノード番号を識別するためのフィールドにおけるビットの位置とが対応付けられており、前記機器のそれぞれを、前記フィールドにおけるビットの位置で識別するように構成されているものである。   The invention according to claim 9 is the multi-initiator control device according to claim 1, wherein each node number of the plurality of devices is associated with a bit position in a field for identifying the node number. Each of the devices is configured to be identified by a bit position in the field.

請求項9の発明によると、各機器のノード番号を1ビットで簡潔に表現するため、より多くの機器が接続された場合であっても、機器の管理を小規模の回路で行うことが可能となる。   According to the invention of claim 9, since the node number of each device is expressed concisely by 1 bit, it is possible to manage the device with a small circuit even when more devices are connected. It becomes.

また、請求項10の発明は、伝送路を介して接続された複数の機器の各々との間でパケットを単位として通信を行うマルチイニシエータ制御方法であって、前記複数の機器のうちの1つからコマンドフェッチ要求を受けたことを記憶しているか否かを判定するステップと、コマンドフェッチ要求を受けたことを記憶していると判定したときは、当該機器からコマンドをフェッチして実行するステップとを備え、前記複数の機器から1つを所定の順で選択することを繰り返し、選択された機器について前記判定を行うステップと前記コマンドを実行するステップとを行うものである。   The invention of claim 10 is a multi-initiator control method for communicating with each of a plurality of devices connected via a transmission path in units of packets, and one of the plurality of devices. A step of determining whether or not a command fetch request has been received from the device and a step of fetching and executing a command from the device when determining that the command fetch request has been received And repeatedly selecting one of the plurality of devices in a predetermined order, and performing the determination on the selected device and the step of executing the command.

請求項10の発明によると、接続されている各機器について順にコマンド実行許可を与えるか否かを判定するので、コマンドを実行する機会が一部の機器に偏らないようにすることができる。   According to the invention of claim 10, since it is determined whether or not the command execution permission is given to each connected device in order, the opportunity to execute the command can be prevented from being biased to some devices.

以上のように、本発明によると、複数のイニシエータを接続した場合でもCPUの負荷を大きくすることがないので、複数のイニシエータを接続し、かつ、データ転送を高速に行うことができるマルチイニシエータ制御装置及び方法を提供することができる。   As described above, according to the present invention, even when a plurality of initiators are connected, the load on the CPU is not increased. Therefore, multi-initiator control capable of connecting a plurality of initiators and performing data transfer at high speed. Apparatus and methods can be provided.

以下、本発明の実施の形態について、図面を参照しながら説明する。なお、ここで示す実施の形態によって本発明の技術的範囲が限定されるものではない。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. The technical scope of the present invention is not limited by the embodiment shown here.

図1は、本発明の実施形態に係るマルチイニシエータ制御装置を用いたデータ転送システムのブロック図である。図1のデータ転送システムは、光ディスクドライブ1と、光ディスクドライブ1に接続されている、機器としてのイニシエータ11,12,13とを備えている。イニシエータ11〜13は、例えばパーソナルコンピュータ(PC)である。光ディスクドライブ1は、ターゲットとしてのマルチイニシエータ制御装置2と、DVD−RAMコントローラ3と、ヘッド4と、DVD−RAMディスク5とを備えている。   FIG. 1 is a block diagram of a data transfer system using a multi-initiator control device according to an embodiment of the present invention. The data transfer system in FIG. 1 includes an optical disk drive 1 and initiators 11, 12, and 13 connected to the optical disk drive 1 as devices. The initiators 11 to 13 are, for example, personal computers (PCs). The optical disk drive 1 includes a multi-initiator control device 2 as a target, a DVD-RAM controller 3, a head 4, and a DVD-RAM disk 5.

各イニシエータ11,12,13とマルチイニシエータ制御装置2との間は、それぞれ伝送路としてのIEEE1394シリアルバス(以下では単にバスと称する)21,22,23を介して接続されている。マルチイニシエータ制御装置2は、DMAバス6を介してDVD−RAMコントローラ3に接続されている。DVD−RAMコントローラ3は、ヘッド4を介してDVD−RAMディスク5から読み出されたデータに復調等の信号処理を行い、マルチイニシエータ制御装置2に転送し、また、マルチイニシエータ制御装置2から転送されてきたデータに変調等の信号処理を行い、ヘッド4を介してDVD−RAMディスク5に書き込む。   The initiators 11, 12, and 13 and the multi-initiator control device 2 are connected via IEEE1394 serial buses (hereinafter simply referred to as buses) 21, 22, and 23 as transmission paths, respectively. The multi-initiator control device 2 is connected to the DVD-RAM controller 3 via the DMA bus 6. The DVD-RAM controller 3 performs signal processing such as demodulation on the data read from the DVD-RAM disk 5 via the head 4, transfers the data to the multi-initiator control device 2, and transfers from the multi-initiator control device 2. The received data is subjected to signal processing such as modulation and written to the DVD-RAM disk 5 via the head 4.

図2は、本発明の実施形態に係る図1のマルチイニシエータ制御装置のブロック図である。図2において、マルチイニシエータ制御装置2は、CPU31と、物理層コントローラ(PHY)41と、リンクコア回路(LINK)42と、パケットフィルタ43と、マルチ制御回路44と、パケット処理回路45と、転送制御回路46と、コマンド受信バッファ47と、制御レジスタ48と、コマンド制御回路51,52,53とを備えている。   FIG. 2 is a block diagram of the multi-initiator control device of FIG. 1 according to the embodiment of the present invention. In FIG. 2, the multi-initiator control device 2 includes a CPU 31, a physical layer controller (PHY) 41, a link core circuit (LINK) 42, a packet filter 43, a multi-control circuit 44, a packet processing circuit 45, and a transfer. A control circuit 46, a command reception buffer 47, a control register 48, and command control circuits 51, 52, and 53 are provided.

図2において、CPU31、リンクコア回路42、マルチ制御回路44、転送制御回路46、コマンド制御回路51〜53は、制御レジスタ48に対してデータの書き込み、読み出しをすることができる。また、パケットフィルタ43は、制御レジスタ48の内容を読み出しすることができる。以下では例として、SBP−2(serial bus protocol-2)をプロトコルとして用いて、イニシエータとターゲットとの間でデータ転送を行うものとして説明する。   In FIG. 2, the CPU 31, the link core circuit 42, the multi control circuit 44, the transfer control circuit 46, and the command control circuits 51 to 53 can write / read data to / from the control register 48. The packet filter 43 can read the contents of the control register 48. In the following, as an example, it is assumed that data transfer is performed between an initiator and a target using SBP-2 (serial bus protocol-2) as a protocol.

物理層コントローラ41は、バス21〜23の初期化、アービトレーション、バイアス電圧の制御等の機能を有している。物理層コントローラ41は、バス21〜23上の電気信号をパケットに変換してリンクコア回路42に出力したり、リンクコア回路42から受け取ったパケットを電気信号に変換してバス21〜23に出力する。   The physical layer controller 41 has functions such as initialization of the buses 21 to 23, arbitration, and control of the bias voltage. The physical layer controller 41 converts the electrical signals on the buses 21 to 23 into packets and outputs them to the link core circuit 42, or converts the packets received from the link core circuit 42 into electrical signals and outputs them to the buses 21 to 23 To do.

リンクコア回路42は、物理層コントローラ41からパケットを受信する。リンクコア回路42は、受信したパケットに対して誤り検出符号の検出、コードの検出(例えば、ACKパケットのコード検出)等を行った後、パケットフィルタ43及びパケット処理回路45に出力する。また、リンクコア回路42は、パケット処理回路45から受け取った、送信すべきパケットに対する誤り検出符号の作成及び付加を行い、物理層コントローラ41に送信する。更に、リンクコア回路42は、パケットの転送に失敗した場合に、そのパケットの転送を再度試みるリトライ機能を有している。   The link core circuit 42 receives a packet from the physical layer controller 41. The link core circuit 42 performs error detection code detection, code detection (for example, code detection of an ACK packet), and the like on the received packet, and then outputs the packet to the packet filter 43 and the packet processing circuit 45. Further, the link core circuit 42 creates and adds an error detection code to the packet to be transmitted received from the packet processing circuit 45 and transmits the error detection code to the physical layer controller 41. Further, the link core circuit 42 has a retry function for retrying the transfer of the packet when the transfer of the packet fails.

パケットフィルタ43は、リンクコア回路42からパケットを受け取り、そのパケットのヘッダフィールドの内容を解析する。パケットフィルタ43は、その解析結果に応じて、このパケットをコマンド受信バッファ47に格納するべきか否かを決定し、パケット処理回路45に通知する。また、パケットフィルタ43は、受信したパケットの送信元のイニシエータのノード番号をエンコードし、マルチ制御回路44及び転送制御回路46に制御信号として出力する。更に、パケットフィルタ43は、受け取ったパケットに含まれる情報をマルチ制御回路44及び転送制御回路46に出力する。   The packet filter 43 receives a packet from the link core circuit 42 and analyzes the contents of the header field of the packet. The packet filter 43 determines whether or not to store this packet in the command reception buffer 47 according to the analysis result, and notifies the packet processing circuit 45 of it. Further, the packet filter 43 encodes the node number of the initiator of the received packet and outputs it as a control signal to the multi-control circuit 44 and the transfer control circuit 46. Further, the packet filter 43 outputs information included in the received packet to the multi-control circuit 44 and the transfer control circuit 46.

マルチ制御回路44は、リンクコア回路42が受信したパケットに含まれる情報をパケットフィルタ43から受け取り、パケットフィルタ43が出力する制御信号に応じて、コマンド制御回路51〜53に格納させる。また、マルチ制御回路44は、コマンド制御回路51〜53のうちの1つにシーケンス実行許可を与え、許可を与えられたコマンド制御回路が出力する情報をパケット処理回路45に出力する。   The multi-control circuit 44 receives information included in the packet received by the link core circuit 42 from the packet filter 43 and stores it in the command control circuits 51 to 53 in accordance with a control signal output from the packet filter 43. The multi-control circuit 44 grants sequence execution permission to one of the command control circuits 51 to 53, and outputs information output from the command control circuit to which permission is given to the packet processing circuit 45.

パケット処理回路45は、マルチ制御回路44の制御の下で動作し、パケットフィルタ43がコマンド受信バッファ47に格納するべきであると決定したパケットをコマンド受信バッファ47に格納させる。コマンド受信バッファ47に格納されたパケットは、CPU31から読み出し可能な状態となる。また、パケット処理回路45は、マルチ制御回路44から受け取った情報を含むパケットを生成し、送信すべきパケットとしてリンクコア回路42に出力する。   The packet processing circuit 45 operates under the control of the multi-control circuit 44 and causes the command reception buffer 47 to store a packet that the packet filter 43 has determined to be stored in the command reception buffer 47. The packet stored in the command reception buffer 47 becomes readable from the CPU 31. Further, the packet processing circuit 45 generates a packet including information received from the multi-control circuit 44, and outputs the packet to the link core circuit 42 as a packet to be transmitted.

転送制御回路46は、CPU31が出力するREAD/WRITE等の転送コマンド実行要求を、制御レジスタ48を介して受け取り、パケット処理回路45とDVD−RAMコントローラ3との間でパケットを転送する。   The transfer control circuit 46 receives a transfer command execution request such as READ / WRITE output from the CPU 31 via the control register 48, and transfers the packet between the packet processing circuit 45 and the DVD-RAM controller 3.

例えば、READコマンドを実行する場合には、転送制御回路46は、CPU31からの実行要求に基づいて、DVD−RAMディスク5に記録されたデータをDVD−RAMコントローラ3及びDMAバス6を介して読み出し、パケット処理回路45に出力する。パケット処理回路45は、転送制御回路46から受け取ったデータを分割して複数のパケットに格納し、これらのパケットをリンクコア回路42及び物理層コントローラ41を介してバス21〜23に出力する。   For example, when executing the READ command, the transfer control circuit 46 reads out the data recorded on the DVD-RAM disk 5 via the DVD-RAM controller 3 and the DMA bus 6 based on the execution request from the CPU 31. , Output to the packet processing circuit 45. The packet processing circuit 45 divides the data received from the transfer control circuit 46 and stores it in a plurality of packets, and outputs these packets to the buses 21 to 23 via the link core circuit 42 and the physical layer controller 41.

また、WRITEコマンドを実行する場合には、パケット処理回路45は、バス21〜23から物理層コントローラ41及びリンクコア回路42を介してパケットを受け取り、パケットからデータを取り出して転送制御回路46に出力する。転送制御回路46は、受け取ったデータをDMAバス6を介してDVD−RAMコントローラ3に出力し、DVD−RAMディスク5に記録させる。このようなパケット生成処理及びパケット転送処理は、転送制御回路46によって制御される。   When executing the WRITE command, the packet processing circuit 45 receives a packet from the buses 21 to 23 via the physical layer controller 41 and the link core circuit 42, extracts data from the packet, and outputs it to the transfer control circuit 46. To do. The transfer control circuit 46 outputs the received data to the DVD-RAM controller 3 via the DMA bus 6 and records it on the DVD-RAM disk 5. Such packet generation processing and packet transfer processing are controlled by the transfer control circuit 46.

このように、転送制御回路46がデータ転送処理シーケンスを行うので、CPU31がデータ転送処理シーケンスの実行に関与することはない。このため、データ転送処理シーケンスにおけるCPU31の負荷を低減することが可能になり、IEEE1394に準拠した高速データ転送を実現することができる。   Thus, since the transfer control circuit 46 performs the data transfer processing sequence, the CPU 31 is not involved in the execution of the data transfer processing sequence. For this reason, it is possible to reduce the load on the CPU 31 in the data transfer processing sequence, and high-speed data transfer conforming to IEEE 1394 can be realized.

IEEE1394では、転送速度に応じて1パケットで転送可能なデータ長(最大ペイロードサイズ)が規定されている。本実施形態では、転送速度はS400(転送速度約400Mbit/sec)であるとし、この場合、1パケットで転送可能なデータ長は2048バイトである。   In IEEE 1394, a data length (maximum payload size) that can be transferred in one packet is defined according to the transfer rate. In this embodiment, it is assumed that the transfer rate is S400 (transfer rate of about 400 Mbit / sec). In this case, the data length that can be transferred in one packet is 2048 bytes.

コマンド制御回路51,52,53は、それぞれイニシエータ11,12,13に対応しており、対応するイニシエータからコマンドフェッチ要求を受け取って、そのイニシエータとの間のコマンド処理シーケンスを制御する。マルチ制御回路44は、コマンド制御回路51〜53のシーケンス実行を管理している。マルチ制御回路44及びコマンド制御回路51〜53は、SBP−2におけるコマンド処理シーケンスに必要なエージェントレジスタ(AGENT_REGISTER)を有している。   The command control circuits 51, 52, and 53 correspond to the initiators 11, 12, and 13, respectively, receive a command fetch request from the corresponding initiator, and control a command processing sequence with the initiator. The multi control circuit 44 manages the sequence execution of the command control circuits 51 to 53. The multi-control circuit 44 and the command control circuits 51 to 53 have an agent register (AGENT_REGISTER) necessary for a command processing sequence in SBP-2.

図3は、図2のマルチ制御回路44及びコマンド制御回路51のレジスタについての説明図である。コマンド制御回路52,53のレジスタの構成は、コマンド制御回路51と同様であるので図示を省略する。   FIG. 3 is an explanatory diagram of the registers of the multi-control circuit 44 and the command control circuit 51 in FIG. Since the register configuration of the command control circuits 52 and 53 is the same as that of the command control circuit 51, the illustration is omitted.

マルチ制御回路44は、エージェントレジスタとして、MANAGEMENT_AGENTレジスタR10を有している。MANAGEMENT_AGENTレジスタR10は、LOGIN等のマネージメント系のコマンドをフェッチするためのアドレスを格納する。コマンド制御回路51は、エージェントレジスタとしてAGENT_STATEレジスタR11、AGENT_RESETレジスタR12、ORB_POINTERレジスタR13、DOORBELLレジスタR14及びUNSOLICITED_STATUSレジスタR15を有している。コマンド制御回路52,53も同様のレジスタを有している。コマンド制御回路51〜53のレジスタは、コマンド系のコマンドをフェッチするためのアドレス等を格納する。   The multi-control circuit 44 has a MANAGEMENT_AGENT register R10 as an agent register. The MANAGEMENT_AGENT register R10 stores an address for fetching a management command such as LOGIN. The command control circuit 51 includes an AGENT_STATE register R11, an AGENT_RESET register R12, an ORB_POINTER register R13, a DOORBELL register R14, and an UNSOLICITED_STATUS register R15 as agent registers. The command control circuits 52 and 53 have similar registers. The registers of the command control circuits 51 to 53 store addresses and the like for fetching command commands.

コマンド制御回路51〜53は、それぞれ、対応するイニシエータ11〜13との間のコマンド処理シーケンスに必要な情報を格納する。このような情報には、イニシエータ11〜13のうち対応するものが出力するコマンドフェッチ要求パケットの情報と、DOORBELLレジスタへのアクセスがあったことを示す情報とがある。   The command control circuits 51 to 53 store information necessary for the command processing sequence with the corresponding initiators 11 to 13, respectively. Such information includes command fetch request packet information output by the corresponding one of the initiators 11 to 13 and information indicating that the DOORBELL register has been accessed.

コマンド制御回路51〜53は、それぞれの対応するイニシエータ11〜13からコマンドフェッチ要求パケットの情報を受信して保持し、マルチ制御回路44からシーケンス実行許可が得られていないパケットの情報をキューイング、すなわち、未処理のコマンドをキューイングすることができる。コマンドフェッチ要求パケットは、例えばBWRQパケット、QWRQパケットであって、BWRQパケットの場合は、コマンドフェッチ対象のアドレスを含んでいる。   The command control circuits 51 to 53 receive and hold the information of the command fetch request packet from the corresponding initiators 11 to 13 and queue the information of the packet for which the sequence execution permission is not obtained from the multi-control circuit 44. That is, unprocessed commands can be queued. The command fetch request packet is, for example, a BWRQ packet or a QWRQ packet. In the case of a BWRQ packet, the command fetch request packet includes an address to be command fetched.

イニシエータ11〜13が、コマンド制御回路51〜53のそれぞれに対してコマンドフェッチ要求を行う際のアクセス方法としては、次の2種類がある。すなわち、BWRQパケットを用いてコマンドフェッチ対象のアドレス(ORB(operation request block)の格納先のアドレス)を書き込むORB_POINTERレジスタへのアクセスと、QWRQパケットを用いたDOORBELLレジスタへのアクセスとである。コマンド制御回路51は、コマンドフェッチ対象のアドレスをORB_POINTERレジスタR13に格納し、DOORBELLレジスタR14へのアクセスがあった場合には、アクセスがあったことを記憶、すなわち、このアクセスがあったことを示す情報を格納する。コマンド制御回路52,53に関しても同様である。   There are the following two types of access methods when the initiators 11 to 13 issue a command fetch request to each of the command control circuits 51 to 53. That is, an access to the ORB_POINTER register for writing the command fetch target address (ORB (operation request block storage address)) using the BWRQ packet and an access to the DOORBELL register using the QWRQ packet. The command control circuit 51 stores the command fetch target address in the ORB_POINTER register R13, and if there is an access to the DOORBELL register R14, it stores that there is an access, that is, indicates that this access has occurred. Store information. The same applies to the command control circuits 52 and 53.

図4は、アドレス拡張についての説明図である。コマンド制御回路51の各エージェントレジスタのアドレスは、ベースアドレス(Base Address)を基準とし、これにそれぞれ所定の値を加算したアドレスに設定しておく。ベースアドレスは、コマンド制御回路51のAGENT_STATEレジスタR11のアドレスである。コマンド制御回路52の各エージェントレジスタのアドレスは、コマンド制御回路51の同種のレジスタのアドレスにそれぞれ20h(hは16進数表示を表す)を加算したアドレスとし、コマンド制御回路53の各エージェントレジスタのアドレスは、コマンド制御回路51の同種のレジスタのアドレスにそれぞれ40hを加算したアドレスとしておく。すなわち、コマンド制御回路51,52,53のレジスタのアドレス領域は、それぞれベースアドレス、ベースアドレス+20h、ベースアドレス+40hから始まる。   FIG. 4 is an explanatory diagram of address expansion. The address of each agent register of the command control circuit 51 is set to an address obtained by adding a predetermined value to the base address (Base Address). The base address is the address of the AGENT_STATE register R11 of the command control circuit 51. The address of each agent register of the command control circuit 52 is an address obtained by adding 20h (h represents a hexadecimal number) to the address of the same type of register of the command control circuit 51, and the address of each agent register of the command control circuit 53. Is an address obtained by adding 40h to the address of the register of the same kind in the command control circuit 51. That is, the address areas of the registers of the command control circuits 51, 52, and 53 start from the base address, base address + 20h, and base address + 40h, respectively.

パケットフィルタ43は、コマンド処理シーケンスにおいて、イニシエータ11〜13から受信したパケットを解析し、パケットの送信元のイニシエータがアクセスしてきたアドレスとエージェントレジスタのアドレスとを比較し、マルチ制御回路44に通知する。   The packet filter 43 analyzes the packet received from the initiators 11 to 13 in the command processing sequence, compares the address accessed by the initiator of the packet source with the address of the agent register, and notifies the multi-control circuit 44 of it. .

また、パケットフィルタ43は、LOGINしているイニシエータのノード番号に対応付けて、例えば20h間隔でアドレス拡張して受信パケットを解析し、その結果を制御信号としてマルチ制御回路44に出力する。パケットフィルタ43には、CPU31からベースアドレス及びイニシエータ11〜13のノード番号が予め設定されている。   Further, the packet filter 43 analyzes the received packet by expanding the address at intervals of 20 h, for example, in association with the node number of the initiator that is LOGIN, and outputs the result to the multi-control circuit 44 as a control signal. In the packet filter 43, the base address and the node numbers of the initiators 11 to 13 are set in advance from the CPU 31.

パケットフィルタ43は、パケットの送信元がイニシエータ11である場合は、そのノード番号に基づき、アドレス拡張を行わない。この場合、パケットフィルタ43は、ベースアドレスから決定されるエージェントレジスタのアドレスと受信したアドレスとを比較し、アクセスされるレジスタを示す制御信号を生成して、マルチ制御回路44に出力する。また、パケットフィルタ43は、パケットの送信元がイニシエータ12である場合は、そのノード番号に基づき、イニシエータ11のベースアドレスに20hを加算したアドレスから決定されるエージェントレジスタのアドレスと受信したアドレスとを比較し、アクセスされるレジスタを示す制御信号を生成して、マルチ制御回路44に出力する。更に、パケットフィルタ43は、パケットの送信元がイニシエータ13である場合は、そのノード番号に基づき、イニシエータ11のベースアドレスに40hを加算したアドレスから決定されるエージェントレジスタのアドレスと受信したアドレスとを比較し、アクセスされるレジスタを示す制御信号を生成して、マルチ制御回路44に出力する。   When the packet transmission source is the initiator 11, the packet filter 43 does not perform address expansion based on the node number. In this case, the packet filter 43 compares the agent register address determined from the base address with the received address, generates a control signal indicating the accessed register, and outputs it to the multi-control circuit 44. Further, when the packet transmission source is the initiator 12, the packet filter 43 determines the agent register address determined from the address obtained by adding 20 h to the base address of the initiator 11 and the received address based on the node number. A control signal indicating the register to be accessed is generated and output to the multi-control circuit 44. Further, when the packet transmission source is the initiator 13, the packet filter 43 determines the agent register address determined from the address obtained by adding 40 h to the base address of the initiator 11 and the received address based on the node number. A control signal indicating the register to be accessed is generated and output to the multi-control circuit 44.

マルチ制御回路44は、コマンド制御回路51〜53のレジスタのうちパケットフィルタ43が出力する制御信号で示されたものにアクセスして、コマンドフェッチ要求パケットの情報を必要に応じて格納させる。   The multi-control circuit 44 accesses the register indicated by the control signal output from the packet filter 43 among the registers of the command control circuits 51 to 53, and stores the command fetch request packet information as necessary.

このようにエージェントレジスタのアドレスを管理することにより、CPU31からのアドレス管理が簡潔になる。受信したパケットの送信元のイニシエータのノード番号からアドレスを求めるので、IEEE1394規格で1つのローカルバスに対して接続可能な最大のノード数である63ノードのイニシエータを接続した場合であっても、エージェントレジスタのアドレス管理のために回路規模を大きくする必要がない。なお、ベースアドレスからのアドレス拡張を20h単位で行う場合について説明したが、アドレス拡張の単位は他の値としてもよい。   By managing the address of the agent register in this way, address management from the CPU 31 is simplified. Since the address is obtained from the node number of the initiator of the transmission source of the received packet, even if the initiator of 63 nodes, which is the maximum number of nodes that can be connected to one local bus according to the IEEE 1394 standard, is connected, the agent There is no need to increase the circuit scale for register address management. Although the case where the address expansion from the base address is performed in units of 20h has been described, the unit of address expansion may be another value.

図5は、イニシエータのノード番号の管理方法を示す説明図である。本実施形態においては、マルチイニシエータ制御装置2に接続されているイニシエータの数は3台であるので、これらを3ビットのフィールドで識別することとする。すなわち、ビットN1が“1”であるとき、イニシエータ11を示し、同様にビットN2又はN3が“1”であるとき、それぞれイニシエータ12又は13を示しているものとする。   FIG. 5 is an explanatory diagram showing a method of managing the node number of the initiator. In the present embodiment, since the number of initiators connected to the multi-initiator control device 2 is three, these are identified by a 3-bit field. That is, when the bit N1 is “1”, the initiator 11 is indicated. Similarly, when the bit N2 or N3 is “1”, the initiator 12 or 13 is indicated, respectively.

例えば、イニシエータ11,12,13のノード番号がそれぞれffc0h,ffc1h,ffc2hであるとし、受信したパケットにノード番号ffc0hが指定されているとする。この場合、パケットフィルタ43は、“001”をマルチ制御回路44に出力して、パケットがイニシエータ11から送られて来たことを通知する。   For example, it is assumed that the node numbers of the initiators 11, 12, and 13 are ffc0h, ffc1h, and ffc2h, respectively, and the node number ffc0h is specified in the received packet. In this case, the packet filter 43 outputs “001” to the multi-control circuit 44 to notify that the packet has been sent from the initiator 11.

また、パケット処理回路45は、マルチ制御回路44が出力するデータの3ビットのフィールドに表されたノード番号を、ffc0h等の16ビットのノード番号に変換して、パケットに組み込む。   Further, the packet processing circuit 45 converts the node number represented in the 3-bit field of the data output from the multi-control circuit 44 into a 16-bit node number such as ffc0h and incorporates it into the packet.

このように、16ビットのノード番号を1ビットで表現し、管理することになるので、ノード番号を扱うマルチ制御回路44等の回路を簡略化することができる。ここで、イニシエータ11〜13のノード番号と、ビットN1,N2,N3の位置との対応関係は、1対1の関係であればどのようなものであってもよい。もちろん、マルチ制御回路44等において、各ノード番号をそのまま用いるようにしてもよい。   Thus, since the 16-bit node number is expressed and managed by 1 bit, a circuit such as the multi-control circuit 44 that handles the node number can be simplified. Here, the correspondence relationship between the node numbers of the initiators 11 to 13 and the positions of the bits N1, N2, and N3 may be any one-to-one relationship. Of course, each node number may be used as it is in the multi-control circuit 44 or the like.

図6は、図2のマルチ制御回路44におけるコマンド実行処理のシーケンスを示すフローチャートである。ここでは、イニシエータ11,12,13のノード番号がそれぞれNode1,Node2,Node3であるものとして説明する。また、イニシエータ11〜13は、コマンド制御回路51〜53のそれぞれに対するコマンドフェッチ要求の際に、ORB_POINTERレジスタへのアクセスを行うものとして説明する。   FIG. 6 is a flowchart showing a sequence of command execution processing in the multi-control circuit 44 of FIG. Here, description will be made assuming that the node numbers of the initiators 11, 12, and 13 are Node1, Node2, and Node3, respectively. Further, it is assumed that the initiators 11 to 13 access the ORB_POINTER register when a command fetch request is made to each of the command control circuits 51 to 53.

マルチ制御回路44は、まず、ステップS11において、Node1のイニシエータ11のコマンド処理シーケンスが未完了であるか否かを判定する。すなわち、マルチ制御回路44は、コマンド制御回路51がコマンドフェッチ要求を受け、未処理のコマンドをキューイングしているか否かを判定し、キューイングしていたらステップS12に移行し、キューイングしていなかったらステップS13に移行する。   First, in step S11, the multi-control circuit 44 determines whether or not the command processing sequence of the Node 1 initiator 11 is incomplete. That is, the multi-control circuit 44 determines whether or not the command control circuit 51 receives a command fetch request and queues an unprocessed command. If the command is queued, the multi-control circuit 44 proceeds to step S12 and queues it. If not, the process proceeds to step S13.

ステップS12では、マルチ制御回路44は、コマンド制御回路51にシーケンス実行許可を与える。コマンド制御回路51は、格納しているコマンドフェッチ対象のアドレスを用い、Node1のイニシエータ11からコマンドを取って来る。すなわち、コマンド制御回路51は、コマンドフェッチ対象のアドレスをパケット処理回路45に通知し、パケット処理回路45は、このアドレスを含んだパケットを生成し、リンクコア回路42及びバス21を経由してイニシエータ11に送信する。これに応答して、イニシエータ11はコマンドを含んだパケットを送信し、このパケットはバス21、リンクコア回路42及びパケット処理回路45を経由してコマンド受信バッファ47に格納される。CPU31は、このパケットに含まれるコマンドを実行する。このようにして、コマンドをフェッチして実行する一連のトランザクションを行うことができる。コマンドの実行が終了したら、ステップS13に処理を進める。   In step S <b> 12, the multi-control circuit 44 gives sequence execution permission to the command control circuit 51. The command control circuit 51 fetches a command from the initiator 11 of the Node 1 using the stored command fetch target address. That is, the command control circuit 51 notifies the packet processing circuit 45 of the command fetch target address, and the packet processing circuit 45 generates a packet including this address, and the initiator via the link core circuit 42 and the bus 21. 11 to send. In response to this, the initiator 11 transmits a packet including a command, and this packet is stored in the command reception buffer 47 via the bus 21, the link core circuit 42 and the packet processing circuit 45. The CPU 31 executes a command included in this packet. In this way, a series of transactions for fetching and executing commands can be performed. When the execution of the command is completed, the process proceeds to step S13.

ステップS13では、マルチ制御回路44は、Node2のイニシエータ12のコマンド処理シーケンスが未完了であるか否かを判定する。すなわち、マルチ制御回路44は、コマンド制御回路52がコマンドフェッチ要求を受け、未処理のコマンドをキューイングしているか否かを判定し、キューイングしていたらステップS14に移行し、キューイングしていなかったらステップS15に移行する。   In step S13, the multi-control circuit 44 determines whether or not the command processing sequence of the Node 2 initiator 12 is incomplete. That is, the multi-control circuit 44 determines whether or not the command control circuit 52 has received a command fetch request and queues an unprocessed command. If the command is queued, the multi-control circuit 44 proceeds to step S14 and queues it. If not, the process proceeds to step S15.

ステップS14では、マルチ制御回路44は、コマンド制御回路52にシーケンス実行許可を与える。コマンド制御回路52は、ステップS12と同様に、Node2のイニシエータ12からコマンドを取って来て、そのコマンドをCPU31に実行させ、コマンドの実行を終了したら、ステップS15に処理を進める。   In step S <b> 14, the multi-control circuit 44 gives sequence execution permission to the command control circuit 52. As in step S12, the command control circuit 52 takes a command from the Node 2 initiator 12, causes the CPU 31 to execute the command, and when the execution of the command is completed, proceeds to step S15.

ステップS15では、マルチ制御回路44は、Node3のイニシエータ13のコマンド処理シーケンスが未完了であるか否かを判定する。すなわち、マルチ制御回路44は、コマンド制御回路53がコマンドフェッチ要求を受け、未処理のコマンドをキューイングしているか否かを判定し、キューイングしていたらステップS16に移行し、キューイングしていなかったらステップS11に戻る。   In step S15, the multi-control circuit 44 determines whether the command processing sequence of the Node 13 initiator 13 is incomplete. That is, the multi-control circuit 44 determines whether or not the command control circuit 53 receives a command fetch request and queues an unprocessed command, and if it is queued, moves to step S16 and queues it. If not, the process returns to step S11.

ステップS16では、マルチ制御回路44は、コマンド制御回路53にシーケンス実行許可を与える。コマンド制御回路53は、ステップS12と同様に、Node3のイニシエータ13からコマンドを取って来て、そのコマンドをCPU31に実行させ、コマンドの実行を終了したら、ステップS11に戻る。その後は、同様のシーケンスを繰り返す。   In step S <b> 16, the multi-control circuit 44 gives sequence execution permission to the command control circuit 53. Similarly to step S12, the command control circuit 53 takes a command from the initiator 13 of Node3, causes the CPU 31 to execute the command, and when the execution of the command is completed, returns to step S11. Thereafter, the same sequence is repeated.

以上のように、マルチ制御回路44は、接続されたイニシエータによるコマンド実行の状態を常に管理し、コマンド実行許可を与えるか否かの判定をそれぞれのイニシエータに対して順に平等に行うので、コマンドを実行する頻度のばらつきがイニシエータ間で生じることを防ぐことができる。   As described above, the multi-control circuit 44 always manages the state of command execution by the connected initiators, and determines whether to give command execution permission to each initiator in order, so that the command It is possible to prevent a variation in execution frequency from occurring between initiators.

なお、イニシエータ11〜13が、コマンドフェッチ要求の際にDOORBELLレジスタへのアクセスを行った場合についても、イニシエータ11〜13からコマンドを取って来る際の動作が複雑である点を除けば、同様である。この場合は、イニシエータ11に関しては、ステップS12に代えて次のような動作を行う。   The same applies to the case where the initiators 11 to 13 access the DOORBELL register at the time of a command fetch request, except that the operation when fetching commands from the initiators 11 to 13 is complicated. is there. In this case, the initiator 11 performs the following operation instead of step S12.

すなわち、コマンド制御回路51は、ORB_POINTERレジスタR13に格納しているアドレスをイニシエータ11に送信し、これに応答して、イニシエータ11は次に参照すべきORBを指し示すポインタを含んだパケットを送信する。コマンド制御回路51は、このポインタをパケット処理回路45に通知し、パケット処理回路45は、このポインタを含んだパケットを生成してイニシエータ11に送信する。これに応答して、イニシエータ11はコマンドを含んだパケットを送信する。CPU31は、このパケットのコマンドを実行する。イニシエータ12,13に関しても、それぞれステップS14,S16に代えて同様の動作を行えばよい。   That is, the command control circuit 51 transmits the address stored in the ORB_POINTER register R13 to the initiator 11, and in response, the initiator 11 transmits a packet including a pointer indicating the ORB to be referred to next. The command control circuit 51 notifies the packet processing circuit 45 of this pointer, and the packet processing circuit 45 generates a packet including this pointer and transmits it to the initiator 11. In response to this, the initiator 11 transmits a packet including the command. The CPU 31 executes the command of this packet. For the initiators 12 and 13, similar operations may be performed instead of steps S14 and S16, respectively.

また、イニシエータが3台の場合について説明したが、イニシエータの数はこれには限らない。すなわち、イニシエータの数が、IEEE1394規格で規定されている1つのローカルバスに対して接続可能な最大の数(63台)までの場合には、各イニシエータに対応したコマンド制御回路を備えることにより、同様に処理を行うことができる。   Further, the case where there are three initiators has been described, but the number of initiators is not limited to this. That is, when the number of initiators is up to the maximum number (63 units) connectable to one local bus defined in the IEEE 1394 standard, by providing a command control circuit corresponding to each initiator, Processing can be performed similarly.

図7A〜7Eは、図2のマルチイニシエータ制御装置2の内部で使用されるパケットのフォーマットを示す説明図である。図7A〜7Eにおいて、斜線の領域はリザーブ領域を示す。より具体的には、図7Aは、BWRQ(block write request)パケットのフォーマットを示す。図7Bは、QWRQ(quadlet write request)パケットのフォーマットを示す。図7Cは、WRS(write response)パケットのフォーマットを示す。図7Dは、BRRQ(block read request)パケットのフォーマットを示す。図7Eは、BRRS(block read response)パケットのフォーマットを示す。   7A to 7E are explanatory diagrams showing the format of a packet used inside the multi-initiator control device 2 of FIG. 7A to 7E, hatched areas indicate reserved areas. More specifically, FIG. 7A shows the format of a BWRQ (block write request) packet. FIG. 7B shows the format of a QWRQ (quadlet write request) packet. FIG. 7C shows a format of a WRS (write response) packet. FIG. 7D shows a format of a BRRQ (block read request) packet. FIG. 7E shows a format of a block read response (BRRS) packet.

図8A〜8Eは、IEEE1394バス21〜23上のパケットのフォーマットを示す説明図である。図8A〜8Eは、それぞれ図7A〜7Eに示されるフォーマットに対応する。   8A to 8E are explanatory diagrams showing the format of packets on the IEEE 1394 buses 21 to 23. FIG. 8A-8E correspond to the formats shown in FIGS. 7A-7E, respectively.

リンクコア回路42は、パケットをバス21〜23に送信する際には、図7A〜7Eのフォーマットのパケットを受け取り、このパケットからheader_CRCやdata_CRC等のCRC(cyclic redundancy check)コードを求める。リンクコア回路42は、受け取ったパケットにこれらのCRCコードのフィールドを追加し、得られた図8A〜8Eのフォーマットのパケットを物理層コントローラ41に出力する。   When transmitting a packet to the buses 21 to 23, the link core circuit 42 receives a packet in the format of FIGS. 7A to 7E, and obtains a CRC (cyclic redundancy check) code such as header_CRC or data_CRC from the packet. The link core circuit 42 adds these CRC code fields to the received packet, and outputs the obtained packets in the formats of FIGS. 8A to 8E to the physical layer controller 41.

また、リンクコア回路42は、パケットをバス21〜23から受信する際には、図8A〜8Eのフォーマットのパケットを受け取り、このパケットに含まれるheader_CRC領域やdata_CRC領域を参照して、CRCによる誤り検出を行う。リンクコア回路42は、誤り検出後のパケットを図7A〜7Eのフォーマットでパケットフィルタ43及びパケット処理回路45に出力する。   When the link core circuit 42 receives a packet from the buses 21 to 23, the link core circuit 42 receives the packet in the format of FIGS. 8A to 8E, refers to the header_CRC area and the data_CRC area included in the packet, and generates an error by CRC. Perform detection. The link core circuit 42 outputs the packet after error detection to the packet filter 43 and the packet processing circuit 45 in the format of FIGS.

以下では、図2のマルチイニシエータ制御装置2の動作を説明する。まず、LOGINコマンドの実行について説明する。マルチイニシエータ制御装置2は、イニシエータ11との間で図9のコマンド処理シーケンスを実行する。イニシエータ11との間のLOGINコマンドのコマンド処理シーケンスが終了すると、CPU31は、LOGINしたイニシエータ11のノード番号に対応する制御レジスタ48内の1ビットをイネーブルにする。同様にして、イニシエータ12,13との間でLOGIN処理が行われる。この一連のLOGIN処理によって、イニシエータ11,12,13に、それぞれコマンド制御回路51,52,53が割り当てられる。   Below, operation | movement of the multi-initiator control apparatus 2 of FIG. 2 is demonstrated. First, execution of the LOGIN command will be described. The multi-initiator control device 2 executes the command processing sequence shown in FIG. When the command processing sequence of the LOGIN command with the initiator 11 is completed, the CPU 31 enables one bit in the control register 48 corresponding to the node number of the initiator 11 that has performed the LOGIN. Similarly, LOGIN processing is performed between the initiators 12 and 13. By this series of LOGIN processing, command control circuits 51, 52, and 53 are assigned to the initiators 11, 12, and 13, respectively.

次に、READコマンドの実行について説明する。マルチイニシエータ制御装置2とイニシエータ11〜13との間のコマンド処理シーケンスは、コマンド制御回路51〜53がコマンドをキューイングすることができるようになっている点を除くと、図10と同様である。   Next, execution of the READ command will be described. The command processing sequence between the multi-initiator control device 2 and the initiators 11 to 13 is the same as that shown in FIG. 10 except that the command control circuits 51 to 53 can queue commands. .

イニシエータ11は、READコマンドを実行するためにAGENT_RESETレジスタR12にQWRQパケットを送信する。次に、イニシエータ11は、BWRQパケットをイニシエータ11に対応するコマンド制御回路51に送信し、ORB_POINTERレジスタR13にコマンド制御回路51がアクセスすべきORBのアドレスを書き込む。マルチ制御回路44は、コマンド制御回路51〜53の状態を管理し、例えばコマンド制御回路51にシーケンス実行許可を与えると、コマンド制御回路51はコマンドフェッチを実行する。   The initiator 11 transmits a QWRQ packet to the AGENT_RESET register R12 in order to execute the READ command. Next, the initiator 11 transmits a BWRQ packet to the command control circuit 51 corresponding to the initiator 11, and writes the address of the ORB to be accessed by the command control circuit 51 in the ORB_POINTER register R13. The multi-control circuit 44 manages the states of the command control circuits 51 to 53. For example, when the command control circuit 51 is granted sequence execution permission, the command control circuit 51 executes command fetch.

コマンド受信バッファ47は、イニシエータ11から受信したコマンドを含むパケットを格納する。CPU31は、コマンド受信バッファ47からコマンドを読み出し、READコマンドを実行するために転送制御回路46を起動する。転送制御回路46は、DMAバス6を介してDVD−RAMコントローラ3からDVD−RAMディスク5のデータを読み出し、パケット処理回路45に出力する。パケット処理回路45は、入力されたデータをパケットにして、リンクコア回路42に出力する。   The command reception buffer 47 stores a packet including a command received from the initiator 11. The CPU 31 reads the command from the command reception buffer 47 and activates the transfer control circuit 46 in order to execute the READ command. The transfer control circuit 46 reads data from the DVD-RAM disk 5 from the DVD-RAM controller 3 via the DMA bus 6 and outputs the data to the packet processing circuit 45. The packet processing circuit 45 converts the input data into a packet and outputs the packet to the link core circuit 42.

また、イニシエータ11に対するデータ転送シーケンス実行中に、イニシエータ12からはWRITEコマンドの、イニシエータ13からはREADコマンドのコマンドフェッチ要求パケットを受信したとする。この場合、イニシエータ12に対応するコマンド制御回路52は、データ転送シーケンスの実行中であっても、イニシエータ12からのコマンドフェッチ要求を受け取る。すなわち、コマンド制御回路52は、マルチ制御回路44からの制御信号に従って、コマンドフェッチのためにアクセスすべきアドレスを格納し、シーケンス実行許可を待つ。同様に、イニシエータ13に対応するコマンド制御回路53は、データ転送シーケンスの実行中であっても、イニシエータ13からのコマンドフェッチ要求を受け取り、シーケンス実行許可を待つ。   Further, assume that a command fetch request packet of the WRITE command is received from the initiator 12 and a command fetch request packet of the READ command is received from the initiator 13 during execution of the data transfer sequence to the initiator 11. In this case, the command control circuit 52 corresponding to the initiator 12 receives a command fetch request from the initiator 12 even during execution of the data transfer sequence. That is, the command control circuit 52 stores an address to be accessed for command fetching in accordance with a control signal from the multi-control circuit 44 and waits for sequence execution permission. Similarly, the command control circuit 53 corresponding to the initiator 13 receives a command fetch request from the initiator 13 and waits for sequence execution permission even during execution of the data transfer sequence.

マルチ制御回路44は、イニシエータ11に対するデータ転送処理シーケンスが終了すると、コマンド制御回路52におけるコマンドのキューイング状態、すなわち、コマンド制御回路52がコマンドフェッチ要求を受けているか否かを調べる。キューイングされていると認識した場合には、マルチ制御回路44は、コマンド制御回路52に対してシーケンス実行許可を与える。コマンド制御回路52は、マルチ制御回路44からシーケンス実行許可を受けると、イニシエータ12に対してコマンド処理シーケンスを実行する。パケット処理回路45は、受信したパケットをコマンド受信バッファ47に格納する。   When the data transfer processing sequence for the initiator 11 is completed, the multi-control circuit 44 checks the command queuing state in the command control circuit 52, that is, whether the command control circuit 52 has received a command fetch request. When recognizing that it is queued, the multi-control circuit 44 gives sequence execution permission to the command control circuit 52. When receiving command execution permission from the multi-control circuit 44, the command control circuit 52 executes a command processing sequence for the initiator 12. The packet processing circuit 45 stores the received packet in the command reception buffer 47.

CPU31は、コマンドをコマンド受信バッファ47から読み出し、WRITEコマンドを実行するために転送制御回路46を起動する。転送制御回路46は、イニシエータ12からデータを読み出すために、リンクコア回路42にパケットを転送する。転送制御回路46は、イニシエータ12から受信したデータをリンクコア回路42を介して読み出し、DMAバス6及びDVD−RAMコントローラ3を介して、DVD−RAMディスク5に対して書き込む。指定された量の転送データがDVD−RAMディスク5に書き込まれた後、転送制御回路46は、イニシエータ12に対してステータス情報を送信して、データ転送処理シーケンスが終了する。   The CPU 31 reads the command from the command reception buffer 47 and activates the transfer control circuit 46 in order to execute the WRITE command. The transfer control circuit 46 transfers the packet to the link core circuit 42 in order to read data from the initiator 12. The transfer control circuit 46 reads the data received from the initiator 12 via the link core circuit 42 and writes it to the DVD-RAM disk 5 via the DMA bus 6 and the DVD-RAM controller 3. After the designated amount of transfer data is written to the DVD-RAM disk 5, the transfer control circuit 46 transmits status information to the initiator 12, and the data transfer processing sequence ends.

マルチ制御回路44は、イニシエータ12に対するコマンド処理シーケンスが終了すると、コマンド制御回路53におけるコマンドのキューイング状態を調べ、キューイングされていると認識した場合には、コマンド制御回路53に対してシーケンス実行許可を与える。コマンド制御回路53は、マルチ制御回路44からシーケンス実行許可を受けると、イニシエータ13に対してコマンドフェッチを行い、コマンド受信バッファ47に受信パケットを格納する。その後、同様に、CPU31は転送制御回路46を起動し、READコマンドを実行する。   When the command processing sequence for the initiator 12 is completed, the multi-control circuit 44 checks the command queuing state in the command control circuit 53. If the multi-control circuit 44 recognizes that it is queued, the multi-control circuit 44 executes the sequence to the command control circuit 53. Give permission. When receiving the sequence execution permission from the multi-control circuit 44, the command control circuit 53 performs a command fetch with respect to the initiator 13 and stores the received packet in the command reception buffer 47. Thereafter, similarly, the CPU 31 activates the transfer control circuit 46 and executes a READ command.

以上のように、本実施形態のマルチイニシエータ制御装置2では、コマンド制御回路51,52,53は、それぞれが対応するイニシエータに対するコマンド処理シーケンスを行い、マルチ制御回路44は、コマンド制御回路51,52,53を制御して、複数のイニシエータとの間のシーケンスを可能にする。このため、CPU31は、コマンドフェッチ等のコマンド処理シーケンスを行う必要がない。また、CPU31は、コマンド受信バッファ47に格納されたコマンドを実行するが、データ転送処理シーケンスは、転送制御回路46によって行われる。したがって、効率的なシーケンス制御及びデータ転送制御が可能であり、CPU31の負荷を大きくすることなく、複数のイニシエータの管理を行うことができる。   As described above, in the multi-initiator control apparatus 2 of the present embodiment, the command control circuits 51, 52, and 53 perform command processing sequences for the corresponding initiators, and the multi-control circuit 44 includes the command control circuits 51 and 52. , 53 to enable a sequence with a plurality of initiators. Therefore, the CPU 31 does not need to perform a command processing sequence such as command fetch. The CPU 31 executes the command stored in the command reception buffer 47, but the data transfer processing sequence is performed by the transfer control circuit 46. Therefore, efficient sequence control and data transfer control are possible, and a plurality of initiators can be managed without increasing the load on the CPU 31.

(変形例)
本変形例においては、マルチ制御回路44に代わってCPU31が、制御レジスタ48を介してコマンド制御回路51〜53にシーケンス実行許可を与え、コマンドをフェッチするタイミングを制御する例について説明する。
(Modification)
In the present modification, an example will be described in which the CPU 31 gives a sequence execution permission to the command control circuits 51 to 53 via the control register 48 in place of the multi-control circuit 44, and controls the command fetch timing.

例えば、転送制御回路46が行うデータ転送処理シーケンスは、基本的にはハードウェアだけで処理を行うことができる。ところが、イニシエータから受信するコマンドの処理には、ハードウェアだけでは処理できず、ファームウェアによる処理が必要な場合がある。また、データ転送処理シーケンスを行っているときであっても、転送データにエラーが生じ、これに対処するためのファームウェアによる処理が必要な場合等がある。   For example, the data transfer processing sequence performed by the transfer control circuit 46 can be basically performed only by hardware. However, processing of commands received from the initiator cannot be processed by hardware alone, and may require processing by firmware. Even when the data transfer processing sequence is being performed, an error may occur in the transfer data, and processing by firmware for dealing with this may be necessary.

このような場合、CPU31が実行するファームウェアによる処理は、ハードウェアによる処理に追いつかない場合があるため、CPU31がコマンド処理シーケンスを制御する必要がある。   In such a case, the process performed by the firmware executed by the CPU 31 may not be able to catch up with the process performed by the hardware, so the CPU 31 needs to control the command processing sequence.

図2,3を参照して説明する。イニシエータ11,12のLOGINコマンドの処理が終わっているものとする。イニシエータ11は、コマンド制御回路51のORB_POINTERレジスタR13に対して、BWRQパケットを送信する。マルチ制御回路44が、イニシエータ11に対応するコマンド制御回路51にシーケンス実行許可を与えると、コマンド制御回路51は、イニシエータ11に対してコマンドフェッチを行う。パケット処理回路45は、このときのイニシエータ11からの受信パケットをコマンド受信バッファ47に格納する。CPU31はコマンド受信バッファ47のコマンドを読み出し、実行する。このコマンドは、ファームウェアによる処理が必要なコマンドであるとする。   This will be described with reference to FIGS. It is assumed that the LOGIN command processing of the initiators 11 and 12 has been completed. The initiator 11 transmits a BWRQ packet to the ORB_POINTER register R13 of the command control circuit 51. When the multi-control circuit 44 gives sequence execution permission to the command control circuit 51 corresponding to the initiator 11, the command control circuit 51 performs command fetch with respect to the initiator 11. The packet processing circuit 45 stores the received packet from the initiator 11 at this time in the command reception buffer 47. The CPU 31 reads and executes the command in the command reception buffer 47. This command is a command that needs to be processed by firmware.

このときCPU31は、制御レジスタ48を介して、コマンド制御回路52をシーケンス実行許可待ちにする。CPU31がイニシエータ11のコマンドを実行中に、イニシエータ12から入力された、例えばREADコマンドのコマンドフェッチ対象のアドレスは、コマンド制御回路52に格納される。   At this time, the CPU 31 causes the command control circuit 52 to wait for sequence execution permission via the control register 48. While the CPU 31 is executing the command of the initiator 11, for example, the command fetch target address of the READ command input from the initiator 12 is stored in the command control circuit 52.

CPU31は、イニシエータ11のコマンド処理が終了すると、マルチ制御回路44に対してシーケンス実行許可を与え、マルチ制御回路44は、コマンド制御回路52に対してシーケンス実行許可を与える。シーケンス実行許可を得たコマンド制御回路52は、イニシエータ12のコマンドをフェッチする。パケット処理回路45は、イニシエータ12から受信したパケットをコマンド受信バッファ47に格納する。CPU31はコマンド受信バッファ47のコマンドを読み出し、イニシエータ12のコマンドを実行する。   When the command processing of the initiator 11 is completed, the CPU 31 gives sequence execution permission to the multi-control circuit 44, and the multi-control circuit 44 gives sequence execution permission to the command control circuit 52. The command control circuit 52 having obtained the sequence execution permission fetches the command of the initiator 12. The packet processing circuit 45 stores the packet received from the initiator 12 in the command reception buffer 47. The CPU 31 reads the command from the command reception buffer 47 and executes the command from the initiator 12.

以上のように、本変形例によると、コマンド処理シーケンスの起動タイミングをCPU31から任意に制御することができるため、コマンド処理シーケンスとCPU31の動作との間で同期をとることができ、CPU31からのシーケンスの管理が容易となる。   As described above, according to the present modification, the start timing of the command processing sequence can be arbitrarily controlled from the CPU 31, so that the command processing sequence and the operation of the CPU 31 can be synchronized. Management of sequences becomes easy.

以上の実施形態では、イニシエータがDVD−RAMディスクとの間でデータを転送する例について説明したが、他の形式の光ディスク、磁気ディスク等のデータ記録媒体等との間でデータを転送する場合も同様である。   In the above embodiment, the example in which the initiator transfers data to and from the DVD-RAM disk has been described. However, the data may be transferred to and from other types of data recording media such as optical disks and magnetic disks. It is the same.

本発明の実施形態に係るマルチイニシエータ制御装置を用いたデータ転送システムのブロック図である。1 is a block diagram of a data transfer system using a multi-initiator control device according to an embodiment of the present invention. 本発明の実施形態に係る図1のマルチイニシエータ制御装置のブロック図である。FIG. 2 is a block diagram of the multi-initiator control device of FIG. 1 according to an embodiment of the present invention. 図2のマルチ制御回路及びコマンド制御回路のレジスタについての説明図である。FIG. 3 is an explanatory diagram regarding registers of the multi-control circuit and the command control circuit of FIG. 2. アドレス拡張についての説明図である。It is explanatory drawing about address extension. イニシエータのノード番号の管理方法を示す説明図である。It is explanatory drawing which shows the management method of the node number of an initiator. 図2のマルチ制御回路におけるコマンド実行処理のシーケンスを示すフローチャートである。3 is a flowchart showing a sequence of command execution processing in the multi-control circuit of FIG. 図2のマルチイニシエータ制御装置の内部で使用されるBWRQパケットのフォーマットを示す説明図である。It is explanatory drawing which shows the format of the BWRQ packet used inside the multi-initiator control apparatus of FIG. 図2のマルチイニシエータ制御装置の内部で使用されるQWRQパケットのフォーマットを示す説明図である。It is explanatory drawing which shows the format of the QWRQ packet used inside the multi-initiator control apparatus of FIG. 図2のマルチイニシエータ制御装置の内部で使用されるWRSパケットのフォーマットを示す説明図である。It is explanatory drawing which shows the format of the WRS packet used inside the multi-initiator control apparatus of FIG. 図2のマルチイニシエータ制御装置の内部で使用されるBRRQパケットのフォーマットを示す説明図である。It is explanatory drawing which shows the format of the BRRQ packet used inside the multi-initiator control apparatus of FIG. 図2のマルチイニシエータ制御装置の内部で使用されるBRRSパケットのフォーマットを示す説明図である。It is explanatory drawing which shows the format of the BRRS packet used inside the multi-initiator control apparatus of FIG. IEEE1394バス上のBWRQパケットのフォーマットを示す説明図である。It is explanatory drawing which shows the format of the BWRQ packet on an IEEE1394 bus | bath. IEEE1394バス上のQWRQパケットのフォーマットを示す説明図である。It is explanatory drawing which shows the format of the QWRQ packet on an IEEE1394 bus | bath. IEEE1394バス上のWRSパケットのフォーマットを示す説明図である。It is explanatory drawing which shows the format of the WRS packet on an IEEE1394 bus. IEEE1394バス上のBRRQパケットのフォーマットを示す説明図である。It is explanatory drawing which shows the format of the BRRQ packet on an IEEE1394 bus. IEEE1394バス上のBRRSパケットのフォーマットを示す説明図である。It is explanatory drawing which shows the format of the BRRS packet on an IEEE1394 bus. LOGINコマンドを実行するためのコマンド処理シーケンスを示す説明図である。It is explanatory drawing which shows the command processing sequence for performing a LOGIN command. READコマンドを実行するためのコマンド処理シーケンスを示す説明図である。It is explanatory drawing which shows the command processing sequence for performing a READ command. 従来のシーケンス処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the conventional sequence processing apparatus.

符号の説明Explanation of symbols

1 光ディスクドライブ
2 マルチイニシエータ制御装置
3 DVD−RAMコントローラ
4 ヘッド
5 DVD−RAMディスク
6 DMAバス
11,12,13 イニシエータ(機器)
21,22,23 IEEE1394シリアルバス(伝送路)
31 CPU
41 物理層コントローラ
42 リンクコア回路
43 パケットフィルタ
44 マルチ制御回路
45 パケット処理回路
46 転送制御回路
47 コマンド受信バッファ
48 制御レジスタ
51,52,53 コマンド制御回路
DESCRIPTION OF SYMBOLS 1 Optical disk drive 2 Multi-initiator control apparatus 3 DVD-RAM controller 4 Head 5 DVD-RAM disk 6 DMA bus 11, 12, 13 Initiator (device)
21, 22, 23 IEEE 1394 serial bus (transmission path)
31 CPU
41 physical layer controller 42 link core circuit 43 packet filter 44 multi-control circuit 45 packet processing circuit 46 transfer control circuit 47 command reception buffer 48 control registers 51, 52, 53 command control circuit

Claims (10)

伝送路を介して接続された複数の機器の各々との間でパケットを単位として通信を行うマルチイニシエータ制御装置であって、
送信すべきパケットを前記伝送路に送信する一方、前記伝送路からパケットを受信し、誤り検出を行って出力するリンクコア回路と、
前記リンクコア回路が受信したパケットを解析し、その結果を出力するパケットフィルタと、
各々、対応する機器との間のコマンド処理シーケンスを制御する複数のコマンド制御回路と、
前記複数のコマンド制御回路のうちの1つにシーケンス実行許可を与えるマルチ制御回路と、
前記許可を与えられたコマンド制御回路が出力する情報を有するパケットを前記送信すべきパケットとして生成し、前記リンクコア回路に出力して送信させる一方、前記リンクコア回路が受信して出力したパケットを前記パケットフィルタが出力する解析結果に従って出力するパケット処理回路と、
前記パケット処理回路が出力するパケットに含まれるコマンドを実行するCPU(central processing unit)とを備えた
マルチイニシエータ制御装置。
A multi-initiator control device that performs communication in units of packets with each of a plurality of devices connected via a transmission path,
A link core circuit that transmits a packet to be transmitted to the transmission line, receives a packet from the transmission line, performs error detection, and outputs the link core circuit;
A packet filter for analyzing the packet received by the link core circuit and outputting the result;
A plurality of command control circuits each for controlling a command processing sequence with a corresponding device;
A multi-control circuit for granting sequence execution permission to one of the plurality of command control circuits;
A packet having information output from the command control circuit to which the permission is given is generated as the packet to be transmitted, and is output and transmitted to the link core circuit, while a packet received and output by the link core circuit is generated. A packet processing circuit that outputs in accordance with an analysis result output by the packet filter;
A multi-initiator control device comprising: a CPU (central processing unit) that executes a command included in a packet output from the packet processing circuit.
請求項1に記載のマルチイニシエータ制御装置において、
前記複数のコマンド制御回路は、それぞれ、
対応する機器が出力し、当該対応する機器との間のコマンド処理シーケンスに必要な情報を格納して、これを前記シーケンス実行許可が与えられると出力するものであり、
前記マルチ制御回路は、
前記リンクコア回路が受信して出力するパケットに含まれる、当該パケットを送信した機器との間のコマンド処理シーケンスに必要な情報を、前記パケットフィルタの出力に応じて、前記複数のコマンド制御回路のうち当該機器に対応するものに出力して格納させるものであり、
前記パケット処理回路は、
前記シーケンス実行許可を与えられたコマンド制御回路が出力する情報を有するパケットを生成して出力し、これに応答して当該コマンド制御回路に対応する機器が出力したパケットを、受信して出力するものである
ことを特徴とするマルチイニシエータ制御装置。
The multi-initiator control device according to claim 1,
Each of the plurality of command control circuits is
The corresponding device outputs, stores information necessary for the command processing sequence with the corresponding device, and outputs this when the sequence execution permission is given,
The multi-control circuit includes:
Information necessary for a command processing sequence with a device that has transmitted the packet, included in a packet received and output by the link core circuit, is output from the plurality of command control circuits according to the output of the packet filter. Among them, it is output and stored in the one corresponding to the device,
The packet processing circuit includes:
Generates and outputs a packet having information output from the command control circuit given the sequence execution permission, and receives and outputs a packet output by a device corresponding to the command control circuit in response to the packet A multi-initiator control device characterized by
請求項1に記載のマルチイニシエータ制御装置において、
前記複数のコマンド制御回路は、それぞれ、
対応する機器から送信されたコマンドフェッチ要求パケットの情報を格納し、前記マルチ制御回路から前記シーケンス実行許可が与えられた場合に、当該機器に対してコマンドフェッチ動作を行う
ことを特徴とするマルチイニシエータ制御装置。
The multi-initiator control device according to claim 1,
Each of the plurality of command control circuits is
A multi-initiator that stores information of a command fetch request packet transmitted from a corresponding device and performs a command fetch operation on the device when the sequence execution permission is given from the multi-control circuit. Control device.
請求項3に記載のマルチイニシエータ制御装置において、
前記複数のコマンド制御回路は、それぞれ、
データ転送処理シーケンスの実行中であっても、対応する機器からのコマンドフェッチ要求を受け取る
ことを特徴とするマルチイニシエータ制御装置。
The multi-initiator control device according to claim 3,
Each of the plurality of command control circuits is
A multi-initiator control device that receives a command fetch request from a corresponding device even during execution of a data transfer processing sequence.
請求項1に記載のマルチイニシエータ制御装置において、
前記複数のコマンド制御回路は、それぞれ、
コマンド処理シーケンスを行うためのアドレスを格納するレジスタを有するものであり、
前記レジスタのアドレスは、当該レジスタが属するコマンド制御回路の対応する機器のノード番号に応じて、前記複数のコマンド制御回路のうちの基準とするもののレジスタのアドレスを、所定の値を単位としてアドレス拡張して得られたものである
ことを特徴とするマルチイニシエータ制御装置。
The multi-initiator control device according to claim 1,
Each of the plurality of command control circuits is
It has a register that stores an address for performing a command processing sequence,
The address of the register is the address of the register of the reference of the plurality of command control circuits, in units of a predetermined value, according to the node number of the corresponding device of the command control circuit to which the register belongs. A multi-initiator control device obtained by the method described above.
請求項1に記載のマルチイニシエータ制御装置において、
前記マルチ制御回路は、
コマンド処理シーケンスが終了する毎に前記複数の機器から1つを所定の順で選択して、前記複数のコマンド制御回路のうち選択された機器に対応したものに前記シーケンス実行許可を与える
ことを特徴とするマルチイニシエータ制御装置。
The multi-initiator control device according to claim 1,
The multi-control circuit includes:
Each time a command processing sequence ends, one of the plurality of devices is selected in a predetermined order, and the sequence execution permission is given to the one corresponding to the selected device among the plurality of command control circuits. Multi-initiator control device.
請求項1に記載のマルチイニシエータ制御装置において、
前記パケット処理回路が当該マルチイニシエータ制御装置の外部との間で行うデータ転送の制御を行う転送制御回路を更に備え、
前記パケット処理回路は、
前記パケットフィルタが出力するパケットから転送すべきデータを取り出して前記転送制御回路に出力する一方、前記転送制御回路に転送されて来たデータからパケットを生成して前記リンクコア回路に出力する
ことを特徴とするマルチイニシエータ制御装置。
The multi-initiator control device according to claim 1,
The packet processing circuit further comprises a transfer control circuit for controlling data transfer to / from the outside of the multi-initiator control device,
The packet processing circuit includes:
Extracting data to be transferred from the packet output by the packet filter and outputting it to the transfer control circuit, while generating a packet from the data transferred to the transfer control circuit and outputting the packet to the link core circuit. A featured multi-initiator control device.
請求項1に記載のマルチイニシエータ制御装置において、
前記CPUが前記複数のコマンド制御回路にシーケンス実行許可を与えることができるように構成されている
ことを特徴とするマルチイニシエータ制御装置。
The multi-initiator control device according to claim 1,
A multi-initiator control device configured to allow the CPU to give sequence execution permission to the plurality of command control circuits.
請求項1に記載のマルチイニシエータ制御装置において、
前記複数の機器のそれぞれのノード番号と、ノード番号を識別するためのフィールドにおけるビットの位置とが対応付けられており、前記機器のそれぞれを、前記フィールドにおけるビットの位置で識別するように構成されている
ことを特徴とするマルチイニシエータ制御装置。
The multi-initiator control device according to claim 1,
A node number of each of the plurality of devices is associated with a bit position in a field for identifying the node number, and each of the devices is configured to be identified by a bit position in the field. A multi-initiator control device.
伝送路を介して接続された複数の機器の各々との間でパケットを単位として通信を行うマルチイニシエータ制御方法であって、
前記複数の機器のうちの1つからコマンドフェッチ要求を受けたことを記憶しているか否かを判定するステップと、
コマンドフェッチ要求を受けたことを記憶していると判定したときは、当該機器からコマンドをフェッチして実行するステップとを備え、
前記複数の機器から1つを所定の順で選択することを繰り返し、選択された機器について前記判定を行うステップと前記コマンドを実行するステップとを行う
マルチイニシエータ制御方法。
A multi-initiator control method for performing communication in units of packets with each of a plurality of devices connected via a transmission path,
Determining whether a command fetch request has been received from one of the plurality of devices is stored;
A step of fetching and executing a command from the device when it is determined that the command fetch request is stored.
A multi-initiator control method that repeatedly selects one of the plurality of devices in a predetermined order, and performs the determination and the command execution for the selected device.
JP2004230560A 2000-12-05 2004-08-06 Multi-initiator control device and method Pending JP2005018800A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004230560A JP2005018800A (en) 2000-12-05 2004-08-06 Multi-initiator control device and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000370375 2000-12-05
JP2004230560A JP2005018800A (en) 2000-12-05 2004-08-06 Multi-initiator control device and method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001366445A Division JP2002244991A (en) 2000-12-05 2001-11-30 Method and device for controlling multi-initiator

Publications (2)

Publication Number Publication Date
JP2005018800A true JP2005018800A (en) 2005-01-20
JP2005018800A5 JP2005018800A5 (en) 2005-06-23

Family

ID=34196416

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004230560A Pending JP2005018800A (en) 2000-12-05 2004-08-06 Multi-initiator control device and method

Country Status (1)

Country Link
JP (1) JP2005018800A (en)

Similar Documents

Publication Publication Date Title
EP1389760B1 (en) Data transfer control system, program and data transfer control method
US20070180336A1 (en) Multi-initiator control unit and method
JP3584789B2 (en) Data transfer control device and electronic equipment
US7460531B2 (en) Method, system, and program for constructing a packet
KR100405250B1 (en) Data transfer control device and electronic apparatus
US20040057448A1 (en) Information processing system, information processing apparatus, and information processing method
US7127530B2 (en) Command issuing apparatus for high-speed serial interface
JP3733699B2 (en) Serial interface circuit
US6580711B1 (en) Serial interface circuit and signal processing method of the same
KR19990006761A (en) Data transmitter, data receiver, data transmitter and data transmission method
EP1033658B1 (en) Communication apparatus with means for allocating alternate designation information to each function unit, and communication system with two such communication apparatus
JP3539287B2 (en) Data transfer control device and electronic equipment
JP2005018800A (en) Multi-initiator control device and method
JP2000224195A (en) Data transmitter
JP4582180B2 (en) Data transmission equipment
JPH1117710A (en) Serial interface circuit
JP2002244991A (en) Method and device for controlling multi-initiator
JP4514411B2 (en) Inter-bus communication interface device
JP3606145B2 (en) Data transfer control device and electronic device
JP3610982B2 (en) Data transfer control device and electronic device
JP2004228835A (en) Data transfer method and data transfer system
JPH11308300A (en) Serial interface circuit
JP2006330968A (en) Serial data transmission/reception method and serial data transmission/reception device
JP2003023471A (en) Packet transmission/reception processing circuit
JPH11308301A (en) Serial interface circuit

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041130

A621 Written request for application examination

Effective date: 20041130

Free format text: JAPANESE INTERMEDIATE CODE: A621

A131 Notification of reasons for refusal

Effective date: 20080122

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20080324

Free format text: JAPANESE INTERMEDIATE CODE: A523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

A02 Decision of refusal

Effective date: 20080819

Free format text: JAPANESE INTERMEDIATE CODE: A02