JPWO2015040750A1 - データ転送装置、情報処理装置及びio制御方法 - Google Patents

データ転送装置、情報処理装置及びio制御方法 Download PDF

Info

Publication number
JPWO2015040750A1
JPWO2015040750A1 JP2015537533A JP2015537533A JPWO2015040750A1 JP WO2015040750 A1 JPWO2015040750 A1 JP WO2015040750A1 JP 2015537533 A JP2015537533 A JP 2015537533A JP 2015537533 A JP2015537533 A JP 2015537533A JP WO2015040750 A1 JPWO2015040750 A1 JP WO2015040750A1
Authority
JP
Japan
Prior art keywords
data
request
read
unit
buffer
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
JP2015537533A
Other languages
English (en)
Other versions
JP6037029B2 (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of JP6037029B2 publication Critical patent/JP6037029B2/ja
Publication of JPWO2015040750A1 publication Critical patent/JPWO2015040750A1/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus

Landscapes

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

Abstract

入力バッファ部(51)は、コマンド及びアドレスを入力バッファ(51a)に格納し、ライトデータをデータバッファ(56a)に格納する。また、出力バッファ部(55)は、コマンドを出力バッファ(55a)に格納し、リードデータをデータバッファ(56a)に格納する。すなわち、入力バッファ部(51)と出力バッファ部(55)がデータバッファ(56a)を共用する。また、入力バッファ部(51)、出力バッファ部(55)及びデータバッファ部(56)は、それぞれ入力バッファ(51a)、出力バッファ(55a)及びデータバッファ(56a)にデータを格納する場合に、PIOリクエストに含まれるタグをエントリ番号として使用する。

Description

本発明は、データ転送装置、情報処理装置及びIO(Input Output)制御方法に関する。
情報処理装置では、CPU(Central Processing Unit)は、PIO(Programmable Input Output)を用いてIOコントローラ及びIOデバイスコントローラを制御する。ここで、IOデバイスコントローラは、IO装置を制御する装置である。また、IOコントローラは、IOデバイスコントローラとCPU及びメモリーとを接続するホストバスブリッジであり、IOデバイスコントローラとCPU及びメモリーとの間でデータを転送するデータ転送装置である。
CPUは、IOコントローラ及びIOデバイスコントローラを制御するためにPIOリクエスト(PIO request)を発行し、PIOリクエストを処理したIOコントローラ及びIOデバイスコントローラからPIO完了(PIO completion)を受け取る。
図9は、従来のIOコントローラの一例を示す図である。図9に示すように、IOコントローラ9は、インターコネクト7を介してCPU2からPIOリクエストを受信し、自装置又はIOデバイスコントローラ6によりPIOリクエストを処理して、PIO完了をインターコネクト7を介してCPU2に送信する。
IOコントローラ9は、入力バッファ部91と、コマンド処理部92と、出力バッファ部93とを有する。入力バッファ部91は、PIOリクエストを受信し、PIOリクエストに含まれるコマンド、アドレス及びデータを入力バッファ91aに格納する。
ここで、コマンドは、PIOリクエストの種類を示し、例えば、PIOリクエストがリードリクエストであるかライトリクエストであるかを示す。アドレスは、リードするデータを記憶するレジスタ又はライトするデータの格納先のレジスタのアドレスを示す。データは、PIOリクエストがライトリクエストである場合のライトデータであり、PIOリクエストがリードリクエストである場合にはない。
図9では、入力バッファ91aに、4つのコマンド0〜コマンド3と、4つのアドレス0〜アドレス3とが、それぞれ対応付けられて格納されている。また、コマンド0及びコマンド2は、対応するPIOリクエストがライトリクエストであり、データ0及びデータ2が、それぞれコマンド0及びコマンド2に対応付けられて入力バッファ91aに格納されている。
コマンド処理部92は、入力バッファ部91に格納されたコマンドを自装置又はIOデバイスコントローラ6により処理し、自装置又はIOデバイスコントローラ6が発行したPIO完了を出力バッファ部93に渡す。
出力バッファ部93は、PIO完了に含まれるコマンド及びデータを出力バッファ93aに格納する。そして、出力バッファ部93は、出力バッファ93aに格納したコマンド及びデータをPIO完了としてホストに送信する。ここで、データは、PIOリクエストがリードリクエストである場合のリードデータであり、PIOリクエストがライトリクエストである場合にはない。
図9では、出力バッファ93aに、4つのコマンド0〜コマンド3が格納されている。また、コマンド1及びコマンド3は、対応するPIOリクエストがリードリクエストであり、データ1及びデータ3が、それぞれコマンド1及びコマンド3に対応付けられて出力バッファ93aに格納されている。
また、ホストとデバイスとの間でデータの転送を行うデータ転送装置が、転送を制御するシーケンスコントローラと、ホストとデバイスの間で転送されるデータを記憶するデータバッファとを備える従来技術がある(例えば、特許文献1参照。)。
特開2008−204048号公報
図9に示したように、PIOリクエストがリードリクエストである場合には、入力バッファ91aにはデータが格納されず、PIOリクエストがライトリクエストである場合には、出力バッファ93aにはデータが格納されない。したがって、入力バッファ91aと出力バッファ93aを合わせるとデータを格納するデータ領域は半分の領域が使用されない。
また、CPU2は、PIO完了を受信していないPIOリクエストの数が所定の数になるまでPIOリクエストを発行するため、入力バッファ91a及び出力バッファ93aは、CPU2が発行するPIOリクエストの所定の数分のエントリを備える。したがって、IOコントローラ9には、CPU2が発行するPIOリクエストの所定の数分のデータ領域が使用されないため、無駄なデータ領域があるという問題がある。
本発明は、1つの側面では、無駄なデータ領域をなくしたIOコントローラすなわちデータ転送装置を提供することを目的とする。
本願の開示するデータ転送装置は、1つの態様において、IO装置を制御するIOデバイスコントローラと演算処理装置との間でデータを転送するデータ転送装置である。前記データ転送装置は、前記IOデバイスコントローラ又は自装置へ書き込むライトデータ及び前記IOデバイスコントローラ又は自装置から読み出したリードデータを記憶するデータバッファを有する。また、前記データ転送装置は、前記演算処理装置からライト要求を受信した際にライト要求を示すコマンドを入力バッファに格納すると共にライトデータを前記データバッファに格納する入力バッファ部を有する。また、前記データ転送装置は、前記演算処理装置からのリード要求に基づいて前記IOデバイスコントローラ又は自装置から読み出されたリードデータを前記データバッファに格納すると共にリード要求を示すコマンドを出力バッファに格納する出力バッファ部を有する。
1実施態様によれば、データ転送装置から無駄なデータ領域をなくすことができる。
図1は、実施例に係る情報処理装置の構成を示す図である。 図2は、IOコントローラの構成を示す図である。 図3は、リードリクエストのパケットフォーマットの一例を示す図である。 図4は、ライトリクエストのパケットフォーマットの一例を示す図である。 図5は、コマンドの割り当て例を示す図である。 図6は、リード完了のパケットフォーマットの一例を示す図である。 図7は、ライト完了のパケットフォーマットの一例を示す図である。 図8は、実施例に係るIOコントローラによる処理のフローを示すフローチャートである。 図9は、従来のIOコントローラの一例を示す図である。
以下に、本願の開示するデータ転送装置、情報処理装置及びIO制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係る情報処理装置の構成について説明する。図1は、実施例に係る情報処理装置の構成を示す図である。図1に示すように、情報処理装置1は、CPU2と、メモリーコントローラ3と、メモリー4と、IOコントローラ5と、IOデバイスコントローラ6と、インターコネクト7とを有する。
CPU2は、メモリー4に記憶されたプログラムを読み出して実行する中央処理装置である。メモリーコントローラ3は、メモリー4へのデータの書き込み、メモリー4からのプログラム及びデータの読み出しを制御する制御装置である。メモリー4は、プログラムやデータを記憶するRAM(Random Access Memory)である。
IOコントローラ5は、CPU2及びメモリー4とIOデバイスコントローラ6とを接続するホストバスブリッジであり、CPU2及びメモリー4とIOデバイスコントローラ6との間でデータを転送するデータ転送装置である。
IOコントローラ5は、IOデバイスコントローラ6又は自装置からのデータの読み出し、及び、IOデバイスコントローラ6又は自装置へのデータの書き込みを制御する。IOコントローラ5は、インターコネクト7経由でCPU2からPIOリクエストを受信し、PIOリクエストで要求された処理を完了すると、CPU2にPIO完了を返信する。
IOデバイスコントローラ6は、IOデバイスを制御する制御装置であり、例えば、ハードディスクコントローラ、LAN(Local Area Network)コントローラである。インターコネクト7は、CPU2とメモリーコントローラ3とIOコントローラ5とを相互に接続する装置である。
CPU2、メモリーコントローラ3、IOコントローラ5、IOデバイスコントローラ6及びインターコネクト7は、SoC(System on Chip)に含まれ、チップの内部バスによって接続される。
次に、IOコントローラ5の構成について説明する。図2は、IOコントローラ5の構成を示す図である。図2に示すように、IOコントローラ5は、入力バッファ部51と、振り分け部52と、レジスタ部53と、調停部54と、出力バッファ部55と、データバッファ部56とを有する。
入力バッファ部51は、CPU2が発行したPIOリクエストをインターコネクト7経由で受け取り、PIOリクエストに含まれるコマンド及びアドレスを入力バッファ51aに格納する。
図3及び図4は、PIOリクエストのパケットフォーマットの一例を示す図である。図3は、IOコントローラ5又はIOデバイスコントローラ6からのデータ読み出し要求であるリードリクエストを示し、図4は、IOコントローラ5又はIOデバイスコントローラ6へのデータ書き込み要求であるライトリクエストを示す。また、図3及び図4において、[n:0]は、ビット0からビットnまでのn+1ビットであることを示す。
図3に示すように、リードリクエストは、4ビットのコマンドと、16ビットのタグと、4ビットのrsvと、40ビットのアドレスを含む64ビットデータであり、1サイクルで送られる。
コマンドは、パケットがPIOリクエストであるかPIO完了であるか、及び、パケットがリードに関するものであるかライトに関するものであるかを示す。図5は、コマンドの割り当て例を示す図である。図5に示すように、「0000」はパケットがリードリクエストであることを示し、「0011」はパケットがライトリクエストであることを示し、「1001」はパケットがリード完了であることを示し、「1010」はパケットがライト完了であることを示す。
他の値は、reserved、すなわち将来の拡張用にキープされている。また、リードリクエスト及びライト完了には付属するデータはなく、ライトリクエスト及びリード完了には付属するデータがある。
コマンド[3:0]のビット0はデータの有無を示し、ビット1はリードであるかライトであるかを示し、ビット3はリクエストであるか完了であるかを示す。IOコントローラ5は、このビットの割り当てを用いてデータの有無などを判断する。
タグは、PIOリクエストごとに割り当てられるユニークな識別子である。タグはDMA(Direct Memory Access)リクエストとパケットフォーマットを揃えるために16ビットのビット幅を有する。
タグは、リードリクエストとライトリクエストごとに別個の割当空間を有するものではなく、リードリクエストとライトリクエストで同じ割当空間を共有している。すなわち、同じタグを有する異なるPIOリクエストは、リードリクエストとライトリクエストの両方を含めて、存在しない。
そこで、IOコントローラ5は、インターコネクト7から受信したPIOリクエストを入力バッファ51aに格納するときのエントリ番号及びPIO完了を返信するときの出力バッファに格納するときのエントリ番号としてタグを使用する。なお、出力バッファについては後述する。
CPU2は、PIO完了を受信していないPIOリクエストの数が一定数になるまでPIOリクエストを発行する。この一定数を、ここでは、PIOの最大outstanding数と呼ぶこととする。
入力バッファ部51は、デッドロックを排除するためと、インターコネクト7、IOデバイスコントローラ6、内部のレジスタ部53での処理の混雑により遅延が発生する可能性があるため、最大outstanding数のエントリを有する。
アドレスは、IOコントローラ内又はIOデバイスコントローラ内でリード又はライトの対象となるレジスタの場所を示す。アドレスによりレジスタがIOコントローラ内にあるのかIOデバイスコントローラ内にあるのかが判定される。rsvは、将来の拡張用にキープされているビットである。
また、図4に示すように、ライトリクエストは、4ビットのコマンドと、16ビットのタグと、4ビットのrsvと、40ビットのアドレスと、64ビットのデータを含む128ビットデータであり、2サイクルで送られる。64ビットのデータは、アドレスで指定されるレジスタに書き込まれるデータである。
図2に戻って、入力バッファ部51は、PIOリクエストがライトリクエストである場合には、2サイクル目で送られてくるデータをタグと共にデータバッファ部56に渡す。また、入力バッファ部51は、入力バッファ51aに格納したコマンド及びアドレスを格納した順番で取り出し、振り分け部52にタグと共に渡す。このとき、PIOリクエストがライトリクエストである場合には、入力バッファ部51は、データバッファ部56から対応するデータを受け取り、振り分け部52に渡す。
振り分け部52は、PIOリクエストをレジスタ部53とIOデバイスコントローラ6に振り分ける処理を行う。すなわち、振り分け部52は、入力バッファ部51から受け取ったアドレスに基づいてPIOリクエストの対象となるレジスタが内部にあるかIOデバイスコントローラ6にあるかを判定し、内部にある場合には、コマンドとアドレスとタグをレジスタ部53に渡す。一方、PIOリクエストの対象となるレジスタがIOデバイスコントローラ6にある場合には、振り分け部52は、コマンドとアドレスとタグをIOデバイスコントローラ6に渡す。
また、PIOリクエストがライトリクエストである場合には、振り分け部52は、入力バッファ部51から受け取ったデータをアドレスに基づいてレジスタ部53又はIOデバイスコントローラ6に渡す。
レジスタ部53は、CPU2から読み出しの対象及び書き込みの対象となるレジスタ53aを有し、入力バッファ部51から受け取ったコマンド及びアドレスに基づいて、レジスタ53aからのデータの読み出し又はレジスタ53aへのデータの書き込みを行う。
また、レジスタ部53は、レジスタ53aからデータを読み出した場合には、読み出したデータをコマンド及びタグと共にPIO完了として調停部54に渡し、レジスタ53aへデータを書き込んだ場合には、コマンド及びタグをPIO完了として調停部54に渡す。
図6及び図7は、PIO完了のパケットフォーマットの一例を示す図である。図6は、IOコントローラ5又はIOデバイスコントローラ6からのデータ読み出し完了であるリード完了を示し、図7は、IOコントローラ5又はIOデバイスコントローラ6へのデータ書き込み完了であるライト完了を示す。
図6に示すように、リード完了は、4ビットのコマンドと、16ビットのタグと、44ビットのrsvと、64ビットのデータを含む128ビットデータであり、2サイクルで送られる。64ビットのデータは、リードリクエストのアドレスで指定されたレジスタから読み出されたデータである。また、図7に示すように、ライト完了は、4ビットのコマンドと、16ビットのタグと、44ビットのrsvを含む64ビットデータであり、1サイクルで送られる。
PIOリクエストは、レジスタ部53又はIOデバイスコントローラ6で処理された後はPIO完了と呼ばれる。なお、図2では、8個のレジスタ53aを示すが、レジスタ部53は任意の数のレジスタ53aを有することができる。
調停部54は、レジスタ部53又はIOデバイスコントローラ6から送信されたPIO完了を調停して、出力バッファ部55に渡す。
出力バッファ部55は、調停部54から受け取ったPIO完了に含まれるコマンドを出力バッファ55aに格納し、PIO完了にデータが含まれる場合には、データをデータバッファ部56にタグと共に渡す。出力バッファ55aは、最大outstanding数のエントリを有し、タグで指定されるエントリにコマンドを格納する。
また、出力バッファ部55は、インターコネクト7に送信可能になったときに、出力バッファ55aからコマンドを取り出し、タグと共にPIO完了としてインターコネクト7に返信する。出力バッファ部55は、コマンドがリードである場合には、データバッファ部56からデータを読み出して、コマンド及びタグと共にデータをインターコネクト7に返信する。出力バッファ部55は、格納した順番に出力バッファ55aからコマンドを取り出してインターコネクト7に返信する。
データバッファ部56は、入力バッファ部51又は出力バッファ部55からデータ及びタグを受け取り、データバッファ56aの中でタグで指定されるエントリにデータを格納する。
また、データバッファ部56は、入力バッファ部51又は出力バッファ部55からタグを受け取り、データバッファ56aの中のタグで指定されるエントリからデータを読み出して入力バッファ部51又は出力バッファ部55に渡す。
このように、IOコントローラ5は、ライトデータとリードデータをデータバッファ56aに格納する。したがって、ライトデータを入力バッファ51aに格納してリードデータを出力バッファ55aに格納する場合と比較して、IOコントローラ5は、データの格納に必要な領域を半減することができる。
なお、データバッファ56aは、フリップフロップ(FF)、SRAM(Static RAM)、レジスタファイル等の任意の記憶素子で構成することができる。また、データバッファ56aは最大outstanding数のエントリを有する。図2では、最大outstanding数が4である場合を示したが、最大outstanding数は任意の整数とすることができる。
次に、実施例に係るIOコントローラ5による処理のフローについて説明する。図8は、実施例に係るIOコントローラ5による処理のフローを示すフローチャートである。図8に示すように、IOコントローラ5は、PIOリクエストをインターコネクト7から受信する(ステップS1)。
そして、IOコントローラ5の入力バッファ部51が、PIOリクエストのコマンドを解析して、コマンド、アドレスを入力バッファ51aに格納し、ライトリクエストの場合は、データをデータバッファ56aに格納する(ステップS2)。
そして、振り分け部52が、アドレスの示すレジスタがIOコントローラ内か否かを判定する(ステップS3)。その結果、レジスタがIOコントローラ内でない場合には、振り分け部52はIOデバイスコントローラ6に処理を指示し、処理を完了したIOデバイスコントローラ6から調停部54がPIO完了を受信する(ステップS7)。そして、調停部54は、ステップS8に進む。
一方、アドレスの示すレジスタがIOコントローラ内である場合には、レジスタ部53がPIOリクエストのコマンドがリード又はライトかを判定する(ステップS4)。そして、リードである場合には、レジスタ部53は、レジスタ53aからリードし、データ付きPIO完了を調停部54に送信する(ステップS5)。一方、PIOリクエストのコマンドがライトである場合には、レジスタ部53は、レジスタ53aへライトし、データ無しPIO完了を調停部54に送信する(ステップS6)。
そして、調停部54は、PIO完了を調停し(ステップS8)、出力バッファ部55が、PIO完了のコマンドを解析して、コマンドを出力バッファ55aに格納し、リードリクエストの場合はデータをデータバッファ56aに格納する(ステップS9)。そして、出力バッファ部55は、PIO完了をインターコネクト7に返信する(ステップS10)。
上述してきたように、実施例では、入力バッファ部51は、コマンド及びアドレスを入力バッファ51aに格納し、ライトデータをデータバッファ56aに格納する。また、出力バッファ部55は、コマンドを出力バッファ55aに格納し、リードデータをデータバッファ56aに格納する。すなわち、入力バッファ部51と出力バッファ部55がデータバッファ56aを共用する。したがって、IOコントローラ5は、従来と比較してデータ格納領域を半減することができ、消費電力を低減することができる。
また、実施例では、入力バッファ部51、出力バッファ部55及びデータバッファ部56は、それぞれ入力バッファ51a、出力バッファ55a及びデータバッファ56aにデータを格納する場合に、PIOリクエストに含まれるタグをエントリ番号として使用する。したがって、IOコントローラ5は、最大outstanding数のエントリを各バッファに設けることにより、バッファに空きがなくなることを防ぐことができる。
また、実施例では、振り分け部52がPIOリクエストに含まれるアドレスに基づいてPIOリクエストをIOデバイスコントローラ6と自装置に振り分ける。したがって、CPU2は、IOコントローラ5とIOデバイスコントローラ6を同じように制御することができる。
1 情報処理装置
2 CPU
3 メモリーコントローラ
4 メモリー
5,9 IOコントローラ
6 IOデバイスコントローラ
7 インターコネクト
51,91 入力バッファ部
51a 入力バッファ
52 振り分け部
53 レジスタ部
53a レジスタ
54 調停部
55,93 出力バッファ部
55a 出力バッファ
56 データバッファ部
56a データバッファ
92 コマンド処理部
本願の開示するデータ転送装置は、1つの態様において、IO装置を制御するIOデバイスコントローラと演算処理装置との間でデータを転送するデータ転送装置である。前記データ転送装置は、前記IOデバイスコントローラ若しくは自装置へ書き込むライトデータ、又は、前記IOデバイスコントローラ若しくは自装置から読み出したリードデータを、前記演算処理装置が完了せずに発行できる要求の最大数と等しい数のデータエントリのいずれかに記憶するデータバッファを有する。また、前記データ転送装置は、前記最大数と等しい数の要求を一意に識別する識別情報を含むライト要求を前記演算処理装置から受信した際にライト要求を示すコマンドを入力バッファに含まれる複数の入力エントリのうち前記識別情報に基づく入力エントリに格納すると共にライトデータを複数のデータエントリのうち前記識別情報に基づくデータエントリに格納する入力バッファ部を有する。また、前記データ転送装置は、前記演算処理装置からの前記識別情報を含むリード要求に基づいて前記IOデバイスコントローラ又は自装置から読み出されたリードデータを複数のデータエントリのうち前記識別情報に基づくデータエントリに格納すると共にリード要求を示すコマンドを出力バッファに含まれる複数の出力エントリのうち前記識別情報に基づく出力エントリに格納する出力バッファ部を有する。

Claims (5)

  1. IO装置を制御するIOデバイスコントローラと演算処理装置との間でデータを転送するデータ転送装置において、
    前記IOデバイスコントローラ又は自装置へ書き込むライトデータ及び前記IOデバイスコントローラ又は自装置から読み出したリードデータを記憶するデータバッファと、
    前記演算処理装置からライト要求を受信した際にライト要求を示すコマンドを入力バッファに格納すると共にライトデータを前記データバッファに格納する入力バッファ部と、
    前記演算処理装置からのリード要求に基づいて前記IOデバイスコントローラ又は自装置から読み出されたリードデータを前記データバッファに格納すると共にリード要求を示すコマンドを出力バッファに格納する出力バッファ部と
    を有することを特徴とするデータ転送装置。
  2. 前記ライト要求及び前記リード要求は、各要求を一意に識別するタグを含み、
    前記入力バッファ部は、前記入力バッファにコマンドを格納する場合及び前記データバッファにライトデータを格納する場合に前記タグに基づく位置に格納し、
    前記出力バッファ部は、前記出力バッファにコマンドを格納する場合及び前記データバッファにリードデータを格納する場合に前記タグに基づく位置に格納することを特徴とする請求項1に記載のデータ転送装置。
  3. 前記ライト要求及び前記リード要求を当該データ転送装置内の記憶部に対する要求と当該データ転送装置外の装置に対する要求とに振り分ける振分部と、
    当該データ転送装置内の記憶部に対する要求についての処理の完了と当該データ転送装置外の装置に対する要求についての処理の完了とを調停する調停部とをさらに備え、
    前記入力バッファ部は、前記ライト要求が処理される際に前記データバッファからライトデータを取り出して前記振分部に渡し、
    前記出力バッファ部は、前記リード要求が処理された後に前記調停部からリードデータを受け取って前記データバッファに格納することを特徴とする請求項1または2に記載のデータ転送装置。
  4. プログラムを記憶する記憶装置と、前記記憶装置からプログラムを読み出して実行する演算処理装置と、IO装置を制御するIOデバイスコントローラと、前記演算処理装置と前記IOデバイスコントローラとの間でデータを転送するデータ転送装置とを有する情報処理装置において、
    前記データ転送装置は、
    前記IOデバイスコントローラ又は自装置へ書き込むライトデータ及び前記IOデバイスコントローラ又は自装置から読み出したリードデータを記憶するデータバッファと、
    前記演算処理装置からライト要求を受信した際にライト要求を示すコマンドを入力バッファに格納すると共にライトデータを前記データバッファに格納する入力バッファ部と、
    前記演算処理装置からのリード要求に基づいて前記IOデバイスコントローラ又は自装置から読み出されたリードデータを前記データバッファに格納すると共にリード要求を示すコマンドを出力バッファに格納する出力バッファ部と
    を有することを特徴とする情報処理装置。
  5. IO装置を制御するIOデバイスコントローラと演算処理装置との間でデータを転送するデータ転送装置によるIO制御方法において、
    前記演算処理装置からライト要求を受信した際にライト要求を示すコマンドを入力バッファに格納すると共にライトデータをデータバッファに格納し、
    前記演算処理装置からのリード要求に基づいて前記IOデバイスコントローラ又は自装置から読み出されたリードデータを前記データバッファに格納すると共にリード要求を示すコマンドを出力バッファに格納する
    処理を前記データ転送装置が実行することを特徴とするIO制御方法。
JP2015537533A 2013-09-20 2013-09-20 データ転送装置、情報処理装置及びio制御方法 Expired - Fee Related JP6037029B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/075575 WO2015040750A1 (ja) 2013-09-20 2013-09-20 データ転送装置、情報処理装置及びio制御方法

Publications (2)

Publication Number Publication Date
JP6037029B2 JP6037029B2 (ja) 2016-11-30
JPWO2015040750A1 true JPWO2015040750A1 (ja) 2017-03-02

Family

ID=52688431

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015537533A Expired - Fee Related JP6037029B2 (ja) 2013-09-20 2013-09-20 データ転送装置、情報処理装置及びio制御方法

Country Status (2)

Country Link
JP (1) JP6037029B2 (ja)
WO (1) WO2015040750A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04370859A (ja) * 1991-06-20 1992-12-24 Fujitsu Ltd 上位装置と下位装置とにおけるデータの送受信方式
JP2004199402A (ja) * 2002-12-18 2004-07-15 Ricoh Co Ltd Usbデバイスコントローラ
JP2008065377A (ja) * 2006-09-04 2008-03-21 Toshiba Corp 情報処理装置
JP2012089948A (ja) * 2010-10-15 2012-05-10 Fujitsu Ltd データ転送装置及びデータ転送方法
WO2013014841A1 (ja) * 2011-07-22 2013-01-31 パナソニック株式会社 データ処理装置およびデータ処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04370859A (ja) * 1991-06-20 1992-12-24 Fujitsu Ltd 上位装置と下位装置とにおけるデータの送受信方式
JP2004199402A (ja) * 2002-12-18 2004-07-15 Ricoh Co Ltd Usbデバイスコントローラ
JP2008065377A (ja) * 2006-09-04 2008-03-21 Toshiba Corp 情報処理装置
JP2012089948A (ja) * 2010-10-15 2012-05-10 Fujitsu Ltd データ転送装置及びデータ転送方法
WO2013014841A1 (ja) * 2011-07-22 2013-01-31 パナソニック株式会社 データ処理装置およびデータ処理方法

Also Published As

Publication number Publication date
JP6037029B2 (ja) 2016-11-30
WO2015040750A1 (ja) 2015-03-26

Similar Documents

Publication Publication Date Title
TW201905714A (zh) 以輔助處理器記憶體進行儲存裝置的直接輸入輸出操作的計算系統操作方法、計算系統、車輛及電腦可讀媒體
US11042300B2 (en) Command load balancing for NVME dual port operations
JP5666722B2 (ja) メモリ・インターフェース
JP5939305B2 (ja) 情報処理装置,並列計算機システム及び情報処理装置の制御方法
US10079916B2 (en) Register files for I/O packet compression
JP5137171B2 (ja) データ処理装置
JP6880402B2 (ja) メモリアクセス制御装置及びその制御方法
JP4587756B2 (ja) 半導体集積回路装置
JP2021515318A (ja) NVMeベースのデータ読み取り方法、装置及びシステム
JP2013512519A (ja) いくつかの周辺装置のメモリ間のデータの直接転送のためにメモリに直接アクセスするコントローラ、そのようなコントローラを実現可能にする方法およびコンピュータプログラム
US8458411B2 (en) Distributed shared memory multiprocessor and data processing method
US9727521B2 (en) Efficient CPU mailbox read access to GPU memory
US9244824B2 (en) Memory sub-system and computing system including the same
CN106815176A (zh) 用于经由柔性寄存器访问总线传输访问请求的系统和方法
JP6037029B2 (ja) データ転送装置、情報処理装置及びio制御方法
WO2022199357A1 (zh) 数据处理方法及装置、电子设备、计算机可读存储介质
US20080209085A1 (en) Semiconductor device and dma transfer method
US20170192720A1 (en) Prioritization of order ids in dram scheduling
JP2007079715A (ja) データ転送方法、プログラムおよび装置
JP4780333B2 (ja) データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム
JP6384359B2 (ja) 分散共有メモリを有する情報処理装置、方法、および、プログラム
JP7003752B2 (ja) データ転送装置、データ転送方法、プログラム
EP1990725B1 (en) Central processing unit, central processing unit control method, and information processing system
US20110307637A1 (en) Data transfer device and data transfer method
JP6565729B2 (ja) 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160905

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161017

R150 Certificate of patent or registration of utility model

Ref document number: 6037029

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees