JP2013186658A - データ伝送装置、データ伝送方法、及びプログラム - Google Patents

データ伝送装置、データ伝送方法、及びプログラム Download PDF

Info

Publication number
JP2013186658A
JP2013186658A JP2012050790A JP2012050790A JP2013186658A JP 2013186658 A JP2013186658 A JP 2013186658A JP 2012050790 A JP2012050790 A JP 2012050790A JP 2012050790 A JP2012050790 A JP 2012050790A JP 2013186658 A JP2013186658 A JP 2013186658A
Authority
JP
Japan
Prior art keywords
data
transfer instruction
instruction information
information
unit
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.)
Granted
Application number
JP2012050790A
Other languages
English (en)
Other versions
JP5651622B2 (ja
Inventor
Nobuhiko Sugasawa
延彦 菅沢
Yuta Kobayashi
優太 小林
Masataka Goto
真孝 後藤
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012050790A priority Critical patent/JP5651622B2/ja
Priority to US13/787,682 priority patent/US20130238881A1/en
Priority to CN2013100730300A priority patent/CN103309831A/zh
Publication of JP2013186658A publication Critical patent/JP2013186658A/ja
Application granted granted Critical
Publication of JP5651622B2 publication Critical patent/JP5651622B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)

Abstract

【課題】CPUにかかる負荷を軽減することができるデータ伝送装置を提供する。
【解決手段】データ伝送装置は、プロセッサと、データを記憶する記憶装置間におけるデータの転送時の読み出し、及び書き込みをプロセッサを介さずに直接制御するメモリ制御部と、を備えている。また、データ伝送装置は、データの読み出し先の記憶装置、または書込み先の記憶装置においてデータが記憶される位置情報、及びデータのサイズ情報を含む情報であって、プロセッサが生成する転送指示情報を記憶する情報記憶部と、転送指示情報を所定のデータサイズ毎に分割して複数の分割転送指示情報を生成する生成部と、メモリ制御部に対し、分割転送指示情報を取得するよう指示する指示部と、を備えている。
【選択図】図1

Description

本発明の実施形態は、データ伝送装置、データ伝送方法、及びプログラムに関する。
従来、CPUにかわりメモリやハードディスクなどの装置間で直接データの転送制御を行うために、DMA(Direct Memory Access)コントローラが設けられたシステムが知られている。DMAコントローラは、CPUが生成した転送元の位置情報、転送先の位置情報、及び転送サイズを指定した転送指示情報に基づいて、装置間のデータ転送を制御する。CPUがDMAコントローラに対して転送指示情報を出力する方式としては、CPUが直接DMAコントローラ内のレジスタに転送指示情報を書き込んだり、CPUは転送指示情報をメモリに記憶し、DMAコントローラがメモリに記憶された転送指示情報を読み出したりしたりする方式がある。このように、DMAコントローラにより、データ転送を行うことで、CPUにてソフトウェアによる処理が介在しなくなるため、転送処理時間を短くしたり、CPUを他の処理により活用することができたりといった効果がある。
特開2005−135065号公報
しかしながら、DMAコントローラにおいては、一般的には、転送指示情報はデータごとにCPUが生成することから、データが断片化して小さくなっている場合などに、CPUが転送のたびに、転送指示情報を生成する必要があり、CPUにかかる負荷が大きくなってしまうという問題が生じていた。
本発明の一側面は、上記に鑑みてなされたものであって、CPUにかかる負荷を軽減することができるデータ伝送装置を提供することにある。
上述した課題を解決し、目的を達成するために、本発明の実施形態のデータ伝送装置は、プロセッサと、データを記憶する記憶装置間におけるデータの転送時の読み出し、及び書き込みを前記プロセッサを介さずに制御するメモリ制御部と、を備えている。
また、データ伝送装置は、前記データの読み出し先の前記記憶装置、または書込み先の前記記憶装置において前記データが記憶される位置情報、及び前記データのサイズ情報を含む情報であって、前記プロセッサが生成する転送指示情報を記憶する情報記憶部と、内部記憶部を備え、前記転送指示情報を所定のデータサイズ毎に分割して複数の分割転送指示情報を生成するとともに、前記内部記憶部に記憶する生成部と、前記メモリ制御部に対し、前記分割転送指示情報を生成する前記生成部における前記内部記憶部の位置を指定して、前記分割転送指示情報を取得するよう指示する指示部と、を備えている。
図1は、第1の実施形態におけるデータ伝送装置のハードウェア構成図である。 図2は、第1の実施形態における生成部の概要図である。 図3は、第1の実施形態におけるデータ転送にかかる処理の流れを示すフロー図である。 図4は、第1の実施形態におけるデータ転送にかかる処理の流れを示すシーケンス図である。 図5は、第2の実施形態における生成部の概要図である。 図6は、第3の実施形態におけるデータ伝送装置のハードウェア構成図である。 図7は、第4の実施形態におけるデータ伝送装置のハードウェア構成図である。 図8は、第5の実施形態における生成部の概要図である。 図9は、第5の実施形態におけるデータ転送にかかる処理の流れを示すシーケンス図である。
以下に、実施形態のデータ伝送装置を図面に基づいて詳細に説明する。実施形態においては、データ伝送装置を異なる機器間において、データの送受信を行う通信装置に適用した例を示すが、この発明が実施形態に限定されるものではない。
(第1の実施形態)
図1は、第1の実施形態のデータ伝送装置100のハードウェア構成図である。データ伝送装置100は、CPU101、主記憶部102、第1DMAコントローラ103、データ蓄積部104、第2DMAコントローラ105、通信部106、転送情報記憶部107、生成部110、転送指示部108、転送設定記憶部109、及びバッファ部111を備えている。本実施形態においては、第1DMAコントローラ103、及び第2DMAコントローラ105が転送制御部に該当し、2つのDMAコントローラが設けられている構成を示している。これらの部位は、それぞれバス112によって接続されている。
CPU101は、データ伝送装置100内のソフトウェアを実行する部位である。ソフトウェアは、通常データ蓄積部104に記憶されており、CPU101はソフトウェアを実行する際には、通常データ蓄積部104から読み出し、主記憶部102上にてソフトウェアを実行する。また、CPU101は、後述するデータ転送用の転送指示情報を生成する。転送指示情報は、あるファイルを、ソフトウェアを通じて操作した場合等に生成され、ファイルを構成するデータのうち連続して記憶されているデータ単位でその記憶位置情報、及びデータのサイズ情報を含んで生成される。したがって、あるファイルからは断片化されているデータの数の分だけ転送指示情報が生成される。
データ伝送装置100からデータが読み出される場合は、転送指示情報は、読み出し元の記憶装置におけるデータの記憶位置情報、及びサイズ情報を含んでいる。また、データ伝送装置100が別の装置からデータを受信してデータが装置内の記憶装置に書き出される場合には、転送指示情報は、書き出し先の記憶装置におけるデータの記憶情報、及びデータのサイズ情報を含んでいる。CPU101によって生成された転送指示情報は、転送情報記憶部107に記憶される。
主記憶部102は、CPU101が実行するマシンコードやデータが一時的に記憶される。本実施形態では、SRAMやDRAMといった記憶デバイスが用いられる。データ蓄積部104は、不揮発性のデータを記憶する。本実施形態においては、HDD(HardDiskDrive)やSSD、SDメモリカード等といった大容量の記録メディアが用いられている。上述の転送指示情報も、一旦主記憶部102上で生成された後に、転送情報記憶部107に記憶される。
第1DMAコントローラ103は、データ蓄積部104と他の装置との間でのデータ転送を制御する。第1DMAコントローラ103は、転送指示情報から生成された分割転送指示情報に基づき、分割転送指示情報で指定されたデータ蓄積部104のメモリアドレスから取得したデータを、他の装置の指定されたメモリアドレスへと書き出したり、他の装置の指定されたメモリアドレスから取得したデータを、指定されたデータ蓄積部104のメモリアドレスへと書き出したりといったデータ転送の制御を行う。分割転送指示情報の詳細については後述する。
通信部106は、データ伝送装置100が外部の通信装置との間でデータの送受信を行うための部位である。本実施形態においては、Ethernet(登録商標)、USB、Bluetooth(登録商標)などの通信規格による通信デバイスにより構成されている。第2DMAコントローラ105は、通信部106と他の装置との間でのデータ転送を制御する。第2DMAコントローラ105は、転送指示情報から生成された分割転送指示情報に基づき、分割転送指示情報で指定された通信部106のメモリアドレスから取得したデータを、他の装置の指定されたメモリアドレスへと書き出したり、他の装置の指定されたメモリアドレスから取得したデータを、指定された通信部106のメモリアドレスへと書き出したりといったデータ転送の制御を行う。
転送情報記憶部107は、CPU101が生成した転送指示情報を記憶する。本実施形態においては、SRAMやDRAMといった記憶デバイスにより構成されている。
転送指示部108は、第1DMAコントローラ103や第2DMAコントローラ105に対して、データ転送の設定や割り込み制御を行う。具体的には、転送指示部108は、各DMAコントローラに対して、後述する分割転送指示情報を生成する場所としてコールする生成部110の内部記憶部のアドレス、及び読み出しであるのか、書き出しであるのかの読み書き方向等を指定する。転送指示部108は、DMAコントローラ毎にコールするアドレスを予め定めている。また、転送指示部108は、各DMAコントローラ103、105 が出力する割り込み信号がそれぞれ入力されて、DMAコントローラ103、105への割り込み制御を行う。
転送設定記憶部109は、転送指示部108が実行する、各DMAコントローラ103、105のデータ転送時における設定や、割り込み制御時の手順を記憶している。転送指示部108は、転送設定記憶部109を参照して、上述の設定を行う。
生成部110は、内部に記憶部を有しており、第1DMAコントローラ103や第2DMAコントローラ105から、指定された内部の記憶部のアドレスへの参照要求を受けると、転送情報記憶部107が記憶する転送指示情報から各DMAコントローラ103、105に応じたフォーマットで分割転送指示情報を生成し、返信する。具体的には、生成部110はどの内部の記憶部のアドレスがコールされたかによって、どのDMAコントローラから参照があったかを判定する。そして、生成部110は、DMAコントローラ毎に定められたデータの分割サイズや、追加する属性情報などを決定して、転送指示情報から、コールされた各アドレス単位で分割転送指示情報を生成する。生成部110は、コールされたアドレスによって、転送指示情報のどの部分から分割転送指示情報を生成するかを決定する。
また、分割転送指示情報はDMAコントローラの種類によって、配列構造の場合もあれば、チェーン構造をなす場合もあり、フィールドや属性値の定義も異なってくる。生成部110は、DMAコントローラに応じて、生成する分割転送指示情報の形式を変更することにより、DMAコントローラ毎に要求される分割転送指示情報の形式の差異を吸収することができる。なお、転送指示部108や、生成部110は、CPU101とは異なる回路によって実現されており、したがって、転送指示部108や、生成部110による処理はCPU101のパフォーマンスに対し影響を与えないようになっている。
バッファ部111は、各DMAコントローラ103、105間において、データを転送する際に一時的にデータを記憶し、バッファ部111を介してデータの受け渡しが行われる。本実施形態においては、バッファ部111には、主記憶部102と同様にSRAMやDRAMといった記憶デバイスが用いられる。
バス112は、各部位を接続しており、本実施形態においては、1本のバスで接続された例が示されている。バス112は、例えばPCIバスのような規格に基づいて接続されており、それぞれの部位はバス112を通じてデータの通信を行う。
図2は、本実施形態における生成部110に関する処理の詳細を示した図である。また、図3は、転送指示情報の生成から各DMAコントローラ103、105におけるデータ転送の処理までの流れを示したフロー図である。図2、及び図3を用いて、以下処理の流れを説明する。まず、CPU101は、転送指示情報を主記憶部102上にて生成する(ステップS1)。次いで、CPU101は、生成した転送指示情報を転送情報記憶部107へと書き込む(ステップS2)。図2に示されるように、転送情報記憶部107は、図中に転送指示情報テーブル107aを記憶している。上述したCPU102が生成した転送指示情報は、転送指示情報テーブル107aの形式にて記憶されており、転送指示情報テーブル107aは、「先頭アドレス」「転送サイズ」「属性値」の3つのフィールドを有している。先頭アドレスは、上述したデータの記憶位置情報、転送サイズは、サイズ情報にそれぞれ相当する。なお、本実施形態において示した転送指示情報テーブル107aは、データ蓄積部104に記憶されたデータを読み出す場合や、データ蓄積部104に新たにデータを書き込む場合のデータ転送のための転送指示情報を例示してある。しかしながら、転送指示情報はデータ蓄積部104に対するものだけではなく、他のデータを記憶可能な装置に対しても生成されており、記憶装置ごとにデータ構造は異なっている。
図2に示した転送指示情報テーブル107aの1番目のエントリは、アドレス0x3000を先頭として、10100ブロック分のデータが転送対象のデータであることを示している。また、属性値は「0x2」がデータ蓄積部104からのデータの読み出しであること、「0x3」がデータ蓄積部104へのデータの書き出しであることをそれぞれ示している。なお、転送指示情報テーブル107aにおけるどの転送指示情報のエントリが選択されているかは、生成部110によって決定されており、生成部110からの信号入力により、セレクタ回路が制御している。
また、属性値としては、エントリが有効であるか否かを示したフラグ等の情報を設定することも出来る。また、さらに、転送指示情報の属性値として、タイマー値を入れ、ある転送指示情報のあるエントリと他のエントリとの間に、データ転送の休息時間を挿入できるようにしてもよい。こうすることによって、間欠的なデータ転送ができるようになり、より低消費電力な動作ができるようになる。
次いで、転送指示部108は、第1DMAコントローラ103、又は第2DMAコントローラ105に対するデータの転送設定を行う際、すなわち実際にデータの転送を開始する指示がソフトウェアから出された際に、有効な転送指示情報が1以上存在しているか否かを判定する(ステップS3)。有効な転送指示情報が1以上存在している場合(ステップS3:Yes)、すなわち、ソフトウェアによって開かれている等の操作により実行中のデータが存在している場合、転送指示部108は、データの転送設定情報として、第1DMAコントローラ103、又は第2DMAコントローラ105に対して、生成部110のアドレス等の転送に必要な諸条件を設定する(ステップS4)。この転送設定情報を設定することで、第1DMAコントローラ103、又は第2DMAコントローラ105がデータの転送を開始しようして生成部110に参照要求を行った際には指定の生成部110のアドレスの先頭が参照の開始位置となる。
図2は、転送指示情報テーブル107aの1番目のエントリを、生成部110が指している状況を示している。なお、どのエントリが指示されているかは生成部110により設定されており、生成部110が分割転送指示情報を生成し終わったら、次のエントリへとポインタが移行する。この状況において、生成部110は、第1DMAコントローラ103、又は第2DMAコントローラ105から分割転送指示情報への参照要求があったか否かを判定する(ステップS5)。分割転送指示情報への参照要求があったと判定された場合(ステップS5:Yes)、生成部110は参照されたアドレスに対応する分割転送指示情報を、転送指示情報に基づき生成する(ステップS6)。
次いで、生成部110は、生成した分割転送指示情報が、あるエントリにおけるデータの終端のものであったか否かを判定する(ステップS7)。エントリにおけるデータの終端のものであったと判定された場合(ステップS7:Yes)、生成部110は、生成した分割転送指示情報の属性値のフィールドに「0x23」の値、すなわち、終端であることを示すフラグを設定する(ステップS8)。第1DMAコントローラ103、及び第2DMAコントローラ105は、参照した分割転送指示情報の属性値の値を見て、全ての分割転送指示情報を取得済みであるかを判定することができる。
エントリにおけるデータの終端のものないと判定された場合(ステップS7:No)、生成部110は、終端を示すフラグを設定せずに、生成した分割転送指示情報を参照があったDMAコントローラ103、105へと出力する(ステップS9)。
図2にて示した分割転送指示情報群110aは、転送指示情報の1番目のエントリから生成された複数の分割転送指示情報を示している。本実施形態においては、転送指示情報はデータサイズ65536単位で分割されており、終端の分割転送指示情報は余った「32768」がデータサイズとなっている。分割転送指示情報は、「メモリアドレス」、「転送サイズ」、及び「属性値」の3つのフィールドを有している。本実施形態においては、あるエントリの転送指示情報から生成された分割転送指示情報のうち、終端以外の分割転送指示情報の属性値に「0x21」を、終端の分割転送指示情報の属性値も「0x23」を用いている。これら属性値は、DMAコントローラ毎に定義が異なるので、生成部110は、はDMAコントローラに合わせて属性値を決定する。
図2に示されるように、各DMAコントローラ103、105は、分割転送指示情報群110aの全てのデータ転送を完了すると、転送完了割り込み信号を転送指示部108に対して出力する。各DMAコントローラ103、105は、分割転送指示情報における、終端フラグの情報から全ての分割転送指示情報を取得したかを判定する。
図3で示されるように、転送指示部108は、DMAコントローラ103、105が出力するデータ転送完了を示す割り込み信号の入力があったか否かを判定する(ステップS10)。割り込み信号の入力があった場合(ステップS10:Yes)、転送指示部108は、DMAコントローラ103、105への割り込み制御を実行する(ステップS11)。一方、割り込み信号の入力がなかった場合(ステップS10:No)、すなわち、まだ全ての分割転送指示情報が参照のあったDMAコントローラ103、105へと出力されていない場合、ステップS5からの処理を再度繰り返し、再度生成部110はDMAコントローラ103、105からの参照要求に従って、分割転送指示情報を生成する。なお生成部110は、DMAコントローラ103、105からは、前回の処理の流れにおいて参照された生成部110のアドレスと連続する次のアドレスに対しての参照要求を受理する。
次いで、転送指示部108は、DMAコントローラ103、105によるデータ転送の完了を示す割り込み信号から、処理対象の転送指示情報テーブル107aに記憶された1エントリ分のデータ転送が正常に完了したか否かを判定する(ステップS12)。割り込み信号には、転送が正常に終了したか否かの異常検知情報が含まれている。1エントリ分のデータ転送が正常に完了したと判定されると(ステップS12:Yes)、生成部110は、転送指示部108からの転送完了通知を受け取って、転送指示情報テーブル107aにおけるエントリの位置を次のエントリに更新する(ステップS13)。一方、1エントリ分のデータ転送が正常に完了していないと判定されると(ステップS12:No)、転送指示部108は異常処理を行う。異常処理として、画面上にデータ転送のエラーを表示したりする処理である。
次に、第1DMAコントローラ103と、第2DMAコントローラ105との間で、データ転送が行われる場合のシーケンス図である図4を用いてこの場合のデータ転送の処理の流れについて説明する。図4においては、第1DMAコントローラ103から第2DMAコントローラ105へとデータ転送が行われる場合を示す。まず始めに、CPU101は、データ転送を実行するに際し、転送指示情報を主記憶部102において作成し、生成部110を通じて転送情報記憶部107に書き込む(ステップS101)。なお、図示していないが、転送指示部108が動作するために必要となる諸々の設定、例えば転送の有効化等は、CPU101により前もって実施されているものとする。
以降、図4における「繰り返しa」のシーケンスと、「繰り返しb」のシーケンスとが順次進んでいく。転送指示部108は、転送情報記憶部107に有効なエントリが存在していれば、第1DMAコントローラ103と第2DMAコントローラ105の転送設定を行う(ステップS102、S103)。転送設定がされると、第1DMAコントローラ103と第2DMAコントローラ105は、転送指示部108により設定された生成部110のアドレスに対して読み込みアクセスを行い、分割転送指示情報を参照する(ステップS104、S105)。
生成部110は、第1DMAコントローラ103、及び第2DMAコントローラ105 から分割転送指示情報の参照要求を受けると、指定されたアドレスに基づいて、どのDMAコントローラから参照があったかを判定する。そして、生成部110は、DMAコントローラの仕様に沿った分割転送指示情報を生成し、それぞれの第1DMAコントローラ103、及び第2DMAコントローラ105へと出力する(ステップS106、S107)。
第1DMAコントローラ103は、分割転送指示情報に従い、データをバッファ部111へ書き込んでいく(ステップS108)。一方、第2DMAコントローラ105は、バッファ部111に書き込まれたデータが存在しない期間はデータ転送を行えないため待機し、バッファ部111にデータが書き込まれると、バッファ部111にあるデータを読み出すデータ転送を実行する(ステップS109)。第1DMAコントローラ103、及び第2DMAコントローラ105は、前述したように、参照した分割転送指示情報の属性値の終端フラグが立っていた場合に、この分割転送指示情報によるデータ転送を終えたら、転送完了割り込み信号を転送指示部108へ出力する(ステップS110、S111)。そして、転送指示部108は、第1DMAコントローラ103、及び第2DMAコントローラ105に対して割り込み制御を実行する(ステップS112、S113)。
転送指示部108は、転送指示情報のエントリが指定するサイズ分のデータ転送が完了するまで、第1DMAコントローラ103、及び第2DMAコントローラ105への転送設定を繰り返し、転送設定に基づいて、第1DMAコントローラ103、及び第2DMAコントローラ105は、データの転送を繰り返す(繰り返しa、及び繰り返しb)。
第1DMAコントローラ103、及び第2DMAコントローラ105によるデータの転送が完了すると、転送指示部108は生成部110へ転送完了を通知する(ステップS114)。最後に、生成部110は、転送完了通知を受けると、転送情報記憶部107の参照先を次のエントリに移す(ステップS115)。転送情報記憶部107に記憶された全てのエントリに関するデータ転送が完了するまで、ステップS102〜ステップS115の処理が繰り返される(繰り返しA)。
本実施形態においては、CPU101とは異なる回路によって実現された転送指示部108と生成部110において、DMAコントローラがデータ転送の際に必要とする分割転送指示情報を生成するための処理を行うようにした。そのため、例えばファイルのデータが断片化して、数多くの分割転送指示情報をCPU101自身が生成する必要がなくなり、CPU101は転送指示情報を生成するのみでよくなることから、CPU101にかかる処理負担を軽減することができるようになる。
(第2の実施形態)
次に、データ伝送装置の第2の実施形態において説明する。第2の実施形態においては、図5に示されるように、第1DMAコントローラ103と第2DMAコントローラ105に対して、それぞれ別の生成部、及び転送指示部が設けられている例が示される。図5に示されるように、第1DMAコントローラ103に対応して、転送指示部208a、及び生成部210aが設けられている。また、第2DMAコントローラ105に対応して、転送指示部208b、及び生成部210bが設けられている。生成部210aからは、転送情報記憶部107における一つ目のエントリが選択されており、一方、生成部210bからは、転送情報記憶部107における4つ目のエントリが選択されている。
例えば、第1DMAコントローラ103に接続されるデータ蓄積部104からデータを読み込んで、第2DMAコントローラ105に接続される通信部106からデータを送信するデータ転送の場合、それぞれのデータ転送のスピードや、1回のデータ転送当たりに転送するデータサイズ異なる場合が存在する。このような場合に、1組の生成部と転送指示部とで、記憶装置間のデータ転送を実行すると、低速な側に速度を合わせて処理を行わなければならなくなるため、スループットが犠牲になってしまう。そこで、このようにDMAコントローラ毎に、別の生成部、及び転送指示部が設けられていることにより、それぞれのDMAコントローラが各々の伝送スピードやデータサイズで、データの転送を実行することができるになり、スループットの低下を抑制することができるようになる。
(第3の実施形態)
また、別の第3の実施形態について説明する。第3の実施形態においては、それぞれの通信部106とのデータ交換用に第2DMAコントローラ105を設けず、直接データ転送を転送指示部108が行う場合が示されている。図6は、第3の実施形態における、データ伝送装置300のハードウェア構成図を示しており、通信部106と、転送指示部308は直接バス112で接続されている。
本実施形態においては、転送指示部308は、通信部106とのデータ交換時においては、第1、第2の実施形態とは異なり、第2のDMAコントローラ105への分割転送指示情報のアドレスの設定などの転送設定は行わず、直接生成部110の所定のアドレスに対して、分割転送指示情報の参照要求を行う。そして、生成部110が生成した分割転送指示情報に基づき、転送指示部308は通信部106とのデータ転送を実行する。
したがって、通信部106のための分割転送指示情報を生成する必要はなくなり、1組の生成部と転送指示部とで事足りることとなる。
(第4の実施形態)
第4の実施形態においては、2本のバス412a、412bとを用い、転送指示部408、生成部410、及びバッファ部411はそれぞれのバス412a、412bごとに、ポートを有している。
図7は、本実施形態のデータ伝送装置の一形態を示した図である。第1のバス412aには、CPU101、主記憶部102、第1DMAコントローラ103、転送指示部408の第1ポート、生成部410の第1ポート、及びバッファ部411の第1のポートが接続されている。第2のバス412bには、第2DMAコントローラ105、転送指示部408の第2ポート、生成部410の第2ポート、及びバッファ部411の第2のポートが接続されている。本実施形態においては、CPU101や主記憶部102が第2のバス412bに接続されていないが、CPU101及び主記憶部102は第2のバス412bにも接続してもよい。
また、生成部410の第1、及び第2ポートには、それぞれ別のアドレスがマップされている。第1DMAコントローラ103、及び第2DMAコントローラ105それぞれが接続対象のポートへと適切に接続できるよう、転送指示部408は、第1DMAコントローラ103、及び第2DMAコントローラ105に設定する参照先の生成部410のアドレスを各ポートと対応したアドレスにする。このようにすることで、生成部410は、参照要求を受けたポートに応じて、転送指示情報のどの部位のデータに対して分割転送指示情報を生成するべきかを判定することができるようになる。
このようにバス412a、412bの2本にバスを分離し、転送指示部408、生成部410、及びバッファ部411などのデータ転送にかかる装置のポートをバスごとに設けることで、2つのDMAコントローラによって行われるデータ転送や、転送指示部408による転送設定を、同時並行して実行できるようになり、データ転送速度をより高速にすることができるようになる。また、所望のデータ転送速度を満たすために要求されるバスの動作周波数を、他の実施形態と比較して低速化できるため、データ伝送装置の消費電力を低減することができる。
(第5の実施形態)
第5の実施形態においては、データを別の装置から通信部106を通じて受信し、一旦バッファ部111に記憶したあとに、バッファ部111からデータ蓄積部104へとデータ転送を行う場合の例を示している。この場合、受信側の転送指示部108は受信したデータのサイズ情報を有していないことから、生成部510が分割転送指示情報を生成する際のデータのサイズ情報が転送設定記憶部109に記憶されていない場合について説明する。
図8は、第5の実施形態のデータ伝送装置500における生成部510を示した図である。図8における分割転送指示情情報群510aは、1番目のエントリは転送が完了した状態を示しており、2番目のエントリはまだ転送が完了していない状態を示している。分割転送指示情情報群510aにおけるメモリアドレスとは、データ蓄積部104に受信したデータを書き込む位置を示している。1つ目のエントリと、2つ目のエントリとで、メモリアドレスが同様なのは、説明の便宜上FIFO形式の場合を想定している
図9は、本実施形態におけるデータ転送の処理の流れを示すフロー図である。図9においては、図3と同じ処理については、同じ符号を付与し、説明を省略する。以下、図3の処理とか異なる点を中心に説明する。DMAコントローラ103、105が受信したデータをデータ蓄積部104へデータ転送して、書き込む制御を行う場合、ステップS4にて設定された生成部510のアドレスへ参照要求が行われる。
生成部510は、DMAコントローラ103、105から指定されたアドレスへの参照要求があった場合、アドレスに対応する転送指示情報の部位から、転送サイズと、属性値が未定義の分割転送指示情報を生成する(ステップS506)。DMAコントローラ103、105は通信部106を通じて受信したデータのデータサイズや属性値を、指定されたアドレスにおいて生成された分割転送指示情報に書き込む。
生成部510は、DMAコントローラから受信したデータの転送サイズ等の通知があったか否かを判定する(ステップS507)。データサイズ等の通知があったと判定された場合(ステップS507:Yes)、生成部510は、分割転送指示情報の未定義の転送サイズ等のフィールドを更新する(ステップS508)。一方、データサイズ等の通知がないと判定された場合(ステップS507:No)、DMAコントローラからの転送サイズの通知があるまで待機する。生成部510は、転送サイズが更新された分割転送指示情報をDMAコントローラ103又は105へと送信し、DMAコントローラ103又は105は受信した分割転送指示情報に従って、バッファ部111からデータ蓄積部104へのデータ転送を制御する。
次いで、生成部510は、分割転送指示情報の転送サイズの合計値が、現在のエントリの転送指示情報の転送サイズの値に達したか否かの判定を行う(ステップS510)。分割転送指示情報の転送サイズの合計値が、現在のエントリの転送指示情報の転送サイズの値に達したと判定された場合(ステップS510:Yes)、すなわち、現在のエントリの転送指示情報に関する転送は完了したことになるため、生成部510は、転送指示情報のエントリを次に更新する(ステップS13)。一方、分割転送指示情報の転送サイズの合計値が、現在のエントリの転送指示情報の転送サイズの値に達していないと判定された場合(ステップS510:No)、ステップS507からの処理を再度繰り返す。
このようにDMAコントローラが実際に受信したデータのデータサイズから、分割転送指示情報の転送サイズの値を更新するようにしたため、受信側の装置において、転送するデータのサイズが不明な場合であっても、データ転送を行うことができるようになる。
なお、上記の各実施の形態のデータ伝送装置における生成部、及び転送指示部の機能はプログラムとして提供してもよい。その場合、プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
ただし、生成部、及び転送指示部をプログラムとして提供した場合、実際のハードウェアとしてはCPU(プロセッサ)とは異なる電子回路やプロセッサによって記憶媒体からプログラムを読み出して実行することにより各部が主記憶部上にロードされ、生成部、及び転送指示部が主記憶部上に生成されるようになっている。
本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 データ伝送装置
101 CPU
102 主記憶部
103 第1DMAコントローラ
104 データ蓄積部
105 第2DMAコントローラ
106 通信部
107a 転送指示情報テーブル
107 転送情報記憶部
108 転送指示部
109 転送設定記憶部
110 生成部
110a 分割転送指示情報群
111 バッファ部
112 バス
208a 転送指示部
208b 転送指示部
210a 生成部
210b 生成部
300 データ伝送装置
308 転送指示部
400 データ伝送装置
408 転送指示部
410 生成部
411 バッファ部
412a バス
412b バス
500 データ伝送装置
510 生成部
510a 分割転送指示情情報群
また、データ伝送装置は、前記データの読み出し先の前記記憶装置、または書込み先の前記記憶装置において前記データが記憶される位置情報、及び前記データのサイズ情報を含む情報であって、前記プロセッサが生成する転送指示情報を記憶する情報記憶部と、前記転送指示情報を所定のデータサイズ毎に分割して複数の分割転送指示情報を生成する生成部と、前記メモリ制御部に対し、前記分割転送指示情報を取得するよう指示する指示部と、を備えている。

Claims (8)

  1. プロセッサと、
    データを記憶する記憶装置間におけるデータの転送時の読み出し、及び書き込みを前記プロセッサを介さずに制御するメモリ制御部と、
    前記データの読み出し先の前記記憶装置、または書込み先の前記記憶装置において前記データが記憶される位置情報、及び前記データのサイズ情報を含む情報であって、前記プロセッサが生成する転送指示情報を記憶する情報記憶部と、
    内部記憶部を備え、前記転送指示情報を所定のデータサイズ毎に分割して複数の分割転送指示情報を生成するとともに、前記内部記憶部に記憶する生成部と、
    前記メモリ制御部に対し、前記内部記憶部の位置を指定して、前記分割転送指示情報を取得するよう指示する指示部と、
    を備えることを特徴とするデータ伝送装置。
  2. 前記生成部は、いずれの前記メモリ制御部から参照があったかに応じて、前記分割転送指示情報の形式を異なる態様で生成する
    ことを特徴とする請求項1に記載のデータ伝送装置。
  3. 前記メモリ制御部は、複数設けられており、
    前記指示部と複数の前記メモリ制御部とは、それぞれ異なる複数のバスによって接続されてなる
    ことを特徴とする請求項2に記載のデータ伝送装置。
  4. 前記生成部は、複数設けられており、
    前記生成部と複数の前記メモリ制御部とは、それぞれ異なる複数のバスによって接続されてなる
    ことを特徴とする請求項3に記載のデータ伝送装置。
  5. 前記指示部は、前記生成部の前記内部記憶部の位置を指定して、前記分割転送指示情報を取得し、取得した前記分割転送指示情報に基づいてデータの転送の制御を行う
    ことを特徴とする請求項1又は4に記載のデータ伝送装置。
  6. 前記生成部は、前記メモリ制御部からの前記分割転送指示情報の取得の要求があった場合に、前記サイズ情報が未定義の状態の前記分割転送指示情報を生成するとともに、前記メモリ制御部による前記データの書き込みの制御の後に、前記メモリ制御部から受理した書き込み時のデータの前記サイズ情報を取得して、前記サイズ情報の値を更新する
    ことを特徴とする請求項1又は5に記載のデータ伝送装置。
  7. プロセッサと、データを記憶する記憶装置間におけるデータの転送時の読み出し、及び書き込みを前記プロセッサを介さずに制御するメモリ制御部と、を備える装置におけるデータ伝送方法であって、
    前記データの読み出し先の前記記憶装置、または書込み先の前記記憶装置において前記データが記憶される位置情報、及び前記データのサイズ情報を含む情報であって、前記プロセッサが生成する転送指示情報を記憶する情報記憶ステップと、
    前記転送指示情報を所定のデータサイズ毎に分割して複数の分割転送指示情報を生成するとともに、内部記憶部に記憶する生成ステップと、
    前記メモリ制御部に対し、前記分割転送指示情報を生成する前記生成部における前記内部記憶部の位置情報を指定して、前記分割転送指示情報を取得するよう指示する指示ステップと、
    を含むことを特徴とするデータ伝送方法。
  8. プロセッサと、データを記憶する記憶装置間におけるデータの転送時の読み出し、及び書き込みを前記プロセッサを介さずに制御するメモリ制御部と、を備えるコンピュータに、
    前記データの読み出し先の前記記憶装置、または書込み先の前記記憶装置において前記データが記憶される位置情報、及び前記データのサイズ情報を含む情報であって、前記プロセッサが生成する転送指示情報を記憶する情報記憶ステップと、
    前記転送指示情報を所定のデータサイズ毎に分割して複数の分割転送指示情報を生成するとともに、内部記憶部に記憶する生成ステップと、
    前記メモリ制御部に対し、前記分割転送指示情報を生成する前記生成部における前記内部記憶部の位置情報を指定して、前記分割転送指示情報を取得するよう指示する指示ステップと、
    を実行させることを特徴とするプログラム。
JP2012050790A 2012-03-07 2012-03-07 データ伝送装置、データ伝送方法、及びプログラム Expired - Fee Related JP5651622B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012050790A JP5651622B2 (ja) 2012-03-07 2012-03-07 データ伝送装置、データ伝送方法、及びプログラム
US13/787,682 US20130238881A1 (en) 2012-03-07 2013-03-06 Data transmission device, data transmission method, and computer program product
CN2013100730300A CN103309831A (zh) 2012-03-07 2013-03-07 数据传输装置和数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012050790A JP5651622B2 (ja) 2012-03-07 2012-03-07 データ伝送装置、データ伝送方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2013186658A true JP2013186658A (ja) 2013-09-19
JP5651622B2 JP5651622B2 (ja) 2015-01-14

Family

ID=49115141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012050790A Expired - Fee Related JP5651622B2 (ja) 2012-03-07 2012-03-07 データ伝送装置、データ伝送方法、及びプログラム

Country Status (3)

Country Link
US (1) US20130238881A1 (ja)
JP (1) JP5651622B2 (ja)
CN (1) CN103309831A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019159437A (ja) * 2018-03-08 2019-09-19 富士通株式会社 情報処理装置、転送制御方法および転送制御プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017043284A1 (ja) * 2015-09-10 2017-03-16 富士フイルム株式会社 情報処理システム、情報処理方法、情報処理プログラム、及び記憶媒体
CN106339338B (zh) * 2016-08-31 2019-02-12 天津国芯科技有限公司 一种可提高系统性能的数据传输方法及装置
CN109857545B (zh) * 2018-12-29 2021-09-14 华为技术有限公司 一种数据传输方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04333159A (ja) * 1991-05-09 1992-11-20 Sumitomo Electric Ind Ltd Dma装置
JP2003018375A (ja) * 2001-06-29 2003-01-17 Ricoh Co Ltd 画像形成装置
JP2008165724A (ja) * 2006-12-06 2008-07-17 Hitachi Ltd Ioアダプタとそのデータ転送方法
JP2010152837A (ja) * 2008-12-26 2010-07-08 Mitsubishi Electric Corp バッファ装置
JP2011181029A (ja) * 2010-03-04 2011-09-15 Ricoh Co Ltd データ転送制御装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043867A (en) * 1988-03-18 1991-08-27 Digital Equipment Corporation Exception reporting mechanism for a vector processor
US5276902A (en) * 1988-11-07 1994-01-04 Fujitsu Limited Memory access system for vector data processed or to be processed by a vector processor
JPH0850651A (ja) * 1994-08-05 1996-02-20 Mitsubishi Electric Corp 画像処理lsi
JP2002140286A (ja) * 2000-10-31 2002-05-17 Ricoh Co Ltd 情報処理装置及びdma転送方法
US7457936B2 (en) * 2003-11-19 2008-11-25 Intel Corporation Memory access instruction vectorization
JP4456490B2 (ja) * 2005-01-14 2010-04-28 富士通株式会社 Dma装置
US7627735B2 (en) * 2005-10-21 2009-12-01 Intel Corporation Implementing vector memory operations
US8095750B2 (en) * 2007-05-14 2012-01-10 International Business Machines Corporation Transactional memory system with fast processing of common conflicts
US8914612B2 (en) * 2007-10-29 2014-12-16 Conversant Intellectual Property Management Inc. Data processing with time-based memory access

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04333159A (ja) * 1991-05-09 1992-11-20 Sumitomo Electric Ind Ltd Dma装置
JP2003018375A (ja) * 2001-06-29 2003-01-17 Ricoh Co Ltd 画像形成装置
JP2008165724A (ja) * 2006-12-06 2008-07-17 Hitachi Ltd Ioアダプタとそのデータ転送方法
JP2010152837A (ja) * 2008-12-26 2010-07-08 Mitsubishi Electric Corp バッファ装置
JP2011181029A (ja) * 2010-03-04 2011-09-15 Ricoh Co Ltd データ転送制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019159437A (ja) * 2018-03-08 2019-09-19 富士通株式会社 情報処理装置、転送制御方法および転送制御プログラム

Also Published As

Publication number Publication date
US20130238881A1 (en) 2013-09-12
JP5651622B2 (ja) 2015-01-14
CN103309831A (zh) 2013-09-18

Similar Documents

Publication Publication Date Title
JP4669088B1 (ja) 試験装置、試験方法およびプログラム
US20150301886A1 (en) Information processing apparatus, system, and information processing method
JP2012064021A (ja) 通信システム、マスター装置、及びスレーブ装置、並びに通信方法
JP5651622B2 (ja) データ伝送装置、データ伝送方法、及びプログラム
JP2007034392A (ja) 情報処理装置及びデータ処理方法
US10768976B2 (en) Apparatus and method to configure an optimum number of circuits for executing tasks
JP2014010759A (ja) ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
JP6106986B2 (ja) 演算処理装置、情報処理装置及び割込制御方法
JP5404294B2 (ja) データ演算装置の制御回路及びデータ演算装置
JP4839489B2 (ja) ディスクリプタ制御方法、ダイレクトメモリ転送装置およびプログラム
JP2006338533A (ja) Ecc回路を有するマルチレイヤバスシステム
JP2021015357A (ja) 計算機システム、制御方法およびプログラム
JP2009015783A (ja) インタフェースコントローラ
JP2015184935A (ja) I2cバスの調停システムおよび調停方法
JP6416488B2 (ja) 半導体装置
JP2010073113A (ja) データ転送装置及び半導体試験装置
JP2017076358A (ja) 情報処理装置、情報処理装置の制御方法及びそのプログラム
JP6384359B2 (ja) 分散共有メモリを有する情報処理装置、方法、および、プログラム
JP6940283B2 (ja) Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP6114767B2 (ja) ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
JP2022035436A (ja) 集積回路、データ転送システム、処理方法及びプログラム
JP5989818B2 (ja) ブリッジ装置およびその方法、ストレージ装置、ならびにプログラム
JP2010067167A (ja) データ転送装置
JP6034008B2 (ja) 送信権調停装置、送信権調停制御方法、及びそのためのプログラム
JP2013038741A (ja) コンフィグレーション装置及びコンフィグレーション方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140623

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: 20141021

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141117

R151 Written notification of patent or utility model registration

Ref document number: 5651622

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees