JP2009290545A - Information processing device and information processing method - Google Patents

Information processing device and information processing method Download PDF

Info

Publication number
JP2009290545A
JP2009290545A JP2008140883A JP2008140883A JP2009290545A JP 2009290545 A JP2009290545 A JP 2009290545A JP 2008140883 A JP2008140883 A JP 2008140883A JP 2008140883 A JP2008140883 A JP 2008140883A JP 2009290545 A JP2009290545 A JP 2009290545A
Authority
JP
Japan
Prior art keywords
data
unit
ohci
command
hardware
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
JP2008140883A
Other languages
Japanese (ja)
Inventor
Osami Bansho
修巳 番匠
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2008140883A priority Critical patent/JP2009290545A/en
Publication of JP2009290545A publication Critical patent/JP2009290545A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To improve a processing rate in communication by SBP2 in compliance with IEEE1394. <P>SOLUTION: An OHCI section of LSI includes an OHCI unit corresponding to an earlier version of OHCI, and an SBP2 unit for data transmission and reception via hardware specialized for SBP2. Then, when transferring Read data and Write data by SBP2, a predetermined sequence in its transaction is executed by inter-hardware communication between the SBP2 unit and an Initiator with no help by software. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、例えばIEEE1394などのデータインターフェース規格の下でデータ転送を実行するようにされる情報処理装置と、このような情報処理装置に対応した情報処理方法とに関するものである。   The present invention relates to an information processing apparatus configured to execute data transfer under a data interface standard such as IEEE 1394, and an information processing method corresponding to such an information processing apparatus.

データインターフェース規格の1つとしてIEEE1394が知られている。
また、現状においては、IEEE1394上でOHCI(Open Host Controller Interface)を実装することがしばしば行われている。例えば、機器が備えるIEEE1394のハードウェア構成(例えば通信ボード)をOHCI準拠とすることで、レジスタ構成やデータ構造などが共通化され、例えば、ソフトウェアからみれば同等の扱いでデータ転送のコントロールを行うことが可能になるとともに、ドライバ次第で、IEEE1394上で動作させる各種の上位通信プロトコルにも対応できることになり、広い汎用性を有するものとなる。
IEEE 1394 is known as one of data interface standards.
In addition, at present, OHCI (Open Host Controller Interface) is often implemented on IEEE1394. For example, by making the IEEE 1394 hardware configuration (such as a communication board) included in a device compliant with OHCI, the register configuration, data structure, and the like are shared, and for example, data transfer is controlled in an equivalent manner from the viewpoint of software. In addition, depending on the driver, various higher-level communication protocols that operate on IEEE 1394 can be supported, thereby having a wide versatility.

特許文献1には、IEEE1394における非同期転送の速度を向上させるために、既存の大容量保持回路をバッファとして利用する技術が開示されている。
特許文献2には、OHCI(1394OHCI)を用いたIEEE1394ディジタルシリアルデータのインタフェース装置が記載されている。
Patent Document 1 discloses a technique that uses an existing large capacity holding circuit as a buffer in order to improve the speed of asynchronous transfer in IEEE1394.
Patent Document 2 describes an interface device for IEEE1394 digital serial data using OHCI (1394OHCI).

特開2002−135270号公報JP 2002-135270 A 特開2001−326670号公報JP 2001-326670 A

例えば特許文献1にもあるように、データインターフェースによるデータ転送にあたり、転送速度の向上、高速化は、常に1つの主たる課題となる。
本願発明としても、例えば所定規格によるデータインターフェースの環境において、データ転送速度の向上が図られるようにすることを、その目的、課題とするものである。
For example, as disclosed in Patent Document 1, in the data transfer by the data interface, improvement and speeding up of the transfer speed are always one main problem.
The object of the present invention is to improve the data transfer rate in a data interface environment according to a predetermined standard, for example.

そこで本発明は上記した課題を考慮して、情報処理装置として次のように構成する。
つまり、所定のデータインターフェース規格の下で規定される所定の共通化規格に準拠して形成され、上記データインターフェース規格に対応する外部バスと、所定規格による内部バスとの間でデータの伝送を行うようにして設けられる第1の伝送部と、外部バスと内部バスとの間に設けられて、データインターフェース規格の上位で規定される所定の通信プロトコルに対応するデータ伝送を行うもので、ハードウェアにより形成され、上記第1の伝送部を利用した場合にはソフトウェアによる処理が介在する所定のシーケンスについては、ソフトウェアを介在させることなく自己と外部バスとの間でのハードウェア間データ伝送を行うように構成される第2の伝送部とを備えることとした。
In view of the above-described problems, the present invention is configured as an information processing apparatus as follows.
That is, data is transmitted between an external bus corresponding to the data interface standard and an internal bus according to the predetermined standard, which is formed in accordance with a predetermined common standard defined under a predetermined data interface standard. The first transmission unit provided in this way, and provided between the external bus and the internal bus, performs data transmission corresponding to a predetermined communication protocol defined in the upper level of the data interface standard. When the first transmission unit is used, data transmission between hardware is performed between the self and the external bus without intervention of software for a predetermined sequence involving software processing. The second transmission unit configured as described above is provided.

上記構成では、先ず、所定の共通化規格に対応した第1の伝送部を備えることで、この第1の伝送部をソフトウェア制御することにより、汎用性のあるデータ伝送、通信を行える。これとともに、第2伝送部を備えることで、本願のデータインターフェース規格の上位通信プロトコルに対応する所定のシーケンスについては、この第2伝送部と外部バスとの間での、ソフトウェアが介在しないハードウェア間データ伝送を行うようにした。   In the above configuration, first, by providing a first transmission unit corresponding to a predetermined common standard, software control of the first transmission unit enables versatile data transmission and communication. At the same time, by providing the second transmission unit, for a predetermined sequence corresponding to the higher-level communication protocol of the data interface standard of the present application, hardware that does not involve software between the second transmission unit and the external bus Inter-data transmission was performed.

つまり、上位通信プロトコルによる通信においては、第2伝送部によるハードウェア間データ伝送が適宜実行されることになるが、これにより、これまでに実行していたソフトウェアの処理は省略されることとなる。この結果、データ転送速度は大幅に向上されることになる。   That is, in communication using the higher-level communication protocol, data transmission between hardware by the second transmission unit is appropriately executed, but this eliminates the software processing executed so far. . As a result, the data transfer rate is greatly improved.

本実施の形態において、本願発明に基づく情報処理装置は、データ通信(データインターフェース)規格としてIEEE1394に対応するデータ転送(送受信)機能が与えられているものとする。そのうえで、OHCI(Open Host Controller Interface)といわれる標準化規格に準拠した構成を採っているものとする。   In this embodiment, the information processing apparatus according to the present invention is provided with a data transfer (transmission / reception) function corresponding to IEEE 1394 as a data communication (data interface) standard. In addition, it is assumed that a configuration conforming to a standardized standard called OHCI (Open Host Controller Interface) is adopted.

図1は、本実施の形態に対応するデータ送受信システムの一構築例を示している。
この図に示されるデータ送受信システムは、ビデオカメラ装置1と編集装置2とから成るものとしている。
ビデオカメラ装置1は、撮像部、ビデオ信号処理部、メディアドライブなどを備え、撮像部にて撮像して得られる画像から所定形式による動画データを生成し、この動画データを所定のメディア(記憶媒体)に記憶させることが可能とされている。
さらに、所定規格によるデータインターフェース機能を実装することで、そのデータインターフェース経由で接続した他の機器などと、上記動画データなどをはじめとするデータ転送が可能なようにもされている。そして、このようなデータインターフェース機能の1つとして、IEEE1394を実装するものである。
この図では、IEEE1394のデータインターフェースにより、ビデオカメラ装置1と、編集装置2とを接続している態様を示している。
FIG. 1 shows an example of construction of a data transmission / reception system corresponding to the present embodiment.
The data transmission / reception system shown in this figure is composed of a video camera device 1 and an editing device 2.
The video camera device 1 includes an imaging unit, a video signal processing unit, a media drive, and the like. The video camera device 1 generates moving image data in a predetermined format from an image captured by the imaging unit, and the moving image data is stored in a predetermined medium (storage medium). ) Can be stored.
Furthermore, by implementing a data interface function according to a predetermined standard, data transfer including the moving image data and the like can be performed with other devices connected via the data interface. As one of such data interface functions, IEEE 1394 is implemented.
This figure shows a mode in which the video camera device 1 and the editing device 2 are connected by an IEEE 1394 data interface.

編集装置2は、この場合には、パーソナルコンピュータ(以降、パーソナルコンピュータについてはPCと表記する場合もある)とされ、例えば所定のアプリケーションソフトウェアがインストールされることでビデオ編集機能を有する。そして、この編集装置2も、データインターフェース機能の1つとしてIEEE1394を実装しており、ここでは、上記のようにビデオカメラ装置1とIEEE1394経由で接続されているものである。
なお、編集装置2としては、例えばビデオカメラ装置1に対応可能な専用の編集用機器などとされてもよい。
In this case, the editing apparatus 2 is a personal computer (hereinafter, the personal computer may be referred to as a PC), and has a video editing function by installing predetermined application software, for example. The editing apparatus 2 also has IEEE 1394 mounted as one of the data interface functions, and here is connected to the video camera apparatus 1 via IEEE 1394 as described above.
Note that the editing device 2 may be a dedicated editing device that is compatible with the video camera device 1, for example.

このようにしてIEEE1394経由で接続されたビデオカメラ装置1と編集装置2との間では、例えば、ビデオカメラ装置1側に装填されているメディアに記録されている動画データを編集装置2側が受信して取り込んで、例えばHDD(ハードディスクドライブ)などの記憶装置に記憶させることができる。編集装置2側では、編集用のアプリケーションソフトウェアを利用することで、HDDに記憶した動画データの編集を行うことができる。
また、逆に、編集装置2側の記憶装置に記憶されている動画データなどのデータをビデオカメラ装置1側に転送して、例えばビデオカメラ装置1に装填されているメディアに記憶させることも可能とされる。
また、動画データの送受信だけではなく、静止画データや音声データなども送受信可能であり、さらに、このようなコンテンツデータのほか、例えばプログラムや設定情報などをはじめとする各種のデータ、情報なども必要に応じて送受信することが可能である。
In this way, between the video camera device 1 and the editing device 2 connected via the IEEE 1394 in this way, for example, the editing device 2 side receives moving image data recorded on a medium loaded on the video camera device 1 side. Can be stored in a storage device such as an HDD (hard disk drive). On the editing apparatus 2 side, the moving image data stored in the HDD can be edited by using editing application software.
Conversely, data such as moving image data stored in the storage device on the editing device 2 side can be transferred to the video camera device 1 side and stored in, for example, a medium loaded in the video camera device 1. It is said.
In addition to video data transmission / reception, still image data and audio data can also be transmitted / received. In addition to such content data, various data and information such as programs and setting information are also available. It is possible to transmit and receive as necessary.

図2は、ビデオカメラ装置1における、IEEE1394のデータインターフェース機能に関連した部位の構成例を示している。
CPU(Central Processing Unit)11は、いわゆる演算装置といわれるもので、例えばここでは図示していないROM若しくはHDDなどに代表される副記憶装置に記憶されているプログラムを実行することにより、少なくとも、IEEE1394による通信に関する制御・処理を実行する。また、このために、ビデオカメラ装置1には、例えばIEEE1394(OHCI準拠)の通信に対応するドライバ(ソフトウェア)がインストールされる。
FIG. 2 shows a configuration example of a part related to the data interface function of IEEE 1394 in the video camera apparatus 1.
The CPU (Central Processing Unit) 11 is a so-called arithmetic device, and executes at least IEEE 1394 by executing a program stored in a secondary storage device represented by a ROM or HDD (not shown), for example. Executes control and processing related to communication. For this purpose, the video camera device 1 is installed with a driver (software) corresponding to, for example, IEEE 1394 (OHCI compliant) communication.

メモリ12は、例えばRAMなどとされて、CPU11の演算処理に応じて、適宜、CPU11が扱うべきデータが保持される。   The memory 12 is a RAM or the like, for example, and appropriately stores data to be handled by the CPU 11 according to the arithmetic processing of the CPU 11.

ビデオカメラ装置1では、IEEE1394による通信機能に対応して、上記CPU11と、OHCI部13。バッファメモリ15とをPCUバス14により接続している。   In the video camera apparatus 1, the CPU 11 and the OHCI unit 13 correspond to the communication function based on IEEE1394. The buffer memory 15 is connected by the PCU bus 14.

OHCI部13は、例えば自身が実装される自己側ノード(この場合はビデオカメラ装置1となる)と、IEEE1394バス3により接続される外部のノードとの間での、データ送受信を司る部位とされる。つまり、この場合には、PCIバス14(内部バス)とIEEE1394バス3(外部バス)との間での双方向のデータ伝送を行う。そのうえで、OHCI部13は、OHCIに対応、準拠した通信が行われるようにして構成されている。
バッファメモリ15は、OHCI部13を介してやりとりされるデータを必要に応じて書き込むことのできる記憶領域である。
なお、例えば実際においては、この図に示される部位は、LSI(Large Scale Integration)などによるハードウェア部品として構成することができる。
The OHCI unit 13 is a part that controls data transmission and reception between, for example, a self-side node (in this case, the video camera device 1) on which the OHCI unit 13 is mounted and an external node connected by the IEEE 1394 bus 3. The That is, in this case, bidirectional data transmission is performed between the PCI bus 14 (internal bus) and the IEEE 1394 bus 3 (external bus). In addition, the OHCI unit 13 is configured to perform communication complying with and complying with OHCI.
The buffer memory 15 is a storage area in which data exchanged via the OHCI unit 13 can be written as necessary.
In practice, for example, the portion shown in this figure can be configured as a hardware component such as an LSI (Large Scale Integration).

OHCIは、例えばIEEE1394データインターフェース規格上で、例えば特定メーカ(ベンダ)のコントローラチップに依存することなく、汎用のドライバにより通信が行えるようにすることを目的として定められた標準化規格(共通化規格)である。   OHCI is, for example, a standardization standard (common standard) defined for the purpose of enabling communication by a general-purpose driver on the IEEE 1394 data interface standard, for example, without depending on a controller chip of a specific manufacturer (vendor). It is.

図3は、OHCI部13としての一般的な内部構成例を示している。
この図に示すようにして、OHCI部13は、OHCIユニット21、PCIバスインターフェースブロック(PCI Bus Interface)22、IEEE1394リンク層・物理層ブロック(IEEE1394 Link and PHY)23から成る。
FIG. 3 shows a general internal configuration example as the OHCI unit 13.
As shown in this figure, the OHCI unit 13 includes an OHCI unit 21, a PCI bus interface block (PCI bus interface) 22, and an IEEE 1394 link layer / physical layer block (IEEE1394 Link and PHY) 23.

PCIバスインターフェースブロック22は、PCIバス14とOHCIユニット21との間で、PCIバス規格に対応するデータ入出力を実行する。
IEEE1394リンク層・物理層ブロック(IEEE1394 Link and PHY)23は、OHCIユニット21とIEEE1394バス3との間で、IEEE1394規格に対応するデータ入出力を実行する。
The PCI bus interface block 22 executes data input / output corresponding to the PCI bus standard between the PCI bus 14 and the OHCI unit 21.
The IEEE 1394 link layer / physical layer block (IEEE1394 Link and PHY) 23 executes data input / output corresponding to the IEEE 1394 standard between the OHCI unit 21 and the IEEE 1394 bus 3.

OHCIユニット21は、図示するようにして、IT(Isochronous Transmit)DMA(Direct Memory Access)ブロック、IT FIFO(First-In First-Out)ブロック、AT(Asynchronous Transmit) Request DMAブロック、AT Request FIFOブロック、AT Response DMAブロック、AT Response FIFOブロック、Physical Response Unit、AT Physical Response FIFOブロック、Physical Read Request Receiveブロック、Physical Read Request FIFOブロック、Physical Write Request Receiveブロック、Physical Write Request FIFOブロック、General Request Receive DMAブロック、AR(Asynchronous Receive) Request FIFOブロック、General Response Receive DMAブロック、AR Response FIFOブロック、IR(Isochronous Receive) DMAブロック、IR FIFOブロック、Self-ID Receive DMAブロック、Self-ID Receive FIFOブロック、内部レジスタ(Internal Registers)ブロックを、図示するようにして備えて成る。ここで、DMAの名称を有するブロック(DMAブロック)はDMA転送を実行するDMAコントローラであり、FIFOの名称を有するブロック(FIFOブロック)は、FIFOによるデータ入出力を実行することのできるコントローラである。   As shown in the figure, the OHCI unit 21 includes an IT (Isochronous Transmit) DMA (Direct Memory Access) block, an IT FIFO (First-In First-Out) block, an AT (Asynchronous Transmit) Request DMA block, an AT Request FIFO block, AT Response DMA block, AT Response FIFO block, Physical Response Unit, AT Physical Response FIFO block, Physical Read Request Receive block, Physical Read Request FIFO block, Physical Write Request Receive block, Physical Write Request FIFO block, General Request Receive DMA block, AR (Asynchronous Receive) Request FIFO block, General Response Receive DMA block, AR Response FIFO block, IR (Isochronous Receive) DMA block, IR FIFO block, Self-ID Receive DMA block, Self-ID Receive FIFO block, internal register (Internal Registers) block is provided as shown. Here, a block having a DMA name (DMA block) is a DMA controller that executes DMA transfer, and a block having a FIFO name (FIFO block) is a controller that can execute data input / output by FIFO. .

IT DMAブロック、IT FIFOブロックから成る部位は、アイソクロナス通信での送信に対応する動作を実行する系である。
AT Request DMAブロック、AT Request FIFOブロックから成る部位は、アシンクロナス通信でのリクエストの送信に対応する動作を実行する系である。
AT Response DMAブロック、AT Response FIFOブロックから成る部位は、アシンクロナス通信でのレスポンスの送信に対応する動作を実行する系である。
Physical Response Unit、AT Physical Response FIFOブロックから成る部位は、OHCIで規定されるPhysical Responseの送信に対応する動作を実行する系である。
Physical Read Request Receiveブロック、Physical Read Request FIFOブロックから成る部位は、Physical Read Requestの受信に対応する動作を実行する系である。
Physical Write Request Receiveブロック、Physical Write Request FIFOブロックから成る部位は、Physical Write Requestの受信に対応する動作を実行する系である。
General Request Receive DMAブロック、AR Request FIFOブロックから成る部位は、アシンクロナスでのリクエストの受信に対応する動作を実行する系である。
General Response Receive DMAブロック、AR Response FIFOブロックから成る部位は、アシンクロナスでのレスポンスの受信に対応する動作を実行する系である。
IR DMAブロック、IR FIFOブロックから成る部位は、アイソクロナス通信での受信に対応する動作を実行する系である。
Self-ID Receive DMAブロック、Self-ID Receive FIFOブロックから成る部位は、OHCIで規定されるSelf-IDの受信に対応する動作を実行する系である。
内部レジスタ(Internal Registers)は、リクエスト、レスポンスの送受信に応じて、この動作に利用されるべき所定の値がセットされる部位である。
これらの部位は、ソフトウェア(ドライバ)によりコントロールされる。なお、このソフトウェアとしての処理は、例えばCPU11がそのプログラムを実行することで実現される。
The part composed of the IT DMA block and the IT FIFO block is a system that executes an operation corresponding to transmission by isochronous communication.
The part composed of the AT Request DMA block and the AT Request FIFO block is a system that executes an operation corresponding to the transmission of a request in asynchronous communication.
The part composed of the AT Response DMA block and the AT Response FIFO block is a system that executes an operation corresponding to the transmission of a response in asynchronous communication.
A part composed of the Physical Response Unit and the AT Physical Response FIFO block is a system that executes an operation corresponding to the transmission of Physical Response defined by OHCI.
The part composed of the Physical Read Request Receive block and the Physical Read Request FIFO block is a system that executes an operation corresponding to the reception of the Physical Read Request.
The part composed of the Physical Write Request Receive block and the Physical Write Request FIFO block is a system that executes an operation corresponding to the reception of the Physical Write Request.
The part composed of the General Request Receive DMA block and the AR Request FIFO block is a system for executing an operation corresponding to the asynchronous request reception.
The part composed of the General Response Receive DMA block and the AR Response FIFO block is a system that executes an operation corresponding to the response reception in the asynchronous mode.
The part composed of the IR DMA block and the IR FIFO block is a system that executes an operation corresponding to reception by isochronous communication.
The part composed of the Self-ID Receive DMA block and the Self-ID Receive FIFO block is a system that executes an operation corresponding to reception of Self-ID defined by OHCI.
An internal register is a part in which a predetermined value to be used for this operation is set according to transmission / reception of a request and a response.
These parts are controlled by software (driver). Note that the processing as software is realized by the CPU 11 executing the program, for example.

このようにしてIEEE1394のデータインターフェースにおいてOHCIに準拠した構成を採ることとした場合、上記もしたようにソフトウェアがOHCI部13を利用して通信制御を実行することになる。このために、ソフトウェアにより多様な通信方式、機能などに対応できることになるので、この点で非常に広い汎用性、多機能性を有している。これが、標準化対応と共に、OHCIを採用することのおおきな利点の1つとなっている。   As described above, when the IEEE 1394 data interface adopts a configuration compliant with OHCI, the software executes communication control using the OHCI unit 13 as described above. For this reason, since various communication methods and functions can be supported by software, this embodiment has very wide versatility and multifunctionality. This is one of the great advantages of adopting OHCI along with standardization.

例えば、IEEE1394の上位通信プロトコルの1つとしてSBP(Serial Bus Protocol)−2やといわれる、SCSI(Small Computer System Interface)を基としたコマンドセットに対応するデータ通信プロトコルが知られている。なお、SBP−2ではアシンクロナス通信によりデータ伝送を行う。また、AV/C Commandといわれる、AV機器間での映像音声データの同期伝送をアイソクロナス通信により実現する通信プロトコルも知られている。上記図3に示すようなOHCI部13を備えていれば、例えばSBP2に対応するソフトウェア(ドライバ)を実装(インストール)することでSBP−2によるデータ通信が可能になるし、AV/C Commandに対応するソフトウェアを実装することで、AV/C Commandに応じたデータ伝送、通信を実行することも可能になる。   For example, a data communication protocol corresponding to a command set based on SCSI (Small Computer System Interface) called SBP (Serial Bus Protocol) -2 is known as one of the upper communication protocols of IEEE1394. In SBP-2, data transmission is performed by asynchronous communication. There is also known a communication protocol called AV / C Command that realizes synchronous transmission of video / audio data between AV devices by isochronous communication. If the OHCI unit 13 as shown in FIG. 3 is provided, for example, by installing (installing) software (driver) corresponding to SBP2, data communication by SBP-2 becomes possible, and AV / C Command By installing corresponding software, data transmission and communication according to AV / C Command can be executed.

しかしながら、OHCI部13によるデータ伝送にはソフトウェアの処理が介在する。例えば上記SBP−2の場合であれば、個々のIEEE1394のパケットをシステムメモリ上に形成する必要がある。このようにして、データ伝送に際してソフトウェアの処理が介在することで、例えばCPUの処理負担が重くなり、転送速度もその分低下することになる。
この問題は、例えば高速に処理を実行できる高性能なCPUのセットを採用すれば解決できる。しかし、例えば本実施の形態のビデオカメラ装置1をはじめとする機器では、低消費電力化などを優先して、低消費電力仕様の組み込み機器用CPUが採用される。このようなCPUは、処理性能にも限界があることから、データ転送速度の低下の問題が無視できなくなってくる。
However, data processing by the OHCI unit 13 involves software processing. For example, in the case of the SBP-2, it is necessary to form individual IEEE 1394 packets on the system memory. In this manner, software processing is involved in data transmission, so that, for example, the processing burden on the CPU becomes heavy, and the transfer speed is reduced accordingly.
This problem can be solved, for example, by adopting a high-performance CPU set that can execute processing at high speed. However, in devices such as the video camera device 1 of the present embodiment, for example, a low power consumption specification embedded device CPU is adopted with priority given to low power consumption. Such a CPU has a limit in processing performance, so the problem of a decrease in data transfer speed cannot be ignored.

そこで、本実施の形態としては、例えば上記低消費電力仕様の組み込み機器用のような処理性能に限界のあるCPUを採用した場合においても、充分なデータ転送速度の高速化が図られるように構成することとした。以降、この点について説明を行っていく。
なお、以降においては、本実施の形態のビデオカメラ装置1により、OHCI準拠のIEEE1394のデータインターフェース環境で、SBP−2により通信を実行する場合に対応する構成を例に挙げて述べていく。
Therefore, the present embodiment is configured such that, for example, a sufficiently high data transfer rate can be achieved even when a CPU with limited processing performance such as that for an embedded device with low power consumption is used. It was decided to. Hereinafter, this point will be described.
In the following description, a configuration corresponding to a case where communication is performed by SBP-2 in an OHCI-compliant IEEE 1394 data interface environment by the video camera device 1 of the present embodiment will be described as an example.

図4は、本実施の形態において備えられるOHCI部13の内部構成例を示している。なお、この図において図3と同一部分には同一符号を付して説明を省略する。
この図に示すようにして、本実施の形態におけるOHCI部13は、PCIバスインターフェースブロック22とIEEE1394リンク層・物理層ブロック(IEEE1394 Link and PHY)23との間のOHCIバスに対応する系において、図3に示したOHCIユニット21(第1の伝送部)に加えて、SBP2ユニット30(第2の伝送部)を設けることとしている。
FIG. 4 shows an internal configuration example of the OHCI unit 13 provided in the present embodiment. In this figure, the same parts as those in FIG.
As shown in this figure, the OHCI unit 13 in this embodiment is a system corresponding to the OHCI bus between the PCI bus interface block 22 and the IEEE 1394 link layer / physical layer block (IEEE1394 Link and PHY) 23. In addition to the OHCI unit 21 (first transmission unit) shown in FIG. 3, an SBP2 unit 30 (second transmission unit) is provided.

SBP2ユニット30は、SBP2に対応する所定の機能をハードウェアにより実現するようにして構成される部位である。
SBP2では、IEEE1394でいうノード(Node)について、命令を発行する側のNodeをInitiatorといい、この命令に応答するNodeをTargetとして規定している。また、SBP2では、TargetにおけるAgent(エージェント)機能として、Command Block Agent、Management Agentが規定される。本実施の形態のSBP2ユニット30では、これらのAgent機能うち、Command Block Agentに対応する機能を与えることとしている。
なお、SBP2ユニット30として、Management Agentにも対応した構成を与えることは可能であるが、この場合には、ハードウェア構成が複雑になり、設計・製造等も難しくなってくる。そこで、本実施の形態のSBP2ユニット30としては、ハードウェア構成の複雑さと、後述するデータ転送速度の向上効果の有効性とのバランスを考慮して、Command Block Agentのみに対応したハードウェアの構成としている。
The SBP2 unit 30 is a part configured to realize a predetermined function corresponding to the SBP2 by hardware.
In SBP2, with respect to a node referred to in IEEE 1394, a node that issues a command is referred to as an initiator, and a node that responds to the command is defined as a target. In SBP2, Command Block Agent and Management Agent are defined as an Agent function in Target. In the SBP2 unit 30 of the present embodiment, among these Agent functions, a function corresponding to the Command Block Agent is given.
In addition, although it is possible to give the SBP2 unit 30 a configuration corresponding to the Management Agent, in this case, the hardware configuration becomes complicated and the design / manufacturing becomes difficult. Therefore, the SBP2 unit 30 of the present embodiment has a hardware configuration that supports only the Command Block Agent in consideration of the balance between the complexity of the hardware configuration and the effectiveness of the data transfer rate improvement effect described later. It is said.

図示するようにして、SBP2ユニット30は、Command Block Agent Unit31、AT FAM(File Access Mode) DMAブロック32、Header・Footer Add Block33、AT FAM FIFOブロック34、AR_FAM DMAブロック35、Header・Footer Remove Block36、AR_FAM FIFOブロック37を備えて構成される。   As shown in the figure, the SBP2 unit 30 includes a Command Block Agent Unit 31, an AT FAM (File Access Mode) DMA block 32, a Header / Footer Add Block 33, an AT FAM FIFO block 34, an AR_FAM DMA block 35, a Header / Footer Remove Block 36, An AR_FAM FIFO block 37 is provided.

Command Block Agent Unit31は、SBP−2対応ブロック30の中核となる部位であって、ハードウェアにより、Command Block Agentに対応する処理を実行するようにして構成される。例えばCommand Block Agent Unit31は、Command Block Agentに対応するために、Fetch Agent State Machine 及びPage Table FIFOに対応するハードウェア構成を備える。   The Command Block Agent Unit 31 is a core part of the SBP-2 compatible block 30 and is configured to execute processing corresponding to the Command Block Agent by hardware. For example, the Command Block Agent Unit 31 has a hardware configuration corresponding to the Fetch Agent State Machine and the Page Table FIFO in order to support the Command Block Agent.

AT FAM DMAブロック32は、DMAコントローラとして、アシンクロナス転送によりファイルアクセスモードで送信すべきCommand Block Agent対応のデータ(Readデータなど)を、PCIバス側からDMA(Direct Memory Access)で読み込み、Header・Footer Add Block33に渡す。
Header・Footer Add Block33は、入力したデータに対してデータに対してヘッダとフッタを付加して、IEEE1394により規定されるパケットの構造とし、AT FAM FIFOブロック34に出力する。なお、フッタには、エラーチェックコードであるCRCが含まれるが、このCRCも、例えばHeader・Footer Add Block33にて生成する。
AT FAM FIFOブロック34は、入力されるデータをシリアルデータとしてIEEE1394リンク層・物理層ブロック23に渡して、IEEE1394バス3上を伝送させる。
The AT FAM DMA block 32, as a DMA controller, reads command block agent compatible data (Read data, etc.) to be transmitted in the file access mode by asynchronous transfer from the PCI bus side by DMA (Direct Memory Access), and the Header / Footer Pass to Add Block 33.
The header / footer add block 33 adds a header and a footer to the input data to form a packet structure defined by IEEE 1394, and outputs the packet structure to the AT FAM FIFO block 34. The footer includes a CRC which is an error check code. This CRC is also generated by, for example, the Header / Footer Add Block 33.
The AT FAM FIFO block 34 passes the input data as serial data to the IEEE 1394 link layer / physical layer block 23 to be transmitted on the IEEE 1394 bus 3.

また、AR_FAM FIFOブロック37は、IEEE1394バス3からIEEE1394リンク層・物理層ブロック23を介して得られるCommand Block Agent対応のパケット(Writeデータ、Command Block ORB、Page Tableなど)を入力し、Header・Footer Remove Block36に渡す。
Header・Footer Remove Block36は、渡されたパケットからヘッダ、フッタを取り除いてデータ部分を取り出し、AR_FAM DMAブロック35に渡す。
AR_FAM DMAブロック35は、渡されたデータをDMA転送によりPCIバスインターフェースブロック22に渡す。これにより、例えばPCIバス14と接続されているシステムメモリ(メモリ12)などに対して、CPU11を介在することなくDMAによりデータの書き込みが行われる。
Further, the AR_FAM FIFO block 37 inputs a command block agent compatible packet (Write data, Command Block ORB, Page Table, etc.) obtained from the IEEE 1394 bus 3 through the IEEE 1394 link layer / physical layer block 23, and generates a header / footer. Pass to Remove Block 36.
The Header / Footer Remove Block 36 removes the header and footer from the passed packet, extracts the data portion, and passes it to the AR_FAM DMA block 35.
The AR_FAM DMA block 35 passes the passed data to the PCI bus interface block 22 by DMA transfer. As a result, for example, data is written to the system memory (memory 12) connected to the PCI bus 14 by DMA without using the CPU 11.

ここまでの説明から分かるように、本実施の形態では、ハードウェア(Header・Footer Add Block33、Header・Footer Remove Block36)によりIEEE1394パケットのヘッダ、フッタの付加、除去の処理を行える。例えば、OHCIユニット21を使用する場合には、このヘッダ、フッタの付加、除去の処理も、ソフトウェアの処理が介在する。つまり、このようにして、ハードウェアによりヘッダ、フッタについての処理が行われることで、ソフトウェアによる割り込み処理に要する時間が短縮され、その分、データ転送速度の向上に寄与することになる。   As can be seen from the above description, in the present embodiment, processing of adding and removing headers and footers of IEEE 1394 packets can be performed by hardware (Header / Footer Add Block 33, Header / Footer Remove Block 36). For example, when the OHCI unit 21 is used, this header and footer addition / removal processing also involves software processing. In other words, the processing for the header and footer is performed by hardware in this way, so that the time required for interrupt processing by software is shortened, thereby contributing to the improvement of the data transfer rate.

ここで、本実施の形態の場合、SBP2ユニット30は、先に述べたように、Command Block Agentのみに対応したハードウェア構成を有し、例えばManagement Agentなどの他のAgentには対応させないこととしている。このために、SBP2ユニット30を備えるOHCI部13としては、Command Block Agentに対応するパケットについてはSBP2ユニット30に渡し、これ以外のManagement Agentなどに対応するパケットについては、適正に、SBP2ユニット30が受け付けることなく、OHCIユニット21に渡して処理してもらえるようにする仕組みが必要になる。本実施の形態としては、この仕組みを次のようにして与える。   Here, in the case of the present embodiment, as described above, the SBP2 unit 30 has a hardware configuration that supports only the Command Block Agent and does not support other Agents such as Management Agent, for example. Yes. For this reason, the OHCI unit 13 including the SBP2 unit 30 passes the packet corresponding to the Command Block Agent to the SBP2 unit 30, and appropriately handles the packet corresponding to the other Management Agent and the like. A mechanism is required to pass it to the OHCI unit 21 for processing without acceptance. In the present embodiment, this mechanism is given as follows.

先ず、SBP2において規定されている、Command Block Agentに対応するCommand Block Agent Register(対象エージェント機能対応レジスタ)は、本実施の形態では、Command Block Agent Unit31が処理するものとする。
Command Block Agent Registerを図5に示す。Command Block Agent Registerとしては、AGENT_STATE , AGENT_RESET , ORB_POINTER , DOORBELL , UNSOLICITED_STATUS_ENABLEが規定されている。また、各Registerには、オフセットアドレス(Relative offset)が規定されており、オフセットアドレスは、それぞれ、AGENT_STATEが00h、AGENT_RESETが04h、ORB_POINTERが08h、DOORBELLが10h、UNSOLICITED_STATUS_ENABLEが14hとなっている。
First, in this embodiment, the Command Block Agent Unit 31 corresponding to the Command Block Agent (target agent function corresponding register) defined in the SBP 2 is processed.
The Command Block Agent Register is shown in FIG. As the Command Block Agent Register, AGENT_STATE, AGENT_RESET, ORB_POINTER, DOORBELL, and UNSOLICITED_STATUS_ENABLE are defined. Each register defines an offset address (Relative offset). AGENT_STATE is 00h, AGENT_RESET is 04h, ORB_POINTER is 08h, DOORBELL is 10h, and UNSOLICITED_STATUS_ENABLE is 14h.

Command Block Agent Registerの実際のアドレスは、SBP2により規定されるLogin Responseにおけるcommand block agent(Fetch Agent CSR Base Address)に対して、上記図5に示される対応のオフセットアドレスを加算したものとなる。つまり、例えばDOORBELLであれば、Login Responseにおけるcommand block agentに格納される値に対して、10hを加算して得られる値が、当該DOORBELLのアドレスとなる。
ソフトウェアによりコントロールされるManagement Agentは、Fetch Agent CSR base address registerをはじめとする所要のregisterをセットしてstart bit(login flag)をセットする。SBP2ユニット30のCommand Block Agent Unit31は、このstart bitがセットされることに応じて受信可能な状態となるようにする。
この後において、Command Block Agent Unit31は、例えばパケット(quadlet write)の受信に応じて、下記の条件が満たされているか否かを判定する。
(source ID==Initiator)&&(Fetch Agent CSR base address+00h〜1Ch)
つまり、受信パケット(quadlet write)がInitiatorであるnodeからのものであり、それがCommand Block Agent Registerに対応するものであるか、あるいはCommand Block Agent Register以外のRegisterに対応するものであるかどうかをみる。
The actual address of the Command Block Agent Register is obtained by adding the corresponding offset address shown in FIG. 5 to the command block agent (Fetch Agent CSR Base Address) in the Login Response defined by SBP2. That is, for example, in the case of DOORBELL, the value obtained by adding 10h to the value stored in the command block agent in Login Response is the address of the DOORBELL.
Management Agent controlled by software sets necessary register including Fetch Agent CSR base address register and sets start bit (login flag). The Command Block Agent Unit 31 of the SBP2 unit 30 is set in a receivable state according to the start bit being set.
Thereafter, the Command Block Agent Unit 31 determines whether or not the following conditions are satisfied, for example, in response to reception of a packet (quadlet write).
(Source ID == Initiator) && (Fetch Agent CSR base address + 00h ~ 1Ch)
That is, whether the received packet (quadlet write) is from the initiator node and whether it corresponds to the Command Block Agent Register, or whether it corresponds to a Register other than the Command Block Agent Register View.

上記の条件判定のためには、Fetch Agent CSR base address registerを参照する。本実施の形態に対応して規定したFetch Agent CSR base address register(s)を図6に示す。
CSR base address registerは、図6(a)に示すFetch Agent CSR base address Hi registerと、図6(b)に示すFetch Agent CSR base address Lo registerとから成る。
図6(a)のFetch Agent CSR base address Hi registerは、32ビットであり、上位16ビットは、Node IDの領域とされて、現在Login中のInitiatorのNode IDを示す。下位16ビットのoffset_hiは、48ビットから成るFetch Agent CSR base addressの上位16ビットとなる。図6(b)のFetch Agent CSR base address Lo registerの32ビットは、offset_loとされて、Fetch Agent CSR base addressの下位32ビットとなる。つまり、Fetch Agent CSR base address Hi register のoffset_hiとFetch Agent CSR base address Lo registerのoffset_loとにより、Fetch Agent CSR base addressが表される。
Refer to the Fetch Agent CSR base address register for the above judgment. FIG. 6 shows the Fetch Agent CSR base address register (s) defined corresponding to the present embodiment.
The CSR base address register includes a Fetch Agent CSR base address Hi register shown in FIG. 6A and a Fetch Agent CSR base address Lo register shown in FIG.
The Fetch Agent CSR base address Hi register in FIG. 6A is 32 bits, and the upper 16 bits are a Node ID area and indicate the Node ID of the initiator currently logged in. The lower 16 bits of offset_hi are the upper 16 bits of the 48-bit Fetch Agent CSR base address. The 32 bits of the Fetch Agent CSR base address Lo register in FIG. 6B are set to offset_lo and become the lower 32 bits of the Fetch Agent CSR base address. That is, the Fetch Agent CSR base address Hi register offset_hi and the Fetch Agent CSR base address Lo register offset_lo represent the Fetch Agent CSR base address.

上記の条件判定にあたっては、例えば先ず、Fetch Agent CSR base address Hi registerの上位16ビットが示すNode IDと、source IDとを比較して、一致しているか否かについて判定する。
ここで、Node IDとsource IDが一致していなければ、この段階で条件を満たさないことになるので、受信パケットは、例えばManagement Agentに対応するものであるとして、OHCIユニット21に渡す。
これに対して、Node IDとsource IDが一致しているのであれば、次に、受信パケット(quadlet write)が示すアドレスが、Fetch Agent CSR base address+00h〜1Chの範囲内であるかについても判定する。このときにも、Fetch Agent CSR base address registerを参照して、Fetch Agent CSR base addressを取得し、これに00h、1Chを加算することで、Fetch Agent CSR base address+00h〜1Chとしての実際のアドレスを特定できる。そして、受信パケット(quadlet write)が示すアドレスが、Fetch Agent CSR base address+00h〜1Chの範囲内であるとの判定結果が得られると、ここではじめて条件を満たすことになるので、Command Block Agent Unit31は、受信パケットを受け付けて処理を実行する。これに対して、受信パケット(quadlet write)が示すアドレスが、Fetch Agent CSR base address+00h〜1Chの範囲外であるとの判定結果が得られたとすると、条件を満たさなくなるので、この場合にも、受信パケットをOHCIユニット21に渡す。
本実施の形態では、このようにしてパケットの振り分けを行う。
In the above condition determination, for example, first, the Node ID indicated by the upper 16 bits of the Fetch Agent CSR base address Hi register is compared with the source ID to determine whether or not they match.
Here, if the Node ID and the source ID do not match, the condition is not satisfied at this stage. Therefore, the received packet is passed to the OHCI unit 21 assuming that it corresponds to the Management Agent, for example.
On the other hand, if the Node ID and source ID match, it is next determined whether the address indicated by the received packet (quadlet write) is within the range of Fetch Agent CSR base address + 00h to 1Ch. . Also at this time, refer to the Fetch Agent CSR base address register, obtain the Fetch Agent CSR base address, and add 00h and 1Ch to this to identify the actual address as Fetch Agent CSR base address + 00h to 1Ch it can. Then, when the determination result that the address indicated by the received packet (quadlet write) is within the range of Fetch Agent CSR base address + 00h to 1Ch is obtained, the condition is satisfied for the first time, so the Command Block Agent Unit 31 The received packet is received and the process is executed. On the other hand, if it is determined that the address indicated by the received packet (quadlet write) is outside the range of Fetch Agent CSR base address + 00h to 1Ch, the condition will not be met. The packet is passed to the OHCI unit 21.
In the present embodiment, packet distribution is performed in this way.

そして、上記のようにしてOHCI部13においてSBP2ユニット30を設けることにより、SBP2におけるRead、Writeなどに応じたデータ転送を実行したときの処理速度は、以降において述べるようにして、大幅に向上されるものである。   By providing the SBP2 unit 30 in the OHCI unit 13 as described above, the processing speed when executing data transfer according to Read, Write, etc. in the SBP2 is greatly improved as described below. Is.

ここで、図7、図8のシーケンス図は、上記図4に示した実施の形態のOHCI部13、即ちSBP対応ブロック30を備えるOHCI部13を実装した場合の、PC(編集装置2)とビデオカメラ装置1との間でのReadコマンド(File read Command:ファイル読み出しコマンド)に応じたトランザクションを示している。
これに対して図9、図10は、先に図3に示した、SBP2ユニット30が設けられていない一般的なOHCI部13を実装した例(一般例)の場合の、PCとビデオカメラ装置1との間でのFile read Commandに応じたトランザクションを示している。
なお、File read Commandは、InitiatorがTargetからデータ読出を行うためのコマンドであり、従って、ファイルのデータは、TargetからInitiatorに転送するものとなる。
Here, the sequence diagrams of FIG. 7 and FIG. 8 show the PC (editing apparatus 2) when the OHCI unit 13 of the embodiment shown in FIG. 4 above, that is, the OHCI unit 13 including the SBP corresponding block 30 is mounted. A transaction according to a Read command (File read Command) with the video camera device 1 is shown.
On the other hand, FIG. 9 and FIG. 10 show a PC and a video camera apparatus in the case of the example (general example) in which the general OHCI unit 13 not provided with the SBP2 unit 30 shown in FIG. The transaction according to File read Command with 1 is shown.
The file read command is a command for the initiator to read data from the target, and therefore the file data is transferred from the target to the initiator.

先ず、実施の形態に対応する図7、図8においては、トランザクションを成す各処理を実行する部位として、PC Initiator、OHCI Unit、CBA Unit、Interrupt Handler、OHCI Task、Transaction Task、CBA Task、other taskが示されている。
SBP2では、命令を発行するInitiatorと、この命令に応答するTargetとが規定されるが、この場合には、PC(編集装置2)がInitiatorとなり、ビデオカメラ装置1がTargetとなる。
PC Initiatorは、InitiatorであるPCを表す。なお、ここでのPC Initiatorは、OHCIに準拠したIEEE1394対応の通信ボードなどのハードウェアが相当する。
First, in FIG. 7 and FIG. 8 corresponding to the embodiment, PC Initiator, OHCI Unit, CBA Unit, Interrupt Handler, OHCI Task, Transaction Task, CBA Task, and other task are used as parts for executing each process constituting a transaction. It is shown.
In SBP2, an initiator that issues a command and a target that responds to the command are defined. In this case, the PC (editing device 2) is the initiator, and the video camera device 1 is the target.
PC Initiator represents a PC that is an initiator. Note that the PC Initiator here corresponds to hardware such as an IEEE1394 compatible communication board compliant with OHCI.

OHCI Unitは、OHCI部13におけるOHCIユニット21に相当する部位であり、ハードウェア層での処理となる。従って、上記PC InitiatorとOHCI Unitとの間でのデータ伝送(転送)はハードウェア同士でのやりとりになる。   The OHCI Unit is a part corresponding to the OHCI unit 21 in the OHCI unit 13 and is a process in the hardware layer. Therefore, data transmission (transfer) between the PC Initiator and the OHCI Unit is exchanged between hardware.

CBA Unitは、Command Block Agent(CBA) Unit31に対応するが、ここでは、OHCI部13のSBP2ユニット21における相当する部位として扱ってよい。SBP2ユニット21もハードウェア(H/W)により構成されるので、PC InitiatorとCBA Unitとの間でのデータ伝送もハードウェア間でのやりとりになる。   The CBA Unit corresponds to the Command Block Agent (CBA) Unit 31, but may be treated as a corresponding part in the SBP 2 unit 21 of the OHCI unit 13 here. Since the SBP2 unit 21 is also configured by hardware (H / W), data transmission between the PC Initiator and the CBA Unit is also exchanged between the hardware.

Interrupt Handler、OHCI Task、Transaction Task、CBA Task、及びother taskは、それぞれSBP2対応のドライバが実行するタスクとなる。other taskは、Interrupt Handler、OHCI Task、Transaction Task、CBA Task以外の所定のタスクとなる。即ち、Interrupt Handler、OHCI Task、Transaction Task、CBA Task、及びother taskが、SBP2に対応するソフトウェア処理(タスク)となる。なお、Interrupt Handler、OHCI Task、Transaction Task、CBA Task、及びother taskについてはOHCIソフトウェア(OHCI S/W)ともいう。   Interrupt Handler, OHCI Task, Transaction Task, CBA Task, and other task are tasks executed by the SBP2-compatible driver. Other task is a predetermined task other than Interrupt Handler, OHCI Task, Transaction Task, and CBA Task. That is, Interrupt Handler, OHCI Task, Transaction Task, CBA Task, and other task are software processes (tasks) corresponding to SBP2. Note that the Interrupt Handler, OHCI Task, Transaction Task, CBA Task, and other task are also referred to as OHCI software (OHCI S / W).

図7、図8においては、File Read Commandに対応するトランザクションを、シーケンスseq1〜seq4により順次区分して示している。
先ず、シーケンスseq1は、PC InitiatorがTargetに対してDoorBellを送信したことに応答して、Target側にてORB(Operation Request Block)を取得してレジスタに保持するまでの処理となる。
シーケンスseq1では、先ず、PC InitiatorがDoorBellを送信する。OHCI部13においては、OHCIユニット21(OHCI Unit)とSBP2ユニット30(CBA Unit)とが備えられているが、このDoorBellについては、SBP2ユニット30(CBA Unit)が受け付ける。以降のPC Initiator側との送受信も、SBP2ユニット30(CBA Unit)側が実行する。
In FIG. 7 and FIG. 8, transactions corresponding to the File Read Command are sequentially divided by sequences seq1 to seq4.
First, the sequence seq1 is a process from when the PC Initiator transmits DoorBell to the Target until an ORB (Operation Request Block) is acquired on the Target side and held in the register.
In the sequence seq1, first, the PC Initiator transmits DoorBell. The OHCI unit 13 includes an OHCI unit 21 (OHCI Unit) and an SBP2 unit 30 (CBA Unit). The DoorBell receives the SBP2 unit 30 (CBA Unit). Subsequent transmission and reception with the PC Initiator side is also executed by the SBP2 unit 30 (CBA Unit) side.

CBA Unitは、DoorBellを受け取ると、ソフトウェアの介在無しに、直ちにDoorBellに対するResponseをPC Initiatorに返す。
次に、CBA Unitは、ORB Pointer Read Request(ORB Ptr Read Req)を送信する。PC Initiatorからは、ORB Pointer Read Requestに対するレスポンスとして、ORB Pointer Read Responseが返される。CBA Unitは、これを受信する。このORB Pointer Read Responseには、ORBをフェッチ(Fetch)しているPC Initiator側のMemory Addressが示されている。
そこで、CBA Unitは、ORB Read Requestを送信する。
PC Initiatorからは、ORB Read Requestに対するレスポンス(ORB Read Response(ORB Read Resp))として、File Read CommandとしてのCommand Block ORBを返送する。
Upon receiving DoorBell, the CBA Unit immediately returns a response to DoorBell to the PC Initiator without software intervention.
Next, the CBA Unit transmits an ORB Pointer Read Request (ORB Ptr Read Req). The PC Initiator returns an ORB Pointer Read Response as a response to the ORB Pointer Read Request. The CBA Unit receives this. In this ORB Pointer Read Response, a Memory Address on the PC Initiator side that fetches (or fetches) the ORB is shown.
Therefore, the CBA Unit transmits an ORB Read Request.
As a response to the ORB Read Request (ORB Read Response (ORB Read Resp)), the PC Initiator returns a Command Block ORB as a File Read Command.

図25は、File Read CommandとしてのCommand Block ORBの構造を示している。
このCommand Block ORBのcdb[0]には、図示するようにして4’hC3が格納されているが、これにより、現Command Block ORB がFile Read Commandであることを示す。
FIG. 25 shows the structure of a Command Block ORB as a File Read Command.
4'hC3 is stored in cdb [0] of this Command Block ORB as shown in the figure, which indicates that the current Command Block ORB is a File Read Command.

ここで、上記Command Block ORBにおけるp(page_table_present_bit:1bit)の領域には1を格納しているものとする。p=1であるときには、現Command Block ORBにおけるdata_descriptorにより示されるアドレスにPage Tableが保持されていることを示す。   Here, it is assumed that 1 is stored in the area of p (page_table_present_bit: 1 bit) in the Command Block ORB. When p = 1, this indicates that the Page Table is held at the address indicated by data_descriptor in the current Command Block ORB.

シーケンスseq2は、上記Command Block ORBの受信に応じて、TargetがPC Initiator側からPage Tableを取得するための処理となる。
ここでは先ず、CBA Unitが、上記data_descriptorにより示されるアドレスに対してPage Table Requestを送信する。
これに応答して、PC InitiatorからCBA Unitに対しては、Page Table Responseとして、Page Table ListのCommand Block ORB(ORB_page_table)を返送する。
CBA Unitは、受信したPage Table Listを保持する。これとともに、コマンドに応じた値をセットしたうえで、例えばDMA転送を実行してメモリ12(又はバッファメモリ15)に書き込んで保持させる。
図26は、ORB_page_tableの構造を示している。この構造において、少なくとも、図において示すCommand ORBとPage Table Listの部分がメモリ12(又はバッファメモリ15)において保持される。これにより、Targetのソフトウェアが、このCommand ORBとPage Table Listを直接参照させるようにできる。例えばこれまでにおいて、OHCIソフトウェアがCommand ORB、Page Table Listを参照しようとするときにはIEEE1394のアシンクロナスパケットをチェックして解釈する必要があった。これに対して、本実施の形態であれば、OHCIソフトウェアは、メモリ12において指定されたCommand ORB、Page Table Listのためのメモリ領域にアクセスすることで、例えばどのようなコマンドがリクエストされているのかを認識でき、Page Table Listの内容を認識できる。
The sequence seq2 is a process for the Target to acquire the Page Table from the PC Initiator side in response to the reception of the Command Block ORB.
Here, first, the CBA Unit transmits a Page Table Request to the address indicated by the data_descriptor.
In response to this, a Command Block ORB (ORB_page_table) of Page Table List is returned as a Page Table Response from the PC Initiator to the CBA Unit.
The CBA Unit holds the received Page Table List. At the same time, after setting a value according to the command, for example, DMA transfer is executed and written and held in the memory 12 (or buffer memory 15).
FIG. 26 shows the structure of the ORB_page_table. In this structure, at least the Command ORB and Page Table List shown in the figure are held in the memory 12 (or the buffer memory 15). This allows Target software to directly reference the Command ORB and Page Table List. For example, in the past, when the OHCI software tried to refer to the Command ORB and Page Table List, it was necessary to check and interpret the IEEE 1394 asynchronous packet. On the other hand, in this embodiment, the OHCI software accesses the memory area for the Command ORB and Page Table List specified in the memory 12, for example, what command is requested. Can recognize the contents of Page Table List.

この後、CBA UnitはOHCIソフトウェアのInterrupt Handlerに対してInterrupt(割込要求)を出力(assert)する。
この割り込み要求に応答して、OHCIソフトウェアでは、図示するようにして処理を実行する。OHCIソフトウェアは、Command ORBとPage Table Listを読み出し、エラーチェックを実行する。また、送信用descriptorと送信データが格納されるTarget側のメモリアドレスをセットする。このメモリアドレスのセットにはOutput More descriptorを利用する。この際、Output More descriptorによっては、メモリアドレスと転送データサイズが指定されるようにする。本実施の形態では、送信先アドレス、packet lengthは、CBA Unitが指定するようにされており、OHCIソフトウェアが指定する必要はない。
そして、run Bitをセットする。なお、このときに用いるContextはSBP2 transmit Contextとなる。
Thereafter, the CBA Unit outputs (asserts) an Interrupt (interrupt request) to the Interrupt Handler of the OHCI software.
In response to this interrupt request, the OHCI software executes processing as shown. The OHCI software reads the Command ORB and Page Table List and performs error checking. Also, the memory address on the target side where the transmission descriptor and transmission data are stored is set. Use Output More descriptor to set this memory address. At this time, depending on the Output More descriptor, the memory address and the transfer data size are specified. In the present embodiment, the transmission destination address and the packet length are specified by the CBA Unit, and need not be specified by the OHCI software.
And set run bit. The context used at this time is SBP2 transmit Context.

シーケンスseq3(図7−図8)は、ファイルのデータ(Readデータ:読み出しデータ)を転送するための処理となる。
Readデータは、上記シーケンスseq2でのOHCIソフトウェアの処理によって、IEEE1394パケットのヘッダ、フッタが付加されていない状態で、バッファメモリ15に書き込まれる。
CBA Unitは、バッファメモリ15から指定されたサイズ分のReadデータを読み出して、Data Write RequestとしてPC Initiatorに送信する。この際には、readデータは、SBP2ユニット30におけるAT FAM(File Access Mode) DMAブロック32、Header・Footer Add Block33、AT FAM FIFOブロック34を通過することで、IEEE1394パケットのヘッダ・フッタが付加されて、IEEE1394バス3経由でPC Initiatorに対して送信されることになる。
PC Initiatorは、Data Write Requestを受信するとData Write Response(ACK : Acknowledge)を返送してくる。CBA Unitは、このData Write Responseを受信したことに応じて、次のReadデータ(Data Write Request)の送信を行う。これを必要なReadデータの転送量に応じて繰り返す。
The sequence seq3 (FIGS. 7 to 8) is a process for transferring file data (Read data: read data).
Read data is written into the buffer memory 15 without the addition of the header and footer of the IEEE 1394 packet by the processing of the OHCI software in the sequence seq2.
The CBA Unit reads the specified size of read data from the buffer memory 15 and transmits it to the PC Initiator as a Data Write Request. At this time, the read data passes through the AT FAM (File Access Mode) DMA block 32, the Header / Footer Add Block 33, and the AT FAM FIFO block 34 in the SBP2 unit 30, so that the header and footer of the IEEE 1394 packet are added. Thus, the data is transmitted to the PC Initiator via the IEEE 1394 bus 3.
When receiving the Data Write Request, the PC Initiator returns a Data Write Response (ACK: Acknowledge). In response to receiving this Data Write Response, the CBA Unit transmits the next Read data (Data Write Request). This is repeated according to the necessary read data transfer amount.

CBA Unitは、最後のReadデータ(Data Write Request)の送信と,これに応答したData Write Responseの受信を完了すると、File Read Commandに応じたデータ転送の正常終了を、OHCIソフトウェアに通知する。このために、CBA Unitは、Desc(Descriptor)Completeによる割り込み要求をInterrupt Handlerに対して行う。これに応じてOHCIソフトウェアは、図に示すタスク間での処理を実行する。これにより、メモリにおけるReadデータの開放が行われる。   When the CBA Unit completes the transmission of the last Read data (Data Write Request) and the reception of the Data Write Response in response thereto, it notifies the OHCI software of the normal end of the data transfer according to the File Read Command. For this purpose, the CBA Unit makes an interrupt request by Desc (Descriptor) Complete to the Interrupt Handler. In response to this, the OHCI software executes processing between tasks shown in the figure. Thereby, the read data in the memory is released.

また、シーケンスseq4として、CBA Unitは、Desc(Descriptor)Completeによる割り込みの後、PC Initiatorに対してステイタス(status block notice)を返す。次に、CBA Unitは、PC Initiatorからのstatus block noticeに応答したACKを受信すると、ORB Completeとしての割り込み要求をInterrupt Handlerに出力する。これを受けて、OHCIソフトウェアにおける所定のタスクは、ORB Completeに対応する処理を図のようにして実行する。これにより、File Read Commandに応じたトランザクションが完了する。   Also, as a sequence seq4, the CBA Unit returns a status (status block notice) to the PC Initiator after interruption by Desc (Descriptor) Complete. Next, when receiving the ACK in response to the status block notice from the PC Initiator, the CBA Unit outputs an interrupt request as ORB Complete to the Interrupt Handler. In response to this, a predetermined task in the OHCI software executes a process corresponding to ORB Complete as shown in the figure. Thereby, the transaction according to the File Read Command is completed.

次に、上記図7、図8に示した本実施の形態との比較として、図9、図10により、図3のOHCI部13の構成に対応した一般例の場合における、同じFile Read Commandに対応するトランザクションについて説明する。確認のために、図3に示される、一般例としてのOHCI部13は、SBP2ユニット30が省略されたOHCIユニット21のみを備える構成となる。実施の形態に対応する図4の構成では、OHCI部13において、OHCIユニット21とSBP2ユニット30が備えられていたことに応じて、図7、図8においては、Target側のハードウェアとして、OHCI UnitとCBA Unitが示されていた。これに対して、図3の一般的構成では、上記もしているように、SBP2ユニット30が省略されてOHCIユニット21のみを備えるので、Target側のハードウェアとしてはOHCI Unitのみとなっている。   Next, as a comparison with the present embodiment shown in FIGS. 7 and 8, the same File Read Command in the case of the general example corresponding to the configuration of the OHCI unit 13 in FIG. The corresponding transaction will be described. For confirmation, the OHCI unit 13 as a general example shown in FIG. 3 includes only the OHCI unit 21 in which the SBP2 unit 30 is omitted. In the configuration of FIG. 4 corresponding to the embodiment, according to the fact that the OHCI unit 13 is provided with the OHCI unit 21 and the SBP2 unit 30, in FIG. 7 and FIG. Unit and CBA Unit were shown. On the other hand, in the general configuration of FIG. 3, as described above, the SBP2 unit 30 is omitted and only the OHCI unit 21 is provided, so that the hardware on the target side is only the OHCI unit.

図9、図10においても、File Read Commandに対応するトランザクションを、シーケンスseq1〜seq4により順次区分して示している。
図7、図8と同様に、シーケンスseq1は、PC InitiatorがTargetに対してDoorBellを送信したことに応答して、Target側にてORB(Operation Request Block)を取得してレジスタに保持するための処理である。
図9のシーケンスseq1においても、先ず、PC InitiatorがDoorBellを送信する。
OHCI Unitは、DoorBellを受け取ったことに応じて、Interrupt Handlerに対して割り込み要求(Interrupt)を出力する。これに応答して、OHCIソフトウェアは、図示するようにして処理を実行する。この過程において、Transaction TaskからのWrite Responseに応じて、OHCI Unitは、DoorBellに応答したレスポンス(Write Response)をPC Initiatorに返す。
また、CBA Taskは、TR_DATA.indicateが渡されたことに応じて、ORB Pointer RequestをOHCI Unitに渡す。これを受けて、OHCI Unitは、PC Initiatorに対してORB Pointer Readを送信する。PC Initiatorは、ORB Pointer Read Requestに対するレスポンスとして、ORB Pointer Read Responseを返送してくる。OHCI Unitは、これを受信したことに応じて、Interrupt Handlerに対してInterruptを出力する。OHCIソフトウェアは、このInterruptに応答して、図示するようにしてORB Pointer Read Responseの受信に対応する処理を実行し、CBA TaskにてTR_DATA.confirmationを受け取る段階にまで至ると、次にCBA TaskからOHCI Unitに対してORB Read Requestを出力する。OHCI Unitは、これに応答して、PC Initiatorに対してORB Read Requestを送信する。
9 and 10 also show the transactions corresponding to the File Read Command sequentially divided by sequences seq1 to seq4.
Similar to FIGS. 7 and 8, the sequence seq1 is used to acquire an ORB (Operation Request Block) on the Target side and hold it in the register in response to the PC Initiator sending DoorBell to the Target. It is processing.
Also in the sequence seq1 of FIG. 9, first, the PC Initiator transmits DoorBell.
In response to receiving DoorBell, the OHCI Unit outputs an interrupt request (Interrupt) to the Interrupt Handler. In response to this, the OHCI software executes processing as shown. In this process, according to the Write Response from the Transaction Task, the OHCI Unit returns a response (Write Response) in response to DoorBell to the PC Initiator.
Also, the CBA Task passes an ORB Pointer Request to the OHCI Unit in response to the TR_DATA.indicate being passed. In response to this, the OHCI Unit transmits an ORB Pointer Read to the PC Initiator. The PC Initiator returns an ORB Pointer Read Response as a response to the ORB Pointer Read Request. In response to receiving this, the OHCI Unit outputs an Interrupt to the Interrupt Handler. In response to this interrupt, the OHCI software executes the processing corresponding to the reception of the ORB Pointer Read Response as shown in the figure, and when it reaches the stage where TR_DATA.confirmation is received in the CBA Task, the CBA Task next Output ORB Read Request to OHCI Unit. In response to this, the OHCI Unit transmits an ORB Read Request to the PC Initiator.

PC Initiatorからは、ORB Read Requestに対するレスポンス(ORB Read Response(ORB Read Resp))として、File Read CommandとしてのCommand Block ORBを返送する。File Read CommandとしてのCommand Block ORBの構造は、図25にて先に説明したとおりである。
ここでも、上記Command Block ORBにおけるp(page_table_present_bit:1bit)の領域には1を格納しており、これにより、現Command Block ORBにおけるdata_descriptorにより示されるアドレスにPage Tableが保持されていることを示しているものとする。
As a response to the ORB Read Request (ORB Read Response (ORB Read Resp)), the PC Initiator returns a Command Block ORB as a File Read Command. The structure of the Command Block ORB as the File Read Command is as described above with reference to FIG.
Again, 1 is stored in the area of p (page_table_present_bit: 1bit) in the above Command Block ORB, indicating that the Page Table is held at the address indicated by the data_descriptor in the current Command Block ORB. It shall be.

Command Block ORBを受け取ったOHCI Unitは、ここでもInterrupt Handlerに対してInterruptを出力する。これに応じてOHCIソフトウェアはCommand Block ORBの受信に対応した処理を実行し、CBA TaskにてTR_DATA.confirmationを受け取る段階にまで至ると、次にCBA TaskからOHCI Unitに対してPage Table Read Requestを送信する。   The OHCI Unit that has received the Command Block ORB also outputs an Interrupt to the Interrupt Handler. In response to this, the OHCI software executes processing corresponding to the reception of the Command Block ORB, and when it reaches the stage where TR_DATA.confirmation is received by the CBA Task, the next page table read request is sent from the CBA Task to the OHCI Unit. Send.

シーケンスseq2(TargetがPC Initiator側からPage Tableを取得するための処理)において、先ずOHCI Unitは、CBA TaskからのPage Table Read Requestの受信に応答して、PC Initiatorに対してPage Table Read Requestを送信する。
これに応答して、PC InitiatorからOHCI Unitに対しては、Page Table Responseとして、Page Table ListのCommand Block ORB(ORB_page_table)を返送する。
OHCI Unitは、Command Block ORB(Page Table List)の受信に応じてInterruptを出力して、OHCIソフトウェアにより、Command Block ORB(Page Table List)の受信に応じた処理を実行させる。OHCIソフトウェアは、Command ORBとPage Table Listを読み出し、エラーチェックを実行する。また、送信用descriptorと送信データが格納されるTarget側のメモリアドレスをセットする。次に、CBA Taskは、OHCI Unitに対してrun Bitをセットする。
なお、ORB_page_tableの構造は、図26により示したとおりである。
In sequence seq2 (Process for Target to acquire Page Table from PC Initiator side), OHCI Unit first sends Page Table Read Request to PC Initiator in response to receiving Page Table Read Request from CBA Task. Send.
In response to this, a Command Block ORB (ORB_page_table) of Page Table List is returned as a Page Table Response from the PC Initiator to the OHCI Unit.
The OHCI unit outputs an interrupt in response to reception of the command block ORB (page table list), and causes the OHCI software to execute processing in response to reception of the command block ORB (page table list). The OHCI software reads the Command ORB and Page Table List and performs error checking. Also, the memory address on the target side where the transmission descriptor and transmission data are stored is set. Next, CBA Task sets run Bit for OHCI Unit.
The structure of ORB_page_table is as shown in FIG.

シーケンスseq3(図9−図10)は、ファイルのデータ(Readデータ)を転送するための処理となる。
Readデータは、上記シーケンスseq2でのOHCIソフトウェアの処理によって、IEEE1394パケットのヘッダ、フッタを付加した状態でバッファメモリ15に書き込まれる。
OHCI Unitは、バッファメモリ15からReadデータを読み出して、Data Write RequestとしてPC Initiatorに送信する。PC Initiatorは、Data Write Requestを受信するとData Write Response(ACK : Acknowledge)を返送してくる。OHCI Unitは、このData Write Responseを受信したことに応じて、次のReadデータ(Data Write Request)の送信を行う。これを必要なReadデータの転送量に応じて繰り返す。
The sequence seq3 (FIGS. 9 to 10) is a process for transferring file data (Read data).
Read data is written to the buffer memory 15 with the header and footer of the IEEE 1394 packet added by the processing of the OHCI software in the sequence seq2.
The OHCI unit reads the read data from the buffer memory 15 and transmits it to the PC Initiator as a data write request. When receiving the Data Write Request, the PC Initiator returns a Data Write Response (ACK: Acknowledge). The OHCI Unit transmits the next read data (Data Write Request) in response to receiving this Data Write Response. This is repeated according to the necessary read data transfer amount.

OHCI Unitは、最後のReadデータ(Data Write Request)の送信と,これに応答したData Write Responseの受信を完了すると、Interruptによる割り込み要求をInterrupt Handlerに対して行って、File Read Commandに応じたデータ転送の正常終了を、OHCIソフトウェアに通知する。これに応じてOHCIソフトウェアは、図に示すタスク間での処理(RQPkt (DataQueue)、Req Receive (Mailbox)、TR_DATA.indicate (EventFlag)の受け渡し)を実行する。   When the OHCI unit completes the transmission of the last read data (Data Write Request) and the reception of the Data Write Response in response to this, the OHCI Unit sends an interrupt request by the Interrupt Handler to the data corresponding to the File Read Command. Notify the OHCI software of the successful completion of the transfer. In response to this, the OHCI software executes processing between tasks shown in the figure (delivery of RQPkt (DataQueue), Req Receive (Mailbox), TR_DATA.indicate (EventFlag)).

シーケンスseq4は、先ず、CBA TaskがTR_DATA.indicate (EventFlag)を受けたことに応じて、Status Block Noticeのパケットを生成し、OHCI Unitに対して渡す。OHCI Unitは、このStatus Block NoticeのパケットをPC Initiatorに対して送信する。
OHCI Unitは、PC Initiatorからのstatus block noticeに応答したACKを受信すると、ReqTxCompleteとしてのInterruptをInterrupt Handlerに対して出力する。これを受けて、OHCIソフトウェアにおける所定のタスクは、ORB Completeに対応する処理を図のようにして実行し、CBA Taskからother Taskに対してRead Complete Noticeが出力されることにより、File Read Commandに対応するトランザクションが終了する。
In the sequence seq4, first, in response to the CBA Task receiving TR_DATA.indicate (EventFlag), a Status Block Notice packet is generated and passed to the OHCI Unit. The OHCI Unit transmits this Status Block Notice packet to the PC Initiator.
When receiving the ACK in response to the status block notice from the PC Initiator, the OHCI Unit outputs an Interrupt as ReqTxComplete to the Interrupt Handler. In response to this, the predetermined task in the OHCI software executes the processing corresponding to ORB Complete as shown in the figure, and the Read Complete Notice is output from the CBA Task to the other Task. The corresponding transaction ends.

ここで、図7、図8が対応する本実施の形態と、図9、図10が対応する一般例とを比較してみる。
先ず、一般例では、図9のシーケンスseq1におけるDoorBellの受信に応答したPC Initiatorへのレスポンスの送信から、これに続くシーケンスseq2におけるPC InitiatorへのPage Table Read Requestの送信までの処理において、PC Initiatorから送信されるDoorBell、ORB Pointer Read Response、ORB Read Responseを受信するごとに、OHCIソフトウェアの処理が介在する。
これに対して、図7、図8では、同じシーケンスseq1におけるDoorBellの受信に応答したPC Initiatorへのレスポンスの送信から、これに続くシーケンスseq2におけるPC InitiatorへのPage Table Read Requestの送信までの処理は、OHCIソフトウェアの処理が介在することなく、SBP2ユニット30(CBA Unit)によりハードウェアの処理として実行されるようになっている(ハードウェア間データ伝送)。
Here, the present embodiment corresponding to FIG. 7 and FIG. 8 will be compared with the general example corresponding to FIG. 9 and FIG.
First, in the general example, in the processing from the transmission of the response to the PC Initiator in response to the reception of DoorBell in the sequence seq1 of FIG. 9 to the subsequent transmission of the Page Table Read Request to the PC Initiator in the sequence seq2, the PC Initiator Every time a DoorBell, ORB Pointer Read Response, or ORB Read Response transmitted from is received, OHCI software processing is involved.
On the other hand, in FIG. 7 and FIG. 8, the process from the transmission of the response to the PC Initiator in response to the reception of DoorBell in the same sequence seq1 to the subsequent transmission of the Page Table Read Request to the PC Initiator in the sequence seq2 Are executed as hardware processing by the SBP2 unit 30 (CBA Unit) without intervening OHCI software processing (inter-hardware data transmission).

また、シーケンスseq4において、図10では、最後のData Write Responseの受信に応答して、OHCI Unitは、Interruptを出力してOHCIソフトウェアに処理を実行させ、CBA Taskにて生成されて出力されるStatus Block Notice(パケット)を受信してからでなければPC Initiatorに対してStatus Block Noticeを送信できない。これに対して、本実施の形態では、CBA Unitは、図8に示したように、最後のData Write Responseの受信に応答してInterruptを出力するものの、PC Initiatorに対するStatus Block Noticeの送信は、OHCIソフトウェアからのパケットの受信を待つことなく、Data Write Responseの受信後のタイミングで自己が実行できる(ハードウェア間データ伝送)。   Also, in sequence seq4, in FIG. 10, in response to receiving the last Data Write Response, the OHCI Unit outputs Interrupt, causes the OHCI software to execute the process, and generates and outputs the Status generated by the CBA Task. The status block notice can only be sent to the PC Initiator after receiving the block notice (packet). On the other hand, in this embodiment, as shown in FIG. 8, the CBA Unit outputs an Interrupt in response to the reception of the last Data Write Response, but the transmission of the Status Block Notice to the PC Initiator is It can execute itself at the timing after receiving Data Write Response without waiting for packet reception from OHCI software (data transmission between hardware).

このようにして、本実施の形態では、これまでと比較すると、File Read Commandに応じたトランザクションについて、ソフトウェア層での処理が大幅に削減される。これにより、本実施の形態では、Readデータの転送に要する時間をこれまでよりも大幅に短縮することができ、結果として、データ転送速度も大幅に高速化が図られることとなった。
この効果は、これまでの説明から理解されるように、OHCI部13において、OHCIユニット20に加えてSBP2ユニット30を備えたことにより得られる。即ち、上記した特定のシーケンスについては、ハードウェアであるSBP2ユニット30のみによってInitiator側との通信が行えるようにしたものである。
例えば、図7、図8のシーケンスseq1に対応したOHCIソフトウェアの手順はSBP2において典型的であり、決まり切ったものとなっている。このために、ソフトウェア層の処理を省略しても、Initiatorとの間で正常にコマンドのやりとりすることが保証さえされれば、以降のPage Table Listの取得、及びReadデータの転送に支障はない。本実施の形態ではこのことに着目して、上記した特定の手順などについて、SBP2ユニット30(CBA Unit)により実行できるように構成したものである。
In this way, in the present embodiment, the processing in the software layer is greatly reduced for the transaction according to the File Read Command, as compared with the past. As a result, in the present embodiment, the time required to transfer the Read data can be significantly reduced as compared with the conventional method, and as a result, the data transfer speed can be greatly increased.
As can be understood from the above description, this effect can be obtained by providing the OHCI unit 13 with the SBP2 unit 30 in addition to the OHCI unit 20. In other words, the specific sequence described above can be communicated with the initiator side only by the SBP2 unit 30 which is hardware.
For example, the procedure of the OHCI software corresponding to the sequence seq1 of FIGS. 7 and 8 is typical in SBP2 and is routine. For this reason, even if the processing of the software layer is omitted, there is no problem in subsequent Page Table List acquisition and Read data transfer as long as it is guaranteed that commands are exchanged normally with the initiator. . In the present embodiment, paying attention to this, the above-described specific procedure and the like are configured to be executed by the SBP2 unit 30 (CBA Unit).

本実施の形態では、SBP2による通信時においてソフトウェアによる処理をSBP2ユニット30(CBA Unit)によるハードウェアの処理に置き換える構成を、上記File Read Commandに対応するトランザクションだけではなく、File Write Command(ファイル書き込みコマンド)に対応するトランザクションについても与えることとしている。そこで、続いては、図11、図12と、図13、図14とを参照して、File Write Commandに対応する実施の形態、一般例の各トランザクションについて説明する。   In the present embodiment, a configuration in which processing by software is replaced with hardware processing by the SBP2 unit 30 (CBA Unit) during communication by SBP2 is not limited to a transaction corresponding to the above File Read Command, but also by File Write Command (file writing). The transaction corresponding to the command) is also given. Then, subsequently, with reference to FIG. 11, FIG. 12, FIG. 13, and FIG. 14, each transaction of embodiment corresponding to File Write Command and a general example is demonstrated.

先ず、実施の形態に対応する図11、図12から説明する。
この図においても、File Write Commandに対応するトランザクションは、シーケンスseq1〜seq4により区分して示されている。
First, FIG. 11 and FIG. 12 corresponding to the embodiment will be described.
Also in this figure, the transactions corresponding to the File Write Command are shown divided by sequences seq1 to seq4.

先ず、シーケンスseq1については、そのシーケンスの流れは、図7([実施の形態:File Read Command対応のトランザクション])と同様となっている。
ただし、PC InitiatorからのORB Read Requestに対するレスポンス(ORB Read Response)としてのCommand Block ORBは、この場合、File Write Commandとしてのものとなる。
このFile Write CommandとしてのCommand Block ORBの構造は、図27に示すものとなる。その構造自体は、図25に示したFile Read CommandとしてのCommand Block ORBと同じであるが、cdb[0]において図示するようにして4’hC4を格納しており、これにより、現Command Block ORB がFile Write Commandであることを示す。
また、この場合にも、Command Block ORBにおけるp(page_table_present_bit:1bit)の領域には1を格納しているものとする。
First, for the sequence seq1, the sequence flow is the same as in FIG. 7 ([Embodiment: Transaction corresponding to File Read Command]).
However, the Command Block ORB as a response (ORB Read Response) to the ORB Read Request from the PC Initiator is a File Write Command in this case.
The structure of the Command Block ORB as this File Write Command is as shown in FIG. The structure itself is the same as the Command Block ORB as the File Read Command shown in FIG. 25, but 4'hC4 is stored as shown in cdb [0], so that the current Command Block ORB is stored. Indicates File Write Command.
Also in this case, it is assumed that 1 is stored in the area of p (page_table_present_bit: 1 bit) in the Command Block ORB.

また、続くシーケンスseq2も、そのシーケンスの流れは図7と同様であり、TargetがPC Initiator側からPage Tableを取得するための処理となる。
この場合においても、CBA Unitは、受信したPage Table List(図26)を例えばバッファメモリ15に保持するとともに、DMA転送によりメモリ12に書き込んで保持させる。これにより、図7、図8に示した場合と同様に、OHCIソフトウェアは、メモリ12において指定されたCommand ORB、Page Table Listのためのメモリ領域にアクセスしさえすれば、これらのCommand ORB、Page Table Listの内容を認識できることになる。
また、シーケンスseq2におけるOHCIソフトウェアの処理としては、Command ORBとPage Table Listを読み出し、エラーチェックを実行する。また、Input More descriptorを利用してメモリアドレス(転送先のバッファのアドレス)と転送データサイズ(受信データサイズ)をセットする。そして、run Bitをセットする。なお、このときに用いるContextはSBP2 receive Contextとなる。
Further, the sequence seq2 that follows is the same as the flow of the sequence in FIG. 7, and the target is processing for acquiring the page table from the PC Initiator side.
Also in this case, the CBA Unit holds the received Page Table List (FIG. 26) in the buffer memory 15, for example, and writes and holds it in the memory 12 by DMA transfer. Accordingly, as in the case shown in FIGS. 7 and 8, the OHCI software only needs to access the memory area for the Command ORB and Page Table List specified in the memory 12, so that these Command ORB, Page The contents of Table List can be recognized.
Further, as processing of the OHCI software in the sequence seq2, the Command ORB and the Page Table List are read and an error check is executed. Also, using the Input More descriptor, set the memory address (transfer destination buffer address) and transfer data size (receive data size). And set run bit. The Context used at this time is SBP2 receive Context.

上記したFile Write Commandのシーケンスseq1,seq2によっても、CBA Unitが、DoorBellを受信してからPC Initiatorに対してPage table Requestをするまでの処理は、OHCIソフトウェアの処理は介在せずに、ハードウェアのみによって実行されるようになっていることが分かる。   Even with the above File Write Command sequences seq1 and seq2, the processing from when the CBA Unit receives DoorBell until it issues a page table request to the PC Initiator does not involve OHCI software processing. It can be seen that it is only executed by.

シーケンスseq3(図11、図12)は、PC Initiatorから転送されるファイルのデータ(Writeデータ:書き込みデータ)をTarget側にて受け取るための処理となる。
シーケンスseq3では、先ず、CBA UnitがPC Initiatorに対してData Read Requestを出力する。これに応答して、PC InitiatorからCBA Unitに対しては、Data Read Responseとして、先に指定された受信データサイズに応じたサイズのWriteデータをIEEE1394パケット形式で送信してくる。
図4のSBP2ユニット30において、CBA Unitは、上記のようにして送信されてくるIEEE1394パケット形式のWriteデータを、IEEE1394リンク層・物理層ブロック23から受け取ると、AR_FAM FIFOブロック37、Header・Footer Remove Block36、AR_FAM DMAブロック35の順で通過させる。これにより、Writeデータは、Header・Footer Remove Block36によるハードウェア処理によってIEEE1394パケットのヘッダ、フッタが取り除かれる。そして、このようにしてヘッダ・フッタが除去されたデータを、例えばバッファメモリ15に転送する。このシーケンスを、必要なWriteデータの転送量に応じて繰り返す。
CBA Unitは、最後のData Read requestに応じたWriteデータ受信が正常に終了したとされると、DescCompleteによる割り込み要求をInterrupt Handlerに対して行うことで、このことをOHCIソフトウェアに通知する。これに応じてOHCIソフトウェアは、図7、図8のトランザクションの場合と同様にして、タスク間での処理を実行してデータをコピーする。
なお、図11、図12のシーケンスseq3においては、Data Read ResponseとしてWriteデータを受け取るその都度に応じたOHCIソフトウェアの処理が実行されておらず、ハードウェア間データ伝送となっていることに留意されたい。
Sequence seq3 (FIGS. 11 and 12) is processing for receiving data (Write data: write data) of a file transferred from the PC Initiator on the Target side.
In the sequence seq3, first, the CBA Unit outputs a Data Read Request to the PC Initiator. In response to this, Write data having a size corresponding to the previously specified received data size is transmitted from the PC Initiator to the CBA Unit as a Data Read Response in the IEEE 1394 packet format.
In the SBP2 unit 30 of FIG. 4, when the CBA unit receives the write data in the IEEE 1394 packet format transmitted as described above from the IEEE 1394 link layer / physical layer block 23, the AR_FAM FIFO block 37, Header / Footer Remove Block 36 and AR_FAM DMA block 35 are passed in this order. As a result, the header and footer of the IEEE 1394 packet are removed from the write data by hardware processing by the header / footer remove block 36. Then, the data from which the header and footer are removed in this way is transferred to, for example, the buffer memory 15. This sequence is repeated according to the required write data transfer amount.
When it is assumed that the reception of the write data corresponding to the last data read request has been normally completed, the CBA Unit notifies the OHCI software of this by making an interrupt request by DescComplete to the Interrupt Handler. In response to this, the OHCI software executes processing between tasks and copies data in the same manner as in the case of the transactions in FIGS.
Note that in the sequence seq3 of FIGS. 11 and 12, the OHCI software process is not executed every time Write data is received as Data Read Response, and data transmission between hardware is performed. I want.

シーケンスseq4におけるシーケンスの手順は図7、図8により示したトランザクションの場合に準ずる。
つまり、CBA Unitは、DescComplete による割り込み要求を行った後、OHCIソフトウェアから応答を待つことなく、PC Initiatorに対して、ステイタス(status block notice)を自己で生成して送信する。つぎにPC Initiatorから送信されたACKを受信すると、ORB Completeとしての割り込み要求をInterrupt Handlerに出力し、OHCIソフトウェアにおける所定のタスクにより、ORB Completeに対応する図の処理を実行させる。
ここまでで、実施の形態としてのFile Write Commandに対応するトランザクションが終了する。
The sequence procedure in the sequence seq4 is the same as that of the transaction shown in FIGS.
That is, after making an interrupt request by DescComplete, the CBA Unit generates a status (status block notice) by itself and transmits it to the PC Initiator without waiting for a response from the OHCI software. Next, when an ACK transmitted from the PC Initiator is received, an interrupt request as ORB Complete is output to the Interrupt Handler, and a process corresponding to ORB Complete is executed by a predetermined task in the OHCI software.
Thus far, the transaction corresponding to the File Write Command as the embodiment is completed.

次に、図13、図14により、File Write Commandに対応する一般例のトランザクションについて説明する。この図においても、File Read Commandに対応するトランザクションを、シーケンスseq1〜seq4により順次区分して示す。   Next, a general example transaction corresponding to File Write Command will be described with reference to FIGS. Also in this figure, the transactions corresponding to the File Read Command are shown sequentially divided by sequences seq1 to seq4.

図13のシーケンスseq1においても、先ず、PC InitiatorがDoorBellを送信する。これに応じて、TargetとしてのOHCI Unit及びOHCIタスクは、図9の場合と同様のシーケンスを行い、最終的にCBA TaskからOHCI Unitに対してPage Table Read Requestを送信するまでの処理を実行する。ただし、PC InitiatorからのORB Read Requestに対するレスポンス(ORB Read Response)としてのCommand Block ORBは、図11の場合と同様に、File Write Command(図27)としてのものとなる。
また、この場合にも、Command Block ORBにおけるp(page_table_present_bit:1bit)の領域には1を格納しているものとする。
Also in the sequence seq1 of FIG. 13, first, the PC Initiator transmits DoorBell. In response to this, the OHCI Unit and the OHCI task as the Target perform the same sequence as in FIG. 9 and finally execute the processing from the CBA Task to the Page Table Read Request transmission to the OHCI Unit. . However, the Command Block ORB as a response (ORB Read Response) to the ORB Read Request from the PC Initiator is the same as the File Write Command (FIG. 27) as in FIG.
Also in this case, it is assumed that 1 is stored in the area of p (page_table_present_bit: 1 bit) in the Command Block ORB.

続くシーケンスseq2としても、図9の場合と同様の手順を実行して、Targetは、PC Initiator側からPage Tableを取得する。また、CBA TaskがOHCI Unitに対してrun Bitをセットする。   For the subsequent sequence seq2, the same procedure as in FIG. 9 is executed, and Target acquires the Page Table from the PC Initiator side. Also, CBA Task sets run Bit for OHCI Unit.

シーケンスseq3(図13、図14)は、PC Initiatorから転送されるファイルのデータ(Writeデータ)をTarget側にて受け取るための処理となる。
この場合にも、シーケンスseq3では、先ず、OHCI UnitがPC Initiatorに対してData Read Requestを出力する。これに応答して、PC InitiatorからOHCI Unitに対しては、Data Read Responseとして、先に指定された受信データサイズに応じたサイズのWriteデータをIEEE1394パケット形式で送信してくる。
OHCI Unitは、WriteデータであるData Read Responseを受け取ることに応じて、Interrupt Handlerに対してInterruptを出力して、WriteデータのパケットをOHCIソフトウェアに渡す。なお、このときには、Writeデータのパケットは、ヘッダ・フッタを有した構造となっている。
OHCIソフトウェアの各Taskにより、図示するようにして、RSPkt(DataQueue)、Resp Receive (Mailbox)、TR_DATA. confirmation (EventFlag)、Notify(Mailbox)が実行されることで、パケットからヘッダ・フッタが取り除かれて、Writeデータの実体が取り出され、メモリにコピーされる。そして、CBA Taskは、Callback(EventFlag)を受けて、OHCI Unitに対してStatus Bock Noticeを出力することで、runビットをセットする(set AT Request Data Transmit ContextControl.run)
OHCI Unitは、runビットがセットされたこと(Status Bock Noticeを受けたこと)に応じて、PC Initiatorに対してData Read Requestを送信し、PC InitiatorからのData Read Response(Writeデータ)を受ける。このようにして、Targetは、シーケンスseq3として、Data Read Requestの送信と、Data Read Responseの受信に応答したOHCIソフトウェアによるパケット処理からなるトランザクションを、Writeデータの転送量に応じて繰り返す。
The sequence seq3 (FIGS. 13 and 14) is a process for receiving data (Write data) of a file transferred from the PC Initiator on the Target side.
Also in this case, in the sequence seq3, first, the OHCI Unit outputs a Data Read Request to the PC Initiator. In response to this, Write data having a size corresponding to the previously specified received data size is transmitted from the PC Initiator to the OHCI Unit as a Data Read Response in the IEEE 1394 packet format.
In response to receiving Data Read Response which is Write data, the OHCI Unit outputs an Interrupt to the Interrupt Handler, and passes the Write data packet to the OHCI software. At this time, the write data packet has a structure including a header and a footer.
Each task of OHCI software executes RSPkt (DataQueue), Resp Receive (Mailbox), TR_DATA.confirmation (EventFlag), and Notify (Mailbox) as shown in the figure, so that the header and footer are removed from the packet. Thus, the entity of the write data is taken out and copied to the memory. Then, CBA Task receives Callback (EventFlag) and outputs Status Bock Notice to OHCI Unit to set the run bit (set AT Request Data Transmit ContextControl.run)
The OHCI Unit transmits a Data Read Request to the PC Initiator and receives a Data Read Response (Write data) from the PC Initiator in response to the run bit being set (Receiving Status Bock Notice). In this manner, the Target repeats a transaction including transmission of Data Read Request and packet processing by the OHCI software in response to reception of Data Read Response as a sequence seq3 according to the write data transfer amount.

そして、最後のData Read Requestの送信と、これに応答したData Read Responseの受信に応じたOHCIソフトウェアによる上記のトランザクションが完了すると、シーケンスseq4としての処理に移る。
シーケンスseq4では、先ず、Callback (EventFlag)を受けたCBA Taskが、Status Block Noticeのパケットを生成してOHCI Unitに対して渡す。OHCI UnitはPC Initiatorに対して、このStatus Block Noticeパケットを送信する。次に、Status Block Noticeに応答したACKを受信すると、OHCIソフトウェアにおける所定のタスクにより、ORB Completeに対応する処理を図のようにして実行する。これで一般例でのFile Write Commandに対応するトランザクションが終了する。
Then, when the above transaction by the OHCI software in response to the transmission of the last Data Read Request and the reception of the Data Read Response in response thereto is completed, the processing proceeds to the sequence seq4.
In the sequence seq4, first, the CBA Task that has received Callback (EventFlag) generates a Status Block Notice packet and passes it to the OHCI Unit. The OHCI Unit transmits this Status Block Notice packet to the PC Initiator. Next, when ACK is received in response to Status Block Notice, a process corresponding to ORB Complete is executed as shown in the figure by a predetermined task in the OHCI software. This ends the transaction corresponding to the File Write Command in the general example.

上記図11、図12と、図13、図14とを比較して分かるように、File Write Commandに対応するトランザクションにおいても、File Read Commandの場合と同様に、実施の形態では、シーケンスseq1におけるDoorBellの受信に応答したPC Initiatorへのレスポンスの送信から、これに続くシーケンスseq2におけるPC InitiatorへのPage Table Read Requestの送信までの処理において、OHCIソフトウェアの処理が介在しないようにされている。
また、シーケンスseq4においても、実施の形態では、PC Initiatorに対するStatus Block Noticeの送信について、CBA UnitがOHCIソフトウェアからのパケットの受信を待つことなく、Data Write Responseの受信後のタイミングで自己が実行できるようになっている。
As can be seen by comparing FIGS. 11 and 12 with FIGS. 13 and 14, in the transaction corresponding to the File Write Command, in the embodiment, the DoorBell in the sequence seq1 is the same as in the case of the File Read Command. In the processing from the transmission of the response to the PC Initiator in response to the reception of the data to the transmission of the Page Table Read Request to the PC Initiator in the subsequent sequence seq2, the processing of the OHCI software is not interposed.
Also in the sequence seq4, in the embodiment, the status block notice can be transmitted to the PC Initiator at the timing after receiving the Data Write Response without waiting for the CBA Unit to receive the packet from the OHCI software. It is like that.

さらに、File Write Commandに対応するトランザクションでは、一般例では、図13、図14に示したように、シーケンスseq3でのWriteデータ転送に際して、WriteデータのData Read Responseが返されてくる都度、OHCIソフトウェアに割り込み処理を実行させて、ヘッダ・フッタ除去などのパケット処理と、データコピーを実行させる必要があり、Data Read RequestのPC Initiatorに対する送信は、CBA Taskからの応答を待つ必要がある。
これに対して、本実施の形態では、図11、図12のシーケンスseq3として示すように、PC Initiator に対するData Read Requestの送信とData Read Responseの受信からなるトランザクションは、OHCIソフトウェアが介在することなく、ハードウェアで行っている(ハードウェア間データ伝送)。
Further, in the transaction corresponding to the File Write Command, in the general example, as shown in FIGS. 13 and 14, the OHCI software is returned every time the data read response of the write data is returned when the write data is transferred in the sequence seq3. It is necessary to execute interrupt processing to perform packet processing such as header / footer removal and data copy, and transmission of Data Read Request to the PC Initiator must wait for a response from the CBA Task.
On the other hand, in the present embodiment, as shown as the sequence seq3 in FIGS. 11 and 12, the transaction consisting of the transmission of the Data Read Request to the PC Initiator and the reception of the Data Read Response does not involve the OHCI software. This is done in hardware (data transmission between hardware).

このようにして、本実施の形態は、File Write Commandに対応するトランザクションにおいても、特定のシーケンスについては、ソフトウェアが介在することなく、CBA Unit、即ちハードウェアにより独立して実行できるようになっているものであり、これにより、データ転送速度の高速化が図られるものである。   As described above, according to the present embodiment, even in a transaction corresponding to File Write Command, a specific sequence can be independently executed by a CBA unit, that is, hardware without intervention of software. As a result, the data transfer speed can be increased.

ところで、これまでの説明から理解されるように、本実施の形態では、SBP2ユニット30(CBA Unit)によりInitiatorから送信されてくるCommand Block ORB、Page Table (Page Table List)を受け取ることができるようにされている。
ここで、Page Tableの総データサイズは、Initiator側でのデータのData Bufferの状態(離散数)に応じて異なってくる。このために、Page Tableの総データサイズが、SBP2 ORB_Page Table receive DMAのためのバッファサイズと、Command Block Agent Unit31が備えるとされるPage Table FIFOのサイズを越える可能性を想定しておく必要がある。
By the way, as understood from the above description, in this embodiment, it is possible to receive Command Block ORB and Page Table (Page Table List) transmitted from the initiator by the SBP2 unit 30 (CBA Unit). Has been.
Here, the total data size of the Page Table varies depending on the state (discrete number) of the data buffer of the data on the initiator side. Therefore, it is necessary to assume that the total data size of the Page Table may exceed the buffer size for the SBP2 ORB_Page Table receive DMA and the size of the Page Table FIFO that the Command Block Agent Unit 31 is supposed to have. .

そこで、本実施の形態としては、次に述べるようにして上記の場合に対応する。
図28(a)は、File Read CommandあるいはFile Write Commandに応じたCommand Block(CB) ORBと、このCommand Block ORBとともに転送されるべきPage Tableの全体(Page Table elements)を示している。例えばTarget側では、ここで示されるCommand Block ORBとPage Tableとがフェッチされる必要がある。
このPage Tableは、図28(b)に示すようにして、N個のグループ(分割単位)に分割することができる。このようにして得られる分割単位に対して、ここではID(PgTbID[1]〜PgTbID[N]を与えて個々を区別している。
ここで、Page Tableを何個のグループに分割するのかについて、つまり分割数Nをいくつとするのかは、Initiator側にて設定されるPage Tableの総データサイズと、SBP2 ORB_Page Table Receive DMA controllerのための総バッファサイズとにより例えばTarget側にて求めることができる。
本実施の形態では、この分割数NをCBA Unit(Command Block Agent Unit31)により、即ちハードウェアにより求めることができるように構成する。
Therefore, the present embodiment corresponds to the above case as described below.
FIG. 28A shows a Command Block (CB) ORB corresponding to a File Read Command or File Write Command, and the entire Page Table to be transferred together with the Command Block ORB (Page Table elements). For example, on the Target side, the Command Block ORB and Page Table shown here need to be fetched.
This Page Table can be divided into N groups (division units) as shown in FIG. Here, IDs (PgTbID [1] to PgTbID [N] are given to the division units obtained in this way to distinguish them.
Here, how many groups the Page Table is divided into, that is, how many divisions N, is based on the total data size of the Page Table set on the Initiator side and the SBP2 ORB_Page Table Receive DMA controller. For example, it can be obtained on the Target side according to the total buffer size.
In the present embodiment, the division number N is configured to be obtained by a CBA Unit (Command Block Agent Unit 31), that is, by hardware.

そして、上記図28(b)に示すようにして分割されるPage TableのN個の分割単位をSBP2 ORB_Page Table Receive DMA controllerのバッファに転送するときには、図28(c)に示すコンポーネント(component)を形成する。このコンポーネントは、図示するようにして、Command Block ORBに1つの分割単位を連結したものとして形成される。
このコンポーネントは、図26に示すように、ORB_page_tableの構造を有するものとなる。コンポーネントにおけるCommand Block ORBは、先頭のthis_ORBからCdb[11]までの領域に対応し、Page Tableの分割単位(グループ)は、data_length(page table length, data length)から最後までの領域が相当する。また、1つの分割単位は、Command Block ORBに続くpage_table_length、data_lengthと、これに続くPage Table Listから成る。なお、Page Table Listは、ORB_page_tableのフォーマットに従って、この場合にも、図示するようにして、segment_length、segment_bass_hi、segment_bass_loから成る8バイトによるpage_elementが1以上連続して配置される構造を有するものとされる。
When transferring N division units of the Page Table divided as shown in FIG. 28B to the buffer of the SBP2 ORB_Page Table Receive DMA controller, the component shown in FIG. Form. As shown in the figure, this component is formed by connecting one division unit to the Command Block ORB.
As shown in FIG. 26, this component has a structure of ORB_page_table. The Command Block ORB in the component corresponds to the area from the top this_ORB to Cdb [11], and the page table division unit (group) corresponds to the area from data_length (page table length, data length) to the end. One division unit includes page_table_length and data_length following the Command Block ORB, and a Page Table List following this. Note that the Page Table List has a structure in which one or more 8-byte page_elements composed of segment_length, segment_bass_hi, and segment_bass_lo are continuously arranged according to the format of the ORB_page_table as shown in the figure. .

そして、このようにして形成したコンポーネントにより、initiatorから、SBP2 ORB_Page Table Receive DMA controllerのバッファに対して転送することになる。従って、Page tableを全て転送するには、コンポーネントの転送をN回繰り返すことになる。   Then, the component formed in this way is transferred from the initiator to the buffer of the SBP2 ORB_Page Table Receive DMA controller. Therefore, in order to transfer the entire page table, the component transfer is repeated N times.

また、さらに或るコンポーネントのPage Tableの分割単位について、一度でバッファに全てを転送して書き込むことができなかった場合には、図28(d)のPgTbID[j]を有するグループの例のように、書き込むことができずに残ったグループ部分(PgTbID[j’])を、さらにコンポーネント化して、再度、バッファに転送する。   Further, when all the page table division units of a certain component cannot be transferred and written to the buffer at one time, as shown in the example of the group having PgTbID [j] in FIG. Then, the remaining group portion (PgTbID [j ′]) that cannot be written is further componentized and transferred to the buffer again.

そして、上記図28により説明したようにして、Page TableをN個に分割する場合には、InitiatorからTargetに対するPage Table Listの転送も、分割単位に応じてN回実行することになる。この場合の、実施の形態におけるFile Read Commandに応じたトランザクション例を、図15、図16に示す。
なお、図15、図16では、Page Tableを2(N=2)個に分割した場合を例に挙げることとする。
Then, as described with reference to FIG. 28, when the Page Table is divided into N pieces, the transfer of the Page Table List from the Initiator to the Target is also executed N times according to the division unit. Examples of transactions according to the File Read Command in the embodiment in this case are shown in FIGS.
15 and 16 exemplify a case where the Page Table is divided into 2 (N = 2).

図15におけるシーケンスseq1は、図7と同様となる。
また、続くシーケンスseq2によるPage Table取得の処理としても、図7、図8と同様となるが、ここでは、CBA Unitは、2個に分割されるPage Tableのうち、前半のPage Tableの分割単位から成るPage Table Listを格納したCommand Block ORB(ORB_page_table)を要求するPage Table RequestをInitiatorに送信する。これに応答して、Initiatorからは、前半のPage Tableの分割単位から成るPage Table Listを格納したCommand Block ORB(ORB_page_table)を返してくる。
The sequence seq1 in FIG. 15 is the same as that in FIG.
The processing for acquiring the Page Table by the subsequent sequence seq2 is the same as in FIG. 7 and FIG. 8, but here, the CBA Unit is the division unit of the first half of the Page Table divided into two. A Page Table Request for requesting a Command Block ORB (ORB_page_table) that stores a Page Table List consisting of is sent to the Initiator. In response to this, the Initiator returns a Command Block ORB (ORB_page_table) that stores a Page Table List consisting of the division units of the first half of the Page Table.

シーケンスseq3(図15−図16)は、ファイルのデータ(Readデータ)を転送するためのシーケンスであり、そのシーケンスの手順自体は、図7、図8と同様である。ただし、この場合のシーケンスseq3は、Readデータのうち、上記シーケンスseq2により取得したPage Table List(Page Table element)が示すData bufferにのみデータを転送する。なお、このデータの転送を完了したときには、図示するようにして、CBA Unitは、DescCompleteによる割り込み要求をInterrupt Handlerに対して行ってOHCIソフトウェアに必要な処理を実行させることで、メモリのデータを開放する。   The sequence seq3 (FIGS. 15 to 16) is a sequence for transferring file data (Read data), and the sequence procedure itself is the same as that in FIGS. However, the sequence seq3 in this case transfers data only to the data buffer indicated by the Page Table List (Page Table element) acquired by the sequence seq2 among the read data. When this data transfer is completed, as shown in the figure, the CBA Unit releases the memory data by making an interrupt request by DescComplete to the Interrupt Handler and causing the OHCI software to execute the necessary processing. To do.

そして、この場合のCBA Unitは、シーケンスseq3においてInterrupt Handlerに対してDescCompleteを出力したとされると、これに続けて、シーケンスseq4として、再び、Page Table RequestをInitiatorに対して送信する。このときのPage Table Requestは、残る後半のPage Tableの分割単位から成るPage Table ListのCommand Block ORB(ORB_page_table)を要求するものとなる。これに応答しては、Initiatorは、後半のPage Tableの分割単位から成るPage Table Listを格納したCommand Block ORB(ORB_page_table)を返してくる。   Then, if the CBA Unit in this case outputs DescComplete to the Interrupt Handler in the sequence seq3, it transmits a Page Table Request to the Initiator again as a sequence seq4. The Page Table Request at this time is a request for a Command Block ORB (ORB_page_table) of the Page Table List that is composed of the remaining second half of the Page Table. In response to this, the Initiator returns a Command Block ORB (ORB_page_table) that stores a Page Table List composed of division units of the latter half of the Page Table.

シーケンスseq5は、Readデータを転送するためのシーケンスとして、上記シーケンスseq4により取得したPage Table List(Page Table element)が示すData bufferにデータを転送する。これにより、全てのReadデータがinitiator側のData bufferに書き込まれたことになる。   The sequence seq5 transfers data to a Data buffer indicated by the Page Table List (Page Table element) acquired by the sequence seq4 as a sequence for transferring Read data. As a result, all the read data is written in the data buffer on the initiator side.

続くシーケンスseq6は、図7、図8のシーケンスseq4と同様の終了処理手順を実行する。このシーケンスseq6の完了を以て、File Read Commandに応じたトランザクションが完了する。   The subsequent sequence seq6 executes the same end processing procedure as the sequence seq4 of FIGS. Upon completion of this sequence seq6, the transaction corresponding to the File Read Command is completed.

また、図15、図16との比較として、一般例でのFile Read Commandに応じたトランザクションについて、同じくPage tableを2(N=2)個に分割した場合の例を図17、図18に示す。
先ず、図17、図18のシーケンスseq1、seq2は、先に図9、図10に示した一般例でのFile Read Commandに応じたトランザクションの場合と同様となる。ただし、シーケンスseq2においては、上記図15、図16と同様にして、Target側は、2個に分割されるPage Tableのうち、前半のPage Tableの分割単位に対応するPage Table ListのCommand Block ORB(ORB_page_table)をInitiatorから受け取る。
シーケンスseq3(図17−図18)では、図9、図10と同様のシーケンスにより、Readデータを転送するが、ここでも、図15、図16と同じく、Readデータのうち、上記シーケンスseq2により取得したPage Table List(Page Table element)が示すData bufferにのみデータを転送する。
シーケンスseq4では、残る後半のPage Tableの分割単位から成るPage Table Listを格納するCommand Block ORB(ORB_page_table)をInitiatorから受け取るための処理を実行する。
そして、シーケンスseq5では、シーケンスseq2と同じ手順で、上記シーケンスseq4により取得したPage Table List(Page Table element)が示すData bufferにデータを転送する。
続くシーケンスseq6は、図9、図10のシーケンスseq4と同様の終了処理を実行する。このシーケンスseq6の終了を以て、File Read Commandに応じたトランザクションが完了する。
As a comparison with FIGS. 15 and 16, FIGS. 17 and 18 show an example in which the Page table is divided into 2 (N = 2) pieces in the transaction according to the File Read Command in the general example. .
First, the sequences seq1 and seq2 in FIGS. 17 and 18 are the same as those in the case of the transaction corresponding to the File Read Command in the general example shown in FIGS. However, in the sequence seq2, as in FIG. 15 and FIG. 16, the Target side sets the Command Block ORB of the Page Table List corresponding to the division unit of the first Page Table among the Page Tables divided into two. (ORB_page_table) is received from the initiator.
In sequence seq3 (FIGS. 17 to 18), Read data is transferred in the same sequence as in FIGS. 9 and 10. Here, as in FIGS. 15 and 16, the read data is also acquired by the sequence seq2. Data is transferred only to the data buffer indicated by the Page Table List (Page Table element).
In the sequence seq4, a process for receiving a Command Block ORB (ORB_page_table) that stores a Page Table List composed of the remaining Page Table division units in the latter half from the initiator is executed.
In sequence seq5, data is transferred to the data buffer indicated by the page table list (page table element) acquired in sequence seq4 in the same procedure as sequence seq2.
Subsequent sequence seq6 executes the same end processing as sequence seq4 in FIGS. The transaction corresponding to the File Read Command is completed with the end of the sequence seq6.

また、Page tableを2(N=2)個に分割した場合として、本実施の形態での、File Write Commandに応じたトランザクション例についても、図19、図20により示しておく。   Further, as an example in which the page table is divided into 2 (N = 2), an example of a transaction according to the File Write Command in this embodiment is also shown in FIGS.

先ず、図19におけるシーケンスseq1、シーケンスseq2は、図11と同様となる。ただし、ここでのシーケンスseq2において、CBA Unitは、2個に分割されるPage Tableのうち、前半のPage Tableの分割単位から成るPage Table Listを格納したCommand Block ORB(ORB_page_table)を要求するPage Table RequestをInitiatorに送信する。これに応答して、Initiatorからは、前半のPage Tableの分割単位から成るPage Table Listを格納したCommand Block ORB(ORB_page_table)を返してくる。   First, the sequence seq1 and the sequence seq2 in FIG. 19 are the same as those in FIG. However, in the sequence seq2 here, the CBA Unit requests the Command Block ORB (ORB_page_table) that stores the Page Table List consisting of the division units of the first half of the Page Table divided into two. Send Request to Initiator. In response to this, the Initiator returns a Command Block ORB (ORB_page_table) that stores a Page Table List consisting of the division units of the first half of the Page Table.

シーケンスseq3(図19−図20)は、InitiatorからWriteデータを受け取るためのシーケンスであり、そのシーケンスの手順自体は、図11、図12と同様である。ただし、この場合のシーケンスseq3は、Writeデータのうち、上記シーケンスseq2により取得したPage Table List(Page Table element)が示すData bufferからのみ、データを受け取るための処理となる。このデータの受け取りを完了したときには、図示するようにして、CBA Unitは、DescCompleteによる割り込み要求をInterrupt Handlerに対して行ってOHCIソフトウェアに必要な処理を実行させることで、メモリにデータをコピーする。   The sequence seq3 (FIGS. 19 to 20) is a sequence for receiving write data from the initiator, and the sequence procedure itself is the same as that in FIGS. However, the sequence seq3 in this case is a process for receiving data only from the data buffer indicated by the Page Table List (Page Table element) acquired by the sequence seq2 among the write data. When the reception of this data is completed, as shown in the figure, the CBA Unit makes an interrupt request by DescComplete to the Interrupt Handler, and copies the data to the memory by causing the OHCI software to execute the necessary processing.

そして、この場合のCBA Unitは、シーケンスseq3においてInterrupt Handlerに対してDescCompleteを出力したとされると、これに続けて、シーケンスseq4として、再び、Page Table RequestをInitiatorに対して送信する。これにより、残る後半のPage Tableの分割単位から成るPage Table Listを格納するCommand Block ORB(ORB_page_table)をInitiatorから受け取るためのシーケンスが実行される。   Then, if the CBA Unit in this case outputs DescComplete to the Interrupt Handler in the sequence seq3, it transmits a Page Table Request to the Initiator again as a sequence seq4. As a result, a sequence for receiving the Command Block ORB (ORB_page_table) storing the Page Table List including the remaining page table division units from the initiator is executed.

シーケンスseq5は、Target側にてWriteデータを受け取るためのシーケンスとして、上記シーケンスseq4により取得した、後半のPage Tableの分割単位に対応するPage Table List(Page Table element)が示すData bufferからデータを受け取るための処理を実行する。   The sequence seq5 receives data from the data buffer indicated by the Page Table List (Page Table element) corresponding to the division unit of the latter half of the Page Table obtained by the sequence seq4 as a sequence for receiving Write data on the Target side. Execute the process for

続くシーケンスseq6は、図11、図12のシーケンスseq4と同様の終了処理手順を実行する。このシーケンスseq6の完了を以て、File Write Commandに応じたトランザクションが完了する。   The subsequent sequence seq6 executes the same end processing procedure as the sequence seq4 of FIGS. Upon completion of this sequence seq6, the transaction corresponding to the File Write Command is completed.

また、図19、図20との比較として、一般例でのFile Write Commandに応じたトランザクションにつきいて、同じくPage Tableを2(N=2)個に分割した場合の例を図21、図22、図23に示す。
図21において、はじめのシーケンスseq1、seq2は、先に図9に示した一般例でのFile Write Commandに応じたトランザクションの場合と同様となる。ただし、シーケンスseq2においては、上記図19、図20の場合と同様にして、Target側は、2個に分割されるPage Tableのうち、前半のPage Tableの分割単位に対応するPage Table Listを格納するCommand Block ORB(ORB_page_table)をInitiatorから受け取る。
シーケンスseq3(図21−図22)では、図13、図14と同様のシーケンスにより、Target側にてWriteデータを受け取るが、ここでは、図19、図20のシーケンスseq3と同じく、Writeデータのうち、上記シーケンスseq2により取得したPage Table ListのPage elementが示すData bufferからのみデータを受け取る。
シーケンスseq4(図22)では、先のシーケンスseq2と同じ手順により、残る後半のPage Tableの分割単位から成るPage Table ListのCommand Block ORB(ORB_page_table)をInitiatorから受け取るための処理を実行する。そして、シーケンスseq5(図22−図23)では、Targetは、シーケンスseq2と同じ手順で、上記シーケンスseq4により取得したPage Table ListのPage elementが示すData bufferからデータを受け取る。
続くシーケンスseq6は、図13、図14のシーケンスseq4と同様の終了処理を実する。このシーケンスseq6の終了を以て、File Write Commandに応じたトランザクションが完了する。
Further, as a comparison with FIG. 19 and FIG. 20, for the transaction according to the File Write Command in the general example, an example in which the Page Table is similarly divided into 2 (N = 2) is shown in FIG. It shows in FIG.
In FIG. 21, the first sequences seq1 and seq2 are the same as those in the case of the transaction according to the File Write Command in the general example shown in FIG. However, in the sequence seq2, as in the case of FIG. 19 and FIG. 20, the Target side stores a Page Table List corresponding to the division unit of the first half of the Page Tables divided into two. Receive Command Block ORB (ORB_page_table) from Initiator.
In the sequence seq3 (FIGS. 21 to 22), Write data is received on the Target side in the same sequence as in FIGS. 13 and 14. Here, as in the sequence seq3 in FIGS. The data is received only from the data buffer indicated by the Page element of the Page Table List acquired by the sequence seq2.
In the sequence seq4 (FIG. 22), the process for receiving the Command Block ORB (ORB_page_table) of the Page Table List composed of the remaining division units of the Page Table from the Initiator is executed by the same procedure as the previous sequence seq2. In the sequence seq5 (FIGS. 22 to 23), the Target receives data from the Data buffer indicated by the Page element of the Page Table List acquired by the sequence seq4 in the same procedure as the sequence seq2.
The subsequent sequence seq6 performs the same end processing as the sequence seq4 in FIGS. With the end of this sequence seq6, the transaction corresponding to the File Write Command is completed.

そして、本実施の形態のトランザクションにおいては、図15、図16、及び図19、図20には反映されていないが、図28を参照して述べた、Page TableをN個に分割設定する処理は、ソフトウェアではなく、ハードウェアであるSBP2ユニット30(Command Block Agent Unit31)が実行するようにして構成される。このPage Tableの分割設定の結果に従い、同じく、Command Block Agent Unit31が、図15、図16、及び図19、図20におけるシーケンスseq2、seq4において送信すべきPage Table Requestを生成して送信するものである。   In the transaction according to the present embodiment, the page table is divided into N pieces as described with reference to FIG. 28, although it is not reflected in FIGS. 15, 16, 19, and 20. Is configured to be executed by the SBP2 unit 30 (Command Block Agent Unit 31) which is hardware, not software. Similarly, the Command Block Agent Unit 31 generates and transmits a Page Table Request to be transmitted in the sequences seq2 and seq4 in FIG. 15, FIG. 16, FIG. 19, and FIG. is there.

なお、上記のFile Read Commandに対応する図15、図16と、図17、図18とを比較してみても、先の図7、図8、また、図9、図10と同様にして、本実施の形態では、特定のシーケンスについては、OHCIソフトウェアの処理を介在させることなく、ハードウェアであるCBA Unitが処理を実行するようにされている。また、File Write Commandに対応する図19、図20と、図21、図22、図23との比較からも同様のことがいえる。   15 and 16 corresponding to the above File Read Command, and FIGS. 17 and 18, the same as FIGS. 7, 8, 9, and 10, In the present embodiment, the CBA Unit, which is hardware, executes the process for a specific sequence without interposing the process of the OHCI software. The same can be said from a comparison between FIG. 19 and FIG. 20 corresponding to the File Write Command and FIG. 21, FIG. 22, and FIG.

ところで、これまでにおいては、SBP2ユニット30を利用して特定のシーケンスについてOHCIソフトウェアの処理を介在させないようにしたトランザクション(SBP2ユニット対応トランザクション)については、File Read CommandとFile Write Commandに対応する場合を例に挙げて説明を行ってきた。   By the way, up to now, transactions that do not intervene OHCI software processing for a specific sequence using the SBP2 unit 30 (SBP2 unit compatible transactions) may correspond to File Read Command and File Write Command. I have explained it with an example.

本実施の形態のもとでは、SBP2ユニット対応トランザクションを、SBP2で規定されるFile Read CommandとFile Write Command以外の全てのコマンドにも対応して適用することは可能である。
しかしながら、本実施の形態の実際としては、SBP2ユニット対応トランザクションについては、File Read CommandとFile Write Commandにのみ適用することとしている。これは次のような理由による。
例えば、上記したようにSBP2ユニット対応トランザクションを全てのコマンドに適用することは可能ではあるが、この場合には、SBP2ユニット30について、これらの全てのコマンドに対応できるように構成する必要が出てくるが、SBP2ユニット対応トランザクションに対応させるべきコマンドが多くなるほど、SBP2ユニット30のハードウェア構成は複雑化していき、回路、プロセスの設計なども難しくなっていく。
Under the present embodiment, the SBP2 unit compatible transaction can be applied to all commands other than the File Read Command and File Write Command defined by SBP2.
However, in actuality, the SBP2 unit compatible transaction is applied only to the File Read Command and the File Write Command. This is due to the following reason.
For example, as described above, it is possible to apply the SBP2 unit compatible transaction to all commands, but in this case, it is necessary to configure the SBP2 unit 30 to be compatible with all these commands. However, as the number of commands to be associated with the SBP2 unit compatible transaction increases, the hardware configuration of the SBP2 unit 30 becomes more complex and the design of circuits and processes becomes more difficult.

そこで、例えば、SBP2で規定される各種のコマンドに応じたトランザクションのうちで、高速な処理が優先されるものが何であるのかを考えてみると、先ず、上記のFile Read CommandとFile Write Commandが挙がる。File Read CommandとFile Write Commandの下でやりとりされるReadデータ若しくはWriteデータは、ファイルのデータであるためにサイズが大きく、特に図1に示す構成のシステムでは、動画像のデータであるために、非常に大きなサイズとなるからである。現に、File Read CommandとFile Write Commandに応じたトランザクションについて、本実施の形態のSBP2ユニット対応トランザクションとした場合には、例えば3倍以上の高速化が図られたことが実験で確認されている。これに対して、他のコマンドについて、SBP2ユニット対応トランザクションを適用しても、高速化が顕著に現れる結果にはなりにくい。   So, for example, if you consider what is the priority for high-speed processing among transactions according to various commands specified in SBP2, first, the above File Read Command and File Write Command are Raise. The Read data or Write data exchanged under File Read Command and File Write Command is file data, so the size is large. Especially, in the system having the configuration shown in FIG. This is because it becomes a very large size. In fact, it has been confirmed through experiments that, for example, when the transaction corresponding to the File Read Command and the File Write Command is the SBP2 unit compatible transaction of the present embodiment, the speed is increased by a factor of three or more. On the other hand, even if the SBP2 unit compatible transaction is applied to other commands, it is unlikely that the speedup will be noticeable.

また、SBP2ユニット30を備えない、OHCIユニット21のみから成る一般のOHCI部13は、現実には、OHCIに準拠するIEEE1394通信用の汎用チップとして広く普及しており、このような汎用チップをソフトウェアで制御してSBP2に従った通信、トランザクション(OHCIユニット対応トランザクション)を実行させる、ということについての技術は或る確立されているという状況がある。このことを考慮すると、顕著な高速化が現れないコマンドについてまでSBP2ユニット30を適用してOHCIユニット21を逆に不要としてしまうことは、これまでのソフトウェアの資産を活かせなくなるという点で好ましいとはいえない。つまり、コマンドに応じて、適宜、SBP2ユニット対応トランザクションとOHCIユニット対応トランザクションとを使い分けることの方が効率的であるといえる。   In addition, the general OHCI unit 13 which is not provided with the SBP2 unit 30 and is composed only of the OHCI unit 21 is actually widely used as a general-purpose chip for IEEE1394 communication conforming to OHCI. There is a situation in which a technique for executing communication and transactions (transactions corresponding to OHCI units) in accordance with SBP2 under the control of SBP2 has been established. In consideration of this, it is preferable to apply the SBP2 unit 30 to a command that does not show a noticeable speedup and to eliminate the need for the OHCI unit 21 from the viewpoint of making it impossible to utilize the existing software assets. I can't say that. In other words, it can be said that it is more efficient to properly use the SBP2 unit compatible transaction and the OHCI unit compatible transaction depending on the command.

このようなことを考慮した結果として、本実施の形態では、File Read CommandとFile Write Commandに対応するトランザクションについてのみ、SBP2ユニット対応トランザクションを適用し、残るコマンドについては、例えば少なくともデータのやりとりに関して、これまでと同じOHCIユニット対応トランザクションを少なくとも一部にて適用することとした。
ただし、必要に応じて、上記した高速化の顕著性、ソフトウェア資産の活用、及びSBP2ユニット30としてのハードウェア構成の複雑化などを考慮したうえで、File Read Command、File Write Command以外の一部コマンドに対応するトランザクションについても、SBP2ユニット対応トランザクションを適用することについては、特に妨げられるべきものではない。
As a result of considering this, in the present embodiment, the SBP2 unit compatible transaction is applied only to the transaction corresponding to the File Read Command and the File Write Command, and the remaining command is, for example, at least regarding the exchange of data. The same transaction for OHCI units as before will be applied at least in part.
However, if necessary, some considerations other than File Read Command and File Write Command will be taken into consideration, such as the above-mentioned saliency of speedup, utilization of software assets, and complicated hardware configuration as SBP2 unit 30. The transaction corresponding to the command should not be particularly hindered from applying the SBP2 unit compatible transaction.

ここで、OHCIユニット対応トランザクションが適用されるコマンドとして、File Open Commandを例に挙げることとして、そのトランザクション例を図24に示す。
この図においては、トランザクション全体を、シーケンスseq1、seq2、seq3の順で区分して示している。
Here, as an example of a command to which an OHCI unit compatible transaction is applied, File Open Command is given as an example, and FIG. 24 shows an example of the transaction.
In this figure, the entire transaction is shown in the order of sequences seq1, seq2, and seq3.

先ず、シーケンスseq1では、PC InitiatorがTargetに対してDoorBellを送信している。これに応じては、本実施の形態のようにOHCI部13がSBP2ユニット30を備える場合、先に述べたようにして、DoorBellは、SBP2ユニット30側のCBA Unitが受け付ける。CBA Unitは、DoorBellの受信に応答して、OHCIソフトウェアの処理を介在させることなく、ただちにResponseをTarget側に返す。また、続けてORB Pointer Read RequestをPC Initiatorに対して送信する。PC Initiatorは、ORB Pointer Read Request の受信に応答して、CBA Unitに対してORB Pointer Read Responseを返す。このORB Pointer Read Responseには、ORBをフェッチ(Fetch)しているPC Initiator側のMemory Addressが示されている。
そこで、CBA Unitは、ORB Read Requestを受信したことに応じて、PC Initiatorに対してORB Read Requestを送信する。PC Initiatorは、ORB Read Requestに応答するORB Read Responseとして、File Open CommandとしてのCommand Block ORBを返送する。File Open CommandとしてのCommand Block ORBは、例えば図25に示した構造におけるcdb[0]に対して、C0hを格納する。
First, in sequence seq1, PC Initiator transmits DoorBell to Target. In response to this, when the OHCI unit 13 includes the SBP2 unit 30 as in the present embodiment, DoorBell is accepted by the CBA Unit on the SBP2 unit 30 side as described above. In response to the reception of DoorBell, the CBA Unit immediately returns Response to the Target without intervening OHCI software processing. Further, an ORB Pointer Read Request is subsequently transmitted to the PC Initiator. In response to receiving the ORB Pointer Read Request, the PC Initiator returns an ORB Pointer Read Response to the CBA Unit. In this ORB Pointer Read Response, a Memory Address on the PC Initiator side that fetches (or fetches) the ORB is shown.
Therefore, the CBA Unit transmits an ORB Read Request to the PC Initiator in response to receiving the ORB Read Request. The PC Initiator returns a Command Block ORB as a File Open Command as an ORB Read Response in response to the ORB Read Request. The Command Block ORB as the File Open Command stores C0h for cdb [0] in the structure shown in FIG. 25, for example.

この場合のCBA Unitは、Command Block ORBの受信に応答してInterrupt Handlerに対してORBfetchを出力して割り込み要求を行う。これに応じて、OHCIソフトウェアは、図示する処理を実行する。
なお、ここまでの処理をみて分かるように、TargetがDoorBellの受信(Command Block Agent Registerへのアクセス)から、Command Block ORBを受け取るまでの処理は、先のFile Read CommandとFile Write Commandに対応するトランザクションと同様にして、ソフトウェアを介在させることなく、CBA UnitとPC Initiatorとの間でのハードウェアによる処理となっている。
In this case, the CBA Unit issues an interrupt request by outputting ORBfetch to the Interrupt Handler in response to receiving the Command Block ORB. In response to this, the OHCI software executes the illustrated process.
As you can see from the processing so far, the processing from the reception of DoorBell (access to the Command Block Agent Register) to the reception of the Command Block ORB corresponds to the previous File Read Command and File Write Command. Similar to transactions, the processing is performed by hardware between the CBA Unit and the PC Initiator without software intervention.

続くシーケンスseq2では、上記シーケンスseq1によりOHCI TaskからCBA Taskに対してORB:OPEN:EV_ORBFCH (EventFlag)が実行されたことに応じて、CBA TaskからOHCI Unit(OHCIユニット21)に対してFile Name Read Requestを出力する。
File Name Read Requestを受け付けたことに応じてOHCI Taskは、PC Initiatorに対して、Read Request Blockを送信する。
PC Initiatorは、Read Request Blockの受信に応答して先ずAcknowledge(ACK)を返送する。OHCI Unitは、ACKの受信に応じて、Interrupt HandlerにReqTxCompleteによる割り込みを行う。これにより図示するようにして、Interrupt HandlerからOHCI Task, Transaction Task間でのソフトウェア処理が実行されることで、OHCIソフトウェア側にて、Read Request Blockの送信が成功したことが認識される。
次に、PC Initiatorは、ACKの出力に続けて、Read Response Blockを返してくる。これを受信したOHCI Unitは、Interrupt Handlerに対してRead Response Blockのパケットを渡して割り込みを行う。これに応じて、OHCIソフトウェアによる所要の処理(INT_RSPKT (DataQueue)、RX:READ_B_RES、File Name Read Resp :EV_DONE(EventFlag)、psmChkFileType、psmOpenFile)などが実行される。このOHCIソフトウェアの処理により、例えばTarget側にてファイル名が取得できることになる。
このシーケンスseq2としての処理が、これまでと同様にしてソフトウェアを介在させた処理となっているものであり、このために、シーケンスseq2では、CBA Unit(SBP2ユニット30)に代わり、OHCI Unit(OHCIユニット21)が処理を実行している。
In the subsequent sequence seq2, in response to the execution of ORB: OPEN: EV_ORBFCH (EventFlag) from the OHCI Task to the CBA Task by the sequence seq1, the File Name Read from the CBA Task to the OHCI Unit (OHCI unit 21). Outputs Request.
In response to accepting the File Name Read Request, the OHCI Task transmits a Read Request Block to the PC Initiator.
The PC Initiator first returns an Acknowledge (ACK) in response to receiving the Read Request Block. In response to the reception of the ACK, the OHCI Unit interrupts the Interrupt Handler using ReqTxComplete. As a result, as shown in the figure, by executing software processing between the Interrupt Handler and the OHCI Task and Transaction Task, the OHCI software recognizes that the Read Request Block has been successfully transmitted.
Next, the PC Initiator returns a Read Response Block following the output of ACK. The OHCI unit that has received this interrupts the interrupt handler by passing the read response block packet to the interrupt handler. In response to this, required processing (INT_RSPKT (DataQueue), RX: READ_B_RES, File Name Read Resp: EV_DONE (EventFlag), psmChkFileType, psmOpenFile) by the OHCI software is executed. By this OHCI software processing, for example, the file name can be acquired on the Target side.
The process as the sequence seq2 is a process in which software is interposed in the same manner as before. For this reason, in the sequence seq2, in place of the CBA Unit (SBP2 unit 30), an OHCI Unit (OHCI) Unit 21) is executing the process.

上記したシーケンスseq2におけるOHCIソフトウェアの処理が完了すると、シーケンスseq3として、CBA TaskがOHCI Unitに対してstatus block noticeを返す。これを受けて、OHCI Unit は、status block noticeをPC Initiatorに送信する。PC Initiatorは、status block noticeの受信に応答したACKを返してくる。OHCI Unitは、このACKの受信に応答して割り込みをかけ、OHCIソフトウェアにより図示する処理を実行させ、最終的にCBA TaskからCBA Unitに対してシーケンスの終了通知が行われることを以て、File Open Commandに対応するトランザクションが終了する。   When the OHCI software process in the sequence seq2 is completed, the CBA Task returns a status block notice to the OHCI Unit as the sequence seq3. In response, the OHCI Unit sends a status block notice to the PC Initiator. The PC Initiator returns an ACK in response to receiving the status block notice. The OHCI Unit interrupts in response to the reception of this ACK, causes the OHCI software to execute the processing shown in the figure, and finally the sequence end notification is sent from the CBA Task to the CBA Unit. The transaction corresponding to is terminated.

なお、これまでに説明してきた実施の形態においては、Targetに対応するNodeは、ビデオカメラ装置1としているが、これに限定されるものではない。本願発明は、当然のこととして、他のビデオカメラ装置以外に実装されるIEEE1394データインターフェース機能に適用できる。
また、上記実施の形態では、データインターフェース規格としてIEEE1394を例に挙げると共に、このIEEE1394における共通化規格としてOHCIを挙げ、さらに、IEEE1394の上位通信プロトコルとしてSBP2を挙げている。しかし、本願発明の下では、これらのデータインターフェース規格、共通化規格、また、上位通信プロトコルについては、特に限定されるべきものではない。
In the embodiment described so far, the node corresponding to the target is the video camera device 1, but is not limited to this. As a matter of course, the present invention can be applied to an IEEE 1394 data interface function implemented other than other video camera apparatuses.
In the above-described embodiment, IEEE 1394 is taken as an example of the data interface standard, OHCI is taken as a common standard in IEEE 1394, and SBP2 is taken as an upper-layer communication protocol of IEEE 1394. However, under the present invention, these data interface standards, common standards, and higher-level communication protocols are not particularly limited.

本発明の実施の形態に対応するシステム構成例を示す図である。It is a figure which shows the system configuration example corresponding to embodiment of this invention. 実施の形態のビデオカメラ装置におけるIEEE1394データインターフェースに関連する部位を示すブロック図である。It is a block diagram which shows the site | part relevant to the IEEE1394 data interface in the video camera apparatus of embodiment. 一般例に対応したOHCI部の構成例を示すブロック図である。It is a block diagram which shows the structural example of the OHCI part corresponding to a general example. 実施の形態に対応するOHCI部の構成例を示すブロック図である。It is a block diagram which shows the structural example of the OHCI part corresponding to embodiment. Command Block Agent Registerを示す図である。It is a figure which shows Command Block Agent Register. Fetch Agent CSR base address registerを示す図である。It is a figure which shows Fetch Agent CSR base address register. 実施の形態に対応するReadコマンド(File read Command)に応じたトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction according to the Read command (File read Command) corresponding to embodiment. 図7に続くトランザクションを示すシーケンス図である。FIG. 8 is a sequence diagram illustrating a transaction following FIG. 7. 一般例に対応するReadコマンド(File read Command)に応じたトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction according to the Read command (File read Command) corresponding to a general example. 図9に続くトランザクションを示すシーケンス図である。FIG. 10 is a sequence diagram illustrating a transaction following FIG. 9. 実施の形態に対応するWriteコマンド(File Write Command)に応じたトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction according to Write command (File Write Command) corresponding to embodiment. 図11に続くトランザクションを示すシーケンス図である。FIG. 12 is a sequence diagram illustrating a transaction following FIG. 11. 一般例に対応するWriteコマンド(File Write Command)に応じたトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction according to the Write command (File Write Command) corresponding to a general example. 図13に続くトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction following FIG. 実施の形態に対応するReadコマンド(File read Command)に応じたトランザクションとして、Page Table Listを分割した場合のトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction at the time of dividing | segmenting Page Table List as a transaction according to the Read command (File read Command) corresponding to embodiment. 図15に続くトランザクションを示すシーケンス図である。FIG. 16 is a sequence diagram illustrating a transaction following FIG. 15. 一般例に対応するReadコマンド(File read Command)に応じたトランザクションとして、Page Table Listを分割した場合のトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction at the time of dividing | segmenting Page Table List as a transaction according to the Read command (File read Command) corresponding to a general example. 図17に続くトランザクションを示すシーケンス図である。FIG. 18 is a sequence diagram illustrating a transaction following FIG. 17. 実施の形態に対応するWriteコマンド(File Write Command)に応じたトランザクションとして、Page Table Listを分割した場合のトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction at the time of dividing | segmenting Page Table List as a transaction according to Write command (File Write Command) corresponding to embodiment. 図19に続くトランザクションを示すシーケンス図である。FIG. 20 is a sequence diagram illustrating a transaction following FIG. 19. 一般例に対応するWriteコマンド(File Write Command)に応じたトランザクションとして、Page Table Listを分割した場合のトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction at the time of dividing | segmenting Page Table List as a transaction according to the Write command (File Write Command) corresponding to a general example. 図21に続くトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction following FIG. 図22に続くトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction following FIG. 実施の形態に対応するFile Open Commandに応じたトランザクションを示すシーケンス図である。It is a sequence diagram which shows the transaction according to File Open Command corresponding to embodiment. File Read CommandとしてのCommand Block ORBの構造を示す図である。It is a figure which shows the structure of Command Block ORB as File Read Command. ORB_page_tableを示す図である。It is a figure which shows ORB_page_table. File Write CommandとしてのCommand Block ORBの構造を示す図である。It is a figure which shows the structure of Command Block ORB as File Write Command. Page Table分割の概念を示す図である。It is a figure which shows the concept of Page Table division | segmentation.

符号の説明Explanation of symbols

1 ビデオカメラ装置、2 編集装置(PC)、3 IEEE1394バス、11 CPU、12 メモリ、13 OHCI部、15 バッファメモリ、21 OHCIユニット、22 PCIバスインターフェースブロック、23 IEEE1394リンク層・物理層ブロック、30SBP2ユニット、31 Command Block Agent Unit、32 AT FAM DMAブロック、33 Header・Footer Add Block、34 AT FAM FIFOブロック、35 AR_FAM DMAブロック、36 Header・Footer Remove Block、37 AR_FAM FIFOブロック   1 video camera device, 2 editing device (PC), 3 IEEE 1394 bus, 11 CPU, 12 memory, 13 OHCI section, 15 buffer memory, 21 OHCI unit, 22 PCI bus interface block, 23 IEEE 1394 link layer / physical layer block, 30SBP2 Unit, 31 Command Block Agent Unit, 32 AT FAM DMA block, 33 Header / Footer Add Block, 34 AT FAM FIFO block, 35 AR_FAM DMA block, 36 Header / Footer Remove Block, 37 AR_FAM FIFO block

Claims (11)

所定のデータインターフェース規格の下で規定される所定の共通化規格に準拠して形成され、上記データインターフェース規格に対応する外部バスと、所定規格による内部バスとの間でデータ伝送を行うようにして設けられる第1の伝送部と、
上記外部バスと上記内部バスとの間に設けられて、上記データインターフェース規格の上位で規定される所定の通信プロトコルに対応するデータ伝送を行うもので、ハードウェアにより形成され、上記第1の伝送部を利用した場合にはソフトウェアによる処理が介在する所定のシーケンスについては、ソフトウェアを介在させることなく自己と外部バスとの間でのハードウェア間データ伝送を行うように構成される第2の伝送部と、
を備える情報処理装置。
It is formed in accordance with a predetermined common standard defined under a predetermined data interface standard, and data transmission is performed between an external bus corresponding to the data interface standard and an internal bus according to the predetermined standard. A first transmission unit provided;
Provided between the external bus and the internal bus, and performs data transmission corresponding to a predetermined communication protocol defined at a higher level of the data interface standard, formed by hardware, and the first transmission Second transmission configured to perform hardware-to-hardware data transmission between itself and an external bus without intervention of software for a predetermined sequence in which processing by software is involved And
An information processing apparatus comprising:
上記第2の伝送部は、
上記通信プロトコルにて規定される所定のコマンドに対応したトランザクションにおける所定のシーケンスについて、上記ハードウェア間データ伝送を実行するようにされている、
請求項1に記載の情報処理装置。
The second transmission unit is
The hardware-to-hardware data transmission is executed for a predetermined sequence in a transaction corresponding to a predetermined command defined by the communication protocol.
The information processing apparatus according to claim 1.
上記第2の伝送部は、
上記通信プロトコルにて規定されるファイル読み出しコマンドに対応したトランザクションにおける読み出しデータの転送のためのシーケンスについて、少なくともハードウェア間データ伝送を実行するようにされている、
請求項2に記載の情報処理装置。
The second transmission unit is
At least hardware-to-hardware data transmission is performed for a sequence for transferring read data in a transaction corresponding to a file read command defined by the communication protocol.
The information processing apparatus according to claim 2.
上記第2の伝送部は、
上記通信プロトコルにて規定されるファイル書き込みコマンドに対応したトランザクションにおける書き込みデータの転送のためのシーケンスについて、少なくともハードウェア間データ伝送を実行するようにされている、
請求項2に記載の情報処理装置。
The second transmission unit is
At least hardware-to-hardware data transmission is performed for a sequence for transferring write data in a transaction corresponding to a file write command defined in the communication protocol.
The information processing apparatus according to claim 2.
上記第2の伝送部は、
自身が対応すべき上記通信プロトコルにおける所定のエージェント機能に対応するレジスタへのアクセスに対するレスポンスと、これに続く、コマンド内容を示すデータを受け取るまでの処理について、少なくとも、ハードウェア間データ伝送を実行する、
請求項1に記載の情報処理装置。
The second transmission unit is
At least hardware-to-hardware data transmission is executed with respect to a response to access to a register corresponding to a predetermined agent function in the communication protocol to be supported by itself and processing subsequent to reception of data indicating command contents. ,
The information processing apparatus according to claim 1.
上記第2の伝送部は、
上記外部バスに伝送すべきデータに対して、上記データインターフェース規格により規定されるパケットのヘッダ、フッタを付加するヘッダ・フッタ付加手段を備える、
請求項1に記載の情報処理装置。
The second transmission unit is
Header / footer adding means for adding a header and footer of a packet defined by the data interface standard to data to be transmitted to the external bus;
The information processing apparatus according to claim 1.
上記第2の伝送部は、
上記外部バスから伝送されてきた、上記データインターフェース規格により規定されるパケット形式のデータから、ヘッダ、フッタを除去するヘッダ・フッタ除去手段を備える、
請求項1に記載の情報処理装置。
The second transmission unit is
Header / footer removing means for removing the header and footer from the packet format data defined by the data interface standard transmitted from the external bus;
The information processing apparatus according to claim 1.
上記第2の伝送部は、
上記通信プロトコルにおいて規定される所定のエージェント機能にのみ対応してハードウェア間データ伝送を行うようにされている、
請求項1に記載の情報処理装置。
The second transmission unit is
Data transmission between hardware corresponding to only a predetermined agent function defined in the communication protocol is performed.
The information processing apparatus according to claim 1.
上記第2の伝送部は、
少なくとも、上記外部バス経由でこの情報処理装置が受けた、エージェント機能対応のレジスタへのアクセスが示すアドレスが、上記所定のエージェント機能に対応する対象エージェント機能対応レジスタのアドレスと同じである場合に、ハードウェア間データ伝送を実行するようにされている、
請求項8に記載の情報処理装置。
The second transmission unit is
At least when the address indicated by the access to the register corresponding to the agent function received by the information processing apparatus via the external bus is the same as the address of the target agent function corresponding register corresponding to the predetermined agent function, To perform hardware-to-hardware data transmission,
The information processing apparatus according to claim 8.
上記第2の伝送部は、
上記外部バスと接続される相手側情報処理装置が有する、上記ハードウェア間データ伝送により伝送されるデータのための離散バッファ領域を示すページテーブルの総サイズが所定以上である場合においては上記ページテーブルを複数のページテーブル部分に分割設定し、
上記相手側情報処理装置に対してページテーブル要求を行う際には、上記ページテーブル部分ごとに分けて要求を行うように構成される、
請求項1に記載の情報処理装置。
The second transmission unit is
When the total size of the page table indicating the discrete buffer area for data transmitted by the inter-hardware data transmission of the counterpart information processing apparatus connected to the external bus is greater than or equal to a predetermined value, the page table Is divided into multiple page table parts,
When making a page table request to the counterpart information processing apparatus, it is configured to make a request separately for each page table part,
The information processing apparatus according to claim 1.
所定のデータインターフェース規格の下で規定される所定の共通化規格に準拠して形成され、上記データインターフェース規格に対応する外部バスと、所定規格による内部バスとの間でデータの伝送を行うようにして設けられる第1の伝送部と、
上記外部バスと上記内部バスとの間に設けられて、上記データインターフェース規格の上位で規定される所定の通信プロトコルに対応するデータの伝送を行うもので、ハードウェアにより形成される第2の伝送部とを備える情報処理装置における情報処理方法であって、
上記第1の伝送部を利用した場合にはソフトウェアによる処理が介在する所定のシーケンスを実行すべきときには、上記第2の伝送部により、ソフトウェアを介在させることなく外部バスとの間でのハードウェア間データ伝送を行うようにする情報処理方法。
Data is transmitted between an external bus corresponding to the data interface standard and an internal bus according to the predetermined standard, which is formed in accordance with a predetermined common standard defined under a predetermined data interface standard. A first transmission unit provided by
A second transmission formed by hardware, which is provided between the external bus and the internal bus and transmits data corresponding to a predetermined communication protocol defined by the upper level of the data interface standard. An information processing method in an information processing apparatus comprising a unit,
When the first transmission unit is used, when a predetermined sequence involving software processing is to be executed, hardware between the second transmission unit and the external bus without software intervention is used. Information processing method for performing inter-data transmission.
JP2008140883A 2008-05-29 2008-05-29 Information processing device and information processing method Pending JP2009290545A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008140883A JP2009290545A (en) 2008-05-29 2008-05-29 Information processing device and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008140883A JP2009290545A (en) 2008-05-29 2008-05-29 Information processing device and information processing method

Publications (1)

Publication Number Publication Date
JP2009290545A true JP2009290545A (en) 2009-12-10

Family

ID=41459318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008140883A Pending JP2009290545A (en) 2008-05-29 2008-05-29 Information processing device and information processing method

Country Status (1)

Country Link
JP (1) JP2009290545A (en)

Similar Documents

Publication Publication Date Title
US8103803B2 (en) Communication between a processor and a controller
JP5663037B2 (en) Multimedia USB data transfer on digital mutual interface for video and audio (DiiVA)
TWI332614B (en) Method, apparatus, system and article for managing a connection in a connection orientated environment
US7069350B2 (en) Data transfer control system, electronic instrument, and data transfer control method
JP3636157B2 (en) Data transfer control device, electronic device, and data transfer control method
JP4837659B2 (en) Bus controller for processing split transactions
US9898230B2 (en) Information processing apparatus, system, and information processing method
US6889266B1 (en) Method for delivering packet boundary or other metadata to and from a device using direct memory controller
JP2008519373A (en) Hardware peripheral component memory alignment method
JP3584789B2 (en) Data transfer control device and electronic equipment
US20110238869A1 (en) Autonomous Multi-Packet Transfer for Universal Serial Bus
TWI335517B (en) Method of requests access and scheduling and related apparatus thereof
US6889265B2 (en) Apparatus and method to allow and synchronize schedule changes in a USB enhanced host controller
JP2003316728A (en) Data transfer control device, electronic equipment, and data transfer control method
JP2008502977A (en) Interrupt method for bus controller
JP3539287B2 (en) Data transfer control device and electronic equipment
US6693905B1 (en) Data exchange unit
JP2009290545A (en) Information processing device and information processing method
US7346714B2 (en) Notification of completion of communication with a plurality of data storage areas
EP1351459A1 (en) Data transfer control device and electronic equipment
JP5440105B2 (en) Image processing system, image processing apparatus, data transfer control method, program, and recording medium
US8856389B1 (en) Efficient data transfers over serial data streams
TW200842601A (en) Method and apparatus for performing full transfer automation in a USB controller
JP2006285872A (en) Multi-cpu system
JP4362199B2 (en) Data transmission device