Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5932571B2 - Transfer control device, transfer control method, and transfer control program - Google Patents
[go: Go Back, main page]

JP5932571B2 - Transfer control device, transfer control method, and transfer control program - Google Patents

Transfer control device, transfer control method, and transfer control program Download PDF

Info

Publication number
JP5932571B2
JP5932571B2 JP2012187224A JP2012187224A JP5932571B2 JP 5932571 B2 JP5932571 B2 JP 5932571B2 JP 2012187224 A JP2012187224 A JP 2012187224A JP 2012187224 A JP2012187224 A JP 2012187224A JP 5932571 B2 JP5932571 B2 JP 5932571B2
Authority
JP
Japan
Prior art keywords
transfer
data
outside
transferred
progress information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012187224A
Other languages
Japanese (ja)
Other versions
JP2014044609A (en
Inventor
啓輔 野村
啓輔 野村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2012187224A priority Critical patent/JP5932571B2/en
Publication of JP2014044609A publication Critical patent/JP2014044609A/en
Application granted granted Critical
Publication of JP5932571B2 publication Critical patent/JP5932571B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

本発明は、転送制御装置、転送制御方法及び転送制御プログラムに関し、例えば、転送対象データから複数のデータ列に分割して転送を行う転送制御装置、転送制御方法及び転送制御プログラムに関する。   The present invention relates to a transfer control device, a transfer control method, and a transfer control program. For example, the present invention relates to a transfer control device, a transfer control method, and a transfer control program that perform transfer by dividing data to be transferred into a plurality of data strings.

特許文献1には、USB(Universal Serial Bus)によるデータ転送を高速に実行するためのUSBホストシステムに関する技術が開示されている。特許文献1にかかるUSBホストシステムは、CPU(Central Processing Unit)用メモリと、USBホストコントローラ内部に転送用メモリとを備える。USBホストコントローラは、転送要求に従って、USBデバイスからのデータを転送用メモリに格納する。CPUは、制御プログラムに従い、転送完了後に転送用メモリからCPU用メモリへデータ転送を行う。   Patent Document 1 discloses a technology related to a USB host system for executing data transfer by USB (Universal Serial Bus) at high speed. The USB host system according to Patent Document 1 includes a CPU (Central Processing Unit) memory and a transfer memory inside the USB host controller. The USB host controller stores data from the USB device in the transfer memory in accordance with the transfer request. In accordance with the control program, the CPU performs data transfer from the transfer memory to the CPU memory after the transfer is completed.

特開2007−249938号公報JP 2007-249938 A

ここで、ホストコントローラとデバイス装置間で大量のデータをバルク転送する場合には、複数のパケット等の転送単位ごとにデータ転送が行われる。但し、当該データの転送は、CPUからの要求等により中断される場合がある。ここで、複数のパケットのうち前半のパケット群の転送が正常に完了し、後半のパケット群が未転送である場合、パケット単位では転送に失敗していないため、パケットの再送は行われない。一方、元々の転送対象である大量のデータとしては、転送が未完了である。そのため、中断されたデータ転送を再開する場合に、最後に転送が完了したパケットの位置等がわかれば、例えば転送済みのパケットの直後のパケットから転送を再開することができる。そして、このようなデータ転送の途中状況は、通常、ホストコントローラ内で管理される。   Here, when a large amount of data is bulk-transferred between the host controller and the device device, data transfer is performed for each transfer unit such as a plurality of packets. However, the data transfer may be interrupted by a request from the CPU. Here, when the transfer of the first half of the plurality of packets is normally completed and the second half of the packets is not yet transferred, the packet is not retransmitted because the transfer has not failed in units of packets. On the other hand, the transfer has not been completed for the large amount of data that is the original transfer target. Therefore, when resuming the interrupted data transfer, if the position of the packet that has been transferred last is known, for example, the transfer can be restarted from the packet immediately after the transferred packet. Such a data transfer halfway situation is usually managed in the host controller.

しかしながら、ホストコントローラ内でのみ途中状況が管理されている場合、ドライバ等の外部から途中状況の情報を活用できないという問題点がある。特に、USB3.0において、バルク転送が複数のストリームにより並列処理することが可能となったことに伴い、この問題点が顕在化する。上述した特許文献1には、このような問題点の解決手段が開示されていない。   However, when the midway situation is managed only within the host controller, there is a problem that information on the midway situation cannot be utilized from the outside such as a driver. In particular, in USB 3.0, this problem becomes apparent as bulk transfer can be performed in parallel by a plurality of streams. Patent Document 1 described above does not disclose means for solving such a problem.

その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。   Other problems and novel features will become apparent from the description of the specification and the accompanying drawings.

一実施の形態によれば、転送制御装置は、転送対象データから分割された複数のデータ列のそれぞれにおける転送の進捗状況を示す転送進捗情報を、外部へ通知する。   According to one embodiment, the transfer control device notifies the transfer progress information indicating the transfer progress status in each of the plurality of data strings divided from the transfer target data to the outside.

他の実施の形態によれば、転送制御装置は、転送対象データの転送中に、所定のタイミングで転送済のパケット数に基づく転送済情報をデータ列ごとに外部へ出力する。   According to another embodiment, the transfer control device outputs transferred information based on the number of transferred packets at a predetermined timing to the outside during transfer of transfer target data.

前記一実施の形態によれば、転送制御装置の外部でデータ転送の途中状況を活用し、転送対象のデータに関する多様なニーズに対して柔軟な対応をすることができる。   According to the embodiment, it is possible to flexibly cope with various needs related to data to be transferred by utilizing the intermediate state of data transfer outside the transfer control device.

本実施の形態1にかかる転送制御装置の構成を示すブロック図である。1 is a block diagram showing a configuration of a transfer control device according to a first exemplary embodiment; 本実施の形態1にかかる転送制御処理の流れを示すフローチャートである。3 is a flowchart showing a flow of a transfer control process according to the first embodiment. 本実施の形態2にかかるUSBホストコントローラの構成を示すブロック図である。It is a block diagram which shows the structure of the USB host controller concerning this Embodiment 2. FIG. 本実施の形態2にかかるストリームの制御領域を説明するための図である。It is a figure for demonstrating the control area | region of the stream concerning this Embodiment 2. FIG. 本実施の形態2にかかる転送中間データの登録処理(送信時)の流れを説明するシーケンス図である。It is a sequence diagram explaining the flow of the registration process (at the time of transmission) of the transfer intermediate data concerning this Embodiment 2. FIG. 本実施の形態2にかかる転送中間データの更新処理(送信時)の流れを説明するシーケンス図である。It is a sequence diagram explaining the flow of the update process (at the time of transmission) of the transfer intermediate data concerning this Embodiment 2. 本実施の形態2にかかる転送中間データの登録処理(受信時)の流れを説明するシーケンス図である。FIG. 10 is a sequence diagram for explaining a flow of transfer intermediate data registration processing (during reception) according to the second exemplary embodiment; 本実施の形態2にかかる転送中止命令時の流れを説明するシーケンス図である。It is a sequence diagram explaining the flow at the time of the transfer stop command concerning this Embodiment 2. FIG. 本実施の形態3にかかるUSBホストコントローラの構成を示すブロック図である。It is a block diagram which shows the structure of the USB host controller concerning this Embodiment 3. FIG. 本実施の形態3にかかる転送中間データの登録処理(送信時)の流れを説明するシーケンス図である。FIG. 10 is a sequence diagram for explaining a flow of transfer intermediate data registration processing (during transmission) according to the third exemplary embodiment; 本実施の形態4にかかる転送中止命令時の流れを説明するシーケンス図である。It is a sequence diagram explaining the flow at the time of the transfer stop command concerning this Embodiment 4.

<実施の形態1>
図1は、本実施の形態1にかかる転送制御装置10の構成を示すブロック図である。転送制御装置10は、デバイス装置20との間で転送対象データの送信又は受信の少なくともいずれかである転送を行う。ここで、転送対象のデータは、一回の転送処理では転送しきれないほどに大きいデータであるものとする。そのため、転送制御装置10とデバイス装置20間では、パケット等の転送単位でデータ転送が行われる。そして、具体的には、転送制御装置10とデバイス装置20間では、転送対象データから分割された複数のデータ列を並列処理によりパケット単位で転送を行うものとする。尚、並列処理とは、例えば、パイプライン処理であり、実際のパケットの転送自体は直列で行われていてもよい。
<Embodiment 1>
FIG. 1 is a block diagram showing a configuration of the transfer control apparatus 10 according to the first embodiment. The transfer control apparatus 10 performs transfer that is at least one of transmission and reception of transfer target data with the device apparatus 20. Here, it is assumed that the data to be transferred is so large that it cannot be transferred in a single transfer process. Therefore, data transfer is performed between the transfer control device 10 and the device device 20 in units of transfer such as packets. Specifically, between the transfer control device 10 and the device device 20, a plurality of data strings divided from the transfer target data are transferred in units of packets by parallel processing. The parallel processing is, for example, pipeline processing, and actual packet transfer itself may be performed in series.

転送制御装置10は、転送処理部11と、通知部12とを備える。転送処理部11は、転送対象データから分割された複数のデータ列を、通信相手のデバイス装置との間で転送する。通知部12は、複数のデータ列のそれぞれにおける転送の進捗状況を示す転送進捗情報13を、外部へ通知する。ここで、外部とはデバイス装置20以外の装置であって、転送制御装置10に接続された装置等である。   The transfer control device 10 includes a transfer processing unit 11 and a notification unit 12. The transfer processing unit 11 transfers a plurality of data strings divided from the transfer target data to the communication partner device. The notification unit 12 notifies the transfer progress information 13 indicating the transfer progress status of each of the plurality of data strings to the outside. Here, the outside is a device other than the device device 20 and is a device connected to the transfer control device 10.

実施の形態1にかかる転送制御装置10を言い換えると、転送対象データから分割された複数のデータ列を並列処理によりパケット単位で通信相手との間で転送中に、所定のタイミングで転送済のパケット数に基づく転送済情報を当該データ列ごとに外部へ出力するものである。   In other words, the transfer control device 10 according to the first embodiment is a packet that has been transferred at a predetermined timing while a plurality of data strings divided from the transfer target data are being transferred in parallel with the communication partner in packet units. The transferred information based on the number is output to the outside for each data string.

これにより、転送対象データの転送が中断されたとしても、その進捗状況が転送制御装置10以外の外部も転送進捗情報により知ることができるため、転送進捗情報を活用して多様なニーズに応じた柔軟な処理を行うことができる。   As a result, even if the transfer of the transfer target data is interrupted, the progress status can be known from the transfer progress information even outside the transfer control device 10, so that the transfer progress information can be used to meet various needs. Flexible processing can be performed.

図2は、本実施の形態1にかかる転送制御処理の流れを示すフローチャートである。まず、転送処理部11は、通信相手のデバイス装置20との間で、部分データを転送する(S11)。ここで、部分データとは、転送対象データから複数に分割されたデータ列の一部であり、例えば、パケットである。また、転送処理部11は、部分データをデバイス装置20へ送信するか、デバイス装置20から受信するかのいずれかであればよい。   FIG. 2 is a flowchart showing the flow of transfer control processing according to the first embodiment. First, the transfer processing unit 11 transfers partial data to the communication partner device 20 (S11). Here, the partial data is a part of a data string divided into a plurality of data to be transferred, for example, a packet. In addition, the transfer processing unit 11 only needs to transmit the partial data to the device apparatus 20 or receive the partial data from the device apparatus 20.

次に、通知部12は、外部へ転送進捗情報13を出力する(S12)。つまり、通知部12は、部分データの転送を完了した後、所定のタイミングにおいて、当該部分データが属するデータ列における転送の進捗状況を示す転送進捗情報13を、データ列ごとに外部へ出力する。   Next, the notification unit 12 outputs the transfer progress information 13 to the outside (S12). In other words, after completing the transfer of the partial data, the notification unit 12 outputs the transfer progress information 13 indicating the transfer progress status in the data string to which the partial data belongs to each data string at a predetermined timing.

このように、本実施の形態1により、転送制御装置の外部でデータ転送の途中状況を活用し、転送対象のデータに関する多様なニーズに対して柔軟な対応をすることができる。   As described above, according to the first embodiment, it is possible to flexibly cope with various needs related to data to be transferred by utilizing the intermediate state of data transfer outside the transfer control device.

<実施の形態2>
本実施の形態2は、上述した実施の形態1の転送制御装置10の一実施例である。本実施の形態2にかかる通知部は、転送処理部がデータ列の一部である部分データの転送を完了するごとに、当該部分データが属するデータ列における転送済みのデータ量を算出し、所定のタイミングにおいて、算出された転送済みのデータ量を転送進捗情報として外部へ通知する。このように、転送進捗情報として転送済のデータ量を用いる。そして、例えばパケットの転送毎に転送済のデータ量を算出する。その後、所定のタイミングによりその時点の転送済のデータ量を外部へ通知する。これにより、転送毎に算出しておくことで、通知が必要なタイミングに最新の転送進捗情報を即時に通知が可能となる。また、転送進捗情報をデータ量とすることで、データ列内で再送時等に再送を開始すべきデータ位置を容易に特定することができる。
<Embodiment 2>
The second embodiment is an example of the transfer control device 10 of the first embodiment described above. The notification unit according to the second embodiment calculates the amount of data already transferred in the data sequence to which the partial data belongs each time the transfer processing unit completes the transfer of the partial data that is a part of the data sequence. At this timing, the calculated transferred data amount is notified to the outside as transfer progress information. Thus, the transferred data amount is used as the transfer progress information. Then, for example, the amount of transferred data is calculated for each packet transfer. Thereafter, the amount of transferred data at that time is notified to the outside at a predetermined timing. Thus, by calculating for each transfer, the latest transfer progress information can be notified immediately at the timing when notification is required. In addition, by setting the transfer progress information as the data amount, it is possible to easily specify the data position where the retransmission is to be started at the time of retransmission in the data string.

さらに本実施の形態2にかかる通知部は、転送処理部が部分データの転送を完了するごとに、当該部分データが属するデータ列における転送進捗情報を外部から取得し、当該取得した転送進捗情報に当該部分データのサイズを加算して転送済みのデータ量を算出し、当該転送済みのデータ量を転送進捗情報の更新値として外部へ通知する。言い換えると、本実施の形態2にかかる転送制御装置は、パケットの転送が完了するごとに、転送済情報を前記外部へ出力する。   Furthermore, every time the transfer processing unit completes the transfer of the partial data, the notifying unit according to the second embodiment acquires transfer progress information in the data string to which the partial data belongs from the outside, and the acquired transfer progress information is included in the acquired transfer progress information. The size of the partial data is added to calculate the transferred data amount, and the transferred data amount is notified to the outside as an update value of the transfer progress information. In other words, the transfer control device according to the second embodiment outputs the transferred information to the outside every time the transfer of the packet is completed.

このように、一パケットの転送が完了するごとに、転送進捗情報を外部へ通知するため、転送制御装置は、内部に転送進捗情報を保持するためのメモリが不要となる。そのため、転送制御装置内の回路面積を抑制することができる。   In this way, since the transfer progress information is notified to the outside every time one packet is transferred, the transfer control device does not need a memory for holding the transfer progress information inside. Therefore, the circuit area in the transfer control device can be suppressed.

また、逐次、最新の転送進捗情報を外部へ通知しておくため、例えば、CPU等から転送の中止要求があった場合であっても、既に転送進捗情報が通知済みであるため、CPU等は即時に最新の転送進捗情報を取得することができる。   Further, since the latest transfer progress information is sequentially notified to the outside, for example, even when there is a transfer stop request from the CPU or the like, the transfer progress information has already been notified. The latest transfer progress information can be acquired immediately.

図3は、本実施の形態2にかかるUSBホストコントローラ100の構成を示すブロック図である。USBホストコントローラ100は、ペリフェラルバス502を介してUSBデバイス400とデータ転送を行うものである。また、USBホストコントローラ100は、システムバス501を介してドライバ200及びシステムメモリ300等と接続されている。そして、USBホストコントローラ100は、ドライバ200等からの指示に応じてUSBデバイス400へ転送対象データの送信又はUSBデバイス400からの転送対象データの受信を行う。   FIG. 3 is a block diagram showing a configuration of the USB host controller 100 according to the second embodiment. The USB host controller 100 performs data transfer with the USB device 400 via the peripheral bus 502. The USB host controller 100 is connected to the driver 200, the system memory 300, and the like via the system bus 501. Then, the USB host controller 100 transmits the transfer target data to the USB device 400 or receives the transfer target data from the USB device 400 in accordance with an instruction from the driver 200 or the like.

USBホストコントローラ100は、転送対象データから分割された複数のストリーム単位で並列処理によりデータ転送を行うものである。ここで、以下の説明においは、USBホストコントローラ100がUSB3.0に対応しているものとする。USB3.0では、EndpointごとにEDTLA(Event Data Transfer Length Accumulator)というデータ転送における中間情報を扱う必要がある。EDTLAは、転送済のデータ長を示す。よって、EDTLAは、いわば上記転送進捗情報の一実施例である。また、Bulk Streaming Protocolを扱う場合には1Endpointあたり最大65533個のストリームを処理することができる。よって、EDTLAの数も最大65533個となる。   The USB host controller 100 performs data transfer by parallel processing in units of a plurality of streams divided from transfer target data. Here, in the following description, it is assumed that the USB host controller 100 is compatible with USB 3.0. In USB 3.0, it is necessary to handle intermediate information in data transfer called EDTLA (Event Data Transfer Length Accumulator) for each Endpoint. EDTLA indicates the transferred data length. Therefore, EDTLA is an example of the transfer progress information. Further, when handling the Bulk Streaming Protocol, a maximum of 65533 streams can be processed per 1 endpoint. Therefore, the maximum number of EDTLA is 65533.

尚、USBホストコントローラ100は、転送制御装置10の一実施例であり、USB3.0以外の規格に対応したものであっても構わない。つまり、上述したストリーム数及びEDTLA数はあくまで例示であって、これに限定されるものではない。   The USB host controller 100 is an example of the transfer control device 10 and may be compatible with standards other than USB 3.0. That is, the number of streams and the number of EDTLA described above are merely examples, and are not limited thereto.

ドライバ200は、CPU(不図示)がドライバプログラムを読み込み実行することで実現される機能ブロックである。ドライバ200は、アプリケーションソフトウェアからUSBホストコントローラ100へ指示を行うための抽象化したインタフェースを提供する。そのため、USBホストコントローラ100は、ドライバ200からデータ転送の指示や中止の指示を受け付けることとなる。   The driver 200 is a functional block realized by a CPU (not shown) reading and executing a driver program. The driver 200 provides an abstract interface for instructing the USB host controller 100 from application software. Therefore, the USB host controller 100 receives a data transfer instruction and a stop instruction from the driver 200.

システムメモリ300は、上述した外部の一実施例である。つまり、システムメモリ300は、USBホストコントローラ100のデータ転送の通信相手(USBデバイス400)以外であって、USBホストコントローラ100に接続された記憶装置である。システムメモリ300は、制御領域310とストリーム320とを記憶する。ストリーム320は、転送対象データから複数に分割された各データ列である。制御領域310は、ストリーム320の制御情報を管理するための領域である。本実施の形態2では、制御領域310内に後述する転送中間データ311を格納する。   The system memory 300 is an example of the above-described external. That is, the system memory 300 is a storage device connected to the USB host controller 100 other than the data transfer partner (USB device 400) of the USB host controller 100. The system memory 300 stores a control area 310 and a stream 320. A stream 320 is each data string divided into a plurality of pieces of data to be transferred. The control area 310 is an area for managing the control information of the stream 320. In the second embodiment, transfer intermediate data 311 described later is stored in the control area 310.

図4は、本実施の形態2にかかるストリームの制御領域を説明するための図である。このように、本実施の形態2では、システムメモリ300内のStream Contextの空き領域に転送中間データ311(EDTLA)を保存する領域を確保している。   FIG. 4 is a diagram for explaining a stream control area according to the second embodiment. As described above, in the second embodiment, an area for storing the transfer intermediate data 311 (EDTLLA) is secured in an empty area of the Stream Context in the system memory 300.

ここで、システムメモリ300は、USBホストコントローラ100やドライバ200を含むシステム全体で共有する記憶装置である。そのため、転送中間データ311をシステムメモリ300内に格納することで、ドライバ200等のUSBホストコントローラ100以外から転送中間データ311へ容易にアクセスすることができる。よって、ドライバ200から転送中間データ311を様々な処理に用いることができる。   Here, the system memory 300 is a storage device shared by the entire system including the USB host controller 100 and the driver 200. Therefore, by storing the transfer intermediate data 311 in the system memory 300, it is possible to easily access the transfer intermediate data 311 from other than the USB host controller 100 such as the driver 200. Therefore, the transfer intermediate data 311 from the driver 200 can be used for various processes.

図3に戻って説明を続ける。USBホストコントローラ100は、システムバス制御部101と、データバッファ102と、ペリフェラル制御部103と、データ転送処理部104と、転送進捗状況管理部105とを備える。システムバス制御部101は、システムバス501と接続され、データバッファ102、データ転送処理部104及び転送進捗状況管理部105とドライバ200及びシステムメモリ300との通信を制御する。データバッファ102は、転送対象データのうち少なくとも1転送単位、例えば1パケット分の部分データを一時的に保持するための記憶装置である。データバッファ102には、USBデバイス400へ送信予定の部分データと、USBデバイス400から受信後の部分データの両方又は一方を保存可能である。ペリフェラル制御部103は、ペリフェラルバス502と接続され、データバッファ102及びデータ転送処理部104とUSBデバイス400との通信を制御する。   Returning to FIG. 3, the description will be continued. The USB host controller 100 includes a system bus control unit 101, a data buffer 102, a peripheral control unit 103, a data transfer processing unit 104, and a transfer progress status management unit 105. The system bus control unit 101 is connected to the system bus 501 and controls communication between the data buffer 102, the data transfer processing unit 104, the transfer progress status management unit 105, the driver 200, and the system memory 300. The data buffer 102 is a storage device for temporarily holding at least one transfer unit of transfer target data, for example, partial data for one packet. The data buffer 102 can store both or one of partial data to be transmitted to the USB device 400 and partial data received from the USB device 400. The peripheral control unit 103 is connected to the peripheral bus 502 and controls communication between the data buffer 102 and the data transfer processing unit 104 and the USB device 400.

データ転送処理部104は、上述した転送処理部11の一実施例である。データ転送処理部104は、システムバス制御部101及びペリフェラル制御部103を用いて部分データの送信及び受信処理を行う。転送進捗状況管理部105は、上述した通知部12の一実施例である。転送進捗状況管理部105は、データ転送処理部104におけるパケットの転送が完了したことを検出し、当該パケットが属するストリームにおける転送済のデータ長を算出することにより、転送中間データを生成する。転送中間データには、ストリームを特定するための識別情報と、当該ストリームにおける転送済のデータ長とが対応付けられている。そして、転送中間データは、上述した転送進捗情報の一実施例である。そのため、転送中間データは、転送済のデータ長に限定されず、ストリーム内の転送済の最後のデータの位置(アドレス)やパケットサイズが固定長である場合には、転送済のパケット数であっても構わない。または、ストリーム当たりのデータ長に占める転送済のデータ長の比率であっても構わない。また、未転送のデータ長や未転送のデータ長の比率を転送中間データとしても構わない。   The data transfer processing unit 104 is an example of the transfer processing unit 11 described above. The data transfer processing unit 104 performs partial data transmission and reception processing using the system bus control unit 101 and the peripheral control unit 103. The transfer progress status management unit 105 is an example of the notification unit 12 described above. The transfer progress status management unit 105 detects that the transfer of the packet in the data transfer processing unit 104 is completed, and generates the transfer intermediate data by calculating the transferred data length in the stream to which the packet belongs. The transfer intermediate data is associated with identification information for specifying the stream and the transferred data length in the stream. The transfer intermediate data is an example of the transfer progress information described above. Therefore, the transfer intermediate data is not limited to the transferred data length. If the position (address) or packet size of the last transferred data in the stream is a fixed length, the transfer intermediate data is the number of transferred packets. It doesn't matter. Alternatively, it may be the ratio of the transferred data length to the data length per stream. Further, the untransferred data length or the ratio of the untransferred data length may be used as the transfer intermediate data.

また、転送進捗状況管理部105は、生成した転送中間データを所定のタイミングでシステムバス制御部101を介してシステムメモリ300へ出力する。特に、転送進捗状況管理部105は、転送中間データをシステムメモリ300内の制御領域310に格納する。すなわち、転送進捗状況管理部105は、複数のストリームのそれぞれにおける転送中間データについて、システムメモリ300内の各ストリームに関する制御領域310に、各ストリームに対応する転送中間データ311を格納する。このように、制御領域の空き領域を用いてストリームごとに管理するため、領域を効率的に利用できる。   Further, the transfer progress status management unit 105 outputs the generated transfer intermediate data to the system memory 300 via the system bus control unit 101 at a predetermined timing. In particular, the transfer progress status management unit 105 stores the transfer intermediate data in the control area 310 in the system memory 300. That is, the transfer progress management unit 105 stores the transfer intermediate data 311 corresponding to each stream in the control area 310 for each stream in the system memory 300 for the transfer intermediate data in each of the plurality of streams. As described above, since the stream is managed for each stream using the free area of the control area, the area can be used efficiently.

特に、本実施の形態2にかかる転送進捗状況管理部105は、データ転送処理部104がパケットの転送を完了するごとに、当該パケットが属するストリームにおける転送中間データ311をシステムメモリ300から取得し、当該取得した転送中間データ311に当該パケットのサイズを加算して転送済みのデータ量を算出し、当該転送済みのデータ量を転送中間データ311の更新値としてシステムメモリ300へ通知する。   In particular, every time the data transfer processing unit 104 completes packet transfer, the transfer progress status management unit 105 according to the second embodiment acquires transfer intermediate data 311 in a stream to which the packet belongs from the system memory 300, The size of the packet is added to the acquired transfer intermediate data 311 to calculate the transferred data amount, and the transferred data amount is notified to the system memory 300 as an update value of the transfer intermediate data 311.

また、転送進捗状況管理部105は、データ転送処理部104がUSBデバイス400に対して複数のストリームを送信する場合、各ストリームにおける送信済みのデータ量をEDTLAとしてシステムメモリ300へ通知する。また、転送進捗状況管理部105は、データ転送処理部104がUSBデバイス400から複数のストリームを受信する場合、各ストリームにおける受信済みのデータ量をEDTLAとしてシステムメモリ300へ通知する。そのため、送受信の双方に対応することができる。   When the data transfer processing unit 104 transmits a plurality of streams to the USB device 400, the transfer progress status management unit 105 notifies the system memory 300 of the transmitted data amount in each stream as EDTLA. When the data transfer processing unit 104 receives a plurality of streams from the USB device 400, the transfer progress status management unit 105 notifies the system memory 300 of the received data amount in each stream as EDTLA. Therefore, it can respond to both transmission and reception.

図5は、本実施の形態2にかかる転送中間データの登録処理(送信時)の流れを説明するシーケンス図である。前提として、CPU等により転送対象データが複数のストリームに分割されてシステムメモリ300のストリーム320に格納されているものとする。併せて、各ストリーム320に対応した制御領域310が確保されたものとする。但し、この時点では、制御領域310に転送中間データ311は格納されていない。また、USBホストコントローラ100は、USBデバイス400との間でUSBの接続が確立しているものとする。   FIG. 5 is a sequence diagram for explaining a flow of transfer intermediate data registration processing (during transmission) according to the second embodiment. It is assumed that the transfer target data is divided into a plurality of streams by the CPU or the like and stored in the stream 320 of the system memory 300. In addition, it is assumed that a control area 310 corresponding to each stream 320 is secured. However, the transfer intermediate data 311 is not stored in the control area 310 at this time. The USB host controller 100 is assumed to have established a USB connection with the USB device 400.

まず、ドライバ200は、USBホストコントローラ100に対してDoorbell ringを実行する(S201)。ここでは、ドライバ200は、システムメモリ300内の各ストリーム320についてデータ送信の開始をUSBホストコントローラ100に対して指示するものとする。   First, the driver 200 executes a doorbell ring for the USB host controller 100 (S201). Here, it is assumed that the driver 200 instructs the USB host controller 100 to start data transmission for each stream 320 in the system memory 300.

次に、USBホストコントローラ100は、Stream Context Readコマンドを実行する(S202)。つまり、USBホストコントローラ100は、システムメモリ300の制御領域310からEDTLAを読み出そうとする。但し、ここでは、データ送信の開始前であるため、読み出されない。   Next, the USB host controller 100 executes a Stream Context Read command (S202). That is, the USB host controller 100 tries to read EDTLA from the control area 310 of the system memory 300. However, here, since it is before the start of data transmission, it is not read out.

続いて、USBホストコントローラ100は、最初にデータ送信を行う対象のストリーム320について、TRB Fetchを行う(S203)。その後、USBホストコントローラ100は、USBデバイス400に対してUSB Transferを行う(S204)。ここでは、データ転送処理部104は、対象のストリームの先頭から所定サイズのデータを1パケットとしてUSBデバイス400へ送信する。   Subsequently, the USB host controller 100 performs TRB Fetch on the target stream 320 to which data transmission is performed first (S203). Thereafter, the USB host controller 100 performs USB transfer on the USB device 400 (S204). Here, the data transfer processing unit 104 transmits data of a predetermined size from the head of the target stream to the USB device 400 as one packet.

その後、USBホストコントローラ100は、EDTLAを算出する(S205)。つまり、転送進捗状況管理部105は、パケットの送信が正常に完了した後に、当該パケットのデータ長をEDTLAの値とする。そして、USBホストコントローラ100は、Stream Context Write with EDTLAコマンドを実行する(S206)。つまり、転送進捗状況管理部105は、システムメモリ300の当該ストリームに対応する制御領域310内の所定の領域に、算出したEDTLAを格納する。   Thereafter, the USB host controller 100 calculates EDTLA (S205). That is, the transfer progress status management unit 105 sets the data length of the packet as the EDTLA value after the packet transmission is normally completed. Then, the USB host controller 100 executes the Stream Context Write with EDTLA command (S206). That is, the transfer progress status management unit 105 stores the calculated EDTLA in a predetermined area in the control area 310 corresponding to the stream in the system memory 300.

これにより、同一のストリームについてデータ送信を行う際に、既に格納した転送中間データをシステムメモリから読み出すことで、転送済のデータ位置の直後から転送を再開することができる。以下、その例について説明する。   As a result, when data transmission is performed for the same stream, the transfer intermediate data that has already been stored is read from the system memory, so that the transfer can be resumed immediately after the transferred data position. Examples thereof will be described below.

図6は、本実施の形態2にかかる転送中間データの更新処理(送信時)の流れを説明するシーケンス図である。図5のステップS206に続いて、ドライバ200は、上記同様、USBホストコントローラ100に対してDoorbell ringを実行する(S211)。ここでは、図5と同一のストリームに対して次のパケットを送信する指示であるものとする。   FIG. 6 is a sequence diagram for explaining the flow of transfer intermediate data update processing (during transmission) according to the second embodiment. Subsequent to step S206 in FIG. 5, the driver 200 performs doorbell ring on the USB host controller 100 in the same manner as described above (S211). Here, it is assumed that the instruction is to transmit the next packet to the same stream as in FIG.

次に、USBホストコントローラ100は、Stream Context Read with EDTLAコマンドを実行する(S212)。つまり、転送進捗状況管理部105は、システムメモリ300の該当するストリームにおける制御領域310からEDTLAを読み出す。このとき、読み出されるEDTLAは、既に転送済のデータ長が設定されている。   Next, the USB host controller 100 executes a Stream Context Read with EDTLA command (S212). In other words, the transfer progress status management unit 105 reads EDTLA from the control area 310 in the corresponding stream of the system memory 300. At this time, the read EDTLA has already been set with the transferred data length.

そこで、USBホストコントローラ100は、図5と同一のストリーム320のうち、EDTLAが示すデータ長の直後の位置について、TRB Fetchを行う(S213)。そして、USBホストコントローラ100は、USBデバイス400に対してUSB Transferを行う(S214)。ここでは、データ転送処理部104は、転送済のデータの直後から所定サイズのデータを1パケットとしてUSBデバイス400へ送信する(S214)。   Therefore, the USB host controller 100 performs TRB Fetch on the position immediately after the data length indicated by EDTLA in the same stream 320 as in FIG. 5 (S213). Then, the USB host controller 100 performs USB transfer for the USB device 400 (S214). Here, the data transfer processing unit 104 transmits data of a predetermined size as one packet immediately after the transferred data to the USB device 400 (S214).

その後、USBホストコントローラ100は、EDTLAを更新する(S215)。つまり、転送進捗状況管理部105は、ステップS212で読み出したEDTLAに、ステップS214で送信したパケットサイズを加算してEDTLAを更新する。   Thereafter, the USB host controller 100 updates EDTLA (S215). That is, the transfer progress status management unit 105 updates the EDTLA by adding the packet size transmitted in step S214 to the EDTLA read in step S212.

続いて、USBホストコントローラ100は、Stream Context Write with EDTLAコマンドを実行する(S216)。つまり、転送進捗状況管理部105は、システムメモリ300の当該ストリームに対応する制御領域310内の所定の領域に、更新したEDTLAを格納する。   Subsequently, the USB host controller 100 executes a Stream Context Write with EDTLA command (S216). That is, the transfer progress status management unit 105 stores the updated EDTLA in a predetermined area in the control area 310 corresponding to the stream in the system memory 300.

図7は、本実施の形態2にかかる転送中間データの登録処理(受信時)の流れを説明するシーケンス図である。図5との違いとして、USBデバイス400側で転送対象データが複数のストリームに分割されて保持されているものとする。また、システムメモリ300のストリーム320にデータ自体の格納前であるが、制御領域310及びストリーム320の領域の確保はされているものとする。   FIG. 7 is a sequence diagram for explaining the flow of transfer intermediate data registration processing (during reception) according to the second embodiment. As a difference from FIG. 5, it is assumed that the transfer target data is divided into a plurality of streams and held on the USB device 400 side. In addition, it is assumed that the control area 310 and the area of the stream 320 are secured before the data itself is stored in the stream 320 of the system memory 300.

まず、ドライバ200は、USBデバイス400からのデータ受信の開始を指示するために、Doorbell ringを実行する(S221)。次に、USBホストコントローラ100は、図5のステップS202及びS203と同様に、ステップS222及びS223を実行する。   First, the driver 200 executes Doorbell ring in order to instruct the start of data reception from the USB device 400 (S221). Next, the USB host controller 100 executes steps S222 and S223 in the same manner as steps S202 and S203 in FIG.

そして、USBホストコントローラ100は、USBデバイス400に対してデータ転送要求を送信する(S224)。続いて、USBデバイス400は、データ転送要求に応じて、USBホストコントローラ100に対してUSB Transferを行う(S225)。そして、USBホストコントローラ100は、パケットを受信し、EDTLAを算出する(S226)。つまり、転送進捗状況管理部105は、パケットの受信が正常に完了した後に、当該パケットのデータ長をEDTLAの値とする。そして、USBホストコントローラ100は、Stream Context Write with EDTLAコマンドを実行する(S227)。つまり、転送進捗状況管理部105は、システムメモリ300の当該ストリームに対応する制御領域310内の所定の領域に、算出したEDTLAを格納する。   Then, the USB host controller 100 transmits a data transfer request to the USB device 400 (S224). Subsequently, the USB device 400 performs USB transfer to the USB host controller 100 in response to the data transfer request (S225). Then, the USB host controller 100 receives the packet and calculates EDTLA (S226). That is, the transfer progress status management unit 105 sets the data length of the packet as the EDTLA value after the packet reception is completed normally. Then, the USB host controller 100 executes the Stream Context Write with EDTLA command (S227). That is, the transfer progress status management unit 105 stores the calculated EDTLA in a predetermined area in the control area 310 corresponding to the stream in the system memory 300.

尚、継続してデータ受信を行う場合についても図6から類推できるため、図示及び説明を省略する。   Note that the case of continuous data reception can also be inferred from FIG.

図8は、本実施の形態2にかかる転送中止命令時の流れを説明するシーケンス図である。前提として、図5、図6又は図7により予めシステムメモリ300の制御領域310内に転送中間データ311が格納済みであり、データの送信又は受信が継続中であるものとする。   FIG. 8 is a sequence diagram for explaining a flow at the time of a transfer stop instruction according to the second embodiment. As a premise, it is assumed that the transfer intermediate data 311 has already been stored in the control area 310 of the system memory 300 in advance according to FIG. 5, FIG. 6, or FIG.

まず、ドライバ200は、USBホストコントローラ100に対してStop Endpoint Commandを実行する(S231)。これにより、USBホストコントローラ100は、実行中のデータ転送を中断する。そして、USBホストコントローラ100は、ドライバ200に対して、Completionを通知する(S232)。これにより、ドライバ200は、指示したデータ転送の中断処理が完了したことを認識する。   First, the driver 200 executes a Stop Endpoint Command for the USB host controller 100 (S231). Thereby, the USB host controller 100 interrupts the data transfer being executed. Then, the USB host controller 100 notifies Completion to the driver 200 (S232). As a result, the driver 200 recognizes that the instructed data transfer interruption processing has been completed.

その後、ドライバ200は、システムメモリ300に対してRead ALL Stream Context. EDTLAコマンドを実行する(S233)。つまり、ドライバ200は、全てのストリームについてのEDTLAを取得し、必要に応じて処理を行うことができる。例えば、各ストリームのうち未転送のデータについて更新を行った上で、データ転送を再開するといったこともできる。その他、多様なニーズに応じて柔軟な処理を実現することができる。   Thereafter, the driver 200 reads Read ALL Stream Context. The EDTLA command is executed (S233). That is, the driver 200 can acquire EDTLA for all streams and perform processing as necessary. For example, the data transfer can be resumed after updating the untransferred data in each stream. In addition, flexible processing can be realized according to various needs.

このように、本実施の形態2では、転送中間データ311をUSBホストコントローラ100内部のメモリではなく、システムメモリ300上に格納する。そのため、USBホストコントローラ100における回路面積を抑制することができる。そして、転送中間データ311がシステムメモリ300内にあることにより、ドライバ200がStop Endpoint Commandを実行する際に、システムメモリ300上のStream Contextに加えられたEDTLAのフィールドを読み、全StreamのEDTLAの値を把握することができる。   As described above, in the second embodiment, the transfer intermediate data 311 is stored not on the memory inside the USB host controller 100 but on the system memory 300. Therefore, the circuit area in the USB host controller 100 can be suppressed. Since the transfer intermediate data 311 is in the system memory 300, when the driver 200 executes the Stop Endpoint Command, the EDTLA field added to the Stream Context on the system memory 300 is read, and the EDTLA fields of all the Streams are read. The value can be grasped.

<実施の形態3>
本実施の形態3は、上述した実施の形態2のUSBホストコントローラ100の変形例である。本実施の形態3にかかる転送制御装置は、算出された転送済みのデータ量を、データ列ごとに対応付けて記憶する記憶部をさらに備える。そして、通知部は、転送処理部が部分データの転送を完了するごとに、記憶部に記憶された転送済みのデータ量のうち当該部分データが属するデータ列に対応付けられたものについて、当該部分データのサイズを加算して更新し、転送処理部が所定回数の転送を完了した場合に、記憶部に記憶された各転送済みのデータ量を読み出して、転送進捗情報として外部へ通知する。言い換えると、パケットの転送が完了するごとに、転送済情報を更新し、複数回のパケットの転送が完了するごとに、更新後の転送済情報を外部へ出力する。これにより、例えば、2以上のパケットの転送を完了するごとに転送進捗情報を外部へ通知することになる。そのため、外部への通知回数を減少させて通信負荷を抑制することができる。
<Embodiment 3>
The third embodiment is a modification of the USB host controller 100 of the second embodiment described above. The transfer control apparatus according to the third embodiment further includes a storage unit that stores the calculated transferred data amount in association with each data string. Then, each time the transfer processing unit completes the transfer of the partial data, the notifying unit determines the portion of the transferred data amount stored in the storage unit that is associated with the data string to which the partial data belongs. The data size is added and updated, and when the transfer processing unit completes a predetermined number of transfers, each transferred data amount stored in the storage unit is read and notified to the outside as transfer progress information. In other words, the transferred information is updated every time the packet transfer is completed, and the updated transferred information is output to the outside every time a plurality of packet transfers are completed. Thus, for example, every time transfer of two or more packets is completed, transfer progress information is notified to the outside. Therefore, the communication load can be suppressed by reducing the number of external notifications.

図9は、本実施の形態3にかかるUSBホストコントローラ100aの構成を示すブロック図である。USBホストコントローラ100aは、図3との違いとして、転送進捗状況管理部105が転送進捗状況管理部105aに置き換わり、記憶部106が追加されたものである。   FIG. 9 is a block diagram of the configuration of the USB host controller 100a according to the third embodiment. The USB host controller 100a is different from FIG. 3 in that the transfer progress status management unit 105 is replaced with the transfer progress status management unit 105a and a storage unit 106 is added.

記憶部106は、算出された転送済みのデータ量である転送中間データ107を、ストリームごとに対応付けて記憶する記憶装置である。転送進捗状況管理部105aは、データ転送処理部104がパケットの転送を完了するごとに、記憶部106に記憶された転送中間データ107のうち当該パケットが属するストリームに対応付けられたものについて、当該部パケットのサイズを加算して更新する。そして、転送進捗状況管理部105aは、データ転送処理部104が所定回数の転送を完了した場合に、記憶部106に記憶された各ストリームに対応付けられた転送中間データ107を読み出して、転送進捗情報としてシステムメモリ300へ通知する。   The storage unit 106 is a storage device that stores the transfer intermediate data 107 that is the calculated transferred data amount in association with each stream. Each time the data transfer processing unit 104 completes the packet transfer, the transfer progress status management unit 105a determines the transfer intermediate data 107 stored in the storage unit 106 that is associated with the stream to which the packet belongs. Update by adding the size of the partial packet. Then, when the data transfer processing unit 104 completes the predetermined number of transfers, the transfer progress status management unit 105a reads the transfer intermediate data 107 associated with each stream stored in the storage unit 106, and transfers the transfer progress. Information is sent to the system memory 300 as information.

図10は、本実施の形態3にかかる転送中間データの登録処理(送信時)の流れを説明するシーケンス図である。前提は、図5と同等であるものとする。   FIG. 10 is a sequence diagram for explaining the flow of transfer intermediate data registration processing (during transmission) according to the third embodiment. It is assumed that the premise is the same as in FIG.

まず、ドライバ200は、USBデバイス400へのデータ送信の開始を指示するために、Doorbell ringを実行する(S301)。次に、USBホストコントローラ100aは、図5のステップS202及びS203と同様に、ステップS302及びS303を実行する。   First, the driver 200 executes Doorbell ring in order to instruct the start of data transmission to the USB device 400 (S301). Next, the USB host controller 100a executes steps S302 and S303 in the same manner as steps S202 and S203 in FIG.

そして、USBホストコントローラ100aは、USBデバイス400に対してUSB Transferを行う(S3041)。その後、転送進捗状況管理部105aは、EDTLAを算出し、転送中間データ107として記憶部106へ格納する(S3042)。引き続き、USBホストコントローラ100aは、USBデバイス400に対してUSB Transferを行う(S3043)。つまり、データ転送処理部104は、次のパケットの送信を行う。そして、既に該当するストリームにおけるEDTLAが格納済みの場合、転送進捗状況管理部105aは、当該EDTLAを読み出して、パケットのデータ長を加算してEDTLAを更新する。その後、転送進捗状況管理部105aは、更新したEDTLAを記憶部106に格納する(S3044)。同様に、ステップS3045及びS3046が繰り返される。   Then, the USB host controller 100a performs USB transfer for the USB device 400 (S3041). Thereafter, the transfer progress status management unit 105a calculates EDTLA and stores it as transfer intermediate data 107 in the storage unit 106 (S3042). Subsequently, the USB host controller 100a performs USB transfer for the USB device 400 (S3043). That is, the data transfer processing unit 104 transmits the next packet. If the EDTLA in the corresponding stream has already been stored, the transfer progress status management unit 105a reads the EDTLA, adds the data length of the packet, and updates the EDTLA. Thereafter, the transfer progress status management unit 105a stores the updated EDTLA in the storage unit 106 (S3044). Similarly, steps S3045 and S3046 are repeated.

その後、転送進捗状況管理部105aがステップS3045及びS3046が所定回数繰り返されたことを検出した場合、USBホストコントローラ100aは、Stream Context Write with EDTLAコマンドを実行する(S305)。つまり、転送進捗状況管理部105aは、記憶部106からストリームごとに対応する転送中間データ107を読み出し、システムメモリ300の各ストリームに対応する制御領域310内の所定の領域に、読み出したそれぞれのEDTLAを格納する。   Thereafter, when the transfer progress management unit 105a detects that steps S3045 and S3046 have been repeated a predetermined number of times, the USB host controller 100a executes a Stream Context Write with EDTLA command (S305). That is, the transfer progress status management unit 105a reads the transfer intermediate data 107 corresponding to each stream from the storage unit 106, and reads each EDTLA read into a predetermined area in the control area 310 corresponding to each stream in the system memory 300. Is stored.

これにより、実施の形態2に比べて、USBホストコントローラ100aからシステムメモリ300への通知回数を減少させることができる。   As a result, the number of notifications from the USB host controller 100a to the system memory 300 can be reduced as compared with the second embodiment.

<実施の形態4>
本実施の形4は、上述した実施の形態2のUSBホストコントローラ100の変形例である。本実施の形態4にかかる転送制御装置の通知部は、外部から転送の中止指示を受け付けた場合、複数のデータ列のそれぞれについて直前に算出された各転送済みのデータ量を転送進捗情報として外部へ通知する。言い換えると、本実施の形態3にかかる転送制御装置は、パケットの転送が完了するごとに、転送済情報を更新し、外部から転送の中止指示を受け付けた場合、更新後の転送済情報を外部へ出力する。このように、本実施の形態4にかかる転送制御装置は、予め転送進捗情報を算出しておきながら、必要時のみ外部へ出力するものである。例えば、ドラバ等からの転送の中止要求時に初めてUSBホストコントローラ100aからシステムメモリ300への通知が発生するため、実施の形態3に比べてさらに通知回数を減少させることができる。
<Embodiment 4>
The fourth embodiment is a modification of the USB host controller 100 of the second embodiment described above. When the notification unit of the transfer control apparatus according to the fourth embodiment receives an instruction to cancel transfer from the outside, the notifying unit externally uses each transferred data amount calculated immediately before for each of a plurality of data strings as transfer progress information. To notify. In other words, the transfer control device according to the third embodiment updates the transferred information every time the packet transfer is completed, and if the transfer stop instruction is received from the outside, Output to. As described above, the transfer control apparatus according to the fourth embodiment outputs the transfer progress information to the outside only when necessary while calculating the transfer progress information in advance. For example, since the notification from the USB host controller 100a to the system memory 300 is generated for the first time when a transfer cancellation request from a driver or the like is issued, the number of notifications can be further reduced as compared with the third embodiment.

尚、本実施の形態4にかかる転送制御装置の構成は、図9と同等であるため、図示及び説明を省略する。   The configuration of the transfer control apparatus according to the fourth embodiment is the same as that shown in FIG.

図11は、本実施の形態4にかかる転送中止命令時の流れを説明するシーケンス図である。ここでは、図10のステップS3041〜S3046のように、USB Transfer及びEDTLAの更新・格納が所定回数繰り返して実行されている(S4011〜S4014)。そのため、既に、記憶部106には、最新の転送中間データ107が格納済みである。   FIG. 11 is a sequence diagram for explaining a flow at the time of a transfer stop instruction according to the fourth embodiment. Here, as in steps S3041 to S3046 of FIG. 10, the update and storage of USB Transfer and EDTLA are repeatedly performed a predetermined number of times (S4011 to S4014). Therefore, the latest transfer intermediate data 107 is already stored in the storage unit 106.

このとき、ドライバ200は、図8のステップS231と同様に、USBホストコントローラ100aに対してStop Endpoint Commandを実行する(S402)。これにより、USBホストコントローラ100aは、実行中のデータ転送を中断する。そして、USBホストコントローラ100aは、Write ALL Stream EDTLAコマンドを実行する(S403)。つまり、転送進捗状況管理部105aは、記憶部106から全てのストリームにおけるEDTLAを読み出し、システムメモリ300の各ストリームにおける制御領域310へ格納する。   At this time, the driver 200 executes a Stop Endpoint Command for the USB host controller 100a as in Step S231 of FIG. 8 (S402). As a result, the USB host controller 100a interrupts the data transfer being executed. Then, the USB host controller 100a executes a Write ALL Stream EDTLA command (S403). That is, the transfer progress status management unit 105 a reads EDTLA in all streams from the storage unit 106 and stores it in the control area 310 in each stream of the system memory 300.

その後、USBホストコントローラ100aは、図8のステップS232と同様に、ドライバ200に対して、Completionを通知する(S404)。これにより、ドライバ200は、指示したデータ転送の中断処理が完了したことを認識する。そして、ドライバ200は、図8のステップS233と同様に、システムメモリ300に対してRead ALL Stream Context. EDTLAコマンドを実行する(S405)。これにより、図8と同等の効果を奏することができる。   Thereafter, the USB host controller 100a notifies Completion to the driver 200 in the same manner as Step S232 of FIG. 8 (S404). As a result, the driver 200 recognizes that the instructed data transfer interruption processing has been completed. Then, as in step S233 of FIG. 8, the driver 200 reads Read ALL Stream Context. The EDTLA command is executed (S405). Thereby, the same effect as FIG. 8 can be produced.

<その他の実施の形態>
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、上述した処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。
<Other embodiments>
Furthermore, the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the gist of the present invention described above. For example, in the above-described embodiment, the present invention has been described as a hardware configuration, but the present invention is not limited to this. The present invention can also realize the processing described above by causing a CPU (Central Processing Unit) to execute a computer program.

上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。   In the above example, the program can be stored and supplied to a computer using various types of non-transitory computer readable media. Non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (for example, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (for example, magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R / W, DVD (Digital Versatile Disc), BD (Blu-ray (registered trademark) Disc), semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM ( Random Access Memory)). The program may also be supplied to the computer by various types of transitory computer readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.

上記に基づき、実施の形態に記載された内容の一部を以下に記載する。
転送制御プログラムは、転送対象データから分割された複数のデータ列を、通信相手のデバイス装置との間で転送する転送処理と、前記複数のデータ列のそれぞれにおける転送の進捗状況を示す転送進捗情報を、外部へ通知する通知処理と、をコンピュータに実行させる。これにより、転送対象データの転送が中断されたとしても、その進捗状況が当該コンピュータ以外の外部も転送進捗情報により知ることができるため、転送進捗情報を活用して多様なニーズに応じた柔軟な処理を行うことができる。
Based on the above, a part of the contents described in the embodiment will be described below.
The transfer control program includes a transfer process for transferring a plurality of data strings divided from the transfer target data to a communication partner device device, and transfer progress information indicating a transfer progress status in each of the plurality of data strings. And causing the computer to execute notification processing for notifying the outside. As a result, even if the transfer of the transfer target data is interrupted, the progress status can be known from the transfer progress information even outside the computer, so the transfer progress information can be used to flexibly meet various needs. Processing can be performed.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。   As mentioned above, the invention made by the present inventor has been specifically described based on the embodiments. However, the present invention is not limited to the embodiments already described, and various modifications can be made without departing from the scope of the invention. It goes without saying that it is possible.

10 転送制御装置
11 転送処理部
12 通知部
13 転送進捗情報
20 デバイス装置
100 USBホストコントローラ
100a USBホストコントローラ
101 システムバス制御部
102 データバッファ
103 ペリフェラル制御部
104 データ転送処理部
105 転送進捗状況管理部
105a 転送進捗状況管理部
106 記憶部
107 転送中間データ
200 ドライバ
300 システムメモリ
310 制御領域
311 転送中間データ
320 ストリーム
400 USBデバイス
501 システムバス
502 ペリフェラルバス
DESCRIPTION OF SYMBOLS 10 Transfer control apparatus 11 Transfer process part 12 Notification part 13 Transfer progress information 20 Device apparatus 100 USB host controller 100a USB host controller 101 System bus control part 102 Data buffer 103 Peripheral control part 104 Data transfer process part 105 Transfer progress condition management part 105a Transfer status management unit 106 Storage unit 107 Transfer intermediate data 200 Driver 300 System memory 310 Control area 311 Transfer intermediate data 320 Stream 400 USB device 501 System bus 502 Peripheral bus

Claims (9)

転送対象データから分割された複数のデータ列を、通信相手のデバイス装置との間で転送する転送処理部と、
前記複数のデータ列のそれぞれにおける転送の進捗状況を示す転送進捗情報を、外部へ通知する通知部と、
を備え
前記転送進捗情報は、前記データ列の一部である部分データが属するデータ列における転送済みのデータ量であり、
前記通知部は、
前記転送処理部が前記部分データの転送を完了するごとに、当該部分データが属するデータ列における転送進捗情報を前記外部から取得し、当該取得した転送進捗情報に当該部分データのサイズを加算し、当該加算後の転送進捗情報を前記外部へ通知す
転送制御装置。
A transfer processing unit that transfers a plurality of data strings divided from the transfer target data to and from the communication partner device; and
A notification unit for notifying the transfer progress information indicating the transfer progress in each of the plurality of data strings to the outside;
Equipped with a,
The transfer progress information is a transferred data amount in a data string to which partial data that is a part of the data string belongs,
The notification unit
Each time the transfer processing unit completes the transfer of the partial data, the transfer progress information in the data string to which the partial data belongs is acquired from the outside, and the size of the partial data is added to the acquired transfer progress information, notify the transfer progress information after the addition to the external
Transfer control device.
前記通知部は、
外部から転送の中止指示を受け付けた場合、前記複数のデータ列のそれぞれについて直前に算出された各転送済みのデータ量を前記転送進捗情報として前記外部へ通知する
請求項に記載の転送制御装置。
The notification unit
The transfer control device according to claim 1, wherein when an instruction to cancel transfer is received from outside, the transfer control device according to claim 1, which notifies the outside of each transferred data amount calculated immediately before for each of the plurality of data strings as the transfer progress information. .
前記外部は、前記通信相手以外であって、前記転送制御装置に接続された記憶装置であり、
前記通知部は、前記複数のデータ列のそれぞれにおける転送進捗情報について、前記記憶装置内の各データ列に対応する制御領域に、各データ列に対応する前記転送進捗情報を格納する
請求項1に記載の転送制御装置。
The outside is a storage device connected to the transfer control device other than the communication partner,
2. The notification unit stores the transfer progress information corresponding to each data string in a control area corresponding to each data string in the storage device for transfer progress information in each of the plurality of data strings. The transfer control device described.
前記記憶装置は、前記転送制御装置を含むシステムで共有するメモリである
請求項に記載の転送制御装置。
The transfer control device according to claim 3 , wherein the storage device is a memory shared by a system including the transfer control device.
前記通知部は、
前記転送処理部が前記通信相手のデバイス装置に対して前記複数のデータ列を送信する場合、各データ列における送信済みのデータ量を前記転送進捗情報として前記外部へ通知し、
前記転送処理部が前記通信相手のデバイス装置から前記複数のデータ列を受信する場合、各データ列における受信済みのデータ量を前記転送進捗情報として前記外部へ通知する
請求項1乃至のいずれか1項に記載の転送制御装置。
The notification unit
When the transfer processing unit transmits the plurality of data strings to the communication partner device, it notifies the outside of the transmitted data amount in each data string as the transfer progress information,
If the transfer processing unit receives the plurality of data strings from the device apparatus of the communication partner, any one of claims 1 to 4 for notifying the outside received data amount in each data row as the transfer progress information 2. The transfer control device according to item 1.
前記複数のデータ列は、USB(Universal Serial Bus)3.0に基づく複数のストリームとする
請求項1乃至のいずれか1項に記載の転送制御装置。
Wherein the plurality of data columns, USB (Universal Serial Bus) transfer control device according to any one of claims 1 to 5, a plurality of streams based on 3.0.
転送対象データから分割された複数のデータ列を並列処理によりパケット単位で通信相手との間で転送中に、所定のタイミングで転送済のパケット数に基づく転送済情報を当該データ列ごとに外部へ出力し、
前記転送済情報は、前記データ列ごとの転送済のデータ長であり、
前記パケットの転送が完了するごとに、当該パケットが属するデータ列における転送済情報を前記外部から取得し、当該取得した転送済情報に当該パケットのサイズを加算し、当該加算後の転送済情報を前記外部へ出力する
転送制御装置。
While transferring multiple data strings divided from the transfer target data to the communication partner in packet units by parallel processing, transferred information based on the number of packets transferred at a predetermined timing is sent to the outside for each data string. Output ,
The transferred information is a transferred data length for each data string,
Each time the transfer of the packet is completed, the transferred information in the data string to which the packet belongs is acquired from the outside, the size of the packet is added to the acquired transferred information, and the transferred information after the addition is obtained. Output to the outside
Transfer control device.
前記パケットの転送が完了するごとに、前記転送済情報を更新し、
前記外部から転送の中止指示を受け付けた場合、更新後の前記転送済情報を前記外部へ出力する
請求項に記載の転送制御装置。
Each time the transfer of the packet is completed, the transferred information is updated,
The transfer control device according to claim 7 , wherein when the transfer stop instruction is received from the outside, the updated information after update is output to the outside.
転送対象データから複数に分割されたデータ列の一部である部分データを、通信相手のデバイス装置との間で転送し、
前記部分データが属するデータ列における転送の進捗状況を示す転送進捗情報を、前記データ列ごとに外部へ出力し、
前記転送進捗情報は、前記データ列の一部である部分データが属するデータ列における転送済みのデータ量であり、
前記部分データの転送を完了するごとに、当該部分データが属するデータ列における転送進捗情報を前記外部から取得し、当該取得した転送進捗情報に当該部分データのサイズを加算し、当該加算後の転送進捗情報を前記外部へ出力する
転送制御方法。
Transfer partial data that is part of the data string divided into multiple parts from the transfer target data to and from the communication partner device,
The transfer progress information indicating the transfer progress status in the data string to which the partial data belongs is output to the outside for each data string ,
The transfer progress information is a transferred data amount in a data string to which partial data that is a part of the data string belongs,
Each time the transfer of the partial data is completed, the transfer progress information in the data string to which the partial data belongs is acquired from the outside, the size of the partial data is added to the acquired transfer progress information, and the transfer after the addition A transfer control method for outputting progress information to the outside .
JP2012187224A 2012-08-28 2012-08-28 Transfer control device, transfer control method, and transfer control program Expired - Fee Related JP5932571B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012187224A JP5932571B2 (en) 2012-08-28 2012-08-28 Transfer control device, transfer control method, and transfer control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012187224A JP5932571B2 (en) 2012-08-28 2012-08-28 Transfer control device, transfer control method, and transfer control program

Publications (2)

Publication Number Publication Date
JP2014044609A JP2014044609A (en) 2014-03-13
JP5932571B2 true JP5932571B2 (en) 2016-06-08

Family

ID=50395821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012187224A Expired - Fee Related JP5932571B2 (en) 2012-08-28 2012-08-28 Transfer control device, transfer control method, and transfer control program

Country Status (1)

Country Link
JP (1) JP5932571B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI767997B (en) 2017-03-23 2022-06-21 日商索尼半導體解決方案公司 Communication device, communication method, program, and communication system
CN114050965B (en) * 2020-07-22 2024-12-03 中兴通讯股份有限公司 Method for finding interrupt device, slave device, master device and storage medium

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131294A (en) * 1992-10-19 1994-05-13 Sony Corp Data transfer device
JP4148680B2 (en) * 2001-12-27 2008-09-10 株式会社リコー Image processing device
JP2007249938A (en) * 2006-02-14 2007-09-27 Matsushita Electric Ind Co Ltd USB host system, AV data reproducing apparatus and AV data recording apparatus

Also Published As

Publication number Publication date
JP2014044609A (en) 2014-03-13

Similar Documents

Publication Publication Date Title
US10412017B2 (en) Transfer device, transfer method, and computer program product
US10353631B2 (en) Techniques for moving data between a network input/output device and a storage device
KR102245247B1 (en) GPU remote communication using triggered actions
JP6889126B2 (en) Transfer control device, transfer control method and program
US20210014306A1 (en) Remote nvme activation
US10334047B2 (en) Remote direct memory access with reduced latency
CN104714905A (en) Method and system for performing a failover operation from the first adapter to the second adapter
US10055371B2 (en) Apparatus and method for RDMA with commit ACKs
US10009445B2 (en) Avoiding unwanted TCP retransmissions using optimistic window adjustments
US9948520B2 (en) Efficiently determining network topology
CN113885945B (en) Calculation acceleration method, equipment and medium
CN103703441A (en) Hard disk and data processing method
CN111615692A (en) Data transfer method, computing processing device, equipment and storage medium
JP5932571B2 (en) Transfer control device, transfer control method, and transfer control program
CN110830381A (en) Congestion control method and related equipment
JP2013081131A (en) Transmission device, communication system, transmission method, and transmission program
US9490988B2 (en) Continuous information transfer with reduced latency
CN114902181A (en) GPU (graphics processing Unit) packet aggregation system
CN103561064B (en) A kind of method and apparatus of LUN switching
JP2011119999A (en) Communication apparatus and master device
JP6358430B2 (en) Communication control device and communication control method
US20130067176A1 (en) Information processing device and program product
JP2018037016A (en) Numerical controller
JP6706180B2 (en) Device and data transfer system
US20180309663A1 (en) Information processing apparatus, information processing system, and information processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160428

R150 Certificate of patent or registration of utility model

Ref document number: 5932571

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees