JP2014229190A - データ転送制御システム、及び方法 - Google Patents
データ転送制御システム、及び方法 Download PDFInfo
- Publication number
- JP2014229190A JP2014229190A JP2013109976A JP2013109976A JP2014229190A JP 2014229190 A JP2014229190 A JP 2014229190A JP 2013109976 A JP2013109976 A JP 2013109976A JP 2013109976 A JP2013109976 A JP 2013109976A JP 2014229190 A JP2014229190 A JP 2014229190A
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- dma
- data
- control system
- rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】 DMA制御方法をポーリング処理にした場合に、DMA転送中のポーリング処理による制御部の負荷を軽減し、他のタスクの性能が劣化してしまうのを解決する。【解決手段】 DMA制御方法において、DMA転送間のDMA転送終了検出からTxDMAC111の再キック処理を、CPU114の割込み処理からポーリング処理に変更し、且つCPU114は、データ転送制御システム内のTxDMAC111のDMA転送レートにあったサンプリングレートでポーリング処理を行なうことで、DMA転送中のポーリング処理によるCPU114の負荷を軽減する。【選択図】図1B
Description
本発明はデータ転送制御、特に、転送サイズが一定でない不定の計測データを高速に転送する際のデータ転送技術に関する。
転送サイズが一定でない不定の測定データを複数に分けたパケットでホストからデバイスまたは、デバイスからホストへ転送する際、データ転送の終了を判定することは難しい。そこでUSB(Universal Serial Bus)システムにおけるバルクアウト転送または、バルクイン転送の場合は、大量のバルクアウトデータ、バルクインデータがパケットの最大サイズ単位で複数パケットに分けて順次転送されるので、最後に転送されるショートパケットまたは、Nullパケットを検出することにより転送の終了を判定している。しかしながら、一部の装置では、Nullパケットが送信されない場合があり、最大パケットサイズで割り切れるデータ転送の場合に転送の終了が判断出来ない問題が発生する。この問題を解決するため、例えば、特許文献1−3の技術が提案されている。
一方、USBシステムにおいて、USBの転送レートを向上させるため、効率的なデータ転送を図るデータ転送方法が、特許文献4、5に開示されている。
上述した特許文献4では、USB装置のデータ転送レートを向上させるために、USB装置がバッファの使用状況をホスト装置に対して通知する技術が開示されている。この技術には、ホスト装置から送信されるOUTトランザクション間隔を過去のOUTトランザクション間隔情報から予測し、OUTトランザクション受信間隔を決定しているため、ホスト装置から送信されるOUTトランザクション間隔に変動が生じた場合にOUTトランザクション受信間隔の追随が出来なくなり、次のOUTトランザクションを受信出来ないと判断して、本来ホスト装置へ受信可能を示す信号を送出することが出来る状態にも関わらず、受信不可の信号を送出してしまい、ホスト装置で再転送要求処理が発生してデータ転送効率が悪くなると言う問題が生じる。
この問題を解決するために、例えば特許文献5には、ホスト装置から次に送信されるデータの到着タイミング情報に基づき、次のホスト装置からのデータ送信可否を決定することで過去のOUTトランザクション間隔の影響を受けず、ホスト装置へ適切なデータ送信可否を行ない、無駄な再転送要求処理の発生を防止し、データ転送効率を向上させる技術が開示されている。
近年、産業用の計測機器についても、データの大容量化・サンプリング速度の高速化が進んでおり、データ転送の高速化を目的に新規に規格が策定され、普及しつつあるUSB3.0の活用が求められて来ている。しかしながら、質量分析装置の測定データは、転送サイズが不定であるため、1回のDMA(Direct Memory Access)で、コンピュータであるホストPC(Personal Computer)に転送するブロックデータのサイズを最大に設定することでデータ転送の制御回数を少なくすることが可能となるが、USB3.0IPコア(Universal Serial Bus 3.0 Intellectual Property Core)によっては、内蔵されたDMACの起動後は、測定が完了しても途中で停止出来ない場合があり、その場合、ダミーデータを送る量が増える可能性があるため、データ転送性能が劣化する恐れがある。この問題は、1回のDMA転送サイズ、すなわち転送されるブロックデータのサイズを小さくして測定完了後のダミーデータを送る量を減らすことでダミーデータ送出時のデータ転送性能の劣化を軽減することが出来る。
そのため、データの高速化のためには、DMA転送間(DMA転送終了から送信側DMACの再キック)を制御するファームウェアの制御方法についても高速化が必要となる。一般に、ファームウェアのDMA転送間のDMA転送終了検出から送信側DMAC再キックの制御は割込み処理として行なわれるが、質量分析装置のように、測定データの転送サイズが不定で、かつ、測定データをリアルタイムでデータ処理を行ない、ホストPCにデータ転送するアプリケーションには向いていない。これはDMA転送間のファームウェアの割込み処理の間は、ホストPCに測定データが転送されないため、測定データをストックするFIFO等の容量が増えてしまい、回路を実装するためのFPGAのデバイス単価が上がってしまうと言う問題がある。また、DMA転送終了から送信側DMAC再キックまでの間、測定データは、ホストPCに転送されないため、USB3.0の転送性能が劣化してしまうと言う問題もある。
この問題を解決するための別のファームウェアのDMAの制御方法として、ポーリング処理があるが、ポーリング処理では、割込み処理に比べ、DMA転送中、CPUはウェイト無しでDMA転送終了および測定完了のステータスフラグを監視するため、測定中は、DMAの転送処理によってCPUが占有されるので、その間、他のタスクの性能が劣化してしまい、リアルタイム性に悪影響を及ぼすと言う課題がある。
本発明の目的は、データ転送制御を行う制御部の負荷を軽減し、他のタスクの性能が劣化を防止可能なデータ転送制御システム、及び方法を提供することにある。
上記目的を達成するため、本発明においては、データ転送制御システムであって、測定データを処理するデータ処理部と、データ処理部で処理された測定データを転送するデータ転送部と、データ転送部による測定データの転送を制御する制御部とを備え、制御部は、データ転送部によるデータ転送レートに基づき、ポーリング処理のポーリングのサンプリングレートを決定し、データ転送部によるデータ転送の終了確認を、決定したサンプリングレートによるポーリング処理で実行する構成のデータ転送制御システムを提供する。
また、上記の目的を達成するため、本発明においては、制御部よるデータ転送制御方法であって、制御部は、データ転送部による測定データの転送を制御する際に、データ転送部によるデータ転送レートに基づき、ポーリング処理のポーリングのサンプリングレートを決定し、データ転送部によるデータ転送の終了確認を、決定したサンプリングレートによるポーリング処理で実行するデータ転送制御方法を提供する。
本発明によれば、データ転送部のデータ転送レートを算出し、算出したデータ転送レートでポーリング処理時のサンプリングレートを決定することが出来、次回以降の測定において、得られたサンプリングレートでポーリングを行なうことにより、ホストPC等に測定データが転送されない時間を短く出来、データ転送性能の向上が可能となる。
以下、本発明を実施するための形態について、適宜、図面を参照しながら詳細に説明する。なお、各種の実施の形態を説明するに先立ち、本発明が適用される質量分析装置(Mass Spectrometer:MS)におけるUSB3.0を用いたデータ転送回路をFPGA(Field-Programmable Gate Array)に実装した場合の概略構成の一例とその課題を図1A、図1B、図2、図3を用いて説明する。なお、図1Bは図1Aの全体構成中のFPGA108の内部構成の一例を示す回路図である。
図1Aにおいて、質量分析装置(MS)においては、各種の計測用のセンサ101から入力される電気信号をアナログ入力回路102で減衰、増幅を行ない、A/D変換器103でデジタル信号に変換後、FPGA108内のデータ処理部であるデータ処理回路104、およびFPGA108外部のデータバッファ105間で合算、積算、閾値処理した測定データを、FPGA108内の測定データブリッジ118、データ転送部として機能するUSB3.0IP(Intellectual Property)コア109を介して、USB3.0の物理層(PHY)110経由で、図示を省略した処理部、記憶部、通信インタフェース部、表示部等の入出力部を備える、通常のコンピュータ構成のホストPC106に送り解析、表示を行なう。FPGA108内の制御部として機能する中央処理部(Central Processing Unit:CPU)114他の回路は、測定データの転送制御等を行う。
ここで、USB3.0のホストPC106に転送可能な転送レートは、5Gbpsである。このため、USBデバイス側においても、5Gbpsの転送レートに見合ったハード構成にする必要がある。また、質量分析装置においては、測定データの転送サイズが不定でかつ、センサ101から入力される電気信号をリアルタイムでデータ処理し、測定データをホストPC106に転送する必要があるため、データ転送を制御するCPU114のフラッシュメモリに記憶されるファームウェア(FROM)107についても効率的な処理の検討が必要となる。
USBデバイス側である測定データのデータ処理回路104は、FPGA108で実現する場合が多く、その場合のFPGA108に実装可能なUSB3.0IPコア109と、IPコアと接続するUSB3.0PHY110が利用可能になっている。ホストPC106へのデータ転送は、一般に、USB3.0IPコア109に内蔵されたTxDMAC(Direct Memory Access Controller)111をCPU114と、CPU制御バス116のメモリコントローラ117によって接続されるファームウェア(FROM)107で制御して行なわれる。
前述の通り、質量分析装置の測定データは、転送サイズが不定であるため、1回のDMAでホストPC106に転送するサイズをMAXに設定することでファームウェア(FROM)107のTxDMAC111の制御回数を少なくすることが可能となる。しかし、USB3.0IPコア109によっては、内蔵されたTxDMAC111起動後は、測定が完了しても途中で停止出来ない場合があり、その場合、ダミーデータを送る量が増える可能性があるため、データ転送性能が劣化する恐れがある。本問題は、1回のデータ転送サイズである、DMA転送サイズを小さくして測定完了後のダミーデータを送る量を減らすことでダミーデータ送出時のデータ転送性能の劣化を軽減することが出来る。
一方、DMA転送間(DMA転送終了からTxDMAC再キックまでの期間)を制御するファームウェアの制御方法についても高速化が必要となる。一般に、ファームウェアのDMA転送間のDMA転送終了検出からTxDMAC111再キックの制御は割込み処理として行なわれるが、質量分析装置のように、測定データの転送サイズが不定でかつ、測定データをリアルタイムでデータ処理を行ない、ホストPC106にデータ転送するアプリケーションには向いていない。その理由を図2の割込み処理フローで説明する。
図2において、ホストPC106からUSB3.0IPコア109内蔵のRxDMAC112、EP_RxFIFO118経由で測定開始コマンドを受信メモリ113に受信後、RxDMAC112から、DMAが終了したか否かを示すレジスタ(IO)119を介して、同図左側に示すコマンド受信割込み(201)により、CPU114は、受信メモリ113のPCからのコマンド受信処理(202)にて、TxDMAC111をキック(203)後、CPU制御バス116に接続された制御バスブリッジ120経由でデータ処理回路104に測定開始コマンドを発行し、測定開始(204)を実行する。なお、図示を省略したが、データ処理回路104には、レジスタ(IO)119と同様のレジスタ(IO)を備えており、当該レジスタ(IO)により、データ処理回路104の状態を示したり、上記の測定開始コマンドを受信したりする。
測定開始後、TxDMAC111は、データ処理回路104から送られる測定データを測定データバス124で接続された測定データブリッジ115の測定データ転送回路122を介してFIFO121から読み出し、EP_TxFIFO123よりホストPC106に測定データを転送する。以降、同図右側に示す、TxDMAC111からのDMA転送終了割込み(205)により、割込み処理(206)において測定完了が未であれば、TxDMACを再キック(207)し、再度TxDMAC111からDMA転送終了割込みを待ち、割込み処理(206)において測定完了していれば、データ転送終了処理(208)を行ない終了となる。
この時、DMA転送間のファームウェアの割込み処理(206)の間は、ホストPC106に測定データが転送されないため、その間、FPGA108内でデータ処理された測定データを測定データブリッジ115内のFIFO121にストックする必要がある。従って、DMA転送間のTxDMAC再キック処理をCPU114の割込み処理で実施した場合、DMA転送終了、測定完了確認およびTxDMAC再キック処理以外に、CPUレジスタの退避、復帰等の処理が加わるため、DMA転送終了からTxDMAC再キックまでの時間が長くなり、測定データをFPGA内のFIFO121に貯めておくために必要なFIFO容量が増えてしまい、回路を実装するためのFPGAのデバイス単価が上がってしまうと言う問題がある。
また、DMA転送終了からTxDMAC再キックまでの間、測定データは、ホストPC106に転送されないため、USB3.0の転送性能が劣化してしまうと言う問題もある。本問題を解決するための別のファームウェアのDMAの制御方法として、ポーリング処理がある。ポーリング処理時のDMA制御フローを図3で説明する。
図3において、ホストPC106から測定開始コマンドを受信して、TxDMAC111をキック後、データ処理回路104に測定開始コマンドを発行し、測定開始を実行するまでの処理は、上述した割込み処理と同じである。測定開始以降、ポーリング処理では、CPU114によってTxDMAC111のDMA転送終了ステータスフラグと、データ処理回路104の測定完了ステータスフラグをウェイト無しで監視(301)する。その結果、DMAの転送が終了して測定完了が未であれば、TxDMAC111を再キック207し、再度CPU114によってTxDMAC111のDMA転送終了ステータスフラグと、データ処理回路104の測定完了ステータスフラグをウェイト無しで監視(301)する。また、フラグ監視でDMAの転送が終了してかつ、測定完了していれば、データ転送終了処理208を行ない終了となる。
以上のことから、DMA転送間のDMA転送終了検出からTxDMAC再キック処理をCPU114の割込み処理からポーリング処理に変更することで、DMA転送終了、測定完了確認およびTxDMAC再キック処理以外に、割込み処理で必要なCPUレジスタの退避、復帰処理が不要になり前のDMA転送終了からTxDMACが再キックされて次のDMAが開始されるまでの間を短くできるため、測定データブリッジで測定データを貯めておくために必要なFIFOの容量を減らすことが出来る。この結果、廉価なFPGAで回路が実装可能となりデバイスのコストダウンが図れる。また、ポーリング処理では、割込み処理に比べ、DMA転送間のファームウェアのオーバーヘッド時間も削減出来るので、USB3.0の転送性能の向上が図れる。
しかしながら、ポーリング処理では、割込み処理に比べ、DMA転送中、CPUはウェイト無しでDMA転送終了および測定完了のステータスフラグを監視するため、測定中はDMA転送処理によってCPUが占有されるので、その間、他のタスクの性能が劣化してしまい、リアルタイム性に悪影響を及ぼすと言う課題があった。本発明においては、上述した通りポーリング処理をウェイト無しで行なうのではなく、DMA転送レートなどのデータ転送レートにあったサンプリングレートでポーリング処理を行なうことでDMA転送中のポーリング処理によるCPUの負荷を軽減する構成とする。
以下、実施例1のデータ転送制御システム、及び転送制御方法を図4、図5を用いて説明する。本実施例のシステム構成は、図1A、図1Bに示した構成と同様となるので、ここでは重複する説明は省略する。なお、以下に説明するデータ転送は、DMA転送によるブロックデータの転送を例示して説明する。
まず、図4に本実施例における、ホストPC106のGUI画面の一例を示す。GUI401には、図示の通りの自動選択ボタン等の各種の選択ボタン402〜407が表示される。なお、以下の説明においては「選択ボタン」の記載を省略する。本実施例の装置・システムのユーザは、ホストPC106のGUI画面401により、ユーザが初期化404を選択すると、ホストPC106は、DMA転送レートの算出を実施する。なお、この初期化404による処理は、同図に示すように、自動402のモードと手動403のモードの何れかを選択出来るよう構成されている。
まず、上記のGUI401において、ユーザが自動402のモードで初期化404の処理を選択・実施した場合の動作フローについて説明する。GUI画面401で、自動402と初期化404を選択後、測定開始407を選択すると、本実施例の構成は、初期化のための測定を開始する。自動402のモードでは、測定開始407を実行後、図1Aに示したファームウェア107を、制御部として機能するCPU114が実行することにより、DMA制御フローにおいて割込み処理により、データ転送レートであるDMA転送レートの算出を行なう。
図5を用いて、この際のCPU114によるファームウェア107の実行によるDMA制御フローを説明する。同図左側に示すように、図1A、図1Bに示したホストPC106から、USB3.0IPコア109内蔵のEP_RxFIFO118、RxDMAC112経由で、測定開始コマンドを受信メモリ113に受信する。また、RxDMAC112からのレジスタ(IO)119を介したコマンド受信割込み(201)を契機に、CPU114は受信メモリ113のPCからのコマンド受信(202)にてTxDMACをキック(203)する。
CPU114は、このキック(203)後、CPU制御バス116に接続された制御バスブリッジ120経由でデータ処理回路104にコマンドを発行し、測定開始(501)を実行する。この測定開始(501)時に、DMA転送レート算出起動を開始することになる。測定開始後、TxDMAC111は、データ処理回路104から送られる測定データを、測定データバス124で接続された測定データブリッジ115から読み出す。すなわち、その内部の測定データ転送回路122を介してFIFO121に蓄積された測定データを読み出し、EP_TxFIFO123よりホストPC106に転送する。
以降、同図右側に示すように、CPU114は、TxDMAC111からのDMA転送終了割込み(205)により、割込み処理(502)において測定完了が未であれば、TxDMACを再キック(503)し、再度TxDMAC111からDMA転送終了割込みを待ち、割込み処理(502)において測定完了していれば、データ転送終了処理(208)を行ない終了となる。この時、TxDMACを再キック(503)時にも、上述したDMA転送レート算出起動を開始する。
また、本実施例の構成により、自動モードの初期化処理における割込み処理(502)においてファームウェア107を実行することにより、CPU114は、DMA開始からDMA転送終了割込み検出までの時間から、データ転送レートであるDMA転送レートを計算する。この計算は、例えば、((DMA転送サイズ:DMA_TxSIZEバイト)÷(DMA転送時間:DMA_TxTIME))となる。そして、CPU114は、計算したDMA転送レートを、CPU制御バス116で接続された通信回路(UART:Universal Asynchronous Receiver Transmitter)125経由でホストPC106に転送し、図4に示したGUI画面401に示したように、算出したデータ転送レートを、(DMA転送レート:XXX bps)408として表示してユーザに示す。
また、この測定完了時において、本実施例のホストPC106側では、USB3.0の転送性能を計算し、GUI画面401に同様に、データ転送性能を、(USB3.0転送性能:XXX bps)409として表示する。このUSB3.0転送性能は、例えば、((測定データ受信サイズ:MESDATA_RxSIZEバイト)÷(測定時間:MES_TIME ))で計算し、選択された自動402のモードでは、次回以降の測定時のDMA制御は、ポーリング処理で行なわれる。なお、ここで(測定時間:MES_TIME)とは、分子となる測定データ受信サイズに対応する全測定データを測定するのに要した時間を意味する。このように計算することにより、ホストPC106側の受信処理性能も含めた転送性能を、ユーザが確認することが可能となる。
本実施例のシステム・装置構成におけるポーリング処理では、CPU114は、上述した自動モードによる初期化処理時の割込み処理によるDMA制御で算出されたデータ転送レート、すなわち、(DMA転送レート:XXX bps)408を元に、レジスタ(IO)119中のDMA転送終了ステータスフラグと、データ処理回路104中の図示を省略したレジスタ(IO)中の測定完了ステータスフラグをポーリングするポーリング処理のサンプリングレートを決定する。このサンプリングレートは、以下の計算式により求める。
すなわち、1回のDMA転送サイズ÷DMA転送レート(bps)により、1回のDMA転送時間が求められる。CPU114は、この時間をポーリング処理のサンプリングレートとして、FPGA108内で動作するOSカーネル126のシステムタイマに設定する。例えば、ベースクロックが10MHzで、32ビットの演算が可能な場合、分解能は、100nsで最大429.4967296秒までポーリングのサンプリングレートを設定出来る。従って、1回で転送するブロックデータのサイズである、1回のDMA転送サイズが1Mバイトで、DMA転送レートが1Gbpsの場合、ポーリングのサンプリングレートは、1回のDMA転送時間(1Mバイト(8ビット×1024×1024)÷1Gbps=8388608ns)から、最小分解能以下の端数は切り上げて8388700nsとなる。
これにより、本実施例のシステム・装置構成においては、従来の割込み処理に比べ、DMA転送間のTxDMAC再キック処理において、割込み処理で必要なDMA転送終了、測定完了確認およびTxDMAC再キック処理以外のCPUレジスタの退避、復帰等の処理が省略でき、ホストPC106に測定データが転送されない時間を短く出来るため、USB3.0の転送性能の向上が可能となる。
また、本実施例のシステム・装置構成におけるポーリング処理によれば、ポーリングのサンプリングレートをウェイト無しで行なうのに比べ、実際のデータ転送レートであるDMA転送レートに合ったサンプリングレートでポーリングを行なうため、DMA転送処理中のポーリング処理によるCPUの負荷を軽減することが可能となる。
更に、本実施例では、測定完了時に、ホストPC106側にて、USB3.0の転送性能を計算し、GUI画面401に(USB3.0転送性能:XXX bps)409として表示することで、ユーザは、USB3.0の転送性能を確認することが可能となる。
以上、初期化404処理で自動402のモードを選択した場合を説明したが、図4に示したGUI画面401において、初期化404処理で手動403のモードを選択した場合は、初期化処理で上述した自動402のモードでの動作フローと同様に、まずDMA制御フローにおいてDMA転送レートの算出を行なう。そして、自動402のモード選択時は、次回以降の測定時のDMA制御が、DMA転送レートを元に算出されたサンプリングレートに基づくポーリング処理で行なわれるのに対して、手動403のモード選択時は、次回以降の測定時のDMA制御は、GUI画面401でユーザが手動で割込み処理405モード、またはポーリング処理406モードを選択することが出来るよう構成される。
このときユーザは、ホストPC106のGUI画面401に表示された割込み処理モード時のDMA転送レート、およびUSB3.0転送性能から通常の割込み処理モードのDMA制御で性能に問題がない場合は、次回以降も割込み処理モードでの測定実行の選択が可能となる。その場合、図2で説明した割込み処理におけるDMA制御フローと同じ動作を行うこととなる。
更に、測定完了時に、ホストPC106側にてUSB3.0のデータ転送性能を計算((測定データ受信サイズ:MESDATA_RxSIZEバイト)÷(測定時間:MES_TIME ))し、GUI画面401に表示(USB3.0転送性能:XXX bps 409)するので、初期化処理時の割込み処理に比べ、DMA転送レートの算出、及びホストPC106への転送処理が省略出来、その分転送性能の向上が可能となる。
なお、本実施例の構成では、GUI画面401で自動402のモード、または手動403のモードどちらも選択しないで測定開始407した場合、FROM内のファームウェア107にサンプリングレートがある場合は、そのサンプリングレートによるポーリング処理でDMA制御が行なわれる。ファームウェア107にサンプリングレートが無い場合は、上述した初期化処理と同様に割込み処理でDMA転送レートを算出してサンプリングレートを決定し、次回以降の測定時には、そのサンプリングレートにてポーリング処理でDMA制御が行なわれる。
また、本実施例の構成では、FROM中のファームウェア107にサンプリングレートがある場合でも、GUI画面401で初期化404処理を選択して測定開始407した場合、割込み処理にてDMA制御が行なわれDMA転送レートを算出し、新しいポーリング処理のサンプリングレートが決定されるため、ホストPC106の変更時にも柔軟な対応が可能となる。
以上詳述したシステム・装置の構成によれば、ユーザは、ホストPC上のGUI画面から、初期化処理を選択して割込み処理でDMA制御を行なうことにより、データ転送レートであるDMA転送レートを算出して、ポーリング処理時のサンプリングレートを適切に決定することが出来る。
また、上述したシステム・装置構成によれば、次回以降の測定において、上記のデータ転送レートを元に計算されたサンプリングレートでポーリングを行なうことにより、従来の割込み処理モードに比べて、DMA転送間のTxDMAC再キック処理において、割込み処理で必要なDMA転送終了、測定完了確認およびTxDMAC再キック処理以外のCPUレジスタの退避、復帰等の処理が省略でき、ホストPCに測定データが転送されない時間を短く出来るため、USB3.0の転送性能の向上が可能となる。
更に、上述したシステム・装置構成によるポーリング処理によれば、ポーリングのサンプリングレートをウェイト無しで行なうのに比べ、実際のデータ転送レートであるDMA転送レートに合ったサンプリングレートでポーリングを行なうため、データ転送中のポーリング処理によるCPUの負荷を軽減することが可能となる。
また更に、上述したシステム・装置構成では、手動モードで初期化処理を行なうことにより、割込み処理時のデータ転送レート、および経路のデータ転送性能を元に初期化処理実施以降の測定において、DMA制御方法を決めることができるため、ユーザは、ポーリング処理モードにより転送性能の向上、割込み処理によりデータ転送中のCPUの負荷を軽減すると言った目的に応じて、DMAの制御方法を選択することが可能となる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されものではない。また、実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能であることは言うまでもない。例えば、上述した実施例の構成において、ホストPC上のGUI画面において、ユーザが手動モード、及び割込み処理モードを選択した場合、割込み処理において、CPUによるDMA転送レートの算出、及びホストPCへの転送を省略し、データ転送完了時に、ホストPCにおけるUSB3.0の転送性能のみ算出し、GUI画面に表示することも可能である。
更に、上述した各構成、機能、制御部等は、それらの一部又は全部を実現するCPUで実行されるファームウェアを用いる例を説明したが、それらの一部又は全部を例えば集積回路で設計する等によりハードウェアで実現しても良いことは言うまでもない。
101 センサ
102 アナログ入力回路
103 A/D変換器
104 データ処理回路
105 データバッファ
106 ホストPC
107 ファームウェア
108 FPGA
109 USB3.0IPコア
110 USB3.0PHY
111 TxDMAC
112 RxDMAC
113 受信メモリ
114 CPU
115 測定データブリッジ
116 CPU制御バス
117 メモリコントローラ
118 EP_RxFIFO
119 レジスタ(IO)
120 制御バスブリッジ
121 FIFO
122 測定データ転送回路
123 EP_TxFIFO
124 測定データバス
125 通信回路(UART)
126 OSカーネル(システムタイマ)
401 GUI画面
402 自動選択ボタン
403 手動選択ボタン
404 初期化選択ボタン
405 割込み選択ボタン
406 ポーリング選択ボタン
407 測定開始選択ボタン
408 DMA転送レート表示
409 USB3.0転送性能表示
102 アナログ入力回路
103 A/D変換器
104 データ処理回路
105 データバッファ
106 ホストPC
107 ファームウェア
108 FPGA
109 USB3.0IPコア
110 USB3.0PHY
111 TxDMAC
112 RxDMAC
113 受信メモリ
114 CPU
115 測定データブリッジ
116 CPU制御バス
117 メモリコントローラ
118 EP_RxFIFO
119 レジスタ(IO)
120 制御バスブリッジ
121 FIFO
122 測定データ転送回路
123 EP_TxFIFO
124 測定データバス
125 通信回路(UART)
126 OSカーネル(システムタイマ)
401 GUI画面
402 自動選択ボタン
403 手動選択ボタン
404 初期化選択ボタン
405 割込み選択ボタン
406 ポーリング選択ボタン
407 測定開始選択ボタン
408 DMA転送レート表示
409 USB3.0転送性能表示
Claims (15)
- データ転送制御システムであって、
測定データを処理するデータ処理部と、
前記データ処理部で処理された前記測定データを転送するデータ転送部と、
前記データ転送部による前記測定データの転送を制御する制御部と、を備え、
前記制御部は、
前記データ転送部によるデータ転送レートに基づき、ポーリング処理のポーリングのサンプリングレートを決定し、
前記データ転送部によるデータ転送の終了確認を、決定した前記サンプリングレートによるポーリング処理で実行する、
ことを特徴とするデータ転送制御システム。 - 請求項1に記載のデータ転送制御システムであって、
前記データ転送部は、
DMAC(Direct Memory Access Controller)を含むUSB3.0IPコア(Universal Serial Bus 3.0 Intellectual Property Core)で構成され、
前記制御部は、
前記DMACを起動してからDMA転送が終了するまでの時間と、1回の前記DMA転送によるデータサイズに基づき、前記データ転送レートを算出する、
ことを特徴とするデータ転送制御システム。 - 請求項2に記載のデータ転送制御システムであって、
前記制御部は、
前記DMA転送間の前記DMA転送の終了検出、及び前記DMACの再起動を行う割込み処理において、前記データ転送レートを算出する、
ことを特徴とするデータ転送制御システム。 - 請求項3に記載のデータ転送制御システムであって、
前記データ転送部と前記制御部に接続され、GUI(Graphical User Interface)画面を表示可能なコンピュータを更に備える、
こと特徴とするデータ転送制御システム。 - 請求項4に記載のデータ転送制御システムであって、
前記コンピュータは、
前記制御部から算出された前記データ転送レートを受信し、前記GUI画面に受信した前記DMA転送レートを表示可能であり、
前記測定データの転送完了時に、前記データ転送部から受信した前記測定データの受信サイズと測定時間に基づき、前記USB3.0の転送性能を算出して、前記GUI画面に表示可能である、
ことを特徴とするデータ転送制御システム。 - 請求項5に記載のデータ転送制御システムであって、
前記コンピュータは、
前記GUI画面に、ユーザが初期化処理において自動モード、或いは手動モードを選択可能に表示する、
ことを特徴とするデータ転送制御システム。 - 請求項6に記載のデータ転送制御システムであって、
前記制御部は、
前記GUI画面において、前記自動モードによる初期化処理が選択された場合、
前記DMA転送間のDMA終了検出、及び前記DMACの再起動を行う割込み処理において算出した、前記データ転送レートに基づき前記サンプリングレートを決定し、
次回以降の測定において、決定した前記サンプリングレートによるポーリング処理を行なう、
ことを特徴とするデータ転送制御システム。 - 請求項6に記載のデータ転送制御システムであって、
前記GUI画面において、前記手動モードによる初期化処理が選択された場合、
前記制御部は、
前記DMA転送間のDMA終了検出、及び前記DMACの再起動を行う割込み処理において算出した、前記データ転送レートに基づき前記サンプリングレートを決定し、
前記GUI画面において、ユーザが次回以降の測定時におけるDMA制御を、割込み処理、又はポーリング処理どちらかを選択可能に表示する、
ことを特徴とするデータ転送制御システム。 - 請求項6に記載のデータ転送制御システムであって、
前記制御部は、
ユーザが前記GUI画面で、前記初期化処理において前記自動モードと手動モードの選択を行わなかった場合、当該システム中にサンプリングレートが記憶されている場合、当該サンプリングレートによるポーリング処理でDMA制御を行ない、記憶されていない場合、前記割込み処理で算出した前記データ転送レートに基づきサンプリングレートを決定する、
ことを特徴とするデータ転送制御システム。 - 請求項6に記載のデータ転送制御システムであって、
前記制御部は、
当該システム中にサンプリングレートが記憶されている場合、
初期化処理により新たなサンプリングレートが算出された場合、算出された当該サンプリングレートで記憶された前記サンプリングレートの更新を行う、
ことを特徴とするデータ転送制御システム。 - 制御部によるデータ転送制御方法であって、
前記制御部は、
データ転送部による測定データの転送を制御する際に、
前記データ転送部によるデータ転送レートに基づき、ポーリング処理のポーリングのサンプリングレートを決定し、
前記データ転送部によるデータ転送の終了確認を、決定した前記サンプリングレートによるポーリング処理で実行する、
ことを特徴とするデータ転送制御方法。 - 請求項11に記載のデータ転送制御方法であって、
前記データ転送部は、
DMAC(Direct Memory Access Controller)を含むUSB3.0IPコア(Universal Serial Bus 3.0 Intellectual Property Core)で構成され、
前記制御部は、
DMA転送間の当該DMA転送の終了検出、及び前記DMACの再起動を行う割込み処理において、前記データ転送レートを算出し、
前記DMACを起動してからDMA転送が終了するまでの時間と、1回のDMA転送によるデータサイズに基づき、前記データ転送レートを算出する、
ことを特徴とするデータ転送制御方法。 - 請求項12に記載のデータ転送制御方法であって、
前記制御部は、
前記データ転送部と前記制御部に接続され、GUI(Graphical User Interface)画面を表示可能なコンピュータに対し、算出した前記データ転送レートを送信し、
前記コンピュータは、
前記GUI画面に前記DMA転送レートを表示し、
前記測定データの転送完了時に、前記データ転送部から受信した前記測定データの受信サイズと測定時間に基づき、前記USB3.0の転送性能を算出して、前記GUI画面に表示する、
ことを特徴とするデータ転送制御方法。 - 請求項13に記載のデータ転送制御方法であって、
前記コンピュータは、
前記GUI画面に、ユーザが初期化処理において自動モードと手動モードを選択可能に表示する、
ことを特徴とするデータ転送制御方法。 - 請求項14に記載のデータ転送制御方法であって、
前記制御部は、
前記GUI画面において、前記自動モードによる初期化処理が選択された場合、
前記DMA転送間のDMA終了検出、及び前記DMACの再起動を行う割込み処理において、算出した前記データ転送レートに基づき前記サンプリングレートを決定し、
次回以降の測定において、決定した前記サンプリングレートによるポーリング処理を行なう、
ことを特徴とするデータ転送制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013109976A JP2014229190A (ja) | 2013-05-24 | 2013-05-24 | データ転送制御システム、及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013109976A JP2014229190A (ja) | 2013-05-24 | 2013-05-24 | データ転送制御システム、及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014229190A true JP2014229190A (ja) | 2014-12-08 |
Family
ID=52128954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013109976A Pending JP2014229190A (ja) | 2013-05-24 | 2013-05-24 | データ転送制御システム、及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014229190A (ja) |
-
2013
- 2013-05-24 JP JP2013109976A patent/JP2014229190A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Larsen et al. | Architectural breakdown of end-to-end latency in a TCP/IP network | |
JP5777467B2 (ja) | 制御装置およびプログラム | |
US8266340B2 (en) | DMA controller | |
CN100464318C (zh) | 一种实现高效dma传输的dma控制器及传输方法 | |
TWI430101B (zh) | 時戳訊息之方法 | |
CN116257472B (zh) | 接口控制方法、装置、电子设备及存储介质 | |
JP6531593B2 (ja) | 通信方法、通信プログラムおよび情報処理装置 | |
US8230137B2 (en) | Network processor, reception controller and data reception processing method performing direct memory access transfer | |
US20060184708A1 (en) | Host controller device and method | |
US6990550B2 (en) | Transaction duration management in a USB host controller | |
JP2016186719A (ja) | 入出力制御装置、情報処理装置及び入出力制御装置の制御方法 | |
US9274986B2 (en) | Data transmission circuit and data transmission method using configurable threshold and related universal serial bus system | |
JP2014229190A (ja) | データ転送制御システム、及び方法 | |
US8842547B2 (en) | Communication control apparatus and control method | |
JP4540900B2 (ja) | 座標入力装置、座標入力方法 | |
CN101170382B (zh) | 一种数据传输的方法和*** | |
US9898434B2 (en) | System, process control method and medium | |
CN111274179A (zh) | 一种USB Hub及控制方法 | |
JP2008252748A (ja) | 受信フレーム処理装置および受信フレーム処理システム | |
JP4567586B2 (ja) | 処理装置 | |
US10768688B2 (en) | Arithmetic processing device, information processing apparatus, and method for controlling arithmetic processing device | |
US20120271973A1 (en) | Data transfer system and data transfer method | |
JP2006195607A (ja) | バルクアウト転送終了判定方法および回路 | |
KR101352140B1 (ko) | 데이터 통신 시스템 | |
TWI427481B (zh) | 工業標準構造介面匯流排的橋接系統、裝置與其方法 |