JP5932571B2 - Transfer control device, transfer control method, and transfer control program - Google Patents
Transfer control device, transfer control method, and transfer control program Download PDFInfo
- 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
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用メモリへデータ転送を行う。
ここで、ホストコントローラとデバイス装置間で大量のデータをバルク転送する場合には、複数のパケット等の転送単位ごとにデータ転送が行われる。但し、当該データの転送は、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.
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。 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は、本実施の形態1にかかる転送制御装置10の構成を示すブロック図である。転送制御装置10は、デバイス装置20との間で転送対象データの送信又は受信の少なくともいずれかである転送を行う。ここで、転送対象のデータは、一回の転送処理では転送しきれないほどに大きいデータであるものとする。そのため、転送制御装置10とデバイス装置20間では、パケット等の転送単位でデータ転送が行われる。そして、具体的には、転送制御装置10とデバイス装置20間では、転送対象データから分割された複数のデータ列を並列処理によりパケット単位で転送を行うものとする。尚、並列処理とは、例えば、パイプライン処理であり、実際のパケットの転送自体は直列で行われていてもよい。
<
FIG. 1 is a block diagram showing a configuration of the
転送制御装置10は、転送処理部11と、通知部12とを備える。転送処理部11は、転送対象データから分割された複数のデータ列を、通信相手のデバイス装置との間で転送する。通知部12は、複数のデータ列のそれぞれにおける転送の進捗状況を示す転送進捗情報13を、外部へ通知する。ここで、外部とはデバイス装置20以外の装置であって、転送制御装置10に接続された装置等である。
The
実施の形態1にかかる転送制御装置10を言い換えると、転送対象データから分割された複数のデータ列を並列処理によりパケット単位で通信相手との間で転送中に、所定のタイミングで転送済のパケット数に基づく転送済情報を当該データ列ごとに外部へ出力するものである。
In other words, the
これにより、転送対象データの転送が中断されたとしても、その進捗状況が転送制御装置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
図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
次に、通知部12は、外部へ転送進捗情報13を出力する(S12)。つまり、通知部12は、部分データの転送を完了した後、所定のタイミングにおいて、当該部分データが属するデータ列における転送の進捗状況を示す転送進捗情報13を、データ列ごとに外部へ出力する。
Next, the
このように、本実施の形態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
さらに本実施の形態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ホストコントローラ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ホストコントローラ100は、転送制御装置10の一実施例であり、USB3.0以外の規格に対応したものであっても構わない。つまり、上述したストリーム数及びEDTLA数はあくまで例示であって、これに限定されるものではない。
The
ドライバ200は、CPU(不図示)がドライバプログラムを読み込み実行することで実現される機能ブロックである。ドライバ200は、アプリケーションソフトウェアからUSBホストコントローラ100へ指示を行うための抽象化したインタフェースを提供する。そのため、USBホストコントローラ100は、ドライバ200からデータ転送の指示や中止の指示を受け付けることとなる。
The
システムメモリ300は、上述した外部の一実施例である。つまり、システムメモリ300は、USBホストコントローラ100のデータ転送の通信相手(USBデバイス400)以外であって、USBホストコントローラ100に接続された記憶装置である。システムメモリ300は、制御領域310とストリーム320とを記憶する。ストリーム320は、転送対象データから複数に分割された各データ列である。制御領域310は、ストリーム320の制御情報を管理するための領域である。本実施の形態2では、制御領域310内に後述する転送中間データ311を格納する。
The
図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
ここで、システムメモリ300は、USBホストコントローラ100やドライバ200を含むシステム全体で共有する記憶装置である。そのため、転送中間データ311をシステムメモリ300内に格納することで、ドライバ200等のUSBホストコントローラ100以外から転送中間データ311へ容易にアクセスすることができる。よって、ドライバ200から転送中間データ311を様々な処理に用いることができる。
Here, the
図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
データ転送処理部104は、上述した転送処理部11の一実施例である。データ転送処理部104は、システムバス制御部101及びペリフェラル制御部103を用いて部分データの送信及び受信処理を行う。転送進捗状況管理部105は、上述した通知部12の一実施例である。転送進捗状況管理部105は、データ転送処理部104におけるパケットの転送が完了したことを検出し、当該パケットが属するストリームにおける転送済のデータ長を算出することにより、転送中間データを生成する。転送中間データには、ストリームを特定するための識別情報と、当該ストリームにおける転送済のデータ長とが対応付けられている。そして、転送中間データは、上述した転送進捗情報の一実施例である。そのため、転送中間データは、転送済のデータ長に限定されず、ストリーム内の転送済の最後のデータの位置(アドレス)やパケットサイズが固定長である場合には、転送済のパケット数であっても構わない。または、ストリーム当たりのデータ長に占める転送済のデータ長の比率であっても構わない。また、未転送のデータ長や未転送のデータ長の比率を転送中間データとしても構わない。
The data
また、転送進捗状況管理部105は、生成した転送中間データを所定のタイミングでシステムバス制御部101を介してシステムメモリ300へ出力する。特に、転送進捗状況管理部105は、転送中間データをシステムメモリ300内の制御領域310に格納する。すなわち、転送進捗状況管理部105は、複数のストリームのそれぞれにおける転送中間データについて、システムメモリ300内の各ストリームに関する制御領域310に、各ストリームに対応する転送中間データ311を格納する。このように、制御領域の空き領域を用いてストリームごとに管理するため、領域を効率的に利用できる。
Further, the transfer progress
特に、本実施の形態2にかかる転送進捗状況管理部105は、データ転送処理部104がパケットの転送を完了するごとに、当該パケットが属するストリームにおける転送中間データ311をシステムメモリ300から取得し、当該取得した転送中間データ311に当該パケットのサイズを加算して転送済みのデータ量を算出し、当該転送済みのデータ量を転送中間データ311の更新値としてシステムメモリ300へ通知する。
In particular, every time the data
また、転送進捗状況管理部105は、データ転送処理部104がUSBデバイス400に対して複数のストリームを送信する場合、各ストリームにおける送信済みのデータ量をEDTLAとしてシステムメモリ300へ通知する。また、転送進捗状況管理部105は、データ転送処理部104がUSBデバイス400から複数のストリームを受信する場合、各ストリームにおける受信済みのデータ量をEDTLAとしてシステムメモリ300へ通知する。そのため、送受信の双方に対応することができる。
When the data
図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
まず、ドライバ200は、USBホストコントローラ100に対してDoorbell ringを実行する(S201)。ここでは、ドライバ200は、システムメモリ300内の各ストリーム320についてデータ送信の開始をUSBホストコントローラ100に対して指示するものとする。
First, the
次に、USBホストコントローラ100は、Stream Context Readコマンドを実行する(S202)。つまり、USBホストコントローラ100は、システムメモリ300の制御領域310からEDTLAを読み出そうとする。但し、ここでは、データ送信の開始前であるため、読み出されない。
Next, the
続いて、USBホストコントローラ100は、最初にデータ送信を行う対象のストリーム320について、TRB Fetchを行う(S203)。その後、USBホストコントローラ100は、USBデバイス400に対してUSB Transferを行う(S204)。ここでは、データ転送処理部104は、対象のストリームの先頭から所定サイズのデータを1パケットとしてUSBデバイス400へ送信する。
Subsequently, the
その後、USBホストコントローラ100は、EDTLAを算出する(S205)。つまり、転送進捗状況管理部105は、パケットの送信が正常に完了した後に、当該パケットのデータ長をEDTLAの値とする。そして、USBホストコントローラ100は、Stream Context Write with EDTLAコマンドを実行する(S206)。つまり、転送進捗状況管理部105は、システムメモリ300の当該ストリームに対応する制御領域310内の所定の領域に、算出したEDTLAを格納する。
Thereafter, the
これにより、同一のストリームについてデータ送信を行う際に、既に格納した転送中間データをシステムメモリから読み出すことで、転送済のデータ位置の直後から転送を再開することができる。以下、その例について説明する。 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
次に、USBホストコントローラ100は、Stream Context Read with EDTLAコマンドを実行する(S212)。つまり、転送進捗状況管理部105は、システムメモリ300の該当するストリームにおける制御領域310からEDTLAを読み出す。このとき、読み出されるEDTLAは、既に転送済のデータ長が設定されている。
Next, the
そこで、USBホストコントローラ100は、図5と同一のストリーム320のうち、EDTLAが示すデータ長の直後の位置について、TRB Fetchを行う(S213)。そして、USBホストコントローラ100は、USBデバイス400に対してUSB Transferを行う(S214)。ここでは、データ転送処理部104は、転送済のデータの直後から所定サイズのデータを1パケットとしてUSBデバイス400へ送信する(S214)。
Therefore, the
その後、USBホストコントローラ100は、EDTLAを更新する(S215)。つまり、転送進捗状況管理部105は、ステップS212で読み出したEDTLAに、ステップS214で送信したパケットサイズを加算してEDTLAを更新する。
Thereafter, the
続いて、USBホストコントローラ100は、Stream Context Write with EDTLAコマンドを実行する(S216)。つまり、転送進捗状況管理部105は、システムメモリ300の当該ストリームに対応する制御領域310内の所定の領域に、更新したEDTLAを格納する。
Subsequently, the
図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
まず、ドライバ200は、USBデバイス400からのデータ受信の開始を指示するために、Doorbell ringを実行する(S221)。次に、USBホストコントローラ100は、図5のステップS202及びS203と同様に、ステップS222及びS223を実行する。
First, the
そして、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
尚、継続してデータ受信を行う場合についても図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
まず、ドライバ200は、USBホストコントローラ100に対してStop Endpoint Commandを実行する(S231)。これにより、USBホストコントローラ100は、実行中のデータ転送を中断する。そして、USBホストコントローラ100は、ドライバ200に対して、Completionを通知する(S232)。これにより、ドライバ200は、指示したデータ転送の中断処理が完了したことを認識する。
First, the
その後、ドライバ200は、システムメモリ300に対してRead ALL Stream Context. EDTLAコマンドを実行する(S233)。つまり、ドライバ200は、全てのストリームについてのEDTLAを取得し、必要に応じて処理を行うことができる。例えば、各ストリームのうち未転送のデータについて更新を行った上で、データ転送を再開するといったこともできる。その他、多様なニーズに応じて柔軟な処理を実現することができる。
Thereafter, the
このように、本実施の形態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
<実施の形態3>
本実施の形態3は、上述した実施の形態2のUSBホストコントローラ100の変形例である。本実施の形態3にかかる転送制御装置は、算出された転送済みのデータ量を、データ列ごとに対応付けて記憶する記憶部をさらに備える。そして、通知部は、転送処理部が部分データの転送を完了するごとに、記憶部に記憶された転送済みのデータ量のうち当該部分データが属するデータ列に対応付けられたものについて、当該部分データのサイズを加算して更新し、転送処理部が所定回数の転送を完了した場合に、記憶部に記憶された各転送済みのデータ量を読み出して、転送進捗情報として外部へ通知する。言い換えると、パケットの転送が完了するごとに、転送済情報を更新し、複数回のパケットの転送が完了するごとに、更新後の転送済情報を外部へ出力する。これにより、例えば、2以上のパケットの転送を完了するごとに転送進捗情報を外部へ通知することになる。そのため、外部への通知回数を減少させて通信負荷を抑制することができる。
<
The third embodiment is a modification of the
図9は、本実施の形態3にかかるUSBホストコントローラ100aの構成を示すブロック図である。USBホストコントローラ100aは、図3との違いとして、転送進捗状況管理部105が転送進捗状況管理部105aに置き換わり、記憶部106が追加されたものである。
FIG. 9 is a block diagram of the configuration of the
記憶部106は、算出された転送済みのデータ量である転送中間データ107を、ストリームごとに対応付けて記憶する記憶装置である。転送進捗状況管理部105aは、データ転送処理部104がパケットの転送を完了するごとに、記憶部106に記憶された転送中間データ107のうち当該パケットが属するストリームに対応付けられたものについて、当該部パケットのサイズを加算して更新する。そして、転送進捗状況管理部105aは、データ転送処理部104が所定回数の転送を完了した場合に、記憶部106に記憶された各ストリームに対応付けられた転送中間データ107を読み出して、転送進捗情報としてシステムメモリ300へ通知する。
The
図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
そして、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
その後、転送進捗状況管理部105aがステップS3045及びS3046が所定回数繰り返されたことを検出した場合、USBホストコントローラ100aは、Stream Context Write with EDTLAコマンドを実行する(S305)。つまり、転送進捗状況管理部105aは、記憶部106からストリームごとに対応する転送中間データ107を読み出し、システムメモリ300の各ストリームに対応する制御領域310内の所定の領域に、読み出したそれぞれのEDTLAを格納する。
Thereafter, when the transfer
これにより、実施の形態2に比べて、USBホストコントローラ100aからシステムメモリ300への通知回数を減少させることができる。
As a result, the number of notifications from the
<実施の形態4>
本実施の形4は、上述した実施の形態2のUSBホストコントローラ100の変形例である。本実施の形態4にかかる転送制御装置の通知部は、外部から転送の中止指示を受け付けた場合、複数のデータ列のそれぞれについて直前に算出された各転送済みのデータ量を転送進捗情報として外部へ通知する。言い換えると、本実施の形態3にかかる転送制御装置は、パケットの転送が完了するごとに、転送済情報を更新し、外部から転送の中止指示を受け付けた場合、更新後の転送済情報を外部へ出力する。このように、本実施の形態4にかかる転送制御装置は、予め転送進捗情報を算出しておきながら、必要時のみ外部へ出力するものである。例えば、ドラバ等からの転送の中止要求時に初めてUSBホストコントローラ100aからシステムメモリ300への通知が発生するため、実施の形態3に比べてさらに通知回数を減少させることができる。
<
The fourth embodiment is a modification of the
尚、本実施の形態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
このとき、ドライバ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
その後、USBホストコントローラ100aは、図8のステップS232と同様に、ドライバ200に対して、Completionを通知する(S404)。これにより、ドライバ200は、指示したデータ転送の中断処理が完了したことを認識する。そして、ドライバ200は、図8のステップS233と同様に、システムメモリ300に対してRead ALL Stream Context. EDTLAコマンドを実行する(S405)。これにより、図8と同等の効果を奏することができる。
Thereafter, the
<その他の実施の形態>
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、本発明をハードウェアの構成として説明したが、本発明は、これに限定されるものではない。本発明は、上述した処理を、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
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.
外部から転送の中止指示を受け付けた場合、前記複数のデータ列のそれぞれについて直前に算出された各転送済みのデータ量を前記転送進捗情報として前記外部へ通知する
請求項1に記載の転送制御装置。 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.
請求項3に記載の転送制御装置。 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乃至4のいずれか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.
請求項1乃至5のいずれか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.
前記外部から転送の中止指示を受け付けた場合、更新後の前記転送済情報を前記外部へ出力する
請求項7に記載の転送制御装置。 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 .
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)
| 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)
| 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 |
-
2012
- 2012-08-28 JP JP2012187224A patent/JP5932571B2/en not_active Expired - Fee Related
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 |